(57)【要約】浮動小数点形式の信号サンプル系列Ｘのフレーム毎の平均振幅を調べ、これが所定値より大きい場合は、系列Ｘを整数化部１２で切り捨てにより１６ビット整数形式の信号サンプル系列Ｙに変換し、系列Ｙを圧縮部１３で符号化して符号列Ｃａを出力し、差分生成部１４で系列Ｙを浮動小数点形式に変換した系列Ｙ’と信号サンプル系列Ｘの差分に相当する差分信号Ｚを生成し、系列Ｙの各サンプルの最上位の１より下位のビット数ｎで決まる差分信号Ｚの仮数部Ｍの下位２３−ｎビットを取出し圧縮部１７でエントロピー符号化して符号列Ｃｂを出力する。平均振幅が所定値より大きくなければ、系列Ｘを圧縮部１２１で直接、可逆符号化する。いずれの符号化を選択したかを表わす符号Ｃｄを出力する。
2005025072.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）浮動小数点形式の第１信号サンプル系列を整数形式の第２信号サンプル系列に変換するステップと、
（ｂ）上記整数形式の第２信号サンプル系列を可逆圧縮して第１符号列を生成するステップと、
（ｃ）上記整数形式の第２信号サンプル系列と上記浮動小数点形式の第１信号サンプル系列との差分と対応する浮動小数点形式の差分信号を生成するステップと、
（ｄ）上記浮動小数点形式の差分信号のサンプルにおける、上記整数形式の第２信号サンプル系列の対応する各サンプルの最上位の１のビット位置により決まる非ゼロになり得る桁のビット列を符号化する第１符号化処理と、上記差分信号を直接符号化する第２符号化処理とでいずれが高い圧縮効率であるかを判定するステップと、
（ｅ）上記判定が上記第１符号化処理であれば、上記差分信号を上記第１符号化処理により符号化して第２符号列を生成し、上記判定が上記第２符号化処理であれば、上記差分信号を上記第２符号化処理により符号化して第２符号列を生成するステップ、
とを含む浮動小数点信号可逆符号化方法。
【請求項２】
（ａ）浮動小数点形式の第１信号サンプル系列をフレーム毎に直接可逆圧縮する場合と、整数値サンプル系列と差分信号の２系統信号に分離して圧縮する場合とのいずれが高い圧縮効率となるかを判定するステップと、
（ｂ）上記判定が２系統信号分離であれば、
（ｂ−１）上記第１信号サンプル系列を整数形式の第２信号サンプル系列に変換するステップと、
（ｂ−２）上記整数形式の第２信号サンプル系列を可逆圧縮して第１符号列を生成するステップと、
（ｂ−３）上記整数形式の第２信号サンプル系列と上記浮動小数点形式の第１信号サンプル系列との差分と対応する浮動小数点形式の差分信号を生成するステップと、
（ｂ−４）上記浮動小数点形式の差分信号から第２符号列を生成するステップ、
とにより２系統信号分離圧縮を行うステップと、
（ｃ）上記判定が直接圧縮であれば、上記第１信号サンプル系列を直接可逆圧縮して第３符号列を生成するステップと、
（ｄ）上記直接可逆圧縮したか上記２系統信号分離圧縮したかを示す補助符号を生成するステップ、
とを含む浮動小数点信号可逆符号化方法。
【請求項３】
請求項２記載の浮動小数点信号可逆符号化方法において、上記ステップ（ｂ−１）の上記整数形式の第２信号サンプル系列への変換は小数点以下の切り捨てにより行われ、
上記ステップ（ｂ−４）は、
（ｂ−４−１）上記浮動小数点形式の差分信号のサンプルにおける、上記整数形式の第２信号サンプル系列の対応する各サンプルの最上位の１のビット位置により決まる非ゼロになり得る桁のビット列を符号化する第１符号化処理と、上記差分信号を直接符号化する第２符号化処理とでいずれが高い圧縮効率であるかを判定するステップと、
（ｂ−４−２）上記判定が上記第１符号化処理であれば、上記差分信号を上記第１符号化処理により符号化して第２符号列を生成し、上記判定が上記第２符号化処理であれば、上記差分信号を上記第２符号化処理により符号化して第２符号列を生成するステップ、
とを含む。
【請求項４】
請求項１又は３記載の浮動小数点信号可逆符号化方法において、上記第１符号化処理は、上記非ゼロとなり得る桁のビット列を可逆圧縮して上記第２符号列を生成する場合と、上記非ゼロになり得るビット列をそのまま上記第２符号列として出力する場合のいずれか一方を実行する。
【請求項５】
請求項１又は３記載の浮動小数点信号可逆符号化方法において、上記第２符号化処理は、上記差分信号の仮数部を可逆圧縮して上記第２符号列を生成する場合と、上記仮数部をそのまま上記第２符号列として出力する場合のいずれか一方である。
【請求項６】
請求項１又は３記載の浮動小数点信号可逆符号化方法において、上記整数形式の第２信号サンプル系列の１サンプルのビット長ｂＩは上記浮動小数点形式の第１信号サンプル系列の仮数部のビット数ｂＭより小であり、上記第１符号化処理は、上記非ゼロになり得る桁のビット列を、上記仮数部のビット数ｂＭと上記１サンプルのビット長ｂＩの差のビット数の上位側と、残りの下位側とに分けてそれぞれ可逆圧縮してそれぞれの符号列を得て、上記得られた符号列を合わせて上記第２符号列として出力する。
【請求項７】
請求項１又は３記載の浮動小数点信号可逆符号化符号化方法において、
上記第１符号化処理は、複数サンプルのフレーム毎に行われ、フレーム内の上記差分信号のサンプルの仮数部における非ゼロとなり得るビット領域である端数部分を最上位ビット又は最下位ビットをそろえて配置し、少なくとも時間方向および／又は振幅方向に複数のビットを選択して１つ又は複数の走査ビット列を生成し、上記走査ビット列を可逆圧縮して上記第２符号列を生成するステップを含む。
【請求項８】
請求項１又は３記載の浮動小数点信号可逆符号化方法において、上記第１符号化処理は、複数サンプルのフレームごとに行われ、フレーム内の上記差分信号の各サンプルにおける、非ゼロとなり得る桁のビット列を配列し、上記ビット列の配列を予め決めた複数の異なる走査順序で走査して、それぞれの走査ビット列を生成するステップと、各上記走査順序による上記走査ビット列を符号化してそれぞれの走査順序による符号列を生成するステップと、どの走査順序による符号列が最も情報量が少ないかを判定し、判定した符号列を上記第２符号列として出力すると共に、対応する走査順序を表す補助符号を出力するステップとを含む。
【請求項９】
請求項１又は３記載の浮動小数点信号可逆符号化方法において、上記第１符号化処理は、複数サンプルのフレーム毎にフレーム内の上記差分信号の端数部分を整数値サンプルとするサンプル列の平均値を求め、それぞれの整数値サンプルの値から上記平均値を減算した信号に対し、時間方向に予測を行い、その予測誤差を可逆圧縮符号化するとともに、上記平均値を符号化して上記第２符号列とするステップを含む。
【請求項１０】
（ａ）入力補助符号に応じて入力符号が１系統符号化であるか２系統符号化であるかを判定するステップと、
（ｂ）上記判定において１系統符号化であると判定された場合は、入力符号列を１つの符号列として復号伸張して浮動小数点形式の原信号サンプル系列を生成するステップと、
（ｃ）上記判定において２系統符号化であると判定された場合は、入力符号列を第１符号列及び第２符号列とに分離するステップと、
（ｄ）上記第１符号列を復号伸張して整数形式の第１信号サンプル系列を生成するステップと、
（ｅ）上記第２符号列から浮動小数点形式の差分信号を得るステップと、
（ｆ）上記整数形式の第１信号サンプル系列を浮動小数点形式の第２信号サンプル系列に変換するステップと、
（ｇ）上記浮動小数点形式の第２信号サンプル系列と上記浮動小数点形式の差分信号を合成して浮動小数点形式の原信号サンプル系列を生成するステップ、
とを含む浮動小数点信号復号化方法。
【請求項１１】
請求項１０記載の浮動小数点信号復号化方法において、上記ステップ（ｅ）は、上記整数形式の第１信号サンプル系列又は入力補助符号に応じて上記第２符号列の復号伸張を第１伸張法によるか第２伸張法によるかを判定するステップと、
この判定が第１伸張法であれば、上記第１信号サンプル系列の各サンプルの最上位の１のビット位置に応じて一意に決まる非ゼロになり得る桁数のビット列に、上記第２符号列を復号伸張し、その復号伸張されたビット列から上記差分信号を組み立て生成し、上記判定が第２伸張法であれば、その伸張法に応じて上記第２符号列を第２伸張法により上記差分信号に直接復号伸張するステップ、
とを含む。
【請求項１２】
（ａ）第１符号列を復号伸張して整数形式の第１信号サンプル系列を生成するステップと、
（ｂ）上記第１信号サンプル系列又は補助符号に応じて第２符号列の復号伸張を第１伸張法によるか、第２伸張法によるかを判定するステップと、
（ｃ）上記判定が第１伸張法であれば上記整数形式の第１信号サンプル系列の各サンプルの最上位の１のビット位置に応じて一意に決まる非ゼロになり得る桁数のビット列に、上記第２符号列を復号伸張し、その復号伸張されたビット列を浮動小数点形式の差分信号に組み立てるステップと、
（ｄ）上記判定が第２伸張法であれば上記第２符号列から上記浮動小数点形式の差分ディジタル信号を直接生成するステップと、
（ｅ）上記整数形式の第１信号サンプル系列を浮動小数点形式の第２信号サンプル系列に変換するステップと、
（ｆ）上記浮動小数点形式の第１信号サンプル系列と上記浮動小数点形式の差分信号を合成して浮動小数点形式の原ディジタル信号系列を生成するステップ、
とを含む浮動小数点信号復号化方法。
【請求項１３】
請求項１１又は１２記載の浮動小数点信号復号化方法において、上記第１伸張法による上記差分信号の生成ステップは、
上記整数形式の第１信号サンプル系列の各サンプルの最上位の１のビット位置に応じて一意に決まる非ゼロになり得る桁数のビット列に上記第２符号列中の第１部分を復号伸張するステップと、
上記整数形式の第１信号サンプル系列のサンプルのビット数と上記浮動小数点形式の原信号サンプル系列の仮数部のビット数との差に応じて一意に決まる非ゼロになり得る桁数に上記第２符号列中の第２部分を復号伸張するステップと、
これら第２符号列中の第１部分を復号伸張したものと第２符号列中の第２部分を復号伸張したものとを合成して上記差分信号を生成するステップ、
とを含む。
【請求項１４】
入力された浮動小数点形式の第１信号サンプル系列を、整数値とその誤差に分離して可逆圧縮符号化する第１符号化手段と、
上記浮動小数点形式の第１信号サンプル系列を直接可逆圧縮符号化する第２符号化手段と、
上記浮動小数点形式の第１信号サンプル系列のフレーム毎に、上記第１符号化手段と上記第２符号化手段とのいずれの圧縮効率が高いかを判定し又は圧縮効率が高いかを推定し、その高いと判定又は推定した方の符号化手段を選択し、その選択情報を示す補助符号を生成する分析選択手段、
とを含む浮動小数点信号可逆符号化装置。
【請求項１５】
入力された浮動小数点形式の第１信号サンプル系列を整数形式の第２信号サンプル系列に変換して可逆圧縮する第１符号化部と、
上記整数形式の第２信号サンプル系列と上記浮動小数点形式の第１信号サンプル系列との差分と対応する浮動小数点形式の差分信号を生成する差分生成部と、
上記浮動小数点形式の差分信号を直接符号化する第２符号化部と、
上記差分信号のサンプルにおける、上記整数形式の信号サンプル系列の対応する各サンプルの最上位の１のビット位置で決まる非ゼロになり得る桁のビット列を符号化する第３符号化部と、
上記第２符号化部と上記第３符号化部とのいずれの圧縮効率が高いかを判定し又は圧縮効率が高いかを推定し、その高いと判定又は推定した方の符号化部による符号を選択出力する手段、
とを含む浮動小数点信号可逆符号化装置。
【請求項１６】
入力された符号列を、浮動小数点形式の信号サンプル系列に直接可逆復号伸張する第１復号手段と、
入力された符号列を整数値とその誤差に分離して可逆復号伸張して、浮動小数点形式ディジタル信号系列を生成する第２復号手段と、
入力された補助符号に応じて、上記第１復号手段と上記第２復号手段の一方を選択する選択手段、
とを含む浮動小数点信号復号化装置。
【請求項１７】
入力された第１符号列を復号伸張して整数形式の第１信号サンプル系列を生成する第１伸張部と、
上記差分信号のサンプルにおける、上記整数形式の第１信号サンプル系列の対応する各サンプルの最上位の１のビット位置で決まる非ゼロになり得る桁数に入力された第２符号列を復号伸張し、その復号伸張されたビット列を浮動小数点形式の差分信号に組み立てる第２伸張部と、
上記入力された第２符号列を上記浮動小数点形式の差分信号に直接復号伸張する第３伸張部と、
上記第１信号サンプル系列又は入力された補助符号に応じて上記第２伸張部と上記第３伸張部との一方を選択する選択部と、
上記浮動小数点形式の第１信号サンプル系列と、上記第２伸張部及び第３伸張部中の上記選択されたものからの上記浮動小数点形式の差分信号とを合成して浮動小数点形式の第３信号サンプル系列を生成する合成部、
とを含む浮動小数点信号復号装置。
【請求項１８】
請求項１乃至９のいずれかに記載した浮動小数点信号可逆符号化方法の各過程をコンピュータに実行させるための符号化プログラム。
【請求項１９】
請求項１０乃至１３のいずれかに記載した浮動小数点形式信号系列復号化方法の各過程をコンピュータに実行させるための復号化プログラム。
【請求項２０】
請求項１８又は１９に記載したプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は音声、音楽、画像などの浮動小数点形式の信号サンプル系列を、歪を許さずより低い情報量に圧縮された符号に変換する符号化方法、その復号化方法、符号化装置、復号化装置、これらのプログラム、記録媒体に関する。
【背景技術】
【０００２】  音声、画像などの情報を圧縮する方法として、歪を許さない可逆な符号化方法がある。
圧縮率の高い非可逆の符号化を行い、その再生信号と原信号の誤差を可逆に圧縮することを組み合わせることで高い圧縮率で可逆な圧縮が可能となる。この組み合わせ圧縮方法が特許文献１に提案されている。この方法は前記文献に詳細に示されているが、以下に簡単に説明する。
符号器では、ディジタル入力信号（以下、入力信号サンプル系列とも呼ぶ）が、フレーム分割部で、その入力信号サンプル系列が、例えば１０２４個の入力信号サンプルからなるフレーム単位に、順次分割され、このフレーム単位毎にディジタル信号が非可逆圧縮符号化される。この符号化は、復号化時に元のディジタル入力信号をある程度再現できる方式であれば、入力信号に適した如何なる方式でもよい。【０００３】  例えば、上記ディジタル入力信号が音声であればＩＴＵ−のＧ．７２９標準として勧告されている音声符号化などが利用でき、音楽であればＭＰＥＧ−４で採用されているＴｗｉｎ  ＶＱ（Ｔｒａｎｓｆｏｒｍ−Ｄｏｍａｉｎ  Ｗｅｉｇｈｔｅｄ  Ｉｎｔｅｒｌｅａｖｅｄ  Ｖｅｃｔｏｒ  Ｑｕａｎｔｉｚａｔｉｏｎ）符号化などが利用できる。この非可逆圧縮符号は局部復号され、この局部信号と元のディジタル信号との誤差信号が生成される。なお、実際的には、局部復号はする必要なく、非可逆圧縮符号を生成する際に得られる量子化信号と元のディジタル信号との誤差を求めればよい。この誤差信号の振幅は通常は元のディジタル信号の振幅よりもかなり小さい。よって、元のディジタル信号を可逆圧縮符号化するよりも、誤差信号を可逆圧縮符号化する方が情報量を小さくできる。【０００４】  この可逆圧縮符号化の効率を上げるために、この誤差信号の符号絶対値表現（極性と絶対値の２進数）されたサンプル列のフレーム内の全サンプルに対しそれらの各ビット位置、つまりＭＳＢ，第２ＭＳＢ，…，ＬＳＢ毎に、サンプル系列方向（時間方向）にビットを連結したビット列を生成する。即ち、ビット配列の変換が行われる。この各連結した同じビット位置の１０２４個のビットからなるビット列をここでは便宜上「等位ビット列」と呼ぶことにする。これに対し、各サンプルの極性も含む振幅値を表す１ワードのビット列を便宜上「振幅ビット列」と呼ぶことにする。誤差信号は振幅が小さいので、各サンプルの最上位から１つ又は連続する複数のビットは全て“０”となることが多い。そこで、それらのビット位置で連結して生成した等位ビット列を予め決めた符号で表すことによって、誤差信号の可逆圧縮符号化効率を上げることができる。【０００５】  これら等位ビット列が可逆圧縮符号化される。可逆圧縮符号化としては、例えば、同一符号（１又は０）が連続する系列がある場合や頻繁に出現する系列がある場合を利用した、ハフマン符号化や算術符号化などのエントロピー符号化などを用いることができる。
復号化側では、可逆圧縮符号が復号化され、その復号信号に対し、ビット配列の逆変換が行われ、即ち、フレーム毎に等位ビット列を振幅ビット列に変換し、得られた誤差信号が順次再生される。また、非可逆圧縮符号が復号化され、この復号信号と再生された誤差信号とが加算され、最後に、フレームごとの各加算信号が順次連結されて、元のディジタル信号系列が再生される。【０００６】  音声、画像などの情報を歪を許さない可逆な符号化方法としてはその他にも各種のものが知られている。音楽情報については例えば非特許文献１に示されている。従来の方法は何れも波形をそのままＰＣＭ信号としたものについての圧縮符号化方法であった。
しかし音楽の収録スタジオでは浮動小数点形式で波形が記録されて保存されることがある。浮動小数点形式の値は極性、指数部、仮数部に分離されている。例えば図３７に示すＩＥＥＥ−７５４として標準化されている浮動小数点形式は３２ビットであり、上位ビットから極性１ビット、指数部８ビット、仮数部２３ビットで構成されている。極性をＳ、指数部の８ビットで表す値を１０進数でＥ、仮数部の２進数をＭとすると、この浮動小数点形式の数値は絶対値表現２進数で表わすと【０００７】
2005025072.tif 000003
【０００８】  ＩＥＥＥ−７５４によれば、Ｅ＝２７−１＝１２７と決められており、これにより、式（１）中のＥ−Ｅ０は
−１２７≦Ｅ−Ｅ０≦１２８
の範囲の任意の値を取ることができる。ただし、Ｅ−Ｅ０＝−１２７の場合はａｌｌ″０″、Ｅ−Ｅ０＝１２８の場合はａｌｌ″１″と定義されている。Ｅ−Ｅ０＝ｎは式（１）で表される値の整数部分の桁数（ビット数）から１を減算した値、即ち、最上位の”１”より下位のビット数を表わしている。
【特許文献１】特開２００１−４４８４７号公報
【非特許文献１】Ｍａｔ  Ｈａｎｓ及びＲｏｎａｌｄ  Ｗ．Ｓｃｈａｆｅｒ著「Ｌｏｓｓｌｅｓｓ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｏｆ  Ｄｉｇｉｔａｌ  Ａｕｄｉｏ」ＩＥＥＥ  ＳＩＧＮＡＬ  ＰＲＯＣＥＳＳＩＮＧ  ＭＡＧＡＺＩＮＥ，ＪＵＬＹ  ２００１，Ｐ２１〜３２  音声、音楽、画像の情報が浮動小数点形式のディジタル信号系列とされている場合は、浮動小数点形式の性質上“０”と“１”からなるビット列が乱雑な場合が多くなるため、前述したビット配列変換を行っても、エントロピー圧縮符号化などによって高い圧縮率は期待できない。また浮動小数点形式のサンプル系列は原アナログ波形と著しく異なったものとなりサンプル間の相関による冗長性がなく、非特許文献１に示す可逆予測符号化方法を適用しても高い圧縮率は期待できない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】  この発明の目的は浮動小数点形式の信号サンプル系列に対して圧縮率が高く、歪が生じない可逆符号化、復号化方法、それらの装置及びそれらのプログラム、記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】  この発明の第１の観点による浮動小数点信号可逆符号化方法は、
（ａ）浮動小数点形式の第１信号サンプル系列を整数形式の第２信号サンプル系列に変換するステップと、
（ｂ）上記整数形式の第２信号サンプル系列を可逆圧縮して第１符号列を生成するステップと、
（ｃ）上記整数形式の第２信号サンプル系列と上記浮動小数点形式の第１信号サンプル系列との差分と対応する浮動小数点形式の差分信号を生成するステップと、
（ｄ）上記浮動小数点形式の差分信号のサンプルにおける、上記整数形式の第２信号サンプル系列の対応する各サンプルの最上位の１のビット位置により決まる非ゼロになり得る桁のビット列を符号化する第１符号化処理と、上記差分信号を直接符号化する第２符号化処理とでいずれが高い圧縮効率であるかを判定するステップと、
（ｅ）上記判定が上記第１符号化処理であれば、上記差分信号を上記第１符号化処理により符号化して第２符号列を生成し、上記判定が上記第２符号化処理であれば、上記差分信号を上記第２符号化処理により符号化して第２符号系列を生成するステップ、
とを含む。【００１１】  この発明の第２の観点による浮動小数点信号可逆符号化方法は、
（ａ）浮動小数点形式の第１信号サンプル系列をフレーム毎に直接圧縮する場合と、整数値サンプル系列と差分信号の２系統信号に分離して圧縮する場合とのいずれが高い圧縮効率となるかを判定するステップと、
（ｂ）上記判定が２系統信号分離であれば、
（ｂ−１）上記第１信号サンプル系列を整数形式の第２信号サンプル系列に変換するステップと、
（ｂ−２）上記整数形式の第２信号サンプル系列を可逆圧縮して第１符号列を生成するステップと、
（ｂ−３）上記整数形式の第２信号サンプル系列と上記浮動小数点形式の第１信号サンプル系列との差分と対応する浮動小数点形式の差分信号を生成するステップと、
（ｂ−４）上記浮動小数点形式の差分信号から第２符号列を生成するステップ、
とにより２系統信号分離圧縮を行うステップと、
（ｃ）上記判定が直接圧縮であれば、上記第１信号サンプル系列を直接可逆圧縮して第３符号列を生成するステップと、
（ｄ）上記直接可逆圧縮したか上記２系統信号分離圧縮したかを示す補助符号を生成するステップ、
とを含む。
【発明の効果】
【００１２】  この発明の第１の観点によれば、浮動小数点形式の入力信号サンプル系列Ｘの平均振幅が所定値より大きい場合には、信号サンプル系列Ｘを直接可逆符号化し、所定値以下の場合には入力信号サンプル系列Ｘを整数サンプル系列と差分信号に分けて符号化することにより、効率的な符号化が可能である。
この発明の第２の観点によれば、浮動小数点形式の入力信号サンプル系列Ｘを整数サンプル系列Ｙと差分信号Ｚに分け、それぞれ符号化する場合に、差分信号については非ゼロとなり得る桁のみを符号化する場合と、差分信号をそのまま符号化する場合で圧縮効率の高いほうの符号化結果を用いることにより、さらに効率的な符号化が可能である。
【図面の簡単な説明】
【００１３】［図１］この発明の第１実施形態の符号化装置の機能構成を示す図。
［図２］図２中の整数化部１２の動作を説明するための図。
［図３］図２中の整数化部１２における処理手順の例を示す図。
［図４］整数値の絶対値と、その値を示す浮動小数点の仮数部のビットとの対応を示す図。
［図５］整数値の絶対値と、差分ディジタル信号の極性、指数部および仮数部との関係を示す図。
［図６］差分信号中の圧縮符号化される部分の例を示す図。
［図７］この発明の第１実施形態の復号化装置の機能構成を示す図。
［図８］図１に示す符号化装置の変形実施形態を示す図。
［図９］この発明の第２実施形態の符号化装置の機能構成を示す図。
［図１０］この発明の第２実施形態の復号化装置の機能構成を示す図。
［図１１］この発明の第２実施形態の符号化装置の変形機能構成を示す図。
［図１２］この発明の第３実施形態の符号化装置の機能構成を示す図。
［図１３］この発明の第３実施形態の復号化装置の機能構成を示す図。
［図１４Ａ］もともと浮動小数点信号であった入力浮動小数点形式信号Ｘに対する１６ビット整数化を説明するための図。
［図１４Ｂ］２４ビット整数値信号から生成された浮動小数点形式信号Ｘに対する１６ビット整数化を説明するための図。
［図１４Ｃ］１６ビット整数値信号から生成された浮動小数点信号Ｘに対する１６ビット整数化を説明するための図。
［図１５Ａ］図９Ａの場合の仮数部の非ゼロとなり得る領域を示す図。
［図１５Ｂ］図９Ｂの場合の仮数部の非ゼロとなり得る領域を示す図。
［図１６］この発明の第４実施形態の符号化装置の機能構成を示す図。
［図１７］この発明の第４実施形態の復号化装置の機能構成を示す図。
［図１８］仮数部を時間方向にビット走査して符号化する動作を説明するための図。
［図１９］図１８の符号化を実行する不圧縮部１７の構成例を示す図。
［図２０］図１９の符号化に対応した復号化装置における伸張部２３の構成例を示す図。
［図２１］時間方向のビット走査の他の例を示す図。
［図２２］時間方向のビット走査の他の例を示す図。
［図２３］時間方向のビット走査の更に他の例を示す図。
［図２４］非ゼロとなり得るビット列をＬＳＢ側に位置をそろえて配列した場合の時間方向のビット走査を示す図。
［図２５］第６実施形態の符号化装置における圧縮部１７の構成例を示す図。
［図２６］第６実施形態の復号化装置における伸張部２３の構成例を示す図。
［図２７］第７実施形態の符号化装置における圧縮部１７の構成例を示す図。
［図２８］第７実施形態の復号化装置における伸張部２３の構成例を示す図。
［図２９］図２７の圧縮部１７の変形例を示す図。
［図３０］図１１の符号化装置における圧縮部１７と１３１の代わりに使用可能な構成を示す図。
［図３１］図３０の構成に対応して図１０の復号化装置における伸張部２３、２３１、選択部２３３、補助復号部２３４に置き換える構成を示す図。
［図３２］浮動小数点入力と切捨てによる整数値との関係を示す図。
［図３３］浮動小数点入力と四捨五入による整数値との関係を示す図。
［図３４］浮動小数点入力と変形四捨五入による整数値との関係を示す図。
［図３５］図１１の符号化装置の変形例を示す図。
［図３６］この発明をコンピュータで実施する場合の構成を示す図。
［図３７］ＩＥＥＥ−７５４の３２ビット浮動小数点のフォーマットを示す図。
【発明を実施するための最良の形態】
【００１４】  この発明は画像信号、音声信号などにも適用できるが、以下は主として音楽信号に対してこの発明を適用した場合について、実施形態を説明する。また浮動小数点形式としても各種のものを用いることができるが、以下では３２ビットＩＥＥＥ−７５４を前提とする。
第１実施形態
図１にこの発明による符号化装置の実施形態の機能構成を示す。この実施形態の符号化装置は、分析選択部１００と、１系統符号化部１２０と、２系統符号化部１１０と、補助符号化部１０３と、出力部１０４とから構成されている。分析選択部１００は効率推定部１０１と選択部１０２とから構成されている。２系統符号化部１１０は、整数化部１２と、圧縮部１３、１７と、差分生成部１４とから構成されている。【００１５】  信号源１０から例えば音楽信号のサンプル列が３２ビットの浮動小数点形式の入力ディジタル信号サンプル系列Ｘとして出力される。この入力信号サンプル系列Ｘは２４ビットの整数形式で録音された信号の素材を変形、振幅調整、効果付加、混合などの加工をした結果、小数点以下の数を含むようになったものを浮動小数点形式に変換したもの、あるいは、もともと２４ビットの整数形式で録音された信号を３２ビット浮動小数点形式に変換後、前記加工をした信号である。この入力信号サンプル系列Ｘは一定サンプル数、例えば１０２４個単位のフレームにフレーム分割部１１で分割される。このフレーム分割は１６〜３２フレームなどのスーパーフレーム単位でもよく、あるいは１／２フレームとか１／４フレームでもよく、要は一定サンプル数毎に分割することであり、以下ではこれらを総称してフレームと呼ぶ。【００１６】  入力信号サンプル系列Ｘは分析選択部１００により分析され、整数値とその誤差を分離して可逆圧縮符号化する２系統符号化部１１０又は入力信号サンプル系列Ｘを直接可逆圧縮符号化する１系統符号化部１２０のいずれかに切り替えられて与えられる。分析選択部１００では例えば入力信号サンプル系列Ｘが効率推定部１０１に入力され、そのフレーム内の平均振幅が平均部１０１ａで計算され、その平均振幅が所定値以上か否かが判定部１０１ｂで判定され、その判定結果に応じて選択部１０２が制御される。その制御により判定結果が所定値以上であればそのフレームの入力信号サンプル系列Ｘが２系統符号化部１１０に供給され、所定値以上でなければ１系統符号化部１２０へ供給される。【００１７】  例えば入力信号サンプル系列Ｘの各サンプル中の整数部が１６ビットの２進数で表わされる場合、前記判定部１０１ｂでの判定基準となる所定値は８ビットの値とされる。この所定値は前記整数値により異なり、また入力信号サンプル系列の性質などにより、全体の圧縮効率がよくなるように選定される。
２系統符号化部１１０においては、浮動小数点形式の信号サンプル系列Ｘは整数化部１２に入力され、各サンプル毎に整数形式の信号サンプル系列Ｙに変換される。先に述べたように前記例では、もともと２４ビットの整数形式の信号の素材を変形、振幅調整、効果付加などの加工をした場合が多く、振幅が大きく変化することがないのが一般的である。従って整数化部１２においては小数点以下を四捨五入または切り捨て、切り上げによって整数に変換すればよい。【００１８】  例えば切り捨てを行う場合について、図２を参照して説明する。整数形式の桁数は１６ビットあるいは２０ビットなどでもよいが、以降の説明では２４ビットを使用する。
浮動小数点による波形の表現法として整数値の３２７６８（＝２１５）を１．０と正規化して表わす場合、あるいは整数値２２３を１．０と正規化して表す場合などもあるが、指数部の値が異なるだけで以下の説明と本質的な差異はない。
小数点の次の上位側ビットは、指数部の値Ｅが例えばＥ＝１４７であれば仮数部ＭのＭＳＢ側から１４７−１２７＝２０番目であり、図２Ａに示すように２３ビットの仮数部Ｍ中の上位側２０ビット（Ｍ１）が絶対値２進表現をした場合の整数部分の最上位の″１″より下位の部分であって、仮数部Ｍ中の下位側３ビット（Ｍ２）が絶対値２進表現をした場合の小数点以下の端数部分である。以下ではＭ１の部分を仮数部Ｍにおける整数部分と呼ぶ。従って、図２Ｂに示すように仮数部における整数部分（Ｍ１）中の最下位ビットが仮数部２３ビット中の最下位ビットとなるように、仮数部Ｍを３ビット下位方向にシフトすることによりこの小数点以下３ビット（Ｍ２）が溢れて切り捨てられる。このシフトにより仮数部Ｍの空き（この例では″０００″）となった最上位３ビット中の最下位ビット（即ち、２３ビットの最下位から２１ビット目）に式（１）における″１．Ｍ″の″１″に対応する″１″を設定することにより、端数切り捨てによる整数化された値が得られる（図３Ｃ参照）。あるいは、シフト前の２３ビットのＭＳＢの上位側に″１″を付加した２４ビットを３ビット下位にシフトしてもよい。【００１９】  更に、このようにして得られた整数値を２の補数表現に変換する。つまり、浮動小数点形式の信号サンプル系列Ｘの各サンプルの極性ビットＳはそのまま最上位ビットとし、残りの２３ビットについては図２Ｃに得られた２３ビットを、極性Ｓが″０″（正）の場合は図２Ｃの２３ビットをそのまま用い、Ｓが″１″（負）であれば、図２Ｄに示すように２３ビットを全て論理反転、即ち″０″と″１″を交換した後に最下位ビットに″１″を加算する。最上位ビットは極性Ｓをそのまま用い、図２Ｅに示す２４ビットの補数表現された整数形式の信号サンプル系列Ｙが得られる。【００２０】  上述においては、主として、仮数部Ｍに小数点以下の端数部分と対応するビットが０ビット以上含まれている場合を想定し、１サンプルの浮動小数点形式の３２ビットディジタル信号を１サンプル２４ビットの整数形式のディジタル信号に変換した。しかし、例えば前記２４ビット整数形式の信号の素材の複数を混合などして加工する場合には１サンプルの振幅値が２４ビットで表わされる最大値より可成り大きくなっている場合もある。このようなＥ≧１５０の場合は例外処理として、指数部Ｅの値を前記例ではＥ＝１２７＋２３＝１５０に固定し、例外信号ｙを差分生成部１４に与えると共に、仮数部Ｍの隣接上位側に″１″を付加した″１Ｍ″の上位２３ビットをそのまま２の補数表現に変換して２４ビット整数形式の信号サンプル系列Ｙとする。【００２１】  整数化部１２では例えば図３に示す処理を行うことになる。まず指数部Ｅが１５０以上か、つまり整数部が２３ビット以上であるかを調べ（Ｓ１）、２３ビットより少なければ、桁数計算部１２Ａで仮数部における整数部分の桁数Ｅ−Ｅ０＝ｎを求めて出力し（Ｓ２）、また仮数部Ｍを下位に（２３−ｎ）ビットだけシフトして端数部分を溢れ出し、得られた整数部分ｎビットの最下位から（ｎ＋１）ビット目に″１″を付加し（Ｓ３）、更にその上位側に全体で２３ビットとなるように″０″を補充したものを、極性Ｓを加味して２の補数表現の２４ビット整数形式に変換して整数形式信号サンプルＹを得る（Ｓ４）。つまり、最上位ビットに極性Ｓをそのまま用い、残りの２３ビットは、極性Ｓが″０″（正）であればステップＳ３でシフトして下位から（ｎ＋１）ビット目に″１″を加えた整数部分の最下位ビットから２３ビットまでをそのまま用い、Ｓが″１″（負）であれば前記シフトして″１″を加えた整数部の最下位ビットから２３ビットまでを、ビット反転して最下位ビットに″１″を加算して補数値を得る。ステップＳ１で指数部Ｅが１５０以上であれば、ステップＳ５でその指数部Ｅを１５０にしてステップＳ４で″１Ｍ″の上位２３ビットから整数形式の信号サンプルＹを生成する。【００２２】  なお、上述では仮数部Ｍに対し（２３−ｎ）ビットシフトして１サンプル２４ビットの絶対値表現２進数の整数値を求めたが、仮数部Ｍの図２ＡにＭ１で示す上位からｎ＝Ｅ−Ｅ０ビットを取り出し、その上位側に図２Ｃに示すように″１″を付加してｎ＋１ビットとし、その上位側に（２２−ｎ）ビットの″０″を付加して２３ビットとし、更にその上位側に極性ビットＳを付加して全体で２４ビットにしてもよい。
以上のようにして整数化部１２で変換された整数値信号サンプル系列Ｙは圧縮部１３で整数値として波形値の相関などを利用した効率のよい可逆圧縮法により圧縮符号化されて符号列Ｃａとして出力される。圧縮部１３における可逆圧縮は例えば前記非特許文献１に示されているように各サンプル毎に予測値（整数値）との差分を求め、その差分の系列を、従来の技術の項で述べたようにビット配列変換を行った後、つまり等位ビット列についてエントロピー符号化すればよい。つまり整数値信号サンプル系列Ｙは信号源１１の浮動小数点形式の入力信号サンプル系列Ｘの原アナログ信号波形と近似したものとなっている。従ってこの入力信号サンプル系列Ｘは予測や変換を使って信号サンプル間の相関による冗長性を除くことにより効率の高い可逆圧縮符号化が可能となる。【００２３】  差分生成部１４では整数値信号サンプルＹと信号源１１よりの対応する浮動小数点形式の入力信号サンプルＸとの差分信号（誤差）Ｚが生成される。この例では整数値信号サンプルＹは浮動小数点化部１５で浮動小数点形式の信号サンプルＹ’に再変換され、その再変換された浮動小数点形式の信号サンプルＹ’が原浮動小数点形式の入力信号サンプルＸから減算部１６で減算されて浮動小数点形式の差分信号Ｚが生成される。
浮動小数点化部１５での変換は１サンプルの整数形式ディジタル信号が２４ビットの場合、まったくあいまい性や例外なく３２ビットの浮動小数点形式の入力信号に変換可能である。前述したように原浮動小数点形式の信号サンプル系列Ｘの指数部Ｅは１４９以下の場合が多く、この場合は信号サンプル系列Ｙ’のサンプルと原浮動小数点形式の入力信号サンプル系列Ｘのサンプルとの差分信号Ｚのサンプルは、原入力信号サンプル系列Ｘのサンプルの小数点以下の端数値と等しい。【００２４】  上述の差分生成部１４の説明は理解のためのものであって、現実には、整数値信号サンプル系列Ｙを浮動小数点化する必要はなく、差分生成部１４に入力サンプル系列Ｘとその仮数部の整数部分桁数ｎを入力し、例外信号ｙが与えられないときは、浮動小数点形式の入力サンプル系列Ｘの各サンプルの極性Ｓと指数部Ｅ、仮数部Ｍの下位（２３−ｎ）ビットをそれぞれ差分信号Ｚの各サンプルの極性、指数部、仮数部の下位（２３−ｎ）ビットとし、仮数部中の上位ｎビットをすべて″０″とする。なお、仮数部の整数部分の桁数ｎ＝Ｅ−Ｅ０は、整数値信号サンプル系列Ｙのサンプルの最上位の″１″より下位の桁数と等しい。整数値信号サンプルのビット長は固定されているので、最上位の″１″からそれより上位の桁数が決まっても、仮数部中の整数部分の桁数が決まる。即ち、整数信号サンプルの最上位の″１″のビット位置がわかれば、対応する浮動小数点信号サンプルの仮数部における整数部分の桁数がわかる。例外信号ｙが与えられた場合は、極性は入力サンプルの極性Ｓ、指数部はＥ−１５０、仮数部は入力サンプル系列Ｘのサンプルと信号サンプル系列Ｙ’のサンプルの仮数部の差分とする。【００２５】  圧縮部１７は、整数値信号サンプル系列Ｙと浮動小数点形式の入力サンプル系列Ｘとの、対応サンプルごとの差分信号Ｚ、つまり差分生成部１４からの浮動小数点形式の差分信号Ｚを可逆圧縮符号化し、符号列Ｃｂを出力する。この圧縮部１７では、例えば、整数化部１２から出力された仮数部の整数部分桁数ｎを用いて、浮動小数点形式の差分信号Ｚ中の各サンプルについて、″０″以外になり得る桁についてのみ可逆圧縮符号化を行う。浮動小数点形式の入力サンプル系列Ｘの各サンプルを、
Ｘ＝１．Ｍ×２ｎ＝ＸＷ．ＸＦ
ただしＸＷ＝１ＭＩ（ＭＩより隣接上位側に１が付加された値）は２進整数部分、ＸＦ＝ＭＦは端数部分、とおくと、その仮数部Ｍにおける整数部分ＭＩに対応するビットと、端数部分（小数値）ＭＦに対応するビットは図４に示す関係にある。ただし、仮数部Ｍは式（１）におけるＭの上位側隣接１ビットを合わせて２４ビットの値として示し、絶対値表現２進数とした場合の小数点ＰＤの位置を便宜的に示してある。【００２６】  整数値の絶対値ＸＷが０の場合は、前式（１）においてＥ−Ｅ０＝−１２７の場合と、−１２６≦Ｅ−Ｅ０≦−１の場合がある。前者の場合はＥ＝０の特殊な場合であり、仮数部Ｍの全２３ビット″ｘ２３…ｘ１″の全てが端数部分ＭＦで、かつ、定義により入力信号サンプル系列Ｘのサンプルの仮数部２３ビットがａｌｌ″０″である。−１２６≦Ｅ−Ｅ０≦−１の場合は仮数部がａｌｌ″０″ではない端数部分であり、いずれにしてもＥ−Ｅ０が負の場合は整数値信号サンプル系列Ｙのサンプルの全ビットはａｌｌ″０″となり、差分信号Ｚは入力サンプル系列Ｘのサンプルと同じになるので、浮動小数点形式の信号サンプル系列Ｘのサンプルの全３２ビットを全て符号化する。【００２７】  整数値の絶対値ＸＷが１の場合は、仮数部Ｍの２３ビット目より１ビット上位のビット（以下２４ビット目という）″１″により整数値ＸＷを表し、仮数部Ｍの２３ビット″ｘ２３…ｘ１″は端数部分ＭＦを表わす。
整数値の絶対値ＸＷが２〜３の場合は２４ビット目の″１″と２３ビット目のｘ２３との２ビット″１ｘ２３″により整数値ＸＷを表わし、ｘ２３は仮数部Ｍ中の整数部分ＭＩを表し、″ｘ２２…ｘ１″の２２ビットで端数部分ＭＦを表わす。
ＸＷが４〜７の場合は２４ビット目の″１″と２３ビット目ｘ２３、２２ビット目ｘ２２との３ビット″１ｘ２３ｘ２２″により整数値ＸＷを表わし、″ｘ２３ｘ２２″は仮数部Ｍ中の整数部分ＭＩを表し、″ｘ２１…ｘ１″の２１ビットにより端数部分ＭＦを表わしている。【００２８】  ＸＷが２ｋ−１〜（２ｋ−１）の場合は、２４ビット目の″１″と″ｘ２３…ｘ２３−（ｋ−２）″とのｋビットで整数値ＸＷを表わし、″ｘ２３ｘ２２…ｘ２３−（ｋ−２）″は仮数部Ｍ中の整数部分ＭＩを表し、″ｘ２３（ｋ−１）…ｘ１″の（２３−ｋ）ビットで端数部分ＭＦを表わす。
所で差分信号Ｚは３２ビット浮動小数点形式の入力サンプル系列Ｘから、整数値信号サンプル系列Ｙを３２ビット浮動小数点形式にしたサンプル系列Ｙ′を差し引いたものであるから、差分信号Ｚは、図５に示すようになる。整数値の絶対値ＸＷが０の場合は前述のＥ−Ｅ０が負の場合であり、差分信号Ｚの極性Ｓ、指数部Ｅ、仮数部Ｍは全て入力サンプルＸと同一になる。【００２９】  整数値の絶対値ＸＷが１の場合は、サンプル系列Ｙ′のサンプルのＳ，Ｅはそれぞれサンプル系列Ｘのサンプルのそれらと同一となりＭは０となる。ここでは指数部の差分もとる。従って差分信号ＺのＳ，Ｅはそれぞれ必ずＸと同じ０，０となり、Ｍはサンプル系列Ｘのサンプルの仮数部Ｍと同一となる。
整数値ＸＷが２〜３の場合は、サンプルＹ′のＳ，Ｅはそれぞれ、サンプルＸのそれと同一となり、Ｍは２３ビット目ｘ２３がサンプルＸのＭのそれと同一となり、端数部分″ｘ２２…ｘ１″は全て″０″である。従って差分信号ＺのＳ，Ｅは必ず０となり、仮数部Ｍは上位１桁（２３ビット目）は必ず０となり、残りの端数部分″ｘ２２…ｘ１″がサンプルＸの対応する部分の値と同じであり、サンプルＸにより変化する。【００３０】  以下同様に、サンプルＸの整数値ＸＷが２ｋ−１〜（２ｋ−１）の場合、差分信号ＺのＳ，Ｅは必ず０となり、仮数部Ｍは、サンプルＸの仮数部Ｍの整数部分と対応する上位（ｋ−１）桁（ビット）″ｘ…ｘ２３−（ｋ−２）″は必ず″０″となり、残りの２３−（ｋ−１）ビット″ｘ２３−（ｋ−１）…ｘ１″はサンプルＸの仮数部Ｍのそれと同一値となり、サンプルＸにより変化する。このように、整数形式の信号サンプル系列Ｙの整数値の範囲、つまり整数値の桁数ｎ＋１に応じて差分信号Ｚの非ゼロになり得る桁数ｈ＝２３−ｎが決まる。
このような関係があるから、浮動小数点形式差分信号Ｚについては、圧縮部１７において、整数化部１２から入力された仮数部の整数部分の桁数ｎを用い、対応差分信号Ｚ中の非ゼロになり得る下位ｈ＝（２３−ｎ）桁についてのみ可逆圧縮符号化する。つまり仮数部の整数部分の桁数ｎが０であれば指数部Ｅ、仮数部Ｍの全てを可逆圧縮符号化し、ｎ≠０であれば、仮数部Ｍ中の下位ｈ＝（２３−ｎ）ビットのみを可逆圧縮符号化する。以上から入力信号サンプルＸと仮数部の整数部分の桁数ｎとを差分生成部１４に入力して、差分信号Ｚを生成できることが理解されよう。【００３１】  圧縮部１７による差分信号Ｚの符号化は、前述のように入力信号サンプル系列ＸのサンプルのＥ−Ｅ０が−１２７〜０の場合は、差分信号Ｚは入力信号サンプルＸと同一になり、従って入力信号サンプルＸの全３２ビットを差分信号Ｚとして符号化する。Ｅ−Ｅ０が１〜２２の場合は、例えば差分信号サンプル系列Ｚ＝ｚ１，ｚ２，ｚ３…が図６に示す状態の場合、ｎ≠０の場合以外は非ゼロになり得る桁部分ＭＤのみを符号化する。この非ゼロになり得る桁についての符号化はその非ゼロになり得る桁数ｈ毎に例えばハフマン符号化などのエントロピー符号化を行うか、まとめて例えばユニバーサル符号化を行う。つまり図６中に斜線を施した部分のみをサンプル毎にあるいはフレーム単位など適当にまとめてエントロピー符号化などの可逆圧縮符号化を行えばよい。各サンプルの非ゼロとなり得る桁部分ＭＤの桁数（ビット数）ｈはｈ＝（２３−ｎ）と求まるので、フレーム毎に全てのＭＤを一連のビット列として符号化しても、復号側で復号化された一連のビット列を各サンプルの非ゼロとなり得るビット数ｈごとに分離可能である。【００３２】  なお、極性Ｓは整数形式の信号サンプル系列Ｙの符号化により、符号Ｃａに含まれているため、差分信号Ｚの符号化の際に極性Ｓを符号化して送信する必要はない。また、受信側では整数値信号サンプル系列Ｙの各サンプルの極性を除く最上位の″１″より下位のビット数ｎからｎ＝Ｅ−Ｅ０を求めることができるので、桁数ｎを送信する必要はない。
差分信号Ｚは小数点以下の桁数が多いこともあり、その場合、符号化の効率が悪い場合がある。従って、図１の実施形態において差分信号Ｚの非ゼロとなり得る桁を符号化した場合に得られる符号列の情報量と、符号化しない場合の非ゼロになり得る桁の情報量を比較し、後者のほうが情報量が小さければ非ゼロとなり得る桁を符号化せずそのまま符号列Ｃｂとして出力してもよい。あるいは、この差分信号Ｚのサンプルの全桁を符号化した場合としない場合の情報量を比較し、情報量が小さくなるほうを選択してもよい。【００３３】  なお前述したように浮動小数点形式の信号サンプル系列Ｘ自体の仮数部がＥ≧１５０の例外的な場合は、整数化部１２で指数部Ｅが１５０に固定されたことを示す例外信号ｙが差分生成部１４に与えられ、差分生成部１４はその指数部Ｅの値１５０と信号サンプル系列Ｘのサンプルの指数部Ｅとの差分（Ｅ−１５０）を指数部とし、仮数部Ｍの差分を仮数部とする浮動小数点形式の差分信号Ｚを生成する。圧縮部１７は差分信号Ｚを可逆圧縮符号化し、その符号列Ｃｂとして出力する。
図１に示すように、１系統符号化部１２０では、入力された浮動小数点形式の入力信号サンプル系列Ｘは圧縮部１２１で直接可逆圧縮符号化され、符号列Ｃｃして出力される。この可逆圧縮符号化は例えば８ビット単位のユニバーサル符号化で行えばよい。分析選択部１００より２系統符号化部１１０と１系統符号化部１２０とのいずれを選択したかを示す補助情報が補助符号化部１０３により補助符号Ｃｄして符号化されて出力される。これら符号列Ｃａ、Ｃｂと補助符号Ｃｄ又は符号列Ｃｃと補助符号Ｃｄが出力部１０４から出力され、伝送、あるいは記録媒体への記録に用いられる。【００３４】  図７に図１に示した符号化装置と対応するこの発明による復号化装置の実施形態を示す。
入力端子２０１よりの符号列は１フレーム分の符号列毎に補助符号抽出部２０２で補助符号Ｃｄが抽出され、補助符号Ｃｄにより分離部２０３が制御され、入力端子２０１よりの符号列は補助符号Ｃｄが２系統符号化を表わす場合は入力端子からの符号列ＣａとＣｂが分離されて２系統復号部２１０へ供給され、１系統符号化を表わす場合は入力端子からの符号列から符号列Ｃｃが分離されて１系統復号部２２０へ供給される。【００３５】  ２系統復号部２１０に入力された符号列Ｃａは伸張部２１で可逆伸張復号化される。この可逆伸張復号化方法は、図１中の圧縮部１３で行った可逆圧縮符号化方法と対応し、その処理と逆の処理を行う。よってこの可逆伸張復号化により１サンプル２４ビットの整数形式のディジタル信号系列Ｙが生成される。また伸張部２１中の桁数出力部２１Ａにおいて、伸張復号された各サンプルごとの最上位の”１”より下位の桁数ｎを浮動小数点形式のディジタル信号の仮数部Ｍにおける整数部分の桁数として求めて出力される。この桁数ｎは伸張部２３に入力される。【００３６】  伸張部２３ではこれに入力された符号列Ｃｂが可逆伸張復号化される。この可逆伸張復号化方法は図１中の圧縮部１７で行う可逆圧縮方法と対応したものとする。よってこの伸張部２３において、伸張復号されたビット列から、組立部２３Ａにより桁数ｎに基づいて、サンプルごとの３２ビット浮動小数点形式の差分（誤差）ディジタル信号が組立てられ、浮動小数点形式の差分信号Ｚとして出力される。
組立部２３Ａでは、伸張部２１からのフレームの最初のサンプルに対する桁数ｎと、伸張部２３で伸張復号されたビット列から、最初のサンプルと対応する部分としてｎ＝０でなければ、２３ビットの仮数部Ｍの下位２３−ｎ＝ｈビットとしてｈビットが取り出されて、図６中の最初のサンプルｚ１における斜線を施した部分よりなる１サンプル３２ビットの浮動小数点形式の差分信号サンプルｚ１として組立てられる。極性Ｓの１ビット、指数部Ｅの８ビットはすべて０とし、また図６中の仮数部Ｍ中の整数値と対応する部分ＭＩは全て０とされる。次のサンプルに対して対応桁数ｎ≠０に応じて仮数部の下位２３−ｎ＝ｈビットとして伸張復号ビット列からｈビットを取り出して３２ビットの浮動小数点形式差分信号Ｚとし、以下同様にして図６に示したようなサンプル列ｚ２，ｚ３…が順次組立てられて出力される。ｎ＝０の場合は指数部Ｅの８ビットと仮数部Ｍの２３ビットが伸張復号ビット列から取り出されて浮動小数点形式ディジタル信号とする。この復号した差分信号Ｚは極性Ｓは常に０、指数部Ｅはｎ＝０以外は常に０、仮数部Ｍは下位の２３−ｎ＝ｈビットのみが非ゼロになり得るビットであり、その他は常に０であり、従って厳密な意味では浮動小数点表現ではないが、ここでは浮動小数点形式差分信号と呼んでいる。【００３７】  伸張部２１よりの２４ビット整数形式の信号サンプル系列Ｙは浮動小数点化部２２で１サンプル３２ビットの浮動小数点形式の信号サンプル系列Ｙ′に変換される。この信号サンプル系列Ｙ′は伸張部２３よりの浮動小数点形式の差分信号Ｚとが合成部２４で対応サンプル毎に加算合成され、浮動小数点形式の信号サンプル系列Ｘが再生される。再生信号サンプル系列Ｘの各サンプルの極性は信号サンプル系列Ｙ′のそれ、つまり復号された整数形式の信号サンプル系列Ｙの極性となり、サンプル列Ｘのサンプルの指数部Ｅはｎ＝０以外は、信号サンプル系列Ｙ′のサンプルの指数部となり、仮数部Ｍは上位ｎ＝２３−ｈビットが信号サンプル系列Ｙ′のサンプルの仮数部Ｍの上位ｎビットとなり、下位２３−ｎ＝ｈビットが差分信号Ｚの下位ｈビットとなる。【００３８】  １系統復号部２２０に入力された符号列Ｃｃは、図１中の圧縮部１２１と対応した可逆復号伸張処理により、原浮動小数点形式の信号サンプル系列Ｘに直接復号される。
２系統復号部２１０及び１系統復号部２２０で復号された浮動小数点形式の信号サンプル系列Ｘはフレーム合成部２０５において、順次連続合成されて、浮動小数点形式信号サンプル系列とされる。
変形実施形態
図８は図１で示した符号化装置の変形実施形態を示す。この符号化装置は、図１における分析選択部１００を使用しない。ここでは２系統符号化部１１０及び１系統符号化部１２０で入力信号サンプル系列Ｘをそれぞれ一旦符号化し、分析選択部１００′に符号列Ｃａ及びＣｂ、また符号列Ｃｃを入力し、そのフレームにおける圧縮効率を効率計算部１００ｃでそれぞれ計算する。例えばそれぞれの符号長のそのフレーム内での総和を求め、比較判定部１００ｄで比較し、その符号長総和が小さい方が、圧縮効率が高いものとして、判定結果を補助符号化部１０３に与えて符号Ｃｄを生成するとともに、比較結果により出力部１０４を制御して出力部１０４から、符号列の組（Ｃａ，Ｃｂ，Ｃｄ）又は符号列の組（Ｃｃ，Ｃｄ）を選択出力する。その他の構成は図１の場合と同様であり、説明を省略する。図中に破線で示すように、差分信号Ｚをそのまま出力する場合も選択の１つとして加え、符号列の組（Ｃａ，Ｃｂ，Ｃｄ），（Ｃａ，Ｚ，Ｃｄ），（Ｃｃ，Ｃｄ）のいずれか最も圧縮効率の高いものを出力してもよい。図８の符号化装置に対応する復号化装置としては、図７に示した復号化装置をそのまま使用することができる。【００３９】  なお図１に示した符号化装置において、圧縮部１７は浮動小数点形式の差分信号Ｚを直接可逆圧縮符号化した場合は、図７に示した復号装置中の伸張部２３ではｎを使用せず、浮動小数点形式の差分信号Ｚが直接復号されるようにする。この直接可逆圧縮符号化、復号化する場合は整数化部１２における整数化は切り捨てのみならず、四捨五入、切り上げにより行ってもよい。
変形実施形態
一般の浮動小数点ではなく、もともと２４ビットとか１６ビットの整数値のＰＣＭ信号を便宜上、浮動小数点に変換して符号化対象の系列を作成する場合がある。このような特殊な浮動小数点系列の場合には、前述した第１実施形態において非０になり得る桁はなくなり、差分生成部１４よりの浮動小数点形式の差分（誤差）信号Ｚの極性Ｓ、指数部Ｅ、仮数部Ｍはすべてゼロとなり、送信する必要はない。この場合は、例えば補助情報として２ビットを用い、その２ビットが″００″であればもともとのディジタル信号が１サンプル１６ビットの整数値のみ、″０１″であれば１サンプル２４ビットの整数値のみ、″１０″であればそれ以外の信号であることを復号化装置に伝えればよく、そのためには、この２ビット補助情報を例えば圧縮部１７の出力符号列Ｃｂの先頭に追加し、前２者の場合は符号列Ｃｂとしてこの２ビットの補助符号のみを出力し、後者の場合には補助符号に符号列Ｃｂを付加して出力することにより効率的な圧縮が可能となる。
第２実施形態
この発明の第２実施形態では浮動小数点形式の信号サンプル系列Ｘから、必ず整数形式の信号サンプル系列Ｙを生成するが、浮動小数点形式の差分信号Ｚについては、２つの可逆圧縮符号化方法のいずれかの圧縮効率が高いと推定される方により符号化する。つまり１つは第１実施形態で説明したように整数形式信号サンプル系列Ｙの各サンプルの桁数を利用して浮動小数点形式の差分信号の非ゼロとなり得る桁のみを可逆符号化する方法であり、他の１つは浮動小数点形式の差分信号を直接可逆圧縮符号化する方法である。【００４０】  この第２実施形態の符号化装置の機能構成を、図９に、図１と対応する部分に同一参照番号を付けて示し、重複説明は省略する（以下も同様）。この第２実施形態では差分信号Ｚの符号化のために、整数値サンプルの最上位の″１″より下位の桁数ｎを利用する圧縮部１７と、浮動小数点形式の差分信号を直接可逆圧縮符号化する圧縮部１３１とが設けられる。また分析部１３２に整数化部１２から仮数部Ｍ中の整数部分の桁数（整数値サンプルの最上位の”１”より下位の桁数）ｎが入力され、その桁数ｎと基準値とが判定部１３２ａで比較され、その比較結果に応じて選択部１３３が制御される。差分信号Ｚの仮数部Ｍの上位ｎビットは”０”であり、ｎが大きいほど、圧縮部１７を使用するほうが圧縮効率が高くなる。そこで、桁数ｎが基準値以上であれば、差分信号Ｚを圧縮部１７へ供給し、桁数ｎが基準値以上でなければ差分信号Ｚを圧縮部１３１へ供給する。圧縮部１７と１３１のいずれかで可逆圧縮符号化された差分信号Ｚに対する符号列Ｃｂが出力部１０４に入力されることになる。【００４１】  桁数ｎが大きければ、つまり振幅が大きければ、図５を参照して説明したように、差分信号Ｚの各サンプル中の非ゼロをとり得る桁の数ｈ＝２３−ｎが小さくなり、差分信号Ｚを効率的に圧縮することができる。しかし桁数ｎが小さければ、つまり振幅が小さければ、差分信号Ｚ中の非ゼロを取り得る桁数ｈが大きくなり、圧縮部１３１において、浮動小数点形式の差分信号Ｚを、例えば通常の８ビット単位のユニバーサル符号化により可逆圧縮符号化をした方が有利である。例えば、各差分信号サンプルの２３ビットの仮数部の先頭（又は末尾）に″０″を１ビット挿入して２４ビットのビット列とし、そのビット列を８ビット毎の３個のシンボル（符号化単位）に分解し、８ビットのシンボル毎の圧縮符号化を適用する。あるいは、各差分信号サンプルの仮数部の非ゼロとなり得るビットのみを８ビットごとに区切り、８ビットで割り切れないものには″０″を必要なビット数だけ追加挿入して、８ビット毎のシンボルを作成し、シンボル毎に圧縮符号化を適用してもよい。例えば、あるサンプルでは仮数部の非ゼロとなり得るビット数が１１であれば、５個の″０″を追加して８ビットの２つのシンボルを作る。【００４２】  判定部１３２ａにおける前記基準値としては、例えば整数形式ディジタル信号サンプル系列Ｙの振幅長が１６ビットの場合、例えば１０ビットとされる。この基準値も第１実施形態の判定部１０１ｂにおける所定値と同様に各種条件に応じて高い圧縮効率が得られるように選定される。
この圧縮部１７と１３１との選択は、各サンプル毎に行ってもよく、あるいは、分析部１３２の平均部１３２ｂで１フレーム分の整数形式信号サンプルのそれぞれの最上位の”１”より下位の桁数ｎを平均し、その平均値が基準値以上であれば、圧縮部１７を選択し、基準値以上でなければ圧縮部１３１を選択するようにフレーム毎に制御してもよい。各サンプル毎に圧縮部１７と１３１との選択を行う場合は、圧縮部１７では例えば入力された１フレーム分の選択されたそれぞれのサンプルの非ゼロとなり得るビットをビット連結して、エントロピー符号化する。桁数ｎは復号側において復号化された整数形式の信号サンプルからから求めることができるので、桁数ｎを利用して圧縮部１７と１３１の選択を行う場合は、その圧縮部１７と１３１のいずれを選択したか表わす補助符号を出力する必要はない。【００４３】  図９に示した符号化装置と対応する復号装置の実施形態を図１０に図７と対応する部分に同一参照番号を付けて示す。分離部２０３により分離された符号列Ｃａは必ず伸張部２１に入力されて、整数形式の信号サンプル系列Ｙが復号伸張される。符号列Ｃｂに対する伸張部として伸張部２３の他に伸張部２３１が設けられる。
伸張部２１よりの整数形式ディジタル信号サンプルの最上位の”１”より下位の桁数ｎが分析部２３２に入力される。分析部２３２は図９中の分析部１３２と同一構成であり、桁数ｎと基準値とが判定部２３２ａで比較され、桁数ｎが基準値以上であれば、符号列Ｃｂは伸張部２３へ供給され、桁数ｎが基準値以上でなければ、符号列Ｃｂは伸張部２３１へ供給されるように選択部２３３が制御される。伸張部２３では第１実施形態で説明したように、復号伸張されたビット列から桁数ｎで決まる非ゼロを取り得る桁数ｈづつ取り出され、組立部２３ａで浮動小数点形式の差分信号Ｚに組み立てられる。【００４４】  伸張部２３１では、図９中の圧縮部１３１と対応した復号伸張方法により、符号列Ｃｂが浮動小数点形式の差分信号Ｚに直接復号伸張される。なお図９中の分析部１３２で桁数ｎの平均を利用した場合は分析部２３２においても桁数ｎを平均部２３２ｂで平均して、基準値と比較する。この比較結果により選択部２３３が制御され、符号列Ｃｂが伸張部２３又は２３１に与えられる。伸張部２３では、符号列Ｃｂを図７で説明したと同様に復号して非ゼロとなり得る桁のビット列を得る。そのビット列から桁数ｎを使って差分信号の仮数部を形成し、更に、浮動小数点形式の差分信号Ｚを組み立てる。【００４５】  前述したように、ここでは差分信号Ｚは浮動小数点形式とは言っても符号化装置の差分生成部１４において生成された差分の指数部と極性はともに全て”０”となるため送信されず、復号化装置の伸張部２３で復号した非ゼロとなり得る桁から仮数部を組み立て、全てゼロの指数部とゼロの極性を付加して浮動小数点形式の差分信号Ｚを組み立てている。
伸張部２３１は符号列Ｃｂが符号列Ｃｂ’として与えられ、図９における圧縮部１３１と逆の復号化処理を行い、直接差分信号Ｚを得る。これらのうちのいずれかの差分信号Ｚは加算部２４で整数形式のサンプルＹに対応する符号小数点形式のサンプルＹ‘が加算され、現浮動小数点形式の信号サンプルＸが得られる。
変形実施形態
図１１は図９の実施形態の変形例であり、図９に対応する部分には同じ参照番号が付けられている。この変形実施形態では、図９において、分析部１３２と選択部１３３を使用する代わりに、圧縮部１７、１３１で圧縮符号化を行って、どちらが圧縮効率の高い符号化が可能であるか判定し、効率の高いほうの符号化結果を出力する。即ち、差分信号Ｚを圧縮部１７と圧縮部１３１との両者でそれぞれ可逆圧縮符号化し、これらの符号化結果としての符号列ＣｂとＣｂ’をそれぞれ分析選択部１３４に入力して、そのフレームにおける差分信号Ｚに対する圧縮効率が圧縮部１７と１３１とでいずれが高いかを効率計算部１３４ａ及び判定部１３４ｂにより判定して、その圧縮効率が高い方の符号列を符号列Ｃｂとして出力部１０４より出力してもよい。この場合は、符号列Ｃｂが圧縮部１７と１３１のいずれにより符号化されたものであるかを表わす補助符号Ｃｅを補助符号化部１０３から出力する必要がある。【００４６】  図１１の符号化装置に対応する復号化装置は、図１０に示した復号化装置において、分析部２３２を設ける代わりに破線で示す補助復号化部２３４を設けた構成とする。分離部２０３により分離された補助符号Ｃｅを補助復号化部２３４で復号し、その復号結果により選択部２３３を制御して符号列Ｃｂを伸張部２３又は２３１に与える。その他の動作は図９の符号化装置に対する復号化装置としての動作と同様である。
図９の構成に図１１における分析選択部１３４と補助符号化部１０３を設け、桁数ｎを使った判定と圧縮効率を使った判定のいずれを使用するかを選択できるようにし、図１０においても分析部２３２に加えて補助復号化部２３４を設けてどちらの手法でも使用できるようにしてもよい。ただし、符号化側と復号化側で対応する手法を使用する。
第３実施形態
この発明の第３実施形態は図１の第１実施形態と図９の第２実施形態とを組み合わせたものである。この第３実施形態の符号化装置の機能構成図を図１２に、図１、８、９及び１１と対応する部分に同一参照番号を付けて示し、重複説明は省略する。この実施形態によれば、選択部１０２と１３３の選択の組み合わせにより符号列の組（Ｃａ，Ｃｂ，Ｃｄ），（Ｃａ，Ｃｂ’，Ｃｄ），（Ｃｃ，Ｃｄ）のいずれかが選択され出力される。【００４７】  これらと同様の３つの組の符号列の選択は、図１１の実施形態に破線で示すように図８の圧縮部１２１を追加し、最も圧縮効率の高い符号列の組を分析選択部１３４で選択することにより実現できる。
この第３実施形態の復号装置を、図１３に、図７及び図１０と対応する部分に同一参照番号を付けて示し、重複説明を省略する。
第４実施形態
上述の第１実施形態では、浮動小数点形式の入力信号サンプルＸの小数点以下の端数を切り捨てることにより整数化し、差分信号Ｚの仮数部における整数部分がａｌｌ″０″となることを利用して差分信号Ｚの非ゼロとなり得る桁のみを符号化することにより圧縮効率を高める符号化装置を示した。また、第２実施形態では、差分信号Ｚについて、非ゼロとなり得る桁のみを符号化する場合と全桁の符号化する場合とで効率の良い方を選択する符号化装置を示した。第４実施形態では、上記小数点以下の切捨てに加えて、更に整数部分も予め決めたビット数を切り捨てて整数値信号サンプルＹを生成する例を示す。以下の例では、小数点以下の切捨てによる１６ビットの整数値化において、更に８ビットの切捨てを行う場合を示すが、１７〜２３ビットの任意の整数値化にも適用できる。【００４８】  この第４実施形態によれば浮動小数点形式の入力信号サンプルＸが、もともと符号小数点信号であったのか、２４ビット整数値信号であったのか、１６ビット整数値信号であったのか区別する必要がなく、同じ処理によって符号化を行うことができるが、動作原理の説明上、浮動小数点形式の入力信号サンプル系列Ｘがもともと浮動小数点形式であった場合、極性１ビットを含む２４ビット整数値信号であった場合、極性１ビットを含む１６ビット整数値信号であった場合について順に説明する。
図１４Ａを参照して、もともと浮動小数点形式であった入力信号サンプルＸの１６ビット整数値化と、差分信号Ｚの生成を説明する。図において″ｘ″は″０″又は″１″のいずれかをとり得る（非ゼロとなり得る）。ＭＸは浮動小数点形式の入力信号サンプルＸの仮数部２３ビットを示し、上位ｎ（＝Ｅ−Ｅ０）ビットの整数部分と小数点以下の端数部分の境界を示す小数点位置をＰＤで示してある。サンプルＸの指数部ＥをＥ−８に削減することにより仮数部ＭＸの小数点位置ＰＤは８ビット上位にシフトする。その結果、図１４Ａの例では仮数部ＭＸの上位ｎ−８＝２ビット″ｘｘ″がシフト後の仮数部内の整数部分となっている。その整数部分２ビットの隣接上位側に″１″を加えてた″１ｘｘ″を１６ビット整数値信号サンプルＹの最下位ビットとする。【００４９】  １６ビット整数値信号サンプル系列Ｙのサンプルを８ビット上位にシフトし、即ち、最下位に８ビットの″０″を付加してから浮動小数点形式の信号サンプル系列Ｙ’に変換する。従って、得られた浮動小数点形式の信号サンプル系列Ｙ’の指数部Ｅは８を加算されたことになり、入力信号サンプル系列Ｘの指数部Ｅと同じ値になる。信号サンプル系列Ｙ’の仮数部ＭＹ’は、８ビット上位にシフトされた整数値信号サンプル系列Ｙの最上位の″１″より下位の整数部分、ここでは２ビットの″ｘｘ″を最上位ビットとし、それより下位は全て″０″とすることにより得られる。図１４Ａでは便宜上８ビットシフトする前のサンプル系列Ｙの最上位の″１″より下位の整数部″ｘｘ″と浮動小数点形式の信号サンプル系列Ｙ’に変換後の仮数部ＭＹ’の関係を示している。差分信号Ｚの仮数部ＭＺは仮数部ＭＸとＭＹ’の差分であり、Ｚの仮数部ＭＺの上位（ｎ−８）ビット、ここでは最上位２ビット、は″００″となり、それより下位（端数部分）は仮数部ＭＸの対応するビット位置の値と同じである。即ち、仮数部ＭＺの最上位の整数部分″００″に続く下位の全ビットは非ゼロとなり得る。【００５０】  差分信号Ｚについては仮数部Ｍのこの非ゼロとなり得る下位２３−（ｎ−８）ビットのみを符号化すればよい。仮数部ＭＺの必ず０となる上位（ｎ−８）ビットは、受信側で復号した整数値信号サンプル系列Ｙの最上位の″１″より下位の全ビット数と同じである。この仮数部Ｍの非ゼロとなり得る領域は図１５Ａに示すように、整数部分のビット数（ｎ−８）が増加すると共に減少する。
図１４Ｂは２４ビット整数値信号から浮動小数点形式の入力信号サンプル系列Ｘが生成された場合であり、従って、サンプル系列Ｘの仮数部ＭＸは図１４Ｂに示すように小数点ＰＤより下位で全ての桁が″０″となっている点が図１４Ａの仮数部ＭＸと異なる。図１４Ｂにおいても入力信号サンプルＸの指数部ＥをＥ−８にすることにより小数点ＰＤの位置が８ビット上位側にシフトするが、その結果から生成される１６ビット整数値信号サンプル系列Ｙは図１４Ａの場合と同じになる。従って、整数値信号サンプル系列Ｙを浮動小数点形式に変換したときの仮数部ＭＹ’も図１４Ａの場合と同様である。【００５１】  しかしながら、差分信号の仮数部ＭＺは仮数部ＭＸとＭＹ’の差分であり、図１４Ｂに示すように差分信号Ｚの仮数部ＭＺの整数部分は″００″となり、それより下位８ビットが非ゼロとなり得るビット範囲であり、更にその下位側は全てのビットが″０″となる。この非ゼロとなり得るビットの範囲は整数部分のビット数が増加するにつれ図１５Ｂに示すように下位側にずれていく。
図１４Ｃは極性１ビットを含む１６ビット整数値信号サンプルから浮動小数点形式の入力信号サンプルが作られている場合である。従って、２３ビットの仮数部ＭＸにおいて、小数点ＰＤと隣接する下位側８ビットは全て″０″であり、それより更に下位の桁も全て″０″である。小数点以下の桁数ｈはｈ＝２３−ｎとｎにより変化するが、８より小さくはならない点が図１４Ｂの場合と異なる。【００５２】  図１４Ｃにおいても入力信号サンプル系列Ｘの指数部ＥをＥ−８にすることにより小数点ＰＤの位置が８ビット上位側にシフトし、シフト後の整数部分″ｘｘ″から１６ビット整数値信号サンプル系列Ｙが図１４Ａ，１４Ｂと同様に生成される。従って、サンプル系列Ｙを浮動小数点形式に変換したときの仮数部ＭＹ’も図１４Ａ，１４Ｂの場合と同じである。また、差分信号Ｚの仮数部ＭＺは図１４Ｂの場合と同様にその最上位（ｎ−８）桁の整数部分が″０″となり、それに続く下位８ビットは非ゼロを取りえる範囲であり、その更に下位ビットは全て″０″となる。この場合も整数部分の桁数（ｎ−８）が増加すると図１５Ｂに示すように非ゼロとなり得る８ビットの下位側の″０″の桁数も減っていくが、８桁より小さくなることはない。【００５３】  以上の説明から明らかなように、符号小数点形式の入力信号サンプルＸのもとの信号が２４ビット整数値信号、１６ビット整数値信号、浮動小数点形式信号のいずれの場合であっても、８ビット切り捨てによる１６ビット整数値信号サンプルＹを生成するには、入力信号サンプルＸの指数部ＥをＥ−８として小数点位置を８ビット上位側にシフトし、仮数部ＭＸの整数部分である上位（ｎ−８）ビット、図の例では″ｘｘ″、に対しその上位側に″１″を加えた整数値″１ｘｘ″を最下位ビットとする１６ビット整数値信号サンプル系列Ｙを構成すればよい。また、差分信号Ｚの仮数部ＭＺは、入力信号サンプルＸの仮数部ＭＸの最上位（ｎ−８）ビットを″０″とすることにより得られる。【００５４】  このようにして得られた１６ビット整数値信号サンプルＹに対しては、図１の実施形態と同様に圧縮符号化すればよい。一方、差分信号Ｚについては、その仮数部ＭＺを、常に″０″である最上位（ｎ−８）ビットについては符号化せず、それより下位の非ゼロとなり得る８ビットの領域と、更にそれより下位の残りの（２３−ｎ）ビットの領域を別々に圧縮符号化する。
上述の例では１６ビット整数値とするため、２３ビットの仮数部の小数点の位置を８ビット上位にシフトして、そのシフトした小数点以下を切り捨てる場合を示したが、一般に、２２≧ｍ≧８の任意の整数ｍビットの切捨てを行うには、入力信号サンプルの指数部ＥをＥ−ｍとして仮数部ＭＸの上位（ｎ−ｍ）ビットを整数部分とするように切捨てを行えばよい。また、差分信号Ｚの仮数部の圧縮符号化は、最上位（ｎ−ｍ）ビットの″０″は符号化せず、その下位のｍビットの非ゼロとなり得る領域と、更に下位の残りの（２３−ｎ）ビットの領域に分けて別々に符号化することにより効率のより符号化が可能となる。【００５５】  図１６に符号化装置の例を図１２と対応する部分に同一参照符号を付けて示す。選択部１０２からの浮動小数点形式の入力信号サンプル系列Ｘは桁調整部３１で図１４Ａ，１４Ｂ，１４Ｃで説明したように指数部ＥをＥ−８とすることにより小数点位置は上位側に８ビットシフトされる。整数化部１２では８ビットシフトされた小数点以下の端数部分を切り捨てて、整数部分の上位側に″１″を付加して１６（＝２４−８）ビットの整数形式の信号サンプル系列Ｙとする。この信号サンプル系列Ｙが圧縮部１３で可逆圧縮され、符号Ｃａが出力される。【００５６】  またこの１６ビット整数形式の信号サンプル系列Ｙは逆桁調整部３２で桁調整部３１と同一ビット数８であるが逆方向に、つまり最下位に８ビットの″０″を挿入することにより上位に８ビットシフトして、２４ビットの整数形式信号サンプルとされる。この２４ビット整数形式に変換された信号サンプルは浮動小数点化部１５で浮動小数点形式の信号サンプル系列Ｙ′に変換される。この浮動小数点形式信号サンプル系列Ｙ′と入力信号サンプル系列Ｘとの差分が減算部１６でとられ、浮動小数点形式の差分信号Ｚが生成される。現実的にはこのような逆桁調整部３２、浮動小数点化部１５及び減算部１６の処理を行うことなく、差分生成部１４で整数化部１２よりの仮数部の整数部分の桁数ｎを用いて、ｎ≠０で各入力信号サンプルＸの仮数部ＭＸの下位８＋ｈ（＝１５−ｎ）ビットを取出し、ｎ＝０では指数部Ｅと仮数部ＭＸとを取出して差分信号Ｚとすればよい。差分信号Ｚは図１２の例と同様に、分析部１３２の出力に応じて圧縮部１７又は１３１に与えられる。【００５７】  圧縮部１７は分配部３３と２つの圧縮部１７ｈ、１７ｃとから構成されている。この差分信号Ｚは分配部３３に入力され、分配部３３には整数化部１２よりシフト後の各サンプルＸの仮数部の整数部分の桁数ｎが入力され、差分信号Ｚの各サンプルは、ｎ≠０の場合、桁数ｎに基づく非ゼロになり得る桁部分Ｚｈ、つまり下位のｈ＝１５−ｎビットと、整数形式信号サンプル系列Ｙを１サンプル２４ビットから１サンプル１６ビットに変更したことに基づく、つまり整数形式信号サンプルＹのビット数に基づく、非ゼロになり得る桁部分Ｚｃ、つまり下位第（ｈ＋１）ビット〜第（ｈ−８）ビットとに分配する。ｎ＝０の場合、指数部Ｅの８ビットと仮数部の下位２３−８ビットを桁部分Ｚｈとして、上位８ビットを桁部分Ｚｃとして分配する。桁部分Ｚｈは圧縮部１７ｈで、桁部分Ｚｃは圧縮部１７ｃでそれぞれエントロピー符号化などにより可逆圧縮符号化され、符号列Ｃｂ１，Ｃｂ２として出力される。【００５８】  従って圧縮部１７ｈには、主として仮数部Ｍにおける下位の非ゼロになり得るビットが入力され、これが可逆圧縮符号化される。もともとのディジタル信号が２４ビット又は１６ビットの整数値であれば図１４Ｂ，１４Ｃに示したようにｎ＝０以外は圧縮部１７ｈに入力される下位ｈ桁部分Ｚｈは全て″０″になるから、効率よく圧縮される。
圧縮部１７ｃでは、図１４Ａ，１４Ｂ，１４Ｃに示したように、入力信号サンプルＸがもともと一般浮動小数点の場合、２４ビット整数値の場合、１６ビット整数値の場合に関係なく、非ゼロになり得る下位第（ｈ＋１）〜第（ｈ＋８）ビットの８ビットが可逆圧縮符号化される。このようにすることにより、図１中の圧縮部１７で差分信号Ｚ中の非ゼロになりうるビットのすべてをまとめて圧縮符号化する場合より全体として効率よい圧縮が可能となる。図１６から理解されるように、この圧縮部１７ｈと１７ｃを用いる手法は、図１２に示した実施形態の符号化装置のみならず、図１、８、９、１１にそれぞれ示した各実施形態の符号化装置のいずれにも適用できる。【００５９】  この図１６に示した符号化装置と対応する復号化装置の実施形態を図１７に図１３の復号装置と対応する部分に同一参照番号を付けて示す。補助符号抽出部２０２からの補助符号Ｃｄにより分離部２０３から符号列Ｃａ，Ｃｂ１，Ｃｂ２が取り出された場合は、符号列Ｃａは伸張部２１で可逆伸張復号されて１サンプル１６ビット整数形式の信号サンプル系列Ｙが復号される。伸張部２３は２つの伸張部２３ｈ、２３ｃと合成部４１とにより構成されており、符号列Ｃｂ１とＣｂ２はそれぞれ伸張部２３ｈ，２３ｃで可逆伸張復号化され、これらの復号されたビット列Ｂｈ，Ｂｃは合成部４１に入力される。合成部４１には伸張部２１で復号された各サンプルごとの整数値の最上位の″１″より下位のビット数ｎも入力される。ｎ≠０の場合は伸張部２３ｈの出力ビット列Ｂｈから、ｈ＝１５−ｎビットが取出され、伸張部２３ｃの出力ビット列Ｂｃから８ビットが取出されこれらが仮数部Ｍの２３ビット中の下位ｈビットと、その上位の８ビットとして合成される。以下同様に桁数ｎに応じ、ビット列ＢｈとＢｃからそれぞれｈビットと８ビットが取出されて合成される。ｎ＝０の場合は指数部Ｅとしての８ビットと２３−８＝１５ビットがビット列Ｂｈから取り出され、ビット列Ｂｃから８ビットが取り出され、この８ビットは前記１５ビットの上位側に挿入され、２３ビットの仮数部が生成される。【００６０】  復号された１６ビット整数形式信号サンプルＹは桁調整部４２で下位に８ビットの″０″を挿入することで上位へ８ビットシフトされ、２４ビット整数形式信号サンプルが得られる。その後、浮動小数点化部１５で３２ビット浮動小数点形式信号サンプル系列Ｙ′に変換される。この信号サンプル系列Ｙ′と差分信号Ｚとが合成部２４で合成されて、浮動小数点形式の信号サンプル系列Ｘが再生される。補助符号Ｃｄにより分離部２０３で符号列Ｃｃが得られた場合は、符号列Ｃｃを伸張部２２１で復号して直接信号サンプル系列Ｘが得られる。【００６１】  上述において、整数形式信号サンプル系列Ｙを１サンプル１６ビット、２４ビットの場合としたが、２４ビット以下の任意の数ｍとしてもよく、その数ｍに応じて整数形式信号サンプルＹのサンプル当りのビット数変更に基づく、非ゼロになり得る桁数を決定すればよい。更に上述において、入力浮動小数点形式信号サンプルＸを、例えば１０２４サンプルごとのフレーム、または連続する複数のサンプルごと分割し、その分割単位ごとに圧縮符号化処理してもよい。このように分割単位ごとに圧縮符号化する場合は、整数化するビット数を分割単位ごとに都合のよいように決め、そのビット数を指定する補助符号も出力するようにしてもよい。【００６２】  図１６に示す符号化装置の圧縮部１７として図１で示した第１実施形態による圧縮部１７を使用し、図１７の復号化装置の伸張部２３として図７における伸張部２３を使用してもよい。即ち、その場合は符号化装置において１６ビットの整数値化を行うが、差分信号Ｚは０となる領域と非ゼロとなり得る領域の２つに分けず、図６で説明したように、仮数部の下位ｈ＝２３−ｎビットのみ符号化を行う。従って復号化装置の伸張部２３においては、符号Ｃｂからｈビットを復号化し、その上位にｎビットの″０″を挿入して仮数部を生成する。
第５実施形態
前述の図１、８、９、１１及び１２で説明した各実施形態において、圧縮部１７による圧縮符号化は、差分信号Ｚを例えば１フレームごとに時間方向に抽出したビット列を可逆圧縮符号化するように構成してもよい。その符号化方法を図１８を参照して以下に説明する。【００６３】  図１８では１フレームが１０２４サンプルにより構成された場合を示し、また各サンプルｉ（ｉ＝０〜１０２３）に対応して入力信号サンプル系列Ｘのサンプルの仮数部Ｍのｎ（＝Ｅ−Ｅ０）ビット整数部分の整数値と、ｈ（＝２３−ｎ）ビットの端数部分のビット列を示してある。第１実施形態で図６を参照して説明したように、差分信号Ｚの各サンプルの仮数部Ｍの整数部分に対応する上位ｎビットは全て″０″であり、端数部分である下位ｈ＝２３−ｎビットが非ゼロとなり得るビットである。図１８の符号化方法では、差分信号の仮数部の下位ｈビットのみを、それらｈビットの最上位ビットＭＳＢをそろえて配列し、その配列における各サンプルの振幅方向の各ビット位置ｊのビットを時間方向に順次抽出して得たビット列Ｅｊを符号化を行う。【００６４】  サンプルによっては数部のビット長ｈ＝２３−ｎは異なるので、振幅方向における同一ビット位置ｊ（ｊ＝０〜ｈｍａｘ−１；ｈｍａｘはフレーム内のサンプルの最大端数部分ビット長）の時間方向のスキャンにおいて、ビットが存在しないサンプルはスキップする。スキップするか否かの判定は、サンプルｉの振幅方向のビット位置ｊで、そのサンプルの端数部分ビット長ｈとｊを比較し、ｈ≧ｊであればそのビット位置のビットを抽出し、ｈ＜ｊであればスキップして次のサンプルｉ＋１を判定すればよい。
例えばＭＳＢ側からｊ＝１７のビット位置における時間方向のスキャンにおいて、端数部分のビット長ｈ＝２３−６＝１７のサンプル番号ｉ＝０のサンプルは最下位にビットを有するが、端数部分のビット長２３−８＝１５のサンプル番号ｉ＝１のサンプルはＭＳＢ側から第１５番目以降（ｊ＝１４以降）にビットを持たないのでスキップされる。これら第１５番目の抽出されたビットを１フレーム分まとめてビット列Ｅ１６としてエントロピー符号化する。他のビット位置ｊについても同様である。エントロピー符号化として算術符号やゴロム符号を行うと階層化ができるので便利である。【００６５】  復号側においては、復号した各整数値信号サンプルＹの最上位の″１″より下位のビット数ｎから整数部分の桁数ｎがわかるので、フレーム内の各差分信号Ｚの仮数部における端数部分のビット長ｈ＝２３−ｎがわかる。従って、復号した各ビット列Ｅｊに対し、フレーム内のサンプル番号ｉを順次走査してサンプル番号毎に振幅方向のビット位置ｊをｈと比較し、ｊ≦ｈならビット列Ｅｊ中のビット値をビット位置（ｉ，ｊ）に割り当てることで図１８の仮数部における端数部分を再構成することができる。この再構成された各サンプルの端数部分に対し、その上位側にサンプルに対応するｎビットの″０″を挿入することで差分信号の２３ビットの仮数部Ｍを再構成することができる。【００６６】  図１９は図１８の符号化方法を図１、８、９、１１、１２におけるの圧縮符号化部１７に適用した場合の機能構成を示す。差分生成部１４（例えば図１参照）からの差分信号Ｚの１フレーム分のサンプルｚ０〜ｚ１０２３が入力されると共に、対応する整数部分桁数ｎ０〜ｎ１０２３が記憶部１７Ｂに記憶される。制御部１７Ｃは各サンプルｉの整数部分桁数ｎｉに基づいて、入力差分信号サンプルｚｉの仮数部の上位ｎビットを除くｈ＝２３−ｎビットの端数部分をバッファ１７Ａに取り込む。これにより図１８に示した仮数部における端数部分の配列が得られる。次に、制御部１７Ｃは振幅方向のビット位置ｊ（＝０〜ｈｍａｘ−１）において時間方向にサンプルを走査し、ｈ≧ｊを満足するビットを抽出してビット列Ｅｊを得て、圧縮部１７Ｄに与える。バッファ１７Ａ、記憶部１７Ｂ、制御部１７Ｃはビット列生成手段を構成している。圧縮部１７Ｄはビット列Ｅｊを可逆圧縮符号化して符号Ｃｂを出力する。【００６７】  図２０は図１９の圧縮符号化部１７に対応する差分信号復号化手段としての図７、１０、１３における伸張部２３の機能構成を示す。受信された符号Ｃｂは復号化部２３Ｄで復号されてビット列Ｅｊが得られる。一方、桁計算部２１Ａ（例えば図７参照）からの整数桁数ｎの１フレーム分ｎ０〜ｎ１０２３が記憶部２３Ｂに記憶され、制御部２３Ｃはサンプル番号ｉの順に対応する端数桁数ｈｉ＝２３−ｎｉからｈｉ≧ｊを満足するビット位置（ｉ，ｊ）に対し、ビット列Ｅｊから順に１つずつビットを分配してバッファ２３Ａ内に配列記憶することを繰り返すことにより、図１８の端数部分のビット配列が得られる。１フレームについての全ビット列Ｅｊ，ｊ＝０〜ｈｍａｘ−１のビット配列が終了すると、制御部２３Ｃはバッファ２３Ａ内の各サンプルｉに対応した端数部分の上位側にｎｉビットの″０″を挿入して差分信号の仮数部を生成し、差分信号Ｚとして合成部２４（図７）に与える。バッファ２３Ａ、記憶部２３Ｂ、制御部２３Ｃは再構成手段を構成している。【００６８】  図１８の差分信号の仮数部の符号化においては、各ビット位置ｊで時間方向にビットを集めてビット列Ｅｊとし、符号化する場合を示したが、ビット位置の走査方法の他の例を以下に説明する。図２１ではサンプルの振幅方向の予め決めた複数ビット幅に渡って、ビット位置ｊの最後のサンプルのビットからビット位置ｊ＋１の最初のサンプルのビット位置に続けて走査してビットを集め、複数のビット列Ｅ２，Ｅ１８，．．．を生成している。従って、得られるビット列Ｅｊの数は端数部分の最大ビット数ｈｍａｘより少なくなる。このビット走査においても、各サンプルｉのｈｉ＜ｊとなるビット位置はスキップする。このようなビット走査を行っても、各サンプルｉの端数部分桁数はｈｉ＝２３−ｎｉからわかるので、復号側においてはビット列Ｅｊのビットを前述と同様に分配していくことにより端数部分のビット配列を再構成することができる。【００６９】  図２２は更に他のビット走査の例を示す。図２１ではビット位置ｊのフレームの終わりからビット位置ｊ−１のフレームの始めに連続させることを複数ビット幅繰り返して走査したのに対し、ここではその複数ビット幅を振幅方向にＭＳＢ側から走査し、各サンプルｉのそのビット幅の終わりから次のサンプルｉ＋１のビット幅の始めに続けて操作することをフレームの最後のサンプルまで繰り返す。この例においても、条件ｈｉ＜ｊとなるビット位置はスキップされる。
図２３は図１８のビット走査における例外動作を説明するためのものである。切捨てによって整数部分がゼロになってしまう場合、即ちＥ−Ｅ０が負になる場合には指数部も含めて全３２ビットを符号化して送る必要がある。そこで、図２３に示すように、サンプルｉ＝３の整数部分がゼロであった場合（従ってｎ＝０）は、図１の圧縮部１７においてこのサンプルｉ＝３を仮数部のビット走査から除外して別途符号化する。【００７０】  入力信号サンプル系列Ｘが整数から変換された浮動小数点形式の信号サンプル系列であった場合の、元の整数の桁数と切り捨てた整数値の桁数が異なる場合、例えば図１４Ｂ，１５Ｂで説明したように、２４ビット整数をそのまま浮動小数点とした信号サンプル系列を入力とし、１６ビットの整数に切り捨てて符号化した場合、差分信号サンプルの仮数部の端数部分の桁のうち、上位８桁は非ゼロとなり得るが、それ以外はゼロとなる。このような入力信号サンプル系列Ｘを符号化する場合に、例えば図１３の手法を使えば、ビット列Ｅ０〜Ｅ７は非ゼロとなり得るが、それより下位のビット列Ｅ８〜Ｅ２１は全て″０″となるので、効率的な符号化が可能である。同様に、図２１、２２の手法を使っても効率的な符号化が可能なことは容易に理解される。【００７１】  例えばオーディを信号の加工などで必要に応じて行われるように、２４ビットの整数値信号サンプルを１．５倍（２進法で１．１倍）してから浮動小数点形式の信号に変換し、１６ビットの整数に切り捨てて符号化する場合、２４ビット整数値信号サンプルを１．５倍すれば少なくと小数点以下第１位が非ゼロとなり得るビットになる。即ち、図１４Ｂに示すサンプルＸの仮数部ＭＸの小数点ＰＤ以下第１位が非ゼロとなりえる。そのため、差分信号の仮数部ＭＺの非ゼロとなり得る領域は下位側に１ビット増加して９ビットになるが、この場合でも、その９ビットより下位側は全て″０″となるので、図１８、２１、２２、２３の手法を使って効率的な符号化が可能となる。また、全てゼロでなくても非ゼロ（即ち″１″）の頻度が桁ごとに偏る場合があるので、偏りに合わせて適応的に可逆符号化を適用することもできる。【００７２】  いずれの場合にも、差分信号の仮数部における端数部分のＭＳＢ側からの非ゼロとなり得る桁数がそろうので、効率的に圧縮符号化できる。
上述の図１８〜２３の仮数部の符号化方法は図１に基づく第１実施形態に適用する例として説明したが、図１４Ａ〜１７で説明した１６ビット整数値に切り捨て処理を行う場合にも適用できる。その場合は、図１６の圧縮部１７を図１９のように構成し、図１７の伸張部２３を図２０の伸張部のように構成すればよい。
また、端数部分の桁数が同じになるようにサンプルを並び替えてスキャンしてもよい。例えば桁数が２３となるサンプルだけを集め、次に桁数が２２となるサンプルを集め、順次桁数が小さくなるサンプルを集める。この並び替えの逆は追加情報がなくても一意に決まり、スキャンするサンプルの数の管理が容易になる。【００７３】  図１８に示したビット配列のスキャンでは、フレーム毎に差分信号Ｚの各サンプルｚの仮数部Ｍ中の非ゼロとなり得るｈビットをＭＳＢ側にそろえて時間軸方向に各ビット位置でスキャンしてビット列Ｅｊを生成する例を示したが、図２４に示すように、各サンプルの非ゼロとなり得るｈビットをＬＳＢ側にそろえて同様のスキャンを行ってもよい。この場合も、圧縮符号化部１７としては、図１９に示したものと同様に構成すればよく、単に制御部によるスキャンの制御を変えるだけである。また、復号化装置における伸張復号部２３も図２０で示したものと同様に構成できる。
第６実施形態
図２５は前述の図１、８、９、１１、１２に示した符号化装置における圧縮部１７の他の実施形態を示す。この実施形態では、非ゼロとなり得る端数部分のＬＳＢを同一ビット位置にそろえて整数値のサンプル列とし、サンプル列方向の冗長性を除いて圧縮符号化を行うものである。図２５に示すように、圧縮符号化部１７は、端数部分抽出部１７Ｅと、フレーム内平均部１７Ｆと、減算器１７Ｇと、符号化部１７Ｄ１、１７Ｄ２とから構成されている。差分生成部１４からの差分信号Ｚは端数部分抽出部１７Ｅで各サンプルの仮数部Ｍから下位ｈ＝２３−ｎビットの端数部分を１つの整数値サンプルＦとして抽出する。フレーム内平均部１７Ｆは各フレーム毎にフレーム内の抽出された整数値サンプルの平均値Ｆａｖｅを計算し、符号化部１７Ｄ１で符号化して符号列Ｃｂ１を出力する。平均値Ｆａｖｅと各整数値サンプルＦとの差を誤差サンプルΔＦとして減算器１７Ｇで求め、その誤差サンプルΔＦを符号化部１７Ｄ２で予測符号化を行い、予測誤差を可逆圧縮符号化して符号列Ｃｂ２を出力する。予測パラメータは別途補助情報として送ってもよいし、符号化装置と復号化装置で共通に適応的に更新してもよい。【００７４】  図２６は図２５に対応する復号化装置における復号伸張部２３の構成例を示し、図７、１０、１３に示した復号化装置における伸張部２３に適用できる。この実施形態では、伸張部２３は伸張部２３Ｂ，２３Ｃと、加算部２３Ｄと組立て部２３Ａとから構成されている。伸張部２３Ｂは、受信した符号列Ｃｂ１を伸張復号化してフレームごとの平均値Ｆａｖｅを出力する。伸張部２３Ｃは受信した符号列Ｃｂ２を伸張復号化して予測誤差を求め、更に予測復号化を経て誤差サンプルΔＦを出力する。誤差サンプルΔＦは平均値Ｆａｖｅと加算部２３Ｄで加算され、整数値サンプルＦが得られる。組立て部２３Ａはこの整数値サンプルＦと、伸張部２１の桁数計算部２１Ａからの桁数ｎとを使って差分信号Ｚを組み立てる。【００７５】  この実施形態は図１６及び１７の実施形態にも適用でき、その場合は、図１６及び１７における圧縮符号化部１７と伸張部２３をそれぞれ図２５及び２６における圧縮符号化部１７と伸張部２３で置き換えればよい。
第７実施形態
図２７は、図１、８、９、１１及び１２における圧縮部１７に適用する第７実施形態の圧縮部の構成を示す。図１８〜２３では非ゼロとなり得るビット列の配列をスキャンしてビット列を生成し、そのビット列を符号化する場合についてさまざまなスキャンの例と共に説明したが、この第７実施形態ではこれらの複数のスキャン方法のうち、最適なものを１つ選択してその出力ビット列を符号化する。【００７６】  図１９の場合と同様に、フレーム毎に整数化部１２（例えば図１参照）からのそれぞれのサンプルに対応する桁数ｎ（ｎ０，ｎ１，ｎ２，．．．，ｎ１０２３）が記憶部１７Ｂに格納され、制御部１７Ｃの制御により差分信号Ｚの仮数部Ｍの非ゼロとなり得るビットである下位ｈ＝２３−ｎビットがバッファ１７Ａ１，１７Ａ２，１７Ａ３に取り込まれ、全てのバッファに同じように、例えば図１８に示したようにＭＳＢ側に位置をそろえて格納される。制御部１７Ｃはバッファ１７Ａ１に格納されたビット配列に対しては、図１８に示したように振幅方向の各ビット位置で時間方向にスキャンして１つのビット列Ｅｊ１を生成する。バッファ１７Ａ２に格納されたビット配列に対しては、例えば図２１に示すように、振幅方向の予め決めたビット幅毎に、その幅内のビットを時間方向に順次スキャンしてビット列Ｅｊ２を生成する。バッファ１７Ａ３に格納されているビット配列に対しては、例えば図２２に示すように振幅方向の予め決めたビット幅毎にそのビット幅内で振幅方向にスキャンすることを全サンプルに対し順次連続して行うことによりビット列Ｅｊ３を生成する。【００７７】  制御部１７Ｃは、フレーム内で各スキャン方法による各ビット列Ｅｊ中のビット値の偏りを例えば”１”の計数値として求め、それに基づいて各スキャン方法によるフレーム内の”１”の偏りの大きさを求め、どのスキャン方法によれば最も偏りが大きい（エントロピーが小さい）かを判定し、最も偏りの大きいスキャン方法に対応するバッファからのビット列Ｅｊを選択する選択信号ＳＬを選択部１７Ｅに与える。選択されたビット列は符号化部１７Ｄで符号化され、符号列Ｃｂとして出力される。
なお、フレーム内のビット値”１”の偏りに対応するエントロピーは、例えば各ビット列Ｅｊのビット数をｍｊ、そのビット列中の”１”の数をｋｊとすると次式
2005025072.tif 000004
で表される。Σｊはｊの全てのとり得る値（ビット列の数）についての加算を表す。ビット値”１”の偏りが大きいほどこのエントロピーは小さくなる。このエントロピーは、フレーム内のビット配列をどのようにスキャンし、どのようにビット列に分割するかによって異なる。従って、この第７実施形態では、フレーム毎に非ゼロとなり得るビットの配列に対し、最適なスキャン方法を選択している。【００７８】  図２７の圧縮部１７に対応する図７、１０、１３における伸張部２３の構成例を図２８に示す。この構成は、図２０で示した伸張部２３の構成において、復号部２３Ｅが追加された構成となっている。補助符号Ｃｅを復号部２３Ｅにより復号して選択信号ＳＬが得られ、制御部２３Ｃに与えられる。制御部２３Ｃは与えられた制御信号に対応するスキャン方法と桁数ｎに基づいて復号部２３Ｄからのビット列Ｅｊをバッファ２３Ａ内に配列格納してサンプルごとの非ゼロとなり得るビット列とする。その後、サンプルごとに非ゼロとなり得るｈｉビットの上位側にｎｉビットの”０”を付加して仮数部Ｍとし、その仮数部Ｍを差分信号Ｚとして出力する。【００７９】  図２９は図２７の変形例であり、ここではバッファ１７Ａ１，１７Ａ２，１７Ａ３からのビット列Ｅｊ１，Ｅｊ２，Ｅｊ３をそれぞれ符号化部１７Ｄ１，１７Ｄ２，１７Ｄ３で符号化する。分析部１７Ｇはそれらの符号化出力のうち、最も情報量の少ないものを判定し、その符号出力を選択する選択信号ＳＬを符号化部１７Ｆに与えて符号Ｃｅを得ると共に、選択部１７Ｅに与える。選択部１７Ｅは、選択信号により指定された最も情報量の少ない符号列を符号列Ｃｂとして出力すると共に符号Ｃｅも出力する。図２９の圧縮部１７に対応する復号化装置の伸張部２３としては図２８の伸張部２３をそのまま使用することができる。【００８０】  図１１における圧縮部１７と１３１の代わりに、図３０に示す構成としてもよい。この構成は可変ビット圧縮部１７−１と、可変ビット抽出部１７−２と、仮数部圧縮部１３１−１と、仮数部抽出部１３１−２とが設けられている。可変ビット圧縮部１７−１は差分信号Ｚの仮数部Ｍから桁数ｎを使ってｈ＝２３−ｎビットの非ゼロとなり得るビット（可変ビット）を抽出し、圧縮符号化して符号Ｃｂを出力する。可変ビット抽出部１７−２は差分信号Ｚの仮数部Ｍからｈビットの非ゼロとなり得るビット列ＭＤを抽出し、そのまま出力する。仮数部抽出部１３１−１は差分信号Ｚの仮数部Ｍを圧縮符号化し、符号Ｃｍを出力する。仮数部抽出部１３１−２は差分信号Ｚの仮数部Ｍを抽出し、そのまま出力する。効率推定部１３４は、これらＣｂ，ＭＤ，Ｃｍ，Ｍ及びＺの情報量をそれぞれ計算し、最も情報量の少ないものを判定し、それを選択する選択信号ＳＬを補助符号化部１０３で符号化すると共に出力部１０４に与える。出力部１０４は与えられたＣｂ，ＭＤ，Ｃｍ，Ｍ，Ｚのうち、選択信号ＳＬに対応するものを符号Ｃｂとして選択出力すると共に符号Ｃｅも出力する。【００８１】  図３１は図３０の構成に対応して、図１０の復号化装置における伸張部２３、２３１、選択部２３３、補助復号部２３４に置き換えられる。ただし、分析部２３２は不要である。図３１において、符号Ｃｅは��号部２３４で復号されて選択信号ＳＬが得られ、これにより選択部２３３を制御する。即ち、入力符号Ｃｂを可変ビット列の圧縮符号Ｃｂとして復号部２３に与えるか、そのまま可変ビット列（非ゼロとなり得るビット列）ＭＤとして組立部２３ａに与えるか、仮数部Ｍの圧縮符号Ｃｍとして復号部２３１に与えるか、仮数部Ｍそのものとして出力するか、のいずれかＳＬに対応する処理を実行する。復号部２３は符号列Ｃｂを復号して非ゼロとなり得るビット列ＭＤを生成し、組立部２３ａに与える。組立部２３ａは、桁数ｎに基づいてｎビットの”０”を非ゼロとなり得るビット列ＭＤの上位に付加して仮数部Ｍを生成する。
変形例
図５に示した関係は切り捨て、つまり必ず絶対値が小さくなるように入力浮動小数点信号サンプル系列Ｘの各サンプルを整数値としたが、浮動小数点化部１５で浮動小数点信号サンプル系列Ｙ′に再変換したあとでも指数部が、入力浮動小数点信号サンプル系列Ｘの対応サンプル間で変わらないようにすれば、必ずしも切捨てで整数にする必要はなく四捨五入でもよい。図３２に示すように、０〜１〜２〜…〜９と連続した浮動小数点入力に対し、切り捨てにより整数値にすると、０，１，２，…，９となる。従って入力浮動小数点から整数値を引いた誤差信号、つまり差分信号Ｚの仮数部は必ず正になる。これに対し、図３３に示すように四捨五入では０〜０．５〜１．５〜２．５〜…〜９．５と連続した入力浮動小数点が０，１，２，…，９となる。従ってもとの浮動小数点から再変換したあとの浮動小数点の値を引いた誤差信号、つまり差分信号Ｚは負の数にもなりうる。整数化の際に、２のべき乗の値に切り上げが生じた場合は、再変換した浮動小数点信号サンプル系列Ｙ′の各サンプルの指数部が、入力浮動小数点ディジタル信号系列Ｘのサンプルに対し変化し、仮数部は入力浮動小数点信号サンプル系列Ｘのそれとまったく異なるので圧縮には不利である。【００８２】  そこで以下に示す変形四捨五入を考える。図３４に示すように、０〜１〜２〜２．５〜４〜４．５〜５．５〜６．５〜８〜９．５〜…と連続した入力浮動小数点を０，１，２，３，４，５，６，７，８，９，…と整数化し、つまり図中に矢印で示すように、仮数部Ｍのｎビットの整数部分ＭＩが２のべき乗の直前の値２ｎ−１のときは端数部分ＭＦを四捨五入ではなく切捨てを行い、その他の場合は四捨五入する。誤差信号（差分信号）Ｚの正負の区別の極性に対して１ビットが必要になるが、四捨五入したサンプルについては誤差が０．５以下になるので仮数部の最大桁数は１ビット減る。このため極性もあわせた仮数部の桁数は切り捨ての際と同じである。ただし整数部分ＭＩが２のべき乗値２ｎの際は誤差の仮数部が一桁少なくてすみ、整数部分が２ｎ−１の際は誤差が正の場合のみ最大１までの誤差が生じるので特別扱いする必要がある。【００８３】  つまり差分信号Ｚの各サンプルごとの非ゼロになり得る桁の先頭ビットに極性ビットを付け、整数部分ＭＩが２ｎ−１の場合は非ゼロになり得る桁数ｈを示す符号も付けて圧縮符号化を行い、復号装置において、符号列Ｃｂを復号伸張したビット列から、整数部分の桁数ｎから求めた非ゼロになり得るビット数ｈと極性の１ビットを加えたビット数毎に分離し、整数部分が２ｎ−１の場合は、極性ビットと、非ゼロになり得る桁数ｈを示す符号と、その符号が示すビット数ｈとの合計ビット数を分離して差分信号Ｚの１サンプルを求める。なお、非ゼロとなり得る桁のみを符号化する場合は、振幅が大きい場合に効率がよく、振幅が大きい場合、２ｎ−１となる回数、つまり前記例外処理を行う回数は小さくなり、全体として圧縮効率を上げることができる。【００８４】  以上のように変形四捨五入をすることにより、浮動小数点入力と整数部分の誤差のエネルギーは切捨てより小さくでき、整数部分の系列の予測効率が改善される場合があり、しかも圧縮部１７において差分信号Ｚを、非ゼロになり得る桁についてのみ符号化することにより圧縮効率を高くすることができる。
この変形四捨五入による整数化は例えば、図３中に１点鎖線で示すように、ステップＳ２の次に、入力浮動小数点信号サンプル系列Ｘの整数部分ＭＩは２ｎ−１であるかを調べ、例えば仮数部Ｍの上位ｎ＝Ｅ−Ｅ０ビットが全て１かを調べ、全て１であれば、２のべき乗の直前の値であるから、ステップＳ３に移り切り捨て処理を行い、上位Ｅ−Ｅ０ビットが全て１でなければステップＳ６に移って、四捨五入処理を行う。
変形実施形態
図９に示した第２実施形態において、分析部１３２の判定結果に応じて圧縮部内による圧縮符号化か、圧縮部１３１による圧縮符号化を選択した。この選択を正確に行うには図１１に示したように実際に両圧縮部１７と１３１でそれぞれ符号化し、その結果により、圧縮効率が高い方の圧縮符号化の結果を採用する。後者の場合は正確であるが差分信号Ｚを直接圧縮符号化するには比較的大きな処理量と時間を必要とする。従って以下のようにしてもよい。【００８５】  バイト（８ビット）単位でのユニバーサル符号化の効率を推定する方法の一例として、バイトごとのエントロピーの計算をする方法がある。誤差信号つまり浮動小数点形式の差分信号Ｚを８ビット単位で０から２８−１（＝２５５）の整数ｙとみなし、その１フレーム内におけるｙの出現回数Ｌ（ｙ）からヒストグラムを作り、フレーム内のバイト数Ｂで割り算をしてｙについての密度関数ｐ（ｙ）を求める。
2005025072.tif 000005
この密度関数ｐ（ｙ）から平均エントロピーＨ（ｐ（ｙ））を求める。【００８６】
2005025072.tif 000006
【００８７】  ユニバーサル符号化では１バイトの数値をこの平均エントロピー（ビット）程度までに圧縮できる可能性があるので、この平均エントロピー値をフレーム内のバイト数Ｂ倍した値が、圧縮部１７による０以外になり得る桁についてのみを圧縮符号化した場合の１フレーム内の符号化ビット数の合計値より小さい場合には、バイト単位のユニバーサル符号化、つまり圧縮部１３１による圧縮符号化の方が有利となる。
このような圧縮部の選択を行うことができる構成を図３５に示す。図３５に示す符号化装置は図１１の構成に選択部１３３と、平均エントロピー計算部１３６と、判定部１３７とを加えたものである。図に示すように、差分生成部１４からの差分信号Ｚを平均エントロピー計算部１３６に入力して、先に述べたように、平均エントロピーＨ（ｐ（ｙ））を求め、このＨ（ｐ（ｙ））をバイト数Ｂ倍した値を求め、これと効率推定部１３４ａで推定された符号列Ｃｂ’の１フレーム分のビット数と判定部１３７で比較し、前者の方が小さければ、選択部１３３を制御して差分信号Ｚを圧縮部１３１で圧縮符号化し、後者の方が小さければ、圧縮部１７で圧縮符号化した符号列Ｃｂ’を符号列Ｃｂとして出力する。またいずれの圧縮部を選択したかを示す補助符号Ｃｅも出力する。なお前記エントロピーの計算の際に整数化部１２において切り捨てにより整数化を行った場合は、差分信号Ｚの各サンプルの仮数部Ｍの２３ビットを１バイト単位で出現回数Ｌ（ｙ）を求め、変形四捨五入の場合は各サンプルについて極性を含めて出現回数Ｌ（ｙ）を求める。【００８８】  以上のように、ユニバーサル符号化の効率を推定すれば、差分信号Ｚをユニバーサル符号化して、その１フレーム内での全符号化ビット数を求めて、分析選択部１３４で圧縮部を選択する場合よりも、処理量を少なくすることができる。このようなユニバーサル符号化の効率推定の利用は図８に示した実施形態にも適用することもできる。
上述において、整数形式信号サンプル系列Ｙを１サンプル１６ビット、２４ビットの場合としたが、これらは２４ビット以下の任意の数としてもよく、その数に応じて整数形式ディジタル信号系列Ｙのサンプル当りのビット数変更に基づく、ゼロ以外になり得る桁数を決定すればよい。このように分割単位毎に圧縮符号化する場合は、整数化するビット数を分割単位毎に都合のよいように決め、そのビット数を指定する補助符号も出力するようにしてもよい。
コンピュータによる実施形態
図１、８、９、１１、１２、１６、３５に示した符号化装置は図３６に示すように、バス６８で互いに接続されたＲＡＭ６１，ＣＰＵ６２，ハードディスク６３、ＲＯＭ６４、送受信部６５、入出力部６６、オーディオ・ビデオ入出力部６７などを有するコンピュータ６００により実施させてもよい。【００８９】  ＲＯＭ６４にはコンピュータの起動に関するプログラムが格納されており、ハードディスク６３にはコンピュータの動作システムプログラムが格納されている。この発明の符号化装置の機能構成を実行するプログラムは予めＣＤ−ＲＯＭ又はＤＶＤなどの記録媒体７１からＣＤ／ＤＶＤドライブ６６によりハードディスク６３に読み込んでおくか、通信回線を通して送受信部６５によりダウンロードしてハードディスク６３に読み込んでおく。
符号化する浮動小数点形式の信号サンプル系列Ｘは例えばオーディオ・ビデオ入出力部６７により外部から取り込んで、バッファとして動作させるハードディスク６３に一時記憶する。符号化を開始するには、符号化を実行するプログラムをハードディスク６３からＲＡＭ６１に読み込んで、その実行プログラムをＣＰＵ６２により実行する。符号化結果である符号Ｃａ，Ｃｂ（又はＺ），Ｃｃ等は送受信部６５により通信回線を通して送信してもよいし、ＣＤ／ＤＶＤドライブ６６によりＣＤ又はＤＶＤの記録媒体に記録保存してもよい。【００９０】  図７、１０、１１、１３、１７に示した復号化装置を図３６のコンピュータで実施する場合も同様に、復号化装置の機能構成を実行するプログラムをハードディスク６３に格納しておき、送受信部６５で通信回線から受信した符号Ｃａ，Ｃｂ（又はＺ），Ｃｃに対し復号プログラムを実行する。復号結果は表示器７３及びスピーカ７４に再生出力する。
この発明は音楽信号のみならず、音声信号、画像信号などに対しても適用することができる。
【図１】
2005025072.tif 000007
【図２】
2005025072.tif 000008
【図３】
2005025072.tif 000009
【図４】
2005025072.tif 000010
【図５】
2005025072.tif 000011
【図６】
2005025072.tif 000012
【図７】
2005025072.tif 000013
【図８】
2005025072.tif 000014
【図９】
2005025072.tif 000015
【図１０】
2005025072.tif 000016
【図１１】
2005025072.tif 000017
【図１２】
2005025072.tif 000018
【図１３】
2005025072.tif 000019
【図１４】
2005025072.tif 000020
【図１５】
2005025072.tif 000021
【図１６】
2005025072.tif 000022
【図１７】
2005025072.tif 000023
【図１８】
2005025072.tif 000024
【図１９】
2005025072.tif 000025
【図２０】
2005025072.tif 000026
【図２１】
2005025072.tif 000027
【図２２】
2005025072.tif 000028
【図２３】
2005025072.tif 000029
【図２４】
2005025072.tif 000030
【図２５】
2005025072.tif 000031
【図２６】
2005025072.tif 000032
【図２７】
2005025072.tif 000033
【図２８】
2005025072.tif 000034
【図２９】
2005025072.tif 000035
【図３０】
2005025072.tif 000036
【図３１】
2005025072.tif 000037
【図３２】
2005025072.tif 000038
【図３３】
2005025072.tif 000039
【図３４】
2005025072.tif 000040
【図３５】
2005025072.tif 000041
【図３６】
2005025072.tif 000042
【図３７】
2005025072.tif 000043
【国際調査報告】
2005025072.tif 000044
2005025072.tif 000045
2005025072.tif 000046
2005025072.tif 000047