説明

インタリーブ装置、アドレス変換方法およびアドレス変換プログラム

【課題】回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことを可能とするインタリーブ装置等を提供する。
【解決手段】インタリーブ装置10の備えるアドレス変換回路11が、入力された初期アドレスに対して設定コントローラによって与えられた第1の設定に応じた処理を行って得られた中間アドレスを出力する第1のアドレス変換部100と、中間アドレスに対して設定コントローラによって与えられた第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第2のアドレス変換部200とを備え、これによって1つの連続したインタリーブ処理を実行するように構成した。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はインタリーブ装置、アドレス変換方法およびアドレス変換プログラムに関し、特に回路規模を抑制しつつ複数種類のインタリーブ処理を行うことが可能なインタリーブ装置等に関する。
【背景技術】
【0002】
記憶装置やデジタル通信・信号処理においては、それらの信頼性を確保する意味で、伝送されるデータのエラー訂正が必要である。特に最近は、無線通信において高速のデータ伝送が行われることが多くなっているので、エラー訂正処理に係る技術も高度化が求められている。
【0003】
現在広く使われている誤り検出訂正用の符号化方式は、単独のビットに対して散発的に発生するランダム誤りに対しては比較的高い訂正能力を持つ。しかしながら、短い区間に多数の誤りが連続的かつ集中的に発生するバースト誤りに対しては、全体的な誤り率が許容範囲内であっても、検出や訂正が困難であることが多い。具体的には、たとえば自動車のエンジンや特定の電化製品(電子レンジ、ブラウン管など)から発生するインパルス状の雑音や、(特に無線通信において不可避な)信号強度の変動やマルチパスなどが、バースト誤りの発生原因となりやすい。
【0004】
そのようなバースト誤りに対応するために、複数の符号語を並べてそのシンボルを並べ変えることがよく行われている。このような処理をインタリーブという。このインタリーブによって、連続したデータを分散させて、バースト誤りをランダム誤りに変換でき、その結果としてバースト誤りに対する訂正能力を高めることができる。
【0005】
インタリーブを行う場合、一般的には、インタリーブ対象のデータと同規模のメモリにある特定のアドレス列を用いて、対象データを書き込み、または、読み出すことで、データの並び替えを実現する。その並び替えの方法により、ブロックインタリーブ、畳み込みインタリーブなどいくつかの方式に分類できる。ここではブロックインタリーブに着目する。
【0006】
ブロックインタリーブは、主にノーマルインタリーブやランダムインタリーブなどに分類できる。ノーマルインタリーブとは、インタリーブに用いるメモリ領域を2次元配列と見なし、縦方向に順にデータを書き込み、横方向に順に読み出す、縦入れ横出し処理を行うものを指す。さらに、縦入れ横出し処理に加えて、コラム/ロー置換、もしくは、コラムツイストなどの処理を追加する形式のものもある。
【0007】
また、ランダムインタリーブとは、ブロック内に限定してシンボルの並びをランダムに並び換えるものであり、そのランダムな並び替えは、ルックアップテーブルに保管されたランダム値を用いる方式や、M系列による疑似ランダム値を用いる方式などがある。これらのブロックインタリーブは、国内外の地上波デジタルテレビ放送や無線LANなどのような無線データ通信に使用されている。
【0008】
インタリーブは、使用環境の違いにより通信路特性が異なるため、無線通信規格毎にそれぞれ異なる種類のインタリーブ方式が採用されている。1つの無線通信規格の中に複数のインタリーブが含まれる場合がある。また、1つのインタリーブ方式の中に、複数種類のインタリーブを連続して行うことが規定されている場合もある。
【0009】
例えば、非特許文献1に記載されている地上波デジタルテレビ放送の規格であるISDB−T(Integrated Services Digital Broadcasting-Terrestrial)の周波数インタリーブは、セグメント間インタリーブ、セグメント内キャリアローテーション、セグメント内キャリアランダマイズの3種類の異なった処理が組み合わせて、一つの連続したインタリーブとしている。
【0010】
また、非特許文献2に記載されている無線LANの規格であるIEEE(The Institute of Electrical and Electronics Engineers、米国電気電子学会)802.11aのシンボルインタリーブは、第1パーミュテーション(1st permutation)および第2パーミュテーション(2nd permutation)という2種類の異なった処理を組み合わせて一つの連続したインタリーブとしている。
【0011】
このように複数種類のインタリーブを連続して行う場合にも、通信のリアルタイム性を損なわないことは当然必要である。さらに、近年は特にデータの伝送速度の向上が求められている。このため、インタリーブの処理の高速化は、ますますその必要性が高まっている。
【0012】
そのための技術として、特許文献3に記載の技術などでは、インタリーブ前のデータが保存されたメモリから、複数種類の連続したインタリーブをすべて施した状態でデータ読み出しを行うために、処理開始前に予め読み出しアドレスを格納したテーブルを作成しておき、作成されたテーブルにより指定されたアドレスから読み出しを行うことで、一挙動にインタリーブ用アドレスを生成して、メモリへのアクセス回数やインタリーブ処理時間を減らしている。
【0013】
さらに、近年の無線通信システムでは、1つの装置において複数の通信規格に対応するためにマルチモード化が求められており、インタリーブにおいても単一のインタリーブ装置で複数のインタリーブ方式への対応が求められている。これに対して、非特許文献3に記載の技術などでは、インタリーブのアドレス生成式を差分方程式に変形し、その結果の演算を複数の加減算器と累算器の組合せで実現し、アドレス生成を行う方式を用いることで、複数のインタリーブ方式に対応しながらも、回路規模を削減している。
【0014】
他に、これに関連する技術文献として、次の各々がある。その中でも特許文献1には、データ系列を再変調して生成したレプリカ信号を利用して、並列干渉キャンセラの処理遅延を短縮するという受信装置について記載されている。特許文献2には、DVB−T(Digital Video Broadcasting - Terrestrial)などのデジタルテレビ放送に関する規格で、LDPC(低密度パリティ検査)符号化されたOFDM(直交波周波数分割多重)シンボルをサブキャリア信号にマッピングする技術の一例が記載されている。
【0015】
特許文献4には、デジタルテレビ放送などで、OFDM方式で変調された信号を受信して復調する際に使用されるデインタリーブ(インタリーブの逆処理)の一例が記載されている。非特許文献3には、後述のように、インタリーブのアドレス生成に要する演算を主に加減算器と塁算器で実現するという技術が記載されている。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2008−205801号公報
【特許文献2】特開2009−153109号公報
【特許文献3】特許3911401号公報
【特許文献4】特許4152854号公報
【非特許文献】
【0017】
【非特許文献1】規格番号「ARIB−STD−B31」、標準規格名「地上デジタルテレビジョン放送の伝送方式」第1.9版、社団法人電波産業会(ARIB)、平成22年7月15日
【非特許文献2】規格番号「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」
【非特許文献3】Rizwan Asghar and Dake Liu、“Multimode Flex-Interleaver Core for Baseband Processor Platform"、Hindawi Publishing Corporation、Journal of Computer Systems、Networks、and Communications、2010
【発明の概要】
【発明が解決しようとする課題】
【0018】
前述のように、データ通信においては特に、リアルタイム性を損なわないことが当然必要である。近年は特に、データの伝送速度の向上と、複数の通信方式への対応とが強く求められている。なおかつ、装置の小型化・低価格化・低消費電力化は常に求められることであるので、インタリーブ装置においてもその回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、さらにインタリーブを高速に行うことが当然必要となる。
【0019】
しかしながら、前述の特許文献3のように、メモリへのアクセス回数を減らすために予め読み出しアドレスを格納するテーブルを作成しておく方式だと、インタリーブの処理サイズが大きくなった場合に、このテーブルのデータサイズが大きくなり、回路規模の増大を招き、さらに高速化が困難になることが問題となる。
【0020】
また、非特許文献3のように、インタリーブのアドレス生成に要する演算を加減算器と塁算器などによってハードウェア的に実現する方式だと、複数の異なったインタリーブが組み合わされることにより1つのインタリーブとなっている場合にはアドレス生成式を差分方程式で表せないので、組み合わせられた各々のインタリーブをそれぞれ個別に行う必要がある。
【0021】
従って、各々の処理後のデータを一旦メモリに書き出すということを複数回行う必要が生じ、メモリへのアクセス回数が増大し、処理時間が増大することが問題となる。さらに、この方式だと、複数のインタリーブ方式に対応するためには各方式ごとに別個のハードウェアが必要となり、回路規模の抑制が困難である。
【0022】
以上の課題を解決しうる技術は、残る非特許文献1〜2や、特許文献1,2,4にも記載されていない。非特許文献1〜2には、前述のようにインタリーブに関する規格が記載されているに過ぎない。また、特許文献1,2,4に記載された技術は、インタリーブにおける回路規模の抑制や複数のインタリーブ方式への対応を目的とするものではない。
【0023】
本発明の目的は、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことを可能とするインタリーブ装置、アドレス変換方法およびアドレス変換プログラムを提供することにある。
【課題を解決するための手段】
【0024】
上記目的を達成するため、本発明に係るインタリーブ装置は、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上のインタリーブの処理をされたアドレスに記憶されたデータを出力するメモリコントローラとを備えたインタリーブ装置であって、アドレス変換回路が、入力された初期アドレスに対して設定コントローラによって与えられた第1の設定に応じた処理を行って得られた中間アドレスを出力する第1のアドレス変換部と、中間アドレスに対して設定コントローラによって与えられた第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第2のアドレス変換部とを備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とする。
【0025】
上記目的を達成するため、本発明に係るアドレス変換方法は、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上にデータを入出力するメモリコントローラとを備えたインタリーブ装置にあって、設定コントローラが、アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与え、メモリコントローラが、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力し、第1のアドレス変換部が、初期アドレスに対して第1の設定に応じた処理を行って得られた中間アドレスを出力し、第2のアドレス変換部が、中間アドレスに対して第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力し、メモリコントローラがメモリ上の出力アドレスに記憶されているデータを出力することを特徴とする。
【0026】
上記目的を達成するため、本発明に係るアドレス変換プログラムは、入力されたデータを一時的に記憶するメモリと、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、メモリ上にデータを入出力するメモリコントローラとを備えたインタリーブ装置にあって、インタリーブ装置の備えるコンピュータに、アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与える手順、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力する手順、初期アドレスに対して第1の設定に応じた処理を行って得られた中間アドレスを出力する手順、および中間アドレスに対して第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力する手順を実行させることを特徴とする。
【発明の効果】
【0027】
本発明は、上記したように第1および第2の設定に応じて各々動作する第1および第2のアドレス変換部によって初期アドレスを中間アドレスを経て出力アドレスに変換するように構成したので、パイプライン的に連続して処理を行うことが可能となり、また初期設定値に応じて複数種類のインタリーブ方式に対応可能であり、各方式に対応するハードウェアやルックアップテーブルなどを別々に用意する必要はない。
【0028】
これによって、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことが可能であるという、優れた特徴を持つインタリーブ装置、アドレス変換方法およびアドレス変換プログラムを提供することができる。
【図面の簡単な説明】
【0029】
【図1】図2で示したアドレス変換回路のより詳しい構成を示す説明図である。
【図2】本発明の第1の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図3】図1に示した第1の演算手段および第3の演算手段のより詳しい構成について示す説明図である。
【図4】図1に示した第2の演算手段および第4の演算手段のより詳しい構成について示す説明図である。
【図5】図1に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【図6】本発明の第2の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図7】図6に示したアドレス変換回路のより詳しい構成を示す説明図である。
【図8】図6に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【図9】本発明の第3の実施形態に係るインタリーブ装置の構成について示す説明図である。
【図10】図9に示したアドレス変換回路のより詳しい構成を示す説明図である。
【図11】図9に示したインタリーブ装置によるインタリーブの動作について示すフローチャートである。
【発明を実施するための形態】
【0030】
(第1の実施形態)
以下、本発明の実施形態の構成について添付図1〜4に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るインタリーブ装置10は、入力されたデータを一時的に記憶するメモリ14と、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路11と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラ12と、メモリ上のインタリーブの処理をされたアドレスに記憶されたデータを出力するメモリコントローラ13とを備えたインタリーブ装置である。このアドレス変換回路11は、入力された初期アドレスに対して設定コントローラによって与えられた第1の設定に応じた処理を行って得られた中間アドレスを出力する第1のアドレス変換部100と、中間アドレスに対して設定コントローラによって与えられた第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに対して出力する第2のアドレス変換部200とを備え、これによって一つの連続したインタリーブ処理を実行するように構成されている。
【0031】
ここで、第1のアドレス変換部100は、第1の設定によって与えられた複数個の初期設定値を記憶する第1の初期設定値保持手段110と、初期アドレスと初期設定値とを第1の設定によって与えられた演算規則に従って演算する第1の演算手段120と、初期アドレスと初期設定値とをあらかじめ与えられた演算規則に従って演算する第2の演算手段130と、第1および第2の演算手段からの出力を加算してこれを中間アドレスとして出力する第1の加算器140とを備える。これと共に、第2のアドレス変換部200は、第2の設定によって与えられた複数個の初期設定値を記憶する第2の初期設定値保持手段210と、中間アドレスと初期設定値とを第2の設定によって与えられた演算規則に従って演算する第3の演算手段220と、中間アドレスと初期設定値とをあらかじめ与えられた演算規則に従って演算する第4の演算手段230と、第3および第4の演算手段からの出力を加算してこれを出力アドレスとして出力する第2の加算器240とを備える。
【0032】
また、第1のアドレス変換部100の第1の演算手段120が、初期アドレスと第1の初期設定値保持手段110に記憶された第1ないし第5の初期設定値とを第1の設定によって与えられた演算規則に従って演算し、第2の演算手段130が、初期アドレスと第1の初期設定値保持手段110に記憶された第6および第7の初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、第2のアドレス変換部200の第3の演算手段220が、初期アドレスと第2の初期設定値保持手段210に記憶された第8ないし第12の初期設定値とを第2の設定によって与えられた演算規則に従って演算し、第4の演算手段230が、初期アドレスと第2の初期設定値保持手段210に記憶された第13および第14の初期設定値とをあらかじめ与えられた演算規則に従って演算する。
【0033】
さらに、第1ないし第7の初期設定値を各々i1〜i7とし、初期アドレスおよび中間アドレスを各々xおよびfxとすると、第1のアドレス変換部100は初期アドレスを

の式で示される演算によって中間アドレスに変換し、第8ないし第14の初期設定値を各々i8〜i14とし、出力アドレスをgxとすると、第2のアドレス変換部200は中間アドレスを

の式で示される演算によって出力アドレスに変換する。
【0034】
以上の構成を備えることにより、本実施形態に係るインタリーブ装置10は、回路規模を小さく抑制しつつ、複数のインタリーブ方式に対応し、かつインタリーブの処理を高速に行うことが可能なものとなる。
以下、これをより詳細に説明する。
【0035】
図2は、本発明の第1の実施形態に係るインタリーブ装置10の構成について示す説明図である。インタリーブ装置10は、外部装置との間でデータの入出力を行うメモリコントローラ13と、上位CPU20からのパラメータ設定の操作を受けて装置の設定変更を行う設定コントローラ12と、インタリーブの対象となるデータを一時的に記憶するメモリ14と、メモリ14に記憶されたデータのアドレスに対して後述のインタリーブの処理を行って出力するアドレス変換回路11と、アドレスの初期値を生成してアドレス変換回路11に対して出力する初期アドレス生成回路15とで構成される。初期アドレス生成回路15が生成するアドレスの初期値は、たとえば純増値やランダム値など、公知の手法で生成することができる。
【0036】
図1は、図2で示したアドレス変換回路11のより詳しい構成を示す説明図である。アドレス変換回路11は、第1のアドレス変換部100と、第2のアドレス変換部200とを備える。
【0037】
第1のアドレス変換部100は、図2に示された入力データがメモリ14に記憶されたアドレス(これを初期アドレスという)を入力とし、第1の初期設定値保持手段110、第1の演算手段120、第2の演算手段130、加算器140を備え、加算器140からの出力値を中間アドレスとして第2のアドレス変換部200に対して出力する。
【0038】
第1の初期設定値保持手段110は、設定コントローラ12からの第1の設定によって設定された、第1〜第7の初期値をあらかじめ記憶する。第1の演算手段120は、初期アドレスと第1〜第5の初期設定値を入力とし、第1の演算結果を出力とする。第2の演算手段130は、初期アドレスと第6〜第7の初期設定値を入力とし、第2の演算結果を出力とする。加算器140は、第1の演算結果と第2の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、中間アドレスとなる。
【0039】
第2のアドレス変換部200は、中間アドレスを入力とし、第2の初期設定値保持手段210、第3の演算手段220、第4の演算手段230、加算器240を備え、加算器240からの出力値を出力アドレスとしてメモリコントローラ13に対して出力する。
【0040】
第2の初期設定値保持手段210は、設定コントローラ12からの第2の設定によって設定された、第8〜第14の初期値を保持する。第3の演算手段220は、中間アドレスと第8〜第12の初期設定値を入力とし、第3の演算結果を出力とする。第4の演算手段230は、中間アドレスと第13〜第14の初期設定値を入力とし、第4の演算結果を出力する。加算器240は、第3の演算結果と第4の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、出力アドレスとなる。
【0041】
図3は、図1に示した第1の演算手段120および第3の演算手段220のより詳しい構成について示す説明図である。第1の演算手段120と第3の演算手段220は、入出力値が異なるが、回路構成は同一であるので、同一の図によって示す。
【0042】
第1の演算手段120は、前述したように、初期アドレスと第1〜第5の初期設定値とを入力とし、この入力値に対して乗算器121、除算器122、フロア演算器123、加減算器124、剰余算器125、乗算器126によって演算を行い、乗算器126からの出力値を第1の演算結果として出力する。
【0043】
乗算器121は、初期アドレスと第2の初期設定値とを入力とし、その乗算結果を出力とする。除算器122は、乗算器121の出力と第3の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器123は、除算器122の出力を入力とし、その演算結果を出力とする。
【0044】
加減算器124は、初期アドレスと、第1の初期設定値と、フロア演算器123からの出力とを入力とし、その演算結果を出力とする。その際、加減算器124は、設定コントローラ12から与えられた第1の設定により、それらの3つの入力に対して、(加算、加算、減算)か、もしくは、(加算、加算、加算)かのいずれかの演算を行う。
【0045】
剰余算器125は、加減算器124の出力と第4の初期設定値とを入力とし、その演算結果を出力とする。乗算器126は、剰余算器125の出力と第5の初期設定値とを入力とし、その乗算結果を第1の演算結果とする。
【0046】
第3の演算手段220は、第1の演算手段120と同一の回路構成を備え、入出力値が異なる。即ち、第3の演算手段220は、中間アドレスと第8〜第12の初期設定値とを入力とし、この入力値に対して乗算器221、除算器222、フロア演算器223、加減算器224、剰余算器225、乗算器226によって演算を行い、乗算器226からの出力値を第3の演算結果として出力する。
【0047】
乗算器221は、中間アドレスと第9の初期設定値とを入力とし、その乗算結果を出力とする。除算器222は、乗算器221の出力と第10の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器223は、除算器222の出力を入力とし、その演算結果を出力とする。
【0048】
加減算器224は、中間アドレスと、第8の初期設定値と、フロア演算器223からの出力を入力とし、その演算結果を出力とする。その際、加減算器224は、設定コントローラ12から与えられた第2の設定により、それらの3つの入力に対して、(加算、加算、減算)か、もしくは、(加算、加算、加算)かのいずれかの演算を行う。
【0049】
剰余算器225は、加減算器224の出力と第11の初期設定値とを入力とし、その演算結果を出力とする。乗算器226は、剰余算器225の出力と第12の初期設定値とを入力とし、その乗算結果を第3の演算結果とする。
【0050】
図4は、図1に示した第2の演算手段130および第4の演算手段230のより詳しい構成について示す説明図である。第2の演算手段130と第4の演算手段230は、入出力値が異なるが、回路構成は同一であるので、同一の図によって示す。
【0051】
第2の演算手段130は、初期アドレスと第6〜第7の初期設定値とを入力とし、この入力値に対して除算器131、フロア演算器132、乗算器133によって演算を行い、乗算器133からの出力値を第2の演算結果として出力する。
【0052】
除算器131は、初期アドレスと第6の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器132は、除算器131の出力を入力とし、その演算結果を出力とする。乗算器133は、フロア演算器132の出力と第7の初期設定値とを入力とし、その乗算結果を第2の演算結果とする。
【0053】
第4の演算手段230は、中間アドレスと第13〜第14の初期設定値とを入力とし、この入力値に対して除算器231、フロア演算器232、乗算器233によって演算を行い、乗算器233からの出力値を第4の演算結果として出力する。
【0054】
除算器231は、中間アドレスと第13の初期設定値とを入力とし、その除算結果を出力とする。フロア演算器232は、除算器231の出力を入力とし、その演算結果を出力とする。乗算器233は、フロア演算器232の出力と第14の初期設定値とを入力とし、その乗算結果を第4の演算結果とする。
【0055】
(第1の実施形態の演算の動作)
以上で説明したアドレス変換回路11による演算の動作について説明する。図5は、図1に示したインタリーブ装置10によるインタリーブの動作について示すフローチャートである。まず、上位CPU20からのパラメータ設定の操作を受けて、設定コントローラ12がアドレス変換回路11の第1のアドレス変換部100に第1の設定を、そして第2のアドレス変換部200に第2の設定を与える(ステップS251)。
【0056】
アドレス変換回路11に対する第1および第2の設定が終了したら、メモリコントローラ13は外部からインタリーブ対象となるデータの入力を待ち受け(ステップS252)、データの入力があればそのデータをメモリ14に保存する(ステップS253)。
【0057】
そして、保存された対象データの保存されたメモリ14上のアドレスが、アドレス変換回路11に初期アドレスとして入力され、第1のアドレス変換部100はこの初期アドレスに対して中間アドレスを出力し(ステップS254)、第2のアドレス変換部200はこの中間アドレスに対して出力アドレスを出力する(ステップS255)。そして、メモリコントローラ13は出力アドレスのデータをメモリ14から読み出して出力する(ステップS256)。
【0058】
以上の動作の前提から説明する。ブロックインタリーブ処理は、複数の種類をまとめて、次の数1のように表現される。ここで、xはインタリーブされるブロックの系列の番号を示し、fxは系列のx番目の出力されるアドレスを示す。また、i1〜i7は各通信規格に応じて設定される初期設定値を示す。%は剰余演算子であり、「A%B」は数値Aを数値Bで割った余りを表す。また、[]の上部が欠けた形の記号はフロア演算子(床演算子)である。
【0059】
〔数1〕

