(57)【要約】【課題】従来よりも効率的なインタリーブまたはデインタリーブを行うことを可能にする装置を提供すること。【解決手段】本発明による装置は、インタリーバ又はデインタリーバにおけるデータの読み出し及び書き込みを連続的に行う装置である。本装置は、アドレスで指定される場所にデータを格納することが可能なメモリ手段と、メモリ手段からデータを読み出す読出手段と、メモリ手段にデータを書き込む書込手段と、所定の行列の少なくとも１行の行列要素の少なくとも１つである行要素を格納する行テーブル・メモリ手段と、所定の行列の少なくとも１列の行列要素の少なくとも１つである列要素を格納する列テーブル・メモリ手段と、行および列テーブル・メモリ手段から順に選択する行要素および列要素の和に基づいて、データの読みえ出し及び書き込みを行うための一連のアドレスを生成するアドレス生成手段を有する装置である。【選択図】　図２
2004096492.tif 000002
【特許請求の範囲】
【請求項１】
インタリーバ又はデインタリーバにおけるデータの読み出し及び書き込みを行う装置であって、
アドレスで指定される場所にデータを格納することが可能なメモリ手段と、
前記メモリ手段からデータを読み出す読出手段と、
前記メモリ手段にデータを書き込む書込手段と、
所定の行列の少なくとも１行の行列要素の少なくとも１つである行要素を格納する行テーブル・メモリ手段と、
所定の行列の少なくとも１列の行列要素の少なくとも１つである列要素を格納する列テーブル・メモリ手段と、
前記行および列テーブル・メモリ手段から順に選択する行要素および列要素の和に基づいて、データの読み出し及び書き込みを行うための一連のアドレスを生成するアドレス生成手段
を有することを特徴とする装置。
【請求項２】
請求項１記載の装置において、前記読出手段および書込手段が、前記一連のアドレスに従って、前記メモリ手段における読み出しを行ったアドレスに対して次のデータを上書きするよう形成されることを特徴とする装置。
【請求項３】
ｎ個のデータを順にメモリに書き込み、書き込んだｎ個のデータを該メモリから読み出すインタリーブ装置において、
ｎ個のデータの書き込み後、次のｎ個のデータを書き込む書込手段であって、該次のｎ個のデータのうち少なくとも一部については、書き込んだ該ｎ個のデータ総ての所定の順序（書き込み順とは異なる順序）による読み出し前に該メモリに書き込む書込手段と、
該書込手段におり順に書き込みを行った次のｎ個のデータについても前記所定の順序による読み出しを行う読出手段と、
を備えたことを特徴とするインタリーブ装置。
【請求項４】
請求項３記載のインタリーブ装置において、
前記書込手段による書き込みは、前記ｎ個のデータの読み出しに際してアクセスしたメモリ領域にあって、該アクセスの順と同一の順に書き込みを行う
ことを特徴とするインタリーブ装置。
【請求項５】
請求項４記載のインタリーブ装置において、
前記書込手段による書き込みは、前記ｎ個のデータを１個読み出すと、次の読み出しを行う前又は次の読み出しと同時に書き込む
ことを特徴とするインタリーブ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にディジタル通信の技術分野に関し、特にインタリーバ又はデインタリーバにおけるデータの読出および書込を行う装置に関する。
【０００２】
【従来の技術】
この種の技術分野では、信号伝送中におけるバースト誤り等に対処するためにインタリーブ（ｉｎｔｅｒｌｅａｖｅ）およびデインタリーブ（ｄｅ−ｉｎｔｅｒｌｅａｖｅ）が行われている。これは、送信側におけるインタリーバにて連続する送信データを一定の規則に従って時間的に分散させて送信し、受信側のデインタリーバにてその規則に従って送信データを再現する技術である。具体的には、適当なサイズの行列に行から行へ送信データを順に格納し、列から列へ順に読み出すことによって送信する。受信側では列から列へ受信データを順に行列に格納し、行から行へデータを読み出すことによって、送信データを再現する。
【０００３】
図１は、２バンク方式と呼ばれる手法でインタリーブを行う場合の動作を説明するための概念図を示す。例としてインタリーバを例にとって説明するが、デインタリーバでも同様な動作が行われる。このインタリーバは、インタリーブ・メモリ１０２より成り、インタリーブ・メモリ１０２は、第１および第２の２つのメモリ・バンク１０４および１０６を有する。第１，第２メモリ・バンク１０４，１０６は、それぞれ同一のメモリ・サイズを有する。
【０００４】
図中左側に示される矢印は、送信すべきディジタル・データである書込データを示す。書込データは例えば３８４ｋｂｐｓのパケット通信におけるデータであり、１フレームが１０ｍｓの期間を有する。この１フレーム分のデータ（３８４０ビット）が、インタリーブ・メモリ１０２の第１メモリ・バンク１０４に書き込まれる。書込は、行列の行から行に向かって行われる（ｍ×ｎ型の行列Ａｉｊであれば、Ａ１１，Ａ１２，．．．，Ａ１ｎ，Ａ２１，Ａ２２，．．．，Ａ２ｎ，Ａｍ１，Ａｍ２，．．．，Ａｍｎの順にデータが書き込まれる。）。この書込を行う間に、インタリーバは、既に書込済みの１フレーム分のデータを第２メモリ・バンク１０６から、列から列に向かってデータの読出を行う（ｍ×ｎ型の行列Ａであれば、Ａ１１，Ａ２１，．．．，Ａｍ１，Ａ１２，Ａ２２，．．．，Ａｍ２，Ａ１ｎ，Ａ２ｎ，．．．，Ａｍｎの順にデータが読み出される。）。データの書き込みおよび読み出しが終了すると、次のフレームのデータが、メモリ・バンク１０６に書き込まれ、その間にメモリ・バンク１０４に書き込まれているデータが読み出される。このように、２つのメモリ・バンクを交互に書き込み及び読み出すことにより、適切にインタリーブされたデータを連続的に読み出す（送信する）ことが可能になる。
【０００５】
しかしながら、この手法によれば、１フレーム分のデータをインタリーブするために２フレーム分のメモリを使用することとなり、多くの面積を使用してしまうという問題点がある。
【０００６】
一方、２バンク方式の代わりに、非常に高速な読み出しを行うことによって、２フレーム分のメモリを使用しないようにする手法もある。しかしながら、この手法によれば、極めて高速なデータの読み出しを必要とし、そのような動作を管理するための高速かつ複雑な時分割制御に起因して、消費電力が大きくなるという問題を招いてしまう。
【０００７】
このように、従来のインタリーブ（またはデインタリーブ）は、使用メモリ量や制御内容の複雑さ等の観点から、必ずしも効率的に行われていないという問題点がある。３ＧＰＰ（３ｒｄ　Ｇｅｎｅｒａｔｉｏｎ　ＰａｒｔｎｅｒｓｈｉｐＰｒｏｊｅｃｔ）等では１フレーム１０ｍｓで最高９６０ｋｂｐｓのような高いデータ・レートを使用するので、必要となるメモリ量や処理速度も高速化する傾向にある。そのような状況において、メモリの使用する面積や、消費電力が大きくなることは、携帯電話機のような小型の通信機器では特に不利なものとなる。
【０００８】
【発明が解決しようとする課題】
本願の一般的課題は、従来よりも効率的なインタリーブまたはデインタリーブを行うことを可能にする装置を提供することである。
【０００９】
本願の具体的課題は、メモリ量および消費電力を抑制しつつ適切なインタリーブまたはデインタリーブを行うことを可能にする装置を提供することである。
【００１０】
【課題を解決するための手段】
本発明による解決手段によれば、
インタリーバ又はデインタリーバにおけるデータの読み出し及び書き込みを連続的に行う装置であって、
アドレスで指定される場所にデータを格納することが可能なメモリ手段と、
前記メモリ手段からデータを読み出す読出手段と、
前記メモリ手段にデータを書き込む書込手段と、
所定の行列の少なくとも１行の行列要素の少なくとも１つである行要素を格納する行テーブル・メモリ手段と、
所定の行列の少なくとも１列の行列要素の少なくとも１つである列要素を格納する列テーブル・メモリ手段と、
前記行および列テーブル・メモリ手段から順に選択する行要素および列要素の和に基づいて、データの読み出し及び書き込みを行うための一連のアドレスを生成するアドレス生成手段
を有することを特徴とする装置
が、提供される。
【００１１】
【発明の実施の形態】
図２は、本願実施例によるインタリーバ２００に関する機能ブロック図を示す。簡単のため、インタリーバを例にとって説明するが、本発明をデインタリーバに適用することも可能である。インタリーバ２００は、送信データ２０２が入力され、インタリーブされたデータ２０４を出力するインタリーブ手段２０６を有する。インタリーブ手段２０６は、アドレスによって指定されるメモリ位置にデータを格納することが可能なメモリ手段２０８を有する。メモリ手段２０８は、例えば１フレーム以上のデータを保持することが可能なサイズの容量を有する。インタリーブ手段２０６は、メモリ手段２０８にデータを書き込む書込手段２１０およびメモリ手段２０８からデータを読み出す読出手段２１２を有する。インタリーブ手段２０６は、ブロック・インタリーブを行うための行置換又は列置換を行う置換手段２１３を有する。
【００１２】
インタリーバ２００は、インタリーブ手段２０６（メモリ手段２０８）に対して、書込または読出のためのアドレスを生成するアドレス生成手段２１４を有する。アドレス生成手段２１４には、読み出しの順序をカウントするカウンタ２１６が結合される。インタリーバ２００は、所定の行列の１行分の行列要素を格納することが可能な行テーブル・メモリ手段２１８と、その行列の１列分の行列要素を格納することが可能な列テーブル・メモリ手段２２０を有する。アドレス生成手段２１４は、カウンタ２１６からの読出又は書込順序と、行および列テーブル・メモリ手段２１８，２２０からの行要素および列要素とに基づいて、インタリーブ手段２０６に提供するアドレスを生成する。更に、インタリーバ２００は、カウンタ２１６からの通知信号に応答して、行および列テーブル・メモリ手段２１８，２２０に格納されている行要素および列要素を更新するテーブル更新手段２２２を有する。カウンタ２１６からの通知信号は、例えば１フレーム分のデータが読出された場合に発せられる。
【００１３】
図３は、図２に示されるような本願実施例によるインタリーバ２００の動作を説明するための図を示す。簡単のため、送信データ２０２の各フレーム内に１２個のデータが存在し、これらが３行４列の行列形式でデータを格納し得るメモリ手段２０８に書き込まれ、出力信号２０４として読み出されることによってインタリーブが行われるものとする。図３中、右上側の行列３０２は、１フレーム目のデータ（ｄ１１，．．．，ｄ１　１２）が行から行へ格納されている様子を示す。図中、左上側の行列３０４は、メモリ手段２０８のアドレスを示す。すなわち、このアドレスで指定される場所に、データが実際に書き込まれる。
【００１４】
行から行へ書き込まれたデータを、列から列に向かって（列方向に）データを読出すと、
ｄ１１，ｄ１５，ｄ１９，ｄ１２，ｄ１６，ｄ１　１０，ｄ１３，ｄ１７，ｄ１　１１，ｄ１４，ｄ１８，ｄ１　１２・・・（１）
のような適切にインタリーブされたデータ系列が得られる。すなわち、１フレーム目のデータｄ１１，ｄ１２，．．．，ｄ１　１２に対して、（１）のように並べ替えられた出力信号２０４が出力される。ここまでの動作は従来と同様である。
【００１５】
本実施例によれば、行列３０２から１フレーム目のデータの読み出しを行ったアドレスに対して、２フレーム目のデータを順に上書きしてゆく。１フレーム目のデータは、行列３０２に対して列方向に読み出されるので、行列３０６に示されるように、２フレーム目のデータｄ２１，ｄ２２，．．．，ｄ２　１２も列方向に書き込まれる。この２フレーム目のデータに対しても、１フレーム目と同様なインタリーブを行う必要があるが、行列３０６を行方向に読み出しても列方向に読み出しても適切にインタリーブされたデータ系列にはならない。
【００１６】
そこで、図３左上側の行列３０４で示される実際のアドレスを、左下側の行列３０８に示されるように並べ替えるような仮想的なアドレス変換を行う。これは、行列３０４の要素を列方向から順に読み出して行方向に並べ替えたものに相当する。行列のアドレスがこのように変換されるならば、各アドレスに対応して格納されている２フレーム目のデータは、図中中央下側の行列３１０で示されるように並べ替えられる。この仮想的に作成された行列３１０に対して、列方向にデータを読み出すと、
ｄ２１，ｄ２５，ｄ２９，ｄ２２，ｄ２６，ｄ２　１０，ｄ２３，ｄ２７，ｄ２　１１，ｄ２４，ｄ２８，ｄ２　１２・・・（２）
というデータ系列が得られる。上記のデータ系列（１）および（２）を比較すると、第２フレームのデータ系列も適切にインタリーブされていることが分かる。すなわち、行方向にアドレスが並べられている行列３０４のアドレスを、仮想的に並べ替えることによって行列３０８を想定し、この行列３０８の行列要素を列方向に抽出することによって得られる一連のアドレスに従ってデータを読み出すと、所望のインタリーブがなされたデータが得られる。
【００１７】
ところで、目下の例である３行４列の行列に対して、行方向に書き込んだデータを列方向に読み出す場合に、ｉ＋１番目（ｉ＝０，１，２，．．．，１１）に読み出されるアドレスａｄｄ（ｉ＋１）は、
ａｄｄ（ｉ＋１）＝Ｒｏｗ（ｉ／３）＋Ｃｏｌ（ｉ％３）　　・・・（３）
により算出することが可能である。ただし、ａｄｄ（ｉ＋１）が１１（最大値）を超える場合は１１で割った剰余をａｄｄ（ｉ＋１）の値とする。
【００１８】
Ｒｏｗ（ｋ）は、アドレスを規定する行列の第１行におけるｋ番目（ｋ＝０，１，２，３）の行列要素（行要素）であり、Ｃｏｌ（ｋ）は、アドレスを規定する行列の第１列におけるｋ番目（ｋ＝０，１，２）の行列要素（列要素）である。Ｒｏｗ（ｋ）は、行テーブル・メモリ手段２１８（図２）に格納される内容であり、第１フレームに対しては行列３０４の第１行の内容３０１であり、第２フレームに対しては行列３０８の第１行の内容３０５である。また、Ｃｏｌ（ｋ）は、列テーブル・メモリ手段２２０（図２）に格納される内容であり、第１フレームに対しては行列３０４の第１列の内容３０３であり、第２フレームに対しては行列３０８の第１列の内容３０７である。
【００１９】
ｉ／３は、ｉを３（行数）で割ったときの商であり（これは、ｉ　ｄｉｖ　３とも表現される）、
ｉ％３は、ｉを３（行数）で割ったときの剰余である（これは、ｉ　ｍｏｄ　３　とも表現される）。
【００２０】
（３）式によれば、右辺はＲｏｗおよびＣｏｌ以外の項を含まないので、アドレスの算出では、行列３０４又は３０８の総ての行列要素を知る必要はなく、第１行および第１列の行列要素を把握していれば足りることが分かる。すなわち、算出されるアドレスは、読み出しを行う順序（ｉ）と、行テーブル・メモリ手段２１８および列テーブル・メモリ手段２２０に格納されている内容とにより生成することが可能である。例えば、行列３０４に対しては、
Ｒｏｗ（０）＝０，Ｒｏｗ（１）＝１，Ｒｏｗ（２）＝２，Ｒｏｗ（３）＝３，
Ｃｏｌ（０）＝０，Ｃｏｌ（１）＝４，Ｃｏｌ（２）＝８　　・・・（４）
であるので、
ａｄｄ（１）＝Ｒｏｗ（０）＋Ｃｏｌ（０）＝０
ａｄｄ（２）＝Ｒｏｗ（１／３）＋Ｃｏｌ（１％３）＝０＋４＝４
ａｄｄ（３）＝Ｒｏｗ（２／３）＋Ｃｏｌ（２％３）＝０＋８＝８
ａｄｄ（４）＝Ｒｏｗ（３／３）＋Ｃｏｌ（３％３）＝１＋０＝１
ａｄｄ（５）＝Ｒｏｗ（４／３）＋Ｃｏｌ（４％３）＝１＋４＝５
・・・
ａｄｄ（１２）＝Ｒｏｗ（１１／３）＋Ｃｏｌ（１１％３）＝３＋８＝１１
となる。したがって、０，４，８，１，５，．．．，１１のアドレスによって指定されるデータを読み出せば、インタリーブされた１フレーム目のデータ系列、すなわち（１）で示されるデータ系列が得られる。
【００２１】
同様に、行列３０８に対しては、
Ｒｏｗ（０）＝０，Ｒｏｗ（１）＝４，Ｒｏｗ（２）＝８，Ｒｏｗ（３）＝１，
Ｃｏｌ（０）＝０，Ｃｏｌ（１）＝５，Ｃｏｌ（２）＝１０　・・・（５）
であるので、
ａｄｄ（１）＝Ｒｏｗ（０）＋Ｃｏｌ（０）＝０
ａｄｄ（２）＝Ｒｏｗ（１／３）＋Ｃｏｌ（１％３）＝０＋５＝５
ａｄｄ（３）＝Ｒｏｗ（２／３）＋Ｃｏｌ（２％３）＝０＋１０＝１０
ａｄｄ（４）＝Ｒｏｗ（３／３）＋Ｃｏｌ（３％３）＝４＋０＝４
ａｄｄ（５）＝Ｒｏｗ（４／３）＋Ｃｏｌ（４％３）＝４＋５＝９
・・・
ａｄｄ（１２）＝Ｒｏｗ（１１／３）＋Ｃｏｌ（１１％３）＝１＋１０＝１１となる。したがって、０，５，１０，４，９，．．．，１１のアドレスによって指定されるデータを読み出せば、インタリーブされた２フレーム目のデータ系列、すなわち（２）で示されるデータ系列が得られる。
【００２２】
図４は、以上に説明した手順のフローチャートを示す。以下、図２および図３を参照しながら、動作を説明する。ステップ４０２において、カウンタ２１６のカウンタ値（ｉ）およびその他の値が初期化される。これにより、読み出し及び書き込みを行う順序（ｉ＋１）が１に設定される（ｉ＝０）。また、行テーブル・メモリ手段２１８の内容が、行列３０４の第１行に設定される（Ｒｏｗ（ｋ）＝０，１，２，３）。行テーブル・メモリ手段２２０の内容は、行列３０４の第１列に設定される（Ｃｏｌ（ｋ）＝０，４，８）。
【００２３】
ステップ４０４において、アドレス生成手段２１４は、カウンタ２１６からのカウント値ｉ＝０に対して、式（３）に基づいてｉ＋１＝１番目に読み出すアドレスの値ａｄｄ（１）を算出する。この場合において、アドレス生成手段２１４は、行および列アドレス・メモリ手段２１８，２２０からの値を使用する。
【００２４】
ステップ４０６において、算出したアドレスで指定される場所に格納されているデータを読出手段２１２が読み出し、出力データ２０４として出力する。更に、読み出しを行ったアドレスａｄｄ（１）に、書込手段２１０を利用して、次のフレームの第１データｄ２１を上書きする。
【００２５】
ステップ４０８において、１フレーム分のデータの読出及び書込が終了したか否かが判定され、終了していなければ、ステップ４１０にてカウント値（ｉ）の値を１つインクリメントして、ステップ４０４に戻る。
【００２６】
１フレーム分のデータの読出及び書込が終了したならば、終了したことを通知する通知信号が、カウンタ２１６からテーブル更新手段２２２に送信される。この通知信号に応じて、ステップ４１２において、アドレスを定める行列を更新する。行列３０４を行列３０８に更新するのであるが、具体的にはテーブル更新手段２２２により、行テーブル・メモリ手段２１８の内容を、Ｒｏｗ（ｋ）＝０，４，８，１に変更し、列テーブル・メモリ手段２２０の内容を、Ｃｏｌ（ｋ）＝０，５，１０に変更する。以後、第２フレームのデータに対してもステップ４０４ないし４０８にて処理が行われ、インタリーブされたデータが出力される。後述するように、第３フレーム以降についても同様な処理を行うことによって、適切にインタリーブされたデータ系列が出力される。
【００２７】
図５は、図３に続いて行われるデータの読出及び書込を説明するための図である。図中中央上部に示される行列５１２は、図３の行列３１０に対して、（２）で示されるデータ系列に従って、データを読み出したのと同じアドレスに第３フレームのデータを順に書き込んだならば得られるであろう様子を示す。これらの行列３１０，５１２は仮想的なものであり、実際に存在するのは、図中右上側の行列５１４である（行列３０６のｄ２１，ｄ２５，ｄ２９，．．．の順序で、第３フレームのデータｄ３１，ｄ３２，ｄ３３，．．．が書き込まれている。）。
【００２８】
仮想的な行列５１２および図３の行列３０８の行列要素を、更に、行方向に並べ替えることを仮想的に行うことにより、行列３０８は行列５１６に変換され、行列５１２は行列５１８に変換される。この場合において、行および列テーブル・メモリ手段の内容は、
Ｒｏｗ（０）＝０，Ｒｏｗ（１）＝５，Ｒｏｗ（２）＝１０，Ｒｏｗ（３）＝４，
Ｃｏｌ（０）＝０，Ｃｏｌ（１）＝９，Ｃｏｌ（２）＝７　・・・（６）
となる。これらのテーブル・メモリ手段の内容を利用して、（３）式に従って読出及び書込を行う一連のアドレスを生成する。その結果生成されるアドレスは、
ａｄｄ（１）＝Ｒｏｗ（０）＋Ｃｏｌ（０）＝０
ａｄｄ（２）＝Ｒｏｗ（１／３）＋Ｃｏｌ（１％３）＝０＋９＝９
ａｄｄ（３）＝Ｒｏｗ（２／３）＋Ｃｏｌ（２％３）＝０＋７＝７
ａｄｄ（４）＝Ｒｏｗ（３／３）＋Ｃｏｌ（３％３）＝５＋０＝５
ａｄｄ（５）＝Ｒｏｗ（４／３）＋Ｃｏｌ（４％３）＝５＋９＝３（１４％１１）
・・・
ａｄｄ（１２）＝Ｒｏｗ（１１／３）＋Ｃｏｌ（１１％３）＝４＋７＝１１
となり、出力データ２０４として読み出されるデータ系列は、ｄ３１，ｄ３５，ｄ３９，．．．，ｄ３　１２　となり、第３フレームに対しても、適切にインタリーブされている。このデータの読出に続いて、第４フレームのデータを順に書き込んだならば得られる仮想的な行列が、中央下側の行列５２０であり、実際に生じる行列は右下の行列５２２である（行列５１４のｄ３１，ｄ３５，ｄ３９，．．．の順に、第４フレームのデータｄ４１，ｄ４２，ｄ４３，．．．が書き込まれている。）。
【００２９】
図６は、図５に続いて行われるデータの読出及び書込を説明するための図である。図５における仮想的な行列操作により想定されている行列５２０および５１６の行列要素を、更に、行方向に並べ替えることを仮想的に行う。これにより、行列５１６は行列６０２に変換され、行列５２０は行列６０４に変換される。この場合において、行および列テーブル・メモリの内容は、
Ｒｏｗ（０）＝０，Ｒｏｗ（１）＝９，Ｒｏｗ（２）＝７，Ｒｏｗ（３）＝５，
Ｃｏｌ（０）＝０，Ｃｏｌ（１）＝３，Ｃｏｌ（２）＝６　・・・（７）
となる。これらのテーブル・メモリ手段の内容を利用して、（３）式に従って読出及び書込を行う一連のアドレスを生成する。その結果生成されるアドレスは、
ａｄｄ（１）＝Ｒｏｗ（０）＋Ｃｏｌ（０）＝０
ａｄｄ（２）＝Ｒｏｗ（１／３）＋Ｃｏｌ（１％３）＝０＋３＝３
ａｄｄ（３）＝Ｒｏｗ（２／３）＋Ｃｏｌ（２％３）＝０＋６＝６
ａｄｄ（４）＝Ｒｏｗ（３／３）＋Ｃｏｌ（３％３）＝９＋０＝９
ａｄｄ（５）＝Ｒｏｗ（４／３）＋Ｃｏｌ（４％３）＝９＋３＝１（１２％１１）
・・・
ａｄｄ（１２）＝Ｒｏｗ（１１／３）＋Ｃｏｌ（１１％３）＝５＋６＝１１
となり、出力データ２０４として読み出されるデータ系列は、ｄ４１，ｄ４５，ｄ４９，．．．，ｄ４　１２　となり、第４フレームに対しても、適切にインタリーブされている。このデータの読出に続いて、第５フレームのデータを順に書き込んだならば得られる仮想的な行列が、中央上から２番目の行列６０６であり、実際に生じる行列は右上の行列６０８である（行列５２２のｄ４１，ｄ４５，ｄ４９，．．．の順に、第５フレームのデータｄ５１，ｄ５２，ｄ５３，．．．が書き込まれている。）。
【００３０】
更に、行列６０２および６０６の行列要素を、更に、行方向に並べ替えることを仮想的に行う。これにより、行列６０２は行列６１０に変換され、行列６０６は行列６１２に変換される。この場合において、行および列テーブル・メモリの内容は、
Ｒｏｗ（０）＝０，Ｒｏｗ（１）＝３，Ｒｏｗ（２）＝６，Ｒｏｗ（３）＝９，
Ｃｏｌ（０）＝０，Ｃｏｌ（１）＝１，Ｃｏｌ（２）＝２　・・・（８）
となる。これらのテーブル・メモリ手段の内容を利用して、（３）式に従って読出及び書込を行う一連のアドレスを生成する。その結果生成されるアドレスは、
ａｄｄ（１）＝Ｒｏｗ（０）＋Ｃｏｌ（０）＝０
ａｄｄ（２）＝Ｒｏｗ（１／３）＋Ｃｏｌ（１％３）＝０＋１＝１
ａｄｄ（３）＝Ｒｏｗ（２／３）＋Ｃｏｌ（２％３）＝０＋２＝２
ａｄｄ（４）＝Ｒｏｗ（３／３）＋Ｃｏｌ（３％３）＝３＋０＝３
ａｄｄ（５）＝Ｒｏｗ（４／３）＋Ｃｏｌ（４％３）＝３＋１＝４
・・・
ａｄｄ（１２）＝Ｒｏｗ（１１／３）＋Ｃｏｌ（１１％３）＝９＋２＝１１
となり、出力データ２０４として読み出されるデータ系列は、ｄ５１，ｄ５５，ｄ５９，．．．，ｄ５　１２　となり、第５フレームに対しても、適切にインタリーブされている。このデータの読出に続いて、第６フレームのデータを順に書き込んだならば得られる仮想的な行列が、中央下側の行列６１４であり、実際に生じる行列は右下の行列６１６である（行列６０８のｄ５１，ｄ５５，ｄ５９，．．．の順に、第６フレームのデータｄ６１，ｄ６２，ｄ６３，．．．が書き込まれている。）。
【００３１】
ところで、行列６１６は、第６フレームを実際に行方向に書き込んだものに等しい。これは、仮想的なアドレス変換を繰り返すと、元のアドレスに戻ることを意味する。行列６１４は更に変換すれば図３の行列５０４と同一になる。したがって、行テーブル・メモリ手段２１８，列テーブル・メモリ手段２２０で使用するデータの種類は有限個であり、予め知ることが可能である。更に、行および列テーブル・メモリの内容は、それぞれ、
Ｒｏｗ（ｋ）＝Ｒ（１）×ｋ　（ｋ＝０，１，２，３），
Ｃｏｌ（ｋ）＝Ｃ（１）×ｋ　（ｋ＝０，１，２）
と、一般的に表現することが可能である。ただし、１１（最大値）を超える値となったときは、１１で除算した剰余をとるものとする。従って、行および列テーブル・メモリ手段は、少なくともＲ（１）またはＣ（１）が既知であれば、他の値を生成することが可能である。そして、Ｒ（１）は、前回の行列において２番目に読出されたもの（ａｄｄ（２））に等しい。例えば、（５）式におけるＲ（１）は、行列３０４（図３）におけるａｄｄ（２）に等しい。Ｃ（１）は行列３０４におけるａｄｄ（５）に等しい。従って、Ｒ（１），Ｃ（１）の総ての値を別途格納する必要はなく、行列の更新時にその都度求めることができる。更に、行および列テーブル・メモリの内容に関する（４）ないし（８）を参照すると、Ｒ（１）＝１，４，５，９，３であり、Ｃ（１）＝４，５，９，３，１であり、一方を１つずらせば他方を知ることが可能である。
【００３２】
要するに、適切なアドレス値を生成するために仮想的に生成する行列３０８（図３），５１６（図５），６０２（図６）および６１０の総ての行列要素を保持する必要はなく、各行列に関するＲｏｗ（ｋ）およびＣｏｌ（ｋ）が把握されていれば充分である。しかも、Ｒｏｗ（ｋ）はＲ（１）が既知ならば他の値を導出することが可能であり、Ｃｏｌ（ｋ）もＣ（１）が既知なら他の値を導出することができる。更に、Ｒ（１）およびＣ（１）は、一方から他方を導出することが可能である。このため、非常に少ないデータ量を保持しておけば（極端にはＲ（１）のみ又はＣ（１）のみ）、行列３０８ないし６１０の行列要素（一連のアドレス）を適切に生成することが可能である。
【００３３】
図７は、本発明によるインタリーバ２００を利用してブロック・インタリーブを行うための動作を説明する図を示す。先ず、右上の行列７０２に示すように３行４列の行列形式で行から行に第１フレームのデータが書き込まれており、この行列のアドレスは図中左上の行列７０４のように定めれているとする。行テーブル・メモリ手段２１８には７０１で示される内容が格納され、列テーブル・メモリ２２０には７０３で示される内容が格納される。
【００３４】
次に、ブロック・インタリーブを行うために、置換手段２１３（図２）を利用して、右側の上から２番目の行列７０６に示されるように、行列７０２の例えば第２列および第３列を入れ替える。この場合において、行テーブル・メモリ手段２１８の内容も７０１から７０５に変更される。
【００３５】
列の置換が終了すると、行から行へ書き込まれた行列７０６の行列要素を、列から列へ読み出し、出力データとして出力する。出力されるデータ系列は、
ｄ１１，ｄ１５，ｄ１９，ｄ１３，ｄ１７，ｄ１　１１，ｄ１２，ｄ１６，ｄ１　１０，ｄ１４，ｄ１８，ｄ１　１２　・・・（９）
となる。更に、右下の行列７０８に示されるように、第１フレームの読み出しを行ったのと同一のアドレスに第２フレームの内容を順に上書きする。
【００３６】
次に、アドレスに関する行列７０７に対して、列から列に行列要素を抽出し、行から行へ並べ替えるような仮想的な行列変換を行うことによって、行列７１０を想定する。この行列７１０により定められるデータ配列は、中央上側の行列７１２のようになる。
【００３７】
これらの行列７１０，７１２に対して、第２列および第３列を置換すると、行列７１０は左下側の行列７１４となり、行列７１２は中央下側の行列７１６となる。そして、列から列へ順にデータを読み出すと、
ｄ２１，ｄ２５，ｄ２９，ｄ２３，ｄ２７，ｄ２　１１，ｄ２２，ｄ２６，ｄ２　１０，ｄ２４，ｄ２８，ｄ２　１２　・・・（１０）
というデータ系列が得られ、（９）に示すデータ系列と同様にブロック・インタリーブが良好に行われている。以後は、先に説明したのと同様な手順を行うことにより、第３フレーム以降のブロック・インタリーブが行われる。
【００３８】
なお、ブロック・インタリーブに関して、任意の列を入れ替えることが可能である。また、列だけでなく行を入れ替えても良いし、行および列両者を入れ替えてもよい。更に、ブロック・インタリーブと同様に、ブロック・デインタリーブを行うことも可能である。ただし、ブロック・インタリーブ又はブロック・デインタリーブのための行又は列の置換は、データの読出前と、次のデータの書込後の行列更新後に行うべき点に留意を要する。
【００３９】
以上本願実施例によれば、所定の行列の１行の行要素および一列の列要素を格納する行および列テーブル・メモリ手段と、行および列テーブル・メモリ手段から順に選択した行要素および列要素の和に基づいて、一連のアドレスを生成するアドレス生成手段を使用している。所望のインタリーブ又はデインタリーブに関連する一連のアドレスに従って、データの読み出し及び書き込みを行うので、効率的なインタリーブ又はデインタリーブを行うことが可能になる。
【００４０】
本願実施例によれば、読出手段および書込手段が、一連のアドレスに従って、メモリ手段における読み出しを行ったアドレスに対して次のデータを上書きするよう形成される。言い換えれば、書込手段２１０は、「ｎ個のデータ」を書き込んだ後に、「次のｎ個のデータ」を書き込むのであるが、「次のｎ個のデータ」のうち少なくとも一部は、「ｎ個のデータ」が総て読み出される前にメモリ手段２０８に書き込む。この場合において、「ｎ個のデータ」を読み出す順序は、書き込んだ順序とは異なる所定の順序である。また、書込手段による書き込みは、「ｎ個のデータ」の読み出しに際してアクセスしたメモリ領域にあって、該アクセスの順序と同一の順序で行われる。更に、「ｎ個のデータ」のうち１個を読み出し、次の読み出しを行う前に、又は次の読み出しと同時に、書き込みが行われるようにすることができる。このため、インタリーブ又はデインタリーブの対象となるデータ量と同程度のメモリ量を使用することによって、インタリーブ等を行うことが可能になる。読み込んだ後に逐次上書きしてゆくので、過度に高速の読み込みを必要としない。
【００４１】
ｍ行ｎ列の所定の行列は、１行および１列の行列要素があれば、総ての行列要素を特定することが可能になるので、１フレーム分のメモリに加えて、高々１行および１列分のメモリ容量を付加すれば本願実施例によるインタリーバを構築することが可能になる。
【００４２】
本願実施例によれば、所定数のデータの読み出し及び書き込みが完了する毎に、所定の行列が更新され、行から行へ（又は列から列へ）行列要素を並べることにより形成される更新前の行列を、列から列へ（又は行から行へ）行列要素を並べ替えることによって、更新後の行列が形成される。このように次々と更新される行列を仮想的に想定し、インタリーブ等におけるデータの読み出し及び書き込みを行うためのアドレスを効果的に生成することが可能になる。更に、この仮想的な行列は、高々１行の行列要素および１列の行列要素に基づいて、総ての行列要素を特定することが可能である。すなわち、ｍ行ｎ列総ての行列要素を保持する必要はなく、１行および１列の行列要素が把握できれば総ての行列要素を特定できる。
【００４３】
本願実施例によれば、行又は列テーブル・メモリ手段におけるｉ＋１（ｉ≧０）番目の行要素又は列要素が、ｉに比例するよう形成される。ｍ行ｎ列の所定の行列を特定するのに必要な１行および１列の行列要素が、所定の比例定数にｉを乗じた簡易な計算によりその都度求められるので、１行総ておよび１列総てを記憶しなくて済むのでメモリ量を節約することが可能になる。
【００４４】
本願実施例によれば、行又は列テーブル・メモリ手段に含まれる行又は列要素のいずれかが、比例定数に等しくなるよう形成される。これは具体的にはゼロから数えて１番目の行要素又は列要素である。既に把握している行列要素の知識を利用して、比例定数ひいては任意の行列要素を簡易に求めることが可能になる。
【００４５】
本願実施例では、説明の便宜上３行４列の小規模の行列を例にとって説明したが、本発明は任意の規模の行列に拡張して使用することが可能である。（３）式をｍ行ｎ列の一般的な行列に拡張すると、ｉ＋１番目（０≦ｉ≦ｍ・ｎ−１）に読み出されるアドレスは、
Ｒｏｗ（ｉ／ｍ）＋Ｃｏｌ（ｉ％ｍ）　・・・（３）’
により求められる。この場合において、
Ｒｏｗは、引数に対応する行要素を返す関数であり、
Ｃｏｌは、引数に対応する列要素を返す関数であり、
ｍは、所定の行列の行数であり、
ｉ／ｍは、ｉをｍで割ったときの商であり、
ｉ％ｍは、ｉをｍで割ったときの剰余である。
【００４６】
本願実施例では、なお、行方向に格納した行列要素を列方向に読み出す場合のアドレスを生成するためのものであった。しかし、ＲｏｗおよびＣｏｌ関数の引数が商であるか剰余であるかを適切に修正することによって、列方向に格納して行方向に読み出す場合に本発明を応用することも可能である。
【００４７】
本願実施例では、アドレス値は０から始まっていたが、他の値から開始するようにすることも可能である。ただし、その場合は、（３）又は（３）’において０以外の初期アドレス値に関連するオフセット項を付加する必要がある。
【００４８】
本願実施例によれば、ブロック・インタリーブ又はブロック・デインタリーブを行うための行置換又は列置換を行う置換手段が、所定数のデータの読み出し及び書き込みが行われる前、および行列の更新後に、行置換又は列置換を行うよう形成される。このようにすることによって、ブロック・インタリーブ等にも本発明を適用することが可能になる。
【００４９】
以下、本発明が教示する手段を列挙する。
（付記１）　インタリーバ又はデインタリーバにおけるデータの読み出し及び書き込みを連続的に行う装置であって、
アドレスで指定される場所にデータを格納することが可能なメモリ手段と、
前記メモリ手段からデータを読み出す読出手段と、
前記メモリ手段にデータを書き込む書込手段と、
所定の行列の少なくとも１行の行列要素の少なくとも１つである行要素を格納する行テーブル・メモリ手段と、
所定の行列の少なくとも１列の行列要素の少なくとも１つである列要素を格納する列テーブル・メモリ手段と、
前記行および列テーブル・メモリ手段から順に選択する行要素および列要素の和に基づいて、データの読み出し及び書き込みを行うための一連のアドレスを生成するアドレス生成手段
を有することを特徴とする装置。
（付記２）　付記１記載の装置において、前記読出手段および書込手段が、前記一連のアドレスに従って、前記メモリ手段における読み出しを行ったアドレスに対して次のデータを上書きするよう形成されることを特徴とする装置。
（付記３）　付記１記載の装置において、更に、所定数のデータの読み出し及び書き込みが完了する毎に前記所定の行列が更新されるように、行要素および列要素を更新するテーブル・メモリ更新手段を有することを特徴とする装置。
（付記４）　付記３記載の装置において、行から行へ又は列から列へデータを並べることによって形成される更新前の行列を、列から列へ又は行から行へデータを並べ替えることによって、更新後の行列が形成されることを特徴とする装置。（付記５）　付記１記載の装置において、前記行又は列テーブル・メモリ手段におけるｉ＋１（ｉ≧０）番目の行要素又は列要素が、ｉに比例するよう形成されることを特徴とする装置。
（付記６）　付記５記載の装置において、前記行又は列テーブル・メモリ手段に含まれる行又は列要素のいずれかが、比例定数に等しくなるよう形成されることを特徴とする装置。
（付記７）　付記１記載の装置において、前記アドレス生成手段は、前記一連のアドレスにおけるｉ＋１（ｉ≧０）番目のアドレスが、
Ｒｏｗ（ｉ／ｍ）＋Ｃｏｌ（ｉ％ｍ）
により求められるよう形成され、
Ｒｏｗは、引数に対応する行要素を返す関数であり、
Ｃｏｌは、引数に対応する列要素を返す関数であり、
ｍは、前記所定の行列の行数であり、
ｉ／ｍは、ｉをｍで割ったときの商であり、
ｉ％ｍは、ｉをｍで割ったときの剰余である
ことを特徴とする装置。
（付記８）　付記１記載の装置において、ブロック・インタリーブ又はブロック・デインタリーブを行うための行置換又は列置換を行う置換手段を有することを特徴とする装置。
（付記９）　付記８記載の装置において、前記置換手段が、所定数のデータの読み出し及び書き込みが行われる前、および前記所定の行列の更新後に、行置換又は列置換を行うよう形成されることを特徴とする装置。
（付記１０）　ｎ個のデータを順にメモリに書き込み、書き込んだｎ個のデータを該メモリから読み出すインタリーブ装置において、
ｎ個のデータの書き込み後、次のｎ個のデータを書き込む書込手段であって、該次のｎ個のデータのうち少なくとも一部については、書き込んだ該ｎ個のデータ総ての所定の順序（書き込み順とは異なる順序）による読み出し前に該メモリに書き込む書込手段と、
該書込手段におり順に書き込みを行った次のｎ個のデータについても前記所定の順序による読み出しを行う読出手段と、
を備えたことを特徴とするインタリーブ装置。
【００５０】
（付記１１）　付記１０記載のインタリーブ装置において、
前記書込手段による書き込みは、前記ｎ個のデータの読み出しに際してアクセスしたメモリ領域にあって、該アクセスの順と同一の順に書き込みを行う
ことを特徴とするインタリーブ装置。
【００５１】
（付記１２）　付記１１記載のインタリーブ装置において、
前記書込手段による書き込みは、前記ｎ個のデータを１個読み出すと、次の読み出しを行う前又は次の読み出しと同時に書き込む
ことを特徴とするインタリーブ装置。
【００５２】
【発明の効果】
以上のように本発明によれば、従来よりも効率的なインタリーブまたはデインタリーブを行う行うことが可能になる。また、メモリ量および消費電力を抑制しつつ適切なインタリーブまたはデインタリーブを行うことも可能になる。
【００５３】
【図面の簡単な説明】
【図１】図１は、従来のインタリーバで行われる動作を説明するための概念図を示す。
【図２】図２は、本願実施例によるインタリーバの機能ブロック図を示す。
【図３】図３は、本願実施例によるインタリーバの動作を説明するための図を示す。
【図４】図４は、本願実施例によるインタリーバの動作を説明するためのフローチャートを示す。
【図５】図５は、図３に続いて行われるデータの読出及び書込を説明するための図である。
【図６】図６は、図５に続いて行われるデータの読出及び書込を説明するための図である。
【図７】図７は、本発明によるインタリーバを利用してブロック・インタリーブを行うための動作を説明する図を示す。
【符号の説明】
１０２　インタリーブ・メモリ
１０４　第１メモリ・バンク
１０６　第２メモリ・バンク
２００　インタリーバ
２０２　送信データ
２０４　出力データ
２０６　インタリーブ手段
２０８　メモリ手段
２１０　書込手段
２１２　読出手段
２１４　アドレス生成器
２１６　カウンタ
２１８　行テーブル・メモリ手段
２２０　列テーブル・メモリ手段
２２２　テーブル更新手段
【図１】
2004096492.tif 000003
【図２】
2004096492.tif 000004
【図３】
2004096492.tif 000005
【図４】
2004096492.tif 000006
【図５】
2004096492.tif 000007
【図６】
2004096492.tif 000008
【図７】
2004096492.tif 000009