(57)【特許請求の範囲】
【請求項１】
複数シンボルからなるシリアルデータを所定シンボル数毎に複数のブロックに区切り、各ブロック内で同一シンボル位置にあるシンボルをブロック順に順次取得してなるシンボルグループを、所定のグループ順で一列に並べるブロックインタリーブ処理、の施されたシリアルデータから、前記ブロックインタリーブ処理前のシリアルデータを取得するデインタリーブ処理回路であって、
前記グループ順を記憶する第一の記憶部と、
前記シンボルグループ毎のシンボル数に基づく数値データを、前記シンボルグループ単位で記憶する第二の記憶部と、
を備え、
前記グループ順と前記数値データとに基づいて、デインタリーブ処理を行うデインタリーブ処理回路。
【請求項２】
前記数値データは、シンボルグループ毎のシンボル総数と所定シンボル数との差分を、ブロックインタリーブ処理後のシリアルデータにおけるシンボルグループの並び順に累積した値であることを特徴とする請求項１に記載のデインタリーブ処理回路。
【請求項３】
前記第二の記憶部は、シリアルデータのデータサイズ毎に前記数値データを記憶することを特徴とする請求項１または２に記載のデインタリーブ処理回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロックインタリーブ処理されたシリアルデータから、ブロックインタリーブ処理前のデータを取得するデインタリーブ処理回路に関する。
【０００２】
【従来の技術】
従来より、ディジタルデータ伝送では、符号誤り率を低減するために、ブロックインタリーブ処理が用いられている。ブロックインタリーブ処理によれば、伝送途中にシリアルデータに生じた局所的なバースト誤りを、分散的なランダム誤りに置き換えることができるため、符号訂正能力の高いランダム訂正符号を適用して、ビットエラーレートを抑制することができる。以下、図５を参照して従来のブロックインタリーブについて説明する。図５は、従来のブロックインタリーブ処理を示す説明図である。
【０００３】
ブロックインタリーブ処理では、複数シンボルからなるシリアルデータＤ１が、所定シンボル数毎に複数のブロックに区切られる。そして、各ブロック内で同一シンボル位置にあるシンボルがブロック順に順次取得されてなるシンボルグループが、所定のグループ順で一列に並べられ、シリアルデータＤ２が再構成される。上記一連の処理は、図５を参照すれば、より容易に理解することができよう。
【０００４】
図５の例では、シリアルデータＤ１のシンボルが、行列型バッファに、行方向に上から下に（矢印に沿って）順次書き込まれる。このとき各ブロックは、行列の「行」として配置される。ここで便宜上、各ブロック内で同一シンボル位置（シンボル深さ）にある複数のシンボルを「シンボルグループ」と称する。各シンボルグループは行列の「列」として配置されることになる。次いで、シンボルグループが、所定のグループ順に並び替えられ（図５（ｂ））、この並び替え後、列方向に左から右に（矢印に沿って）順次シンボルが読み出され（図５（ｃ））、こうして読み出された順にシリアルデータＤ２が再構成される。このブロックインタリーブ処理は、列間並び替え（シンボルグループの並び替え）を伴うブロックインタリーブ処理と言うことができる。なお、ここで処理されるシリアルデータＤ１のシンボル数は、ブロック数（行数）Ｎの整数倍となっており、ブロック数（すなわち１シンボルグループあたりの最大シンボル数，または行数）Ｎとシンボルグループ数（すなわち１ブロックあたりのシンボル数，または列数）Ｍとを乗算した数に等しい。
【０００５】
デインタリーブ処理では、上記ブロックインタリーブ処理の逆の順序で処理が行われ、ブロックインタリーブ処理前のシリアルデータＤ１が再現される。すなわち、図６（ａ）に示すように、ブロックインタリーブ処理後のシリアルデータＤ２のシンボルが、行列型バッファに、列方向に左から右に（矢印に沿って）順次書き込まれる。シリアルデータＤ２のシンボル数は、行数Ｎと列数Ｍとの積に等しいから、全シンボルグループでそれに含まれるシンボル数は同一となる。このため図５で用いたのと同形状の行列型バッファにシリアルデータＤ２を書き込み、これを所定シンボル数（行数Ｎ）で区切る（すなわち列毎に区切る）ことで、シリアルデータＤ２を容易にシンボルグループ毎に区分することができる。次いで、列として配置されたシンボルグループが図５（ｂ）の並び替え前の順に並び替えられ（図６（ｂ））、この並び替え後、各行のシンボルが行方向に上から下に（矢印に沿って）順次読み出され、ブロックインタリーブ処理前のシリアルデータＤ１が再現される。
【０００６】
【発明が解決しようとする課題】
上記例示したデインタリーブ処理では、シリアルデータＤ２のシンボル数が、ブロック数（行数）Ｎとシンボルグループ数（列数）Ｍとを乗算した数に等しいので、所定シンボル数（行数）で区切る（すなわち列毎に区切る）ことにより、比較的容易に、シリアルデータＤ２をシンボルグループに区分することができた。
【０００７】
しかし、シリアルデータＤ２のシンボル数が、行数の整数倍（すなわち行数Ｎと列数Ｍとを乗算した数）となっていない（例えばより少ない）場合には、従来のような区分はできなくなる。これについて図７を参照して説明する。
【０００８】
図５および図６と同じ表記に従うと、この場合のブロックインタリーブ処理における書き込み後のシリアルデータＤ１は図７（ａ）のようになる。すなわち、最下行（最終ブロック）のシンボル数は、他の行（他のブロック）のシンボル数より少なくなる。このシリアルデータＤ１に対して図５（ｂ）のように列間並び替えを行うと［図７（ｂ）］、図７（ｃ）のようになる。これを列方向に左から右に（矢印に沿って）順次読み出すと（図７（ｃ））、ブロックインタリーブ処理後のシリアルデータＤ２では、シンボル数の異なるシンボルグループ（すなわち、シンボル数ＮのシンボルグループＧ１とシンボル数Ｎ−１のシンボルグループＧ２）が混在してしまうことになる。このため、図７（ｄ）に示すように、従来のように同じシンボル数（行数）でシンボルグループを切り出す手法では、正確にシンボルグループを区分することができなくなってしまい、ひいてはデインタリーブ処理による正確なシリアルデータＤ１の再現ができなくなってしまう。
【０００９】
【課題を解決するための手段】
本発明にかかるデインタリーブ処理回路は、複数シンボルからなるシリアルデータを所定シンボル数毎に複数のブロックに区切り、各ブロック内で同一シンボル位置にあるシンボルをブロック順に順次取得してなるシンボルグループを、所定のグループ順で一列に並べるブロックインタリーブ処理、の施されたシリアルデータから、前記ブロックインタリーブ処理前のシリアルデータを取得するデインタリーブ処理回路であって、前記グループ順を記憶する第一の記憶部と、前記シンボルグループ毎のシンボル数に基づく数値データを、前記シンボルグループ単位で記憶する第二の記憶部と、を備え、前記グループ順と前記数値データとに基づいて、デインタリーブ処理を行う。
【００１０】
これにより、デインタリーブ処理の際にシンボルグループ毎のシンボル数を反映させることができるので、シリアルデータのシンボル数が、ブロック数の整数倍でない場合にも、デインタリーブ処理を行うことができる。なお、本発明では、数値データをシンボルグループ単位で記憶するので、より少ない記憶容量で済む。
【００１１】
また本発明では、前記数値データは、シンボルグループ毎のシンボル総数と所定シンボル数との差分を、ブロックインタリーブ処理後のシリアルデータにおけるシンボルグループの並び順に累積した値であるのが好適である。これにより、ブロックインタリーブ処理前のシリアルデータ中で所定のシンボル位置にあるシンボルが、ブロックインタリーブ処理後のシリアルデータ中でどのシンボル位置にあるかを、比較的単純な演算により取得することができる。
【００１２】
また本発明では、前記第二の記憶部は、シリアルデータのデータサイズ毎に前記数値データを記憶するのが好適である。これにより、シリアルデータのサイズがシリアルデータ毎に異なる場合にも、より容易かつより的確にデインタリーブ処理を行うことができる。
【００１３】
【発明の実施の形態】
以下、本発明の実施形態にかかるデインタリーブ処理回路について図面を参照して説明する。図１は、デインタリーブ処理前後のシリアルデータを示す図、図２は、デインタリーブ処理回路１０の概略構成図、図３は、デインタリーブ処理回路１０の記憶部１２に記憶されるグループ順テーブル１４の一例を示す図、また図４は、同記憶部１２に記憶される数値データテーブル１６の一例を示す図である。
【００１４】
本実施形態にかかるデインタリーブ処理回路１０は、例えば図１に示すようなブロックインタリーブ処理後のシリアルデータ（すなわちデインタリーブ処理前のシリアルデータ）Ｄ２に対してデインタリーブ処理を施し、ブロックインタリーブ処理前のシリアルデータＤ１を取得する。図１に示すように、シリアルデータＤ１のシンボルは、ブロック毎に群をなして並び、またシリアルデータＤ２のシンボルはシンボルグループ毎に群をなして並んでいる。以下の説明で用いられるシリアルデータＤ２は、シンボルグループ数（すなわち１ブロック内のシンボル数）：Ｍ、ブロック数（すなわち１シンボルグループ内の最大シンボル数）：Ｎ、およびシンボル数（データサイズ）：Ｍ×（Ｎ−１）＋Ｌ（０＜Ｌ＜Ｍ）のデータである（ただし、Ｍ，Ｎ，Ｌは自然数）。すなわち、このシリアルデータＤ２のデータサイズ（シンボル数）は、ブロック数Ｎとシンボルグループ数Ｍとを乗算した数（Ｍ×Ｎ）より少なく、シリアルデータＤ２では、シンボル数Ｎのシンボルグループと、シンボル数Ｎ−１のシンボルグループとが混在して並んでいる。
【００１５】
図２に示すように、デインタリーブ処理回路１０は、デインタリーブ処理前のシリアルデータＤ２を格納するデータメモリ１８（例えばＲＡＭ等）と、デインタリーブ処理を行う処理部２０と、処理に用いるパラメータを記憶する記憶部１２（例えばＲＯＭ等）と、を備える。
【００１６】
処理部２０は、デインタリーブ処理後のシリアルデータＤ１のアドレスｐ（すなわちシンボル位置，ｐ：自然数）を、先頭アドレス（ｐ＝０）から、少なくともシリアルデータＤ１のシンボル数（Ｍ×（Ｎ−１）＋Ｌ）より多い数（例えばＭ×Ｎ）までの分インクリメントし（例えば、Ｐ＝０，１，・・・，Ｍ×Ｎ−１）、各アドレスｐに対応するシリアルデータＤ２のアドレスｑ（すなわちシンボル位置，ｑ：自然数）を順次取得する。
【００１７】
処理部２０では、アドレスｐは、実際にはＭ進カウンタ２２に入力されたｐ番目のクロックパルスである。Ｍ進カウンタ２２は、アドレスｐ（すなわちクロックパルス）を取得する度にパラメータｉ（ｉ：自然数）をインクリメントして出力する。このインクリメントは、Ｍの幅で反復的に（例えばｉ＝０，１，２，・・・，Ｍ−１，０，１，２，・・・Ｍ−１，０，１，２・・・）行われる。また、このＭ進カウンタ２２は、アドレスｐをＭ個カウントする度に、信号ｃｙを出力する。Ｎ進カウンタ２４は、この信号ｃｙを取得する度にパラメータｊ（ｊ：自然数）をインクリメントして出力する。このインクリメントは、Ｎの幅で反復的に（例えばｉ＝０，１，２，・・・，Ｎ−１，０，１，２，・・・Ｎ−１，０，１，２・・・）行われる。したがってこれらＭ進カウンタ２２およびＮ進カウンタ２４により、アドレスｐのインクリメント（ｐ＝０，１，・・・，Ｍ×Ｎ−１）に応じて、パラメータ（ｉ，ｊ）は、
（０，０），（１，０），（２，０），・・・，（Ｍ−１，０），
（０，１），（１，１），（２，１），・・・，（Ｍ−１，１），
・・・
（０，Ｎ−１），（１，Ｎ−１），（２，Ｎ−１），・・・，（Ｍ−１，Ｎ−１）
の順に順次変化する。
【００１８】
パラメータｉは、グループ順取得回路２６および数値データ取得回路２８に入力される。
【００１９】
記憶部１２には、グループ順テーブル１４として、例えば図３に示すように、ブロックインタリーブ処理におけるシンボルグループ並び替え前のシンボルグループの並び順（すなわち列間並び替え前の列位置）を示す指標（これがパラメータｉに相当する）と、これに対応する並び替え後のシンボルグループの並び順（すなわち列間並び替え後の列位置）を示す指標Ｃ（ｉ）と、が格納されている。すなわち、ブロックインタリーブ処理後のシリアルデータＤ２のシンボルグループは、図１に示すように、指標Ｃ（ｉ）の順に並んでいることになる。グループ順取得回路２６は、このグループ順テーブル１４を参照して、パラメータｉに対応する指標Ｃ（ｉ）を取得する。なお図３は、Ｍ＝３０の場合の一例である。
【００２０】
また記憶部１２には、数値データテーブル１６として、例えば図４に示すように、パラメータｉ、パラメータＬ、およびそれらに対応付けられた数値データＦ（ｉ，Ｌ）と、が格納されている。この数値データＦ（ｉ，Ｌ）は、シンボルグループ毎のシンボル総数に基づくものである。本実施形態では、シンボルグループ毎のシンボル総数と所定シンボル数との差分を、シリアルデータＤ２におけるシンボルグループの並び順に累積した値を、数値データＦ（ｉ，Ｌ）としている。より具体的には、所定シンボル数をＮ−１として、シンボルブロック毎のシンボル総数がＮである場合には差分を１とし、シンボルブロック毎のシンボル総数がＮ−１である場合には差分を０とする。そして、数値Ｆ（ｉ，Ｌ）を、シリアルデータＤ２において、その先頭（位置：０）のシンボルグループから、位置Ｃ（ｉ）の一つ手前の位置［Ｃ（ｉ）−１］のシンボルグループまでで、前記差分を累積した数値とする。その一例としての図４を参照すると、Ｌ＝９のとき（太線枠内；Ｌについては後述）、パラメータｉ＝２には、数値データＦ（２，９）＝７が対応する。これは、シリアルデータＤ２において、先頭から、パラメータｉ＝２に対応する位置［Ｃ（２）＝２５］（図３より）の一つ手前の位置［Ｃ（２）−１＝２４］のシンボルグループまでに、シンボル総数がＮであるグループが７つあることを意味している。数値データ取得回路２８は、この数値データテーブル１６を参照して、パラメータｉおよびパラメータＬに対応する数値データＦ（ｉ，Ｌ）を取得する。なお、図４は、Ｍ＝３０の場合の一例である。
【００２１】
数値データテーブル１６は、図４に示すように、パラメータＬ毎に設定されている。このパラメータＬは、シリアルデータＤ２のシンボル数すなわちデータサイズに応じた数値であり、より具体的には、例えば、最終ブロックのシンボル数Ｌである。このようにシリアルデータのシンボル数毎に数値データを設定することで、シリアルデータ毎にそのシンボル数が変動するような場合にも、より確実にデインタリーブ処理を行うことができる。
【００２２】
処理部２０は、こうして取得したＣ（ｉ）およびＦ（ｉ，Ｌ）に基づいて（すなわち、グループ順位およびシンボルグループ毎のシンボル総数に基づいて）、アドレスｑを取得する。本実施形態では、次の式
ｑ＝Ｃ（ｉ）×（Ｎ−１）＋Ｆ（ｉ，Ｌ）＋ｊ  ・・・  （１）
によりアドレスｑを取得する。このため、処理部２０は、乗算器３０と加算器３２とを備え、乗算器３０はグループ順取得回路２６から取得したＣ（ｉ）にＮ−１を乗算し、加算器３２は、数値データ取得回路２８から取得したＦ（ｉ，Ｌ）と、乗算器３０から取得した［Ｃ（ｉ）×（Ｎ−１）］と、Ｎ進カウンタ２４から取得したパラメータｊと、を加算して、アドレスｑを出力する。
【００２３】
上記式（１）は、アドレスｑを、位置ｉのシンボルグループの位置ｊのシンボルのアドレスとして取得することを意味する。これを、図７を参照して説明する。［Ｃ（ｉ）×（Ｎ−１）］は図７（ｃ）の破線枠線Ａの部分のシンボル数の合計であり、Ｆ（ｉ，Ｌ）はＢの位置にある（すなわち破線枠線Ａ外にある）シンボルの合計数である。すなわち、先頭のシンボルグループ（位置：０）から位置：［Ｃ（ｉ）−１］のシンボルグループまでのシンボルの総数が、［Ｃ（ｉ）×（Ｎ−１）＋Ｆ（ｉ，Ｌ）］であることがわかる。したがって、これにインクリメントされるｊを加算すれば、位置ｉのシンボルグループで先頭から順にアドレスｑが取得される。
【００２４】
上記処理が、全アドレスｐに対して（すなわちクロックパルスが入力されるたびに順次）行われ、各シリアルデータＤ１のアドレスｐに対応するシリアルデータＤ２のアドレスｑが取得される。シリアルデータ取得部３４は、データメモリ１８に格納されたシリアルデータＤ２のアドレスｑのシンボルのデータ値を順次取得して、当該データ値を、シリアルデータＤ１のアドレスｐのシンボルのデータ値として逐次出力する。
【００２５】
上記説明した手順により、シリアルデータＤ２をデインタリーブしてシリアルデータＤ１を取得することができる。本実施形態にかかるデインタリーブ処理では、シンボルグループ単位で記憶された数値データを用いており、比較的少ない記憶容量のデータに基づいてデインタリーブ処理を行うことができる。
【００２６】
なお、本発明は上記実施形態には限定されない。例えば、上記実施形態では、所定シンボル数をＮ−１として、シンボルブロック毎のシンボル総数がＮである場合には差分を１とし、シンボルブロック毎のシンボル総数がＮ−１である場合には差分を０としたが、これに替えて、所定シンボル数をＮとして、シンボルブロック毎のシンボル総数がＮである場合には差分を０とし、シンボルブロック毎のシンボル総数がＮ−１である場合には差分を１とし、数値データＦ（ｉ，Ｌ）を、この差分を上記実施形態と同様に累積した数値としてもよい。この場合、アドレスｑを、上記式（１）に替えて、
ｑ＝Ｃ（ｉ）×Ｎ−Ｆ（ｉ，Ｌ）＋ｊ  ・・・  （２）
として取得すればよい。この場合、乗算器３０で、グループ順取得回路２６から取得したＣ（ｉ）に所定シンボル数としてのＮを乗算し、加算器３２で、乗算器３０から取得した［Ｃ（ｉ）×Ｎ］、［−Ｆ（ｉ，Ｌ）］、およびｊを加算するように構成すれば、式（２）で示すアドレスｑが得られる。
【００２７】
また例えば、アドレスｑを、上記式（１）に替えて、
ｑ＝Ｆ（ｉ，Ｌ）＋ｊ  ・・・  （３）
として取得することも可能である。この場合、数値データＦ（ｉ，Ｌ）を、シリアルデータＤ２において、その先頭から、位置Ｃ（ｉ）の一つ手前の位置［Ｃ（ｉ）−１］のシンボルグループまでに含まれる全シンボル数を合計した数値とすればよい。この場合、グループ順取得回路２６および乗算器３０が不要となり、加算器３２で、数値データＦ（ｉ，Ｌ）とｊと加算するように構成すれば、式（３）で示すアドレスｑが得られる。
【００２８】
また、上記実施形態では、グループ順と数値データとを同じ記憶部に格納したが、これを別の記憶部に格納するようにしてもよい。
【００２９】
【発明の効果】
以上説明したように、本発明によれば、シリアルデータのシンボル数が、ブロック数の整数倍でない場合にも、デインタリーブ処理を行うことができる。
【図面の簡単な説明】
【図１】  本発明の実施形態にかかるデインタリーブ処理回路によるデインタリーブ処理前後のシリアルデータを示す説明図である。
【図２】  本発明の実施形態にかかるデインタリーブ処理回路の概略構成図である。
【図３】  本発明の実施形態にかかるデインタリーブ処理回路の記憶部に記憶されるグループ順テーブルを示す図である。
【図４】  本発明の実施形態にかかるデインタリーブ処理回路の記憶部に記憶される数値データテーブルを示す図である。
【図５】  従来のブロックインタリーブ手順の説明図である。
【図６】  従来のデインタリーブ手順の説明図である。
【図７】  シンボル数がブロック数の整数倍となっていないシリアルデータに対してブロックインタリーブおよびデインタリーブを行った場合の説明図である。
【符号の説明】
１０  デインタリーブ処理回路、１２  記憶部、１４  グループ順テーブル、１６  数値データテーブル、１８  データメモリ、２０  処理部、２２  Ｍ進カウンタ、２４  Ｎ進カウンタ、２６  グループ順取得回路、２８  数値データ取得回路、３０  乗算器、３２  加算器、３４  シリアルデータ取得部、Ｍ  シンボルグループ数（列数，１ブロックあたりのシンボル数）、Ｎ  ブロック数（行数，１シンボルグループあたりの最大シンボル数）、Ｄ１  シリアルデータ、Ｄ２  シリアルデータ、ｐ  クロックパルス（シリアルデータＤ１のアドレス）、ｑ  シリアルデータＤ２のアドレス。
【図１】
0003686592.tif 000002
【図２】
0003686592.tif 000003
【図３】
0003686592.tif 000004
【図４】
0003686592.tif 000005
【図５】
0003686592.tif 000006
【図６】
0003686592.tif 000007
【図７】
0003686592.tif 000008