明 細 書
オーディオ信号符号化装置および方法
技術分野
[0001] 本発明は、オーディオ信号の符号化装置および方法に関する。
背景技術
[0002] 近年、高音質かつ高効率なオーディオ信号符号化技術が、 DVD-Videoの音声トラ ック、携帯オーディオプレーヤー、音楽配信、家庭内 LANにおけるホームサーバへの 楽曲蓄積などに広く利用され、幅広く普及するとともにその重要性も増している。
[0003] このようなオーディオ信号符号ィ匕技術の多くは、変換符号ィ匕技術を利用して時間 周波数変換を行っている。例えば、 MPEG-2 AACや Dolby Digital(AC- 3)などでは、 MDCT (Modified Discrete Cosine Transform)などの直交変換単体でフィルタバンク を構成している。また、 MPEG- 1 Audio Layer III (MP3)や ATRAC (MD (ミニディスク) に利用されている符号化方式)では、 QMF (Quadrature Mirror Filter)などのサブバ ンド分割フィルタと直交変換を多段接続してフィルタバンクを構成している。
[0004] これらの変換符号ィ匕技術では、人間の聴覚特性を利用したマスキング分析が行わ れる。そして、マスクされると判断されるスペクトル成分を取り除ぐあるいはマスクされ る量子化誤差を許容することにより、スペクトル表現のための情報量を削減し、圧縮 効率を高めている。
[0005] また、これらの変換符号ィ匕技術では、その多くが、スペクトル成分を非線形量子化 することにより、スペクトルが持つ情報量を圧縮している。例えば、 MP3や AACでは、 各スペクトル成分を 0.75乗することにより情報量を圧縮している。
[0006] また、これらの変換符号ィ匕技術では、フィルタバンクによって周波数成分に変換さ れた入力信号を、人間の聴覚の周波数分解能に基づいて設定される分割周波数帯 域ごとにまとめる。そして、量子化時に各分割周波数帯域毎の正規化係数を聴覚分 析結果から決定し、正規化係数と量子化スペクトルの組み合わせで周波数成分を表 現することで情報量を削減している。この正規化係数は、実際には分割帯域毎の量 子化粗さの調整を行う変数であり、正規化係数が 1変化することによって、量子化粗
さは 1ステップ分変化することになる。 MPEG-2 AACでは、この分割周波数帯域をス ケールファクタバンド (SFB)と呼び、正規化係数をスケールファクタと呼称する。
[0007] また、これらの変換符号ィ匕方式では、符号ィ匕単位である 1フレーム全体の量子化粗 さを制御することによって符号量を制御している。多くの変換符号ィ匕方式では、量子 化粗さは、ある基数の整数乗幅でステップ状に制御されており、この整数を量子化ス テツプと呼ぶ。 MPEGオーディオ規格では、この、フレーム全体の量子化粗さを設定 する量子化ステップを「グローバルゲイン」もしくは「コモンスケールファクタ」と呼称し ている。また、前述のスケールファクタは量子ィ匕ステップとの相対値で表現することに よって、これらの変数の符号に必要な情報量を削減して 、る。
[0008] 例えば、 MP3や AACではこれらの変数が 1変化することによって、実際の量子化粗 さは 2の 3/16乗分変化する。
[0009] 変換符号化方式の量子化処理では、スケールファクタを制御して聴覚演算の結果 を反映して量子化誤差がマスクされるように量子化歪みを制御する。またこれと同時 に、量子化ステップを制御してフレーム全体の量子化粗さを適宜調整することによつ てフレーム全体の符号量制御を行わなければならな 、。これらの量子化粗さを決め る二種類の数値は、符号ィ匕品質に重大な影響を及ぼすため、慎重かつ正確に、この 二つの制御を同時に効率よく行うことが求められる。
[0010] MPEG- 1 Audio Layer ΠΙ(ΜΡ3)の規格書 (ISO/IEC 11172- 3)や MPEG- 2 AACの規 格書 (ISO/IEC 13818-7)を参照されたい。そこには、量子化時にスケールファクタとグ ローバルゲインを適宜制御する方法として、歪み制御ループ (アウターループ)と符 号量制御ループ (インナーループ)の二重ループによって繰り返し処理を行う方法が 紹介されている。以下、この方法を図面を用いて説明する。なお、便宜上、 MPEG-2 AACの場合を例にとって説明を行う。
[0011] 図 19は、 ISO/IEC規格書に記載されている量子化処理を簡単なフローチャートに したものである。
[0012] まず、ステップ S501では全ての SFBのスケールファクタと、グローバルゲインが 0に 初期化され、歪み制御ループ (アウターループ)に入る。
[0013] 歪み制御ループでは、まず、符号量制御ループ (インナーループ)が実行される。
[0014] 符号量制御ループでは、まず、ステップ S502において、 1フレーム分、すなわち、 024個のスペクトル成分力 下記の量子化式に従って量子化される。
[0016] ただし、(1)式において Xqは量子化スペクトル、 Xは量子化前のスペクトル (MDCT 係数)、 globaLgainはグローバルゲイン、 scalefacはこのスペクトル成分が含まれる SFB のスケールファクタである。
[0017] 次に、ステップ S 503において、これらの量子化スペクトルをハフマン符号化した時 の 1フレーム分の使用ビット数が計算され、ステップ S504でフレームに割り当てられ たビット数と比較する。割り当てられたビット数より使用ビット数が大きい場合は、ステ ップ S505においてグローバルゲインを 1増加して、量子化粗さを粗くして、再びステ ップ S502のスペクトル量子化に戻る。この繰り返しは量子化後に必要なビット数が割 り当てられたビット数より少なくなるまで行われ、この時点でのグローバルゲインが決 定されて、符号量制御ループが終了する。
[0018] ステップ S506では、符号量制御ループによって量子化されたスペクトルを逆量子 化して、量子化前のスペクトルとの差分を取ることによって量子化誤差を算出する。こ の量子化誤差は、 SFB毎にまとめられる。
[0019] ステップ S507では、全ての SFBでスケールファクタが 0より大きくなつた力、もしくは 、量子化誤差が許容誤差範囲内に納まっているかどうかを調べる。このいずれの条 件も満たさない SFBがある場合は、ステップ S508に進み、許容誤差範囲内に量子化 誤差が納まって 、な 、SFBのスケールファクタを 1増やし、再び歪み制御ループ処理 を繰り返す。なお、 SFB毎の許容誤差は聴覚演算によって量子化処理の前に求めら れている。
[0020] 以上説明したように、 ISO規格書に記載されている量子化処理方法は二重ループ で構成されており、し力も、グローバルゲインとスケールファクタは 1刻みの制御しか 行われない。そのため、この処理が収束するまでに、スペクトル量子化とビット計算が 幾度となく延々と繰り返されること〖こなる。
[0021] ここで、例えば MPEG-2 AACの場合では、スペクトル量子化は 1回処理するたびに 式(1)の計算を 1024回行うことになるため、計算量が多い処理である。また、ビット計 算時に検索されるハフマン符号表が 11種も存在するため、ハフマン符号表を全探索 するとビット計算もやはり計算量が必然的に多くなる。
[0022] さらに、歪み制御ループでは逆量子化後に量子化誤差の計算を行っている力 こ の処理も計算量が多い。そのため、この二重ループが収束するまでには膨大な処理 量がかかってしまう。
[0023] この問題を解決するために、二重ループの繰り返し回数を削減することによって、 処理量を削減しょうとする様々な試みがなされて 、る。
[0024] 例えば、特開 2003-271199号公報は、ハフマン符号表の特性に応じて決定したステ ップ数によって、コモンスケールファクタやスケールファクタを 1刻みではなく飛び飛 びに制御する技術を開示する。これにより、二重ループそれぞれのループ回数を減 らし、処理量を削減している。
[0025] また、特開 2001-184091号公報は、最初に量子化ステップの推定値を算出した後、 スケールファクタを MNRに応じて計算後、通常のインナーループを実行する方法を 開示している。
[0026] ま 7こ、 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)は、 式(1)を変形した式と、聴覚分析によって求められる SFB毎の許容誤差エネルギーを 用いることによって、スケールファクタをスペクトル量子化に先行して適宜計算する技 術を開示する。これにより、二重ループの外側の歪み制御ループを取り除き、処理量 を削減している。
[0027] これらの従来技術を用いることによって、量子化処理の二重ループの収束を早め、 量子化処理の処理量をある程度までは削減することができる。
発明の開示
発明が解決しょうとする課題
[0028] し力しながら、従来の技術では、 ISO規格書に記載されている二重ループを完全に 繰り返さないようにすることはできない。そのため、スペクトル量子化を数回から数十
回繰り返さな!/ヽと量子化処理を終えることができず、符号化処理全体に占める量子 化処理の処理量は依然として大きかった。
[0029] 特に、二重ループのうち、聴覚演算結果を利用して事前にスケールファクタを計算 することによって、外側の歪み制御ループを無くすことは可能である力 量子化ステツ プを量子化前に計算することは従来の技術では不可能であった。
[0030] そのため、従来の技術では符号量制御ループにおけるスペクトル量子化とビット計 算をやはり繰り返し行っており、処理量を浪費して!/、ると!/、う課題がある。
[0031] ところで、量子化処理とともに処理量の力かる処理として、聴覚心理分析処理があ る。そこで、符号化効率よりも処理量削減が優先されるような場合、具体的には例え ば、比較的安価な携帯ビデオ撮影機器などにぉ ヽて音質よりも消費電力の低減が 優先されるような場合では、聴覚心理分析を全く行わずに符号ィ匕することも可能であ る。このとき、量子化処理においては、全ての分割周波数帯域においてスケールファ クタを一律に同一値に設定することによって、外側の歪み制御ループを取り除き、さ らに処理量を削減することができる。
[0032] このように聴覚心理分析を行わな 、構成にぉ 、ても上記の問題は同様に生じる。
全ての分割周波数帯域においてスケールファクタを一律に同じ値とした場合であつ ても、外側の歪み制御ループのみが省略できるだけであり、量子化ステップを量子化 前に計算することは従来の技術では不可能である。そのため、従来の技術では符号 量制御ループにおけるスペクトル量子化とビット計算をやはり繰り返し行っており、処 理量を浪費して 、ると 、う課題がある。
[0033] さらに、聴覚心理分析を行わない構成では、符号量制御の根拠となる PE (聴覚ェ ントロピー)が算出されないため、ビットリザーバに蓄積されている余剰ビットをフレー ムに割り当てることができず、さらに音質が劣化してしまうという問題も生じる。
[0034] 以上より、本発明の目的は、オーディオ信号符号化における量子化処理にかかる 演算量を削減することにある。
[0035] また、本発明の別の目的は、聴覚心理分析を行わな ヽように構成されたオーディオ 信号符号ィ匕において、聴覚心理分析を行わないことによる音質劣化を最小限に留め つつ、量子化に力かる演算量を削減することにある。
課題を解決するための手段
[0036] 本発明の一側面に係るオーディオ信号符号ィ匕装置は、オーディオ入力信号をチヤ ネルごとに処理単位フレームに分割するフレーム分割部と、オーディオ入力信号を 分析し、変換ブロック長の決定および聴覚マスキングの計算を行う聴覚心理演算部と 、前記聴覚心理演算部で決定された前記変換ブロック長に従って、処理対象フレー ムをブロック化し、フレーム中の時間領域信号を 1または 2以上の周波数スペクトルの 組に変換するフィルタバンク部と、前記フィルタバンク部より出力された周波数スぺク トルを、複数の周波数帯域に分割して、前記聴覚心理演算部の演算結果によって各 周波数帯域のスペクトルを重み付けするスケールファクタ算出部と、前記スケールフ ァクタ算出部によって重み付けされた量子化前のスペクトル全体が持つ聴覚情報量 力 量子化後のスペクトル全体の情報量を減じ、量子化粗さの刻み幅力 得られる 係数を積算することによって、フレーム全体の量子化ステップをスペクトル量子化前 に決定する量子化ステップ決定部と、前記スケールファクタと前記量子化ステップと を利用して前記周波数スペクトル列を量子化するスペクトル量子化部と、前記スぺク トル量子化部から出力される量子化スペクトルを規定のフォーマットに従って整形し たビットストリームを作成出力するビット整形部とを備え、前記量子化ステップ決定部 は、符号ィ匕対象であるフレームに割り当てられたビット量に基づいて前記量子化スぺ タトル全体の情報量を予測する量子化スペクトル情報量予測部とを含む。
[0037] 本発明の別の側面に係るオーディオ信号符号化装置は、オーディオ入力信号をチ ャネルごとに処理単位フレームに分割するフレーム分割部と、前記フレーム分割部よ り得られた連続する 2フレームの時間領域信号を周波数スペクトルに変換する処理を 、 1フレームずつずらしながら行うフィルタバンク部と、前記フィルタバンク部より出力さ れた周波数スペクトルの情報量を、量子化前のスペクトル情報量として算出するスぺ タトル情報量算出部と、ビットレートとサンプリングレートとから算出されるフレーム平 均ビット量に基づ 、て、量子化後のスペクトル情報量を予測する量子化スペクトル情 報量予測部と、前記スペクトル情報量算出部で算出された前記量子化前のスぺタト ル情報量から前記量子化スペクトル情報量予測部で予測された前記量子化後のス ベクトル情報量を減じ、その減算結果に、量子化粗さの刻み幅から得られる係数を乗
じることで、フレーム全体の量子化ステップをスペクトル量子化前に決定する量子化 ステップ決定部と、前記量子化ステップ決定部で決定された前記量子化ステップを 利用して前記周波数スペクトルを量子化するスペクトル量子化部と、符号化規格に準 じた余剰ビット量を前記規格に合致するように管理するビットリザーバと、前記スぺタト ル量子化部で量子化された周波数スペクトルを所定のフォーマットに従って整形した ビットストリームを生成するビット整形部と、前記フレーム平均ビットに、前記ビットリザ ーバに蓄積されている余剰ビット量の一部を随時加算してスペクトル割当ビットを計 算するスペクトル割当ビット計算部とを備え、前記スペクトル量子化部は、前記スぺク トル割当ビット計算部で計算された前記スぺ外ル割当ビット量に基づ 1、て符号量制 御を行う。
[0038] 本発明の他の特徴及び利点は、添付の図面を用いてなされる以下の説明から明ら 力となろう。
図面の簡単な説明
[0039] [図 1]図 1は、本発明の第 1の実施形態におけるオーディオ信号符号化装置の一構 成例を示す図である。
[図 2]図 2は、本発明の第 2の実施形態におけるオーディオ信号符号ィ匕処理のフロー チャートである。
[図 3]図 3は、本発明の第 2の実施形態における量子化ステップ予測処理のフローチ ヤートである。
[図 4]図 4は、本発明の第 2の実施形態におけるスペクトル量子化処理のフローチヤ ート、
[図 5]図 5は、本発明の第 2の実施形態におけるオーディオ信号符号化装置の一構 成例を示す図である。
[図 6]図 6は、本発明の第 2の実施形態におけるオーディオ信号符号化処理プロダラ ムを格納した記憶媒体の内容構成例を示す図である。
[図 7]図 7は、本発明の第 2の実施形態におけるオーディオ信号符号化処理プロダラ ムの PCへの導入を示す模式図である。
[図 8]図 8は、本発明の第 2の実施形態におけるメモリマップの例を示す図である。
[図 9]図 9は、本発明の第 2の実施形態における入力信号バッファの構成例を示す図 である。
[図 10]図 10は、本発明の第 3の実施形態におけるオーディオ信号符号化装置の一 構成例を示す図である。
[図 11]図 11は、本発明の第 4の実施形態における量子化ステップ予測処理のフロー チャートである。
[図 12]図 12は、本発明の第 4の実施形態におけるスペクトル割当ビット算出処理のフ ローチャートである。
[図 13]図 13は、本発明の第 5の実施形態におけるオーディオ信号符号化装置の一 構成例を示す図である。
[図 14]図 14は、本発明の第 6の実施形態におけるオーディオ信号符号ィ匕処理のフロ 一チャートである。
[図 15]図 15は、本発明の第 6の実施形態における量子化ステップ予測処理のフロー チャートである。
[図 16]図 16は、本発明の第 6の実施形態におけるスペクトル量子化処理のフローチ ヤートである。
[図 17]図 17は、本発明の第 6の実施形態におけるメモリマップの例を示す図である。
[図 18]図 18は、本発明の第 6の実施形態における入力信号バッファの構成例を示す 図である。
[図 19]図 19は、従来の ISO規格書に従う量子化処理のフローチャートである。
発明を実施するための最良の形態
本発明は、基本的には量子化前の情報量を量子化後の情報量で割ることによって 、全体の量子化粗さを求めることができるという考えに基づき、量子化ステップを実際 の量子化前に求めようとするものである。ここで、量子化粗さは一般的に基数を量子 ィ匕ステップ乗したものであるため、量子化ステップを求めるために底をこの基数にした 対数をとると、情報量の除算は情報量の差分に変化する。この差分に、量子化の刻 み幅によって決定される係数を積算すると正確な量子化ステップを求めることができ る。さらに、実際の量子化後の情報量は量子化後でないと求めることができないが、
フレームに割り当てられた符号量力 予測することができるため、本発明はこの予測 を利用して量子化前に正確な量子化ステップを求めるものである。
[0041] また、本発明は、量子化前の予測時にはフレーム平均符号量を利用し、実際の量 子化時にはビットリザーバに蓄積されている余剰ビット量の一部を足し込み、この値を 基準にして符号量を制御する。これにより、量子化ステップの予測値に多少の誤差が 生じた場合でも一回のスペクトル量子化で量子化処理を終了し、かつ、情報量が多 いフレームには聴覚分析せずとも自動的に余剰ビットの一部が割り当てられるように する。
[0042] 本発明においては、最初にスケールファクタを算出、確定した後に、その値を使用 した計算で量子化ステップをほぼ正確に算出することができるので、ほぼ一回のスぺ タトル量子化とビット計算で量子化を終了することが可能になる。
[0043] 以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、 本発明は以下の実施形態に限定されるものではなぐ本発明の実施に有利な具体 例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わ せの全てが本発明の課題解決手段として必須のものであるとは限らない。
[0044] (第 1の実施形態)
図 1は、本実施形態におけるオーディオ信号符号化装置の一構成例を示す図であ る。同図において、太線はデータ信号、細線は制御信号を示す。
[0045] 図示の構成において、 1はオーディオ入力信号を処理単位であるフレームに分割 するフレーム分割器である。ここでフレーム単位に分割されたオーディオ入力信号は 後述する聴覚心理演算器 2とフィルタバンク 3へ送出される。
[0046] 2は聴覚心理演算器であり、オーディオ入力信号をフレーム単位に分析し、 SFBより も詳細な分割周波数帯域でマスキング計算を行う。この演算の結果、ブロックタイプ がフィルタバンク 3へ、また、 SFB毎の信号対マスク比(SMR)がスケールファクタ計算 器 4へ出力される。
[0047] 3はフィルタバンクであり、フレーム分割器 1から入力された時間信号に対して、聴 覚心理演算器 2によって指定されたブロックタイプのウィンドウ掛けを行った後、指定 されたブロック長で時間周波数変換を行!ヽ、周波数スペクトルに変換する。
[0048] 4はスケールファクタ計算器であり、 SFB毎の SMR (信号対マスク比)と、周波数スぺ タトルより、 SFB毎の許容誤差エネルギーを算出し、それに基づいて全ての SFBのス ケールファクタを決定する。
[0049] 5はスペクトル割当ビット計算器であり、量子化スペクトル符号に割り当てられるビッ ト数を計算する。
[0050] 6は量子ィ匕スペクトル総量予測器であり、スペクトル割当ビット数に基づ 、て、量子 化後のスペクトル総量を予測する。
[0051] 7は量子化ステップ計算器であり、量子化前のスぺ外ルが持つ聴覚情報量を計算 し、量子化後のスペクトル総量力 求めた量子化後のスペクトル情報量を減じること によって量子ィ匕ステップを求める。
[0052] 8はスペクトル量子化器であり、各周波数スペクトルを量子化する。
[0053] 9はビット整形器であり、スケールファクタと量子化スペクトルを適宜規定のフォーマ ットに整形してビットストリームを作成し、出力する。
[0054] 上記構成によるオーディオ信号符号化装置におけるオーディオ信号の処理動作を 以下に説明する。
[0055] なお、本実施形態では、説明の便宜のために符号ィ匕方式として MPEG-2 AACを 例にとって説明するが、同様な量子化手法を適用可能なその他の符号ィ匕方式につ V、ても全く同様な方法で実現可能である。
[0056] まず、処理に先立ち、各部の初期化を行う。初期化によって、量子化ステップと全て のスケールファクタの値は 0にセットされる。
[0057] オーディオ PCM信号などのオーディオ入力信号はフレーム分割器 1によってフレー ム単位に分割され、聴覚心理演算器 2とフィルタバンク 3に送出される。 MPEG-2 AA C LC(Low-Complexity)プロファイルの場合、 1フレームは 1024サンプルの PCM信号 で構成され、この信号が送出される。
[0058] 聴覚心理演算器 2では、フレーム分割器 1から送出された入力信号を適宜分析し、 聴覚マスキング分析を行い、ブロックタイプをフィルタバンク 3に、また、 SFB毎の信号 対マスク比 (SMR)をスケールファクタ計算器 4に各々出力する。なお、聴覚心理演算 器 2で行われる分析やマスキング計算は当分野にぉ 、て公知であるため、これらの
詳細な説明は行わない。
[0059] フィルタバンク 3は、聴覚心理演算器 2が出力するブロックタイプに従い、フレーム分 割器 1からの現フレームの入力信号と先行フレームの入力信号の 2フレーム分、 2048 サンプルの時間領域信号を周波数領域信号へ変換する。なお、本実施形態におい て、先行フレームの入力信号はフィルタバンク 3内のバッファに保持されている。ここ で、ブロックタイプが長いブロック長を用いる場合は、入力信号の 2048サンプルを一 つのブロックとして、ブロックタイプに応じた形の窓掛けを実行後、 MDCTを行い、 102 4個の周波数スペクトルを出力する。短いブロック長を用いる場合には、入力信号の 2 048サンプルのうち、 448番目のサンプルを先頭として 256サンプルを一つのブロックと して窓掛けを行う。その後、 MDCTを行い、 128個の周波数成分を出力する変換を、 入力信号を 128サンプルずつずらしながら都合 8回行う。これにより 8組の周波数スぺ タトルが得られる。
[0060] スケールファクタ計算器 4は、フィルタバンク 3から出力されるスペクトル成分と聴覚 心理演算器 2から出力される SFB毎の SMR値から SFB毎の許容誤差エネルギーを算 出し、これに基づき、 SFB毎のスケールファクタを計算する。許容誤差エネルギーに 基づくスケールファクタの算出方法は、当分野では公知であるため、ここでは詳細は 述べない。例えば、前述した非特許文献 1に記載された手法をとるならば、 MPEG-2 AACにおいて、 SFB bにおけるスケールファクタ scalefac[b]は次式で求めることができ る。
[0062] ただし、式(2)にお!/、て、 X は SFB bに含まれるスペクトル成分の平均レベルである
avg
。また、 xmin[b]は SFB bの許容誤差エネルギーであり、 SFB bのスペクトルエネルギー を energy[b]、信号対マスク比を SMR[b]、含まれるスペクトル本数を sl _width[b]とする と、この xmin[b]は次式によって求められる。
[0063]
[ / 綱 ^
[0064] スペクトル割当ビット計算器 5は、スケールファクタ計算器 4から出力されたスケール ファクタをノヽフマン符号ィ匕したときのビット数を計算し、指定されたフレームビット数か ら減じる。これにより、量子化スペクトルに割り当てられるビット数を計算し、量子化ス ベクトル総量予測器 6へ出力する。
[0065] 量子化スペクトル総量予測器 6は、スペクトル割当ビット計算器 5から出力されたビッ ト数に基づいて量子化スペクトル総量の予測計算を行う。本実施形態において、この 計算は、従来の量子化器によって量子化した際の、スペクトル割当ビット数と量子化 スペクトル総量との関係を実際に測定し、その結果に基づいて作成した近似式によ つて計算する。例えば、この近似式を F(x)として、スペクトル割当ビットを spectrum_bits とすると、量子化後スペクトル予測総量は以下の式によって求めることができる。
[0067] 量子化ステップ計算器 7では、まず、フィルタバンク 3から出力された各周波数スぺ タトルに、スケールファクタによって聴覚上の重み付けをした値の総計をとり、これに 基づいて量子化前の周波数スペクトルが持つ聴覚情報量を計算する。次に、量子化 後スペクトル総量予測器 6から出力された量子化スペクトル総量に基づいて量子化ス ベクトルが持つ情報量を計算する。
[0068] 最後に、量子化前スペクトルの聴覚情報量から量子化スペクトルの情報量を減じ、 量子化粗さの刻み幅力 得られる係数を掛けることによって、フレーム全体の量子化 粗さである量子化ステップを計算する。
[0069] 具体的には、 MPEG-2 AACの場合は、量子化ステップの予測値は次式を計算する こと〖こよって得られる。
[0071] ただし、式(5)において、 Xqは量子化スペクトル、 xiは量子化前のスペクトル、 global _gainはグローバルゲイン(量子化ステップ)、 scalefacはこのスペクトル成分が含まれる SFBのスケールファクタである。また、総計を取る iの範囲は 1フレーム分、すなわち 0≤
i≤ 1023である。
ここで、式(5)において、以下に示す右辺の第 1項
1S 量子化前のスペクトル全体が持つ聴覚情報量であり、各スペクトルに、スケール ファクタによって聴覚上の重み付けがなされた値の総計である。また、右辺の第 2項 である log Σ Χ 力 量子化後のスペクトルが持つ情報量であり、このうち、 Σ Χ は量
2 i q i q 子化スペクトルの総計であり、量子化スペクトル総量予測器 6によって予測された値 である。この値は前述したように例えば近似式 (4)を計算することによって得られる。
[0072] なお、式(5)はスペクトル量子化式(1)を適宜変形することによって得ることができる
[0073] スペクトル量子化器 8は、スケールファクタ計算器 4が出力したスケールファクタと量 子化ステップ計算器 7が出力した量子化ステップに従って、 1024本の周波数スぺタト ルを量子化する。具体的には、例えば、 MPEG-2 AACの場合では式(1)によって量 子化スペクトルを算出し、フレーム全体で消費されるビット数をカウントする。
[0074] ここで、使用ビット数がスペクトル割当ビット数を超えてしまった場合には、使用ビッ ト数がスペクトル割当ビット数に収まるまで量子化ステップを増加して再度スペクトル 量子化を行う。し力しながら、量子化ステップ計算器 7の計算が正確であるため、多く の場合 1回のみの量子化スペクトル計算とビット計算が行われる。
[0075] 各 SFBのスケールファクタと量子化スペクトルはビット整形器 8によって定められた書 式に従ってビットストリームに整形されて、出力される。
[0076] 以上説明したように、本実施形態におけるオーディオ信号符号化装置は、フレーム に割り当てられたビット量から、量子化後のスペクトル総量を予測し、これを用いて量 子化前後のスペクトル全体が持つ情報量の差分を計算する。これにより、スペクトル 量子化の前に量子化ステップがほぼ正確に予測される。このため、量子化ステップの 調整のための繰り返しを行うことが減るために、迅速に量子化処理を終了することが できる。
[0077] (第 2の実施形態)
本発明は、パーソナルコンピュータ (PC)等の汎用的な計算機上で動作するソフト ウェアプログラムとして実施することも可能である。以下、この場合について図面を用 いて説明する。
[0078] 図 5は、本実施形態におけるオーディオ信号符号化装置の構成例を示す図である
[0079] 図示の構成において、 100は CPUであり、オーディオ信号符号化処理のための演 算、論理判断等を行い、 102のバスを介して各構成要素を制御する。
[0080] 101はメモリであり、本実施形態の構成例における基本 IZOプログラムや、実行し て 、るプログラムコード、プログラム処理時に必要なデータなどを格納する。
[0081] 102はバスであり、 CPU100の制御の対象とする構成要素を指示するアドレス信号 を転送し、 CPU100の制御の対象とする各構成要素のコントロール信号を転送し、 各構成機器相互間のデータ転送を行う。
[0082] 103は端末であり、装置の起動、各種条件や入力信号の設定、符号化開始の指示 を行う。
[0083] 104はデータやプログラム等を記憶するための外部記憶領域を提供する外部記憶 装置であり、例えばノヽードディスク装置などによって実現される。ここに、 OSをはじめ とするプログラムやデータ等が保管され、また、保管されたデータやプログラムは必要 な時に CPU100によって呼び出される。また、後述するように、オーディオ信号符号 化処理プログラムもこの外部記憶装置 104にインストールされることになる。
[0084] 105はメディアドライブである。記録媒体 (例えば、 CD-ROM)に記録されて 、る プログラムやデータ、デジタルオーディオ信号などはこのメディアドライブ 105が読み 取ることにより本オーディオ信号符号ィ匕装置にロードされる。また、外部記憶部 104 に蓄えられた各種データや実行プログラムを、記録媒体に書き込むこともできる。
[0085] 106はマイクロフォンであり、実際の音を収音してオーディオ信号に変換する。 107 はスピーカーであり、任意のオーディオ信号データを実際の音にして出力することが できる。
[0086] 108は通信網であり、 LAN,公衆回線、無線回線、放送電波などで構成されている
。 109は通信インタフェースであり、通信網 108に接続されている。本実施形態にお けるオーディオ信号符号ィ匕装置はこの通信インタフェース 109を介して通信網 108を 経由し、外部機器と通信を行い、データやプログラムを送受信することができる。
[0087] 力かる構成を備えるオーディオ信号符号ィ匕装置は、端末 103からの各種の入力に 応じて作動する。端末 103からの入力が供給されると、インタラプト信号が CPU100 に送られることによって、 CPU100がメモリ 101内に記憶してある各種の制御信号を 読出し、それらの制御信号に従って、各種の制御が行われる。
[0088] 本実施形態のオーディオ信号符号化装置は、 CPU100が、メモリ 101に格納され ている基本 IZOプログラムを実行し、これより外部記憶装置 104に記憶されている Ο Sをメモリ 101にロードしてこれを実行することによって、動作する。具体的には、本装 置の電源が ONにされると、基本 IZOプログラム中の IPL (イニシャルプログラムロー デイング)機能により外部記憶部 104から OSがメモリ 101に読み込まれ、 OSの動作 が開始される。
[0089] オーディオ信号符号ィ匕処理プログラムは、図 2に示されるオーディオ信号符号化処 理手順のフローチャートに基づいてプログラムコード化されたものである。
[0090] 図 6は、オーディオ信号符号化処理プログラムおよび関連データを記録媒体に記 録したときの内容構成例を示す図である。本実施形態において、オーディオ信号符 号ィ匕処理プログラムおよびその関連データは記録媒体に記録されて 、る。図示した ように記録媒体の先頭領域には、この記録媒体のディレクトリ情報が記録されており、 その後にこの記録媒体のコンテンツであるオーディオ信号符号ィ匕処理プログラムと、 オーディオ信号符号ィ匕処理関連データがファイルとして記録されている。
[0091] 図 7は、オーディオ信号符号化処理プログラムのオーディオ信号符号化装置 (PC) への導入を示す模式図である。記録媒体に記録されたオーディオ信号符号ィ匕処理 プログラムおよびその関連データは、図 7に示したようにメディアドライブ 105を通じて 本装置にロードすることができる。この記録媒体 110をメディアドライブ 105にセットす ると、 OS及び基本 IZOプログラムの制御のもとにオーディオ信号符号ィ匕処理プログ ラムおよびその関連データが記録媒体 110から読み出され、外部記憶部 104に格納 される。その後、再起動時にこれらの情報カ モリ 101にロードされて動作可能となる
[0092] 図 8は、本実施形態におけるオーディオ信号符号ィ匕処理プログラム力メモリ 101に ロードされ実行可能となった状態のメモリマップを示す図である。図示のように、メモリ 101のワークエリアには例えば、基準ビットレート、基準サンプリングレート、ビットレー ト、サンプリングレート、が格納されている。このワークエリアにはさらに、割当ビット上 限値、平均割当ビット、 PEビット、使用ビット、スケールファクタビット、スペクトル割当 ビット、量子化前スペクトル聴覚情報量、量子化後スペクトル予測情報量が格納され ている。さらに、許容誤差エネルギー、スペクトルバッファ、量子化スペクトル、入力信 号バッファ、スケールファクタ、量子化ステップ、ブロックタイプ、 SMR、 PE、リザーブビ ット量も格納されている。
[0093] 図 9は、本実施形態におけるオーディオ信号符号化装置における入力信号バッフ ァのー構成例を示す図である。図示の構成において、バッファサイズは 1024 X 3サン プルであり、説明の便宜上 1024サンプル毎に縦線で区切っている。入力信号は右か ら 1フレーム分の 1024サンプルずつ入力されて、左から逐次処理される。なお、図示 の構成は 1チャネル分の入力信号バッファを模式的に示したものであり、本実施形態 では入力信号のチャネル分だけ同様なバッファが用意される。
[0094] 以下、本実施形態において CPU100で実行されるオーディオ信号符号化処理を フローチャートを用いて説明する。
[0095] 図 2は、本実施形態におけるオーディオ信号符号ィ匕処理のフローチャートである。
このフローチャートに対応するプログラムはオーディオ信号符号ィ匕処理プログラムに 含まれ、上記のとおりメモリ 101にロードされ CPU100によって実行される。
[0096] まず、ステップ S1は、符号ィ匕する入力オーディオ信号をユーザが端末 103を用い て指定する処理である。本実施形態において、符号化するオーディオ信号は、外部 記憶 104に格納されて 、るオーディオ PCMファイルでも良いし、マイク 106で捉えた リアルタイムの音声信号をアナログ ·デジタル変換した信号でも良い。この処理を終え ると、ステップ S2へ進む。
[0097] ステップ S2は、符号ィ匕する入力オーディオ信号が終了した力どうかを判定する処 理である。入力信号が終了している場合は、ステップ S 11へ処理が進む。未終了の
場合は、ステップ S3へ処理が進む。
[0098] ステップ S3は、図 9に示した入力信号バッファにおいて、右から 2フレーム分、すな わち 2048サンプルの時間信号を 1フレーム分左にシフトするとともに、新たに 1フレー ム分、すなわち 1024サンプルを右側に読み込む入力信号シフト処理である。この処 理は入力信号に含まれる全てのチャネルに対して行われる。処理を終えると、ステツ プ S4へ処理が進む。
[0099] ステップ S4は、入力信号バッファに格納されて ヽる時間信号を分析し、現行フレー ムの聴覚心理演算を行う処理である。この演算の結果、現行フレームのブロックタイ プと、聴覚エントロピー(PE)と、 SFBごとの SMR値が算出され、メモリ 101上のワークェ リアに格納される。ここで、 SMR値は、現行フレームのブロック長が短い場合はショート ブロック時の 8組力 若しくは、ブロックタイプがそれ以外の場合はロングブロック時の 1組が算出される。このような聴覚演算は当分野において公知であるため、詳細な説 明は行わない。処理を終えると、ステップ S 5へ処理が進む。
[0100] ステップ S5では、ステップ S4で得られたブロックタイプに従って、現行フレームの時 間信号、すなわち、図 10の現行フレーム先頭ポインタから右に 2048サンプル(2フレ ーム分)の信号に対して窓掛け後、時間周波数変換を行う。この結果、 MPEG-2 AA Cの場合、変換ブロック長が短いときは、 128の周波数成分に分割されたスペクトルの 組が 8組得られる。それ以外のブロック長が長いブロックタイプの場合は、 1024の周 波数成分に分割されたスペクトルの組が 1組得られる。双方の場合とも、算出された 計 1024本のスペクトルは、メモリ 101上のワークエリアにあるスペクトルバッファに格納 される。処理を終えると、ステップ S6に処理が進む。
[0101] ステップ S6は、ステップ S5で得られた周波数スペクトルとステップ S4で得られた SF B毎の SMRから許容誤差エネルギーを計算したのち、これを利用して各 SFB毎のスケ ールファクタを算出する処理である。例えば、 MPEG-2 AACの場合は前述の実施形 態 1の式(2)によってスケールファクタを算出する。この処理において算出した SFB毎 の許容誤差エネルギーとスケールファクタはメモリ 101上のワークエリア上に格納され る。処理を終えると、ステップ S7へ進む。
[0102] ステップ S7は、量子化前のスペクトルが持つ聴覚情報量と量子化後のスペクトルが
持つ情報量との差分力 量子化ステップを計算する処理である。この処理の詳細は 図 3を用いて後述する。処理を終えると、ステップ S8へ進む。
[0103] ステップ S8は、ステップ S6で求めたスケールファクタとステップ S7で求めた量子化 ステップに従って、 1024本の周波数スペクトルを量子化して使用ビットを計算する。こ の使用ビットがメモリ 101上のワークエリアに格納されている割当ビットを超えた場合 のみ、量子化ステップの増加と再量子化を行う。この処理の詳細は図 4を用いて後述 する。処理を終えると、ステップ S9へ処理が進む。
[0104] ステップ S9は、ステップ S8で算出された量子化スペクトルと、スケールファクタを、 符号ィ匕方式によって定められたフォーマットに従って整形し、ビットストリームとして出 力する処理である。本実施形態において、この処理によって出力されるビットストリー ムは、外部記憶装置 104に格納されても良いし、あるいは、通信インタフェース 109 を介して通信網 108に繋がって 、る外部機器に出力されても良 、。処理を終えると、 ステップ S 10へ処理が進む。
[0105] ステップ S10は、ステップ S9で出力されたビットストリームに使用されたビット量と符 号ィ匕ビットレートから、メモリ 101上に格納されている蓄積ビット数の補正を行う処理で ある。処理を終えると、処理はステップ S2へと戻る。
[0106] ステップ S11は、聴覚心理演算や直交変換などで生じる遅延によってまだ出力され て!ヽな 、量子ィ匕スペクトル力 Sメモリ上に残つているため、それらをビットストリームに整 形して出力する処理である。処理を終えると、オーディオ信号符号化処理を終了する
[0107] 図 3は、上記したステップ S7の量子化ステップ予測処理の詳細を示すフローチヤ一 トである。
[0108] まず、ステップ S101は、メモリ 101上のワークエリアに保存されているスケールファ クタを符号ィ匕形式によって定められているフォーマットに従って符号ィ匕したときに使 用するビット数を算出する処理である。算出されたビット数は、メモリ 101上のワークェ リアに保存される。処理を終えると、ステップ S 102へ進む。
[0109] ステップ S102は、フレームに割り当てられたビット数からメモリ 101上に格納された スケールファクタビット数を引いて、スペクトル符号に割り当てられるビット数を算出す
る処理である。算出されたスペクトル割当ビット数はメモリ 101上のワークエリアに保 存される。処理を終えると、ステップ S103へ進む。
[0110] ステップ S103は、メモリ 101上のスペクトル割当ビット数を用いて、量子化スぺタト ル総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによ つて求めた近似式によって行う。例えば、この近似式を F(x)として、スペクトル割当ビッ トを spectrum_bitsとすると、量子化後スペクトル予測総量は以下の式によって求めるこ とがでさる。
[0111]
Xq ^ F {spectrum _bits) (4)
[0112] 算出された量子化スペクトル予測総量はメモリ 101上のワークエリアに格納される。
処理を終えると、ステップ S 104へ進む。
[0113] ステップ S 104は、量子化前のスペクトルが持つ聴覚情報量を算出する処理である 。量子化前のスペクトルの聴覚情報量は、各スペクトル成分に、そのスペクトル成分 が含まれる SFBのスケールファクタによる量子化粗さの減少分を積算し、 1フレーム分 の総量を求め、その対数を算出することによって求められる。例えば、 MPEG- 2 AAC の場合、量子化前のスペクトルが持つ聴覚情報量は以下の式を計算することによつ て求めることができる。
[0115] 算出された量子化前スペクトルの聴覚情報量はメモリ 101上のワークエリアに保存 される。処理を終えると、ステップ S105へ進む。
[0116] ステップ S105は、ステップ S103で求めた量子化スペクトルの予測総量の対数を計 算し、量子化スペクトルの予測情報量を算出する処理である。例えば、 MPEG-2 ΑΑ Cの場合は以下の式を計算することによって算出することができる。
(7)
i
[0118] すなわち、ステップ S103で得られた量子化スペクトル総量の対数を計算することに
よって、量子化スペクトル予測情報量が得られる。この処理によって算出された量子 化後のスペクトル情報量はメモリ 101上のワークエリアに保存される。処理を終えると 、ステップ S 106へ進む。
[0119] ステップ S106では、ステップ S104で求めた量子化前スペクトルの聴覚情報量から 、ステップ S 105で求めた量子化スペクトル予測情報量を減じる。その結果にステップ S107で、量子化粗さの刻み幅によって決定される係数をカゝけ、グローバルゲイン、 すなわち量子ィ匕ステップの予測値が算出される。 MPEG-2 AACの場合は、この予測 値は結局実施形態 1と同じく式 (5)を計算したことになる。
[0121] 算出された量子化ステップ予測値は、メモリ 101上のワークエリアに量子化ステップ として格納される。処理を終えると、量子化ステップ予測処理を終了し、リターンする。
[0122] 図 4は、上記したステップ S8のスペクトル量子化処理を詳細化したフローチャートで ある。
[0123] ステップ S 201は、メモリ 101上に格納されて 、る量子化ステップとスケールファクタ に従って、スペクトルバッファに格納されている 1024本のスペクトル成分を量子化する 処理である。 MPEG-2 AACの場合は、前出の式(1)に従って量子化スペクトルが計 算される。処理を終えると、ステップ S202へ進む。
[0124] ステップ S202は、ステップ S201で計算された量子ィ匕スペクトル全てを符号ィ匕した 時に使用されるビット数を計算する処理である。例えば、 MPEG-2 AACの場合は、量 子化スペクトルは複数個をまとめた上でノヽフマン符号ィ匕されるため、この処理におい てハフマンコード表の探索が行われ、符号化ビット数の総計が計算される。計算され た使用ビット数はメモリ 101上のワークエリアに格納される。処理を終えると、ステップ S203へ進む。
[0125] ステップ S 203は、メモリ 101上のスペクトル割当ビットと使用ビットの大きさを比較す る処理である。この比較の結果、使用ビットが割り当てられたビットよりも大きい場合は 、ステップ S204へ進み、符号量を削減するためにメモリ 101に格納されている量子
ィ匕ステップを増加させる。その後、ステップ S201に戻り再度スペクトルの量子化を行 うが、前述の量子化ステップ予測処理によってほぼ正確な量子化ステップが予測さ れるため、ステップ S204が実際に実行されることは少ない。
[0126] ステップ S203の比較にぉ 、て使用ビットが割り当てられたビットよりも小さ!/、場合は
、スペクトル量子化処理を終了してリターンする。
[0127] 以上説明したように、本実施形態におけるオーディオ信号符号ィ匕処理では、スぺク トル符号に割り当てられたビット数力 量子化後のスペクトルが持つ情報量を予測し、 さらに、量子化前の聴覚情報量との差分がとられる。これによつて量子化ステップを 実際の量子化を行う前にほぼ正確に予測することによって、量子化ステップの調整を 極力避けることが可能になるため、量子化処理に力かる処理量を大幅に削減すること ができる。
[0128] (第 3の実施形態)
固定ビットレートで符号ィ匕するときに、ビットリザーバに蓄積されている蓄積ビットを 入力信号の特性によって各フレームに適宜配分する場合でも、本発明の技術を適用 することが可能である。本実施形態ではこの場合について図面を用いて説明する。
[0129] 図 10は、本実施形態におけるオーディオ信号符号化装置の一構成例を示す図で ある。第 1の実施形態に係る図 1と同じぐ図中の太線はデータの流れを、細線は制 御信号の流れを示す。また、図 10においては、図 1と同様の機能を持つ構成要素に は同じ番号を振っている。
[0130] 図示の構成において、 1はフレーム分割器、 2は聴覚心理演算器、 3はフィルタバン ク、 4はスケールファクタ計算器、 7は量子化ステップ計算器、 8はスペクトル量子化器
、 9はビット整形器である。
[0131] 11は PEビット計算器であり、フレームの聴覚エントロピー (PE)に基づいてフレームの 予測発生符号量である PEビットを計算する。
[0132] 12はスペクトル割当ビット計算器であり、ビットレートや PEビット、蓄積ビット量、スケ ールファクタなどに基づ 、てスペクトル符号に割り当てられるビット数を計算する。
[0133] 13はビットリザーバであり、符号ィ匕方式に従って規定されている蓄積ビット量を逐次 管理する。
[0134] 14は量子化スペクトル総量予測器であり、条件により、フレーム割当ビット、もしくは
PEビットに基づいて量子化スペクトル総量を予測する。
[0135] 以上のような構成のオーディオ信号符号ィヒ装置における処理動作を以下に説明す る。なお、本実施形態においても説明の便宜のために符号ィ匕方式として MPEG-2 A
ACを例にとって説明するが、非線形量子化を行うその他の符号ィ匕方式においても全 く同様な方法で実現可能である。
[0136] まず、処理に先立ち、各部の初期化が行われる。初期化によって、量子化ステップ と全てのスケールファクタは 0にセットされる。
[0137] オーディオ入力信号はフレーム分割器 1によってフレーム単位に分割され、聴覚心 理演算器 2とフィルタバンク 3に出力される。
[0138] 聴覚心理演算器 2では、フレーム分割器 1から出力された入力信号に対して適宜 聴覚マスキング分析を行い、ブロックタイプと SFB毎の SMR、 PEを出力する。
[0139] フィルタバンク 3はフレーム分割器 1から出力された 1フレームとフィルタバンク 3に保 持されている先行 1フレームとの 2フレーム分の入力信号を聴覚心理分析器 2から出 力されたブロックタイプに従って時間周波数変換を行 ヽ、周波数スペクトルに変換す る。
[0140] スケールファクタ計算器 4は、フィルタバンク 3から出力される周波数スペクトルと聴 覚心理演算器 2から出力される SFB毎の SMR値に基づ 、て、スケールファクタを実施 形態 1と同様に適宜算出する。
[0141] PEビット計算器 11は聴覚心理演算器 3が出力される PEから、 PEビットを計算する。
すなわち、処理中のフレームの入力信号が持つ聴覚的な情報量を聴覚上完全に符 号ィ匕した場合の予想符号量に変換する。 MPEG-2 AACの場合、 ISO規格書に記載さ れて 、る PEビットの計算式は次のようになる。
[0142] ブロック長がロングのとき: pe一 bits = 0.3 ' PE + 6.0 ' s!PE (8) ブロック長がショートのとき: pe—bits = 0.6 ' PE + 24.0 ' [ΡΕ (9)
[0143] 本実施形態では、この計算式をこのまま用いて、ブロックタイプのブロック長に応じ て PEビットを算出する。
[0144] スペクトル割当ビット計算器 12では、まず、スケールファクタ計算器 4から出力される スケールファクタを符号ィ匕するために必要なビット数を計算する。次に、ビットレートに 基づく 1フレーム.チャネル当りの平均ビット量との差分を求めて平均スペクトル割当 ビットを計算する。
[0145] 次に、この値と PEビット計算器 11が出力する PEビットを比較し、 PEビットが大きい場 合は PEビットをビットリザーバ 13に蓄積されている蓄積ビット量によって決定される最 大値まで割り当てる。 PEビットが小さ 、場合は平均スペクトル割当ビットをそのまま割 り当てる。
[0146] すなわち、本実施形態にぉ 、て、スペクトル割当ビットは具体的には以下の手順で 計算される。
[0147] 1.蓄積ビット使用許容量を蓄積ビット量力も計算する。
ブロック長がロングのとき: 蓄積ビット量の 10%、
ブロック長がショートのとき:蓄積ビット量の 25%、
を蓄積ビット使用許容量とする。これを usable_bitsとする。
[0148] 2.平均スペクトル割当ビット量を average_bitsとすると、スペクトル割当ビット量、 spect rum_bitsは以下の要領で決定される。
pe— bits verage— bits + usable— Dits)のとさ、
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;
[0149] 次に、スペクトル割当ビット計算器 12は、 PEビットが平均スペクトル割当ビット量より も少ない場合は、 PEビットを量子化スペクトル総量予測器 14に出力する。一方、 PEビ ットが平均スペクトル割当ビット以上の場合は上記手順で計算したスペクトル割当ビッ トを量子化スペクトル総量予測器 14に出力する。このとき、どちらのビット数を量子化
スペクトル総量予測器 14に出力したかを示すフラグであるビット選択情報 (以下、単 に「選択情報」という。)を同時に出力する。
[0150] 量子化スペクトル総量予測器 14は、入力された選択情報とビット数に基づいて量 子化スペクトル総量を予測する。この予測計算は、第 1の実施形態で示した方法と同 様に、実験によって求めた近似式によって行うが、本実施形態における量子化スぺク トル総量予測器 14では、この近似式を選択情報によって切り換えて予測計算を行う 。例えば、スペクトル割当ビットによる量子化スペクトル総量の近似式を F(x)、 PEビット による量子化スペクトル総量の近似式を G(x)とすると、スペクトル予測総量は以下の 式で求められる。
[0151] 選択情報力スペクトル割当ビットの選択を示している場合:
> Xq ^ F {spectrum _bits) (4) 選択情報が PEビットの選択を示して 、る場合:
∑„ bit一 rate oase sampling _ rate ハ, , . 、 ,, Λ、 Λ G(pe_bits) (10) f " base _oit _ rate sampling _ rate
[0152] ただし、式(10)において、 bit_rateは処理中の入力信号のビットレート、 sampling_rat eは処理中の入力信号のサンプリングレートである。また、 base_bit_rateは基準ビットレ ート、 base_sampling_rateは基準サンプリングレートである。また、基準ビットレートと基 準サンプリングレートは、 PEビットによる量子化スペクトル総量予測式 G(x)を実験によ つて求めたときの入力信号のビットレートとサンプリングレートである。これは、本実施 形態におけるオーディオ信号符号化装置において予め定められて ヽる値である。
[0153] ここで、本実施形態において上記のような量子化スペクトルの予測方法を取る理由 を以下説明する。
[0154] 本実施形態では、スペクトル割当ビット計算器 12にお 、て PEビットを基準にしたビ ットの割当が行われる。従って、スペクトル割当ビットには通常 PEビットの大きさ、すな わち、処理中のフレームにおける入力信号が持つ聴覚上の発生符号量が反映され る。ところが、固定ビットレート制御において、 PEビットの大きさが平均スペクトル割当 ビットを下回る場合には、スペクトル割当ビットには平均スペクトル割当ビットがそのま
ま割り当てられる。したがって、この場合はスペクトル割当ビットには入力信号の聴覚 上の発生符号量が反映されな 、ため、スペクトル割当ビットを用 V、て量子化スぺタト ル総量を予測すると予測誤差が大きくなつてしまう。そこで、この場合には PEビットを 用いて量子化スペクトル総量を予測することで、より正確な量子化スペクトル総量を 予 することができる。
[0155] また、スペクトル割当ビットはビットレートやサンプリングレートの制約を考慮して計算 されるため、ビットレートやサンプリングレートの変化に追随する特性を持っている。一 方、 PEビットは、サンプリングレートの変化によって元となる PE自体の値は変化するも のの、ビットレートやサンプリングレートが変化しても式(8)、 (9)自体は変化しない。 そこで、 PEビットによる予測を行う場合は式(10)に示すように、基準となるビットレート やサンプリングレートからの変化率の影響を考慮した予測を行っている。
[0156] このようにすることで、一つの近似式 G(x)をあらゆるビットレートやサンプリングレート に適用することが可能になる。
[0157] 図 10の説明に戻る。量子化ステップ計算器 7は第 1の実施形態と同様に、フィルタ バンク 3が出力する周波数スペクトルにスケールファクタ計算器 4から出力されたスケ ールファクタによって重み付けをした値の総量を計算する。量子化ステップ計算器 7 はさらにその対数を計算して量子化前のスぺ外ルが持つ聴覚情報量を算出する。 次に、量子ィ匕スペクトル総量予測器 14によって予測された量子ィ匕スペクトル総量の 対数を計算して量子化後のスペクトル情報量を算出する。さらに、この差分を取り、量 子化粗さの刻み幅によって決定される係数を掛けることによって量子化ステップを計 算する。具体的には、前出の式 (5)の計算を行う。
[0158] 第 1の実施形態と同様に、スペクトル量子化器 8はスケールファクタ計算器 4が出力 するスケールファクタと量子化ステップ計算器 7が出力する量子化ステップを用いて フィルタバンク 3が出力する周波数スペクトルを量子化し、必要ビット数をカウントする 。この必要ビット数は、スペクトル割当ビット計算器 12から出力されるスペクトル割当ビ ットと比較される。ここで、必要ビット数がスペクトル割当ビットを超えてしまった場合は 、量子化ステップを適宜増加して再度量子化を行う。ただし、前述したように量子化ス テツプ計算器 7による量子化ステップの予測値はほぼ正確であるため、この再量子化
が行われることは少ない。
[0159] スペクトル量子ィ匕器 8によって最終的に出力される量子ィ匕スペクトルとスケールファ クタ、量子化ステップは、ビット整形器 9によってエントロピー符号ィ匕後、符号化方式 が定めるビットストリーム形式に適宜整形され、出力される。
[0160] このとき、ビットリザーバ 13に実際に符号に使用したビット数が通知され、ビットリザ ーバ 13はフレームビットとの差分を計算し、増減分を蓄積ビット量に加減することで 適宜蓄積ビット量を調整する。
[0161] 以上説明したように、本実施形態のように固定ビットレートにおいて、入力信号に応 じてビットリザーバに蓄積されている蓄積ビットを適宜フレームに割り当てる場合にお いても、量子化前に正確に量子化スペクトル総量を予測する。これによつて、量子化 前に正確に量子化ステップを決定することが可能になり、スペクトル量子化とビット計 算の繰り返しを避けて、効率的に量子化を行うことができる。
[0162] (第 4の実施形態)
第 3の実施形態で説明したオーディオ信号符号化装置もまた、 PC等の汎用的なコ ンピュータ上で動作するソフトウェアプログラムとして実施することが可能である。以下 、この場合について図面を用いて説明する。
[0163] 本実施形態におけるオーディオ信号符号化装置の構成およびオーディオ信号符 号化処理プログラムの処理内容等につ!ヽては、第 2の実施形態と概ね共通して 、る 。したがって本実施形態では、第 2の実施形態で説明した図 5、図 2、図 6〜9を援用 することとし、それらの詳細な説明は省略する。第 2の実施形態と相違する点は、ステ ップ S7の量子化ステップ予測処理の内容にある。そこで以下では、このステップ S7 の量子化ステップ予測処理の説明のみを行う。
[0164] 図 11は、本実施形態におけるステップ S7の量子化ステップ予測処理の詳細を示 すフローチャートである。
[0165] まず、ステップ S301は、ステップ S4の聴覚心理演算処理によって得られたメモリ 1 01上の PEとブロックタイプより、 PEビットを算出する処理である。具体的には、第 3の 実施形態と同様にブロックタイプによって、前出の式(9)もしくは式(10)を選択して P Eビットを算出する。算出した PEビットはメモリ 101上のワークエリアに格納される。処
理を終えるとステップ S 302へ進む。
[0166] ステップ S302は、メモリ 101上のワークエリアに保存されているスケールファクタを 符号化方式規定のフォーマットに符号化したときに使用するビット数を算出する処理 である。この処理によって算出されたスケールファクタビット数は、メモリ 101上のヮー クエリアに保存される。処理を終えると、ステップ S303へ進む。
[0167] ステップ S303は、フレームに割り当てられる平均ビット数力もメモリ 101上に格納さ れたスケールファクタビット数を引いて、スペクトル符号に割り当てられるビット数、す なわち平均スペクトル割当ビット数 (平均割当ビット)を算出する処理である。算出され た平均割当ビット数はメモリ 101上のワークエリアに保存される。処理を終えると、ステ ップ S 304へ進む。
[0168] ステップ S304は、メモリ 101上の平均割当ビット数と PEビット数の大きさを比較する 処理である。この比較の結果、 PEビット数の方が大きい場合はステップ S305へ進む 。それ以外の場合は、ステップ S307へ進む。
[0169] ステップ S305は、メモリ 101上の PEビットと平均割当ビット、蓄積ビット量よりスぺタト ル割当ビットを算出する処理である。この処理の詳細は図 12を用いて後述する。処 理を終えると、ステップ S 306へ進む。
[0170] ステップ S306は、メモリ 101上のスペクトル割当ビット数を用いて、量子化スぺタト ル総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによ つて求めた近似式によって行う。例えば、この近似式を F(x)として、スペクトル割当ビッ トを spectrum_bitsとすると、量子化後スペクトル予測総量は第 2の実施形態と同様に 式 (4)によって求めることができる。
[0171] » ^ , . 、
> λ? » ^ {spectrum _bits) (4)
[0172] 算出された量子化スペクトル予測総量はメモリ 101上のワークエリアに格納される。
処理を終えると、ステップ S 309へ進む。
[0173] 一方のステップ S307は、メモリ 101上の平均割当ビットをスペクトル割当ビットとして メモリ 101に格納する処理である。すなわち、平均割当ビットの値をスペクトル割当ビ ットにコピーする。処理を終えると、ステップ S308へ進む。
[0174] ステップ S308は、メモリ 101上の PEビット数を用いて、量子化スペクトル総量の予 測計算を行う処理である。この予測計算も、予め実験を実施することによって求めた 近似式によって行う。この近似式を G(x)として、 PEビットを pe_bitsとすると、量子化後ス ベクトル予測総量は第 3の実施形態と同様に式(10)によって求めることができる。
[0175] y ^ bit一 rate ^ base _ sampling _ rate ^ ^
"7* base—bit—rate sampling _ rate
[0176] 算出された量子化スペクトル予測総量はメモリ 101上のワークエリアに格納される。
処理を終えると、ステップ S 309へ進む。
[0177] ステップ S309は、量子化前のスペクトルが持つ聴覚情報量を算出する処理である 。第 2の実施形態と同様に、量子化前スペクトルの聴覚情報量は、各スペクトル成分 に、そのスペクトル成分が含まれる SFBのスケールファクタによる量子化粗さの減少分 を積算し、 1フレーム分の総量を求め、その対数を算出することによって求められる。 例えば、 MPEG-2 AACの場合、量子化前のスペクトルが持つ聴覚情報量は以下の 式を計算することによって求めることができる。
[0179] 算出された量子化前スペクトルの聴覚情報量はメモリ 101上のワークエリアに保存 される。処理を終えると、ステップ S310へ進む。
[0180] ステップ S310は、ステップ S306もしくはステップ S308で求めた量子化スペクトル の予測総量の対数を計算し、量子化スペクトルの予測情報量を算出する処理である 。例えば、 MPEG-2 AACの場合は以下の式を計算することによって算出することがで きる。
[0181]
log (7)
[0182] この処理によって算出された量子化後のスペクトル予測情報量はメモリ 101上のヮ ークエリアに保存される。処理を終えると、ステップ S311へ進む。
[0183] ステップ S311では、ステップ S309で求めた量子化前スペクトルの聴覚情報量から
、ステップ S310で求めた量子化スペクトル予測情報量を引く。さらに、その結果に量 子化粗さの刻み幅によって決定される係数を掛け、グローバルゲイン、すなわち量子 ィ匕ステップの予測値が算出される。 MPEG-2 AACの場合は、この予測値は結局第 1 の実施形態と同じく式 (5)を計算したことになる。
[0185] 算出された量子化ステップ予測値は、メモリ 101上のワークエリアに量子化ステップ として格納される。処理を終えると、量子化ステップ予測処理を終了し、リターンする。
[0186] 図 12は、本実施形態におけるステップ S305のスペクトル割当ビット算出処理の詳 細を示すフローチャートである。
[0187] ステップ S401は、このフレームに割り当てることができる蓄積ビット数を、メモリ 101 上の蓄積ビット量とブロックタイプに従って計算し、この値を平均割当ビットに足すこと で、スペクトル割当ビットの上限値を計算する処理である。本実施形態において、蓄 積ビット数は第 3の実施形態と同じく以下の要領で決定される。
[0188] ブロック長がロングのとき: 蓄積ビット量の 10%、
ブロック長がショートのとき:蓄積ビット量の 25 %
[0189] 上記手順で求められた値をメモリ 101上の平均割当ビットにカ卩えることで、スぺタト ル割当ビット上限値が得られる。
[0190] この計算によって得られたスペクトル割当ビット上限値はメモリ 101に格納される。
処理を終えると、ステップ S402へ進む。
[0191] ステップ S402は、メモリ 101上の PEビットとスペクトル割当ビット上限値を比較する 処理である。この比較の結果、 PEビット数がスペクトル割当ビット上限値よりも少ない 場合はステップ S403へ進む。そうでない場合は、ステップ S404へ進む。
[0192] ステップ S403は、メモリ 101上の PEビットをスペクトル割当ビットとして格納する処 理である。すなわち、 PEビットの値をスペクトル割当ビットにコピーする。処理を終え ると、スペクトル割当ビット算出処理を終えて、リターンする。
[0193] ステップ S404は、メモリ 101上のスペクトル割当ビット上限値をスペクトル割当ビット
として格納する処理である。すなわち、スペクトル割当ビット上限値をスペクトル割当 ビットにコピーする。処理を終えると、スペクトル割当ビット算出処理を終えて、リタ一 ンする。
[0194] 本処理では、上述したように PEビットによって割り当てられるビット数に上限値を設 定することによって、蓄積ビットが枯渴してビットリザーバが破綻することを防止する効 果がある。
[0195] 以上説明したように、本実施形態によれば、固定ビットレートにおいて、入力信号の 特性に応じてビットリザーバに蓄積されている蓄積ビットを適宜フレームに割り当てる 場合においても、量子化前に正確に量子化スペクトル総量を予測する。これによつて 、量子化前に正確に量子化ステップを決定することが可能になり、スペクトル量子化 とビット計算の繰り返しを避けて、効率的に量子化を行うことができる。
[0196] 以上説明したように、本発明のオーディオ信号符号化処理では、フレームに割り当 てられたビット量から、量子化後のスペクトル総量を予測する。これにより、量子化前 後のスペクトル全体が持つ情報量の差分が計算され、スペクトル量子化の前にフレ ーム全体の量子ィ匕ステップがほぼ正確に予測される。したがって、ほぼ一回のスぺク トル量子化処理を行うだけで量子化処理を終了することが可能になる。これにより、 従来の技術と同等の符号化品質を保ちながら、従来の技術に比べて量子化処理に 力かる処理量を大幅に削減することができる。
[0197] (第 5の実施形態)
以下では、聴覚心理演算器 2を省 、た構成のオーディオ信号符号化装置の実施 形態を説明する。図 13は、本実施形態におけるオーディオ信号符号ィ匕装置の構成 を示す図である。なお、上述の実施形態における構成要素と同様の構成要素には共 通の参照符号が付されて 、る。
[0198] 図示の構成において、フレーム分割器 1はオーディオ入力信号を処理単位である フレームに分割する。フレーム単位に分割された入力信号はフィルタバンク 3へ送出 される。フィルタバンク 3は、フレーム分割器 1から入力された時間信号に対して、ウイ ンドウ掛けを行った後、所定のブロック長で時間 周波数変換を行い、周波数スぺク トルに変換する。
[0199] 量子化スペクトル情報量計算器 15は、フィルタバンク 3から出力された各周波数ス ベクトルの総計をとり、これに基づいて量子化前の周波数スペクトルが持つ情報量を 計算する。量子化ステップ計算器 7は、量子化スペクトル情報量計算器 15で求めた 量子化前のスペクトルが持つ情報量から、後述の量子化スペクトル情報量予測器 16 で予測した量子化後のスペクトル情報量を減じることによって量子化ステップを求め る。スペクトル量子化器 8は、各周波数スペクトルを量子化する。ビット整形器 9は、ス ケールファクタと量子化スペクトルを適宜規定のフォーマットに整形してビットストリー ムを作成し、出力する。ビットリザーバ 13は、各符号化規格により規定される余剰ビッ ト(リザーブビット)数を管理する。
[0200] スペクトル割当ビット計算器 12は、ビットリザーバ 13から通知される余剰ビット量とフ レーム平均ビットから量子化スペクトル符号に割り当てられるビット数を計算する。量 子化スペクトル情報量予測器 16は、各フレームに割り当てられる平均ビット数に基づ V、て量子化スペクトル情報量の予測計算を行う。
[0201] 次に、上記構成によるオーディオ信号符号化装置における、オーディオ信号の符 号化動作を説明する。なお、ここでは符号ィ匕方式として MPEG-2 AACを例にとって説 明するが、同様な量子化手法を適用可能なその他の符号ィヒ方式についても全く同 様な方法で実現可能である。
[0202] まず、処理に先立ち、各部の初期化を行う。初期化によって、量子化ステップと全て のスケールファクタの値は 0にセットされる。
[0203] オーディオ PCM信号などのオーディオ入力信号はフレーム分割器 1によってフレー ム単位に分割され、フィルタバンク 2に送出される。 MPEG- 2 AAC LC(Low-Complexi ty)プロファイルの場合、 1フレームは 1024サンプルの PCM信号で構成され、この信号 が送出される。
[0204] フィルタバンク 3では、フレーム分割器 1から送出される 1フレーム分の現入力信号と 、前回の変換時に受け取った先行フレームの入力信号とを合わせて 2フレーム分、す なわち 2048サンプルの時間信号が 1024サンプルの周波数成分に変換される。なお、 本実施形態において、先行フレームの入力信号はフィルタバンク 3内の図示しない バッファに保持されている。フィルタバンク 3は、入力信号の 2048サンプルを 1つのブ
ロックとして、窓掛けを実行後、 MDCTを行い、 1024個の周波数スペクトルを出力する
[0205] スペクトル情報量計算器 15は、フィルタバンク 3から出力された各周波数スペクトル の総計をとり、これに基づいて量子化前の周波数スペクトルが持つ情報量を計算す る。 MPEG-2 AACの場合、量子化前のスペクトル全体が持つ情報量は次式で計算で きる。
[0206] 3
1ο§2 ΛΚΡ ( Ι Ι )
i
[0207] ただし、 xは量子化前のスペクトルを示し、総計をとる iの範囲は 1フレーム分、すな わち 0≤ 1023である。これは、各スペクトルの総計に対して底が 2の対数をとつたも のである。
[0208] 量子化スペクトル情報量予測器 15は、各フレームに割り当てられる平均ビット数に 基づいて量子化スペクトル情報量の予測計算を行う。この計算では、まず、フレーム 平均ビットに基づ ヽて量子化スペクトル総量の予測計算が行われる。本実施形態に おいて、この計算は、従来の量子化器によって量子化した際の、フレームビットと量 子化スペクトル総量との関係を実際に測定し、その結果に基づいて作成した近似式 によって計算する。例えば、この近似式を F(x)として、フレーム平均ビットを average_bit sとすると、量子化スペクトル予測総量は次式によって求めることができる。
[0209]
X q » F {average _ bits) d z)
1
[0210] ただし、 Xは量子化スペクトルであり、総計をとる iの範囲は 1フレーム分、すなわち 0 ≤i≤ 1023である。なお、本実施形態において、フレーム平均ビットはシステム初期化 時にビットレートとサンプリングレートと入力チャネル数とから予め計算されて 、る。こ の計算は当分野において公知であるため、ここでは詳述しない。システム上に保持さ れているフレーム平均ビットは、初期化時に計算された値が符号ィ匕処理中は不変の まま利用される。
[0211] 次に、量子化スペクトル総量を量子化スペクトル情報量に変換する。本実施形態に
おいて、この計算は(12)式で求めた量子化スペクトル総量に対し、底が 2の対数をと ることによって行われる。すなわち、量子化スペクトル情報量は次のように表される。
[0213] 量子化ステップ計算器 7は、スペクトル情報量計算器 15から出力された量子化前ス ベクトルの情報量から、量子化スペクトル情報量予測器 16から出力された量子化ス ベクトル情報量を減じる。その後、その減算結果に、量子化粗さの刻み幅力も得られ る係数を掛けることによって、フレーム全体の量子化粗さである量子化ステップを計 算する。
[0214] 具体的には、 MPEG-2 AACの場合は、量子ィ匕ステップの予測値は次式によって得 られる。
[0216] ただし、 Xは量子化スペクトル、 xは量子化前のスペクトル、 globaLgainはグローバ
Q i
ルゲイン (量子化ステップ)である。また、総計をとる iの範囲は 1フレーム分、すなわち 0≤i≤ 1023である。
[0217] ここで、(14)式における右辺の第 1項は次のとおりである。
[0219] これは、量子化前のスペクトル全体が持つ情報量であり、スペクトル情報量計算器 1 5によって(11)式により計算された値である。また、右辺の第 2項は次のとおりである
[0221] これは、量子化後のスペクトルが持つ情報量であり、
器 16によって(13)式により予測された値である。
[0222] なお、(14)式は先述のスペクトル量子化式(1)を適宜変形し、スケールファクタ seal efacに一律に 0を代入することによって得ることができる。
[0223] スペクトル割当ビット計算器 12は、ビットリザーバ 13によって管理されている現在の 余剰ビット量をビットリザーバ 13から通知され、例えばそのうちの 2割をフレーム平均 ビットに加えてこれを割当ビットとし、スペクトル量子化器 8に通知する。
[0224] スペクトル量子化器 8は量子化ステップ計算器 7が出力した量子化ステップに従つ て、 1024本の周波数スペクトルを量子化する。例えば、 MPEG-2 AACの場合では(1 )式によって量子化スペクトルを算出し、フレーム全体で消費されるビット数をカウント する。
[0225] ここで、使用ビット数力スペクトル割当ビット計算器 12から通知された割当ビット数を 超えてしまった場合には、使用ビット数がスペクトル割当ビット数に収まるまで量子化 ステップを増加して再度スペクトル量子化を行う。し力しながら、量子化ステップ計算 器 7の計算が正確であり、かつ、量子化ステップの予測計算が行われた時のビット量 に加えて、余剰ビット量の一部が割当ビットに加算されている。このため、多くの場合 、 1回の量子化スぺ外ル計算とビット計算が行われるだけで量子化が完了する。
[0226] また、量子化ステップ計算器 7で計算された量子化ステップでスペクトル量子化した 場合に使用ビット量が足りなくなるようなフレームは、必然的に情報量が元々平均的 なフレームよりも多いフレームである。そのため、余剰ビットの一部を割り当てビットに 加算し、この値を基準にしてスペクトル量子化処理を行うことによって、このようなフレ 一ムには自動的により多くのビットが割り当てられることになる。
[0227] 各 SFBのスケールファクタと量子化スペクトルはビット整形器 9によって定められた書 式に従ってビットストリームに整形されて、出力される。
[0228] 最後に、ビット整形器 9は実際に使用したビット量をビットリザーバ 13に通知する。ビ ットリザーバ 13はビット整形器 9から通知された使用ビット量とフレーム平均ビット量か ら実際に使用された余剰ビット量を計算し、リザーブビットを適宜加減する。
[0229] 以上説明した本実施形態におけるオーディオ信号符号化装置は、処理負荷の重 い聴覚心理分析を一切行わない。しかも、フレームに割り当てられたビット量力 量 子化後のスペクトル情報量を予測し、これを用いて量子化前後のスペクトル全体が持
つ情報量の差分を計算することによって、スペクトル量子化の前に量子化ステップを ほぼ正確に予測する。このため、量子化ステップの調整のための繰り返しを行うことが 減るため、迅速に量子化処理を終了することができる。よって、符号ィ匕処理にかかる 演算量を大幅に削減することができる。
[0230] また、本実施形態におけるオーディオ信号符号化装置は、フレーム平均ビット量に 基づ 、て量子化ステップを予測しておき、余剰ビット量の一部を一律に足してから実 際のスペクトル量子化を行う。これにより、多少の予測誤差が生じても量子化処理が 1 回の処理で済むとともに、元々の情報量が多いフレームに自動的にリザーブビットが 割当てられることになるため、聴覚心理分析を行わないことによる音質劣化を最小限 に留めることができる。
[0231] (第 6の実施形態)
なお、上述の第 5の実施形態は、第 2の実施形態と同様、パーソナルコンピュータ( PC)等の汎用的な計算機上で動作するソフトウェアプログラムにより実現することも可 能である。
[0232] 本実施形態におけるオーディオ信号符号化装置の構成は、第 2の実施形態と同様 であるため、ここでは図 5、図 6を援用する。
[0233] 図 17は、本実施形態におけるオーディオ信号符号ィ匕処理プログラム力メモリ 101 にロードされ実行可能となった状態のメモリマップを示す図である。図示のように、メ モリ 101のワークエリアには例えば、量子化前スペクトル聴覚情報量、量子化後スぺ タトル予測情報量、スペクトル割当ビット、スペクトルバッファ、量子化スペクトル、入力 信号バッファが格納される。この他に、使用ビット、量子化ステップ、ビットレート、サン プリングレート、平均割当ビット、リザーブビット量も格納されている。
[0234] 図 18は、本実施形態におけるオーディオ信号符号化装置における入力信号バッフ ァのー構成例を示す図である。図示の構成において、バッファサイズは 1024 X 2サン プルであり、説明の便宜上 1024サンプル毎に縦線で区切っている。入力信号は 1フレ ーム分の 1024サンプルずつ右側力 入力されて、左力 逐次処理される。太線の矢 印は、入力信号の流れを示している。なお、図示の構成は 1チャネル分の入力信号 ノ ッファを模式的に示したものであり、本実施形態では入力信号のチャネル分だけ
同様なバッファが用意される。
[0235] 以下、本実施形態において CPU100で実行されるオーディオ信号符号ィ匕処理を フローチャートを用いて説明する。
[0236] 図 14は、本実施形態におけるオーディオ信号符号ィ匕処理のフローチャートである。
このフローチャートに対応するプログラムはオーディオ信号符号ィ匕処理プログラムに 含まれ、上記のとおりメモリ 101にロードされ CPU100によって実行される。
[0237] まず、ステップ S1は、符号ィ匕する入力オーディオ信号をユーザが端末 103を用い て指定する処理である。本実施形態において、符号化するオーディオ信号は、外部 記憶 104に格納されて 、るオーディオ PCMファイルでも良いし、マイク 106で捉えた リアルタイムの音声信号をアナログ ·デジタル変換した信号でも良い。この処理を終え ると、ステップ S2へ進む。
[0238] ステップ S2は、符号ィ匕する入力オーディオ信号が終了した力どうかを判定する処 理である。入力信号が終了している場合は、ステップ S 11へ処理が進む。未終了の 場合は、ステップ S3へ処理が進む。
[0239] ステップ S3は、図 18に示した入力信号バッファにおいて、右から 2フレーム分、す なわち 2048サンプルの時間信号を 1フレーム分左にシフトするとともに、新たに 1フレ ーム分、すなわち 1024サンプルを右側に読み込む入力信号シフト処理である。この 処理は入力信号に含まれる全てのチャネルに対して行われる。処理を終えると、ステ ップ S 5へ処理が進む。
[0240] ステップ S5では、現行フレームの時間信号、すなわち、図 18の入力信号バッファ に格納されている 2048サンプル(2フレーム分)の信号に対して窓掛けを行った後、 時間 周波数変換を行う。この結果、 MPEG-2 AACの場合、 1024の周波数成分に 分割されたスペクトルの組が 1組得られる。なお本実施形態では、ブロックタイプは全 て長いブロック長に設定されている。算出された計 1024本のスペクトルは、メモリ 101 上のワークエリアにあるスペクトルバッファに格納される。このステップ S5を終えると、 処理はステップ S7へと進む。
[0241] ステップ S7は、量子化前のスペクトルが持つ情報量と量子化後のスペクトルが持つ 情報量との差分から量子化ステップを計算する処理である。この処理の詳細は図 15
を用いて後述する。このステップ S7を終えると、処理はステップ S8へと進む。
[0242] ステップ S8では、ステップ S7で求めた量子化ステップに従って、 1024本の周波数 スペクトルを量子化して、使用ビットを計算する。さらに、その使用ビットがメモリ 101 上のワークエリアに格納されている割当ビットを超えた場合のみ、量子化ステップの 増加と再量子化を行う。この処理の詳細は図 16を用いて後述する。このステップ S8 を終えると、処理はステップ S9へと進む。
[0243] ステップ S9は、ステップ S8で算出された量子化スペクトルと、スケールファクタとを、 符号ィ匕方式によって定められたフォーマットに従って整形し、ビットストリームとして出 力する処理である。本実施形態において、この処理によって出力されるビットストリー ムは、外部記憶装置 104に格納されても良いし、あるいは、通信インタフェース 109 を介して通信網 108に繋がっている外部機器に出力されても良い。このステップ S9 を終えると、処理はステップ S 10へと進む。
[0244] ステップ S10は、ステップ S9で出力されたビットストリームに使用されたビット量とフ レーム平均ビットから、メモリ 101上に格納されている余剰ビットの補正を行う処理で ある。このステップ S10を終えると、処理はステップ S2へと戻る。
[0245] ステップ S11は、直交変換などで生じる遅延によってまだ出力されていない量子化 スペクトルカ モリ 101上に残っているため、それらをビットストリームに整形して出力 する処理である。このステップ S 11を終えると、オーディオ信号符号化処理は終了す る。
[0246] 図 15は、上記したステップ S7の量子化ステップ予測処理の詳細を示すフローチヤ ートである。
[0247] ステップ S 100は、量子化前のスペクトルが持つ情報量を算出する処理である。量 子化前のスペクトル情報量は、各スペクトル成分の総量を求め、その対数を算出する ことによって求められる。例えば、 MPEG-2 AACの場合、量子化前のスペクトル情報 量は次式によって求めることができる。
[0248] 3
[θ^2 λΚΡ (17)
[0249] 算出された量子化前スペクトル情報量はメモリ 101上のワークエリアに保存される。
このステップ S100を終えると、処理はステップ S 103へ進む。
[0250] ステップ S103は、メモリ 101上のフレーム平均ビット数を用いて、量子化スペクトル 総量の予測計算を行う処理である。この予測計算は、予め実験を実施することによつ て求めた近似式によって行う。例えば、この近似式を F(x)として、フレーム平均ビットを average_bitsとすると、量子化後スペクトル予測総量は次式によって求めることができ る。
[0252] 算出された量子化スペクトル予測総量はメモリ 101上のワークエリアに格納される。
このステップ S103を終えると、処理はステップ S 105へと進む。
[0253] ステップ S105は、ステップ S103で求めた量子化スペクトル予測総量の対数を計算 し、量子化スペクトル予測情報量を算出する処理である。例えば、 MPEG-2 AACの 場合は次式によって算出することができる。
[0255] この処理によって算出された量子化後のスペクトル情報量はメモリ 101上のワーク エリアに保存される。このステップ S105を終えると、処理はステップ S 108へと進む。
[0256] ステップ S108では、ステップ S100で求めた量子化前スペクトル情報量から、ステツ プ S105で求めた量子化スペクトル予測情報量を減じる処理を行う。次に、ステップ S 109で、ステップ S108の減算結果に量子化粗さの刻み幅によって決定される係数を 乗じ、グローバルゲイン、すなわち量子化ステップの予測値を算出する。 MPEG-2 A ACの場合は、この予測値は結局第 1の実施形態と同じく式 (5)を計算したことになる
[0258] 算出された量子化ステップ予測値は、メモリ 101上のワークエリアに量子化ステップ
として格納される。以上でこの量子化ステップ予測処理を終了し、リターンする。
[0259] 図 4は、上記したステップ S8のスペクトル量子化処理の詳細を示すフローチャート である。
[0260] ステップ S200は、メモリ 101上に格納されているフレーム平均ビットに、余剰ビット 量の一部を加算して、スペクトル割当ビットを計算する処理である。例えば、本実施形 態では、余剰ビット量の 2割を一律にフレーム平均ビットに加算してスペクトル割当ビ ットとする。計算されたスペクトル割当ビットはメモリ 101上のワークエリアに格納される 。このステップ S200を終えると、処理はステップ S201へ進む。
[0261] ステップ S201は、メモリ 101上に格納されている量子化ステップに従って、スぺタト ルバッファに格納されている 1024本のスペクトル成分を量子化する処理である。 MPE G-2 AACの場合は、前出の(1)式に従って量子化スペクトルが計算される。このステ ップ S 201を終えると、処理はステップ S 202へ進む。
[0262] ステップ S202は、ステップ S202で計算された量子化スペクトル全てを符号化した 時に使用されるビット数を計算する処理である。例えば、 MPEG-2 AACの場合は、量 子化スペクトルは複数個をまとめた上でノヽフマン符号ィ匕されるため、この処理におい てハフマンコード表の探索が行われ、符号化ビット数の総計が計算される。計算され た使用ビット数はメモリ 101上のワークエリアに格納される。このステップ S202を終え ると、処理はステップ S203へ進む。
[0263] ステップ S203は、メモリ 101上のスペクトル割当ビットと使用ビットとの大きさを比較 する処理である。この比較の結果、使用ビットが割り当てられたビットよりも大きい場合 は、ステップ S 204へ進み、符号量を削減するためにメモリ 101に格納されている量 子化ステップを増加した後、ステップ S201に戻り再度スペクトルの量子化を行う。た だし、図 15に示した前述の量子化ステップ予測処理 (ステップ S 7)によってほぼ正確 な量子化ステップが予測されており、かつ、フレーム平均ビットに基づいて量子化ス テツプの予測が行われている。これに対し、ステップ S203では、それに余剰ビットの 一部をカ卩えたスペクトル割当ビットを基準にして符号量の制御を行って 、るため、ス テツプ S204が実際に実行されることは極めて少ないであろう。
[0264] また、予測した量子化ステップで量子化した結果、使用したビットがフレーム平均ビ
ットを超えてしまう場合も、余剰ビットの追加分を超えなければ 1回のスペクトル量子 化で量子化が終了することになる。かつ、このようなフレームは元々情報量が多いフ レームであり、結果的に情報量が多いフレームに自動的により多くのビットが割当てら れること〖こなる。
[0265] ステップ S203の比較にぉ 、て使用ビットが割り当てられたビットよりも小さ!/、場合は 、このスペクトル量子化処理を終了してリターンする。
[0266] 以上説明した本実施形態におけるオーディオ信号符号化処理は、聴覚心理分析 処理を一切省いたものである。そして、フレーム平均ビットから量子化後のスペクトル が持つ情報量を予測し、さらに、量子化前のスペクトル情報量との差分をとることによ つて量子化ステップを実際の量子化を行う前にほぼ正確に予測する。これによつて、 聴覚心理演算を行わなくても、量子化ステップの調整を極力避けることが可能になり 、符号ィ匕処理全体に力かる処理量を大幅に削減することができる。
[0267] また、本実施形態におけるオーディオ信号符号化装置は、フレーム平均ビット量に 基づ 、て量子化ステップを予測しておき、リザーブビット量の一部を一律に足してか ら実際のスペクトル量子化を行う。これにより、多少の予測誤差が生じても量子化処 理が 1回の処理で済むとともに、元々の情報量が多いフレームに自動的にリザーブビ ットが割り当てられることになるため、聴覚心理分析を行わないことによる音質劣化を 最小限に留めることができる。
[0268] (他の実施形態)
本発明はその要旨を逸脱しない範囲で種々変形して実施することができる。
[0269] たとえば、上述の実施形態ではブロックスイッチングを全く行って 、な 、が、聴覚分 析を行わず、比較的簡易に入力信号の過渡状態を検知して、ブロックスイッチングを 行うように構成された装置にも、本発明を同様に適用することが可能である。
[0270] また、本発明は、複数の機器カゝら構成されるシステムに適用してもよいし、また、一 つの機器力もなる装置に適用してもよい。
[0271] なお、本発明は、前述した実施形態の各機能を実現するプログラムを、システムま たは装置に直接または遠隔力 供給し、そのシステムまたは装置に含まれるコンビュ ータがその供給されたプログラムコードを読み出して実行することによつても達成され
る。
[0272] 従って、本発明の機能'処理をコンピュータで実現するために、そのコンピュータに インストールされるプログラムコード自体も本発明を実現するものである。つまり、上記 機能'処理を実現するためのコンピュータプログラム自体も本発明の一つである。
[0273] その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより 実行されるプログラム、 OSに供給するスクリプトデータ等、プログラムの形態を問わな い。
[0274] プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ノヽ ードディスク、光ディスク、光磁気ディスク、 MO、 CD-ROM, CD-R, CD— RWな どがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、 ROM, D VD (DVD-ROM, DVD— R)などもある。
[0275] また、プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホ ームページからダウンロードしてもよい。すなわち、ホームページから本発明のコンビ ユータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルを ハードディスク等の記録媒体にダウンロードしてもよい。また、本発明のプログラムを 構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホ ームページ力 ダウンロードする形態も考えられる。つまり、本発明の機能'処理をコ ンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロード させる WWWサーバも、本発明の構成要件となる場合がある。
[0276] また、本発明のプログラムを暗号ィ匕して CD— ROM等の記憶媒体に格納してユー ザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを 介してホームページから暗号ィ匕を解く鍵情報をダウンロードさせ、その鍵情報で暗号 化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしても よい。
[0277] また、コンピュータが、読み出したプログラムを実行することによって、前述した実施 形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ 上で稼動している OSなど力 実際の処理の一部または全部を行ってもよい。もちろ ん、この場合も、前述した実施形態の機能が実現され得る。
[0278] さらに、記録媒体力 読み出されたプログラム力 コンピュータに挿入された機能拡 張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて もよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに 備わる CPUなどが実際の処理の一部または全部を行ってもよい。このようにして、前 述した実施形態の機能が実現されることもある。
優先権の主張
[0279] 本願は、 2004年 11月 18日提出の日本国特許出願特願 2004— 335005、および 、 2005年 11月 14日提出の日本国特許出願特願 2005— 328945を基礎として優 先権を主張するものであり、その記載内容の全てを、ここに援用する。