JP3669433B2 - インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 - Google Patents
インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 Download PDFInfo
- Publication number
- JP3669433B2 JP3669433B2 JP2001391494A JP2001391494A JP3669433B2 JP 3669433 B2 JP3669433 B2 JP 3669433B2 JP 2001391494 A JP2001391494 A JP 2001391494A JP 2001391494 A JP2001391494 A JP 2001391494A JP 3669433 B2 JP3669433 B2 JP 3669433B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- interleaving
- address
- reading
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2782—Interleaver implementations, which reduce the amount of required interleaving memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2703—Coding, 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 using interleaving techniques the interleaver involving at least two directions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置及びインターリーブ方法、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置及び符号化方法、並びに複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置及び復号方法に関する。
【0002】
【従来の技術】
近年、例えば、移動体通信や深宇宙通信といった通信分野、及び地上波又は衛星ディジタル放送といった放送分野の研究が著しく進められているが、それに伴い、誤り訂正符号化及び復号の効率化を目的として符号理論に関する研究も盛んに行われている。
【0003】
符号性能の理論的限界としては、いわゆるシャノン(C. E. Shannon)の通信路符号化定理によって与えられるシャノン限界が知られている。
【0004】
符号理論に関する研究は、このシャノン限界に近い性能を示す符号を開発することを目的として行われている。近年では、シャノン限界に近い性能を示す符号化方法として、例えば、いわゆるターボ符号と称される並列連接畳み込み符号(Parallel Concatenated Convolutional Codes;以下、PCCCという。)や縦列連接畳み込み符号(Serially Concatenated Convolutional Codes;以下、SCCCという。)が開発されている。
【0005】
一方、近年では、これらの符号に対する復号方法についても研究が盛んに行われている。具体的には、連接符号における内符号の復号出力や繰り返し復号法における各繰り返し復号動作の出力を軟出力とすることで、シンボル誤り率を小さくする研究がなされており、それに適した復号方法に関する研究が盛んに行われている。例えば畳み込み符号等の所定の符号を復号した際のシンボル誤り率を最小にする方法としては、「Bahl, Cocke, Jelinek and Raviv, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974」に記載されているBCJRアルゴリズムが知られている。このBCJRアルゴリズムにおいては、復号結果として各シンボルを出力するのではなく、各シンボルの尤度を出力する。このような出力は、軟出力(soft-output)と呼ばれる。
【0006】
以下、このBCJRアルゴリズムの内容について説明する。なお、以下の説明では、図20に示すように、ディジタル情報を図示しない送信装置が備える符号化装置201によって畳み込み符号化し、その出力を雑音のある無記憶通信路202を介して図示しない受信装置に入力して、この受信装置が備える復号装置203によって復号し、観測する場合を考える。
【0007】
まず、符号化装置201が備えるシフトレジスタの内容を表すM個のステート(遷移状態)をm(0,1,・・・,M−1)で表し、時刻tのステートをStで表す。また、1タイムスロットにkビットの情報が入力されるものとすると、時刻tにおける入力をit=(it1,it2,・・・,itk)で表し、入力系統をI1 T=(i1,i2,・・・,iT)で表す。このとき、ステートm'からステートmへの遷移がある場合には、その遷移に対応する情報ビットをi(m',m)=(i1(m',m),i2(m',m),・・・,ik(m',m))で表す。さらに、1タイムスロットにnビットの符号が出力されるものとすると、時刻tにおける出力をxt=(xt1,xt2,・・・,xtn)で表し、出力系統をX1 T=(x1,x2,・・・,xT)で表す。このとき、ステートm'からステートmへの遷移がある場合には、その遷移に対応する符号ビットをx(m',m)=(x1(m',m),x2(m',m),・・・,xn(m',m))で表す。
【0008】
符号化装置201による畳み込み符号化は、ステートS0=0から始まり、X1 Tを出力してST=0で終了するものとする。ここで、各ステート間の遷移確率Pt(m|m')を次式(1)によって定義する。
【0009】
【数1】
【0010】
なお、上式(1)における右辺に示すPr{A|B}は、Bが生じた条件の下でのAが生じる条件付き確率である。この遷移確率Pt(m|m')は、次式(2)に示すように、入力iでステートm'からステートmへと遷移するときに、時刻tでの入力itがiである確率Pr{it=i}と等しいものである。
【0011】
【数2】
【0012】
雑音のある無記憶通信路202は、X1 Tを入力とし、Y1 Tを出力する。ここで、1タイムスロットにnビットの受信値が出力されるものとすると、時刻tにおける出力をyt=(yt1,yt2,・・・,ytn)で表し、Y1 T=(y1,y2,・・・,yT)で表す。雑音のある無記憶通信路202の遷移確率は、全てのt(1≦t≦T)について、次式(3)に示すように、各シンボルの遷移確率Pr{yj|xj}を用いて定義することができる。
【0013】
【数3】
【0014】
ここで、次式(4)のようにλtjを定義する。この次式(4)に示すλtjは、Y1 Tを受信した際の時刻tでの入力情報の尤度を表し、本来求めるべき軟出力である。
【0015】
【数4】
【0016】
BCJRアルゴリズムにおいては、次式(5)乃至次式(7)に示すような確率αt,βt,γtを定義する。なお、Pr{A;B}は、AとBとがともに生じる確率を表すものとする。
【0017】
【数5】
【0018】
【数6】
【0019】
【数7】
【0020】
ここで、これらの確率αt,βt,γtの内容について、符号化装置201における状態遷移図であるトレリスを図21を用いて説明する。同図において、αt−1は、符号化開始ステートS0=0から受信値をもとに時系列順に算出した時刻t−1における各ステートの通過確率に対応する。また、βtは、符号化終了ステートST=0から受信値をもとに時系列の逆順に算出した時刻tにおける各ステートの通過確率に対応する。さらに、γtは、時刻tにおける受信値と入力確率とをもとに算出した時刻tにステート間を遷移する各枝の出力の受信確率に対応する。
【0021】
これらの確率αt,βt,γtを用いると、軟出力λtjは、次式(8)のように表すことができる。
【0022】
【数8】
【0023】
ところで、t=1,2,・・・,Tについて、次式(9)が成立する。
【0024】
【数9】
【0025】
同様に、t=1,2,・・・,Tについて、次式(10)が成立する。
【0026】
【数10】
【0027】
さらに、γtについて、次式(11)が成立する。
【0028】
【数11】
【0029】
したがって、復号装置203は、BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図22に示す一連の工程を経ることによって軟出力λtを求める。
【0030】
まず、復号装置203は、同図に示すように、ステップS201において、ytを受信する毎に、上式(9)及び上式(11)を用いて、確率αt(m),γt(m',m)を算出する。
【0031】
続いて、復号装置203は、ステップS202において、系列Y1 Tの全てを受信した後に、上式(10)を用いて、全ての時刻tにおける各ステートmについて、確率βt(m)を算出する。
【0032】
そして、復号装置203は、ステップS203において、ステップS201及びステップS202において算出した確率αt,βt,γtを上式(8)に代入し、各時刻tにおける軟出力λtを算出する。
【0033】
復号装置203は、このような一連の処理を経ることにより、BCJRアルゴリズムを適用した軟出力復号を行うことができる。
【0034】
ところで、このようなBCJRアルゴリズムにおいては、確率を直接値として保持して演算を行う必要があり、積演算を含むために演算量が大きいという問題があった。そこで、演算量を削減する手法として、「Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the domain", IEEE Int. Conf. on Communications, pp. 1009-1013, June 1995」に記載されているMax−Log−MAPアルゴリズム及びLog−MAPアルゴリズム(以下、Max−Log−BCJRアルゴリズム及びLog−BCJRアルゴリズムという。)がある。
【0035】
まず、Max−Log−BCJRアルゴリズムについて説明する。Max−Log−BCJRアルゴリズムは、確率αt,βt,γt、及び軟出力λtを自然対数を用いて対数表記し、次式(12)に示すように、確率の積演算を対数の和演算に置き換えるとともに、次式(13)に示すように、確率の和演算を対数の最大値演算で近似するものである。なお、次式(13)に示すmax(x,y)は、x,yのうち大きい値を有するものを選択する関数である。
【0036】
【数12】
【0037】
【数13】
【0038】
ここで、記載を簡略化するため、自然対数をIと略記し、αt,βt,γt,λtの自然対数値を、それぞれ、次式(14)に示すように、Iαt,Iβt,Iγt,Iλtと表すものとする。なお、次式(14)に示すsgnは、正負を識別する符号を示す定数、すなわち、"+1"又は"−1"のいずれかである。
【0039】
【数14】
【0040】
このような定数sgnを与える理由としては、主に、確率αt,βt,γtが0乃至1の値をとることから、一般に算出される対数尤度(log likelihood)Iαt,Iβt,Iγtが負値をとることにある。
【0041】
例えば、復号装置203がソフトウェアとして構成される場合には、正負いずれの値をも処理可能であるため、定数sgnは"+1"又は"−1"のいずれであってもよいが、復号装置203がハードウェアとして構成される場合には、ビット数の削減を目的として、算出される負値の正負識別符号を反転して正値として扱う方が望ましい。
【0042】
すなわち、定数sgnは、復号装置203が対数尤度として負値のみを扱う系として構成される場合には、"+1"をとり、復号装置203が対数尤度として正値のみを扱う系として構成される場合には、"−1"をとる。以下では、このような定数sgnを考慮したアルゴリズムの説明を行うものとする。
【0043】
Max−Log−BCJRアルゴリズムにおいては、これらの対数尤度Iαt,Iβt,Iγtを、それぞれ、次式(15)乃至次式(17)に示すように近似する。ここで、次式(15)及び次式(16)に示すmsgn(x,y)は、定数sgnが"+1"の場合には、x,yのうち大きい値を有するものを選択する関数max(x,y)を示し、定数sgnが"−1"の場合には、x,yのうち小さい値を有するものを選択する関数min(x,y)を示すものである。次式(15)における右辺のステートm'における関数msgnは、ステートmへの遷移が存在するステートm'の中で求めるものとし、次式(16)における右辺のステートm'における関数msgnは、ステートmからの遷移が存在するステートm'の中で求めるものとする。
【0044】
【数15】
【0045】
【数16】
【0046】
【数17】
【0047】
また、Max−Log−BCJRアルゴリズムにおいては、対数軟出力Iλtについても同様に、次式(18)に示すように近似する。ここで、次式(18)における右辺第1項の関数msgnは、入力が"1"のときにステートmへの遷移が存在するステートm'の中で求め、第2項の関数msgnは、入力が"0"のときにステートmへの遷移が存在するステートm'の中で求めるものとする。
【0048】
【数18】
【0049】
したがって、復号装置203は、Max−Log−BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、図23に示す一連の工程を経ることによって軟出力λtを求める。
【0050】
まず、復号装置203は、同図に示すように、ステップS211において、ytを受信する毎に、上式(15)及び上式(17)を用いて、対数尤度Iαt(m)及びIγt(m',m)を算出する。
【0051】
続いて、復号装置203は、ステップS212において、系列Y1 Tの全てを受信した後に、上式(16)を用いて、全ての時刻tにおける各ステートmについて、対数尤度Iβt(m)を算出する。
【0052】
そして、復号装置203は、ステップS213において、ステップS211及びステップS212において算出した対数尤度Iαt,Iβt,Iγtを上式(18)に代入し、各時刻tにおける対数軟出力Iλtを算出する。
【0053】
復号装置203は、このような一連の処理を経ることにより、Max−Log−BCJRアルゴリズムを適用した軟出力復号を行うことができる。
【0054】
このように、Max−Log−BCJRアルゴリズムは、積演算が含まれないことから、BCJRアルゴリズムと比較して、演算量を大幅に削減することができる。
【0055】
つぎに、Log−BCJRアルゴリズムについて説明する。Log−BCJRアルゴリズムは、Max−Log−BCJRアルゴリズムによる近似の精度をより向上させたものである。具体的には、Log−BCJRアルゴリズムは、上式(13)に示した確率の和演算を次式(19)に示すように補正項を追加することで変形し、和演算の正確な対数値を求めるものである。ここでは、このような補正をlog−sum補正と称するものとする。
【0056】
【数19】
【0057】
ここで、上式(19)における左辺に示す演算をlog−sum演算と称するものとし、このlog−sum演算の演算子を、「S. S. Pietrobon, "Implementation and performance of a turbo/MAP decoder", Int. J. Satellite Commun., vol. 16, pp. 23-46, Jan.-Feb. 1998」に記載されている記数法を踏襲し、次式(20)に示すように、便宜上"#"(ただし、同論文中では、"E"。)と表すものとする。
【0058】
【数20】
【0059】
なお、上式(19)及び上式(20)は、上述した定数sgnが"+1"の場合を示している。定数sgnが"−1"の場合には、上式(19)及び上式(20)に相当する演算は、それぞれ、次式(21)及び次式(22)に示すようになる。
【0060】
【数21】
【0061】
【数22】
【0062】
さらに、log−sum演算の累積加算演算の演算子を、次式(23)に示すように、"#Σ"(ただし、同論文中では、"E"。)と表すものとする。
【0063】
【数23】
【0064】
これらの演算子を用いると、Log−BCJRアルゴリズムにおける対数尤度Iαt,Iβt及び対数軟出力Iλtは、それぞれ、次式(24)乃至次式(26)に示すように表すことができる。なお、対数尤度Iγtは、上式(17)で表されるため、ここでは、その記述を省略する。
【0065】
【数24】
【0066】
【数25】
【0067】
【数26】
【0068】
なお、上式(24)における右辺のステートm'におけるlog−sum演算の累積加算演算は、ステートmへの遷移が存在するステートm'の中で求めるものとし、上式(25)における右辺のステートm'におけるlog−sum演算の累積加算演算は、ステートmからの遷移が存在するステートm'の中で求めるものとする。また、上式(26)における右辺第1項のlog−sum演算の累積加算演算は、入力が"1"のときにステートmへの遷移が存在するステートm'の中で求め、第2項のlog−sum演算の累積加算演算は、入力が"0"のときにステートmへの遷移が存在するステートm'の中で求めるものとする。
【0069】
したがって、復号装置203は、Log−BCJRアルゴリズムを適用して軟出力復号を行う場合には、これらの関係に基づいて、先に図23に示した一連の工程を経ることによって軟出力λtを求めることができる。
【0070】
まず、復号装置203は、同図に示すように、ステップS211において、yt受信する毎に、上式(24)及び上式(17)を用いて、対数尤度Iαt(m),Iγt(m',m)を算出する。
【0071】
続いて、復号装置203は、ステップS212において、系列Y1 Tの全てを受信した後に、上式(25)を用いて、全ての時刻tにおける各ステートmについて、対数尤度Iβt(m)を算出する。
【0072】
そして、復号装置203は、ステップS213において、ステップS211及びステップS212において算出した対数尤度Iαt,Iβt,Iγtを上式(26)に代入し、各時刻tにおける対数軟出力Iλtを算出する。
【0073】
復号装置203は、このような一連の処理を経ることにより、Log−BCJRアルゴリズムを適用した軟出力復号を行うことができる。なお、上式(19)及び上式(21)において、右辺第2項に示す補正項は、変数|x−y|に対する1次元の関数で表されることから、復号装置203は、この値を図示しないROM(Read Only Memory)等にテーブルとして予め記憶させておくことにより、正確な確率計算を行うことができる。
【0074】
このようなLog−BCJRアルゴリズムは、Max−Log−BCJRアルゴリズムと比較すると演算量は増えるものの積演算を含むものではなく、その出力は、量子化誤差を除けば、BCJRアルゴリズムの軟出力の対数値そのものに他ならない。
【0075】
【発明が解決しようとする課題】
ところで、上述したBCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムは、畳み込み符号等のトレリス符号の復号を可能とするアルゴリズムであるが、このトレリス符号を要素符号とし、複数の要素符号化器をインターリーバを介して連接することによって生成される符号の復号にも適用することができる。すなわち、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムは、上述したPCCC又はSCCCや、これらのPCCC又はSCCCを応用して多値変調と組み合わせ、信号点の配置と誤り訂正符号の復号特性とを統括して考慮するターボ符号化変調(Turbo Trellis Coded Modulation;以下、TTCMという。)又は縦列連接符号化変調(Serial Concatenated Trellis Coded Modulation;以下、SCTCMという。)の復号に適用することができる。
【0076】
これらのPCCC、SCCC、TTCM又はSCTCMを復号する復号装置は、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づく最大事後確率(Maximum A Posteriori probability;MAP)復号を行う複数の復号器をインターリーバを介して連接し、いわゆる繰り返し復号を行うことになる。
【0077】
ここで、復号装置においては、インターリーバとして、RAM(Random Access Memory)等の記憶素子に対してデータを書き込み、この書き込み順序と異なる順序でデータを読み出すことにより、インターリーブを実現する。この場合、インターリーバとしては、データの格納用にインターリーブ長の2倍の容量を有する記憶素子を用いる必要がある。
【0078】
具体的に説明するために、10タイムスロット分のワード数のRAMを2バンク用いて、1フレームが10タイムスロット分のインターリーブ長に相当する長さのデータをインターリーブする例について図24乃至図29を用いて示す。ここでは、説明の便宜上、2バンクのうち同図中上段に示すものをバンクAと称するとともに、同図中下段に示すものをバンクBと称するものとする。また、ここでは、各バンクのRAMには、それぞれ、同図中左側から0,1,2,・・・,9のアドレスが割り当てられているものとする。さらに、同図においては、データの書き込みを"W"で表し、データの読み出しを"R"で表すものとする。
【0079】
まず、インターリーバは、1フレーム目のデータをバンクAのRAMに対して書き込む。
【0080】
すなわち、インターリーバは、図24に示すように、0タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域に対して、データDD0を書き込む。続いて、インターリーバは、1タイムスロット目では、バンクAのRAMにおけるアドレス1の記憶領域に対して、データDD1を書き込み、2タイムスロット目では、バンクAのRAMにおけるアドレス2の記憶領域に対して、データDD2を書き込み、3タイムスロット目では、バンクAのRAMにおけるアドレス3の記憶領域に対して、データDD3を書き込む。同様に、インターリーバは、各タイムスロット毎に、バンクAのRAMにおける各アドレスの記憶領域に対して、データを書き込み、9タイムスロット目では、バンクAのRAMにおけるアドレス9の記憶領域に対して、データDD9を書き込む。
【0081】
このようにして、インターリーバは、1フレーム目のデータを、DD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9の順序でバンクAのRAMに対して書き込む。
【0082】
続いて、インターリーバは、バンクAのRAMに対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、2フレーム目のデータをバンクBのRAMに対して書き込む。
【0083】
すなわち、インターリーバは、図25に示すように、10タイムスロット目では、バンクAのRAMにおけるアドレス2の記憶領域、すなわち、2タイムスロット目でデータDD2が書き込まれた記憶領域からデータDD2を読み出すとともに、バンクBのRAMにおけるアドレス0の記憶領域に対して、データDD10を書き込む。続いて、インターリーバは、11タイムスロット目では、バンクAのRAMにおけるアドレス9の記憶領域、すなわち、9タイムスロット目でデータDD9が書き込まれた記憶領域からデータDD9を読み出すとともに、バンクBのRAMにおけるアドレス1の記憶領域に対して、データDD11を書き込む。続いて、インターリーバは、12タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域、すなわち、0タイムスロット目でデータDD0が書き込まれた記憶領域からデータDD0を読み出すとともに、バンクBのRAMにおけるアドレス2の記憶領域に対して、データDD12を書き込む。続いて、インターリーバは、13タイムスロット目では、バンクAのRAMにおけるアドレス5の記憶領域、すなわち、5タイムスロット目でデータDD5が書き込まれた記憶領域からデータDD5を読み出すとともに、バンクBのRAMにおけるアドレス3の記憶領域に対して、データDD13を書き込む。続いて、インターリーバは、14タイムスロット目では、バンクAのRAMにおけるアドレス4の記憶領域、すなわち、4タイムスロット目でデータDD4が書き込まれた記憶領域からデータDD4を読み出すとともに、バンクBのRAMにおけるアドレス4の記憶領域に対して、データDD14を書き込む。
【0084】
さらに、インターリーバは、図26に示すように、15タイムスロット目では、バンクAのRAMにおけるアドレス3の記憶領域、すなわち、3タイムスロット目でデータDD3が書き込まれた記憶領域からデータDD3を読み出すとともに、バンクBのRAMにおけるアドレス5の記憶領域に対して、データDD15を書き込む。続いて、インターリーバは、16タイムスロット目では、バンクAのRAMにおけるアドレス8の記憶領域、すなわち、8タイムスロット目でデータDD8が書き込まれた記憶領域からデータDD8を読み出すとともに、バンクBのRAMにおけるアドレス6の記憶領域に対して、データDD16を書き込む。続いて、インターリーバは、17タイムスロット目では、バンクAのRAMにおけるアドレス7の記憶領域、すなわち、7タイムスロット目でデータDD7が書き込まれた記憶領域からデータDD7を読み出すとともに、バンクBのRAMにおけるアドレス7の記憶領域に対して、データDD17を書き込む。続いて、インターリーバは、18タイムスロット目では、バンクAのRAMにおけるアドレス6の記憶領域、すなわち、6タイムスロット目でデータDD6が書き込まれた記憶領域からデータDD6を読み出すとともに、バンクBのRAMにおけるアドレス8の記憶領域に対して、データDD18を書き込む。そして、インターリーバは、19タイムスロット目では、バンクAのRAMにおけるアドレス1の記憶領域、すなわち、1タイムスロット目でデータDD1が書き込まれた記憶領域からデータDD1を読み出すとともに、バンクBのRAMにおけるアドレス9の記憶領域に対して、データDD19を書き込む。
【0085】
このようにして、インターリーバは、バンクAのRAMに対して、DD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9の順序で書き込んだ1フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD2,DD9,DD0,DD5,DD4,DD3,DD8,DD7,DD6,DD1の順序で全て読み出すとともに、2フレーム目のデータを、DD10,DD11,DD12,DD13,DD14,DD15,DD16,DD17,DD18,DD19の順序でバンクBのRAMに対して書き込む。
【0086】
続いて、インターリーバは、バンクBのRAMに対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、3フレーム目のデータをバンクAのRAMに対して書き込む。
【0087】
すなわち、インターリーバは、図27に示すように、20タイムスロット目では、バンクBのRAMにおけるアドレス2の記憶領域、すなわち、12タイムスロット目でデータDD12が書き込まれた記憶領域からデータDD12を読み出すとともに、バンクAのRAMにおけるアドレス0の記憶領域、すなわち、12タイムスロット目でデータDD0が読み出されて空いている記憶領域に対して、データDD20を書き込む。続いて、インターリーバは、21タイムスロット目では、バンクBのRAMにおけるアドレス9の記憶領域、すなわち、19タイムスロット目でデータDD19が書き込まれた記憶領域からデータDD19を読み出すとともに、バンクAのRAMにおけるアドレス1の記憶領域、すなわち、19タイムスロット目でデータDD1が読み出されて空いている記憶領域に対して、データDD21を書き込む。続いて、インターリーバは、22タイムスロット目では、バンクBのRAMにおけるアドレス0の記憶領域、すなわち、10タイムスロット目でデータDD10が書き込まれた記憶領域からデータDD10を読み出すとともに、バンクAのRAMにおけるアドレス2の記憶領域、すなわち、10タイムスロット目でデータDD2が読み出されて空いている記憶領域に対して、データDD22を書き込む。続いて、インターリーバは、23タイムスロット目では、バンクBのRAMにおけるアドレス5の記憶領域、すなわち、15タイムスロット目でデータDD15が書き込まれた記憶領域からデータDD15を読み出すとともに、バンクAのRAMにおけるアドレス3の記憶領域、すなわち、15タイムスロット目でデータDD3が読み出されて空いている記憶領域に対して、データDD23を書き込む。続いて、インターリーバは、24タイムスロット目では、バンクBのRAMにおけるアドレス4の記憶領域、すなわち、14タイムスロット目でデータDD14が書き込まれた記憶領域からデータDD14を読み出すとともに、バンクAのRAMにおけるアドレス4の記憶領域、すなわち、14タイムスロット目でデータDD4が読み出されて空いている記憶領域に対して、データDD24を書き込む。
【0088】
さらに、インターリーバは、図28に示すように、25タイムスロット目では、バンクBのRAMにおけるアドレス3の記憶領域、すなわち、13タイムスロット目でデータDD13が書き込まれた記憶領域からデータDD13を読み出すとともに、バンクAのRAMにおけるアドレス5の記憶領域、すなわち、13タイムスロット目でデータDD5が読み出されて空いている記憶領域に対して、データDD25を書き込む。続いて、インターリーバは、26タイムスロット目では、バンクBのRAMにおけるアドレス8の記憶領域、すなわち、18タイムスロット目でデータDD18が書き込まれた記憶領域からデータDD18を読み出すとともに、バンクAのRAMにおけるアドレス6の記憶領域、すなわち、18タイムスロット目でデータDD6が読み出されて空いている記憶領域に対して、データDD26を書き込む。続いて、インターリーバは、27タイムスロット目では、バンクBのRAMにおけるアドレス7の記憶領域、すなわち、17タイムスロット目でデータDD17が書き込まれた記憶領域からデータDD17を読み出すとともに、バンクAのRAMにおけるアドレス7の記憶領域、すなわち、17タイムスロット目でデータDD7が読み出されて空いている記憶領域に対して、データDD27を書き込む。続いて、インターリーバは、28タイムスロット目では、バンクBのRAMにおけるアドレス6の記憶領域、すなわち、16タイムスロット目でデータDD16が書き込まれた記憶領域からデータDD16を読み出すとともに、バンクAのRAMにおけるアドレス8の記憶領域、すなわち、16タイムスロット目でデータDD8が読み出されて空いている記憶領域に対して、データDD28を書き込む。そして、インターリーバは、29タイムスロット目では、バンクBのRAMにおけるアドレス1の記憶領域、すなわち、11タイムスロット目でデータDD11が書き込まれた記憶領域からデータDD11を読み出すとともに、バンクAのRAMにおけるアドレス9の記憶領域、すなわち、11タイムスロット目でデータDD9が読み出されて空いている記憶領域に対して、データDD29を書き込む。
【0089】
このようにして、インターリーバは、バンクBのRAMに対して、DD10,DD11,DD12,DD13,DD14,DD15,DD16,DD17,DD18,DD19の順序で書き込んだ2フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD12,DD19,DD10,DD15,DD14,DD13,DD18,DD17,DD16,DD11の順序で全て読み出すとともに、3フレーム目のデータを、DD20,DD21,DD22,DD23,DD24,DD25,DD26,DD27,DD28,DD29の順序でバンクAのRAMに対して書き込む。
【0090】
同様に、インターリーバは、バンクAのRAMに対して書き込んだ3フレーム目のデータを書き込み順序と異なる順序で読み出すとともに、4フレーム目のデータをバンクBのRAMに対して書き込む。
【0091】
すなわち、インターリーバは、図29に示すように、30タイムスロット目では、バンクAのRAMにおけるアドレス2の記憶領域、すなわち、22タイムスロット目でデータDD22が書き込まれた記憶領域からデータDD22を読み出すとともに、バンクBのRAMにおけるアドレス0の記憶領域、すなわち、22タイムスロット目でデータDD10が読み出されて空いている記憶領域に対して、データDD30を書き込む。続いて、インターリーバは、31タイムスロット目では、バンクAのRAMにおけるアドレス9の記憶領域、すなわち、29タイムスロット目でデータDD29が書き込まれた記憶領域からデータDD29を読み出すとともに、バンクBのRAMにおけるアドレス1の記憶領域、すなわち、29タイムスロット目でデータDD11が読み出されて空いている記憶領域に対して、データDD31を書き込む。続いて、インターリーバは、32タイムスロット目では、バンクAのRAMにおけるアドレス0の記憶領域、すなわち、20タイムスロット目でデータDD20が書き込まれた記憶領域からデータDD20を読み出すとともに、バンクBのRAMにおけるアドレス2の記憶領域、すなわち、20タイムスロット目でデータDD12が読み出されて空いている記憶領域に対して、データDD32を書き込む。そして、インターリーバは、33タイムスロット目では、バンクAのRAMにおけるアドレス5の記憶領域、すなわち、25タイムスロット目でデータDD25が書き込まれた記憶領域からデータDD25を読み出すとともに、バンクBのRAMにおけるアドレス3の記憶領域、すなわち、25タイムスロット目でデータD13が読み出されて空いている記憶領域に対して、データDD33を書き込む。
【0092】
このようにして、インターリーバは、バンクAのRAMに対して、DD20,DD21,DD22,DD23,DD24,DD25,DD26,DD27,DD28,DD29の順序で書き込んだ3フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD22,DD29,DD20,DD25,・・・の順序で全て読み出すとともに、4フレーム目のデータを、DD30,DD31,DD32,DD33,・・・の順序でバンクBのRAMに対して書き込む。
【0093】
このように、インターリーバは、インターリーブ長と同じ容量を有するRAMを2バンク、すなわち、インターリーブ長の2倍の容量を有するRAMを用い、一方のバンクに対してデータを書き込むとともに、この書き込み順序と異なる順序で他方のバンクからデータを読み出すといった動作を、2つのバンクの間で切り替えることにより、データの書き込みと読み出しとを連続的に行うインターリーブを実現することができる。このとき、インターリーバは、上述したように、RAMに対してデータをシーケンシャルな順序で書き込む一方で、RAMに書き込まれたデータの読み出しについては、読み出し順序を所定の回路によって発生してもよく、読み出し順序としてのインターリーブパターンを所定の記憶媒体に格納しておき、このインターリーブパターンを読み出すようにしてもよい。また、インターリーバは、これとは逆に、RAMに対するデータの書き込みについては、書き込み順序を所定の回路によって発生するか、又は書き込み順序としてのインターリーブパターンを所定の記憶媒体に格納しておき、このインターリーブパターンを読み出す一方で、RAMに書き込まれたデータをシーケンシャルな順序で読み出すようにしてもよい。
【0094】
ところで、インターリーバを上述したPCCC、SCCC、TTCM又はSCTCMを復号する復号装置に適用する場合には、インターリーバとしては、インターリーブ長が長いものを用いるほど、符号の性能が向上することが知られている。
【0095】
しかしながら、インターリーバは、上述したように、データの書き込み順序と読み出し順序とが異なるために、インターリーブするデータをインターリーバ長の記憶素子に対して一旦書き込むとともに、既に記憶素子に対して書き込まれたデータを読み出すという操作を必要とすることから、データの格納用にインターリーブ長の2倍の容量を有する記憶素子を用いる必要があった。したがって、このようなインターリーバを復号装置に適用する場合には、インターリーバのインターリーブ長が長いほど、当該復号装置を占める記憶素子の大きさが増大し、当該復号装置の回路規模も増大するといった問題があった。
【0096】
また、PCCC、SCCC、TTCM又はSCTCMによる符号化を行う符号化装置においても、インターリーバは必須の構成となることから、インターリーバを符号化装置に適用した場合にも、インターリーバのインターリーブ長が長いほど、当該符号化装置を占める記憶素子の大きさが増大し、当該符号化装置の回路規模も増大するといった問題があった。
【0097】
本発明は、このような実情に鑑みてなされたものであり、回路規模の削減を図ることができ、優れた利便を提供することができるインターリーブ装置及びインターリーブ方法、これらのインターリーブ装置及びインターリーブ方法を適用して符号の性能を維持しつつPCCC、SCCC、TTCM又はSCTCMによる符号化を行うことができる符号化装置及び符号化方法、並びにこれらのインターリーブ装置及びインターリーブ方法を適用して繰り返し復号を行うことができる復号装置及び復号方法を提供することを目的とする。
【0098】
【課題を解決するための手段】
上述した目的を達成する本発明にかかるインターリーブ装置は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0099】
このような本発明にかかるインターリーブ装置は、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、制御手段によって記憶手段に対するデータの書き込み及び読み出しを制御する。このとき、本発明にかかるインターリーブ装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0100】
また、上述した目的を達成する本発明にかかるインターリーブ方法は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを備え、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0101】
このような本発明にかかるインターリーブ方法は、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する。このとき、本発明にかかるインターリーブ方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0102】
さらに、上述した目的を達成する本発明にかかる符号化装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、並列又は縦列に連接される複数の要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0103】
このような本発明にかかる符号化装置は、各要素符号化手段の間に設けられるインターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行う。このとき、本発明にかかる符号化装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0104】
さらにまた、上述した目的を達成する本発明にかかる符号化方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、並列又は縦列に連接される複数の要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、インターリーブ工程は、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0105】
このような本発明にかかる符号化方法は、各要素符号化工程の間に行われるインターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行う。このとき、本発明にかかる符号化方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0106】
また、上述した目的を達成する本発明にかかる復号装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号手段と、これらの軟出力復号手段によって生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0107】
このような本発明にかかる復号装置は、インターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行う。このとき、本発明にかかる復号装置は、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0108】
さらに、上述した目的を達成する本発明にかかる復号方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号工程と、これらの軟出力復号工程にて生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、インターリーブ工程は、データを入力する入力工程と、この入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることを特徴としている。
【0109】
このような本発明にかかる復号方法は、インターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行う。このとき、本発明にかかる復号方法においては、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0110】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
【0111】
この実施の形態は、図1に示すように、ディジタル情報を図示しない送信装置が備える符号化装置1によって符号化し、その出力を雑音のある無記憶通信路2を介して図示しない受信装置に入力して、この受信装置が備える復号装置3によって復号する通信モデルに適用したデータ送受信システムである。
【0112】
このデータ送受信システムにおいて、符号化装置1は、畳み込み符号等のトレリス符号を要素符号とする並列連接畳み込み符号(Parallel Concatenated Convolutional Codes;以下、PCCCという。)又は縦列連接畳み込み符号(Serially Concatenated Convolutional Codes;以下、SCCCという。)や、これらのPCCC又はSCCCを応用して多値変調と組み合わせたターボ符号化変調(Turbo Trellis Coded Modulation;以下、TTCMという。)又は縦列連接符号化変調(Serial Concatenated Trellis Coded Modulation;以下、SCTCMという。)を行うものとして構成される。これらの符号化は、いわゆるターボ符号化(Turbo coding)の一種として知られているものであって、符号化装置1は、複数の要素符号化器と、入力されたデータを並べ替えるインターリーバとを連接することにより、ターボ符号化を行うものとして構成される。
【0113】
一方、復号装置3は、符号化装置1によって符号化がなされた符号の復号を行うものであって、「Bahl, Cocke, Jelinek and Raviv, "Optimal decoding of linear codes for minimizing symbol error rate", IEEE Trans. Inf. Theory, vol. IT-20, pp. 284-287, Mar. 1974」に記載されているBCJRアルゴリズム、「Robertson, Villebrun and Hoeher, "A comparison of optimal and sub-optimal MAP decoding algorithms operating in the domain", IEEE Int. Conf. on Communications, pp. 1009-1013, June 1995」に記載されているMax−Log−MAPアルゴリズム又はLog−MAPアルゴリズム(以下、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムという。)に基づく最大事後確率(Maximum A Posteriori probability;以下、MAPという。)復号を行い、いわゆる事後確率情報(a posteriori probability information)に対応する軟出力(soft-output)及び/又はいわゆる外部情報(extrinsic information)を求める複数の軟出力復号回路と、入力されたデータを並べ替えるインターリーバとを連接することにより、繰り返し復号を行うものとして構成される。
【0114】
特に、符号化装置1及び/又は復号装置3においては、インターリーバが、入力データから出力データへの置換が対称であり、且つ、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うものであり、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行うことにより、インターリーブ長と同じ容量の記憶素子を用いるのみで連続的なインターリーブを実現することができるものである。
【0115】
まず、本発明の外延をより明確にするために、本発明の詳細な説明に先立って、図2及び図3に示すPCCCによる符号化・復号を行う符号化装置1'及び復号装置3'と、図4及び図5に示すSCCCによる符号化・復号を行う符号化装置1''及び復号装置3''とについて説明する。これらの符号化装置1',1''は、符号化装置1の例として位置付けられるものであり、復号装置3',3''は、復号装置3の例として位置付けられるものである。
【0116】
まず、PCCCによる符号化を行う符号化装置1'と、この符号化装置1'による符号の復号を行う復号装置3'とについて説明する。
【0117】
符号化装置1'としては、図2に示すように、入力されたデータを遅延させる遅延器11と、畳み込み演算を行う2つの畳み込み符号化器12,14と、入力されたデータの順序を並べ替えるインターリーバ13とを備えるものがある。この符号化装置1'は、入力された1ビットの入力データD1に対して、符号化率が"1/3"の並列連接畳み込み演算を行い、3ビットの出力データD4,D5,D6を生成し、例えば2相位相(Binary Phase Shift Keying;以下、BPSKという。)変調方式や4相位相(Quadrature Phase Shift Keying;以下、QPSKという。)変調方式による変調を行う図示しない変調器を介して外部に出力する。
【0118】
遅延器11は、3ビットの出力データD4,D5,D6が出力されるタイミングを合わせるために備えられるものであり、1ビットの入力データD1を入力すると、この入力データD1をインターリーバ13が要する処理時間と同時間だけ遅延させる。遅延器11は、遅延させて得られた遅延データD2を、出力データD4として外部に出力するとともに、後段の畳み込み符号化器12に供給する。
【0119】
畳み込み符号化器12は、遅延器11から出力された1ビットの遅延データD2を入力すると、この遅延データD2に対して畳み込み演算を行い、演算結果を出力データD5として外部に出力する。
【0120】
インターリーバ13は、1つのビット系列からなる入力データD1を入力し、この入力データD1を構成する各ビットの順序を並べ替え、生成したインターリーブデータD3を後段の畳み込み符号化器14に供給する。
【0121】
畳み込み符号化器14は、インターリーバ13から供給される1ビットのインターリーブデータD3を入力すると、このインターリーブデータD3に対して畳み込み演算を行い、演算結果を出力データD6として外部に出力する。
【0122】
このような符号化装置1'は、1ビットの入力データD1を入力すると、この入力データD1を組織成分の出力データD4として、遅延器11を介してそのまま外部に出力するとともに、畳み込み符号化器12による遅延データD2の畳み込み演算の結果得られる出力データD5と、畳み込み符号化器14によるインターリーブデータD3の畳み込み演算の結果得られる出力データD6とを外部に出力することにより、全体として、符号化率が"1/3"の並列連接畳み込み演算を行う。この符号化装置1'によって符号化されたデータは、図示しない変調器によって所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路2を介して受信装置に出力される。
【0123】
一方、符号化装置1'による符号の復号を行う復号装置3'としては、図3に示すように、軟出力復号を行う2つの軟出力復号回路15,17と、入力されたデータの順序を並べ替えるインターリーバ16と、入力されたデータの順序を元に戻す2つのデインターリーバ18,20と、2つのデータを加算する加算器19とを備えるものがある。この復号装置3'は、無記憶通信路2上で発生したノイズの影響によって軟入力(soft-input)とされる受信値D7から符号化装置1'における入力データD1を推定し、復号データD13として出力する。
【0124】
軟出力復号回路15は、符号化装置1'における畳み込み符号化器12に対応して備えられるものであり、上述したBCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行う。すなわち、軟出力復号回路15は、軟入力の受信値D7を入力するとともに、デインターリーバ18から出力された軟入力の情報ビットに対する事前確率情報(a priori probability information)D8を入力し、これらの受信値D7と事前確率情報D8とを用いて、軟出力復号を行う。そして、軟出力復号回路15は、符号の拘束条件によって求められる情報ビットに対する外部情報D9を生成し、この外部情報D9を後段のインターリーバ16に軟出力として出力する。
【0125】
インターリーバ16は、軟出力復号回路15から出力された軟入力である情報ビットに対する外部情報D9に対して、符号化装置1'におけるインターリーバ13と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ16は、インターリーブして得られたデータを後段の軟出力復号回路17における情報ビットに対する事前確率情報D10として出力するとともに、後段の加算器19に出力する。
【0126】
軟出力復号回路17は、符号化装置1'における畳み込み符号化器14に対応して備えられるものであり、軟出力復号回路15と同様に、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行う。すなわち、軟出力復号回路17は、軟入力の受信値D7を入力するとともに、インターリーバ16から出力された軟入力の情報ビットに対する事前確率情報D10を入力し、これらの受信値D7と事前確率情報D10とを用いて、軟出力復号を行う。そして、軟出力復号回路17は、符号の拘束条件によって求められる情報ビットに対する外部情報D11を生成し、この外部情報D11をデインターリーバ18に軟出力として出力するとともに、加算器19に出力する。
【0127】
デインターリーバ18は、符号化装置1'におけるインターリーバ13によってインターリーブされたインターリーブデータD3のビット配列を、元の入力データD1のビット配列に戻すように、軟出力復号回路17から出力される軟入力の外部情報D11にデインターリーブを施す。デインターリーバ18は、デインターリーブして得られたデータを軟出力復号回路15における情報ビットに対する事前確率情報D8として出力する。
【0128】
加算器19は、インターリーバ16から出力された軟入力の情報ビットに対する事前確率情報D10と、軟出力復号回路17から出力された情報ビットに対する外部情報D11とを加算する。加算器19は、得られたデータD12を後段のデインターリーバ20に軟出力として出力する。
【0129】
デインターリーバ20は、符号化装置1'におけるインターリーバ13によってインターリーブされたインターリーブデータD3のビット配列を、元の入力データD1のビット配列に戻すように、加算器19から出力される軟出力のデータD12にデインターリーブを施す。デインターリーバ20は、デインターリーブして得られたデータを復号データD13として外部に出力する。
【0130】
このような復号装置3'は、符号化装置1'における畳み込み符号化器12,14のそれぞれに対応する軟出力復号回路15,17を備えることにより、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路15,17の間の相互作用によって特性を逐次的に向上させることができる。復号装置3'は、受信値D7を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データD13を出力する。
【0131】
なお、TTCMによる符号化を行う符号化装置は、符号化装置1'の最終段に、例えば8相位相(8-Phase Shift Keying;以下、8PSKという。)変調方式による変調を行う変調器を備えることによって実現することができる。また、TTCMによる符号の復号を行う復号装置は、復号装置3'と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【0132】
つぎに、SCCCによる符号化を行う符号化装置1''と、この符号化装置1''による符号の復号を行う復号装置3''とについて説明する。
【0133】
符号化装置1''としては、図4に示すように、外符号と呼ばれる符号の符号化を行う畳み込み符号化器31と、入力されたデータの順序を並べ替えるインターリーバ32と、内符号と呼ばれる符号の符号化を行う畳み込み符号化器33とを備えるものがある。この符号化装置1''は、入力された1ビットの入力データD21に対して、符号化率が"1/3"の縦列連接畳み込み演算を行い、3ビットの出力データD26,D27,D28を生成し、例えばBPSK変調方式やQPSK変調方式による変調を行う図示しない変調器を介して外部に出力する。
【0134】
畳み込み符号化器31は、1ビットの入力データD21を入力すると、この入力データD21に対して畳み込み演算を行い、演算結果を2ビットの符号化データD22,D23として後段のインターリーバ32に供給する。すなわち、畳み込み符号化器31は、外符号の符号化として符号化率が"1/2"の畳み込み演算を行い、生成した符号化データD22,D23を後段のインターリーバ32に供給する。
【0135】
インターリーバ32は、畳み込み符号化器31から供給された2つのビット系列からなる符号化データD22,D23を入力し、これらの符号化データD22,D23を構成する各ビットの順序を並べ替え、生成した2つのビット系列からなるインターリーブデータD24,D25を後段の畳み込み符号化器33に供給する。
【0136】
畳み込み符号化器33は、インターリーバ32から供給される2ビットのインターリーブデータD24,D25を入力すると、これらのインターリーブデータD24,D25に対して畳み込み演算を行い、演算結果を3ビットの出力データD26,D27,D28として外部に出力する。すなわち、畳み込み符号化器33は、内符号の符号化として符号化率が"2/3"の畳み込み演算を行い、出力データD26,D27,D28を外部に出力する。
【0137】
このような符号化装置1''は、畳み込み符号化器31によって外符号の符号化として符号化率が"1/2"の畳み込み演算を行い、畳み込み符号化器33によって内符号の符号化として符号化率が"2/3"の畳み込み演算を行うことにより、全体として、符号化率が"(1/2)×(2/3)=1/3"の縦列連接畳み込み演算を行う。この符号化装置1''によって符号化されたデータは、図示しない変調器によって所定の変調方式に基づいて信号点のマッピングが行われ、無記憶通信路2を介して受信装置に出力される。
【0138】
一方、符号化装置1''による符号の復号を行う復号装置3''としては、図5に示すように、軟出力復号を行う2つの軟出力復号回路34,36と、入力されたデータの順序を元に戻すデインターリーバ35と、入力されたデータの順序を並べ替えるインターリーバ37とを備えるものがある。この復号装置3''は、無記憶通信路2上で発生したノイズの影響によって軟入力とされる受信値D29から符号化装置1''における入力データD21を推定し、復号データD36として出力する。
【0139】
軟出力復号回路34は、符号化装置1''における畳み込み符号化器33に対応して備えられるものであり、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行う。すなわち、軟出力復号回路34は、軟入力の受信値D29を入力するとともに、インターリーバ37から出力された軟入力の情報ビットに対する事前確率情報D30を入力し、これらの受信値D29と事前確率情報D30とを用いて、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行い、内符号の軟出力復号を行う。そして、軟出力復号回路34は、符号の拘束条件によって求められる情報ビットに対する外部情報D31を生成し、この外部情報D31を後段のデインターリーバ35に軟出力として出力する。なお、この外部情報D31は、符号化装置1''におけるインターリーバ32によってインターリーブされたインターリーブデータD24,D25に対応するものである。
【0140】
デインターリーバ35は、符号化装置1''におけるインターリーバ32によってインターリーブされたインターリーブデータD24,D25のビット配列を、それぞれ、元の符号化データD22,D23のビット配列に戻すように、軟出力復号回路34から出力される軟入力の外部情報D31にデインターリーブを施す。デインターリーバ35は、デインターリーブして得られたデータを後段の軟出力復号回路36における符号ビットに対する事前確率情報D32として出力する。
【0141】
軟出力復号回路36は、符号化装置1''における畳み込み符号化器31に対応して備えられるものであり、軟出力復号回路34と同様に、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行う。すなわち、軟出力復号回路36は、デインターリーバ35から出力された軟入力の符号ビットに対する事前確率情報D32を入力するとともに、値が"0"である情報ビットに対する事前確率情報D33を入力し、これらの事前確率情報D32,D33を用いて、BCJRアルゴリズム、Max−Log−BCJRアルゴリズム又はLog−BCJRアルゴリズムに基づくMAP復号を行い、外符号の軟出力復号を行う。軟出力復号回路36は、符号の拘束条件によって求められる外部情報D34,D35を生成し、外部情報D34を復号データD36として外部に出力するとともに、外部情報D35をインターリーバ37に軟出力として出力する。
【0142】
インターリーバ37は、軟出力復号回路36から出力された軟入力である符号ビットに対する外部情報D35に対して、符号化装置1''におけるインターリーバ32と同一の置換位置情報に基づいたインターリーブを施す。インターリーバ37は、インターリーブして得られたデータを軟出力復号回路34における情報ビットに対する事前確率情報D30として出力する。
【0143】
このような復号装置3''は、符号化装置1''における畳み込み符号化器31,33のそれぞれに対応する軟出力復号回路36,34を備えることにより、復号装置3'と同様に、復号複雑度が高い符号を複雑度の小さい要素に分解し、軟出力復号回路34,36の間の相互作用によって特性を逐次的に向上させることができる。復号装置3''は、受信値D29を受信すると、所定の繰り返し回数での繰り返し復号を行い、この復号動作の結果得られた軟出力の外部情報に基づいて、復号データD36を出力する。
【0144】
なお、SCTCMによる符号化を行う符号化装置は、符号化装置1''の最終段に、例えば8PSK変調方式による変調を行う変調器を備えることによって実現することができる。また、SCTCMによる符号の復号を行う復号装置は、復号装置3''と同様の構成で実現することができ、受信値として、同相成分及び直交成分のシンボルを直接入力することになる。
【0145】
さて、以下では、符号化装置1及び/又は復号装置3に備えられるインターリーバについて説明する。ここで、デインターリーバは、インターリーバと逆の置換位置情報に基づいてデータを並べ替えるものであることから、インターリーバの1形態として擬制することができる。そこで、以下では、特に区別を要しない場合には、デインターリーバについてもインターリーバと称して説明する。すなわち、ここでのインターリーバとは、例えば、上述した符号化装置1'におけるインターリーバ13、復号装置3'におけるインターリーバ16若しくはデインターリーバ18,20、符号化装置1''におけるインターリーバ32、又は復号装置3''におけるデインターリーバ35若しくはインターリーバ37を具体例とすることができるものであり、これらを総称するものである。
【0146】
インターリーバは、上述したように、入力データから出力データへの置換が対称である対称インターリーブを行うものである。すなわち、インターリーバとデインターリーバは、同じものであり、インターリーバは、任意の入力データに対して同じ置換を2回行うと元の入力データを出力データとして出力することができるものである。より換言すれば、インターリーバは、インターリーブの置換行列を"π"で表すものとすると、逆置換行列"π−1"が存在し、単位行列を"I"で表すものとすると、インターリーブとデインターリーブを同一のアドレスにしたがって行い、π==π−1が成立するとともに、インターリーブを2回行うと元の系列に戻り、ππ==Iが成立するインターリーブを行うものである。
【0147】
ここで、インターリーバは、さらに、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うようにすることもできる。
【0148】
具体的に説明するために、ハードウェアでの実装例として、10タイムスロット分のワード数のRAM(Random Access Memory)等の記憶素子に対してデータの書き込み及び読み出しを行うものを考える。このインターリーバは、例えば、図6(A)に示すように、左側から0,1,2,・・・,9のアドレスが割り当てられている記憶素子に対して、左側からデータDD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9を入力データとしてシーケンシャルに順次書き込んだ場合には、同図(B)に示すように、出力データとしてアドレスにしたがってデータDD2,DD9,DD0,DD5,DD4,DD3,DD8,DD7,DD6,DD1を読み出すものとする。一方、このインターリーバは、例えば、同図(B)に示すように、記憶素子に対して、左側からデータDD2,DD9,DD0,DD5,DD4,DD3,DD8,DD7,DD6,DD1を入力データとしてシーケンシャルに順次書き込んだ場合には、同図(A)に示すように、出力データとしてアドレスにしたがってデータDD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9を読み出すことになる。
【0149】
すなわち、インターリーバは、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるインターリーブを行うものとして表現することができる。
【0150】
ここで、このような対称インターリーブを行うインターリーバは、シーケンシャルに順次データを書き込み、このデータをアドレスにしたがってランダムに読み出す場合と、所定のアドレスにしたがってランダムにデータを書き込み、このデータをシーケンシャルに順次読み出す場合とで、全く同じインターリーブを行うことができる点に着目する。
【0151】
すなわち、インターリーバは、アドレスにしたがってランダムに読み出しを行いつつ直前にデータを読み出した位置にデータを書き込むインターリーブ動作と、シーケンシャルに順次読み出しを行いつつ直前にデータを読み出した位置にデータを書き込むデインターリーブ動作とを交互に行う。
【0152】
このようにすることにより、インターリーバは、インターリーブ単位であるフレーム毎に、インターリーブとデインターリーブとを交互に行うことになるが、入力データから出力データへの置換が対称であることから、インターリーブを連続的に行うことと等価となる。
【0153】
このように、インターリーバは、同時刻に行われる読み出し順序と書き込み順序とを同じとすることにより、データの格納用にインターリーブ長の2倍の容量を有する記憶素子を用いる必要がなく、インターリーブ長と同じ容量を有する記憶素子を用いれば足りることになる。
【0154】
このような性質を有するインターリーバを上述した符号化装置1'及び復号装置3'、並びに符号化装置1''及び復号装置3''に適用した場合には、これらの符号化装置1'及び復号装置3'、並びに符号化装置1''及び復号装置3''は、それぞれ、概念的には、図7乃至図10に示すように構成される。
【0155】
すなわち、符号化装置1'におけるインターリーバ13は、図7に当該符号化装置1'の要部概念を示すように、アドレスにしたがって上述した入力データD1の読み出しを行いつつ直前にデータを読み出した位置に入力データD1を書き込むインターリーブ動作を行うインターリーバ131と、このインターリーバ131によるインターリーブ動作とは逆にシーケンシャルに入力データD1の順次読み出しを行いつつ直前にデータを読み出した位置に入力データD1を書き込むデインターリーブ動作を行うデインターリーバ132と、出力データとしての上述したインターリーブデータD3としてこれらのインターリーバ131及びデインターリーバ132による出力をフレーム毎に切り替えるスイッチ133とを有するものとして捉えることができる。
【0156】
このインターリーバ13は、インターリーバ131によるインターリーブ動作と、デインターリーバ132によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、連続的なインターリーブを実現することができる。
【0157】
一方、復号装置3'におけるインターリーバ16は、図8(A)に当該復号装置3'の要部概念を示すように、アドレスにしたがって上述した外部情報D9の読み出しを行いつつ直前にデータを読み出した位置に外部情報D9を書き込む上述したインターリーバ131と同様のインターリーブ動作を行うインターリーバ161と、このインターリーバ161によるインターリーブ動作とは逆にシーケンシャルに外部情報D9の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報D9を書き込む上述したデインターリーバ132と同様のデインターリーブ動作を行うデインターリーバ162と、出力データとしての上述した事前確率情報D10としてこれらのインターリーバ161及びデインターリーバ162による出力をフレーム毎に切り替えるスイッチ163とを有するものとして捉えることができる。
【0158】
このインターリーバ16は、インターリーバ161によるインターリーブ動作と、デインターリーバ162によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ13と同様の連続的なインターリーブを実現することができる。
【0159】
また、復号装置3'におけるデインターリーバ18は、同図(B)に当該復号装置3'の要部概念を示すように、アドレスにしたがって上述した外部情報D11の読み出しを行いつつ直前にデータを読み出した位置に外部情報D11を書き込むインターリーブ動作を行うインターリーバ181と、このインターリーバ181によるインターリーブ動作とは逆にシーケンシャルに外部情報D11の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報D11を書き込むデインターリーブ動作を行うデインターリーバ182と、出力データとしての上述した事前確率情報D8としてこれらのインターリーバ181及びデインターリーバ182による出力をフレーム毎に切り替えるスイッチ183とを有するものとして捉えることができる。
【0160】
このデインターリーバ18は、インターリーバ181によるインターリーブ動作と、デインターリーバ182によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ13,16とは逆の置換動作を行う連続的なデインターリーブを実現することができる。
【0161】
さらに、復号装置3'におけるデインターリーバ20は、同図(C)に当該復号装置3'の要部概念を示すように、アドレスにしたがって上述したデータD12の読み出しを行いつつ直前にデータを読み出した位置にデータD12を書き込む上述したインターリーバ181と同様のインターリーブ動作を行うインターリーバ201と、このインターリーバ201によるインターリーブ動作とは逆にシーケンシャルにデータD12の順次読み出しを行いつつ直前にデータを読み出した位置にデータD12を書き込む上述したデインターリーバ182と同様のデインターリーブ動作を行うデインターリーバ202と、出力データとしての上述した復号データD13としてこれらのインターリーバ201及びデインターリーバ202による出力をフレーム毎に切り替えるスイッチ203とを有するものとして捉えることができる。
【0162】
このデインターリーバ20は、インターリーバ201によるインターリーブ動作と、デインターリーバ202によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、デインターリーバ18と同様の連続的なデインターリーブを実現することができる。
【0163】
同様に、符号化装置1''におけるインターリーバ32は、図9に当該符号化装置1''の要部概念を示すように、アドレスにしたがって上述した符号化データD22,D23の読み出しを行いつつ直前にデータを読み出した位置に符号化データD22,D23を書き込むインターリーブ動作を行うインターリーバ321と、このインターリーバ321によるインターリーブ動作とは逆にシーケンシャルに符号化データD22,D23の順次読み出しを行いつつ直前にデータを読み出した位置に符号化データD22,D23を書き込むデインターリーブ動作を行うデインターリーバ322と、出力データとしての上述したインターリーブデータD24,D25としてこれらのインターリーバ321及びデインターリーバ322による出力をフレーム毎に切り替えるスイッチ323とを有するものとして捉えることができる。
【0164】
このインターリーバ32は、インターリーバ321によるインターリーブ動作と、デインターリーバ322によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、連続的なインターリーブを実現することができる。
【0165】
一方、復号装置3'におけるデインターリーバ35は、図10(A)に当該復号装置3''の要部概念を示すように、アドレスにしたがって上述した外部情報D31の読み出しを行いつつ直前にデータを読み出した位置に外部情報D31を書き込むインターリーブ動作を行うインターリーバ351と、このインターリーバ351によるインターリーブ動作とは逆にシーケンシャルに外部情報D31の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報D31を書き込むデインターリーブ動作を行うデインターリーバ352と、出力データとしての上述した事前確率情報D32としてこれらのインターリーバ351及びデインターリーバ352による出力をフレーム毎に切り替えるスイッチ353とを有するものとして捉えることができる。
【0166】
このデインターリーバ35は、インターリーバ351によるインターリーブ動作と、デインターリーバ352によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ32とは逆の置換動作を行う連続的なデインターリーブを実現することができる。
【0167】
また、復号装置3''におけるインターリーバ37は、同図(B)に当該復号装置3''の要部概念を示すように、アドレスにしたがって上述した外部情報D35の読み出しを行いつつ直前にデータを読み出した位置に外部情報D35を書き込む上述したインターリーバ321と同様のインターリーブ動作を行うインターリーバ371と、このインターリーバ371によるインターリーブ動作とは逆にシーケンシャルに外部情報D35の順次読み出しを行いつつ直前にデータを読み出した位置に外部情報D35を書き込む上述したデインターリーバ322と同様のデインターリーブ動作を行うデインターリーバ372と、出力データとしての上述した事前確率情報D30としてこれらのインターリーバ371及びデインターリーバ372による出力をフレーム毎に切り替えるスイッチ373とを有するものとして捉えることができる。
【0168】
このインターリーバ37は、インターリーバ371によるインターリーブ動作と、デインターリーバ372によるデインターリーブ動作とを、フレーム毎に交互に切り替えて行うことにより、インターリーバ32と同様の連続的なインターリーブを実現することができる。
【0169】
このように、符号化装置1'及び復号装置3'、並びに符号化装置1''及び復号装置3''に適用することができるインターリーバは、具体的には、図11に示すようにハードウェアとして構成される。なお、ここでは、インターリーブ長を10タイムスロット分のワード数とする。ここで、インターリーバは、インターリーブ長の"1/i"の容量を有する記憶素子をi個用い、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行い、前時刻にデータを読み出した位置に次のデータを書き込むといった動作を繰り返し行うと、同時刻に同一の記憶素子に対して、読み出し又は書き込みのいずれかのみを行えばよいことから、記憶素子としては、いわゆるシングルポートのRAMのみを用いることができる。RAMは、一般に、同じ容量であれば、いわゆるデュアルポートのものよりもシングルポートのものの方が半分程度の大きさであることから、インターリーバとしては、シングルポートのRAMを用いることにより、デュアルポートのRAMを用いた場合に比べて、より回路規模の削減を図ることができる。したがって、同図に示すインターリーバ100においては、データの書き込み及び読み出しを行うための記憶素子として、シングルポートのRAMを用いるものとする。
【0170】
すなわち、インターリーバ100は、例えば同図に示すように、2バンクのシングルポートのRAM1011,1012と、置換先のアドレスデータを保持するアドレス用記憶回路102と、このアドレス用記憶回路102を参照して読み出したアドレスデータに基づいてRAM1011,1012に対するデータの書き込み及び読み出しを制御する制御部103と、この制御部103の制御のもとにRAM1011,1012からの出力を1タイムスロット毎に切り替えるスイッチ104とを有する。
【0171】
RAM1011,1012は、それぞれ、インターリーブ長の半分の容量を有する。RAM1011,1012には、それぞれ、制御部103の制御のもとに、1タイムスロット毎に交互に入力データが入力される。そして、RAM1011,1012には、それぞれ、制御部103によって指定されたアドレスにデータが書き込まれる。また、RAM1011,1012からは、それぞれ、制御部103の制御のもとに、1タイムスロット毎に交互に出力データが出力される。このとき、RAM1011,1012からは、それぞれ、制御部103によって指定されたアドレスからデータが読み出される。
【0172】
アドレス用記憶回路102は、任意のインターリーブパターンが書き込み可能に構成されるものであって、図示しないが、例えば、複数バンクのRAMや選択回路等を有し、制御部103によって参照されるデータの置換位置情報をアドレスデータとして保持する。ここで、インターリーバ100は、シーケンシャルな順次読み出しとアドレスにしたがった読み出しとを行うことから、アドレス用記憶回路102は、2種類の置換位置情報を保持することになるが、2種類の置換位置情報のうち、シーケンシャルな順次読み出しのアドレスについては、カウンタによってカウントアップ又はカウントダウンしていくことによって発生されるシーケンシャルなアドレスにしたがえば足り、実際には1種類の置換位置情報を保持すればよい。このアドレス用記憶回路102に保持されているアドレスデータは、制御部103によって当該アドレス用記憶回路102のアドレスがアドレスデータとして指定されることにより、読み出される。
【0173】
制御部103は、例えばフレームの先頭を検出すると、アドレス用記憶回路102に保持されたアドレスデータを参照することによってRAM1011,1012に対するデータの書き込み及び読み出しを制御する。具体的には、制御部103は、RAM1011,1012から直前にデータを読み出した位置にデータを書き込むという動作を実現するために、RAM1011,1012のそれぞれに対してアドレスを供給することによるRAM1011,1012のうちの一方からの読み出しに用いた当該アドレスを、図示しないレジスタで1タイムスロットだけ遅延させ、次のタイムスロットにてこのアドレスを用いてRAM1011,1012のうちの同じものに対して書き込むように、RAM1011,1012に対するデータの書き込み及び読み出しを制御し、RAM1011,1012のそれぞれから出力される出力データを1タイムスロット毎に選択的に切り替えるための制御信号をスイッチ104に対して供給する。なお、この動作は、RAM1011,1012のそれぞれの側から見ると、2タイムスロットの間、同じアドレスが入力され、その1タイムスロット目でデータの読み出しが行われ、2タイムスロット目でそのアドレスに対してデータの書き込みが行われるものとなる。制御部103は、このような動作を、ランダムに行うかシーケンシャルに行うかをフレーム毎に切り替える。すなわち、制御部103は、ランダムなアドレスにしたがったデータの読み出し及びこのアドレスを1タイムスロットだけ遅延させたデータの書き込みと、シーケンシャルなデータの順次読み出し及びこのアドレスを1タイムスロットだけ遅延させたデータの書き込みとを、フレーム毎に切り替える。
【0174】
スイッチ104は、制御部103から供給される制御信号に基づいて、RAM1011,1012のそれぞれから出力される出力データを1タイムスロット毎に切り替える。
【0175】
このようなインターリーバ100においては、あるフレームについて、制御部103の制御のもとに、RAM1011,1012のうちの一方における所定のアドレスからデータが読み出されるとともに、RAM1011,1012のうちの他方における所定のアドレスに対してデータが書き込まれると、次のフレームについては、RAM1011,1012のうちの一方からのデータの読み出しに用いたアドレスに対してデータが書き込まれるとともに、RAM1011,1012のうちの他方における所定のアドレスからデータが読み出される。
【0176】
具体的には、インターリーバ100は、図12乃至図19に示すように、データの書き込み及び読み出しを行うことにより、インターリーブを実現する。なお、ここでは、説明の便宜上、2バンクのうち同図中上段に示すRAM1011をバンクAと称するとともに、同図中下段に示すRAM1012をバンクBと称するものとする。また、ここでは、RAM1011,1012には、それぞれ、同図中左側から0,1,2,3,4のアドレスが割り当てられているものとする。さらに、同図においては、データの書き込みを"W"で表し、データの読み出しを"R"で表すものとする。
【0177】
まず、インターリーバ100は、1フレーム目のデータをRAM1011,1012に対して書き込む。
【0178】
すなわち、インターリーバ100は、図12に示すように、0タイムスロット目では、バンクAのRAM1011におけるアドレス0の記憶領域に対して、データDD0を書き込む。続いて、インターリーバ100は、1タイムスロット目では、バンクBのRAM1012におけるアドレス0の記憶領域に対して、データDD1を書き込む。続いて、インターリーバ100は、2タイムスロット目では、バンクAのRAM1011におけるアドレス1の記憶領域に対して、データDD2を書き込み、3タイムスロット目では、バンクBのRAM1012におけるアドレス1の記憶領域に対して、データDD3を書き込む。同様に、インターリーバ100は、各タイムスロット毎に、バンクAのRAM1011における各アドレスの記憶領域とバンクBのRAM1012における各アドレスの記憶領域とに対して、交互にデータを書き込み、8タイムスロット目では、バンクAのRAM1011におけるアドレス4の記憶領域に対して、データDD8を書き込む。
【0179】
このようにして、インターリーバ100は、1フレーム目のデータのうち、最後のデータDD9を除く全てのデータを、DD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8の順序でRAM1011,1012に対して書き込む。
【0180】
続いて、インターリーバ100は、1フレーム目のデータの残りのデータDD9と2フレーム目のデータとをRAM1011,1012に対して書き込むとともに、RAM1011,1012に対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出す。
【0181】
すなわち、インターリーバ100は、図13に示すように、9タイムスロット目では、バンクBのRAM1012におけるアドレス4の記憶領域に対して、データDD9を書き込むとともに、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、2タイムスロット目でデータDD2が書き込まれた記憶領域からデータDD2を読み出す。続いて、インターリーバ100は、10タイムスロット目では、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、9タイムスロット目でデータDD9が書き込まれた記憶領域からデータDD9を読み出すとともに、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、直前の9タイムスロット目でデータDD2が読み出されて空いている記憶領域に対して、データDD10を書き込む。続いて、インターリーバ100は、11タイムスロット目では、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、0タイムスロット目でデータDD0が書き込まれた記憶領域からデータDD0を読み出すとともに、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、直前の10タイムスロット目でデータDD9が読み出されて空いている記憶領域に対して、データDD11を書き込む。続いて、インターリーバ100は、12タイムスロット目では、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、5タイムスロット目でデータDD5が書き込まれた記憶領域からデータDD5を読み出すとともに、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、直前の11タイムスロット目でデータDD0が読み出されて空いている記憶領域に対して、データDD12を書き込む。続いて、インターリーバ100は、13タイムスロット目では、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、4タイムスロット目でデータDD4が書き込まれた記憶領域からデータDD4を読み出すとともに、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、直前の12タイムスロット目でデータDD5が読み出されて空いている記憶領域に対して、データDD13を書き込む。
【0182】
さらに、インターリーバ100は、図14に示すように、14タイムスロット目では、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、3タイムスロット目でデータDD3が書き込まれた記憶領域からデータDD3を読み出すとともに、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、直前の13タイムスロット目でデータDD4が読み出されて空いている記憶領域に対して、データDD14を書き込む。続いて、インターリーバ100は、15タイムスロット目では、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、8タイムスロット目でデータDD8が書き込まれた記憶領域からデータDD8を読み出すとともに、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、直前の14タイムスロット目でデータDD3が読み出されて空いている記憶領域に対して、データDD15を書き込む。続いて、インターリーバ100は、16タイムスロット目では、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、7タイムスロット目でデータDD7が書き込まれた記憶領域からデータDD7を読み出すとともに、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、直前の15タイムスロット目でデータDD8が読み出されて空いている記憶領域に対して、データDD16を書き込む。続いて、インターリーバ100は、17タイムスロット目では、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、6タイムスロット目でデータDD6が書き込まれた記憶領域からデータDD6を読み出すとともに、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、直前の16タイムスロット目でデータDD7が読み出されて空いている記憶領域に対して、データDD17を書き込む。そして、インターリーバ100は、18タイムスロット目では、バンクBのRAM1011におけるアドレス0の記憶領域、すなわち、1タイムスロット目でデータDD1が書き込まれた記憶領域からデータDD1を読み出すとともに、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、直前の17タイムスロット目でデータDD6が読み出されて空いている記憶領域に対して、データDD18を書き込む。
【0183】
このようにして、インターリーバ100は、RAM1011,1012に対して、DD0,DD1,DD2,DD3,DD4,DD5,DD6,DD7,DD8,DD9の順序で書き込んだ1フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD2,DD9,DD0,DD5,DD4,DD3,DD8,DD7,DD6,DD1の順序で全て読み出すとともに、2フレーム目のデータのうち、最後のデータDD19を除く全てのデータを、DD10,DD11,DD12,DD13,DD14,DD15,DD16,DD17,DD18の順序でRAM1011,1012に対して書き込む。
【0184】
続いて、インターリーバ100は、2フレーム目のデータの残りのデータDD19と3フレーム目のデータとをRAM1011,1012に対して書き込むとともに、RAM1011,1012に対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出す。
【0185】
すなわち、インターリーバ100は、図15に示すように、19タイムスロット目では、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、12タイムスロット目でデータDD12が書き込まれた記憶領域からデータDD12を読み出すとともに、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、直前の18タイムスロット目でデータDD1が読み出されて空いている記憶領域に対して、データDD19を書き込む。続いて、インターリーバ100は、20タイムスロット目では、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、19タイムスロット目でデータDD19が書き込まれた記憶領域からデータDD19を読み出すとともに、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、直前の19タイムスロット目でデータDD12が読み出されて空いている記憶領域に対して、データDD20を書き込む。続いて、インターリーバ100は、21タイムスロット目では、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、10タイムスロット目でデータDD10が書き込まれた記憶領域からデータDD10を読み出すとともに、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、直前の20タイムスロット目でデータDD19が読み出されて空いている記憶領域に対して、データDD21を書き込む。続いて、インターリーバ100は、22タイムスロット目では、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、15タイムスロット目でデータDD15が書き込まれた記憶領域からデータDD15を読み出すとともに、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、直前の21タイムスロット目でデータDD10が読み出されて空いている記憶領域に対して、データDD22を書き込む。続いて、インターリーバ100は、23タイムスロット目では、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、14タイムスロット目でデータDD14が書き込まれた記憶領域からデータDD14を読み出すとともに、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、直前の22タイムスロット目でデータDD15が読み出されて空いている記憶領域に対して、データDD23を書き込む。
【0186】
さらに、インターリーバ100は、図16に示すように、24タイムスロット目では、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、13タイムスロット目でデータDD13が書き込まれた記憶領域からデータDD13を読み出すとともに、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、直前の23タイムスロット目でデータDD14が読み出されて空いている記憶領域に対して、データDD24を書き込む。続いて、インターリーバ100は、25タイムスロット目では、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、18タイムスロット目でデータDD18が書き込まれた記憶領域からデータDD18を読み出すとともに、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、直前の24タイムスロット目でデータDD13が読み出されて空いている記憶領域に対して、データDD25を書き込む。続いて、インターリーバ100は、26タイムスロット目では、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、17タイムスロット目でデータDD17が書き込まれた記憶領域からデータDD17を読み出すとともに、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、直前の25タイムスロット目でデータDD18が読み出されて空いている記憶領域に対して、データDD26を書き込む。続いて、インターリーバ100は、27タイムスロット目では、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、16タイムスロット目でデータDD16が書き込まれた記憶領域からデータDD16を読み出すとともに、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、直前の26タイムスロット目でデータDD17が読み出されて空いている記憶領域に対して、データDD27を書き込む。そして、インターリーバ100は、28タイムスロット目では、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、11タイムスロット目でデータDD11が書き込まれた記憶領域からデータDD11を読み出すとともに、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、直前の27タイムスロット目でデータDD16が読み出されて空いている記憶領域に対して、データDD28を書き込む。
【0187】
このようにして、インターリーバ100は、RAM1011,1012に対して、DD10,DD11,DD12,DD13,DD14,DD15,DD16,DD17,DD18,DD19の順序で書き込んだ2フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD12,DD19,DD10,DD15,DD14,DD13,DD18,DD17,DD16,DD11の順序で全て読み出すとともに、3フレーム目のデータのうち、最後のデータDD29を除く全てのデータを、DD20,DD21,DD22,DD23,DD24,DD25,DD26,DD27,DD28の順序でRAM1011,1012に対して書き込む。
【0188】
続いて、インターリーバ100は、3フレーム目のデータの残りのデータDD29と4フレーム目のデータとをRAM1011,1012に対して書き込むとともに、RAM1011,1012に対して書き込んだ3フレーム目のデータを書き込み順序と異なる順序で読み出す。
【0189】
すなわち、インターリーバ100は、図17に示すように、29タイムスロット目では、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、22タイムスロット目でデータDD22が書き込まれた記憶領域からデータDD22を読み出すとともに、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、直前の28タイムスロット目でデータDD11が読み出されて空いている記憶領域に対して、データDD29を書き込む。続いて、インターリーバ100は、30タイムスロット目では、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、29タイムスロット目でデータDD29が書き込まれた記憶領域からデータDD29を読み出すとともに、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、直前の29タイムスロット目でデータDD22が読み出されて空いている記憶領域に対して、データDD30を書き込む。続いて、インターリーバ100は、31タイムスロット目では、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、20タイムスロット目でデータDD20が書き込まれた記憶領域からデータDD20を読み出すとともに、バンクBのRAM1012におけるアドレス4の記憶領域、すなわち、直前の30タイムスロット目でデータDD29が読み出されて空いている記憶領域に対して、データDD31を書き込む。続いて、インターリーバ100は、32タイムスロット目では、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、25タイムスロット目でデータDD25が書き込まれた記憶領域からデータDD25を読み出すとともに、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、直前の31タイムスロット目でデータDD20が読み出されて空いている記憶領域に対して、データDD32を書き込む。続いて、インターリーバ100は、33タイムスロット目では、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、24タイムスロット目でデータDD24が書き込まれた記憶領域からデータDD24を読み出すとともに、バンクBのRAM1012におけるアドレス2の記憶領域、すなわち、直前の32タイムスロット目でデータDD25が読み出されて空いている記憶領域に対して、データDD33を書き込む。
【0190】
さらに、インターリーバ100は、図18に示すように、34タイムスロット目では、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、23タイムスロット目でデータDD23が書き込まれた記憶領域からデータDD23を読み出すとともに、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、直前の33タイムスロット目でデータDD24が読み出されて空いている記憶領域に対して、データDD34を書き込む。続いて、インターリーバ100は、35タイムスロット目では、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、28タイムスロット目でデータDD28が書き込まれた記憶領域からデータDD28を読み出すとともに、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、直前の34タイムスロット目でデータDD23が読み出されて空いている記憶領域に対して、データDD35を書き込む。続いて、インターリーバ100は、36タイムスロット目では、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、27タイムスロット目でデータDD27が書き込まれた記憶領域からデータDD27を読み出すとともに、バンクAのRAM1011におけるアドレス4の記憶領域、すなわち、直前の35タイムスロット目でデータDD28が読み出されて空いている記憶領域に対して、データDD36を書き込む。続いて、インターリーバ100は、37タイムスロット目では、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、26タイムスロット目でデータDD26が書き込まれた記憶領域からデータDD26を読み出すとともに、バンクBのRAM1012におけるアドレス3の記憶領域、すなわち、直前の36タイムスロット目でデータDD27が読み出されて空いている記憶領域に対して、データDD37を書き込む。そして、インターリーバ100は、38タイムスロット目では、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、21タイムスロット目でデータDD21が書き込まれた記憶領域からデータDD21を読み出すとともに、バンクAのRAM1011におけるアドレス3の記憶領域、すなわち、直前の37タイムスロット目でデータDD26が読み出されて空いている記憶領域に対して、データDD38を書き込む。
【0191】
このようにして、インターリーバ100は、RAM1011,1012に対して、DD20,DD21,DD22,DD23,DD24,DD25,DD26,DD27,DD28,DD29の順序で書き込んだ3フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD22,DD29,DD20,DD25,DD24,DD23,DD28,DD27,DD26,DD21の順序で全て読み出すとともに、4フレーム目のデータのうち、最後のデータDD39を除く全てのデータを、DD30,DD31,DD32,DD33,DD34,DD35,DD36,DD37,DD38の順序でRAM1011,1012に対して書き込む。
【0192】
同様に、インターリーバ100は、4フレーム目のデータの残りのデータDD39と5フレーム目のデータとをRAM1011,1012に対して書き込むとともに、RAM1011,1012に対して書き込んだ4フレーム目のデータを書き込み順序と異なる順序で読み出す。
【0193】
すなわち、インターリーバ100は、図19に示すように、39タイムスロット目では、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、32タイムスロット目でデータDD32が書き込まれた記憶領域からデータDD32を読み出すとともに、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、直前の38タイムスロット目でデータDD21が読み出されて空いている記憶領域に対して、データDD39を書き込む。続いて、インターリーバ100は、40タイムスロット目では、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、39タイムスロット目でデータDD39が書き込まれた記憶領域からデータDD39を読み出すとともに、バンクAのRAM1011におけるアドレス0の記憶領域、すなわち、直前の39タイムスロット目でデータDD32が読み出されて空いている記憶領域に対して、データDD40を書き込む。続いて、インターリーバ100は、41タイムスロット目では、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、30タイムスロット目でデータDD30が書き込まれた記憶領域からデータDD30を読み出すとともに、バンクBのRAM1012におけるアドレス0の記憶領域、すなわち、直前の40タイムスロット目でデータDD39が読み出されて空いている記憶領域に対して、データDD41を書き込む。続いて、インターリーバ100は、42タイムスロット目では、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、35タイムスロット目でデータDD35が書き込まれた記憶領域からデータDD35を読み出すとともに、バンクAのRAM1011におけるアドレス1の記憶領域、すなわち、直前の41タイムスロット目でデータDD30が読み出されて空いている記憶領域に対して、データDD42を書き込む。そして、インターリーバ100は、43タイムスロット目では、バンクAのRAM1011におけるアドレス2の記憶領域、すなわち、34タイムスロット目でデータDD34が書き込まれた記憶領域からデータDD34を読み出すとともに、バンクBのRAM1012におけるアドレス1の記憶領域、すなわち、直前の42タイムスロット目でデータDD35が読み出されて空いている記憶領域に対して、データDD43を書き込む。
【0194】
このようにして、インターリーバ100は、RAM1011,1012に対して、DD30,DD31,DD32,DD33,DD34,DD35,DD36,DD37,DD38,DD39の順序で書き込んだ4フレーム目のデータを、書き込み順序と異なる順序、すなわち、DD32,DD39,DD30,DD35,DD34,・・・の順序で全て読み出すとともに、5フレーム目のデータのうち、最後のデータDD49を除く全てのデータを、DD40,DD41,DD42,DD43,・・・の順序でRAM1011,1012に対して書き込む。
【0195】
このように、インターリーバ100は、インターリーブ長の半分の容量を有するRAM1011,1012を用い、すなわち、全体としてインターリーブ長と同じ容量を有する記憶素子を用い、あるフレームについて、RAM1011,1012のうちの一方における所定のアドレスからデータを読み出すとともに、RAM1011,1012のうちの他方における所定のアドレスに対してデータを書き込み、次のフレームについては、RAM1011,1012のうちの一方からのデータの読み出しに用いたアドレスに対してデータを書き込むとともに、RAM1011,1012のうちの他方における所定のアドレスからデータを読み出す。インターリーバ100は、このように、直前にデータを読み出した位置にデータを書き込む動作を、フレーム毎にRAM1011,1012を交互に切り替えて行うことにより、少ない回路規模のもとに、連続的なインターリーブを実現することができる。
【0196】
以上説明したように、データ送受信システムにおいては、符号化装置1及び/又は復号装置3は、入力データから出力データへの置換が対称であり、且つ、偶数番目の入力データは偶数番目に出力されるとともに、奇数番目の入力データは奇数番目に出力されるアドレスにしたがった置換を行うインターリーバ100を備え、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行うことにより、インターリーブ長と同じ容量、すなわち、従来要していた容量の半分の容量の記憶素子を用いるのみで連続的なインターリーブを実現することができる。
【0197】
このとき、インターリーバ100は、インターリーブ長が長いほど、回路規模の削減効果を大きくすることができる。また、アドレスの規則性に基づく性能の劣化についても、インターリーブ長を例えば10000ビット程度以上にすれば、影響が殆ど見受けられないことを確認している。
【0198】
したがって、データ送受信システムは、符号の性能を維持しつつ回路規模の削減を図ることができ、優れた利便を提供することができるものである。
【0199】
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、インターリーバ100における記憶素子としてRAMを用いるものとして説明したが、本発明は、RAM以外の記憶素子であっても、同様の書き込み及び読み出しを行うことができるものであれば、いかなるものであっても適用することができるのは勿論である。
【0200】
また、上述した実施の形態では、インターリーバ100として、2バンクのRAM1011,1012を用いるものとして説明したが、本発明は、2バンク以上であってもよい。すなわち、本発明は、全体としてインターリーブ長と同じ容量を有する記憶素子を用いるのみで連続的なインターリーブを実現することを目的するものであればよい。より換言すれば、本発明は、上述した整数i,j,kの関係が、i=2,j=kとなる場合のみならず、i≧3,j!=kとなる場合であれば、適用することができるものである。
【0201】
さらに、上述した実施の形態では、シングルポートのRAMを用いてインターリーバ100を構成するものとして説明したが、本発明は、デュアルポートのRAMを用いてもインターリーバを構成することができる。この場合、インターリーバは、インターリーバ100におけるバンクAのRAM1011における各アドレスの記憶領域と、インターリーバ100におけるバンクBのRAM1012における各アドレスの記憶領域とを交互に連接した1つのRAMを用いた構成となるのみで、データの入出力の規則性については、インターリーバ100と同様のアドレス制御に基づくものとなることはいうまでもない。
【0202】
さらにまた、上述した実施の形態では、複数の要素符号化器と入力されたデータを並べ替えるインターリーバとを連接することによってターボ符号化を行う符号化装置1と、この符号化装置1によって符号化がなされた符号に対して複数の軟出力復号と入力されたデータを並べ替えるインターリーバとを連接することによって繰り返し復号を行う復号装置3とを備えるデータ送受信システムに適用するものとして説明したが、本発明は、データ送受信システムに拘泥するものではなく、インターリーブ及び/又はデインターリーブを行うものであれば、いかなるものであっても適用することができるものである。
【0203】
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0204】
【発明の効果】
以上詳細に説明したように、本発明にかかるインターリーブ装置は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0205】
したがって、本発明にかかるインターリーブ装置は、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、制御手段によって記憶手段に対するデータの書き込み及び読み出しを制御し、この制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、少ない回路規模のもとに、連続的なインターリーブ処理を実現することができる。
【0206】
また、本発明にかかるインターリーブ方法は、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを備え、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0207】
したがって、本発明にかかるインターリーブ方法は、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御し、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、少ない回路規模のもとに、連続的なインターリーブ処理を実現することが可能となる。
【0208】
さらに、本発明にかかる符号化装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、並列又は縦列に連接される複数の要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0209】
したがって、本発明にかかる符号化装置は、各要素符号化手段の間に設けられるインターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行い、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理を実現することができる。
【0210】
さらにまた、本発明にかかる符号化方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、並列又は縦列に連接される複数の要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、インターリーブ工程は、入力データを入力する入力工程と、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0211】
したがって、本発明にかかる符号化方法は、各要素符号化工程の間に行われるインターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理を行い、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理を実現することが可能となる。
【0212】
また、本発明にかかる復号装置は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号手段と、これらの軟出力復号手段によって生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、インターリーブ手段は、データを記憶する記憶手段と、入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0213】
したがって、本発明にかかる復号装置は、インターリーブ手段により、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行い、制御手段による記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理又はデインターリーブ処理を実現することができる。
【0214】
さらに、本発明にかかる復号方法は、複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、複数の要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号工程と、これらの軟出力復号工程にて生成された外部情報を入力し、符号化におけるインターリーブ処理と同一の置換位置情報に基づいて、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化におけるインターリーブ処理によって並べ替えられた情報の配列を元に戻すように、外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、インターリーブ工程は、データを入力する入力工程と、この入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、出力データを出力する出力工程とを有し、上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせる。
【0215】
したがって、本発明にかかる復号方法は、インターリーブ工程にて、入力データから出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の入力データが、iで除算した剰余がkになる位置に出力データとして出力されるように、記憶手段に対するデータの書き込み及び読み出しを制御したインターリーブ処理又はデインターリーブ処理を行い、記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせることにより、符号の性能を維持しつつ少ない回路規模のもとに、連続的なインターリーブ処理又はデインターリーブ処理を実現することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態として示すデータ送受信システムを適用する通信モデルの構成を説明するブロック図である。
【図2】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、PCCCによる符号化を行う符号化装置の構成を説明するブロック図である。
【図3】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図2に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図4】同データ送受信システムにおける符号化装置の一例の構成を説明するブロック図であって、SCCCによる符号化を行う符号化装置の構成を説明するブロック図である。
【図5】同データ送受信システムにおける復号装置の一例の構成を説明するブロック図であって、図4に示す符号化装置による符号の復号を行う復号装置の構成を説明するブロック図である。
【図6】同符号化装置及び/又は同復号装置に備えられるインターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、(A)は、各記憶素子に対して入力データをシーケンシャルに順次書き込んだ様子を示し、(B)は、各記憶素子に書き込んだデータを出力データとして読み出す様子を示す図である。
【図7】図2に示す符号化装置に適用したインターリーバの概念を説明するための当該符号化装置の要部概念を説明する図である。
【図8】図3に示す復号装置に適用したインターリーバの概念を説明するための当該復号装置の要部概念を説明する図であって、(A)は、当該復号装置が備えるインターリーバを示し、(B)は、当該復号装置が備えるデインターリーバを示し、(C)は、当該復号装置が備える他のデインターリーバを示す図である。
【図9】図4に示す符号化装置に適用したインターリーバの概念を説明するための当該符号化装置の要部概念を説明する図である。
【図10】図5に示す復号装置に適用したインターリーバの概念を説明するための当該復号装置の要部概念を説明する図であって、(A)は、当該復号装置が備えるデインターリーバを示し、(B)は、当該復号装置が備えるインターリーバを示す図である。
【図11】同符号化装置及び/又は同復号装置に適用されるインターリーバの具体的なハードウェア構成を説明するブロック図である。
【図12】同インターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、1フレーム目のデータのうち、最後のデータを除く全てのデータをRAMに対して書き込む様子を説明する図である。
【図13】同インターリーバによる図12に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、1フレーム目の最後のデータと2フレーム目のデータの途中までのデータとをRAMに対して書き込むとともに、RAMに対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図14】同インターリーバによる図13に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、2フレーム目のデータのうち、最後のデータを除く残りのデータをRAMに対して書き込むとともに、RAMに対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図15】同インターリーバによる図14に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、2フレーム目の最後のデータと3フレーム目のデータの途中までのデータとをRAMに対して書き込むとともに、RAMに対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図16】同インターリーバによる図15に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、3フレーム目のデータのうち、最後のデータを除く残りのデータをRAMに対して書き込むとともに、RAMに対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図17】同インターリーバによる図16に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、3フレーム目の最後のデータと4フレーム目のデータの途中までのデータとをRAMに対して書き込むとともに、RAMに対して書き込んだ3フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図18】同インターリーバによる図17に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、4フレーム目のデータのうち、最後のデータを除く残りのデータをRAMに対して書き込むとともに、RAMに対して書き込んだ3フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図19】同インターリーバによる図18に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、4フレーム目の最後のデータと5フレーム目のデータの途中までのデータとをRAMに対して書き込むとともに、RAMに対して書き込んだ4フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図20】通信モデルの構成を説明するブロック図である。
【図21】従来の符号化装置におけるトレリスを説明する図であって、確率α,β及びγの内容を説明するための図である。
【図22】従来の復号装置において、BCJRアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【図23】従来の復号装置において、Max−Log−BCJRアルゴリズムを適用して軟出力復号を行う際の一連の工程を説明するフローチャートである。
【図24】従来のインターリーバによるデータの書き込み及び読み出し動作を説明するための図であって、1フレーム目のデータを一方のバンクのRAMに対して書き込む様子を説明する図である。
【図25】同インターリーバによる図24に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、2フレーム目のデータの途中までのデータを他方のバンクのRAMに対して書き込むとともに、一方のバンクのRAMに対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図26】同インターリーバによる図25に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、2フレーム目のデータの残りのデータを他方のバンクのRAMに対して書き込むとともに、一方のバンクのRAMに対して書き込んだ1フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図27】同インターリーバによる図26に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、3フレーム目のデータの途中までのデータを一方のバンクのRAMに対して書き込むとともに、他方のバンクのRAMに対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図28】同インターリーバによる図27に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、3フレーム目のデータの残りのデータを一方のバンクのRAMに対して書き込むとともに、他方のバンクのRAMに対して書き込んだ2フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【図29】同インターリーバによる図28に示す状態に続くデータの書き込み及び読み出し動作を説明するための図であって、4フレーム目のデータの途中までのデータを他方のバンクのRAMに対して書き込むとともに、一方のバンクのRAMに対して書き込んだ3フレーム目のデータを書き込み順序と異なる順序で読み出す様子を説明する図である。
【符号の説明】
1,1',1'' 符号化装置、 3,3',3'' 復号装置、 11 遅延器、12,14,31,33 畳み込み符号化器、 13,131,16,161,181,201,32,321,351,37,371,100 インターリーバ、 133,163,183,203,323,353,373,104 スイッチ、 15,17,34,36 軟出力復号回路、 132,162,18,182,20,202,322,35,352,372 デインターリーバ、 19 加算器、 1011,1012 RAM、 102 アドレス用記憶回路、 103 制御部
Claims (9)
- 入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ装置であって、
データを記憶する記憶手段と、
上記入力データから上記出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを備え、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とするインターリーブ装置。 - 上記制御手段は、偶数番目の上記入力データが偶数番目に出力されるとともに、奇数番目の上記入力データが奇数番目に出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御すること
を特徴とする請求項1記載のインターリーブ装置。 - 上記記憶手段は、インターリーブ長の1/iの容量を有する記憶素子がi個用いられて構成されるものであり、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行わせ、上記記憶手段に対するデータの書き込み動作として、前時刻にデータを読み出した位置に次のデータを書き込ませ、同時刻に同一の記憶素子に対して、読み出し又は書き込みのいずれかのみを行わせること
を特徴とする請求項1記載のインターリーブ装置。 - 上記記憶手段は、インターリーブ長と同じ容量を有する記憶素子が1個用いられて構成されるものであり、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとを交互に行わせ、上記記憶手段に対するデータの書き込み動作として、前時刻にデータを読み出した位置に次のデータを書き込ませること
を特徴とする請求項1記載のインターリーブ装置。 - 入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ方法であって、
上記入力データを入力する入力工程と、
上記入力データから上記出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを備え、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とするインターリーブ方法。 - 複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化装置であって、
入力されたデータに対して所定の符号化を行う複数の要素符号化手段と、
並列又は縦列に連接される複数の上記要素符号化手段のそれぞれの間に設けられ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する記憶手段と、
上記入力データから上記出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする符号化装置。 - 複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して符号化を行う符号化方法であって、
入力されたデータに対して所定の符号化を行う複数の要素符号化工程と、
並列又は縦列に連接される複数の上記要素符号化工程のそれぞれの間に行われ、入力された入力データの順序を所定のアドレスにしたがって置換して並べ替えて出力データとして出力するインターリーブ工程とを備え、
上記インターリーブ工程は、
上記入力データを入力する入力工程と、
上記入力データから上記出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを有し、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする符号化方法。 - 複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号装置であって、
複数の上記要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号手段と、
上記軟出力復号手段によって生成された上記外部情報を入力し、符号化における上記インターリーブ処理と同一の置換位置情報に基づいて、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化における上記インターリーブ処理によって並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ手段とを備え、
上記インターリーブ手段は、
データを記憶する記憶手段と、
入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、上記記憶手段に対するデータの書き込み及び読み出しを制御する制御手段とを有し、
上記制御手段は、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする復号装置。 - 複数の要素符号をインターリーブ処理を介して並列又は縦列に連接して生成された符号の復号を行う復号方法であって、
複数の上記要素符号に対応して設けられ、軟入力とされる受信値及び事前確率情報を入力して軟出力復号を行い、各時刻における軟出力及び/又は外部情報を生成する複数の軟出力復号工程と、
上記軟出力復号工程にて生成された上記外部情報を入力し、符号化における上記インターリーブ処理と同一の置換位置情報に基づいて、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるインターリーブ処理、又は符号化における上記インターリーブ処理によって並べ替えられた情報の配列を元に戻すように、上記外部情報の順序を所定のアドレスにしたがって置換して並べ替えるデインターリーブ処理を行うインターリーブ工程とを備え、
上記インターリーブ工程は、
データを入力する入力工程と、
上記入力工程にて入力された入力データから出力する出力データへの置換が対称であり、且つ、2以上の整数iと0以上i未満の整数j,kとに対して、iで除算した剰余がjになる任意の位置の上記入力データが、iで除算した剰余がkになる位置に上記出力データとして出力されるように、データを記憶する記憶手段に対するデータの書き込み及び読み出しを制御する制御工程と、
上記出力データを出力する出力工程とを有し、
上記制御工程では、上記記憶手段からのデータの読み出し動作として、シーケンシャルな順次読み出しとアドレスにしたがったランダムな読み出しとをフレーム毎に交互に行わせること
を特徴とする復号方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001391494A JP3669433B2 (ja) | 2001-12-25 | 2001-12-25 | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 |
US10/328,952 US6944727B2 (en) | 2001-12-25 | 2002-12-23 | Interleaving apparatus and interleaving method, encoding apparatus and encoding method, and decoding apparatus and decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001391494A JP3669433B2 (ja) | 2001-12-25 | 2001-12-25 | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003198386A JP2003198386A (ja) | 2003-07-11 |
JP3669433B2 true JP3669433B2 (ja) | 2005-07-06 |
Family
ID=27599069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001391494A Expired - Fee Related JP3669433B2 (ja) | 2001-12-25 | 2001-12-25 | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6944727B2 (ja) |
JP (1) | JP3669433B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7428564B2 (en) | 2003-11-26 | 2008-09-23 | Gibb Sean G | Pipelined FFT processor with memory address interleaving |
US7415584B2 (en) | 2003-11-26 | 2008-08-19 | Cygnus Communications Canada Co. | Interleaving input sequences to memory |
WO2005052798A1 (en) * | 2003-11-26 | 2005-06-09 | Cygnus Communications Canada Co. | Interleaving memory |
US7167114B2 (en) * | 2004-10-05 | 2007-01-23 | Sony Corporation | Memory efficient interleaving |
US7856579B2 (en) | 2006-04-28 | 2010-12-21 | Industrial Technology Research Institute | Network for permutation or de-permutation utilized by channel coding algorithm |
US7797615B2 (en) * | 2005-07-07 | 2010-09-14 | Acer Incorporated | Utilizing variable-length inputs in an inter-sequence permutation turbo code system |
US20070011557A1 (en) * | 2005-07-07 | 2007-01-11 | Highdimension Ltd. | Inter-sequence permutation turbo code system and operation methods thereof |
US20070115960A1 (en) * | 2005-11-04 | 2007-05-24 | Mediatek Inc. | De-interleaver for data decoding |
US20080133997A1 (en) * | 2006-12-01 | 2008-06-05 | Broadcom Corporation, A California Corporation | Turbo decoder employing ARP (almost regular permutation) interleave and inverse thereof as de-interleave |
JP2008159109A (ja) * | 2006-12-21 | 2008-07-10 | Matsushita Electric Ind Co Ltd | データ転送装置 |
US10022468B2 (en) * | 2009-02-02 | 2018-07-17 | Kimberly-Clark Worldwide, Inc. | Absorbent articles containing a multifunctional gel |
US8572148B1 (en) * | 2009-02-23 | 2013-10-29 | Xilinx, Inc. | Data reorganizer for fourier transformation of parallel data streams |
US8858636B2 (en) | 2010-04-09 | 2014-10-14 | DePuy Synthes Products, LLC | Intervertebral implant |
JP2013098886A (ja) * | 2011-11-04 | 2013-05-20 | Mega Chips Corp | 通信装置および通信装置の動作方法 |
CN103236903B (zh) * | 2013-04-19 | 2015-11-18 | 中国科学院自动化研究所 | 一种改变数据序列顺序的装置 |
US10521342B2 (en) * | 2017-06-07 | 2019-12-31 | Intel Corporation | Memory address decoding prioritization |
US10606486B2 (en) * | 2018-01-26 | 2020-03-31 | International Business Machines Corporation | Workload optimized planning, configuration, and monitoring for a storage system environment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6772391B1 (en) * | 1998-10-13 | 2004-08-03 | Interdigital Technology Corporation | Hybrid interleaver for turbo codes |
US6442728B1 (en) * | 1999-01-11 | 2002-08-27 | Nortel Networks Limited | Methods and apparatus for turbo code |
EP1039646A1 (en) * | 1999-03-05 | 2000-09-27 | Mitsubishi Electric France | Interleaver device and method for interleaving a data set |
CA2266283C (en) * | 1999-03-19 | 2006-07-11 | Wen Tong | Data interleaver and method of interleaving data |
DE60032441T2 (de) * | 1999-05-19 | 2007-06-06 | Samsung Electronics Co., Ltd., Suwon | Vorrichtung und verfahren zur turboverschaltelung |
US6603412B2 (en) * | 2001-06-08 | 2003-08-05 | Texas Instruments Incorporated | Interleaved coder and method |
-
2001
- 2001-12-25 JP JP2001391494A patent/JP3669433B2/ja not_active Expired - Fee Related
-
2002
- 2002-12-23 US US10/328,952 patent/US6944727B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003198386A (ja) | 2003-07-11 |
US20030154343A1 (en) | 2003-08-14 |
US6944727B2 (en) | 2005-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3669433B2 (ja) | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 | |
Bauer et al. | Symbol-by-symbol MAP decoding of variable length codes | |
US6530059B1 (en) | Tail-biting turbo-code encoder and associated decoder | |
US7584409B2 (en) | Method and device for alternately decoding data in forward and reverse directions | |
US6351832B1 (en) | Turbo code symbol interleaver | |
JP3861084B2 (ja) | 特に移動無線システム用とした、複合型ターボ符号/畳み込み符号デコーダ | |
US8407561B2 (en) | Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave | |
US6516444B1 (en) | Turbo-code decoder | |
US20040139378A1 (en) | Method and apparatus for error control coding in communication systems using an outer interleaver | |
EP1700381A1 (en) | Siso decoder with sub-block processing and sub-block based stopping criterion | |
US6487694B1 (en) | Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA | |
JP5700035B2 (ja) | 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム | |
JP3540224B2 (ja) | ターボ復号器とターボ復号方法及びその方法を記憶した記憶媒体 | |
JP4505953B2 (ja) | 符号化装置及び符号化方法、並びに、復号装置及び復号方法 | |
KR100628201B1 (ko) | 터보 디코딩 방법 | |
JP2002076921A (ja) | 誤り訂正符号復号方法及び装置 | |
US20030093753A1 (en) | Error correction code decoding device | |
JP2003198385A (ja) | インターリーブ装置及びインターリーブ方法、符号化装置及び符号化方法、並びに復号装置及び復号方法 | |
JP3820583B2 (ja) | 軟出力復号装置及び軟出力復号方法、並びに復号装置及び復号方法 | |
KR100355452B1 (ko) | 엠에이피 방식을 사용한 터보 복호기 | |
JP2001352253A (ja) | 符号化装置及び符号化方法、並びに、復号装置及び復号方法 | |
JP2002190744A (ja) | 復号装置及び復号方法 | |
JP2002171174A (ja) | インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法 | |
Ibrahim et al. | Modified Encoding Scheme for UMTS Turbo Encoder | |
Soleymani et al. | Turbo Decoding Principles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041019 |
|
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: 20050323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050405 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080422 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090422 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100422 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |