(57)【要約】本発明の方法および装置を用いて、同一のＬＤＰＣ符号を使用する互いに異なる装置を互いに異なる並行処理度を使用して実施できる通信システムを実施することができる。新種のＬＤＰＣ符号を使用することで、並行処理におけるそのような違いを可能にできる。因数分解置換器を本発明の様々な実施形態において使用することによって、エンコーダおよびデコーダにおける互いに異なる並行処理度のＬＤＰＣ装置を、本明細書において説明するクラスのＬＤＰＣ符号を使用して比較的容易に実施できる。因数分解置換器は、制御可能な多段階切り換え装置として実施されてもよく、当該装置は、メモリと、Ｚ要素ベクトルプロセッサとの間で渡されるＺ要素ベクトルに対して、無し、１つ、または複数の連続的な再順序付け動作を行い、各個々のベクトルの切り換えは、実施される符号のグラフ構造に従って制御される。
2006519560.tif 000002
【特許請求の範囲】
【請求項１】
ＬＤＰＣ処理動作を行うための装置であって、
複数のＺ要素ベクトルを記憶するためのメモリであって、各Ｚ要素ベクトルは、Ｚ要素を含み、各要素は、処理すべき少なくとも１つのビットを含む、メモリと、
並行的に動作するように配列されたＺ処理要素を含む並行ＬＤＰＣ処理モジュールと、
前記メモリを前記並行ＬＤＰＣ処理モジュールに結合するための制御可能な因数分解置換器とを備え、前記制御可能な因数分解置換器は、切り換え回路を含み、前記切り換え回路は、制御信号に応答して、因数分解置換動作を前記因数分解置換器を介して渡されたＺ要素ベクトルに対して因数分解置換動作を行い、前記因数分解置換動作は、ベクトル要素の第１および第２の再順序付けを生じさせる第１および第２の置換動作を含み、前記第１および第２の置換動作は、大きさＺ／ｎであるｎ個の均等な大きさのベクトル部分に対して行われ、前記第１の置換動作は、少なくとも２つの均等な大きさのベクトル部分の順序を変更させ、前記第２の置換動作は、Ｚ／ｎの大きさの各部分に対して行われて、前記Ｚ／ｎの大きさの各部分内において要素の順序を変更させ、ｎは１より大きくＺより小さい整数である、装置。
【請求項２】
前記因数分解置換器は、前記第１の再順序付けを行うための第１の切り換え回路と、前記第２の再順序付けを行うための第２の切り換え回路とを含み、前記第１および第２の切り換え回路は、直列に配列される、請求項１に記載の装置。
【請求項３】
前記数値ｎは、２の整数倍である、請求項１に記載の装置。
【請求項４】
第１の置換演算を前記第２の置換動作の後に実行でき、または前記第２の置換動作を前記第１の置換動作の後に実行できる、請求項１に記載の装置。
【請求項５】
実施されるべきＬＤＰＣ符号の少なくとも一部を規定する記憶されたＬＤＰＣ符号情報の組と、
置換器コントローラであって、前記記憶されたＬＤＰＣ符号情報に応答して、前記因数分解置換器を制御して、実行されるべきＬＤＰＣ符号の少なくとも一部に従って、ベクトル要素の再順序付けを実施する置換器コントローラとをさらに備える、請求項２に記載の装置。
【請求項６】
前記メモリに結合されたアドレスジェネレータをさらに備え、
置換器コントローラは、アドレスジェネレータコントローラとしても動作し、前記置換器コントローラは、前記アドレスジェネレータによって供給されたアドレスの選択を互いに異なる時点において制御して、メモリアクセス動作を因数分解置換器の再順序付け動作と調和させる、請求項２に記載の装置。
【請求項７】
前記第１および第２の再順序付け動作は、サイクリックシフト動作である、請求項１に記載の装置。
【請求項８】
前記並行ＬＤＰＣ処理モジュールにおける各Ｚ処理要素は、ＸＯＲ回路とアキュムレータとを含む、請求項２に記載の装置。
【請求項９】
前記並行ＬＤＰＣ処理モジュールにおける各Ｚ処理要素は、変数ノードおよびチェックノードプロセッサのうちの１つである、請求項２に記載の装置。
【請求項１０】
ＬＤＰＣ処理動作を実施するための方法であって、前記処理動作は、符号化および復号化動作のうちの１つであり、当該方法は、
複数の各Ｚ要素ベクトルを、前記複数のＺ要素ベクトルを記憶するために使用されるメモリと、Ｚ処理要素を含むＺ要素ベクトルプロセッサ部との間に配置された置換器に連続的に通過させることであって、各Ｚ要素ベクトルは、Ｚが２よりも大きな整数値であるＺ個の要素を有し、
前記置換器を制御して、前記メモリと、前記ベクトルプロセッサ部との間を通過したＺ要素ベクトルのうちの少なくとも１つに対して、因数分解置換動作を行って、前記少なくとも１つのＺ要素ベクトル内の要素を再順序付けすることとを含み、因数分解置換動作を行う前記ステップは、
前記少なくとも１つのＺ要素ベクトル内の第１の均等な大きさの複数のサブセットに対して、第１の再順序付け動作を行って、前記Ｚ要素ベクトル内において前記少なくとも１つのＺ要素ベクトル内の第１の均等な大きさのサブセットの順序を変更することと、
前記少なくとも１つのＺ要素ベクトル内の第１の均等な大きさの複数の各サブセットの内容に対して、第２の再順序付け動作を行って、前記第１の均等な大きさの複数の各サブセット内の要素の少なくともいくつかの要素の順序を変更することとを含み、同一の第２の再順序付け動作を前記第１の均等な大きさの各サブセットに対して行って、前記第１の均等な大きさの各サブセット内の要素の順番に同一の変更を生じさせる、方法。
【請求項１１】
前記第１の再順序付け動作は、前記Ｚ要素ベクトル内のサブセットのサイクリックシフトである、請求項１０に記載の方法。
【請求項１２】
前記第１および第２の再順序付け動作は、連続的に行われ、前記第２の再順序付け動作は、前記第１の再順序付け動作の前に行われる、請求項１０に記載の方法。
【請求項１３】
均等な大きさの前記複数の各サブセットは、ｎ個のサブセットを含み、前記各サブセットは、Ｚ／ｎ個の要素を含み、ｎは正の整数であり、Ｚ／ｎは正の整数であり、Ｚ＞ｎ＞１である、請求項１１に記載の方法。
【請求項１４】
前記置換器を動作させて、前記ベクトルの内容を再順序付けせずに少なくともいくつかのＺビットベクトルを通過させる、請求項１１に記載の方法。
【請求項１５】
前記置換器を動作させて、第１のサイクリック再順序付けを行って、いくつかの要素の順番を少なくともいくつかのベクトル内で、前記少なくともいくつかのベクトルに対する第２の再順序付けを行うことなく、再配列することをさらに含む、請求項１４に記載の方法。
【請求項１６】
コントローラを動作させて、使用されている符号化されたＬＤＰＣの少なくとも一部を規定する情報から、前記置換器を通過しているＺベクトルに特定の再順序付けを適用することを決定することをさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２００３年２月２６日出願の米国特許仮出願第６０／４５０２４５号および２００３年３月３日出願の米国特許仮出願第６０／４５１５５５号の利益を主張するものであって、各出願は、参照により、本明細書に明示的に引用されるものとする。
【背景技術】
【０００２】
電子通信および記憶システムのほとんどすべての形式は、誤り訂正符号を使用する。誤り訂正符号は、これらのシステムにおける情報伝達固有の信頼性の欠如を、データストリームに冗長性を導入して補償している。誤り訂正の数学的基礎は、シャノンによって確立された。シャノンは、通信システムにおける信号の歪みをランダムな処理としてモデル化するという、チャネルの数学的考え方を発展させた。シャノンの最も基本的な成果は、雑音のあるチャネル法則であり、チャネルを通じて情報を確実に送ることができる最大レートである容量を、チャネルについて規定する。容量に近いレートでの確実な送信には、誤り訂正符号の使用を要する。よって、誤り訂正符号はできるだけ容量に近づけつつ、充分な確実性を達成するように設計される。誤り訂正符号を実施する上での複雑性は、誤り訂正符号の実際の応用の際に作用するさらなる要因である。ターボ符号の発明とその後の再発見から生じた誤り訂正符号化システムにおけるの近年の進歩および低密度パリティチェック（ＬＤＰＣ）符号の開発により、シャノンの容量に非常に近づくことのできる実施可能な複雑さの符号化システムが提供されている。
【０００３】
ＬＤＰＣ符号は、しばしばタナーグラフと呼ばれる２部グラフによって、適切に表される。図１の図１００を参照すると、１組のノードである変数ノード１０２が、符号語および他の組のノードである制約ノード１０６と対応しており、これは時にはチェックノードとも呼ばれ、符号を規定するパリティチェック制約の組と対応している。グラフ内のエッジ１０４は、変数ノードを制約ノードに結合する。変数ノードと制約ノードは、グラフ内のエッジで結合されていれば、隣接していると称される。典型的には、１対のノードがせいぜい１本のエッジによって接続されると仮定される。ＬＤＰＣ符号は、パリティチェック行列を使用して、同様に表すことができる。図２が示す例では、Ｈ２０２がパリティチェック行列で、もしＨｘ＝０である場合、図示のベクトルｘ２０４が符号語である。
【０００４】
各変数ノードには、１ビットの符号語が関連付けられる。ある場合には、これらのビットのいくつかはパンクチャまたは既知である場合がある。パンクチャされたビットは、ある符号構造によっては望ましいことがあり、リフティング（後記参照）においては、パンクチャされたビットおよび既知のビットの双方を用いて、リフティングの倍数でないブロック長を実現する。パンクチャされたビットおよび既知のビットは、送信された符号語から除外される。
【０００５】
変数ノードシーケンスと１対１に関連付けられたビットシーケンスは、もし、各制約ノードについて、（変数ノードとの関連を通じて）制約に近いビットが合計して０モジュロ２、すなわち、それらの偶数を含むだけで、符号の符号語である。
【０００６】
ＬＤＰＣ符号を復号化するのに使用されるデコーダおよび復号化アルゴリズムは、エッジに沿ったグラフ内でメッセージをやり取りすること、および入力メッセージに基づいてノードにおいて計算を行なってメッセージを更新することによって動作する。そのようなアルゴリズムは、一般的にメッセージパッシングアルゴリズムと称される。グラフ内の各変数ノードは、まず受信値と称されるソフトビットが与えられ、これは、例えば通信チャネルからの観察によって決定されるような関連ビットの値の推定値を示す。理想的には、別個のビットに対する推定値は統計的に互いに無関係である。実際には、この理想は破られうるし、またしばしば破られる。
【０００７】
ノード、すなわち変数ノードまたは制約ノードに付されたエッジの数は、ノードの度数と称される。規則的なグラフまたは符号については、すべての変数ノードが同一の度数、例えばｊを有し、すべての制約ノードが同一の度数、例えばｋを有する。この場合、符号は（ｊ，ｋ）規則符号と称する。これらは、元来ガラジャー（１９６１年）によって検討された符号である。「規則的な」符号とは対照的に、不規則的な符号は、異なる度数の制約ノードおよび／または異なる度数の変数ノードを有する。例えば、ある変数ノードは度数４であり、他のノードは度数３であり、また他のノードは度数２であってもよい。
【０００８】
不規則な符号を表すおよび／または実施するのは複雑な場合もあるが、不規則なＬＤＰＣ符号は、規則的なＬＤＰＣ符号に比較して、優れた誤り訂正／検出性能を提供できることがわかっている。
【０００９】
複数の並行処理要素を使用してＬＤＰＣエンコーダおよびデコーダを実施して、符号化または復号化動作の一部としてデータの組を処理することは、有用性および信頼性の両方を有することがわかっているものの、既知の実施において、デコーダにおいて使用される並行処理要素の数は、エンコーダにおいて使用される並行処理要素の数と通常同一である。よって、例えば基地局および／または衛星などの中央装置が複数の移動体装置とやり取りを行うなどの、複数の装置が存在するシステムにおいては、システム内の各装置のＬＤＰＣエンコーダおよびデコーダは、通常同一の並行処理度を有する。
【００１０】
中央装置が複数の移動体装置を処理する場合には、エンコーダ／デコーダ内のリアルタイムの動作および同一の並行処理度を仮定すると、中央装置は、処理される様々な移動体装置に関連した符号化／復号化に追従するために、個々の装置よりも何倍も速い速度で動作しなければならないだろう。
【００１１】
実施という観点からすると、システムにおける互いに異なるＬＤＰＣエンコーダ／デコーダの並行処理度は異なっていれば有利であろう。そのような取り組みにより、特定の装置におけるエンコーダおよび／またはデコーダの並行処理度が、当該装置によって送信／受信されるべきデータ量に合致できるようになるだろう。特定の装置における並行処理量を最小限にすることによって、実施コストを最小限にできる。
【００１２】
例えば大きなグラフ構造に対応する数多くのノードを含むような大きな符号を使用すると、例えばほんの少しだけのノードを含むようなより小さな符号よりも、誤り回復力の点で多くの利点がある。より小さなグラフを使用して大きなグラフ構造を実施するためには、様々な置換をより小さなグラフ構造のコピーに対して適用することがあり、当該コピーを互いに連結して、より大きなグラフ構造を生成できる。符号化／復号化動作において、そのような置換動作は、切り換え装置によって実施されてもよく、本明細書においては、要素に対して置換動作を適用する置換器と称する。当該要素は、例えば、符号化動作の場合には、符号化すべきビットであり、復号化動作の場合には、メッセージであって、これらはメモリと、ＬＤＰＣ処理を並行して行うベクトル処理装置との間を渡される。
【００１３】
残念ながら、多くのＬＤＰＣ符号は、エンコーダおよびデコーダにおいて複数の互いに異なる並行処理度を許容するような実施には適していない。加えて、サイクリックシフトなどの単一の単純な置換動作は、より小さなグラフから生成された大きなグラフを使用して表すことができる多くのＬＤＰＣ符号と共に用いるのに適した置換器を実施するには適しているものの、そのような単一の置換動作は、互いに異なる並行処理度を使用して実施可能なＬＤＰＣ符号を実施するには適していない。
【００１４】
上記説明に鑑み、例えばＬＤＰＣグラフ構造のような同一の符号を使用する互いに異なる装置において互いに異なる並行処理度を許可するようなやり方でＬＤＰＣエンコーダ／デコーダを実施して、ＬＤＰＣ符号化および／またはＬＤＰＣ復号化動作を行うための符号、方法、および装置に対する必要性があることが理解されるべきである。加えて、例えば、より小さなグラフから導出できる比較的大きな符号を装置が使用できるようにするだけでなく、互いに異なる装置において実施されるべき互いに異なる並行処理度を可能にする新規かつ改良された置換器を通じて、そのようなエンコーダ／デコーダを実施するための実際的な方法に対する必要性がある。
【発明の開示】
【課題を解決するための手段】
【００１５】
本発明の方法は、通信システムを実施するために用いることができ、同一のＬＤＰＣ符号を使用する互いに異なる装置が、互いに異なる並行処理度を実施できる。高い誤り回復度を得るために、比較的長い符号語がしばしば使用される。例えば、本発明のＬＤＰＣ符号を使用して符号化動作を行うことによって生成された単一の符号語は、総ビット数Ｔを含んでもよく、Ｔは数百ビットまたは数千ビットでさえあってもよい。本発明を説明する目的で、符号化すべきビットおよび／または受信された符号語に対応するビットは、ＬＺ要素ベクトルに配列されてもよいことが理解されるべきである。Ｚは、１より大きい正の整数である。各Ｚ要素ベクトルは、Ｚ要素を含み、メモリから読み出されてもよい。メモリから読み出されたベクトルは、その後、Ｚ処理部を使用して並行的に処理されうる。特定のＬＤＰＣ符号（グラフ構造）を使用して符号語を符号化するエンコーダにおいて、同一のＬＤＰＣ符号を実施するデコーダにおいて使用するのと同数のＺ処理要素を並行的に用いる既存のシステムとは対照的に、本発明は、同一の符号を用いるエンコーダおよびデコーダにおける互いに異なる並行処理度を許容する。ある実施形態においては、特定の符号を使用する装置におけるエンコーダは、同一の符号を実施するデコーダにおいて使用されるのとは異なる数の並行処理部を使用して実施される。符号化は、通常、復号化よりもプロセッサに集中しておらず、よって、ある実施形態においては、単一の装置内において、並行的に動作する処理要素が通常少ないエンコーダにおけるのとは異なる数の処理要素を、デコーダにおいては並行的に使用される。
【００１６】
システム内において、互いに異なる装置が、互いに異なる量のデータをリアルタイムで符号化しなければならない場合がある。基地局が４つの無線端末を処理する場合を考える。各無線端末が同一の量のデータを送受信すると仮定すると、基地局は、いずれの無線端末よりも４倍のデータを符号化および復号化しなければならないだろう。ある実施形態においては、複数のノードを処理する基地局または衛星は、基地局または衛星によって処理される個々の無線端末よりも多くの処理部を並行して使用して実施される。本発明に従って実施されるいくつかのシステムでは、システム内の同一の符号を用いる互いに異なる無線端末は、各装置が符号化および復号化しなければならないであろう互いに異なるデータ量を反映して、異なる数の並行処理要素で実施される。以下に説明する新規なＬＤＰＣ符号を使用すれば、並行処理におけるそのような違いが可能となる。本発明の様々な実施形態における因数分解置換器を使用することにより、エンコーダおよびデコーダにおいて互いに異なる並行処理度を有するＬＤＰＣ装置を、本明細書において説明する種類のＬＤＰＣ符号における符号を使用して比較的容易に実施できる。
【発明を実施するための最良の形態】
【００１７】
図６は、通信システム例６００を示し、基地局６０２と、第１の無線端末６３２と、第２の無線端末６６２とを含む。第１、第２の無線端末６３２、６６２は、基地局６０２と無線リンク６３０、６６０を介して通信する。装置６０２、６３２、６６２は、それぞれ、本発明に従って実施されるエンコーダ６０４、６３４、６６４と、デコーダ６０６、６３６、６６６を含む。各装置のエンコーダおよびデコーダは、無線送受信器（送信器／受信器）６０８、６３８、６６８に結合されて、それを通じて、装置は互いに通信する。装置６０２、６３２、６６２は、それぞれ、ＣＰＵ６１３、６４３、６７３と、メモリに記憶された制御ルーチンの組６１５、６４５、６７５とを含む。制御ルーチンは、ＣＰＵ６１３、６４３、６７３によって実行されると、装置を制御して、様々な通信動作を行う。ある実施形態においては、ルーチン６１５、６４５、６７５は、本発明に係る１つまたはそれ以上の符号を使用して、因数分解置換動作を含む符号化動作および／または復号化動作を行うエンコーダルーチンおよび／またはデコーダルーチンを含む。図６に示す特定の例において、様々な符号化および復号化動作がハードウェアにおいて実施される。本発明の新規のＬＰＤＣ符号化および復号化方法によれば、同一の一般的な構造を有する装置を、符号化または復号化動作のいずれかに用いることができる。基地局エンコーダ６０４およびデコーダ６０６の場合には、これらの装置の基本構成は、因数分解置換器６１２、６２２を含み、これらはそれぞれ、要素のベクトルを記憶するために使用されるメモリ６１０、６２０に接続されて使用される。当該ベクトルは、並行ＬＤＰＣ処理モジュール６１４、６２４によって処理されることになっており、当該モジュールは、パリティチェック動作を並行的に行う数多くの処理要素（６１６、６１８）（６２４、６２８）を含む。並行ＬＤＰＣ処理モジュール６１４は、メモリ６１０から読み出されるであろうベクトルの各要素について１つの処理要素を含む。したがって、Ｚ個の要素ベクトル（Ｚ個の要素を有するベクトル）を処理する場合には、モジュール６１４は、Ｚ個の処理要素６１６、６１８を含む。エンコーダ６０４の場合には、Ｚ＝Ｍｅである。
【００１８】
エンコーダモジュール６１４における処理要素数Ｍｅは、デコーダ処理モジュール６２４における処理要素数Ｍｄと異なっていてもよい。言い換えれば、エンコーダおよびデコーダは、たとえ同一の符号を実施しても、異なる数のＺ要素を有するベクトル、したがって異なる並行処理度を使用してもよい。エンコーダ６０４は、エンコーダによって読み出しかつ処理されるベクトルが単一ビット要素、例えば符号化すべき情報値を通常含むという点で、デコーダ６０６と異なる。メモリに記憶されて処理モジュール６２４に渡されるベクトルのデコーダ要素の場合には、復号化されている受信符号語の部分に対応するマルチビット、例えばメッセージをそれぞれ含む要素を通常含む。
【００１９】
エンコーダ６０４およびデコーダ６０６は、処理要素（６１６、６１８）（６２６、６２８）によって実行される処理動作において異なる。エンコーダ６０４の場合は、各プロセッサは、通常、記憶された値で論理ＸＯＲを行い、その後、記憶された値をＸＯＲ動作の結果に置き換える。よって、処理要素６１６、６１８は、ＸＯＲ回路と、アキュムレータとして動作する記憶要素とを使用して実施してもよい。図１２は、ＸＯＲ回路と例えばアキュムレータなどの記憶装置とを含む処理要素を示し、本発明に係る並行ＬＤＰＣプロセッサモジュールにおいて使用できる。
【００２０】
符号（グラフ構造）によって決定された処理が実施される点で、エンコーダのプロセッサ６１６、６１８に保持される結果をメモリ６１０に記憶させる。処理要素６２６、６２８は、変数ノード処理動作および／またはチェックノード処理動作を行う。これらの動作はしばしばＸＯＲおよびアキュムレイト動作を要するものの、これらは、各処理要素６２６、６２８によって処理されているマルチビットメッセージに伴う補足的な処理である傾向にあり、復号化動作を符号化動作よりも複雑なものにしている。
【００２１】
参照により本明細書に引用された特許出願のいくつかは、並行ＬＤＰＣ処理モジュール要素６１６、６１８、６２６、６２８を実施可能な様々な方策を詳細に説明している。
【００２２】
本発明によれば、因数分解置換器６１２、６２２は、置換器６１２、６２２によって処理される少なくともいくつかのベクトルに対して、単一置換動作（変化なし）または２つの置換動作の積である置換動作を行う。よって、因数分解置換器は、ベクトル内の要素を再順序付けせずにベクトルを渡してもよく、または、例えば２つの連続する置換動作を再順序付けされた要素のベクトルを出力として行うことによって、ベクトル内の要素を再順序付けしてもよい。前記再順序付けは、２つの置換動作から成り立っている。置換動作の例を、添付の図面に関連して詳細に説明する。
【００２３】
ある実施形態においては、因数分解置換が、マルチレベルの切り換え動作として行われる。第１のレベルの切り換えにおいて、例えばｎ個の同一の大きさの部分、すなわち要素のサブセットをベクトル内で第１のサイクリックシフトを使用してシフトすることによって、処理されているベクトル内で要素が再順序付けされる。処理されたベクトルの要素は、その後、ｎ個の同一の大きさの部分内ではあるがその間ではない要素を置換する第２の置換によってさらに置換される。同一の第２の置換が、ｎ個の同一の大きさの部分に対して行われて、各部分の要素位置が同じく変化する。同等の説明は、以下の通りである。Ｚ個の要素のベクトルは、第１の区分けを使用してＺ／ｎ個の同一の大きさの部分に区分けされ、また、第２の区分けを使用して、ｎ個の同一の大きさの部分に区分けされる。これは、第１の区分けにおけるＺ／ｎ個の同一の大きさの各部分が、第２の区分けにおけるｎ個の各部分と共有する正確に１つの要素を含むようにして行われる。その後、上記の第１の置換によって、第１の区分けによって規定されたＺ／ｎ個の部分内の要素をそれぞれ等しく再順序付けするが、第１の区分けは変更しない。第２の置換によって、第２の区分けによって規定されたｎ個の部分内の要素をそれぞれ等しく再順序付けするが、第２の区分けは変更しない。
【００２４】
本発明のある実施形態においては、因数分解置換器６１２は、サイクリックシフトとして知られる２つのサイクリック置換の積を行う。単一のサイクリックシフトでは因数分解可能ではないが、２つのサイクリックシフトの積は因数分解可能である。なぜならば、積を生じさせる２つのサイクリックシフトに因数分解可能だからである。具体的な例を与えるために、Ｚ＝４とする。サイクリックシフトにおいては、ベクトル（ｖ０，ｖ１，ｖ２，ｖ３）は、（ｖ０＋ｋ，ｖ１＋ｋ，ｖ２＋ｋ，ｖ３＋ｋ）のように再順序付けされ、ｋは［０，３］上の整数であり、加算はモジュロ４とする。大きさ２の２つのサイクリックシフトの積では、ベクトル（ｖ０，ｖ１，ｖ２，ｖ３）は、（ｖ０＋２ｋ＋ｊ，ｖ１＋２ｋ−ｊ，ｖ２＋２ｋ＋ｊ，ｖ３＋２ｋ−ｊ）のように再順序付けされ、ｋは［０，１］における整数であり、ｊは［０，１］における整数であり、すべての演算はモジュロ４とする。２つのサイクリックシフトの積の場合は、第１の区分けは｛ｖ０，ｖ１｝｛ｖ２，ｖ３｝であり、第２の区分けは｛ｖ０，ｖ２｝｛ｖ１，ｖ３｝である。第１の置換は、ｊを選択することによって決定され、第２の置換は、ｋを選択することによって決定される。以下に説明するように、実行される特定の再順序付けは、事実上グラフにおける様々なノードを結合させるために再順序付けを用いて実施されている符号の機能であって、処理されるべきベクトル要素を、実施されている符号を規定するグラフにおける特定のノードに対応する処理要素に対して向けることによって行われる。
【００２５】
無線端末のエンコーダおよびデコーダは、それぞれ、基地局エンコーダ６０４およびデコーダ６０６に関して説明したものと同様であるが、互いに異なる並行処理を実施してもよい。エンコーダ６３４、６６４ならびにデコーダ６３６、６６６は、それぞれ、メモリ６４０、６７０、６５０、６８０を含み、それぞれは、因数分解置換器６４２、６７２、６５２、６８２によって並行ＬＤＰＣ処理モジュール６４４、６７４、６５４、６８４に対して結合されている。
【００２６】
本発明の方法および装置は、様々な他のＬＤＰＣ符号化の特許および出願との関連でよりよく理解することができる。本明細書に含まれる出願に記載されている、例えばＬＤＰＣ動作を行う処理要素などの様々な要素を用いて、システム例において説明されている並行ベクトルプロセッサを実施してもよい。また、本明細書に含まれる様々な出願には、置換を行うために用いるメモリアクセスおよび切り換え動作を、ＬＤＰＣ符号（グラフ）情報を提供する記憶された情報に基づいてどのように実施できるかについて説明されている。説明されている符号および置換動作は、本願において説明されるものとは異なるものの、メモリアクセスおよび切り換え制御動作は、記憶されたＬＰＤＣ符号情報に基づいて、同一または同様のやり方で制御可能である。したがって、そのような制御手法を本明細書で詳細に説明する。加えて、そのような処理要素、例えばとりわけ、変数ノードおよびチェックノード処理要素は、引用された出願に詳細に説明されており、その実施および機能は、本願ではごく簡単に説明する。
【００２７】
以下の（４件の）関連出願は、参照により明示的に引用され、本願の一部とみなすものとする。２００１年１０月１０日出願の米国特許出願第０９／９７５３３１号であって、２００３年１０月１４日に米国特許第６６３３８５６号として発行された「ＬＤＰＣ符号を復号化するための方法および装置（ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＤＥＣＯＤＩＮＧ  ＬＤＰＣ  ＣＯＤＥＳ）」、２００２年４月４日出願の米国特許出願第１０／１１７２６４号であって、２００３年１月３０日に米国特許出願公開第２００３−００２３９１７号として公開された「パリティチェックデコーダにおいて使用されるノードプロセッサ（ＮＯＤＥ  ＰＲＯＣＥＳＳＯＲＳ  ＦＯＲ  ＵＳＥ  ＩＮ  ＰＡＲＩＴＹ  ＣＨＥＣＫ  ＤＥＣＯＤＥＲＳ）」、２００２年１２月１８日出願の国際出願ＰＣＴ／ＵＳ０２／４０５７３号の「ＬＤＰＣ符号を符号化するための方法および装置（ＭＥＴＨＯＤＳ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＥＮＣＯＤＩＮＧ  ＬＤＰＣ  ＣＯＤＥＳ）」、および２００１年６月１５日出願の米国特許仮出願第６０／２９８４８０号の「ＬＤＰＣ符号の符号化および復号化を行うための方法および装置（ＭＥＴＨＯＤＳ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＬＤＰＣ  ＣＯＤＥ  ＥＮＣＯＤＩＮＧ  ＡＮＤ  ＤＥＣＯＤＩＮＧ）」。
【００２８】
図７および図８は、使用されて本発明に係るＬＤＰＣ動作を実施可能なシステム例７００、８００を示し、例えば受信された符号語（復号化動作を示唆）、または符号語に生成されるべき情報（符号化動作を示唆）などの処理すべきデータのようなものによって、符号化または復号化ＬＤＰＣ動作のいずれかを行う。
【００２９】
システム７００、８００は、それぞれ、メモリ７０２、８０２と、アドレスジェネレータ７１６、８１６と、アドレスジェネレータ兼置換器コントローラ７１８、８１８と、記憶されたＬＤＰＣ符号（グラフ）情報７２０、８２０と、Ｚ要素並行ＬＤＰＣ処理モジュール７１０、８１０と、因数分解置換器７０６、８０６とを含む。処理されるべき情報は、メモリ７０２、８０２に、処理用のメモリ入力を介して記憶される。符号化の場合には、処理が終了すると、結果がメモリ７０２、８０２から読み出される。処理が進行中に、アドレスジェネレータ兼置換器コントローラ７１８、８１８の制御の下、Ｚ要素ベクトルは、メモリから読み出しおよびメモリに対して書き込みが行う。アドレスジェネレータ兼置換器コントローラ７１８、８１８とは、ＬＤＰＣ符号（グラフ）情報７２０、８２０と、実施された並行処理度についての情報、例えば並行処理される要素の数Ｚとを使用して、アドレスジェネレータ７１６、８１６を制御して、読み出しおよび／または書き込み動作に使用されるアドレスを生成し、その間に、因数分解置換器７０６、８０６を制御して、実施されている符号に対応する特定の実施されたグラフ構造を達成するのに使用される切り換え動作、ベクトル要素の再順序付けを行う。また、アドレスジェネレータ兼置換器コントローラ７１８、８１８は、制御信号を生成し、この制御信号は、アドレスジェネレータ７１６、７１８を通ってメモリ７０２、８０２へ渡されて、任意の所定の時間において読み出しまたは書き込みが行われるかを示す。よって、アドレスジェネレータ兼置換器コントローラ７１８、８１８は、因数分解置換器７０６、８０６によって行われる切り換えだけでなく、処理すべきベクトルがメモリ７０２、８０２から読み出された場合、およびモジュール７１０、８１０によって生成された処理結果がメモリ７０２、８０２に書き込まれた場合にも制御を行う。
【００３０】
図７および図８の実施形態間の主要な相違点は、システム７００における因数分解置換器７０６が入力ベクトル７０４に対して再順序付け動作を行って、並行ＬＤＰＣ処理モジュール７１０に含まれる処理要素７１２、７１４によってベクトル要素の処理が行われる前に、再順序付けされたベクトル７０８を生成することにある。処理の結果である、例えばＺ要素ベクトルは、メモリ７０２に記憶される。図８の実施形態の場合は、因数分解置換器８０６による再順序付けが、処理要素８１２、８１４によって生成されたＺ要素ベクトル８０４に対して行われる。再順序付けがモジュール７１０、８１０による処理の前または後のいずれかに行われるかは、主に設計上の選択の問題である。
【００３１】
本発明の様々な実施形態において使用される新規の符号と、そのようなＬＤＰＣ符号の使用から生じる新規の符号語とを理解するために、「リフティング」について説明する。一般的に、ＬＤＰＣ符号の「リフティング」またはベクトル化を以下に説明する。図１および図２のような、小さなＬＤＰＣ符号のタナーグラフまたはパリティチェック行列表現から始める。まず、リフティングをパリティチェック行列の観点から説明する。Ｚリフティングにおいて、パリティチェック行列の各入力を、Ｚ×Ｚ行列に置換する。Ｈへの０の入力は、０のＺ×Ｚ行列となり、Ｈへの１は、置換行列となり、通常ある群に属する。図５は、行列５０２を示し、これは、Ｚ＝３であって使用された置換がサイクリック置換である場合の図２の行列のリフトされたものである。リフティングは、以下のように、タナーグラフ上で説明される。タナーグラフにおける各ノードは、Ｚ個の等価ノードによって置換され、１束のノードを形成し、各エッジは、Ｚ個のエッジの束となる。束の各要素に、０，．．．，Ｚ−１における指標を与えると仮定する。Ｚ個のエッジの束は、変数ノードの束を制約ノードの束に結合する。結合が、同様の指標のノードとエッジとを結合するようになされている場合には、構成は、実質上、元のグラフのＺ個の並行コピーである。そのような構成を図３の図３００に示し、これは、図１および図２の基本例に対応する。図３のグラフに対応するパリティチェック行列を、図４の図４００に示す。例えば制約側の結合が置換される場合は、すなわち、指標ｊの付いたエッジが指標π（ｊ）の付いた制約ノードに結合される場合であって、πは０，．．．，Ｚ−１に対する例えばサイクリック置換などの置換を表す場合は、結果生じるグラフを完全に結合されたものにすることができ、リフトされたグラフとして見られる。なお、投影されたグラフは、ノードの対間に複数のエッジを有してもよいが、リフトされたグラフはその必要はない。もし例えば、複数のエッジにおけるエッジに関連する置換がすべて別個のものである場合には、リフトされたグラフは、対応する複数のエッジを有しないだろう。
【００３２】
ベクトル化された（またはリフトされた）ＬＤＰＣ符号を支援するアーキテクチャは、参照により引用されている米国特許出願第０９／９７５３３１号の「ＬＤＰＣ符号を復号化するための方法および装置（ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＤＥＣＯＤＩＮＧ  ＬＤＰＣ  ＣＯＤＥＳ）」に説明されている。このアーキテクチャは、大きな種類のＬＤＰＣ型の符号を効率的かつ高速に復号化することを支援している。支援されている符号は、リフトまたはベクトル化されたＬＤＰＣ符号である。米国特許出願第０９／９７５３３１号において、サイクリック置換は、使用するのが簡単で望ましい種類の置換であることが指摘された。これらの置換を使用すると、群構造が符号に生じ、並行処理がリフティングの大きさの規模、例えばサイクリック構造程度となる、効率的な並行符号化および復号化となる。
【００３３】
単に１つの大きさではなく、２つまたはそれ以上の大きさのリフティングとして見ることができる所定の符号を有して、それによって、同一の符号を使用するエンコーダ／デコーダにおける互いに異なる並行処理度の可能性を促進することが望ましい場合があることがわかった。本発明のこの理解および結果生じた符号構造によって、同一のＬＤＰＣ符号を使用する互いに異なる並行処理度を有しうる、効率的なエンコーダおよび／またはデコーダを実施できる。本発明の符号構造を使用するかまたはそれを用いて作成されたエンコーダ、デコーダ、符号語、および符号化されたデータも、本発明の特徴であると考えられる。
【００３４】
本発明を説明するために、以下の例を考える。デジタル信号プロセッサ（ＤＳＰ）内で符号化を行いたいので、１６倍の並行処理（リフティング）が望ましいが、幅４の並行処理という小さなデコーダにしたい。１６倍の並行処理のＤＳＰは、４つの移動体装置であって、各移動体装置が、基地局のエンコーダが動作するデータ速度の約４分の１でデータを受信する移動体装置を処理する基地局において使用されてもよい。そのようなシステムにおける各移動体装置は、エンコーダと同一の符号を使用してもよいが、本発明にしたがって、移動体装置は同一のデータ量を処理するのに約４倍の時間がかかるという事実を反映して幅４の並行処理のデコーダとともに実施されてなければならない。例えばエンコーダの約４分の１の速度で動作する第１および第２の移動体と、エンコーダの約２分の１のデータ速度で動作する第３の移動体という３つの移動体を基地局が処理すると仮定すると、最初の２つの移動体において４倍の並行処理を使用するデコーダを使用してもよく、エンコーダの２分の１の速度の復号化を支援する第３の移動体には、８倍の並行処理を使用してもよい。
【００３５】
互いに異なるエンコーダおよびデコーダ並行処理度を支援する本発明の方法は、幅広い他の応用においても有用である。別の例は、以下の通りである。大きな並行処理を必要とする非常に高速のアプリケーションのための符号を設計したいとする。ＡＳＩＣでの実施に先立って、当該符号を浮動点ゲートアレイ（ＦＰＧＡ）上でシミュレートしたいとする。ＦＰＧＡは、アプリケーションに必要とされる並行処理を支援していないので、最終のアプリケーションで意図された正確な符号をシミュレートできない。第１の場合、４リフティングおよび１６リフティングとしてみることができる符号を有することが望ましい。第２の場合、同時に６４リフティングおよび２５６リフティングである符号が欲しいことがある。第３の場合は、ハードウェアエンコーダが必要な高速アプリケーションの場合である。ハードウェアエンコーダは、一般的にデコーダよりも高速に動作するので、エンコーダにおける並行処理（ゲートカウント）を減少させて、より遅い速度で動作させて、デコーダの速度により近く一致させることができればよい。第４の場合は、互いに異なるスループット、例えば互いに異なる速度での実施を要求する標準化された符号の場合である。第５の場合は、ソフトウェアによる実施であり、符号の構造を、典型的なマイクロプロセッサにおける固有の並行処理に一致させることができる。本発明は、サイクリック置換に必要な置換複雑度に近い置換複雑度を維持しつつ、上記を可能にする。さらに、符号の記述に関して複雑度の節減の可能性もある。（積に他のファクタを持たせることにより）符号が実施よりも多くの並行処理を有する場合には、当該余分な構造を使用して、符号のよりコンパクトな記述を生じさせることができる。これにより、簡素なメッセージパッシング制御が可能となる。そのようなマルチレベルまたは積のリフティングの利益が実現できるのは、主にベクトル−ＬＤＰＣアーキテクチャの場合である。
【００３６】
出願人は、本発明の様々な実施形態において使用される、単一の符号についての互いに異なる並行処理度を支援するＬＤＰＣ符号構造は、入手可能なＬＤＰＣの文献に示唆されていないと考える。本発明の様々な実施形態において使用される種類のＬＤＰＣ符号は、特に、本発明の基礎のうちの１つを形成するＶ−ＬＤＰＣ（ベクトル−ＬＤＰＣ）アーキテクチャの場合に、他のＬＤＰＣ符号よりも実施利益を提供するというのが、発明者の理解である。
【００３７】
一致リフティング
積のリフティングを説明する前に、その説明を容易にするため、追加の数学的構造を有する一般的な種類のリフティングをまず説明する。なお、サイクリック群によるリフティングは、この類に当てはまる。
【００３８】
リフティングに用いられる群における次数（群における要素の数）がリフティングの大きさＺと同一である場合、有利に活用できる数学的構造が生じる。そのようなリフティングを、一致リフティングと呼ぶ。一致リフティングでは、リフティングに使用されるＺ×Ｚの置換行列のＧＦ［２］に対する和と、長さＺのバイナリベクトルは、環の要素で同時に識別可能である。環の要素は、長さＺのバイナリベクトルとして都合よく表すことができ、加算は、ビット単位のモジュロ２とする加算であり、乗算は群構造から生じる。その結果、投影されたパリティチェック行列の各要素を環の要素に置換すると、リフトされたパリティチェック行列を形成する。各ビットを環の要素で置換すると、投影されたグラフのバイナリ符号語をリフトする。符号全体はまだバイナリだが、環に対してＺ倍小さい符号として表される。完全にリフトされたパリティチェック行列上のバイナリ行列演算は、環での演算として模倣することができる。これにより、エンコーダの抽出を劇的に簡素化する。さらに、数学的構造は、符号化が環内で行われてもよいことを保証する。
【００３９】
今度は、一致するリフティングの数学的構造を提示する。
【００４０】
要素ｇ１，．．．ｇｚを有する次数Ｚの群ｇ仮定し、従来、ｇ１は恒等元である。群は、置換ｐ１，．．．，ｐｚを使用して、ｇｉｇｋ＝ｇｊの場合にのみπｉ（ｋ）＝ｊを設定することによって表すことができる。対応して、群をＺ×Ｚの順序行列Ｇ１，．．．，Ｇｚを使用して表すことができ、式中、ｋ＝１，．．．，Ｚについて
2006519560.tif 000003
＝１であり、すべての他の入力は０である。
【００４１】
そのような群を仮定して、要素が長さＺのバイナリベクトルである環を規定する。バイナリベクトルｕ＝（ｕ１，．．．，ｕｚ）は、Ｇのサブセットで識別でき、換言すれば、形式的な和
2006519560.tif 000004
で識別できる。ここで、ｕｉ＝１は、ｇ１がサブセットの要素であることを示し、ｕｉ＝０は、ｇ１がサブセットの要素でないことを示す。ｇｉのＧｉに対する対応関係によって、合計を行列合計
2006519560.tif 000005
とみなすことができ、式中、加算はモジュロ２とする、すなわちＧＦ［２］に対する。式中、それゆえに、Ｍ（ｕ）は、ＧＦ［２］に対する行列である。注意すべきなのは、この合計は可逆的であり、すなわち、
2006519560.tif 000006
はｕを一意に決定する。
【００４２】
２つのバイナリベクトルｕおよびｖを仮定すると、それらの積であるｗ：＝ｕｖは、Ｍ（ｗ）＝Ｍ（ｕ）Ｍ（ｖ）によって一意に与えられる。さらに注意したいのは、ｖをＧＦ［２］に対する列ベクトルとすれば、ｗ＝Ｍ（ｕ）ｖである。
【００４３】
バイナリベクトルについての乗算を規定したので、Ｒによって表す環を規定したことになる。単項要素Ｒは、バイナリベクトルの表現が正確に１つの１と、Ｚ−１個の０とを有する要素である。
【００４４】
図５に示すリフティングを再び考える。今、図の右側の行列は、Ｒ内の要素の行列とみなされ、単項要素Ｒは、大きさＫ（本例では＝３）のサイクリック置換によって導出された環である。符号は、いまだパリティチェック式Ｈｘ＝０に対する解の組であるが、要素Ｈと、要素ｘとは、Ｒに属する。よって、符号語は、Ｒに対して長さＫのベクトルである。各要素は、長さＺのバイナリベクトルとみなされてもよいので、符号語は、長さＺＫのバイナリベクトルである。Ｊ×Ｋのパリティチェック行列は、環の要素を含むが、大きさＺＪ×ＺＫのバイナリ行列とみなしてもよい。
【００４５】
一致したリフトされた符号の符号語を認識
符号語ｘ＝（ｘ１，．．．，ｘＫ）は、もし各ベクトルｘｕ＝（ｘ１ｕ，．．．，ｘＫｕ）が各要素ｕ∈Ｒについての符号語である場合のみ、Ｒに対する符号語である。この条件は、一致リフティングの符号語を特徴付けるものである。よって、積のリフティング（下記参照）に基づくＬＤＰＣシステムは、適切には区切りを設けた符号が要素毎に積の環の要素で乗算されても変化しないという事実によって識別されうる。
【００４６】
一致リフティングの符号化
一致リフティングの符号化の形式により、ＬＤＰＣなどの符号を符号化することについての我々の理解を簡単なものにし、簡単な符号化処理に繋がることができる。
【００４７】
一般的なＬＤＰＣ符号についてのエンコーダを構築するには、第１のステップは、行および列の置換Ｈを見つけ、再順序付けまでは、
[数１]
2006519560.tif 000007
と書けるようにし、式中、Ｔは、テキスト上部３角、Ｅはｇ×ｔ、Ａは
ｔ×ｇ、Ｃはｇ×ｇ、Ｂはｔ×（ｎ−ｍ）、Ｄはｇ×（ｎ−ｍ）、およびｔ＋ｇ＝ｍである。さらに、ｇ×ｇ行列φ：＝ＥＴ−１Ａ＋Ｃは可逆性がある（ここでは、Ｈは、完全行ランクであるとする）。
【００４８】
符号化は以下のように進む。情報ビットをｘＳとすると、
［Ｔ  Ａ  Ｂ］［ｙ  ０  ｘＳ］Ｔ＝０
を、ｙについて後方置換を用いて解く。次に、
φｘＰ２＝［Ｅ  Ｃ  Ｄ］［ｙ  ０  ｘＳ］Ｔ
をｘＰ２について解く。このステップでは、行列φ−１を事前に計算する。最後に、
［Ｔ  Ａ  Ｂ］［ｘＰ１  ｘＰ２  ｘＳ］Ｔ＝０
をｘｐ１について後方置換を用いて解く。ベクトル［ｘＰ１  ｘＰ２  ｘＳ］Ｔは、符号語を構成する。
【００４９】
リフトされたグラフを符号化するという考え方は、投影されたパリティチェック行列に対して近似上部３角分割を行うことであるが、その後、Ｒに対する行列演算を解釈することによって符号化を行う。実際の設定では、リフティングの大きさが充分に大きければ、性能上認識可能な損失なくｇ＝１を実現できる。この場合、行列ＥＴ−１Ａ＋Ｃおよびその逆は、要素Ｒである。ＥＴ−１Ａ＋Ｃの可逆性を、リフティングにおいて、すなわち、Ｒに対してチェックする必要がある。これは、リフトされたバイナリ行列としての可逆性に一致するが、必ずしも投影された行列の可逆性とは一致しない。複数のエッジのある対角行列Ｔを形成する場合、対角入力は、複数のエッジでないことが望ましく、リフティングにおいて単項要素を生じさせる。
【００５０】
環の単項要素（ベクトル表現において唯一１つの零でない入力を伴う要素）による環における乗算は、ハードウェアにおいてスイッチとして直接実施できる。米国特許出願第０９／９７５３３１号および米国特許仮出願第６０／４０４８１０号に説明されているスイッチルーティング機構は、単項乗算を実施するのに使用できる機構の例である。単項でない要素による乗算は、スイッチを多様に使用して、結果を（環において）加算する。これは、任意の要素Ｒの乗算を単項乗算の和に分解することに対応する。このような取り組みは、本発明の様々な実施形態において使用される因数分解置換を可能にする。
【００５１】
積のリフティング
積のリフティングは、リフティングのために積の群を選択することによって実現される。積のリフティングは、多次元のリフティングとして同様の意味合いで見ることができる。対応して、リフティングが合致すると仮定すると、環Ｒは積の環である。大きさが６４のリフティングが望ましい場合を考える。予想された符号が大きさＰ、すなわち、Ｐ個の変数ノードを有すると仮定する。リフティングのために、大きさ６４のサイクリック群を選択できる。代わりのものとしては、本発明によれば、大きさ１６のサイクリック群と大きさ４のサイクリック群との積であろう。この群は、以下のように表すことができる。対（ａ，ｂ）を用いた索引付けＬ＝０，．．．，６３であって、ａ＝０，．．．，１５であり、ｂ＝０，．．．，３であり、可逆マップＬ＝４ａ＋ｂの場合を考える。この積の群の要素は、対（ｃ，ｄ）であって、ｃ＝０，．．．，１５であり、ｄ＝０，．．．，３である。（ｃ，ｄ）の（ａ，ｂ）に対して行うことは、対（ａ，ｂ）を（ａ＋ｃ  ｍｏｄ  １６，ｄ＋ｂ  ｍｏｄ  ４）に置換することである。また、この群は、次数６４を有する。しかしながら、結果生じたリフトされたグラフは、１６による大きさ４Ｐの符号、４による大きさ１６Ｐの符号、または６４による大きさＰの符号のリフティングとみなされうる。よって、並行処理度４、１６、または６４の実施は、本発明に従ってすべて同時にサポートされる。これは、並行処理度６４の高速復号化が必要な場合に、実施上望ましいであろうが、より単純である符号化は、デジタル信号プロセッサ上で行われることになっており、Ｚ＝１６の表示がより便利である。積のリフティングによって提供される利点は、エンコーダとハードウェアとによる実施の場合に実現される。積のリフティングを使用することによって加算される価値が、本発明の特徴である。積ではなく、群毎、例えばサイクリック群によるリフティングにより、任意の大きさのリフティングが可能となるが、積のリフティングの柔軟性を与えるものではない。
【００５２】
本発明が向けられている符号の組は、リフティング群ｇが積の群である場合に向けられており、その場合に、結果生じる環は積の環である。本願の構成における並行処理は、環上での並行処理となる。積の環がある場合には、部分環があり、これらの環を並行化できるので、所定の符号についての並行処理の選択ができる。
【００５３】
本明細書に現れる事例は、すでに、ｇがサイクリック群または有限フィールドの乗法群である場合である。これらの場合は、積の群ではないので、本願の構成は予期されていない。さらに、その利点は、開示したような並行処理アーキテクチャに照らしてのみ明らかである。
【００５４】
使用例
今度は、本発明の符号と上述の積のリフティングの特徴とによって可能となる因数分解置換器７０６の使用について、図９を参照して説明する。図９は、システム７００の一部を示し、メモリ７０２と、因数分解置換器７０６と、並行Ｚ要素ＬＤＰＣプロセッサモジュール７１０とを含む。メモリ７０２は、ＬＺ要素ベクトルを含む。各Ｚ要素ベクトルは、１からＺまでの要素を含む。本発明の説明の目的で、メモリ７０２内の各Ｚ要素ベクトルの上部はＡとし、下部はＢとした。符号化動作の場合に、各要素Ｚは、通常、１ビットであり、例えば符号化すべき情報のビットであろう。受信された符号語は、総計Ｔビットを含んでもよく、Ｔ／Ｌ＝Ｚである。符号語における実際のビット数は増加されるか、または例えばパンクチャされた符号化の場合には、あるビットを落として、Ｔ／Ｌおよび整数値とすることができる。復号化動作の場合には、各Ｚ要素ベクトルの要素は、通常、マルチビットのメッセージであろう。
【００５５】
ステップ９０３において、コントローラ７１８の指示の下に動作するアドレスジェネレータによって決定されたシーケンスで、Ｚ要素ベクトルがメモリ７０２から読み出されて、情報７２０によって識別された符号を実施する。ステップ９０４は、読み出されたＺ要素のベクトル７０４のうちの１つを表す。このＺ要素のベクトル７０４はコントローラ７１８の指示の下に置換動作（ベクトル要素の再順序付け）を行う因数分解置換器７０６の入力に与えられる。因数分解置換器７０６は、２段の切り換え装置、第１および第２の切り換え装置９０２、９０４として実施され、本明細書において同じく参照符号９０２、９０４を使用して参照される第１および第２の切り換えステップを行う。第１段階は、完全ベクトル７０４に対して動作する第１の切り換え回路９０２を含む。本例において、スイッチ９０２は、第１のサイクリック循環Ｒを行い、それにより、要素入力ベクトル７０４がＳ１＝Ｚ／ｎ（ここで、この例では、ｎ＝２）またはＳ１＝０だけ、ベクトル７０４とともに位置がシフトされる。よって、Ｓ１＝Ｚ／２の場合か、そうでなければ、Ｓ１＝０の場合に、部分ＡおよびＢが入れ替わる。図９、図１０、および図１１の例では、ｎ＝２である。矢印９１１は、第１の置換（再順序付け動作）の結果を整数値ｎで均等部分に割るステップを表し、Ｚ＞ｎ＞１であって、Ｒによって変化しない。第１の均等部分９１３と、第２の均等部分９０６は、ステップ９０７、９０９において同一の置換Ｑを受ける。この第２の置換動作により、各均等部分９０４、９０６における要素が、当該部分において再順序付けされる。再順序付けＲおよびＱは、単位再順序付け（例えば、０またはＺのシフト）であってもよく、または要素の順序が実際に変更されることとなる何らかの量のシフトであってもよい。第１の再順序付け動作を第２の再順序付けＱの適用と組み合わせると、因数分解可能な入力ベクトルＺに対する置換を生じさせる。Ｑがｎ個の等しい大きさの部分に適用される場合の置換動作Ｒおよび置換動作Ｑの順序は、どうあってもよい。なぜなら、再順序付け動作の組み合わせは、動作が行われる順番に関係なく、同一の結果を生じさせるであろうからである。
【００５６】
各部分９１３、９０６に対してＱを適用したことによって生じた再順序付けされたＺ要素ベクトルの各要素は、並行Ｚ要素ＬＤＰＣプロセッサモジュール７１０の互いに異なる対応する処理要素７１２、７１１、７１３または７１４に与えられる。Ｚ要素ベクトルを読み出す順番を決定するために使用されたアドレス化の制御と組み合わせて因数分解置換器７０６の動作を行った結果、符号情報７２０によって識別された符号は、比較的単純なやり方で実施できる。
【００５７】
因数分解置換器７０６を使用することにより、単一の単純なサイクリックシフトの使用では支援できなかった符号構造が支援される。上述のように、そのような符号は、同一の符号について互いに異なるデコーダおよびエンコーダ並行処理度を許容するという利点を有する。
【００５８】
図１０は、置換器７０６によって行われる第１の置換動作が、単位（Ｉ）置換またはベクトル７０４の上部分Ａおよび下部分Ｂのフリップ（Ｆ）のいずれかでありうる場合の例を示す。矢印１００２は、Ｚ要素ベクトル７０４を読み出して、それを置換器７０６によって処理するステップを表す。ステップ切り換えステップ９０２において、第１の置換が単位置換である場合には、第１の処理パス１００４が続く。なお、これは、ベクトル９０４はベクトル７０４と同じとなることに留意されたい。ステップ１００７は、ベクトル９０４の上のＡ部分に対する置換Ｑの適用を表し、ステップ１００９は、ベクトル９０４の下のＢ部分に対するＱ置換の適用を表す。
【００５９】
ステップ９０２において、Ｒがフリップ動作であった場合には、処理はパス１００５に沿って進み、Ｚ要素ベクトル９０６は、Ｂを上部に含み、Ａを下部に含むこととなる。その後、第２の置換Ｑが、ステップ１００７’および１００９’において各部分に対して適用される。
【００６０】
図１１は、因数分解置換器７０６を使用して、どのようにＺ要素ベクトル７０４に対して２つの連続置換動作ＲおよびＱを行うかについてのより詳細な別の例である。図１１の例において、メモリ７０２から読み出されたＺ要素ベクトル７０４は、位置１にある要素Ｙ  １１０２を有する第１のｚ／２部分Ａ１１０１を含む。また、ベクトル７０４は、ベクトル位置Ｚ／２＋１における部分Ｂの最初に位置する要素Ｘ  １１０６を含む第２の部分Ｂ  １１０５を含む。ステップ９０２は、第１の置換Ｒをベクトル７０４に適用してＺ要素ベクトル７０４’を生成することを表わす。この例において、Ｒは、ベクトル７０４に対して適用されるフリップ、すなわち、Ｚ／２による第１のサイクリックシフトである。この第１のサイクリック循環により、部分Ｂ  １１０５は、Ｚ要素ベクトル７０４’の上部にシフトされ、部分Ａ  １１０１は、Ｚ要素ベクトル７０４’の下部にシフトされる。これは、今では要素Ｘ  １１０６が第１の位置にあり、要素Ｙ１１０２が（Ｚ／２＋１）の位置にあるように、ベクトルの要素の順番を変更するという結果を有する。中間ベクトル７０４のｎ（この例では、ｎ＝２）個の均等の大きさの部分である、部分１１０５および１１０１には、Ｚ要素ベクトル７０４’が第２の置換の適用を受けるために分割して入れられており、その後、これらの部分は、ステップ９０４および９０６において、個別に第２の置換Ｑを受ける。この例において、Ｑは１つの位置のサイクリックシフトである。これにより、要素Ｘ  １１０６は、Ｚ要素出力ベクトル７０４’’’の第１の部分１１０５’内のＺ／２の位置にシフトされることとなる。また、要素Ｙ  １１０２は、ベクトル７０４’’の最後の要素かつ第２の部分１１０１’’の最後の要素となるＺ位置にシフトされることとなる。なお、因数分解置換器７０６によって行われるマルチステップ再順序付け処理は、Ｚ要素入力ベクトル７０４に対する単一のサイクリックシフトの使用では可能ではない再順序付けとなる。この新規の再順序付けの取り組みにより、単一のサイクリックシフトを行うだけが可能であった置換器を使用するのでは実施ができなかった符号を実施することができるようになる。
【００６１】
置換されたベクトル７０４’’の各第１〜Ｚ要素は、モジュール７１０の互いに異なる第１〜Ｚの並行処理要素７１２、７１１、７１３、７１４のうちの１つに与えられる。並行処理要素によって生成された処理の結果は、メモリ７０２に書き戻されてもよく、ある実施形態においてはそうなっており、または、代わりに、例えばコントローラ７１８の制御の下、さらなる処理のために他のメモリに書き込むこともできる。
【００６２】
７０６の動作を詳細に説明してきたが、図８に示す置換器８０６は、入力ベクトルがメモリではなく並行ＬＤＰＣ処理のプロセッサから受信されて、その結果がメモリに８０２に書き込まれること以外は、同様に動作することが理解されるべきである。
【００６３】
図１０の例は、積のリフティングを２つの因数Ｇ＝Ｇ２×ＧＺ／２と共に使用する。群Ｇ２は、２つの要素Ｆ（フリップ）およびＩ（単位）からなり、｛０，１｝上で以下のように規定される。
【００６４】
Ｆ（０）＝１，Ｆ（１）＝０；
Ｉ（０）＝０，Ｉ（１）＝１；
図１０に示す処理における長さＬの周期を仮定する。
【００６５】
本発明は、とりわけ、例えば符号語などの新規のデータ構造に向けられており、当該データ構造は、メモリ７０２などの機械読み取り可能な媒体に記憶され、当該媒体は、ある実施形態においては、本発明の符号のうちの１つを用いるエンコーダと、本発明の符号化方法を実施するエンコーダとによって、入力データから生成される１つまたはそれ以上の符号語を記憶するために使用される。
【００６６】
特に、本発明のある実施形態は以下のものに向けられている。
【００６７】
通信装置内の機械読み取り可能な記憶媒体であって、
Ｎ×Ｚビットのアレイｙの形式のデータ構造であって、式中、ＮおよびＺは正の整数であり、前記データ構造の生成は、
エンコーダ回路を動作させて、Ｋが正の整数であるＫ×Ｚビットのアレイである入力ｕを受信することと、
前記エンコーダ回路を動作させて、ｙを式
ｙ＝ｕＧ
に従って計算することによって行われており、
式中、
ｙはＮ×Ｚビットのアレイであって、ＮおよびＺは正の整数であり、
ｕはＫ×Ｚビットのアレイであって、Ｋは正の整数であり、
ＧはＫ×Ｎの要素行列のアレイであって、各要素ＧはＺビットのベクトルであり、式中、
ｙ＝（ｙ１，ｙ２，．．．，ｙＮ）であって、ｉが［１，Ｎ］内の整数とするとｙｉはＺビットベクトルであり、
ｕ＝（ｕ１，ｕ２，．．．，ｕＮ）であって、ｉが［１，Ｋ］内の整数とするとｕｉはＺビットベクトルであり、
[数２]
2006519560.tif 000008
式中、ｉが［１，Ｋ］内の整数でありｊが［１，Ｎ］内の整数であるときＧｉ，ｊはＺビットベクトルであって、式中、
[数３]
2006519560.tif 000009
であって、
ｖｉ，ｊ＝ｕｊＧｉ，ｊ
が、［１，Ｎ］内の各整数ｉと、［１，Ｋ］内の各整数ｊについてのＺビットベクトルであり、
2006519560.tif 000010
が、Ｚビットベクトルｖｉ，１，ｖｉ，２，…，ｖｉ，Ｋの要素的なＸＯＲを表して、Ｚビットベクトルｙｉを形成し、
式中、
ｕｊＧｉ，ｊ
は、２つのＺビットベクトルｕｊおよびＧｉ，ｊの積を表し、２つのＺビットベクトルの積は以下のように規定される。
【００６８】
任意のＺビットベクトルａ＝（ａ１，ａ２，．．．，ａＺ）および任意のＺビットベクトルｂ＝（ｂ１，ｂ２，．．．，ｂＺ）について、その積ａｂはＺビットベクトルｄ＝（ｄ１，ｄ２，．．．，ｄＺ）であり、これは、
[数４]
2006519560.tif 000011
によって規定され、式中、すべての演算は、バイナリ演算であり、これは、ａｉｂｊがビットａｉおよびｂｊの論理和であることを意味し、加算は論理ＸＯＲを表し、
式中、
ｇ＝｛ｇ１，ｇ２，…ｇｚ｝，＊
は、次数Ｚの因数分解群であり、式中、次数Ｚの群ｇは、Ｚ個の別個の要素｛ｇ１，ｇ２，…ｇｚ｝の組およびｇ×ｇのｇへのマッピングである群演算＊であり、これは各対（ｉ，ｊ）について、ｉおよびｊを［１，Ｚ］内の整数として規定することによって与えられ、［１，Ｚ］内の固有の整数ｋは、ｇｉ＊ｇｊ＝ｇｋのようであり、さらに、このマッピングは結合的であり、すなわち
（ｇｉ＊ｇｊ）＊ｇｋ＝ｇｉ＊（ｇｊ＊ｇｋ）
であり、［１，Ｚ］内のすべての整数ｉ，ｊ，ｋについて、群内に恒等元が存在し、すなわち、［１，Ｚ］内の整数ｉ＊について、
ｇｉ＊ｇｊ＝ｇｊ＊ｇｉ＊＝ｇｊ
であり、［１，Ｚ］内のすべてのｊについて、各要素は逆数を有し、すなわち、［１，Ｚ］内の各整数ｊについて、［１，Ｚ］内の整数ｋが、
ｇｊ＊ｇｋ＝ｇｋ＊ｇｊ＝ｇｉ＊
であって、ｇｉ＊は上述の恒等元であり、
次数Ｚの因数分解群は、群
ｇ＝｛ｇ１，ｇ２，…ｇｚ｝，＊
であって次数Ｚであり、因数分解されて２つの群、
Ａ＝｛Ａ１，Ａ２，…ＡｚＡ｝，＊Ａ
Ｂ＝｛Ｂ１，Ｂ２，…ＢｚＢ｝，＊Ｂ
となり、次数はそれぞれＺＡおよびＺＢであって、それぞれ１＜ＺＡ，ＺＢ＜ＺおよびＺＡＺＢ＝Ｚを満たし、それぞれ群演算＊Ａおよび＊Ｂであり、前記因数分解は、［１，Ｚ］内の各整数ｉを、整数の固有の順序対（ｉＡ，ｉＢ）であって、ｉＡは［１，ＺＡ］内の整数であり、ｉＢは［１，ＺＡ］内の整数である順序対で識別することを含み、
ｇｉ＊ｇｊ＝ｇｋは、
ＡｊＡ＊ＡＡｊＡ＝ＡｋＡ
かつ
ＢｊＢ＊ＢＢｊＢ＝ＢｋＢ
の場合にのみ満たされ、式中、ｉは対（ｉＡ，ｉＢ），ｊは対（ｊＡ，ｊＢ）で識別され、上記の識別においてはｋは対（ｋＡ，ｋＢ）で識別され、式中、ｉ，ｊ，およびｋは、［１，Ｎ］内の整数であり、（ｉＡ，ｉＢ），（ｊＡ，ｊＢ），（ｋＡ，ｋＢ）は、それぞれ、［１，ＺＡ］内の第１の要素と、［１，ＺＢ］内の第２の要素とを有する整数の順序対である。
【００６９】
上記の方法は、共に接続されるメモリ、ＣＰＵ、および１つまたはそれ以上の入力および／または出力装置を含むコンピュータシステムにおいて実施されてもよい。メモリは、本発明に従って実施されるルーチンを含む。実行された場合に、ルーチンは、ＣＰＵに対して、本発明に従ってデータを受信、処理、および出力させる。
【００７０】
代わりに、本発明のステップは、専用のハードウェア、例えば、回路および／またはハードウェアとソフトウェアとの組み合わせを使用して実現されてもよい。
【図面の簡単な説明】
【００７１】
【図１】ＬＰＤＣ符号を２部（タナー）グラフとして表す図である。
【図２】パリティチェック行列を使用するＬＰＤＣ符号を表す図である。
【図３】タナーグラフにおけるリフティング例を表す図である。
【図４】図３のタナーグラフによる表現に対応するパリティチェック行列である。
【図５】図２の行列のリフティングされたものの例を示し、Ｚリフティング値＝３であり、使用された置換は、サイクリック置換である。
【図６】本発明に従って実施され、本発明に従った方法を用いる通信システム例の図である。
【図７】本発明に係るＬＤＰＣ動作を実施するために使用することができるシステム例の図である。
【図８】本発明に係るＬＤＰＣ動作を実施するために使用することができる他のシステム例の図である。
【図９】因数分解置換部を使用してＬＤＰＣ動作を行う本発明の様々な方法例のステップを説明するために使用される本発明の方法を、図７に示すシステムなどのシステムの部分において使用する例である。
【図１０】因数分解置換部を使用してＬＤＰＣ動作を行う本発明の様々な方法例のステップを説明するために使用される本発明の方法を、図７に示すシステムなどのシステムの部分において使用する例である。
【図１１】因数分解置換部を使用してＬＤＰＣ動作を行う本発明の様々な方法例のステップを説明するために使用される本発明の方法を、図７に示すシステムなどのシステムの部分において使用する例である。
【図１２】本発明に係る並行ＬＤＰＣプロセッサモジュールにおいて使用できる、ＸＯＲ回路と、例えばアキュムレータなどの記憶装置とを含む処理要素を示す。
【符号の説明】
【００７２】
１０２  変数ノード
１０４  エッジ
１０６  制約ノード
【図１】
2006519560.tif 000012
【図２】
2006519560.tif 000013
【図３】
2006519560.tif 000014
【図４】
2006519560.tif 000015
【図５】
2006519560.tif 000016
【図６】
2006519560.tif 000017
【図７】
2006519560.tif 000018
【図８】
2006519560.tif 000019
【図９】
2006519560.tif 000020
【図１０】
2006519560.tif 000021
【図１１】
2006519560.tif 000022
【図１２】
2006519560.tif 000023
【国際調査報告】
2006519560.tif 000024