(57)【要約】【課題】デコードされたビデオブロック内の予期される歪みを判定する方法および装置を提供すること。【解決手段】装置は、動きベクトルが非整数値を有するときに、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックの動きベクトルを使用して、イメージブロックの予期される歪みを計算する歪み計算機（１０５０）を含む。歪み計算機（１０５０）は、非整数値を有する動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。【選択図】図１Ｂ
2014039321.tif 000002
【特許請求の範囲】
【請求項１】
イメージブロックの動きベクトルが非整数値を有するときに前記動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られる前記イメージブロックの予期される歪みを計算する歪み計算機（１０５０）であって、前記歪み計算機は、前記非整数値を有する前記動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて前記予期される歪みを計算し、前記イメージブロックは、インターモードまたはスキップモードでコーディングされる、歪み計算機（１０５０）
を備えたことを特徴とする装置。
【請求項２】
前記歪み計算機（１０５０）は、０と１との間の値を有する倍率を前記少なくとも２つの隣接する整数ピクセル位置の歪みに適用することによって前記予期される歪みを計算することを特徴とする請求項１に記載の装置。
【請求項３】
前記倍率は、前記非整数値を有するブロックのすべての候補動きベクトルについて事前に推定されることを特徴とする請求項２に記載の装置。
【請求項４】
前記歪み計算機（１０５０）は、ビデオエンコーダ内に備えられることを特徴とする請求項１に記載の装置。
【請求項５】
イメージブロックの動きベクトルが非整数値を有するときに前記動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られる前記イメージブロックの予期される歪みを計算するステップ（２３０）であって、前記計算するステップは、前記非整数値を有する前記動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて前記予期される歪みを計算し、前記イメージブロックは、インターモードまたはスキップモードでコーディングされる、計算するステップ（２３０）
を含むことを特徴とする方法。
【請求項６】
前記計算するステップは、０と１との間の値を有する倍率を前記少なくとも２つの隣接する整数ピクセル位置の歪みに適用するステップ（３３０）によって前記予期される歪みを計算することを特徴とする請求項５に記載の方法。
【請求項７】
前記倍率は、前記非整数値を有するブロックのすべての候補動きベクトルについて事前に推定される（３３０）ことを特徴とする請求項６に記載の方法。
【請求項８】
前記方法は、ビデオエンコーダによって実行されることを特徴とする請求項５に記載の方法。
【請求項９】
デブロッキングフィルタリング動作が、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックに適用されるときに、前記イメージブロックの予期される歪みを計算する歪み計算機（１０５０）であって、前記歪み計算機は、前記デブロッキングフィルタリング動作に使用されるピクセル位置に関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて前記予期される歪みを計算し、前記イメージブロックは、インターモードまたはスキップモードでコーディングされる、歪み計算機（１０５０）
を備えたことを特徴とする装置。
【請求項１０】
前記イメージブロックが、インターコーディングされ、前にデコードされたピクチャ内の同一位置のブロックのデコードされたコーディングモードおよび動きベクトルを使用して失われたマクロブロックの動き補償時間予測を実行するデコーダによって受信されるときに、前記予期される歪みを含むＬａｇｒａｎｇｉａｎコスト関数を計算するエンコーダ（１０１０）をさらに備えたことを特徴とする請求項９に記載の装置。
【請求項１１】
デブロッキングフィルタリング動作が、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックに適用されるときに、前記イメージブロックの予期される歪みを計算するステップ（３３０）であって、前記計算するステップは、前記デブロッキングフィルタリング動作に使用されるピクセル位置に関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて前記予期される歪みを計算し、前記イメージブロックは、インターモードまたはスキップモードでコーディングされる、計算するステップ（３３０）
を含むことを特徴とする方法。
【請求項１２】
前記イメージブロックが、インターコーディングされ、前にデコードされたピクチャ内の同一位置のブロックのデコードされたコーディングモードおよび動きベクトルを使用して失われたマクロブロックの動き補償時間予測を実行するデコーダによって受信されるときに、前記予期される歪みを含むＬａｇｒａｎｇｉａｎコスト関数を計算するステップ（３３０）をさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記Ｌａｎｇｒａｎｇｉａｎコスト関数を計算するステップは、ビデオエンコーダによって実行されることを特徴とする請求項１２に記載の方法。
【請求項１４】
ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるインターコーディングされたブロックのデブロッキングフィルタ動作および動きベクトルを利用して、前記インターコーディングされたブロックの予期される歪みを計算するエンコーダ（１００）であって、前記エンコーダは、前記デブロッキングフィルタ動作に使用される前記インターコーディングされたブロックの隣接するブロック内のピクセル位置からの歪みの影響に基づいて前記予期される歪みを計算する、エンコーダ（１００）
を備えたことを特徴とする装置。
【請求項１５】
ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるインターコーディングされたブロックのデブロッキングフィルタ動作および動きベクトルを利用して、前記インターコーディングされたブロックの予期される歪みを計算するステップ（３３０）であって、エンコードするステップは、前記デブロッキングフィルタ動作に使用される前記インターコーディングされたブロックの隣接するブロック内のピクセル位置からの歪みの影響に基づいて前記予期される歪みを計算する、計算するステップ（３３０）
を含むことを特徴とする方法。
【請求項１６】
ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるブロックの予期される歪みを計算するエンコーダ（１００）であって、前記エンコーダは、前記ブロックのコーディングモードおよび動きベクトルに基づき、デコーダエラー隠蔽動作を使用して前記予期される歪みを計算し、前記ブロックの前記動きベクトルは、非整数値を有する、エンコーダ（１００）
を備えたことを特徴とする装置。
【請求項１７】
前記デコーダエラー隠蔽動作は、フレームコピー動作であることを特徴とする請求項１６に記載の装置。
【請求項１８】
前記デコーダエラー隠蔽動作は、前記ブロックのエンコーダコーディングモードおよびエンコーダ動きベクトルを使用することを特徴とする請求項１６に記載の装置。
【請求項１９】
前記デコーダエラー隠蔽動作は、前のピクチャに対応するエンコーダコーディングモードおよびエンコーダ動きベクトルをコピーすることを特徴とする請求項１６に記載の装置。
【請求項２０】
前記エラー隠蔽動作は、動き補償時間予測を使用し、前記エンコーダ（１００）は、前記ブロックだけが前記ピクチャ内で失われるときに前記デコーダエラー隠蔽動作を使用して計算される隠蔽歪み、および前記ブロックの動きベクトルによって指し示される基準ピクチャ内の動き補償ブロック内のチャネル歪みを合計することによって前記予期される歪みを計算し、前記チャネル歪みは、倍率によってスケールダウンされ、前記隠蔽歪みは、前記基準ピクチャ内の前記動き補償ブロック内のエンコードされたピクセル値に基づいて計算されることを特徴とする請求項１６に記載の装置。
【請求項２１】
ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるブロックの予期される歪みを計算するステップ（３３０）であって、前記計算するステップは、前記ブロックのコーディングモードおよび動きベクトルに基づき、デコーダエラー隠蔽動作を使用して前記予期される歪みを計算し、前記ブロックの前記動きベクトルは、非整数値を有する、計算するステップ（３３０）
を含むことを特徴とする方法。
【請求項２２】
前記デコーダエラー隠蔽動作は、フレームコピー動作である（３１５）ことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記デコーダエラー隠蔽動作は、前記ブロックのエンコーダコーディングモードおよびエンコーダ動きベクトルを使用する（３１０）ことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記デコーダエラー隠蔽動作は、前のピクチャに対応するエンコーダコーディングモードおよびエンコーダ動きベクトルをコピーする（４３０）ことを特徴とする請求項２１に記載の方法。
【請求項２５】
前記エラー隠蔽動作は、動き補償時間予測を使用し、前記計算するステップは、前記ブロックだけが前記ピクチャ内で失われるときに前記デコーダエラー隠蔽動作を使用して計算される隠蔽歪み、および前記ブロックの動きベクトルによって指し示される基準ピクチャ内の動き補償ブロック内のチャネル歪みを合計することによって前記予期される歪みを計算し、前記チャネル歪みは、倍率によってスケールダウンされ、前記隠蔽歪みは、前記基準ピクチャ内の前記動き補償ブロック内のエンコードされたピクセル値に基づいて計算される（４３０）ことを特徴とする請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、参照によってその全体が本明細書に組み込まれている２００６年８月２８日に出願した米国仮出願第６０／８２３７４８号の利益を主張するものである。
【０００２】
本発明は、全般的にはビデオエンコーディングおよび歪み計算に関し、より具体的には、デコードされたビデオブロック内の予期される歪みを判定する方法および装置に関する。
【背景技術】
【０００３】
例えば国際電気通信連合、電気通信標準化部門（ＩＴＵ−Ｔ）Ｈ．２６１勧告、ＩＴＵ−Ｔ  Ｈ．２６３勧告、国際標準化機構／国際電気標準会議（ＩＳＯ／ＩＥＣ）Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−１（ＭＰＥＧ−１）標準規格、ＩＳＯ／ＩＥＣ  ＭＰＥＧ−２標準規格、およびＩＳＯ／ＩＥＣ  ＭＰＥＧ−４  Ｐａｒｔ  １０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）標準規格／ＩＴＵ−Ｔ  Ｈ．２６４勧告（以下では「ＭＰＥＧ−４  ＡＶＣ標準規格」）に準拠するような通常のビデオエンコーダでは、ビデオフレームは、マクロブロックに分割され、各マクロブロック（ＭＢ）を、複数のコーディングモデルのうちの１つでコーディングすることができる。インターモードでは、前にコーディングされたフレーム内の最もよく整合するブロックを指し示す動きベクトル（ＭＶ）が、まず見つけられ、次に、このマクロブロックとその最もよく整合するブロックとの間の差が、コーディングされる。１マクロブロックについて１つの動きブロックだけを許容するのではなく、他のインターモードは、マクロブロックを複数のサブブロックに分割することを可能にし、サブブロックごとに別々の動きベクトルを推定する。現在のフレームの直前のフレームを使用するのではなく、エンコーダは、前にエンコードされた複数の可能なフレームの中から選択することもできる。所与のインターモード（特定のサブブロック構造に対応する）について、動き推定プロセスは、動き推定判断基準（motion estimation criterion）を最小化することによって、各マクロブロックまたはサブブロックの最良の基準フレームインデックス（reference frame index）および対応する動きベクトルを判定する。スキップモードでは、エンコーダは、動きベクトルが０であると仮定し、あるいは、このマクロブロックの動きベクトルを、コーディング済みの選択された隣接するマクロブロックの動きベクトルから予測し、予測誤差をコーディングしない。エンコードされたブロックは、単に、予測された動きベクトル（０とすることができる）に基づき動き補償されたブロックである。イントラモードでは、マクロブロックは、直接にコーディングされるか、同一フレーム内の以前にコーディングされたピクセルから予測される（イントラ予測と呼ぶ）かのいずれかである。それぞれが異なるイントラモードに対応する、イントラ予測に関する複数の可能な隣接するパターンがある。すべての可能なモードの中で、エンコーダは、最終的に、事前にセットされたモード決定判断基準に基づいて、最適のモードを選択する。
【０００４】
レート歪み最適化動き推定（rate-distortion optimized motion estimation）およびモード選択では、動き推定およびモード決定判断基準の両方が、デコードされたマクロブロックの歪みと使用されるビット数との加重和である。基礎となる伝送ネットワークが信頼できないときには、伝送されるビデオビットストリームの一部が失われる可能性がある。困難な問題は、いかにして予期される歪みをデコーダで判定するかである。
【０００５】
前述のレート歪み最適化動き推定およびモード決定プロセスは、量子化歪みと予測誤差をコーディングするのに必要なビット数とを判定するために、各候補オプションの量子化と予測誤差のコーディングとを必要とする。レート制約動き推定（rate-constrained motion estimation）では、動き検索に使用される判断基準が、予測誤差をコーディングするのに必要なビット数を必要とするのではなく、代わりに予測誤差自体を必要とする。
【０００６】
動き推定およびモード決定に関する従来の研究のほとんどでは、検索判断基準は、エンコーダでの量子化器に伴う歪み（本明細書では、「量子化歪み」とも称する）だけを考慮する。具体的には、検索判断基準は、量子化歪みと、モード情報、動きベクトル（インターモードが選択される場合）、および予測誤差信号（またはイントラモードがイントラ予測を利用しない場合はオリジナルピクセル）を含む候補モードを使用してマクロブロックをコーディングするのに必要なビット数との加重和である。そのような方法を、一般に、レート−歪み最適化モード選択と呼ぶ。重みは、Ｌａｎｇｒａｎｇｉａｎ乗数と呼ばれる。動き推定について、単純化された検索判断基準も提案されてきたが、これは、インター予測誤差と、動きベクトルをコーディングするのに必要なビット数との加重和を使用する。そのような方法を、一般に、レート制約動き推定と呼ぶ。
【０００７】
圧縮されたビデオストリームが、ビットエラーおよび／またはパケットロスを経験する可能性があるネットワークを介して配信されるとき、デコーダで見られる歪みは、エンコーダで見られる歪みとは異なる。レート歪み最適化動き推定および動き選択においての主な課題は、候補コーディングモードおよび動きベクトルが与えられるとすると、あるマクロブロックの予期されるデコーダ歪みをどのように判定するかである。ＲＯＰＥ法と呼ばれる従来技術の方法は、エンコーダ内の過去のデコードされたフレーム内のピクセルごとに１次および２次のモーメントを再帰的に計算し、記録する。これらの前のフレームの記録された１次および２次のモーメントに基づいて、エンコーダは、候補コーディングモードごとに各マクロブロックの予期される歪みを計算することができる。ＲＯＰＥ法に関する問題は、動き推定の正確さがサブペル（sub-pel）であるとき、動き補償について複数の基準フレームが許容されるとき、またはエンコーダがデブロッキングフィルタリングを利用するときに、非適用であることである。ＲＯＰＥ法は、フレームコピーと呼ばれるタイプのエラー隠蔽だけに適用できる。また、ＲＯＰＥ法は、すべてのピクセルでチャネル歪みを追跡することを伴うので、集中的な計算を必要とする。ＲＯＰＥの拡張が、サブペル動き補償を考慮するために提案されてきたが、そのような拡張は、オリジナルのＲＯＰＥ法よりかなり多くの計算を必要とする。動き推定へのＲＯＰＥ法のもう１つの拡張が考慮されてきたが、この拡張は、それでも、整数画素（integer-pel）動きベクトルおよびフレームコピーエラー隠蔽法の使用を前提とする。
【０００８】
従来技術の手法（以下では、「第１の従来技術の手法」と呼ぶ）は、モード決定においてチャネルが誘導する歪みを考慮し、候補モードのマクロブロックごとに予期される歪みを計算する。第１の従来技術の手法は、Ｉフレームの後の前にコーディングされたすべてのフレーム内のすべてのマクロブロックの隠蔽歪み（concealment distortion）のストレージを必要とする、予期される歪みを判定する方法を使用する。ＲＯＰＥ法と同様に、第１の従来技術の手法は、サブペル動き補償、動き補償に関する複数の基準フレーム、およびデブロッキングフィルタリングを考慮に入れていない。
【０００９】
やはりマクロブロックレベルで予期されるデコーダ歪みを再帰的に計算する、ブロックレベルデコーダ歪みモデルを伴う第２の従来技術の手法が提案された。第２の従来技術の手法は、前のフレーム内の対応する整合ブロックが受信される場合およびこれが失われる場合を別々に考慮することによって、現在のマクロブロックの歪みを判定する。しかし、第２の従来技術の手法は、エンコーダ動きベクトルがエラー隠蔽のためにデコーダで使用可能であるときに限って適用できる。さらに、第２の従来技術の手法は、各過去のフレーム内のマクロブロックごとに、ブロックが受信されたときの歪みとブロックが失われたときの歪みとを別々に追跡する必要があり、したがって、かなりの量の計算およびメモリースペースを必要とする。また、第２の従来技術の手法は、動き推定およびモード決定に関してではなく、エンコーダの選択した動きベクトルおよびコーディングモードに基づいてマクロブロックごとに予期される歪みを推定するのに使用される。
【発明の概要】
【００１０】
上記および他の従来技術の欠点および不利益は、デコードされたビデオブロック内の予期される歪みを判定する方法および装置を対象とする本発明によって対処される。
【００１１】
本発明の一態様によれば、装置が提供される。本装置は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックの動きベクトルが非整数値を有するときにその動きベクトルを使用して、そのイメージブロックの予期される歪みを計算する歪み計算機を含む。歪み計算機は、非整数値を有する動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【００１２】
本発明のもう１つの態様によれば、方法が提供される。本方法は、イメージブロックの動きベクトルが非整数値を有するときに動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックの予期される歪みを計算するステップを含む。計算するステップは、非整数値を有する動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【００１３】
本発明のさらにもう１つの態様によれば、装置が提供される。本装置は、デブロッキングフィルタリング動作が、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックに適用されるときに、イメージブロックの予期される歪みを計算する歪み計算機を含む。歪み計算機は、デブロッキングフィルタリング動作に使用されるピクセル位置に関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【００１４】
本発明のさらにもう１つの態様によれば、方法が提供される。この方法は、デブロッキングフィルタリング動作が、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックに適用されるときに、イメージブロックの予期される歪みを計算するステップを含む。計算するステップは、デブロッキングフィルタリング動作に使用されるピクセル位置に関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【００１５】
本発明のさらにもう１つの態様によれば、装置が提供される。この装置は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるインターコーディングされたブロックのデブロッキングフィルタ動作および動きベクトルを利用して、インターコーディングされたブロックの予期される歪みを計算するエンコーダを含む。エンコーダは、デブロッキングフィルタ動作に使用されるインターコーディングされたブロックの隣接するブロック内のピクセル位置からの歪みの影響に基づいて予期される歪みを計算する。
【００１６】
本発明のさらにもう１つの態様によれば、方法が提供される。この方法は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるインターコーディングされたブロックのデブロッキングフィルタ動作および動きベクトルを利用して、インターコーディングされたブロックの予期される歪みを計算するステップを含む。エンコーダは、デブロッキングフィルタ動作に使用されるインターコーディングされたブロックの隣接するブロック内のピクセル位置からの歪みの影響に基づいて予期される歪みを計算する。
【００１７】
本発明の追加の態様によれば、装置が提供される。この装置は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるブロックの予期される歪みを計算するエンコーダを含む。エンコーダは、ブロックのコーディングモードおよび動きベクトルに基づき、デコーダエラー隠蔽動作を使用して予期される歪みを計算する。ブロックの動きベクトルは、非整数値を有する。
【００１８】
本発明のさらなる追加の態様によれば、方法が提供される。この方法は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるブロックの予期される歪みを計算するステップを含む。計算するステップは、ブロックのコーディングモードおよび動きベクトルに基づき、デコーダエラー隠蔽動作を使用して予期される歪みを計算し、ブロックの動きベクトルは、非整数値を有する。
【００１９】
本発明の上記に挙げたおよび他の形態、利点ならびに特徴は、添付図面と共に読まれるべき例示的実施形態の次の詳細な説明から明白になる。
【図面の簡単な説明】
【００２０】
本発明は、次の例示的図面によってよりよく理解することができる。
【図１Ａ】本発明の実施形態による、本原理を適用できる例示的ビデオエンコーダを示すブロック図である。
【図１Ｂ】本発明の実施形態による、本原理を適用できるビデオコーディング環境を示すブロック図である。
【図２】本発明の実施形態による、所与のコーディングオプションの
【００２１】
【数１】
2014039321.tif 000003
【００２２】
を判定する例示的方法を示す流れ図である。
【図３】本発明の実施形態による、デコーダがエラー隠蔽方法ＥＣ２を使用するときの所与のコーディングオプションの
【００２３】
【数２】
2014039321.tif 000004
【００２４】
を判定する方法を示す流れ図である。
【図４】本発明の実施形態による、デコーダがエラー隠蔽方法ＥＣ３を使用するときの所与の候補コーディングオプションの
【００２５】
【数３】
2014039321.tif 000005
【００２６】
を判定する例示的方法を示す流れ図である。
【図５】本発明の実施形態による、デコーダがエラー隠蔽方法ＥＣ２を使用するときの、レート歪み最適化動き推定およびモード決定のための所与のマクロブロック（ＭＢ）のＬａｇｒａｎｇｉａｎコストにおける予期される総歪み
【００２７】
【数４】
2014039321.tif 000006
【００２８】
を判定する例示的方法を示す流れ図である。
【図６】本発明の実施形態による、デコーダがエラー隠蔽方法ＥＣ３を使用するときの、レート歪み最適化動き推定およびモード決定のための所与のマクロブロック（ＭＢ）のＬａｇｒａｎｇｉａｎコストにおける
【００２９】
【数５】
2014039321.tif 000007
【００３０】
を判定する例示的方法を示す流れ図である。
【図７】本発明の実施形態による、デコーダがエラー隠蔽方法ＥＣ３を使用するときの、所与のマクロブロック（ＭＢ）のコーディングオプションｏを選択するための予期される総歪み
【００３１】
【数６】
2014039321.tif 000008
【００３２】
およびチャネル歪み
【００３３】
【数７】
2014039321.tif 000009
【００３４】
を判定する例示的方法を示す流れ図である。
【発明を実施するための形態】
【００３５】
本発明は、デコードされたビデオブロック内の予期される歪みを判定する方法および装置を対象とする。予期される歪みは、異なる候補動きベクトルおよびコーディングモードに関して判定することができる。有利なことに、本原理の様々な実施形態は、デコーダで使用できる少なくとも３つの異なるエラー隠蔽技法のうちの１つまたは複数に関して実施することができる。
【００３６】
この説明では、本発明の原理を示す。したがって、当業者は、本明細書で明示的には説明されず、または図示されないが、本発明の原理を実施し、本発明の趣旨および範囲に含まれる様々な配置を考案できることを理解するだろう。
【００３７】
本明細書で挙げられるすべての例および条件的言語は、読者が本発明の原理および発明者が本技術を促進するのに寄与した概念を理解するのを助ける教育上の目的のために意図されたものであり、そのような具体的に挙げられる例および条件に限定されないものとして解釈されなければならない。
【００３８】
さらに、本発明の原理、態様、および実施形態ならびに本発明の特定の実施例を挙げる本明細書のすべての記述は、本発明の構造的同等物および機能的同等物の両方を含むことが意図されている。さらに、そのような同等物が、現在既知の同等物および将来に開発される同等物の両方、すなわち構造にかかわりなく同一の機能を実行するよう開発されたすべての要素を含むことが意図されている。
【００３９】
したがって、例えば、本明細書で提示されるブロック図が、本発明の原理を実施する例示的回路の概念図を表すことが、当業者によって理解されるであろう。同様に、すべてのフローチャート、流れ図、状態遷移図、擬似コードなどが、コンピューター読み取り可能な媒体内で実質的に表すことができ、つまり明示的に図示されるものであってもなくても、コンピューターまたはプロセッサーによって実行することができる様々なプロセスを表すことが理解されるだろう。
【００４０】
図面に示された様々な要素の機能は、専用ハードウェアならびに適当なソフトウェアと関連してソフトウェアを実行することができるハードウェアの使用を介して提供することができる。プロセッサーによって提供されるときに、それらの機能を、単一の専用プロセッサーによって、単一の共有プロセッサーによって、またはその一部を共有できる複数の個別のプロセッサーによって提供することができる。さらに、用語「プロセッサー」または「コントローラー」の明示的使用は、ソフトウェアを実行することができるハードウェアを排他的に指すと解釈されてはならず、デジタル信号プロセッサー（「ＤＳＰ」）ハードウェア、ソフトウェアを格納するための読み取り専用メモリー（「ＲＯＭ」）、ランダムアクセスメモリー（「ＲＡＭ」）、および不揮発性記憶装置を暗黙的に含むことができるが、これに限定されるものではない。
【００４１】
標準のおよび／またはカスタムの他のハードウェアをも含むことができる。同様に、図面に示されたすべての転換は、概念的であるにすぎない。これらの機能を、プログラムロジックの動作を介して、専用ロジックを介して、プログラム制御と専用ロジックとの統合を介して、または手動でさえ実行することができ、具体的な技法は、文脈からより具体的に理解されるとおり、実装者によって選択可能である。
【００４２】
本明細書の特許請求の範囲において、指定された機能を実行する手段として表されるすべての要素は、例えばａ）その機能を実行する回路要素の組合せ、またはｂ）その機能を実行するためにソフトウェアを実行する適当な回路と組み合わされた、ファームウェア、マイクロコードなどを含む任意の形態のソフトウェアを含む、その機能を実行する任意の方法を含むことが意図されている。このような特許請求の範囲によって定義される本発明は、様々な列挙される手段によって提供される機能性が、特許請求の範囲が要求する形で組み合わされ、統合されるという事実にある。したがって、これらの機能性を提供できるすべての手段が、本明細書で示される手段と同等であると考えられる。
【００４３】
本明細書での本原理の「一実施形態」または「実施形態」への言及は、その実施形態に関連して説明される特定の特徴、構造、特性などが、本原理の少なくとも１つの実施形態に含まれることを意味する。したがって、本明細書全体を通じた様々な場所に現れる句「一実施形態で」または「実施形態で」の出現は、必ずしも、すべてが同一の実施形態に言及するのではない。
【００４４】
本明細書で使用されるとき、隣接する整数ピクセル位置は、非整数値（non-integer valued）動きベクトルと呼ばれる非整数位置に最も近い整数ピクセル位置である。
【００４５】
図１Ａを見ると、本原理を適用できる例示的ビデオエンコーダが、符号１００によって概略的に示されている。
【００４６】
ビデオエンコーダ１００への入力は、結合器１１０の非反転入力と信号通信して接続される。結合器１１０の出力は、変圧器／量子化器１２０と信号通信して接続される。変圧器／量子化器１２０の出力は、エントロピーコーダ（entropy coder）１４０と信号通信して接続される。エントロピーコーダ１４０の出力は、エンコーダ１００の出力として使用可能である。
【００４７】
変圧器／量子化器１２０の出力は、さらに、逆変圧器／量子化器１５０と信号通信して接続される。逆変圧器／量子化器１５０の出力は、デブロックフィルタ１６０の入力と信号通信して接続される。デブロックフィルタ１６０の出力は、基準ピクチャストア１７０と信号通信して接続される。基準ピクチャストア１７０の第１出力は、動き推定器１８０の第１入力と信号通信して接続される。エンコーダ１００の入力は、さらに、動き推定器１８０の第２入力と信号通信して接続される。動き推定器１８０の出力は、動き補償器１９０の第１入力と信号通信して接続される。基準ピクチャストア１７０の第２出力は、動き補償器１９０の第２入力と信号通信して接続される。動き補償器１９０の出力は、結合器１１０の反転入力と信号通信して接続される。
【００４８】
図１Ｂを見ると、本原理を適用できるビデオコーディング環境が、符号１０００によって概略的に示されている。
【００４９】
ビデオコーディング環境１０００は、歪み計算機１０５０の第１入力、基準ピクチャストア１０２０の入力、および損失を伴うチャネル１０３０への入力と信号通信して接続された出力を有するエンコーダ１０１０を含む。基準ピクチャストア１０２０の出力は、エンコーダ１０１０の第１入力と信号通信して接続される。損失を伴うチャネルの第１出力は、歪み計算機１０５０の第２入力と信号通信して接続される。歪み計算機の出力は、歪んだ基準ピクチャストア１０６０の入力と信号通信して接続される。基準ピクチャストア１０６０の出力は、歪み計算機１０５０の第３入力と信号通信して接続される。
【００５０】
損失を伴うチャネルの第２出力は、デコーダ１０４０の入力と信号通信して接続される。エンコーダ１０１０の第２入力は、このビデオコーディング環境への入力として使用可能である。デコーダ１０４０の出力は、ビデオコーディングシステム１０００の出力として使用可能である。
【００５１】
歪み計算機１０５０が、エンコーダ１０１０とは別々に図示されているが、別の実施形態では、本原理の趣旨を維持しながら、歪み計算機１０５０をエンコーダ１０５０内に含めることができることを理解すべきである。すなわち、本明細書で提示される本原理の実施形態を考慮すれば、当業者は、本原理の趣旨を維持しながら、本明細書に示された要素に対する上記および様々な他の構成および変更を企図するであろう。
【００５２】
本原理によれば、ビデオブロック内の歪みを判定する方法および装置が提供される。一実施形態で、候補コーディングモードおよび動きベクトルに対応するマクロブロックの予期される歪みが、推定される。さらに、一実施形態で、最終的に選択されるコーディングモードの各マクロブロックの予期されるチャネル歪みも推定され、これは、次のフレーム内のマクロブロックの総歪みを計算するのに使用される。現在のフレームの候補コーディングモードおよび動きベクトルの新しいマクロブロックの予期される総歪みは、動き補償に使用される基準フレームから伝搬されたチャネル歪み、およびこのマクロブロックだけが失われる場合、このマクロブロックの隠蔽歪みの加重和である。
【００５３】
それぞれ推定方法の３つのバリエーションを対象とする例示的実施形態を、次の３つのタイプのエラー隠蔽方法すなわち、フレームコピー、現在のフレームの動きベクトルの使用、および前のフレーム内の同一位置のマクロブロックの動きベクトルの使用に関して説明する。本原理の実施形態は、エンコーダがサブペル動きベクトルを使用するときに使用することができる。さらに、本原理の実施形態は、複数の基準フレームが使用されるときに使用することができる。さらに、本原理の実施形態は、デブロッキングフィルタリングが使用されるときに使用することができる。また、本原理の実施形態は、デコーダが異なるタイプのエラー隠蔽方法を使用するときに使用することができる。本原理の実施形態は、すべてのピクセルでのチャネル歪みの追跡を必要とせず、したがって、実質的にＲＯＰＥ法より単純である。さらに、本原理の実施形態は、上で述べた第２の従来技術の手法より少ない計算およびメモリースペースを必要とする。上で述べたように、様々な実施形態ならびに様々な実施形態の様々な態様は、当業者によって容易に判定されるように、本原理の範囲を維持しながら、容易に組み合わせることができる。
【００５４】
例示および明瞭さのために、本明細書で使用される表記および仮定の一部ならびに本原理の様々な実施形態の概要の説明を、ここで提供する。
【００５５】
我々は、フレームｎのピクセルｉのオリジナル値を表すのに
【００５６】
【数８】
2014039321.tif 000010
【００５７】
を使用し、エンコーダでの再構成された値を表すのに
【００５８】
【数９】
2014039321.tif 000011
【００５９】
を使用し、デコーダでの再構成された値を表すのに
【００６０】
【数１０】
2014039321.tif 000012
【００６１】
を使用する。フレームｎの第ｊマクロブロックに関するデコーダで予期される総歪みは、
【００６２】
【数１１】
2014039321.tif 000013
【００６３】
と定義され、ここで、期待値演算子｛．｝は、所与のパケット損失率についてすべての可能なパケットロス実現（packet loss realization）にわたってとられる。量子化歪みは、
【００６４】
【数１２】
2014039321.tif 000014
【００６５】
と定義され、これは、任意の選択されたコーディングモードおよび動きベクトルについてエンコーダで正確に計算することができる。予期されるチャネル歪みは、
【００６６】
【数１３】
2014039321.tif 000015
【００６７】
と定義される。下で提示する式の一部で、我々は、
【００６８】
【数１４】
2014039321.tif 000016
【００６９】
であるという仮定を利用する。
【００７０】
我々は、Ｐフレーム内の各マクロブロックが損失率Ｐを有し、各パケットがフレーム全体またはマクロブロックの定数を含む場合、損失率Ｐがパケット損失率と等しいと仮定する。
【００７１】
レート歪み最適化動き推定およびモード決定では、動きベクトル（複数の基準フレームが許容される場合は基準フレームインデックスを含む）およびコーディングモードは、次のようにＬａｇｒａｎｇｉａｎコスト関数を最小化することによって決定される。
【００７２】
【数１５】
2014039321.tif 000017
【００７３】
ここで、ｏは、候補コーディングオプション（コーディングモードと、インターモードの候補基準フレームインデックスおよび動きベクトルを含む）を表し、
【００７４】
【数１６】
2014039321.tif 000018
【００７５】
は、コーディングオプションｏを使用するフレームｎ内のマクロブロックｊの予期される総歪みを表し、
【００７６】
【数１７】
2014039321.tif 000019
【００７７】
は、オプションｏを使用してこのマクロブロックをコーディングするのに必要なビットの総数である。各候補インターモードについて、すべての可能な基準フレームインデックスおよび動きベクトルに対応する予期される歪み
【００７８】
【数１８】
2014039321.tif 000020
【００７９】
および結果的にＬａｇｒａｎｇｉａｎコストがまず判定され、最小のＬａｇｒａｎｇｉａｎコストを有する最良の基準フレームインデックスおよび動きベクトルが選択される。すべての可能なイントラモードおよびスキップモードの予期される歪みおよびＬａｇｒａｎｇｉａｎコストも計算される。最後に、最小のＬａｇｒａｎｇｉａｎコストを有するコーディングモードが選択される。
【００８０】
マクロブロックの損失率がＰであるときに、予期される歪み
【００８１】
【数１９】
2014039321.tif 000021
【００８２】
は、一般に、次のように計算することができる。
【００８３】
【数２０】
2014039321.tif 000022
【００８４】
項
【００８５】
【数２１】
2014039321.tif 000023
【００８６】
は、マクロブロックが受信されるときの歪みを表し、コーディングオプションに依存する。項
【００８７】
【数２２】
2014039321.tif 000024
【００８８】
は、マクロブロックが失われるときの歪みを表し、仮定されたエラー隠蔽方法およびコーディングオプションに依存する。本原理の様々な実施形態によれば、インターモードおよびスキップモードの
【００８９】
【数２３】
2014039321.tif 000025
【００９０】
を決定する方法、およびエラー隠蔽が動き補償予測を使用するときに
【００９１】
【数２４】
2014039321.tif 000026
【００９２】
を判定する方法が提供される。
【００９３】
イントラモードの
【００９４】
【数２５】
2014039321.tif 000027
【００９５】
の計算、およびエラー隠蔽がフレームコピーを使用するときの
【００９６】
【数２６】
2014039321.tif 000028
【００９７】
の計算は、従来技術で既知である。しかし、完全を期して、我々は、これらの計算も本明細書で説明する。
【００９８】
例示のために、我々は、次の３つの異なるエラー隠蔽方法すなわち、フレームコピー（本明細書では「ＥＣ１」とも呼ぶ）、現在のフレームの動きベクトルの使用（本明細書では「ＥＣ２」とも呼ぶ）、および前のフレーム内の同一位置のマクロブロックの動きベクトルの使用（本明細書では「ＥＣ３」とも呼ぶ）を考慮する。ＥＣ２を用いると、あるマクロブロックについて選択されるコーディングモードおよび動きベクトルは、このマクロブロックが失われるときの歪みに影響する。レート歪み最適化動き推定およびモード決定について、我々は、式（２）を使用して計算されたこのマクロブロックの予期される総歪み
【００９９】
【数２７】
2014039321.tif 000029
【０１００】
と共に、式（１）のＬａｇｒａｎｇｉａｎコストを使用する。
【０１０１】
本明細書では、我々は、異なる候補コーディングオプションに対応する予期される歪み
【０１０２】
【数２８】
2014039321.tif 000030
【０１０３】
を推定する方法を提示する。その後、我々は、エラー隠蔽方法ＥＣ１およびＥＣ２の予期される歪み
【０１０４】
【数２９】
2014039321.tif 000031
【０１０５】
を推定する方法を提示する。
【０１０６】
ＥＣ３を用いると、あるマクロブロックについて選択されるコーディングモードおよび動きベクトルは、フレームｎ＋１内の同一位置のマクロブロックが失われるときに、歪みに影響する。レート歪み最適化動き推定およびモード決定について、我々は、次のように、異なるＬａｇｒａｎｇｉａｎコストを使用することを提案する。
【０１０７】
【数３０】
2014039321.tif 000032
【０１０８】
と
【０１０９】
【数３１】
2014039321.tif 000033
【０１１０】
項
【０１１１】
【数３２】
2014039321.tif 000034
【０１１２】
は、それにもかかわらず、以下で説明するように、様々なコーディングモードについて計算することができる。項
【０１１３】
【数３３】
2014039321.tif 000035
【０１１４】
は、コーディングオプションｏから導かれる基準フレームインデックスおよび動きベクトルを使用する、フレームｎ＋１内の同一位置のマクロブロックの予期される歪みである。
【０１１５】
【数３４】
2014039321.tif 000036
【０１１６】
および
【０１１７】
【数３５】
2014039321.tif 000037
【０１１８】
の計算は、本明細書において以下で説明される。
【０１１９】
以下では、一実施形態に関して、我々は、所与のインターモードに関するレート制約動き推定方法を提示する。新しいＬａｇｒａｎｇｉａｎコスト関数が導入され、この関数は、チャネル歪みを考慮に入れる。様々な実施形態に従って、異なるエラー隠蔽方法についてこの新しいコスト関数内の項を計算する方法が提供される。この新しい測定値に基づく動き推定は、同様に本明細書で説明するレート歪み最適化動き推定より少ない計算を必要とする。
【０１２０】
本明細書で提示する方法のうちのいくつかでは、各マクロブロックの予期されるチャネル歪みは、過去のＭ個のフレームから判定されると仮定され、ここでＭは、エンコーダが使用する最大時間予測距離である。しかし、一実施形態で、我々は、最終的に選択される動きベクトルおよびコーディングモードに基づいて、現在コーディングされているフレーム内のすべてのマクロブロックについて予期されるチャネル歪みを判定する方法を提示する。
【０１２１】
本原理では、イントラモードでのイントラ予測は、イントラコーディングされたマクロブロック内の以前にコーディングされたピクセルだけを利用すると仮定する。これは、ＭＰＥＧ−４  ＡＶＣ標準規格で制約付きイントラ予測（ｃｏｎｓｔｒａｉｎｅｄ  ｉｎｔｒａ  ｐｒｅｄｉｃｔｉｏｎ）として知られている。本原理に従って本明細書で提供される表記は、コーディングオプション決定およびＰフレームのみに関するエラー隠蔽を考慮し、マクロブロックは、Ｍ個の前にコーディングされたフレームから選択された１つの前にコーディングされたフレームから予測される。表記の便宜上、我々は、Ｐフレームが連続して順序付けられる、すなわち、フレームｎがＰフレームである場合は、次のＰフレームがｎ＋１であると仮定する。しかし、本実施形態による方法を、Ｉフレーム（すべてのマクロブロックがイントラモードのうちの１つによってコーディングされる）およびＢフレーム（双方向予測モードを、イントラモード、インターモード、およびスキップモードに加えて使用することができる）でのモード決定を考慮するように拡張することができる。
【０１２２】
異なる候補モードの受信されたマクロブロックの予期される歪みを計算する方法  ここで、異なる候補コーディングモードについて受信されたマクロブロックの予期される歪みを計算する、本原理の様々な実施形態による様々な方法に関して説明を与える。より具体的には、様々方法を、異なるコーディングモードについて、式（２）の
【０１２３】
【数３６】
2014039321.tif 000038
【０１２４】
すなわち、マクロブロックが受信されるときの予期される歪みの計算について説明する。
【０１２５】
図２を見ると、所与のコーディングオプションの
【０１２６】
【数３７】
2014039321.tif 000039
【０１２７】
を判定する例示的方法が、概略的に符号２００によって示されている。
【０１２８】
方法２００は、機能ブロック２０５を含む。機能ブロック２０５は、コーディングモードに基づく切替を実行し、制御を機能ブロック２１０、機能ブロック２２０、および機能ブロック２３５に渡す。
【０１２９】
機能ブロック２１０は、コーディングモードを、基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖを有するインターと等しくなるようにセットし、制御を機能ブロック２１５に渡す。
【０１３０】
機能ブロック２１５は、式（５）を使用して
【０１３１】
【数３８】
2014039321.tif 000040
【０１３２】
を計算し、制御を終了ブロック２９９に渡す。
【０１３３】
機能ブロック２２０は、コーディングモードをスキップモードと等しくなるようにセットし、制御を機能ブロック２２５に渡す。機能ブロック２２５は、ｍe＝１、ｖe＝０をセットし、または前にコーディングされたマクロブロック（ＭＢ）に基づいてｍe、ｖeを予測し、制御を機能ブロック２３０に渡す。機能ブロック２３０は、式（７）または式（９）を使用して
【０１３４】
【数３９】
2014039321.tif 000041
【０１３５】
を計算し、制御を終了ブロック２９９に渡す。
【０１３６】
機能ブロック２３５は、コーディングモードを、イントラモードインデックスｍを有するイントラと等しくなるようにセットし、制御を機能ブロック２４０に渡す。機能ブロック２４０は、式（１１）を使用して
【０１３７】
【数４０】
2014039321.tif 000042
【０１３８】
を計算し、制御を終了ブロック２９９に渡す。
【０１３９】
インターモード
異なる候補コーディングモードについて受信されたマクロブロックの予期される歪みを計算する方法の提供に関して、我々は、まず、単一の動きベクトル（ＭＶ）だけがマクロブロック全体について使用されるインター予測モードを考慮する。一般に、基準フレームは、前のＭ個のフレームのいずれかから選択することができる。候補基準フレームインデックスｍ（１＜＝ｍ＜＝Ｍ）および候補動きベクトルｖについて、歪みは、次のように計算される。
【０１４０】
【数４１】
2014039321.tif 000043
【０１４１】
ここで、
【０１４２】
【数４２】
2014039321.tif 000044
【０１４３】
は、候補基準フレームインデックスｍおよび動きベクトルｖを使用するマクロブロックｊの平均二乗量子化誤差である。
【０１４４】
項
【０１４５】
【数４３】
2014039321.tif 000045
【０１４６】
は、フレームｎ内のマクロブロックｊの、ｒ（ｊ，ｖ）によってインデックスを付けられるフレームｎ−ｍ内の動き補償ブロック内の予期される平均チャネル歪みを表す。我々は、前のＭ個のフレーム内の各マクロブロック内のそれぞれの平均チャネル歪みが前もって判定され、記録されていると仮定していることを想起されたい。すなわち、我々は、
【０１４７】
【数４４】
2014039321.tif 000046
【０１４８】
がすべてのｍおよびｊについて使用可能であると仮定する。一般に、ブロックｒ（ｊ，ｖ）は、規則的なマクロブロック境界に整列しない場合があり、フレームｎ−ｍ内の４つまでのマクロブロックにオーバーラップする可能性がある。我々は、オーバーラップされるマクロブロック内のそれぞれのチャネル歪みの加重平均をとることによって
【０１４９】
【数４５】
2014039321.tif 000047
【０１５０】
を判定し、ここで、重みは、オーバーラップの面積に比例する。
【０１５１】
式（５）の項
【０１５２】
【数４６】
2014039321.tif 000048
【０１５３】
は、マクロブロックｊが受信されるときのフレームｎ−ｍから伝搬される歪みを表す。インターコーディングされたマクロブロック内の時間的誤差伝搬を考慮に入れるこの方法は、従来技術とは異なり、従来技術に対する有利な特徴を提供する。係数ａは、デブロッキングフィルタリングおよびサブペル動きベクトルが使用されるときの補間動作に起因する誤差伝搬の減衰を考慮に入れた減衰係数である。数学的には、ａは、このブロックについて適用される実際のデブロッキングフィルタ、候補動きベクトル（補間に使用されるピクセルの個数および補間フィルタを決定する）、ならびに動き補償およびデブロッキングフィルタリングに伴う隣接するピクセル内のチャネル誘導誤差間の相関に依存する。候補動きベクトルが整数ベクトルである特殊な場合では、ａ＝１である。より一般的に、ａの値は、（０〜１）の範囲内である。受信されたインターコーディングされたマクロブロックの伝搬される歪みを計算するためのａの特定の定義および
【０１５４】
【数４７】
2014039321.tif 000049
【０１５５】
の使用は、従来技術の手法の拡張である。我々は、トレーニングデータに基づくパラメータａの推定についても従来技術の方法を拡張する。フルペル（full-pel）位置を必要とした従来技術に関する１つの相違として、本原理の一実施形態で、我々は、サブペルな正確さを有するすべての候補動きベクトルについてａの事前に推定された値を使用することができる。さらに、従来技術とは異なって、我々は、そのような状況でデブロッキングフィルタを使用することができる。
【０１５６】
対応する基準フレームに関連する別々の動きベクトルをそれぞれが有する複数のより小さいサブブロックにマクロブロックを分割するインターモードを考慮するために、我々は、式（５）を使用して、対応する候補基準フレームインデックスおよび動きベクトルについてサブブロックごとに歪み
【０１５７】
【数４８】
2014039321.tif 000050
【０１５８】
を計算し、その後、すべてのサブブロックにわたって平均を計算するだけでよい。
【０１５９】
スキップモード
異なる候補コーディングモードについて受信されたマクロブロックの予期される歪みを計算する方法の提供に関して、我々は、ここでスキップモードを検討する。スキップモードでは、エンコーダは、動きベクトルが０と仮定し、または選択された前にコーディングされたマクロブロックの動きベクトルに基づいて動きベクトルを予測し、予測誤差信号を計算するが、予測誤差信号をコーディングはしない。エンコーダが再構成したブロックは、単に前のフレーム内の同一位置のマクロブロック（動きベクトルが０であるとエンコーダが仮定する場合）または予測された動きベクトルに基づく動き補償ブロックである。マクロブロックが受信されるときの歪みは、予測誤差に基準フレームからの伝搬されたチャネル誤差を加えたものである。ここで、我々は、スキップモードに関して、エンコーダが基準フレームインデックスおよび動きベクトルを予測できるが、単一の動きベクトルだけがマクロブロック全体に使用されると仮定する。ＭＰＥＧ−４  ＡＶＣ標準規格では、前のフレームだけが基準フレームとして許容され、これは、本原理の実施形態に従って本明細書で考慮される特別なケースであることに留意すべきである。ｍeおよびｖeは、エンコーダが予測した基準フレームインデックスおよび動きベクトル（前の隣接するマクロブロックについて選択された基準フレームインデックスおよび動きベクトルの関数）を表すものとする。予期される歪みは、次のとおりである。
【０１６０】
【数４９】
2014039321.tif 000051
【０１６１】
項
【０１６２】
【数５０】
2014039321.tif 000052
【０１６３】
は、現在のマクロブロック内のオリジナルピクセルおよび動きベクトルｖに基づくエンコードされたフレームｎ−ｍからの予測値の間のＤＦＤ（displaced frame difference）の二乗の平均を表し、次のように計算される。
【０１６４】
【数５１】
2014039321.tif 000053
【０１６５】
ここで、
【０１６６】
【数５２】
2014039321.tif 000054
【０１６７】
は、フレームｎ内のピクセルｉの予測値を表し、この値は、エンコーダによって、動きベクトルｖを使用して、前にエンコードされたフレームｎ−ｍから計算される。
【０１６８】
ｍe＝１、ｖe＝０という特殊なケースでは、
【０１６９】
【数５３】
2014039321.tif 000055
【０１７０】
であり、その結果、
【０１７１】
【数５４】
2014039321.tif 000056
【０１７２】
になる。
【０１７３】
項
【０１７４】
【数５５】
2014039321.tif 000057
【０１７５】
は、現在のマクロブロック内のオリジナルピクセルおよびフレームｎ−１内の同一位置のピクセルのエンコードされた値の間のＦＤ（frame difference）の二乗の平均を表し、次のように計算される。
【０１７６】
【数５６】
2014039321.tif 000058
【０１７７】
イントラモード
異なる候補コーディングモードに関する受信されたマクロブロックの予期される歪みを計算する方法の提供に関して、我々は、ここでイントラモードを考慮する。イントラモードは、ブロックを直接にコーディングする、または、１タイプのイントラ予測パターンを使用することができる。後者の場合に、我々は、制約付きイントラ予測だけを考慮し、イントラコーディングされるマクロブロック内の以前にコーディングされたピクセルだけが、制約付きイントラ予測によってイントラ予測に使用される。マクロブロックが受信されるときのイントラモードに関する予期される歪みは、次のように、量子化歪みと等しい。
【０１７８】
【数５７】
2014039321.tif 000059
【０１７９】
ここで、
【０１８０】
【数５８】
2014039321.tif 000060
【０１８１】
は、イントラモード（ｉ，ｍ）を使用して再構成される値を表す
【０１８２】
【数５９】
2014039321.tif 000061
【０１８３】
と共に式（６）を使用して計算することができる。
【０１８４】
エラー隠蔽方法ＥＣ１およびＥＣ２を使用して失われたマクロブロックの予期される歪みを計算する方法
我々は、ここで本原理の様々な実施形態による、エラー隠蔽方法ＥＣ１およびＥＣ２について失われたマクロブロックの式（２）の予期される歪み
【０１８５】
【数６０】
2014039321.tif 000062
【０１８６】
を推定する方法を説明する。
【０１８７】
フレームコピー（ＥＣ１）
エラー隠蔽方法ＥＣ１およびＥＣ２を使用して失われたマクロブロックの予期される歪みを計算する方法の提供に関して、我々は、まずデコーダが、すべての失われたマクロブロックのエラー隠蔽のために前のフレーム内の同一位置のマクロブロックをコピーする場合を考慮する。我々は、このケースをＥＣ１と表す。
【０１８８】
このケースでは、歪みは、コーディングモードにかかわりなく同一である。歪みは、次のように計算される。
【０１８９】
【数６１】
2014039321.tif 000063
【０１９０】
エンコーダコーディングモードおよび動きベクトルの使用（ＥＣ２）
エラー隠蔽方法ＥＣ１およびＥＣ２を使用して失われたマクロブロックの予期される歪みを計算する方法の提供に関して、我々は、ここで本明細書においてＥＣ２と呼ぶ、エンコーダコーディングモードおよび動きベクトルを使用するケースを考慮する。このケースでは、あるマクロブロックのコーディングモードおよび動きベクトル情報が、テクスチャ情報（イントラ予測誤差およびインター予測誤差のＤＣＴ係数）が失われる場合であっても使用可能であるような方法でコーディングされ、転送されると仮定する。例えば、エンコーダは、コーディングモードおよび動きベクトル情報を冗長スライス内または別々のデータパーティション内に含めて、そのような不均一保護を実現することができる。このケースでは、テクスチャ情報が失われる場合に、デコーダは、エンコーダコーディングモードならびに対応する基準フレームインデックスおよび動きベクトルを使用して、動き補償エラー隠蔽を実行する。マクロブロックが、イントラモードまたはスキップモードを使用してコーディングされるとき、デコーダは、動きベクトルが０であると仮定し（フレームコピーと同等）、または前にコーディングされたマクロブロックの動きベクトルに基づいて予測された動きベクトルを使用し、エラー隠蔽を実行することができる。エンコーダは、これらのマクロブロックについて同一の予測された動きベクトルを作成することができ、したがって、いずれのオプションを用いても隠蔽歪みを正確に推定することができる。我々は、このエラー隠蔽方法をＥＣ２と呼ぶ。
【０１９１】
図３を見ると、デコーダがエラー隠蔽方法ＥＣ２を使用するときの所与のコーディングオプションの
【０１９２】
【数６２】
2014039321.tif 000064
【０１９３】
を判定する方法が、概略的に符号３００によって示されている。方法３００は、機能ブロック３０５を含む。機能ブロック３０５は、コーディングモードに基づく切替を実行し、制御を機能ブロック３１０、機能ブロック３２０、および機能ブロック３３５に渡す。
【０１９４】
機能ブロック３１０は、コーディングモードを、基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖを有するインターと等しくなるようにセットし、機能ブロック３１５に制御を渡す。
【０１９５】
機能ブロック３１５は、ｍd＝ｍ、ｖd＝ｖをセットし、機能ブロック３３０に制御を渡す。
【０１９６】
機能ブロック３３０は、ｍd＝１かつｖd＝０のときには式（１２）を使用して
【０１９７】
【数６３】
2014039321.tif 000065
【０１９８】
を判定し、そうでない場合は式（１３）を使用して
【０１９９】
【数６４】
2014039321.tif 000066
【０２００】
を判定し、制御を終了ブロック３９９に渡す。
【０２０１】
機能ブロック３２０は、コーディングモードをスキップモードと等しくなるようにセットし、機能ブロック３２５に制御を渡す。機能ブロック３２５は、ｍd＝１、ｖd＝０をセットし、または前にコーディングされたマクロブロック（ＭＢ）に基づいてｍd、ｖdを予測し、制御を機能ブロック３３０に渡す。
【０２０２】
機能ブロック３３５は、コーディングモードを、イントラモードインデックスｍを有するイントラと等しくなるようにセットし、機能ブロック３４０に制御を渡す。機能ブロック３４０は、ｍd＝１、ｖd＝０をセットし、または前にコーディングされたマクロブロック（ＭＢ）に基づいてｍd、ｖdを予測し、制御を機能ブロック３３０に渡す。
【０２０３】
いずれのコーディングモードに関しても、デコーダとして使用される基準フレームインデックスおよび動きベクトルを、ｍdおよびｖdによって表すものとし、隠蔽されるマクロブロックの歪みは、次のように計算することができる。
【０２０４】
【数６５】
2014039321.tif 000067
【０２０５】
項
【０２０６】
【数６６】
2014039321.tif 000068
【０２０７】
および
【０２０８】
【数６７】
2014039321.tif 000069
【０２０９】
は、上述したように計算される。
【０２１０】
インターモードについて、デコーダで使用される基準フレームインデックスおよび動きベクトルｍdおよびｖdは、エンコーダで使用されるものと等しい。イントラモードおよびスキップモードについて、デコーダが、前にデコードされたマクロブロックに基づいて基準フレームインデックスおよび動きベクトルを予測する場合、ｍdおよびｖdは、エンコーダが前にエンコードされたマクロブロックに基づいて予測した基準フレームインデックスおよび動きベクトルと等しい。デコーダが、エラー隠蔽にフレームコピーを使用する場合は、ｍd＝１かつｖd＝０である。この場合に、式（１３）は式（１２）になる。
【０２１１】
前のフレームのコーディングモードおよび動きベクトルをコピーするエラー隠蔽方法を使用して予期される歪みを計算する方法（ＥＣ３）
モード情報および動きベクトルが、テクスチャデータと異なって保護されない応用例では、デコーダは、時間的エラー隠蔽のために失われたマクロブロックの動きベクトルを推定しなければならない。失われたマクロブロックを隠蔽する１つの単純な手法は、前のフレーム内の同一位置の動きベクトルを使用することである。フレームｎ内の同一位置のマクロブロックが、ｍフレーム離れた基準フレームを使用する場合、フレームｎ＋１内の同一マクロブロックの時間的隠蔽は、フレームｎ＋１−ｍに基づく。前のフレーム内の同一位置のマクロブロックが、イントラモードまたはスキップモードを使用してコーディングされる場合、エラー隠蔽は、動きベクトルが０であると仮定し、またはフレームｎ＋１内の以前にデコードされたインターコーディングされたマクロブロックの回復した動きベクトルに基づいて動きベクトルを予測することができる。いずれの場合でも、エンコーダは、これらのマクロブロックの同一の予測された動きベクトルを作成することができ、したがって、いずれのオプションを用いる隠蔽歪みをも正確に推定することができる。我々は、このエラー隠蔽方法をＥＣ３と呼ぶ。現在のマクロブロックについて選択されたコーディングモードおよび動きベクトルが、後続フレーム内の同一位置のマクロブロックの隠蔽歪みに影響するので、我々は、式（１）の従来のＬａｇｒａｎｇｉａｎコスト関数を式（３）の関数に変更し、この関数は、式（４）で定義される
【０２１２】
【数６８】
2014039321.tif 000070
【０２１３】
および
【０２１４】
【数６９】
2014039321.tif 000071
【０２１５】
の計算を伴う。項
【０２１６】
【数７０】
2014039321.tif 000072
【０２１７】
は、それにもかかわらず、様々なコーディングモードについて上述したように計算することができる。
【０２１８】
図４を見ると、デコーダがエラー隠蔽方法ＥＣ３を使用するときの所与の候補コーディングオプションの
【０２１９】
【数７１】
2014039321.tif 000073
【０２２０】
を判定する例示的方法が、概略的に符号４００によって示されている。方法４００は、機能ブロック４０５を含む。機能ブロック４０５は、コーディングモードに基づく切替を実行し、制御を機能ブロック４１０、機能ブロック４２０、および機能ブロック４３５に渡す。
【０２２１】
機能ブロック４１０は、コーディングモードを、基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖを有するインターと等しくなるようにセットし、機能ブロック４１５に制御を渡す。
【０２２２】
機能ブロック４１５は、ｍd＝ｍ、ｖd＝ｖをセットし、機能ブロック４３０に制御を渡す。
【０２２３】
機能ブロック４３０は、ｍd＝１かつｖd＝０のときには式（１４）を使用して
【０２２４】
【数７２】
2014039321.tif 000074
【０２２５】
を判定し、ｍd＞１またはｍd＝１であるがフレームｎのＭＢ  ｒ（ｊ，ｖd）が既にコーディング済みのときには、式（１６）を使用して
【０２２６】
【数７３】
2014039321.tif 000075
【０２２７】
を判定し、それ以外の場合は式（１８）を使用して
【０２２８】
【数７４】
2014039321.tif 000076
【０２２９】
を判定し、制御を終了ブロック４９９に渡す。
【０２３０】
機能ブロック４２０は、コーディングモードをスキップモードと等しくなるようにセットし、機能ブロック４２５に制御を渡す。機能ブロック４２５は、ｍd＝１、ｖd＝０をセットし、または前にコーディングされたマクロブロック（ＭＢ）に基づいてｍd、ｖdを予測し、機能ブロック４３０に制御を渡す。
【０２３１】
機能ブロック４３５は、コーディングモードを、イントラモードインデックスｍを有するイントラと等しくなるようにセットし、機能ブロック４４０に制御を渡す。機能ブロック４４０は、ｍd＝１、ｖd＝０をセットし、または前にコーディングされたマクロブロック（ＭＢ）に基づいてｍd、ｖdを予測し、制御を機能ブロック４３０に渡す。
【０２３２】
隠蔽されたマクロブロックの歪みの推定
ｍdおよびｖdが、このマクロブロックについてデコーダとして使用される基準フレームインデックスおよび動きベクトルを表すものとするが、これらは、フレームｎ内のマクロブロックｊの候補コーディングモード、基準フレームインデックス、および動きベクトルに基づいてエンコーダによって導き出すことができる。我々は、
【０２３３】
【数７５】
2014039321.tif 000077
【０２３４】
を使用して
【０２３５】
【数７６】
2014039321.tif 000078
【０２３６】
を表す。
【０２３７】
ｍdおよびｖdの値に応じて、
【０２３８】
【数７７】
2014039321.tif 000079
【０２３９】
を、例えば次に説明される３つの例示的な方法で、計算することができる。
【０２４０】
ｍd＝１かつｖd＝０の場合は、
【０２４１】
【数７８】
2014039321.tif 000080
【０２４２】
であり、
【０２４３】
【数７９】
2014039321.tif 000081
【０２４４】
であり、ここで、
【０２４５】
【数８０】
2014039321.tif 000082
【０２４６】
は、現在の候補モードおよび動きベクトルを使用して、マクロブロックｊおよびフレームｎ内のピクセルについてエンコーダが再構成する値を表す。このケースは、デコーダがそのようなブロックの隠蔽にフレームコピーを使用することを選択する場合に、イントラモードおよびスキップモードにあてはまることに留意されたい。
【０２４７】
ｍd＞１またはｍd＝１であるが、フレームｎ内のマクロブロックｒ（ｊ，ｖd）が既にコーディング済みである場合は、
【０２４８】
【数８１】
2014039321.tif 000083
【０２４９】
であり、
【０２５０】
【数８２】
2014039321.tif 000084
【０２５１】
であり、ここで、
【０２５２】
【数８３】
2014039321.tif 000085
【０２５３】
は、動きベクトルがｖであると仮定して、フレームｎ＋１−ｍ内のエンコードされたピクセルからフレームｎ＋１内のピクセルｉについての予測値を表す。
【０２５４】
ｍd＝１であり、フレームｎ内のマクロブロックｒ（ｊ，ｖd）がコーディングされていない場合は、歪みは、次のように計算される。
【０２５５】
【数８４】
2014039321.tif 000086
【０２５６】
項
【０２５７】
【数８５】
2014039321.tif 000087
【０２５８】
は、次のように計算される。
【０２５９】
【数８６】
2014039321.tif 000088
【０２６０】
ここで、
【０２６１】
【数８７】
2014039321.tif 000089
【０２６２】
は、動きベクトルがｖであると仮定して、フレームｎ＋１−ｍ内のオリジナルピクセルからフレームｎ＋１内のピクセルｉについての予測値を表す。
【０２６３】
定数ａqは、ａと同一の方法で事前に推定できるパラメータであり、一般に、ａq＜＝ａである。候補動きベクトルが整数ベクトルであるときは、ａq＝ａ＝１である。
【０２６４】
項
【０２６５】
【数８８】
2014039321.tif 000090
【０２６６】
および
【０２６７】
【数８９】
2014039321.tif 000091
【０２６８】
は、まだコーディングされていない、フレームｎ内のブロックｒ（ｊ，ｖ）の量子化歪みおよび予期されるチャネル歪みである。この２つの項をどのように推定するかを、本明細書において以下で説明する。
【０２６９】
マクロブロックをコーディングする前のこのマクロブロックの量子化歪みおよびチャネル歪みの推定
ブロックｒ（ｊ，ｖ）がまだコーディングされていないとき、式（１８）の
【０２７０】
【数９０】
2014039321.tif 000092
【０２７１】
を判定するために、我々は、このフレームまたは前のフレーム内の以前にコーディングされたマクロブロックの平均量子化歪みを使用することができる。代替案では、我々は、このフレームについて使用される量子化ステップサイズに基づいて判定される平均量子化歪みを使用することができる。
【０２７２】
ブロックｒ（ｊ，ｖ）がまだコーディングされていないとき、式（１８）の
【０２７３】
【数９１】
2014039321.tif 000093
【０２７４】
を判定するために、我々は、このフレーム内の以前にコーディングされたＭＢについて計算された
【０２７５】
【数９２】
2014039321.tif 000094
【０２７６】
の平均値を使用することができる。代替案では、我々は、例えば、従来技術のフレームレベルチャネル歪みモデルを使用して、フレームｎの平均チャネル歪みを計算し、この平均チャネル歪みを使用して、すべての未コーディングマクロブロックのチャネル歪みの近似値を求めることができる。より具体的には、βnが、フレームｎ内の平均イントラ率（イントラモードでコーディングされるマクロブロックのパーセンテージ）を表すものとすると、平均チャネル歪みを、次を使用して再帰的に計算することができる。
Ｄc,n＝ＰＤECP,n＋（（１−Ｐ）（１−βn）ａ＋Ｐｈ）Ｄc,n-1      （２０）
ここで、ｈは、ａに似ているが、エラー隠蔽に使用される動きベクトルの分布に依存する係数である。ＥＣ３を用いると、エラー隠蔽は、エンコーダが使用するのと同一の動きベクトルのセットを使用し、その結果、ｈ＝ａをセットできるようになる。このフレームをコーディングする前にイントラ率βnを推定するために、前にコーディングされたフレームで使用されたイントラ率の平均をとることができる。項ＤECP,nは、前のフレームにチャネルが誘導するエラーがない場合の、フレームｎの平均隠蔽歪みを表す。ＥＣ３を用いると、フレームｎ−１の同一位置のマクロブロックｊについて、最終的に選択される基準フレームインデックスが
【０２７７】
【数９３】
2014039321.tif 000095
【０２７８】
であり、選択される動きベクトルが
【０２７９】
【数９４】
2014039321.tif 000096
【０２８０】
である場合は、マクロブロックｊの隠蔽歪みは、
【０２８１】
【数９５】
2014039321.tif 000097
【０２８２】
であり、ここで、
【０２８３】
【数９６】
2014039321.tif 000098
【０２８４】
は、上述したように計算することができ、
【０２８５】
【数９７】
2014039321.tif 000099
【０２８６】
は、式（８）を使用して計算することができる。歪みＤECP,nは、すべてのマクロブロッ
クの
【０２８７】
【数９８】
2014039321.tif 000100
【０２８８】
の平均値である。
【０２８９】
チャネル歪みを考慮するレート制約動き推定
Ｌａｇｒａｎｇｉａｎコストのレート項
【０２９０】
【数９９】
2014039321.tif 000101
【０２９１】
を計算するために、エンコーダは、動きベクトルおよび予測誤差を表すのに必要なレートを判定するために、各候補モードおよび動きベクトルに対応する予測誤差を量子化し、コーディングする必要がある。計算を減らすために、我々は、予測誤差をコーディングするのに必要なレートの知識を必要とせず、モードおよび動きベクトルを表すためのレートの知識だけを必要とするコスト関数を使用することができる。これは、一般に、レート制約動き推定として知られている。この領域の従来技術は、量子化歪みだけを考慮したことを理解すべきである。チャネル歪みを考慮するために、我々は、Ｌａｇｒａｎｇｉａｎコストを次式に変更する。
【０２９２】
【数１００】
2014039321.tif 000102
【０２９３】
ここで、λMVおよびλcは、総率制約（total rate constraint）または量子化パラメータ（ＱＰ）に関して適切に選択された値である。項
【０２９４】
【数１０１】
2014039321.tif 000103
【０２９５】
は、式（８）で定義されたものであり、Ｒv（ｍ，ｖ）は、基準フレームインデックスｍおよび動きベクトルｖをコーディングするのに必要な総ビット数である。
【０２９６】
ＥＣ１およびＥＣ２を用いると、項
【０２９７】
【数１０２】
2014039321.tif 000104
【０２９８】
は、フレームｎ内のマクロブロックｊが失われ、隠蔽されるときの予期される歪みである。この項は、ＥＣ１の場合は式（１２）を使用して計算でき、ＥＣ２の場合は式（１３）を使用して計算することができる。
【０２９９】
ＥＣ３では、
【０３００】
【数１０３】
2014039321.tif 000105
【０３０１】
が、ｍおよびｖの候補値に応じて式（１４）、式（１６）、または式（１８）のいずれかを使用して計算される
【０３０２】
【数１０４】
2014039321.tif 000106
【０３０３】
に置換される。
【０３０４】
選択されたモードおよび動きベクトルに関するチャネル歪み推定
本明細書で前に提示した方法は、Ｍ個までの前のフレーム内のすべてのマクロブロックの予期されるチャネル歪みが既知であると仮定してきた。ここで、我々は、あるマクロブロックの最終的なコーディングモードおよび動きベクトルが選択された後に、そのマクロブロックの予期されるチャネル歪みをどのように計算すべきかを考慮する。この計算は、フレームｎ内の各マクロブロックをコーディングするときに、動き推定およびモード決定プロセスの終りに行われる。
【０３０５】
マクロブロックｊの最終的なコーディングオプション（コーディングモードと、インターモードの場合は基準フレームインデックスおよび動きベクトルとを含む）を、ｏ*と表すものとする。このコーディングオプションに対応する予期される総歪みが
【０３０６】
【数１０５】
2014039321.tif 000107
【０３０７】
であり、量子化歪みが
【０３０８】
【数１０６】
2014039321.tif 000108
【０３０９】
である場合、このマクロブロックの予期されるチャネル歪みは、次のとおりである。
【０３１０】
【数１０７】
2014039321.tif 000109
【０３１１】
ＥＣ１およびＥＣ２について、様々なコーディングモードについて計算された
【０３１２】
【数１０８】
2014039321.tif 000110
【０３１３】
および
【０３１４】
【数１０９】
2014039321.tif 000111
【０３１５】
に基づいて、ｏ*を含むすべての可能なコーディングオプションについて式（２）を使用して、予期される総歪み
【０３１６】
【数１１０】
2014039321.tif 000112
【０３１７】
を導き出すことができる。同様に、
【０３１８】
【数１１１】
2014039321.tif 000113
【０３１９】
が、様々なコーディングモードについて計算されている。スキップモードについて、
【０３２０】
【数１１２】
2014039321.tif 000114
【０３２１】
である。したがって、式（２２）を直接に使用して、チャネル歪みを計算することができる。
【０３２２】
ＥＣ３について、我々は、様々なコーディングオプションについて、フレームｎ＋１内のマクロブロックｊが失われる場合にそのマクロブロックｊの予期される歪みである
【０３２３】
【数１１３】
2014039321.tif 000115
【０３２４】
だけを計算している。
【０３２５】
【数１１４】
2014039321.tif 000116
【０３２６】
を判定するために、我々は、
【０３２７】
【数１１５】
2014039321.tif 000117
【０３２８】
も計算する必要があり、ここで、
【０３２９】
【数１１６】
2014039321.tif 000118
【０３３０】
は、現在のマクロブロックの隠蔽が
【０３３１】
【数１１７】
2014039321.tif 000119
【０３３２】
に依存するので、フレームｎ−１内のマクロブロックｊについて選択されたコーディングオプションを表す。一般に、
【０３３３】
【数１１８】
2014039321.tif 000120
【０３３４】
に基づいて、フレームｎ内のマクロブロックｊのエラー隠蔽のためにデコーダが使用する基準フレームインデックスｍdおよび動きベクトルｖdを導き出すことができる。このマクロブロックが失われ、隠蔽されるときの歪みは、次式を使用して計算することができる。
【０３３５】
【数１１９】
2014039321.tif 000121
【０３３６】
イントラモードおよびスキップモードについて、デコーダエラー隠蔽がフレームコピーを使用する場合、上記の式は、式（１２）に簡略化される。
【０３３７】
次に、予期される総歪み
【０３３８】
【数１２０】
2014039321.tif 000122
【０３３９】
は、前に計算された
【０３４０】
【数１２１】
2014039321.tif 000123
【０３４１】
および新たに計算された
【０３４２】
【数１２２】
2014039321.tif 000124
【０３４３】
から、式（２）を使用して判定することができる。
【０３４４】
図５を見ると、デコーダがエラー隠蔽方法ＥＣ２を使用するときの、レート歪み最適化動き推定およびモード決定のための所与のマクロブロック（ＭＢ）のＬａｇｒａｎｇｉａｎコストにおける予期される総歪み
【０３４５】
【数１２３】
2014039321.tif 000125
【０３４６】
を判定する例示的方法が、概略的に符号５００によって示されている。方法５００は、機能ブロック５０５を含む。機能ブロック５０５は、マクロブロック内のピクセル値、その位置インデックスｊ、およびフレームインデックスｎ、候補コーディングモード、候補モードがインターモードである場合は候補基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖ、フレームｎ−Ｍからｎ−１までのすべてのマクロブロック（ＭＢ）内のエンコードされたピクセル値および平均チャネル歪み、マクロブロック損失率Ｐを入力し、機能ブロック５１０に制御を渡す。機能ブロック５１０は、
【０３４７】
【数１２４】
2014039321.tif 000126
【０３４８】
を判定し（例えば、図２に関して説明したように）、機能ブロック５１５に制御を渡す。
機能ブロック５１５は、
【０３４９】
【数１２５】
2014039321.tif 000127
【０３５０】
を判定し（例えば、図３に関して説明したように）、機能ブロック５２０に制御を渡す。
機能ブロック５２０は、
【０３５１】
【数１２６】
2014039321.tif 000128
【０３５２】
を使用して
【０３５３】
【数１２７】
2014039321.tif 000129
【０３５４】
を判定し、制御を機能ブロック５２５に渡す。機能ブロック５２５は、
【０３５５】
【数１２８】
2014039321.tif 000130
【０３５６】
を出力し、制御を終了ブロック５９９に渡す。
【０３５７】
図６を見ると、デコーダがエラー隠蔽方法ＥＣ３を使用するときの、レート歪み最適化動き推定およびモード決定のための所与のマクロブロック（ＭＢ）のＬａｎｇｒａｎｇｉａｎコストにおける
【０３５８】
【数１２９】
2014039321.tif 000131
【０３５９】
を判定する例示的方法が、概略的に符号６００によって示されている。方法６００は、機能ブロック６０５を含む。機能ブロック６０５は、マクロブロック内のピクセル値、その位置インデックスｊ、およびフレームインデックスｎ、候補コーディングモード、候補モードがインターモードの場合に候補基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖ、フレームｎ−Ｍからｎ−１までのすべてのマクロブロック（ＭＢ）内のエンコードされたピクセル値および平均チャネル歪み、マクロブロック損失率Ｐを入力し、機能ブロック６１０に制御を渡す。機能ブロック６１０は、
【０３６０】
【数１３０】
2014039321.tif 000132
【０３６１】
を判定し（例えば、図２に関して説明したように）、制御をブロック６１５に渡す。機能ブロック６１５は、
【０３６２】
【数１３１】
2014039321.tif 000133
【０３６３】
を判定し（例えば、図４に関して説明したように）、制御をブロック６２０に渡す。機能ブロック６２０は、
【０３６４】
【数１３２】
2014039321.tif 000134
【０３６５】
を使用して
【０３６６】
【数１３３】
2014039321.tif 000135
【０３６７】
を判定し、制御をブロック６２５に渡す。機能ブロック６２５は、
【０３６８】
【数１３４】
2014039321.tif 000136
【０３６９】
を出力し、制御を終了ブロック６９９に渡す。
【０３７０】
図７を見ると、デコーダがエラー隠蔽方法ＥＣ３を使用するときの、所与のマクロブロック（ＭＢ）のコーディングオプションｏを選択するための予期される総歪み
【０３７１】
【数１３５】
2014039321.tif 000137
【０３７２】
およびチャネル歪み
【０３７３】
【数１３６】
2014039321.tif 000138
【０３７４】
を判定する例示的方法が、概略的に符号７００によって示されている。方法７００は、機能ブロック７０５を含む。機能ブロック７０５は、マクロブロック内のピクセル値、その位置インデックスｊ、およびフレームインデックスｎ、候補コーディングモード、候補モードがインターモードの場合に候補基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖ、フレームｎ−Ｍからｎ−１までのすべてのマクロブロック（ＭＢ）内のエンコードされたピクセル値および平均チャネル歪み、マクロブロック損失率Ｐを入力し、機能ブロック７１０に制御を渡す。機能ブロック７１０は、
【０３７５】
【数１３７】
2014039321.tif 000139
【０３７６】
を判定し（例えば、図２に関して説明したように）、制御を機能ブロック７１５に渡す。
機能ブロック７１５は、このマクロブロックについてデコーダで使用される基準フレームインデックスｍdおよびＭＶ  ｖdを判定し、制御を機能ブロック７２０に渡す。機能ブロック７１５に関して、フレームｎ−１の同一位置のマクロブロック（ＭＢ）が基準フレームインデックスｍおよび動きベクトル（ＭＶ）ｖを伴うインターモードを使用する場合、機能ブロック７１５は、ｍd＝ｍ、ｖd＝ｖをセットする。そうでない場合は、ｍd、ｖdは、フレームｎ−１内の隣接するマクロブロック内の基準フレームインデックスおよび動きベクトルに基づいて予測される。
【０３７７】
機能ブロック７２０は、
【０３７８】
【数１３８】
2014039321.tif 000140
【０３７９】
を判定し、制御を機能ブロック７２５に渡す。機能ブロック７２０および
【０３８０】
【数１３９】
2014039321.tif 000141
【０３８１】
の判定に関して、ｍd＝１、ｖd＝０の場合は、式（１２）が使用される。そうでない場合は、式（１３）が使用される。
【０３８２】
機能ブロック７２５は、
【０３８３】
【数１４０】
2014039321.tif 000142
【０３８４】
を使用して
【０３８５】
【数１４１】
2014039321.tif 000143
【０３８６】
を判定し、機能ブロック７３０に制御を渡す。機能ブロック７３０は、
【０３８７】
【数１４２】
2014039321.tif 000144
【０３８８】
を判定し、制御を機能ブロック７３５に渡す。
【０３８９】
機能ブロック７３０に関して、インターモードおよびイントラモードについて、式（６
）が使用される。スキップモードについて、次式が使用される。
【０３９０】
【数１４３】
2014039321.tif 000145
【０３９１】
機能ブロック７３５は、
【０３９２】
【数１４４】
2014039321.tif 000146
【０３９３】
を使用して
【０３９４】
【数１４５】
2014039321.tif 000147
【０３９５】
を判定し、制御を機能ブロック７４０に渡す。機能ブロック７４０は、
【０３９６】
【数１４６】
2014039321.tif 000148
【０３９７】
および
【０３９８】
【数１４７】
2014039321.tif 000149
【０３９９】
を出力し、制御を終了ブロック７９９に渡す。
【０４００】
ここで、その一部を上記で述べた、本発明の多数の付随する利益／特徴のうちのいくつかの説明を与える。例えば、１つの利益／特徴は、動きベクトルが非整数値のときにイメージブロックの動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックの予期される歪みを計算する歪み計算機を有する装置である。歪み計算機は、非整数値を有する動きベクトルに関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【０４０１】
もう１つの利益／特徴は、歪み計算機が、０と１との間の値を有する倍率を少なくとも２つの隣接する整数ピクセル位置の歪みに適用することによって予期される歪みを計算する、上述した歪み計算機を有する装置である。
【０４０２】
もう１つの利益／特徴は、倍率を適用することによって予期される歪みを計算する歪み計算機を有する装置であり、倍率が非整数値を有するブロックのすべての候補動きベクトルについて事前に推定される。
【０４０３】
さらに、もう１つの利益／特徴は、歪み計算機がビデオエンコーダに含まれる、上述した歪み計算機を有する装置である。
【０４０４】
さらに、もう１つの利益／特徴は、デブロッキングフィルタリング動作がイメージブロックに適用されるとき、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるイメージブロックの予期される歪みを計算する歪み計算機を有する装置である。歪み計算機は、デブロッキングフィルタリング動作で使用されるピクセル位置に関して基準ピクチャ内の少なくとも２つの隣接する整数ピクセル位置の伝搬された歪みに基づいて予期される歪みを計算する。イメージブロックは、インターモードまたはスキップモードでコーディングされる。
【０４０５】
また、もう１つの利益／特徴は、イメージブロックがインターコーディングされ、前にデコードされたピクチャ内の同一位置のブロックのデコードされたコーディングモードおよび動きベクトルを使用して失われたマクロブロックの動き補償時間予測（motion compensated temporal prediction）を実行するデコーダによって受信されるときに、予期される歪みを含むＬａｇｒａｎｇｉａｎコスト関数を計算するエンコーダを装置がさらに含む、上述した歪み計算機を有する装置である。
【０４０６】
さらに、もう１つの利益／特徴は、デブロッキングフィルタ動作およびインターコーディングされたブロックの動きベクトルを利用する、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるインターコーディングされたブロックの予期される歪みを計算するエンコーダを有する装置である。このエンコーダは、デブロッキングフィルタ動作で使用されるインターコーディングされたブロックの隣接するブロック内のピクセル位置からの歪みの影響に基づいて、予期される歪みを計算する。
【０４０７】
さらに、もう１つの利益／特徴は、ビデオシーケンスのピクチャ内に含まれ損失を伴うチャネルを介して送られるブロックの予期される歪みを計算するエンコーダを有する装置である。このエンコーダは、ブロックのコーディングモードおよび動きベクトルに基づき、デコーダエラー隠蔽動作を使用して予期される歪みを計算し、ブロックの動きベクトルは、非整数値を有する。
【０４０８】
さらに、もう１つの利益／特徴は、デコーダエラー隠蔽動作がフレームコピー動作である、上述したエンコーダを有する装置である。
【０４０９】
また、もう１つの利益／特徴は、デコーダエラー隠蔽動作がブロックのエンコーダコーディングモードおよびエンコーダ動きベクトルを使用する、上述したエンコーダを有する装置である。
【０４１０】
さらに、もう１つの利益／特徴は、デコーダエラー隠蔽動作が前のピクチャに対応するエンコーダコーディングモードおよびエンコーダ動きベクトルをコピーする、上述したエンコーダを有する装置である。
【０４１１】
さらに、もう１つの利益／特徴は、エラー隠蔽動作が動き補償時間予測を使用し、エンコーダが、ブロックだけがピクチャ内で失われるときのデコーダエラー隠蔽動作を使用して計算される隠蔽歪み、およびそのブロックの動きベクトルによって指し示される基準ピクチャ内の動き補償ブロック内のチャネル歪みを合計することによって予期される歪みを計算し、チャネル歪みが、倍率によってスケールダウンされ、隠蔽歪みが、基準ピクチャ内の動き補償ブロック内のエンコードされたピクセル値に基づいて計算される、上述したエンコーダを有する装置である。
【０４１２】
本発明の上記および他の特徴および利益は、本明細書の教示に基づいて、当業者であれば容易に確かめ得る。本発明の教示を、ハードウェア、ソフトウェア、ファームウェア、専用プロセッサー、またはこれらの組合せの様々な形態で実施できることを理解すべきである。
【０４１３】
最も望ましくは、本発明の教示は、ハードウェアおよびソフトウェアの組合せとして実施される。さらに、ソフトウェアは、プログラム記憶装置上で有形に実施されるアプリケーションプログラムとして実施することができる。このアプリケーションプログラムを、任意の適切なアーキテクチャを含む機械にアップロードし、その機械によって実行することができる。望ましくは、その機械は、１つまたは複数の中央処理装置（「ＣＰＵ」）、ランダムアクセスメモリー（「ＲＡＭ」）、および入出力（「Ｉ／Ｏ」）インターフェースなどのハードウェアを有するコンピュータープラットフォーム上で実施される。このコンピュータープラットフォームは、オペレーティングシステムおよびマイクロ命令コードも含むことができる。本明細書で説明した様々なプロセスおよび機能を、マイクロ命令コードの一部、アプリケーションプログラムの一部、またはその任意の組合せのいずれかとすることができ、これをＣＰＵによって実行することができる。さらに、追加データ記憶装置および印刷ユニットなど、様々な他の周辺装置をコンピュータープラットフォームに接続することができる。
【０４１４】
添付図面に示された構成システムコンポーネントおよび方法の一部が、望ましくはソフトウェアで実施されるので、システムコンポーネントまたはプロセス機能ブロックの間の現実の接続は、本発明がプログラムされる形に応じて変化し得ることをさらに理解すべきである。本明細書の教示を与えられれば、当業者は、本発明の上記のおよび同等の実施態様または構成を企図することができるであろう。
【０４１５】
例示的実施形態を、添付図面を参照して本明細書で説明したが、本発明がこれらの正確な実施形態に限定されないこと、および本発明の範囲または趣旨から逸脱せずに当業者が様々な変更および修正をもたらすことができることを理解すべきである。そのような変更および修正のすべてが、添付の特許請求の範囲に示された本発明の範囲に含まれることが意図されている。
【図１Ａ】
2014039321.tif 000150
【図１Ｂ】
2014039321.tif 000151
【図２】
2014039321.tif 000152
【図３】
2014039321.tif 000153
【図４】
2014039321.tif 000154
【図５】
2014039321.tif 000155
【図６】
2014039321.tif 000156
【図７】
2014039321.tif 000157
【手続補正書】
【提出日】平成25年11月20日(2013.11.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イメージブロックの動きベクトルが非整数値を有するときに前記動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれかつ損失を伴うチャネルを介して送られる前記イメージブロックの予期される歪みを計算する歪み計算機であって、前記歪み計算機は、基準フレームを使用するマクロブロックの平均二乗量子化誤差と、基準フレームの動き補償されたブロック内の予期されるチャネル歪みの重み平均との総計に基づいて、前記ピクチャ内の前記マクロブロックの前記予期される歪みを計算し、前記重み平均は、オーバーラップするマクロブロック内の伝搬されるチャネル歪みの重み平均によって決められ、前記重みは、オーバーラップの面積に比例し、非整数値動きベクトルと呼ばれる非整数位置に最も近い位置を有する少なくとも２つの整数ピクセルを使用し、前記イメージブロックは、インターモードでコーディングされる、歪み計算機  
を含む、装置。
【請求項２】
前記歪み計算機は、０と１との間の値を有する倍率を前記少なくとも２つの隣接する整数ピクセル位置の歪みに適用することにより、前記予期される歪みを計算する、請求項１に記載の装置。
【請求項３】
前記倍率は、前記非整数値を有する前記ブロックのすべての候補動きベクトルについて事前に推定される、請求項２に記載の装置。
【請求項４】
前記歪み計算機は、ビデオエンコーダ内に含まれる、請求項１に記載の装置。
【請求項５】
イメージブロックの動きベクトルが非整数値を有するときに前記動きベクトルを使用して、ビデオシーケンスのピクチャ内に含まれかつ損失を伴うチャネルを介して送られる前記イメージブロックの予期される歪みを計算するステップであって、前記計算するステップは、基準フレームを使用する前記マクロブロックの平均二乗量子化誤差と、基準フレームの動き補償されたブロック内の予期されるチャネル歪みの重み平均との総計に基づいて、前記ピクチャ内のマクロブロックの前記予期される歪みを計算し、前記重み平均は、オーバーラップするマクロブロック内の伝搬されるチャネル歪みの重み平均によって決められ、前記重みは、オーバーラップの面積に比例し、非整数値動きベクトルと呼ばれる非整数位置に最も近い位置を有する少なくとも２つの整数ピクセルを使用し、前記イメージブロックは、インターモードでコーディングされる、計算するステップ
を含む、方法。
【請求項６】
前記計算するステップは、０と１との間の値を有する倍率を前記少なくとも２つの隣接する整数ピクセル位置の歪みに適用するステップにより、前記予期される歪みを計算する、請求項５に記載の方法。
【請求項７】
前記倍率は、前記非整数値を有するブロックのすべての候補動きベクトルについて事前に推定される、請求項６に記載の方法。
【請求項８】
前記方法は、ビデオエンコーダによって実行される、請求項５に記載の方法。
【外国語明細書】
2014039321000001.pdf