(57)【特許請求の範囲】
【請求項１】
オーディオ入力信号をチャネルごとに処理単位のフレームに分割する分割手段と、
前記分割手段より得られた連続する２フレームの時間信号を周波数スペクトルに変換する処理を、１フレームずつずらしながら行う変換手段と、
前記変換手段より出力された周波数スペクトルの情報量を、量子化前のスペクトル情報量として算出するスペクトル情報量算出手段と、
ビットレートとサンプリングレートとから算出されるフレーム平均ビット量に基づいて、量子化後のスペクトル情報量を予測する予測手段と、
前記スペクトル情報量算出手段で算出された前記量子化前のスペクトル情報量から前記予測手段で予測された前記量子化後のスペクトル情報量を減じ、その減算結果に、量子化粗さの刻み幅から得られる係数を乗じることで、フレーム全体の量子化ステップを量子化前に決定する決定手段と、
前記決定手段で決定された前記量子化ステップを利用して前記周波数スペクトルを量子化する量子化手段と、
符号化規格に準じた余剰ビット量を管理するビットリザーバと、
前記量子化手段で量子化された周波数スペクトルを所定のフォーマットに従って整形する整形手段と、
前記フレーム平均ビットに、前記ビットリザーバに蓄積されている余剰ビット量の一部を加算してスペクトル割当ビットを計算するスペクトル割当ビット計算手段と、
を備え、
前記量子化手段は、前記スペクトル割当ビット計算手段で計算された前記スペクトル割当ビット量に基づいて符号量を制御することを特徴とするオーディオ信号符号化装置。
【請求項２】
符号化形式がMPEG-1 Audio Layer IIIであることを特徴とする請求項１に記載のオーディオ信号符号化装置。
【請求項３】
符号化形式がMPEG-2 AACであることを特徴とする請求項１に記載のオーディオ信号符号化装置。
【請求項４】
オーディオ入力信号をチャネルごとに処理単位のフレームに分割する分割ステップと、
前記分割ステップで得られた連続する２フレームの時間信号を周波数スペクトルに変換する処理を、１フレームずつずらしながら行う変換ステップと、
前記変換ステップで得られた周波数スペクトルの情報量を、量子化前のスペクトル情報量として算出するスペクトル情報量算出ステップと、
ビットレートとサンプリングレートとから算出されるフレーム平均ビット量に基づいて、量子化後のスペクトル情報量を予測する予測ステップと、
前記スペクトル情報量算出ステップで算出された前記量子化前のスペクトル情報量から前記予測ステップで予測された前記量子化後のスペクトル情報量を減じ、その減算結果に、量子化粗さの刻み幅から得られる係数を乗じることで、フレーム全体の量子化ステップを量子化前に決定する決定ステップと、
前記決定ステップで決定された前記量子化ステップを利用して前記周波数スペクトルを量子化する量子化ステップと、
前記量子化ステップで量子化された周波数スペクトルを所定のフォーマットに従って整形する整形ステップと、
前記フレーム平均ビットに、符号化規格に準じた余剰ビット量を管理するビットリザーバに蓄積されている余剰ビット量の一部を加算してスペクトル割当ビットを計算するスペクトル割当ビット計算ステップと、
を備え、
前記量子化ステップは、前記スペクトル割当ビット計算ステップで計算された前記スペクトル割当ビット量に基づいて符号量を制御することを特徴とするオーディオ信号符号化方法。
【請求項５】
請求項４に記載のオーディオ信号符号化方法をコンピュータに実行させるためのプログラム。
【請求項６】
請求項５に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ信号の符号化装置および方法に関する。
【背景技術】
【０００２】
近年、高音質かつ高効率なオーディオ信号符号化技術が、DVD-Videoの音声トラック、携帯オーディオプレーヤー、音楽配信、家庭内LANにおけるホームサーバへの楽曲蓄積などに広く利用され、幅広く普及するとともにその重要性も増している。
【０００３】
このようなオーディオ信号符号化技術の多くは、変換符号化技術を利用して時間周波数変換を行っている。例えば、MPEG-2 AACやDolby Digital(AC-3)などでは、MDCT (Modified Discrete Cosine Transform) などの直交変換単体でフィルタバンクを構成している。また、MPEG-1 Audio Layer III (MP3) やATRAC (MD(ミニディスク)に利用されている符号化方式) では、QMF (Quadrature Mirror Filter)などのサブバンド分割フィルタと直交変換を多段接続してフィルタバンクを構成している。
【０００４】
これらの変換符号化技術では、人間の聴覚特性を利用したマスキング分析が行われる。そして、マスクされると判断されるスペクトル成分を取り除く、あるいはマスクされる量子化誤差を許容することにより、スペクトル表現のための情報量を削減し、圧縮効率を高めている。
【０００５】
また、これらの変換符号化技術では、その多くが、スペクトル成分を非線形量子化することにより、スペクトルが持つ情報量を圧縮している。例えば、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のスケールファクタと、グローバルゲインが０に初期化され、歪み制御ループ（アウターループ）に入る。
【００１３】
歪み制御ループでは、まず、符号量制御ループ（インナーループ）が実行される。
【００１４】
符号量制御ループでは、まず、ステップＳ５０２において、１フレーム分、すなわち、１０２４個のスペクトル成分が、下記の量子化式に従って量子化される。
【００１５】
0004822816.tif 000002
【００１６】
ただし、（1）式においてXqは量子化スペクトル、xiは量子化前のスペクトル(MDCT係数)、global_gainはグローバルゲイン、scalefacはこのスペクトル成分が含まれるSFBのスケールファクタである。
【００１７】
次に、ステップＳ５０３において、これらの量子化スペクトルをハフマン符号化した時の１フレーム分の使用ビット数が計算され、ステップＳ５０４でフレームに割り当てられたビット数と比較する。割り当てられたビット数より使用ビット数が大きい場合は、ステップＳ５０５においてグローバルゲインを１増加して、量子化粗さを粗くして、再びステップＳ５０２のスペクトル量子化に戻る。この繰り返しは量子化後に必要なビット数が割り当てられたビット数より少なくなるまで行われ、この時点でのグローバルゲインが決定されて、符号量制御ループが終了する。
【００１８】
ステップＳ５０６では、符号量制御ループによって量子化されたスペクトルを逆量子化して、量子化前のスペクトルとの差分を取ることによって量子化誤差を算出する。この量子化誤差は、SFB毎にまとめられる。
【００１９】
ステップＳ５０７では、全てのSFBでスケールファクタが０より大きくなったか、もしくは、量子化誤差が許容誤差範囲内に納まっているかどうかを調べる。このいずれの条件も満たさないSFBがある場合は、ステップＳ５０８に進み、許容誤差範囲内に量子化誤差が納まっていないSFBのスケールファクタを１増やし、再び歪み制御ループ処理を繰り返す。なお、SFB毎の許容誤差は聴覚演算によって量子化処理の前に求められている。
【００２０】
以上説明したように、ＩＳＯ規格書に記載されている量子化処理方法は二重ループで構成されており、しかも、グローバルゲインとスケールファクタは１刻みの制御しか行われない。そのため、この処理が収束するまでに、スペクトル量子化とビット計算が幾度となく延々と繰り返されることになる。
【００２１】
ここで、例えばMPEG-2 AACの場合では、スペクトル量子化は１回処理するたびに式（1）の計算を1024回行うことになるため、計算量が多い処理である。また、ビット計算時に検索されるハフマン符号表が１１種も存在するため、ハフマン符号表を全探索するとビット計算もやはり計算量が必然的に多くなる。
【００２２】
さらに、歪み制御ループでは逆量子化後に量子化誤差の計算を行っているが、この処理も計算量が多い。そのため、この二重ループが収束するまでには膨大な処理量がかかってしまう。
【００２３】
この問題を解決するために、二重ループの繰り返し回数を削減することによって、処理量を削減しようとする様々な試みがなされている。
【００２４】
例えば、特許文献１は、ハフマン符号表の特性に応じて決定したステップ数によって、コモンスケールファクタやスケールファクタを１刻みではなく飛び飛びに制御する技術を開示する。これにより、二重ループそれぞれのループ回数を減らし、処理量を削減している。
【００２５】
また、特許文献２は、最初に量子化ステップの推定値を算出した後、スケールファクタをMNRに応じて計算後、通常のインナーループを実行する方法を開示している。
【００２６】
また、非特許文献１は、式（１）を変形した式と、聴覚分析によって求められる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規格書に記載されている二重ループを完全に繰り返さないようにすることはできない。そのため、スペクトル量子化を数回から数十回繰り返さないと量子化処理を終えることができず、符号化処理全体に占める量子化処理の処理量は依然として大きかった。
【００３１】
この問題は聴覚心理分析を行わない場合においても同様である。全ての分割周波数帯域においてスケールファクタを一律に同じ値とした場合であっても、外側の歪み制御ループのみが省略できるだけであり、量子化ステップを量子化前に計算することは従来の技術では不可能である。そのため、従来の技術では符号量制御ループにおけるスペクトル量子化とビット計算をやはり繰り返し行っており、処理量を浪費しているという課題がある。
【００３２】
さらに、聴覚心理分析を行わない場合は、符号量制御の根拠となるＰＥ（聴覚エントロピー）が算出されないため、ビットリザーバに蓄積されている余剰ビットをフレームに割り当てることができず、さらに音質が劣化してしまうという問題も生じる。
【００３３】
したがって本発明の目的は、聴覚心理分析を行わないように構成されたオーディオ信号符号化において、聴覚心理分析を行わないことによる音質劣化を最小限に留めつつ、量子化にかかる処理量を削減することにある。
【課題を解決するための手段】
【００３４】
本発明の一側面に係るオーディオ信号符号化装置は、オーディオ入力信号をチャネルごとに処理単位のフレームに分割する分割手段と、前記分割手段より得られた連続する２フレームの時間信号を周波数スペクトルに変換する処理を、１フレームずつずらしながら行う変換手段と、前記変換手段より出力された周波数スペクトルの情報量を、量子化前のスペクトル情報量として算出するスペクトル情報量算出手段と、ビットレートとサンプリングレートとから算出されるフレーム平均ビット量に基づいて、量子化後のスペクトル情報量を予測する予測手段と、前記スペクトル情報量算出手段で算出された前記量子化前のスペクトル情報量から前記予測手段で予測された前記量子化後のスペクトル情報量を減じ、その減算結果に、量子化粗さの刻み幅から得られる係数を乗じることで、フレーム全体の量子化ステップを量子化前に決定する決定手段と、前記決定手段で決定された前記量子化ステップを利用して前記周波数スペクトルを量子化する量子化手段と、符号化規格に準じた余剰ビット量を管理するビットリザーバと、前記量子化手段で量子化された周波数スペクトルを所定のフォーマットに従って整形する整形手段と、前記フレーム平均ビットに、前記ビットリザーバに蓄積されている余剰ビット量の一部を加算してスペクトル割当ビットを計算するスペクトル割当ビット計算手段とを備え、前記量子化手段は、前記スペクトル割当ビット計算手段で計算された前記スペクトル割当ビット量に基づいて符号量を制御することを特徴とする。
【発明の効果】
【００３５】
本発明によれば、聴覚心理分析を行わないように構成されたオーディオ信号符号化において、聴覚心理分析を行わないことによる音質劣化を最小限に留めつつ、量子化にかかる処理量を削減することができる。
【発明を実施するための最良の形態】
【００３６】
本発明は、基本的には量子化前の情報量を量子化後の情報量で割ることによって、全体の量子化粗さを求めることができるという考えに基づき、量子化ステップを実際の量子化前に求めようとするものである。ここで、量子化粗さは一般的に基数を量子化ステップ乗したものであるため、量子化ステップを求めるために底をこの基数にした対数をとると、情報量の除算は情報量の差分に変化する。この差分に、量子化の刻み幅によって決定される係数を積算すると正確な量子化ステップを求めることができる。さらに、実際の量子化後の情報量は量子化後でないと求めることができないが、フレームに割り当てられた符号量から予測することができるため、本発明はこの予測を利用して量子化前に正確な量子化ステップを求めるものである。
【００３７】
また、本発明は、量子化前の予測時にはフレーム平均符号量を利用し、実際の量子化時にはビットリザーバに蓄積されている余剰ビット量の一部を足し込み、この値を基準にして符号量を制御する。これにより、量子化ステップの予測値に多少の誤差が生じた場合でも一回のスペクトル量子化で量子化処理を終了し、かつ、情報量が多いフレームには聴覚分析せずとも自動的に余剰ビットの一部が割り当てられるようにする。
【００３８】
本発明においては、最初にスケールファクタを算出、確定した後に、その値を使用した計算で量子化ステップをほぼ正確に算出することができるので、ほぼ一回のスペクトル量子化とビット計算で量子化を終了することが可能になる。
【００３９】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、本発明の実施に有利な具体例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わせの全てが本発明の課題解決手段として必須のものであるとは限らない。
【００４０】
（第１の実施形態）
図１は、本実施形態におけるオーディオ信号符号化装置の構成を示す図である。なお、同図において太線はデータ信号、細線は制御信号を示す。
【００４１】
図示の構成において、フレーム分割器１はオーディオ入力信号を処理単位であるフレームに分割する。フレーム単位に分割された入力信号はフィルタバンク３へ送出される。フィルタバンク３は、フレーム分割器１から入力された時間信号に対して、ウィンドウ掛けを行った後、所定のブロック長で時間−周波数変換を行い、周波数スペクトルに変換する。
【００４２】
スペクトル情報量計算器１５は、フィルタバンク３から出力された各周波数スペクトルの総計をとり、これに基づいて量子化前の周波数スペクトルが持つ情報量を計算する。量子化ステップ計算器７は、スペクトル情報量計算器１５で求めた量子化前のスペクトルが持つ情報量から、後述の量子化スペクトル情報量予測器１６で予測した量子化後のスペクトル情報量を減じることによって量子化ステップを求める。スペクトル量子化器８は、各周波数スペクトルを量子化する。ビット整形器９は、スケールファクタと量子化スペクトルを適宜規定のフォーマットに整形してビットストリームを作成し、出力する。ビットリザーバ１３は、各符号化規格により規定される余剰ビット（リザーブビット）数を管理する。
【００４３】
スペクトル割当ビット計算器１２は、ビットリザーバ１３から通知される余剰ビット量とフレーム平均ビットから量子化スペクトル符号に割り当てられるビット数を計算する。量子化スペクトル情報量予測器１６は、各フレームに割り当てられる平均ビット数に基づいて量子化スペクトル情報量の予測計算を行う。
【００４４】
次に、上記構成によるオーディオ信号符号化装置における、オーディオ信号の符号化動作を説明する。なお、ここでは符号化方式としてMPEG-2 AACを例にとって説明するが、同様な量子化手法を適用可能なその他の符号化方式についても全く同様な方法で実現可能である。
【００４５】
まず、処理に先立ち、各部の初期化を行う。初期化によって、量子化ステップと全てのスケールファクタの値は０にセットされる。
【００４６】
オーディオPCM信号などのオーディオ入力信号はフレーム分割器１によってフレーム単位に分割され、フィルタバンク３に送出される。MPEG-2 AAC LC(Low-Complexity)プロファイルの場合、1フレームは1024サンプルのPCM信号で構成され、この信号が送出される。
【００４７】
フィルタバンク３では、フレーム分割器１から送出される１フレーム分の現入力信号と、前回の変換時に受け取った先行フレームの入力信号とを合わせて２フレーム分、すなわち2048サンプルの時間信号が1024サンプルの周波数成分に変換される。なお、本実施形態において、先行フレームの入力信号はフィルタバンク３内の図示しないバッファに保持されている。フィルタバンク３は、入力信号の2048サンプルを１つのブロックとして、窓掛けを実行後、MDCTを行い、1024個の周波数スペクトルを出力する。
【００４８】
スペクトル情報量計算器１５は、フィルタバンク３から出力された各周波数スペクトルの総計をとり、これに基づいて量子化前の周波数スペクトルが持つ情報量を計算する。MPEG-2 AACの場合、量子化前のスペクトル全体が持つ情報量は次式で計算できる。
【００４９】
0004822816.tif 000003
【００５０】
ただし、ｘiは量子化前のスペクトルを示し、総計をとるiの範囲は1フレーム分、すなわち0≦i≦1023である。これは、各スペクトルの総計に対して底が２の対数をとったものである。
【００５１】
量子化スペクトル情報量予測器１６は、各フレームに割り当てられる平均ビット数に基づいて量子化スペクトル情報量の予測計算を行う。この計算では、まず、フレーム平均ビットに基づいて量子化スペクトル総量の予測計算が行われる。本実施形態において、この計算は、従来の量子化器によって量子化した際の、フレームビットと量子化スペクトル総量との関係を実際に測定し、その結果に基づいて作成した近似式によって計算する。例えば、この近似式をF(x)として、フレーム平均ビットをaverage_bitsとすると、量子化スペクトル予測総量は次式によって求めることができる。
【００５２】
0004822816.tif 000004
【００５３】
ただし、Xqは量子化スペクトルであり、総計をとるiの範囲は１フレーム分、すなわち0≦i≦1023である。なお、本実施形態において、フレーム平均ビットはシステム初期化時にビットレートとサンプリングレートと入力チャネル数とから予め計算されている。この計算は当分野において公知であるため、ここでは詳述しない。システム上に保持されているフレーム平均ビットは、初期化時に計算された値が符号化処理中は不変のまま利用される。
【００５４】
次に、量子化スペクトル総量を量子化スペクトル情報量に変換する。本実施形態において、この計算は（３）式で求めた量子化スペクトル総量に対し、底が２の対数をとることによって行われる。すなわち、量子化スペクトル情報量は次のように表される。
【００５５】
0004822816.tif 000005
【００５６】
量子化ステップ計算器７は、スペクトル情報量計算器１５から出力された量子化前スペクトルの情報量から、量子化スペクトル情報量予測器１６から出力された量子化スペクトル情報量を減じる。その後、その減算結果に、量子化粗さの刻み幅から得られる係数を掛けることによって、フレーム全体の量子化粗さである量子化ステップを計算する。
【００５７】
具体的には、MPEG-2 AACの場合は、量子化ステップの予測値は次式によって得られる。
【００５８】
0004822816.tif 000006
【００５９】
ただし、Xqは量子化スペクトル、ｘiは量子化前のスペクトル、global_gainはグローバルゲイン（量子化ステップ）である。また、総計をとるiの範囲は１フレーム分、すなわち0≦i≦1023である。
【００６０】
ここで、（５）式における右辺の第１項は次のとおりである。
【００６１】
0004822816.tif 000007
【００６２】
これは、量子化前のスペクトル全体が持つ情報量であり、スペクトル情報量計算器１５によって（２）式により計算された値である。また、右辺の第２項は次のとおりである。
【００６３】
0004822816.tif 000008
【００６４】
これは、量子化後のスペクトルが持つ情報量であり、量子化スペクトル情報量予測器１６によって（４）式により予測された値である。
【００６５】
なお、（５）式は先述のスペクトル量子化式（１）を適宜変形し、スケールファクタscalefacに一律に０を代入することによって得ることができる。
【００６６】
スペクトル割当ビット計算器１２は、ビットリザーバ１３によって管理されている現在の余剰ビット量をビットリザーバ１３から通知され、例えばそのうちの２割をフレーム平均ビットに加えてこれを割当ビットとし、スペクトル量子化器８に通知する。
【００６７】
スペクトル量子化器８は量子化ステップ計算器７が出力した量子化ステップに従って、1024本の周波数スペクトルを量子化する。例えば、MPEG-2 AACの場合では（１）式によって量子化スペクトルを算出し、フレーム全体で消費されるビット数をカウントする。
【００６８】
ここで、使用ビット数がスペクトル割当ビット計算器１２から通知された割当ビット数を超えてしまった場合には、使用ビット数がスペクトル割当ビット数に収まるまで量子化ステップを増加して再度スペクトル量子化を行う。しかしながら、量子化ステップ計算器７の計算が正確であり、かつ、量子化ステップの予測計算が行われた時のビット量に加えて、余剰ビット量の一部が割当ビットに加算されている。このため、多くの場合、１回の量子化スペクトル計算とビット計算が行われるだけで量子化が完了する。
【００６９】
また、量子化ステップ計算器７で計算された量子化ステップでスペクトル量子化した場合に使用ビット量が足りなくなるようなフレームは、必然的に情報量が元々平均的なフレームよりも多いフレームである。そのため、余剰ビットの一部を割り当てビットに加算し、この値を基準にしてスペクトル量子化処理を行うことによって、このようなフレームには自動的により多くのビットが割り当てられることになる。
【００７０】
各SFBのスケールファクタと量子化スペクトルはビット整形器９によって定められた書式に従ってビットストリームに整形されて、出力される。
【００７１】
最後に、ビット整形器９は実際に使用したビット量をビットリザーバ１３に通知する。ビットリザーバ１３はビット整形器９から通知された使用ビット量とフレーム平均ビット量から実際に使用された余剰ビット量を計算し、リザーブビットを適宜加減する。
【００７２】
以上説明した本実施形態におけるオーディオ信号符号化装置は、処理負荷の重い聴覚心理分析を一切行わない。しかも、フレームに割り当てられたビット量から量子化後のスペクトル情報量を予測し、これを用いて量子化前後のスペクトル全体が持つ情報量の差分を計算することによって、スペクトル量子化の前に量子化ステップをほぼ正確に予測する。このため、量子化ステップの調整のための繰り返しを行うことが減るため、迅速に量子化処理を終了することができる。よって、符号化処理にかかる演算量を大幅に削減することができる。
【００７３】
また、本実施形態におけるオーディオ信号符号化装置は、フレーム平均ビット量に基づいて量子化ステップを予測しておき、余剰ビット量の一部を一律に足してから実際のスペクトル量子化を行う。これにより、多少の予測誤差が生じても量子化処理が１回の処理で済むとともに、元々の情報量が多いフレームに自動的にリザーブビットが割当てられることになるため、聴覚心理分析を行わないことによる音質劣化を最小限に留めることができる。
【００７４】
（第２の実施形態）
本発明は、パーソナルコンピュータ（ＰＣ）等の汎用的な計算機上で動作するソフトウェアプログラムとして実施することも可能である。以下、この場合について図面を用いて説明する。
【００７５】
図５は、本実施形態におけるオーディオ信号符号化装置の構成例を示す図である。
【００７６】
図示の構成において、１００はＣＰＵであり、オーディオ信号符号化処理のための演算、論理判断等を行い、１０２のバスを介して各構成要素を制御する。
【００７７】
１０１はメモリであり、本実施形態の構成例における基本Ｉ／Oプログラムや、実行しているプログラムコード、プログラム処理時に必要なデータなどを格納する。
【００７８】
１０２はバスであり、ＣＰＵ１００の制御の対象とする構成要素を指示するアドレス信号を転送し、ＣＰＵ１００の制御の対象とする各構成要素のコントロール信号を転送し、各構成機器相互間のデータ転送を行う。
【００７９】
１０３はキーボードやマウスなどの入力装置であり、装置の起動、各種条件や入力信号の設定、符号化開始の指示を行う。
【００８０】
１０４はデータやプログラム等を記憶するための外部記憶領域を提供する外部記憶装置であり、例えばハードディスク装置などによって実現される。ここに、ＯＳをはじめとするプログラムやデータ等が保管され、また、保管されたデータやプログラムは必要な時にＣＰＵ１００によって呼び出される。また、後述するように、オーディオ信号符号化処理プログラムもこの外部記憶装置１０４にインストールされることになる。
【００８１】
１０５はメディアドライブである。記録媒体（例えば、ＣＤ−ＲＯＭ）に記録されているプログラムやデータ、デジタルオーディオ信号などはこのメディアドライブ１０５が読み取ることにより本オーディオ信号符号化装置にロードされる。また、外部記憶装置１０４に蓄えられた各種データや実行プログラムを、記録媒体に書き込むこともできる。なお上記の記録媒体は、ＣＤ−ＲＯＭに限らず、ＨＤＤ、ＤＶＤ、ＭＯ、半導体メモリなどを用いてもよい。
【００８２】
１０６はマイクロフォンであり、実際の音を集音してオーディオ信号に変換する。１０７はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することができる。
【００８３】
１０８は通信網であり、LAN、公衆回線、無線回線、放送電波などで構成されている。１０９は通信インタフェースであり、通信網１０８に接続されている。本実施形態におけるオーディオ信号符号化装置はこの通信インタフェース１０９を介して通信網１０８を経由し、外部機器と通信を行い、データやプログラムを送受信することができる。
【００８４】
かかる構成を備えるオーディオ信号符号化装置は、入力装置１０３からの各種の入力に応じて作動する。入力装置１０３からの入力が供給されると、インタラプト信号がＣＰＵ１００に送られることによって、ＣＰＵ１００がメモリ１０１内に記憶してある各種の制御信号を読出し、それらの制御信号に従って、各種の制御が行われる。
【００８５】
本実施形態のオーディオ信号符号化装置は、ＣＰＵ１００が、メモリ１０１に格納されている基本Ｉ／Ｏプログラムを実行し、これより外部記憶装置１０４に記憶されているＯＳをメモリ１０１にロードしてこれを実行することによって、動作する。具体的には、本装置の電源がＯＮにされると、基本Ｉ／Ｏプログラム中のＩＰＬ（イニシャルプログラムローディング）機能により外部記憶装置１０４からＯＳがメモリ１０１に読み込まれ、ＯＳの動作が開始される。
【００８６】
オーディオ信号符号化処理プログラムは、図２に示されるオーディオ信号符号化処理手順のフローチャートに基づいてプログラムコード化されたものである。
【００８７】
図６は、オーディオ信号符号化処理プログラムおよび関連データを記録媒体に記録したときの内容構成例を示す図である。本実施形態において、オーディオ信号符号化処理プログラムおよびその関連データは記録媒体に記録されている。図示したように記録媒体の先頭領域には、この記録媒体のディレクトリ情報が記録されており、その後にこの記録媒体のコンテンツであるオーディオ信号符号化処理プログラムと、オーディオ信号符号化処理関連データがファイルとして記録されている。
【００８８】
図７は、オーディオ信号符号化処理プログラムのオーディオ信号符号化装置（ＰＣ）への導入を示す模式図である。記録媒体に記録されたオーディオ信号符号化処理プログラムおよびその関連データは、図７に示したようにメディアドライブ１０５を通じて本装置にロードすることができる。この記録媒体１１０をメディアドライブ１０５にセットすると、ＯＳ及び基本Ｉ／Ｏプログラムの制御のもとにオーディオ信号符号化処理プログラムおよびその関連データが記録媒体１１０から読み出され、外部記憶装置１０４に格納される。その後、再起動時にこれらの情報がメモリ１０１にロードされて動作可能となる。
【００８９】
図８は、本実施形態におけるオーディオ信号符号化処理プログラムがメモリ１０１にロードされ実行可能となった状態のメモリマップを示す図である。図示のように、メモリ１０１のワークエリアには例えば、量子化前スペクトル聴覚情報量、量子化後スペクトル予測情報量、スペクトル割当ビット、スペクトルバッファ、量子化スペクトル、入力信号バッファが格納される。この他に、使用ビット、量子化ステップ、ビットレート、サンプリングレート、平均割当ビット、リザーブビット量も格納されている。
【００９０】
図９は、本実施形態におけるオーディオ信号符号化装置における入力信号バッファの一構成例を示す図である。図示の構成において、バッファサイズは1024×2サンプルであり、説明の便宜上1024サンプル毎に縦線で区切っている。入力信号は1フレーム分の1024サンプルずつ右側から入力されて、左から逐次処理される。太線の矢印は、入力信号の流れを示している。なお、図示の構成は１チャネル分の入力信号バッファを模式的に示したものであり、本実施形態では入力信号のチャネル分だけ同様なバッファが用意される。
【００９１】
以下、本実施形態においてＣＰＵ１００で実行されるオーディオ信号符号化処理をフローチャートを用いて説明する。
【００９２】
図２は、本実施形態におけるオーディオ信号符号化処理のフローチャートである。このフローチャートに対応するプログラムはオーディオ信号符号化処理プログラムに含まれ、上記のとおりメモリ１０１にロードされＣＰＵ１００によって実行される。
【００９３】
まず、ステップＳ１は、符号化する入力オーディオ信号をユーザが端末１０３を用いて指定する処理である。本実施形態において、符号化するオーディオ信号は、外部記憶装置１０４に格納されているオーディオＰＣＭファイルでも良いし、マイク１０６で捉えたリアルタイムの音声信号をアナログ・デジタル変換した信号でも良い。この処理を終えると、ステップＳ２へ進む。
【００９４】
ステップＳ２は、符号化する入力オーディオ信号が終了したかどうかを判定する処理である。入力信号が終了している場合は、ステップＳ１１へ処理が進む。未終了の場合は、ステップＳ３へ処理が進む。
【００９５】
ステップＳ３は、図９に示した入力信号バッファにおいて、右から２フレーム分、すなわち2048サンプルの時間信号を１フレーム分左にシフトするとともに、新たに１フレーム分、すなわち1024サンプルを右側に読み込む入力信号シフト処理である。この処理は入力信号に含まれる全てのチャネルに対して行われる。処理を終えると、ステップＳ５へ処理が進む。
【００９６】
ステップＳ５では、現行フレームの時間信号、すなわち、図９の入力信号バッファに格納されている2048サンプル（２フレーム分）の信号に対して窓掛けを行った後、時間−周波数変換を行う。この結果、MPEG-２ AACの場合、1024の周波数成分に分割されたスペクトルの組が１組得られる。なお本実施形態では、ブロックタイプは全て長いブロック長に設定されている。算出された計1024本のスペクトルは、メモリ１０１上のワークエリアにあるスペクトルバッファに格納される。このステップＳ５を終えると、処理はステップＳ７へと進む。
【００９７】
ステップＳ７は、量子化前のスペクトルが持つ情報量と量子化後のスペクトルが持つ情報量との差分から量子化ステップを計算する処理である。この処理の詳細は図３を用いて後述する。このステップＳ７を終えると、処理はステップＳ８へと進む。
【００９８】
ステップＳ８では、ステップＳ７で求めた量子化ステップに従って、1024本の周波数スペクトルを量子化して、使用ビットを計算する。さらに、その使用ビットがメモリ１０１上のワークエリアに格納されている割当ビットを超えた場合のみ、量子化ステップの増加と再量子化を行う。この処理の詳細は図４を用いて後述する。このステップＳ８を終えると、処理はステップＳ９へと進む。
【００９９】
ステップＳ９は、ステップＳ８で算出された量子化スペクトルと、スケールファクタとを、符号化方式によって定められたフォーマットに従って整形し、ビットストリームとして出力する処理である。本実施形態において、この処理によって出力されるビットストリームは、外部記憶装置１０４に格納されても良いし、あるいは、通信インタフェース１０９を介して通信網１０８に繋がっている外部機器に出力されても良い。このステップＳ９を終えると、処理はステップＳ１０へと進む。
【０１００】
ステップＳ１０は、ステップＳ９で出力されたビットストリームに使用されたビット量とフレーム平均ビットから、メモリ１０１上に格納されている余剰ビットの補正を行う処理である。このステップＳ１０を終えると、処理はステップＳ２へと戻る。
【０１０１】
ステップＳ１１は、直交変換などで生じる遅延によってまだ出力されていない量子化スペクトルがメモリ１０１上に残っているため、それらをビットストリームに整形して出力する処理である。このステップＳ１１を終えると、オーディオ信号符号化処理は終了する。
【０１０２】
図３は、上記したステップＳ７の量子化ステップ予測処理の詳細を示すフローチャートである。
【０１０３】
ステップＳ１００は、量子化前のスペクトルが持つ情報量を算出する処理である。量子化前のスペクトル情報量は、各スペクトル成分の総量を求め、その対数を算出することによって求められる。例えば、MPEG-2 AACの場合、量子化前のスペクトル情報量は次式によって求めることができる。
【０１０４】
0004822816.tif 000009
【０１０５】
算出された量子化前スペクトル情報量はメモリ１０１上のワークエリアに保存される。このステップＳ１００を終えると、処理はステップＳ１０３へ進む。
【０１０６】
ステップＳ１０３は、メモリ１０１上のフレーム平均ビット数を用いて、量子化スペクトル総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによって求めた近似式によって行う。例えば、この近似式をF(x)として、フレーム平均ビットをaverage_bitsとすると、量子化後スペクトル予測総量は次式によって求めることができる。
【０１０７】
0004822816.tif 000010
【０１０８】
算出された量子化スペクトル予測総量はメモリ１０１上のワークエリアに格納される。このステップＳ１０３を終えると、処理はステップＳ１０５へと進む。
【０１０９】
ステップＳ１０５は、ステップＳ１０３で求めた量子化スペクトル予測総量の対数を計算し、量子化スペクトル予測情報量を算出する処理である。例えば、MPEG-2 AACの場合は次式によって算出することができる。
【０１１０】
0004822816.tif 000011
【０１１１】
この処理によって算出された量子化後のスペクトル情報量はメモリ１０１上のワークエリアに保存される。このステップＳ１０５を終えると、処理はステップＳ１０８へと進む。
【０１１２】
ステップＳ１０８では、ステップＳ１００で求めた量子化前スペクトル情報量から、ステップＳ１０５で求めた量子化スペクトル予測情報量を減じる処理を行う。次に、ステップＳ１０９で、ステップＳ１０８の減算結果に量子化粗さの刻み幅によって決定される係数を乗じ、グローバルゲイン、すなわち量子化ステップの予測値を算出する。MPEG-2 AACの場合は、この予測値は結局第１の実施形態と同じく式（５）を計算したことになる。
【０１１３】
0004822816.tif 000012
【０１１４】
算出された量子化ステップ予測値は、メモリ１０１上のワークエリアに量子化ステップとして格納される。以上でこの量子化ステップ予測処理を終了し、リターンする。
【０１１５】
図４は、上記したステップＳ８のスペクトル量子化処理の詳細を示すフローチャートである。
【０１１６】
ステップＳ２００は、メモリ１０１上に格納されているフレーム平均ビットに、余剰ビット量の一部を加算して、スペクトル割当ビットを計算する処理である。例えば、本実施形態では、余剰ビット量の２割を一律にフレーム平均ビットに加算してスペクトル割当ビットとする。計算されたスペクトル割当ビットはメモリ１０１上のワークエリアに格納される。このステップＳ２００を終えると、処理はステップＳ２０１へ進む。
【０１１７】
ステップＳ２０１は、メモリ１０１上に格納されている量子化ステップに従って、スペクトルバッファに格納されている1024本のスペクトル成分を量子化する処理である。MPEG-2 AACの場合は、前出の（１）式に従って量子化スペクトルが計算される。このステップＳ２０１を終えると、処理はステップＳ２０２へ進む。
【０１１８】
ステップＳ２０２は、ステップＳ２０１で計算された量子化スペクトル全てを符号化した時に使用されるビット数を計算する処理である。例えば、MPEG-2 AACの場合は、量子化スペクトルは複数個をまとめた上でハフマン符号化されるため、この処理においてハフマンコード表の探索が行われ、符号化ビット数の総計が計算される。計算された使用ビット数はメモリ１０１上のワークエリアに格納される。このステップＳ２０２を終えると、処理はステップＳ２０３へ進む。
【０１１９】
ステップＳ２０３は、メモリ１０１上のスペクトル割当ビットと使用ビットとの大きさを比較する処理である。この比較の結果、使用ビットが割り当てられたビットよりも大きい場合は、ステップＳ２０４へ進み、符号量を削減するためにメモリ１０１に格納されている量子化ステップを増加した後、ステップＳ２０１に戻り再度スペクトルの量子化を行う。ただし、図３に示した前述の量子化ステップ予測処理（ステップＳ７）によってほぼ正確な量子化ステップが予測されており、かつ、フレーム平均ビットに基づいて量子化ステップの予測が行われている。これに対し、ステップＳ２０３では、それに余剰ビットの一部を加えたスペクトル割当ビットを基準にして符号量の制御を行っているため、ステップＳ２０４が実際に実行されることは極めて少ないであろう。
【０１２０】
また、予測した量子化ステップで量子化した結果、使用したビットがフレーム平均ビットを超えてしまう場合も、余剰ビットの追加分を超えなければ１回のスペクトル量子化で量子化が終了することになる。かつ、このようなフレームは元々情報量が多いフレームであり、結果的に情報量が多いフレームに自動的により多くのビットが割当てられることになる。
【０１２１】
ステップＳ２０３の比較において使用ビットが割り当てられたビットよりも小さい場合は、このスペクトル量子化処理を終了してリターンする。
【０１２２】
以上説明した本実施形態におけるオーディオ信号符号化処理は、聴覚心理分析処理を一切省いたものである。そして、フレーム平均ビットから量子化後のスペクトルが持つ情報量を予測し、さらに、量子化前のスペクトル情報量との差分をとることによって量子化ステップを実際の量子化を行う前にほぼ正確に予測する。これによって、聴覚心理演算を行わなくても、量子化ステップの調整を極力避けることが可能になり、符号化処理全体にかかる処理量を大幅に削減することができる。
【０１２３】
また、本実施形態におけるオーディオ信号符号化装置は、フレーム平均ビット量に基づいて量子化ステップを予測しておき、リザーブビット量の一部を一律に足してから実際のスペクトル量子化を行う。これにより、多少の予測誤差が生じても量子化処理が１回の処理で済むとともに、元々の情報量が多いフレームに自動的にリザーブビットが割り当てられることになるため、聴覚心理分析を行わないことによる音質劣化を最小限に留めることができる。
【０１２４】
（他の実施形態）
本発明はその要旨を逸脱しない範囲で種々変形して実施することができる。
【０１２５】
たとえば、上述の実施形態ではブロックスイッチングを全く行っていないが、聴覚分析を行わず、比較的簡易に入力信号の過渡状態を検知して、ブロックスイッチングを行うように構成された装置にも、本発明を同様に適用することが可能である。
【０１２６】
また、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１２７】
なお、本発明は、前述した実施形態の各機能を実現するプログラムを、システムまたは装置に直接または遠隔から供給し、そのシステムまたは装置に含まれるコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される。
【０１２８】
従って、本発明の機能・処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【０１２９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１３０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１３１】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードする形態も考えられる。つまり、本発明の機能・処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【０１３２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【０１３３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【０１３４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【０１３５】
【図１】図１は、本発明の第１の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図２】図２は、本発明の第２の実施形態におけるオーディオ信号符号化処理のフローチャートである。
【図３】図３は、本発明の第２の実施形態における量子化ステップ予測処理のフローチャートである。
【図４】図４は、本発明の第２の実施形態におけるスペクトル量子化処理のフローチャートである。
【図５】図５は、本発明の第２の実施形態におけるオーディオ信号符号化装置の一構成例を示す図である。
【図６】図６は、本発明の第２の実施形態におけるオーディオ信号符号化処理プログラムを格納した記憶媒体の内容構成例を示す図である。
【図７】図７は、本発明の第２の実施形態におけるオーディオ信号符号化処理プログラムのＰＣへの導入を示す模式図である。
【図８】図８は、本発明の第２の実施形態におけるメモリマップの例を示す図である。
【図９】図９は、本発明の第２の実施形態における入力信号バッファの構成例を示す図である。
【図１０】図１０は、ＩＳＯ規格書に従う量子化処理のフローチャートである。
【図１】
0004822816.tif 000013
【図２】
0004822816.tif 000014
【図３】
0004822816.tif 000015
【図４】
0004822816.tif 000016
【図５】
0004822816.tif 000017
【図６】
0004822816.tif 000018
【図７】
0004822816.tif 000019
【図８】
0004822816.tif 000020
【図９】
0004822816.tif 000021
【図１０】
0004822816.tif 000022