IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特許7580636プロトグラフ準巡回極性コードおよび関連する低密度生成行列ファミリ
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-31
(45)【発行日】2024-11-11
(54)【発明の名称】プロトグラフ準巡回極性コードおよび関連する低密度生成行列ファミリ
(51)【国際特許分類】
   H03M 13/13 20060101AFI20241101BHJP
【FI】
H03M13/13
【請求項の数】 27
(21)【出願番号】P 2023572254
(86)(22)【出願日】2021-11-30
(65)【公表番号】
(43)【公表日】2024-02-13
(86)【国際出願番号】 JP2021044603
(87)【国際公開番号】W WO2022176319
(87)【国際公開日】2022-08-25
【審査請求日】2023-08-07
(31)【優先権主張番号】17/181,819
(32)【優先日】2021-02-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】秋濃 俊昭
(72)【発明者】
【氏名】ワン,イェ
【審査官】鉢呂 健
(56)【参考文献】
【文献】特表2020-501472(JP,A)
【文献】米国特許出願公開第2018/0226999(US,A1)
【文献】KOIKE-AKINO, Toshiaki and WANG, Ye ,Protograph-Based Design for QC Polar Codes,arXiv:2102.12629v1 [cs.IT],arxiv.org,2021年02月25日,pp.1-6,<URL:https://arxiv.org/pdf/2102.12629v1>
(58)【調査した分野】(Int.Cl.,DB名)
H03M13/00-99/00
(57)【特許請求の範囲】
【請求項1】
1つ以上のコンピューティングプロセッサによって実行される、デジタルデータをエンコードするための、コンピュータにより実現される方法であって、
コード仕様に基づいて極性型低密度生成行列(low-density generator matrix:LDGM)コードのプロトグラフ構造を定義するステップを含み、前記コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含み、前記コンピュータにより実現される方法はさらに、
入力デジタルデータとしてのソースビットストリームにアクセスするステップと、
前記凍結ビット割当てのルールに従って前記ソースビットストリームと凍結ビットのセットとを用いてデータ配列を初期化するステップと、
前記プロト分極の段階全てにわたる前記メッセージ受渡しのルールに従って前記データ配列を伝搬させるステップとを含み、当該伝搬させるステップはさらに、
(a)前記データ配列をプロト分極段階に、1つの段階から別の段階へと順次供給するステップを含み、前記プロト分極段階は少なくとも1つのプロト分極単位を含み、さらに、
(b)前記プロトグラフ置換のルールに従って前記プロト分極単位の各々において前記データ配列を置換するステップと、
(c)前記メッセージ受渡しのルールに従って、前記プロト分極単位の各々において前記データ配列を修正するステップとを含み、前記コンピュータにより実現される方法はさらに、
前記修正されたデータ配列を指定された順序でコードワードに配置するステップと、
前記コードワードを前記入力デジタルデータのエンコードされたデジタルデータとして提供するステップとを含む、コンピュータにより実現される方法。
【請求項2】
前記プロト分極単位は、
少なくとも1つのプロトチェックノードと、
少なくとも1つのプロト変数ノードとを含み、
前記プロトチェックノードおよび前記プロト変数ノードの少なくとも1つの対は、前記プロトグラフ置換のルールに従ってマルチビットメッセージを受渡すために相互に接続される、請求項1に記載の方法。
【請求項3】
前記メッセージ受渡しのルールに基づいて前記データ配列を修正するステップは、前記プロト分極単位の各々において代数算術演算のセットを適用するステップを含み、前記代数算術演算は、有限環、有限ガロア体、ルックアップテーブル、またはこれらの組合せに基づいている、請求項1に記載の方法。
【請求項4】
前記極性型LDGMコードの前記プロトグラフ構造を定義する前記コード仕様は、基本コードの生成行列についてのリフティング演算に基づいており、前記リフティング演算は、前記生成行列の各要素を置換行列と置き換えることによって基本コードの複製および置換を適用し、前記生成行列は、複数のプロト分極段階を定義するために少なくとも2つのサブ生成行列に分解される、請求項1に記載の方法。
【請求項5】
前記プロトグラフ置換のルールは、前記プロト分極の各々に関連付けられた、シフト値との巡回置換、シフト値との逆巡回置換、多項式係数のセットとの多項式置換、ランダム重み1の置換行列、ランダム重み2の置換行列、ランダム重み3の置換行列、またはこれらの組合せ、を定義するパラメータのセットを含む、請求項1に記載の方法。
【請求項6】
前記凍結ビット割当てのルールおよび前記プロトグラフ置換のルールは、反復方法によって決定され、前記反復方法は、
(a)凍結ビット位置、スケルトン基本行列、および置換パラメータのセットを初期化するステップと、
(b)前記スケルトン基本行列に応じて前記プロト分極単位のセットをプルーニングするステップと、
(c)プロトグラフ外部情報転送(protograph extrinsic information transfer:P-EXIT)法に基づいて誤り率の上限を計算するステップとを含み、前記P-EXIT法はさらに、
(c1)チャネル相互情報のセットを前提として前記凍結ビット位置および前記置換パラメータに応じて、プロトグラフ内の各エッジに関連付けられた外部情報のセットを初期化するステップと、
(c2)前記外部情報の進化を定義するP-EXITルールのセットに基づいて、プロト分極単位において前記外部情報を更新するステップと、
(c3)デコーディングスケジュールに応じて、指定された順序で、前記プロト分極単位のセットに関して前記更新するステップ(c2)を繰返すステップと、
(c4)前記更新された外部情報および前記凍結ビット位置に基づいて誤り率の前記上限を計算するステップとを含み、前記反復方法はさらに、
(d)プロト分極単位の各々におけるスコアを計算するステップを含み、前記スコアは、
(dl)プロト分極単位から離れるサイクルを見つけ、前記プロトグラフを通じて同じプロト分極単位を戻すステップと、
(d2)前記凍結ビット位置、前記スケルトン基本行列、および前記置換パラメータに応じてサイクル長を決定するステップと、
(d3)前記サイクルに関与した前記プロト分極単位に関連付けられた前記スコアの全てに、前記サイクル長に応じた加重値を加算するステップと、
(d4)前記プロトグラフ内の経路の指定されたセットに関して、前記ステップ(d1)~(d3)を繰返すステップと、
によって計算され、前記反復方法はさらに、
(e)前記上限および前記スコアに基づいて、前記凍結ビット位置、前記スケルトン基本行列、および前記置換パラメータを修正するステップと、
(f)前記上限および前記スコアに関して指定された条件が満たされるまで前記ステップ(b)から(e)を繰返すステップとを含む、請求項1に記載の方法。
【請求項7】
前記凍結ビット割当てのルールに基づいて前記データ配列を初期化するステップはさらに、
(a)前記データ配列の一部から選択的に選択されたビットシーケンスを形成するステップと、
(b)巡回冗長検査(cyclic redundancy check:CRC)コード、BCH(Bose-Chaudhuri-Hocquenghem)コード、巡回コード、準巡回コード、畳み込みコード、またはこれらの組合わせを含む線形コードに基づいて、前記ビットシーケンスからパリティシーケンスを計算するステップと、
(c)前記パリティシーケンスを前記データ配列の選択された部分に埋込むステップと、
(d)複数のパリティビットを前記データ配列に指定された回数だけ埋込むために前記ステップ(a)~(c)を繰返すステップとを含む、請求項1に記載の方法。
【請求項8】
前記基本コードは、カーネル行列のうちの少なくとも2つのクロネッカー累乗(Kronecker power)に基づいた少なくとも2つの分極段階を含む極性コードであり、前記カーネル行列は、1よりも大きい次数サイズのフルランク行列であり、前記カーネル行列は、有限ガロア体、有限環、またはこれらの組合わせに基づいている、請求項4に記載の方法。
【請求項9】
前記コード仕様によって定義される前記プロトグラフ構造は、前記プロト分極単位の空間結合に基づいており、前記空間結合は、テールバイティングの有無にかかわらず、前記プロトグラフの矩形状、立方体形状、編組形状、階段形状、またはトーラス形状を構築するために均一または不均一に前記プロトグラフ構造を形成する、請求項1に記載の方法。
【請求項10】
1つ以上のコンピューティングプロセッサによって実行される、ノイズのあるコードワードをデコードするための、コンピュータにより実現される方法であって、
コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含み、前記コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含み、前記コンピュータにより実現される方法はさらに、
ノイズのあるコードワードについての信念メッセージを表わす入力データにアクセスするステップと、
前記プロトグラフにおける各エッジに関連付けられた左向きメッセージおよび右向きメッセージの配列を初期化するステップとを含み、前記プロト分極の第1の段階に供給する前記右向きメッセージは、前記凍結ビット割当てのルールに基づいて固定され、前記プロト分極の最後の段階に供給する前記左向きメッセージは、指定された順序で前記入力データに基づいて固定され、前記コンピュータにより実現される方法はさらに、
少なくとも1つの変数ノードおよび少なくとも1つのチェックノードを含む前記プロト分極の複数の段階にわたる前記メッセージ受渡しのルールに従って前記左向きメッセージおよび前記右向きメッセージを伝搬させるステップを含み、前記左向きメッセージおよび前記右向きメッセージは反復方法によって更新され、前記反復方法は、
(a)前記メッセージ受渡しのルールに従って変数ノードおよびチェックノードの並列化可能なセットを選択するステップと、
(b)前記プロトグラフ置換のルールに従って、前記左向きメッセージおよび前記右向きメッセージのセットを着信メッセージとして前記選択された変数ノードおよびチェックノードに供給するステップと、
(c)前記メッセージ受渡しのルールに従って、前記選択された変数ノードおよびチェックノードにおける前記着信メッセージに基づいて発信メッセージのセットを計算するステップと、
(d)前記左向きメッセージおよび前記右向きメッセージのセットを、前記選択された変数ノードおよびチェックノードにおける前記発信メッセージと置き換えるステップと、
(e)前記メッセージ受渡しのルールに従って、前記ステップ(a)~(d)を指定された回数だけ繰返すステップとを含み、前記コンピュータにより実現される方法はさらに、
前記左向きメッセージのセットを指定された順序で出力メッセージとして選択するステップと、
前記出力メッセージをデコードされたデジタルデータとして提供するステップとを含む、コンピュータにより実現される方法。
【請求項11】
前記プロト分極単位は、
少なくとも1つのプロトチェックノードと、
少なくとも1つのプロト変数ノードとを含み、
前記プロトチェックノードおよび前記プロト変数ノードの少なくとも1つの対は、前記プロトグラフ置換のルールに従ってマルチビットメッセージを受渡すために相互に接続される、請求項10に記載の方法。
【請求項12】
変数ノードおよびチェックノードにおける前記発信メッセージを計算するステップは、sum-productアルゴリズム、delta-minアルゴリズム、min-sumアルゴリズム、オフセットされたmin-sumアルゴリズム、正規化されたmin-sumアルゴリズム、修正されたmin-sumアルゴリズム、減衰されたmin-sum、拡張されたmin-sum、量子化されたルックアップテーブル、またはこれらの変形例に基づいた、前記メッセージ受渡しのルール、変数ノードデコーダを定義するルール、およびチェックノードデコーダを定義するルールに基づいている、請求項10に記載の方法。
【請求項13】
前記極性型LDGMコードの前記プロトグラフ構造を定義する前記コード仕様は、基本コードの生成行列のリフティング演算に基づいており、前記リフティング演算は、前記生成行列の各要素を置換行列と置き換えることによって前記基本コードの複製および置換を適用し、前記生成行列は、複数のプロト分極段階を定義するために少なくとも2つのサブ生成行列に分解される、請求項10に記載の方法。
【請求項14】
前記プロトグラフ置換のルールは、前記プロト分極の各々に関連付けられた、シフト値との巡回置換、シフト値との逆巡回置換、多項式係数のセットとの多項式置換、ランダム重み1の置換行列、ランダム重み2の置換行列、ランダム重み3の置換行列、またはこれらの組合せ、を定義するパラメータのセットを含む、請求項10に記載の方法。
【請求項15】
前記左向きメッセージおよび前記右向きメッセージを伝搬させるステップはさらに、
(a)決定論的または確率的にプロト分極の第1の段階から着信する前記左向きメッセージに基づいて、硬判定コードワードの有限リストを生成するステップと、
(b)前記硬判定コードワードリストの一部から選択的に選択されたビットシーケンスを形成するステップと、
(c)巡回冗長検査(CRC)コード、BCH(Bose-Chaudhuri-Hocquenghem)コード、巡回コード、準巡回コード、畳み込みコード、またはこれらの組合わせを含む線形コードに基づいて、前記ビットシーケンスの信頼性を計算するステップと、
(d)前記ステップ(b)および(c)を指定された回数だけ繰返すステップと、
(e)前記計算された信頼性に基づいて前記硬判定コードワードの最も可能性の高いシーケンスを決定するステップと、
(f)前記信頼性に応じて前記硬判定コードワードの前記最も可能性の高いシーケンスに基づいて、前記プロト分極の前記第1の段階に供給する前記右向きメッセージの一部を更新するステップとを含む、請求項10に記載の方法。
【請求項16】
前記基本コードは、カーネル行列のうちの少なくとも2つのクロネッカー累乗(Kronecker power)に基づいた少なくとも2つの分極段階を含む極性コードであり、前記カーネル行列は、1よりも大きい次数サイズのフルランク行列であり、前記カーネル行列は、有限ガロア体、有限環、またはこれらの組合わせに基づいている、請求項13に記載の方法。
【請求項17】
前記コード仕様によって定義される前記プロトグラフ構造は、前記プロト分極単位の空間結合に基づいており、前記空間結合は、テールバイティングの有無にかかわらず、前記プロトグラフの矩形状、立方体形状、編組形状、階段形状、またはトーラス形状を構築するために均一または不均一に前記プロトグラフ構造を形成する、請求項10に記載の方法。
【請求項18】
前記メッセージ受渡しのルールはさらに、ラウンドロビンスケジュール、フラッディングスケジュール、適応スケジュール、ウィンドウ化デコーディングスケジュール、ランダム化スケジュール、直列化スケジュール、逐次除去スケジュール、またはこれらの組合せに基づいたデコーディングスケジュールを含む、請求項10に記載の方法。
【請求項19】
通信チャネルを介してデジタルデータを転送するためのシステムであって、
少なくとも1つのコンピューティングプロセッサと、
少なくとも1つのメモリバンクと、
送信機とを含み、前記送信機は、
転送すべきソースデータを受入れるソースと、
前記ソースデータをエンコードするためのエンコーダとを含み、前記エンコーダは、請求項1に記載の方法を実行することによって、エンコードされたコードワードを生成し、前記送信機はさらに、
エンコードされたコードワードを変調信号に変換するための変調器を含み、前記変調信号は、振幅変調、位相変調、直交振幅変調、位相シフトキーイング、周波数変調、直交周波数分割多重化、空間分割多重化、パルス位置変調、振幅シフトキーイング、周波数シフトキーイング、またはパルス振幅変調に基づいており、前記送信機はさらに、
前記変調信号を前記通信チャネルに送信するためのフロントエンドインターフェイスを含み、前記システムはさらに、
有線媒体チャネル、無線媒体チャネル、光ファイバチャネル、真空自由空間チャネル、またはデータ記憶媒体を含む通信チャネルと、
受信機とを含み、前記受信機は、
前記通信チャネルから出力信号を受信するためのフロントエンドインターフェイスと、
前記チャネルの前記出力信号を復調するための復調器とを含み、前記復調器は尤度情報を入力信念メッセージとして生成し、前記受信機はさらに、
前記入力信念メッセージをデコードするためのデコーダを含み、前記デコーダは、請求項10に記載の方法を実行することによって、デコードされたコードワードを生成し、前記受信機はさらに、
前記デコードされたコードワードを提供するためのシンクを含み、前記システムはさらに、
前記チャネルの知識に応じて、前記エンコーダおよび前記デコーダにおいて用いられるべき極性型低密度生成行列(LDGM)コードのコード仕様を定義するためのコントローラを含み、前記コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、エンコーディングおよびデコーディングのためのメッセージ受渡しの少なくとも1つのルールとを含む、システム。
【請求項20】
前記デコーダはさらに、直列化された相互接続のセットを備えたパイプライン化されたデコーダの展開されたセットを備え、前記パイプライン化されたデコーダの各々はさらに、置換相互接続のセットを備えた並列デコーダのセットを含む、請求項19に記載のシステム。
【請求項21】
前記エンコーダはさらに、プロト分極の複数の段階にわたって、直列化された相互接続のセットを備えたパイプライン化されたエンコーダの展開されたセットを備え、前記パイプライン化されたエンコーダの各々はさらに、置換相互接続のセットを備えた並列エンコーダのセットを備える、請求項19に記載のシステム。
【請求項22】
エンコードされたデジタルデータを入力デジタルデータとしてソースビットストリームから生成するように構成されたエンコーダ回路であって、
前記ソースビットストリームを受信するように構成されたエンコーダインターフェイスと、
コンピュータにより実行可能なエンコーディング方法を格納するように構成された少なくとも1つのメモリバンクと、
前記コンピュータにより実行可能なエンコーディング方法のステップを実行することによって、コードワードをエンコードされたデジタルデータとして前記入力デジタルデータから生成するように構成された1つ以上のコンピューティングプロセッサとを含み、前記ステップは、
コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含み、前記コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含み、前記ステップはさらに、
前記凍結ビット割当ての少なくとも1つのルールに従って、前記ソースビットストリームと凍結ビットのセットとでデータ配列を初期化するステップと、
前記プロト分極の段階全体にわたる前記メッセージ受渡しの少なくとも1つのルールに従って前記データ配列を伝搬させるステップとを含み、前記伝搬させるステップはさらに、
(a)前記データ配列を前記プロト分極の少なくとも2つの段階に、1つの段階から別の段階へと順次供給するステップを含み、前記プロト分極の各段階は少なくとも1つのプロト分極単位を含み、さらに、
(b)前記プロトグラフ置換の少なくとも1つのルールに従って前記プロト分極単位の各々において前記データ配列を置換するステップと、
(c)前記メッセージ受渡しの少なくとも1つのルールに従って前記プロト分極単位の各々において前記データ配列を修正するステップとを含み、前記ステップはさらに、
前記修正されたデータ配列を配置することにより、指定された順序に基づいて前記コードワードを前記エンコードされたデジタルデータとして生成するステップを含む、エンコーダ回路。
【請求項23】
前記エンコーダインターフェイスは、前記コードワードを変調器回路に送信するように構成され、前記変調器回路は、前記コードワードを前記エンコードされたデジタルデータとして通信チャネルを介して送信するために前記コードワードを変調する、請求項22に記載のエンコーダ回路。
【請求項24】
前記コンピュータにより実行可能なエンコーディング方法のステップを実行することは、前記プロトグラフ置換のルールに従ったデータ交換によりエンコーディング方法のセットに対して並列化および直列化される、請求項22に記載のエンコーダ回路。
【請求項25】
ノイズのあるバージョンであるエンコードされたコードワードからデコードされたデジタルデータを生成するように構成されたデコーダ回路であって、
前記ノイズのあるエンコードされたコードワードを入力データとして受信するように構成されたデコーダインターフェイスと、
コンピュータにより実行可能なデコーディング方法を格納するように構成された少なくとも1つのメモリバンクと、
前記コンピュータにより実行可能なデコーディング方法のステップを実行することによって、前記デコーダインターフェイスからの前記エンコードされたコードワードから前記デコードされたデジタルデータを生成するように構成された1つ以上のコンピューティングプロセッサとを含み、前記ステップは、
コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含み、前記コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含み、前記ステップはさらに、
前記プロトグラフ構造における各エッジに関連付けられた左向きメッセージおよび右向きメッセージの配列を初期化するステップを含み、前記プロト分極の第1の段階に供給する前記右向きメッセージは、前記凍結ビット割当ての少なくとも1つのルールに基づいて固定され、前記プロト分極の最後の段階に供給する前記左向きメッセージは、前記エンコードされたコードワードに基づいて指定された順序で固定され、前記ステップはさらに、
少なくとも1つの変数ノードおよび少なくとも1つのチェックノードを含む前記プロト分極の少なくとも2つの段階にわたる前記メッセージ受渡しの少なくとも1つのルールに従って前記左向きメッセージおよび前記右向きメッセージを伝搬させるステップを含み、前記左向きメッセージおよび前記右向きメッセージは反復方法によって更新され、前記反復方法は、
(a)前記メッセージ受渡しの少なくとも1つのルールに従って変数ノードおよびチェックノードの並列化可能なセットを選択するステップと、
(b)前記プロトグラフ置換の少なくとも1つのルールに従って、前記左向きメッセージおよび前記右向きメッセージのセットを着信メッセージとして前記選択された変数ノードおよびチェックノードに供給するステップと、
(c)前記メッセージ受渡しの少なくとも1つのルールに従って、前記選択された変数ノードおよびチェックノードにおける前記着信メッセージに基づいて発信メッセージのセットを計算するステップと、
(d)前記左向きメッセージおよび前記右向きメッセージのセットを、前記選択された変数ノードおよびチェックノードにおける前記発信メッセージのセットと置き換えるステップと、
(e)前記メッセージ受渡しの少なくとも1つのルールに従って、前記ステップ(a)~(d)を指定された回数だけ繰返すステップとを含み、さらに、
前記左向きメッセージのセットを指定された順序で選択することにより、出力メッセージをデコードされたデジタルデータとして生成するステップを含む、デコーダ回路。
【請求項26】
前記デコーダインターフェイスは復調器回路に接続され、前記復調器回路は、通信チャネルからの前記エンコードされたコードワードを復調してデコーディングのための初期信念メッセージを提供し、前記初期信念メッセージは、対数尤度比、対数尤度、尤度、軟判定値、硬判定値、またはこれらの変形例に基づいている、請求項25に記載のデコーダ回路。
【請求項27】
前記コンピュータにより実行可能なデコーディング方法のステップを実行するステップは、複数の反復にわたって、直列化された相互接続のセットで前記デコーディング方法を実行するために、パイプライン化されたステップに展開され、前記パイプライン化されたデコーディング方法の各々はさらに、デコーダのスループットを増加させるために、置換相互接続のセットでデコーディング方法のセットに並列化される、請求項25に記載のデコーダ回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、データ格納およびデータ送信のための誤り訂正符号の分野に関し、より特定的には、プロトグラフベースの準巡回極性コードおよびその一般化された低密度生成行列ファミリのための方法およびシステムに関する。
【背景技術】
【0002】
低密度パリティチェック(low-density parity-check:LDPC)コードに基づいた容量アプローチ型の順方向誤り訂正(forward error correction:FEC)は、データ格納、無線データ送信システム、および光データ送信システムの信頼性向上に大きく寄与してきた。LDPCコードは、サイズM×Nのパリティチェック行列(parity-check matrix:PCM)「H」を用いる。ここで、MおよびNは、それぞれパリティビットの数およびコードワードビットの長さを表わす。コードレートは、コードワード長ごとの正味の情報ビット、すなわちK/Nとして定義され、この場合、情報ビットの数は多くてもK=N-Mである。バイナリLDPCコードの場合、PCMは「0」または「1」で構成される。ガロア体サイズがQである非バイナリの場合、PCMの要素は0からQ-1の整数で形成される。PCMは、Nビットコードワードに対するM個のパリティ方程式が全てゼロになるように有効なコードワードを制限する。すなわち、バイナリコードに関してモジュール2の演算ではxH=0([.]は転置を示す)であり、ここで、xは、Nビットのバイナリコードワードを表わす行ベクトルである。LDPCコードのPCMは因子グラフまたは二部グラフで表現することができ、N個のコーディングされたビットは変数ノード(variable node:VN)で示され、M個のパリティチェックはチェックノード(check node:CN)で示される。PCMの(i,j)番目の要素がゼロ以外である場合、i番目のCNとj番目のVNとが因子グラフにおいて相互に接続される。典型的には、LDPCコードは、並列化可能な信念伝搬(belief-propagation:BP)デコーディングによってデコードすることができ、これは、VNおよびCNにおいて特定のルールを用いて信念メッセージを伝搬させて、例えば対数尤度比(log-likelihood ratio:LLR)の形式でチャネル出力を前提として潜在的な誤りを補正する。BPデコーディングは、階層化されたラウンドロビンおよびフラッディング等の特定のスケジューリングに従って、sum-productアルゴリズム、delta-minアルゴリズムおよびmin-sumアルゴリズム等の反復的なメッセージ受渡しを用いる。
【0003】
プロトグラフコードは、LDPCコードまたは累積反復累積(accumulate-repeat-accumulate:ARA)コードを設計するために導入されたものであり、PCM中の1′はサイズQ×Qの置換行列と置き換えられ、0′はサイズQ×Qの全ゼロ行列と置き換えられる。置換サイズQはリフティングサイズとも呼ばれる。実際の因子グラフは、コンパクトなプロトグラフから、リフティング演算によって形成され、この場合、同じ短いグラフをQ回複製し、複製されたグラフにわたってエッジを置換する。これは、置換されたメッセージ交換による結合でのQ倍のLDPCコードの並列使用と同等である。コードワード長全体はQNにまで増大する。置換行列の最も典型的な選択は、サイズQ×Qの単位行列をsの位置だけ巡回的に右シフトすることによって得られる重み1の巡回行列であり、ここで、sは設計すべき巡回シフト値である。この場合、プロトグラフLDPCコードは、準巡回(quasi-cyclic:QC)LDPCコードと呼ばれる。QC LDPCコードは多くの実用的な利点を有する。例えば、i)巡回置換はハードウェアにおいて実施するのが容易である。ii)基本PCMは、そのコードワード長がQ分の1だけ短いので設計するのがより容易である。iii)プロトグラフコードは、元のPCMが高密度であっても、リフティング係数Qが増加するにつれてより低密度になり得る。iv)因子グラフにおける短いサイクルは巡回シフト設計によって容易に増加させることができる。従来の規則的なQC LDPCコードの最大周長が12であることが示された。ここで、周長(girth)はコードグラフにおける最短サイクルの長さである。BPデコーディングをループ状グラフにおいて適切に機能させるために、コード周長を最大化することが特に重要である。いくつかの不規則なQC LDPCコードの場合、12よりも大きい周長が実現可能であることが示された。周長を最大化することによって短いサイクルが排除されると仮定すると、QC LDPCコードの性能は、プロトグラフ内のメッセージ経路にわたって相互情報を追跡するプロトグラフ外部情報転送(protograph extrinsic information transfer:P-EXIT)技術によって分析することができる。プロトグラフは正確な因子グラフよりもQ倍コンパクトであるので、P-EXIT分析はQC LDPCコードに対してより効率的である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[技術的課題]
モデムシステムでは、空間結合された(spatially-coupled:SC)LDPCコード等のQC LDPCコードを用いて、シャノン限界に近い誤り訂正性能が実用化されてきた。しかしながら、高LDPC性能を追求した結果、消費電力および回路規模が著しく増大した。従って、性能と計算複雑度との間で適切に兼ね合いを図ることは実用的なシステムにとってより重要である。加えて、近年の高性能LDPCコードは、通常、長いデコーディングレイテンシを引起こす非常に長いコードワード長を必要とするのに対して、モノのインターネット(Internet-of-Things:loT)アプリケーションおよびマシン間(machine-to-machine:M2M)通信等のレイテンシ制約付きシステムにとっては、FECコードはより短い方が好ましい。さらに、LDPCコードは、一般に、コード設計がPCM最適化に基づいているのに対して、コードワード生成がサイズN×Kの対応する生成行列(generator matrix:GM)「G」を必要とするので、効率的なエンコーディングに適していない。GMは、通常、GH=0を満たして、Kビットの情報データuからNビットのコードワードxをx=uGとして生成するように、PCMのガウス消去法を必要とする。
【0005】
近年、ブロック長が短い場合にLDPCコードの代わる代替的な容量アプローチ型コードとして、極性コードが大いに注目を集めてきた。極性コードは、逐次除去(successive cancellation:SC)デコーディングの単純なアルゴリズムであっても、いわゆる分極現象により、任意のチャネルでチャネル容量を漸近的に達成できることが判明した。密度進化(density evolution:DE)等のエンコーダ設計法に加えて、逐次除去リスト(successive cancellation list:SCL)デコーディングおよびBPリストデコーディングを含むいくつかのデコーダアルゴリズムが開発された。SCLデコーディングであれば、極性コードは最先端のLDPCコードに大いに匹敵するものである。特に、SCLデコーディング性能が埋込み型の巡回冗長検査(cyclic-redundancy check:CRC)多項式に大いに依存していること、および、適切に設計されたCRCコードによって極性CRC連結コードの最小ハミング距離を増大できることが判明した。これまでに、例えば、非バイナリ極性コード、混合されたカーネル極性コード、不規則な極性コード、連結された極性コード、畳み込み極性コード、および極性ターボ積コード等の極性コーディングに基づく様々な拡張バージョンも文献において提案されてきた。
【0006】
【数1】
【0007】
【数2】
【0008】
極性コードはPCMではなくGMに基づいているので、LDPCコードとは異なり、エンコーディングおよびデコーディングをともに余分な計算なしに系統的に実行することができる。極性SCLデコーディングの対数線形複雑度は長いコードワードに対するLDPC BPデコーディングの線形複雑度と比べると大きな不利点であるが、デコーディングレイテンシを減らすためにより短いブロックサイズが好ましい場合には有利であることが分かっている。短いブロック長では典型的なLDPCデコーディングよりも極性デコーディングが効率的であることが実証された。これにより、レイテンシが重要となるシステムのための有力な候補として極性コードが推進されてきた。
【0009】
しかしながら、極性SCLデコーディングは、レイテンシがより長くなってしまうという逐次デコーディングアルゴリズムの性質のために、並列実装にあまり適していない。並列化可能なBPデコーディングが極性デコーディングのために使用可能であるにもかかわらず、4という本質的に短い周長のためにBPデコーディングが極性コードに対して十分に機能しないという問題が長年にわたって存在してきた。非バイナリ極性コードおよび極性積コードは限定的な並列性を部分的に提供することができるが、エンコーディングおよびデコーディングに関する計算複雑度が規則的なバイナリ極性コードと比べて著しく高くなる。
【課題を解決するための手段】
【0010】
本発明のいくつかの実施形態は、データ通信およびデータ格納には、連続して確実に送信するための誤り制御技術が必要であるという認識に基づいている。順方向誤り訂正として、逐次除去デコーディングを用いることによってチャネル容量を達成するために極性コーディングが実証された。しかしながら、逐次除去デコーディングは、その性能が不良であり完了までのレイテンシが長いという欠点を有する。極性コードの因子グラフは多くの短いサイクルを有するので、並列化可能な信念伝搬デコーディングも適切に機能しない。本発明の方法およびシステムは、計算複雑度およびレイテンシを高めることなく高いコーディング利得および高いスループットを達成するために高度に並列化可能なデコーディングが実現されるように、極性コーディングファミリのためのプロトグラフリフティング拡張を導入することによって、上述の問題を解決するための方法を提供する。本発明は、凍結ビット割当ておよびプロトグラフ置換の山登り最適化により短いサイクルを排除することによって反復的なメッセージ受渡しが適切に機能することを可能にする。いくつかの実施形態は、準巡回(QC)置換を用いて、ハードウェア実装に適した高度に並列化可能な構造を実現する。また、別の実施形態は、プロトグラフにおけるプロト分極単位の不規則なプルーニングを用いて複雑度、レイテンシおよび短いサイクルの数をさらに低減させる。これにより、プロトグラフリフティングなしに、浅い分極段階の性能を従来の深い分極段階よりも優れたものにすることができる。いくつかの実施形態は、任意の線形コードの生成行列を多段階分解でさらに一般化して、極性型低密度生成行列(low-density generator matrix:LDGM)コードファミリを構築する。いくつかの実施形態は、階段状に空間結合する、低レイテンシのウィンドウ化されたスケジューリングを可能にする。
【0011】
本開示は、プロトグラフ設計に基づいた新しい極性コーディングを提供するものであり、完全に並列な短い極性コードが中間分極段階において計算なしの置換メッセージ交換と結合されることで、高いコーディング利得、低い計算複雑度、低デコーディングレイテンシ、および高スループット処理が同時に実現される。本発明の方法およびシステムは、いくつかの実施形態ではプロト分極単位で巡回置換を有し擬似巡回(QC)極性コードと呼ばれるプロトグラフベースの極性コードの新規なファミリを提供する。巡回シフト値が適切であれば、QC極性コードはコードグラフ内の短いサイクルを排除することができ、これにより、BPデコーディングが従来の極性コードに対して十分に機能しないという長年にわたる問題の解決に向けて顕著な飛躍的進歩が達成される。QC極性コードでは、高度に並列な短い極性コードが結合されることにより、より短い極性コードの場合と同程度に低い計算複雑度を維持しながら、より長い極性コードに匹敵する性能を達成する。
【0012】
本開示は、LDPCコードまたは累積反復累積(ARA)コードを設計するためのPCMのリフティング演算に基づいた従来のいずれのプロトグラフコードとも異なっている。本発明の方法およびシステムは、LDPCコードとは異なり、低密度生成行列(LDGM)を設計するためのGMのリフティング演算に向けてプロトグラフの概念を一般化する。コードはGMに基づいているので、従来のプロトグラフLDPCコードとは異なり、エンコーディングは困難ではない。加えて、本発明は、分極演算のGMをリフティングすることによって多段階構造を提供し、これにより、プロト分極の新しい概念を実現して、チャネル容量にアプローチするための分極現象を達成する。プロトグラフLDGMコードのいくつかの実施形態の場合、プロトグラフベースの極性コードを実現することにより、極性コーディングに固有の構造化されたエンコーディングおよびデコーディングの利点が達成される。具体的には、従来の極性コードで用いられている分極単位を、プロト変数ノードおよびプロトチェックノードからなるプロト分極単位に置換えて、リフティング演算により複数ビットを同時に処理する。いくつかの実施形態は、プロトグラフの特別な事例として、プロト分極単位における巡回置換を用いて、リフティング演算によって複製された高度に並列化可能なQC極性コードを用いる。これにより、計算複雑度を高めることなく、但しコード設計における自由度は高めつつ、ハードウェアに配慮した並列的なエンコーディングおよびデコーディングが実現される。
【0013】
QC極性コードは、プロトグラフリフティング係数とともに計算複雑度を著しく低下させることができる。さらに、本発明は、山登り法によって、プロトグラフ極性コードの短いサイクルを排除して周長を増加させることができる。短いサイクルを排除することにより、BPデコーディングがQC極性コードに対して適切に機能することが可能となる。分極段階が浅いQC極性コードによって、より深い分極コードの競合性能を達成することができる。いくつかの実施形態では、プロトグラフ内のループを切断するためにプロト分極単位を不規則にプルーニングすることで、複雑度のさらなる低下および性能の改善が達成される。
【0014】
いくつかの実施形態は、極性コードの計算複雑度およびデコーディングレイテンシが、LDPCコードとは異なり、コードワードビット数の対数線形関数のオーダであるという認識に基づいている。従って、コードワードの長さを短くすることにより、必要な計算複雑度だけでなくデコーディングレイテンシも大幅に減らすことができる。本開示は、巡回メッセージ交換に加えて、複雑度を高めることなく完全に並列に実装される複数の短い極性エンコーダおよびデコーダを用いるための方法およびシステムを提供する。これにより、従来の短い極性コードよりも良好に機能させつつ、より短い極性コードと同等に低い計算複雑度および低デコーディングレイテンシが実現される。
【0015】
いくつかの実施形態は、極性コードが深い分極段階に関するシャノン限界に近い最適なコーディング性能に向けて収束する一方で、複数の極性コードを空間的に結合することによって、コード長がより短い場合のその実用的な誤り訂正性能を改善可能であるという別の認識に基づいている。本発明の方法は、浅い分極によって、複雑度を高めることなくより深い分極が提供するのと同等の性能を達成することを可能にする。いくつかの実施形態は、凍結ビット位置が異なっている不均一な短い極性コードの空間結合によって実現される。例えば、階段状リフティング演算との空間結合により、いくつかの実施形態の場合、コードワード長が無限に長い場合に低レイテンシのウィンドウ化デコーディングが可能となる。
【0016】
いくつかの実施形態の場合、複数の巡回冗長検査(CRC)コードが、空間的に結合されたエンコーダにわたって埋込まれており、このため、各ビットプレーンが増分的な凍結ビットとして独立して決定され得る。本発明の方法は、増分的な凍結ビットを用いることにより、反復的メッセージ受渡しアルゴリズムの収束を加速させる。いくつかの実施形態は、信念メッセージの大きさに基づいた確率的硬判定を用いて硬判定候補のリストを作成して、有効なCRCコードワードとなる可能性を向上させる。高リフティング係数を用いると、いくつかの実施形態では、複合的なCRC冗長性に起因するレート損失が無視出来るほど些細なものになり得る。
【0017】
いくつかの実施形態は、プロトグラフにおいて適切な置換行列を用いることによって極性コードの周長を有意に増加させることができる一方で、従来の極性コードは本質的に周長が4であるという認識に基づいている。従来の極性コードは、周長が短いため、BPデコーディング等の反復デコーディングではうまく機能しない。なぜなら、メッセージ受渡しがしばしばコードグラフの短いサイクルループにトラップされてしまうからである。本発明の方法は、山登り法を用いることでさらに複雑度を高める必要のない置換および巡回シフトを伴うプロトグラフリフティング演算することによって、短いサイクルを排除するための方法を提供する。QC極性コードのBPデコーディングは最先端のSCLデコーディングに匹敵し得る。BPデコーディングにより、高度に並列なデコーディングが実現されて、デコーディング処理のスループットが増大する。
【0018】
いくつかの実施形態は、プロトグラフ極性コードが、同様の態様で従来のQC LDPC設計のために確立された技術を使用できるという認識に基づいている。QC極性コードのための適切な巡回シフト値は、周長を増加させるために貪欲法および山登り法で設計することができる。プロトグラフ極性コードは、因子グラフ全体と比較してコンパクトであるため、コード設計がより効率的になり得る。加えて、本発明は、有限反復BPデコーディングのためにP-EXIT進化を用いることにより、凍結ビット位置および不規則なプルーニングならびにシフト値を設計するための方法およびシステムを提供する。加えて、プロトグラフ極性コードは、リフティング係数を調整することによって2の冪乗を超えてコードワード長の柔軟性を高めるという利点を有する。これらのプロトグラフコード仕様は、信号対ノイズ比等のチャネル統計の事前知識に従って適応的に制御される。
【0019】
いくつかの実施形態は、極性コードの生成行列(GM)が多段階分極演算に分解されるという認識に基づいている。本開示の方法は、線形ブロックコードの任意の生成行列を複数のより単純な段階に分解するための方法を提供する。例えば、ハミングコードおよびBCH(Bose-Chaudhuri-Hocquenghem)コード等の巡回コードを系統的に拡張し、対応する多項式係数で指定される複数の分極段階に分解することができる。分解された多段階演算は、さらに、プロト分極単位として表現されて、高周長を有する一般化されたLDGMプロトグラフを作成する。線形コーディングGMに基づく一般化されたLDGMプロトグラフは、極性コードに類似した複数の分極段階および凍結ビットを有するので、極性型LDGMコードと呼ばれる。LDGMプロトグラフは、同じ多段階プロト分極をリフティング係数で複製し、複製された段階間で分極単位を置換して、小規模なプロトグラフに基づいた大規模な因子グラフを提供する。この複製および置換のプロセスはリフティング演算と称される。プロトグラフLDGMコードは、そのPCMを計算しなくてもエンコーディングおよびデコーディングがそのGMに基づく同じグラフィカル構造を共有するという利点を有する一方で、従来のLDPCプロトグラフは、そのPCMに基づくデコーディングに対してのみ優れたものであり、そのエンコーディングはそのGM対応物を生成するために複雑度を高めることを必要とする。
【0020】
いくつかの実施形態は、メッセージ受渡しをプロトグラフにわたって適応的にスケジューリングすることで、プロトグラフ極性型LDGMコードのためのBPデコーディング反復の必要回数を減らすという認識に基づいている。メッセージ受渡しスケジュールは、貪欲なアニーリング最適化法によりP-EXIT進化に基づいて設計される。有限のリフティング係数を確率論的な相互情報更新として考慮に入れることにより、デコーディングの収束をさらに加速させることができる。一実施形態では、スケジューリング設計は、チャネル出力データを前提として適応的に実行される。さらに別の実施形態は、メッセージ受渡しルールおよび量子化精度に応じて、適応スケジューリングポリシーを選択するために、相互の情報パターンを前提としてルックアップテーブルを用いる。
【0021】
いくつかの実施形態は、通信チャネルのパラメータの変化に対する極性コードの適応性が、パラメータの値に依存するものであるという認識に基づいている。当該パラメータは、例えば、コードワード中のデータビットの数を定義するパラメータと、エンコードされたコードワード中の凍結ビットの位置を指定するデータインデックスセットを定義するパラメータと、エンコードされたコードワード中のパリティビットの数を定義するパラメータと、分極カーネルを定義するパラメータと、分極段階の深さを定義するパラメータと、リフティングサイズを定義するパラメータと、基本生成行列を定義するパラメータと、プロト分極単位における置換を定義するパラメータと、空間結合を定義するパラメータと、非アクティブ化された分極の選択を定義するパラメータと、CRC埋込みを定義するパラメータと、メッセージ受渡しルールを定義するパラメータと、デコーディング反復戦略を定義するパラメータと、インターリーバを定義するパラメータと、硬判定ルールを定義するパラメータとの組合せ等である。
【0022】
これらのパラメータは、本明細書ではプロトグラフ仕様パラメータと称される。プロトグラフ仕様パラメータを用いて設計されたプロトグラフコードは、本明細書ではプロトグラフ極性型LDGMコードと称される。プロトグラフ極性型LDGMコードを用いてソースデータをエンコードするエンコーダは、本明細書ではプロトグラフ極性エンコーダと称される。プロトグラフ極性エンコーダによってエンコードされたノイズのあるコードワードをデコードするデコーダは、本明細書ではプロトグラフ極性デコーダと称される。重みが1である巡回置換行列を用いるプロトグラフ極性エンコーダ(デコーダ)は、本明細書ではQC極性エンコーダ(デコーダ)と称される。
【0023】
例えば、いくつかの実施形態は、極性コードの複製を使用し、そのコードワードの長さは比較的短いので、短いレイテンシおよび低い複雑度でデコーディングを実行することができる。この場合、各デコーディングにより信念メッセージ情報を前後に伝搬させることで潜在的な誤りが訂正される。この反復極性エンコーディングおよびデコーディングアーキテクチャの場合、例えば、様々なコードレート、様々な凍結ビット位置、様々なコードワード長、様々なインタリーブ、および様々な分極カーネルを用いて、短い極性コードを結合することによって誤り訂正性能を向上させる。さらに別の実施形態では、極性エンコーディングアーキテクチャを異なる分極段階間で置換することで、畳み込みエンコーディングおよびウィンドウ化デコーディングを実現して、デコーディングレイテンシを低減させる。テールバイティングは、長い畳み込みプロトグラフ極性型LDGMコードのためにゼロパディングの有無に係わらず用いられる。複雑度を減らし、性能を向上させるために、このプロトグラフ極性型LDGMコードアーキテクチャは、いくつかのプロト分極演算を不規則に非アクティブ化することによってさらに一般化される。いくつかの実施形態では、非アクティブ化プロト分極演算は、様々な非バイナリカーネルおよび高次カーネルならびに多重重み置換を伴うことにより、さらに一般化される。
【0024】
従って、いくつかの実施形態は、通信チャネルを介して送信機から受信機にデータを確実に転送するための方法を開示する。当該方法は、ソースデータを受入れるステップと、当該ソースデータをプロトグラフ極性型LDGMコードでエンコードしてエンコードされたコードワードを生成するステップとを含む。当該プロトグラフ極性型LDGMコードは、コードワード中のデータビットの数を定義するパラメータと、プロト分極段階の深さを定義するパラメータと、エンコードされたコードワード中の凍結ビットの位置を指定するデータインデックスセットを定義するパラメータと、エンコードされたコードワード中のパリティビットの数を定義するパラメータと、プロトグラフリフティングサイズを定義するパラメータと、シフト値で基本生成行列を定義するパラメータと、中間ビットの置換の不規則性を定義するパラメータと、極性コード中の分極カーネルの不規則性を定義するパラメータと、空間結合の不規則性を定義するパラメータと、極性エンコーディングの様々な段階での非アクティブ化されたプロト分極の選択時における不規則性を定義するパラメータと、の組合せを含むパラメータのセットによって指定される。プロトグラフ極性型LDGMエンコーダは、コードのパラメータを用いてソースデータをエンコードする。当該方法はさらに、エンコードされたコードワードを変調するステップと、変調されたメッセージを通信チャネルを介して送信するステップと、ノイズのあるバージョンである変調されたメッセージを受信するステップと、復調されたコードワードをデコードして、メッセージ受渡しによって元のソースデータを確実に取出すステップとを含む。
【0025】
いくつかの実施形態は、通信チャネルを介してデータを確実に送信するための送信機および受信機の対を有するシステムを開示する。送信機は、通信チャネルを介してデータを確実に送信するために上述の方法を実行する。受信機は、メッセージ受渡しによって元のソースデータを確実に取出すために上述の方法を実行する。
【0026】
本発明のいくつかの実施形態に従うと、デジタルデータをエンコードするための、コンピュータにより実現されるエンコーディング方法が提供される。エンコーディング方法は、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを1つ以上のコンピューティングプロセッサに実行させることができ、コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。当該方法は、入力デジタルデータとしてのソースビットストリームにアクセスするステップと、凍結ビット割当てのルールに従ってソースビットストリームと凍結ビットのセットとでデータ配列を初期化するステップと、プロト分極の全ての段階に渡るメッセージ受渡しのルールに従ってデータ配列を伝搬させるステップとを含む。伝搬させるステップは、さらに、(a)当該データ配列をプロト分極段階に、1つの段階から別の段階へと順次供給するステップを含み、当該プロト分極段階は少なくとも1つのプロト分極単位を含み、さらに、(b)当該プロトグラフ置換のルールに従って当該プロト分極単位の各々において当該データ配列を置換するステップと、(c)当該メッセージ受渡しのルールに従って当該プロト分極単位の各々において当該データ配列を修正するステップとを含む。当該コンピュータにより実現されるエンコーディング方法はさらに、当該修正されたデータ配列を指定された順序でコードワードに配置するステップと、当該コードワードを当該入力デジタルデータのエンコードされたデジタルデータとして提供するステップとを含む。
【0027】
エンコーディングのための本方法は、通信チャネルを通じて発生し得る未知のノイズおよび誤りに対するロバスト性を高めることができる。加えて、反復方法によって凍結ビット割当てのルールおよびプロトグラフ置換のルールが決定されると、未知のノイズおよび誤りに対するロバスト性を更に高めることができ、反復方法は、プロトグラフの短いサイクルを排除することによりコード周長を最大化するとともに、凍結ビットの位置を最適化することにより、プロトグラフ外部情報転送において相互情報が最大化されるようにする。このエンコーディング方法は、従来の極性コードが長さ4の固有の短いサイクルを有しているために、BPデコーディング等の並列化可能なデコーディングが使用できなくなるという長年にわたる問題を解決することができる。
【0028】
さらに、本発明の他の実施形態は、ノイズのあるコードワードをデコードするための、コンピュータにより実現されるデコーディング方法を提供する。当該デコーディング方法は、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを1つ以上のコンピューティングプロセッサに実行させることができる。当該コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。当該デコーディング方法はさらに、
ノイズのあるコードワードについての信念メッセージを表わす入力データにアクセスするステップと、
当該プロトグラフにおける各エッジに関連付けられた左向きメッセージおよび右向きメッセージの配列を初期化するステップとを含む。当該プロト分極の第1の段階に供給する当該右向きメッセージは、当該凍結ビット割当てのルールに基づいて固定され、当該プロト分極の最後の段階に供給する当該左向きメッセージは、指定された順序で当該入力データに基づいて固定される。当該デコーディング方法はさらに、少なくとも1つの変数ノードおよび少なくとも1つのチェックノードを含む当該プロト分極の複数の段階にわたるメッセージ受渡しのルールに従って当該左向きメッセージおよび当該右向きメッセージを伝搬させるステップを含む。当該左向きメッセージおよび当該右向きメッセージは反復方法によって更新される。当該反復方法は、(a)メッセージ受渡しのルールに従って変数ノードおよびチェックノードの並列化可能なセットを選択するステップと、(b)当該プロトグラフ置換のルールに従って、当該左向きメッセージおよび当該右向きメッセージのセットを着信メッセージとして当該選択された変数ノードおよびチェックノードに供給するステップと、(c)当該メッセージ受渡しのルールに従って、当該選択された変数ノードおよびチェックノードにおける当該着信メッセージに基づいて発信メッセージのセットを計算するステップと、(d)当該左向きメッセージおよび右向きメッセージのセットを、当該選択された変数ノードおよびチェックノードにおける当該発信メッセージと置き換えるステップと、(e)当該メッセージ受渡しのルールに従って当該ステップ(a)~(d)を指定された回数だけ繰返すステップとを含む。当該デコーディング方法はさらに、当該左向きメッセージのセットを指定された順序で出力メッセージとして選択するステップと、当該出力メッセージをデコードされたデジタルデータとして提供するステップとを含む。
【0029】
従って、当該デコーディング方法は、反復的なメッセージ受渡しを利用して未知のノイズおよび誤りを訂正することによって誤り率を低下させることができる。本発明のこのデコーディング方法は、従来の極性コードが4という短い周長のために並列デコーディングに適用できないために、BPデコーディング等の並列化可能なデコーディングが使用できなくなるという長年にわたる問題を解決することができる。本方法は、短い極性コードを複製して用いるのでデコーディングの複雑度を高めることなくデコーディングスループットを高めることができる。従って、従来の短い極性コードの場合と同程度に低い複雑度で高いエンコーディング利得が達成可能である。加えて、メッセージ受渡しのデコーディングは、高度に並列なデコーディングによりデコーディングの高速化を可能にする。
【0030】
本発明のいくつかの実施形態は、エンコードされたデジタルデータを入力デジタルデータとしてソースビットストリームから生成するように構成されたエンコーダ回路を提供する。エンコーダ回路は、未知のノイズおよび誤りに対するロバスト性を高めることができる。当該エンコーダは、当該ソースビットストリームを受信するように構成されたエンコーダインターフェイスと、コンピュータにより実行可能なエンコーディング方法を格納するように構成された少なくとも1つのメモリバンクと、当該コンピュータにより実行可能なエンコーディング方法のステップを実行することによって、コードワードをエンコードされたデジタルデータとして当該入力デジタルデータから生成するように構成された1つ以上のコンピューティングプロセッサとを含む。当該エンコーディング方法のステップはさらに、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含み、当該コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。当該ステップはさらに、当該凍結ビット割当ての少なくとも1つのルールに従って、当該ソースビットストリームと凍結ビットのセットとでデータ配列を初期化するステップと、当該プロト分極の段階全体にわたる当該メッセージ受渡しの少なくとも1つのルールに従って当該データ配列を伝搬させるステップとを含む。当該伝搬させるステップはさらに、(a)当該データ配列を当該プロト分極の少なくとも2つの段階に、1つの段階から別の段階へと順次供給するステップを含み、当該プロト分極の各段階は少なくとも1つのプロト分極単位を含み、さらに、(b)当該プロトグラフ置換の少なくとも1つのルールに従って当該プロト分極単位の各々において当該データ配列を置換するステップと、(c)当該メッセージ受渡しの少なくとも1つのルールに従って当該プロト分極単位の各々において当該データ配列を修正するステップとを含む。当該エンコーディング方法のステップはさらに、当該修正されたデータ配列を配置することにより、指定された順序に基づいて当該コードワードを当該エンコードされたデジタルデータとして生成するステップを含む。例えば、コンピュータにより実行可能なエンコーディング方法の実行ステップが、プロトグラフ置換のルールに従ったデータ交換によるエンコーディング方法のセットにわたって並列化および直列化されると、エンコーダ回路は、エンコーダのスループットをさらに高めることができる。
【0031】
さらに、本発明のいくつかの実施形態は、ノイズのあるバージョンであるエンコードされたコードワードからデコードされたデジタルデータを生成するように構成されたデコーダ回路を提供する。当該デコーダ回路に従うと、未知のノイズおよび誤りを低減させることができる。当該デコーダ回路は、当該ノイズのあるエンコードされたコードワードを入力データとして受信するように構成されたデコーダインターフェイスと、コンピュータにより実行可能なデコーディング方法を格納するように構成された少なくとも1つのメモリバンクと、当該コンピュータにより実行可能なデコーディング方法のステップを実行することによって、当該デコーダインターフェイスからのエンコードされたコードワードから当該デコードされたデジタルデータを生成するように構成された1つ以上のコンピューティングプロセッサとを含む。当該デコーディング方法のステップは、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含み、当該コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。当該デコーディング方法のステップはさらに、当該プロトグラフ構造における各エッジに関連付けられた左向きメッセージおよび右向きメッセージの配列を初期化するステップを含み、当該プロト分極の第1の段階に供給する当該右向きメッセージは、当該凍結ビット割当ての少なくとも1つのルールに基づいて固定され、当該プロト分極の最後の段階に供給する当該左向きメッセージは、当該エンコードされたコードワードに基づいて指定された順序で固定される。当該デコーディング方法のステップはさらに、少なくとも1つの変数ノードおよび少なくとも1つのチェックノードを含む当該プロト分極の当該少なくとも2つの段階にわたる当該メッセージ受渡しの少なくとも1つのルールに従って当該左向きメッセージおよび当該右向きメッセージを伝搬させるステップを含む。当該左向きメッセージおよび当該右向きメッセージは反復方法によって更新される。当該反復方法は、(a)メッセージ受渡しの少なくとも1つのルールに従って変数ノードおよびチェックノードの並列化可能なセットを選択するステップと、(b)当該プロトグラフ置換の少なくとも1つのルールに従って、当該左向きメッセージおよび当該右向きメッセージのセットを着信メッセージとして当該選択された変数ノードおよびチェックノードに供給するステップと、(c)当該メッセージ受渡しの少なくとも1つのルールに従って、当該選択された変数ノードおよびチェックノードにおける当該着信メッセージに基づいて発信メッセージのセットを計算するステップと、(d)当該左向きのメッセージ左向きメッセージおよび右向きメッセージのセットを、当該選択された変数ノードおよびチェックノードにおける当該発信メッセージのセットと置き換えるステップと、(e)当該メッセージ受渡しの少なくとも1つのルールに従って、当該ステップ(a)~(d)を指定された回数だけ繰返すステップとを含む。当該デコーディング方法のステップはさらに、当該左向きメッセージのセットを指定された順序で選択することにより、出力メッセージをデコードされたデジタルデータとして生成するステップを含む。
【0032】
さらに、本発明の別の実施形態は、通信チャネルを介してデジタルデータを転送するためのシステムを提供する。当該システムは、少なくとも1つのコンピューティングプロセッサと、少なくとも1つのメモリバンクと、送信機とを含む。当該送信機は、転送すべきソースデータを受入れるソースと、当該ソースデータをエンコードするためのエンコーダとを含み、当該エンコーダは、当該コンピュータにより実現されるエンコーディング方法を実行することによって、エンコードされたコードワードを生成する。当該送信機はさらに、エンコードされたコードワードを変調信号に変換するための変調器を含み、当該変調信号は、振幅変調、位相変調、直交振幅変調、位相シフトキーイング、周波数変調、直交周波数分割多重化、空間分割多重化、パルス位置変調、またはこれらの変形例に基づいている。当該送信機はさらに、当該変調信号を当該通信チャネルに送信するためのフロントエンドインターフェイスを含む。当該システムはさらに、有線媒体チャネル、無線媒体チャネル、光ファイバチャネル、真空自由空間チャネル、データ記憶媒体、またはこれらの変形例を含む通信チャネルと、受信機とを含む。当該受信機は、当該通信チャネルから出力信号を受信するためのフロントエンドインターフェイスと、当該チャネルの当該出力信号を復調するための復調器とを含む。当該復調器は、尤度情報を入力信念メッセージとして生成する。当該受信機はさらに、当該入力信念メッセージをデコードするためのデコーダを含み、当該デコーダは、当該コンピュータにより実現されるデコーディング方法を実行することによって、デコードされたコードワードを生成する。当該受信機はさらに、当該デコードされたコードワードを提供するためのシンクと、当該チャネルの知識に応じて、当該エンコーダおよび当該デコーダにおいて用いられるべき極性型低密度生成行列(LDGM)コードのコード仕様を定義するためのコントローラとを含む。当該コード仕様は、プロト分極の少なくとも2つの段階と、当該凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、エンコーディングおよびデコーディングのためのメッセージ受渡しの少なくとも1つのルールとを含む。
【0033】
本発明のシステムに従うと、未知のノイズおよび誤りを低減させることができる。さらに、パイプライン化されたデコーダの各々が、置換相互接続のセットを備えた並列デコーダのセットをさらに含む場合、デコーダのスループットをさらに高めることができる。さらに、パイプライン化されたエンコーダの各々が、置換相互接続のセットを備えた並列エンコーダのセットをさらに含む場合、エンコーダのスループットをさらに高めることができる。従って、開示されるエンコーダおよびデコーダはともに、毎秒テラビットを超えるデータスループットを必要とするデータセンタ相互接続等の高スループットデータを処理することができる。実装の複雑度が短い極性コードの場合と同程度に低く維持されるので、開示されるシステムは、極性型LDGMコード用のエンコーダおよびデコーダを用いて、より低電力のデータ送信を実現することができる。
【0034】
さらに別の実施形態は、デジタルデータを確実に転送するための上述の方法を実行するためにプロセッサによって実行可能なプログラムが具現化された非一時的なコンピュータ可読記憶媒体を開示する。
【発明の効果】
【0035】
本開示の実施形態に従ったプロトグラフ極性コードおよび関連するLDGMコードのエンコーディングのためのシステムおよび方法は、誤り訂正およびデコーディングスループットの性能を向上させることができるとともに、リアルタイムハードウェアプロセッサの計算複雑度、デコーディングレイテンシ、および電力消費を低減させることもできる。
【図面の簡単な説明】
【0036】
図1】いくつかの実施形態に従った、デジタルデータの送信のための通信システムを示す機能図である。
図2】いくつかの実施形態に従った、システムのエンコーダによって採用される例示的なエンコーディングを示す概略図である。
図3】いくつかの実施形態に従った、メッセージ受渡しを処理するための、因子グラフとして表わされる分極単位を示す概略図である。
図4】いくつかの実施形態に従った、システムのデコーダによって採用される例示的なデコーディングを示す概略図である。
図5】いくつかの実施形態に従った、並列エンコーダを結合するために複数の分極単位の複製およびエッジの置換を行なうことにより複数のビットを同時に伝搬させる、プロト分極単位のための例示的なプロトグラフリフティング演算を示す概略図である。
図6A】いくつかの実施形態に従った、コードグラフの周長を増大させるためのプロトグラフ極性コードの短いサイクルと巡回シフト値とを例示的に示す図である。
図6B】いくつかの実施形態に従った、コードグラフの周長を増大させるためのプロトグラフ極性コードの短いサイクルと巡回シフト値とを例示的に示す図である。
図7】いくつかの実施形態に従った、QC極性コードについての置換シフト値を最適化することによってプロトグラフにおける短いサイクルを排除するための周長最大化手順を示すブロック図である。
図8A】実施形態のいくつかに従った、プロトグラフ極性コードのためのデータビットに1つ以上のCRCコードを埋込む例を示す概略図である。
図8B】実施形態のいくつかに従った、プロトグラフ極性コードのためのデータビットに1つ以上のCRCコードを埋込む例を示す概略図である。
図8C】実施形態のいくつかに従った、プロトグラフ極性コードのためのデータビットに1つ以上のCRCコードを埋込む例を示す概略図である。
図8D】実施形態のいくつかに従った、プロトグラフ極性コードのためのデータビットに1つ以上のCRCコードを埋込む例を示す概略図である。
図9】いくつかの実施形態に従った、チャネルを介して送信される埋込まれたCRCコードを用いてコードワードをデコードするための方法を示すブロック図である。
図10A】いくつかの実施形態に従った、不均一なチャネルのためのビットインターリーブされたプロトグラフ極性コーディング済み変調を示す概略図である。
図10B】いくつかの実施形態に従った、不均一なチャネルについてのインターリーバおよびプロトグラフ極性コード構造のためのジョイント最適化手順を示すブロック図である。
図11A】いくつかの実施形態に従った、疎に選択された非アクティブなプロト分極単位を有する例示的な不規則なQC極性コーディング構造を示す図である。
図11B】いくつかの実施形態に従った、短いサイクルを除去するための非アクティブ化プロトポラライザの影響を示す、2段階のQC極性コードのための非アクティブなプロト分極単位を有する例示的な不規則なQC極性コーディング構造を示す図である。
図12】いくつかの実施形態に従った、不規則なQC極性コーディング構造の非アクティブなプロトポラライザを選択するための方法を示すブロック図である。
図13】いくつかの実施形態に従った、複製された極性エンコーダを空間的に結合するための方法を示す例示的な概略図である。
図14】いくつかの実施形態に従った、複製された極性エンコーダを畳み込み結合するための方法を示す例示的な概略図である。
図15A】いくつかの実施形態に従った、ハミングコードから一般化された極性型LDGMコードを構築するための方法を示す例示的な概略図である。
図15B】いくつかの実施形態に従った、ハミングコードから一般化された極性型LDGMコードを構築するための方法を示す例示的な概略図である。
図16A】いくつかの実施形態に従った、高スループットシステムのための並列なエンコーディングおよびデコーディングの一例を示す図である。
図16B】いくつかの実施形態に従った、高スループットシステムのための並列なエンコーディングおよびデコーディングの一例を示す図である。
図17A】いくつかの実施形態に従ってデコーディングを実行するための受信機および/またはいくつかの実施形態に従ってデータメッセージをエンコードするための送信機、の様々な構成要素を実装するのに適したシステムを示すブロック図である。
図17B】本発明のいくつかの実施形態に従った、入力デジタルデータからエンコードされたデジタルデータを生成するためのエンコーダ回路を概略的に示すブロック図である。
図17C】本発明のいくつかの実施形態に従った、エンコードされたデジタルデータをデコードするためのデコーダ回路を概略的に示すブロック図である。
【発明を実施するための形態】
【0037】
[実施形態の説明]
以下、本発明の様々な実施形態について図を参照しながら説明する。図が縮尺通りに描かれておらず、同様の構造または機能の要素が、図全体を通じて同様の参照番号によって表わされていることに留意されたい。図が、本発明の特定の実施形態の説明を容易にすることのみを意図していることにも留意されたい。これらは、本発明の網羅的な説明として、または本発明の範囲に対する限定として意図されたものではない。加えて、本発明の特定の実施形態に関連付けて記載される局面は、必ずしもその実施形態に限定されるものではなく、本発明の他のいずれの実施形態においても実施することができる。
【0038】
デジタル通信の分野では、誤り訂正符号(error correcting code:ECC)を適用した順方向誤り訂正(FEC)は、ノイズのある通信チャネルによってもたらされる不確実性を軽減するために冗長性を追加するためのメッセージをエンコードする技術であり、デコーダによって送信エラーを減らすことを可能にする。一般に、ECCエンコーダは、(ソースメッセージまたはソースビットストリームを表わす)データシンボルのシーケンスを、ノイズのあるチャネルを介して送信される(エンコードされたメッセージまたはコードワードを表わす)コードシンボルのより冗長なシーケンスに変換するためのシステムまたは方法である。ECCデコーダは、訂正すべき未知のランダムな摂動を引起こしたノイズのあるチャネル出力から元のソースデータシンボルの推定値を回復させるためのシステムまたは方法である。
【0039】
【数3】
【0040】
【数4】
【0041】
【数5】
【0042】
【数6】
【0043】
図1は、いくつかの実施形態に従った、チャネル120を介して送信機110から受信機130にデジタルデータを送信するための通信システムを示す。例えば、通信チャネル120は、無線通信のための空気媒体、有線通信のための銅ケーブル、データストレージ転送のためのソリッドステートドライブ、自由空間衛星通信のための真空、および光ファイバ通信のためのファイバケーブルを含むがこれらに限定されない。デジタルデータを送信機から受信機に転送するための通信中に、デジタルデータは、エンコーダ112とデコーダ133との間のチャネルおよびデータ処理経路にわたって発生するAWGN等のノイズによって破損する可能性がある。例えば、ノイズは、熱ノイズ、自然放出増幅器ノイズ、およびインパルス性ショットノイズを含むが、これらに限定されない。送信機110は、信頼できるデータ送信を実現するために、プロトグラフパラメータ140によって指定される順方向誤り訂正(FEC)コードを用いる。受信機は、エンコーダ112によってエンコードされたノイズのあるメッセージから元のデータを復元するために、プロトグラフパラメータによって指定されるデコーダ133を用いる。
【0044】
送信機110において、送信すべきデータは、元のデータを受入れるように構成されたソース111から着信する。ソースは、データを格納するためのメモリ、データを受信するための入力ポート、および/またはデータを生成するためのデバイスを含み得るが、それらに限定されない。例えば、一実施形態では、ソースは、入力音声信号をデジタルデータに変換する音声通信デバイスを含む。ソース111からの入力データはFECエンコーダ112によってエンコードされる。場合によっては、エンコードされたデータはコードワードと称する場合もある。エンコードされたデータは、直交周波数分割多重(frequency-division multiplexing:OFDM)等の線形変換を伴う直交振幅変調(quadrature-amplitude modulation:QAM)および当該線形変換を伴わないQAMを含むがこれに限定されない様々な変調フォーマットを用いる変調器113によって変調される。変調方式は、振幅変調と、位相変調と、周波数変調との組合わせに基づいた他の多くの変形例、例えば、振幅シフトキーイング、位相シフトキーイング、周波数シフトキーイング、空間分割多重化、パルス位置変調、パルス振幅変調などを含む。変調されたデータは、フロントエンド回路114を介してチャネルに送信される。当該フロントエンド回路114は、光通信のための電気光学回路および無線通信のための無線周波数回路を含み得るが、それらに限定されない。フロントエンドはまた、デジタル・アナログ変換器および信号前処理、例えば、帯域通過フィルタ、パルス整形、プリコーディング、パワーローディング、パイロット挿入、および予歪等を含み得る。
【0045】
チャネル120は送信された信号を歪ませる。例えば、チャネルは、AWGN、同一チャネル干渉、ディープフェーディング、インパルス性ノイズ、シンボル間干渉、カー(Kerr)誘起非線形干渉、分極クロストーク、および線形色分散、ならびに残留ハードウェア欠陥、例えば、量子化誤差、クロックジッタ、オーバーフロー、レーザ線幅、およびキャリア位相ノイズ等を増やしてしまう。
【0046】
受信機130は、まず、チャネル出力を、典型的には送信機におけるフロントエンド114に対して相補的であるフロントエンド回路131を介して電気受信信号に変換する。例えば、フロントエンドは、アナログ・デジタル変換器、線形等化、非線形等化、適応フィルタリング、チャネル推定、搬送波位相回復、同期、および分極回復を含むが、それらに限定されない。受信された信号が復調器132において復調されて、ソースデータを復元するためにデコーダ133によって用いられる送信コードワードのビットの初期推定値が生成される。例えば、復調器は、対数尤度比(log-likelihood ratio:LLR)の値を軟入力メッセージとしてデコーダ133に提供する。様々な実施形態では、デコーダ133は、軟入力メッセージを取得して、プロトグラフコード仕様140を前提として軟出力メッセージを生成する。いくつかの実施形態は、通信チャネルのパラメータの変化に対するプロトグラフコードの適応性が、パラメータの値、例えば、コードワード中のデータビットの数を定義するパラメータ、エンコーディングデータ中の凍結ビットの位置を指定するデータインデックスセットを定義するパラメータ、およびエンコードされたコードワード中のパリティビットの数を定義するパラメータ等に依存するという認識に基づいている。従って、プロトグラフコード仕様140は、チャネルの事前知識150に従って適応的に制御される。例えば、信号対ノイズ比(signal-to-noise ratio:SNR)、電力遅延プロファイル、チャネルスペクトル、および非線形統計についてのチャネル知識に基づいて、コードレートおよびコードワード長等のコードパラメータが適応的に選択される。いくつかの実施形態では、デコーダ133は、デコーダの軟入力メッセージおよび軟出力メッセージに基づいてビットのLLRを示す値を生成するための硬判定(hard-decision:HD)デコーダである。デコードされたデータは、データを格納するためのメモリ、データを送信するための出力ポート、および/またはデータを受信するためのデバイスを含むがこれらに限定されないデータシンク134に供給される。例えば、一実施形態では、シンクは、デコードされたデータを音響信号に変換する音声通信デバイスを含む。
【0047】
送信機110および/または受信機130は、メモリに動作可能に接続されたハードウェアプロセッサを用いて実装され得る。送信機110および受信機130の各々は1つ以上のプロセッサを含み得る。例えば、受信機130のメモリは、プロトグラフコーディング、デコーダ133の軟入力および軟出力、中間計算の結果、ならびにエンコーディングおよびデコーディングのパラメータのうちの1つまたはこれらの組合せに関連するいくつかの情報を格納することができる。例えば、デジタルデータは、極性カーネル行列Fのクロネッカー累乗として形成されるエンコーディングGMを用いてエンコードされる。そのために、受信機のメモリは、ノイズのあるコードワードをデコードするためにデコーダのプロセッサによって用いられるエンコーディング行列を格納することができる。エンコーダ112、変調器113、復調器132、およびデコーダ133を含む、送信機110および受信機130内の全ての構成要素は、ハードウェア、1つ以上のハードウェアプロセッサ、コンピュータソフトウェア(プログラムもしくはプログラムモジュール)、またはハードウェアとコンピュータソフトウェアとの組合せによって実装され得る。
極性エンコーディング
【0048】
【数7】
【0049】
コード仕様140によって定義されてエンコーダ112において用いられる同じ構造がデコーダ133のために用いられる。複数のn個の段階221、222、223、224を通じて分極演算220を適用すると、デコーダに供給する軟入力メッセージは、優れたサブチャネルと不良なサブチャネルとに徐々に分極され得る。SCデコーディングを伴う良好なサブチャネルの割合は、長いコードワードにおける任意のチャネルのシャノン限界に向かって漸近的に収束する。これを分極現象と呼ぶ。分極単位220は、上方分岐および下方分岐を有し、そのストライドはしばしば段階ごとに異なっている。例えば、第1の分極段階221は8のストライドを用い、第2の分極段階222は4のストライドを用い、第3の分極段階223は2のストライドを用い、最終段階224は1のストライドを用いる。これは、極性コードのGMが、対角線位置から2の冪乗のストライドで非対角要素を有するn個のスパースなサブ生成行列に分解され得るからである。例えば、2段階分極のGMは以下のとおり表わされる。
【数8】
【0050】
2つの非対角要素を有する第1のサブGMは、2のストライドを有する第1の段階の分極に対応し、最後のサブGMは、1のストライドを有する第2の段階の分極に対応する。各段階は、分極単位のXOR演算に対応するN/2個の非対角要素を有する。従って、この分解されたGM表現は、極性コーディングプロトグラフを構築するための多段階接続ルールの定義を提供する。
【0051】
分極単位220は、図3に示すように、上方分岐と下方分岐との間でXOR演算を用いる。この分極単位220は因子グラフ310によって表わすことができ、因子グラフ310は、上方分岐変数ノード(VN)311と、下方分岐VN313と、上方分岐チェックノード(CN)312と、下方分岐CN314とを有する。上方VNおよび下方CNは次数2であり、すなわち、接続されたエッジの数は2である。それらの次数2の因子ノードについては、計算演算は関与しないため、しばしば無視される。残りのVN313およびCN312は次数3であり、すなわち、接続されたエッジの数は3である。極性コードの利点の1つは、その低数次因子ノードが多くても3の次数であり、その計算複雑度がメッセージ受渡しの場合に最も低くなる点にある。対照的に、典型的な不規則なプロトグラフLDPCコードは高次数因子ノードを用いるため、メッセージ受渡しのためのこのような高次数ノードにおいて計算複雑度が高くなる。
極性デコーディング
【0052】
デコーダ133は、復調器132から入力信念メッセージを受信(アクセス)するとともに、復元されたビットシーケンスをシンク134に送信(提供)する、コンピュータにより実現される方法またはシステムである。極性デコーダ133は、メッセージ受渡し320の特定のルールを用いて、分極単位220の各VNおよびCNにおける軟判定信念メッセージを処理する。例えば、上方CN312は、チェックノードデコーダ(check-node decoder:CND)ルールであるE=CND(A,B)に従って、左向きのLLR値A321および右向きのLLR値B323を取得して、下向きのLLR値E330を計算する。下方VN313は、左向きのLLR値A322および右向きのLLR値B324を取得し、変数ノードデコーダ(variable-node decoder:VND)であるルールE=VND(A,B)に従って上向きのLLR値E329を計算する。次いで、上方分岐C325および下方分岐C326における左向きのLLR値は、CN312およびVN313を通じ、それぞれC=CND(A,E)およびC=VND(A,E)のように、次の分極段階に伝搬される。同様に、必要に応じて、上方分岐D327および下方分岐D328における右向きのLLR値は、CN312およびVN313を通じて、それぞれD=CND(B,E)およびD=VND(B,E)のように、前の分極段階に逆伝搬される。
【0053】
VNDおよびCNDの伝搬ルールは、sum-productアルゴリズム、delta-minアルゴリズム、min-sumアルゴリズム、オフセットmin-sumアルゴリズム、正規化min-sumアルゴリズム、修正min-sumアルゴリズム、減衰min-sum、拡張min-sum、量子化ルックアップテーブル、またはこれらの変形例を含むが、それらに限定されない。例えば、軟判定バイナリデコーディングのためのsum-productアルゴリズムは、以下のように指定されるメッセージ受渡しルールを有する。
VND(A,B)=A+B,
CND(A,B)=2tanh-1(tanh(A/2)tanh(B/2)),
式中、tanh(.)は双曲線正接関数であり、tanh-1(.)はその逆関数である。いくつかの実施形態では、信念メッセージは、LLR値ではなく、0から∞までの範囲にわたる非対数尤度比(likelihood ratio:LR)、または0から1までの範囲にわたる対応するシグモイド確率領域である。別の実施形態では、信念メッセージは、エンコードされたコードワードの直接的なノイズのあるバージョンである軟判定値、または誤ったコードワードを表わすための硬判定値であり得る。いくつかの実施形態では、VNDルールおよびCNDルールは、計算複雑度をセーブするためにルックアップテーブル(look-up table:LUT)によって実装される。いくつかの実施形態では、信念メッセージは、LUTのメモリサイズを節約するために、低精度でさらに量子化される。量子化レベルは、統計に応じて分極単位ごとに調整される。デコーダ133は、メモリに動作可能に接続されるとともにデコーディングステップを実施するように構成されたプロセッサを含み得る。従って、VNDルールおよびCNDルールは、いくつかの実施形態では非バイナリコーディングの場合に関して定義される。
【0054】
図4は、プロトグラフ仕様140によって制御されるデコーダ133の例示的な概略図を示す。図4のデコーダ構造は、エンコーディングおよびデコーディングの両方にn段階分極の同じグラフィック表現が用いられるという意味で、図2のエンコーダ構造と同じである。これは、LDGMコード等のGMベースのコーディングとLDPCコード等のPCMベースのコーディングとの間の大きな違いであり、このため、PCMに加えてGM計算が必要となる。メッセージ受渡しアルゴリズムの場合、各段階における全ての中間メッセージは最初にゼロに初期化されるが、最も右側の段階(すなわち、最後の分極段階)における左向きメッセージ410は、復調器132から与えられる軟入力メッセージ(例えば、チャネルLLR値)に設定され、最も左側の段階(すなわち第1の分極段階)における右向きメッセージ400は、凍結ビット201に応じて(0,+∞,-∞)のいずれかに設定される。具体的には、「0」である凍結ビットについての位置は、+∞という事前信念メッセージを有し、「1」である凍結ビットについての位置は、-∞という事前信念メッセージを有し、それ以外の場合、情報データビットについては事前信念メッセージは0である。信念メッセージがLLRドメインでない場合、初期化がそれに応じて修正され、例えば、ゼロLLR値は1のLRに等しくなる。従って、信念メッセージの初期化が凍結ビット割当てに応じて定義される。次いで、信念メッセージを伝搬させるためのルールのセットがプロト分極単位ごとに相応に定義される。
【0055】
プロトグラフコード仕様140は、どのメッセージがプロトグラフ内の複数のVNおよびCNにわたってどの順序で伝搬されるかを決定するスケジューリングパラメータを提供する。いくつかの実施形態は、第1の段階から第2の段階へ(420)、第2の段階から第3の段階へ(430)等、右向きの信念メッセージを伝搬させるラウンドロビンスケジューリングを用いる。次いで、左向きの信念メッセージは、最後の段階から第2の最後の段階へ(430)、最後から2番目の段階から、最後から3番目の段階へ(431)等、後向きに伝搬される。左から右へ、および右から左へのこの往復メッセージ受渡しは、潜在的な誤りを補正するために交互に複数回反復される。1つの段階内では、全てのメッセージは、並行して同時に、または最上部から最下部まで(440)連続的に、または最下部から最上部まで(450)連続的に、更新することができる。いくつかの実施形態では、メッセージ受渡しは、高度に並列なデコーディングを実現するためにフラッディングスケジューリングとしての段階にかかわらず、全てのVNおよびCNにおいて完全に並列に行なわれる。最終的な軟出力判定は、反復後の第1の段階における左向きメッセージである。硬判定は、左向きメッセージLLR値の記号に基づいている。スケジューリングポリシー、メッセージ受渡しルール、および反復回数は、いくつかの実施形態では、プロトグラフコード仕様140によって適応的に制御される。
【0056】
いくつかの実施形態では、特定のスケジューリングが、SCデコーディングおよびSCLデコーディングを実現するために左端のメッセージを順次取得するために用いられ、右向きのLLRは、常に、左端の信念メッセージに基づく硬判定の利用可能性に応じて、{0,+∞,-∞}のいずれか1つにわたる硬判定メッセージに基づいている。このSC/SCLデコーディングスケジュールは計算複雑度をさらに低下させる一方で、デコーディングレイテンシが全体として増加する。いくつかの実施形態では、瞬時信念メッセージ、例えば、その大きさまたは導関数に応じて、メッセージ受渡しのためのランダムなスケジューリングが用いられるか、または適応的なスケジューリングが用いられる。
【0057】
デコーダ133が、特定のメッセージ受渡しスケジューリングおよび計算のルールとともにエンコーダ112として使用可能であることに留意されたい。具体的には、エンコーディングビットuによって第1の段階で右向きメッセージを初期化すると、第1の段階から最後の段階への右向きメッセージ受渡しによって、取得すべきコードワードxを生成することができる。ここで、メッセージ受渡しルールはプロトチェックノードにおけるXOR演算(または、非バイナリの場合には代数算術演算)に基づいている。従って、いくつかの実施形態は、エンコーディングおよびデコーディングの両方の場合に同じモジュールを共有し、この場合、メッセージ受渡しのルールはコード仕様140によって制御される。
プロトグラフベースの極性コード
【0058】
本開示の方法およびシステムは、LDPCまたは反復累積コードのために元々用いられていた従来の極性コーディングおよび極性デコーディングを、プロトグラフの概念を導入することによってさらに向上させるための方法を提供する。2003年、Thorpeは、最初に、PCM内の1′がQ×Q置換行列に置き換えられ、PCM内の0′がQ×Qゼロ行列に置き換えられるようにプロトグラフから構築されたLDPCコードのクラスとして、プロトグラフコードの概念を導入した。置換サイズQはリフティングサイズ、リフティング係数、またはQCサイズとも呼ばれる。置換行列が巡回である場合、プロトグラフLDPCコードは、周知の準巡回(QC)LDPCコードにまで小さくなる。しかしながら、極性コードおよび関連するLDGMコードを設計するためにプロトグラフを使用した従来技術は存在しない。
【0059】
【数9】
【0060】
従って、図2に示すエンコーダ112および図4に示すデコーダ133は、プロトグラフリフティング係数、すなわち整数値Qを含むプロトグラフベースの極性コードを実現するためにより多くの仕様パラメータを有する。従来の極性コードでは、n段階の分極はN=2コードワードビットを提供する。本発明のプロトグラフ極性コードでは、コードワードビットの総数は、N=2Qとしてリフティング係数Qずつ増やされ(232)、情報ビットの数もQ倍ずつ増やされる(231)。各々のエンコーディングメッセージuおよびエンコードされたメッセージxは、単一のバイナリビットではなく、プロトグラフ極性コードのためのQビットタプルである。また、各分極単位におけるXOR演算は、Qビットを並列に処理するプロト分極単位として拡張される。プロトグラフ極性コードは、より深い分極段階を有する従来の極性コードよりも優れた性能を含むがこれらに限定されない多数の優れた特徴を有するが、計算複雑度は浅い分極の場合と同程度に低い。
【0061】
【数10】

