JP2017175457A - 復号装置、復号プログラム、及び半導体チップ - Google Patents

復号装置、復号プログラム、及び半導体チップ Download PDF

Info

Publication number
JP2017175457A
JP2017175457A JP2016060792A JP2016060792A JP2017175457A JP 2017175457 A JP2017175457 A JP 2017175457A JP 2016060792 A JP2016060792 A JP 2016060792A JP 2016060792 A JP2016060792 A JP 2016060792A JP 2017175457 A JP2017175457 A JP 2017175457A
Authority
JP
Japan
Prior art keywords
block
processing
decoding
parity check
matrix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016060792A
Other languages
English (en)
Other versions
JP6629114B2 (ja
Inventor
慎悟 朝倉
Shingo Asakura
慎悟 朝倉
拓也 蔀
Takuya Shitomi
拓也 蔀
進 齋藤
Susumu Saito
進 齋藤
善一 成清
Zenichi Narisei
善一 成清
宏明 宮坂
Hiroaki Miyasaka
宏明 宮坂
佐藤 明彦
Akihiko Sato
明彦 佐藤
知明 竹内
Tomoaki Takeuchi
知明 竹内
円香 本田
Madoka Honda
円香 本田
研一 村山
Kenichi Murayama
研一 村山
正寛 岡野
Masahiro Okano
正寛 岡野
健一 土田
Kenichi Tsuchida
健一 土田
澁谷 一彦
Kazuhiko Shibuya
一彦 澁谷
逸平 清水
Ippei Shimizu
逸平 清水
棚橋 誠
Makoto Tanahashi
誠 棚橋
多賀 昇
Noboru Taga
昇 多賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Japan Broadcasting Corp
NHK Engineering System Inc
Original Assignee
Toshiba Corp
Nippon Hoso Kyokai NHK
NHK Engineering System Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Nippon Hoso Kyokai NHK, NHK Engineering System Inc filed Critical Toshiba Corp
Priority to JP2016060792A priority Critical patent/JP6629114B2/ja
Publication of JP2017175457A publication Critical patent/JP2017175457A/ja
Application granted granted Critical
Publication of JP6629114B2 publication Critical patent/JP6629114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)

Abstract


【課題】 空間結合LDPC符号により符号化されたデータを高速、かつ高精度に復号することが可能な復号装置を提供する。
【解決手段】 復号装置は、空間結合LDPC符号に基づく復号処理を実行する。復号装置は、前記空間結合LDPC符号のパリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備する。
【選択図】図8

Description

