トップ :: G 物理学 :: G10 楽器;音響




【発明の名称】 高能率符号化方法及び装置
【発明者】 【氏名】永井 清隆

【要約】 【課題】変換符号化を含む高能率符号化において、入力信号の帯域を制限し、その制限帯域内の周波数に対応する変換係数のみを符号化することにより発生するノイズの電力レベルを低減して、復号された信号の品質を高くした高能率符号化方法及び装置を提供する。

【解決手段】変換係数重み付け部が、心理聴覚分析部の設定した制限帯域内の周波数に対応する変換係数に重み付け係数を掛けて、重み付けされた変換係数を算出する。高能率符号化部が、制限帯域内の周波数に対応する変換係数を、重み付けされた変換係数も含めて高能率符号化する。
【特許請求の範囲】
【請求項1】 ディジタル信号を時間/周波数変換して変換係数を得るステップ;前記ディジタル信号の帯域をサンプリング周波数及びビットレートに応じて制限し、その制限帯域内の周波数に対応する前記変換係数の係数番号を決定するステップ;前記ディジタル信号に応じて、知覚符号化での許容ノイズレベルを算出するステップ;前記係数番号を持つ前記変換係数だけを周波数/時間変換して得られるディジタル信号と、前記ディジタル信号と、の差異としてのノイズを低減するように、前記係数番号を持つ前記変換係数の内少なくとも一つに対する重み付け係数を決定するステップ;前記係数番号を持つ前記変換係数の内少なくとも一つに前記重み付け係数を掛けて重み付けするステップ;及び、前記係数番号を持つ前記変換係数だけを、前記許容ノイズレベルに基づいて高能率符号化するステップ;を有する高能率符号化方法。
【請求項2】 前記重み付け係数を決定するステップが、前記重み付け係数の値を所定のテーブルから決定するステップである、請求項1記載の高能率符号化方法。
【請求項3】 前記重み付け係数を決定するステップが前記重み付け係数を、その個数を設定した上で算出するステップであって、(a) 前記重み付け係数の値を設定するサブステップ、(b) 基準信号の周波数を所定の帯域内に設定するサブステップ、(c) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(d) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(e) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(f) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を求めて前記基準信号の周波数におけるノイズレベルとするサブステップ、(g) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記ノイズレベルの中から、その最大値であるピークノイズレベルを求めるサブステップ、及び、(h) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピークノイズレベルの中から、その最小値である最小ピークノイズレベルを求め、前記重み付け係数の値を、前記ピークノイズレベルが前記最小ピークノイズレベルとなる時の値に決定するサブステップ、を含むステップである、請求項1記載の高能率符号化方法。
【請求項4】 前記重み付け係数を決定するステップが前記重み付け係数を、その個数も含めて算出するステップであって、(a) 前記ディジタル信号が一様な周波数特性を示す場合の前記許容ノイズレベルである目標ノイズレベルを決定するサブステップ、(b) 前記重み付け係数の個数を設定するサブステップ、(c) 前記重み付け係数の値を設定するサブステップ、(d) 基準信号の周波数を所定の帯域内に設定するサブステップ、(e) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(f) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(g) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(h) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を前記基準信号の周波数におけるノイズレベルとするサブステップ、(i) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記ノイズレベルの中から、その最大値であるピークノイズレベルを求めるサブステップ、(j) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピークノイズレベルの中から、その最小値である最小ピークノイズレベルを求めるサブステップ、及び、(k) 前記ピークノイズレベルが前記最小ピークノイズレベルとなる時の前記ノイズレベルの周波数特性を前記目標ノイズレベルの周波数特性と比較し、所定の帯域でそのノイズレベルがその目標ノイズレベル以下の場合、前記重み付け係数の値及び個数をその最小ピークノイズレベルを得たときのものに決定し、それ以外の場合、前記重み付け係数の個数を所定の値だけ増やすサブステップ、を含むステップである、請求項1記載の高能率符号化方法。
【請求項5】 前記重み付け係数を決定するステップが前記重み付け係数を、その個数も含めて算出するステップであって、(a) 前記重み付け係数の個数を設定するサブステップ、(b) 前記重み付け係数の値を設定するサブステップ、(c) 基準信号の周波数を所定の帯域内に設定するサブステップ、(d) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(e) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(f) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(g) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を前記基準信号の周波数におけるノイズレベルとするサブステップ、(h) 前記基準信号の周波数におけるノイズレベルから、その周波数での前記許容ノイズレベルを差し引いて、その周波数における可聴ノイズレベルとするサブステップ、(i) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記可聴ノイズレベルの中から、その最大値であるピーク可聴ノイズレベルを求めるサブステップ、(j) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピーク可聴ノイズレベルの中から、その最小値である最小ピーク可聴ノイズレベルを求めるサブステップ、及び、(k) 前記最小ピーク可聴ノイズレベルの符号が正の場合、前記重み付け係数の個数を所定の値だけ増やし、それ以外の場合、前記重み付け係数の値及び個数をその最小ピーク可聴ノイズレベルを得たときのものに決定するサブステップ、を含むステップである、請求項1記載の高能率符号化方法。
【請求項6】 前記ディジタル信号がオーディオ信号であって、前記許容ノイズレベルが心理聴覚モデルに基づいて算出される、請求項1から請求項5までのいずれか一項に記載の高能率符号化方法。
【請求項7】 ディジタル信号を時間/周波数変換して変換係数を出力する時間/周波数変換部;前記ディジタル信号の制限帯域と、前記変換係数を知覚符号化する時の許容ノイズレベルと、を所定の知覚モデルに基づいて決定する知覚分析部;前記制限帯域内の周波数に対応する前記変換係数の少なくとも一つに所定の重み付け係数を掛けて、重み付けされた変換係数を算出する変換係数重み付け部;及び、前記制限帯域内の周波数に対応する前記変換係数を、前記許容ノイズレベル以下の量子化ノイズレベルで高能率符号化する高能率符号化部;を有する高能率符号化装置。
【請求項8】 前記重み付け係数の値を所定のテーブルとして記憶する重み付け係数記憶部を有する請求項7記載の高能率符号化装置。
【請求項9】 前記ディジタル信号の制限帯域に基づいて、前記変換係数に対する前記重み付け係数を算出する重み付け係数算出部を有する、請求項7記載の高能率符号化装置。
【請求項10】 前記知覚分析部が、前記ディジタル信号が一様な周波数特性を示す場合の前記許容ノイズレベル、すなわち、目標ノイズレベルを算出する前記高能率符号化装置であって、前記ディジタル信号の制限帯域と前記目標ノイズレベルとに基づいて、前記変換係数に対する前記重み付け係数を算出する重み付け係数算出部を有する、請求項7記載の高能率符号化装置。
【請求項11】 前記ディジタル信号の制限帯域と前記許容ノイズレベルとに基づいて、前記変換係数に対する前記重み付け係数を算出する重み付け係数算出部を有する、請求項7記載の高能率符号化装置。
【請求項12】 前記ディジタル信号がオーディオ信号であって、前記許容ノイズレベルが前記知覚分析部により心理聴覚モデルに基づいて算出される、請求項7から請求項11までのいずれか一項に記載の高能率符号化装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は変換符号化による高能率符号化方法及び装置に関し、特に、入力信号の帯域を制限し、その制限帯域内の周波数に対応する変換係数のみを高能率符号化するものに関する。
【0002】
【従来の技術】近年、高能率符号化方法として変換符号化が広く用いられている。ここで変換符号化とは、信号を周波数成分に分解し、すなわち、信号に対して時間/周波数変換を行い、それにより得られた変換係数を高能率符号化することをいう。従来、変換符号化を利用したオーディオ信号の高能率符号化方法としては、ISO(International Organization for Standardization:国際標準化機構)/IEC(International Electrotechnical Commission:国際電気標準会議)13818−7(以下文献1と呼ぶ)に記載されたMPEG(Moving Picture Experts Group:メディア統合系動画像圧縮の国際標準)2のAAC(Advanced Audio Coding:アドヴァンストオーディオ符号化)が知られている。更に、変換符号化をサブバンド符号化と組み合わせた方法、すなわち、ハイブリッド符号化方法を利用した高能率符号化方法が、例えば特開平5−91062号公報に記載されている。
【0003】図20は、ディジタルオーディオ信号を対象とし、変換符号化を利用した従来の高能率符号化装置のブロック図である。この従来の高能率符号化装置は、時間/周波数変換部2001、心理聴覚分析部2002及び量子化及び符号化部2003を含む。時間/周波数変換部2001は、外部からディジタルオーディオ信号を入力し、時間/周波数変換を行って変換係数を出力する回路部分である。時間/周波数変換部2001は、入力信号をブロックに分割するためのサンプラ、所定の窓関数を記憶しているROM、MDCT(Modified Discrete Cosine Transform:変形離散コサイン変換)又はFFT(Fast Fourier Transform:高速フーリエ変換)を行う演算回路、等をハードウエアとして含む。ハイブリッド符号化を行う場合、所定のフィルタバンクを含む。
【0004】心理聴覚分析部2002は、量子化及び符号化部2003に対してディジタルオーディオ信号の帯域の制限と心理聴覚上の許容ノイズレベルの決定とを行う回路部分である。ここで、心理聴覚上の許容ノイズレベルとは、心理聴覚効果により聴覚では捉えられない量子化ノイズレベルを表し、所定の心理聴覚モデルに基づいて決定される。心理聴覚分析部2002は、外部からディジタルオーディオ信号を入力してサンプリング周波数を求める信号解析部、及び、それらに応じてディジタルオーディオ信号の帯域を制限する帯域制限部を含む。以下、その帯域制限部によって制限されたディジタルオーディオ信号の帯域を制限帯域という。更に、外部からのディジタルオーディオ信号と、時間/周波数変換部2001からの変換係数と、に応じて、心理聴覚上の許容ノイズレベルを算出する許容ノイズレベル決定部を含む。制限帯域及び許容ノイズレベルの情報は量子化及び符号化部2003へ出力される。
【0005】量子化及び符号化部2003は、上記の制限帯域と許容ノイズレベルとに基づいて、その制限帯域内の周波数に対応する変換係数だけを高能率符号化する回路部分である。ここで高能率符号化とは、変換係数を許容ノイズレベルに応じて割り当てられたビット数で量子化し、そのようにして量子化されたデータに対してハフマン符号化等のエントロピー符号化を行うことをいう。
【0006】図21は、上記のような高能率符号化装置による、従来の高能率符号化方法のフローチャートを示す。ステップ2101では、ディジタルオーディオ信号を入力しブロック単位で分割する。ここで1ブロックは、例えば256個のサンプルから成る。ハイブリッド符号化の場合、ディジタルオーディオ信号をフィルタバンクによって複数の帯域(サブバンド)に分割し、更に各サブバンドのディジタルオーディオ信号をブロックに分割する。この時ディジタルオーディオ信号のサンプルを、あるブロックの後半とその直後のブロックの前半とでそれぞれのブロックの50%ずつオーバーラップさせる。
【0007】ステップ2102では、次のようにして1ブロックのディジタルオーディオ信号を周波数成分に分解し、すなわち、時間/周波数変換し、変換係数を算出する。まず、1ブロックのディジタルオーディオ信号のサンプルに所定の窓関数を掛ける。相前後するブロック間でのサンプルのオーバーラップ及び窓関数の利用により、ブロックの境界で後述の量子化ノイズが不連続にならない。その結果、復号されたオーディオ信号において、ブロック歪みを抑えることができる。次に、窓関数を掛けた後のディジタルオーディオ信号に対して、MDCT又はFFTにより時間/周波数変換を行う。これにより、1ブロックのディジタルオーディオ信号のサンプル数と同数の変換係数が算出される。特にMDCTでは変換係数が所定の対称性を有するので、独立な変換係数の数が全体の1/2となる。従って、上記のオーバーラップによる符号化効率の劣化を相殺できる。
【0008】ステップ2103では、ディジタルオーディオ信号の帯域を制限する。具体的には、上記の変換係数の一部を取り除く。特に、その制限帯域の上限、すなわち、変換係数の係数番号の最大値がサンプリング周波数とビットレートとに応じて、以下のように決定される。ここで、ビットレートとは、ディジタルオーディオ信号のサンプリング周波数、一つのサンプルに対する量子化ステップ及びディジタルオーディオ信号のチャネル数を掛け合わせたものである。
【0009】サンプリング周波数とビットレートとが与えられると、符号化時の量子化ステップが変換係数のそれぞれに対して決まる。この量子化ステップが粗すぎると、復号された信号が符号化前の元の信号、すなわち、原信号をあまり良く再現できず、いわゆる量子化ノイズを含む。そこで、変換係数を係数番号の大きい順、すなわち、対応する周波数が高い順に取り除く。このようにオーディオ信号の周波数の高い成分を取り除いても、元のオーディオ信号との差異はわかりにくい。何故なら、オーディオ信号の、ある程度より高い周波数の成分は、人間には感知されにくいからである。このようにして変換係数の数を減らし、すなわち、ディジタルオーディオ信号の帯域を制限する。その上で、取り除かれた変換係数のデータ量だけ、残りの変換係数の量子化ステップを多くする。こうして、ディジタルオーディオ信号全体の符号量を増やすことなく、符号化の品質が人間の聴覚で感知されやすい帯域で十分高くなる。
【0010】上記のように帯域を制限することにより、制限帯域外の周波数に対応する変換係数と、それに付随するサイド情報と、を符号化データから除外できる。それ故、制限帯域内の周波数に対応する変換係数を高品質に符号化できる。ここで、サイド情報とは変換係数の量子化情報に付随する情報をいい、例えば、スケールファクタ、変換係数に対するハフマン符号化テーブルの種類等、に関する情報を含む。
【0011】ステップ2104では、例えば文献1に記載されている心理聴覚分析により心理聴覚上の許容ノイズレベルを算出する。文献1に記載されている心理聴覚分析は、ディジタルオーディオ信号の各周波数成分、すなわち、各変換係数に対応する静寂時の最小可聴限界を求めること、更に、所定の帯域に含まれる複数の変換係数から互いに対するマスキング効果を求めること、から成る。許容ノイズレベルは上記の帯域ごとに、静寂時の最小可聴限界又はマスキング効果の閾値のいずれか大きい方に決定される。
【0012】ステップ2105では、変換係数の量子化を、量子化ノイズレベルが許容ノイズレベル以下となるように行う。更に、量子化された変換係数のデータに対してハフマン符号化等のエントロピー符号化処理を行う。ステップ2106では、上記のように符号化されたデータをブロック単位で出力する。以上のように、ディジタルオーディオ信号は変換係数へと時間/周波数変換され、心理聴覚分析に基づいて効率良く量子化された後符号化される。
【0013】
【発明が解決しようとする課題】上記の特開平5−91062号に記載された高能率符号化のように、従来の高能率符号化はディジタルオーディオ信号の帯域を一般に制限する。その結果、復号されたディジタルオーディオ信号が後述のように、制限帯域内外にノイズを含んでいた。つまり、従来の高能率符号化には、復号された信号の品質が劣化するという問題点があった。
【0014】図22は、周波数6.503kHzの正弦波信号xのMDCTスペクトルを示す。ここで、MDCTスペクトルとは、MDCTによる変換係数であるMDCT係数Xの絶対値のスペクトルをいう。図22の縦軸は、MDCT係数Xの絶対値を、その最大値に対する相対値で表したものであり、すなわち、MDCT係数Xの絶対値の最大値が0dBに相当する。図22のMDCTスペクトルは、式(1)の窓関数WIND(n)及び式(2)のMDCTを用いて得られたものである。
【0015】
【数1】

【0016】
【数2】

【0017】ここで、正弦波信号xのサンプルシーケンス番号を整数nで表し、1ブロックの長さNの値を256とする。更に、正弦波信号xのMDCT係数Xの係数番号を整数kで表す。周波数fの正弦波信号xに対するサンプリング周波数をfnとすると、式(2)からわかるように、MDCT係数X(k)は、その係数番号kを含む計算式(k+1/2)/N×fnの値が正弦波信号xの周波数fに最も近くなるとき、一般に最大となる。図22のMDCTスペクトルではサンプリング周波数を22.05kHzとしているので、(k+1/2)/256×22.05kHz≒6.503kHzを満たすkの値を係数番号とするMDCT係数、すなわち、係数番号k=75のMDCT係数X(75)が最大となる。図22に示されているように、正弦波信号xに対応するMDCTスペクトルは、単一の係数番号k=75に集中せず、その番号を中心として対称的に裾野の広い分布を示す。このように一つの係数番号に集中しないのは窓関数WIND(n)の効果による。
【0018】図22に示されているMDCTスペクトルに含まれているMDCT係数を、IMDCT(Inverse Modified Cosine Transform:逆変形離散コサイン変換)により変換する。その変換により得られた信号に対して、DFT(Discrete FourierTransform:離散的フーリエ変換)を行う。図23は、IMDCTにより得られた信号の、DFTによる周波数スペクトルである。図23の縦軸は、IMDCTにより得られた信号の周波数成分の電力レベルを元の正弦波信号(原信号)に対する相対値で表したものであり、すなわち、原信号の周波数成分の電力レベルが0dBに相当する。一方、図23の横軸は0〜11.025kHzの周波数を表す。横軸上の目盛は上記の帯域を16分割したものであり、各目盛の数値は小数点以下を四捨五入されたものである。図23に示されているように、IMDCTにより得られた信号は原信号と同じ周波数6.503kHzの正弦波だけを含み、それ以外の周波数成分、すなわち、ノイズを含んでいない。つまり、元の正弦波信号が復元されている。
【0019】図24は、図22のMDCTスペクトルに含まれているMDCT係数X(k)を係数番号kが75以下のものだけに制限したときのMDCTスペクトルを示す。図24の縦軸はMDCT係数Xの絶対値を、その最大値に対する相対値で表したものであり、すなわち、MDCT係数Xの絶対値の最大値が0dBに相当する。このようにMDCT係数X(k)の係数番号kを75以下に制限するのは、入力信号xの周波数成分を6.503kHz以下に制限する目的からである。図24に示されているMDCTスペクトルに含まれているMDCT係数をIMDCTにより変換する。図25は、図24のMDCTスペクトルに含まれているMDCT係数からIMDCTにより得られた信号(以下、帯域制限された信号という)の周波数スペクトルを示す。図25の縦軸は、帯域制限された信号の周波数成分の電力レベルを元の正弦波信号に対する相対値で表したものであり、すなわち、元の正弦波信号の電力レベルが0dBに相当する。図23と図25とを比較すれば明らかなように、帯域制限された信号は元の周波数6.503kHz以外の周波数成分、すなわち、ノイズを制限帯域内(6.503kHz以下)及び外(6.503kHz以上)のいずれにも含んでいる。このように、従来の高能率符号化では、MDCTスペクトルにおいて係数番号を制限していたので、復号された信号が原信号には含まれていなかった周波数成分、すなわち、ノイズを含んでいた。このノイズの発生の結果、復号された信号の品質が原信号より劣化していた。
【0020】そこで、本発明は、変換係数の係数番号の制限により発生するノイズを低減することにより、復号された信号の品質を高くした高能率符号化方法及び装置の提供を目的とする。
【0021】
【課題を解決するための手段】本発明の高能率符号化方法は、ディジタル信号を時間/周波数変換して変換係数を得るステップ;前記ディジタル信号の帯域をサンプリング周波数及びビットレートに応じて制限し、その制限帯域内の周波数に対応する前記変換係数の係数番号を決定するステップ;前記ディジタル信号に応じて、知覚符号化での許容ノイズレベルを算出するステップ;前記係数番号を持つ前記変換係数だけを周波数/時間変換して得られるディジタル信号と、前記ディジタル信号と、の差異としてのノイズを低減するように、前記係数番号を持つ前記変換係数の内少なくとも一つに対する重み付け係数を決定するステップ;前記係数番号を持つ前記変換係数の内少なくとも一つに前記重み付け係数を掛けて重み付けするステップ;及び、前記係数番号を持つ前記変換係数だけを、前記許容ノイズレベルに基づいて高能率符号化するステップ;を有する。
【0022】時間/周波数変換とは、信号を周波数成分に分解して変換係数に変換することをいい、例えばディジタル信号に対する離散フーリエ変換、離散コサイン変換(DCT)、変形離散コサイン変換(MDCT)等を含む。周波数/時間変換とは時間/周波数変換の逆変換であって、変換係数を信号へ変換することをいう。例えば、逆フーリエ変換、逆離散コサイン変換(IDCT)、逆変形離散コサイン変換(IMDCT)等がある。更に、知覚符号化とは、人間の感覚(知覚)の性質を利用して、信号の細部の内、知覚の感度が低い部分の情報を省略し、それにより人間が感知しにくい程度に符号量を削減する符号化をいう。例えば、オーディオ信号に対する心理聴覚効果を利用した符号化、映像信号に対する視覚心理学を利用した符号化等がある。
【0023】上記の本発明の高能率符号化方法では、変換係数に重み付け係数を掛けて、帯域制限後のディジタル信号の周波数スペクトルを調整する。それにより、原信号とは異なる周波数成分(以下、ノイズという)の電力レベルを、原信号のものに対して抑えることができる。特に、制限帯域内の周波数に対応する変換係数の内、制限帯域の境界近傍のものに、1.0より小さい正の数である重み付け係数を掛けて、制限帯域の外側又は内側に現れるノイズの電力レベルを低減できる。上記の本発明の高能率符号化方法では、前記重み付け係数を決定するステップが、前記重み付け係数の値を所定のテーブルから決定するステップであっても良い。それにより、重み付け係数を容易に設定できる。
【0024】上記の本発明の高能率符号化方法では、前記重み付け係数を決定するステップが前記重み付け係数を、その個数を設定した上で算出するステップであって、(a) 前記重み付け係数の値を設定するサブステップ、(b) 基準信号の周波数を所定の帯域内に設定するサブステップ、(c) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(d) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(e) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(f) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を求めて前記基準信号の周波数におけるノイズレベルとするサブステップ、(g) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記ノイズレベルの中から、その最大値であるピークノイズレベルを求めるサブステップ、及び、(h) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピークノイズレベルの中から、その最小値である最小ピークノイズレベルを求め、前記重み付け係数の値を、前記ピークノイズレベルが前記最小ピークノイズレベルとなる時の値に決定するサブステップ、を含むステップ、であっても良い。
【0025】ここで、基準信号は所定の周波数、波形及び電力レベルを有する信号であって、好ましくは正弦波である。基準信号が正弦波の場合、上記のノイズレベルは、帯域制限された正弦波の周波数スペクトルの内、元の正弦波の周波数を除く周波数成分の電力レベルの総和である。上記の本発明の高能率符号化方法では、基準信号を時間/周波数変換の基底(例えば正弦波)に選び、ディジタル信号を様々な周波数の基準信号に分解した場合、それぞれの基準信号の電力レベルとその周波数でのノイズレベルとの比の最大値を小さくするように、所定の個数の重み付け係数の値を決定できる。
【0026】上記の本発明の高能率符号化方法では、上記のステップとは別に、前記重み付け係数を決定するステップが前記重み付け係数を、その個数も含めて算出するステップであって、(a) 前記ディジタル信号が一様な周波数特性を示す場合の前記許容ノイズレベルである目標ノイズレベルを決定するサブステップ、(b) 前記重み付け係数の個数を設定するサブステップ、(c) 前記重み付け係数の値を設定するサブステップ、(d) 基準信号の周波数を所定の帯域内に設定するサブステップ、(e) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(f) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(g) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(h) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を前記基準信号の周波数におけるノイズレベルとするサブステップ、(i) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記ノイズレベルの中から、その最大値であるピークノイズレベルを求めるサブステップ、(j) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピークノイズレベルの中から、その最小値である最小ピークノイズレベルを求めるサブステップ、及び、(k) 前記ピークノイズレベルが前記最小ピークノイズレベルとなる時の前記ノイズレベルの周波数特性を前記目標ノイズレベルの周波数特性と比較し、所定の帯域でそのノイズレベルがその目標ノイズレベル以下の場合、前記重み付け係数の値及び個数をその最小ピークノイズレベルを得たときのものに決定し、それ以外の場合、前記重み付け係数の個数を所定の値だけ増やすサブステップ、を含むステップ、であっても良い。
【0027】上記の本発明の高能率符号化方法では、基準信号を時間/周波数変換の基底に選び、ディジタル信号を様々な周波数の基準信号に分解した場合、それぞれの基準信号の電力レベルとその周波数でのノイズレベルとの比を、対応する周波数での目標ノイズレベルより小さくするように、重み付け係数の個数及び値を決定できる。
【0028】上記の本発明の高能率符号化方法では、上記のステップとは更に別に、前記重み付け係数を決定するステップが前記重み付け係数を、その個数も含めて算出するステップであって、(a) 前記重み付け係数の個数を設定するサブステップ、(b) 前記重み付け係数の値を設定するサブステップ、(c) 基準信号の周波数を所定の帯域内に設定するサブステップ、(d) 前記基準信号を時間/周波数変換して前記基準信号に対応する変換係数を得るサブステップ、(e) 前記基準信号に対応する変換係数の内、前記係数番号を持つものの少なくとも一つに前記重み付け係数を掛けて重み付けするサブステップ、(f) 前記係数番号を持つ前記基準信号に対応する変換係数だけを周波数/時間変換して帯域制限された基準信号を得るサブステップ、(g) 前記帯域制限された基準信号の周波数スペクトルから前記基準信号の周波数スペクトルを除いてノイズスペクトルとし、その電力レベルの総和を前記基準信号の周波数におけるノイズレベルとするサブステップ、(h) 前記基準信号の周波数におけるノイズレベルから、その周波数での前記許容ノイズレベルを差し引いて、その周波数における可聴ノイズレベルとするサブステップ、(i) 前記基準信号の周波数を異なる値に設定するごとに求められた複数の前記可聴ノイズレベルの中から、その最大値であるピーク可聴ノイズレベルを求めるサブステップ、(j) 前記重み付け係数を異なる値に設定するごとに求められた複数の前記ピーク可聴ノイズレベルの中から、その最小値である最小ピーク可聴ノイズレベルを求めるサブステップ、及び、(k) 前記最小ピーク可聴ノイズレベルの符号が正の場合、前記重み付け係数の個数を所定の値だけ増やし、それ以外の場合、前記重み付け係数の値及び個数をその最小ピーク可聴ノイズレベルを得たときのものに決定するサブステップ、を含むステップ、であっても良い。
【0029】上記の本発明の高能率符号化方法では、基準信号を時間/周波数変換の基底に選び、ディジタル信号を様々な周波数の基準信号に分解した場合、それぞれの基準信号の周波数でのノイズレベルを同じ周波数での許容ノイズレベル以下にするように、重み付け係数の個数及び値を決定できる。
【0030】上記のいずれの本発明の高能率符号化方法においても、前記ディジタル信号がオーディオ信号である場合、前記許容ノイズレベルが心理聴覚モデルに基づいて算出される。特に、上記の本発明の高能率符号化方法の内、目標ノイズレベルを算出するものでは、その目標ノイズレベルも心理聴覚モデルに基づいて算出される。それにより、ディジタルオーディオ信号に対して上記の本発明の高能率符号化方法を適用できる。
【0031】本発明の高能率符号化装置は、ディジタル信号を時間/周波数変換して変換係数を出力する時間/周波数変換部;前記ディジタル信号の制限帯域と、前記変換係数を知覚符号化する時の許容ノイズレベルと、を所定の知覚モデルに基づいて決定する知覚分析部;前記制限帯域内の周波数に対応する前記変換係数の少なくとも一つに所定の重み付け係数を掛けて、重み付けされた変換係数を算出する変換係数重み付け部;及び、前記制限帯域内の周波数に対応する前記変換係数を、前記許容ノイズレベル以下の量子化ノイズレベルで高能率符号化する高能率符号化部;を有する。
【0032】ここで知覚モデルとは、信号に対する人間の感覚(知覚)の感度をモデル化したものをいう。例えば、オーディオ信号に対する心理聴覚モデル、映像信号に対する視覚モデル等がある。上記の本発明の高能率符号化装置では、変換係数重み付け部が変換係数に重み付け係数を掛けて、帯域制限後のディジタル信号の周波数スペクトルを調整する。それにより、原信号とは異なる周波数成分(ノイズ)の電力レベルを、原信号のものに対して抑えることができる。特に、制限帯域内の周波数に対応する変換係数の内、制限帯域の境界近傍のものに、1.0より小さい正の数である重み付け係数を掛けて、制限帯域の外側又は内側に現れるノイズの電力レベルを低減できる。
【0033】上記の本発明の高能率符号化装置が、前記重み付け係数の値を所定のテーブルとして記憶する重み付け係数記憶部を有しても良い。それにより、重み付け係数を容易に設定できる。
【0034】それとは別に、上記の本発明の高能率符号化装置が、前記ディジタル信号の制限帯域に基づいて、前記変換係数に対する前記重み付け係数を算出する重み付け係数算出部を有しても良い。それにより上記の重み付け係数のテーブルを記憶しておく必要がないので、重み付け係数を記憶するメモリの容量を低減できる。
【0035】上記の本発明の高能率符号化装置において、上記のものとは別に、前記知覚分析部が、前記ディジタル信号が一様な周波数特性を示す場合の前記許容ノイズレベル、すなわち、目標ノイズレベルを算出し、重み付け係数算出部が、前記ディジタル信号の制限帯域と前記目標ノイズレベルとに基づいて、前記変換係数に対する前記重み付け係数を算出しても良い。この構成により、ディジタル信号の帯域の制限に起因するノイズのノイズレベルを目標ノイズレベルより小さくするように、重み付け係数を決定できる。
【0036】それとは別に、上記の本発明の高能率符号化装置が、前記ディジタル信号の制限帯域と前記許容ノイズレベルとに基づいて、前記変換係数に対する前記重み付け係数を算出する重み付け係数算出部を有しても良い。この構成により、ディジタル信号の帯域の制限に起因するノイズのノイズレベルを知覚符号化での許容ノイズレベルより小さくするように、重み付け係数を決定できる。
【0037】上記のいずれの本発明の高能率符号化装置においても、前記ディジタル信号がオーディオ信号である場合、前記許容ノイズレベルが前記知覚分析部により心理聴覚モデルに基づいて算出される。特に、上記の本発明の高能率符号化装置の内、目標ノイズレベルを算出するものでは、その目標ノイズレベルも心理聴覚モデルに基づいて算出される。それにより、ディジタルオーディオ信号に対する高能率符号化装置として、上記の本発明の高能率符号化装置を利用できる。
【0038】
【発明の実施の形態】以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。
《実施例1》
〈実施例1の構成〉図1は、本発明の実施例1による高能率符号化装置の構成を示すブロック図である。実施例1は、時間/周波数変換部101、心理聴覚分析部102、量子化及び符号化部103、重み付け係数記憶部104及び変換係数重み付け部105を含む。図20に示されている従来の構成と比較して、実施例1は重み付け係数記憶部104と変換係数重み付け部105とを追加している点で異なる。
【0039】時間/周波数変換部101は、外部からディジタルオーディオ信号を入力し、時間/周波数変換を行って変換係数を出力する回路部分である。外部からのディジタルオーディオ信号は、例えば、量子化ステップを16ビットとする直線量子化によりアナログオーディオ信号を量子化したものである。時間/周波数変換部101は、入力信号をブロックに分割するためのサンプラ、上記の式(1)の窓関数WIND(n)を記憶しているROM、式(2)のMDCTを行う演算回路をハードウエアとして含む。ハイブリッド符号化を行う場合、上記のサンプラに替えて所定のフィルタバンク(帯域分割フィルタバンク又はアナリシスバンク)を含んでも良い。
【0040】サンプラは、入力信号の256個のサンプルを1ブロックとし、すなわち、ブロック長を256サンプルとする。更に、相前後して入力されるブロックの間で、互いのサンプルを1ブロックの50%ずつオーバーラップさせる。すなわち、先に入力された1ブロックの後半に含まれている128サンプルと、後に入力された1ブロックの前半に含まれている128サンプルと、を共通のサンプルにする。以下、このようなサンプルのオーバーラップを50%オーバーラップという。
【0041】心理聴覚分析部102は、ディジタルオーディオ信号の帯域の制限と許容ノイズレベルの設定とを行う回路部分である。心理聴覚分析部102は、外部からディジタルオーディオ信号を入力してサンプリング周波数を求める信号解析部、及び、サンプリング周波数とビットレートとに応じてディジタルオーディオ信号の帯域を制限する帯域制限部を含む。これらにより、例えば、オーディオ信号がモノラルであって、サンプリング周波数が44.1kHzであり、かつ、ビットレートが64kbpsである場合、周波数約15kHz以下の帯域に制限される。又は、サンプリング周波数が22.05kHzであり、かつ、ビットレートが32kbpsである場合、周波数約7kHz以下の帯域に制限される。このようにして心理聴覚分析部102によって制限された帯域を、以下、制限帯域という。更に、心理聴覚分析部102は、ディジタルオーディオ信号と、時間/周波数変換部101からの変換係数と、に対する許容ノイズレベルを算出する許容ノイズレベル決定部を含む。ここで許容ノイズレベルとは、心理聴覚効果により聴覚では捉えられない量子化ノイズレベルを表し、好ましくは上記の文献1に記載された心理聴覚モデルに基づいて、後述のように決定される。制限帯域の情報は量子化及び符号化部103及び変換係数重み付け部105へ、許容ノイズレベルの情報は量子化及び符号化部103へ、それぞれ出力される。
【0042】量子化及び符号化部103は、心理聴覚分析部102から入力した制限帯域と許容ノイズレベルとの情報に基づいて、その制限帯域内の周波数に対応する変換係数を量子化し、更に、量子化されたデータをハフマン符号化によりエントロピー符号化する回路部分である。量子化及び符号化部103へ入力される変換係数は、従来とは異なり、変換係数重み付け部105によって後述のように重み付けされている。
【0043】重み付け係数記憶部104は所定の重み付け係数を記憶した回路であって、好ましくはROMである。ここで、重み付け係数は0以上1以下の正数であり、後述のようにして複数個が設定されている。重み付け係数記憶部104は、その重み付け係数の個数と値とを記憶している。
【0044】変換係数重み付け部105は、心理聴覚分析部102から入力した制限帯域内の周波数に対応する重み付け係数を重み付け係数記憶部104から読み出し、時間/周波数変換部101から入力した変換係数に乗算する演算回路である。乗算の結果得られた変換係数は、量子化及び符号化部103へ出力される。
【0045】上記の実施例1の構成部分はいずれも、好ましくは、それぞれ専用の集積回路から成る。その他に、共通のCPU及びRAM等を利用してソフトウエアにより構成されていても良い。
【0046】〈実施例1の動作〉上記の構成により、実施例1の高能率符号化装置は以下のように動作し、入力信号を高能率符号化する。図2は、本発明の実施例1による高能率符号化方法を示すフローチャートである。図21に示されている従来の高能率符号化方法のフローチャートと比較して、実施例1は変換係数に重み付け係数を掛けるステップ205を追加している。以下、実施例1の高能率符号化方法について、図2のフローチャートに示されているステップ順に説明する。
【0047】[ステップ201]時間/周波数変換部101が、外部からディジタルオーディオ信号を入力し、ブロック単位に分割する。ここで、1ブロックは256個のサンプルから成り、すなわち、ブロック長が256サンプルである。外部からのディジタルオーディオ信号はアナログオーディオ信号を、例えば16ビットの量子化ステップで直線量子化したものである。更に、時間/周波数変換部101は、相前後して入力したブロック間で50%オーバーラップを行う。すなわち、先に入力したブロックの後半の128サンプルと、後に入力したブロックの前半の128サンプルと、を共通にする。
【0048】[ステップ202]時間/周波数変換部101が、1ブロックのディジタルオーディオ信号に対して時間/周波数変換を行い、変換係数を算出する。具体的には式(2)のMDCTにより、ディジタルオーディオ信号の各サンプルx(n)(n=0,1,2,・・・,255)に式(1)の窓関数WIND(n)を掛けたものを時間/周波数変換し、MDCT係数X(k)(k=0,1,2,...,127)を算出する。
【0049】
【数1】

