(57)【要約】【課題】回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことを可能とするインタリーブ装置等を提供する。【解決手段】インタリーブ装置１０の備えるアドレス変換回路１１が、入力された初期アドレスに対して設定コントローラによって与えられた第１の設定に応じた処理を行って得られた中間アドレスを出力する第１のアドレス変換部１００と、中間アドレスに対して設定コントローラによって与えられた第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第２のアドレス変換部２００とを備え、これによって１つの連続したインタリーブ処理を実行するように構成した。【選択図】図１
2013110678.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上の前記インタリーブの処理をされたアドレスに記憶された前記データを出力するメモリコントローラとを備えたインタリーブ装置であって、
前記アドレス変換回路が、
入力された初期アドレスに対して前記設定コントローラによって与えられた第１の設定に応じた処理を行って得られた中間アドレスを出力する第１のアドレス変換部と、
前記中間アドレスに対して前記設定コントローラによって与えられた第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに対して出力する第２のアドレス変換部と
を備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とするインタリーブ装置。
【請求項２】
前記第１のアドレス変換部が、
前記第１の設定によって与えられた複数個の初期設定値を記憶する第１の初期設定値保持手段と、
前記初期アドレスと前記初期設定値とを前記第１の設定によって与えられた演算規則に従って演算する第１の演算手段と、
前記初期アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第２の演算手段と、
前記第１および第２の演算手段からの出力を加算してこれを前記中間アドレスとして出力する第１の加算器
とを備えると共に、
前記第２のアドレス変換部が、
前記第２の設定によって与えられた複数個の初期設定値を記憶する第２の初期設定値保持手段と、
前記中間アドレスと前記初期設定値とを前記第２の設定によって与えられた演算規則に従って演算する第３の演算手段と、
前記中間アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第４の演算手段と、
前記第３および第４の演算手段からの出力を加算してこれを前記出力アドレスとして出力する第２の加算器
とを備えることを特徴とする、請求項１に記載のインタリーブ装置。
【請求項３】
前記第１のアドレス変換部の前記第１の演算手段が、前記初期アドレスと前記第１の初期設定値保持手段に記憶された第１ないし第５の前記初期設定値とを前記第１の設定によって与えられた演算規則に従って演算し、
前記第２の演算手段が、前記初期アドレスと前記第１の初期設定値保持手段に記憶された第６および第７の前記初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、
前記第２のアドレス変換部の前記第３の演算手段が、前記初期アドレスと前記第２の初期設定値保持手段に記憶された第８ないし第１２の前記初期設定値とを前記第２の設定によって与えられた演算規則に従って演算し、
前記第４の演算手段が、前記初期アドレスと前記第２の初期設定値保持手段に記憶された第１３および第１４の前記初期設定値とをあらかじめ与えられた演算規則に従って演算する
ことを特徴とする、請求項２に記載のインタリーブ装置。
【請求項４】
前記第１ないし第７の初期設定値を各々ｉ１〜ｉ７とし、前記初期アドレスおよび中間アドレスを各々ｘおよびｆｘとすると、前記第１のアドレス変換部は前記初期アドレスを
2013110678.tif 000014
の式で示される演算によって前記中間アドレスに変換し、
前記第８ないし第１４の初期設定値を各々ｉ８〜ｉ１４とし、前記中間アドレスおよび出力アドレスを各々ｆｘおよびｇｘとすると、前記第２のアドレス変換部は前記中間アドレスを
2013110678.tif 000015
の式で示される演算によって前記出力アドレスに変換することを特徴とする、請求項３に記載のインタリーブ装置。
【請求項５】
前記アドレス変換回路が、前記設定コントローラによって与えられた第３の設定に応じて、前記インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを前記初期アドレスとして出力する初期アドレス生成部を備えることを特徴とする、請求項１に記載のインタリーブ装置。
【請求項６】
前記初期アドレス生成部が、
前記ブロックサイズの範囲内で各処理ごとに重複しない前記乱数を発生する乱数生成手段と、
前記ブロックサイズの範囲内で各処理ごとに１ずつ値を変化させたカウント値を発生するカウンタと、
前記第３の設定に応じて、前記発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサとを有することを特徴とする、請求項５に記載のインタリーブ装置。
【請求項７】
前記アドレス変換回路が、前記設定コントローラによって与えられた第４の設定に応じて、前記出力アドレスを最終出力アドレスに変換してこれを前記メモリコントローラに対して出力するルックアップテーブル部を備えることを特徴とする、請求項５に記載のインタリーブ装置。
【請求項８】
前記ルックアップテーブル部が、
前記第４の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段と、
前記出力アドレスから前記オフセット出力手段から出力された前記オフセット値を減算した値を出力する減算器と、
前記設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段と、
前記メモリ手段から出力された値と前記オフセット出力手段から出力された値とを加算してこれを前記最終出力アドレスとして出力する加算器と
を備えることを特徴とする、請求項７に記載のインタリーブ装置。
【請求項９】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記設定コントローラが、前記アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与え、
前記メモリコントローラが、入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力し、
前記第１のアドレス変換部が、前記初期アドレスに対して前記第１の設定に応じた処理を行って得られた中間アドレスを出力し、
前記第２のアドレス変換部が、前記中間アドレスに対して前記第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力し、
前記メモリコントローラが前記メモリ上の前記出力アドレスに記憶されているデータを出力する
ことを特徴とするアドレス変換方法。
【請求項１０】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記インタリーブ装置の備えるコンピュータに、
前記アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与える手順、
入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力する手順、
前記初期アドレスに対して前記第１の設定に応じた処理を行って得られた中間アドレスを出力する手順、
および前記中間アドレスに対して前記第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力する手順
を実行させることを特徴とするアドレス変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はインタリーブ装置、アドレス変換方法およびアドレス変換プログラムに関し、特に回路規模を抑制しつつ複数種類のインタリーブ処理を行うことが可能なインタリーブ装置等に関する。
【背景技術】
【０００２】
記憶装置やデジタル通信・信号処理においては、それらの信頼性を確保する意味で、伝送されるデータのエラー訂正が必要である。特に最近は、無線通信において高速のデータ伝送が行われることが多くなっているので、エラー訂正処理に係る技術も高度化が求められている。
【０００３】
現在広く使われている誤り検出訂正用の符号化方式は、単独のビットに対して散発的に発生するランダム誤りに対しては比較的高い訂正能力を持つ。しかしながら、短い区間に多数の誤りが連続的かつ集中的に発生するバースト誤りに対しては、全体的な誤り率が許容範囲内であっても、検出や訂正が困難であることが多い。具体的には、たとえば自動車のエンジンや特定の電化製品（電子レンジ、ブラウン管など）から発生するインパルス状の雑音や、（特に無線通信において不可避な）信号強度の変動やマルチパスなどが、バースト誤りの発生原因となりやすい。
【０００４】
そのようなバースト誤りに対応するために、複数の符号語を並べてそのシンボルを並べ変えることがよく行われている。このような処理をインタリーブという。このインタリーブによって、連続したデータを分散させて、バースト誤りをランダム誤りに変換でき、その結果としてバースト誤りに対する訂正能力を高めることができる。
【０００５】
インタリーブを行う場合、一般的には、インタリーブ対象のデータと同規模のメモリにある特定のアドレス列を用いて、対象データを書き込み、または、読み出すことで、データの並び替えを実現する。その並び替えの方法により、ブロックインタリーブ、畳み込みインタリーブなどいくつかの方式に分類できる。ここではブロックインタリーブに着目する。
【０００６】
ブロックインタリーブは、主にノーマルインタリーブやランダムインタリーブなどに分類できる。ノーマルインタリーブとは、インタリーブに用いるメモリ領域を２次元配列と見なし、縦方向に順にデータを書き込み、横方向に順に読み出す、縦入れ横出し処理を行うものを指す。さらに、縦入れ横出し処理に加えて、コラム／ロー置換、もしくは、コラムツイストなどの処理を追加する形式のものもある。
【０００７】
また、ランダムインタリーブとは、ブロック内に限定してシンボルの並びをランダムに並び換えるものであり、そのランダムな並び替えは、ルックアップテーブルに保管されたランダム値を用いる方式や、Ｍ系列による疑似ランダム値を用いる方式などがある。これらのブロックインタリーブは、国内外の地上波デジタルテレビ放送や無線ＬＡＮなどのような無線データ通信に使用されている。
【０００８】
インタリーブは、使用環境の違いにより通信路特性が異なるため、無線通信規格毎にそれぞれ異なる種類のインタリーブ方式が採用されている。１つの無線通信規格の中に複数のインタリーブが含まれる場合がある。また、１つのインタリーブ方式の中に、複数種類のインタリーブを連続して行うことが規定されている場合もある。
【０００９】
例えば、非特許文献１に記載されている地上波デジタルテレビ放送の規格であるＩＳＤＢ−Ｔ（Integrated Services Digital Broadcasting-Terrestrial）の周波数インタリーブは、セグメント間インタリーブ、セグメント内キャリアローテーション、セグメント内キャリアランダマイズの３種類の異なった処理が組み合わせて、一つの連続したインタリーブとしている。
【００１０】
また、非特許文献２に記載されている無線ＬＡＮの規格であるＩＥＥＥ（The Institute of Electrical and Electronics Engineers、米国電気電子学会）８０２．１１ａのシンボルインタリーブは、第１パーミュテーション（1st permutation）および第２パーミュテーション（2nd permutation）という２種類の異なった処理を組み合わせて一つの連続したインタリーブとしている。
【００１１】
このように複数種類のインタリーブを連続して行う場合にも、通信のリアルタイム性を損なわないことは当然必要である。さらに、近年は特にデータの伝送速度の向上が求められている。このため、インタリーブの処理の高速化は、ますますその必要性が高まっている。
【００１２】
そのための技術として、特許文献３に記載の技術などでは、インタリーブ前のデータが保存されたメモリから、複数種類の連続したインタリーブをすべて施した状態でデータ読み出しを行うために、処理開始前に予め読み出しアドレスを格納したテーブルを作成しておき、作成されたテーブルにより指定されたアドレスから読み出しを行うことで、一挙動にインタリーブ用アドレスを生成して、メモリへのアクセス回数やインタリーブ処理時間を減らしている。
【００１３】
さらに、近年の無線通信システムでは、１つの装置において複数の通信規格に対応するためにマルチモード化が求められており、インタリーブにおいても単一のインタリーブ装置で複数のインタリーブ方式への対応が求められている。これに対して、非特許文献３に記載の技術などでは、インタリーブのアドレス生成式を差分方程式に変形し、その結果の演算を複数の加減算器と累算器の組合せで実現し、アドレス生成を行う方式を用いることで、複数のインタリーブ方式に対応しながらも、回路規模を削減している。
【００１４】
他に、これに関連する技術文献として、次の各々がある。その中でも特許文献１には、データ系列を再変調して生成したレプリカ信号を利用して、並列干渉キャンセラの処理遅延を短縮するという受信装置について記載されている。特許文献２には、ＤＶＢ−Ｔ（Digital Video Broadcasting - Terrestrial）などのデジタルテレビ放送に関する規格で、ＬＤＰＣ（低密度パリティ検査）符号化されたＯＦＤＭ（直交波周波数分割多重）シンボルをサブキャリア信号にマッピングする技術の一例が記載されている。
【００１５】
特許文献４には、デジタルテレビ放送などで、ＯＦＤＭ方式で変調された信号を受信して復調する際に使用されるデインタリーブ（インタリーブの逆処理）の一例が記載されている。非特許文献３には、後述のように、インタリーブのアドレス生成に要する演算を主に加減算器と塁算器で実現するという技術が記載されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００８−２０５８０１号公報
【特許文献２】特開２００９−１５３１０９号公報
【特許文献３】特許３９１１４０１号公報
【特許文献４】特許４１５２８５４号公報
【非特許文献】
【００１７】
【非特許文献１】規格番号「ＡＲＩＢ−ＳＴＤ−Ｂ３１」、標準規格名「地上デジタルテレビジョン放送の伝送方式」第１．９版、社団法人電波産業会（ＡＲＩＢ）、平成２２年７月１５日
【非特許文献２】規格番号「IEEE Std 802。11a-1999(R2003)」、標準規格名「Supplement to IEEE Standard for Information Technology Telecommunications and information exchange between systems Local and metropolitan area networks Specific requirements、 Part11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications High-speed Physical Layer in the 5 GHz Band」
【非特許文献３】Rizwan Asghar and Dake Liu、“Multimode Flex-Interleaver Core for Baseband Processor Platform"、Hindawi Publishing Corporation、Journal of Computer Systems、Networks、and Communications、2010
【発明の概要】
【発明が解決しようとする課題】
【００１８】
前述のように、データ通信においては特に、リアルタイム性を損なわないことが当然必要である。近年は特に、データの伝送速度の向上と、複数の通信方式への対応とが強く求められている。なおかつ、装置の小型化・低価格化・低消費電力化は常に求められることであるので、インタリーブ装置においてもその回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、さらにインタリーブを高速に行うことが当然必要となる。
【００１９】
しかしながら、前述の特許文献３のように、メモリへのアクセス回数を減らすために予め読み出しアドレスを格納するテーブルを作成しておく方式だと、インタリーブの処理サイズが大きくなった場合に、このテーブルのデータサイズが大きくなり、回路規模の増大を招き、さらに高速化が困難になることが問題となる。
【００２０】
また、非特許文献３のように、インタリーブのアドレス生成に要する演算を加減算器と塁算器などによってハードウェア的に実現する方式だと、複数の異なったインタリーブが組み合わされることにより１つのインタリーブとなっている場合にはアドレス生成式を差分方程式で表せないので、組み合わせられた各々のインタリーブをそれぞれ個別に行う必要がある。
【００２１】
従って、各々の処理後のデータを一旦メモリに書き出すということを複数回行う必要が生じ、メモリへのアクセス回数が増大し、処理時間が増大することが問題となる。さらに、この方式だと、複数のインタリーブ方式に対応するためには各方式ごとに別個のハードウェアが必要となり、回路規模の抑制が困難である。
【００２２】
以上の課題を解決しうる技術は、残る非特許文献１〜２や、特許文献１，２，４にも記載されていない。非特許文献１〜２には、前述のようにインタリーブに関する規格が記載されているに過ぎない。また、特許文献１，２，４に記載された技術は、インタリーブにおける回路規模の抑制や複数のインタリーブ方式への対応を目的とするものではない。
【００２３】
本発明の目的は、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことを可能とするインタリーブ装置、アドレス変換方法およびアドレス変換プログラムを提供することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するため、本発明に係るインタリーブ装置は、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上のインタリーブの処理をされたアドレスに記憶されたデータを出力するメモリコントローラとを備えたインタリーブ装置であって、アドレス変換回路が、入力された初期アドレスに対して設定コントローラによって与えられた第１の設定に応じた処理を行って得られた中間アドレスを出力する第１のアドレス変換部と、中間アドレスに対して設定コントローラによって与えられた第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第２のアドレス変換部とを備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とする。
【００２５】
上記目的を達成するため、本発明に係るアドレス変換方法は、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上にデータを入出力するメモリコントローラとを備えたインタリーブ装置にあって、設定コントローラが、アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与え、メモリコントローラが、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力し、第１のアドレス変換部が、初期アドレスに対して第１の設定に応じた処理を行って得られた中間アドレスを出力し、第２のアドレス変換部が、中間アドレスに対して第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力し、メモリコントローラがメモリ上の出力アドレスに記憶されているデータを出力することを特徴とする。
【００２６】
上記目的を達成するため、本発明に係るアドレス変換プログラムは、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上にデータを入出力するメモリコントローラとを備えたインタリーブ装置にあって、インタリーブ装置の備えるコンピュータに、アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与える手順、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力する手順、初期アドレスに対して第１の設定に応じた処理を行って得られた中間アドレスを出力する手順、および中間アドレスに対して第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力する手順を実行させることを特徴とする。
【発明の効果】
【００２７】
本発明は、上記したように第１および第２の設定に応じて各々動作する第１および第２のアドレス変換部によって初期アドレスを中間アドレスを経て出力アドレスに変換するように構成したので、パイプライン的に連続して処理を行うことが可能となり、また初期設定値に応じて複数種類のインタリーブ方式に対応可能であり、各方式に対応するハードウェアやルックアップテーブルなどを別々に用意する必要はない。
【００２８】
これによって、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことが可能であるという、優れた特徴を持つインタリーブ装置、アドレス変換方法およびアドレス変換プログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】図２で示したアドレス変換回路のより詳しい構成を示す説明図である。
【図２】本発明の第１の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図３】図１に示した第１の演算手段および第３の演算手段のより詳しい構成について示す説明図である。
【図４】図１に示した第２の演算手段および第４の演算手段のより詳しい構成について示す説明図である。
【図５】図１に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【図６】本発明の第２の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図７】図６に示したアドレス変換回路のより詳しい構成を示す説明図である。
【図８】図６に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【図９】本発明の第３の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図１０】図９に示したアドレス変換回路のより詳しい構成を示す説明図である。
【図１１】図９に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【発明を実施するための形態】
【００３０】
（第１の実施形態）
以下、本発明の実施形態の構成について添付図１〜４に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るインタリーブ装置１０は、入力されたデータを一時的に記憶するメモリ１４と、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路１１と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラ１２と、メモリ上のインタリーブの処理をされたアドレスに記憶されたデータを出力するメモリコントローラ１３とを備えたインタリーブ装置である。このアドレス変換回路１１は、入力された初期アドレスに対して設定コントローラによって与えられた第１の設定に応じた処理を行って得られた中間アドレスを出力する第１のアドレス変換部１００と、中間アドレスに対して設定コントローラによって与えられた第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第２のアドレス変換部２００とを備え、これによって一つの連続したインタリーブ処理を実行するように構成されている。
【００３１】
ここで、第１のアドレス変換部１００は、第１の設定によって与えられた複数個の初期設定値を記憶する第１の初期設定値保持手段１１０と、初期アドレスと初期設定値とを第１の設定によって与えられた演算規則に従って演算する第１の演算手段１２０と、初期アドレスと初期設定値とをあらかじめ与えられた演算規則に従って演算する第２の演算手段１３０と、第１および第２の演算手段からの出力を加算してこれを中間アドレスとして出力する第１の加算器１４０とを備える。これと共に、第２のアドレス変換部２００は、第２の設定によって与えられた複数個の初期設定値を記憶する第２の初期設定値保持手段２１０と、中間アドレスと初期設定値とを第２の設定によって与えられた演算規則に従って演算する第３の演算手段２２０と、中間アドレスと初期設定値とをあらかじめ与えられた演算規則に従って演算する第４の演算手段２３０と、第３および第４の演算手段からの出力を加算してこれを出力アドレスとして出力する第２の加算器２４０とを備える。
【００３２】
また、第１のアドレス変換部１００の第１の演算手段１２０が、初期アドレスと第１の初期設定値保持手段１１０に記憶された第１ないし第５の初期設定値とを第１の設定によって与えられた演算規則に従って演算し、第２の演算手段１３０が、初期アドレスと第１の初期設定値保持手段１１０に記憶された第６および第７の初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、第２のアドレス変換部２００の第３の演算手段２２０が、初期アドレスと第２の初期設定値保持手段２１０に記憶された第８ないし第１２の初期設定値とを第２の設定によって与えられた演算規則に従って演算し、第４の演算手段２３０が、初期アドレスと第２の初期設定値保持手段２１０に記憶された第１３および第１４の初期設定値とをあらかじめ与えられた演算規則に従って演算する。
【００３３】
さらに、第１ないし第７の初期設定値を各々ｉ１〜ｉ７とし、初期アドレスおよび中間アドレスを各々ｘおよびｆｘとすると、第１のアドレス変換部１００は初期アドレスを
2013110678.tif 000003
の式で示される演算によって中間アドレスに変換し、第８ないし第１４の初期設定値を各々ｉ８〜ｉ１４とし、出力アドレスをｇｘとすると、第２のアドレス変換部２００は中間アドレスを
2013110678.tif 000004
の式で示される演算によって出力アドレスに変換する。
【００３４】
以上の構成を備えることにより、本実施形態に係るインタリーブ装置１０は、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことが可能なものとなる。
以下、これをより詳細に説明する。
【００３５】
図２は、本発明の第１の実施形態に係るインタリーブ装置１０の構成について示す説明図である。インタリーブ装置１０は、外部装置との間でデータの入出力を行うメモリコントローラ１３と、上位ＣＰＵ２０からのパラメータ設定の操作を受けて装置の設定変更を行う設定コントローラ１２と、インタリーブの対象となるデータを一時的に記憶するメモリ１４と、メモリ１４に記憶されたデータのアドレスに対して後述のインタリーブの処理を行って出力するアドレス変換回路１１と、アドレスの初期値を生成してアドレス変換回路１１に対して出力する初期アドレス生成回路１５とで構成される。初期アドレス生成回路１５が生成するアドレスの初期値は、たとえば純増値やランダム値など、公知の手法で生成することができる。
【００３６】
図１は、図２で示したアドレス変換回路１１のより詳しい構成を示す説明図である。アドレス変換回路１１は、第１のアドレス変換部１００と、第２のアドレス変換部２００とを備える。
【００３７】
第１のアドレス変換部１００は、図２に示された入力データがメモリ１４に記憶されたアドレス（これを初期アドレスという）を入力とし、第１の初期設定値保持手段１１０、第１の演算手段１２０、第２の演算手段１３０、加算器１４０を備え、加算器１４０からの出力値を中間アドレスとして第２のアドレス変換部２００に対して出力する。
【００３８】
第１の初期設定値保持手段１１０は、設定コントローラ１２からの第１の設定によって設定された、第１〜第７の初期値をあらかじめ記憶する。第１の演算手段１２０は、初期アドレスと第１〜第５の初期設定値を入力とし、第１の演算結果を出力とする。第２の演算手段１３０は、初期アドレスと第６〜第７の初期設定値を入力とし、第２の演算結果を出力とする。加算器１４０は、第１の演算結果と第２の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、中間アドレスとなる。
【００３９】
第２のアドレス変換部２００は、中間アドレスを入力とし、第２の初期設定値保持手段２１０、第３の演算手段２２０、第４の演算手段２３０、加算器２４０を備え、加算器２４０からの出力値を出力アドレスとしてメモリコントローラ１３に対して出力する。
【００４０】
第２の初期設定値保持手段２１０は、設定コントローラ１２からの第２の設定によって設定された、第８〜第１４の初期値を保持する。第３の演算手段２２０は、中間アドレスと第８〜第１２の初期設定値を入力とし、第３の演算結果を出力とする。第４の演算手段２３０は、中間アドレスと第１３〜第１４の初期設定値を入力とし、第４の演算結果を出力する。加算器２４０は、第３の演算結果と第４の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、出力アドレスとなる。
【００４１】
図３は、図１に示した第１の演算手段１２０および第３の演算手段２２０のより詳しい構成について示す説明図である。第１の演算手段１２０と第３の演算手段２２０は、入出力値が異なるが、回路構成は同一であるので、同一の図によって示す。
【００４２】
第１の演算手段１２０は、前述したように、初期アドレスと第１〜第５の初期設定値とを入力とし、この入力値に対して乗算器１２１、除算器１２２、フロア演算器１２３、加減算器１２４、剰余算器１２５、乗算器１２６によって演算を行い、乗算器１２６からの出力値を第１の演算結果として出力する。
【００４３】
乗算器１２１は、初期アドレスと第２の初期設定値とを入力とし、その乗算結果を出力とする。除算器１２２は、乗算器１２１の出力と第３の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器１２３は、除算器１２２の出力を入力とし、その演算結果を出力とする。
【００４４】
加減算器１２４は、初期アドレスと、第１の初期設定値と、フロア演算器１２３からの出力とを入力とし、その演算結果を出力とする。その際、加減算器１２４は、設定コントローラ１２から与えられた第１の設定により、それらの３つの入力に対して、（加算、加算、減算）か、もしくは、（加算、加算、加算）かのいずれかの演算を行う。
【００４５】
剰余算器１２５は、加減算器１２４の出力と第４の初期設定値とを入力とし、その演算結果を出力とする。乗算器１２６は、剰余算器１２５の出力と第５の初期設定値とを入力とし、その乗算結果を第１の演算結果とする。
【００４６】
第３の演算手段２２０は、第１の演算手段１２０と同一の回路構成を備え、入出力値が異なる。即ち、第３の演算手段２２０は、中間アドレスと第８〜第１２の初期設定値とを入力とし、この入力値に対して乗算器２２１、除算器２２２、フロア演算器２２３、加減算器２２４、剰余算器２２５、乗算器２２６によって演算を行い、乗算器２２６からの出力値を第３の演算結果として出力する。
【００４７】
乗算器２２１は、中間アドレスと第９の初期設定値とを入力とし、その乗算結果を出力とする。除算器２２２は、乗算器２２１の出力と第１０の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器２２３は、除算器２２２の出力を入力とし、その演算結果を出力とする。
【００４８】
加減算器２２４は、中間アドレスと、第８の初期設定値と、フロア演算器２２３からの出力を入力とし、その演算結果を出力とする。その際、加減算器２２４は、設定コントローラ１２から与えられた第２の設定により、それらの３つの入力に対して、（加算、加算、減算）か、もしくは、（加算、加算、加算）かのいずれかの演算を行う。
【００４９】
剰余算器２２５は、加減算器２２４の出力と第１１の初期設定値とを入力とし、その演算結果を出力とする。乗算器２２６は、剰余算器２２５の出力と第１２の初期設定値とを入力とし、その乗算結果を第３の演算結果とする。
【００５０】
図４は、図１に示した第２の演算手段１３０および第４の演算手段２３０のより詳しい構成について示す説明図である。第２の演算手段１３０と第４の演算手段２３０は、入出力値が異なるが、回路構成は同一であるので、同一の図によって示す。
【００５１】
第２の演算手段１３０は、初期アドレスと第６〜第７の初期設定値とを入力とし、この入力値に対して除算器１３１、フロア演算器１３２、乗算器１３３によって演算を行い、乗算器１３３からの出力値を第２の演算結果として出力する。
【００５２】
除算器１３１は、初期アドレスと第６の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器１３２は、除算器１３１の出力を入力とし、その演算結果を出力とする。乗算器１３３は、フロア演算器１３２の出力と第７の初期設定値とを入力とし、その乗算結果を第２の演算結果とする。
【００５３】
第４の演算手段２３０は、中間アドレスと第１３〜第１４の初期設定値とを入力とし、この入力値に対して除算器２３１、フロア演算器２３２、乗算器２３３によって演算を行い、乗算器２３３からの出力値を第４の演算結果として出力する。
【００５４】
除算器２３１は、中間アドレスと第１３の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器２３２は、除算器２３１の出力を入力とし、その演算結果を出力とする。乗算器２３３は、フロア演算器２３２の出力と第１４の初期設定値とを入力とし、その乗算結果を第４の演算結果とする。
【００５５】
（第１の実施形態の演算の動作）
以上で説明したアドレス変換回路１１による演算の動作について説明する。図５は、図１に示したインタリーブ装置１０によるインタリーブの動作について示すフローチャートである。まず、上位ＣＰＵ２０からのパラメータ設定の操作を受けて、設定コントローラ１２がアドレス変換回路１１の第１のアドレス変換部１００に第１の設定を、そして第２のアドレス変換部２００に第２の設定を与える（ステップＳ２５１）。
【００５６】
アドレス変換回路１１に対する第１および第２の設定が終了したら、メモリコントローラ１３は外部からインタリーブ対象となるデータの入力を待ち受け（ステップＳ２５２）、データの入力があればそのデータをメモリ１４に保存する（ステップＳ２５３）。
【００５７】
そして、保存された対象データの保存されたメモリ１４上のアドレスが、アドレス変換回路１１に初期アドレスとして入力され、第１のアドレス変換部１００はこの初期アドレスに対して中間アドレスを出力し（ステップＳ２５４）、第２のアドレス変換部２００はこの中間アドレスに対して出力アドレスを出力する（ステップＳ２５５）。そして、メモリコントローラ１３は出力アドレスのデータをメモリ１４から読み出して出力する（ステップＳ２５６）。
【００５８】
以上の動作の前提から説明する。ブロックインタリーブ処理は、複数の種類をまとめて、次の数１のように表現される。ここで、ｘはインタリーブされるブロックの系列の番号を示し、ｆｘは系列のｘ番目の出力されるアドレスを示す。また、ｉ１〜ｉ７は各通信規格に応じて設定される初期設定値を示す。％は剰余演算子であり、「Ａ％Ｂ」は数値Ａを数値Ｂで割った余りを表す。また、［］の上部が欠けた形の記号はフロア演算子（床演算子）である。
【００５９】
〔数１〕
2013110678.tif 000005
即ち、初期アドレスをｘとすると、ｆｘは中間アドレスとなり、ｉ１〜ｉ７は第１のアドレス変換部１００に対して第１の設定で与えられる第１〜第７の初期値となり、上記の数１は第１のアドレス変換部１００で行われる処理を表す。
【００６０】
また、ｇｘを出力アドレスとし、ｉ８〜ｉ１４を第２のアドレス変換部２００に対して第２の設定で与えられる第８〜第１４の初期値とすると、第２のアドレス変換部２００で行われる処理は、上記数１の変数のみを入れ替えた、以下の数２で表される。
【００６１】
〔数２〕
2013110678.tif 000006
【００６２】
アドレス変換回路１１は、図５にも示したように、まずパラメータの設定を行い（ステップＳ２５１）、次にそのパラメータに基づいて動作する（ステップＳ２５２以降）という２つのフェーズによって動作する。以後、説明を平易なものとするため、加減算器１２４および加減算器２２４は、（加算、加算、減算）の動作を行うよう、第１および第２の設定によって設定コントローラ１２によって設定が与えられるものとする。
【００６３】
まず、上位ＣＰＵ２０から設定コントローラ１２を介して、第１のアドレス変換部１００および第２のアドレス変換部２００に対して第１および第２の設定を与える。これによって、第１の初期設定値保持手段１１０の第１の初期値〜第７の初期値に値が設定され、第２の初期設定値保持手段２１０の第８の初期値〜第１４の初期値に値が設定される。また、加減算器１２４は３入力に対して（加算、加算、減算）を行うように設定される。同様に加減算器２２４も３入力に対して（加算、加算、減算）を行うように設定される。
【００６４】
ここで、第１の初期設定値保持手段１１０における第１〜第７の初期値は、上記数１のｉ１〜ｉ７に各々対応し、第２の初期設定値保持手段２１０における第８〜第１４の初期値も、上記数２のｉ８〜ｉ１４に各々対応する。
【００６５】
以上の設定を完了した第１のアドレス変換部１００に対して、初期アドレスが入力される。入力される初期アドレスは、ブロックインタリーブの１ブロック個数分のアドレスが過不足なく順次入力されるものである。第１のアドレス変換部１００に入力された初期アドレスは、第１の演算手段１２０と第２の演算手段１３０に入力される。第１の初期設定値保持手段１１０は、第１〜第５の初期設定値（ｉ１〜ｉ５）を第１の演算手段１２０に出力し、第６〜第７の初期設定値（ｉ６〜ｉ７）を第２の演算手段１３０に出力する。
【００６６】
第１の演算手段１２０において、乗算器１２１は、入力された初期アドレスと第２の初期設定値（ｉ２）とを乗算し、その乗算結果を出力する。除算器１２２は、乗算器１２１からの出力を第３の初期設定値（ｉ３）で除算し、その除算結果を出力する。フロア演算器１２３は、除算器１２２からの出力に対してフロア演算を行い、その演算結果を出力する。
【００６７】
加減算器１２４は、初期アドレス、第１の初期設定値（ｉ１）、フロア演算器１２３からの出力に対して（加算、加算、減算）の加減算を行い、その演算結果を出力する。剰余算器１２５は、加減算器１２４からの出力を第４の初期設定値（ｉ４）で剰余演算を行い、その演算結果を出力する。乗算器１２６は、剰余算器１２５からの出力と第５の初期設定値（ｉ５）とを乗算し、その乗算結果を第１の演算結果として出力する。
【００６８】
一方、第２の演算手段１３０において、除算器１３１は、入力された初期アドレスを第６の初期設定値（ｉ６）で除算し、その除算結果を出力する。フロア演算器１３２は、除算器１３１からの出力に対してフロア演算を行い、その演算結果を出力する。乗算器１３３は、フロア演算器１３２からの出力と第７の初期設定値（ｉ７）とを乗算し、その乗算結果を第２の演算結果として出力する。
【００６９】
加算器１４０は上記の第１の演算結果と第２の演算結果とを加算し、中間アドレスとして出力する。出力された中間アドレスは、第２のアドレス変換部２００へ入力される。
【００７０】
第２のアドレス変換部２００に入力された中間アドレスは、第３の演算手段２２０と第４の演算手段２３０に入力される。第２の初期設定値保持手段２１０は、第８〜第１２の初期設定値（ｉ８〜ｉ１２）を第３の演算手段２２０に出力し、第１３〜第１４の初期設定値（ｉ１３〜ｉ４）を第４の演算手段２３０に出力する。
【００７１】
第３の演算手段２２０において、乗算器２２１は、入力された中間アドレスと第９の初期設定値（ｉ９）を乗算し、その乗算結果を出力する。除算器２２２は、乗算器２２１からの出力を第１０の初期設定値（ｉ１０）で除算し、その除算結果を出力する。フロア演算器２２３は、除算器２２２からの出力に対してフロア演算を行い、その演算結果を出力する。
【００７２】
加減算器２２４は、中間アドレス、第８の初期設定値（ｉ８）、フロア演算器２２３からの出力に対して（加算、加算、減算）の加減算を行い、その演算結果を出力する。剰余算器２２５は、加減算器２２４からの出力を第１１の初期設定値（ｉ１１）で剰余演算を行い、その演算結果を出力する。乗算器２２６は、剰余算器２２５からの出力と第１２の初期設定値（ｉ１２）を乗算し、その乗算結果を第３の演算結果として出力する。
【００７３】
一方、第４の演算手段２３０において、除算器２３１は、中間アドレスを第１３の初期設定値（ｉ１３）で除算し、その除算結果を出力する。フロア演算器２３２は、除算器２３１からの出力に対してフロア演算を行い、その演算結果を出力する。乗算器２３３は、フロア演算器２３２からの出力と第１４の初期設定値（ｉ１４）を乗算し、その乗算結果を第４の演算結果として出力する。
【００７４】
加算器２４０は上記の第３の演算結果と第４の演算結果とを加算し、出力アドレスとして出力する。
【００７５】
以上のようにして第２のアドレス変換部２００から出力された出力アドレスは、インタリーブする対象のデータが保存されたメモリ１４にアクセスするためにメモリコントローラ１３に対して出力されるアドレスとなる。第１のアドレス変換部１００と第２のアドレス変換部２００は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、第１のアドレス変換部１００に初期アドレスが連続して入力されている限りは、図５のフローチャートにもあるように、本実施形態のインタリーブ装置１０は、インタリーブの処理を連続的に行うことが可能である。
【００７６】
即ち、インタリーブ装置１０はデータ自体をインタリーブするのではなく、メモリ１４にアクセスするために用いられるアドレスに対して上記で示した処理を行い、それによって変換された出力アドレスのデータをメモリ１４から読み出して、これによってインタリーブの処理を実現している。
【００７７】
その結果、メモリ１４へはインタリーブされた後のアドレスが供給されることになるため、複数の処理が組み合わさったインタリーブでも、メモリへのアクセス回数が１回で済むことになる。即ち、メモリ１４へのアクセス回数を減らし、また連続して入力される初期アドレスに対してパイプライン的に連続して処理を続けることができるので、処理にかかる負荷や時間を軽減することができる。
【００７８】
（第１の実施形態の実際の通信に対する適用例）
以下、インタリーブ装置１０の実際の通信に対する適用例を２種類挙げて説明する。まず、インタリーブ装置１０をＩＥＥＥ８０２．１１ａのシンボルインタリーブの処理に適用する場合について説明する。このＩＥＥＥ８０２．１１ａのシンボルインタリーブでは、前述のように第１パーミュテーションおよび第２パーミュテーションという２種類の異なった処理を組み合わせて、一つのインタリーブとしている。
【００７９】
この場合、アドレス変換回路１１において、第１パーミュテーションの処理に対応するのが第１のアドレス変換部１００であり、第２パーミュテーションの処理に対応するのが第２のアドレス変換部２００である。ここでのパラメータは、インタリーブのブロックサイズＮ＝１９２となり、また変調方式として１６ＱＡＭが使用される。
【００８０】
この時、第１パーミュテーションと第２パーミュテーションの各々のアドレス生成式は、以下の数３〜３で表される。ｆｘは、入力された初期アドレスｘに対して第１のアドレス変換部１００が出力する中間アドレスである。そしてｇｘは、入力された中間アドレスｆｘに対して第２のアドレス変換部２００が出力する出力アドレスである。
【００８１】
〔数３〕
2013110678.tif 000007
【００８２】
〔数４〕
2013110678.tif 000008
【００８３】
ここで、第１のアドレス変換部１００への第１の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第１の初期設定値保持手段１１０に設定される第１〜第７の初期設定値ｉ１〜ｉ７は各々、（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６、ｉ７）＝（０、０、１、１６、１２、１６、１）となる。
【００８４】
そして、第２のアドレス変換部２００への第２の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第２の初期設定値保持手段２１０に設定される第８〜第１４の初期設定値ｉ８〜ｉ１４は各々、（ｉ８、ｉ９、ｉ１０、ｉ１１、ｉ１２、ｉ１３、ｉ１４）＝（１２８、１、８、２、１、２、２）となる。
【００８５】
また、第１の演算手段１２０の加減算器１２４は、上位ＣＰＵ２０から設定コントローラ１２を介して、（加算、加算、減算）という演算を行うように設定される。一方で、第３の演算手段２２０の加減算器２２４は、（加算、加算、減算）という演算を行うように設定される。また、初期アドレスｘは、０から１９１まで過不足なく順に入力される。
【００８６】
このとき、第１のアドレス変換部１００は、入力された初期アドレスｘと第１の設定に基づいて設定された第１〜第７の初期設定値ｉ１〜ｉ７に基づいてアドレス変換を行い、中間アドレスｆｘを出力する。また、第２のアドレス変換部２００は、中間アドレスｆｘと第２の設定に基づいて設定された第８〜第１４の初期設定値ｉ８〜ｉ１４に基づいてアドレス変換を行い、出力アドレスｇｘを出力する。以上のようにして、ＩＥＥＥ８０２．１１ａのシンボルインタリーブのためのアドレス生成を行うことができる。
【００８７】
続いて、インタリーブ装置１０をＤＶＢ−Ｔ２のセルインタリーブの処理に適用する場合について説明する。ＤＶＢ−Ｔ２のセルインタリーブは、線形フィードバックシフトレジスタをベースとした回路によって生成されたランダムな値を初期アドレスとし、そこへシンボル番号に基づいたシフトを組み合わせたインタリーブとなっている。
【００８８】
ここでのパラメータは、インタリーブのブロックサイズＮ＝８１００（＝６４８００／８）、かつセルインタリーブのシフト量は４０９６となる。この時、ＤＶＢ−Ｔ２セルインタリーブのパーミュテーション関数（permutation function）のアドレス生成式は、以下の数５で表される。
【００８９】
〔数５〕
2013110678.tif 000009
【００９０】
ここで、第１のアドレス変換部１００へ第１の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第１の初期設定値保持手段１１０に設定される第１〜第７の初期設定値ｉ１〜ｉ７は各々、（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６、ｉ７）＝（０、０、１、４０９６、１、１、０）となる。
【００９１】
また、第２のアドレス変換部２００ではアドレス変換を行わず、中間アドレスを変化させることなくそのまま出力アドレスとして出力する。従って、第２のアドレス変換部２００に対する第２の設定時では、初期設定値保持手段２１０に対して設定を行わない。即ち、第８〜第１４の初期設定値ｉ８〜ｉ１４は各々、（ｉ８、ｉ９、ｉ１０、ｉ１１、ｉ１２、ｉ１３、ｉ１４）＝（０、０、１、８１００、０、０、０）とした場合と等価である。
【００９２】
また、初期アドレスは、規格に従った線形フィードバックシフトレジスタをベースとした回路によって生成され、１ブロックサイズの初期アドレスが出力される間は値が重複しない。前記のパラメータにおいて、初期アドレスは０以上８１００未満の値である。
【００９３】
このとき、第１のアドレス変換部１００は、入力された初期アドレスと第１の設定に基づいて設定された第１〜第７の初期設定値ｉ１〜ｉ７に基づいてアドレス変換を行い、中間アドレスｆｘを出力する。また、第２のアドレス変換部２００は、中間アドレスｆｘに対して変換を行わず、そのままｆｘ＝ｇｘとして出力アドレスｇｘを出力する。以上のようにして、ＤＶＢ−Ｔ２のセルインタリーブのためのアドレス生成を行うことができる。
【００９４】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るアドレス変換方法は、入力されたデータを一時的に記憶するメモリ１４と、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路１１と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラ１２と、メモリ上にデータを入出力するメモリコントローラ１３とを備えたインタリーブ装置１０にあって、設定コントローラが、アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与え（図５・ステップＳ２５１）、メモリコントローラが、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力し（図５・ステップＳ２５２〜２５３）、第１のアドレス変換部が、初期アドレスに対して第１の設定に応じた処理を行って得られた中間アドレスを出力し（図５・ステップＳ２５４）、第２のアドレス変換部が、中間アドレスに対して第２の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力し（図５・ステップＳ２５５）、メモリコントローラがメモリ上の出力アドレスに記憶されているデータを出力する（図５・ステップＳ２５６）。
【００９５】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するインタリーブ装置１０に実行させるようにしてもよい。また、インタリーブ装置１０そのものを、コンピュータによって仮想的に実現することもできる。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００９６】
以上で説明したように、インタリーブ装置１０は、初期設定値ｉ１〜ｉ１４を変更するのみで、複数のインタリーブ／デインタリーブ方式に対応できる。たとえば、第１の適用例として説明したＩＥＥＥ  ８０２．１１ａだけでなく、ＷｉＭＡＸ（ＩＥＥＥ８０２．１６系）などのような、他の同様のインタリーブ／デインタリーブの処理にも応用することもできる。また、第２の適用例として説明したＤＶＢ−Ｔ２のセルインタリーブだけでなく、他の同様のインタリーブ／デインタリーブにも応用することもできる。
【００９７】
また、インタリーブ装置１０は、ブロックインタリーブの一般式を演算するアドレス変換装置（第１のアドレス変換部１００、第２のアドレス変換部２００）を複数段用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより１つのインタリーブとなっている場合でも、複数回に分けることなく一挙動にインタリーブ用アドレス生成をすることができる。従って、メモリを用いてデータに対して直接インタリーブを行う場合と比較して、回路規模を削減することができる。
【００９８】
ここでは、アドレス変換回路１１をインタリーブ装置１０に適用するという動作例について説明したが、生成した出力アドレスの供給先を読み出し／書き込みアドレスポートのどちらかに変更することで、デインタリーブ装置に適用することもできる。例えば、インタリーブする際にアドレス変換回路１１がメモリ１４に対して書き込みアドレスを供給していたものを、読み出しアドレスを供給するように変更すれば、同一のアドレス変換回路１１を用いてデインタリーブを行うことができる。
【００９９】
また、アドレス変換回路１１はアドレスを所定の規則に基づいて並べ替えるものであるので、インタリーブ装置以外であっても、同様にデータを並び替える装置であれば適用可能である。
【０１００】
（第２の実施形態）
本発明の第２の実施形態に係るインタリーブ装置３１０は、第１の実施形態の構成に加えて、アドレス変換回路１１が、設定コントローラ１２によって与えられた第３の設定に応じて、インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを初期アドレスとして出力する初期アドレス生成部４００を備える構成とした。
【０１０１】
また、この初期アドレス生成部４００は、ブロックサイズの範囲内で各処理ごとに重複しない乱数を発生する乱数生成手段４２０と、ブロックサイズの範囲内で各処理ごとに１ずつ値を変化させたカウント値を発生するカウンタ（Ｎ進カウンタ４１０）と、第３の設定に応じて、発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサ４３０とを有する。
【０１０２】
この構成によって、第１の実施形態によって得られる効果を、初期アドレスをＮ進カウンタもしくは乱数によって生成する必要のあるインタリーブ方式においても得ることもできる。
以下、これについてより詳しく説明する。
【０１０３】
図６は、本発明の第２の実施形態に係るインタリーブ装置３１０の構成について示す説明図である。インタリーブ装置３１０は、前述した第１の実施形態に係るインタリーブ装置１０と比べて、アドレス変換回路１１が別のアドレス変換回路３１１に置換され、さらに初期アドレス生成回路１５が省略されているのみであり、他の構成は同一であるので、同一の要素については同一の呼称と参照番号で示している。
【０１０４】
図７は、図６に示したアドレス変換回路３１１のより詳しい構成を示す説明図である。アドレス変換回路３１１は、前述した第１の実施形態に係るアドレス変換回路１１の備えていた第１のアドレス変換部１００と、第２のアドレス変換部２００とに加えて、新たに初期アドレス生成部４００が追加されている。即ち、第１の実施形態に係るアドレス変換回路１１に入力される入力アドレスは条件が規定されていたのみであったが、本実施形態では第１のアドレス変換部１００に入力される初期アドレスを初期アドレス生成部４００によって生成している。アドレス変換回路３１１は初期アドレス生成部４００を有するので、第１の実施形態にあった初期アドレス生成回路１５を必要とはしない。
【０１０５】
初期アドレス生成部４００は、Ｎ進カウンタ４１０、乱数生成手段４２０、およびマルチプレクサ４３０を備え、マルチプレクサ４３０からの出力値が第１のアドレス変換部１００に入力される初期アドレスとなる。ここで、Ｎはブロックインタリーブのブロックサイズを表す整数であり、上位ＣＰＵ２０から設定コントローラ１２を介して与えられた第３の設定によって設定される。
【０１０６】
Ｎ進カウンタ４１０は、０〜Ｎ−１の範囲のカウント値を出力する。乱数生成手段４２０は０〜Ｎ−１の範囲の乱数を発生する。かつ、乱数生成手段４２０はブロックサイズＮ内では重複した値を生成しない。マルチプレクサ４３０は、Ｎ進カウンタ４１０から出力されたカウント値と、乱数生成手段４２０から出力された乱数とを入力とし、この両者のうちのいずれかを、上位ＣＰＵ２０から設定コントローラ１２を介して与えられた第３の設定に基づいて選択して出力する。
【０１０７】
第１のアドレス変換部１００および第２のアドレス変換部２００の構成は、前述の図１で説明した第１の実施形態と同一である。従って、ここではそれらの構成の概要のみを説明する。第１のアドレス変換部１００は、マルチプレクサ４３０から出力された初期アドレスを入力とし、第１の初期設定値保持手段１１０、第１の演算手段１２０、第２の演算手段１３０、加算器１４０を備え、加算器１４０からの出力値を中間アドレスとして第２のアドレス変換部２００に対して出力する。
【０１０８】
第１の初期設定値保持手段１１０は、設定コントローラ１２からの第１の設定によって設定された、第１〜第７の初期値をあらかじめ記憶する。第１の演算手段１２０は、初期アドレスと第１〜第５の初期設定値を入力とし、第１の演算結果を出力とする。第２の演算手段１３０は、初期アドレスと第６〜第７の初期設定値を入力とし、第２の演算結果を出力とする。
【０１０９】
加算器１４０は、第１の演算結果と第２の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、中間アドレスとなる。第１〜第２の演算手段１２０、１３０のより詳細な構成は、図３〜４に示した第１の実施形態と同一である。
【０１１０】
第２のアドレス変換部２００は、中間アドレスを入力とし、第２の初期設定値保持手段２１０、第３の演算手段２２０、第４の演算手段２３０、加算器２４０を備え、加算器２４０からの出力値を出力アドレスとしてメモリコントローラ１３に対して出力する。
【０１１１】
第２の初期設定値保持手段２１０は、設定コントローラ１２からの第２の設定によって設定された、第８〜第１４の初期値を保持する。第３の演算手段２２０は、中間アドレスと第８〜第１２の初期設定値を入力とし、第３の演算結果を出力とする。第４の演算手段２３０は、中間アドレスと第１３〜第１４の初期設定値を入力とし、第４の演算結果を出力する。
【０１１２】
加算器２４０は、第３の演算結果と第４の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、出力アドレスとなる。第３〜第４の演算手段２２０、２３０のより詳細な構成は、図３〜４に示した第１の実施形態と同一である。
【０１１３】
（第２の実施形態の演算の動作）
以上で説明したアドレス変換回路３１１による演算の動作について説明する。図８は、図６に示したインタリーブ装置３１０によるインタリーブの動作について示すフローチャートである。まず、上位ＣＰＵ２０からのパラメータ設定の操作を受けて、設定コントローラ１２がアドレス変換回路３１１の第１のアドレス変換部１００に第１の設定を、第２のアドレス変換部２００に第２の設定を、そして初期アドレス生成部４００に第３の設定を各々与える（ステップＳ４５１）。
【０１１４】
アドレス変換回路３１１に対する第１〜第３の設定が終了したら、メモリコントローラ１３は外部からインタリーブ対象となるデータの入力を待ち受け（ステップＳ４５２）、データの入力があればそのデータをメモリ１４に保存する（ステップＳ４５３）。
【０１１５】
そして、初期アドレス生成部４００が、与えられた第３の設定に基づいて初期アドレスを生成してこれを第１のアドレス変換部１００に入力し（ステップＳ４５４）、第１のアドレス変換部１００はこの初期アドレスに対して中間アドレスを出力し（ステップＳ４５５）、第２のアドレス変換部２００はこの中間アドレスに対して出力アドレスを出力する（ステップＳ４５６）。そして、メモリコントローラ１３は出力アドレスのデータをメモリ１４から読み出して出力する（ステップＳ４５７）。
【０１１６】
以後、説明を平易なものとするため、加減算器１２４および加減算器２２４は、（加算、加算、減算）の動作を行うよう、設定コントローラ１２によって設定が与えられるものとする。
【０１１７】
まず、上位ＣＰＵ２０から設定コントローラ１２を介して、第１のアドレス変換部１００、第２のアドレス変換部２００、および初期アドレス生成部４００に対して各々第１〜第３の設定を与える。
【０１１８】
これによって、第１の初期設定値保持手段１１０の第１の初期値〜第７の初期値に値が設定され、第２の初期設定値保持手段２１０の第８の初期値〜第１４の初期値に値が設定される。また、加減算器１２４は３入力に対して（加算、加算、減算）を行うように設定される。同様に加減算器２２４も３入力に対して（加算、加算、減算）を行うように設定される。さらに、マルチプレクサ４３０において、２入力あるうちのいずれかを選択し出力するかが設定される。ここではＮ進カウンタ４１０から出力されたカウント値が出力されるように設定されているものとする。
【０１１９】
以上の設定を完了したアドレス変換回路３１１で、アドレス変換処理が開始される。このとき、初期アドレス生成部４００において、Ｎ進カウンタ４１０からマルチプレクサ４３０に対して、０〜Ｎ−１までのカウント値が順に出力され、これが設定によってマルチプレクサ４３０から第１のアドレス変換部１００へ入力される初期アドレスとなる。
【０１２０】
これに続く第１のアドレス変換部１００および第２のアドレス変換部の動作は、第１の実施形態と同一である。以上のようにして第２のアドレス変換部２００から出力された出力アドレスは、インタリーブするデータが保存されたメモリ１４にアクセスするためにメモリコントローラ１３に対して出力されるアドレスとなる。
【０１２１】
初期アドレス生成手段３００、第１のアドレス変換部１００および第２のアドレス変換部２００は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、初期アドレス生成手段３００から初期アドレスが連続して出力されている限りは、本実施形態のインタリーブ装置３１０は出力アドレスを連続して出力することができ、第１の実施形態と同一の効果を得ることができる。
【０１２２】
（第２の実施形態の実際の通信に対する適用例）
以下、インタリーブ装置３１０の実際の通信に対する適用例を２種類挙げて説明する。まず、インタリーブ装置３１０をＩＥＥＥ８０２．１１ａのシンボルインタリーブの処理に適用する場合について説明する。このＩＥＥＥ８０２．１１ａのシンボルインタリーブでは、第１パーミュテーションおよび第２パーミュテーションという２種類の異なった処理を組み合わせて、一つのインタリーブとしている。
【０１２３】
この場合、アドレス変換回路３１１において、第１パーミュテーションの処理に対応するのが第１のアドレス変換部１００であり、第２パーミュテーションの処理に対応するのが第２のアドレス変換部２００である。ここでのパラメータは、インタリーブのブロックサイズＮ＝１９２となり、また変調方式として１６ＱＡＭが使用される。さらに、初期アドレスは０〜１９１まで順に増加していく。
【０１２４】
この時、第１パーミュテーションと第２パーミュテーションの各々のアドレス生成式は、前述の数３〜３と同一の式で表される。従って、第１のアドレス変換部１００への第１の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第１の初期設定値保持手段１１０に設定される第１〜第７の初期設定値ｉ１〜ｉ７は、第１の実施形態と同様に、各々（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６、ｉ７）＝（０、０、１、１６、１２、１６、１）となる。
【０１２５】
また、第２のアドレス変換部２００への第２の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第２の初期設定値保持手段２１０に設定される第８〜第１４の初期設定値ｉ８〜ｉ１４は、第１の実施形態と同様に、各々（ｉ８、ｉ９、ｉ１０、ｉ１１、ｉ１２、ｉ１３、ｉ１４）＝（１２８、１、８、２、１、２、２）となる。
【０１２６】
また、第１の演算手段１２０の加減算器１２４は、上位ＣＰＵ２０から設定コントローラ１２を介して、（加算、加算、減算）という演算を行うように設定される。一方で、第３の演算手段２２０の加減算器２２４は、（加算、加算、減算）という演算を行うように設定される。そして、初期アドレス生成部４００のマルチプレクサ４３０は、Ｎ進カウンタ４１０側の入力を選択して出力するように設定される。
【０１２７】
このとき、第１のアドレス変換部１００は、入力された初期アドレスと第１の設定に基づいて設定された第１から第７の初期設定値に基づいてアドレス変換を行い、中間アドレスを出力する。また、第２のアドレス変換部は、前記の中間アドレスと第２の設定に基づいて設定された第８から第１４の初期設定値に基づいてアドレス変換を行い、出力アドレスを出力する。この具体的な動作は、第１の実施形態と同一である。以上のようにして、ＩＥＥＥ８０２．１１ａのシンボルインタリーブのためのアドレス生成を行うことができる。
【０１２８】
続いて、インタリーブ装置３１０をＤＶＢ−Ｔ２のセルインタリーブの処理に適用する場合を説明する。ＤＶＢ−Ｔ２のセルインタリーブは、線形フィードバックシフトレジスタをベースとした回路によって生成されたランダムな値を初期アドレスとし、そこへシンボル番号に基づいたシフトを組み合わせたインタリーブとなっている。ここで、インタリーブ装置３１０で、基本パーミュテーション関数（basic permutation function）の生成に対応するのが、初期アドレス生成部４００である。
【０１２９】
ここでのパラメータは、インタリーブのブロックサイズＮ＝８１００（＝６４８００／８）、かつセルインタリーブのシフト量は４０９６となる。この時、ＤＶＢ−Ｔ２セルインタリーブのパーミュテーション関数（permutation function）のアドレス生成式は、上述した数５と同一式で表される。
【０１３０】
ここで、第１のアドレス変換部１００へ第１の設定時に、上位ＣＰＵ２０から設定コントローラ１２を介して、第１の初期設定値保持手段１１０に設定される第１〜第７の初期設定値ｉ１〜ｉ７は各々、（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６、ｉ７）＝（０、０、１、４０９６、１、１、０）となる。
【０１３１】
また、第２のアドレス変換部２００ではアドレス変換を行わず、中間アドレスを変化させることなくそのまま出力アドレスとして出力する。従って、第２のアドレス変換部２００に対する第２の設定時では、初期設定値保持手段２１０に対して設定を行わない。即ち、第８〜第１４の初期設定値ｉ８〜ｉ１４は各々、（ｉ８、ｉ９、ｉ１０、ｉ１１、ｉ１２、ｉ１３、ｉ１４）＝（０、０、１、８１００、０、０、０）とした場合と等価である。
【０１３２】
さらに、初期アドレス生成部４００への第３の設定では、上位ＣＰＵ２０から設定コントローラ１２を介して、マルチプレクサ４３０において乱数生成手段４２０側の入力を選択するよう設定される。乱数生成手段４２０では、規格に従った線形フィードバックシフトレジスタをベースとした回路によって乱数が生成される。この乱数は０〜８０９９の範囲内の整数値である。
【０１３３】
このとき、第１のアドレス変換部１００は、入力された初期アドレスと第１の設定に基づいて設定された第１から第７の初期設定値に基づいてアドレス変換を行い、中間アドレスを出力する。また、第２のアドレス変換部は、前記の中間アドレスに対して、変換を行わず、そのまま出力アドレスとして出力する。以上のようにして、ＤＶＢ−Ｔ２のセルインタリーブのためのアドレス生成を行うことができる。
【０１３４】
以上で説明したように、インタリーブ装置３１０は、初期設定値ｉ１〜ｉ１４とマルチプレクサ４３０に対する設定を変更するのみで、複数のインタリーブ／デインタリーブ方式に対応できる。たとえば、第１の適用例として説明したＩＥＥＥ  ８０２．１１ａだけでなく、ＷｉＭＡＸ（ＩＥＥＥ８０２．１６系）などのような、他の同様のインタリーブ／デインタリーブの処理にも応用することもできる。また、第２の適用例として説明したＤＶＢ−Ｔ２のセルインタリーブだけでなく、他の同様のインタリーブ／デインタリーブにも応用することもできる。
【０１３５】
また、インタリーブ装置３１０は、ブロックインタリーブの一般式を演算するアドレス変換装置（第１のアドレス変換部１００、第２のアドレス変換部２００）を複数段用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより１つのインタリーブとなっている場合でも、複数回に分けることなく一挙動にインタリーブ用アドレス生成をすることができる。従って、メモリを用いてデータに対して直接インタリーブを行う場合と比較して、回路規模を削減することができるという、第１の実施形態と同一の効果を得ることができる。
【０１３６】
本実施形態では、以上に示した第１の実施形態と同一の効果を、初期アドレスをＮ進カウンタもしくは乱数によって生成する必要のあるインタリーブ方式においても得ることもできる。
【０１３７】
（第３の実施形態）
本発明の第３の実施形態に係るインタリーブ装置５１０は、第２の実施形態の構成に加えて、アドレス変換回路５１１が、設定コントローラ１２によって与えられた第４の設定に応じて、出力アドレスを最終出力アドレスに変換してこれをメモリコントローラに対して出力するルックアップテーブル部６００を備える構成とした。
【０１３８】
また、このルックアップテーブル部６００は、第４の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段６１０と、出力アドレスからオフセット出力手段から出力されたオフセット値を減算した値を出力する減算器６２０と、設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段６３０と、メモリ手段から出力された値とオフセット出力手段から出力された値とを加算してこれを最終出力アドレスとして出力する加算器６４０とを備える。
【０１３９】
この構成によって、第１〜２の実施形態によって得られる効果を、テーブルを用いる形式のインタリーブを利用する必要のあるインタリーブ方式においても得ることもできる。
以下、これについてより詳しく説明する。
【０１４０】
図９は、本発明の第３の実施形態に係るインタリーブ装置５１０の構成について示す説明図である。インタリーブ装置５１０は、前述した第１の実施形態に係るインタリーブ装置１０と比べて、アドレス変換回路１１が別のアドレス変換回路５１１に置換され、さらに初期アドレス生成回路１５が省略されているのみであり、他の構成は同一であるので、同一の要素については同一の呼称と参照番号で示している。
【０１４１】
図１０は、図９に示したアドレス変換回路５１１のより詳しい構成を示す説明図である。アドレス変換回路５１１は、前述した第２の実施形態に係るアドレス変換回路３１１の備えていた第１のアドレス変換部１００と、第２のアドレス変換部２００と、初期アドレス生成部４００とに加えて、新たにルックアップテーブル部６００が第２のアドレス変換部２００の後段に追加されている。従って、ここでは第１のアドレス変換部１００からの出力を第１の中間アドレス、第２のアドレス変換部２００からの出力を第２の中間アドレスという。ちなみに請求項では、第２のアドレス変換部２００からの出力を出力アドレス、ルックアップテーブル部６００からの出力を最終出力アドレスとしている。アドレス変換回路５１１は初期アドレス生成部４００を有するので、第１の実施形態にあった初期アドレス生成回路１５を必要とはしない。
【０１４２】
ルックアップテーブル部６００は、第２のアドレス変換部２００から出力された第２の中間アドレスを入力とし、オフセット出力手段６１０、減算器６２０、メモリ手段６３０、加算器６４０を備え、加算器６４０からの出力値を出力アドレスとしてメモリコントローラ１３に対して出力する。
【０１４３】
オフセット出力手段６１０は設定コントローラ１２からの第４の設定によって設定された、オフセット値を出力する。減算器６２０は第２の中間アドレスとオフセット出力手段６１０から出力されたオフセット値とを入力とし、その減算結果を出力する。メモリ手段６３０は、設定コントローラ１２からの第４の設定によって予め値を記憶されており、減算器６２０からの出力を入力アドレスとして、そのアドレスに保管されている値を出力とする。加算器６４０は、メモリ手段６３０からの出力とオフセット出力手段６１０からの出力とを入力とし、その加算結果を出力アドレスとして出力する。
【０１４４】
これ以外の、第１のアドレス変換部１００、第２のアドレス変換部２００、初期アドレス生成部４００の各々の構成は、前述の図１および図７で説明した第１〜２の実施形態と同一であるので、ここではそれらの概要のみを説明する。
【０１４５】
初期アドレス生成部４００は、Ｎ進カウンタ４１０、乱数生成手段４２０、およびマルチプレクサ４３０を備え、マルチプレクサ４３０からの出力値が第１のアドレス変換部１００に入力される初期アドレスとなる。ここで、Ｎはブロックインタリーブのブロックサイズを表す整数であり、上位ＣＰＵ２０から設定コントローラ１２を介して与えられた第３の設定によって設定される。
【０１４６】
Ｎ進カウンタ４１０は、０〜Ｎ−１の範囲のカウント値を出力する。乱数生成手段４２０は０〜Ｎ−１の範囲の乱数を発生する。かつ、乱数生成手段４２０はブロックサイズＮ内では重複した値を生成しない。マルチプレクサ４３０は、Ｎ進カウンタ４１０から出力されたカウント値と、乱数生成手段４２０から出力された乱数とを入力とし、この両者のうちのいずれかを、上位ＣＰＵ２０から設定コントローラ１２を介して与えられた第３の設定に基づいて選択して出力する。
【０１４７】
第１のアドレス変換部１００は、マルチプレクサ４３０から出力された初期アドレスを入力とし、第１の初期設定値保持手段１１０、第１の演算手段１２０、第２の演算手段１３０、加算器１４０を備え、加算器１４０からの出力値を第１の中間アドレスとして第２のアドレス変換部２００に対して出力する。
【０１４８】
第１の初期設定値保持手段１１０は、設定コントローラ１２からの第１の設定によって設定された、第１〜第７の初期値をあらかじめ記憶する。第１の演算手段１２０は、初期アドレスと第１〜第５の初期設定値を入力とし、第１の演算結果を出力とする。第２の演算手段１３０は、初期アドレスと第６〜第７の初期設定値を入力とし、第２の演算結果を出力とする。
【０１４９】
加算器１４０は、第１の演算結果と第２の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、第１の中間アドレスとなる。第１〜第２の演算手段１２０、１３０のより詳細な構成は、図３〜４に示した第１の実施形態と同一である。
【０１５０】
第２のアドレス変換部２００は、中間アドレスを入力とし、第２の初期設定値保持手段２１０、第３の演算手段２２０、第４の演算手段２３０、加算器２４０を備え、加算器２４０からの出力値を第２の中間アドレスとしてルックアップテーブル部６００に対して出力する。
【０１５１】
第２の初期設定値保持手段２１０は、設定コントローラ１２からの第２の設定によって設定された、第８〜第１４の初期値を保持する。第３の演算手段２２０は、中間アドレスと第８〜第１２の初期設定値を入力とし、第３の演算結果を出力とする。第４の演算手段２３０は、中間アドレスと第１３〜第１４の初期設定値を入力とし、第４の演算結果を出力する。
【０１５２】
加算器２４０は、第３の演算結果と第４の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、第２の中間アドレスとなる。第３〜第４の演算手段２２０、２３０のより詳細な構成は、図３〜４に示した第１の実施形態と同一である。
【０１５３】
（第３の実施形態の演算の動作）
以上で説明したアドレス変換回路５１１による演算の動作について説明する。図１１は、図９に示したインタリーブ装置５１０によるインタリーブの動作について示すフローチャートである。まず、上位ＣＰＵ２０からのパラメータ設定の操作を受けて、設定コントローラ１２がアドレス変換回路５１１の第１のアドレス変換部１００に第１の設定を、第２のアドレス変換部２００に第２の設定を、初期アドレス生成部４００に第３の設定を、そしてルックアップテーブル部６００に第４の設定を、各々与える（ステップＳ６５１）。
【０１５４】
アドレス変換回路５１１に対する第１〜第４の設定が終了したら、メモリコントローラ１３は外部からインタリーブ対象となるデータの入力を待ち受け（ステップＳ６５２）、データの入力があればそのデータをメモリ１４に保存する（ステップＳ６５３）。
【０１５５】
そして、初期アドレス生成部４００が、与えられた第３の設定に基づいて初期アドレスを生成してこれを第１のアドレス変換部１００に入力し（ステップＳ６５４）、第１のアドレス変換部１００はこの初期アドレスに対して第１の中間アドレスを出力し（ステップＳ６５５）、第２のアドレス変換部２００はこの第１の中間アドレスに対して第２の中間アドレスを出力する（ステップＳ６５６）。
【０１５６】
そして、ルックアップテーブル部６００が、この第２の中間アドレスに対応する出力アドレスを出力し（ステップＳ６５７）、メモリコントローラ１３は出力アドレスのデータをメモリ１４から読み出して出力する（ステップＳ６５８）。
【０１５７】
以後、説明を平易なものとするため、加減算器１２４および加減算器２２４は、（加算、加算、減算）の動作を行うよう、設定コントローラ１２によって設定が与えられるものとする。
【０１５８】
まず、上位ＣＰＵ２０から設定コントローラ１２を介して、第１のアドレス変換部１００、第２のアドレス変換部２００、初期アドレス生成部４００、およびルックアップテーブル部６００に対して各々第１〜第４の設定を与える。
【０１５９】
これによって、第１の初期設定値保持手段１１０の第１の初期値〜第７の初期値に値が設定され、第２の初期設定値保持手段２１０の第８の初期値〜第１４の初期値に値が設定される。また、加減算器１２４は３入力に対して（加算、加算、減算）を行うように設定される。同様に加減算器２２４も３入力に対して（加算、加算、減算）を行うように設定される。
【０１６０】
さらに、マルチプレクサ４３０において、２入力あるうちのいずれかを選択し出力するかが設定される。ここではＮ進カウンタ４１０から出力されたカウント値が出力されるように設定されているものとする。そして、メモリ手段６３０には、入力アドレスを出力アドレスに変換するためのインタリーブ方式に対応したパターンを予め記憶する。
【０１６１】
以上の設定を完了したアドレス変換回路５１１で、アドレス変換処理が開始される。このとき、初期アドレス生成部４００において、Ｎ進カウンタ４１０からマルチプレクサ４３０に対して、０〜Ｎ−１までのカウント値が順に出力され、これが設定によってマルチプレクサ４３０から第１のアドレス変換部１００へ入力される初期アドレスとなる。
【０１６２】
これに続く第１のアドレス変換部１００および第２のアドレス変換部の動作は、第１の実施形態と同一である。以上のようにして、第２のアドレス変換部２００から第２の中間アドレスがルックアップテーブル部６００に対して出力される。
【０１６３】
ルックアップテーブル部６００で、オフセット出力手段６１０は第２の中間アドレスが第４の設定によって規定された回数入力される毎にその値が増加するオフセット値を出力する。減算器６２０は第２の中間アドレスからオフセット値を減算して出力し、それがメモリ手段６３０への読み出しアドレスとなる。
【０１６４】
メモリ手段６３０は、入力された読み出しアドレスに保持する変換後のアドレス値を出力する。加算器６４０は、メモリ手段６３０からの出力とオフセット値とを加算し、その加算結果を出力アドレスとして出力する。以上のようにしてルックアップテーブル部６００から出力された出力アドレスは、インタリーブするデータが保存されたメモリ１４にアクセスするためにメモリコントローラ１３に対して出力されるアドレスとなる。
【０１６５】
初期アドレス生成手段３００、第１のアドレス変換部１００、第２のアドレス変換部２００、およびルックアップテーブル部６００は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、初期アドレス生成手段３００から初期アドレスが連続して出力されている限りは、本実施形態のインタリーブ装置５１０は出力アドレスを連続して出力することができ、第１の実施形態と同一の効果を得ることができる。
【０１６６】
本実施形態では、ルックアップテーブル部６００を追加で備えることで、テーブルを用いる形式のインタリーブが組み合わされている場合でも、メモリへのアクセス回数を１回で済ませることができる。従って、本構成を用いることで、すべての入出力パターンをメモリに保存しておき、そのパターンを用いて１回のメモリアクセスで済ませる場合よりも、回路規模を削減することができる。即ち、テーブルを用いる形式のインタリーブを利用する場合においても、第１〜２の実施形態と同一の効果を得ることができる。
【０１６７】
（第３の実施形態の実際の通信に対する適用例）
以下、インタリーブ装置５１０の実際の通信に対する適用例として、インタリーブ装置５１０をＩＳＤＢ−Ｔの周波数インタリーブの処理に適用する場合について説明する。前述のように、ＩＳＤＢ−Ｔの周波数インタリーブは、セグメント間インタリーブ、セグメント内キャリアローテーション、セグメント内キャリアランダマイズの３種類の異なった処理が組み合わさることにより、一つのインタリーブとなっている。
【０１６８】
このとき、本実施形態にかかるインタリーブ装置５１０で、セグメント間インタリーブの処理に対応するのが第１のアドレス変換部１００であり、セグメント内キャリアローテーションに対応するのが第２のアドレス変換部２００であり、セグメント内キャリアランダマイズに対応するのがルックアップテーブル部６００である。また、初期アドレスは、０〜Ｎ−１の範囲で１ずつ順に増加していく。
【０１６９】
ここでのパラメータは、インタリーブのブロックサイズＮ＝３８４×１２＝４６０８である。また、周波数インタリーブはモード３の同期変調部に対して行われる。この時、セグメント間インタリーブのアドレス生成式は、以下の数６で示される。また、セグメント内キャリアローテーションのアドレス生成式は、以下の数７で示される。なお、セグメント内キャリアランダマイズに関しては、テーブルを用いるので、特に生成式はない。
【０１７０】
〔数６〕
2013110678.tif 000010
【０１７１】
〔数７〕
2013110678.tif 000011
【０１７２】
ここで、上位ＣＰＵ２０から設定コントローラ１２を介して行われる第１から第４の設定は、まず初期アドレス生成手段４００への第３の設定で、マルチプレクサ４３０においてＮ進カウンタ４１０側の入力が選択される（Ｎ＝４６０８）。そして、第１のアドレス変換部１００への第１の設定で、第１の初期設定値保持手段１１０に設定される第１〜第７の初期設定値ｉ１〜ｉ７は各々、（ｉ１、ｉ２、ｉ３、ｉ４、ｉ５、ｉ６、ｉ７）＝（０、０、１、１２、３８４、１２、１）となる。
【０１７３】
また、第２のアドレス変換部２００への第２の設定で、第２の初期設定値保持手段２１０に設定される第８〜第１４の初期設定値ｉ８〜ｉ１４は各々、（ｉ８、ｉ９、ｉ１０、ｉ１１、ｉ１２、ｉ１３、ｉ１４）＝（０、１、３８４、３８４、１、３８４、３８４）となる。
【０１７４】
さらに、第１の演算手段１２０の加減算器１２４は、その３入力に対して（加算、加算、加算）の演算を行うよう設定される。同様に、第３の演算手段２２０の加減算器２２４は、その３入力に対して（加算、加算、加算）の演算を行うよう設定される。そして、ルックアップテーブル部６００への第４の設定で、１セグメント（＝３８４キャリア）分のアドレスの入出力パターンが入力され、メモリ手段６３０に記憶される。また、初期アドレスは、０〜４６０７まで過不足なく順に入力されるものとする。
【０１７５】
このとき、第１のアドレス変換部１００は、入力された初期アドレスと第１の設定に基づいて設定された第１〜第７の初期設定値ｉ１〜ｉ７に基づいてアドレス変換を行い、第１の中間アドレスを出力する。また、第２のアドレス変換部は、前記の第１の中間アドレスと第２の設定に基づいて設定された第８〜第１４の初期設定値ｉ８〜ｉ１４に基づいてアドレス変換を行い、第２の中間アドレスを出力する。
【０１７６】
そして、ルックアップテーブル部６００のオフセット出力手段６１０から出力されるオフセット値は、第２の中間アドレスがルックアップテーブル部に３８４回入力される毎に１回、３８４だけ値が増加する。以上のようにして、ＩＳＤＢ−Ｔの周波数インタリーブのためのアドレス生成を行うことができる。
【０１７７】
従来技術では、これと同じ周波数インタリーブを行うためには、少なくとも全サブキャリア数（＝４６０８本）分の入出力パターンを保管できるメモリが必要であった。これに対して、本実施例のインタリーブ装置５１０では、１セグメント（＝３８４キャリア）分の入出力パターンを記憶できればよい。即ち、メモリ手段６３０の容量を１／１２とすることができるので、結果として、回路規模を削減することができる。
【０１７８】
以上で述べたように、本実施形態では、第１〜２の実施形態と同一の効果を、テーブルを用いる形式のインタリーブを利用する場合においても得ることもできる。さらに、小規模なテーブルを組み合わせて用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより１つのインタリーブとなっている場合でも、１回のメモリアクセスで済ませることができる。従って、メモリを用いて１回のメモリアクセスで済ませる場合よりも回路規模を削減することができる。
【０１７９】
ここでは、アドレス変換回路５１１をインタリーブ装置５１０に適用するという動作例について説明したが、生成した出力アドレスの供給先を読み出し／書き込みアドレスポートのどちらかに変更することで、デインタリーブ装置に適用することもできる。例えば、インタリーブする際にアドレス変換回路５１１がメモリ１４に対して書き込みアドレスを供給していたものを、読み出しアドレスを供給するように変更すれば、同一のアドレス変換回路１１を用いてデインタリーブを行うことができる。
【０１８０】
また、アドレス変換回路５１１はアドレスを所定の規則に基づいて並べ替えるものであるので、インタリーブ装置以外であっても、同様にデータを並び替える装置であれば適用可能である。
【０１８１】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１８２】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１８３】
（付記１）  入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上の前記インタリーブの処理をされたアドレスに記憶された前記データを出力するメモリコントローラとを備えたインタリーブ装置であって、
前記アドレス変換回路が、
入力された初期アドレスに対して前記設定コントローラによって与えられた第１の設定に応じた処理を行って得られた中間アドレスを出力する第１のアドレス変換部と、
前記中間アドレスに対して前記設定コントローラによって与えられた第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに対して出力する第２のアドレス変換部と
を備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とするインタリーブ装置。
【０１８４】
（付記２）  前記第１のアドレス変換部が、
前記第１の設定によって与えられた複数個の初期設定値を記憶する第１の初期設定値保持手段と、
前記初期アドレスと前記初期設定値とを前記第１の設定によって与えられた演算規則に従って演算する第１の演算手段と、
前記初期アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第２の演算手段と、
前記第１および第２の演算手段からの出力を加算してこれを前記中間アドレスとして出力する第１の加算器
とを備えると共に、
前記第２のアドレス変換部が、
前記第２の設定によって与えられた複数個の初期設定値を記憶する第２の初期設定値保持手段と、
前記中間アドレスと前記初期設定値とを前記第２の設定によって与えられた演算規則に従って演算する第３の演算手段と、
前記中間アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第４の演算手段と、
前記第３および第４の演算手段からの出力を加算してこれを前記出力アドレスとして出力する第２の加算器
とを備えることを特徴とする、付記１に記載のインタリーブ装置。
【０１８５】
（付記３）  前記第１のアドレス変換部の前記第１の演算手段が、前記初期アドレスと前記第１の初期設定値保持手段に記憶された第１ないし第５の前記初期設定値とを前記第１の設定によって与えられた演算規則に従って演算し、
前記第２の演算手段が、前記初期アドレスと前記第１の初期設定値保持手段に記憶された第６および第７の前記初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、
前記第２のアドレス変換部の前記第３の演算手段が、前記初期アドレスと前記第２の初期設定値保持手段に記憶された第８ないし第１２の前記初期設定値とを前記第２の設定によって与えられた演算規則に従って演算し、
前記第４の演算手段が、前記初期アドレスと前記第２の初期設定値保持手段に記憶された第１３および第１４の前記初期設定値とをあらかじめ与えられた演算規則に従って演算する
ことを特徴とする、付記２に記載のインタリーブ装置。
【０１８６】
（付記４）  前記第１ないし第７の初期設定値を各々ｉ１〜ｉ７とし、前記初期アドレスおよび中間アドレスを各々ｘおよびｆｘとすると、前記第１のアドレス変換部は前記初期アドレスを
2013110678.tif 000012
の式で示される演算によって前記中間アドレスに変換し、
前記第８ないし第１４の初期設定値を各々ｉ８〜ｉ１４とし、前記中間アドレスおよび出力アドレスを各々ｆｘおよびｇｘとすると、前記第２のアドレス変換部は前記中間アドレスを
2013110678.tif 000013
の式で示される演算によって前記出力アドレスに変換することを特徴とする、付記３に記載のインタリーブ装置。
【０１８７】
（付記５）  前記アドレス変換回路が、前記設定コントローラによって与えられた第３の設定に応じて、前記インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを前記初期アドレスとして出力する初期アドレス生成部を備えることを特徴とする、付記１に記載のインタリーブ装置。
【０１８８】
（付記６）  前記初期アドレス生成部が、
前記ブロックサイズの範囲内で各処理ごとに重複しない前記乱数を発生する乱数生成手段と、
前記ブロックサイズの範囲内で各処理ごとに１ずつ値を変化させたカウント値を発生するカウンタと、
前記第３の設定に応じて、前記発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサとを有することを特徴とする、付記５に記載のインタリーブ装置。
【０１８９】
（付記７）  前記アドレス変換回路が、前記設定コントローラによって与えられた第４の設定に応じて、前記出力アドレスを最終出力アドレスに変換してこれを前記メモリコントローラに対して出力するルックアップテーブル部を備えることを特徴とする、付記５に記載のインタリーブ装置。
【０１９０】
（付記８）  前記ルックアップテーブル部が、
前記第４の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段と、
前記出力アドレスから前記オフセット出力手段から出力された前記オフセット値を減算した値を出力する減算器と、
前記設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段と、
前記メモリ手段から出力された値と前記オフセット出力手段から出力された値とを加算してこれを前記最終出力アドレスとして出力する加算器と
を備えることを特徴とする、付記７に記載のインタリーブ装置。
【０１９１】
（付記９）  入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記設定コントローラが、前記アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与え、
前記メモリコントローラが、入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力し、
前記第１のアドレス変換部が、前記初期アドレスに対して前記第１の設定に応じた処理を行って得られた中間アドレスを出力し、
前記第２のアドレス変換部が、前記中間アドレスに対して前記第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力し、
前記メモリコントローラが前記メモリ上の前記出力アドレスに記憶されているデータを出力する
ことを特徴とするアドレス変換方法。
【０１９２】
（付記１０）  入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記インタリーブ装置の備えるコンピュータに、
前記アドレス変換回路の第１および第２のアドレス変換部に各々第１および第２の設定を与える手順、
入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力する手順、
前記初期アドレスに対して前記第１の設定に応じた処理を行って得られた中間アドレスを出力する手順、
および前記中間アドレスに対して前記第２の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力する手順
を実行させることを特徴とするアドレス変換プログラム。
【産業上の利用可能性】
【０１９３】
本発明は、データの並び替えを行う装置に対して一般的に適用可能であるが、中でもインタリーブ／デインタリーブ処理を行う装置に適する。特に、通信の高速化および装置の小型化・低価格化・低消費電力化を両立しつつ複数の通信方式に対応すべき分野、たとえば携帯電話端末やスマートホン端末、あるいは地上波デジタルテレビ放送受信機などに適する。
【符号の説明】
【０１９４】
１０、３１０、５１０  インタリーブ装置
１１、３１１、５１１  アドレス変換回路
１２  設定コントローラ
１３  メモリコントローラ
１４  メモリ
１５  初期アドレス生成回路
２０  上位ＣＰＵ
１００  第１のアドレス変換部
１１０  第１の初期設定値保持手段
１２０  第１の演算手段
１２１、１２６、１３３、２２１、２２６、２３３  乗算器
１２２、１３１、２２２、２３１  除算器
１２３、１３２、２２３、２３２  フロア演算器
１２４、２２４  加減算器
１２５、２２５  剰余算器
１３０  第２の演算手段
１４０、２４０  加算器
２００  第２のアドレス変換部
２１０  第２の初期設定値保持手段
２２０  第３の演算手段
２３０  第４の演算手段
４００  初期アドレス生成部
４１０  Ｎ進カウンタ
４２０  乱数生成手段
４３０  マルチプレクサ
６００  ルックアップテーブル部
６１０  オフセット出力手段
６２０  減算器
６３０  メモリ手段
６４０  加算器
【図１】
2013110678.tif 000016
【図２】
2013110678.tif 000017
【図３】
2013110678.tif 000018
【図４】
2013110678.tif 000019
【図５】
2013110678.tif 000020
【図６】
2013110678.tif 000021
【図７】
2013110678.tif 000022
【図８】
2013110678.tif 000023
【図９】
2013110678.tif 000024
【図１０】
2013110678.tif 000025
【図１１】
2013110678.tif 000026