本発明の実施形態は、空間結合LDPC(Low Density Parity Check Code)符号により符号化されたデータを復号する復号装置、この復号装置で実行される復号プログラム、及びこの復号装置に搭載される半導体チップに関する。
日本の地上デジタル放送方式であるISDB−T(Integrated Services Digital Broadcasting−Terrestrial)は、固定受信向けにハイビジョン(登録商標)放送(又は複数標準画質放送)を実現している。次世代の地上デジタル放送方式では、従来のハイビジョンに代わり、3Dハイビジョン放送又はハイビジョンの16倍の解像度を持つスーパーハイビジョン等により、さらに情報量の多いサービスを提供することが求められている。そこで、データ容量の拡大、及び誤り訂正技術により、所要C/N(搬送波対雑音:Carrier to Noise)を低減することが課題となっている。
近年、LDPC符号が、シャノン限界に迫る高性能の誤り訂正符号として多くの伝送システムに採用されている。LDPC符号は、パリティ検査行列によって定義される。通常、復号に要する計算量はパリティ検査行列の規模に比例するが、パリティ検査行列が特殊な構造を持つ場合、その構造を活用することで効率の良い復号が可能となる。
特殊な構造を有するLDPC符号として、空間結合LDPC(SC-LDPC: spatially-coupled LDPC)符号が知られている。空間結合LDPC符号のパリティ検査行列は、素行列と称される小さい単位の検査行列を対角線上に配置することで構成される。空間結合LDPC符号により符号化されたデータを復号するアルゴリズムとして、スライディングウィンドウ方式の復号アルゴリズムが提案されている。
スライディングウィンドウ方式では、隣接する素行列のまとまりをカバーするように長方形の窓が設定され、設定された窓の中で信頼度更新アルゴリズム(Belief Propagation: BP法)が実行される。検査行列に含まれる情報ビット部に設定された窓と、パリティビット部に設定された窓とは同期して動くものとする。復号装置は、情報ビット部、及びパリティビット部に設定された窓を、部分的に重ねながら、左上から右下へ順に進めていくことで、データの復号を進行させる。
従来の復号装置では、窓を部分的に重ねながら左上から右下へ進行するため、窓毎に実施される処理を並列して実行することができない。そのため、処理が完了するまでに長い時間を要する。さらに、処理時間の長さは復号反復回数の制限につながり、BER(Bit Error Rate)特性にも影響を及ぼす。
特開2015−088976号公報 特開2013−198017号公報
そこで、目的は、空間結合LDPC符号により符号化されたデータを高速、かつ高精度に復号することが可能な復号装置、この復号装置で実行される復号プログラム、及びこの復号装置に搭載される半導体チップを提供することにある。
実施形態によれば、復号装置は、空間結合LDPC符号に基づく復号処理を実行する。復号装置は、前記空間結合LDPC符号のパリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備する。
図1は、本実施形態に係る復号装置の機能構成を示すブロック図である。 図2は、本実施形態に係る符号化装置の機能構成を示すブロック図である。 図3は、図1に示される復号器の機能構成を示すブロック図である。 図4は、本実施形態に係る空間結合LDPC符号のパリティ検査行列を示す図である。 図5は、空間結合LDPC符号のパリティ検査行列に設定されるブロックを表す図である。 図6は、図3に示されるブロック復号部が処理を実行する際の動作を説明するフローチャートである。 図7は、図3に示されるパリティチェック部、及び出力部が復号結果を出力する際の動作を説明するフローチャートである。 図8は、図1に示される復号器が復号結果を出力する際の動作を説明するタイムチャートである。 図9は、従来のスライディングウィンドウ法で設定される窓を表す図である。 図10は、従来のスライディングウィンドウ法による処理を説明するタイムチャートである。 図11は、図1に示される復号器により更新されるLLRの計算結果を表す図である。 図12は、図3に示されるブロック復号部が処理を停止させながらLLRを更新する際の動作を説明するフローチャートである。 図13は、図1に示される復号器が、ブロック復号部のうちいずれかの処理を停止させながら復号結果を出力する際の動作を説明するタイムチャートである。 図14は、パリティ検査行列に5種類の素行列が含まれる場合に設定されるブロックの例を示す図である。 図15は、パリティ検査行列に5種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。 図16は、パリティ検査行列に5種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。 図17は、パリティ検査行列に5種類の素行列が含まれる場合に設定されるブロックのその他の例を示す図である。
以下、実施の形態について、図面を参照して説明する。
図1は、本実施形態に係る復号装置10の機能構成の例を示すブロック図である。図1に示される復号装置10は、誤り訂正復号が必要とされる種々の機器に組み込まれてよい。具体的には、復号装置10は、例えば受信機、送受信機、及び中継機等の通信系に組み込まれてもよいし、例えば記憶装置等の記録再生系に組み込まれてもよい。図1に示される復号装置10は、復調器11、及び復号器12を具備する。
復号装置10が組み込まれる、例えば、受信機は、図2に示される符号化装置20が組み込まれる、例えば、送信機から送信される送信信号を受信する。
図2に示される符号化装置20は、符号化器21、及び変調器22を具備する。符号化器21は、送信対象となる情報ビットを入力する。符号化器21は、入力される情報ビットに対し、空間結合LDPC符号による符号化処理を施す。符号化器21は、情報ビットに、パリティビットを付与したデータを変調器22へ出力する。
変調器22は、符号化器21から出力されるデータをQAM(Quadrature Amplitude Modulation)コンスタレーションにマッピングし、複素信号として出力する。複素信号は、例えば、周波数変換処理、及び増幅処理等を経て、送信機に設けられるアンテナから送信される。
図1に示される復号装置10に設けられる復調器11は、例えば、CPU(Central Processing Unit)、CPUが処理を実行する際に用いるメモリ、及び、CPUからの制御に従って所定の処理を実行するFPGA(Field Programmable Gate Array)等を備える。
復調器11は、受信信号が、例えば、周波数変換処理、及び直交復調処理等されたビット列を入力する。復調器11は、送信側において施された変調方式に対応する復調方式に従って入力されるビット列を復調し、復調データを取得する。本実施形態において、復調データは、入力されるビット列を構成するビット毎のLLR(log likelihood ratio)である。LLRは、ビットが0である可能性と、1である可能性とを数値化した信頼度情報である。LLRは、正に大きいほど0である可能性が高く、負に大きいほど1である可能性が高いことを表す。また、LLR=0は、ビットが0である可能性と1である可能性とが五分五分であることを意味する。復調器11は、算出したLLRを復号器12へ出力する。
復号器12は、BP(Belief Propagation)法を利用した復号処理を実行する。すなわち、復号器12は、復調器11から出力されるLLRを初期信頼度情報とし、パリティ検査行列に従ってLLRを更新していくことで、尤もらしい符号語を推定する。復号器12は、推定した符号語の情報ビット部を復号結果として出力する。
復号器12は、例えば、CPU、CPUが処理を実行する際に用いるメモリ、及び、CPUからの制御に従って所定の処理を実行するFPGA等を備える。復号器12は、CPUがFPGAに所定の処理を実行させることで、図3に示されるブロック復号部121−1〜121−n、パリティチェック部122、出力部123、及び制御部124の機能を実現する。nは並列して動作するブロック復号部の数を表し、復号器12に搭載可能な回路規模、及び復号器12に要求される処理速度に応じ、予め設定される。なお、復号器12の各機能は、独立したFPGAにより実現されてもよいし、複数のFPGAにより実現されても構わない。また、復号器12は、FPGAの代わりにLSI(Large-Scale Integration)等の半導体チップにより機能を実現しても構わない。また、復号器12は、ソフトウェアにより所定の復号プログラムを実行することで機能を実現しても構わない。
復号器12の機能を説明する前に、本実施形態に係るパリティ検査行列について説明する。図4は、本実施形態に係る空間結合LDPC符号のパリティ検査行列Hの例を示す模式図である。図4に示されるパリティ検査行列Hは、LDGM(Low-Density Generator Matrix)構造を有し、情報ビット部Hとパリティビット部Hとで構成される。
情報ビット部Hは、符号長a、パリティ長mの素行列(以下、基本素行列という。)Hに基づいて生成される。ここで、k=a−mとする。情報ビット部Hは、N種類(N:2以上の自然数)のm行k列の素行列を列方向に結合させたN・m行k列の素行列L個をm行k列ずつずらして結合させた、(L+N−1)m行、L・k列の行列である。N種類の素行列は、m行k列の基本素行列Hの各要素をN個のいずれかの行列に振り分けることにより生成される。なお、図4では、N=2の場合を示しており、2種類の素行列をH,Hと表す。基本素行列Hは、m行M列の行列毎に周期的構造を有し、各m行M列の行列では1列目に1が疎に配置され、2列目以降は1列目の1をq行分サイクリックにシフトさせた位置に1が配置される。Mはm/qとする。
パリティビット部Hは、2重対角行列である。2重対角行列とは、対角の要素とこの対角の真下の要素とを1とし、残り全ての要素を0とする行列である。パリティビット部Hのサイズは、(L+N−1)m行、(L+N−1)m列である。なお、図4では、N=2の場合を示している。
図3に示されるブロック復号部121−1〜121−nは、予め設定される大きさのブロックに包含される局所的なパリティ検査行列を用いてLLRを更新する処理を並列して実行する。ブロックは、パリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるLLRの場所が重複しないように設定される。なお、本実施形態に係るブロックは、従来のスライディングウィンドウ法で用いられる窓と同様の概念に基づくが、スライディングウィンドウ法で用いられる窓との差異を明確にするため、ブロックと称する。
図5は、空間結合LDPC符号のパリティ検査行列に設定されるブロックの例を表す模式図である。図5では、パリティ検査行列に2種類の素行列が存在する場合を例に示す。図5において太枠は、BP法を利用した復号処理を実行するブロックを表す。ブロック<1>が素行列HU_0を包含し、ブロック<2>が素行列HL_0,HU_1を包含し、ブロック<3>が素行列HL_1,HU_2を包含し、…、ブロック<L>が素行列HL_L−2,HU_L−1を包含し、ブロック<L+1>が素行列HL_L−1を包含するようにしている。
図5において、ブロック復号部121−1〜121−nは、ブロック<1>,<2>,…,<L+1>のうち、更新されるLLRの場所が重複しないブロックに含まれる行列を用いた処理を、並列して実行する。具体的には、ブロック復号部121−1〜121−nは、例えば、奇数ブロックにより包含される行列を用いた処理を並列して実行し、その後、偶数ブロックにより包含される行列を用いた処理を並列して実行する。ブロック復号部121−1〜121−nが処理を実行することにより、ブロックの幅に該当するLLRが更新される。
ブロック<1>〜ブロック<L+1>に包含される全ての行列を用いてLLRを更新する処理が実行されることを1グローバルイタレーションと称する。ブロック復号部121−1〜121−nは、1グローバルイタレーションが終了すると、次のグローバルイタレーションにおける処理を実行する。ブロック復号部121−1〜121−nは、パリティチェック部122の検査結果に応じて処理を停止する。
パリティチェック部122は、1グローバルイタレーションが終了すると、ブロック復号部121−1〜121−nにより更新されたLLRが、パリティ検査行列の行毎に定義されるパリティチェック式を満たすか否かを検査する。パリティチェック部122は、検査結果を制御部124へ通知する。
出力部123は、パリティチェック部122においてパリティチェック式を満たすと判定されたLLRを硬判定する。出力部123は、硬判定の結果得られる0・1のビットを復号結果として出力する。
制御部124は、復号器12の動作を制御する。例えば、パリティチェック部122から、LLRがパリティ検査行列の行毎に定義されるパリティチェック式を満たす旨の検査結果を通知された場合、制御部124は、ブロック復号部121−1〜121−nにLLRの更新処理を停止させる。また、パリティチェック部122から、LLRがパリティ検査行列の行毎に定義されるパリティチェック式を満たす旨の検査結果を通知された場合、制御部124は、出力部123にLLRの硬判定を開始させる。
次に、上記のように構成される復号器12の動作を説明する。図6は、ブロック復号部121−1〜121−nが処理を実行する際の動作を説明するフローチャートである。図7は、パリティチェック部122、及び出力部123が復号結果を出力する際の動作を説明するフローチャートである。また、図8は、復号器12が復号結果を出力する際の動作を説明するタイムチャートである。図6乃至図8の説明において、ブロックは、図5に示されるように設定されるものとする。なお、図5では、Lが奇数である場合を例に示している。つまり、n=(L+1)/2である。また、図6乃至図8の説明において、ブロック復号部121−1〜121−nは、奇数ブロックにより包含される行列を用いた処理を並列して実行した後、偶数ブロックにより包含される行列を用いた処理を並列して実行するものとする。
まず、図6において、ブロック復号部121−1,121−2,…,121−((L+1)/2)は、ブロック<1>により包含される行列を用いた処理、ブロック<3>により包含される行列を用いた処理、…、及びブロック<L>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS61)。これにより、図8の1グローバルイタレーションにおける奇数ブロックの処理が実行され、ブロック<1>,<3>,…,<L>の幅に該当するLLRが更新される。
続いて、ブロック復号部121−1,121−2,…,121−((L+1)/2)は、ブロック<2>により包含される行列を用いた処理、ブロック<4>により包含される行列を用いた処理、…、及びブロック<L+1>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS62)。これにより、図8の1グローバルイタレーションにおける偶数ブロックの処理が実行され、ブロック<2>,<4>,…,<L+1>の幅に該当するLLRが更新される。
ブロック復号部121−1〜121−nは、1グローバルイタレーションが終了すると、次のグローバルイタレーションにおける処理を実施する。ブロック復号部121−1〜121−nは、制御部124からの停止指示が与えられると、処理を停止する。
なお、図5では、Lが奇数である場合を説明しているが、Lは偶数であってもよい。Lが偶数である場合、n=L/2+1である。まず、ブロック復号部121−1,121−2,…,121−(L/2+1)は、ブロック<1>により包含される行列を用いた処理、ブロック<3>により包含される行列を用いた処理、…、及びブロック<L+1>により包含される行列を用いた処理をそれぞれ並列して実行する。これにより、ブロック<1>,<3>,…,<L+1>の幅に該当するLLRが更新される。その後に、ブロック復号部121−1,121−2,…,121−(L/2)は、ブロック<2>により包含される行列を用いた処理、ブロック<4>により包含される行列を用いた処理、…、及びブロック<L>により包含される行列を用いた処理をそれぞれ並列して実行する。これにより、ブロック<2>,<4>,…,<L>の幅に該当するLLRが更新される。
図7において、パリティチェック部122は、1グローバルイタレーションが終了した際のLLRを取得する(ステップS71)。パリティチェック部122は、取得したLLRがパリティ検査行列の行毎に定義されるパリティチェック式を満たすか否かを検査する(ステップS72)。満たす場合(ステップS72のYes)、制御部124は、ブロック復号部121−1〜121−nへ停止指示を与える。また、制御部124は、出力部123にLLRの硬判定を開始させる(ステップS73)。満たさない場合(ステップS72のNo)、制御部124は、処理をステップS71へ移行する。
出力部123は、制御部124からの指示に応じてLLRの硬判定を開始し、硬判定の結果得られる0・1のビットを復号結果として出力する(ステップS74)。
以上のように、本実施形態では、ブロックが、パリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した際に更新されるLLRの場所が重複しないように設定される。そして、ブロック復号部121−1〜121−nは、設定されたブロックに包含されるパリティ検査行列を用い、並列してLLRを更新するようにしている。
ところで、従来のスライディングウィンドウ法では、図9で示されるように、窓は、パリティ検査行列における複数の素行列を包含し、かつ、窓同士が重複するように設定される。そして、まず、窓<1>内のパリティ検査行列で、窓<1>の幅に該当するLLRがBP法によって更新される。その後、窓<2>内のパリティ検査行列で、窓<2>の幅に該当するLLRが更新される。ここで、窓<1>と窓<2>とは一部が重なっているため、更新されるLLRが重複する。そのため、窓<2>により包含される行列を用いた更新処理は、窓<1>により包含される行列を用いた更新処理が終了するのを待って開始する必要がある。そのため、パリティ検査行列における結合数がLである場合、復号処理は、図10に示されるように、スライディングウィンドウをL回繰り返すシーケンシャルな処理となる。このため、1グローバルイタレーションが完了するまでに長い時間を要することとなる。また、パリティ検査行列における結合数に比例して処理時間が増大する。また、処理時間の長さは復号反復回数の制限につながり、BER(Bit Error Rate)特性にも影響を及ぼすこととなる。
本実施形態によれば、所定のブロック内において同時動作でLLRを更新することが可能であるため、1グローバルイタレーションにかかる時間を短縮することが可能となる。また、1グローバルイタレーションが完了するまでにかかる時間が短縮されるため、復号精度を向上させるためにグローバルイタレーションを複数回繰り返しても処理時間の増大を抑えられる。
したがって、本実施形態に係る復号装置10によれば、空間結合LDPC符号により符号化されたデータを高速、かつ高精度に復号することができる。また、1グローバルイタレーションにかかる処理時間が、空間結合LDPC符号のパリティ検査行列における結合数に関わらず一定となる。
(変形例1)
上記実施形態では、ブロック復号部121−1〜121−nが、所定のブロックに含まれる行列を用い、間欠無くLLRを更新する場合を例に説明した。しかしながら、これに限定されない。復号処理の程度によっては、ブロック復号部121−1〜121−nのいずれかが、処理を実行しないようにしても構わない。
空間結合LDPC符号のパリティ検査行列は両上下端の行重みが小さいため、両端の列のビットの復号結果の信頼度は中央の列に比べて高い。図11は、本実施形態に係る復号器12により更新されるLLRの計算結果を表す図である。図11では、C/N(Carrier to Noise)=0.7dBであり、15グローバルイタレーション経過した際に算出されるLLRが示される。図11に示されるように、両端のLLRは、中央のLLRよりも大きい。また、空間結合LDPC符号に基づく復号処理は、両端のLLR(すなわち信頼度)が先に大きくなり、その良質な信頼度が中央に伝搬していくことで、中央も次第に信頼度が高くなっていくという特徴がある。このため、復号処理の初期においては、中央に位置するブロックの処理がLLRに与える効果は薄い。つまり、復号処理の初期においては、中央に位置するブロックの処理をスキップしても性能劣化は僅かである。そこで、ブロック復号部121−1〜121−nのうち、中央に位置するブロックに包含される行列を用いてLLRを更新するブロック復号部は、所定の条件を満たした後から、処理を実行するようにしてもよい。
具体的には、例えば、ブロック復号部121−1〜121−nに、ブロック毎のパリティチェックを実施する機能を持たせる。ブロック毎のパリティチェックとは、ブロックに含まれる行列を用いて更新したLLRが、パリティ検査行列のうち、ブロックに含まれる行列により定義されるパリティチェック式を満たすか否かを検査する処理である。復号処理の初期において、ブロック復号部121−1〜121−nのうち、中央N個のブロック復号部の処理を停止させる。制御部124は、両端N個のブロック復号部から、ブロック毎のパリティチェックの結果を受信する。制御部124は、N個のブロック復号部によるブロック毎のパリティチェックがN回パスした場合、N個のブロック復号部の処理を開始する。
また、ある程度グローバルイタレーションを繰り返した後は、両端のLLRは十分大きい。そこで、ブロック復号部121−1〜121−nのうち、両端に位置するブロックに包含される行列を用いてLLRを更新するブロック復号部は、所定の条件を満たした後から、処理を停止するようにしてもよい。
具体的には、例えば、制御部124は、両端N個のブロック復号部から、ブロック毎のパリティチェックの結果を受信する。制御部124は、N個のブロック復号部によるブロック毎のパリティチェックがN回パスした場合、N個のブロック復号部の処理を停止する。なお、個数N,Nは、例えば2個であり、回数Nは、例えば3回、又は5回である。
次に、上記の動作を、ブロック復号部121−1〜121−8が実施する場合を例に詳細に説明する。このとき、ブロック復号部121−1〜121−8は、図5に示されように設定されるブロック<1>〜<16>に包含される行列を用いてLLRを更新するものとする。図12は、ブロック復号部121−1〜121−8が処理を停止させながらLLRを更新する際の動作を説明するフローチャートである。また、図13は、復号器12が、ブロック復号部121−1〜121−8のうちいずれかの処理を停止させながら復号結果を出力する際の動作を説明するタイムチャートである。図12及び図13の説明において、ブロック復号部121−4,121−5が中央2(N)個のブロック復号部であり、ブロック復号部121−1,121−8が両端2(N)個のブロック復号部であるとする。
まず、図12において、ブロック復号部121−1〜121−3,121−6〜121−8は、ブロック<1>により包含される行列を用いた処理、ブロック<3>により包含される行列を用いた処理、ブロック<5>により包含される行列を用いた処理、ブロック<11>により包含される行列を用いた処理、ブロック<13>により包含される行列を用いた処理、及びブロック<15>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS121)。このとき、ブロック復号部121−4,121−5により実行されるブロック<7>,<9>の処理がスキップされる。これにより、図13の第1グローバルイタレーションにおける奇数ブロックの処理が実行される。
続いて、ブロック復号部121−1〜121−3,121−6〜121−8は、ブロック<2>により包含される行列を用いた処理、ブロック<4>により包含される行列を用いた処理、ブロック<6>により包含される行列を用いた処理、ブロック<12>により包含される行列を用いた処理、ブロック<14>により包含される行列を用いた処理、及びブロック<16>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS122)。このとき、ブロック復号部121−4,121−5により実行されるブロック<8>,<10>の処理がスキップされる。これにより、図13の第1グローバルイタレーションにおける偶数ブロックの処理が実行される。
制御部124は、ブロック復号部121−1,121−8によるブロック毎のパリティチェックの結果を受信し、パリティチェックが3(N)回パスしたか否かを判断する(ステップS123)。パスした回数が2回以下である場合(ステップS123のNo)、制御部124は、ブロック復号部121−1〜121−3,121−6〜121−8にステップS121,ステップS122の処理を継続させる。パスした回数が3回となった場合(ステップS123のYes)、制御部124は、ブロック復号部121−4,121−5の処理を開始させる(ステップS124)。
ブロック復号部121−1〜121−8は、ブロック<1>により包含される行列を用いた処理、ブロック<3>により包含される行列を用いた処理、ブロック<5>により包含される行列を用いた処理、ブロック<7>により包含される行列を用いた処理、ブロック<9>により包含される行列を用いた処理、ブロック<11>により包含される行列を用いた処理、ブロック<13>により包含される行列を用いた処理、及びブロック<15>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS125)。これにより、図13の第Nグローバルイタレーションにおける奇数ブロックの処理が実行される。
続いて、ブロック復号部121−1〜121−8は、ブロック<2>により包含される行列を用いた処理、ブロック<4>により包含される行列を用いた処理、ブロック<6>により包含される行列を用いた処理、ブロック<8>により包含される行列を用いた処理、ブロック<10>により包含される行列を用いた処理、ブロック<12>により包含される行列を用いた処理、ブロック<14>により包含される行列を用いた処理、及びブロック<16>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS126)。これにより、図13の第Nグローバルイタレーションにおける偶数ブロックの処理が実行される。
制御部124は、ブロック復号部121−1,121−8によるブロック毎のパリティチェックの結果を受信し、パリティチェックが5(N)回パスしたか否かを判断する(ステップS127)。パスした回数が4回以下である場合(ステップS127のNo)、制御部124は、ブロック復号部121−1〜121−8にステップS125,ステップS126の処理を継続させる。パスした回数が5回となった場合(ステップS127のYes)、制御部124は、ブロック復号部121−1,121−8の処理を停止させる(ステップS128)。
ブロック復号部121−2〜121−7は、ブロック<3>により包含される行列を用いた処理、ブロック<5>により包含される行列を用いた処理、ブロック<7>により包含される行列を用いた処理、ブロック<9>により包含される行列を用いた処理、ブロック<11>により包含される行列を用いた処理、及びブロック<13>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS129)。このとき、ブロック復号部121−1,121−8により実行されるブロック<1>,<15>の処理がスキップされる。これにより、図13の第Nグローバルイタレーションにおける奇数ブロックの処理が実行される。
続いて、ブロック復号部121−2〜121−7は、ブロック<4>により包含される行列を用いた処理、ブロック<6>により包含される行列を用いた処理、ブロック<8>により包含される行列を用いた処理、ブロック<10>により包含される行列を用いた処理、ブロック<12>により包含される行列を用いた処理、及びブロック<14>により包含される行列を用いた処理をそれぞれ並列して実行する(ステップS1210)。このとき、ブロック復号部121−1,121−8により実行されるブロック<2>,<16>の処理がスキップされる。これにより、図13の第Nグローバルイタレーションにおける偶数ブロックの処理が実行される。
ブロック復号部121−2〜121−7は、制御部124からの停止指示が与えられるまで、ステップS129,ステップS1210の処理を繰り返す。
以上のように、変形例1では、復号器12は、ブロック復号部による処理を選択的に停止させるようにしている。これにより、復号器12での消費電力を抑えることが可能となる。
なお、図12の説明では、制御部124が、ブロック復号部121−1,121−8によるブロック毎のパリティチェックが3回パスした場合に、ブロック復号部121−4,121−5の処理を開始させ、5回パスした場合に、ブロック復号部121−1,121−8の処理を停止させる場合を例に説明した。しかしながら、これに限定されない。制御部124は、ブロック復号部の処理を停止させるのではなく、ブロック復号部が処理するブロックを切り替えるようにしてもよい。
例えば、図12において、ステップS125〜ステップS127を実施しない場合、すなわち、ブロック復号部121−1,121−8によるブロック毎のパリティチェックが3回パスした場合に、ブロック復号部121−4,121−5の処理を開始させ、かつ、ブロック復号部121−1,121−8の処理を停止させる場合を想定する。このような場合、ブロック復号部121−4,121−5が処理するはずのブロックを、代わりにブロック復号部121−1,121−8が処理するようにする。こうすることで、ブロック復号部121−4,121−5は不要となり、回路規模を削減することが可能となる。
また、変形例1では、ブロック毎のパリティチェックの結果を、処理をスキップする際の判断基準として利用する場合を例に説明した。しかしながら、これに限定されない。処理をスキップする際の判断基準には、他の指標を用いてもよい。例えば、この指標として、LLRの値の大きさを用いてもよい。
(変形例2)
上記実施形態では、ブロック復号部121−1〜121−nが、奇数ブロックにより包含される行列を用いた処理を並列して実行し、その後、偶数ブロックにより包含される行列を用いた処理を並列して実行する、2つの時間単位での処理を例に説明した。しかしながら、ブロック復号部121−1〜121−nによる処理は、これに限定されない。ブロック復号部121−1〜121−nは、3以上の時間単位で、所定ブロックでの処理を実行してもよい。
例として、ブロック復号部121−1〜121−4が、図5に示されるように設定されるブロック<1>〜<12>に包含される行列を用いてLLRを更新する場合を説明する。
まず、3つの時間単位でブロック<1>〜<12>での処理を実行する場合を説明する。ブロック復号部121−1〜121−4は、ブロック<1>,<4>,<7>,<10>により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部121−1〜121−4は、ブロック<2>,<5>,<8>,<11>により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部121−1〜121−4は、ブロック<3>,<6>,<9>,<12>により包含される行列を用いた処理をそれぞれ並列して実行する。
次に、4つの時間単位でブロック<1>〜<12>での処理を実行する場合を説明する。ブロック復号部121−1〜121−3は、ブロック<1>,<5>,<9>により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部121−1〜121−3は、ブロック<2>,<6>,<10>により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部121−1〜121−3は、ブロック<3>,<7>,<11>により包含される行列を用いた処理をそれぞれ並列して実行する。その後、ブロック復号部121−1〜121−3は、ブロック<4>,<8>,<12>により包含される行列を用いた処理をそれぞれ並列して実行する。
以上のように、3以上の時間単位で処理を実行する場合、1グローバルイタレーションにかかる時間は長くなるが、復号器12の回路規模を抑えることが可能となる。
(変形例3)
上記実施形態では、パリティ検査行列に2種類の素行列が存在する場合を例に説明したが、パリティ検査行列に存在する素行列の種類は2種類に限定されない。例えば、パリティ検査行列に存在する素行列の種類は3種類以上であっても構わない。例として、パリティ検査行列に5種類の素行列が含まれる場合を示す。
図14乃至図17は、パリティ検査行列に5種類の素行列が含まれる場合に設定されるブロックを模式的に示す図である。
図14においては、例えば、更新されるLLRの場所が重複しないブロック<1>,<6>,<11>,<16>についての処理が並列して実行され、ブロック<2>,<7>,<12>,<17>についての処理が並列して実行され、ブロック<3>,<8>,<13>,<18>についての処理が並列して実行され、ブロック<4>,<9>,<14>についての処理が並列して実行され、ブロック<5>,<10>,<15>についての処理が並列して実行される。
図15においては、例えば、更新されるLLRの場所が重複しないブロック<1>,<5>,<9>,<13>についての処理が並列して実行され、ブロック<2>,<6>,<10>,<14>についての処理が並列して実行され、ブロック<3>,<7>,<11>についての処理が並列して実行され、ブロック<4>,<8>,<12>についての処理が並列して実行される。
図16においては、例えば、更新されるLLRの場所が重複しないブロック<1>,<4>,<7>,<10>についての処理が並列して実行され、ブロック<2>,<5>,<8>についての処理が並列して実行され、ブロック<3>,<6>,<9>についての処理が並列して実行される。
図17においては、例えば、更新されるLLRの場所が重複しないブロック<1>,<3>,<5>についての処理が並列して実行され、ブロック<2>,<4>についての処理が並列して実行される。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10…復号装置、11…復調器、12…復号器、121−1〜121−n…ブロック復号部、122…パリティチェック部、123…出力部、124…制御部、20…符号化装置、21…符号化器、22…変調器。