【0050】
【数2】

【0051】上記のように、相前後するブロック間での50%オーバーラップ及び窓関数WIND(n)の利用により、後述の量子化ノイズがブロックの境界で不連続にならない。その結果、復号されたオーディオ信号において、ブロック歪みを抑えることができる。更に、1ブロック(ブロック長N=256)のディジタルオーディオ信号を変換して得られたMDCT係数X(k)(k=0,1,2,・・・,255)では、その値が係数番号k=127とk=128との中間点に対して奇対称に分布する。すなわち、X(N−1−k)=−X(k)(k=0,1,2,・・・,127)の関係がある。従って、独立なMDCT係数X(k)の数が全体の1/2となるので、上記の50%オーバーラップによる符号化効率の劣化を相殺できる。
【0052】[ステップ203]心理聴覚分析部102により以下のようにしてディジタルオーディオ信号x(n)の帯域を制限し、すなわち、その制限帯域内の周波数に対応する係数番号以外のMDCT係数X(k)を削除する。ディジタルオーディオ信号x(n)の制限帯域は、ビットレートとサンプリング周波数とに応じて、次のように決定される。
【0053】サンプリング周波数とビットレートとが与えられると、符号化時の量子化ステップがMDCT係数X(k)のそれぞれに対して決まる。この量子化ステップが粗すぎて量子化ノイズレベルが所定の値を超える場合、MDCT係数X(k)を係数番号kの大きい順、すなわち、対応する周波数の高い順に取り除く。このようにMDCT係数X(k)の一部を削除すれば、復号された信号と元のオーディオ信号との差異がわかりにくい。何故ならオーディオ信号の周波数成分は、その周波数がある程度より高いと、人間の聴覚では感知されにくいからである。上記のようにMDCT係数X(k)の数を減らし、すなわち、ディジタルオーディオ信号x(n)の帯域を制限する。その上で、取り除かれたMDCT係数X(k)のデータ量だけ残りのMDCT係数X(k)の量子化ステップを多くする。こうして、ディジタルオーディオ信号x(n)全体の符号量を増やすことなく、符号化の品質が人間の聴覚で感知されやすい帯域で十分高くなる。以上のように、所定のサンプリング周波数及びビットレートの下で、符号化の品質が人間の聴覚で感知されやすい帯域で十分高いように、ディジタルオーディオ信号x(n)の制限帯域の上限が決定される。
【0054】ディジタルオーディオ信号の制限帯域の上限を、様々なビットレート及びサンプリング周波数に対して予め求めておき、心理聴覚分析部102内に記憶させていても良い。この場合心理聴覚分析部102は、ビットレート及びサンプリング周波数に対応する制限帯域を記憶されているものの中から読み出して設定する。
【0055】上記の制限帯域内の周波数に対応するMDCT係数X(k)の係数番号を求め、その番号以外の係数番号を持つMDCT係数X(k)を削除する。これにより、制限帯域外の周波数に対応するMDCT係数とそれらに付随するサイド情報とを符号化データから除外できる。その結果、符号化すべきデータ量が減るので、制限帯域内の周波数に対応するMDCT係数を高品質に符号化できる。
【0056】実施例1では、ビットレートを32kbpsとし、サンプリング周波数を22.05kHzとしている。更に、128個のMDCT係数X(k)を係数番号kの順に所定の個数ごとにグループに分けている。表1は、係数番号kと、MDCT係数X(k)の属するグループとの対応表である。ここで、このグループのことを、スケールファクタバンド(SFB:Scale Factor Band)と呼ぶ。各グループはスケールファクタバンド(SFB)番号で識別される。表1に示されているように、複数の異なるMDCT係数X(k)が同じSFB番号を有する。上記のオーディオ信号の制限帯域とMDCT係数X(k)の係数番号kとの対応は、実際にはSFB番号によって行われる。実施例1では、オーディオ信号の制限帯域に応じて、SFB番号が12以上、換言するとMDCT係数番号kが76以上のMDCT係数X(k)が、符号化されるべきデータから削除される。
【0057】
【表1】

【0058】[ステップ204]心理聴覚分析部102により、文献1に記載されている心理聴覚モデルに基づいて許容ノイズレベルを以下のようにして算出する。文献1に記載されている心理聴覚モデルは、時間/周波数変換部101からの変換係数のそれぞれに対応する静寂時の最小可聴限界、及び、所定の帯域に含まれる複数の変換係数に対する相互のマスキング効果の閾値を表す。心理聴覚分析部102はその心理聴覚モデルから、それぞれの変換係数に対応する静寂時の最小可聴限界及びマスキング効果の閾値を求め、そのいずれか大きい方をそれに対応する変換係数の許容ノイズレベルとして決定する。
【0059】[ステップ205]変換係数重み付け部105により、MDCT係数に重み付け係数を掛ける。実施例1では、係数番号kのMDCT係数X(k)に対する重み付け係数W(k)(k=0,1,2,・・・,75)を式(3)のように設定する。
【0060】
W(k)=1.0 (k=0,1,2,・・・,74)、 W(k=75)=0.5 (3)【0061】式(3)に従った重み付け係数W(k)の設定は、以下のようにして行われる。重み付け係数記憶部104には、式(3)の重み付け係数W(k=75)の値である0.5が記憶されている。変換係数重み付け部105は、心理聴覚分析部102から制限帯域の情報として係数番号kの上限である75の値を入力する。それから、上限の係数番号k=75を持つMDCT係数X(75)を選択する。更に、そのMDCT係数X(75)に、重み付け係数記憶部104から読み出した値0.5を掛ける。乗算の結果得られた値をMDCT係数X(75)の値と置換する。最後に、そのMDCT係数X(75)を残りのMDCT係数X(k)(k=0,1,2,・・・,74)と共に、量子化及び符号化部103へ出力する。実施例1では、上限の係数番号k=75を持つ重み付け係数W(75)を除き、重み付け係数W(k)の値はいずれも1.0である。それ故、重み付け係数W(k)(k=0,1,2,・・・,74)の乗算は不要である。
【0062】図3は、周波数6.503kHzの正弦波信号を実施例1の高能率符号化方法で符号化し、それにより得られた符号化データを復号し、その復号された信号をフーリエ変換して求めた周波数スペクトルを示す図である。図3の縦軸は、復号された信号の周波数成分の電力レベルを元の正弦波信号に対する相対値で表したものであり、すなわち、元の正弦波信号の電力レベルが0dBに相当する。周波数6.503kHzの正弦波信号を入力信号とする場合、実施例1の高能率符号化方法では、従来のものと同様、係数番号kが76以上のMDCT係数を削除し、図24に示されているMDCTスペクトルを求める。しかし、従来は図24のMDCTスペクトルをそのまま符号化していたのに対し、実施例1では上限の係数番号k=75を持つMDCT係数X(75)を0.5倍してから符号化する。その結果得られた復号された信号の周波数スペクトル(図3)では、従来の周波数スペクトル(図25)と比較して、6.503kHz以外の周波数成分の電力レベルの分布、すなわち、ノイズスペクトルが以下のように変化した。
【0063】復号された信号の周波数成分の電力レベルは、制限帯域内(周波数6.503kHz以下)では従来のものと比べて若干増加した。一方、制限帯域外(周波数6.503kHz以上)では従来より大きく減少した。特に、周波数6.503kHzの成分(周波数スペクトルのピーク位置)のすぐ右隣にある、周波数6.589kHz(6.503kHz+22.05kHz/256)の成分において、その電力レベルが大きく減少した。このように、実施例1では、従来のものと比較して、制限帯域の外側で復号された信号の周波数成分の電力レベルが減少する。その減少の程度は、制限帯域内での若干の増加の程度に比べて大きい。この効果は、心理聴覚上のマスキング効果により、次に述べるようにノイズの低減につながる。制限帯域内ではノイズが他の信号によりマスクされるので、上記の増加程度ではノイズの増加が感知されにくい。一方、制限帯域外ではノイズが他の信号によりマスクされにくいので、上記の減少によるノイズの低減が感知されやすい。従って、実施例1は従来よりも復号された信号が含むノイズを低減でき、それにより復号された信号を高品質にできる。
【0064】[ステップ206]量子化及び符号化部103により、上記のステップ205で重み付けされたMDCT係数X(k)(k=0,1,2,・・・,75)を、まず量子化する。この時、量子化ノイズが心理聴覚分析部102によって決定された許容ノイズレベル以下となるように、量子化ステップを設定する。重み付けされたMDCT係数X(k)(k=0,1,2,・・・,75)を量子化した後、ハフマン符号化によりエントロピー符号化する。それと共に、スケールファクタ及びハフマン符号化テーブル等のサイド情報も符号化する。
[ステップ207]ステップ206により得られた符号化データを外部へと出力する。以上のステップ201からステップ207までで、1ブロックのディジタルオーディオ信号の高能率符号化が完了する。
【0065】実施例1は重み付け係数W(k)を、上限の係数番号のもののみ1.0とは異なる値0.5に設定していた。その他に、上限の係数番号から係数番号が少なくなる順に数えて複数個の重み付け係数をいずれも1.0とは異なる値に設定しても良い。具体的には、ステップ205において、まず、1.0とは異なる値を持つ重み付け係数の個数を重み付け係数記憶部104から読み出す。次に、その個数だけMDCT係数を上限の係数番号から順に選択する。選択されたMDCT係数に、重み付け係数記憶部104から読み出された1.0とは異なる重み付け係数の値を順々に掛ける。この時の重み付け係数の値は、復号された信号に含まれるノイズのノイズレベルが減少するように予め設定されて、重み付け係数記憶部104に記憶されている。
【0066】実施例1では、係数番号の上限値を超えるMDCT係数を削除した。しかし、それは上限値以下のMDCT係数を全て残しておかなければならないわけではない。例えば、静寂時の最小可聴限界より大きいレベルを持つMDCT係数だけを符号化し、残りのMDCT係数は削除するようにしても良い。
【0067】《実施例2》
〈実施例2の構成〉図4は、本発明の実施例2による高能率符号化装置の構成を示すブロック図である。実施例2は、実施例1の構成(図1)と比べて、重み付け係数記憶部104に替えて重み付け係数算出部404を含む点で異なる。更に、変換係数重み付け部405は実施例1の変換係数重み付け部105と比べ、変換係数の係数番号の上限値に応じた重み付け係数を重み付け係数記憶部104から読み出す、という機能を持たない点で異なる。その他の構成については実施例1と同様であるので、実施例1と同じ符号を付してその説明は実施例1のものを援用する。
【0068】重み付け係数算出部404は、好ましくはマイクロプロセッサ又はディジタルシグナルプロセッサのような演算回路であり、心理聴覚分析部102が決定した制限帯域に基づいて、後述のように重み付け係数を算出する。変換係数重み付け部405は、重み付け係数算出部404が算出した重み付け係数を時間/周波数変換部101から入力したMDCT係数に乗算する演算回路であって、好ましくは専用の集積回路から成る。乗算の結果得られたMDCT係数は、量子化及び符号化部103へ出力される。上記の実施例2の構成部分はいずれも、共通のCPU及びRAM等を利用してソフトウエアにより構成されていても良い。
【0069】〈実施例2の動作〉以上の構成により、実施例2の高能率符号化装置は、以下のようにしてオーディオ信号を高能率符号化する。図5は、本発明の実施例2による高能率符号化方法を示すフローチャートである。実施例1のフローチャート(図2)と比べて、実施例2は重み付け係数算出ステップ501を付加している点で異なる。それ以外のステップは実施例1と実質的に同一であるので、これらのステップに関する説明は実施例1のものを援用する。
【0070】図6は、重み付け係数算出ステップ501の処理の詳細を示すフローチャートである。
[ステップ501]以下、実施例2の特徴である重み付け係数算出ステップ501を、サブステップ601〜611の順に説明する。
【0071】(サブステップ601)ステップ203(図5)で心理聴覚分析部102(図4)により決定された制限帯域、すなわち、変換係数の係数番号kの上限値の情報を、重み付け係数算出部404(図4)へ入力する。実施例2では実施例1同様、時間/周波数変換としてMDCTを用いるので、変換係数はMDCT係数である。更に、実施例2では実施例1と同じく、ブロック長を256サンプル、サンプリング周波数を22.05kHz、変換係数の係数番号の上限値を75とする。
【0072】(サブステップ602)図7はサブステップ602のフローチャートである。重み付け係数算出部404(図4)は図7のフローチャートに従って、次に述べるようにして重み付けなしのピークノイズレベルP0を算出する。
【0073】((サブサブステップ701))重み付けなしのピークノイズレベルP0及び基準信号の周波数fをそれぞれの初期値0.0及び0kHzに設定する。ここで、基準信号は所定の周波数を持つ正弦波とする。但し、周波数f=0kHzの基準信号は、直流の信号である。
((サブサブステップ702))重み付け係数算出部404は、基準信号に対して式(2)のMDCTを行ってMDCT係数を算出する。
((サブサブステップ703))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけに対してIMDCTを行う。
((サブサブステップ704))IMDCTにより得られた信号の周波数スペクトルをFFTにより算出する。算出された周波数スペクトルの内、基準信号の周波数fとは異なる周波数成分のスペクトルをノイズスペクトルとする。更に、そのノイズスペクトルの電力の総和を、基準信号の周波数fにおけるノイズレベルRとする。
((サブサブステップ705))ノイズレベルRと重み付けなしのピークノイズレベルP0とを比較する。ノイズレベルRが重み付けなしのピークノイズレベルP0より大きい場合、処理をサブサブステップ706へ進める。それ以外の場合は処理をサブサブステップ707までジャンプさせる。
((サブサブステップ706))重み付けなしのピークノイズレベルP0の値をノイズレベルRの値に置き換える。
((サブサブステップ707))基準信号の周波数fを所定の大きさ(例えば0.010kHz)ずつ増加する。
((サブサブステップ708))基準信号の周波数fを所定の上限値(例えば11.025kHz)と比較する。基準信号の周波数fが制限帯域の上限を超えた場合、サブステップ602を終える。それ以外の場合、処理をサブサブステップ702へ戻す。こうして、所定の帯域(例えば0〜11.025kHz)でノイズレベルRが比較され、その中で最も大きいものが重み付けなしのピークノイズレベルP0として選択される。
【0074】以下の処理は、再び図6のフローチャートに従って進行する。
(サブステップ603)重み付け係数算出部404は内部のレジスタに最小ピークノイズレベルPの記憶領域を確保し、最小ピークノイズレベルPの初期値を重み付けなしのピークノイズレベルP0に設定する。
(サブステップ604)重み付け係数算出部404は上記のものとは別のレジスタに、所定の個数の仮重み付け係数We(k)及び重み付け係数W(k)の記憶領域をそれぞれ確保し、仮重み付け係数We(k)の初期値を最小値に設定する。例えば、仮重み付け係数We(k)及び重み付け係数W(k)の個数をそれぞれ1とし、それらの最小値を0とする。すなわち、仮重み付け係数We(k)及び重み付け係数W(k)は、係数番号kが上限値75であるWe(75)及びW(75)だけである。
【0075】(サブステップ605)図8はサブステップ605のフローチャートである。図8において、図7のサブステップ602のフローチャートに示されているサブサブステップと同じものには同じ符号を付している。重み付け係数算出部404(図4)は図8のフローチャートに従って、次に述べるようにして重み付けした時のピークノイズレベルP1を算出する。
【0076】((サブサブステップ801))重み付けした時のピークノイズレベルP1及び基準信号の周波数fをそれぞれの初期値0.0及び0kHzに設定する。ここで、基準信号は所定の周波数を持つ正弦波とする。但し、周波数f=0kHzの基準信号は直流の信号である。
((サブサブステップ702))重み付け係数算出部404は、基準信号に対して式(2)のMDCTを行ってMDCT係数を算出する。
((サブサブステップ802))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけを残す。残ったMDCT係数から仮重み付け係数We(k)と同数のMDCT係数を、係数番号kが大きい順に取り出し、それらに仮重み付け係数We(k)をそれぞれ掛ける。例えば、重み付け係数の個数が1の場合、上限の係数番号k=75のMDCT係数だけに、仮重み付け係数We(75)を掛ける。
((サブサブステップ703))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけに対してIMDCTを行う。
((サブサブステップ704))IMDCTにより得られた信号の周波数スペクトルをFFTにより算出する。算出された周波数スペクトルの内、基準信号の周波数fとは異なる周波数成分のスペクトルをノイズスペクトルとする。更に、そのノイズスペクトルの電力の総和を、基準信号の周波数fにおけるノイズレベルRとする。
((サブサブステップ803))ノイズレベルRと重み付けした時のピークノイズレベルP1とを比較する。ノイズレベルRが重み付けした時のピークノイズレベルP1より大きい場合、処理をサブサブステップ804へ進める。それ以外の場合は処理をサブサブステップ707までジャンプさせる。
((サブサブステップ804))重み付けした時のピークノイズレベルP1の値をノイズレベルRの値に置き換える。
((サブサブステップ707))基準信号の周波数fを所定の大きさ(例えば0.010kHz)ずつ増加する。
((サブサブステップ708))基準信号の周波数fを所定の上限値(例えば11.025kHz)と比較する。基準信号の周波数fが制限帯域の上限を超えた場合、サブステップ605を終える。それ以外の場合、処理をサブサブステップ702へ戻す。こうして、所定の帯域(例えば0〜11.025kHz)でノイズレベルRが比較され、その中で最も大きいものが重み付けした時のピークノイズレベルP1として選択される。
【0077】以下の処理は、再び図6のフローチャートに従って進行する。
(サブステップ606)重み付けした時のピークノイズレベルP1を最小ピークノイズレベルPと比較する。重み付けした時のピークノイズレベルP1が最小ピークノイズレベルPより小さい(P1<P)場合にはサブステップ607へ進み、そうでない場合にはサブステップ609まで処理をジャンプさせる。
(サブステップ607)最小ピークノイズレベルPの値を重み付けした時のピークノイズレベルP1の値に置き換える。
(サブステップ608)重み付け係数W(k)を仮重み付け係数We(k)と等しくする。
【0078】(サブステップ609)仮重み付け係数We(k)を所定の値だけそれぞれ変化させる。仮重み付け係数We(k)が、例えば、係数番号k=75のものW(75)の1個だけの場合、その仮重み付け係数We(75)を0.5だけ増加させる。仮重み付け係数We(k)が複数個ある場合、それらの値の組合せを、係数番号kが大きくなると共に仮重み付け係数We(k)が大きくならないように、すなわち、任意の係数番号kについてWe(k)≧We(k+1)が成り立つように、所定の順に所定の値ずつ変化させる。例えば、仮重み付け係数We(k)が2個の場合、すなわち、We(74)とWe(75)とである場合、それらの値の組合せを、(We(74),We(75))=(0.0,0.0)、(0.5,0)、(0.5,0.5)、(1.0,0)、(1.0,0.5)の順に変化させる。ここで、仮重み付け係数We(k)はいずれも所定の最大値、例えば1.0を超えないように設定される。更に、仮重み付け係数We(k)の組合せ(We(74),We(75))=(1.0,1.0)は、重み付けなしの場合と同等であるので、サブステップ609で変化させる組合せの候補から除かれている。上記の説明では仮重み付け係数We(k)の変化の幅を0.5と設定したが、その他に、0.2、0.1又はそれ以下に設定しても良い。
【0079】(サブステップ610)仮重み付け係数We(k)としてまだ設定されていない値の組合せが残っているかどうかを判断する。未設定の組合せが残っている場合にはサブステップ605から処理を繰り返し、それ以外の場合にはサブステップ611に進む。重み付け係数の個数が1の場合、仮重み付け係数We(k)がWe(75)だけであるので、仮重み付け係数We(75)が最大値1.0以上かどうかにより、処理を分岐させても良い。すなわち、仮重み付け係数We(75)が最大値1.0未満の場合にはサブステップ605から処理を繰り返し、最大値1.0以上の場合にはサブステップ611に進むようにしても良い。
【0080】(サブステップ611)重み付け係数算出部404のレジスタに記憶された重み付け係数W(k)の情報を、変換係数重み付け部405へ出力する。上記のサブステップ605〜610の繰り返しにより、サブステップ611により出力される重み付け係数W(k)は、サブステップ609で設定される値の組合せの内、最小ピークノイズレベルPが最小である組合せになっている。このように、実施例2では、ノイズレベルのピークが最小にできるという意味で、入力信号の帯域の制限に起因するノイズを低減できる。
【0081】〈実施例2の実行例〉以上述べた重み付け係数算出ステップ501を具体的に実行した例について、図9及び図10を参照しながら以下に示す。図9及び図10は、仮重み付け係数We(k)の個数を1、係数番号kの上限値を75とする場合、サブステップ602及びサブステップ605により得られたノイズレベルの周波数特性を示す。図9は、仮重み付け係数w=We(75)がw=0.0の時のノイズレベルを実線で、w=0.5の時のノイズレベルを破線で、それぞれ示している。図10は、仮重み付け係数w=We(75)がw=1.0の時のノイズレベルを実線で、w=0.5の時のノイズレベルを破線で、それぞれ示している。図9及び図10の縦軸はノイズレベルを、各周波数の基準信号の電力レベルに対する相対値で示す。すなわち、基準信号の電力レベルが0dBに相当する。
【0082】サブステップ601で、変換係数の係数番号kの上限値を75に設定した。サブステップ602では、図10に示されている仮重み付け係数w=1.0の時のノイズレベルの周波数特性から、重み付けなしのピークノイズレベルP0として、周波数6.540kHzでの値−6.3dBが求まった。サブステップ603では、最小ピークノイズレベルPをまず、重み付けなしのピークノイズレベルP0に等しくした。サブステップ604では、仮重み付け係数We(75)の値を0.0に設定した。サブステップ605では、図9に示されている仮重み付け係数w=0.0の時のノイズノイズレベルの周波数特性から、重み付けをした時のピークノイズレベルP1として、周波数6.450kHzでの値−6.3dBが求まった。サブステップ606では、重み付けした時のピークノイズレベルP1、すなわち、仮重み付け係数w=0.0の時のノイズレベルと、最小ピークノイズレベルP、すなわち、重み付けなしのピークノイズレベルP0と、の大小を比較した。図9及び図10からわかるように、双方の大きさには差はなかった。従って、次の処理がサブステップ609までジャンプしたので、この段階では最小ピークノイズレベルPが重み付けなしのピークノイズレベルP0に等しいままであった。
【0083】サブステップ609では、仮重み付け係数w=We(75)を0.0から0.5だけ増加させた。サブステップ610では、仮重み付け係数wを1.0と比較した。この時点では仮重み付け係数wが0.5であったので、次の処理がサブステップ605へ戻った。二度目のサブステップ605では、図9及び図10に示されている仮重み付け係数w=0.5の時のノイズレベルの周波数特性から、重み付けをした時のピークノイズレベルP1として、周波数6.470kHzでの値−12.2dBが求まった。すなわち、重み付けした時のピークノイズレベルP1がその値に更新された。二度目のサブステップ606では、更新された重み付けした時のピークノイズレベルP1、すなわち、仮重み付け係数w=0.5の時のノイズレベルと、最小ピークノイズレベルP、すなわち、重み付けなしのピークノイズレベルP0と、の大小を比較した。上記の通り、仮重み付け係数w=0.5の時のノイズレベルの方が重み付けなしのピークノイズレベルP0より小さいので、次の処理がサブステップ607へ進んだ。サブステップ607では、最小ピークノイズレベルPが、重み付けなしのピークノイズレベルP0から、仮重み付け係数w=0.5の時のノイズレベルへ置き換えられた。サブステップ608では、重み付け係数W(75)として、仮重み付け係数w=We(75)の値0.5が設定された。
【0084】二度目のサブステップ609では、仮重み付け係数wを0.5から0.5だけ増加させた。二度目のサブステップ610では、仮重み付け係数wを1.0と比較した。この時点では仮重み付け係数wが1.0であったので、次の処理がサブステップ605〜610のループを抜けてサブステップ611へ進んだ。サブステップ611では、重み付け係数W(75)の値0.5が出力された。以上のようにして、重み付け係数W(75)として最小のピークノイズレベルを与えた値0.5が算出された。
【0085】入力信号の制限帯域に応じた重み付け係数の値は、実施例1では予め設定されたものを重み付け係数記憶部104に記憶させていた。それに対し、実施例2では入力信号の入力ごとに上記のように算出する。それにより、実施例2は実施例1とは異なり、重み付け係数の値を記憶しておくためのメモリの容量を必要としない。
【0086】《実施例3》〈実施例3の構成〉図11は、本発明の実施例3による高能率符号化装置の構成を示すブロック図である。実施例3は、実施例2の構成(図4)と比べて、心理聴覚分析部1102が後述の目標ノイズレベルを算出する点、及び、重み付け係数算出部1104が心理聴覚分析部102から目標ノイズレベルの情報を入力する点で異なる。その他の構成については実施例2と同様であるので、実施例2と同じ符号を付してその説明は実施例2のものを援用する。
【0087】心理聴覚分析部1102は、ディジタルオーディオ信号の帯域の制限、許容ノイズレベル及び目標ノイズレベルの設定を行う回路部分であり、実施例1の心理聴覚分析部102と同様、外部からディジタルオーディオ信号を入力してサンプリング周波数を求める信号解析部、及び、サンプリング周波数とビットレートとに応じてディジタルオーディオ信号の帯域を制限する帯域制限部を含む。これらにより、例えば、オーディオ信号がモノラルであって、サンプリング周波数が44.1kHzであり、かつ、ビットレートが64kbpsである場合、制限帯域を周波数約15kHz以下の帯域とする。又は、サンプリング周波数が22.05kHzであり、かつ、ビットレートが32kbpsである場合、制限帯域を周波数約7kHz以下の帯域とする。
【0088】更に、心理聴覚分析部1102は、実施例1の心理聴覚分析部102と同様、ディジタルオーディオ信号と、時間/周波数変換部101からの変換係数と、に対する許容ノイズレベルを算出する許容ノイズレベル決定部を含む。心理聴覚分析部1102は、実施例1の心理聴覚分析部102の構成に加えて、上記の制限帯域の広さに応じた目標ノイズレベルを算出する目標ノイズレベル決定部を含む。ここで、目標ノイズレベルとは、時間/周波数変換部101への入力信号が一様な周波数分布を示す信号(ホワイトノイズ)である場合、心理聴覚モデルに基づいて算出される許容ノイズレベルという。つまり、量子化ノイズレベルを目標ノイズレベル以下にしてホワイトノイズを高能率符号化すると、その符号化データを復号して得られた信号がホワイトノイズとして聞こえる。目標ノイズレベルは、実施例1での許容ノイズレベルの算出と同様に、例えば文献1記載の心理聴覚モデルに基づいて求められる。その結果、以下に示すように、制限帯域の広さに依存して、特に制限帯域外で変化する目標ノイズレベルの周波数特性が算出される。
【0089】図12は、時間/周波数変換部101への入力信号であるホワイトノイズと目標ノイズレベルとの周波数特性を示す模式図である。図12の実線はホワイトノイズの周波数特性を、破線は目標ノイズレベルの周波数特性を、それぞれ示している。図12の(a)及び(b)は、制限帯域が狭い場合及び広い場合に、それぞれ対応している。図12の縦軸は、信号の周波数成分の電力レベルを相対値で表している。つまり、入力信号の周波数成分のレベルが0dBに相当する。図12の横軸は、周波数をリニアスケールで表している。図12に示されているように、制限帯域内では、目標ノイズレベルが周波数及び制限帯域の広さに実質的に依存せず、ほぼ一定である。これは、制限帯域内ではホワイトノイズの周波数成分が一定のレベルで存在するので、心理聴覚上のマスキング効果により、一定のレベルまでノイズがマスクされるからである。一方、制限帯域外では、図12の(a)及び(b)を比較すれば明らかなように、周波数の増大に伴う目標ノイズレベルの減衰が、制限帯域が広いほど緩やかである。言い換えると、より高い周波数まで目標ノイズレベルが大きい。これは、心理聴覚上のマスキング効果の及ぶ帯域、すなわち、クリティカルバンドが、1kHz以上の帯域では周波数にほぼ比例して広くなるからである。
【0090】制限帯域の情報は量子化及び符号化部103及び重み付け係数算出部1104へ、許容ノイズレベルの情報は量子化及び符号化部103へ、目標ノイズレベルの情報は重み付け係数算出部1104へ、それぞれ出力される。
【0091】重み付け係数算出部1104は、好ましくは、マイクロプロセッサ又はディジタルシグナルプロセッサのような演算回路である。心理聴覚分析部1102が設定した制限帯域及び算出した目標ノイズレベルに基づいて、後述のように重み付け係数を算出し、変換係数重み付け部405へ出力する。上記の実施例3の構成部分はいずれも、共通のCPU及びRAM等を利用してソフトウエアにより構成されていても良い。
【0092】〈実施例3の動作〉以上の構成により、実施例3の高能率符号化装置は、以下のようにしてオーディオ信号を高能率符号化する。実施例3による高能率符号化方法は実施例2と比較して、重み付け係数算出ステップ501(図5)のサブステップ(図6)で実施例2と異なる。それ以外のステップについては実施例2と実質的に同一であるので、その説明は実施例2のものを援用する。
【0093】以下に説明するように、実施例3における重み付け係数算出ステップ501では、実施例2とは異なり、重み付け係数の個数を変化できるようにしている。それにより、ピークノイズレベルが後述の目標ノイズレベル以下になる重み付け係数の個数及び値を決定できる。
【0094】以下、実施例3における重み付け係数算出ステップ501について説明する。図13は、実施例3における重み付け係数算出ステップ501の処理の詳細を示すフローチャートである。図13に示されている重み付け係数算出ステップ501のサブステップの内、図6に示されている実施例2におけるサブステップと実質的に同一のものには同じ符号を付して、その詳しい説明は実施例2のものを援用する。
【0095】(サブステップ601)実施例2と同様に、心理聴覚分析部1102(図11)により設定された制限帯域、すなわち、変換係数の係数番号kの上限値の情報を、重み付け係数算出部1104(図11)へ入力する。実施例2同様、ブロック長を256サンプル、サンプリング周波数を22.05kHz、変換係数の係数番号の上限値を75とする。
【0096】(サブステップ1301)心理聴覚分析部1102が制限帯域に応じて、目標ノイズレベルの周波数特性を算出する。算出された目標ノイズレベルの周波数特性は、重み付け係数算出部1104へ出力され、そこで記憶される。
(サブステップ602)図7のフローチャートに示されている実施例2のサブステップ602と同様に、重み付け係数算出部1104(図11)が重み付けなしのピークノイズレベルP0を、実施例2のサブサブステップ701〜708により算出する。その説明は実施例2のものを援用する。
(サブステップ603)実施例2と同様に、最小ピークノイズレベルPの初期値を重み付けなしのピークノイズレベルP0に設定する。
【0097】(サブステップ1302)重み付け係数の個数Nwを1に設定する。
(サブステップ604)実施例2と同様に、重み付け係数算出部1104内のレジスタに、重み付け係数の個数Nwと同数の仮重み付け係数We(k)及び重み付け係数W(k)の記憶領域をそれぞれ確保し、仮重み付け係数We(k)の初期値を最小値0に設定する。サブステップ604の直後では、仮重み付け係数We(k)及び重み付け係数W(k)は、係数番号kが上限値75である仮重み付け係数We(75)及び重み付け係数W(75)だけであって、いずれの値も0に設定される。
(サブステップ605)図8のフローチャートに示されている実施例2のサブステップ605と同様に、重み付け係数算出部1104(図11)が重み付けした時のピークノイズレベルP1を、実施例2のサブサブステップ801〜708により算出する。その説明は実施例2のものを援用する。
【0098】(サブステップ606)実施例2と同様に、重み付けした時のピークノイズレベルP1を最小ピークノイズレベルPと比較する。重み付けした時のピークノイズレベルP1が最小ピークノイズレベルPより小さい(P1<P)場合にはサブステップ607へ進み、そうでない場合にはサブステップ1303まで処理をジャンプさせる。
(サブステップ607)最小ピークノイズレベルPの値を重み付けした時のピークノイズレベルP1の値に置き換える。
(サブステップ608)重み付け係数W(k)を仮重み付け係数We(k)と等しくする。
【0099】(サブステップ1303)仮重み付け係数We(k)を以下のように所定の値、例えば0.5又は0.2だけそれぞれ変化させる。ここで、仮重み付け係数We(k)の値の変化の幅は0.5又は0.2の他に、0.1又はそれ以下に設定しても良い。重み付け係数の個数Nwが1の場合、仮重み付け係数We(75)を0.5だけ増加させる。重み付け係数の個数Nwが2以上の場合、仮重み付け係数We(k)の値の組合せを、次の二つの条件を満たすように所定の順に0.2ずつ変化させる。第一に、係数番号kが大きくなると共に仮重み付け係数We(k)が大きくならないように、すなわち、任意の係数番号kについてWe(k)≧We(k+1)が成り立つようにする。第二に、いずれの仮重み付け係数We(k)も1.0以下であるようにする。
【0100】ここで、サブステップ1303では、仮重み付け係数We(k)の初期値及び値の変化の幅を重み付け係数の個数Nwに関係なく一定にする場合、値が1.0である仮重み付け係数We(k)を含む組合せが設定されなくても良い。その理由は以下の通りである。仮重み付け係数We(k)の値が1.0の場合、それによる重み付けは重み付けしないことと等価である。それ故、値が1.0の仮重み付け係数We(k)を一つ含む組合せは、重み付け係数の個数Nwが1だけ少ない場合の組合せと等価である。例えば、重み付け係数の個数Nwが2の場合の組合せ(We(74),We(75))=(1.0,0.0)及び(1.0,0.5)は、重み付け係数の個数Nwが1の場合の組合せWe(75)=0.0及び0.5とそれぞれ等価である。一方、後述のように、サブステップ1304での条件が満たされない限り、仮重み付け係数We(k)の値の組合せは、重み付け係数の個数Nwの小さい順に設定される。従って、値が1.0である仮重み付け係数We(k)を一つ含む組合せは、それより重み付け係数の個数Nwが1だけ少ない場合での仮重み付け係数We(k)の組合せとして既に設定されていることになる。
【0101】(サブステップ610)仮重み付け係数We(k)としてまだ設定されていない値の組合せが残っているかどうかを判断する。未設定の組合せが残っている場合にはサブステップ605から処理を繰り返し、それ以外の場合にはサブステップ1304に進む。例えば、重み付け係数の個数Nwが1の場合、仮重み付け係数We(75)が最大値1.0より小さければ処理をサブステップ605に戻し、それ以外は処理をサブステップ1304へ進める。
【0102】(サブステップ1304)図14はサブステップ1304のフローチャートである。サブステップ1304では、ピークノイズレベルが最小ピークノイズレベルPである時のノイズレベルの周波数特性と、目標ノイズレベルの周波数特性とが、例えば0〜11.025kHzの帯域内で次のようにして比較される。図14のフローチャートでは、図7と同様なサブサブステップには同じ符号を付けている。
【0103】((サブサブステップ1401))基準信号の周波数fを初期値0kHzに設定する。ここで、基準信号は所定の周波数を持つ正弦波とする。但し、周波数f=0kHzの基準信号は、直流の信号である。
((サブサブステップ702))重み付け係数算出部404は、基準信号に対して式(2)のMDCTを行ってMDCT係数を算出する。
((サブサブステップ1402))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけを残す。残ったMDCT係数から係数番号kの大きい順に、重み付け係数W(k)と同数のMDCT係数を取り出し、それらに重み付け係数W(k)をそれぞれ掛ける。
((サブサブステップ703))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけに対してIMDCTを行う。
((サブサブステップ704))IMDCTにより得られた信号の周波数スペクトルをFFTにより算出する。算出された周波数スペクトルの内、基準信号の周波数fとは異なる周波数成分のスペクトルをノイズスペクトルとする。更に、そのノイズスペクトルの電力の総和を、基準信号の周波数fにおけるノイズレベルRとする。
((サブサブステップ1402))ノイズレベルRと周波数fでの目標ノイズレベルとを比較する。目標ノイズレベルは、サブステップ1301(図13)で算出され、重み付け係数算出部404内のメモリに記憶されたものの中から読み出される。ノイズレベルRが周波数fでの目標ノイズレベル以下である場合、処理をサブサブステップ707へ進める。それ以外の場合は、処理をサブサブステップ1404へ進める。
((サブサブステップ707))基準信号の周波数fを所定の大きさ(例えば0.010kHz)ずつ増加する。
((サブサブステップ708))基準信号の周波数fを所定の上限値(例えば11.025kHz)と比較する。基準信号の周波数fが制限帯域の上限を超えた場合、処理をサブサブステップ1403へ進める。それ以外の場合、処理をサブサブステップ702へ戻す。
((サブサブステップ1403))フラグFを1に設定し、サブステップ1304を終える。
((サブサブステップ1404))フラグFを0に設定し、サブステップ1304を終える。
【0104】(サブステップ1305)フラグFが1である場合、処理をサブステップ611へ進める。それ以外の場合、処理をサブステップ1306へ進める。
(サブステップ1306)重み付け係数の個数Nwを1だけ増加し、処理をサブステップ604へ戻す。
【0105】(サブステップ611)重み付け係数算出部1104のレジスタに記憶された重み付け係数W(k)の情報、すなわち、値と個数との情報を、変換係数重み付け部405へ出力する。上記のサブステップ604〜1306の繰り返しにより、サブステップ611後に出力される重み付け係数W(k)は、0〜11.025kHzの帯域でノイズレベルが目標ノイズレベル以下である組合せになっている。
【0106】〈実施例3の実行例〉以上述べた重み付け係数算出ステップ501を具体的に実行した例について、図15を参照しながら以下に示す。図15は、係数番号kの上限値を75とし、重み付け係数の個数Nwを1及び2とするそれぞれの場合、サブステップ605〜610のループを抜けた直後の重み付け係数W(k)に対応するノイズレベルの周波数特性を示す。ここで、「重み付け係数W(k)に対応するノイズレベルの周波数特性」とは、サブステップ605において、仮重み付け係数We(k)がその重み付け係数W(k)に等しい時に得られるノイズレベルの周波数特性をいう。図15の細い実線が重み付け係数の個数Nw=1の時のノイズレベルを、破線が重み付け係数Nw=2の時のノイズレベルを、太い実線が目標ノイズレベルを、それぞれ示している。図15の縦軸はノイズレベルを、各周波数の基準信号の電力レベルに対する相対値で示す。すなわち、基準信号の電力レベルが0dBに相当する。
【0107】サブステップ601で、変換係数の係数番号kの上限値を75に設定した。サブステップ1301では、係数番号kが上限値75以下の変換係数に対応する周波数を含む制限帯域において、目標ノイズレベルの周波数特性を算出した。サブステップ602では、図10に示されている仮重み付け係数w=1.0の時のノイズレベルの周波数特性から、重み付けなしのピークノイズレベルP0が周波数6.540kHzでの値−6.3dBと求まった。サブステップ603では、最小ピークノイズレベルPをまず、重み付けなしのピークノイズレベルP0に等しくした。サブステップ1302では、重み付け係数の個数Nwを1に設定した。
【0108】サブステップ604では、仮重み付け係数We(75)の値を0.0に設定した。サブステップ605〜610のループでは、実施例2での具体的実行例と同様にして、重み付け係数の個数Nw=1での仮重み付け係数We(75)の値を0.0及び0.5として、重み付けした時のピークノイズレベルP1がそれぞれ算出された。更に、算出された重み付けした時のピークノイズレベルP1と、重み付けなしのピークノイズレベルP0とがそれぞれ比較された。その結果、重み付け係数の個数Nw=1での重み付け係数W(75)の値が0.5に決定された。上記のループを抜けた直後での最小ピークノイズレベルPの値は、重み付け係数W(75)=0.5に対応するノイズレベルの周波数特性(図15の細い実線)からわかるように、周波数6.470kHzでの値−12.2dBとなっていた。
【0109】サブステップ1304では、重み付け係数W(75)=0.5に対応するノイズレベルの周波数特性(図15の細い実線)を、サブステップ1301で算出された目標ノイズレベル(図15の太い実線)と比較した。この時点では、図15から明らかなように、重み付け係数W(75)=0.5に対応するノイズレベルが周波数6.440kHz周辺で目標ノイズレベルより大きくなった。それ故、サブサブステップ1403及び1405によりフラグFが0に設定された。サブステップ1305では、その後の処理がサブステップ1306へ進んだ。サブステップ1306では、重み付け係数の個数Nwを1だけ増やし、2とした。
【0110】二度目のサブステップ604では、2個の仮重み付け係数We(74)とWe(75)との値をいずれも0.0に設定した。それに続いてサブステップ605〜610のループでは、重み付け係数の個数Nw=2での重み付け係数(W(74),W(75))の値の組合せが(0.6,0.2)に決定された。ここで、実施例2での具体的実行例とは異なり、重み付け係数の個数Nwが2である。そこで、サブステップ1303では、仮重み付け係数(We(74),We(75))の値の組合せを、We(74)≧We(75)、We(74)≦1.0及びWe(75)≦1.0を満たすようにそれぞれ0.2ずつ変化させた。つまり、仮重み付け係数の値の組合せを(We(74),We(75))=(0.2,0.0)、(0.2,0.2)、(0.4,0.0)、(0.4,0.2)・・・の順に変化させた。但し、組合せ(We(74),We(75))=(1.0,1.0)は重み付けをしない場合と等価であり、その場合のピークノイズレベルP0はサブステップ602で既に算出されているので、サブステップ1303では設定されないようにした。上記のループを再び抜けた直後での最小ピークノイズレベルPの値は、重み付け係数(W(74),W(75))=(0.6,0.2)に対応するノイズレベルの周波数特性(図15の破線)からわかるように、周波数6.450kHzでの値−14.1dBとなっていた。
【0111】二度目のサブステップ1304では、重み付け係数(W(74),W(75))=(0.6,0.2)に対応するノイズレベルの周波数特性(図15の破線)を、サブステップ1301で算出された目標ノイズレベル(図15の太い実線)と比較した。この時点では、図15から明らかなように、重み付け係数(W(74),W(75))=(0.6,0.2)に対応するノイズレベルが周波数0〜11.025kHzの帯域で目標ノイズレベル以下となった。それ故、サブサブステップ1404によりフラグFが1に設定された。サブステップ1305では、その後の処理がサブステップ604〜1306のループを抜けて、サブステップ611へ進んだ。サブステップ611では、重み付け係数(W(74),W(75))の個数Nw=2とそれぞれの値の組合せ(0.6,0.2)との情報が出力された。以上のようにして、ノイズレベルが周波数0〜11.025kHzの帯域で目標ノイズレベル以下となるような、重み付け係数の個数及び値が算出された。
【0112】実施例3は、入力信号に対する制限帯域が設定されるごとに、重み付け係数の個数と値とを算出する。その他に、実施例1において以下のようにしても良い。すなわち、様々な制限帯域に対して、所定の帯域内でノイズレベルが目標ノイズレベル以下となる重み付け係数の個数及び値を予め算出し、テ−ブルとして実施例1の重み付け係数記憶部104(図1)に記憶させていても良い。
【0113】《実施例4》
〈実施例4の構成〉図16は、本発明の実施例4による高能率符号化装置の構成を示すブロック図である。実施例4は、実施例2の構成(図4)と比べて、重み付け係数算出部1604が心理聴覚分析部102から許容ノイズレベルの情報を入力する点で異なる。その他の構成については実施例2と同様であるので、実施例2と同じ符号を付してその説明は実施例2のものを援用する。
【0114】重み付け係数算出部1604は、好ましくは、マイクロプロセッサ又はディジタルシグナルプロセッサのような演算回路である。心理聴覚分析部102が設定した制限帯域及び算出した許容ノイズレベルに基づいて、後述のように重み付け係数を算出し、変換係数重み付け部405へ出力する。上記の実施例4の構成部分はいずれも、共通のCPU及びRAM等を利用してソフトウエアにより構成されていても良い。
【0115】〈実施例4の動作〉以上の構成により、実施例4の高能率符号化装置は、以下のようにしてオーディオ信号を高能率符号化する。実施例4による高能率符号化方法は実施例3と比較して、重み付け係数算出ステップ501(図5)のサブステップ(図13)で実施例3と異なる。それ以外のステップについては実施例3と実質的に同一であるので、その説明は実施例3のものを援用する。
【0116】以下に説明するように、実施例4における重み付け係数算出ステップ501では、実施例3とは異なり、ノイズレベルの周波数特性を示す曲線が所定の帯域内で許容ノイズレベルの周波数特性を示す曲線以下になるように、重み付け係数の個数及び値を決定できる。
【0117】以下、実施例4における重み付け係数算出ステップ501について説明する。図17は、実施例4における重み付け係数算出ステップ501の処理の詳細を示すフローチャートである。
(サブステップ1701)心理聴覚分析部102(図16)により設定された制限帯域、すなわち、変換係数の係数番号kの上限値と、心理聴覚分析部102により算出された許容ノイズレベルとの情報を、重み付け係数算出部1604(図16)へ入力する。実施例2同様、ブロック長を256サンプル、サンプリング周波数を22.05kHz、変換係数の係数番号の上限値を75とする。
【0118】(サブステップ1702)図18はサブステップ1702のフローチャートである。重み付け係数算出部1604(図16)は図18のフローチャートに従って、次に述べるようにして重み付けなしのピーク可聴ノイズレベルQ0を算出する。
【0119】((サブサブステップ1801))重み付けなしのピーク可聴ノイズレベルQ0及び基準信号の周波数fをそれぞれの初期値0.0及び0kHzに設定する。ここで、基準信号は所定の周波数を持つ正弦波とする。但し、周波数f=0kHzの基準信号は直流の信号である。
((サブサブステップ1802))重み付け係数算出部1604は、基準信号に対して式(2)のMDCTを行ってMDCT係数を算出する。
((サブサブステップ1803))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけに対してIMDCTを行う。
((サブサブステップ1804))IMDCTにより得られた信号の周波数スペクトルをFFTにより算出する。算出された周波数スペクトルの内、基準信号の周波数fとは異なる周波数成分のスペクトルをノイズスペクトルとする。更に、そのノイズスペクトルの電力の総和を基準信号の周波数fでのノイズレベルとし、そのノイズレベルから周波数fでの許容ノイズレベルを差し引いて可聴ノイズレベルSとする。すなわち、可聴ノイズレベルSは、(可聴ノイズレベルS)=(ノイズレベル)−(許容ノイズレベル)で定義される。
((サブサブステップ1805))可聴ノイズレベルSと重み付けなしのピーク可聴ノイズレベルQ0とを比較する。可聴ノイズレベルSが重み付けなしのピーク可聴ノイズレベルQ0より大きい場合、処理をサブサブステップ1806へ進める。それ以外の場合は処理をサブサブステップ1807までジャンプさせる。
((サブサブステップ1806))重み付けなしのピーク可聴ノイズレベルQ0の値を可聴ノイズレベルSの値に置き換える。
((サブサブステップ1807))基準信号の周波数fを所定の大きさ(例えば0.010kHz)ずつ増加する。
((サブサブステップ1808))基準信号の周波数fを所定の上限値(例えば11.025kHz)と比較する。基準信号の周波数fが制限帯域の上限を超えた場合、サブステップ1702を終える。それ以外の場合、処理をサブサブステップ1802へ戻す。こうして、所定の帯域(例えば0〜11.025kHz)で可聴ノイズレベルSが比較され、その中で最も大きいものが重み付けなしのピーク可聴ノイズレベルQ0として選択される。
【0120】以下の処理は、再び図17のフローチャートに従って進行する。
(サブステップ1703)重み付け係数算出部1604は内部のレジスタに最小ピーク可聴ノイズレベルQの記憶領域を確保し、最小ピーク可聴ノイズレベルQの初期値を重み付けなしのピーク可聴ノイズレベルQ0に設定する。
(サブステップ1704)重み付け係数の個数Nwを1に、ループカウントiを1に、それぞれ設定する。
(サブステップ1705)実施例2のサブステップ605と同様に、重み付け係数算出部1604内のレジスタに、重み付け係数の個数Nwと同数の仮重み付け係数We(k)及び重み付け係数W(k)の記憶領域をそれぞれ確保し、仮重み付け係数We(k)の初期値を最小値0に設定する。サブステップ1704の直後では、仮重み付け係数We(k)及び重み付け係数W(k)は、係数番号kが上限値75である仮重み付け係数We(75)及び重み付け係数W(75)だけであって、いずれの値も0に設定される。
【0121】(サブステップ1706)図19はサブステップ1706のフローチャートである。図19において、図18のサブステップ1702のフローチャートに示されているサブサブステップと同じものには同じ符号を付している。重み付け係数算出部1604(図16)は図19のフローチャートに従って、次に述べるようにして重み付けした時のピーク可聴ノイズレベルQ1を算出する。
【0122】((サブサブステップ1901))重み付けした時のピーク可聴ノイズレベルQ1及び基準信号の周波数fをそれぞれの初期値0.0及び0kHzに設定する。ここで、基準信号は所定の周波数を持つ正弦波とする。但し、周波数f=0kHzの基準信号は直流の信号である。
((サブサブステップ1802))重み付け係数算出部1604は、基準信号に対して式(2)のMDCTを行ってMDCT係数を算出する。
((サブサブステップ1902))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけを残す。残ったMDCT係数から仮重み付け係数We(k)と同数のMDCT係数を、係数番号kが大きい順に取り出し、それらに仮重み付け係数We(k)をそれぞれ掛ける。例えば、重み付け係数の個数が1の場合、上限の係数番号k=75のMDCT係数だけに、仮重み付け係数We(k=75)を掛ける。
((サブサブステップ1803))算出されたMDCT係数の内、係数番号kが上限値75以下のMDCT係数だけに対してIMDCTを行う。
((サブサブステップ1804))IMDCTにより得られた信号の周波数スペクトルをFFTにより算出する。算出された周波数スペクトルの内、基準信号の周波数fとは異なる周波数成分のスペクトルをノイズスペクトルとする。更に、そのノイズスペクトルの電力の総和を基準信号の周波数fでのノイズレベルとし、そのノイズレベルから周波数fでの許容ノイズレベルを差し引いて可聴ノイズレベルSとする。
((サブサブステップ1903))可聴ノイズレベルSと重み付けした時のピーク可聴ノイズレベルQ1とを比較する。可聴ノイズレベルSが重み付けした時のピーク可聴ノイズレベルQ1より大きい場合、処理をサブサブステップ1904へ進める。それ以外の場合は処理をサブサブステップ1807までジャンプさせる。
((サブサブステップ1904))重み付けした時のピーク可聴ノイズレベルQ1の値を可聴ノイズレベルSの値に置き換える。
((サブサブステップ1807))基準信号の周波数fを所定の大きさ(例えば0.010kHz)ずつ増加する。
((サブサブステップ1808))基準信号の周波数fを所定の上限値(例えば11.025kHz)と比較する。基準信号の周波数fが制限帯域の上限を超えた場合、サブステップ1706を終える。それ以外の場合、処理をサブサブステップ1802へ戻す。こうして、所定の帯域(例えば0〜11.025kHz)で可聴ノイズレベルSが比較され、その中で最も大きいものが重み付けした時のピーク可聴ノイズレベルQ1として選択される。
【0123】以下の処理は、再び図17のフローチャートに従って進行する。
(サブステップ1707)重み付けした時のピーク可聴ノイズレベルQ1を最小ピーク可聴ノイズレベルQと比較する。重み付けした時のピーク可聴ノイズレベルQ1が最小ピーク可聴ノイズレベルQより小さい(Q1<Q)場合にはサブステップ1708へ進み、そうでない場合にはサブステップ1710まで処理をジャンプさせる。
(サブステップ1708)最小ピーク可聴ノイズレベルQの値を重み付けした時のピーク可聴ノイズレベルQ1の値に置き換える。
(サブステップ1709)実施例2のサブステップ608と同様、重み付け係数W(k)を仮重み付け係数We(k)と等しくする。
【0124】(サブステップ1710)仮重み付け係数We(k)を、実施例3のサブステップ1307と同様にして、所定の値だけそれぞれ変化させる。特に、重み付け係数の個数Nwが2以上の場合、仮重み付け係数We(k)の値の組合せを、任意の係数番号kについてWe(k)≧We(k+1)が成り立ち、いずれの仮重み付け係数We(k)も1.0以下であるように、変化させる。
(サブステップ1711)実施例2のサブステップ610と同様にして、仮重み付け係数We(k)としてまだ設定されていない値の組合せが残っているかどうかを判断する。未設定の組合せが残っている場合にはサブステップ1706から処理を繰り返し、それ以外の場合にはサブステップ1712に進む。
【0125】(サブステップ1712)最小ピーク可聴ノイズレベルQの符号及びループカウントiをチェックする。最小ピーク可聴ノイズレベルQの符号が正である場合、及び、ループカウントiがサブステップ1705〜1712の繰り返し回数の上限未満である場合、処理をサブステップ1713へ進める。それ以外の場合、処理をサブステップ1714へ進める。実施例4では、サブステップ1705〜1712の繰り返し回数の上限を16に設定した。
(サブステップ1713)重み付け係数の個数Nw及びループカウントiをそれぞれ1だけ増加し、処理をサブステップ1705へ戻す。
(サブステップ1714)重み付け係数算出部1604のレジスタに記憶された重み付け係数W(k)の情報、すなわち、値と個数との情報を、変換係数重み付け部405へ出力する。上記のサブステップ1705〜1712の繰り返しにより、サブステップ1714後に出力される重み付け係数W(k)は、最小ピーク可聴ノイズレベルQが0以下、又は、従来より小さい正の値になるような組合せになる。すなわち、帯域の制限に起因するノイズレベルが許容ノイズレベル以下、又は、従来より許容ノイズレベルに近づくようになる。その結果、帯域の制限に起因するノイズが復号された信号中に、従来に比べて実質上感知できない程度でしか含まれていない。
【0126】以上の実施例では、入力信号をオーディオ信号とした。その他に、入力信号が映像信号である場合に本発明の高能率符号化方法を実施できることを、当業者は本明細書及び図面の記載に基づいて容易に理解できるであろう。更に、映像信号に対する本発明の高能率符号化装置の構成も、当業者は容易に理解できるであろう。何故なら、上記実施例において、心理聴覚分析部によって算出される心理聴覚上の許容ノイズレベルを、視覚上の許容ノイズレベルに置き換えれば、本発明の高能率符号化方法及び装置を映像信号に対して実施できるからである。
【0127】
【発明の効果】以上のように本発明の高能率符号化方法及び装置では、変換係数に重み付け係数を掛けた後、高能率符号化を行う。それにより、ディジタル信号の帯域の制限により発生するノイズの電力レベルを従来より低減できる。特に、そのノイズレベルを目標ノイズレベル以下、更に知覚符号化での許容ノイズレベル以下、又は、できるだけ許容ノイズレベルに近づけることができる。それ故、復号された信号からは実質上感知できない程度まで上記のノイズを低減できる。その結果、本発明の高能率符号化方法及び装置は、従来より高品質な符号化データを与えることができる。
【出願人】 【識別番号】000005821
【氏名又は名称】松下電器産業株式会社
【出願日】 平成12年12月14日(2000.12.14)
【代理人】 【識別番号】100062926
【弁理士】
【氏名又は名称】東島 隆治
【公開番号】 特開2002−182695(P2002−182695A)
【公開日】 平成14年6月26日(2002.6.26)
【出願番号】 特願2000−380678(P2000−380678)