[第1の実施形態]
図1は、本発明の第1の実施形態に係る符号化装置の機能ブロック図である。
図1に示すように、本実施形態に係る符号化装置1は、ブロック切替部10と、MDCT処理部11と、マスキング閾値生成部12と、聴覚特性算出部13と、マスキング閾値補正部14と、量子化部15と、符号化部16と、多重化部17とを備える。また、符号化装置1は、記憶部18を備える。
ブロック切替部10は、入力信号(オーディオ信号)の特性に基づいて、入力信号に対しModified Discrete Cosine Transform(MDCT)処理を行う際のブロック長を切り替える。例えば、AAC方式での符号化においては、長ブロック(1024点)又は短ブロック(128点)にブロック長を切り替える。
MDCT処理部11は、入力信号に対し長ブロック又は短ブロックに応じた窓長のMDCT処理を行い、入力信号を周波数スペクトルに変換する。例えば、AAC方式での符号化においては、ブロック長が長ブロックであれば窓長2048のMDCT処理を行い、短ブロックであれば窓長256のMDCT処理を行う。
マスキング閾値生成部12は、入力信号に対して聴覚心理分析を行い、当該入力信号から得た周波数スペクトルの量子化において最適なマスキング閾値(初期マスキング閾値)sfbThr0(sfb)を生成する。初期マスキング閾値sfbThr0(sfb)は、帯域(AAC方式におけるスケールファクタバンドsfb。以下「帯域sfb」ともいう)毎に生成する。また、マスキング閾値生成部12は、周波数スペクトルの各帯域sfbにおける電力値(入力パワー)mdct_pow(sfb)と初期マスキング閾値sfbThr0(sfb)とに基づいて、符号化対象の帯域sfbを決定する。更に、マスキング閾値生成部12は、符号化対象の帯域sfbを決定した後、初期マスキング閾値を用いた量子化が可能か否か、言い換えると初期マスキング閾値を補正する必要があるか否かを判断する。初期マスキング閾値を用いた量子化が可能な場合、マスキング閾値生成部12は、初期マスキング閾値を量子化部15に渡す。一方、初期マスキング閾値を用いて量子化できない場合、マスキング閾値生成部12は、初期マスキング閾値sfbThr0(sfb)を、聴覚特性算出部13及びマスキング閾値補正部14の第1の補正部141に渡すとともに、記憶部18に記憶させる。
聴覚特性算出部13は、マスキング閾値の補正に必要な聴覚特性を算出する。本実施形態の聴覚特性算出部13は、聴覚特性として、各帯域sfbの信号対マスク比(Signal Mask Ratio;SMR)を算出する。また、聴覚特性算出部13は、算出した信号対マスク比smr(sfb)を、マスキング閾値補正部14の第1の補正部141に渡すとともに、記憶部18に記憶させる。
マスキング閾値補正部14は、聴覚特性(信号対マスク比smr(sfb))及びビットレート条件に基づいて初期マスキング閾値を補正する。本実施形態のマスキング閾値補正部14は、第1の補正部141と、第2の補正部142と、補正閾値決定部143と、を備える。
第1の補正部141は、量子化による帯域の欠落を許容する条件で初期マスキング閾値を補正する。第2の補正部142は、量子化による帯域の欠落を許容しない条件で初期マスキング閾値を補正する。補正閾値決定部143は、第1の補正部141で補正されたマスキング閾値sfbThr1(sfb)と、第2の補正部142で補正されたマスキング閾値sfbThr2(sfb)とのどちらを量子化に用いるか決定する。以下、第1の補正部141で補正されたマスキング閾値sfbThr1(sfb)を第1の補正閾値ともいい、第2の補正142で補正されたマスキング閾値sfbThr2(sfb)を第2の補正閾値ともいう。
マスキング閾値補正部14では、まず、第1の補正部141で初期マスキング閾値sfbThr0(sfb)を第1の補正閾値sfbThr1(sfb)に補正する。そして、補正閾値決定部143において第1の補正閾値sfbThr1(sfb)を採用するか否かを判定する。補正閾値決定部143は、後述するように、第1の補正閾値についての欠落SFB変動率に基づいて、第1の補正閾値を採用するか否かを決定する。そして、第1の補正閾値を採用すると判定した場合、補正閾値決定部143は、第1の補正閾値を量子化に用いるマスキング閾値に決定し、第1の補正閾値を量子化部15に渡す。一方、第1の補正閾値を採用しないと判定した場合、補正閾値決定部143は、第2の補正閾値を量子化に用いると決定し、第2の補正部142に初期マスキング閾値を補正させる。第2の補正部142は、初期マスキング閾値を第2の補正閾値sfbThr2(sfb)に補正した後、第2の補正閾値sfbThr2(sfb)を量子化部15に渡す。
量子化部15は、初期マスキング閾値sfbThr0(sfb)、第1の補正閾値sfbThr1(sfb)、及び第2の補正閾値sfbThr2(sfb)のいずれかを用いて、周波数スペクトルにおける符号化対象の帯域を量子化する。
符号化部16は、周波数スペクトルを量子化して得られた値を符号化する。AAC方式での符号化の場合、符号化部16は量子化して得られた値をハフマン符号化する。
多重化部17は、符号化されたオーディオ信号を多重化して符号化ストリームを生成する。
記憶部18は、初期マスキング閾値sfbThr0(sfb)及び信号対マスク比smr(sfb)等のマスキング閾値の補正に用いる情報を、読み出し及び書き換えが可能な状態で記憶する。
図2は、第1の実施形態に係る符号化装置における補正閾値決定部の構成例を示すブロック図である。
図2に示すように、補正閾値決定部143は、欠落SFB変動率算出部143aと、欠落SFB情報保持部143bと、判定部143cと、を有する。
欠落SFB変動率算出部143aは、第1の補正閾値sfbThr1(sfb)及び周波数スペクトルの電力値mdct_pow(sfb)に基づいて、量子化により欠落する帯域sfbの変動率Vsfbを算出する。以下、欠落SFB変動率算出部143aで算出した変動率Vsfbを、欠落SFB変動率という。
本実施形態における欠落SFB変動率Vsfbは、現時点の符号化対象のフレーム(Tフレーム)で欠落する帯域における数フレームに渡り連続して欠落している帯域の割合を表す。欠落する帯域は、第1の補正閾値sfbThr1(sfb)と周波数スペクトルの電力値mdct_pow(sfb)との関係がsfbThr1(sfb)>mdct_pow(sfb)である帯域である。また、本実施形態では、Tフレームで欠落する帯域について、Tフレームより時間的に前のフレームにおいて同じ帯域又はその前後の帯域が欠落している場合、連続して欠落していると判断する。
欠落SFB情報保持部143bは、欠落SFB変動率Vsfbの算出に用いる数フレーム分の欠落SFB情報を保持する。欠落SFB情報は、各フレームにおける欠落する帯域の集合である。本実施形態では、図2に示すように、T−1フレーム(Tフレームの1フレーム前)の欠落SFB情報と、T−2フレーム(Tフレームの2フレーム前)の欠落SFB情報とを保持する。
判定部143cは、算出した欠落SFB変動率Vsfbに基づいて、量子化する際のマスキング閾値に第1の補正閾値sfbThr1(sfb)を採用するか否かを判定する。判定部143cは、欠落SFB変動率Vsfbが予め定めた閾値TH1以下の場合、量子化する際のマスキング閾値に第1の補正閾値を採用すると判定する。すなわち、第1の補正閾値を量子化に用いると決定する。この場合、判定部143は、第1の補正閾値を量子化部15に渡す。
一方、欠落SFB変動率Vsfbが閾値よりも小さい場合、判定部143は、第1の補正閾値を採用しない、すなわち第2の補正閾値sfbThr2(sfb)を量子化に用いると決定する。この場合、判定部143cは、第2の補正部142に初期マスキング閾値を補正させる。
このように、本実施形態に係る符号化装置1では、帯域の欠落を許容する条件で補正した第1の補正閾値sfbThr1(sfb)が所定の採用条件を満たしている場合、第1の補正閾値を用いて周波数スペクトルを量子化する。一方、第1の補正閾値が所定の採用条件を満たしていない場合、帯域の欠落を許容しない条件で補正した第2の補正閾値sfbThr2(sfb)を用いて周波数スペクトルを量子化する。
以下、本実施形態に係る符号化装置1における符号化処理の内容を説明する。
図3Aは、第1の実施形態に係る符号化装置における符号化処理を示すフローチャート(その1)である。図3Bは、第1の実施形態に係る符号化装置における符号化処理を示すフローチャート(その2)である。図3Cは、第1の実施形態に係る符号化装置における符号化処理を示すフローチャート(その3)である。
本実施形態の符号化装置1は、入力信号(オーディオ信号)におけるフレーム等の符号化単位のデータのそれぞれに対し、図3A〜図3Cに示すような符号化処理を行う。
符号化装置1は、図3Aに示すように、まず、1フレーム分の入力信号を周波数スペクトルに変換し、各帯域sfbの電力値mdct_pow(sfb)を算出する(ステップS10)。ステップS10の処理は、ブロック切替部10及びMDCT処理部11が行う。
ブロック切替部10は、MDCT処理のブロック長を長ブロック及び短ブロックのいずれにするかを選択して切り替える。ブロック長は、既知の選択方法、例えば入力信号の電力変動比と予測利得変動比とに基づいて選択する。
また、MDCT処理部11は、ブロック切替部10で選択したブロック長に応じた窓長のMDCT処理を行い、入力信号を周波数スペクトルに変換する。その後、MDCT処理部11は、得られた周波数スペクトルに基づき、各帯域sfbの電力値mdct_pow(sfb)を算出する。MDCT処理及び電力値の算出は、それぞれ既知の変換方法及び算出方法のいずれかを用いて行う。
符号化装置1は、次に、周波数スペクトルを量子化する際の初期マスキング閾値sbfThr0(sfb)を生成する(ステップS12)。ステップS12の処理は、マスキング閾値生成部12が行う。
マスキング閾値生成部12は、入力信号に対して聴覚心理分析を行い、帯域sfb毎に初期マスキング閾値sfbThr0(sfb)を求める。初期マスキング閾値sfbThr0(sfb)は、各帯域sfbにおける最小可聴レベルやマスキング効果等に基づき、既知の算出方法のいずれかを用いて算出する。
また、マスキング閾値生成部12は、初期マスキング閾値sfbThr0(sfb)を生成すると、次に、初期マスキング閾値sfbThr0(sfb)と周波数スペクトルの電力値mdct_pow(sfb)とに基づいて符号化対象の帯域を決定する(ステップS14)。ステップS14の処理において、マスキング閾値生成部12は、周波数スペクトルの全帯域のうち、sfbThr0(sfb)<mdct_pow(sfb)である帯域のみを符号化対象とする。
符号化対象の帯域を決定した後、マスキング閾値生成部12は、初期マスキング閾値を補正するか否かを判定するため、初期PE値及び目標PE値を算出する(ステップS16)。本実施形態では、初期PE値が目標PE値より大きいか否かにより、マスキング閾値を補正するか否かを判定する(ステップS18)。
ここで、PE値とは、音響パラメータの1つである知覚エントロピー(Perceptual Entropy)の値であり、雑音を知覚することがないよう量子化するのに必要なビット数を表す。初期PE値は、符号化対象の帯域における電力値mdct_pow(sfb)と初期マスキング閾値sfbThr0(sfb)とに基づいて算出されるPE値である。また、目標PE値は、符号化に使用可能なビット数に基づいて算出されるPE値である。初期PE値及び目標PE値は、既知の算出方法のいずれか(例えば、非特許文献1に記載された算出方法)を用いて算出する。
知覚エントロピーの値は、上記のように量子化に必要なビット数と関係があり、初期PE値が目標PE値よりも大きい場合、初期マスキング閾値を用いた量子化で使用するビット量が使用可能なビット数を超えると判断できる。一方、初期PE値が目標PE値以下である場合、初期マスキング閾値を用いた量子化で使用するビット量が使用可能なビット数内に収まると判断できる。よって、初期PE値と目標PE値との大小関係に基づいて初期マスキング閾値を用いた量子化が可能であるか否か、すなわち初期マスキング閾値を補正する必要があるか否かを判断できる。
初期PE値が目標PE値以下の場合(ステップS18;No)、マスキング閾値生成部12は、マスキング閾値を補正しないと判定し、量子化部15に初期マスキング閾値sfbThr0(sfb)を渡す。この場合、符号化装置1は、図3Cに示すように、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する(ステップS30)。ステップS30の量子化は、量子化部15が行う。量子化部15は、既知の量子化方法のいずれかを用いて周波数スペクトルを量子化する。
一方、初期PE値が目標PE値より大きい場合(ステップS18;Yes)、マスキング閾値生成部12は、マスキング閾値を補正すると判定する。この場合、マスキング閾値生成部12は、初期マスキング閾値sfbThr0(sfb)を聴覚特性算出部13に渡す。また、マスキング閾値生成部12は、初期マスキング閾値sfbThr0(sfb)及び目標PE値を、マスキング閾値補正部14の第1の補正部141に渡すとともに、記憶部18に記憶させる。その後、符号化装置1は、図3Bに示したステップS20〜S28のようなマスキング閾値の補正処理を行う。
マスキング閾値を補正する場合、符号化装置1は、次に、周波数スペクトル等に基づき聴覚特性を算出する(ステップS20)。ステップS20の処理は、聴覚特性算出部16が行う。
聴覚特性算出部16は、各帯域sfbにおける信号対マスク比smr(sfb)、すなわち各帯域における電力値mdct_pow(sfb)と初期マスキング閾値sfbThr0(sfb)との差分値を算出する。信号対マスク比smr(sfb)を算出すると、聴覚特性算出部16は、算出した信号対マスク比smr(sfb)を、マスキング閾値補正部14の第1の補正部141に渡すとともに、記憶部18に記憶させる。
聴覚特性(信号対マスク比)の算出が終わると、符号化装置1は、次に、聴覚特性等に基づいて、量子化による帯域の欠落を許容する条件で初期マスキング閾値を補正する(ステップS22)。ステップS22は、マスキング閾値補正部14の第1の補正部141が行う。
第1の補正部141は、例えば、下記式(1)を用い、電力値mdct_pow(sfb)と補正後のマスキング閾値sfbThr1(sfb)とに基づいて算出されるPE値が目標PE値になるようマスキング閾値を補正する。
式(1)において、rは補正パラメータである(非特許文献1を参照)。
また、第1の補正部141は、帯域の欠落を許容するため、補正後のマスキング閾値sfbThr1(sfb)に上限値を設定せずにステップS22の補正処理を行う。また、第1の補正部141は、マスキング閾値の補正を終えると、補正されたマスキング閾値(第1の補正閾値sfbThr1(sfb))を、補正閾値決定部143の欠落SFB変動率算出部143a、及び判定部143cに送る。
初期マスキング閾値を第1の補正閾値に補正する処理が終わると、符号化装置1は、次に、補正されたマスキング閾値(第1の補正閾値)の欠落SFB変動率Vsfbを算出する(ステップS24)。ステップS24は、欠落SFB変動率算出部143aが行う。
欠落SFB変動率算出部143aは、ステップS24の処理として、まず、現在の符号化対象フレーム(Tフレーム)に対する第1の補正閾値sfbThr1(sfb)と電力値mdct_pow(sfb)とを用いて欠落する帯域を抽出する。次に、欠落SFB変動率算出部143aは、欠落SFB情報保持部143bからT−1フレームの欠落SFB情報及びT−2フレームの欠落SFB情報を読み出し、Tフレームの欠落する帯域毎に、各欠落SFB情報に含まれる欠落する帯域と照合する。そして、Tフレームにおける1つの欠落する帯域と同じ帯域又はその前後の帯域が各欠落SFB情報に含まれる場合、その1つの欠落する帯域を連続して欠落する帯域と判定する。その後、欠落SFB変動率算出部143aは、連続して欠落する帯域の数をTフレームの欠落する帯域の総数で除した値を欠落SFB変動率Vsfbとして判定部143cに渡す。また、欠落SFB変動率算出部143aは、欠落SFB変動率Vsfbの算出を終えると、欠落SFB情報保持部143bで保持する情報を更新する。すなわち、T−1フレームの欠落SFB情報をT−2フレームの欠落SFB情報として保持し、Tフレームの欠落SFB情報をT−1フレームの欠落SFB情報として保持する。
なお、欠落SFB変動率Vsfbは、上記の方法に限らず、他の方法で算出してもよい。また、オーディオ信号における先頭の数フレームを符号化するときのように、1フレーム前及び2フレーム前の欠落SFB情報を保持していない場合、欠落SFB変動率算出部143aは、予め定めた値を欠落SFB変動率Vsfbとする。この予め定めた値は、例えば、次のステップで欠落SFB変動率Vsfbと比較する閾値TH1よりも小さな値とする。
欠落SFB変動率Vsfbの算出を終えると、符号化装置1は、次に、第1の補正閾値及び第2の補正閾値のどちらを量子化に用いるかを決定するため、欠落SFB変動率Vsfbと予め定めた閾値TH1とを比較する(ステップS26)。ステップS26は、判定部143cが行う。Vsfb>TH1の場合(ステップS26;Yes)、判定部143cは、量子化する際のマスキング閾値に第1の補正閾値を採用すると判定し、第1の補正閾値を量子化部15に渡す。これにより、量子化に用いるマスキング閾値が第1の補正閾値sfbThr1(sfb)に決定される。この場合、図3Cに示すように、量子化部15は、第1の補正閾値、すなわち帯域の欠落を許容する条件で補正したマスキング閾値を用いて周波数スペクトルを量子化する(ステップS32)。一方、Vsfb≦TH1の場合(ステップS26;No)、判定部143cは、量子化する際のマスキング閾値に第1の補正閾値を採用しないと判定し、第2の補正部142にマスキング閾値を補正させる。これにより、量子化に用いるマスキング閾値が第2の補正閾値sfbThr2(sfb)に決定される。
第2の補正部142は、判定部143cからのマスキング閾値の補正を指示する信号を受け取ると、聴覚特性等に基づいて、量子化による帯域の欠落を許容しない条件でマスキング閾値を補正する(ステップS28)。ステップS28は、ステップS22と同様、式(1)を用い、補正後のマスキング閾値と電力値とから算出されるPE値が目標PE値になるようマスキング閾値を補正する。ただし、ステップS28では、帯域の欠落を許容しない条件で初期マスキング閾値を補正する。そのため、第2の補正部142は、補正後のマスキング閾値sfbThr2(sfb)に帯域が欠落しない上限値を設定してステップS28の補正処理を行う。量子化により欠落する帯域は、マスキング閾値が周波数スペクトルの電力値mdct_pow(sfb)よりも大きい帯域である。そのため、補正後のマスキング閾値sfbThr2(sfb)の上限値は、周波数スペクトルの電力値mdct_pow(sfb)以下の値に設定する。
第2の補正部142は、マスキング閾値の補正を終えると、補正されたマスキング閾値(第2の補正閾値)を量子化部15に渡す。この場合、図3Cに示すように、量子化部15は、帯域の欠落を許容しない条件で補正したマスキング閾値を用いて周波数スペクトルを量子化する(ステップS34)。
こうして初期マスキング閾値sfbThr0(sfb)、第1の補正閾値sfbThr1(sfb)、及び第2の補正閾値sfbThr2(sfb)のいずれかを用いて周波数スペクトルを量子化すると、量子化部15は、量子化された値を符号化部16に渡す。すると、符号化部16は、固定ハフマン符号化等の既知の符号化方法を用いて、量子化された値を符号化する(ステップS36)。そして、符号化を終えると、符号化部16は、符号化したデータを多重化部17に渡す。これにより、入力信号(オーディオ信号)の1フレーム分の符号化処理が終了する。
符号化処理を終えると、符号化装置1(多重化部17)は、符号化されたオーディオ信号(オーディオデータ)にヘッダ情報等を付加した符号化ストリームを生成して出力する。
本実施形態で算出する欠落SFB変動率Vsfbは、現時点の符号化対象のフレームにおいて欠落する帯域における、3つの連続するフレームで欠落する帯域sfbの数の割合である。そのため、複数のフレームで連続して欠落する帯域の割合が大きいほど、欠落SFB変動率Vsfbが大きくなる。すなわち、複数のフレームで連続して欠落する帯域の割合が小さいほど、欠落SFB変動率Vsfbは小さくなる。
周波数スペクトルのピーク位置(電力値のパターン)が激しく変化するオーディオ信号では、欠落する帯域も激しく変化するため、連続する数フレームにおいて欠落する帯域はフレーム毎にばらばらである。そのため、周波数スペクトルのピーク位置が激しく変化するオーディオ信号を、欠落を許容する条件で補正したマスキング閾値を用いて量子化すると、例えば、連続して聞こえる原音が途切れて聞こえる等の音質の劣化につながる。よって、この種のオーディオ信号を量子化する際には、帯域の欠落を許容しない条件で補正したマスキング閾値を用いて量子化することが好ましい。
周波数スペクトルのピーク位置が激しく変化し連続する数フレームにおいて欠落する帯域がばらばらのオーディオ信号は、複数のフレームで連続して欠落する帯域の割合が小さい。そのため、上記の方法で算出した欠落SFB変動率Vsfbは小さくなる。したがって、本実施形態では、オーディオ信号の欠落SFB変動率Vsfbが所定の閾値TH1よりも小さい場合、欠落を許容しない条件で補正したマスキング閾値を量子化に用いる。これにより、周波数スペクトルのピーク位置が激しく変化するオーディオ信号は、欠落を許容しない条件で補正したマスキング閾値を用いて量子化することができる。よって、連続して聞こえる原音が符号化後は途切れて聞こえる等の音質の劣化を抑制できる。
一方、欠落を許容しない条件で補正したマスキング閾値は、音質の面で重要な帯域が過度に補正されている。このような過度に補正されたマスキング閾値を用いて量子化すると、知覚可能な量子化誤差が発生しやすく、音質の劣化につながる。このような過度の補正による音質の劣化は、ハープシコード等の周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号、欠落を許容しない条件で補正したマスキング閾値を用いて量子化した場合に顕著となる。
周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号は、欠落する帯域の変動も緩やかであり、連続する数フレームに渡って欠落する帯域が多い。そのため、周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号は、上記の方法で算出した欠落SFB変動率Vsfbが大きくなる。本実施形態では、オーディオ信号の欠落SFB変動率Vsfbが所定の閾値TH1以上の場合、欠落を許容する条件で補正したマスキング閾値を量子化に用いる。したがって、周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号は、欠落を許容する条件で補正したマスキング閾値を用いて量子化される。よって、音質的に重要な帯域のマスキング閾値が過度に補正されることによる音質の劣化を抑制できる。
上記のマスキング閾値の補正処理について、図4A及び図4Bを参照しながら具体的に説明する。
図4Aは、第1の補正部で補正されたマスキング閾値と周波数スペクトルとの関係の一例を示すグラフである。
1フレーム分の入力信号に対しステップS10〜S14の処理を行うと、例えば、図4Aに示すような、周波数スペクトルの各帯域sfbの電力値mdct_pow(sfb)及び初期マスキング閾値sfbThr0(sfb)が得られる。なお、図4Aには、T−2フレーム、T−1フレーム、及びTフレームの連続する3フレーム分の周波数スペクトルの各帯域sfbの電力値mdct_pow(sfb)及び初期マスキング閾値sfbThr0(sfb)を示している。この3フレームのうち、下段のTフレームが現時点で符号化対象のフレームである。また、中段のT−1フレームはTフレームの1つ前のフレームであり、上段のT−2フレームはTフレームの2つ前のフレームである。図4Aに示したグラフでは、下段のTフレームと上段のT−2フレームとは電力値mdct_pow(sfb)及び初期マスキング閾値sfbThr0(sfb)の概形がほぼ同じであるが、中断のT−1フレームは概形が全く異なる。
初期マスキング閾値sfbThr0(sfb)は、上記のように、対応する周波数スペクトルの量子化に最適なマスキング閾値である。そのため、ステップS16,S18の処理により初期マスキング閾値sfbThr0(sfb)を用いた量子化が可能であると判定した場合、符号化装置1は、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する(ステップS30)。
しかしながら、低ビットレート条件で符号化する場合、すなわち周波数スペクトルの符号化に使用可能なビット数が少ない場合、量子化誤差を初期マスキング閾値以下にできないことが多い。量子化誤差を初期マスキング閾値以下にできない場合、符号化装置1は、ビットレート条件や聴覚特性等に基づいて、音質がなるべく劣化しない範囲でマスキング閾値を大きくする(緩める)補正を行う。
本実施形態の符号化装置1では、上述のように、まず、量子化による帯域の欠落を許容する条件でマスキング閾値を補正する(ステップS22)。この際、図4Aに示した3つのフレームにおける補正後のマスキング閾値(第1の補正閾値)sfbThr1(sfb)は、それぞれ実線の折れ線で示した概形となる。そして、Tフレームの量子化に第1の補正閾値sfbThr1(sfb)を用いるか否かは、欠落SFB変動率Vsfbに基づいて決定する。
Tフレームの量子化に第1の補正閾値sfbThr1(sfb)を用いた場合に欠落する帯域は、sfbThr1(sfb)>mdct_pow(sfb)となる帯域である。図4Aの下段に示した例において、量子化により欠落する帯域は、帯域sfb5、sfb9、及びsfb12の3つである。一方、T−1フレームで欠落するのは帯域sfb3、sfb8であり、T−2フレームで欠落するのは帯域sfb5、sfb9、及びsfb12である。
T−1フレームでは帯域sfb5及びその前後の帯域sfb4及びsfb6の3つの帯域が欠落していない。また、T−1フレームでは、帯域sfb12及びその前の帯域sfb11が欠落していない。一方、T−1フレームでは帯域sfb9の前の帯域sfb8が欠落しており、T−2フレームでは帯域sfb9が欠落している。すなわち、図4Aに示した例において、Tフレームの欠落する3つの帯域sfb5,sfb9,sfb12のうち、3フレームに渡り連続して欠落していると判断されるのは帯域sfb9のみである。したがって、図4Aに示した例におけるTフレームについての欠落SFB変動率Vsfbは、1/3となる。よって、ステップS26で欠落SFB変動率Vsfbと比較する閾値TH1が1/3よりも小さい値であれば、ステップS26の判定は「Yes」となり、Tフレームの周波数スペクトルは第1の補正閾値sfbThr1(sfb)を用いて量子化することになる。一方、閾値TH1が1/3以上の値であれば、ステップS26の判定は「No」となり、Tフレームの周波数スペクトルは第2の補正閾値sfbThr2(sfb)を用いて量子化することになる。
図4Bは、第2の補正部で補正されたマスキング閾値と周波数スペクトルとの関係の一例を示すグラフである。
第2の補正部142でマスキング閾値を補正した場合の補正されたマスキング閾値sfbThr2(sfb)は、例えば、図4Bに実線の折れ線で示したような概形になる。なお、図4Bには、図4Aの下段に示したTフレームに対する初期マスキング閾値を第2の補正部142で補正した例を示している。また、図4Bには、比較のため第1の補正閾値sfbThr1(sfb)を二点鎖線で示している。
第2の補正閾値sfbThr2(sfb)は、帯域の欠落を許容しない条件で補正したマスキング閾値である。したがって、図4Bに示したように、第1の補正閾値では欠落する帯域sfb5、sfb9、及びsfb12を含む全ての帯域で、sfbThr2(sfb)<mdct_pow(sfb)となっている。ただし、帯域sfb5、sfb9、及びsfb12の欠落を防ぐため、これらの帯域のビット数を低減できない分、他の帯域でマスキング閾値の補正量を多くしてビット数を減らしている。そのため、帯域sfb1及びsfb2についてのマスキング閾値が過剰に補正されることとなる。
オーディオ信号の符号化においては、初期マスキング閾値を用いて量子化することが理想的である。そのため、マスキング閾値を補正する場合、補正後のマスキング閾値の概形と初期マスキング閾値の概形との類似度が高くなるようにすることが好ましい。しかしながら、帯域の欠落を許容しない条件でマスキング閾値を補正した場合、図4Bに示したように、初期マスキング閾値との概形の類似度のずれが大きくなる。よって、周波数スペクトルのピーク位置の変動が緩やかなオーディオ信号の場合、例えば図4BのTフレームと似たスペクトルパターンが続くオーディオ信号の場合、過剰に補正された帯域での量子化誤差が知覚されるようになり、音質の劣化につながる。そのため、周波数スペクトルのピーク位置の変動が緩やかで欠落SFB変動率Vsfbが閾値TH1より大きい場合、欠落を許容する条件で補正したマスキング閾値を用いて量子化する。これにより、帯域の欠落を許容しない条件で補正したマスキング閾値を用いた量子化した場合に生じうる音質の劣化を抑制する。
上記のような符号化処理を行う本実施形態の符号化装置1は、例えばコンピュータと、コンピュータに上記の符号化処理を実行させるプログラムとにより実現可能である。以下、コンピュータとプログラムにより実現される符号化装置1について、図5を参照しながら説明する。
図5は、符号化装置として動作させるコンピュータのハードウェア構成の例を示す模式図である。
図5に示すように、符号化装置として動作させるコンピュータ5は、Central Processing Unit(CPU)50と、主記憶装置51と、補助記憶装置52と、入力装置53と、出力装置54と、を備える。また、コンピュータ5は、Digital Signal Processor(DSP)55と、記憶媒体駆動装置56と、インタフェース装置57と、を更に備える。コンピュータ5におけるこれらの要素50〜57は、バス59により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
CPU 50は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ5の全体の動作を制御する演算処理装置である。
主記憶装置51は、Read Only Memory(ROM)51a及びRandom Access Memory(RAM)51bを有する。ROM 51aには、例えばコンピュータ5の起動時にCPU 50が読み出す所定の基本制御プログラム等が予め記録されている。また、RAM 51bは、CPU 50が各種のプログラムを実行する際に、必要に応じて作業用記憶領域として使用する。本実施形態においては、例えば符号化するオーディオ信号、マスキング閾値等の一時的な記憶にRAM 51bを使用する。
補助記憶装置52は、Hard Disk Drive(HDD)やSolid State Drive(SSD)等の主記憶装置51に比べて大容量の記憶装置である。補助記憶装置52には、CPU 50によって実行される各種のプログラムや各種のデータ等を記憶させる。補助記憶装置52に記憶させるプログラムとしては、例えば、オーディオ信号の符号化や再生を行うオーディオプレイヤーのプログラムが挙げられる。また、補助記憶装置52に記憶させるデータとしては、例えば、上記のプレイヤーにより符号化されたオーディオ信号のデータが挙げられる。
入力装置53は、例えばキーボード装置やマウス装置であり、コンピュータ5のオペレータにより操作されると、その操作内容に対応付けられている入力情報をCPU 50に送信する。
出力装置54は、例えば液晶ディスプレイやスピーカである。液晶ディスプレイは、CPU 50等から送信される表示データに従って各種のテキスト、画像等を表示する。また、スピーカは、CPU 50やDSP 55等から送信される音声データやオーディオデータを出力する。
DSP 55は、CPU 50からの制御信号等に従ってオーディオ信号の符号化処理、復号化(再生)処理等を行う演算処理装置である。
記憶媒体駆動装置56は、図示しない可搬型記憶媒体に記録されているプログラムやデータの読み出し、補助記憶装置52に記憶されたデータ等の可搬型記憶媒体への書き込みを行う。可搬型記憶媒体としては、例えば、USB規格のコネクタが備えられているフラッシュメモリが利用可能である。また、可搬型記憶媒体としては、Compact Disk(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等の光ディスクも利用可能である。
インタフェース装置57は、例えばオーディオ入出力装置や通信制御装置である。オーディオ入出力装置は、例えばコンピュータ5とマイクやオーディオ装置とを接続してオーディオ信号の入力や出力を行う。通信制御装置は、コンピュータ5とインターネット等の通信ネットワークとを通信可能に接続し、通信ネットワークを介した外部通信装置等との通信によりオーディオデータ等の送受信を行う。
このコンピュータ5は、CPU 50が補助記憶装置52から上述した符号化処理を含むプログラムを読み出し、DSP 55、主記憶装置51、補助記憶装置52等と協働してオーディオ信号の符号化処理を実行する。この際、CPU 50は、符号化処理における演算処理をDSP 55に実行させる。DSP 55は、オーディオ信号を周波数スペクトルに変換し、初期マスキング閾値を生成する。オーディオ信号は、例えば音楽CD等の可搬型記憶媒体から読み出して入力してもよいし、インタフェース装置57を介した通信でコンピュータ5に入力してもよい。また、DSP 55は、初期PE値及び目標PE値を算出し、それらの大小関係から初期マスキング閾値を用いたオーディオ信号の量子化が可能か否かを判定する。そして、初期マスキング閾値を用いて量子化することができない場合、DSP 55は、聴覚特性を算出し、量子化による帯域の欠落を許容する条件でマスキング閾値を補正する。更に、DSP 55は、補正されたマスキング閾値(第1の補正閾値)に基づいて欠落SFB変動率Vsfbを算出し、第1の補正閾値を量子化に用いるか否かを判定する。そして、第1の補正閾値を量子化に用いると決定した場合、第1の補正閾値を用いて周波数スペクトルを量子化する。一方、第1の補正閾値を量子化に用いないと決定した場合、帯域の欠落を許容しない条件で初期マスキング閾値を補正し、補正後のマスキング閾値を用いて周波数スペクトルを量子化する。また、量子化の後、DSP 55は、続けて符号化及び多重化を行う。加えて、DSP 55は、上記の処理の実行中、初期マスキング閾値、目標PE値、及び聴覚特性(信号対マスク比)等をRAM 51bや補助記憶装置52に記憶させる処理、及びRAM 51bや補助記憶装置52から読み出す処理を行う。
コンピュータ5で符号化したオーディオ信号のデータ(オーディオデータ)は、例えば、補助記憶装置52に記憶させておき、必要に応じてコンピュータ5で復号化(再生)する。また、インタフェース装置57として通信制御装置を備えたコンピュータ5であれば、例えば、オーディオデータを、通信ネットワークを介して他のコンピュータ等に提供(配信)することができる。
なお、符号化装置1として用いるコンピュータ5は、図5に示した構成に限らず、CPU 50においてオーディオ信号の符号化処理を行う構成であってもよい。また、符号化装置1として用いるコンピュータ5は、種々のプログラムを実行することにより複数の機能を実現する汎用型のものに限らず、オーディオ信号の符号化、復号化に特化されたオーディオ装置でもよい。
以上説明したように、第1の実施形態によれば、量子化に用いるマスキング閾値を補正する際に、まず、第1の補正部141において量子化による帯域の欠落を許容する条件でマスキング閾値を補正する。そして、第1の補正部141で補正したマスキング閾値を量子化に用いた場合に欠落する帯域sfbの変動率(時間連続性)に基づいて、帯域の欠落を許容する条件及び許容しない条件のいずれの条件で補正したマスキング閾値を量子化に用いるか決定する。そのため、符号化対象のオーディオ信号の特性に応じて、帯域の欠落を許容して補正したマスキングと許容しない補正したマスキング閾値のうち音質が劣化しにくいほうのマスキング閾値を用いて量子化することができる。例えば、周波数スペクトルのピーク位置の変動が激しいオーディオ信号を符号化する場合には欠落を許容しない条件で補正したマスキング閾値を用いて量子化することで、連続音の途切れ等による音質の劣化を抑制できる。一方、周波数スペクトルのピーク位置の変動が緩やかなオーディオ信号を符号化する場合には欠落を許容する条件で補正したマスキング閾値を用いて量子化することで、マスキング閾値が過剰に補正され量子化誤差が大きくなることによる音質の劣化を抑制できる。
また、帯域の欠落を許容する条件で補正したマスキング閾値と、欠落を許容しない条件で補正したマスキング閾値とのどちらを量子化に用いるかを、欠落SFB変動率Vsfbに基づいて判定している。欠落SFB変動率Vsfbは、上記のように、現時点の符号化対象のフレームにおいて欠落する帯域sfbのうち数フレームの間連続して欠落する帯域の割合である。そのため、入力信号(オーディオ信号)の特性等を解析することなく、帯域の欠落を許容する条件で補正したマスキング閾値と、欠落を許容しない条件で補正したマスキング閾値とのどちらを量子化に用いるかを容易に判定することができる。
更に、本実施形態では、符号化処理の最中に、符号化装置1がリアルタイムかつ自動的に、欠落を許容するマスキング閾値と許容しないマスキング閾値とのどちらを量子化に用いるかを決定する。また、欠落した帯域の数及び欠落の連続性から算出した欠落SFB変動率に基づいてマスキング閾値を決定するので、少ない計算量で音質劣化をより抑制できるマスキング閾値を決定し、量子化することができる。そのため、本実施形態の符号化装置及び符号化方法は、ライブ放送等の入力されたオーディオ信号を逐次符号化しながら出力(配信)する用途への適用が容易である。
なお、本実施形態では1つ前のフレーム及び2つ前のフレームについての欠落SFB情報を用いて欠落する帯域の変動率を判定しているが、これに限らず、更に多くのフレームについての欠落SFB情報を用いて欠落する帯域の変動率を判定してもよい。加えて、欠落する帯域の変動率は、欠落する帯域における複数フレームで連続して欠落する帯域の割合に限らず、他の算出方法で算出しても良い。
また、本実施形態では、図1に示したように、マスキング閾値を補正する補正部として、第1の補正部141と第2の補正部142との2つの補正部を設けている。しかしながら、マスキング閾値の補正は、これに限らず、1つの補正部で行ってもよいことはもちろんである。その場合、マスキング閾値の補正は、1つの初期マスキング閾値に対する1回目の補正は帯域の欠落を許容する条件で行うようにする。一方、補正閾値決定部143から2回目の補正の指示を受けた場合には、帯域の欠落を許容しない条件で行うようにする。
また、ステップS20で算出する聴覚特性は、信号対マスク比に限らず、他の特性であってもよい。
更に、符号化装置1は、図1に示したようなオーディオ信号の符号化のみを行う装置に限らず、映像信号の符号化を行う装置であってもよい。映像信号の符号化を行う装置では、図1に示した構成に加え、動画像の符号化を行う構成を備える。このような装置では、入力された映像信号の符号化を動画像の符号化と音声の符号化とに分けて行った後、符号化した動画像と音声とを多重化する。
[第2の実施形態]
図6は、本発明の第2の実施形態に係る符号化装置の機能ブロック図である。図7は、第2の実施形態に係る符号化装置における補正閾値決定部の構成例を示すブロック図である。
図6に示すように、本実施形態に係る符号化装置1は、ブロック切替部10と、MDCT処理部11と、マスキング閾値生成部12と、聴覚特性算出部13と、マスキング閾値補正部14と、量子化部15と、符号化部16と、多重化部17とを備える。また、本実施形態に係る符号化装置1におけるマスキング閾値補正部14は、第1の補正部141と、第2の補正部142と、補正閾値決定部143とを備える。
本実施形態におけるこれらの構成要素の機能は、第1の実施形態で説明したとおりである。ただし、第1の実施形態とは異なり、補正閾値決定部143には、第1の補正部141で補正したマスキング閾値(第1の補正閾値)sfbThr1(sfb)と、第2の補正部142で補正したマスキング閾値(第2の補正閾値)sfbThr2(sfb)とが入力される。そして、補正閾値決定部143は、第1の補正閾値sfbThr1(sfb)と第2の補正閾値sfbThr2(sfb)とのどちらを量子化に用いるかを決定した後、量子化に用いるほうの補正閾値のみを量子化部15に渡す。
本実施形態における補正閾値決定部143は、図7に示すように、欠落SFB変動率算出部143aと、欠落SFB情報保持部143bと、判定部143cと、を有する。このうち、欠落SFB変動率算出部143a及び欠落SFB情報保持部143bは、第1の実施形態で説明したとおりである。一方、判定部143cは、第1の補正部141で補正した第1の補正閾値sfbThr1(sfb)、及び欠落SFB変動率算出部143aで算出した欠落SFB変動率Vsfbに加え、第2の補正部142で補正した第2の補正閾値sfbThr2(sfb)が入力される。判定部143cは、欠落SFB変動率Vsfbと閾値TH1とに基づいて第1の補正閾値sfbThr1(sfb)を採用すると判定した場合、第1の補正閾値を量子化部15に渡す。一方、第1の補正閾値sfbThr1(sfb)を採用しないと判定した場合、第2の補正閾値sfbThr2(sfb)を量子化部15に渡す。
本実施形態の符号化装置1を用いた符号化処理では、まず、図3Aに示したステップS10〜ステップS16の処理、及びステップS18の判定を行う。そして、初期PE値が目標PE値以下の場合(ステップS18;No)、図3Cに示したように、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する(ステップS30)。
一方、初期PE値が目標PE値よりも大きい場合(ステップS18;Yes)、本実施形態の符号化装置1では、続けて、図8に示したマスキング閾値の補正処理を行う。なお、マスキング閾値の補正処理を行う場合、マスキング閾値生成部12は、聴覚特性算出部13に初期マスキング閾値sfbThr0(sfb)を渡す。また、初期マスキング閾値生成部12は、マスキング閾値補正部14の第1の補正部141及び第2の補正部142のそれぞれに、初期マスキング閾値及び目標PE値を渡す。
図8は、第2の実施形態に係る符号化処理におけるマスキング閾値の補正処理の手順を示すフローチャートである。
マスキング閾値の補正処理では、図8に示すように、まず、周波数スペクトル等に基づき聴覚特性を算出する(ステップS20)。ステップS20は、聴覚特性算出部13が行う。聴覚特性算出部13は、聴覚特性として信号対マスク比を算出し、第1の補正部141及び第2の補正部142に渡す。
次に、符号化装置1のマスキング閾値補正部14が、第1の補正部141によるマスキング閾値の補正と、第2の補正部142によるマスキング閾値の補正とを並行して行う。第1の補正部141は、聴覚特性(信号対マスク比)を受け取ると、帯域の欠落を許容する条件で初期マスキング閾値を補正する(ステップS22)。また、第1の補正部141は、マスキング閾値の補正を終えると、補正したマスキング閾値を補正閾値決定部143の欠落SFB変動率算出部143a及び判定部143cに渡す。すると、欠落SFB変動率算出部143aは、補正されたマスキング閾値sfbThr1(sfb)を用いて欠落SFB変動率Vsfbを算出する(ステップS24)。欠落SFB変動率算出部143aは、第1の実施形態で説明した方法により欠落SFB変動率Vsfbを算出する。そして、欠落SFB変動率算出部143aは、算出した欠落SFB変動率Vsfbを判定部143cに渡す。
一方、第2の補正部142は、聴覚特性(信号対マスク比)を受け取ると、帯域の欠落を許容する条件で初期マスキング閾値を補正する(ステップS28)。また、第2の補正部142は、マスキング閾値の補正を終えると、補正したマスキング閾値を補正閾値決定部143の判定部143cに渡す。
判定部143cは、第1の補正閾値sfbThr1(sfb)、第2の補正閾値sfbThr2(sfb)、及び欠落SFB変動率Vsfbを受け取ると、欠落SFB変動率Vsfbと閾値TH1とを比較する(ステップS26)。そして、Vsfb>TH1の場合(ステップS26;Yes)、判定部143cは、第1の補正閾値sfbThr1(sfb)を採用すると判定し、第1の補正閾値を量子化部15に渡す。これにより、量子化に用いるマスキング閾値が第1の補正閾値sfbThr1(sfb)に決定する。よって、量子化部15は、図3Cに示したように、第1の補正閾値、すなわち帯域の欠落を許容する条件で補正したマスキング閾値を用いて周波数スペクトルを量子化する(ステップS32)。
一方、Vsfb≦TH1の場合(ステップS26;No)、判定部143cは、第2の補正閾値sfbThr2(sfb)を量子化に用いると判定し、第2の補正閾値を量子化部15に渡す。これにより、量子化に用いるマスキング閾値が第2の補正閾値sfbThr2(sfb)に決定する。よって、量子化部15は、図3Cに示したように、第2の補正閾値、すなわち帯域の欠落を許容しない条件で補正したマスキング閾値を用いて周波数スペクトルを量子化する(ステップS34)。
こうして初期マスキング閾値sfbThr0(sfb)、第1の補正閾値sfbThr1(sfb)、及び第2の補正閾値sfbThr2(sfb)のいずれかを用いた周波数スペクトルを量子化すると、量子化部15は、量子化された値を符号化部16に渡す。すると、符号化部16は、図3Cに示したように、固定ハフマン符号化等の既知の符号化方法を用いて、量子化された値を符号化する(ステップS36)。そして、符号化を終えると、符号化部16は、符号化したデータを多重化部17に渡す。これにより、入力信号(オーディオ信号)の1フレーム分の符号化処理が終了する。
符号化処理を終えると、符号化装置1(多重化部17)は、符号化されたオーディオ信号(オーディオデータ)にヘッダ情報等を付加した符号化ストリームを生成して出力する。
このように、本実施形態の符号化装置1における符号化処理においても、量子化に用いるマスキング閾値を補正する際に、帯域の欠落を許容する条件及び許容しない条件のいずれの条件で補正したマスキング閾値を量子化に用いるか決定する。この際、符号化装置1は、第1の実施形態と同様、帯域の欠落を許容する条件で補正したマスキング閾値を量子化に用いた場合に欠落する帯域sfbの変動率(時間連続性)に基づいて、帯域の欠落を許容するか否かを決定する。そのため、符号化対象のオーディオ信号の特性に応じて、帯域の欠落を許容して補正したマスキングと許容しない補正したマスキング閾値のうち音質が劣化しにくいほうのマスキング閾値を用いて量子化することができる。
また、本実施形態では、初期マスキング閾値を補正する場合、第1の補正部141における欠落を許容する条件でのマスキング閾値の補正と、第2の補正部142における欠落を許容しない条件でのマスキング閾値の補正とを並行して行う。そのため、欠落SFB変動率Vsfbと閾値TH1との比較(ステップS26)の結果、第2の補正部142で補正したマスキング閾値を量子化に用いると決定した場合に、量子化を速やかに行うことができる。すなわち、本実施形態によれば、第1の補正部141で補正されたマスキング閾値が採用条件を満たしていない場合の符号化処理の遅延を抑制することができる。よって、本実施形態に係る符号化装置及び符号化方法は、AAC-Enhanced Low Delay(AAC−ELD)等の低遅延符号化方式における音質劣化の抑制に適しているといえる。
なお、本実施形態の符号化装置1は、第1の実施形態と同様、コンピュータと、コンピュータに実行させるプログラムにより実現可能である。この際、符号化装置1として動作させるコンピュータは、図5に示したようなハードウェア構成であればよい。また、プログラムは、図3A、図8、及び図3Cに示した符号化処理をコンピュータに実行させる内容であればよい。
[第3の実施形態]
図9は、本発明の第3の実施形態に係る符号化装置の機能ブロック図である。図10は、第3の実施形態に係る符号化装置における補正閾値決定部の構成例を示すブロック図である。
図9に示すように、本実施形態に係る符号化装置1は、ブロック切替部10と、MDCT処理部11と、マスキング閾値生成部12と、聴覚特性算出部13と、マスキング閾値補正部14と、量子化部15と、符号化部16と、多重化部17とを備える。また、符号化装置1は、記憶部18を備える。更に、本実施形態に係る符号化装置1におけるマスキング閾値補正部14は、第1の補正部141と、第2の補正部142と、補正閾値決定部144と、を有する。
本実施形態の符号化装置1において、補正閾値決定部144を除く各部の機能は、第1の実施形態で説明したとおりである。
本実施形態における補正閾値決定部144は、図10に示すように、量子化部144aと、欠落MDCT変動率算出部144bと、欠落MDCT情報保持部144cと、判定部144dと、を有する。
量子化部144aは、ビットレート条件、信号対マスク比、及び第1の補正部141で補正したマスキング閾値sfbThr1(sfb)を用いて周波数スペクトルを量子化する。
欠落MDCT変動率算出部144bは、量子化部144aでの量子化の結果と、欠落MDCT情報保持部144cが保持する情報とに基づき、欠落MDCT変動率Vmdctを算出する。欠落MDCT変動率Vmdctは、量子化により欠落した帯域の変動率をMDCT係数単位で算出した値である。この欠落MDCT変動率Vmdctは、現時点の符号化対象のフレーム(Tフレーム)に対する量子化で欠落した帯域における数フレームに渡り連続して欠落している帯域の割合を表す。すなわち、欠落MDCT変動率Vmdctは、第1の実施形態における欠落SFB変動率Vsfbと同様の算出方法で算出する。
欠落MDCT情報保持部144cは、欠落MDCT変動率Vmdctの算出に用いる数フレーム分の欠落MDCT情報を保持する。欠落MDCT情報は、各フレームにおける量子化で欠落した帯域の集合である。なお、欠落MDCT情報における欠落した帯域は、量子化後のMDCT係数単位の帯域である。本実施形態では、欠落MDCT情報保持部144cは、図10に示すように、T−1フレーム(Tフレームの1フレーム前)の欠落MDCT情報と、T−2フレーム(Tフレームの2フレーム前)の欠落MDCT情報とを保持する。
判定部144dは、算出した欠落MDCT変動率Vmdctに基づいて、量子化する際のマスキング閾値に第1の補正閾値sfbThr1(sfb)を採用するか否かを判定する。判定部144dは、欠落MDCT変動率Vmdctが予め定めた閾値TH2より大きい場合、量子化する際のマスキング閾値に第1の補正閾値sfbThr1(sfb)を採用すると判定する。すなわち、この場合、判定部144dは、第1の補正閾値を量子化に用いると決定する。この場合、判定部144dは、第1の補正閾値を量子化部15に渡す。
一方、欠落MDCT変動率Vmdctが閾値TH2以下の場合、判定部144dは、第1の補正閾値sfbThr1(sfb)を採用しない、すなわち第2の補正閾値sfbThr2(sfb)を量子化に用いると決定する。この場合、判定部144dは、第2の補正部142に初期マスキング閾値sfbThr0(sfb)を補正させる。
このように、本実施形態に係る符号化装置1では、帯域の欠落を許容する条件で補正した第1の補正閾値を用いて周波数スペクトルを量子化し、その結果が所定の条件を満たしている場合、第1の補正閾値を量子化に用いると決定する。一方、第1の補正閾値を用いて量子化した結果が所定の条件を満たしていない場合、帯域の欠落を許容しない条件で補正した第2の補正閾値を量子化に用いると決定する。すなわち、本実施形態に係る符号化装置1では、第1の補正閾値を用いて量子化した周波数スペクトルの値に基づいて、第1の補正閾値及び第2の補正閾値のどちらを量子化に用いるか決定する。
本実施形態の符号化装置1を用いた符号化処理では、まず、図3Aに示したステップS10〜ステップS16の処理、及びステップS18の判定を行う。そして、初期PE値が目標PE値以下の場合(ステップS18;No)、図3Cに示したように、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する(ステップS30)。
一方、初期PE値が目標PE値よりも大きい場合(ステップS18;Yes)、本実施形態の符号化装置1では、続けて、図11に示したマスキング閾値の補正処理を行う。なお、マスキング閾値の補正処理を行う場合、初期マスキング閾値生成部12は、初期マスキング閾値を、聴覚特性算出部13に渡す。また、初期マスキング閾値生成部12は、初期マスキング閾値及び目標PE値を、マスキング閾値補正部14の第1の補正部141に渡すとともに、記憶部18に記憶させる。
図11は、第3の実施形態に係る符号化処理におけるマスキング閾値の補正処理の手順を示すフローチャートである。
マスキング閾値の補正処理では、図11に示すように、まず、周波数スペクトル等に基づき聴覚特性を算出する(ステップS20)。ステップS20は、聴覚特性算出部13が行う。聴覚特性算出部13は、聴覚特性として信号対マスク比を算出し、算出した信号対マスク比を、第1の補正部141に渡すとともに記憶部18に記憶させる。
第1の補正部141は、聴覚特性(信号対マスク比)を受け取ると、帯域の欠落を許容する条件で初期マスキング閾値を補正する(ステップS22)。第1の補正部141は、マスキング閾値の補正を終えると、補正したマスキング閾値(第1の補正閾値)を補正閾値決定部144の量子化部144a及び判定部144dに渡す。すると、補正閾値決定部144の量子化部144aは、第1の補正閾値sfbThr1(sfb)を用いて周波数スペクトルを量子化する(ステップS23)。量子化部144aは、周波数スペクトルの量子化を終えると、その結果を欠落MDCT変動率算出部144b及び判定部144dに渡す。
欠落MDCT変動率算出部144bは、量子化の結果を受け取ると、その結果に基づいて欠落MDCT変動率Vmdctを算出する(ステップS25)。欠落MDCT変動率算出部144aは、第1の実施形態で説明した欠落SFB変動率Vsfbの算出方法と同様の方法で、第1の補正閾値sfbThr1(sfb)を用いて量子化された周波数スペクトルにおける欠落MDCT変動率Vmdctを算出する。ただし、ステップS25では、SFB単位ではなく、量子化後のMDCT係数単位で欠落する帯域を抽出して変動率を算出する。そして、欠落MDCT変動率算出部144bは、算出した欠落MDCT変動率Vmdctを判定部144dに渡す。また、欠落MDCT変動率算出部144bは、欠落MDCT変動率Vmdctの算出を終えると、欠落MDCT情報保持部144cで保持する情報を更新する。すなわち、T−1フレームの欠落MDCT情報をT−2フレームの欠落MDCT情報として保持し、Tフレームの欠落MDCT情報をT−1フレームの欠落MDCT情報として保持する。
なお、オーディオ信号における先頭の数フレームを符号化するときのように、1フレーム前及び2フレーム前の欠落MDCT情報を保持していない場合、欠落MDCT変動率算出部144bは、予め定めた値を欠落MDCT変動率Vmdctとする。この予め定めた値は、例えば、次のステップで欠落MDCT変動率Vmdctと比較する閾値TH2よりも小さな値とする。
欠落MDCT変動率Vmdctを受け取った判定部144dは、欠落MDCT変動率Vmdctと予め定めた閾値TH2とを比較する(ステップS27)。そして、Vmdct>TH2の場合(ステップS27;Yes)、判定部144dは、量子化する際のマスキング閾値に第1の補正閾値sfbThr1(sfb)を採用すると判定し、第1の補正閾値を量子化部15に渡す。これにより、量子化に用いるマスキング閾値が第1の補正閾値sfbThr1(sfb)に決定される。この場合、図3Cに示したように、量子化部15は、第1の補正閾値、すなわち帯域の欠落を許容する条件で補正したマスキング閾値を用いて周波数スペクトルを量子化する(ステップS32)。一方、Vmdct≦TH2の場合(ステップS27;No)、判定部144dは、量子化する際のマスキング閾値に第1の補正閾値sfbThr1(sfb)を採用しないと判定し、第2の補正部142にマスキング閾値を補正させる。これにより、量子化に用いるマスキング閾値が第2の補正閾値sfbThr2(sfb)に決定される。第2の補正部142は、聴覚特性等に基づいて、量子化による帯域の欠落を許容しない条件でマスキング閾値を補正し(ステップS28)、補正されたマスキング閾値(第2の補正閾値)を量子化部15に渡す。この場合、図3Cに示したように、量子化部15は、帯域の欠落を許容しない条件で補正した第2の補正閾値sfbThr2(sfb)を用いて周波数スペクトルを量子化する(ステップS34)。
こうして初期マスキング閾値sfbThr0(sfb)、第1の補正閾値sfbThr1(sfb)、及び第2の補正閾値sfbThr2(sfb)のいずれかを用いて周波数スペクトルを量子化すると、量子化部15は、量子化された値を符号化部16に渡す。すると、符号化部16は、固定ハフマン符号化等の既知の符号化方法を用いて、量子化された値を符号化する(ステップS36)。そして、符号化を終えると、符号化部16は、符号化したデータを多重化部17に渡す。これにより、入力信号(オーディオ信号)の1フレーム分の符号化処理が終了する。
符号化処理を終えると、符号化装置1(多重化部17)は、符号化されたオーディオ信号(オーディオデータ)にヘッダ情報等を付加した符号化ストリームを生成して出力する。
本実施形態で算出する欠落MDCT変動率Vmdctと第1の実施形態における欠落SFB変動率Vsfbとは、帯域を量子化後のMDCT係数単位にするかSFB単位にするかが異なるだけで、算出方法自体は同じである。そのため、本実施形態においても、複数のフレームで連続して欠落する帯域の割合が大きいほど、欠落MDCT変動率Vmdctが大きくなる。すなわち、複数のフレームで連続して欠落する帯域の割合が小さいほど、欠落MDCT変動率Vmdctは小さくなる。そのため、欠落MDCT変動率Vmdctが閾値TH2以下の場合、符号化するオーディオ信号は周波数スペクトルのピーク位置が激しく変化していると判断できる。したがって、本実施形態の符号化処理では、欠落MDCT変動率Vmdctが閾値TH2以下の場合、欠落を許容しない条件で補正した第2の補正閾値sfbThr2(sfb)を用いて量子化する。これにより、周波数スペクトルのピーク位置が激しく変化するオーディオ信号において連続して聞こえる原音が符号化後は途切れて聞こえる等の音質の劣化を抑制できる。
また、本実施形態の符号化処理では、欠落MDCT変動率Vmdctが閾値TH2より大きい場合、欠落を許容する条件で補正した第1の補正閾値sfbThr1(sfb)を用いて量子化する。そのため、ハープシコード等の周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号を符号化する際に音質的に重要な帯域のマスキング閾値が過度に補正されることによる音質の劣化を抑制できる。
更に、本実施形態では、欠落MDCT変動率Vmdctに基づいて、第1の補正部141で補正したマスキング閾値と第2の補正部142で補正したマスキング閾値のどちらを量子化に用いるかを決定する。第1の実施形態で使用した欠落SFB変動率Vsfbは、周波数スペクトルにおけるMDCT係数を複数のスケールファクタバンドsfbに分け、スケールファクタバンドsfb単位で算出した値である。一方、本実施形態の欠落MDCT変動率Vmdctは、上記のように、第1の補正部141で補正したマスキング閾値を用いて量子化された周波数スペクトルにおいて欠落している帯域の変動率をMDCT係数単位で算出した値である。そのため、本実施形態によれば、欠落SFB変動率Vsfbに比べて欠落した帯域の変動率をより細かい粒度で算出することができ、第1の補正閾値sfbThr1(sfb)を採用するか否かの判定精度を高くすることができる。よって、帯域の欠落による音質の劣化をより抑制することができる。
なお、本実施形態の符号化装置1は、第1の実施形態と同様、コンピュータと、コンピュータに実行させるプログラムにより実現可能である。この際、符号化装置1として動作させるコンピュータは、図5に示したようなハードウェア構成であればよい。また、プログラムは、図3A、図11、及び図3Cに示した符号化処理をコンピュータに実行させる内容であればよい。
[第3の実施形態の変形例]
本実施形態に係る符号化装置1の補正閾値決定部144は、図10に示したような構成に限らず、図12に示したような構成であってもよい。
図12は、第3の実施形態に係る符号化装置の変形例を示すブロック図である。図13は、第3の実施形態の変形例における符号化処理の一部を示すフローチャートである。
図12に示した補正閾値決定部144では、第1の補正部141で補正したマスキング閾値(第1の補正閾値)ではなく、量子化部144aで量子化された周波数スペクトルの値が判定部144dに入力される。そして、判定部144dは、図11に示したステップS26の判定により欠落MDCT変動率Vmdctに基づいて第1の補正閾値sfbThr1(sfb)を量子化に用いると決定した場合、量子化部144aで量子化された周波数スペクトルの値を符号化部16に渡す。よって、第1の補正閾値sfbThr1(sfb)を量子化に用いると決定した場合、符号化装置1は、図13に示すように、次に量子化された値を用いた符号化(ステップS36)を行う。
一方、図11に示したステップS26の判定により第2の補正閾値sfbThr2(sfb)を量子化に用いると決定した場合、判定部144dは、第2の補正部142にマスキング閾値を補正させる(ステップS28)。
補正閾値決定部144の量子化部144aは、上述のように、外部に設けられた量子化部15と同様の処理を行って周波数スペクトルを量子化する。そのため、ビットレート条件、初期マスキング閾値、及び周波数スペクトルが同じであれば、量子化部144aで量子化した結果は、マスキング閾値補正部14の外部に設けた量子化部15で量子化した結果と同じになる。したがって、第1の補正閾値sfbThr1(sfb)を量子化に用いる場合、判定部144dにおける判定の前に補正閾値決定部144の量子化部144aで量子化した値を符号化することで、図3Cに示したステップS32の処理を省略することができる。よって、ここで例示した変形例によれば、第1の補正閾値sfbThr1(sfb)を量子化に用いると決定した場合に、決定後に第1の補正閾値sfbThr1(sfb)を用いた量子化を再度行うことによる処理効率の低下を抑制することができる。
[第4の実施形態]
図14は、本発明の第4の実施形態に係る符号化装置の機能ブロック図である。図15は、第4の実施形態に係る符号化装置における補正閾値決定部の構成例を示すブロック図である。
図14に示すように、本実施形態に係る符号化装置1は、ブロック切替部10と、MDCT処理部11と、マスキング閾値生成部12と、聴覚特性算出部13と、マスキング閾値補正部14と、量子化部15と、符号化部16と、多重化部17とを備える。
本実施形態の符号化装置1において、マスキング閾値補正部14を除く各部の機能は、第1の実施形態で説明したとおりである。ただし、量子化部15は、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する場合にのみ使用される。
本実施形態におけるマスキング閾値補正部14は、第1の補正部141と、第2の補正部142と、補正閾値決定部144と、第1の量子化部145と、第2の量子化部146と、を備える。
第1の補正部141は、量子化による帯域の欠落を許容する条件でマスキング閾値を補正する。また、第2の補正部142は、量子化による帯域の欠落を許容しない条件でマスキング閾値を補正する。
第1の量子化部145は、第1の補正部141で補正したマスキング閾値(第1の補正閾値)を用いて周波数スペクトルを量子化する。また、第2の量子化部146は、第2の補正部142で補正したマスキング閾値(第2の補正閾値)を用いて周波数スペクトルを量子化する。
補正閾値決定部144は、第1の量子化部145で量子化された周波数スペクトルの値と、第2の量子化部146で量子化された周波数スペクトルの値とのいずれを符号化に用いるかを決定する。この補正閾値決定部144は、図15に示すように、欠落MDCT変動率算出部144bと、欠落MDCT情報保持部144cと、判定部144dと、を有する。
欠落MDCT変動率算出部144b及び欠落MDCT情報保持部144cは、第3の実施形態で説明したとおりである。
判定部144dは、欠落MDCT変動率算出部144bで算出した欠落MDCT変動率Vmdctに基づいて、第1の量子化部145で量子化された周波数スペクトルの値、又は第2の量子化部146で量子化された周波数スペクトルの値を符号化部16に渡す。
このように、本実施形態に係る符号化装置1は、第1の補正部141で補正したマスキング閾値を用いた量子化と、第2の補正部142で補正したマスキング閾値を用いた量子化とを行った後、どちらの量子化の結果を採用するかを決定する。すなわち、本実施形態に係る符号化装置1は、どちらの量子化の結果を採用するか決定することで、第1の補正部141で補正したマスキング閾値と第2の補正部142で補正したマスキング閾値とのどちらを量子化に用いるかを間接的に決定する。
本実施形態の符号化装置1を用いた符号化処理では、まず、図3Aに示したステップS10〜ステップS16の処理、及びステップS18の判定を行う。そして、初期PE値が目標PE値以下の場合(ステップS18;No)、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する。
一方、初期PE値が目標PE値よりも大きい場合(ステップS18;Yes)、本実施形態の符号化装置1は、続けて、図16A及び図16Bに示したマスキング閾値の補正処理を含む各種の処理を行う。なお、マスキング閾値の補正処理を行う場合、マスキング閾値生成部12は、聴覚特性算出部13に初期マスキング閾値sfbThr0(sfb)を渡す。また、マスキング閾値生成部12は、マスキング閾値補正部14の第1の補正部141及び第2の補正部142のそれぞれに、初期マスキング閾値及び目標PE値を渡す。
図16Aは、第4の実施形態に係る符号化処理の一部を示すフローチャートである。図16Bは、第4の実施形態に係る符号化処理の他の一部を示すフローチャートである。
本実施形態の符号化装置1においてマスキング閾値を補正する場合、図16Aに示すように、まず、周波数スペクトル等に基づき聴覚特性を算出する(ステップS20)。ステップS20は、聴覚特性算出部13が行う。聴覚特性算出部13は、聴覚特性として信号対マスク比smr(sfb)を算出し、第1の補正部141及び第2の補正部142に渡す。
次に、符号化装置1のマスキング閾値補正部14が、第1の補正部141によるマスキング閾値の補正及び第1の量子化部145による量子化と、第2の補正部142によるマスキング閾値の補正及び第2の量子化部146による量子化とを並行して行う。
第1の補正部141は、聴覚特性(信号対マスク比)を受け取ると、帯域の欠落を許容する条件で初期マスキング閾値を補正する(ステップS22)。第1の補正部141は、マスキング閾値の補正を終えると、補正された第1の補正閾値sfbThr1(sfb)を第1の量子化部145に渡す。
第1の量子化部145は、受け取ったマスキング閾値(第1の補正閾値)を用いて周波数スペクトルを量子化する(ステップS23)。第1の量子化部145は、量子化を終えると、量子化された周波数スペクトルの値を補正閾値決定部144の欠落MDCT変動率算出部144b及び判定部144dに渡す。
欠落MDCT変動率算出部144bは、第1の補正閾値sfbThr1(sfb)を用いた量子化の結果に基づき、欠落MDCT変動率Vmdctを算出する(ステップS25)。ステップS25は、前述のように、現時点(Tフレーム)の量子化の結果において欠落している帯域と、欠落MDCT情報保持部144bで保持しているT−1フレーム及びT−2フレームの欠落した帯域の情報とを比較して算出する。欠落MDCT変動率算出部144bは、算出した欠落MDCT変動率Vmdctを判定部144dに渡す。
一方、第2の補正部142は、聴覚特性(信号対マスク比)を受け取ると、帯域の欠落を許容しない条件で初期マスキング閾値を補正する(ステップS28)。第2の補正部142は、マスキング閾値の補正を終えると、補正したマスキング閾値を第2の量子化部146に渡す。
第2の量子化部146は、受け取ったマスキング閾値を用いて周波数スペクトルを量子化する(ステップS34)。第2の量子化部146は、量子化を終えると、量子化された周波数スペクトルの値を補正閾値決定部144の判定部144dに渡す。
判定部144dは、第1の補正閾値を用いた量子化の結果、第2の補正閾値を用いた量子化の結果、及び欠落MDCT変動率Vmdctを受け取ると、欠落MDCT変動率Vmdctと閾値TH2とを比較する(ステップS27)。そして、Vmdct>TH2の場合(ステップS27;Yes)、判定部144dは、第1の補正閾値sfbThr1(sfb)を採用すると判定し、第1の補正閾値を用いて量子化した結果を符号化部16に渡す。これにより、事後的に、量子化に用いるマスキング閾値が第1の補正閾値sfbThr1(sfb)に決定する。また、判定部144dは、第1の補正閾値を用いて周波数スペクトルを量子化した結果を符号化部16に渡す。そのため、図16Bに示したように、ステップS27の判定の後、続けて量子化された値を符号化する(ステップS36)。
一方、Vmdct≦TH2の場合(ステップS27;No)、判定部144dは、第2の補正閾値sfbThr2(sfb)を量子化に採用すると判定し、第2の補正閾値を用いて量子化した結果を符号化部16に渡す。これにより、事後的に、量子化に用いるマスキング閾値が第2の補正閾値sfbThr2(sfb)に決定する。また、判定部144dは、第2の補正閾値を用いて周波数スペクトルを量子化した結果を符号化部16に渡す。そのため、符号化装置1は、図16Bに示したように、ステップS26の判定の後、続けて符号化部16により量子化された値を符号化する(ステップS36)。
符号化部16は、固定ハフマン符号化等の既知の符号化方法を用いて、量子化された値を符号化する。そして、符号化を終えると、符号化部16は、符号化したデータを多重化部17に渡す。これにより、入力信号(オーディオ信号)の1フレーム分の符号化処理が終了する。
符号化処理を終えると、符号化装置1(多重化部17)は、符号化されたオーディオ信号(オーディオデータ)にヘッダ情報等を付加した符号化ストリームを生成して出力する。
このように、本実施形態では、第1の補正部141によるマスキング閾値の補正及び第1の量子化部145による量子化と、第2の補正部142によるマスキング閾値の補正及び第2の量子化部146による量子化とを並行して行う。そのため、第1の補正部141で補正したマスキング閾値を採用しないことが決定した後、第2の補正部142で補正したマスキング閾値を用いて量子化された周波数スペクトルの値を用いた符号化処理を速やかに開始することができる。よって、本実施形態の符号化装置1及び符号化方法によれば、第2の補正部142で補正したマスキング閾値を用いて量子化する場合の処理効率の低下を抑制することができる。
また、本実施形態では、量子化後のMDCT係数単位の帯域で欠落する帯域の変動率Vmdctを算出している。そのため、SFB単位で欠落する帯域の変動率Vsfbを算出する場合に比べて欠落した帯域の変動率をより細かい粒度で算出することができ、第1の補正閾値を採用するか否かの判定精度を高くすることができる。よって、帯域の欠落による音質の劣化をより抑制することができる。
なお、本実施形態の符号化装置1は、第1の実施形態と同様、コンピュータと、コンピュータに実行させるプログラムにより実現可能である。この際、符号化装置1として動作させるコンピュータは、図5に示したようなハードウェア構成であればよい。また、プログラムは、図3A、図16A、及び図16Bに示した符号化処理をコンピュータに実行させる内容であればよい。
[第5の実施形態]
図17は、本発明の第5の実施形態に係る符号化装置の機能ブロック図である。図18は、第5の実施形態に係る符号化装置における補正閾値決定部の構成例を示すブロック図である。
図17に示すように、本実施形態に係る符号化装置1は、ブロック切替部10と、MDCT処理部11と、マスキング閾値生成部12と、聴覚特性算出部13と、マスキング閾値補正部14と、量子化部15と、符号化部16と、多重化部17とを備える。また、符号化装置1は、補正閾値決定部19を備える。
本実施形態の符号化装置1において、補正閾値決定部19を除く各部の機能は、第1の実施形態で説明したとおりである。なお、図17に示した符号化装置1では、補正閾値決定部19をマスキング閾値補正部14の外部に設けている。そのため、マスキング閾値補正部14は、マスキング閾値を補正する第1の補正部141及び第2の補正部142のみを有する。
本実施形態の符号化装置1における補正閾値決定部19は、第1〜第4の実施形態の補正閾値決定部143,144とは異なり、第1の補正部141と第2の補正部142とのどちらにマスキング閾値を補正させるかを決定する。また、本実施形態の補正閾値決定部19は、周波数スペクトルの電力値mdct_pow(sfb)の自己相関値に基づいて、マスキング閾値を補正させる補正部を決定する。
本実施形態の補正閾値決定部19は、図18に示すように、自己相関値算出部19aと、スペクトル電力値保持部19bと、判定部19cと、を有する。
自己相関値算出部19aは、周波数スペクトルの電力値(スペクトル電力値)mdct_pow(sfb)の自己相関値correを算出する。本実施形態では、下記の式(2)により自己相関値correを算出する。
式(2)において、corre(sfb)は、帯域sfbのスペクトル電力値mdct_pow(sfb)の自己相関値である。また、mdct_powT(sfb)は、現時点の符号化対象のフレーム(Tフレーム)のスペクトル電力値である。また、mdct_powT−1(sfb)は、現時点の符号化対象のフレームの1つ前のフレーム(T−1フレーム)のスペクトル電力値である。また、mdct_powT−2(sfb)は、現時点の符号化対象のフレームの2つ前のフレーム(T−2フレーム)のスペクトル電力値である。
スペクトル電力値保持部19bは、自己相関値correの算出に用いるT−1フレームのスペクトル電力値及びT−2フレームのスペクトル電力値を保持する。
判定部19cは、算出した自己相関値correに基づいて、第1の補正部141と第2の補正部142とのどちらにマスキング閾値を補正させるかを決定する。
本実施形態の符号化装置1を用いた符号化処理では、まず、図3Aに示したステップS10〜ステップS16の処理、及びステップS18の判定を行う。そして、初期PE値が目標PE値以下の場合(ステップS18;No)、初期マスキング閾値sfbThr0(sfb)を用いて周波数スペクトルを量子化する(ステップS30)。
一方、初期PE値が目標PE値よりも大きい場合(ステップS18;Yes)、本実施形態の符号化装置1では、続けて、図19A及び図19Bに示したマスキング閾値の補正処理を含む各種の処理を行う。なお、マスキング閾値の補正処理を行う場合、マスキング閾値生成部12は、聴覚特性算出部13に初期マスキング閾値を渡す。また、マスキング閾値生成部12は、マスキング閾値補正部14の第1の補正部141及び第2の補正部142のそれぞれに、初期マスキング閾値及び目標PE値を渡す。
図19Aは、第5の実施形態に係る符号化処理の一部を示すフローチャートである。図19Bは、第5の実施形態に係る符号化処理の他の一部を示すフローチャートである。
本実施形態の符号化装置1においてマスキング閾値を補正する場合、図19Aに示すように、まず、周波数スペクトル等に基づき聴覚特性を算出する(ステップS20)。ステップS20は、聴覚特性算出部13が行う。聴覚特性算出部13は、聴覚特性として信号対マスク比を算出し、第1の補正部141及び第2の補正部142に渡す。
また、マスキング閾値を補正する場合、符号化装置1では、聴覚特性の算出と並行して、第1の補正部141と第2の補正部142とのどちらでマスキング閾値を補正するかを決定する処理が行われる(ステップS40〜S46)。
このマスキング閾値を補正する補正部を決定する処理では、まず、スペクトル電力値mdct_pow(sfb)の自己相関値correを算出する(ステップS40)。ステップS40は、補正閾値決定部19の自己相関値算出部19aが行う。
自己相関値算出部19aは、スペクトル電力値保持部19bからT−1フレームのスペクトル電力値及びT−2フレームのスペクトル電力値を読み出し、式(2)を用いて自己相関値correを算出する。自己相関値算出部19aは、算出した自己相関値correを判定部19cに渡す。また、自己相関値算出部19aは、自己相関値correの算出を終えると、スペクトル電力値保持部19bで保持する電力値を更新する。すなわち、T−1フレームの電力値をT−2フレームの電力値として保持し、Tフレームの電力値をT−1フレームの電力値として保持する。
自己相関値correを受け取った判定部19cは、自己相関値correと予め定めた閾値TH3との大小関係を判定する(ステップS42)。そして、corre>TH3の場合(ステップS42;Yes)、判定部19cは、第1の補正部141によるマスキング閾値の補正を選択する(ステップS44)。この場合、判定部19cは、第1の補正部141にのみマスキング閾値の補正を指示する信号を送る。
一方、corre≦TH3の場合(ステップS42;No)、判定部19cは、第2の補正部142によるマスキング閾値の補正を選択する(ステップS46)。この場合、判定部19cは、第2の補正部142にのみマスキング閾値の補正を指示する信号を送る。
こうして、第1の補正部141又は第2の補正部142にマスキング閾値の補正を指示する信号が送られると、その信号を受け取ったほうの補正部のみが、マスキング閾値を補正する(ステップS48)。第1の補正部141でマスキング閾値を補正する場合、ステップS48は、量子化による帯域の欠落を許容する条件で行う。一方、第2の補正部142でマスキング閾値を補正する場合、ステップS48は、量子化による帯域の欠落を許容しない条件で行う。また、第1の補正部141及び第2の補正部142のいずれでマスキング閾値を補正する場合も、例えば、上記の式(1)を用いて補正後のマスキング閾値と電力値とから算出されるPE値が目標PE値になるように初期マスキング閾値を補正する。
第1の補正部141は、マスキング閾値の補正が終わると、補正したマスキング閾値(第1の補正閾値)を量子化部15に渡す。同様に、第2の補正部142は、マスキング閾値の補正が終わると、補正したマスキング閾値(第2の補正閾値)を量子化部15に渡す。
本実施形態の符号化装置1では、現時点の符号化対象のフレーム(周波数スペクトル)についての初期マスキング閾値を補正する場合、第1の補正部141又は第2の補正部142のいずれか一方のみで補正する。よって、マスキング閾値を補正した場合、量子化部15は、図19Bに示すように、第1又は第2の補正閾値を用いて周波数スペクトルを量子化する(ステップS50)。また、マスキング閾値を補正しない場合、量子化部15は、初期マスキング閾値を用いて周波数スペクトルを量子化する(ステップS30)。
こうして初期マスキング閾値sfbThr0(sfb)、第1の補正閾値sfbThr1(sfb)、及び第2の補正閾値sfbThr2(sfb)のいずれかを用いて周波数スペクトルを量子化すると、量子化部15は、量子化された値を符号化部16に渡す。すると、符号化部16は、固定ハフマン符号化等の既知の符号化方法を用いて、量子化された値を符号化する(ステップS36)。そして、符号化を終えると、符号化部16は、符号化したデータを多重化部17に渡す。これにより、入力信号(オーディオ信号)の1フレーム分の符号化処理が終了する。
符号化処理を終えると、符号化装置1(多重化部17)は、符号化されたオーディオ信号(オーディオデータ)にヘッダ情報等を付加した符号化ストリームを生成して出力する。
式(2)から算出される自己相関値correは、フレーム間での電力値の相関が高いほど、言い換えるとフレーム間での電力値の差が小さいほど、大きな値となる。よって、複数の連続したフレームにおける周波数スペクトルのピーク位置の変化が激しい場合は、自己相関値correが小さくなる。本実施形態では、上述した各実施形態と同様、周波数スペクトルのピーク位置の変化が激しい場合、帯域の欠落を許容しない条件で補正したマスキング閾値で周波数スペクトルを量子化する。そのため、上記のように、自己相関値correが閾値TH3以下の場合(ステップS42;No)、判定部19cは、第2の補正部142によるマスキング閾値の補正を選択する(ステップS46)。これにより、周波数スペクトルのピーク位置の変化が激しいオーディオ信号を符号化した場合に、原音では連続して聞こえる音が途切れて聞こえる等の音質の劣化を抑制できる。
一方、ハープシコード等の連続したフレームにおける周波数スペクトルのピーク位置の変化が緩やかな場合は、自己相関値correが大きくなる。そのため、自己相関値correが閾値よりも大きい場合(ステップS42;Yes)、判定部19cは、第1の補正部141によるマスキング閾値の補正を選択する(ステップS44)。これにより、周波数スペクトルのピーク位置の変化が緩やかなオーディオ信号を符号化した場合に、音質的に重要な帯域のマスキング閾値が過度に補正され量子化誤差(量子化雑音)が知覚可能になることによる音質の劣化を抑制できる。
また、本実施形態の符号化処理では、マスキング閾値の補正処理を第1の補正部141及び第2の補正部142のいずれかで1回だけ行えばよい。しかも、第1の補正部141及び第2の補正部142のいずれで補正するかは、スペクトル電力値mdct_pow(sfb)の自己相関値correに基づいて選択する。そのため、第1の補正閾値を用いた量子化により欠落する帯域の変動率を算出し、その変動率に基づいて量子化に用いるマスキング閾値を決定する上述の各実施形態と比べて、処理量を減らすことができる。
また、本実施形態の符号化処理では、上記のように、マスキング閾値を補正する場合に自己相関値correを算出するとともにスペクトル電力値保持部19bで保持する電力値を更新している。しかしながら、本実施形態に係る符号化処理では、これに限らず、マスキング閾値を補正するか否かによらず、図3AのステップS10を行う毎にスペクトル電力値保持部19bで保持する電力値を更新してもよい。
なお、本実施形態の符号化装置1は、第1の実施形態と同様、コンピュータと、コンピュータに実行させるプログラムにより実現可能である。この際、符号化装置1として動作させるコンピュータは、図5に示したようなハードウェア構成であればよい。また、プログラムは、図3A、図19A、及び図19Bに示した符号化処理をコンピュータに実行させる内容であればよい。
以上記載した各実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
オーディオ信号をフレーム毎に周波数スペクトルに変換し、当該周波数スペクトルを量子化して符号化する符号化装置であって、
前記周波数スペクトルに基づいて当該周波数スペクトルを量子化する際の初期マスキング閾値を生成する閾値生成部と、
前記周波数スペクトルの量子化に与えられたビット量と量子化による帯域の欠落を許容するか否かの条件に基づいて前記初期マスキング閾値を補正する閾値補正部と、
連続する複数の前記フレームにおける前記周波数スペクトルの変化の程度に基づいて、量子化による帯域の欠落を許容する条件で補正した第1のマスキング閾値と、量子化による帯域の欠落を許容しない条件で補正した第2のマスキング閾値とのいずれを量子化に用いるか決定する閾値決定部と、
を備えることを特徴とする符号化装置。
(付記2)
前記閾値決定部は、前記第1のマスキング閾値を用いて前記周波数スペクトルを量子化した場合に欠落する帯域を抽出し、前記周波数スペクトルの変化の程度として複数の前記フレームにおける前記欠落する帯域の変動率を求め、当該変動率に基づいて、前記第1のマスキング閾値と前記第2のマスキング閾値とのいずれを量子化に用いるか決定する、
ことを特徴とする付記1に記載の符号化装置。
(付記3)
前記第1のマスキング閾値を用いて前記周波数スペクトルを量子化する量子化部を更に備え、
前記閾値決定部は、前記量子化部による量子化で欠落した帯域を抽出し、前記周波数スペクトルの変化の程度として複数の前記フレームにおける前記欠落した帯域の変動率を求め、当該変動率に基づいて、前記第1のマスキング閾値を量子化に用いるか否かを判定する、
ことを特徴とする付記1に記載の符号化装置。
(付記4)
量子化された周波数スペクトルの値を符号化する符号化部を更に備え、
前記閾値決定部は、前記第1のマスキング閾値を量子化に用いると判定した場合、前記符号化部に、前記量子化部で量子化された前記周波数スペクトルの値を符号化させる、
ことを特徴とする付記3に記載の符号化装置。
(付記5)
前記閾値決定部は、複数の前記フレームにおける前記欠落する帯域の変動率を算出する算出部と、
算出した前記変動率に基づいて前記第1のマスキング閾値を量子化に用いるか否かを判定する判定部と、を有する、
ことを特徴とする付記2〜4のいずれかに記載の符号化装置。
(付記6)
前記算出部は、現時点の符号化対象のフレームにおいて欠落する帯域の数と、当該欠落する帯域のうち他のフレームでも欠落している帯域の数とから、欠落する帯域の変動率を算出する、
ことを特徴とする付記5に記載の符号化装置。
(付記7)
前記算出部は、現時点の符号化対象のフレームにおいて欠落する帯域及びその前後の帯域が他のフレームでも欠落している場合、前記欠落する帯域を他のフレームでも欠落している帯域として係数する、
ことを特徴とする付記5に記載の符号化装置。
(付記8)
前記閾値決定部は、前記周波数スペクトルの変化の程度として複数の前記フレームにおける前記周波数スペクトルから自己相関値を算出する算出部と、
前記自己相関値に基づいて、量子化による帯域の欠落を許容する条件と、量子化による帯域の欠落を許容しない条件とのいずれで前記初期マスキング閾値を補正させるか判定する判定部と、を有する、
ことを特徴とする付記1に記載の符号化装置。
(付記9)
前記閾値補正部は、量子化による帯域の欠落を許容する条件で前記初期マスキング閾値を補正する第1の補正部と、量子化による帯域の欠落を許容しない条件で前記初期マスキング閾値を補正する第2の補正部と、を有する
ことを特徴とする付記1に記載の符号化装置。
(付記10)
前記閾値生成部は、聴覚心理モデルに基づいて前記初期マスキング閾値を生成する、
ことを特徴とする付記1に記載の符号化装置。
(付記11)
コンピュータが、
オーディオ信号の周波数スペクトルに基づいて生成した初期マスキング閾値が当該周波数スペクトルを量子化するための条件を満たしていない場合に、
前記オーディオ信号の連続する複数のフレームにおける前記周波数スペクトルの変化の程度に基づいて、量子化による帯域の欠落を許容する条件で補正した第1のマスキング閾値と、量子化による帯域の欠落を許容しない条件で補正した第2のマスキング閾値とのいずれを量子化に用いるか決定する処理、
を実行することを特徴とする符号化方法。
(付記12)
前記コンピュータが、
前記初期マスキング閾値を前記第1のマスキング閾値に補正した後、
前記第1のマスキング閾値を用いて前記周波数スペクトルを量子化した場合に欠落する帯域を抽出し、
前記周波数スペクトルの変化の程度として複数の前記フレームにおける前記欠落する帯域の変動率を算出し、
算出した前記変動率に基づいて、前記第1のマスキング閾値を量子化に用いるか否かを判定する、
ことを特徴とする付記11に記載の符号化方法。
(付記13)
前記コンピュータが、
前記初期マスキング閾値を前記第1のマスキング閾値に補正し、
前記第1のマスキング閾値を用いて前記周波数スペクトルを量子化した後、
量子化された前記周波数スペクトルにおいて欠落した帯域を抽出し、
前記周波数スペクトルの変化の程度として複数の前記フレームにおける前記欠落した帯域の変動率を算出し、
算出した前記変動率相関に基づいて、前記第1のマスキング閾値を量子化に用いるか否かを判定する、
ことを特徴とする付記11に記載の符号化方法。
(付記14)
前記コンピュータが、
前記第1のマスキング閾値を量子化に用いると判定した場合、当該判定前に前記第1のマスキング閾値を用いて量子化した前記周波数スペクトルの値を符号化する、
ことを特徴とする付記13に記載の符号化方法。
(付記15)
前記コンピュータが、
前記初期マスキング閾値を前記第1のマスキング閾値に補正する処理、及び前記初期マスキング閾値を前記第2のマスキング閾値に補正する処理を並行して行う、
ことを特徴とする付記11〜14のいずれかに記載の符号化方法。
(付記16)
前記コンピュータが、
複数の前記フレームにおける前記周波数スペクトルの自己相関値を算出し、
前記自己相関値に基づいて、前記初期マスキング閾値を前記第1のマスキング閾値及び前記第2のマスキング閾値のいずれに補正するかを決定する、
ことを特徴とする付記11に記載の符号化方法。
(付記17)
オーディオ信号の周波数スペクトルを量子化する際の初期マスキング閾値を生成し、
生成した初期マスキング閾値が当該周波数スペクトルを量子化するための条件を満たしていない場合に、前記オーディオ信号の連続する複数のフレームにおける前記周波数スペクトルの変化の程度に基づいて、量子化による帯域の欠落を許容する条件で補正した第1のマスキング閾値と、量子化による帯域の欠落を許容しない条件で補正した第2のマスキング閾値とのいずれを量子化に用いるか決定し、
前記初期マスキング閾値、前記第1のマスキング閾値、及び前記第2のマスキング閾値のいずれかを用いて前記周波数スペクトルを量子化し、
量子化した前記周波数スペクトルの値を符号化する処理、
をコンピュータに実行させるためのプログラム。