(54)【発明の名称】音声信号復号器、音声信号符号器、復号化されたマルチチャンネル音声信号表現の生成方法、符号化されたマルチチャンネル音声信号表現の生成方法およびコンピュータプログラム
(58)【調査した分野】(Int.Cl.,DB名)
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)が、前記符号化されたマルチチャンネル音声信号表現(211,212;310;1810)によって表された、複数の音声チャンネルの時間軸圧縮している再構成のために、共通マルチチャンネル時間軸圧縮曲線(332;1824)を、選択的に使用するように構成され、前記再構成のために、個別の符号化されたスペクトル領域情報(211)が利用可能であること、を特徴とする、請求項1に記載の音声信号復号器。
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、第1の音声チャンネルに関係した第1の符号化されたスペクトル領域情報を受信して、それに基づいて、周波数領域から圧縮時間領域への変換を使用して、前記第1の音声チャンネルの圧縮時間領域表現(X[][])を生成するように構成され、
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、第2の音声チャンネルに関係した第2の符号化されたスペクトル領域情報を受信して、それに基づいて、周波数領域から圧縮時間領域への変換を使用して、前記第2の音声チャンネルの圧縮時間領域表現(X[][])を生成するように構成され、
前記第2の符号化されたスペクトル領域情報が前記第1の符号化されたスペクトル領域情報と異なり、
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、前記共通マルチチャンネル時間軸圧縮曲線(332;1824)に基づいて、前記第1の音声チャンネルの圧縮時間領域表現、または、前記第1の音声チャンネルの圧縮時間領域表現の処理バージョンを、時間変化的に再サンプル抽出して、前記第1の音声チャンネルの周期的に抽出された表現を得るように構成され、
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、前記共通マルチチャンネル時間軸圧縮曲線(332;1824)に基づいて、前記第2の音声チャンネルの圧縮時間領域表現、または、前記第2の音声チャンネルの圧縮時間領域表現の処理バージョンを、時間変化的に再サンプル抽出して、前記第2の音声チャンネルの周期的に抽出された表現を得るように構成されていること、
を特徴とする、請求項2に記載の音声信号復号器。
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、共通マルチチャンネル時間軸圧縮曲線情報から共通マルチチャンネル時間軸曲線を引き出し、
第1の符号化された窓形状情報に基づいて、第1の音声チャンネルに関係した第1の個別のチャンネル特有の窓形状を引き出し、
第2の符号化された窓形状情報に基づいて、第2の音声チャンネルに関係した第2の個別のチャンネル特有の窓形状を引き出し、
前記第1の個別のチャンネル特有の窓形状を前記第1の音声チャンネルの圧縮時間領域表現に適用して、前記第1の音声チャンネルの圧縮時間領域表現の処理バージョンを得て、
前記第2の個別のチャンネル特有の窓形状を前記第2の音声チャンネルの圧縮時間領域表現に適用して、前記第2の音声チャンネルの圧縮時間領域表現の処理バージョンを得るように構成され、
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、個別のチャンネル特有の窓形状情報に依存して、異なる窓形状を、特定のフレームの第1および第2の音声チャンネルの圧縮時間領域表現に適用可能であること、
を特徴とする、請求項1または請求項2に記載の音声信号復号器。
前記時間軸圧縮復号器(210,216,218、219,220,230,240;340;1830)は、前記第1および第2の音声チャンネルの圧縮時間領域表現を窓付けするとき、共通マルチチャンネル時間軸曲線によって決定される共通時間軸スケーリングを、異なる窓形状に適用するように構成されていること、を特徴とする、請求項4または請求項5に記載の音声信号復号器。
前記符号化された音声表現生成装置(104,106,108,108a,114;1720)は、共通マルチチャンネル時間軸圧縮曲線情報を適用して、前記複数の音声チャンネルの第1および第2の音声チャンネルの時間軸圧縮バージョンを得て、前記第1の音声チャンネルの時間圧縮バージョンに基づいて、前記第1の音声チャンネルに関係した第1の個別の符号化されたスペクトル領域情報を生成し、かつ、前記第2の音声チャンネルの時間圧縮バージョンに基づいて、前記第2の音声チャンネルに関係した第2の個別の符号化されたスペクトル領域情報を生成するように構成されていること、を特徴とする、請求項7に記載の音声信号符号器。
前記符号化された音声表現生成装置(104,106,108,108a,114;1720)は、マルチチャンネル音声信号の符号化された表現(150,152;1712)を生成するように構成され、その結果、前記マルチチャンネル音声信号の符号化された表現(150,152;1712)が、前記共通マルチチャンネル時間軸圧縮曲線情報、前記共通マルチチャンネル時間軸圧縮曲線情報に従って時間軸圧縮された第1の音声チャンネルの時間軸圧縮バージョンの符号化されたスペクトル表現、および、前記共通マルチチャンネル時間軸圧縮曲線情報に従って時間軸圧縮された第2の音声チャンネルの時間軸圧縮バージョンの符号化されたスペクトル表現を含むこと、を特徴とする、請求項7または請求項8に記載の音声信号符号器。
前記共通マルチチャンネル時間軸圧縮曲線情報を得るように構成され、その結果、前記共通マルチチャンネル時間軸圧縮曲線情報が、前記第1の音声チャンネルおよび前記第2の音声チャンネルに関係した個別の圧縮曲線の平均を表すこと、を特徴とする、請求項8または請求項9に記載の音声信号符号器。
前記符号化された音声表現生成装置(104,106,108,108a,114;1720)は、マルチチャンネル音声信号の符号化された表現(150,152;1712)内のサイド情報(tw_data_present; common_tw)を生成するように構成され、前記サイド情報(tw_data_present; common_tw)は、音声フレーム単位を基本にして、時間軸圧縮データが特定の音声フレームに対して存在しているか否か、および、共通時間軸圧縮曲線情報が特定の音声フレームに対して存在しているか否かを示すこと、を特徴とする、請求項7〜請求項10のいずれかに記載の音声信号符号器。
符号化されたマルチチャンネル音声信号表現(211,212;310;1810)に基づいて、復号化されたマルチチャンネル音声信号表現(232;300;1500;1800)を生成するための方法であって、
前記符号化されたマルチチャンネル音声信号表現によって表された複数の音声チャンネルの再構成のために、個別の音声チャンネルの特定の時間軸圧縮曲線もしくは共通マルチチャンネル時間軸圧縮曲線を選択的に使用するステップを含むこと、
を特徴とする、復号化されたマルチチャンネル音声信号表現の生成方法。
【発明を実施するための形態】
【0031】
(
図1の時間軸圧縮音声信号符号器)
本発明は、時間軸圧縮音声信号の符号化および時間軸圧縮音声信号の復号化に関するので、本発明が適用される原型の時間軸圧縮音声信号符号器および時間軸圧縮音声信号復号器の短い概観が与えられる。
【0032】
図1は、本発明のいくつかの様相および実施形態が集積された時間軸圧縮音声信号符号器のブロック概略図を示す。
図1の音声信号符号器100は、入力音声信号110を受信して、フレームの系列の中に入力音声信号110の符号化表現を提供するように構成されている。音声信号符号器100はサンプル抽出器104を含む。サンプル抽出器104は、入力音声信号110をサンプル抽出して、周波数領域変換の基礎として使用される信号ブロック(サンプル抽出された表現)105を引き出すように適合させられる。音声信号符号器100はさらに変換窓計算機106を含む。変換窓計算機106は、サンプル抽出器104からサンプル抽出された表現105の出力のためのスケーリング窓を引き出すように適合させられる。スケーリング窓は、窓器(windower)108に入力される。窓器108は、サンプル抽出器104によって引き出された、サンプル抽出された表現105にスケーリング窓を適用するように適合させられる。いくつかの実施形態において、音声信号符号器100は、さらに、抽出されてスケーリングされた表現105の周波数領域表現(例えば、変換係数の形式で)を引き出すために、周波数領域変換器108aを含んでもよい。周波数領域表現は、音声信号110の符号化された表現として、処理される、または、さらに伝送される。
【0033】
音声信号符号器100は、さらに、音声信号110のピッチ曲線112を使用する。ピッチ曲線112は、音声信号符号器100に提供される、または、音声信号符号器100によって引き出される。従って、音声信号符号器100は、ピッチ曲線112を引き出すために、任意にピッチ評価器を含む。サンプル抽出器104は、入力音声信号110の連続した表現上で動作する。あるいは、サンプル抽出器104は、入力音声信号110の既にサンプル抽出された表現上で動作する。後者の場合において、サンプル抽出器104は音声信号110を再サンプル抽出する。例えば、サンプル抽出器104は、時間軸圧縮された隣接して重複している音声ブロックに適合させられる。その結果、重複部分は、サンプル抽出の後のそれぞれの入力ブロックの中で、一定のピッチまたは減少しているピッチ変化をもつ。
【0034】
変換窓計算機106は、サンプル抽出器104によって実行された時間軸圧縮に依存している音声ブロックのためのスケーリング窓を引き出す。このために、任意のサンプル抽出速度調整器114が、サンプル抽出器104によって使用される時間軸圧縮規則を定義するために存在する。時間軸圧縮規則は、変換窓計算機106にも提供される。代わりの実施形態では、サンプル抽出速度調整器114が省略され、そして、ピッチ曲線112が、直接に変換窓計算機106に提供される。変換窓計算機106は、それ自体で適切な計算を実行する。さらに、サンプル抽出器104は、適切なスケーリング窓の計算を可能にするために、適用されるサンプル抽出を変換窓計算機106に通信する。
【0035】
時間軸圧縮は、サンプル抽出器104によって時間軸圧縮されてサンプル抽出された音声ブロックのピッチ曲線が、入力ブロック内の元の音声信号110のピッチ曲線より一定であるように、実行される。
【0036】
(
図2の時間軸圧縮音声信号復号器)
図2は時間軸圧縮音声信号復号器200のブロック概略図を示す。時間軸圧縮音声信号復号器200は、第2のフレームが第1のフレームに続くフレームの系列を有する音声信号の第1および第2のフレームの、第1の時間軸圧縮されてサンプル抽出された表現、または、第1の単に時間軸圧縮された表現を処理する。時間軸圧縮音声信号復号器200は、さらに、音声信号の第2のフレームおよびフレーム系列の中の第2のフレームに続く第3のフレームの、第2の時間軸圧縮された表現を処理する。音声信号復号器200は変換窓計算機210を含む。変換窓計算機210は、第1および第2のフレームのピッチ曲線212の情報を使用して、第1の時間軸圧縮された表現211aのための第1のスケーリング窓を引き出すように適合される。さらに、変換窓計算機210は、第2および第3のフレームのピッチ曲線の情報を使用して、第2の時間軸圧縮された表現211bのための第2のスケーリング窓を引き出すように適合される。ここで、スケーリング窓は同じ数のサンプルを有し、第1のスケーリング窓をフェードアウトするために使用される1番目のサンプルは、第2のスケーリング窓をフェードインするために使用される2番目のサンプルと異なる。音声信号復号器200は更に窓化器216を含む。窓化器216は、第1のスケーリング窓を第1の時間軸圧縮された表現に適用するように、そして、第2のスケーリング窓を第2の時間軸圧縮された表現に適用するように適合させられる。さらに、音声信号復号器200は再サンプル抽出器218を含む。再サンプル抽出器218は、第1および第2のフレームのピッチ曲線の情報を使用して、第1のサンプル抽出された表現を引き出すために、第1のスケーリングされた時間軸圧縮表現を、逆に時間軸圧縮するように適合させられる。さらに、再サンプル抽出器218は、第1および第2のフレームのピッチ曲線の情報を使用して、第2のサンプル抽出された表現を引き出すために、第2のスケーリングされた表現を、逆に時間軸圧縮するように適合させられる。その結果、第2のフレームに対応する第1のサンプル抽出された表現の部分は、予め決められた許容範囲内で、第2のフレームに対応する第2のサンプル抽出された表現の部分のピッチ曲線と等しいピッチ曲線を含む。スケーリング窓を引き出すために、変換窓計算機210は、直接にピッチ曲線212を受信するか、または、任意のサンプル抽出速度調整器220から時間軸圧縮の情報を受信する。サンプル抽出速度調整器220は、ピッチ曲線212を受信して、重複領域のサンプルのための線形時間スケール上のサンプルの位置を、特定または略特定し、かつ、周期的に分離されるような、逆時間軸圧縮方法を引き出す。その結果、ピッチが重複領域の中で同じになり、そして、任意に、逆時間軸圧縮の前には、重複窓の一部分の異なるフェード長が、逆時間軸圧縮の後には、同じ長さになる。
【0037】
さらに、音声信号復号器200は任意の加算器230を含む。加算器230は、第2のフレームに対応する第1のサンプル抽出された表現の部分と、第2のフレームに対応する第2のサンプル抽出された表現の部分とを加算して、出力信号232として音声信号の第2のフレームの再構成された表現を引き出すように適合させられる。本実施形態では、第1の時間軸圧縮された表現と第2の時間軸圧縮された表現とが、入力として音声信号復号器200に提供される。別の実施形態では、音声信号復号器200は、任意に、逆周波数領域変換器240を含んでもよい。逆周波数領域変換器240は、逆周波数領域変換器240の入力に提供される第1および第2の時間軸圧縮された表現の周波数領域表現から、第1および第2の時間軸圧縮された表現を引き出す。
【0038】
(
図3の時間軸圧縮音声信号復号器)
以下では、簡易型の音声信号復号器が説明される。
図3はこの簡易型の音声信号復号器300のブロック概略図を示す。音声信号復号器300は、符号化された音声信号表現310を受信して、それに基づいて、復号化された音声信号表現312を提供するように構成されている。符号化された音声信号表現310は、時間軸圧縮曲線進展情報316を含む。音声信号復号器300は、時間軸圧縮曲線進展情報316に基づいて、時間軸圧縮曲線データ322を発生するように構成された、時間軸圧縮曲線計算機320を含む。時間軸圧縮曲線進展情報316は、時間軸圧縮曲線の時間的進展を説明し、符号化された音声信号表現310に含まれている。時間軸圧縮曲線データ322を時間軸圧縮曲線進展情報316から引き出すとき、時間軸圧縮曲線計算機320は、以下で詳細に説明されるように、予め決められた時間軸圧縮曲線開始値から繰り返して再開始する。再開始は、時間軸圧縮曲線が不連続(時間軸圧縮曲線進展情報316によって符号化されたステップより大きい階段状変化)を含むという結果を有する。音声信号復号器300は、さらに、少なくとも時間軸圧縮曲線データ322の一部分を再スケールするように構成されている、時間軸圧縮曲線データ再スケーラ330を含む。その結果、時間軸圧縮曲線計算の再開始時点における不連続が、時間軸圧縮曲線の再スケールバージョン332において、避けられる、または、減少する、または、排除される。
【0039】
また、音声信号復号器300は、符号化された音声信号表現310に基づいて、かつ、時間軸圧縮曲線の再スケールバージョン332を使用して、復号化された音声信号表現312を提供するように構成されている圧縮復号器340を含む。
【0040】
時間軸圧縮音声復号の文脈の中に音声信号復号器300を入れるために、符号化された音声信号表現310が、変換係数211の符号化された表現と、ピッチ曲線212(時間軸圧縮曲線としても示される)の符号化された表現と、を含むことに注目するべきである。時間軸圧縮曲線計算機320と時間軸圧縮曲線データ再スケーラ330とは、時間軸圧縮曲線の再スケールバージョン332の形式の中に、ピッチ曲線212の再構成された表現を提供するように構成されている。例えば、圧縮復号器340は、窓化(窓化器)216、再サンプル抽出器218、サンプル抽出速度調整器220、および窓形状調整(変換窓計算機)210の機能を引き継ぐ。さらに、圧縮復号器340は、例えば、任意に、逆変換(逆周波数領域変換器)240および重複/加算(加算器)230の機能を含む。その結果、復号された音声信号表現312は、時間軸圧縮音声復号器200の出力音声信号232と同等である。
【0041】
時間軸圧縮曲線データ322に再スケールを適用することによって、時間軸圧縮曲線の連続した(少なくとも殆んど連続した)再スケールバージョン332が得られる。その結果、符号化のために効率の良い相対的変化時間軸圧縮曲線進展情報を使用するときでさえ、数値オーバーフローまたは数値アンダーフローが確実に避けられる。
【0042】
(
図4の復号化された音声信号表現を提供する方法)
図4は、符号化された音声信号表現に基づいて復号化された音声信号表現を提供する方法のフローチャート図を示す。符号化された音声信号表現は、
図3の音声信号復号器300によって実行される時間軸圧縮曲線進展情報を含む。方法400は時間軸圧縮曲線データを発生させる第1のステップ410を含む。第1のステップ410は、時間軸圧縮曲線の時間的進展を説明する時間軸圧縮曲線進展情報に基づいて、予め決められた時間軸圧縮曲線開始値から繰り返して再開始する。
【0043】
方法400は、さらに、再開始のうちの1つの再開始における不連続が、時間軸圧縮曲線の再スケールバージョンの中で、避けられる、または、減少する、または、排除されるように、少なくとも時間軸圧縮制御データの一部分を再スケールするステップ420を含む。
【0044】
方法400は、さらに、時間軸圧縮曲線の再スケールバージョンを使用して、符号化された音声信号表現に基づいて復号化された音声信号表現を提供するステップ430を含む。
【0045】
(
図5a〜
図9cの本発明に係る実施形態の詳細な説明)
以下において、本発明に係る実施形態が、
図5a〜
図9cを参照して詳細に説明される。
【0046】
図5aおよび
図5bは、時間軸圧縮曲線進展情報510に基づいて時間軸圧縮制御情報512を提供する装置500のブロック概略図を示す。装置500は、時間軸圧縮曲線進展情報510に基づいて再構成された時間軸圧縮曲線情報522を提供するための手段520、および、再構成された時間軸圧縮曲線情報522に基づいて時間軸圧縮制御情報512を提供するための時間軸圧縮制御情報計算機530を含む。
【0047】
(再構成された時間軸圧縮曲線情報を提供するための手段520)
以下では、手段520の構造と機能が説明される。手段520は時間軸圧縮曲線計算機540を含む。時間軸圧縮曲線計算機540は、時間軸圧縮曲線進展情報510を受信して、それに基づいて、新しい時間軸圧縮曲線部分情報542を提供するように構成されている。例えば、時間軸圧縮曲線進展情報510の1セットが、再構成されるべき音声信号の各フレームごとに装置500に伝送される。それにも関わらず、再構成されるべき一つの音声信号のフレームに関係した時間軸圧縮曲線進展情報510の1セットは、音声信号の複数のフレームの再構成のために使用される。同様に、時間軸圧縮曲線進展情報510の複数のセットが、以下で詳細に議論するように、音声信号の単一のフレームの音声内容の再構成のために使用される。結論として、いくつかの実施形態において、時間軸圧縮曲線進展情報510は、再構成または更新されるべき音声信号の変換領域係数のセットと同じ速度(音声信号の1フレーム当たり1つの時間軸圧縮曲線部分)で更新されると主張される。
【0048】
時間軸圧縮曲線計算機540は圧縮ノード値計算機544を含む。圧縮ノード値計算機544は、複数(または、時系列)の時間軸圧縮曲線比率値(または、時間軸圧縮比率インデックス)に基づいて、複数(または、時系列)の圧縮曲線ノード値を計算するように構成されている。時間軸圧縮曲線比率値は時間軸圧縮曲線進展情報510によって構成されている。このために、圧縮ノード値計算機544は、予め決められた開始値(例えば、1)で、時間軸圧縮曲線ノード値の提供を開始して、以下で議論するように、時間軸圧縮曲線比率値を使用して、その後の時間軸圧縮曲線ノード値を計算するように構成されている。
【0049】
さらに、時間軸圧縮曲線計算機540は、任意に、連続した時間軸圧縮曲線ノード値の間を補間するように構成された補間器548を含む。従って、新しい時間軸圧縮曲線部分の記述542が得られる。新しい時間軸圧縮曲線部分は、通常、圧縮ノード値計算機544によって使用される、予め決められた開始値から開始する。さらに、手段520は、完全な時間軸圧縮曲線部分の提供のために、追加時間軸圧縮曲線部分、すなわち、いわゆる「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」を考慮するように構成されている。このために、手段520は、「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」を、
図5aに図示しないメモリの中に格納するように構成されている。
【0050】
しかしながら、手段520は再スケーラ550も含む。再スケーラ550は、「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」を再スケールして、完全な時間軸圧縮曲線部分の不連続を避ける(または、減少する、または、排除する)ように構成されている。完全な時間軸圧縮曲線部分は、「最後の時間軸圧縮曲線部分」、「現在の時間軸圧縮曲線部分」および「新しい時間軸圧縮曲線部分」に基づいている。このために、再スケーラ550は、「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」の格納された記述を受信して、「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」を共に再スケールし、「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」の再スケールバージョンを得るように構成されている。再スケーラ550によって実行される再スケールに関する詳細が、
図7a、
図7bおよび
図8を参照して、以下で議論される。
【0051】
また、再スケーラ550は、例えば、
図5aに図示しないメモリから、「最後の時間軸圧縮曲線部分」に関係している合計値と、「現在の時間軸圧縮曲線部分」に関係している別の合計値と、を受信するように構成されている。これらの合計値は、それぞれ、「last_warp_sum」および「cur_warp_sum」としても示される。再スケーラ550は、対応する時間軸圧縮曲線部分が再スケールされるのと同じ再スケール係数を使用して、時間軸圧縮曲線部分に関係している合計値を再スケールするように構成されている。従って、再スケールされた合計値が得られる。
【0052】
いくつかの場合において、手段520は更新器560を含む。更新器560は、再スケーラ550に入力する時間軸圧縮曲線部分および合計値を繰り返して更新するように構成されている。例えば、更新器560は、フレーム速度で前述の情報を更新するように構成されている。例えば、現在のフレームサイクルの「新しい時間軸圧縮曲線部分」は、次のフレームサイクルの中の「現在の時間軸圧縮曲線部分」として役立つ。同様に、現在のフレームサイクルの再スケールされた「現在の時間軸圧縮曲線部分」は、次のフレームサイクルの中の「最後の時間軸圧縮曲線部分」として役立つ。従って、メモリの効率の良い実行が創出される。なぜなら、現在のフレームサイクルの「最後の時間軸圧縮曲線部分」は、現在のフレームサイクルが終了すると、廃却されるからである。
【0053】
以上をまとめると、手段520は、それぞれのフレームサイクル(いくつかの特別なフレームサイクル、例えば、フレーム系列の開始のフレームサイクル、フレーム系列の終わりのフレームサイクル、または、時間軸圧縮が不活発であるフレームサイクルを除いて)ごとに、「新しい時間軸圧縮曲線部分」、「再スケールされた現在の時間軸圧縮曲線部分」および「再スケールされた最後の時間軸圧縮曲線部分」の記述を含む時間軸圧縮曲線区間の記述を提供するように構成されている。さらに、手段520は、それぞれのフレームサイクル(上記の特別なフレームサイクルを除いて)ごとに、例えば、「新しい時間軸圧縮曲線部分合計値」、「再スケールされた現在の時間軸圧縮曲線部分合計値」および「再スケールされた最後の時間軸圧縮曲線部分合計値」を含む時間軸圧縮曲線部分合計値の表現を提供する。
【0054】
時間軸圧縮制御情報計算機530は、手段520によって提供された、再構成された時間軸圧縮曲線情報522に基づいて、時間軸圧縮制御情報512を計算するように構成されている。例えば、時間軸圧縮制御情報計算機530は、時間軸曲線計算機570を含む。時間軸曲線計算機570は、再構成された時間軸圧縮制御情報に基づいて、時間軸曲線572を計算するように構成されている。さらに、時間軸圧縮曲線情報計算機530は、サンプル位置計算機574を含む、サンプル位置計算機574は、時間軸曲線572を受信して、それに基づいて、例えば、サンプル位置ベクトル576の形式で、サンプル位置情報を提供するように構成されている。サンプル位置ベクトル576は、例えば、再サンプル抽出器218によって実行された時間軸圧縮を説明する。
【0055】
また、時間軸圧縮制御情報計算機530は、転移長計算機580を含む。転移長計算機580は、再構成された時間軸圧縮制御情報から転移長情報582を引き出すように構成されている。例えば、転移長情報582は、左転移長を説明する情報と右転移長を説明する情報とを含む。例えば、転移長は「最後の時間軸圧縮曲線部分」、「現在の時間軸圧縮曲線部分」および「新しい時間軸圧縮曲線部分」によって説明された時間区間の長さに依存する。例えば、仮に、「最後の時間軸圧縮曲線部分」によって説明された時間区間の時間拡張が、「現在の時間軸圧縮曲線部分」によって説明された時間区間の時間拡張より短いならば、または、仮に、「新しい時間軸圧縮曲線部分」によって説明された時間区間の時間拡張が、「現在の時間軸圧縮曲線部分」によって説明された時間区間の時間拡張より短いならば、転移長は、初期設定の転移長と比較して、短くされる。
【0056】
さらに、時間軸圧縮制御情報計算機530は、最初および最後の位置計算機584を含む。最初および最後の位置計算機584は、左右の転移長情報582に基づいて、いわゆる「最初の位置」および「最後の位置」586を計算するように構成されている。「最初の位置」および「最後の位置」586は、再サンプル抽出器218の効率を増加させる。なぜなら、これらの位置の外側領域は、窓化後にゼロに一致し、従って、時間軸圧縮の間、考慮する必要がないからである。ここで、サンプル位置ベクトル576が、例えば、再サンプル抽出器218によって実行された時間軸圧縮によって要求される情報を含むことに注目するべきである。さらに、左右の転移長情報582、「最初の位置」および「最後の位置」586は、例えば、窓器216によって要求される情報を構成する。
【0057】
従って、手段520および時間軸圧縮制御情報計算機530は、サンプル抽出速度調整器220、変換窓計算機210およびサンプル抽出位置計算器219の機能を共に引き継ぐ、と言える。
【0059】
図6aは、本発明に係る実施形態の、音声信号の符号化された表現を復号化するための方法のフローチャートを示す。方法600は、再構成された時間軸圧縮曲線情報522を提供するステップと、時間軸圧縮ノード値の間を補間するステップ620と、1つ以上前に計算された時間軸圧縮曲線部分および1つ以上前に計算された時間軸圧縮曲線部分合計値を再スケールするステップ630と、を含む。再構成された時間軸圧縮曲線情報522を提供するステップは、時間軸圧縮ノード値を計算するステップ610を含む。方法600は、さらに、ステップ610,620の中で得られた「新しい時間軸圧縮曲線部分」、ならびに、再スケールされた、一つ以上前に計算された時間軸圧縮曲線部分(「現在の時間軸圧縮曲線部分」と「最後の時間軸圧縮曲線部分」)を使用して、また、任意に、再スケールされた、一つ以上前に計算された圧縮曲線合計値を使用して、時間軸圧縮制御情報を計算するステップ640を含む。その結果、時間軸曲線情報、サンプル位置情報、転移長情報、および/または、最初および最後の位置情報が、ステップ640で得られる。
【0060】
方法600は、さらに、ステップ640で得られた時間軸圧縮制御情報を使用して、時間軸圧縮された信号の再構成を実行するステップ650を含む。時間軸圧縮された信号の再構成に関する詳細は、次に説明される。
【0061】
また、方法600は、以下で説明されるように、メモリを更新するステップ660を含む。
【0062】
(時間軸圧縮曲線部分の計算)
以下では、時間軸圧縮曲線部分の計算に関する詳細が、
図7a、
図7b、
図8、
図9a、
図9b及び
図9cを参照して説明される。
【0063】
初期状態は
図7aのグラフ表示710に記載されている状態であると想定する。第1の時間軸圧縮曲線部分716と第2の時間軸圧縮曲線部分718とが存在している。それぞれの時間軸圧縮曲線部分716,718は、通常、メモリに格納されている複数の離散的な時間軸圧縮曲線データ値を含む。異なる時間軸圧縮曲線データ値は時間値に関係している。時間は横軸712で示されている。時間軸圧縮曲線データ値の大きさは縦軸714で示されている。第1の時間軸圧縮曲線部分716は、終了値が1である。そして、第2の時間軸圧縮曲線部分は、開始値が1である。ここでは、1の値が「予め決められた値」であると見做される。第1の時間軸圧縮曲線部分716は、「最後の時間軸圧縮曲線部分」(「last_warp_contour」としても示される)と考えられ、一方、第2の時間軸圧縮曲線部分718は、「現在の時間軸圧縮曲線部分」(「cur_warp_contour」としても示される)と考えられることに注目すべきである。
【0064】
初期状態から開始して、例えば、方法600のステップ610,620の中で、新しい時間軸圧縮曲線部分722が計算される。従って、第3の時間軸圧縮曲線部分(「新しい時間軸圧縮曲線部分」または「new_warp_contour」としても示される)の時間軸圧縮曲線データ値が計算される。例えば、計算は、
図9a−1に示されている、アルゴリズム910に従う時間軸圧縮ノード値の計算と、アルゴリズム920に従う圧縮ノード値の間の補間620の計算と、に分離される。従って、新しい時間軸圧縮曲線部分722が得られる。新しい時間軸圧縮曲線部分722は、予め決められた値(例えば、1)から開始し、
図7aのグラフ表示720の中に示されている。第1の時間軸圧縮曲線部分716、第2の時間軸圧縮曲線部分718および第3の新しい時間軸圧縮曲線部分722が、連続かつ隣接の時間間隔で関係している。さらに、第2の時間軸圧縮曲線部分718の終了点718bと第3の時間軸圧縮曲線部分722の開始点722aとの間には、不連続724があることが認められる。
【0065】
ここで、不連続724は、通常、時間軸圧縮曲線部分の中で、時間軸圧縮曲線のどんな2つの時間的に隣接している時間軸圧縮曲線データ値の間の変化より大きい大きさを含む、ことに注目すべきである。これは、第3の時間軸圧縮曲線部分722の開始値722aが、予め決められた値(例えば、1)に強く影響され、第2の時間軸圧縮曲線部分718の終了値718bから独立している、という事実のためである。従って、不連続724が、2つの隣接する離散的な時間軸圧縮曲線データ値の間の避けられない変化より大きい、ことに注目すべきである。
【0066】
それにも関わらず、第2の時間軸圧縮曲線部分718と第3の時間軸圧縮曲線部分722との間のこの不連続724は、時間軸圧縮曲線データ値の更なる使用に対して有害である。
【0067】
従って、第1の時間軸圧縮曲線部分716および第2の時間軸圧縮曲線部分718が、方法600のステップ630で共に再スケールされる。例えば、第1の時間軸圧縮曲線部分716の時間軸圧縮曲線データ値と、第2の時間軸圧縮曲線部分718の時間軸圧縮曲線データ値とが、再スケール係数(「norm_fac」としても示される)で乗算されて再スケールされる。従って、第1の時間軸圧縮曲線部分716の再スケールバージョン716´と、第2の時間軸圧縮曲線部分718の再スケールバージョン718´が得られる。対照的に、第3の時間軸圧縮曲線部分722は、
図7aのグラフ表示730で示すように、通常、この再スケールするステップの中で、影響を受けないで維持される。再スケールは、再スケールされた終了点718b´が、第3の時間軸圧縮曲線部分722の開始点722aと少なくとも殆んど同じデータ値を含むように、実行される。従って、第1の時間軸圧縮曲線部分716の再スケールバージョン716´、第2の時間軸圧縮曲線部分718の再スケールバージョン718´および第3の時間軸圧縮曲線部分722が、(殆んど)連続した時間軸圧縮曲線区間を共に形成する。特に、スケーリングは、再スケールされた終了点718b´と開始点722aのデータ値の間の差が、時間軸圧縮曲線部分716´,718´,722のどんな2つの隣接データ値の間の最大差よりも大きくならないように、実行される。
【0068】
従って、再スケールされた時間軸圧縮曲線部分716´,718´を含む、殆んど連続した時間軸圧縮曲線区間と、元の時間軸圧縮曲線部分722とが、ステップ640で実行される時間軸圧縮制御情報の計算のために使用される。例えば、時間軸圧縮制御情報は、第2の時間軸圧縮曲線部分718に時間的に関係した音声フレームに対して計算される。
【0069】
しかしながら、ステップ640における時間軸圧縮制御情報の計算において、時間軸圧縮された信号の再構成が、ステップ650で実行される。ステップ650は、以下でさらに詳細に説明される。
【0070】
続いて、次の音声フレームのための時間軸圧縮制御情報を得ることが必要である。このために、第1の時間軸圧縮曲線部分716の再スケールバージョン716´が、メモリを確保するために廃却される。もはや必要ないからである。しかしながら、再スケールバージョン716´は、どんな目的のためにも自然に保存される。さらに、第2の時間軸圧縮曲線部分718の再スケールバージョン718´は、
図7bのグラフ表示740で示すように、新しい計算のために、「最後の時間軸圧縮曲線部分716」に代わる。さらに、前の計算の中で「新しい時間軸圧縮曲線部分」に代わった、第3の時間軸圧縮曲線部分722が、次の計算のために、「現在の時間軸圧縮曲線部分」の役割をする。関係はグラフ表示740の中に示されている。
【0071】
メモリのこの更新(方法600のステップ660)に続いて、グラフ表示750で示すように、新しい時間軸圧縮曲線部分752が計算される。このために、方法600のステップ610,620が、新しい入力データで再実行される。第4の時間軸圧縮曲線部分752が、当分、「新しい時間軸圧縮曲線部分」の役割をする。第3の時間軸圧縮曲線部分722の終了点722bと第4の時間軸圧縮曲線部分752の開始点752aとの間には、通常、不連続754がある。この不連続754は、第2の時間軸圧縮曲線部分718の再スケールバージョン718´と、第3の時間軸圧縮曲線部分722の元のバージョンとの連続した再スケール(方法600のステップ630)によって、減少する、または、排除される。従って、第2の時間軸圧縮曲線部分718の二度再スケールバージョン718´´と、第3の時間軸圧縮曲線部分722の一度再スケールバージョン722´とが、
図7bのグラフ表示760に示すように、得られる。時間軸圧縮曲線部分718´´,722´,752は、少なくとも殆んど連続した時間軸圧縮曲線区間を形成し、ステップ640の再実行の中で、時間軸圧縮制御情報の計算のために使用される。例えば、時間軸圧縮制御情報が、時間軸圧縮曲線部分718´´,722´,752に基づいて計算される。ここで、時間軸圧縮制御情報は、第2の時間軸圧縮曲線部分718を中心とした音声信号時間フレームに関係している。
【0072】
いくつかの場合において、時間軸圧縮曲線部分ごとに、関係した時間軸圧縮曲線合計値を有することが望ましいことに注目すべきである。例えば、第1の時間軸圧縮曲線合計値は、第1の時間軸圧縮曲線部分に関係し、第2の時間軸圧縮曲線合計値は、第2の時間軸圧縮曲線部分に関係しているなどです。例えば、時間軸圧縮曲線合計値は、ステップ640の中の時間軸圧縮制御情報の計算のために使用される。
【0073】
例えば、時間軸圧縮曲線合計値は、それぞれの時間軸圧縮曲線部分の時間軸圧縮曲線データ値の合計を表す。しかしながら、時間軸圧縮曲線部分がスケーリングされるときは、時間軸圧縮曲線合計値もスケーリングすることが、しばしば望ましい。その結果、時間軸圧縮曲線合計値が、それに関係している時間軸圧縮曲線部分の特性に従う。従って、第2の時間軸圧縮曲線部分718が、再スケールバージョン718´を得るためにスケーリングされるとき、第2の時間軸圧縮曲線部分718に関係した時間軸圧縮曲線合計値は、例えば、同じスケール係数でスケーリングされる。同様に、第1の時間軸圧縮曲線部分716が、再スケールバージョン716´を得るためにスケーリングされるとき、仮に望むならば、第1の時間軸圧縮曲線部分716に関係した時間軸圧縮曲線合計値が、例えば、同じスケール係数でスケーリングされる。
【0074】
さらに、新しい時間軸圧縮曲線部分の考慮を進展する場合、再関係(または、メモリ再配分)が実行される。例えば、第2の時間軸圧縮曲線部分718のスケーリングされたバージョン718´に関係している時間軸圧縮曲線合計値は、時間軸圧縮曲線部分716´,718´,722に関係している時間軸圧縮制御情報の計算のためには、「現在の時間軸圧縮合計値」の役割をするが、時間軸圧縮曲線部分718´,722´,752に関係している時間軸圧縮制御情報の計算のためには、「最後の時間軸圧縮合計値」として考えられる。同様に、第3の時間軸圧縮曲線部分722に関係している時間軸圧縮曲線合計値は、時間軸圧縮曲線部分716´,718´,722に関係している時間軸圧縮制御情報の計算のためには、「新しい時間軸圧縮合計値」として考えられるが、時間軸圧縮曲線部分718´´,722´,752に関係している時間軸圧縮制御情報の計算のためには、「現在の時間軸圧縮合計値」として機能するように写像される。さらに、第4の時間軸圧縮曲線部分752の新たに計算された時間軸圧縮曲線合計値が、時間軸圧縮曲線部分718´´,722´,752に関係している時間軸圧縮制御情報の計算のために、「新しい時間軸圧縮曲線合計値」の役割をする。
【0075】
(
図8の実施例)
図8は、本発明に係る実施形態によって解決される問題を例証するグラフ表示を示す。第1のグラフ表示810は、いくつかの従来例で得られる、再構成された相対的ピッチの時間的進展を示す。横軸812は時間を表し、縦軸814は相対的ピッチを表す。曲線816は、時間が経過するにつれての相対的ピッチの時間的進展を示す。相対的ピッチの時間的進展は、相対的ピッチ情報から再構成される。相対的ピッチ曲線の再構成に関して、時間軸圧縮された変形離散余弦変換(MDCT)の応用には、実際のフレーム内のピッチの相対的変化に関する知識のみが必要であることに注目すべきである。これを理解するために、相対的ピッチ曲線から時間軸曲線を得るための計算ステップを参照する。計算ステップは、同じ相対的ピッチ曲線のスケーリングされたバージョンに対して一致した時間軸曲線に導く。従って、絶対的ピッチの値の代わりに相対的ピッチの値を符号化するだけで十分である。それは、符号化効率を増加させる。符号化効率をさらに増加させるために、実際の量子化された値は、相対的ピッチではなく、ピッチの相対的変化、すなわち、前の相対的ピッチに対する現在の相対的ピッチの比率(以下で詳細に議論する)である。例えば、信号が倍音構造を全く示さない、いくつかのフレームの中で、時間軸圧縮は望まれない。そのような場合、追加フラグは、任意に、前述した方法で平坦なピッチ曲線の符号化の代わりに、平坦なピッチ曲線を示す。実際の世界の信号の中で、そのようなフレームの量が、通常、十分高いので、いつも加えられる追加ビットと非圧縮フレーム毎に保存されたビットとの間の交換取引は、ビット保存に有利である。
【0076】
ピッチ変化(相対的ピッチ曲線、または、時間軸圧縮曲線)の計算のための開始値は、恣意的に選択され、符号器と復号器とで異なる。時間軸圧縮MDCT(TW−MDCT)の本質のため、ピッチ変化の異なる開始値は、TW−MDCTを実行するために、同じサンプル位置および適合した窓形状をもたらす。
【0077】
例えば、(音声)符号器は、あらゆるノードのためのピッチ曲線を得る。ピッチ曲線は、任意の有声/無声の仕様に関係するサンプルの中の、実際のピッチ立ち遅れとして表される。ピッチ曲線は、例えば、音声符号化から知られている、ピッチ評価と有声/無声の決定とを適用することによって得られる。仮に、現在のノードに対して、有声の決定または無声の決定に設定される分類が、利用可能であるならば、符号器は、実際のピッチ立ち遅れの間の比率を計算して、その比率を量子化する。あるいは、仮に無声であるならば、その比率を1に設定する。別の例では、ピッチ変化が、適切な方法(例えば、信号変化評価)によって、直接に評価される。
【0078】
復号器では、符号化された音声の開始位置での第1の相対的ピッチの開始値は、任意の値、例えば1に設定される。従って、復号化された相対的ピッチ曲線は、もはや符号器ピッチ曲線の同じ絶対的範囲内に存在しないが、符号器ピッチ曲線のスケーリングされたバージョン内に存在する。それでも、前述したように、TW−MDCTアルゴリズムは同じサンプル位置および窓形状に導く。さらに、仮に、符号化されたピッチ比率が、平坦なピッチ曲線を発生させるならば、符号器は、完全に符号化された曲線を送ることは決定しないが、代わりに、アクティブピッチデータ(「activePitchData」)フラグを0に設定することを決定し、このフレームの中のビット(例えば、「numPitchbits*numPitches」ビット)を保存する。
【0079】
以下では、本発明の逆ピッチ曲線の再規格化がないときに起こる問題が、議論される。前述のように、TW−MDCTに対して、現在のブロックの周囲の所定の制限時間内の相対的ピッチ変化だけが、時間軸圧縮および正しい窓形状適合の計算に必要である(前述の説明を参照)。時間軸圧縮は、ピッチ変化が検出されて、他のすべての場合において一定に維持している区域(
図8のグラフ表示810を参照)の復号化された曲線に従う。1ブロックの窓とサンプル抽出位置の計算のために、3つの連続した相対的ピッチ曲線区域(例えば、3つの時間軸圧縮曲線部分)が必要である。第3の相対的ピッチ曲線区域は、フレームの中で新しく伝送された相対的ピッチ曲線区域(「新しい時間軸圧縮曲線部分」としても示される)である。そして、他の2つの相対的ピッチ曲線区域は、過去(例えば、「最後の時間軸圧縮曲線部分」と「現在の時間軸圧縮曲線部分」としても示される)から一時的にメモリに移動される。
【0080】
実施例を得るために、例えば、
図7a、
図7bおよび
図8のグラフ表示810,860を参照して説明される。例えば、フレーム1の(または、フレーム1に関係した)窓のサンプル抽出位置を計算するために、フレーム0、1および2の(または、フレーム0、1および2に関係した)ピッチ曲線が必要である。フレーム1は、フレーム0からフレーム2に延びる。ビットストリームの中で、フレーム2のピッチ情報だけが、現在のフレームに送られる。そして、他の2つのフレーム0,1は、過去から取られる。ここで説明したように、ピッチ曲線は、第1の復号化された相対的ピッチ比率を、フレーム1の最後のピッチに適用して、フレーム2の第1のノードなどでのピッチを得ることによって連続する。信号の特性のため、仮に、ピッチ曲線が簡単に連続するならば(すなわち、ピッチ曲線の新たに伝送された部分が、少しの変更もなく、既存の2つの部分に繋がるならば)、符号化器の内部の番号形式の中の領域オーバーフローが、所定の時間後に発生するということは、可能である。例えば、信号は、強い倍音特性の区域から開始し、区域の至る所で減少している開始位置における高いピッチ値は、相対的ピッチの減少をもたらす。次に、ピッチ情報を有さない区域が続き、その結果、相対的ピッチが一定値を維持する。次に、倍音区域は、再び、前の区域の最後の絶対的ピッチより高い絶対的ピッチから開始して、再び下方に向かう。しかしながら、仮に、相対的ピッチが簡単に連続するならば、最後の倍音区域の終了点と同じであり、さらに、下方に向かう。仮に、信号が十分強く、
図8のグラフ表示810で示すように、倍音の区域の中で上昇または下降する全体的な傾向を有するならば、遅かれ早かれ、相対的ピッチは、内部の番号形式の領域の境界に達する。スピーチ信号が、実際にそのような特性を示すことは、スピーチ符号化から、よく知られている。従って、前述した従来の方法を使用するとき、スピーチを含んでいる実世界の信号の連結したセットの符号化が、比較的短い時間の後に、相対的ピッチのために使用される浮遊値の範囲を実際に超えることが、驚くことなく、もたらされる。
【0081】
以上をまとめると、ピッチが決定される音声信号区域(または、音声信号フレーム)に対して、相対的ピッチ曲線(または、時間軸圧縮曲線)の適切な進展が、決定される。例えば、音声信号区域が雑音のようであるので、ピッチが決定されない音声信号区域(または、音声信号フレーム)に対して、相対的ピッチ曲線(または、時間軸圧縮曲線)が、一定値に維持される。従って、仮に、増加するピッチを有する音声信号区域と減少するピッチを有する音声信号区域との間の不均衡があれば、相対的ピッチ曲線(または、時間軸圧縮曲線)は、数値アンダーフローまたは数値オーバーフローのいずれか一方となる。
【0082】
例えば、グラフ表示810では、相対的ピッチ曲線が、減少するピッチを有する複数の音声信号区域(相対的ピッチ曲線部分)820a,820b,820c、820dと、減少するピッチを有さない、いくつかの音声信号区域822a,822bと、が存在し、増加するピッチを有する音声信号区域が全く無い場合のものが示されている。従って、相対的ピッチ曲線816が、数値アンダーフロー(少なくとも非常に不利な状況)となることが分る。
【0083】
以下では、この問題の解決策が説明される。前述の問題、特に、数値アンダーフローまたは数値オーバーフローを防ぐために、本発明の観点に従って、周期的な相対的ピッチ曲線の再規格が導入される。ここで説明されるように、圧縮された時間曲線と窓形状との計算のみが、前述の3つの相対的ピッチ曲線区域(「時間軸圧縮曲線部分」としても示される)の上の相対的変化を当てにするので、(例えば音声信号の)あらゆるフレーム毎に、この曲線(例えば「時間軸圧縮曲線部分」の3つの要素で構成されている時間軸圧縮曲線)を、同じ結果で新しく規格化することが可能である。
【0084】
このために、参照が、例えば、第2の相対的ピッチ曲線区域(第2の「時間軸圧縮曲線部分」としても示される)の最後のサンプルになるように選択される。曲線が、そのような方法で、(例えば、線形領域の中で乗法的に)規格化される。その結果、このサンプルは、1.0の値を有する(
図8のグラフ表示860を参照)。
【0085】
図8のグラフ表示860は、相対的ピッチ曲線の規格化を表す。横軸862はフレーム(フレーム0,1,2)で細分された時間を示す。縦軸864は相対的ピッチ曲線の値を示す。
【0086】
規格化前の相対的ピッチ曲線は、符号870で指定され、2つのフレーム(例えば、フレーム番号0とフレーム番号1)に適用される。予め決められた相対的ピッチ曲線開始値(または、時間軸圧縮曲線開始値)から開始する、新しい相対的ピッチ曲線区域(「時間軸圧縮曲線部分」としても示される)は、符号874で指定される。予め決められた相対的なピッチ曲線開始値(例えば、1)からの新しい相対的ピッチ曲線区域874の再開始は、時間内の再開始点に先行する相対的ピッチ曲線区域870と新しい相対的ピッチ曲線区域874との間の不連続をもたらす。不連続は符号878で指定される。この不連続は、時間軸圧縮制御情報を相対的ピッチ曲線から引き出すための厳しい問題をもたらし、音声歪みを結果としてもたらす。従って、再開始時間内の再開始点に先行する、以前に得られた相対的ピッチ曲線区域870は、再スケールされた相対的ピッチ曲線区域870´を得るために、再スケールされる(または、規格化される)。規格化は、相対的ピッチ曲線区域870の最後のサンプルが、予め決められた相対的ピッチ曲線開始値(例えば、1.0)に合わせてスケールされるように実行される。
【0087】
(アルゴリズムの詳細な説明)
以下では、本発明の実施形態に係る音声復号器によって実行されるアルゴリズムのいくつかが詳細に説明される。このために、
図5a、
図5b、
図6a、
図6b、
図9a、
図9b、
図9c及び
図10a〜
図10gを参照する。さらに、
図11a、
図11b−1及び
図11b−2のデータ要素、補助要素および定数に関する説明を参照する。
【0088】
一般的に、ここで説明された方法は、時間軸圧縮された変形離散余弦変換(TW−MDCT)に従って符号化された音声ストリームを、復号化するために使用される、と言うことができる。従って、TW−MDCTが音声ストリームに対して有効であるとき、時間軸圧縮のフィルタバンクおよびブロック切り換えは、標準のフィルタバンクおよびブロック切り換えに代わる。音声ストリームは、フラグ、例えば「twMdct」と称されるフラグによって示され、特定構造情報の中に含まれている。さらに、逆変形離散余弦変換(IMDCT)に対して、時間軸圧縮のフィルタバンクおよびブロック切り換えは、任意に区切られた時間グリッドから規格で周期的に区切られた時間グリッドに時間領域写像するための時間領域と、対応する窓形状の適合と、を含む。
【0089】
以下において、復号化過程が説明される。第1のステップでは、時間軸圧縮曲線が復号化される。例えば、時間軸圧縮曲線は、時間軸圧縮曲線ノードのコード表インデックスリストを使用して符号化される。時間軸圧縮曲線ノードのコード表インデックスリストは、例えば、
図9a−1のグラフ表示910で示されたアルゴリズムを使用して、復号化される。前記アルゴリズムによると、圧縮比率値(warp_value_tbl)が、例えば、
図9cの写像表990によって定義された写像を使用して、圧縮比率コード表インデックスリスト(tw_ratio)から引き出される。符号910として示されたアルゴリズムから分るように、仮に、フラグ(tw_data_present)が、時間軸圧縮データが存在していないことを示すならば、時間軸圧縮ノード値は、一定の予め決められた値に設定される。対照的に、仮に、フラグが、時間軸圧縮データが存在していることを示すならば、1番目の圧縮ノード値は、予め決められた時間軸圧縮曲線開始値(例えば、1)に設定される。次に、時間軸圧縮曲線部分の圧縮ノード値は、複数の時間軸圧縮比率値の積の形成に基づいて決定される。例えば、1番目の圧縮ノード(i=0)直後のノードの圧縮ノード値は、1番目の圧縮比率値と等しい(開始値が1であれば)、または、1番目の圧縮比率値と開始値との積と等しい。その後の時間軸圧縮ノード値(i=2、3、…num_tw_nodes)は、複数の時間軸圧縮比率値の積を形成することによって計算される。仮に、開始値が1と異なるならば、開始値を任意に考慮する。当然のことながら、積の形成の順は任意である。しかしながら、i番目の圧縮ノード値と、時間軸圧縮曲線の2つの連続したノード値の間の比率を説明する、単一の圧縮比率値と、を乗算することによって、i番目の圧縮ノード値から(i+1)番目の圧縮ノード値を引き出すことが有利である。
【0090】
符号910で示されたアルゴリズムから分るように、1つの音声フレーム当たり1つの時間軸圧縮曲線部分に対して、複数の圧縮比率コード表インデックスが存在する。時間軸圧縮曲線部分と音声フレームとの間には、1対1の対応が存在する。
【0091】
以上をまとめると、複数の時間軸圧縮ノード値が、例えば、圧縮ノード値計算機544を使用して、ステップ610における特定の時間軸圧縮曲線部分(または、特定の音声フレーム)ごとに得られる。次に、線形補間が、時間軸圧縮ノード値(warp_node_values[i])の間で実行される。例えば、「新しい時間軸圧縮曲線部分」の時間軸圧縮曲線データ値(new_warp_contour)を得るために、
図9a−1の符号920に示されたアルゴリズムが使用される。例えば、新しい時間軸圧縮曲線部分のサンプルの数は、逆変形離散余弦変換の時間領域のサンプルの数の半分と等しい。この問題に関して、隣接している音声信号フレームが、通常、MDCTまたはIMDCTの時間領域のサンプルの数の半分だけ、シフトする(少なくとも、近似的に)ことに注目すべきである。言い換えれば、サンプル(N_long samples)の「新しい時間軸圧縮曲線部分」の時間軸圧縮曲線データ値(new_warp_contour[])を得るために、時間軸圧縮ノード値(warp_node_values[])が、符号920で示されたアルゴリズムを使用して、等しく区切られた(interp_dist apart)ノードの間に線形的に補間される。
【0092】
例えば、補間は、
図5aの補間器548によって、または、アルゴリズム600のステップ620の中で実行される。
【0093】
このフレーム(すなわち、現在、考慮中のフレーム)のために完全な圧縮曲線を得る前に、過去からのバッファ値が再スケールされる。その結果、「過去の圧縮曲線(past_warp_contour[])」の最後の圧縮値は、1(または、望ましくは、新しい時間軸圧縮曲線部分の開始値と等しい、別の予め決められた値)と等しい。
【0094】
ここで、用語「過去の圧縮曲線」は、望ましくは、前述の「最後の時間軸圧縮曲線部分」と「現在の時間軸圧縮曲線部分」とを含むことに注目すべきである。また、「過去の圧縮曲線」は、通常、IMDCTの時間領域のサンプル数と等しい長さを含むことに注目すべきである。その結果、「過去の圧縮曲線」の値は、0と2*n_long−1との間のインデックスで指定される。従って、「past_warp_contour[2*n_long−1]」は、「過去の圧縮曲線」の最後の圧縮値を指定する。従って、規格化係数(norm_fac)が、
図9a−2における符号930に示された方程式によって、計算される。従って、過去の圧縮曲線(「最後の時間軸圧縮曲線部分」および「現在の時間軸圧縮曲線部分」を含む)が、
図9a−2における符号932に示された方程式によって、乗法的に再スケールされる。さらに、「最後の圧縮曲線合計値(last_warp_sum)」および「現在の圧縮曲線合計値(cur_warp_sum)」が、
図9a−2の符号934と936に示されるように、乗法的に再スケールされる。再スケールは、
図5aの再スケール器550によって、または、
図6aの方法600のステップ630の中で、実行される。
【0095】
例えば、符号930にて説明した規格化は、「1」の開始値を別の所望の予め決められた値に替えることによって、変更されることに注目すべきである。
【0096】
規格化を適用することによって、「時間軸圧縮曲線区域」としても示される「full warp_contour[]」は、「past_warp_contour」と「new_warp_contour」を連結することによって得られる。従って、3つの時間軸圧縮曲線部分(「最後の時間軸圧縮曲線部分」、「現在の時間軸圧縮曲線部分」および「新しい時間軸圧縮曲線部分」)は、「完全な圧縮曲線」を形成し、計算の更なるステップで適用される。
【0097】
さらに、圧縮曲線合計値((new_warp_sum)が、すべての「new_warp_contour[]」値の合計として計算される。例えば、新しい圧縮曲線合計値が、
図9a−2における符号940に示されたアルゴリズムによって、計算される。
【0098】
以上の説明された計算に続いて、時間軸圧縮制御情報計算機530によって、または、方法600のステップ640によって要求される入力情報は、利用可能である。従って、時間軸圧縮制御情報の計算640は、例えば、時間軸圧縮制御情報計算機530によって実行される。また、時間軸圧縮信号再構成650は、音声復号器によって実行される。計算640および時間軸圧縮信号再構成650は、共に、以下でさらに詳細に説明される。
【0099】
しかしながら、現在のアルゴリズムが繰り返して続くことに注目することは、重要である。従って、メモリを更新することは、計算上効率が良い。例えば、最後の時間軸圧縮曲線部分に関する情報を廃却することは、可能である。さらに、次の計算サイクルの中に、「最後の時間軸圧縮曲線部分」として、現在の「現在の時間軸圧縮曲線部分」を使用することは、推薦される。さらに、次の計算サイクルの中に、「現在の時間軸圧縮曲線部分」として、現在の「新しい時間軸圧縮曲線部分」を使用することは、推薦される。この課題は、
図9bにおける符号950に示された方程式を使用することで作られる。ここで、「warp_contour[n]」は、「2*n_long≦n<3・n_long」に対して、現在の「新しい時間軸圧縮曲線部分」を示す。
【0100】
適切な課題が、
図9bの符号952,954で見られる。
【0101】
言い換えれば、次のフレームを復号化するために使用されるメモリバッファが、符号950,952,954で示された方程式によって、更新される。
【0102】
仮に、適切な情報が、前のフレームに対して発生していないならば、方程式950,952,954に従った更新が、妥当な結果を提供しないことに注意するべきである。従って、1番目のフレームを復号化する前に、または、仮に、最後のフレームが、切り換えられた符号器の文脈の中で異なるタイプの符号器(例えば、LPC領域符号器)で符号化されるならば、メモリの状態が、
図9bの符号960,962,964に示された方程式によって、設定される。
【0103】
(時間軸圧縮制御情報の計算)
以下では、時間軸圧縮制御情報が、時間軸圧縮曲線(例えば、3つの時間軸圧縮曲線部分を含む)および圧縮曲線合計値に基づいて、どのように計算されるかを簡潔に説明される。
【0104】
例えば、時間軸圧縮曲線を使用して、時間曲線を再構成することが望まれる。このために、
図10aの符号1010,1012に示されているアルゴリズムが使用される。時間曲線は、インデックスi(0≦i≦3・n_long)を、対応する時間軸圧縮値の上に写像する。そのような写像の一例が、
図12に示されている。
【0105】
時間曲線の計算に基づいて、線形時間スケールの時間軸圧縮サンプルの位置を示すサンプル位置(「sample_pos[]」)を計算することが、通常、必要である。そのような計算が、
図10bの符号1030で示されているアルゴリズムを使用して実行される。アルゴリズム1030において、
図10aの符号1020と1022で示されている補助関数が使用される。従って、サンプル時間の情報が得られる。
【0106】
さらに、いくつかの時間軸圧縮転移長(「warped_trans_len_left」;「warped_trans_len_right」)が、例えば、
図10bに示されているアルゴリズム1032を使用して計算される。任意に、時間軸圧縮転移長は、例えば、
図10bの符号1034に示されたアルゴリズムを使用して、窓のタイプ、または、変換長さに依存して適合される。さらに、いわゆる「最初の位置」および「最後の位置」が、例えば、
図10bの符号1036に示されたアルゴリズムを使用して、転移長の情報に基づいて計算される。まとめると、サンプル位置および窓長の調整は、時間軸圧縮制御情報計算機530によって、または、方法600のステップ640の中で実行される。「warp_contour[]」から、線形時間スケールで時間軸圧縮されたサンプルのサンプル位置ベクトル(sample_pos[])が、計算される。このため、先ず、時間曲線が、符号1010,1012で示されたアルゴリズムを使用して発生する。符号1020,1022で示された補助関数「warp_in_vec()」および「warp_time_inv()」と共に、サンプル位置ベクトル(「sample_pos[]」)および転移長(「warped_trans_len_left」と「warped_trans_len_right」)が、例えば、符号1030,1032,1034,1036で示されたアルゴリズムを使用して、計算される。従って、時間軸圧縮制御情報512が得られる。
【0107】
(時間軸圧縮信号再構成)
以下では、時間軸圧縮制御情報512に基づいて実行される時間軸圧縮信号再構成が、簡潔に議論され、時間軸圧縮曲線の計算が、適切な文脈の中に入れられる。
【0108】
音声信号の再構成は、逆変形離散余弦変換の実現(当業者に周知であるので、ここでは詳細に説明しない)を含む。逆変形離散余弦変換は、1セットの周波数領域係数に基づいて、圧縮時間領域サンプルを再構成する。例えば、IMDCTの実現は、フレーム類を実行する。それは、例えば、2048個の圧縮時間領域サンプルの1フレームが、1セットの1024個の周波数領域係数に基づいて、再構成されていることを意味する。正しい再構成のために、3つ以上の連続した窓が重複しないことが必要である。TW−MDCTの特性によれば、1つのフレームの逆時間軸圧縮部分が非隣接フレームに拡張することが起こる。従って、前記前提条件に違反する。故に、窓形状のフェード長が、前述の適切な「warped_trans_len_left」値および「warped_trans_len_right」値を計算することによって、短くされる必要がある。
【0109】
次に、窓化およびブロック切り替えステップ650Bが、IMDCTから得られた時間領域サンプルに適用される。窓化とブロック切り換えは、時間軸圧縮制御情報に依存してIMDCTステップ650Aによって提供された、圧縮時間領域サンプルに適用されて、窓付けされた圧縮時間領域サンプルを得る。例えば、「窓形状(「window_shape」)」情報または要素によって、異なる過剰サンプル抽出された変換窓の原型が使用される。過剰サンプル抽出された窓の長さは、
図10cの符号1040で示された方程式で与えられる。例えば、第1の型の窓形状(例えば、「window_shape」=1)に対して、窓係数は、
図10cの符号1042で示された定義に従って、カイザー−ベッセル派生(KBD)窓によって与えられる。ここで、「カイザー−ベッセル・カーネル窓関数」である「W´」は、
図10cの符号1044で示されているように定義される。
【0110】
別の方法は、異なる窓形状が使用されるとき(例えば、仮に、「window_shape」=0であれば)、正弦窓が符号1046の定義に従って使われる。すべての種類の窓系列(「window_sequences」)に対して、左側窓形状のために使用される原型は、前のブロックの窓形状によって決定される。
図10cの符号1048で示された公式は、この事実を表現する。同様に、右側窓形状のための原型は、
図10cの符号1050で示された公式によって決定される。
【0111】
以下では、前述の窓の、IMDCTによって提供された圧縮時間領域サンプルへの応用が説明される。いくつかの実施形態において、フレームの情報は、複数の短い系列(例えば、8つの短系列)によって提供される。別の実施形態では、フレームの情報は、異なる長さのブロックを使用して提供される。この場合、特別な処理が、開始系列、終了系列、および/または、標準的でない長さの系列に必要である。しかしながら、転移長は、前述したように決定されるので、8つの短系列(「eight_short_sequence」という適切なフレーム型情報によって示される)を使用して符号化されたフレームと他の全てのフレームとを区別することは、十分である。
【0112】
例えば、8つの短系列によって説明されたフレームにおいて、
図10d−1の符号1060で示されたアルゴリズムは、窓化のために適用される。対照的に、他の情報を使用して符号化されたフレームに対しては、
図10eの符号1064で示されたアルゴリズムが適用される。言い換えれば、
図10d−1の符号1060で示されたCコードのような部分は、窓化、および、いわゆる「8つの短系列」の内部重複加算を説明する。対照的に、
図10eの符号1064で示されたCコードのような部分は、他の場合における窓化を説明する。
【0113】
(再サンプル抽出)
以下では、時間軸圧縮制御情報に依存した、窓付けされた圧縮時間領域サンプルの逆時間軸圧縮ステップ650Cが説明される。そこでは、周期的にサンプル抽出された時間領域サンプル、または、単なる時間領域サンプルが、時間変化している再サンプル抽出によって得られる。時間変化している再サンプル抽出において、窓付けされたブロック「z[]」は、例えば、
図10fの符号1070で示されたインパルス応答を使用して、抽出位置に従って再サンプル抽出される。再サンプル抽出の前に、窓付けされたブロックは、
図10fの符号1072で示されるように、両端にゼロを入れる。再サンプル抽出自体は、
図10fの符号1074で示された仮コード区域によって説明される。
【0114】
(後再サンプル抽出器のフレーム処理)
以下では、時間領域サンプルの任意の後ステップ650Dが説明される。いくつかの実施形態では、後再サンプル抽出フレーム処理が、窓系列の型に依存して実行される。パラメータ「window_sequence」によって、所定の更なる処理ステップが適用される。
【0115】
例えば、仮に、窓系列が、いわゆる「8つの短系列(EIGHT_SHORT_SEQUENCE)」、「長い開始系列(LONG_START_SEQUENCE)」、「停止開始系列(STOP_START_SEQUENCE)」、「停止開始1152系列(STOP_START_1152_SEQUENCE)」、「LPD系列(LPD_SEQUENCE)」であるならば、符号1080a,1080b,1082で示された後処理が実行される。
【0116】
例えば、仮に、次の窓系列がいわゆる「LPD系列」であれば、修正窓Wcorr(n)は、符号1080bで示された定義を考慮に入れて、符号1080aで示されているように計算される。また、修正窓Wcorr(n)は、
図10gの符号1082で示されているように適用される。
【0117】
他のすべての場合に対しては、
図10gの符号1084で見るように、何も成されない。
【0118】
(前の窓系列との重複および加算)
さらに、現在の時間領域サンプルと1つ以上の前の時間領域サンプルとの重複および加算ステップ650Eが、実行される。重複および加算ステップ650Eは、すべての系列に対して同じであり、
図10gの符号1086で示されているように、数学的に説明される。
【0119】
(説明)
また、与えられた表記に関して、その索引が
図11a、
図11b−1及び
図11b−2に示された説明図に成されている。通常、逆変換の合成窓長Nは、特に、構文要素「窓系列(window_sequence)」とアルゴリズムの文脈との関数である。例えば、それは、
図11b−2の符号1190で示されるように定義される。
【0120】
(
図13の実施形態)
図13は、再構成された時間軸圧縮曲線情報を提供するための手段1300のブロック概略図を示す。手段1300は、
図5aを参照して説明された手段520の機能を引き継ぐ。しかしながら、データ経路とバッファが、さらに詳細に示される。手段1300は、圧縮ノード値計算機544の機能を取る圧縮ノード値計算機1344を含む。圧縮ノード値計算機1344は、符号化された圧縮比率情報として、圧縮比率のコード表インデックス「tw_ratio[]」を受信する。圧縮ノード値計算機1344は、例えば、
図9cに表された時間軸圧縮比率値上への時間軸圧縮比率インデックスの写像を表す、圧縮値表を含む。圧縮ノード値計算機1344は、さらに、
図9a−1の符号910で表されたアルゴリズムを実行するための乗算器を含む。従って、圧縮ノード値計算機1344は、圧縮ノード値「warp_node_values[i]」を提供する。さらに、手段1300は、圧縮曲線補間器1348を含む。圧縮曲線補間器1348は、補間器540aの機能を取り、
図9a−1の符号920で示されたアルゴリズムを実行するように構成されている。その結果、新しい圧縮曲線(「new_warp_contour」)の値を得る。手段1300は、さらに、新しい圧縮曲線バッファ1350を含む。新しい圧縮曲線バッファ1350は、新しい圧縮曲線(すなわち、「warp_contour[i]」、2・n_long≦i<3・n_long)の値を格納する。手段1300は、さらに、過去の圧縮曲線バッファ/更新器1360を含む。過去の圧縮曲線バッファ/更新器1360は、「最後の時間軸圧縮曲線部分」と「現在の時間軸圧縮曲線部分」を格納して、再スケールおよび現在のフレームの処理の完成に対応して、記憶内容を更新する。従って、過去の圧縮曲線バッファ/更新器1360は、過去の圧縮曲線再スケーラ1370と協働する。その結果、過去の圧縮曲線バッファ/更新器1360と過去の圧縮曲線再スケーラ1370とは、共にアルゴリズム930,932,934,936,950,960の機能を十分に満たす。また、任意に、過去の圧縮曲線バッファ/更新器1360は、アルゴリズム932,936,952,954,962,964の機能を引き継ぐ。
【0121】
従って、手段1300は、圧縮曲線(「warp_contour」)を提供して、圧縮曲線合計値を最適に提供する。
【0122】
(
図14の音声信号符号器)
以下では、本発明に係る音声信号符号器が説明される。
図14の音声信号符号器は、符号1400でその全体が指定される。音声信号符号器1400は、音声信号1410と、音声信号1410に関係した、任意に外部的に提供された圧縮曲線情報1412と、を受信するように構成されている。さらに、音声信号符号器1400は、音声信号1410の符号化された表現1414を提供するように構成されている。
【0123】
音声信号符号器1400は時間軸圧縮曲線符号器1420を含む。時間軸圧縮曲線符号器1420は、音声信号1410に関係した時間軸圧縮曲線情報1422を受信して、それに基づいて、符号化した時間軸圧縮曲線情報1424を提供するように構成されている。
【0124】
音声信号符号器1400は、さらに、時間軸圧縮信号処理器(または、時間軸圧縮信号符号器)1430を含む。時間軸圧縮信号処理器1430は、音声信号1410を受信して、それに基づいて、時間軸圧縮曲線情報1422によって説明された時間軸圧縮を考慮に入れて、音声信号1410の時間軸圧縮符号化表現1432を提供するように構成されている。音声信号1410の符号化された表現1414は、符号化された時間軸圧縮曲線情報1424と、音声信号1410のスペクトルの時間軸圧縮符号化表現1432と、を含む。
【0125】
任意に、音声信号符号器1400は圧縮曲線情報計算機1440を含む。圧縮曲線情報計算機1440は、音声信号1410に基づいて時間軸圧縮曲線情報1422を提供するように構成されている。しかしながら、時間軸圧縮曲線情報1422は、2者択一的に、外部的に提供された圧縮曲線情報1412に基づいても提供される。
【0126】
時間軸圧縮曲線符号器1420は、時間軸圧縮曲線情報1424によって説明された時間軸圧縮曲線の連続したノード値の間の比率を、計算するように構成されている。例えば、ノード値は、時間軸圧縮曲線情報1424によって表された時間軸圧縮曲線のサンプル値である。例えば、仮に、時間軸圧縮曲線情報1424が、音声信号1410の各フレームごとに、複数の値を含むならば、時間軸圧縮ノード値は、この時間軸圧縮曲線情報1424の真の部分集合である。例えば、時間軸圧縮ノード値は、時間軸圧縮曲線値の周期的な真の部分集合である。時間軸圧縮曲線ノード値は、N個の音声サンプルごとに存在する。ここで、Nは2以上である。
【0127】
時間軸圧縮曲線ノード値比率計算機は、時間軸圧縮曲線の連続した時間軸圧縮ノード値の間の比率を計算して、時間軸圧縮曲線の連続したノード値の間の比率を説明する情報を提供するように、構成されている。時間軸圧縮曲線符号器1420の比率符号器は、時間軸圧縮曲線の連続したノード値の間の比率を符号化するように、構成されている。例えば、比率符号器は、異なる比率を、異なるコード表インデックスに写像する。例えば、写像化は、時間軸圧縮曲線ノード値比率計算機によって提供された比率が、0.9〜1.1の範囲内、または、0.95〜1.05の範囲内にさえあるように、選ばれる。従って、比率符号器は、この範囲を、異なるコード表インデックスに写像するように構成されている。例えば、
図9cの表に示された対応は、この写像化の中で補助点として機能する。その結果、例えば、1の比率が、3のコード表インデックスに写像される。一方、1.0057の比率が、4のコード表インデックスに写像される(
図9cを比較してください)。
図9cの表に示された対応の間の比率値は、適したコード表インデックスに、例えば、
図9cの表の中で与えられる最も近い比率値のコード表インデックスに、写像される。
【0128】
当然のことながら、異なる符号化が使用されてもよい。その結果、例えば、利用可能なコード表インデックスの数字は、ここで示された数字より大きい数字、または、より小さい数字が選ばれてもよい。また、圧縮曲線ノード値とコード表値のインデックスとの間の関連が、適切に選ばれてもよい。また、例えば、コード表インデックスは、二進符号化を使用して、任意にエントロピー符号化を使用して、符号化されてもよい。
【0129】
従って、時間軸圧縮曲線情報(符号化された比率)1424が得られる。
【0130】
時間軸圧縮信号処理器1430は、時間軸圧縮時間領域−周波数領域変換器1434を含む。変換器1434は、音声信号1410と音声信号1410(または、その符号化されたバージョン)に関係した時間軸圧縮曲線情報1422aとを受信して、それぞれに基づいて、スペクトル領域(周波数領域)表現1436を提供するように構成されている。
【0131】
時間軸圧縮曲線情報1422aは、望ましくは、圧縮復号器1425を使用して、時間軸圧縮曲線符号器1420によって提供された時間軸圧縮曲線情報1424から引き出される。このようにして、符号器(特に時間軸圧縮信号処理器1430自身)と復号器(音声信号の符号化された表現1414を受信する)とが、同じ圧縮曲線、すなわち、復号化された(時間軸)圧縮曲線上で作動することが、達成される。しかしながら、簡素な実施形態においては、時間軸圧縮信号処理器1430によって使用される時間軸圧縮曲線情報1422aは、時間軸圧縮曲線符号器1420によって入力された時間軸圧縮曲線情報1422と同一のものである。
【0132】
時間軸圧縮時間領域−周波数領域変換器1434は、例えば、音声信号1410の時間変化再サンプル抽出操作を使用して、スペクトル領域表現1436を形成するとき、時間軸圧縮を考える。しかしながら、2者択一的に、時間変化再サンプル抽出と時間領域−周波数領域変換とは、1つの処理ステップの中に合成されてもよい。また、時間軸圧縮信号処理器1430は、スペクトル領域表現1436を符号化するように構成されているスペクトル値符号器1438を含む。スペクトル値符号器1438は、例えば、知覚マスキングを考慮するように構成されている。また、スペクトル値符号器1438は、周波数帯域の知覚関係に符号化精度を適合させて、エントロピー符号化を適用するように構成されている。従って、音声信号1410の符号化された表現1432が得られる。
【0133】
(
図15の時間軸圧縮曲線計算機)
図15は、本発明の別の実施形態に係る時間軸圧縮曲線計算機1500のブロック概略図を示す。時間軸圧縮曲線計算機1500は、符号化された圧縮比率情報1510を受信して、それに基づいて、複数の圧縮曲線ノード値1512を提供するように構成されている。時間軸圧縮曲線計算機1500は、例えば、圧縮比率復号器1520を含む。圧縮比率復号器1520は、圧縮比率値1522の系列を、符号化された圧縮比率情報1510から引き出すように構成されている。また、時間軸圧縮曲線計算機1500は、圧縮曲線ノード値計算機1530を含む。圧縮曲線ノード値計算機1530は、圧縮曲線ノード値1512の系列を、圧縮比率値1522の系列から引き出すように構成されている。例えば、圧縮曲線ノード値計算機1530は、圧縮曲線開始値から開始する圧縮曲線開始ノード値を得るように構成されている。圧縮曲線ノード値計算機1530の中で、圧縮曲線開始ノードに関係した圧縮曲線開始値と圧縮曲線ノード値との間の比率が、圧縮比率値1522によって決定される。また、圧縮曲線ノード値計算機1530は、乗算形式に基づいて、特定の圧縮曲線ノードの圧縮曲線ノード値1512を計算するように構成されている。特定の圧縮曲線ノードは、中間圧縮曲線ノードによって、圧縮曲線開始ノードから区切られている。前記乗算形式は、係数として、圧縮曲線開始値(例えば、1)と中間圧縮曲線ノードの圧縮曲線ノード値との間の比率、ならびに、中間圧縮曲線ノードの圧縮曲線ノード値と特定の圧縮曲線ノードの圧縮曲線ノード値との間の比率を含む。
【0134】
以下では、時間軸圧縮曲線計算機1500の操作が、
図16aと
図16bに従って簡潔に議論される。
【0135】
図16aは時間軸圧縮曲線の連続した計算のグラフ表示を示す。第1のグラフ表示1610は、時間軸圧縮比率コード表インデックス1510(インデックス=0、インデックス=1、インデックス=2、インデックス=3、インデックス=7)の系列を示す。さらに、グラフ表示1610は、コード表インデックス1510に関係した圧縮比率値(0.983,0.988,0.994,1.000,1.023)の系列を示す。さらに、1番目の圧縮ノード値1621(i=0)が1に選ばれていることがわかる(ここで、1は開始値である)。2番目の圧縮ノード値1622(i=1)は、開始値1と、1番目の圧縮比率値0.983(1番目のインデックス0に関係している)と、を積算することによって得られる。さらに、3番目の圧縮ノード値1623(i=2)は、2番目の圧縮ノード値1622の0.983と、2番目の圧縮比率値0.988(2番目のインデックス1に関係している)と、を積算することによって得られる。同様にして、4番目の圧縮ノード値1624(i=3)は、3番目の圧縮ノード値1623と、3番目の圧縮比率値0.994(3番目のインデックス2に関係している)と、を積算することによって得られる。
【0136】
従って、圧縮ノード値1621〜1626の系列が得られる。
【0137】
それぞれの圧縮ノード値1622〜1626が、開始値(例えば、1)と全ての中間圧縮比率値(開始圧縮ノード1621とそれぞれの圧縮ノード値1622〜1626との間に存在する)との積となるように、効率良く得られる。
【0138】
グラフ表示1640は、圧縮ノード値1621〜1626の間の線形補間を例証する。例えば、補間値1621a,1621b,1621cは、例えば、線形補間を利用して、音声信号復号器の中で、2つの隣接する時間軸圧縮ノード値1621と1622との間で得られる。
【0139】
図16bは、予め決められた開始値からの周期的な再開始を使用した、時間軸圧縮曲線再構成のグラフ表示を示す。時間軸圧縮曲線再構成は、任意に、時間軸圧縮曲線計算機1500の中で実行される。言い換えれば、符号器側における、または、復号器側における、他の適切な測定によって、数値オーバーフローを避けることが提供されるならば、繰り返し、または、周期的な再開始は、基本的な特徴ではない。圧縮曲線部分は、圧縮曲線ノード1661,1662,1663,1664が決定される開始ノード1660から開始することができる。このために、圧縮比率値(0.983,0.988,0.965,1.000)が考えられ、その結果、第1の時間軸圧縮曲線部分の隣接圧縮曲線ノード1661〜1664が、これらの圧縮比率値によって決定された比率によって離される。しかしながら、第2の時間軸圧縮曲線部分は、第1の圧縮曲線部分(ノード1660〜1664を含む)の終了ノード1664に達した後に、開始させられる。第2の時間軸圧縮曲線部分は、新しい開始ノード1665から開始する。新しい開始ノード1665は、予め決められた開始値(1)を取り、どんな圧縮比率値からも、独立している。従って、第2の時間軸圧縮曲線部分の圧縮ノード値は、第2の時間軸圧縮曲線部分の圧縮比率値に基づいて、第2の時間軸圧縮曲線部分の開始ノード1665からの開始を計算する。その後、第3の時間軸圧縮曲線部分は、対応する開始ノード1670から開始する。開始ノード1670は、再び、どんな圧縮比率値からも独立した、予め決められた開始値(1)を取る。従って、時間軸圧縮曲線部分の周期的な再開始が得られる。任意に、繰り返しの再規格化が、前述で詳細に説明したように、適用される。
【0140】
(
図17の音声信号符号器)
以下では、本発明の別の実施形態に係る音声信号符号器が、
図17を参照して簡潔に説明される。音声信号符号器1700は、マルチチャンネル音声信号1710を受信して、マルチチャンネル音声信号1710の符号化された音声表現1712を提供するように構成されている。音声信号符号器1700は、符号化音声表現提供装置1720を含む。符号化音声表現提供装置1720は、共通してマルチチャンネル音声信号の複数の音声チャンネルに関係した共通圧縮曲線情報を含む音声表現、または、複数の音声チャンネルの異なる音声チャンネルに個別に関係した個別の圧縮曲線情報を含む符号化音声表現を、選択的に提供するように構成されている。それらの表現は、複数の音声チャンネルの音声チャンネルに関係した圧縮曲線の間の類似または相違を説明する情報に依存している。
【0141】
例えば、音声信号符号器1700は、圧縮曲線類似計算機または圧縮曲線相違計算機1730を含む。圧縮曲線類似計算機または圧縮曲線相違計算機1730は、音声チャンネルに関係した圧縮曲線の間の類似または相違を説明する情報1732を提供するように構成されている。符号化音声表現提供装置1720は、例えば、時間軸圧縮曲線情報1724および情報1732を受信するように構成された選択的時間軸圧縮曲線符号器1722を含む。時間軸圧縮曲線情報1724は、外部から提供される、または、任意の時間軸圧縮曲線情報計算機1734によって提供される。仮に、情報1732が、2つ以上の音声チャンネルの時間軸圧縮曲線が十分に類似であることを示すならば、選択的時間軸圧縮曲線符号器1722は、共通符号化時間軸圧縮曲線情報を提供するように構成されている。共通符号化時間軸圧縮曲線情報は、例えば、2つ以上のチャンネルの圧縮曲線情報の平均に基づいている。しかしながら、2者択一的に、共通符号化時間軸圧縮曲線情報は、一つの音声チャンネルの単一の圧縮曲線情報であるが、複数のチャンネルに共通して関係している圧縮曲線情報に基づいている。
【0142】
しかしながら、仮に、情報1732が、複数の音声チャンネルの圧縮曲線が十分類似でないことを示すならば、選択的時間軸圧縮曲線符号器1722は、異なった時間軸圧縮曲線の別々の符号化情報を提供する。
【0143】
また、符号化音声表現提供装置1720は、時間軸圧縮信号処理器1726を含む。時間軸圧縮信号処理器1726は、時間軸圧縮曲線情報1724とマルチチャンネル音声信号1710を受信して、音声信号1710の複数のチャンネルを符号化するように構成されている。時間軸圧縮信号処理器1726は、異なる操作モードを含む。例えば、時間軸圧縮信号処理器1726は、相互チャネル類似性を利用して、選択的に個別に音声チャンネルを符号化する、または、共通してそれらを符号化するように構成される。いくつかの場合、時間軸圧縮信号処理器1726は、共通の時間軸圧縮曲線情報を持つ複数の音声チャンネルを、共通して符号化できることが好ましい。左の音声チャンネルと右の音声チャンネルとは、同じ相対的ピッチ進展を示すが、別の異なる信号特性、例えば、異なる絶対基本周波数または異なるスペクトルエンベロープ(包絡線)を、持つ場合がある。この場合、左の音声チャンネルと右の音声チャンネルとの間の著しい相違のため、左の音声チャンネルと右の音声チャンネルとを共同して符号化することは、望ましくない。それにもかかわらず、左の音声チャンネルおよび右の音声チャンネルにおける相対的ピッチ進展は、並列である。その結果、共通時間軸圧縮の応用は、非常に効率の良い解決策である。そのような音声信号の例は多音音楽である。多音音楽においては、複数の音声チャンネルの内容が、例えば、異なる歌手や楽器によって支配される著しい相違を示すが、類似のピッチ変化を示す。従って、符号化効率は、複数の音声チャンネルの時間軸圧縮曲線を共同して符号化させる可能性を提供することによって、非常に向上される。一方、共通のピッチ曲線情報が提供される、異なる音声チャンネルの周波数スペクトルを別々に符号化する選択肢は、維持される。
【0144】
符号化音声表現提供装置1720は、任意に、サイド情報符号器1728を含む。サイド情報符号器1728は、情報1732を受信して、共通の符号化された圧縮曲線を複数の音声チャンネルに提供するか否か、または、個別の符号化された圧縮曲線を複数の音声チャンネルに提供するか否かを示すサイド情報を提供する、ように構成されている。例えば、そのようなサイド情報は、1ビットフラグ(「common_tw」と称する)の形式で提供される。
【0145】
以上をまとめると、選択的時間軸圧縮曲線符号器1722は、複数の音声信号に関係した時間軸圧縮音声曲線の個別の符号化された表現、または、複数の音声チャンネルに関係した単一の共通時間軸圧縮曲線を表す、共同して符号化された時間軸圧縮曲線表現を、選択的に提供する。サイド情報符号器1728は、任意に、個別の時間軸圧縮曲線表現、または、共通時間軸圧縮曲線表現のいずれか一方が提供されることを示すサイド情報を提供する。時間軸圧縮信号処理器1726は、複数の音声チャンネルの符号化された表現を提供する。任意に、共通符号化情報は、複数の音声チャンネルに提供される。しかしながら、通常、共通時間軸圧縮曲線表現が利用可能である複数の音声チャンネルの、個別の符号化された表現を提供することは、可能である。従って、異なる音声内容を持つが、同じ時間軸圧縮を持っている異なる音声チャンネルが、適切に表現される。その結果、符号化された音声表現1712は、選択的時間軸圧縮曲線符号器1722と、時間軸圧縮信号処理器1726と、任意のサイド情報符号器1728と、によって提供された符号化された情報を含む。
【0146】
(
図18の音声信号復号器)
図18は、本発明の実施形態に係る音声信号復号器のブロック概略図を示す。音声信号復号器1800は、符号化された音声信号表現1810(例えば、符号化された表現1712)を受信して、それに基づいて、マルチチャンネル音声信号の復号化された表現1812を提供するように構成されている。音声信号復号器1800は、サイド情報抽出器1820と時間軸圧縮復号器1830とを含む。サイド情報抽出器1820は、時間軸圧縮曲線応用情報1822および圧縮曲線情報1824を、符号化された音声信号表現1810から引き出すように構成されている。例えば、サイド情報抽出器1820は、単一の共通の時間軸圧縮情報が、符号化された音声信号の複数のチャンネルに利用可能であるか否か、または、別々の時間軸圧縮曲線情報が、複数のチャンネルに利用可能であるか否か、を識別するように構成されている。従って、サイド情報抽出器1820は、時間軸圧縮曲線応用情報1822(共通のまたは個別の時間軸圧縮曲線情報が利用可能であるか否かを示す)と、時間軸圧縮曲線情報1824(共通(共同)時間軸圧縮曲線または個別の時間軸圧縮曲線の時間的進展を説明する)と、を共に提供する。時間軸圧縮復号器1830は、情報1822,1824によって説明された時間軸圧縮を考慮に入れて、符号化された音声信号表現1810に基づいて、マルチチャンネル音声信号の復号化された表現1812を再構成するように構成されている。例えば、時間軸圧縮復号器1830は、個別の符号化された周波数領域情報が利用可能である異なる音声チャンネルを復号化するために、共通の時間軸圧縮曲線を適用するように構成されている。従って、時間軸圧縮復号器1830は、例えば、類似の、または、同じ時間軸圧縮を含むが、異なるピッチを含むマルチチャンネル音声信号の、異なるチャンネルを再構成する。
【0147】
(
図19a〜
図19eの音声ストリーム)
以下では、1つ以上の音声信号チャンネルと1つ以上の時間軸圧縮曲線との符号化された表現を含む音声ストリームが説明される。
【0148】
図19aは、いわゆる「usac_raw_data_block」データストリーム要素のグラフ表示を示す。「usac_raw_data_block」データストリーム要素は、単一チャンネル要素(single channel element)、チャンネルペア要素(channel pair element)、または、1つ以上の単一チャンネル要素、および/または、1つ以上のチャンネルペア要素の結合を含む。
【0149】
「usac_raw_data_block」は、通常、符号化された音声データのブロックを含む。一方、追加時間軸圧縮曲線情報は、分離データストリーム要素の中に提供される。それにもかかわらず、通常、いくつかの時間軸圧縮曲線データを「usac_raw_data_block」の中に符号化することは、可能である。
【0150】
図19bから分るように、単一チャンネル要素は、通常、周波数領域チャンネルストリーム(「fd_channel_stream」)を含む。周波数領域チャンネルストリームは、
図19dを参照して詳細に説明される。
【0151】
図19cから分るように、チャンネルペア要素(「channel_pair_element」)は、通常、複数の周波数領域チャンネルストリームを含む。また、チャンネルペア要素は時間軸圧縮情報を含む。例えば、構成データストリーム要素、または、「usac_raw_data_block」の中に伝送される、時間軸圧縮起動フラグ(「tw_MDCT」フラグ)は、時間軸圧縮情報がチャンネルペア要素の中に含まれているか否かを決定する。例えば、仮に、「tw_MDCT」フラグが、時間軸圧縮が起動していることを示すならば、チャンネルペア要素は、チャンネルペア要素の音声チャンネルのための共通時間軸圧縮が存在するか否かを示すフラグ(「common_tw」)を含む。仮に、前記フラグ(common_tw)が、複数の音声チャンネルのための共通の時間軸圧縮が存在することを示すならば、共通の時間軸圧縮情報(tw_data)は、チャンネルペア要素の中に含まれ、例えば、周波数領域チャンネルストリームから分離される。
【0152】
図19dを参照して、周波数領域チャンネルストリームが説明される。
図19dから分るように、周波数領域チャンネルストリームは、例えば、全体利得情報を含む。また、仮に、時間軸圧縮が起動し(フラグ「tw_MDCT」が起動し)、かつ、複数の音声信号チャンネルのための共通の時間軸圧縮情報が存在しなければ(フラグ「common_tw」が不起動であれば)、周波数領域チャンネルストリームは、時間軸圧縮データを含む。
【0153】
さらに、周波数領域チャンネルストリームは、スケール係数データ(「scale_factor_data」)と、符号化されたスペクトルデータ(例えば、算術的に符号化されたスペクトルデータ「ac_spectral_data」)と、を含む。
【0154】
図19eを参照して、時間軸圧縮データの構文が簡潔に議論される。時間軸圧縮データは、例えば、任意に、時間軸圧縮データが存在するか否かを示すフラグ(例えば、「tw_data_present」または「active Pitch Data」)を含む。仮に、時間軸圧縮データが存在するならば(すなわち、時間軸圧縮曲線は平坦でないならば)、時間軸圧縮データは、複数の符号化された時間軸圧縮比率値の系列(例えば、「tw_ratio [i]」または「pitchIdx[i]」)を含む。前記時間軸圧縮比率値の系列は、例えば、
図9cのコード表テーブルに従って符号化される。
【0155】
従って、仮に、時間軸圧縮曲線が一定であるならば(時間軸圧縮比率が1.000に殆んど等しいならば)、時間軸圧縮データは、利用可能な時間軸圧縮データが存在しないことを示すフラグを含む。フラグは、音声信号符号器によって設定される。対照的に、仮に、時間軸圧縮曲線が変化するならば、連続した時間軸圧縮曲線ノードの間の比率は、「tw_ratio」情報を作るコード表インデックスを使用して、符号化される。
【0156】
(結論)
以上をまとめると、本発明に係る実施形態は、時間軸圧縮の分野の中で異なる改良をもたらす。
【0157】
ここで説明した発明の様相は、時間軸圧縮MDCT変換符号器(例えば、特許文献1を参照)の文脈の中にある。本発明に係る実施形態は、時間軸圧縮MDCT変換符号化器の性能を向上させるための方法を提供する。
【0158】
本発明の様相によれば、特に効率の良いビットストリーム形式が提供される。ビットストリーム形式の記述は、MPEG−2AACビットストリーム構文(例えば、非特許文献1を参照)に基き、そして、それを高める。しかし、ビットストリーム形式の記述は、もちろん、ストリームの開始位置の概説ヘッダーと、個別のフレームの情報構文と、を有する全てのビットストリーム形式に適用できる。
【0159】
例えば、以下のサイド情報はビットストリームの中に伝送される。
【0160】
一般に、1ビットのフラグ(例えば、「tw_MDCT」と称する)は、時間軸圧縮が起動しているか否かを示す一般的な音声特定構成(GASC)の中に存在する。ピッチデータは、
図19eに示した構文、または、
図19fに示した構文を使用して、伝送される。
図19fの構文では、ピッチの数(「numPitches」)は16と等しい。そして、「numPitchBits」の中のピッチビットの数は3と等しい。言い換えれば、時間軸圧縮曲線部分(または音声信号フレーム)当たり16個の符号化された圧縮比率値が存在する。そして、それぞれの圧縮曲線比率値は、3ビットを使用して符号化される。
【0161】
さらに、単一チャンネル要素(SCE)の場合において、仮に、時間軸圧縮が起動されているならば、ピッチデータ(「pitch_data[]」)は、個別のチャンネルの中において、区域データの前に位置する。
【0162】
チャンネルペア要素(CPE)の場合において、仮に、両方のチャンネルのための共通ピッチデータが存在するならば、共通ピッチフラグ信号は、区域データの後に続く。仮に、両方のチャンネルのための共通ピッチデータが存在しないならば、個別のピッチ曲線は、個別のチャンネルの中に見つけられる。
【0163】
以下では、チャンネルペア要素のために提出された例である。1つの例が、ステレオパノラマの中に置かれた、単一倍音源の信号である。この場合、第1のチャンネルおよび第2のチャンネルのための相対的ピッチ曲線は、等しい、または、変化に関する評価におけるいくつかの小さい誤りのため僅かだけ異なる。この場合、符号器は、各チャンネルのために2つの分離符号化ピッチ曲線を送信する代わりに、第1および第2のチャンネルのピッチ曲線の平均である1つのピッチ曲線だけを送信して、両方のチャンネル上のTW−MDCTを適用する際に、同じ曲線を使用することを決定する。他方で、ピッチ曲線に関する評価が第1および第2のチャンネルそれぞれのために異なる結果をもたらす信号が、存在する。この場合、個々に符号化されたピッチ曲線は、対応するチャンネルの中に送信される。
【0164】
以下では、ピッチ曲線データの有利な復号化が、本発明の様相に従って説明される。例えば、仮に、「active PitchData」フラグが0であれば、ピッチ曲線は、フレームの中の全てのサンプルに対して1に設定される。さもなければ、個別のピッチ曲線ノードは、以下の通り計算される。
1.(「numPitches」+1)個のノードが存在する。
2.「node [0]」は常に1.0である。
3.関係式node [i]=node[i−1]・relChange[i] (i=1..「numPitches」+1)
ここで、「relChange[i]」は、「pitchIdx[i]」の逆量子化によって得られる。
【0165】
ピッチ曲線は、ノード間の線形補間によって発生される。ここで、ノードサンプル位置は、「0:frameLen/numPitches:frameLen」である。
【0166】
(2者択一の実施例)
所定の実施例の要求に依存して、本発明の実施形態が、ハードウェアまたはソフトウェアの中で実行される。実施例は、電子的に読み込み可能な制御信号を格納するデジタル格納媒体、例えば、フロッピー(登録商標)ディスク、DVD、CD、ROM、PROM、EPROM、EEPROM、または、フラッシュメモリを使用して実行される。デジタル格納媒体は、プログラマブルコンピュータシステムと協働する(または、共に操作できる)。その結果、それぞれの方法が実行される。
【0167】
本発明に係るいくつかの実施形態は、電子的に読み込み可能な制御信号を有するデータキャリアを含む。データキャリアは、プログラマブルコンピュータシステムと共に操作できる。その結果、ここで説明された方法の1つが実行される。
【0168】
一般に、本発明に係る実施形態は、プログラムコードを有するコンピュータプログラム製品として実行される。コンピュータプログラム製品が、コンピュータ上で稼動するとき、プログラムコードは、方法の1つを実行するために操作される。プログラムコードは、例えば、機械読み込み可能なキャリヤー上に格納される。
【0169】
別の実施形態は、ここで説明された方法の1つを実行するためのコンピュータプログラムを含む。コンピュータプログラムは、機械読み込み可能なキャリヤー上に格納される。
【0170】
言い換えれば、本発明の方法に係る実施形態は、コンピュータプログラムが、コンピュータ上で稼動するとき、ここで説明した方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0171】
本発明の方法の別の実施形態は、その上に記録された、ここで説明された方法の1つを実行するためのコンピュータプログラムを含む、データキャリア(または、デジタル格納媒体、または、コンピュータ読み込み可能な媒体)ある。
【0172】
本発明の方法の別の実施形態は、ここで説明された方法の1つを実行するためのコンピュータプログラムを表示するデータストリームまたは信号系列である。データストリームまたは信号系列は、データ通信接続、例えば、インターネットを通して、伝送されるように構成されている。
【0173】
別の実施形態は、ここで説明された方法の1つを実行するように構成された、または適合させた処理手段(例えば、コンピュータ、または、プログラム可能論理回路装置)を含む。
【0174】
別の実施形態は、ここで説明された方法の1つを実行するためのコンピュータプログラムをインストールしたコンピュータを含む。
【0175】
いくつかの実施形態において、プログラム可能論理回路装置(例えば、電界プログラマブルゲートアレイ)は、ここで説明された方法のいくつかの、または、全ての機能を実行するように使用される。いくつかの実施形態において、電界プログラマブルゲートアレイは、ここで説明された方法の1つを実行するために、マイクロ処理器と協働する。