高周長設計
【0062】
優れた性能を達成するために、我々はQC極性コードの置換シフト値を設計するものとする。明らかに劣った選択の1つとして、全てのシフト値がゼロであるため、互いに独立したQ並列の短い極性コードになってしまい、結合の利点が得られないという場合が挙げられる。従来のプロトグラフLDPCコードは高い周長を達成するように設計されることが多い。コードの「周長(girth)」は、コードグラフにおける最短サイクルの長さである。任意の従来のQC LDPCコードの周長の上限が12で定められていることは公知である。Tannerは、12の周長を達成するためにシフト値を最適化するための系統的な方法を提案した。さらに、不規則なQC LDPCコードが12より大きい周長を達成できることが示された。
【0063】
【数11】
【0064】
極性コードの因子グラフは本質的にループ状であり、コードグラフ中に多数の短いサイクルが存在し、このため、BPデコーディングは従来の極性コードに対してうまく機能することができない。それにもかかわらず、シフト値を最適化することにより、我々は、Q>1の場合にQC極性コードについての周長を増加させることができる。
【0065】
【数12】
【0066】
図6Bは、シフト値を有する12個のプロト分極単位を有し以下のようにサイズ3×4の基本行列を形成する3段階のQC極性コードについての短いサイクルの別の例を示す。
【数13】
【0067】
これは、s13→s34→s24→s12→s31→s21のメッセージ経路におけるサイクル6ループ660を含む多くの短いサイクルを含む。同様に、このサイクル6ループは、累積シフト値が以下のようにゼロ以外である場合、排除することができる。
-s13-s34+s24+s12+s31-s21≠0(mod Q)
ここでも、シフト値は、コードグラフのループ内の下向きの経路に対して負である。サイクル4ループおよびサイクル6ループの両方を排除する場合、コード周長は少なくとも8であり得る。実際には、サイクル4を除去することは、優れた性能を達成するのに最も有効である。同様に、より多くの分極段階を伴う、より高いサイクルも排除することができる。リフティング係数が大きい場合、ランダムシフト基本行列であっても、全体的に短いサイクルを有効に除去することができる。プロト分極のプルーニングも短いサイクルのいくつかを除去することができるのに対して、凍結ビット位置が短いサイクルの長さを短縮できることに留意されたい。従って、凍結ビットの割当ておよびシフト値の最適化はともに重要である。
【0068】
本開示の方法およびシステムは、プロトグラフ極性コードにおける短いサイクルを排除する巡回シフト値を見つけるために貪欲・山登り法を用いることにより、QC極性コードについての高周長シフト値を設計するための方法を提供する。図7は、高周長QC極性コードを設計するためのブロック図を示す。最初に、サイズn×2n-1の基本行列S中の置換シフト値が、例えば、Qのリフティング係数に対して0とQ-1との間に均等に分散されたランダム整数によって初期化される(700)。我々は、それぞれ2の段階、3の段階、4の段階および5の段階を伴うサイクル4、サイクル6、サイクル8およびサイクル10を含む短いサイクルループを発見する(701)ためにn段階のプロトグラフ極性コードを探索する。加重スコアが全てのシフト値に対して計算される(702)。スコアは、重み付け制御(703)に基づいてサイクルの長さに依存する。例えば、シフト値がサイクル4のループに関与する場合、スコアは100ポイント増加し、シフト値がサイクル6のループに関与する場合、スコアは10ポイント増加する。上述したように、累積シフト値がゼロ以外である場合、スコアが重み付け点分増加されない限り、当該スコアは増加されない。2回分のサイクル4ループはサイクル8ループと同等であることに留意されたい。各シフト値で全てのスコアを計算した後、スコア間での最大値を目標値と比較する(704)。最大スコアが目標値を下回る場合、最適化の反復が終了して、最適化されたシフト値を有する最適化されたシフト基本行列が生成される(707)。特に規定の限り、最適化反復706が続けられる。目標値は反復回数に応じて制御される(705)。例えば、目標値を徐々に大きくして、短いサイクルを除去するための要件を緩和させる。
【0069】
最大スコアが目標値よりも大きい場合、他のスコアよりも高いスコアを有する複数のシフト値を選択し、それらのシフト値は、0からQ-1まで均等に分配される整数によってランダムに修正される(708)。例えば、1つの最悪なシフト値のみが選択されるか、または修正すべき最悪な10%シフト値が選択される。シフト値の修正後、最適化プロセスが繰返される(706)。
【0070】
上述の山登り手順は、デコーディングのためのメッセージ受渡しアルゴリズムを適切に実行することができるように、プロトグラフ極性コードにおける短いサイクルを排除することができる。例えば、図2に示すようなQ=256のリフティング係数のための4段階のQC極性コードは、山登り法によって最適化された以下のシフト基本行列とともにサイクル6ループおよびサイクル8ループを排除することができる。
【数14】
【0071】
上述の基本行列を有するこの4段階のQC極性コードは、従来の4段階極性コードと比べて2.4dBよりも大きい有意な利得を達成するが、計算複雑度は同じオーダで維持される。
不均一な結合
【0072】
誤り訂正性能をさらに高めるために、いくつかの実施形態は、データビットに埋込まれた巡回冗長検査(CRC)コードを用いる。この変更により、デコーダは無効なコードワードを容易に除外することができる。デコーディング候補のうちの少なくとも1つが有効なCRCを伴うデータシーケンスに対応する場合、有効なCRCを伴う最も可能性の高い候補が推定のために選択され得る。具体的には、軟判定デコーダ出力は、デコーダの第1の段階における左向きLLRメッセージ値の大きさに応じて様々な信用レベルを有する。軟出力判定のいくつかの最悪なLLR値を選択することで、我々は、誤り訂正能力を向上させるためにCRCの妥当性をチェックするための判定を反転させることができる。
【0073】
図8Aおよび図8Bは、プロトグラフエンコーダに供給するデータビットに少なくとも1つのCRCコードを埋込む概略を示す。例えば、図8Aは、デコーディングの正確さを検証するために1つのCRCパリティシーケンスが情報ビットの末端に埋込まれる例を示す。この例では、コードワード800のビットが、実際のメッセージデータを含む単一のデータ部分801に分割され、その後に、データ部分801から計算される(803)単一のCRCコード802が続く。例えば、CビットのCRCパリティチェックシーケンスは、(QK-C)ビットのデータメッセージに付加される。パリティビットCの数は比較的小さく、正味コードレートの損失、すなわち(QK-C)/Q2は限られている。例えば、1ビットパリティはD+1のCRC多項式を用い、2ビットパリティはD+D+1のCRC多項式を用い、3ビットパリティはD+D+D+1のCRC多項式を用い、4ビットパリティはD+D+D+1のCRC多項式を用い、8ビットパリティはD+D+D+D+D+1のCRC多項式を用い、16ビットパリティはD16+D+1のCRC多項式を用いる、等々である。式中、Dは遅延単位を示す。パリティ多項式は、プロトグラフコード仕様140に応じて適応的に修正することができる。
【0074】
図8Bは複数のCRCコードを用いる別の例を示し、第1のCRCは、極性デコーディングの性能を向上させるためにデータビットの中間に埋込まれ、第2のCRCは、データビットの末端に埋込まれる。データビット内に埋込まれたこのような複数のCRCコードは、部分的なデコーディング候補を検証するために用いることができる。このように、CRCは、極性デコーダがデコーディング手順の中間ステップで候補コードワードをプルーニングするのを支援することができる。加えて、複数のCRCコードは、極性デコーディングにおける潜在的な誤り伝搬を防止することができる。データビット810には、データビットを4つの部分に分割した複数のCRCコードが埋込まれている。第1のデータ部分811の後には、第1のデータ部分811から計算された(813)第1のCRC部分812が続く。第2のデータ部分814の後には、第2のデータ部分814から計算された(816)第2のCRC部分815が続く。
【0075】
いくつかの実施形態は、デコーダがビットシーケンスのより多くのセグメントにおいてCRC妥当性をチェックすることができるように、3以上のCRCコードを用いてデータビットを分割する。しかしながら、より多くのCRCコードを用いると、冗長パリティビットが増加し、コードワード長が短いときに正味コードレートが低下する可能性がある。これは従来の極性コードにとって重大な問題であった。本発明の方法およびシステムは、高いリフティング係数Qを用いることによって、複数のCRCコードに起因するレート損失が著しく低減されるという認識に基づいている。この実施形態はまた、複製されたQ並列エンコーダにわたってCRCを検証する際に、第1の分極段階における各プロト分極単位が右向きメッセージ受渡しに対する硬判定を取消すことができるという非自明な利点を提供する。
【0076】
【数15】
【0077】
より高い自由度を得るために、いくつかの実施形態は、部分的なCRCコードを用いた不均一な結合演算を用いる。図8Dは不均一な結合の例示的な実施形態を示す。実施形態では、極性エンコーダのQ回分の複製では、非同一の凍結ビット位置およびコードレートを用いる。例えば、第1のQの短い極性エンコーダ843は、サイズK×Qの第1の情報配列に対してR=K/2というより低いコードレートを用い、中間のQの短い極性エンコーダ844は、サイズK×Qの第2のデータ配列に対してR=K/2という中程度のコードレートを用い、最後のQの短い極性エンコーダ845は、サイズK×Qの最後のデータ配列に対してR=K/2というより高いコードレートを用いる。凍結ビット部分はここでは階段状である(842)。Q=Q+Q+Qのエンコーダにわたる行846は個々のCRCコードでエンコードされる(847)。いくつかの実施形態では、CRCパリティビット長は非同一であり得るとともに、いくつかの行にはCRCコードが埋込まれない。例えば、10%の列は16ビットCRCコードを用い、20%の行は8ビットCRCコードを用いるが、残りの行はCRCコードをいずれも用いない。この不均一な結合を用いる場合、uビットプレーン毎の信頼性は軟凍結ビットとしてさらにより調整することができる。信念メッセージは、より低レートのエンコーダからより高レートのエンコーダに伝搬させることができる。いくつかの実施形態は、より低レートのエンコーダ部分からより高レートのエンコーダ部分へのウィンドウ化デコーディング等の特定のスケジューリングを用いる。このウィンドウ化デコーディングは、デコーディングレイテンシをさらに改善することができる。いくつかの実施形態の場合、CRCコードに加えて、他の誤り訂正コードにはプロトグラフ極性コードが埋込まれる。例えば、このような実施形態では、誤りフロアを除去するために高レートBCHコードが埋込まれる。
【0078】
図9は、いくつかの実施形態に従った、複数のCRCコードが埋込まれた場合に結合が均一または不均一になるプロトグラフ極性デコーディングのブロック図を示す。プロトグラフ極性デコーダは、軟入力メッセージ902を取得して潜在的な誤りを補正する。プロトグラフ極性デコーダは、Qの並列な短い極性デコーダ902を用い、全ての信念メッセージは凍結ビット位置に従って初期化される。複数の段階およびデコーダにわたるメッセージ受渡しを1回分更新した後、硬判定演算903が、第1の分極段階において右向きメッセージに対して行なわれる。硬判定は、信念メッセージの記号を用いて、「0」または「1」を決定する。いくつかの実施形態では、硬判定は、信念メッセージの大きさに応じて確率的に適用される。例えば、uについてのi番目のデータの推定値は、以下のように確率的に決定される。
【数16】
【0079】
この確率的な硬判定により、データビット推定値に関する複数の硬判定候補903のリストを生成することができる。いくつかの実施形態では、大きさが小さいLLRを有するいくつかの低信頼性ビットに関する単純なビット反転を用いて、硬判定リストを生成する。リスト中の全ての候補は、各CRCコードセグメントにおいて検証される(904)。全てのCRCチェックが妥当性について合格する場合、反復デコーディングが終了し(905)、軟出力および硬判定の結果が生成される(906)。そうでない限り、予め定義された最大カウントになるまでデコーディング反復が継続される(908)。いくつかの実施形態は増分的な凍結ビットを用いる(907)。この場合、CRC検証に合格したいくつかの部分硬判定データ(または、閾値を上回った信頼性の高い信念メッセージ)は、次回のメッセージ受渡し反復を更新するために追加の凍結ビットとして固定される(902)。これらの増分的な凍結ビットは、デコーディングの収束を加速させることができる。これは、部分データがセグメント的に凍結可能であるので、プロトグラフ極性コードのために複数のCRCコードを用いる場合に特に有効である。
凍結ビット設計
【0080】
いくつかの実施形態は、従来の極性コーディング構造が、通信チャネルおよび変調方式が送信されるコードワードビットごとに均一な送信信頼性を提供する状況を想定しているという認識に基づいている。しかしながら、高次変調、周波数選択型フェージングチャネル、時変チャネル、および複数のアンテナを備える多入力多出力(multiple-input multiple-output:MIMO)チャネル等のいくつかの実用的なシステムは、結果として、送信ビットにわたって不均一な信頼性をもたらす。いくつかの実施形態は、極性コーディング性能がチャネル統計に従って凍結ビット位置に大きく依存するという別の認識に基づいている。本発明は、プロトグラフベースの外部情報転送(P-EXIT)分析を用いることによって、このような状況においてプロトグラフ極性コードについての凍結ビット位置を最適化するための方法を開示する。
【0081】
いくつかの実施形態では、送信機110および/または受信機130は、通信チャネル120のパラメータを決定するように構成されたチャネル推定器を含む。例えば、通信チャネルのパラメータは、エンコードされたコードワードのビットの送信のための不均一な信頼性の値、ならびに/またはSNRおよび電力遅延プロファイル等のチャネルの他の統計値を含む。通信チャネルのパラメータは、パイロットおよびトレーニングシンボルに基づく最小二乗チャネル推定またはブラインドのパワー推定等の様々な方法を用いて決定され得る。プロトグラフコード仕様140は、通信チャネルのパラメータの様々な値に対するコードパラメータの様々な値間でのマッピングを格納するためのメモリを含む。このように、本実施形態は、チャネル推定器により決定された通信チャネルのパラメータに基づいて、プロトグラフ極性コードのコードパラメータの値の組合わせを選択することができる。
【0082】
プロトグラフデコーディングを容易にするために、デコーディング中に尤度の統計に対処することによって分極効果がブーストされ得るように凍結ビット位置が改良される。凍結ビット位置設計は、高次変調および周波数選択型フェージングチャネルにとって特に重要であり、コーディングされた様々なビットが様々なノイズ強度で破損してしまい、ビット信頼性が不均一になってしまう。この実施形態は、凍結ビット位置を選択するための尤度の統計の知識を利用して、軟判定デコーディングの性能を向上させる。加えて、どの変調ビットに対して当該コーディングされたビットをどのようにマッピングするかは、このような不均一な信頼性のために重要である。なぜなら、様々なマッピングにより分極効果が低下する可能性があるからである。従って、凍結ビット位置設計に加えて、コーディングされたビットを変調ビットにマッピングするための慎重なインターリーブ設計が必要となる。本発明の方法は、このような高次変調およびフェージングチャネルのための凍結ビット位置およびインターリービングを共同で設計するための方法を提供する。
【0083】
図10Aは、インターリービングとともに送信機の例示的な概略図を示す。この場合、プロトグラフ極性コーディング112はコーディングされたビット(x,…,x)を生成し、これらビットは、QAM変調器、MIMOアンテナ多重化、またはOFDM変調器1010において、最下位ビット(least-significant bit:LSB)プレーンから最上位ビット(most-significant bit:MSB)プレーンにわたって、インターリーバ1020によって様々な変調ビットにマッピングされる。LSBからMSBは様々なビット信頼性を有する。ビット有意性に加えて、各々の変調されたシンボル(t,…,tN′)は、例えば、周波数選択型フェージングチャネルおよびマルチアンテナ送信に起因して、様々なチャネルノイズレベルを有し得る。本発明の方法は、高いデコーディング性能が実現されるように、重要なコーディング済みビットを信頼できる変調ビットに慎重にマッピングする。
【0084】
図10Bは、不均一なチャネルに対してインターリーバおよび凍結ビット位置を共同で最適化する手順を示す。この方法は、インターリーバによって実行される置換が、起こり得る全ての置換を考慮することなく、扱い易くなるように最適化され得るパラメータのセットによって決定されるインターリーバ方式を採用する。例えば、インターリービングの1つの実現例は、2次多項式置換(quadratic polynomial permutation:QPP)インターリーバを含みコーディングされたビットインデックスi(0ベース)を以下のように変調ビットインデックスに並べ替える多項式置換に基づいている。
【数17】

式中、(f,f,f)は、インターリービングのために設計すべき多項式係数である。QPPインターリービングの前後において、プロトグラフ極性コーディング用のインターリービングを設計するためにより高い自由度が可能となるように、短い辞書編集式置換テーブルを用いることができる。
【0085】
まず、インターリーバが初期置換に設定される(1001)。次いで、最も信頼性の高い擬似チャネルに対応するデータインデックスセットを選択することによって、この初期インターリーバ置換のために極性コード構造が最適化される(1002)。次に、極性コード構造およびインターリーバの誤り訂正性能が評価される(1003)。この評価は、シミュレーションにより経験的に、および/またはデータインデックスセットによって選択される擬似チャネルの信頼性から計算可能な誤り限界により分析的に、実行され得る。例えば、分極演算ごとに、尤度の統計は、Bhattacharyyaパラメータ、密度進化、ガウス近似、または外部情報伝達(EXIT)法によって追跡することができる。プロトグラフ極性コードについての非均一な信頼性を捕捉するために、いくつかの実施形態の方法は、従来とは異なるトレースにてP-EXITと呼ばれる拡張バージョンのEXITを用いる。
【0086】
【数18】
【0087】
指定されたスケジューリングに従って有限反復デコーディング後の相互情報を計算すると、i番目の入力ビットにおける誤り率は、
【数19】

によって得られる。式中、erfc(x)は相補的な誤り関数である。各分極段階における相互情報計算は、量子化された軟判定デコーディングのための非同一のLUTを考慮すべきものであることに留意されたい。具体的には、上述のJ関数は、連続ガウス関数から離散入力および離散出力関数に修正され、その相互情報は、対応する遷移行列によって容易に計算することができる。加えて、P-EXIT進化方程式は、min-sumアルゴリズム等の様々なデコーディング方法、さらにはラウンドロビンスケジューリング等の様々なスケジューリングのために修正される。凍結ビット位置は、例えば、従来のリード・ミュラー(Reed-Muller)コード、Bhattacharyyaパラメータまたはベータ拡張によって初期化される。次いで、アニーリング方法が適用され、ここで、分析誤り率が下げられるかどうかを調べるために凍結ビット位置が摂動される。
【0088】
プロト変数ノードおよびプロトチェックノード内の分散が反比例的に減少し得るので、リフティング係数Qを増加させるとP-EXIT分析がより正確になることに留意されたい。具体的には、外部情報の分散は以下のようにモデル化される。
【数20】
【0089】
次に、誤り訂正性能が収束した(すなわち、以前の反復に対して有意に変化しない)かどうか、または反復の総数の限度に達したかどうかに基づいて、反復最適化手順を継続するかまたは終了するかの判断がなされる(1004)。継続する場合、極性コードデータセットインデックスを固定したままでインターリーバ置換が最適化され(1005)、次いで、インターリーバを固定したままでデータセットインデックスが再び最適化され(1002)、次いで、プロトグラフ極性コーディングおよびインターリーバの性能が再評価され(1003)、反復最適化を継続または終了するかの判断が再びなされる(1004)。これらの反復を終了した後、最終結果は、共同で最適化されたインターリーバおよび極性コード構造となる(1006)。凍結ビット位置およびインターリービングのこの共同最適化により、特に無線フェージングチャネルに関して強化された分極効果が提供される。
不規則なプルーニング
【0090】
従来技術では、従来の極性コードは、分極単位の不規則なプルーニングを導入することによって向上させることができ、これにより、ハミング重み分布の改善に起因して、エンコーディング/デコーディングの複雑度、デコーディングレイテンシ、さらには誤り率さえも低減できることが明らかにされた。本発明の方法およびシステムは、分極単位を非アクティブ化することによってプロトグラフ極性コードをさらに改善させる。これにより、プロトグラフ極性コードに関して別の利点が提供される。具体的には、プロト分極単位のプルーニングにより短いサイクルの除去を支援することができる。
【0091】
図11Aは、いくつかのプロト分極単位が非アクティブ化される(1110)不規則なプロトグラフ極性コーディング構造の例を示す。非アクティブなプロト分極単位を慎重に選択することにより、誤り訂正性能を向上させることができ、エンコーディングおよびデコーディングのための計算複雑度を低下させることができる。加えて、非アクティブ化されたプロト分極単位のいくつかのセットは部分的に並列なデコーディングを可能にして、デコーディングのレイテンシを低下させる。非アクティブなプロト分極単位の位置は、誤り限界が貪欲方式で最小化されるように、P-EXIT法で当該誤り限界を分析することによって決定される。ほとんどのプロト分極はデコーディング性能を劇的に劣化させることはないので、この不規則な非アクティブ化は、より非アクティブなプロト分極単位を選択することによってデコーディング複雑度を有意に低下させることができる。
【0092】
実際には、プロトグラフ極性コードのためにプロト分極単位を非アクティブ化することにより、メッセージ受渡し能力を向上させるためにいくつかの短いサイクルを除去するという別の利点が得られる。図11Bは、プロト分極単位を非アクティブ化することによって提供される利点を示すために、2段階分極についての不規則なQC極性コーディング構造の例を示す。規則的なプロトグラフ極性コーディングは2つのプロト分極段階を有し、各段階は2つのプロト分極単位を有する。図6Aに示すように、このようなプロトグラフは、s11→s22→s12→s21のプロトチェックノードを通るサイクル4ループ1124を有する。この不規則なQC極性コーディングは、第2の段階において第1のプロトポラライザ単位を非アクティブ化する(1123)。この非アクティブなプロト分極は、シフト値にかかわらずサイクル4ループ1124を切断することができる。この不規則なQC極性コードは、複雑度を25%低下させながらも、規則的な極性コードに対して0.9dBの利得を有する。この例は、プロトポラライザ単位を非アクティブ化することにより、計算複雑度だけでなく短いサイクルの数も低減できることを示唆している。いくつかのグラフエッジにおける無限の信用度によりサイクルの長さを除去することができるので、短いサイクルが凍結ビット位置にも依存し、従って、凍結ビット位置を最適化することが周長の最適化と同様に重要であることに留意されたい。
【0093】
【数21】
【0094】
図12は、いくつかの実施形態に従った、不規則なQC極性コーディング構造の非アクティブなポストポラライザを選択するための方法のブロック図を示す。この方法は、スケルトン基本行列と呼ばれるアクティブ化行列を「+」(1202)に初期化して(1201)、アクティブなポスト分極単位を示す。次に、当該方法は、前のアクティブ化行列を非アクティブ化し(1203)、すなわち、「+」の要素を「-」に変更して非アクティブ化を示す。非アクティブ化は全ての起こり得るN′の位置1204について考慮される。次に、誤り率確率が不規則なQC極性コーディングごとに計算される。ここで、インターリーバおよび凍結ビット位置は、P-EXIT進化による誤り率性能の分析中に、図11Bに記載したのと同様に最適化される。当該方法は、最小の誤り確率を有する最良のL′の不規則なQC極性コーディングを選択する(1206)。本方法はさらに、選択された不規則なQC極性コーディングごとに、様々なプロトポラライザ単位(1207)を非アクティブ化する(1203)。終了条件が満たされるまでこの手順は続く(1208)。終了条件は、例えば、誤り率性能が最小化される場合、または、誤り率性能が規則的なQC極性コーディングの場合よりも悪化する場合を含む。リストツリー検索が終了した後、アクティブ化テーブル、インターリーバ、および凍結ビット位置が最適化された不規則なQC極性コーディングが生成される(1209)。アクティブなプロト分極は、スケルトン基本行列において「+」として示され、これらのアクティブなシフト値は、スケルトン基本行列および凍結ビット位置が設計された後に、図7に記載するのと同様に周長を増大させるように最適化されることに留意されたい。従って、多段階のプロト分極単位を接続または切断するためのルールのセットが、最適化されたスケルトン基本行列で定義される。
【0095】
例えば、Q=1024を有する6段階のQC極性コードの場合、図12に記載の最適化方法を用いて、数十パーセンテージのプロト分極単位をプルーニングすることにより、規則的な複製物よりも誤り訂正性能を改善させることができる。加えて、不規則なQC極性コードは、分極単位の60%超をプルーニングする場合であっても、従来の極性コードよりも優れたものになり得る。その結果、不規則なQC極性コードは、潜在的な性能改善に伴ってデコーディングの複雑度をさらに低下させることができる。
拡張されたカーネルおよび置換
【0096】
【数22】

