JP5320964B2 - サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム - Google Patents

サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム Download PDF

Info

Publication number
JP5320964B2
JP5320964B2 JP2008261504A JP2008261504A JP5320964B2 JP 5320964 B2 JP5320964 B2 JP 5320964B2 JP 2008261504 A JP2008261504 A JP 2008261504A JP 2008261504 A JP2008261504 A JP 2008261504A JP 5320964 B2 JP5320964 B2 JP 5320964B2
Authority
JP
Japan
Prior art keywords
data
output
shift
pieces
selector
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.)
Expired - Fee Related
Application number
JP2008261504A
Other languages
English (en)
Other versions
JP2010093541A (ja
Inventor
峰志 横川
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2008261504A priority Critical patent/JP5320964B2/ja
Priority to TW098130273A priority patent/TWI433470B/zh
Priority to PCT/JP2009/067529 priority patent/WO2010041700A1/ja
Priority to US13/119,352 priority patent/US8612835B2/en
Priority to RU2011112695/08A priority patent/RU2480905C2/ru
Priority to BRPI0920720A priority patent/BRPI0920720A2/pt
Priority to CN200980139184.7A priority patent/CN102171936B/zh
Priority to EP09819234.7A priority patent/EP2333961B1/en
Publication of JP2010093541A publication Critical patent/JP2010093541A/ja
Application granted granted Critical
Publication of JP5320964B2 publication Critical patent/JP5320964B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/762Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices

Description

本発明は、サイクリックシフト装置、サイクリックシフト方法、LDPC復号装置、テレビジョン受像機、及び、受信システムに関し、特に、装置の小型化を図ることができるようにするサイクリックシフト装置、サイクリックシフト方法、LDPC復号装置、テレビジョン受像機、及び、受信システムに関する。
複数のデータから構成されるパラレルデータをサイクリックにシフトするサイクリックシフト(ローテーション)を行うハードウェアであるサイクリックシフト装置としては、バレルシフタがある。
ここで、サイクリックシフトの対象となるパラレルデータを構成するデータを、入力データといい、バレルシフタが、パラレルデータを構成する複数の入力データをサイクリックシフトして出力するデータを、シフトデータという。
例えば、所定の整数であるM単位のサイクリックシフトを行うバレルシフタでは、M個の入力データ#1,2,・・・,#Mとしてのパラレルデータが、外部等から指定されたシフト量kだけサイクリックシフトされ、そのサイクリックシフトの結果として、M個のシフトデータ#1,2,・・・,#Mが出力される。
すなわち、いま、バレルシフタにおいて、入力データ#1,2,・・・,#Mの先頭の方向に、サイクリックシフトが行われるとすると、シフト量kのサイクリックシフトによれば、入力データ#k+1,・・・,#M,1,2,・・・,#kが、シフトデータ#1,2,・・・,#Mとして出力される。
以上のようなサイクリックシフトは、例えば、LDPC(Low Density Parity Check)符号の復号(例えば、特許文献1を参照)や、可変長復号等で必要となる。
また、入力データ#mが1ビットである場合、サイクリックシフトによれば、Mビットのデータを対象とした乗算その他のビット演算を行うことができる。
特開2004-343170号公報
上述したように、M個の入力データ#1ないし#Mのサイクリックシフトを行う場合には、M単位のサイクリックシフトを行うバレルシフタ(以下、M単位のバレルシフタともいう)が必要となる。
したがって、M個とは異なる値のN個の入力データ#1,2,・・・,#Nのサイクリックシフトを行う場合には、N単位のバレルシフタが必要となる。
以上のように、M個の入力データ#1ないし#Mのサイクリックシフト(以下、M単位のサイクリックシフトともいう)と、N個の入力データ#1ないし#Nのサイクリックシフトとを行う場合には、別個のバレルシフタが必要となる。したがって、M個の入力データ#1ないし#Mのサイクリックシフトと、N個の入力データ#1ないし#Nのサイクリックシフトとの両方を行うには、サイクリックシフト装置を、M単位のバレルシフタと、N単位のバレルシフタとで構成する必要があり、装置が大型化する。
本発明は、このような状況に鑑みてなされたものであり、装置の小型化を図ることができるようにするものである。
本発明の第1の側面のサイクリックシフト装置は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記バレルシフタが、M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記バレルシフタが、N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満の前記シフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれるサイクリックシフト装置である。
本発明の第1の側面のサイクリックシフト方法は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路が、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有するサイクリックシフト装置の前記バレルシフタが、M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、前記選択回路が、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記バレルシフタが、N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満の前記シフト量kだけサイクリックシフトするとき、前記選択回路が、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれるサイクリックシフト方法である。
以上のような第1の側面においては、前記選択回路が、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有する。前記バレルシフタが、M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、前記選択回路では、1番目の前記シフトデータが、1番目の前記出力データとして出力され、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータが、n番目の前記出力データとして選択されて出力される。さらに、N 1 +1ないしM番目の前記シフトデータが、N 1 +1ないしM番目の前記出力データとして出力される。また、前記バレルシフタが、N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満の前記シフト量kだけサイクリックシフトするとき、前記選択回路では、1番目の前記シフトデータが、1番目の前記出力データとして出力され、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータが、n番目の前記出力データとして選択されて出力され、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータが、n番目の前記出力データとして選択されて出力される。前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる。
本発明の第2の側面のLDPC復号装置は、LDPC(Low Density Parity Check)符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれるLDPC復号装置である。
本発明の第3の側面のテレビジョン受像機は、番組のデータを、少なくともLDPC(Low Density Parity Check)符号化することで得られるLDPC符号を含む送信データを取得する取得手段と、前記送信データに含まれるLDPC符号を復号するLDPC復号手段とを含み、前記LDPC復号手段は、前記LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれるテレビジョン受像機である。
本発明の第4の側面の受信システムは、伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、前記伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理を少なくとも含む情報源復号処理を施す情報源復号処理部とを含み、前記伝送路を介して取得した信号は、情報を圧縮する圧縮符号化と、前記伝送路で生じる誤りを訂正するための誤り訂正符号化とを、少なくとも行うことで得られた信号であり、前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、前記伝送路復号処理部は、LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる受信システムである。
本発明の第5の側面の受信システムは、伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、前記伝送路復号処理が施された信号に基づいて、画像又は音声を出力する出力部とを含み、前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、前記伝送路復号処理部は、LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる受信システムである。
本発明の第6の側面の受信システムは、伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、前記伝送路復号処理が施された信号を記録する記録部とを含み、前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、前記伝送路復号処理部は、LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる受信システムである。
本発明の第7の側面の受信システムは、伝送路を介して、信号を取得する取得手段と、前記伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部とを含み、前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、前記伝送路復号処理部は、LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段とを備え、前記サイクリックシフト手段は、M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路とを備え、2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき、1番目の前記シフトデータを、1番目の前記出力データとして出力し、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる受信システムである。
以上のような第2ないし7の側面においては、前記Qが、前記Mに等しく、前記演算手段が、前記M個の前記メッセージを出力し、前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするときには、1番目の前記シフトデータが、1番目の前記出力データとして出力され、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータが、n番目の前記出力データとして選択されて出力され、N 1 +1ないしM番目の前記シフトデータが、N 1 +1ないしM番目の前記出力データとして出力される。また、前記Qが、前記Mより小のN t に等しく、前記演算手段が、前記N t 個の前記メッセージを出力し、前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするときには、1番目の前記シフトデータが、1番目の前記出力データとして出力され、1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータが、n番目の前記出力データとして選択されて出力され、N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータが、n番目の前記出力データとして選択されて出力される。前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる。
本発明の第1ないし第7の側面によれば、装置の小型化を図ることができる。
図1は、本発明を適用したTV(テレビジョン受像機)の一実施の形態の構成例を示すブロック図である。
図1において、TVは、取得部11、復調部12、デマルチプレクサ13、デコーダ14、及び、表示部15等から構成される。
取得部11は、番組のデータを、少なくともLDPC(Low Density Parity Check)符号化することで得られるLDPC符号を含む送信データを取得し、復調部12に供給する。
すなわち、図示せぬ放送局や、webサーバにおいて、送信データが送信されるようになっており、取得部11は、その送信データを取得する。
ここで、送信データが、例えば、放送局から、地上波や、衛星波、CATV(Cable Television)網等を介して放送されてくる場合には、取得部11は、チューナやSTB(Set Top Box)等で構成される。また、送信データが、例えば、webサーバから、IPTV(Internet Protocol Television)のようにマルチキャストで送信されてくる場合には、取得部11は、例えば、NIC(Network Interface Card)等のネットワークI/F(Inter face)で構成される。
復調部12は、取得部11からの送信データに対して、復調等の必要な処理を施す。ここで、送信データには、上述したように、番組のデータを、少なくともLDPC符号化することで得られるLDPC符号が含まれるため、復調部12で行われる必要な処理には、LDPC符号を復号する処理が含まれる。
復調部12は、取得部11からの送信データに対して、復調等の必要な処理を施すことで、例えば、TS(Transport Stream)を得て、そのTSを、デマルチプレクサ13に供給する。
デマルチプレクサ13は、復調部12からのTSから、例えば、ユーザが選局した番組のデータとしての画像データや音声データが配置されたTSパケットを抽出し、デコーダ14に供給する。
デコーダ14は、デマルチプレクサ13からのTSパケットに配置された画像データや音声データを、例えば、MPEG(Moving Picture Experts Group)デコードする。デコーダ14でのMPEGデコードの結果得られる画像データは、表示部15に供給され、音声データは、図示せぬスピーカに供給されて、対応する音声が出力される。
表示部15は、例えば、液晶パネルや有機EL(Electro Luminescence)パネル等で構成され、デコーダ14からの画像データに対応する画像を表示する。
次に、図2を参照して、図1の復調部12で行われるLDPC符号の復号について説明する。
LDPC符号の復号(LDPC復号)は、Gallagerが確率復号(Probabilistic Decoding)と称して提案したアルゴリズムであって、バリアブルノード(variable node(メッセージノード(message node)とも呼ばれる。))と、チェックノード(check node)とからなる、いわゆるタナーグラフ(Tanner graph)上での確率伝播(belief propagation)によるメッセージパッシングアルゴリズムによって行うことが可能である。ここで、以下、適宜、バリアブルノードとチェックノードを、単に、ノードともいう。
いま、1符号長のLDPC符号の各符号の受信値を、u0iと、チェックノードから出力されるメッセージ(チェックノードメッセージ)を、ujと、バリアブルノードから出力されるメッセージ(バリアブルノードメッセージ)を、viと表す。
なお、受信値u0i、並びに、メッセージuj及びviは、値の"0"(又は、"1")らしさを、対数尤度比(log likelihood ratio)で表現する実数値である。
また、受信値u0i、及び、バリアブルノードメッセージviのサフィックスiは、LDPC符号の検査行列(LDPC符号を定義する検査行列)の列を表すパラメータである。さらに、チェックノードメッセージujのサフィックスjは、LDPC符号の検査行列の行を表すパラメータである。
LDPC復号では、受信値u0iと、チェックノードメッセージujとを用い、式(1)に示すバリアブルノードの演算(バリアブルノード演算)を行うことによって、バリアブルノードメッセージviが求められる。さらに、式(1)で求められたバリアブルノードメッセージviを用いて、式(2)に示すチェックノードの演算(チェックノード演算)を行うことによって、チェックノードメッセージujが求められる。
Figure 0005320964
・・・(1)
Figure 0005320964
・・・(2)
ここで、式(1)のバリアブルノード演算に用いられるチェックノードメッセージujは、1符号長のLDPC符号のLDPC復号の開始時に、"0"に初期化される。
また、式(1)と式(2)におけるdvとdcは、それぞれ、検査行列の縦方向(列方向)と横方向(行方向)の、枝に相当する"1"の個数(重み)を示す任意に選択可能とされるパラメータであり、例えば、(3,6)符号の場合には、dv=3,dc=6となる。
さらに、式(1)のバリバブルノード演算においては、メッセージ(バリアブルノードメッセージ)を出力しようとする枝(edge)から入力されたメッセージ(チェックノードメッセージ)を、和演算(式(1)のΣ)の対象としては用いないことから、和演算の範囲が、1ないしdv-1となっている。
同様に、式(2)のチェックノード演算においては、メッセージ(チェックノードメッセージ)を出力しようとする枝から入力されたメッセージ(バリアブルノードメッセージ)を、積演算(式(2)のΠ)の対象としては用いないことから、積演算の範囲が、1ないしdc-1となっている。
式(2)に示すチェックノード演算は、2入力v1,v2に対して1出力を返す式(3)に示す関数R(v1,v2)のテーブルを予め作成しておき、これを式(4)に示すように連続的(再帰的)に用いることによって行うことができる。
Figure 0005320964
・・・(3)
Figure 0005320964
・・・(4)
LDPC復号では、式(1)のバリアブルノード演算と、式(2)(式(4))のチェックノード演算とを繰り返し行う繰り返し復号が行われ、繰り返しの回数が、例えば、あらかじめ定められた所定の回数となると、式(5)に示す演算を行うことによって、最終的に出力する復号結果としてのメッセージvが求められる。
Figure 0005320964
・・・(5)
ここで、式(5)の演算は、式(1)のバリアブルノード演算とは異なり、バリアブルノードに接続している全ての枝からのチェックノードメッセージujを用いて行われる。
図2Aは、(3,6)LDPC符号(符号化率1/2、符号長12)の検査行列(parity check matrix)の例を示している。
LDPC符号の検査行列は、タナーグラフを用いて表すことができる。
図2Bは、図2Aの検査行列Hのタナーグラフを示している。
図2Bにおいて、プラス印("+")は、チェックノードを表し、イコール印("=")は、バリアブルノードを表す。
チェックノードとバリアブルノードは、それぞれ、検査行列Hの行と列に対応する。チェックノードとバリアブルノードとの間の結線は、枝(edge)であり、検査行列Hの"1"に相当する。
すなわち、検査行列Hの第j行第i列のコンポーネントが1である場合には、図2Bにおいて、上からi番目のバリアブルノード("="のノード)と、上からj番目のチェックノード("+"のノード)とが、枝により接続される。枝は、バリアブルノードに対応する符号ビットが、チェックノードに対応する拘束条件を持つことを表す。
LDPC復号のアルゴリズムの1つであるサムプロダクトアルゴリズム(Sum Product Algorithm)では、上述したように、バリアブルノード演算とチェックノード演算とが繰り返し行われる。
図2Cは、バリアブルノードでのバリアブルノードメッセージの求め方を説明する図である。
バリアブルノードでは、そのバリアブルノードに繋がっている、ある枝に対応するバリアブルノードメッセージviが、そのバリアブルノードに繋がっている残りの枝からのチェックノードメッセージu1及びu2と、受信値u0iとを用い、式(1)に従って求められる。他の枝に対応するバリアブルノードメッセージも同様に求められる。
図2Dは、チェックノードでのチェックノードメッセージの求め方を説明する図である。
チェックノード演算を表す式(2)は、式a×b=exp{ln(|a|)+ln(|b|)}×sign(a)×sign(b)の関係を用いて、式(6)に書き直すことができる。但し、sign(x)は、x≧0のとき1となり、x<0のとき-1となる。
Figure 0005320964
・・・(6)
x≧0において、φ(x)=ln(tanh(x/2))と定義すると、φ-1(x)=2tanh-1(e-x)であるから、式(6)は、式(7)で表される。
Figure 0005320964
・・・(7)
チェックノードでは、そのチェックノードに繋がっている、ある枝に対応するチェックノードメッセージujが、そのチェックノードに繋がっている残りの枝からのバリアブルノードメッセージv1,v2,v3,v4,v5を用い、式(7)に従って求められる。他の枝に対応するチェックノードメッセージも同様に求められる。
なお、関数φ(x)は、φ(x)=ln((ex+1)/(ex-1))とも表すことができ、x>0において、φ(x)=φ-1(x)である。関数φ(x)及びφ-1(x)をハードウェアに実装する際には、LUT(Look Up Table)を用いて実装される場合があるが、関数φ(x)及びφ-1(x)のLUTは、同一のLUTとなる。
ところで、サムプロダクトアルゴリズムによるLDPC復号を行うLDPC復号装置の実装方法として、メッセージ(チェックノードメッセージ、バリバブルノードメッセージ)の演算を、1個のノードずつ順次行うフルシリアルデコーディング(full serial decoding)を採用した場合、メッセージの演算を行う演算器が1つで済むので、装置の小型化を図ることができる。
しかしながら、フルシリアルデコーディングでは、メッセージの演算が、1個のノードずつ行われるため、すべてのノードのメッセージを求めるのに時間を要する。
サムプロダクトアルゴリズムでは、バリアブルノード演算とチェックノード演算との繰り返し(繰り返し復号)が行われるほど、LDPC復号の精度(誤り訂正の性能)が向上する。したがって、すべてのノードのメッセージを求めるのに時間を要すると、繰り返し復号の回数が少なくなり、LDPC復号の精度が劣化することになる。
なお、メッセージの演算を行う演算器を、複数用意し、その複数の演算器をシリアルに接続することで、繰り返し復号の回数を多くする方法がある。しかしながら、この方法では、LDPC復号装置が大規模化する。
また、LDPC復号装置を大規模化せずに、繰り返し復号の回数を多くするには、メッセージの演算を高速に行う方法がある。
しかしながら、この方法では、繰り返し復号の回数をある程度多くするのに、極めて高速な周波数のクロックで動作する演算器が必要となる。
一方、サムプロダクトアルゴリズムによるLDPC復号を行うLDPC復号装置の実装方法として、メッセージの演算を、すべてのノードについて同時(並列)に行うフルパラレルデコーディング(full parallel decoding)を採用した場合、すべてのノードのメッセージを短時間で求めることができる。したがって、繰り返し復号の回数を多くして、LDPC復号の精度を向上させることができる。
しかしながら、フルパラレルデコーディングでは、符号長等に比例する数の演算器が必要となり、LDPC復号装置が大規模化する。
そこで、適度な周波数のクロックで動作する演算器を用い、適度な装置規模で、繰り返し復号の回数が多いLDPC復号を行うLDPC復号装置が、例えば、前述の特許文献1に記載されている。
特許文献1に記載のLDPC復号装置では、ノードの演算(チェックノード演算、及び、バリアブルノード演算)が、ノードすべてについてではない、複数であるQ個のノードについて同時に行われる。ここで、同時に演算を行うノードの数であるQを、以下、演算単位ともいう。
図1の復調部12は、ノードの演算を、Q個のノードについて同時に行うLDPC復号装置を内蔵している。
図3は、図1の復調部12が内蔵するLDPC復号装置の構成例を示している。
図3において、LDPC復号装置は、記憶装置31、演算装置32、サイクリックシフト装置33、及び、制御装置34から構成され、取得部11(図1)からの送信データに含まれるLDPC符号のLDPC復号を行う。
記憶装置31は、例えば、RAM(Random Access Memory)等の半導体メモリで構成される。記憶装置31には、取得部11からの送信データに含まれるLDPC符号の受信値が供給されるとともに、サイクリックシフト装置33から、メッセージ(バリアブルノードメッセージ、チェックノードメッセージ)が供給される。
記憶装置31は、そこに供給されるLDPC符号の受信値、及び、メッセージを一時記憶する。
記憶装置31に記憶されたLDPC符号の受信値、及び、メッセージは、必要に応じて読み出され、演算装置32に供給される。
演算装置32は、Q個以上のM個の演算器321ないし32Mを有し、1個の演算器32mは、記憶装置31からのメッセージ等を用いて、1個のノードについてのメッセージを求めるノード演算(チェックノード演算、バリアブルノード演算)を行う。
演算装置32では、M個の演算器321ないし32Mのうちの、Q個の演算器321ないし32Qによって、チェックノード演算、又は、バリアブルノード演算が、Q個のノードについて同時に行われる。
演算装置32において、Q個のノードについて、同時に、チェックノード演算、又は、バリアブルノード演算が行われると、Q個の枝に対応するQ個のメッセージ(チェックノードメッセージ、又は、バリアブルノードメッセージ)が得られる。
このQ個のメッセージは、1個のパラレルデータとして、演算装置32からサイクリックシフト装置33に供給される。
ここで、演算装置32では、チェックノード演算と、バリアブルノード演算とが交互に行われる。
サイクリックシフト装置33は、演算装置32において、Q個のチェックノードのチェックノード演算、及び、Q個のバリアブルノードのバリアブルノード演算のうちの一方のノード演算の結果得られる、Q個の枝に対応するQ個のメッセージから構成されるパラレルデータを、次に行われる他方のノード演算のためにサイクリックシフトする。そして、サイクリックシフト装置33は、サイクリックシフト後のパラレルデータを構成するQ個のメッセージを、記憶装置31に供給して記憶させる。
制御装置34は、図3のLDPC復号装置を構成する、記憶装置31、演算装置32、及び、サイクリックシフト装置33を制御する。
すなわち、制御装置34は、記憶装置31に対するメッセージ等の読み書きをするアドレスを指定する制御等を行う。また、制御装置34は、演算装置32(の演算器32m)が行うべきノード演算(チェックノード演算やバリアブルノード演算等)を指定する制御等を行う。さらに、制御装置34は、サイクリックシフト装置33がサイクリックシフトを行うシフト量を指定する制御等を行う。
以上のように構成されるLDPC復号装置では、取得部11からの送信データに含まれる1符号長のLDPC符号の受信値が、記憶装置31に供給されると、記憶装置31は、そこに供給される1符号長のLDPC符号の受信値を記憶する。
記憶装置31に1符号長のLDPC符号の受信値が記憶されると、記憶装置31に記憶されたLDPC符号の受信値と、チェックノードメッセージ(1符号長のLDPC符号のLDPC復号の開始時は、初期値である0等になっている)とが、適宜読み出され、演算装置32に供給される。
演算装置32では、Q個の演算器321ないし32Qによって、記憶装置31からの受信値とチェックノードメッセージとを用いて、式(1)のバリアブルノード演算が、Q個のバリアブルノードについて同時に行われる。
演算装置32において、Q個のバリアブルノードについて、同時に、バリアブルノード演算が行われることにより得られるQ個のバリアブルノードメッセージは、演算装置32からサイクリックシフト装置33に供給される。
サイクリックシフト装置33は、演算装置32からのQ個のバリアブルノードメッセージを、1個のパラレルデータとして、そのパラレルデータを、次に行われるチェックノード演算のためにサイクリックシフトする。そして、サイクリックシフト装置33は、サイクリックシフト後のパラレルデータを構成するQ個のバリアブルノードメッセージを、記憶装置31に供給して記憶させる。
以上のように、Q個ずつのバリアブルノードについて、バリアブルノード演算が行われることにより、すべてのバリアブルノード(LDPC符号の検査行列の列数のバリアブルノード)について、バリアブルノードメッセージが求められ、記憶装置31に記憶されると、記憶装置31から、バリアブルノードメッセージが、適宜読み出され、演算装置32に供給される。
演算装置32では、Q個の演算器321ないし32Qによって、記憶装置31からのバリアブルノードメッセージを用いて、式(7)のチェックノード演算が、Q個のチェックノードについて同時に行われる。
演算装置32において、Q個のチェックノードについて、同時に、チェックノード演算が行われることにより得られるQ個のチェックノードメッセージは、演算装置32からサイクリックシフト装置33に供給される。
サイクリックシフト装置33は、演算装置32からのQ個のチェックノードメッセージを、1個のパラレルデータとして、そのパラレルデータを、次に行われるバリアブルノード演算のためにサイクリックシフトする。そして、サイクリックシフト装置33は、サイクリックシフト後のパラレルデータを構成するQ個のチェックノードメッセージを、記憶装置31に供給して記憶させる。
以上のように、Q個ずつのチェックノードについて、チェックノード演算が行われることにより、すべてのチェックノード(LDPC符号の検査行列の行数のチェックノード)について、チェックノードメッセージが求められ、記憶装置31に記憶されると、記憶装置31から、記憶装置31に記憶されたLDPC符号の受信値と、チェックノードメッセージとが、適宜読み出され、演算装置32に供給される。
そして、以下、上述した場合と同様にして、バリアブルノード演算と、チェックノード演算とが、交互に繰り返される。
LDPC復号装置では、次の1符号長のLDPC符号の受信値が、取得部11(図1)から供給されるまでの間に、上述した、バリアブルノード演算とチェックノード演算とを交互に繰り返す繰り返し復号が、所定の回数だけ行われる。
そして、繰り返し復号が所定の回数だけ行われると、演算装置32では、記憶装置31に記憶されたLDPC符号の受信値と、チェックノードメッセージとを用いて、式(5)の演算が行われる。そして、演算装置32では、式(5)の演算の演算結果を、例えば、硬判定した判定結果が、記憶装置31に記憶された1符号長のLDPC符号の復号結果として出力される。
その後は、LDPC復号装置において、次の1符号長のLDPC符号の受信値が、取得部11(図1)から供給されるのを待って、同様の処理が繰り返される。
次に、図4は、図3のLDPC復号装置がLDPC復号の対象とするLDPC符号の検査行列Hの例を示している。
なお、図4の検査行列Hは、演算装置32(図3)が同時にメッセージを求めるノードの個数Qを、5個とした場合の、行×列が30×90の検査行列の例であり、Q×Q、すなわち、5×5の行列の単位で間隔を空けてある。
また、図4の検査行列Hでは、"0"を、ピリオド(".")で表現している。
図4において、検査行列Hは、5×5の単位行列、その単位行列の1のうち1個以上が0になった行列(以下、適宜、準単位行列という)、単位行列又は準単位行列を(行方向若しくは列方向に)サイクリックシフト(cyclic shift)した行列(以下、適宜、シフト行列という)、単位行列、準単位行列、又はシフト行列のうちの2以上(複数)の和(以下、適宜、和行列という)、5×5の0行列の組合わせで表されている。なお、図4の検査行列HのLDPC符号は、符号化率が2/3で、符号長が90のLDPC符号である。
いま、上述の、単位行列、準単位行列、シフト行列、和行列、0行列を構成行列と呼ぶこととすると、図4の検査行列Hは、構成行列で構成される。
図3のLDPC復号装置は、以上のような構成行列で構成される検査行列HのLDPC符号を、LDPC復号の対象とする。したがって、取得部11(図1)が取得する送信データに含まれるLDPC符号は、構成行列で構成される検査行列HのLDPC符号である。
図3のLDPC復号装置では、5個ずつのノードについて、メッセージが同時に求められることで、図4の検査行列HのLDPC符号が復号される。
すなわち、例えば、いま、検査行列Hの第1列(左から1列目)ないし第5列に対応する5個のバリアブルノードnv#1ないしnv#5に注目すると、演算装置32の演算器321では、バリアブルノードnv#1について、第1列の"1"に対応する枝からのチェックノードメッセージを用いて、第1列の"1"に対応する枝へのバリアブルノードメッセージが求められる。
同時に、他の演算器322ないし演算器325の各演算器32qでは、バリアブルノードnv#qについて、第q列の"1"に対応する枝からのチェックノードメッセージを用いて、第q列の"1"に対応する枝へのバリアブルノードメッセージが求められる。
より具体的には、検査行列Hの第j行第i列を、(j,i)と表すこととすると、演算器321ないし325では、まず、検査行列Hの(1,1)から(5,5)の5×5の単位行列(構成行列)Aの5個の"1"に対応する枝への5個のバリアブルノードメッセージが同時に求められる。そして、その5個のバリアブルノードメッセージが、サイクリックシフト装置33を介して、記憶装置31に供給され、1ワードとして記憶される。
次に、演算器321ないし325では、検査行列Hの(6,1)から(10,5)の5×5の和行列(構成行列)Bの"1"に対応する枝へのバリアブルノードメッセージが同時に求められる。
ここで、演算装置32では、重みが2以上の構成行列については、その構成行列を、重みが1であるQ×Q(ここでは、5×5)の単位行列、準単位行列、又は、単位行列若しくは準単位行列をサイクリックシフトしたシフト行列のうちの複数の和の形で表現したときの、その重みが1の単位行列、準単位行列、又はシフト行列ごとに、メッセージが求められる。
和行列Bは、重みが2で、5×5の単位行列を右に1個だけサイクリックシフトした第1のシフト行列と、右に2個だけサイクリックシフトした第2のシフト行列との和になっている。
このため、演算装置32では、和行列Bについては、演算器321ないし325において、まず、和行列Bを構成する第1のシフト行列の5個の"1"に対応する枝への5個のバリアブルノードメッセージが同時に求められる。そして、その5個のバリアブルノードメッセージが、サイクリックシフト装置33を介して、記憶装置31に供給され、1ワードとして記憶される。
その後、演算器321ないし325では、和行列Bを構成する第2のシフト行列の5個の"1"に対応する枝への5個のバリアブルノードメッセージが同時に求められる。そして、その5個のバリアブルノードメッセージが、サイクリックシフト装置33を介して、記憶装置31に供給され、1ワードとして記憶される。
以下、同様に、図3のLDPC復号装置では、検査行列Hの5列の単位で、検査行列Hの"1"に対応する枝へのバリアブルノードメッセージが、5個ずつ同時に求められ、その5個のバリアブルノードメッセージが、1ワードとして、記憶装置31に記憶される。
以上のようにして、検査行列Hの最後の5列(検査行列Hの右端の5列)に対応するバリアブルノードまでについて、各列の"1"に対応する枝へのバリアブルノードメッセージが求められると、図3のLDPC復号装置では、そのバリアブルノードメッセージを用いて、検査行列Hの5行の単位で、検査行列Hの"1"に対応する枝へのチェックノードメッセージが、5個ずつ同時に求められ、その5個のチェックメッセージが、1ワードとして、記憶装置31に記憶される。
すなわち、例えば、いま、検査行列Hの第1行(上から1行目)ないし第5行に対応する5個のチェックノードnu#1ないしnu#5に注目すると、演算装置32の演算器321では、チェックノードnu#1について、第1行の"1"に対応する枝からのバリアブルノードメッセージを用いて、第1行の"1"に対応する枝へのチェックノードメッセージが求められる。
同時に、他の演算器322ないし演算器325の各演算器32qでは、チェックノードnu#qについて、第q行の"1"に対応する枝からのバリアブルノードメッセージを用いて、第q行の"1"に対応する枝へのチェックノードメッセージが求められる。
より具体的には、演算器321ないし325では、まず、検査行列Hの(1,1)から(5,5)の5×5の単位行列Aの5個の"1"に対応する枝への5個のチェックノードメッセージが同時に求められる。そして、その5個のバリアブルノードメッセージが、サイクリックシフト装置33を介して、記憶装置31に供給され、1ワードとして記憶される。
次に、演算器321ないし325では、検査行列Hの(1,21)から(5,25)のシフト行列(構成行列)Cの"1"に対応する枝へのチェックノードメッセージが同時に求められる。ここで、シフト行列Cは、5×5の単位行列を右方向に3個だけサイクリックシフトした行列である。
以下、同様に、図3のLDPC復号装置では、検査行列Hの5行の単位で、検査行列Hの"1"に対応する枝へのチェックノードメッセージが、5個ずつ同時に求められ、その5個のチェックノードメッセージが、1ワードとして、記憶装置31に記憶される。
以上のようにして、検査行列Hの最後の5行(検査行列Hの下端の5行)に対応するチェックノードまでについて、各行の"1"に対応する枝へのチェックノードメッセージが求められると、図3のLDPC復号装置では、そのチェックノードメッセージを用いて、上述したように、バリアブルノードメッセージが求められ、以下、同様の処理が、所定の回数(あらかじめ定められた、繰り返し復号の回数)だけ繰り返される。
ここで、αをβで除算したときの剰余γを、式γ=α mod βと表すこととすると、i番目のノード(第i行に対応するチェックノード、第i列に対応するバリアブルノード)のノード演算は、式q=(i mod Q)+1で表されるqをサフィックスとする演算器32qで行われる。
図3のLDPC復号装置において、演算装置32では、以上のように、検査行列Hを構成するQ×Qの構成行列の単位で、メッセージが同時に求められ、すなわち、構成行列の"1"に対応する枝へのQ個のメッセージが同時に求められる。そして、その同時に求められたQ個のメッセージが、1ワードとして、記憶装置31に記憶される。
記憶装置31に1ワードとして記憶されるQ個のメッセージは、メッセージを求める次のノード演算で用いられるため、検査行列Hの"1"に基づいてサイクリックシフトしておく必要があり、図3のLDPC復号装置には、演算装置32で求められたQ個のメッセージを、パラレルデータとしてサイクリックシフトしてから、記憶装置31に供給するサイクリックシフト装置33が設けられている。
図5を参照して、サイクリックシフトが必要な理由を説明する。
図5は、図4の検査行列Hについての、バリアブルノード演算とチェックノード演算とを説明する図である。
いま、図4の検査行列Hの(1,1)から(5,5)の5×5の構成行列Aの行に対応するチェックノードnu#1ないしnu#5、その構成行列Aの列に対応するバリアブルノードnv#1ないしnv#5、及び、検査行列Hにおいて、構成行列Aと同一の行にある、(1,21)から(5,25)の5×5の構成行列Cの列に対応するバリアブルノードnv#21ないしnv#25に注目する。
ここで、チェックノードnu#jは、検査行列Hの第j行に対応するチェックノードであり、バリアブルノードnv#iは、検査行列の第i列に対応するバリアブルノードである。
チェックノードnu#jのチェックノード演算、及び、バリアブルノードnv#iのバリアブルノード演算は、演算装置32(図3)の演算器32qで行われる。但し、qは、チェックノード演算については、式q=(j mod 5)+1で表され、バリアブルノード演算については、式q=(i mod 5)+1で表される。
例えば、いま、演算器321ないし325において、検査行列Hの第1行ないし第5行に対応する5個のチェックノードnu#1ないしnu#5のチェックノード演算が行われ、第1行ないし第5行の"1"に対応する枝へのチェックノードメッセージが求められたとする。
ここで、第j行第i列の"1"に対応する枝へのチェックノードメッセージを、uj,iと表す。
構成行列Aは、単位行列であり、その"1"に対応する枝へのチェックノードメッセージは、u1,1,u2,2,u3,3,u4,4、及びu5,5で表される。
また、構成行列Cは、単位行列を右に3個だけサイクリックシフトしたシフト行列であり、その"1"に対応する枝へのチェックノードメッセージは、u1,24,u2,25,u3,21,u4,22、及びu5,23で表される
構成行列A及びCだけに注目すると、演算器321は、チェックノードnu#1のチェックノード演算を行って、構成行列Aの第1行の"1"に対応する枝へのチェックノードメッセージu1,1と、構成行列Cの第1行の"1"に対応する枝へのチェックノードメッセージu1,24とを求める。
演算器322は、チェックノードnu#2のチェックノード演算を行って、構成行列Aの第2行の"1"に対応する枝へのチェックノードメッセージu2,2と、構成行列Cの第2行の"1"に対応する枝へのチェックノードメッセージu2,25とを求める。
演算器323は、チェックノードnu#3のチェックノード演算を行って、構成行列Aの第3行の"1"に対応する枝へのチェックノードメッセージu3,3と、構成行列Cの第3行の"1"に対応する枝へのチェックノードメッセージu3,21とを求める。
演算器324は、チェックノードnu#4のチェックノード演算を行って、構成行列Aの第4行の"1"に対応する枝へのチェックノードメッセージu4,4と、構成行列Cの第4行の"1"に対応する枝へのチェックノードメッセージu4,22とを求める。
演算器325は、チェックノードnu#5のチェックノード演算を行って、構成行列Aの第5行の"1"に対応する枝へのチェックノードメッセージu5,5と、構成行列Cの第5行の"1"に対応する枝へのチェックノードメッセージu5,23とを求める。
演算装置32(図3)において、構成行列Aの"1"に対応する枝へのチェックノードメッセージu1,1,u2,2,u3,3,u4,4、及びu5,5は、演算器321ないし325によって同時に求められ、上述したように、1ワードとして、サイクリックシフト装置33(図3)を介して、記憶装置31に記憶される。
同様に、演算装置32では、構成行列Cの"1"に対応する枝へのチェックノードメッセージu1,24,u2,25,u3,21,u4,22、及びu5,23が、演算器321ないし325によって同時に求められ、上述したように、1ワードとして、サイクリックシフト装置33を介して、記憶装置31に記憶される。
ここで、5個のチェックノードメッセージu1,1,u2,2,u3,3,u4,4、及びu5,5の並びを、(u1,1,u2,2,u3,3,u4,4,u5,5)と表す。この場合、5個のチェックノードメッセージu1,24,u2,25,u3,21,u4,22、及びu5,23の並びは、(u1,24,u2,25,u3,21,u4,22,u5,23)と表される。
検査行列Hの"1"に対応する枝へのチェックノードメッセージのすべてが求められると、その後は、バリアブルノードメッセージを求めるバリアブルノード演算が行われる。
すなわち、いま、検査行列Hの、構成行列Aが含まれる第1列ないし第5列に注目すると、演算器321は、検査行列Hの第1列の"1"に対応する枝からのチェックノードメッセージを用いて、バリアブルノードnv#1のバリアブルノード演算を行う。
同様に、演算器322は、検査行列Hの第2列の"1"に対応する枝からのチェックノードメッセージを用いて、バリアブルノードnv#2のバリアブルノード演算を行う。
演算器323は、検査行列Hの第3列の"1"に対応する枝からのチェックノードメッセージを用いて、バリアブルノードnv#3のバリアブルノード演算を行う。
演算器324は、検査行列Hの第4列の"1"に対応する枝からのチェックノードメッセージを用いて、バリアブルノードnv#4のバリアブルノード演算を行う。
演算器325は、検査行列Hの第5列の"1"に対応する枝からのチェックノードメッセージを用いて、バリアブルノードnv#5のバリアブルノード演算を行う。
以上のように、サフィックスqが式q=(i mod 5)+1で表される演算器32qでは、検査行列Hの第i列の"1"に対応する枝からのチェックノードメッセージを用いてバリアブルノード演算を行う。
バリアブルノード演算に用いられるチェックノードメッセージは、上述したように、5個のチェックノードメッセージを1ワードとして、記憶装置31に記憶される。
1ワードとしてのチェックノードメッセージの並びを、(U1,U2,U3,U4,U5)と表し、演算器32qが、1ワードとしてのチェックノードメッセージの並び(U1,U2,U3,U4,U5)のうちの、q番目のチェックノードメッセージUqを用いて、バリアブルノード演算を行うこととすると、単位行列となっている構成行列Aの"1"に対応する枝への5個のチェックノードメッセージの並び(u1,1,u2,2,u3,3,u4,4,u5,5)では、図5に示すように、演算器32qでのバリアブルノード演算に用いられるチェックノードメッセージが、q番目に配置されているので、演算器32qでは、1ワードとしてのチェックノードメッセージの並び(u1,1,u2,2,u3,3,u4,4,u5,5)のうちのq番目のチェックノードを用いて、バリアブルノード演算を行うことができる。
一方、単位行列を右方向に3個だけサイクリックシフトしたシフト行列となっている構成行列Cの"1"に対応する枝への5個のチェックノードメッセージの並び(u1,24,u2,25,u3,21,u4,22,u5,23)では、図5に示すように、演算器32qでのバリアブルノード演算に用いられるチェックノードメッセージが、q番目から、右方向(チェックノードメッセージの並び(u1,24,u2,25,u3,21,u4,22,u5,23)の最後の方向)に3個だけサイクリックシフトした位置に配置されている。
したがって、演算器32qが、1ワードとしてのチェックノードメッセージの並び(U1,U2,U3,U4,U5)のうちの、q番目のチェックノードメッセージUqを用いて、バリアブルノード演算を行うには、そのバリアブルノード演算の前に、構成行列Cの"1"に対応する枝への5個のチェックノードメッセージの並び(u1,24,u2,25,u3,21,u4,22,u5,23)を、左方向(チェックノードメッセージの並び(u1,24,u2,25,u3,21,u4,22,u5,23)の先頭の方向)に、3個だけサイクリックシフトし、5個のチェックノードメッセージの並び(u3,21,u4,22,u5,23,u1,24,u2,25)にしておく必要がある。
このように、演算器32qが、1ワードとしてのメッセージ(バリアブルノードメッセージ、チェックノードメッセージ)の並びのうちの、q番目のメッセージを用いて、ノード演算(チェックノード演算、バリアブルノード演算)を行うことができるように、サイクリックシフト装置33では、構成行列の"1"(検査行列Hの"1"でもある)に基づいて、演算器321ないし325で同時に求められる、1ワードとしての5個のメッセージの並びをサイクリックシフトする。
ところで、LDPC符号を採用するディジタル放送の規格としては、例えば、DVB(Digital Video Broadcasting)-S2や、国内の次世代BS(Broadcasting Satellite)放送の規格(以下、高度化BSともいう)等がある。
図6は、DVB-S2、及び高度化BSで規定されているLDPC符号と、それぞれのLDPC符号を復号するLDPC復号装置の実装の例を示している。
DVB-S2、及び、高度化BSにおいて採用されているLDPC符号の検査行列のうちの、情報ビットに対応する部分(以下、情報行列ともいう)は、巡回構造になっている。
巡回構造とは、ある列が、他の列をサイクリックシフトしたものと一致している構造をいい、例えば、P列ごとに、そのP列の各行の"1"の位置が、そのP列の最初(左端)の列を、パリティ長をPで除算して得られる値に比例する値だけ、列方向にサイクリックシフトした位置になっている構造も含まれる。以下、適宜、巡回構造におけるP列を、巡回構造の単位の列数という。
ここで、DVB-S2、及び、高度化BSにおいて採用されているLDPC符号の検査行列は、行や列の置換を必要に応じて行うことで、P×Pの構成行列で構成される行列とすることができる。
また、演算装置32(図3)において同時に求められるメッセージの数(演算単位)Q個としては、例えば、巡回構造の単位の列数Pを採用することができる。
巡回構造の単位の列数Pとしては、DVB-S2では、360が規定されており、高度化BSでは、374が規定されている。
したがって、演算単位Qとして、巡回構造の単位の列数Pを採用する場合には、演算装置32では、DVB-S2のLDPC復号装置では、360個のメッセージが同時に求められ、高度化BSのLDPC復号装置では、374個のメッセージが同時に求められる。
演算装置32で同時に求められたメッセージは、サイクリックシフト装置33を介して、記憶装置31(図3)に供給され、1ワードとして記憶される。
したがって、1個のメッセージのビット数として、例えば、5ビットを採用すると、DVB-S2のLDPC復号装置では、記憶装置31の1ワードを、1800ビット(=5[ビット]×Q(=P=360))とする必要がある。一方、高度化BSのLDPC復号装置では、記憶装置31の1ワードを、1870ビット(=5[ビット]×Q(=P=374))とする必要がある。
また、DVB-S2では、検査行列の枝数("1"の数)の最大値(最大の枝数)が、P×792-1個(360×792-1個)になっており、高度化BSでは、検査行列の枝数の最大値が、P×435-1個(374×435-1個)になっている。
1ワードは、Q(=P)個のメッセージ分のデータであるので、最大の枝数を有する検査行列のLDPC符号が採用された場合、DVB-S2のLDPC復号装置では、一通りのノード演算(チェックノード演算、又はバリアブルノード演算)で得られる全メッセージのワード数は、792ワードとなる。
すなわち、DVB-S2のLDPC復号装置では、記憶装置31において、ノード演算で得られるメッセージを記憶するためのワード数として、792ワードが必要となる。
一方、高度化BSのLDPC復号装置では、最大の枝数を有する検査行列のLDPC符号が採用された場合に、一通りのノード演算で得られる全メッセージのワード数は、435ワードとなる。
したがって、高度化BSのLDPC復号装置では、記憶装置31において、ノード演算で得られるメッセージを記憶するためのワード数として、435ワードが必要となる。
記憶装置31(図3)では、ノード演算で得られるメッセージの他、復号の対象となる1符号長分のLDPC符号の受信値を記憶する必要がある。
DVB-S2では、LDPC符号の最大の符号長として、64800ビットが規定されており、高度化BSでは、LDPC符号の最大の符号長として、44880ビットが規定されている。
したがって、DVB-S2のLDPC復号装置では、1符号長分のLDPC符号の受信値を記憶するためのワード数として、180ワード(=64800[ビット]×5[ビット]/1800[ビット/ワード])が必要となる。
また、高度化BSのLDPC復号装置では、1符号長分のLDPC符号の受信値を記憶するためのワード数として、120ワード(=44880[ビット]×5[ビット]/1870[ビット/ワード])が必要となる。
以上から、DVB-S2のLDPC復号装置では、記憶装置31のワード数として、ノード演算で得られるメッセージを記憶するための792ワードと、LDPC符号の受信値を記憶するための180ワードとの、合計で972ワードが必要となり、1ワードのビット数は、1800ビットとなる。
一方、高度化BSのLDPC復号装置では、記憶装置31のワード数として、ノード演算で得られるメッセージを記憶するための435ワードと、LDPC符号の受信値を記憶するための120ワードとの、合計で555ワードが必要となり、1ワードのビット数は、1870ビットとなる。
図3のLDPC復号装置を、DVB-S2用と、高度化BS用との両用とする実装を行う場合、記憶装置31、及び、演算装置32は、DVB-S2と高度化BSとのそれぞれのLDPC復号装置に必要とされる仕様のうちの、大きい(多い)方に合わせて、LDPC復号装置を構成すればよい。
したがって、記憶装置31は、1ワードを1870ビットとして、972ワードを記憶することができるメモリ等で構成すればよい。また、演算装置32は、374個のメッセージを同時に求めることができるように、図3におけるMを374として、374個の演算器321ないし32374で構成すればよい。
一方、サイクリックシフト装置33では、高度化BSについては、374個のメッセージのサイクリックシフトを行う必要があり、DVB-S2については、360個のメッセージのサイクリックシフトを行う必要がある。
そして、374個のメッセージのサイクリックシフトを行うには、374単位のバレルシフタが必要であり、360個のメッセージのサイクリックシフトを行うには、360単位のバレルシフタが必要である。
すなわち、図7は、図3のLDPC復号装置が、DVB-S2用と高度化BS用との両用である場合の、サイクリックシフト装置33の構成例を示している。
図7において、サイクリックシフト装置33は、バレルシフタ51及び52と、セレクタ53とから構成されている。
バレルシフタ51には、演算装置32(図3)から、高度化BSのLDPC符号について同時に求められる374個のメッセージとしての入力データ#1ないし#374が、1個のパラレルデータとして供給される。さらに、バレルシフタ51には、制御装置34(図3)から、サイクリックシフトのシフト量kを表す制御信号が供給される。
バレルシフタ51は、374単位のバレルシフタであり、演算装置32から供給される入力データ#1ないし#374を、制御装置34から供給される制御信号が表す、0ないし374未満の範囲のシフト量kだけサイクリックシフトする。そして、バレルシフタ51は、そのサイクリックシフト後の入力データ#1+k,#2+k,・・・,#374,#1,#2,・・・,#kを、シフトデータ#1,#2,・・・,#374として、セレクタ53に供給する。
バレルシフタ52には、演算装置32(図3)から、DVB-S2のLDPC符号について同時に求められる360個のメッセージとしての入力データ#1ないし#360が、1個のパラレルデータとして供給される。さらに、バレルシフタ52には、制御装置34(図3)から、サイクリックシフトのシフト量kを表す制御信号が供給される。
バレルシフタ52は、360単位のバレルシフタであり、演算装置32から供給される入力データ#1ないし#360を、制御装置34から供給される制御信号が表す、0ないし360未満の範囲のシフト量kだけサイクリックシフトする。そして、バレルシフタ52は、そのサイクリックシフト後の入力データ#1+k,#2+k,・・・,#360,#1,#2,・・・,#kを、シフトデータ#1,#2,・・・,#360として、セレクタ53に供給する。
セレクタ53には、バレルシフタ51からのシフトデータ#1ないし#374、及び、バレルシフタ52からのシフトデータ#1ないし#360が供給される他、制御装置34(図3)から、高度化BS及びDVB-S2のLDPC符号の復号のうちのいずれか一方の選択を表す選択信号(これは、サイクリックシフト装置33において、M(=374)個の入力データ#1ないし#Mから構成されるパラレルデータ、及び、N(=360)個の入力データ#1ないし#Nから構成されるパラレルデータのうちのいずれのサイクリックシフトを行うのかを表す選択信号でもある)としての制御信号が供給される。
すなわち、制御装置34は、高度化BSのLDPC符号の復号を行う場合には、高度化BSのLDPC符号の復号の選択を表す選択信号を、セレクタ53に供給する。また、制御装置34は、DVB-S2のLDPC符号の復号を行う場合には、DVB-S2のLDPC符号の復号の選択を表す選択信号を、セレクタ53に供給する。
セレクタ53は、制御装置34からの選択信号が、高度化BSのLDPC符号の復号の選択を表している場合、バレルシフタ51から供給されるシフトデータ#1ないし#374を選択し、サイクリックシフト装置33でのサイクリックシフトの結果である出力データ#1ないし#374として出力する。この出力データ#1ないし#374は、記憶装置31(図3)に、1ワードとして供給されて記憶される。
また、セレクタ53は、制御装置34からの選択信号が、DVB-S2のLDPC符号の復号の選択を表している場合、バレルシフタ52から供給されるシフトデータ#1ないし#360を選択し、サイクリックシフト装置33でのサイクリックシフトの結果である出力データ#1ないし#360として出力する。この出力データ#1ないし#360は、記憶装置31(図3)に、1ワードとして供給されて記憶される。
以上のように、サイクリックシフト装置33を、2個のバレルシフタ51及び52を設けて構成する場合には、サイクリックシフト装置33、ひいては、図3のLDPC復号装置が大型化する。
そこで、図8は、図3のLDPC復号装置を、DVB-S2用と高度化BS用との両用として構成する場合の、サイクリックシフト装置33の他の構成例を示している。
図8では、サイクリックシフト装置33は、1個のバレルシフタ61と、選択回路62、及び、選択制御回路63とから構成される。
バレルシフタ61には、制御装置34(図3)から、シフト量kを表す制御信号が供給される。さらに、バレルシフタ61には、M個の入力データ#1ないし#Mからなるパラレルデータが、演算装置32から供給される。
バレルシフタ61は、M単位のバレルシフタであり、演算装置32から供給される入力データ#1ないし#Mを、制御装置34から供給される制御信号が表す、0ないしM未満の範囲のシフト量kだけサイクリックシフトする。そして、バレルシフタ61は、そのサイクリックシフト後の入力データ#1+k,#2+k,・・・,#M,#1,#2,・・・,#kを、シフトデータ#1,#2,・・・,#Mとして、選択回路62に供給する。
なお、log2M以上の最小の整数をKと表すこととすると、シフト量kは、Kビットで表される。
また、演算単位Qとして、例えば、上述したように、巡回構造の単位の列数Pを採用する場合には、値Mとしては、演算単位Qである巡回構造の単位の列数Pとしての374及び360のうちの、大きい方、すなわち、374が採用される。
高度化BSのLDPC復号では、演算装置32において、374(=M)個のメッセージが同時に求められ、その374個のメッセージが、入力データ#1ないし#Mとして、バレルシフタ61に供給される。
そして、バレルシフタ61では、入力データ#1ないし#Mが、制御装置34からのシフト量kだけサイクリックシフトされる。
ここで、高度化BSのLDPC復号では、シフト量kは、0ないしM(=374)未満の範囲の整数である。
一方、DVB-S2のLDPC復号では、演算装置32において、374(=M)より小のN(<M)個である360個のメッセージが同時に求められ、その360個のメッセージが、入力データ#1ないし#Mのうちの、入力データ#1ないし#Nとして、バレルシフタ61に供給される。
さらに、この場合、バレルシフタ61には、入力データ#N+1,#N+2,・・・,M(ここでは、入力データ#361,#362,・・・#374)として、例えば、不定のデータ(無効なデータ)が供給される。
そして、バレルシフタ61では、入力データ#1ないし#Mが、制御装置34からのシフト量kだけサイクリックシフトされる。
ここで、DVB-S2のLDPC復号では、シフト量kは、0ないしN(=360)未満の範囲の整数である。
また、DVB-S2のLDPC復号では、上述したように、バレルシフタ61に供給される入力データ#1ないし#Mのうちの、最後のM-N個の入力データ#N+1ないしMは、無効なデータであり、バレルシフタ61では、そのような無効な入力データ#N+1ないしMを含む、M個の入力データ#1ないし#Mがサイクリックシフトされることで、そのM個の入力データ#1ないし#Mに含まれる、演算装置32で同時に求められたN個のメッセージとしての入力データ#1ないし#Nがサイクリックシフトされる。
選択回路62は、選択制御回路63からの、N-1ビットの選択制御信号に従い、例えば、バレルシフタ61から供給される(バレルシフタ61が出力する)シフトデータ#1ないし#Mの全部を、M個の入力データ#1ないし#Mを1個のパラレルデータとしたサイクリックシフトの結果であるM個の出力データ#1ないし#Mとして選択して出力する。
また、選択回路62は、選択制御回路63からの、N-1ビットの選択制御信号に従い、例えば、バレルシフタ61から供給されるシフトデータ#1ないし#MのうちのN個を、N個の入力データ#1ないし#Nを1個のパラレルデータとしたサイクリックシフトの結果であるN個の出力データ#1ないし#Nとして選択して出力する。
すなわち、高度化BSのLDPC復号では、選択回路62において、演算装置32で同時に求められるM(=374)個のメッセージを入力データ#1ないし#Mとして、シフト量kだけサイクリックシフトをした結果を、M個の出力データ#1ないし#Mとして出力する必要がある。
この場合、選択回路62は、選択制御回路63からの、N-1ビットの選択制御信号に従い、バレルシフタ61からのシフトデータ#1ないし#Mを、M個の出力データ#1ないし#Mとして選択して出力する。
一方、DVB-S2のLDPC復号では、選択回路62において、演算器装置32で同時に求められる、M個より小のN(=360)個のメッセージを入力データ#1ないし#Nとして、シフト量kだけサイクリックシフトをした結果を、N個の出力データ#1ないし#Nとして出力する必要がある。
この場合、選択回路62は、選択制御回路63からの、N-1ビットの選択制御信号に従い、1ないしN-k番目の出力データとして、バレルシフタ61が行うサイクリックシフトの方向の先頭から1ないしN-k番目のシフトデータ#1ないし#N-kを選択して出力する。さらに、選択回路62は、N-k+1ないしN番目の出力データ#N-k+1ないし#Nとして、バレルシフタ61が行うサイクリックシフトの方向の先頭からN-k+1+(M-N)ないしN+(M-N)番目のシフトデータ#N-k+1+(M-N)ないし#N+(M-N)を選択して出力する。
なお、ここでは、上述したように、バレルシフタ61は、入力データ#1ないし#Mを、シフト量kだけサイクリックシフトし、そのサイクリックシフト後の入力データ#1+k,#2+k,・・・,#M,#1,#2,・・・,#kを、シフトデータ#1ないし#Mとする。
したがって、ここでは、バレルシフタ61が行うサイクリックシフトの方向とは、入力データ#1ないし#Mの先頭の方向(入力データ#1ないし#Mの並びの、入力データ#Mから入力データ#1に向かう方向)である。
選択制御回路63には、制御装置34(図3)から、シフト量kを表す制御信号と、高度化BS又はDVB-S2のLDPC符号の復号の選択を表す選択信号が供給される。
選択制御回路63は、制御装置34(図3)からの選択信号、さらには、シフト量kに基づき、後述するようにして、N-1ビットの選択制御信号を生成し、選択回路62に供給する。
次に、図9は、図8のバレルシフタ61の構成例を示すブロック図である。
なお、図9では、説明を簡単にするために、値Mを、8としてあり、したがって、図9のバレルシフタ61は、8単位のバレルシフタである。
バレルシフタ61は、M個の、2入力1出力のセレクタを、K(Kは、上述したように、log2M以上の最小の整数)段だけ配置して構成される。
いまの場合、値Mが8であるから、値Kは3であり、したがって、バレルシフタ61は、1段目の8個のセレクタ711ないし718、2段目の8個のセレクタ721ないし728、及び、3段目の8個のセレクタ731ないし738から構成される。
1段目のセレクタ711ないし718には、8(=M)単位のサイクリックシフトの対象となる入力データ#1ないし#8が供給される。
すなわち、1段目のセレクタ71hの一方の入力端子には、入力データ#hが供給される。また、1段目のセレクタ71hの他方の入力端子には、入力データ#h'が供給される。
ここで、入力データ#h'は、入力データ#hから、サイクリックシフトの方向とは、1(=20)個だけ逆方向にある入力データであり、値h'は、式h'=((h+1) mod M)で表される。
1段目のセレクタ71hには、さらに、3(=K)ビットで表されるシフト量kの1ビット目(LSB(Least Significant Bit)から1ビット目)が供給される。
セレクタ71hは、シフト量kの1ビット目が"0"である場合には、一方の入力端子に供給される入力データ#hを選択し、第1の選択データ#hとして出力する。
また、セレクタ71hは、シフト量kの1ビット目が"1"である場合には、他方の入力端子に供給される入力データ#h'を選択し、第1の選択データ#hとして出力する。
1段目のセレクタ711ないし718が出力する第1の選択データ#hは、2段目のセレクタ721ないし728に供給される。
すなわち、2段目のセレクタ72iの一方の入力端子には、1段目のセレクタ71iから、第1の選択データ#iが供給される。また、2段目のセレクタ72iの他方の入力端子には、1段目のセレクタ71i'から、第1の選択データ#i'が供給される。
ここで、第1の選択データ#i'は、第1の選択データ#iから、サイクリックシフトの方向とは、2(=21)個だけ逆方向にある入力データであり、値i'は、式i'=((i+2) mod M)で表される。
2段目のセレクタ72iには、さらに、3(=K)ビットで表されるシフト量kの2ビット目が供給される。
セレクタ72iは、シフト量kの2ビット目が"0"である場合には、一方の入力端子に供給される第1の選択データ#iを選択し、第2の選択データ#iとして出力する。
また、セレクタ72iは、シフト量kの2ビット目が"1"である場合には、他方の入力端子に供給される第1の選択データ#i'を選択し、第2の選択データ#iとして出力する。
2段目のセレクタ721ないし728が出力する第2の選択データ#iは、3段目のセレクタ731ないし738に供給される。
すなわち、3段目のセレクタ73jの一方の入力端子には、2段目のセレクタ72jから、第2の選択データ#jが供給される。また、3段目のセレクタ73jの他方の入力端子には、2段目のセレクタ72j'から、第2の選択データ#j'が供給される。
ここで、第2の選択データ#j'は、第2の選択データ#jから、サイクリックシフトの方向とは、4(=22)個だけ逆方向にある入力データであり、値j'は、式j'=((j+4) mod M)で表される。
3段目のセレクタ73jには、さらに、3(=K)ビットで表されるシフト量kの3ビット目が供給される。
セレクタ73jは、シフト量kの3ビット目が"0"である場合には、一方の入力端子に供給される第2の選択データ#jを選択し、シフトデータ#jとして出力する。
また、セレクタ73jは、シフト量kの3ビット目が"1"である場合には、他方の入力端子に供給される第2の選択データ#j'を選択し、シフトデータ#jとして出力する。
次に、図8において、例えば、Mを8とするとともに、Nを6として、選択回路62が行う処理について説明する。
8(=M)単位のバレルシフタ61に対して、8個の入力データ#1ないし#8を供給し、その8個の入力データ#1ないし#8のサイクリックシフトを行う場合には、バレルシフタ61が出力する8個のシフトデータ#1ないし#8を、そのまま、出力データ#1ないし#8として出力すればよい。
一方、8(=M)単位のバレルシフタ61に対して、6(=N)個の入力データ#1ないし#6を供給し、その6個の入力データ#1ないし#6のサイクリックシフトを行う場合には、バレルシフタ61が出力する8個のシフトデータ#1ないし#8には、2(=M-N)個の無効なデータが含まれるため、その無効なデータに対処する必要がある。
図10は、8単位のバレルシフタ61において行われる、6個の入力データ#1ないし#6のサイクリックシフトの一例を示している。
図10では、8単位のバレルシフタ61において、6(=N)個の入力データ#1ないし#6を、先頭の方向に、3(=k)個だけサイクリックシフトしようとしている。
しかしながら、バレルシフタ61は、8個の入力データ#1ないし#8を対象としたサイクリックシフトを行う8単位のバレルシフタであるため、6個の入力データ#1ないし#6に、入力データ#7及び#8それぞれとしての無効なデータx及びyを加えた8個の入力データ#1ないし#8のサイクリックシフトが行われる。
すなわち、図10では、バレルシフタ61において、入力データ#1,#2,・・・,#6,x,yの並びが、3個だけサイクリックシフトされる。したがって、バレルシフタ61の出力(シフトデータ#1ないし#8)は、入力データ#4(=k+1),#5,#6(=N),x,y,#1,#2,#3(=k)の並びとなる。
6個の入力データ#1ないし#6を(先頭(左)の方向に)3個だけサイクリックシフトした結果は、入力データ#4,#5,#6,#1,#2,#3であるから、選択回路62では、バレルシフタ61が出力する入力データ#4,#5,#6,x,y,#1,#2,#3のうちの、サイクリックシフトの方向の先頭から3(=N-k)個の入力データ#4,#5,#6を、そのまま、出力データ#1,#2,#3として選択し、その後は、2(=M-N)個だけ下にシフトした位置にある3(=k)個の入力データ#1,#2,#3を、出力データ#4,#5,#6として選択することで、6個の入力データ#1ないし#6を3個だけサイクリックシフトした入力データ#4,#5,#6,#1,#2,#3の並びを、6個の出力データ#1ないし#6として得ることができる。
図11は、8単位のバレルシフタ61において行われる、6個の入力データ#1ないし#6のサイクリックシフトの他の一例を示している。
図11では、8単位のバレルシフタ61において、6個の入力データ#1ないし#6を、5(=k)個だけサイクリックシフトしようとしている。
しかしながら、図11では、図10の場合と同様に、バレルシフタ61において、入力データ#1,#2,・・・,#6,x,yの並びが、5個だけサイクリックシフトされるので、バレルシフタ61の出力(シフトデータ#1ないし#8)は、入力データ#6(=k+1),x,y,#1,#2,#3,#4,#5(=k)の並びとなる。
6個の入力データ#1ないし#6を5個だけサイクリックシフトした結果は、入力データ#6,#1,#2,#3,#4,#5であるから、選択回路62では、バレルシフタ61が出力する入力データ#6,x,y,#1,#2,#3,#4,#5のうちの、サイクリックシフトの方向の先頭から1(=N-k)個の入力データ#6を、そのまま、出力データ#1として選択し、その後は、2(=M-N)個だけ下にシフトした位置にある5(=k)個の入力データ#1,#2,#3,#4,#5を、出力データ#2,#3,#4,#5,#6として選択することで、6個の入力データ#1ないし#6を5個だけサイクリックシフトした入力データ#6,#1,#2,#3,#4,#5の並びを、6個の出力データ#1ないし#6として得ることができる。
以上から、M単位のバレルシフタ61において、Mより小のN個の入力データ#1ないし#Nの、k個のサイクリックシフトを行う場合には、選択回路62において、M単位のバレルシフタ61が出力するM個のシフトデータ#1ないし#Mのうちの、サイクリックシフトの方向の先頭からN-k個のシフトデータ#1ないし#N-kを、そのまま、出力データ#1ないし#N-kとして選択し、その後は、M-N個だけ下(後ろ)にあるk個のシフトデータ#N-k+(M-N)+1,・・・,#Mを、出力データ#N-k+1ないし#Nとして選択することで、N個の入力データ#1ないし#Nをk個だけサイクリックシフトした、正しい結果を得ることができる。
図12は、図8の選択回路62の構成例を示している。
上述したように、選択回路62は、M単位のバレルシフタ61が出力するM個のシフトデータ#1ないし#Mのうちの、サイクリックシフトの方向の先頭からN-k個のシフトデータ#1ないし#N-kを、そのまま、出力データ#1ないし#N-kとして選択し、その後は、M-N個だけ下(後ろ)にあるk個のシフトデータ#N-k+(M-N)+1,・・・,#Mを、出力データ#N-k+1ないし#Nとして選択することが可能となるように、N-1個の、2入力1出力のセレクタ812ないし81Nから構成される。
セレクタ81nにおいては、その一方の入力端子に、バレルシフタ61(図8)が出力するシフトデータ#nが供給され、他方の入力端子に、シフトデータ#nから、M-N個だけ後ろのシフトデータ#n+(M-N)が供給される。
セレクタ81nは、2ないしNの範囲の整数であるnについて、一方の入力端子に供給されるシフトデータ#n(n番目のシフトデータ)、又は、他方の入力端子に供給されるシフトデータ#n+(M-N)(n+(M-N)番目のシフトデータ)を選択し、出力データ#n(n番目の出力データ)として出力する。
すなわち、セレクタ81nには、バレルシフタ61(図8)が出力するシフトデータ#n及び#n+(M-N)の他、選択制御回路63(図8)からのN-1ビットの選択制御信号b2,b3,・・・,bNのうちの第n-1ビット(先頭からn-1ビット目のビット)bnが供給される。
セレクタ81nは、選択制御回路63からの選択制御信号の第n-1ビットbnが"0"である場合、一方の入力端子に供給されるシフトデータ#nを選択し、出力データ#nとして出力する。
また、セレクタ81nは、選択制御回路63からの選択制御信号の第n-1ビットbnが"1"である場合、他方の入力端子に供給されるシフトデータ#n+(M-N)を選択し、出力データ#nとして出力する。
以上のように、N-1個のセレクタ812ないし81Nを有する選択回路62では、バレルシフタ61(図8)が、M個の入力データ#1ないし#Mから構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、M個のシフトデータ#1ないし#Mを出力する場合には、1番目のシフトデータ#1を、1番目の出力データ#1として出力し、セレクタ81nにおいて、n番目のシフトデータ#nを、n番目の出力データ#nとして選択して出力し、N+1ないしM番目のシフトデータ#N+1ないし#Mを、N+1ないしM番目の出力データ#N+1ないし#Mとして出力する。
一方、バレルシフタ61(図8)が、Mより小のN個の入力データ#1ないし#Nから構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、M個のシフトデータ#1ないし#Mを出力する場合には、選択回路62では、1番目のシフトデータ#1を、1番目の出力データ#1として出力し、1ないしN-k-1番目のセレクタ812ないし81N-kにおいて、n番目のシフトデータ#nを、n番目の出力データ#nとして選択して出力し、N-kないしN-1番目のセレクタ81N-k+1ないし81Nにおいて、n+(M-N)番目のシフトデータ#n+(M-N)を、n番目の出力データ#nとして選択して出力する。
選択制御回路63は、制御装置34(図3)から供給される選択信号、及び、シフト量kに基づいて、選択回路62を、上述のように動作させるためのN-1ビットの選択制御信号b2ないしbNを生成して、選択回路62に供給することで、選択回路62のセレクタ812ないし81Nによるシフトデータの選択を制御する。
すなわち、制御装置34からの選択信号が、高度化BSのLDPC符号の復号の選択を表しており、サイクリックシフト装置33において、M(=374)個の入力データ#1ないし#Mから構成されるパラレルデータのサイクリックシフトを行う場合、選択制御回路63は、値がすべて"0"の選択制御信号b2ないしbNを生成し、選択回路62に供給する。
また、制御装置34からの選択信号が、DVB-S2のLDPC符号の復号の選択を表しており、サイクリックシフト装置33において、N(=360)個の入力データ#1ないし#Nから構成されるパラレルデータのサイクリックシフトを行う場合、選択制御回路63は、制御装置34からのシフト量kを、選択制御信号b2ないしbNに変換するための変換テーブルを参照して、選択制御信号b2ないしbNを生成し、選択回路62に供給する。
すなわち、図13は、変換テーブルを模式的に示している。
図13の変換テーブルによれば、シフト量kに対して、下位kビットbM-k+1ないしbMが、"1"で、上位N-k-1ビットb2ないしbN-kが、"0"になっている選択制御信号b2ないしbNが生成される。
図14は、Mが8で、Nが6の場合の選択回路62の構成例を示しており、図15は、選択制御回路63で用いられる変換テーブルを示している。
Mが8で、Nが6の場合には、選択回路62は、5(=N-1)個のセレクタ812ないし816から構成される。
セレクタ81nにおいては、その一方の入力端子に、バレルシフタ61(図8)が出力するシフトデータ#nが供給され、他方の入力端子に、シフトデータ#nから、2(=M-N)個だけ後ろのシフトデータ#n+2が供給される。
さらに、セレクタ81nには、選択制御回路63(図8)からの5(=N-1)ビットの選択制御信号b2,b3,b4,b5,b6のうちの第n-1ビット(先頭からn-1ビット目のビット)bnが供給される。
セレクタ81nは、選択制御回路63からの選択制御信号の第n-1ビットbnが"0"である場合、一方の入力端子に供給されるシフトデータ#nを選択し、出力データ#nとして出力する。
また、セレクタ81nは、選択制御回路63からの選択制御信号の第n-1ビットbnが"1"である場合、他方の入力端子に供給されるシフトデータ#n+2を選択し、出力データ#nとして出力する。
なお、選択回路62では、バレルシフタ61からのシフトデータ#1、及び、#N+1,#N+2,・・・,#Mは、そのまま、出力データ#1、及び、#N+1,#N+2,・・・,#Mとして出力されるようになっている。
すなわち、図14では、選択回路62において、シフトデータ#1,#7,#8は、そのまま、出力データ#1,#7,#8として出力される。
選択制御回路63(図8)は、バレルシフタ61(図8)が、8(=M)個の入力データ#1ないし#8から構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、8個のシフトデータ#1ないし#8を出力する場合には、値がすべて"0"の選択制御信号b2ないしb6を生成し、選択回路62に供給する。
この場合、選択回路62では、バレルシフタ61からのシフトデータ#1が、出力データ#1として出力される。また、選択回路62では、セレクタ812ないし816において、選択制御信号b2ないしb6に従い、バレルシフタ61からのシフトデータ#2ないし#6が、出力データ#2ないし#6として、それぞれ選択されて出力される。さらに、選択回路62では、バレルシフタ61からのシフトデータ#7,#8が、出力データ#7,#8として、それぞれ出力される。
一方、バレルシフタ61(図8)が、8(=M)より小の6(=N)個の入力データ#1ないし#6から構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、8個のシフトデータ#1ないし#8(但し、そのうちの2(=M-N)個のシフトデータは、無効なデータになっている)を出力する場合には、選択制御回路63は、6個の入力データ#1ないし#6をサイクリックシフトするシフト量kに基づき、図13で説明した変換テーブルを参照し、選択制御信号b2ないしb6を生成して、選択回路62に供給する。
図15は、Nが6である場合の変換テーブルを示している。
シフト量kが、例えば、図10で説明したように、3である場合、選択制御回路63は、図15の変換テーブルを参照して、選択制御信号b2ないしb6として、0,0,1,1,1を生成し、選択回路62に供給する。
この場合、選択回路62では、バレルシフタ61からのシフトデータ#1,#7,#8が、出力データ#1,#7,#8として、それぞれ出力される。但し、最後のM-N個の出力データである出力データ#7,#8は、サイクリックシフトの結果として扱われず、破棄される。
また、選択回路62では、セレクタ812及び813において、値が"0"の選択制御信号b2及びb3に従い、バレルシフタ61からのシフトデータ#2及び#3が、出力データ#2及び#3として、それぞれ選択されて出力される。
さらに、選択回路62では、セレクタ814ないし816において、値が"1"の選択制御信号b4ないしb6に従い、バレルシフタ61からのシフトデータ#6ないし#8が、出力データ#4及び#6として、それぞれ選択されて出力される。
以上のように、選択回路62では、バレルシフタ61からのシフトデータ#1,#2,#3,#6ないし#8が、出力データ#1ないし#6として、それぞれ出力される。
シフト量kが、3である場合、図10で説明したように、入力データ#1ないし#6に対して、バレルシフタ61が出力するシフトデータ#1ないし#8は、入力データ#4,#5,#6,x,y,#1,#2,#3の並びとなる。
したがって、上述したように、選択回路62において、バレルシフタ61からのシフトデータ#1,#2,#3,#6ないし#8が、出力データ#1ないし#6として、それぞれ出力されることにより、その出力データ#1ないし#6は、入力データ#1ないし#6をシフト量k=3だけサイクリックシフトした入力データ#4,#5,#6,#1,#2,#3の並びとなる。
また、シフト量kが、例えば、図11で説明したように、5である場合、選択制御回路63は、図15の変換テーブルを参照して、選択制御信号b2ないしb6として、1,1,1,1,1を生成し、選択回路62に供給する。
この場合、選択回路62では、バレルシフタ61からのシフトデータ#1,#7,#8が、出力データ#1,#7,#8として、それぞれ出力される。
また、選択回路62では、セレクタ812ないし816において、値が"1"の選択制御信号b2ないしb6に従い、バレルシフタ61からのシフトデータ#4ないし#8が、出力データ#2及び#6として、それぞれ選択されて出力される。
以上のように、選択回路62では、バレルシフタ61からのシフトデータ#1,#4ないし#8が、出力データ#1ないし#6として、それぞれ出力される。
シフト量kが、5である場合、図11で説明したように、入力データ#1ないし#6に対して、バレルシフタ61が出力するシフトデータ#1ないし#8は、入力データ#6,x,y,#1,#2,#3,#4,#5の並びとなる。
したがって、上述したように、選択回路62において、バレルシフタ61からのシフトデータ#1,#4ないし#8が、出力データ#1ないし#6として、それぞれ出力されることにより、その出力データ#1ないし#6は、入力データ#1ないし#6をシフト量k=5だけサイクリックシフトした入力データ#6,#1,#2,#3,#4,#5の並びとなる。
次に、図16を参照して、図8のサイクリックシフト装置33の処理(サイクリックシフト処理)について説明する。
M単位のバレルシフタ61は、演算装置32(図3)から、同時に求められるQ個のメッセージが供給されるのを待って、そのQ個のメッセージを、複数の入力データとして受信する。そして、バレルシフタ61は、ステップS51において、複数の入力データからなるパラレルデータを、制御装置34から供給されるシフト量kだけサイクリックシフトし、その結果得られるM個のシフトデータ#1ないし#Mを、選択回路62に出力して、処理は、ステップS52に進む。
ステップS52では、選択制御回路63が、制御装置34から供給される選択信号に基づき、バレルシフタ61でサイクリックシフトされたパラレルデータを構成する入力データの数が、M個であるか、又は、Mより小のN個であるかを判定する。
ステップS52において、バレルシフタ61でサイクリックシフトされたパラレルデータを構成する入力データの数が、M個であると判定された場合、処理は、ステップS53に進み、選択制御回路63は、バレルシフタ61が出力する1ないしM番目のシフトデータ#1ないし#Mを、そのまま、1ないしM番目の出力データ#1ないし#Mとしてそれぞれ選択するように、選択回路63によるシフトデータ#1ないし#Mの選択を制御する。
すなわち、選択制御回路63は、値がすべて"0"の選択制御信号b2ないしbNを生成し、選択回路62に供給する。
その後、処理は、ステップS53からステップS54に進み、選択回路62は、選択制御回路63からの選択制御信号b2ないしbNに従い、バレルシフタ61からのシフトデータ#m(m=1,2,・・・,M)を、出力データ#mとしてそれぞれ選択して出力し、サイクリックシフト処理を終了する。
また、ステップS52において、バレルシフタ61でサイクリックシフトされたパラレルデータを構成する入力データの数が、Mより小のN個であると判定された場合、処理は、ステップS55に進み、選択制御回路63は、バレルシフタ61が出力する1ないしM番目のシフトデータ#1ないし#Mのうちの、1ないしN-k番目のN-k個のシフトデータ#1ないし#N-kを、そのまま、1ないしN-k番目の出力データ#1ないし#N-kとしてそれぞれ選択し、かつ、最後からk個のシフトデータ#M-k+1ないし#Mを、出力データN-k+1ないし#Nとしてそれぞれ選択するように、選択回路63によるシフトデータ#1ないし#Mの選択を制御する。
すなわち、選択制御回路63は、制御装置34(図3)から供給されるシフト量kに対して、図13の変換テーブルに従い、下位kビットが"1"で、残りの上位ビットが"0"の選択制御信号b2ないしbNを生成し、選択回路62に供給する。
その後、処理は、ステップS55からステップS56に進み、選択回路62は、選択制御回路63からの選択制御信号b2ないしbNに従い、バレルシフタ61からのシフトデータ#1ないし#Mのうちの、シフトデータ#1ないし#N-kを、出力データ#1ないし#N-kとして、それぞれ選択して出力し、かつ、シフトデータ#M-k+1ないし#Mを、出力データN-k+1ないし#Nとして、それぞれ選択して出力し、サイクリックシフト処理を終了する。
以上のように、M単位のバレルシフタ61を有するサイクリックシフト装置33において、M個より小のN個の入力データから構成されるパラレルデータを、N未満のシフト量kだけサイクリックシフトする場合に、選択回路62において、1ないしN-k番目の出力データ#1ないし#N-kとして、バレルシフタ61が行うサイクリックシフトの方向の先頭から1ないしN-k番目のシフトデータ#1ないし#N-kを選択して出力し、N-k+1ないしN番目の出力データ#N-k+1ないし#Nとして、バレルシフタ61が行うサイクリックシフトの方向の先頭からN-k+1+(M-N)ないしN+(M-N)番目のシフトデータ#M-k+1ないし#Mを選択して出力するので、M単位のバレルシフタ61を利用して、M個の入力データのサイクリックシフトの他、Mより小のN個の入力データのサイクリックシフトを行うことができる。
したがって、M単位のバレルシフタ61の他に、N単位のバレルシフタを設けずに、M個の入力データのサイクリックシフトと、Mより小のN個の入力データのサイクリックシフトとの両方を行うことができる。
その結果、M個の入力データのサイクリックシフトと、Mより小のN個の入力データのサイクリックシフトとを行う必要がある場合に、多数のセレクタを必要とするバレルシフタを2個設けずに済むので(1個のバレルシフタで済むので)、装置を小型に構成することができる。
なお、図3のLDPC復号装置を、DVB-S2用と高度化BS用との両用とする場合、値Mは、DVB-S2の巡回構造の単位の列数Pに等しい演算単位Qである360と、高度化BSの巡回構造の単位の列数Pに等しい演算単位Qである374とのうちの、大きい方に等しい374となり、値Nは、小さい方に等しい360となる。
そして、図1のTVにおいて、DVB-S2の送信データを受信する場合には、制御装置34(図3)は、DVB-S2のLDPC符号の復号の選択(バレルシフタ61において、360(=N)個の入力データから構成されるパラレルデータのサイクリックシフトを行うこと)を表す選択信号を生成し、サイクリックシフト装置33に供給する。
さらに、制御装置34は、DVB-S2のLDPC符号の検査行列を構成するQ×Q(=P×P=N×N)の構成行列に基づき、図5で説明したように、シフト量kを決定して、サイクリックシフト装置33に供給する。
一方、図1のTVにおいて、高度化BSの送信データを受信する場合には、制御装置34(図3)は、高度化BSのLDPC符号の復号の選択(バレルシフタ61において、374(=M)個の入力データから構成されるパラレルデータのサイクリックシフトを行うこと)を表す選択信号を生成し、サイクリックシフト装置33に供給する。
さらに、制御装置34は、高度化BSのLDPC符号の検査行列を構成するQ×Q(=P×P=M×M)の構成行列に基づき、図5で説明したように、シフト量kを決定して、サイクリックシフト装置33に供給する。
なお、上述の実施の形態では、MとNを、374と360や、8と6としたが、MとNは、これらの値に限定されるものではない。但し、バレルシフタ61(図8)として、M単位のバレルシフタを採用する場合、Nは、Mより小の値である必要がある。
図17は、図3のサイクリックシフト装置33のさらに他の構成例を示している。
なお、図中、図8の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
すなわち、図17のサイクリックシフト装置33は、バレルシフタ61を有する点で、図8の場合と一致するが、選択回路62、及び、選択制御回路63に代えて、選択回路102、及び、選択制御回路103が設けられている点で、図8の場合と相違する。
図8では、Mより小のNを、1個の整数値としたが、Nとしては、複数であるT個の整数値を採用することができる。
いま、Nとして採用するT個の整数値を、N1,N2,・・・,NTと表すこととする。なお、Ntは、N1ないしNTのうちの、降順でt番目の整数値であり、2以上M未満の範囲の値である。
図17のサイクリックシフト装置33では、M単位のサイクリックシフトと、N1ないしNT単位それぞれのサイクリックシフトとの、合計で、T+1種類の単位のサイクリックシフトを行うことができる。
バレルシフタ61には、制御装置34(図3)から、M未満(0以上)のシフト量kを表す制御信号が供給される。さらに、バレルシフタ61には、M個の入力データ#1ないし#Mからなるパラレルデータが、演算装置32から供給される。
バレルシフタ61は、M単位のバレルシフタであり、演算装置32から供給される入力データ#1ないし#Mを、制御装置34から供給される制御信号が表す、0ないしM未満の範囲のシフト量kだけサイクリックシフトする。そして、バレルシフタ61は、そのサイクリックシフト後の入力データ#1+k,#2+k,・・・,#M,#1,#2,・・・,#kを、シフトデータ#1,#2,・・・,#Mとして、選択回路102に供給する。
なお、図17のサイクリックシフト装置33において、Nt単位のサイクリックシフトを行う場合には、バレルシフタ61に供給されるM個の入力データ#1ないし#Mのうちの、サイクリックシフトを行いたい入力データ#1ないし#Nt以外、つまり、入力データ#Nt+1,#Nt+2,・・・,Mは、無効なデータである。
また、図17のサイクリックシフト装置33において、Nt単位のサイクリックシフトを行う場合、シフト量kは、Nt未満(0以上)の整数値である。
選択回路102は、選択制御回路103からの選択制御信号に従い、例えば、バレルシフタ61から供給される(バレルシフタ61が出力する)シフトデータ#1ないし#Mの全部を、M個の入力データ#1ないし#Mを1個のパラレルデータとしたサイクリックシフトの結果であるM個の出力データ#1ないし#Mとして選択して出力する。
また、選択回路102は、選択制御回路103からの選択制御信号に従い、バレルシフタ61から供給されるシフトデータ#1ないし#MのうちのNt個を、Nt個の入力データ#1ないし#Ntを1個のパラレルデータとしたサイクリックシフト(Nt単位のサイクリックシフト)の結果であるNt個の出力データ#1ないし#Ntとして選択して出力する。
すなわち、図17のサイクリックシフト装置33において、M単位のサイクリックシフトを行う場合(M単位のサイクリックシフトを行った結果を得たい場合)、選択回路102は、選択制御回路103からの選択制御信号に従い、バレルシフタ61からのシフトデータ#1ないし#Mを、M個の出力データ#1ないし#Mとして選択して出力する。
また、図17のサイクリックシフト装置33において、Nt単位のサイクリックシフトを行う場合(Nt単位のサイクリックシフトを行った結果を得たい場合)、選択回路102は、選択制御回路103からの選択制御信号に従い、1ないしNt-k番目の出力データとして、バレルシフタ61が行うサイクリックシフトの方向の先頭から1ないしNt-k番目のシフトデータ#1ないし#Nt-kを選択して出力する。さらに、選択回路102は、Nt-k+1ないしN番目の出力データ#Nt-k+1ないし#Ntとして、バレルシフタ61が行うサイクリックシフトの方向の先頭からNt-k+1+(M-Nt)ないしNt+(M-Nt)番目のシフトデータ#Nt-k+1+(M-Nt)ないし#Nt+(M-Nt)を選択して出力する。
選択制御回路103には、制御装置34(図3)から、シフト量kを表す制御信号と、何単位(M単位、又は、N1,N2,・・・,NT-1、若しくはNT単位のうちのいずれか)のサイクリックシフトを行うかを表す選択信号が供給される。
選択制御回路103は、制御装置34(図3)からの選択信号、さらには、シフト量kに基づき、後述するようにして、選択制御信号を生成し、選択回路102に供給する。
図18は、図17の選択回路102の構成例を示している。
選択回路102は、M単位のバレルシフタ61が出力するM個のシフトデータ#1ないし#Mのうちの、サイクリックシフトの方向の先頭からNt-k個のシフトデータ#1ないし#Nt-kを、そのまま、出力データ#1ないし#Nt-kとして選択し、その後は、M-Nt個だけ下(後ろ)にあるk個のシフトデータ#Nt-k+(M-Nt)+1,・・・,#Mを、出力データ#Nt-k+1ないし#Ntとして選択することが可能となるように、N1-1個の、T+1入力1出力のセレクタ111_2ないし111_N1から構成される。
セレクタ111_nにおいては(n=2,3,・・・,N1)、そのT+1個の入力端子のうちの1番目の入力端子#0に、バレルシフタ61(図17)が出力するシフトデータ#nが供給される。さらに、2ないしT+1番目の入力端子#1ないし#Tのうちの、t+1番目の入力端子#tに、シフトデータ#nから、M-Nt個だけ後ろのシフトデータ#n+(M-Nt)が供給される。
但し、シフトデータ#nから、M-Nt個だけ後ろのシフトデータ#n+(M-Nt)が存在しない場合、t+1番目の入力端子#tには、データは供給されない(無効なデータが供給される)。
すなわち、例えば、セレクタ111_NT+1については、シフトデータ#NT+1から、M-NT個だけ後ろのシフトデータ#NT+1+(M-NT)は存在しないので(NT+1+(M-NT)>Mとなるので)、そのT+1番目の入力端子#Tには、データは供給されない。
また、例えば、セレクタ111_N1については、シフトデータ#N1から、M-N1個だけ後ろのシフトデータ#N1+(M-N1)は存在するが、tが2ないしTの範囲については、シフトデータ#N1から、M-Nt個だけ後ろのシフトデータ#N1+(M-Nt)は存在しないので(N1+(M-Nt)>Mとなるので)、その3ないしT+1番目の入力端子#2ないし#Tには、データは供給されない。
セレクタ111_nは、2ないしNtの範囲の整数であるnについて、1番目の入力端子#0に供給されるシフトデータ#n(n番目のシフトデータ)、又は、t+1番目の入力端子#tに供給されるシフトデータ#n+(M-Nt)(n+(M-Nt)番目のシフトデータ)を選択し、出力データ#n(n番目の出力データ)として出力する。
すなわち、セレクタ111_nには、バレルシフタ61(図17)が出力するシフトデータ#n、及び#n+(M-N1),#n+(M-N2),・・・,#n+(M-NT)の他、選択制御回路103(図17)からの選択制御信号c_2,c_3,・・・,c_N1のうちの(先頭から)n-1番目c_nが供給される。
セレクタ111_nは、選択制御回路103からの選択制御信号のn-1番目c_nが"0"である場合、1番目の入力端子#0に供給されるシフトデータ#nを選択し、出力データ#nとして出力する。
また、セレクタ111_nは、選択制御回路103からの選択制御信号のn-1番目c_nがtである場合、t+1番目の入力端子#tに供給されるシフトデータ#n+(M-Nt)を選択し、出力データ#nとして出力する。
以上のように、Nt-1個のセレクタ111_2ないし111_N1を有する選択回路102では、バレルシフタ61(図17)が、M個の入力データ#1ないし#Mから構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、M個のシフトデータ#1ないし#Mを出力する場合には、1番目のシフトデータ#1を、1番目の出力データ#1として出力し、セレクタ111_nにおいて、n番目のシフトデータ#nを、n番目の出力データ#nとして選択して出力し、N1+1ないしM番目のシフトデータ#N1+1ないし#Mを、N1+1ないしM番目の出力データ#N1+1ないし#Mとして出力する。
一方、バレルシフタ61(図17)が、Mより小のNt個の入力データ#1ないし#Ntから構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、M個のシフトデータ#1ないし#Mを出力する場合には、選択回路102では、1番目のシフトデータ#1を、1番目の出力データ#1として出力し、1ないしNt-k-1番目のセレクタ111_2ないし111_Nt−kにおいて、n番目のシフトデータ#nを、n番目の出力データ#nとして選択して出力し、Nt-kないしNt-1番目のセレクタ111_Nt−k+1ないし111_Ntにおいて、n+(M-Nt)番目のシフトデータ#n+(M-Nt)を、n番目の出力データ#nとして選択して出力する。
選択制御回路103は、制御装置34(図3)から供給される選択信号、及び、シフト量kに基づいて、選択回路102を、上述のように動作させるための選択制御信号c_2ないしc_N1を生成して、選択回路102に供給することで、選択回路102のセレクタ111_2ないし111_N1によるシフトデータの選択を制御する。
すなわち、図17のサイクリックシフト装置33については、制御装置34は、M単位、又は、N1,N2,・・・,NT-1、若しくはNT単位のうちのいずれかのサイクリックシフトを表す選択信号が供給される。
制御装置34からの選択信号が、M単位のサイクリックシフトを表している場合、選択制御回路103は、値がすべて"0"の選択制御信号c_2ないしc_N1を生成し、選択回路102に供給する。
また、制御装置34からの選択信号が、Nt単位のサイクリックシフトを表している場合、選択制御回路103は、制御装置34からのシフト量kを、選択制御信号c_2ないしc_N1に変換するための変換テーブルを参照して、選択制御信号c_2ないしc_N1を生成し、選択回路102に供給する。
選択制御回路103が参照する変換テーブルについては、後述する。
図19は、Mが8で、Nが、3(=T)個の整数値N1=6,N2=5、及びN3=4をとり得る場合の選択回路102の構成例を示している。
Mが8で、N1が6の場合には、選択回路102は、5(=N1-1)個のセレクタ111_2ないし111_6から構成される。
セレクタ111_nは、4(=T+1)つの入力端子#0ないし#3を有する。そして、1番目の入力端子#0には、バレルシフタ61(図17)が出力するシフトデータ#nが供給され、t+1番目の入力端子#tには、シフトデータ#nから、M-Nt個だけ後ろのシフトデータ#n+(M-Nt)が供給される。
すなわち、セレクタ111_2については、1番目の入力端子#0に、シフトデータ#2が、2番目の入力端子#1に、シフトデータ#4が、3番目の入力端子#2に、シフトデータ#5が、4番目の入力端子#3に、シフトデータ#6が、それぞれ供給される。
セレクタ111_3については、1番目の入力端子#0に、シフトデータ#3が、2番目の入力端子#1に、シフトデータ#5が、3番目の入力端子#2に、シフトデータ#6が、4番目の入力端子#3に、シフトデータ#7が、それぞれ供給される。
セレクタ111_4については、1番目の入力端子#0に、シフトデータ#4が、2番目の入力端子#1に、シフトデータ#6が、3番目の入力端子#2に、シフトデータ#7が、4番目の入力端子#3に、シフトデータ#8が、それぞれ供給される。
セレクタ111_5については、1番目の入力端子#0に、シフトデータ#5が、2番目の入力端子#1に、シフトデータ#7が、3番目の入力端子#2に、シフトデータ#8が、それぞれ供給される。なお、セレクタ111_5については、4番目の入力端子#3には、データは供給されない。
セレクタ111_6については、1番目の入力端子#0に、シフトデータ#6が、2番目の入力端子#1に、シフトデータ#8が、それぞれ供給される。なお、セレクタ111_5については、3番目の入力端子#2、及び、4番目の入力端子#3には、データは供給されない。
さらに、セレクタ111_nには、選択制御回路103(図17)からの選択制御信号c_2,c_3,c_4,c_5,c_6のうちのn-1番目(先頭からn-1番目)c_nが供給される。
セレクタ111_nは、選択制御回路103からの選択制御信号のn-1番目c_nが"0"である場合、1番目の入力端子#0に供給されるシフトデータ#nを選択し、出力データ#nとして出力する。
また、セレクタ111_nは、選択制御回路103からの選択制御信号のn-1番目c_nがtである場合、t+1番目の入力端子#tに供給されるシフトデータ#n+(M-Nt)を選択し、出力データ#nとして出力する。
なお、選択回路102では、バレルシフタ61からのシフトデータ#1、及び、#N1+1,#N1+2,・・・,#Mは、そのまま、出力データ#1、及び、#N1+1,#N1+2,・・・,#Mとして出力されるようになっている。
すなわち、図19では、選択回路102において、シフトデータ#1,#7,#8は、そのまま、出力データ#1,#7,#8として出力される。
選択制御回路103(図17)は、バレルシフタ61(図17)が、8(=M)個の入力データ#1ないし#8から構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、8個のシフトデータ#1ないし#8を出力する場合には、値がすべて"0"の選択制御信号c_2ないしc_6を生成し、選択回路102に供給する。
この場合、選択回路102では、バレルシフタ61からのシフトデータ#1が、出力データ#1として出力される。また、選択回路102では、セレクタ111_2ないし111_6において、選択制御信号c_2ないしc_6に従い、バレルシフタ61からのシフトデータ#2ないし#6が、出力データ#2ないし#6として、それぞれ選択されて出力される。さらに、選択回路102では、バレルシフタ61からのシフトデータ#7,#8が、出力データ#7,#8として、それぞれ出力される。
一方、バレルシフタ61(図17)が、8(=M)より小のNt個(ここでは、N1=6,N2=5、及びN3=4のうちのいずれか)の入力データ#1ないし#Ntから構成されるパラレルデータをサイクリックシフトし、そのサイクリックシフトの結果、8個のシフトデータ#1ないし#8(但し、そのうちのM-Nt個のシフトデータは、無効なデータになっている)を出力する場合には、選択制御回路103は、Nt個の入力データ#1ないし#Ntをサイクリックシフトするシフト量kに基づき、変換テーブルを参照して、選択制御信号c_2ないしc_6を生成して、選択回路102に供給する。
図20は、選択回路102が図19に示したように構成される場合に、選択制御回路103が参照する変換テーブルを示している。
図20に示すように、横軸を、選択制御信号c_nとするとともに、縦軸を、シフト量kとするテーブルとして、変換テーブルを構成する場合、Nt単位のサイクリックシフトを行うときに参照される変換テーブルは、横×縦が、(Nt-1)×Ntの行列(行×列が、Nt行×(Nt-1)列の行列)であって、対角線上の成分を含む左上側の三角形の部分の成分が0で、右下側の三角形の部分の成分がtの行列となる。
すなわち、図20Aは、N1単位、すなわち、6(=N1)単位のサイクリックシフトを行う場合の変換テーブルを示している。
図20Aの変換テーブルによれば、シフト量kが、例えば、図10で説明したように、3である場合、選択制御回路103は、選択制御信号c_2ないしc_6として、0,0,1,1,1を生成し、選択回路102に供給する。
この場合、選択回路102では、バレルシフタ61からのシフトデータ#1,#7,#8が、出力データ#1,#7,#8として、それぞれ出力される。但し、最後のM-N1個の出力データである出力データ#7,#8は、サイクリックシフトの結果として扱われず、例えば、破棄される。なお、出力データ#7,#8は、そのまま出力しても良い。
また、選択回路102では、セレクタ111_2及び111_3において、値が"0"の選択制御信号c_2及びc_3に従い、バレルシフタ61からのシフトデータ#2及び#3が、出力データ#2及び#3として、それぞれ選択されて出力される。
さらに、選択回路102では、セレクタ111_4ないし111_6において、値が"1"の選択制御信号c_4ないしc_6に従い、バレルシフタ61からのシフトデータ#6ないし#8が、出力データ#4及び#6として、それぞれ選択されて出力される。
以上のように、選択回路102では、バレルシフタ61からのシフトデータ#1,#2,#3,#6ないし#8が、出力データ#1ないし#6として、それぞれ出力される。
シフト量kが、3である場合、図10で説明したように、入力データ#1ないし#6に対して、バレルシフタ61が出力するシフトデータ#1ないし#8は、入力データ#4,#5,#6,x,y,#1,#2,#3の並びとなる。
したがって、上述したように、選択回路102において、バレルシフタ61からのシフトデータ#1,#2,#3,#6ないし#8が、出力データ#1ないし#6として、それぞれ出力されることにより、その出力データ#1ないし#6は、入力データ#1ないし#6をシフト量k=3だけサイクリックシフトした入力データ#4,#5,#6,#1,#2,#3の並びとなる。
図20Bは、N2単位、すなわち、5(=N2)単位のサイクリックシフトを行う場合の変換テーブルを示している。
図20Bの変換テーブルによれば、シフト量kが、例えば、3である場合、選択制御回路103は、選択制御信号c_2ないしc_5として、0,2,2,2を生成し、選択回路102に供給する。
この場合、選択回路102では、バレルシフタ61からのシフトデータ#1,が、出力データ#1として出力される。
また、選択回路102では、セレクタ111_2において、値が"0"の選択制御信号c_2に従い、バレルシフタ61からのシフトデータ#2が、出力データ#2として選択されて出力される。
さらに、選択回路102では、セレクタ111_3ないし111_5において、値が"2"の選択制御信号c_3ないしc_5に従い、バレルシフタ61からのシフトデータ#6ないし#8が、出力データ#3及び#5として、それぞれ選択されて出力される。
以上のように、選択回路102では、バレルシフタ61からのシフトデータ#1,#2,#6ないし#8が、出力データ#1ないし#5として、それぞれ出力される。
シフト量kが、3である場合、入力データ#1ないし#5に対して、バレルシフタ61が出力するシフトデータ#1ないし#8は、入力データ#4,#5,×,×,×,#1,#2,#3の並びとなる。ここで、バツ印(×印)は、無効なデータを表す。
したがって、上述したように、選択回路102において、バレルシフタ61からのシフトデータ#1,#2,#6ないし#8が、出力データ#1ないし#5として、それぞれ出力されることにより、その出力データ#1ないし#5は、入力データ#1ないし#5をシフト量k=3だけサイクリックシフトした入力データ#4,#5,#1,#2,#3の並びとなる。
なお、この場合、出力データ#6ないし#8は、無効なデータであり、選択回路102において、例えば、破棄される。但し、出力データ#6ないし#8は、そのまま出力しても良い。
図20Cは、N3単位、すなわち、4(=N3)単位のサイクリックシフトを行う場合の変換テーブルを示している。
図20Cの変換テーブルによれば、シフト量kが、例えば、3である場合、選択制御回路103は、選択制御信号c_2ないしc_4として、3,3,3を生成し、選択回路102に供給する。
この場合、選択回路102では、バレルシフタ61からのシフトデータ#1,が、出力データ#1として出力される。
また、選択回路102では、セレクタ111_2ないし111_4において、値が"3"の選択制御信号c_2ないしc_4に従い、バレルシフタ61からのシフトデータ#6ないし#8が、出力データ#2及び#4として、それぞれ選択されて出力される。
以上のように、選択回路102では、バレルシフタ61からのシフトデータ#1,#6ないし#8が、出力データ#1ないし#4として、それぞれ出力される。
シフト量kが、3である場合、入力データ#1ないし#4に対して、バレルシフタ61が出力するシフトデータ#1ないし#8は、入力データ#4,×,×,×,×,#1,#2,#3の並びとなる。
したがって、上述したように、選択回路102において、バレルシフタ61からのシフトデータ#1,#6ないし#8が、出力データ#1ないし#4として、それぞれ出力されることにより、その出力データ#1ないし#4は、入力データ#1ないし#4をシフト量k=3だけサイクリックシフトした入力データ#4,#1,#2,#3の並びとなる。
なお、この場合、出力データ#5ないし#8は、無効なデータであり、選択回路102において、例えば、破棄される。但し、出力データ#5ないし#8は、そのまま出力しても良い。
以上のように、M単位のバレルシフタ61を有するサイクリックシフト装置33において、M個より小のNt個の入力データから構成されるパラレルデータを、Nt未満のシフト量kだけサイクリックシフトする場合に、選択回路102において、1ないしNt-k番目の出力データ#1ないし#Nt-kとして、バレルシフタ61が行うサイクリックシフトの方向の先頭から1ないしNt-k番目のシフトデータ#1ないし#Nt-kを選択して出力し、Nt-k+1ないしNt番目の出力データ#Nt-k+1ないし#Ntとして、バレルシフタ61が行うサイクリックシフトの方向の先頭からNt-k+1+(M-Nt)ないしNt+(M-Nt)番目のシフトデータ#M-k+1ないし#Mを選択して出力するので、M単位のバレルシフタ61を利用して、M個の入力データのサイクリックシフトの他、Mより小のNt個の入力データのサイクリックシフト、すなわち、N1,N2,・・・,NT-1、及びNT単位のサイクリックシフトを行うことができる。
したがって、M単位のバレルシフタ61の他に、バレルシフタを設けることなく、M単位と、そのM未満(2以上)のT種類の単位との、合計で、T+1種類の単位のサイクリックシフトを行うことができ、サイクリックシフト装置33を小型に構成することができる。
以上のように、Mより小のNとして、複数であるT個の整数値N1,N2,・・・,NTを採用することにより、図3のLDPC復号装置を、3種類以上の放送方式に共用することができる。
すなわち、上述したように、DVB-S2では、巡回構造の単位の列数Pが360であり、高度化BSでは、巡回構造の単位の列数Pが374である。
また、例えば、中国の地上ディジタル放送の規格であるDTMB(Digital Terrestrial Multimedia Broadcast)では、巡回構造の単位の列数Pとして、127が採用されている。
さらに、将来策定される新たな放送規格では(又は、既存の放送規格の変更により)、巡回構造の単位の列数Pとして、例えば、256等の、374や、360,127とは異なる値が採用されることがあり得る。
したがって、例えば、Nとして、3個の整数値N1,N2,N3を採用し、Mを374とするとともに、N1,N2,N3を、それぞれ、360,256,127とすることにより、図3のLDPC復号装置は、DVB-S2、高度化BS、DTMB、及び、新たな放送規格の、4つの放送方式(規格)に共用することができる。
次に、上述の場合には、図3のLDPC復号装置の演算単位Qとして、巡回構造の単位の列数Pを採用したが、演算単位Qとしては、その他、例えば、巡回構造の単位の列数Pの、1及びP以外の約数P'を採用することができる。
すなわち、検査行列が、P×Pの構成行列で構成される場合に、そのP×Pの構成行列は、行や列の置換を必要に応じて行うことで、Pの約数であるP'×P'の構成行列に、いわば分割することができる。
したがって、演算単位Qとして、巡回構造の単位の列数Pの約数P'を採用した場合も、演算単位Qとして、巡回構造の単位の列数Pを採用した場合と同様に、LDPC符号の復号を行うことができる。
図21は、P×Pの構成行列と、その構成行列を分割したP'×P'の構成行列とを示している。
すなわち、図21Aは、P×Pの構成行列としての6×6の構成行列を示している。
図21Aの構成行列は、6×6の単位行列を、1列だけ右にサイクリックシフトしたシフト行列になっている。
図21Bは、図21Aの6×6の構成行列を、6の約数である3×3の、4個の構成行列に分割した状態を示している。
図21Aの6×6の構成行列は、その第1行(1行目)を第1行に、第3行を第2行に、第5行を第3行に、第2行を第4行に、第4行を第5行に、第6行を第6行に、それぞれ置換する行置換を行うとともに、第1列(1列目)を第1列に、第3列を第2列に、第5列を第3列に、第2列を第4列に、第4列を第5列に、第6列を第6列に、それぞれ置換する列置換を行うことで、図21Bに示すように、3×3の、4個の構成行列に分割することができる。
図21Cは、図21Aの6×6の構成行列を、6の約数である2×2の、9個の構成行列に分割した状態を示している。
図21Aの6×6の構成行列は、その第1行を第1行に、第4行を第2行に、第2行を第3行に、第5行を第4行に、第3行を第5行に、第6行を第6行に、それぞれ置換する行置換を行うとともに、第1列を第1列に、第4列を第2列に、第2列を第3列に、第5列を第4列に、第3列を第5列に、第6列を第6列に、それぞれ置換する列置換を行うことで、図21Cに示すように、2×2の、9個の構成行列に分割することができる。
以上のような構成行列の分割によれば、演算単位Qとして、巡回構造の単位の列数Pの約数P'を採用することができ、図3のLDPC符号化装置のさらなる小型化を図るとともに、効率化を図ることができる。
すなわち、例えば、中国の地上ディジタル放送の規格であるDTMBでは、上述したように、巡回構造の単位の列数Pとして、127が採用されている。
いま、図3のLDPC復号装置を、DVB-S2とDTMBとで共用することとし、演算単位Qとして、巡回構造の単位の列数Pを採用することとすると、DVB-S2についての演算単位Qは、360(=P)となり、DTMBについての演算単位Qは、127(=P)となる。
この場合、図8のサイクリックシフト装置33では、Mが360となり、Nが127となる。
Mが360である場合、log2M以上の最小の整数Kは、9であり、したがって、バレルシフタ61としては、360(=M)個の、2入力1出力のセレクタを、9(=K)段だけ配置したバレルシフタが必要となる。
しかしながら、127単位のサイクリックシフトでは、9段のセレクタのうちの、1段目から7段目(log2N以上の最小の整数)までのセレクタしか必要としない(使用しない)。
したがって、Mが360で、Nが127である場合に、9段のセレクタを配置したバレルシフタを、バレルシフタ61として採用しなければならないのは、効率的でないし、サイクリックシフト装置33も大型化する。
そこで、DVB-S2についての演算単位Qとして、巡回構造の単位の列数P(=360)の約数P'である、例えば、180を採用することにより、バレルシフタ61として、少ない段数のセレクタを配置したバレルシフタを採用することができ、その結果、図8のサイクリックシフト装置33(ひいては、図3のLDPC復号装置)の小型化、及び効率化を図ることができる。
すなわち、DVB-S2についての演算単位Qとして、巡回構造の単位の列数P(=360)の約数P'である180を採用した場合には、Mが180となり、Nが127となる。
Mが180である場合、log2M以上の最小の整数Kは、8であり、バレルシフタ61は、180(=M)個の、2入力1出力のセレクタを、8(=K)段だけ配置したバレルシフタとなる。
したがって、Mが180である場合には、Mが360である場合に比較して、バレルシフタ61を小型に構成することができ、さらに、効率的に使用することができる。
なお、Nとして、T個の整数値N1ないしNTを採用する場合も、演算単位Qとして、巡回構造の単位の列数Pの約数P'を、必要に応じて採用することができる。
すなわち、図3のLDPC復号装置を、例えば、DVB-S2、高度化BS、DTMB、及び、新たな放送規格の、4つの放送方式に共用する場合には、DVB-S2については、演算単位Qとして、巡回構造の単位の列数P(=360)の約数P'である、例えば、180を、高度化BSについては、演算単位Qとして、巡回構造の単位の列数P(=374)の約数P'である、例えば、187を、DTMBについては、演算単位Qとして、巡回構造の単位の列数Pである127を、新たな放送規格については、巡回構造の単位の列数P(=256)の約数P'である、例えば、128を、それぞれ採用することができる。
そして、Mを187とするとともに、N1,N2,N3を、それぞれ、180,128,127とすることにより、図3のLDPC復号装置は、DVB-S2、高度化BS、DTMB、及び、新たな放送規格の、4つの放送方式に共用することができる。
以上のように、MとN(Nt)とは、値が近い方が、バレルシフタ61を、効率的に使用することができる。
次に、図22は、本発明を適用した受信システムの第1実施の形態の構成例を示すブロック図である。
図22において、受信システムは、取得部201、伝送路復号処理部202、及び、情報源復号処理部203から構成される。
取得部201は、例えば、図1の取得部11と同様に構成され、例えば、地上ディジタル放送、衛星ディジタル放送、CATV網、インターネットその他のネットワーク等の、図示せぬ伝送路を介して、信号を取得し、伝送路復号処理部202に供給する。
伝送路復号処理部202は、取得部201が伝送路を介して取得した信号に対して、伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施し、その結果得られる信号を、情報源復号処理部203に供給する。
すなわち、取得部201が伝送路を介して取得した信号は、伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、伝送路復号処理部202は、そのような信号に対して、例えば、誤り訂正処理等の伝送路復号処理を施す。
ここで、誤り訂正符号化としては、例えば、LDPC符号化や、リードソロモン符号化等がある。ここでは、誤り訂正符号化として、少なくとも、LDPC符号化が行われている。
また、伝送路復号処理には、変調信号の復調等が含まれることがある。
情報源復号処理部203は、伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理を少なくとも含む情報源復号処理を施す。
すなわち、取得部201が伝送路を介して取得した信号には、情報としての画像や音声等のデータ量を少なくするために、情報を圧縮する圧縮符号化が施されていることがあり、その場合、情報源復号処理部203は、伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理(伸張処理)等の情報源復号処理を施す。
なお、取得部201が伝送路を介して取得した信号に、圧縮符号化が施されていない場合には、情報源復号処理部203では、圧縮された情報を元の情報に伸張する処理は行われない。
ここで、伸張処理としては、例えば、MPEGデコード等がある。また、伝送路復号処理には、伸張処理の他、デスクランブル等が含まれることがある。
以上のように構成される受信システムでは、取得部201において、例えば、画像や音声等のデータに対して、MPEG符号化等の圧縮符号化が施され、さらに、LDPC符号化等の誤り訂正符号化が施された信号が、伝送路を介して取得され、伝送路復号処理部202に供給される。
伝送路復号処理部202では、取得部201からの信号に対して、図1の復調部12と同様の処理が、伝送路復号処理として施され、その結果得られる信号が、情報源復号処理部203に供給される。
情報源復号処理部203では、伝送路復号処理部202からの信号に対して、図1のデコーダ14と同様の処理が、情報源復号処理として施され、その結果得られる画像、又は音声が出力される。
以上のような図22の受信システムは、例えば、ディジタル放送としてのテレビジョン放送を受信するテレビチューナ等に適用することができる。
なお、取得部201、伝送路復号処理部202、及び、情報源復号処理部203は、それぞれ、1つの独立した装置(ハードウェア(IC(Integrated Circuit)等))、又はソフトウエアモジュール)として構成することが可能である。
また、取得部201、伝送路復号処理部202、及び、情報源復号処理部203については、取得部201と伝送路復号処理部202とのセットや、伝送路復号処理部202と情報源復号処理部203とのセット、取得部201、伝送路復号処理部202、及び、情報源復号処理部203のセットを、1つの独立した装置として構成することが可能である。
図23は、本発明を適用した受信システムの第2実施の形態の構成例を示すブロック図である。
なお、図中、図22の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図23の受信システムは、取得部201、伝送路復号処理部202、及び、情報源復号処理部203を有する点で、図22の場合と共通し、出力部211が新たに設けられている点で、図22の場合と相違する。
出力部211は、例えば、画像を表示する表示装置や、音声を出力するスピーカであり、情報源復号処理部203から出力される信号としての画像や音声等を出力する。すなわち、出力部211は、画像を表示し、あるいは、音声を出力する。
以上のような図23の受信システムは、例えば、ディジタル放送としてのテレビジョン放送を受信するTVや、ラジオ放送を受信するラジオ受信機等に適用することができる。
なお、取得部201において取得された信号に、圧縮符号化が施されていない場合には、伝送路復号処理部202が出力する信号が、出力部211に供給される。
図24は、本発明を適用した受信システムの第3実施の形態の構成例を示すブロック図である。
なお、図中、図22の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図24の受信システムは、取得部201、及び、伝送路復号処理部202を有する点で、図22の場合と共通する。
但し、図24の受信システムは、情報源復号処理部203が設けられておらず、記録部221が新たに設けられている点で、図22の場合と相違する。
記録部221は、伝送路復号処理部202が出力する信号(例えば、MPEGのTSのTSパケット)を、光ディスクや、ハードディスク(磁気ディスク)、フラッシュメモリ等の記録(記憶)媒体に記録する(記憶させる)。
以上のような図24の受信システムは、テレビジョン放送を録画するレコーダ等に適用することができる。
なお、図24において、受信システムは、情報源復号処理部203を設けて構成し、情報源復号処理部203で、情報源復号処理が施された後の信号、すなわち、デコードによって得られる画像や音声を、記録部221で記録することができる。
以上、本発明を、LDPC復号を行うLDPC復号装置に適用した場合について説明したが、本発明は、その他、例えば、可変長復号を行う装置、その他のサイクリックシフトを必要とする装置に適用可能である。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
本発明を適用したTVの一実施の形態の構成例を示すブロック図である。 LDPC復号を説明する図である。 復調部12が内蔵するLDPC復号装置の構成例を示すブロック図である。 LDPC符号の検査行列の例を示す図である。 ノード演算で求められたメッセージのサイクリックシフトが必要な理由を説明する図である。 DVB-S2と、高度化BSの仕様を説明する図である。 サイクリックシフト装置33の第1の構成例を示すブロック図である。 サイクリックシフト装置33の第2の構成例を示すブロック図である。 バレルシフタ61の構成例を示すブロック図である。 8単位のバレルシフタ61において行われる、6個の入力データ#1ないし#6のサイクリックシフトの例を示す図である。 8単位のバレルシフタ61において行われる、6個の入力データ#1ないし#6のサイクリックシフトの他の例を示す図である。 選択回路62の構成例を示すブロック図である。 変換テーブルを示す図である。 Mが8で、Nが6である場合の選択回路62の構成例を示すブロック図である。 Nが6である場合の変換テーブルを示す図である。 サイクリックシフト装置33が行うサイクリックシフト処理を説明するフローチャートである。 サイクリックシフト装置33の第3の構成例を示すブロック図である。 選択回路102の構成例を示すブロック図である。 Mが8で、N1,N2,N3がそれぞれ6,5,4である場合の選択回路102の構成例を示すブロック図である。 Nが6で、N1,N2,N3がそれぞれ6,5,4である場合の変換テーブルを示す図である。 P×Pの構成行列と、その構成行列を分割したP'×P'の構成行列とを示す図である。 本発明を適用した受信システムの第1実施の形態の構成例を示すブロック図である。 本発明を適用した受信システムの第2実施の形態の構成例を示すブロック図である。 本発明を適用した受信システムの第3実施の形態の構成例を示すブロック図である。
符号の説明
11 取得部, 12 復調部, 13 デマルチプレクサ, 14 デコーダ, 15 表示部, 31 記憶装置, 32 演算装置, 321ないし32M 演算器, 33 サイクリックシフト装置, 34 制御装置, 51,52 バレルシフタ, 53 セレクタ, 61 バレルシフタ, 62 選択回路, 63 選択制御回路, 711ないし718,721ないし728,731ないし738,812ないし81N セレクタ, 102 選択回路, 103 選択制御回路, 111_2ないし111_N1 セレクタ, 201 取得部, 201 伝送路復号処理部, 203 情報源復号処理部, 211 出力部, 221 記録部

Claims (9)

  1. M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、
    2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記バレルシフタが、M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記バレルシフタが、N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満の前記シフト量kだけサイクリックシフトするとき、
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    サイクリックシフト装置。
  2. M個の前記入力データから構成される前記パラレルデータ、及び、N t 個の前記入力データから構成される前記パラレルデータのうちのいずれのサイクリックシフトを行うのかを表す選択信号と、前記シフト量kとに基づいて、前記セレクタによる前記シフトデータの選択を制御する選択制御回路をさらに備える
    請求項に記載のサイクリックシフト装置。
  3. M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路が、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有する
    サイクリックシフト装置の前記バレルシフタが、M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき、
    前記選択回路が、
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記バレルシフタが、N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満の前記シフト量kだけサイクリックシフトするとき、
    前記選択回路が、
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    サイクリックシフト方法。
  4. LDPC(Low Density Parity Check)符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    LDPC復号装置。
  5. 番組のデータを、少なくともLDPC(Low Density Parity Check)符号化することで得られるLDPC符号を含む送信データを取得する取得手段と、
    前記送信データに含まれるLDPC符号を復号するLDPC復号手段と
    を含み、
    前記LDPC復号手段は、
    前記LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    テレビジョン受像機。
  6. 伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、
    前記伝送路復号処理が施された信号に対して、圧縮された情報を元の情報に伸張する処理を少なくとも含む情報源復号処理を施す情報源復号処理部と
    を含み、
    前記伝送路を介して取得した信号は、情報を圧縮する圧縮符号化と、前記伝送路で生じる誤りを訂正するための誤り訂正符号化とを、少なくとも行うことで得られた信号であり、
    前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、
    前記伝送路復号処理部は、
    LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    受信システム。
  7. 伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、
    前記伝送路復号処理が施された信号に基づいて、画像又は音声を出力する出力部と
    を含み、
    前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、
    前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、
    前記伝送路復号処理部は、
    LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    受信システム。
  8. 伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と、
    前記伝送路復号処理が施された信号を記録する記録部と
    を含み、
    前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、
    前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、
    前記伝送路復号処理部は、
    LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    受信システム。
  9. 伝送路を介して、信号を取得する取得手段と、
    前記伝送路を介して取得した信号に対して、前記伝送路で生じる誤りを訂正する処理を少なくとも含む伝送路復号処理を施す伝送路復号処理部と
    を含み、
    前記伝送路を介して取得した信号は、前記伝送路で生じる誤りを訂正するための誤り訂正符号化を、少なくとも行うことで得られた信号であり、
    前記誤り訂正符号化は、LDPC(Low Density Parity Check)符号化を含み、
    前記伝送路復号処理部は、
    LDPC符号の復号のためのチェックノードの演算、及び、バリアブルノードの演算を、複数であるQ個のノードについて同時に行う、前記Q個以上のM個の演算手段と、
    前記Q個のチェックノードの演算、及び、前記Q個のバリアブルノードの演算のうちの一方の演算の結果得られる前記Q個の枝に対応する前記Q個メッセージを、次に行われる他方の演算のためにサイクリックにシフトするサイクリックシフト手段と
    を備え、
    前記サイクリックシフト手段は、
    M個の入力データから構成されるパラレルデータをサイクリックにシフトするM個単位のサイクリックシフトを行い、M個のシフトデータを出力するバレルシフタと、
    前記バレルシフタが出力する前記M個のシフトデータを、前記M個の入力データをサイクリックシフトしたM個の出力データとして選択する選択回路と
    を備え、
    2以上M未満の範囲の、複数であるT個の整数値を、降順に、N 1 ,N 2 ,・・・,N T と表す場合に、
    前記選択回路は、2ないしN 1 の範囲の整数であるnについて、n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択し、n番目の前記出力データとして出力するN 1 -1個のT+1入力1出力のセレクタを有し、
    前記Qが、前記Mに等しく、
    前記演算手段が、前記M個の前記メッセージを出力し、
    前記M個の前記メッセージを、前記M個の前記入力データとして、前記M個の前記入力データから構成される前記パラレルデータをサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    n,n+(M-N 1 ),n+(M-N 2 ),・・・,n+(M-N T-1 )、又は、n+(M-N T )番目の前記シフトデータを選択するn-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N 1 +1ないしM番目の前記シフトデータを、N 1 +1ないしM番目の前記出力データとして出力し、
    前記Qが、前記Mより小のN t に等しく、
    前記演算手段が、前記N t 個の前記メッセージを出力し、
    前記N t 個の前記メッセージを、前記N t 個の前記入力データとして、前記N t 個の前記入力データから構成される前記パラレルデータを、前記N t 未満のシフト量kだけサイクリックシフトするとき
    1番目の前記シフトデータを、1番目の前記出力データとして出力し、
    1ないしN t -k-1番目の前記セレクタにおいて、n番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    N t -kないしN t -1番目の前記セレクタにおいて、n+(M-N t )番目の前記シフトデータを、n番目の前記出力データとして選択して出力し、
    前記M、及び、前記T個のN 1 ないしN T には、少なくとも、1を除く360の約数の1つと、1を除く374の約数の1つとが含まれる
    受信システム。
JP2008261504A 2008-10-08 2008-10-08 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム Expired - Fee Related JP5320964B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2008261504A JP5320964B2 (ja) 2008-10-08 2008-10-08 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム
TW098130273A TWI433470B (zh) 2008-10-08 2009-09-08 A cyclic shift device, a cyclic shift method, an LDPC decoding device television and a reception system
US13/119,352 US8612835B2 (en) 2008-10-08 2009-10-08 Cyclic shift device, cyclic shift method, LDPC decoding device, television receiver, and reception system
RU2011112695/08A RU2480905C2 (ru) 2008-10-08 2009-10-08 Устройство циклического сдвига, способ циклического сдвига, устройство декодирования ldpc-кода, телевизионный приемник и приемная система
PCT/JP2009/067529 WO2010041700A1 (ja) 2008-10-08 2009-10-08 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム
BRPI0920720A BRPI0920720A2 (pt) 2008-10-08 2009-10-08 dispositivo e método de deslocamento cíclico, dispositivo de decodificação de ldpc, receptor de televisão, e, sistema de recepção.
CN200980139184.7A CN102171936B (zh) 2008-10-08 2009-10-08 循环移位设备、循环移位方法、ldpc解码设备、电视接收机和接收系统
EP09819234.7A EP2333961B1 (en) 2008-10-08 2009-10-08 Variable-length cyclic shift device and method applicable for multi-standard LDPC coding and decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008261504A JP5320964B2 (ja) 2008-10-08 2008-10-08 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム

Publications (2)

Publication Number Publication Date
JP2010093541A JP2010093541A (ja) 2010-04-22
JP5320964B2 true JP5320964B2 (ja) 2013-10-23

Family

ID=42100648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008261504A Expired - Fee Related JP5320964B2 (ja) 2008-10-08 2008-10-08 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム

Country Status (8)

Country Link
US (1) US8612835B2 (ja)
EP (1) EP2333961B1 (ja)
JP (1) JP5320964B2 (ja)
CN (1) CN102171936B (ja)
BR (1) BRPI0920720A2 (ja)
RU (1) RU2480905C2 (ja)
TW (1) TWI433470B (ja)
WO (1) WO2010041700A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009034517A2 (en) * 2007-09-10 2009-03-19 St-Nxp Wireless (Holding) Ag Electronic device, barrel shifter unit and method of barrel shifting
CN102480336B (zh) * 2010-11-30 2014-04-09 中国科学院微电子研究所 一种准循环低密度奇偶校验码的通用快速译码协处理器
RU2013146898A (ru) * 2011-03-22 2015-04-27 Нек Корпорейшн Устройство кодирования с коррекцией ошибок, способ кодирования с коррекцией ошибок и программа кодирования с коррекцией ошибок
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
US8707123B2 (en) * 2011-12-30 2014-04-22 Lsi Corporation Variable barrel shifter
CN102708916A (zh) * 2012-04-16 2012-10-03 东莞市泰斗微电子科技有限公司 一种地址跳转输出装置和方法
KR102068030B1 (ko) 2012-12-11 2020-01-20 삼성전자 주식회사 메모리 컨트롤러 및 그 동작방법
US9524261B2 (en) * 2012-12-21 2016-12-20 Apple Inc. Credit lookahead mechanism
US20140325303A1 (en) * 2013-04-30 2014-10-30 Lsi Corporation Systems and Methods for Protected Data Encoding
KR102113711B1 (ko) * 2013-05-02 2020-06-02 소니 주식회사 데이터 처리 장치 및 데이터 처리 방법
JP6229902B2 (ja) * 2013-05-02 2017-11-22 ソニー株式会社 データ処理装置、及びデータ処理方法
RU2656723C2 (ru) * 2013-05-02 2018-06-06 Сони Корпорейшн Устройство обработки данных и способ обработки данных
KR101476051B1 (ko) * 2013-09-06 2014-12-23 세종대학교산학협력단 Ldpc 엔코더 및 그의 동작 방법
KR20160060029A (ko) * 2013-09-20 2016-05-27 소니 주식회사 데이터 처리 장치 및 데이터 처리 방법
US10020821B2 (en) * 2013-11-15 2018-07-10 Nippon Hoso Kyokai Encoder, decoder, transmission device, and reception device
JP6327605B2 (ja) 2014-02-10 2018-05-23 パナソニックIpマネジメント株式会社 可変シフタ、ldpc復号器、及びデータシフト方法
KR20150137430A (ko) * 2014-05-29 2015-12-09 삼성전자주식회사 통신 시스템에서 비-이진 ldpc 부호를 복호화하는 방법 및 장치
US9413390B1 (en) * 2014-07-16 2016-08-09 Xilinx, Inc. High throughput low-density parity-check (LDPC) decoder via rescheduling
CA2864630C (en) * 2014-08-14 2017-05-30 Electronics And Telecommunications Research Institute Low density parity check encoder having length of 64800 and code rate of 4/15, and low density parity check encoding method using the same
US9595977B2 (en) * 2014-09-29 2017-03-14 Apple Inc. LDPC decoder with efficient circular shifters
US10977466B2 (en) * 2015-07-09 2021-04-13 Hewlett-Packard Development Company, L.P. Multi-dimensional cyclic symbols
RU2613533C1 (ru) * 2016-02-08 2017-03-16 Федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет "МИФИ" (НИЯУ МИФИ) Устройство сдвига
US10128869B2 (en) 2016-05-17 2018-11-13 Apple Inc. Efficient convergence in iterative decoding
JP6885025B2 (ja) * 2016-11-18 2021-06-09 ソニーグループ株式会社 送信装置、及び、送信方法
RU2667772C1 (ru) * 2017-05-05 2018-09-24 Хуавэй Текнолоджиз Ко., Лтд. Способ и устройство обработки информации и устройство связи
CN109217878B (zh) * 2017-06-30 2021-09-14 重庆软维科技有限公司 一种数据处理装置及方法
KR102395537B1 (ko) * 2017-08-18 2022-05-10 에스케이하이닉스 주식회사 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로
US10484012B1 (en) * 2017-08-28 2019-11-19 Xilinx, Inc. Systems and methods for decoding quasi-cyclic (QC) low-density parity-check (LDPC) codes
US10727869B1 (en) 2018-03-28 2020-07-28 Xilinx, Inc. Efficient method for packing low-density parity-check (LDPC) decode operations
US11108410B1 (en) 2018-08-24 2021-08-31 Xilinx, Inc. User-programmable LDPC decoder
TWI677878B (zh) * 2018-10-12 2019-11-21 慧榮科技股份有限公司 編碼器及相關的編碼方法與快閃記憶體控制器
CN109756231B (zh) * 2018-12-27 2023-01-31 北京思朗科技有限责任公司 循环移位处理装置及方法
CN109891756B (zh) * 2019-01-31 2023-03-28 香港应用科技研究院有限公司 可重置分段可缩放移位器
US10877729B2 (en) 2019-01-31 2020-12-29 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Reconfigurable segmented scalable shifter
US10826529B2 (en) * 2019-01-31 2020-11-03 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Parallel LDPC decoder
JP7051024B2 (ja) * 2020-02-27 2022-04-08 三菱電機株式会社 復号方法、復号装置、制御回路およびプログラム記憶媒体
US11575390B2 (en) 2021-07-02 2023-02-07 Hong Kong Applied Science and Technology Research Insitute Co., Ltd. Low-latency segmented quasi-cyclic low-density parity-check (QC-LDPC) decoder
US20230342110A1 (en) * 2022-04-20 2023-10-26 L3Harris Technologies, Inc. Variable width barrel shifter
CN115658145B (zh) * 2022-12-13 2023-03-28 摩尔线程智能科技(北京)有限责任公司 数据循环移位方法和电路、以及芯片

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6145108A (en) * 1997-09-04 2000-11-07 Conexant Systems, Inc. Retransmission packet capture system within a wireless multiservice communications environment
US6539515B1 (en) * 1999-11-24 2003-03-25 Koninklijke Philips Electronics N.V. Accelerated Reed-Solomon error correction
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
JP4224777B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号方法および復号装置、並びにプログラム
JP4225163B2 (ja) * 2003-05-13 2009-02-18 ソニー株式会社 復号装置および復号方法、並びにプログラム
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
JP4907908B2 (ja) 2005-06-29 2012-04-04 ルネサスエレクトロニクス株式会社 駆動回路及び表示装置
US7724772B2 (en) * 2007-02-21 2010-05-25 National Chiao Tung University Method and apparatus for switching data in communication system
FR2914447B1 (fr) * 2007-03-28 2009-06-26 St Microelectronics Sa Dispositif electronique de decalage de donnees en particulier pour du codage/decodage avec un code ldpc
JP4487213B2 (ja) * 2007-10-19 2010-06-23 ソニー株式会社 復号装置および方法、並びにプログラム
US9356623B2 (en) * 2008-11-26 2016-05-31 Avago Technologies General Ip (Singapore) Pte. Ltd. LDPC decoder variable node units having fewer adder stages

Also Published As

Publication number Publication date
WO2010041700A1 (ja) 2010-04-15
US8612835B2 (en) 2013-12-17
BRPI0920720A2 (pt) 2015-12-29
CN102171936A (zh) 2011-08-31
RU2480905C2 (ru) 2013-04-27
US20110191650A1 (en) 2011-08-04
EP2333961A4 (en) 2013-03-06
CN102171936B (zh) 2014-02-26
RU2011112695A (ru) 2012-10-10
EP2333961B1 (en) 2015-09-16
TWI433470B (zh) 2014-04-01
JP2010093541A (ja) 2010-04-22
TW201015873A (en) 2010-04-16
EP2333961A1 (en) 2011-06-15

Similar Documents

Publication Publication Date Title
JP5320964B2 (ja) サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム
US6938196B2 (en) Node processors for use in parity check decoders
US20050257124A1 (en) Node processors for use in parity check decoders
US8996965B2 (en) Error correcting decoding device and error correcting decoding method
US10972128B2 (en) Data processing device and data processing method
US10951241B2 (en) Data processing device and data processing method
US20100251063A1 (en) Decoding device, data storage device, data communication system, and decoding method
US8713398B2 (en) Error correct coding device, error correct coding method, and error correct coding program
JP4603518B2 (ja) 符号化装置及び復号化装置
US20100125769A1 (en) Parity-check-code decoder and recording controller
US10389387B2 (en) Coding device and coding method for a DVB-like LDPC code and a LDPC code in an ETRI format
JP5500357B2 (ja) 符号化装置、および符号化方法
WO2016194623A1 (ja) データ処理装置、およびデータ処理方法
US20160126978A1 (en) Data processing device and data processing method
US20160204801A1 (en) Data processing device and data processing method
KR101583242B1 (ko) 바이패스 신호를 이용한 저밀도 패리티 검사 코드의 복호화 방법 및 그 방법에 따른 장치
JP4288582B2 (ja) 復号装置および復号方法、並びにプログラム
WO2019003888A1 (ja) 情報処理装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130531

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: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130701

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees