JP3419371B2 - 符号長計算装置、及び符号化装置 - Google Patents

符号長計算装置、及び符号化装置

Info

Publication number
JP3419371B2
JP3419371B2 JP37404999A JP37404999A JP3419371B2 JP 3419371 B2 JP3419371 B2 JP 3419371B2 JP 37404999 A JP37404999 A JP 37404999A JP 37404999 A JP37404999 A JP 37404999A JP 3419371 B2 JP3419371 B2 JP 3419371B2
Authority
JP
Japan
Prior art keywords
data
code length
address
value
output
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.)
Expired - Fee Related
Application number
JP37404999A
Other languages
English (en)
Other versions
JP2001189663A (ja
Inventor
正一 藤本
道弘 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP37404999A priority Critical patent/JP3419371B2/ja
Publication of JP2001189663A publication Critical patent/JP2001189663A/ja
Application granted granted Critical
Publication of JP3419371B2 publication Critical patent/JP3419371B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データの符号長計
算装置、及び符号化装置に関し、特に複数のデータを組
み合わせて変換して生成したインデックスをハフマン符
号化するときの符号長を求める符号長計算装置、及び複
数のハフマンコードブックの中から最適なハフマンコー
ドブックを選択して、ハフマン符号化する符号化装置に
関する。
【0002】
【従来の技術】現在のAVシステムは、信号をディジタ
ル信号として扱うことが多い。ディジタル信号は、アナ
ログ信号に比べて周囲の雑音に強く、記録媒体に記憶さ
せたり、信号を伝送させた場合でも、コンパクトディス
ク(CD:Compact Disc)やDVDのよう
に極めて良好に信号を再生することができる。
【0003】また、ディジタルデータを記録媒体に記憶
させる場合や信号伝送する場合に、多くのデータを記録
または伝送可能とするため、ディジタルデータの圧縮が
行われる。このような圧縮技術の標準化団体として設立
されたのがMPEG(Moving Picture
Experts Group)であり、その中で動画像
の圧縮方法として規格化されたものがMPEG−1,M
PEG−2であり、音声の圧縮方法として規格化された
ものがMPEG−AudioやMPEG−2AAC(A
dvanced Audio Coding)規格(以
下、AACと略す)である。これらの音声圧縮方式では
基本的に、まず人間の聴覚のモデルに基づいて非可逆圧
縮が行われ、その後エントロピー符号による可逆圧縮が
行われる。MPEG−AudioやAACでは、ハフマ
ン符号がエントロピー符号として使われる。
【0004】図36は、AACにおける符号化の処理の
概要を説明するためのフローチャートである(ISO/
IEC 13818−7参照)。まず、ステップS20
1において、符号化される音声データは、MDCTによ
り周波数分析されて、時系列のデータから周波数系列の
データに変換される。次に、ステップS202では、人
間の耳には聞こえないノイズの量を計算することにより
聴覚モデルが作成される。そして、ステップS203で
は、周波数系列のデータを係数とスケールファクタとに
分割し、ステップS202で作成された聴覚モデルに基
づいてデータ量を削減する。さらに、求めた係数の絶対
値を3/4乗するなどをして量子化を行う。ステップS
204では、量子化したデータを、11個あるハフマン
コードブックの中から最適なものを使ってハフマン符号
化したときの符号長を求める。ステップS205では、
ステップS204で求めたハフマン符号化した後の符号
長が要求されるビット長以下であり、かつ、量子化した
ノイズが許容した範囲であるか否かを判断し、条件を満
たさない場合はステップS203へ戻って量子化からや
り直す。条件を満たす場合は、ステップS206に進
み、量子化した係数とスケールファクタとに対しハフマ
ン符号化を行う。ステップS207では、ビットストリ
ームを生成して、蓄積メディアやインターネットなどの
通信路に送り出す。
【0005】次に、AACによるハフマン符号化の方法
をより詳しく説明する。まず、4個の量子化したスペク
トルデータを4個まとめるか、2個ずつに分けたものを
まとめるかしてインデックスを生成する。次に、11個
の規定されたハフマンコードブックの中から最も短く符
号化できるコードブックを選んでインデックスを符号化
する。その符号化において、使用することのできるハフ
マンコードブックは、量子化したスペクトルデータの絶
対値の最大値により決まる。
【0006】図37は、各ハフマンコードブックの番号
に対応して、それぞれのハフマンコードブックを用いた
符号化のときの、データの絶対値の最大値、インデック
ス生成時にまとめるデータの個数、インデックスの生成
式、及びデータに符号が含まれるか否かを示す図であ
る。コードブック3,4,7,8,9,10,11で
は、データの絶対値のみがハフマン符号化され、非ゼロ
のスペクトルデータのときのみ正負の符号を表すビット
が付け加わる。11個のコードブックの内、11番目の
コードブックで符号化する場合だけが特殊である。コー
ドブック11で符号化する場合のみ、絶対値が16以上
の量子化された係数をハフマン符号化することができ
る。もし、係数の一つまたは両方の絶対値が16以上で
あるならば、エスケープコードを使った方法で符号化す
る。
【0007】次に、各コードブック毎の符号化について
説明する。図38は、コードブック1,2(図38
(a))、及びコードブック3,4(図38(b))に
よるハフマン符号化後のデータ構造を示す図である。ま
ず、コードブック1,2で符号化する場合について説明
する。量子化した4個のスペクトルデータW,X,Y,
Zから図37のindexの生成式を使ってindex
を生成する。そして、indexに対応する符号(co
deword)を使用するコードブックにより求める。
この求まった符号がコードブック1,2で符号化した場
合の符号である。また、求まった符号の長さがコードブ
ック1,2で符号化した場合の符号長である。
【0008】次に、コードブック3,4で符号化する場
合について説明する。量子化した4個のスペクトルデー
タW,X,Y,Zの絶対値から図37のindexの生
成式を使ってindexを生成する。そして、inde
xに対応する符号(codeword)を使用するコー
ドブックにより求める。この求まった符号(codew
ord)に、量子化したスペクトルデータW,X,Y,
Zの中で、ゼロでないスペクトルデータのサイン情報を
表すsignW,signX,signY,signZ
のビットが付く。なお、量子化したスペクトルデータ
W,X,Y,Zの内でゼロであるものにはサイン情報を
表すビットは付かない。コードブックによる符号(co
deword)にサイン情報を表すビットが付いたもの
が、コードブック3,4で符号化した場合の符号であ
る。また、コードブックによる符号(codewor
d)の長さに、サイン情報を表すビットの長さを足した
ものがコードブック3,4で符号化した場合の符号長で
ある。
【0009】図39は、コードブック5,6(図39
(a))、コードブック7,8,9,10(図39
(b))、及びコードブック11(図39(c))によ
るハフマン符号化後のデータ構造を示す図である。ま
ず、コードブック5,6で符号化する場合について説明
する。量子化した4個のスペクトルデータを2個ずつに
分け、両組みとも同じように符号化する。2個に分けた
量子化後のスペクトルデータY,Zのデータから図37
のindexの生成式を使ってindexを生成する。
そして、indexに対応する符号(codewor
d)を使用するハフマンコードブックにより求める。求
まった符号がコードブック5,6で符号化した場合の符
号である。また、求まった符号の長さがコードブック
5,6で符号化した場合の符号長である。
【0010】次に、コードブック7,8,9,10で符
号化する場合について説明する。量子化した4個のスペ
クトルデータを2個ずつに分け、両組みとも同じように
符号化する。2個に分けた量子化後のスペクトルデータ
Y,Zの絶対値から図37のindexの生成式を使っ
てindexを生成する。そして、indexに対応す
る符号(codeword)を使用するコードブックに
より求める。この求まった符号(codeword)
に、量子化したスペクトルデータY,Zの中で、ゼロで
ないスペクトルデータのサイン情報を表すsignY,
signZのビットが付く。なお、量子化したスペクト
ルデータY,Zの内でゼロであるものにはサイン情報を
表すビットは付かない。コードブックによる符号(co
deword)にサイン情報を表すビットが付いたもの
が、コードブック7,8,9,10で符号化した場合の
符号である。また、コードブックによる符号(code
word)の長さに、サイン情報を表すビットの長さを
足したものがコードブック7,8,9,10で符号化し
た場合の符号長である。
【0011】さらに、コードブック11で符号化する場
合について説明する。量子化した4個のスペクトルデー
タを2個ずつに分け、両組みとも同じように符号化す
る。2個に分けた量子化後のスペクトルデータY,Zの
絶対値が16未満の場合は、コードブック7,8,9,
10で符号化する場合と同じである。量子化後のスペク
トルデータY,Zの絶対値が16以上の場合は値を16
に置き換えて、図37のindexの生成式を使ってi
ndexを生成する。その後、indexに対応する符
号(codeword)を使用するハフマンコードブッ
クにより求める。サイン情報を表すビットが付くのは、
コードブック7,8,9,10の場合と同じである。量
子化後のスペクトルデータY,Zの絶対値が16以上の
場合は、絶対値が16以上の各々の値を符号化したエス
ケープコードが、サイン情報を表すビットの後ろに付
く。コードブックによる符号(codeword)に、
サイン情報を表すビット、エスケープコードを付けたも
のが、コードブック11で符号化した場合の符号であ
る。また、コードブックによる符号(codewor
d)の長さに、サイン情報を表すビットの長さとエスケ
ープコードの長さを足したものがコードブック11で符
号化した場合の符号長である。
【0012】以上で示した方法により、各コードブック
によるハフマン符号化を実行することができる。ハフマ
ン符号化においては、基本的に最も少ないビット数で符
号化できるコードブックを選択する。また、同じコード
ブックを続けて使用することにより、コードブックを識
別する情報を削減でき、より少ないビットで符号化する
ことができる。さらに詳しい方法は、「アイエスオー/
アイイーシー 13818−7ノイズレス コーディン
グ付録B 2.8」(ISO/IEC 13818−7
ANNEX B 2.8 Noiseless Co
ding)に述べられている。
【0013】ところで、図36に示されるようにAAC
ではハフマン符号の符号長を調べる処理は繰り返し行わ
れる。しかも、処理自体も複雑な処理である。そこで処
理量が膨大になり、通常の方法では実現が困難であっ
た。そのため、本出願人からもMPEG−2 AAC規
格のハフマンコードブック1から10までの場合の符号
長計算装置が従来から提案されている。
【0014】以下、従来の符号長計算装置を使ったAA
Cの符号化装置について図面を参照しながら説明する。
図40は、従来の符号長計算装置を用いたAACの符号
化装置を示すブロック図である。なお、数の表記とし
て、2進数で表すときは数の前に「0b」、16進数で
表すときは数の前に「0x」を付けるものとする。何も
ついていない数表記は10進数であるとする。例えば、
10進数での「10」は、5ビットの2進数表記では
「0b01010」であり、16進数表記では「0x0
a」である。また、10進数での「−1」は、5ビット
の2進数表記では「0b11111」である。また、判
別しやすいように数の間に「_」を入れることができる
ものとする。つまり、「0x74」は、「0b0111
0100」、あるいは「0b0111_0100」と書
くことができるとする。
【0015】また、ビット演算をするときの演算子とし
て、「&」をビット毎の論理積、「|」をビット毎の論
理和、「<<」を左シフトと定義する。従来の符号化装
置は、48ビットのデータバスを備えるプロセッサ51
と、データを保持するメモリ3と、ハフマン符号化後の
符号長の値を計算する従来の符号長計算装置52とを備
える。プロセッサ51は、コードブック1から10まで
を用いて符号化した場合の符号長を求める処理以外の処
理を、コードブック11で符号化した場合の符号長を求
める処理をも含めて行う。メモリ3は、量子化前後のス
ペクトルデータや符号化後のストリームデータや量子化
のためのテーブルを保持する。符号長計算装置52は、
コードブック1から10により符号化した場合の符号長
を求める処理を行う。
【0016】図41は、符号長計算装置52の構成を示
すブロック図である。符号長計算装置52は、4個の入
力レジスタ53,54,55,56と、第1のビット連
結部57と、第2のビット連結部58と、第3のビット
連結部59と、第1のROM60と、第2のROM61
と、第3のROM62と、3個の出力レジスタ63,6
4,65とを備える。4個の入力レジスタ53,54,
55,56は、プロセッサ51から送られてくるデータ
の下位5ビットを取り込む。出力レジスタ63は、32
ビットのレジスタであり、プロセッサ51にデータを送
るときは上位16ビットに「0」をセットする。出力レ
ジスタ64,65は、48ビットのレジスタである。
【0017】第1のビット連結部57は、入力レジスタ
53,54,55,56の下位2ビットを連結した値を
第1のROM60のアドレスとして出力する。入力レジ
スタ53,54,55,56の値をA,B,C,Dとす
ると、アドレスaddressは、 address=(A&0x3)<<6|(B&0x
3)<<4|(C&0x3) <<2|(D&0x3) となる。第2のビット連結部58は、入力レジスタ5
3,54の5ビットを連結した値を第2のROM61の
アドレスとして出力する。入力レジスタ53,54の値
をA,Bとすると、アドレスaddressは、 address=(A&0x1f)<<5|(B&0x
1f) となる。第3のビット連結部59は、入力レジスタ5
5,56の5ビットを連結した値を第3のROM62の
アドレスとして出力する。入力レジスタ55,56の値
をC,Dとすると、アドレスaddressは、 address=(C&0x1f)<<5|(D&0x
1f) となる。
【0018】図42は、第1のROM60に保持されて
いるデータの一部を示す図である。なお、第1のROM
60に保持されているデータは全部で256ワードであ
る。図42において、左の列のaddressは、第1
のビット連結部57から出力されるアドレスであり、右
の列のdataはハフマンコードブック1,2,3,4
による符号化後の符号長を表す32ビットのデータであ
る。図43は、第1のROM60に格納されたデータの
構成を示す図である。
【0019】図43において、最上位の8ビットである
HCB1は、入力レジスタ53,54,55,56の値
をハフマンコードブック1でハフマンエンコードした後
の符号長を表している。
【0020】同様に、以下8ビット毎に、HCB2,H
CB3,HCB4は、それぞれハフマンコードブック
2,3,4でハフマンエンコードした後の符号長を表し
ている。ハフマンコードブック3,4に対応する符号長
にはサイン情報を表すビットの符号長も含まれている。
【0021】図44は、第2のROM61に保持されて
いるデータの一部を示す図である。なお、第2のROM
61に保持されているデータは全部で1024ワードで
ある。図44において、左の列のaddressは、第
2のビット連結部58から出力されるアドレスであり、
右の列のdataはハフマンコードブック5,6,7,
8,9,10による符号化後の符号長を表す48ビット
のデータである。図45は、第2のROM61に格納さ
れたデータの構成を示す図である。
【0022】図45において、最上位の8ビットである
HCB5は、入力レジスタ53,54の値をハフマンコ
ードブック5でハフマンエンコードした後の符号長を表
している。
【0023】同様に、以下8ビット毎に、HCB6,H
CB7,HCB8,HCB9,HCB10は、それぞれ
ハフマンコードブック6,7,8,9,10でハフマン
エンコードした後の符号長を表している。ハフマンコー
ドブック7,8,9,10に対応する符号長にはサイン
情報を表すビットの符号長も含まれている。第3のRO
M62に保持されているデータは、第2のROM61に
保持されているデータと同じものである。
【0024】次に、従来のAACの符号化装置の動作に
ついて説明する。図46は、従来のAACの符号化装置
の動作を示すフローチャートである。なお、特に記述さ
れている場合以外は、処理はプロセッサ51により行わ
れる。まず、ステップS301で、入力されたオーディ
オ信号は、メモリ3に貯えられMDCTにより周波数分
析されて、時系列のデータから周波数系列のデータに変
換される。次に、ステップS302で、人間の耳には聞
こえないノイズの量を計算することにより、聴覚モデル
を作成する。そして、ステップS303で、データを係
数とスケールファクタとに分割し、ステップS302で
作成した聴覚モデルに基づいてデータ量を削減する。さ
らに、求めたスペクトルデータに対し3/4乗するなど
の処理により量子化を行う。ここでは、スペクトルデー
タの絶対値を求め、その絶対値によりメモリ3内のテー
ブルを引いて、3/4乗した値の絶対値を量子化した値
を求める。
【0025】データを3/4乗する方法としては、近似
式を用いる方法と、テーブル引きを用いる方法とがあ
る。近似式を用いる方法は、多くの処理を必要とし、通
常の符号化装置では用いられない。テーブル引きを用い
る方法は、予め計算した値を保持しているテーブルを参
照する方法である。この方法では、予め値を計算してい
るので、高速に値を求めることができる。
【0026】ステップS304では、サイン符号無しの
量子化後のスペクトルデータから量子化前の符号付きの
スペクトルデータのサイン情報により、サイン符号付き
の量子化後のスペクトルデータを生成する。ステップS
305では、4個のサイン符号付きの量子化後のスペク
トルデータを符号長計算装置52の入力レジスタ53,
54,55,56に入力する。そして、符号長計算装置
52により、ハフマンコードブック1から4で符号化し
た場合の符号長をまとめた値を出力レジスタ63に、入
力レジスタ53,54に書き込んだ値をハフマンコード
ブック5から10で符号化した場合の符号長をまとめた
値を出力レジスタ64に、入力レジスタ55,56に書
き込んだ値をハフマンコードブック5から10で符号化
した場合の符号長をまとめた値を出力レジスタ65に得
る。
【0027】ステップS306では、出力レジスタ6
4,65の値を合計し、前記4個のサイン符号付きの量
子化後のスペクトルデータを、ハフマンコードブック5
から10で符号化した場合の符号長を計算する。ステッ
プS307では、得た値を8ビット毎に分解することに
より、個々の1から10までのハフマンコードブックで
符号化した符号長を得る。ステップS308では、ハフ
マンコードブック11でハフマン符号化した場合の符号
長を求める。ステップS309では、必要であれば、プ
ロセッサ51によりエスケープコード分の符号長を求め
る。ステップS310では、前記4個のスペクトルデー
タの絶対値の最大値を求め、使うことのできるハフマン
コードブックを調べる。
【0028】ステップS311では、使うことのできる
ハフマンコードブックの中で、もっとも符号化後の符号
長が短いハフマンコードブックと、そのハフマンコード
ブックで符号化した場合の符号長とを求める。ステップ
S312では、ハフマン符号化した後の符号長が要求さ
れるビット長以下であり、かつ、量子化したノイズが許
容した範囲であるか否かを判断し、条件を満たさない場
合はステップS303へ戻って量子化からやり直す。条
件を満たす場合はステップS313に進む。ステップS
313では、量子化した係数とスケールファクタとに対
しハフマン符号化を行う。ステップS314では、ビッ
トストリームを生成して、蓄積メディアやインターネッ
トなどの通信路に送り出す。
【0029】次に、ステップS305ないしS310に
おける、符号長計算装置52、及びプロセッサ51の動
作について、具体例を用いて説明する。まず、4個のサ
イン符号付きの量子化後スペクトルデータとして、 「1(0x000000000001)」 「−1(0xffffffffffff)」 「1(0x000000000001)」 「0(0x000000000000)」 が、符号長計算装置52に入力される場合について説明
する。
【0030】図47は、上記の量子化後のスペクトルデ
ータが符号長計算装置52に入力された場合の、各レジ
スタや、連結部、あるいはROMの出力を示した図であ
る。
【0031】プロセッサ51は、サイン符号付きの量子
化後スペクトルデータを入力レジスタ53,54,5
5,56に順次書き込む。入力レジスタ53,54,5
5,56には下位5ビットが取り込まれるので、入力レ
ジスタ53,54,55,56のそれぞれの値は、「0
b00001」、「0b11111」、「0b0000
1」、「0b00000」となる。
【0032】第1のビット連結部57は、入力レジスタ
53の下位2ビット「0b01」と、入力レジスタ54
の下位2ビット「0b11」と、入力レジスタ55の下
位2ビット「0b01」と、入力レジスタ56の下位2
ビット「0b00」とを連結した値、「0x74(0b
01_11_01_00)」を出力する。図42のテー
ブルより、該当するアドレスに対応するデータは、「0
x09070907」であるので、第1のROM60
は、「0x09070907」を出力する。よって、出
力レジスタ63には、「0x09070907」が取り
込まれる。
【0033】第2のビット連結部58は、入力レジスタ
53の5ビット「0b00001」と、入力レジスタ5
4の5ビット「0b11111」とを連結した値、「0
x03f(0b00001_11111)」を出力す
る。図44のテーブルより、該当するアドレスに対応す
るデータは、「0x050406050606」である
ので、第2のROM61は、「0x050406050
606」を出力する。よって、出力レジスタ64には、
「0x050406050606」が取り込まれる。
【0034】第3のビット連結部59は、入力レジスタ
55の5ビット「0b00001」と、入力レジスタ5
6の5ビット「0b00000」とを連結した値、「0
x020(0b00001_00000)」を出力す
る。図44のテーブルより、該当するアドレスに対応す
るデータは、「0x040404050406」である
ので、第3のROM62は、「0x040404050
406」を出力する。よって、出力レジスタ65には、
「0x040404050406」が取り込まれる。
【0035】次に、ステップS306において、プロセ
ッサ51は、出力レジスタ64と出力レジスタ65との
値を合計し、「0x09080a0a0a0c」を得
る。そして、ステップS307において、プロセッサ5
1で出力レジスタ63の値、及び出力レジスタ64と、
出力レジスタ65との値の合計を、8ビット毎に分解す
ることにより、ハフマンコードブック1から10により
符号化した符号長としてそれぞれ「9」、「7」、
「9」、「7」、「9」、「8」、「10」、「1
0」、「10」、「12」を得る。なお、4つの量子化
後スペクトルデータの絶対値の最大値は1であるので、
図37よりステップS311では、ハフマンコードブッ
ク1〜11の中からいずれかを選択できる。
【0036】次に、4個のサイン符号付きの量子化後ス
ペクトルデータとして、 「4(0x000000000004)」 「−2(0xfffffffffffe)」 「0(0x000000000000)」 「3(0x000000000003)」 が、符号長計算装置52に入力される場合について説明
する。
【0037】図48は、上記の量子化後のスペクトルデ
ータが符号長計算装置52に入力された場合の、各レジ
スタや、連結部、あるいはROMの出力を示した図であ
る。
【0038】プロセッサ51は、サイン符号付きの量子
化後スペクトルデータを入力レジスタ53,54,5
5,56に順次書き込む。入力レジスタ53,54,5
5,56には下位5ビットが取り込まれるので、入力レ
ジスタ53,54,55,56のそれぞれの値は、「0
b00100」、「0b11110」、「0b0000
0」、「0b00011」となる。
【0039】第1のビット連結部57は、入力レジスタ
53の下位2ビット「0b00」と、入力レジスタ54
の下位2ビット「0b10」と、入力レジスタ55の下
位2ビット「0b00」と、入力レジスタ56の下位2
ビット「0b11」とを連結した値、「0x23(0b
00_10_00_11)」を出力する。図42のテー
ブルより、該当するアドレスに対応するデータは、「0
x00000c0a」であるので、第1のROM60
は、「0x00000c0a」を出力する。よって、出
力レジスタ63には、「0x00000c0a」が取り
込まれる。
【0040】第2のビット連結部58は、入力レジスタ
53の5ビット「0b00100」と、入力レジスタ5
4の5ビット「0b11110」とを連結した値、「0
x09e(0b00100_11110)」を出力す
る。図44のテーブルより、該当するアドレスに対応す
るデータは、「0x0c090b080b08」である
ので、第2のROM61は、「0x0c090b080
b08」を出力する。よって、出力レジスタ64には、
「0x0c090b080b08」が取り込まれる。
【0041】第3のビット連結部59は、入力レジスタ
55の5ビット「0b00000」と、入力レジスタ5
6の5ビット「0b00011」とを連結した値、「0
x003(0b00000_00011)」を出力す
る。図44のテーブルより、該当するアドレスに対応す
るデータは、「0x080708070907」である
ので、第3のROM62は、「0x080708070
907」を出力する。よって、出力レジスタ65には、
「0x080708070907」が取り込まれる。
【0042】次に、ステップS306において、プロセ
ッサ51は、出力レジスタ64と出力レジスタ65との
値を合計し、「0x1410130f140f」を得
る。そして、ステップS307において、プロセッサ5
1で出力レジスタ63の値、及び出力レジスタ64と,
出力レジスタ65との値の合計を8ビット毎に分解する
ことにより、ハフマンコードブック1から10により符
号化した符号長としてそれぞれ「0」、「0」、「1
2」、「10」、「20」、「16」、「19」、「1
5」、「20」、「15」を得る。なお、4つの量子化
後スペクトルデータの絶対値の最大値は4であるので、
図37よりステップS311では、ハフマンコードブッ
ク5〜11の中からいずれかを選択できる。
【0043】
【発明が解決しようとする課題】従来の符号長計算装置
は、入力データとして符号付きの値を必要とする。しか
し、通常の量子化では符号無しの絶対値の値を出力する
ので、符号付きの量子化後の値をプロセッサで計算する
必要があり、また、コードブック11で符号化する場合
の符号長も、プロセッサで求める必要があるため、プロ
セッサの処理負担が増大するという問題点があった。ま
た、ROMの容量も合計で、106,496ビットと多
大な量を必要とする問題点があった。さらに、データ幅
として48ビットを扱う必要があり、通常使われない4
8ビットプロセッサを使用する必要があった。本発明
は、上記問題点を解決するためになされたものであり、
プロセッサにおける処理負担を軽減することができ、ま
た、ROMの容量を減少することができ、さらに、汎用
されているプロセッサによって演算可能な符号長計算装
置、及び符号化装置を提供することを目的とする。
【0044】
【課題を解決するための手段】上記目的を達成するた
め、本発明による符号長計算装置は、A個のデータ(A
は2以上の整数)を組み合わせてインデックスを生成
し、前記インデックスをL個のコードブック(Lは、1
以上の整数)によりハフマン符号化した符号化後の符号
長を計算する符号長計算装置であって、前記A個のデー
タの絶対値と、前記A個のデータのサイン情報とを含む
データが入力されると、該データに対応したアドレスを
生成するアドレス生成手段と、前記L個のコードブック
の内、H個のコードブック(Hは、L以下の整数)によ
り前記A個のデータをハフマン符号化した符号化後の符
号長を、前記アドレス生成手段が生成するアドレスに対
応した領域に保持するテーブル記憶手段とを備えたこと
を特徴とするものである。
【0045】また、本発明による符号長計算装置は、請
求項1に記載の符号長計算装置において、前記テーブル
記憶手段は、前記H個のコードブックが前記A個のデー
タの絶対値情報のみを符号化するアンサインドコードブ
ックの場合は、前記A個のデータを前記ハフマン符号化
した符号化後の符号長にサイン情報のために必要なビッ
ト数を予め加算した値を、前記アドレス生成手段が生成
するアドレスに対応した領域に保持し、前記H個のコー
ドブックが前記A個のデータの符号を含めた情報を符号
化するサインドコードブックの場合は、前記A個のデー
タを前記ハフマン符号化した符号化後の符号長を、前記
アドレス生成手段が生成するアドレスに対応した領域に
保持するものであることを特徴とするものである。
【0046】また、本発明による符号長計算装置は、請
求項1または2に記載の符号長計算装置において、前記
アドレス生成手段と、前記テーブル記憶手段とを複数備
えたことを特徴とするものである。
【0047】また、本発明による符号長計算装置は、請
求項1ないし3のいずれか一つに記載の符号長計算装置
において、前記アドレス生成手段を経由せず、前記テー
ブル記憶手段にアドレスを入力する経路を備えたことを
特徴とするものである。
【0048】また、本発明による符号長計算装置は、請
求項1ないし4のいずれか一つに記載の符号長計算装置
において、前記L個のコードブックは、MPEG2−A
AC規格で定義されているスペクトルデータをハフマン
符号化するための11個のハフマンコードブックである
ことを特徴とするものである。
【0049】また、本発明による符号長計算装置は、請
求項5に記載の符号長計算装置において、関数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)
を、MPEG2−AAC規格のハフマンコードブック1
におけるindexに対する符号長を返す関数とし、関
数T2(index)を、MPEG2−AAC規格のハ
フマンコードブック2におけるindexに対する符号
長を返す関数とし、関数T3(index)を、MPE
G2−AAC規格のハフマンコードブック3におけるi
ndexに対する符号長を返す関数とし、関数T4(i
ndex)を、MPEG2−AAC規格のハフマンコー
ドブック4におけるindexに対する符号長を返す関
数とし、aを整数とし、前記aの絶対値の下位2ビット
をabs_aとし、前記aのサイン情報を表すビットを
sig_aとし、sig_aが正のサイン情報を表すと
きはsig_a=PLUSとし、負のサイン情報を表す
ときはsig_a=MINUSとし、α、β、γ、δを
それぞれ値が異なる2ビットの値とし、関数G(abs
_a,sig_a)を、abs_aが2のときαを返
し、abs_aが1かつsig_aがPLUSのときβ
を返し、abs_aが0のときγを返し、abs_aが
1かつsig_aがMINUSのときδを返し、それ以
外の場合は任意の2ビットの値を返す関数としたとき、
前記符号長計算装置の有する1つのアドレス生成手段
は、4個のデータa,b,c,dの下位2ビットの絶対
値abs_a,abs_b,abs_c,abs_d
と、前記4個のデータのサイン情報を表す値sig_
a,sig_b,sig_c,sig_dとが入力され
たときに、G(abs_a,sig_a)と、G(ab
s_b,sig_b)と、G(abs_c,sig_
c)と、G(abs_d,sig_d)とがそれぞれ返
す値をビット連結した値Iをアドレスとして出力するも
のであり、前記符号長計算装置の有する1つのテーブル
記憶手段は、前記値Iが指し示す領域に、T1(F1
(a,b,c,d))の値N1と、T2(F1(a,
b,c,d))の値N2と、T3(F2(a,b,c,
d))+nonz(a,b,c,d)の値N3と、T4
(F2(a,b,c,d))+nonz(a,b,c,
d)の値N4とを保持するものであることを特徴とする
ものである。
【0050】また、本発明による符号長計算装置は、請
求項6に記載の符号長計算装置において、前記関数G
(abs_a,sig_a)は、abs_aが2のとき
0を返し、abs_aが1かつsig_aがPLUSの
とき3を返し、abs_aが0のとき2を返し、abs
_aが1かつsig_aがMINUSのとき1を返し、
abs_aが3のとき1を返すものであることを特徴と
するものである。
【0051】また、本発明による符号長計算装置は、請
求項6または7に記載の符号長計算装置において、前記
テーブル記憶手段は、1アドレス当たり17ビット以上
のデータを記憶するものであり、さらに、前記テーブル
記憶手段から出力された値を、前記N1と、前記N2
と、前記N3と、前記N4とに分割するビット分割手段
を備えたことを特徴とするものである。
【0052】また、本発明による符号長計算装置は、請
求項8に記載の符号長計算装置において、前記ビット分
割手段は、前記N1と前記N2との間に1ビット以上の
0を挿入し、前記N3と前記N4との間に1ビット以上
の0を挿入し、前記N1と前記N2とを一組として出力
し、前記N3と前記N4とを一組として出力するもので
あることを特徴とするものである。
【0053】また、本発明による符号長計算装置は、請
求項5ないし9のいずれか一つに記載の符号長計算装置
において、関数F3(y,z)を、F3(y,z)=9
*(y+4)+(z+4)とし、式中y,zの絶対値変
域は4以下であり、関数T5(index)を、MPE
G2−AAC規格のハフマンコードブック5におけるi
ndexに対する符号長を返す関数とし、関数T6(i
ndex)を、MPEG2−AAC規格のハフマンコー
ドブック6におけるindexに対する符号長を返す関
数したとき、前記符号長計算装置の有する少なくとも1
つのアドレス生成手段は、2個のデータa,bの絶対値
abs_a,abs_bと、前記2個のデータのサイン
情報を表す値sig_a,sig_bとが入力されたと
き、前記sig_a、abs_a、sig_b、abs
_bから生成した値Jをアドレスとして出力するもので
あり、前記符号長計算装置の有する少なくとも1つのテ
ーブル記憶手段は、前記値Jが指し示す領域に、T5
(F3(a,b))の値N5と、T6(F3(a,
b))の値N6とを保持するものであることを特徴とす
るものである。
【0054】また、本発明による符号長計算装置は、請
求項10に記載の符号長計算装置において、前記テーブ
ル記憶手段は、1アドレス当たり8ビット以上のデータ
を記憶するものであり、さらに、前記テーブル記憶手段
から出力された値を、前記N5と、前記N6とに分割
し、前記N5と、前記N6との間に1ビット以上の0を
挿入するビット分割手段を備えたことを特徴とするもの
である。
【0055】また、本発明による符号長計算装置は、請
求項5ないし11のいずれか一つに記載の符号長計算装
置において、関数abs(x)を、xの絶対値を返す関
数とし、関数nonz(y、z)をy、zの中で値が0
でないものの個数を返す関数とし、関数F4(y、z)
を、F4(y、z)=8*abs(y)+abs(z)
とし、式中y,zの絶対値変域は7以下であり、関数F
5(y、z)を、F5(y、z)=13*abs(y)
+abs(z)とし、式中y,zの絶対値変域は12以
下であり、関数F6(y、z)を、F6(y、z)=1
7*abs(y)+abs(z)とし、式中y,zの絶
対値変域は16以下であり、関数T7(index)
を、MPEG2−AAC規格のハフマンコードブック7
におけるindexに対する符号長を返す関数とし、関
数T8(index)を、MPEG2−AAC規格のハ
フマンコードブック8におけるindexに対する符号
長を返す関数とし、関数T9(index)を、MPE
G2−AAC規格のハフマンコードブック9におけるi
ndexに対する符号長を返す関数とし、関数T10
(index)を、MPEG2−AAC規格のハフマン
コードブック10におけるindexに対する符号長を
返す関数とし、関数T11(index)を、MPEG
2−AAC規格のハフマンコードブック11におけるi
ndexに対する符号長を返す関数としたとき、前記符
号長計算装置の有する少なくとも1つのアドレス生成手
段は、2個のデータa,bの絶対値abs_a,abs
_bが入力されたとき、前記abs_a,abs_bか
ら生成した値Kをアドレスとして出力するものであり、
前記符号長計算装置の有する少なくとも1つのテーブル
記憶手段は、前記値Kが指し示す領域に、T7(F4
(a,b))+nonz(a,b)の値N7と、T8
(F4(a,b))+nonz(a,b)の値N8と、
T9(F5(a,b))+nonz(a,b)の値N9
と、T10(F5(a,b))+nonz(a,b)の
値N10と、T11(F6(a,b))+nonz
(a,b)の値N11とを保持するものであることを特
徴とするものである。
【0056】また、本発明による符号長計算装置は、請
求項12に記載の符号長計算装置において、前記テーブ
ル記憶手段は、1アドレス当たり21ビット以上のデー
タを記憶するものであり、さらに、前記テーブル記憶手
段から出力された値を、前記N7と、前記N8と、前記
N9と、前記N10と、前記N11とに分割するビット
分割手段を備えたことを特徴とするものである。
【0057】また、本発明による符号長計算装置は、請
求項13に記載の符号長計算装置において、前記ビット
分割手段は、前記N7と前記N8との間に1ビット以上
の0を挿入し、前記N9と前記N10との間に1ビット
以上の0を挿入し、前記N7と前記N8とを一組として
出力し、前記N9と前記N10とを一組として出力し、
前記N11を一組として出力するものであることを特徴
とするものである。
【0058】また、本発明による符号長計算装置は、請
求項10ないし14のいずれか一つに記載の符号長計算
装置において、4個のデータa,b,c,dの絶対値a
bs_a,abs_b、abs_c,abs_dと、前
記4個のデータのサイン情報を表す値sig_a,si
g_b,sig_c,sig_dとが前記符号長計算装
置に入力されたとき、前記abs_a,abs_b,s
ig_a,sig_bを前記アドレス生成手段に入力し
た後に、前記abs_c,abs_d,sig_c,s
ig_dを前記アドレス生成手段に入力する制御信号を
生成する制御手段を備えたことを特徴とするものであ
る。
【0059】また、本発明による符号長計算装置は、4
個のデータを4個組み合わせて、あるいは2個ずつ組み
合わせてインデックスを生成し、前記インデックスを1
1個のハフマンコードブックによりハフマン符号化した
符号化後の符号長を計算する符号長計算装置であって、
前記4個のデータの絶対値と、前記4個のデータのサイ
ン情報とを含むデータが入力されると、該データに対応
したアドレスを生成する第1のアドレス生成手段と、前
記4個のデータを前記ハフマンコードブック1ないし4
によりハフマン符号化した符号化後の符号長を、前記第
1のアドレス生成手段が生成するアドレスに対応した領
域に保持する第1のテーブル記憶手段と、前記4個のデ
ータのうち、2個のデータの絶対値と、該2個のデータ
のサイン情報とを含むデータが入力されると、該データ
に対応したアドレスを生成する第2のアドレス生成手段
と、前記第2のアドレス生成手段に入力された前記2個
のデータを前記ハフマンコードブック5、及び6により
ハフマン符号化した符号化後の符号長を、前記第2のア
ドレス生成手段が生成するアドレスに対応した領域に保
持する第2のテーブル記憶手段と、前記4個のデータの
うち、2個のデータの絶対値が入力されると、該データ
に対応したアドレスを生成する第3のアドレス生成手段
と、前記第3のアドレス生成手段に入力された前記2個
のデータを前記ハフマンコードブック7ないし11によ
りハフマン符号化した符号化後の符号長を、前記第3の
アドレス生成手段が生成するアドレスに対応した領域に
保持する第3のテーブル記憶手段と、前記4個のデータ
のうち、前記第2のアドレス生成手段に入力されなかっ
た2個のデータの絶対値と、該2個のデータのサイン情
報とを含むデータが入力されると、該データに対応した
アドレスを生成する第4のアドレス生成手段と、前記第
4のアドレス生成手段に入力された前記2個のデータを
前記ハフマンコードブック5、及び6によりハフマン符
号化した符号化後の符号長を、前記第4のアドレス生成
手段が生成するアドレスに対応した領域に保持する第4
のテーブル記憶手段と、前記4個のデータのうち、前記
第3のアドレス生成手段に入力されなかった2個のデー
タの絶対値が入力されると、該データに対応したアドレ
スを生成する第5のアドレス生成手段と、前記第5のア
ドレス生成手段に入力された前記2個のデータを前記ハ
フマンコードブック7ないし11によりハフマン符号化
した符号化後の符号長を、前記第5のアドレス生成手段
が生成するアドレスに対応した領域に保持する第5のテ
ーブル記憶手段とを備えたことを特徴とするものであ
る。
【0060】また、本発明による符号長計算装置は、4
個のデータを4個組み合わせて、あるいは2個ずつ組み
合わせてインデックスを生成し、前記インデックスを1
1個のハフマンコードブックによりハフマン符号化した
符号化後の符号長を計算する符号長計算装置であって、
前記4個のデータの絶対値と、前記4個のデータのサイ
ン情報とを含むデータが入力されると、該データに対応
したアドレスを生成する第1のアドレス生成手段と、前
記4個のデータを前記ハフマンコードブック1ないし4
によりハフマン符号化した符号化後の符号長を、前記第
1のアドレス生成手段が生成するアドレスに対応した領
域に保持する第1のテーブル記憶手段と、前記4個のデ
ータのうち、2個のデータの絶対値と、該2個のデータ
のサイン情報とを含むデータが入力されると、該データ
に対応したアドレスを生成する第2のアドレス生成手段
と、前記第2のアドレス生成手段に入力された前記2個
のデータを前記ハフマンコードブック5、及び6により
ハフマン符号化した符号化後の符号長を、前記第2のア
ドレス生成手段が生成するアドレスに対応した領域に保
持する第2のテーブル記憶手段と、前記4個のデータの
うち、2個のデータの絶対値が入力されると、該データ
に対応したアドレスを生成する第3のアドレス生成手段
と、前記第3のアドレス生成手段に入力された前記2個
のデータを前記ハフマンコードブック7ないし11によ
りハフマン符号化した符号化後の符号長を、前記第3の
アドレス生成手段が生成するアドレスに対応した領域に
保持する第3のテーブル記憶手段と、前記4個のデータ
のうち、2個のデータの絶対値及び該2個のデータのサ
イン情報を含んだデータと、他の2個のデータの絶対値
及び該2個のデータのサイン情報を含んだデータとを切
り替えて前記第2のアドレス生成手段へ出力するセレク
タと、前記4個のデータのうち、2個のデータの絶対値
と、他の2個のデータの絶対値とを切り替えて前記第3
のアドレス生成手段へ出力するセレクタと、上記セレク
タを制御する制御部とを備えたことを特徴とするもので
ある。
【0061】また、本発明による符号長計算装置は、請
求項17に記載の符号長計算装置において、前記第1の
テーブル記憶手段は、17ビット以上のデータを保持す
るものであり、前記第2のテーブル記憶手段は、8ビッ
ト以上のデータを保持するものであり、前記第3のテー
ブル記憶手段は、21ビット以上のデータを保持するも
のであり、さらに、前記第1のテーブル記憶手段の出力
を、前記ハフマンコードブック1ないし4における符号
化の符号長ごとに分割するビット分割部と、前記第2の
テーブル記憶手段の出力を、前記ハフマンコードブック
5、及び6における符号化の符号長ごとに分割するビッ
ト分割部と、前記第3のテーブル記憶手段の出力を、前
記ハフマンコードブック7ないし11における符号化の
符号長ごとに分割するビット分割部とを備えたことを特
徴とするものである。
【0062】また、本発明による符号長計算装置は、請
求項16ないし18のいずれか一つに記載の符号長計算
装置において、前記アドレス生成手段を経由せず、前記
テーブル記憶手段にアドレスを入力できる経路を備えた
ことを特徴とするものである。
【0063】また、本発明による符号化装置は、請求項
1ないし19のいずれか一つに記載の符号長計算装置を
備えたことを特徴とするものである。
【0064】
【発明の実施の形態】以下、本発明の好ましい実施の形
態について図面を参照しながら説明する。なお、数の表
記として、2進数で表すときは数の前に「0b」、16
進数で表すときは数の前に「0x」を付けるものとす
る。何も付いていない数表記は10進数であるとする。
例えば、10進数での「10」は、5ビットの2進数表
記では「0b01010」であり、16進数表記では
「0x0a」である。また、10進数での「−1」は、
5ビットの2進数表記では「0b11111」である。
また、判別しやすいように数の間に「_」を入れること
ができるものとする。つまり、「0x74」は、「0b
01110100」、あるいは「0b0111_010
0」と書くことができるとする。また、ビット演算をす
るときの演算子として、「&」をビット毎の論理積、
「|」をビット毎の論理和、「<<」を左シフトと定義
する。
【0065】(実施の形態1)図1は、本発明の実施の
形態1による符号長計算装置を備えたAACの符号化装
置の構成を示すブロック図である。本実施の形態1の符
号化装置は、40ビットのデータバスを備えるプロセッ
サ1と、ハフマン符号化後の符号長の値を計算する符号
長計算装置2aと、データを保持するメモリ3とを備え
る。プロセッサ1は、ハフマンコードブック1から11
までを用いて符号化した場合の符号長を求める処理以外
の処理を行う。絶対値が16以上の場合のエスケープコ
ード分の符号長の計算もプロセッサ1で行う。符号長計
算装置2aは、コードブック1から11により符号化し
た場合の符号長を求める処理を行う。メモリ3は、量子
化前後のスペクトルデータや符号化後のストリームデー
タや量子化のためのテーブルを保持する。
【0066】次に、本実施の形態1による符号長計算装
置2aについて図2を用いて説明する。図2は、本実施
の形態1による符号長計算装置2aの構成を示すブロッ
ク図である。符号長計算装置2aは、4個の絶対値入力
レジスタ4,5,6,7と、4個のサイン符号入力レジ
スタ8,9,10,11と、5個の出力レジスタ12,
13,14,15,16と、第1から第5までのアドレ
ス生成部17,18,19,20,21と、第1から第
5までのROM22,23,24,25,26とを備え
る。
【0067】4個の絶対値入力レジスタ4,5,6,7
と4個のサイン符号入力レジスタ8,9,10,11と
は、それぞれ、絶対値入力レジスタ4とサイン符号入力
レジスタ8、絶対値入力レジスタ5とサイン符号入力レ
ジスタ9、絶対値入力レジスタ6とサイン符号入力レジ
スタ10、絶対値入力レジスタ7とサイン符号入力レジ
スタ11が組みになっている。
【0068】4個の絶対値入力レジスタ4,5,6,7
は、5ビットのレジスタであり、プロセッサから送られ
てくるデータの下位5ビットを取り込む。サイン符号入
力レジスタ8,9,10,11は、プロセッサ1から送
られてくるデータのサイン符号のビットである最上位ビ
ットを取り込む。
【0069】出力レジスタ12は、32ビットのレジス
タである。出力レジスタ13,15は、16ビットのレ
ジスタである。出力レジスタ14,16は、40ビット
のレジスタである。なお、プロセッサ1は、出力レジス
タ12,13,14,15,16の値を読むことができ
る。
【0070】第1のアドレス生成部17は、絶対値入力
レジスタ4,5,6,7のそれぞれの下位2ビットと、
サイン符号入力レジスタ8,9,10,11の値とを取
り込み、第1のROM22のアドレスを生成する。
【0071】図3は、第1のアドレス生成部17の構成
を示すブロック図である。第1のアドレス生成部17
は、4個のビット変換部27,28,29,30と、ビ
ット連結部31とから構成される。ビット変換部27,
28,29,30は、それぞれ組みになっている絶対値
入力レジスタの値とサイン符号入力レジスタの値とを取
り込み、変換した2ビットの値をビット連結部31に出
力する。
【0072】図4は、ビット変換部27の構成を示す図
である。なお、他のビット変換部28,29,30も同
様の構成である。ビット変換部27は、NANDゲート
素子201と、XNORゲート素子202とから構成さ
れる。
【0073】図5は、ビット変換部27,28,29,
30の真理値表を示す図である。ビット変換部27,2
8,29,30に入力される絶対値入力レジスタの下位
2ビットのうち下位ビットを第0ビット目(絶対値入力
レジスタ[0])、上位ビットを第1ビット目(絶対値
入力レジスタ[1])、同様に出力されるアドレスのう
ち下位ビットを第0ビット目(アドレス[0])、上位
ビットを第1ビット目(アドレス[1])としたときの
ビット変換部27,28,29,30の入力と出力とを
示したものが、図5の真理値表である。ビット変換部2
7,28,29,30の出力値をそれぞれ、W,X,
Y,Zとすると、ビット連結部31が出力する第1のR
OM22のアドレスaddressは、 address=W<<6|X<<4|Y<<2|Z で与えられる。
【0074】第1のROM22に保持されているデータ
は、従来の符号長計算装置の第1のROM60に保持さ
れている図42のデータと同じものであるので、ここで
は説明を省略する。第2のアドレス生成部18は、絶対
値入力レジスタ4,5のそれぞれの下位3ビットと、サ
イン符号入力レジスタ8,9の値とを連結して、第2の
ROM23のアドレスを生成する。絶対値入力レジスタ
4,5のそれぞれの下位3ビットの値をA,Bとし、サ
イン符号入力レジスタ8,9のそれぞれの値をE,Fと
すると、第2のアドレス生成部18が出力する第2のR
OM23のアドレスaddressは、 address=E<<7|(A<<4)|(F<<
3)|B で与えられる。
【0075】図6は、第2のROM23に保持されてい
るデータの一部を示す図である。なお、第2のROM2
3に保持されているデータは全部で256ワードであ
る。図6において、左の列のaddressは、第2の
アドレス生成部18から出力されるアドレスであり、右
の列のdataはハフマンコードブック5,6による符
号化後の符号長を表す16ビットのデータである。
【0076】図7は、第2のROM23に格納されたデ
ータの構成を示す図である。図7において、上位の8ビ
ットであるHCB5は、E=0のときA,あるいはE=
1のとき−Aである値と、F=0のときB,あるいはF
=1のとき−Bである値とをハフマンコードブック5で
ハフマンエンコードした後の符号長である。なお、量子
化前はゼロでない負の値であったが、量子化により値が
ゼロになる場合がある。そこで、E=1,A=0に対応
するアドレスにはE=0,A=0である値をハフマンエ
ンコードした後の符号長をセットする。また、同様にF
=1,B=0に対応するアドレスにはF=0,B=0で
ある値をハフマンエンコードした後の符号長をセットす
る。
【0077】下位8ビットであるHCB6は、HCB5
の場合と同様にハフマンコードブック6でハフマンエン
コードした後の符号長である。第3のアドレス生成部1
9は、絶対値入力レジスタ4,5のそれぞれの下位5ビ
ットを取り込み、特定の計算を行って、第3のROM2
4のアドレスを生成する。絶対値入力レジスタ4,5の
それぞれの値をA,Bとすると、第3のアドレス生成部
19が出力する第3のROM24のアドレスaddre
ssは、address=A*17+Bで与えられる。
【0078】図8は、第3のROM24に保持されてい
るデータの一部を示す図である。なお、第3のROM2
4に保持されているデータは全部で384ワードであ
る。図8において、左の列のaddressは、第3の
アドレス生成部19から出力されるアドレスであり、右
の列のdataはハフマンコードブック7,8,9,1
0,11による符号化後の符号長を表す40ビットのデ
ータである。
【0079】図9は、第3のROM24に格納されたデ
ータの構成を示す図である。図9において、最上位の8
ビットであるHCB7は、絶対値入力レジスタ4,5の
値をハフマンコードブック7でハフマンエンコードした
後の符号長を表している。同様に、以下8ビット毎に、
HCB8,HCB9,HCB10,HCB11は、それ
ぞれハフマンコードブック8,9,10,11でハフマ
ンエンコードした後の符号長を表している。この符号長
は、サイン情報を示すビットも含めた長さになってい
る。
【0080】第4のアドレス生成部20は、第2のアド
レス生成部18と入力されるレジスタが違うだけで機能
的に同じものである。絶対値入力レジスタ4,5を、そ
れぞれ絶対値入力レジスタ6,7に、サイン符号入力レ
ジスタ8,9を、それぞれサイン符号入力レジスタ1
0,11に変えたものである。第4のROM25に格納
されているデータは、第2のROM23に格納されてい
るデータと同じものである。
【0081】第5のアドレス生成部21は、第3のアド
レス生成部19と入力されるレジスタが違うだけで機能
的に同じものである。絶対値入力レジスタ4,5を、そ
れぞれ絶対値入力レジスタ6,7に変えたものである。
第5のROM26に格納されているデータは、第3のR
OM24に格納されているデータと同じものである。
【0082】次に、本実施の形態1によるAACの符号
化装置の動作について説明する。図10は、本実施の形
態1によるAACの符号化装置の動作を示すフローチャ
ートである。なお、特に記述されている場合以外は、処
理はプロセッサ1により行われる。
【0083】まず、ステップS101において、入力さ
れたオーディオ信号は、メモリ3に貯えられ、MDCT
により周波数分析されて、時系列のデータから周波数系
列のデータに変換される。次に、ステップS102にお
いて、人間の耳に聞こえないノイズの量を計算すること
により、聴覚モデルを作成する。そして、ステップS1
03において、データを係数とスケールファクタとに分
割し、ステップS102で作成した聴覚モデルに基づい
てデータ量を削減する。さらに、求めたスペクトルデー
タに対し3/4乗するなどの処理により量子化を行う。
ここでは、スペクトルデータの絶対値を求め、その絶対
値によりメモリ3内のテーブルを引いて、3/4乗した
値の絶対値を量子化した値を求める。
【0084】ステップS104では、4個の量子化後の
スペクトルデータの絶対値を符号長計算装置2aの絶対
値入力レジスタ4,5,6,7に入力する。入力する絶
対値が16以上の場合は16を入力する。また、入力す
るスペクトルデータの絶対値に対応する量子化前のスペ
クトルデータの値を符号長計算装置2aのサイン符号入
力レジスタ8,9,10,11に入力する。サイン符号
入力レジスタ8,9,10,11は入力されたデータの
サイン符号である最上位ビットのみを取り込むので、サ
イン符号入力レジスタ8,9,10,11には、量子化
前のスペクトルデータのサイン符号が取り込まれる。そ
して、符号長計算装置2aにより、ハフマンコードブッ
ク1〜4で符号化した場合の符号長をまとめた値を出力
レジスタ12に、絶対値入力レジスタ4,5に書き込ん
だ値をハフマンコードブック5、6で符号化した場合の
符号長をまとめた値を出力レジスタ13に、絶対値入力
レジスタ6,7に書き込んだ値をハフマンコードブック
5,6で符号化した場合の符号長をまとめた値を出力レ
ジスタ15に、絶対値入力レジスタ4,5に書き込んだ
値をハフマンコードブック7〜11で符号化した場合の
符号長をまとめた値を出力レジスタ14に、絶対値入力
レジスタ6,7に書き込んだ値をハフマンコードブック
7〜11で符号化した場合の符号長をまとめた値を出力
レジスタ16に得る。
【0085】ステップS105では、出力レジスタ13
と、15との値を合計し、前記4個の量子化後のスペク
トルデータを、ハフマンコードブック5,6で符号化し
た場合の符号長を計算する。また、出力レジスタ14
と、16との値を合計し、前記4個の量子化後のスペク
トルデータを、ハフマンコードブック7〜11で符号化
した場合の符号長を計算する。
【0086】ステップS106では、ステップS105
において得た値を8ビット毎に分解することにより、ハ
フマンコードブック1から11で符号化したそれぞれの
符号長を得る。ステップS107では、必要であれば、
プロセッサ1によりエスケープコード分の符号長を求め
る。ステップS108では、前記4個のスペクトルデー
タの絶対値の最大値を求め、使うことのできるハフマン
コードブックを調べる。ステップS109では、使うこ
とのできるハフマンコードブックの中で、もっとも符号
化後の符号長が短いハフマンコードブックと、そのハフ
マンコードブックで符号化した場合の符号長とを求め
る。
【0087】ステップS110では、ハフマン符号化し
た後の符号長が要求されるビット長以下であり、かつ、
量子化したノイズが許容した範囲であるか否かを判断
し、条件を満たさない場合はステップS103へ戻って
量子化からやり直す。条件を満たす場合はステップS1
11に進む。ステップS111では、量子化した係数と
スケールファクタとに対し、ステップS109で選択し
たハフマンコードブックを用いてハフマン符号化を行
う。
【0088】このハフマンコードブックを用いた符号化
においては、まず、4個の量子化したスペクトルデータ
を4個まとめるか、2個ずつに分けたものをまとめるか
してインデックスを生成する。次に、ステップS109
において選択したハフマンコードブックにより、生成さ
れたインデックスを符号化する。
【0089】W,X,Y,Zを4個の量子化したスペク
トルデータとすると、ハフマンコードブック1,2で符
号化する場合のインデックスの生成式は、 27*(W+1)+9*(X+1)+3*(Y+1)+
(Z+1) である。また、ハフマンコードブック3,4で符号化す
る場合のインデックスの生成式は、 27*W+9*X+3*Y+Z である。
【0090】また、Y,Zを2個の量子化したスペクト
ルデータとすると、ハフマンコードブック5,6で符号
化する場合のインデックスの生成式は、 9*(Y+4)+(Z+4) である。ハフマンコードブック7,8で符号化する場合
のインデックスの生成式は、 8*Y+Z である。また、ハフマンコードブック9,10で符号化
する場合のインデックスの生成式は、 13*Y+Z である。また、ハフマンコードブック11で符号化する
場合のインデックスの生成式は、 17*Y+Z である。ただし、ハフマンコードブック11で符号化す
る場合、スペクトルデータの絶対値が16以上であると
きには、インデックスの生成式に代入するデータとして
は、16を用いる。なお、インデックスの生成式におい
て、ハフマンコードブック3,4,7,8,9,10,
11での符号化の場合では、データの絶対値のみがイン
デックスの生成に用いられる。このように、絶対値のみ
を符号化するコードブックをアンサインドコードブック
と呼び、サイン符号をも含めて符号化するコードブック
をサインドコードブックと呼ぶ。その他、各ハフマンコ
ードブックにより符号化できる絶対値の最大値等は、図
37に記載されている。
【0091】そして、生成されたインデックスと、ハフ
マンコードブックとを用いてハフマン符号化を行う。た
だし、ハフマンコードブック11で符号化する場合、ス
ペクトルデータの絶対値が16以上であるときには、絶
対値が16以上の各々の値を符号化したエスケープコー
ドを別途求める。ステップS112では、ビットストリ
ームを生成して、蓄積メディアやインターネットなどの
通信路に送り出す。
【0092】次に、ステップS104ないしS109に
おける、符号長計算装置2a、及びプロセッサ1の動作
について、具体例を用いて説明する。まず、4個の量子
化前スペクトルデータとして、 「1(0x0000000001)」 「−1(0xffffffffff)」 「1(0x0000000001)」 「0(0x0000000000)」 が、ステップS103で量子化されて、量子化後スペク
トルデータの絶対値として、 「1(0x0000000001)」 「1(0x0000000001)」 「1(0x0000000001)」 「0(0x0000000000)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「1」、「−
1」、「1」、「0」となる。
【0093】図11は、量子化後のスペクトルデータ、
及び量子化前の符号が符号長計算装置2aに入力された
場合の、各レジスタや、アドレス生成部、あるいはRO
Mの出力を示した図である。プロセッサ1は、量子化前
のスペクトルデータをサイン符号入力レジスタ8,9,
10,11に順次書き込む。サイン符号入力レジスタ
8,9,10,11には最上位ビットが取り込まれるの
で、サイン符号入力レジスタ8,9,10,11のそれ
ぞれの値は、「0b0」、「0b1」、「0b0」、
「0b0」となる。次に、プロセッサ1は、量子化後ス
ペクトルデータの絶対値を絶対値入力レジスタ4,5,
6,7に順次書き込む。絶対値入力レジスタ4,5,
6,7には下位5ビットが取り込まれるので、絶対値入
力レジスタ4,5,6,7のそれぞれの値は、「0b0
0001」、「0b00001」、「0b0000
1」、「0b00000」となる。
【0094】第1のアドレス生成部17内のビット変換
部27には、絶対値入力レジスタ4の下位2ビットの値
「0b01」と、サイン符号入力レジスタ8の値「0b
0」とが入力される。図5の真理値表より、ビット変換
部27の出力は「0b01」となる。第1のアドレス生
成部17内のビット変換部28には、絶対値入力レジス
タ5の下位2ビットの値「0b01」と、サイン符号入
力レジスタ9の値「0b1」とが入力される。図5の真
理値表より、ビット変換部28の出力は「0b11」と
なる。第1のアドレス生成部17内のビット変換部29
には、絶対値入力レジスタ6の下位2ビットの値「0b
01」と、サイン符号入力レジスタ10の値「0b0」
とが入力される。図5の真理値表より、ビット変換部2
9の出力は「0b01」となる。第1のアドレス生成部
17内のビット変換部30には、絶対値入力レジスタ7
の下位2ビットの値「0b00」と、サイン符号入力レ
ジスタ11の値「0b0」とが入力される。図5の真理
値表より、ビット変換部30の出力は「0b00」とな
る。
【0095】そして、ビット連結部31により、ビット
変換部27,28,29,30の出力が連結されて、第
1のROM22のアドレスとして「0x74(0b01
_11_01_00)」が出力される。図42より該当
するアドレスのデータは、「0x09070907」で
あるので、第1のROM22は、「0x0907090
7」を出力する。よって、出力レジスタ12には、「0
x09070907」が取り込まれる。
【0096】第2のアドレス生成部18は、絶対値入力
レジスタ4,5の下位3ビットの値「0b001」、
「0b001」と、サイン符号入力レジスタ8,9の値
「0b0」、「0b1」とを連結する。連結したアドレ
スは、 address=0b0<<7|(0b001<<4)
|(0b1<<3)|0b001
【0097】で与えられるので、第2のROM23のア
ドレスとして「0x19(0b0_001_1_00
1)」が出力される。
【0098】図6より該当するアドレスのデータは、
「0x0504」であるので、第2のROM23は、
「0x0504」を出力する。よって、出力レジスタ1
3には、「0x0504」が取り込まれる。第3のアド
レス生成部19は、絶対値入力レジスタ4,5の値「0
b00001(1)」、「0b00001(1)」から
計算してアドレスを生成する。計算したアドレスは、 address=1*17+1 で与えられるので、第3のROM24のアドレスとして
「18(0x12)」が出力される。
【0099】図8より該当するアドレスのデータは、
「0x0605060606」であるので、第3のRO
M24は、「0x0605060606」を出力する。
よって、出力レジスタ14には、「0x0605060
606」が取り込まれる。第4のアドレス生成部20
は、絶対値入力レジスタ6,7の下位3ビットの値「0
b001」、「0b000」と、サイン符号入力レジス
タ10,11の値「0b0」、「0b0」とを連結す
る。連結したアドレスは、 address=0b0<<7|(0b001<<4)
|(0b0<<3)|0b000 で与えられるので、第4のROM25のアドレスとして
「0x10(0b0_001_0_000)」が出力さ
れる。
【0100】図6より該当するアドレスのデータは、
「0x0404」であるので、第4のROM25は、
「0x0404」を出力する。よって、出力レジスタ1
5には、「0x0404」が取り込まれる。第5のアド
レス生成部21は、絶対値入力レジスタ6,7の値「0
b00001(1)」、「0b00000(0)」から
計算してアドレスを生成する。計算したアドレスは、 address=1*17+0 で与えられるので、第5のROM26のアドレスとして
「17(0x11)」が出力される。図8より該当する
アドレスのデータは、「0x0405040606」で
あるので、第5のROM26は、「0x0405040
606」を出力する。よって、出力レジスタ16には、
「0x0405040606」が取り込まれる。
【0101】次に、ステップS105において、プロセ
ッサ1は、出力レジスタ13と15との値を合計し「0
x0908」を得る。また、出力レジスタ14と16と
の値を合計し「0x0a0a0a0c0c」を得る。そ
して、ステップS106において、出力レジスタ12の
値、出力レジスタ13と15との値の合計、及び出力レ
ジスタ14と16との値の合計を、プロセッサ1で8ビ
ット毎に分解することにより、ハフマンコードブック1
から11により符号化した符号長としてそれぞれ
「9」、「7」、「9」、「7」、「9」、「8」、
「10」、「10」、「10」、「12」、「12」を
得る。なお、4つの量子化後スペクトルデータの絶対値
の最大値は1であるので、図37よりステップS109
でハフマンコードブック1〜11の中からいずれかを選
択できる。そこで、ステップS109では、ハフマンコ
ードブック1〜11の中で一番小さい符号長に符号化で
きるコードブック2、あるいは4を選択する。
【0102】次に、ステップS104ないしS109に
おける、符号長計算装置2a、及びプロセッサ1の動作
について、他の具体例を用いて説明する。4個の量子化
前スペクトルデータとして、 「7(0x0000000007)」 「−3(0xfffffffffd)」 「0(0x0000000000)」 「5(0x0000000005)」 が、ステップS103で量子化されて、量子化後スペク
トルデータの絶対値として、 「4(0x0000000004)」 「2(0x0000000002)」 「0(0x0000000000)」 「3(0x0000000003)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「4」、「−
2」、「0」、「3」となる。
【0103】図12は、量子化後のスペクトルデータ、
及び量子化前の符号が符号長計算装置2aに入力された
場合の、各レジスタや、アドレス生成部、あるいはRO
Mの出力を示した図である。プロセッサ1は、量子化前
のスペクトルデータをサイン符号入力レジスタ8,9,
10,11に順次書き込む。サイン符号入力レジスタ
8,9,10,11には最上位ビットが取り込まれるの
で、サイン符号入力レジスタ8,9,10,11のそれ
ぞれの値は、「0b0」、「0b1」、「0b0」、
「0b0」となる。次に、プロセッサ1は、量子化後ス
ペクトルデータの絶対値を絶対値入力レジスタ4,5,
6,7に順次書き込む。絶対値入力レジスタ4,5,
6,7には下位5ビットが取り込まれるので、絶対値入
力レジスタ4,5,6,7のそれぞれの値は、「0b0
0100」、「0b00010」、「0b0000
0」、「0b00011」となる。
【0104】第1のアドレス生成部17内のビット変換
部27には、絶対値入力レジスタ4の下位2ビットの値
「0b00」と、サイン符号入力レジスタ8の値「0b
0」とが入力される。図5の真理値表より、ビット変換
部27の出力は「0b00」となる。第1のアドレス生
成部17内のビット変換部28には、絶対値入力レジス
タ5の下位2ビットの値「0b10」と、サイン符号入
力レジスタ9の値「0b1」とが入力される。図5の真
理値表より、ビット変換部28の出力は「0b10」と
なる。第1のアドレス生成部17内のビット変換部29
には、絶対値入力レジスタ6の下位2ビットの値「0b
00」と、サイン符号入力レジスタ10の値「0b0」
とが入力される。図5の真理値表より、ビット変換部2
9の出力は「0b00」となる。第1のアドレス生成部
17内のビット変換部30には、絶対値入力レジスタ7
の下位2ビットの値「0b11」と、サイン符号入力レ
ジスタ11の値「0b0」とが入力される。図5の真理
値表より、ビット変換部30の出力は「0b11」とな
る。そして、ビット連結部31により、ビット変換部2
7,28,29,30の出力が連結されて、第1のRO
M22のアドレスとして「0x23(0b00_10_
00_11)」が出力される。
【0105】図42より該当するアドレスのデータは、
「0x00000c0a」であるので、第1のROM2
2の出力106は「0x00000c0a」である。よ
って、出力レジスタ12には、「0x00000c0
a」が取り込まれる。
【0106】第2のアドレス生成部18は、絶対値入力
レジスタ4,5の下位3ビットの値「0b100」、
「0b010」と、サイン符号入力レジスタ8,9の値
「0b0」、「0b1」とを連結する。連結したアドレ
スは、 address=0b0<<7|(0b100<<4)
|(0b1<<3)|0b010 で与えられるので、第2のROM23のアドレスとして
「0x4a(0b0_100_1_010)」が出力さ
れる。
【0107】図6より該当するアドレスのデータは、
「0x0c09」であるので、第2のROM23の出力
107は「0x0c09」である。よって、出力レジス
タ13には、「0x0c09」が取り込まれる。第3の
アドレス生成部19は、絶対値入力レジスタ4,5の値
「0b00100(4)」、「0b00010(2)」
から計算してアドレスを生成する。計算したアドレス
は、 address=4*17+2 で与えられるので、第3のROM24のアドレスとして
「70(0x046)」が出力される。
【0108】図8より該当するアドレスのデータは、
「0x0b080b0809」であるので、第3のRO
M24の出力108は「0x0b080b0809」で
ある。よって、出力レジスタ14には、「0x0b08
0b0809」が取り込まれる。第4のアドレス生成部
20は、絶対値入力レジスタ6,7の下位3ビットの値
「0b000」、「0b011」と、サイン符号入力レ
ジスタ10,11の値「0b0」、「0b0」とを連結
する。連結したアドレスは、 address=0b0<<7|(0b000<<4)
|(0b0<<3)|0b011 で与えられるので、第4のROM25のアドレスとして
「0x03(0b0_000_0_011)」が出力さ
れる。
【0109】図6より該当するアドレスのデータは、
「0x0807」であるので、第4のROM25の出力
109は「0x0807」である。よって、出力レジス
タ15には、「0x0807」が取り込まれる。第5の
アドレス生成部21は、絶対値入力レジスタ6,7の値
「0b00000(0)」、「0b00011(3)」
から計算してアドレスを生成する。計算したアドレス
は、 address=0*17+3 で与えられるので、第5のROM26のアドレスとして
「3(0x003)」が出力される。図8より該当する
アドレスのデータは、「0x0807090708」で
あるので、第5のROM26の出力110は「0x08
07090708」である。よって、出力レジスタ16
には、「0x0807090708」が取り込まれる。
【0110】次に、ステップS105において、プロセ
ッサ1は、出力レジスタ13と15との値を合計し「0
x1410」を得る。また、出力レジスタ14と16と
の値を合計し「0x130f140f11」を得る。そ
して、ステップS106において、出力レジスタ12の
値、出力レジスタ13と15との値の合計、及び出力レ
ジスタ14と16との値の合計を、プロセッサ1で8ビ
ット毎に分解することにより、ハフマンコードブック1
から11により符号化した符号長としてそれぞれ
「0」、「0」、「12」、「10」、「20」、「1
6」、「19」、「15」、「20」、「15」、「1
7」を得る。
【0111】なお、4つの量子化後スペクトルデータの
絶対値の最大値は4であるので、図37よりステップS
109でハフマンコードブック5〜11の中からいずれ
かを選択できる。そこで、ステップS109では、ハフ
マンコードブック5〜11の中で一番小さい符号長に符
号化できるコードブック8、あるいは10を選択する。
【0112】このように、本実施の形態1による符号長
計算装置2a、及び符号化装置によれば、プロセッサ1
においてサイン符号付きの量子化後のスペクトルデータ
を計算する必要がなく、また、符号長計算装置2aにお
いてコードブック1から11で符号化する場合の符号長
を求めることができ、プロセッサ1にコードブック11
で符号化する場合の符号長を求めさせる必要がないた
め、プロセッサ1における処理負担を大幅に軽減するこ
とができる。また、ROMの容量も合計で、47,10
4ビットとなり、従来の符号長計算装置に比べてROM
の容量を半分以下にすることが可能である。さらに、デ
ータ幅として40ビットを扱えれば充分なので、48ビ
ットプロセッサではなく、より規模の小さい40ビット
プロセッサを使用することができる。
【0113】(実施の形態2)本発明の実施の形態2の
符号化装置は、実施の形態1の符号長計算装置2a内の
第1のアドレス生成部17におけるビット変換部を図1
5に示すビット変換部に変更し、第1のROM22に保
持されているデータを図18に示すものに変えたもので
ある。図13は、本実施の形態2による符号長計算装置
2bの構成を示すブロック図である。符号長計算装置2
bは、4個の絶対値入力レジスタ4,5,6,7と、4
個のサイン符号入力レジスタ8,9,10,11と、5
個の出力レジスタ12,13,14,15,16と、第
1から第5までのアドレス生成部17b,18,19,
20,21と、第1から第5までのROM22b,2
3,24,25,26とを備える。なお、第1のアドレ
ス生成部17b、及び第1のROM22bに関わる部分
以外の構成、及び動作は、実施の形態1の符号長計算装
置2aと同じであり、説明を省略する。
【0114】図14は、第1のアドレス生成部17bの
構成を示すブロック図である。第1のアドレス生成部1
7bは、4個のビット変換部27b,28b,29b,
30bと、ビット連結部31とから構成される。なお、
ビット連結部31は、実施の形態1と同様のものであ
り、説明を省略する。ビット変換部27b,28b,2
9b,30bは、それぞれ組みになっている絶対値入力
レジスタの値とサイン符号入力レジスタの値とを取り込
み、変換した2ビットの値をビット連結部31に出力す
る。
【0115】図15は、本実施の形態2によるビット変
換部27bの構成を示す図である。なお、他のビット変
換部28b,29b,30bも同様の構成である。図1
5に示されたビット変換部27bは、実施の形態1の図
4のビット変換部27より、さらに構成を簡単にしたも
のである。図16は、ビット変換部27bの構成を示す
回路図である。ビット変換部27bは、3個のP−MO
Sトランジスタ203,204,205と、3個のN−
MOSトランジスタ206,207,208とから構成
される。一般的にCMOS論理回路では、XNORゲー
ト素子は8個のトランジスタで構成され、また、NAN
Dゲート素子は4個のトランジスタで構成される。した
がって、図4のビット変換部27をCMOS論理回路で
構成しようとすると12個のトランジスタが必要であ
る。しかし、図15のビット変換部27bは、図16に
示すように6個のトランジスタで構成することができ
る。
【0116】図17は、ビット変換部27b,28b,
29b,30bの真理値表を示す図である。ビット変換
部27b,28b,29b,30bに入力される絶対値
入力レジスタの下位2ビットのうち下位ビットを第0ビ
ット目(絶対値入力レジスタ[0])、上位ビットを第
1ビット目(絶対値入力レジスタ[1])、同様に出力
されるアドレスのうち下位ビットを第0ビット目(アド
レス[0])、上位ビットを第1ビット目(アドレス
[1])としたときのビット変換部27b,28b,2
9b,30bの入力と出力とを示したものが、図17の
真理値表である。
【0117】図18は、第1のROM22bに保持され
ているデータの一部を示す図である。なお、第1のRO
M22bに保持されているデータは全部で256ワード
である。図18において、左の列のaddressは、
第1のアドレス生成部17から出力されるアドレスであ
り、右の列のdataはハフマンコードブック1,2,
3,4による符号化後の符号長を表す32ビットのデー
タである。
【0118】第1のROM22bに格納されたデータの
構成は、従来の符号長計算装置の第1のROM60のも
のと同じ構成であり、図43で示される。最上位の8ビ
ットであるHCB1は、絶対値入力レジスタ4,5,
6,7、及びサイン符号入力レジスタ8,9,10,1
1の値をサイン符号付きの量子化後のサンプルデータに
したときに、その値をハフマンコードブック1でハフマ
ンエンコードした後の符号長を表している。同様に、以
下8ビット毎に、HCB2,HCB3,HCB4は、そ
れぞれハフマンコードブック2、3、4でハフマンエン
コードした後の符号長を表している。ハフマンコードブ
ック3,4に対応する符号長にはサイン情報を表すビッ
トの符号長も含まれている。
【0119】次に、図10のステップS104におけ
る、符号長計算装置の動作について、具体例を用いて説
明する。まず、4個の量子化前スペクトルデータとし
て、 「1(0x0000000001)」 「−1(0xffffffffff)」 「1(0x0000000001)」 「0(0x0000000000)」 が、図10のステップS103で量子化されて、量子化
後スペクトルデータの絶対値として、 「1(0x0000000001)」 「1(0x0000000001)」 「1(0x0000000001)」 「0(0x0000000000)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「1」、「−
1」、「1」、「0」となる。
【0120】図19は、量子化後のスペクトルデータ、
及び量子化前の符号が符号長計算装置2bに入力された
場合の、各レジスタや、アドレス生成部、あるいはRO
Mの出力を示した図である。プロセッサ1は、量子化前
のスペクトルデータをサイン符号入力レジスタ8,9,
10,11に順次書き込む。サイン符号入力レジスタ
8,9,10,11には最上位ビットが取り込まれるの
で、サイン符号入力レジスタ8,9,10,11のそれ
ぞれの値は、「0b0」、「0b1」、「0b0」、
「0b0」となる。次に、プロセッサ1は、量子化後ス
ペクトルデータの絶対値を絶対値入力レジスタ4,5,
6,7に順次書き込む。絶対値入力レジスタ4,5,
6,7には下位5ビットが取り込まれるので、絶対値入
力レジスタ4,5,6,7のそれぞれの値は、「0b0
0001」、「0b00001」、「0b0000
1」、「0b00000」となる。
【0121】第1のアドレス生成部17b内のビット変
換部27bには、絶対値入力レジスタ4の下位2ビット
の値「0b01」と、サイン符号入力レジスタ8の値
「0b0」とが入力される。図17の真理値表より、ビ
ット変換部27bの出力は「0b11」となる。第1の
アドレス生成部17b内のビット変換部28bには、絶
対値入力レジスタ5の下位2ビットの値「0b01」
と、サイン符号入力レジスタ9の値「0b1」とが入力
される。図17の真理値表より、ビット変換部28bの
出力は「0b01」となる。第1のアドレス生成部17
b内のビット変換部29bには、絶対値入力レジスタ6
の下位2ビットの値「0b01」と、サイン符号入力レ
ジスタ10の値「0b0」とが入力される。図17の真
理値表より、ビット変換部29bの出力は「0b11」
となる。第1のアドレス生成部17b内のビット変換部
30bには、絶対値入力レジスタ7の下位2ビットの値
「0b00」と、サイン符号入力レジスタ11の値「0
b0」とが入力される。図17の真理値表より、ビット
変換部30bの出力は「0b10」となる。そして、ビ
ット連結部31により、ビット変換部27b,28b,
29b,30bの出力が連結されて、第1のROM22
bのアドレスとして「0xde(0b11_01_11
_10)」が出力される。
【0122】図18より該当するアドレスのデータは、
「0x09070907」であるので、第1のROM2
2bは、「0x09070907」を出力する。よっ
て、出力レジスタ12には、「0x09070907」
が取り込まれる。以上の動作以外は実施の形態1の具体
例の場合と同様であるので説明を省略する。
【0123】次に、図10のステップS104におけ
る、符号長計算装置の動作について、他の具体例を用い
て説明する。4個の量子化前スペクトルデータとして、 「7(0x0000000007)」 「−3(0xfffffffffd)」 「0(0x0000000000)」 「5(0x0000000005)」 が、図10のステップS103で量子化されて、量子化
後スペクトルデータの絶対値として、 「4(0x0000000004)」 「2(0x0000000002)」 「0(0x0000000000)」 「3(0x0000000003)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「4」、「−
2」、「0」、「3」となる。
【0124】図20は、量子化後のスペクトルデータ、
及び量子化前の符号が符号長計算装置2bに入力された
場合の、各レジスタや、アドレス生成部、あるいはRO
Mの出力を示した図である。プロセッサ1は、量子化前
のスペクトルデータをサイン符号入力レジスタ8,9,
10,11に順次書き込む。サイン符号入力レジスタ
8,9,10,11には最上位ビットが取り込まれるの
で、サイン符号入力レジスタ8,9,10,11のそれ
ぞれの値は、「0b0」、「0b1」、「0b0」、
「0b0」となる。次に、プロセッサ1は、量子化後ス
ペクトルデータの絶対値を絶対値入力レジスタ4,5,
6,7に順次書き込む。絶対値入力レジスタ4,5,
6,7には下位5ビットが取り込まれるので、絶対値入
力レジスタ4,5,6,7のそれぞれの値は、「0b0
0100」、「0b00010」、「0b0000
0」、「0b00011」となる。
【0125】第1のアドレス生成部17b内のビット変
換部27bには、絶対値入力レジスタ4の下位2ビット
の値「0b00」と、サイン符号入力レジスタ8の値
「0b0」とが入力される。図17の真理値表より、ビ
ット変換部27bの出力は「0b10」となる。第1の
アドレス生成部17b内のビット変換部28bには、絶
対値入力レジスタ5の下位2ビットの値「0b10」
と、サイン符号入力レジスタ9の値「0b1」とが入力
される。図17の真理値表より、ビット変換部28bの
出力は「0b00」となる。第1のアドレス生成部17
b内のビット変換部29bには、絶対値入力レジスタ6
の下位2ビットの値「0b00」と、サイン符号入力レ
ジスタ10の値「0b0」とが入力される。図17の真
理値表より、ビット変換部29bの出力は「0b10」
となる。第1のアドレス生成部17b内のビット変換部
30bには、絶対値入力レジスタ7の下位2ビットの値
「0b11」と、サイン符号入力レジスタ11の値「0
b0」とが入力される。図17の真理値表より、ビット
変換部30bの出力は「0b01」となる。そして、ビ
ット連結部31により、ビット変換部27b,28b,
29b,30bの出力が連結されて、第1のROM22
bのアドレスとして「0x89(0b10_00_10
_01)」が出力される。図18より該当するアドレス
のデータは、「0x00000c0a」であるので、第
1のROM22bは、「0x00000c0a」を出力
する。よって、出力レジスタ12には、「0x0000
0c0a」が取り込まれる。以上の動作以外は実施の形
態1の具体例の場合と同様であるので説明を省略する。
【0126】このように、本実施の形態2による符号長
計算装置2b、及び符号化装置によれば、実施の形態1
と同様の効果に加え、第1のアドレス生成部17b内の
ビット変換部27b,28b,29b,30bをより少
ないトランジスタで構成することができ、第1のアドレ
ス生成部17bをより簡単な構成とすることのできる効
果が得られる。
【0127】なお、実施の形態1及び2で示したビット
変換部27〜30,27b〜30b内のいずれかのアド
レスの上位ビットと下位ビットとを入れ替えても、それ
に対応するように第1のROM22,22bに保持する
データのアドレスを変更すれば同様に実施することがで
き、本発明と同様の効果が得られる。
【0128】また、実施の形態1及び2では、第2のR
OM23、及び第4のROM25が、256ワードの場
合を示した。しかし、第2のアドレス生成部18、及び
第4のアドレス生成部20が「0xcd」以上のアドレ
スを生成するときは、第2のアドレス生成部18、及び
第4のアドレス生成部20に入力される絶対値入力レジ
スタの値が「5」以上の場合だけである。よって、図3
7に示す絶対値の最大値の制限により、第2のROM2
3、及び第4のROM25に符号長が保持されているコ
ードブック5,6が、図10のステップS109で選択
されることはない。そこで、第2のROM23、及び第
4のROM25を、205ワード以上のROMで構成す
ることもできる。
【0129】また、実施の形態1及び2では、第3のR
OM24、及び第5のROM26が、384ワードの場
合を示した。しかし、第3のアドレス生成部19、及び
第5のアドレス生成部21に入力される絶対値は16以
下であるので、第3のアドレス生成部19、及び第5の
アドレス生成部21が「0x121」以上のアドレスを
生成することはない。そこで、第3のROM24、及び
第5のROM26を、289ワード以上のROMで構成
することもできる。
【0130】また、実施の形態1及び2では、第2のア
ドレス生成部18、及び第4のアドレス生成部20を簡
単に構成するために、入力される絶対値入力レジスタ、
サイン符号入力レジスタの値をビット連結してアドレス
を生成している。しかし、第2のアドレス生成部18、
及び第4のアドレス生成部20が、より複雑な構成にな
ってもよければ、以下のように構成することにより第2
のROM23、及び第4のROM25を81ワードで構
成することもできる。
【0131】第2のアドレス生成部18、及び第4のア
ドレス生成部20に入力される絶対値入力レジスタの値
をそれぞれA,Bとし、サイン符号入力レジスタの値を
それぞれE,Fとする。そして、Eが「0」のときG=
Aとし、Eが「1」のときG=−Aとする。また、Fが
「0」のときH=Bとし、Fが「1」のときH=−Bと
する。このとき、第2のアドレス生成部18、及び第4
のアドレス生成部20が出力するアドレスを、
【0132】 「address=9*(G+4)+H+4」 となるように、第2のアドレス生成部18、及び第4の
アドレス生成部20を構成する。そして、第2のROM
23、及び第4のROM25に保持する値を、第2のア
ドレス生成部18、及び第4のアドレス生成部20が出
力するアドレスに対応するアドレスの領域に保持する。
このように構成することにより、第2のROM23、及
び第4のROM25を81ワードで構成することがで
き、本発明と同様の効果が得られる。
【0133】なお、上述の第2のアドレス生成部18、
及び第4のアドレス生成部20の例では 「address=9*(G+4)+H+4」 の演算式を用いたが、 「address=10*(G+4)+H+4」 であっても、第2のROM23、及び第4のROM25
は89ワードあれば構成することができ、さらに、上述
のaddressの(G+4)の係数が9以上の同様の
係数であっても、本発明と同様の効果が得られる。
【0134】また、実施の形態1及び2での第3のアド
レス生成部19、及び第5のアドレス生成部21では、 「address=17*A+B」 の演算式を用いたが、 「address=18*A+B」 であっても、第3のROM24、及び第5のROM26
は5%程度しか容量が増えないので、上述のaddre
ssのAの係数が17以上の同様の係数であっても、本
発明と同様の効果が得られる。
【0135】また、実施の形態1及び2の具体例では、
量子化前のスペクトルデータをサイン符号入力レジスタ
8,9,10,11に順次入力した後、量子化後スペク
トルデータの絶対値を絶対値入力レジスタ4,5,6,
7に順次書き込んでいるが、入力する順番を変えても同
様に実施することができる。
【0136】(実施の形態3)本発明の実施の形態3に
よる符号化装置は、実施の形態1の符号化装置の符号長
計算装置2aを図21の符号長計算装置2cに置き換え
たものである。なお、符号長計算装置2c以外の構成、
及び符号長計算装置2cを用いる部分以外の動作は実施
の形態1と同じであり、説明を省略する。
【0137】図21は、本実施の形態3による符号長計
算装置2cの構成を示すブロック図である。符号長計算
装置2cは、4個の絶対値入力レジスタ4,5,6,7
と、4個のサイン符号入力レジスタ8,9,10,11
と、5個の出力レジスタ12c,13c,14c,15
c,16cと、第1から第3までのアドレス生成部1
7,18c,19cと、第1から第3までのROM2
2,23,24と、セレクタ32,33,34,35,
36,37と、ポインタレジスタ(以下、ポインタと略
す)38,39,40と、制御部41とを備える。な
お、絶対値入力レジスタ4,5,6,7と、サイン符号
入力レジスタ8,9,10,11とは、実施の形態1と
同様のものであり、説明を省略する。
【0138】制御部41は、セレクタ32,33,3
4,35,36,37の制御信号111と、ポインタ3
8,39,40の書き込み信号112と、出力レジスタ
12cの書き込み信号113と、出力レジスタ13c,
14cの書き込み信号114と、出力レジスタ15c,
16cの書き込み信号115とを出力する。セレクタ3
2は、制御信号111が「0」のとき、サイン符号入力
レジスタ8の値を選択し、「1」のとき、サイン符号入
力レジスタ10の値を選択して、その選択した値を第2
のアドレス生成部18cに出力する。
【0139】セレクタ33は、制御信号111が「0」
のとき、絶対値入力レジスタ4の値を選択し、「1」の
とき、絶対値入力レジスタ6の値を選択して、その選択
した値を第2のアドレス生成部18cに出力する。セレ
クタ34は、制御信号111が「0」のとき、サイン符
号入力レジスタ9の値を選択し、「1」のとき、サイン
符号入力レジスタ11の値を選択して、その選択した値
を第2のアドレス生成部18cに出力する。セレクタ3
5は、制御信号111が「0」のとき、絶対値入力レジ
スタ5の値を選択し、「1」のとき、絶対値入力レジス
タ7の値を選択して、その選択した値を第2のアドレス
生成部18cに出力する。
【0140】セレクタ36は、制御信号111が「0」
のとき、絶対値入力レジスタ4の値を選択し、「1」の
とき、絶対値入力レジスタ6の値を選択して、その選択
した値を第3のアドレス生成部19cに出力する。セレ
クタ37は、制御信号111が「0」のとき、絶対値入
力レジスタ5の値を選択し、「1」のとき、絶対値入力
レジスタ7の値を選択して、その選択した値を第3のア
ドレス生成部19cに出力する。
【0141】第1のアドレス生成部17は、実施の形態
1の第1のアドレス生成部17と同様のものであるので
説明を省略する。第2のアドレス生成部18cは、実施
の形態1の第2のアドレス生成部18と同様の機能を持
つものであり、絶対値入力レジスタ4,5からの入力
を、それぞれセレクタ33,35からの入力に、サイン
符号入力レジスタ8,9からの入力をそれぞれセレクタ
32,34からの入力に変えたものである。第3のアド
レス生成部19cは、実施の形態1の第3のアドレス生
成部19と同様の機能を持つものであり、絶対値入力レ
ジスタ4,5からの入力を、それぞれセレクタ36,3
7からの入力に変えたものである。ポインタ38,3
9,40は、それぞれ第1、第2、第3のアドレス生成
部17,18,19から出力されたアドレスを、制御部
41からの書き込み信号112が「1」のときに読み込
む。
【0142】第1のROM22は、ポインタ38の値を
アドレスとして受け取り、アドレスに対応するデータの
値を出力レジスタ12cに出力する。第1のROM22
に格納されているデータは、図42で示される実施の形
態1の第1のROM22に格納されているデータと同じ
ものである。第2のROM23は、ポインタ39の値を
アドレスとして受け取り、アドレスに対応するデータの
値を出力レジスタ13cまたは15cに出力する。第2
のROM23に格納されているデータは、図6で示され
る実施の形態1の第2のROM23に格納されているデ
ータと同じものである。第3のROM24は、ポインタ
40の値をアドレスとして受け取り、アドレスに対応す
るデータの値を出力レジスタ14cまたは16cに出力
する。第3のROM24に格納されているデータは、図
8で示される実施の形態1の第3のROM24に格納さ
れているデータと同じものである。
【0143】出力レジスタ12cは、32ビットのレジ
スタであり、制御部41からの書き込み信号113が
「1」のとき、第1のROM22からのデータを読み込
む。出力レジスタ12cには、ハフマンコードブック1
から4で符号化した場合の符号長がセットされる。出力
レジスタ13c,15cは、16ビットのレジスタであ
り、それぞれ制御部41からの書き込み信号114,1
15が「1」のとき、第2のROM23からのデータを
読み込む。出力レジスタ13c,15cにはハフマンコ
ードブック5、及び6で符号化した場合の符号長がセッ
トされる。出力レジスタ14c,16cは、40ビット
のレジスタであり、それぞれ制御部41からの書き込み
信号114,115が「1」のとき、第3のROM24
からのデータを読み込む。出力レジスタ14c,16c
にはハフマンコードブック7から11で符号化した場合
の符号長がセットされる。プロセッサ1は出力レジスタ
12c,13c,14c,15c,16cの値を読むこ
とができる。
【0144】セレクタ32,33,34,35,36,
37への制御信号111が「1」になるのは、絶対値入
力レジスタ6または7への書き込み命令が実行された次
のクロック期間である。それ以外の場合は「0」であ
る。ポインタ38,39,40への書き込み信号112
が「1」になるのは、絶対値入力レジスタ4、5、6、
あるいは7への書き込み命令が実行された次のクロック
期間である。それ以外の場合は「0」である。
【0145】出力レジスタ12cへの書き込み信号11
3が「1」になるのは、絶対値入力レジスタ4、5、
6、あるいは7への書き込み命令が実行された次の次の
クロック期間である。それ以外の場合は「0」である。
出力レジスタ13c,14cへの書き込み信号114が
「1」になるのは、絶対値入力レジスタ4または5への
書き込み命令が実行された次の次のクロック期間であ
る。それ以外の場合は「0」である。出力レジスタ15
c,16cへの書き込み信号115が「1」になるの
は、絶対値入力レジスタ6または7への書き込み命令が
実行された次の次のクロック期間である。それ以外の場
合は「0」である。
【0146】本実施の形態3によるAACの符号化装置
の動作は、図10のステップS104を除いて実施の形
態1の符号化装置の動作と同じである。ステップS10
4ないしS109における、本実施の形態3による符号
長計算装置2c、及びプロセッサ1の動作について、具
体例を用いて説明する。
【0147】4個の量子化前スペクトルデータとして、 「1(0x0000000001)」 「−1(0xffffffffff)」 「1(0x0000000001)」 「0(0x0000000000)」 が、図10のステップS103で量子化されて、量子化
後スペクトルデータの絶対値として、 「1(0x0000000001)」 「1(0x0000000001)」 「1(0x0000000001)」 「0(0x0000000000)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「1」、「−
1」、「1」、「0」となる。
【0148】図22は、上記の各値の符号長計算装置2
cへの入力、並びにポインタ38〜40、出力レジスタ
12c〜16c、及び制御部41の動作を示すタイミン
グチャートである。プロセッサ1、及び符号長計算装置
2cは、クロックの立ち上がりを基準にして動作するも
のとする。プロセッサ1で実行された命令は、次のクロ
ックの立ち上がりでその結果がレジスタ等に反映され
る。以下、特に記述される場合以外は、制御部41から
出力される制御信号111、及び書き込み信号112,
113,114,115は、「0」であるとする。ま
ず、区間t101では、プロセッサ1が量子化前のスペ
クトルデータ「1(0x0000000001)」を、
サイン符号入力レジスタ8に書き込む命令を実行する。
次に、区間t102では、区間t101でサイン符号入
力レジスタ8に「1(0x0000000001)」を
書き込む命令が実行されているので、サイン符号入力レ
ジスタ8に最上位ビットである「0b0」が反映され
る。また、プロセッサ1は量子化前のスペクトルデータ
「−1(0xffffffffff)」を、サイン符号
入力レジスタ9に書き込む命令を実行する。
【0149】そして、区間t103では、区間t102
でサイン符号入力レジスタ9に「−1(0xfffff
fffff)」を書き込む命令が実行されているので、
サイン符号入力レジスタ9に最上位ビットである「0b
1」が反映される。また、プロセッサ1は量子化前のス
ペクトルデータ「1(0x0000000001)」
を、サイン符号入力レジスタ10に書き込む命令を実行
する。
【0150】区間t104では、区間t103でサイン
符号入力レジスタ10に「1(0x000000000
1)」を書き込む命令が実行されているので、サイン符
号入力レジスタ10に最上位ビットである「0b0」が
反映される。また、プロセッサ1は量子化前のスペクト
ルデータ「0(0x0000000000)」を、サイ
ン符号入力レジスタ11に書き込む命令を実行する。
【0151】区間t105では、区間t104でサイン
符号入力レジスタ11に「0(0x000000000
0)」を書き込む命令が実行されているので、サイン符
号入力レジスタ11に最上位ビットである「0b0」が
反映される。また、プロセッサ1は量子化後のスペクト
ルデータの絶対値「1(0x0000000001)」
を、絶対値入力レジスタ4に書き込む命令を実行する。
【0152】区間t106では、区間t105で絶対値
入力レジスタ4に「1(0x0000000001)」
を書き込む命令が実行されているので、絶対値入力レジ
スタ4に下位5ビットである「0b00001」が反映
される。
【0153】制御部41は、区間t105で絶対値入力
レジスタ4への書き込み命令が実行されているので、ポ
インタ38〜40の書き込み信号112として「1」を
出力する。また、プロセッサ1は量子化後のスペクトル
データの絶対値「1(0x0000000001)」
を、絶対値入力レジスタ5に書き込む命令を実行する。
【0154】次に、区間t107では、区間t106で
絶対値入力レジスタ5に「1(0x000000000
1)」を書き込む命令が実行されているので、絶対値入
力レジスタ5に下位5ビットである「0b00001」
が反映される。
【0155】制御部41は、区間t106で絶対値入力
レジスタ5への書き込み命令が実行されているので、ポ
インタ38〜40の書き込み信号112として「1」を
出力する。また、区間t105で絶対値入力レジスタ4
への書き込み命令が実行されているので、出力レジスタ
12cの書き込み信号113として「1」を出力し、出
力レジスタ13c、14cの書き込み信号114として
「1」を出力する。
【0156】区間t106でポインタ38〜40の書き
込み信号112が「1」であるので、サイン符号入力レ
ジスタ8,9,10,11と、絶対値入力レジスタ4,
5,6,7との区間t106での値を第1のアドレス生
成部17に入力した値がポインタ38に反映される。区
間t106でポインタ38〜40の書き込み信号112
が「1」、セレクタ32〜37の制御信号111が
「0」であるので、サイン符号入力レジスタ8,9と、
絶対値入力レジスタ4,5との区間t106での値を第
2のアドレス生成部18cに入力した値がポインタ39
に反映され、絶対値入力レジスタ4,5の区間t106
での値を第3のアドレス生成部19cに入力した値がポ
インタ40に反映される。また、プロセッサ1は量子化
後のスペクトルデータの絶対値「1(0x000000
0001)」を、絶対値入力レジスタ6に書き込む命令
を実行する。
【0157】次に、区間t108では、区間t107で
絶対値入力レジスタ6に「1(0x000000000
1)」を書き込む命令が実行されているので、絶対値入
力レジスタ6に下位5ビットである「0b00001」
が反映される。制御部41は、区間t107で絶対値入
力レジスタ6への書き込み命令が実行されているので、
セレクタ32〜37の制御信号111として「1」を出
力し、ポインタ38〜40の書き込み信号112として
「1」を出力する。
【0158】また、区間t106で絶対値入力レジスタ
5への書き込み命令が実行されているので、出力レジス
タ12cの書き込み信号113として「1」を出力し、
出力レジスタ13c,14cの書き込み信号114とし
て「1」を出力する。
【0159】区間t107でポインタ38〜40の書き
込み信号112が「1」であるので、サイン符号入力レ
ジスタ8,9,10,11と、絶対値入力レジスタ4,
5,6,7との区間t107での値を第1のアドレス生
成部17に入力した値がポインタ38に反映される。区
間t107でポインタ38〜40の書き込み信号112
が「1」、セレクタ32〜37の制御信号111が
「0」であるので、サイン符号入力レジスタ8,9の区
間t107での値(それぞれ0b0,0b1)と、絶対
値入力レジスタ4,5の区間t107での下位3ビット
の値(それぞれ0b001,0b001)とを第2のア
ドレス生成部18cに入力した値(0x19)がポイン
タ39に反映される。区間t107でポインタ38〜4
0の書き込み信号112が「1」、セレクタ32〜37
の制御信号111が「0」であるので、絶対値入力レジ
スタ4,5の区間t107での値(それぞれ0b000
01,0b00001)を第3のアドレス生成部19c
に入力した値(0x12)がポインタ40に反映され
る。
【0160】区間t107で出力レジスタ12cの書き
込み信号113の値が「1」であるので、区間t107
でのポインタ38の値をアドレスとする第1のROM2
2の値が出力レジスタ12cに反映される。区間t10
7で出力レジスタ13cの書き込み信号114の値が
「1」であるので、区間t107でのポインタ39の値
をアドレスとする第2のROM23の値が出力レジスタ
13cに反映される。区間t107で出力レジスタ14
cの書き込み信号114の値が「1」であるので、区間
t107でのポインタ40の値をアドレスとする第3の
ROM24の値が出力レジスタ14cに反映される。ま
た、プロセッサ1は量子化後のスペクトルデータの絶対
値「0(0x0000000000)」を、絶対値入力
レジスタ7に書き込む命令を実行する。
【0161】次に、区間t109では、区間t108で
絶対値入力レジスタ7に「0(0x000000000
0)」を書き込む命令が実行されているので、サイン符
号入力レジスタ7に下位5ビットである「0b0000
0」が反映される。制御部41は、区間t108で絶対
値入力レジスタ7への書き込み命令が実行されているの
で、セレクタ32〜37の制御信号111として「1」
を、ポインタ38〜40の書き込み信号112として
「1」を出力する。
【0162】また、区間t107で絶対値入力レジスタ
6への書き込み命令が実行されているので、出力レジス
タ12cの書き込み信号113として「1」を、出力レ
ジスタ15c、16cの書き込み信号115として
「1」を出力する。
【0163】区間t108でポインタの書き込み信号1
12が「1」であるので、サイン符号入力レジスタ8,
9,10,11と、絶対値入力レジスタ4,5,6,7
との区間t108での値を第1のアドレス生成部17に
入力した値がポインタ38に反映される。区間t108
でポインタの書き込み信号112が「1」、セレクタ3
2〜37の制御信号111が「1」であるので、サイン
符号入力レジスタ10,11の区間t108での値と、
絶対値入力レジスタ6,7の区間t108での下位3ビ
ットの値とを第2のアドレス生成部18cに入力した値
がポインタ39に反映される。区間t108でポインタ
の書き込み信号112が「1」、セレクタ32〜37の
制御信号111が「1」であるので、絶対値入力レジス
タ6,7の区間t108での値を第3のアドレス生成部
19cに入力した値がポインタ40に反映される。区間
t108で出力レジスタ12cの書き込み信号113の
値が「1」であるので、区間t108でのポインタ38
の値をアドレスとする第1のROM22の値が出力レジ
スタ12cに反映される。区間t108で出力レジスタ
13cの書き込み信号114の値が「1」であるので、
区間t108でのポインタ39の値(0x19)をアド
レスとする第2のROM23の値(0x0504)が出
力レジスタ13cに反映される。区間t108で出力レ
ジスタ14cの書き込み信号114の値が「1」である
ので、区間t108でのポインタ40の値(0x12)
をアドレスとする第3のROM24の値(0x0605
060606)が出力レジスタ14cに反映される。
【0164】次に、区間t110において、制御部41
は区間t108で絶対値入力レジスタ7への書き込み命
令が実行されているので、出力レジスタ12cの書き込
み信号113として「1」を、出力レジスタ15c,1
6cの書き込み信号115として「1」を出力する。
【0165】区間t109でポインタ38〜40の書き
込み信号112が「1」であるので、サイン符号入力レ
ジスタ8,9,10,11の区間t109での値(それ
ぞれ0b0,0b1,0b0,0b0)と、区間t10
9での絶対値入力レジスタ4,5,6,7の下位2ビッ
トの値(それぞれ0b01,0b01,0b01,0b
00)とを第1のアドレス生成部17に入力したときに
出力される値(0x74)がポインタ38に反映され
る。区間t109でポインタ38〜40の書き込み信号
112が「1」、セレクタ32〜37の制御信号111
が「1」であるので、サイン符号入力レジスタ10,1
1の区間t109での値(それぞれ0b0,0b0)
と、絶対値入力レジスタ6,7の区間t109での下位
3ビットの値(0b001,0b000)とを第2のア
ドレス生成部18cに入力したときに出力される値(0
x10)がポインタ39に反映される。区間t109で
ポインタ38〜40の書き込み信号112が「1」、セ
レクタ32〜37の制御信号111が「1」であるの
で、絶対値入力レジスタ6,7の区間t109での値
(それぞれ0b00001,0b00000)を第3の
アドレス生成部19cに入力したときに出力される値
(0x11)がポインタ40に反映される。区間t10
9で出力レジスタ12cの書き込み信号113の値が
「1」であるので、区間t109でのポインタ38の値
をアドレスとする第1のROM22の値が出力レジスタ
12cに反映される。区間t109で出力レジスタ15
cの書き込み信号115の値が「1」であるので、区間
t109でのポインタ39の値をアドレスとする第2の
ROM23の値が出力レジスタ15cに反映される。区
間t109で出力レジスタ16cの書き込み信号115
の値が「1」であるので、区間t109でのポインタ4
0の値をアドレスとする第3のROM24の値が出力レ
ジスタ16cに反映される。
【0166】次に、区間t111において、区間t11
0で出力レジスタ12cの書き込み信号113の値が
「1」であるので、区間t110でのポインタ38の値
(0x74)をアドレスとする第1のROM22の値
(0x09070907)が出力レジスタ12cに反映
される。区間t110で出力レジスタ15cの書き込み
信号115の値が「1」であるので、区間t110での
ポインタ39の値(0x10)をアドレスとする第2の
ROM23の値(0x0404)が出力レジスタ15c
に反映される。区間t110で出力レジスタ16cの書
き込み信号115の値が「1」であるので、区間t11
0でのポインタ40の値(0x11)をアドレスとする
第3のROM24の値(0x0405040606)が
出力レジスタ16cに反映される。以上の動作の後、プ
ロセッサ1は、出力レジスタ12cから値「0x090
70907」を読み出す。
【0167】次に、図10のステップS105におい
て、プロセッサ1は、出力レジスタ13cと15cとか
ら読み出した値を合計し「0x0908」を得る。さら
に、出力レジスタ14cと16cとから読み出した値を
合計し「0x0a0a0a0c0c」を得る。そして、
ステップS106において、出力レジスタ12cの値、
出力レジスタ13cと15cとの値の合計、及び出力レ
ジスタ14cと16cとの値の合計を、プロセッサ1で
8ビット毎に分解することにより、ハフマンコードブッ
ク1から11により符号化した符号長としてそれぞれ
「9」、「7」、「9」、「7」、「9」、「8」、
「10」、「10」、「10」、「12」、「12」を
得る。
【0168】なお、4つの量子化後スペクトルデータの
絶対値の最大値は1であるので、図37より図10のス
テップS109でハフマンコードブック1〜11の中か
らいずれかを選択できる。そこで、ステップS109で
は、ハフマンコードブック1〜11の中で一番小さい符
号長に符号化できるコードブック2、あるいは4を選択
する。
【0169】このように、本実施の形態3による符号長
計算装置2c、及び符号化装置によれば、プロセッサ1
においてサイン符号付きの量子化後のスペクトルデータ
を計算する必要がなく、また、符号長計算装置2cにお
いてコードブック1から11で符号化した場合の符号長
を求めることができ、プロセッサ1にコードブック11
で符号化する場合の符号長を求めさせる必要がないた
め、プロセッサ1における処理負担を大幅に軽減するこ
とができる。また、ROMの容量も合計で、27,64
8ビットとなり、従来の符号長計算装置に比べてROM
の容量を4分の1強にすることが可能である。さらに、
データ幅として40ビットを扱えれば充分なので、48
ビットプロセッサではなく、より規模の小さい40ビッ
トプロセッサを使用することができる。
【0170】(実施の形態4)図23は、本発明の実施
の形態4による符号化装置の構成を示すブロック図であ
る。本実施の形態4の符号化装置は、16ビットのデー
タバスを備えるプロセッサ42と、データを保持するメ
モリ3と、ハフマン符号化後の符号長の値を計算する符
号長計算装置2dとを備える。16ビットのデータバス
を備えるプロセッサ42は、実施の形態3で示したプロ
セッサ1と同様に図10に示した処理のうち、コードブ
ック1から11までのコードブックで符号化した場合の
符号長を求める処理以外の処理を行う。絶対値が16以
上の場合のエスケープコード分の符号長の計算もプロセ
ッサ42で行う。メモリ3は、実施の形態3で示したメ
モリ3と同様に量子化前後のスペクトルデータや符号化
後のストリームデータや量子化のためのテーブルを保持
する。符号長計算装置2dは、コードブック1から11
により符号化した場合の符号長を求める処理を行う。実
施の形態3におけるプロセッサ1で行う処理は、プロセ
ッサ42で行う。また、符号長計算装置2dを使う部分
以外の動作は実施の形態3と同じであり、説明を省略す
る。
【0171】図24は、本実施の形態4による符号長計
算装置2dの構成を示すブロック図である。符号長計算
装置2dは、4個の絶対値入力レジスタ4,5,6,7
と、4個のサイン符号入力レジスタ8,9,10,11
と、5個の出力レジスタ12d,13d,14d,15
d,16dと、第1から第3までのアドレス生成部1
7,18c,19cと、第1から第3までのROM22
d,23d,24dと、セレクタ32,33,34,3
5,36,37と、ポインタ38,39,40と、制御
部41と、第1から第5までのビット分割部43,4
4,45,46,47とを備える。
【0172】4個の絶対値入力レジスタ4,5,6,7
と、4個のサイン符号入力レジスタ8,9,10,11
と、第1から第3までのアドレス生成部17,18,1
9と、セレクタ32,33,34,35,36,37
と、ポインタ38,39,40と、制御部41とは、実
施の形態3と同様のものであるので説明を省略する。第
1のROM22dはワード幅17ビット、ワード長25
6ワードのROMである。
【0173】図25は、第1のROM22dに保持され
ているデータの一部を示す図である。図25において、
左の列のaddressは、第1のアドレス生成部17
から出力されるアドレスであり、右の列のdataはハ
フマンコードブック1,2,3,4による符号化後の符
号長を表すデータである。図26は、第1のROM22
dに格納されたデータの構成を示す図である。
【0174】ハフマンコードブック1で符号化された符
号で一番長いものは11ビットであるので、4ビットあ
れば符号長を表すことができる。ハフマンコードブック
2で符号化された符号で一番長いものは9ビットである
ので、4ビットあれば符号長を表すことができる。ハフ
マンコードブック3で符号化された符号で一番長いもの
は16ビットである。ハフマンコードブック3では、4
つのスペクトルデータの絶対値をハフマン符号化するの
で、サイン符号を表すビットは最大で4ビット付く。し
かし、1番長い16ビットの符号に符号化される場合の
4つのスペクトルデータうち1つは「0」なので、16
ビットに符号化される場合のサイン符号を表すビットは
3ビットしか付かない。よってサイン符号を表すビット
も加えた場合は最大で19ビットであるので、5ビット
あれば符号長を表すことができる。
【0175】ハフマンコードブック4で符号化された符
号で一番長いものは12ビットである。ハフマンコード
ブック4では、4つのスペクトルデータの絶対値をハフ
マン符号化するので、サイン符号を表すビットは最大で
4ビット付く。しかし、1番長い12ビットの符号に符
号化される場合の4つのスペクトルデータうち1つは
「0」なので、12ビットに符号化される場合のサイン
符号を表すビットは3ビットしか付かない。よってサイ
ン符号を表すビットも加えた場合は最大で15ビットで
あるので、4ビットあれば符号長を表すことができる。
第2のROM23dはワード幅8ビット、ワード長25
6ワードのROMである。
【0176】図27は、第2のROM23dに保持され
ているデータの一部を示す図である。図27において、
左の列のaddressは、第2のアドレス生成部18
cから出力されるアドレスであり、右の列のdataは
ハフマンコードブック5,6による符号化後の符号長を
表すデータである。
【0177】図28は、第2のROM23dの保持する
データの構成を示す図である。ハフマンコードブック5
で符号化された符号で一番長いものは13ビットである
ので、4ビットあれば符号長を表すことができる。ハフ
マンコードブック6で符号化された符号で一番長いもの
は11ビットであるので、4ビットあれば符号長を表す
ことができる。第3のROM24dはワード幅21ビッ
ト、ワード長384ワードのROMである。
【0178】図29は、第3のROM24dに保持され
ているデータの一部を示す図である。図29において、
左の列のaddressは、第3のアドレス生成部19
cから出力されるアドレスであり、右の列のdataは
ハフマンコードブック7,8,9,10,11による符
号化後の符号長を表すデータである。
【0179】図30は、第3のROM24dに格納され
たデータの構成を示す図である。ハフマンコードブック
7で符号化された符号で一番長いものは12ビットであ
り、サイン符号を表すビットも加えると合計での最大値
は14ビットであるので、4ビットあれば符号長を表す
ことができる。ハフマンコードブック8で符号化された
符号で一番長いものは10ビットであり、サイン符号を
表すビットも加えると合計での最大値は12ビットであ
るので、4ビットあれば符号長を表すことができる。ハ
フマンコードブック9で符号化された符号で一番長いも
のは15ビットであり、サイン符号を表すビットも加え
ると合計での最大値は17ビットであるので、5ビット
あれば符号長を表すことができる。ハフマンコードブッ
ク10で符号化された符号で一番長いものは12ビット
であり、サイン符号を表すビットも加えると合計での最
大値は14ビットであるので、4ビットあれば符号長を
表すことができる。ハフマンコードブック11で符号化
された符号で一番長いものは12ビットであり、サイン
符号を表すビットも加えると合計での最大値は14ビッ
トであるので、4ビットあれば符号長を表すことができ
る。
【0180】出力レジスタ12dは、17ビットのレジ
スタであり、制御部41からの書き込み信号113が
「1」のとき、第1のROM22dからのデータを読み
込む。出力レジスタ12dには、ハフマンコードブック
1から4で符号化した場合の符号長がセットされる。出
力レジスタ13d,15dは、8ビットのレジスタであ
り、それぞれ制御部41からの書き込み信号114,1
15が「1」のとき、第2のROM23dからのデータ
を読み込む。出力レジスタ13d,15dにはハフマン
コードブック5、及び6で符号化した場合の符号長がセ
ットされる。出力レジスタ14d,16dは、21ビッ
トのレジスタであり、それぞれ制御部41からの書き込
み信号114,115が「1」のとき、第3のROM2
4dからのデータを読み込む。出力レジスタ14d,1
6dにはハフマンコードブック7から11で符号化した
場合の符号長がセットされる。
【0181】図31は、第1のビット分割部43におけ
るデータの分割と、連結とを説明するための図である。
第1のビット分割部43は、出力レジスタ12dの値を
分割し、プロセッサ42のアドレス0x0への出力12
0と、アドレス0x1への出力121とを出力する。第
1のビット分割部43は、「0x0(0b0000)」
と、出力レジスタ12dのハフマンコードブック1で符
号化した符号長にあたる部分と、「0x0(0b000
0)」と、出力レジスタ12dのハフマンコードブック
2で符号化した符号長にあたる部分とを連結した値をプ
ロセッサ42のアドレス0x0に出力する。同様に、
「0x0(0b000)」と、出力レジスタ12dのハ
フマンコードブック3で符号化した符号長にあたる部分
と、「0x0(0b0000)」と、出力レジスタ12
dのハフマンコードブック4で符号化した符号長にあた
る部分とを連結した値をプロセッサ42のアドレス0x
1に出力する。
【0182】図32は、第2のビット分割部44におけ
るデータの分割と、連結とを説明するための図である。
第2のビット分割部44は、出力レジスタ13dの値を
分割し、プロセッサ42のアドレス0x2への出力12
2を出力する。第2のビット分割部44は、「0x0
(0b0000)」と、出力レジスタ13dのハフマン
コードブック5で符号化した符号長にあたる部分と、
「0x0(0b0000)」と、出力レジスタ13dの
ハフマンコードブック6で符号化した符号長にあたる部
分とを連結した値をプロセッサ42のアドレス0x2に
出力する。
【0183】図33は、第3のビット分割部45におけ
るデータの分割と、連結とを説明するための図である。
第3のビット分割部45は、出力レジスタ14dの値を
分割し、プロセッサ42のアドレス0x04への出力1
24と、アドレス0x6への出力126と、アドレス0
x8への出力128とを出力する。第3のビット分割部
45は、「0x0(0b0000)」と、出力レジスタ
14dのハフマンコードブック7で符号化した符号長に
あたる部分と、「0x0(0b0000)」と、出力レ
ジスタ14dのハフマンコードブック8で符号化した符
号長にあたる部分とを連結した値をプロセッサ42のア
ドレス0x4に出力する。
【0184】同様に、「0x0(0b000)」と、出
力レジスタ14dのハフマンコードブック9で符号化し
た符号長にあたる部分と、「0x0(0b0000)」
と、出力レジスタ14dのハフマンコードブック10で
符号化した符号長にあたる部分とを連結した値をプロセ
ッサ42のアドレス0x6に出力する。同様に、「0x
000(0b000000000000)」と、出力レ
ジスタ14dのハフマンコードブック11で符号化した
符号長にあたる部分とを連結した値をプロセッサ42の
アドレス0x8に出力する。
【0185】第4のビット分割部46は、出力レジスタ
15dの値を分割し、プロセッサ42のアドレス0x3
への出力123を出力する。第4のビット分割部46は
第2のビット分割部44と同様の動作をする。第4のビ
ット分割部46は、「0x0(0b0000)」と、出
力レジスタ15dのハフマンコードブック5で符号化し
た符号長にあたる部分と、「0x0(0b0000)」
と、出力レジスタ15dのハフマンコードブック6で符
号化した符号長にあたる部分とを連結した値をプロセッ
サ42のアドレス0x3に出力する。
【0186】第5のビット分割部47は、出力レジスタ
16dの値を分割し、プロセッサ42のアドレス0x0
5への出力125と、アドレス0x7への出力127
と、アドレス0x9への出力129とを出力する。第5
のビット分割部47は第3のビット分割部45と同様の
動作をする。
【0187】第5のビット分割部47は、「0x0(0
b0000)」と、出力レジスタ16dのハフマンコー
ドブック7で符号化した符号長にあたる部分と、「0x
0(0b0000)」と、出力レジスタ16dのハフマ
ンコードブック8で符号化した符号長にあたる部分とを
連結した値をプロセッサ42のアドレス0x5に出力す
る。
【0188】同様に、「0x0(0b000)」と、出
力レジスタ16dのハフマンコードブック9で符号化し
た符号長にあたる部分と、「0x0(0b0000)」
と、出力レジスタ16dのハフマンコードブック10で
符号化した符号長にあたる部分とを連結した値をプロセ
ッサ42のアドレス0x7に出力する。同様に、「0x
000(0b000000000000)」と、出力レ
ジスタ16dのハフマンコードブック11で符号化した
符号長にあたる部分とを連結した値をプロセッサ42の
アドレス0x9に出力する。本実施の形態4のAACの
符号化装置の動作は、図10のステップS104を除い
て実施の形態3の符号化装置の動作と同じである。
【0189】次に、ステップS104ないしS109に
おける、本実施の形態4による符号長計算装置2d、及
びプロセッサ42の動作について、具体例を用いて説明
する。4個の量子化前スペクトルデータとして、 「1(0x0000000001)」 「−1(0xffffffffff)」 「1(0x0000000001)」 「0(0x0000000000)」 が、図10のステップS103で量子化されて、量子化
後スペクトルデータの絶対値として、 「1(0x0000000001)」 「1(0x0000000001)」 「1(0x0000000001)」 「0(0x0000000000)」 が求まったとする。もし、量子化後のスペクトルデータ
のサイン符号付きの値を求めたとすると、「1」、「−
1」、「1」、「0」となる。
【0190】図34は、ポインタ38〜40、出力レジ
スタ12d〜16d、及びビット分割部43〜47の動
作を示すタイミングチャートである。なお、第1から第
3までのROM22d,23d,24dと、出力レジス
タ12d,13d,14d,15d,16dと、第1か
ら第5までのビット分割部43,44,45,46,4
7以外の動作は実施の形態3の具体例の場合と同じであ
り、説明を省略する。また、特に記述される場合以外
は、制御部41から出力される制御信号111、書き込
み信号112,113,114,115は、「0」であ
るとする。
【0191】区間t201から区間t206までは実施
の形態3における図10のタイミングチャートの区間t
101から区間t106までと同様であるので説明を省
略する。区間t207では、制御部41は、区間t20
5で絶対値入力レジスタ4への書き込み命令が実行され
ているので、出力レジスタ12dの書き込み信号113
として「1」を出力し、出力レジスタ13d,14dの
書き込み信号114として「1」を出力する。それ以外
の動作は実施の形態3の具体例の区間t207と同様で
あるので説明を省略する。
【0192】区間t208では、制御部41は、区間t
206で絶対値入力レジスタ5への書き込み命令が実行
されているので、出力レジスタ12dの書き込み信号1
13として「1」を出力し、出力レジスタ13d,14
dの書き込み信号114として「1」を出力する。
【0193】区間t207で出力レジスタ12dの書き
込み信号113の値が「1」であるので、区間t207
でのポインタ38の値をアドレスとする第1のROM2
2dの値が出力レジスタ12dに反映される。区間t2
07で出力レジスタ13dの書き込み信号114の値が
「1」であるので、区間t207でのポインタ39の値
をアドレスとする第2のROM23dの値が出力レジス
タ13dに反映される。区間t207で出力レジスタ1
4dの書き込み信号114の値が「1」であるので、区
間t207でのポインタ40の値をアドレスとする第3
のROM24dの値が出力レジスタ14dに反映され
る。
【0194】出力レジスタ12dからの出力の値が第1
のビット分割部43により分割されて、アドレス0x0
への出力120、アドレス0x1への出力121が出力
される。出力レジスタ13dからの出力の値が第2のビ
ット分割部44により分割されて、アドレス0x2への
出力122が出力される。出力レジスタ14dからの出
力の値が第3のビット分割部45により分割されて、ア
ドレス0x4への出力124、アドレス0x6への出力
126、アドレス0x8への出力128が出力される。
それ以外の動作は実施の形態3の具体例の区間t108
と同様であるので説明を省略する。
【0195】区間t209では、制御部41は、区間t
207で絶対値入力レジスタ6への書き込み命令が実行
されているので、出力レジスタ12dの書き込み信号1
13と、出力レジスタ15d,16dの書き込み信号1
15として「1」を出力する。区間t208で出力レジ
スタ12dの書き込み信号113の値が「1」であるの
で、区間t208でのポインタ38の値をアドレスとす
る第1のROM22dの値が出力レジスタ12dに反映
される。区間t208で出力レジスタ13dの書き込み
信号114の値が「1」であるので、区間t208での
ポインタ39の値(0x19)をアドレスとする第2の
ROM23dの値は、図27より「0x54」であるの
で出力レジスタ13dには「0x54」が反映される。
区間t208で出力レジスタ14dの書き込み信号11
4の値が「1」であるので、区間t208でのポインタ
40の値(0x12)をアドレスとする第3のROM2
4dの値は、図29より「0x0ca666」であるの
で出力レジスタ14dには「0x0ca666」が反映
される。出力レジスタ12dからの出力の値が第1のビ
ット分割部43により分割されて、アドレス0x0への
出力120と、アドレス0x1への出力121とが出力
される。
【0196】出力レジスタ13dからの出力の値(0x
054)が第2のビット分割部44により上位4ビット
と、下位4ビットとに分割され、それらの間に「0」を
挿入して、アドレス0x2への出力122として「0x
0504」が出力される。出力レジスタ14dからの出
力の値(0x0ca666)が第3のビット分割部45
により、下位から4ビット、4ビット、5ビット、4ビ
ット、4ビットに分割される。そして、それらの間に
「0」を挿入することにより、アドレス0x4への出力
124として「0x0605」、アドレス0x6への出
力126として「0x0606」、アドレス0x8への
出力128として「0x0006」が出力される。それ
以外の動作は実施の形態3の具体例の区間t109と同
様であるので説明を省略する。
【0197】区間t210では、制御部41は、区間t
208で絶対値入力レジスタ7への書き込み命令が実行
されているので、出力レジスタ12dの書き込み信号1
13として「1」を出力し、出力レジスタ15d,16
dの書き込み信号115として「1」を出力する。区間
t209で出力レジスタ12dの書き込み信号113の
値が「1」であるので、区間t209でのポインタ38
の値をアドレスとする第1のROM22dの値が出力レ
ジスタ12dに反映される。区間t209で出力レジス
タ15dの書き込み信号115の値が「1」であるの
で、区間t209でのポインタ39の値をアドレスとす
る第2のROM23dの値が出力レジスタ15dに反映
される。区間t209で出力レジスタ16dの書き込み
信号115の値が「1」であるので、区間t209での
ポインタ40の値をアドレスとする第3のROM24d
の値が出力レジスタ16dに反映される。
【0198】出力レジスタ12dからの出力の値が第1
のビット分割部43により分割されて、アドレス0x0
への出力120と、アドレス0x1への出力121とが
出力される。出力レジスタ15dからの出力の値が第4
のビット分割部46により分割されて、アドレス0x3
への出力123が出力される。出力レジスタ16dから
の出力した値が第5のビット分割部47により分割され
て、アドレス0x5への出力125と、アドレス0x7
への出力127と、アドレス0x9への出力129とが
出力される。それ以外の動作は実施の形態3の具体例の
区間t110と同様であり、説明を省略する。
【0199】区間t211では、区間t210で出力レ
ジスタ12dの書き込み信号113の値が「1」である
ので、区間t210でのポインタ38の値(0x74)
をアドレスとする第1のROM22dの値は、図25よ
り「0x12e97」であるので出力レジスタ12dに
は「0x12e97」が反映される。区間t210で出
力レジスタ15dの書き込み信号115の値が「1」で
あるので、区間t210でのポインタ39の値(0x1
0)をアドレスとする第2のROM23dの値は、図2
7より「0x44」であるので出力レジスタ15dには
「0x44」が反映される。区間t210で出力レジス
タ16dの書き込み信号115の値が「1」であるの
で、区間t210でのポインタ40の値(0x11)を
アドレスとする第3のROM24dの値は図29より
「0x08a466」であるので出力レジスタ16dに
は「0x08a466」が反映される。
【0200】出力レジスタ12dからの出力の値(0x
12e97)が第1のビット分割部43により、下位か
ら4ビット、5ビット、4ビット、4ビットに分割され
る。そして、それらの間に「0」を挿入することによ
り、アドレス0x0への出力120として「0x090
7」、アドレス0x1への出力121として「0x09
07」が出力される。
【0201】出力レジスタ15dからの出力の値(0x
44)が第4のビット分割部46により上位4ビット
と、下位4ビットとに分割され、それらの間に「0」を
挿入して、アドレス0x2への出力122として「0x
0404」が出力される。
【0202】出力レジスタ16dからの出力の値(0x
08a466)が第5のビット分割部47により、下位
から4ビット、4ビット、5ビット、4ビット、4ビッ
トに分割される。そして、それらの間に「0」を挿入す
ることにより、アドレス0x5への出力125として
「0x0405」、アドレス0x7への出力127とし
て「0x0406」、アドレス0x9への出力129と
して「0x0006」が出力される。
【0203】以上の動作の後、プロセッサ42は、アド
レス0x0から「0x0907」、アドレス0x1から
「0x0907」を読み出す。次に、アドレス0x2と
アドレス0x3から読み出した値を合計し「0x090
8」を得る。さらに、アドレス0x04とアドレス0x
5からの値、アドレス0x6とアドレス0x7からの
値、アドレス0x8とアドレス0x9からの値を合計
し、それぞれ「0x0a0a」「0x0a0c」、「0
x000c」を得る。
【0204】これらの値をプロセッサ42で8ビット毎
に分解することにより、ハフマンコードブック1から1
1までの符号長を符号化した値としてそれぞれ「9」、
「7」、「9」、「7」、「9」、「8」、「10」、
「10」、「10」、「12」、「12」を得る。
【0205】なお、4つの量子化後スペクトルデータの
絶対値の最大値は1であるので、図37より図10のス
テップS109でハフマンコードブック1〜11の中か
らいずれかを選択できる。そこで、ステップS109で
は、ハフマンコードブック1〜11の中で一番小さい符
号長に符号化できるコードブック2、あるいは4を選択
する。
【0206】このように、本実施の形態4による符号長
計算装置2d、及び符号化装置によれば、プロセッサ4
2においてサイン符号付きの量子化後のスペクトルデー
タを計算する必要がなく、また、符号長計算装置2dに
おいてコードブック1から11で符号化する場合の符号
長を求めることができ、プロセッサ42にコードブック
11で符号化する場合の符号長を求めさせる必要がない
ため、プロセッサ42における処理負担を大幅に軽減す
ることができる。また、ROMの容量も合計で、14,
464ビットとなり、従来の符号長計算装置に比べてR
OMの容量を13%ほどにすることができる。また、デ
ータ幅として16ビットを扱えれば充分なので、通常使
われない48ビットプロセッサではなく、より規模が小
さく、通常使われる16ビットプロセッサを使用するこ
とができる。さらに、ビット分割部で各ハフマンコード
ブックに対応する符号長を8ビット毎に区切っているの
で、プロセッサ1が符号長を加算するときに発生するか
もしれないオーバーフローに対しての対策が不要であ
る。
【0207】(実施の形態5)本発明の実施の形態5の
符号化装置は、実施の形態4の符号長計算装置2dを図
35に示すものに変えたものである。なお、他の構成、
及び符号長計算装置2eに関わる部分以外の動作は、実
施の形態4の符号化装置と同じであり、説明を省略す
る。図35は、本実施の形態5による符号長計算装置2
eの構成を示すブロック図である。符号長計算装置2e
は、4個の絶対値入力レジスタ4,5,6,7と、4個
のサイン符号入力レジスタ8,9,10,11と、5個
の出力レジスタ12d,13d,14d,15d,16
dと、第1から第3までのアドレス生成部17,18
c,19cと、第1から第3までのROM22d,23
d,24dと、セレクタ32,33,34,35,3
6,37と、ポインタ38,39,40と、制御部41
eと、ビット分割部43,44,45,46,47と、
セレクタ48,49,50とを備える。
【0208】制御部41e、及びセレクタ48,49,
50以外の構成は、実施の形態4と同様のものであり、
説明を省略する。セレクタ48は、制御部41eからの
制御信号116が「1」のとき、プロセッサ42からの
データを選択し、「1」以外のときは第1のアドレス生
成部17からの出力を選択して、ポインタ38に出力す
る。セレクタ49は、制御部41eからの制御信号11
7が「1」のとき、プロセッサ42からのデータを選択
し、「1」以外のときは第2のアドレス生成部18cか
らの出力を選択して、ポインタ39に出力する。セレク
タ50は、制御部41eからの制御信号118が「1」
のとき、プロセッサ42からのデータを選択し、「1」
以外のときは第3のアドレス生成部19cからの出力を
選択して、ポインタ40に出力する。
【0209】制御部41eは、実施の形態4の制御部4
1の動作に加えて、以下の動作を行う。プロセッサ42
がポインタ38に対応するアドレスにデータを書き込ん
だとき、制御部41eは、ポインタ38への書き込み信
号112として「1」を出力し、セレクタ48への制御
信号116として「1」を出力する。また、プロセッサ
42がポインタ38にデータを書き込んだ次のクロック
期間に、制御部41eは、出力レジスタ12dへの書き
込み信号113として「1」を出力する。プロセッサ4
2がポインタ39に対応するアドレスにデータを書き込
んだとき、制御部41eは、ポインタ39への書き込み
信号112として「1」を出力し、セレクタ49への制
御信号117として「1」を出力する。また、プロセッ
サ42がポインタ39にデータを書き込んだ次のクロッ
ク期間に、制御部41eは、出力レジスタ13dへの書
き込み信号114として「1」を出力する。
【0210】プロセッサ42がポインタ40に対応する
アドレスにデータを書き込んだとき、制御部41eは、
ポインタ40への書き込み信号112として「1」を出
力し、セレクタ50への制御信号118として「1」を
出力する。また、プロセッサ42がポインタ40にデー
タを書き込んだ次のクロック期間に、制御部41eは、
出力レジスタ14dへの書き込み信号114として
「1」を出力する。
【0211】また、プロセッサ42は、第1から第3の
ビット分割部43,44,45を通さずに出力レジスタ
12d,13d,14dの値を読むことができる。出力
レジスタ12dの値は、上位1ビットと下位16ビット
とに分けてプロセッサ42が読むことができるものとす
る。また、出力レジスタ14dの値は、上位5ビットと
下位16ビットとに分けてプロセッサ42が読むことが
できるものとする。絶対値入力レジスタ4,5,6,7
と、サイン符号入力レジスタ8,9,10,11とを通
してデータを入力する場合は、実施の形態4と同様であ
り、説明を省略する。
【0212】次に、プロセッサ42が第1から第3のア
ドレス生成部17,18c,19cを通さずに第1から
第3のROM22d,23d,24dのデータを読み出
す動作について説明する。まず、プロセッサ42が、ポ
インタ38に対応するアドレスに「0x74」を書き込
んだ場合について説明する。プロセッサ42が、ポイン
タ38に対応するアドレスに「0x74」を書き込むの
で、制御部41eは、セレクタ48の制御信号として
「1」を出力し、ポインタ38の書き込み信号112と
して「1」を出力する。セレクタ48の制御信号が
「1」であるので、セレクタ48はプロセッサ42から
の値を選択し、ポインタ38に「0x74」を出力す
る。ポインタ38の書き込み信号112が「1」である
ので、ポインタ38には「0x74」が書き込まれる。
次のクロックで出力レジスタ12dの書き込み信号11
3が「1」であるので、ポインタ38の値「0x74」
をアドレスとする第1のROM22dの値「0x12e
97」が、出力レジスタ12dに書き込まれる。プロセ
ッサ42は、出力レジスタ12dの値「0x12e9
7」を、上位1ビット「0x1」と、下位16ビット
「0x2e97」とに分けて読み込む。
【0213】同様に、プロセッサ42が、ポインタ39
に対応するアドレスに「0x19」を書き込んだ場合
は、出力レジスタ13dから「0x54」を読み出すこ
とができる。また、プロセッサ42が、ポインタ40に
対応するアドレスに「0x11」を書き込んだ場合は、
出力レジスタ14dの値「0x08a466」の上位5
ビット「0x08]と、下位16ビット「0xa46
6」とを読み出すことができる。
【0214】このように、本実施の形態5による符号長
計算装置2e、及び符号化装置によれば、実施の形態4
と同様の効果に加え、第1から第3のアドレス生成部1
7,18c,19cを通さずに第1から第3のROM2
2d,23d,24dへアドレスを与え、ROMの内容
を読み出すことができることより、ROMへ正しくデー
タが書き込まれているか否かを容易にテストすることが
できる効果が得られる。また、AACのハフマンエンコ
ードを行わない場合に、ROMに別のデータを記憶して
おくことができるので、ROMの領域を有効に使うこと
ができる。
【0215】なお、実施の形態5では、第1から第3の
アドレス生成部17,18c,19cを通さずに第1か
ら第3のROM22d,23d,24dへアドレスを与
え、ROMの内容を読み出すことができる機構を備えた
ものとしたが、同様の機構を実施の形態1から3の符号
長計算装置において設けてもよい。また、実施の形態3
ないし5では、第2のROM23,23dが、256ワ
ードの場合を示した。しかし、第2のアドレス生成部1
8cが「0xcd」以上のアドレスを生成するときは、
第2のアドレス生成部18cに入力される絶対値入力レ
ジスタの値が「5」以上の場合だけである。よって、図
37に示す絶対値の最大値の制限により、第2のROM
23,23dに符号長が保持されているコードブック
5,6が、図10のステップS109で選択されること
はない。そこで、第2のROM23,23dを205ワ
ード以上のROMで構成することもできる。
【0216】また、実施の形態3ないし5では、第3の
ROM24,24dが384ワードの場合を示した。し
かし、第3のアドレス生成部19cに入力される絶対値
は16以下であるので、第3のアドレス生成部19cが
「0x121」以上のアドレスを生成することはない。
そこで、第3のROM24,24dを289ワード以上
のROMで構成することもできる。また、実施の形態3
ないし5では、第2のアドレス生成部18cを簡単に構
成するために、入力される絶対値入力レジスタ、サイン
符号入力レジスタの値をビット連結してアドレスを生成
している。しかし、第2のアドレス生成部18cが、よ
り複雑な構成になってもよければ、以下のように構成す
ることにより第2のROM23,23dを81ワードで
構成することもできる。
【0217】第2のアドレス生成部18cに入力される
絶対値入力レジスタの値をA,Bとし、サイン符号入力
レジスタの値をE,Fとする。そして、Eが「0」のと
きG=Aとし、Eが「1」のときG=−Aとする。ま
た、Fが「0」のときH=Bとし、Fが「1」のときH
=−Bとする。このとき、第2のアドレス生成部18c
が出力するアドレスを、 「address=9*(G+4)+H+4」 となるように、第2のアドレス生成部18cを構成す
る。 そして、第2のROM23,23dに保持する値
を、第2のアドレス生成部18cが出力するアドレスに
対応するアドレスの領域に保持する。このように構成す
ることにより、第2のROM23,23dを81ワード
で構成することができ、本発明と同様の効果が得られ
る。
【0218】なお、上記の第2のアドレス生成部18c
の例では、 「address=9*(G+4)+H+4」 の演算式を用いたが、 「address=10*(G+4)+H+4」 であっても、第2のROM23,23dは89ワードあ
れば構成することができるので、(G+4)の係数が9
以上の同様の係数であっても、本発明と同様の効果が得
られる。
【0219】また、実施の形態3ないし5での第3のア
ドレス生成部19cでは、 「address=17*A+B」 の演算式を用いたが、 「address=18*A+B」 であっても、第3のROM24,24dは5%程度しか
容量が増えないので、Aの係数が17以上の同様の係数
であっても、本発明と同様の効果が得られる。
【0220】また、実施の形態3ないし5の具体例で
は、量子化前のスペクトルデータをサイン符号入力レジ
スタ8,9,10,11に順次入力しているが、入力す
る順番を変えても同様に実施することができる。また、
量子化後スペクトルデータの絶対値を絶対値入力レジス
タ4,5,6,7に順次書き込んでいるが、入力する順
番を変えても同様に実施することができる。
【0221】また、実施の形態3ないし5では、ポイン
タ38,39,40、出力レジスタ12〜16,12d
〜16dは、制御部41,41eからの書き込み信号が
「1」のとき、値を読み込む場合を示したが、制御部か
らの書き込み信号が「0」のときに読み込むようにして
も、制御部41,41eからの書き込み信号を反転させ
るさせることにより、実施の形態3ないし5で示した例
と同じ効果を示すように構成することができる。
【0222】また、実施の形態1ないし5では、テーブ
ル記憶手段としてROMで構成した場合を示したが、デ
ータを書き込む手段を用意することによりRAM(Ra
ndom Access Memory)で構成しても
よい。また、実施の形態1ないし5では、AACの符号
化装置を示した。しかし、アドレス生成部及び符号長を
記憶するROMの構成をMPEG−Audio Lay
er−3のハフマン符号に対応できるように変更するこ
とにより、実施の形態1ないし5で示したAACの符号
長計算装置と同様の量子化前のスペクトルデータと量子
化後スペクトルデータの絶対値を入力するとハフマン符
号化後の符号長を得ることができる符号長計算装置を構
成することができる。
【0223】そして、前記符号長計算装置を備えたMP
EG−Audio Layer−3の符号化装置を構成
することができる。また、この符号化装置ではプロセッ
サでサイン符号付きの量子化後のスペクトルデータを計
算する必要がないので本発明と同様の効果を得ることが
できる。
【0224】また、実施の形態1ないし5では、符号化
において用いるコードブックとして、AAC規格の11
個のハフマンコードブックを用いた場合について説明し
たが、使用するコードブックとして、11個のハフマン
コードブックの中から任意の個数のコードブックを選択
してもよく、また、AAC規格のハフマンコードブック
でないコードブックを選択してもよい。
【0225】
【発明の効果】請求項1〜3,5〜7,10,12,並
びに15〜17の符号化装置によれば、A個のデータ
(Aは2以上の整数)を組み合わせてインデックスを生
成し、前記インデックスをL個のコードブック(Lは、
1以上の整数)によりハフマン符号化した符号化後の符
号長を計算する符号長計算装置であって、前記A個のデ
ータの絶対値と、前記A個のデータのサイン情報とを含
むデータが入力されると、該データに対応したアドレス
を生成するアドレス生成手段と、前記L個のコードブッ
クの内、H個のコードブック(Hは、L以下の整数)に
より前記A個のデータをハフマン符号化した符号化後の
符号長を、前記アドレス生成手段が生成するアドレスに
対応した領域に保持するテーブル記憶手段とを備えたこ
とで、プロセッサにおいてサイン符号付きの量子化後の
スペクトルデータを計算する必要がなく、また、符号長
計算装置においてコードブック1から11で符号化する
場合の符号長を求めることができ、プロセッサにコード
ブック11で符号化する場合の符号長を求めさせる必要
がないため、プロセッサにおける処理負担を大幅に軽減
することができる。また、ROMの容量も従来の符号長
計算装置に比べて大幅に削減することが可能である。さ
らに、データ幅として40ビット、あるいは16ビット
を扱えれば充分なので、48ビットプロセッサではな
く、より規模の小さい40ビット、あるいは16ビット
プロセッサを使用することができる。
【0226】また、請求項8,9,11,13,14,
及び18の符号長計算装置によれば、ビット分割手段を
さらに備えたとこで、上述の効果に加え、ビット分割手
段で各ハフマンコードブックに対応する符号長を8ビッ
ト毎に区切っているので、プロセッサが符号長を加算す
るときに発生するかもしれないオーバーフローに対して
の対策が不要であるという効果が得られる。
【0227】また、請求項4、及び19の符号長計算装
置によれば、アドレス生成手段を経由せず、テーブル記
憶手段にアドレスを入力する経路を備えたことで、上述
の効果に加え、テーブル記憶手段に正しくデータが書き
込まれているか否かを容易に確認することができ、ま
た、ハフマン符号化を行わない場合には、テーブル記憶
手段に別のデータを記憶しておくことができ、テーブル
記憶手段の領域を有効に利用できる効果がある。
【0228】また、請求項20の符号化装置によれば、
請求項1ないし19のいずれか一つに記載の符号長計算
装置を備えたことで、プロセッサにおいてサイン符号付
きの量子化後のスペクトルデータを計算する必要がな
く、また、符号長計算装置においてコードブック1から
11で符号化する場合の符号長を求めることができ、プ
ロセッサにコードブック11で符号化する場合の符号長
を求めさせる必要がないため、プロセッサにおける処理
負担を大幅に軽減することができる効果が得られる。さ
らに、データ幅として40ビット、あるいは16ビット
を扱えれば充分なので、48ビットプロセッサではな
く、より規模の小さい40ビット、あるいは16ビット
プロセッサを使用できる効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による符号化装置の構成
を示すブロック図である。
【図2】本発明の実施の形態1による符号長計算装置の
構成を示すブロック図である。
【図3】本発明の実施の形態1による第1のアドレス生
成部の構成を示すブロック図である。
【図4】本発明の実施の形態1によるビット変換部の構
成を示す図である。
【図5】本発明の実施の形態1によるビット変換部の真
理値表を示す図である。
【図6】本発明の実施の形態1による第2のROM、及
び第4のROMに保持されているデータの一部を示す図
である。
【図7】本発明の実施の形態1による第2のROM、及
び第4のROMに保持されているデータの構造を示す図
である。
【図8】本発明の実施の形態1による第3のROM、及
び第5のROMに保持されているデータの一部を示す図
である。
【図9】本発明の実施の形態1による第3のROM、及
び第5のROMに保持されているデータの構造を示す図
である。
【図10】本発明の実施の形態1による符号化装置の動
作を示すフローチャートである。
【図11】本発明の実施の形態1による具体例での各構
成部分の出力を示す図である。
【図12】本発明の実施の形態1による具体例での各構
成部分の出力を示す図である。
【図13】本発明の実施の形態2による符号長計算装置
の構成を示すブロック図である。
【図14】本発明の実施の形態2による第1のアドレス
生成部の構成を示すブロック図である。
【図15】本発明の実施の形態2によるビット変換部の
構成を示す図である。
【図16】本発明の実施の形態2によるビット変換部の
トランジスタの構成を示す図である。
【図17】本発明の実施の形態2によるビット変換部の
真理値表を示す図である。
【図18】本発明の実施の形態2における第1のROM
に保持されているデータの一部を示す図である。
【図19】本発明の実施の形態2による具体例での各構
成部分の出力を示す図である。
【図20】本発明の実施の形態2による具体例での各構
成部分の出力を示す図である。
【図21】本発明の実施の形態3による符号長計算装置
の構成を示すブロック図である。
【図22】本発明の実施の形態3による各構成部分の動
作を示すタイミングチャートである。
【図23】本発明の実施の形態4による符号化装置の構
成を示すブロック図である。
【図24】本発明の実施の形態4による符号長計算装置
の構成を示すブロック図である。
【図25】本発明の実施の形態4による第1のROMに
保持されているデータの一部を示す図である。
【図26】本発明の実施の形態4による第1のROMに
保持されているデータの構造を示す図である。
【図27】本発明の実施の形態4による第2のROMに
保持されているデータの一部を示す図である。
【図28】本発明の実施の形態4による第2のROMに
保持されているデータの構造を示す図である。
【図29】本発明の実施の形態4による第3のROMに
保持されているデータの一部を示す図である。
【図30】本発明の実施の形態4による第3のROMに
保持されているデータの構造を示す図である。
【図31】本発明の実施の形態4による第1のビット分
割部を説明するための図である。
【図32】本発明の実施の形態4による第2と第4のビ
ット分割部を説明するための図である。
【図33】本発明の実施の形態4による第3と第5のビ
ット分割部を説明するための図である。
【図34】本発明の実施の形態4による各構成部分の動
作を示すタイミングチャートである。
【図35】本発明の実施の形態5による符号長計算装置
の構成を示すブロック図である。
【図36】従来のAACの符号化処理の概要を示すフロ
ーチャートである。
【図37】AACのハフマンコードブックのパラメータ
を示す図である。
【図38】コードブック1〜4による符号化後の符号の
構成を示す図である。
【図39】コードブック5〜11による符号化後の符号
の構成を示す図である。
【図40】従来のAACの符号化装置の構成を示すブロ
ック図である。
【図41】従来のAACの符号長計算装置の構成を示す
ブロック図である。
【図42】従来の符号長計算装置の第1のROMに保持
されているデータの一部を示す図である。
【図43】従来の符号長計算装置の第1のROMに保持
されているデータの構造を示す図である。
【図44】従来の符号長計算装置の第2のROM、及び
第3のROMに保持されているデータの一部を示す図で
ある。
【図45】従来の符号長計算装置の第2のROM、及び
第3のROMに保持されているデータの構造を示す図で
ある。
【図46】従来の符号化装置の動作を示すフローチャー
トである。
【図47】従来の符号長計算装置の各構成部分の出力を
示す図である。
【図48】従来の符号長計算装置の各構成部分の出力を
示す図である。
【符号の説明】
1 40ビットプロセッサ 2a,2b,2c,2d,2e 符号長計算装置 3 メモリ 4,5,6,7 絶対値入力レジスタ 8,9,10,11 サイン符号入力レジスタ 12,13,14,15,16,12c,13c,14
c,15c,16c,12d,13d,14d,15
d,16d 出力レジスタ 17,17b 第1のアドレス生成部 18,18c 第2のアドレス生成部 19,19c 第3のアドレス生成部 20 第4のアドレス生成部 21 第5のアドレス生成部 22,22b,22d 第1のROM 23,23d 第2のROM 24,24d 第3のROM 25 第4のROM 26 第5のROM 27,28,29,30,27b,28b,29b,3
0b ビット変換部 31 ビット連結部 32,33,34,35,36,37 セレクタ 38,39,40 ポインタレジスタ 41,41e 制御部 42 16ビットプロセッサ 43 第1のビット分割部 44 第2のビット分割部 45 第3のビット分割部 46 第4のビット分割部 47 第5のビット分割部 48,49,50 セレクタ 111 セレクタ32,33,34,35,36,37
の制御信号 112 ポインタ38,39,40の書き込み信号 113 出力レジスタ12の書き込み信号 114 出力レジスタ13,14の書き込み信号 115 出力レジスタ15,16の書き込み信号 120 アドレス0x0への出力 121 アドレス0x1への出力 122 アドレス0x2への出力 123 アドレス0x3への出力 124 アドレス0x4への出力 125 アドレス0x5への出力 126 アドレス0x6への出力 127 アドレス0x7への出力 128 アドレス0x8への出力 129 アドレス0x9への出力 201 NANDゲート素子 202 XNORゲート素子 203,204,205 P−MOSトランジスタ 206,207,208 N−MOSトランジスタ
フロントページの続き (56)参考文献 特開 平10−209879(JP,A) 特開 平10−22835(JP,A) 特開 平8−79091(JP,A) 特開 平11−98506(JP,A) 特開 平9−154133(JP,A) 特開 平7−147678(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/42 G10L 19/00

Claims (20)

    (57)【特許請求の範囲】
  1. 【請求項1】 A個のデータ(Aは2以上の整数)を組
    み合わせてインデックスを生成し、前記インデックスを
    L個のコードブック(Lは、1以上の整数)によりハフ
    マン符号化した符号化後の符号長を計算する符号長計算
    装置であって、 前記A個のデータの絶対値と、前記A個のデータのサイ
    ン情報とを含むデータが入力されると、該データに対応
    したアドレスを生成するアドレス生成手段と、 前記L個のコードブックの内、H個のコードブック(H
    は、L以下の整数)により前記A個のデータをハフマン
    符号化した符号化後の符号長を、前記アドレス生成手段
    が生成するアドレスに対応した領域に保持するテーブル
    記憶手段と、 を備えたことを特徴とする符号長計算装置。
  2. 【請求項2】 請求項1に記載の符号長計算装置におい
    て、 前記テーブル記憶手段は、 前記H個のコードブックが前記A個のデータの絶対値情
    報のみを符号化するアンサインドコードブックの場合
    は、前記A個のデータを前記ハフマン符号化した符号化
    後の符号長にサイン情報のために必要なビット数を予め
    加算した値を、前記アドレス生成手段が生成するアドレ
    スに対応した領域に保持し、 前記H個のコードブックが前記A個のデータの符号を含
    めた情報を符号化するサインドコードブックの場合は、
    前記A個のデータを前記ハフマン符号化した符号化後の
    符号長を、前記アドレス生成手段が生成するアドレスに
    対応した領域に保持するものであることを特徴とする符
    号長計算装置。
  3. 【請求項3】 請求項1または2に記載の符号長計算装
    置において、 前記アドレス生成手段と、前記テーブル記憶手段とを複
    数備えたことを特徴とする符号長計算装置。
  4. 【請求項4】 請求項1ないし3のいずれか一つに記載
    の符号長計算装置において、 前記アドレス生成手段を経由せず、前記テーブル記憶手
    段にアドレスを入力する経路を備えたことを特徴とする
    符号長計算装置。
  5. 【請求項5】 請求項1ないし4のいずれか一つに記載
    の符号長計算装置において、 前記L個のコードブックは、MPEG2−AAC規格で
    定義されているスペクトルデータをハフマン符号化する
    ための11個のハフマンコードブックであることを特徴
    とする符号長計算装置。
  6. 【請求項6】 請求項5に記載の符号長計算装置におい
    て、 関数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)を、MPEG2−AAC規格の
    ハフマンコードブック1におけるindexに対する符
    号長を返す関数とし、 関数T2(index)を、MPEG2−AAC規格の
    ハフマンコードブック2におけるindexに対する符
    号長を返す関数とし、 関数T3(index)を、MPEG2−AAC規格の
    ハフマンコードブック3におけるindexに対する符
    号長を返す関数とし、 関数T4(index)を、MPEG2−AAC規格の
    ハフマンコードブック4におけるindexに対する符
    号長を返す関数とし、 aを整数とし、前記aの絶対値の下位2ビットをabs
    _aとし、前記aのサイン情報を表すビットをsig_
    aとし、sig_aが正のサイン情報を表すときはsi
    g_a=PLUSとし、負のサイン情報を表すときはs
    ig_a=MINUSとし、α、β、γ、δをそれぞれ
    値が異なる2ビットの値とし、 関数G(abs_a,sig_a)を、abs_aが2
    のときαを返し、abs_aが1かつsig_aがPL
    USのときβを返し、abs_aが0のときγを返し、
    abs_aが1かつsig_aがMINUSのときδを
    返し、それ以外の場合は任意の2ビットの値を返す関数
    としたとき、 前記符号長計算装置の有する1つのアドレス生成手段
    は、 4個のデータa,b,c,dの下位2ビットの絶対値a
    bs_a,abs_b,abs_c,abs_dと、前
    記4個のデータのサイン情報を表す値sig_a,si
    g_b,sig_c,sig_dとが入力されたとき
    に、G(abs_a,sig_a)と、G(abs_
    b,sig_b)と、G(abs_c,sig_c)
    と、G(abs_d,sig_d)とがそれぞれ返す値
    をビット連結した値Iをアドレスとして出力するもので
    あり、 前記符号長計算装置の有する1つのテーブル記憶手段
    は、 前記値Iが指し示す領域に、T1(F1(a,b,c,
    d))の値N1と、T2(F1(a,b,c,d))の
    値N2と、T3(F2(a,b,c,d))+nonz
    (a,b,c,d)の値N3と、T4(F2(a,b,
    c,d))+nonz(a,b,c,d)の値N4とを
    保持するものであることを特徴とする符号長計算装置。
  7. 【請求項7】 請求項6に記載の符号長計算装置におい
    て、 前記関数G(abs_a,sig_a)は、abs_a
    が2のとき0を返し、abs_aが1かつsig_aが
    PLUSのとき3を返し、abs_aが0のとき2を返
    し、abs_aが1かつsig_aがMINUSのとき
    1を返し、abs_aが3のとき1を返すものであるこ
    とを特徴とする符号長計算装置。
  8. 【請求項8】 請求項6または7に記載の符号長計算装
    置において、 前記テーブル記憶手段は、1アドレス当たり17ビット
    以上のデータを記憶するものであり、 さらに、前記テーブル記憶手段から出力された値を、前
    記N1と、前記N2と、前記N3と、前記N4とに分割
    するビット分割手段を備えたことを特徴とする符号長計
    算装置。
  9. 【請求項9】 請求項8に記載の符号長計算装置におい
    て、 前記ビット分割手段は、 前記N1と前記N2との間に1ビット以上の0を挿入
    し、前記N3と前記N4との間に1ビット以上の0を挿
    入し、前記N1と前記N2とを一組として出力し、前記
    N3と前記N4とを一組として出力するものであること
    を特徴とする符号長計算装置。
  10. 【請求項10】 請求項5ないし9のいずれか一つに記
    載の符号長計算装置において、 関数F3(y,z)を、F3(y,z)=9*(y+
    4)+(z+4)とし、式中y,zの絶対値変域は4以
    下であり、 関数T5(index)を、MPEG2−AAC規格の
    ハフマンコードブック5におけるindexに対する符
    号長を返す関数とし、 関数T6(index)を、MPEG2−AAC規格の
    ハフマンコードブック6におけるindexに対する符
    号長を返す関数したとき、 前記符号長計算装置の有する少なくとも1つのアドレス
    生成手段は、 2個のデータa,bの絶対値abs_a,abs_b
    と、前記2個のデータのサイン情報を表す値sig_
    a,sig_bとが入力されたとき、前記sig_a、
    abs_a、sig_b、abs_bから生成した値J
    をアドレスとして出力するものであり、 前記符号長計算装置の有する少なくとも1つのテーブル
    記憶手段は、 前記値Jが指し示す領域に、T5(F3(a,b))の
    値N5と、T6(F3(a,b))の値N6とを保持す
    るものであることを特徴とする符号長計算装置。
  11. 【請求項11】 請求項10に記載の符号長計算装置に
    おいて、 前記テーブル記憶手段は、 1アドレス当たり8ビット以上のデータを記憶するもの
    であり、 さらに、前記テーブル記憶手段から出力された値を、前
    記N5と、前記N6とに分割し、前記N5と、前記N6
    との間に1ビット以上の0を挿入するビット分割手段を
    備えたことを特徴とする符号長計算装置。
  12. 【請求項12】 請求項5ないし11のいずれか一つに
    記載の符号長計算装置において、 関数abs(x)を、xの絶対値を返す関数とし、 関数nonz(y、z)をy、zの中で値が0でないも
    のの個数を返す関数とし、 関数F4(y、z)を、F4(y、z)=8*abs
    (y)+abs(z)とし、式中y,zの絶対値変域は
    7以下であり、 関数F5(y、z)を、F5(y、z)=13*abs
    (y)+abs(z)とし、式中y,zの絶対値変域は
    12以下であり、 関数F6(y、z)を、F6(y、z)=17*abs
    (y)+abs(z)とし、式中y,zの絶対値変域は
    16以下であり、 関数T7(index)を、MPEG2−AAC規格の
    ハフマンコードブック7におけるindexに対する符
    号長を返す関数とし、 関数T8(index)を、MPEG2−AAC規格の
    ハフマンコードブック8におけるindexに対する符
    号長を返す関数とし、 関数T9(index)を、MPEG2−AAC規格の
    ハフマンコードブック9におけるindexに対する符
    号長を返す関数とし、 関数T10(index)を、MPEG2−AAC規格
    のハフマンコードブック10におけるindexに対す
    る符号長を返す関数とし、 関数T11(index)を、MPEG2−AAC規格
    のハフマンコードブック11におけるindexに対す
    る符号長を返す関数としたとき、 前記符号長計算装置の有する少なくとも1つのアドレス
    生成手段は、 2個のデータa,bの絶対値abs_a,abs_bが
    入力されたとき、前記abs_a,abs_bから生成
    した値Kをアドレスとして出力するものであり、 前記符号長計算装置の有する少なくとも1つのテーブル
    記憶手段は、 前記値Kが指し示す領域に、T7(F4(a,b))+
    nonz(a,b)の値N7と、T8(F4(a,
    b))+nonz(a,b)の値N8と、T9(F5
    (a,b))+nonz(a,b)の値N9と、T10
    (F5(a,b))+nonz(a,b)の値N10
    と、T11(F6(a,b))+nonz(a,b)の
    値N11とを保持するものであることを特徴とする符号
    長計算装置。
  13. 【請求項13】 請求項12に記載の符号長計算装置に
    おいて、 前記テーブル記憶手段は、 1アドレス当たり21ビット以上のデータを記憶するも
    のであり、 さらに、前記テーブル記憶手段から出力された値を、前
    記N7と、前記N8と、前記N9と、前記N10と、前
    記N11とに分割するビット分割手段を備えたことを特
    徴とする符号長計算装置。
  14. 【請求項14】 請求項13に記載の符号長計算装置に
    おいて、 前記ビット分割手段は、 前記N7と前記N8との間に1ビット以上の0を挿入
    し、前記N9と前記N10との間に1ビット以上の0を
    挿入し、前記N7と前記N8とを一組として出力し、前
    記N9と前記N10とを一組として出力し、前記N11
    を一組として出力するものであることを特徴とする符号
    長計算装置。
  15. 【請求項15】 請求項10ないし14のいずれか一つ
    に記載の符号長計算装置において、 4個のデータa,b,c,dの絶対値abs_a,ab
    s_b、abs_c,abs_dと、前記4個のデータ
    のサイン情報を表す値sig_a,sig_b,sig
    _c,sig_dとが前記符号長計算装置に入力された
    とき、前記abs_a,abs_b,sig_a,si
    g_bを前記アドレス生成手段に入力した後に、前記a
    bs_c,abs_d,sig_c,sig_dを前記
    アドレス生成手段に入力する制御信号を生成する制御手
    段を備えたことを特徴とする符号長計算装置。
  16. 【請求項16】 4個のデータを4個組み合わせて、あ
    るいは2個ずつ組み合わせてインデックスを生成し、前
    記インデックスを11個のハフマンコードブックにより
    ハフマン符号化した符号化後の符号長を計算する符号長
    計算装置であって、 前記4個のデータの絶対値と、前記4個のデータのサイ
    ン情報とを含むデータが入力されると、該データに対応
    したアドレスを生成する第1のアドレス生成手段と、 前記4個のデータを前記ハフマンコードブック1ないし
    4によりハフマン符号化した符号化後の符号長を、前記
    第1のアドレス生成手段が生成するアドレスに対応した
    領域に保持する第1のテーブル記憶手段と、 前記4個のデータのうち、2個のデータの絶対値と、該
    2個のデータのサイン情報とを含むデータが入力される
    と、該データに対応したアドレスを生成する第2のアド
    レス生成手段と、 前記第2のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック5、及び6によりハフ
    マン符号化した符号化後の符号長を、前記第2のアドレ
    ス生成手段が生成するアドレスに対応した領域に保持す
    る第2のテーブル記憶手段と、 前記4個のデータのうち、2個のデータの絶対値が入力
    されると、該データに対応したアドレスを生成する第3
    のアドレス生成手段と、 前記第3のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック7ないし11によりハ
    フマン符号化した符号化後の符号長を、前記第3のアド
    レス生成手段が生成するアドレスに対応した領域に保持
    する第3のテーブル記憶手段と、 前記4個のデータのうち、前記第2のアドレス生成手段
    に入力されなかった2個のデータの絶対値と、該2個の
    データのサイン情報とを含むデータが入力されると、該
    データに対応したアドレスを生成する第4のアドレス生
    成手段と、 前記第4のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック5、及び6によりハフ
    マン符号化した符号化後の符号長を、前記第4のアドレ
    ス生成手段が生成するアドレスに対応した領域に保持す
    る第4のテーブル記憶手段と、 前記4個のデータのうち、前記第3のアドレス生成手段
    に入力されなかった2個のデータの絶対値が入力される
    と、該データに対応したアドレスを生成する第5のアド
    レス生成手段と、 前記第5のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック7ないし11によりハ
    フマン符号化した符号化後の符号長を、前記第5のアド
    レス生成手段が生成するアドレスに対応した領域に保持
    する第5のテーブル記憶手段と、 を備えたことを特徴とする符号長計算装置。
  17. 【請求項17】 4個のデータを4個組み合わせて、あ
    るいは2個ずつ組み合わせてインデックスを生成し、前
    記インデックスを11個のハフマンコードブックにより
    ハフマン符号化した符号化後の符号長を計算する符号長
    計算装置であって、 前記4個のデータの絶対値と、前記4個のデータのサイ
    ン情報とを含むデータが入力されると、該データに対応
    したアドレスを生成する第1のアドレス生成手段と、 前記4個のデータを前記ハフマンコードブック1ないし
    4によりハフマン符号化した符号化後の符号長を、前記
    第1のアドレス生成手段が生成するアドレスに対応した
    領域に保持する第1のテーブル記憶手段と、 前記4個のデータのうち、2個のデータの絶対値と、該
    2個のデータのサイン情報とを含むデータが入力される
    と、該データに対応したアドレスを生成する第2のアド
    レス生成手段と、 前記第2のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック5、及び6によりハフ
    マン符号化した符号化後の符号長を、前記第2のアドレ
    ス生成手段が生成するアドレスに対応した領域に保持す
    る第2のテーブル記憶手段と、 前記4個のデータのうち、2個のデータの絶対値が入力
    されると、該データに対応したアドレスを生成する第3
    のアドレス生成手段と、 前記第3のアドレス生成手段に入力された前記2個のデ
    ータを前記ハフマンコードブック7ないし11によりハ
    フマン符号化した符号化後の符号長を、前記第3のアド
    レス生成手段が生成するアドレスに対応した領域に保持
    する第3のテーブル記憶手段と、 前記4個のデータのうち、2個のデータの絶対値及び該
    2個のデータのサイン情報を含んだデータと、他の2個
    のデータの絶対値及び該2個のデータのサイン情報を含
    んだデータとを切り替えて前記第2のアドレス生成手段
    へ出力するセレクタと、 前記4個のデータのうち、2個のデータの絶対値と、他
    の2個のデータの絶対値とを切り替えて前記第3のアド
    レス生成手段へ出力するセレクタと、 上記セレクタを制御する制御部と、 を備えたことを特徴とする符号長計算装置。
  18. 【請求項18】 請求項17に記載の符号長計算装置に
    おいて、 前記第1のテーブル記憶手段は、17ビット以上のデー
    タを保持するものであり、 前記第2のテーブル記憶手段は、8ビット以上のデータ
    を保持するものであり、 前記第3のテーブル記憶手段は、21ビット以上のデー
    タを保持するものであり、 さらに、前記第1のテーブル記憶手段の出力を、前記ハ
    フマンコードブック1ないし4における符号化の符号長
    ごとに分割するビット分割部と、 前記第2のテーブル記憶手段の出力を、前記ハフマンコ
    ードブック5、及び6における符号化の符号長ごとに分
    割するビット分割部と、 前記第3のテーブル記憶手段の出力を、前記ハフマンコ
    ードブック7ないし11における符号化の符号長ごとに
    分割するビット分割部と、 を備えたことを特徴とする符号長計算装置。
  19. 【請求項19】 請求項16ないし18のいずれか一つ
    に記載の符号長計算装置において、 前記アドレス生成手段を経由せず、前記テーブル記憶手
    段にアドレスを入力できる経路を備えたことを特徴とす
    る符号長計算装置。
  20. 【請求項20】 請求項1ないし19のいずれか一つに
    記載の符号長計算装置を備えたことを特徴とする符号化
    装置。
JP37404999A 1999-12-28 1999-12-28 符号長計算装置、及び符号化装置 Expired - Fee Related JP3419371B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP37404999A JP3419371B2 (ja) 1999-12-28 1999-12-28 符号長計算装置、及び符号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37404999A JP3419371B2 (ja) 1999-12-28 1999-12-28 符号長計算装置、及び符号化装置

Publications (2)

Publication Number Publication Date
JP2001189663A JP2001189663A (ja) 2001-07-10
JP3419371B2 true JP3419371B2 (ja) 2003-06-23

Family

ID=18503178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37404999A Expired - Fee Related JP3419371B2 (ja) 1999-12-28 1999-12-28 符号長計算装置、及び符号化装置

Country Status (1)

Country Link
JP (1) JP3419371B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60330198D1 (de) 2002-09-04 2009-12-31 Microsoft Corp Entropische Kodierung mittels Anpassung des Kodierungsmodus zwischen Niveau- und Lauflängenniveau-Modus
JP4728568B2 (ja) * 2002-09-04 2011-07-20 マイクロソフト コーポレーション レベル・モードとラン・レングス/レベル・モードの間での符号化を適応させるエントロピー符号化
KR100803205B1 (ko) * 2005-07-15 2008-02-14 삼성전자주식회사 저비트율 오디오 신호 부호화/복호화 방법 및 장치
JP6397343B2 (ja) * 2015-01-28 2018-09-26 株式会社日立社会情報サービス 情報処理装置、および、情報処理方法

