(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-25
(54)【発明の名称】適応予測エンコーディング
(51)【国際特許分類】
G10L 19/18 20130101AFI20241118BHJP
【FI】
G10L19/18
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024535616
(86)(22)【出願日】2021-12-15
(85)【翻訳文提出日】2024-08-01
(86)【国際出願番号】 EP2021085932
(87)【国際公開番号】W WO2023110082
(87)【国際公開日】2023-06-22
(81)【指定国・地域】
(71)【出願人】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100109726
【氏名又は名称】園田 吉隆
(74)【代理人】
【識別番号】100150670
【氏名又は名称】小梶 晴美
(74)【代理人】
【識別番号】100199705
【氏名又は名称】仙波 和之
(74)【代理人】
【識別番号】100194294
【氏名又は名称】石岡 利康
(72)【発明者】
【氏名】ノーベル, エリク
(72)【発明者】
【氏名】ヤンソン, フレドリック
(57)【要約】
現在のフレームに対するコーディングモードを選択する、エンコーダ(300)で実施される方法は、絶対コーディングおよび予測コーディングに対するビットレートを取得すること(725)を含む。方法は、取得したビットレートに基づいてビットレート差を計算すること(730)を含む。方法は、ビットレート差をローパスフィルタ処理すること(735)を含む。方法は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択すること(740)を含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
現在のフレームに対するコーディングモードを選択するための、エンコーダ(300)で実行される方法であって、
絶対コーディングおよび予測コーディングに対するビットレートを取得すること(725)と、
取得した前記ビットレートに基づいてビットレート差を計算すること(730)と、
前記ビットレート差をローパスフィルタ処理すること(735)と、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択すること(740)と
を含む、方法。
【請求項2】
予測コーディングモードを選択することに応答して、
前記コーディングモードを前記予測コーディングモードに設定すること(750)と、
前記予測モードカウンタを増分すること(755)と
をさらに含む、請求項1に記載の方法。
【請求項3】
絶対コーディングモードを選択することに応答して、
前記コーディングモードを前記絶対コーディングモードに設定すること(715)と、
前記予測モードカウンタを初期値にリセットすること(720)と
をさらに含む、請求項1または2に記載の方法。
【請求項4】
予測コーディングが許可されるか否かを判定することが、予測コーディングが許可されることをフラグが示すかを判定することを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
予測コーディングが許可されることを前記フラグが示すかを判定することが、
予測カウントが予測フレームの最大数未満かを判定すること(1000)と、
前記予測カウントが予測フレームの前記最大数未満であるという判定に応答して、予測コーディングが許可されることを示すようにフラグを設定すること(1010)と、
前記予測カウントが予測フレームの前記最大数超過であるという判定に応答して、予測コーディングが許可されないことを示すように前記フラグを設定すること(1020)と
を含む、請求項4に記載の方法。
【請求項6】
予測コーディングが許可されるか否かを判定すること(910)と、
予測コーディングが許可されないという判定に応答して、
コーディングモードを絶対コーディングモードに設定すること(715)と、
前記予測モードカウンタを初期値にリセットすること(720)と
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項7】
前記ビットレート差を計算することが、次式にしたがって前記ビットレート差を計算することを含み、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)
式中、nbits
abs(m)が絶対コーディングに対するビットレートであり、nbits
pred(m)が予測コーディングに対するビットレートである、
請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ビットレート差をローパスフィルタ処理することが、次式にしたがって前記ビットレート差をローパスフィルタ処理することを含み、
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)
式中、γがローパスフィルタ係数である、
請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)、および
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)であり、
式中、g
mode(m)が前記コーディングモード、predcount(m-1)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、Cが同調定数、bitdiff(m)がビットレート差、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、bitdiff
LP(m)がローパスフィルタ処理されたビットレート差、γがローパスフィルタ係数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項1から8のいずれか一項に記載の方法。
【請求項10】
であり、式中、SIDフレームが無音挿入記述子フレームである、
請求項9に記載の方法。
【請求項11】
γ∈[0.01,0.20]、および
C∈[0,1]である、
請求項9に記載の方法。
【請求項12】
g
mode(m)がさらに、次式によるpred_allowed(m)に基づき、
式中、
である、請求項9から11のいずれか一項に記載の方法。
【請求項13】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、predcount(m)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Aが定数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項1から8のいずれか一項に記載の方法。
【請求項14】
A∈[0,2]である、請求項13に記載の方法。
【請求項15】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Gが定数、α
acc(m)が重み付け係数、ε
rel(m)が相対エラー、およびε
THRが前記相対エラーの閾値である、
請求項1から8のいずれか一項に記載の方法。
【請求項16】
絶対コーディングおよび予測コーディングに対するビットレートを取得することと、
取得した前記ビットレートに基づいてビットレート差を計算することと、
前記ビットレート差をローパスフィルタ処理することと、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することと
を含む動作を実施するように適合された、現在のフレームに対するコーディングモードを選択する、エンコーダ(300)。
【請求項17】
前記エンコーダ(300)が、
予測コーディングモードを選択することに応答して、
前記コーディングモードを前記予測コーディングモードに設定することと、
前記予測モードカウンタを増分することと
を含むさらなる動作を実施するように適合された、請求項16に記載のエンコーダ(300)。
【請求項18】
絶対コーディングモードを選択することに応答して、
前記コーディングモードを前記絶対コーディングモードに設定することと、
前記予測モードカウンタを初期値にリセットすることと
をさらに含む、請求項16または17に記載のエンコーダ(300)。
【請求項19】
予測コーディングが許可されるか否かを判定することが、予測コーディングが許可されることをフラグが示すかを判定することを含む、請求項16から18のいずれか一項に記載のエンコーダ(300)。
【請求項20】
予測コーディングが許可されることを前記フラグが示すかを判定することが、
予測カウントが予測フレームの最大数未満かを判定することと、
前記予測カウントが予測フレームの前記最大数未満であるという判定に応答して、予測コーディングが許可されることを示すようにフラグを設定することと、
前記予測カウントが予測フレームの前記最大数超過であるという判定に応答して、予測コーディングが許可されないことを示すように前記フラグを設定することと
を含む、請求項19に記載のエンコーダ(300)。
【請求項21】
予測コーディングが許可されるか否かを判定することと、
予測コーディングが許可されないという判定に応答して、
コーディングモードを絶対コーディングモードに設定することと、
前記予測モードカウンタを初期値にリセットすることと
をさらに含む、請求項16から19のいずれか一項に記載のエンコーダ(300)。
【請求項22】
前記ビットレート差を計算することが、次式にしたがって前記ビットレート差を計算することを含み、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)
式中、nbits
abs(m)が絶対コーディングに対するビットレートであり、nbits
pred(m)が予測コーディングに対するビットレートである、
請求項16から21のいずれか一項に記載のエンコーダ(300)。
【請求項23】
前記ビットレート差をローパスフィルタ処理することが、次式にしたがって前記ビットレート差をローパスフィルタ処理することを含み、
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)
式中、γがローパスフィルタ係数である、
請求項16から22のいずれか一項に記載のエンコーダ(300)。
【請求項24】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)、および
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)であり、
式中、g
mode(m)が前記コーディングモード、predcount(m-1)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、Cが同調定数、bitdiff(m)がビットレート差、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、bitdiff
LP(m)がローパスフィルタ処理されたビットレート差、γがローパスフィルタ係数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項16から23のいずれか一項に記載のエンコーダ(300)。
【請求項25】
であり、式中、SIDフレームが無音挿入記述子フレームである、
請求項24に記載のエンコーダ(300)。
【請求項26】
γ∈[0.01,0.20]、および
C∈[0,1]である、
請求項24または25に記載のエンコーダ(300)。
【請求項27】
g
mode(m)がさらに、次式によるpred_allowed(m)に基づき、
式中、
である、請求項24から26のいずれか一項に記載のエンコーダ(300)。
【請求項28】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、predcount(m)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Aが定数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項16から23のいずれか一項に記載のエンコーダ(300)。
【請求項29】
A∈[0,2]である、請求項28に記載のエンコーダ(300)。
【請求項30】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Gが定数、α
acc(m)が重み付け係数、ε
rel(m)が相対エラー、およびε
THRが前記相対エラーの閾値である、
請求項16から23のいずれか一項に記載のエンコーダ(300)。
【請求項31】
処理回路(401)と、
前記処理回路と結合されたメモリ(403)であって、前記処理回路によって実行されると、エンコーダ(300)に動作を実施される命令を含む、メモリ(403)とを備え、前記動作が、
絶対コーディングおよび予測コーディングに対するビットレートを取得することと、
取得した前記ビットレートに基づいてビットレート差を計算することと、
前記ビットレート差をローパスフィルタ処理することと、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することと
を含む、エンコーダ(300)。
【請求項32】
前記メモリが、前記処理回路によって実行されると、前記エンコーダ(300)に、請求項2から15のいずれか一項に記載の動作を実施させる命令をさらに含む、請求項31に記載のエンコーダ(300)。
【請求項33】
エンコーダ(300)の処理回路(401)によって実行されるプログラムコードを含み、それにより、前記プログラムコードの実行によって前記エンコーダ(300)に動作を実施させる、コンピュータプログラムであって、前記動作が、
絶対コーディングおよび予測コーディングに対するビットレートを取得すること(725)と、
取得した前記ビットレートに基づいてビットレート差を計算すること(730)と、
前記ビットレート差をローパスフィルタ処理すること(735)と、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択すること(740)と
を含む、コンピュータプログラム。
【請求項34】
エンコーダ(300)の処理回路(401)によって実行されるさらなるプログラムコードを含み、それにより、前記プログラムコードの実行によって前記エンコーダ(300)に、請求項2から15のいずれか一項に記載の動作を実施させる、請求項33に記載のコンピュータプログラム。
【請求項35】
エンコーダ(300)の処理回路(401)によって実行されるプログラムコードを含む非一時的記憶媒体を備え、それにより、前記プログラムコードの実行によって前記エンコーダに動作を実施させる、コンピュータプログラム製品であって、前記動作が、
絶対コーディングおよび予測コーディングに対するビットレートを取得すること(725)と、
取得した前記ビットレートに基づいてビットレート差を計算すること(730)と、
前記ビットレート差をローパスフィルタ処理すること(735)と、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択すること(740)と
を含む、コンピュータプログラム製品。
【請求項36】
前記非一時的記憶媒体が、前記エンコーダ(300)の処理回路(401)によって実行されるさらなるプログラムコードに含み、それにより、前記さらなるプログラムコードの実行によって前記エンコーダ(300)に、請求項2から15のいずれか一項に記載の動作を実施させる、請求項35に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、全体として、通信に関し、より詳細には、無線通信をサポートする、通信方法ならびに関連するデバイスおよびノードに関する。
【背景技術】
【0002】
通信ネットワークにおいて、所与の通信プロトコル、そのパラメータ、および通信ネットワークが展開される物理的環境に対して、良好な性能および容量を得るのが困難なことがある。
【0003】
たとえば、通信ネットワークにおける容量が継続的に増加していても、ユーザごとに必要なリソース使用量を制限することは依然として関心事である。モバイル通信ネットワークでは、セルごとに必要なリソース使用量が少ないということは、モバイル通信ネットワークがより多数のユーザに並行してサービスできることを意味する。リソース使用量を低下させることで、ユーザ側のデバイス(端末デバイスなど)およびネットワーク側のデバイス(ネットワークノードなど)の両方で消費電力の低下がもたらされる。このことは、ネットワークオペレータにとってエネルギーおよびコスト削減を意味し、一方でバッテリ寿命を延長し、端末デバイスにおいて体感されるトーク時間を増加することができる。
【0004】
モバイル通信ネットワークにおいて発話通信アプリケーションに必要なリソース使用量を低減する1つのメカニズムは、発話での自然な間を活用するというものである。より詳細には、ほとんどの会話では、一度にアクティブなのは当事者の一方のみであり、したがって、1つの通信方向での発話の間が、一般的に信号の半分超を占めることになる。必要なリソース使用量を減少させるためにこの性質を利用する1つの手法は、発話の間ではアクティブ信号エンコーディングが中断される、間欠送信(DTX)システムを採用するというものである。
【0005】
発話の間においては、バックグラウンドノイズの非常に低ビットレートのエンコーディングを受信端のコンフォートノイズ発生装置(CNG)システムに送信して、元のノイズと同様の特性を有するバックグラウンドノイズで間を埋めるのが一般的である。CNGは、バックグラウンドノイズが維持され、発話とともにオンオフが切り替わらないので、発話の間に沈黙を有することと比較して音声をより自然にする。発話の間における完全な沈黙は、不快なものとして一般に知覚され、通話が切れているという誤解につながる場合が多い。
【0006】
DTXシステムはさらに、アクティブ信号エンコーディングまたは低レートバックグラウンドノイズエンコーディングのどちらを使用するかを送信デバイスに指示する、音声区間検出器(VAD)に依存することがある。これに関して、送信デバイスは、発話をバックグラウンドノイズから判別するだけではなく、関連があるとみなされる音楽または他の信号タイプを検出するように構成されてもよい、(汎用)音声区間検出器(GSADまたはSAD)を使用することによって、他のソースタイプ同士を判別するように構成されてもよい。
【0007】
通信サービスはさらに、ステレオまたはマルチチャネルオーディオ送信をサポートすることによって拡張されてもよい。これらの場合、DTX/CNGシステムはまた、心地良く聞こえるコンフォートノイズを提供するために、信号の空間特性を考慮してもよい。
【0008】
コンフォートノイズを生成する一般的なメカニズムは、発話の間におけるバックグラウンドノイズのエネルギーおよびスペクトル形状に関する情報を送信するというものである。これは、発話セグメントの通常のコーディングよりも非常に少ないビット数を使用して行うことができる。
【0009】
受信デバイス側では、コンフォートノイズは、疑似ランダム信号を作成し、次に、送信デバイスから受信した情報に基づいて、フィルタを用いて信号のスペクトルを整形することによって生成される。信号生成およびスペクトル整形は、時間または周波数ドメインで実施することができる。
【0010】
ステレオ動作の場合、追加のパラメータが受信側に送信される。一般的なステレオ信号では、チャネルペアは高度な類似性、即ち相関を示す。現行の最新ステレオコーディングスキームは、単チャネルが高品質で符号化され、フルステレオ画像の再構築を可能にするパラメトリック記述によって補完される、パラメトリックコーディングを用いることによって、この相関を活用する。チャネルペアを単チャネルに縮小するプロセスは、ダウンミックスと呼ばれる場合が多く、結果として得られるチャネルはダウンミックスチャネルである。ダウンミックス手順は、一般的に、チャネルを混合する前にチャネル間時間差(ITD)およびチャネル間位相差(IPD)を整列させることによって、エネルギーを維持しようとする。入力信号のエネルギーバランスを維持するため、チャネル間レベル差(ILD)も測定される。ITD、IPD、およびILDは次に符号化され、ステレオチャネルペアをデコーダで再構築する逆のアップミックス手順に使用されてもよい。
【0011】
ほとんどのオーディオコーディングシステムは、入力オーディオ信号を、フレームと呼ばれる場合が多いセグメントで処理する。安定したオーディオシーンの場合、ステレオパラメータは隣接フレーム間の高度な類似性を示す。この類似性を活用するため、一般的に予測コーディングスキームが適用される。かかるスキームでは、現在のフレームパラメータの予測は、過去に復号したパラメータに基づいて導き出され、真のパラメータに対する差が符号化され、送出側と受信側との間で送信される。単純であるが効率的な予測は、最後に復号したパラメータを予測として使用するものであり、その場合、予測コーディングスキームは差動エンコーディングスキームと呼ばれる場合もある。
【発明の概要】
【0012】
予測コーディングスキームに関する課題は、概して、エラーの影響を受けやすいことである。予測シーケンスの1つまたは複数のエレメントが失われた場合、デコーダは、エラーが起こった後に長時間続くことがある予測エラーを有するようになる。この問題はエラー伝播と呼ばれ、すべての予測コーディングスキームにおいて知られている課題である。1つの解決策は、非予測コーディングを定期的間隔で強制的に行い、それによってエラー伝播を終了させることである。しかしながら、これには、非予測エンコーディングがパラメータのエンコーディング効率を下げることにつながり、それによってエンコーダの合計ビットレートが増加すること、および/または他のパラメータのエンコーディングに使えるビット数が少なくなることがあるという欠点がある。
【0013】
本開示の特定の態様およびそれらの実施形態は、これらまたは他の課題に対する解決策を提供してもよい。特定のパラメータに関して非予測コーディングを定期的間隔で強制的に行う代わりに、現在のフレームに対してコーディングモードを選択するためにエンコーダで実施される方法は、絶対コーディングおよび予測コーディングのためのビットレートを取得することを含む。方法は、取得したビットレートに基づいてビットレート差を計算することを含む。方法は、ビットレート差をローパスフィルタ処理することを含む。方法は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することを含む。
【0014】
様々な実施形態は、第1のパラメータに対して強制的に行われた非予測コーディングが、第2のパラメータのエンコーディングが必要とするビットがより少ない可能性が高いときのみ呼び出されるようにし、それによって、合計消費ビットが固定レベルを下回る尤度が増加するように、別のパラメータの以前のエンコーディングの特性を考慮する。
【0015】
エンコーダは、絶対コーディングおよび予測コーディングのためのビットレートを取得することを含む動作を実施するように適合される。動作は、取得したビットレートに基づいてビットレート差を計算することを含む。動作は、ビットレート差をローパスフィルタ処理することを含む。動作は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することを含む。
【0016】
処理回路(401)および処理回路と結合されたメモリ(403)を有し、メモリが、処理回路によって実行されると、エンコーダ(300)に絶対コーディングおよび予測コーディングのためのビットレートを取得することを含む動作を実施させる命令を含む、エンコーダ(300)。動作は、取得したビットレートに基づいてビットレート差を計算することを含む。動作は、ビットレート差をローパスフィルタ処理することを含む。動作は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することを含む。
【0017】
エンコーダ(300)の処理回路(401)によって実行されるプログラムコードを有し、それにより、プログラムコードの実行によってエンコーダ(300)に、絶対コーディングおよび予測コーディングのためのビットレートを取得することを含む動作を実施させる、コンピュータプログラムが提供される。動作は、取得したビットレートに基づいてビットレート差を計算することを含む。動作は、ビットレート差をローパスフィルタ処理することを含む。動作は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することを含む。
【0018】
エンコーダの処理回路(401)によって実行されるプログラムコードを含み、それにより、プログラムコードの実行によってエンコーダに、絶対コーディングおよび予測コーディングのためのビットレートを取得することを含む動作を実施させる、非一時的記憶媒体を備えるコンピュータプログラム製品が提供される。動作は、取得したビットレートに基づいてビットレート差を計算することを含む。動作は、ビットレート差をローパスフィルタ処理することを含む。動作は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することを含む。
【0019】
特定の実施形態は、以下の技術的利点の1つまたは複数を提供してもよい。様々な実施形態は、1つのパラメータの予測コーディングを用いてエラー伝播の問題を低減させるとともに、他のパラメータのエンコーディングに対する悪影響を最小限に抑えることができる。
【0020】
本開示のさらなる理解を提供するために含まれ、本出願に組み込まれ、本出願の一部を構成する、添付の図面は、発明的概念のいくつかの非限定的な実施形態を示す。
【図面の簡単な説明】
【0021】
【
図2】本開示のいくつかの実施形態によるステレオエンコーダおよびデコーダの構成要素を示すブロック図である。
【
図3】本開示のいくつかの実施形態による、一連のコーディングモードを実施することができるエンコーダおよびデコーダシステムの環境の一例を示すブロック図である。
【
図4】本開示のいくつかの実施形態によるステレオエンコーダの構成要素を示すブロック図である。
【
図5】本開示のいくつかの実施形態によるステレオデコーダの構成要素を示すブロック図である。
【
図6】本開示のいくつかの実施形態による仮想化環境のブロック図である。
【
図7】本開示のいくつかの実施形態によるエンコーダの動作を示すフローチャートである。
【
図8】本開示のいくつかの実施形態による、
図8に示される動作を実施する
図4のエンコーダのさらなる構成要素を示すブロック図である。
【
図9】本開示のいくつかの実施形態によるエンコーダの動作を示すフローチャートである。
【
図10】本開示のいくつかの実施形態によるエンコーダの動作を示すフローチャートである。
【
図11】本開示のいくつかの実施形態による意思決定閾値を示す図である。
【発明を実施するための形態】
【0022】
以下、本明細書で想到される実施形態のいくつかについて、添付図面を参照してさらに記載する。実施形態は、主題の範囲を当業者に伝えるための例として提供され、発明的概念の実施形態の例が示される。しかしながら、発明的概念は、多くの異なる形態で具現され得、本明細書に記載される実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの実施形態は、本開示が十分かつ完全なものとなり、当業者に様々な本発明概念の範囲を十分に伝えるように提供されている。これらの実施形態は相互排他的でないことにも留意されたい。一実施形態からの構成要素は、別の実施形態において存在する/使用されることが暗に仮定されてもよい。
【0023】
上述したように、予測コーディングスキームに関する1つの課題はエラー伝播である。エラー伝播の例を
図1に示している。絶対コーディングフレームは、予測コーディングストリークと呼ばれることがある、一連の連続する予測コーディングフレームの前に失われる。バッドフレームインジケータは、フレームが失われた(または破損した)場合に信号を送る。メモリはフレーム損失によって破損しているので、エラーは、予測コーディングストリーク(「P」によって表される)全体の間中続き、新しい絶対コーディングフレーム(「A」によって表される)が受信されるまで終わらない。同期信号に対する影響で、ソース位置が不適当に知覚されることがあり、これは予測コーディングストリーク全体にわたって続く。
【0024】
特定のパラメータに対して定期的間隔で非予測コーディングを強制的に行うことよりもむしろ、本明細書に記載する様々な実施形態は、定期的間隔で非予測コーディングを強制的に行うことの推定消費ビットを考慮し、非予測(即ち、絶対)コーディングおよび予測コーディングのためのビットレートを取得し、取得したビットレートに基づいてビットレート差を計算し、ビットレート差をローパスフィルタ処理し、ビットレート差、ローパスフィルタ処理したビットレート差、および予測モードカウンタに基づいてコーディングモードを選択することによって、ビットレート消費をより少なくする機会を獲得することを試みる。
【0025】
様々な実施形態のいくつかによれば、第1のパラメータに対して強制的に行われた非予測コーディングが、第2のパラメータのエンコーディングが必要とするビットがより少ない可能性が高いときのみ呼び出されるようにし、それによって、合計ビット消費が固定レベルを下回る尤度が増加するように、別のパラメータの以前のエンコーディングの特性を考慮する。
【0026】
様々な実施形態のいくつかによれば、エンコーディングおよび復号は、第1のパラメータを符号化し復号することを含み、第1のパラメータはインターフレームおよびイントラフレーム予測に基づいて符号化され、これらの予測は重み付け係数αを使用して組み合わされる。
【0027】
様々な実施形態は、1つのパラメータの予測コーディングを用いてエラー伝播の問題を低減させるとともに、他のパラメータのエンコーディングに対する悪影響を最小限に抑える。
【0028】
以下の記載において、様々な実施形態は、
図2に概要が示されるような、ステレオエンコーダおよびデコーダシステムのステレオエンコーダで動作する。ステレオエンコーダ210は、フレームと呼ばれるセグメントにおいて、入力された左右チャネルを処理する。ステレオ解析およびダウンミックスブロック212は、パラメトリック解析を実施し、ダウンミックスを作成する。所与のフレームmに対して、入力チャネルは次式のように記述することができる。
式中、n=0、1、2、…、N-1はフレームmにおけるサンプル数を示し、Nは解析フレームの長さである。様々な実施形態では、解析フレームは、デコーダが重畳加算戦略を使用してステレオ信号を再構築できるように、エンコーダにおける重畳によって抽出される。入力チャネルは、適切な窓関数w(n)を用いて窓処理され、離散フーリエ変換(DFT)ドメインに変換され、次式のように記述することができる。
【0029】
ここで、直交ミラーフィルタ(QMF)フィルタバンク、ハイブリッドQMFフィルタバンク、または修正離散コサイン変換(MDCT)および修正離散サイン変換(MDST)変換成分で構成される奇数DFT(ODFT)表現など、他の周波数ドメイン表現が使用されてもよいことに留意されたい。
【0030】
パラメトリック解析の場合、周波数スペクトルはバンドbに区分され、各バンドは次式の周波数係数範囲に対応する。
k=kstart(b)…kend(b),b=0,1,2,…Nbands-1
式中、Nbandsはバンドの合計数を示す。バンド限界は、一般的に、人間の聴覚の解像度を反映するように設定され、狭いバンドは低周波数、広いバンドは高周波数であることを提示する。異なるバンド解像度が異なるパラメータに使用されてもよいことに留意されたい。
【0031】
次に、信号がパラメトリック解析ブロック内で解析されて、ITD、IPD、およびILDパラメータが抽出される。ILDは音声の知覚位置に対して著しい影響を有することが注目されてもよい。したがって、ILDパラメータを高い精度で再構築して、安定した適正な位置を維持することが重要である。
【0032】
加えて、チャネルコヒーレンスが解析されてもよく、ICCパラメータが導き出されてもよい。フレームmに対するステレオパラメータのセットはP(m)で示されてもよく、パラメトリック表現に使用されるITD、IPD、ILD、およびICCパラメータの完全なセットを含む。パラメータは、パラメータエンコーダ218によって符号化され、格納されデコーダに送信されるビットストリームに追加される。
【0033】
ダウンミックスチャネルを作成する前に、ITDおよびIPDを補償して、相殺を低減し、ダウンミックスのエネルギーを最大限にするのが有益なことがある。ITD補償は、周波数変換前の時間ドメイン、または周波数ドメインの両方で実現されてもよいが、原則的に、一方または両方のチャネルの時間シフトを実施してITDを排除する。位相整列は異なる手法で実現されてもよいが、目的は、相殺が最小限に抑えられるように位相を整列させることである。これにより、ダウンミックスにおける最大エネルギーが担保される。ITDおよびIPD調節は、周波数バンドで、または全周波数スペクトルで行われてもよく、好ましくは、修正をデコーダ段で反転できるということを担保するため、量子化ITDおよびIPDパラメータを使用して行われるべきである。
【0034】
後述する実施形態は、IPDおよびITDパラメータ解析ならびに補償の実現とは独立している。換言すれば、実施形態は、IPDおよびITPがどのように解析または保証されるかに依存しない。かかる実施形態では、ITDおよびIPD調節されたチャネルはアポストロフィ(’)で示されてもよい。
【0035】
ITDおよびIPD調節された入力チャネルは次に、パラメトリック解析およびダウンミックスブロック212によってダウンミックスされて、ダウンミックス/サイド表現とも呼ばれるミッド/サイド表現を作成してもよい。ダウンミックスを実施する1つの手法は、信号の合計および差を使用するというものである。
【0036】
ダウンミックス信号XM(m,k)は、ダウンミックスエンコーダ214によって符号化されて、格納されるかまたはデコーダに送信される。このエンコーディングは、周波数ドメインで行われてもよいが、時間ドメインでも行われてもよい。その場合、DFT合成段は、ダウンミックス信号の時間ドメインバージョンを作成する必要があり、それが次いで、ダウンミックスエンコーダに供給される。しかしながら、時間ドメインへの変換により、特別なハンドリングを要するであろうステレオパラメータとの遅延不整合が導入されることがある。これは、追加の遅延を導入することによって、またはパラメータを補間して、ダウンミックスおよびステレオパラメータのデコーダ合成が整列されるよう担保することによって、解決することができる。
【0037】
サイド信号X
S(m,k)の再構築は、ダウンミックス、およびローカルパラメトリック合成によって取得されたステレオパラメータから生成されてもよい。サイド信号予測
は、次式のダウンミックス信号に基づいて導き出すことができる。
式中、p(・)は予測関数である。予測残差は次式にしたがって形成されてもよく、
次に残差エンコーダ216によって符号化される。ダウンミックス、ステレオパラメータ、および場合によっては残差信号の符号化された表現は、送信または格納されて、デコーダ220によって再構築される。ダウンミックスデコーダ224は復号されたダウンミックス信号を再構築し、再構築されたパラメータはパラメータデコーダ228によって取得され、場合によっては、再構築された残差信号は残差デコーダ226によって生成される。再構築されたダウンミックス信号、再構築されたパラメータ、および残差信号はステレオシンセサイザ222に入力されて、再構築されたステレオ信号が作成される。
【0038】
図3は、本明細書に記載されるように、マルチチャネルビットストリームを符号化し復号するのに使用されてもよい、エンコーダ300およびデコーダ302の動作環境の一例を示している。エンコーダ300は、ネットワーク304および/またはストレージ306および/またはオーディオレコーダ308からオーディオを受信し、後述するようにオーディオをビットストリームに符号化し、符号化されたオーディオを、ネットワーク310を介してデコーダ302に送信する。ストレージデバイス306は、ストアまたはストリーミングオーディオサービスのストレージリポジトリ、別個のストレージコンポーネント、モバイルデバイスのコンポーネントなど、マルチチャネルオーディオ信号のストレージデポジトリの一部であってもよい。デコーダ302は、メディアプレーヤー314を有するデバイス312の一部であってもよい。デバイス312は、モバイルデバイス、セットトップデバイス、デスクトップコンピュータなどであってもよい。他の実施形態では、デコーダ300は、スタンドアロン型サーバ、クラウド実装型サーバ、分散型サーバのハードウェアおよび/またはソフトウェアにおいて、あるいはサーバファームの処理リソースとして具現化されてもよい。たとえば、デコーダは、クラウド実装型遠隔会議アプリケーションの一部であってもよい。デコーダ300は、ネットワークのトランスポートレイヤを介して送信される、符号化されたビットストリームを受信する。動作中、デコーダ300は、本明細書に記載するようなビットストリームのフレームを受信し処理する。
【0039】
図4は、本発明概念のいくつかの実施形態による、オーディオフレームを符号化するように構成されたエンコーダ300のエレメントを示すブロック図である。図示されるように、エンコーダ300は、他のデバイス/エンティティ/機能などとの通信を提供するように構成された、ネットワークインターフェース回路405(ネットワークインターフェースとも呼ばれる)を含んでもよい。エンコーダ300はまた、ネットワークインターフェース回路405に結合されたプロセッサ回路401(プロセッサとも呼ばれる)、およびプロセッサ回路に結合されたメモリ回路403(メモリとも呼ばれる)を含んでもよい。メモリ回路403は、プロセッサ回路401によって実行されると、プロセッサ回路に、本明細書に開示される実施形態による動作を実行させる、コンピュータ可読プログラムコードを含んでもよい。
【0040】
他の実施形態によれば、プロセッサ回路401は、別個のメモリ回路が必要とされないように、メモリを含むように規定されてもよい。本明細書で考察するように、エンコーダ300の動作は、プロセッサ401および/またはネットワークインターフェース405によって実施されてもよい。たとえば、プロセッサ401は、デコーダ302に通信を送信し、および/または他のエンコーダノード、デポジトリサーバなど、1つまたは複数の他のネットワークノード/エンティティ/サーバからネットワークインターフェース405を通して通信を受信するように、ネットワークインターフェース405を制御してもよい。さらに、モジュールはメモリ403に格納されてもよく、これらのモジュールは、モジュールの命令がプロセッサ401によって実行されると、プロセッサ401がそれぞれの動作を実施するように、命令を提供してもよい。
【0041】
図5は、本発明概念のいくつかの実施形態による、オーディオフレームを符号化するように構成されたデコーダ302のエレメントを示すブロック図である。図示されるように、デコーダ302は、他のデバイス/エンティティ/機能などとの通信を提供するように構成された、ネットワークインターフェース回路505(ネットワークインターフェースとも呼ばれる)を含んでもよい。デコーダ302はまた、ネットワークインターフェース回路505に結合されたプロセッサ回路501(プロセッサとも呼ばれる)、およびプロセッサ回路に結合されたメモリ回路503(メモリとも呼ばれる)を含んでもよい。メモリ回路503は、プロセッサ回路501によって実行されると、プロセッサ回路に、本明細書に開示される実施形態による動作を実行させる、コンピュータ可読プログラムコードを含んでもよい。
【0042】
他の実施形態によれば、プロセッサ回路501は、別個のメモリ回路が必要とされないように、メモリを含むように規定されてもよい。本明細書で考察するように、デコーダ302の動作は、プロセッサ501および/またはネットワークインターフェース505によって実施されてもよい。たとえば、プロセッサ501は、デコーダ302に通信を送信し、および/または他のエンコーダノード、デポジトリサーバなど、1つまたは複数の他のネットワークノード/エンティティ/サーバからネットワークインターフェース505を通して通信を受信するように、ネットワークインターフェース505を制御してもよい。さらに、モジュールはメモリ503に格納されてもよく、これらのモジュールは、モジュールの命令がプロセッサ501によって実行されると、プロセッサ501がそれぞれの動作を実施するように、命令を提供してもよい。
【0043】
図6は、いくつかの実施形態によって実装される機能が仮想化されてもよい、仮想化環境600を示すブロック図である。本文脈では、仮想化とは、ハードウェアプラットフォーム、ストレージデバイス、およびネットワーキングリソースを仮想化することを含んでもよい、装置またはデバイスの仮想バージョンを作成することを意味する。本明細書で使用するとき、仮想化は、本明細書に記載する任意のデバイスまたはその構成要素に適用することができ、機能性の少なくとも一部分が1つまたは複数の仮想構成要素として実装される実装形態に関する。いくつかの実施形態では、本明細書に記載する機能の一部または全部は、ネットワークノード、ユーザ機器(UE)、コアネットワークノード、またはホストとして動作するハードウェアコンピューティングデバイスなど、ハードウェアノードのうち1つまたは複数によってホストされる、1つまたは複数の仮想環境600において実装される1つまたは複数の仮想マシン(VM)によって実行される、仮想構成要素として実装されてもよい。さらに、仮想ノードが無線接続性を必要としない実施形態(たとえば、コアネットワークノードまたはホスト)では、ノードは完全に仮想化されてもよい。
【0044】
アプリケーション602(あるいは、ソフトウェアインスタンス、仮想アプライアンス、ネットワーク機能、仮想ノード、仮想ネットワーク機能などと呼ばれることがある)は、本明細書に開示される実施形態のうちのいくつかの特徴、機能、および/または利益のうちいくつかを実現する、仮想化環境600で稼働する。
【0045】
ハードウェア604は、処理回路、ハードウェア処理回路で実行可能なソフトウェアおよび/または命令を格納するメモリ、ならびに/あるいはネットワークインターフェース、入出力インターフェースなど、本明細書に記載するような他のハードウェアデバイスを含む。ソフトウェアは、1つまたは複数の仮想化レイヤ606(ハイパーバイザまたは仮想マシンモニタ(VMM)とも呼ばれる)をインスタンス化し、VM 608Aおよび608B(そのうち1つまたは複数が、全体としてVM 608と呼ばれてもよい)を提供し、ならびに/あるいは本明細書に記載するいくつかの実施形態に関連して記載される機能、特徴、および/または利益のいずれかを実施するように、処理回路によって実行されてもよい。仮想化レイヤ606は、VM 608に対してネットワーキングハードウェアのように見える仮想動作プラットフォームを提示してもよい。
【0046】
VM 608は、仮想処理、仮想メモリ、仮想ネットワーキングまたはインターフェース、および仮想ストレージを備え、対応する仮想化レイヤ606によって稼働されてもよい。仮想アプライアンス602の事例の異なる実施形態が、VM 608の1つまたは複数で実装されてもよく、実装は異なる手法で行われてもよい。ハードウェアの仮想化は、いくつかの文脈では、ネットワーク機能仮想化(NFV)と呼ばれる。NFVは、多くのネットワーク機器タイプを、データセンタに配置することができる業界標準の大容量サーバハードウェア、物理スイッチ、および物理ストレージ、ならびに顧客構内機器上に集約するのに使用されてもよい。
【0047】
NFVの文脈では、VM 608は、物理的な仮想化されていないマシン上で実行しているかのようにしてプログラムを稼働する、物理マシンのソフトウェア実装形態であってもよい。各VM 608と、そのVMを実行するハードウェア604の部分とは、VM専用のハードウェアであろうと、および/またはその仮想マシンと他のVMとで共有されるハードウェアであろうと、別個の仮想ネットワークエレメントを形成する。さらに、NFVの文脈では、仮想ネットワーク機能は、ハードウェア604の上の1つまたは複数のVM 608で稼働する特定のネットワーク機能をハンドリングすることを担い、アプリケーション602に対応する。
【0048】
ハードウェア604は、一般的なまたは特定の構成要素を有するスタンドアロンネットワークノードにおいて実現されてもよい。ハードウェア604は、仮想化を介していくつかの機能を実現してもよい。あるいは、ハードウェア604は、多くのハードウェアノードが協働し、特に、アプリケーション602のライフサイクル管理を監督する、管理およびオーケストレーション610を介して管理される、(たとえば、データセンタまたは顧客構内機器(CPE)の場合のような)ハードウェアのより大きいクラスタの一部であってもよい。いくつかの実施形態では、ハードウェア604は、1つまたは複数のアンテナに結合されてもよい、1つまたは複数の送信機と1つまたは複数の受信機とをそれぞれ含む、1つまたは複数の無線ユニットに結合される。無線ユニットは、1つまたは複数の適切なネットワークインターフェースを介して他のハードウェアノードと直接通信してもよく、無線アクセスノードまたは基地局など、無線能力を有する仮想ノードを提供するのに、仮想構成要素と組み合わせて使用されてもよい。いくつかの実施形態では、一部のシグナリングは、別法としてハードウェアノードと無線ユニットとの間の通信のために使用されてもよい、制御システム612の使用を含むことができる。
【0049】
パラメータエンコーダ218に戻ると、サイド信号予測因子は、サイド信号と予測サイド信号との間の平均二乗誤差(MSE)を最小限に抑える単一の予測因子gとして実現されてもよい。さらに、予測は好ましくは、周波数バンドに適用されてもよく、各周波数バンドbに対する予測パラメータを伴う。
【0050】
バンドbの係数が列ベクトルX
S,b(m)およびX
M,b(m)として記述される場合、最小MSE予測因子は次式として導き出すことができる。
【0051】
しかしながら、この式は、より安定した予測パラメータを作成するように単純化されてもよい。予測パラメータg
b(m)は、レベル差を直接表さないが、左右のチャネルに転送されるダウンミックス信号の部分を制御してもよい。したがって、ILDパラメータに関しては、知覚された音声位置に対して著しい影響を有する。予測パラメータに対するさらなる背景については、PCT出願第PCT/EP2019/058650(公報番号WO2019/193156)を参照されたい。予測パラメータg
b(m)は次に、インターフレーム予測コーディングスキームを使用して符号化され、ここで、フレームmの間の差が考慮される。各バンドbに対して、前のフレームの再構築されたパラメータ
からの差が次式にしたがって計算される。
【0052】
エンコーダ300は、どちらが最も低い消費ビットをもたらすかに応じて、gb(m)またはΔgb(m)のどちらかを符号化することを選んでもよい。一実施形態では、gb(m)またはΔgb(m)は、スカラ量子化器を使用して量子化され、次に量子化インデックスに対してエントロピー符号化器が使用されてもよい。算術符号、ハフマン符号、およびゴロム・ライス符号が、エントロピー符号化器として使用されてもよい例である。一般的なシナリオでは、エントロピー符号化器は、より小さい符号語を小さいばらつきに、即ちΔgb(m)の小さい値に割り振る。これは、Δgb(m)を使用する予測コーディングが、安定したオーディオシーンに対して少ない数のビットnbitspred(m)を必要とする可能性が高いことを意味する。大きいΔgb(m)をもたらす高速シーン変更の場合、gb(m)のエンコーディングに対する消費ビットnbitsabs(m)はより少なくてもよい。符号化スキームは次のような2つのモードを有するであろう。
1)ABSOLUTE:gb(m)のエンコーディング、および
2)PREDICTIVE:Δgb(m)のエンコーディング
【0053】
符号化モードg
mode(m)∈{ABSOLUTE,PREDICTIVE}は、各フレームmに対して符号化する必要があるので、デコーダ302は、符号化された値が次のどちらであるか分かっている。
1)ABSOLUTE:g
b(m)、または
【0054】
さらに、この符号化スキームの変形が本開示の範囲内で可能である。たとえば、予測パラメータg
b(m)が、残差コーディングエネルギーまたは対応する表現など、別のパラメータとの高い相関を示す場合、これらのパラメータを一緒に符号化するのが有益なことがある。本質的な部分は、符号化スキームが予測モードおよび絶対コーディングモードを有すること、またこの決定が符号化され、デコーダに信号で送られることである。一連の連続するPREDICTIVEコーディングモードは、「予測コーディングストリーク」または「予測ストリーク」と呼ばれることがあり、通常、シーンが安定しているオーディオセグメントに関して観察されるであろう。予測ストリークの始まりにオーディオフレームが失われた場合、パラメータは、ストリーク全体の間、エラー伝播を伴うことがある(
図1の例証を参照)。
【0055】
また、ABSOLUTEおよびPREDICTIVEコーディングモードは各々、それぞれ絶対または予測コーディングモードである共通の性質を有するモードのサブセットを表すことが可能である。たとえば、絶対コーディングモードは、イントラフレーム予測、パラメータのエントロピーコーディングに依存するか、または単純に、固定幅のインデックスの可能なパラメータの列挙を表す場合がある。予測コーディングモードのサブセットについては、既に符号化され復号されているパラメータにすべて依存するであろう。
【0056】
g
b(m)の復号におけるエラー伝播の影響を低減して、エンコーダとデコーダとの間でパケット損失を経験した場合の、再構築された対応部分
を形成するため、予測ストリークを最大時間長に有効に制限するABSOLUTEコーディングが、定期的間隔で強制的に行われてもよい。しかしながら、これは、ABSOLUTEコーディングが強制的に行われるフレームに関して、g
b(m)の効率が低い符号化につながることがある。この符号化スキームは次式にしたがって実現されてもよい。
式中、pred_allowed(m)は、予測コーディングが許可されるかを表す任意のフラグである。pred_allowed(m)は、最後のABSOLUTEコーディングされたフレーム以降のフレームの数に少なくとも基づくので、PREDICTIVEモードは、予測フレームの最大数に達すると使用不能にされる。たとえば、
式中、predcount(m)は、最後のABSOLUTEコーディングされたフレーム以降のフレームの数である。pred
allowed(m)の任意の実施形態は、次式にしたがって得ることができる。
または
式中、「≦」または「=」の使用により、MAX_PRED_STREAK_M1+1に等しい有効予測ストリークが得られ、または換言すれば、
MAX_PRED_STREAK=MAX_PRED_STREAK_M1+1
pred_allowed(m)はさらに、たとえば、コーディングモードの切替えの後、または予測ストリークが壊れるはずである他の事例において、コーディングモードの予測モードが許可または却下されるべき状況を反映するように補正されてもよい。
【0057】
predcount(m)変数は、始動時にゼロに初期化され、後で次式にしたがって更新されてもよい。
【0058】
predcount(m)は、現在のフレームmのg
mode(m)に応じて決まるので、pred_allowed(m)は一般的に、前のフレームm-1からのpredcount(m-1)に基づくであろうことに留意されたい。これは、予測ストリークで所望の数のフレームが達成されるように、MAX_PRED_STREAK定数で説明される必要があるだろう。MAX_PRED_STREAKの一般的な値は、MAX_PRED_STREAK=10であってもよく、これはフレームステップ20msの場合の200msに対応する。コンフォートノイズ生成の場合、フレームレートは減少されてもよく、フレームは、たとえば、アクティブ信号のコーディングの場合の8フレームごとに対応する、160msごとに送信されてもよい。そのような場合、predcount(m)は、コンフォートノイズの間に同様の回復時間を有するように、より大きいステップで更新されてもよい。たとえば、predcount(m)は、次式にしたがってより大きいステップで更新されてもよい。
【0059】
上述のモード選択の欠点は、絶対コーディングが強制的に行われた場合、MAX_PRED_STREAKに達したときに、予測コーディングよりも絶対コーディングを選択するコストが大きくなることがあるという点である。
【0060】
次に、本発明のいくつかの実施形態による、
図7のフローチャートを参照して、エンコーダ300(
図4および
図8のブロック図の構造を使用して実現される)の動作について説明する。たとえば、モジュールは、
図4のメモリ403に格納されてもよく、これらのモジュールは、モジュールの命令がそれぞれのエンコーダ処理回路401によって実行されたとき、エンコーダ300がフローチャートのそれぞれの動作を実施するような、命令を提供してもよい。
【0061】
どのコーディングモード(即ち、g
mode(m))を選択するかの決定は、nbits
abs(m)とnbits
pred(m)との推定平均差に基づく。
図8では、ブロック802および804は、ブロック725を実施して、絶対コーディングに対するビットレートnbits
abs(m)および予測コーディングに対するビットレートnbits
pred(m)を取得する。nbits
pred(m)の計算はパラメータメモリ806に基づく。nbits
abs(m)を計算するとき、2つ以上の絶対コーディングモードが検討されてもよく、nbits
abs(m)は、これら絶対コーディングモードの最小値に設定されるべきである。たとえば、エントロピーコーディング方法は、場合によっては、二値フォーマットでインデックスを直接符号化するよりも大きいビットレートをもたらしてもよい。この場合、フォールバック解として直接インデックスエンコーディングを選択するのが好ましい。
【0062】
ブロック730で、エンコーダ300は、取得したビットレートに基づいてビットレート差を計算する。
図8で、ブロック808はビットレート差bitdiff(m)を演算する。いくつかの実施形態では、ビットレート差は次式にしたがって計算される。
bitdiff(m)=nbits
abs(m)-nbits
pred(m)
【0063】
ブロック735で、エンコーダ300はビットレート差をローパスフィルタ処理する。
図8では、ブロック812でローパスフィルタ処理を実施する。いくつかの実施形態では、エンコーダ300は、次式にしたがってビットレート差をローパスフィルタ処理する。
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)
式中、γは、適切な値がγ=0.06、またはγ∈[0.01,0.20]の範囲であってもよい、ローパスフィルタ定数である。
【0064】
ビット差が一定(たとえば、bitdiff(m)=constant D)の場合、MAX_PRED_STREAKの間隔で定期的に強制的に行われる絶対コーディングの平均コストは、D/MAX_PRED_STREAKとなる。predcount(m)フレーム後の絶対フレームをコード化する機会を捕らえたい場合、これは同等またはより低いコストをもたらすはずである。即ち、
bitdiff(m)/predcount(m-1)≦D/MAX_PRED_STREAK
最終的に、これは、絶対コーディングのコストが定期的に強制的に行われる間隔の推定コストよりも厳密に大きいときのみ、予測モードを選択する条件として表されてもよい。
bitdiff(m)/predcount(m-1)>D/MAX_PRED_STREAK
【0065】
いくつかの実施形態では、定数Dは、ローパスフィルタ処理されたビットレート差bitdiffLP(m)を使用して近似させることができ、式は次式となる。
bitdiff(m)>bitdiffLP(m)・predcount(m-1)/MAX_PRED_STREAK
【0066】
これは、
図9に示されるような決定閾値に対応する。より従来的な方策が望ましい場合、同調定数Cが追加されてもよい。たとえば、同調定数Cを、次式にしたがって定数Dとともに利用することができる。
bitdiff(m)>C・bitdiff
LP(m)・predcount(m-1)/MAX_PRED_STREAK
式中、C∈[0,1]である。C=0は、必要なビットが予測コーディング以下のとき、bits
abs(m)≦bit
diff(m)、絶対コーディングのみを選択する、即ち、bits
abs(m)>bits
diff(m)のときに予測コーディングを選択する、本来の挙動となることに留意されたい。C=1は、定数bitdiff
LP(m)=Dの場合の理論上最適条件となるが、現実的に変動するbitdiff
LP(m)に対してわずかにより従来的な方策が、C=0.8に設定することによって見出されてもよい。pred_allowed(m)がどのように計算されるかに応じて、式は次式にしたがって書かれてもよいことに留意されたい。
bitdiff(m)>C・bitdiff
LP(m)・predcount(m-1)/(MAX_PRED_STREAK_M1+1)
【0067】
ブロック740で、エンコーダ300は、ビットレート差、ローパスフィルタ処理されたビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択する。いくつかの実施形態では、コーディングモードの選択は、同調定数Cを含む式を、次式にしたがったコーディングモードセレクタ816によるg
mode(m)の選択と組み合わせることに基づく。
pred_allowed(m)フラグが存在しない場合、式は次式にしたがって書かれてもよい。
【0068】
MAX_PRED_STREAKの前に絶対コーディングの可能な選択肢を考慮しようとする別の実施形態は、次式にしたがって実現されてもよい。
式中、Aは定数であり、たとえば、A=0.4またはA∈[0,2]の範囲である。このように、予測ストリークは限界MAX_PRED_STREAK内で保たれるが、コスト(nbits
abs(m)-nbits
pred(m))が十分に低いことがみなされた場合、限界に達する前にコーディングモードをABSOLUTEモードに切り替えることは依然として可能である。これは、最後の絶対コーディングモード以降のフレーム数が増加するにつれて、絶対コーディングモードを選択する緊急性が増加するとみなすことができる。定数Aを適切に設定することによって、特定のタイプの材料を所与として、またMAX_PRED_STREAKフレーム後に強制的に行われる絶対コーディングと比較して、平均ビットレートおよび予測ストリークの平均長さを低減するのが可能なことがある。
【0069】
ブロック745によって表されるように、予測モードがエンコーダ300によって選択された場合、エンコーダ300は、ブロック750で、コーディングモードを予測モードに設定し、ブロック755で、予測モードカウンタを増分する(たとえば、predcount(m)。
図8では、パラメータエンコーダ818は、ブロック750で、コーディングモードを予測モードに設定する。予測フレームカウンタブロック810は、予測モードカウンタの増分を実施する。
【0070】
予測モードが、ブロック745によって表されるように、エンコーダ300によって選択されない場合、エンコーダ300は、ブロック715で、コーディングモードを絶対コーディングモードに設定し、ブロック720で、予測モードカウンタを初期値(たとえば、predcount(m))にリセット(または設定)する。初期値は、0、1、または他の任意の値であってもよい。
図8では、パラメータエンコーダ818は、ブロック750で、コーディングモードを絶対モードに設定する。予測フレームカウンタブロック810は、予測モードカウンタのリセット/設定を実施する。
【0071】
他のいくつかの実施形態では、予測コーディングは特定のフレームに対して許可されないことがある。したがって、これらの実施形態では、エンコーダ300は予測コーディングが許可されるか否かを判定する。これは
図9に示されている。
【0072】
図9に移って、ブロック715~755は、
図7で上述されており、ここでは繰り返さないものとする。ブロック910で、エンコーダ300は、予測コーディングが許可されるかを判定する。これを判定する1つの手法は、pred_allowed(m)インジケータをチェックすることによるものである。上述したように、pred_allowed(m)インジケータは、予測モードカウンタpredcount(m)(たとえば、predcount(m-1))に基づく。判定は
図8のブロック814で実施される。上述したように、いくつかの実施形態では、predcount(m-1)が許可された予測フレームの最大数未満のとき、予測コーディングが許可される。換言すれば、predcount(m-1)が許可された予測フレームの最大数超過のときは、予測コーディングは許可されない。他の実施形態では、predcount(m-1)が許可された予測フレームの最大数以上のときは、予測コーディングは許可されない。他の実施形態では、predcount(m-1)が許可された予測フレームの最大数以下のとき、予測コーディングが許可される。predcount(m)はフレームごとに1ずつ増加するので、predcount(m-1)が許可された予測フレームの最大数に等しいかをチェックすることによって、条件が評価されてもよい。
【0073】
いくつかの実施形態では、pred_allowed(m)インジケータはフラグである。
図10は、フラグを設定する実施形態を示している。
図10に移って、ブロック1000で、エンコーダ300は、予測カウントが予測フレームの最大数未満かを判定する。予測カウントが予測フレームの最大数未満であるという判定に応答して、方法は、ブロック1010で、予測コーディングが許可されることを示すフラグを設定することを含む。予測カウントが予測フレームの最大数超過であるという判定に応答して、方法は、ブロック1020で、予測コーディングが許可されないことを示すフラグを設定することを含む。予測カウントが予測フレームの最大数に等しいとき、既定値は、予測コーディングが許可されることを示すか、または予測コーディングが許可されないことを示すフラグを設定することであり得る。他の設定を使用してフラグを設定することができ、他の設定を、pred_allowed(m)がTRUEであるときの本明細書の実施形態に記載する。
【0074】
図9に戻ると、予測コーディングが許可されないことに応答して、エンコーダ300は、ブロック715で、コーディングモードを絶対コーディングモードに設定し、上述したように、ブロック720で、予測モードカウンタをゼロに設定またはリセットする。
【0075】
別の実施形態では、ABSOLUTEおよびPREDICTIVE復号モードの間での選択は、コーデックの第2のパラメータの符号化によって影響を受けることがある。単にフレームをカウントする代わりに、選択は第2のパラメータの潜在的エラー回復に関係していることがある。第2のパラメータC(m)が、イントラフレーム予測C
intra(m)、インターフレーム予測C
inter(m)、および符号化された予測残差r(m)を含む組み合わされた予測を使用して、符号化されるものと仮定する。再構築されたパラメータ
を、再構築されたイントラフレーム予測
、再構築されたインターフレーム予測
、および再構築された予測残差
に基づいて形成されるようにする。たとえば、再構築されたパラメータ
は、いくつかの実施形態では、次式にしたがって決定することができる。
【0076】
重み付けパラメータα(m)は、絶対コーディングとして見ることができるイントラフレーム予測の割合、対、過去のフレームに応じて決まるインターフレーム予測の割合を制御する。パラメータは一般的に安定しているので、重みα(m)は、高速エラー回復(大きいα(m))対残差コーディングにおける低ビットレート(小さいα(m))を均衡させる。送信エラーが起こった場合、デコーダのメモリはエンコーダとの同期から外れる。これは、次式にしたがって、インターフレーム予測におけるエラーεとしてモデル化することができる。
【0077】
【0078】
送信エラーがフレームmで起こった場合、Mフレーム後の残差エラーε
resは次式のように表すことができる。
【0079】
【0080】
再帰的定義を使用して、これを次式のように表すことができる。
【0081】
1に近いα(m)のシーケンス、つまりイントラフレーム予測に対する大きい重みは、相対エラーを迅速にゼロに向かって下げることに留意されたい。ゼロに近いα(m)の場合、過去のフレームからのインターフレーム予測に対する重みは大きくなり、相対エラーはより低いレートで減少していく。同等に、回復パラメータをR(M)=(1-ε
rel(M))として既定することができる。また、次式にしたがって計算されてもよい。
【0082】
コヒーレンスパラメータのエラー回復レートを解析することによって、第1および第2のパラメータのエラーレジリエンスを均衡させるように、サイド予測パラメータg
b(m)の絶対コーディングをトリガすることができる。これを実現する1つの手法は、次式にしたがってpred_allowed(m)に影響を与えるというものである。
【0083】
式中、ε
THRは相対エラーの閾値である。たとえば、ε
THR=0.01の設定で、潜在的な相対エラーが1パーセント未満に減少すると、予測は許可されない。更新されたε
ref(m)は現在のフレームmのモード選択に応じて決まるので、prep_allowed(m)は、前のフレームm-1の相対エラーに応じて決まる必要がある。さらに、たとえば、フレームカウンタおよび次式による回復解析を使用して、組み合わせが可能である。
【0084】
モード選択は、次式のように適合させることができる、ε
rel(m-1)を使用するようにさらに適合させることができることに留意されたい。
式中、Bは定数である。
【0085】
相対エラーε
rel(m)を演算することの代替例は、α(m)重み付け係数を累積するというものである。
【0086】
同様に、α
acc(m)は、次式によるpred_allowed(m)に影響を及ぼすのに使用されてもよく、
式中、α
acc,maxは、エラー回復のレベルに対応する定数または、次式によるモード選択に影響を及ぼすのに使用されてもよい。
式中、Gは、符号化される入力材料および材料に対して観察されるα(m)値を所与として、好適なビットマージンを与える定数である。
【0087】
様々な実施形態の上記の説明では、本明細書で使用される専門用語は、具体的な実施形態を説明するためのものにすぎず、本発明概念を限定するものではないことを理解されたい。別段に規定されていない限り、本明細書で使用される(技術用語および科学用語を含む)すべての用語は、本発明概念が属する技術の当業者によって通常理解されるものと同じ意味を有する。通常使用される辞書において規定される用語など、用語は、本明細書および関連技術のコンテキストにおけるそれらの用語の意味に従う意味を有するものとして解釈されるべきであり、明確にそのように本明細書で規定されない限り、理想的なまたは過度に形式的な意味において解釈されないことをさらに理解されよう。
【0088】
あるエレメントが、別のエレメントに「接続された」、「結合された」、「応答する」、またはそれらの変形例であるものと呼ばれるとき、そのエレメントは、別のエレメントに直接、接続され、結合され、または応答することができ、あるいは介在するエレメントが存在してもよい。対照的に、あるエレメントが、別のエレメントに「直接接続された」、「直接結合された」、「直接応答する」、またはそれらの変形例であるものと呼ばれるとき、介在するエレメントは存在しない。同様の番号は全体を通して同様のエレメントを指す。さらに、本明細書で使用される、「結合された」、「接続された」、「応答する」、またはそれらの変形例は、無線で結合された、無線で接続された、または無線で応答する、を含んでもよい。本明細書で使用するとき、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを示していない限り、複数形も含むものとする。簡潔および/または明解にするため、よく知られている機能または構築は詳細に説明されないことがある。「および/または」(「/」と略される)という用語は、関連するリストされた項目のうち1つまたは複数のありとあらゆる組合せを含む。
【0089】
様々なエレメント/動作を説明するために、第1の、第2の、第3の、などの用語が本明細書で使用されることがあるが、これらのエレメント/動作は、これらの用語によって限定されるべきでないことを理解されよう。これらの用語は、あるエレメント/動作を別のエレメント/動作と区別するために使用されるにすぎない。したがって、本発明概念の教示から逸脱することなしに、いくつかの実施形態における第1のエレメント/動作が、他の実施形態において第2のエレメント/動作と呼ばれることがある。同じ参照番号または同じ参照符号は、本明細書全体にわたって同じまたは同様のエレメントを示す。
【0090】
本明細書で使用される、「備える、含む(comprise)」、「備える、含む(comprising)」、「備える、含む(comprises)」、「含む(include)」、「含む(including)」、「含む(includes)」、「有する(have)」、「有する(has)」、「有する(having)」という用語、またはそれらの変形態は、オープンエンドであり、1つまたは複数の述べられた特徴、完全体、エレメント、ステップ、構成要素または機能を含むが、1つまたは複数の他の特徴、完全体、エレメント、ステップ、構成要素、機能またはそれらのグループの存在または追加を排除しない。さらに、本明細書で使用される、「たとえば(exempli gratia)」というラテン語句に由来する「たとえば(e.g.)」という通例の略語は、前述の項目の一般的な1つまたは複数の例を紹介するかまたは具体的に挙げるために使用されてもよく、そのような項目を限定するものではない。「即ち(id est)」というラテン語句に由来する「即ち(i.e.)」という通例の略語は、より一般的な具陳から特定の項目を具体的に挙げるために使用されてもよい。
【0091】
例示的な実施形態が、コンピュータ実装方法、装置(システムおよび/またはデバイス)および/またはコンピュータプログラム製品のブロック図および/またはフローチャート例示を参照しながら本明細書で説明される。ブロック図および/またはフローチャート例示のブロック、ならびにブロック図および/またはフローチャート例示中のブロックの組合せが、1つまたは複数のコンピュータ回路によって実施されるコンピュータプログラム命令によって実装できることを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ回路、専用コンピュータ回路、および/またはマシンを作り出すための他のプログラマブルデータ処理回路のプロセッサ回路に提供されてもよく、したがって、コンピュータおよび/または他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、ブロック図および/またはフローチャートの1つまたは複数のブロックにおいて指定された機能/行為を実装するために、およびそれにより、ブロック図および/またはフローチャートの(1つまたは複数の)ブロックにおいて指定された機能/行為を実装するための手段(機能)および/または構造を作成するために、トランジスタ、メモリロケーションに格納された値、およびそのような回路内の他のハードウェア構成要素を変換および制御する。
【0092】
これらのコンピュータプログラム命令はまた、コンピュータまたは他のプログラマブルデータ処理装置に特定の様式で機能するように指示することができる、有形コンピュータ可読媒体に格納されてもよく、したがって、コンピュータ可読媒体に格納された命令は、ブロック図および/またはフローチャートの1つまたは複数のブロックにおいて指定された機能/行為を実装する命令を含む製造品を作り出す。したがって、本発明概念の実施形態は、ハードウェアで、および/または「回路」、「モジュール」またはそれらの変形例と総称して呼ばれることがある、デジタル信号プロセッサなどのプロセッサ上で稼働する(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)ソフトウェアで具現されてもよい。
【0093】
また、いくつかの代替実装形態では、ブロック中で言及される機能/行為は、フローチャート中で言及される順序から外れて行われてもよいことに留意されたい。たとえば、連続して図示された2つのブロックが、関連する機能/動作に応じて、実際には実質的に並行して実行されてもよく、またはブロックはときには逆順で実行されてもよい。さらに、フローチャートおよび/またはブロック図の所与のブロックの機能が、複数のブロックに分離されてもよく、ならびに/あるいはフローチャートおよび/またはブロック図の2つまたはそれ以上のブロックの機能が、少なくとも部分的に統合されてもよい。最後に、他のブロックが、示されているブロック間に追加/挿入されてもよく、ならびに/あるいは発明的概念の範囲から逸脱することなく、ブロック/動作が省略されてもよい。さらに、図のうちのいくつかが、通信の主要な方向を示すために通信経路上に矢印を含むが、通信が、図示された矢印と反対方向に行われてもよいことを理解されたい。
【0094】
本発明概念の原理から実質的に逸脱することなく、実施形態に対して多くの変形および修正を行うことができる。すべてのそのような変形および修正は、本発明概念の範囲内で本明細書に含まれるものとする。したがって、上記で開示された主題は、例示であり、限定するものではないとみなされるべきであり、実施形態の例は、本発明概念の趣旨および範囲内に入る、すべてのそのような修正、拡張、および他の実施形態をカバーするものとする。したがって、法によって最大限に許容される限りにおいて、本発明概念の範囲は、実施形態およびそれらの等価物の例を含む、本開示の最も広い許容可能な解釈によって決定されるべきであり、上記の詳細な説明によって制限または限定されるべきでない。
【手続補正書】
【提出日】2024-08-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
現在のフレームに対するコーディングモードを選択するための、エンコーダ(300)で実行される方法であって、
絶対コーディングおよび予測コーディングに対するビットレートを取得すること(725)と、
取得した前記ビットレートに基づいてビットレート差を計算すること(730)と、
前記ビットレート差をローパスフィルタ処理すること(735)と、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択すること(740)と
を含む、方法。
【請求項2】
予測コーディングモードを選択することに応答して、
前記コーディングモードを前記予測コーディングモードに設定すること(750)と、
前記予測モードカウンタを増分すること(755)と
をさらに含む、請求項1に記載の方法。
【請求項3】
絶対コーディングモードを選択することに応答して、
前記コーディングモードを前記絶対コーディングモードに設定すること(715)と、
前記予測モードカウンタを初期値にリセットすること(720)と
をさらに含む、請求項1または2に記載の方法。
【請求項4】
予測コーディングが許可されるか否かを判定することが、予測コーディングが許可されることをフラグが示すかを判定することを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
予測コーディングが許可されることを前記フラグが示すかを判定することが、
予測カウントが予測フレームの最大数未満かを判定すること(1000)と、
前記予測カウントが予測フレームの前記最大数未満であるという判定に応答して、予測コーディングが許可されることを示すようにフラグを設定すること(1010)と、
前記予測カウントが予測フレームの前記最大数超過であるという判定に応答して、予測コーディングが許可されないことを示すように前記フラグを設定すること(1020)と
を含む、請求項4に記載の方法。
【請求項6】
予測コーディングが許可されるか否かを判定すること(910)と、
予測コーディングが許可されないという判定に応答して、
コーディングモードを絶対コーディングモードに設定すること(715)と、
前記予測モードカウンタを初期値にリセットすること(720)と
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項7】
前記ビットレート差を計算することが、次式にしたがって前記ビットレート差を計算することを含み、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)
式中、nbits
abs(m)が絶対コーディングに対するビットレートであり、nbits
pred(m)が予測コーディングに対するビットレートである、
請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ビットレート差をローパスフィルタ処理することが、次式にしたがって前記ビットレート差をローパスフィルタ処理することを含み、
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)
式中、γがローパスフィルタ係数である、
請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)、および
bitdiff
LP(m)=γbitdiff(m)+(1-γ)bitdiff
LP(m-1)であり、
式中、g
mode(m)が前記コーディングモード、predcount(m-1)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、Cが同調定数、bitdiff(m)がビットレート差、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、bitdiff
LP(m)がローパスフィルタ処理されたビットレート差、γがローパスフィルタ係数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項1から8のいずれか一項に記載の方法。
【請求項10】
であり、式中、SIDフレームが無音挿入記述子フレームである、
請求項9に記載の方法。
【請求項11】
γ∈[0.01,0.20]、および
C∈[0,1]である、
請求項9に記載の方法。
【請求項12】
g
mode(m)がさらに、次式によるpred_allowed(m)に基づき、
式中、
である、請求項9から11のいずれか一項に記載の方法。
【請求項13】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、predcount(m)が最後のABSOLUTEコーディングされたフレーム以降のフレームの数、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Aが定数、およびMAX_PRED_STREAKが許可される予測連続フレームの最大数である、
請求項1から8のいずれか一項に記載の方法。
【請求項14】
A∈[0,2]である、請求項13に記載の方法。
【請求項15】
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および前記予測モードカウンタに基づいて、前記コーディングモードを選択することが、次式にしたがって前記コーディングモードを選択することを含み、
式中、g
mode(m)が前記コーディングモード、nbits
pred(m)が予測コーディングに使用されると推定されるビットの数、nbits
abs(m)が絶対コーディングに使用されると推定されるビットの数、Gが定数、α
acc(m)が重み付け係数、ε
rel(m)が相対エラー、およびε
THRが前記相対エラーの閾値である、
請求項1から8のいずれか一項に記載の方法。
【請求項16】
絶対コーディングおよび予測コーディングに対するビットレートを取得することと、
取得した前記ビットレートに基づいてビットレート差を計算することと、
前記ビットレート差をローパスフィルタ処理することと、
前記ビットレート差、ローパスフィルタ処理された前記ビットレート差、および予測モードカウンタに基づいて、コーディングモードを選択することと
を含む動作を実施するように適合された、現在のフレームに対するコーディングモードを選択する、エンコーダ(300)。
【請求項17】
前記エンコーダ(300)が、
予測コーディングモードを選択することに応答して、
前記コーディングモードを前記予測コーディングモードに設定することと、
前記予測モードカウンタを増分することと
を含むさらなる動作を実施するように適合された、請求項16に記載のエンコーダ(300)。
【請求項18】
絶対コーディングモードを選択することに応答して、
前記コーディングモードを前記絶対コーディングモードに設定することと、
前記予測モードカウンタを初期値にリセットすることと
をさらに含む、請求項16または17に記載のエンコーダ(300)。
【請求項19】
予測コーディングが許可されるか否かを判定することが、予測コーディングが許可されることをフラグが示すかを判定することを含む、請求項16から18のいずれか一項に記載のエンコーダ(300)。
【請求項20】
予測コーディングが許可されることを前記フラグが示すかを判定することが、
予測カウントが予測フレームの最大数未満かを判定することと、
前記予測カウントが予測フレームの前記最大数未満であるという判定に応答して、予測コーディングが許可されることを示すようにフラグを設定することと、
前記予測カウントが予測フレームの前記最大数超過であるという判定に応答して、予測コーディングが許可されないことを示すように前記フラグを設定することと
を含む、請求項19に記載のエンコーダ(300)。
【請求項21】
予測コーディングが許可されるか否かを判定することと、
予測コーディングが許可されないという判定に応答して、
コーディングモードを絶対コーディングモードに設定することと、
前記予測モードカウンタを初期値にリセットすることと
をさらに含む、請求項16から19のいずれか一項に記載のエンコーダ(300)。
【請求項22】
前記ビットレート差を計算することが、次式にしたがって前記ビットレート差を計算することを含み、
bitdiff(m)=nbits
abs(m)-nbits
pred(m)
式中、nbits
abs(m)が絶対コーディングに対するビットレートであり、nbits
pred(m)が予測コーディングに対するビットレートである、
請求項16から21のいずれか一項に記載のエンコーダ(300)。
【国際調査報告】