(58)【調査した分野】(Int.Cl.,DB名)
前記第1のオーディオフレームが、前記第1のオーディオフレームおよび前記第2のオーディオフレームの処理の順序で、前記第2のオーディオフレームの直前に連続して先行する、請求項1に記載の方法。
利得成形調整された合成ハイバンド信号を生成するために、前記サンプルの第3のセットを、前記デバイスの利得成形回路によってスケーリングするステップであり、前記サンプルの第3のセットが、前記スケーリングされたサンプルのターゲットセットと、前記サンプルの第2のセットのうちの1つまたは複数のサンプルとに基づく、ステップをさらに含む、請求項1に記載の方法。
前記サンプルの第1のセットおよび前記サンプルの第2のセットが、前記デバイスの励起生成器、線形予測合成器、および後処理ユニットを使用してローバンド励起信号に基づいて生成された合成ハイバンド信号に対応する、請求項1に記載の方法。
前記サンプルの第1のセットおよび前記サンプルの第2のセットが、励起生成器を使用してローバンド励起信号に基づいて生成されるハイバンド励起信号に対応する、請求項1に記載の方法。
前記デバイスのメモリに前記サンプルの第1のセットを記憶するステップであり、前記サンプルの第2のセットの前記第1のサブセットが前記メモリに結合されたセレクタによって選択される、ステップをさらに含む、請求項1に記載の方法。
前記サンプルのターゲットセットが、前記第1のオーディオフレームと前記第2のオーディオフレームとの間のフレーム間オーバーラップの推定された長さに関連付けられたサンプルの数に基づいて選択される、請求項1に記載の方法。
前記フレーム間オーバーラップが、前記第1のオーディオフレームによって直接影響を受けるとともに前記第2のオーディオフレームにおいて使用される、前記第1のオーディオフレームと前記第2のオーディオフレームとの間の境界の両側のサンプルの総数に基づく、請求項9に記載の方法。
前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを決定するステップであり、前記サンプルのターゲットセットが、前記スケールファクタに基づいてスケーリングされる、ステップをさらに含む、請求項1に記載の方法。
前記第2のエネルギーパラメータと前記第1のエネルギーパラメータとの比率を決定するステップと、前記スケールファクタを生成するために前記比率に平方根演算を実行するステップとをさらに含む、請求項11に記載の方法。
スケーリングされたサンプルのターゲットセットと、前記サンプルの第2のセットのうちの1つまたは複数のサンプルとに基づくサンプルの第3のセットに基づいて、利得成形調整された合成ハイバンド信号を生成するように構成された利得成形回路をさらに含む、請求項16に記載の装置。
前記スケーラが、前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを生成し、前記スケールファクタに基づいて前記サンプルのターゲットセットをスケーリングするようにさらに構成される、請求項16に記載の装置。
前記メモリに結合された回路をさらに含み、前記回路が、前記サンプルの第1のセットおよび前記サンプルの第2のセットを前記メモリに提供するように構成される、請求項16に記載の装置。
前記ウィンドウワが、前記第1のオーディオフレームと前記第2のオーディオフレームとの間のフレーム間オーバーラップの推定された長さに関連付けられたサンプルの数に基づいて前記サンプルのターゲットセットを生成するようにさらに構成される、請求項16に記載の装置。
前記フレーム間オーバーラップが、前記第1のオーディオフレームによって直接影響を受けるとともに前記第2のオーディオフレームにおいて使用される、前記第1のオーディオフレームと前記第2のオーディオフレームとの間の境界の両側のサンプルの総数に基づく、請求項23に記載の装置。
前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを決定するように構成されたスケールファクタ決定器であり、前記サンプルのターゲットセットが、前記スケールファクタに基づいてスケーリングされる、スケールファクタ決定器をさらに含む、請求項16に記載の装置。
前記スケールファクタ決定器が、前記スケールファクタの第1の値から前記スケールファクタの第2の値への平滑な利得遷移を使用して前記サンプルのターゲットセットをスケーリングするようにさらに構成される、請求項25に記載の装置。
前記スケールファクタ決定器が、前記第2のエネルギーパラメータと前記第1のエネルギーパラメータとの比率を決定し、前記スケールファクタを生成するために、前記比率に平方根演算を実行するようにさらに構成される、請求項25に記載の装置。
前記動作が、利得成形調整された合成ハイバンド信号を生成するためにサンプルの第3のセットをスケーリングすることであり、前記サンプルの第3のセットが、前記スケーリングされたサンプルのターゲットセットと、前記サンプルの第2のセットのうちの1つまたは複数のサンプルとに基づく、スケーリングすることをさらに含む、請求項30に記載の非一時的コンピュータ可読記憶媒体。
前記サンプルの第1のセットおよび前記サンプルの第2のセットが、励起生成器、線形予測合成器、または後処理ユニットを使用してローバンド励起信号に基づいて生成される合成ハイバンド励起信号に対応する、請求項30に記載の非一時的コンピュータ可読記憶媒体。
前記サンプルのターゲットセットが、前記第1のオーディオフレームと前記第2のオーディオフレームとの間のフレーム間オーバーラップの推定された長さに関連付けられたサンプルの数に基づいて選択される、請求項30に記載の非一時的コンピュータ可読記憶媒体。
前記フレーム間オーバーラップが、前記第1のオーディオフレームによって直接影響を受けるとともに前記第2のオーディオフレームにおいて使用される、前記第1のオーディオフレームと前記第2のオーディオフレームとの間の境界の両側のサンプルの総数に基づく、請求項37に記載の非一時的コンピュータ可読記憶媒体。
前記動作が、前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを決定することをさらに含み、前記サンプルのターゲットセットが、前記スケールファクタに基づいてスケーリングされる、請求項30に記載の非一時的コンピュータ可読記憶媒体。
サンプルの第3のセットを受信し、前記サンプルの第3のセットに基づいて利得成形調整された合成ハイバンド信号を生成するための手段であり、前記サンプルの第3のセットが、前記スケーリングされたサンプルのターゲットセットと、前記サンプルの第2のセットのうちの1つまたは複数のサンプルとに基づく、手段をさらに含む請求項44に記載の装置。
決定し、スケーリングするための前記手段が、前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを生成し、前記スケールファクタに基づいて前記サンプルのターゲットセットをスケーリングするように構成される、請求項44に記載の装置。
前記サンプルのターゲットセットおよび前記サンプルの参照セットを生成するための前記手段が、前記サンプルの第2のセットの前記第1のサブセットにさらに基づいて前記サンプルの参照セットを生成するように構成される、請求項44に記載の装置。
前記サンプルのターゲットセットおよび前記サンプルの参照セットを生成するための前記手段が、前記第1のオーディオフレームと前記第2のオーディオフレームとの間のフレーム間オーバーラップの推定された長さに関連付けられたサンプルの数に基づいて前記サンプルのターゲットセットを生成するように構成される、請求項44に記載の装置。
前記フレーム間オーバーラップが、前記第1のオーディオフレームによって直接影響を受けるとともに前記第2のオーディオフレームにおいて使用される、前記第1のオーディオフレームと前記第2のオーディオフレームとの間の境界の両側のサンプルの総数に基づく、請求項51に記載の装置。
前記サンプルのターゲットセットおよび前記サンプルの参照セットに基づいてスケールファクタを決定するための手段であり、前記サンプルのターゲットセットが、前記スケールファクタに基づいてスケーリングされる、手段をさらに含む、請求項44に記載の装置。
前記スケールファクタを決定するための前記手段が、前記第2のエネルギーパラメータと前記第1のエネルギーパラメータとの比率を決定し、前記スケールファクタを生成するために、前記比率に平方根演算を実行するようにさらに構成される、請求項53に記載の装置。
前記サンプルのターゲットセットおよび前記サンプルの参照セットを生成するための前記手段が、第1のウィンドウに基づいて前記サンプルのターゲットセットを生成し、第2のウィンドウに基づいて前記サンプルの参照セットを生成するように構成される、請求項44に記載の装置。
【発明を実施するための形態】
【0015】
図1は、デバイス100のいくつかの例示的な態様を示す。例示のために、デバイス100は、デバイス100に結合されたトランシーバを使用してワイヤレス通信ネットワーク内でデータパケットを送受信するワイヤレス通信デバイスなど、電子デバイスのエンコーダ内またはデコーダ内に組み込まれ得る。他の場合には、デバイス100は、ワイヤードデバイス(たとえば、例示的な例として、モデムまたはセットトップボックス)など、別の電子デバイス内に組み込まれ得る。
【0016】
いくつかの実装形態では、デバイス100は、ワイヤレス通信ネットワーク内で通信するためにワイヤレス通信デバイスによって使用される3GPP EVS規格などの3GPP規格に準拠して動作する。3GPP EVS規格は、デコーダによって実行されるいくつかの復号動作を指定し得、復号動作は、ワイヤレス通信ネットワークを介して受信された情報を復号するためにデバイス100によって実行され得る。
図1のいくつかの例は、デコーダを参照して説明されるが、
図1(および本明細書で説明される他の例)を参照して説明した態様は、
図7を参照してさらに説明されるものなど、エンコーダで実施されてもよいことに留意されたい。さらに、いくつかの実装形態では、本開示の態様は、データ符号化、データ復号、またはその両方のためのムービングピクチャエキスパートグループ(MPEG)プロトコルなど1つまたは複数の他のプロトコルに関連して実装され得る。
【0017】
デバイス100は、メモリ120に結合された回路112を含み得る。回路112は、例示的な例として、励起生成器、線形予測合成器、または後処理ユニットのうちの1つまたは複数を含み得る。例示的な例として、メモリ120は、バッファを含み得る。
【0018】
デバイス100は、スケールファクタ決定器140に結合されたウィンドウワ128をさらに含み得る。スケールファクタ決定器140は、スケーラ148に結合され得る。スケーラ148は、ウィンドウワ128および結合器156に結合され得る。結合器156は、利得成形回路164などの利得成形処理モジュールに結合され得る。利得成形回路164は、(たとえば、デバイス100のデコーダの実装に関連して)利得成形調整器、または(たとえば、デバイス100に対応する1つまたは複数の特徴を有するエンコーダに関連して)利得成形情報を生成する利得成形パラメータ生成器を含み得る。
【0019】
動作時には、回路112はローバンド励起信号104に応答してもよい。回路112は、ローバンド励起信号104を使用して生成されたハイバンド励起信号、および擬似ランダム雑音108を使用したハイバンドエンベロープ変調された雑音に基づいて、合成ハイバンド信号などの合成ハイバンド信号116を生成するように構成されてもよい。合成ハイバンド信号116は、オーディオ信号(たとえば、語音を表す信号)に関連するオーディオフレーム(たとえば、ワイヤレス通信ネットワークを使用してワイヤレス通信デバイスによって受信されたデータパケット)のサンプルのセットに対応し得る。たとえば、回路112は、サンプルの第1のセット124およびサンプルの第2のセット126を生成するように構成され得る。サンプルの第1のセット124およびサンプルの第2のセット126は、回路112の励起生成器、回路112の線形予測合成器、および回路112の後処理ユニットを使用してローバンド励起信号104に基づいて生成された合成ハイバンド信号に対応し得る。別の実装形態では、サンプルの第1のセット124およびサンプルの第2のセット126は、回路112の励起生成器を使用してローバンド励起信号(たとえば、ローバンド励起信号104)に基づいて生成されるハイバンド励起信号に対応する。回路112は、サンプルの第1のセット124およびサンプルの第2のセット126をメモリ120に提供するように構成され得る。メモリ120は、サンプルの第1のセット124およびサンプルの第2のセット126を受信するように構成され得る。
【0020】
サンプルの第1のセット124は第1のオーディオフレームに関連付けられ、サンプルの第2のセット126は第2のオーディオフレームに関連付けられ得る。第1のオーディオフレームは、第1の時間間隔に関連付けられ(たとえば、その間にデバイス100によって処理される)、サンプルの第2のセット126は、第1の時間間隔の後に生じる第2の時間間隔に関連付けられ得る(たとえば、その間にデバイス100によって処理される)。第1のオーディオフレームは、「前のオーディオフレーム」と呼ばれ得、第2のオーディオフレームは、「現在のオーディオフレーム」と呼ばれ得る。しかしながら、「前の」および「現在の」は、オーディオ信号における連続的なフレーム間を区別するために使用されるラベルであり、必ずしもリアルタイムの合成制限を示すものではないことを理解されたい。いくつかの場合には、サンプルの第2のセット126が、デバイス100によって処理される信号の最初の(または第1の)オーディオフレームに対応する場合、サンプルの第1のセット124はゼロの値を含み得る(たとえば、メモリ120は信号を処理する前にゼロパディング技法を使用してデバイス100によって初期化され得る)。
【0021】
いくつかのプロトコルに関連して、オーディオフレーム間の境界は、前のオーディオフレームから現在のオーディオフレームへのエネルギー「漏れ」を引き起こすことがある。非限定的な例として、プロトコルは、利得成形デバイス(利得成形回路164など)への入力が、前のオーディオフレームの第1の数のサンプル(たとえば、例示的な例として、最後の20個のサンプル)を、現在のオーディオフレームの第2の数のサンプル(たとえば、例示的な例として、320個のサンプル)と連結することによって生成されることを指定し得る。この例では、第1の数のサンプルは、サンプルの第1のセット124に対応する。別の例として、現在のオーディオフレームの特定の数のサンプル(たとえば、例示的な例として、最初の10個のサンプル)は、前のオーディオフレームによって影響を受け得る(たとえば、線形予測コーディング合成動作および/または後処理動作で使用されるフィルタメモリなどの回路112の動作による)。そのような「漏れ」(またはフレーム間オーバーラップ)は、サンプルのセット124、126に基づいて生成される時間領域オーディオ波形における振幅差(または「ジャンプ」)をもたらし得る。これらの非限定的な例示的な例では、メモリ120は、(サンプルの第2のセット126など)現在のオーディオフレームの320個のサンプルと連結された(サンプルの第1のセット124など)前のオーディオフレームの最後の20個のサンプルを記憶するように構成され得る。
【0022】
ウィンドウワ128は、メモリ120に記憶されたサンプルにアクセスし、サンプルのターゲットセット132およびサンプルの参照セット136を生成するように構成され得る。例示のために、ウィンドウワ128は、第1のウィンドウを使用してサンプルのターゲットセット132を生成し、第2のウィンドウを使用してサンプルの参照セット136を生成するように構成され得る。例示的な例では、ウィンドウワ128は、サンプルのターゲットセット132を生成するために、サンプルの第1のセット124、およびサンプルの第2のセット126の第1のサブセットを選択し、サンプルの参照セット136を生成するために、サンプルの第2のセット126の第2のサブセットを選択するように構成される。この例では、ウィンドウワ128は、メモリ120にアクセスするように構成されたセレクタ(たとえば、マルチプレクサ)を含み得る。この場合、第1のウィンドウと第2のウィンドウとは重複しない(および、サンプルのターゲットセット132とサンプルの参照セット136とは1つまたは複数のサンプルを「共有」しない)。1つまたは複数のサンプルを「共有」しないことによって、いくつかの場合、デバイス100の実装を単純化することができる。たとえば、ウィンドウワ128は、サンプルのターゲットセット132およびサンプルの参照セット136を選択するように構成された選択論理を含み得る。この例では、ウィンドウワ128によって実行される「ウィンドウ処理」動作は、サンプルのターゲットセット132およびサンプルの参照セット136を選択することを含み得る。
【0023】
別の例示的な実装形態では、サンプルのターゲットセット132およびサンプルの参照セット136は各々、サンプルの第2のセット126の第1のサブセットの「重み付けされた」サンプル(たとえば、サンプルの第1のセット124とサンプルの第2のセット126を分離するフレーム境界への近接性に基づいて重み付けされたサンプル)を含む。この例示的な例では、ウィンドウワ128は、サンプルの第1のセット124、サンプルの第2のセット126の第1のサブセット、およびサンプルの第2のセット126の第2のサブセットに基づいて、サンプルのターゲットセット132およびサンプルの参照セット136を生成するように構成される。さらに、この例では、第1のウィンドウと第2のウィンドウとが重複する(および、サンプルのターゲットセット132とサンプルの参照セット136とが1つまたは複数のサンプルを「共有」している)。「共有」サンプルは、オーディオフレーム境界へのサンプルの近接性に基づいて「重み付け」され得る(いくつかの場合には、デバイス100によって実行されるいくつかの動作の精度を向上させ得る)。ウィンドウワ128に関連付けられ得るいくつかの例示的な態様について、
図2および
図3を参照してさらに説明する。第1のウィンドウおよび第2のウィンドウを使用する重み付けは、
図4および
図5を参照してさらに説明するものなど、スケールファクタ決定器140によって実行され得る。
【0024】
スケールファクタ決定器140は、サンプルのターゲットセット132およびサンプルの参照セット136をウィンドウワ128から受信するように構成され得る。スケールファクタ決定器140は、サンプルのターゲットセット132およびサンプルの参照セット136に基づいてスケールファクタ144を決定するように構成され得る。特定の例示的な例では、スケールファクタ決定器140は、サンプルのターゲットセット132に関連付けられた第1のエネルギーパラメータを決定し、サンプルの参照セット136に関連付けられた第2のエネルギーパラメータを決定し、第2のエネルギーパラメータと第1のエネルギーパラメータとの比率を決定し、スケールファクタ144を生成するために比率に平方根演算を実行するように構成される。スケールファクタ決定器140のいくつかの例示的な特徴は、
図4および
図5を参照してさらに説明される。
【0025】
スケーラ148は、サンプルのターゲットセット132およびスケールファクタ144を受信するように構成され得る。スケーラ148は、スケールファクタ144に基づいてサンプルのターゲットセット132をスケーリングし、スケーリングされたサンプルのターゲットセット152を生成するように構成され得る。
【0026】
結合器156は、スケーリングされたサンプルのターゲットセット152を受信し、スケーリングされたサンプルのターゲットセット152に基づいて、およびサンプルの第2のセット126の1つまたは複数のサンプル130にさらに基づいてサンプルの第3のセット160を生成するように構成され得る(本明細書ではサンプルの第2のセット126の「残りの」サンプルとも呼ばれる)。たとえば、1つまたは複数のサンプル130は、スケーラ148に提供されず、スケーラ148によってスケーリングされないサンプルの第2のセット126の「スケーリングされていない」サンプルを含み得る。
【0027】
図1の例では、ウィンドウワ128は、1つまたは複数のサンプル130を結合器156に提供するように構成され得る。代替的にまたは追加として、結合器156は、たとえば、メモリ120と結合器156との間の接続を使用してメモリ120にアクセスすることによって、別の技法を使用して1つまたは複数のサンプル130を受信するように構成され得る。デバイス100によって実行されるスケーリング動作は、サンプルのセット124、126のエネルギーの比に基づき得るので、サンプルのセット124、126に対応するオーディオフレーム間のエネルギーレベルの不連続性は、「平滑化」され得る。エネルギーの不連続性の「平滑化」は、サンプルのセット124、126に基づいて生成されたオーディオ信号の品質を向上させ得る(たとえば、エネルギーの不連続性から生じるオーディオ信号におけるアーティファクトを低減または排除することによって)。
【0028】
利得成形回路164は、サンプルの第3のセット160を受信するように構成される。たとえば、利得成形回路164は、(たとえば、デバイス100を含むエンコーダによって実行される符号化プロセスに関連して)サンプルの第3のセット160に基づいて利得成形を推定するように構成され得る。代替的にまたは追加として、利得成形回路164は、(たとえば、デコーダにおいて実行される復号処理、またはデバイス100を含むエンコーダにおいて実行される符号化処理のいずれかに関連して、利得成形を適用することによって)サンプルの第3のセット160に基づいて利得成形調整された合成ハイバンド信号168を生成するように構成され得る。たとえば、利得成形回路164は、利得成形調整された合成ハイバンド信号168を生成するために、(たとえば、3GPP EVSプロトコルに従って)サンプルの第3のセット160を利得成形するように構成される。例示的な一例として、利得成形回路164は、3GPP technical specification number 26.445, section 6.1.5.1.12, version 12.4.0.によって指定される1つまたは複数の動作を使用して、サンプルの第3のセット160を利得成形するように構成され得る。代替的にまたは追加として、利得成形回路164は、1つまたは複数の他の動作を使用して利得成形を実行するように構成され得る。
【0029】
サンプルのターゲットセット132は、サンプルの第1のセット124のエネルギーレベルによって直接影響を受けるサンプルの第1のセット124とサンプルの第2のセット126の両方の1つまたは複数のサンプルを含むので、エネルギー比に基づく
図1のデバイス100によって実行されるスケーリングは、サンプルの第1のセット124とサンプルの第2のセット126との間のフレーム間オーバーラップ(または「漏れ」)に関連付けられたエネルギー不連続性効果によるアーティファクトを補償し得る。フレーム間オーバーラップにおけるエネルギーの不連続性の補償は、利得成形調整された合成ハイバンド信号168における不連続性(または「ジャンプ」)を低減し、デバイス100を含む電子デバイスにおいて、サンプルのセット124、126に基づいて生成されるオーディオ信号の品質を向上させる。
【0030】
図2は、
図1のデバイス100などのデバイスの動作に関連するオーディオフレーム200の例示的な例を示す。オーディオフレーム200は、第1のオーディオフレーム204(たとえば、前のオーディオフレームに対応し得る、
図1を参照して説明した第1のオーディオフレーム)、および第2のオーディオフレーム212(たとえば、現在のオーディオフレームに対応し得る、
図1を参照して説明した第2のオーディオフレーム)を含み得る。
図2の例示的な例は、第1のオーディオフレーム204および第2のオーディオフレーム212が、境界208などのフレーム境界によって分離され得ることを示す。
【0031】
第1のオーディオフレーム204は、第2のオーディオフレーム212に先行し得る。たとえば、第1のオーディオフレーム204は、第1のオーディオフレーム204および第2のオーディオフレーム212の処理の順序(たとえば、例示的な例として、第1のオーディオフレーム204および第2のオーディオフレーム212が
図1のメモリ120からアクセスされる順序)で、第2のオーディオフレーム212の直前に連続して先行してもよい。
【0032】
第1のオーディオフレーム204は、サンプルの第1のセット220(たとえば、
図1のサンプルの第1のセット124)などの第1の部分を含み得る。第2のオーディオフレーム212は、サンプルの第2のセット224(たとえば、
図1のサンプルの第2のセット126)などの第2の部分を含み得る。
【0033】
サンプルの第2のセット224は、第1のサブセット232(たとえば、
図1を参照して説明した第1のサブセット)および第2のサブセット236(たとえば、
図1を参照して説明した第2のサブセット)を含み得る。例示的な非限定的な例として、10次線形予測コーディングが使用される場合、第1のサブセット232は、第2のオーディオフレーム212の最初の10個のサンプルを含み得、第2のサブセット236は、第2のオーディオフレーム212の次の20個のサンプルを含み得る。代替の例示的な非限定的な例では、第1のサブセット232は、第2のオーディオフレーム212の最初の10個のサンプルを含み得、第2のサブセット236は、第2のオーディオフレーム212の次の30個のサンプルを含み得る。他の実装形態では、第1のサブセット232および/または第2のサブセット236は、第2のオーディオフレーム212の異なるサンプルを含み得る。
【0034】
図2は、サンプルのターゲットセット216(たとえば、
図1のサンプルのターゲットセット132)および1つまたは複数のサンプル240(たとえば、
図1の1つまたは複数のサンプル130)の例をさらに示す。1つまたは複数のサンプル240は、第1のサブセット232に含まれていないサンプルの第2のセット224の1つまたは複数のサンプル(本明細書では、サンプルの第2のセット224の1つまたは複数の「残りの」サンプルとも呼ばれる)を含み得る。
図2の例では、サンプルのターゲットセット216は、サンプルの第1のセット220および第1のサブセット232を含む。例示的な非限定的な例として、サンプルのターゲットセット216は、第1のオーディオフレーム204の最後の20個のサンプルおよび第2のオーディオフレーム212の最初の10個のサンプルを含み得る。他の実装形態では、サンプルのターゲットセット220は、第1のオーディオフレーム204および/または第2のオーディオフレーム212の異なるサンプルを含み得る。
【0035】
図2は、サンプルの参照セット228(たとえば、
図1のサンプルの参照セット136)の一例も示す。
図2の例では、サンプルの参照セット228は、第1のサブセット232および第2のサブセット236を含む。この場合、サンプルのターゲットセット216およびサンプルの参照セット228は、第1のサブセット232を「共有」し得る。他の例では、サンプルのターゲットセット216は、
図2に示すものとは異なるサンプルを含み得る。たとえば、別の実装形態では、サンプルの参照セット228は、第2のサブセット236を含み、第1のサブセット232を含まない(
図2では、サンプルの参照セット228を表す部分的な破線として示されている)。この例では、サンプルのターゲットセット216およびサンプルの参照セット228は、1つまたは複数のサンプルを「共有」しない。いくつかの実装形態では、サンプルのターゲットセット216におけるサンプル数は、サンプルの参照セット228におけるサンプル数に等しい。
【0036】
いくつかの実装形態では、メモリ120に記憶されたサンプルのセットは、前のサンプルのセットからのサンプルを含み得る。たとえば、第1のオーディオフレーム204の一部(たとえば、サンプルの第1のセット220)は、サンプルの第2のセット224と連結され得る。代替的にまたは追加として、いくつかの場合には、回路112によって実行される線形予測コーディングおよび/または後処理動作によって、第1のサブセット232のサンプル値は、第1のオーディオフレーム204(またはその一部)のサンプル値に依存し得る。したがって、サンプルのターゲットセット216は、第1のオーディオフレーム204と第2のオーディオフレーム212との間のフレーム間「オーバーラップ」に対応し得る。フレーム間オーバーラップは、第1のオーディオフレーム204によって直接影響され、第2のオーディオフレーム212の処理中に使用される、境界208の両側のサンプルの総数に基づき得る。
【0037】
再び
図1を参照すると、ウィンドウワ128は、第1のオーディオフレーム204と第2のオーディオフレーム212との間のフレーム間オーバーラップの長さに関連付けられたサンプル数に基づいて、サンプルのターゲットセット132および/またはサンプルのターゲットセット216を生成するように構成され得る。例示のために、長さは30サンプルまたは別のサンプル数であってもよい。いくつかの場合において、長さは、(たとえば、フレーム長変化、線形予測コーディング順序変更、および/または別のパラメータ変化に基づいて)デバイス100の動作中に動的に変化してもよい。ウィンドウワ128は、(たとえば、3GPP EVSプロトコルなどのプロトコルに基づいて)フレーム間オーバーラップの長さ(または推定長さ)を識別し、ウィンドウワ128に長さの指示を提供する別のデバイス(たとえば、プロセッサ)に応答し得る、またはその中に組み込まれ得る。ウィンドウワ128は、たとえばメモリにおいて、および/またはプロセッサによる命令の実行に関連して、フレーム間オーバーラップの長さおよび/または位置の指示を記憶するように構成され得る。
【0038】
フレーム間オーバーラップの長さに基づいてサンプルのターゲットセット216をスケーリングすることによって、デバイスは、境界208に関連付けられたフレーム間オーバーラップを補償し得る。たとえば、第1のオーディオフレーム204と第2のオーディオフレーム212との間のエネルギー差は、「平滑化」され得、境界208に対応する位置におけるオーディオ信号での振幅「ジャンプ」を低減または排除することができる。「平滑化された」信号の一例について、
図3を参照してさらに説明する。
【0039】
図3は、グラフ310、グラフ320、およびグラフ330の例示的な例を示す。グラフ310、320、330は、
図1のデバイス100などのデバイスの動作に関連付けられ得る。グラフ310、320、330の各々において、横軸はサンプル数nを示し、nは0以上の整数である。グラフ310、320の各々において、縦軸はウィンドウ値を示す。グラフ330において、縦軸はスケールファクタ値を示す。
【0040】
グラフ310は、第1のウィンドウw1(n)および第2のウィンドウw2(n)の第1の例を示す。再び
図1および
図2を参照すると、ウィンドウワ128は、(たとえば、第1のウィンドウw1(n)を使用してサンプルの第1のセット220および第1のサブセット232を選択することによって)第1のウィンドウw1(n)に基づいて、サンプルのターゲットセット132を生成するように構成され得る。ウィンドウワ128は、(たとえば、第2のウィンドウw2(n)を使用して第2のサブセット236を選択することによって)第2のウィンドウw2(n)に基づいてサンプルの参照セット136を生成するように構成され得る。この例示的な例では、ウィンドウw1(n)およびw2(n)は、1.0の値を有することに留意されたい。これらのウィンドウは、ウィンドウ処理が信号を変更しない場合(たとえば、サンプルのターゲットセットおよびサンプルの参照セットが、ウィンドウワ128またはスケールファクタ決定器140によるスケーリングなしに、
図1のウィンドウワ128およびスケールファクタ決定器140によって選択される)を示す。この場合、「ウィンドウ処理された」ターゲットセットは、サンプルのターゲットセット132またはサンプルのターゲットセット216と同じ値を含み、「ウィンドウ処理された」サンプルの参照セットは、サンプルの参照セット136およびサンプルの参照セット228と同じ値を含むことになる。
【0041】
グラフ320は、第1のウィンドウw1(n)および第2のウィンドウw2(n)の第2の例を示す。ウィンドウワ128は、(たとえば、サンプルのターゲットセット132を生成するために、サンプルの第1のセット220、および第1のサブセット232を選択することによって、重み付けされたサンプルのターゲットセットを生成するために、第1のウィンドウw1(n)に従って、サンプルの第1のセット220および第1のサブセット232に重み付けすることによって)第1のウィンドウw1(n)に基づいて、サンプルのターゲットセット132を生成するように構成され得る。ウィンドウワ128は、(たとえば、サンプルの参照セットを生成するために、サブセット232、236を選択することによって、および重み付けされたサンプルの参照セットを生成するために、第2のウィンドウw2(n)に従って、サブセット232、236に重み付けをすることによって)第2のウィンドウw2(n)に基づいて、サンプルの参照セット136を生成するように構成され得る。
【0042】
グラフ330は、スケーラ148によって実行され得るスケーリングプロセスの態様を示す。グラフ330において、サンプルのターゲットセット(たとえば、ウィンドウ選択されたサンプルのターゲットセット132、216のうちのいずれか)に適用されるスケールファクタ(たとえば、スケールファクタ144)の値は、境界208付近で徐々に変化する(グラフ330において振幅差平滑化334として表される)。振幅差平滑化334は、スケールファクタ144に基づいてスケーリングから1のスケールファクタ(またはスケーリングなし)への利得遷移または「テーパ」(たとえば平滑線形利得遷移など平滑な利得遷移)を可能にし得、これは、境界208付近のスケーリングの量における不連続性(たとえば、「ジャンプ」)を回避し得る。この例では、サンプルのターゲットセット132、216のいずれかを、スケールファクタの第1の値(グラフ330の例では「スケールファクタ」)からスケールファクタの第2の値(グラフ330の例では「1」)への線形利得遷移を使用してスケーリングされ得る。グラフ330は説明のために提供されており、他の例は本開示の範囲内にあることに留意されたい。たとえば、グラフ330は、スケールファクタの第1の値がスケールファクタの第2の値よりも大きい可能性があることを示しているが、他の例示的な例では、スケールファクタの第1の値は、スケールファクタの第2の値以下であってもよい。さらに説明するために、再び
図1を参照すると、スケールファクタ決定器140は、スケールファクタ144の第1の値からスケールファクタ144の第2の値への線形利得遷移を使用して、サンプルのターゲットセット132をスケーリングするように構成され得る。
【0043】
グラフ330は、特定の持続時間(20個のサンプル)および振幅差平滑化334の勾配を示しているが、振幅差平滑化334の持続時間および/または勾配は変化し得ることを諒解されたい。一例として、振幅差平滑化334の持続時間および/または勾配は、フレーム間オーバーラップの量および第1および第2のスケールファクタの特定の値に依存し得る。さらに、いくつかの適用例では、振幅差平滑化334は、非線形(たとえば、例示的な例として、指数平滑化、対数平滑化、または多項式平滑化、たとえばスプライン補間平滑化など)であってもよい。
【0044】
スケーリング「テーパ」を使用して振幅差平滑化334を可能にすることによって、オーディオ信号に関連付けられたオーディオフレーム間の振幅差を「平滑化」することができる。平滑化振幅差は、電子デバイスでのオーディオ信号の品質を向上させ得る。
【0045】
図4は、スケールファクタ決定器400の例示的な一例のブロック図である。スケールファクタ決定器400は、
図1のデバイス100内に一体化され得る。たとえば、スケールファクタ決定器400は、
図1のスケールファクタ決定器140に対応し得る。
【0046】
スケールファクタ決定器400は、比率回路420に結合されたエネルギーパラメータ決定器412を含み得る。スケールファクタ決定器400は、比率回路420に結合された平方根回路432をさらに含み得る。
【0047】
動作中、エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセット404(たとえば、ウィンドウ処理されたサンプルのターゲットセット132、216)に応答し得る。エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルの参照セット408(たとえば、サンプルの参照セット136、228)にも応答し得る。
【0048】
エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセット404に関連付けられた第1のエネルギーパラメータ416を決定するように構成され得る。たとえば、エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセット404の各サンプルを2乗し、2乗値を合計して第1のエネルギーパラメータ416を生成するように構成され得る。
【0049】
エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルの参照セット408に関連付けられた第2のエネルギーパラメータ424を決定するように構成され得る。たとえば、エネルギーパラメータ決定器412は、ウィンドウ処理またはウィンドウ選択されたサンプルの参照セット408の各サンプルを2乗し、2乗値を合計して第2のエネルギーパラメータ424を生成するように構成され得る。
【0050】
比率回路420は、エネルギーパラメータ416、424を受信するように構成され得る。比率回路420は、たとえば、第2のエネルギーパラメータ424を第1のエネルギーパラメータ416で除算するなどして、比率428を決定するように構成され得る。
【0051】
平方根回路432は、比率428を受信するように構成され得る。平方根回路432は、スケールファクタ440を生成するために比率428に平方根演算を実行するように構成され得る。スケールファクタ440は、
図1のスケールファクタ144に対応し得る。
【0052】
図4は、ウィンドウ処理されたサンプルのターゲットセットおよびウィンドウ処理されたサンプルの参照セットに基づいて、スケールファクタが決定され得ることを示す。スケールファクタは、現在のオーディオフレーム内のサンプルと比較して、前のオーディオフレーム内、または前のオーディオフレームによって直接影響を受けるサンプル間のエネルギー比を表す。スケールファクタは、フレーム間オーバーラップを補償するために、サンプルのターゲットセットに適用され、サンプルのターゲットセットとサンプルの参照セットとの間のエネルギーの不連続性を低減または排除し得る。
【0053】
図5は、デバイスの動作の方法500の一例を示すフローチャートである。たとえば、デバイスは、
図1のデバイス100に対応し得る。
【0054】
方法500は、510において、サンプルの第1のセット(たとえば、サンプルの第1のセット124、220のいずれか)およびサンプルの第2のセット(たとえば、サンプルの第2のセット126、224のいずれか)を受信するステップを含む。サンプルの第1のセットは、第1のオーディオフレーム(たとえば、第1のオーディオフレーム204)の一部に対応し、サンプルの第2のセットは、第2のオーディオフレーム(たとえば、第2のオーディオフレーム212)に対応する。
【0055】
方法500は、520において、サンプルの第1のセット、およびサンプルの第2のセットの第1のサブセットに基づいて、サンプルのターゲットセットを生成するステップをさらに含む。たとえば、サンプルのターゲットセットは、サンプルのターゲットセット132、216、および404のいずれかに対応し得、第1のサブセットは、第1のサブセット232に対応し得る。いくつかの実装形態では、サンプルのターゲットセットは第1のウィンドウに基づいて生成され、サンプルの参照セットは第2のウィンドウに基づいて生成され、第1のウィンドウは第2のウィンドウと重複する(たとえば、グラフ320に示されるように)。他の実施形態では、サンプルのターゲットセットは第1のウィンドウに基づいて生成され、サンプルの基準セットは第2のウィンドウに基づいて生成され、第1のウィンドウは第2のウィンドウと重複しない(たとえばグラフ310に示すように)。
【0056】
方法500は、530において、サンプルの第2のセットの第2のサブセットに少なくとも部分的に基づいて、サンプルの参照セットを生成するステップをさらに含む。たとえば、サンプルの参照セットは、サンプルの参照セット136、228、および408のいずれかに対応し得、第2のサブセットは、第2のサブセット236に対応し得る。いくつかの実施形態では、サンプルの参照セットは、
図2に示すような第1のサブセット(または第1のサブセットに対応する重み付けされたサンプル)を含む。この場合、サンプルの参照セットは、サンプルの第2のセットの第1のサブセットに基づいてさらに生成され得る。他の実施形態では、サンプルの参照セットは、グラフ310に対応する実装の場合のように、第1のサブセットを含まない。
【0057】
方法500は、540において、スケーリングされたサンプルのターゲットセットを生成するために、サンプルのターゲットセットをスケーリングするステップをさらに含む。たとえば、スケーリングされたサンプルのターゲットセットは、スケーリングされたサンプルのターゲットセット152に対応し得る。
【0058】
方法500はさらに、550において、スケーリングされたサンプルのターゲットセット、およびサンプルの第2のセットの1つまたは複数のサンプルに基づいて、サンプルの第3のセットを生成するステップをさらに含む。たとえば、サンプルの第3のセットは、サンプルの第3のセット160に対応し、1つまたは複数のサンプルは、1つまたは複数のサンプル130に対応し得る。1つまたは複数のサンプルは、サンプルの第2のセットの1つまたは複数の残りのサンプルを含み得る。
【0059】
方法500は、デバイスの利得成形回路にサンプルの第3のセットを提供するステップをさらに含み得る。たとえば、利得成形回路は、利得成形回路164に対応し得る。いくつかの実装形態では、方法500は、随意に、たとえばデコーダの実装またはエンコーダの実装のいずれかに関連して、(たとえば、利得成形調整された合成ハイバンド信号168など)利得成形調整された合成ハイバンド信号を生成するために、利得成形回路によってサンプルの第3のセットをスケーリングするステップを含み得る。あるいは、方法500は、たとえばエンコーダの実装に関連して、サンプルの第3のセットに基づいて利得成形回路によって利得成形を推定するステップを含み得る。
【0060】
サンプルの第1のセットおよびサンプルの第2のセットは、(回路112を使用して)デバイスの励起生成器、線形予測合成器、および後処理ユニットを使用したローバンド励起信号に基づいて生成された合成ハイバンド信号に対応し得る。サンプルの第1のセットおよびサンプルの第2のセットは、デバイスの励起生成器を使用してローバンド励起信号(たとえば、ローバンド励起信号104)に基づいて生成されるハイバンド励起信号に対応し得る。
【0061】
方法500は、随意に、デバイスのメモリ(たとえば、メモリ120)にサンプルの第1のセットを記憶するステップを含み得、サンプルの第2のセットの第1のサブセットがメモリに結合されたセレクタによって(たとえば、ウィンドウワ128に含まれるセレクタによって)選択される。サンプルのターゲットセットは、第1のオーディオフレームと第2のオーディオフレームとの間のフレーム間オーバーラップの推定された長さに関連付けられたサンプルの数に基づいて選択され得る。フレーム間オーバーラップは、第1のオーディオフレームによって直接影響を受け、第2のオーディオフレームにおいて使用される、第1のオーディオフレームと第2のオーディオフレームとの間の境界(たとえば、境界208)の両側のサンプルの総数に基づき得る。
【0062】
方法500は、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセットを生成するステップと、ウィンドウ処理またはウィンドウ選択されたサンプルの参照セットを生成するステップと、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセットおよびウィンドウ処理またはウィンドウ選択されたサンプルの参照セットに基づいてスケールファクタ(たとえば、スケールファクタ144)を決定するステップであり、サンプルのターゲットセットがスケールファクタに基づいてスケーリングされる、ステップとを含み得る。サンプルのターゲットセットは、スケールファクタの第1の値からスケールファクタの第2の値への(たとえば、振幅差平滑化334に基づく)平滑な利得遷移を使用してスケーリングされ得る。いくつかの実装形態では、スケールファクタの第2の値は1.0の値をとり、第1の値は推定されたスケールファクタ440または144の値をとり得る。いくつかの実装形態では、スケールファクタを決定するステップは、ウィンドウ処理またはウィンドウ選択されたサンプルのターゲットセットに関連付けられた第1のエネルギーパラメータ(たとえば、第1のエネルギーパラメータ416)を決定するステップと、ウィンドウ処理またはウィンドウ選択されたサンプルの参照セットに関連付けられた第2のエネルギーパラメータ(たとえば、第2のエネルギーパラメータ424)を決定するステップとを含む。スケールファクタを決定するステップは、第2のエネルギーパラメータと第1のエネルギーパラメータとの比率(たとえば、比率428)を決定するステップ、およびスケールファクタを生成するために、比率に平方根演算を実行するステップも含み得る。
【0063】
方法500は、オーディオフレーム間のフレーム間オーバーラップを補償するために、サンプルのターゲットセットがスケーリングされ得ることを示す。たとえば、方法500は、境界208における第1のオーディオフレーム204と第2のオーディオフレーム212との間のフレーム間オーバーラップを補償するために実行され得る。
【0064】
さらに説明するために、例1および例2は、本明細書で説明する1つまたは複数の動作(たとえば、
図5の方法500の1つまたは複数の動作)を実行するためにプロセッサによって実行され得る命令に対応する擬似コードを示す。例1および例2の擬似コードは説明のために提供されており、パラメータは特定の用途に基づいて例1のものと異なり得ることを諒解されたい。
【0065】
例1において、「i」は、
図3を参照して説明した整数「n」に対応し得、「prev_energy」は、第1のエネルギーパラメータ416に対応し、「curr_energy」は、第2のエネルギーパラメータ424に対応し、「w1」は、グラフ310またはグラフ320に関して説明した第1のウィンドウw1(n)に対応し得、「w2」は、重複しないウィンドウを示すグラフ310を参照して説明した第2のウィンドウw2(n)に対応し、「synthesized_high_band」は、合成ハイバンド信号116に対応し、「scale_factor」は、スケールファクタ144に対応し、「shaped_shb_excitation」は、サンプルの第3のセット160に対応し、「actual_scale」は、グラフ330の縦軸に対応し得る(すなわち、グラフ330の「スケーリング」)。いくつかの代替の例示的な非限定的な例では、ウィンドウ「w1」および「w2」は、グラフ320に示されるように重複するように定義されてもよいことに留意されたい。
【0066】
例1
prev_energy = 0;
curr_energy = 0;
for(i = 0; i < 340; i++)
{
if(i<30) w1(i) = 1.0;
else w1(n) = 0;
if(i>=30 && i<60) w2(i) = 1.0;
else w2(n) = 0;
}
for(i = 0; i < 20 + 10; i++)
{
prev_energy += (w1[i]*synthesized_high_band[i])*(w1[i]*synthesized_high_band[i]);/*0-29*/
curr_energy += (w2[i+30]*synthesized_high_band[i+30])*(w2[i+30]*synthesized_high_band[i+30]);/*30-59*/
}
scale_factor = sqrt(curr_energy/prev_energy);
if ((prev_energy )==0) scale_factor = 0;
for( i=0; i<20; i++ ) /*0-19*/
{
actual_scale = scale_factor;
shaped_shb_excitation[i] = actual_scale*synthesized_high_band[i];
}
for( ; i<30 ; i++) /*20-29*/
{
temp = (i-19)/10.0f;
/*tapering*/
actual_scale = (temp*1.0f + (1.0f-temp)*scale_factor);
shaped_shb_excitation[i] = actual_scale*synthesized_high_band[i];
}
【0067】
例2は、重複しないウィンドウに関連して実行され得る代替の擬似コードを示す。たとえば、
図3のグラフ310は、第1のウィンドウw1(n)と第2のウィンドウw2(n)とが重複しない可能性があることを示す。例2を参照して説明した1つまたは複数のスケーリング動作は、
図3のグラフ330を参照して説明したようなものであり得る。
【0068】
例2
L_SHB_LAHEAD = 20;
prev_pow = sum2_f( shaped_shb_excitation, L_SHB_LAHEAD + 10 );
curr_pow = sum2_f( shaped_shb_excitation + L_SHB_LAHEAD + 10, L_SHB_LAHEAD + 10 );
if( voice_factors[0] > 0.75f )
{
curr_pow *= 0.25;
}
if( prev_pow == 0 )
{
scale = 0;
}
else
{
scale = sqrt( curr_pow/ prev_pow );
}
for( i=0; i<L_SHB_LAHEAD; i++ )
{
shaped_shb_excitation[i] *= scale;
}
for( ; i<L_SHB_LAHEAD + 10 ; i++)
{
temp = (i-19)/10.0f;
shaped_shb_excitation[i] *= (temp*1.0f + (1.0f-temp)*scale);
}
【0069】
例2では、関数呼出しの第2の引数として入力された信号の長さに対する関数呼出しの第1の引数として入力されたバッファのエネルギーを計算するために、関数「sum2_f」が使用され得る。定数L_SHB_LAHEADは、20の値をとるように定義されている。この20の値は、例示的な非限定的な例である。バッファvoice_factorsは、サブフレームごとに計算されたフレームのボイスファクタを保持する。ボイスファクタは、ローバンド励起信号の残りに対する反復(ピッチ)成分の強度のインジケータであり、0から1までの範囲とすることができる。より高いボイスファクタ値は、信号がより有声音(より強いピッチ成分を意味する)であることを示す。
【0070】
例1および例2は、本明細書で説明する動作および機能が、プロセッサによって実行される命令を使用して実行または実装され得ることを示す。
図6は、例1の擬似コードに対応する命令、例2の擬似コードに対応する命令、またはそれらの組合せを実行し得るプロセッサを含む電子デバイスの一例を表す。
【0071】
図6は、電子デバイス600の例示的な例の示すブロック図である。たとえば、電子デバイス600は、例示的な例として、モバイルデバイス(たとえば、セルラー電話)、コンピュータ(たとえば、ラップトップコンピュータ、タブレットコンピュータ、またはデスクトップコンピュータ)、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、テレビジョン、チューナ、ラジオ(たとえば、衛星ラジオ)、音楽プレーヤ(たとえば、デジタル音楽プレーヤおよび/またはポータブル音楽プレーヤ)、ビデオプレーヤ(たとえば、デジタルビデオディスク(DVD)プレーヤおよび/またはポータブルデジタルビデオプレーヤなどのデジタルビデオプレーヤ)、自動車システムコンソール、家電製品、ウェアラブルデバイス(パーソナルカメラ、ヘッドマウントディスプレイ、および/または時計)、ロボット、ヘルスケアデバイス、または別の電子デバイスに対応し得、またはその中に組み込まれ得る。
【0072】
電子デバイス600は、メモリ632に結合されるプロセッサ610(たとえば、中央処理装置(CPU))を含む。メモリ632は、プロセッサ610によって実行可能な命令660を記憶する非一時的コンピュータ可読媒体であってよい。非一時的コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラム可能な読取り専用メモリ(PROM)、消去可能プログラム可能な読取り専用メモリ(EPROM)、電気的に消去可能プログラム可能な読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、取外し可能ディスク、またはコンパクトディスク読取り専用メモリ(CD-ROM)などの、メモリデバイスを含み得る。
【0073】
電子デバイス600は、コーダ/デコーダ(CODEC)634をさらに含み得る。CODEC634は、プロセッサ610に結合され得る。スピーカ636がCODEC634に結合されてよく、マイクロフォン638がCODEC634に結合されてよい。CODEC634は、メモリ690などのメモリを含む場合がある。メモリ690は、CODEC634の処理ユニットによって実行可能であり得る命令695を記憶し得る。
【0074】
電子デバイス600は、デジタル信号プロセッサ(DSP)696も含み得る。DSP696は、プロセッサ610およびCODEC634に結合され得る。DSP696は、フレーム間オーバーラップ補償プログラム694を実行し得る。たとえば、フレーム間オーバーラップ補償プログラム694は、
図5の方法500の1つまたは複数の動作など、本明細書で説明した1つまたは複数の動作を実行するためにDSP696によって実行可能であり得る。代替的にまたは追加として、フレーム間オーバーラップ補償プログラム694は、例1の擬似コードに対応する1つまたは複数の命令、例2の擬似コードに対応する1つまたは複数の命令、またはそれらの組合せを含み得る。本明細書で説明した1つまたは複数の動作は、マイクロフォン638によって検出され、アンテナ642を介して送信されるオーディオ情報を符号化するために実行される符号化プロセスなどの符号化プロセスに関連して実行され得ることに留意されたい。代替的にまたは追加として、本明細書で説明した1つまたは複数の動作は、アンテナ642を介して受信され、スピーカ636でオーディオ出力を生成するために使用されるオーディオ情報を復号するために実行される復号プロセスなどの復号プロセスに関連して実行され得る。
【0075】
図6は、プロセッサ610およびディスプレイ628に結合されるディスプレイコントローラ626も示す。
図6は、ワイヤレスインターフェース640がプロセッサ610およびアンテナ642に結合できることも示す。
【0076】
特定の例では、プロセッサ610、ディスプレイコントローラ626、メモリ632、CODEC634、ワイヤレスコントローラ640、およびDSP696は、システムインパッケージまたはシステムオンチップデバイス622に含まれる。タッチスクリーンおよび/またはキーパッドなどの入力デバイス630、ならびに電源644が、システムオンチップデバイス622に結合され得る。その上、
図6に示すように、ディスプレイ628、入力デバイス630、スピーカ636、マイクロフォン638、アンテナ642、および電源644は、システムオンチップデバイス622の外部にあり得る。しかし、ディスプレイ628、入力デバイス630、スピーカ636、マイクロフォン638、アンテナ642、および電源644の各々を、インターフェースまたはコントローラなどの、システムオンチップデバイス622の構成要素に結合することができる。
【0077】
コンピュータ可読媒体(たとえば、メモリ632、690のいずれか)は、動作を実行するようにプロセッサ(たとえば、プロセッサ610、CODEC634、またはDSP696のうちの1つまたは複数)によって実行可能な命令(たとえば、命令660、命令695、またはフレーム間オーバーラップ補償プログラム694のうちの1つまたは複数)を記憶する。動作は、サンプルの第1のセット(たとえば、サンプルの第1のセット124またはサンプルの第1のセット220のいずれか)およびサンプルの第2のセット(たとえば、サンプルの第2のセット126またはサンプルの第2のセット224のいずれか)を受信することを含む。サンプルの第1のセットは、第1のオーディオフレーム(たとえば、第1のオーディオフレーム204)の一部に対応し、サンプルの第2のセットは、第2のオーディオフレーム(たとえば、第2のオーディオフレーム212)に対応する。動作は、サンプルの第1のセット、およびサンプルの第2のセットの第1のサブセット(たとえば、第1のサブセット232)に基づいて、サンプルのターゲットセット(たとえば、サンプルのターゲットセット132またはサンプルのターゲットセット216のいずれか)を生成することと、サンプルの第2のセットの第2のサブセット(たとえば、第2のサブセット236)に少なくとも部分的に基づいて、サンプルの参照セット(たとえば、サンプルの参照セット136またはサンプルの参照セット228のいずれか)を生成することとをさらに含む。動作は、スケーリングされたサンプルのターゲットセット(たとえば、スケーリングされたサンプルのターゲットセット152)を生成するために、サンプルのターゲットセットをスケーリングすることと、スケーリングされたサンプルのターゲットセット、およびサンプルの第2のセットのうちの1つまたは複数のサンプル(たとえば、1つまたは複数のサンプル130)に基づいてサンプルの第3のセット(たとえば、サンプルの第3のセット160)を生成することとをさらに含む。
【0078】
装置は、サンプルの第1のセット(たとえば、サンプルの第1のセット124またはサンプルの第1のセット220のいずれか)およびサンプルの第2のセット(たとえば、サンプルの第2のセット126またはサンプルの第2のセット224のいずれか)を受信するための手段(たとえば、メモリ120)を含む。サンプルの第1のセットは、第1のオーディオフレーム(たとえば、第1のオーディオフレーム204)の一部に対応し、サンプルの第2のセットは、第2のオーディオフレーム(たとえば、第2のオーディオフレーム212)に対応する。装置は、サンプルの第1のセット、およびサンプルの第2のセットの第1のサブセット(たとえば、第1のサブセット232)に基づいて、サンプルのターゲットセット(たとえば、サンプルのターゲットセット132またはサンプルのターゲットセット216のいずれか)を生成し、サンプルの第2のセットの第2のサブセット(たとえば、第2のサブセット236)に少なくとも部分的に基づいて、サンプルの参照セット(たとえば、サンプルの参照セット136またはサンプルの参照セット228のいずれか)を生成するための手段(たとえば、ウィンドウワ128)をさらに含む。装置は、スケーリングされたサンプルのターゲットセット(たとえば、スケーリングされたサンプルのターゲットセット152)を生成するために、サンプルのターゲットセットをスケーリングするための手段(たとえば、スケーラ148)と、スケーリングされたサンプルのターゲットセット、およびサンプルの第2のセットのうちの1つまたは複数のサンプル(たとえば、1つまたは複数のサンプル130)に基づいてサンプルの第3のセット(たとえば、サンプルの第3のセット160)を生成するための手段(たとえば、結合器156)とをさらに含む。
【0079】
いくつかの例では、装置は、サンプルの第3のセットを受信するための手段(たとえば、利得成形回路164)をさらに含む。サンプルの第3のセットを受信するための手段は、たとえば、デバイス100のデコーダの実装またはデバイス100のエンコーダの実装のいずれかに関連して、サンプルの第3のセットに基づいて、利得成形調整された合成ハイバンド信号(たとえば、利得成形調整された合成ハイバンド信号168)を生成するように構成され得る。代替的に、サンプルの第3のセットを受信するための手段は、たとえば、デバイス100のエンコーダの実装に関連して、サンプルの第3のセットに基づいて利得成形を推定するように構成され得る。装置は、サンプルの第1のセットおよびサンプルの第2のセットを、サンプルの第1のセットおよびサンプルの第2のセットを受信するための手段に提供するための手段も含み得る。例示的な一例では、提供するための手段は、例示的な例として、励起生成器、線形予測合成器、または後処理ユニットのうちの1つまたは複数など、回路112を参照して説明した1つまたは複数の構成要素を含む。
【0080】
本明細書のいくつかの例について、デコーダを参照して説明する。代替的にまたは追加として、
図1〜
図6を参照して説明した1つまたは複数の態様が、3GPPプロトコル(たとえば、3GPP EVSプロトコル)に準拠するエンコーダなどのエンコーダにおいて実施され得る。たとえば、ワイヤレスネットワークにおいて信号を送信するデバイスのエンコーダ、およびワイヤレスネットワークを介して信号を受信するデバイスのデコーダは、本明細書で説明した動作を実行することによってフレーム間オーバーラップを低減するために「協働」し得る。デバイスのエンコーダによって実行され得る符号化演算のいくつかの例について、
図7を参照してさらに説明する。
【0081】
図7を参照すると、システムの例示的な例が示され、全体的に700と指定されている。特定の実施形態では、システム700は、(たとえば、ワイヤレス電話、CODEC、またはDSPにおける)符号化システムまたは装置に組み込まれる場合がある。さらに説明するために、システム700は、CODEC634内またはDSP696内など、電子デバイス600内に組み込まれてもよい。
【0082】
システム700は、入力オーディオ信号702を受信するように構成された分析フィルタバンク710を含む。たとえば、入力オーディオ信号702は、マイクロフォンまたは他の入力デバイスによって提供される場合がある。特定の実施形態では、入力オーディオ信号702は語音を表し得る。入力オーディオ信号702は、約0Hzから約16kHzの周波数範囲のデータを含む超広帯域(SWB)信号であってもよい。
【0083】
分析フィルタバンク710は、周波数に基づいて入力オーディオ信号702を複数の部分にフィルタ処理してもよい。たとえば、分析フィルタバンク710は、ローバンド信号722およびハイバンド信号724を生成する場合がある。ローバンド信号722およびハイバンド信号724は、等しいまたは等しくない帯域幅を有し得、重複していても重複していなくてもよい。代替実施形態では、分析フィルタバンク710は、3つ以上の出力を生成する場合がある。
【0084】
図7の例では、ローバンド信号722およびハイバンド信号724は、重複しない周波数帯域を占有する。たとえば、ローバンド信号722およびハイバンド信号724は、それぞれ、0Hz〜8kHzおよび8kHz〜16kHzという、重複しない周波数帯域を占有する場合がある。別の例では、ローバンド信号722およびハイバンド信号724は、0Hz〜6.4kHzおよび6.4kHz〜12.8kHzという、重複しない周波数帯域を占有する場合がある。別の代替実施形態では、ローバンド信号722およびハイバンド信号724は重複し(たとえば、それぞれ、50Hz〜8kHzおよび7kHz〜16kHz)、それにより、分析フィルタバンク710の低域フィルタおよび高域フィルタは、円滑なロールオフ特性を有することが可能になる場合があり、設計が単純化され、低域フィルタおよび高域フィルタのコストが減る場合がある。ローバンド信号722およびハイバンド信号724を重複させることで、受信機におけるローバンド信号およびハイバンド信号の円滑なブレンディングが可能になる場合があり、結果的に可聴アーティファクト(audible artifact)が少なくなる場合がある。
【0085】
図7の例は、SWB信号の処理を示すが、いくつかの実装形態では、入力オーディオ信号702は、約50Hzから約8kHzの周波数範囲を有する広帯域(WB)信号であってもよい。そのような実施形態では、ローバンド信号722は、たとえば、約50Hz〜約6.4kHzの周波数範囲に対応する場合があり、ハイバンド信号724は、約6.4kHz〜約8kHzの周波数範囲に対応する場合がある。
【0086】
システム700は、ローバンド信号722を受信するように構成されたローバンド分析モジュール730を含み得る。特定の実施形態では、ローバンド分析モジュール730は、コード励起線形予測(CELP)エンコーダの実施形態を表し得る。ローバンド分析モジュール730は、線形予測(LP)分析およびコーディングモジュール732、線形予測係数(LPC)-線スペクトル周波数(LSF)変換モジュール(linear prediction coefficient (LPC) to line spectral frequencies (LSFs) transform module)734、および量子化器736を含み得る。LSPは、線スペクトル対(LSP)とも呼ばれ、2つの用語(LSPおよびLSF)は、本明細書では互換的に使用され得る。
【0087】
LP分析およびコーディングモジュール732は、LPCのセットとしてローバンド信号722のスペクトルエンベロープを符号化し得る。LPCは、オーディオの各フレーム(たとえば、320個のサンプルに対応する20ミリ秒(ms)のオーディオ)、オーディオの各サブフレーム(たとえば、5msのオーディオ)、またはそれらの任意の組合せについて生成され得る。各フレームまたはサブフレームについて生成されるLPCの数は、実行されるLP分析の「順序」によって決定され得る。特定の実施形態では、LP分析およびコーディングモジュール732は、10次LP分析に対応する11個のLPCのセットを生成し得る。
【0088】
LPC-LSP変換モジュール734は、LP分析およびコーディングモジュール732によって生成されたLPCのセットを、(たとえば、1対1の変換を使用して)LSPの対応するセットに変換し得る。代わりに、LPCのセットは、対応するセットのparcor係数、対数-面積比値、イミッタンススペクトル対(ISP)、またはイミッタンススペクトル周波数(ISF)に1対1変換され得る。LPCのセットとLSPのセットとの間の変換は、誤差なく可逆的であり得る。
【0089】
量子化器736は、変換モジュール734によって生成されたLSPのセットを量子化し得る。たとえば、量子化器736は、複数のエントリ(たとえば、ベクトル)を含む複数のコードブックを含む、またはそれに結合され得る。LSPのセットを量子化するために、量子化器736は、(たとえば、最小2乗または平均2乗誤差などのひずみ尺度に基づいて)LSPのセットに「最も近い」コードブックのエントリを識別し得る。量子化器736は、コードブック内の識別されたエントリの位置に対応するインデックス値または一連のインデックス値を出力し得る。したがって、量子化器736の出力は、ローバンドビットストリーム742に含まれるローバンドフィルタパラメータを表し得る。
【0090】
ローバンド分析モジュール730は、ローバンド励起信号744も生成し得る。たとえば、ローバンド励起信号744は、ローバンド分析モジュール730によって実行されるLPプロセスの間に生成されるLP残差信号を量子化することによって生成される符号化信号であり得る。LP残差信号は、予測誤差を表し得る。
【0091】
システム700は、分析フィルタバンク710からハイバンド信号724、およびローバンド分析モジュール730からローバンド励起信号744を受信するように構成されたハイバンド分析モジュール750をさらに含み得る。ハイバンド分析モジュール750は、ハイバンド信号724およびローバンド励起信号744に基づいて、ハイバンドサイド情報772を生成し得る。たとえば、ハイバンドサイド情報772は、(たとえば、ハイバンドエネルギー対ローバンドエネルギーの比に少なくとも基づく)ハイバンドLSPおよび/または利得情報を含み得る。特定の実施形態では、利得情報は、高調波的に拡張された信号および/またはハイバンド残差信号に基づいて、利得成形回路792(たとえば、
図1の利得成形回路164)など、利得成形モジュールによって生成される利得成形パラメータを含み得る。高調波的に拡張された信号は、ハイバンド信号724とローバンド信号722との間の不十分な相関のために、ハイバンド合成での使用には不十分である可能性がある。たとえば、ハイバンド信号724のサブフレームは、モデル化されたハイバンド励起信号767において適切に模倣されないエネルギーレベルの変動を含み得る。
【0092】
ハイバンド分析モジュール750は、フレーム間オーバーラップ補償器790を含み得る。例示的な実装形態では、フレーム間オーバーラップ補償器790は、
図1のウィンドウワ128、スケールファクタ決定器140、スケーラ148、および結合器156を含む。代替的にまたは追加として、フレーム間オーバーラップ補償器は、
図6のフレーム間オーバーラップ補償プログラム694に対応し得る。
【0093】
ハイバンド分析モジュール750は、ハイバンド励起生成器760も含み得る。ハイバンド励起生成器760は、ローバンド励起信号744のスペクトルをハイバンド周波数範囲(たとえば、7kHz〜16kHz)に拡張することによって、ハイバンド励起信号767を生成し得る。説明のために、ハイバンド励起生成器760は、ハイバンド励起信号767を生成するために、調整された高調波的に拡張されたローバンド励起を雑音信号(たとえば、ローバンド信号722のゆっくりと変化する時間特性を模倣するローバンド励起信号744に対応するエンベロープに従って変調された白色雑音)と混合し得る。たとえば、混合は以下の式に従って実行され得る。
ハイバンド励起=(α*調整された高調波的に拡張されたローバンド励起)+
((1-α)*変調された雑音)
【0094】
調整された高調波的に拡張されたローバンド励起と変調された雑音とが混合される比率は、受信機でのハイバンド再構成の品質に影響を与える可能性がある。有声音声信号の場合、混合は、調整された高調波的に拡張されたローバンド励起に向かってバイアスされ得る(たとえば、混合係数αが0.5〜1.0の範囲内であり得る)。無声信号の場合、混合は、変調された雑音に向かってバイアスされ得る(たとえば、混合係数αは、0.0〜0.5の範囲内であり得る)。
【0095】
図示のように、ハイバンド分析モジュール750は、LP分析およびコーディングモジュール752、LPC-LSP変換モジュール754、および量子化器756も含み得る。LP分析およびコーディングモジュール752、変換モジュール754、および量子化器756の各々は、ローバンド分析モジュール730の対応する構成要素を参照して上述したように機能するが、比較的低解像度(たとえば、係数ごとにわずかのビット、LSPなどを使用して)で機能し得る。LP分析およびコーディングモジュール752は、変換モジュール754によってLSPに変換され、コードブック763に基づいて量子化器756によって量子化されるLPCのセットを生成し得る。たとえば、LP分析およびコーディングモジュール752、変換モジュール754、および量子化器756は、ハイバンド信号サイド情報772に含まれるハイバンドフィルタ情報(たとえば、ハイバンドLSP)を決定するために、ハイバンド信号724を使用し得る。
【0096】
量子化器756は、変換モジュール754によって提供されるLSPなどのスペクトル周波数値のセットを量子化するように構成され得る。他の実施形態では、量子化器756は、LSFもしくはLSPに加えて、またはLSFもしくはLSPの代わりに、1つもしくは複数の他のタイプのスペクトル周波数値のセットを受信し、量子化し得る。たとえば、量子化器756は、LP分析およびコーディングモジュール752によって生成されたLPCのセットを受信し、量子化し得る。他の例は、量子化器756において受信され、量子化され得るparcor係数、対数-面積比値、およびISFのセットを含む。量子化器756は、テーブルまたはコードブック、たとえばコードブック763などの中の対応するエントリに対するインデックスとして、入力ベクトル(たとえば、ベクトル形式のスペクトル周波数値のセット)を符号化するベクトル量子化器を含み得る。別の例として、量子化器756は、ストレージから取り出されるのではなく、スパースコードブックの実施形態など、入力ベクトルがデコーダにおいて動的に生成され得る1つまたは複数のパラメータを決定するように構成され得る。説明のために、スパースコードブックの例は、3GPP2(第3世代パートナーシップ2)EVRC(拡張可変レートコーデック)などの業界規格に従って、CELPおよびコーデックなどのコーディング方式で適用されてもよい。別の実施形態では、ハイバンド分析モジュール750は、量子化器756を含み得、(たとえば、フィルタパラメータのセットに従って)合成信号を生成し、たとえば知覚的に重み付けされた領域において、ハイバンド信号724に最も合致する合成信号に関連付けられたコードブックベクトルの1つを選択するために、いくつかのコードブックベクトルを使用するように構成され得る。
【0097】
特定の実施形態では、ハイバンドサイド情報772は、ハイバンドLSPおよびハイバンド利得パラメータを含み得る。たとえば、ハイバンド励起信号767は、ハイバンドサイド情報772に含まれる追加の利得パラメータを決定するために使用され得る。
【0098】
ローバンドビットストリーム742およびハイバンドサイド情報772は、出力ビットストリーム799を生成するために、マルチプレクサ(MUX)780によって多重化され得る。出力ビットストリーム799は、入力オーディオ信号702に対応する符号化されたオーディオ信号を表す場合がある。たとえば、出力ビットストリーム799は、(たとえば、ワイヤードチャネル、ワイヤレスチャネル、もしくは光チャネルを介して)送信される場合、および/または記憶される場合がある。
【0099】
受信機において、オーディオ信号(たとえば、スピーカまたは他の出力デバイスに提供される入力オーディオ信号702の再構成されたバージョン)を生成するために、デマルチプレクサ(DEMUX)、ローバンドデコーダ、ハイバンドデコーダ、およびフィルタバンクによって逆の動作が実行されてもよい。ローバンドビットストリーム742を表すために使用されるビット数は、ハイバンドサイド情報772を表すために使用されるビット数よりも実質的に大きくなり得る。したがって、出力ビットストリーム799内のビットの大部分は、ローバンドデータを表し得る。ハイバンドサイド情報772は、信号モデルに従ってローバンドデータからハイバンド励起信号を再生するために受信機で使用され得る。たとえば、信号モデルは、ローバンドデータ(たとえば、ローバンド信号722)とハイバンドデータ(たとえば、ハイバンド信号724)との間の関係または相関の期待されるセットを表し得る。したがって、異なる種類のオーディオデータ(たとえば、語音、音楽など)に対して異なる信号モデルが使用され得、使用中の特定の信号モデルは、符号化されたオーディオデータの通信前に、送信機および受信機によって交渉(または業界規格によって定義)され得る。信号モデルを使用して、送信機におけるハイバンド分析モジュール750は、受信機における対応するハイバンド分析モジュールが信号モデルを使用して出力ビットストリーム799からハイバンド信号724を再構築することができるように、ハイバンドサイド情報772を生成することができ得る。受信機は、
図1のデバイス100を含み得る。
【0100】
上記の説明では、様々な機能および動作を、いくつかの構成要素またはモジュールによって実装または実行されるものとして説明してきた。いくつかの実装形態では、特定の構成要素またはモジュールによって実装または実行されるものとして説明された機能または動作は、代わりに、複数の構成要素またはモジュールを使用して実装または実行されてもよいことに留意されたい。その上、いくつかの実装形態では、本明細書で説明した2つ以上の構成要素またはモジュールが、単一の構成要素またはモジュールに組み込まれる場合がある。本明細書で説明した1つまたは複数の構成要素またはモジュールは、ハードウェア(たとえば、例示的な例として、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、DSP、および/またはコントローラなど)、ソフトウェア(たとえば、プロセッサによって実行可能な命令)、またはそれらの任意の組合せを使用して実装されてもよい。
【0101】
本明細書に開示される態様との関連で述べた様々な例証的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして、ハードウェアプロセッサなどの処理デバイスによって実行されるコンピュータソフトウェアとして、または両方の組合せとして実装され得ることを、当業者ならさらに理解するであろう。様々な例証的な構成要素、ブロック、構成、モジュール、回路、およびステップについては、それらの機能の点から一般に上述した。そのような機能がハードウェアとして実装されるか実行可能なソフトウェアとして実装されるかは、特定の適用例と、システム全体に課される設計制約とに依存する。当業者なら、述べた機能を、特定の適用例ごとに様々な方式で実装することができるが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0102】
本明細書において開示される態様に関して説明される方法またはアルゴリズムのステップは、ハードウェアにおいて直接、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて具現される場合がある。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、スピントルクトランスファMRAM(STT-MRAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)などのメモリデバイス中に常駐することができる。例示的なメモリデバイスは、プロセッサに結合され、それにより、プロセッサは、情報をメモリデバイスから読み取ることおよびメモリデバイスに書き込むことができる。代替では、メモリデバイスは、プロセッサに統合されてよい。プロセッサおよび記憶媒体は、ASIC内に存在してもよい。ASICは、コンピューティングデバイスまたはユーザ端末中に存在してよい。代替では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末中の、ディスクリートコンポーネントとして存在してよい。
【0103】
開示される態様のこれまでの説明は、開示された態様を当業者が作製または使用できるようにするために提供される。これらの態様への種々の変更は当業者には容易に明らかになり、本明細書において規定された原理は本開示の範囲から逸脱することなく他の態様にも適用される場合がある。したがって、本開示は、本明細書において示される態様に限定されることを意図するものではなく、以下の特許請求の範囲によって規定されるような原理および新規の特徴と一致する可能な最も広い範囲を与えられるべきである。