JP2001007707A - 符号化装置 - Google Patents
符号化装置Info
- Publication number
- JP2001007707A JP2001007707A JP11358194A JP35819499A JP2001007707A JP 2001007707 A JP2001007707 A JP 2001007707A JP 11358194 A JP11358194 A JP 11358194A JP 35819499 A JP35819499 A JP 35819499A JP 2001007707 A JP2001007707 A JP 2001007707A
- Authority
- JP
- Japan
- Prior art keywords
- huffman
- function
- value
- code length
- index
- 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
Links
- 230000006870 function Effects 0.000 claims description 177
- 238000004364 calculation method Methods 0.000 claims description 76
- 230000003595 spectral effect Effects 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 abstract description 62
- 238000001228 spectrum Methods 0.000 description 68
- 238000010586 diagram Methods 0.000 description 18
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 101100387135 Caenorhabditis elegans dex-1 gene Proteins 0.000 description 1
- 241000353097 Molva molva Species 0.000 description 1
- 101100270435 Mus musculus Arhgef12 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Abstract
て迅速に選択する。 【解決手段】 各メモリ100〜103に記憶されたデ
ータの各グループが、ハフマンコード選択部108によ
って選択されたハフマンコードブックに基づいて、ハフ
マン符号化部109〜112によってハフマン符号化さ
れる。ハフマンコードブック選択部108の制御部11
6は、各ハフマンコードブックによって各グループのデ
ータをハフマン符号化した場合に得られる符号長が各ハ
フマンコードブック毎にそれぞれ設定された符号長算出
部114、115からの出力に基づいて、データの各グ
ループに適したハフマンコードブックを選択する。符号
長設定部114、115に設定される符号長には、ハフ
マンコードブックがアンサインドコードブックの場合に
は、サイン情報のために必要とするビット数が予め加算
されている。
Description
いた符号化装置に関し、特に、複数のハフマンコードブ
ックの中から最適なハフマンコードブックを選択し、選
択されたハフマンコードブックを用いてデジタルデータ
を符号化する符号化装置に関する。
として、量子化されたオーディオ信号のスペクトルデー
タをハフマン符号化を用いて、高能率圧縮する方法が用
いられている。例えば、MPEG2−AAC規格の符号
化方式がそれであり、以下、その圧縮方法について説明
する(ISO/IEC 13818−7参照)。
によって、1024本毎の周波数スペクトルデータに変
換される。この過程は、"ISO/IEC 13818-7 ANNEX B 2.3
FilterBank and block switching"に詳しく述べられて
いるので、ここでは省略する。
データは、非線形量子化の手法によって、量子化(整数
化)される。この過程は、"ISO/IEC 13818-7 ANNEX B
2.7 Quantizing"に詳しく述べられているので、ここで
は省略する。
ペクトルデータは、スケールファクタバンド(sfb)
と呼ばれるグループに分割される。例えば、サンプリン
グ周波数が48kHzの場合では、1024本の量子化
された周波数スペクトルデータは、49個のsfbのグ
ループに分割される。周波数スペクトルデータの分割
は、図4の表に従って行われる。すなわち、 0番目のsfbは、スペクトルデータの0本目から3本
目までの4本 1番目のsfbは、スペクトルデータの4本目から7本
目までの4本 2番目のsfbは、スペクトルデータの8本目から12
本目までの4本 というように分割される("ISO/IEC 13818-7 3.8 Table
s"参照)。
グループ化されたスペクトルデータの例を示す。図5に
おいて、左欄の「sfb」は、スケールファクタバンド
sfbを表し、中央欄の「spectrum」は、スペ
クトルデータの番号を表し、右欄の「volue」はス
ペクトルデータの絶対値を表す。
たスペクトルデータは、各sfb毎にハフマン符号化さ
れる。このときのハフマン符号化は、複数のハフマンコ
ードブックの中から、sfbごとに1つのハフマンコー
ドブックを選択し、そのハフマンコードブックに基づい
て行われる。MPEG2−AAC規格においては、ハフ
マンコードブック1〜11の11個のハフマンコードブ
ックの中から1つのハフマンコードブックを選択するよ
うになっている。しかし、以下においては説明の簡単化
のために、ハフマンコードブック3〜6の4つの中から
1つのハフマンコードブックを選択し、ハフマン符号化
する過程を説明する。
ブック3〜6を示す。図6から図9のハフマンコードブ
ック3〜6において、最も左側の「index」の欄
は、符号化の対象となるデータのインデックス番号を示
し、左側から2番目の「length」の欄は、符号化
後のデータの符号長を示し、左側から3番目の「cod
eword(hexadecimal)」の欄は、符号
化されたデータ(符号語)を16進表記により示してい
る。図6〜図9のハフマンコードブック3〜6には、イ
ンデックス番号0〜80に対する符号化後のデータの符
号長(length)、及び、その符号化後のデータの
符号長が16進表記(codeword)されている。
スペクトルデータの絶対値の最大値は4である。MPE
G2−AAC規格においては、入力信号の絶対値の最大
値に応じて、選択できるハフマンコードブックは制限さ
れている。この制限は、図10に示されるLAV(Larg
est Absolute Value)により定められている。LAV
は、当該ハフマンコードブックが対象とする入力データ
の絶対値の最大値を示す。「sfb0」内のスペクトル
データの絶対値の最大値が4であるため、図10によ
り、ハフマンコードブック5と、ハフマンコードブック
6とが、選択の対象となる。選択の対象となったハフマ
ンコードブック5と、ハフマンコードブック6のそれぞ
れによりハフマン符号化した際の符号化後の符号長を比
較し、符号長が短い方のハフマンコードブックが選択さ
れる。ここで、ハフマンコードブック5および6におい
て、ハフマン符号化後の符号長を求める方法は以下の通
りである。
クトルの要素(値)をそれぞれD0,D1,D2,D3
としたとき、次の各式によって、2つのインデックス番
号「index0」および「index0」をそれぞれ
演算する。 index0=(D0+LAV)*(2*LAV+1)+(D1+LAV) …(1) index1=(D2+LAV)*(2*LAV+1)+(D3+LAV) …(2) そして、算出された「index0」および「inde
x1」を、それぞれインデックス番号とする。このイン
デックス番号に基づいて、ハフマンコードブック5とハ
フマンコードブック6における符号長である「leng
th」をそれぞれ得る。
2=0,D3=3,LAV=4である。よって、ind
ex0=74,index1=43となる。これらの値
をインデックス番号として、図8に示されるハフマンコ
ードブック5を引くと、index0に対してはlen
gth=12が得られ、index1に対してはlen
gth=8が得られて、合計20ビットがハフマン符号
化後の符号長であることが分かる。一方、上記inde
x0,index1の値をインデックス番号として図9
に示されるハフマンコードブック6を引くと、inde
x0に対してはlength=9が得られ、index
1に対してはlength=7が得られて、合計16ビ
ットがハフマン符号化後の符号長であることが分かる。
このように、グループ「sfb0」に含まれる各スペク
トルデータを符号化するためには、ハフマンコードブッ
ク6を用いた方が有利であるので、ハフマンコードブッ
ク6が選択される。
は、ハフマンコードブック5を用いた場合のハフマン符
号化後の符号長は18ビットとなり、ハフマンコードブ
ック6を用いた場合のハフマン符号化後の符号長は13
ビットとなる。このように、グループ「sfb1」に含
まれる各スペクトルデータを符号化するためには、ハフ
マンコードブック6を用いた方が有利であるので、ハフ
マンコードブック6が選択される。
いては、各スペクトルデータの絶対値の最大値は1であ
るため、ハフマンコードブック3〜6が選択の対象とな
る。上述した方法によりハフマン符号化後の符号長を求
めると、ハフマンコードブック5を用いた場合は9ビッ
ト、ハフマンコードブック6を用いた場合は8ビットと
なる。
ードブック4を用いて、ハフマン符号化後の符号長を求
める方法は以下の通りである。ハフマンコードブック3
とハフマンコードブック4は、いわゆる、アンサインド
コードブックとよばれるものであり、符号化の対象とな
るデータが符号なしデータ(アンサインドデータ)であ
る。アンサインドデータの場合には、ハフマン符号化の
対象は、入力のデータの絶対値となり、欠落したサイン
情報の数は、別途数えられ、ハフマン符号化の符号量に
加算される。欠落したサイン情報の数は、当該データの
中で値が0でない要素(サイン情報を必要とするデー
タ)の数である。以下に、そのような場合のハフマン符
号化後の符号長を求める方法を説明する。
クトルデータの要素(値)をそれぞれD0,D1,D
2,D3とし、以下の式によって、インデックス番号と
して、index0を演算する。なお、次式における
「abs()」は、絶対値をとる記号、「^」は、べき
乗演算子、k=LAV+1である。
ハフマンコードブック3およびハフマンコードブック4
から、lengthをそれぞれ求める。図5のグループ
「sfb2」の例においては、D0=1,D1=−1,
D2=1,D3=0,LAV=2であるので、inde
x0=39となる。この値をインデックス番号として、
図6に示すハフマンコードブック3を引くと、leng
th=6が得られる。ハフマンコードブック3から得ら
れた符号語には符号ビットが欠落しているので、符号ビ
ットを復元するためのサイン情報が必要である。そのた
め、グループ「sfb2」の4つのスペクトルデータに
おいて、値が0でないスペクトルデータの数だけサイン
情報が必要となる。図5のグループ「sfb2」の例に
おいては、値が0でないスペクトルデータの数は3であ
るので、3ビットのサイン情報ビットがハフマン符号化
後の符号語に付加されなくてはならない。よって、ハフ
マン符号化後の符号長は、length=6とサイン情
報ビット3とを加算した9ビットとなる。
すハフマンコードブック4を引くと、length=4
が得られる。この場合も、サイン情報ビットとして3ビ
ットが加算されなくてはならないため、ハフマン符号化
後の符号長は、length=4とサイン情報ビット3
とを加算した7ビットとなる。
マン符号化後の符号長は、ハフマンコードブック3を用
いると9ビット、ハフマンコードブック4を用いると7
ビット、ハフマンコードブック5を用いると9ビット、
ハフマンコードブック6を用いると8ビットとなる。よ
って、ハフマンコードブック4を用いた場合が有利であ
るため、ハフマンコードブック4が選択される。
fb」についてハフマンコードブックが選択され、選択
された各ハフマンコードブックを用いて、スペクトルデ
ータのハフマン符号化が行われる。ハフマン符号化の方
法は簡単であり、上記のようにして求められたインデッ
クス番号(上記index0,index1等)に対応
する当該ハフマンコードブックの16進表記(code
word)を符号化データとして出力するだけである。
b」について選択されたハフマンコードブックの番号を
符号化する。このハフマンコードブックの符号化は、M
PEG2−AAC規格によれば、グループ「sfb」に
ついて選択されたハフマンコードブックの番号自体を4
ビットで符号化し、このグループ「sfb」から連続す
るグループ「sfb」においても、同じハフマンコード
ブックが選択されているかを示す数を5ビットで符号化
することにより行われる。図5に示される例において
は、グループ「sfb0」とグループ「sfb1」にお
いてハフマンコードブック6が選択されているので、ま
ず4ビットでハフマンコードブックの番号である「6」
を(0110)と表現し、5ビットで、次のグループ
も、同様のハフマンコードブックが連続して選択されて
いることを示す「1」を(00001)と表現する。次
に、グループ「sfb2」において、ハフマンコードブ
ック4が選択されているので、4ビットでハフマンコー
ドブックの番号である「4」を(0100)と表現す
る。次に続くビット列は、次のグループ「sfb」にお
いて選択されているハフマンコードブックに依存するの
でここでは省略する。このようにして、各グループ「s
fb」毎に選択されているハフマンコードブックが符号
化される。
技術によれば、各グーループ「sfb」のハフマンコー
ドブックを選択する過程の処理が多大になるという問題
点がある。これは、アンサインドコードブックを用いた
場合のサイン情報に使用されるビット数の算出を、アン
サインドコードブックが選択される度に行っていること
によるものである。また、選択の対象となるハフマンコ
ードブックそれぞれについて、各ハフマンコードブック
を用いた際の符号化後の符号長を求める処理を、それぞ
れのハフマンコードブックごとに別々に行っていること
にもよる。
「sfb」毎のハフマンコードブックを選択する過程に
おいて、ハフマンコードブックの番号を符号化するため
に必要な符号量を考慮していないため、必ずしもトータ
ルとして最適なハフマンコードブックが選択されていな
いという問題点もある。すなわち、各グループ「sf
b」のデータについて、符号化後の符号量が最小となる
ハフマンコードブックが選択されているだけであって、
ハフマンコードブックの番号を符号化するために必要な
符号量も考慮した符号化後の全体の符号量が最小となる
ようにはハフマンコードブックが選択されていない。
てなされたものであり、複数のハフマンコードブックの
中から最適なハフマンコードブックを選択し、選択され
たハフマンコードブックを用いてデジタルデータを符号
化する符号化装置であって、ハフマンコードブックを高
速に選択し、少ない処理量で効率的な符号化を行える符
号化装置を提供することを目的とする。
G個のグループ(Gは1以上の整数)に分割されたデー
タのそれぞれを格納するG個の記憶部と、前記各記憶部
にそれぞれ格納された各グループのそれぞれについて、
インデックス番号をそれぞれ有するH個のハフマンコー
ドブック(Hは1以上の整数)の中から1つのハフマン
コードブックを選択するハフマンコードブック選択部
と、このハフマンコードブック選択部にて各グループ毎
にそれぞれ選択されたハフマンコードブックを用いて、
各グループのデータをそれぞれハフマン符号化するG個
のハフマン符号化部と、前記ハフマンコードブック選択
部が選択した各ハフマンコードブックのインデックス番
号をそれぞれ符号化するインデックス番号符号化部と、
を備えた符号化装置であって、前記ハフマンコードブッ
ク選択部は、各ハフマンコードブックによって各グルー
プのデータをハフマン符号化した場合に得られる符号長
が各ハフマンコードブック毎にそれぞれ設定された符号
長算出部と、該符号長算出部にて設定された符号長に基
づいて、各グループ毎のデータに適したハフマンコード
ブックを選択する制御部とを有しており、前記ハフマン
コードブックがアンサインドコードブックの場合には、
前記符号長設定部に設定される符号長に、サイン情報の
ために必要とするビット数が予め加算されていることを
特徴とする。
ック毎に前記符号長が予め設定されたテーブルデータを
有している。
ープ(Gは1以上の整数)に分割されたデータのそれぞ
れを格納するG個の記憶部と、前記各記憶部にそれぞれ
格納された各グループのそれぞれについて、インデック
ス番号をそれぞれ有するH個のハフマンコードブック
(Hは1以上の整数)の中から1つのハフマンコードブ
ックを選択するハフマンコードブック選択部と、このハ
フマンコードブック選択部にて各グループ毎にそれぞれ
選択されたハフマンコードブックを用いて、各グループ
のデータをそれぞれハフマン符号化するG個のハフマン
符号化部と、前記ハフマンコードブック選択部が選択し
た各ハフマンコードブックのインデックス番号をそれぞ
れ符号化するインデックス番号符号化部と、を備えた符
号化装置であって、前記ハフマンコードブック選択部
は、各ハフマンコードブックによって各グループのデー
タをハフマン符号化した場合に得られる符号長が各ハフ
マンコードブック毎にそれぞれ設定された符号長算出部
と、該符号長算出部にて設定された符号長に基づいて、
各グループ毎のデータに適したハフマンコードブックを
選択する制御部とを有しており、前記符号長算出部は、
複数のハフマンコードブックに対する符号長を同時に求
めることができることを特徴とする。
ータに対して複数のハフマンコードブックによって符号
化した場合の符号長をそれぞれ出力するようになってお
り、前記制御部は、該符号長算出部にて出力される符号
長が最も短いハフマンコードブックを選択する。
ータに対して複数のハフマンコードブックによって符号
化した場合の符号長をそれぞれ出力するようになってお
り、前記制御部は、該符号長算出部から出力される各ハ
フマンコードブックの符号長に、各ハフマンコードブッ
クのインデックス番号をそれぞれ考慮して1つのハフマ
ンコードブックを選択する。
(gは整数、1≦g≦G−1)に対するハフマンコード
ブックを選択する際に、前記符号長算出部が出力したハ
フマン符号化後の符号長が最小であるハフマンコードブ
ックHminについてのハフマン符号化後の符号長Bm
inと、g番目のグループにおいて選択されているハフ
マンコードブックHgについてのハフマン符号化後の符
号長Bgとを求め、Bmin<(Bg−A)の場合には
(Aは所定の整数)Hminを選択し、Bmin≧(B
g−A)の場合にはHgを選択する。
るハフマンコードブックとして、前記符号長算出部から
出力される符号長が最も短いハフマンコードブックのイ
ンデックス番号を選択する。
(gは整数、2≦g≦G)に対するハフマンコードブッ
クを選択する際に、前記符号長算出部が出力したハフマ
ン符号化後の符号長が最小であるハフマンコードブック
Hminについてのハフマン符号化後の符号長Bmin
と、g番目のグループにおいて選択されているハフマン
コードブックHgについてのハフマン符号化後の符号長
Bgとを求め、Bmin<(Bg−A)の場合には(A
は所定の整数)Hminを選択し、Bmin≧(Bg−
A)の場合にはHgを選択する。
るハフマンコードブックとして、前記符号長算出部から
出力される符号長が最も短いハフマンコードブックのイ
ンデックス番号を選択する。
の1つのグループに対して選択されているインデックス
番号と同じインデックス番号が、そのグループに連続す
るデータのグループに対して選択されている場合に、そ
のインデックス番号と、連続しているグループの数と
を、前記数値Aのビット数で符号化する。
EG2−AAC規格で定義されている、スペクトルデー
タをハフマン符号化するための11個のハフマンコード
ブックである。
規格で定義されたハフマンコードブック1〜4によって
それぞれデータを符号化した場合の符号長を出力するよ
うになっており、各ハフマンコードブック1および2に
よってデータを符号化した場合の符号長が、共通のイン
デックス値に対応してそれぞれ設定された第1テーブル
と、各ハフマンコードブック3および4に対する符号長
が、共通のインデックス値に対応してそれぞれ設定され
た第2のテーブルとを有している。
ードブック3および4それぞれに対応した符号長には、
サイン情報のために必要とするビット数がそれぞれ予め
加算されている。
数とし、関数nonz(w,x,y,z)を、w,x,
y,zの中で値が0でないものの個数を示す関数とし、
関数F1(w,x,y,z)を、F1(w,x,y,
z)=27*(w+1)+9*(x+1)+3*(y+
1)+(z+1)とし(但し、w,x,y,zの絶対値
変域は1以下)、関数F2(w,x,y,z)を、F2
(w,x,y,z)=27*abs(w)+9*abs
(x)+3*abs(y)+abs(z)とし(但し、
w,x,y,zの絶対値変域は2以下)、関数T1(i
ndex)〜関数T4(index)をハフマンコード
ブック1〜4によってデータをそれぞれ符号化した場合
の符号長を示す関数とし、a,b,c,dをグループ化
されたデータを示す整数とし、前記a,b,c,dから
生成されるインデックス値をi1およびi2としたと
き、前記各ハフマンコードブック1および2のそれぞれ
の符号長が設定された第1のテーブルには、インデック
ス値i1に対して、関数T1(F1(a,b,c,
d))の値と、関数T2(F1(a,b,c,d))の
値とがそれぞれ設定されており、前記各ハフマンコード
ブック3および4のそれぞれの符号長が設定された第2
のテーブルには、インデックス値i2に対して、関数T
3(F2(a,b,c,d))+nonz(a,b,
c,d)の値と、関数T4(F2(a,b,c,d))
+nonz(a,b,c,d)の値とがそれぞれ設定さ
れている。
上の正の数Xに対し、i1=(X^3)*(a+1)+
(X^2)*(b+1)+X*(c+1)+(d+1)
であり、3以上の正の数Yに対し、i2=(Y^3)*
abs(a)+(Y^2)*abs(b)+Y*abs
(c)+abs(d)である。
数Xに対し、それぞれXビット以上により表現されたa
とbとcとdとをビット結合した値であり、前記インデ
ックス値i2は、2以上の正の数Yに対し、それぞれY
ビット以上により表現されたabs(a)とabs
(b)とabs(c)とabs(d)とをビット結合し
た値である。
規格のハフマンコードブック1〜4によってそれぞれデ
ータを符号化した場合の符号長を出力するようになって
おり、各ハフマンコードブック1〜4によってデータを
符号化した場合の符号長が、共通のインデックス値に対
応してそれぞれ設定された1つのテーブルを有してい
る。
ードブック3および4それぞれに対する符号長には、サ
イン情報のために必要とするビット数がそれぞれ予め加
算されている。
数とし、関数nonz(w,x,y,z)を、w,x,
y,zの中で値が0でないものの個数を示す関数とし、
関数F1(w,x,y,z)を、F1(w,x,y,
z)=27*(w+1)+9*(x+1)+3*(y+
1)+(z+1)とし(但し、w,x,y,zの絶対値
変域は1以下)、関数F2(w,x,y,z)を、F2
(w,x,y,z)=27*abs(w)+9*abs
(x)+3*abs(y)+abs(z)とし(但し、
w,x,y,zの絶対値変域は2以下)、関数T1(i
ndex)〜関数T4(index)をハフマンコード
ブック1〜4によってデータをそれぞれ符号化した場合
の符号長を示す関数とし、a,b,c,dをグループ化
されたデータを示す整数とし、前記a,b,c,dから
生成されるインデックス値をjとしたとき、前記各ハフ
マンコードブック1〜4のそれぞれの符号長が設定され
たテーブルには、インデックス値jに対して、関数T1
(F1(a,b,c,d))の値と、関数T2(F1
(a,b,c,d))の値と、関数T3(F2(a,
b,c,d))+nonz(a,b,c,d)の値と、
関数T4(F2(a,b,c,d))+nonz(a,
b,c,d)の値とがそれぞれ設定されている。
Yに対し、それぞれYビット以上により表現されたaと
bとcとdとをビット結合した値である。
規格のハフマンコードブック5〜10によってそれぞれ
符号化された場合の符号長を出力するようになってお
り、各ハフマンコードブック5および6によってそれぞ
れ符号化された場合の符号長が、共通のインデックス値
に対応してそれぞれ設定された第1のテーブルと、各ハ
フマンコードブック7および8によってそれぞれ符号化
された場合の符号長が、共通のインデックス値に対応し
てそれぞれ設定された第2のテーブルと、さらに、各ハ
フマンコードブック9および10によってそれぞれ符号
化された場合の符号長が、共通のインデックス値に対応
してそれぞれ設定された第3のテーブルとを有してい
る。
コードブック7および8それぞれに対応した符号長に
は、サイン情報のために必要とするビット数がそれぞれ
予め加算されており、前記第3テーブルに設定された各
ハフマンコードブック9および10それぞれに対応した
符号長には、サイン情報のために必要とするビット数が
それぞれ予め加算されている。
数とし、関数nonz(x,y)を、x,yの中で値が
0でないものの個数を示す関数とし、関数F3(x,
y)をF3(x,y)=9*(x+4)+(y+4)と
し(但し、x,yの絶対値変域は4以下)、関数F4
(x,y)をF4(x,y)=8*abs(x)+ab
s(y)とし(但し、x,yの絶対値変域は7以下)、
関数F5(x,y)をF5(x,y)=13*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は12以下)、関数T5(index)〜関数T10
(index)を、それぞれ、MPEG2−AAC規格
のハフマンコードブック5〜10によってデータをそれ
ぞれ符号化した場合の符号長を示す関数とし、a,bを
それぞれグループ化されたデータ値を示す整数とし、前
記a,bから生成されるインデックス値をi3、i4、
i5としたとき、前記第1テーブルには、インデックス
値i3に対して、関数T5(F3(a,b))の値と、
関数T6(F3(a,b))の値とがそれぞれ設定され
ており、前記第2のテーブルには、インデックス値i4
に対して、関数T7(F4(a,b))+nonz
(a,b)の値と、関数T8(F4(a,b))+no
nz(a,b)の値とがそれぞれ設定されており、前記
第3のテーブルには、インデックス値i5に対して、関
数T9(F5(a,b))+nonz(a,b)の値
と、関数T10(F5(a,b))+nonz(a,
b)の値とがそれぞれ設定されている。
+4)+(b+4)であり、8以上の正の数Yに対し、
i4=Y*abs(a)+abs(b)であり、13以
上の正の数Zに対し、i5=Z*abs(a)+abs
(b)である。
数Xに対し、それぞれXビット以上により表現されたa
とbとをビット結合した値であり、前記インデックス値
i4は、4以上の正の数Yに対し、それぞれYビット以
上により表現されたaとbとをビット結合した値であ
り、前記インデックス値i5は、5以上の正の数Zに対
し、それぞれZビット以上により表現されたaとbとを
ビット結合した値である。
規格のハフマンコードブック5〜10によってデータを
それぞれ符号化した場合の符号長を出力するようになっ
ており、各ハフマンコードブック5〜10によってデー
タをそれぞれ符号化した場合の符号長が、共通のインデ
ックス値に対応してそれぞれ設定された1つのテーブル
に保持されている。
ードブック7〜10それぞれによって符号化した場合の
符号長には、サイン情報のために必要とするビット数が
それぞれ予め加算されている。
数とし、関数nonz(x,y)を、x,yの中で値が
0でないものの個数を示す関数とし、関数F3(x,
y)をF3(x,y)=9*(x+4)+(y+4)と
し(但し、x,yの絶対値変域は4以下)、関数F4
(x,y)をF4(x,y)=8*abs(x)+ab
s(y)とし(但し、x,yの絶対値変域は7以下)、
関数F5(x,y)をF5(x,y)=13*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は12以下)、関数T5(index)〜関数T10
(index)を、それぞれ、MPEG2−AAC規格
のハフマンコードブック5〜10によってデータをそれ
ぞれ符号化した場合の符号長を示す関数とし、a,bを
それぞれグループ化されたデータ値を示す整数とし、前
記a,bから生成されるインデックス値をkとしたと
き、前記テーブルには、インデックス値kに対して、関
数T5(F3(a,b))の値と、関数T6(F3
(a,b))の値と、関数T7(F4(a,b))+n
onz(a,b)の値と、関数T8(F4(a,b))
+nonz(a,b)の値と、関数T9(F5(a,
b))+nonz(a,b)の値と、関数T10(F5
(a,b))+nonz(a,b)の値とがそれぞれ設
定されている。
Zに対し、それぞれZビット以上により表現されたaと
bとをビット結合した値である。
値が、いずれかのハフマンコードブックによってデータ
を符号化した場合の符号長を算出できない変域外の値の
場合には、該当するハフマンコードブックが無効である
ことを示す値を出力し、前記制御部は、その無効を示す
値を受けとった場合に、無効な値によって示されたハフ
マンコードブックを選択しないようになっている。
の値と、関数T2(F1(a,b,c,d))の値と
は、前記インデックス値i1に対してMSB側とLSM
側とに分けて格納されており、かつ、上記各関数T1の
値と関数T2の値との間には、少なくともm1ビット
(m1は正の整数)の「0」が挿入されており、前記関
数T3(F2(a,b,c,d))+nonz(a,
b,c,d)の値と、関数T4(F2(a,b,c,
d))+nonz(a,b,c,d)の値とは、前記イ
ンデックス値i2に対してMSB側とLSM側とに分け
て格納されており、かつ、上記各関数T3の値と関数T
4の値との間には、少なくともm1ビット(m1>0)
の「0」の値が挿入されている。
の値と、関数T2(F1(a,b,c,d))の値と、
関数T3(F2(a,b,c,d))+nonz(a,
b,c,d)の値と、関数T4(F2(a,b,c,
d))+nonz(a,b,c,d)の値とは、前記イ
ンデックス値jに対してMSB側から、LSM側にかけ
て順番にそれぞれ格納されており、かつ、上記各関数T
1、T2T3、T4それぞれの値の間には、少なくとも
m1ビット(m1は正の整数)の「0」の値がそれぞれ
挿入されている。
個数の最大値を4で割った値をn1とすると、上記m1
の値は、n1に対する底が2の対数(log2(n1))を
演算して、その演算値の小数点以下を切り上げて整数化
した値である。
関数T6(F3(a,b))の値とは、前記インデック
ス値i3に対してMSB側とLSM側とに分けて格納さ
れており、かつ、上記各関数T5の値と関数T6の値と
の間には、少なくともm2ビット(m2は正の整数)の
「0」が挿入されており、前記関数T7(F4(a,
b))+nonz(a,b)の値と、関数T8(F4
(a,b))+nonz(a,b)の値とは、前記イン
デックス値i4に対してMSB側とLSM側とに分けて
格納されており、かつ、関数T7の値と関数T8の値と
の間には、少なくともm2ビット(m2は正の整数)の
「0」の値が挿入されており、前記関数T9(F5
(a,b))+nonz(a,b)の値と、関数T10
(F5(a,b))+nonz(a,b)の値とは、前
記インデックス値i5に対してMSB側とLSM側とに
分けて格納されており、かつ、上記関数T9の値と、関
数T10の値との間には、少なくともm2ビット(m2
は正の整数)の「0」の値が挿入されている。
関数T6(F3(a,b))の値と、関数T7(F4
(a,b))+nonz(a,b)の値と、関数T8
(F4(a,b))+nonz(a,b)の値と、関数
T9(F5(a,b))+nonz(a,b)の値と、
関数T10(F5(a,b))+nonz(a,b)の
値とは、前記インデックス値kに対してMSB側からL
SM側にかけて順番にそれぞれ格納されており、かつ、
上記関数T5、T6、T7、T8、T9、T10それぞ
れの値の間には、少なくともm2ビット(m2は正の整
数)の「0」の値がそれぞれ挿入されている。
個数の最大値を2で割った値をn2とすると、前記m2
の値は、n2の値に対する底が2の対数(log2(n
2))を演算して、その演算値の小数点以下を切り上げ
て整数化した値である。
施の形態を説明する。以下の実施の形態においては、基
本的には、MPEG2−AAC規格準拠の符号化データ
を生成する符号化装置について説明する。本来のMPE
G2−AAC規格においては、使用されるハフマンコー
ドブックは11種類であるが、以下の説明においては、
説明の簡単化のため、使用されるハフマンコードブック
はMPEG2−AAC規格により定義されているハフマ
ンコードブック3〜6の4種類とする。以下、ハフマン
コードブック3〜6を用いて、量子化されたスペクトル
データをハフマン符号化していく過程を説明する。
装置10の構成を示す。符号化装置10は、G個のメモ
リ100〜103と、H個のハフマンコードブック10
4〜107と、ハフマンコードブック選択装置108
と、G個のハフマン符号化装置109〜112と、イン
デックス番号符号化装置113とを備えている(G,H
はそれぞれ1以上の整数)。
化された状態で、所定数ずつ、スケールファクタバンド
(sfb)と呼ばれるG個のグループにそれぞれグルー
プ化されて、各グループ(sfb)が、G個の各メモリ
100〜103にそれぞれ格納される。各メモリ100
〜103にそれぞれ格納されたスペクトルデータは、各
メモリ100〜103に対応して設けられた各ハフマン
符号化装置109〜112にそれぞれ入力されるととも
に、ハフマンコードブック選択装置108に入力され
る。
各スペクトルデータに適したハフマンコードブックを、
H個のハフマンコードブック104〜107から選択す
る。ハフマンコードブック選択装置108は、選択した
ハフマンコードブックの内容をハフマン符号化装置10
9〜112に出力し、選択したハフマンコードブックの
番号をインデックス番号符号化装置113に出力する。
ハフマン符号化装置109〜112は、ハフマンコード
ブック選択装置108により選択されたハフマンコード
ブックを用いて、メモリ100〜103に格納されたス
ペクトルデータを符号化して出力する。インデックス番
号符号化装置113は、選択されたハフマンコードブッ
クの番号を符号化して出力する。
数のスペクトルデータをグループ化した第1のグループ
(sfb0)を格納する。同様に、第2のメモリ101
は、量子化された所定数のスペクトルデータをグループ
化した第2のグループ(sfb1)を格納し、さらに、
第3のメモリ102は、量子化された所定数のスペクト
ルデータをグループ化した第3のグループ(sfb2)
を格納する。以下、同様に、第Gのメモリ103は、量
子化された所定数のスペクトルデータをグループ化した
第Gのグループ(sfbG)を格納する。これらのグル
ープ化は、MPEG2−AAC規格の符号化方式にて行
われている技術であり、従来の技術について上述したよ
うに、図4に示す区切り法に従って行われる。
7は、MPEG2−AAC規格の符号化方式によってス
ペクトルデータをハフマン符号化するために定義されて
いる。上述したように、以下の説明においてはハフマン
コードブックの数Hを、H=4として説明する。すなわ
ち、第1のハフマンコードブック104は、MPEG2
−AAC規格においてハフマンコードブック3として定
義されたものである。また、第2のハフマンコードブッ
ク105は、MPEG2−AAC規格においてハフマン
コードブック4として定義されたものである。また、第
3のハフマンコードブック106は、MPEG2−AA
C規格においてハフマンコードブック5として定義され
たものである。また、第4のハフマンコードブック10
7は、MPEG2−AAC規格においてハフマンコード
ブック6として定義されたものである。
G個のメモリ100〜103にそれぞれ格納されたG個
のグループ毎に、4つのハフマンコードブック104〜
107の中から、ハフマン符号化に最も適した1つのハ
フマンコードブックをそれぞれ選択するようになってい
る。ハフマンコードブック選択装置108は、第1の符
号長算出装置114と、第2の符号長算出装置115
と、制御装置116とを備えている。
モリ100〜103のいずれかに格納されたスペクトル
データを、第1のハフマンコードブック104(ハフマ
ンコードブック3)を用いてハフマン符号化した際の符
号化後の符号長に関するビット数と、第2のハフマンコ
ードブック105(ハフマンコードブック4)を用いて
ハフマン符号化した際の符号化後の符号長に関するビッ
ト数とを同時に算出する。第2の符号長算出装置115
は、G個のメモリ100〜103のいずれかに格納され
たスペクトルデータを、第3のハフマンコードブック1
06(ハフマンコードブック5)を用いてハフマン符号
化した際の符号化後の符号長に関するビット数と、第4
のハフマンコードブック107(ハフマンコードブック
6)を用いてハフマン符号化した際の符号化後の符号長
に関するビット数とを同時に算出する。制御装置116
は、G個のメモリ100〜103のいずれかに格納され
た全てのスペクトルデータを、2つの符号長算出装置1
14および115にそれぞれ入力し、また、符号長算出
装置114および115の出力に基づいて、ハフマン符
号化に最も適した1つのハフマンコードブックを選択す
る。
蔵されたテーブルメモリの内容を示す。図2に示すよう
に、テーブルメモリには、入力されたスペクトルデータ
から生成されたインデックス値(index)をアドレ
スとして、当該スペクトルデータを第1のハフマンコー
ドブックにより符号化した際の符号長に関するビット数
(length of HCB3)、及び第2のハフマ
ンコードブックにより符号化した際の符号長に関するビ
ット数(length of HCB4)がそれぞれ格
納されている。
蔵されたテーブルメモリの内容を示す。図3に示すよう
に、このテーブルメモリには、入力されたスペクトルデ
ータから生成されたインデックス値(index)をア
ドレスとして、当該スペクトルデータを第3のハフマン
コードブックにより符号化した際の符号長に関するビッ
ト数(length of HCB5)、及び第4のハ
フマンコードブックにより符号化した際の符号長に関す
るビット数(length of HCB6)がそれぞ
れ格納されている。
のグループのスペクトルデータを、第1のグループに対
して、ハフマンコードブック選択装置108によって選
択されたハフマンコードブックを用いてハフマン符号化
する。第2のハフマン符号化装置110は、第2のグル
ープのスペクトルデータを、第2のグループに対して選
択されたハフマンコードブックを用いてハフマン符号化
する。第3のハフマン符号化装置111は、第3のグル
ープのスペクトルデータを、第3のグループに対して選
択されたハフマンコードブックを用いてハフマン符号化
する。以下同様に、第Gのハフマン符号化装置112
は、第Gのグループのスペクトルデータを、第Gのグル
ープに対して選択されたハフマンコードブックを用いて
ハフマン符号化する。
フマンコードブック選択装置108によって選択された
各グループに対するハフマンコードブックの番号(イン
デックス番号)をそれぞれ符号化する。
への格納について説明する。
グループに分割するための区切り法の定義を示す。量子
化された1024本の周波数スペクトルデータは、図4
に示す区切り法により、スケールファクタバンド(sf
b)と呼ばれるグループに分割されている。図4におい
て、左側の「sfb」の欄は、グループ化されたスケー
ルファクタバンドの番号を示し、右側の「offse
t」の欄は、各グループ「sfb」に属するスペクトル
データが何本目から始まるか(オフセット)を示してい
る。
zの場合であり、1024本の量子化された周波数スペ
クトルデータは49個のスケールファクタバンド「sf
b」に分割されている。ここでは、「sfb」のグルー
プの数Gは、G=49となり、49個のグループ「sf
b」に属するスペクトルデータが、49個のメモリ10
0〜103にそれぞれ格納される。すなわち、 0番目のグループ「sfb0」は、スペクトルデータの
0本目から3本目までの4本 1番目のグループ「sfb1」は、スペクトルデータの
4本目から7本目までの4本 2番目のグループ「sfb2」は、スペクトルデータの
8本目から12本目までの4本 というように分割されて、49個のメモリ100〜10
3にそれぞれ格納される("ISO/IEC 13818-7 3.8 Table
s"参照)。
クトルデータがメモリに格納された状態の一例を示す。
図5において、左側の「sfb」の欄は、グループ化さ
れたスケールファクタバンド(sfb)の番号を示し、
中央の「spectrum」の欄は、スペクトルデータ
の番号を示し、右側の「value」の欄は、各スペク
トルデータの値を示している。図5において、1番上の
枠より、順番に、第1のメモリ100に格納された第1
のグループ(sfb0)のデータ、第2のメモリ101
に格納された第2のグループ(sfb1)のデータ、第
3のメモリ102に格納された第3のグループ(sfb
2)のデータがそれぞれ示されている。
プ化されたスペクトルデータは、G個のグループ化され
た各スケールファクトバンド(sfb)毎に、G個の各
ハフマン符号化装置109〜112により、それぞれハ
フマン符号化される。ハフマン符号化は、4つのハフマ
ンコードブック104〜107の中からスケールファク
トバンド(sfb)毎に1つのハフマンコードブックを
選択し、そのハフマンコードブックに基づいて実施され
る。
ク104〜107の内容を示す。すなわち、図6は、第
1のハフマンコードブック104の内容であり、具体的
には、MPEG2−AAC規格のハフマンコードブック
3を示す。図7は、第2のハフマンコードブック105
の内容であり、MPEG2−AAC規格のハフマンコー
ドブック4を示す。図8は、第3のハフマンコードブッ
ク106の内容であり、MPEG2−AAC規格のハフ
マンコードブック5を示す。図9は、第4のハフマンコ
ードブック107の内容であり、MPEG2−AAC規
格のハフマンコードブック6を示す。従来技術について
説明したように、図6〜図9のハフマンコードブック3
〜6において、「index」の欄は、符号化の対象と
なるデータのインデックス値を示し、「length」
の欄は、符号化後のデータの符号長に関するビット数を
示し、「codeword(hexadecima
l)」の欄は、符号化されたデータ(符号語)を16進
表記により示したものである。図6〜図9のハフマンコ
ードブック3〜6には、「index」の欄に記載され
たインデックス値0〜80に対して、「length」
及び「codeword」の欄にそれぞれ記載されたデ
ータの符号長およびその16進表記が、それぞれ示され
ている。
10の動作について説明する。
00から4つのスペクトルデータを受け取る。制御装置
116は、受け取ったスペクトルデータの絶対値の最大
値に応じて、スペクトルデータを第1の符号長算出装置
114と第2の符号長算出装置115のいずれに出力す
るかを選択する。この選択は、スペクトラムハフマンコ
ードブックパラメータに基づいて定められる。すなわ
ち、MPEG2−AAC規格においては、以下に説明す
るように、入力信号の絶対値の最大値に応じて、選択で
きるハフマンコードブックが制限されており、その絶対
値の最大値に基づいて、第1および第2の符号長選択装
置114および115のいずれかが選択される。
方式において用いられるスペクトラムハフマンコードブ
ックパラメータを示す。図10には、各ハフマンコード
ブックの属性が表形式により示されている。図10にお
いて、最も左側の「CodebookNumber,
i」の欄は、ハフマンコードブックの番号を示してい
る。左から2番目の「unsigned_cb[i]」
の欄は、当該ハフマンコードブックがアンサインドコー
ドブックであるかサインドコードブックであるかを示し
ている。すなわち、「unsigned_cb[i]」
の欄が「1」であれば、当該ハフマンコードブックはア
ンサインドコードブックであり、「unsigned_
cb[i]」の欄が「0」であれば、当該ハフマンコー
ドブックはアンサインドコードブックでなくサインドコ
ードブックであることを示す。左から4番目の「LAV
for codebook」の欄は、当該ハフマンコー
ドブックが対象とする入力データの絶対値の最大値(La
rgest Absolute Value)を示す。
0番目のグループ「sfb0」の場合、スペクトルデー
タの絶対値の最大値は4であるため、図10に示すよう
に、「LAV for codebook」の値が4であ
り、MPEG2−AAC規格のハフマンコードブック
5、すなわち、第3のハフマンコードブック106と、
MPEG2−AAC規格のハフマンコードブック6、す
なわち、第4のハフマンコードブック107とが選択の
対象となる。
100から受け取ったスペクトルデータのグループを、
第3および第4のハフマンコードブック106および1
07の符号化長に関するデータが格納された第2の符号
長算出装置115に入力する。第2の符号長算出装置1
15においては、以下のような処理が行われる。すなわ
ち、入力されたグループ「sfb0」の4つのスペクト
ルデータの値をそれぞれD0,D1,D2,D3とし
て、次の(4)式および(5)式に基づいて、図3に示
すテーブルにおけるアドレスである2つのインデックス
値「index0」および「index1」をそれぞれ
算出する。
「index1」がそれぞれ算出されると、算出された
各インデックス値に基づいて、図3に示すテーブルか
ら、ハフマンコードブック5(第3のハフマンコードブ
ック106)を用いてハフマン符号化した際の符号長に
関するビット数と、ハフマンコードブック6(第4のハ
フマンコードブック107)を用いてハフマン符号化し
た際の符号長に関するビット数とをそれぞれ求める。
「index」の欄は、テーブルのアドレスであるイン
デックス値であり、中央の「length of HC
B5」の欄は、ハフマンコードブック5(第3のハフマ
ンコードブック106)を用いてハフマン符号化した際
の符号長であり、右側の中央の「length ofH
CB6」の欄は、ハフマンコードブック6(第4のハフ
マンコードブック107)を用いてハフマン符号化後の
符号長である。
図3に示すテーブルのハフマンコードブック5および6
は、それぞれ、符号付きデータをハフマン符号化するた
めのサインドコードブックである。従って、図3に示す
テーブルにおける「length of HCB5」の
欄および「length of HCB6」の欄には、
それぞれスペクトルデータをハフマン符号化した後の符
号長に対応したビット数がそれぞれ示されている。
ることにより、1つのインデックス値に対して、ハフマ
ンコードブック5およびハフマンコードブック6によっ
て、データをそれぞれハフマン符号化した場合の符号長
が得られる。
グループ「sfb0」の場合、各スペクトルデータは、
D0=4,D1=−2,D2=0,D3=3であり、ま
た、LAV=4であるため、index0=74,in
dex1=43となる。そして、図3のテーブルによる
と、インデックス値74に対しては、ハフマンコードブ
ック5により符号化した際の符号長(length o
f HCB5)が12ビット、ハフマンコードブック6
により符号化した際の符号長(lengthof HC
B6)が9ビットになっており、インデックス値43に
対しては、ハフマンコードブック5により符号化した際
の符号長(length of HCB5)が8ビッ
ト、ハフマンコードブック6により符号化した際の符号
長(length of HCB6)が7ビットになっ
ている。
に、2つのインデックス値として、「index0」お
よび「index1」をそれぞれ算出して、算出された
各インデックス値に基づいて、ハフマンコードブック5
および6によりデータをそれぞれハフマン符号化した際
の符号長をそれぞれ得る。そして、得られた各ハフマン
コードブック5および6それぞれによって得られる符号
長の合計が演算される。この場合、ハフマンコードブッ
ク5によりデータをハフマン符号化した場合の符号長の
合計は、20ビット(12+8ビット)、ハフマンコー
ドブック6によりデータをハフマン符号化した場合の符
号長の合計は16ビット(9+7ビット)になる。そし
て、合計された符号長のビット数が制御装置116に出
力される。
115から出力された各ハフマンコードブック5および
6に対応して出力される符号長のビット数から、ハフマ
ンコードブック5または6のいずれかを選択する。この
場合、ハフマンコードブック6によってハフマン符号化
した場合の符号長が短く有利であるため、ハフマンコー
ドブック6が選択される。
図5の第1番目のスペクトルデータのグループ「sfb
1」に対しても、第0番目のスペクトルデータのグルー
プ「sfb0」と同様に、ハフマンコードブック5また
は6のいずれかが選択される。この場合、LAV=4で
あるために、第0番目のスペクトルデータのグループ
「sfb0」と同様に、制御装置116によって、第2
の符号長算出装置115が選択されて、第2の符号長算
出装置115が、第0番目のグループ「sfb0」と同
様に作用する。これにより、第2の符号長算出装置11
5は、ハフマンコードブック5を用いた場合のハフマン
符号化後の符号長が18ビット、ハフマンコードブック
6を用いた場合のハフマン符号化後の符号長が13ビッ
トであることを、制御装置116に出力する。そして、
制御装置116は、ハフマンコードブック6を用いた方
が符号長が短くなって有利であるため、ハフマンコード
ブック6を選択する。
02から、図5に示す第2番目のスペクトルデータのグ
ループ「sfb2」のスペクトルデータを受け取る。こ
の場合、第2番目のグループ「sfb2」のスペクトル
データは、LAV=1であり、図10に示す「LAV
for codebook」より、アンサインドコード
ブックであるハフマンコードブック3および4と、サイ
ンドコードブックであるハフマンコードブック5および
6が選択可能になっており、制御装置116は、受け取
ったスペクトルデータを、ハフマンコードブック3およ
び4に関するデータを有する第1の符号長算出装置11
4と、ハフマンコードブック5および6に関するデータ
を有する第2の符号長算出装置115の両方に出力す
る。
コードブック5およびハフマンコードブック6のそれぞ
れに基づいて、ハフマン符号化した際の符号化後の符号
長を、前述と同様にして、図3のテーブルから、それぞ
れ求める。各符号長を求める過程は上述した通りである
ため、説明は省略する。求められる符号化後の符号長
は、ハフマンコードブック5を用いた場合には9ビッ
ト、ハフマンコードブック6を用いた場合には8ビット
となる。
コードブック3およびハフマンコードブック4それぞれ
を用いることによって得られるハフマン符号化後の符号
長に関するビット数を、次のようにして求める。制御装
置116から、第3のメモリ102に記憶されている第
2番目のスペクトルデータのグループ「sfb2」にお
ける4つのスペクトルデータが、第1の符号長算出装置
114に入力されると、第1の符号長算出装置114
は、次の(6)式に基づいて、1つのインデックス値
「index0」を演算する。この場合、第2番目のグ
ループ「sfb2」の4つのスペクトルデータの値をそ
れぞれD0,D1,D2,D3とし、また、次の(6)
式における「abs()」を絶対値をとる記号、「^」
をべき乗演算子、k=LAV+1とする。
されると、図2のテーブルから、算出されたインデック
ス値「index0」に基づいて、ハフマンコードブッ
ク3(第1のハフマンコードブック104)を用いてハ
フマン符号化した際の符号長に関するビット数と、ハフ
マンコードブック4(第2のハフマンコードブック10
7)を用いてハフマン符号化した際の符号長に関するビ
ット数とをそれぞれ求める。
には、テーブルのアドレスであるインデックス値が示さ
れてあり、中央の「length of HCB3」の
欄には、ハフマンコードブック3(第1のハフマンコー
ドブック104)を用いてハフマン符号化した際の符号
長に関するビット数が示されており、右側の「leng
th of HCB4」の欄には、ハフマンコードブッ
ク4(第2のハフマンコードブック105)を用いてハ
フマン符号化後の符号長に関するビット数が示されてい
る。このように、図2に示すテーブルを使用することに
より、1つのインデックス番号に対して、ハフマンコー
ドブック3およびハフマンコードブック4によってデー
タをハフマン符号化後した場合の符号長に関するビット
数がそれぞれ得られる。
規格のハフマンコードブック3および4をそれぞれ用い
てハフマン符号化した場合の符号長に関するビット数
が、それぞれ、設定されているが、図10に示すよう
に、ハフマンコードブック3および4は、それぞれ、
「unsigned_cb[i]」の欄が「1」になっ
ており、各ハフマンコードブック3および4は、それぞ
れ、アンサインドコードブックである。このために、図
2に示すテーブルの「length of HCB3」
及び「length of HCB4」の値には、MP
EG2−AAC規格で定義されているハフマンコードブ
ック3および4にそれぞれ対応した「length o
f HCB3」及び「length of HCB4」
の欄には、入力されるスペクトルデータの値から、サイ
ン情報を必要としない0の値以外の値になっているデー
タの数を求めて、そのデータ数を、ハフマンコードブッ
ク3および4によってハフマン符号化した場合の符号長
に対応したビット数に予め加算した値がビット数として
格納されている。
ータの値は、D0=1,D1=−1,D2=1,D3=
0,LAV=2であるため、index0=39とな
る。図2のテーブルでは、得られたインデックス値39
から、ハフマンコードブック3によってデータを符号化
した場合の符号長に対応したビット数とサイン情報に必
要なビット数との合計ビット数が格納された「leng
th of HCB3」の欄の値が9、ハフマンコード
ブック4によってデータを符号化した場合の符号長に対
応したビット数とサイン情報に必要なビット数との合計
ビット数が格納された「length of HCB
4」の欄の値が7になっている。
に、ハフマン符号化後の符号長として、ハフマンコード
ブック3によって符号化した場合には9ビット、ハフマ
ンコードブック4によって符号化した場合には7ビット
であることを制御装置116に出力し、また、第2の符
号長算出装置115は、前述したように、ハフマン符号
化後の符号長として、ハフマンコードブック5によって
符号化した場合には9ビット、ハフマンコードブック6
によって符号化した場合には8ビットであることを制御
装置に出力する。制御装置116は、第1および第2の
各符号長算出装置114および115からのそれぞれの
出力に基づいて、いずれのハフマンコードブックを用い
るかを選択する。この場合、ハフマンコードブック4を
用いた場合に符号長が最も短くなって有利であるため
に、制御装置116は、ハフマンコードブック4を選択
する。
目のグループ「sfb2」のスペクトルデータに関し
て、ハフマン符号化後の符号長を求める処理において、
制御装置116は、第1の符号長算出装置114と第2
の符号長算出装置115とを並列に起動してもよく、順
次に起動してもよい。すなわち、ハフマンコードブック
選択装置108をソフトウエアにより実現する場合には
順次に起動することになるが、ハードウエアにより実現
する場合には並列に起動した方が高速な処理が可能とな
る。
置108において、G個の全てのスペクトルデータのグ
ループ「sfb」毎に、最適なハフマンコードブックが
それぞれ選択され、各グループのスペクトルデータが、
選択されたハフマンコードブックを用いて、各グループ
毎に対応して設けられた各ハフマン符号化装置109〜
112によって、ハフマン符号化が行われる。ハフマン
符号化の方法は従来の技術の場合と同様であり、選択さ
れたハフマンコードブックにおけるインデックス値(上
記「index0」,「index1」等)に対応する
当該ハフマンコードブックの「codeword」を符
号化データとして出力することにより行われる。
グループ「sfb」毎に選択されたハフマンコードブッ
クの番号を、上記インデックス番号符号化装置113に
おいて符号化する。この符号化は、MPEG2−AAC
規格によれば、各グループ「sfb」毎に選択されたハ
フマンコードブックのインデックス番号を、それぞれ4
ビットで符号化する。この場合、いずれかのスペクトル
データのグループ「sfb」にて選択されたハフマンコ
ードブックと同一のハフマンコードブックが、そのグル
ープ「sfb」に連続して選択されている場合には、同
じハフマンコードブックが選択された連続するグループ
「sfb」の数を5ビットで符号化される。
タのグループ「sfb0」と次のグループ「sfb1」
とにおいて、同一のハフマンコードブック6がそれぞれ
選択されているので、この場合、まず、ハフマンコード
6のインデックス番号を示す「6」を、4ビットによっ
て、(0110)と表現し、ハフマンコードブック6が
連続する数が1つであることを示す「1」を、5ビット
によって、(00001)と表現する。次に、グループ
「sfb2」において、ハフマンコードブック4が選択
されているので、ハフマンコードブック4のインデック
ス番号を示す「4」を、4ビットによって、(010
0)と表現する。次に続くビット列は、次のグループ
「sfb」において選択されているハフマンコードブッ
クに依存するのでここでは省略する。このようにして、
スペクトルデータの各グループ「sfb」毎に選択され
ているハフマンコードブックが符号化される。
のハフマンコードブックを用いてデータをハフマン符号
化した場合に得られるそれぞれの符号長を、同時に求め
ることができる。また、ハフマンコードブックがアンサ
インドコードブックの場合であっても、1つのテーブル
により、ハフマン符号の符号長に対して、サイン情報の
ために必要なビット数を加算したものが得られる。これ
により、ハフマン符号化に必要な処理量を大幅に削減す
ることができる。
も、符号化装置10の構成、動作及びスペクトルデータ
の分割の方法等は、実施の形態1と同様であるため、説
明を省略する。
が、第1および第2の各符号長算出装置114および1
15の出力を受け取り、その出力値が最も小さいハフマ
ンコードブックを選択している。これに対し、本実施の
形態2においては、制御装置116がハフマン符号化後
の符号長だけでなく、ハフマンコードブックのインデッ
クス番号の符号化後の符号長をも考慮して、出力データ
の総符号長が最小となるようにハフマンコードブックを
選択する。
(1≦g≦G−1)に対するハフマンコードブックを選
択する際に、ハフマン符号化後の符号長が最小となるハ
フマンコードブックのインデックス番号をHmin、第
(g+1)番目のグループに隣接する第gのグループに
おいて選択されているハフマンコードブックのインデッ
クス番号をHgとして、インデックス番号Hminのハ
フマンコードブックを使用した場合のハフマン符号化後
の符号長Bminと、インデックス番号Hgのハフマン
コードブックを使用した場合のハフマン符号化後の符号
長Bgとを比較する。そして、予め設定されている正の
値(例えば9)をAとして、Bmin<(Bg−A)の
場合にはHminを選択し、Bmin≧(Bg−A)の
場合にはHgを選択するようにする。本実施の形態で
は、例えば、ハフマンコードブックのインデックス番号
を4ビットで示し、同一のハフマンコードブックが連続
して選択されているグループ「sfb」の数を5ビット
で示すようになっており、従って、選択されたハフマン
コードブックを示す合計9ビットの数9が、Aの値とし
て設定される。
いては、ハフマン符号化した符号化データのみならず、
選択されているハフマンコードブックのインデックス番
号も符号化する。よって、ハフマン符号化した場合の符
号長を示すデータの総数と、ハフマンコードブックのイ
ンデックス番号を符号化したデータの総数との和を少な
くすることによって、効率のよく符号化処理することが
できる。そのため、各スペクトルデータのグループ「s
fb」において、仮にハフマン符号化した後のデータの
符号長が最小でなくても、隣接するグループ「sfb」
と同じハフマンコードブックでハフマン符号化した方
が、データ全体の符号長が短くなって有利になる場合が
ある。
いては、選択されているインデックス番号と、連続する
数個のグループにおいて同じインデックス番号が選択さ
れているかを示す値とを、所定の数値Aのビット数で符
号化するように規定されている。上述した実施の形態1
においては、このAの値は、ハフマンコードブックの番
号を示す4ビットに、同じハフマンコードブックが連続
して選択されている場合のデータのグループ「sfb」
の数を示す5ビットを加えた合計9である。そのため、
例えば第(g+1)のグループに対して使用するハフマ
ンコードブックが、そのグループに隣接する第gのグル
ープに対して使用するハフマンコードブックと異なる
と、インデックス番号を符号化する際に、Aビットが余
分に必要となる。そこで、上記のようにBminと(B
g−A)とを比較して、使用するハフマンコードブック
を決定する。
ープ化されたスペクトルデータがメモリに格納された状
態について、本実施の形態によるハフマンコードブック
の選択の方法について説明する。ここでは、A=9と仮
定して説明する。なお、ハフマン符号化後の符号長の取
得方法については実施の形態1の説明と同様であるの
で、ここでは説明を省略する。
ープ「sfb0」については、実施の形態1と同様に、
出力値が最小となる符号長算出部のハフマンコードブッ
ク6を選択する。次の第1番目のグループ「sfb1」
については、符号長が最小になるハフマンコードブック
の符号長に対応したビット数と、隣接する第0番目のグ
ループ「sfb0」において選択されたハフマンコード
ブックの符号長に対応したビット数とを比較する。この
場合、第1番目のグループ「sfb1」において、符号
化した場合の符号長が最小となるハフマンコードブック
6と、隣接する第0番目のグループ「sfb0」におい
て選択されたハフマンコードブック6とが一致している
ために、特にビット数を比較することなく、第1のグル
ープ「sfb1」において、ハフマンコードブック6を
選択する。
も、符号長が最小になるハフマンコードブックの符号長
に対応したビット数と、隣接する第1グループ「sfb
1」において選択されたハフマンコードブックによって
符号化した場合の符号長に対応したビット数とを比較す
る。第2グループ「sfb2」において、符号化後の符
号長が最小になるとして選択されたハフマンコードブッ
ク4の符号長が7ビット、隣接する第1グループ「sf
b1」にて選択されているハフマンコードブック6の符
号長が8ビットである。よって、Bmin=7,Bg=
8であって、(Bg−A)が(8−9)になるため、B
min≧(Bg−A)が成立する。このため、制御装置
116は、隣接する第1グループ「sfb1」において
選択されているハフマンコードブック6を選択すること
になる。
0」と、第1番目のグループ「sfb1」と、第2番目
のグループ「sfb2」とにおいて、ハフマンコードブ
ック6がそれぞれ選択されているので、インデックス番
号符号化装置113は、ハフマンコードブック6を示す
インデックス番号「6」を4ビットによって(011
0)と表現し、3つのグループが同一のハフマンコード
ブック6を選択していることを示す数値「2」を5ビッ
トによって(00010)と表現する。これにより、ス
ペクトルデータのグループ「sfb0」〜「sfb2」
の3つのグループにおいてそれぞれ選択されているハフ
マンコードブックのインデックス番号が符号化される。
のグループ番号(「sfb」の番号)の小さい方から順
に、選択するハフマンコードブックを確定する構成であ
ったが、グループ番号(「sfb」の番号)の大きい方
から順に、選択するハフマンコードブックを確定してい
ってもよい。
目のグループ(gは整数、2≦g≦G)に対するハフマ
ンコードブックを選択する際に、第1または第2の符号
長算出部114または115が出力したハフマン符号化
後の符号長が最小であるハフマンコードブックHmin
についてのハフマン符号化後の符号長Bminと、g番
目のグループにおいて選択されているハフマンコードブ
ックHgについてのハフマン符号化後の符号長Bgとを
求め、Bmin<(Bg−A)の場合には(Aは、例え
ば9)Hminを選択し、Bmin≧(Bg−A)の場
合にはHgを選択する。
するハフマンコードブックを選択する場合には、第1ま
たは第2の符号長算出部114または115からの出力
において、ハフマン符号化後の符号長が最小となるハフ
マンコードブックを選択する。
れた場合に、各グループ毎に選択されたハフマンコード
ブックによる符号化後の符号長と、グループ番号の大き
い方から確定していった場合に、各グループごとに選択
されたハフマンコードブックによる符号化後の符号長と
をそれぞれ比較して、各グループ毎に、符号化後の符号
長の短いハフマンコードブックをそれぞれ選択するよう
にしてもよい。
施の形態1による効果に加えて、ハフマンコードブック
のインデックス番号を符号化する際の符号長を短くする
ことができるために、より効率よくハフマン符号化を実
施することができる。
て、第1および第2の符号長算出装置114および11
5は、入力されたデータの値がいずれかのハフマンコー
ドブックによってハフマン符号化した後の符号長を算出
できない変域外の値の場合には、無効であることを示す
値を出力するように構成してもよい。この場合、制御装
置116は、無効であることを示す値を受けとると、そ
の無効であることを示す値に対応するハフマンコードブ
ックを選択しないようになっている。
においては、説明の簡単化のために、ハフマンコードブ
ックの選択は4種類のハフマンコードブック3〜6の中
から行われるものと仮定している。しかしながら、実際
のMPEG2−AAC規格においては、11種類のハフ
マンコードブック1〜11の中から1つのハフマンコー
ドブックを選択し、選択されたハフマンコードブックを
用いてハフマン符号化を行うような構成となっている。
ハフマンコードブック選択装置108に設けられた第1
符号長算出装置114には、各ハフマンコードブック1
および2によって得られるそれぞれの符号長が、共通の
インデックス値に対してそれぞれ設定された第1のテー
ブルを有するROM114aが設けられており、また、
第2の符号長算出装置115には、ハフマンコードブッ
ク3および4によって得られるそれぞれの符号長が、共
通のインデックス値に対してそれぞれ設定された第2の
テーブルを有するROM115aが設けられている。
ックス値生成部114bによって生成されるインデック
ス値に基づいて、ROM114aに設けられた第1のテ
ーブルからハフマンコードブック1および2による符号
長をそれぞれ求めることができる。同様に、第2の符号
長算出装置115では、インデックス値生成部115b
によって生成されるインデックス値に基づいて、ROM
115aの各テーブルからハフマンコードブック3およ
び4による符号長をそれぞれ求めることができる。
び4は、それぞれアンサインドコードブックであるため
に、ROM115aに設けられた第2のテーブルに設定
される符号長には、サイン情報を付加するために必要な
ビット数が予め加算されている。
る4つのスペクトルデータをa、b、c、dとしたと
き、3以上の正の数Xに対し、次の(7)式に基づいて
インデックス値i1を生成する。
トルデータa〜dから、3以上の正の数Yに対し、次の
(8)式に基づいて、インデックス値i2を生成する。
づいて、ROM114aおよび115aにそれぞれ設け
られた各テーブルから、各ハフマンコードブック1〜4
によってデータを符号化した場合の符号長に関するビッ
ト数がそれぞれ求められることになる。
示すように、第1の符号長算出装置114に、各ハフマ
ンコードブック1〜4によって得られるそれぞれの符号
長が、共通のインデックス値に対してそれぞれ設定され
た1つのテーブルを有するROM114aを設ける構成
としてもよい。
は、隣接する4つのスペクトルデータをa、b、c、d
としたとき、2以上の正の数Yに対し、それぞれYビッ
ト以上により表現されたaとbとcとdとをビット結合
した値をインデックス値として生成する。すなわち、Y
を2とした場合、例えば、次の(9)式に基づいてイン
デックス値jを生成する。
基づいて、各ROM114aのテーブルからハフマンコ
ードブック1〜4によってデータを符号化した場合の符
号長がそれぞれ求められる。
に対して、図19に示すように、ハフマンコードブック
5および6によって符号化した場合のそれぞれの符号長
が、共通のインデックス値に対してそれぞれ設定された
第1のテーブルを有するROM117a、ハフマンコー
ドブック7および8によってデータを符号化した場合の
それぞれの符号長が、共通のインデックス値に対してそ
れぞれ設定された第2のテーブルを有するROM118
a、ハフマンコードブック9および10によって符号化
した場合のそれぞれの符号長が、共通のインデックス値
に対してそれぞれ設定された第3のテーブルを有するR
OM119aが、それぞれ設けられた符号長算出部11
7〜119を設けるようにしてもよい。各ROM117
a〜119aに設けられた各テーブルの符号長は、イン
デックス値生成部117b〜119bにて生成されたイ
ンデックス値に基づいて求められる。
コードブック7〜10は、それぞれアンサインドコード
ブックであるために、ROM118aおよび119aに
設けられた各テーブルに設定される符号長には、サイン
情報を付加するために必要なビット数が予め加算されて
いる。
る2つのスペクトルデータをa、bとしたとき、9以上
の正の数Xに対し、次の(10)式によって、インデッ
クス値i3を生成する。
のスペクトルデータaおよびbから、8以上の正の数Y
に対し、次の(11)式によって、インデックス値i4
を生成する。
クトルデータaおよびbから、13以上の正の数Zに対
し、次の(12)式によって、インデックス値i5を生
成する。
に基づいて、ROM117a〜119aに設けられた各
テーブルからハフマンコードブック1〜4によってデー
タを符号化した場合の符号長がそれぞれ求められる。
符号長算出装置120に、各ハフマンコードブック5〜
10によってデータをそれぞれ符号化した場合の符号長
が、共通のインデックス値に対してそれぞれ設定された
1つのテーブルを有するROM120aのみを設ける構
成としてもよい。
20bは、隣接する2つのスペクトルデータをa、bと
したとき、5以上の正の数Zに対し、それぞれZビット
以上により表現されたaとbとをビット結合した値をイ
ンデックス値kとして生成する。すなわち、Zを5とし
た場合、例えば、次の(13)式に基づいてインデック
ス値kが生成される。
基づいて、ROM120aに設けられた各テーブルから
ハフマンコードブック5〜10によってデータをそれぞ
れ符号化した場合の符号長がそれぞれ求められる。
いるテーブルメモリの例について説明する。
符号長算出のためのテーブルメモリの内容を示す。ハフ
マンコードブック1〜4は、それぞれ、隣接する4本の
スペクトルデータ(4タップルズ)を1グループとして
ハフマン符号化するためのハフマンコードブックであ
る。
には、テーブルメモリを引くためのアドレスが示されて
おり、右側の「data」の欄には、各ハフマンコード
ブックによってデータをそれぞれ符号化した場合の符号
長のデータが示されている。図11に示すテーブルメモ
リのアドレスは、隣接した4本のスペクトルデータの下
位2ビットをビット結合したものである。
されたデータの構成を示す。図12は、4タップルズ
(tupples)のデータに対して、各ハフマンコー
ドブック1〜4を用いてそれぞれ符号化した場合に得ら
れる符号長を示すデータの格納形式を示している。図1
1において、それぞれのアドレスに対応するデータは3
2ビットのデータであり、図12に示すような構成にな
っている。図12において、最上位の8ビットである
「HCB1」はハフマンコードブック1によってデータ
をハフマン符号化した場合の符号長のデータを表してお
り、8ビット毎にそれぞれ設けられた「HCB2」、
「HCB3」、「HCB4」は、それぞれハフマンコー
ドブック2,3,4によってデータをそれぞれ符号化し
た場合の符号長をそれぞれ表している。各ハフマンコー
ドブック1〜4にそれぞれ対応する符号長のデータ「H
CB1」〜「HCB4」は、MSB側からLSM側にか
けて、順番に設けられている。
例えば、図5の第2グループ「sfb2」のスペクトル
データ(1,−1,1,0)をハフマン符号化した際の
符号長は、以下のように求められる。
スは、前記(13)式から、 adrs=((1&3)<<6)|((−1&3)<<
4)|((1&3)<<2)|(0&3) で与えられる。ここでは、adrs=h74であるの
で、当該アドレスに対応するデータは、図11に示すよ
うにh09070907となり、 ハフマンコードブック1を用いた場合の符号長は、9ビ
ット ハフマンコードブック2を用いた場合の符号長は、7ビ
ット ハフマンコードブック3を用いた場合の符号長は、9ビ
ット ハフマンコードブック4を用いた場合の符号長は、7ビ
ット というように求められる。
s)のデータに対するハフマンコードブック5〜10の
符号長算出のためのテーブルメモリの内容を示す。ハフ
マンコードブック5〜10は、隣接する2本のスペクト
ルデータを1グループとしてハフマン符号化するための
ハフマンコードブックである。
「adrs」の欄には、テーブルメモリを引くためのア
ドレスが示されており、右側の欄の「data」の欄
は、各ハフマンコードブック5〜10による符号化後の
符号長を表すデータが示されている。図11に示すテー
ブルメモリのアドレスは、隣接した2本のスペクトルデ
ータの下位5ビットをビット結合したものである。
されたデータの構成を示す。図14は、2タップルズ
(tupples)のデータに対して、各ハフマンコー
ドブック1〜4を用いてそれぞれ符号化した場合に得ら
れる符号長を示すデータの格納形式を示している。図1
3において、それぞれのアドレスに対応するデータは4
8ビットのデータであり、図14に示すような構成にな
っている。図14において、最上位の8ビットである
「HCB5」は、ハフマンコードブック5によってデー
タをそれぞれハフマン符号化した場合に得られる符号長
のデータを表している。同様に、以下8ビット毎に設け
られた「HCB6」、「HCB7」、「HCB8」、
「HCB9」、「HCB10」は、それぞれハフマンコ
ードブック6,7,8,9,10によってデータをそれ
ぞれハフマン符号化した場合に得られる符号長のデータ
をそれぞれ表している。なお、「HCB11」は、エス
ケープコードブックという特殊なコードブックであるの
でここでは除外している。
例えば、図5の第0番目のグループ「sfb0」のスペ
クトルデータ(4,−2,0,3)をハフマン符号化し
た場合の符号長は、以下のように求められる。
ためのアドレスは、前記(13)式およびスペクトルデ
ータ(4,−2)から、 adrs=((4&31)<<5)|(−2&31) により与えられる。ここではadrs=h9eであるた
め、当該アドレスに対応するデータは、図13に示すよ
うに「h0c090b080b08」となる。
アドレスは、スペクトルデータ(0,3)から、 adrs=((0&31)<<5)|(3&31) により与えられる。ここではadrs=h03であるた
め、当該アドレスに対応するデータは、図13に示すよ
うに、「h080708070907」となる。
080b08」と、2回目のデータ「h0807080
70907」とを加算した値「h1410130e14
0e」が、それぞれのハフマンコードブック5〜10に
よってハフマン符号化した場合の符号長を表すことにな
り、 ハフマンコードブック5を用いた場合の符号長は、20
ビット ハフマンコードブック6を用いた場合の符号長は、16
ビット ハフマンコードブック7を用いた場合の符号長は、19
ビット ハフマンコードブック8を用いた場合の符号長は、14
ビット ハフマンコードブック9を用いた場合の符号長は、20
ビット ハフマンコードブック10を用いた場合の符号長は、1
4ビット として求められる。このようにして、MPEG2−AA
C規格における、各ハフマンコードブック5〜10によ
ってデータをそれぞれハフマン符号化した場合の符号長
が求められる。
マンコードブックによってデータをそれぞれ符号化した
場合の符号長を、それぞれ、予め8ビットごとに区切っ
て格納することにより、図11および図13に示すテー
ブルメモリからそれぞれ読み出したデータをそのまま累
積加算しても、累積加算値がオーバフローするおそれが
ない。各スケールファクタバンド「sfb」毎のそれぞ
れのデータをハフマン符号化した後の符号長は、上述し
たように、デーブルデータを一回読み出せば求められる
というものではなく、順次読み出して、それを累積加算
することによって求められる。このために、読み出した
テーブルデータをその都度、各ハフマンコードブック毎
に分離して、それぞれ累積加算するよりは、読み出した
テーブルデータのままで、累積加算するほうが、演算量
の削減効果が大きい。そこで、テーブルメモリから読み
出したデータをそのまま累積加算しても値がオーバフロ
ーしないようにするために、予め各ハフマンコードブッ
クに対応する符号長を8ビットごとに区切って格納して
おり、8ビット毎に、マージンビットとして「0」を挿
入している。
面の見やすさのために、上記累積加算のためのマージン
を設けるために各符号長データを8ビットごとに区切っ
ているが、広帯域のAAC規格の符号化の際は、11ビ
ットごとに区切ることが適当である。その理由を以下に
述べる。
plesのデータをハフマン符号化した場合の符号長の
最長値は17であるので、5ビットで表現できる。例え
ば、ハフマンコードブック9のインデックス番号154
がそれにあたる。(ISO/IEC13818-7 Table A.10.Spectr
um Huffman Codebook 9 参照)。
号154では、ハフマン符号の符号長のビット数は15
であるが、それに、サイン情報として2ビットが付加さ
れるために、ビット数は17となる。ビット数17は、
5ビットにて表されるために、5ビットに、マージンビ
ット6ビットを設けて、上記11ビットごとに区切られ
る。
いて、以下に述べる。AAC規格の符号化においては、
1つのスケールファクタバンド(sfb)に含まれるデ
ータの個数の最大値は、128まで達し得る。これは、
MDCT処理がショート窓時の場合、最も高域のスケー
ルファクタバンドのデータ数が16であり(ISO/IEC138
18-7 Table 3.5-scalefactor bands for SHORT#WINDOW
at 32,44.1 and 48kHz 参照)、かつ、8個のショート
窓を1つのウインドグループにすることが可能であるの
で、トータル128(=16×8)個のデータが、1つ
のスケールファクタバンドに含まれる場合があり得るた
めである。
合、当該スケールファクタバンドのデータを、2tup
ples用のハフマンコードブックによって符号化する
場合、128/2=64回の累積が行われるので、マー
ジンビットとして、6ビット必要となる(6=log2
(64))。このように、最大ビット数を示す5ビット
と、マージンビットとしての6ビットとの合計の11ビ
ット毎に区切られる。
化の際は、各符号長データを11ビットごとに区切るこ
とが適当であるが、符号化の帯域幅や、ショート窓時の
ウインドグループの制限を設けることによって、少なく
することもできる。
ビット以上、例えば、12ビットごとに区切っても論理
的になんら支障をきたさないことは言うまでもない。
図16に示す。図15は、図13のテーブルを、12ビ
ットごとに区切りなおしたものであり、12ビット毎に
マージンビットとしての「0」が、それぞれ挿入されて
いる。図16は、図15のテーブルメモリに格納された
データの構成を示したものである。
符号化装置において、複数のハフマンコードブックを用
いた場合のハフマン符号化後の符号長を同時に求めるこ
とができる。また、ハフマンコードブックがアンサイン
ドコードブックの場合であっても、テーブルを1回引く
ことにより、ハフマン符号の符号長にサイン情報のため
に必要なビット数を加算したものを同時に求めることが
できる。これにより、ハフマン符号化に必要な処理量を
大幅に削減することができる。
ックのインデックス番号を符号化する際の符号長が短く
することにより、より効率のよいハフマン符号化を行う
ことができる。
図である。
モリの内容を示す表である。
モリの内容を示す表である。
割するための区切り方の定義を示す図である。
がメモリに格納された状態の一例を示す図である。
PEG2−AAC規格のハフマンコードブック3を示す
図である。
PEG2−AAC規格のハフマンコードブック4を示す
図である。
PEG2−AAC規格のハフマンコードブック5を示す
図である。
PEG2−AAC規格のハフマンコードブック6を示す
図である。
られるスペクトラムハフマンコードブックパラメータを
示す図である。
ためのテーブルメモリの内容を示す図である。
の構成を示す図である。
のためのテーブルメモリの内容を示す図である。
の構成を示す図である。
りなおした図である。
の構成を示す図である。
す要部のブロック図である。
例を示す要部のブロック図である。
例を示す要部のブロック図である。
例を示す要部のブロック図である。
Claims (36)
- 【請求項1】 G個のグループ(Gは1以上の整数)に
分割されたデータのそれぞれを格納するG個の記憶部
と、 前記各記憶部にそれぞれ格納された各グループのそれぞ
れについて、インデックス番号をそれぞれ有するH個の
ハフマンコードブック(Hは1以上の整数)の中から1
つのハフマンコードブックを選択するハフマンコードブ
ック選択部と、 このハフマンコードブック選択部にて各グループ毎にそ
れぞれ選択されたハフマンコードブックを用いて、各グ
ループのデータをそれぞれハフマン符号化するG個のハ
フマン符号化部と、 前記ハフマンコードブック選択部が選択した各ハフマン
コードブックのインデックス番号をそれぞれ符号化する
インデックス番号符号化部と、 を備えた符号化装置であって、 前記ハフマンコードブック選択部は、各ハフマンコード
ブックによって各グループのデータをハフマン符号化し
た場合に得られる符号長が各ハフマンコードブック毎に
それぞれ設定された符号長算出部と、該符号長算出部に
て設定された符号長に基づいて、各グループ毎のデータ
に適したハフマンコードブックを選択する制御部とを有
しており、 前記ハフマンコードブックがアンサインドコードブック
の場合には、前記符号長設定部に設定される符号長に、
サイン情報のために必要とするビット数が予め加算され
ていることを特徴とする符号化装置。 - 【請求項2】 前記符号長算出部は、各ハフマンコード
ブック毎に前記符号長が予め設定されたテーブルデータ
を有している請求項1に記載の符号化装置。 - 【請求項3】 G個のグループ(Gは1以上の整数)に
分割されたデータのそれぞれを格納するG個の記憶部
と、 前記各記憶部にそれぞれ格納された各グループのそれぞ
れについて、インデックス番号をそれぞれ有するH個の
ハフマンコードブック(Hは1以上の整数)の中から1
つのハフマンコードブックを選択するハフマンコードブ
ック選択部と、このハフマンコードブック選択部にて各
グループ毎にそれぞれ選択されたハフマンコードブック
を用いて、各グループのデータをそれぞれハフマン符号
化するG個のハフマン符号化部と、 前記ハフマンコードブック選択部が選択した各ハフマン
コードブックのインデックス番号をそれぞれ符号化する
インデックス番号符号化部と、 を備えた符号化装置であって、 前記ハフマンコードブック選択部は、各ハフマンコード
ブックによって各グループのデータをハフマン符号化し
た場合に得られる符号長が各ハフマンコードブック毎に
それぞれ設定された符号長算出部と、該符号長算出部に
て設定された符号長に基づいて、各グループ毎のデータ
に適したハフマンコードブックを選択する制御部とを有
しており、 前記符号長算出部は、複数のハフマンコードブックに対
する符号長を同時に求めることができることを特徴とす
る符号化装置。 - 【請求項4】 前記符号長算出部は、1つのグループの
データに対して複数のハフマンコードブックによって符
号化した場合の符号長をそれぞれ出力するようになって
おり、前記制御部は、該符号長算出部にて出力される符
号長が最も短いハフマンコードブックを選択する請求項
1〜3のいずれかに記載の符号化装置。 - 【請求項5】 前記符号長算出部は、1つのグループの
データに対して複数のハフマンコードブックによって符
号化した場合の符号長をそれぞれ出力するようになって
おり、前記制御部は、該符号長算出部から出力される各
ハフマンコードブックの符号長に、各ハフマンコードブ
ックのインデックス番号をそれぞれ考慮して1つのハフ
マンコードブックを選択する、請求項1〜3のいずれか
に記載の符号化装置。 - 【請求項6】 前記制御部は、(g+1)番目のグルー
プ(gは整数、1≦g≦G−1)に対するハフマンコー
ドブックを選択する際に、前記符号長算出部が出力した
ハフマン符号化後の符号長が最小であるハフマンコード
ブックHminについてのハフマン符号化後の符号長B
minと、g番目のグループにおいて選択されているハ
フマンコードブックHgについてのハフマン符号化後の
符号長Bgとを求め、Bmin<(Bg−A)の場合に
は(Aは所定の整数)Hminを選択し、Bmin≧
(Bg−A)の場合にはHgを選択する、請求項5に記
載の符号化装置。 - 【請求項7】 前記制御部は、第1番目のグループに対
するハフマンコードブックとして、前記符号長算出部か
ら出力される符号長が最も短いハフマンコードブックの
インデックス番号を選択する請求項6に記載の符号化装
置。 - 【請求項8】 前記制御部は、(g−1)番目のグルー
プ(gは整数、2≦g≦G)に対するハフマンコードブ
ックを選択する際に、前記符号長算出部が出力したハフ
マン符号化後の符号長が最小であるハフマンコードブッ
クHminについてのハフマン符号化後の符号長Bmi
nと、g番目のグループにおいて選択されているハフマ
ンコードブックHgについてのハフマン符号化後の符号
長Bgとを求め、Bmin<(Bg−A)の場合には
(Aは所定の整数)Hminを選択し、Bmin≧(B
g−A)の場合にはHgを選択する、請求項5に記載の
符号化装置。 - 【請求項9】 前記制御部は、第G番目のグループに対
するハフマンコードブックとして、前記符号長算出部か
ら出力される符号長が最も短いハフマンコードブックの
インデックス番号を選択する、請求項8に記載の符号化
装置。 - 【請求項10】 前記インデックス番号符号化部は、デ
ータの1つのグループに対して選択されているインデッ
クス番号と同じインデックス番号が、そのグループに連
続するデータのグループに対して選択されている場合
に、そのインデックス番号と、連続しているグループの
数とを、前記数値Aのビット数で符号化する、請求項6
〜9のいずれかに記載の符号化装置。 - 【請求項11】 前記H個のハフマンコードブックは、
MPEG2−AAC規格で定義されている、スペクトル
データをハフマン符号化するための11個のハフマンコ
ードブックである、請求項3に記載の符号化装置。 - 【請求項12】 前記符号長算出部は、MPEG2−A
AC規格で定義されたハフマンコードブック1〜4によ
ってそれぞれデータを符号化した場合の符号長を出力す
るようになっており、各ハフマンコードブック1および
2によってデータを符号化した場合の符号長が、共通の
インデックス値に対応してそれぞれ設定された第1テー
ブルと、各ハフマンコードブック3および4に対する符
号長が、共通のインデックス値に対応してそれぞれ設定
された第2のテーブルとを有している、請求項11に記
載の符号化装置。 - 【請求項13】 前記第2テーブルに設定された各フマ
ンコードブック3および4それぞれに対応した符号長に
は、サイン情報のために必要とするビット数がそれぞれ
予め加算されている請求項12に記載の符号化装置。 - 【請求項14】 関数abs(x)を、xの絶対値を示
す関数とし、 関数nonz(w,x,y,z)を、w,x,y,zの
中で値が0でないものの個数を示す関数とし、 関数F1(w,x,y,z)を、F1(w,x,y,
z)=27*(w+1)+9*(x+1)+3*(y+
1)+(z+1)とし(但し、w,x,y,zの絶対値
変域は1以下)、 関数F2(w,x,y,z)を、F2(w,x,y,
z)=27*abs(w)+9*abs(x)+3*a
bs(y)+abs(z)とし(但し、w,x,y,z
の絶対値変域は2以下)、 関数T1(index)〜関数T4(index)をハ
フマンコードブック1〜4によってデータをそれぞれ符
号化した場合の符号長を示す関数とし、 a,b,c,dをグループ化されたデータを示す整数と
し、前記a,b,c,dから生成されるインデックス値
をi1およびi2としたとき、 前記各ハフマンコードブック1および2のそれぞれの符
号長が設定された第1のテーブルには、インデックス値
i1に対して、関数T1(F1(a,b,c,d))の
値と、関数T2(F1(a,b,c,d))の値とがそ
れぞれ設定されており、 前記各ハフマンコードブック3および4のそれぞれの符
号長が設定された第2のテーブルには、インデックス値
i2に対して、関数T3(F2(a,b,c,d))+
nonz(a,b,c,d)の値と、関数T4(F2
(a,b,c,d))+nonz(a,b,c,d)の
値とがそれぞれ設定されている、請求項13に記載の符
号化装置。 - 【請求項15】 記号「^」をべき乗記号としたとき、
3以上の正の数Xに対し、 i1=(X^3)*(a+1)+(X^2)*(b+
1)+X*(c+1)+(d+1) であり、3以上の正の数Yに対し、 i2=(Y^3)*abs(a)+(Y^2)*abs
(b)+Y*abs(c)+abs(d) である、請求項14に記載の符号化装置。 - 【請求項16】 前記インデックス値i1は、2以上の
正の数Xに対し、それぞれXビット以上により表現され
たaとbとcとdとをビット結合した値であり、前記イ
ンデックス値i2は、2以上の正の数Yに対し、それぞ
れYビット以上により表現されたabs(a)とabs
(b)とabs(c)とabs(d)とをビット結合し
た値である、請求項14に記載の符号化装置。 - 【請求項17】 前記符号長算出部は、MPEG2−A
AC規格のハフマンコードブック1〜4によってそれぞ
れデータを符号化した場合の符号長を出力するようにな
っており、各ハフマンコードブック1〜4によってデー
タを符号化した場合の符号長が、共通のインデックス値
に対応してそれぞれ設定された1つのテーブルを有して
いる請求項11に記載の符号化装置。 - 【請求項18】 前記第2テーブルに設定された各フマ
ンコードブック3および4それぞれに対する符号長に
は、サイン情報のために必要とするビット数がそれぞれ
予め加算されている請求項17に記載の符号化装置。 - 【請求項19】 関数abs(x)を、xの絶対値を示
す関数とし、 関数nonz(w,x,y,z)を、w,x,y,zの
中で値が0でないものの個数を示す関数とし、 関数F1(w,x,y,z)を、F1(w,x,y,
z)=27*(w+1)+9*(x+1)+3*(y+
1)+(z+1)とし(但し、w,x,y,zの絶対値
変域は1以下)、 関数F2(w,x,y,z)を、F2(w,x,y,
z)=27*abs(w)+9*abs(x)+3*a
bs(y)+abs(z)とし(但し、w,x,y,z
の絶対値変域は2以下)、 関数T1(index)〜関数T4(index)をハ
フマンコードブック1〜4によってデータをそれぞれ符
号化した場合の符号長を示す関数とし、 a,b,c,dをグループ化されたデータを示す整数と
し、前記a,b,c,dから生成されるインデックス値
をjとしたとき、 前記各ハフマンコードブック1〜4のそれぞれの符号長
が設定されたテーブルには、インデックス値jに対し
て、関数T1(F1(a,b,c,d))の値と、関数
T2(F1(a,b,c,d))の値と、関数T3(F
2(a,b,c,d))+nonz(a,b,c,d)
の値と、関数T4(F2(a,b,c,d))+non
z(a,b,c,d)の値とがそれぞれ設定されてい
る、請求項18に記載の符号化装置。 - 【請求項20】 前記インデックス値jは、2以上の正
の数Yに対し、それぞれYビット以上により表現された
aとbとcとdとをビット結合した値である、請求項1
9に記載の符号化装置。 - 【請求項21】 前記符号長算出部は、MPEG2−A
AC規格のハフマンコードブック5〜10によってそれ
ぞれ符号化された場合の符号長を出力するようになって
おり、各ハフマンコードブック5および6によってそれ
ぞれ符号化された場合の符号長が、共通のインデックス
値に対応してそれぞれ設定された第1のテーブルと、各
ハフマンコードブック7および8によってそれぞれ符号
化された場合の符号長が、共通のインデックス値に対応
してそれぞれ設定された第2のテーブルと、さらに、各
ハフマンコードブック9および10によってそれぞれ符
号化された場合の符号長が、共通のインデックス値に対
応してそれぞれ設定された第3のテーブルとを有してい
る請求項11に記載の符号化装置。 - 【請求項22】 前記第2テーブルに設定された各ハフ
マンコードブック7および8それぞれに対応した符号長
には、サイン情報のために必要とするビット数がそれぞ
れ予め加算されており、前記第3テーブルに設定された
各ハフマンコードブック9および10それぞれに対応し
た符号長には、サイン情報のために必要とするビット数
がそれぞれ予め加算されている請求項21に記載の符号
化装置。 - 【請求項23】 関数abs(x)を、xの絶対値を示
す関数とし、 関数nonz(x,y)を、x,yの中で値が0でない
ものの個数を示す関数とし、 関数F3(x,y)をF3(x,y)=9*(x+4)
+(y+4)とし(但し、x,yの絶対値変域は4以
下)、 関数F4(x,y)をF4(x,y)=8*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は7以下)、 関数F5(x,y)をF5(x,y)=13*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は12以下)、 関数T5(index)〜関数T10(index)
を、それぞれ、MPEG2−AAC規格のハフマンコー
ドブック5〜10によってデータをそれぞれ符号化した
場合の符号長を示す関数とし、 a,bをそれぞれグループ化されたデータ値を示す整数
とし、前記a,bから生成されるインデックス値をi
3、i4、i5としたとき、 前記第1テーブルには、インデックス値i3に対して、
関数T5(F3(a,b))の値と、関数T6(F3
(a,b))の値とがそれぞれ設定されており、 前記第2のテーブルには、インデックス値i4に対し
て、関数T7(F4(a,b))+nonz(a,b)
の値と、関数T8(F4(a,b))+nonz(a,
b)の値とがそれぞれ設定されており、 前記第3のテーブルには、インデックス値i5に対し
て、関数T9(F5(a,b))+nonz(a,b)
の値と、関数T10(F5(a,b))+nonz
(a,b)の値とがそれぞれ設定されている、請求項2
2に記載の符号化装置。 - 【請求項24】 9以上の正の数Xに対し、i3=X*
(a+4)+(b+4)であり、 8以上の正の数Yに対し、i4=Y*abs(a)+a
bs(b)であり、 13以上の正の数Zに対し、i5=Z*abs(a)+
abs(b)である、請求項23に記載の符号化装置。 - 【請求項25】 前記インデックス値i3は、4以上の
正の数Xに対し、それぞれXビット以上により表現され
たaとbとをビット結合した値であり、 前記インデックス値i4は、4以上の正の数Yに対し、
それぞれYビット以上により表現されたaとbとをビッ
ト結合した値であり、 前記インデックス値i5は、5以上の正の数Zに対し、
それぞれZビット以上により表現されたaとbとをビッ
ト結合した値である、請求項24に記載の符号化装置。 - 【請求項26】 前記符号長算出部は、MPEG2−A
AC規格のハフマンコードブック5〜10によってデー
タをそれぞれ符号化した場合の符号長を出力するように
なっており、各ハフマンコードブック5〜10によって
データをそれぞれ符号化した場合の符号長が、共通のイ
ンデックス値に対応してそれぞれ設定された1つのテー
ブルに保持されている請求項11に記載の符号化装置。 - 【請求項27】 前記テーブルにて設定された各ハフマ
ンコードブック7〜10それぞれによって符号化した場
合の符号長には、サイン情報のために必要とするビット
数がそれぞれ予め加算されている請求項26に記載の符
号化装置。 - 【請求項28】 関数abs(x)を、xの絶対値を示
す関数とし、 関数nonz(x,y)を、x,yの中で値が0でない
ものの個数を示す関数とし、 関数F3(x,y)をF3(x,y)=9*(x+4)
+(y+4)とし(但し、x,yの絶対値変域は4以
下)、 関数F4(x,y)をF4(x,y)=8*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は7以下)、 関数F5(x,y)をF5(x,y)=13*abs
(x)+abs(y)とし(但し、x,yの絶対値変域
は12以下)、 関数T5(index)〜関数T10(index)
を、それぞれ、MPEG2−AAC規格のハフマンコー
ドブック5〜10によってデータをそれぞれ符号化した
場合の符号長を示す関数とし、 a,bをそれぞれグループ化されたデータ値を示す整数
とし、前記a,bから生成されるインデックス値をkと
したとき、 前記テーブルには、インデックス値kに対して、関数T
5(F3(a,b))の値と、関数T6(F3(a,
b))の値と、関数T7(F4(a,b))+nonz
(a,b)の値と、関数T8(F4(a,b))+no
nz(a,b)の値と、関数T9(F5(a,b))+
nonz(a,b)の値と、関数T10(F5(a,
b))+nonz(a,b)の値とがそれぞれ設定され
ている、請求項27に記載の符号化装置。 - 【請求項29】 前記インデックス値kは、5以上の正
の数Zに対し、それぞれZビット以上により表現された
aとbとをビット結合した値である、請求項28に記載
の符号化装置。 - 【請求項30】 前記符号長算出部は、入力されたデー
タの値が、いずれかのハフマンコードブックによってデ
ータを符号化した場合の符号長を算出できない変域外の
値の場合には、該当するハフマンコードブックが無効で
あることを示す値を出力し、前記制御部は、その無効を
示す値を受けとった場合に、無効な値によって示された
ハフマンコードブックを選択しないようになっている、
請求項12〜29のいずれかに記載の符号化装置。 - 【請求項31】 前記関数T1(F1(a,b,c,
d))の値と、関数T2(F1(a,b,c,d))の
値とは、前記インデックス値i1に対してMSB側とL
SM側とに分けて格納されており、かつ、上記各関数T
1の値と関数T2の値との間には、少なくともm1ビッ
ト(m1は正の整数)の「0」が挿入されており、前記
関数T3(F2(a,b,c,d))+nonz(a,
b,c,d)の値と、関数T4(F2(a,b,c,
d))+nonz(a,b,c,d)の値とは、前記イ
ンデックス値i2に対してMSB側とLSM側とに分け
て格納されており、かつ、上記各関数T3の値と関数T
4の値との間には、少なくともm1ビット(m1>0)
の「0」の値が挿入されている請求項14に記載の符号
化装置。 - 【請求項32】 前記関数T1(F1(a,b,c,
d))の値と、関数T2(F1(a,b,c,d))の
値と、関数T3(F2(a,b,c,d))+nonz
(a,b,c,d)の値と、関数T4(F2(a,b,
c,d))+nonz(a,b,c,d)の値とは、前
記インデックス値jに対してMSB側から、LSM側に
かけて順番にそれぞれ格納されており、かつ、上記各関
数T1、T2T3、T4それぞれの値の間には、少なく
ともm1ビット(m1は正の整数)の「0」の値がそれ
ぞれ挿入されている請求項19に記載の符号化装置。 - 【請求項33】 前記G個の各グループに含まれるデー
タの個数の最大値を4で割った値をn1とすると、上記
m1の値は、n1に対する底が2の対数(log2(n
1))を演算して、その演算値の小数点以下を切り上げ
て整数化した値である請求項31または32記載の符号
化装置。 - 【請求項34】 前記関数T5(F3(a,b))の値
と、関数T6(F3(a,b))の値とは、前記インデ
ックス値i3に対してMSB側とLSM側とに分けて格
納されており、かつ、上記各関数T5の値と関数T6の
値との間には、少なくともm2ビット(m2は正の整
数)の「0」が挿入されており、前記関数T7(F4
(a,b))+nonz(a,b)の値と、関数T8
(F4(a,b))+nonz(a,b)の値とは、前
記インデックス値i4に対してMSB側とLSM側とに
分けて格納されており、かつ、関数T7の値と関数T8
の値との間には、少なくともm2ビット(m2は正の整
数)の「0」の値が挿入されており、前記関数T9(F
5(a,b))+nonz(a,b)の値と、関数T1
0(F5(a,b))+nonz(a,b)の値とは、
前記インデックス値i5に対してMSB側とLSM側と
に分けて格納されており、かつ、上記関数T9の値と、
関数T10の値との間には、少なくともm2ビット(m
2は正の整数)の「0」の値が挿入されている請求項2
3に記載の符号化装置。 - 【請求項35】 前記関数T5(F3(a,b))の
値と、関数T6(F3(a,b))の値と、関数T7
(F4(a,b))+nonz(a,b)の値と、関数
T8(F4(a,b))+nonz(a,b)の値と、
関数T9(F5(a,b))+nonz(a,b)の値
と、関数T10(F5(a,b))+nonz(a,
b)の値とは、前記インデックス値kに対してMSB側
からLSM側にかけて順番にそれぞれ格納されており、
かつ、上記関数T5、T6、T7、T8、T9、T10
それぞれの値の間には、少なくともm2ビット(m2は
正の整数)の「0」の値がそれぞれ挿入されている請求
項28に記載の符号化装置。 - 【請求項36】 前記G個の各グループに含まれるデー
タの個数の最大値を2で割った値をn2とすると、前記
m2の値は、n2の値に対する底が2の対数(log2(n
2))を演算して、その演算値の小数点以下を切り上げ
て整数化した値である請求項34または35に記載の符
号化装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35819499A JP3323175B2 (ja) | 1999-04-20 | 1999-12-16 | 符号化装置 |
US09/551,796 US6484142B1 (en) | 1999-04-20 | 2000-04-18 | Encoder using Huffman codes |
EP00108532A EP1047198A3 (en) | 1999-04-20 | 2000-04-19 | Encoder with optimally selected codebook |
CNB001192132A CN1175579C (zh) | 1999-04-20 | 2000-04-20 | 编码器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11295399 | 1999-04-20 | ||
JP11-112953 | 1999-04-20 | ||
JP35819499A JP3323175B2 (ja) | 1999-04-20 | 1999-12-16 | 符号化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001007707A true JP2001007707A (ja) | 2001-01-12 |
JP3323175B2 JP3323175B2 (ja) | 2002-09-09 |
Family
ID=26451993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35819499A Expired - Fee Related JP3323175B2 (ja) | 1999-04-20 | 1999-12-16 | 符号化装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6484142B1 (ja) |
EP (1) | EP1047198A3 (ja) |
JP (1) | JP3323175B2 (ja) |
CN (1) | CN1175579C (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007219438A (ja) * | 2006-02-20 | 2007-08-30 | Oki Electric Ind Co Ltd | 符号本選択方法及び符号本選択装置 |
JP2008032823A (ja) * | 2006-07-26 | 2008-02-14 | Toshiba Corp | 音声符号化装置 |
US7613609B2 (en) | 2003-04-09 | 2009-11-03 | Sony Corporation | Apparatus and method for encoding a multi-channel signal and a program pertaining thereto |
JP2010160517A (ja) * | 2002-09-04 | 2010-07-22 | Microsoft Corp | レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化 |
JP2012023738A (ja) * | 2005-10-05 | 2012-02-02 | Lg Electronics Inc | 信号処理方法及び装置、エンコーディング及びデコーディング方法並びにそのための装置 |
JP2014041362A (ja) * | 2004-09-17 | 2014-03-06 | Digital Rise Technology Co Ltd | 多チャンネルデジタル音声符号化装置および方法 |
US8712783B2 (en) | 2002-09-04 | 2014-04-29 | Microsoft Corporation | Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes |
US9172965B2 (en) | 2008-05-02 | 2015-10-27 | Microsoft Technology Licensing, Llc | Multi-level representation of reordered transform coefficients |
JP2017502539A (ja) * | 2013-10-24 | 2017-01-19 | クアルコム,インコーポレイテッド | マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678647B1 (en) * | 2000-06-02 | 2004-01-13 | Agere Systems Inc. | Perceptual coding of audio signals using cascaded filterbanks for performing irrelevancy reduction and redundancy reduction with different spectral/temporal resolution |
US20020049586A1 (en) * | 2000-09-11 | 2002-04-25 | Kousuke Nishio | Audio encoder, audio decoder, and broadcasting system |
CN1262972C (zh) * | 2000-09-28 | 2006-07-05 | 罗克马诺尔研究有限公司 | 改进的霍夫曼数据压缩方法 |
JP3580251B2 (ja) * | 2000-12-27 | 2004-10-20 | 日本電気株式会社 | データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体 |
JP4501288B2 (ja) * | 2001-02-23 | 2010-07-14 | ヤマハ株式会社 | ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法 |
US6563440B1 (en) * | 2001-10-19 | 2003-05-13 | Nokia Corporation | Apparatus and method for decoding Huffman codes using leading one/zero string length detection |
US6670897B1 (en) * | 2002-10-03 | 2003-12-30 | Motorola, Inc. | Compression/decompression techniques based on tokens and Huffman coding |
US7433519B2 (en) * | 2003-04-04 | 2008-10-07 | Avid Technology, Inc. | Bitstream format for compressed image data |
US7403561B2 (en) * | 2003-04-04 | 2008-07-22 | Avid Technology, Inc. | Fixed bit rate, intraframe compression and decompression of video |
JP4382090B2 (ja) * | 2003-06-16 | 2009-12-09 | パナソニック株式会社 | 符号化装置、符号化方法およびコードブック |
US7325023B2 (en) * | 2003-09-29 | 2008-01-29 | Sony Corporation | Method of making a window type decision based on MDCT data in audio encoding |
US7349842B2 (en) * | 2003-09-29 | 2008-03-25 | Sony Corporation | Rate-distortion control scheme in audio encoding |
US7426462B2 (en) * | 2003-09-29 | 2008-09-16 | Sony Corporation | Fast codebook selection method in audio encoding |
US7283968B2 (en) | 2003-09-29 | 2007-10-16 | Sony Corporation | Method for grouping short windows in audio encoding |
US6975253B1 (en) * | 2004-08-06 | 2005-12-13 | Analog Devices, Inc. | System and method for static Huffman decoding |
US7937271B2 (en) | 2004-09-17 | 2011-05-03 | Digital Rise Technology Co., Ltd. | Audio decoding using variable-length codebook application ranges |
JP4479530B2 (ja) * | 2004-12-28 | 2010-06-09 | カシオ電子工業株式会社 | データ圧縮装置、及びデータ復元装置 |
US20060235683A1 (en) * | 2005-04-13 | 2006-10-19 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Lossless encoding of information with guaranteed maximum bitrate |
US7788106B2 (en) | 2005-04-13 | 2010-08-31 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Entropy coding with compact codebooks |
US7991610B2 (en) * | 2005-04-13 | 2011-08-02 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Adaptive grouping of parameters for enhanced coding efficiency |
US8214220B2 (en) | 2005-05-26 | 2012-07-03 | Lg Electronics Inc. | Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal |
EP1946294A2 (en) | 2005-06-30 | 2008-07-23 | LG Electronics Inc. | Apparatus for encoding and decoding audio signal and method thereof |
JP2009500657A (ja) | 2005-06-30 | 2009-01-08 | エルジー エレクトロニクス インコーポレイティド | オーディオ信号をエンコーディング及びデコーディングするための装置とその方法 |
WO2007004833A2 (en) | 2005-06-30 | 2007-01-11 | Lg Electronics Inc. | Method and apparatus for encoding and decoding an audio signal |
US7765104B2 (en) | 2005-08-30 | 2010-07-27 | Lg Electronics Inc. | Slot position coding of residual signals of spatial audio coding application |
US7788107B2 (en) | 2005-08-30 | 2010-08-31 | Lg Electronics Inc. | Method for decoding an audio signal |
US8577483B2 (en) | 2005-08-30 | 2013-11-05 | Lg Electronics, Inc. | Method for decoding an audio signal |
KR20080049735A (ko) | 2005-08-30 | 2008-06-04 | 엘지전자 주식회사 | 오디오 신호의 디코딩 방법 및 장치 |
US7696907B2 (en) | 2005-10-05 | 2010-04-13 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
WO2007040365A1 (en) | 2005-10-05 | 2007-04-12 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
US7751485B2 (en) | 2005-10-05 | 2010-07-06 | Lg Electronics Inc. | Signal processing using pilot based coding |
US7646319B2 (en) | 2005-10-05 | 2010-01-12 | Lg Electronics Inc. | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor |
US7672379B2 (en) | 2005-10-05 | 2010-03-02 | Lg Electronics Inc. | Audio signal processing, encoding, and decoding |
US7716043B2 (en) | 2005-10-24 | 2010-05-11 | Lg Electronics Inc. | Removing time delays in signal paths |
US7752053B2 (en) | 2006-01-13 | 2010-07-06 | Lg Electronics Inc. | Audio signal processing using pilot based coding |
US20070168197A1 (en) * | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
KR101364979B1 (ko) * | 2006-02-24 | 2014-02-20 | 오렌지 | 신호 엔벨로프의 양자화 인덱스들의 이진 코딩 방법과 신호엔벨로프의 디코딩 방법, 및 대응하는 코딩 모듈과 디코딩모듈 |
US7486211B2 (en) * | 2007-04-13 | 2009-02-03 | Apple Inc. | Method and system for entropy coding |
CN101308657B (zh) * | 2007-05-16 | 2011-10-26 | 中兴通讯股份有限公司 | 一种基于先进音频编码器的码流合成方法 |
US8515767B2 (en) * | 2007-11-04 | 2013-08-20 | Qualcomm Incorporated | Technique for encoding/decoding of codebook indices for quantized MDCT spectrum in scalable speech and audio codecs |
JP2010034794A (ja) * | 2008-07-28 | 2010-02-12 | Fujitsu Ltd | オーディオ符号化装置、オーディオ符号化プログラム及びオーディオ符号化方法 |
US7804428B2 (en) * | 2008-11-10 | 2010-09-28 | Apple Inc. | System and method for compressing a stream of integer-valued data |
GB2465809B (en) * | 2008-12-01 | 2012-12-12 | Advanced Risc Mach Ltd | Dynamic selection of suitable codes for variable length coding and decoding |
RU2464649C1 (ru) * | 2011-06-01 | 2012-10-20 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Способ обработки звукового сигнала |
CN103051341B (zh) * | 2012-12-31 | 2016-01-27 | 华为技术有限公司 | 数据编码装置及方法、数据解码装置及方法 |
US10236909B2 (en) * | 2017-03-31 | 2019-03-19 | Sandisk Technologies Llc | Bit-order modification for different memory areas of a storage device |
US10230395B2 (en) * | 2017-03-31 | 2019-03-12 | Sandisk Technologies Llc | Determining codebooks for different memory areas of a storage device |
US10355712B2 (en) * | 2017-03-31 | 2019-07-16 | Sandisk Technologies Llc | Use of multiple codebooks for programming data in different memory areas of a storage device |
CN116193113A (zh) * | 2022-12-07 | 2023-05-30 | 辉羲智能科技(上海)有限公司 | 数据解压和压缩方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3943879B4 (de) * | 1989-04-17 | 2008-07-17 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Digitales Codierverfahren |
US5227878A (en) * | 1991-11-15 | 1993-07-13 | At&T Bell Laboratories | Adaptive coding and decoding of frames and fields of video |
US5371544A (en) * | 1992-02-07 | 1994-12-06 | At&T Corp. | Geometric vector quantization |
US5819215A (en) * | 1995-10-13 | 1998-10-06 | Dobson; Kurt | Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data |
-
1999
- 1999-12-16 JP JP35819499A patent/JP3323175B2/ja not_active Expired - Fee Related
-
2000
- 2000-04-18 US US09/551,796 patent/US6484142B1/en not_active Expired - Lifetime
- 2000-04-19 EP EP00108532A patent/EP1047198A3/en not_active Ceased
- 2000-04-20 CN CNB001192132A patent/CN1175579C/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010160517A (ja) * | 2002-09-04 | 2010-07-22 | Microsoft Corp | レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化 |
JP2010160518A (ja) * | 2002-09-04 | 2010-07-22 | Microsoft Corp | レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化 |
US8712783B2 (en) | 2002-09-04 | 2014-04-29 | Microsoft Corporation | Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes |
US9390720B2 (en) | 2002-09-04 | 2016-07-12 | Microsoft Technology Licensing, Llc | Entropy encoding and decoding using direct level and run-length/level context-adaptive arithmetic coding/decoding modes |
US7613609B2 (en) | 2003-04-09 | 2009-11-03 | Sony Corporation | Apparatus and method for encoding a multi-channel signal and a program pertaining thereto |
JP2014041362A (ja) * | 2004-09-17 | 2014-03-06 | Digital Rise Technology Co Ltd | 多チャンネルデジタル音声符号化装置および方法 |
JP2012023738A (ja) * | 2005-10-05 | 2012-02-02 | Lg Electronics Inc | 信号処理方法及び装置、エンコーディング及びデコーディング方法並びにそのための装置 |
JP2007219438A (ja) * | 2006-02-20 | 2007-08-30 | Oki Electric Ind Co Ltd | 符号本選択方法及び符号本選択装置 |
JP2008032823A (ja) * | 2006-07-26 | 2008-02-14 | Toshiba Corp | 音声符号化装置 |
US9172965B2 (en) | 2008-05-02 | 2015-10-27 | Microsoft Technology Licensing, Llc | Multi-level representation of reordered transform coefficients |
JP2017502539A (ja) * | 2013-10-24 | 2017-01-19 | クアルコム,インコーポレイテッド | マルチユーザの省電力コードブックの最適化を実現するためのシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1284791A (zh) | 2001-02-21 |
CN1175579C (zh) | 2004-11-10 |
US6484142B1 (en) | 2002-11-19 |
JP3323175B2 (ja) | 2002-09-09 |
EP1047198A2 (en) | 2000-10-25 |
EP1047198A3 (en) | 2004-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3323175B2 (ja) | 符号化装置 | |
US7991610B2 (en) | Adaptive grouping of parameters for enhanced coding efficiency | |
JP5106684B2 (ja) | シンボルを符号化する方法、シンボルを復号化する方法、送信器から受信器にシンボルを伝送する方法、エンコーダ、デコーダおよびシンボルを送信器から受信器に伝送するシステム | |
KR100489908B1 (ko) | 디지탈정보신호부호화방법및장치 | |
CN1905010B (zh) | 编码音频数据的设备和方法及解码音频数据的设备和方法 | |
US20110096830A1 (en) | Encoder that Optimizes Bit Allocation for Information Sub-Parts | |
US20110095920A1 (en) | Encoder and decoder using arithmetic stage to compress code space that is not fully utilized | |
US20020049586A1 (en) | Audio encoder, audio decoder, and broadcasting system | |
EP2053749B1 (en) | Encoding method and apparatus, and program | |
EP1854218B1 (en) | Lossless encoding of information with guaranteed maximum bitrate | |
WO2007083264A1 (en) | Audio coding | |
US5594435A (en) | Permutation-based data compression | |
JPH07307675A (ja) | 可変長復号器及び可変長符号値を復号化する方法 | |
JP2002335161A (ja) | 信号処理装置及び方法、信号符号化装置及び方法、並びに信号復号装置及び方法 | |
US20050075888A1 (en) | Fast codebook selection method in audio encoding | |
JPH1020897A (ja) | 適応変換符号化方式および適応変換復号方式 | |
JP2002158589A (ja) | 符号化装置および復号化装置 | |
CN116366071A (zh) | 一种基于ans编码的封装方法、系统、存储介质及设备 | |
JP3191257B2 (ja) | 音響信号符号化方法、音響信号復号化方法、音響信号符号化装置、音響信号復号化装置 | |
CN114429200A (zh) | 规范化哈夫曼编解码方法及神经网络计算芯片 | |
JP4369140B2 (ja) | オーディオ高能率符号化装置、オーディオ高能率符号化方法、オーディオ高能率符号化プログラム及びその記録媒体 | |
JP4351684B2 (ja) | ディジタル信号復号化方法、装置、プログラム及び記録媒体 | |
KR950022178A (ko) | 디지탈신호의 부호화/복호화 방법 및 장치 | |
JP2003195894A (ja) | 符号化装置、復号化装置、符号化方法、及び復号化方法 | |
FI110373B (fi) | Menetelmä pakatun audiosignaalin purkamiseksi |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20020618 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080628 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090628 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100628 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100628 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110628 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120628 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120628 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130628 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |