(57)【特許請求の範囲】
【請求項１】
ＢＳデジタル放送におけるインターリーブ回路であって、インターリーブメモリと、該インターリーブメモリからデータを読み出すアドレス指定をし、データが読み出されたアドレスに、順次入力されてくるデータを格納するべくアドレス指定をし、かつ該格納されたデータをインターリーブして読み出すアドレス指定をするアドレス発生手段とを備え、
アドレス発生手段は、ＳをＢＳデジタル放送における１フレームを構成するスロット数とし、ｍをＢＳデジタル放送における１スロットを構成する主信号数とし、ｎをＢＳデジタル放送の１スーパーフレームを構成するフレーム数であるインターリーブの深さとしたとき、
入力される主信号の数を計数するｍ進カウンタと、
ｍ進カウンタのキャリを計数するＳ進カウンタと、
Ｓ進カウンタの計数値に（ｎ×ｍ）を乗算する乗算器と、
計数主信号値が（ｍ―１）に達したときインターリーブの深さをインクリメントしてスロット方向に主信号を計数し、同様に順次繰り返して計数値が（ｎ×ｍ）に達するまで計数するオフセット値計数手段と、
乗算器の出力とオフセット値計数手段の計数値とを加算する加算手段と、
を備え、加算手段の出力をアドレスデータＡとすることを特徴とするインターリーブ回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＢＳデジタル放送に用いられるインターリーブ回路に関する。
【０００２】
【従来の技術】
ＢＳデジタル放送に用いられるインターリーブ方式は（イ）スーパーフレーム単位でのブロックインターリーブであり、（ロ）インターリーブはフレーム方向で深さ８であり、（ハ）同一スロット毎の処理となり、フレーム構成に依存しないという特徴がある。
【０００３】
次に、インターリーブ回路におけるデータのインターリーブメモリへの書き込み、読み出しに関して、その手順について説明する。図１２はインターリーブメモリへの書き込み手順を示す。フレーム＃１におけるスロット＃１の１バイト目を先頭に、スロット方向に順に書きこむ。ここで、メモリアドレスを配列表示し、（フレーム番号、スロット番号、バイト番号）とすると、先頭は（０，０，０）である。１スロット目の最終アドレスは（０，０，２０２）となり、次はスロット＃２の先頭に進む。同様にしてフレーム最終値（０，４７，２０２）まで到達した場合は次のフレームとなり（１，０，０）からスタートする。このように、８フレーム（スーパーフレーム）全ての書き込みが終了すると、後記するように、書き込みメモリが切り替わり、再び次のスーパーフレームのインターリーブ書き込みをスタートする。
【０００４】
アドレスを絶対アドレスで表示した場合は次のようになる。１スロットは２０３バイト、１フレームは４８スロット、１スーパーフレームは８フレームであるから、「絶対アドレス＝フレーム番号×９７４４＋スロット番号×２０３＋バイト番号」となる。ここで、９７４４は１フレーム分のバイト数であり、２０３バイト×４８スロットである。アドレス０番地から入力されるバイトデータを順次書き込むことになる。
【０００５】
次に、インターリーブの読み出し手順を図１３に示す。読み出し手順は書き込み手順と異なり、フレーム方向に沿って読み出す。先頭は（０，０，０）である。次はフレーム＃２の先頭バイト（１，０，０）となり、フレーム＃７の（７，０、０）まで読み出した後、フレーム＃１の２バイト目に移る。フレーム方向への読み出しは１スロット分の２０３バイトを読み出し終えるまで繰り返される。これまでがインターリーブ後のスロット＃１となる。従って、インターリーブ後の多重化フレーム構成も、インターリーブ前の構成と変わることはない。
【０００６】
次に、スロット＃２に移り、同様にフレーム方向への読み出しを始める。１スロット目の最終アドレスは（２，０，２５）、また、１フレーム目の最終アドレスは（２，４７，２５）となる。２フレーム目は図に示すようにスロット＃１上に戻り、１フレーム目の１スロット目の最終アドレス（２，０，２５）の次である（３，０，２５）からスタートする。
【０００７】
このように、メモリを利用してインターリーブを行う場合、そのアドレス発生器が重要となる。図１４は従来のインターリーブ回路の構成を示す模式ブロック図である。ここでは、伝送モードの一例として、４６スロットをＴＣ（トレリス符号）８ＰＳＫで伝送し、１スロットをＱＰＳＫ，符号化率ｒ＝１／２で伝送し、ダミーを１スロットとした場合を例示している。
【０００８】
インターリーブメモリには実際には、連続的にデータが入力されることから、１スーパーフレーム分の記憶容量を有するインターリーブメモリ１およびインターリーブメモリ２の２スーパーフレーム分のメモリ、書き込みアドレス発生器３および読み出しアドレス発生器４を用いて、インターリーブメモリ１に書き込みを行っている場合にはインターリーブメモリ２からダミースロットを除いて読み出し、インターリーブメモリ２に書き込みを行っている場合にはインターリーブメモリ１からダミースロットを除いて読み出すように制御している。これにより、１つのインターリーブメモリに同時に書き込み読み出しをすることはなく、読み出すように制御している。
【０００９】
この結果、１つのインターリーブメモリに同時に書き込み、読み出しをすることはなく、読み出しが終了していないデータへの上書きが防止できる。インターリーブメモリへの書き込みデータは、先頭１バイトを除いた２０３バイト区間で、ダミースロットも含めて書き込む。書き込みアドレスは書き込みアドレス発生器３にて生成され、同様に読み出しアドレスは読み出しアドレス発生器４にて発生される。これらアドレス発生器３および４は入力されているスーパーフレームタイミング信号によってタイミングを一致させられて動作するようになっている。
【００１０】
一方、読み出しデータはインターリーブされた２０３バイト区間のデータとなるが、ダミースロットは伝送しないため出力しない。これは、読み出しアドレス発生器４にて、ダミースロット部のアドレスは飛ばすように制御することで可能となる。ただし、伝送方式によって内符号化速度が異なることから、図１４の例ではＱＰＳＫ、ｒ＝１／２のスロットの読み出し速度は、ＴＣ８ＰＳＫのスロットに比べ半分の速度で読み出すことになる。
【００１１】
【発明が解決しようとする課題】
しかしながら、従来のインターリーブ回路によるときは、インターリーブを行うために２スーパーフレーム分の記憶容量を有するインターリーブメモリを必要とする。その容量は、「２０３（バイト）×４８（スロット）×８（フレーム）×２＝１５５９０４バイト」にも及びＬＳＩ化等に対して大きな負担になるという問題点があった。
【００１２】
本発明はインターリーブメモリの記憶容量が少なくてすむインターリーブ回路を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明にかかるインターリーブ回路は、ＢＳデジタル放送におけるインターリーブ回路であって、インターリーブメモリと、該インターリーブメモリからデータを読み出すアドレス指定をし、データが読み出されたアドレスに、順次入力されてくるデータを格納するべくアドレス指定をし、かつ該格納されたデータをインターリーブして読み出すアドレス指定をするアドレス発生手段とを備え、
アドレス発生手段は、ＳをＢＳデジタル放送における１フレームを構成するスロット数とし、ｍをＢＳデジタル放送における１スロットを構成する主信号数とし、ｎをＢＳデジタル放送の１スーパーフレームを構成するフレーム数であるインターリーブの深さとしたとき、
入力される主信号の数を計数するｍ進カウンタと、
ｍ進カウンタのキャリを計数するＳ進カウンタと、
Ｓ進カウンタの計数値に（ｎ×ｍ）を乗算する乗算器と、
計数主信号値が（ｍ―１）に達したときインターリーブの深さをインクリメントしてスロット方向に主信号を計数し、同様に順次繰り返して計数値が（ｎ×ｍ）に達するまで計数するオフセット値計数手段と、
乗算器の出力とオフセット値計数手段の計数値とを加算する加算手段と、
を備え、加算手段の出力をアドレスデータＡとすることを特徴とする。
【００１４】
本発明にかかるインターリーブ回路によれば、アドレス発生手段により指定されたインターリーブメモリのアドレスからデータが読み出され、データが読み出されたアドレスに順次入力されてくるデータを格納するべくアドレス指定がされ、かつ該格納されたデータをインターリーブして読み出すアドレス指定がなされる。したがってインターリーブメモリの記憶容量は少なくて済むことになる。
【００１５】
【発明の実施の形態】
次に、本発明にかかるインターリーブ回路を実施の形態によって説明する。
【００１６】
図１は本発明の実施の一形態にかかるインターリーブ回路の構成を示す模式ブロック図である。本発明の実施の一形態にかかるインターリーブ回路はトレリス符号方式（ＴＣ）８ＰＳＫが４６スロット、ＱＰＳＫ（符号化率ｒ＝１／２）が１スロット、ダミーが１スロットの場合を例示している。
【００１７】
本発明の実施の一形態にかかるインターリーブ回路は、スーパーフレームタイミング信号および伝送モード信号を受けてアドレスデータ、読み書き信号（Ｒ／Ｗ）および書き込みゲート信号を送出するアドレス発生器５と、データ、アドレスデータおよび読み書き信号を受けて、読み書き信号による書き込み指示に基づいて指示されたアドレス位置にデータを書き込み、読み出し指示に基づいて指示されたアドレス位置からデータを読み出すインターリーブメモリ６と、スーパーフレームタイミング信号を１スロット期間遅延させてバッファ読み出しスタート信号を発生するタイマー７と、書き込みゲート信号とバッファ読み出しスタート信号を受けてインターリーブメモリ６から読み出されたデータを書き込み、読み出すバッファメモリ８とを備えている。
【００１８】
ここで、アドレス発生器５において、伝送モード信号に基づいてダミースロットを判別し、伝送モード信号に基づいて決まるダミースロットの位置を抜かした書き込みゲート信号を生成してバッファメモリ８においてダミースロットを削除する。
【００１９】
上記のように本発明の実施の一形態にかかるインターリーブ回路では、従来２スーパーフレームのインターリーブメモリを使用して交互に書き込み、読み出しを行っていたのに代わって、読み出し終えたアドレスに、次の入力されたデータを書き込むことでアドレス発生器５を１つとし、また、インターリーブメモリ６も１スーパーフレーム分の記憶容量としている。さらに、インターリーブメモリ６からの出力はダミースロットも含めた２０３バイト区間の多重化フレーム構成となるため、１スロット長程度のＦＩＦＯからなるバッファメモリ８によりダミースロットの削除、速度変換を行う。
【００２０】
本発明の実施の一形態にかかるインターリーブ回路における各信号のタイミングチャートを図２に示す。図２は１フレーム分のタイミングチャートを示している。４６スロットをＴＣ８ＰＳＫで、１スロットをＱＰＳＫ（ｒ＝１／２）で伝送する場合を例示し、アドレス（図２（ｂ））以外の動作はフレーム単位での繰り返しとなる。
【００２１】
スーパーフレームタイミング信号であるスーパーフレームパルス（図２（ａ））によってアドレス発生器５およびタイマー７は初期化され、インターリーブメモリ６への書き込みがスタートされる。Ｒ／Ｗ信号（図２（ｄ））は高電位で読み出し動作となり、低電位で書き込み動作となる。アドレス発生器５から出力されたアドレス（図２（ｂ））に対して、まずインターリーブ後のデータ（図２（ｅ））を読み出し、続いて同じアドレスにインターリーブ前のデータ（図２（ｃ））の書き込みを行う。図２のタイミングチャートの斜線部分はダミーデータである。
【００２２】
インターリーブされて読み出されたデータはバッファメモリ８に入力され、ダミーデータのある伝送モードについては、符号化速度の変換が行われる。ダミーデータはバッファメモリ８に書き込まれないように、伝送モードに応じてアドレス発生器５からバッファメモリ書き込みゲート信号（図２（ｆ））が出力される。バッファメモリ書き込みゲート信号が低電位の場合にはバッファメモリ８への書き込みは行われない。バッファメモリ８の記憶容量は高々１スロット分あれば十分である。
【００２３】
したがって、バッファメモリ８からデータの読み出しは、スーパーフレームパルスを１スロット遅延してタイマー７にて生成したバッファ読み出しスタート信号（図２（ｇ））から読み出しを開始させ、バッファメモリ８からデータ（図２（ｈ））を読み出させる。本例では、伝送効率１．０のＱＰＳＫ（ｒ＝１／２）が１スロット分あるので、その１スロットは１／２の速度で出力する（図２（ｈ）のスロット＃４７）。
【００２４】
次に、アドレス発生器５について説明する。アドレス発生器５の詳細な説明をする前に、インターリーブの深さｎ×ブロック長ｍ＝４×５のインターリーブを例にアドレッシングについて説明する。
【００２５】
図３および図４はインターリーブの深さｎ×ブロック長ｍ＝４×５のインターリーブを説明する模式図である。図３ではメモリマトリックスのセルの上段にはアドレスが記載され、下段にはデータ番号が記載され、図４ではアドレスの一覧表が示してある。図３（ａ）に示すメモリマトリクス上にまずデータを書き込む。アドレス発生器５からは順次、Ａ［０］、Ａ［１］、Ａ［２］、Ａ［３］、Ａ［４］、Ａ［５］…、Ａ［１８］、Ａ［１９］が出力され、データが書き込まれる。この書き込まれるデータストリームは常にＤ［０］、Ｄ［１］、Ｄ［２］、Ｄ［３］、Ｄ［４］、Ｄ［５］…、Ｄ［１８］、Ｄ［１９］の順番である。アドレス発生器５からのアドレスが単にインクリメントであることから、これを基本アドレスセットとする。
【００２６】
次に、インターリーブメモリ６からの読み出しは深さ方向にすればよいから、読み出しアドレス順はＡ［０］、Ａ［５］、Ａ［１０］、Ａ［１５］、Ａ［１］、Ａ［6］…、Ａ［14］、Ａ［19］となり、インターリーブメモリ６から出力されるデータ順番はＤ［０］、Ｄ［５］、Ｄ［１０］、Ｄ［１５］、Ｄ［１］、Ｄ［６］…、Ｄ［１４］、Ｄ［１９］である。このアドレス順をアドレスセット（番号）１とする。読み出されたアドレス上には、図３（ｂ）の様に次組のデータがＤ［０］、Ｄ［１］、Ｄ［２］、Ｄ［３］、Ｄ［４］、Ｄ［５］…、Ｄ［１８］、Ｄ［１９］の順番で書き込まれる。
【００２７】
アドレスセット１によって書き込まれたデータをインターリーブして読み出すには、アドレスをＡ［０］、Ａ［６］、Ａ［１２］、Ａ［１８］、Ａ［５］、Ａ［１１］…、Ａ［１３］、Ａ［１９］のように発生させれば、読み出されたデータは、Ｄ［０］、Ｄ［５］、Ｄ［１０］、Ｄ［１５］、Ｄ［１］、Ｄ［６］…、Ｄ［１４］、Ｄ［１９］となり、正しくインターリーブされていることが判る。これが、アドレスセット（番号）２となる。この読み出されたアドレス上に、図３（ｃ）のように次組のデータがＤ［０］、Ｄ［１］、Ｄ［２］、Ｄ［３］、Ｄ［４］、Ｄ［５］…、Ｄ［１８］、Ｄ［１９］の順番で書き込まれる。
【００２８】
このアドレッシングについて一覧表にまとめたのが図４である。最上行にアドレスセット番号ｘ、最左列にアドレス番号ｙを表示している。アドレスセット番号“０”は基本アドレスセットである。また、アドレスはアドレス番号順に発生していくものとする。基本アドレスセット順に書き込まれたデータはアドレスセット番号１の順で読み出され、同アドレスセット番号１によって書き込まれたデータはアドレスセット番号２の順に読み出されることによってインターリーブされることが判る。
【００２９】
図４によりインターリーブを行う手順について説明する。
（１）アドレスセット番号ｘ＝０から読み出し、
（２）アドレスセット番号ｘ＝０に書き込み、
（３）アドレスセット番号ｘ＝１から読み出し、
（４）アドレスセット番号ｘ＝１に書き込み、
（５）アドレスセット番号ｘ＝２から読み出し、
（６）アドレスセット番号ｘ＝２に書き込み、
…
（１７）アドレスセット番号ｘ＝８から読み出し、
（１８）アドレスセット番号ｘ＝８に書き込み、
（１９）アドレスセット番号ｘ＝９（＝０）から読み出し、
となって、データが読み出されたアドレスに、入力されたデータが順次書き込まれる。このようにｍ×ｎ＝５×４でのインターリーブにおけるアドレス指定は、アドレスセット番号ｘが９の周期で巡回する。アドレスセット番号の周期が９でこれを周期Ｘと記す。周期Ｘ＝０は意味がなく、Ｘ＝０は除く。アドレスセット番号ｘの周期Ｘについては後記する
【００３０】
次に、このアドレッシングを一般式化する。インターリーブの深さをｎ、書き込み方向のデータ数（ブロック長）をｍ、アドレスセット番号をｘ、アドレス番号をｙ、アドレスをＡとすると、以下の関係式が得られる。
Ａ＝（Ａｂａｓｅ（ｘ）×ｙ）ｍｏｄ（ｎ×ｍ−１）      …（１）
これは、（ｙ≠ｎ×ｍ−１）の場合であり、
Ａｂａｓｅ（ｘ＋１）＝（Ａｂａｓｅ（ｘ）×ｍ）ｍｏｄ（ｎ×ｍ−１）
Ａｂａｓｅ（０）＝１
ただし、ａ  ｍｏｄ  ｂとは整数ａを整数ｂで除算した剰余である。
Ａ＝ｙ                                                …（２）
これは、（ｙ＝ｎ×ｍ−１）の場合である。
【００３１】
上記の（１）式、（２）式に基づいたアドレス生成のフローチャートを図５に示す。アドレス生成が開始されると、ｘ＝０、Ａｂａｓｅ（０）＝１の初期化が行われ（ステップＳ１）、ｙ＝０に設定される（ステップＳ２）。ステップＳ２に続いて、ｙ＝０か否かチェックされ（ステップＳ３）、ｙ＝０と判別されないときはｙ＝（ｍ×ｎ＋１）か否かがチェックされる（ステップＳ４）。
【００３２】
ステップＳ４においてｙ＝（ｍ×ｎ−１）でないと判別されると、Ａ＝Ａ＋Ａｂａｓｅ（ｘ）の演算がなされ（ステップＳ５）、次いでＡ＞（ｍ×ｎ−１）か否かがチェックされる（ステップＳ６）。ステップＳ６においてＡ＞（ｍ×ｎ−１）でないと判別されたときは、Ａがアドレスとして確定し、アドレスＡが出力される（ステップＳ７）。
【００３３】
ステップＳ３においてｙ＝０であると判別されたときは、Ａ＝０とされて（ステップＳ８）、ステップＳ７が実行されアドレスがＡ＝０に確定されて、出力される。ステップＳ４においてｙ＝（ｍ×ｎ−１）であると判別されたときは、Ａ＝（ｍ×ｎ−１）が演算されて（ステップＳ９）、ステップＳ７が実行されアドレスがＡ＝（ｍ×ｎ−１）に確定されて、出力される。ステップＳ６においてＡ＞（ｍ×ｎ−１）であると判別されたときは、Ａ＝Ａ−（ｍ×ｎ−１）が演算されて（ステップＳ１０）、ステップＳ７が実行されアドレスがＡ＝Ａ−（ｍ×ｎ−１）に確定されて、出力される。
【００３４】
ステップＳ７に続いて、ｙ＝ｍか否かがチェックされ（ステップＳ１１）、ｙ＝ｍでないと判別されたときはｙ＝（ｍ×ｎ−１）か否かがチェックされる（ステップＳ１２）。ステップＳ１１においてｙ＝ｍであると判別されたときはステップＳ１１に続いてＡｂａｓｅ（ｘ＋１）＝Ａの演算がなされて（ステップＳ１３）、ステップＳ１２が実行される。
【００３５】
ステップＳ１２においてｙ＝（ｍ×ｎ＋１）であると判別されたときはステップＳ１２に続いてｘ＝ｘ＋１が演算され（ステップＳ１４）、次いでステップＳ２から再び実行される。ステップＳ１２においてｙ＝（ｍ×ｎ−１）でないと判別されたときはステップＳ１２に続いてｙ＝ｙ＋１が演算され（ステップＳ１５）、次いでステップＳ３から再び実行される。以上のステップの実行によりアドレスが得られる。
【００３６】
また上記の（１）式、（２）式は、下記の（３）式、（４）式のように書き表すこともできる。
Ａ＝ｙ×ｍｘｍｏｄ（ｎ×ｍ−１）          …（３）
これは（ｙ≠ｎ×ｍ−１）の場合であり、
Ａ＝ｙ                                    …（４）
これは（ｙ＝ｎ×ｍ−１）の場合である。
【００３７】
ここで、アドレスセット番号ｘおよび周期Ｘは（３）式において、ｙ＝１のときＡ＝１となる０以外のｘを求めることにより得られる。例えばｍ＝５、ｎ＝４の場合は前記の如く、周期Ｘ＝９となる。（ｙ×ｍｘ）の値が（ｎ×ｍ−１）の値未満のときはＡ＝（ｙ×ｍｘ）とするアドレスデータを発生する。
【００３８】
上記（３）式、（４）式および図５は、２次元マトリックス上でのインターリーブに関して一般化したものであるが、ＢＳデジタル放送方式のインターリーブにも適用できる。このＢＳデジタル放送方式におけるインターリーブメモリ空間を図１１に示す。ＢＳデジタル放送方式では同一のスロット内でフレーム方向に深さ８のインターリーブであるため、２０３（バイト）×８（フレーム）の２次元マトリックスが４８（スロット）集まったものとして扱うことができる。つまり、１スーパーフレーム分のメモリ空間を４８分割し、それぞれのエリア内で２０３×８のインターリーブを行うこととなる。ただ、２０３バイト毎にスロットを移動する必要がある点に注意する必要がある。
【００３９】
本発明の実施の一形態にかかるインターリーブ回路では、1スーパーフレームのメモリマトリクスを図１１のように定める。ｍ（＝２０３（バイト））×ｎ（＝８（フレーム））×Ｓ（＝４８（スロット））とし、アドレスは２０３×８の２次元マトリクスでアドレス０からｍ方向にインクリメントし、続いてｎ方向に一段シフトしてまたｍ方向にインクリメントし、…というように定めると、1スロットの最終アドレスは１６２３となる。また、スロット方向へは、第１スロットから第４８スロットの方向へ、ｎ×ｍ＝１６２４ずつオフセットが加えられて行くものとする。
【００４０】
この場合も、アドレスセット番号ｘの周期Ｘは（３）式においてｙ＝１のときにＡ＝１となるｘから求められて、アドレスセット番号ｘの周期Ｘ＝１８０である。
【００４１】
次に、アドレス発生器５におけるアドレスデータ発生について詳細に説明する。図６にアドレス発生器５におけるアドレスデータ発生部の実施例を示し、図７および図８にその作用に供するフローチャートを示す。
【００４２】
アドレス発生器５におけるアドレスデータ発生部は図６に示すように、ストローブパルス発生部５０、ストローブパルス発生部５０と協働してスロットの番号を指定するスロット番号検出部５１、ストローブパルス発生部５０とスロット番号検出部５１と協働してモデュロ演算を行なってアドレスデータを送出するモデュロ演算部５２とを備えている。ここで、ｍ＝２０３（１スロットにおける主信号のバイト数）、ｎ＝８（インターリーブの深さ）、Ｓ＝４８（１フレームにおけるスロット数）、Ｆ＝８（１スーパーフレームを構成するフレーム数であって、Ｆ＝ｎ＝８）、Ｘ＝１８０（アドレスセット回数ｘの周期）である。ここで、後記する加算器７０を除くモデュロ演算部５２がオフセット値計数手段に対応する。
【００４３】
ストローブパルス発生部５０はアドレス発生器５に設けられている図示しないタイミング信号発生器から出力されるインターリーブ書き込み、読み出しゲートパルスが供給されて、該インターリーブ書き込み、読み出しゲートパルスが高電位の期間出力されるクロックパルスを受けてクロックパルスを計数するｍ進カウンタ５３と、ｍ進カウンタ５３のキャリ出力の計数を行なうＳ進カウンタ５４と、Ｓ進カウンタ５４のキャリ出力の計数を行なうＦ進カウンタ５５と、Ｆ進カウンタ５５のキャリ出力の計数を行なうＸ進カウンタ５６と、ｍ進カウンタ５３の計数値ｍcntとＳ進カウンタ５４の計数値ＳcntとＦ進カウンタ５５の計数値ＦcntとＸ進カウンタ５６の計数値ｘcntとを受けてストローブパルスを発生するデコーダ５７とを備えている。
【００４４】
Ｓ進カウンタ５４の計数値はｍ進カウンタ５３がクロックパルスを０から２０３回計数する毎にインクリメントされるために、Ｓ進カウンタ５４でスロット番号を検出していることになる。スロット番号検出部５１ではＳ進カウンタ５４の計数値を受けて（ｎ×ｍ）倍する乗算器５８とからなり、Ｓ進カウンタ５４の計数値に基づいてスロット番号の開始アドレスデータ０、１６２４、３２４８、…、７６３２８を発生することになる。スロット番号検出部５１からのこの出力に後記のデータＡ０が加算されて、アドレスデータＡが得られる。
【００４５】
モデュロ演算部５２はＡオフセットレジスタ６０を設定値１に初期化する設定器５９、ストローブパルスｓａを受けてＲオフセットレジスタ６１の置数値が置数されるＡオフセットレジスタ６０、ストローブパルスｓｂを受けてアドレスデータＡ０を置数するＲオフセットレジスタ６１、アドレスデータＡ０とＡオフセットレジスタ６０の置数値を加算する加算器６２と、加算器６２の加算出力と設定器６３の設定値（ｎ×ｍ）とを比較する比較器６４と、（加算器６２の加算出力≧設定器６３の設定値（ｎ×ｍ））のときの比較器６４の出力に基づき加算器６２の加算出力から設定器６５の設定値（ｎ×ｍ−１）を減算した値をアドレスデータＡ〃として出力し、かつ（加算器６２の加算出力≧設定器６３の設定値（ｎ×ｍ））でないとき比較器６４の出力に基づき加算器６２の加算出力をアドレスデータＡ〃として出力する減算器６６とを備えている。
【００４６】
モデュロ演算部５２はさらに、減算器６６から出力されるアドレスデータＡ〃をストローブパルスｓｃを受けて置数値とするＡmcntレジスタ６７と、減算器６６から出力されるアドレスデータＡ〃とＡmcntレジスタ６７の置数値との一方をセレクトパルスｓｐにより選択するセレクタ６８と、セレクタ６８から出力されるアドレスデータＡ´を１クロックパルスの期間遅延させるＤＦ／Ｆからなるラッチ６９と、ラッチされたアドレスデータＡ０と乗算器５８の出力とを加算する加算器７０とを備え、加算器７０の出力をアドレスデータＡとする。
【００４７】
Ａオフセットレジスタ６０へのストローブパルスｓａはＦ進カウンタ５５のキャリ出力に同期して出力される。ただし、ｘcnt＝Ｘ−１の場合は１が置数され、ｘcnt≠Ｘ−１の場合はＲオフセットレジスタ６１の置数値Ｒofsetが置数される。Ｒオフセットレジスタ６１へのストローブパルスｓｂはＦ進カウンタ５３の計数値Ｆcntが０、Ｓ進カウンタ５２の計数値Ｓcntが０、かつｍ進カウンタ５３の計数値ｍcntがｎになったときに出力される。
【００４８】
Ａmcntレジスタ６７へのストローブパルスｓｃはＳ進カウンタ５２の計数値Ｓcntが０で、かつｍ進カウンタ５３の計数値ｍcntが０になったときに出力される。セレクタ６８へのセレクトパルスｓｐはｍ進カウンタ５３の計数値ｍcnt＝ｍ−１、かつＳ進カウンタ５２の計数値Ｓcnt≠Ｓ−１となったときに出力されて、Ａmcntレジスタ６７の置数値が選択される。
【００４９】
加算器６２にてＡオフセットレジスタに置数された値とアドレスデータＡ０とが加算され、加算結果が比較器６４と減算器６６に送出される。アドレスデータＡ０は２０３×８の２次元マトリクス上でのアドレスデータであり、スロット数をカウントするＳ進カウンタ５４の計数値Ｓcntを乗算器５８によってｎ×ｍ倍された（つまりスロット方向へのオフセット）値とアドレスデータＡ０との加算結果が、アドレスデータＡとなる。
【００５０】
比較器６４は加算器６２の加算出力が（ｎ×ｍ（＝１６２４））以上となった場合に減算器６６に対して減算指示を出力し、減算器６６は減算指示を受けて加算器６２からの加算出力から設定器６５に設定されている（ｎ×ｍ−１）を減算する。また、加算器６２の加算出力が（ｎ×ｍ（＝１６２４））以上でない場合は減算されず、加算器６２の加算出力がそのまま減算器６６から出力される。
【００５１】
Ａmcntレジスタ６７にはストローブパルスｓｃの発生時点でのアドレスデータＡ〃が置数されおり、セレクタ６８がセレクト信号ｓｐを受けた場合にＡmcntレジスタ６７の置数値Ａ〃がセレクトされて出力される。セレクタ６８からの出力をアドレスデータＡ´とする。アドレスデータＡ´がラッチ６９によってラッチされ、ラッチ出力をアドレスデータＡ０とする。また、Ｒオフセットレジスタ６１はストローブパルスｓａを受けて、その時点でのデータＡ０が置数される。また、Ｒオフセットレジスタ６１の置数値はＡオフセットレジスタ６０に出力され、ストローブパルスｓａを受けてＡオフセットレジスタ６０に置数される。
【００５２】
ｍ進カウンタ５３、Ｓ進カウンタ５４、Ｆ進カウンタ５５、Ｘ進カウンタ５６およびラッチ６９は共通のクロックパルスで動作しているが、インターリーブメモリ書き込み、読み出しゲートパルスが低電位の場合には動作を停止する。
【００５３】
図７および図８のフローチャートに基づいてアドレス発生器５におけるアドレスデータ発生器の作用を説明する。
【００５４】
インターリーブが開始されるとＡオフセットレジスタ６０の置数値Ａofsetが１に初期化され、かつＸ進カウンタ５６の計数値ｘcntすなわちアドレスセット番号ｘは０に初期化される（ステップＳ２１）。また、ｍ進カウンタ５３の計数値ｍcnt、Ｓ進カウンタ５４の計数値ＳcntおよびカウンタＦ５４の計数値Ｆcntが０に初期化され、ラッチ６９も初期化されてアドレスデータＡ０も初期化される（ステップＳ２２）。
【００５５】
この時のデータＡ〃がＡmcntレジスタ６７に置数されるがこの場合は０が置数されることになる（ステップＳ２３）。また、ストローブパルスｓｃはｍ進カウンタ５３の計数値ｍcntが０、Ｓ進カウンタ５２の計数値Ｓcntが０になったとき高電位になるためＡmcntレジスタ６７への置数はＦ進カウンタ５５のインクリメント毎に行なわれることになる。
【００５６】
セレクタ６８を介して出力されたＡmcntレジスタ６７への置数値はラッチ６９にてラッチされて、アドレスデータＡ０が確定する（ステップＳ２４）。デコーダ５７からＦ進カウンタ５５の計数値Ｆcnt＝０、Ｓ進カウンタ５４の計数値Ｓcnt＝１、ｍ進カウンタ５３の計数値ｍcnt＝０、すなわちＳcnt×２０３＋ｍcnt＝２０３か否かがチェックされる（ステップＳ２５）。
【００５７】
ステップＳ２５において、Ｆ進カウンタ５５の計数値Ｆcnt＝０、Ｓ進カウンタ５４の計数値Ｓcnt＝１、ｍ進カウンタ５３の計数値ｍcnt＝０、すなわちアドレス番号ｙ＝２０３と判別されたときにストローブパルスｓｂが出力され、Ｒオフセットレジスタ６１にアドレスデータＡ０が置数され（ステップＳ２６）、ステップＳ２７が実行される。しかるに、この時点ではｍ進カウンタ５３の計数値ｍcnt＝０であるためステップＳ２５からステップＳ２７が実行される。
【００５８】
ステップＳ２７においてｍ進カウンタ５３の計数値ｍcntが、計数値ｍcnt＝ｍ−１（＝２０２）になるまでは、ステップＳ２７に続いて図７において図示していないがｍ進カウンタ５３の計数値ｍcnがインクリメントされて、次いでステップＳ２８が実行される。ステップＳ２８において加算器６２によってアドレスデータＡ０とＡオフセットレジスタ６０に置数されている置数値とが加算される（ステップＳ２８）。加算器６２の加算出力Ａ〃´が（ｎ×ｍ（＝１６２４））以上である場合には（ステップＳ２９）、加算出力Ａ〃´から（ｎ×ｍ−１（＝１６２３））が減算され、ステップＳ２４から実行される（ステップＳ３０）。加算器６２の加算出力Ａ〃´が（ｎ×ｍ（＝１６２４））以上でない場合にステップＳ２９に続いてステップＳ２４から実行される。
【００５９】
ここまでの動作を前記アドレッシングの一般式に照らし合わせると、Ａオフセットレジスタ６０の置数値はｎのｘ乗に等しく（ｎのｘ乗が（ｎ×ｍ−１）を超えた場合には（ｎ×ｍ−１）を繰り返して減算したときの剰余に等しい）、ｙ×ｎのｘ乗はｎのｘ乗の累積加算に等しい。また、（ｎ×ｍ−１）のモデュロ演算は、データＡ〃´が（ｎ×ｍ−１）の２倍を超えることがないことから、（ｎ×ｍ−１）を超えた場合に（ｎ×ｍ−１）を減算することで構成が簡略化できる。データＡ〃´が（ｎ×ｍ−１）と等しくなる最終アドレスでは、（ｎ×ｍ−１）を減算すると０となってしまい不具合を来す。
【００６０】
しかるに、Ａ〃´が（ｎ×ｍ−１）と等しくなるのは最終アドレスのみであることから、減算の条件を、（ｎ×ｍ）を超えた場合に（ｎ×ｍ−１）を減算すると変更することによりこれを回避できる。これは、前記アドレッシングの一般式におけるｙ＝ｎ×ｍ−１の場合に、Ａ＝ｙとする条件を簡単化したことと同等である。
【００６１】
ｍ進カウンタ５３の計数値ｍcntがｍ−１（＝２０２）となった場合にはＳ進カウンタ５４の計数値Ｓcntに基づく条件分岐のステップが実行される（ステップＳ３１）。Ｓ進カウンタ５４の計数値ＳcntがＳ−１（＝４７）となるまではステップＳ３２が実行され、ステップＳ３２に続いてステップＳ２４から繰り返して実行される。ステップＳ３２ではＳ進カウンタ５４の計数値Ｓcntがインクリメントされ、またｍ進カウンタ５３の計数値ｍcntがリセットされ、そしてアドレスデータＡ´としてＡmcntレジスタ６７の置数値が出力される（ステップＳ３２）。つまり、セレクタ６８によってＡmcntレジスタ６７の置数値が選択される。この動作は、各スロットのアドレスデータＡの初期値を、フレーム内で等しくするためである。
【００６２】
例えば１フレーム目では各スロットのアドレスデータＡ０は０で始まり、また２フレーム目では２０３から始まる。したがって、２フレーム目ではスロットが代わる毎にアドレスデータＡ０に２０３をロードする必要がある。現時点ではＦ進カウンタ５５の計数値Ｆcnt＝０、つまり１フレーム目なので、スロットのインクリメント毎にＡmcntレジスタ６７に置数されていた０がロードされることになる。上記の動作はＳ進カウンタ５４の計数値ＳcntがＳ−１（＝４７）となるまで繰り返される。
【００６３】
Ｓ進カウンタ５４の計数値ＳcntがＳ−１（＝４７）となった場合には、Ｆ進カウンタ５５の計数値Ｆcntに基づく条件分岐ステップが実行される（ステップＳ３５）。ステップＳ３５においてＦ進カウンタ５５の計数値Ｆcnt＝Ｆ−１に満たない場合は、ステップＳ３６が実行されてＦ進カウンタ５５の計数値Ｆcntがインクリメントされ、Ｓ進カウンタ５４の計数値Ｓcntおよびｍ進カウンタ５３の計数値ｍcntのリセットが行なわれる（ステップＳ３６）。続いてＡオフセットレジスタ６０へＡ０が累算される（ステップＳ３７）。これは、フレーム変更時のアドレスデータＡ０の初期値は、前フレームの最終値のデータＡ０の次の値になるからである。
【００６４】
つまり、アドレスセット番号ｘが０のときは、１フレーム目の最終のアドレスデータＡ０は２０２であり、２フレームの先頭は、Ａオフセットレジスタ６０の置数値は１であるから、２０２＋１＝２０３となる。また、ステップＳ３５での結果、ステップＳ３８が実行され、データＡ´≧（ｎ×ｍ）がチェックされ、ステップＳ３８の結果、選択的にステップＳ３９が実行され、次いでステップＳ２３が実行される。データＡ´が（ｎ×ｍ）を超えた場合に（ｎ×ｍ−１）が減算される（ステップＳ３９）ことは、前記の場合と同様である。さらに、この結果はステップＳ２３によってＡmcntレジスタ６７に置数され、スロットが変更されるごとにロードされる値となる。
【００６５】
ステップＳ３５においてＦ進カウンタ５５の計数値ＦcntがＦ−１（＝７）となった場合にはこの時点で、１スーパーフレーム分のインターリーブは完了している。Ｘ進カウンタ５６の計数値ｘcntに基づく条件分岐（ステップＳ４０）により、アドレスセット番号ｘがｘ＝Ｘ−１（＝１７９）に達していない場合には、ステップＳ４１が実行され、ステップＳ２６において置数されたＲオフセットレジスタ６１の置数値がＡオフセットレジスタ６０に置数される（ステップＳ４１）。さらに、アドレスセット番号ｘがインクリメントされる（ステップＳ４２）。
【００６６】
この動作を前記したアドレシングの一般式、（３）式および（４）式により説明する。
【００６７】
Ａオフセットレジスタ６０の置数値は、ｍのｘ乗、つまりｙ＝１の場合のアドレスデータＡ（（Ａ＝１×ｍのｘ乗の値）に等しいが（前記の如く、ｍのｘ乗の値が（ｎ×ｍ−１）を超えた場合には（ｎ×ｍ−１）で減算を繰り返したときの剰余に等しい）、次のアドレスセットのＡオフセットレジスタ６０の置数値Ａofset´は同様に１×ｍの（ｘ＋１）乗＝１×ｍのｘ乗×ｍとなり、これはｙ＝２０３の場合のアドレスデータＡに等しい。
【００６８】
言い換えれば、現在のｙ＝２０３のアドレスデータＡを記憶しておけば、これは次のアドレスセット番号ｘのＡオフセットレジスタ６０の置数値であるＡofset´となり、計算回路が省略できることになる。ステップＳ２５、ステップＳ２６によりｙ＝２０３のときのアドレスデータＡをＲオフセットレジスタ６１に記憶していたので、次のアドレスセットに進む前にこれをＡオフセットレジスタ６０に書き込むのである。また、Ｘ進カウンタ５６の計数値ｘcntがＸ−１（＝１７９）となった場合には、全て初期化される。
【００６９】
本実施の一形態によって生成されたアドレスデータＡの一部を図９および図１０に示す。紙面の関係から、アドレスセット番号ｘは１８まで、またアドレス番号ｙは５５までを示した。
【００７０】
以上のように本実施の一形態にかかるインターリーブ回路によれば、アドレスデータ発生器によって発生させたインターリーブメモリへのアドレスデータＡに対してリード（Ｒ）、ライト（Ｗ）、リード（Ｒ）、ライト（Ｗ）、……のようにライトよりもリードが先行して行なわれ、データが読み出されたことによって空きとなったアドレスにデータを書き込むことによって、メモリの使用効率を向上させている。
【００７１】
【発明の効果】
本発明のインターリーブ回路によれば、１スーパーフレーム分の記憶容量のインターリーブメモリでインターリーブが行えるようになり、部品点数、回路規模を大幅に削減することが可能となる。特に集積回路化した場合、ゲート数を大きく削減することができて、チップ面積が縮小し、コストダウンが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の一形態にかかるインターリーブ回路の構成を示す模式ブロック図である。
【図２】本発明の実施の一形態にかかるインターリーブ回路における各信号のタイミング図である。
【図３】本発明の実施の一形態にかかるインターリーブ回路におけるインターリーブの原理の説明に供する模式図である。
【図４】本発明の実施の一形態にかかるインターリーブ回路におけるインターリーブの原理の説明に供する模式図である。
【図５】本発明の実施の一形態にかかるインターリーブ回路によるアドレス生成のためのフローチャートである。
【図６】本発明の実施の一形態にかかるインターリーブ回路におけるアドレス発生器に備えたアドレスデータ発生部の構成を示すブロック図である。
【図７】本発明の実施の一形態にかかるインターリーブ回路におけるアドレス発生作用の説明に供するフローチャートである。
【図８】本発明の実施の一形態にかかるインターリーブ回路におけるアドレス発生作用の説明に供するフローチャートである。
【図９】本発明の実施の一形態にかかるインターリーブ回路における発生アドレスの一部を示す模式図である。
【図１０】本発明の実施の一形態にかかるインターリーブ回路における発生アドレスの一部を示す模式図である。
【図１１】ＢＳデジタル放送におけるインターリーブメモリ空間の説明に供する模式図である。
【図１２】ＢＳデジタル放送におけるインターリーブの書き込み動作の説明の供する模式図である。
【図１３】ＢＳデジタル放送におけるインターリーブの読み出し動作の説明の供する模式図である。
【図１４】従来のインターリーブ回路の構成を示す模式ブロック図である。
【符号の説明】
５  アドレス発生器
６  インターリーブメモリ
７  タイマー
８  バッファメモリ
５０  ストローブパルス発生部
５１  スロット番号検出部
５２  モデュロ演算部
５３、５４  ｍ進カウンタ、Ｓ進カウンタ
５５、５６  Ｆ進カウンタ、Ｘ進カウンタ
５７  デコーダ
５８  乗算器
５９、６３、６５  設定器
６０、６１  Ａオフセットレジスタ、Ｒオフセットレジスタ
６２、７０  加算器
６４  比較器
６６  減算器
６７  Ａmcntレジスタ
６８  セレクタ
６９  ラッチ
【図１】
0003673989.tif 000002
【図２】
0003673989.tif 000003
【図３】
0003673989.tif 000004
【図４】
0003673989.tif 000005
【図５】
0003673989.tif 000006
【図６】
0003673989.tif 000007
【図７】
0003673989.tif 000008
【図８】
0003673989.tif 000009
【図９】
0003673989.tif 000010
【図１０】
0003673989.tif 000011
【図１１】
0003673989.tif 000012
【図１２】
0003673989.tif 000013
【図１３】
0003673989.tif 000014
【図１４】
0003673989.tif 000015