(57)【特許請求の範囲】
【請求項１】
入力データに対するインターリーバーインデックス生成装置において、 
前記データのそれぞれのビットに対するインデックスを計算する上位プロセッサと、
前記上位プロセッサから計算されたインデックスを受けて前記それぞれのビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出するインデックス演算部と、を含み、
前記上位プロセッサは、前記データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックスを計算し、
前記インデックス演算部は、（ｉ＋ｊ）番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値の差を用いて（ｉ＋ｊ）＋１６番目ビット（ここで、ｊは０≦ｊ≦７）に対するインデックスを計算することを特徴とするインターリーバーインデックス生成装置。 
【請求項２】
インデックスは、モジュラ（ｍｏｄ）演算によって計算され、
前記モジュラ（ｍｏｄ）演算は、加算とマルチプレクサを用いて行われるようにすることを特徴とする請求項１に記載のインターリーバーインデックス生成装置。 
【請求項３】
前記加算は、前記モジュラ演算の被除数と符号反転された除数の加算であり、 
前記マルチプレクサは、前記加算の結果及び前記被除数の入力を受けて、前記加算の結果が負数であれば前記被除数が出力され、正数であれば前記加算の結果が出力されるようにすることを特徴とする請求項２に記載のインターリーバーインデックス生成装置。
【請求項４】
前記上位プロセッサは、（１２８*ｆ２）ｍｏｄ Ｋを計算して前記インデックス演算部に送り、
前記インデックス演算部は、下記の数式を用いてインデックスを計算することを特徴とする請求項１に記載のインターリーバーインデックス生成装置。 
【数１】
0005816383.tif 000019
（ここで、Ｋは入力データの大きさであり、ｆ２はＫから計算される係数である） 
【請求項５】
インデックスは、モジュラ（ｍｏｄ）演算によって計算され、 
前記モジュラ（ｍｏｄ）演算は、第１入力、第２入力及び除数Ｋ（但し、Ｋは入力データの大きさである）の入力を受けて第１加算、第２加算及びマルチプレクサを用いて行われるようにすることを特徴とする請求項１に記載のインターリーバーインデックス生成装置。 
【請求項６】
前記第１加算は前記第１入力の値と符号反転された前記第２入力の値の加算であり、 
前記第２加算は前記第１加算の結果と前記除数Ｋの加算であり、 
前記マルチプレクサは、前記第１加算の結果と前記第２加算の結果の入力を受けて、前記第１加算の結果が負数であれば前記第２加算の結果を出力し、正数であれば前記第１加算の結果を出力することを特徴とする請求項５に記載のインターリーバーインデックス生成装置。 
【請求項７】
入力データに対するインターリーバーインデックスを生成する方法において、 
前記データのそれぞれのビットに対するインデックスを計算する第１ステップと、
前記計算されたインデックスを用いて前記それぞれのビット以後のビットに対するインデックスを並列に計算する第２ステップと、を含み、
前記第１ステップは、前記データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックスを計算し、
前記第２ステップは、（ｉ＋ｊ）番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値の差を用いて（ｉ＋ｊ）＋１６番目ビット（ここで、ｊは０≦ｊ≦７）に対するインデックスを計算することを特徴とするインターリーバーインデックス生成方法。
【請求項８】
インデックスは、モジュラ（ｍｏｄ）演算によって計算され、 
前記モジュラ（ｍｏｄ）演算は、加算とマルチプレクサを用いて行われるが、 
前記加算は、前記モジュラ演算の被除数と符号反転された除数の加算であり、 
前記マルチプレクサは、前記加算の結果及び前記被除数の入力を受けて、前記加算の結果が負数であれば前記被除数が出力され、正数であれば前記加算の結果が出力されるようにすることを特徴とする請求項７に記載のインターリーバーインデックス生成方法。 
【請求項９】
前記第２ステップは以下の数式を用いてｉ＋１６番目ビット以後のビットに対するインデックスを計算することを特徴とする請求項７に記載のインターリーバーインデックス生成方法。 
【数２】
0005816383.tif 000020
（ここで、Ｋは入力データの大きさであり、ｆ２はＫから計算される係数である。） 
【請求項１０】
前記数２のモジュラ（ｍｏｄ）演算は、第１入力、第２入力及び除数Ｋの入力を受けて第１加算、第２加算及びマルチプレクサを用いて行われるようにするが、
前記第１加算は、前記第１入力の値と符号反転された前記第２入力の値の加算であり、
前記第２加算は、前記第１加算の結果と前記除数Ｋの加算であり、
前記マルチプレクサは、前記第１加算の結果と前記第２加算の結果の入力を受けて、前記第１加算の結果が負数であれば前記第２加算の結果を出力し、正数であれば前記１加算の結果を出力することを特徴とする請求項９に記載のインターリーバーインデックス生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターリーバーインデックス生成装置及び方法に関し、より詳細にはターボエンコーダの内部インターリーバーインデックスの並列式生成装置及び方法に関する。
【０００２】
ターボエンコーダの内部インターリーバーの入出力関係は、入力がＣ0,Ｃ2..., ＣK-1で、出力がＣ’0,Ｃ’2..., Ｃ’K-1であるとき、次の数式に従う。
【０００３】
【数１】
0005816383.tif 000002
【０００４】
また、入力列のインデックスと出力列のインデックスは次の数式に従う。
【０００５】
【数２】
0005816383.tif 000003
【０００６】
図１は、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置１００を示す構成図である。
図１を参照すると、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置１００は、第１乗算器１１０、加算器１２０、第２乗算器１３０、除算器１４０を含むように構成される。
【０００７】
従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置１００は、入力データの大きさであるＫ、上記Ｋから計算されたｆ１とｆ２及びビットの順によるｉの値の入力を受けて下記式を満足するΠ(i)を出力する。
【０００８】
【数３】
0005816383.tif 000004
【０００９】
第１乗算器１１０はｆ２とｉの入力を受けてｆ２*ｉの値を出力する。
加算器１２０は、上記第１乗算器１１０を通じて出力されたｆ２*ｉとｉの入力を受けてｆ２*ｉ＋ｆ１値を出力する。
第２乗算器１３０は、上記加算器１２０を通じて出力されたｆ２*ｉ＋ｆ１とｉの入力を受けて（ｆ２*ｉ＋ｆ１）*ｉの値を出力する。
除算器１４０は（ｆ２*ｉ＋ｆ１）*ｉとＫの入力を受けて{（ｆ２*ｉ＋ｆ１）*ｉ}/Ｋを行って、余りに該当する{（ｆ２*ｉ＋ｆ１）*ｉ}ｍｏｄ Ｋを出力する。
【００１０】
このような従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置１００はインデックスをビット単位で出力しているため、入力データの大きさが大きくなるにつれてインデックス生成時間が比例して増加して、性能低下が発生するという問題点がある。
【００１１】
また、従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置１００は、インデックスを生成するためにハードウェア具現の観点で高い重要度を持つ乗算器と除算器を必要とする問題点がある。
【発明の概要】
【課題を解決するための手段】
【００１２】
本発明の目的は、複数のビットに対するインターリーバーインデックスを並列に生成できるようにしながら、入力データの一定ビットに対して導出したインデックス値を用いて、以後のビットに対するインデックスを計算するようにするインターリーバーインデックス生成装置及び方法を提供することである。
【００１３】
上記の目的を達成するための入力データに対するインターリーバーインデックス生成装置において、上記データの一定ビットに対するインデックスを計算する上位プロセッサ；及び上記上位プロセッサから計算されたインデックスを受けて上記一定ビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出するインデックス演算部；を含むことを特徴とするインターリーバーインデックス生成装置が提供される。
【００１４】
好ましくは、上記上位プロセッサ又は上記インデックス演算部は、インデックスを計算するにあたってインデックス値の差を用いて計算することを特徴とする。
【００１５】
好ましくは、上記一定ビットに対するインデックスは、以下の数式により計算される値を用いて計算されることを特徴とする。
【００１６】
【数４】
0005816383.tif 000005
【００１７】
好ましくは、上記モジュラ（ｍｏｄ）演算は加算とマルチプレクサを用いて行われるようにすることを特徴とする。
【００１８】
好ましくは、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにすることを特徴とする。
【００１９】
好ましくは、上記上位プロセッサは上記データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックスを計算し、上記インデックス演算部はｉ＋ｊ番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値の差を用いて（ｉ＋ｊ）＋１６番目ビット（ここで、ｊは０≦ｊ≦７）に対するインデックスを計算することを特徴とする。
【００２０】
好ましくは、上記上位プロセッサは（１２８*ｆ２）ｍｏｄ Ｋを計算して上記インデックス演算部に送り、上記インデックス演算部は下記の数式を用いてインデックスを計算することを特徴とする。
【００２１】
【数５】
0005816383.tif 000006
（ここで、ｊは０≦ｊ≦７）
【００２２】
好ましくは、上記モジュラ演算は第１入力、第２入力及び除数Ｋの入力を受けて第１加算、第２加算及びマルチプレクサを用いて行われるようにすることを特徴とする。
【００２３】
好ましくは、上記第１加算は上記第１入力の値と符号反転された上記第２入力の値の加算であり、上記第２加算は、上記第１加算の結果と上記除数Ｋの加算であり、上記マルチプレクサは上記第１加算の結果と上記第２加算の結果の入力を受けて、上記第１加算の結果が負数であれば上記第２加算の結果を出力し、正数であれば上記第１加算の結果を出力することを特徴とする。
【００２４】
また、入力データに対するインターリーバーインデックスを生成する方法において、上記データの一定ビットに対するインデックスを計算する第１ステップ；及び上記計算されたインデックスを用いて上記一定ビット以後のビットに対するインデックスを並列に計算する第２ステップ;を含むことを特徴とするインターリーバーインデックス生成方法が提供される。
【００２５】
好ましくは、上記第１ステップは以下の数式によりビットに対するインデックス値の差を計算し、上記計算されたインデックス値を用いて上記ビット以後のビットに対するインデックスを計算することを特徴とする。
【００２６】
【数６】
0005816383.tif 000007
【００２７】
好ましくは、上記モジュラ演算は加算とマルチプレクサを用いて行われるが、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにすることを特徴とする。
【００２８】
好ましくは、上記第１ステップは上記データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックス及び（１２８*ｆ２）ｍｏｄ Ｋを計算し、上記第２ステップは以下の数式を用いてｉ＋１６番目ビット以後のビットに対するインデックスを計算することを特徴とする。
【００２９】
【数７】
0005816383.tif 000008
（ここで、ｊは０≦ｊ≦７）
【００３０】
好ましくは、上記モジュラ演算は第１入力、第２入力及び除数Ｋの入力を受けて第１加算、第２加算及びマルチプレクサを用いて行われるようにするが、上記第１加算は上記第１入力の値と符号反転された上記第２入力の値の加算であり、上記第２加算は上記第１加算の結果と上記除数Ｋの加算であり、上記マルチプレクサは上記第１加算の結果と上記第２加算の結果の入力を受けて、上記第１加算の結果が負数であれば上記第２加算の結果を出力し、正数であれば上記第１加算の結果を出力することを特徴とする。
【００３１】
その他実施例の具体的な事項は詳細な説明及び図面に含まれている。
【発明の効果】
【００３２】
本発明は、複数のビットに対するインデックスを並列に生成することで、全体インデックスの生成にかかる時間を減らす効果がある。
また、本発明は、一定ビットに対して計算されたインデックスを用いて、乗算器と除算器を使用せずに以後のビットに対するインデックスを計算することで、ハードウェア具現時の資源の効率性及び性能の向上を図る効果がある。
【図面の簡単な説明】
【００３３】
【図１】従来のターボエンコーダの内部インターリーバーインデックスを生成するための装置を示す構成図。
【図２】本発明の一実施例に係るインターリーバーインデックス生成装置の構成図。
【図３】本発明の一実施例に係るモジュラ回路の構成図。
【図４】本発明の他の実施例に係るモジュラ回路の構成図。
【図５】本発明の他の実施例に係るインターリーバーインデックス生成装置の構成図。
【図６】本発明の一実施例に係る次のインデックス生成器の構成図。
【図７】本発明の一実施例に係るインターリーバーインデックス生成方法の流れ図。
【発明を実施するための形態】
【００３４】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付図面とともに詳細に後述されている実施例を参照すると明確になるだろう。しかし、本発明は、以下で開示される実施例に限定されるものではなく、互いに異なる多様な形態で具現されることができ、単に本実施例は本発明の開示を完全にさせるものであり、本発明の属する技術分野における通常の知識を有する者に発明の範囲を完全に知らせるために提供されるものであり、本発明は請求項の範疇によって定義されるだけである。一方、本明細書で使用された用語は実施例を説明するためのものであり、本発明を制限しようとするものではない。
【００３５】
図２は本発明の一実施例に係るインターリーバーインデックス生成装置２００の構成図である。図２を参照すると、本発明の一実施例に係るインターリーバーインデックス生成装置２００は上位プロセッサ２１０と８個のインデックス演算部２２０を含むように構成される。各インデックス演算部２２０は第１保存装置２２１、第２保存装置２２２、次のインデックス生成器２２３を含むように構成される。
【００３６】
本発明の一実施例に係るインターリーバーインデックス生成装置２００は、入力データに対するインターリーバーインデックスを生成する。 
インターリーバーインデックスは、入力データから導出されるｆ１、ｆ２及びビットの順によるｉ値を用いて下記式を満足するΠ(i)である。
【００３７】
【数８】
0005816383.tif 000009
【００３８】
例えば、上記数式で使用されたパラメータは、下表のとおりである。
【００３９】
【表１】
0005816383.tif 000010
【００４０】
【表２】
0005816383.tif 000011
【００４１】
即ち、上記表の最初の例であるＫｉ＝４０、ｆ１＝３、ｆ２＝１０から生成されるインデックスは、順次に０、１３、６、１９、１２、２５、１８、３１、２４、３７、３０、３、３６、９、２、１５、８、２１、１４、２７、２０、３３、２６、３９、３２、５、３８、１１、４、１７、１０、２３、１６、２９、２２、３５、２８、１、３４、７になる。
【００４２】
上位プロセッサ２１０は、入力データの一定ビットに対するインデックスを計算する。
本発明の好ましい一実施例によれば、上位プロセッサ２１０は、インデックス値の差を用いて入力データの一定ビットに対するインデックスを計算する。
【００４３】
図３は本発明の一実施例に係るモジュラ回路３００の構成図である。図３を参照すると、本発明の一実施例に係るモジュラ回路３００は加算器３１０とマルチプレクサ３２０で構成される。
【００４４】
モジュラ演算は、被除数を除数で割った余りを出力する演算である。加算器３１０は、被除数と除数の入力を受けて被除数と符号反転された除数の加算を行う。即ち、被除数から除数を差し引いた値を導出する。
【００４５】
マルチプレクサ３２０は上記加算の結果と被除数の入力を受けて、上記加算の結果が負数であれば被除数が出力され、上記加算の結果が正数であれば上記加算の結果を出力するようにする。
【００４６】
本発明の好ましい他の実施例によれば、上記一定ビットに対するインデックスは、上記本発明の一実施例に係るモジュラ回路３００を用いてモジュラ演算を行って値を演算する。
【００４７】
即ち、上位プロセッサ２１０が一定ビットに対するインデックス値をインデックス演算部２２０に提供しなくても、上記本発明の一実施例に係るモジュラ回路３００を通じて一定ビットに対するインデックスを演算してインデックス演算部２２０に提供するように具現することができる。
【００４８】
このような本発明の一実施例に係るモジュラ回路３００は、モジュラ演算することにおいて、乗算器と除算器をハードウェア具現の観点でより低い重要資源であるマルチプレクサと加算器に取り替える効果がある。 
【００４９】
このようなモジュラ演算は除算器を加算器とマルチプレクサに取り替えて、ハードウェア具現の観点でより低い重要度を持つ回路要素で構成できるようにして効率的なハードウェア資源を運用できるようにする効果がある。 
【００５０】
図５は、本発明の他の実施例に係るインターリーバーインデックス生成装置５００の構成図である。図５を参照すると、本発明の他の実施例に係るインターリーバーインデックス生成装置５００は３個の加算器５１１、５１２、５１３、２個のマルチプレクサ５２１、５２２、２個のＤ−フリップフロップ５３１、５３２及び３個の上記モジュラ演算器５４１、５４２、５４３を含むように構成される。
【００５１】
本発明の他の実施例に係るインターリーバーインデックス生成装置５００は（ｆ１＋ｆ２）ｍｏｄ Ｋ、（２*ｆ２）ｍｏｄ Ｋ及びＫの入力を受けてΠ(i)を順次に生成する。 
本発明の他の実施例に係るインターリーバーインデックス生成装置５００は下記式を用いてΠ(i)を導出する。
【００５２】
【数９】
0005816383.tif 000012
【００５３】
これをわかりやすく展開して説明すると、次のとおりである。
Π（ｉ＋１）−Π（ｉ）＝{ｆ１*（ｉ＋１）＋ｆ２*（ｉ＋１）２−（ｆ１*ｉ＋ｆ２*ｉ２）} ｍod Ｋ
＝{ｆ１*ｉ＋ｆ１＋ｆ２*ｉ２＋２*ｆ２*ｉ＋ｆ２−(ｆ１*ｉ＋ｆ２*ｉ２）}ｍod Ｋ
＝（ｆ１＋ｆ２＋２*ｆ２*ｉ）ｍod Ｋ 
【００５４】
即ち、現在インデックス値と次のインデックス値の差はｆ１＋ｆ２にｆ２の２倍をｉだけ累積して加えればよいため、本発明の他の実施例に係るインターリーバーインデックス生成装置５００により導出されるΠ(i)は下記式を満たす。
【００５５】
【数１０】
0005816383.tif 000013
【００５６】
第１加算器５１１は、（２*ｆ２）ｍｏｄ Ｋの入力を受けて第１モジュラ演算器５４１の出力値と加算を行った結果値を出力する。最初演算のときは第１モジュラ演算器５４１の出力値を受けることができないため、出力値はアンノウン（ｕｎｋｎｏｗｎ）状態である。
【００５７】
第１マルチプレクサ５２１は、第１加算器５１１の出力値と０の入力を受けて制御信号（ｃｏｎｔｒｏｌ）により最初インデックス生成のときに０を出力するようにし、以後は第１加算器５１１の出力値を出力する。これはインターリーバーの最初インデックスが０でなければならないからであり、また第１加算器５１１の最初出力値がアンノウン状態の値であるからである。 
【００５８】
第１Ｄ−フリップフロップ５３１は、第１マルチプレクサ５２１の出力値の入力を受けてこれを臨時的に保存する。これは第１モジュラ演算器５４１の出力値が第１加算器５１１に活用されるループバック（ｌｏｏｐ-ｂａｃｋ）が行われるからである。
【００５９】
また、第１Ｄ−フリップフロップ５３１は、第１加算器５１１に活用されるループバック（ｌｏｏｐ-ｂａｃｋ）を用いてΠ（ｉ＋１）−Π（ｉ）＝（ｆ１＋ｆ２＋２*ｆ２*ｉ）ｍｏｄ Ｋにおけるｉの増加による２*ｆ２値の累積が行われるようにする。
【００６０】
第１モジュラ演算器５４１は、第１Ｄ−フリップフロップ５３１の出力値とＫの入力を受けて図３を通じて説明したモジュラ演算を行う。
【００６１】
第２加算器５１２は、第１モジュラ演算器５４１の出力値と（ｆ１＋ｆ２）ｍｏｄ Ｋの加算結果を出力する。第２モジュラ演算器５４２は、第２加算器５１２の出力値とＫの入力を受けて図３を通じて説明したモジュラ演算を行う。
【００６２】
第３加算器５１３は、第２モジュラ演算器５４２の出力値の入力を受けて第２Ｄ−フリップフロップ５３２の出力値と加算を行った結果値を出力する。最初遂行のときは第２Ｄ−フリップフロップ５３２の出力値を受けことができないため、出力値はアンノウン（ｕｎｋｎｏｗｎ）状態である。
【００６３】
第３モジュラ演算器５４３は、第３加算器５１３の出力値とＫの入力を受けて図３を通じて説明したモジュラ演算を行う。
【００６４】
第２マルチプレクサ５２２は、第３モジュラ演算器５４３の出力値と０の入力を受けて制御信号（ｃｏｎｔｒｏｌ）により最初インデックス生成のときに０を出力するようにし、以後は第３モジュラ演算器５４３の出力値を出力する。これはインターリーバーの最初インデックスが０でなければならないからであり、また第３加算器５１３の最初出力値がアンノウン状態の値であるからである。
【００６５】
第２Ｄ−フリップフロップ５３２は第２マルチプレクサ５２２の出力値の入力を受けてこれを臨時的に保存する。これは第２マルチプレクサ５２２の出力値が第３加算器５１３に活用されるループバック（ｌｏｏｐ-ｂａｃｋ）が行われるからである。
【００６６】
また図２を参照すると、好ましくは、上記インターリーバーインデックス生成装置５００は、上位プロセッサ２１０からインデックス演算部２２０に提供する一定ビットに対するインデックス値の導出に利用されることができる。即ち、上位プロセッサ２１０が一定ビットに対するインデックス値をインデックス演算部２２０に提供しない場合、上記インターリーバーインデックス生成装置５００を用いて上記一定ビットに対するインデックスを演算してインデックス演算部２２０に提供するように構成することができる。 
【００６７】
本発明の好ましいまた他の実施例によれば、上位プロセッサ２１０は、入力データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックス及び（１２８*ｆ２）ｍｏｄ Ｋを計算してインデックス演算部２２０に送る。上位プロセッサ２１０は、８個のインデックス演算部２２０それぞれに入力データのｉ＋ｊ番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値（ここで、ｊは０≦ｊ≦７）、（１２８*ｆ２）ｍｏｄ Ｋ及びＫを送る。
【００６８】
インデックス演算部２２０は、上位プロセッサ２１０から送られてきた値を用いて上位プロセッサ２１０が計算したビット以後のビットに対するインデックスを並列に計算して複数のインデックスを導出する。 
【００６９】
本発明の好ましい他の実施例によれば、インデックス演算部２２０は上位プロセッサ２１０から入力データのｉ＋ｊ番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値（ここで、ｊは０≦ｊ≦７）を受け取って、インデックス値の差を用いて（ｉ＋ｊ）＋１６番目ビットに対するインデックスを計算する。
【００７０】
図２では、入力データのｉ＋ｊ番目に対するインデックス値はΠ（ｉ０）であって、（ｉ＋ｊ）＋８番目ビットに対するインデックス値はΠ（ｉ１）で表わされ、以後、ｉは８ずつ増加することになるｉｍで表わされた。即ち、ｉｍ＋１はｉｍ＋８と同じであり、ｉｍ＋２はｉｍ＋１６と同じである。 
【００７１】
本発明の好ましいまた他の実施例によれば、インデックス演算部２２０は上位プロセッサ２１０から入力データのｉ＋ｊ番目と（ｉ＋ｊ）＋８番目ビットに対するインデックス値（ここで、ｊは０≦ｊ≦７）及び（１２８*ｆ２）ｍｏｄ Ｋを受け取って下記式を用いて（ｉ＋ｊ）＋１６番目ビットに対するインデックスを計算する。 
【００７２】
【数１１】
0005816383.tif 000014
【００７３】
インターリーバーインデックスは以下のような特性を有する。
１．Ｋｉは全て８の倍数である。 
２．最初インデックスは常に０である。 
３．生成されたインデックスを８で割った余りは８個ずつ繰り返される形で表れる。 
４．最初８個のインデックスと２番目の８個のインデックスが生成されると、これを用いて３番目以後の全てのインデックスを８個単位で生成することができる。 
【００７４】
したがって、インターリーバーインデックスは次の数式を満たす。 
【００７５】
【数１２】
0005816383.tif 000015
【００７６】
これをわかりやすく展開して説明すると、以下のとおりである。
Π（ｉ＋８）＝{ｆ１*（ｉ＋８）＋ｆ２*（ｉ＋８）２}ｍｏｄ Ｋ 
＝{ｆ１*ｉ＋８*ｆ１＋ｆ２*ｉ２＋１６*ｆ２*ｉ＋６４*ｆ２}ｍｏｄ Ｋ
【００７７】
上記の数式にΠ（ｉ）を加えて、差し引いた後、まとめると以下のとおりである。 
Π（ｉ＋８）＝{ｆ１*ｉ＋８*ｆ１＋ｆ２*ｉ２＋１６*ｆ２*ｉ＋６４*ｆ＋（ｆ１*ｉ＋ｆ２*ｉ２）−（ｆ１*ｉ＋ｆ２*ｉ２）}ｍｏｄ Ｋ
＝{ｆ１*ｉ＋ｆ１*ｉ＋ｆ２*ｉ２＋ｆ２*ｉ２＋８*ｆ１＋１６*ｆ２*ｉ＋６４*ｆ２−（ｆ１*ｉ＋ｆ２*ｉ２）}ｍｏｄ Ｋ
＝{２*（ｆ１*ｉ＋ｆ２*ｉ２）−（ｆ１*ｉ-８*ｆ１）−（ｆ２*ｉ２−１６*ｆ２*ｉ−６４*ｆ２}ｍｏｄ Ｋ
【００７８】
上記数式に１２８*ｆ２を加えて、差し引いた後、まとめると以下のとおりである。
Π（ｉ＋８）＝{２*（ｆ１*ｉ＋ｆ２*ｉ２）＋１２８*ｆ２−１２８*ｆ２−（ｆ１*ｉ−８*ｆ１）−（ｆ２*ｉ２−１６*ｆ２*ｉ−６４*ｆ２}ｍｏｄ Ｋ 
＝{２*（ｆ１*ｉ＋ｆ２*ｉ２）−（ｆ１*ｉ−８*ｆ１）−（ｆ２*ｉ２−１６*ｆ２*ｉ＋６４*ｆ２）＋１２８*ｆ２}ｍｏｄ Ｋ 
＝{２*（ｆ１*ｉ＋ｆ２*ｉ２）−ｆ１*（ｉ−８）−ｆ２*（ｉ−８）２＋１２８*ｆ２}ｍｏｄ Ｋ 
＝{２*Π（ｉ）−Π（ｉ−８）＋１２８*ｆ２}ｍｏｄ Ｋ 
【００７９】
好ましくは、インデックス生成部２２０は、第１保存装置２２１、第２保存装置２２２及び次のインデックス生成器２２３を含むように構成され、上位プロセッサ２１０からΠ（ｉ０）、Π（ｉ１）、（１２８*ｆ２）ｍｏｄ Ｋ及びＫを受け取ってΠ（ｉ０）以後のインデックスを計算し、出力はΠ（ｉ０）から順次に出力されるようにする。
【００８０】
第１保存装置２２１は、最初は上位プロセッサ２１０からΠ（ｉ０）値を受け取って保存し、以後には第２保存装置２２２に保存されたΠ（ｉｍ＋１）を順次に受け取って保存する。また、第１保存装置２２１は保存された値を次のインデックス生成器２２３に送る。そして、第１保存装置２２１は保存された値を順次にインデックス演算部２２０の出力値として出力する。
【００８１】
例えば、第１保存装置２２１は、最初Π（ｉ０）を保存し且つ出力し、その次には第２保存装置２２２が最初保存したΠ（ｉ１）を受け取って保存し且つ出力し、その次には第２保存装置２２２が次に保存する次のインデックス生成器２２３がΠ（ｉ０）とΠ（ｉ１）を通じて出力したΠ（ｉ２）を受け取って保存し且つ出力する。即ち、第１保存装置２２１はΠ（ｉ０）から順次にΠ（ｉｍ）値を保存し、次のインデックス生成器２２３に送り、インデックス演算部２２０の出力値として出力する。 
【００８２】
第２保存装置２２２は、最初は上位プロセッサ２１０からΠ（ｉ１）値を受け取って保存し、以後には次のインデックス生成器２２３の出力値であるΠ（ｉｍ＋２）を受け取って保存する。また、第２保存装置２２２は保存された値を次のインデックス生成器２２３及び第１保存装置２２１に送る。即ち、第２保存装置２２２はΠ（ｉ１）から順次にΠ（ｉｍ＋１）値を保存し、次のインデックス生成器２２３と第１保存装置２１１に送る。
【００８３】
次のインデックス生成器２２３は、第１保存装置２２１及び第２保存装置２２３から受け取ったΠ（ｉｍ）値とΠ（ｉｍ＋１）値、上位プロセッサ２１０から受け取った（１２８*ｆ２）ｍｏｄ Ｋ値とＫを用いてΠ（ｉｍ＋２）を計算する。好ましくは、次のインデックス生成器２２３は下記式を用いてΠ（ｉｍ＋２）を計算する。また、次のインデックス生成器２２３は計算されたΠ（ｉｍ＋２）を第２保存装置２２２に送る。
【００８４】
【数１３】
0005816383.tif 000016
【００８５】
好ましくは、インデックス演算部２２０は８個が存在し、各インデックス演算部はそれぞれ（Π（０）、Π（８））、（Π（１）、Π（９））、（Π（２）、Π（１０））、（Π（３）、Π（１１））、（Π（４）、Π（１２））、（Π（５）、Π（１３））、（Π（６）、Π（１４））、（Π（７）、Π（１５））の入力を受けてΠ（ｎ*８）、Π（ｎ*８＋１）、Π（ｎ*８＋２）、Π（ｎ*８＋３）、Π（ｎ*８＋４）、Π（ｎ*８＋５）、Π（ｎ*８＋６）、Π（ｎ*８＋７）を出力する。（ｎは２以上であって、（Ｋ/８−１）以下の定数）
【００８６】
図４は、本発明の他の実施例に係るモジュラ回路４００の構成図である。図４を参照すると、本発明の他の実施例に係るモジュラ回路４００は第１加算器４１０、第２加算器４２０及びマルチプレクサ４３０で構成され、第１入力、第２入力及び除数Ｋの入力を受ける。 
【００８７】
第１加算器４１０は、入力を受けた第１入力の値と符号反転された第２入力の値の加算を行って出力する。即ち、第１加算器４１０は第１入力の値から第２入力の値を差し引く計算を行う。
【００８８】
第２加算器４２０は、第１加算器４１０の出力値と入力を受けた除数Ｋ値の加算を行って出力する。マルチプレクサ４３０は、第１加算器４１０の出力値と第２加算器４２０の出力値の入力を受けて、第１加算器４１０の出力値が正数であれば第１加算器４１０の出力値を出力し、第１加算器４１０の出力値が負数であれば第２加算器４２０の出力値を出力する。 
【００８９】
図６は本発明の一実施例に係る次のインデックス生成器の構成図である。図６を参照すると、本発明の一実施例に係る次のインデックス生成器６００は、図３で説明した２個のモジュラ演算器６１０、６２０、図４で説明した１個のモジュラ演算器６３０及び１個の加算器６４０を含むように構成され、（１２８*ｆ２）ｍｏｄ Ｋ、２*Π（ｉｍ）、Ｋ及びΠ（ｉｍ＋１）の入力を受けてΠ（ｉｍ＋２）を出力する。
【００９０】
好ましくは、本発明の一実施例に係る次のインデックス生成器６００が入力を受ける２*Π（ｉｍ）は、Π（ｉｍ）の入力を受けてビットシフトを適用して乗算器を使用せずに演算することができる。第１モジュラ演算器６１０は、２*Π（ｉｍ）とＫの入力を受けて図３で説明したモジュラ演算を行う。第２モジュラ演算器６３０は、第１モジュラ演算器６１０の出力値、Π（ｉｍ＋１）及びＫの入力を受けて図４で説明したモジュラ演算を行う。加算器６４０は、第２モジュラ演算器６２０の出力値と（１２８*ｆ２）ｍｏｄ Ｋ値の加算を遂行して出力する。第３モジュラ演算器６２０は、加算器６４０の出力値とＫの入力を受けて図３で説明したモジュラ演算を行う。第３モジュラ演算器６２０の出力値が次のインデックス生成器６００の出力値であって、Π（ｉｍ＋２）になる。好ましくは、上記説明したマルチプレクサは、入力値の負数又は正数を判断するにあたって、最上位ビット値を用いて判断することができる。 
【００９１】
図７は本発明の一実施例に係るインターリーバーインデックス生成方法の流れ図である。図７を参照すると、本発明の一実施例に係るインターリーバーインデックス生成方法は、入力データからＫ、ｆ１、ｆ２を計算するステップＳ７１０、Ｓ７１０ステップで計算したＫ、ｆ１、ｆ２を用いて入力データの一定ビットのｉ番目からｉ＋１５番目までのビットに対するインデックスであるΠ(i)からΠ（ｉ＋１５）までの値を計算するステップＳ７２０、及びＳ７２０ステップで計算したΠ(i)からΠ（ｉ＋１５）までの値とインデックス値の差を用いてΠ（ｉ＋１６）以後の値を並列に計算するステップＳ７３０を含む。
【００９２】
Ｓ７１０ステップでは、インデックス生成装置は入力データからＫ、ｆ１、ｆ２を計算する。 
Ｓ７２０ステップでは、インデックス生成装置はＳ７１０ステップで計算したＫ、ｆ１、ｆ２を用いて入力データの一定ビットに対するインデックスを計算する。
【００９３】
本発明の好ましい一実施例によれば、Ｓ７２０ステップでは、インデックス生成装置は下記式によりビットに対するインデックス値の差を計算し、これを用いてｉ＋１回目以後のビットに対するインデックスを計算する。
【００９４】
【数１４】
0005816383.tif 000017
【００９５】
本発明の好ましい一実施例によれば、上記モジュラ演算は加算とマルチプレクサを用いて行われるが、上記加算は上記モジュラ演算の被除数と符号反転された除数の加算であり、上記マルチプレクサは上記加算の結果及び上記被除数の入力を受けて、上記加算の結果が負数であれば上記被除数が出力され、正数であれば上記加算の結果が出力されるようにする。
【００９６】
本発明の好ましい他の実施例によれば、Ｓ７２０ステップでは、インデックス生成装置は入力データのｉ番目からｉ＋１５番目までのビット（ここで、ｉは０以上の整数）に対するインデックス及び（１２８*ｆ２）ｍｏｄ Ｋを計算する。
【００９７】
Ｓ７３０ステップでは、インデックス生成装置はＳ７２０ステップで計算したインデックス値を用いて計算したビット以後のビットに対するインデックスを並列に計算する。
本発明の好ましい一実施例によれば、Ｓ７３０では、インデックス生成装置は下記式（ここで、ｊは０≦ｊ≦７）数式を用いてｉ＋１６番目ビット以後のビットに対するインデックスを計算する。 
【００９８】
【数１５】
0005816383.tif 000018
【００９９】
本発明の好ましい他の実施例によれば、Ｓ７３０では、インデックス生成装置は第１入力、第２入力及び除数Ｋの入力を受けて、第１加算、第２加算及びマルチプレクサを用いて行われるモジュラ演算を利用する。上記モジュラ演算で活用される各演算は以下のとおりである。 
【０１００】
上記第１加算は上記第１入力の値と符号反転された上記第２入力の値の加算であり、上記第２加算は上記第１加算の結果と上記除数Ｋの加算であり、上記第２加算は上記第１加算の結果と上記除数の加算であり、上記マルチプレクサは上記第１加算の結果と上記第２加算の結果の入力を受けて上記第１加算の結果が負数であれば上記第２加算の結果を出力し、正数であれば上記第１加算の結果を出力する。 
【０１０１】
以上、本発明の好ましい実施例及び応用例について図示して説明したが、本発明は上述した特定の実施例及び応用例に限定されるものではなく、請求範囲で請求する本発明の要旨を逸脱せずに当該発明の属する技術分野における通常の知識を有する者によって多様な変形実施が可能であることが勿論のことであり、かかる変形実施は本発明の技術的思想や展望から個別的に理解されてはいけない。
【符号の説明】
【０１０２】
２００：インターリーバーインデックス生成装置 
２１０：上位プロセッサ
２２０：インデックス演算部 
２２１：第１保存装置
２２２：第２保存装置 
２２３：次のインデックス生成器
【図１】
0005816383.tif 000021
【図２】
0005816383.tif 000022
【図３】
0005816383.tif 000023
【図４】
0005816383.tif 000024
【図５】
0005816383.tif 000025
【図６】
0005816383.tif 000026
【図７】
0005816383.tif 000027