【文献】
Chun-Yi Lee,A FAST AUDIO BIT ALLOCATION TECHNIQUE BASED ON A LINEAR R-D MODEL,IEEE Transactions on Consumer Electronics,米国,IEEE,2002年 8月,Vol.48, No.3,p.662-670
(58)【調査した分野】(Int.Cl.,DB名)
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、を備え、
前記共通スケール推定部は、削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とするオーディオ信号符号化装置。
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、を備え、
前記帯域数判定部は、前記複数の帯域の各量子化値が0ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とするオーディオ信号符号化装置。
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とするオーディオ信号符号化方法。
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記複数の帯域の各量子化値が0ではない帯域をカウントして前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
前記共通スケール値を、前記符号化帯域数に従って推定する、
ことを特徴とするオーディオ信号符号化方法。
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記複数の帯域の各量子化値が0ではない帯域をカウントして前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
前記共通スケール値を、前記符号化帯域数に従って推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。
【発明を実施するための形態】
【0017】
まず、本実施例のオーディオ信号符号化装置およびオーディオ信号符号化方法を詳述する前に、オーディオ信号符号化装置およびオーディオ信号符号化方法の例、並びに、その問題点を、
図1〜
図9を参照して説明する。
【0018】
なお、本明細書では、主としてAAC(MPEG2 AAC:ISO/IEC 13818-7)を例として説明するが、後述する本実施例の適用は、AACに限定されるものではなく、例えば、MP3等の符号化アルゴリズムの量子化処理に対しても適用することができる。
【0019】
図1は、量子化ループ(AACの符号化アルゴリズムの量子化処理におけるビット制御ループ(アウターループ))を説明するための図である。すなわち、
図1は、縦軸にスケールファクター(スケール値)を取り、横軸に帯域(帯域数:スケールファクターバンド)を取って、各帯域のスペクトルを表している。
【0020】
図1において、参照符号L1(破線)およびL2(実線)は、帯域ごとに設定されたスケールファクターを示し、L1は、初期スケールの計算に対応し、L2は、L1をコモンスケール値(Common Scale)だけシフトさせたものである。
【0021】
ここで、シフトさせるコモンスケール値が高くなれば、量子化ステップサイズが荒くなり、量子化ビット数が減少する。なお、スケールファクターバンド(帯域)とは、周波数帯域を特定幅ごとに分割したものである。
【0022】
すなわち、
図1の破線L1に示す入力オーディオ信号の各帯域のスペクトルに対して、一定量のコモンスケール値を追加して実線L2にすることで、量子化ビット数を減らして、最終的に、量子化可能ビット数以下にするようになっている。
【0023】
図2は、量子化ループと符号化帯域(符号化帯域数)の関係を説明するための図である。ここで、
図2(a)および
図2(b)は、ループX回目とループX+1回目の電力と帯域の関係を示し、
図2(c)および
図2(d)は、ループX回目とループX+1回目のスケールファクターと帯域の関係を示す。
【0024】
例えば、符号化(AAC)において、MDCT(modified discrete cosine transform:修正離散コサイン変換)係数が量子化値とスケールファクターで符号化される。すなわち、量子化値は、次の[式1]により表される。
【数1】
従って、スケールファクターの値が大きくなると、量子化値は0の方向へ向かうことになる。
【0025】
図2(a)および
図2(c)と
図2(b)および
図2(d)の比較から明らかなように、ループX回目のスペクトルL11は、ループX+1回目でコモンスケール値CSだけシフトされてスペクトルL12になる。
【0026】
すなわち、
図2(a)および
図2(c)に示されるように、ループX回目では、10個の帯域の全てが符号化対象となってそれぞれ量子化される。これに対して、
図2(b)および
図2(d)に示されるように、ループX+1回目では、量子化値が0となる非符号化対象帯域が4個になり、残りの6個の帯域だけが符号化対象となる。
【0027】
このように、入力オーディオ信号(各帯域のスペクトル)の量子化処理は、量子化ループ毎に符号化する帯域数(符号化帯域)の総和が変化する。
【0028】
図3は、量子化処理の一例を説明するための図であり、
図4は、
図3に示す量子化処理を説明するためのフローチャートである。
【0029】
図3および
図4に示す量子化処理(AAC符号化処理)が開始すると、ステップST101において、スケールファクターの初期値(以降、初期スケールともいう)を計算し、ステップST102に進んで、スケーリングを行う。ここで、初期スケールの計算は、例えば、前述した
図1における破線L1に対応するのは前述した通りである。
【0030】
さらに、ステップST103に進んで、量子化を行う。これにより、量子化ビット数QB(quant bit)、すなわち、初期ビット数QBiを求めることができる。次に、ステップST104に進んで、ビット数の判定を行う。すなわち、初期ビット数QBiが量子化可能ビット数UB(usable bit)以下かどうかの判定を行う。
【0031】
ステップST104において、初期ビット数QBiが量子化可能ビット数UB以下ではない(QBi>UB)と判定すると、ステップST105に進み、コモンスケール値(Common Scale:CS)を更新してステップST102へ戻り、同様の処理を繰り返す。
【0032】
すなわち、ステップST104において、QBi>UBと判定すると、ステップST105において、コモンスケール値を1量子化ステップだけ変化(増加)させ、その更新されたコモンスケール値CSを使用してステップST102およびST103の処理を行う。
【0033】
この更新されたコモンスケール値CSを使用したステップST102およびST103の処理により、ビット制御ループ1回目の量子化ビット数QB1が求められ、上述したステップST104によるビット数の判定を行う。
【0034】
なお、ステップST104において、QB1>UBと判定すると、ステップST105に進んで、コモンスケール値をさらに1量子化ステップだけ変化させ、その更新されたコモンスケール値CSを使用してステップST102およびST103の処理を行う。
【0035】
図3は、ループn回目の量子化ビット数QBnが量子化可能ビット数UB以下になる場合を示している。すなわち、ステップST104では、ループ処理を行った量子化ビット数(QB:QBi,QB1〜QBn)が量子化可能ビット数UB以下であると判定するまで処理を繰り返す。そして、ステップST104において、QBn≦UBと判定すると、その値QBnを出力して処理を終了する。
【0036】
このように、
図3および
図4に示す量子化処理は、コモンスケール値CSを1量子化ステップずつ変化させ、量子化ビット数QBが量子化可能ビット数UB以下になる(QB≦UB)までループを繰り返している。
【0037】
そのため、量子化ビット数QBと量子化可能ビット数UBの差が大きい場合、コモンスケール値を1量子化ステップずつ変化させるのでは、量子化処理を短時間で収束させることが困難となっている。
【0038】
図5は、量子化処理の他の例を説明するための図であり、
図6は、
図5に示す量子化処理を実現する量子化処理ユニットの一例を示すブロック図である。また、
図7は、
図5に示す量子化処理を説明するためのフローチャートである。
【0039】
図6において、参照符号201は量子化部,202は符号化部,203は量子化制御部,205は共通スケール推定部,206は初期スケール計算部および207はスケーリング部を示す。なお、共通スケール推定部205には、符号化部202の出力および量子化制御部203の出力が入力されている。
【0040】
図5〜
図7に示す量子化処理(AAC符号化処理)が開始すると、ステップST201において、初期スケール計算部206により初期スケールを計算し、ステップST202に進んで、スケーリング部207によりスケーリングを行う。
【0041】
さらに、ステップST203に進んで、量子化部201により量子化を行う。これにより、初期ビット数QBiを求めることができる。ここで、量子化部201には、各帯域のスペクトル(入力オーディオ信号)が入力される。
【0042】
次に、ステップST205に進んで、ビット数の判定、すなわち、初期ビット数QBiが量子化可能ビット数UB以下かどうかの判定を行う。なお、初期ビット数QBiによるループでは、ステップST204をそのままスルーしてステップST205に進むが、2回目以降のループでは、符号化部202および量子化制御部203によるステップST204の処理を行う。
【0043】
ステップST205において、初期ビット数QBiが量子化可能ビット数UB以下ではない(QBi>UB)と判定すると、ステップST206に進んでΔScaleの値(コモンスケール値の追加分)を推定し、さらに、ステップST207に進んで、コモンスケール値を更新する。
【0044】
ここで、ステップST204〜ST207の処理は、符号化部202,量子化制御部203および共通スケール推定部205により実行される。なお、共通スケール推定部205には、量子化可能ビット数UBが入力されている。
【0045】
すなわち、ステップST205において、QBi>UBと判定すると、ステップST207により更新されたコモンスケール値CSを使用したステップST202以降の処理を繰り返す。そして、2回目のループ以降では、ステップST204において、傾きαの値を更新して、次のステップST205に進む。
【0046】
例えば、ループn回目の量子化ビット数QBnが量子化可能ビット数UBよりも大きい場合、ステップST205では、QBn>UBと判定して、ステップST206に進む。
【0047】
図5〜
図7に示す量子化処理において、ステップST205でQBn>UBと判定すると、ループn回目のQBnと共に、次のループn+1回目の量子化ビット数QBn+1を使用して、ステップST206におけるデルタスケールの推定を行う。
【0048】
具体的に、
図5に示されるように、ループn回目のQBnとループn+1回目のQBn+1から求められる傾きαを使用して、ループn+1回目の実際の量子化ビット数QBn+1と量子化可能ビット数UBから、デルタスケール(ΔScale)を次の[式2]により求める。
【数2】
【0049】
すなわち、ループn回目のQBnとループn+1回目のQBn+1から求められる傾きαがそのまま変化しないものと仮定して、ΔScaleの値を求め、それを追加したコモンスケール値CSを使用してステップST202以降の処理を行う。
【0050】
そして、ステップST205において、QB≦UBと判定すると、その値QBを、符号化部202からAAC符号化データとして出力して処理を終了する。
【0051】
このように、
図5〜
図7に示す量子化処理は、例えば、ビット制御ループのn回目の実績値QBnとn+1回目の実績値QBn+1から求めた傾きαを使用して追加のコモンスケール値(ΔScale)を求め、それにより更新したコモンスケール値CSを使用している。
【0052】
図8は、符号化帯域数とコモンスケール値との関係を説明するための図であり、
図9は、
図5〜
図7を参照して説明した量子化処理における問題点を説明するための図である。
【0053】
図8に示されるように、上述した傾きαは、様々な要因により変化し、符号化帯域数が多いと、緩やかなα3になり、逆に、符号化帯域数が少ないと、急峻なα1になる。なお、傾きα2は、傾きα1の符号化帯域数と傾きα3の符号化帯域数の間の符号化帯域数のときの傾きになる。
【0054】
図9に示されるように、ループn回目のQBnとループn+1回目のQBn+1から求めた傾きαpを使用して、量子化可能ビット数UB以下になるQBsを求めるように処理したとき、例えば、推定した傾きαpに対して実際の傾きがαrの場合を考える。ここで、ループn回目の帯域数をAとし、ループn+1回目の帯域数をA−Bとし、AおよびBは、A>Bの関係で共に正の定数とする。
【0055】
このとき、過去のループn回目のQBnとループn+1回目のQBn+1から求めた傾きαpを使用して求めた量子化ビットQBs0は、実際の傾きがαrだとQBr0の位置になってしまい、求める実際の量子化ビット値QBrとは大きな差が生じることになる。その結果、ビット制御ループが収束するには、さらにループ処理を繰り返すことになる。
【0056】
すなわち、過去の量子化ビット数の減少特性を用いただけでは、適切な追加のコモンスケール値(ΔScale)を求めることは困難である。これは、コモンスケール値CSおよび符号化帯域数が量子化ビット数QBの減少特性(傾きα)と相関を有しており、また、スケール(コモンスケール値CS)が変わると、符号化帯域数も変化し、結果として、ループごとに減少特性が変化するためである。
【0057】
このように、
図5〜
図7に示す量子化処理においても、量子化処理を満足できる短時間で収束させることは難しいといった問題がある。
【0058】
以下、オーディオ信号符号化装置およびオーディオ信号符号化方法の実施例を、添付図面を参照して詳述する。
【0059】
図10は、本実施形態のオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図であり、
図11は、
図10に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。また、
図12は、本実施形態の量子化処理における傾きの処理を説明するため図である。
【0060】
図10において、参照符号1は量子化部,2は符号化部,3は量子化制御部,4は帯域数判定部,5は共通スケール推定部,6は初期スケール計算部および7はスケーリング部を示す。
【0061】
ここで、
図1における量子化部1は、前述した
図6における量子化部201とは異なる処理を行う。なお、帯域数判定部4には、量子化部1の出力および量子化制御部3の出力が入力されている。また、共通スケール推定部5には、符号化部2の出力および帯域数判定部4の出力が入力されている。
【0062】
図11に示されるように、本実施形態の量子化処理ユニットにおける処理(AAC符号化処理)が開始すると、ステップST1において、初期スケール計算部6により初期スケールを計算し、ステップST2に進んで、スケーリング部7によりスケーリングを行う。
【0063】
さらに、ステップST3に進んで、量子化部1により量子化を行う。このステップST1〜ST3の処理は、前述した
図4におけるステップST101〜ST103の処理、並びに、
図7におけるステップST201〜ST203の処理に対応する。
【0064】
これにより、初期ビット数(QBi)を求めることができる。ここで、量子化部1には、入力デジタル信号(入力オーディオ信号)から求めた周波数スペクトルを複数の帯域に分割した信号が入力され、量子化部1の出力は、帯域数判定部4に入力される。
【0065】
次に、ステップST4に進んで、ビット数の判定、すなわち、初期ビット数が量子化可能ビット数(UB)以下かどうかの判定を行う。ステップST4において、初期ビット数が量子化可能ビット数以下ではない(QBi>UB)と判定すると、ステップST5に進んで符号化帯域数の判定を行う。
【0066】
さらに、ステップST6において、デルタスケールを推定し、ステップST7に進んで、コモンスケール値を更新する。なお、ステップST5〜ST7の処理は、帯域数判定部4および共通スケール推定部5により実行される。
【0067】
すなわち、帯域数判定部4は、符号化帯域数の判定を行う。ここで、符号化帯域数とは、コモンスケール値CSによって符号量が変動する帯域数である。また、共通スケール推定部5は、削減する量子化ビット数と減少特性(傾きα)から得られた値を符号化帯域数により補正して、コモンスケール値の追加分(追加のコモンスケール値ΔScale)を算出する。
【0068】
すなわち、追加のコモンスケール値(デルタスケール)ΔScaleは、帯域数(符号化帯域数)で除算する次の[式3]によりΔScaleを求める。
【数3】
【0069】
ここで、αは定数(固定)とされ、例えば、動作モードに従って、次のように設定する。
サンプリング周波数:48kHz チャネル数:2 ⇒ α=0.25
サンプリング周波数:48kHz チャネル数:1 ⇒ α=0.27
なお、αの値は、例えば、予め大量の実験データから最適な値を求めて設定することができる。また、αの値は、動作モードごとに分けないで設定してもよい。
【0070】
また、ステップST7の処理は、コモンスケール値(Common Scale)に対して、コモンスケール値の追加分(デルタスケール:ΔScale)を加算して、更新されたコモンスケール値CSを算出する。すなわち、CS=Common Scale+ΔScale としてコモンスケール値CSを求める。
【0071】
ここで、上述した[式3]において、具体的に、前述した
図2(a)および
図2(c)のような帯域数(符号化帯域数 band)が10個の場合と、
図2(b)および
図2(d)のような帯域数が6個の場合を考える。
【0072】
[式3]において、帯域数が10個の場合と6個の場合を比較すると、αは固定値なので、分母が10となる帯域数が多いときは、分母が6となる帯域数が少ないときよりも、ΔScale(デルタスケール量)は、小さくなることが分かる。
【0073】
従って、本実施形態によれば、[式3]により得られたデルタスケール量 ΔScale を使用して更新されたコモンスケール値CS(ΔScaleだけシフトさせたコモンスケール値CommonScale)によりループを回すことで、収束するまでのループ回数を低減することができる。
【0074】
すなわち、
図12に示されるように、本実施形態のオーディオ信号符号化装置において、傾き(量子化ビット減少特性)αは、定数とされ、また、デルタスケール量 ΔScale は、符号化帯域数を考慮して推定される。これにより、ビット制御ループの精度を向上して、ループ処理を少ない回数で収束させることが可能になる。
【0075】
図13は、オーディオ信号符号化装置の第1実施例におけるエンコーダを示すブロック図であり、
図14は、
図13に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。また、
図15は、
図14に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【0076】
図13および
図14において、参照符号8はフィルタバンク部、9は心理聴覚分析部、10は量子化処理ユニット、10aは量子化器および11は量子化部を示す。また,参照符号12は符号化部、13は量子化制御部、14は帯域数判定部、15は共通スケール推定部、16は初期スケール計算部および17はスケーリング部を示す。
【0077】
ここで、
図13における量子化器10aは、
図14における量子化部11、帯域数判定部14、共通スケール推定部15、初期スケール計算部16およびスケーリング部17を含む。
【0078】
図15は、
図14に示す量子化処理ユニットで使用する変数(パラメータ:信号)およびその内容を説明するための図である。
図15に示されるように、第1実施例で使用する変数は、入力デジタル信号 xin()、スケールファクター(全52グループ) scalefactor()、MDCTスペクトル(全1024本) mdct() および スケールファクターバンドのスペクトル電力 spectral energy() を含む。
【0079】
また、第1実施例で使用する変数は、マスキング閾値(全52グループ) masking threshold()、量子化値 quant()、コモンスケール値 common scale [CS]、符号化帯域数 band、デルタスケール量 Δscale および 量子化可能ビット数 usable bit [UB]を含む。
【0080】
さらに、第1実施例で使用する変数は、量子化ビット数 quant bit[量子化ビット数QB]、サブバンド番号(0〜51) sfb、周波数インデックス(0〜1023)k、サンプル番号nおよび量子化ビット減少特性(傾き)αを含む。
【0081】
ここで、変数 xin()、mdct()、spectral energy()、masking threshold()、usable bit、quant bit、sfb、kおよびnは、例えば、前に、
図3および
図4を参照して説明した量子化処理を実行するためのエンコーダでも使用される。
【0082】
これに対して、変数 scalefactor()、quant()、common scale、band、Δscaleおよびαは、
図3および
図4の量子化処理を実行するエンコーダでは使用されないが、本第1実施例のオーディオ信号符号化装置におけるエンコーダで使用される。
【0083】
図16は、エンコーダ(AACエンコーダ)全体の処理の一例を説明するためのフローチャートであり、
図17は、
図16に示す処理における量子化処理の一例を説明するためのフローチャートである。なお、
図17は、前述した
図11と同様のものであり、
図17におけるステップST11〜ST17は、
図11におけるステップST1〜ST7に対応する。
【0084】
まず、
図16を参照して、AACエンコーダの全体的な処理を説明した後、
図13〜
図15および
図17を参照して、第1実施例を詳述する。なお、以下の説明は、"3GPP TS 26.403 V9.0.0 (2009-12)" の仕様に基づいて行うが、本実施例は、それに限定されないのはいうまでもない。
【0085】
図16に示されるように、AACエンコーダによるAAC符号化処理が開始すると、ステップSTAにおいて、入力されたオーディオ(音声)信号を、修正離散コサイン変換(MDCT:Modified Discrete Cosine Transform)を用いて、時間−周波数変換を行う。これにより、入力オーディオ信号(入力デジタル信号)の周波数スペクトルを得る。
【0086】
<I>.ステップSTAでは、例えば、次の[式4]に従って変換を行い、全1024本のMDCTスペクトル(周波数スペクトル) mdct(k) を得る。
【数4】
【0087】
ここで、Nは、MDCT変換の2048または256の窓を示し、n
0は、(N/2+1)/2となっている。また、周波数インデックスkは、サンプル番号nに対して、0≦k<n/2の条件を満足する。さらに、ステップSTBに進んで、帯域分割および帯域電力の算出を行う。
【0088】
<II>.ステップSTBでは、周波数スペクトルを複数の帯域に分割し、各帯域の周波数スペクトル電力 spectral energy(sfb) を次の[式5]により求めて、ステップSTCに進む。
【数5】
【0089】
なお、上述した処理<I>および<II>は、
図13のフィルタバンク部8により実行され、入力デジタル信号(入力オーディオ信号) xin(n) を受け取って処理を行う。そして、フィルタバンク部8は、得られたMDCTスペクトル mdct(k) および スケールファクターバンドのスペクトル電力 spectral energy(sfb) を量子化処理ユニット10(量子化器10a)に出力すると共に、spectral energy(sfb) を心理聴覚分析部9に出力する。
【0090】
<III>.ステップSTCでは、入力オーディオ信号に対して、心理聴覚分析を行い、マスキング閾値 masking threshold(sfb) を求めて、ステップSTDに進む。
【0091】
ここで、マスキング閾値の算出は、例えば、各入力オーディオ信号のマスキング閾値を求め、各入力オーディオ信号のマスキング閾値のうち、小さい方または大きい方を選択して行う。また、各入力オーディオ信号のマスキング閾値は、簡易的には各周波数帯域の最小可聴域のパワーなどを用いることができる。なお、マスキング閾値の算出は、知られている他の様々な手法を適用することができるのはいうまでもない。
【0092】
<IV>.ステップSTDでは、マスキング閾値とスペクトル電力を帯域ごとに比較し、量子化対象の帯域数(符号化帯域数)を決定する。すなわち、量子化対象帯域数は、masking threshold(sfb)<spectral energy(sfb) になる帯域の数として求められる。
【0093】
なお、上述した処理<III>および<IV>は、
図13の心理聴覚分析部9により実行され、前述したフィルタバンク部8からのスケールファクターバンドのスペクトル電力 spectral energy(sfb) を受け取って処理を行う。そして、心理聴覚分析部9は、マスキング閾値 masking threshold(sfb) および 量子化対象帯域数の情報を量子化処理ユニット10(量子化器10a)に出力する。
【0094】
さらに、ステップSTEおよびSTFの処理(量子化処理)を行った後、ステップSTGに進み、符号化処理を行う。ここで、ステップSTEおよびSTFの量子化処理は、
図17(
図11)に詳述されている。また、ステップSTGでは、量子化処理が行われた符号化信号(例えば、AAC符号化信号)を受け取って、ストリーム信号(例えば、AACのビットストリーム信号)を出力する処理を行う。
【0095】
次に、
図13〜
図15および
図17を参照して、第1実施例における量子化処理ユニット10および量子化処理を詳述する。ここで、前述したように、
図13の量子化器10aは、
図14の量子化部11、帯域数判定部14、共通スケール推定部15、初期スケール計算部16およびスケーリング部17に対応する。
【0096】
図17に示されるように、第1実施例における量子化処理(AAC符号化処理)が開始すると、ステップST11において、初期スケールを計算する。
【0097】
<V>.ステップST11では、量子化対象の帯域に対してスケール値の初期値 scalefactor(sfb) を、次の[式6]により算出し、さらに、ステップST2に進む。
【数6】
【0098】
ここで、dw は、サブバンド(sfb)に含まれるMDCT係数の個数を示す。上記の処理<V>は、
図14の初期スケール計算部16により実行され、前述したフィルタバンク部8からのスケールファクターバンドのスペクトル電力 spectral energy(sfb) および 心理聴覚分析部9からのマスキング閾値 masking threshold(sfb) を受け取って処理を行う。そして、初期スケール計算部16は、得られたスケール値の初期値 scalefactor(sfb) をスケーリング部17に出力する。
【0099】
<VI>.ステップST12では、スケーリングを行い、さらに、ステップST13に進んで、量子化を行う。すなわち、ステップST12において、量子化値 quant(k) を次の[式7]により求めて、ステップST14に進む。
【数7】
【0100】
ここで、最初の処理では、commonscale=0とし、例えば、MAGIC NUMBER=0.4054 とする。なお、MAGIC NUMBER=0.4054 は、前述した "3GPP TS 26.403 V9.0.0 (2009-12)" の仕様において規定された定数である。上記の処理<VI>(ステップST12およびST13の処理)は、
図14のスケーリング部17および量子化部11により実行される。
【0101】
すなわち、スケーリング部17は、前述した初期スケール計算部16からのスケール値の初期値 scalefactor(sfb) および 後述する共通スケール推定部15で処理されたコモンスケール値(CommonScale+Δscale)を受け取って処理を行う。そして、スケーリング部17は、scalefactor(sfb)+Δscale を量子化部11に出力する。
【0102】
また、量子化部11は、前述したフィルタバンク部8からのMDCTスペクトル mdct(k) および スケーリング部17からの scalefactor(sfb)+Δscale を受け取って処理を行う。そして、量子化部11は、得られた量子化値 quant(k) を帯域数判定部14に出力すると共に、quant(k) および スケール情報を符号化部12に出力する。
【0103】
なお、上述したステップST11〜ST13の処理(
図11のステップST1〜ST3の処理)は、前述した
図4におけるステップST101〜ST103の処理、並びに、
図7におけるステップST201〜ST203の処理に対応する。
【0104】
<VII>.ステップST14では、量子化ビット数の判定(量子化(初期)ビット数 quant bit が量子化可能ビット数(usable bit:UB)以下かどうかのループ終了判定)を行う。すなわち、ステップST14では、次の[条件式1]に従った判定を行い、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下ではない(quant bit > usable bit)と判定すると、ステップST15に進む。
【数8】
【0105】
ここで、ステップST14において、quant bit が usable bit 以下である(quant bit ≦ usable bit)と判定すると、量子化処理(量子化ループ)を終了して符号化信号(AAC符号化信号)を出力する。なお、この量子化処理ユニット10(AACエンコーダ)から出力されたAAC符号化信号は、例えば、
図29のストリーム出力部56を介してAACストリーム信号として出力される。
【0106】
上記の処理<VII>は、
図14の符号化部12および量子化制御部13により実行される。符号化部12は、量子化部11からの量子化値 quant(k) および スケール情報を受け取って処理を行い、量子化ビット数 quant bit を量子化制御部13および共通スケール推定部15に出力する。
【0107】
また、量子化制御部13は、符号化部12からの量子化ビット数 quant bit および 量子化可能ビット数 usable bit を受け取って処理を行い、制御信号(ループ実行信号)を帯域数判定部14に出力する。なお、量子化制御部13に入力された量子化可能ビット数 usable bit は、後述する共通スケール推定部15にも出力される。
【0108】
<VIII>.ステップST15では、符号化帯域数の判定を行い、さらに、ステップST16に進む。すなわち、ステップST15では、次の[条件式2]に従った判定を行い、符号化帯域数 band を算出する。
【数9】
【0109】
上記の処理<VIII>は、
図14の帯域数判定部14により実行される。帯域数判定部14は、量子化部11からの量子化値 quant(k) および 量子化制御部13からの制御信号を受け取って処理を行い、符号化帯域数 band を共通スケール推定部15に出力する。
【0110】
すなわち、帯域数判定部14は、全帯域で量子化値が0でない帯域の数をカウントする。ここで、MDCT係数は、量子化値 quant(k) および (スケール値 scalefactor(sfb)−コモンスケール値 common scale) で符号化するため、量子化値が0でない (quant(k)≠0:quant(k) != 0) 個所(帯域)が符号化の対象となる。
【0111】
<IX>.ステップST16では、デルタスケールを推定して、ステップST17に進む。すなわち、ステップST16において、デルタスケール量 Δscale を次の[式8]により求めて、ステップST17に進む。
【数10】
【0112】
<X>.ステップST17では、コモンスケール値を更新し、ステップST12に戻り、同様の処理(処理<VI>〜<X>)を繰り返す。すなわち、ステップST17において、更新されたコモンスケール値 CommonScale [CS]を次の[式9]により求めて、ステップST12に戻る。
【数11】
【0113】
上記の処理<IX>および<X>は、
図14の共通スケール推定部15により実行される。共通スケール推定部15は、符号化部12からの量子化ビット数 quant bit,帯域数判定部14からの符号化帯域数 band および 量子化可能ビット数 usable bit を受け取ってコモンスケール値 CommonScale の更新処理を行う。そして、共通スケール推定部15は、更新されたコモンスケール値 CommonScale (=CommonScale+Δscale)をスケーリング部17に出力する。
【0114】
なお、上述したオーディオ信号符号化方法(量子化処理方法)は、ハードウェアによる回路として、或いは、例えば、後述する
図29の演算処理装置(CPU54:コンピュータ)により実行させるソフトウェアプログラムとして実施することができる。
【0115】
なお、CPU54(コンピュータ)に実行させるプログラムは、例えば、CPU54に設けられたメモリ(不揮発性メモリ540)に格納する。また、このプログラムは、例えば、プログラム(データ)提供者60におけるハードディスク装置61や可搬型記録媒体(メモリカード)70に記録され、例えば、I/O部57を介して不揮発性メモリ540に格納される。
【0116】
上述したように、本第1実施例では、帯域数判定部14により、符号化帯域数の判定処理(処理<VIII>:ステップST15の処理)を行う。さらに、共通スケール推定部15により、デルタスケールの推定処理(処理<IX>:ステップST16の処理)、および、コモンスケール値の更新処理(処理<X>:ステップST17の処理)を行う。
【0117】
ここで、帯域数判定部14および共通スケール推定部15により行う具体的な処理は、例えば、
図10〜
図12および[式3]等を参照して詳述した通りである。すなわち、本第1実施例において、Δscale は、Δscale = [(quant bit)−(usable bit)]/[α・(band)] として求めることができる。
【0118】
そして、この得られた Δscale を使用して、コモンスケール値 CommonScale (推定されたコモンスケール値CS) = CommonScale + ΔScale として求める。なお、αの値は、予め大量の実験データから最適な値を求め、例えば、
図29におけるCPU54に設けられた不揮発性メモリ540に格納することができる。
【0119】
以上、詳述したように、本第1実施例によれば、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下になるまでのループ(ビット制御ループ)の回数を低減することができ、量子化処理に要する時間を短縮することが可能になる。
【0120】
図18は、オーディオ信号符号化装置の第2実施例におけるエンコーダを示すブロック図であり、
図19は、
図18に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。また、
図20は、
図19に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【0121】
さらに、
図21は、スケールファクターバンドを説明するための図であり、
図22は、
図20に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【0122】
ここで、
図21(a)は、1024本のMDCTスペクトル mdct(k) と、最大52グループのサブバンド sfb の関係を示し、
図21(b)は、マスキング閾値によりサブバンド sfb3 がマスクされる場合を示す。また、
図21(c)は、
図21(b)のように、sfb3 がマスクされた結果、サブバンド sfb の数が1つ少なくなる様子を示す。
【0123】
なお、
図21(a)〜
図21(c)において、縦軸は、電力を示し、横軸は、帯域(帯域数)を示す。
【0124】
すなわち、上述した第1実施例では、処理<VIII>(ステップST15の処理)および[条件式2]に示されるように、毎ループで、量子化値 quant(k)≠0 の帯域から符号化帯域数 band を求めていた。
【0125】
これに対して、本第2実施例では、
図22と
図17の比較から明らかなように、符号化帯域数の判定(
図17におけるステップST15)として、ステップST25A〜ST25Cの処理を行う。
【0126】
すなわち、本第2実施例では、2回目のループにおいて、符号化帯域数の判定を、MDCTスペクトル mdct(k) ごとに行うのではなく、サブバンド(sfb)のグループ単位で行うようになっている。
【0127】
なお、本第2実施例の
図18〜
図20は、前述した第1実施例の
図13〜
図15に対応し、
図19において、初期スケール計算部26から帯域数判定部24に対して、符号化帯域数設定の制御信号が出力されている点が異なる。
【0128】
ここで、
図18における量子化処理ユニット20の量子化器20a,符号化部22および量子化制御部23は、前述した
図13における量子化処理ユニット10の量子化器10a,符号化部12および量子化制御部13に相当する。
【0129】
また、
図19における共通スケール推定部25およびスケーリング部27は,
図14における共通スケール推定部15およびスケーリング部17に対応し、さらに、
図20に示す変数およびその内容は、前述した
図15と同様である。
【0130】
そして、
図22におけるステップST21〜ST24,ST26およびST27は、前述した
図17におけるステップST11〜ST14,ST16およびST17に相当する。従って、それらの説明は、本第2実施例では省略し、主として、第1実施例との相違個所を詳述する。
【0131】
上述したように、本第2実施例では、2回目のループにおいて、符号化帯域数の判定を、MDCTスペクトル mdct(k) ごとに行うのではなく、サブバンド sfb のグループ単位で行う。
【0132】
すなわち、
図22のステップST24において、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下ではない(quant bit > usable bit)と判定すると、ステップST25Aに進み、ループが2回目かどうかを判定する。
【0133】
ステップST25Aにおいて、ループが2回目であると判定すると、ステップST25Bに進んで、サブバンド単位で符号化帯域数の判定を行い、そして、ステップST26に進んで、デルタスケールの推定を行う。
【0134】
一方、ステップST25Aにおいて、ループが2回目ではないと判定すると、ステップST25Cに進んで、前述した第1実施例と同様に、量子化値で符号化帯域数の判定を行い、そして、ステップST26に進んで、デルタスケールの推定を行う。
【0135】
従って、本第2実施例は、前述した第1実施例における処理<VIII>の代わりに、次の処理<VIIIa>を行う。なお、第1実施例における他の処理<I>〜<VII>,<IX>および<X>は、本第2実施例でも同様なので、その説明は省略する。
【0136】
<VIIIa>.ステップST25A〜ST25Cでは、次の[条件式3]に従った判定を行い、符号化帯域数 band を算出する。
【数12】
【0137】
上記の処理<VIIIa>は、
図19の帯域数判定部24により実行される。帯域数判定部24は、量子化部21からの量子化値 quant(k) および 量子化制御部23からの制御信号を受け取って処理を行い、符号化帯域数 band を共通スケール推定部25に出力する。ここで、帯域数判定部24には、初期スケール計算部26からの符号化帯域数設定情報が入力されている。
【0138】
すなわち、帯域数判定部24は、初期スケール計算部26からの符号化帯域数設定情報により、ループが2回目かどうかを認識できるようになっている。そして、ループが2回目の時は、符号化帯域数の判定を、MDCTスペクトル mdct(k) ごとに行うのではなく、サブバンド sfb のグループ単位で行うことになる。
【0139】
ここで、
図21を参照して前述したように、MDCTスペクトル mdct(k) は、例えば、1024本であるのに対して、サブバンド sfb のグループは、最大52グループであるため、符号化帯域数の判定を sfb により行うことで処理量を低減することができる。
【0140】
なお、本第2実施例において、ループが3回目以降の場合、前述した第1実施例と同様に、全帯域(1024本のMDCTスペクトル mdct(k))に対して、量子化値が0でない(quant(k)≠0)個所(帯域)を符号化対象としてカウントする。
【0141】
その理由は、まず、スケールが大きくなると、量子化値 quant(k) が0になり、符号化帯域数が減って行く。また、スケールファクターバンドによる符号化対象の決定は量子化前の1回なので、スケールが大きくなるにつれて(量子化ループの回数が増加につれて)、符号化帯域数の誤差が大きくなるためである。
【0142】
上述したように、本第2実施例では、2回目のループの時に、符号化帯域数の判定をサブバンド sfb のグループ単位で行うことにより、推定精度は多少低下することになるが、処理量を低減して量子化処理に要する時間を短縮することが可能になる。
【0143】
図23は、オーディオ信号符号化装置の第3実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。ここで、
図23と前述した
図17の比較から明らかなように、本第3実施例における量子化処理は、実質的に第1実施例の量子化処理に対応している。
【0144】
図23に示す本第3実施例におけるステップST31〜ST37は、
図17に示す第1実施例におけるステップST11〜ST17と同様に描かれているが、本第3実施例では、ステップST35の符号化帯域数の判定処理が第1実施例とは異なっている。すなわち、本第3実施例では、符号化量(spe bit(k))が減少しなくなった帯域を、符号化しない帯域とみなして符号化帯域数を判定する。
【0145】
図24は、オーディオ信号符号化装置の第3実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図であり、
図25は、符号化量の閾値とコモンスケール値の関係を説明するための図である。また、
図26は、オーディオ信号符号化装置の第3実施例において、符号化量の閾値と各帯域における符号化量の関係を説明するための図である。
【0146】
ここで、
図24(a)は、コモンスケール値 common scale [CS]を付加する前の各帯域での符号化量 spe bit(k) を示し、
図24(b)は、コモンスケール値 common scale を付加した後の各帯域での符号化量 spe bit(k) を示す。
【0147】
図24(a)と
図24(b)の比較から明らかなように、付加するコモンスケール値 common scale を増大しても、各帯域での符号化量 spe bit(k) の減少は一定ではないことが分かる。
【0148】
さらに、
図25において、コモンスケール値を増加した場合、参照符号R1で示す始めの領域では、一定の割合で符号化量 spe bit が減少する。しかしながら、参照符号R2で示す領域では、コモンスケール値を増加しても符号化量 spe bit が減少し難くなる。
【0149】
そこで、
図26に示されるように、本第3実施例では、コモンスケール値 common scale [CS]を増加しても符号化量 spe bit が減少しない帯域を、所定の閾値 th を設けて判定し、符号化帯域数のカウントを行う。すなわち、各帯域の符号化量 spe bit(k) が閾値 th よりも減らない帯域を符号化しない帯域とみなして符号化帯域数を求める。
【0150】
すなわち、本第3実施例は、前述した第1実施例における処理<VIII>の代わりに、次の処理<VIIIb>を行う。なお、第1実施例における他の処理<I>〜<VII>,<IX>および<X>は、本第3実施例でも同様なので、その説明は省略する。
【0151】
<VIIIb>.ステップST35では、次の[条件式4]に従った判定を行い、符号化帯域数 band を算出する。
【数13】
【0152】
上記の処理<VIIIb>は、前述した
図14に示す第1実施例の帯域数判定部14に対応する個所により実行される。この帯域数判定部14に対応する個所は、第1実施例における量子化値が0でない(quant(k)≠0)個所(帯域)の判定だけでなく、符号化量が閾値以上(spe bit(k) > th)となる帯域の判定も行う。すなわち、量子化値が0でない(quant(k)!= 0)帯域であって、なおかつ、符号化量が閾値以上(spe bit(k) > th)となる帯域を、符号化帯域数として求める。
【0153】
このように、本第3実施例は、前述した第1実施例に加えて、コモンスケール値を増加しても符号化量が減少し難くなる(所定の閾値よりも減少しない)帯域を、符号化帯域数から除くことにより、より一層推定精度を向上させることができる。
【0154】
図27は、オーディオ信号符号化装置の第4実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。また、
図28は、オーディオ信号符号化装置の第4実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図である。
【0155】
ここで、
図28(a)は、コモンスケール値 common scale [CS]を付加する前の各帯域での量子化値 quant(k) を示し、
図28(b)は、コモンスケール値 common scale を付加した後の各帯域での量子化値 quant(k) を示す。
【0156】
図28(a)と
図28(b)の比較から明らかなように、付加するコモンスケール値 common scale を増大しても、各帯域での量子化値 quant(k) が変化しない場合があることが分かる。
【0157】
ここで、変化しない要因の一例を以下に述べる。量子化値 quant(k) は、次の[式10]から求めることができる。この[式10]では、計算結果が整数型なのでコモンスケール値 common scale が増加しても量子化値 quant(k) が変化しないことがある。
【数14】
【0158】
具体的に、次の[式11]および[式12]では、コモンスケール値 common scale が『25』と『30』で異なっていても、得られた量子化値は、両方とも75と等しくなる。
【数15】
【0159】
そこで、本第4実施例では、コモンスケール値 common scale [CS]を増加しても量子化値 quant(k) が変化しない帯域を除いて符号化帯域数のカウントを行う。すなわち、各帯域の量子化値 quant(k) が変化しない帯域を符号化しない帯域とみなして符号化帯域数を求める。
【0160】
すなわち、本第4実施例は、前述した第1実施例における処理<VIII>の代わりに、次の処理<VIIIc>を行う。なお、第1実施例における他の処理<I>〜<VII>,<IX>および<X>は、本第4実施例でも同様なので、その説明は省略する。
【0161】
<VIIIc>.ステップST45では、次の[条件式5]に従った判定を行い、符号化帯域数 band を算出する。
【数16】
【0162】
上記の処理<VIIIc>は、前述した
図14に示す第1実施例の帯域数判定部14に対応する個所により実行される。この帯域数判定部14に対応する個所は、第1実施例における量子化値が0でない(quant(k)≠0)の個所(帯域)の判定だけでなく、量子化値が変化する(quant(k,no-1) ≠ quant(k,no))帯域の判定も行う。すなわち、量子化値が0でない(quant(k) != 0)帯域であって、なおかつ、量子化値が変化する(quant(k,no-1) != quant(k,no))帯域を、符号化帯域数として求める。ここで、no は、量子化ループ回数を表す。
【0163】
なお、量子化値の変化の判定は、例えば、ループ no と、それより1回前のループ no-1 による同じ帯域の量子化値の判定(quant(k,no-1) != quant(k,no))に限定されるものではない。例えば、ループ no と、それより1回前の量子化値の判定(quant(k,no-1) != quant(k,no))および2回前の量子化値の判定(quant(k,no-2) != quant(k,no))の連続した2回のループによる判定を行ってもよい。ここで、判定するループ回数は連続した2回に限定されるものではなく、さらに多い回数(例えば、3回)であってもよい。
【0164】
このように、本第4実施例は、前述した第1実施例に加えて、コモンスケール値を増加しても量子化値が変化しない帯域を、符号化帯域数から除くことにより、より一層推定精度を向上させることができる。
【0165】
なお、上述した第3実施例および第4実施例を組み合わせて符号化帯域数を求めることもできる。すなわち、第1実施例における処理<VIII>として、量子化値が0でない(quant(k)≠0)帯域で、符号化量が閾値以上(spe bit(k) > th)となる帯域で、しかも、量子化値が変化する(quant(k,no-1) ≠ quant(k,no))帯域を、符号化帯域数として求めることもできる。
【0166】
図29は、オーディオ信号符号化装置の全体構成の一例を示すブロック図である。
図29において、参照符号51はオーディオ入力部、52はメモリコントローラ、53はDRAM(Dynamic Random Access Memory)、54はCPU(Central Processing Unit)および55はDMA(Direct Memory Access)部を示す。
【0167】
さらに、参照符号56はストリーム出力部、57はI/O(Input/Output Port)部、そして、58はバスを示す。
【0168】
図29に示されるように、オーディオ信号符号化装置は、オーディオ入力部51,メモリコントローラ52,DRAM53,CPU54,DMA部55,ストリーム出力部56,I/O部57およびバス58を含む。
【0169】
オーディオ入力部51は、外部から入力されたオーディオ(音声)信号を受け取って、システム内部に取り込む。ここで、入力されたオーディオ信号は、デジタル信号として与えられるが、例えば、入力オーディオ信号がアナログ信号であれば、オーディオ入力部51により、所定のサンプリング周波数でA/D変換を行ってデジタルデータに変換して取り込まれる。なお、以下の記載では、オーディオ入力信号はデジタルデータであるとして説明する。
【0170】
メモリコントローラ52は、CPU54からの命令等に従って,DRAM53に対する書き込み(Read)および読み出し(Write)を制御する。CPU54は、オーディオ信号符号化装置全体の制御および入力データに対する符号化処理を行い、ストリーム出力部56を介してストリーム(例えば、AACストリーム)を出力する。
【0171】
ここで、CPU54は、例えば、ROM(Read Only Memory)やフラッシュメモリ(Flash Memory)或いはMRAM(Magnetoresistive Random Access Memory)といった不揮発性メモリ540を含む。
【0172】
不揮発性メモリ540には、例えば、前述した量子化ビット減少特性(傾き)αをビットレート等のパラメータに応じて規定したメモリテーブルが格納される。さらに、不揮発性メモリ540には、CPU54(演算処理装置:コンピュータ)に対して、前述したオーディオ信号符号化処理(量子化処理)を実行させるためのオーディオ信号符号化プログラムが格納される。
【0173】
なお、オーディオ信号符号化プログラムは、例えば、そのオーディオ信号符号化プログラムが記録された可搬型記録媒体(SD(Secure Digital)メモリカード)70からI/O部57を介して不揮発性メモリ540に格納されてもよい。或いは、プログラム(データ)提供者60のハードディスク装置61からI/O部57および回線を介して不揮発性メモリ540に格納されてもよい。また、オーディオ信号符号化プログラムが記録された可搬記録媒体(コンピュータ読み取り可能な記録媒体)としては、他にDVD(Digital Versatile Disk)ディスクやブルーレイディスク(Blu-ray Disc)等の記録媒体であってもよい。
【0174】
図29において、参照符号P1〜P3は、オーディオ信号符号化装置の各処理における信号およびデータの流れの経路を示す。すなわち、経路P1に示されるように、オーディオ入力信号(デジタルデータ)は、オーディオ入力部51によって内部に取り込まれ、バス58およびメモリコントローラ52を介して、DRAM53に格納される。
【0175】
また、経路P2に示されるように、DRAM53に格納されたデジタルデータは、メモリコントローラ52およびバス58を介して、CPU54の内部にロードされ、上述した量子化処理(符号化処理)を行う。なお、DRAM53からCPU54へのデータ転送は、CPU54ではなくDMA部55により実行されることもある。
【0176】
さらに、上記符号化処理は、例えば、CPU54に不揮発性メモリ540に格納されたオーディオ信号符号化プログラムを実行させることにより行われる。ここで、オーディオ信号符号化プログラムは、必ずしもCPU54内部の不揮発性メモリ540に格納されなくてもよい。
【0177】
さらに、経路P3に示されるように、符号化されたオーディオ出力データ、すなわち、例えば、前述した
図14における符号化部12から出力されるAAC符号化信号は、ストリーム出力部56またはI/O部57を介して外部デバイスに出力される。
【0178】
なお、外部デバイスは、例えば、USB(Universal Serial Bus)やSD(Secure Digital)メモリカードなどであり、I/O部57を介してAAC符号化ストリームを受け取る。ここで、
図29に示すオーディオ信号符号化装置は、単なる例であり、上述した各実施例1〜4は、様々なオーディオ信号符号化装置に対して幅広く適用することができるのはいうまでもない。
【0179】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【0180】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、
を備えることを特徴とするオーディオ信号符号化装置。
【0181】
(付記2)
前記共通スケール推定部は、削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とする付記1に記載のオーディオ信号符号化装置。
【0182】
(付記3)
前記帯域数判定部は、前記複数の帯域の各量子化値が0ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記1または2に記載のオーディオ信号符号化装置。
【0183】
(付記4)
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
前記共通スケール値を、前記符号化帯域数に従って推定する、
ことを特徴とするオーディオ信号符号化方法。
【0184】
(付記5)
前記共通スケール値の推定は、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とする付記4に記載のオーディオ信号符号化方法。
【0185】
(付記6)
前記共通スケール値の推定は、
削減する量子化ビット数を、前記減少特性と前記符号化帯域数の積で除算して前記共通スケール値を推定する、
ことを特徴とする付記4に記載のオーディオ信号符号化方法。
【0186】
(付記7)
前削減する量子化ビット数は、前記量子化ビット数の実際の値と量子化可能ビット数の差である、
ことを特徴とする付記5または付記6に記載のオーディオ信号符号化方法。
【0187】
(付記8)
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が0ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記4乃至付記7のいずれか1項に記載のオーディオ信号符号化方法。
【0188】
(付記9)
前記符号化帯域数の算出は、
前記複数の帯域がまとめられた複数のサブバンドのグループに対して、前記複数のグループの各量子化値が0ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記8に記載のオーディオ信号符号化方法。
【0189】
(付記10)
前記サブバンドのグループに対する前記符号化帯域数の算出は、
前記量子化された周波数スペクトルを符号化する2回目のループに行う、
ことを特徴とする付記9に記載のオーディオ信号符号化方法。
【0190】
(付記11)
前記符号化帯域数の算出は、
前記各帯域で符号化した符号化量が、前記コモンスケール値を増加しても所定の閾値よりも減少しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする付記8に記載のオーディオ信号符号化方法。
【0191】
(付記12)
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が0ではない帯域をカウントして求めた前記符号化帯域数から、前記符号化量が前記コモンスケール値を増加しても所定の閾値より減少しない帯域の数を減算して算出する、
ことを特徴とする付記11に記載のオーディオ信号符号化方法。
【0192】
(付記13)
前記符号化帯域数の算出は、
前記各帯域における前記各量子化値が、前記コモンスケール値を増加しても変化しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする付記8に記載のオーディオ信号符号化方法。
【0193】
(付記14)
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が0ではない帯域をカウントして求めた前記符号化帯域数から、前記各量子化値が前記コモンスケール値を増加しても変化しない帯域の数を減算して算出する、
ことを特徴とする付記13に記載のオーディオ信号符号化方法。
【0194】
(付記15)
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
前記共通スケール値を、前記符号化帯域数に従って推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。