(57)【特許請求の範囲】
【請求項１】
指定された平均ビットレートと入力オーディオ信号のＰＥ値とを基にして、使用可能ビット数を特定するビット割当部と、
伝送路で伝送可能な所定のビット数と前記使用可能ビット数との差分を示す補填ビット数および前記ＰＥ値から加算ビット数を特定し、前記補填ビット数から前記加算ビット数を減算したビット数を蓄積するビットリザーバと、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、前記ビットリザーバに蓄積されたビット数で補填する量子化部と、
前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定する推定部とを備え、
前記ビット割当部は、前記使用可能ビット数から前記推定部が推定したビット数を減算したビット数を、前記使用可能ビット数として特定する
ことを特徴とする符号化装置。
【請求項２】
コンピュータが実行する符号化方法であって、
指定された平均ビットレートと入力オーディオ信号のＰＥ値とを基にして、使用可能ビット数を特定し、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、伝送路で伝送可能な所定のビット数と前記使用可能ビット数との差分を示す補填ビット数および前記ＰＥ値から特定される加算ビット数を用いて、前記補填ビット数から前記加算ビット数を減算したビット数を蓄積するビットリザーバのビット数によって補填し、
前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶装置に記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定し、
前記使用可能ビット数を特定する処理は、前記使用可能ビット数から前記推定する処理によって推定されたビット数を減算したビット数を、前記使用可能ビット数として特定する
各処理をコンピュータが実行することを特徴とする符号化方法。
【請求項３】
コンピュータに、
指定された平均ビットレートと入力オーディオ信号のＰＥ値とを基にして、使用可能ビット数を特定し、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、伝送路で伝送可能な所定のビット数と前記使用可能ビット数との差分を示す補填ビット数および前記ＰＥ値から特定される加算ビット数を用いて、前記補填ビット数から前記加算ビット数を減算したビット数を蓄積するビットリザーバのビット数によって補填し、
前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶装置に記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定し、
前記使用可能ビット数を特定する処理は、前記使用可能ビット数から前記推定する処理によって推定されたビット数を減算したビット数を、前記使用可能ビット数として特定する
各処理を実行させることを特徴とする符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置等に関する。
【背景技術】
【０００２】
従来、入力オーディオ信号を符号化する符号化装置が存在する。従来の符号化装置について説明する。図１１は、従来の符号化装置の構成を示す図（１）である。図１１に示すように、この符号化装置１０は、聴覚心理演算部１１、ビット割当部１２、ビットリザーバ１３、周波数変換部１４、量子化部１５、ストリーム生成部１６を有する。
【０００３】
このうち、聴覚心理演算部１１は、入力オーディオ信号に対して聴覚心理演算を実行し、心理聴覚エントロピー（Perceptual  Entropy：PE）の値（以下ＰＥ値と称す。）およびマスキング閾値を算出する処理部である。聴覚心理演算部１１は、ＰＥ値を、ビット割当部１２に出力する。聴覚心理演算部１１は、マスキング閾値の情報を、量子化部１５に出力する。
【０００４】
ＰＥ値は、入力オーディオ信号の符号化が簡単か否かを判断するための尺度を示す値である。例えば、入力オーディオ信号の波形が複雑な場合には、符号化が難しくなるため、ＰＥ値は大きな値となる。これに対して、入力オーディオ信号の波形が単純なものであれば、ＰＥ値は小さな値となる。
【０００５】
マスキング閾値は、例えば、入力オーディオ信号に含まれる周波数のうち、ユーザに聞こえる周波数の領域と、ユーザに聞こえない周波数の領域とを示す情報である。
【０００６】
ビット割当部１２は、指定された平均ビットレートとＰＥ値とを基にして、使用可能ビット数を特定する処理部である。ビット割当部１２は、使用可能ビット数を、量子化部１５に出力する。使用可能ビット数は、量子化部１５に利用されるビット数である。
【０００７】
ビット割当部１２の処理について具体的に説明する。ビット割当部１２は、例えば、ＰＥ値と使用可能ビット数との関係を示すテーブルを保持する。ビット割当部１２は、聴覚心理演算部１１から取得するＰＥ値と、テーブルとを比較して、使用可能ビット数を特定する。
【０００８】
使用可能ビット数を特定した後、ビット割当部１２は、使用可能ビット数と、平均ビットレートとを比較する。使用可能ビット数が平均ビットレートの単位時間あたりのビット数よりも小さい場合には、ビット割当部１２は、使用可能ビット数と平均ビットレートの単位時間あたりのビット数との差分ビット数を、剰余ビット数として、ビットリザーバ１３に通知する。そして、ビット割当部１２は、使用可能ビット数を、量子化部１５に出力する。
【０００９】
使用可能ビット数が平均ビットレートの単位時間あたりのビット数よりも大きい場合には、ビット割当部１２は、使用可能ビット数と平均ビットレートの単位時間あたりのビット数との差分ビット数を、不足ビット数としてビットリザーバ１３に要求する。ビット割当部１２は、不足ビット数を、ビットリザーバ１３から受け付けた後に、使用可能ビット数を、量子化部１５に出力する。
【００１０】
使用可能ビット数と平均ビットレートの単位時間あたりのビット数とが等しい場合には、ビット割当部１２は、使用可能ビット数を量子化部１５に出力する。
【００１１】
図１２は、使用可能ビット数の変化の一例を示す図（１）である。図１２の縦軸は、使用可能ビット数を示し、横軸は、時間を示す。また、区間Ｔａは、符号化の難易度が通常の区間である。区間Ｔｂおよび区間Ｔｃは、符号化が難しい区間である。区間Ｔｄは、符号化が簡単な区間である。ビット数１ａは、平均ビットレートの単位時間あたりのビット数である。
【００１２】
図１２に示すように、区間Ｔａでは、ビット数１ａと使用可能ビット数が同じとなる。区間Ｔｂおよび区間Ｔｃでは、使用可能ビット数が、ビット数１ａよりもビット数１ｂ、ビット数１ｃだけ大きくなる。ビット数１ａおよびビット数１ｃは、不足ビット数に対応する。区間Ｔｄでは、使用可能ビット数が、ビット数１ａよりもビット数１ｄだけ小さくなる。ビット数１ｄは、剰余ビット数に対応する。
【００１３】
ビットリザーバ１３は、補填ビット数を記憶する処理部である。補填ビット数は、伝送路で伝送可能な所定のビット数と、使用可能ビット数との差分を示すビット数である。ビットリザーバ１３は、ビット割当部１２から、剰余ビット数を受け付けた場合には、補填ビット数に剰余ビット数を加算する。
【００１４】
ビットリザーバ１３は、ビット割当部１２から、不足ビット数の要求を受け付けた場合には、補填ビット数から不足ビット数を減算する。そして、ビットリザーバ１３は、不足ビット数を、ビット割当部１２に出力する。
【００１５】
図１３は、補填ビット数の関係の一例を示す図（１）である。図１３の縦軸は、補填ビット数を示し、横軸は、時間を示す。図１３の区間Ｔａ、Ｔｂ、Ｔｃ、Ｔｄは、図１２に示した区間に対応する。また、図１３のビット数１ｂ、１ｃ、１ｄは、図１２のビット数１ｂ、１ｃ、１ｄに対応する。図１３に示すように、補填ビット数は、符号化の難しい区間Ｔｂ、Ｔｃにおいて減少する。また、補填ビット数は、符号化の簡単な区間Ｔｄにおいて増加する。
【００１６】
図１１の説明に戻る。周波数変換部１４は、入力オーディオ信号に対して周波数変換を行うことで、入力オーディオ信号の時間と振幅の関係を、周波数と振幅の関係に変換する処理部である。例えば、周波数変換部１４は、ＭＤＣＴ（modified  discrete  cosine  transform）を行う。周波数変換部１４は、変換後の入力オーディオ信号を、量子化部１５に出力する。
【００１７】
量子化部１５は、マスキング閾値を基にして、各周波数の量子化ステップを特定し、特定した量子化ステップにより、入力オーディオ信号を量子化する。以下の説明において、入力オーディオ信号を量子化したものを、量子化値と表記する。
【００１８】
量子化部１５は、量子化値を求めた後、量子化値のビット数と使用可能ビット数を比較する。量子化部１５は、量子化値のビット数が使用可能ビット数よりも小さい場合には、量子化値をストリーム生成部１６に出力する。
【００１９】
量子化部１５は、量子化値のビット数が使用可能ビット数よりも大きい場合には、量子化ステップの大きさを小さくし、再度入力オーディオ信号を量子化し、量子化値を求める。使用可能ビット数から量子化値のビット数を減算したビット数を、推定誤差ビット数と表記する。量子化部１５は、推定誤差ビット数が、０以下となるまで、上記処理を繰り返し実行する。
【００２０】
ストリーム生成部１６は、量子化部１５から量子化値を受け付け、受け付けた量子化値をビットストリームに変換して、外部装置に出力する処理部である。
【００２１】
次に、符号化装置１０の問題点について説明する。上記のように、符号化装置１０は、推定誤差ビット数が０よりも小さくなるまで、量子化ステップを調整して量子化値を求めるため、量子化値を求めるまでに時間を要してしまうという問題があった。
【００２２】
図１４は、従来技術の問題点を説明するための図（１）である。図１４において、縦軸は量子化値のビット数を示し、横軸は量子化ステップの大きさを示す。量子化ステップ２ａは、１回目の量子化時の量子化ステップの大きさに対応する。量子化ステップ３ａは、２回目の量子化時の量子化ステップの大きさに対応する。量子化ステップ４ａは、Ｎ回目の量子化時の量子化ステップの大きさに対応する。例えば、Ｎは３以上の自然数とする。
【００２３】
また、図１４において、量子化値のビット数２ｂは、量子化ステップ２ａにより量子化した場合の量子化値のビット数である。量子化値のビット数３ｂは、量子化ステップ３ａにより量子化した場合の量子化値のビット数である。量子化値のビット数４ｂは、量子化ステップ４ａにより量子化した場合の量子化値のビット数である。
【００２４】
図１４に示すように、量子化ステップ２ａ、３ａの場合には、量子化値のビット数が、使用可能ビット数５ａを超えてしまうため、推定誤差ビット数が０よりも大きくなる。このため、符号化装置１０は、量子化ステップを繰り返し調整して、推定誤差ビット数が０以下となる、量子化ステップ４ａを特定する。しかし、量子化ステップ４ａを特定するまでに、Ｎ回量子化ループを繰り返すことになり、推定誤差ビット数が０以下となる量子化値を求めるまでの処理負荷が増加してしまう。
【００２５】
上記の符号化装置１０の問題を解消する従来技術として、符号化装置２０が存在する。この符号化装置２０は、使用可能ビット数とマスキング閾値とを基にして、量子化ステップの大きさを推測することで、量子化する処理が何度も実行されることを防止する。
【００２６】
図１５は、従来の符号化装置の構成を示す図（２）である。図１５に示すように、この符号化装置２０は、聴覚心理演算部２１、ビット割当部２２、ビットリザーバ２３、周波数変換部２４、量子化部２５、ストリーム生成部２６を有する。このうち、聴覚心理演算部２１、ビット割当部２２、ビットリザーバ２３、周波数変換部２４、ストリーム生成部２６に関する説明は、図１１に示したものと同様であるため、説明を省略する。
【００２７】
量子化部２５は、使用可能ビット数とマスキング閾値とを基にして、各周波数の量子化ステップを特定する。量子化部２５は、特定した量子化ステップにより、入力オーディオ信号を量子化する。
【００２８】
例えば、量子化部２５は、使用可能ビット数と量子化ステップの大きさとを対応付けたテーブルを保持する。そして、量子化部２５は、ビット割当部２２から取得する使用可能ビット数と、テーブルとを比較して量子化ステップを特定する。そして、量子化部２５は、マスキング閾値を基にして、ユーザに聞こえない周波数領域の量子化ステップがより大きくなるように、また、ユーザに聞こえる周波数領域の量子化ステップがより小さくなるように量子化ステップを調整して、量子化値を求める。
【先行技術文献】
【特許文献】
【００２９】
【特許文献１】特開２００２−１４６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００３０】
しかしながら、上述した従来技術では、量子化値を求めるための処理負荷を軽減させることができないという問題があった。
【００３１】
上記の符号化装置２０は、使用可能ビット数を基にして、量子化ステップを特定しているものの、特定した量子化ステップの大きさは、あくまでも使用可能ビット数を下回るであろうと考えられる大きさに過ぎない。このため、符号化装置２０が、使用可能ビット数から量子化ステップを特定して、量子化値を求めた場合でも、推定誤差ビット数が０よりも大きくなる場合がある。このような場合には、符号化装置２０は、再度量子化ステップの大きさを調整し、推定誤差ビット数が、０以下となるまで処理を繰り返し実行する。
【００３２】
図１６は、従来技術の問題点を説明するための図（２）である。図１５において、縦軸は量子化値のビット数を示し、横軸は量子化ステップの大きさを示す。量子化ステップ６ａは、使用可能ビット数を基に特定された１回目の量子化時の量子化ステップの大きさに対応する。量子化ステップ７ａは、Ｍ回目の量子化時の量子化ステップの大きさに対応する。ここで、Ｍは、上記Ｎよりも小さい自然数とする。
【００３３】
図１６において、量子化値のビット数６ｂは、量子化ステップ６ａにより量子化した場合の量子化値のビット数である。量子化ビット数７ｂは、量子化ステップ７ａにより量子化した場合の量子化値のビット数である。
【００３４】
図１６に示すように、量子化ステップ６ａの場合には、量子化値のビット数が、使用可能ビット数５ａを超えてしまうため、推定誤差ビット数が０よりも大きくなる。このため、符号化装置２０は、量子化ステップを繰り返し調整して、推定誤差ビット数が０以下となる、量子化ステップ７ａを特定する。図１４に示した場合と比較して、量子化ループの回数は減少するものの、推定誤差ビット数が０以下となる量子化値を求めるまでに依然、処理負荷がかかってしまう。
【００３５】
開示の技術は、上記に鑑みてなされたものであって、量子化値を求めるための処理負荷を軽減させることができる符号化装置、符号化方法および符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３６】
開示の符号化装置はビット割当部、ビットリザーバ、量子化部を有する。ビット割当部は、指定された平均ビットレートと入力オーディオ信号の符号化難易度とを基にして、使用可能ビット数を特定する。ビットリザーバは、伝送路で伝送可能な所定のビット数と、使用可能ビット数との差分を補填ビット数として蓄積する。量子化部は、使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって入力オーディオ信号を量子化した量子化値を生成する。また、量子化部は、量子化値のビット数が、使用可能ビット数よりも大きい場合に、使用可能ビット数を超過する量子化値のビット数を、ビットリザーバに蓄積された補填ビット数で補填する。
【発明の効果】
【００３７】
開示の符号化装置によれば、量子化値を求めるための処理負荷を軽減させることができるという効果を奏する。
【図面の簡単な説明】
【００３８】
【図１】図１は、本実施例にかかる符号化装置の構成を示す図である。
【図２】図２は、加算ビット算出テーブルのデータ構造の一例を示す図である。
【図３】図３は、使用可能ビット数の変化の一例を示す図（２）である。
【図４】図４は、補填ビット数の変化の一例を示す図（２）である。
【図５】図５は、ステップ判定テーブルの一例を示す図である。
【図６】図６は、本実施例にかかる符号化装置の処理手順を示すフローチャートである。
【図７】図７は、量子化処理の処理手順を示すフローチャートである。
【図８】図８は、使用可能ビット数を算出する処理手順を示すフローチャートである。
【図９】図９は、ビット割当部のその他の処理を説明するための図である。
【図１０】図１０は、符号化プログラムを実行するコンピュータの一例を示す図である。
【図１１】図１１は、従来の符号化装置の構成を示す図（１）である。
【図１２】図１２は、使用可能ビット数の変化の一例を示す図（１）である。
【図１３】図１３は、補填ビット数の関係の一例を示す図（１）である。
【図１４】図１４は、従来技術の問題点を説明するための図（１）である。
【図１５】図１５は、従来の符号化装置の構成を示す図（２）である。
【図１６】図１６は、従来技術の問題点を説明するための図（２）である。
【発明を実施するための形態】
【００３９】
以下に、本願の開示する符号化装置、符号化方法および符号化プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００４０】
本実施例にかかる符号化装置の構成について説明する。符号化装置１００は、入力オーディオ信号を受け付け、受け付けたオーディオ信号を量子化した後に、ストリームを生成する装置である。図１は、本実施例にかかる符号化装置の構成を示す図である。図１に示すように、この符号化装置１００は、周波数変換部１１０、聴覚心理演算部１２０、ビット割当部１３０、ビットリザーバ１４０、量子化部１５０、ストリーム生成部１６０、推定部１７０を有する。
【００４１】
周波数変換部１１０は、入力オーディオ信号を受け付け、入力オーディオ信号に対して周波数変換を行うことで、入力オーディオ信号の時間と振幅の関係を、周波数と振幅の関係に変換する処理部である。周波数変換部１４は、変換後の入力オーディオ信号を、量子化部１５０に出力する。例えば、周波数変換部１１０は、「3GPP  TS26.4.1AAC  part（5.3  Filter  band）」に記載されたＭＤＣＴ（modified  discrete  cosine  transform）を行う。例えば、周波数変換部１１０は、式（１）を基にして、周波数変換を行ってもよい。
【００４２】
【数１】
0005782921.tif 000002
【００４３】
聴覚心理演算部１２０は、入力オーディオ信号を受け付け、入力オーディオ信号に対して聴覚心理演算を実行し、心理聴覚エントロピー（Perceptual Entropy：PE）の値（以下ＰＥ値と称す。）およびマスキング閾値を算出する処理部である。例えば、聴覚心理演算部１２０は、「3GPP  TS26.403AAC  part（5.4  Psychoacoustic  Model）」に記載された聴覚心理演算を行ってもよい。聴覚心理演算部１２０は、ＰＥ値をビット割当部１３０に出力する。聴覚心理演算部１２０は、マスキング閾値の情報を、量子化部１５０に出力する。
【００４４】
ＰＥ値は、入力オーディオ信号の符号化が簡単か否かを判断するための尺度を示す値である。例えば、入力オーディオ信号の波形が複雑な場合には、符号化が難しくなるため、ＰＥ値は大きな値となる。これに対して、入力オーディオ信号の波形が単純なものであれば、ＰＥ値は小さな値となる。
【００４５】
マスキング閾値は、例えば、入力オーディオ信号に含まれる周波数のうち、ユーザに聞こえる周波数の領域と、ユーザに聞こえない周波数の領域とを示す情報である。
【００４６】
ビット割当部１３０は、指定された平均ビットレート、ＰＥ値、ビットリザーバ１４０の補填ビットを基にして、使用可能ビット数を算出する処理部である。また、ビット割当部１３０は、推定誤差ビット数を基にして、使用可能ビット数を調整する。ビット割当部１３０は、使用可能ビット数を量子化部１５０に出力する。
【００４７】
使用可能ビット数は、量子化部１５０が量子化ステップを特定する場合に利用するものである。補填ビット数は、伝送路で伝送可能な所定のビット数と、使用可能ビット数との差分を示すビット数であり、ビットリザーバ１４０に蓄えられる。推定誤差ビット数は、量子化部１５０が生成する量子化値のビット数と、使用可能ビット数との差分の推定ビット数である。使用可能ビット数、補填ビット数、推定誤差ビット数に関する詳しい説明は後述する。
【００４８】
ビット割当部１３０の処理を具体的に説明する。ビット割当部１３０は、例えば、加算ビット算出テーブルを利用して、加算ビット数を求める。図２は、加算ビット算出テーブルのデータ構造の一例を示す図である。図２に示すように、この加算ビット算出テーブルは、ＰＥ値とビットリザーバの補填ビット数と加算ビット数とを対応付ける。
【００４９】
ビット割当部１３０は、聴覚心理演算部１２０から受け付けたＰＥ値およびビットリザーバ１４０から受け付けた補填ビットと、加算ビット算出テーブルとを比較して、加算ビット数を特定する。加算ビット数は、正のビット数の場合もあり得るし、負のビット数の場合もある。
【００５０】
加算ビット数を算出した後に、ビット割当部１３０は、予め設定される所定のビット数に、加算ビット数を加算することで、使用可能ビット数を算出する。例えば、ビット割当部１３０は、予め設定される所定のビット数を、平均ビットレートの単位時間あたりのビット数としてもよい。
【００５１】
ビット割当部１３０は、加算ビット数を用いて使用可能ビット数を算出した後に、推定誤差ビット数を用いて、使用可能ビット数を調整する。具体的には、ビット割当部１３０は、使用可能ビット数から推定誤差ビット数を減算したビット数を、調整後の使用可能ビット数とする。ビット割当部１３０は、調整後の使用可能ビット数を、量子化部１５０に出力する。また、ビット割当部１３０は、加算ビット数と、推定誤差ビット数を、ビットリザーバ１４０に出力する。
【００５２】
ここで、使用可能ビット数の変化の一例について説明する。図３は、使用可能ビット数の変化の一例を示す図（２）である。図３の縦軸は、使用可能ビット数を示し、横軸は、時間を示す。また、区間Ｔａは、符号化の難易度が通常の区間である。区間Ｔｂおよび区間Ｔｃは、符号化が難しい区間である。区間Ｔｄは、符号化が簡単な区間である。ビット数１Ｙは、平均ビットレートの単位時間あたりのビット数である。線分２Ｙは、推定誤差ビット数による調整を行う前の使用可能ビット数を示す。線分３Ｙは、推定誤差ビット数による調整を行った後の使用可能ビット数に対応する。
【００５３】
図３の区間Ｔａにおいて、使用可能ビット数が推定誤差ビット数Ｘ［Ｔａ］だけ下がる。区間Ｔｂにおいて、使用可能ビット数が推定誤差ビット数Ｘ［Ｔｂ］だけ下がる。区間Ｔｃにおいて、使用可能ビット数が推定誤差ビット数Ｘ［Ｔｃ］だけ下がる。区間Ｔｄにおいて、使用可能ビット数が推定誤差ビット数Ｘ［Ｔｄ］だけ下がる。
【００５４】
ビットリザーバ１４０は、補填ビット数を記録する処理部である。ビットリザーバ１４０は、ビット割当部１３０から加算ビット数を取得した場合には、補填ビット数から加算ビット数を減算する。加算ビット数が正の値の場合には、補填ビット数は、加算ビット数分だけ減少する。加算ビット数が負の値の場合には、補填ビット数は、加算ビット数分だけ増加する。
【００５５】
また、ビットリザーバ１４０は、量子化部１５０から、使用可能ビット数を超える量子化値のビット数を受け付けた場合には、超過したビット数が、補填ビット数以下であるか否かを判定する。使用可能ビット数を超える量子化値のビット数を、誤差ビット数と表記する。
【００５６】
誤差ビット数が、補填ビット数以下の場合には、ビットリザーバ１４０は、誤差ビット数を、補填ビット数で補填する。例えば、ビットリザーバ１４０は、量子化部１５０に対して、再度の量子化値の算出が不要である情報を出力する。そして、ビットリザーバ１４０は、補填ビット数から、誤差ビット数を減算する。
【００５７】
誤差ビット数が、補填ビット数より大きい場合には、ビットリザーバ１４０は、誤差ビット数を、補填ビット数で補填できない。この場合には、ビットリザーバ１４０は、量子化部１５０に対して、補填ビット数が不足する旨の情報を出力する。
【００５８】
ここで、補填ビット数の変化の一例について説明する。図４は、補填ビット数の変化の一例を示す図（２）である。図４の縦軸は、補填ビット数を示し、横軸は時間を示す。図４の区間Ｔａ、Ｔｂ、Ｔｃ、Ｔｄは、図３に示した区間に対応する。線分４Ｙは、推定誤差ビット数による調整が行われる前の補填ビット数を示す。線分５Ｙは、推定誤差ビット数による調整が行われた場合の補填ビット数を示す。なお、図４のＸ［Ｔａ］、Ｘ［Ｔｂ］、Ｘ［Ｔｃ］、Ｘ［Ｔｄ］は、図３のＸ［Ｔａ］、Ｘ［Ｔｂ］、Ｘ［Ｔｃ］、Ｘ［Ｔｄ］と同じである。
【００５９】
図３と図４とを比較すると、使用可能ビット数から推定誤差ビット数が減算されることで、ビットリザーバ１４０の補填ビット数が増加する。このため、ビットリザーバ１４０が、補填ビット数で、ビット数を補填する場合に、誤差ビット数が補填ビット数を上回るという状況を発生しにくくすることができる。
【００６０】
量子化部１５０は、特定した量子化ステップに基づいて、入力オーディオ信号を量子化する処理部である。量子化した入力オーディオ信号を量子化値と表記する。量子化部１５０は、量子化ステップにより、入力オーディオ信号を量子化する場合には、例えば、式（２）を利用する。
【００６１】
【数２】
0005782921.tif 000003
【００６２】
量子化部１５０が量子化ステップを特定する処理について説明する。量子化部１５０は、マスキング閾値と使用可能ビット数に基づいて、各周波数の量子化ステップを特定する。例えば、量子化部１５０は、ステップ判定テーブルを保持する。図５は、ステップ判定テーブルの一例を示す図である。図５に示すように、このステップ判定テーブルは、使用可能ビット数と量子化ステップとを対応付ける。
【００６３】
量子化部１５０は、ビット割当部１３０から受け付ける使用可能ビット数と、ステップ判定テーブルとを比較して、量子化ステップを特定する。量子化部１５０は、マスキング閾値に基づいて、ユーザが聞こえる周波数の量子化ステップがより小さくなるように、量子化ステップに重み付けを行う。また、量子化部１５０は、ユーザが聞こえない周波数の量子化ステップがより大きくなるように、量子化ステップに重み付けを行う。このような処理を量子化部１５０が実行することで、量子化部１５０は、各周波数の量子化ステップを特定する。
【００６４】
次に、量子化部１５０が、量子化値を算出した後に処理について説明する。量子化値のビット数と使用可能ビット数とを比較して、量子化値のビット数が大きいか否かを判定する。量子化値のビット数が、使用可能ビット数未満の場合には、量子化値をストリーム生成部１６０に出力する。
【００６５】
量子化値のビット数が、使用可能ビット数よりも大きい場合には、量子化部１５０は、量子化値のビット数から使用可能ビット数を減算した誤差ビット数を、ビットリザーバ１４０に通知する。量子化部１５０は、ビットリザーバ１４０から、誤差ビット数を補填ビット数で補える旨の情報を受け付けた場合には、量子化値をストリーム生成部１６０に出力する。
【００６６】
これに対して、量子化部１５０は、ビットリザーバ１４０から、誤差ビット数を補填ビット数で補えない旨の情報を受け付けた場合には、量子化ステップの大きさを所定の値だけ大きくして、再度量子化値を求める。量子化部１５０は、量子化値のビット数を、ビットリザーバ１４０に送信し、上記処理を再度実行する。
【００６７】
なお、量子化部１５０は、誤差ビット数を算出するたびに、誤差ビット数の情報を、推定部１７０に出力する。
【００６８】
ストリーム生成部１６０は、量子化部１５０から量子化値を受け付け、受け付けた量子化値をビットストリームに変換して、外部装置に出力する処理部である。例えば、ストリーム生成部１６０は、MPEG-2  AAC（ISO/IEC  1318-7）にて定義されるsyntaxを生成する。
【００６９】
推定部１７０は、誤差ビット数の推定する処理部である。例えば、推定部１７０は、量子化部１５０から誤差ビット数を受け付け、受け付けた誤差ビット数を記憶する。推定部１７０は、記憶した複数の誤差ビット数の平均ビット数を算出することで、誤差ビット数を推定する。推定部１７０が推定した誤差ビット数は、推定誤差ビット数に対応する。推定部１７０は、式（３）を用いて、推定誤差ビット数を算出してもよい。推定部１７０は、推定誤差ビット数をビット割当部１３０に出力する。
【００７０】
【数３】
0005782921.tif 000004
【００７１】
次に、本実施例にかかる符号化装置の処理手順について説明する。図６は、本実施例にかかる符号化装置の処理手順を示すフローチャートである。例えば、図６に示す処理は、符号化装置１００が、入力オーディオ信号を受け付けたことを契機にして実行される。
【００７２】
図６に示すように、符号化装置１００は、入力オーディオ信号に対して周波数変換を行い（ステップＳ１０１）、聴覚心理演算を実行する（ステップＳ１０２）。符号化装置１００は、推定誤差ビット数を推定する（ステップＳ１０３）。
【００７３】
符号化装置１００は、使用可能ビット数を算出し（ステップＳ１０４）、量子化を行う（ステップＳ１０５）。そして、符号化装置１００は、ビットストリームを生成する（ステップＳ１０６）。
【００７４】
次に、図６のステップＳ１０５に示した量子化の処理を具体的に説明する。図７は、量子化処理の処理手順を示すフローチャートである。図７に示すように、符号化装置１００は、使用可能ビット数とマスキング閾値とを基にして、量子化ステップを決定する（ステップＳ２０１）。符号化装置１００は、量子化値を算出し（ステップＳ２０２）、量子化値のビット数を算出する（ステップＳ２０３）。
【００７５】
符号化装置１００は、誤差ビット数を算出し（ステップＳ２０４）、誤差ビット数が０以下であるか否かを判定する（ステップＳ２０５）。符号化装置１００は、誤差ビット数が０以下の場合には（ステップＳ２０５，Ｙｅｓ）、ステップＳ２０９に移行する。
【００７６】
一方、符号化装置１００は、誤差ビット数が０より大きい場合には（ステップＳ２０５，Ｎｏ）、補填ビット数で誤差ビットを補填可能であるか否かを判定する（ステップＳ２０６）。符号化装置１００は、補填ビット数で補填不可能の場合には（ステップＳ２０６，Ｎｏ）、量子化ステップを変更し（ステップＳ２０７）、ステップＳ２０２に移行する。例えば、符号化装置１００は、ステップＳ２０７において、量子化ステップの大きさを、所定の大きさだけ大きくする。
【００７７】
一方、符号化装置１００は、補填ビット数で補填可能の場合には（ステップＳ２０６，Ｙｅｓ）、ビット数を補填し（ステップＳ２０８）、量子化値を出力する（ステップＳ２０９）。
【００７８】
次に、図６のステップＳ１０４に示した使用可能ビット数を算出する処理を具体的に説明する。図８は、使用可能ビット数を算出する処理手順を示すフローチャートである。図８に示すように、符号化装置１００は、ＰＥ値と、ビットリザーバの補填ビット数とを基にして、加算ビット数を算出する（ステップＳ３０１）。
【００７９】
符号化装置１００は、所定のビット数に加算ビット数を加算することで、使用可能ビット数を算出する（ステップＳ３０２）。符号化装置１００は、ビットリザーバの補填ビット数から加算ビット数を減算する（ステップＳ３０３）。
【００８０】
符号化装置１００は、使用可能ビット数から推定誤差ビット数を減算し（ステップＳ３０４）、ビットリザーバの補填ビット数に推定誤差ビット数を加算する（ステップＳ３０５）。そして、符号化装置１００は、使用可能ビット数を出力する（ステップＳ３０６）。
【００８１】
次に、本実施例にかかる符号化装置１００の効果について説明する。符号化装置１００は、量子化値のビット数が使用可能ビット数を上回り、ビット数が不足する場合に、不足するビット数をビットリザーバ１４０の補填ビット数で補う。このため、量子化値のビット数が使用可能ビット数を上回っても、再度量子化ステップを変更して、量子化値を再計算する処理を行わなくても良いので、符号化装置１００の処理負荷を軽減することができる。
【００８２】
また、符号化装置１００のビット割当部１３０は、使用可能ビット数を特定する場合に、使用可能ビット数から推定誤差ビット数を減算し、ビットリザーバ１４０の補填ビット数に推定誤差ビット数分のビット数を加算する。このため、ビットリザーバ１４０が、補填ビット数で、ビット数を補填する場合に、誤差ビット数が補填ビット数を上回るという状況を発生しにくくすることができる。
【００８３】
ところで、図１に示した符号化装置１００の各処理部の処理は一例である。ここでは、ビット割当部１３０のその他の処理について説明する。ビット割当部１３０は、使用可能ビット数が、推定誤差ビット数以上の場合に、使用可能ビット数から推定誤差ビット数を減算するように処理を実行しても良い。このような処理を実行することで、使用可能ビット数が、負の値になることを防止することができる。
【００８４】
図９は、ビット割当部のその他の処理を説明するための図である。図９に示すように、ビット割当部１３０は、ＰＥ値と、ビットリザーバ１４０の補填ビット数に基づいて、加算ビット数を算出する（ステップＳ４０１）。
【００８５】
ビット割当部１３０は、所定のビット数に加算ビット数を加算することで、使用可能ビット数を算出する（ステップＳ４０２）。符号化装置１００は、ビットリザーバ１４０の補填ビット数から加算ビット数を減算する（ステップＳ４０３）。
【００８６】
ビット割当部１３０は、使用可能ビット数が推定誤差ビット数以上であるか否かを判定する（ステップＳ４０４）。ビット割当部１３０は、使用可能ビット数が、推定誤差ビット数未満の場合には（ステップＳ４０４，Ｎｏ）、ステップＳ４０７に移行する。
【００８７】
ビット割当部１３０は、使用可能ビット数が、推定誤差ビット数以上の場合には（ステップＳ４０４，Ｙｅｓ）、使用可能ビット数から推定誤差ビット数を減算したものを使用可能ビット数とする（ステップＳ４０５）。
【００８８】
ビット割当部１３０は、ビットリザーバ１４０の補填ビット数に推定誤差ビット数を加算し（ステップＳ４０６）、使用可能ビット数を量子化部１５０に出力する（ステップＳ４０７）。
【００８９】
次に、図１に示した符号化装置１００と同様の機能を実現する符号化プログラムを実行するコンピュータの一例を説明する。図１０は、符号化プログラムを実行するコンピュータの一例を示す図である。
【００９０】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、図１のビットリザーバ１４０に対応するビットリザーバ２０６を有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８を有する。そして、各装置２０１〜２０８は、バス２０９に接続される。
【００９１】
ハードディスク装置２０８は、例えば、周波数変換プログラム２０８ａ、聴覚心理演算プログラム２０８ｂ、ビット割当プログラム２０８ｃ、量子化プログラム２０８ｄ、ストリーム生成プログラム２０８ｅを有する。ＣＰＵ２０１は、各プログラム２０８ａ〜２０８ｅを読み出して、ＲＡＭ２０７に展開する。
【００９２】
周波数変換プログラム２０８ａは、周波数変換プロセス２０７ａとして機能する。聴覚心理演算プログラム２０８ｂは、聴覚心理演算プロセス２０７ｂとして機能する。ビット割当プログラム２０８ｃは、ビット割当プロセス２０７ｃとして機能する。量子化プログラム２０８ｄは、量子化プロセス２０７ｄとして機能する。ストリーム生成プログラム２０８ｅは、ストリーム生成プロセス２０７ｅとして機能する。
【００９３】
例えば、周波数変換プロセス２０７ａは、周波数変換部１１０に対応する。聴覚心理演算プロセス２０７ｂは、聴覚心理演算部１２０に対応する。ビット割当プロセス２０７ｃは、ビット割当部１３０に対応する。量子化プロセス２０７ｄは、量子化部１５０に対応する。ストリーム生成プロセス２０７ｅは、ストリーム生成部１６０に対応する。
【００９４】
なお、各プログラム２０８ａ〜２０８ｅについては、必ずしも最初からハードディスク装置２０８に記憶させておかなくてもよい。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００がこれらから各プログラム２０８ａ〜２０８ｅを読み出して実行するようにしてもよい。
【００９５】
ところで、図１に示した各処理部１１０〜１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、各処理部は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。また、各処理部１１０〜１６０は、記憶装置を有していてもよい。
【００９６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）指定された平均ビットレートと入力オーディオ信号の符号化難易度とを基にして、使用可能ビット数を特定するビット割当部と、
伝送路で伝送可能な所定のビット数と、前記使用可能ビット数との差分を補填ビット数として蓄積するビットリザーバと、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、前記ビットリザーバに蓄積された補填ビット数で補填する量子化部と
を備えたことを特徴とする符号化装置。
【００９８】
（付記２）前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定する推定部を更に有し、前記ビット割当部は、前記使用可能ビット数から前記推定部が推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記１に記載の符号化装置。
【００９９】
（付記３）前記ビット割当部は、前記推定部が推定したビット数よりも前記使用可能ビット数が大きい場合に、前記使用可能ビット数から前記推定部が推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記２に記載の符号化装置。
【０１００】
（付記４）コンピュータが実行する符号化方法であって、
指定された平均ビットレートと入力オーディオ信号の符号化難易度とを基にして、使用可能ビット数を特定し、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、伝送路で伝送可能な所定のビット数と、前記使用可能ビット数との差分を補填ビット数として蓄積するビットリザーバの補填ビット数によって補填する
各処理をコンピュータが実行することを特徴とする符号化方法。
【０１０１】
（付記５）前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶装置に記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定し、前記使用可能ビット数から、推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記４に記載の符号化方法。
【０１０２】
（付記６）前記推定したビット数よりも前記使用可能ビット数が大きい場合に、前記使用可能ビット数から、前記推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記５に記載の符号化方法。
【０１０３】
（付記７）コンピュータに、
指定された平均ビットレートと入力オーディオ信号の符号化難易度とを基にして、使用可能ビット数を特定し、
前記使用可能ビット数を基にして量子化ステップの大きさを特定し、該量子化ステップによって前記入力オーディオ信号を量子化した量子化値を生成し、
前記量子化値のビット数が、前記使用可能ビット数よりも大きい場合に、該使用可能ビット数を超過する前記量子化値のビット数を、伝送路で伝送可能な所定のビット数と、前記使用可能ビット数との差分を補填ビット数として蓄積するビットリザーバの補填ビット数によって補填する
各処理を実行させることを特徴とする符号化プログラム。
【０１０４】
（付記８）前記量子化値のビット数と前記使用可能ビット数との差分値を順次記憶装置に記憶し、記憶した各差分値を基にして、前記使用可能ビット数を超過する前記量子化値のビット数を推定し、前記使用可能ビット数から、推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記７に記載の符号化プログラム。
【０１０５】
（付記９）前記推定したビット数よりも前記使用可能ビット数が大きい場合に、前記使用可能ビット数から、前記推定したビット数を減算したビット数を、使用可能ビット数として特定することを特徴とする付記８に記載の符号化プログラム。
【符号の説明】
【０１０６】
１００  符号化装置
１１０  周波数変換部
１２０  聴覚心理演算部
１３０  ビット割当部
１４０  ビットリザーバ
１５０  量子化部
１６０  ストリーム生成部
１７０  推定部
【図１】
0005782921.tif 000005
【図２】
0005782921.tif 000006
【図３】
0005782921.tif 000007
【図４】
0005782921.tif 000008
【図５】
0005782921.tif 000009
【図６】
0005782921.tif 000010
【図７】
0005782921.tif 000011
【図８】
0005782921.tif 000012
【図９】
0005782921.tif 000013
【図１０】
0005782921.tif 000014
【図１１】
0005782921.tif 000015
【図１２】
0005782921.tif 000016
【図１３】
0005782921.tif 000017
【図１４】
0005782921.tif 000018
【図１５】
0005782921.tif 000019
【図１６】
0005782921.tif 000020