ガロア体演算
【0097】
【数23】


等の、高次数カーネルの不規則な組合せを用いる。高次数および非バイナリのカーネルは、いくつかの実施形態の場合も同様に組合わせることができる。図5で説明したプロトグラフリフティング演算は、高次数および非バイナリのカーネルに容易に適用可能であることに留意されたい。従って、エンコーディングおよびデコーディングについてのメッセージ受渡しのルールはカーネルに応じて定義される。
【0098】
いくつかの実施形態の場合、プロトグラフ極性コードは、リフティング演算において置換行列Pijに対して非巡回行列を用いる。いくつかの実施形態は、巡回行列I(s)が唯一の重み1の置換行列ではないという認識に基づいている。例えば、別の重み1の置換行列は、以下のように水平軸に沿って巡回行列を反転させる逆巡回行列である。
【数24】
【0099】
いくつかの実施形態では、重み1の置換は、様々なパラメータでQPPインターリーバ等の多項式置換によって実現される。ランダムな置換でさえも、いくつかの実施形態ではランダムな重み1の置換として用いられる。他の例の場合、いくつかの実施形態では、
【数25】

等の重み2および重み3の置換行列が用いられる。ここで、置換重みは、1列ごとに非ゼロ要素の平均数によって決定される。従って、いくつかの実施形態では、ランダムな重み2またはランダムな重み3の置換が用いられる。いくつかのより高い重みの置換は、より低い重みの置換の組合せによっても実現され得る。より高い重みの置換は、エンコーディングおよびデコーディングのための計算複雑度を高める可能性があるものの、QC極性コードを向上させ得る。置換は、いくつかの実施形態では非バイナリ算術のためにさらに拡張される。従って、プロトグラフ置換のルールがコード仕様に応じて定義される。
空間結合
【0100】
いくつかの実施形態はさらに、コード長、コードレートおよび凍結ビット位置等の様々なパラメータを用いて従来とは異なる方法で複数の極性コードを空間的に結合することによって軟判定デコーディングを容易にするように設計空間における自由度を高める。いくつかの実施形態は、複製されたエンコーダを部分的に畳み込み方式で結合するためにリフティング演算を用いる。
【0101】
図13は空間結合の例示的な概略図を示す。ここで、2段階の極性エンコーダ1300は、通常のリフティングのようにQ回分複製される(1301)が、置換はエンコーダのサブセットにわたって部分的に適用される。例えば、第1の分極段階は最初の2つのエンコーダのために結合され(1302)、最後のエンコーダは置換されないままである(1303)。第2の分極段階の場合、(全てのQではなく)最後の2つのエンコーダが結合される(1304)。このようにして、空間的に結合された極性エンコーダを実現することができる。
【0102】
図14は、畳み込みリフティング演算を用いる空間結合の別の例示的な概略図を示す。2段階の極性エンコーダ1400が複製される(1401)。この実施形態は、複製された極性エンコーダを階段状に整列させる。第1のエンコーダにおける第2の分極段階は、第2のエンコーダにおける第1の分極段階と結合される(1402)。同様にして、第2のエンコーダにおける第2の分極段階は、第3のエンコーダにおける第1の分極段階と結合される(1403)。このようにして、エンコーディングおよびデコーディングを畳み込み的に行なうことができる。具体的には、第1のエンコーダにおけるエンコードされたコードワード(1404)は第1のエンコーディングビットおよび第2のエンコーディングビットに依存するが、他のエンコーダからは独立している。このウィンドウ化されたメモリ特徴はウィンドウ化されたエンコーディングおよびデコーディングを可能にする。次いで、コードワード全体を受信するのを待つことなく、エンコーディングおよびデコーディングが実行可能である間に無限に多数のエンコーダを畳み込み結合することができるので、デコーディングレイテンシを低下させることができる。空間的に結合されたプロトグラフ極性コーディングの他の実施形態の例は、編組構造、三次元畳み込み、テールバイティングおよびトーラス型テールバイティングを含むがこれらに限定されない。具体的には、テールバイティングは、入力データの巡回パディングを用いて、シーケンスの終わりをシーケンスの先頭に複製するので、最初の畳み込みにおいてメモリ効果を気にすることなく空間結合がエンコード可能となる。
【0103】
一実施形態では、プロトグラフベースの極性コーディング構造が構築され、並列な極性コードがシフト演算によって異なる位置のポラライザ間で混合される。別の実施形態は、レートレス(rateless)機能を提供するために増大し続ける階段階構造を用いる。ここで、受信機がデコーディング完了を承認するまで、複製された極性コードによってパリティビットのみが連続的に生成される。従って、不規則なプロトグラフ極性コーディング構造および様々なコーディングパラメータを伴うさまざまなコンポーネント極性コードの適用により、結合されたコードのコードワード全体にわたってさまざまな自由度(および、これにより、様々な程度の誤り訂正性能)がもたらされる。この全体的なコードワードは、通信チャネルを介する送信のために直列化され、この直列化は、場合によっては誤り訂正性能利得を得るために、不均一なチャネルを介する送信前の置換によって置換され得る。
プロトグラフ極性型LDGMコード
【0104】
本発明の方法およびシステムは、基本コードの生成行列をリフティングするためにプロトグラフの概念を導入することによって、他の様々な線形コードを改善するための方法を提供する。本発明のいくつかの実施形態は、我々が極性型LDGMコードと呼ぶ一般化されたLDGMコードを実現するために、GMベースの線形コードのためのプロトグラフベースの設計方法の適用をさらに拡張する。
【0105】
例えば、いくつかの実施形態は、データビットをエンコードするために生成多項式を用いる従来のサイクルコードを改善させる。周知のハミングコードおよびBCHコードは、このような巡回コードのファミリである。具体的には、ハミングコードは、1+D+Dの生成多項式を用いる。K=4情報ビットおよびN=7コードワードビットについてのハミングコード(系統的)のGMは、以下のようにK×Nの行列サイズGで表わされる。
【数26】
【0106】
いくつかの実施形態では、同様のプロトグラフリフティング演算が置換行列を伴う上述の基本コードのGMに適用されて、以下のようにコードワードをQ倍に増加させる。
【数27】
【0107】
このQ倍のリフティングは、任意の線形コードのためにGMの密度を低下させることができ、これらは一般化LDGMコードと呼ばれる。置換行列が巡回である場合、これらはQC LDGMコードとも呼ばれる。図15Aは、上述の系統的なハミングコードのプロトグラフに基づく例示的なQC LDGMコードを示し、単位行列、すなわちPii=I(0)となるように対角置換が選択される。非対角置換は以下のように3段階の分極単位に分解される。
【数28】
【0108】
上位の3ビットプレーンは「0」1551に凍結され、下位の4ビットプレーンは情報ビット1552に割当てられる。なお、この図では、便宜上、uからuまでの逆順のビットプレーンを用いている。データ配列uのサイズは、1よりも大きいリフティング係数QでN×Qに増加される。第1の分極段階1553は基本生成行列Gの最後の行に対応する。第2の段階1554および第3の段階1555を通過した後、エンコードされた配列1556が生成される。各々のプロト分極単位は、巡回シフト値Sijとともに置換ルールを用いる(1557)。このプロトグラフはサイクル2を有するが、シフト値最適化によって排除することができる。また、図15Aのプロトグラフは、異なる順序の分極段階を構築することができるので、基本生成行列から固有ではないことに留意されたい。従って、コードを指定するために、プロトグラフを構築するための接続ルールが用いられる。
【0109】
いくつかの実施形態の場合、プロトグラフLDGMコードは、多段階分極で十分に構造化される。従来のハミングコードのGMは、非系統的な場合についても以下のように表わされることが公知である。
【数29】
【0110】
このGMは、以下のようにu=(u,u,u,u,0,0,0)をエンコードするための極性コードのような3つのゼロ凍結ビットを導入することによって、N×N行列にさらに拡張することができる。
【数30】

式中、生成多項式1+D+Dの係数[1,1,0,1]は、行ごとに巡回的にシフトされる。いずれの巡回コードのGMも同様に拡張させることができる。本発明の方法は、GMを複数の分極段階に分解することによって、GMを極性型構造で表わすための方法を提供する。具体的には、拡張されたGMは、以下のように巡回行列から構成される複数のサブGMにさらに分解される。
ex=I(0)+I(1)+I(3)
式中、I(s)は適切なサイズ(N×N)の巡回行列である。従って、このGM分解手順は、極性型プロトグラフを構築するための多段階接続ルールを提供する。図15Bは、ハミングコードに基づくこのような極性型LDGM構造の例示的な概略図を示す。K=4のデータビット1501および3の凍結ビット1502は、入力メッセージu=(u,…,u)として極性型LDGMエンコーダに供給される。ここで、凍結ビットは全てゼロである。入力メッセージは、まず、サイズ2Nの2倍のビットプレーンを有するように複製される(1503)。エンコーダは、生成多項式に応じて、多段階分極を用いる。第1の段階1504は一次単項式係数に従って用いられる(1505)。二次単項式係数が「0」である(1507)ので、次の分極段階はスキップされる(1506)。3次単項式係数のために(1509)別の分極段階が構成される(1508)。従って、j番目の分極段階は、生成多項式のうちj番目の係数に対応する。各段階は、分極単位の異なるストライドを有する。具体的には、j番目の分極段階はN-jの巡回ストライドを有する。この例では、第1の段階は6の巡回ストライド1510を有し、第3の段階は4の巡回ストライド1511を有する。上位Nのビットプレーンはコードワード1520として用いられ、最後のNのビットプレーン1521はエンコーディングビットuのコピーである。このように、従来の巡回コードのエンコーディングおよびデコーディングは極性コードと同様に実行することができる。
【0111】
【数31】