Also Published As

Publication number Publication date
JP2001189663A (ja) 2001-07-10

Similar Documents

Publication Publication Date Title
ES2297083T3 (es) Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel.
US7130952B2 (en) Data transmit method and data transmit apparatus
US10666287B2 (en) Coding method, decoding method, coder, and decoder
JP5113051B2 (ja) オーディオ信号の処理方法
US6504496B1 (en) Systems and methods for decoding compressed data
JPS59192295A (ja) 乗算・加算回路
KR960013080A (ko) Mpeg 음성/영상 디코더
JP3419371B2 (ja) 符号長計算装置、及び符号化装置
CN111785248B (zh) 文本信息处理方法及装置
KR20220054651A (ko) 다중 심볼 디코더
EP2319038A1 (en) Method, system, and apparatus for compression or decompression of digital signals
JPH0296200A (ja) 適応差動パルス符号変調音声発生器
US6839005B1 (en) Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels
TW382861B (en) Digital data encoding apparatus and method thereof
CN101626242B (zh) 改进的霍夫曼解码方法及装置
JPS6060694A (ja) 波形発生装置
JP3661663B2 (ja) 乱数生成装置、乱数生成方法、乱数生成プログラムおよびオーディオ復号装置と復号方法
JP4960791B2 (ja) ベクトル量子化符号化装置、ベクトル量子化復号化装置、それらの方法、それらのプログラム、及びそれらの記録媒体
CN111767022A (zh) 音频调节方法、装置、电子设备及计算机可读存储介质
JP2006030892A (ja) 音声合成用読み上げテキストデータ選択プログラムおよび音声合成用読み上げテキストデータ選択装置
JP3659196B2 (ja) ハフマン符号の復号方法および装置
CN117316169B (zh) 音频数据处理方法、装置、设备及计算机可读存储介质
EP2412162A1 (en) Data embedding methods, embedded data extraction methods, truncation methods, data embedding devices, embedded data extraction devices and truncation devices
JP3791793B2 (ja) ディジタル信号符号化方法、復号化方法、符号器、復号器、符号化プログラム、及び復号化プログラム
JP3521487B2 (ja) 信号処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080418

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090418

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100418

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120418

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees