(57)【要約】      （修正有）【課題】必要最小限のメモリ領域のみを使用しながらも回路を単純にできるアドレス生成回路およびインタリーブ回路を提供する。【解決手段】アドレス生成回路１０は、データ入力をＤ回検出するごとにインクリメントする列カウンタ２１を備え、列カウンタ２１からの出力を第１のアドレスとして出力する第１のアドレス生成手段２０と、データ入力をＮ回検出するごとにインクリメントする（Ｄ−１）個の行カウンタ３１、行カウンタ３１を昇順に選択してカウント値を出力するセレクタ３２、データ入力を検出するごとにインクリメントするＤ進カウンタ３３、累算値を出力する累算値保持手段３４、Ｄ進カウンタ３３および累算値保持手段３４からの出力の和を演算して累積値を更新すると共に該演算値を出力する演算器３５および演算器３５からの出力にセレクタ３２からの出力を加算して第２のアドレスとして出力する第２のアドレス生成手段３０と、を備える。【選択図】図１
2012175244.tif 000002
【特許請求の範囲】
【請求項１】
Ｎを任意の自然数とし、ＤをＮを割り切る自然数、ｋ＝１、２、…、（Ｄ−１）としたとき、
データ入力をＤ回検出するごとにインクリメントして０〜（Ｎ／Ｄ−１）のカウント値を出力する列カウンタを備え、前記列カウンタからの出力を第１のアドレスとして出力する第１のアドレス生成手段と、
前記データ入力をＮ回検出するごとにインクリメントし、ｋ番目の行カウンタは０〜（ｋ−１）のカウント値を出力する（Ｄ−１）個の行カウンタ、
前記データ入力を検出するごとに前記（Ｄ−１）個の行カウンタを昇順に選択してカウント値を出力するセレクタ、
前記データ入力を検出するごとにインクリメントして０〜（Ｄ−２）のカウント値を出力するＤ進カウンタ、
前記データ入力を検出するごとに保持している累算値を出力する累算値保持手段、
前記データ入力を検出するごとに前記Ｄ進カウンタからの出力と前記累算値保持手段からの出力との和を演算し、前記演算の結果である演算値を用いて前記累算値保持手段が保持している累積値を更新すると共に該演算値を出力する演算器および、
前記データ入力を検出するごとに前記演算器からの出力に前記セレクタからの出力を加算して出力する加算器、
を備え、前記加算器からの出力を第２のアドレスとして出力する第２のアドレス生成手段と、
を備えることを特徴とするアドレス生成回路。
【請求項２】
前記データ入力をＤ回検出するごとに、前記セレクタ、前記演算器および前記加算器は処理を一回分停止すると共に前記累算値保持手段は累積値を０にリセットすることを特徴とする請求項１記載のアドレス生成回路。
【請求項３】
Ｎを任意の自然数とし、ＤをＮを割り切る自然数、ｋ＝１、２、…、（Ｄ−１）としたとき、
データ入力をＤ回検出するごとにインクリメントして０〜（Ｎ／Ｄ−１）のカウント値を出力する列カウンタを備え、前記列カウンタからの出力を第１のアドレスとして出力する第１のアドレス生成手段と、
前記データ入力をＮ回検出するごとにインクリメントし、ｋ番目の行カウンタは０〜（ｋ−１）のカウント値を出力する（Ｄ−１）個の行カウンタ、
前記データ入力を検出するごとに前記（Ｄ−１）個の行カウンタを降順に選択してカウント値を出力するセレクタ、
前記データ入力を検出するごとにデクリメントして（Ｄ−１）〜１のカウント値を出力するＤ進カウンタ、
前記データ入力を検出するごとに保持している累算値を出力する累算値保持手段、
前記データ入力を検出するごとに前記Ｄ進カウンタからの出力と前記累算値保持手段からの出力との和を演算し、前記演算の結果である演算値を用いて前記累算値保持手段が保持している累積値を更新すると共に該演算値を出力する演算器および、
前記データ入力を検出するごとに前記演算器からの出力に前記セレクタからの出力を加算して出力する加算器、
を備え、前記加算器からの出力を第２のアドレスとして出力する第２のアドレス生成手段と、
を備えることを特徴とするアドレス生成回路。
【請求項４】
前記データ入力をＤ回検出するごとに、前記セレクタ、前記演算器および前記加算器は処理を一回分停止すると共に前記累算値保持手段は累積値をＤ（Ｄ−１）／２にリセットすることを特徴とする請求項３記載のアドレス生成回路。
【請求項５】
データの入力を検出するごとに第１の信号を、データ入力をＤ回検出するごとに第２の信号を、データ入力をＮ回検出するごとに第３の信号を出力するクロック生成手段と、
前記第１乃至３の信号に基づいて前記データ入力を検出する請求項１乃至４のいずれか１項記載のアドレス生成回路と、
Ｎ／Ｄ列、Ｄ（Ｄ−１）／２行のメモリ領域を有し、（Ｄ−１）個のメモリバンクに分割されたメモリ手段と、
第１の信号が入力するごとに、前記アドレス生成回路から入力した第１のアドレスおよび第２のアドレスを用いて前記メモリ手段にアクセスしてデータを読み出して出力すると共に前記入力したデータを書き込む出力制御手段と、
を備えることを特徴とするインタリーブ回路。
【請求項６】
ｋ＝１、２、…、（Ｄ−１）としたとき、ｋ番目のメモリバンクはｋ行のメモリ領域を有することを特徴とする請求項５記載のインタリーブ回路。
【請求項７】
前記出力制御手段は、第１の信号と共に第２の信号が入力した場合、前記メモリ手段にアクセスせずに、前記入力したデータを出力することを特徴とする請求項５または６記載のインタリーブ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地上デジタル音声放送などで使用される、入力されたデータ列に対してインタリーブ処理またはデインタリーブ処理を行うためのアドレス生成方法の改良およびそのためのアドレス生成回路に関する。
【背景技術】
【０００２】
デジタル通信において、フェージングや障害物による伝送路の遮断により、一定区間に渡り誤りが連続するようなバースト誤りが発生することがある。また、畳み込み符号のビタビ復号で誤り訂正できなかったときは正しいパスへの収束に時間がかかるため、バースト誤りとなる。このように発生したバースト誤りに対応するために、ランダムなビット誤りに対応したＲＳ（リード・ソロモン）等のブロック符号をそのまま誤り訂正符号として使用すると、とても信頼性の低い復号法となる。このとき、使われるのがインタリーブと呼ばれる技術である。この手法では、複数の符号語を並べてそのシンボルの並びを変えることにより、バースト誤りをランダム誤りに変換できるため、ブロック符号でも符号化率を変えずにバースト誤りに対する訂正能力を高めることができるようになる。
【０００３】
インタリーブは、その並び替えの方法により、ブロックインタリーブ、畳み込みインタリーブなどいくつかの方式に分類できる。畳み込みインタリーブは、少ないメモリで構成可能なことから、国内の地上デジタル音声放送の伝送方式や海外の音声放送の方式に採用されている（非特許文献１、３．７節、非特許文献２、５．３節）。
【０００４】
非特許文献１および２の畳み込みインタリーブ回路について、図８を用いて説明する。畳み込みインタリーブ回路９００は、任意の自然数ＮとＮを割り切る自然数Ｄとによって規定される。図８において、畳み込みインタリーブ回路９００は、Ｄ本のパスを有し、パス１、２、…、（Ｄ−１）にはそれぞれ、Ｍ段、２・Ｍ段、…、（Ｄ−１）・Ｍ段のシフトレジスタ９２０−１、９２０−２、…、９２０−（Ｄ−１）が設けられている。ここで、Ｍは自然数であり、Ｍ＝Ｎ／Ｄである。
【０００５】
該畳み込みインタリーブ回路９００において、入力データが１バイトずつ入力端子９１０から入力され、入力端子９１０は、０番目のバイトをパス０へ、１番目のバイトをパス１へ、（Ｄ−１）番目のバイトをパス（Ｄ−１）へ送る。さらに入力端子９１０は、Ｄ番目のバイトを再びパス０へ、（Ｄ＋１）番目のバイトを再びパス１へ送る。出力端子９３０は、入力端子９１０に同期してパス０、パス１、…、パス（Ｄ−１）に順次切り替え、出力データを取り出す。シフトレジスタ９２０は、対応するパスに入力端子９１０と出力端子９３０が接続されたときに１バイトシフトし、つまり、データ入力Ｄ回毎に１度シフトする。従って、段数の異なるシフトレジスタ９２０を通って出てきた出力データの遅延量はそれぞれ、パス１でＭ・Ｄバイト、パス２で２・Ｍ・Ｄバイト、…、（Ｄ−１）・Ｍ・Ｄバイトとなる。
【０００６】
また、畳み込みデインタリーブ回路は、図８のインタリーブ回路において、パス１〜パス（Ｄ−１）のシフトレジスタ９２０の段数を逆順に並べ、データ入力１バイト毎に切り替えるパスの向きを逆向きにすることにより、実現される。
【０００７】
ここで、入力データに遅延を与えるときにシフトレジスタの代わりにメモリを使用する技術が種々提案されている（例えば、特許文献１、２）。この場合、メモリにシフトレジスタと同量の領域を用意し、読み出しアクセス・書き込みアクセスの順に、同じアドレスへアクセスし、そのアドレスを順次巡回させることによって入力データに対してシフトレジスタと同様の遅延を与える。
【０００８】
特許文献１のメモリを用いたインタリーブ回路について説明する。図９に、パラメータとしてＮ＝１８、Ｄ＝６を適用した場合の、特許文献１のメモリ領域を示す。図９において、メモリの１行目がパス０とパス５に、２行目がパス１とパス４に、３行目がパス２とパス３に与えられている。以下、１つのデータが格納されるメモリ領域のアドレスを（上位アドレス、下位アドレス）と記載する。
【０００９】
図９（ａ）において、インタリーブ回路は、最初のＮバイトのデータ（Ａ０〜Ａ１７）のうちのＤバイトのデータ（Ａ０〜Ａ５）をメモリ領域に書き込む。パス０は遅延させないので、Ａ０はメモリに書き込まずにそのまま出力し、Ａ１〜Ａ５がそれぞれ（１、０）、（２、０）、（２、６）、（１、３）、（０、０）のメモリ領域に書き込まれる。インタリーブ回路は、次の６バイト（Ａ６〜Ａ１１）のうちＡ７〜Ａ１１をそれぞれ、（１、１）、（２、１）、（２、７）、（１、４）、（０、１）のメモリ領域に書き込む。ここで、Ａ６はメモリに書き込まずにそのまま出力する。同様に、次の６バイト（Ａ１２〜Ａ１７）がメモリに書き込まれることにより図９（ａ）の状態となる。
【００１０】
その後、インタリーブ回路はＢ０〜Ｂ１７、Ｃ０〜Ｃ１７、Ｄ０〜Ｄ１７、Ｅ０〜Ｅ１７のデータを順次書き込み（図９（ｂ）〜（ｅ））、Ｅ１７が書き込まれた時、全てのメモリ領域にデータが書き込まれる（図９（ｅ））。そして、次の１８バイト（Ｆ０〜Ｆ１７）が書き込まれた時（図９（ｆ））、インタリーブ回路からＦ０、Ｅ１、Ｄ２、Ｃ３、Ｂ４、Ａ５、Ｆ６、Ｅ７、Ｄ８、Ｃ９、Ｂ１０、Ａ１１、Ｆ１２、Ｅ１３、Ｄ１４、Ｃ１５、Ｂ１６、Ａ１７のデータが出力される。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平０９ー１０２７４８
【特許文献２】特開２００４−２８２７４５
【非特許文献】
【００１２】
【非特許文献１】規格番号「ＡＲＩＢ  ＳＴＤ−Ｂ２９」、標準規格名「地上デジタル音声放送の伝送方式」、社団法人電波産業会（ＡＲＩＢ）、  第２．２版
【非特許文献２】「Digital Audio Broadcasting (DAB); Data Broadcasting - MPEG-2 TS streaming」, European Telecommunications Standards Institute, ETSI TS 102 427, V1.1.1, 2005-07 (p.7, Sec.5.3 Outer Interleaver, Figure 4)
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献１のメモリ使用技術を適用する場合、上位アドレスをカウントするための回路には、増加値と減少値との両方を出力する回路を適用する必要がある。さらに、特許文献１のメモリ使用技術を適用する場合、Ｎが大きくなると下位アドレスの最大値が大きくなり、下位アドレスをカウントするための回路の規模が大きくなる。
【００１４】
本発明は上記の問題に鑑みてなされたものであり、必要最小限のメモリ領域のみを使用しながらも回路を単純にできるアドレス生成回路およびインタリーブ回路を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために本発明に係る第１のアドレス生成回路は、Ｎを任意の自然数とし、ＤをＮを割り切る自然数、ｋ＝１、２、…、（Ｄ−１）としたとき、データ入力をＤ回検出するごとにインクリメントして０〜（Ｎ／Ｄ−１）のカウント値を出力する列カウンタを備え、列カウンタからの出力を第１のアドレスとして出力する第１のアドレス生成手段と、データ入力をＮ回検出するごとにインクリメントし、ｋ番目の行カウンタは０〜（ｋ−１）のカウント値を出力する（Ｄ−１）個の行カウンタ、データ入力を検出するごとに（Ｄ−１）個の行カウンタを昇順に選択してカウント値を出力するセレクタ、データ入力を検出するごとにインクリメントして０〜（Ｄ−２）のカウント値を出力するＤ進カウンタ、データ入力を検出するごとに保持している累算値を出力する累算値保持手段、データ入力を検出するごとにＤ進カウンタからの出力と累算値保持手段からの出力との和を演算し、演算の結果である演算値を用いて累算値保持手段が保持している累積値を更新すると共に該演算値を出力する演算器および、データ入力を検出するごとに演算器からの出力にセレクタからの出力を加算して出力する加算器、を備え、加算器からの出力を第２のアドレスとして出力する第２のアドレス生成手段と、を備えることを特徴とする。
【００１６】
上記目的を達成するために本発明に係る第２のアドレス生成回路は、Ｎを任意の自然数とし、ＤをＮを割り切る自然数、ｋ＝１、２、…、（Ｄ−１）としたとき、データ入力をＤ回検出するごとにインクリメントして０〜（Ｎ／Ｄ−１）のカウント値を出力する列カウンタを備え、列カウンタからの出力を第１のアドレスとして出力する第１のアドレス生成手段と、データ入力をＮ回検出するごとにインクリメントし、ｋ番目の行カウンタは０〜（ｋ−１）のカウント値を出力する（Ｄ−１）個の行カウンタ、データ入力を検出するごとに（Ｄ−１）個の行カウンタを降順に選択してカウント値を出力するセレクタ、データ入力を検出するごとにデクリメントして（Ｄ−１）〜１のカウント値を出力するＤ進カウンタ、データ入力を検出するごとに保持している累算値を出力する累算値保持手段、データ入力を検出するごとにＤ進カウンタからの出力と累算値保持手段からの出力との和を演算し、演算の結果である演算値を用いて累算値保持手段が保持している累積値を更新すると共に該演算値を出力する演算器および、データ入力を検出するごとに演算器からの出力にセレクタからの出力を加算して出力する加算器、を備え、加算器からの出力を第２のアドレスとして出力する第２のアドレス生成手段と、を備えることを特徴とする。
【００１７】
上記目的を達成するために本発明に係るインタリーブ回路は、データの入力を検出するごとに第１の信号を、データ入力をＤ回検出するごとに第２の信号を、データ入力をＮ回検出するごとに第３の信号を出力するクロック生成手段と、第１乃至３の信号に基づいてデータ入力を検出する上述の第１または第２のアドレス生成回路と、Ｎ／Ｄ列、Ｄ（Ｄ−１）／２行のメモリ領域を有し、（Ｄ−１）個のメモリバンクに分割されたメモリ手段と、第１の信号が入力するごとに、アドレス生成回路から入力した第１のアドレスおよび第２のアドレスを用いてメモリ手段にアクセスしてデータを読み出して出力すると共に入力したデータを書き込む出力制御手段と、を備えることを特徴とする。
【発明の効果】
【００１８】
本発明に係るアドレス生成回路およびインタリーブ回路は、Ｎ／Ｄ列、Ｄ（Ｄ−１）／２行に区分された領域を指定するアドレスを生成する。この場合、列カウンタとして単純なアップ・カウンタを適用することができる。さらに、第２のアドレスの生成を、指定領域を含むメモリバンクの最上段の座標の生成と、該メモリバンクの中での座標の生成との２段階に分けることにより、第２のアドレスの生成に使用するカウンタの回路規模を小さくすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係るアドレス生成回路１０のブロック構成図の一例である。
【図２】本発明の第１の実施形態に係るメモリ４０のメモリ領域の使用法の一例である。
【図３】本発明の第２の実施形態に係るインタリーブ回路５０のブロック構成図の一例である。
【図４】本発明の第３の実施形態に係るインタリーブ回路１００のブロック構成図の一例である。
【図５】本発明の第３の実施形態に係るアドレス生成手段７００のブロック構成図の一例である。
【図６】本発明の第４の実施形態に係るメモリ３２０Ｂのメモリ領域の使用法の一例である。
【図７】本発明の第４の実施形態に係るインタリーブ回路１００Ｂの主要信号の動作タイミングの一例である。
【図８】非特許文献１および２の畳み込みインタリーブ回路である。
【図９】特許文献１のインタリーブ回路のメモリ領域の使用法である。
【発明を実施するための形態】
【００２０】
（第１の実施形態）
第１の実施形態について説明する。本実施形態に係るアドレス生成回路のブロック構成図の一例を図１に示す。図１おいて、本実施形態に係るアドレス生成回路１０は、第１のアドレス生成手段２０および第２のアドレス生成手段３０を備える。
【００２１】
第１のアドレス生成手段２０は、列カウンタ２１を備え、列カウンタ２１から出力されたカウンタ値を第１のアドレスとして出力する。列カウンタ２１は、Ｎを任意の自然数とし、ＤをＮを割り切る自然数、Ｍ＝Ｎ／Ｄとしたとき、データ入力Ｄ回毎にインクリメントし、０〜（Ｍ−１）のカウント値を出力するアップ・カウンタである。
【００２２】
第２のアドレス生成手段３０は、（Ｄ−１）個の行カウンタ３１、セレクタ３２、Ｄ進カウンタ３３、累算値保持手段３４、演算器３５および加算器３６を備え、加算器３６からの出力値を第２のアドレスとして出力する。
【００２３】
行カウンタ３１は、データがＮ回入力する毎にインクリメントするアップ・カウンタである。ｋ＝１、２、…、（Ｄ−１）としたとき、行カウンタ３１−ｋは０〜（ｋ−１）のカウント値を出力する。すなわち、行カウンタ３１−１は、カウント値として常に０を出力する。また、行カウンタ３１−２は０〜１のカウント値を出力し、行カウンタ３１−（Ｄ−１）は０〜（Ｄ−２）のカウント値を出力する。
【００２４】
セレクタ３２は、データが入力する毎に（Ｄ−１）個の行カウンタ３１からの出力を順次選択して加算器３６へ出力する。つまり、セレクタ３２は、１番目のデータが入力した時は行カウンタ３１−１から出力されたカウンタ値を、２番目のデータが入力した時は行カウンタ３１−２から出力されたカウンタ値を選択して加算器３６へ出力する。そして、セレクタ３２は、行カウンタ３１−（Ｄ−１）から出力されたカウント値を選択した後、再び行カウンタ３１−１から出力されたカウンタ値を選択して加算器３６へ出力する。
【００２５】
Ｄ進カウンタ３３は、データが入力する毎にインクリメントし、０〜（Ｄ−２）のカウント値を演算器３５へ出力するアップ・カウンタである。累算値保持手段３４は、データが入力する毎に保持している累算値を演算器３５へ出力する。演算器３５は、データが入力される毎にＤ進カウンタ３３から出力されたカウンタ値と、累算値保持手段３４から出力された累積値との和を演算する。そして、演算器３５は、累算値保持手段３４が保持している累積値を演算した演算値へ更新すると共に演算値を加算器３６へ出力する。
【００２６】
加算器３６は、データが入力する毎に演算器３５から出力された演算値にセレクタ３２から出力されたカウンタ値を加算して出力する。
【００２７】
なお、データがＤ回入力する毎に、Ｄ進カウンタ３３はインクリメントを停止し、セレクタ３２、演算器３５および加算器３６は上記の処理を一回分停止し、累算値保持手段３４は累積値を０にリセットする。
【００２８】
以上のようにして出力された第１のアドレスおよび第２のアドレスは、Ｎ／Ｄ列、Ｄ（Ｄ−１）／２行に区分された２次元方形状のメモリの各メモリ領域のアドレスを表す。本実施形態に係るアドレス生成回路１０から出力されるアドレスによってメモリ領域が指定されるメモリの一例を図２に示す。
【００２９】
図２において、メモリ４０は、Ｍ列、Ｄ（Ｄ−１）／２行に分割されたメモリ領域を有する。そしてこれらのメモリ領域は、１段ずつ段数が増加する（Ｄ−１）個のメモリバンク１〜（Ｄ−１）に分割されている。メモリバンク１には０行目の１段が、メモリバンク２には１行目〜２行目の２段が、以下同様に、メモリバンクｋにはｋ・（ｋ−１）／２行目〜ｋ・（ｋ＋１）／２−１行目のｋ段が割り当てられる。
【００３０】
そして、本実施形態に係るアドレス生成回路１０の列カウンタ２１から出力されるカウント値（第１のアドレス）は、図２のメモリ４０において指定するメモリ領域の列アドレスと一致する。また、演算器３５から出力される演算値は指定するメモリ領域を含むメモリバンクの最上段の行アドレスと一致し、セレクタ３２から出力される行カウンタ３１−ｋのカウンタ値は該メモリバンクの最上段から数えた段数と一致する。従って、加算器３６から出力される出力値（第２のアドレス）は、図２のメモリ４０において指定するメモリ領域の行アドレスと一致する。
【００３１】
以上のように、本実施形態に係るアドレス生成回路１０は、第１のアドレスの生成をＭ進アップ・カウンタ（列カウンタ２１）を使用したインクリメントのみで実現できる。さらに、第２のアドレスの生成を、指定するメモリ領域を含んでいるメモリバンクの最上段のアドレスの演算と、該メモリバンクの中での段数の演算と、の２段階することにより、一番段数の多いメモリバンク（Ｄ−１）に対応する行カウンタ３１−（Ｄ−１）でも（Ｄ−２）までカウントできればよく、行カウンタ３１の回路規模を削減することができる。
【００３２】
なお、上述のアドレス生成回路１０は、インタリーブ回路に適用する場合について説明した。該アドレス生成回路１０はデインタリーブ回路に適用することもできる。デインタリーブ回路に適用する場合、Ｄ進カウンタ３３としてデータが入力する毎にデクリメントし、（Ｄ−１）〜１のカウント値を出力するダウン・カウンタを適用する。そして、セレクタ３２において、行カウンタ３１−（Ｄ−１）、行カウンタ３１−（Ｄ−２）、…、行カウンタ３１−１の順番で行カウンタ３１を選択すると共に、演算器３５において、累算値保持手段３４から出力された累積値からＤ進カウンタ３３から出力されたカウンタ値を減算する演算する。さらに、データがＤ回入力する毎に、Ｄ進カウンタ３３はデクリメントを停止し、セレクタ３２、演算器３５および加算器３６は処理を一回分停止し、累算値保持手段３４は保持している累積値をＤ（Ｄ−１）／２にリセットする。
【００３３】
（第２の実施形態）
第２の実施形態に係るインタリーブ回路について説明する。本実施形態に係るインタリーブ回路は、Ｎバイトのデータを深さＤでインタリーブする。なお、Ｎは任意の自然数、ＤはＮを割り切る自然数、Ｍ＝Ｎ／Ｄである。本実施形態に係るインタリーブ回路のブロック構成図の一例を図３示す。図３において、インタリーブ回路５０は、クロック生成手段６０、アドレス生成手段７０、出力制御手段８０およびメモリ手段９０を備える。
【００３４】
クロック生成手段６０は、所定の間隔で信号を出力する第１のクロック６１、第２のクロック６２および第３のクロック６３を備え、データが入力するタイミングをカウントする。第１のクロック６１はデータが入力する毎に第１の信号を出力してアドレス生成手段７０および出力制御手段８０へ出力する。第２のクロック６２はデータがＤ回入力する毎に第２の信号を出力してアドレス生成手段７０および出力制御手段８０へ出力する。第３のクロック６３はデータがＮ回入力する毎に第３の信号を出力してアドレス生成手段７０へ出力する。
【００３５】
アドレス生成手段７０は、第１の実施形態で説明したアドレス生成回路１０を適用することができ、クロック生成手段６０から第１の信号が入力する毎に第１のアドレスおよび第２のアドレスを生成して出力制御手段８０へ出力する。以下、簡単にアドレス生成手段７０の動作を説明する。
【００３６】
第１のアドレス生成手段７１は、クロック生成手段６０から第２の信号が入力した場合にインクリメントし、第１の信号が入力する毎にカウント値（０〜（Ｍ−１））出力する列カウンタ７２を備え、列カウンタ７２から出力されたカウント値を第１のアドレスとして出力制御手段８０へ出力する。
【００３７】
第２のアドレス生成手段７３において、（Ｄ−１）個の行カウンタ７４は、クロック生成手段６０から第３の信号が入力する毎にインクリメントし、第１の信号が入力する毎にカウント値（０〜（ｋ−１））を出力する。セレクタ７５は、第１の信号が入力する毎に行カウンタ７４からの出力を順次選択して加算器７９へ出力する。Ｄ進カウンタ７６は、第１の信号が入力する毎にインクリメントし、カウント値（０〜（Ｄ−２））を出力する。そして、累算値保持手段７７、演算器７８および加算器７９は、第１の信号が入力する毎に第１の実施形態で説明した処理を行い、生成した第２のアドレスを出力制御手段８０へ出力する。なお、第１の信号と共に第２の信号が入力した場合、セレクタ７５、Ｄ進カウンタ７６、演算器７８および加算器７９は上記の処理を行わず、累算値保持手段７７は累積値を０にリセットする。
【００３８】
出力制御手段８０は、クロック生成手段６０から第１の信号が入力する毎に、アドレス生成手段７０から入力した第１のアドレスおよび第２のアドレスを用いてメモリ手段９０へアクセスする。そして、アドレスに対応するメモリ領域からデータを読み出してデータ出力端子８２から外部へ出力した後、データ入力端子８１から入力したデータを該メモリ領域へ書き込む。なお、出力制御手段８０は、第１の信号と共に第２の信号が入力した場合、メモリ手段９０にアクセスせずに、データ入力端子８１から入力したデータをそのままデータ出力端子８２から外部へ出力する。
【００３９】
メモリ手段９０は、第１の実施形態で説明したメモリ４０を適用することができる。すなわち、メモリ７０は、Ｍ・Ｄ（Ｄ−１）／２のメモリ領域を有し、（Ｄ−１）個のメモリバンクに分割されている。
【００４０】
以上のように構成したインタリーブ回路５０は、第１の実施形態で説明したのと同様のアドレス生成手段７０およびメモリ手段９０を備えることから、必要最小限のメモリ領域のみを使用しながらも回路を単純にできるインタリーブ回路を提供することができる。
【００４１】
（第３の実施形態）
第３の実施形態に係るインタリーブ回路について説明する。本実施形態に係るインタリーブ回路は、Ｎバイトのデータを深さＤでインタリーブする。なお、Ｎは任意の自然数、ＤはＮを割り切る自然数、Ｍ＝Ｎ／Ｄである。本実施形態に係るインタリーブ回路１００のブロック構成図の一例を図４示す。図４において、インタリーブ回路１００は、データ入力端子２００、メモリ手段３００、データセレクタ４００、データ出力端子５００、制御信号生成手段６００およびアドレス生成手段７００を備える。ここで、制御信号生成手段６００が請求項のクロック生成手段に相当する。
【００４２】
データ力端子２００にはインタリーブするデータが入力され、入力したデータはメモリ手段３００とデータセレクタ４００とへ出力される。
【００４３】
メモリ手段３００は、データ入力端子２００から入力した入力データを一時的に保存する。メモリ手段３００は、メモリ書き込み手段３１０、メモリ３２０およびメモリ読み出し手段３３０を備える。メモリ書き込み手段３１０は、制御信号生成手段６００のメモリ制御手段６５０から入力したメモリ制御信号に基づいて、入力端子２００から入力した入力データをメモリ３２０に書き込む。メモリ３２０には入力端子２００から入力した入力データが一時的に保存される。本実施形態において、メモリ３２０は第１の実施形態の図２で説明した、Ｍ・Ｄ（Ｄ−１）／２のメモリ領域を有し、（Ｄ−１）個のメモリバンクに分割されたメモリ４０を適用することができる。メモリ読み出し手段３３０は、メモリ制御手段６５０から入力したメモリ制御信号に基づいてメモリ３２０に保存されているデータを読み出し、読み出したデータをデータセレクタ４００へ出力する。
【００４４】
データセレクタ４００は、制御信号生成手段６００のデータ選択手段６６０から入力したデータ選択信号に基づいて、メモリ手段３００から読み出されたデータと、データ入力端子２００からメモリ手段３００を介さずに伝送されてきたデータと、のどちらか一方を選択し、選択したデータをデータ出力端子５００へ出力する。
【００４５】
データ出力端子５００は、データセレクタ４００から入力したデータを出力する。ここで、データ出力端子５００からは、インタリーブされたデータが出力される。
【００４６】
制御信号生成手段６００は各種制御信号を生成して、生成した制御信号をメモリ手段３００、データセレクタ４００およびアドレス生成手段７００へ出力する。図４において、制御信号生成手段６００は、カウンタ１制御手段６１０、カウンタ群制御手段６２０、セレクタ制御手段６３０、累算器制御手段６４０、メモリ制御手段６５０およびデータ選択手段６６０を備える。
【００４７】
カウンタ１制御手段６１０は、データがＤ回入力する度に、カウント値をインクリメントするためのカウンタ１制御信号を生成し、生成したカウンタ１制御信号をアドレス生成手段７００のアドレス１生成手段７１０へ出力する。
【００４８】
カウンタ群制御手段６２０は、データがＮ回入力される度に、カウント値をインクリメントするためのカウンタ群制御信号を生成し、生成したカウンタ群制御信号をアドレス生成手段７００のアドレス２−１生成手段７３０へ出力する。
【００４９】
セレクタ制御手段６３０は、データが入力される度に、その入力データが振り分けられるパス番号を表すセレクタ制御信号（０〜（Ｄ−１））を生成し、生成したセレクタ制御信号をアドレス生成手段７００のアドレス２−１生成手段７３０、メモリ制御手段６５０およびデータ選択手段６６０へ出力する。
【００５０】
累算器制御手段６４０は、データが入力される度に、累算器制御信号を生成し、生成した累算器制御信号をアドレス生成手段７００のアドレス２−２生成手段７４０へ出力する。
【００５１】
メモリ制御手段６５０は、セレクタ制御手段６３０から入力したセレクタ制御信号に基づいてメモリ制御信号を生成し、生成したメモリ制御信号をメモリ手段３００へ出力する。本実施形態において、メモリ制御手段６５０は、パス０のセレクタ制御信号が入力した場合、アクセス不可を意味するメモリ制御信号を生成する。一方、パス１〜（Ｄ−１）のセレクタ制御信号が入力した場合、読み出しアクセス可／書き込みアクセス可を意味するメモリ制御信号を生成する。
【００５２】
データ選択手段６６０は、セレクタ制御手段６３０から入力したセレクタ制御信号に基づいてデータ選択信号を生成し、生成したデータ選択信号をデータセレクタ４００へ出力する。本実施形態において、データ選択手段６６０は、パス０のセレクタ制御信号が入力した場合、データ入力端子２００からのデータを選択するデータ選択信号を生成する。一方、パス１〜（Ｄ−１）のセレクタ制御信号が入力した場合、メモリ手段３００からのデータを選択するデータ選択信号を生成する。
【００５３】
アドレス生成手段７００は、制御信号生成手段６００から入力した各種制御信号に基づいてメモリ手段３００のメモリ３２０にアクセスするためのアドレス１およびアドレス２を生成し、生成したアドレス１およびアドレス２を、メモリ書き込み手段３１０およびメモリ読み出し手段３３０へ出力する。アドレス生成手段７００のブロック構成図の一例を図５に示す。
【００５４】
図５において、アドレス生成手段７００は、アドレス１を生成するアドレス１生成手段７１０、アドレス２を生成するアドレス２生成手段７２０を備える。
【００５５】
アドレス１生成手段７１０は、カウンタ１制御手段６１０から入力したカウンタ１制御信号に基づいて、アドレス１を生成してメモリ手段３００へ出力する。本実施形態において、アドレス１生成手段７１０は、カウンタ１_７１１を備え、カウンタ１_７１１は、０〜（Ｍ−１）のカウント値をとるＭ進のアップ・カウンタである。カウンタ１_７１１は、カウンタ１制御信号が入力されることによってインクリメントする。カウンタ１_７１１からの出力がアドレス１となる。ここで、アドレス１は、メモリ３２０の何列目のデータへアクセスするかを表す列アドレスである。
【００５６】
アドレス２生成手段７２０は、カウンタ群制御手段６２０から入力したカウンタ群制御信号およびセレクタ制御手段６３０から入力したセレクタ制御信号に基づいてアドレス２−１を生成するアドレス２−１生成手段７３０、累算器制御手段６４０から入力した累算器制御信号に基づいてアドレス２−２を生成するアドレス２−２生成手段７４０、および、生成したアドレス２−１およびアドレス２−２からアドレス２を生成して出力する加算器７５０を備える。以下、アドレス２の生成手順について説明する。
【００５７】
図５において、アドレス２−１生成手段７３０は、カウンタ群７３１およびセレクタ７３２を備える。カウンタ群７３１は、カウンタ群制御手段６２０から入力したカウンタ群制御信号に基づいてカウンタ値を生成し、生成したカウンタ値をセレクタ７３２へ出力する。本実施形態において、カウンタ群７３１は、定数値生成手段と（Ｄ−２）個のカウンタ２〜（Ｄ−１）とを備える。定数値生成手段はパス１に対応し、常に定数値０のカウンタ値を出力する。カウンタ２はパス２に対応し、０〜１のカウント値を出力するアップ・カウンタである。カウンタ３はパス３に対応し、０〜２のカウント値を出力するアップ・カウンタである。同様に、カウンタ（Ｄ−１）はパス（Ｄ−１）に対応し、０〜（Ｄ−２）のカウント値を出力するアップ・カウンタである。該カウンタ２〜（Ｄ−１）は、カウンタ群制御信号が入力されることによってインクリメントする。
【００５８】
セレクタ７３２は、セレクタ制御手段６３０から入力したセレクタ制御信号に基づいて、定数値生成手段およびカウンタ２〜（Ｄ−１）から出力されたカウンタ値のうちの１つを選択し、選択したカウンタ値をアドレス２−１として加算器７５０へ出力する。セレクタ７３２は、インタリーブの際はカウンタ２、カウンタ３、…の順番で出力されたカウンタを選択し、デインタリーブの際はカウンタ（Ｄ−１）、カウンタ（Ｄ−２）、…の順番で出力されたカウンタ値を選択する。
【００５９】
一方、アドレス２−２生成手段７４０は、カウンタＤ７４１、累算値保持手段７４２および演算器７４３を備える。カウンタＤ７４１は、累算器制御手段６４０から入力した累算器制御信号に基づき、インタリーブの際はデータが入力される毎にインクリメントして０〜（Ｄ−２）のカウント値を演算器７４３へ出力し、デインタリーブの際はデータが入力される毎にデクリメントして（Ｄ−１）〜１のカウント値を演算器７４３へ出力する。
【００６０】
累算値保持手段７４２は、累積値を保持し、データが入力される毎に保持している累積値を演算器７４３へ出力する。なお、累算値保持手段７４２は、初期値として、インタリーブの際は０を、デインタリーブの際はＤ（Ｄ−１）／２を、演算器７４３へ出力する。
【００６１】
演算器７４３は、インタリーブの際は、カウンタＤ７４１から入力したカウント値と、累算値保持手段７４２から入力した１サイクル前の演算値と、の和を求める加算を行い、累算値保持手段７４２が保持している累積値を演算した演算値へ更新すると共に演算値を加算器７５０へ出力する。一方、演算器７４３は、デインタリーブの際は、累算値保持手段７４２から入力した累積値からカウンタＤ７４１から入力したカウント値を減算する減算を行う。
【００６２】
そして、加算器７５０は、セレクタ７３２から入力したアドレス２−１と、演算器７４３から入力したアドレス２−２との和を計算することによりアドレス２を生成し、生成したアドレス２をメモリ手段３００へ出力する。ここで、アドレス２は、メモリ３２０の何行目のデータへアクセスするかを示す行アドレスである。
以上のように構成したインタリーブ回路１００は、パス１〜パス（Ｄ−１）へ流すデータに対しては、メモリ３２０からデータの読み出し、メモリ３２０への書き込みの順に行う。制御信号生成手段６００において、メモリ制御手段６５０はセレクタ制御手段６３０から入力されたセレクタ制御信号に基づいて読み出しアクセス可を意味するメモリ制御信号を生成してメモリ手段３００へ出力し、データ選択手段６６０はメモリ手段３００から読み出されたデータを選択するデータ選択信号を生成してデータセレクタ４００へ供給する。一方、アドレス生成手段７００は、制御信号生成手段６００から入力した各種制御信号に基づいてメモリ手段３００のメモリ３２０にアクセスするためのアドレス１およびアドレス２を生成してメモリ書き込み手段３１０およびメモリ読み出し手段３３０へ出力する。
【００６３】
この時、メモリ３２０からアドレス生成手段７００により生成された該アドレス位置に保存されていたデータが読み出され、データセレクタ４００はメモリ手段３００からのデータを選択してデータ出力端子５００に出力し、インタリーブ結果が出力される。
【００６４】
さらに、メモリ３２０の該アドレス位置に、データ入力端子２００から入力されたインタリーブ前の入力データが書き込まれる。
【００６５】
一方、パス０の入力データに対しては、メモリ３２０に対して読み出しアクセスや書き込みアクセスは行わない。制御信号生成手段６００において、メモリ制御手段６５０はセレクタ制御手段６３０から入力されたセレクタ制御信号に基づいてアクセス不可を意味するメモリ制御信号をメモリ手段３００へ出力し、データ選択手段６６０はデータ入力端子２００からメモリ手段３００を介さずに伝送されてきたデータを選択するデータ選択信号を生成してデータセレクタ４００へ供給する。また、このとき、アドレス生成手段７００はアドレス１およびアドレス２の出力を行わない。このため、メモリ手段３００には書き込み動作・読出し動作は行われず、データ出力端子５００にはメモリ３２０を介さずにそのままデータ入力端子２００から入力されたデータが現れる。
【００６６】
以上のように、畳み込みインタリーブ処理においてシフトレジスタの段数が等差数列状に増加し、合計のメモリ領域が階差数列状になる性質を利用して、パス１、２、…、パス（Ｄ−１）にそれぞれ、メモリ３２０の１行、２行、…、（Ｄ−１）行を与える構成にする。この構成にすることにより、列アドレスの生成を、Ｍ進のアップ・カウンタを使用したインクリメントのみで実現できるため、アドレス１生成手段７１０の回路構成が単純化される。さらに、カウンタ群７３１の各カウンタに最小値を設定する必要がなくなり、その設定のための配線を設置する必要がなくなるため、カウンタ群の回路規模が削減される。
【００６７】
また、アドレス２の生成を、各メモリバンクの最上端のアドレスの生成と、その最上端のアドレスからの差分アドレスの生成とに分割したことから、差分アドレスを生成するカウンタ群７３１の各カウンタのカウント値は、一番段数の多いパス（Ｄ−１）に対応するカウンタでも最大値が（Ｄ−１）となり、カウンタ群の回路規模が削減される。
【００６８】
（第４の実施形態）
第４の実施形態について説明する。本実施形態では、パラメータとして、特許文献１の説明で用いたのと同じＮ＝１８、Ｄ＝６を設定する。なお、Ｍ＝Ｎ／Ｄ＝３とする。この場合、インタリーブ処理に必要なメモリ所要量はＮ／２・（Ｄ−１）＝４５バイトである。
【００６９】
本実施形態に係るメモリのメモリ領域の使用状態の一例を図６に、主要信号の動作タイミングの一例を図７に示す。なお、図６（ａ）〜（ｆ）はそれぞれ、入力データＡ０〜Ａ１７、Ｂ０〜Ｂ１７、Ｃ０〜Ｃ１７、Ｄ０〜Ｄ１７、Ｅ０〜Ｅ１７、Ｆ０〜Ｆ１７の順に計１０８バイト入ってきた場合のメモリ領域の状況、図７は入力データＡ０〜Ａ１７、Ｂ１が入力した時の状況を示す。
【００７０】
図６において、メモリはメモリバンク１〜５を有し、メモリ所要量４５バイトを有する。パス１にはメモリバンク１（０行目）が、パス２にはメモリバンク２（１〜２行目）が、パス３にはメモリバンク３（３〜５行目）が、パス４にはメモリバンク４（６〜９行目）が、パス５にはメモリバンク５（１０〜１４行目）が与えられる。なお、パス０に入力されたデータはメモリにアクセスせずにそのまま出力されるので、対応するメモリ領域は確保されない。ここで、斜線の入った領域は新たに書き込まれたデータを表し、斜線の入っていないデータ領域はそれより以前に書き込まれたデータを表す。空白の領域は、データが書き込まれていないか、もしくは意味を持たないデータが入っている状況を表す。
【００７１】
一方、図７において、データ入力信号およびデータ出力信号は、それぞれ、第３の実施形態のデータ入力端子２００およびデータ出力端子５００に表れるデータ信号を表す。列アドレス、行アドレスはそれぞれ、アドレス生成手段７００が生成したアドレス１およびアドレス２を表す。メモリ制御信号はメモリ制御手段６５０で生成されるメモリ制御信号であり、ＩＤＬＥ、ＲＤおよびＷＲはそれぞれ、アクセス不可、読み出しアクセス可および書き込みアクセス可を意味する。データ選択信号はデータ選択手段６６０で生成されるデータ選択信号であり、Ｈｉｇｈの場合にデータセレクタ４００はデータ入力端子２００側の信号を選択する。そして、読み出しデータおよび書き込みデータはそれぞれ、メモリ３２０から読み出されたデータ信号および書き込むデータ信号を表す。
【００７２】
図６および図７を用いて、各データが入力された時のメモリの状態および現れる信号について説明する。まず、データＡ０がインタリーブ回路に入力された時、図７に示すように、列アドレス、行アドレスは生成されず、また、メモリ制御信号がアクセス不可（ＩＤＬＥ）なので、メモリ３２０へ何も供給されない。さらに、データ選択信号がＨｉｇｈなので、データセレクタ４００はデータ入力端子２００側の入力を選択し、入力データＡ０はそのままデータ出力端子５００から出力される。すなわち、Ａ０はパス０を通過してメモリ３２０には書き込まれず、図６（ａ）には表れない。
【００７３】
次に、データＡ１がインタリーブ回路に入力された時、図７に示した列アドレス、行アドレスがメモリ手段３００に供給される。そして、メモリ制御信号が、読み出しアクセス可（ＲＤ）・書き込みアクセス可（ＷＲ）の順にメモリ手段３００に供給されることにより、読み出しデータにはメモリアドレス（０、０）に入っていたＲ１のデータが現れ、書き込みデータには入力されたＡ１が現れる。すなわち、図６（ａ）の（０、０）にＡ１が現れる。また、データ選択信号がＬｏｗなので、データセレクタ４００はメモリ読み出し手段３３０側が選択され、メモリ手段３００から読み出されたデータＲ１がデータ出力信号に表れる。
【００７４】
アドレス生成手段７００は、入力データＡ０、Ａ１、…、Ａ１７がインタリーブ回路に入力されることにより、（列アドレス、行アドレス）＝（０、０）、（０、０）、（０、１）、（０、３）、（０、６）、（０、１０）、（１、０）、（１、０）、（１、１）、（１、３）、（１、６）、（１、１０）、（２、０）、（２、０）、（２、１）、（２、３）、（２、６）、（２、１０）の順に２次元状のアドレスを生成する。Ａ０、Ａ６、Ａ１２はパス０を通過してメモリ３２０には書き込まれず、Ａ１〜Ａ５、Ａ７〜Ａ１１、Ａ１３〜Ａ１７はパス１〜パス５を通過することにより、図６（ａ）の状態となる。そして、入力データＡ０〜Ａ１７がインタリーブ回路に入力された後、カウンタ群制御手段６２０からカウンタ群７３１の各カウンタのカウント値をインクリメントするためのカウンタ群制御信号が発生し、カウンタ群７３１の全カウント値が一斉にインクリメントする。なお、初期状態の時に書き込まれていたデータＲ１〜Ｒ１７は意味を持たない任意のデータである。
【００７５】
次に、アドレス生成手段７００は、入力データＢ０、Ｂ１、…、Ｂ１７がインタリーブ回路に入力されることにより、（列アドレス、行アドレス）＝（０、０）、（０、０）、（０、２）、（０、４）、（０、７）、（０、１１）、（１、０）、（１、０）、（１、２）、（１、４）、（１、７）、（１、１１）、（２、０）、（２、０）、（２、２）、（２、４）、（２、７）、（２、１１）の順に２次元状のアドレスを生成する。入力されたデータのうちＢ０、Ｂ６、Ｂ１２を除いた、Ｂ１〜Ｂ５、Ｂ７〜Ｂ１１、Ｂ１３〜Ｂ１７がメモリ領域に書き込まれ、図６（ｂ）の状態となる。そして、入力データＢ０〜Ｂ１７がインタリーブ回路に入力された後、カウンタ群７３１の全カウント値が一斉にインクリメントする。なお、アドレス（０、０）、（１、０）、（２、０）を読み出したときには、先ほど書き込んだ入力データＡ１、Ａ７、Ａ１３が読み出される。
【００７６】
以下同様に、図６（ｃ）はデータＣ０、Ｃ１、…、Ｃ１７がインタリーブ回路に入力された後の状態、図６（ｄ）はデータＤ０、Ｄ１、…、Ｄ１７がインタリーブ回路に入力された後の状態、図６（ｅ）はデータＥ０、Ｅ１、…、Ｅ１７がインタリーブ回路に入力された後の状態を表す。図６（ｅ）の時、メモリの全領域が入力されたデータによって埋められる。
【００７７】
そして、図６（ｆ）は、入力データＦ０、Ｆ１、…、Ｆ１７がインタリーブ回路に入力された後の状態を示しており、この最後の１８バイトのデータが入力された時、インタリーブ回路から読み出されるデータは、Ｆ０、Ｅ１、Ｄ２、Ｃ３、Ｂ４、Ａ５、Ｆ６、Ｅ７、Ｄ８、Ｃ９、Ｂ１０、Ａ１１、Ｆ１２、Ｅ１３、Ｄ１４、Ｃ１５、Ｂ１６、Ａ１７となり、特許文献１の出力系列と同じ出力系列になる。
【００７８】
なお、本実施形態に係るアドレス生成回路は、上述のパラメータ（Ｎ＝１８、Ｄ＝６、Ｍ＝３）や地上デジタル音声放送のパラメータ（Ｎ＝２０４、Ｄ＝１２、Ｍ＝１７）のみに適用されるものではなく、他の同様のインタリーブ・デインタリーブ処理を必要とするデジタル通信にも応用することができる。
【００７９】
また、本発明のアドレス生成回路は、畳み込みインタリーブ・デインタリーブ処理を実施例として示したが、ブロックインタリーブ処理にも応用することができる。また、本記実施形態ではバイト（＝８ビット）単位で処理を行ったが、バイト単位の処理に限定されるものではなく、８ビット以外のある一定のビット数をひと組とした単位での処理に適用することができる。
【符号の説明】
【００８０】
１０    アドレス生成回路
２０    第１のアドレス生成手段
３０    第２のアドレス生成手段
４０    メモリ
５０    インタリーブ回路
６０    クロック生成手段
７０    アドレス生成手段
８０    出力制御手段
９０    メモリ手段
１００    インタリーブ回路
２００    データ入力端子
３００    メモリ手段
４００    データセレクタ
５００    データ出力端子
６００    制御信号生成手段
７００    アドレス生成手段
７１０    アドレス１生成手段
７１１    カウンタ１
７２０    アドレス２生成手段
７３０    アドレス２−１生成手段
７３１    カウンタ群
７３２    セレクタ
７４０    アドレス２−２生成手段
７４１    カウンタＤ
７４２    累算値保持手段
７４３    演算器
７５０    加算器
【図１】
2012175244.tif 000003
【図２】
2012175244.tif 000004
【図３】
2012175244.tif 000005
【図４】
2012175244.tif 000006
【図５】
2012175244.tif 000007
【図６】
2012175244.tif 000008
【図７】
2012175244.tif 000009
【図８】
2012175244.tif 000010
【図９】
2012175244.tif 000011