(57)【特許請求の範囲】
【請求項１】
連続して複数の入力ビットを受取り、そこから第１の複数の出力シンボルを生成するように構成される第１コーダと、
複数の入力ビットを連続して受け取るように構成されているインタリーバと、該インタリーバは行と列のマトリックス内に配列される複数のビット記憶位置と、該インタリーバの各行内でビットをシャッフルするためにシーケンスを擬似無作為に生成するように構成されている線形合同シーケンス生成器とを含み、そして事前定義されたビット逆順アルゴリズムに従って該インタリーバの該行をシャッフルするようにさらに構成されていて、
該インタリーバから連続して複数のインタリーブされたビットを受け取り、そしてそこから第２の複数の出力シンボルを生成するように構成される第２コーダと、を備えるターボコーダ。
【請求項２】
ビットをシャッフルするための該シーケンスが、以下の等式に従って生成される線形合同シーケンス再帰を備え
ｘ（ｎ＋１）＝（ａｘ（ｎ）＋ｃ）ｍｏｄＭ、
ここでは、ｎが時間インデックスを表し、ｘ（ｎ）が時間インデックスｎ、ａ、ｃでの列インデックスを表し、Ｍが整数であり、Ｍが該シーケンスの期間を表し、以下の条件、
（ｉ）ｃはＭに対して相対的に素数であり、
（ｉｉ）ａ−１はｐの倍数であり、この場合、ｐはＭを分割する任意の素数を表し、
（ｉｉｉ）Ｍが４の倍数であるとき、ａ−１は４の倍数でなければならず、および
（ｉｖ）ｘ（０）は任意の整数である場合があるシード値であるが満たされる、請求項１に記載されるターボコーダ。
【請求項３】
ａ＝１である、請求項２に記載されるターボコーダ。
【請求項４】
該期間Ｍが２の累乗である、請求項２に記載されるターボコーダ。
【請求項５】
該インタリーバ内の全ての行についてｘ（０）は０に等しい請求項２に記載されるターボコーダ。
【請求項６】
さらに、該第１コーダと該第２コーダにそれぞれ結合され、それぞれ、該第１の複数の出力シンボルと該第２の複数の出力シンボルをそこから受け取るように構成されているマルチプレクサを備える、請求項１に記載されるターボコーダ。
【請求項７】
第１コーダにより符号化されたデータ要素を連続して行ごとにビット記憶位置のマトリックスに書き込む工程と、
線形合同シーケンス再帰に従って、ビット記憶位置の該マトリックスの各行内に該データ要素を擬似無作為に再配列する工程と、
事前定義されたビット逆順アルゴリズムに従って、ビット記憶位置の該マトリックスの該行を配列し直す工程と、
インタリーバから連続して該データ要素を受信し、そこから第２の複数の出力シンボルを生成するように構成される第２コーダのためにビット記憶位置の該マトリックスから列ごとに連続して該データ要素を読み取る工程と、を備える、ターボコーダ内でデータ要素をインタリーブする方法。
【請求項８】
さらに、以下の等式に従って線形合同シーケンス再帰を生成する工程を備え、
ｘ（ｎ＋１）＝（ａｘ（ｎ）＋ｃ）ｍｏｄＭ、
ここでは、ｎは時間インデックスを表し、ｘ（ｎ）は時間インデックスｎ、ａ、ｃでの列インデックスを表し、Ｍは整数であり、Ｍが該シーケンスの期間を表し、以下の条件
（ｉ）ｃがＭに対して相対的に素数であり、
（ｉｉ）ａ−１がｐの倍数であり、この場合、ｐはＭを分割する任意の素数を表し、
（ｉｉｉ）Ｍが４の倍数であるとき、ａ−１は４の倍数でなければならず、および
（ｉｖ）ｘ（０）は任意の整数である場合があるシード値であるが満たされる、請求項７に記載される方法。
【請求項９】
ａ＝１である、請求項８に記載される方法。
【請求項１０】
該期間Ｍが２の累乗である、請求項８に記載される方法。
【請求項１１】
全ての行についてｘ（０）は０に等しい請求項８に記載される方法。
【請求項１２】
第１コーダにより符号化されたデータ要素を行ごとにビット記憶位置のマトリックスに連続して書き込むための手段と、
線形合同シーケンス再帰に従って、ビット記憶位置の該マトリックスの各行の中に該データ要素を擬似無作為に再配列するための手段と、
事前定義されたビット逆順アルゴリズムに従って、ビット記憶位置の該マトリックスの該行を配列し直す手段と、
インタリーバから連続して該データ要素を受信し、そこから第２の複数の出力シンボルを生成するように構成される第２コーダのためにビット記憶位置の該マトリックスから列ごとに順次該データ要素を読み込むための手段と、を備える、ターボコーダ用インタリーバ。 
【請求項１３】
線形合同シーケンス再帰が、以下の等式に従って生成され、
ｘ（ｎ＋１）＝（ａｘ（ｎ）＋ｃ）ｍｏｄＭ、
ここではｎが時間インデックスを表し、ｘ（ｎ）が時間インデックスｎ、ａ、ｃでの列インデックスを表し、Ｍが整数であり、Ｍが該シーケンスの期間を表し、以下の条件
（ｉ）ｃがＭに対して相対的に素数であり、
（ｉｉ）ａ−１がｐの倍数であり、この場合ｐがＭを分割する任意の素数を表し、
（ｉｉｉ）Ｍが４の倍数であるとき、ａ−１が４の倍数でなければならず、
（ｉｖ）ｘ（０）が任意の整数である場合があるシード値であるが満たされる、請求項１２に記載されるインタリーバ。
【請求項１４】
ａ＝１である、請求項１３に記載されるインタリーバ。
【請求項１５】
該期間Ｍが２の累乗である、請求項１３に記載されるインタリーバ。
【請求項１６】
ビット記憶位置の該マトリクス内の全ての行についてｘ（０）は０に等しい請求項１３に記載されるインタリーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、通信システム用のコーディングの分野に関し、さらに特定するとターボコーダ用インタリーバに関する。
【背景技術】
【０００２】
デジタルデータの伝送は、本質的に、送信済みデータにエラーを生じさせることのある干渉を受けやすい。エラーが送信済みデータの中に生じたかどうかを可能な限り確実に決定するために、エラー検出方式が提案されてきた。例えば、パケット単位でデータを送信し、各パケットに、例えば１６ビットという長さの、パケットのデータのチェックサムを搬送する巡回冗長性検査（ＣＲＣ）フィールドを追加することは一般的である。受信機がデータを受信すると、受信機は受信されたデータで同じチェックサムを計算し、計算の結果がＣＲＣフィールド内のチェックサムと同一であるかどうかを検証する。
【０００３】
送信済みのデータがオンラインで使用されないとき、エラーが検出されると誤ったデータの再送を要求することが可能である。しかしながら、伝送が、例えば電話回線、セルラー電話、遠隔ビデオシステム等でなどのオンラインで実行されると、再送を要求することは不可能である。
【０００４】
エラーが送信中に発生した可能性のあるときにも、デジタルデータの受信機が送信済みデータを正しく受信できるようにするために、畳み込みコードが導入されてきた。畳み込みコードは送信済みデータに冗長性を生じさせ、送信済みデータを、各ビットの値がシーケンス内のより早期のビットに依存するパケットに詰め込む。このようにして、エラーが発生すると、受信機は、受信されたデータ内で考えられるシーケンスを遡ることにより、依然として元のデータを演繹できる。
【０００５】
伝送路の性能をさらに高めるために、いくつかのコーディング方式は、コーディング中にパケット内でビットの順序を混乱させるインタリーバを含む。このようにして干渉が送信中いくつかの隣接ビットを破壊するとき、干渉の影響は元のパケット全体で広がり、復号プロセスによってさらに容易に克服できる。その他の改善策は、並列でまたは直列で一度以上パケットを符号化する複数の構成要素コードを含んでよい。例えば、少なくとも２つの合同コーダを並列で使用するエラー補正方法を利用することは技術で既知である。このような並列符号化は、一般的にはターボコーディングと呼ばれる。
【０００６】
複数の構成要素コードの場合、最適復号は多くの場合非常に複雑なタスクであり、オンライン復号には通常使用できない大きな時間期間を必要とすることがある。この問題を克服するために、反復復号技法が開発されてきた。受信されたビットがゼロであるのか、１であるのかを即座に判断するよりむしろ、受信機は、ビットが１である確率を表すマルチレベルスケールで各ビットに値を割り当てる。ログ尤度比（ＬＬＲ）確率と呼ばれている共通尺度は、例えば｛−３２、３１｝などでのなんらかの範囲での整数により各ビットを表す。３１という値は、非常に高い確率で送信済みビットがゼロであったことを意味し、−３２という値は、非常に高い確率で送信済みビットが１であったことを意味する。ゼロという値は、ローカルビット値が不確定であることを示す。
【０００７】
マルチレベルスケールで表されるデータは「ソフトデータ」と呼ばれ、反復復号は、通常、ソフトイン／ソフトアウトである。つまり、復号プロセスはビット値の確率に応じた入力のシーケンスを受信し、コードの制約を考慮に入れ、出力補正確率として提供する。一般的には、反復復号を実行するデコーダは、受信機によって読み取られるソフトデータを復号するために、前記反復からソフトデータを使用する。複数の構成要素コードの反復復号の間、デコーダは、第２コードの復号を高めるために、あるコードの復号からの結果を使用する。ターボコーディングでのように、並列エンコーダが使用されるとき、２つの対応するデコーダは、この目的のために並列で便利に使用されてよい。このような反復復号は、ソフトデータが送信済みデータを密接に表すと考えられるまで、複数の反復の間実施される。それらが１に等しい（例えば、前述されたスケールでの０と３１の間）ことを示す確率を有するそれらのビットにはバイナリゼロが割り当てられ、残りのビットにはバイナリ１が割り当てられる。
【０００８】
「ターボコーディング」は、前進誤り訂正（ＦＥＣ）の領域での重要な進展を表す。ターボコーディングの多くの変形があるが、大部分の種類のターボコーディングは、反復復号の使用と組み合わされるインタリーブ工程によって複数の符号化工程を使用する。この組み合わせは、通信システム内での雑音交差に関して過去に利用できない性能を提供する。すなわち、ターボコーディングは、既存の前進誤り補正技法を使用して、雑音電力スペクトル密度（Ｅｂ／Ｎ０）あたりのビットあたりエネルギーのレベルでの通信を可能にする。
【０００９】
多くの通信システムは前進誤り補正技法を使用するため、ターボコーディングの使用から恩恵を被るだろう。例えば、ターボコードは、衛星の制限されたダウンリンク送信電力が低Ｅｂ／Ｎ０レベルで動作できる受信機システムを必要とする、無線衛星リンクの性能を改善するだろう。
【００１０】
例えば、デジタルセルラーおよびＰＣＳ電話システムなどのデジタル無線電気通信システムは、前進誤り訂正も使用する。例えば、米国電気通信工業会は、コーディング利得を提供し、システムの容量を増加するために、合同符号化を使用するデジタル無線通信システムを定義する、無線によるインタフェース規格ＴＩＡ／ＥＩＡ中間規格９５、および（ここに集合的にＩＳ−９５と呼ばれている）ＩＳ−９５Ｂなどのその派生物を広める。実質的にＩＳ−９５規格の使用に従った無線周波数（ＲＦ）信号を処理するためのシステムおよび方法は、本発明の譲受人に譲渡され、ここに参照して完全に組み込まれている米国特許第５，１０３，４５９号に説明される。
【００１１】
通信業界では、コーディング利得を引き続いて改善するための継続的な動因がある。従来のデジタル無線通信システムにおいては、ターボコーディング用のシリアルインタリーバは、合同ランダムシーケンスで有利に実現されてよいことが判明している。線形合同再帰アルゴリズムを使用して一様乱シーケンスが生成されてよいことは、技術で既知である。例えば、２Ｄ．Ｋｒｕｔｈの（線形合同再帰による擬似無作為番号の生成を説明する）コンピュータプログラミングの技術（Ｔｈｅ  Ａｒｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍｍｉｎｇ）（１９６９年）を参照すること。２次元インタリーバ（つまり、行と列を備える矩形データアレイとして組織されるインタリーバ）を利用する並列ターボコーダは、通常、コーディング利得という点で、１次元インタリーバ（つまり、データが単一の線形アレイとして組織されるインタリーバ）を有する並列ターボコーダより性能が優れている。
【００１２】
ターボコーダの性能をさらに高めることは有利だろう。さらに、ターボコーダが畳み込みコーダより実現するのがはるかに複雑であるため、複雑度が削減されたターボコーダ実現を提供することが望ましいだろう。このようにして、複雑度の削減、複数線形合同シーケンスを使用する２次元インタリーバに対するニーズがある。
【発明の概要】
【００１３】
本発明は、複数の線形合同シーケンスを使用する複雑度が削減された２次元インタリーバを目的としている。したがって、発明のある態様においては、ターボコーダは、有利なことに、連続して複数の入力ビットを受信し、そこから第１の複数の出力シンボルを生成するように構成される第１コーダと、連続して複数の入力ビットを受信するように構成されるインタリーバとを含み、該インタリーバは、行と列のマトリックスで配列されている複数のビット記憶位置を受信するように構成され、該インタリーバの各行内でビットをシャッフルするためのシーケンスを擬似無作為に生成するように構成される線形合同シーケンス生成器、およびインタリーバから連続して複数のインタリーブ化されたビットを受信し、そこから第２の複数の出力シンボルを生成するように構成される第２コーダとを含む。
【００１４】
本発明の別の態様においては、データ要素をインタリーブする方法は、有利なことに、ビット記憶位置のマトリックに行ごとに連続してデータ要素を書き込む工程と、線形合同シーケンス再帰に従ってビット記憶位置のマトリックスないの各行内でデータ要素を擬似無作為に再配列する工程と、ビット記憶位置のマトリックスから列ごとに連続してデータ要素を読み取る工程とを含む。
【００１５】
本発明の別の態様では、インタリーバは、有利なことに、ビット記憶位置のマトリックスに行ごとに連続してデータ要素を書き込むための手段と、線形合同シーケンス再帰に従ってビット記憶位置のマトリックス内の各行内でデータ要素を擬似無作為に配列し直すための手段と、ビット記憶位置のマトリックスから列ごとに連続してデータ要素を読み取るための手段とを含む。
【図面の簡単な説明】
【００１６】
【図１】図１は、並列連結ターボコーダのブロック図である。
【図２】図２は、図１の並列連結ターボコーダで使用されてよいインタリーバのブロック図である。
【図３】図３は、図２のインタリーバとともに使用されてよい構成体エンコーダのブロック図である。
【発明を実施するための形態】
【００１７】
図１に示されるように、１つの実施形態に従って、並列連結ターボエンコーダ１０またはターボコーダ１０は、第１コーダと第２コーダ１２、１４、インタリーバ１６、およびマルチプレクサ１８を含む。第１コーダ１２およびインタリーバ１６は、典型的にはユーザ情報または制御データである、エンコーダ入力データ２０を受け取るように構成される。第１コーダ１２は、典型的には、元の入力ビット２０のコピーである体系化されたシンボル２２、およびパリティシンボル２４を出力する。第２コーダ１４は、インタリーバ１６のインタリーブされた出力２６を受け取り、パリティシンボル２８の第２セットを出力するように構成される。第２コーダ１４によって生成される、体系化されたシンボル（図示されていない）は抑制され、第１コーダと第２コーダ１２、１４の残りのそれぞれの出力２２、２４、２８は、出力データストリーム３０の中にマルチプレクサ１８によって多重化される。
【００１８】
追加コーダおよびインタリーバの組は、コーディング率を削減するために並列で追加されてよく、それによって機能強化された前進誤り訂正を提供する。代わりに、体系化されたシンボル２２および／またはパリティシンボル２４のいくつかは、コーディング率を高め、改善されたスペクトル効率を提供するためにパンクチュアされてよい。
【００１９】
第１コーダおよび第２コーダ１２、１４は、ブロックコーダおよび畳み込みコーダを含む、技術で既知の多様な種別のコーダであってよい。例示的なブロックコーダおよび畳み込みコーダは、参照してここに組み込まれているＢｅｒｎａｒｄ  Ｓｋｌａｒのデジタル通信（Ｄｉｇｉｔａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）２４５−３８０（１９８８年）に説明されている。低制約長は、対応するデコーダ（図示されていない）の複雑度を削減するため、第１コーダおよび第２コーダ１２、１４は、有利なことに、例えばＫ＝４などの相対的に小さい制約長Ｋの畳み込みコーダであり、それによって複雑度の削減を実現する。第１コーダおよび第２コーダ１２、１４は、有利なことに、技術で既知であるように再帰的な体系化された畳み込み（ＲＳＣ）エンコーダでもある。インタリーバ１６は、有利なことに、後述されるように２次元インタリーバである。
【００２０】
典型的には、第１コーダと第２コーダ１２、」１４は、受信されたビット２０ごとに２個のパリティシンボルを出力し、コーダ１２、１４ごとにコーディング速度Ｒ＝１／２を生じさせる。それにも関わらず、ターボコーダ１０の総コーディング速度は、第２コーダ１４からの体系的なビットがパンクチュアされるため、Ｒ＝１／３である。
【００２１】
図２に示されているように、１つの実施形態に従った２次元（２−Ｄ）線形合同シーケンス（ＬＣＳ）インタリーバ１００は、４つのルックアップテーブル（ＬＵＴ）１０２、１０４、１０６、１０８、７つの２入力マルチプレクサ（ＭＵＸ）１１０、１１２、１１４、１１６、１１８、１２０、１２２、Ｒ入力ＭＵＸ１２４、行カウンタ１２６、第１および第２ビット逆論理ブロック１２８、１３０、アドレス妥当性検査モジュール１３２、複数Ｒの列インデックス、または（簡略さのために４つのレジスタとして図示されている）行レジスタ１３４、１３６、１３８、１４０、列インデックスリセットにフラグを立てるためのレジスタ１４２、第１および第２ｋビット乗算器１４４、１４６、および４つのｋビット加算器１４８、１５０、１５２、１５４を含む。ＬＣＳ再帰生成器１５６は、破線封入により描かれている。インタリーバ１００は、図１の並列連結ターボコーダ内で使用されてよいか、あるいは代わりにインタリーバ１００は、当業者により理解されるように、インタリーバ１００が外側構成要素コードおよび内側構成要素コードに配置されるシリアル連結ターボコーダで使用されてよい。
【００２２】
インタリーバ１００のサイズは、２ｍ未満であるか２ｍに等しく、２ｍ−１より大きいＮである。列の数Ｃによって乗算される行の数Ｒは、２ｍに等しい。列の数Ｃは２ｋに等しい。つまりｋ＝ｌｏｇ２Ｃである。行の数Ｒ１は、２ｒに等しい。つまりｒ＝ｌｏｇ２Ｒである。
【００２３】
アドレス妥当性検査モジュール１３２は、有利なことに、シフトレジスタおよび加算器として構成されている離散ゲート論理として実現されてよい。アドレス妥当性検査モジュール１３２は、Ｘ入力が、列数ＣおよびＹ入力（行インデックス）の積未満であるかどうかをチェックするために役立ち、シフトおよび追加機能を実行する。アドレス妥当性検査モジュール１３２は、アドレスが無効であるかどうか、つまりアドレスに廃棄されなければならない２の累乗を越えるビットが含まれているかどうかを示す。
【００２４】
ＬＣＳ再帰生成器１５６は、後述するように、４つのＬＵＴ１０２、１０４、１０６、１０８への入力で行番号を受信し、列インデックス（アドレス妥当性検査モジュール１３２に対するＺ入力）を生成することによって、インタリーバ１００の各行に含まれているビット値を擬似無作為に再配列する、あるいはシャッフルする役割を果す。当業者は、図１に示されているような並列連結ターボコーダ内で、データ要素の物理的な再配列が、第２エンコーダによってアドレス指定された読取りで擬似無作為に生成されたＬＣＳを使用することの方を選んで有利に巧みに回避されてよい。第１ビット逆論理ブロックおよび第２ビット逆論理ブロック１２８、１３０は、後述されるように、および技術で既知であるように、事前に定義されたビット逆順規則に従ってインタリーバ１００内の行を配列し直す、またはシャッフルする役割を果す。
【００２５】
ＬＵＴ１０２、１０４、１０６、１０８は、技術で既知である任意の記憶媒体として実現されてよい。第１ＬＵＴ１０２は、係数ｃの値を記憶するために使用される。第２ＬＵＴ１０４は、係数ａの値を記憶するために使用される。第３ＬＵＴ１０６は、係数ｂの累乗に取られる係数ａの値を記憶するために使用される。第４ＬＵＴ１０８は、ｘ（−１）の値を記憶するために使用される。各ＬＵＴ１０２、１０４、１０６、１０８のサイズはｒｘｋビットである。インタリーバ１００の総メモリ要件は、レジスタ１３４、１３６、１３８、１４０に関して４ｒｘｋビットにｒｘｋレジスタビットを加えたものである。
【００２６】
レジスタ１４２は、Ｒ−１に初期に設定される、行数を指定するビット値を受信する。各処理サイクルでは、レジスタ１４２は、初期にゼロに等しく設定されていない列番号を意味するビット値を出力する。レジスタ１４２は、それによって、行番号が行のすべてを循環するたびに列インデックスをリセットするために役立つ。
【００２７】
各処理サイクルでは、入力ＭＵＸ１１０が、ＲｕｎＢａｃｋｗａｒｄｓフラグがセットされるかどうかに応じて１または−１のどちらかの値を生成する。値は、値をＮｅｘｔＲｏｗで示されるビット値に加算する加算器１４８に提供される。結果として生じる合計は、行カウンタ１２６のデータ入力に提供される。１という値は、行カウンタ１２６の第２入力に提供される。行カウンタ１２６は、第２ビット逆論理ブロック１３０に提供される（レジスタ１４２内でＲ−１つぃて初期に記憶される）行値を生成する。行値は、ＬＵＴ１０２、１０４、１０６、１０８のそれぞれにも提供される。行値は、行値を１という値に追加する加算器１５０にも提供され、第１ビット逆論理ブロック１２８に結果として生じる合計を提供する。この結果として生じる合計は、ＭＵＸ１１２の第１入力にも提供される。
【００２８】
各処理サイクルで、第１ビット逆論理ブロック１２８は、ＭＵＸ１１４の第１入力に値を提供する。第２ビット逆論理ブロック１３０は、行インデックス値をＭＵＸ１１４の第２入力に、およびアドレス妥当性検査モジュール１３２のＹ入力にも提供する。アドレス妥当性検査モジュール１３２はＸ入力で値Ｎを受け取る。アドレス妥当性検査モジュール１３２は、Ｚ入力で記憶される係数に基づいた値を受け取る。ＬＣＳアドレス妥当性検査モジュール１３２は、ＣおよびＹ入力値の積を計算し、積をＺ入力値に加算し、結果がＸ入力値Ｎより大きい、または等しいかどうかをチェックする。計算された値はＮより大きいまたはＮに等しい場合、アドレス妥当性検査モジュール１３２は１という値を出力する。それ以外の場合、出力の値は０である。出力値は、Ａｄｄｒ＿ＧＴ＿Ｎと示されるフラグであり、１に設定されるとき、インタリーバのサイズが、２という低い方の累乗を超える過剰なビットが廃棄されなければならないように、２の連続する累乗の間であることを意味する。
【００２９】
Ａｄｄｒ＿ＧＴ＿Ｎ値は、ＭＵＸ１１２、１１４、１２０および１２０へのセレクタ入力として提供される。ＭＵＸ１１２は、Ａｄｄｒ＿ＧＴ＿Ｎ値が１に設定される場合にその第１入力を選択する。ＭＵＸ１１２から出力される選択された入力は、インタリーブされたＮｅｘｔＲｏｗ値である。ＭＵＸ１１４は、Ａｄｄｒ＿ＧＴ＿Ｎ値が１に設定される場合に、その第１入力を選択する。ＭＵＸ１１４から出力される選択された入力は、最終的な行インデックス値を表す。
【００３０】
ＬＣＳ再帰生成は、以下の通りに実行される。各処理サイクルを使用すると、係数ｃを表すｋビット値は、第１ＬＵＴ１０２からデータ経路ｋ−ビット加算器１５２に送信される。値ａは、第２ＬＵＴ１０４からＭＵＸ１１６の第１入力に送信される。累乗ｂに取られるａを表す値は第３ＬＵＴ１０６からＭＵＸ１１６の第２入力に送られる。ＭＵＸ１１６はセレクタ入力時にＲｕｎＢａｃｋｗａｒｄｓフラグを受け取る。ＲｕｎＢａｃｋｗａｒｄｓ値が１である場合、ＭＵＸ１１６はその第２入力を選択し、選択された値であるｋビット値を乗算器１４４に提供する。それ以外の場合、ＭＵＸ１１６はその第１入力であるｋビット値を乗算器１１４に提供する。値ｘ（−１）は、第４ＬＵＴ１０８からＭＵＸ１１８の第１入力に送信される。ＭＵＸ１１８は、第２入力で、ＭＵＸ１２４から出力されるＫ−ビット値を受け取る。ＭＵＸ１１８は、セレクタインデックスで列インデックス値を受け取る。列インデックス値は、当初、ゼロに等しく設定されていない。列インデックス値が１である場合、ＭＵＸ１１８はその第２入力を選択する。それ以外の場合、ＭＵＸ１１８は、その第１入力を選択する。選択された入力値である、ｋビット値は、乗算器１１４に提供される。乗算器１１４から結果として生じる積は、ｋビット加算器１５２に提供される。有利なことに、データ経路ｋビット加算器１５２は、技術で既知であるように、プログラム可能な加算器／減算器である。インタリーバ１００が逆方向へ実行しているとき、加算器１５２は値ｃを差し引く。
【００３１】
ｋビット加算器１５２は、出力値に、アドレス妥当性検査モジュール１３２のＺ入力への各処理サイクルを提供する。加算器１５２の出力は、ＭＵＸ１２０の第１入力に、および（Ｒ−１）番目の行レジスタ１３６、１３８、１４０を通して第１入力のそれぞれにも提供される。加算器１５２の出力も、ＭＵＸ１２２の第１入力へのＫ−ビット入力値として提供される。
【００３２】
ＭＵＸ１２０は、ｋビット加算器１５４から第２入力値を受け取る。ＭＵＸ１２０のセレクタ入力が１に設定されると、ＭＵＸ１２０はその第１入力を選択する。それ以外の場合、ＭＵＸ１２０はその第２入力を選択する。選択された入力が、ゼロ番目の行レジスタ１３４に提供される。それぞれの行レジスタ１３４、１３６、１３８、１４０は、ＭＵＸ１２４のそれぞれの入力に出力値を提供する。さらに、ゼロ番目の行レジスタ１３４からの出力値は、乗算器１４６に提供される。ＭＵＸ１２４は、セレクタ入力で行値（行カウンタ１２６の出力）を受け取る。ＭＵＸ１２４によって選択される行レジスタ入力は、セレクタ入力での行値の値に依存する。このようにして、各行レジスタ１３４、１３６、１３８、１４０は、行値がそれぞれの行レジスタ番号に等しいときに更新され、ゼロ番目の行レジスタ１３４は、フラグＡｄｄｒ＿ＧＴ＿Ｎがゼロに等しいときにもイネーブルされる。
【００３３】
Ｒ＝０の場合のｋビット初期入力値ｂは、乗算器１４６に提供される。乗算器１４６は、ゼロ番目の行レジスタ１３４から出力される値も受け取る。乗算器１４６は、２つの受信された値をともに乗算し、ｋビット加算器１５４に結果として生じる製品を提供する。データ経路ｋビット加算木１５４も、Ｒ＝０の場合の初期入力値を受け取る。有利なことに、データ経路ｋビット加算器１５４は、技術で既知であるように、プログラム可能な加算器／減算器である。インタリーｂ１００が逆方向へ実行しているとき、加算器１５４は初期値ｃを差し引く。加算器１５４は、２つの受け取られた値を合計する（あるいは、プログラムされているように差し引く）。結果として生じる合計であるｋビット値は、ＭＵＸ１２２の第２入力に提供される。
【００３４】
そのセレクタ入力が１に設定される場合、ＭＵＸ１２２はその第１入力を選択する。それ以外の場合、ＭＵＸ１２２はその第２入力を選択する。ＭＵＸ１２２は、最終的な列インデックス値として選択された入力を出力する。次のビット値のアドレスは、ＲとＭＵＸから出力される最終的な行インデックス値の積であり、ＭＵＸ１４４から出力される最終列インデックス値と合計される。
【００３５】
ある実施形態においては、期間ＭのＬＣＳは、以下のアイデンティティに従って、再帰的に生成され、
ｘ（ｎ＋１）＝（ａｘ（ｎ）＋ｃ）ｍｏｄＭ
整数ａ、ｃ、およびＭが以下の３つの条件を満たす。つまり、（１）ｃはＭに対して相対的に素数でなければならない。（２）ａ−１はｐの倍数でなければならず、ｐはＭを分割する任意の素数である。Ｍが４の倍数であるとき、ａ−１は４の倍数でなければならない。（３）ｘ（０）は、任意の整数である場合があるシード値である。実現を簡略化するためには、有利なことに、Ｍは２の累乗であると選ばれてよい。このようにして、ａは４ｐ＋１の形式を取らなければならないが、ｃは任意の奇数として解釈できる。ｘ（０）が初期条件を示すために前記で使用されるが、ｘ（−１）が図２と関連して説明される実施形態で初期値を表すために使用されることに注意する必要がある。使用されているさまざまな数は重視されていない。
【００３６】
ある実施形態に従った２−Ｄ、ＬＣＳインタリーバは、以下のように指定される。つまり、インタリーブサイズをＫ＝２Ｎとし、インタリーバは、Ｒ行およびＣ列のある矩形のマトリックスとして指定され、そこではＲおよびＣの両方が２の累乗で示される。インタリーブされるデータは、マトリックスの中に行単位で書き込まれる。データの行は、最初に、従来のインタリーブ規則に従って入れ替えられる（つまり、インタリーブされる）。有利なことに、データの行は行インデックスに適用されるビット逆順序規則に従って、入れ替えられる。各行内では、列（つまり、各列が行辺り１つのデータ要素を有するので、データ要素）が、関連するＬＣＳにより指定される規則に従って入れ替えられる。２つの別個の行と関連するＬＣＳは有利なことに異なっているが、代替では同じであってよい。行のすべての入れ替えの後、データはインタリーブされたシーケンスを生じさせるために列単位で読み出される。当業者が理解するように、２Ｎ未満であり、２Ｎ−１より大きい長さのインタリーバは、２Ｎという長さのインタリーバから無効なアドレスを削除することによって生成することができる。
【００３７】
ある実施形態では、２−Ｄ、ＬＣＳインタリーバは、以下の仕様を含む：インタリーバのサイズは３２（つまりＮ＝５）であり、データアレイは｛ｄ（０）、ｄ（１）、ｄ（２）、．．．ｄ（３１）｝として定義される。インタリーバは４行および行あたり８つの要素のあるアレイとして編成される。データ要素は、以下のようにして行ごとに満たされる。
【数１】
0005394410.tif 000002
【００３８】
バイナリ（００、０１、１０、１１）の行インデックスは、有利なことに、逆にされるビット（つまり、００、１０、０１、１１）であってよく、行は、その結果、以下を得るために入れ替えられる。
【数２】
0005394410.tif 000003
【００３９】
ビット逆順は、事前に定められていたビット逆順アルゴリズムに従って、インタリーバの行をシャッフルするために役立つ。ビット逆順アルゴリズムの用途は、インタリーバの行の間で所望の時間分割を提供する。それにも関わらず、インタリーバの実現には、ビット逆順は必要ではない。
【００４０】
特定の実施形態では、入れ替えＬＣＳが以下の等式に従って生成される。
【００４１】
ｘ１（ｎ＋１）＝（５ｘ１（ｎ）＋７）ｍｏｄ８、  ここでｘ１（０）＝３、  ｘ２（ｎ＋１）＝（ｘ２（ｎ）＋５）ｍｏｄ８、    ここでｘ２（０）＝０、  ｘ３（ｎ＋１）＝（５ｘ３（ｎ）＋３）ｍｏｄ８、  ここでｘ３（０）＝４、および
ｘ４（ｎ＋１）＝（ｘ４（ｎ）＋３）ｍｏｄ８、    ここでｘ４（０）＝３、
入れ替えパターンは、４行それぞれで｛３、６、５、０、７、２、１、４｝、｛０、５、２、７、４、１、６、３｝、｛４、７、６、１、０、３、２、５｝および｛７、２、５、０、３、６、１、４｝により指定される。したがって、列の入れ替えの適用後、第１行は、以下のとおりになり、
（ｄ（３）  ｄ（６）  ｄ（５）  ｄ（０）  ｄ（７）  ｄ（２）  ｄ（１）  ｄ（４））、
第２行は以下の通りになり、
（ｄ（１６）  ｄ（２１）  ｄ（１８）  ｄ（２３）  ｄ（２０）  ｄ（１７）  ｄ（２２）  ｄ（１９））、
第３行は以下の通りになり、
（ｄ（１２）  ｄ（１５）  ｄ（１４）  ｄ（９）  ｄ（８）  ｄ（１１）  ｄ（１０）  ｄ（１３））、
そして、第４行は以下の通りになる。
【００４２】
（ｄ（３１）  ｄ（２６）  ｄ（２９）  ｄ（２４）  ｄ（２７）  ｄ（３０）  ｄ（２５）  ｄ（２８））、
列のすべてがそのそれぞれの行の中で入れ替えられた後に、インタリーブされたデータマトリックスは以下の形式を有する。
【数３】
0005394410.tif 000004
【００４３】
インタリーブされたマトリックス内のデータは、列単位で読み出され、以下のインタリーブされたシーケンスを生じさせる：｛ｄ（３）、ｄ（６）、ｄ（１２）、ｄ（３１）、ｄ（６）、ｄ（２１）、ｄ（１５）、ｄ（２６）、ｄ（５）、ｄ（１８）、ｄ（１４）、…ｄ（１１）、ｄ（３０）、ｄ（１）、ｄ（２２）、ｄ（１０）、ｄ（２５）、ｄ（４）、ｄ（１９）、ｄ（１３）、ｄ（２８）｝長さ３０のインタリーバが所望される場合、前述されたように生成されたインタリーバは、データ要素ｄ（３０）およびｄ（３１）を削除し、以下のインタリーブされたシーケンスを作り出すことにより短縮することができる：｛ｄ（３）、ｄ（１６）、ｄ（１２）、ｄ（３１）、ｄ（６）、ｄ（２１）、ｄ（１５）、ｄ（２６）、ｄ（５）、ｄ（１８）、ｄ（１４）、…ｄ（１１）、ｄ（３０）、ｄ（１）、ｄ（２２）、ｄ（１０）、ｄ（２５）、ｄ（４）、ｄ（１９）、ｄ（１３）、ｄ（２８）｝
インタリーバ構築で利用されるＬＣＳは、ターボ復号でのＭＡＰデコーダとの最適なしようのために、所望されるように、順方向または逆方向のどちらかで生成できる。１つの実施形態では、逆シーケンス生成は、以下の等式によって示される。
【００４４】
ｘ（ｎ）＝（ａβｘ（ｎ＋１）−ｃ）ｍｏｄＭ、
ここでは、
β＝（ＭＲ）−１
前記等式で使用されるように項βは、図２の実施形態に関連して記述される係数ｂを表す。
【００４５】
このようにして、ＬＣＳの生成には、各インタリーバが、３Ｒパラメータによって一意に定められ、この場合Ｒが行数であることが必要とされる。相対的に短いｌｏｇ２（Ｃ）ｘｌｏｇ２（Ｃ）乗算器が必要とされる。モジュロ演算のため、ビット位置ｌｏｇ２（Ｃ）の上でビットを生成することは必要ない。Ｒレジスタの１つの集合が、Ｒ合同シーケンスの中間結果を保持するために必要とされる。
【００４６】
行ごとにさまざまなパラメータｘ（０）、ａ、およびｂがある場合、入れ替えシーケンスには多くの異なる可能性がある。特定のターボコードと使用するためにインタリーバパラメータを最適化するために検索を実行することが望ましい。
【００４７】
図３では、１つの実施形態に従った構成体エンコーダ２００が、ＣＤＭＡデジタル無線通信システムで使用される特定のターボコードのために最適化される。エンコーダ２００は、７個のモジュロ−２加算器、２０２、２０４、２０６、２０８、２１０、２１２、２１４および３つのビット位置２１６、２１８、２２０を含む。ビット位置２１６、２１８、２２０は、３ビットレジスタまたは代わりに３つの１ビットレジスタとして実現されてよい。モジュロ−２加算器２０２、２０４、２０６、２０８、２１０、２１２、２１４は、フィードバックタップの所望される集合を生じさせるために、正確な様式でビット位置２１６、２１８、２２０に結合される。このようにして、加算器２０２は入力ビットを受け取るように構成される。加算器２０２は、ビット位置２１６、および加算器２０４と２０６にも結合される。ビット位置２１６は、ビット位置２１８に、および加算器２０４と２０６に結合される。ビット位置２１８は、ビット位置２２０に、および加算器２０８と２１０に結合される。加算器２１０は、加算器２０２に結合される。加算器２０４は、加算器２１２に結合される。加算器２０６は、加算器２０８に結合される。加算器２０８は、加算器２１４に結合される。ビット位置２２０は、加算器２１０、２１４、および２１２に結合される。加算器２１２、２１４は、それぞれ第１シンボルおよび第２シンボルを出力するように構成される。
【００４８】
エラー性能を、構成体デコーダ（図示されていない）でのエラーイベントの入力重量および出力重量により特徴付けることができることは技術で既知である。例えば、ＩＥＥＥ会報、情報理論（ＩＥＥＥＴｒａｎｓ．Ｉｎｆｏ．Ｔｈｅｏｒｙ）４０９−２８（１９９６年３月）の、Ｓ．ＢｅｎｅｄｅｔｔｏおよびＧ．Ｍｏｎｔｏｒｓｉのターボコードの発表：並行連結コーディング方式に関するなんらかの結果（Ｓｏｍｅ  Ｒｅｓｕｌｔｓ  ｏｎ  Ｐａｒａｌｌｅｌ  Ｃｏｎｃａｎｔｅｎａｔｅｄ  Ｃｏｄｉｎｇ  Ｓｃｈｅｍｅ）を参照すること。エラーイベントの入力重量とはビットエラーの数であるが、エラーイベントの出力重量はコードシンボルエラーの数である。入力重量１のエラーイベントは、明らかにすべてゼロの状態から分岐し、決して再マージしないだろう（１がシフトレジスタ内で無限に循環し、途中ますます多くの出力重量を蓄積する）。これは、エンコーダの再帰的な、つまりフィードバック部分のためである。この構造のため、高い信号対雑音比（ＳＮＲ）でのターボコードの性能が、入力重量２で出力エラーイベントにより支配されることが示された。同上を参照のこと。ターボコードエラーフロアは、いわゆる実効自由距離漸近線を使用して正確に予測することができる。実効自由距離は、入力重量２のすべてのエラーイベントの最小出力重量である。長さで短い入力重量２つのエラーエベントは、典型的には、最小距離エラーイベンとを引き起こす。図３のエンコーダ２００の場合、フィードバック多項式は１＋Ｄ２＋Ｄ３であり、すべての考えられる入力重量２エラーイベントは、形式Ｄｋ（１＋Ｄ７ｊ）であり、その場合、ｊ＝１、２．．．およびｋは範囲０．．．Ｋ−７ｊの範囲内での任意のシフトである（Ｋはインタリーバサイズであると想定される）。これは、当業者に理解されるように、構成体エンコーダ２００の四目格子（ｔｒｅｌｌｉｓ）を調べることによって、容易に検証することができる。
【００４９】
図３の実施形態のインタリーバサイズがＫで示されるが、図２のインタリーバサイズがＮで示されることに注意する必要がある。当業者は、さまざまな文字が使用されるという事実が特に重要視されないことを理解するだろう。
【００５０】
例えば、Ｄｋ（１＋Ｄ７）というエラーパターンにより、第１デコーダの中から最小距離エラーイベントが引き起こされると仮定する。ターボインタリーバは、２つのエラー（Ｄｋ、Ｄｋ＋７）を２つの位置（Ｄｎ、Ｄｍ）の中にマップするだろう。｜ｍ−ｎ｜＝７または７のなんらかの倍数である場合、第２デコーダからの低距離エラーイベントが考えられる。ターボインタリーバの根本的な目的とは、このようなマッピングが発生するのを防ぐことである。すなわち、インタリーバは、第１寸法での低重量エラーイベントを受けやすいビットの集合体を、第２方向で大量の出力重量を生じさせるビットの集合体にマッピングする必要がある。したがって、インタリーバの設計への所望のアプローチは、インデックス（ｋ、ｋ＋７ｊ）に位置するビット組が、インデックス（ｓ、ｓ＋７）に位置するビット対にマッピングするのを防ごうとすることであり、特にｊおよびｔというさらに小さい値を強調する。このような入力エラーイベントは、以下の表１に一覧表示されている。イベントごとに、ＩＳ−９５に規定されるように、速度１／２、１／３および１／４順方向リンクターボコードの適切な破壊パターンを使用して、第１構成体コードの出力パリティ重量が一覧表示される。
【表１】
0005394410.tif 000005
【００５１】
指定されたインタリーバが、形式Ｄｋ１（１＋Ｄ７）→Ｄｋ１（＋Ｄ７）の入力重量２→２を備える場合には、結果として生じるエラーイベントの複合出力重量は、速度１／２ターボコードの場合、２＋３＋３＝８となるだろう。過去の計算では、体系化されたビット（２）の重量は、２つの構成体エンコーダ（３と３）からそれぞれのパリティ重量と合計される。同様に、インタリーバが形式Ｄｋ１（１＋Ｄ７）→（１＋Ｄ１４）の入力重量２→マッピングを備える場合には、結果として生じるエラーイベントの復号出力重量は、速度１／２ターボコードの場合２＋３＋６であるか、速度１／３ターボコードの場合、２＋６＋１０＝１８となるだろう。
【００５２】
加えて、低構成体出力重量の入力重量４エラーイベントが、第２寸法での低出力重量の２つの入力重量２エラーイベントにマップしてよいことが考えられる。このようなマッピングは、４→｛２、２｝で示される。入力重量４の構成体エラーイベントには閉鎖形式の解決策はないが、以下の表には、構成体エンコーダ２００の低出力重量エラーイベントのいくつかが含まれ、構成体エンコーダ２００は、ＩＳ−９５から引き出される無線によるインタフェースを使用するＣＤＭＡデジタル無線通信システム内での順方向リンクターボコード用の第１構成体エンコーダとして使用されている。
【表２】
0005394410.tif 000006
【００５３】
例えば、インタリーバが形式Ｄｋ１（１＋Ｄ３＋Ｄ４＋Ｄ５）→｛Ｄｋ２（１＋Ｄ７）Ｄｋ３（１＋Ｄ７）｝の入力重量４→｛２、２｝マッピングを備える場合には、結果として生じるエラーイベントの複合出力重量は、速度１／２ターボコードの場合、４＋２＋３＋３＝１２となるだろう。この複合エラーイベントは、複合出力重量１１を有するマッピングＤｋ１（１＋Ｄ７）→Ｄｋ２（１＋Ｄ１４）のためのエラーイベントよりはるかに悪くない。したがって、主たる設計目標は、悪いマッピングの前述されたタイプが回避される、あるいは少なくとも最小限に抑えられるように、インタリーバのパラメータを最適化することである。理想的には、最低の複合出力重量を有する悪いマッピングは、回避する、および／または最小限に抑えるために最も重要なマッピングである。ある特定のサイズ（例えば、１５３０）ためにインタリーバを設計する上では、両方の種類のマッピング（つまり、重量２→２および重量４→｛２、２｝）を最小限に抑えるように、インタリーバパラメータを最適化することが可能である。このアプローチは、その特定のサイズに最適なインタリーバを生じさせる。２Ｎ−１（パンクチュアしやすいインタリーバと称される）より大きい任意のサイズに堅牢にパンクチュアできるサイズ２Ｎというインタリーバを設計する上では、重量４→｛２、２｝マッピングの最適化は、達成するのがはるかに困難である可能性があることに注意する必要がある。
【００５４】
検索は、図３の実施形態に従って２−Ｄ  ＬＣＳインタリーバからサイズ２Ｎの破壊フレンドリなインタリーバを得るために実行された。以下の表３は、検索の初期結果を含む。インタリーバサイズごとに、使用される行数、使用される列数がｘ（０）、ａ、およびｃ係数がともに指定されている。実行の簡略さおよび効率のために、３分の２行がすべてのインタリーバに使用された。
【表３】
0005394410.tif 000007
【表４】
0005394410.tif 000008
【００５５】
代替実施形態では、係数ａは、１に等しく設定されてよく、２−Ｄ、ＬＣＳインタリーバからサイズ２Ｎのパンクチュアしやすいインタリーバを得るために、新規検索が実行される．順方向および逆方向のＬＣＳ再帰等式は、それぞれ以下まで簡略化する：
ｘ（ｎ＋１）＝（ｘ（ｎ）＋ｃ）ｍｏｄＭ、
および
ｘ（ｎ）＝（ｘ（ｎ＋１）−ｃ）ｍｏｄＭ
以下の表４は検索の初期結果を記載する。実行の簡略さおよび効率のため、すべてのインタリーバ用に３２行が使用された。当業者は、表４に示されている結果から、すべてのＬＣＳ再帰中で１に等しい設定値ａが、結果として生じるインタリーバの品質において何の不利も誘発しないことを理解するだろう。さらに、１に等しい設定値ａの簡略化から達成される複雑度の利得はかなりである。例えば、図２の実施形態で説明されている第２ＬＵＴおよび第３ＬＵＴ（ａおよｂａｂという値を記憶するために使用されるＬＵＴ）は、必要とされていない。図２の実施形態に説明されているｋビットの乗算器も必要ではない。以下の表４から分かるように、初期状態ｘ（−１）および追加定数ｃだけが、インタリーバの行ごとに指定される必要がある。より大きなサイズのインタリーバの係数は、それらが本出願の提出の時点では入手できなかったため、初期検索結果だけを指定する表には含まれていない。
【表５】
0005394410.tif 000009
【００５６】
このようにして、新規の改善されたターボコードインタリーバが説明されてきた。当業者は、ここに開示されている実施形態がセルラー電話システムの文脈で説明されてきたが、本発明の特徴が、例えば、衛星通信システムなどを含む任意の形式の通信システムでの用途にも十分に等しく役立つことを理解するだろう。さらに、ここに説明されている実施形態が、データ通信または音声通信のどちらかを符号化するために必要とされてよいことも当業者によってさらに理解されるだろう。また、前記説明を通して参照されてよいデータ、命令、コマンド、情報、信号、ビット、シンボルおよびチップが、電圧、電流、電磁波、磁界または磁粉、光学フィールドまたは光学粒子、あるいはその任意の組み合わせにより有利に表されることも理解されるだろう。
【００５７】
当業者は、さらに、ここに開示されている実施形態と関連して説明されている多様な例示的な論理ブロックおよびアルゴリズムの工程が、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、離散ゲートまたはトランジスタ論理、例えばレジスタとＦＩＦＯなどの離散ハードウェア構成要素、１セットのファームウェア命令を実行するプロセッサ、あるいは任意の従来のプログラム可能なソフトウェアモジュールおよびプロセッサで実現されるか、あるいは実行されてよいことを理解するだろう。プロセッサは、有利なことにマイクロプロセッサであってよいが、代替では、プロセッサは任意の従来のプロセッサ、制御装置、マイクロコントローラ、または状態機械であってよい。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、レジスタ、または技術で既知である書込み可能の記憶媒体の任意のその他の形式に常駐できるだろう。
【００５８】
本発明の好ましい実施形態は、このようにして示され、説明されてきた。しかしながら、本発明の精神または範囲から逸脱することなく、多数の改変がここに開示されている実施形態に加えられてよいことは普通の技術の熟練者にとって明らかだろう。したがって、本発明は以下のクレームに従った場合を除き、制限されていない。
【符号の説明】
【００５９】
１２、１４…コーダ
１６…インタリーバ
１８…マルチプレクサ
２０…エンコーダ入力データ
２２、２４、２６…出力
２８…パリティシンボル
３０…出力データストリーム
１００…インタリーバ
１０２、１０４、１０６、１０８…ＬＵＴ
１１０、１１２…入力マルチプレクサ
１１４、１１６、１１８、１２０、１２２、１２４…ＭＵＸ
１２６…行カウンタ
１２８、１３０…ビット逆論理ブロック
１３２…アドレス妥当性検査モジュール
１３４、１３６、１３８、１４２…レジスタ
１４４、１４６…ビット乗算器
１４８、１５０、１５２、１５４…加算器
１５６…ＬＣＳ再帰生成器
２００…エンコーダ
２０２、２０４、２０６、２０８、２１０、２１２、２１４…加算器
２１６、２１８、２２０…ビット位置
【図１】
0005394410.tif 000010
【図２】
0005394410.tif 000011
【図３】
0005394410.tif 000012