(57)【特許請求の範囲】
【請求項１】
複数の値の中から２つの選択値を識別する方法であって、
前記複数の値を値の対に分割するステップと、
値の対ごとに、前記２つの値のうちの１つを選択することにより、各対の前記選択値からベクトルを形成するために、比較器を使用するステップと、
前記ベクトルを、前記ベクトルの前記値の中から第１の極値および第２の極値を識別するハードウェアユニットに適用するステップと、
補正された第２の極値を生成するために、前記極値の前記第２の極値に補正係数を適用するステップと、
前記補正された極値が前記第１の極値より極端ではないことを保証するために、前記補正された第２の極値を前記第１の極値と比較するステップと、
を含む方法。
【請求項２】
前記２つの値のうちの１つを選択するために比較器を使用する前記ステップは、前記２つの値のうちの最低を選択し、前記第１の極値および前記第２の極値は、前記ベクトルの前記値の中からの１番目に低い値および２番目に低い値である、請求項１に記載の方法。
【請求項３】
通信路から、誤り訂正符号に従って符号化されている符号語を受信するステップ、をさらに含み、前記分割するステップ、前記使用するステップ、前記形成するステップ、および前記適用するステップは、前記符号語を復号するプロセスの間に行われる、請求項２に記載の方法。
【請求項４】
前記符号語を復号する前記プロセスは、復号装置の算出ノードの間で、Ｓｕｍ−ｐｒｏｄｕｃｔメッセージ伝播法を行うステップを含む、請求項３に記載の方法。
【請求項５】
複数の値が対数尤度比（ＬＬＲ）を含む、請求項４に記載の方法。
【請求項６】
前記誤り訂正符号は低密度パリティ検査（ＬＤＰＣ）符号である、請求項４に記載の方法。
【請求項７】
複数の値の中から２つの選択値を識別するための装置であって、
各比較回路が、前記複数の値から分割される値の対を受け取り、各対の値のうちの１つを出力として選択するように構成されている、複数の比較回路と、
前記複数の比較回路から出力される前記選択値を受け取り、前記複数の前記値の全部の中から選択される第１の最小値、および前記複数の前記値の部分集合の中から選択される第２の最小値を識別するように構成された選択回路であって、前記第１の最小値および前記第２の最小値を出力するように構成されている、選択回路と、
補正された第２の最小値を生成するために、前記第２の最小値に補正係数を適用し、前記補正された第２の最小値が前記第１の最小値より低くないことを保証するために、前記補正された第２の最小値を前記第１の最小値と比較するように構成されている、追加回路と、
を含む装置。
【請求項８】
前記複数の比較回路の各々が比較器とマルチプレクサとを含む、請求項７に記載の装置。
【請求項９】
２つの選択値を識別するための前記装置は、誤り訂正復号装置において用いられる、請求項８に記載の装置。
【請求項１０】
前記誤り訂正復号装置は、前記誤り訂正復号装置の算出ノードの間でＳｕｍ−ｐｒｏｄｕｃｔメッセージ伝播法を行う、請求項９に記載の装置。
【請求項１１】
前記複数の値は対数尤度比（ＬＬＲ）を含む、請求項１０に記載の装置。
【請求項１２】
前記誤り訂正復号装置は、低密度パリティ検査（ＬＤＰＣ）符号語を復号するように構成されている、請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカルモデル上で推論を行うためのメッセージ伝播アルゴリズムの分野に関する。そうしたメッセージ伝播アルゴリズムは、誤り訂正符号化および復号の分野で用いられる。よって、本発明は、誤り訂正符号化および復号の分野にも関し、より詳細には、低密度パリティ検査（ＬＤＰＣ）符号およびＬＤＰＣ復号器に関する。
【背景技術】
【０００２】
ディジタルデータを送信するプロセスは、データに誤りを導入する可能性がある。その結果、受信データは送信データと異なるものになりうる。そうした誤りは、典型的には、伝送路に存在する雑音によって引き起こされる。誤りの量は、一般に、存在する雑音の量に対する送信信号強度に関連する。誤り訂正符号化は、送信前にデータに冗長性を挿入するための技法である。受信時に、この冗長性は、伝送プロセスの間に導入された誤りを訂正するために使用される。
【０００３】
ブロック符号化は、送信されるべきディジタルデータが固定サイズのメッセージに分割される、誤り訂正符号化の１種である。送信前に、各メッセージは符号器によって符号語（「ブロック」ともいう）に符号化される。符号化プロセスの間に、符号語がメッセージより大きくなるように冗長性が挿入される。符号語は各々、ｎビットからなるものとする。ｎビットのある特定のパターンのみが符号語であり、残りのパターンは無効である。符号語は次いで送信され、送信は符号語を破損させる可能性もある。受信すると、復号器は、受信された、破損した可能性のある符号語から元のメッセージを推論しようと試みる。
【０００４】
線形ブロック誤り訂正符号は、符号語の任意の線形結合も符号語とする誤り訂正符号である。生成行列を使用して、符号化プロセスにおいてメッセージを有効な符号語に符号化することができる。受信時には、パリティ検査行列を使用して、復号プロセスにおいて誤りベクトルを生成することができ、誤りベクトルは受信された符号語における誤りの存在を表示する。パリティ検査行列は、生成行列から導出されうるという点において、生成行列に関連するものである。
【０００５】
低密度パリティ検査（ＬＤＰＣ）符号は、疎なパリティ検査行列を特徴とする線形ブロック誤り訂正符号のサブカテゴリである。これは、パリティ検査行列が主に、０と、比較的少数の１とからなることを意味する。
【０００６】
ＬＤＰＣ符号は最初１９６０年代に導入されたが、最近になってますます注目されている。これは、少なくとも一部は、ＬＤＰＣ符号をハードウェア実装に適するものとする、復号における固有の並列性によるものであり、また、ＬＤＰＣ符号が様々な用途において使用されることを可能にする、ＬＤＰＣ符号の設計における柔軟性によるものである。
【０００７】
ＬＤＰＣ符号は、線形誤り訂正符号であり、疎な２進パリティ検査行列Ｈによって完全に定義される。２部タナーグラフが、パリティ検査行列Ｈを表す広く使用される方法である。このグラフは、２つのノード集合、すなわち、検査ノードと変数ノードからなる。Ｈの各行は、タナーグラフの検査ノードとして図式的に表されるパリティ検査方程式に対応し、各列は、変数ノードとして図式的に表される、符号語ビットに対応する。Ｈ行列におけるＨ（ａｃｅ）は、対応する変数ノードと検査ノードとの間の連結を表示する。ＬＤＰＣ符号を復号するためのメッセージ伝播アルゴリズムは、タナーグラフのエッジに沿って情報を反復して受け渡すことによって動作する。ある意味では、変数ノードは、受け取られる語、メッセージとパリティ両方のビットに対応し、検査ノードは、パリティ検査方程式に対応する。
【０００８】
ＬＤＰＣ符号の復号は、確率伝播法（ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ）とも呼ばれる、Ｓｕｍ−ｐｒｏｄｕｃｔメッセージ伝播法に基づくものとすることができる。この場合には、特定のＬＤＰＣ符号についてのタナーグラフは、タナーグラフのノードを演算要素で置き換え、ノード間のエッジを、演算要素を接続する通信バスで置き換えることによって、符号のハードウェア復号器を構築するためのガイドとして使用することができる。確率的情報を、対数尤度比（ｌｏｇ−ｌｉｋｅｌｉｈｏｏｄ  ｒａｔｉｏ、  ＬＬＲ）の形で、演算要素間の通信バスに沿って受け渡すことができる。
【０００９】
Ｓｕｍ−ｐｒｏｄｕｃｔメッセージ伝播法（確率伝播法）はＬＤＰＣ符号について近似最適とみなされるが、実際のＬＤＰＣ復号器は、復号器サイズや待ち時間といった考慮事項を考慮に入れなければならない。このことは、その符号語長が、例えば、６４８ビット、１２９６ビット、または１９４４ビット、あるいはそれ以上の長さとなりうるＬＤＰＣ符号について特に当てはまる。よって、複雑度を低減するために、ハードウェア復号器は一般に、Ｍｉｎ−Ｓｕｍアルゴリズムやその変形（例えば、正規化Ｍｉｎ−Ｓｕｍ、オフセットＭｉｎ−Ｓｕｍ、補正Ｍｉｎ−Ｓｕｍなど）といった、Ｓｕｍ−ｐｒｏｄｕｃｔアルゴリズムの近似を使用する。
【００１０】
Ｍｉｎ−Ｓｕｍアルゴリズムおよびその変形に基づくメッセージ伝播法を用いる、誤り訂正復号器のノードプロセッサ内で典型的に行われる演算は、より多数の入力の中から２つの最小値を識別することを伴う。２つの最小値を識別する既存の方法は、ハードウェア、待ち時間、および電力消費の点で、比較的高い複雑度を有する回路を必要とする傾向にある。
【発明の概要】
【課題を解決するための手段】
【００１１】
本発明は、値集合の中から選択値を識別することを対象とする。一実施形態によれば、複数の値の中から２つの選択値を識別する方法は、複数の値を値の対に分割することと、値の対ごとに、２つの値のうちの１つを選択することにより各対の選択値からベクトルを形成するために比較器を使用することと、ベクトルを、ベクトルの値の中から第１の極値および第２の極値を識別するハードウェアユニットに適用することと、を含む。
【００１２】
別の実施形態によれば、複数の値の中から２つの選択値を識別する装置は、各比較回路が、複数の値から分割される値の対を受け取り、各対の値のうちの１つを出力として選択するように構成されている、複数の比較回路、を含む。本装置は、複数の比較回路から出力される選択値を受け取り、複数の値の全部の中から選択される第１の最小値、および複数の値の部分集合の中から選択される第２の最小値を識別するように構成された選択回路であって、第１の最小値および第２の最小値を出力するように構成されている、選択回路、をさらに含む。
【図面の簡単な説明】
【００１３】
本発明は、本発明の特定の例示的実施形態に関連して説明され、図面がしかるべく参照される。
【００１４】
【図１】本発明の実施形態を実装することができる通信システムを示す図である。
【００１５】
【図２】本発明の一実施形態による誤り訂正復号器を示す図である。
【００１６】
【図３】本発明の一実施形態による、複数の値の中から２つの選択値を識別する方法を示す図である。
【００１７】
【図４】本発明の一実施形態による、複数の値の中から２つの選択値を識別するための装置を示す図である。
【００１８】
【図５】本発明の一実施形態による、２つの値を比較し、２つのうちの最低の値を識別するための装置を示す図である。
【００１９】
【図６】本発明の一実施形態による、複数の値の中から２つの選択値を反復して識別するための装置を示す図である。
【００２０】
【図７】本発明の一実施形態による、２つの値を比較し、どちらの値が最小であり、どちらの値が第２の最小であるかを識別するための装置を示す図である。
【００２１】
【図８】本発明の一実施形態による、複数の値の中から最低の２つの値を識別するための装置を示す図である。
【００２２】
【図９】本発明の一実施形態による、ごく限られた性能劣化を示すシミュレーション結果を示す図である。
【００２３】
【図１０】本発明の一実施形態による、ごく限られた性能劣化を示すシミュレーション結果を示す図である。
【００２４】
【図１１】本発明の一実施形態による、必要とされる比較器の数に関して、複雑度の低減の概要を示す図である。
【００２５】
【図１２】本発明の一実施形態による、必要とされるマルチプレクサの数に関して複雑度の低減の概要を示す図である。
【００２６】
【図１３】本発明の一実施形態による、ｍｉｎ＿２ｎｄ値が低減係数で乗算される、複数の値の中から２つの選択値を識別するための装置を示す図である。
【００２７】
【図１４】本発明の一実施形態による、追加回路が、結果として得られる第２の最小値が常に第１の最小値より大きいことを保証する、複数の値の中から２つの選択値を識別するための装置を示す図である。
【発明を実施するための形態】
【００２８】
Ｍｉｎ−Ｓｕｍアルゴリズムおよびその変形（例えば、正規化Ｍｉｎ−Ｓｕｍ、オフセットＭｉｎ−Ｓｕｍ、補正Ｍｉｎ−Ｓｕｍなど）に基づくメッセージ伝播法を利用する誤り訂正復号器、具体的にはＬＤＰＣ復号器は、中間結果の集合の中から２つの最小値を識別する回路を含む。本発明は、値集合の中から選択値を識別するための方法および装置を対象とする。選択値は必ずしも２つの最小値とは限らないが、本発明の実施形態は、２つの最小値を近似する値を識別する。より詳細には、本発明の一実施形態は、値集合の中の最小値である第１の値、および値集合の中の第２の最小値を近似する第２の値を識別する。第２の値は、値の部分集合の中の最小値とすることができる。
【００２９】
結果は必ずしも値集合の中の２つの最小値と数値的に同一になるとは限らないが、本発明の実施形態は、さほどの欠点を伴わずに様々な状況で用いることができる。例えば、シミュレーションが示すところによれば、Ｍｉｎ−Ｓｕｍアルゴリズムおよびその変形を用いるＬＤＰＣ復号器における本技法の使用は、十分な符号化利得を達成する。本手法の重要な利点は、本明細書で開示する技法を実装するプロセッサの複雑度が大幅に低減されることである。例えば、本発明の実施形態は、いくつかの入力メッセージを並列に処理するＬＤＰＣ復号器内の検査ノードプロセッサにおいて用いることができる。
【００３０】
この簡略化は、入力メッセージの第１の最小および第２の最小を見つけるという問題を、入力メッセージの完全集合の最小を見つけると共に、入力メッセージの部分集合の中の最小である第２のメッセージを見つけるという異なる問題によって、近似することによって達成することができる。この要件の緩和、およびそれに付随する扱われる問題の複雑度の低減は、訂正能力の許容できるほどわずかな劣化を代償とするハードウェア簡略化につながる。
【００３１】
本発明の実施形態は、入力メッセージの集合における２つの最小を見つけるという問題を、その解決が大幅に少ない比較回数で済むより簡単な問題によって近似する。そうした回路は、例えば、ＬＤＰＣ復号器内の検査ノードプロセッサにおいて用いることができる。したがって、符号化利得のわずかな損失と交換に、ＬＤＰＣ復号器内の検査ノードプロセッサの実装のハードウェア複雑度の大幅な低減が達成される。
【００３２】
図１に、本発明の実施形態を実装することのできる通信システム１００を示す。図１に示すように、送信されるべきディジタルデータ１０２が送信機１０４に入力される。送信機１０４は、符号器１０６と変調器１０８とを含むことができる。符号器１０６は、例えば、データ１０２を固定サイズのメッセージに分割し、各メッセージを符号語に符号化することによって、データの誤り訂正符号化を行う。符号化プロセスの間に、符号語がメッセージより大きくなるように冗長性を挿入することができる。
【００３３】
変調器１０８は、次いで、符号語に従って、１つまたは複数の搬送波信号を変調することによって、符号語を送信のために準備することができる。一例として、変調は、直交周波数分割多重化（ＯＦＤＭ）に従って行うこともできる。変調され、符号化された各信号を、次いで、通信路１１０を介して送信することができる。通信路１１０は、例えば無線通信路とすることができ、無線通信路は、例えば、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）の一部とすることができる。
【００３４】
受信機１１２が通信路１１０から送信信号を受信する。受信機１１２は、復調器１１４と復号器１１６とを含むことができる。復調器１１４は、符号語を再構築するように受信信号を復調する。符号語は、次いで、元のデータ１０２を再構築するために、復号器１１６によって復号することができる。復号器１１６は、通信プロセスによって導入されるある一定の誤りを訂正することができるが、復号器１１２から出力されるデータ１１８は、残存する未訂正の誤りにより元のデータ１０２と異なる可能性がある。
【００３５】
図２に、本発明の一実施形態による誤り訂正復号器２００を示す。図２に示す誤り訂正復号器２００は、図１の誤り訂正復号器１１６に含めることができる。図２に示すように、復号器２００は、複数の変数ノードプロセッサ２０２、２０４、２０６、および複数の検査ノードプロセッサ２０８、２１０を含む。通信バス２１２、２１４、２１６、２１８が、変数ノードプロセッサ２０２、２０４、２０６と検査ノードプロセッサ２０８、２１０との間で、メッセージを受け渡す手段を提供する。
【００３６】
例示のために、図２の復号器２００は、３つの変数ノードプロセッサおよび２つの検査ノードプロセッサと共に示されているが、変数ノードおよび検査ノードの数は、一般に、個々の誤り訂正符号のパリティ検査行列の次元に関連するものであることは明らかであろう。例えば、ＬＤＰＣ符号の符号語長は、例えば、６４８ビット、１２９６ビット、または１９４４ビット、あるいはそれ以上の長さとすることができる。復号器２００の通信バスの数および位置は、一般に、個々の誤り訂正符号のためのパリティ検査行列内の１の位置に関連するものになる。よって、変数ノードプロセッサおよび検査ノードプロセッサの各々の数、ならびにそれらの間の通信バスの配置は、タナーグラフから、かつ／または特定の誤り訂正符号のためのパリティ検査行列から導出することができる。
【００３７】
変数ノードプロセッサおよび検査ノードプロセッサの各々はハードウェア回路を含み、ハードウェア回路は、メモリ、レジスタ、論理回路、汎用プロセッサおよび／または専用プロセッサ、機械可読ソフトウェア、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理アレイ（ＰＬＡ）などを含むことができる。復号器２００のこの特定の配置は例示であり、本発明の実施形態は他の復号器配置およびアーキテクチャと併せて用いることもできることは明らかであろう。
【００３８】
Ｓｕｍ−ｐｒｏｄｕｃｔメッセージ伝播法は、復号器２００によって行うことができる。この場合には、確率的情報を、例えば対数尤度比（ＬＬＲ）の形で、変数ノードプロセッサ２０２、２０４、２０６と検査ノードプロセッサ２０８、２１０との間の通信バス２１２、２１４、２１６、２１８に沿って受け渡すことができる。復号器２００は、通信路１１０から受信される各符号語のビットに関するＬＬＲで初期設定することができる。半反復ごとに、変数ノードプロセッサ２０２、２０４、２０６は検査ノードプロセッサ２０８、２１０から入力を取り込み、検査ノードプロセッサ２０８、２１０のための出力を算出する。次の半反復で、検査ノードプロセッサ２０８、２１０は変数ノードプロセッサ２０２、２０４、２０６から入力を取り込み、変数ノードプロセッサ２０２、２０４、２０６のための出力を算出する。これらの反復は、符号語が見つかり、または他の何らかの停止基準に到達するまでの間、繰り返すことができる。
【００３９】
図３に、本発明の一実施形態による、複数の値の中から２つの選択値を識別する方法３００を示す。方法３００は、図２の復号器２００によって行うことができる。より詳細には、方法３００は、図２の検査ノードプロセッサ２０８、２１０の各々によって行うことができる。方法３００に従って処理されるべき値集合は、図２の変数ノードプロセッサ２０２、２０４、２０６から獲得される確率値を含むことができる。
【００４０】
ステップ３０２で、値集合は対に分割される。例えば、入力値の集合はＤであり、Ｄ＝［１，３，４，６，３，６，２，１］であるものと仮定する。ステップ３０２では、Ｄを、Ｐ＝［｛１，３｝，｛４，６｝，｛３，６｝，｛２，１｝］として対に分割することができる。一実施形態においては、初期分割をどのように行いうるかに関する制約がない。言い換えると、各値は任意の対に分割することができる。集合が奇数の数の値を有する場合、集合全体を対に分割することができるように、集合に値を追加することができる。例えば、追加される値は、追加される値と対になるすでに集合に含まれる値以上とすることができる。
【００４１】
ステップ３０４で、値の対ごとの最小値が識別され、最小値のベクトルが形成される。このステップは、例えば、１つまたは複数の比較器を使用して行うことができる。例に戻って、ステップ３０４を集合Ｐ＝［｛１，３｝，｛４，６｝，｛３，６｝，｛２，１｝］に適用した結果がベクトルｍ＝［１，４，３，１］である。ベクトルｍは、Ｐの各対の最小を含む。ステップ３０４では、Ｐの最大を含む第２のベクトルＭを生成することができる。本例では、Ｍ＝［３，６，６，２］である。一実施形態においては、Ｍは無視され、または生成されない。他の実施形態においては、ベクトルＭはさらに処理されうる。
【００４２】
ステップ３０６で、ｍ内の２つの最小が識別される。本例では、２つの最小は、１と１である。
【００４３】
第２のステップの他の変形を実施することもできる。例えば、ｍの２つの最小を見つける代わりに、第１のステップで記述されている手順を反復して適用することもできる。この場合には、例を見ると、ｍを［｛１，４｝，｛３，１｝］としてさらに分割することができ、次いで本方法は［１，１］を返す。
【００４４】
図４に、本発明の一実施形態による、複数の値の中から２つの選択値を識別するための装置４００を示す。装置４００は、図３の方法３００を行うのに使用することができる。図４に示すように、複数の入力メッセージ（または値）が、入力ｘ０、入力ｘ１、入力ｘ２、入力ｘ３、入力ｘ４、入力ｘ５、入力ｘ６、入力ｘ７に適用される。Ｄ内の値をこれらの入力に適用することができる。装置４００は、入力ｘ０、入力ｘ１、入力ｘ２、入力ｘ３、入力ｘ４、入力ｘ５、入力ｘ６、入力ｘ７の対ごとに１つずつ、複数の比較器ブロック４０２、４０４、４０６、４０８を含む。Ｄ内の値の対を、比較器ブロック４０２、比較器ブロック４０４、比較器ブロック４０６、比較器ブロック４０８の各入力に適用することにより、値がベクトルＰと同様に対に分割される。これは図３のステップ３０２に対応する。
【００４５】
比較器ブロック４０２、比較器ブロック４０４、比較器ブロック４０６、比較器ブロック４０８の各々は、各対の最小値を識別するために、その入力において値の対を比較する。具体的には、ブロック４０２は、入力ｘ０、入力ｘ１の最小を識別するためにそれら２つを比較する。ブロック４０２の最小値出力ｘ１０は、入力として最小算出ブロック４１０に適用される。同様に、ブロック４０４も、入力ｘ２、入力ｘ３の最小を識別するためにそれら２つを比較し、出力ｘ１１は入力としてブロック４１０に適用される。ブロック４０６は、入力ｘ４、入力ｘ５の最小を識別するためにそれら２つを比較し、出力ｘ１２は入力としてブロック４１０に適用される。ブロック４０８は、入力ｘ６、入力ｘ７の最小を識別するためにそれら２つを比較し、出力ｘ１３は入力としてブロック４１０に適用される。ブロック４１０に入力される値はベクトルｍに対応する。比較器ブロック４０２、比較器ブロック４０４、比較器ブロック４０６、比較器ブロック４０８の演算およびベクトルｍの形成は、図３のステップ３０４に対応する。
【００４６】
図５に、本発明の一実施形態による、２つの値を比較し、２つのうちの最低の値を識別するための比較装置５００を示す。図５に示すように、入力ｘ０、入力ｘ１が、比較器５０２とマルチプレクサ５０４とに適用される。比較器５０２の出力ｃｐ０は、２つの値ｘ０、ｘ１のうちのどちらの方が低いかに依存する２進値である。出力ｃｐ０は、２つの値のうちの低い方が比較装置の出力ｘ１０に渡されるように、マルチプレクサ５０４を制御する。装置５００は、図４の比較器ブロック４０２、比較器ブロック４０４、比較器ブロック４０６、比較器ブロック４０８の各々に含めることができる。
【００４７】
図４に戻って、最小算出ブロック４１０は、その入力として、入力ｘ１０、入力ｘ１１、入力ｘ１２、入力ｘ１３においてベクトルｍを受け取る。最小算出ブロック４１０は、次いで、ｍ内の値の中から第１の最小および第２の最小を識別し、これらの値をｍｉｎ＿１ｓｔおよびｍｉｎ＿２ｎｄとして出力する。これは、図３に示すステップ３０６に対応する。
【００４８】
図６に、本発明の一実施形態による、複数の値の中から２つの選択値を反復して識別するための装置６００を示す。図６は、ステップ３０４が（おそらくはステップ３０６も）反復して適用される、方法３００の前述の変形を行うのに使用することができる。より詳細には、図６に示すように、複数の入力メッセージ（または値）が、入力ｘ０、入力ｘ１、入力ｘ２、入力ｘ３、入力ｘ４、入力ｘ５、入力ｘ６、入力ｘ７に適用される。装置６００は、入力ｘ０、入力ｘ１、入力ｘ２、入力ｘ３、入力ｘ４、入力ｘ５、入力ｘ６、入力ｘ７の対ごとに１つずつ、複数の比較器ブロック４０２、４０４、４０６、４０８を含む。これらのブロックは、図４の同じ参照番号を有するブロックと同一とすることができる。比較器ブロック４０２、比較器ブロック４０４、比較器ブロック４０６、比較器ブロック４０８の各々は、各対の最小値を識別するために、その入力において値の対を比較する。
【００４９】
次の段の比較器ブロック６０２、比較器ブロック６０４は、第１の段によって識別された値を受け取り、各対の最小値を識別するために、その入力において値の対を再度、各々比較する。値が選別されて単一の対になるように、任意の数のそうした段を追加することができる。この単一の対ｘ２０、ｘ２１は「第１の最小および第２の最小を見つける」ブロック６０６に適用される。このブロック６０６は、どちらが最小であり、どちらが第２の最小であるかを識別する。
【００５０】
図７に、本発明の一実施形態による、２つの値を比較し、どちらの値が最小であり、どちらの値が第２の最小であるかを識別するための比較装置７００を示す。図７に示すように、入力ｘ２０、入力ｘ２１が、比較器７０２と２つのマルチプレクサ７０４、７０６とに適用される。比較器７０２の出力ｃｐ０は、２つの値ｘ２０、ｘ２１のうちのどちらの方が低いかに依存する２進値である。出力ｃｐ０は、２つの値のうちの低い方が出力ｍｉｎ＿１ｓｔに渡され、高い方の値が比較装置７００の出力ｍｉｎ＿２ｎｄに渡されるように、マルチプレクサ７０４およびマルチプレクサ７０６を制御する。装置７００は、図６の「第１の最小および第２の最小」を見つけるブロック６０６に含めることができる。
【００５１】
図８に、本発明の一実施形態による、複数の値の中から最低の２つの選択値を識別するための装置８００を示す。装置８００は、最小算出ブロック４１０に含めることができる。図８を参照すると、出力ｘ１０、出力ｘ１１が、図７に記載されているように、「第１の最小および第２の最小を見つける」ブロック８０２に適用される。２つの値のうちの低い方は、比較装置８０２の出力ｘ２０に、高い方の値は出力ｘ２１に渡される。同様に、出力ｘ１２、出力ｘ１３も、「第１の最小および第２の最小を見つける」ブロック８０４に適用される。２つの値のうちの低い方は、比較装置の出力ｘ２２に、高い方の値は出力ｘ２３に渡される。出力ｘ２０、出力ｘ２２が比較器ブロック８０６に適用される。比較器ブロック８０６の出力ｍｉｎ＿１ｓｔは、ベクトルｍの値の中からの（また元の値集合Ｄの中からの）最小値に対応する。
【００５２】
出力ｘ２０、出力ｘ２３が比較器ブロック８０８に適用される。出力ｘ３０は２つの値ｘ２０、ｘ２３のうちの低い方に対応する。出力ｘ２１、出力ｘ２２が比較器ブロック８１０に適用される。出力ｘ３１は２つの値ｘ２１、ｘ２２のうちの低い方に対応する。比較器ブロック８０６の出力ｃｐ０は、２つの値ｘ３０、ｘ３１のうちの正しい方が出力ｍｉｎ＿２ｎｄに経路指定されるように、マルチプレクサ８１２を制御する。これにより、次の最小値ｍｉｎ＿２ｎｄが獲得される。値ｍｉｎ＿２ｎｄ値は、ベクトルｍの値の中の最小値である。ｍｉｎ＿２ｎｄ値は必ずしも元の値集合Ｄの中からの２番目に低い値であるとは限らないが、代わりに、元の値集合Ｄの中からの２番目に低い値の近似である。
【００５３】
例示の集合Ｄは説明のために８つの値を含むが、実際には、集合Ｄは異なる数の値を有しうる。例えば、集合Ｄを著しく大きくすることもできる。この場合には、図２および図４〜図８に示す装置に適切な変更を加えることができる。図２および図４〜図８に示す装置は例示であり、本発明の利点は、装置の変更があっても、異なる装置でも達成することができることは明らかであろう。また、最小値を識別するのではなく、本発明の実施形態は、より一般的に、極値、例えば最大値を識別するのに利用することができることも明らかであろう。これは、例えば、本明細書で開示されるマルチプレクサへの入力の順番を逆にすることによって、または本明細書で開示されるマルチプレクサへの制御入力を反転させることによって成し遂げることができる。
【００５４】
提案の方法によって得られる結果は必ずしも、元の問題の解と数値的に同一であるとは限らないが、シミュレーションが示すところによれば、本手法は、Ｍｉｎ−Ｓｕｍおよびその変形を利用するＬＤＰＣ復号方法において使用することができ、十分な符号化利得を達成する。本発明の実施形態は、復号器の訂正能力におけるほとんど無視できるほどの劣化を代償として、大幅な複雑度低減を可能にする（ＩＥＥＥ８０２．１１ａｃ符号、符号化率１／２で、おおよそ０．０２ｄＢ）。一例として、ＩＥＥＥ８０２．１１ａｃ規格の符号化率１／２、１９４４ビットの符号についての図９に示すビット誤り率（ＢＥＲ）プロットのシミュレーション結果は、符号化利得における０．０１５ｄＢの性能劣化を明らかにしている。別の例として、図１０に、ＩＥＥＥ８０２．１１ａｃ規格の符号化率５／６、１９４４ビットの符号についてのシミュレーションのＢＥＲプロットを示す。これは、統計的誤差の限度内の、問題にならない程度の性能劣化を示している。その利益は、検査ノードプロセッサにおいて必要とされるメッセージ比較回数がはるかに少なく、したがって、検査ノードプロセッサの複雑度が大幅に低減されることである。
【００５５】
この複雑度低減は、ステップ３０４の適用回数に比例することが判明している。図１１および図１２に、複雑度低減の概要を、ステップ３０４適用回数および入力値の数の関数としての、それぞれ必要とされる比較器およびマルチプレクサの数として示す。
【００５６】
他方、方法３００のステップ３０４が複数回反復して適用されるに従って、誤り、すなわち、計算されるｍｉｎ＿２ｎｄ値が元の値集合Ｄの２番目に低い値ではない可能性が増大する。近似される第２の最小値は常に、実際の第２の最小値以上である。本発明の一実施形態においては、ｍｉｎ＿２ｎｄ値は、図１３に示すように、１未満の値の正の補正係数で乗算される。シミュレーションが示すところによれば、ｍｉｎ＿２ｎｄ値に対するこの低減係数の適用は、訂正能力劣化を低減することができる。
【００５７】
低減係数を算出する１つの可能な方法は、ＬＤＰＣ復号器のシミュレーション中に獲得される、多数の値についての、推定される第２の最小に対する実際の第２の最小の比の平均値を算出することである。
【００５８】
低減係数によるｍｉｎ＿２ｎｄ値乗算の結果は、最小値より低い値となる場合もある。これを防ぐために、図１４に示す別の実施形態においては、いくつかの追加回路が、結果として得られる第２の最小値が常に第１の最小値より大きいことを保証する。
【００５９】
図１３および図１４に示す機能要素には、図４の対応する要素と同様の参照番号が付されている。図１３および図１４において、マルチプレクサ１３０２は、補正値を生成するための低減係数による乗算を行う。比較ブロック１４０２および選択ブロック１４０４は、２つの値を比較し、２つのうちの低い方をｍｉｎ＿２ｎｄとして選択する。
【００６０】
Ｍｉｎ−Ｓｕｍアルゴリズムおよびその変形は、より単純な実装を可能とするｌｏｇ−Ｓｕｍ−Ｐｒｏｄｕｃｔアルゴリズム（ＬｏｇＳＰ）の近似である。これらのアルゴリズムは、ＬＤＰＣ復号に加えて、等化その他の分野においても適用することができる。よって、本発明の実施形態はＬＤＰＣ復号だけに限定されない。
【００６１】
本発明の以上の詳細な説明は、例示のために提供するものであり、網羅的であることも、本発明を開示の実施形態だけに限定することも意図していない。したがって、本発明の範囲は、添付の特許請求の範囲によって定義されるものである。
【図１】
0006446459.tif 000002
【図２】
0006446459.tif 000003
【図３】
0006446459.tif 000004
【図４】
0006446459.tif 000005
【図５】
0006446459.tif 000006
【図６】
0006446459.tif 000007
【図７】
0006446459.tif 000008
【図８】
0006446459.tif 000009
【図９】
0006446459.tif 000010
【図１０】
0006446459.tif 000011
【図１１】
0006446459.tif 000012
【図１２】
0006446459.tif 000013
【図１３】
0006446459.tif 000014
【図１４】
0006446459.tif 000015