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
Application number
JP11358194A
Other languages
English (en)
Other versions
JP3323175B2 (ja
Inventor
Shuji Miyasaka
修二 宮阪
Takeshi Norimatsu
武志 則松
Mineo Tsushima
峰生 津島
Tomokazu Ishikawa
智一 石川
Yoshiaki Sawada
慶昭 澤田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP35819499A priority Critical patent/JP3323175B2/ja
Priority to US09/551,796 priority patent/US6484142B1/en
Priority to EP00108532A priority patent/EP1047198A3/en
Priority to CNB001192132A priority patent/CN1175579C/zh
Publication of JP2001007707A publication Critical patent/JP2001007707A/ja
Application granted granted Critical
Publication of JP3323175B2 publication Critical patent/JP3323175B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/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/42Conversion 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

(57)【要約】 【課題】 ハフマンコードブックを少ない処理量によっ
て迅速に選択する。 【解決手段】 各メモリ100〜103に記憶されたデ
ータの各グループが、ハフマンコード選択部108によ
って選択されたハフマンコードブックに基づいて、ハフ
マン符号化部109〜112によってハフマン符号化さ
れる。ハフマンコードブック選択部108の制御部11
6は、各ハフマンコードブックによって各グループのデ
ータをハフマン符号化した場合に得られる符号長が各ハ
フマンコードブック毎にそれぞれ設定された符号長算出
部114、115からの出力に基づいて、データの各グ
ループに適したハフマンコードブックを選択する。符号
長設定部114、115に設定される符号長には、ハフ
マンコードブックがアンサインドコードブックの場合に
は、サイン情報のために必要とするビット数が予め加算
されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハフマン符号を用
いた符号化装置に関し、特に、複数のハフマンコードブ
ックの中から最適なハフマンコードブックを選択し、選
択されたハフマンコードブックを用いてデジタルデータ
を符号化する符号化装置に関する。
【0002】
【従来の技術】近年、オーディオ信号を符号化する方法
として、量子化されたオーディオ信号のスペクトルデー
タをハフマン符号化を用いて、高能率圧縮する方法が用
いられている。例えば、MPEG2−AAC規格の符号
化方式がそれであり、以下、その圧縮方法について説明
する(ISO/IEC 13818−7参照)。
【0003】まず、入力のPCM信号は、MDCT処理
によって、1024本毎の周波数スペクトルデータに変
換される。この過程は、"ISO/IEC 13818-7 ANNEX B 2.3
FilterBank and block switching"に詳しく述べられて
いるので、ここでは省略する。
【0004】次に、上記1024本の周波数スペクトル
データは、非線形量子化の手法によって、量子化(整数
化)される。この過程は、"ISO/IEC 13818-7 ANNEX B
2.7 Quantizing"に詳しく述べられているので、ここで
は省略する。
【0005】次に、量子化された1024本の周波数ス
ペクトルデータは、スケールファクタバンド(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"参照)。
【0006】図5は、このような過程によって量子化、
グループ化されたスペクトルデータの例を示す。図5に
おいて、左欄の「sfb」は、スケールファクタバンド
sfbを表し、中央欄の「spectrum」は、スペ
クトルデータの番号を表し、右欄の「volue」はス
ペクトルデータの絶対値を表す。
【0007】次に、このように量子化、グループ化され
たスペクトルデータは、各sfb毎にハフマン符号化さ
れる。このときのハフマン符号化は、複数のハフマンコ
ードブックの中から、sfbごとに1つのハフマンコー
ドブックを選択し、そのハフマンコードブックに基づい
て行われる。MPEG2−AAC規格においては、ハフ
マンコードブック1〜11の11個のハフマンコードブ
ックの中から1つのハフマンコードブックを選択するよ
うになっている。しかし、以下においては説明の簡単化
のために、ハフマンコードブック3〜6の4つの中から
1つのハフマンコードブックを選択し、ハフマン符号化
する過程を説明する。
【0008】図6〜図9は、それぞれ、ハフマンコード
ブック3〜6を示す。図6から図9のハフマンコードブ
ック3〜6において、最も左側の「index」の欄
は、符号化の対象となるデータのインデックス番号を示
し、左側から2番目の「length」の欄は、符号化
後のデータの符号長を示し、左側から3番目の「cod
eword(hexadecimal)」の欄は、符号
化されたデータ(符号語)を16進表記により示してい
る。図6〜図9のハフマンコードブック3〜6には、イ
ンデックス番号0〜80に対する符号化後のデータの符
号長(length)、及び、その符号化後のデータの
符号長が16進表記(codeword)されている。
【0009】図5のグループ「sfb0」においては、
スペクトルデータの絶対値の最大値は4である。MPE
G2−AAC規格においては、入力信号の絶対値の最大
値に応じて、選択できるハフマンコードブックは制限さ
れている。この制限は、図10に示されるLAV(Larg
est Absolute Value)により定められている。LAV
は、当該ハフマンコードブックが対象とする入力データ
の絶対値の最大値を示す。「sfb0」内のスペクトル
データの絶対値の最大値が4であるため、図10によ
り、ハフマンコードブック5と、ハフマンコードブック
6とが、選択の対象となる。選択の対象となったハフマ
ンコードブック5と、ハフマンコードブック6のそれぞ
れによりハフマン符号化した際の符号化後の符号長を比
較し、符号長が短い方のハフマンコードブックが選択さ
れる。ここで、ハフマンコードブック5および6におい
て、ハフマン符号化後の符号長を求める方法は以下の通
りである。
【0010】まず、グループ「sfb0」の4つのスペ
クトルの要素(値)をそれぞれ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」をそれぞれ得る。
【0011】図5によれば、D0=4,D1=−2,D
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が選択される。
【0012】同様に、グループ「sfb1」について
は、ハフマンコードブック5を用いた場合のハフマン符
号化後の符号長は18ビットとなり、ハフマンコードブ
ック6を用いた場合のハフマン符号化後の符号長は13
ビットとなる。このように、グループ「sfb1」に含
まれる各スペクトルデータを符号化するためには、ハフ
マンコードブック6を用いた方が有利であるので、ハフ
マンコードブック6が選択される。
【0013】さらに、図5のグループ「sfb2」にお
いては、各スペクトルデータの絶対値の最大値は1であ
るため、ハフマンコードブック3〜6が選択の対象とな
る。上述した方法によりハフマン符号化後の符号長を求
めると、ハフマンコードブック5を用いた場合は9ビッ
ト、ハフマンコードブック6を用いた場合は8ビットと
なる。
【0014】ハフマンコードブック3およびハフマンコ
ードブック4を用いて、ハフマン符号化後の符号長を求
める方法は以下の通りである。ハフマンコードブック3
とハフマンコードブック4は、いわゆる、アンサインド
コードブックとよばれるものであり、符号化の対象とな
るデータが符号なしデータ(アンサインドデータ)であ
る。アンサインドデータの場合には、ハフマン符号化の
対象は、入力のデータの絶対値となり、欠落したサイン
情報の数は、別途数えられ、ハフマン符号化の符号量に
加算される。欠落したサイン情報の数は、当該データの
中で値が0でない要素(サイン情報を必要とするデー
タ)の数である。以下に、そのような場合のハフマン符
号化後の符号長を求める方法を説明する。
【0015】まず、グループ「sfb2」の4つのスペ
クトルデータの要素(値)をそれぞれD0,D1,D
2,D3とし、以下の式によって、インデックス番号と
して、index0を演算する。なお、次式における
「abs()」は、絶対値をとる記号、「^」は、べき
乗演算子、k=LAV+1である。
【0016】 index0=abs(D0)*(k^3)+abs(D1)*(k^2) +abs(D2)*k+abs(D3) …(3) この「index0」の値をインデックス番号として、
ハフマンコードブック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ビットとなる。
【0017】一方、index0=39から、図7に示
すハフマンコードブック4を引くと、length=4
が得られる。この場合も、サイン情報ビットとして3ビ
ットが加算されなくてはならないため、ハフマン符号化
後の符号長は、length=4とサイン情報ビット3
とを加算した7ビットとなる。
【0018】このように、グループ「sfb2」のハフ
マン符号化後の符号長は、ハフマンコードブック3を用
いると9ビット、ハフマンコードブック4を用いると7
ビット、ハフマンコードブック5を用いると9ビット、
ハフマンコードブック6を用いると8ビットとなる。よ
って、ハフマンコードブック4を用いた場合が有利であ
るため、ハフマンコードブック4が選択される。
【0019】以下同様に、全てのデータのグループ「s
fb」についてハフマンコードブックが選択され、選択
された各ハフマンコードブックを用いて、スペクトルデ
ータのハフマン符号化が行われる。ハフマン符号化の方
法は簡単であり、上記のようにして求められたインデッ
クス番号(上記index0,index1等)に対応
する当該ハフマンコードブックの16進表記(code
word)を符号化データとして出力するだけである。
【0020】次に、上記のように各グループの「sf
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」毎に選択されているハフマンコードブックが符号
化される。
【0021】
【発明が解決しようとする課題】上述したような従来の
技術によれば、各グーループ「sfb」のハフマンコー
ドブックを選択する過程の処理が多大になるという問題
点がある。これは、アンサインドコードブックを用いた
場合のサイン情報に使用されるビット数の算出を、アン
サインドコードブックが選択される度に行っていること
によるものである。また、選択の対象となるハフマンコ
ードブックそれぞれについて、各ハフマンコードブック
を用いた際の符号化後の符号長を求める処理を、それぞ
れのハフマンコードブックごとに別々に行っていること
にもよる。
【0022】また、従来の技術によれば、各グループ
「sfb」毎のハフマンコードブックを選択する過程に
おいて、ハフマンコードブックの番号を符号化するため
に必要な符号量を考慮していないため、必ずしもトータ
ルとして最適なハフマンコードブックが選択されていな
いという問題点もある。すなわち、各グループ「sf
b」のデータについて、符号化後の符号量が最小となる
ハフマンコードブックが選択されているだけであって、
ハフマンコードブックの番号を符号化するために必要な
符号量も考慮した符号化後の全体の符号量が最小となる
ようにはハフマンコードブックが選択されていない。
【0023】本発明は、このような従来の問題点に鑑み
てなされたものであり、複数のハフマンコードブックの
中から最適なハフマンコードブックを選択し、選択され
たハフマンコードブックを用いてデジタルデータを符号
化する符号化装置であって、ハフマンコードブックを高
速に選択し、少ない処理量で効率的な符号化を行える符
号化装置を提供することを目的とする。
【0024】
【課題を解決するための手段】本発明の符号化装置は、
G個のグループ(Gは1以上の整数)に分割されたデー
タのそれぞれを格納するG個の記憶部と、前記各記憶部
にそれぞれ格納された各グループのそれぞれについて、
インデックス番号をそれぞれ有するH個のハフマンコー
ドブック(Hは1以上の整数)の中から1つのハフマン
コードブックを選択するハフマンコードブック選択部
と、このハフマンコードブック選択部にて各グループ毎
にそれぞれ選択されたハフマンコードブックを用いて、
各グループのデータをそれぞれハフマン符号化するG個
のハフマン符号化部と、前記ハフマンコードブック選択
部が選択した各ハフマンコードブックのインデックス番
号をそれぞれ符号化するインデックス番号符号化部と、
を備えた符号化装置であって、前記ハフマンコードブッ
ク選択部は、各ハフマンコードブックによって各グルー
プのデータをハフマン符号化した場合に得られる符号長
が各ハフマンコードブック毎にそれぞれ設定された符号
長算出部と、該符号長算出部にて設定された符号長に基
づいて、各グループ毎のデータに適したハフマンコード
ブックを選択する制御部とを有しており、前記ハフマン
コードブックがアンサインドコードブックの場合には、
前記符号長設定部に設定される符号長に、サイン情報の
ために必要とするビット数が予め加算されていることを
特徴とする。
【0025】前記符号長算出部は、各ハフマンコードブ
ック毎に前記符号長が予め設定されたテーブルデータを
有している。
【0026】また、本発明の符号化装置は、G個のグル
ープ(Gは1以上の整数)に分割されたデータのそれぞ
れを格納するG個の記憶部と、前記各記憶部にそれぞれ
格納された各グループのそれぞれについて、インデック
ス番号をそれぞれ有するH個のハフマンコードブック
(Hは1以上の整数)の中から1つのハフマンコードブ
ックを選択するハフマンコードブック選択部と、このハ
フマンコードブック選択部にて各グループ毎にそれぞれ
選択されたハフマンコードブックを用いて、各グループ
のデータをそれぞれハフマン符号化するG個のハフマン
符号化部と、前記ハフマンコードブック選択部が選択し
た各ハフマンコードブックのインデックス番号をそれぞ
れ符号化するインデックス番号符号化部と、を備えた符
号化装置であって、前記ハフマンコードブック選択部
は、各ハフマンコードブックによって各グループのデー
タをハフマン符号化した場合に得られる符号長が各ハフ
マンコードブック毎にそれぞれ設定された符号長算出部
と、該符号長算出部にて設定された符号長に基づいて、
各グループ毎のデータに適したハフマンコードブックを
選択する制御部とを有しており、前記符号長算出部は、
複数のハフマンコードブックに対する符号長を同時に求
めることができることを特徴とする。
【0027】前記符号長算出部は、1つのグループのデ
ータに対して複数のハフマンコードブックによって符号
化した場合の符号長をそれぞれ出力するようになってお
り、前記制御部は、該符号長算出部にて出力される符号
長が最も短いハフマンコードブックを選択する。
【0028】前記符号長算出部は、1つのグループのデ
ータに対して複数のハフマンコードブックによって符号
化した場合の符号長をそれぞれ出力するようになってお
り、前記制御部は、該符号長算出部から出力される各ハ
フマンコードブックの符号長に、各ハフマンコードブッ
クのインデックス番号をそれぞれ考慮して1つのハフマ
ンコードブックを選択する。
【0029】前記制御部は、(g+1)番目のグループ
(gは整数、1≦g≦G−1)に対するハフマンコード
ブックを選択する際に、前記符号長算出部が出力したハ
フマン符号化後の符号長が最小であるハフマンコードブ
ックHminについてのハフマン符号化後の符号長Bm
inと、g番目のグループにおいて選択されているハフ
マンコードブックHgについてのハフマン符号化後の符
号長Bgとを求め、Bmin<(Bg−A)の場合には
(Aは所定の整数)Hminを選択し、Bmin≧(B
g−A)の場合にはHgを選択する。
【0030】前記制御部は、第1番目のグループに対す
るハフマンコードブックとして、前記符号長算出部から
出力される符号長が最も短いハフマンコードブックのイ
ンデックス番号を選択する。
【0031】前記制御部は、(g−1)番目のグループ
(gは整数、2≦g≦G)に対するハフマンコードブッ
クを選択する際に、前記符号長算出部が出力したハフマ
ン符号化後の符号長が最小であるハフマンコードブック
Hminについてのハフマン符号化後の符号長Bmin
と、g番目のグループにおいて選択されているハフマン
コードブックHgについてのハフマン符号化後の符号長
Bgとを求め、Bmin<(Bg−A)の場合には(A
は所定の整数)Hminを選択し、Bmin≧(Bg−
A)の場合にはHgを選択する。
【0032】前記制御部は、第G番目のグループに対す
るハフマンコードブックとして、前記符号長算出部から
出力される符号長が最も短いハフマンコードブックのイ
ンデックス番号を選択する。
【0033】前記インデックス番号符号化部は、データ
の1つのグループに対して選択されているインデックス
番号と同じインデックス番号が、そのグループに連続す
るデータのグループに対して選択されている場合に、そ
のインデックス番号と、連続しているグループの数と
を、前記数値Aのビット数で符号化する。
【0034】前記H個のハフマンコードブックは、MP
EG2−AAC規格で定義されている、スペクトルデー
タをハフマン符号化するための11個のハフマンコード
ブックである。
【0035】前記符号長算出部は、MPEG2−AAC
規格で定義されたハフマンコードブック1〜4によって
それぞれデータを符号化した場合の符号長を出力するよ
うになっており、各ハフマンコードブック1および2に
よってデータを符号化した場合の符号長が、共通のイン
デックス値に対応してそれぞれ設定された第1テーブル
と、各ハフマンコードブック3および4に対する符号長
が、共通のインデックス値に対応してそれぞれ設定され
た第2のテーブルとを有している。
【0036】前記第2テーブルに設定された各フマンコ
ードブック3および4それぞれに対応した符号長には、
サイン情報のために必要とするビット数がそれぞれ予め
加算されている。
【0037】関数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*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)の値とがそれぞれ設定さ
れている。
【0038】記号「^」をべき乗記号としたとき、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)である。
【0039】前記インデックス値i1は、2以上の正の
数Xに対し、それぞれXビット以上により表現されたa
とbとcとdとをビット結合した値であり、前記インデ
ックス値i2は、2以上の正の数Yに対し、それぞれY
ビット以上により表現されたabs(a)とabs
(b)とabs(c)とabs(d)とをビット結合し
た値である。
【0040】前記符号長算出部は、MPEG2−AAC
規格のハフマンコードブック1〜4によってそれぞれデ
ータを符号化した場合の符号長を出力するようになって
おり、各ハフマンコードブック1〜4によってデータを
符号化した場合の符号長が、共通のインデックス値に対
応してそれぞれ設定された1つのテーブルを有してい
る。
【0041】前記第2テーブルに設定された各フマンコ
ードブック3および4それぞれに対する符号長には、サ
イン情報のために必要とするビット数がそれぞれ予め加
算されている。
【0042】関数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*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)の値とがそれぞれ設定されている。
【0043】前記インデックス値jは、2以上の正の数
Yに対し、それぞれYビット以上により表現されたaと
bとcとdとをビット結合した値である。
【0044】前記符号長算出部は、MPEG2−AAC
規格のハフマンコードブック5〜10によってそれぞれ
符号化された場合の符号長を出力するようになってお
り、各ハフマンコードブック5および6によってそれぞ
れ符号化された場合の符号長が、共通のインデックス値
に対応してそれぞれ設定された第1のテーブルと、各ハ
フマンコードブック7および8によってそれぞれ符号化
された場合の符号長が、共通のインデックス値に対応し
てそれぞれ設定された第2のテーブルと、さらに、各ハ
フマンコードブック9および10によってそれぞれ符号
化された場合の符号長が、共通のインデックス値に対応
してそれぞれ設定された第3のテーブルとを有してい
る。
【0045】前記第2テーブルに設定された各ハフマン
コードブック7および8それぞれに対応した符号長に
は、サイン情報のために必要とするビット数がそれぞれ
予め加算されており、前記第3テーブルに設定された各
ハフマンコードブック9および10それぞれに対応した
符号長には、サイン情報のために必要とするビット数が
それぞれ予め加算されている。
【0046】関数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)+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)の値とがそれぞれ設定されている。
【0047】9以上の正の数Xに対し、i3=X*(a
+4)+(b+4)であり、8以上の正の数Yに対し、
i4=Y*abs(a)+abs(b)であり、13以
上の正の数Zに対し、i5=Z*abs(a)+abs
(b)である。
【0048】前記インデックス値i3は、4以上の正の
数Xに対し、それぞれXビット以上により表現されたa
とbとをビット結合した値であり、前記インデックス値
i4は、4以上の正の数Yに対し、それぞれYビット以
上により表現されたaとbとをビット結合した値であ
り、前記インデックス値i5は、5以上の正の数Zに対
し、それぞれZビット以上により表現されたaとbとを
ビット結合した値である。
【0049】前記符号長算出部は、MPEG2−AAC
規格のハフマンコードブック5〜10によってデータを
それぞれ符号化した場合の符号長を出力するようになっ
ており、各ハフマンコードブック5〜10によってデー
タをそれぞれ符号化した場合の符号長が、共通のインデ
ックス値に対応してそれぞれ設定された1つのテーブル
に保持されている。
【0050】前記テーブルにて設定された各ハフマンコ
ードブック7〜10それぞれによって符号化した場合の
符号長には、サイン情報のために必要とするビット数が
それぞれ予め加算されている。
【0051】関数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)+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)の値とがそれぞれ設
定されている。
【0052】前記インデックス値kは、5以上の正の数
Zに対し、それぞれZビット以上により表現されたaと
bとをビット結合した値である。
【0053】前記符号長算出部は、入力されたデータの
値が、いずれかのハフマンコードブックによってデータ
を符号化した場合の符号長を算出できない変域外の値の
場合には、該当するハフマンコードブックが無効である
ことを示す値を出力し、前記制御部は、その無効を示す
値を受けとった場合に、無効な値によって示されたハフ
マンコードブックを選択しないようになっている。
【0054】前記関数T1(F1(a,b,c,d))
の値と、関数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」の値が挿入されている。
【0055】前記関数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側にかけ
て順番にそれぞれ格納されており、かつ、上記各関数T
1、T2T3、T4それぞれの値の間には、少なくとも
m1ビット(m1は正の整数)の「0」の値がそれぞれ
挿入されている。
【0056】前記G個の各グループに含まれるデータの
個数の最大値を4で割った値をn1とすると、上記m1
の値は、n1に対する底が2の対数(log2(n1))を
演算して、その演算値の小数点以下を切り上げて整数化
した値である。
【0057】前記関数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(F5
(a,b))+nonz(a,b)の値と、関数T10
(F5(a,b))+nonz(a,b)の値とは、前
記インデックス値i5に対してMSB側とLSM側とに
分けて格納されており、かつ、上記関数T9の値と、関
数T10の値との間には、少なくともm2ビット(m2
は正の整数)の「0」の値が挿入されている。
【0058】前記関数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側からL
SM側にかけて順番にそれぞれ格納されており、かつ、
上記関数T5、T6、T7、T8、T9、T10それぞ
れの値の間には、少なくともm2ビット(m2は正の整
数)の「0」の値がそれぞれ挿入されている。
【0059】前記G個の各グループに含まれるデータの
個数の最大値を2で割った値をn2とすると、前記m2
の値は、n2の値に対する底が2の対数(log2(n
2))を演算して、その演算値の小数点以下を切り上げ
て整数化した値である。
【0060】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。以下の実施の形態においては、基
本的には、MPEG2−AAC規格準拠の符号化データ
を生成する符号化装置について説明する。本来のMPE
G2−AAC規格においては、使用されるハフマンコー
ドブックは11種類であるが、以下の説明においては、
説明の簡単化のため、使用されるハフマンコードブック
はMPEG2−AAC規格により定義されているハフマ
ンコードブック3〜6の4種類とする。以下、ハフマン
コードブック3〜6を用いて、量子化されたスペクトル
データをハフマン符号化していく過程を説明する。
【0061】(実施の形態1)図1は、本発明の符号化
装置10の構成を示す。符号化装置10は、G個のメモ
リ100〜103と、H個のハフマンコードブック10
4〜107と、ハフマンコードブック選択装置108
と、G個のハフマン符号化装置109〜112と、イン
デックス番号符号化装置113とを備えている(G,H
はそれぞれ1以上の整数)。
【0062】所定数のスペクトルデータはそれぞれ量子
化された状態で、所定数ずつ、スケールファクタバンド
(sfb)と呼ばれるG個のグループにそれぞれグルー
プ化されて、各グループ(sfb)が、G個の各メモリ
100〜103にそれぞれ格納される。各メモリ100
〜103にそれぞれ格納されたスペクトルデータは、各
メモリ100〜103に対応して設けられた各ハフマン
符号化装置109〜112にそれぞれ入力されるととも
に、ハフマンコードブック選択装置108に入力され
る。
【0063】ハフマンコードブック選択装置108は、
各スペクトルデータに適したハフマンコードブックを、
H個のハフマンコードブック104〜107から選択す
る。ハフマンコードブック選択装置108は、選択した
ハフマンコードブックの内容をハフマン符号化装置10
9〜112に出力し、選択したハフマンコードブックの
番号をインデックス番号符号化装置113に出力する。
ハフマン符号化装置109〜112は、ハフマンコード
ブック選択装置108により選択されたハフマンコード
ブックを用いて、メモリ100〜103に格納されたス
ペクトルデータを符号化して出力する。インデックス番
号符号化装置113は、選択されたハフマンコードブッ
クの番号を符号化して出力する。
【0064】第1のメモリ100は、量子化された所定
数のスペクトルデータをグループ化した第1のグループ
(sfb0)を格納する。同様に、第2のメモリ101
は、量子化された所定数のスペクトルデータをグループ
化した第2のグループ(sfb1)を格納し、さらに、
第3のメモリ102は、量子化された所定数のスペクト
ルデータをグループ化した第3のグループ(sfb2)
を格納する。以下、同様に、第Gのメモリ103は、量
子化された所定数のスペクトルデータをグループ化した
第Gのグループ(sfbG)を格納する。これらのグル
ープ化は、MPEG2−AAC規格の符号化方式にて行
われている技術であり、従来の技術について上述したよ
うに、図4に示す区切り法に従って行われる。
【0065】H個のハフマンコードブック104〜10
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として定義されたものである。
【0066】ハフマンコードブック選択装置108は、
G個のメモリ100〜103にそれぞれ格納されたG個
のグループ毎に、4つのハフマンコードブック104〜
107の中から、ハフマン符号化に最も適した1つのハ
フマンコードブックをそれぞれ選択するようになってい
る。ハフマンコードブック選択装置108は、第1の符
号長算出装置114と、第2の符号長算出装置115
と、制御装置116とを備えている。
【0067】第1の符号長算出装置114は、G個のメ
モリ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つのハフマンコードブックを選択す
る。
【0068】図2は、第1の符号長算出装置114に内
蔵されたテーブルメモリの内容を示す。図2に示すよう
に、テーブルメモリには、入力されたスペクトルデータ
から生成されたインデックス値(index)をアドレ
スとして、当該スペクトルデータを第1のハフマンコー
ドブックにより符号化した際の符号長に関するビット数
(length of HCB3)、及び第2のハフマ
ンコードブックにより符号化した際の符号長に関するビ
ット数(length of HCB4)がそれぞれ格
納されている。
【0069】図3は、第2の符号長算出装置115に内
蔵されたテーブルメモリの内容を示す。図3に示すよう
に、このテーブルメモリには、入力されたスペクトルデ
ータから生成されたインデックス値(index)をア
ドレスとして、当該スペクトルデータを第3のハフマン
コードブックにより符号化した際の符号長に関するビッ
ト数(length of HCB5)、及び第4のハ
フマンコードブックにより符号化した際の符号長に関す
るビット数(length of HCB6)がそれぞ
れ格納されている。
【0070】第1のハフマン符号化装置109は、第1
のグループのスペクトルデータを、第1のグループに対
して、ハフマンコードブック選択装置108によって選
択されたハフマンコードブックを用いてハフマン符号化
する。第2のハフマン符号化装置110は、第2のグル
ープのスペクトルデータを、第2のグループに対して選
択されたハフマンコードブックを用いてハフマン符号化
する。第3のハフマン符号化装置111は、第3のグル
ープのスペクトルデータを、第3のグループに対して選
択されたハフマンコードブックを用いてハフマン符号化
する。以下同様に、第Gのハフマン符号化装置112
は、第Gのグループのスペクトルデータを、第Gのグル
ープに対して選択されたハフマンコードブックを用いて
ハフマン符号化する。
【0071】インデックス番号符号化装置113は、ハ
フマンコードブック選択装置108によって選択された
各グループに対するハフマンコードブックの番号(イン
デックス番号)をそれぞれ符号化する。
【0072】次に、スペクトルデータの分割及びメモリ
への格納について説明する。
【0073】図4は、量子化されたスペクトルデータを
グループに分割するための区切り法の定義を示す。量子
化された1024本の周波数スペクトルデータは、図4
に示す区切り法により、スケールファクタバンド(sf
b)と呼ばれるグループに分割されている。図4におい
て、左側の「sfb」の欄は、グループ化されたスケー
ルファクタバンドの番号を示し、右側の「offse
t」の欄は、各グループ「sfb」に属するスペクトル
データが何本目から始まるか(オフセット)を示してい
る。
【0074】図4の例はサンプリング周波数が48kH
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"参照)。
【0075】図5は、量子化及びグループ化されたスペ
クトルデータがメモリに格納された状態の一例を示す。
図5において、左側の「sfb」の欄は、グループ化さ
れたスケールファクタバンド(sfb)の番号を示し、
中央の「spectrum」の欄は、スペクトルデータ
の番号を示し、右側の「value」の欄は、各スペク
トルデータの値を示している。図5において、1番上の
枠より、順番に、第1のメモリ100に格納された第1
のグループ(sfb0)のデータ、第2のメモリ101
に格納された第2のグループ(sfb1)のデータ、第
3のメモリ102に格納された第3のグループ(sfb
2)のデータがそれぞれ示されている。
【0076】図5に示されるように、量子化及びグルー
プ化されたスペクトルデータは、G個のグループ化され
た各スケールファクトバンド(sfb)毎に、G個の各
ハフマン符号化装置109〜112により、それぞれハ
フマン符号化される。ハフマン符号化は、4つのハフマ
ンコードブック104〜107の中からスケールファク
トバンド(sfb)毎に1つのハフマンコードブックを
選択し、そのハフマンコードブックに基づいて実施され
る。
【0077】図6〜図9は、4つのハフマンコードブッ
ク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進表記が、それぞれ示され
ている。
【0078】次に、以上のように構成された符号化装置
10の動作について説明する。
【0079】まず、制御装置116は、第1のメモリ1
00から4つのスペクトルデータを受け取る。制御装置
116は、受け取ったスペクトルデータの絶対値の最大
値に応じて、スペクトルデータを第1の符号長算出装置
114と第2の符号長算出装置115のいずれに出力す
るかを選択する。この選択は、スペクトラムハフマンコ
ードブックパラメータに基づいて定められる。すなわ
ち、MPEG2−AAC規格においては、以下に説明す
るように、入力信号の絶対値の最大値に応じて、選択で
きるハフマンコードブックが制限されており、その絶対
値の最大値に基づいて、第1および第2の符号長選択装
置114および115のいずれかが選択される。
【0080】図10は、MPEG2−AAC規格符号化
方式において用いられるスペクトラムハフマンコードブ
ックパラメータを示す。図10には、各ハフマンコード
ブックの属性が表形式により示されている。図10にお
いて、最も左側の「CodebookNumber,
i」の欄は、ハフマンコードブックの番号を示してい
る。左から2番目の「unsigned_cb[i]」
の欄は、当該ハフマンコードブックがアンサインドコー
ドブックであるかサインドコードブックであるかを示し
ている。すなわち、「unsigned_cb[i]」
の欄が「1」であれば、当該ハフマンコードブックはア
ンサインドコードブックであり、「unsigned_
cb[i]」の欄が「0」であれば、当該ハフマンコー
ドブックはアンサインドコードブックでなくサインドコ
ードブックであることを示す。左から4番目の「LAV
for codebook」の欄は、当該ハフマンコー
ドブックが対象とする入力データの絶対値の最大値(La
rgest Absolute Value)を示す。
【0081】図5に示すように、スペクトルデータの第
0番目のグループ「sfb0」の場合、スペクトルデー
タの絶対値の最大値は4であるため、図10に示すよう
に、「LAV for codebook」の値が4であ
り、MPEG2−AAC規格のハフマンコードブック
5、すなわち、第3のハフマンコードブック106と、
MPEG2−AAC規格のハフマンコードブック6、す
なわち、第4のハフマンコードブック107とが選択の
対象となる。
【0082】従って、制御装置116は、第1のメモリ
100から受け取ったスペクトルデータのグループを、
第3および第4のハフマンコードブック106および1
07の符号化長に関するデータが格納された第2の符号
長算出装置115に入力する。第2の符号長算出装置1
15においては、以下のような処理が行われる。すなわ
ち、入力されたグループ「sfb0」の4つのスペクト
ルデータの値をそれぞれD0,D1,D2,D3とし
て、次の(4)式および(5)式に基づいて、図3に示
すテーブルにおけるアドレスである2つのインデックス
値「index0」および「index1」をそれぞれ
算出する。
【0083】 index0=(D0+LAV)*(2*LAV+1)+(D1+LAV) …(4) index1=(D2+LAV)*(2*LAV+1)+(D3+LAV) …(5)
【0084】インデックス値「index0」および
「index1」がそれぞれ算出されると、算出された
各インデックス値に基づいて、図3に示すテーブルか
ら、ハフマンコードブック5(第3のハフマンコードブ
ック106)を用いてハフマン符号化した際の符号長に
関するビット数と、ハフマンコードブック6(第4のハ
フマンコードブック107)を用いてハフマン符号化し
た際の符号長に関するビット数とをそれぞれ求める。
【0085】上述したように、図3において、左側の
「index」の欄は、テーブルのアドレスであるイン
デックス値であり、中央の「length of HC
B5」の欄は、ハフマンコードブック5(第3のハフマ
ンコードブック106)を用いてハフマン符号化した際
の符号長であり、右側の中央の「length ofH
CB6」の欄は、ハフマンコードブック6(第4のハフ
マンコードブック107)を用いてハフマン符号化後の
符号長である。
【0086】第2の符号長算出装置115に格納された
図3に示すテーブルのハフマンコードブック5および6
は、それぞれ、符号付きデータをハフマン符号化するた
めのサインドコードブックである。従って、図3に示す
テーブルにおける「length of HCB5」の
欄および「length of HCB6」の欄には、
それぞれスペクトルデータをハフマン符号化した後の符
号長に対応したビット数がそれぞれ示されている。
【0087】このように、図3に示すテーブルを使用す
ることにより、1つのインデックス値に対して、ハフマ
ンコードブック5およびハフマンコードブック6によっ
て、データをそれぞれハフマン符号化した場合の符号長
が得られる。
【0088】図5に示すスペクトルデータの第0番目の
グループ「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ビットになっ
ている。
【0089】第2の符号長算出装置115は、このよう
に、2つのインデックス値として、「index0」お
よび「index1」をそれぞれ算出して、算出された
各インデックス値に基づいて、ハフマンコードブック5
および6によりデータをそれぞれハフマン符号化した際
の符号長をそれぞれ得る。そして、得られた各ハフマン
コードブック5および6それぞれによって得られる符号
長の合計が演算される。この場合、ハフマンコードブッ
ク5によりデータをハフマン符号化した場合の符号長の
合計は、20ビット(12+8ビット)、ハフマンコー
ドブック6によりデータをハフマン符号化した場合の符
号長の合計は16ビット(9+7ビット)になる。そし
て、合計された符号長のビット数が制御装置116に出
力される。
【0090】制御装置116は、第2の符号長算出装置
115から出力された各ハフマンコードブック5および
6に対応して出力される符号長のビット数から、ハフマ
ンコードブック5または6のいずれかを選択する。この
場合、ハフマンコードブック6によってハフマン符号化
した場合の符号長が短く有利であるため、ハフマンコー
ドブック6が選択される。
【0091】同様に、第2のメモリ101に格納された
図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を選択する。
【0092】次に、制御装置116は、第3のメモリ1
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の両方に出力す
る。
【0093】第2の符号長算出装置115は、ハフマン
コードブック5およびハフマンコードブック6のそれぞ
れに基づいて、ハフマン符号化した際の符号化後の符号
長を、前述と同様にして、図3のテーブルから、それぞ
れ求める。各符号長を求める過程は上述した通りである
ため、説明は省略する。求められる符号化後の符号長
は、ハフマンコードブック5を用いた場合には9ビッ
ト、ハフマンコードブック6を用いた場合には8ビット
となる。
【0094】第1の符号長算出装置114は、ハフマン
コードブック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とする。
【0095】 index0=abs(D0)*(k^3)+abs(D1)*(k^2) +abs(D2)*k+abs(D3) …(6) このようにしてインデックス値「index0」が算出
されると、図2のテーブルから、算出されたインデック
ス値「index0」に基づいて、ハフマンコードブッ
ク3(第1のハフマンコードブック104)を用いてハ
フマン符号化した際の符号長に関するビット数と、ハフ
マンコードブック4(第2のハフマンコードブック10
7)を用いてハフマン符号化した際の符号長に関するビ
ット数とをそれぞれ求める。
【0096】図2において、左側の「index」の欄
には、テーブルのアドレスであるインデックス値が示さ
れてあり、中央の「length of HCB3」の
欄には、ハフマンコードブック3(第1のハフマンコー
ドブック104)を用いてハフマン符号化した際の符号
長に関するビット数が示されており、右側の「leng
th of HCB4」の欄には、ハフマンコードブッ
ク4(第2のハフマンコードブック105)を用いてハ
フマン符号化後の符号長に関するビット数が示されてい
る。このように、図2に示すテーブルを使用することに
より、1つのインデックス番号に対して、ハフマンコー
ドブック3およびハフマンコードブック4によってデー
タをハフマン符号化後した場合の符号長に関するビット
数がそれぞれ得られる。
【0097】図2のテーブルには、MPEG2−AAC
規格のハフマンコードブック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によってハフマン符号化した場合の符号長
に対応したビット数に予め加算した値がビット数として
格納されている。
【0098】図5の「sfb2」の場合、スペクトルデ
ータの値は、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になっている。
【0099】第1の符号長算出装置114は、このよう
に、ハフマン符号化後の符号長として、ハフマンコード
ブック3によって符号化した場合には9ビット、ハフマ
ンコードブック4によって符号化した場合には7ビット
であることを制御装置116に出力し、また、第2の符
号長算出装置115は、前述したように、ハフマン符号
化後の符号長として、ハフマンコードブック5によって
符号化した場合には9ビット、ハフマンコードブック6
によって符号化した場合には8ビットであることを制御
装置に出力する。制御装置116は、第1および第2の
各符号長算出装置114および115からのそれぞれの
出力に基づいて、いずれのハフマンコードブックを用い
るかを選択する。この場合、ハフマンコードブック4を
用いた場合に符号長が最も短くなって有利であるため
に、制御装置116は、ハフマンコードブック4を選択
する。
【0100】第3のメモリ102内に記憶された第2番
目のグループ「sfb2」のスペクトルデータに関し
て、ハフマン符号化後の符号長を求める処理において、
制御装置116は、第1の符号長算出装置114と第2
の符号長算出装置115とを並列に起動してもよく、順
次に起動してもよい。すなわち、ハフマンコードブック
選択装置108をソフトウエアにより実現する場合には
順次に起動することになるが、ハードウエアにより実現
する場合には並列に起動した方が高速な処理が可能とな
る。
【0101】以下同様に、ハフマンコードブック選択装
置108において、G個の全てのスペクトルデータのグ
ループ「sfb」毎に、最適なハフマンコードブックが
それぞれ選択され、各グループのスペクトルデータが、
選択されたハフマンコードブックを用いて、各グループ
毎に対応して設けられた各ハフマン符号化装置109〜
112によって、ハフマン符号化が行われる。ハフマン
符号化の方法は従来の技術の場合と同様であり、選択さ
れたハフマンコードブックにおけるインデックス値(上
記「index0」,「index1」等)に対応する
当該ハフマンコードブックの「codeword」を符
号化データとして出力することにより行われる。
【0102】次に、上記のようにスペクトルデータの各
グループ「sfb」毎に選択されたハフマンコードブッ
クの番号を、上記インデックス番号符号化装置113に
おいて符号化する。この符号化は、MPEG2−AAC
規格によれば、各グループ「sfb」毎に選択されたハ
フマンコードブックのインデックス番号を、それぞれ4
ビットで符号化する。この場合、いずれかのスペクトル
データのグループ「sfb」にて選択されたハフマンコ
ードブックと同一のハフマンコードブックが、そのグル
ープ「sfb」に連続して選択されている場合には、同
じハフマンコードブックが選択された連続するグループ
「sfb」の数を5ビットで符号化される。
【0103】図5に示す例においては、スペクトルデー
タのグループ「sfb0」と次のグループ「sfb1」
とにおいて、同一のハフマンコードブック6がそれぞれ
選択されているので、この場合、まず、ハフマンコード
6のインデックス番号を示す「6」を、4ビットによっ
て、(0110)と表現し、ハフマンコードブック6が
連続する数が1つであることを示す「1」を、5ビット
によって、(00001)と表現する。次に、グループ
「sfb2」において、ハフマンコードブック4が選択
されているので、ハフマンコードブック4のインデック
ス番号を示す「4」を、4ビットによって、(010
0)と表現する。次に続くビット列は、次のグループ
「sfb」において選択されているハフマンコードブッ
クに依存するのでここでは省略する。このようにして、
スペクトルデータの各グループ「sfb」毎に選択され
ているハフマンコードブックが符号化される。
【0104】以上のように本実施の形態によれば、複数
のハフマンコードブックを用いてデータをハフマン符号
化した場合に得られるそれぞれの符号長を、同時に求め
ることができる。また、ハフマンコードブックがアンサ
インドコードブックの場合であっても、1つのテーブル
により、ハフマン符号の符号長に対して、サイン情報の
ために必要なビット数を加算したものが得られる。これ
により、ハフマン符号化に必要な処理量を大幅に削減す
ることができる。
【0105】(実施の形態2)実施の形態2において
も、符号化装置10の構成、動作及びスペクトルデータ
の分割の方法等は、実施の形態1と同様であるため、説
明を省略する。
【0106】実施の形態1においては、制御装置116
が、第1および第2の各符号長算出装置114および1
15の出力を受け取り、その出力値が最も小さいハフマ
ンコードブックを選択している。これに対し、本実施の
形態2においては、制御装置116がハフマン符号化後
の符号長だけでなく、ハフマンコードブックのインデッ
クス番号の符号化後の符号長をも考慮して、出力データ
の総符号長が最小となるようにハフマンコードブックを
選択する。
【0107】すなわち、第(g+1)番目のグループ
(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の値とし
て設定される。
【0108】MPEG2−AAC規格の符号化方式にお
いては、ハフマン符号化した符号化データのみならず、
選択されているハフマンコードブックのインデックス番
号も符号化する。よって、ハフマン符号化した場合の符
号長を示すデータの総数と、ハフマンコードブックのイ
ンデックス番号を符号化したデータの総数との和を少な
くすることによって、効率のよく符号化処理することが
できる。そのため、各スペクトルデータのグループ「s
fb」において、仮にハフマン符号化した後のデータの
符号長が最小でなくても、隣接するグループ「sfb」
と同じハフマンコードブックでハフマン符号化した方
が、データ全体の符号長が短くなって有利になる場合が
ある。
【0109】MPEG2−AAC規格の符号化方式にお
いては、選択されているインデックス番号と、連続する
数個のグループにおいて同じインデックス番号が選択さ
れているかを示す値とを、所定の数値Aのビット数で符
号化するように規定されている。上述した実施の形態1
においては、このAの値は、ハフマンコードブックの番
号を示す4ビットに、同じハフマンコードブックが連続
して選択されている場合のデータのグループ「sfb」
の数を示す5ビットを加えた合計9である。そのため、
例えば第(g+1)のグループに対して使用するハフマ
ンコードブックが、そのグループに隣接する第gのグル
ープに対して使用するハフマンコードブックと異なる
と、インデックス番号を符号化する際に、Aビットが余
分に必要となる。そこで、上記のようにBminと(B
g−A)とを比較して、使用するハフマンコードブック
を決定する。
【0110】以下、図5に示すように、量子化及びグル
ープ化されたスペクトルデータがメモリに格納された状
態について、本実施の形態によるハフマンコードブック
の選択の方法について説明する。ここでは、A=9と仮
定して説明する。なお、ハフマン符号化後の符号長の取
得方法については実施の形態1の説明と同様であるの
で、ここでは説明を省略する。
【0111】まず、第0番目のスペクトルデータのグル
ープ「sfb0」については、実施の形態1と同様に、
出力値が最小となる符号長算出部のハフマンコードブッ
ク6を選択する。次の第1番目のグループ「sfb1」
については、符号長が最小になるハフマンコードブック
の符号長に対応したビット数と、隣接する第0番目のグ
ループ「sfb0」において選択されたハフマンコード
ブックの符号長に対応したビット数とを比較する。この
場合、第1番目のグループ「sfb1」において、符号
化した場合の符号長が最小となるハフマンコードブック
6と、隣接する第0番目のグループ「sfb0」におい
て選択されたハフマンコードブック6とが一致している
ために、特にビット数を比較することなく、第1のグル
ープ「sfb1」において、ハフマンコードブック6を
選択する。
【0112】次の第2グループ「sfb2」について
も、符号長が最小になるハフマンコードブックの符号長
に対応したビット数と、隣接する第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を選択すること
になる。
【0113】この場合、第0番目のグループ「sfb
0」と、第1番目のグループ「sfb1」と、第2番目
のグループ「sfb2」とにおいて、ハフマンコードブ
ック6がそれぞれ選択されているので、インデックス番
号符号化装置113は、ハフマンコードブック6を示す
インデックス番号「6」を4ビットによって(011
0)と表現し、3つのグループが同一のハフマンコード
ブック6を選択していることを示す数値「2」を5ビッ
トによって(00010)と表現する。これにより、ス
ペクトルデータのグループ「sfb0」〜「sfb2」
の3つのグループにおいてそれぞれ選択されているハフ
マンコードブックのインデックス番号が符号化される。
【0114】以上の説明においては、スペクトルデータ
のグループ番号(「sfb」の番号)の小さい方から順
に、選択するハフマンコードブックを確定する構成であ
ったが、グループ番号(「sfb」の番号)の大きい方
から順に、選択するハフマンコードブックを確定してい
ってもよい。
【0115】この場合、制御部116は、(g−1)番
目のグループ(gは整数、2≦g≦G)に対するハフマ
ンコードブックを選択する際に、第1または第2の符号
長算出部114または115が出力したハフマン符号化
後の符号長が最小であるハフマンコードブックHmin
についてのハフマン符号化後の符号長Bminと、g番
目のグループにおいて選択されているハフマンコードブ
ックHgについてのハフマン符号化後の符号長Bgとを
求め、Bmin<(Bg−A)の場合には(Aは、例え
ば9)Hminを選択し、Bmin≧(Bg−A)の場
合にはHgを選択する。
【0116】制御部116は、第G番目のグループに対
するハフマンコードブックを選択する場合には、第1ま
たは第2の符号長算出部114または115からの出力
において、ハフマン符号化後の符号長が最小となるハフ
マンコードブックを選択する。
【0117】また、グループ番号の小さい方から確定さ
れた場合に、各グループ毎に選択されたハフマンコード
ブックによる符号化後の符号長と、グループ番号の大き
い方から確定していった場合に、各グループごとに選択
されたハフマンコードブックによる符号化後の符号長と
をそれぞれ比較して、各グループ毎に、符号化後の符号
長の短いハフマンコードブックをそれぞれ選択するよう
にしてもよい。
【0118】以上のように、本実施の形態によれば、実
施の形態1による効果に加えて、ハフマンコードブック
のインデックス番号を符号化する際の符号長を短くする
ことができるために、より効率よくハフマン符号化を実
施することができる。
【0119】なお、上述の実施形態1および2におい
て、第1および第2の符号長算出装置114および11
5は、入力されたデータの値がいずれかのハフマンコー
ドブックによってハフマン符号化した後の符号長を算出
できない変域外の値の場合には、無効であることを示す
値を出力するように構成してもよい。この場合、制御装
置116は、無効であることを示す値を受けとると、そ
の無効であることを示す値に対応するハフマンコードブ
ックを選択しないようになっている。
【0120】また、上述の実施の形態1および2の説明
においては、説明の簡単化のために、ハフマンコードブ
ックの選択は4種類のハフマンコードブック3〜6の中
から行われるものと仮定している。しかしながら、実際
のMPEG2−AAC規格においては、11種類のハフ
マンコードブック1〜11の中から1つのハフマンコー
ドブックを選択し、選択されたハフマンコードブックを
用いてハフマン符号化を行うような構成となっている。
【0121】この場合、例えば、図17に示すように、
ハフマンコードブック選択装置108に設けられた第1
符号長算出装置114には、各ハフマンコードブック1
および2によって得られるそれぞれの符号長が、共通の
インデックス値に対してそれぞれ設定された第1のテー
ブルを有するROM114aが設けられており、また、
第2の符号長算出装置115には、ハフマンコードブッ
ク3および4によって得られるそれぞれの符号長が、共
通のインデックス値に対してそれぞれ設定された第2の
テーブルを有するROM115aが設けられている。
【0122】第1の符号長算出装置114では、インデ
ックス値生成部114bによって生成されるインデック
ス値に基づいて、ROM114aに設けられた第1のテ
ーブルからハフマンコードブック1および2による符号
長をそれぞれ求めることができる。同様に、第2の符号
長算出装置115では、インデックス値生成部115b
によって生成されるインデックス値に基づいて、ROM
115aの各テーブルからハフマンコードブック3およ
び4による符号長をそれぞれ求めることができる。
【0123】この場合、各ハフマンコードブック3およ
び4は、それぞれアンサインドコードブックであるため
に、ROM115aに設けられた第2のテーブルに設定
される符号長には、サイン情報を付加するために必要な
ビット数が予め加算されている。
【0124】インデックス値生成部114bは、隣接す
る4つのスペクトルデータをa、b、c、dとしたと
き、3以上の正の数Xに対し、次の(7)式に基づいて
インデックス値i1を生成する。
【0125】 i1=(X^3)*(a+1)+(X^2)*(b+1)+X*(c+1) +(d+1) …(7) また、インデックス値生成部115bは、4つのスペク
トルデータa〜dから、3以上の正の数Yに対し、次の
(8)式に基づいて、インデックス値i2を生成する。
【0126】 i2=(Y^3)*abs(a)+(Y^2)*abs(b) +Y*abs(c)+abs(d) …(8) そして、生成されたインデックス値i1およびi2に基
づいて、ROM114aおよび115aにそれぞれ設け
られた各テーブルから、各ハフマンコードブック1〜4
によってデータを符号化した場合の符号長に関するビッ
ト数がそれぞれ求められることになる。
【0127】また、このような構成に限らず、図18に
示すように、第1の符号長算出装置114に、各ハフマ
ンコードブック1〜4によって得られるそれぞれの符号
長が、共通のインデックス値に対してそれぞれ設定され
た1つのテーブルを有するROM114aを設ける構成
としてもよい。
【0128】この場合、インデックス値生成部114b
は、隣接する4つのスペクトルデータをa、b、c、d
としたとき、2以上の正の数Yに対し、それぞれYビッ
ト以上により表現されたaとbとcとdとをビット結合
した値をインデックス値として生成する。すなわち、Y
を2とした場合、例えば、次の(9)式に基づいてイン
デックス値jを生成する。
【0129】 j=((a&3)<<6)|((b&3)<<4)|((c&3)<<2)| (d&3) …(9) そして、このようにして生成されたインデックス値jに
基づいて、各ROM114aのテーブルからハフマンコ
ードブック1〜4によってデータを符号化した場合の符
号長がそれぞれ求められる。
【0130】さらには、ハフマンコードブック5〜10
に対して、図19に示すように、ハフマンコードブック
5および6によって符号化した場合のそれぞれの符号長
が、共通のインデックス値に対してそれぞれ設定された
第1のテーブルを有するROM117a、ハフマンコー
ドブック7および8によってデータを符号化した場合の
それぞれの符号長が、共通のインデックス値に対してそ
れぞれ設定された第2のテーブルを有するROM118
a、ハフマンコードブック9および10によって符号化
した場合のそれぞれの符号長が、共通のインデックス値
に対してそれぞれ設定された第3のテーブルを有するR
OM119aが、それぞれ設けられた符号長算出部11
7〜119を設けるようにしてもよい。各ROM117
a〜119aに設けられた各テーブルの符号長は、イン
デックス値生成部117b〜119bにて生成されたイ
ンデックス値に基づいて求められる。
【0131】この場合、図10に示すように、ハフマン
コードブック7〜10は、それぞれアンサインドコード
ブックであるために、ROM118aおよび119aに
設けられた各テーブルに設定される符号長には、サイン
情報を付加するために必要なビット数が予め加算されて
いる。
【0132】インデックス値生成部117bは、隣接す
る2つのスペクトルデータをa、bとしたとき、9以上
の正の数Xに対し、次の(10)式によって、インデッ
クス値i3を生成する。
【0133】 i3=(X)*(a+4)+(b+4) …(10) また、インデックス値生成部118bは、隣接する2つ
のスペクトルデータaおよびbから、8以上の正の数Y
に対し、次の(11)式によって、インデックス値i4
を生成する。
【0134】 i4=(Y)*abs(a)+abs(b) …(11) さらに、インデックス値生成部119bは、2つのスペ
クトルデータaおよびbから、13以上の正の数Zに対
し、次の(12)式によって、インデックス値i5を生
成する。
【0135】 i5=(Z)*abs(a)+abs(b) …(12) そして、生成された各インデックス値i3、i4、i5
に基づいて、ROM117a〜119aに設けられた各
テーブルからハフマンコードブック1〜4によってデー
タを符号化した場合の符号長がそれぞれ求められる。
【0136】この場合も、図20に示すように、1つの
符号長算出装置120に、各ハフマンコードブック5〜
10によってデータをそれぞれ符号化した場合の符号長
が、共通のインデックス値に対してそれぞれ設定された
1つのテーブルを有するROM120aのみを設ける構
成としてもよい。
【0137】この場合、1つのインデックス値生成部1
20bは、隣接する2つのスペクトルデータをa、bと
したとき、5以上の正の数Zに対し、それぞれZビット
以上により表現されたaとbとをビット結合した値をイ
ンデックス値kとして生成する。すなわち、Zを5とし
た場合、例えば、次の(13)式に基づいてインデック
ス値kが生成される。
【0138】 k=((a&31)<<5)|((b&31) …(13) そして、このようにして生成されたインデックス値kに
基づいて、ROM120aに設けられた各テーブルから
ハフマンコードブック5〜10によってデータをそれぞ
れ符号化した場合の符号長がそれぞれ求められる。
【0139】次に、実際の符号長算出装置に内蔵されて
いるテーブルメモリの例について説明する。
【0140】図11は、ハフマンコードブック1〜4の
符号長算出のためのテーブルメモリの内容を示す。ハフ
マンコードブック1〜4は、それぞれ、隣接する4本の
スペクトルデータ(4タップルズ)を1グループとして
ハフマン符号化するためのハフマンコードブックであ
る。
【0141】図11において、左側の「adrs」の欄
には、テーブルメモリを引くためのアドレスが示されて
おり、右側の「data」の欄には、各ハフマンコード
ブックによってデータをそれぞれ符号化した場合の符号
長のデータが示されている。図11に示すテーブルメモ
リのアドレスは、隣接した4本のスペクトルデータの下
位2ビットをビット結合したものである。
【0142】図12は、図11のテーブルメモリに格納
されたデータの構成を示す。図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側にか
けて、順番に設けられている。
【0143】図11に示したテーブルメモリを用いて、
例えば、図5の第2グループ「sfb2」のスペクトル
データ(1,−1,1,0)をハフマン符号化した際の
符号長は、以下のように求められる。
【0144】まず、テーブルメモリを引くためのアドレ
スは、前記(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ビ
ット というように求められる。
【0145】図13は、2タップルズ(tupple
s)のデータに対するハフマンコードブック5〜10の
符号長算出のためのテーブルメモリの内容を示す。ハフ
マンコードブック5〜10は、隣接する2本のスペクト
ルデータを1グループとしてハフマン符号化するための
ハフマンコードブックである。
【0146】図11と同様に、図13において、左側の
「adrs」の欄には、テーブルメモリを引くためのア
ドレスが示されており、右側の欄の「data」の欄
は、各ハフマンコードブック5〜10による符号化後の
符号長を表すデータが示されている。図11に示すテー
ブルメモリのアドレスは、隣接した2本のスペクトルデ
ータの下位5ビットをビット結合したものである。
【0147】図14は、図13のテーブルメモリに格納
されたデータの構成を示す。図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」は、エス
ケープコードブックという特殊なコードブックであるの
でここでは除外している。
【0148】図13に示したテーブルメモリを用いて、
例えば、図5の第0番目のグループ「sfb0」のスペ
クトルデータ(4,−2,0,3)をハフマン符号化し
た場合の符号長は、以下のように求められる。
【0149】まず、1回目には、テーブルメモリを引く
ためのアドレスは、前記(13)式およびスペクトルデ
ータ(4,−2)から、 adrs=((4&31)<<5)|(−2&31) により与えられる。ここではadrs=h9eであるた
め、当該アドレスに対応するデータは、図13に示すよ
うに「h0c090b080b08」となる。
【0150】2回目には、テーブルメモリを引くための
アドレスは、スペクトルデータ(0,3)から、 adrs=((0&31)<<5)|(3&31) により与えられる。ここではadrs=h03であるた
め、当該アドレスに対応するデータは、図13に示すよ
うに、「h080708070907」となる。
【0151】そこで、1回目のデータ「h0c090b
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によ
ってデータをそれぞれハフマン符号化した場合の符号長
が求められる。
【0152】図12および図14に示すように、各ハフ
マンコードブックによってデータをそれぞれ符号化した
場合の符号長を、それぞれ、予め8ビットごとに区切っ
て格納することにより、図11および図13に示すテー
ブルメモリからそれぞれ読み出したデータをそのまま累
積加算しても、累積加算値がオーバフローするおそれが
ない。各スケールファクタバンド「sfb」毎のそれぞ
れのデータをハフマン符号化した後の符号長は、上述し
たように、デーブルデータを一回読み出せば求められる
というものではなく、順次読み出して、それを累積加算
することによって求められる。このために、読み出した
テーブルデータをその都度、各ハフマンコードブック毎
に分離して、それぞれ累積加算するよりは、読み出した
テーブルデータのままで、累積加算するほうが、演算量
の削減効果が大きい。そこで、テーブルメモリから読み
出したデータをそのまま累積加算しても値がオーバフロ
ーしないようにするために、予め各ハフマンコードブッ
クに対応する符号長を8ビットごとに区切って格納して
おり、8ビット毎に、マージンビットとして「0」を挿
入している。
【0153】なお、上記の例では、説明の簡単化と、図
面の見やすさのために、上記累積加算のためのマージン
を設けるために各符号長データを8ビットごとに区切っ
ているが、広帯域のAAC規格の符号化の際は、11ビ
ットごとに区切ることが適当である。その理由を以下に
述べる。
【0154】AAC規格の符号化においては、2tup
plesのデータをハフマン符号化した場合の符号長の
最長値は17であるので、5ビットで表現できる。例え
ば、ハフマンコードブック9のインデックス番号154
がそれにあたる。(ISO/IEC13818-7 Table A.10.Spectr
um Huffman Codebook 9 参照)。
【0155】ハフマンコードブック9のインデックス番
号154では、ハフマン符号の符号長のビット数は15
であるが、それに、サイン情報として2ビットが付加さ
れるために、ビット数は17となる。ビット数17は、
5ビットにて表されるために、5ビットに、マージンビ
ット6ビットを設けて、上記11ビットごとに区切られ
る。
【0156】マージンビットが6ビットである理由につ
いて、以下に述べる。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つ
のスケールファクタバンドに含まれる場合があり得るた
めである。
【0157】このように、データ数が128になる場
合、当該スケールファクタバンドのデータを、2tup
ples用のハフマンコードブックによって符号化する
場合、128/2=64回の累積が行われるので、マー
ジンビットとして、6ビット必要となる(6=log2
(64))。このように、最大ビット数を示す5ビット
と、マージンビットとしての6ビットとの合計の11ビ
ット毎に区切られる。
【0158】以上の理由によって、広帯域のAAC符号
化の際は、各符号長データを11ビットごとに区切るこ
とが適当であるが、符号化の帯域幅や、ショート窓時の
ウインドグループの制限を設けることによって、少なく
することもできる。
【0159】また、設計の簡単化の理由によって、11
ビット以上、例えば、12ビットごとに区切っても論理
的になんら支障をきたさないことは言うまでもない。
【0160】12ビットに区切る一例を、図15および
図16に示す。図15は、図13のテーブルを、12ビ
ットごとに区切りなおしたものであり、12ビット毎に
マージンビットとしての「0」が、それぞれ挿入されて
いる。図16は、図15のテーブルメモリに格納された
データの構成を示したものである。
【0161】
【発明の効果】本発明によれば、ハフマン符号化を行う
符号化装置において、複数のハフマンコードブックを用
いた場合のハフマン符号化後の符号長を同時に求めるこ
とができる。また、ハフマンコードブックがアンサイン
ドコードブックの場合であっても、テーブルを1回引く
ことにより、ハフマン符号の符号長にサイン情報のため
に必要なビット数を加算したものを同時に求めることが
できる。これにより、ハフマン符号化に必要な処理量を
大幅に削減することができる。
【0162】また、本発明によれば、ハフマンコードブ
ックのインデックス番号を符号化する際の符号長が短く
することにより、より効率のよいハフマン符号化を行う
ことができる。
【図面の簡単な説明】
【図1】本発明による符号化装置の構成を示すブロック
図である。
【図2】第1の符号長算出装置に内蔵されたテーブルメ
モリの内容を示す表である。
【図3】第2の符号長算出装置に内蔵されたテーブルメ
モリの内容を示す表である。
【図4】量子化されたスペクトルデータをグループに分
割するための区切り方の定義を示す図である。
【図5】量子化及びグループ化されたスペクトルデータ
がメモリに格納された状態の一例を示す図である。
【図6】第1のハフマンコードブックの内容である、M
PEG2−AAC規格のハフマンコードブック3を示す
図である。
【図7】第2のハフマンコードブックの内容である、M
PEG2−AAC規格のハフマンコードブック4を示す
図である。
【図8】第3のハフマンコードブックの内容である、M
PEG2−AAC規格のハフマンコードブック5を示す
図である。
【図9】第4のハフマンコードブックの内容である、M
PEG2−AAC規格のハフマンコードブック6を示す
図である。
【図10】MPEG2−AAC符号化方式において用い
られるスペクトラムハフマンコードブックパラメータを
示す図である。
【図11】ハフマンコードブック1〜4の符号長算出の
ためのテーブルメモリの内容を示す図である。
【図12】図11のテーブルメモリに格納されたデータ
の構成を示す図である。
【図13】ハフマンコードブック5〜10の符号長算出
のためのテーブルメモリの内容を示す図である。
【図14】図13のテーブルメモリに格納されたデータ
の構成を示す図である。
【図15】図13のテーブルを、12ビットごとに区切
りなおした図である。
【図16】図15のテーブルメモリに格納されたデータ
の構成を示す図である。
【図17】本発明による符号化装置の構成の他の例を示
す要部のブロック図である。
【図18】本発明による符号化装置の構成のさらに他の
例を示す要部のブロック図である。
【図19】本発明による符号化装置の構成のさらに他の
例を示す要部のブロック図である。
【図20】本発明による符号化装置の構成のさらに他の
例を示す要部のブロック図である。
【符号の説明】
100 第1のメモリ 101 第2のメモリ 102 第3のメモリ 103 第Gのメモリ 104 第1のハフマンコードブック 105 第2のハフマンコードブック 106 第3のハフマンコードブック 107 第Hのハフマンコードブック 108 ハフマンコードブック選択装置 109 第1のハフマン符号化装置 110 第2のハフマン符号化装置 111 第3のハフマン符号化装置 112 第Gのハフマン符号化装置 113 インデックス番号符号化装置 114 第1の符号長算出装置 114a ROM 114b インデックス値生成部 115 第2の符号長算出装置 115a ROM 115b インデックス値生成部 116 制御装置 117 符号長算出装置 117a ROM 117b インデックス値生成部 118 符号長算出装置 118a ROM 118b インデックス値生成部 119 符号長算出装置 119a ROM 119b インデックス値生成部 120 符号長算出装置 120a ROM 120b インデックス値生成部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 津島 峰生 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 石川 智一 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 澤田 慶昭 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5D045 DA20 5J064 AA03 BA09 BB05 BC01 BC02 BC25 BD01 9A001 EE02 EE04 HH15

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】 G個のグループ(Gは1以上の整数)に
    分割されたデータのそれぞれを格納するG個の記憶部
    と、 前記各記憶部にそれぞれ格納された各グループのそれぞ
    れについて、インデックス番号をそれぞれ有するH個の
    ハフマンコードブック(Hは1以上の整数)の中から1
    つのハフマンコードブックを選択するハフマンコードブ
    ック選択部と、 このハフマンコードブック選択部にて各グループ毎にそ
    れぞれ選択されたハフマンコードブックを用いて、各グ
    ループのデータをそれぞれハフマン符号化するG個のハ
    フマン符号化部と、 前記ハフマンコードブック選択部が選択した各ハフマン
    コードブックのインデックス番号をそれぞれ符号化する
    インデックス番号符号化部と、 を備えた符号化装置であって、 前記ハフマンコードブック選択部は、各ハフマンコード
    ブックによって各グループのデータをハフマン符号化し
    た場合に得られる符号長が各ハフマンコードブック毎に
    それぞれ設定された符号長算出部と、該符号長算出部に
    て設定された符号長に基づいて、各グループ毎のデータ
    に適したハフマンコードブックを選択する制御部とを有
    しており、 前記ハフマンコードブックがアンサインドコードブック
    の場合には、前記符号長設定部に設定される符号長に、
    サイン情報のために必要とするビット数が予め加算され
    ていることを特徴とする符号化装置。
  2. 【請求項2】 前記符号長算出部は、各ハフマンコード
    ブック毎に前記符号長が予め設定されたテーブルデータ
    を有している請求項1に記載の符号化装置。
  3. 【請求項3】 G個のグループ(Gは1以上の整数)に
    分割されたデータのそれぞれを格納するG個の記憶部
    と、 前記各記憶部にそれぞれ格納された各グループのそれぞ
    れについて、インデックス番号をそれぞれ有するH個の
    ハフマンコードブック(Hは1以上の整数)の中から1
    つのハフマンコードブックを選択するハフマンコードブ
    ック選択部と、このハフマンコードブック選択部にて各
    グループ毎にそれぞれ選択されたハフマンコードブック
    を用いて、各グループのデータをそれぞれハフマン符号
    化するG個のハフマン符号化部と、 前記ハフマンコードブック選択部が選択した各ハフマン
    コードブックのインデックス番号をそれぞれ符号化する
    インデックス番号符号化部と、 を備えた符号化装置であって、 前記ハフマンコードブック選択部は、各ハフマンコード
    ブックによって各グループのデータをハフマン符号化し
    た場合に得られる符号長が各ハフマンコードブック毎に
    それぞれ設定された符号長算出部と、該符号長算出部に
    て設定された符号長に基づいて、各グループ毎のデータ
    に適したハフマンコードブックを選択する制御部とを有
    しており、 前記符号長算出部は、複数のハフマンコードブックに対
    する符号長を同時に求めることができることを特徴とす
    る符号化装置。
  4. 【請求項4】 前記符号長算出部は、1つのグループの
    データに対して複数のハフマンコードブックによって符
    号化した場合の符号長をそれぞれ出力するようになって
    おり、前記制御部は、該符号長算出部にて出力される符
    号長が最も短いハフマンコードブックを選択する請求項
    1〜3のいずれかに記載の符号化装置。
  5. 【請求項5】 前記符号長算出部は、1つのグループの
    データに対して複数のハフマンコードブックによって符
    号化した場合の符号長をそれぞれ出力するようになって
    おり、前記制御部は、該符号長算出部から出力される各
    ハフマンコードブックの符号長に、各ハフマンコードブ
    ックのインデックス番号をそれぞれ考慮して1つのハフ
    マンコードブックを選択する、請求項1〜3のいずれか
    に記載の符号化装置。
  6. 【請求項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. 【請求項7】 前記制御部は、第1番目のグループに対
    するハフマンコードブックとして、前記符号長算出部か
    ら出力される符号長が最も短いハフマンコードブックの
    インデックス番号を選択する請求項6に記載の符号化装
    置。
  8. 【請求項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. 【請求項9】 前記制御部は、第G番目のグループに対
    するハフマンコードブックとして、前記符号長算出部か
    ら出力される符号長が最も短いハフマンコードブックの
    インデックス番号を選択する、請求項8に記載の符号化
    装置。
  10. 【請求項10】 前記インデックス番号符号化部は、デ
    ータの1つのグループに対して選択されているインデッ
    クス番号と同じインデックス番号が、そのグループに連
    続するデータのグループに対して選択されている場合
    に、そのインデックス番号と、連続しているグループの
    数とを、前記数値Aのビット数で符号化する、請求項6
    〜9のいずれかに記載の符号化装置。
  11. 【請求項11】 前記H個のハフマンコードブックは、
    MPEG2−AAC規格で定義されている、スペクトル
    データをハフマン符号化するための11個のハフマンコ
    ードブックである、請求項3に記載の符号化装置。
  12. 【請求項12】 前記符号長算出部は、MPEG2−A
    AC規格で定義されたハフマンコードブック1〜4によ
    ってそれぞれデータを符号化した場合の符号長を出力す
    るようになっており、各ハフマンコードブック1および
    2によってデータを符号化した場合の符号長が、共通の
    インデックス値に対応してそれぞれ設定された第1テー
    ブルと、各ハフマンコードブック3および4に対する符
    号長が、共通のインデックス値に対応してそれぞれ設定
    された第2のテーブルとを有している、請求項11に記
    載の符号化装置。
  13. 【請求項13】 前記第2テーブルに設定された各フマ
    ンコードブック3および4それぞれに対応した符号長に
    は、サイン情報のために必要とするビット数がそれぞれ
    予め加算されている請求項12に記載の符号化装置。
  14. 【請求項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. 【請求項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. 【請求項16】 前記インデックス値i1は、2以上の
    正の数Xに対し、それぞれXビット以上により表現され
    たaとbとcとdとをビット結合した値であり、前記イ
    ンデックス値i2は、2以上の正の数Yに対し、それぞ
    れYビット以上により表現されたabs(a)とabs
    (b)とabs(c)とabs(d)とをビット結合し
    た値である、請求項14に記載の符号化装置。
  17. 【請求項17】 前記符号長算出部は、MPEG2−A
    AC規格のハフマンコードブック1〜4によってそれぞ
    れデータを符号化した場合の符号長を出力するようにな
    っており、各ハフマンコードブック1〜4によってデー
    タを符号化した場合の符号長が、共通のインデックス値
    に対応してそれぞれ設定された1つのテーブルを有して
    いる請求項11に記載の符号化装置。
  18. 【請求項18】 前記第2テーブルに設定された各フマ
    ンコードブック3および4それぞれに対する符号長に
    は、サイン情報のために必要とするビット数がそれぞれ
    予め加算されている請求項17に記載の符号化装置。
  19. 【請求項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. 【請求項20】 前記インデックス値jは、2以上の正
    の数Yに対し、それぞれYビット以上により表現された
    aとbとcとdとをビット結合した値である、請求項1
    9に記載の符号化装置。
  21. 【請求項21】 前記符号長算出部は、MPEG2−A
    AC規格のハフマンコードブック5〜10によってそれ
    ぞれ符号化された場合の符号長を出力するようになって
    おり、各ハフマンコードブック5および6によってそれ
    ぞれ符号化された場合の符号長が、共通のインデックス
    値に対応してそれぞれ設定された第1のテーブルと、各
    ハフマンコードブック7および8によってそれぞれ符号
    化された場合の符号長が、共通のインデックス値に対応
    してそれぞれ設定された第2のテーブルと、さらに、各
    ハフマンコードブック9および10によってそれぞれ符
    号化された場合の符号長が、共通のインデックス値に対
    応してそれぞれ設定された第3のテーブルとを有してい
    る請求項11に記載の符号化装置。
  22. 【請求項22】 前記第2テーブルに設定された各ハフ
    マンコードブック7および8それぞれに対応した符号長
    には、サイン情報のために必要とするビット数がそれぞ
    れ予め加算されており、前記第3テーブルに設定された
    各ハフマンコードブック9および10それぞれに対応し
    た符号長には、サイン情報のために必要とするビット数
    がそれぞれ予め加算されている請求項21に記載の符号
    化装置。
  23. 【請求項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. 【請求項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. 【請求項25】 前記インデックス値i3は、4以上の
    正の数Xに対し、それぞれXビット以上により表現され
    たaとbとをビット結合した値であり、 前記インデックス値i4は、4以上の正の数Yに対し、
    それぞれYビット以上により表現されたaとbとをビッ
    ト結合した値であり、 前記インデックス値i5は、5以上の正の数Zに対し、
    それぞれZビット以上により表現されたaとbとをビッ
    ト結合した値である、請求項24に記載の符号化装置。
  26. 【請求項26】 前記符号長算出部は、MPEG2−A
    AC規格のハフマンコードブック5〜10によってデー
    タをそれぞれ符号化した場合の符号長を出力するように
    なっており、各ハフマンコードブック5〜10によって
    データをそれぞれ符号化した場合の符号長が、共通のイ
    ンデックス値に対応してそれぞれ設定された1つのテー
    ブルに保持されている請求項11に記載の符号化装置。
  27. 【請求項27】 前記テーブルにて設定された各ハフマ
    ンコードブック7〜10それぞれによって符号化した場
    合の符号長には、サイン情報のために必要とするビット
    数がそれぞれ予め加算されている請求項26に記載の符
    号化装置。
  28. 【請求項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. 【請求項29】 前記インデックス値kは、5以上の正
    の数Zに対し、それぞれZビット以上により表現された
    aとbとをビット結合した値である、請求項28に記載
    の符号化装置。
  30. 【請求項30】 前記符号長算出部は、入力されたデー
    タの値が、いずれかのハフマンコードブックによってデ
    ータを符号化した場合の符号長を算出できない変域外の
    値の場合には、該当するハフマンコードブックが無効で
    あることを示す値を出力し、前記制御部は、その無効を
    示す値を受けとった場合に、無効な値によって示された
    ハフマンコードブックを選択しないようになっている、
    請求項12〜29のいずれかに記載の符号化装置。
  31. 【請求項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. 【請求項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. 【請求項33】 前記G個の各グループに含まれるデー
    タの個数の最大値を4で割った値をn1とすると、上記
    m1の値は、n1に対する底が2の対数(log2(n
    1))を演算して、その演算値の小数点以下を切り上げ
    て整数化した値である請求項31または32記載の符号
    化装置。
  34. 【請求項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. 【請求項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. 【請求項36】 前記G個の各グループに含まれるデー
    タの個数の最大値を2で割った値をn2とすると、前記
    m2の値は、n2の値に対する底が2の対数(log2(n
    2))を演算して、その演算値の小数点以下を切り上げ
    て整数化した値である請求項34または35に記載の符
    号化装置。
JP35819499A 1999-04-20 1999-12-16 符号化装置 Expired - Fee Related JP3323175B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (11)

* Cited by examiner, † Cited by third party
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