並列処理
【0112】
本発明の上述の実施形態は、以下を含むがそれらに限定されない多数の優れた特徴を有する。
エンコーディングおよびデコーディングは、PCMを計算することなくGMで指定された同じグラフィカル構造を共有する。
エンコーディングおよびデコーディングは完全に並列化することができる。
プロトグラフにおける短いサイクルを効率的に排除することができる。
より短い基本コードが結合されるので、コード設計を単純化することができる。
信念伝搬デコーディングは高周長設計で適切に機能することができる。
プロトグラフデコーディングについての計算複雑度は、元の短いコードの計算複雑度と同程度に低く維持される。
最先端の性能が達成可能である。
任意の線形コードを基本プロトグラフとして用いて、複数の分極段階を有する極性型LDGMコードに変換することができる。
SCデコーディングおよびBPデコーディングは、部分的なCRCコードが複製されたエンコーダにわたって埋込まれる場合、増分的な凍結ビットと組合わせることができる。
不規則なコーディングは、プロト分極のプルーニングとともに採用することが簡単である。
非バイナリコーディングを容易に適用できる。
デコーディング並列性およびデコーディングレイテンシを調整するために空間結合を用いることができる。
プロトグラフLDPCコードに用いられる確立された技術は、P-EXIT法および周長最大化法等のプロトグラフLDGMコードのために、ロトグラフLDPCコードに用いられる確立された技術を用いることができる。
【0113】
上述の利点のほとんどは、従来の極性コードおよび従来のプロトグラフLDPCコードには利用できなかった。特に、高度に並列なエンコーディングおよびデコーディングの能力は、毎秒テラビットを超えるデータレートを必要とする光ファイバ通信等の高スループット処理を必要とする実用的な用途に対する本発明の優れた利点である。
【0114】
図16Aは、本発明に従った高スループット送信のための極性型LDGMエンコーダ1600の高度に並列かつパイプライン化された実装の例を示す。例えば、QC極性コードは、n=8段階のQ=256の極性エンコーダ1602を並列に動作させ、次いで、N=65536のビットが、サイズK×Qのソースデータ1601を前提としてエンコードされたコードワード1603として生成される。複数のエンコーダを結合するためのリフティング置換は、如何なる計算複雑度も伴わないが、各段階におけるエンコーダ間でのデータ交換を伴うことに留意されたい。各々の基本エンコーダ1602はn=8の浅い段階を有するので、エンコーディングは、8つの段階を通じてエンコードするために8つのクロックで達成され得る。このように、Nビット全てに対してエンコーディングを高度に並列化することで、少ない数の8段階のパイプライン化で大きなコードワードを生成する。従って、上述の極性型LDGMエンコーダの高度並列実装は、ソースデータのエンコーディング処理の有効性を向上させることができるとともに、送信機におけるプロセッサ(ハードウェアプロセッサ)の性能を高めることができ、これにより、送信機のスループットを高めることができる。
【0115】
図16Bは、実施形態に従った、高スループット処理のための極性型LDGMデコーダの高度に並列なパイプライン化された実装の例を示す。例えば、極性型LDGMデコーダ1610は、(SCLデコーディングまたはBPデコーディングを含む)メッセージ受渡しスケジュールにかかわらず、Q=256の短いデコーダ1612に対して完全に並列化される。各デコーダは、軟入力信念メッセージ1611を取得して、置換相互接続1613を介して複数の段階にわたるメッセージ受渡しにより軟出力メッセージ1614を生成して、並列デコーダにわたってデータを交換する。いくつかの実施形態はさらに、同じデコーダ1610においてメッセージ受渡しを反復するのではなく、デコーディングスループットを増加させるために追加のデコーダ1620を用いて同じデコーディングプロセスをパイプライン化することを用いる。例えば、第1回目のデコーディング反復は並列デコーダの第1のセット1610で実行され、第2回目のデコーディング反復はQの並列デコーダの第2のセット1620で実行される。さらなる反復は、直列化された相互接続1623を介して、パイプライン化されたデコーダに展開される。信念メッセージが余分な複雑度なしで単に様々なデコーダ間で交換されるので、各デコーダ1612、1622が並列に処理され得ることに留意されたい。並列およびパイプライン実装の能力は、高スループットトランシーバについての極性型LDGMコードの優れた利点である。従って、上述の極性型LDGMデコーダの実装は、コードワードのデコーディングプロセスの有効性を向上させることができるとともに、受信機におけるプロセッサ(ハードウェアプロセッサ)の性能を高めることができ、これにより、受信機のスループットを高めることができる。
他の関連する特徴
【0116】
図17Aは、いくつかの実施形態に従った軟デコーディングを実行するための受信機および/またはいくつかの実施形態に従ったコードワードをエンコードするための送信機の、様々な構成要素を実装するのに適したシステムの例示的なブロック図を示す。システム1700は、接続部1720を介して他の構成要素に動作可能に結合可能なセンサ1710、慣性計測装置(inertial measurement unit:IMU)1730、プロセッサ1750、メモリ1760、トランシーバ1770、およびディスプレイ/スクリーン1780のうちの1つまたはこれらの組合せを含み得る。接続部1720は、バス、ライン、ファイバ、リンク、またはこれらの組合わせを含み得る。
【0117】
トランシーバ1770は、例えば、1つ以上のタイプの通信ネットワークを介して1つ以上の信号を送信することが可能な送信機と、1つ以上のタイプの通信ネットワークを介して送信される1つ以上の信号を受信するための受信機とを含み得る。トランシーバ1770は、限定はしないが、フェムトセル、IEEE802.11ファミリ規格に基づき得るWi-Fiネットワークまたは無線ローカルエリアネットワーク(wireless local area network:WLAN)、Bluetooth(登録商標)等の無線パーソナルエリアネットワーク(wireless personal area networks:WPANS)、近距離無線通信(near field communication:NFC)、IEEE802.11ファミリ規格に基づくネットワーク、および/または、LTE、WiMAX等の無線広域ネットワーク(wireless wide area network:WWAN)等の、様々な技術に基づく有線ネットワークまたは無線ネットワークとの通信を可能にし得る。システム1700はまた、光ファイバ通信等の有線ネットワークを介して通信するための1つ以上のポートを含み得る。
【0118】
いくつかの実施形態では、プロセッサ1750はまた、IMU1730から入力を受信することができる。他の実施形態では、IMU1730は3軸加速度計、3軸ジャイロスコープ、および/または磁力計を含み得る。IMU1730は、速度、向きおよび/または他の位置関連情報をプロセッサ1750に提供することができる。いくつかの実施形態では、IMU1730は、センサ1710による各画像フレームの取込みと同期して、測定された情報を出力することができる。いくつかの実施形態では、IMU1730の出力は、センサ測定値を融合するために、および/または融合された測定値をさらに処理するために、プロセッサ1750によって部分的に用いられる。
【0119】
システム1700はまた、カラー画像および/または深度画像等の画像をレンダリングするスクリーンまたはディスプレイ1780を含み得る。いくつかの実施形態では、ディスプレイ1780を用いて、センサ1710が捕捉したライブ画像、融合された画像、拡張現実(augmented reality:AR)画像、グラフィカルユーザインターフェイス(graphical user interface:GUI)、およびその他のプログラム出力を表示することができる。いくつかの実施形態では、ディスプレイ1780は、仮想キーボード、アイコン、メニュー、またはその他のGUI、ユーザジェスチャおよび/または入力デバイス、例えばスタイラスおよびその他の書込手段等のなんらかの組合せによりユーザがデータを入力できるようにするタッチスクリーンを含み得る、および/または当該タッチスクリーンが収容され得る。いくつかの実施形態では、ディスプレイ1780を、液晶ディスプレイまたは発光ダイオード(light emitting diode:LED)ディスプレイ、例えば有機LED(organic LED:OLED)ディスプレイ等を用いて実現することができる。その他の実施形態では、ディスプレイ1780はウェアラブルディスプレイであってもよい。
【0120】
例示的なシステム1700はまた、図示される機能ブロックの1つ以上を追加すること、組合わせること、または省略すること等によって、本開示に従う様々なやり方で修正することもできる。例えば、いくつかの構成においては、システム1700はIMU1730またはセンサ1710を含まない。いくつかの実施形態では、システム1700の一部は、1つ以上のチップセット等および/または同様のものの形態を取る。
【0121】
プロセッサ1750は、ハードウェア、ファームウェアおよびソフトウェアの組合せを用いて実装され得る。プロセッサ1750は、融合された測定値をさらに処理するためのセンサ融合および/または方法に関連する計算手順またはプロセスの少なくとも一部を実行するように構成可能な1つ以上の回路を表わし得る。プロセッサ1750はメモリ1760から命令および/またはデータを取出す。プロセッサ1750は、1つ以上の特定用途向け集積回路(application specific integrated circuit:ASIC)、中央処理装置(central processing unit:CPU)、グラフィック処理装置(graphical processing unit:GPU)、デジタル信号プロセッサ(digital signal processor:DSP)、DSPデバイス、プログラマブル論理デバイス(programmable logic device:PLD)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、埋込み型プロセッサコア、電子デバイス、本明細書に記載の機能を実行するように設計された他の電子ユニット、またはこれらの組合せを用いて実装可能である。
【0122】
メモリ1760は、プロセッサ1750内および/またはプロセッサ1750外で実装され得る。本明細書で用いる「メモリ」という語は、長期、短期、揮発性、不揮発性、または他のメモリのうちのいずれかの種類を指しており、任意の特定の種類のメモリまたはメモリの数、またはメモリが格納される物理媒体の種類に限定されない。いくつかの実施形態では、メモリ1760は、軟デコーディングおよび極性コーディングを容易にするプログラムコードを保持する。
【0123】
いくつかの実施形態では、軟デコーディングに加えて、またはその代わりに、プロセッサ1750は、軟デコーディングアプリケーション1755のうちの1つまたはこれらの組合せを実行することができる。例えば、デコーディングの軟出力は、より高性能のコードに結合される複数のコンポーネントECCから形成される連結ECCをデコードするために使用可能である。別の例は、反復的な等化およびデコーディングを用いるシステムであり、デコーダからの軟判定出力は、デコーダ入力を反復的に改良するために復調器に送り返される。さらに別の例は、デコードされた出力に作用することであり、例えば、ディスプレイ1780上に出力を示すこと、出力をメモリ1760に格納すること、トランシーバ1770を用いて出力を送信すること、ならびに/または、出力およびセンサ1710の測定値に基づいて動作を実行することである。
【0124】
さらに、本発明の別の実施形態は、エンコードされたデジタルデータを入力デジタルデータから生成するためのエンコーダ回路を提供することができる。図17Bは、エンコードされたデジタルデータを入力デジタルデータから生成するためのエンコーダ回路112のブロック図を示す概略図である。エンコーダ回路112はエンコーダ112と称することもある。エンコーダ回路112は、エンコードされたデジタルデータを入力デジタルデータとしてソースビットストリームから生成するように構成されている。エンコーダ回路112は、ソースビットストリーム111を受信するように構成されたエンコーダインターフェイス1120と、コンピュータにより実行可能なエンコーディング方法1255(プログラム/コンピュータ実行可能命令/または等価回路)を格納するように構成された少なくとも1つのメモリバンク1260と、コンピュータにより実行可能なエンコーディング方法のステップを実行することによってコードワードをエンコードされたデジタルデータとして入力デジタルデータから生成するように構成された1つ以上のコンピューティングプロセッサ1250とを含み得る。この場合、コンピュータにより実行可能なエンコーディング方法1255は、プロセッサ1250に、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含むステップを実行させるように構成される。コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。コンピュータにより実行可能なエンコーディング方法1255の方法ステップはさらに、凍結ビット割当ての少なくとも1つのルールに従って、ソースビットストリームおよび凍結ビットのセットを伴うデータ配列を初期化するステップと、プロト分極の段階全体にわたるメッセージ受渡しの少なくとも1つのルールに従ってデータ配列を伝搬させるステップとを含む。さらに、当該ステップは、(a)データ配列をプロト分極の少なくとも2つの段階に、1つの段階から別の段階へと順次供給するステップを含み、プロト分極の各段階は少なくとも1つのプロト分極単位を含み、当該ステップはさらに、(b)プロトグラフ置換の少なくとも1つのルールに従ってプロト分極単位の各々においてデータ配列を置換するステップと、(c)メッセージ受渡しの少なくとも1つのルールに従ってプロト分極単位の各々においてデータ配列を修正し、修正されたデータ配列を配置することによって、指定された順序に基づいてコードワードをエンコードされたデジタルデータとして生成するステップとを含む。いくつかの実施形態では、生成されたデジタルデータは、変調器113によって変調され、フロントエンド回路114を介して通信チャネル120から送信される。
【0125】
図17Cは、本発明のいくつかの実施形態に従った、エンコードされたデジタルデータをデコードするためのデコーダ回路(または単にデコーダ)133のブロック図を示す概略図である。デコーダ回路133は、通信チャネル120から受信したエンコードされた(ノイズのある)コードワードによって表わされるエンコードされたデジタルデータからデコードされたデジタルデータを生成するように構成される。
【0126】
デコーダ回路133は、ノイズのあるバージョンである変調されたエンコード済みのデジタルデータを復調する復調器132からエンコードされたコードワードを入力データとして受信するように構成されたデコーダインターフェイス1320と、コンピュータにより実行可能なデコーディング方法(プログラム/コンピュータ実行可能命令/または等価回路)1355を格納するように構成された少なくとも1つのメモリバンク1360と、1つ以上のコンピューティングプロセッサ1350とを含む。この場合、コンピュータにより実行可能なデコーディング方法(プログラム)1355は、コンピュータにより実行可能なデコーディング方法のステップを実行することにより、1つ以上のコンピューティングプロセッサ1350に、デコーダインターフェイス1320からのエンコードされたコードワードからデコードされたデジタルデータを生成させる。コンピュータにより実行可能なデコーディング方法に従うと、1つ以上のコンピューティングプロセッサ1350は、コード仕様に基づいて極性型低密度生成行列(LDGM)コードのプロトグラフ構造を定義するステップを含むステップを実行する。コード仕様は、プロト分極の少なくとも2つの段階と、凍結ビット割当ての少なくとも1つのルールと、プロトグラフ置換の少なくとも1つのルールと、メッセージ受渡しの少なくとも1つのルールとを含む。上記ステップはさらに、プロトグラフ構造内の各エッジに関連付けられた左向きおよび右向きメッセージの配列を初期化するステップを含む。この場合、プロト分極の第1の段階に供給する右向きメッセージは、凍結ビット割当ての少なくとも1つのルールに基づいて固定され、プロト分極の最後の段階に供給する左向きメッセージは、エンコードされたコードワードに基づいて指定された順序で固定される。上記ステップはさらに、少なくとも1つの変数ノードおよび少なくとも1つのチェックノードを含むプロト分極の少なくとも2つの段階にわたってメッセージ受渡しの少なくとも1つのルールに従って左向きメッセージおよび右向きメッセージを伝搬させるステップを含む。左向きおよび右向きメッセージは反復方法によって更新される。反復方法は、(a)メッセージ受渡しの少なくとも1つのルールに従って変数ノードおよびチェックノードの並列化可能なセットを選択するステップと、(b)プロトグラフ置換の少なくとも1つのルールに従って、左向きメッセージおよび右向きメッセージのセットを着信メッセージとして、選択された変数ノードおよびチェックノードに供給するステップと、(c)メッセージ受渡しの少なくとも1つのルールに従って、選択された変数ノードおよびチェックノードにおける着信メッセージに基づいて発信メッセージのセットを計算するステップと、(d)左向きメッセージおよび右向きメッセージのセットを、選択された変数ノードおよびチェックノードにおける発信メッセージのセットと置き換えるステップと、(e)メッセージ受渡しの少なくとも1つのルールに従ってステップ(a)~(d)を指定された回数だけ繰返すステップとを含む。さらに、1つ以上のプロセッサ1350は、コンピュータにより実行可能なデコーディング方法1355に従って、指定された順序で左向きメッセージのセットを選択することにより、出力メッセージをデコードされたデジタルデータとして生成する。
【0127】
本発明の上述の実施形態は全て、多数の方法のいずれかで実施することができる。例えば、実施形態は、ハードウェア、ファームウェア、ソフトウェアまたはこれらの組合せを用いて実装され得る。ソフトウェアで実装される場合、ソフトウェアコードは、単一のコンピュータで提供されるか、または複数のコンピュータ間で分散されるかにかかわらず、任意の好適なプロセッサまたはプロセッサの集合上で実行することができる。このようなプロセッサは、集積回路構成要素内の1つ以上のプロセッサとともに集積回路として実装され得る。但し、プロセッサは任意の適切なフォーマットで回路を用いて実装され得る。
【0128】
また、本発明の実施形態は、方法として実施されてもよく、その一例は既に示されている。当該方法の一部として実行される動作は任意の適切なやり方で順序付けられてもよい。従って、例示した順序とは異なる順序で動作が実行される実施形態が構成されてもよく、これは、例示的な実施形態では連続的な動作として示されているが、いくつかの動作を同時に実行することを含み得る。
【0129】
請求項において、請求項要素を修飾するために「第1」、「第2」等の順序を表す用語を使用する場合、それ自体が、ある請求項要素の、別の請求項要素に対する優先、先行、または順序を暗示しているのではなく、実行する方法の動作の時間的順序を暗示しているのでもなく、請求項要素を区別するために、特定の名称を有するある請求項要素を、同一の名称を有する(が順序を表す用語を使用する)別の要素から区別するためのラベルとして用いているに過ぎない。
【0130】
本発明を好ましい実施形態の例として説明してきたが、本発明の精神および範囲内で他の様々な応用および修正が実施可能であることを理解されたい。
【0131】
従って、添付の特許請求の範囲は、本発明の真の精神および範囲内に含まれる全てのこのような変更および修正を網羅することを目的としている。
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図8C
図8D
図9
図10A
図10B
図11A
図11B
図12
図13
図14
図15A
図15B
図16A
図16B
図17A
図17B
図17C