(57)【特許請求の範囲】
【請求項１】
入力データのパンクチャを行うレート調整装置において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、
前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しパンクチャする処理部と、
を備え、
前記算出部は、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出し、
前記処理部は、前記入力データのビットを前記算出部によって算出された前記出力数または前記算出部によって算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをパンクチャする、
ことを特徴とするレート調整装置。
【請求項２】
入力データのパンクチャを行うレート調整装置において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、前記入力データのビットを連続してパンクチャするパンクチャ数を算出する算出部と、
前記算出部によって算出された前記パンクチャ数に基づいて前記入力データのビットを連続してパンクチャし前記入力データのビットを出力する処理部と、
を有することを特徴とするレート調整装置。
【請求項３】
前記算出部は、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記パンクチャ数を算出することを特徴とする請求項２記載のレート調整装置。
【請求項４】
前記処理部は、前記入力データのビットを前記算出部によって算出された前記パンクチャ数または前記算出部によって算出された前記パンクチャ数から１減算した減算パンクチャ数連続してパンクチャし、前記入力データのビットを出力することを特徴とする請求項３記載のレート調整装置。
【請求項５】
入力データのレペティションを行うレート調整装置において、
前記入力データのレペティション数が前記入力データのビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、
前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しレペティションする処理部と、
を有することを特徴とするレート調整装置。
【請求項６】
前記算出部は、前記入力データの各ビットのレペティションの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出することを特徴とする請求項５記載のレート調整装置。
【請求項７】
前記処理部は、前記入力データのビットを前記算出部によって算出された前記出力数または前記算出部によって算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをレペティションすることを特徴とする請求項６記載のレート調整装置。
【請求項８】
入力データのパンクチャを行うレート調整装置のレート調整方法において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出し、
算出した前記出力数に基づいて前記入力データのビットを連続して出力してパンクチャし、
前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出し、
前記入力データのビットを、算出された前記出力数または算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをパンクチャする、
ことを特徴とするレート調整方法。
【請求項９】
入力データのパンクチャを行うレート調整装置のレート調整方法において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、前記入力データのビットを連続してパンクチャするパンクチャ数を算出し、
算出した前記パンクチャ数に基づいて前記入力データのビットを連続してパンクチャし前記入力データのビットを出力する、
ことを特徴とするレート調整方法。
【請求項１０】
入力データのレペティションを行うレート調整装置のレート調整方法において、
前記入力データのレペティション数が前記入力データのビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出し、
算出した前記出力数に基づいて前記入力データのビットを連続して出力しレペティションする、
ことを特徴とするレート調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、入力データのパンクチャを行うレート調整装置、入力データのレペティションを行うレート調整装置、入力データのパンクチャを行うレート調整方法、および入力データのレペティションを行うレート調整方法に関する。
【背景技術】
【０００２】
携帯電話などの無線通信装置では、送信するデータのレートを伝搬環境などに応じて調整することがある。例えば、３ＧＰＰ（3rd Generation Partnership Project）で標準化されているＷＣＤＭＡ（Wideband Code Division Multiple Access）やＨＳＰＡ（High Speed Packet Access）の通信技術では、符号化されたデータが送信される際に、誤り訂正符号化後のビット系列に対してレートマッチング処理が施される。
【０００３】
例えば、ＨＳＰＡの誤り訂正においては、符号化率が３分の１のターボ符号が用いられ、１ビットの情報に対して２ビットのパリティビットが生成される。そして、レートマッチング処理では、伝搬路の品質に応じて誤り訂正符号化後のビット系列からビット間引き（パンクチャ）が行われたり、ビットの繰り返し（レペティション）が行われたりする。また、受信側では、レートマッチング処理後のビット系列に対して誤り訂正復号が行われる。
【０００４】
３ＧＰＰによって標準化されているレートマッチング処理では、判定用のパラメータｅを用いたアルゴリズムによって、パンクチャまたはレペティションが行われることとなっている。例えば、パンクチャについては、入力ビットに対応した判定値ｅから所定の減分値ｅ-を繰り返し減算し、減分値ｅ-をｍ回（ｍは１以上の整数）減算した時点で判定値ｅの値が負になると、ｍ番目のビットをパンクチャし、増分値ｅ+を加算する。レペティションについては、例えば、ビットに対応した判定値ｅから所定の減分値ｅ-を減算した後、判定値ｅの値が負になった場合、判定値ｅに所定の増分値ｅ+を加算し、判定値ｅの値が正になるまで繰り返し増分値ｅ+を加算するごとに同一のビットをレペティションする。
【０００５】
なお、従来、簡単な構成で高速にレートマッチング処理およびレートデマッチングを行うことができるレートマッチング／デマッチング処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１９９０４８号公報
【非特許文献】
【０００７】
【非特許文献１】3GPP TS 25.212 v8.0.0-v8.6.0
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記アルゴリズムでは、減分値および増分値に基づいて繰り返し判定値を算出し、パンクチャするビット位置およびレペティションするビット位置を特定するため処理量が大きいという問題点があった。
【０００９】
本件はこのような点に鑑みてなされたものであり、パンクチャの処理量およびレペティションの処理量を抑制するレート調整装置およびレート調整方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、入力データのパンクチャを行うレート調整装置が提供される。このレート調整装置は、前記入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しパンクチャする処理部と、を備え、前記算出部は、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出し、前記処理部は、前記入力データのビットを前記算出部によって算出された前記出力数または前記算出部によって算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをパンクチャする。
【００１１】
また、上記課題を解決するために、入力データのパンクチャを行うレート調整装置が提供される。このレート調整装置は、前記入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、前記入力データのビットを連続してパンクチャするパンクチャ数を算出する算出部と、前記算出部によって算出された前記パンクチャ数に基づいて前記入力データのビットを連続してパンクチャし前記入力データのビットを出力する処理部と、を有する。
【００１２】
さらに、上記課題を解決するために、入力データのレペティションを行うレート調整装置が提供される。このレート調整装置は、前記入力データのレペティション数が前記入力データのビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しレペティションする処理部と、を有する。
【発明の効果】
【００１３】
開示の装置および方法によれば、パンクチャ処理の処理量を低減できる。また、開示の装置および方法によれば、レペティション処理の処理量を低減できる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施の形態に係るレート処理装置を説明する図である。
【図２】第２の実施の形態に係るレート処理装置が適用される通信システムを示した図である。
【図３】３ＧＰＰのパンクチャを説明する図である。
【図４】３ＧＰＰのパンクチャ動作を説明する図である。
【図５】３ＧＰＰのパンクチャ処理のアルゴリズムの一例を示した図である。
【図６】３ＧＰＰのパンクチャパターン生成処理例を示したフローチャートである。
【図７】パンクチャビット数が大きい場合の３ＧＰＰのパンクチャを説明する図である。
【図８】パンクチャビット数が大きい場合の３ＧＰＰのパンクチャ動作を説明する図である。
【図９】３ＧＰＰのレペティションを説明する図である。
【図１０】３ＧＰＰのレペティション動作を説明する図である。
【図１１】３ＧＰＰのレペティション処理のアルゴリズムの一例を示した図である。
【図１２】３ＧＰＰのレペティションパターン処理例を示したフローチャートである。
【図１３】レペティション数が大きい場合の３ＧＰＰのレペティションを説明する図である。
【図１４】レペティション数が大きい場合の３ＧＰＰのレペティション動作を説明する図である。
【図１５】レペティション数の算出を説明する図のその１である。
【図１６】レペティション数の算出を説明する図のその２である。
【図１７】レペティション数の算出を説明する図のその３である。
【図１８】レペティション数を算出する場合のレペティション処理のアルゴリズムの一例を示した図である。
【図１９】レペティション数を算出する場合のレペティションパターン処理例を示したフローチャートである。
【図２０】コーデック部のブロックを示した図である。
【図２１】コーデック部のパンクチャ処理を説明する図である。
【図２２】図２１のパンクチャ動作を説明する図である。
【図２３】パラメータ変数変換を行ったパンクチャ動作を説明する図である。
【図２４】パンクチャ処理のアルゴリズムの一例を示した図である。
【図２５】パンクチャパターン生成処理例を示したフローチャートである。
【図２６】第３の実施の形態に係るコーデック部のブロックを示した図である。
【図２７】コーデック部のパンクチャ処理を説明する図である。
【図２８】図２７のパンクチャ動作を説明する図である。
【図２９】パラメータ変数変換を行ったパンクチャ動作を説明する図である。
【図３０】パンクチャ処理のアルゴリズムの一例を示した図である。
【図３１】第４の実施の形態に係るコーデック部のブロックを示した図である。
【図３２】コーデック部のレペティション処理を説明する図である。
【図３３】図３２のレペティション動作を説明する図である。
【図３４】パラメータ変数変換を行ったレペティション動作を説明する図である。
【図３５】レペティション処理のアルゴリズムの一例を示した図である。
【発明を実施するための形態】
【００１５】
以下、実施の形態を、図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係るレート処理装置を説明する図である。図１の（Ａ）には、レート処理装置１のブロックが示してある。レート処理装置１は、算出部１ａおよび処理部１ｂを有している。
【００１６】
図１の（Ｂ）には、パンクチャされる入力データ２ａ、入力データ２ａのパンクチャされる部分を示したデータ２ｂ、およびパンクチャされた出力データ２ｃが示してある。
算出部１ａは、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、入力データのビットを連続して出力する出力数を算出する。
【００１７】
例えば、図１の（Ｂ）では、入力データ２ａのパンクチャ数がパンクチャ後の残留ビット数（出力データ２ｃのビット数）より小さい場合を示している。図１の（Ｂ）のデータ２ｂの斜線部分は、入力データ２ａのそのまま出力されるビット部分を示し、データ２ｂの空白部分は、入力データ２ａのパンクチャされるビット部分を示している。この場合、算出部１ａは、例えば、データ２ｂの空白部分で区切られた斜線部分のビット数を算出する。
【００１８】
処理部１ｂは、算出部１ａによって算出された出力数に基づいて、入力データのビットを連続して出力しパンクチャを行う。
例えば、処理部１ｂは、データ２ｂに示すように、空白部分で区切られた斜線部分の入力データ２ａを図１の左側から、算出された出力数に基づき連続して順次出力して、入力データ２ａのビットをパンクチャする。
【００１９】
このように、算出部１ａは、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、入力データのビットを連続して出力する出力数を算出する。そして、処理部１ｂは、算出した出力数に基づいて入力データのパンクチャ処理を行う。これにより、レート処理装置１は、例えば、入力データを１ビットずつパンクチャするか否か判定値に基づいて判断せずに済み、パンクチャ処理の処理量を低減することができる。
【００２０】
［第２の実施の形態］
次に、第２の実施の形態を、図面を参照して詳細に説明する。
図２は、第２の実施の形態に係るレート処理装置が適用される通信システムを示した図である。図２には、送信装置１０と受信装置２０とが示してある。送信装置１０および受信装置２０は、例えば、携帯電話システムの基地局および携帯電話である。
【００２１】
送信装置１０は、上位レイヤ処理部１１、コーデック部１２、およびモデム処理部１３を有している。
上位レイヤ処理部１１からは、受信装置２０に送信するデータが出力される。例えば、ユーザの音声データや画像データなどが出力される。
【００２２】
コーデック部１２は、上位レイヤ処理部１１から出力されるデータの符号化処理を行う。例えば、コーデック部１２は、上位レイヤ処理部１１から出力されるデータの誤り検出符号化、誤り訂正符号化処理、レートマッチング処理、インターリーブ処理等を行う。
【００２３】
コーデック部１２は、メモリ１２ａおよびＣＰＵ（Central Processing Unit）１２ｂを有している。メモリ１２ａには、ＣＰＵ１２ｂによって実行される符号化処理のプログラムが記憶されている。コーデック部１２は、例えば、図１で説明したレート処理装置に対応する。
【００２４】
モデム処理部１３は、コーデック部１２によって符号化処理されたデータの変調処理を行う。変調処理されたデータは、アンテナを介して受信装置２０に無線送信される。
受信装置２０は、モデム処理部２１、コーデック部２２、復号器２３、および上位レイヤ処理部２４を有している。
【００２５】
モデム処理部２１は、送信装置１０から無線送信されたデータの復調処理を行う。
コーデック部２２は、モデム処理部２１によって復調されたデータの復号に関連する処理を行う。例えば、コーデック部２２は、モデム処理部２１から出力されるデータのデレートマッチング処理等を行う。
【００２６】
コーデック部２２は、メモリ２２ａおよびＣＰＵ２２ｂを有している。メモリ２２ａには、ＣＰＵ２２ｂによって実行される処理のプログラムが記憶されている。コーデック部２２は、例えば、図１で説明したレート処理装置に対応する。
【００２７】
復号器２３は、コーデック部２２によって処理されたデータの復号処理を行う。例えば、復号器２３は、コーデック部２２によって処理されたデータのチャネル復号処理を行う。
【００２８】
上位レイヤ処理部２４は、例えば、復号器２３によって復号されたデータを図示しないディスプレイに表示したり、または、スピーカなどから音声を出力したりする。
なお、図２では、送信装置１０と受信装置２０を別々に示しているが１つの装置に送信装置１０と受信装置２０が組み込まれていてもよい。
【００２９】
次に、コーデック部１２，２２の機能について説明するが、その前に、図３〜図１４を用いて、３ＧＰＰのパンクチャ処理およびレペティション処理について説明する。
図３は、３ＧＰＰのパンクチャを説明する図である。図３には、レートマッチング処理前（パンクチャ処理前）の符号化された符号化ビット３１ａが示してある。
【００３０】
パンクチャ処理は、符号化ビット３１ａのビットｘk（ｋ＝０，…，Ｘi−１）から、指定されたビット数分だけパンクチャする。図３に示す符号化ビット３１ｂの空白部分は、符号化ビット３１ａのパンクチャされる部分を示している。
【００３１】
符号化ビット３１ｃは、符号化ビット３１ａのパンクチャ後のビット列を示している。パンクチャ結果のビット列をｙk（ｋ＝０，…，Ｙi−１）とする。なお、Ｘi，Ｙiは、レートマッチング処理前後（パンクチャまたはレペティション処理前後）のビットサイズとする。
【００３２】
図４は、３ＧＰＰのパンクチャ動作を説明する図である。パンクチャのビット位置やパンクチャ数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。図４に示す上向きの矢印３２ａは増分値ｅ+を示し、下向きの矢印３２ｂは、減分値ｅ-を示す。
【００３３】
図４に示すグラフの横軸は、パンクチャ処理される入力データのビット位置を示す。例えば、図３に示した符号化ビット３１ａのビット位置を示す。縦軸は判定値ｅ（以下ではエラー変数と呼ぶこともある）を示し、エラー変数ｅが０以下になったとき、その入力ビットをパンクチャする。図４の矢印３２ｃは、パンクチャされる入力データのビット位置を示している。
【００３４】
図５は、３ＧＰＰのパンクチャ処理のアルゴリズムの一例を示した図である。図５に示す処理３３ａは、入力データの全ビットにおいて、パンクチャ処理を繰り返すことを示している。
【００３５】
処理３３ｂは、エラー変数ｅから減分値ｅ-を減算し、減算したエラー変数ｅが０以下であるか判断している。処理３３ｂは、エラー変数ｅが０以下になった場合、入力データのビットをパンクチャし、０以下でない場合、入力データのビットをそのまま（パンクチャせずに）出力することを示している。
【００３６】
図６は、３ＧＰＰのパンクチャパターン生成処理例を示したフローチャートである。以下でも述べるが、図６のフローチャートは、パンクチャビットのインデックスと、パンクチャされる入力データのビット位置との関係を求める処理を示している。
【００３７】
［ステップＳ１］コーデック部は、変数ｍ，ｎを０に初期化する。変数ｍは、入力データのビット位置に対応する変数であり、変数ｎは、出力データのビット位置に対応する変数である。また、コーデック部は、エラー変数ｅに初期値ｅ＿ｉを代入する。
【００３８】
［ステップＳ２］コーデック部は、変数ｍが入力データのビット数Ｘiより小さいか否か判断する。コーデック部は、変数ｍが入力データのビット数Ｘiより小さい場合、ステップＳ３へ進む。コーデック部は、変数ｍが入力データのビット数Ｘi以上の場合、処理を終了する。
【００３９】
［ステップＳ３］コーデック部は、エラー変数ｅから減分値ｅ＿ｍを減算する。
［ステップＳ４］コーデック部は、エラー変数ｅが０以下であるか否か判断する。コーデック部は、エラー変数ｅが０以下の場合、ステップＳ５へ進む。コーデック部は、エラー変数ｅが０より大きい場合、ステップＳ６へ進む。
【００４０】
［ステップＳ５］コーデック部は、エラー変数ｅに増分値ｅ＿ｐを加算する。
［ステップＳ６］コーデック部は、配列Ｐ［ｎ］にｍを格納する。
［ステップＳ７］コーデック部は、変数ｎに１を加算する。
【００４１】
［ステップＳ８］コーデック部は、変数ｍに１を加算する。
なお、上記のｅ＿ｉ、ｅ＿ｐ、およびｅ＿ｍは、図４で説明したｅini、ｅ+、およびｅ-に対応する。
【００４２】
上述したように、図６のフローチャートは、パンクチャビットのインデックスと、パンクチャされる入力データのビット位置との関係を求める処理を示している。例えば、パンクチャビットのインデックスは、図４に示す矢印３２ｃの左から０，１，２，…と付与される。そして、パンクチャビットのインデックスを配列Ｐ［ｎ］のｎに代入すると、パンクチャされる入力データのビット位置が求まる。
【００４３】
例えば、図４の例の場合、Ｐ［０］＝０、Ｐ［１］＝６、Ｐ［２］＝１２となる。すなわち、図６の処理によって求めた配列Ｐ［ｎ］から、パンクチャされる入力データのビット位置が分かる。
【００４４】
次に、図３のパンクチャに対し、パンクチャビット数が大きい場合の例について説明する。
図７は、パンクチャビット数が大きい場合の３ＧＰＰのパンクチャを説明する図である。図７には、パンクチャ処理前の符号化された符号化ビット３４ａが示してある。
【００４５】
パンクチャ処理は、図３で説明したように、符号化ビット３４ａのビットから、指定されたビット数分だけパンクチャする。図７に示す符号化ビット３４ｂの空白部分は、符号化ビット３４ａのパンクチャされる部分を示している。
【００４６】
図７では、符号化ビット３４ｂの空白部分が、図３の符号化ビット３１ｂの空白部分より大きくなっている。すなわち、図７の例は、図３のパンクチャビット数より大きい場合の例を示している。
【００４７】
図８は、パンクチャビット数が大きい場合の３ＧＰＰのパンクチャ動作を説明する図である。図４で説明したように、パンクチャのビット位置やパンクチャ数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。従って、例えば、図８に示すように、初期値ｅini、増分値ｅ+、および減分値ｅ-を設定することにより、パンクチャビット数を大きくすることができる。図８に示す上向きの矢印３５ａは増分値ｅ+を示し、下向きの矢印３５ｂは、減分値ｅ-を示す。
【００４８】
図８に示すグラフの横軸は、パンクチャ処理される入力データのビット位置を示す。例えば、図７に示した符号化ビット３４ａのビット位置を示す。縦軸はエラー変数ｅを示し、エラー変数ｅが０以下であるとき、その入力ビットをパンクチャする。図８の矢印３５ｃは、入力データの残留ビット位置（パンクチャされないビット位置）を示している。
【００４９】
パンクチャビット数が大きい場合のアルゴリズムは、図５と同様であるのでその説明を省略する。また、パンクチャビット数が大きい場合のフローチャートは、図６と同様であるのでその説明を省略する。
【００５０】
レペティション処理について説明する。
図９は、３ＧＰＰのレペティションを説明する図である。図９には、レートマッチング処理前（レペティション処理前）の符号化された符号化ビット３６ａが示してある。
【００５１】
レペティション処理は、符号化ビット３６ａのビットｘk（ｋ＝０，…，Ｘi−１）の何れかを繰り返し出力する。図９に示す符号化ビット３６ｂの斜線部分は、符号化ビット３６ａのレペティション（繰り返し出力）された部分を示している。
【００５２】
符号化ビット３６ｂは、符号化ビット３６ａをレペティションした結果のビット列を示している。レペティション結果のビット列をｙk（ｋ＝０，…，Ｙi−１）とする。なお、Ｘi，Ｙiは、レートマッチング処理前後のビットサイズとする。
【００５３】
図１０は、３ＧＰＰのレペティション動作を説明する図である。レペティションのビット位置やレペティション数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。図１０に示す上向きの矢印３７ａは増分値ｅ+を示し、下向きの矢印３７ｂは、減分値ｅ-を示す。
【００５４】
図１０に示すグラフの横軸は、レペティション後の出力データのビット位置を示す。例えば、図９に示した符号化ビット３６ｂのビット位置を示す。縦軸はエラー変数ｅを示し、エラー変数ｅが０以下になったとき、入力ビットをレペティションする。図１０の矢印３７ｃは、入力データのレペティションされるビット位置を示している。
【００５５】
図１１は、３ＧＰＰのレペティション処理のアルゴリズムの一例を示した図である。図１１に示す処理３８ａは、入力データの全ビットにおいて、処理３８ａ以下の処理を繰り返すことを示している。
【００５６】
処理３８ｂは、エラー変数ｅから減分値ｅ-を減算し、減算したエラー変数ｅが０以下であるか判断している。処理３８ｂは、エラー変数ｅが０以下になった場合、エラー変数が０以下である限り、入力データの同じビットを繰り返して出力することを示している。
【００５７】
処理３８ｃは、エラー変数ｅが０以下でない場合の処理を示し、入力データのビットをそのまま出力することを示している。
図１２は、３ＧＰＰのレペティションパターン処理例を示したフローチャートである。以下でも述べるが、図１２のフローチャートは、入力データのビット位置と、そのビット位置のビットが繰り返し出力される回数との関係を求める処理を示している。
【００５８】
［ステップＳ１１］コーデック部は、変数ｍ，ｎを０に初期化する。変数ｍは、入力データのビット位置に対応する変数であり、変数ｎは、出力データのビット位置に対応する変数である。また、コーデック部は、エラー変数ｅに初期値ｅ＿ｉを代入する。
【００５９】
［ステップＳ１２］コーデック部は、変数ｍが入力データのビット数Ｘiより小さいか否か判断する。コーデック部は、変数ｍが入力データのビット数Ｘiより小さい場合、ステップＳ１３へ進む。コーデック部は、変数ｍが出力データのビット数Ｘi以上の場合、処理を終了する。
【００６０】
［ステップＳ１３］コーデック部は、エラー変数ｅから減分値ｅ＿ｍを減算する。
［ステップＳ１４］コーデック部は、配列Ｐ［ｍ］に１を格納する。
［ステップＳ１５］コーデック部は、変数ｎに１を加算する。
【００６１】
［ステップＳ１６］コーデック部は、エラー変数ｅが０以下であるか否か判断する。コーデック部は、エラー変数ｅが０以下の場合、ステップＳ１７へ進む。コーデック部は、エラー変数ｅが０より大きい場合、ステップＳ２０へ進む。
【００６２】
［ステップＳ１７］コーデック部は、エラー変数ｅに増分値ｅ＿ｐを加算する。
［ステップＳ１８］コーデック部は、配列Ｐ［ｍ］に格納されている値に１を加算する。
【００６３】
［ステップＳ１９］コーデック部は、変数ｎに１を加算する。コーデック部は、ステップＳ１６の処理へ戻る。
［ステップＳ２０］コーデック部は、変数ｍに１を加算する。
【００６４】
上述したように、図１２のフローチャートは、入力データのビット位置と、そのビット位置のビットが繰り返し出力される回数との関係を求める処理を示している。例えば、図１２のフローチャートで求まった配列のＰ［ｍ］のｍに入力データのビット位置を代入すると、そのビット位置のビットが繰り返し出力される回数が求まる。
【００６５】
例えば、図１０の例の場合、Ｐ［０］＝１、Ｐ［１］＝１、Ｐ［２］＝１、Ｐ［３］＝１、Ｐ［４］＝２、Ｐ［５］＝１、…となる。すなわち、図１０の処理によって求めた配列Ｐ［ｍ］から、入力データのビットのレペティション数が分かる。
【００６６】
次に、図９のレペティションに対し、レペティション数が大きい場合の例について説明する。
図１３は、レペティション数が大きい場合の３ＧＰＰのレペティションを説明する図である。図１３には、レペティション処理前の符号化された符号化ビット３９ａが示してある。
【００６７】
レペティション処理は、図９で説明したように、符号化ビット３９ａのビットの何れかを繰り返し出力する。図１３に示す符号化ビット３９ｂの斜線部分は、符号化ビット３９ａのレペティション（繰り返し出力）された部分を示している。
【００６８】
図１３では、符号化ビット３９ｂの斜線部分が、図９の符号化ビット３６ｂの斜線部分より大きくなっている。すなわち、図１３の例は、図９のレペティション数より大きい場合の例を示している。
【００６９】
図１４は、レペティション数が大きい場合の３ＧＰＰのレペティション動作を説明する図である。図１０で説明したように、入力データのビットのレペティション位置やレペティション数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。従って、例えば、図１４に示すように、初期値ｅini、増分値ｅ+、および減分値ｅ-を設定することにより、レペティション数を大きくすることができる。図１４に示す上向きの矢印４０ａは増分値ｅ+を示し、下向きの矢印４０ｂは、減分値ｅ-を示す。
【００７０】
図１４に示すグラフの横軸は、レペティション後の出力データのビット位置を示す。例えば、図１３に示した符号化ビット３９ｂのビット位置を示す。縦軸はエラー変数ｅを示し、エラー変数が０以下である間は、入力ビットはレペティションされる。図１４の矢印４０ｃは、レペティションされない（レペティション数１）入力データのビット位置を示している。
【００７１】
レペティション数が大きい場合のアルゴリズムは、図１１と同様であるのでその説明を省略する。また、レペティション数が大きい場合のフローチャートは、図１２と同様であるのでその説明を省略する。
【００７２】
ここで、レペティション処理において、レペティション数が大きくなると、例えば、図１１に示した処理３８ｂのループ処理（while処理）が増加する。また、図１２に示したステップＳ１７〜Ｓ１９の処理が増加する。そのため、例えば、図９のレペティション処理に対し、図１３のレペティション処理は、処理負担が大きくなる。そこで、レペティション数を予め算出することにより、例えば、図１３のレペティション処理負担を低減することができる。
【００７３】
図１５は、レペティション数の算出を説明する図のその１である。図１０で説明したように、入力データのビットのレペティション位置やレペティション数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。従って、例えば、図１５に示すように、初期値ｅini、増分値ｅ+、および減分値ｅ-を設定することにより、レペティション数を大きくすることができる。また、パラメータ変数の設定によって、レペティション数を変えることができる。
【００７４】
例えば、図１５の例の場合、レペティション数は、５，４，５，…と変化し、入力データの０ビット目は、５回繰り返されて出力され、１ビット目は４回繰り返されて出力されている。図１５に示す上向きの矢印４１ａは増分値ｅ+を示し、下向きの矢印４１ｂは、減分値ｅ-を示す。
【００７５】
図１５に示すグラフの横軸は、レペティション後の出力データのビット位置を示す。縦軸はエラー変数を示し、エラー変数が０以下である間は、入力ビットはレペティションされる。図１５の矢印４１ｃは、レペティションされない入力データのビット位置を示している。
【００７６】
図１６は、レペティション数の算出を説明する図のその２である。図１６のパラメータ変数は、図１５と同様であるとする。すなわち、レペティション数は、５，４，５，…と変化している。
【００７７】
図１６に示すグラフの横軸は、入力データのビット位置を示す。縦軸はエラー変数を示し、エラー変数が０以下である間は、入力ビットはレペティションされる。図１６に示す上向きの矢印４２ａは増分値ｅ+を示し、下向きの矢印４２ｂは、減分値ｅ-を示す。
【００７８】
図１６のグラフは、図１５のグラフの横軸を圧縮した形となっている。図１６に示すように、入力データの０ビット目（ｍ＝０）は５回繰り返され、入力データの１ビット目（ｍ＝１）は４回繰り返されていることが分かる。
【００７９】
すなわち、減分値ｅ-を示す矢印４２ｂの矢先と、図１６に示す横方向の点線（ｅ＝ｅ+）との間に含まれる増分値ｅ+、つまり、矢印４２ａの数をカウントすることにより、入力ビットのレペティション数を算出することができる。例えば、図１６に示すレペティション数４２ｃは、入力データの２ビット目（ｍ＝２）のレペティション数を示し、５であることが分かる。
【００８０】
図１７は、レペティション数の算出を説明する図のその３である。図１７のパラメータ変数は、図１５、図１６と同様であるとする。図１７において図１６と同じものには同じ符号を付し、その説明を省略する。
【００８１】
入力ビットのレペティション数を算出するには、図１７の基準レペティション数４３ａ（入力ビットをレペティションする基準となる数）を算出する。基準レペティション数は、次の式（１）により算出できる。
【００８２】
【数１】
0005521965.tif 000002
【００８３】
入力ビットのレペティション数は、原則、基準レペティション数４３ａとする。ただし、図１７のｍ＝１に示すように、レペティション数が基準レペティション数より１小さい場合がある。すなわち、エラー変数ｅが点線４３ｂを超える場合、レペティション数は、基準レペティション数より１小さくなる。
【００８４】
そこで、エラー変数ｅが、入力ビットの１ビットごとに対応して、そのビットが基準レペティション数より１小さくなるビットであるか否かを示すようにするための基準剰余数を算出する。基準剰余数は、増分値ｅ+、減分値ｅ-に基づいて算出され、次の式（２）より算出される。
【００８５】
【数２】
0005521965.tif 000003
【００８６】
式（２）の基準剰余数は、図１７の矢印４３ｃを示している。従って、エラー変数ｅに基準剰余数を加算していき（エラー変数の初期値はｅini）、エラー変数ｅが増分値ｅ+より大きくなった場合、エラー変数から増分値ｅ+を減算するようにする。
【００８７】
これにより、エラー変数ｅは、例えば、図１７の矢印４３ｄに示すように変化する。すなわち、エラー変数ｅは、基準剰余数の導入により、入力ビットの１ビットごとに対応して、そのビットが基準レペティション数より１小さくなるビットであるか否かを示すようになる。
【００８８】
そして、図１７に示すように、基準剰余数を導入したエラー変数ｅが点線４３ｂ（増分値ｅ+）より小さい場合、その入力ビットのレペティション数を、基準レペティションから１減算すれば、適切なレペティション結果を得ることができる。
【００８９】
例えば、図１７の例の場合、基準レペティション数は５となる。エラー変数ｅがｅ+を超える入力ビット（例えば、ｍ＝１）に対しては、基準レペティションから１を減算した４がレペティション数となる。これにより、例えば、図１５のように、エラー変数ｅを逐次演算して、入力ビットがレペティションされるか否か判断しなくて済み、１度の演算で入力ビットが何回レペティションされるか求めることができる。よって、処理量を低減することができる。
【００９０】
図１８は、レペティション数を算出する場合のレペティション処理のアルゴリズムの一例を示した図である。図１８に示す処理４４ａは、基準レペティション数を算出している。処理４４ｂは、基準剰余数を算出している。
【００９１】
処理４４ｃは、入力データの全ビットにおいて、レペティション処理を繰り返すことを示している。
処理４４ｄは、エラー変数ｅに基準剰余数ｅｒ０を加算し、変数ｋ０に基準レペティション数を加算することを示している。そして、エラー変数ｅが増分値ｅ+より大きい場合、エラー変数ｅから増分値ｅ+を減算することを示している。そして、変数ｋ０から１を減算することを示している。
【００９２】
処理４４ｅは、変数ｋ０の示す値分、入力ビットをレペティションして出力することを示している。
図１８のレペティション処理では、図１１のレペティション処理に対し、繰り返し処理する処理量（処理３８ｂのwhileに含まれる処理量）が低減される。
【００９３】
図１９は、レペティション数を算出する場合のレペティションパターン処理例を示したフローチャートである。以下でも述べるが、図１９のフローチャートは、入力データのビット位置と、そのビット位置のビットが繰り返し出力される回数との関係を求める処理を示している。
【００９４】
［ステップＳ３１］コーデック部は、変数ｍ，ｎを０に初期化する。変数ｍは、入力データのビット位置に対応する変数であり、変数ｎは、出力データのビット位置に対応する変数である。また、コーデック部は、エラー変数ｅに初期値ｅ＿ｉを代入する。また、コーデック部は、変数ｋ０に０を代入する。
【００９５】
［ステップＳ３２］コーデック部は、変数ｍが入力データのビット数Ｘiより小さいか否か判断する。コーデック部は、変数ｍが入力データのビット数Ｘiより小さい場合、ステップＳ３３へ進む。コーデック部は、変数ｍが入力データのビット数Ｘi以上の場合、処理を終了する。
【００９６】
［ステップＳ３３］コーデック部は、エラー変数ｅに基準剰余数ｅｒ０を加算する。また、コーデック部は、変数ｋ０に基準レペティション数を加算する。
［ステップＳ３４］コーデック部は、エラー変数ｅが増分値ｅ＿ｐより大きいか否か判断する。コーデック部は、エラー変数ｅが増分値ｅ＿ｐより大きい場合、ステップＳ３５へ進む。コーデック部は、エラー変数ｅが増分値ｅ＿ｐ以下の場合、ステップＳ３６へ進む。
【００９７】
［ステップＳ３５］コーデック部は、エラー変数ｅから増分値ｅ＿ｐを減算する。また、コーデック部は、変数ｋ０から１を減算する。
［ステップＳ３６］コーデック部は、配列Ｐ［ｍ］に１を加算した変数ｋ０を格納する。コーデック部は、変数ｋ０に０を代入する。
【００９８】
［ステップＳ３７］コーデック部Ｓ３７は、変数ｍに１を加算し、ステップＳ３２へ進む。
上述したように、図１９のフローチャートは、入力データのビット位置と、そのビット位置のビットが繰り返し出力される回数との関係を求める処理を示している。例えば、図１２のフローチャートで求まった配列のＰ［ｍ］のｍに入力データのビット位置を代入すると、そのビット位置のビットが繰り返し出力される回数が求まる。
【００９９】
例えば、図１７の例の場合、Ｐ［０］＝５、Ｐ［１］＝４、Ｐ［２］＝５、…となる。すなわち、図１９の処理によって求めた配列Ｐ［ｍ］から、入力データのビットのレペティション数が分かる。
【０１００】
図１９の処理では、図１２の処理に対し、ステップＳ１６〜Ｓ１９の繰り返し処理が低減される。
図２のコーデック部１２，２２の説明に戻る。コーデック部２２は、コーデック部１２と同様の機能を有するので、以下では、コーデック部１２について説明する。なお、以下では、図１５から図１９で説明したレペティション数の算出方法をレペティション基準形と呼ぶことがある。
【０１０１】
図２０は、コーデック部のブロックを示した図である。図２０に示すように、コーデック部１２は、出力数算出部５１およびパンクチャ処理部５２を有している。コーデック部１２は、例えば、ＨＳＰＡのデータ伝送チャネルＨＳ−ＤＳＣＨ（High Speed-physical Downlink Shared CHannel）の符号化処理を行う。コーデック部１２は、例えば、図２で示したＣＰＵ１２ｂがメモリ１２ａに記憶されているプログラムを実行することによって、図２０のブロックの機能を実現する。
【０１０２】
出力数算出部５１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、入力データのビットをそのまま順次連続して出力する基準出力数を算出する。
パンクチャ処理部５２は、出力数算出部５１によって算出された基準出力数に基づいて、入力データのビットを連続して出力し、入力データのビットのパンクチャを行う。
【０１０３】
図２１は、コーデック部のパンクチャ処理を説明する図である。図２１には、パンクチャ処理前のターボ符号化された符号化ビット６１ａが示してある。符号化ビット６１ａは、組織ビット６１ａａ、パリティビット６１ａｂ（パリティ系列１）、およびパリティビット６１ａｃ（パリティ系列２）から形成されている。
【０１０４】
ＨＳＰＡの１ｓｔレートマッチングでは、例えば、ターボ符号化後のビット数がＨ−ＡＲＱ（Hybrid Automatic Repeat reQuest）ソフトバッファサイズを超える場合にパンクチャ処理が適用され、出力ビットはソフトバッファサイズに制限される。
【０１０５】
パンクチャ処理は、符号化ビット６１ａのパリティ系列１，２に対し、それぞれ独立に適用される。パリティ系列１，２に対するパンクチャ処理の違いは、パラメータ変数であり、以下では、パリティ系列１を例に説明する。
【０１０６】
パンクチャ処理は、パリティビット６１ａｂのビットｘk（ｋ＝０，…，Ｘi−１）から、指定されたビット数分だけパンクチャする。図２１に示す符号化ビット６１ｂの空白部分は、パリティビット６１ａｂ，６１ａｃのパンクチャされる部分を示している。
【０１０７】
符号化ビット６１ｃは、符号化ビット６１ａをパンクチャした結果のビット列を示している。パリティビット６１ａｂのパンクチャ結果のビット列をｙk（ｋ＝０，…，Ｙi−１）とする。なお、Ｘi，Ｙiは、パリティビット６１ａｂのパンクチャ処理前後のビットサイズとする。
【０１０８】
図２１のパンクチャは、２Ｍ＜Ｘ（Ｍ：パンクチャ数、Ｘ：パリティビット６１ａｂのビット数）の関係にあるとする。すなわち、図２１のパンクチャは、入力データ（パリティビット６１ａｂ）のパンクチャ数が、パンクチャ後の残留ビットより小さい関係にあるとする。
【０１０９】
図２２は、図２１のパンクチャ動作を説明する図である。パンクチャのビット位置やパンクチャ数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。従って、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さいか否かは、初期値ｅini、増分値ｅ+、および減分値ｅ-より知ることができる。図２２に示す上向きの矢印６２ａは増分値ｅ+を示し、下向きの矢印６２ｂは、減分値ｅ-を示す。
【０１１０】
図２２に示すグラフの横軸は、パンクチャ処理される入力データのビット位置を示す。例えば、図２１に示したパリティビット６１ａｂのビット位置を示す。縦軸は判定値ｅを示し、エラー変数ｅが０以下になったとき、その入力ビットはパンクチャされる。図２２の矢印６２ｃは、パンクチャされる入力データのビット位置を示している。
【０１１１】
図２２のグラフにおいて、横軸を軸にグラフを反転させると、図１５に示すレペティション基準形と同様の形となる。すなわち、パラメータ変数を横軸で反転するように変換することによって、レペティション基準形と同様に処理量を低減することが可能となる。
【０１１２】
図２３は、パラメータ変数変換を行ったパンクチャ動作を説明する図である。図２３では、次の式（３）に示すようにパラメータ変数変換を行い、横軸を圧縮したグラフを示している。
【０１１３】
【数３】
0005521965.tif 000004
【０１１４】
図２３の横軸はパリティビット６１ａｂのパンクチャされるパンクチャビットのインデックスを示し、縦軸はパラメータ変数変換したエラー変数Ｆを示している。矢印６３ａは、パラメータ変数変換した増分値Ｆ+を示している。矢印６３ｂは、パラメータ変数変換した減分値Ｆ-を示している。矢印６３ｃは、パリティビット６１ａｂのパンクチャされるビットのインデックスを示している。
【０１１５】
すなわち、２Ｍ＜Ｘのパンクチャ処理の場合、式（３）に示すパラメータ変数変換によって、図１７に示すレペティション基準形と同様の形となる。
図２４は、パンクチャ処理のアルゴリズムの一例を示した図である。出力数算出部５１は、図２４に示す処理６４ａを行う。処理６４ａは、式（３）に示したパラメータ変数変換の処理を示している。すなわち、出力数算出部５１は、図２２に示したグラフが横軸を軸に反転するようにパラメータ変数変換を行う。
【０１１６】
出力数算出部５１は、処理６４ｂを行う。処理６４ｂは、パラメータ変数変換したパラメータより、基準出力数Ｆｋ０（入力ビットを連続してそのまま出力する回数）と基準剰余数Ｆｒ０を算出する処理を示している。処理６４ｂは、図１８で示した処理４４ａ，４４ｂと同様である。
【０１１７】
パンクチャ処理部５２は、処理６４ｃを行う。処理６４ｃは、パラメータ変数変換による変数ｋ０の初期値補正値を算出している。
パンクチャ処理部５２は、処理６４ｄを行う。処理６４ｄは、変数Ｆ，ｍ，ｎ，ｋ０の初期設定を行う。なお、レペティション処理の場合、出力ビットの先頭ビットは、入力ビットの先頭ビットなる。一方、パンクチャするビットは、入力ビットの途中から始まる場合もある。そこで、パンクチャ処理部５２は、残留ビットが途中から始まる場合を想定し、仮想的な残留ビットを入出力ビットインデックスとして挿入するためにｎ＝ｍ＝−１とする。
【０１１８】
パンクチャ処理部５２は、処理６４ｅを行う。処理６４ｅは、入力データの全ビットにおいて、パンクチャ処理を繰り返すことを示している。また、処理６４ｅは、エラー変数Ｆに基準剰余数Ｆｒ０を加算し、変数ｋ０に基準出力数Ｆｋ０を加算することを示している。また、処理６４ｅは、エラー変数Ｆが増分値Ｆ+より大きい場合、エラー変数Ｆから増分値Ｆ+を減算し、変数ｋ０から１を減算することを示している。また、処理６４ｅは、変数ｋ０の示す値分、入力ビットを出力ビットとして出力することを示している。なお、処理６４ｅは、図１８の処理４４ｃ〜４４ｅと同様である。
【０１１９】
すなわち、出力数算出部５１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、パンクチャの有無判定に用いられる増分値ｅ+，減分値ｅ-をパラメータ変数変換し、入力データのビットを連続してそのまま出力する基準出力数Ｆｋ０を算出する。そして、パンクチャ処理部５２は、基準出力数Ｆｋ０または基準出力数Ｆｋ０から１減算した減算基準出力数、連続して入力ビットを出力した後、入力データのビットをパンクチャする。これにより、図２１のパンクチャ処理は、図３のパンクチャ処理に対し、繰り返し処理する処理量が低減される。
【０１２０】
なお、処理６４ｃは、エラー変数の初期値を変数ｎ＝−１から始めて、ｎ＝０から次の入力ビットまでの間の２段目のwhileループ処理数が、先頭の繰り返し数に相当するようにｋ０ｉを算出している。一方、入力ビットを連続してそのまま出力する回数は、基準出力数Ｆｋ０かそれより１小さい数となる。従って、パンクチャ処理部５２は、ｎ＝ｍ＝−１に対しての出力数のみ、先頭の繰り返し数に等しくなるよう、基準出力数Ｆｋ０の初期値から補正値を差し引いておく。また、パンクチャ処理部５２は、処理６４ｄのエラー変数Ｆについても、１回のエラー変数の更新処理により、条件０＜ｅ＜ｅ+を満たすように補正する。
【０１２１】
図２５は、パンクチャパターン生成処理例を示したフローチャートである。以下でも述べるが、図２５のフローチャートは、入力データのビット位置と、そのビット位置のビットが繰り返し出力される回数との関係を求める処理を示している。図２５のフローチャートには示していないが、出力数算出部５１は、式（３）で示したパラメータ変数変換を行っているとする。また、出力数算出部５１は、基準出力数Ｆｋ０および基準剰余数Ｆｒ０を算出しているとする。
【０１２２】
［ステップＳ４１］パンクチャ処理部５２は、変数ｍ，ｎを−１に初期化する。変数ｍは、入力データのビット位置に対応する変数であり、変数ｎは、出力データのビット位置に対応する変数である。また、パンクチャ処理部５２は、エラー変数Ｆおよび変数ｋ０を初期化する。
【０１２３】
［ステップＳ４２］パンクチャ処理部５２は、変数ｎがパンクチャビット数Ｎ（インデックスの最大値）より小さいか否か判断する。パンクチャ処理部５２は、変数ｎがＮより小さい場合、ステップＳ４３へ進む。パンクチャ処理部５２は、変数ｎがＮ以上の場合、処理を終了する。
【０１２４】
［ステップＳ４３］パンクチャ処理部５２は、パラメータ変数変換したエラー変数Ｆに基準剰余数Ｆｒ０を加算する。また、パンクチャ処理部５２は、変数ｋ０に基準出力数Ｆｋ０を加算する。
【０１２５】
［ステップＳ４４］パンクチャ処理部５２は、エラー変数Ｆが増分値Ｆ＿ｐ以上か否か判断する。パンクチャ処理部５２は、エラー変数Ｆが増分値Ｆ＿ｐ以上の場合、ステップＳ４５へ進む。パンクチャ処理部５２は、エラー変数Ｆが増分値Ｆ＿ｐより小さい場合、ステップＳ４６へ進む。
【０１２６】
［ステップＳ４５］パンクチャ処理部５２は、エラー変数Ｆから増分値Ｆ＿ｐを減算する。また、パンクチャ処理部５２は、変数ｋ０から１を減算する。
［ステップＳ４６］パンクチャ処理部５２は、配列Ｐ［ｎ］に変数ｍの値を格納する。
【０１２７】
［ステップＳ４７］パンクチャ処理部５２は、変数ｍに変数ｋ０を加算し、変数ｎに１を加算し、ステップＳ４２へ進む。
上述したように、図２５のフローチャートは、パンクチャビットのインデックスと、パンクチャされる入力データのビット位置との関係を求める処理を示している。例えば、パンクチャビットのインデックスは、図２３に示す矢印６３ｃの左から０，１，２，…と付与される。そして、パンクチャビットのインデックスを配列Ｐ［ｎ］のｎに代入すると、パンクチャされる入力データのビット位置が求まる。
【０１２８】
例えば、図４の例の場合、Ｐ［０］＝０、Ｐ［１］＝６、Ｐ［２］＝１２となる。すなわち、図２５の処理によって求めた配列Ｐ［ｎ］から、パンクチャされる入力データのビット位置が分かる。すなわち、パンクチャ処理部５２は、基準出力数Ｆｋ０により入力ビットをパンクチャするビット位置が分かるので、これにより入力ビットをそのまま連続して出力し、入力ビットをパンクチャすることもできる。
【０１２９】
なお、図２５の処理では、図６の処理に対し、Ｎ回の繰り返し処理で済み、処理を低減することができる。
このように、出力数算出部５１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、入力データのビットを連続して出力する基準出力数を算出する。そして、パンクチャ処理部５２は、算出した基準出力数に基づいて入力データのパンクチャ処理を行う。これにより、コーデック部１２は、パンクチャする入力ビットの位置を逐次特定でき、処理量を低減することができる。例えば、パンクチャするビットを特定するのに必要な処理は、たかだか、従来の入力ビットの１ビット当たりの判定処理に要していた処理量の２倍程度で済むので、Ｘ／２Ｍ倍程度の処理量削減となる。
【０１３０】
なお、上記の第２の実施の形態は、ＨＳ−ＤＳＣＨの２ｎｄレートマッチングにも適用することができる。
［第３の実施の形態］
次に、第３の実施の形態を、図面を参照して詳細に説明する。第２の実施の形態では、入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合の処理低減について説明した。第３の実施の形態では、入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合の例について説明する。なお、第３の実施の形態に係るレート処理装置が適用される通信システムは図２と同様であり、その説明を省略する。
【０１３１】
図２６は、第３の実施の形態に係るコーデック部のブロックを示した図である。図２６に示すように、コーデック部１２は、パンクチャ数算出部７１およびパンクチャ処理部７２を有している。コーデック部１２は、例えば、ＨＳＰＡのデータ伝送チャネルＨＳ−ＤＳＣＨの符号化処理を行う。コーデック部１２は、例えば、図２で示したＣＰＵ１２ｂがメモリ１２ａに記憶されているプログラムを実行することによって、図２６のブロックの機能を実現する。
【０１３２】
パンクチャ数算出部７１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、入力データのビットを連続してパンクチャする基準パンクチャ数を算出する。
【０１３３】
パンクチャ処理部７２は、パンクチャ数算出部７１によって算出された基準パンクチャ数に基づいて、入力データのビットを連続してパンクチャし、入力データのビットを出力する。
【０１３４】
図２７は、コーデック部のパンクチャ処理を説明する図である。図２７には、パンクチャ処理前のターボ符号化された符号化ビット８１ａが示してある。符号化ビット８１ａは、組織ビット８１ａａ、パリティビット８１ａｂ（パリティ系列１）、およびパリティビット８１ａｃ（パリティ系列２）から形成されている。
【０１３５】
ＨＳＰＡの１ｓｔレートマッチングでは、例えば、ターボ符号化後のビット数がＨ−ＡＲＱソフトバッファサイズを超える場合にパンクチャ処理が適用され、出力ビットはソフトバッファサイズに制限される。
【０１３６】
パンクチャ処理は、符号化ビット８１ａのパリティ系列１，２に対し、それぞれ独立に適用される。パリティ系列１，２に対するパンクチャ処理の違いは、パラメータ変数であり、以下では、パリティ系列１を例に説明する。
【０１３７】
パンクチャ処理は、パリティビット８１ａｂのビットｘk（ｋ＝０，…，Ｘi−１）から、指定されたビット数分だけパンクチャする。図２７に示す符号化ビット８１ｂの空白部分は、パリティビット８１ａｂ，８１ａｃのパンクチャされる部分を示している。
【０１３８】
符号化ビット８１ｃは、符号化ビット８１ａをパンクチャした結果のビット列を示している。パリティビット８１ａｂのパンクチャ結果のビット列をｙk（ｋ＝０，…，Ｙi−１）とする。なお、Ｘi，Ｙiは、パリティビット８１ａｂのパンクチャ処理前後のビットサイズとする。
【０１３９】
図２７のパンクチャは、２Ｎ＜Ｘ（Ｎ：残留ビット数、Ｘ：パリティビット８１ａｂのビット数）の関係にあるとする。すなわち、図２７のパンクチャは、入力データ（パリティビット８１ａｂ）のパンクチャ数が、パンクチャ後の残留ビットより大きい関係にあるとする。
【０１４０】
図２８は、図２７のパンクチャ動作を説明する図である。パンクチャのビット位置やパンクチャ数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。図２８に示す上向きの点線矢印８２ａは増分値ｅ+を示し、下向きの点線矢印８２ｂは、減分値ｅ-を示す。
【０１４１】
図２８に示すグラフの横軸は、パンクチャ処理される入力データのビット位置を示す。例えば、図２７に示したパリティビット８１ａｂのビット位置を示す。縦軸は判定値を示し、エラー変数ｅが０以下になったとき、その入力ビットはパンクチャされる。図２８の矢印８２ｃは、パンクチャされる入力データのビット位置を示している。
【０１４２】
図２８のグラフにおいて、点線矢印８２ａ，８２ｂに示す増分値ｅ+、減分値ｅ-を矢印８２ｄ，８２ｅに示すようにパラメータ変数変換し、初期値ｅiniを初期値ｆiniにパラメータ変数変換すれば、図２２で示した形と同様になる。
【０１４３】
従って、入力データのパンクチャ数が、パンクチャ後の残留ビットより大きい関係にある場合、図２８の点線波形を実線波形に示すようにパラメータ変数変換すれば、第２の実施の形態で説明したパラメータ変数変換を行うことにより、処理量を低減することができる。
【０１４４】
次の式（４）は、入力データのパンクチャ数が、パンクチャ後の残留ビットより大きい関係にある場合のパラメータ変数変換に関する式を示している。
【０１４５】
【数４】
0005521965.tif 000005
【０１４６】
式（４）の一番上の式は、例えば、図２８の矢印８２ｄを算出していることを示している。式（４）の上から２番目の式は、例えば、図２８の矢印８２ｅを算出していることを示している。式（４）の上から３〜５番目の式は、例えば、図２８の初期値ｆiniを算出していることを示している。
【０１４７】
図２９は、パラメータ変数変換を行ったパンクチャ動作を説明する図である。図２８の実線波形（式（４））を、次の式（５）に示すようにパラメータ変数変換を行い（第２の実施の形態で説明したパラメータ変換を行い）、横軸を圧縮すると図２９に示すようになる。
【０１４８】
【数５】
0005521965.tif 000006
【０１４９】
図２９の横軸はパリティビット８１ａｂの残留ビットのインデックスを示し、縦軸はパラメータ変数変換したエラー変数Ｆを示している。矢印８３ａは、パラメータ変数変換した増分値Ｆ+を示している。矢印８３ｂは、パラメータ変数変換した減分値Ｆ-を示している。矢印８３ｃは、パリティビット８１ａｂの残留ビットのインデックスを示している。
【０１５０】
すなわち、パンクチャ数算出部７１は、２Ｎ＜Ｘのパンクチャ処理の場合、式（４），（５）に示すパラメータ変数変換によって、図１７に示すレペティション基準形と同様の形に変換することができる。
【０１５１】
図３０は、パンクチャ処理のアルゴリズムの一例を示した図である。パンクチャ数算出部７１は、図３０に示す処理８４ａを行う。処理８４ａは、式（４）に示したパラメータ変数変換の処理を示している。すなわち、パンクチャ数算出部７１は、図２８に示した点線波形が実線波形となるようにパラメータ変数変換を行う。
【０１５２】
パンクチャ数算出部７１およびパンクチャ処理部７２は、処理８４ｂを行う。処理８４ｂは、図２４で説明した処理６４ａ〜６４ｅと同様であり、その説明を省略する。
すなわち、パンクチャ数算出部７１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、パンクチャの有無判定に用いられる増分値ｅ+，減分値ｅ-を式（４），（５）よりパラメータ変数変換し、入力データのビットを連続してパンクチャする基準パンクチャ数Ｆｋ０を算出する。そして、パンクチャ処理部７２は、基準パンクチャ数Ｆｋ０または基準パンクチャ数Ｆｋ０から１減算した減算パンクチャ数、連続して入力ビットをパンクチャした後、入力データのビットをそのまま出力する。これにより、図２７のパンクチャ処理は、図７のパンクチャ処理に対し、繰り返し処理する処理量が低減される。
【０１５３】
なお、フローチャートは、図２５と同様になり、その説明を省略する。ただし、第３の実施の形態では、パンクチャ数算出部７１は、図２５で説明したフローチャートの動作処理の前に、式（４）のパラメータ変数変換を行う。また、第３の実施の形態では、パンクチャ処理部７２は、入力ビットを残留するビット位置が分かり、これによりパンクチャ処理を行うことができる。
【０１５４】
このように、パンクチャ数算出部７１は、入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、入力データのビットを連続してパンクチャする基準パンクチャ数を算出する。そして、パンクチャ処理部７２は、算出した基準パンクチャ数に基づいて入力データのパンクチャ処理を行う。これにより、コーデック部１２は、残留する残留ビットの位置を逐次特定でき、処理量を低減することができる。例えば、パンクチャするビットを特定するのに必要な処理は、たかだか、従来の入力ビットの１ビット当たりの判定処理に要していた処理量の２倍程度で済むので、Ｘ／２Ｍ倍程度の処理量削減となる。
【０１５５】
なお、上記の第３の実施の形態は、ＨＳ−ＤＳＣＨの２ｎｄレートマッチングにも適用することができる。
［第４の実施の形態］
次に、第４の実施の形態を、図面を参照して詳細に説明する。第４の実施の形態では、入力データのレペティション数がレペティション後のビット数より小さい場合の処理低減について説明する。
【０１５６】
図３１は、第４の実施の形態に係るコーデック部のブロックを示した図である。図３１に示すように、コーデック部１２は、出力数算出部９１およびレペティション処理部９２を有している。コーデック部１２は、例えば、ＨＳＰＡのデータ伝送チャネルＨＳ−ＤＳＣＨの符号化処理を行う。コーデック部１２は、例えば、図２で示したＣＰＵ１２ｂがメモリ１２ａに記憶されているプログラムを実行することによって、図３１のブロックの機能を実現する。
【０１５７】
出力数算出部９１は、入力データのレペティション数がレペティション後の出力ビット数より小さい場合、入力データのビットを連続して出力する基準出力数を算出する。
レペティション処理部９２は、出力数算出部９１によって算出された基準出力数に基づいて、入力データのビットをそのまま連続して順次出力して、レペティションを行う。
【０１５８】
図３２は、コーデック部のレペティション処理を説明する図である。図３２には、２ｎｄレートマッチングのレペティション処理前のターボ符号化された符号化ビット１０１ａが示してある。符号化ビット１０１ａは、組織ビット１０１ａａ、パリティビット１０１ａｂ（パリティ系列１）、およびパリティビット１０１ａｃ（パリティ系列２）から形成されている。
【０１５９】
ＨＳＰＡの２ｎｄレートマッチングでは、例えば、ターボ符号化後のビット数がＨ−ＡＲＱソフトバッファサイズを超えない場合にレペティション処理が適用される。ＨＳＰＡの２ｎｄレートマッチングでは、組織ビット１０１ａａ、パリティビット１０１ａｂ、およびパリティビット１０１ａｃのそれぞれにレペティション処理が適用される。
【０１６０】
レペティション処理は、符号化ビット１０１ａのビットの何れかを繰り返し出力する。図３２に示す符号化ビット１０１ｂの空白部分は、符号化ビット１０１ａのレペティションされた部分を示している。
【０１６１】
図３２のレペティションは、２Ｎ＜Ｙ（Ｙ：出力ビット数、Ｎ：レペティションビット数）の関係にあるとする。すなわち、図３２のレペティションは、入力データのレペティション数が、入力データのビット数より小さい関係にあるとする。
【０１６２】
図３３は、図３２のレペティション動作を説明する図である。レペティションのビット位置やレペティション数は、初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数によって決まる。図３３に示す上向きの矢印１０２ａは増分値ｅ+を示し、下向きの矢印１０２ｂは、減分値ｅ-を示す。
【０１６３】
図３３に示すグラフの横軸は、レペティション処理される入力データのビット位置を示す。例えば、図３２に示した符号化ビット１０１ａのビット位置を示す。縦軸は判定値を示し、エラー変数ｅが０以下になったとき、その入力ビットはレペティションされる。図３３の矢印１０２ｃは、レペティションされる入力データのビット位置を示している。
【０１６４】
図３３のグラフにおいて、横軸を軸にグラフを反転させると、図１５に示すレペティション基準形と同様の形となる。従って、入力データのレペティション数が、入力データのビット数より小さい関係にある場合、次の式（６）に示すパラメータ変数変換を行えば、処理量を低減することができる。
【０１６５】
【数６】
0005521965.tif 000007
【０１６６】
なお、図３３は、図２２とも同様であり、式（６）は、式（３）と同様である。
図３４は、パラメータ変数変換を行ったレペティション動作を説明する図である。図３３に示した初期値ｅini、増分値ｅ+、および減分値ｅ-のパラメータ変数を、式（６）に示すようにパラメータ変数変換を行い、横軸を圧縮すると図２９に示すようになる。
【０１６７】
図２９の横軸は、例えば、図３２に示した符号化ビット１０１ａのレペティションするビットを示し、縦軸はパラメータ変数変換したエラー変数Ｆを示している。矢印１０３ａは、パラメータ変数変換した増分値Ｆ+を示している。矢印１０３ｂは、パラメータ変数変換した減分値Ｆ-を示している。矢印１０３ｃは、レペティションされる入力ビットを示している。
【０１６８】
すなわち、出力数算出部９１は、２Ｎ＜Ｙのレペティション処理の場合、式（６）に示すパラメータ変数変換によって、図１７に示すレペティション基準形と同様の形に変換することができる。
【０１６９】
図３５は、レペティション処理のアルゴリズムの一例を示した図である。図３５に示す処理１０４は、図２４で説明した処理６４ａ〜６４ｅと同様である。
出力数算出部９１およびレペティション処理部９２は、処理１０４を行う。出力数算出部９１は、入力データのレペティション数が入力データのビット数より小さい場合、レペティションの有無判定に用いられる増分値ｅ+，減分値ｅ-を式（６）によってパラメータ変数変換し、入力データのビットをそのまま順次連続して出力する（入力ビットをレペティションせずに出力する）基準出力数Ｆｋ０を算出する。そして、レペティション処理部９２は、基準出力数Ｆｋ０または基準出力数Ｆｋ０から１減算した減算基準出力数、連続して入力ビットを出力した後、入力データのビットをレペティションする。これにより、図３２のレペティション処理は、図９のレペティション処理に対し、繰り返し処理する処理量が低減される。
【０１７０】
なお、レペティション処理の場合、出力ビットの先頭ビットは、入力ビットの先頭ビットとなるが、式（６）に示すパラメータ変数変換を行った場合、出力ビットの先頭ビットは、入力ビットの先頭ビットとならない場合が生じる。そこで、レペティション処理部９２は、第２の実施の形態と同様に、仮想的な残留ビットを入出力ビットインデックスとして挿入するためにｎ＝ｍ＝−１とする。そして、レペティション処理部９２は、第２の実施の形態と同様に、基準出力数Ｆｋ０およびエラー変数Ｆを補正する。
【０１７１】
フローチャートは、図２５と同様になり、その説明を省略する。ただし、第４の実施の形態では、出力数算出部９１は、図２５で説明したフローチャートの動作処理の前に、式（６）のパラメータ変数変換を行う。また、第４の実施の形態では、レペティション処理部９２は、レペティションするビット位置が分かり、これによりレペティション処理を行うことができる。
【０１７２】
このように、出力数算出部９１は、入力データのレペティション数が入力データのビット数より小さい場合、入力データのビットを連続して出力する基準出力数を算出する。そして、レペティション処理部９２は、算出した基準出力数に基づいて入力データのレペティション処理を行う。これにより、コーデック部１２は、レペティションする入力ビットの位置を逐次特定でき、処理量を低減することができる。例えば、レペティションするビットを特定するのに必要な処理は、たかだか、従来の入力ビットの１ビット当たりの判定処理に要していた処理量の２倍程度で済むので、Ｙ／２Ｎ倍程度の処理量削減となる。
【０１７３】
なお、上記の第４の実施の形態は、ＤＣＨ（Dedicated CHannel）のレートマッチングにも適用することができる。
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
【０１７４】
（付記１）  入力データのパンクチャを行うレート調整装置において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、
前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しパンクチャする処理部と、
を有することを特徴とするレート調整装置。
【０１７５】
（付記２）  前記算出部は、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出することを特徴とする付記１記載のレート調整装置。
【０１７６】
（付記３）  前記処理部は、前記入力データのビットを前記算出部によって算出された前記出力数または前記算出部によって算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをパンクチャすることを特徴とする付記２記載のレート調整装置。
【０１７７】
（付記４）  入力データのパンクチャを行うレート調整装置において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、前記入力データのビットを連続してパンクチャするパンクチャ数を算出する算出部と、
前記算出部によって算出された前記パンクチャ数に基づいて前記入力データのビットを連続してパンクチャし前記入力データのビットを出力する処理部と、
を有することを特徴とするレート調整装置。
【０１７８】
（付記５）  前記算出部は、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記パンクチャ数を算出することを特徴とする付記４記載のレート調整装置。
【０１７９】
（付記６）  前記処理部は、前記入力データのビットを前記算出部によって算出された前記パンクチャ数または前記算出部によって算出された前記パンクチャ数から１減算した減算パンクチャ数連続してパンクチャし、前記入力データのビットを出力することを特徴とする付記５記載のレート調整装置。
【０１８０】
（付記７）  入力データのレペティションを行うレート調整装置において、
前記入力データのレペティション数が前記入力データのビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出する算出部と、
前記算出部によって算出された前記出力数に基づいて前記入力データのビットを連続して出力しレペティションする処理部と、
を有することを特徴とするレート調整装置。
【０１８１】
（付記８）  前記算出部は、前記入力データの各ビットのレペティショの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出することを特徴とする付記７記載のレート調整装置。
【０１８２】
（付記９）  前記処理部は、前記入力データのビットを前記算出部によって算出された前記出力数または前記算出部によって算出された前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをレペティションすることを特徴とする付記８記載のレート調整装置。
【０１８３】
（付記１０）  入力データのパンクチャを行うレート調整装置のレート調整方法において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出し、
算出した前記出力数に基づいて前記入力データのビットを連続して出力しパンクチャする、
ことを特徴とするレート調整方法。
【０１８４】
（付記１１）  前記出力数を算出する際、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出することを特徴とする付記１０記載のレート調整方法。
【０１８５】
（付記１２）  前記パンクチャ処理を行う際、前記入力データのビットを算出した前記出力数または算出した前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをパンクチャすることを特徴とする付記１１記載のレート調整方法。
【０１８６】
（付記１３）  入力データのパンクチャを行うレート調整装置のレート調整方法において、
前記入力データのパンクチャ数がパンクチャ後の残留ビット数より大きい場合、前記入力データのビットを連続してパンクチャするパンクチャ数を算出し、
算出した前記パンクチャ数に基づいて前記入力データのビットを連続してパンクチャし前記入力データのビットを出力する、
ことを特徴とするレート調整方法。
【０１８７】
（付記１４）  前記パンクチャ数を算出する際、前記入力データの各ビットのパンクチャの有無判定に用いられる増分値および減分値に基づいて、前記パンクチャ数を算出することを特徴とする付記１３記載のレート調整方法。
【０１８８】
（付記１５）  前記パンクチャ処理を行う際、前記入力データのビットを算出した前記パンクチャ数または算出した前記パンクチャ数から１減算した減算パンクチャ数連続してパンクチャし、前記入力データのビットを出力することを特徴とする付記１４記載のレート調整方法。
【０１８９】
（付記１６）  入力データのレペティションを行うレート調整装置のレート調整方法において、
前記入力データのレペティション数が前記入力データのビット数より小さい場合、前記入力データのビットを連続して出力する出力数を算出し、
算出した前記出力数に基づいて前記入力データのビットを連続して出力しレペティションする、
ことを特徴とするレート調整方法。
【０１９０】
（付記１７）  前記出力数を算出する際、前記入力データの各ビットのレペティショの有無判定に用いられる増分値および減分値に基づいて、前記出力数を算出することを特徴とする付記１６記載のレート調整方法。
【０１９１】
（付記１８）  前記レペティション処理を行う際、前記入力データのビットを算出した前記出力数または算出した前記出力数から１減算した減算出力数連続して出力し、前記入力データのビットをレペティションすることを特徴とする付記１６記載のレート調整方法。
【符号の説明】
【０１９２】
１  レート処理装置
１ａ  算出部
１ｂ  処理部
２ａ  入力データ
２ｂ  データ
２ｃ  出力データ
【図１】
0005521965.tif 000008
【図２】
0005521965.tif 000009
【図３】
0005521965.tif 000010
【図４】
0005521965.tif 000011
【図５】
0005521965.tif 000012
【図６】
0005521965.tif 000013
【図７】
0005521965.tif 000014
【図８】
0005521965.tif 000015
【図９】
0005521965.tif 000016
【図１０】
0005521965.tif 000017
【図１１】
0005521965.tif 000018
【図１２】
0005521965.tif 000019
【図１３】
0005521965.tif 000020
【図１４】
0005521965.tif 000021
【図１５】
0005521965.tif 000022
【図１６】
0005521965.tif 000023
【図１７】
0005521965.tif 000024
【図１８】
0005521965.tif 000025
【図１９】
0005521965.tif 000026
【図２０】
0005521965.tif 000027
【図２１】
0005521965.tif 000028
【図２２】
0005521965.tif 000029
【図２３】
0005521965.tif 000030
【図２４】
0005521965.tif 000031
【図２５】
0005521965.tif 000032
【図２６】
0005521965.tif 000033
【図２７】
0005521965.tif 000034
【図２８】
0005521965.tif 000035
【図２９】
0005521965.tif 000036
【図３０】
0005521965.tif 000037
【図３１】
0005521965.tif 000038
【図３２】
0005521965.tif 000039
【図３３】
0005521965.tif 000040
【図３４】
0005521965.tif 000041
【図３５】
0005521965.tif 000042