(57)【特許請求の範囲】
【請求項１】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置において、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備し、
前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ後から処理を開始する復号装置。
【請求項２】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置において、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備し、
前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ以降、処理を停止する復号装置。
【請求項３】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置において、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備し、
前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第１の程度まで進んだ後から処理を開始し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第２の程度まで進んだ以降、処理を停止する復号装置。
【請求項４】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置において、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備し、
前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置する第１のブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ場合、第１のブロックについての処理を停止し、前記パリティ検査行列の中央近傍に位置する第２のブロックについての処理を開始する復号装置。
【請求項５】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置で用いられる半導体チップにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しないブロックを前記パリティ検査行列に設定し、前記ブロックに包含される行列を用いた更新処理を並列して実行する複数のブロック復号部を具備し、
前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ後から処理を開始する半導体チップ。
【請求項６】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置で用いられる半導体チップにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しないブロックを前記パリティ検査行列に設定し、前記ブロックに包含される行列を用いた更新処理を並列して実行する複数のブロック復号部を具備し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ以降、処理を停止する半導体チップ。
【請求項７】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置で用いられる半導体チップにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しないブロックを前記パリティ検査行列に設定し、前記ブロックに包含される行列を用いた更新処理を並列して実行する複数のブロック復号部を具備し、
前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第１の程度まで進んだ後から処理を開始し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第２の程度まで進んだ以降、処理を停止する半導体チップ。
【請求項８】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置で用いられる半導体チップにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しないブロックを前記パリティ検査行列に設定し、前記ブロックに包含される行列を用いた更新処理を並列して実行する複数のブロック復号部を具備し、
前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置する第１のブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ場合、第１のブロックについての処理を停止し、前記パリティ検査行列の中央近傍に位置する第２のブロックについての処理を開始する半導体チップ。
【請求項９】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置のコンピュータで実行される復号プログラムにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を前記コンピュータに並列して実行させ、
前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号ルーチンを有し、
前記ブロック復号ルーチンのうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号ルーチンは、前記復号処理が所定の程度まで進んだ後から処理を開始する復号プログラム。
【請求項１０】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置のコンピュータで実行される復号プログラムにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を前記コンピュータに並列して実行させ、
前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号ルーチンを有し、
前記複数のブロック復号ルーチンのうち、前記パリティ検査行列の両端近傍に位置するブロックについての更新処理を実行するブロック復号ルーチンは、前記復号処理が所定の程度まで進んだ以降、処理を停止する復号プログラム。
【請求項１１】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置のコンピュータで実行される復号プログラムにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を前記コンピュータに並列して実行させ、
前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号ルーチンを有し、
前記複数のブロック復号ルーチンのうち、前記パリティ検査行列の中央近傍に位置するブロックについての更新処理を実行するブロック復号ルーチンは、前記復号処理が第１の程度まで進んだ後から処理を開始し、
前記複数のブロック復号ルーチンのうち、前記パリティ検査行列の両端近傍に位置するブロックについての更新処理を実行するブロック復号ルーチンは、前記復号処理が第２の程度まで進んだ以降、処理を停止する復号プログラム。
【請求項１２】
空間結合ＬＤＰＣ符号に基づく復号処理を実行する復号装置のコンピュータで実行される復号プログラムにおいて、
前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を前記コンピュータに並列して実行させ、
前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号ルーチンを有し、
前記複数のブロック復号ルーチンのうち、前記パリティ検査行列の両端近傍に位置する第１のブロックについての更新処理を実行するブロック復号ルーチンは、前記復号処理が所定の程度まで進んだ場合、第１のブロックについての処理を停止し、前記パリティ検査行列の中央近傍に位置する第２のブロックについての処理を開始する復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、空間結合ＬＤＰＣ（Low Density Parity Check Code）符号により符号化されたデータを復号する復号装置、この復号装置で実行される復号プログラム、及びこの復号装置に搭載される半導体チップに関する。
【背景技術】
【０００２】
日本の地上デジタル放送方式であるＩＳＤＢ−Ｔ（Integrated Services Digital Broadcasting−Terrestrial）は、固定受信向けにハイビジョン（登録商標）放送（又は複数標準画質放送）を実現している。次世代の地上デジタル放送方式では、従来のハイビジョンに代わり、３Ｄハイビジョン放送又はハイビジョンの１６倍の解像度を持つスーパーハイビジョン等により、さらに情報量の多いサービスを提供することが求められている。そこで、データ容量の拡大、及び誤り訂正技術により、所要Ｃ／Ｎ（搬送波対雑音：Carrier to Noise）を低減することが課題となっている。
【０００３】
近年、ＬＤＰＣ符号が、シャノン限界に迫る高性能の誤り訂正符号として多くの伝送システムに採用されている。ＬＤＰＣ符号は、パリティ検査行列によって定義される。通常、復号に要する計算量はパリティ検査行列の規模に比例するが、パリティ検査行列が特殊な構造を持つ場合、その構造を活用することで効率の良い復号が可能となる。
【０００４】
特殊な構造を有するＬＤＰＣ符号として、空間結合ＬＤＰＣ（SC-LDPC: spatially-coupled LDPC）符号が知られている。空間結合ＬＤＰＣ符号のパリティ検査行列は、素行列と称される小さい単位の検査行列を対角線上に配置することで構成される。空間結合ＬＤＰＣ符号により符号化されたデータを復号するアルゴリズムとして、スライディングウィンドウ方式の復号アルゴリズムが提案されている。
【０００５】
スライディングウィンドウ方式では、隣接する素行列のまとまりをカバーするように長方形の窓が設定され、設定された窓の中で信頼度更新アルゴリズム（Belief Propagation: ＢＰ法）が実行される。検査行列に含まれる情報ビット部に設定された窓と、パリティビット部に設定された窓とは同期して動くものとする。復号装置は、情報ビット部、及びパリティビット部に設定された窓を、部分的に重ねながら、左上から右下へ順に進めていくことで、データの復号を進行させる。
【０００６】
従来の復号装置では、窓を部分的に重ねながら左上から右下へ進行するため、窓毎に実施される処理を並列して実行することができない。そのため、処理が完了するまでに長い時間を要する。さらに、処理時間の長さは復号反復回数の制限につながり、ＢＥＲ（Bit Error Rate）特性にも影響を及ぼす。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−０８８９７６号公報
【特許文献２】特開２０１３−１９８０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
そこで、目的は、空間結合ＬＤＰＣ符号により符号化されたデータを高速、かつ高精度に復号することが可能な復号装置、この復号装置で実行される復号プログラム、及びこの復号装置に搭載される半導体チップを提供することにある。
【課題を解決するための手段】
【０００９】
実施形態によれば、復号装置は、空間結合ＬＤＰＣ符号に基づく復号処理を実行する。復号装置は、前記空間結合ＬＤＰＣ符号のパリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施形態に係る復号装置の機能構成を示すブロック図である。
【図２】図２は、本実施形態に係る符号化装置の機能構成を示すブロック図である。
【図３】図３は、図１に示される復号器の機能構成を示すブロック図である。
【図４】図４は、本実施形態に係る空間結合ＬＤＰＣ符号のパリティ検査行列を示す図である。
【図５】図５は、空間結合ＬＤＰＣ符号のパリティ検査行列に設定されるブロックを表す図である。
【図６】図６は、図３に示されるブロック復号部が処理を実行する際の動作を説明するフローチャートである。
【図７】図７は、図３に示されるパリティチェック部、及び出力部が復号結果を出力する際の動作を説明するフローチャートである。
【図８】図８は、図１に示される復号器が復号結果を出力する際の動作を説明するタイムチャートである。
【図９】図９は、従来のスライディングウィンドウ法で設定される窓を表す図である。
【図１０】図１０は、従来のスライディングウィンドウ法による処理を説明するタイムチャートである。
【図１１】図１１は、図１に示される復号器により更新されるＬＬＲの計算結果を表す図である。
【図１２】図１２は、図３に示されるブロック復号部が処理を停止させながらＬＬＲを更新する際の動作を説明するフローチャートである。
【図１３】図１３は、図１に示される復号器が、ブロック復号部のうちいずれかの処理を停止させながら復号結果を出力する際の動作を説明するタイムチャートである。
【図１４】図１４は、パリティ検査行列に５種類の素行列が含まれる場合に設定されるブロックの例を示す図である。
【図１５】図１５は、パリティ検査行列に５種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。
【図１６】図１６は、パリティ検査行列に５種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。
【図１７】図１７は、パリティ検査行列に５種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態について、図面を参照して説明する。
図１は、本実施形態に係る復号装置１０の機能構成の例を示すブロック図である。図１に示される復号装置１０は、誤り訂正復号が必要とされる種々の機器に組み込まれてよい。具体的には、復号装置１０は、例えば受信機、送受信機、及び中継機等の通信系に組み込まれてもよいし、例えば記憶装置等の記録再生系に組み込まれてもよい。図１に示される復号装置１０は、復調器１１、及び復号器１２を具備する。
【００１２】
復号装置１０が組み込まれる、例えば、受信機は、図２に示される符号化装置２０が組み込まれる、例えば、送信機から送信される送信信号を受信する。
【００１３】
図２に示される符号化装置２０は、符号化器２１、及び変調器２２を具備する。符号化器２１は、送信対象となる情報ビットを入力する。符号化器２１は、入力される情報ビットに対し、空間結合ＬＤＰＣ符号による符号化処理を施す。符号化器２１は、情報ビットに、パリティビットを付与したデータを変調器２２へ出力する。  
変調器２２は、符号化器２１から出力されるデータをＱＡＭ（Quadrature Amplitude Modulation）コンスタレーションにマッピングし、複素信号として出力する。複素信号は、例えば、周波数変換処理、及び増幅処理等を経て、送信機に設けられるアンテナから送信される。
【００１４】
図１に示される復号装置１０に設けられる復調器１１は、例えば、ＣＰＵ（Central Processing Unit）、ＣＰＵが処理を実行する際に用いるメモリ、及び、ＣＰＵからの制御に従って所定の処理を実行するＦＰＧＡ（Field Programmable Gate Array）等を備える。
【００１５】
復調器１１は、受信信号が、例えば、周波数変換処理、及び直交復調処理等されたビット列を入力する。復調器１１は、送信側において施された変調方式に対応する復調方式に従って入力されるビット列を復調し、復調データを取得する。本実施形態において、復調データは、入力されるビット列を構成するビット毎のＬＬＲ（log likelihood ratio）である。ＬＬＲは、ビットが０である可能性と、1である可能性とを数値化した信頼度情報である。ＬＬＲは、正に大きいほど０である可能性が高く、負に大きいほど１である可能性が高いことを表す。また、ＬＬＲ＝０は、ビットが０である可能性と１である可能性とが五分五分であることを意味する。復調器１１は、算出したＬＬＲを復号器１２へ出力する。
【００１６】
復号器１２は、ＢＰ（Belief Propagation）法を利用した復号処理を実行する。すなわち、復号器１２は、復調器１１から出力されるＬＬＲを初期信頼度情報とし、パリティ検査行列に従ってＬＬＲを更新していくことで、尤もらしい符号語を推定する。復号器１２は、推定した符号語の情報ビット部を復号結果として出力する。
【００１７】
復号器１２は、例えば、ＣＰＵ、ＣＰＵが処理を実行する際に用いるメモリ、及び、ＣＰＵからの制御に従って所定の処理を実行するＦＰＧＡ等を備える。復号器１２は、ＣＰＵがＦＰＧＡに所定の処理を実行させることで、図３に示されるブロック復号部１２１−１〜１２１−ｎ、パリティチェック部１２２、出力部１２３、及び制御部１２４の機能を実現する。ｎは並列して動作するブロック復号部の数を表し、復号器１２に搭載可能な回路規模、及び復号器１２に要求される処理速度に応じ、予め設定される。なお、復号器１２の各機能は、独立したＦＰＧＡにより実現されてもよいし、複数のＦＰＧＡにより実現されても構わない。また、復号器１２は、ＦＰＧＡの代わりにＬＳＩ（Large-Scale Integration）等の半導体チップにより機能を実現しても構わない。また、復号器１２は、ソフトウェアにより所定の復号プログラムを実行することで機能を実現しても構わない。
【００１８】
復号器１２の機能を説明する前に、本実施形態に係るパリティ検査行列について説明する。図４は、本実施形態に係る空間結合ＬＤＰＣ符号のパリティ検査行列ＨＣの例を示す模式図である。図４に示されるパリティ検査行列ＨＣは、ＬＤＧＭ（Low-Density Generator Matrix）構造を有し、情報ビット部ＨＩとパリティビット部ＨＰとで構成される。
【００１９】
情報ビット部ＨＩは、符号長ａ、パリティ長ｍの素行列（以下、基本素行列という。）ＨＢに基づいて生成される。ここで、ｋ＝ａ−ｍとする。情報ビット部ＨＩは、Ｎ種類（Ｎ：２以上の自然数）のｍ行ｋ列の素行列を列方向に結合させたＮ・ｍ行ｋ列の素行列Ｌ個をｍ行ｋ列ずつずらして結合させた、（Ｌ＋Ｎ−１）ｍ行、Ｌ・ｋ列の行列である。Ｎ種類の素行列は、ｍ行ｋ列の基本素行列ＨＢの各要素をＮ個のいずれかの行列に振り分けることにより生成される。なお、図４では、Ｎ＝２の場合を示しており、２種類の素行列をＨＵ，ＨＬと表す。基本素行列ＨＢは、ｍ行Ｍ列の行列毎に周期的構造を有し、各ｍ行Ｍ列の行列では１列目に１が疎に配置され、２列目以降は１列目の１をｑ行分サイクリックにシフトさせた位置に１が配置される。Ｍはｍ／ｑとする。
【００２０】
パリティビット部ＨＰは、２重対角行列である。２重対角行列とは、対角の要素とこの対角の真下の要素とを１とし、残り全ての要素を０とする行列である。パリティビット部ＨＰのサイズは、（Ｌ＋Ｎ−１）ｍ行、（Ｌ＋Ｎ−１）ｍ列である。なお、図４では、Ｎ＝２の場合を示している。
【００２１】
図３に示されるブロック復号部１２１−１〜１２１−ｎは、予め設定される大きさのブロックに包含される局所的なパリティ検査行列を用いてＬＬＲを更新する処理を並列して実行する。ブロックは、パリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した後に更新されるＬＬＲの場所が重複しないように設定される。なお、本実施形態に係るブロックは、従来のスライディングウィンドウ法で用いられる窓と同様の概念に基づくが、スライディングウィンドウ法で用いられる窓との差異を明確にするため、ブロックと称する。
【００２２】
図５は、空間結合ＬＤＰＣ符号のパリティ検査行列に設定されるブロックの例を表す模式図である。図５では、パリティ検査行列に２種類の素行列が存在する場合を例に示す。図５において太枠は、ＢＰ法を利用した復号処理を実行するブロックを表す。ブロック＜１＞が素行列ＨＵ＿０を包含し、ブロック＜２＞が素行列ＨＬ＿０，ＨＵ＿１を包含し、ブロック＜３＞が素行列ＨＬ＿１，ＨＵ＿２を包含し、…、ブロック＜Ｌ＞が素行列ＨＬ＿Ｌ−２，ＨＵ＿Ｌ−１を包含し、ブロック＜Ｌ＋１＞が素行列ＨＬ＿Ｌ−１を包含するようにしている。
【００２３】
図５において、ブロック復号部１２１−１〜１２１−ｎは、ブロック＜１＞，＜２＞，…，＜Ｌ＋１＞のうち、更新されるＬＬＲの場所が重複しないブロックに含まれる行列を用いた処理を、並列して実行する。具体的には、ブロック復号部１２１−１〜１２１−ｎは、例えば、奇数ブロックにより包含される行列を用いた処理を並列して実行し、その後、偶数ブロックにより包含される行列を用いた処理を並列して実行する。ブロック復号部１２１−１〜１２１−ｎが処理を実行することにより、ブロックの幅に該当するＬＬＲが更新される。
【００２４】
ブロック＜１＞〜ブロック＜Ｌ＋１＞に包含される全ての行列を用いてＬＬＲを更新する処理が実行されることを１グローバルイタレーションと称する。ブロック復号部１２１−１〜１２１−ｎは、１グローバルイタレーションが終了すると、次のグローバルイタレーションにおける処理を実行する。ブロック復号部１２１−１〜１２１−ｎは、パリティチェック部１２２の検査結果に応じて処理を停止する。
【００２５】
パリティチェック部１２２は、１グローバルイタレーションが終了すると、ブロック復号部１２１−１〜１２１−ｎにより更新されたＬＬＲが、パリティ検査行列の行毎に定義されるパリティチェック式を満たすか否かを検査する。パリティチェック部１２２は、検査結果を制御部１２４へ通知する。
【００２６】
出力部１２３は、パリティチェック部１２２においてパリティチェック式を満たすと判定されたＬＬＲを硬判定する。出力部１２３は、硬判定の結果得られる０・１のビットを復号結果として出力する。
【００２７】
制御部１２４は、復号器１２の動作を制御する。例えば、パリティチェック部１２２から、ＬＬＲがパリティ検査行列の行毎に定義されるパリティチェック式を満たす旨の検査結果を通知された場合、制御部１２４は、ブロック復号部１２１−１〜１２１−ｎにＬＬＲの更新処理を停止させる。また、パリティチェック部１２２から、ＬＬＲがパリティ検査行列の行毎に定義されるパリティチェック式を満たす旨の検査結果を通知された場合、制御部１２４は、出力部１２３にＬＬＲの硬判定を開始させる。
【００２８】
次に、上記のように構成される復号器１２の動作を説明する。図６は、ブロック復号部１２１−１〜１２１−ｎが処理を実行する際の動作を説明するフローチャートである。図７は、パリティチェック部１２２、及び出力部１２３が復号結果を出力する際の動作を説明するフローチャートである。また、図８は、復号器１２が復号結果を出力する際の動作を説明するタイムチャートである。図６乃至図８の説明において、ブロックは、図５に示されるように設定されるものとする。なお、図５では、Ｌが奇数である場合を例に示している。つまり、ｎ＝（Ｌ＋１）／２である。また、図６乃至図８の説明において、ブロック復号部１２１−１〜１２１−ｎは、奇数ブロックにより包含される行列を用いた処理を並列して実行した後、偶数ブロックにより包含される行列を用いた処理を並列して実行するものとする。
【００２９】
まず、図６において、ブロック復号部１２１−１，１２１−２，…，１２１−（（Ｌ＋１）／２）は、ブロック＜１＞により包含される行列を用いた処理、ブロック＜３＞により包含される行列を用いた処理、…、及びブロック＜Ｌ＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ６１）。これにより、図８の１グローバルイタレーションにおける奇数ブロックの処理が実行され、ブロック＜１＞，＜３＞，…，＜Ｌ＞の幅に該当するＬＬＲが更新される。
【００３０】
続いて、ブロック復号部１２１−１，１２１−２，…，１２１−（（Ｌ＋１）／２）は、ブロック＜２＞により包含される行列を用いた処理、ブロック＜４＞により包含される行列を用いた処理、…、及びブロック＜Ｌ＋１＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ６２）。これにより、図８の１グローバルイタレーションにおける偶数ブロックの処理が実行され、ブロック＜２＞，＜４＞，…，＜Ｌ＋１＞の幅に該当するＬＬＲが更新される。
【００３１】
ブロック復号部１２１−１〜１２１−ｎは、１グローバルイタレーションが終了すると、次のグローバルイタレーションにおける処理を実施する。ブロック復号部１２１−１〜１２１−ｎは、制御部１２４からの停止指示が与えられると、処理を停止する。
【００３２】
なお、図５では、Ｌが奇数である場合を説明しているが、Ｌは偶数であってもよい。Ｌが偶数である場合、ｎ＝Ｌ／２＋１である。まず、ブロック復号部１２１−１，１２１−２，…，１２１−（Ｌ／２＋１）は、ブロック＜１＞により包含される行列を用いた処理、ブロック＜３＞により包含される行列を用いた処理、…、及びブロック＜Ｌ＋１＞により包含される行列を用いた処理をそれぞれ並列して実行する。これにより、ブロック＜１＞，＜３＞，…，＜Ｌ＋１＞の幅に該当するＬＬＲが更新される。その後に、ブロック復号部１２１−１，１２１−２，…，１２１−（Ｌ／２）は、ブロック＜２＞により包含される行列を用いた処理、ブロック＜４＞により包含される行列を用いた処理、…、及びブロック＜Ｌ＞により包含される行列を用いた処理をそれぞれ並列して実行する。これにより、ブロック＜２＞，＜４＞，…，＜Ｌ＞の幅に該当するＬＬＲが更新される。
【００３３】
図７において、パリティチェック部１２２は、１グローバルイタレーションが終了した際のＬＬＲを取得する（ステップＳ７１）。パリティチェック部１２２は、取得したＬＬＲがパリティ検査行列の行毎に定義されるパリティチェック式を満たすか否かを検査する（ステップＳ７２）。満たす場合（ステップＳ７２のＹｅｓ）、制御部１２４は、ブロック復号部１２１−１〜１２１−ｎへ停止指示を与える。また、制御部１２４は、出力部１２３にＬＬＲの硬判定を開始させる（ステップＳ７３）。満たさない場合（ステップＳ７２のＮｏ）、制御部１２４は、処理をステップＳ７１へ移行する。
【００３４】
出力部１２３は、制御部１２４からの指示に応じてＬＬＲの硬判定を開始し、硬判定の結果得られる０・１のビットを復号結果として出力する（ステップＳ７４）。
【００３５】
以上のように、本実施形態では、ブロックが、パリティ検査行列における少なくとも１つの素行列を包含し、かつ、並列処理した際に更新されるＬＬＲの場所が重複しないように設定される。そして、ブロック復号部１２１−１〜１２１−ｎは、設定されたブロックに包含されるパリティ検査行列を用い、並列してＬＬＲを更新するようにしている。
【００３６】
ところで、従来のスライディングウィンドウ法では、図９で示されるように、窓は、パリティ検査行列における複数の素行列を包含し、かつ、窓同士が重複するように設定される。そして、まず、窓＜１＞内のパリティ検査行列で、窓＜１＞の幅に該当するＬＬＲがＢＰ法によって更新される。その後、窓＜２＞内のパリティ検査行列で、窓＜２＞の幅に該当するＬＬＲが更新される。ここで、窓＜１＞と窓＜２＞とは一部が重なっているため、更新されるＬＬＲが重複する。そのため、窓＜２＞により包含される行列を用いた更新処理は、窓＜１＞により包含される行列を用いた更新処理が終了するのを待って開始する必要がある。そのため、パリティ検査行列における結合数がＬである場合、復号処理は、図１０に示されるように、スライディングウィンドウをＬ回繰り返すシーケンシャルな処理となる。このため、１グローバルイタレーションが完了するまでに長い時間を要することとなる。また、パリティ検査行列における結合数に比例して処理時間が増大する。また、処理時間の長さは復号反復回数の制限につながり、ＢＥＲ（Bit Error Rate）特性にも影響を及ぼすこととなる。
【００３７】
本実施形態によれば、所定のブロック内において同時動作でＬＬＲを更新することが可能であるため、１グローバルイタレーションにかかる時間を短縮することが可能となる。また、１グローバルイタレーションが完了するまでにかかる時間が短縮されるため、復号精度を向上させるためにグローバルイタレーションを複数回繰り返しても処理時間の増大を抑えられる。
【００３８】
したがって、本実施形態に係る復号装置１０によれば、空間結合ＬＤＰＣ符号により符号化されたデータを高速、かつ高精度に復号することができる。また、１グローバルイタレーションにかかる処理時間が、空間結合ＬＤＰＣ符号のパリティ検査行列における結合数に関わらず一定となる。
【００３９】
（変形例１）  
上記実施形態では、ブロック復号部１２１−１〜１２１−ｎが、所定のブロックに含まれる行列を用い、間欠無くＬＬＲを更新する場合を例に説明した。しかしながら、これに限定されない。復号処理の程度によっては、ブロック復号部１２１−１〜１２１−ｎのいずれかが、処理を実行しないようにしても構わない。
【００４０】
空間結合ＬＤＰＣ符号のパリティ検査行列は両上下端の行重みが小さいため、両端の列のビットの復号結果の信頼度は中央の列に比べて高い。図１１は、本実施形態に係る復号器１２により更新されるＬＬＲの計算結果を表す図である。図１１では、Ｃ／Ｎ（Carrier to Noise）＝０．７ｄＢであり、１５グローバルイタレーション経過した際に算出されるＬＬＲが示される。図１１に示されるように、両端のＬＬＲは、中央のＬＬＲよりも大きい。また、空間結合ＬＤＰＣ符号に基づく復号処理は、両端のＬＬＲ（すなわち信頼度）が先に大きくなり、その良質な信頼度が中央に伝搬していくことで、中央も次第に信頼度が高くなっていくという特徴がある。このため、復号処理の初期においては、中央に位置するブロックの処理がＬＬＲに与える効果は薄い。つまり、復号処理の初期においては、中央に位置するブロックの処理をスキップしても性能劣化は僅かである。そこで、ブロック復号部１２１−１〜１２１−ｎのうち、中央に位置するブロックに包含される行列を用いてＬＬＲを更新するブロック復号部は、所定の条件を満たした後から、処理を実行するようにしてもよい。
【００４１】
具体的には、例えば、ブロック復号部１２１−１〜１２１−ｎに、ブロック毎のパリティチェックを実施する機能を持たせる。ブロック毎のパリティチェックとは、ブロックに含まれる行列を用いて更新したＬＬＲが、パリティ検査行列のうち、ブロックに含まれる行列により定義されるパリティチェック式を満たすか否かを検査する処理である。復号処理の初期において、ブロック復号部１２１−１〜１２１−ｎのうち、中央Ｎｉ個のブロック復号部の処理を停止させる。制御部１２４は、両端Ｎｊ個のブロック復号部から、ブロック毎のパリティチェックの結果を受信する。制御部１２４は、Ｎｊ個のブロック復号部によるブロック毎のパリティチェックがＮｋ回パスした場合、Ｎｉ個のブロック復号部の処理を開始する。
【００４２】
また、ある程度グローバルイタレーションを繰り返した後は、両端のＬＬＲは十分大きい。そこで、ブロック復号部１２１−１〜１２１−ｎのうち、両端に位置するブロックに包含される行列を用いてＬＬＲを更新するブロック復号部は、所定の条件を満たした後から、処理を停止するようにしてもよい。
【００４３】
具体的には、例えば、制御部１２４は、両端Ｎｊ個のブロック復号部から、ブロック毎のパリティチェックの結果を受信する。制御部１２４は、Ｎｊ個のブロック復号部によるブロック毎のパリティチェックがＮｋ回パスした場合、Ｎｊ個のブロック復号部の処理を停止する。なお、個数Ｎｉ，Ｎｊは、例えば２個であり、回数Ｎｋは、例えば３回、又は５回である。
【００４４】
次に、上記の動作を、ブロック復号部１２１−１〜１２１−８が実施する場合を例に詳細に説明する。このとき、ブロック復号部１２１−１〜１２１−８は、図５に示されように設定されるブロック＜１＞〜＜１６＞に包含される行列を用いてＬＬＲを更新するものとする。図１２は、ブロック復号部１２１−１〜１２１−８が処理を停止させながらＬＬＲを更新する際の動作を説明するフローチャートである。また、図１３は、復号器１２が、ブロック復号部１２１−１〜１２１−８のうちいずれかの処理を停止させながら復号結果を出力する際の動作を説明するタイムチャートである。図１２及び図１３の説明において、ブロック復号部１２１−４，１２１−５が中央２（Ｎｉ）個のブロック復号部であり、ブロック復号部１２１−１，１２１−８が両端２（Ｎｊ）個のブロック復号部であるとする。
【００４５】
まず、図１２において、ブロック復号部１２１−１〜１２１−３，１２１−６〜１２１−８は、ブロック＜１＞により包含される行列を用いた処理、ブロック＜３＞により包含される行列を用いた処理、ブロック＜５＞により包含される行列を用いた処理、ブロック＜１１＞により包含される行列を用いた処理、ブロック＜１３＞により包含される行列を用いた処理、及びブロック＜１５＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２１）。このとき、ブロック復号部１２１−４，１２１−５により実行されるブロック＜７＞，＜９＞の処理がスキップされる。これにより、図１３の第１グローバルイタレーションにおける奇数ブロックの処理が実行される。
【００４６】
続いて、ブロック復号部１２１−１〜１２１−３，１２１−６〜１２１−８は、ブロック＜２＞により包含される行列を用いた処理、ブロック＜４＞により包含される行列を用いた処理、ブロック＜６＞により包含される行列を用いた処理、ブロック＜１２＞により包含される行列を用いた処理、ブロック＜１４＞により包含される行列を用いた処理、及びブロック＜１６＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２２）。このとき、ブロック復号部１２１−４，１２１−５により実行されるブロック＜８＞，＜１０＞の処理がスキップされる。これにより、図１３の第１グローバルイタレーションにおける偶数ブロックの処理が実行される。
【００４７】
制御部１２４は、ブロック復号部１２１−１，１２１−８によるブロック毎のパリティチェックの結果を受信し、パリティチェックが３（Ｎｋ）回パスしたか否かを判断する（ステップＳ１２３）。パスした回数が２回以下である場合（ステップＳ１２３のＮｏ）、制御部１２４は、ブロック復号部１２１−１〜１２１−３，１２１−６〜１２１−８にステップＳ１２１，ステップＳ１２２の処理を継続させる。パスした回数が３回となった場合（ステップＳ１２３のＹｅｓ）、制御部１２４は、ブロック復号部１２１−４，１２１−５の処理を開始させる（ステップＳ１２４）。
【００４８】
ブロック復号部１２１−１〜１２１−８は、ブロック＜１＞により包含される行列を用いた処理、ブロック＜３＞により包含される行列を用いた処理、ブロック＜５＞により包含される行列を用いた処理、ブロック＜７＞により包含される行列を用いた処理、ブロック＜９＞により包含される行列を用いた処理、ブロック＜１１＞により包含される行列を用いた処理、ブロック＜１３＞により包含される行列を用いた処理、及びブロック＜１５＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２５）。これにより、図１３の第Ｎｏグローバルイタレーションにおける奇数ブロックの処理が実行される。
【００４９】
続いて、ブロック復号部１２１−１〜１２１−８は、ブロック＜２＞により包含される行列を用いた処理、ブロック＜４＞により包含される行列を用いた処理、ブロック＜６＞により包含される行列を用いた処理、ブロック＜８＞により包含される行列を用いた処理、ブロック＜１０＞により包含される行列を用いた処理、ブロック＜１２＞により包含される行列を用いた処理、ブロック＜１４＞により包含される行列を用いた処理、及びブロック＜１６＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２６）。これにより、図１３の第Ｎｏグローバルイタレーションにおける偶数ブロックの処理が実行される。
【００５０】
制御部１２４は、ブロック復号部１２１−１，１２１−８によるブロック毎のパリティチェックの結果を受信し、パリティチェックが５（Ｎｋ）回パスしたか否かを判断する（ステップＳ１２７）。パスした回数が４回以下である場合（ステップＳ１２７のＮｏ）、制御部１２４は、ブロック復号部１２１−１〜１２１−８にステップＳ１２５，ステップＳ１２６の処理を継続させる。パスした回数が５回となった場合（ステップＳ１２７のＹｅｓ）、制御部１２４は、ブロック復号部１２１−１，１２１−８の処理を停止させる（ステップＳ１２８）。
【００５１】
ブロック復号部１２１−２〜１２１−７は、ブロック＜３＞により包含される行列を用いた処理、ブロック＜５＞により包含される行列を用いた処理、ブロック＜７＞により包含される行列を用いた処理、ブロック＜９＞により包含される行列を用いた処理、ブロック＜１１＞により包含される行列を用いた処理、及びブロック＜１３＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２９）。このとき、ブロック復号部１２１−１，１２１−８により実行されるブロック＜１＞，＜１５＞の処理がスキップされる。これにより、図１３の第Ｎｐグローバルイタレーションにおける奇数ブロックの処理が実行される。
【００５２】
続いて、ブロック復号部１２１−２〜１２１−７は、ブロック＜４＞により包含される行列を用いた処理、ブロック＜６＞により包含される行列を用いた処理、ブロック＜８＞により包含される行列を用いた処理、ブロック＜１０＞により包含される行列を用いた処理、ブロック＜１２＞により包含される行列を用いた処理、及びブロック＜１４＞により包含される行列を用いた処理をそれぞれ並列して実行する（ステップＳ１２１０）。このとき、ブロック復号部１２１−１，１２１−８により実行されるブロック＜２＞，＜１６＞の処理がスキップされる。これにより、図１３の第Ｎｐグローバルイタレーションにおける偶数ブロックの処理が実行される。
【００５３】
ブロック復号部１２１−２〜１２１−７は、制御部１２４からの停止指示が与えられるまで、ステップＳ１２９，ステップＳ１２１０の処理を繰り返す。
【００５４】
以上のように、変形例１では、復号器１２は、ブロック復号部による処理を選択的に停止させるようにしている。これにより、復号器１２での消費電力を抑えることが可能となる。
【００５５】
なお、図１２の説明では、制御部１２４が、ブロック復号部１２１−１，１２１−８によるブロック毎のパリティチェックが３回パスした場合に、ブロック復号部１２１−４，１２１−５の処理を開始させ、５回パスした場合に、ブロック復号部１２１−１，１２１−８の処理を停止させる場合を例に説明した。しかしながら、これに限定されない。制御部１２４は、ブロック復号部の処理を停止させるのではなく、ブロック復号部が処理するブロックを切り替えるようにしてもよい。
【００５６】
例えば、図１２において、ステップＳ１２５〜ステップＳ１２７を実施しない場合、すなわち、ブロック復号部１２１−１，１２１−８によるブロック毎のパリティチェックが３回パスした場合に、ブロック復号部１２１−４，１２１−５の処理を開始させ、かつ、ブロック復号部１２１−１，１２１−８の処理を停止させる場合を想定する。このような場合、ブロック復号部１２１−４，１２１−５が処理するはずのブロックを、代わりにブロック復号部１２１−１，１２１−８が処理するようにする。こうすることで、ブロック復号部１２１−４，１２１−５は不要となり、回路規模を削減することが可能となる。
【００５７】
また、変形例１では、ブロック毎のパリティチェックの結果を、処理をスキップする際の判断基準として利用する場合を例に説明した。しかしながら、これに限定されない。処理をスキップする際の判断基準には、他の指標を用いてもよい。例えば、この指標として、ＬＬＲの値の大きさを用いてもよい。
【００５８】
（変形例２）  
上記実施形態では、ブロック復号部１２１−１〜１２１−ｎが、奇数ブロックにより包含される行列を用いた処理を並列して実行し、その後、偶数ブロックにより包含される行列を用いた処理を並列して実行する、２つの時間単位での処理を例に説明した。しかしながら、ブロック復号部１２１−１〜１２１−ｎによる処理は、これに限定されない。ブロック復号部１２１−１〜１２１−ｎは、３以上の時間単位で、所定ブロックでの処理を実行してもよい。
【００５９】
例として、ブロック復号部１２１−１〜１２１−４が、図５に示されるように設定されるブロック＜１＞〜＜１２＞に包含される行列を用いてＬＬＲを更新する場合を説明する。
【００６０】
まず、３つの時間単位でブロック＜１＞〜＜１２＞での処理を実行する場合を説明する。ブロック復号部１２１−１〜１２１−４は、ブロック＜１＞，＜４＞，＜７＞，＜１０＞により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部１２１−１〜１２１−４は、ブロック＜２＞，＜５＞，＜８＞，＜１１＞により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部１２１−１〜１２１−４は、ブロック＜３＞，＜６＞，＜９＞，＜１２＞により包含される行列を用いた処理をそれぞれ並列して実行する。
【００６１】
次に、４つの時間単位でブロック＜１＞〜＜１２＞での処理を実行する場合を説明する。ブロック復号部１２１−１〜１２１−３は、ブロック＜１＞，＜５＞，＜９＞により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部１２１−１〜１２１−３は、ブロック＜２＞，＜６＞，＜１０＞により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部１２１−１〜１２１−３は、ブロック＜３＞，＜７＞，＜１１＞により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部１２１−１〜１２１−３は、ブロック＜４＞，＜８＞，＜１２＞により包含される行列を用いた処理をそれぞれ並列して実行する。
【００６２】
以上のように、３以上の時間単位で処理を実行する場合、１グローバルイタレーションにかかる時間は長くなるが、復号器１２の回路規模を抑えることが可能となる。
【００６３】
（変形例３）  
上記実施形態では、パリティ検査行列に２種類の素行列が存在する場合を例に説明したが、パリティ検査行列に存在する素行列の種類は２種類に限定されない。例えば、パリティ検査行列に存在する素行列の種類は３種類以上であっても構わない。例として、パリティ検査行列に５種類の素行列が含まれる場合を示す。
【００６４】
図１４乃至図１７は、パリティ検査行列に５種類の素行列が含まれる場合に設定されるブロックを模式的に示す図である。
【００６５】
図１４においては、例えば、更新されるＬＬＲの場所が重複しないブロック＜１＞，＜６＞，＜１１＞，＜１６＞についての処理が並列して実行され、ブロック＜２＞，＜７＞，＜１２＞，＜１７＞についての処理が並列して実行され、ブロック＜３＞，＜８＞，＜１３＞，＜１８＞についての処理が並列して実行され、ブロック＜４＞，＜９＞，＜１４＞についての処理が並列して実行され、ブロック＜５＞，＜１０＞，＜１５＞についての処理が並列して実行される。
【００６６】
図１５においては、例えば、更新されるＬＬＲの場所が重複しないブロック＜１＞，＜５＞，＜９＞，＜１３＞についての処理が並列して実行され、ブロック＜２＞，＜６＞，＜１０＞，＜１４＞についての処理が並列して実行され、ブロック＜３＞，＜７＞，＜１１＞についての処理が並列して実行され、ブロック＜４＞，＜８＞，＜１２＞についての処理が並列して実行される。
【００６７】
図１６においては、例えば、更新されるＬＬＲの場所が重複しないブロック＜１＞，＜４＞，＜７＞，＜１０＞についての処理が並列して実行され、ブロック＜２＞，＜５＞，＜８＞についての処理が並列して実行され、ブロック＜３＞，＜６＞，＜９＞についての処理が並列して実行される。
【００６８】
図１７においては、例えば、更新されるＬＬＲの場所が重複しないブロック＜１＞，＜３＞，＜５＞についての処理が並列して実行され、ブロック＜２＞，＜４＞についての処理が並列して実行される。
【００６９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７０】
１０…復号装置、１１…復調器、１２…復号器、１２１−１〜１２１−ｎ…ブロック復号部、１２２…パリティチェック部、１２３…出力部、１２４…制御部、２０…符号化装置、２１…符号化器、２２…変調器。
【図１】
0006629114.tif 000002
【図２】
0006629114.tif 000003
【図３】
0006629114.tif 000004
【図４】
0006629114.tif 000005
【図５】
0006629114.tif 000006
【図６】
0006629114.tif 000007
【図７】
0006629114.tif 000008
【図８】
0006629114.tif 000009
【図９】
0006629114.tif 000010
【図１０】
0006629114.tif 000011
【図１１】
0006629114.tif 000012
【図１２】
0006629114.tif 000013
【図１３】
0006629114.tif 000014
【図１４】
0006629114.tif 000015
【図１５】
0006629114.tif 000016
【図１６】
0006629114.tif 000017
【図１７】
0006629114.tif 000018