Claims (14)

  1. 空間結合LDPC符号に基づく復号処理を実行する復号装置において、
    前記空間結合LDPC符号のパリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を並列して実行する復号器を具備する復号装置。
  2. 前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ後から処理を開始する請求項1記載の復号装置。
  3. 前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ以降、処理を停止する請求項1記載の復号装置。
  4. 前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第1の程度まで進んだ後から処理を開始し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第2の程度まで進んだ以降、処理を停止する請求項1記載の復号装置。
  5. 前記復号器は、前記ブロックに包含される行列を用いた更新処理をそれぞれ実行する複数のブロック復号部を有し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置する第1のブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ場合、第1のブロックについての処理を停止し、前記パリティ検査行列の中央近傍に位置する第2のブロックについての処理を開始する請求項1記載の復号装置。
  6. 空間結合LDPC符号に基づく復号処理を実行する復号装置で用いられる半導体チップにおいて、
    前記空間結合LDPC符号のパリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しないブロックを前記パリティ検査行列に設定し、前記ブロックに包含される行列を用いた更新処理を並列して実行する複数のブロック復号部を具備する半導体チップ。
  7. 前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ後から処理を開始する請求項6記載の半導体チップ。
  8. 前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ以降、処理を停止する請求項6記載の半導体チップ。
  9. 前記複数のブロック復号部のうち、前記パリティ検査行列の中央近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第1の程度まで進んだ後から処理を開始し、
    前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置するブロックについての処理を実行するブロック復号部は、前記復号処理が第2の程度まで進んだ以降、処理を停止する請求項6記載の半導体チップ。
  10. 前記複数のブロック復号部のうち、前記パリティ検査行列の両端近傍に位置する第1のブロックについての処理を実行するブロック復号部は、前記復号処理が所定の程度まで進んだ場合、第1のブロックについての処理を停止し、前記パリティ検査行列の中央近傍に位置する第2のブロックについての処理を開始する請求項6記載の半導体チップ。
  11. 空間結合LDPC符号に基づく復号処理を実行する復号装置のコンピュータで実行される復号プログラムにおいて、
    前記空間結合LDPC符号のパリティ検査行列における少なくとも1つの素行列を包含し、かつ、並列処理した後に更新されるデータが重複しない複数のブロックを前記パリティ検査行列に設定し、前記複数のブロックに包含される行列を用いた更新処理を前記コンピュータに並列して実行させる復号プログラム。
  12. 前記パリティ検査行列の中央近傍に位置するブロックについての更新処理を、前記復号処理が所定の程度まで進んだ後から開始する請求項11記載の復号プログラム。
  13. 前記パリティ検査行列の両端近傍に位置するブロックについての更新処理を、前記復号処理が所定の程度まで進んだ以降、停止する請求項11記載の復号プログラム。
  14. 前記パリティ検査行列の中央近傍に位置するブロックについての更新処理を、前記復号処理が第1の程度まで進んだ後から開始し、
    前記パリティ検査行列の両端近傍に位置するブロックについての更新処理を、前記復号処理が第2の程度まで進んだ以降、停止する請求項11記載の復号プログラム。
