(57)【特許請求の範囲】
【請求項１】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、を備え、
前記共通スケール推定部は、削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とするオーディオ信号符号化装置。
【請求項２】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、を備え、
前記帯域数判定部は、前記複数の帯域の各量子化値が０ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とするオーディオ信号符号化装置。
【請求項３】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とするオーディオ信号符号化方法。
【請求項４】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記複数の帯域の各量子化値が０ではない帯域をカウントして前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
前記共通スケール値を、前記符号化帯域数に従って推定する、
ことを特徴とするオーディオ信号符号化方法。
【請求項５】
前記符号化帯域数の算出は、
前記複数の帯域がまとめられた複数のサブバンドのグループに対して、前記複数のグループの各量子化値が０ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする請求項４に記載のオーディオ信号符号化方法。
【請求項６】
前記符号化帯域数の算出は、
前記各帯域で符号化した符号化量が、前記共通スケール値を増加しても所定の閾値よりも減少しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする請求項４に記載のオーディオ信号符号化方法。
【請求項７】
前記符号化帯域数の算出は、
前記各帯域における前記各量子化値が、前記共通スケール値を増加しても変化しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする請求項４に記載のオーディオ信号符号化方法。
【請求項８】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。
【請求項９】
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記複数の帯域の各量子化値が０ではない帯域をカウントして前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
前記共通スケール値を、前記符号化帯域数に従って推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願で言及する実施例は、オーディオ信号符号化装置およびオーディオ信号符号化方法に関する。
【背景技術】
【０００２】
近年、オーディオ(音声)信号を効率よく圧縮および伝送するために、高能率符号化が行われており、この音声圧縮のアルゴリズムは、例えば、ＭＰＥＧ(Moving Picture Expert Group)で標準規格化されている。
【０００３】
ＭＰＥＧの音声圧縮アルゴリズムとしては、ＭＰＥＧ２ ＡＡＣ(MPEG2 Advanced Audio Codec："ISO/IEC 13818-7 Part 7: Advanced Audio Coding (AAC)")やＭＰ３(MPEG1 Audio Layer 3："ISO/IEC 11172-3 Part 3: Audio")などが知られている。
【０００４】
なお、ＭＰＥＧ２ ＡＡＣは、例えば、日本国のＢＳデジタル放送および地上デジタル波放送のＩＳＤＢ規格やＳＤ−ＡｕｄｉｏのＡＡＣフォーマット、並びに、ヨーロッパ圏のＤＶＢ(Digital Video Broadcasting)などに幅広く適用されている。
【０００５】
ＡＡＣの符号化アルゴリズムの量子化処理において、与えられたビットレート(量子化可能ビット数)を満足させるために、インナーループとアウターループと呼ばれる反復ループ処理が行われる。
【０００６】
インナーループでは、人間の聴覚特性に基づいて量子化誤差がマスクされるように、スケールファクター(scalefactor)を制御して量子化粗さを調整する。また、アウターループでは、全体の符号量制御を行うために、共通スケール(common scale：コモンスケール値)を制御してフレーム全体の量子化粗さを調整する。
【０００７】
ここで、量子化粗さを決めるこれらの二種類の数値(スケールファクターおよびコモンスケール値)は、符号化品質に大きな影響を及ぼすため、インナーループとアウターループの制御を同時に効率よく正確に行うことが求められる。
【０００８】
ところで、従来、オーディオ信号符号化装置およびオーディオ信号符号化方法としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−０６５１６２号公報
【非特許文献】
【００１０】
【非特許文献１】INTERNATIONAL STANDARD, "ISO/IEC 13818-7 Part 7: Advanced Audio Coding (AAC)," Fourth edition, 2006-01-15
【非特許文献２】INTERNATIONAL STANDARD, "ISO/IEC 11172-3 Part 3: Audio," First edition, 1993-08-01
【発明の概要】
【発明が解決しようとする課題】
【００１１】
例えば、ＭＰＥＧ−２ ＡＡＣの規格書(ISO/IEC 13818-7)では、量子化時にスケールファクターと共通スケールを適宜制御する方法が紹介されている。共通スケールを制御するアウターループ(ビット制御ループ)は、例えば、共通スケールを１量子化ステップずつ変化させて量子化ビット数が量子化可能ビット数以下になるまでループを繰り返す。
【００１２】
しかしながら、共通スケールを1刻みずつ変化させてビット制御ループを回した場合、量子化処理を短時間で収束させるのが難しい。このような問題に対して、ビット制御ループは、量子化ビットの実績値から量子化ビット数が目標値以下になる共通スケールを推測する試みがなされているが、様々な要因があるため、短時間で目標とする共通スケールを求めるのは困難となっている。
【課題を解決するための手段】
【００１３】
一実施形態によれば、量子化された周波数スペクトルを符号化するオーディオ信号符号化装置が提供される。前記量子化された周波数スペクトルは、入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化する。
【００１４】
前記オーディオ信号符号化装置は、前記量子化された周波数スペクトルを符号化する符号化帯域数を算出するための帯域数判定部と、前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、を備える。前記共通スケール推定部は、削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する。
【発明の効果】
【００１５】
開示のオーディオ信号符号化装置およびオーディオ信号符号化方法(プログラム)は、量子化ビット数が量子化可能ビット数以下になるまでの量子化ループの回数を低減して量子化処理に要する時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、量子化ループを説明するための図である。
【図２】図２は、量子化ループと符号化帯域(符号化帯域数)の関係を説明するための図である。
【図３】図３は、量子化処理の一例を説明するための図である。
【図４】図４は、図３に示す量子化処理を説明するためのフローチャートである。
【図５】図５は、量子化処理の他の例を説明するための図である。
【図６】図６は、図５に示す量子化処理を実現する量子化処理ユニットの一例を示すブロック図である。
【図７】図７は、図５に示す量子化処理を説明するためのフローチャートである。
【図８】図８は、符号化帯域数とコモンスケール値(スケールファクター)との関係を説明するための図である。
【図９】図９は、図５〜図７を参照して説明した量子化処理における問題点を説明するための図である。
【図１０】図１０は、本実施形態のオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。
【図１１】図１１は、図１０に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【図１２】図１２は、本実施形態の量子化処理における傾きの処理を説明するため図である。
【図１３】図１３は、オーディオ信号符号化装置の第１実施例におけるエンコーダを示すブロック図である。
【図１４】図１４は、図１３に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。
【図１５】図１５は、図１４に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【図１６】図１６は、エンコーダ全体の処理の一例を説明するためのフローチャートである。
【図１７】図１７は、図１６に示す処理における量子化処理の一例を説明するためのフローチャートである。
【図１８】図１８は、オーディオ信号符号化装置の第２実施例におけるエンコーダを示すブロック図である。
【図１９】図１９は、図１８に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。
【図２０】図２０は、図１９に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【図２１】図２１は、スケールファクターバンドを説明するための図である。
【図２２】図２２は、図２０に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【図２３】図２３は、オーディオ信号符号化装置の第３実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【図２４】図２４は、オーディオ信号符号化装置の第３実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図である。
【図２５】図２５は、オーディオ信号符号化装置の第３実施例において、符号化量の閾値とコモンスケール値の関係を説明するための図である。
【図２６】図２６は、オーディオ信号符号化装置の第３実施例において、符号化量の閾値と各帯域における符号化量の関係を説明するための図である。
【図２７】図２７は、オーディオ信号符号化装置の第４実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【図２８】図２８は、オーディオ信号符号化装置の第４実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図である。
【図２９】図２９は、オーディオ信号符号化装置の全体構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
まず、本実施例のオーディオ信号符号化装置およびオーディオ信号符号化方法を詳述する前に、オーディオ信号符号化装置およびオーディオ信号符号化方法の例、並びに、その問題点を、図１〜図９を参照して説明する。
【００１８】
なお、本明細書では、主としてＡＡＣ(MPEG2 AAC：ISO/IEC 13818-7)を例として説明するが、後述する本実施例の適用は、ＡＡＣに限定されるものではなく、例えば、ＭＰ３等の符号化アルゴリズムの量子化処理に対しても適用することができる。
【００１９】
図１は、量子化ループ(ＡＡＣの符号化アルゴリズムの量子化処理におけるビット制御ループ(アウターループ))を説明するための図である。すなわち、図１は、縦軸にスケールファクター(スケール値)を取り、横軸に帯域(帯域数：スケールファクターバンド)を取って、各帯域のスペクトルを表している。
【００２０】
図１において、参照符号Ｌ１(破線)およびＬ２(実線)は、帯域ごとに設定されたスケールファクターを示し、Ｌ１は、初期スケールの計算に対応し、Ｌ２は、Ｌ１をコモンスケール値(Common Scale)だけシフトさせたものである。
【００２１】
ここで、シフトさせるコモンスケール値が高くなれば、量子化ステップサイズが荒くなり、量子化ビット数が減少する。なお、スケールファクターバンド(帯域)とは、周波数帯域を特定幅ごとに分割したものである。
【００２２】
すなわち、図１の破線Ｌ１に示す入力オーディオ信号の各帯域のスペクトルに対して、一定量のコモンスケール値を追加して実線Ｌ２にすることで、量子化ビット数を減らして、最終的に、量子化可能ビット数以下にするようになっている。
【００２３】
図２は、量子化ループと符号化帯域(符号化帯域数)の関係を説明するための図である。ここで、図２(ａ)および図２(ｂ)は、ループＸ回目とループＸ＋１回目の電力と帯域の関係を示し、図２(ｃ)および図２(ｄ)は、ループＸ回目とループＸ＋１回目のスケールファクターと帯域の関係を示す。
【００２４】
例えば、符号化(ＡＡＣ)において、ＭＤＣＴ(modified discrete cosine transform：修正離散コサイン変換)係数が量子化値とスケールファクターで符号化される。すなわち、量子化値は、次の[式１]により表される。
【数１】
0005942463.tif 000002
従って、スケールファクターの値が大きくなると、量子化値は０の方向へ向かうことになる。
【００２５】
図２(ａ)および図２(ｃ)と図２(ｂ)および図２(ｄ)の比較から明らかなように、ループＸ回目のスペクトルＬ１１は、ループＸ＋１回目でコモンスケール値ＣＳだけシフトされてスペクトルＬ１２になる。
【００２６】
すなわち、図２(ａ)および図２(ｃ)に示されるように、ループＸ回目では、１０個の帯域の全てが符号化対象となってそれぞれ量子化される。これに対して、図２(ｂ)および図２(ｄ)に示されるように、ループＸ＋１回目では、量子化値が０となる非符号化対象帯域が４個になり、残りの６個の帯域だけが符号化対象となる。
【００２７】
このように、入力オーディオ信号(各帯域のスペクトル)の量子化処理は、量子化ループ毎に符号化する帯域数(符号化帯域)の総和が変化する。
【００２８】
図３は、量子化処理の一例を説明するための図であり、図４は、図３に示す量子化処理を説明するためのフローチャートである。
【００２９】
図３および図４に示す量子化処理(ＡＡＣ符号化処理)が開始すると、ステップＳＴ１０１において、スケールファクターの初期値(以降、初期スケールともいう)を計算し、ステップＳＴ１０２に進んで、スケーリングを行う。ここで、初期スケールの計算は、例えば、前述した図１における破線Ｌ１に対応するのは前述した通りである。
【００３０】
さらに、ステップＳＴ１０３に進んで、量子化を行う。これにより、量子化ビット数ＱＢ(quant bit)、すなわち、初期ビット数ＱＢiを求めることができる。次に、ステップＳＴ１０４に進んで、ビット数の判定を行う。すなわち、初期ビット数ＱＢiが量子化可能ビット数ＵＢ(usable bit)以下かどうかの判定を行う。
【００３１】
ステップＳＴ１０４において、初期ビット数ＱＢiが量子化可能ビット数ＵＢ以下ではない(ＱＢi＞ＵＢ)と判定すると、ステップＳＴ１０５に進み、コモンスケール値(Common Scale：ＣＳ)を更新してステップＳＴ１０２へ戻り、同様の処理を繰り返す。
【００３２】
すなわち、ステップＳＴ１０４において、ＱＢi＞ＵＢと判定すると、ステップＳＴ１０５において、コモンスケール値を１量子化ステップだけ変化(増加)させ、その更新されたコモンスケール値ＣＳを使用してステップＳＴ１０２およびＳＴ１０３の処理を行う。
【００３３】
この更新されたコモンスケール値ＣＳを使用したステップＳＴ１０２およびＳＴ１０３の処理により、ビット制御ループ１回目の量子化ビット数ＱＢ1が求められ、上述したステップＳＴ１０４によるビット数の判定を行う。
【００３４】
なお、ステップＳＴ１０４において、ＱＢ1＞ＵＢと判定すると、ステップＳＴ１０５に進んで、コモンスケール値をさらに１量子化ステップだけ変化させ、その更新されたコモンスケール値ＣＳを使用してステップＳＴ１０２およびＳＴ１０３の処理を行う。
【００３５】
図３は、ループｎ回目の量子化ビット数ＱＢnが量子化可能ビット数ＵＢ以下になる場合を示している。すなわち、ステップＳＴ１０４では、ループ処理を行った量子化ビット数(ＱＢ：ＱＢi，ＱＢ1〜ＱＢn)が量子化可能ビット数ＵＢ以下であると判定するまで処理を繰り返す。そして、ステップＳＴ１０４において、ＱＢn≦ＵＢと判定すると、その値ＱＢnを出力して処理を終了する。
【００３６】
このように、図３および図４に示す量子化処理は、コモンスケール値ＣＳを１量子化ステップずつ変化させ、量子化ビット数ＱＢが量子化可能ビット数ＵＢ以下になる(ＱＢ≦ＵＢ)までループを繰り返している。
【００３７】
そのため、量子化ビット数ＱＢと量子化可能ビット数ＵＢの差が大きい場合、コモンスケール値を１量子化ステップずつ変化させるのでは、量子化処理を短時間で収束させることが困難となっている。
【００３８】
図５は、量子化処理の他の例を説明するための図であり、図６は、図５に示す量子化処理を実現する量子化処理ユニットの一例を示すブロック図である。また、図７は、図５に示す量子化処理を説明するためのフローチャートである。
【００３９】
図６において、参照符号２０１は量子化部，２０２は符号化部，２０３は量子化制御部，２０５は共通スケール推定部，２０６は初期スケール計算部および２０７はスケーリング部を示す。なお、共通スケール推定部２０５には、符号化部２０２の出力および量子化制御部２０３の出力が入力されている。
【００４０】
図５〜図７に示す量子化処理(ＡＡＣ符号化処理)が開始すると、ステップＳＴ２０１において、初期スケール計算部２０６により初期スケールを計算し、ステップＳＴ２０２に進んで、スケーリング部２０７によりスケーリングを行う。
【００４１】
さらに、ステップＳＴ２０３に進んで、量子化部２０１により量子化を行う。これにより、初期ビット数ＱＢiを求めることができる。ここで、量子化部２０１には、各帯域のスペクトル(入力オーディオ信号)が入力される。
【００４２】
次に、ステップＳＴ２０５に進んで、ビット数の判定、すなわち、初期ビット数ＱＢiが量子化可能ビット数ＵＢ以下かどうかの判定を行う。なお、初期ビット数ＱＢiによるループでは、ステップＳＴ２０４をそのままスルーしてステップＳＴ２０５に進むが、２回目以降のループでは、符号化部２０２および量子化制御部２０３によるステップＳＴ２０４の処理を行う。
【００４３】
ステップＳＴ２０５において、初期ビット数ＱＢiが量子化可能ビット数ＵＢ以下ではない(ＱＢi＞ＵＢ)と判定すると、ステップＳＴ２０６に進んでΔScaleの値(コモンスケール値の追加分)を推定し、さらに、ステップＳＴ２０７に進んで、コモンスケール値を更新する。
【００４４】
ここで、ステップＳＴ２０４〜ＳＴ２０７の処理は、符号化部２０２，量子化制御部２０３および共通スケール推定部２０５により実行される。なお、共通スケール推定部２０５には、量子化可能ビット数ＵＢが入力されている。
【００４５】
すなわち、ステップＳＴ２０５において、ＱＢi＞ＵＢと判定すると、ステップＳＴ２０７により更新されたコモンスケール値ＣＳを使用したステップＳＴ２０２以降の処理を繰り返す。そして、２回目のループ以降では、ステップＳＴ２０４において、傾きαの値を更新して、次のステップＳＴ２０５に進む。
【００４６】
例えば、ループｎ回目の量子化ビット数ＱＢnが量子化可能ビット数ＵＢよりも大きい場合、ステップＳＴ２０５では、ＱＢn＞ＵＢと判定して、ステップＳＴ２０６に進む。
【００４７】
図５〜図７に示す量子化処理において、ステップＳＴ２０５でＱＢn＞ＵＢと判定すると、ループｎ回目のＱＢnと共に、次のループｎ＋１回目の量子化ビット数ＱＢn+1を使用して、ステップＳＴ２０６におけるデルタスケールの推定を行う。
【００４８】
具体的に、図５に示されるように、ループｎ回目のＱＢnとループｎ＋１回目のＱＢn+1から求められる傾きαを使用して、ループｎ＋１回目の実際の量子化ビット数ＱＢn+1と量子化可能ビット数ＵＢから、デルタスケール(ΔScale)を次の[式２]により求める。
【数２】
0005942463.tif 000003
【００４９】
すなわち、ループｎ回目のＱＢnとループｎ＋１回目のＱＢn+1から求められる傾きαがそのまま変化しないものと仮定して、ΔScaleの値を求め、それを追加したコモンスケール値ＣＳを使用してステップＳＴ２０２以降の処理を行う。
【００５０】
そして、ステップＳＴ２０５において、ＱＢ≦ＵＢと判定すると、その値ＱＢを、符号化部２０２からＡＡＣ符号化データとして出力して処理を終了する。
【００５１】
このように、図５〜図７に示す量子化処理は、例えば、ビット制御ループのｎ回目の実績値ＱＢnとｎ＋１回目の実績値ＱＢn+1から求めた傾きαを使用して追加のコモンスケール値(ΔScale)を求め、それにより更新したコモンスケール値ＣＳを使用している。
【００５２】
図８は、符号化帯域数とコモンスケール値との関係を説明するための図であり、図９は、図５〜図７を参照して説明した量子化処理における問題点を説明するための図である。
【００５３】
図８に示されるように、上述した傾きαは、様々な要因により変化し、符号化帯域数が多いと、緩やかなα３になり、逆に、符号化帯域数が少ないと、急峻なα１になる。なお、傾きα２は、傾きα１の符号化帯域数と傾きα３の符号化帯域数の間の符号化帯域数のときの傾きになる。
【００５４】
図９に示されるように、ループｎ回目のＱＢnとループｎ＋１回目のＱＢn+1から求めた傾きαpを使用して、量子化可能ビット数ＵＢ以下になるＱＢsを求めるように処理したとき、例えば、推定した傾きαpに対して実際の傾きがαrの場合を考える。ここで、ループｎ回目の帯域数をＡとし、ループｎ＋１回目の帯域数をＡ−Ｂとし、ＡおよびＢは、Ａ＞Ｂの関係で共に正の定数とする。
【００５５】
このとき、過去のループｎ回目のＱＢnとループｎ＋１回目のＱＢn+1から求めた傾きαpを使用して求めた量子化ビットＱＢs0は、実際の傾きがαrだとＱＢr0の位置になってしまい、求める実際の量子化ビット値ＱＢrとは大きな差が生じることになる。その結果、ビット制御ループが収束するには、さらにループ処理を繰り返すことになる。
【００５６】
すなわち、過去の量子化ビット数の減少特性を用いただけでは、適切な追加のコモンスケール値(ΔScale)を求めることは困難である。これは、コモンスケール値ＣＳおよび符号化帯域数が量子化ビット数ＱＢの減少特性(傾きα)と相関を有しており、また、スケール(コモンスケール値ＣＳ)が変わると、符号化帯域数も変化し、結果として、ループごとに減少特性が変化するためである。
【００５７】
このように、図５〜図７に示す量子化処理においても、量子化処理を満足できる短時間で収束させることは難しいといった問題がある。
【００５８】
以下、オーディオ信号符号化装置およびオーディオ信号符号化方法の実施例を、添付図面を参照して詳述する。
【００５９】
図１０は、本実施形態のオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図であり、図１１は、図１０に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。また、図１２は、本実施形態の量子化処理における傾きの処理を説明するため図である。
【００６０】
図１０において、参照符号１は量子化部，２は符号化部，３は量子化制御部，４は帯域数判定部，５は共通スケール推定部，６は初期スケール計算部および７はスケーリング部を示す。
【００６１】
ここで、図１における量子化部１は、前述した図６における量子化部２０１とは異なる処理を行う。なお、帯域数判定部４には、量子化部１の出力および量子化制御部３の出力が入力されている。また、共通スケール推定部５には、符号化部２の出力および帯域数判定部４の出力が入力されている。
【００６２】
図１１に示されるように、本実施形態の量子化処理ユニットにおける処理(ＡＡＣ符号化処理)が開始すると、ステップＳＴ１において、初期スケール計算部６により初期スケールを計算し、ステップＳＴ２に進んで、スケーリング部７によりスケーリングを行う。
【００６３】
さらに、ステップＳＴ３に進んで、量子化部１により量子化を行う。このステップＳＴ１〜ＳＴ３の処理は、前述した図４におけるステップＳＴ１０１〜ＳＴ１０３の処理、並びに、図７におけるステップＳＴ２０１〜ＳＴ２０３の処理に対応する。
【００６４】
これにより、初期ビット数(ＱＢi)を求めることができる。ここで、量子化部１には、入力デジタル信号(入力オーディオ信号)から求めた周波数スペクトルを複数の帯域に分割した信号が入力され、量子化部１の出力は、帯域数判定部４に入力される。
【００６５】
次に、ステップＳＴ４に進んで、ビット数の判定、すなわち、初期ビット数が量子化可能ビット数(ＵＢ)以下かどうかの判定を行う。ステップＳＴ４において、初期ビット数が量子化可能ビット数以下ではない(ＱＢi＞ＵＢ)と判定すると、ステップＳＴ５に進んで符号化帯域数の判定を行う。
【００６６】
さらに、ステップＳＴ６において、デルタスケールを推定し、ステップＳＴ７に進んで、コモンスケール値を更新する。なお、ステップＳＴ５〜ＳＴ７の処理は、帯域数判定部４および共通スケール推定部５により実行される。
【００６７】
すなわち、帯域数判定部４は、符号化帯域数の判定を行う。ここで、符号化帯域数とは、コモンスケール値ＣＳによって符号量が変動する帯域数である。また、共通スケール推定部５は、削減する量子化ビット数と減少特性(傾きα)から得られた値を符号化帯域数により補正して、コモンスケール値の追加分(追加のコモンスケール値ΔScale)を算出する。
【００６８】
すなわち、追加のコモンスケール値(デルタスケール)ΔScaleは、帯域数(符号化帯域数)で除算する次の[式３]によりΔScaleを求める。
【数３】
0005942463.tif 000004
【００６９】
ここで、αは定数(固定)とされ、例えば、動作モードに従って、次のように設定する。
サンプリング周波数：４８ｋＨｚ    チャネル数：２    ⇒  α＝０．２５
サンプリング周波数：４８ｋＨｚ    チャネル数：１    ⇒  α＝０．２７
なお、αの値は、例えば、予め大量の実験データから最適な値を求めて設定することができる。また、αの値は、動作モードごとに分けないで設定してもよい。
【００７０】
また、ステップＳＴ７の処理は、コモンスケール値(Common Scale)に対して、コモンスケール値の追加分(デルタスケール：ΔScale)を加算して、更新されたコモンスケール値ＣＳを算出する。すなわち、ＣＳ＝Common Scale＋ΔScale としてコモンスケール値ＣＳを求める。
【００７１】
ここで、上述した[式３]において、具体的に、前述した図２(ａ)および図２(ｃ)のような帯域数(符号化帯域数 band)が１０個の場合と、図２(ｂ)および図２(ｄ)のような帯域数が６個の場合を考える。
【００７２】
[式３]において、帯域数が１０個の場合と６個の場合を比較すると、αは固定値なので、分母が１０となる帯域数が多いときは、分母が６となる帯域数が少ないときよりも、ΔScale(デルタスケール量)は、小さくなることが分かる。
【００７３】
従って、本実施形態によれば、[式３]により得られたデルタスケール量 ΔScale を使用して更新されたコモンスケール値ＣＳ(ΔScaleだけシフトさせたコモンスケール値CommonScale)によりループを回すことで、収束するまでのループ回数を低減することができる。
【００７４】
すなわち、図１２に示されるように、本実施形態のオーディオ信号符号化装置において、傾き(量子化ビット減少特性)αは、定数とされ、また、デルタスケール量 ΔScale は、符号化帯域数を考慮して推定される。これにより、ビット制御ループの精度を向上して、ループ処理を少ない回数で収束させることが可能になる。
【００７５】
図１３は、オーディオ信号符号化装置の第１実施例におけるエンコーダを示すブロック図であり、図１４は、図１３に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。また、図１５は、図１４に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【００７６】
図１３および図１４において、参照符号８はフィルタバンク部、９は心理聴覚分析部、１０は量子化処理ユニット、１０ａは量子化器および１１は量子化部を示す。また，参照符号１２は符号化部、１３は量子化制御部、１４は帯域数判定部、１５は共通スケール推定部、１６は初期スケール計算部および１７はスケーリング部を示す。
【００７７】
ここで、図１３における量子化器１０ａは、図１４における量子化部１１、帯域数判定部１４、共通スケール推定部１５、初期スケール計算部１６およびスケーリング部１７を含む。
【００７８】
図１５は、図１４に示す量子化処理ユニットで使用する変数(パラメータ：信号)およびその内容を説明するための図である。図１５に示されるように、第１実施例で使用する変数は、入力デジタル信号 xin()、スケールファクター(全５２グループ) scalefactor()、ＭＤＣＴスペクトル(全１０２４本) mdct() および スケールファクターバンドのスペクトル電力 spectral energy() を含む。
【００７９】
また、第１実施例で使用する変数は、マスキング閾値(全５２グループ) masking threshold()、量子化値 quant()、コモンスケール値 common scale [ＣＳ]、符号化帯域数 band、デルタスケール量 Δscale および 量子化可能ビット数 usable bit [ＵＢ]を含む。
【００８０】
さらに、第１実施例で使用する変数は、量子化ビット数 quant bit［量子化ビット数ＱＢ］、サブバンド番号(０〜５１) sfb、周波数インデックス(０〜１０２３)ｋ、サンプル番号ｎおよび量子化ビット減少特性(傾き)αを含む。
【００８１】
ここで、変数 xin()、mdct()、spectral energy()、masking threshold()、usable bit、quant bit、sfb、ｋおよびｎは、例えば、前に、図３および図４を参照して説明した量子化処理を実行するためのエンコーダでも使用される。
【００８２】
これに対して、変数 scalefactor()、quant()、common scale、band、Δscaleおよびαは、図３および図４の量子化処理を実行するエンコーダでは使用されないが、本第１実施例のオーディオ信号符号化装置におけるエンコーダで使用される。
【００８３】
図１６は、エンコーダ(ＡＡＣエンコーダ)全体の処理の一例を説明するためのフローチャートであり、図１７は、図１６に示す処理における量子化処理の一例を説明するためのフローチャートである。なお、図１７は、前述した図１１と同様のものであり、図１７におけるステップＳＴ１１〜ＳＴ１７は、図１１におけるステップＳＴ１〜ＳＴ７に対応する。
【００８４】
まず、図１６を参照して、ＡＡＣエンコーダの全体的な処理を説明した後、図１３〜図１５および図１７を参照して、第１実施例を詳述する。なお、以下の説明は、"3GPP TS 26.403 V9.0.0 (2009-12)" の仕様に基づいて行うが、本実施例は、それに限定されないのはいうまでもない。
【００８５】
図１６に示されるように、ＡＡＣエンコーダによるＡＡＣ符号化処理が開始すると、ステップＳＴＡにおいて、入力されたオーディオ(音声)信号を、修正離散コサイン変換(ＭＤＣＴ：Modified Discrete Cosine Transform)を用いて、時間−周波数変換を行う。これにより、入力オーディオ信号(入力デジタル信号)の周波数スペクトルを得る。
【００８６】
<Ｉ>．ステップＳＴＡでは、例えば、次の[式４]に従って変換を行い、全１０２４本のＭＤＣＴスペクトル(周波数スペクトル) mdct(k) を得る。
【数４】
0005942463.tif 000005
【００８７】
ここで、Ｎは、ＭＤＣＴ変換の２０４８または２５６の窓を示し、ｎ0は、(N/2+1)／２となっている。また、周波数インデックスｋは、サンプル番号ｎに対して、０≦ｋ＜ｎ/2の条件を満足する。さらに、ステップＳＴＢに進んで、帯域分割および帯域電力の算出を行う。
【００８８】
<II>．ステップＳＴＢでは、周波数スペクトルを複数の帯域に分割し、各帯域の周波数スペクトル電力 spectral energy(sfb) を次の[式５]により求めて、ステップＳＴＣに進む。
【数５】
0005942463.tif 000006
【００８９】
なお、上述した処理<Ｉ>および<II>は、図１３のフィルタバンク部８により実行され、入力デジタル信号(入力オーディオ信号) xin(n) を受け取って処理を行う。そして、フィルタバンク部８は、得られたＭＤＣＴスペクトル mdct(k) および スケールファクターバンドのスペクトル電力 spectral energy(sfb) を量子化処理ユニット１０(量子化器１０a)に出力すると共に、spectral energy(sfb) を心理聴覚分析部９に出力する。
【００９０】
<III>．ステップＳＴＣでは、入力オーディオ信号に対して、心理聴覚分析を行い、マスキング閾値 masking threshold(sfb) を求めて、ステップＳＴＤに進む。
【００９１】
ここで、マスキング閾値の算出は、例えば、各入力オーディオ信号のマスキング閾値を求め、各入力オーディオ信号のマスキング閾値のうち、小さい方または大きい方を選択して行う。また、各入力オーディオ信号のマスキング閾値は、簡易的には各周波数帯域の最小可聴域のパワーなどを用いることができる。なお、マスキング閾値の算出は、知られている他の様々な手法を適用することができるのはいうまでもない。
【００９２】
<IV>．ステップＳＴＤでは、マスキング閾値とスペクトル電力を帯域ごとに比較し、量子化対象の帯域数(符号化帯域数)を決定する。すなわち、量子化対象帯域数は、masking threshold(sfb)＜spectral energy(sfb) になる帯域の数として求められる。
【００９３】
なお、上述した処理<III>および<IV>は、図１３の心理聴覚分析部９により実行され、前述したフィルタバンク部８からのスケールファクターバンドのスペクトル電力 spectral energy(sfb) を受け取って処理を行う。そして、心理聴覚分析部９は、マスキング閾値 masking threshold(sfb) および 量子化対象帯域数の情報を量子化処理ユニット１０(量子化器１０a)に出力する。
【００９４】
さらに、ステップＳＴＥおよびＳＴＦの処理(量子化処理)を行った後、ステップＳＴＧに進み、符号化処理を行う。ここで、ステップＳＴＥおよびＳＴＦの量子化処理は、図１７(図１１)に詳述されている。また、ステップＳＴＧでは、量子化処理が行われた符号化信号(例えば、ＡＡＣ符号化信号)を受け取って、ストリーム信号(例えば、ＡＡＣのビットストリーム信号)を出力する処理を行う。
【００９５】
次に、図１３〜図１５および図１７を参照して、第１実施例における量子化処理ユニット１０および量子化処理を詳述する。ここで、前述したように、図１３の量子化器１０ａは、図１４の量子化部１１、帯域数判定部１４、共通スケール推定部１５、初期スケール計算部１６およびスケーリング部１７に対応する。
【００９６】
図１７に示されるように、第１実施例における量子化処理(ＡＡＣ符号化処理)が開始すると、ステップＳＴ１１において、初期スケールを計算する。
【００９７】
<Ｖ>．ステップＳＴ１１では、量子化対象の帯域に対してスケール値の初期値 scalefactor(sfb) を、次の[式６]により算出し、さらに、ステップＳＴ２に進む。
【数６】
0005942463.tif 000007
【００９８】
ここで、dw は、サブバンド(sfb)に含まれるＭＤＣＴ係数の個数を示す。上記の処理<Ｖ>は、図１４の初期スケール計算部１６により実行され、前述したフィルタバンク部８からのスケールファクターバンドのスペクトル電力 spectral energy(sfb) および 心理聴覚分析部９からのマスキング閾値 masking threshold(sfb) を受け取って処理を行う。そして、初期スケール計算部１６は、得られたスケール値の初期値 scalefactor(sfb) をスケーリング部１７に出力する。
【００９９】
<VI>．ステップＳＴ１２では、スケーリングを行い、さらに、ステップＳＴ１３に進んで、量子化を行う。すなわち、ステップＳＴ１２において、量子化値 quant(k) を次の[式７]により求めて、ステップＳＴ１４に進む。
【数７】
0005942463.tif 000008
【０１００】
ここで、最初の処理では、commonscale＝０とし、例えば、MAGIC NUMBER＝0.4054 とする。なお、MAGIC NUMBER＝0.4054 は、前述した "3GPP TS 26.403 V9.0.0 (2009-12)" の仕様において規定された定数である。上記の処理<VI>(ステップＳＴ１２およびＳＴ１３の処理)は、図１４のスケーリング部１７および量子化部１１により実行される。
【０１０１】
すなわち、スケーリング部１７は、前述した初期スケール計算部１６からのスケール値の初期値 scalefactor(sfb) および 後述する共通スケール推定部１５で処理されたコモンスケール値(CommonScale+Δscale)を受け取って処理を行う。そして、スケーリング部１７は、scalefactor(sfb)+Δscale を量子化部１１に出力する。
【０１０２】
また、量子化部１１は、前述したフィルタバンク部８からのＭＤＣＴスペクトル mdct(k) および スケーリング部１７からの scalefactor(sfb)+Δscale を受け取って処理を行う。そして、量子化部１１は、得られた量子化値 quant(k) を帯域数判定部１４に出力すると共に、quant(k) および スケール情報を符号化部１２に出力する。
【０１０３】
なお、上述したステップＳＴ１１〜ＳＴ１３の処理(図１１のステップＳＴ１〜ＳＴ３の処理)は、前述した図４におけるステップＳＴ１０１〜ＳＴ１０３の処理、並びに、図７におけるステップＳＴ２０１〜ＳＴ２０３の処理に対応する。
【０１０４】
<VII>．ステップＳＴ１４では、量子化ビット数の判定(量子化(初期)ビット数 quant bit が量子化可能ビット数(usable bit：ＵＢ)以下かどうかのループ終了判定)を行う。すなわち、ステップＳＴ１４では、次の[条件式１]に従った判定を行い、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下ではない(quant bit ＞ usable bit)と判定すると、ステップＳＴ１５に進む。
【数８】
0005942463.tif 000009
【０１０５】
ここで、ステップＳＴ１４において、quant bit が usable bit 以下である(quant bit ≦ usable bit)と判定すると、量子化処理(量子化ループ)を終了して符号化信号(ＡＡＣ符号化信号)を出力する。なお、この量子化処理ユニット１０(ＡＡＣエンコーダ)から出力されたＡＡＣ符号化信号は、例えば、図２９のストリーム出力部５６を介してＡＡＣストリーム信号として出力される。
【０１０６】
上記の処理<VII>は、図１４の符号化部１２および量子化制御部１３により実行される。符号化部１２は、量子化部１１からの量子化値 quant(k) および スケール情報を受け取って処理を行い、量子化ビット数 quant bit を量子化制御部１３および共通スケール推定部１５に出力する。
【０１０７】
また、量子化制御部１３は、符号化部１２からの量子化ビット数 quant bit および 量子化可能ビット数 usable bit を受け取って処理を行い、制御信号(ループ実行信号)を帯域数判定部１４に出力する。なお、量子化制御部１３に入力された量子化可能ビット数 usable bit は、後述する共通スケール推定部１５にも出力される。
【０１０８】
<VIII>．ステップＳＴ１５では、符号化帯域数の判定を行い、さらに、ステップＳＴ１６に進む。すなわち、ステップＳＴ１５では、次の[条件式２]に従った判定を行い、符号化帯域数 band を算出する。
【数９】
0005942463.tif 000010
【０１０９】
上記の処理<VIII>は、図１４の帯域数判定部１４により実行される。帯域数判定部１４は、量子化部１１からの量子化値 quant(k) および 量子化制御部１３からの制御信号を受け取って処理を行い、符号化帯域数 band を共通スケール推定部１５に出力する。
【０１１０】
すなわち、帯域数判定部１４は、全帯域で量子化値が０でない帯域の数をカウントする。ここで、ＭＤＣＴ係数は、量子化値 quant(k) および (スケール値 scalefactor(sfb)−コモンスケール値 common scale) で符号化するため、量子化値が０でない (quant(k)≠０：quant(k) != 0) 個所(帯域)が符号化の対象となる。
【０１１１】
<IX>．ステップＳＴ１６では、デルタスケールを推定して、ステップＳＴ１７に進む。すなわち、ステップＳＴ１６において、デルタスケール量 Δscale を次の[式８]により求めて、ステップＳＴ１７に進む。
【数１０】
0005942463.tif 000011
【０１１２】
<Ｘ>．ステップＳＴ１７では、コモンスケール値を更新し、ステップＳＴ１２に戻り、同様の処理(処理<VI>〜<Ｘ>)を繰り返す。すなわち、ステップＳＴ１７において、更新されたコモンスケール値 CommonScale [ＣＳ]を次の[式９]により求めて、ステップＳＴ１２に戻る。
【数１１】
0005942463.tif 000012
【０１１３】
上記の処理<IX>および<Ｘ>は、図１４の共通スケール推定部１５により実行される。共通スケール推定部１５は、符号化部１２からの量子化ビット数 quant bit，帯域数判定部１４からの符号化帯域数 band および 量子化可能ビット数 usable bit を受け取ってコモンスケール値 CommonScale の更新処理を行う。そして、共通スケール推定部１５は、更新されたコモンスケール値 CommonScale (＝CommonScale＋Δscale)をスケーリング部１７に出力する。
【０１１４】
なお、上述したオーディオ信号符号化方法(量子化処理方法)は、ハードウェアによる回路として、或いは、例えば、後述する図２９の演算処理装置(ＣＰＵ５４：コンピュータ)により実行させるソフトウェアプログラムとして実施することができる。
【０１１５】
なお、ＣＰＵ５４(コンピュータ)に実行させるプログラムは、例えば、ＣＰＵ５４に設けられたメモリ(不揮発性メモリ５４０)に格納する。また、このプログラムは、例えば、プログラム(データ)提供者６０におけるハードディスク装置６１や可搬型記録媒体(メモリカード)７０に記録され、例えば、Ｉ／Ｏ部５７を介して不揮発性メモリ５４０に格納される。
【０１１６】
上述したように、本第１実施例では、帯域数判定部１４により、符号化帯域数の判定処理(処理<VIII>：ステップＳＴ１５の処理)を行う。さらに、共通スケール推定部１５により、デルタスケールの推定処理(処理<IX>：ステップＳＴ１６の処理)、および、コモンスケール値の更新処理(処理<Ｘ>：ステップＳＴ１７の処理)を行う。
【０１１７】
ここで、帯域数判定部１４および共通スケール推定部１５により行う具体的な処理は、例えば、図１０〜図１２および[式３]等を参照して詳述した通りである。すなわち、本第１実施例において、Δscale は、Δscale ＝ [(quant bit)−(usable bit)]／[α・(band)] として求めることができる。
【０１１８】
そして、この得られた Δscale を使用して、コモンスケール値 CommonScale (推定されたコモンスケール値ＣＳ) ＝ CommonScale ＋ ΔScale として求める。なお、αの値は、予め大量の実験データから最適な値を求め、例えば、図２９におけるＣＰＵ５４に設けられた不揮発性メモリ５４０に格納することができる。
【０１１９】
以上、詳述したように、本第１実施例によれば、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下になるまでのループ(ビット制御ループ)の回数を低減することができ、量子化処理に要する時間を短縮することが可能になる。
【０１２０】
図１８は、オーディオ信号符号化装置の第２実施例におけるエンコーダを示すブロック図であり、図１９は、図１８に示すオーディオ信号符号化装置における量子化処理ユニットの一例を示すブロック図である。また、図２０は、図１９に示す量子化処理ユニットで使用する変数およびその内容を説明するための図である。
【０１２１】
さらに、図２１は、スケールファクターバンドを説明するための図であり、図２２は、図２０に示す量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。
【０１２２】
ここで、図２１(ａ)は、１０２４本のＭＤＣＴスペクトル mdct(k) と、最大５２グループのサブバンド sfb の関係を示し、図２１(ｂ)は、マスキング閾値によりサブバンド sfb3 がマスクされる場合を示す。また、図２１(ｃ)は、図２１(ｂ)のように、sfb3 がマスクされた結果、サブバンド sfb の数が１つ少なくなる様子を示す。
【０１２３】
なお、図２１(ａ)〜図２１(ｃ)において、縦軸は、電力を示し、横軸は、帯域(帯域数)を示す。
【０１２４】
すなわち、上述した第１実施例では、処理<VIII>(ステップＳＴ１５の処理)および[条件式２]に示されるように、毎ループで、量子化値 quant(k)≠０ の帯域から符号化帯域数 band を求めていた。
【０１２５】
これに対して、本第２実施例では、図２２と図１７の比較から明らかなように、符号化帯域数の判定(図１７におけるステップＳＴ１５)として、ステップＳＴ２５Ａ〜ＳＴ２５Ｃの処理を行う。
【０１２６】
すなわち、本第２実施例では、２回目のループにおいて、符号化帯域数の判定を、ＭＤＣＴスペクトル mdct(k) ごとに行うのではなく、サブバンド(sfb)のグループ単位で行うようになっている。
【０１２７】
なお、本第２実施例の図１８〜図２０は、前述した第１実施例の図１３〜図１５に対応し、図１９において、初期スケール計算部２６から帯域数判定部２４に対して、符号化帯域数設定の制御信号が出力されている点が異なる。
【０１２８】
ここで、図１８における量子化処理ユニット２０の量子化器２０ａ，符号化部２２および量子化制御部２３は、前述した図１３における量子化処理ユニット１０の量子化器１０ａ，符号化部１２および量子化制御部１３に相当する。
【０１２９】
また、図１９における共通スケール推定部２５およびスケーリング部２７は，図１４における共通スケール推定部１５およびスケーリング部１７に対応し、さらに、図２０に示す変数およびその内容は、前述した図１５と同様である。
【０１３０】
そして、図２２におけるステップＳＴ２１〜ＳＴ２４，ＳＴ２６およびＳＴ２７は、前述した図１７におけるステップＳＴ１１〜ＳＴ１４，ＳＴ１６およびＳＴ１７に相当する。従って、それらの説明は、本第２実施例では省略し、主として、第１実施例との相違個所を詳述する。
【０１３１】
上述したように、本第２実施例では、２回目のループにおいて、符号化帯域数の判定を、ＭＤＣＴスペクトル mdct(k) ごとに行うのではなく、サブバンド sfb のグループ単位で行う。
【０１３２】
すなわち、図２２のステップＳＴ２４において、量子化ビット数 quant bit が量子化可能ビット数 usable bit 以下ではない(quant bit ＞ usable bit)と判定すると、ステップＳＴ２５Ａに進み、ループが２回目かどうかを判定する。
【０１３３】
ステップＳＴ２５Ａにおいて、ループが２回目であると判定すると、ステップＳＴ２５Ｂに進んで、サブバンド単位で符号化帯域数の判定を行い、そして、ステップＳＴ２６に進んで、デルタスケールの推定を行う。
【０１３４】
一方、ステップＳＴ２５Ａにおいて、ループが２回目ではないと判定すると、ステップＳＴ２５Ｃに進んで、前述した第１実施例と同様に、量子化値で符号化帯域数の判定を行い、そして、ステップＳＴ２６に進んで、デルタスケールの推定を行う。
【０１３５】
従って、本第２実施例は、前述した第１実施例における処理<VIII>の代わりに、次の処理<VIIIa>を行う。なお、第１実施例における他の処理<Ｉ>〜<VII>，<IX>および<Ｘ>は、本第２実施例でも同様なので、その説明は省略する。
【０１３６】
<VIIIa>．ステップＳＴ２５Ａ〜ＳＴ２５Ｃでは、次の[条件式３]に従った判定を行い、符号化帯域数 band を算出する。
【数１２】
0005942463.tif 000013
【０１３７】
上記の処理<VIIIa>は、図１９の帯域数判定部２４により実行される。帯域数判定部２４は、量子化部２１からの量子化値 quant(k) および 量子化制御部２３からの制御信号を受け取って処理を行い、符号化帯域数 band を共通スケール推定部２５に出力する。ここで、帯域数判定部２４には、初期スケール計算部２６からの符号化帯域数設定情報が入力されている。
【０１３８】
すなわち、帯域数判定部２４は、初期スケール計算部２６からの符号化帯域数設定情報により、ループが２回目かどうかを認識できるようになっている。そして、ループが２回目の時は、符号化帯域数の判定を、ＭＤＣＴスペクトル mdct(k) ごとに行うのではなく、サブバンド sfb のグループ単位で行うことになる。
【０１３９】
ここで、図２１を参照して前述したように、ＭＤＣＴスペクトル mdct(k) は、例えば、１０２４本であるのに対して、サブバンド sfb のグループは、最大５２グループであるため、符号化帯域数の判定を sfb により行うことで処理量を低減することができる。
【０１４０】
なお、本第２実施例において、ループが３回目以降の場合、前述した第１実施例と同様に、全帯域(１０２４本のＭＤＣＴスペクトル mdct(k))に対して、量子化値が０でない(quant(k)≠０)個所(帯域)を符号化対象としてカウントする。
【０１４１】
その理由は、まず、スケールが大きくなると、量子化値 quant(k) が０になり、符号化帯域数が減って行く。また、スケールファクターバンドによる符号化対象の決定は量子化前の１回なので、スケールが大きくなるにつれて(量子化ループの回数が増加につれて)、符号化帯域数の誤差が大きくなるためである。
【０１４２】
上述したように、本第２実施例では、２回目のループの時に、符号化帯域数の判定をサブバンド sfb のグループ単位で行うことにより、推定精度は多少低下することになるが、処理量を低減して量子化処理に要する時間を短縮することが可能になる。
【０１４３】
図２３は、オーディオ信号符号化装置の第３実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。ここで、図２３と前述した図１７の比較から明らかなように、本第３実施例における量子化処理は、実質的に第１実施例の量子化処理に対応している。
【０１４４】
図２３に示す本第３実施例におけるステップＳＴ３１〜ＳＴ３７は、図１７に示す第１実施例におけるステップＳＴ１１〜ＳＴ１７と同様に描かれているが、本第３実施例では、ステップＳＴ３５の符号化帯域数の判定処理が第１実施例とは異なっている。すなわち、本第３実施例では、符号化量(spe bit(k))が減少しなくなった帯域を、符号化しない帯域とみなして符号化帯域数を判定する。
【０１４５】
図２４は、オーディオ信号符号化装置の第３実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図であり、図２５は、符号化量の閾値とコモンスケール値の関係を説明するための図である。また、図２６は、オーディオ信号符号化装置の第３実施例において、符号化量の閾値と各帯域における符号化量の関係を説明するための図である。
【０１４６】
ここで、図２４(ａ)は、コモンスケール値 common scale [ＣＳ]を付加する前の各帯域での符号化量 spe bit(k) を示し、図２４(ｂ)は、コモンスケール値 common scale を付加した後の各帯域での符号化量 spe bit(k) を示す。
【０１４７】
図２４(ａ)と図２４(ｂ)の比較から明らかなように、付加するコモンスケール値 common scale を増大しても、各帯域での符号化量 spe bit(k) の減少は一定ではないことが分かる。
【０１４８】
さらに、図２５において、コモンスケール値を増加した場合、参照符号Ｒ１で示す始めの領域では、一定の割合で符号化量 spe bit が減少する。しかしながら、参照符号Ｒ２で示す領域では、コモンスケール値を増加しても符号化量 spe bit が減少し難くなる。
【０１４９】
そこで、図２６に示されるように、本第３実施例では、コモンスケール値 common scale [ＣＳ]を増加しても符号化量 spe bit が減少しない帯域を、所定の閾値 th を設けて判定し、符号化帯域数のカウントを行う。すなわち、各帯域の符号化量 spe bit(k) が閾値 th よりも減らない帯域を符号化しない帯域とみなして符号化帯域数を求める。
【０１５０】
すなわち、本第３実施例は、前述した第１実施例における処理<VIII>の代わりに、次の処理<VIIIb>を行う。なお、第１実施例における他の処理<Ｉ>〜<VII>，<IX>および<Ｘ>は、本第３実施例でも同様なので、その説明は省略する。
【０１５１】
<VIIIb>．ステップＳＴ３５では、次の[条件式４]に従った判定を行い、符号化帯域数 band を算出する。
【数１３】
0005942463.tif 000014
【０１５２】
上記の処理<VIIIb>は、前述した図１４に示す第１実施例の帯域数判定部１４に対応する個所により実行される。この帯域数判定部１４に対応する個所は、第１実施例における量子化値が０でない(quant(k)≠０)個所(帯域)の判定だけでなく、符号化量が閾値以上(spe bit(k) > th)となる帯域の判定も行う。すなわち、量子化値が０でない(quant(k)!= 0)帯域であって、なおかつ、符号化量が閾値以上(spe bit(k) > th)となる帯域を、符号化帯域数として求める。
【０１５３】
このように、本第３実施例は、前述した第１実施例に加えて、コモンスケール値を増加しても符号化量が減少し難くなる(所定の閾値よりも減少しない)帯域を、符号化帯域数から除くことにより、より一層推定精度を向上させることができる。
【０１５４】
図２７は、オーディオ信号符号化装置の第４実施例におけるエンコーダの量子化処理ユニットで実行する処理の一例を説明するためのフローチャートである。また、図２８は、オーディオ信号符号化装置の第４実施例において、コモンスケール値を付加したときの各帯域における符号化量の変化を説明するための図である。
【０１５５】
ここで、図２８(ａ)は、コモンスケール値 common scale [ＣＳ]を付加する前の各帯域での量子化値 quant(k) を示し、図２８(ｂ)は、コモンスケール値 common scale を付加した後の各帯域での量子化値 quant(k) を示す。
【０１５６】
図２８(ａ)と図２８(ｂ)の比較から明らかなように、付加するコモンスケール値 common scale を増大しても、各帯域での量子化値 quant(k) が変化しない場合があることが分かる。
【０１５７】
ここで、変化しない要因の一例を以下に述べる。量子化値 quant(k) は、次の[式１０]から求めることができる。この[式１０]では、計算結果が整数型なのでコモンスケール値 common scale が増加しても量子化値 quant(k) が変化しないことがある。
【数１４】
0005942463.tif 000015
【０１５８】
具体的に、次の[式１１]および[式１２]では、コモンスケール値 common scale が『２５』と『３０』で異なっていても、得られた量子化値は、両方とも７５と等しくなる。
【数１５】
0005942463.tif 000016
【０１５９】
そこで、本第４実施例では、コモンスケール値 common scale [ＣＳ]を増加しても量子化値 quant(k) が変化しない帯域を除いて符号化帯域数のカウントを行う。すなわち、各帯域の量子化値 quant(k) が変化しない帯域を符号化しない帯域とみなして符号化帯域数を求める。
【０１６０】
すなわち、本第４実施例は、前述した第１実施例における処理<VIII>の代わりに、次の処理<VIIIc>を行う。なお、第１実施例における他の処理<Ｉ>〜<VII>，<IX>および<Ｘ>は、本第４実施例でも同様なので、その説明は省略する。
【０１６１】
<VIIIc>．ステップＳＴ４５では、次の[条件式５]に従った判定を行い、符号化帯域数 band を算出する。
【数１６】
0005942463.tif 000017
【０１６２】
上記の処理<VIIIc>は、前述した図１４に示す第１実施例の帯域数判定部１４に対応する個所により実行される。この帯域数判定部１４に対応する個所は、第１実施例における量子化値が０でない(quant(k)≠０)の個所(帯域)の判定だけでなく、量子化値が変化する(quant(k,no-1) ≠ quant(k,no))帯域の判定も行う。すなわち、量子化値が０でない(quant(k) != 0)帯域であって、なおかつ、量子化値が変化する(quant(k,no-1) != quant(k,no))帯域を、符号化帯域数として求める。ここで、no は、量子化ループ回数を表す。
【０１６３】
なお、量子化値の変化の判定は、例えば、ループ no と、それより１回前のループ no-1 による同じ帯域の量子化値の判定(quant(k,no-1) != quant(k,no))に限定されるものではない。例えば、ループ no と、それより１回前の量子化値の判定(quant(k,no-1) != quant(k,no))および２回前の量子化値の判定(quant(k,no-2) != quant(k,no))の連続した２回のループによる判定を行ってもよい。ここで、判定するループ回数は連続した２回に限定されるものではなく、さらに多い回数(例えば、３回)であってもよい。
【０１６４】
このように、本第４実施例は、前述した第１実施例に加えて、コモンスケール値を増加しても量子化値が変化しない帯域を、符号化帯域数から除くことにより、より一層推定精度を向上させることができる。
【０１６５】
なお、上述した第３実施例および第４実施例を組み合わせて符号化帯域数を求めることもできる。すなわち、第１実施例における処理<VIII>として、量子化値が０でない(quant(k)≠０)帯域で、符号化量が閾値以上(spe bit(k) > th)となる帯域で、しかも、量子化値が変化する(quant(k,no-1) ≠ quant(k,no))帯域を、符号化帯域数として求めることもできる。
【０１６６】
図２９は、オーディオ信号符号化装置の全体構成の一例を示すブロック図である。図２９において、参照符号５１はオーディオ入力部、５２はメモリコントローラ、５３はＤＲＡＭ(Dynamic Random Access Memory)、５４はＣＰＵ(Central Processing Unit)および５５はＤＭＡ(Direct Memory Access)部を示す。
【０１６７】
さらに、参照符号５６はストリーム出力部、５７はＩ／Ｏ(Input/Output Port)部、そして、５８はバスを示す。
【０１６８】
図２９に示されるように、オーディオ信号符号化装置は、オーディオ入力部５１，メモリコントローラ５２，ＤＲＡＭ５３，ＣＰＵ５４，ＤＭＡ部５５，ストリーム出力部５６，Ｉ／Ｏ部５７およびバス５８を含む。
【０１６９】
オーディオ入力部５１は、外部から入力されたオーディオ(音声)信号を受け取って、システム内部に取り込む。ここで、入力されたオーディオ信号は、デジタル信号として与えられるが、例えば、入力オーディオ信号がアナログ信号であれば、オーディオ入力部５１により、所定のサンプリング周波数でＡ／Ｄ変換を行ってデジタルデータに変換して取り込まれる。なお、以下の記載では、オーディオ入力信号はデジタルデータであるとして説明する。
【０１７０】
メモリコントローラ５２は、ＣＰＵ５４からの命令等に従って，ＤＲＡＭ５３に対する書き込み(Read)および読み出し(Write)を制御する。ＣＰＵ５４は、オーディオ信号符号化装置全体の制御および入力データに対する符号化処理を行い、ストリーム出力部５６を介してストリーム(例えば、ＡＡＣストリーム)を出力する。
【０１７１】
ここで、ＣＰＵ５４は、例えば、ＲＯＭ(Read Only Memory)やフラッシュメモリ(Flash Memory)或いはＭＲＡＭ(Magnetoresistive Random Access Memory)といった不揮発性メモリ５４０を含む。
【０１７２】
不揮発性メモリ５４０には、例えば、前述した量子化ビット減少特性(傾き)αをビットレート等のパラメータに応じて規定したメモリテーブルが格納される。さらに、不揮発性メモリ５４０には、ＣＰＵ５４(演算処理装置：コンピュータ)に対して、前述したオーディオ信号符号化処理(量子化処理)を実行させるためのオーディオ信号符号化プログラムが格納される。
【０１７３】
なお、オーディオ信号符号化プログラムは、例えば、そのオーディオ信号符号化プログラムが記録された可搬型記録媒体(ＳＤ(Secure Digital)メモリカード)７０からＩ／Ｏ部５７を介して不揮発性メモリ５４０に格納されてもよい。或いは、プログラム(データ)提供者６０のハードディスク装置６１からＩ／Ｏ部５７および回線を介して不揮発性メモリ５４０に格納されてもよい。また、オーディオ信号符号化プログラムが記録された可搬記録媒体(コンピュータ読み取り可能な記録媒体)としては、他にＤＶＤ(Digital Versatile Disk)ディスクやブルーレイディスク(Blu-ray Disc)等の記録媒体であってもよい。
【０１７４】
図２９において、参照符号Ｐ１〜Ｐ３は、オーディオ信号符号化装置の各処理における信号およびデータの流れの経路を示す。すなわち、経路Ｐ１に示されるように、オーディオ入力信号(デジタルデータ)は、オーディオ入力部５１によって内部に取り込まれ、バス５８およびメモリコントローラ５２を介して、ＤＲＡＭ５３に格納される。
【０１７５】
また、経路Ｐ２に示されるように、ＤＲＡＭ５３に格納されたデジタルデータは、メモリコントローラ５２およびバス５８を介して、ＣＰＵ５４の内部にロードされ、上述した量子化処理(符号化処理)を行う。なお、ＤＲＡＭ５３からＣＰＵ５４へのデータ転送は、ＣＰＵ５４ではなくＤＭＡ部５５により実行されることもある。
【０１７６】
さらに、上記符号化処理は、例えば、ＣＰＵ５４に不揮発性メモリ５４０に格納されたオーディオ信号符号化プログラムを実行させることにより行われる。ここで、オーディオ信号符号化プログラムは、必ずしもＣＰＵ５４内部の不揮発性メモリ５４０に格納されなくてもよい。
【０１７７】
さらに、経路Ｐ３に示されるように、符号化されたオーディオ出力データ、すなわち、例えば、前述した図１４における符号化部１２から出力されるＡＡＣ符号化信号は、ストリーム出力部５６またはＩ／Ｏ部５７を介して外部デバイスに出力される。
【０１７８】
なお、外部デバイスは、例えば、ＵＳＢ(Universal Serial Bus)やＳＤ(Secure Digital)メモリカードなどであり、Ｉ／Ｏ部５７を介してＡＡＣ符号化ストリームを受け取る。ここで、図２９に示すオーディオ信号符号化装置は、単なる例であり、上述した各実施例１〜４は、様々なオーディオ信号符号化装置に対して幅広く適用することができるのはいうまでもない。
【０１７９】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１８０】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化装置であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する帯域数判定部と、
前記共通スケール値を、前記符号化帯域数に従って推定する共通スケール推定部と、
を備えることを特徴とするオーディオ信号符号化装置。
【０１８１】
（付記２）
前記共通スケール推定部は、削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とする付記１に記載のオーディオ信号符号化装置。
【０１８２】
（付記３）
前記帯域数判定部は、前記複数の帯域の各量子化値が０ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記１または２に記載のオーディオ信号符号化装置。
【０１８３】
（付記４）
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号化方法であって、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出し、
前記共通スケール値を、前記符号化帯域数に従って推定する、
ことを特徴とするオーディオ信号符号化方法。
【０１８４】
（付記５）
前記共通スケール値の推定は、
削減する量子化ビット数と減少特性から得られた値を前記符号化帯域数により補正して前記共通スケール値を推定する、
ことを特徴とする付記４に記載のオーディオ信号符号化方法。
【０１８５】
（付記６）
前記共通スケール値の推定は、
削減する量子化ビット数を、前記減少特性と前記符号化帯域数の積で除算して前記共通スケール値を推定する、
ことを特徴とする付記４に記載のオーディオ信号符号化方法。
【０１８６】
（付記７）
前削減する量子化ビット数は、前記量子化ビット数の実際の値と量子化可能ビット数の差である、
ことを特徴とする付記５または付記６に記載のオーディオ信号符号化方法。
【０１８７】
（付記８）
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が０ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記４乃至付記７のいずれか１項に記載のオーディオ信号符号化方法。
【０１８８】
（付記９）
前記符号化帯域数の算出は、
前記複数の帯域がまとめられた複数のサブバンドのグループに対して、前記複数のグループの各量子化値が０ではない帯域をカウントして前記符号化帯域数を算出する、
ことを特徴とする付記８に記載のオーディオ信号符号化方法。
【０１８９】
（付記１０）
前記サブバンドのグループに対する前記符号化帯域数の算出は、
前記量子化された周波数スペクトルを符号化する２回目のループに行う、
ことを特徴とする付記９に記載のオーディオ信号符号化方法。
【０１９０】
（付記１１）
前記符号化帯域数の算出は、
前記各帯域で符号化した符号化量が、前記コモンスケール値を増加しても所定の閾値よりも減少しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする付記８に記載のオーディオ信号符号化方法。
【０１９１】
（付記１２）
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が０ではない帯域をカウントして求めた前記符号化帯域数から、前記符号化量が前記コモンスケール値を増加しても所定の閾値より減少しない帯域の数を減算して算出する、
ことを特徴とする付記１１に記載のオーディオ信号符号化方法。
【０１９２】
（付記１３）
前記符号化帯域数の算出は、
前記各帯域における前記各量子化値が、前記コモンスケール値を増加しても変化しない帯域を求めて前記符号化帯域数を算出する、
ことを特徴とする付記８に記載のオーディオ信号符号化方法。
【０１９３】
（付記１４）
前記符号化帯域数の算出は、
前記複数の帯域の各量子化値が０ではない帯域をカウントして求めた前記符号化帯域数から、前記各量子化値が前記コモンスケール値を増加しても変化しない帯域の数を減算して算出する、
ことを特徴とする付記１３に記載のオーディオ信号符号化方法。
【０１９４】
（付記１５）
入力デジタル信号から求めた周波数スペクトルを複数の帯域に分割し、該各帯域のスケールファクターおよび前記複数の帯域に共通な共通スケール値に基づいてスケーリングして量子化し、該量子化された周波数スペクトルを符号化するオーディオ信号符号プログラムであって、
コンピュータに、
前記量子化された周波数スペクトルを符号化するための符号化帯域数を算出する手順と、
前記共通スケール値を、前記符号化帯域数に従って推定する手順と、
を実行させることを特徴とするオーディオ信号符号化プログラム。
【符号の説明】
【０１９５】
１，１１，２１，２０１    量子化部
２，１２，２２，２０２    符号化部
３，１３，２３，２０３    量子化制御部
４，１４，２４    帯域数判定部
５，１５，２５，２０５    共通スケール推定部
６，１６，２６，２０６    初期スケール計算部
７，１７，２７，２０７    スケーリング部
８    フィルタバンク部
９    心理聴覚分析部
１０，２０    量子化処理ユニット
１０ａ，２０ａ    量子化器
５１    オーディオ入力部
５２    メモリコントローラ
５３    ＤＲＡＭ
５４    ＣＰＵ(コンピュータ)
５５    ＤＭＡ部
５６    ストリーム出力部
５７    Ｉ／Ｏ部
５８    バス
６０    プログラム(データ)提供者
６１    ハードディスク装置
７０    可搬型記録媒体(メモリカード) 
５４０    不揮発性メモリ
【図１】
0005942463.tif 000018
【図２】
0005942463.tif 000019
【図３】
0005942463.tif 000020
【図４】
0005942463.tif 000021
【図５】
0005942463.tif 000022
【図６】
0005942463.tif 000023
【図７】
0005942463.tif 000024
【図８】
0005942463.tif 000025
【図９】
0005942463.tif 000026
【図１０】
0005942463.tif 000027
【図１１】
0005942463.tif 000028
【図１２】
0005942463.tif 000029
【図１３】
0005942463.tif 000030
【図１４】
0005942463.tif 000031
【図１５】
0005942463.tif 000032
【図１６】
0005942463.tif 000033
【図１７】
0005942463.tif 000034
【図１８】
0005942463.tif 000035
【図１９】
0005942463.tif 000036
【図２０】
0005942463.tif 000037
【図２１】
0005942463.tif 000038
【図２２】
0005942463.tif 000039
【図２３】
0005942463.tif 000040
【図２４】
0005942463.tif 000041
【図２５】
0005942463.tif 000042
【図２６】
0005942463.tif 000043
【図２７】
0005942463.tif 000044
【図２８】
0005942463.tif 000045
【図２９】
0005942463.tif 000046