即ち、初期アドレスをxとすると、fxは中間アドレスとなり、i1〜i7は第1のアドレス変換部100に対して第1の設定で与えられる第1〜第7の初期値となり、上記の数1は第1のアドレス変換部100で行われる処理を表す。
【0060】
また、gxを出力アドレスとし、i8〜i14を第2のアドレス変換部200に対して第2の設定で与えられる第8〜第14の初期値とすると、第2のアドレス変換部200で行われる処理は、上記数1の変数のみを入れ替えた、以下の数2で表される。
【0061】
〔数2〕

【0062】
アドレス変換回路11は、図5にも示したように、まずパラメータの設定を行い(ステップS251)、次にそのパラメータに基づいて動作する(ステップS252以降)という2つのフェーズによって動作する。以後、説明を平易なものとするため、加減算器124および加減算器224は、(加算、加算、減算)の動作を行うよう、第1および第2の設定によって設定コントローラ12によって設定が与えられるものとする。
【0063】
まず、上位CPU20から設定コントローラ12を介して、第1のアドレス変換部100および第2のアドレス変換部200に対して第1および第2の設定を与える。これによって、第1の初期設定値保持手段110の第1の初期値〜第7の初期値に値が設定され、第2の初期設定値保持手段210の第8の初期値〜第14の初期値に値が設定される。また、加減算器124は3入力に対して(加算、加算、減算)を行うように設定される。同様に加減算器224も3入力に対して(加算、加算、減算)を行うように設定される。
【0064】
ここで、第1の初期設定値保持手段110における第1〜第7の初期値は、上記数1のi1〜i7に各々対応し、第2の初期設定値保持手段210における第8〜第14の初期値も、上記数2のi8〜i14に各々対応する。
【0065】
以上の設定を完了した第1のアドレス変換部100に対して、初期アドレスが入力される。入力される初期アドレスは、ブロックインタリーブの1ブロック個数分のアドレスが過不足なく順次入力されるものである。第1のアドレス変換部100に入力された初期アドレスは、第1の演算手段120と第2の演算手段130に入力される。第1の初期設定値保持手段110は、第1〜第5の初期設定値(i1〜i5)を第1の演算手段120に出力し、第6〜第7の初期設定値(i6〜i7)を第2の演算手段130に出力する。
【0066】
第1の演算手段120において、乗算器121は、入力された初期アドレスと第2の初期設定値(i2)とを乗算し、その乗算結果を出力する。除算器122は、乗算器121からの出力を第3の初期設定値(i3)で除算し、その除算結果を出力する。フロア演算器123は、除算器122からの出力に対してフロア演算を行い、その演算結果を出力する。
【0067】
加減算器124は、初期アドレス、第1の初期設定値(i1)、フロア演算器123からの出力に対して(加算、加算、減算)の加減算を行い、その演算結果を出力する。剰余算器125は、加減算器124からの出力を第4の初期設定値(i4)で剰余演算を行い、その演算結果を出力する。乗算器126は、剰余算器125からの出力と第5の初期設定値(i5)とを乗算し、その乗算結果を第1の演算結果として出力する。
【0068】
一方、第2の演算手段130において、除算器131は、入力された初期アドレスを第6の初期設定値(i6)で除算し、その除算結果を出力する。フロア演算器132は、除算器131からの出力に対してフロア演算を行い、その演算結果を出力する。乗算器133は、フロア演算器132からの出力と第7の初期設定値(i7)とを乗算し、その乗算結果を第2の演算結果として出力する。
【0069】
加算器140は上記の第1の演算結果と第2の演算結果とを加算し、中間アドレスとして出力する。出力された中間アドレスは、第2のアドレス変換部200へ入力される。
【0070】
第2のアドレス変換部200に入力された中間アドレスは、第3の演算手段220と第4の演算手段230に入力される。第2の初期設定値保持手段210は、第8〜第12の初期設定値(i8〜i12)を第3の演算手段220に出力し、第13〜第14の初期設定値(i13〜i4)を第4の演算手段230に出力する。
【0071】
第3の演算手段220において、乗算器221は、入力された中間アドレスと第9の初期設定値(i9)を乗算し、その乗算結果を出力する。除算器222は、乗算器221からの出力を第10の初期設定値(i10)で除算し、その除算結果を出力する。フロア演算器223は、除算器222からの出力に対してフロア演算を行い、その演算結果を出力する。
【0072】
加減算器224は、中間アドレス、第8の初期設定値(i8)、フロア演算器223からの出力に対して(加算、加算、減算)の加減算を行い、その演算結果を出力する。剰余算器225は、加減算器224からの出力を第11の初期設定値(i11)で剰余演算を行い、その演算結果を出力する。乗算器226は、剰余算器225からの出力と第12の初期設定値(i12)を乗算し、その乗算結果を第3の演算結果として出力する。
【0073】
一方、第4の演算手段230において、除算器231は、中間アドレスを第13の初期設定値(i13)で除算し、その除算結果を出力する。フロア演算器232は、除算器231からの出力に対してフロア演算を行い、その演算結果を出力する。乗算器233は、フロア演算器232からの出力と第14の初期設定値(i14)を乗算し、その乗算結果を第4の演算結果として出力する。
【0074】
加算器240は上記の第3の演算結果と第4の演算結果とを加算し、出力アドレスとして出力する。
【0075】
以上のようにして第2のアドレス変換部200から出力された出力アドレスは、インタリーブする対象のデータが保存されたメモリ14にアクセスするためにメモリコントローラ13に対して出力されるアドレスとなる。第1のアドレス変換部100と第2のアドレス変換部200は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、第1のアドレス変換部100に初期アドレスが連続して入力されている限りは、図5のフローチャートにもあるように、本実施形態のインタリーブ装置10は、インタリーブの処理を連続的に行うことが可能である。
【0076】
即ち、インタリーブ装置10はデータ自体をインタリーブするのではなく、メモリ14にアクセスするために用いられるアドレスに対して上記で示した処理を行い、それによって変換された出力アドレスのデータをメモリ14から読み出して、これによってインタリーブの処理を実現している。
【0077】
その結果、メモリ14へはインタリーブされた後のアドレスが供給されることになるため、複数の処理が組み合わさったインタリーブでも、メモリへのアクセス回数が1回で済むことになる。即ち、メモリ14へのアクセス回数を減らし、また連続して入力される初期アドレスに対してパイプライン的に連続して処理を続けることができるので、処理にかかる負荷や時間を軽減することができる。
【0078】
(第1の実施形態の実際の通信に対する適用例)
以下、インタリーブ装置10の実際の通信に対する適用例を2種類挙げて説明する。まず、インタリーブ装置10をIEEE802.11aのシンボルインタリーブの処理に適用する場合について説明する。このIEEE802.11aのシンボルインタリーブでは、前述のように第1パーミュテーションおよび第2パーミュテーションという2種類の異なった処理を組み合わせて、一つのインタリーブとしている。
【0079】
この場合、アドレス変換回路11において、第1パーミュテーションの処理に対応するのが第1のアドレス変換部100であり、第2パーミュテーションの処理に対応するのが第2のアドレス変換部200である。ここでのパラメータは、インタリーブのブロックサイズN=192となり、また変調方式として16QAMが使用される。
【0080】
この時、第1パーミュテーションと第2パーミュテーションの各々のアドレス生成式は、以下の数3〜3で表される。fxは、入力された初期アドレスxに対して第1のアドレス変換部100が出力する中間アドレスである。そしてgxは、入力された中間アドレスfxに対して第2のアドレス変換部200が出力する出力アドレスである。
【0081】
〔数3〕

【0082】
〔数4〕

【0083】
ここで、第1のアドレス変換部100への第1の設定時に、上位CPU20から設定コントローラ12を介して、第1の初期設定値保持手段110に設定される第1〜第7の初期設定値i1〜i7は各々、(i1、i2、i3、i4、i5、i6、i7)=(0、0、1、16、12、16、1)となる。
【0084】
そして、第2のアドレス変換部200への第2の設定時に、上位CPU20から設定コントローラ12を介して、第2の初期設定値保持手段210に設定される第8〜第14の初期設定値i8〜i14は各々、(i8、i9、i10、i11、i12、i13、i14)=(128、1、8、2、1、2、2)となる。
【0085】
また、第1の演算手段120の加減算器124は、上位CPU20から設定コントローラ12を介して、(加算、加算、減算)という演算を行うように設定される。一方で、第3の演算手段220の加減算器224は、(加算、加算、減算)という演算を行うように設定される。また、初期アドレスxは、0から191まで過不足なく順に入力される。
【0086】
このとき、第1のアドレス変換部100は、入力された初期アドレスxと第1の設定に基づいて設定された第1〜第7の初期設定値i1〜i7に基づいてアドレス変換を行い、中間アドレスfxを出力する。また、第2のアドレス変換部200は、中間アドレスfxと第2の設定に基づいて設定された第8〜第14の初期設定値i8〜i14に基づいてアドレス変換を行い、出力アドレスgxを出力する。以上のようにして、IEEE802.11aのシンボルインタリーブのためのアドレス生成を行うことができる。
【0087】
続いて、インタリーブ装置10をDVB−T2のセルインタリーブの処理に適用する場合について説明する。DVB−T2のセルインタリーブは、線形フィードバックシフトレジスタをベースとした回路によって生成されたランダムな値を初期アドレスとし、そこへシンボル番号に基づいたシフトを組み合わせたインタリーブとなっている。
【0088】
ここでのパラメータは、インタリーブのブロックサイズN=8100(=64800/8)、かつセルインタリーブのシフト量は4096となる。この時、DVB−T2セルインタリーブのパーミュテーション関数(permutation function)のアドレス生成式は、以下の数5で表される。
【0089】
〔数5〕

【0090】
ここで、第1のアドレス変換部100へ第1の設定時に、上位CPU20から設定コントローラ12を介して、第1の初期設定値保持手段110に設定される第1〜第7の初期設定値i1〜i7は各々、(i1、i2、i3、i4、i5、i6、i7)=(0、0、1、4096、1、1、0)となる。
【0091】
また、第2のアドレス変換部200ではアドレス変換を行わず、中間アドレスを変化させることなくそのまま出力アドレスとして出力する。従って、第2のアドレス変換部200に対する第2の設定時では、初期設定値保持手段210に対して設定を行わない。即ち、第8〜第14の初期設定値i8〜i14は各々、(i8、i9、i10、i11、i12、i13、i14)=(0、0、1、8100、0、0、0)とした場合と等価である。
【0092】
また、初期アドレスは、規格に従った線形フィードバックシフトレジスタをベースとした回路によって生成され、1ブロックサイズの初期アドレスが出力される間は値が重複しない。前記のパラメータにおいて、初期アドレスは0以上8100未満の値である。
【0093】
このとき、第1のアドレス変換部100は、入力された初期アドレスと第1の設定に基づいて設定された第1〜第7の初期設定値i1〜i7に基づいてアドレス変換を行い、中間アドレスfxを出力する。また、第2のアドレス変換部200は、中間アドレスfxに対して変換を行わず、そのままfx=gxとして出力アドレスgxを出力する。以上のようにして、DVB−T2のセルインタリーブのためのアドレス生成を行うことができる。
【0094】
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るアドレス変換方法は、入力されたデータを一時的に記憶するメモリ14と、メモリ上にデータが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路11と、アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラ12と、メモリ上にデータを入出力するメモリコントローラ13とを備えたインタリーブ装置10にあって、設定コントローラが、アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与え(図5・ステップS251)、メモリコントローラが、入力されたデータをメモリに保存すると共にデータの保存されたメモリ上のアドレスを初期アドレスとしてアドレス変換回路に入力し(図5・ステップS252〜253)、第1のアドレス変換部が、初期アドレスに対して第1の設定に応じた処理を行って得られた中間アドレスを出力し(図5・ステップS254)、第2のアドレス変換部が、中間アドレスに対して第2の設定に応じた処理を行って得られた出力アドレスをメモリコントローラに出力し(図5・ステップS255)、メモリコントローラがメモリ上の出力アドレスに記憶されているデータを出力する(図5・ステップS256)。
【0095】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するインタリーブ装置10に実行させるようにしてもよい。また、インタリーブ装置10そのものを、コンピュータによって仮想的に実現することもできる。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【0096】
以上で説明したように、インタリーブ装置10は、初期設定値i1〜i14を変更するのみで、複数のインタリーブ/デインタリーブ方式に対応できる。たとえば、第1の適用例として説明したIEEE 802.11aだけでなく、WiMAX(IEEE802.16系)などのような、他の同様のインタリーブ/デインタリーブの処理にも応用することもできる。また、第2の適用例として説明したDVB−T2のセルインタリーブだけでなく、他の同様のインタリーブ/デインタリーブにも応用することもできる。
【0097】
また、インタリーブ装置10は、ブロックインタリーブの一般式を演算するアドレス変換装置(第1のアドレス変換部100、第2のアドレス変換部200)を複数段用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより1つのインタリーブとなっている場合でも、複数回に分けることなく一挙動にインタリーブ用アドレス生成をすることができる。従って、メモリを用いてデータに対して直接インタリーブを行う場合と比較して、回路規模を削減することができる。
【0098】
ここでは、アドレス変換回路11をインタリーブ装置10に適用するという動作例について説明したが、生成した出力アドレスの供給先を読み出し/書き込みアドレスポートのどちらかに変更することで、デインタリーブ装置に適用することもできる。例えば、インタリーブする際にアドレス変換回路11がメモリ14に対して書き込みアドレスを供給していたものを、読み出しアドレスを供給するように変更すれば、同一のアドレス変換回路11を用いてデインタリーブを行うことができる。
【0099】
また、アドレス変換回路11はアドレスを所定の規則に基づいて並べ替えるものであるので、インタリーブ装置以外であっても、同様にデータを並び替える装置であれば適用可能である。
【0100】
(第2の実施形態)
本発明の第2の実施形態に係るインタリーブ装置310は、第1の実施形態の構成に加えて、アドレス変換回路11が、設定コントローラ12によって与えられた第3の設定に応じて、インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを初期アドレスとして出力する初期アドレス生成部400を備える構成とした。
【0101】
また、この初期アドレス生成部400は、ブロックサイズの範囲内で各処理ごとに重複しない乱数を発生する乱数生成手段420と、ブロックサイズの範囲内で各処理ごとに1ずつ値を変化させたカウント値を発生するカウンタ(N進カウンタ410)と、第3の設定に応じて、発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサ430とを有する。
【0102】
この構成によって、第1の実施形態によって得られる効果を、初期アドレスをN進カウンタもしくは乱数によって生成する必要のあるインタリーブ方式においても得ることもできる。
以下、これについてより詳しく説明する。
【0103】
図6は、本発明の第2の実施形態に係るインタリーブ装置310の構成について示す説明図である。インタリーブ装置310は、前述した第1の実施形態に係るインタリーブ装置10と比べて、アドレス変換回路11が別のアドレス変換回路311に置換され、さらに初期アドレス生成回路15が省略されているのみであり、他の構成は同一であるので、同一の要素については同一の呼称と参照番号で示している。
【0104】
図7は、図6に示したアドレス変換回路311のより詳しい構成を示す説明図である。アドレス変換回路311は、前述した第1の実施形態に係るアドレス変換回路11の備えていた第1のアドレス変換部100と、第2のアドレス変換部200とに加えて、新たに初期アドレス生成部400が追加されている。即ち、第1の実施形態に係るアドレス変換回路11に入力される入力アドレスは条件が規定されていたのみであったが、本実施形態では第1のアドレス変換部100に入力される初期アドレスを初期アドレス生成部400によって生成している。アドレス変換回路311は初期アドレス生成部400を有するので、第1の実施形態にあった初期アドレス生成回路15を必要とはしない。
【0105】
初期アドレス生成部400は、N進カウンタ410、乱数生成手段420、およびマルチプレクサ430を備え、マルチプレクサ430からの出力値が第1のアドレス変換部100に入力される初期アドレスとなる。ここで、Nはブロックインタリーブのブロックサイズを表す整数であり、上位CPU20から設定コントローラ12を介して与えられた第3の設定によって設定される。
【0106】
N進カウンタ410は、0〜N−1の範囲のカウント値を出力する。乱数生成手段420は0〜N−1の範囲の乱数を発生する。かつ、乱数生成手段420はブロックサイズN内では重複した値を生成しない。マルチプレクサ430は、N進カウンタ410から出力されたカウント値と、乱数生成手段420から出力された乱数とを入力とし、この両者のうちのいずれかを、上位CPU20から設定コントローラ12を介して与えられた第3の設定に基づいて選択して出力する。
【0107】
第1のアドレス変換部100および第2のアドレス変換部200の構成は、前述の図1で説明した第1の実施形態と同一である。従って、ここではそれらの構成の概要のみを説明する。第1のアドレス変換部100は、マルチプレクサ430から出力された初期アドレスを入力とし、第1の初期設定値保持手段110、第1の演算手段120、第2の演算手段130、加算器140を備え、加算器140からの出力値を中間アドレスとして第2のアドレス変換部200に対して出力する。
【0108】
第1の初期設定値保持手段110は、設定コントローラ12からの第1の設定によって設定された、第1〜第7の初期値をあらかじめ記憶する。第1の演算手段120は、初期アドレスと第1〜第5の初期設定値を入力とし、第1の演算結果を出力とする。第2の演算手段130は、初期アドレスと第6〜第7の初期設定値を入力とし、第2の演算結果を出力とする。
【0109】
加算器140は、第1の演算結果と第2の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、中間アドレスとなる。第1〜第2の演算手段120、130のより詳細な構成は、図3〜4に示した第1の実施形態と同一である。
【0110】
第2のアドレス変換部200は、中間アドレスを入力とし、第2の初期設定値保持手段210、第3の演算手段220、第4の演算手段230、加算器240を備え、加算器240からの出力値を出力アドレスとしてメモリコントローラ13に対して出力する。
【0111】
第2の初期設定値保持手段210は、設定コントローラ12からの第2の設定によって設定された、第8〜第14の初期値を保持する。第3の演算手段220は、中間アドレスと第8〜第12の初期設定値を入力とし、第3の演算結果を出力とする。第4の演算手段230は、中間アドレスと第13〜第14の初期設定値を入力とし、第4の演算結果を出力する。
【0112】
加算器240は、第3の演算結果と第4の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、出力アドレスとなる。第3〜第4の演算手段220、230のより詳細な構成は、図3〜4に示した第1の実施形態と同一である。
【0113】
(第2の実施形態の演算の動作)
以上で説明したアドレス変換回路311による演算の動作について説明する。図8は、図6に示したインタリーブ装置310によるインタリーブの動作について示すフローチャートである。まず、上位CPU20からのパラメータ設定の操作を受けて、設定コントローラ12がアドレス変換回路311の第1のアドレス変換部100に第1の設定を、第2のアドレス変換部200に第2の設定を、そして初期アドレス生成部400に第3の設定を各々与える(ステップS451)。
【0114】
アドレス変換回路311に対する第1〜第3の設定が終了したら、メモリコントローラ13は外部からインタリーブ対象となるデータの入力を待ち受け(ステップS452)、データの入力があればそのデータをメモリ14に保存する(ステップS453)。
【0115】
そして、初期アドレス生成部400が、与えられた第3の設定に基づいて初期アドレスを生成してこれを第1のアドレス変換部100に入力し(ステップS454)、第1のアドレス変換部100はこの初期アドレスに対して中間アドレスを出力し(ステップS455)、第2のアドレス変換部200はこの中間アドレスに対して出力アドレスを出力する(ステップS456)。そして、メモリコントローラ13は出力アドレスのデータをメモリ14から読み出して出力する(ステップS457)。
【0116】
以後、説明を平易なものとするため、加減算器124および加減算器224は、(加算、加算、減算)の動作を行うよう、設定コントローラ12によって設定が与えられるものとする。
【0117】
まず、上位CPU20から設定コントローラ12を介して、第1のアドレス変換部100、第2のアドレス変換部200、および初期アドレス生成部400に対して各々第1〜第3の設定を与える。
【0118】
これによって、第1の初期設定値保持手段110の第1の初期値〜第7の初期値に値が設定され、第2の初期設定値保持手段210の第8の初期値〜第14の初期値に値が設定される。また、加減算器124は3入力に対して(加算、加算、減算)を行うように設定される。同様に加減算器224も3入力に対して(加算、加算、減算)を行うように設定される。さらに、マルチプレクサ430において、2入力あるうちのいずれかを選択し出力するかが設定される。ここではN進カウンタ410から出力されたカウント値が出力されるように設定されているものとする。
【0119】
以上の設定を完了したアドレス変換回路311で、アドレス変換処理が開始される。このとき、初期アドレス生成部400において、N進カウンタ410からマルチプレクサ430に対して、0〜N−1までのカウント値が順に出力され、これが設定によってマルチプレクサ430から第1のアドレス変換部100へ入力される初期アドレスとなる。
【0120】
これに続く第1のアドレス変換部100および第2のアドレス変換部の動作は、第1の実施形態と同一である。以上のようにして第2のアドレス変換部200から出力された出力アドレスは、インタリーブするデータが保存されたメモリ14にアクセスするためにメモリコントローラ13に対して出力されるアドレスとなる。
【0121】
初期アドレス生成手段300、第1のアドレス変換部100および第2のアドレス変換部200は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、初期アドレス生成手段300から初期アドレスが連続して出力されている限りは、本実施形態のインタリーブ装置310は出力アドレスを連続して出力することができ、第1の実施形態と同一の効果を得ることができる。
【0122】
(第2の実施形態の実際の通信に対する適用例)
以下、インタリーブ装置310の実際の通信に対する適用例を2種類挙げて説明する。まず、インタリーブ装置310をIEEE802.11aのシンボルインタリーブの処理に適用する場合について説明する。このIEEE802.11aのシンボルインタリーブでは、第1パーミュテーションおよび第2パーミュテーションという2種類の異なった処理を組み合わせて、一つのインタリーブとしている。
【0123】
この場合、アドレス変換回路311において、第1パーミュテーションの処理に対応するのが第1のアドレス変換部100であり、第2パーミュテーションの処理に対応するのが第2のアドレス変換部200である。ここでのパラメータは、インタリーブのブロックサイズN=192となり、また変調方式として16QAMが使用される。さらに、初期アドレスは0〜191まで順に増加していく。
【0124】
この時、第1パーミュテーションと第2パーミュテーションの各々のアドレス生成式は、前述の数3〜3と同一の式で表される。従って、第1のアドレス変換部100への第1の設定時に、上位CPU20から設定コントローラ12を介して、第1の初期設定値保持手段110に設定される第1〜第7の初期設定値i1〜i7は、第1の実施形態と同様に、各々(i1、i2、i3、i4、i5、i6、i7)=(0、0、1、16、12、16、1)となる。
【0125】
また、第2のアドレス変換部200への第2の設定時に、上位CPU20から設定コントローラ12を介して、第2の初期設定値保持手段210に設定される第8〜第14の初期設定値i8〜i14は、第1の実施形態と同様に、各々(i8、i9、i10、i11、i12、i13、i14)=(128、1、8、2、1、2、2)となる。
【0126】
また、第1の演算手段120の加減算器124は、上位CPU20から設定コントローラ12を介して、(加算、加算、減算)という演算を行うように設定される。一方で、第3の演算手段220の加減算器224は、(加算、加算、減算)という演算を行うように設定される。そして、初期アドレス生成部400のマルチプレクサ430は、N進カウンタ410側の入力を選択して出力するように設定される。
【0127】
このとき、第1のアドレス変換部100は、入力された初期アドレスと第1の設定に基づいて設定された第1から第7の初期設定値に基づいてアドレス変換を行い、中間アドレスを出力する。また、第2のアドレス変換部は、前記の中間アドレスと第2の設定に基づいて設定された第8から第14の初期設定値に基づいてアドレス変換を行い、出力アドレスを出力する。この具体的な動作は、第1の実施形態と同一である。以上のようにして、IEEE802.11aのシンボルインタリーブのためのアドレス生成を行うことができる。
【0128】
続いて、インタリーブ装置310をDVB−T2のセルインタリーブの処理に適用する場合を説明する。DVB−T2のセルインタリーブは、線形フィードバックシフトレジスタをベースとした回路によって生成されたランダムな値を初期アドレスとし、そこへシンボル番号に基づいたシフトを組み合わせたインタリーブとなっている。ここで、インタリーブ装置310で、基本パーミュテーション関数(basic permutation function)の生成に対応するのが、初期アドレス生成部400である。
【0129】
ここでのパラメータは、インタリーブのブロックサイズN=8100(=64800/8)、かつセルインタリーブのシフト量は4096となる。この時、DVB−T2セルインタリーブのパーミュテーション関数(permutation function)のアドレス生成式は、上述した数5と同一式で表される。
【0130】
ここで、第1のアドレス変換部100へ第1の設定時に、上位CPU20から設定コントローラ12を介して、第1の初期設定値保持手段110に設定される第1〜第7の初期設定値i1〜i7は各々、(i1、i2、i3、i4、i5、i6、i7)=(0、0、1、4096、1、1、0)となる。
【0131】
また、第2のアドレス変換部200ではアドレス変換を行わず、中間アドレスを変化させることなくそのまま出力アドレスとして出力する。従って、第2のアドレス変換部200に対する第2の設定時では、初期設定値保持手段210に対して設定を行わない。即ち、第8〜第14の初期設定値i8〜i14は各々、(i8、i9、i10、i11、i12、i13、i14)=(0、0、1、8100、0、0、0)とした場合と等価である。
【0132】
さらに、初期アドレス生成部400への第3の設定では、上位CPU20から設定コントローラ12を介して、マルチプレクサ430において乱数生成手段420側の入力を選択するよう設定される。乱数生成手段420では、規格に従った線形フィードバックシフトレジスタをベースとした回路によって乱数が生成される。この乱数は0〜8099の範囲内の整数値である。
【0133】
このとき、第1のアドレス変換部100は、入力された初期アドレスと第1の設定に基づいて設定された第1から第7の初期設定値に基づいてアドレス変換を行い、中間アドレスを出力する。また、第2のアドレス変換部は、前記の中間アドレスに対して、変換を行わず、そのまま出力アドレスとして出力する。以上のようにして、DVB−T2のセルインタリーブのためのアドレス生成を行うことができる。
【0134】
以上で説明したように、インタリーブ装置310は、初期設定値i1〜i14とマルチプレクサ430に対する設定を変更するのみで、複数のインタリーブ/デインタリーブ方式に対応できる。たとえば、第1の適用例として説明したIEEE 802.11aだけでなく、WiMAX(IEEE802.16系)などのような、他の同様のインタリーブ/デインタリーブの処理にも応用することもできる。また、第2の適用例として説明したDVB−T2のセルインタリーブだけでなく、他の同様のインタリーブ/デインタリーブにも応用することもできる。
【0135】
また、インタリーブ装置310は、ブロックインタリーブの一般式を演算するアドレス変換装置(第1のアドレス変換部100、第2のアドレス変換部200)を複数段用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより1つのインタリーブとなっている場合でも、複数回に分けることなく一挙動にインタリーブ用アドレス生成をすることができる。従って、メモリを用いてデータに対して直接インタリーブを行う場合と比較して、回路規模を削減することができるという、第1の実施形態と同一の効果を得ることができる。
【0136】
本実施形態では、以上に示した第1の実施形態と同一の効果を、初期アドレスをN進カウンタもしくは乱数によって生成する必要のあるインタリーブ方式においても得ることもできる。
【0137】
(第3の実施形態)
本発明の第3の実施形態に係るインタリーブ装置510は、第2の実施形態の構成に加えて、アドレス変換回路511が、設定コントローラ12によって与えられた第4の設定に応じて、出力アドレスを最終出力アドレスに変換してこれをメモリコントローラに対して出力するルックアップテーブル部600を備える構成とした。
【0138】
また、このルックアップテーブル部600は、第4の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段610と、出力アドレスからオフセット出力手段から出力されたオフセット値を減算した値を出力する減算器620と、設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段630と、メモリ手段から出力された値とオフセット出力手段から出力された値とを加算してこれを最終出力アドレスとして出力する加算器640とを備える。
【0139】
この構成によって、第1〜2の実施形態によって得られる効果を、テーブルを用いる形式のインタリーブを利用する必要のあるインタリーブ方式においても得ることもできる。
以下、これについてより詳しく説明する。
【0140】
図9は、本発明の第3の実施形態に係るインタリーブ装置510の構成について示す説明図である。インタリーブ装置510は、前述した第1の実施形態に係るインタリーブ装置10と比べて、アドレス変換回路11が別のアドレス変換回路511に置換され、さらに初期アドレス生成回路15が省略されているのみであり、他の構成は同一であるので、同一の要素については同一の呼称と参照番号で示している。
【0141】
図10は、図9に示したアドレス変換回路511のより詳しい構成を示す説明図である。アドレス変換回路511は、前述した第2の実施形態に係るアドレス変換回路311の備えていた第1のアドレス変換部100と、第2のアドレス変換部200と、初期アドレス生成部400とに加えて、新たにルックアップテーブル部600が第2のアドレス変換部200の後段に追加されている。従って、ここでは第1のアドレス変換部100からの出力を第1の中間アドレス、第2のアドレス変換部200からの出力を第2の中間アドレスという。ちなみに請求項では、第2のアドレス変換部200からの出力を出力アドレス、ルックアップテーブル部600からの出力を最終出力アドレスとしている。アドレス変換回路511は初期アドレス生成部400を有するので、第1の実施形態にあった初期アドレス生成回路15を必要とはしない。
【0142】
ルックアップテーブル部600は、第2のアドレス変換部200から出力された第2の中間アドレスを入力とし、オフセット出力手段610、減算器620、メモリ手段630、加算器640を備え、加算器640からの出力値を出力アドレスとしてメモリコントローラ13に対して出力する。
【0143】
オフセット出力手段610は設定コントローラ12からの第4の設定によって設定された、オフセット値を出力する。減算器620は第2の中間アドレスとオフセット出力手段610から出力されたオフセット値とを入力とし、その減算結果を出力する。メモリ手段630は、設定コントローラ12からの第4の設定によって予め値を記憶されており、減算器620からの出力を入力アドレスとして、そのアドレスに保管されている値を出力とする。加算器640は、メモリ手段630からの出力とオフセット出力手段610からの出力とを入力とし、その加算結果を出力アドレスとして出力する。
【0144】
これ以外の、第1のアドレス変換部100、第2のアドレス変換部200、初期アドレス生成部400の各々の構成は、前述の図1および図7で説明した第1〜2の実施形態と同一であるので、ここではそれらの概要のみを説明する。
【0145】
初期アドレス生成部400は、N進カウンタ410、乱数生成手段420、およびマルチプレクサ430を備え、マルチプレクサ430からの出力値が第1のアドレス変換部100に入力される初期アドレスとなる。ここで、Nはブロックインタリーブのブロックサイズを表す整数であり、上位CPU20から設定コントローラ12を介して与えられた第3の設定によって設定される。
【0146】
N進カウンタ410は、0〜N−1の範囲のカウント値を出力する。乱数生成手段420は0〜N−1の範囲の乱数を発生する。かつ、乱数生成手段420はブロックサイズN内では重複した値を生成しない。マルチプレクサ430は、N進カウンタ410から出力されたカウント値と、乱数生成手段420から出力された乱数とを入力とし、この両者のうちのいずれかを、上位CPU20から設定コントローラ12を介して与えられた第3の設定に基づいて選択して出力する。
【0147】
第1のアドレス変換部100は、マルチプレクサ430から出力された初期アドレスを入力とし、第1の初期設定値保持手段110、第1の演算手段120、第2の演算手段130、加算器140を備え、加算器140からの出力値を第1の中間アドレスとして第2のアドレス変換部200に対して出力する。
【0148】
第1の初期設定値保持手段110は、設定コントローラ12からの第1の設定によって設定された、第1〜第7の初期値をあらかじめ記憶する。第1の演算手段120は、初期アドレスと第1〜第5の初期設定値を入力とし、第1の演算結果を出力とする。第2の演算手段130は、初期アドレスと第6〜第7の初期設定値を入力とし、第2の演算結果を出力とする。
【0149】
加算器140は、第1の演算結果と第2の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、第1の中間アドレスとなる。第1〜第2の演算手段120、130のより詳細な構成は、図3〜4に示した第1の実施形態と同一である。
【0150】
第2のアドレス変換部200は、中間アドレスを入力とし、第2の初期設定値保持手段210、第3の演算手段220、第4の演算手段230、加算器240を備え、加算器240からの出力値を第2の中間アドレスとしてルックアップテーブル部600に対して出力する。
【0151】
第2の初期設定値保持手段210は、設定コントローラ12からの第2の設定によって設定された、第8〜第14の初期値を保持する。第3の演算手段220は、中間アドレスと第8〜第12の初期設定値を入力とし、第3の演算結果を出力とする。第4の演算手段230は、中間アドレスと第13〜第14の初期設定値を入力とし、第4の演算結果を出力する。
【0152】
加算器240は、第3の演算結果と第4の演算結果を加算して得られたアドレスを出力する。この出力されたアドレスが、第2の中間アドレスとなる。第3〜第4の演算手段220、230のより詳細な構成は、図3〜4に示した第1の実施形態と同一である。
【0153】
(第3の実施形態の演算の動作)
以上で説明したアドレス変換回路511による演算の動作について説明する。図11は、図9に示したインタリーブ装置510によるインタリーブの動作について示すフローチャートである。まず、上位CPU20からのパラメータ設定の操作を受けて、設定コントローラ12がアドレス変換回路511の第1のアドレス変換部100に第1の設定を、第2のアドレス変換部200に第2の設定を、初期アドレス生成部400に第3の設定を、そしてルックアップテーブル部600に第4の設定を、各々与える(ステップS651)。
【0154】
アドレス変換回路511に対する第1〜第4の設定が終了したら、メモリコントローラ13は外部からインタリーブ対象となるデータの入力を待ち受け(ステップS652)、データの入力があればそのデータをメモリ14に保存する(ステップS653)。
【0155】
そして、初期アドレス生成部400が、与えられた第3の設定に基づいて初期アドレスを生成してこれを第1のアドレス変換部100に入力し(ステップS654)、第1のアドレス変換部100はこの初期アドレスに対して第1の中間アドレスを出力し(ステップS655)、第2のアドレス変換部200はこの第1の中間アドレスに対して第2の中間アドレスを出力する(ステップS656)。
【0156】
そして、ルックアップテーブル部600が、この第2の中間アドレスに対応する出力アドレスを出力し(ステップS657)、メモリコントローラ13は出力アドレスのデータをメモリ14から読み出して出力する(ステップS658)。
【0157】
以後、説明を平易なものとするため、加減算器124および加減算器224は、(加算、加算、減算)の動作を行うよう、設定コントローラ12によって設定が与えられるものとする。
【0158】
まず、上位CPU20から設定コントローラ12を介して、第1のアドレス変換部100、第2のアドレス変換部200、初期アドレス生成部400、およびルックアップテーブル部600に対して各々第1〜第4の設定を与える。
【0159】
これによって、第1の初期設定値保持手段110の第1の初期値〜第7の初期値に値が設定され、第2の初期設定値保持手段210の第8の初期値〜第14の初期値に値が設定される。また、加減算器124は3入力に対して(加算、加算、減算)を行うように設定される。同様に加減算器224も3入力に対して(加算、加算、減算)を行うように設定される。
【0160】
さらに、マルチプレクサ430において、2入力あるうちのいずれかを選択し出力するかが設定される。ここではN進カウンタ410から出力されたカウント値が出力されるように設定されているものとする。そして、メモリ手段630には、入力アドレスを出力アドレスに変換するためのインタリーブ方式に対応したパターンを予め記憶する。
【0161】
以上の設定を完了したアドレス変換回路511で、アドレス変換処理が開始される。このとき、初期アドレス生成部400において、N進カウンタ410からマルチプレクサ430に対して、0〜N−1までのカウント値が順に出力され、これが設定によってマルチプレクサ430から第1のアドレス変換部100へ入力される初期アドレスとなる。
【0162】
これに続く第1のアドレス変換部100および第2のアドレス変換部の動作は、第1の実施形態と同一である。以上のようにして、第2のアドレス変換部200から第2の中間アドレスがルックアップテーブル部600に対して出力される。
【0163】
ルックアップテーブル部600で、オフセット出力手段610は第2の中間アドレスが第4の設定によって規定された回数入力される毎にその値が増加するオフセット値を出力する。減算器620は第2の中間アドレスからオフセット値を減算して出力し、それがメモリ手段630への読み出しアドレスとなる。
【0164】
メモリ手段630は、入力された読み出しアドレスに保持する変換後のアドレス値を出力する。加算器640は、メモリ手段630からの出力とオフセット値とを加算し、その加算結果を出力アドレスとして出力する。以上のようにしてルックアップテーブル部600から出力された出力アドレスは、インタリーブするデータが保存されたメモリ14にアクセスするためにメモリコントローラ13に対して出力されるアドレスとなる。
【0165】
初期アドレス生成手段300、第1のアドレス変換部100、第2のアドレス変換部200、およびルックアップテーブル部600は直列に接続されている構成であるので、パイプライン的に連続して処理が可能である。従って、初期アドレス生成手段300から初期アドレスが連続して出力されている限りは、本実施形態のインタリーブ装置510は出力アドレスを連続して出力することができ、第1の実施形態と同一の効果を得ることができる。
【0166】
本実施形態では、ルックアップテーブル部600を追加で備えることで、テーブルを用いる形式のインタリーブが組み合わされている場合でも、メモリへのアクセス回数を1回で済ませることができる。従って、本構成を用いることで、すべての入出力パターンをメモリに保存しておき、そのパターンを用いて1回のメモリアクセスで済ませる場合よりも、回路規模を削減することができる。即ち、テーブルを用いる形式のインタリーブを利用する場合においても、第1〜2の実施形態と同一の効果を得ることができる。
【0167】
(第3の実施形態の実際の通信に対する適用例)
以下、インタリーブ装置510の実際の通信に対する適用例として、インタリーブ装置510をISDB−Tの周波数インタリーブの処理に適用する場合について説明する。前述のように、ISDB−Tの周波数インタリーブは、セグメント間インタリーブ、セグメント内キャリアローテーション、セグメント内キャリアランダマイズの3種類の異なった処理が組み合わさることにより、一つのインタリーブとなっている。
【0168】
このとき、本実施形態にかかるインタリーブ装置510で、セグメント間インタリーブの処理に対応するのが第1のアドレス変換部100であり、セグメント内キャリアローテーションに対応するのが第2のアドレス変換部200であり、セグメント内キャリアランダマイズに対応するのがルックアップテーブル部600である。また、初期アドレスは、0〜N−1の範囲で1ずつ順に増加していく。
【0169】
ここでのパラメータは、インタリーブのブロックサイズN=384×12=4608である。また、周波数インタリーブはモード3の同期変調部に対して行われる。この時、セグメント間インタリーブのアドレス生成式は、以下の数6で示される。また、セグメント内キャリアローテーションのアドレス生成式は、以下の数7で示される。なお、セグメント内キャリアランダマイズに関しては、テーブルを用いるので、特に生成式はない。
【0170】
〔数6〕

【0171】
〔数7〕

【0172】
ここで、上位CPU20から設定コントローラ12を介して行われる第1から第4の設定は、まず初期アドレス生成手段400への第3の設定で、マルチプレクサ430においてN進カウンタ410側の入力が選択される(N=4608)。そして、第1のアドレス変換部100への第1の設定で、第1の初期設定値保持手段110に設定される第1〜第7の初期設定値i1〜i7は各々、(i1、i2、i3、i4、i5、i6、i7)=(0、0、1、12、384、12、1)となる。
【0173】
また、第2のアドレス変換部200への第2の設定で、第2の初期設定値保持手段210に設定される第8〜第14の初期設定値i8〜i14は各々、(i8、i9、i10、i11、i12、i13、i14)=(0、1、384、384、1、384、384)となる。
【0174】
さらに、第1の演算手段120の加減算器124は、その3入力に対して(加算、加算、加算)の演算を行うよう設定される。同様に、第3の演算手段220の加減算器224は、その3入力に対して(加算、加算、加算)の演算を行うよう設定される。そして、ルックアップテーブル部600への第4の設定で、1セグメント(=384キャリア)分のアドレスの入出力パターンが入力され、メモリ手段630に記憶される。また、初期アドレスは、0〜4607まで過不足なく順に入力されるものとする。
【0175】
このとき、第1のアドレス変換部100は、入力された初期アドレスと第1の設定に基づいて設定された第1〜第7の初期設定値i1〜i7に基づいてアドレス変換を行い、第1の中間アドレスを出力する。また、第2のアドレス変換部は、前記の第1の中間アドレスと第2の設定に基づいて設定された第8〜第14の初期設定値i8〜i14に基づいてアドレス変換を行い、第2の中間アドレスを出力する。
【0176】
そして、ルックアップテーブル部600のオフセット出力手段610から出力されるオフセット値は、第2の中間アドレスがルックアップテーブル部に384回入力される毎に1回、384だけ値が増加する。以上のようにして、ISDB−Tの周波数インタリーブのためのアドレス生成を行うことができる。
【0177】
従来技術では、これと同じ周波数インタリーブを行うためには、少なくとも全サブキャリア数(=4608本)分の入出力パターンを保管できるメモリが必要であった。これに対して、本実施例のインタリーブ装置510では、1セグメント(=384キャリア)分の入出力パターンを記憶できればよい。即ち、メモリ手段630の容量を1/12とすることができるので、結果として、回路規模を削減することができる。
【0178】
以上で述べたように、本実施形態では、第1〜2の実施形態と同一の効果を、テーブルを用いる形式のインタリーブを利用する場合においても得ることもできる。さらに、小規模なテーブルを組み合わせて用いてアドレス変換を行うことにより、複数の処理が組み合わさることにより1つのインタリーブとなっている場合でも、1回のメモリアクセスで済ませることができる。従って、メモリを用いて1回のメモリアクセスで済ませる場合よりも回路規模を削減することができる。
【0179】
ここでは、アドレス変換回路511をインタリーブ装置510に適用するという動作例について説明したが、生成した出力アドレスの供給先を読み出し/書き込みアドレスポートのどちらかに変更することで、デインタリーブ装置に適用することもできる。例えば、インタリーブする際にアドレス変換回路511がメモリ14に対して書き込みアドレスを供給していたものを、読み出しアドレスを供給するように変更すれば、同一のアドレス変換回路11を用いてデインタリーブを行うことができる。
【0180】
また、アドレス変換回路511はアドレスを所定の規則に基づいて並べ替えるものであるので、インタリーブ装置以外であっても、同様にデータを並び替える装置であれば適用可能である。
【0181】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【0182】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【0183】
(付記1) 入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上の前記インタリーブの処理をされたアドレスに記憶された前記データを出力するメモリコントローラとを備えたインタリーブ装置であって、
前記アドレス変換回路が、
入力された初期アドレスに対して前記設定コントローラによって与えられた第1の設定に応じた処理を行って得られた中間アドレスを出力する第1のアドレス変換部と、
前記中間アドレスに対して前記設定コントローラによって与えられた第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに対して出力する第2のアドレス変換部と
を備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とするインタリーブ装置。
【0184】
(付記2) 前記第1のアドレス変換部が、
前記第1の設定によって与えられた複数個の初期設定値を記憶する第1の初期設定値保持手段と、
前記初期アドレスと前記初期設定値とを前記第1の設定によって与えられた演算規則に従って演算する第1の演算手段と、
前記初期アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第2の演算手段と、
前記第1および第2の演算手段からの出力を加算してこれを前記中間アドレスとして出力する第1の加算器
とを備えると共に、
前記第2のアドレス変換部が、
前記第2の設定によって与えられた複数個の初期設定値を記憶する第2の初期設定値保持手段と、
前記中間アドレスと前記初期設定値とを前記第2の設定によって与えられた演算規則に従って演算する第3の演算手段と、
前記中間アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第4の演算手段と、
前記第3および第4の演算手段からの出力を加算してこれを前記出力アドレスとして出力する第2の加算器
とを備えることを特徴とする、付記1に記載のインタリーブ装置。
【0185】
(付記3) 前記第1のアドレス変換部の前記第1の演算手段が、前記初期アドレスと前記第1の初期設定値保持手段に記憶された第1ないし第5の前記初期設定値とを前記第1の設定によって与えられた演算規則に従って演算し、
前記第2の演算手段が、前記初期アドレスと前記第1の初期設定値保持手段に記憶された第6および第7の前記初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、
前記第2のアドレス変換部の前記第3の演算手段が、前記初期アドレスと前記第2の初期設定値保持手段に記憶された第8ないし第12の前記初期設定値とを前記第2の設定によって与えられた演算規則に従って演算し、
前記第4の演算手段が、前記初期アドレスと前記第2の初期設定値保持手段に記憶された第13および第14の前記初期設定値とをあらかじめ与えられた演算規則に従って演算する
ことを特徴とする、付記2に記載のインタリーブ装置。
【0186】
(付記4) 前記第1ないし第7の初期設定値を各々i1〜i7とし、前記初期アドレスおよび中間アドレスを各々xおよびfxとすると、前記第1のアドレス変換部は前記初期アドレスを

の式で示される演算によって前記中間アドレスに変換し、
前記第8ないし第14の初期設定値を各々i8〜i14とし、前記中間アドレスおよび出力アドレスを各々fxおよびgxとすると、前記第2のアドレス変換部は前記中間アドレスを

の式で示される演算によって前記出力アドレスに変換することを特徴とする、付記3に記載のインタリーブ装置。
【0187】
(付記5) 前記アドレス変換回路が、前記設定コントローラによって与えられた第3の設定に応じて、前記インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを前記初期アドレスとして出力する初期アドレス生成部を備えることを特徴とする、付記1に記載のインタリーブ装置。
【0188】
(付記6) 前記初期アドレス生成部が、
前記ブロックサイズの範囲内で各処理ごとに重複しない前記乱数を発生する乱数生成手段と、
前記ブロックサイズの範囲内で各処理ごとに1ずつ値を変化させたカウント値を発生するカウンタと、
前記第3の設定に応じて、前記発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサとを有することを特徴とする、付記5に記載のインタリーブ装置。
【0189】
(付記7) 前記アドレス変換回路が、前記設定コントローラによって与えられた第4の設定に応じて、前記出力アドレスを最終出力アドレスに変換してこれを前記メモリコントローラに対して出力するルックアップテーブル部を備えることを特徴とする、付記5に記載のインタリーブ装置。
【0190】
(付記8) 前記ルックアップテーブル部が、
前記第4の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段と、
前記出力アドレスから前記オフセット出力手段から出力された前記オフセット値を減算した値を出力する減算器と、
前記設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段と、
前記メモリ手段から出力された値と前記オフセット出力手段から出力された値とを加算してこれを前記最終出力アドレスとして出力する加算器と
を備えることを特徴とする、付記7に記載のインタリーブ装置。
【0191】
(付記9) 入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記設定コントローラが、前記アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与え、
前記メモリコントローラが、入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力し、
前記第1のアドレス変換部が、前記初期アドレスに対して前記第1の設定に応じた処理を行って得られた中間アドレスを出力し、
前記第2のアドレス変換部が、前記中間アドレスに対して前記第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力し、
前記メモリコントローラが前記メモリ上の前記出力アドレスに記憶されているデータを出力する
ことを特徴とするアドレス変換方法。
【0192】
(付記10) 入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記インタリーブ装置の備えるコンピュータに、
前記アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与える手順、
入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力する手順、
前記初期アドレスに対して前記第1の設定に応じた処理を行って得られた中間アドレスを出力する手順、
および前記中間アドレスに対して前記第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力する手順
を実行させることを特徴とするアドレス変換プログラム。
【産業上の利用可能性】
【0193】
本発明は、データの並び替えを行う装置に対して一般的に適用可能であるが、中でもインタリーブ/デインタリーブ処理を行う装置に適する。特に、通信の高速化および装置の小型化・低価格化・低消費電力化を両立しつつ複数の通信方式に対応すべき分野、たとえば携帯電話端末やスマートホン端末、あるいは地上波デジタルテレビ放送受信機などに適する。
【符号の説明】
【0194】
10、310、510 インタリーブ装置
11、311、511 アドレス変換回路
12 設定コントローラ
13 メモリコントローラ
14 メモリ
15 初期アドレス生成回路
20 上位CPU
100 第1のアドレス変換部
110 第1の初期設定値保持手段
120 第1の演算手段
121、126、133、221、226、233 乗算器
122、131、222、231 除算器
123、132、223、232 フロア演算器
124、224 加減算器
125、225 剰余算器
130 第2の演算手段
140、240 加算器
200 第2のアドレス変換部
210 第2の初期設定値保持手段
220 第3の演算手段
230 第4の演算手段
400 初期アドレス生成部
410 N進カウンタ
420 乱数生成手段
430 マルチプレクサ
600 ルックアップテーブル部
610 オフセット出力手段
620 減算器
630 メモリ手段
640 加算器

【特許請求の範囲】
【請求項1】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上の前記インタリーブの処理をされたアドレスに記憶された前記データを出力するメモリコントローラとを備えたインタリーブ装置であって、
前記アドレス変換回路が、
入力された初期アドレスに対して前記設定コントローラによって与えられた第1の設定に応じた処理を行って得られた中間アドレスを出力する第1のアドレス変換部と、
前記中間アドレスに対して前記設定コントローラによって与えられた第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに対して出力する第2のアドレス変換部と
を備え、これによって一つの連続したインタリーブ処理を実行するように構成したことを特徴とするインタリーブ装置。
【請求項2】
前記第1のアドレス変換部が、
前記第1の設定によって与えられた複数個の初期設定値を記憶する第1の初期設定値保持手段と、
前記初期アドレスと前記初期設定値とを前記第1の設定によって与えられた演算規則に従って演算する第1の演算手段と、
前記初期アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第2の演算手段と、
前記第1および第2の演算手段からの出力を加算してこれを前記中間アドレスとして出力する第1の加算器
とを備えると共に、
前記第2のアドレス変換部が、
前記第2の設定によって与えられた複数個の初期設定値を記憶する第2の初期設定値保持手段と、
前記中間アドレスと前記初期設定値とを前記第2の設定によって与えられた演算規則に従って演算する第3の演算手段と、
前記中間アドレスと前記初期設定値とをあらかじめ与えられた演算規則に従って演算する第4の演算手段と、
前記第3および第4の演算手段からの出力を加算してこれを前記出力アドレスとして出力する第2の加算器
とを備えることを特徴とする、請求項1に記載のインタリーブ装置。
【請求項3】
前記第1のアドレス変換部の前記第1の演算手段が、前記初期アドレスと前記第1の初期設定値保持手段に記憶された第1ないし第5の前記初期設定値とを前記第1の設定によって与えられた演算規則に従って演算し、
前記第2の演算手段が、前記初期アドレスと前記第1の初期設定値保持手段に記憶された第6および第7の前記初期設定値とをあらかじめ与えられた演算規則に従って演算すると共に、
前記第2のアドレス変換部の前記第3の演算手段が、前記初期アドレスと前記第2の初期設定値保持手段に記憶された第8ないし第12の前記初期設定値とを前記第2の設定によって与えられた演算規則に従って演算し、
前記第4の演算手段が、前記初期アドレスと前記第2の初期設定値保持手段に記憶された第13および第14の前記初期設定値とをあらかじめ与えられた演算規則に従って演算する
ことを特徴とする、請求項2に記載のインタリーブ装置。
【請求項4】
前記第1ないし第7の初期設定値を各々i1〜i7とし、前記初期アドレスおよび中間アドレスを各々xおよびfxとすると、前記第1のアドレス変換部は前記初期アドレスを

の式で示される演算によって前記中間アドレスに変換し、
前記第8ないし第14の初期設定値を各々i8〜i14とし、前記中間アドレスおよび出力アドレスを各々fxおよびgxとすると、前記第2のアドレス変換部は前記中間アドレスを

の式で示される演算によって前記出力アドレスに変換することを特徴とする、請求項3に記載のインタリーブ装置。
【請求項5】
前記アドレス変換回路が、前記設定コントローラによって与えられた第3の設定に応じて、前記インタリーブの処理に係るブロックサイズに応じた乱数もしくはカウント値を発生してこれを前記初期アドレスとして出力する初期アドレス生成部を備えることを特徴とする、請求項1に記載のインタリーブ装置。
【請求項6】
前記初期アドレス生成部が、
前記ブロックサイズの範囲内で各処理ごとに重複しない前記乱数を発生する乱数生成手段と、
前記ブロックサイズの範囲内で各処理ごとに1ずつ値を変化させたカウント値を発生するカウンタと、
前記第3の設定に応じて、前記発生された乱数もしくはカウント値のうちの一方を選択して出力するマルチプレクサとを有することを特徴とする、請求項5に記載のインタリーブ装置。
【請求項7】
前記アドレス変換回路が、前記設定コントローラによって与えられた第4の設定に応じて、前記出力アドレスを最終出力アドレスに変換してこれを前記メモリコントローラに対して出力するルックアップテーブル部を備えることを特徴とする、請求項5に記載のインタリーブ装置。
【請求項8】
前記ルックアップテーブル部が、
前記第4の設定で与えられた処理回数ごとに増加するオフセット値を出力するオフセット出力手段と、
前記出力アドレスから前記オフセット出力手段から出力された前記オフセット値を減算した値を出力する減算器と、
前記設定コントローラによって与えられた値を記憶し、前記減算器から出力された値に対応するアドレスに記憶されている値を出力するメモリ手段と、
前記メモリ手段から出力された値と前記オフセット出力手段から出力された値とを加算してこれを前記最終出力アドレスとして出力する加算器と
を備えることを特徴とする、請求項7に記載のインタリーブ装置。
【請求項9】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記設定コントローラが、前記アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与え、
前記メモリコントローラが、入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力し、
前記第1のアドレス変換部が、前記初期アドレスに対して前記第1の設定に応じた処理を行って得られた中間アドレスを出力し、
前記第2のアドレス変換部が、前記中間アドレスに対して前記第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力し、
前記メモリコントローラが前記メモリ上の前記出力アドレスに記憶されているデータを出力する
ことを特徴とするアドレス変換方法。
【請求項10】
入力されたデータを一時的に記憶するメモリと、前記メモリ上に前記データが記憶されたアドレスに対してインタリーブの処理を行うアドレス変換回路と、前記アドレス変換回路に対して上位装置から与えられた設定を与える設定コントローラと、前記メモリ上に前記データを入出力するメモリコントローラとを備えたインタリーブ装置にあって、
前記インタリーブ装置の備えるコンピュータに、
前記アドレス変換回路の第1および第2のアドレス変換部に各々第1および第2の設定を与える手順、
入力された前記データを前記メモリに保存すると共に前記データの保存された前記メモリ上のアドレスを初期アドレスとして前記アドレス変換回路に入力する手順、
前記初期アドレスに対して前記第1の設定に応じた処理を行って得られた中間アドレスを出力する手順、
および前記中間アドレスに対して前記第2の設定に応じた処理を行って得られた出力アドレスを前記メモリコントローラに出力する手順
を実行させることを特徴とするアドレス変換プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−110678(P2013−110678A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−256092(P2011−256092)
【出願日】平成23年11月24日(2011.11.24)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】