(57)【特許請求の範囲】
【請求項１】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化方法において、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する符号化方法。
【請求項２】
前記取得工程では、前記数値に対して前記基準整数Ｉの逆数に対応する整数を乗算する請求項１記載の符号化方法。
【請求項３】
前記取得工程では、前記商及び前記剰余に対して前記基準整数Ｉを用いて補正を行う特徴とする請求項２記載の符号化方法。
【請求項４】
前記ビット数ｘが小数かつ所定の閾値Ｘ（Ｘ＝Ｍ／２、Ｍは正の奇数）よりも大きい場合、前記ビット数をｘ＝Ｘとして上位ビット列を符号化し、下位ビット列を（ｍ−Ｍ）／２ビット長のデータとして固定長符号化する請求項３記載の符号化方法。
【請求項５】
前記符号化工程では、下記（１）により前記剰余を結合する請求項１記載の符号化方法。
【数１】
0004888335.tif 000051
ここで、Ｑｉは結合剰余を示し、ｑ２ｉ，ｑ２ｉ＋１は連続する２つのビット列の剰余を示す。
【請求項６】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化方法において、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する符号化方法。
【請求項７】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化装置において、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出手段と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得手段と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化手段とを有する符号化装置。
【請求項８】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化装置において、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出手段と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得手段と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化手段とを有する符号化装置。
【請求項９】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する処理をコンピュータに実行させるためのプログラムであって、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有するプログラム。
【請求項１０】
入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する処理をコンピュータに実行させるためのプログラムであって、
前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、
前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、
ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、
ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有するプログラム。
【請求項１１】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号方法において、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割工程と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する復号方法。
【請求項１２】
前記剰余分割工程では、前記結合剰余に前記基準整数Ｉの逆数に対応する整数を乗算する請求項１１記載の復号方法。
【請求項１３】
前記剰余分割工程では、各剰余に対して前記基準整数Ｉを用いて補正を行う請求項１２記載の復号方法。
【請求項１４】
前記ビット数ｘが小数かつ所定の閾値Ｘ（Ｘ＝Ｍ／２、Ｍは正の奇数）よりも大きい場合、前記ビット数をｘ＝Ｘとして上位ビット列を生成し、（ｍ−Ｍ）／２ビット長のデータを固定長復号して下位ビット列を生成する請求項１３記載の復号方法。
【請求項１５】
前記剰余分割工程では、下記（２）により前記結合剰余を分割する請求項１１記載の復号方法。
【数２】
0004888335.tif 000052
ここで、Ｑｉは結合剰余を示し、ｑ２ｉ，ｑ２ｉ＋１は連続する２つのビット列の剰余を示す。
【請求項１６】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号方法において、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割工程と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する復号方法。
【請求項１７】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号装置において、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号手段と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出手段と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割手段と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成手段とを有する復号装置。
【請求項１８】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号装置において、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号手段と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出手段と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割手段と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成手段とを有する復号装置。
【請求項１９】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する処理をコンピュータに実行させるためのプログラムであって、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割工程と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有するプログラム。
【請求項２０】
入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する処理をコンピュータに実行させるためのプログラムであって、
前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、
前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、
ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、
ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割工程と、
ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声、画像等のロスレス符号化で広く用いられているエントロピー符号化に関し、高い符号化効率を実現する符号化方法及び装置、並びにプログラムに関するものである。
【背景技術】
【０００２】
音声、画像等のロスレス符号化で広く用いられているエントロピー符号化、とりわけゴロム・ライス(Golomb-Rice)符号化は、シフト演算やビットマスク演算などの簡易な演算のみで実行できる点で、高速・簡便な手法である。この方法は、信号を個別にあるビット位置で分割し、上位ビットを可変長符号化し、下位ビットを固定長符号化するものである。また、可変長符号化には、ちょうど上位ビットの表す数値が符号化語長に比例するものが多く用いられている。
【０００３】
【特許文献１】特開２００６−１４０７７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述したゴロム・ライス符号化では、分割するビット位置が一般に信号の平均振幅等に応じて決定され、信号の分布に適合されるが、ビット位置が整数値であるため、実際の分布に対し上位ビット又は下位ビットに過剰なビット量が割り当てられ、結果として符号化効率の低下を招く恐れがあった。
【０００５】
本発明は、これらの問題点を鑑みてなされたものであり、符号化効率を向上させることができる符号化方法及び装置、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
また、本発明に係る符号化方法は、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化方法において、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する。
【０００７】
また、本発明に係る符号化方法は、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化方法において、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する。
【０００８】
また、本発明に係る符号化装置は、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化装置において、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出手段と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得手段と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化手段とを有する。
【０００９】
また、本発明に係る符号化装置は、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する符号化装置において、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出手段と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得手段と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化手段とを有する。
【００１０】
また、本発明に係るプログラムは、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する処理をコンピュータに実行させるためのプログラムであって、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続する２つのビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する。
【００１１】
また、本発明に係るプログラムは、入力信号のビット列を最下位ビットからｘビットの位置にて分割し、上位ビット列を可変長符号化し、下位ビット列を固定長符号化する処理をコンピュータに実行させるためのプログラムであって、前記入力信号の振幅値に基づいて符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）を算出し、２ｘに近接する基準整数Ｉを導出する導出工程と、前記ビット列が表す数値に対して前記基準整数Ｉで除算して求めた商と剰余とを取得する取得工程と、ｍが偶数の場合、商を可変長符号化し、剰余を固定長符号化し、符号語を生成し、ｍが奇数の場合、連続するｎ個のビット列の商をそれぞれ可変長符号化し、当該商に対応する剰余を結合して固定長符号化し、符号語を生成する符号化工程とを有する。
【００１２】
また、本発明に係る復号方法は、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号方法において、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割工程と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する。
【００１３】
また、本発明に係る復号方法は、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／ｎ、ｍは０以上の整数、ｎは３以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号方法において、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割工程と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する。
【００１４】
また、本発明に係る復号装置は、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号装置において、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号手段と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出手段と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割手段と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成手段とを有する。
【００１５】
また、本発明に係る復号装置は、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する復号装置において、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号手段と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出手段と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割手段と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成手段とを有する。
【００１６】
また、本発明に係るプログラムは、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する処理をコンピュータに実行させるためのプログラムであって、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続する２つのビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余を２つの剰余に分割する剰余分割工程と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する。
【００１７】
また、本発明に係るプログラムは、入力信号のビット列が該入力信号の振幅値に基づいて算出された符号化の基準となる最下位ビットからのビット位置ｘ（ｘ＝ｍ／２、ｍは０以上の整数）にて分割され、上位ビット列が可変長符号化され、下位ビット列が固定長符号化された符号語を復号する処理をコンピュータに実行させるためのプログラムであって、前記符号語を復号し、ｍが偶数の場合、前記上位ビット列と前記下位ビット列とを結合し、ビット列を生成し、前記符号語を復号し、ｍが奇数の場合、前記符号語から連続するｎ個（ｎは３以上の整数）のビット列がそれぞれ表す各数値に対して基準整数Ｉで除算された商と、当該商に対応する剰余が結合された結合剰余とを復号する復号工程と、ｍが奇数の場合、２ｘに近接する前記基準整数Ｉを導出する導出工程と、ｍが奇数の場合、前記基準整数Ｉに基づいて前記結合剰余をｎ個の剰余に分割する剰余分割工程と、ｍが奇数の場合、前記商に前記基準整数Ｉを乗算し、前記商に対応する剰余を加算してビット列を生成する生成工程とを有する。
【発明の効果】
【００１８】
本発明によれば、ビット列の最下位ビットからのビット位置ｘを仮想的にｍ／ｎとして細分化することにより、信号の分布に対し上位ビット又は下位ビットに適切なビット量を割り当てることができ、符号化効率を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の具体的な実施の形態について、図面を参照しながら詳細に説明する。本発明は、主に音声、画像などのデジタル信号をロスレス符号化する際に使用することを意図しており、最下位ビットからのビット位置ｘを仮想的にｍ／ｎ（ｍは０以上の整数、ｎは２以上の整数）として細分化することにより、信号の分布に対し上位ビット又は下位ビットに適切なビット量を割り当てるものである。ここでは、まず、ｎ＝２の場合における音声信号の符号化及び復号について説明し、次いで、ｎを２以上の整数とした場合について説明する。
【００２０】
〔符号化処理〕
図1は、エンコーダ１０（符号化器）の構成を示すブロック図である。このエンコーダ１０は、音声信号ｘ［ｉ］が入力される入力端子１１と、短期予測係数αｐに基づいて近接サンプルから現在の信号を予測する短期予測部１２と、短期予測係数αｐを導出する短期予測係数導出部１３と、入力端子１１からの音声信号ｘ［ｉ］と短期予測部１２からの出力信号とから予測残差信号ｒ［ｉ］を算出する加算器１４と、ビット位置ｍ／２に基づいて予測残差信号ｒ［ｉ］を符号語ＩＹに変換するエントロピー符号化部１５と、予測残差信号ｒ［ｉ］を符号化する最下位ビットからのビット位置ｍ／２を導出する基準値導出部１６と、短期予測係数αｐを符号語Ｉαに変換する短期予測係数符号化部１７と、符号語ＩＹ、基準ビット位置ｍ及び符号語Ｉαを多重化するマルチプレクサ１８とを備えている。
【００２１】
入力端子１１には、所定のフレーム長Ｎ毎に分割された音声信号が入力される。音声信号は、一般に近接サンプル間の相関が高い信号であり、この相関を除去する短期予測部１２及び加算器１４で短期予測処理が実行されることにより、予測残差信号ｒ［ｉ］が得られる。
【００２２】
【数１】
0004888335.tif 000002
【００２３】
ここで、ｘ［ｉ］は音声信号、ｒ［ｉ］は予測残差信号、αｐは短期予測係数、及びPは短期予測係数の次数を示す。
【００２４】
短期予測係数αｐは、短期予測係数導出部１３にて音声信号の短時間相関を除去する様に求められ、その計算には、レビンソン・ダービンアルゴリズムなどが使用される。短期予測係数αｐは、短期予測係数符号化部１７にて符合語Ｉαに変換されマルチプレクサ１８に送られる。
【００２５】
基準値導出部１６は、予測残差信号ｒ［ｉ］を符号化の基準となる最下位ビットからのビット位置ｍ／２を算出する。この計算には、例えば（２）式を用いることができる。
【００２６】
【数２】
0004888335.tif 000003
【００２７】
（２）式において、左辺は予測残差信号ｒ［ｉ］の平均振幅を表す。基準値導出部１６は、この不等式を成立させる最小の整数mを決定し、エントロピー符号化部１５に送る。また、ビット位置ｍ／２は、マルチプレクサ１８に送られる。なお、mの導出は別の方法を用いてもよい。
【００２８】
エントロピー符号化部１５は、後述のようにビット位置ｍ／２に基づいて予測残差信号ｒ［ｉ］を符号語ＩＹに変換する。符号語ＩＹはマルチプレクサ１８に転送される。
【００２９】
マルチプレクサ１８は、各符号語の多重化処理を行い、多重化データを出力する。
【００３０】
次に、エントロピー符号化部１５について、図２を用いて詳細に説明する。図２はエントロピー符号化部１５の構成を示すブロック図である。
【００３１】
エントロピー符号化部１５は、予測残差信号ｒ［ｉ］を正負号なし信号ｙ［ｉ］に変換する正負号除去部２１と、ｍのＬＳＢ（Least Significant Bit）を抽出するＬＳＢ抽出部２２と、ｍのＬＳＢに応じて正負号なし信号ｙ［ｉ］の出力先を切り替えるスイッチ２３と、正負号なし信号ｙ［ｉ］をビット位置ｍ／２に基づいてシフト演算し、上位ビットと下位ビットに分割する信号分割部２４と、正負号なし信号ｙ［ｉ］を２ｍ／２に近接した整数Ｉで除算する信号除算部２５と、２ｍ／２に近接した整数Ｉを導出する基準整数導出部２６と、信号分割部２４における商ｐｉ、剰余ｑｉ、信号除算部２５における商ｐ２ｉ，ｐ２ｉ＋１、及び剰余結合部２８における剰余ｑ２ｉ，ｑ２ｉ＋１の結合剰余Ｑｉを符号語ＩＹに変換する可変固定長符号化部２７と、信号除算部２５で剰余ｑ２ｉ，ｑ２ｉ＋１を結合剰余Ｑｉに変換する剰余結合部２８とを備えている。
【００３２】
正負号除去部２１は、予測残差信号ｒ［ｉ］を（３）式により正負号なし信号ｙ［ｉ］に変換する。
【００３３】
【数３】
0004888335.tif 000004
【００３４】
ＬＳＢ抽出部２２は、ｍの値が偶数であるか奇数であるかを、最下位ビット（ＬＳＢ）を検査して抽出する。なお、ｍが０なる時偶数として取り扱う（以下、同様）。ｍが偶数の場合、正負号なし信号ｙ［ｉ］の出力先が信号分割部２４となるようにスイッチ２３を切り替える。また、ｍが奇数の場合、正負号なし信号ｙ［ｉ］の出力先が信号除算部２５となるようにスイッチ２３を切り替える。
【００３５】
（１）ｍが偶数の場合
ｍが偶数の場合、すなわちビット位置ｍ／２が整数の場合、正負号なし信号ｙ［ｉ］は信号分割部２４に入力される。ここで、（２）式の右辺は２の整数乗となるため、ｍ／２＝ｍ’とし、正負号なし信号ｙ［ｉ］の値を２ｍ’で除算し、商ｐｉと剰余ｑｉを求める。実際には、正負号なし信号ｙ［ｉ］をｍ’ビット右シフトして商ｐｉを求め、下位ｍ’ビットを取り出して剰余ｑｉを得る、信号の分割が実行される。信号分割部２４で得られた商ｐｉと剰余ｑｉは、可変固定長符号化部２７に出力される。
【００３６】
【数４】
0004888335.tif 000005
【００３７】
可変固定長符号化部２７は、商ｐｉを可変長符号化し、剰余ｑｉをｍ’ビットで固定長符号化し、符号語ＩＹに変換する。
【００３８】
このようにｍが偶数の場合には、各正負号なし信号ｙ[０・・・N−1]について商ｐｉと剰余ｑｉを求め、符号語ＩＹに変換する。
【００３９】
（２）mが奇数の場合
ｍが奇数の場合、すなわちビット位置ｍ／２が小数の場合、正負号なし信号ｙ［ｉ］は信号除算部２５に入力される。基準整数導出部２６は、（２）式の右辺において、√２のｍ乗を超えない整数Ｉを導出する。
【００４０】
【数５】
0004888335.tif 000006
【００４１】
ただし、整数Ｉは√2のm乗に近接した値としてもよい。
【００４２】
信号除算部２５は、連続する正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１)を整数Ｉで除算して、商ｐ２ｉ、ｐ２ｉ＋１と剰余ｑ２ｉ、ｑ２ｉ＋１を（６）式より得る。なお、（６）式の上段と下段で同一の整数Ｉを使用しているが、必ずしも同一である必要はない。
【００４３】
【数６】
0004888335.tif 000007
【００４４】
（６）式で求めた商ｐ２ｉ、ｐ２ｉ＋１については、可変固定長符号化部２７に出力され、剰余ｑ２ｉ、ｑ２ｉ＋１は、剰余結合部２８に出力される。可変固定長符号化部２７に出力された商ｐ２ｉ、ｐ２ｉ＋１は、ｍが偶数の場合と同様に可変長符号化される。
【００４５】
剰余結合部２８は、剰余ｑ２ｉ、ｑ２ｉ＋１の２個の値を組み合わせて結合剰余Ｑｉに変換する。剰余の性質上、剰余ｑ２ｉ、ｑ２ｉ＋１は整数Ｉを超えない。
【００４６】
【数７】
0004888335.tif 000008
【００４７】
（７）式から、（８）式の様に剰余ｑ２ｉ、ｑ２ｉ＋１を結合剰余Ｑｉに変換する。
【００４８】
【数８】
0004888335.tif 000009
【００４９】
これは、剰余ｑ２ｉ、ｑ２ｉ＋１を組み合わせた結合剰余Ｑｉがｍビットに格納できることを意味する。この結合剰余Ｑｉは可変固定長符号化部２７に出力される。
【００５０】
可変固定長符号化部２７は、商ｐ２ｉ、ｐ２ｉ＋１を可変長符号化し、結合剰余Ｑｉをｍビットで固定長符号化し、符号語ＩＹを生成して出力する。
【００５１】
このようにビット位置ｍ／２が小数の場合には、連続する正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１)を整数Ｉで除算して、商ｐ２ｉ、ｐ２ｉ＋１と剰余ｑ２ｉ、ｑ２ｉ＋１を（６）式より得、剰余ｑ２ｉ、ｑ２ｉ＋１に関しては、２個の値を組み合わせて結合剰余Ｑｉに変換して、商ｐ２ｉ、ｐ２ｉ＋１と結合剰余Ｑｉを符号語ＩＹに変換する。
【００５２】
続いて、エントロピー符号化部１５の処理について、図３に示すフローチャートを用いて説明する。ステップＳ３１において、正負号除去部２１は、上記（３）式により予測残差信号ｒ［ｉ］を正負号なし信号ｙ［ｉ］に変換する。
【００５３】
ステップ３２において、ＬＳＢ抽出部２２は、ｍの値が偶数であるか、奇数であるかをｍの値を示す最下位ビット（ＬＳＢ）より判別する。ｍが偶数の場合、すなわち０の場合、ステップＳ３３に進み、ＬＳＢ抽出部２２は、正負号なし信号ｙ［ｉ］の出力先が信号分割部２４となるようにスイッチ２３を切り替える。また、ｍが奇数の場合、すなわち１の場合、ステップＳ３５に進み、ＬＳＢ抽出部２２は、正負号なし信号ｙ［ｉ］の出力先が信号除算部２５となるようにスイッチ２３を切り替える。
【００５４】
ｍが偶数の場合、ステップＳ３３において、信号分割部２４は、ビット位置をｍ／２＝ｍ’とし、正負号なし信号ｙ［ｉ］の値を２ｍ’で除算し、商ｐｉ、剰余ｑｉを求め（ステップＳ３４）、上位・下位ビットに分割する。商ｐｉ、剰余ｑｉは、可変固定長符号化部２７に出力される。
【００５５】
ステップＳ３８において、可変固定長符号化部２７は、商ｐｉを可変長符号化し、剰余ｑｉをｍ’ビットで固定長符号化し、符号語ＩＹに変換する。
【００５６】
また、ｍが奇数の場合、ステップＳ３５において、基準整数導出部２６は、上記（２）式の右辺において、√２のｍ乗を超えない整数Ｉを導出する。
【００５７】
ステップＳ３６において、信号除算部２５は、連続する正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１)を整数Ｉで除算して、商ｐ２ｉ、ｐ２ｉ＋１と剰余ｑ２ｉ、ｑ２ｉ＋１を上記（６）式より得る。
【００５８】
ステップＳ３７において、剰余結合部２８は、剰余ｑ２ｉ、ｑ２ｉ＋１の２個の値を組み合わせて結合剰余Ｑｉに変換する。
【００５９】
ステップＳ３８において、可変固定長符号化部２７は、商ｐ２ｉ、ｐ２ｉ＋１を可変長符号化し、結合剰余Ｑｉをｍビットで固定長符号化し、符号語ＩＹを生成して出力する。
【００６０】
このようにｍが偶数の場合、ビット位置をｍ／２＝ｍ’とし、正負号なし信号ｙ［ｉ］の値を２ｍ’で除算し、商ｐｉ、剰余ｑｉを求め、ｍが奇数の場合、連続する正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１)を２ｍ／２に近接する整数Ｉで除算し、剰余ｑ２ｉ、ｑ２ｉ＋１の２個の値を組み合わせて結合剰余Ｑｉに変換することにより、ビット列を分割するビット位置を１／２単位とすることができ、符号化効率を向上させることができる。
【００６１】
なお、信号除算部２５において、上記（６）式を用いて除算することとしたが、上記（５）式に示す整数Ｉの逆数を予めテーブル化しておいてもよい。これにより、演算量を減少させることができる。
【００６２】
具体的に説明すると、上記（５）式の逆数は、下記（９）式で表され、この（９）式に対応する値Ｉ’、Ｅをテーブルとして整数化すればよい。
【００６３】
【数９】
0004888335.tif 000010
【００６４】
また、（９）式を基に（６）式を変形すると、（１０）式が得られる。
【００６５】
【数１０】
0004888335.tif 000011
【００６６】
このように（９）式に対応する値Ｉ’、Ｅをテーブルとして整数化すれば、除算及び剰余の計算をせずに値を求めることができる。一般に除算が必要になると演算量が大きくなるが、上述のように整数Ｉの逆数に対応する整数を予め記憶しておくことで、乗算を使用することができ、演算量を抑制することができる。
【００６７】
また、上記（１０）式を補正することにより、（９）式の整数化による影響を防ぐことができる。（７）式のように剰余ｑ２ｉ、ｑ２ｉ＋１は０以上整数Ｉ未満であるが、（１０）式の剰余ｑ２ｉ、ｑ２ｉ＋１の演算では、０未満になるか、整数Ｉ以上になる可能性がある。その際は下記（１１）式の補正演算を行う。
【００６８】
【数１１】
0004888335.tif 000012
【００６９】
ここで、２ｉ、２ｉ+１とも同一の処理が行われるため、２ｉ、２ｉ+１をiとした。補正演算は、剰余ｑｉが０未満の場合、商ｐｉからの１の減算に対して剰余ｑｉに整数Ｉを加算し、剰余ｑｉが整数Ｉ以上の場合、商ｐｉへの１の加算に対して剰余ｑｉから整数Ｉを減算する。これにより、（７）式のように剰余ｑ２ｉ、ｑ２ｉ＋１は０以上整数Ｉ未満とすることができ、符号化効率を向上させることができる。
【００７０】
さらに、ｍに閾値Ｍを設定し、ｍが閾値Ｍより大なる場合、すなわち、最下位ビットからのビット数ｘ（ｘ＝ｍ／２）が少数かつ所定の閾値Ｘ（Ｘ＝Ｍ／２）よりも大きい場合について、予め正負号なし信号ｙ［ｉ］を下位（ｍ−Ｍ）／２ビットｔｉとそれより上位ビットｙ’［ｉ］に分割するようにしてもよい。
【００７１】
【数１２】
0004888335.tif 000013
【００７２】
こうして得られた下位ビットｔｉは（ｍ−Ｍ）／２ビット長のデータとしてマルチプレクサ１８に送られ、上位ビットｙ’［ｉ］は、（６）式又は（１０）式でｍ＝Ｍとして変換処理がなされるため、必要以上に整数Ｉの逆数に対応する値のテーブルを装備しなくても済む。
【００７３】
〔復号処理〕
以下、上述した符号化データの復号処理について説明する。図４は、デコーダ（復号化器）の構成を示すブロック図である。このデコーダ４０は、多重化データを逆多重化し、符号語ＩＹ、基準ビット位置ｍ／２及び符号語Ｉαを復号するデマルチプレクサ４１と、基準ビット位置ｍ／２に基づいて符号語ＩＹを予測残差信号ｒ［ｉ］に変換するエントロピー復号化部４２と、符号語Ｉαを短期予測係数αｐに変換する短期予測係数復合化部４３と、予測残差信号ｒ［ｉ］とサンプル間の相関が合成された過去の音声信号とから音声信号ｘ［ｉ］を算出する加算器４４と、短期予測係数αｐに基づいて近接サンプル間の相関が合成された音声信号を生成する短期合成部４５とを備えている。
【００７４】
デマルチプレクサ４１に入力された多重化データは逆多重化が施され、個々の符号語に復号される。デマルチプレクサ４１より復号された符号語ＩＹ及び復号されたビット位置ｍ／２は、復号残差信号ｒ［ｉ］を復号するエントロピー復号化部４２に入力される。
【００７５】
短期予測係数の符号語Ｉαは、短期予測係数復号化部４３で復号されて短期予測係数αｐが生成され短期合成部４５に送られる。加算器４４及び短期合成部４５において短期予測係数αｐ及び過去の復号信号から音声信号ｘ［ｉ］が（１３）式より生成される。
【００７６】
【数１３】
0004888335.tif 000014
【００７７】
以上のようにして、ロスレスに信号を復号することが可能になる。
【００７８】
次に、エントロピー復号化部４２について、図５を用いて詳細に説明する。図５はエントロピー復号化部４２の構成を示すブロック図である。
【００７９】
エントロピー復号化部４２は、ｍが偶数か奇数かを判別し、符号語ＩＹを商ｐｉ、剰余ｑｉ、又は商ｐ２ｉ，ｐ２ｉ＋１、結合剰余Ｑｉに変換する可変固定長復号化部５１と、商ｐｉ、剰余ｑｉをｍに基づいて上位ビットと下位ビットを結合し、正負号なし信号ｙ［ｉ］を生成する信号結合部５２と、√2のｍ乗に近接した整数Ｉを導出する基準整数導出部５３と、結合剰余Ｑｉから剰余ｑ２ｉ，ｑ２ｉ＋１を復号する剰余分割部５４と、商ｐ２ｉ，ｐ２ｉ＋１、剰余ｑ２ｉ，ｑ２ｉ＋１及びｍから正負なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］を復号する信号乗算部５５と、ｍの最下位ビット(ＬＳＢ)を抽出するＬＳＢ抽出部５６と、ｍのＬＳＢに応じて正負号なし信号ｙ［ｉ］の出力元を切り替えるスイッチ５７と、正負号なし信号ｙ［ｉ］を復号残差信号ｒ［ｉ］に変換する正負号復元部５８とを備えている。
【００８０】
（１）ｍが偶数の場合
ｍが偶数の場合、すなわち、ビット位置ｍ／２が整数の場合、ｍ／２＝ｍ’とし、可変固定長復合化部５１は、入力された符号語ＩＹを商ｐｉ、剰余ｑｉに変換する。ｍ’は整数であるため、信号結合部５２は、１サンプルごとにシフト演算し、正負号なし信号ｙ［ｉ］を復号する。
【００８１】
【数１４】
0004888335.tif 000015
【００８２】
（２）ｍが奇数の場合
ビット位置ｍが奇数の場合、すなわち、ビット位置ｍ／２が小数の場合、可変固定長復号化部５１は、入力された符号語ＩＹを商ｐ２ｉ，ｐ２ｉ＋１、結合剰余Ｑｉに変換する。ｍ／２は小数であるため、2サンプルまとめて正負なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１）を復号する。
【００８３】
基準整数導出部５３は、√2のｍ乗に近接した整数Ｉを（１５）式より求める。なお、整数Ｉは、エンコーダ１０と同一の方法で求めれば、他の方法を用いても構わない。
【００８４】
【数１５】
0004888335.tif 000016
【００８５】
剰余分割部５４は、下記（１６）式を用いて、結合剰余Ｑｉから剰余ｑ２ｉ，ｑ２ｉ＋１を復号する。
【００８６】
【数１６】
0004888335.tif 000017
【００８７】
信号乗算部５５は、商ｐ２ｉ，ｐ２ｉ＋１、剰余ｑ２ｉ，ｑ２ｉ＋１及び整数Ｉから（１７）式より正負なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１）を復号する。
【００８８】
【数１７】
0004888335.tif 000018
【００８９】
ＬＳＢ抽出部５６は、ｍの最下位ビット(ＬＳＢ)を抽出することにより、偶数か奇数かを判別する。そして、ＬＳＢ抽出部５６は、ｍが偶数の場合、正負号なし信号ｙ［ｉ］の出力元が信号結合部５２となるようにスイッチ５７を上方に接続し、ｍが奇数の場合、正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１）の出力元が信号乗算部５５となるように下方に接続する。
【００９０】
正負号復元部５８は、（１８）式より正負号なし信号ｙ［ｉ］を復号残差信号ｒ［ｉ］に変換する。
【００９１】
【数１８】
0004888335.tif 000019
【００９２】
すなわち、正負号なし信号ｙ［ｉ］の最下位ビットが１の場合に右１ビットシフト後ビット反転がなされ、最下位ビットが０の場合に右１ビットシフトのみ行われ正負号が復元される。
【００９３】
続いて、エントロピー復号化部４２の処理について、図６に示すフローチャートを用いて説明する。ステップＳ６１において、可変固定長復合化部５１は、符号語ＩＹを復号し、ｍが偶数か奇数かを判別する（ステップＳ６２）。
【００９４】
ｍが偶数の場合、ステップＳ６３に進み、ビット位置をｍ／２＝ｍ’とし、信号結合部５２は、上位ビットと下位ビットとを結合し、正負号なし信号ｙ［ｉ］を復号する（ステップＳ６４）。
【００９５】
ｍが奇数の場合、ステップＳ６５に進み、基準整数導出部５３は、√２のｍ乗に近接した整数Ｉを導出する。ステップＳ６６において、剰余分割部５４は、整数Ｉを用いて、（１６）式より結合剰余Ｑｉから剰余ｑ２ｉ，ｑ２ｉ＋１を復号する。ステップＳ６７において、商ｐ２ｉ，ｐ２ｉ＋１、剰余ｑ２ｉ，ｑ２ｉ＋１及び整数Ｉから（１７）式より正負なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１）を復号する。
【００９６】
ステップＳ６８において、正負号復元部５８は、（１８）式より正負号なし信号ｙ［ｉ］を復号残差信号ｒ［ｉ］に変換する。
【００９７】
このようにｍが偶数の場合、ビット位置をｍ／２＝ｍ’とし、上位ビットと下位ビットとを結合し、正負号なし信号ｙ［ｉ］を復号し、ｍが奇数の場合、整数Ｉを用いて、結合剰余Ｑｉから剰余ｑ２ｉ，ｑ２ｉ＋１を復号し、商ｐ２ｉ，ｐ２ｉ＋１、剰余ｑ２ｉ，ｑ２ｉ＋１及び整数Ｉから正負なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］(ｉ＝０・・・Ｎ／２−１）を復号することにより、ビット位置を１／２単位とした復号を行うことができる。
【００９８】
なお、剰余分割部５４において除算があるが、（１９）式のように整数Ｉの逆数に相当する値Ｉ’を予めテーブル化しておくことにより乗算を使用することも可能である。
【００９９】
【数１９】
0004888335.tif 000020
【０１００】
また、（１９）式より（１６）式の１番目の式は（２０）式のように変換可能である。
【０１０１】
【数２０】
0004888335.tif 000021
【０１０２】
また、（１９）式で示す値Ｉ’は、整数化されているため、誤差が生じた場合、下記（２１）式に示すような補正を行うことが好ましい。
【０１０３】
【数２１】
0004888335.tif 000022
【０１０４】
また、エンコーダにてｍに閾値Ｍを設定し、正負号なし信号ｙ［ｉ］を下位（ｍ−Ｍ）／２ビットｔｉとそれより上位ビットｙ’［ｉ］に分割した場合、ｍが所定の閾値Ｍより大であるなら、デマルチプレクサ４１より取得した符号語よりｔｉを復号する。つまり、最下位ビットからのビット数ｘが小数かつ所定の閾値Ｘ（Ｘ＝Ｍ／２、Ｍは正の奇数）よりも大きい場合、ビット数をｘ＝Ｘとして上位ビット列ｙ’［ｉ］を生成し、（ｍ−Ｍ）／２ビット長のデータを固定長復号して下位ビット列ｔｉを生成する。具体的には、上記（１５）式〜（１７）式におけるｍをＭに置き換え求めた結果をｙ’［ｉ］とした上で（２２）式を用いてｙ［ｉ］を復号する。
【０１０５】
【数２２】
0004888335.tif 000023
【０１０６】
〔一般化した実施の形態〕
上述の符号化方法では、最下位ビットからのビット位置を仮想的にｍ／２としたｎ＝２の場合について説明したが、ここでは、ｎが２を越える一般化した符号化方法について説明する。この場合、ｍを次式の通り決定する。
【０１０７】
【数２３】
0004888335.tif 000024
【０１０８】
そして、ｍ／ｎが整数である場合は従来通りのゴロム・ライス符号化を行うが、ｍ／ｎが小数である場合は整数Ｉを以下の通り導入する。
【０１０９】
【数２４】
0004888335.tif 000025
【０１１０】
ここで、正負号なし信号ｙ［ｎ・ｉ］，ｙ［ｎ・ｉ＋１］，．．．，ｙ［ｎ・ｉ＋ｎ−１］を以下の通り分解する。
【０１１１】
【数２５】
0004888335.tif 000026
【０１１２】
また、結合剰余Ｑｉを剰余ｑｎ・ｉ＋ｋより決定する。
【０１１３】
【数２６】
0004888335.tif 000027
【０１１４】
これは、ｋ＝０の時は剰余ｑｎ・ｉ＋０を結合剰余Ｑｉ，０に代入し、ｋ＝１より順に結合剰余Ｑｉ，ｋ−１をＩ倍しながら剰余ｑｎ・ｉ＋ｋを加算している。
【０１１５】
一方、復号化においては、逆に結合剰余Ｑｉから剰余ｑｎ・ｉ＋ｋを次式より求める。
【０１１６】
【数２７】
0004888335.tif 000028
【０１１７】
このように最下位ビットからのビット位置を仮想的にｍ／ｎとして細分化することにより、信号の分布に対し上位ビット又は下位ビットに適切なビット量が割り当てることができ、符号化効率を向上させることができる。
【０１１８】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
【０１１９】
〔符号化の具体例〕
次に、上述したエントロピー符号化法について具体例を挙げて説明する。ここで、基準値導出部１６において入力信号ｒ［０，．．．，Ｎ−１］より求めたｍ＝８の場合と、ｍ＝９の場合について、ｒ［２ｉ］＝−１９、ｒ［２ｉ＋１］＝７を符号化することとする。
【０１２０】
また、（４）式や（６）式における商ｐｉは、可変固定長符号化部２７において、表１に示す符号化表のように可変長符号化されるものとする。
【０１２１】
【表１】
0004888335.tif 000029
【０１２２】
予測残差信号ｒ［２ｉ］，ｒ［２ｉ＋１］は、（３）式より正負号なし信号ｙ［ｉ］に変換される。
【０１２３】
【数２８】
0004888335.tif 000030
【０１２４】
ここで、ｍ＝８であるとき、ｍ’＝ｍ／２＝４であるため、ｙ［ｉ］は（４）式より以下の通り分割される。
【０１２５】
【数２９】
0004888335.tif 000031
【０１２６】
したがって、これら２サンプルに対する符号語ＩＹは、表１より例えば以下のようになり、ｒ［２ｉ］を７ビット、ｒ［２ｉ＋１］を５ビットの合計１２ビットで表現することになる。
【０１２７】
【数３０】
0004888335.tif 000032
【０１２８】
また、ｍ＝９であるとき、（５）式より整数Ｉ＝２２となるため、ｙ［２ｉ］、ｙ［２ｉ＋１］を（６）式より除算する。
【０１２９】
【数３１】
0004888335.tif 000033
【０１３０】
また、（８）式より結合剰余Ｑｉを求める。
【０１３１】
【数３２】
0004888335.tif 000034
【０１３２】
したがって、これら2サンプルに対する符号語ＩＹは、表１より例えば以下のようになり、ｒ［２ｉ］及びｒ［２ｉ＋１］を合計１２ビットで表現することになる。
【０１３３】
【数３３】
0004888335.tif 000035
【０１３４】
〔復号化の具体例〕
次に、上述した２サンプルの符号語を復号化する手順を説明する。表１の商ｐｉの項と符号語ＩＹの項を見ると符号語の１が現れるまでの０の数が商ｐｉの値と一致しており、これを使用して符号語より商ｐｉを求める。
【０１３５】
ｍ＝８であるとき、商ｐ２ｉの符号語ＩＹは、最初に１が現れるまで２ビット０があるため、商ｐ２ｉ＝２が求まり、次の4ビットにより剰余ｑ２ｉ＝５が求まる。同様に、商ｐ２ｉ＋１の符号語ＩＹは、直後に１が現れるため、商ｐ２ｉ＋１＝０が求まり、次の４ビットにより剰余ｑ２ｉ＋１＝１４が求まる。そして、上記（１７）式よりｙ［２ｉ］、ｙ［２ｉ＋１］が復号される。
【０１３６】
【数３４】
0004888335.tif 000036
【０１３７】
また、ｍ＝９であるとき、符号語ＩＹの、最初に１が現れるまで１ビット０があるため、商ｐ２ｉ＝１が求まり、直後に１が現れるため、商ｐ２ｉ＋１＝０が求まり、次の４ビットによりＱｉ＝３２３が求まる。（１５）式よりＩ＝２２であるため、（１６）式より剰余ｑ２ｉ、ｑ２ｉ＋１を復号する。
【０１３８】
【数３５】
0004888335.tif 000037
【０１３９】
そして、（１７）式よりｙ［ｉ］を復号する。
【０１４０】
【数３６】
0004888335.tif 000038
【０１４１】
また、（１８）式より復号残差信号ｒ［２ｉ］＝−１９、ｒ［２ｉ＋１］＝７が復号される。
【０１４２】
〔ｍに閾値Ｍを設定した場合の処理の具体例〕
閾値Ｍ＝２７である場合において、ｍ＝２９である場合の符号化について説明する。ここで、予測残差信号ｒ［２・ｉ］＝７９６８０、ｒ［２・ｉ＋１］＝−１３７７３５について、正負号なし信号を（３）式より求めると、ｙ［２・ｉ］＝１５９３６０、ｙ［２・ｉ＋１］＝２７５４６９となる。
【０１４３】
整数Ｉは、（５）式より求められる。
【０１４４】
【数３７】
0004888335.tif 000039
【０１４５】
また、上記（１２）式により、上位ビットと下位ビットに分割する。ここで、下位ビットは（ｍ−Ｍ）／２＝１ビットである。
【０１４６】
【数３８】
0004888335.tif 000040
【０１４７】
（６）式により、商ｐ２ｉ，ｐ２ｉ＋１と剰余ｑ２ｉ，ｑ２ｉ＋１を計算する。
【０１４８】
【数３９】
0004888335.tif 000041
【０１４９】
結合剰余Ｑｉは、（８）式より２７ビットのデータとして得られる。
【０１５０】
【数４０】
0004888335.tif 000042
【０１５１】
このようにして、以下の５変数が求められる。
【０１５２】
【数４１】
0004888335.tif 000043
【０１５３】
続いて、この５変数の復号化処理について説明する。先ず、ビットストリームより取得したｍ（＝２９＞Ｍ）より整数Ｉを求める。
【０１５４】
【数４２】
0004888335.tif 000044
【０１５５】
（１６）式より結合剰余Ｑｉから剰余ｑ２ｉ，ｑ２ｉ＋１を求める。
【０１５６】
【数４３】
0004888335.tif 000045
【０１５７】
（１７）式より正負号なし信号ｙ’［２ｉ］、ｙ’［２ｉ＋１］を求める。
【０１５８】
【数４４】
0004888335.tif 000046
【０１５９】
（２２）式より下位ビットｔ２ｉ，ｔ２ｉ＋１（ここでは１ビット）を用いて正負号なし信号ｙ［２ｉ］、ｙ［２ｉ＋１］を復号する。
【０１６０】
【数４５】
0004888335.tif 000047
【０１６１】
（１８）式より正負号を復号し、ｒ［２・ｉ］＝７９６８０、ｒ［２・ｉ＋１］＝−１３７７３５を得る。
【０１６２】
〔本発明の適用例１〕
本発明は、４４ｋＨｚ、１６ｂｉｔ又は９６ｋＨｚ、２４ｂｉｔのステレオ音源のロスレス圧縮技術へ適用可能である。ここでは、従来のゴロム・ライス符号化を適用した場合と本発明を適用した場合の圧縮効率について検証した。
【０１６３】
表２は、１０〜３０秒程度の４４ｋＨｚ、１６ｂｉｔのステレオ音源を使用して圧縮効率を測定した結果を示す。圧縮効率(ratio)は次式により定義した。
【０１６４】
【数４６】
0004888335.tif 000048
【０１６５】
ここで、original_file_sizeは原音のファイルサイズ、compressed_file_sizeは圧縮したファイルサイズであり、ratioが大きいほど圧縮効率が高いことを示す。
【０１６６】
【表２】
0004888335.tif 000049
【０１６７】
表２に示すように、本発明を適用することにより、圧縮効率を０．１％以上改善することができる。なお、本発明の適用によるデコーダの演算量の増加については、ｆｓ＝４４．１ｋＨｚで０．３〜０．５ＭＩＰＳ、ｆｓ＝９６ｋＨｚで０．７〜１．０ＭＩＰＳ程度で、微小である。
【０１６８】
〔本発明の適用例２〕
次に、本発明を適用した際の効果の一例について検証する。ここでは、４４．１ｋＨｚ、１６ビットのＮ＝２０４８サンプルからなる対象信号のあるフレームについて、（２）式から求められたｍが、従来のゴロム・ライス符号化の値では２４（ｍ／２＝１２）、提案方式では２３（ｍ／２＝１１．５）である場合の可変長符号化及び固定長符号化について検証する。
【０１６９】
表３は、可変長符号化を行う２０４８サンプル分の商ｐｉについて求めた度数分布を示す。ここで、ゴロム・ライス符号化と同様に商ｐｉの符号語のビット長はｐｉ＋１ビットになるものとする。
【０１７０】
【表３】
0004888335.tif 000050
【０１７１】
これに固定長符号化のビット数を加算すると、従来方式ではｍ／２＝１２なので、３３１１＋２０４８・１２＝２７８８７ビットとなる。一方、提案方式ではｍ／２＝１１．５なので、４０６１＋２０４８・１１．５＝２７６１３ビットとなり、このフレームでは２７４ビット（０．８４％）節約することができる。
【図面の簡単な説明】
【０１７２】
【図１】エンコーダ（符号化器）の構成を示すブロック図である。
【図２】エントロピー符号化部の構成を示すブロック図である。
【図３】エントロピー符号化部の処理を示すフローチャートである。
【図４】デコーダ（復号化器）の構成を示すブロック図である。
【図５】エントロピー復号化部の構成を示すブロック図である。
【図６】エントロピー復号化部の処理を示すフローチャートである。
【符号の説明】
【０１７３】
１０  エンコーダ、１１  入力端子、１２  短期予測部、１３  短期予測係数導出部、１４  加算器、１５  エントロピー符号化部、１６  基準値導出部、１７  短期予測係数符号化部、１８  マルチプレクサ、２１  正負号除去部、２２  ＬＳＢ抽出部、２３  スイッチ、２４  信号分割部、２５  信号除算部、２６  基準整数導出部、２７  可変固定長符号化部、２８  剰余結合部、４１  デマルチプレクサ、４２  エントロピー復号化部、４３  短期予測係数復号化部、４４  加算器、４５  短期合成部、５１  可変固定長復号化部、５２  信号結合部、５３  基準整数導出部、５４  剰余分割部、５５  信号乗算部、５６  ＬＳＢ抽出部、５７  スイッチ、５８  正負号復元部
【図１】
0004888335.tif 000053
【図２】
0004888335.tif 000054
【図３】
0004888335.tif 000055
【図４】
0004888335.tif 000056
【図５】
0004888335.tif 000057
【図６】
0004888335.tif 000058