(57)【要約】【課題】  オーディオ信号の符号化における量子化処理の処理量の削減。【解決手段】  フレーム分割部(1)、聴覚心理演算部(2)、フィルタバンク(3)、聴覚心理演算部(2)の演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出部(4)、重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定部(7)、スペクトル量子化部(8)、量子化スペクトルを整形したビットストリームを出力するビット整形部(9)、を備え、量子化ステップ決定部(7)は、符号化対象であるフレームに割り当てられたビット量に基づいて量子化スペクトル全体の情報量を予測する。【選択図】  図１
2006145782.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割部と、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算部と、
前記聴覚心理演算部で決定された前記変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク部と、
前記フィルタバンク部より出力された周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出部と、
前記スケールファクタ算出部によって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定部と、
前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化部と、
前記スペクトル量子化部から出力される量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形部と、
を備え、
前記量子化ステップ決定部は、符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を予測する量子化スペクトル情報量予測部を含むことを特徴とするオーディオ信号符号化装置。
【請求項２】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割部と、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算部と、
前記聴覚心理演算部で決定された変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク部と、
前記フィルタバンク部より出力された周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出部と、
符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を量子化する前に予測する量子化スペクトル情報量予測部と、
前記スケールファクタ算出部によって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から前記量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定部と、
前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化部と、
前記スペクトル量子化部から出力される量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形部と、
を備え、
前記量子化スペクトル情報量予測部は、固定ビットレート符号化時に、入力信号の予測符号量が平均フレーム割当ビットに満たない場合は、聴覚エントロピーに基づいて量子化スペクトル情報量を予測することを特徴とするオーディオ信号符号化装置。
【請求項３】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割部と、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算部と、
前記聴覚心理演算部で決定された変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク部と、
前記フィルタバンク部より出力された周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出部と、
符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を量子化する前に予測する量子化スペクトル情報量予測部と、
前記スケールファクタ算出部によって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から前記量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定部と、
前記スケールファクタと前記量子化ステップを利用して前記周波数スペクトル列を量子化するスペクトル量子化部と、
前記スペクトル量子化部から出力される量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形部と、
を備え、
前記スペクトル量子化部は、量子化スペクトルに使用される符号量が割り当てられた符号量を超えた場合に、前記量子化ステップを調整してスペクトルの再量子化を行うことを特徴とするオーディオ信号符号化装置。
【請求項４】
符号化形式がMPEG-1 Audio Layer III であることを特徴とする請求項１から３までのいずれかに記載のオーディオ信号符号化装置。
【請求項５】
符号化形式がMPEG-2/4 AAC であることを特徴とする請求項１から３までのいずれかに記載のオーディオ信号符号化装置。
【請求項６】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割ステップと、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算ステップと、
前記聴覚心理演算ステップで決定された前記変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク処理ステップと、
前記フィルタバンク処理ステップで得られた周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算ステップでの演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出ステップと、
前記スケールファクタ算出ステップによって重み付けされた量子化前のスペクトル全体が持つ情報量から量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定ステップと、
前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化ステップと、
前記スペクトル量子化ステップで得られた量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形ステップと、
を有し、
前記量子化ステップ決定ステップは、符号化対象であるフレームに割り当てられた情報量に基づいて前記量子化スペクトル全体の情報量を予測する量子化スペクトル総量予測ステップを含むことを特徴とするオーディオ信号符号化方法。
【請求項７】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割ステップと、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算ステップと、
前記聴覚心理演算ステップで決定された前記変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク処理ステップと、
前記フィルタバンク処理ステップで得られた周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算ステップでの演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出ステップと、
符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を量子化する前に予測する量子化スペクトル情報量予測ステップと、
前記スケールファクタ算出ステップによって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から前記量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定ステップと、
前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化ステップと、
前記スペクトル量子化で得られた量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形ステップと、
を有し、
前記量子化スペクトル情報量予測ステップでは、固定ビットレート符号化時に、入力信号の予測符号量が平均フレーム割当ビットに満たない場合は、聴覚エントロピーに基づいて量子化スペクトル情報量を予測することを特徴とするオーディオ信号符号化方法。
【請求項８】
オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割ステップと、
オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキング計算を行う聴覚心理演算ステップと、
前記聴覚心理演算ステップで決定された前記変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク処理ステップと、
前記フィルタバンク処理ステップで得られた周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算ステップでの演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出ステップと、
符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を量子化する前に予測する量子化スペクトル情報量予測ステップと、
前記スケールファクタ算出ステップによって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から前記量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定ステップと、
前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化ステップと、
前記スペクトル量子化ステップで得られた量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形ステップと、
を有し、
前記スペクトル量子化ステップでは、量子化スペクトルに使用される符号量が割り当てられた符号量を超えた場合に、前記量子化ステップを調整してスペクトルの再量子化を行うことを特徴とするオーディオ信号符号化方法。
【請求項９】
請求項６から８までのいずれかに記載のオーディオ信号符号化方法をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ信号の符号化装置および方法に関する。
【背景技術】
【０００２】
近年、高音質かつ高効率なオーディオ信号符号化技術が、DVD-Videoの音声トラック、半導体メモリやHDDなどを利用した携帯オーディオプレイヤー、インターネットを介した音楽配信、家庭内LANにおけるホームサーバへの楽曲蓄積などに広く利用され、幅広く普及するとともにその重要性も増している。
【０００３】
このようなオーディオ信号符号化技術の多くは、変換符号化技術を利用して時間周波数変換を行なっている。例えば、MPEG-2 AACやDolby Digital(AC-3)などでは、MDCTなどの直交変換単体でフィルタバンクを構成しており、MPEG-1 Audio Layer III(MP3)やATRAC(MDに利用されている符号化方式)では、QMFなどのサブバンド分割フィルタと直交変換を多段接続してフィルタバンクを構成している。
【０００４】
これらの変換符号化技術では、人間の聴覚特性を利用したマスキング分析を行うことによって、マスキングされると判断したスペクトル成分を取り除く、あるいはマスクされる量子化誤差を許容することにより、スペクトルを表現するための情報量を削減し、圧縮効率を高めている。
【０００５】
また、これらの変換符号化技術では、その多くが、スペクトル成分を非線形量子化することにより、スペクトルが持つ情報量を圧縮している。例えば、MP3やAACでは、各スペクトル成分を0.75乗することにより情報量を圧縮している。
【０００６】
また、これらの変換符号化技術では、フィルタバンクによって周波数成分に変換された入力信号を、人間の聴覚の周波数分解能に基づいて設定される分割周波数帯域ごとにまとめ、量子化時に各分割周波数帯域毎の正規化係数を聴覚分析の結果より決定し、正規化係数と量子化スペクトルの組み合わせで周波数成分を表現することで情報量を削減している。この正規化係数は、実際には分割帯域毎の量子化粗さの調整を行う変数であり、正規化係数が１変化することによって、量子化粗さは１ステップ分変化することになる。MPEG-2 AACでは、この分割周波数帯域をスケールファクタバンド（SFB）と呼び、正規化係数をスケールファクタと呼称する。
【０００７】
また、これらの変換符号化方式では、符号化単位である１フレーム全体の量子化粗さを制御することによって符号量を制御している。多くの変換符号化方式では、量子化粗さは、ある基数の整数乗幅でステップ状に制御されており、この整数を量子化ステップと呼ぶ。MPEGオーディオ規格では、この、フレーム全体の量子化粗さを設定する量子化ステップを「グローバルゲイン」もしくは「コモンスケールファクタ」と呼称している。また、前述のスケールファクタは量子化ステップとの相対値で表現することによって、これらの変数の符号に必要な情報量を削減している。
【０００８】
例えば、MP3やAACではこれらの変数が１変化することによって、実際の量子化粗さは２の3/16乗分変化する。
【０００９】
変換符号化方式の量子化処理では、スケールファクタを制御して聴覚演算の結果を反映して量子化誤差がマスクされるように量子化歪みを制御すると同時に、量子化ステップを制御してフレーム全体の量子化粗さを適宜調整することによってフレーム全体の符号量制御を行わなければならない。これらの量子化粗さを決める二種類の数値は、符号化品質に重大な影響を及ぼすため、慎重かつ正確に、この二つの制御を同時に効率よく行うことが求められる。
【００１０】
MPEG-1 Audio Layer III(MP3)の規格書(ISO/IEC 11172-3)やMPEG-2 AACの規格書(ISO/IEC 13818-7)では、量子化時にスケールファクタとグローバルゲインを適宜制御する方法として、歪み制御ループ（アウターループ）と符号量制御ループ（インナーループ）の二重ループによって繰り返し処理を行う方法が紹介されている。以下、この方法を図面を用いて説明する。なお、便宜上、MPEG-2 AACの場合を例にとって説明を行う。
【００１１】
図１３は、ISO/IEC規格書に記載されている量子化処理を簡単なフローチャートにしたものである。
【００１２】
まず、ステップＳ５０１では全てのSFBのスケールファクタと、グローバルゲインが０に初期化され、歪み制御ループ（アウターループ）に入る。
【００１３】
歪み制御ループでは、まず、符号量制御ループ（インナーループ）が実行される。
【００１４】
符号量制御ループでは、まず、ステップＳ５０２において、１フレーム分、すなわち、１０２４個のスペクトル成分が、下記の量子化式に従って量子化される。
【００１５】
【数１】
2006145782.tif 000003
【００１６】
ただし、（1）式においてXqは量子化スペクトル、xiは量子化前のスペクトル(MDCT係数)、global_gainはグローバルゲイン、scalefacはこのスペクトル成分が含まれるSFBのスケールファクタである。
【００１７】
次に、ステップＳ５０３において、これらの量子化スペクトルをハフマン符号化した時の１フレーム分の使用ビット数が計算され、Ｓ５０４でフレームに割り当てられたビット数と比較する。割り当てられたビット数より使用ビット数が大きい場合は、Ｓ５０５においてグローバルゲインを１増加して、量子化粗さを粗くして、再びＳ５０２のスペクトル量子化に戻る。この繰り返しは量子化後に必要なビット数が割り当てられたビット数より少なくなるまで行われ、この時点でのグローバルゲインが決定されて、符号量制御ループが終了する。
【００１８】
ステップＳ５０６では、符号量制御ループによって量子化されたスペクトルを逆量子化して、量子化前のスペクトルとの差分を取ることによって量子化誤差を算出する。この量子化誤差は、SFB毎にまとめられる。
【００１９】
ステップＳ５０７では、全てのSFBでスケールファクタが０より大きくなったか、もしくは、量子化誤差が許容誤差範囲内に納まっているかどうかを調べる。このいずれの条件も満たさないSFBがある場合は、ステップＳ５０８に進み、許容誤差範囲内に量子化誤差が納まっていないSFBのスケールファクタを１増やし、再び歪み制御ループ処理を繰り返す。なお、SFB毎の許容誤差は聴覚演算によって量子化処理の前に求められている。
【００２０】
以上説明したように、ＩＳＯ規格書に記載されている量子化処理方法は二重ループで構成されており、しかも、グローバルゲインとスケールファクタは１刻みの制御しか行われないために、この処理が収束するまでに、スペクトル量子化とビット計算が幾度となく延々と繰り返されることになる。
【００２１】
ここで、例えばMPEG-2 AACの場合では、スペクトル量子化は１回処理するたびに式（1）の計算を1024回行うことになるため、計算量が多い処理である。また、ビット計算時に検索されるハフマン符号表が１１種も存在するため、ハフマン符号表を全探索するとビット計算もやはり計算量が必然的に多くなる。
【００２２】
さらに、歪み制御ループでは逆量子化後に量子化誤差の計算を行っているが、この処理にも計算量がかかってしまう。そのため、この二重ループが収束するまでには膨大な処理量がかかってしまう。
【００２３】
この問題を解決するために、二重ループの繰り返し回数を削減することによって、処理量を削減しようとする様々な試みがなされている。
【００２４】
例えば、特開2003-271199号公報（特許文献１）には、ハフマン符号表の特性に応じて決定したステップ数によって、コモンスケールファクタやスケールファクタを１刻みではなく飛び飛びに制御することにより、二重ループそれぞれのループ回数を減らし、処理量を削減する方法が開示されている。
【００２５】
また、特開2001-184091号公報（特許文献２）には、最初に量子化ステップの推定値を算出した後、スケールファクタをMNRに応じて計算後、通常のインナーループを実行する方法が開示されている。
【００２６】
また、A.D.Duenes、R.Perez、 B.Rivasらの論文“A robust and efficient implementation of MPEG-2/4 AAC Natural Audio Coders”（AES 112th Convention Paper,  2002）（非特許文献１）には、式（１）を変形した式と、聴覚分析によって求められるSFB毎の許容誤差エネルギーを用いることによって、スケールファクタをスペクトル量子化に先行して適宜計算することにより、二重ループの外側の歪み制御ループを取り除き、処理量を削減する方法が紹介されている。
【００２７】
これらの従来技術を用いることによって、量子化処理の二重ループの収束を早め、量子化処理の処理量をある程度までは削減することができる。
【００２８】
【特許文献１】特開2003-271199号公報
【特許文献２】特開2001-184091号公報
【非特許文献１】A.D.Duenes、R.Perez、B.Rivas 等，“A robust and efficient implementation of MPEG-2/4 AAC Natural Audio Coders”，AES 112th Convention Paper（2002）
【発明の開示】
【発明が解決しようとする課題】
【００２９】
しかしながら、従来の技術では、ISO規格書に記載されている二重ループを完全に繰り返さないようにすることはできないため、依然としてスペクトル量子化を数回から数十回繰り返さないと量子化処理を終えることができず、符号化処理全体に占める量子化処理の処理量は依然として大きかった。
【００３０】
特に、二重ループのうち、聴覚演算結果を利用して事前にスケールファクタを計算することによって、外側の歪み制御ループを無くすことは可能であるが、量子化ステップを量子化前に計算することは従来の技術では不可能であった。
【００３１】
そのため、従来の技術では符号量制御ループにおけるスペクトル量子化とビット計算をやはり繰り返し行なっており、処理量を浪費しているという課題がある。
【００３２】
本発明は、上記問題点に鑑みてなされたものであり、オーディオ信号の符号化における量子化処理の処理量を大幅に削減することを目的とする。
【課題を解決するための手段】
【００３３】
本発明は、基本的には量子化前の情報量を量子化後の情報量で割ることによって、全体の量子化粗さを求めることができるという考えに基づき、量子化ステップを実際の量子化前に求めようとするものである。ここで、量子化粗さは一般的に基数を量子化ステップ乗したものであるため、量子化ステップを求めるために底をこの基数にした対数をとると、情報量の除算は情報量の差分に変化する。この差分に、量子化の刻み幅によって決定される係数を積算すると正確な量子化ステップを求めることができる。さらに、実際の量子化後の情報量は量子化後でないと求めることができないが、フレームに割り当てられた符号量から予測することができるため、この予測を利用して量子化前に正確な量子化ステップを求めるものである。
【００３４】
例えば本発明の一側面に係るオーディオ信号符号化装置は、オーディオ入力信号をチャネルごとに処理単位フレームに分割するフレーム分割部と、オーディオ入力信号を分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算部と、前記聴覚心理演算部で決定された前記変換ブロック長に従って、処理対象フレームをブロック化し、フレーム中の時間領域信号を１または２以上の周波数スペクトルの組に変換するフィルタバンク部と、前記フィルタバンク部より出力された周波数スペクトルを、複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各周波数帯域のスペクトルを重み付けするスケールファクタ算出部と、前記スケールファクタ算出部によって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量から量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅から得られる係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化ステップ決定部と、前記スケールファクタと前記量子化ステップとを利用して前記周波数スペクトル列を量子化するスペクトル量子化部と、前記スペクトル量子化部から出力される量子化スペクトルを規定のフォーマットに従って整形したビットストリームを作成出力するビット整形部とを備え、前記量子化ステップ決定部は、符号化対象であるフレームに割り当てられたビット量に基づいて前記量子化スペクトル全体の情報量を予測する量子化スペクトル情報量予測部を含むことを特徴とする。
【００３５】
本発明においては、最初にスケールファクタを算出、確定した後に、その値を使用した計算で量子化ステップをほぼ正確に算出することができるので、ほぼ一回のスペクトル量子化とビット計算で量子化を終了することが可能になる。
【発明の効果】
【００３６】
本発明によれば、オーディオ信号の符号化における量子化処理の処理量を大幅に低減することができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
【００３８】
（第１の実施形態）
図１は、本実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。同図において、太線はデータ信号、細線は制御信号を示す。
【００３９】
図示の構成において、１はオーディオ入力信号を処理単位であるフレームに分割するフレーム分割器である。ここでフレーム単位に分割されたオーディオ入力信号は後述する聴覚心理演算器２とフィルタバンク３へ送出される。
【００４０】
２は聴覚心理演算器であり、オーディオ入力信号をフレーム単位に分析し、SFBよりも詳細な分割周波数帯域でマスキング計算を行う。この演算の結果、ブロックタイプがフィルタバンク３へ、また、SFB毎の信号対マスク比（SMR）がスケールファクタ計算器４へ出力される。
【００４１】
３はフィルタバンクであり、フレーム分割器１から入力された時間信号に対して、聴覚心理演算器２によって指定されたブロックタイプのウィンドウ掛けを行った後、指定されたブロック長で時間周波数変換を行い、周波数スペクトルに変換する。
【００４２】
４はスケールファクタ計算器であり、SFB毎のSMR（信号対マスク比）と、周波数スペクトルより、SFB毎の許容誤差エネルギーを算出し、それに基づいて全てのSFBのスケールファクタを決定する。
【００４３】
５はスペクトル割当ビット計算器であり、量子化スペクトル符号に割り当てられるビット数を計算する。
【００４４】
６は量子化スペクトル総量予測器であり、スペクトル割当ビット数に基づいて、量子化後のスペクトル総量を予測する。
【００４５】
７は量子化ステップ計算器であり、量子化前のスペクトルが持つ聴覚情報量を計算し、量子化後のスペクトル総量から求めた量子化後のスペクトル情報量を減じることによって量子化ステップを求める。
【００４６】
８はスペクトル量子化器であり、各周波数スペクトルを量子化する。
【００４７】
９はビット整形器であり、スケールファクタと量子化スペクトルを適宜規定のフォーマットに整形してビットストリームを作成し、出力する。
【００４８】
上記構成によるオーディオ信号符号化装置におけるオーディオ信号の処理動作を以下に説明する。
【００４９】
なお、本実施形態では、説明の便宜のために符号化方式としてMPEG-2  AACを例にとって説明するが、同様な量子化手法を適用可能なその他の符号化方式についても全く同様な方法で実現可能である。
【００５０】
まず、処理に先立ち、各部の初期化を行う。初期化によって、量子化ステップと全てのスケールファクタの値は０にセットされる。
【００５１】
オーディオPCM信号などのオーディオ入力信号はフレーム分割器１によってフレーム単位に分割され、聴覚心理演算器２とフィルタバンク３に送出される。MPEG-2 AAC LC(Low-Complexity)プロファイルの場合、１フレームは1024サンプルのPCM信号で構成され、この信号が送出される。
【００５２】
聴覚心理演算器２では、フレーム分割器１から送出された入力信号を適宜分析し、聴覚マスキング分析を行い、ブロックタイプをフィルタバンク３に、また、SFB毎の信号対マスク比(SMR)をスケールファクタ計算器４に各々出力する。なお、聴覚心理演算器２で行われる分析やマスキング計算は当分野において公知であるため、これらの詳細な説明は行わない。
【００５３】
フィルタバンク３では、聴覚心理演算器２が出力するブロックタイプに従って、フレーム分割器１から送出される１フレーム分の現入力信号と、前回の変換時に受け取った前フレームの入力信号を合わせ、2フレーム分、2048サンプルの時間信号を周波数成分へ変換する。なお、本実施形態において、前フレームの入力信号はフィルタバンク３内のバッファに保持されている。ここで、ブロックタイプが長いブロック長を用いる場合は、入力信号の2048サンプルを一つのブロックとして、ブロックタイプに応じた形の窓掛けを実行後、MDCTを行い、1024個の周波数スペクトルを出力する。短いブロック長を用いる場合には、入力信号の2048サンプルのうち、448番目のサンプルを先頭として256サンプルを一つのブロックとして窓掛け後にMDCTを行い、128個の周波数成分を出力する変換を、入力信号を128サンプルずつずらしながら都合８回行い、８組の周波数スペクトルを得る。
【００５４】
スケールファクタ計算器４は、フィルタバンク３から出力されるスペクトル成分と聴覚心理演算器２から出力されるSFB毎のSMR値からSFB毎の許容誤差エネルギーを算出し、これに基づき、SFB毎のスケールファクタを計算する。許容誤差エネルギーに基づくスケールファクタの算出方法は、当分野では公知であるため、ここでは詳細は述べないが、例えば、前述した非特許文献１に記載された手法をとるならば、MPEG-2 AACにおいて、SFB bにおけるスケールファクタscalefac[b]は次式で求めることができる。
【００５５】
【数２】
2006145782.tif 000004
【００５６】
ただし、式（２）において、xavgはSFB bに含まれるスペクトル成分の平均レベルである。また、xmin[b]はSFB bの許容誤差エネルギーであり、SFB bのスペクトルエネルギーをenergy[b]、信号対マスク比をSMR[b]、含まれるスペクトル本数をsfb_width[b]とすると、このxmin[b]は次式によって求められる。
【００５７】
【数３】
2006145782.tif 000005
【００５８】
スペクトル割当ビット計算器５では、スケールファクタ計算器４から出力されたスケールファクタをハフマン符号化したときのビット数を計算し、指定されたフレームビット数から減じることによって、量子化スペクトルに割り当てられるビット数を計算し、量子化スペクトル総量予測器６へ出力する。
【００５９】
量子化スペクトル総量予測器６は、スペクトル割当ビット計算器５から出力されたビット数に基づいて量子化スペクトル総量の予測計算を行う。本実施形態において、この計算は、従来の量子化器によって量子化した際の、スペクトル割当ビット数と量子化スペクトル総量との関係を実際に測定し、その結果に基づいて作成した近似式によって計算する。例えば、この近似式をF(x)として、スペクトル割当ビットをspectrum_bitsとすると、量子化後スペクトル予測総量は以下の式によって求めることができる。
【００６０】
【数４】
2006145782.tif 000006
【００６１】
量子化ステップ計算器７では、まず、フィルタバンク３から出力された各周波数スペクトルに、スケールファクタによって聴覚上の重み付けをした値の総計を取り、これに基づいて量子化前の周波数スペクトルが持つ聴覚情報量を計算する。
次に、量子化後スペクトル総量予測器６から出力された量子化スペクトル総量に基づいて量子化スペクトルが持つ情報量を計算する。
【００６２】
最後に、量子化前スペクトルの聴覚情報量から量子化スペクトルの情報量を減じ、量子化粗さの刻み幅から得られる係数を掛けることによって、フレーム全体の量子化粗さである量子化ステップを計算する。
【００６３】
具体的には、MPEG-2 AACの場合は、量子化ステップの予測値は次式を計算することによって得られる。
【００６４】
【数５】
2006145782.tif 000007
【００６５】
ただし、式（５）において、Xqは量子化スペクトル、xiは量子化前のスペクトル、global_gainはグローバルゲイン（量子化ステップ）、scalefacはこのスペクトル成分が含まれるSFBのスケールファクタである。また、総計を取るiの範囲は1フレーム分、すなわち0≦i≦1023である。
ここで、式（５）において、以下に示す右辺の第１項
2006145782.tif 000008
が、量子化前のスペクトル全体が持つ聴覚情報量であり、各スペクトルに、スケールファクタによって聴覚上の重み付けがなされた値の総計である。また、右辺の第２項である log2ΣiXq が、量子化後のスペクトルが持つ情報量であり、このうち、ΣiXq は量子化スペクトルの総計であり、量子化スペクトル総量予測器６によって予測された値である。この値は前述したように例えば近似式（４）を計算することによって得られる。
【００６６】
なお、式（５）はスペクトル量子化式（１）を適宜変形することによって得ることができる。
【００６７】
スペクトル量子化器８は、スケールファクタ計算器４が出力したスケールファクタと量子化ステップ計算器７が出力した量子化ステップに従って、1024本の周波数スペクトルを量子化する。具体的には、例えば、MPEG-2 AACの場合では式（１）によって量子化スペクトルを算出し、フレーム全体で消費されるビット数をカウントする。
【００６８】
ここで、使用ビット数がスペクトル割当ビット数を超えてしまった場合には、使用ビット数がスペクトル割当ビット数に収まるまで量子化ステップを増加して再度スペクトル量子化を行う。しかしながら、量子化ステップ計算器７の計算が正確であるため、多くの場合１回のみの量子化スペクトル計算とビット計算が行われる。
【００６９】
各SFBのスケールファクタと量子化スペクトルはビット整形器８によって定められた書式に従ってビットストリームに整形されて、出力される。
【００７０】
以上説明したように、本実施形態におけるオーディオ信号符号化装置は、フレームに割り当てられたビット量から、量子化後のスペクトル総量を予測し、これを用いて量子化前後のスペクトル全体が持つ情報量の差分を計算することによって、スペクトル量子化の前に量子化ステップをほぼ正確に予測する。これにより、量子化ステップの調整のための繰り返しを行うことが減るために、迅速に量子化処理を終了することができる。
【００７１】
（第２の実施形態）
本発明は、パーソナルコンピュータ（ＰＣ）等の汎用的な計算機上で動作するソフトウェアプログラムとして実施することも可能である。以下、この場合について図面を用いて説明する。
【００７２】
図５は、本実施形態におけるオーディオ信号符号化装置の構成例を示す図である。
【００７３】
図示の構成において、１００はＣＰＵであり、オーディオ信号符号化処理のための演算、論理判断等を行い、１０２のバスを介して各構成要素を制御する。
【００７４】
１０１はメモリであり、本実施形態の構成例における基本Ｉ／Oプログラムや、実行しているプログラムコード、プログラム処理時に必要なデータなどを格納する。
【００７５】
１０２はバスであり、ＣＰＵ１００の制御の対象とする構成要素を指示するアドレス信号を転送し、ＣＰＵ１００の制御の対象とする各構成要素のコントロール信号を転送し、各構成機器相互間のデータ転送を行う。
【００７６】
１０３は端末であり、装置の起動、各種条件や入力信号の設定、符号化開始の指示を行う。
【００７７】
１０４はデータやプログラム等を記憶するための外部記憶領域を提供する外部記憶装置であり、例えばハードディスク装置などによって実現される。ここに、ＯＳをはじめとするプログラムやデータ等が保管され、また、保管されたデータやプログラムは必要な時にＣＰＵ１００によって呼び出される。また、後述するように、オーディオ信号符号化処理プログラムもこの外部記憶装置１０４にインストールされることになる。
【００７８】
１０５はメディアドライブである。記録媒体（例えば、ＣＤ−ＲＯＭ）に記録されているプログラムやデータ、デジタルオーディオ信号などはこのメディアドライブ１０５が読み取ることにより本オーディオ信号符号化装置にロードされる。また、外部記憶部１０４に蓄えられた各種データや実行プログラムを、記録媒体に書き込むこともできる。
【００７９】
１０６はマイクロフォンであり、実際の音を集音してオーディオ信号に変換する。１０７はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することができる。
【００８０】
１０８は通信網であり、LAN、公衆回線、無線回線、放送電波などで構成されている。１０９は通信インタフェースであり、通信網１０８に接続されている。本実施形態におけるオーディオ信号符号化装置はこの通信インタフェース１０９を介して通信網１０８を経由し、外部機器と通信を行い、データやプログラムを送受信することができる。
【００８１】
かかる構成を備えるオーディオ信号符号化装置は、端末１０３からの各種の入力に応じて作動する。端末１０３からの入力が供給されると、インタラプト信号がＣＰＵ１００に送られることによって、ＣＰＵ１００がメモリ１０１内に記憶してある各種の制御信号を読出し、それらの制御信号に従って、各種の制御が行われる。
【００８２】
本実施形態のオーディオ信号符号化装置は、ＣＰＵ１００が、メモリ１０１に格納されている基本Ｉ／Ｏプログラムを実行し、これより外部記憶装置１０４に記憶されているＯＳをメモリ１０１にロードしてこれを実行することによって、動作する。具体的には、本装置の電源がＯＮにされると、基本Ｉ／Ｏプログラム中のＩＰＬ（イニシャルプログラムローディング）機能により外部記憶部１０４からＯＳがメモリ１０１に読み込まれ、ＯＳの動作が開始される。
【００８３】
オーディオ信号符号化処理プログラムは、図２に示されるオーディオ信号符号化処理手順のフローチャートに基づいてプログラムコード化されたものである。
【００８４】
図６は、オーディオ信号符号化処理プログラムおよび関連データを記録媒体に記録したときの内容構成例を示す図である。本実施形態において、オーディオ信号符号化処理プログラムおよびその関連データは記録媒体に記録されている。図示したように記録媒体の先頭領域には、この記録媒体のディレクトリ情報が記録されており、その後にこの記録媒体のコンテンツであるオーディオ信号符号化処理プログラムと、オーディオ信号符号化処理関連データがファイルとして記録されている。
【００８５】
図７は、オーディオ信号符号化処理プログラムのオーディオ信号符号化装置（ＰＣ）への導入を示す模式図である。記録媒体に記録されたオーディオ信号符号化処理プログラムおよびその関連データは、図７に示したようにメディアドライブ１０５を通じて本装置にロードすることができる。この記録媒体１１０をメディアドライブ１０５にセットすると、ＯＳ及び基本Ｉ／Ｏプログラムの制御のもとにオーディオ信号符号化処理プログラムおよびその関連データが記録媒体１１０から読み出され、外部記憶部１０４に格納される。その後、再起動時にこれらの情報がメモリ１０１にロードされて動作可能となる。
【００８６】
図８は、本実施形態におけるオーディオ信号符号化処理プログラムがメモリ１０１にロードされ実行可能となった状態のメモリマップを示す図である。図示のように、メモリ１０１のワークエリアには例えば、基準ビットレート、基準サンプリングレート、ビットレート、サンプリングレート、割当ビット上限値、平均割当ビット、PEビット、使用ビット、スケールファクタビット、スペクトル割当ビット、量子化前スペクトル聴覚情報量、量子化後スペクトル予測情報量、許容誤差エネルギー、スペクトルバッファ、量子化スペクトル、入力信号バッファ、スケールファクタ、量子化ステップ、ブロックタイプ、SMR、PE、リザーブビット量が格納されている。
【００８７】
図９は、本実施形態におけるオーディオ信号符号化装置における入力信号バッファの一構成例を示す図である。図示の構成において、バッファサイズは1024×3サンプルであり、説明の便宜上1024サンプル毎に縦線で区切っている。入力信号は右から1フレーム分の1024サンプルずつ入力されて、左から逐次処理される。なお、図示の構成は１チャネル分の入力信号バッファを模式的に示したものであり、本実施形態では入力信号のチャネル分だけ同様なバッファが用意される。
【００８８】
以下、本実施形態においてＣＰＵ１００で実行されるオーディオ信号符号化処理をフローチャートを用いて説明する。
【００８９】
図２は、本実施形態におけるオーディオ信号符号化処理のフローチャートである。このフローチャートに対応するプログラムはオーディオ信号符号化処理プログラムに含まれ、上記のとおりメモリ１０１にロードされＣＰＵ１００によって実行される。
【００９０】
まず、ステップＳ１は、符号化する入力オーディオ信号をユーザが端末１０３を用いて指定する処理である。本実施形態において、符号化するオーディオ信号は、外部記憶１０４に格納されているオーディオＰＣＭファイルでも良いし、マイク１０６で捉えたリアルタイムの音声信号をアナログ・デジタル変換した信号でも良い。この処理を終えると、ステップＳ２へ進む。
【００９１】
ステップＳ２は、符号化する入力オーディオ信号が終了したかどうかを判定する処理である。入力信号が終了している場合は、ステップＳ１１へ処理が進む。未終了の場合は、ステップＳ３へ処理が進む。
【００９２】
ステップＳ３は、図９に示した入力信号バッファにおいて、右から２フレーム分、すなわち2048サンプルの時間信号を１フレーム分左にシフトするとともに、新たに１フレーム分、すなわち1024サンプルを右側に読み込む入力信号シフト処理である。この処理は入力信号に含まれる全てのチャネルに対して行われる。処理を終えると、ステップＳ４へ処理が進む。
【００９３】
ステップＳ４は、入力信号バッファに格納されている時間信号を分析し、現行フレームの聴覚心理演算を行う処理である。この演算の結果、現行フレームのブロックタイプと、聴覚エントロピー（PE）と、SFBごとのSMR値が算出され、メモリ１０１上のワークエリアに格納される。ここで、SMR値は、現行フレームのブロック長が短い場合はショートブロック時の８組が、若しくは、ブロックタイプがそれ以外の場合はロングブロック時の１組が算出される。このような聴覚演算は当分野において公知であるため、詳細な説明は行わない。処理を終えると、ステップＳ５へ処理が進む。
【００９４】
ステップＳ５では、ステップＳ４で得られたブロックタイプに従って、現行フレームの時間信号、すなわち、図１０の現行フレーム先頭ポインタから右に2048サンプル（２フレーム分）の信号に対して窓掛け後、時間周波数変換を行う。この結果、MPEG-２ AACの場合、変換ブロック長が短いときは、128の周波数成分に分割されたスペクトルの組が８組得られる。それ以外のブロック長が長いブロックタイプの場合は、1024の周波数成分に分割されたスペクトルの組が1組得られる。双方の場合とも、算出された計1024本のスペクトルは、メモリ１０１上のワークエリアにあるスペクトルバッファに格納される。処理を終えると、ステップＳ６に処理が進む。
【００９５】
ステップＳ６は、ステップＳ５で得られた周波数スペクトルとステップＳ４で得られたSFB毎のSMRから許容誤差エネルギーを計算したのち、これを利用して各SFB毎のスケールファクタを算出する処理である。例えば、MPEG-2 AACの場合は前述の実施形態１の式（２）によってスケールファクタを算出する。この処理において算出したSFB毎の許容誤差エネルギーとスケールファクタはメモリ１０１上のワークエリア上に格納される。処理を終えると、ステップＳ７へ進む。
【００９６】
ステップＳ７は、量子化前のスペクトルが持つ聴覚情報量と量子化後のスペクトルが持つ情報量との差分から量子化ステップを計算する処理である。この処理の詳細は図３を用いて後述する。処理を終えると、ステップＳ８へ進む。
【００９７】
ステップＳ８は、ステップＳ６で求めたスケールファクタとステップＳ７で求めた量子化ステップに従って、1024本の周波数スペクトルを量子化して、使用ビットを計算し、使用ビットがメモリ１０１上のワークエリアに格納されている割当ビットを超えた場合のみ、量子化ステップの増加と再量子化を行う処理である。この処理の詳細は図４を用いて後述する。処理を終えると、ステップＳ９へ処理が進む。
【００９８】
ステップＳ９は、ステップＳ８で算出された量子化スペクトルと、スケールファクタを、符号化方式によって定められたフォーマットに従って整形し、ビットストリームとして出力する処理である。本実施形態において、この処理によって出力されるビットストリームは、外部記憶装置１０４に格納されても良いし、あるいは、通信インタフェース１０９を介して通信網１０８に繋がっている外部機器に出力されても良い。処理を終えると、ステップＳ１０へ処理が進む。
【００９９】
ステップＳ１０は、ステップＳ９で出力されたビットストリームに使用されたビット量と符号化ビットレートから、メモリ１０１上に格納されている蓄積ビット数の補正を行う処理である。処理を終えると、処理はステップＳ２へと戻る。
【０１００】
ステップＳ１１は、聴覚心理演算や直交変換などで生じる遅延によってまだ出力されていない量子化スペクトルがメモリ上に残っているため、それらをビットストリームに整形して出力する処理である。処理を終えると、オーディオ信号符号化処理を終了する。
【０１０１】
図３は、上記したステップＳ７の量子化ステップ予測処理の詳細を示すフローチャートである。
【０１０２】
まず、ステップＳ１０１は、メモリ１０１上のワークエリアに保存されているスケールファクタを符号化形式によって定められているフォーマットに従って符号化したときに使用するビット数を算出する処理である。算出されたビット数は、メモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ１０２へ進む。
【０１０３】
ステップＳ１０２は、フレームに割り当てられたビット数からメモリ１０１上に格納されたスケールファクタビット数を引いて、スペクトル符号に割り当てられるビット数を算出する処理である。算出されたスペクトル割当ビット数はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ１０３へ進む。
【０１０４】
ステップＳ１０３は、メモリ１０１上のスペクトル割当ビット数を用いて、量子化スペクトル総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによって求めた近似式によって行う。例えば、この近似式をF(x)として、スペクトル割当ビットをspectrum_bitsとすると、量子化後スペクトル予測総量は以下の式によって求めることができる。
【０１０５】
【数６】
2006145782.tif 000009
【０１０６】
算出された量子化スペクトル予測総量はメモリ１０１上のワークエリアに格納される。処理を終えると、ステップＳ１０４へ進む。
【０１０７】
ステップＳ１０４は、量子化前のスペクトルが持つ聴覚情報量を算出する処理である。量子化前のスペクトルの聴覚情報量は、各スペクトル成分に、そのスペクトル成分が含まれるSFBのスケールファクタによる量子化粗さの減少分を積算し、1フレーム分の総量を求め、その対数を算出することによって求められる。例えば、MPEG-2 AACの場合、量子化前のスペクトルが持つ聴覚情報量は以下の式を計算することによって求めることができる。
【０１０８】
【数７】
2006145782.tif 000010
【０１０９】
算出された量子化前スペクトルの聴覚情報量はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ１０５へ進む。
【０１１０】
ステップＳ１０５は、ステップＳ１０３で求めた量子化スペクトルの予測総量の対数を計算し、量子化スペクトルの予測情報量を算出する処理である。例えば、MPEG-2 AACの場合は以下の式を計算することによって算出することができる。
【０１１１】
【数８】
2006145782.tif 000011
【０１１２】
すなわち、ステップＳ１０３で得られた量子化スペクトル総量の対数を計算することによって、量子化スペクトル予測情報量が得られる。この処理によって算出された量子化後のスペクトル情報量はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ１０６へ進む。
【０１１３】
ステップＳ１０６では、ステップＳ１０４で求めた量子化前スペクトルの聴覚情報量から、ステップＳ１０５で求めた量子化スペクトル予測情報量を引き、その結果にステップＳ１０７で、量子化粗さの刻み幅によって決定される係数をかけ、グローバルゲイン、すなわち量子化ステップの予測値が算出される。MPEG-2 AACの場合は、この予測値は結局実施形態１と同じく式（５）を計算したことになる。
【０１１４】
【数９】
2006145782.tif 000012
【０１１５】
算出された量子化ステップ予測値は、メモリ１０１上のワークエリアに量子化ステップとして格納される。処理を終えると、量子化ステップ予測処理を終了し、リターンする。
【０１１６】
図４は、上記したステップＳ８のスペクトル量子化処理を詳細化したフローチャートである。
【０１１７】
ステップＳ２０１は、メモリ１０１上に格納されている量子化ステップとスケールファクタに従って、スペクトルバッファに格納されている1024本のスペクトル成分を量子化する処理である。MPEG-2 AACの場合は、前出の式（１）に従って量子化スペクトルが計算される。処理を終えると、ステップＳ２０２へ進む。
【０１１８】
ステップＳ２０２は、ステップＳ２０１で計算された量子化スペクトル全てを符号化した時に使用されるビット数を計算する処理である。例えば、MPEG-2 AACの場合は、量子化スペクトルは複数個をまとめた上でハフマン符号化されるため、この処理においてハフマンコード表の探索が行われ、符号化ビット数の総計が計算される。計算された使用ビット数はメモリ１０１上のワークエリアに格納される。処理を終えると、ステップＳ２０３へ進む。
【０１１９】
ステップＳ２０３は、メモリ１０１上のスペクトル割当ビットと使用ビットの大きさを比較する処理である。この比較の結果、使用ビットが割り当てられたビットよりも大きい場合は、ステップＳ２０４へ進み、符号量を削減するためにメモリ１０１に格納されている量子化ステップを増加した後、ステップＳ２０１に戻り再度スペクトルの量子化を行うが、前述の量子化ステップ予測処理によってほぼ正確な量子化ステップが予測されるため、ステップＳ２０４が実際に実行されることは少ない。
【０１２０】
ステップＳ２０３の比較において使用ビットが割り当てられたビットよりも小さい場合は、スペクトル量子化処理を終了してリターンする。
【０１２１】
以上説明したように、本実施形態におけるオーディオ信号符号化処理では、スペクトル符号に割り当てられたビット数から量子化後のスペクトルが持つ情報量を予測し、さらに、量子化前の聴覚情報量との差分を取ることによって量子化ステップを実際の量子化を行う前にほぼ正確に予測することによって、量子化ステップの調整を極力避けることが可能になるため、量子化処理にかかる処理量を大幅に削減することができる。
【０１２２】
（第３の実施形態）
固定ビットレートで符号化するときに、ビットリザーバに蓄積されている蓄積ビットを入力信号の特性によって各フレームに適宜配分する場合でも、本発明の技術を適用することが可能である。本実施形態ではこの場合について図面を用いて説明する。
【０１２３】
図１０は、本実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。第１の実施形態に係る図１と同じく、図中の太線はデータの流れを、細線は制御信号の流れを示す。また、図１０においては、図１と同様の機能を持つ構成要素には同じ番号を振っている。
【０１２４】
図示の構成において、１はフレーム分割器、２は聴覚心理演算器、３はフィルタバンク、４はスケールファクタ計算器、７は量子化ステップ計算器、８はスペクトル量子化器、９はビット整形器である。
【０１２５】
１１はPEビット計算器であり、フレームの聴覚エントロピー(PE)に基づいてフレームの予測発生符合量であるPEビットを計算する。
【０１２６】
１２はスペクトル割当ビット計算器であり、ビットレートやPEビット、蓄積ビット量、スケールファクタなどに基づいてスペクトル符号に割り当てられるビット数を計算する。
【０１２７】
１３はビットリザーバであり、符号化方式に従って規定されている蓄積ビット量を逐次管理する。
【０１２８】
１４は量子化スペクトル総量予測器であり、条件により、フレーム割当ビット、もしくはPEビットに基づいて量子化スペクトル総量を予測する。
【０１２９】
以上のような構成のオーディオ信号符号化装置における処理動作を以下に説明する。なお、本実施形態においても説明の便宜のために符号化方式としてMPEG-2 AACを例にとって説明するが、非線形量子化を行うその他の符号化方式においても全く同様な方法で実現可能である。
【０１３０】
まず、処理に先立ち、各部の初期化が行われる。初期化によって、量子化ステップと全てのスケールファクタは０にセットされる。
【０１３１】
オーディオ入力信号はフレーム分割器１によってフレーム単位に分割され、聴覚心理演算器２とフィルタバンク３に出力される。
【０１３２】
聴覚心理演算器２では、フレーム分割器１から出力された入力信号に対して適宜聴覚マスキング分析を行い、ブロックタイプとSFB毎のSMR、PEを出力する。
【０１３３】
フィルタバンク３はフレーム分割器１から出力された入力信号1フレームとフィルタバンク３内に保持している前フレームの1フレームを合わせた２フレーム分の入力信号を、聴覚心理分析器２から出力されたブロックタイプに従って時間周波数変換を行い、周波数スペクトルに変換する。
【０１３４】
スケールファクタ計算器４は、フィルタバンク３から出力される周波数スペクトルと聴覚心理演算器２から出力されるSFB毎のSMR値に基づいて、スケールファクタを実施形態1と同様に適宜算出する。
【０１３５】
PEビット計算器１１は聴覚心理演算器３が出力されるPEから、PEビットを計算する。すなわち、処理中のフレームの入力信号が持つ聴覚的な情報量を聴覚上完全に符号化した場合の予想符号量に変換する。MPEG-2 AACの場合、ISO規格書に記載されているPEビットの計算式は次のようになる。
【０１３６】
ブロック長がロングのとき：
【数１０】
2006145782.tif 000013
ブロック長がショートのとき：
【数１１】
2006145782.tif 000014
【０１３７】
本実施形態では、この計算式をこのまま用いて、ブロックタイプのブロック長に応じてPEビットを算出する。
【０１３８】
スペクトル割当ビット計算器１２では、まず、スケールファクタ計算器４から出力されるスケールファクタを符号化するために必要なビット数を計算し、次に、ビットレートに基づく１フレーム・チャネル当りの平均ビット量との差分を求めて平均スペクトル割当ビットを計算する。
【０１３９】
次に、この値とPEビット計算器１１が出力するPEビットを比較し、PEビットが大きい場合はPEビットをビットリザーバ１３に蓄積されている蓄積ビット量によって決定される最大値まで割り当てる。PEビットが小さい場合は平均スペクトル割当ビットをそのまま割り当てる。
【０１４０】
すなわち、本実施形態において、スペクトル割当ビットは具体的には以下の手順で計算される。
【０１４１】
１．蓄積ビット使用許容量を蓄積ビット量から計算する。
ブロック長がロングのとき：  蓄積ビット量の10％、
ブロック長がショートのとき：蓄積ビット量の25％、
を蓄積ビット使用許容量とする。これをusable_bitsとする。
【０１４２】
2. 平均スペクトル割当ビット量をaverage_bitsとすると、スペクトル割当ビット量、spectrum_bitsは以下の要領で決定される。
pe_bits ＞ (average_bits＋usable_bits) のとき、
spectrum_bits=average_bits+usable_bits;
pe_bits ＜ average_bits のとき、
spectrum_bits=average_bits;
それ以外、average_bits≦pe_bits≦(average_bits+usable_bits) のとき、
spectrum_bits＝pe_bits;
【０１４３】
次に、スペクトル割当ビット計算器１２は、PEビットが平均スペクトル割当ビット量よりも少ない場合は、PEビットを量子化スペクトル総量予測器１４に出力し、PEビットが平均スペクトル割当ビット以上の場合は上記手順で計算したスペクトル割当ビットを量子化スペクトル総量予測器１４に出力する。このとき、どちらのビット数を量子化スペクトル総量予測器１４に出力したかを示すフラグであるビット選択情報（以下、単に「選択情報」という。）を同時に出力する。
【０１４４】
量子化スペクトル総量予測器１４は、入力された選択情報とビット数に基づいて量子化スペクトル総量を予測する。この予測計算は、第１の実施形態で示した方法と同様に、実験によって求めた近似式によって行うが、本実施形態における量子化スペクトル総量予測器１４では、この近似式を選択情報によって切り換えて予測計算を行う。例えば、スペクトル割当ビットによる量子化スペクトル総量の近似式をF(x)、PEビットによる量子化スペクトル総量の近似式をG(x)とすると、スペクトル予測総量は以下の式で求められる。
【０１４５】
選択情報がスペクトル割当ビットの選択を示している場合：
【数１２】
2006145782.tif 000015
選択情報がPEビットの選択を示している場合：
【数１３】
2006145782.tif 000016
【０１４６】
ただし、式（１０）において、bit_rateは処理中の入力信号のビットレート、sampling_rateは処理中の入力信号のサンプリングレート、base_bit_rateは基準ビットレート、base_sampling_rateは基準サンプリングレートである。基準ビットレートと基準サンプリングレートは、PEビットによる量子化スペクトル総量予測式G(x)を実験によって求めたときの入力信号のビットレートとサンプリングレートであり、本実施形態におけるオーディオ信号符号化装置において予め定められている値である。
【０１４７】
ここで、本実施形態において上記のような量子化スペクトルの予測方法を取る理由を以下説明する。
【０１４８】
本実施形態では、スペクトル割当ビット計算器１２においてPEビットを基準にしたビットの割当が行われる。従って、スペクトル割当ビットには通常PEビットの大きさ、すなわち、処理中のフレームにおける入力信号が持つ聴覚上の発生符号量が反映される。ところが、固定ビットレート制御において、PEビットの大きさが平均スペクトル割当ビットを下回る場合には、スペクトル割当ビットには平均スペクトル割当ビットがそのまま割り当てられる。したがって、この場合はスペクトル割当ビットには入力信号の聴覚上の発生符号量が反映されないため、スペクトル割当ビットを用いて量子化スペクトル総量を予測すると予測誤差が大きくなってしまう。そこで、この場合にはPEビットを用いて量子化スペクトル総量を予測することで、より正確な量子化スペクトル総量を予測することができる。
【０１４９】
また、スペクトル割当ビットはビットレートやサンプリングレートの制約を考慮して計算されるため、ビットレートやサンプリングレートの変化に追随する特性を持っている。一方、PEビットは、サンプリングレートの変化によって元となるPE自体の値は変化するものの、ビットレートやサンプリングレートが変化しても式（８）、（９）自体は変化しない。そこで、PEビットによる予測を行う場合は式（１０）に示すように、基準となるビットレートやサンプリングレートからの変化率の影響を考慮した予測を行なっている。
【０１５０】
このようにすることで、一つの近似式G(x)をあらゆるビットレートやサンプリングレートに適用することが可能になる。
【０１５１】
図１０の説明に戻る。量子化ステップ計算器７は第１の実施形態と同様に、フィルタバンク３が出力する周波数スペクトルにスケールファクタ計算器４から出力されたスケールファクタによって重み付けをした値の総量を計算し、さらにその対数を計算して量子化前のスペクトルが持つ聴覚情報量を算出する。次に、量子化スペクトル総量予測器１４によって予測された量子化スペクトル総量の対数を計算して量子化後のスペクトル情報量を算出する。さらに、この差分を取り、量子化粗さの刻み幅によって決定される係数を掛けることによって量子化ステップを計算する。具体的には、前出の式（５）の計算を行う。
【０１５２】
第１の実施形態と同様に、スペクトル量子化器８はスケールファクタ計算器４が出力するスケールファクタと量子化ステップ計算器７が出力する量子化ステップを用いてフィルタバンク３が出力する周波数スペクトルを量子化し、必要ビット数をカウントし、スペクトル割当ビット計算器１２が出力するスペクトル割当ビットと比較する。ここで、必要ビット数がスペクトル割当ビットを超えてしまった場合は、量子化ステップを適宜増加して再度量子化を行うが、前述したように量子化ステップ計算器７による量子化ステップの予測値はほぼ正確であるため、この再量子化が行われることは少ない。
【０１５３】
スペクトル量子化器８によって最終的に出力される量子化スペクトルとスケールファクタ、量子化ステップは、ビット整形器９によってエントロピー符号化後、符号化方式が定めるビットストリーム形式に適宜整形され、出力される。
【０１５４】
このとき、ビットリザーバ１３に実際に符号に使用したビット数が通知され、ビットリザーバ１３はフレームビットとの差分を計算し、増減分を蓄積ビット量に加減することで適宜蓄積ビット量を調整する。
【０１５５】
以上説明したように、本実施形態のように固定ビットレートにおいて、入力信号に応じてビットリザーバに蓄積されている蓄積ビットを適宜フレームに割り当てる場合においても、量子化前に正確に量子化スペクトル総量を予測することによって、量子化前に正確に量子化ステップを決定することが可能になり、スペクトル量子化とビット計算の繰り返しを避けて、効率的に量子化を行うことができる。
【０１５６】
（第４の実施形態）
第３の実施形態で説明したオーディオ符号化装置もまた、ＰＣ等の汎用的なコンピュータ上で動作するソフトウェアプログラムとして実施することが可能である。以下、この場合について図面を用いて説明する。
【０１５７】
本実施形態におけるオーディオ信号符号化装置の構成およびオーディオ信号符号化処理プログラムの処理内容等については、第２の実施形態と概ね共通しているので、本実施形態では、第２の実施形態で説明した図５、図２、図６〜９を援用することとし、それらの詳細な説明は省略する。第２の実施形態と相違する点は、ステップＳ７の量子化ステップ予測処理の内容にある。そこで以下では、このステップＳ７の量子化ステップ予測処理の説明のみを行う。
【０１５８】
図１１は、本実施形態におけるステップＳ７の量子化ステップ予測処理の詳細を示すフローチャートである。
【０１５９】
まず、ステップＳ３０１は、ステップＳ４の聴覚心理演算処理によって得られたメモリ１０１上のPEとブロックタイプより、PEビットを算出する処理である。具体的には、第３の実施形態と同様にブロックタイプによって、前出の 式（９）もしくは式（１０）を選択してPEビットを算出する。算出したPEビットはメモリ１０１上のワークエリアに格納される。処理を終えるとステップＳ３０２へ進む。
【０１６０】
ステップＳ３０２は、メモリ１０１上のワークエリアに保存されているスケールファクタを符号化方式規定のフォーマットに符号化したときに使用するビット数を算出する処理である。この処理によって算出されたスケールファクタビット数は、メモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ３０３へ進む。
【０１６１】
ステップＳ３０３は、フレームに割り当てられる平均ビット数からメモリ１０１上に格納されたスケールファクタビット数を引いて、スペクトル符号に割り当てられるビット数、すなわち平均スペクトル割当ビット数（平均割当ビット）を算出する処理である。算出された平均割当ビット数はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ３０４へ進む。
【０１６２】
ステップＳ３０４は、メモリ１０１上の平均割当ビット数とPEビット数の大きさを比較する処理である。この比較の結果、PEビット数の方が大きい場合はステップＳ３０５へ進む。それ以外の場合は、ステップＳ３０７へ進む。
【０１６３】
ステップＳ３０５は、メモリ１０１上のPEビットと平均割当ビット、蓄積ビット量よりスペクトル割当ビットを算出する処理である。この処理の詳細は図１２を用いて後述する。処理を終えると、ステップＳ３０６へ進む。
【０１６４】
ステップＳ３０６は、メモリ１０１上のスペクトル割当ビット数を用いて、量子化スペクトル総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによって求めた近似式によって行う。例えば、この近似式をF(x)として、スペクトル割当ビットをspectrum_bitsとすると、量子化後スペクトル予測総量は第２の実施形態と同様に式（４）によって求めることができる。
【０１６５】
【数１４】
2006145782.tif 000017
【０１６６】
算出された量子化スペクトル予測総量はメモリ１０１上のワークエリアに格納される。処理を終えると、ステップＳ３０９へ進む。
【０１６７】
一方のステップＳ３０７は、メモリ１０１上の平均割当ビットをスペクトル割当ビットとしてメモリ１０１に格納する処理である。すなわち、平均割当ビットの値をスペクトル割当ビットにコピーする。処理を終えると、ステップＳ３０８へ進む。
【０１６８】
ステップＳ３０８は、メモリ１０１上のPEビット数を用いて、量子化スペクトル総量の予測計算を行う処理である。この予測計算も、予め実験を実施することによって求めた近似式によって行う。この近似式をG(x)として、PEビットをpe_bitsとすると、量子化後スペクトル予測総量は第３の実施形態と同様に式（１０）によって求めることができる。
【０１６９】
【数１５】
2006145782.tif 000018
【０１７０】
算出された量子化スペクトル予測総量はメモリ１０１上のワークエリアに格納される。処理を終えると、ステップＳ３０９へ進む。
【０１７１】
ステップＳ３０９は、量子化前のスペクトルが持つ聴覚情報量を算出する処理である。第２の実施形態と同様に、量子化前スペクトルの聴覚情報量は、各スペクトル成分に、そのスペクトル成分が含まれるSFBのスケールファクタによる量子化粗さの減少分を積算し、1フレーム分の総量を求め、その対数を算出することによって求められる。例えば、MPEG-2 AACの場合、量子化前のスペクトルが持つ聴覚情報量は以下の式を計算することによって求めることができる。
【０１７２】
【数１６】
2006145782.tif 000019
【０１７３】
算出された量子化前スペクトルの聴覚情報量はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ３１０へ進む。
【０１７４】
ステップＳ３１０は、ステップＳ３０６もしくはステップＳ３０８で求めた量子化スペクトルの予測総量の対数を計算し、量子化スペクトルの予測情報量を算出する処理である。例えば、MPEG-2 AACの場合は以下の式を計算することによって算出することができる。
【０１７５】
【数１７】
2006145782.tif 000020
【０１７６】
この処理によって算出された量子化後のスペクトル予測情報量はメモリ１０１上のワークエリアに保存される。処理を終えると、ステップＳ３１１へ進む。
【０１７７】
ステップＳ３１１では、ステップＳ３０９で求めた量子化前スペクトルの聴覚情報量から、ステップＳ３１０で求めた量子化スペクトル予測情報量を引き、その結果に量子化粗さの刻み幅によって決定される係数を掛け、グローバルゲイン、すなわち量子化ステップの予測値が算出される。MPEG-2 AACの場合は、この予測値は結局第１の実施形態と同じく式（５）を計算したことになる。
【０１７８】
【数１８】
2006145782.tif 000021
【０１７９】
算出された量子化ステップ予測値は、メモリ１０１上のワークエリアに量子化ステップとして格納される。処理を終えると、量子化ステップ予測処理を終了し、リターンする。
【０１８０】
図１２は、本実施形態におけるステップＳ３０５のスペクトル割当ビット算出処理の詳細を示すフローチャートである。
【０１８１】
ステップＳ４０１は、このフレームに割り当てることができる蓄積ビット数を、メモリ１０１上の蓄積ビット量とブロックタイプに従って計算し、この値を平均割当ビットに足すことで、スペクトル割当ビットの上限値を計算する処理である。
本実施形態において、蓄積ビット数は第３の実施形態と同じく以下の要領で決定される。
【０１８２】
ブロック長がロングのとき：  蓄積ビット量の10％、
ブロック長がショートのとき：蓄積ビット量の25％
【０１８３】
上記手順で求められた値をメモリ１０１上の平均割当ビットに加えることで、スペクトル割当ビット上限値が得られる。
【０１８４】
この計算によって得られたスペクトル割当ビット上限値はメモリ１０１に格納される。処理を終えると、ステップＳ４０２へ進む。
【０１８５】
ステップＳ４０２は、メモリ１０１上のＰＥビットとスペクトル割当ビット上限値を比較する処理である。この比較の結果、ＰＥビット数がスペクトル割当ビット上限値よりも少ない場合はステップＳ４０３へ進む。そうでない場合は、ステップＳ４０４へ進む。
【０１８６】
ステップＳ４０３は、メモリ１０１上のＰＥビットをスペクトル割当ビットとして格納する処理である。すなわち、ＰＥビットの値をスペクトル割当ビットにコピーする。処理を終えると、スペクトル割当ビット算出処理を終えて、リターンする。
【０１８７】
ステップＳ４０４は、メモリ１０１上のスペクトル割当ビット上限値をスペクトル割当ビットとして格納する処理である。すなわち、スペクトル割当ビット上限値をスペクトル割当ビットにコピーする。処理を終えると、スペクトル割当ビット算出処理を終えて、リターンする。
【０１８８】
本処理では、上述したようにＰＥビットによって割り当てられるビット数に上限値を設定することによって、蓄積ビットが枯渇してビットリザーバが破綻することを防止する効果がある。
【０１８９】
以上説明したように、本実施形態によれば、固定ビットレートにおいて、入力信号の特性に応じてビットリザーバに蓄積されている蓄積ビットを適宜フレームに割り当てる場合においても、量子化前に正確に量子化スペクトル総量を予測することによって、量子化前に正確に量子化ステップを決定することが可能になり、スペクトル量子化とビット計算の繰り返しを避けて、効率的に量子化を行うことができる。
【０１９０】
以上説明したように、本発明のオーディオ信号符号化処理では、フレームに割り当てられたビット量から、量子化後のスペクトル総量を予測することにより、量子化前後のスペクトル全体が持つ情報量の差分を計算し、スペクトル量子化の前にフレーム全体の量子化ステップをほぼ正確に予測することで、ほぼ一回のスペクトル量子化処理を行うだけで量子化処理を終了することが可能になる。これにより、従来の技術と同等の符号化品質を保ちながら、従来の技術に比べて量子化処理にかかる処理量を大幅に削減することができる。
【０１９１】
（他の実施形態）
本発明は上述した実施形態に限定されるものではない。
【０１９２】
上述の実施形態では、オーディオ符号化装置および方法としてブロックスイッチングが行われる符号化方式の場合を取り扱っているが、ブロックスイッチングを行わない符号化方式においても同様に実施することが可能である。
【０１９３】
その他、本発明はその要旨を逸脱しない範囲で種々変形して実施することができる。
【０１９４】
以上、本発明の実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１９５】
なお、本発明は、前述したとおり、実施形態の機能を実現するオーディオ信号符号化処理プログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
【０１９６】
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。
【０１９７】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１９８】
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１９９】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の範囲に含まれるものである。
【０２００】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２０１】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０２０２】
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０２０３】
【図１】図１は、本発明の第１の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図２】図２は、本発明の第２の実施形態におけるオーディオ信号符号化処理のフローチャートである。
【図３】図３は、本発明の第２の実施形態における量子化ステップ予測処理のフローチャートである。
【図４】図４は、本発明の第２の実施形態におけるスペクトル量子化処理のフローチャート、
【図５】図５は、本発明の第２の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図６】図６は、本発明の第２の実施形態におけるオーディオ信号符号化処理プログラムを格納した記憶媒体の内容構成例を示す図である。
【図７】図７は、本発明の第２の実施形態におけるオーディオ信号符号化処理プログラムのＰＣへの導入を示す模式図である。
【図８】図８は、本発明の第２の実施形態におけるメモリマップの例を示す図である。
【図９】図９は、本発明の第２の実施形態における入力信号バッファの構成例を示す図である。
【図１０】図１０は、本発明の第３の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図１１】図１１は、本発明の第４の実施形態における量子化ステップ予測処理のフローチャートである。
【図１２】図１２は、本発明の第４の実施形態におけるスペクトル割当ビット算出処理のフローチャートである。
【図１３】図１３は、ＩＳＯ規格書に従う量子化処理のフローチャートである。
【図１】
2006145782.tif 000022
【図２】
2006145782.tif 000023
【図３】
2006145782.tif 000024
【図４】
2006145782.tif 000025
【図５】
2006145782.tif 000026
【図６】
2006145782.tif 000027
【図７】
2006145782.tif 000028
【図８】
2006145782.tif 000029
【図９】
2006145782.tif 000030
【図１０】
2006145782.tif 000031
【図１１】
2006145782.tif 000032
【図１２】
2006145782.tif 000033
【図１３】
2006145782.tif 000034