(57)【特許請求の範囲】
【請求項１】
第１データ列中のデータの位置を並べ替えて第２データ列を生成するインターリーバと、
前記第２データ列に対して先頭から順方向に畳み込み符号化を行ない第３データ列を生成する第１の符号化器と、
前記第２データ列に対して最後尾から逆方向に畳み込み符号化を行ない第４データ列を生成する第２の符号化器と、
前記第３データ列と第４データ列とをつなげて符号化データ列として出力する出力回路と
を含むことを特徴とする符号化装置。
【請求項２】
前記第１の符号化器は、前記第２データ列の先頭データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始し、前記第２の符号化器は、前記第２データ列の最後尾データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始することを特徴とする請求項１記載の符号化装置。
【請求項３】
前記第１の符号化器は前記第２データ列中のある１つの位置まで順方向に畳み込み符号化を実行し、前記第２の符号化器は前記第２データ列中の前記ある１つの位置まで逆方向に畳み込み符号化を実行することを特徴とする請求項１又は２記載の符号化装置。
【請求項４】
前記第２の符号化器は逆方向符号化の初期内部状態の全ての組み合わせについて逆方向の畳み込み符号化を行い複数の第５データ列を生成し、前記出力回路は、前記ある１つの位置における前記第１の符号化器の内部状態に一致する前記第２の符号化器の内部状態を特定し、前記複数の第５データ列のうちで該特定した内部状態に対応する１つのデータ列を前記第４データ列として選択することを特徴とする請求項３記載の符号化装置。
【請求項５】
前記第１の符号化器と前記第２の符号化器とは、前記第２データ列中の符号化対象のデータが定まっている場合には畳み込み符号化を進め、前記第２データ列中の符号化対象のデータが定まっていない場合には該符号化対象のデータが前記並べ替えにより定まるまで畳み込み符号化の実行を待ち、前記ある１つの位置は、前記第１の符号化器による順方向の畳み込み符号化と前記第２の符号化器による逆方向の畳み込み符号化とが出会う位置であることを特徴とする請求項４記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に符号化装置に関し、詳しくは畳み込み符号化を行なう符号化装置に関する。
【背景技術】
【０００２】
携帯電話通信方式は、ＷＣＤＭＡ（Wideband Code Division Multiple Access：静止時２Ｍｂｐｓ）からＨＳＰＡ（High Speed Packet Access：下り１４．４Ｍｂｐｓ，上り５．７６Ｍｂｐｓ）へ、更にはＬＴＥ（Long Term Evolution）へと発展している。これに伴い伝送レートが加速度的に高くなり、符号化処理も伝送レートに比例して高速化する必要がある。従来の符号化処理ではデータの先頭から順番に処理が行なわれるが、ある位置のデータの符号化の結果は、それ以前のデータの符号化結果に依存するために、データの途中位置から並列処理を行うことはできない。またデータの順番を入れ替えるインターリーブを実行した後のデータの符号化を行うために、従来は、インターリーブが終了しデータシーケンスが確定した後から符号化を開始している。
【０００３】
符号化処理をなるべく早く完了させるために、インターリーブ終了前に符号化処理を前倒しで開始して、インターリーブ処理と符号化処理とを並行して実行することが考えられる。しかし、インターリーブ処理で最後に位置決定される入力データ列の最後のデータに着目した時、その最後のデータの並び替え後のデータ位置までしか符号化処理を前倒しで実行することはできない。最後のデータの並び替え後のデータ位置以降のデータ列については、結局、インターリーブが終了してから符号化処理を実行することになる。例えばＬＴＥの場合、最後のデータの並び替え後の位置を計算してみると、平均的に７割以上の場合において、全体のデータ列のうちの前半分の範囲に並び替え後の位置がくる。即ち、インターリーブ終了前に符号化処理を前倒しで実行しても、結局、データ列全体の前半分の位置においてインターリーブ終了まで待たされてしまうことになり、符号化処理の完了を早める効果がそれ程得られない場合が多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２９８３７０号公報
【特許文献２】特開２００１−１１９３０７号公報
【特許文献３】特開２００２−８４２００号公報
【特許文献４】特開平１０−３２７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上を鑑みると、符号化処理の完了を早めることが可能な符号化方式が望まれる。
【課題を解決するための手段】
【０００６】
符号化装置は、第１データ列中のデータの位置を並べ替えて第２データ列を生成するインターリーバと、前記第２データ列に対して先頭から順方向に畳み込み符号化を行ない第３データ列を生成する第１の符号化器と、前記第２データ列に対して最後尾から逆方向に畳み込み符号化を行ない第４データ列を生成する第２の符号化器と、前記第３データ列と第４データ列とをつなげて符号化データ列として出力する出力回路とを含むことを特徴とする。
【発明の効果】
【０００７】
本願開示の少なくとも１つの実施例によれば、逆方向に畳み込み符号化を行なう符号化器と順方向に畳み込み符号化を行なう符号化器とを用い、先頭からの順方向の畳み込み符号化と最後尾からの逆方向の畳み込み符号化とを並行して実行し、符号化時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】畳み込み符号化を行なう符号化器の一般化した構成を示す図である。
【図２】逆方向に畳み込み符号化を行なう符号化器の一般化した構成を示す図である。
【図３】順方向の畳み込み符号化器の構成の一例を示す図である。
【図４】図３の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。
【図５】順方向の畳み込み符号化器の構成の別の一例を示す図である。
【図６】図５の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。
【図７】順方向の畳み込み符号化器の構成の別の一例を示す図である。
【図８】図７の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。
【図９】符号化装置の構成の一例を示す図である。
【図１０】インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始する場合のアドレス制御部の構成の一例を示す図である。
【図１１】図１０に示すアドレス制御部の動作の一例を示す図である。
【図１２】図９に示す符号化器、サブブロックＲＡＭ、アドレス生成部、及び結果選択部の部分の詳細な構成を示す図である。
【図１３】逆方向の符号化演算の結果を選択する様子を模式的に示す図である。
【図１４】インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始する場合のアドレス制御部の構成の別の一例を示す図である。
【図１５】図１４の構成に対応する図９の符号化器、サブブロックＲＡＭ、アドレス生成部、及び結果選択部の部分の詳細な構成を示す図である。
【図１６】符号化装置の構成の別の一例を示す図である。図１６において、図９と同一の構成要素は同一の番号で参照し、その説明は省略する。
【図１７】インターリーブ処理の終了を待つことなく逆方向の畳み込み符号化を前倒しで開始するアドレス制御部の構成の一例を示す図である。
【図１８】図１７に示すアドレス制御部の動作の一例を示す図である。
【図１９】図１６に示す符号化器、サブブロックＲＡＭ、アドレス生成部、及び結果選択部の部分の詳細な構成を示す図である。
【図２０】図４に示す１ビット単位で処理する逆方向符号化器と同一の演算を４ビット単位で行なう逆方向符号化器の構成の一例である。
【図２１】４ビット纏めた入力と４ビット纏めた出力との論理関係を示したテーブルである。
【図２２】符号化装置を備えた通信装置の構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１０】
以下に説明する符号化装置では、インターリーブによりデータ位置が並べ替えられた後のデータ列に対して、逆方向に畳み込み符号化を行なう符号化器を用いる。このような逆方向に畳み込み符号化を行なう符号化器と順方向に畳み込み符号化を行なう符号化器とを用いれば、先頭からの順方向の畳み込み符号化と最後尾からの逆方向の畳み込み符号化とを並行して実行し、符号化時間を短縮することができる。この場合、順方向にのみ畳み込み符号化を実行する場合と比較して、少なくとも符号化時間が１／２に短縮される。また後述するように、インターリーブが終了する前に先頭からの順方向の畳み込み符号化と最後尾からの逆方向の畳み込み符号化とを前倒しで開始するようにすれば、更に符号化処理の完了時間を早めることができる。
【００１１】
図１は、畳み込み符号化を行なう符号化器の一般化した構成を示す図である。Ｄ１乃至Ｄｎは、クロックに同期して１ビットの入力を取り込み保持するレジスタであり、縦続接続されることによりシフトレジスタを構成する。レジスタＤ１乃至Ｄｎの各々は、１クロックの遅延素子として機能する。ＡＮＤ回路１０は、一方の入力であるパラメータβと他方の入力との論理和を演算する。複数のＸＯＲ回路１１は、ＡＮＤ回路１０の出力間の排他的論理和を演算することにより、出力データＯＵＴを生成する。この符号化器のフィードフォワード多項式は、
g1(D) = β01 + β1D + β2D2 +・・・+βn Dn
となる。またＡＮＤ回路１２は、一方の入力であるパラメータαと他方の入力との論理和を演算する。複数のＸＯＲ回路１３は、ＡＮＤ回路１２の出力間の排他的論理和を演算することにより、フィードバックデータを生成する。このフィードバックデータを計算するフィードバック多項式は、
g0(D) = α01 + α1D + α2D2 +・・・+αn Dn
となる。なおここで、ｎ次の再帰型畳み込み符号化器の定義として、ｎ次の項のフィードバック計数であるαnは１である。
【００１２】
図１に示す再帰的畳み込み符号化を行なう符号化器は、入力データ列に対して先頭から順方向に畳み込み符号化を行ない、符号化データ列を生成する。この符号化器が生成する符号化データ列と同一のデータ列を生成する符号化器であって、上記入力データ列に対して最後尾から逆方向に畳み込み符号化を行なう符号化器を、以下のようにして設計する。逆向きの符号化を実現するためには、時刻ｔ＋１のレジスタの値から時刻ｔのレジスタの値が再現できる回路を求めればよい。
【００１３】
まず図１に示す順方向のシフトレジスタのレジスタＤ２乃至Ｄｎのうち、任意のレジスタＤｉ＋１（ｉ＝１〜ｎ−１）の時刻ｔ＋１の値Ｄｉ＋１（ｔ＋１）は、以下の式（１）で表わされる。
【００１４】
【数１】
0005499760.tif 000002
ここでＤｉ（ｔ）は、レジスタＤｉの時刻ｔの値である。この式は、シフトレジスタ中の着目レジスタの値が、１つ前に接続されるレジスタの１時刻前の値に等しいことを示している。またレジスタからのフィードバックデータと時刻ｔの入力データＩＮ（ｔ）との排他的論理和が入力されるシフトレジスタＤ１の時刻ｔ＋１の値Ｄ１（ｔ＋１）は、以下の式（２）で表わされる。
【００１５】
【数２】
0005499760.tif 000003
【００１６】
式（１）から、逆方向に畳み込み符号化を行なう符号化器においても、レジスタＤ１乃至Ｄｎ−１のうちの任意のレジスタＤｉ（ｉ＝１〜ｎ−１）の時刻ｔの値Ｄｉ（ｔ）は、時刻ｔ＋１のレジスタＤｉ＋１の値と等しければよいことが分かる。ここで、逆方向の畳み込み符号化であるから、データに着目すると、同期クロックが１つ進行すると時刻が１つ前に戻ることになる。従って、レジスタＤ１乃至Ｄｎでシフトレジスタを構成し、同期クロックと共にＤｎからＤ１に向かってデータが逆方向にシフトする構成とすればよい。
【００１７】
更に、レジスタＤｎの値については、以下のように計算できる。前述のようにαnは１であり、上記式（２）に式（１）を代入すると、以下の式が得られる。
【００１８】
【数３】
0005499760.tif 000004
１ビットの排他的論理和演算は＋も−も同一演算となることを考慮して、上式を移項によりＤｎ（ｔ）を表わす式に変形すると、以下の式（３）が得られる。
【００１９】
【数４】
0005499760.tif 000005
【００２０】
図２は、逆方向に畳み込み符号化を行なう符号化器の一般化した構成を示す図である。図２に示す符号化器は、上記の式（１）に相当する逆方向のシフトレジスタと、上記の式（３）に相当する演算を行なうことにより、各レジスタＤ１乃至Ｄｎの値を決定する構成となっている。ＡＮＤ回路１７は、一方の入力であるパラメータαと他方の入力との論理和を演算する。複数のＸＯＲ回路１８は、ＡＮＤ回路１７の出力間の排他的論理和を演算することにより、式（３）に相当する演算を実行する。なおレジスタＤ１の出力を一方の入力として受け取るＡＮＤ回路１７の他方の入力は、式（３）の右辺の最後の項に対応して係数値１である。
【００２１】
図２において、ＡＮＤ回路１５は、一方の入力であるパラメータγと他方の入力との論理和を演算する。複数のＸＯＲ回路１６は、ＡＮＤ回路１５の出力間の排他的論理和を演算することにより、出力データＯＵＴを生成する。この出力データＯＵＴを計算する多項式は、以下のようにして計算できる。図１の符号化器における出力ＯＵＴの値は、
ＯＵＴ＝β0(α01+α1D+α2D2+・・・+αnDn)+β1D+β2D2+・・・+βnDn    （４）
である。上式から、Ｄｉ（ｉ＝１〜ｎ）の項の係数値は、β0αｉ + βｉと求められる。従って、図２に示されるパラメータγｉは以下の値となる。
【００２２】
γ０＝β0α０
γｉ＝β0αｉ + βｉ  （ｉ＝１〜ｎ）            （５）
【００２３】
以上のようにして、図２に示す逆方向の畳み込み符号化器の一般化した構成において、各パラメータの値が求められる。図２に示す符号化器は、図１の符号化器が生成する符号化データ列と同一のデータ列を生成する符号化器であって、入力データ列に対して最後尾から逆方向に畳み込み符号化を行なう符号化器である。但し、図２の逆方向符号化器の初期内部状態（レジスタＤ１乃至Ｄｎの初期値）をどのような値にしておくべきなのか、不明である。そこで初期内部状態の全ての組み合わせについて逆方向の畳み込み符号化を別個に行い、複数の符号化データ列を各々別個に生成する。そして、全ての入力データ列の符号化を終了した段階で、複数の場合の各々について内部状態をチェックする。この終了時の内部状態が全てゼロ（レジスタＤ１乃至Ｄｎの値が全て０）となるような逆方向符号化演算の結果を、順方向符号化演算と同一の符号化データ列を生成するものとして選択すればよい。何故なら、順方向符号化演算は、初期内部状態が全てゼロの状態から開始されるからである。なお、順方向符号化と逆方向符号化とを例えば全データ列の前半分と後半分とのそれぞれについて実行する場合、中間点において、順方向符号化演算の内部状態と一致する内部状態となる逆方向符号化演算結果を選択すればよい。また、順方向符号化と逆方向符号化とが出会う位置は、中間点に限らず、例えば前段のインターリーブの並べ替えにより最後に位置が決定されるデータの位置であってもよい。
【００２４】
図３は、順方向の畳み込み符号化器の構成の一例を示す図である。図３に示す符号化器において、Ｄ１乃至Ｄ３は、クロックに同期して１ビットの入力を取り込み保持するレジスタであり、縦続接続されることによりシフトレジスタを構成する。レジスタＤ１乃至Ｄ３の各々は、１クロックの遅延素子として機能する。レジスタ２０には入力データ列が格納されており、クロックに同期して、データ列の先頭から順方向に順番にデータが供給される。複数のＸＯＲ回路２１は、フィードバック経路及びフィードフォワード経路において排他的論理和を演算する。符号化器のフィードフォワード多項式は、
g1(D) = 1 + D + D3
となる。またフィードバックデータを計算するフィードバック多項式は、
g0(D) = 1 + D2 + D3
となる。この場合、パラメータα０，α２，α３が１であり、それ以外のαは０である。この符号化器における出力ＯＵＴの値は以下の多項式により求められる。
【００２５】
ＯＵＴ＝ 1 + D2 + D3 + D + D3
＝ 1 + D + D2 
上式は、前述の式（４）に対応する。この式からパラメータγ０，γ１，γ２が１であり、それ以外のγは０であることが分かる。
【００２６】
図４は、図３の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。図２に示す逆方向の符号化器の一般化された構成において、上記のようにして求めたα及びγのパラメータ値を用いることにより、図３の構成が得られる。図４において、図３に示される構成要素に対応する構成要素は同一の番号で参照される。レジスタＤ１乃至Ｄ３でシフトレジスタを構成し、同期クロックと共にＤ３からＤ１に向かってデータが逆方向にシフトする構成となっている。レジスタ２０には入力データ列が格納されており、クロックに同期して、データ列の最後尾から逆方向に順番にデータが供給される。複数のＸＯＲ回路２１は排他的論理和を演算する。図４に示す符号化器は、図３に示す符号化器が生成する符号化データ列ＯＵＴと同一のデータ列を生成する符号化器であって、上記入力データ列に対して最後尾から逆方向に畳み込み符号化を行なう符号化器となる。
【００２７】
図５は、順方向の畳み込み符号化器の構成の別の一例を示す図である。図５において、図３に示す構成要素に対応する構成要素は同一の番号で参照される。Ｄ１乃至Ｄ４は、クロックに同期して１ビットの入力を取り込み保持するレジスタであり、縦続接続されることによりシフトレジスタを構成する。クロックに同期して、レジスタ２０のデータ列の先頭から順方向に順番にデータが供給される。この符号化器のフィードフォワード多項式は、
g1(D) = 1 + D + D４
となる。またフィードバックデータを計算するフィードバック多項式は、
g0(D) = 1 + D2 + D3 + D4
となる。この場合、パラメータα０，α２，α３，α４が１であり、それ以外のαは０である。この符号化器における出力ＯＵＴの値は以下の多項式により求められる。
【００２８】
ＯＵＴ＝ 1 + D2 + D3 + D4 + D + D4
＝ 1 + D + D2 + D3 
上式は、前述の式（４）に対応する。この式からパラメータγ０，γ１，γ２，γ３が１であり、それ以外のγは０であることが分かる。
【００２９】
図６は、図５の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。図２に示す逆方向の符号化器の一般化された構成において、上記のようにして求めたα及びγのパラメータ値を用いることにより、図６の構成が得られる。図６において、図５に示される構成要素に対応する構成要素は同一の番号で参照される。レジスタＤ１乃至Ｄ４でシフトレジスタを構成し、同期クロックと共にＤ４からＤ１に向かってデータが逆方向にシフトする構成となっている。クロックに同期して、レジスタ２０のデータ列の最後尾から逆方向に順番にデータが供給される。複数のＸＯＲ回路２１は排他的論理和を演算する。図６に示す符号化器は、図５に示す符号化器が生成する符号化データ列ＯＵＴと同一のデータ列を生成する符号化器であって、上記入力データ列に対して最後尾から逆方向に畳み込み符号化を行なう符号化器となる。
【００３０】
図７は、順方向の畳み込み符号化器の構成の別の一例を示す図である。図７において、図３に示す構成要素に対応する構成要素は同一の番号で参照される。Ｄ１乃至Ｄ５は、クロックに同期して１ビットの入力を取り込み保持するレジスタであり、縦続接続されることによりシフトレジスタを構成する。クロックに同期して、レジスタ２０のデータ列の先頭から順方向に順番にデータが供給される。この符号化器のフィードフォワード多項式は、
g1(D) = 1 + D + D5
となる。またフィードバックデータを計算するフィードバック多項式は、
g0(D) = 1 + D3 + D5
となる。この場合、パラメータα０，α３，α５が１であり、それ以外のαは０である。この符号化器における出力ＯＵＴの値は以下の多項式により求められる。
【００３１】
ＯＵＴ＝ 1 + D3 + D5 + D + D5
＝ 1 + D + D3 
上式は、前述の式（４）に対応する。この式からパラメータγ０，γ１，γ３が１であり、それ以外のγは０であることが分かる。
【００３２】
図８は、図７の順方向の符号化器に対する逆方向の符号化器の構成の一例を示す図である。図２に示す逆方向の符号化器の一般化された構成において、上記のようにして求めたα及びγのパラメータ値を用いることにより、図８の構成が得られる。図８において、図７に示される構成要素に対応する構成要素は同一の番号で参照される。レジスタＤ１乃至Ｄ５でシフトレジスタを構成し、同期クロックと共にＤ５からＤ１に向かってデータが逆方向にシフトする構成となっている。クロックに同期して、レジスタ２０のデータ列の最後尾から逆方向に順番にデータが供給される。複数のＸＯＲ回路２１は排他的論理和を演算する。図８に示す符号化器は、図７に示す符号化器が生成する符号化データ列ＯＵＴと同一のデータ列を生成する符号化器であって、上記入力データ列に対して最後尾から逆方向に畳み込み符号化を行なう符号化器となる。
【００３３】
図９は、符号化装置の構成の一例を示す図である。図９に示す符号化装置３０は、ＣＰＵ３１、メモリ３２、動作設定用レジスタ３３、ＣＲＣ処理回路３４、コードブロック分割回路３５、符号化器３６乃至３８、サブブロックＲＡＭ３９乃至４１、アドレス生成部４２、及び結果選択部４３を含む。符号化装置３０は更に、アドレス制御部４４及びインターリーブＲＡＭ（ＩＬＲＡＭ）４５を含む。符号化装置３０は、例えば携帯電話機器に内蔵されるものであってよい。以下の説明においては、符号化装置３０が携帯電話機器に内蔵され、通信のための送信データを符号化する場合について説明する。但し、符号化装置３０の応用分野は通信分野に限られるものではない。
【００３４】
符号化器３６及び３８は、例えば３ＧＰＰ（3rd Generation Partnership Project）の規格に定められる符号化器であり、図３に示す構成を有してよい。符号化器３７は、８つ並列に設けられており、順方向の畳み込み符号化を行なう符号化器３６及び３８に対して逆方向の畳み込み符号化を行なう符号化器である。８つの符号化器３７の各々は、図４に示す構成を有してよい。
【００３５】
符号化装置３０が携帯電話機器に内蔵されている場合、携帯電話機器が基地局と通信して、種々の通信パラメータを決定する。この決定された通信パラメータが、ＣＰＵ３１により動作設定用レジスタ３３に格納される。この通信パラメータには、ＣＲＣ処理のサイズやコードブロック分割のサイズ等が含まれる。まず送信データである符号化対象データが、ＣＰＵ３１からメモリ３２に格納される。このメモリ３２から読み出された符号化対象データに対して、ＣＲＣ処理回路３４が、ＣＲＣ（Cyclic Redundancy Check）演算により誤り検出ビットを付加する。この演算は通常ビット単位の処理であり１ビットずつ処理される。ＣＲＣ処理後の符号化対象データは、次に、コードブロック分割回路３５に供給される。コードブロック分割回路３５は、コードブロック分割を実行し、ターボ符号化の単位に合わせて符号化対象データを分割する。このコードブロック分割されたブロックの大きさは、例えば、最小で４０ビット、最大で６１４４ビットである。コードブロック分割処理は、符号化対象データの先頭から順番に実行されるので、ＣＲＣ処理の終了したビットから順次処理することができる。
【００３６】
図９に示す符号化処理はターボ符号化であり、符号化対象データそのものと、符号化対象データを符号化した符号化データと、符号化対象データをインターリーブした後に符号化した符号化データとを生成する。まずコードブロック分割回路３５から出力される符号化対象データのブロックは、そのままサブブロックＲＡＭ３９に供給され格納される。またコードブロック分割回路３５から出力される符号化対象データのブロックは、符号化器３６に供給され、ここでの符号化により生成された符号化データがサブブロックＲＡＭ４０に格納される。この符号化処理は、コードブロック分割回路３５から出力されるデータブロック中のビットを順次処理することにより実行できる。
【００３７】
更にコードブロック分割回路３５から出力される符号化対象データのブロックはインターリーブＲＡＭ４５に格納される。この書き込み動作の際に、アドレス制御部４４が書き込みアドレスを制御することにより、符号化対象データのブロックを構成するデータ列中のデータ順序が並び替えられ、並び替え後のデータ列がインターリーブＲＡＭ４５の連続するアドレスに格納される。これによりインターリーブ処理が実現される。インターリーブＲＡＭ４５に格納されるデータブロックの並び替え後のデータ列は、先頭から順方向に順番に符号化器３８に供給され、符号化器３８が順方向の畳み込み符号化を実行する。またインターリーブＲＡＭ４５に格納されるデータブロックの並び替え後のデータ列は、最後尾から逆方向に順番に複数の符号化器３７に供給され、複数の符号化器３７が逆方向の畳み込み符号化を並列に実行する。この際、複数の符号化器３７の初期状態は異なる８つの組み合わせ（図４のＤ１乃至Ｄ３の初期値の異なる組み合わせ）にそれぞれ設定されている。
【００３８】
符号化器３８による順方向の符号化及び符号化器３７による逆方向の符号化は、インターリーブ処理が終了した後（即ちデータブロック中の全てのデータが書き込まれ終わった後）に開始されてよい。この場合、順方向の符号化及び逆方向の符号化は、例えば、それぞれ並び替え後のデータ列の前半分と後半分とを処理して符号化データ列を出力してよい。この際、インターリーブＲＡＭ４５からのデータ読み出しを２ポートにして、前半分のデータと後半分のデータとを同時に読み出すことにより、順方向の符号化及び逆方向の符号化を同時に並行して実行するようにしてよい。或いは、インターリーブＲＡＭ４５を２つのＲＡＭで構成し、一方のＲＡＭにデータ列の前半分のデータを格納し、他方のＲＡＭにデータ列の後半分のデータを格納すれば、前半分のデータと後半分のデータとを同時に読み出すことができる。
【００３９】
或いは、符号化器３８による順方向の符号化及び符号化器３７による逆方向の符号化は、インターリーブ処理の終了前に前倒しで実行を開始してよい。即ち、順方向の符号化器３８は、インターリーブＲＡＭ４５中のデータ列の先頭データが並べ替えにより定まると、インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始してよい。また逆方向の符号化器３７は、インターリーブＲＡＭ４５中のデータ列の最後尾データが並べ替えにより定まると、インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始してよい。この際、インターリーブＲＡＭ４５からのデータ読み出しを２ポートにして、順方向の符号化及び逆方向の符号化を同時に並行して実行するようにしてよい。或いは、インターリーブＲＡＭ４５からのデータ読み出しを１ポートにして、各時刻において順方向の符号化及び逆方向の符号化の何れか一方を適宜選択して実行するようにしてもよい。
【００４０】
図１０は、インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始する場合のアドレス制御部４４の構成の一例を示す図である。図１０に示すインターリーブＲＡＭ４５以外の部分が、アドレス制御部４４の構成である。アドレス制御部４４は、インターリーブテーブル５０、ライトアドレス制御部５１、履歴レジスタ５２及び５３、リード可能アドレスカウンタ５４及び５５、セレクタ５６乃至５８、及びアドレス比較部５９を含む。インターリーブテーブル５０には、動作設定用レジスタ３３に設定されたブロックサイズ等の情報に応じたテーブルが格納されている。このテーブルには、各入力データ番号に対する並び替え後の書き込みアドレスが格納されていてよい。例えば、ブロックサイズが４０の場合、テーブルには４０個のエントリがあり、各エントリが、入力データ番号とそれに対応する並び替え後の書き込みアドレスとからなるデータ対であってよい。例えば、１〜４０番のうちの１２番目のデータを０〜３９のアドレスのうち２８に格納するという場合、１２と２８とが対応するデータ対として格納されていてよい。ライトアドレス制御部５１は、インターリーブテーブル５０から各データ番号に対応する書き込みアドレスを受け取り、インターリーブＲＡＭ４５中のその書き込みアドレスに、コードブロック分割回路３５から供給されるデータを書き込む。これによりインターリーブ処理が実現される。
【００４１】
履歴レジスタ５２は、データ列の前半分のデータ（ブロックサイズが４０の場合は２０個のデータ）の各々について、インターリーブＲＡＭ４５に書き込みが終了したか否かを記録するレジスタである。履歴レジスタ５２には２０ビットのデータが格納されており、インターリーブＲＡＭ４５に書き込みが終了したデータのアドレス位置に対応するビット位置のビット値が“０”から“１”になる。履歴レジスタ５３は、並び替え後のデータ列の後半分のデータ（ブロックサイズが４０の場合は２０個のデータ）の各々について、インターリーブＲＡＭ４５に書き込みが終了したか否かを記録するレジスタである。履歴レジスタ５３には２０ビットのデータが格納されており、インターリーブＲＡＭ４５に書き込みが終了したデータのアドレス位置に対応するビット位置のビット値が“０”から“１”になる。リード可能アドレスカウンタ５４は、並び替え後のデータ列の前半分のデータを先頭から順番に読み出すためのリードアドレスを、１つずつ増加させながら出力する。リード可能アドレスカウンタ５５は、並び替え後のデータ列の後半分のデータを最後尾から順番に読み出すためのリードアドレスを、１つずつ減少させながら出力する。
【００４２】
セレクタ５７は、リード可能アドレスカウンタ５４が示すインターリーブＲＡＭ４５中の読出しアドレスに対応する履歴レジスタ５２の出力中のビット位置のビット値を選択する。セレクタ５７の出力は、リード可能アドレスカウンタ５４が示すインターリーブＲＡＭ４５中の読出しアドレスにデータが書き込まれると“０”から“１”になる。セレクタ５８は、リード可能アドレスカウンタ５５が示すインターリーブＲＡＭ４５中の読出しアドレスに対応する履歴レジスタ５３の出力中のビット位置のビット値を選択する。セレクタ５８の出力は、リード可能アドレスカウンタ５５が示すインターリーブＲＡＭ４５中の読出しアドレスにデータが書き込まれると“０”から“１”になる。セレクタ５６は、セレクタ５７又は５８のいずれかの出力（可能フラグ）が“１”になると、対応するアドレスを選択してインターリーブＲＡＭ４５に供給する。これにより、インターリーブＲＡＭ４５に書き込みが終了したデータを出力データとして読み出すことができる。なおセレクタ５７とセレクタ５８とは、出力が同時に“１”とならないように制御されているものとする。例えば、図１０に示すようにセレクタ５７の出力が、セレクタディスエーブル信号ＳＤとしてセレクタ５８に供給され、セレクタディスエーブル信号ＳＤが“１”のときにはセレクタ５８の出力は強制的に“０”となるように制御されてよい。またインターリーブＲＡＭ４５は、読み出し動作と書き込み動作とが同時に実行できる構成のメモリであるとする。
【００４３】
リード可能アドレスカウンタ５４は、セレクタ５７の出力する可能フラグが“１”になると、アドレスを１つ増加させる。即ち、自らが出力している読出しアドレスのデータが読み出されると、アドレスを１つ増加させる。リード可能アドレスカウンタ５５は、セレクタ５８の出力する可能フラグが“１”になると、アドレスを１つ減少させる。即ち、自らが出力している読出しアドレスのデータが読み出されると、アドレスを１つ減少させる。セレクタ５７の出力は、符号化器３８の符号化動作を１クロック進めるように指示するイネーブル信号として符号化器３８に供給される。セレクタ５８の出力は、符号化器３７の符号化動作を１クロック進めるように指示するイネーブル信号として符号化器３７に供給される。
【００４４】
図１１は、図１０に示すアドレス制御部４４の動作の一例を示す図である。まず逆方向の符号化のための読み出し動作について説明する。最初の状態（図１０の時刻０の状態）において、リード可能アドレスカウンタ５５の出力する可能アドレスは、データ列の最後尾（この例ではデータ列全体で４０ビットのデータなので３９）を指している。この時、履歴レジスタ５３の２０番目のビット（履歴レジスタ５２と合わせた全体では４０番目のビット）が“０”であるので、セレクタ５８の出力である可能フラグ（リードイネーブルと同一）は“０”である。時刻が経過し、時刻２４で２５番目の入力データＤ２４がインターリーブＲＡＭ４５の該当箇所（ライトアドレス３９）に書き込まれると、履歴レジスタ５３の２０番目のビット（履歴レジスタ５２と合わせた全体では４０番目のビット）が“１”になる。これによりセレクタ５８の出力である可能フラグ（リードイネーブルと同一）が“１”になり、これに応答してリード可能アドレスカウンタ５５はカウントダウンして、次の時刻の出力が３８となる。またリードイネーブルが“１”となることに応答して、インターリーブＲＡＭ４５の対応するアドレス（カウントダウン前のアドレス）からデータが読み出される。次のサイクルで履歴レジスタ５３の１９番目のビット（履歴レジスタ５２と合わせた全体では３９番目のビット）が“１”だったら更に同様の動作でデータを読み出す。図１１の例では、次のサイクル（時刻２５）で履歴レジスタ５３の１９番目のビットが“０”であるので、可能フラグが“０”となり、履歴レジスタ５３の１９番目のビットが“１”になるのを待つことになる。
【００４５】
順方向の符号化のための読み出し動作についても同様である。最初の状態（図１０の時刻０の状態）において、リード可能アドレスカウンタ５４の出力する可能アドレスは、データ列の先頭０を指している。この時、履歴レジスタ５２の１番目のビットが“０”であるので、セレクタ５７の出力である可能フラグ（リードイネーブルと同一）は“０”である。時刻が経過し、時刻１で２番目の入力データＤ１がインターリーブＲＡＭ４５の該当箇所（ライトアドレス０）に書き込まれると、履歴レジスタ５２の１番目のビットが“１”になる。これによりセレクタ５７の出力である可能フラグ（リードイネーブルと同一）が“１”になり、これに応答してリード可能アドレスカウンタ５４はカウントアップして、次の時刻の出力が１となる。またリードイネーブルが“１”となることに応答して、インターリーブＲＡＭ４５の対応するアドレス（カウントアップ前のアドレス）からデータが読み出される。次のサイクルで履歴レジスタ５２の２番目のビットが“１”だったら更に同様の動作でデータを読み出す。図１１の例では、次のサイクル（時刻２）で履歴レジスタ５２の２番目のビットが“０”であるので、可能フラグが“０”となり、履歴レジスタ５２の２番目のビットが“１”になるのを待つことになる。
【００４６】
このようにして、順方向の符号化器３８と逆方向の符号化器３７とは、データ列中の符号化対象のデータが定まっている場合には、順次畳み込み符号化を進めることになる。また、データ列中の符号化対象のデータが定まっていない場合には、符号化器は、符号化対象のデータが並べ替え（インターリーブ処理）により定まるまで、畳み込み符号化の実行を待つことになる。
【００４７】
図１０を再び参照し、アドレス比較部５９は、リード可能アドレスカウンタ５４が出力する読み出しアドレスとリード可能アドレスカウンタ５５が出力する読み出しアドレスとが一致すると、終了信号を送出する。終了信号に応答して、リード可能アドレスカウンタ５４及び５５はカウント動作を停止し、セレクタ５７及び５８は可能フラグを“０”にする。即ち、順方向の符号化器３８がデータ列中のある位置まで順方向に畳み込み符号化を実行し、逆方向の符号化器３７がデータ列中の当該位置まで逆方向に畳み込み符号化を実行し、両符号化演算が当該位置で出会い終了することになる。
【００４８】
図１２は、図９に示す符号化器３７及び３８、サブブロックＲＡＭ４１、アドレス生成部４２、及び結果選択部４３の部分の詳細な構成を示す図である。図１２において、図９と同一の構成要素は同一の番号で参照し、その説明は省略する。アドレスカウンタ６０、アドレスカウンタ６２、及びアドレス反転部６３が、図９のアドレス生成部４２に対応する。比較部６１、セレクタ６４、セレクタ６５、及び比較部６６が、図９の結果選択部４３に対応する。
【００４９】
符号化器３７又は３８は、イネーブル信号（図１０のセレクタ５７及び５８の出力）が“１”になると、符号化動作を実行する。またアドレスカウンタ６０は、符号化器３８のイネーブル信号が“１”の場合にクロックに同期してカウントアップをする。アドレスカウンタ６０のカウント値を書き込みアドレスとして、対応するＲＡＭ４１に符号化器３８が出力する符号化データが格納される。図１０のアドレス比較部５９からの終了信号が到来すると、アドレスカウンタ６０はカウントアップ動作を停止する。アドレスカウンタ６２は、符号化器３７のイネーブル信号が“１”の場合にクロックに同期してカウントアップをする。アドレスカウンタ６２のカウント値をアドレス反転部６３により反転した値を書き込みアドレスとして、対応するＲＡＭ４１に符号化器３７が出力する符号化データが格納される。ここで例えばブロックサイズが４０の場合、アドレスカウンタ６２のカウント値が０ならアドレス反転部６３の出力は４０、アドレスカウンタ６２のカウント値が１ならアドレス反転部６３の出力は３９、等となる。これにより、ＲＡＭ４１への書き込み時に、逆方向符号化により得られた符号化データを前後逆になるように並べ替えている。図１０のアドレス比較部５９からの終了信号が到来すると、アドレスカウンタ６２はカウントアップ動作を停止する。
【００５０】
比較部６１は、図１０のアドレス比較部５９からの終了信号が到来すると、順方向の符号化器３８の内部状態と、複数の逆方向の符号化器３７の内部状態とを比較する。比較部６１は、順方向の符号化器３８の内部状態に一致する内部状態を有する１つの逆方向の符号化器３７を特定し、特定した逆方向の符号化器３７を指し示す信号をセレクタ６４に供給する。セレクタ６４は、比較部６１からの信号に応じて、特定された符号化器３７に対応するＲＡＭ４１の読み出しデータを選択して、セレクタ６５に供給する。即ち、両符号化演算が出会った位置における順方向の符号化器３８の内部状態に一致する逆方向の符号化器３７の内部状態を特定し、複数の符号化データ列のうちで特定した内部状態に対応する１つのデータ列を選択する。これにより、並行して計算された複数の逆方向の符号化演算の結果のうちで、順方向の符号化演算結果に対応する１つの逆方向の符号化演算の結果を選択することができる。
【００５１】
符号化装置の次段のモジュールからデータ読み出しアドレスが供給されると、比較部６６は、読み出しアドレスとアドレスカウンタ６０の保持しているカウント値（順方向の符号化結果の最後の書き込みアドレス）とを比較し、比較結果を示す信号をセレクタ６５に供給する。この比較結果を示す信号に応じて、セレクタ６５は、読み出しアドレスが順方向の符号化結果の最後の書き込みアドレスに到達するまでは、符号化器３８に対応するＲＡＭ４１からの読み出しデータを選択し、それ以降はセレクタ６４の出力を選択する。これにより、順方向の符号化により求められたデータ列と逆方向の符号化により求められたデータ列とをつなげて１つの符号化データ列として出力することができる。
【００５２】
図１３は、逆方向の符号化演算の結果を選択する様子を模式的に示す図である。図１３において、横軸は入力データ列の先頭（図中の一番左の位置）から最後尾（図中の一番右の位置）までに対応し、縦軸は符号化器の内部状態に対応する。ここで内部状態とは、符号化器のレジスタＤ１乃至Ｄ３の値のことである。状態０は、レジスタＤ１乃至Ｄ３が全て０の状態に相当し、状態７は、レジスタＤ１乃至Ｄ３が全て１である状態に相当する。曲線７０は、状態０から開始されて順方向の符号化を行なう符号化器の内部状態の推移を示している。曲線７１乃至７４は、それぞれの内部状態から開始されて逆方向の符号化を行なう符号化器の内部状態の推移を示している。レジスタの数が３つであれば本来は８本の曲線が描けるが、図の見やすさを考慮して４本のみを示してある。位置Ｐ１は、順方向の符号化と逆方向の符号化とが出会う位置である。位置Ｐ１（例えば１４．５）の左側のデータ（１番〜１４番）は全て順方向の符号化器により符号化されている。また位置Ｐ１（例えば１４．５）の右側のデータ（１５番〜４０番）は全て逆方向の符号化器により符号化されている。位置Ｐ１における順方向の符号化の内部状態と位置Ｐ１における逆方向の符号化の内部状態が一致するのは、曲線７１が示す逆方向の符号化演算である。従って、この曲線７１が示す逆方向の符号化演算の演算結果が選択される。
【００５３】
図１４は、インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始する場合のアドレス制御部４４の構成の別の一例を示す図である。図１４において、図１０と同一の構成要素は同一の番号で参照し、その説明は省略する。図１４に示す構成では、順方向の符号化演算をデータ列の前半分に対して実行させ、逆方向の符号化演算をデータ列の後半分に対して実行させるように、データ読み出し及びイネーブル信号の生成を行なう。
【００５４】
図１４の構成においては、図１０のリード可能アドレスカウンタ５４及び５５の代りに、リード可能アドレスカウンタ５４Ａ及び５５Ａが設けられている。リード可能アドレスカウンタ５４Ａは、データ列の前半分の最後のアドレスに到達するとカウントを停止し、終了信号を送出する。リード可能アドレスカウンタ５５Ａは、データ列の後半分の先頭のアドレスに到達するとカウントを停止し、終了信号を送出する。インターリーブＲＡＭ４５Ａは、図１０のインターリーブＲＡＭ４５と異なり、２ポートの読み出しが可能なメモリであり、順方向の符号化に提供するデータと逆方向の符号化に提供するデータとを同時に読み出すことができる。インターリーブＲＡＭ４５Ａが２ポートの読み出し可能であるので、セレクタ５８Ａは、セレクタ５８と異なり、セレクタディスエーブル信号により制御される必要はない。
【００５５】
図１５は、図１４の構成に対応する図９の符号化器３７及び３８、サブブロックＲＡＭ４１、アドレス生成部４２、及び結果選択部４３の部分の詳細な構成を示す図である。図１５において、図１２と同一の構成要素は同一の番号で参照し、その説明は省略する。図１５に示す構成は、図１２に示す構成に加え、ＡＮＤ回路６７が設けられている。ＡＮＤ回路６７は、図１４のリード可能アドレスカウンタ５４Ａからの終了信号とリード可能アドレスカウンタ５５Ａからの終了信号との論理和をとり、両方の終了信号がアサートされたときに出力信号である終了トリガをアサートする。終了トリガがアサートされると、アドレスカウンタ６０及び６２がカウントアップ動作を停止する。また比較部６１は、終了トリガがアサートされると、順方向の符号化器３８の内部状態と、複数の逆方向の符号化器３７の内部状態とを比較する。比較部６１は、順方向の符号化器３８の内部状態に一致する内部状態を有する１つの逆方向の符号化器３７を特定し、特定した逆方向の符号化器３７を指し示す信号をセレクタ６４に供給する。それ以外の動作は、図１２に示す構成の場合と同様である。
【００５６】
ここまでの説明においては、順方向の符号化演算と逆方向の符号化演算とを行なう構成について説明した。前述のように、ＬＴＥの場合、最後のデータの並び替え後の位置を計算してみると、平均的に７割以上の場合において、全体のデータ列のうちの前半分の範囲に並び替え後の位置がくる。このような場合には、逆方向の符号化演算のみを実行しても、インターリーブ処理が終了する前に符号化演算を前倒しで行なえば、インターリーブ終了時には７割以上の確率で半分以上の符号化演算が終了していることになり、符号化演算前倒しの効果が大きい。
【００５７】
図１６は、符号化装置の構成の別の一例を示す図である。図１６において、図９と同一の構成要素は同一の番号で参照し、その説明は省略する。図１６に示す符号化装置３０Ａにおいては、図９の構成と比較して順方向の符号化器３８が取り除かれている。これに対応して、サブブロックＲＡＭ４１Ａが８個のＲＡＭとなるとともに、アドレス制御部４４Ａ、アドレス生成部４２Ａ、結果選択部４３Ａの構成が図９の対応する部分から若干変更されている。その他の構成については、図１６の符号化装置３０Ａと図９の符号化装置３０とは同一である。
【００５８】
コードブロック分割回路３５から出力される符号化対象データのブロックはインターリーブＲＡＭ４５に格納される。この書き込み動作の際に、アドレス制御部４４が書き込みアドレスを制御することにより、符号化対象データのブロックを構成するデータ列中のデータ順序が並び替えられ、並び替え後のデータ列がインターリーブＲＡＭ４５の連続するアドレスに格納される。インターリーブＲＡＭ４５に格納されるデータブロックの並び替え後のデータ列は、最後尾から逆方向に順番に複数の符号化器３７に供給され、複数の符号化器３７が逆方向の畳み込み符号化を並列に実行する。この際、複数の符号化器３７の初期状態は異なる８つの組み合わせ（図４のＤ１乃至Ｄ３の初期値の異なる組み合わせ）にそれぞれ設定されている。
【００５９】
符号化器３７による逆方向の符号化は、インターリーブ処理の終了前に前倒しで実行を開始する。即ち、逆方向の符号化器３７は、インターリーブＲＡＭ４５中のデータ列の最後尾データが並べ替えにより定まると、インターリーブ処理の終了を待つことなく畳み込み符号化を前倒しで開始する。
【００６０】
図１７は、インターリーブ処理の終了を待つことなく逆方向の畳み込み符号化を前倒しで開始するアドレス制御部４４Ａの構成の一例を示す図である。図１７に示すインターリーブＲＡＭ４５以外の部分が、アドレス制御部４４Ａの構成である。図１７において、図１０と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００６１】
履歴レジスタ５３Ｂは、並び替え後のデータ列の全体のデータ（ブロックサイズが４０の場合は４０個のデータ）の各々について、インターリーブＲＡＭ４５に書き込みが終了したか否かを記録するレジスタである。履歴レジスタ５３Ｂには４０ビットのデータが格納されており、インターリーブＲＡＭ４５に書き込みが終了したデータのアドレス位置に対応するビット位置のビット値が“０”から“１”になる。リード可能アドレスカウンタ５５Ｂは、並び替え後のデータ列のデータを最後尾から順番に読み出すためのリードアドレスを、１つずつ減少させながら出力する。
【００６２】
セレクタ５８Ｂは、リード可能アドレスカウンタ５５Ｂが示すインターリーブＲＡＭ４５中の読出しアドレスに対応する履歴レジスタ５３Ｂの出力中のビット位置のビット値を選択する。セレクタ５８Ｂの出力は、リード可能アドレスカウンタ５５Ｂが示すインターリーブＲＡＭ４５中の読出しアドレスにデータが書き込まれると“０”から“１”になる。リード可能アドレスカウンタ５５Ｂの出力する読み出しアドレスと、セレクタ５８Ｂの出力する可能フラグ（イネーブル信号）とは、インターリーブＲＡＭ４５に供給される。セレクタ５８Ｂの出力（イネーブル信号）が“１”になると、インターリーブＲＡＭ４５から、指定読み出しアドレスのデータが読み出される。これにより、インターリーブＲＡＭ４５に書き込みが終了したデータを出力データとして読み出すことができる。
【００６３】
リード可能アドレスカウンタ５５Ｂは、セレクタ５８Ｂの出力する可能フラグが“１”になると、アドレスを１つ減少させる。即ち、自らが出力している読出しアドレスのデータが読み出されると、アドレスを１つ減少させる。セレクタ５８Ｂの出力は、符号化器３７の符号化動作を１クロック進めるように指示するイネーブル信号として符号化器３７に供給される。リード可能アドレスカウンタ５５Ｂは更に、アドレスが減少していき０になると、次のサイクルで終了信号を送出する。
【００６４】
図１８は、図１７に示すアドレス制御部４４Ａの動作の一例を示す図である。最初の状態（図１０の時刻０の状態）において、リード可能アドレスカウンタ５５Ｂの出力する可能アドレス（読み出しアドレス）は、データ列の最後尾（この例ではデータ列全体で４０ビットのデータなので３９）を指している。この時、履歴レジスタ５３Ｂの４０番目のビットが“０”であるので、セレクタ５８Ｂの出力である可能フラグ（リードイネーブルと同一）は“０”である。時刻が経過し、時刻２４で２５番目の入力データＤ２４がインターリーブＲＡＭ４５の該当箇所（ライトアドレス３９）に書き込まれると、履歴レジスタ５３Ｂの４０番目のビットが“１”になる。これによりセレクタ５８Ｂの出力である可能フラグ（リードイネーブルと同一）が“１”になり、これに応答してリード可能アドレスカウンタ５５Ｂはカウントダウンして、次の時刻の出力が３８となる。またリードイネーブルが“１”となることに応答して、インターリーブＲＡＭ４５の対応するアドレス（カウントダウン前のアドレス）からデータが読み出される。次のサイクルで履歴レジスタ５３Ｂの３９番目のビットが“１”だったら更に同様の動作でデータを読み出す。図１８の例では、次のサイクル（時刻２５）で履歴レジスタ５３Ｂの３９番目のビットが“０”であるので、可能フラグが“０”となり、履歴レジスタ５３Ｂの３９番目のビットが“１”になるのを待つことになる。
【００６５】
図１９は、図１６に示す符号化器３７、サブブロックＲＡＭ４１Ａ、アドレス生成部４２Ａ、及び結果選択部４３Ａの部分の詳細な構成を示す図である。図１９において、図１２と同一の構成要素は同一の番号で参照し、その説明は省略する。図１７のリード可能アドレスカウンタ５５Ｂからの終了信号が到来すると、アドレスカウンタ６２はカウントアップ動作を停止する。特定部６１Ｂは、図１７のリード可能アドレスカウンタ５５Ｂからの終了信号が到来すると、複数の逆方向の符号化器３７のうちで、内部状態が全てゼロのものを特定し、特定した逆方向の符号化器３７を指し示す信号をセレクタ６４に供給する。セレクタ６４は、特定部６１Ｂからの信号に応じて、特定された符号化器３７に対応するＲＡＭ４１Ａの読み出しデータを選択して、出力データとして次段に供給する。これにより、並行して計算された複数の逆方向の符号化演算の結果のうちで、時刻０での初期状態が０になる正しい逆方向符号化演算結果を選択することができる。
【００６６】
ここまでの説明において、順方向の符号化器及び逆方向の符号化器は、１ビットずつ符号化演算を行なう構成としたが、これに限られるものではない。通常の順方向の符号化器として複数ビット同時に処理する構成のものが知られている。これと同様に、複数ビット同時に処理する逆方向の符号化器は、１ビット単位で処理する逆方向符号化器の構成が分かっていれば、容易に構成することができる。
【００６７】
図２０は、図４に示す１ビット単位で処理する逆方向符号化器と同一の演算を４ビット単位で行なう逆方向符号化器の構成の一例である。図２１は、４ビット纏めた入力ＩＮと４ビット纏めた出力ＯＵＴとの論理関係を示したテーブルである。図２１のテーブルは、図４の逆方向符号化器が行なう論理演算を、順次入力される入力ＩＮの４つのビットＸ０乃至Ｘ３それぞれについて示したものであり、図４の構成から容易に導くことができる。図２０に示す４ビット単位の逆方向符号化器は、図２１のテーブルの演算をそのまま実現する論理回路を構成すればよい。
【００６８】
図２２は、符号化装置を備えた通信装置の構成の一例を示す図である。図２２の通信装置１００は、ＲＦ回路１０１、ＡＤ変換＆ＤＡ変換部１０２、及びデジタル信号処理部１０３を含む。デジタル信号処理部１０３は、物理層部ＰＨＹとメディアアクセス制御部ＭＡＣとを含む。物理層部ＰＨＹには、同期部、復調部、変調部、誤り訂正部、符号化部などが含まれる。この符号化部に、図９や図１６で説明した符号化装置を適用することができる。符号化部は、送信データ列を符号化して符号化データ列を生成する。変調部は、符号化データ列を変調して変調信号を生成する。ＡＤ変換＆ＤＡ変換部１０２により変調信号をデジタルからアナログへ変換した後に、ＲＦ回路１０１が、変調信号をＲＦ信号に変換する。
【００６９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００７０】
なお本願は以下の内容を含むものである。
（付記１）
第１データ列中のデータの位置を並べ替えて第２データ列を生成するインターリーバと、
前記第２データ列に対して先頭から順方向に畳み込み符号化を行ない第３データ列を生成する第１の符号化器と、
前記第２データ列に対して最後尾から逆方向に畳み込み符号化を行ない第４データ列を生成する第２の符号化器と、
前記第３データ列と第４データ列とをつなげて符号化データ列として出力する出力回路と
を含むことを特徴とする符号化装置。
（付記２）
前記第１の符号化器は、前記第２データ列の先頭データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始し、前記第２の符号化器は、前記第２データ列の最後尾データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始することを特徴とする付記１記載の符号化装置。
（付記３）
前記第１の符号化器は前記第２データ列中のある１つの位置まで順方向に畳み込み符号化を実行し、前記第２の符号化器は前記第２データ列中の前記ある１つの位置まで逆方向に畳み込み符号化を実行することを特徴とする付記１又は２記載の符号化装置。
（付記４）
前記第２の符号化器は逆方向符号化の初期内部状態の全ての組み合わせについて逆方向の畳み込み符号化を行い複数の第５データ列を生成し、前記出力回路は、前記ある１つの位置における前記第１の符号化器の内部状態に一致する前記第２の符号化器の内部状態を特定し、前記複数の第５データ列のうちで該特定した内部状態に対応する１つのデータ列を前記第４データ列として選択することを特徴とする付記３記載の符号化装置。
（付記５）
前記ある１つの位置は前記第２データ列を前半分と後半分とに分ける中間位置であることを特徴とする付記４記載の符号化装置。
（付記６）
前記第１の符号化器と前記第２の符号化器とは、前記第２データ列中の符号化対象のデータが定まっている場合には畳み込み符号化を進め、前記第２データ列中の符号化対象のデータが定まっていない場合には該符号化対象のデータが前記並べ替えにより定まるまで畳み込み符号化の実行を待ち、前記ある１つの位置は、前記第１の符号化器による順方向の畳み込み符号化と前記第２の符号化器による逆方向の畳み込み符号化とが出会う位置であることを特徴とする付記４記載の符号化装置。
（付記７）
前記第１の符号化器及び前記第２の符号化器は、前記第３データ列及び前記第４データ列をメモリに格納し、前記出力回路は、前記メモリに格納された前記第３データ列及び前記第４データ列の何れかを前記メモリから選択的に読み出すことで前記符号化データ列を出力することを特徴とする付記１乃至６何れか一項記載の符号化装置。
（付記８）
第１データ列を符号化して符号化データ列を生成する符号化装置と、
前記符号化データ列を変調して変調信号を生成する変調部と、
前記変調信号をＲＦ信号に変換するＲＦ回路と
を含み、前記符号化装置は、
前記第１データ列中のデータの位置を並べ替えて第２データ列を生成するインターリーバと、
前記第２データ列に対して先頭から順方向に畳み込み符号化を行ない第３データ列を生成する第１の符号化器と、
前記第２データ列に対して最後尾から逆方向に畳み込み符号化を行ない第４データ列を生成する第２の符号化器と、
前記第３データ列と第４データ列とをつなげて前記符号化データ列として出力する出力回路と
を含むことを特徴とする無線通信装置。
（付記９）
前記第１の符号化器は、前記第２データ列の先頭データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始し、前記第２の符号化器は、前記第２データ列の最後尾データが前記並べ替えにより定まると前記インターリーバの処理の終了を待つことなく畳み込み符号化を開始することを特徴とする付記１記載の無線通信装置。
（付記１０）
第１データ列中のデータの位置を並べ替えて第２データ列を生成するインターリーバと、
前記第２データ列に対して最後尾から逆方向に畳み込み符号化を行ない第３データ列を生成する符号化器と、
前記第３データ列を前後逆になるように並べ替えて符号化データ列として出力する出力回路と
を含むことを特徴とする符号化装置。
【符号の説明】
【００７１】
３０  符号化装置
３１  ＣＰＵ
３２  メモリ
３３  動作設定用レジスタ
３４  ＣＲＣ処理回路
３５  コードブロック分割回路
３６，３７，３８  符号化器
３９，４０，４１  サブブロックＲＡＭ
４２  アドレス生成部
４３  結果選択部
４４  アドレス制御部
４５  インターリーブＲＡＭ
【図１】
0005499760.tif 000006
【図２】
0005499760.tif 000007
【図３】
0005499760.tif 000008
【図４】
0005499760.tif 000009
【図５】
0005499760.tif 000010
【図６】
0005499760.tif 000011
【図７】
0005499760.tif 000012
【図８】
0005499760.tif 000013
【図９】
0005499760.tif 000014
【図１０】
0005499760.tif 000015
【図１１】
0005499760.tif 000016
【図１２】
0005499760.tif 000017
【図１３】
0005499760.tif 000018
【図１４】
0005499760.tif 000019
【図１５】
0005499760.tif 000020
【図１６】
0005499760.tif 000021
【図１７】
0005499760.tif 000022
【図１８】
0005499760.tif 000023
【図１９】
0005499760.tif 000024
【図２０】
0005499760.tif 000025
【図２１】
0005499760.tif 000026
【図２２】
0005499760.tif 000027