JPWO2004114527A1 - 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム - Google Patents

浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム Download PDF

Info

Publication number
JPWO2004114527A1
JPWO2004114527A1 JP2005507254A JP2005507254A JPWO2004114527A1 JP WO2004114527 A1 JPWO2004114527 A1 JP WO2004114527A1 JP 2005507254 A JP2005507254 A JP 2005507254A JP 2005507254 A JP2005507254 A JP 2005507254A JP WO2004114527 A1 JPWO2004114527 A1 JP WO2004114527A1
Authority
JP
Japan
Prior art keywords
sample
signal
bit
bits
integer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005507254A
Other languages
English (en)
Other versions
JP4049792B2 (ja
Inventor
守谷 健弘
健弘 守谷
ダイ ヤン
ダイ ヤン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2004114527A1 publication Critical patent/JPWO2004114527A1/ja
Application granted granted Critical
Publication of JP4049792B2 publication Critical patent/JP4049792B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4087Encoding of a tuple of symbols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

各サンプルが極性S、8ビットの指数部E、23ビットの仮数部Mよりなる浮動小数点形式信号サンプルXを、整数化部12で切り捨てにより24ビット整数形式信号サンプルYに変換し、整数信号サンプルYを圧縮部13で符号化して符号列Caを出力する。差分生成部14で整数信号サンプルYの最上位の1より下位の桁数nに対応し、入力信号サンプルXの仮数部Mの下位23−nビットを取出し差分信号Zを生成し、差分信号Zを圧縮部17でエントロピィ符号化して符号列Cbを出力する。あるいは差分信号Zを圧縮せず、そのまま出力する。

Description

この発明は音声、音楽、画像などのディジタル信号をより低い情報量に圧縮された符号に変換する符号化方法、その復号化方法、符号化装置、復号化装置、これらのプログラムに関する。
音声、画像などの情報を圧縮する方法として、歪を許さない可逆な符号化方法がある。
圧縮率の高い非可逆の符号化を行い、その再生信号と原信号の誤差を可逆に圧縮することを組み合わせることで高い圧縮率で可逆な圧縮が可能となる。この組み合わせ圧縮方法が特許文献1に提案されている。この方法は前記文献に詳細に示されているが、以下に簡単に説明する。
符号器では、ディジタル入力信号(以下、入力信号サンプル系列とも呼ぶ)が、フレーム分割部で、例えば1024個の入力信号サンプルからなるフレーム単位に、順次分割され、このフレーム単位ごとにディジタル信号が非可逆圧縮符号化される。この符号化は、復号化時に元のディジタル入力信号をある程度再現できる方式であれば、入力信号に適した如何なる方式でもよい。例えば、上記ディジタル入力信号が音声であればITU−TのG.729標準として勧告されている音声符号化などが利用でき、音楽であればMPEG−4で採用されているTwin VQ(Transform−Domain Weighted Interleaved Vector Quantization)符号化などが利用できる。この非可逆圧縮符号は局部復号され、この局部信号と元のディジタル信号との誤差信号が生成される。なお、実際的には、局部復号はする必要なく、非可逆圧縮符号を生成する際に得られる量子化信号と元のディジタル信号との誤差を求めればよい。この誤差信号の振幅は通常は元のディジタル信号の振幅よりもかなり小さい。よって、元のディジタル信号を可逆圧縮符号化するよりも、誤差信号を可逆圧縮符号化する方が情報量を小さくできる。
この可逆圧縮符号化の効率を上げるために、この誤差信号の符号絶対値表現(極性と絶対値の2進数)されたサンプル列のフレーム内の全サンプルに対しそれらの各ビット位置、つまりMSB,第2MSB,…,LSB毎に、サンプル系列方向(時間方向)にビットを連結したビット列を生成する。即ち、ビット配列の変換が行われる。この各連結した同じビット位置の1024個のビットからなるビット列をここでは便宜上「等位ビット列」と呼ぶことにする。これに対し、各サンプルの極性も含む振幅値を表す1ワードのビット列を便宜上「振幅ビット列」と呼ぶことにする。誤差信号は振幅が小さいので、各サンプルの最上位から1つ又は連続する複数のビットは全て″0″となることが多い。そこで、それらのビット位置で連結して生成した等位ビット列は全て″0″のビット列となるので、予め決めた短い符号で表すことができ、誤差信号の可逆圧縮符号化効率を上げることができる。
これら等位ビット列が可逆圧縮符号化される。可逆圧縮符号化としては、例えば、同一符号(1又は0)が連続する系列がある場合や頻繁に出表する系列がある場合を利用した、ハフマン符号化や算術符号化などのエントロピィ符号化などを用いることができる。
復号化側では、可逆圧縮符号が復号化され、その復号信号に対し、ビット配列の逆変換が行われ、即ち、フレーム毎に等位ビット列を振幅ビット列に変換し、得られた誤差信号が順次再生される。また、非可逆圧縮符号が復号化され、この復号信号と再生された誤差信号とが加算され、最後に、フレームごとの各加算信号が順次連結されて、元のディジタル信号系列が再生される。
音声、画像などの情報の歪を許さない可逆な符号化方法としてはその他にも各種のものが知られている。音楽情報については例えば非特許文献1に示されている。従来の方法は何れも波形をそのままPCM信号としたものについての圧縮符号化方法であった。
しかし音楽の収録スタジオでは浮動小数点形式で波形が記録されて保存されることがある。浮動小数点形式の値は極性、指数部、仮数部に分離されている。例えば図1に示すIEEE−754として標準化されている浮動小数点形式は32ビットであり、上位ビットから極性1ビット、指数部8ビット、仮数部23ビットで構成されている。極性をS、指数部の8ビットで表す値を10進数でE、仮数部の2進数をMとすると、この浮動小数点形式の数値は絶対値表現2進数で表わすと
Figure 2004114527
IEEE−754によれば、E=2−1=127と決められており、これにより、式(1)中のE−E
−127≦E−E≦128
の範囲の任意の値を取ることができる。ただし、E−E=−127の場合はall″0″、E−E=128の場合はall″1″と定義されている。
音声、音楽、画像の情報が浮動小数点形式のディジタル信号系列とされている場合は、浮動小数点形式の性質上″0″と″1″からなるビット列が乱雑な場合が多くなるため、前述したビット配列変換を行っても、エントロピィ圧縮符号化などによって高い圧縮率は期待できない。また浮動小数点形式のサンプル列は原アナログ波形と著しく異なったものとなりサンプル間の相関による冗長性がなく、前述の非特許文献1に示されている可逆予測符号化方法を適用しても高い圧縮率は期待できない。
日本国特許出願公開2001−44847号 Mat Hans,Ronald W.Schafer,″Lossless Compression of Digital Audio″,IEEE SIGNAL PROCESSING MAGAZINE,July 2001,p.21−32
この発明の目的は浮動小数点形式のディジタル信号に対して圧縮率が高く、歪が生じない可逆符号化、復号化方法、それらの装置及びそれらのプログラムを提供することにある。
この発明の符号化方法及び装置によれば、浮動小数点形式の第1信号サンプルを絶対値が小さくなるように切捨てを行って整数形式の第2信号サンプルに変換し、上記整数形式の第2信号サンプルを可逆圧縮して第1符号列を生成して出力し、上記整数形式の第2信号サンプルと上記浮動小数点形式の第1信号サンプルとの差分に対応する浮動小数点形式の差分信号を生成し、上記浮動小数点形式の差分信号の、上記整数形式の第2信号サンプルの最上位の1より下位のビット数により決まる非ゼロになり得るビット領域に対応する第2符号列を生成して出力する。
このように整数形式の第1信号サンプルに変換することにより、原アナログ波形信号に近いものとなり、信号サンプル間の相関による冗長性を除く圧縮方法により効率よく圧縮することができ、差分信号は非ゼロになり得る桁についてのみ差分情報として出力するので効率が良い。
この発明の復号化方法及び装置によれば、第1符号列を復号伸張して整数形式の第1信号サンプルを生成し、上記第1信号サンプルの最上位の1より下位のビット数に応じて決まる非ゼロになり得る桁数に基いて、第2符号列から浮動小数点形式の差分信号を生成し、上記整数形式の第1信号サンプルを浮動小数点形式の第2信号サンプルに変換し、上記浮動小数点形式の第2信号サンプルと上記浮動小数点形式の差分信号を合成して浮動小数点形式の第3信号サンプルを生成する。
この発明によれば、浮動小数点形式のディジタル信号系列を能率よく圧縮することが可能となる。また通常の整数形式の系列の圧縮符号化モジュールを利用することができ、整数形式と浮動小数点形式の両方に対応しても処理の装置規模、プログラム規模はあまり大きくならない。
[図1]IEEE−754の32ビット浮動小数点のフォーマットを示す図。
[図2]この発明の第1実施形態の符号化装置の機能構成を示す図。
[図3]図2中の整数化部12の動作を説明するための図。
[図4]図2中の整数化部12における処理手順の例を示す図。
[図5]整数値の絶対値と、その値を示す浮動小数点の仮数部のビットとの対応を示す図。
[図6]整数値の絶対値と、差分ディジタル信号の極性、指数部および仮数部との関係を示す図。
[図7]差分ディジタル信号系列中の圧縮符号化される部分の例を示す図。
[図8]この発明の第1実施形態の復号化装置の機能構成を示す図。
[図9]この発明の第2実施形態の符号化装置の機能構成を示す図。
[図10]桁調整処理手順を示すフローチャート。
[図11]この発明の第2実施形態の復号化装置の機能構成を示す図。
[図12]この発明の第2実施形態の符号化装置の変形機能構成を示す図。
[図13]この発明の第2実施形態の復号化装置の変形機能構成を示す図。
[図14A]もともと浮動小数点信号であった入力浮動小数点形式信号Xに対する16ビット整数化を説明するための図。
[図14B]24ビット整数値信号から生成された浮動小数点形式信号Xに対する16ビット整数化を説明するための図。
[図14C]16ビット整数値信号から生成された浮動小数点信号Xに対する16ビット整数化を説明するための図。
[図15A]図9Aの場合の仮数部の非ゼロとなり得る領域を示す図。
[図15B]図9Bの場合の仮数部の非ゼロとなり得る領域を示す図。
[図16]この発明の第3実施形態の符号化装置の機能構成を示す図。
[図17]この発明の第3実施形態の復号化装置の機能構成を示す図。
[図18]仮数部をフレーム方向にビット走査して符号化する動作を説明するための図。
[図19]図18の符号化を実行する不圧縮部17の構成例を示す図。
[図20]図19の符号化に対応した復号化装置における伸張部23の構成例を示す図。
[図21]フレーム方向のビット走査の他の例を示す図。
[図22]フレーム方向のビット走査の他の例を示す図。
[図23]フレーム方向のビット走査の更に他の例を示す図。
[図24]第5実施形態の符号化装置の構成例を示す図。
[図25]第5実施形態の復号化装置の構成例を示す図。
[図26]この発明をコンピュータで実施する場合の構成を示す図。
第1実施形態
図2にこの発明による符号化装置の実施形態の機能構成を示す。この実施形態の符号化装置100は、整数化部12と、圧縮部13と、差分生成部14と、圧縮部17とから構成されている。また、整数化部12は桁数計算部12Aを有しており、差分生成部14は符号小数点化部15と、減算部16とから構成されている。信号源11から例えば音楽信号のサンプル列が32ビットの浮動小数点形式の入力ディジタル信号サンプル(以下簡略して入力信号サンプルとも呼ぶ)Xの系列として出力される。この各ディジタル信号サンプルXは24ビットの整数形式で録音された信号の素材を変形、振幅調整、効果付加、混合などの加工をした結果、小数点以下の端数を含むようになったものを浮動小数点形式に変換したもの、あるいは、もともと24ビットの整数形式で録音された信号を32ビット浮動小数点形式に変換後、前記加工をした信号である。
この浮動小数点形式の入力サンプルXは整数化部12に入力され、各サンプルごとに整数形式のディジタル信号サンプル(以下簡略して整数値信号サンプルとも呼ぶ)Yに変換される。先に述べたように前記例ではもともと24ビットの整数形式の信号の素材を変形、振幅調整、効果付加などの加工をした場合が多く、振幅が大きく変化することがないのが一般的である。従って整数化部12においては小数点以下の端数を切捨てる場合について図3を参照して説明する。整数形式の桁数は16ビットあるいは20ビットなどでもよいが、以降の説明では24ビットを使用する。
浮動小数点による波形の表現法として整数値の32768(=215)を1.0と正規化して表わす場合、あるいは整数値223を1.0と正規化して表す場合などもあるが、指数部の値が異なるだけで以下の説明と本質的な差異はない。
小数点の次の上位側ビットは、指数部の値Eが例えばE=147であれば仮数部MのMSB側から147−127=20番目であり、図3Aに示すように23ビットの仮数部M中の上位側20ビット(M)が絶対値2進表現をした場合の整数部分の最上位の″1″より下位の部分であって、仮数部M中の下位側3ビット(M)が絶対値2進表現をした場合の小数点以下の端数部分である。以下ではMの部分を仮数部Mにおける整数部分と呼ぶ。従って、図3Bに示すように仮数部における整数部分(M)中の最下位ビットが仮数部23ビット中の最下位ビットとなるように、仮数部Mを3ビット下位方向にシフトすることによりこの小数点以下3ビット(M)が溢れて切り捨てられる。このシフトにより仮数部Mの空き(この例では″000″)となった最上位3ビット中の最下位ビット(即ち、23ビットの最下位から21ビット目)に式(1)における″1.M″の″1″に対応する″1″を設定することにより、切り捨てによる整数化された値が得られる(図3C参照)。あるいは、シフト前の23ビットのMSBの上位側に″1″を付加した24ビットを3ビットシフトしてもよい。
更に、このようにして得られた整数値を2の補数表現に変換する。つまり、浮動小数点形式の各ディジタル信号サンプルXの極性ビットSはそのまま最上位ビットとし、残りの23ビットについては図3Cに得られた23ビットを、極性Sが″0″(正)の場合は図3Cの23ビットをそのまま用い、Sが″1″(負)であれば、図3Dに示すように23ビットを全て論理反転、即ち″0″と″1″を交換した後に最下位ビットに″1″を加算する。最上位ビットは極性Sをそのまま用い、図3Eに示す24ビットの補数表現された整数形式の信号サンプルYが得られる。
上述においては、主として、仮数部Mに小数点以下の端数部分と対応するビットが0ビット以上含まれている場合を想定し、1サンプルの浮動小数点形式の32ビットディジタル信号を1サンプル24ビットの整数形式のディジタル信号に変換した。しかし、例えば前記24ビット整数形式の信号の素材の複数を混合などして加工する場合には1サンプルの振幅値が24ビットで表わされる最大値より可成り大きくなっている場合もある。このようなE≧150の場合は例外処理として、指数部Eの値を前記例ではE=127+23=150に固定し、例外信号yを差分生成部14に与えると共に、仮数部Mの隣接上位側に″1″を付加した″1M″の上位23ビットをそのまま2の補数表現に変換して24ビット整数形式の信号サンプルYとする。また、後述の他の実施形態で説明するように、フレーム毎に適正な整数の範囲に収まるように、符号小数点値の指数部をΔEで調整することで正規化して、その調整値ΔEを補助情報として符号化してもよい。
整数化部12では例えば図4に示す処理を行うことになる。まず指数部Eが150以上か、つまり整数部が23ビット以上であるかを調べ(S1)、23ビットより少なければ、桁数計算部12Aで仮数部における整数部分の桁数E−E=nを求めて出力し(S2)、また仮数部Mを下位に(23−n)ビットだけシフトして端数部分を溢れ出し、得られた整数部分nビットの最下位から(n+1)ビット目に″1″を付加し(S3)、更にその上位側に全体で23ビットとなるように″0″を補充したものを、極性Sを加味して2の補数表現の24ビット整数形式に変換して整数形式信号サンプルYを得る(S5)。つまり、最上位ビットに極性Sをそのまま用い、残りの23ビットは、極性Sが″0″(正)であればステップS3でシフトして下位から(n+1)ビット目に″1″を加えた整数部分の最下位ビットから23ビットまでをそのまま用い、Sが″1″(負)であれば前記シフトして″1″を加えた整数部の最下位ビットから23ビットまでを、ビット反転して最下位ビットに″1″を加算して補数値を得る。ステップS1で指数部Eが150以上であれば、ステップS4でその指数部Eを150にしてステップS5で″1M″の上位23ビットから整数形式の信号サンプルYを生成する。
なお、上述では仮数部Mに対し(23−n)ビットシフトして1サンプル24ビットの絶対値表現2進数の整数値を求めたが、仮数部Mの図3AにMで示す上位からn=E−Eビットを取り出し、その上位側に図3Cに示すように″1″付加してn+1ビットとし、その上位側に(22−n)ビットの″0″を付加して23ビットとし、更にその上位側に極性ビットSを付加して全体で24ビットにしてもよい。
以上のようにして整数化部12で変換された整数値信号サンプルYの系列は圧縮部13で整数値として波形値の相関などを利用した効率のよい可逆圧縮法により圧縮符号化されて符号列Caとして出力される。圧縮部13における可逆圧縮は例えば前記非特許文献1に示されているように各サンプルごとに予測値(整数値)との差分を求め、その差分の系列を、従来の技術の項で述べたようにビット配列変換を行った後、つまり等位ビット列についてエントロピィ符号化すればよい。つまり整数値信号サンプルYの系列は信号源11の浮動小数点形式の入力ディジタル信号サンプルXの系列の原アナログ信号波形と近似したものとなっている。従ってこの入力サンプルXの系列は予測や変換を使って信号サンプル間の相関による冗長性を除くことにより効率の高い可逆圧縮符号化が可能となる。
差分生成部14では整数値信号サンプルYと信号源11よりの対応する浮動小数点形式の入力信号サンプルXとの差分信号(誤差)Zが生成される。この例では整数値信号サンプルYは浮動小数点化部15で浮動小数点形式の信号サンプルY’に再変換され、その再変換された浮動小数点形式の信号サンプルY’が原浮動小数点形式の入力信号サンプルXから減算部16で減算されて浮動小数点形式の差分信号Zが生成される。
浮動小数点化部15での変換は1サンプルの整数形式ディジタル信号が24ビットの場合、まったくあいまい性や例外なく32ビットの浮動小数点形式の入力信号に変換可能である。前述したように原浮動小数点形式のディジタル信号サンプルXの指数部Eは149以下の場合が多く、この場合は信号サンプルY’と原浮動小数点形式の入力信号サンプルXとの差分信号Zは、原入力信号サンプルXの小数点以下の端数値と等しい。
上述の差分生成部14の説明は理解のためのものであって、現実には、整数値信号サンプルYを浮動小数点化する必要はなく、差分生成部14に入力サンプルXとその仮数部の整数部分桁数nを入力し、例外信号yが与えられないときは、浮動小数点形式の各入力サンプルXの極性Sと指数部E、仮数部Mの下位(23−n)ビットをそれぞれ差分Zの各サンプルの極性、指数部、仮数部の下位(23−n)ビットとし、仮数部中の上位nビットをすべて″0″とする。なお、仮数部の整数部分の桁数n=E−Eは、整数値信号サンプルYの最上位の″1″より下位の桁数と等しい。例外信号yが与えられた場合は、極性は入力サンプルの極性S、指数部はE−150、仮数部は入力サンプルXと信号サンプルY’の仮数部の差分とする。
圧縮部17は、整数値信号サンプルYと浮動小数点形式の入力サンプルXとの、対応サンプルごとの差分信号Z、つまり差分生成部14からの浮動小数点形式の差分信号Zを可逆圧縮符号化し、符号列Cbを出力する。この圧縮部17では整数化部12から出力された仮数部の整数部分桁数nを用いて、浮動小数点形式の差分信号Z中の各サンプルについて、″0″以外になり得る桁についてのみ可逆圧縮符号化を行う。浮動小数点形式の各入力サンプルXは、
X=1.M×2=X.X
ただしX=1M(Mより隣接上位側に1が付加された値)は2進整数部分、X=Mは端数部分、とおくと、その仮数部Mにおける整数部分Mに対応するビットと、端数部分(小数値)Mに対応するビットは図5に示す関係にある。ただし、仮数部Mは式(1)におけるMの上位側隣接1ビットを合わせて24ビットの値として示し、絶対値表現2進数とした場合の小数点Pの位置を便宜的に示してある。
整数値の絶対値Xが0の場合は、前式(1)においてE−E=−127の場合と、−126≦E−E≦−1の場合がある。前者の場合はE=0の特殊な場合であり、仮数部Mの全23ビット″x23…x″の全てが端数部分Mで、かつ、定義により入力信号サンプルXの仮数部23ビットがall″0″である。−126≦E−E≦−1の場合は仮数部がall″0″ではない端数部分であり、いずれにしてもE−Eが負の場合は整数値信号サンプルYの全ビットはall″0″となり、差分信号はZは入力サンプルXと同じになるので、浮動小数点形式の信号サンプルXの全32ビットを全て符号化する。
整数値の絶対値Xが1の場合は、仮数部Mの23ビット目より1ビット上位のビット(以下24ビット目という)″1″により整数値Xを表し、仮数部Mの23ビット″x23…x″は端数値Mを表わす。
整数値の絶対値Xが2〜3の場合は24ビット目の″1″と23ビット目のx23との2ビット″1x23″により整数値Xを表わし、x23は仮数部M中の整数部分Mを表し、″x22…x″の22ビットで端数値Mを表わす。
が4〜7の場合は24ビット目の″1″と23ビット目x23、22ビット目x22との3ビット″1x2322″により整数値Xを表わし、″x2322″は仮数部M中の整数部分Mを表し、″x21…x″の21ビットにより端数値Mを表わしている。
が2k−1〜(2−1)の場合は、24ビット目の″1″と、″x23…x23−(k−2)″とのkビットで整数値Xを表わし、″x2322…x23−(k−2)″は仮数部M中の整数部分Mを表し、″x23−(k−1)…x″の(23−k)ビットで端数値Mを表わす。
所で差分信号Zは32ビット浮動小数点形式の入力サンプルXから、整数値信号サンプルYを32ビット浮動小数点形式にしたサンプルY′を差し引いたものであるから、差分信号Zは、図6に示すようになる。整数値の絶対値Xが0の場合は前述のE−Eが負の場合であり、差分信号Zの極性S、指数部E、仮数部Mは全て入力サンプルXと同一になる。
整数値の絶対値Xが1の場合は、サンプルY′のS,EはそれぞれサンプルXのそれらと同一となりMは0となる。ここでは指数部の差分もとる。従って差分信号ZのS,Eはそれぞれ必ずXと同じ0,0となり、MはサンプルXの仮数部Mと同一となる。
整数値Xが2〜3の場合は、サンプルY′のS,Eはそれぞれ、サンプルXのそれと同一となり、Mは23ビット目x23がサンプルXのMのそれと同一となり、端数部分″x22…x″は全て″0″である。従って差分信号ZのS,Eは必ず0となり、仮数部Mは上位1桁(23ビット目)は必ず0となり、残りの端数部分″x22…x″がサンプルXの対応する部分の値と同じであり、サンプルXにより変化する。
以下同様に、サンプルXの整数値Xが2k−1〜(2−1)の場合、差分信号ZのS,Eは必ず0となり、仮数部Mは、サンプルXの仮数部Mの整数部分と対応する″x23…x23−(k−2)″の上位(k−1)桁(ビット)は必ず″0″となり、残りの″x23−(k−1)…x″の23−(k−1)ビットはサンプルXの仮数部Mのそれと同一値となり、サンプルXにより変化する。整数形式ディジタル信号サンプルYの整数値の範囲、つまり整数値の桁数nに応じて差分信号Zの非ゼロになり得る桁数h=23−nが決まる。
このような関係があるから、浮動小数点形式差分信号Zについては、圧縮部17において、整数化部12から入力された仮数部の整数部分の桁数nを用い、対応差分信号Z中の非ゼロになり得る下位h=(23−n)桁についてのみ可逆圧縮符号化する。つまり仮数部の整数部分の桁数nが0であれば指数部E、仮数部Mの全てを可逆圧縮符号化し、n≠0であれば、仮数部M中の下位h=(23−n)ビットのみを可逆圧縮符号化する。以上から入力信号サンプルXと仮数部の整数部分の桁数nとを差分生成部14に入力して、差分信号Zを生成できることが理解されよう。
圧縮部17による差分信号Zの符号化は、前述のように入力信号サンプルXのE−Eが−127〜0の場合は、差分信号Zは入力信号サンプルXと同一になり、従って入力信号サンプルXの全32ビットを差分信号Zとして符号化する。E−Eが1〜22の場合は、例えば差分信号サンプル系列Z=z,z,z…が図7に示す状態の場合、n≠0の場合以外は非ゼロになり得る桁部分Mのみを符号化する。この非ゼロになり得る桁についての符号化はその非ゼロになり得る桁数hごとに例えばハフマン符号化などのエントロピィ符号化を行うか、まとめて例えばユニバーサル符号化を行う。つまり図7中に斜線を施した部分のみをサンプルごとにあるいはフレーム単位など適当にまとめてエントロピィ符号化などの可逆圧縮符号化を行えばよい。なお極性Sは整数形式ディジタル信号サンプルYの符号化により、符号Caに含まれているため、差分信号Zの符号化の際に極性Sを符号化して送信する必要はない。また、より出力されており、受信側では整数値信号サンプルYの極性を除く最上位の″1″より下位のビット数nからn=E−Eを求めることができるので、桁数nを送信する必要はない。
差分信号Zは小数点以下の桁数が多いこともあり、その場合、符号化の効率が悪い場合がある。従って、差分信号Zの非ゼロとなり得る桁を符号化せずそのまま符号列Cbとして出力してもよい。あるいは、この差分信号Zを符号化した場合としない場合の情報量を比較し、情報量が小さくなるほうを選択してもよい。
なお前述したように浮動小数点形式のディジタル信号サンプルX自体の仮数部がE≧150の例外的な場合は、整数化部12で指数部Eが150に固定されたことを示す例外信号yが差分生成部14に与えられ、差分生成部14はその指数部Eの値150とディジタル信号サンプルXの指数部Eとの差分(E−150)を指数部とし、仮数部Mの差分を仮数部とする浮動小数点形式の差分信号Zを生成する。圧縮部17は差分信号Zを可逆圧縮符号化し、その符号列Cbとして出力する。
図8に図2に示した符号化装置100と対応するこの発明による復号化装置200の実施形態を示す。
入力された符号列Caは伸張部21で可逆伸張復号化される。この可逆伸張復号化方法は、図2中の圧縮部13で行った可逆圧縮符号化方法と対応し、その処理と逆の処理を行う。よってこの可逆伸張復号化により1サンプル24ビットの整数形式のディジタル信号サンプルYが生成される。また伸張部21中の桁数出力部21Aにおいて、伸張復号された各サンプルごとの最上位の″1″より下位の桁数nを浮動小数点形式の仮数部における整数部分の桁数として求め、伸張部23に与える。
伸張部23では、入力された符号列Cbを可逆伸張復号化する。この可逆伸張復号化方法は図2中の圧縮部17で行う可逆圧縮方法と対応したものとする。よってこの伸張部23において、伸張復号されたビット列から、組立部23Aにより桁数nに基づいて、サンプルごとの32ビット浮動小数点形式の差分(誤差)信号Zが組立てられ、出力される。図2の符号化装置100における圧縮部17で差分信号Zを圧縮しないでそのまま出力する場合は、復号化装置200の伸張部23において受信した符号列Cbをそのまま差分信号Zとして使用する。
組立て部23Aでは、伸張部21からの最初のサンプルに対する桁数nと、伸張部23で伸張復号されたビット列から、最初のサンプルと対応する部分としてn=0でなければ、23ビットの仮数部Mの下位23−n=hビットとしてhビットが取り出されて、図7中の最初のサンプルzにおける斜線を施した部分よりなる1サンプル32ビットの浮動小数点形式の差分信号zとして組立てられる。極性Sの1ビット、指数部Eの8ビットはすべて0とし、また図7中の仮数部M中の整数値と対応する部分Mは全て0とされる。次のサンプルに対して対応桁数n≠0に応じて仮数部の下位23−n=hビットとして伸張復号ビット列からhビットを取り出して32ビットの浮動小数点形式差分信号Zとし、以下同様にして図7に示したようなサンプル列z,z…が順次組立てられて出力される。n=0の場合は指数部Eの8ビットと仮数部Mの23ビットが伸張復号ビット列から取り出されて浮動小数点形式ディジタル信号とする。この復号した差分信号Zは極性Sは常に0、指数部Eはn=0以外は常に0、仮数部Mは下位の23−n=hビットのみが非ゼロになり得るビットであり、その他は常に0であり、従って厳密な意味では浮動小数点表現ではないが、ここでは浮動小数点形式差分信号と云っていることに注意されたい。
伸張部21よりの24ビット整数形式のディジタル信号サンプルYは浮動小数点化部22で1サンプル32ビットの浮動小数点形式のディジタル信号サンプルY′に変換される。このディジタル信号サンプルY′は伸張部23よりの浮動小数点形式の差分信号Zとが合成部24で対応サンプルごとに加算合成され、浮動小数点形式のディジタル信号サンプルXが再生される。各再生ディジタルサンプルXの極性はディジタル信号サンプルY′のそれ、つまり復号された整数形式のディジタル信号サンプルYの極性となり、サンプルXの指数部Eはn=0以外は、信号サンプルY′の指数部となり、仮数部Mは上位n=23−hビットが信号サンプルY′の仮数部の上位nビットとなり、下位23−n=hビットが差分信号Zの下位hビットとなる。
変形実施例
一般の浮動小数点ではなく、もともと24ビットとか16ビットの整数値のPCM信号を便宜上、浮動小数点に変換して符号化対象の系列を作成する場合がある。このような特殊な浮動小数点系列の場合には、前述した第1実施形態において0以外になり得る桁はなくなり、差分生成部14よりの浮動小数点形式の差分(誤差)信号Zの極性S、指数部E、仮数部Mはすべてゼロとなり、送信する必要はない。この場合は、例えば補助情報として2ビットを用い、その2ビットが″00″であればもともとのディジタル信号が1サンプル16ビットの整数値のみ、″01″であれば1サンプル24ビットの整数値のみ、″10″であればそれ以外の信号であることを表わし、この2ビット補助情報を圧縮部13の出力符号列Caの先頭に追加し、前2者の場合は符号列Cbを出力せず、後者の場合に符号列Cbを出力することにより効率的な圧縮が可能となる。
第2実施形態
前述の図2の実施形態ではE≧150のサンプルに対し例外処理を行う場合を示したが、先に簡単にふれたように、フレーム毎の桁調整を行ってE≧150とならないようにしてもよい。ここではフレーム内で指数部Eの最大値が150>E≧150−Kとなるように桁調整を行う場合の実施形態を図9を参照して説明する。
この第2実施形態の符号化装置100の機能構成例を図9に図2と対応する部分に同一参照番号を付けて示す。この第2実施形態では浮動小数点形式のディジタル信号サンプルXの系列を、サンプル列分割部31で複数の一定サンプル数ごとに、あるいはフレーム毎に分割し、この分割単位ごとに桁調整部32で、整数形式の信号サンプルYの桁数が適当な大きさ、つまり少なくとも整数形式に変換した際に24ビット以内に納まるように指数部Eに対して以下のように桁調整を行う。
(a)浮動小数点形式のディジタル信号サンプルXの振幅が大きく、各指数部Eがもともと150を超えている場合は、24ビットの整数形式のディジタル信号サンプルYに変換すると仮数部MのLSB側1又は複数ビットの情報が失われる。あるいは浮動小数点形式のディジタル信号サンプルXの振幅が大きく、各指数部Eが150に近い値の場合は整数形式のディジタル信号サンプルYに変換した際に、そのサンプルごとのディジタル値が頻繁に24ビット整数値を超えることがある。これらのことが生じないように、ディジタル信号サンプルXの指数部Eを、桁調整部32において、前記分割単位ごとに、調整情報ΔEだけ差し引いて150以下の値とする。
(b)浮動小数点形式のディジタル信号サンプルXの振幅が小さく、変換された整数形式のディジタル信号サンプルYの24ビット中の最上位ビットの極性Sを除き、MSBから21〜23ビットが常に全て0となるような場合、振幅がわずか2ビット程度で表されることになるので整数形式のディジタル信号サンプルYの系列の波形がアナログ波形に近いものとならず、整数形式のディジタル信号サンプルYに変換する効果、つまり高い圧縮率で可逆圧縮符号化することが得られなくなる。また整数形式のディジタル信号サンプルYの振幅値がLSB側2ビット程度で表される場合、信号サンプルYを浮動小数点形式のディジタル信号に変換すると、その仮数部Mは全ビット″0″またはMSBのみ″1″で他は全て″0″のように、ほとんどの桁のビットが″0″となってしまう。一方、符号小数点形式の入力ディジタル信号サンプルXの仮数部Mは、信号サンプルXの振幅が小さいときでも、大きな値をとり得るので、浮動小数点形式のディジタル信号サンプルXとの誤差(差分)と対応した浮動小数点形式の差分信号ΔXの仮数部Mは大きな振幅をとり、つまり全てのサンプルについて0となるビットの数が少なくなり、圧縮効率を上げることができない。
このような問題が生じないように桁調整部32では分割単位ごとに各指数部Eに調整情報ΔEだけ加算して、仮数部M中の多くの情報が整数形式のディジタル信号サンプルYに含まれるようにする。この場合、整数形式に変換した際に1サンプルのビット数が24を超えないようにする。
桁調整部32における調整情報ΔE(任意の極性の整数)は分割単位で変更が可能である。桁調整部32において分割単位ごとに指数部Eの最大を調べ、整数化した時に1サンプルが24ビットを超えない範囲で仮数部Mの情報をなるべく利用できるように調整情報ΔEを決めればよい。
図10は桁調整部32がフレーム毎に実行する桁調整の処理手順を示す。ここではサンプル列分割部31により分割されたN個のサンプル毎に桁調整を行う場合を示す。
ステップS1でN個の入力サンプルを取り込み、ステップS2でi=1とし,ΔEとしては、取り得ない十分小さい任意の値、例えばΔE=−150に初期設定する。
ステップS3でi番目のサンプルの指数部Eから150を減算して差ΔEを得る。
ステップS4でΔEが1つ前のΔEi−1より大きいか判定し、大きくなければステップS6に移動する。
ステップS5でΔEがΔEi−1より大きい場合は、ΔEをΔEmaxとして一時保存する。
ステップS6でi=Nとなったか判定し、なっていなければステップS7でiを1歩進し、ステップS3に戻る。
ステップS6でi=Nとなっていれば、ステップS8でΔEmaxを読み出し、1以上か判定する。1以上であればステップS10に移る。
ステップS8でΔEmaxが1以上でなければ、ステップS9でΔEmaxが予め決めた−K(Kは1以上の整数)以下であるが判定し、そうであればステップS10に移る。
ステップS10は、ΔEmaxを補正情報ΔEとし、N個の各サンプルについてE’=E−ΔEにより桁調整を行い、得られたE’を補正されたEとして使用し、整数化部12に桁調整されたN個のサンプルを与え、終了する。ステップS9でΔEmaxが−Kより小でない場合も終了する。
このようにステップS8においてΔEmaxが1以上となることはディジタル信号サンプルXの振幅が大きく指数部Eが150を超えている場合を検出している。ステップS9においてΔEmaxが−K以下となることは、Xの振幅が小さく、波形の近似が悪い場合であり、例えばKは20〜22程度の値に決めてもよい。
このようにして桁調整された浮動小数点形式のディジタル信号サンプルを整数化部12で整数形式のディジタル信号サンプルYに変換しこの信号サンプルYの系列を圧縮部13で可逆圧縮符号化して符号列Caを生成することは第1実施形態と同様である。また、差分信号Zについても第1実施形態と同様に仮数部Mの非ゼロとなり得るビットの領域を圧縮符号化部17で符号化して符号列Cbを出力する。
復号化の際に、符号化の際の浮動小数点形式のディジタル信号サンプルXを可逆に得られるように調整情報ΔEは補助符号化部33でその極性、つまり加算か減算かを含めて符号化して補助符号列Ccを生成する。
図9に示した実施形態では、差分生成部14において逆桁調整部34で、整数形式のディジタル信号系列Yを、対応分割単位ごとの調整情報ΔEだけ逆に桁調整する。つまり桁調整部32で負の調整情報ΔEを加算した場合(ステップS10でΔEが負の場合)は逆桁調整部34において対応サンプルのディジタル信号の最上位ビットを除く23ビットをΔEビットだけ下位にシフトし、シフトで空いた各ビットに0を詰め、正の調整情報ΔEを減算した場合(ステップS10でΔEが正の場合)は、対応サンプルのディジタル信号の最上位ビットを除く23ビットをΔEビットだけ上位にシフトし、つまりΔEビットだけあふれさせ、下位ΔEビットに1を詰めて23+ΔEビットとする。
この桁を逆調整した整数形式のディジタル信号サンプルYを浮動小数点化部15で浮動小数点形式のディジタル信号サンプルY’に変換し、この浮動小数点形式のディジタル信号サンプルY′と原浮動小数点形式のディジタル信号サンプルXとの差分Zを減算部16で求め、この浮動小数点形式の差分信号Zを圧縮部17で可逆圧縮符号化して符号列Cbを出力する。この場合は分割単位の符号列CaとCbと補助符号Ccが出力されることになる。この実施形態においても差分信号Zは圧縮符号化せず、端数部だけをそのまま差分情報として出力してもよい。サンプル列分割部31は図9中に破線で示すようにサンプル列分割した浮動小数点形式の信号サンプルXが桁調整部32と減算部16に供給されるように設けてもよい。
図11は図9に示した符号化装置100と対応する復号化装置200の機能構成例を、図8の復号化装置200と対応する部分に同一参照番号を付けて示す。符号列Caは伸張部21で分割単位で可逆伸張復号化され、整数形式のディジタル信号サンプルYの系列が生成される。この実施形態では補助復号部41で補助符号Ccが復号されて調整情報ΔEが生成される。この調整情報ΔEにより整数形式のディジタル信号サンプルYに対する桁補正E+ΔEが桁補正部42で行われる。調整情報ΔEが正であれば各ディジタル信号サンプルYのビットを上位へΔEビットシフトし、ΔEが負であればディジタル信号サンプルYのビットを下位へΔEビットシフトする。この際、図9中の逆桁調整部34と同様に1又は0詰めを行う。
この桁補正部42より整数形式のディジタル信号サンプルを浮動小数点化部22で浮動小数点形式のディジタル信号サンプルY′に変換し、これと、差分情報Cbを伸張部23で可逆伸張復号化して得た浮動小数点形式の差分信号Zと合成部24で加算合成する。この加算合成したディジタル信号を必要に応じて連結部43により連続するサンプル列に連結して再生浮動小数点形式のディジタル信号サンプルXの系列を得る。
変形例
図12に図9と対応する部分に同一参照番号を付けて示すように、整数形式のディジタル信号サンプルYに対し、逆桁調整を行うことなく、浮動小数点化部15で浮動小数点形式のディジタル信号サンプルに変換し、この変換された浮動小数点形式のディジタル信号サンプルと桁調整部32で桁調整された浮動小数点形式のディジタル信号サンプルとの差分を減算部16で求め、浮動小数点形式の差分信号Zを求めてもよい。つまり差分生成部14は原浮動小数点形式のディジタル信号サンプルXと整数形式のディジタル信号サンプルYとの差分信号を浮動小数点形式で求めればよく、図2、図9、図12に示す何れの構成によってもよい。
図12と対応して復号化装置200では図13に示すように伸張部21で可逆伸張復号化した整数形式のディジタル信号サンプルYを、まず浮動小数点化部22で浮動小数点形式のディジタル信号サンプルに変換し、これと、伸張部23で可逆伸張復号化した浮動小数点形式の差分信号Zを合成部24で加算合成し、その後、その合成ディジタル信号に対し、その指数部Eを、補助復号部41により復号された調整情報ΔEで桁補正部42において桁補正して、再生浮動小数点形式のディジタル信号サンプルXを得るようにしてもよい。
第3実施形態
上述の実施形態では、浮動小数点形式の入力信号サンプルXの小数点以下の端数を切り捨てることにより整数化し、差分信号Zの仮数部における整数部分がall″0″となることを利用して差分信号Zの圧縮効率を高める場合を示した。第3実施形態では、上記小数点以下の切捨てに加えて、更に整数部分も予め決めたビット数を切り捨てて整数値信号サンプルYを生成する例を示す。以下の例では、小数点以下の切捨てによる16ビットの整数値化において、更に8ビットの切捨てを行う場合を示すが、17〜23ビットの任意の整数値化にも適用できる。
この第3実施形態によれば浮動小数点形式の入力信号サンプルXが、もともと符号小数点信号であったのか、24ビット整数値信号であったのか、16ビット整数値信号であったのか区別する必要がなく、同じ処理によって符号化を行うことができるが、動作原理の説明上、浮動小数点形式の入力信号サンプルXがもともと浮動小数点形式であった場合、極性1ビットを含む24ビット整数値信号であった場合、極性1ビットを含む16ビット整数値信号であった場合について順に説明する。
図14Aを参照して、もともと浮動小数点形式であった入力信号サンプルXの16ビット整数値化と、差分信号Zの生成を説明する。図において″x″は″0″又は″1″のいずれかをとり得る(非ゼロとなり得る)。Mは浮動小数点形式の入力信号サンプルXの仮数部23ビットを示し、上位n(=E−E)ビットの整数部分と小数点以下の端数部分の境界を示す小数点位置をPで示してある。サンプルXの指数部EをE−8に削減することにより仮数部Mの小数点位置Pは8ビット上位にシフトする。その結果、図14Aの例では仮数部Mの上位n−8=2ビット″xx″がシフト後の仮数部内の整数部分となっている。その整数部分2ビットの隣接上位側に″1″を加えてた″1xx″を16ビット整数値信号サンプルYの最下位ビットとする。
16ビット整数値信号サンプルYを8ビット上位にシフトし、即ち、最下位に8ビットの″0″を付加してから浮動小数点形式の信号サンプルY’に変換する。従って、得られた浮動小数点形式の信号サンプルY’の指数部Eは+8されたことになり、入力信号サンプルXの指数部Eと同じ値になる。信号サンプルY’の仮数部MY’は、8ビット上位にシフトされた整数値信号サンプルYの最上位の″1″より下位の整数部分、ここでは2ビットの″xx″を最上位ビットとし、それより下位は全て″0″とすることにより得られる。図14Aでは便宜上8ビットシフトする前のサンプルYの最上位の″1″より下位の整数部″xx″と浮動小数点形式の信号サンプルY’に変換後の仮数部MY’の関係を示している。差分信号Zの仮数部Mは仮数部MとMY’の差分であり、Zの仮数部Mの上位(n−8)ビット、ここでは最上位2ビット、は″00″となり、それより下位(端数部分)は仮数部Mの対応するビット位置の値と同じである。即ち、仮数部Mの最上位の整数部分″00″に続く下位の全ビットは非ゼロとなり得る。
差分信号Zについては仮数部Mのこの非ゼロとなり得る下位23−(n−8)ビットのみを符号化すればよい。仮数部Mの必ず0となる上位(n−8)ビットは、受信側で復号した整数値信号サンプルYの最上位の″1″より下位の全ビット数と同じである。この仮数部Mの非ゼロとなり得る領域は図15Aに示すように、整数部分のビット数(n−8)が増加すると共に減少する。
図14Bは24ビット整数値信号から浮動小数点形式の入力信号サンプルXが生成された場合であり、従って、サンプルXの仮数部Mは図14Bに示すように小数点Pより下位で全ての桁が″0″となっている点が図14Aの仮数部Mと異なる。図14Bにおいても入力信号サンプルXの指数部EをE−8にすることにより小数点Pの位置が8ビット上位側にシフトするが、その結果から生成される16ビット整数値信号サンプルYは図14Aの場合と同じになる。従って、整数値信号サンプルYを浮動小数点形式に変換したときの仮数部MY’も図14Aの場合と同様である。
しかしながら、差分信号の仮数部Mは仮数部MとMY’の差分であり、図14Bに示すように差分信号Zの仮数部Mの整数部分は″00″となり、それより下位8ビットが非ゼロとなり得るビット範囲であり、更にその下位側は全てのビットが″0″となる。この非ゼロとなり得るビットの範囲は整数部分のビット数が増加するにつれ図15Bに示すように下位側にずれていく。
図14Cは極性1ビットを含む16ビット整数値信号サンプルから浮動小数点形式の入力信号サンプルが作られている場合である。従って、23ビットの仮数部Mにおいて、小数点Pと隣接する下位側8ビットは全て″0″であり、それより更に下位の桁も全て″0″である。小数点以下の桁数hはh=23−nとnにより変化するが、8より小さくはならない点が図14Bの場合と異なる。
図14Cにおいても入力信号サンプルXの指数部EをE−8にすることにより小数点PDの位置が8ビット上位側にシフトし、シフト後の整数部分″xx″から16ビット整数値信号サンプルYが図14A,14Bと同様に生成される。従って、サンプルYを浮動小数点形式に変換したときの仮数部MY’も図14A,14Bの場合と同じである。また、差分信号Zの仮数部Mは図14Bの場合と同様にその最上位(n−8)桁の整数部分が″0″となり、それに続く下位8ビットは非ゼロを取りえる範囲であり、その更に下位ビットは全て″0″となる。この場合も整数部分の桁数(n−8)が増加すると図15Bに示すように非ゼロとなり得る8ビットの下位側の″0″の桁数も減っていくが、8桁より小さくなることはない。
以上の説明から明らかなように、符号小数点形式の入力信号サンプルXのもとの信号が24ビット整数値信号、16ビット整数値信号、浮動小数点形式信号のいずれの場合であっても、8ビット切り捨てによる16ビット整数値信号サンプルYを生成するには、入力信号サンプルXの指数部EをE−8として小数点位置を8ビット上位側にシフトし、仮数部Mの整数部分である上位(n−8)ビット、図の例では″xx″、に対しその上位側に″1″を加えた整数値″1xx″を最下位ビットとする16ビット整数値信号サンプルYを構成すればよい。また、差分信号Zの仮数部Mは、入力信号サンプルXの仮数部Mの最上位(n−8)ビットを″0″とすることにより得られる。
このようにして得られた16ビット整数値信号サンプルYに対しては、図2の実施形態と同様に圧縮符号化すればよい。一方、差分信号Zについては、その仮数部Mを、常に″0″である最上位(n−8)ビットについては符号化せず、それより下位の非ゼロとなり得る8ビットの領域と、更にそれより下位の残りの(23−n)ビットの領域を別々に圧縮符号化する。
上述の例では16ビット整数値とするため、23ビットの仮数部の小数点の位置を8ビット上位にシフトして、そのシフトした小数点以下を切り捨てる場合を示したが、一般に、22≧m≧8の任意の整数mビットの切捨てを行うには、入力信号サンプルの指数部EをE−mとして仮数部Mの上位(n−m)ビットを整数部分とするように切捨てを行えばよい。また、差分信号Zの仮数部の圧縮符号化は、最上位(n−m)ビットの″0″は符号化せず、その下位のmビットの非ゼロとなり得る領域と、更に下位の残りの(23−n)ビットの領域に分けて別々に符号化することにより効率のより符号化が可能となる。
図16に符号化装置の例を図2と対応する部分に同一参照符号を付けて示す。浮動小数点形式の入力信号サンプルXは桁調整部31で図14A,14B,14Cで説明したように指数部EをE−8とすることにより小数点位置は上位側に8ビットシフトされる。整数化部12では8ビットシフトされた小数点以下の端数部分を切り捨てて、整数部分の上位側に″1″付加して16(=24−8)ビットの整数形式の信号サンプルYとする。この信号サンプルYが圧縮部13で可逆圧縮され、符号Caが出力される。
またこの16ビット整数形式の信号サンプルYは逆桁調整部32で桁調整部31と同一ビット数8であるが逆方向に、つまり最下位に8ビットの″0″を挿入することにより上位に8ビットシフトして、24ビットの整数形式信号サンプルとされる。この24ビット整数形式に変換された信号サンプルは浮動小数点化部15で浮動小数点形式の信号サンプルY′に変換される。この浮動小数点形式信号サンプルY′と入力信号サンプルXとの差分が減算部16でとられ、浮動小数点形式の差分信号Zが生成される。現実的にはこのような逆桁調整部32、浮動小数点化部15及び減算部16の処理を行うことなく、差分生成部14で整数化部12よりの仮数部の整数部分の桁数nを用いて、n≠0で各入力信号サンプルXの仮数部Mの下位8+h(=15−n)ビットを取出し、n=0では指数部Eと仮数部Mとを取出して差分信号Zとすればよい。
圧縮部17は分配部33と2つの圧縮部17h、17cとから構成されている。この差分信号Zは分配部33に入力され、分配部33には整数化部12よりシフト後の各サンプルXの仮数部の整数部分の桁数nが入力され、差分信号Zの各サンプルは、n≠0の場合、桁数nに基づく非ゼロになり得る桁部分Zh、つまり下位のh=15−nビットと、整数形式信号サンプルYを1サンプル24ビットから1サンプル16ビットに変更したことに基づく、つまり整数形式信号サンプルYのビット数に基づく、非ゼロになり得る桁部分Zc、つまり下位第(h+1)ビット〜第(h+8)ビットとに分配する。n=0の場合、指数部Eの8ビットと仮数部の下位23−8ビットを桁部分Zhとして、上位8ビットを桁部分Zcとして分配する。桁部分Zhは圧縮部17hで、桁部分Zcは圧縮部17cでそれぞれエントロピィ符号化などにより可逆圧縮符号化され、符号列Cb1,Cb2として出力される。
従って圧縮部17hには、主として仮数部Mにおける下位の非ゼロになり得るビットが入力され、これが可逆圧縮符号化される。もともとのディジタル信号が24ビット又は16ビットの整数値であれば図14B,14Cに示したようにn=0以外は圧縮部17hに入力される下位h桁部分Zhは全て″0″になるから、効率よく圧縮される。
圧縮部17cでは、図14A,14B,14Cに示したように、入力信号サンプルXがもともと一般浮動小数点の場合、24ビット整数値の場合、16ビット整数値の場合に関係なく、非ゼロになり得る下位第(h+1)〜第(h+8)ビットの8ビットが可逆圧縮符号化される。このようにすることにより、図2中の圧縮部17で差分信号Z中の非ゼロになりうるビットのすべてをまとめて圧縮符号化する場合より全体として効率よい圧縮が可能となる。
この図16に示した符号化装置と対応する復号化装置の実施形態を図17に図8の復号装置と対応する部分に同一参照番号を付けて示す。符号列Caは伸張部21で可逆伸張復号されて1サンプル16ビット整数形式の信号サンプルYが復号される。伸張部23は2つの伸張部23h、23cと合成部41とにより構成されており、符号列Cb1とCb2はそれぞれ伸張部23h,23cで可逆伸張復号化され、これらの復号されたビット列Bh,Bcは合成部41に入力される。合成部41には伸張部21で復号された各サンプルごとの整数値の最上位の″1″より下位のビット数nも入力される。n≠0の場合は伸張部23hの出力ビット列Bhから、h=15−nビットが取出され、伸張部23cの出力ビット列Bcから8ビットが取出されこれらが仮数部Mの23ビット中の下位hビットと、その上位の8ビットとして合成される。以下同様に桁数nに応じ、ビット列BhとBcからそれぞれhビットと8ビットが取出されて合成される。n=0の場合は指数部Eとしての8ビットと23−8=15ビットがビット列Bhから取り出され、ビット列Bcから8ビットが取り出され、この8ビットは前記15ビットの上位側に挿入され、23ビットの仮数部が生成される。
復号された16ビット整数形式信号サンプルYは桁調整部42で下位に8ビットの″0″を挿入することで上位へ8ビットシフトされ、24ビット整数形式信号サンプルが得られる。その後、浮動小数点化部15で32ビット浮動小数点形式信号サンプルY′に変換される。この信号サンプルY′と差分信号Zとが合成部24で合成されて、浮動小数点形式の信号サンプルXが再生される。
上述において、整数形式信号サンプルYを1サンプル16ビット、24ビットの場合としたが、24ビット以下の任意の数mとしてもよく、その数mに応じて整数形式信号サンプルYのサンプル当りのビット数変更に基づく、非ゼロになり得る桁数を決定すればよい。更に上述において、入力浮動小数点形式信号サンプルXを、例えば1024サンプルごとのフレーム、または連続する複数のサンプルごと分割し、その分割単位ごとに圧縮符号化処理してもよい。このように分割単位ごとに圧縮符号化する場合は、整数化するビット数を分割単位ごとに都合のよいように決め、そのビット数を指定する補助符号も出力するようにしてもよい。
図16に示す符号化装置の圧縮部17として図2で示した第1実施形態による圧縮部17を使用し、図17の復号化装置の伸張部23として図8における伸張部23を使用してもよい。即ち、その場合は符号化装置において第2実施形態で説明した16ビットの整数値化を行うが、差分信号Zは非ゼロとなり得る2つの領域に分けず、図7で説明したように、仮数部の下位h=23−nビットの符号化を行う。従って復号化装置の伸張部23においては、符号Cbからhビットを復号化し、その上位にnビットの″0″を挿入して仮数部を生成する。
第4実施形態
前述の第1実施形態では、差分信号Zの各サンプルの非ゼロとなり得る下位h(=23−n)ビットを可逆圧縮符号化する例を示したが、差分信号Zを例えば1フレームごとにフレーム方向に抽出したビット列を可逆圧縮符号化してもよい。その符号化方法を図18を参照して以下に説明する。
図18では1フレームが1024サンプルにより構成された場合を示し、また各サンプルi(i=0〜1023)に対応して入力信号サンプルXの仮数部のn(=E−E)ビット整数部分の整数値と、h(=23−n)ビットの端数部分のビット列を示してある。第1実施形態で図7を参照して説明したように、差分信号Zの各サンプルの仮数部Mの整数部分に対応する上位nビットは全て″0″であり、端数部分である下位h=23−nビットが非ゼロとなり得るビットである。図18の符号化方法では、差分信号の仮数部の下位hビットのみを、それらhビットの最上位ビットMSBをそろえて配列し、その配列における各サンプルの振幅方向の各ビット位置jのビットをフレーム方向に順次抽出して得たビット列Eを符号化を行う。
サンプルによっては数部のビット長h=23−nは異なるので、振幅方向における同一ビット位置j(j=0〜hmax−1;hmaxはフレーム内のサンプルの最大端数部分ビット長)のフレーム方向のスキャンにおいて、ビットが存在しないサンプルはスキップする。スキップするか否かの判定は、サンプルiの振幅方向のビット位置jで、そのサンプルの端数部分ビット長hとjを比較し、h≧jであればそのビット位置のビットを抽出し、h<jであればスキップして次のサンプルi+1を判定すればよい。
例えばMSB側からj=17のビット位置におけるフレーム方向のスキャンにおいて、端数部分のビット長h=23−6=17のサンプル番号i=0のサンプルは最下位にビットを有するが、端数部分のビット長23−8=15のサンプル番号i=1のサンプルはMSB側から第15番目以降(j=14以降)にビットを持たないのでスキップされる。これら第15番目の抽出されたビットを1フレーム分まとめてビット列E16としてエントロピー符号化する。他のビット位置jについても同様である。エントロピー符号化として算術符号やゴロム符号を行うと下位層化ができるので便利である。
復号側においては、復号した各整数値信号サンプルYの最上位の″1″より下位のビット数nから整数部分の桁数nがわかるので、フレーム内の各差分信号Zの仮数部における端数部分のビット長h=23−nがわかる。従って、復号した各ビット列Eに対し、フレーム内のサンプル番号iを順次走査してサンプル番号毎に振幅方向のビット位置jをhと比較し、j≦hならビット列Eのビット値をビット位置(i,j)に割り当てることで図18の仮数部における端数部分を再構成することができる。この再構成された各サンプルの端数部分に対し、その上位側にサンプルに対応するnビットの″0″を挿入することで差分信号の23ビットの仮数部Mを再構成することができる。
図19は図18の符号化方法を図2の圧縮符号化部17に適用した場合の機能構成を示す。差分生成部14(図2参照)からの差分信号Zの1フレーム分Z〜Z1023が入力されると共に、対応する整数部分桁数n〜n1023が記憶部17Bに記憶される。制御部17Cは各サンプルiの整数部分桁数nに基づいて、入力差分信号Zの仮数部の上位nビットを除くh=23−nビットの端数部分をバッファ17Aに取り込む。これにより図18に示した仮数部における端数部分の配列が得られる。次に、制御部17Cは振幅方向のビット位置j(=0〜hmax−1)においてフレーム方向にサンプルを走査し、h≧jを満足するビットを抽出してビット列Eを得て、圧縮部17Dに与える。バッファ17A、記憶部17B、制御部17Cはビット列生成手段を構成している。圧縮部17Dはビット列Eを可逆圧縮符号化して符号Cbを出力する。
図20は図19の圧縮符号化部17に対応する図7における差分信号復号化手段としての伸張部23の機能構成を示す。受信された符号Cbは復号化部23Dで復号されてビット列Eが得られる。一方、桁計算部21A(図7)からの整数桁数nの1フレーム分n〜n1023が記憶部23Bに記憶され、制御部23Cはサンプル番号iの順に対応する端数桁数h=23−nからh≧jを満足するビット位置(i,j)に対し、ビット列Eから順に1つずつビットを分配してバッファ23A内に配列記憶することを繰り返すことにより、図18の端数部分のビット配列が得られる。1フレームについての全ビット列E,j=0〜hmax−1のビット配列が終了すると、制御部23Cはバッファ23A内の各サンプルiに対応した端数部分の上位側にnビットの″0″を挿入して差分信号の仮数部を生成し、差分信号Zとして合成部24(図7)に与える。バッファ23A、記憶部23B、制御部23Cは再構成手段を構成している。
図18の差分信号の仮数部の符号化においては、各ビット位置jでフレーム方向にビットを集めてビット列Eとし、符号化する場合を示したが、ビット位置の走査方法の他の例を以下に説明する。図21ではサンプルの振幅方向の予め決めた複数ビット幅に渡って、ビット位置jの最後のサンプルのビットからビット位置j−1の最初のサンプルのビット位置に続けて走査してビットを集め、複数のビット列E,E18,...を生成している。従って、得られるビット列Eの数は端数部分の最大ビット数hmaxより少なくなる。このビット走査においても、各サンプルiのh<jとなるビット位置はスキップする。このようなビット走査を行っても、各サンプルiの端数部分桁数はh=23−nからわかるので、復号側においてはビット列Eのビットを前述と同様に分配していくことにより端数部分のビット配列を再構成することができる。
図22は更に他のビット走査の例を示す。図21ではビット位置jのフレームの終わりからビット位置j−1のフレームの始めに連続させることを複数ビット幅繰り返して走査したのに対し、ここではその複数ビット幅を振幅方向にMSB側から走査し、各サンプルiのそのビット幅の終わりから次のサンプルi+1のビット幅の始めに続けて操作することをフレームの最後のサンプルまで繰り返す。この例においても、条件h<jとなるビット位置はスキップされる。
図23は図18のビット走査における例外動作を説明するためのものである。切捨てによって整数部分がゼロになってしまう場合、即ちE−Eが負になる場合には指数部も含めて全32ビットを符号化して送る必要がある。そこで、図23に示すように、サンプルi=3の整数部分がゼロであった場合(従ってn=0)は、図2の圧縮部17においてこのサンプルi=3を仮数部のビット走査から除外して別途符号化する。
入力信号サンプルXが整数から変換された浮動小数点形式の信号サンプルであった場合の、元の整数の桁数と切り捨てた整数値の桁数が異なる場合、例えば図9B,10Bで説明したように、24ビット整数をそのまま浮動小数点とした信号サンプルを入力とし、16ビットの整数に切り捨てて符号化した場合、差分信号の仮数部の端数部分の桁のうち、上位8桁は非ゼロとなり得るが、それ以外はゼロとなる。このような入力信号サンプルXを符号化する場合に、例えば図13の手法を使えば、ビット列E〜Eは非ゼロとなり得るが、それより下位のビット列E〜E21は全て″0″となるので、効率的な符号化が可能である。同様に、図21、22の手法を使っても効率的な符号化が可能なことは容易に理解される。
例えばオーディを信号の加工などで必要に応じて行われるように、24ビットの整数値信号サンプルを1.5倍してから浮動小数点形式の信号に変換し、16ビットの整数に切り捨てて符号化する場合、24ビット整数値信号サンプルを1.5倍すれば少なくと小数点以下第1位が非ゼロとなり得るビットになる。即ち、図14Bに示すサンプルXの仮数部Mの小数点P以下第1位が非ゼロとなりえる。そのため、差分信号の仮数部Mの非ゼロとなり得る領域は下位側に1ビット増加して9ビットになるが、この場合でも、その9ビットより下位側は全て″0″となるので、図18、21、22、23の手法を使って効率的な符号化が可能となる。また、全てゼロでなくても非ゼロ(即ち″1″)の頻度が桁ごとに偏る場合があるので、偏りに合わせて適応的に可逆符号化を適用することもできる。
いずれの場合にも、差分信号の仮数部における端数部分のMSB側からの非ゼロとなり得る桁数がそろうので、効率的に圧縮符号化できる。
上述の図18〜23の仮数部の符号化方法は図2に基づく第1実施形態に適用する例として説明したが、図14A〜17で説明した16ビット整数値に切り捨て処理を行う場合にも適用できる。その場合は、図16の圧縮部17を図19のように構成し、図17の伸張部23を図20の伸張部のように構成すればよい。
また、端数部分の桁数が同じになるようにサンプルを並び替えてスキャンしてもよい。例えば桁数が23となるサンプルだけを集め、次に桁数が22となるサンプルを集め、順次桁数が小さくなるサンプルを集める。この並び替えの逆は追加情報がなくても一意に決まり、スキャンするサンプルの数の管理が容易になる。
第5実施形態
前述の第4実施例ではフレーム毎に差分信号Zの仮数部Mの端数部分のMSBを同一位置にそろえて、サンプル列方向にビット列を抽出し、符号化する例を示した。第5実施例では、非ゼロとなり得る端数部分のLSBを同一ビット位置にそろえて整数値のサンプル列とし、サンプル列方向の冗長性を除いて圧縮符号化を行うもので、図2の符号化装置100に適用した場合の符号化装置の構成例を図24に示す。
図2と異なる点は圧縮符号化部17の構成である。図24に示すように、圧縮符号化部17は、端数部分抽出部17Eと、フレーム内平均部17Fと、減算器17Gと、符号化部17D1、17D2とから構成されている。差分生成部14からの差分信号Zは端数部分抽出部17Eで各サンプルの仮数部Mから下位h=23−nビットの端数部分を1つの整数値サンプルFとして抽出する。フレーム内平均部17Fは各フレーム毎にフレーム内の抽出された整数値サンプルの平均値Faveを計算し、符号化部17D1で符号化して符号列Cb1を出力する。平均値Faveと各整数値サンプルFとの差を誤差サンプルΔFとして減算器17Gで求め、その誤差サンプルΔFを符号化部17D2で予測符号化を行い、予測誤差を可逆圧縮符号化して符号列Cb2を出力する。予測パラメータは別途補助情報として送ってもよいし、符号化装置と復号化装置で共通に適応的に更新してもよい。
図25は図24に対応する復号化装置の例を示す。この構成は、図8の復号化装置における伸張部23の構成を変更したものである。この実施形態では、伸張部23は伸張部23B,23Cと、加算部23Dと組立て部23Aとから構成されている。伸張部23Bは、受信した符号列Cb1を伸張復号化してフレームごとの平均値Faveを出力する。伸張部23Cは受信した符号列Cb2を伸張復号化して予測誤差を求め、更に予測復号化を経て誤差サンプルΔFを出力する。誤差サンプルΔFは平均値Faveと加算部23Dで加算され、整数値サンプルFが得られる。組立て部23Aはこの整数値サンプルFと、伸張部21の桁数計算部21Aからの桁数nとを使って差分信号Zを組み立てる。得られた差分信号Zと、整数値信号サンプルYの浮動小数点形式信号サンプルY’とから、図8の場合と同様にして信号サンプルXが合成される。
この第4実施形態は第3実施形態にも適用でき、その場合は、図16及び17における圧縮符号化部17と伸張部23をそれぞれ図24及び25における圧縮符号化部17と伸張部23で置き換えればよい。
コンピュータによる実施形態
図2、図9、図12、図16、図24に示した符号化装置100は図26に示すような、バス68で互いに接続されたRAM61,CPU62,ハードディスク63、ROM64、送受信部65、入出力部66、オーディオ・ビデオ入出力部67などを有するコンピュータ600により機能させてもよい。
ROM64にはコンピュータの起動に関するプログラムが格納されており、ハードディスク63にはコンピュータの動作システムプログラムが格納されている。この発明の符号化装置100の機能構成を実行するプログラムは予めCD−ROM又はDVDなどの記録媒体71からCD/DVDドライブ66によりハードディスク63に読み込んでおくか、通信回線を通して送受信部65によりダウンロードしてハードディスク63に読み込んでおく。
符号化する浮動小数点形式のディジタル信号サンプルXの系列は例えばオーディオ・ビデオ入出力部67により外部から取り込んで、バッファとして動作させるハードディスク63に一時記憶する。符号化を開始するには、符号化を実行するプログラムをハードディスク63からRAM61に読み込んで、その実行プログラムをCPU62により実行する。符号化結果である符号Ca,Cb(又はZ),Cc等は送受信部65により通信回線を通して送信してもよいし、CD/DVDドライブ66によりCD又はDVDの記録媒体に記録保存してもよい。
図8、図11、図13、図17、図26に示した復号化装置200を図24のコンピュータで実施する場合も同様に、復号化装置の機能構成を実行するプログラムをハードディスク63に格納しておき、送受信部65で通信回線から受信した符号Ca,Cb(又はZ),Ccに対し復号プログラムを実行する。復号結果は表示器73及びスピーカ74に再生出力する。
この発明は音楽信号のみならず、音声信号、画像信号などに対しても適用することができる。

Claims (28)

  1. (a)浮動小数点形式の第1信号サンプルを絶対値が小さくなるように切捨てを行って整数形式の第2信号サンプルに変換する過程と、
    (b)上記整数形式の第2信号サンプルを可逆圧縮して第1符号列を生成して出力する過程と、
    (c)上記整数形式の第2信号サンプルと上記浮動小数点形式の第1信号サンプルとの差分に対応する浮動小数点形式の差分信号を生成する過程と、
    (d)上記浮動小数点形式の差分信号の、上記整数形式の第2信号サンプルの最上位の1より下位のビット数により決まる非ゼロになり得るビット領域に対応する第2符号列を生成して出力する過程、
    とを含む浮動小数点形式ディジタル信号可逆符号化方法。
  2. 請求項1記載の符号化方法において、上記過程(d)は、上記差分信号の、上記非ゼロになり得るビット領域を可逆圧縮して上記第2符号列を生成する過程を含む。
  3. 請求項2記載の符号化方法において、上記非ゼロになり得るビット領域は、上記第1信号サンプルの仮数部における小数点以下の端数部分である。
  4. 請求項2記載の符号化方法において、上記過程(a)は、
    (a−1)上記第1信号サンプルの複数サンプル区間毎にその区間内の上記浮動小数点形式の第1信号サンプルの指数部の最大値を検出する過程と、
    (a−2)上記区間内の上記第1信号サンプルの整数値に変換後の最大桁数が予め決めた値と成るように上記区間内の第1信号サンプルの上記指数部の値をそれぞれ上記検出した最大値に基いて決めた調整値だけ調整する過程と、
    (a−3)上記指数部が調整された浮動小数点形式の上記区間内の第1信号サンプルを、上記整数形式に変換する過程と、
    (a−4)上記調整値と対応した調整情報を符号化して補助符号を生成する過程、
    とを含み、上記過程(d)は上記補助符号も出力する。
  5. 請求項2記載の符号化方法において、上記整数形式の第2信号サンプルのビット数bは上記浮動小数点形式の第1信号サンプルの仮数部のビット数b以下であり、
    上記第2符号列の生成過程は、上記整数形式の第2信号サンプルの最上位の1より下位のビット数に対応して決まる上記第1信号サンプルの仮数部における非ゼロになり得る多数部分の領域を、上記仮数部のビット数bと上記第2信号サンプルのビット数bとの差のビット数の上位側ビット領域と、残りの下位側ビット領域とに分けてそれぞれ可逆圧縮し、それらの符号を上記第2符号列として出力する過程を含む。
  6. 請求項2記載の符号化方法において、上記過程(d)は、フレーム毎にフレーム内の上記差分信号のサンプルの仮数部における非ゼロとなり得るビット領域である端数部分をそれらの最上位ビットをそろえて配置し、少なくともサンプル方向にビットを選択して複数のビット列を生成し、それぞれの上記ビット列を可逆圧縮して上記第2符号列を生成する過程を含む。
  7. 請求項1記載の符号化方法において、上記ステップ(c)は、フレーム毎にフレーム内の上記差分信号の端数部分を整数値サンプルとするサンプル列の平均値を求め、それぞれの整数値サンプルの値から上記平均値を減算した信号に対し、サンプル方向に予測を行い、その予測誤差を可逆圧縮符号化するとともに、上記平均値を符号化して上記第2符号列とする過程である。
  8. (a)第1符号列を復号伸張して整数形式の第1信号サンプルを生成する過程と、
    (b)上記第1信号サンプルの最上位の1より下位のビット数に応じて決まる非ゼロになり得る桁数に基いて、第2符号列から浮動小数点形式の差分信号を生成する過程と、
    (c)上記整数形式の第1信号サンプルを浮動小数点形式の第2信号サンプルに変換する過程と、
    (d)上記浮動小数点形式の第2信号サンプルと上記浮動小数点形式の差分信号を合成して浮動小数点形式の第3信号サンプルを生成する過程、
    とを含む浮動小数点形式ディジタル信号復号化方法。
  9. 請求項8記載の復号化方法において、上記差分信号を生成する過程(b)は、上記第2符号列を復号伸張して上記非ゼロになり得る桁の端数部分を生成し、上記端数部分を使って上記浮動小数点形式の差分信号を生成する過程である。
  10. 請求項9記載の復号化方法において、補助符号を復号して調整情報を生成する過程と、上記整数形式の第1信号サンプル又は上記合成信号に対し、上記調整情報により桁調整する過程とを含む。
  11. 請求項9記載の復号方法において、上記第2符号列は第1符号系列と第2符号系列とを含み、
    上記差分信号の生成過程(b)は、
    (b−1)上記整数形式の第1信号サンプルのビット数と上記浮動小数点形式の第3信号サンプルの仮数部のビット数との差のビット数の上位側ビット領域に上記第1符号系列を復号伸張する過程と、
    (b−2)上記第2符号系列を下位側ビット領域に復号伸張する過程と、
    (b−3)上記上位側ビット領域の下位側に上記下位側ビット領域を付加して仮数部の端数部分として上記差分信号を生成する過程、
    とを含む。
  12. 請求項9記載の復号化方法において、上記過程(b)は、
    (b−1)フレーム毎に上記第2符号列を復号伸張して複数のビット列を得る過程と、
    (b−2)フレーム内のサンプル方向におけるサンプル位置とサンプル内の振幅方向における位置で規定されるビット位置を少なくともサンプル方向に走査して各ビット位置が対応する上記整数形式の第1信号サンプルの最上位の1より下位のビット数により決まる端数部分のビット長内にあるビット位置に各上記ビット列のビットを分配してフレーム内の差分信号の端数部分を再構成する過程と、
    (b−3)各上記端数部分の上位側に上記対応する第1信号サンプルの上記最上位の1より下位のビット数だけゼロを挿入して各差分信号の仮数部を再構成することにより、上記差分信号を生成する過程、
    とを含む。
  13. 請求項8記載の復号化方法において、上記過程(b)は、上記第2符号列を伸張復号してフレームごとのサンプルの平均値とフレーム内の各サンプルに対応する予測誤差から平均値が除かれた信号を得る過程と、上記平均値と平均値が除かれた信号を加算して端数部分を生成する過程と、上記端数部分の上位側に、上記整数値の最上位の1より下位のビット数だけ0を挿入して差分信号の仮数部を生成する過程とを含む。
  14. 入力された浮動小数点形式の第1信号サンプルを絶対値が小さくなるように切捨てを行って整数形式の第2信号サンプルに変換する整数化部と、
    上記整数形式の第2信号サンプルが入力され、これを可逆圧縮して第1符号列を生成する第1圧縮部と、
    上記整数形式の第2信号サンプルと上記浮動小数点形式の第1信号サンプルとの差分に対応する浮動小数点形式の差分信号を生成する差分生成部と、
    上記浮動小数点形式の差分信号の、上記整数形式の第2信号サンプルの最上位の1より下位のビット数に応じて決まる非ゼロになり得るビット領域に対応する第2符号列を生成して出力する第2符号列生成手段、
    とを含む浮動小数点形式ディジタル信号可逆符号化装置。
  15. 請求項14に記載の符号化装置において、上記第2符号列生成手段は、上記差分信号を可逆圧縮し、圧縮結果を上記第2符号列として出力する第2圧縮部を含む。
  16. 請求項15記載の符号化装置において、
    上記第1ディジタル信号サンプルの複数サンプル区間毎にその区間内の上記浮動小数点形式の第1ディジタル信号サンプルの指数部の最大値を検出し、上記区間内の上記第1ディジタル信号サンプルの整数値に変換後の最大桁数が予め決めた値となるように上記区間内の第1ディジタル信号サンプルの上記指数部の値をそれぞれ上記検出した最大値に基いて決めた調整値だけ調整する桁調整部と、
    上記調整値と対応した調整情報を符号化して補助符号を生成出力する補助符号化部、
    とを含む。
  17. 請求項15記載の符号化装置において、上記整数形式の第2信号サンプルのビット数bは上記浮動小数点形式の第1信号サンプルの仮数部のビット数b以下であり、
    上記第2圧縮部は、上記整数形式の第2信号サンプルの最上位の1より下位のビット数に対応して決まる上記第1信号サンプルの仮数部における非ゼロになり得る端数部分の領域中の、上記仮数部のビット数bと上記第2信号サンプルのビット数bとの差のビット数の上位側ビット領域を可逆圧縮符号化して第1符号系列を生成する第1圧縮符号化部と、上記端数部分の上記上位側ビット領域の下位側のビット領域を可逆圧縮符号化して第2符号系列を生成する第2圧縮符号化部とを含み、それら第1及び第2符号系列は上記第2符号列として出力される。
  18. 請求項15記載の符号化装置において、上記差分生成部は、フレーム毎にフレーム内の上記差分信号のサンプルの仮数部における非ゼロとなり得るビット領域である端数部分をそれらの最上位ビットをそろえて配置し、少なくともサンプル方向にビットを選択して複数のビット列を生成するビット列生成主段を含み、上記第2圧縮部は上記ビット列を可逆圧縮して上記第2符号列を生成する。
  19. 請求項15記載の符号化装置において、上記差分生成部は、フレーム毎にフレーム内の上記差分信号の端数部分を整数値サンプルとするサンプル列の平均値を求める平均値算出部と、それぞれの整数値サンプルと上記平均値との誤差を求める減算器と、上記誤差をサンプル方向に予測を行い、予測誤差を可逆圧縮符号化するとともに、上記平均値を符号化して上記第2符号列とする符号化部とを含む。
  20. 第1符号列が入力され、これを復号伸張して整数形式の第1信号サンプルを生成する第1伸張部と、
    上記第1信号サンプルの最上位の1より下位のビット数に応じて決まる非ゼロになり得る桁数に基いて、第2符号列から浮動小数点形式の差分信号を生成する差分信号復号手段と、
    上記整数形式の第1信号サンプルが入力され、これを浮動小数点形式の第2信号サンプルに変換する浮動小数点化部と、
    上記浮動小数点形式の第2信号サンプルと上記浮動小数点形式の差分信号が入力され、これらを合成して浮動小数点形式の第3信号サンプルを生成する合成部と
    を有する浮動小数点形式ディジタル信号復号化装置。
  21. 請求項20記載の復号化装置において、上記差分信号復号手段は、上記第2符号列を復号伸張して上記非ゼロになり得る桁の端数部分を生成し、上記端数部分を使って上記浮動小数点形式の差分信号を生成する手段である。
  22. 請求項21記載の復号化装置において、補助符合を復号して調整情報を生成する補助復号部と、上記整数形式の第1信号サンプル又は上記合成信号に対し、上記調整情報により桁調整する桁補正部とを含む。
  23. 請求項20記載の復号化装置において、上記第2符号列は第1符号系列と第2符号系列とを含み、
    上記第2伸張部は、上記整数形式の第1信号サンプルのビット数と上記浮動小数点形式の第3信号サンプルの仮数部のビット数との差のビット数の上位側ビット領域に上記第2符号系列を復号伸張する第3伸張部と、上記第2符号系列を下位側ビット領域に復号伸張する第4伸張部と、上記上位側ビット領域の下位側に上記下位側ビット領域を付加して仮数部の端数部分として上記差分信号を生成する合成部、とを含む。
  24. 請求項20記載の復号化装置において、上記第2伸張部は、フレーム毎に上記第2符号列を復号伸張復号して複数のビット列を得る復号化部と、フレーム内のサンプル方向におけるサンプル位置とサンプル内の振幅方向における位置で規定されるビット位置を少なくともサンプル方向に走査して各ビット位置が対応する上記整数形式の第1信号サンプルの最上位の1より下位のビット数により決まる端数部分のビット長内にあるビット位置に各上記ビット列のビットを分配してフレーム内の差分信号の端数部分を再構成し、各上記端数部分の上位側に上記対応するサンプルの最上位の1より下位のビット数だけゼロを挿入して各差分信号の仮数部を再構成し、上記差分信号を生成する再構成手段とを含む。
  25. 請求項20記載の復号化装置において、上記差分信号復号手段は、上記第2符号列を伸張復号してフレームごとのサンプルの平均値とフレーム内の各サンプルに対応する誤差を得る伸張復号部と、上記平均値と各誤差を加算して端数部分を生成する加算部と、上記端数部分の上位側に、上記第1サンプルの最上位の1より下位のビット数だけ0を挿入して差分信号の仮数部を生成する手段とを含む。
  26. 請求項1乃至7のいずれかに記載した浮動小数点形式ディジタル信号可逆符号化方法の各過程をコンピュータに実行させるための符号化プログラム。
  27. 請求項8乃至13のいずれかに記載した浮動小数点形式ディジタル信号復号化方法の各過程をコンピュータに実行させるための復号化プログラム。
  28. 請求項26又は27に記載したプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2005507254A 2003-06-20 2004-06-21 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム Expired - Lifetime JP4049792B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003176224 2003-06-20
JP2003176224 2003-06-20
PCT/JP2004/008726 WO2004114527A1 (ja) 2003-06-20 2004-06-21 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム

Publications (2)

Publication Number Publication Date
JPWO2004114527A1 true JPWO2004114527A1 (ja) 2006-07-27
JP4049792B2 JP4049792B2 (ja) 2008-02-20

Family

ID=33534889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005507254A Expired - Lifetime JP4049792B2 (ja) 2003-06-20 2004-06-21 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム

Country Status (5)

Country Link
US (1) US7230551B2 (ja)
EP (1) EP1638209B8 (ja)
JP (1) JP4049792B2 (ja)
CN (1) CN1781253B (ja)
WO (1) WO2004114527A1 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036113B (zh) * 2004-10-15 2010-11-03 日本电信电话株式会社 信息编码方法、解码方法、利用这些方法的装置
GB2420952B (en) * 2004-12-06 2007-03-14 Autoliv Dev A data compression method
JP4523885B2 (ja) * 2005-06-30 2010-08-11 日本電信電話株式会社 信号の符号化装置、方法、プログラムおよび記録媒体
EP1901432B1 (en) * 2005-07-07 2011-11-09 Nippon Telegraph And Telephone Corporation Signal encoder, signal decoder, signal encoding method, signal decoding method, program, recording medium and signal codec method
US8674855B2 (en) * 2006-01-13 2014-03-18 Essex Pa, L.L.C. Identification of text
US7783079B2 (en) * 2006-04-07 2010-08-24 Monro Donald M Motion assisted data enhancement
US7586424B2 (en) * 2006-06-05 2009-09-08 Donald Martin Monro Data coding using an exponent and a residual
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7770091B2 (en) * 2006-06-19 2010-08-03 Monro Donald M Data compression for use in communication systems
US7689049B2 (en) * 2006-08-31 2010-03-30 Donald Martin Monro Matching pursuits coding of data
US7974488B2 (en) 2006-10-05 2011-07-05 Intellectual Ventures Holding 35 Llc Matching pursuits basis selection
US20080084924A1 (en) * 2006-10-05 2008-04-10 Donald Martin Monro Matching pursuits basis selection design
US7707214B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location with indirect addressing
US7707213B2 (en) * 2007-02-21 2010-04-27 Donald Martin Monro Hierarchical update scheme for extremum location
US10194175B2 (en) 2007-02-23 2019-01-29 Xylon Llc Video coding with embedded motion
KR100889750B1 (ko) * 2007-05-17 2009-03-24 한국전자통신연구원 오디오 신호의 무손실 부호화/복호화 장치 및 그 방법
US8068042B2 (en) * 2007-12-11 2011-11-29 Nippon Telegraph And Telephone Corporation Coding method, decoding method, and apparatuses, programs and recording media therefor
US7786907B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786903B2 (en) * 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US8558724B2 (en) * 2009-05-20 2013-10-15 Nippon Telegraph And Telephone Corporation Coding method, coding appartaus, decoding method, decoding apparatus, program, and recording medium
JP4705685B2 (ja) * 2009-06-12 2011-06-22 日本電信電話株式会社 信号の符号化装置、復号化装置、方法、プログラム、および記録媒体
EP2387004B1 (en) 2010-05-11 2016-12-14 Dassault Systèmes Lossless compression of a structured set of floating point numbers, particularly for CAD systems
GB2488322B (en) * 2011-02-22 2017-09-20 Advanced Risc Mach Ltd Number format pre-conversion instructions
TWI524265B (zh) 2011-06-30 2016-03-01 艾特拉股份有限公司 浮點資料之壓縮
US8990217B2 (en) 2011-07-13 2015-03-24 International Business Machines Corporation Lossless compression of high nominal-range data
US20130019029A1 (en) * 2011-07-13 2013-01-17 International Business Machines Corporation Lossless compression of a predictive data stream having mixed data types
US9104473B2 (en) 2012-03-30 2015-08-11 Altera Corporation Conversion and compression of floating-point and integer data
CN102628948A (zh) * 2012-04-10 2012-08-08 中国航空无线电电子研究所 用于批量发送通用航空器经纬位置数据的压缩方法
CN103378863B (zh) * 2012-04-18 2017-11-10 苏州超擎图形软件科技发展有限公司 空间数据压缩、解压与渐进传输的有关方法与装置
JP6145965B2 (ja) * 2012-04-19 2017-06-14 富士ゼロックス株式会社 画像符号化装置及び画像復号化装置並びにプログラム
CA2986559A1 (en) * 2015-05-21 2016-11-24 Zeropoint Technologies Ab Methods, devices and systems for semantic-value data compression and decompression
KR20210034411A (ko) * 2019-09-20 2021-03-30 삼성전자주식회사 데이터 압축기를 포함하는 무선 통신 장치 및 이의 동작 방법
CN111142676B (zh) * 2019-12-30 2023-08-08 歌尔科技有限公司 数据传输方法、装置、头戴显示设备和可读存储介质
TWI774233B (zh) * 2020-09-23 2022-08-11 瑞昱半導體股份有限公司 訊號傳輸系統與發射端編碼裝置
CN112665886B (zh) * 2020-12-11 2023-06-27 浙江中控技术股份有限公司 一种大型旋转机械振动测量高频原始数据的数据转换方法
TWI785546B (zh) * 2021-03-23 2022-12-01 創鑫智慧股份有限公司 浮點數的編碼與解碼的方法與裝置
CN113791756B (zh) * 2021-09-18 2022-12-23 中科寒武纪科技股份有限公司 转数方法、存储介质、装置及板卡
US11742875B1 (en) * 2022-04-20 2023-08-29 Mediatek Inc. Compression of floating-point numbers for neural networks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3406275B2 (ja) * 1999-05-21 2003-05-12 日本電信電話株式会社 ディジタル信号符号化方法、ディジタル信号復号化方法、これらの装置及びその各プログラム記録媒体
US6535898B1 (en) * 2000-01-24 2003-03-18 Microsoft Corporation Fast floating-point truncation to integer form
US6879992B2 (en) * 2000-12-27 2005-04-12 Intel Corporation System and method to efficiently round real numbers
JP3811110B2 (ja) 2001-08-23 2006-08-16 日本電信電話株式会社 ディジタル信号符号化方法、復号化方法、これらの装置、プログラム及び記録媒体
WO2003077425A1 (fr) * 2002-03-08 2003-09-18 Nippon Telegraph And Telephone Corporation Procedes de codage et de decodage signaux numeriques, dispositifs de codage et de decodage, programme de codage et de decodage de signaux numeriques

Also Published As

Publication number Publication date
US20060284747A1 (en) 2006-12-21
US7230551B2 (en) 2007-06-12
CN1781253A (zh) 2006-05-31
EP1638209A1 (en) 2006-03-22
JP4049792B2 (ja) 2008-02-20
CN1781253B (zh) 2012-01-25
EP1638209B8 (en) 2019-09-11
EP1638209A4 (en) 2006-08-16
WO2004114527A1 (ja) 2004-12-29
EP1638209B1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
JP4049792B2 (ja) 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム
JP4049793B2 (ja) 浮動小数点信号可逆符号化方法、復号化方法、及びそれらの装置、プログラム及びその記録媒体
JP4049791B2 (ja) 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム
KR100518640B1 (ko) 라이스인코더/디코더를사용한데이터압축/복원장치및방법
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP4888335B2 (ja) 符号化方法及び装置、並びにプログラム
US20070257824A1 (en) Information Encoding Method, Decoding Method, Common Multiplier Estimating Method, and Apparatus, Program, and Recording Medium Using These Methods
JP2005242363A (ja) 無損失オーディオ符号化/復号化方法および装置
JP4359312B2 (ja) 信号の符号化装置、復号化装置、方法、プログラム、記録媒体、及び信号のコーデック方法
US11475600B2 (en) Method and device for digital data compression
Mahmud An improved data compression method for general data
JP2004165776A (ja) 符号送信方法、符号受信方法、これらの装置及びその各プログラム
JP2006211243A (ja) ディジタル信号符号化装置,ディジタル信号符号化方法
JP4523885B2 (ja) 信号の符号化装置、方法、プログラムおよび記録媒体
JP4195598B2 (ja) 符号化方法、復号化方法、符号化装置、復号化装置、符号化プログラム、復号化プログラム
KR100686354B1 (ko) 가변 트리를 이용한 허프만 복호화 방법 및 장치
JPH08316846A (ja) 画像符号化装置、画像復号化装置、画像符号化方法および画像復号化方法
JP3791793B2 (ja) ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム
Bařina Compression techniques
JPH06164944A (ja) 画像データの圧縮方法およびその装置ならびに画像データの復元方法およびその装置
JPH1020893A (ja) 符号器及び復号器

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071127

R150 Certificate of patent or registration of utility model

Ref document number: 4049792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350