JP2016060792A 2016-03-24 2016-03-24 復号装置、復号プログラム、及び半導体チップ Active JP6629114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016060792A JP6629114B2 (ja) 2016-03-24 2016-03-24 復号装置、復号プログラム、及び半導体チップ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016060792A JP6629114B2 (ja) 2016-03-24 2016-03-24 復号装置、復号プログラム、及び半導体チップ

Publications (2)

Publication Number Publication Date
JP2017175457A true JP2017175457A (ja) 2017-09-28
JP6629114B2 JP6629114B2 (ja) 2020-01-15

Family

ID=59972227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016060792A Active JP6629114B2 (ja) 2016-03-24 2016-03-24 復号装置、復号プログラム、及び半導体チップ

Country Status (1)

Country Link
JP (1) JP6629114B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110277999A (zh) * 2018-03-16 2019-09-24 爱思开海力士有限公司 Ldpc解码装置、包括其的存储器系统及其方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110277999A (zh) * 2018-03-16 2019-09-24 爱思开海力士有限公司 Ldpc解码装置、包括其的存储器系统及其方法
CN110277999B (zh) * 2018-03-16 2023-03-14 爱思开海力士有限公司 Ldpc解码装置、包括其的存储器系统及其方法

Also Published As

Publication number Publication date
JP6629114B2 (ja) 2020-01-15

Similar Documents

Publication Publication Date Title
EP3659261B1 (en) Turbo product code based on polar codes
US10862621B2 (en) Irregular polar code encoding
Bae et al. An overview of channel coding for 5G NR cellular communications
JP5976960B2 (ja) 高並列性、低エラーフロア、および簡単な符号化原理を有するリフトされたldpc符号のための設計
RU2450442C2 (ru) Способ и устройство для кодирования и декодирования канала в системе связи с использованием кодов с низкой плотностью проверок на четность
JP2019536341A (ja) Ldpcコードを符号化および復号化するための方法および装置
US20110289375A1 (en) Method for constructing an ldpc code, transmitter, and receiver
US11463114B2 (en) Protograph quasi-cyclic polar codes and related low-density generator matrix family
EP3419179B1 (en) Hybrid architectures for check node processing of extended min-sum (ems) decoding of non-binary ldpc codes
JPWO2014122772A1 (ja) 送信機および受信機、並びに符号化率可変方法
CN108988869A (zh) 一种确定校验矩阵的方法及装置、计算机存储介质
EP2890016A1 (en) Ldpc encoder and decoder
EP2991231A1 (en) Multilevel encoding and multistage decoding
JP6629114B2 (ja) 復号装置、復号プログラム、及び半導体チップ
EP2911304A1 (en) Sliding window decoding of LDPC convolutional codes (LDPC-CC)
US9356734B2 (en) Transmitter, receiver, and signal processing method thereof
CN115296675B (zh) 用于ldpc码的解码的提前收敛
KR102547369B1 (ko) 수신 장치 및 그의 디코딩 방법
JP6553975B2 (ja) 符号化装置、復号装置、半導体チップ、及びプログラム
WO2018126914A1 (zh) 准循环低密度奇偶校验码的编码方法及装置、存储介质
EP3591845B1 (en) Sorting device and method for elementary check node processing for message-passing decoding of non-binary codes

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20160411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160411

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20171023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191204

R150 Certificate of patent or registration of utility model

Ref document number: 6629114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150