(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-30
(45)【発行日】2024-08-07
(54)【発明の名称】ビデオ符号化及び復号化
(51)【国際特許分類】
H04N 19/52 20140101AFI20240731BHJP
H04N 19/54 20140101ALI20240731BHJP
【FI】
H04N19/52
H04N19/54
(21)【出願番号】P 2023031313
(22)【出願日】2023-03-01
(62)【分割の表示】P 2021507497の分割
【原出願日】2019-09-18
【審査請求日】2023-03-01
(32)【優先日】2018-09-21
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ラロシュ, ギローム
(72)【発明者】
【氏名】ジスケ, クリストフ
(72)【発明者】
【氏名】オンノ, パトリス
(72)【発明者】
【氏名】タケ, ジョナサン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2018/131523(WO,A1)
【文献】国際公開第2017/200771(WO,A1)
【文献】LAROCHE, Guillaume et al.,CE4-related: On Affine mode restriction,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao,JVET-L0193 (version 1),ITU-T,2018年09月24日,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
動き予測を使用して符号化されたビットストリームから画像を復号する方法であって、
サブブロックコロケーテッド時間的予測の候補と、サブブロックアフィン予測の候補とを含むことが可能な動き予測子候補のリストを生成することを含み、
前記サブブロックコロケーテッド時間的予測は、画像における対象ブロックに対し、参照画像において当該対象ブロックと同一位置のブロックに含まれる複数のサブブロックの各々の動き情報を用いることが可能であり、
前記リスト内の前記サブブロックアフィン予測の候補の順序は、サブブロックコロケーテッド時間的予測の候補
が前記リストに含まれるかに基づいて可変である、
ことを特徴とする方法。
【請求項2】
動き予測を使用してビットストリームに画像を符号化する方法であって、
サブブロックコロケーテッド時間的予測の候補と、サブブロックアフィン予測の候補とを含むことが可能な動き予測子候補のリストを生成することを含み、
前記サブブロックコロケーテッド時間的予測は、画像における対象ブロックに対し、参照画像において当該対象ブロックと同一位置のブロックに含まれる複数のサブブロックの各々の動き情報を用いることが可能であり、
前記リスト内の前記サブブロックアフィン予測の候補の順序は、サブブロックコロケーテッド時間的予測の候補
が前記リストに含まれるかに基づいて可変である、
ことを特徴とする方法。
【請求項3】
前記リストの最大候補数は、前記サブブロックアフィン予測が有効かに依存することを特徴とする
請求項1又は2に記載の方法。
【請求項4】
前記サブブロックアフィン予測は、2又は3つの動き情報に従って、ブロック内の複数のサブブロックの各々に対し動き情報を導出することを特徴とする請求項1乃至
3のいずれか1項に記載の方法。
【請求項5】
動き予測を使用してビットストリームに画像を符号化する符号化器であって、
サブブロックコロケーテッド時間的予測の候補と、サブブロックアフィン予測の候補とを含むことが可能な動き予測子候補のリストを生成する手段を含み、
前記サブブロックコロケーテッド時間的予測は、画像における対象ブロックに対し、参照画像において当該対象ブロックと同一位置のブロックに含まれる複数のサブブロックの各々の動き情報を用いることが可能であり、
前記リスト内の前記サブブロックアフィン予測の候補の順序は、サブブロックコロケーテッド時間的予測の候補
が前記リストに含まれるかに基づいて可変である、
ことを特徴とする符号化器。
【請求項6】
動き予測を使用してビットストリームからの画像を復号する復号化器であって、
サブブロックコロケーテッド時間的予測の候補と、サブブロックアフィン予測の候補とを含むことが可能な動き予測子候補のリストを生成する手段を含み、
前記サブブロックコロケーテッド時間的予測は、画像における対象ブロックに対し、参照画像において当該対象ブロックと同一位置のブロックに含まれる複数のサブブロックの各々の動き情報を用いることが可能であり、
前記リスト内の前記サブブロックアフィン予測の候補の順序は、サブブロックコロケーテッド時間的予測の候補
が前記リストに含まれるかに基づいて可変である、
ことを特徴とする復号化器。
【請求項7】
コンピュータに請求項1又は2に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ符号化及び復号化に関する。
【背景技術】
【0002】
最近、共同ビデオ専門家チーム(JVET)は、すなわちMPEGとITU-Tスタディグループ16のVCEGによって形成された共同チーム、多用途ビデオ符号化(VVC)と呼ばれる新しいビデオ符号化規格の研究を開始した。VVCの目標は、既存のHEVC規格(すなわち、典型的には以前の2倍)を超える圧縮性能の著しい改良を提供すること、及び2020年に完了することである。主な対象アプリケーション及びサービスは360度及びハイダイナミックレンジ(HDR)ビデオを含むが、これに限定されない。全体的に、JVETは、独立した試験所により実施された正式な主観的試験を用いて、32団体からの応答を評価した。いくつかの提案は、HEVCを使用する場合と比較して、典型的には40%以上の圧縮効率ゲインを実証した。特定の有効性が、超高精細(UHD)ビデオの試験材料に関して示された。したがって、我々は、最終的な規格の目標とする50%をはるかに超える圧縮効率ゲインを予想することができる。
【0003】
JVET探索モデル(JEM)は、全てのHEVCツールを使用する。HEVCには存在しない更なるツールは、動き補償を適用する時に、「アフィン動きモード」を使用することである。HEVCにおける動き補償は、平行移動に限定されるが、現実的には例えばズームイン/アウト、回転、遠近感の運動、及び他の不規則な動作のような多くの種類の動きがある。アフィン動きモードを利用する場合、そのような動きの形態をより正確に予測しようとするために、より複雑な変換がブロックに適用される。しかしながら、アフィン動きモードの使用は符号化/復号化処理の複雑さを増大させることがあり、また、信号オーバヘッドを増大させることがある。したがって、前述の問題の少なくとも1つの解決が望ましい。
【発明の概要】
【0004】
本発明の第1の態様では、ビットストリームの一部の動き予測モードを伝達する方法であって、前記ビットストリームの前記一部に使用されるインター予測モードを判定することと、前記ビットストリームの前記一部に使用される前記インター予測モードに依存して、アフィン動きモードを伝達することを含む方法が提供される。任意で、使用されるインター予測モードは、前記ビットストリームの前記一部におけるスキップフラグの状態に基づいて判定される。任意で、アフィンモードは、前記スキップフラグが存在する場合、有効化されない。任意で、本方法は、前記アフィンモードが有効化される場合、マージモードを有効化することをさらに含む。任意で、アフィンモードは、前記インター予測モードがアドバンスド・モーション・ベクタ・プレディクタ(AMVP)である場合、有効化される。任意で、前記判定はハイレベルシンタックスフラグに基づいて実行され、前記ハイレベルシンタックスフラグはスライスレベル、フレームレベル、シーケンスレベル、及びコーディング・ツリー・ユニット(CTU)レベルのうちの少なくとも1つの処理を示す。任意で、インター予測モードを判定することは、現在のブロックに隣接する1つ以上のブロックのモードを判定することを含む。
【0005】
本発明の第2の態様では、ビットストリーム内の動き予測モードを伝達する方法であって、1つ以上の隣接するブロックのモードを現在のブロックに判定することと、前記モードに依存して、現在のブロックのアフィン動きモードを伝達することを含む方法が提供される。任意で、前記隣接するブロックは、ブロックA1及びB1のみで構成される。あるいは、前記隣接するブロックが、ブロックA2及びB3を含み、好ましくはブロックA2及びB3のみで構成される。任意で、本方法は前記隣接するブロックの一方又は両方がアフィン動きモードを使用する場合、アフィン動きモードを有効化することを含む。任意で、前記隣接するブロックは、B0、A0、及びB2をさらに含む。任意で、前記隣接するブロックにおけるアフィンモードの使用は連続して判定され、前記隣接するブロックのうちの1つがアフィンモードを使用する場合、アフィンモードは現在のブロックに対して有効化される。好ましくは、一連の隣接するブロックはA2、B3、B0、A0、B2である。
【0006】
本発明の第3の態様では、ビットストリームの一部の動き予測モードを伝達する方法であって、現在のブロックに隣接するブロックに対応するマージ候補のリストを判定することと、前記マージ候補の1つ以上がアフィンモードを使用する場合、前記現在のブロックのアフィンモードを有効化することを含む方法が提供される。任意で、前記リストは、前記ブロックに関連するコンテキスト変数を判定するために使用されるブロックで始める。任意で、リストはそれの順序においてブロックA2及びB3で始める。任意で、リストは、それの順序においてA2、B3、B0、又はA0、又はB2である。任意で、アフィンモードは前記隣接するブロックがマージモードを使用しない場合、現在のブロックに対して有効化される。任意で、アフィンモードは前記隣接するブロックがマージスキップモードを使用しない場合、現在のブロックに対して有効化される。任意で、アフィンモードを伝達することは、コンテキスト符号化フラグをデータストリームに挿入することを含み、前記フラグのコンテキスト変数は隣接するブロックがアフィンモードを使用するか否かに基づいて判定される。
【0007】
本発明のさらなる態様では、ビットストリーム内の符号化されたブロックの動き予測モードを伝達する方法であって、前記ビットストリーム内の符号化された前記ブロックに隣接するブロックが、アフィンモードを使用するか否かを判定することと、コンテキスト符号化フラグを前記ビットストリームに挿入することであって、前記コンテキスト符号化フラグのコンテキスト変数が、前記ビットストリーム内の符号化された前記ブロックに隣接するブロックが、アフィンモードを使用するか否かの前記判定に依存する、ことを含む、ことを特徴とする方法が提供される。任意で、隣接するブロックはブロックA1及びB1を含む。任意で、動き予測モードが有効化されているブロックのモードがマージモードである場合、前記隣接するブロックはブロックA1及びB1を含む。任意で、アフィンフラグのコンテキストは以下の式Ctx = IsAffine(A1)+ IsAffine(B1)に従って取得され、ここで、Ctxはアフィンフラグのコンテキスト変数であり、IsAffineはブロックがアフィンブロックでない場合に0及びブロックがアフィンである場合に1を返す関数である。
【0008】
本発明の第4の態様では、隣接するブロックがマージモード及び/又はマージスキップモードを使用するか否かに依存して、ビットストリーム内で符号化されたブロックの動き予測モードを伝達する方法が提供される。本発明の第5の態様では、ビットストリーム内の動き予測モードを伝達する方法であって、動き予測子候補のリストをコンパイルすることと、アフィンマージモードをマージ候補として挿入することを含む、ことを特徴とする方法が提供される。任意で、アフィンマージモード候補は、マージ候補のリスト内の隣接するブロック動きベクトルの後にある。任意で、アフィンマージモード候補は、マージ候補のリスト内のオルタナティブ・テンポラル・モーション・ベクタ・プレディクタ(ATMVP)候補の前にある。任意で、前記候補のリスト内のアフィンマージモード候補の位置(マージインデックス)は固定される。任意で、前記候補リスト内のアフィンマージモード候補の位置は可変である。任意選択で、アフィンマージモード候補の位置は、a)スキップフラグの状態、b)隣接するブロックの動き情報、c)オルタナティブ・テンポラル・モーション・ベクタ・プレディクタ(ATMVP)候補、及びd)隣接するブロックがアフィンモードを使用するか否かのうち1つ以上に基づいて判定される。
【0009】
任意で、以下の条件の1つ以上が満たされる場合、すなわち、a)スキップフラグが存在し、b)隣接するブロックの動き情報が等しく、c)ATMVP候補が1つの動き情報のみを含み、d)1つ以上の隣接するブロックがアフィンモードを使用する、アフィンマージモードは(より高いマージインデックスが割り当てられた)前記候補のリスト内でより低く配置される。任意で、前記隣接するブロックは、ブロックA1及びB1を含む。任意で、アフィンマージモードは、上記の条件a)~d)のうちの1つ以上が満たされる場合、空間的動きベクトル候補よりも、前記候補のリスト(より高いマージインデックスが割り当てられた)内でより低く配置される。任意で、アフィンマージモードは、上記の条件a)~d)のうちの1つ以上が満たされる場合、時間的動きベクトル候補よりも低く配置される(より高いマージインデックスが割り当てられる)。任意で、アフィンマージモードは、アフィンモードを使用する隣接するブロックの数に関連するマージインデックスが割り当てられる。任意で、アフィンマージモードは、5から5つのA1、B1、B0、A0、B2の中からアフィンモードを使用する隣接するブロックの量を引いたものに等しいマージインデックスが割り当てられる。
【0010】
本発明の別の態様によれば、ビデオストリーム内のアフィン動きモードを伝達する方法であって、アフィンモードの尤度が現在のブロックに使用されている否かを判定することと、動き候補予測子リストをコンパイルすることと、アフィンマージモードを前記現在のブロックのアフィンモードの尤度を判定することに依存して、マージ候補として挿入することを含む方法が提供される。任意で、前記尤度は、a)スキップフラグの状態、b)隣接するブロックの動き情報、及びc)ATMVP候補のうちの少なくとも1つに基づいて判定される。任意で、以下の条件のうちの1つ以上が満たされる場合、すなわち、a)スキップフラグの状態、b)隣接するブロックの動き情報が等しい、及びc)ATMVP候補は1つの動き情報のみを含む、アフィンマージモードはマージ候補として挿入されない。任意で、前記隣接するブロックは、ブロックA1及びB1を含む。任意で、アフィンモードは、符号化されているビットストリームに対応するビデオを記録するために使用される装置の特徴に依存して伝達される。
【0011】
本発明の態様は、符号化効率の改善及び/又は既存の符号化規格又は提案と比較して符号化複雑さの低減を提供する。このようにして、より効率的で高速なビデオ符号化及び/又は復号化方法及びシステムが提供される。本発明のさらなる態様は、上記態様のうちいずれかの方法を使用して符号化及び復号化方法に関する。本発明のさらに別の態様は、請求項14によって定義されるように、符号化されたビデオを表すビットストリーム内のアフィンモードの使用を伝達するための装置に関する。本発明のさらに別の態様は、それぞれ請求項17及び18によって定義されるように、符号化部及び復号化部に関する。本発明のさらに別の態様は、請求項19によって定義されるようにプログラムに関する。プログラムは、それ自体で提供されてもよく、又は搬送媒体上、搬送媒体によって、又は搬送媒体内で搬送されてもよい。搬送媒体は非一時的であってもよく、例えば、記憶媒体、特にコンピュータ可読記憶媒体であってもよい。搬送媒体はまた、一時的、例えば、信号又は他の伝送媒体であってもよい。伝達は、インターネットを含む任意の適切なネットワークを介して送信されてもよい。
【0012】
さらに本発明のさらなる態様は、請求項15及び16によって定義されるようにカメラ又はモバイル装置等の周辺デバイスに関する。任意で、カメラはズーム手段をさらに含み、前記ズーム手段が動作し、かつ、前記指示に依存する信号アフィンモードである場合、ズーム手段が動作していることを示すように適合されてもよい。任意で、カメラはパン手段をさらに含み、前記パン手段が動作し、かつ、前記指示に依存する信号アフィンモードである場合、パン手段が動作していることを示すように適合されてもよい。任意で、モバイル装置はモバイル装置の向きの変化を感知するように適合された少なくとも1つの位置センサをさらに含み、モバイル装置の向きの変化を前記感知することに依存してアフィンモードを伝達するように適合されていてもよい。本発明のさらなる特徴は、他の独立及び従属請求項によって特徴付けられる。
【0013】
本発明の一態様における任意の特徴は、任意の適切な組み合わせで、本発明の他の態様に適用されてもよい。特に、方法の態様は、装置の態様に適用されてもよく、逆もまた同様である。さらに、ハードウェアで実装される特徴は、ソフトウェアで実装されてもよく、逆もまた同様である。本明細書におけるソフトウェア及びハードウェアの特徴への任意の参照は、それに応じて解釈されるべきである。本明細書に記載されるような任意の装置の特徴は、方法の特徴として提供されてもよく、逆もまた同様である。本明細書で使用されるように、ミーンズ・プラス・ファンクションの特徴は、適切にプログラムされたプロセッサ及び関連するメモリのような、それらの対応する構造の面で代替的に表現されてもよい。また、本発明の任意の態様において説明され、かつ、定義された様々な特徴の特定の組合せは、独立して実装及び/又は供給及び/又は使用され得ることを理解されたい。
【図面の簡単な説明】
【0014】
ここで例として、以下の添付図面を参照して説明する。
【0015】
【
図1】
図1は、HEVCで使用される符号化構造を説明するための図である。
【
図2】
図2は、本発明の1つ以上の実施形態が実施されるデータ通信システムを模式的に示すブロック図である。
【
図3】
図3は、本発明の1つ以上の実施形態が実施される処理装置の構成要素を示すブロック図である。
【
図4】
図4は、本発明の実施形態による符号化方法のステップを示すフローチャートである。
【
図5】
図5は、本発明の実施形態による復号化方法のステップを示すフローチャートである。
【
図6a】
図6(a)は、動きベクトル予測子を生成するために使用される空間的及び時間的ブロックを示す。
【
図6b】
図6(b)は、動きベクトル予測子を生成するために使用される空間的及び時間的ブロックを示す。
【
図7】
図7は、AMVP予測子セット導出のプロセスの簡略化されたステップを示す。
【
図8】
図8は、マージモードの動きベクトル導出プロセスの模式図である。
【
図9】
図9は、現在のブロックの分割及び時間的動きベクトル予測を示す。
【
図10】
図10(a)は、HEVCに対する、又はATMVPがSPSレベルで有効化されていない場合のマージインデックスの符号化を示す。
図10(b)は、ATMVPがSPSレベルで有効化される場合のマージインデックスの符号化を示す。
【
図11】
図11(a)は、単純なアフィン動き場を示す。
図11(b)は、より複雑なアフィン動き場を示す。
【
図12】
図12は、符号化モードに関連するいくつかのシンタックス要素の一部の復号化処理のフローチャートである。
【
図13】
図13は、マージ候補導出を示すフローチャートである。
【
図14】
図14は、本発明の第1実施形態を示すフローチャートである。
【
図15】
図15は、本発明の第2実施形態を示すフローチャートである。
【
図16】
図16は、本発明の第3実施形態を示すフローチャートである。
【
図17】
図17は、本発明の第4実施形態を示すフローチャートである。
【
図18】
図18は、本発明の第5実施形態を示すフローチャートである。
【
図19】
図19は、本発明の1つ以上の実施形態を実装するためのコンピューティングデバイスの模式的なブロック図である。
【
図20】
図20は、コンピューティングデバイスの模式的なブロック図である。
【
図21】
図21は、ネットワークカメラシステムを示す図である。
【発明を実施するための形態】
【0016】
本発明は、アフィン動きモードの改善された伝達、特に、アフィンモードが符号化効率の改善をもたらす可能性がある場合を判定すること、及び、それに応じてアフィンモードが使用され、かつ/又は優先が割り当てられることを保証することに関する。
図1は、高効率ビデオ符号化(HEVC)ビデオ規格で使用される符号化構造に関する。ビデオシーケンス1は、一連のデジタル画像iから構成される。このような各デジタル画像は、1つ以上のマトリックスによって表される。マトリックス係数はピクセルを表す。シーケンスの画像2は、スライス3に分割され得る。スライスは、いくつかの例では、画像全体を構成することができる。これらのスライスは、重複しない符号化ツリーユニット(CTU)に分割される。符号化ツリーユニット(CTU)は、高効率ビデオ符号化(HEVC)ビデオ規格の基本的な処理ユニットであり、概念的には、いくつかの以前のビデオ規格で使用されたマクロブロックユニットに対応する。CTUは、時々最大符号化ユニット(LCU)とも呼ばれる。CTUは、輝度及び彩度の構成要素部を有し、構成要素部分の各々は、符号化ツリーブロック(CTB)と呼ばれる。これらの異なる色成分は、
図1には示されていない。
【0017】
CTUは一般的に、HEVC用のサイズ64ピクセルx64ピクセルであり、さらにVVC用にこのサイズは128ピクセルx128ピクセルであってよい。各CTUは、四分木分解を使用して、より小さい可変サイズ符号化ユニット(CU)5に反復的に順次分割されてもよい。符号化単位は、基本符号化要素であり、予測ユニット(PU)と変換ユニット(TU)と呼ばれる2種類のサブユニットにより構成される。PU又はTUの最大サイズは、CUサイズに等しい。予測ユニットは、ピクセル値の予測のためのCUの仕切りに対応する。606によって示されるように、4つの正方形PUへの仕切りと、2つの長方形PUへの2つの異なる仕切りを含み、PUへのCUの様々な異なる仕切りが可能である。変換ユニットは、DCTを使用して空間的変換の対象となる基本的なユニットである。CUは、四分木表現607に基づいてTUに分割され得る。
【0018】
各スライスは、1つのネットワーク抽象化層(NAL)ユニットに埋め込まれる。さらに、ビデオシーケンスの符号化パラメータは、パラメータセットと呼ばれる専用NALユニットに記憶される。HEVC及びH.264/AVCでは、2種類のパラメータセットNALユニットが使用される、すなわち、第1に、ビデオシーケンス全体の間に変更されない全てのパラメータを収集するシーケンス・パラメータ・セット(SPS)NALユニット。典型的には、それは符号化プロファイル、ビデオフレームのサイズ、及び他のパラメータを処理する。第2に、ピクチャ・パラメータ・セット(PPS)NALユニットは、シーケンスの1つの画像(又はフレーム)から別のものに変更することができるパラメータを含む。HEVCは、ビットストリームの全体的な構造を記述するパラメータを含むビデオ・パラメータ・セット(VPS)NALユニットも含む。VPSは、HEVCで定義された新しいタイプのパラメータセットであり、ビットストリームの全てのレイヤに適用される。レイヤは、複数の時間的サブレイヤーを含んでよく、全てのバージョン1のビットストリームは単一のレイヤに制限される。HEVCは、拡張性とマルチビューのための特定の階層拡張を有し、これらは後方互換性のあるバージョン1ベースレイヤを有する複数のレイヤを可能にする。
【0019】
図2は、本発明の1つ以上の実施形態が実施されるデータ通信システムを示す。データ通信システムは、データ通信ネットワーク200を介して、データストリームのデータパケットを受信装置、この場合はクライアント端末202に送信するように動作可能な送信装置、この場合はサーバ201を含む。データ通信ネットワーク200は、ワイドエリアネットワーク(WAN)又はローカルエリアネットワーク(LAN)であってもよい。このようなネットワークは例えば、無線ネットワーク(Wifi/802.11a又はb又はg)、イーサネットネットワーク、インターネットネットワーク、又は複数の異なるネットワークから構成される混合ネットワークであってもよい。本発明の特定の実施形態では、データ通信システムは、サーバ201が同じデータコンテンツを複数のクライアントに送信するデジタルテレビ放送システムであってもよい。サーバ201によって提供されるデータストリーム204は、ビデオ及びオーディオデータを表すマルチメディアデータから構成されてもよい。オーディオ及びビデオデータストリームは、本発明のいくつかの実施形態では、それぞれマイクロフォン及びカメラを使用してサーバ201によってキャプチャされ得る。いくつかの実施形態において、データストリームはサーバ201上に記憶されてもよく、又は別のデータプロバイダからサーバ201によって受信されてもよく、又はサーバ201で生成されてもよい。サーバ201は特に、符号化部への入力として提示されるデータのよりコンパクトな表現である送信のための圧縮ビットストリームを提供するために、ビデオ及びオーディオストリームを符号化するための符号化部を備える。
【0020】
送信データの品質対送信データの量のより良い比を得るために、ビデオデータの圧縮は例えば、HEVCフォーマット又はH.264/AVCフォーマットに従ってもよい。クライアント202は、表示装置上でビデオ画像を、及び、スピーカにより音声データを再生するために、送信されたビットストリームを受信し、かつ、再構成されたビットストリームを復号化する。
図2の例では、ストリーミングシナリオが考慮されているが、本発明のいくつかの実施形態では符号化部と復号化部との間のデータ通信が、例えば、光ディスクなどの媒体記憶装置を使用して実行されてよいことが理解されよう。本発明の1つ以上の実施形態では、ビデオ画像が画像の再構成されたピクセルへの適用に最終画像内のフィルタリングされたピクセルを提供するために、補償オフセットを表すデータと共に送信される。
【0021】
図3は、本発明の少なくとも1つの実施形態を実施するように構成された処理装置300を模式的に示す。処理装置300は、マイクロコンピュータ、ワークステーション、又はライトポータブルデバイス等のデバイスであってもよい。装置300は、以下に接続された通信バス313を備える、すなわち、CPUで示されるマイクロプロセッサ等の中央演算処理装置311、本発明を実施するためのコンピュータプログラムを記憶するためのROMと表記される読み出し専用メモリ306、本発明の実施形態の方法の実行可能コードを記憶するため及びデジタル画像のシーケンスを符号化する方法及び/又は本発明の実施形態によるビットストリームを復号化する方法を実施するために必要な変数及びパラメータを記録するように適合されたレジスタを格納するための、RAMで示されるランダムアクセスメモリ312、処理されるデジタルデータが送信又は受信される通信ネットワーク303に接続された通信インターフェース302。
【0022】
任意で、装置300は、以下の構成要素を含むこともできる、すなわち、本発明の1つ以上の実施形態の方法を実装するためのコンピュータプログラム、及び本発明の1つ以上の実施形態の実施中に使用又は生成されるデータを記憶するためのハードディスク等のデータ記憶手段304、ディスク306のためのディスクドライブ305、ディスクドライブは、ディスク306からのデータを読み取るか、又は前記ディスクにデータを書き込むように適合されており、データを表示するための及び/又はキーボード310又は任意の他の指示手段の手段によって、ユーザとのグラフィカルインターフェースとして機能する画面309。
【0023】
装置300は例えば、デジタルカメラ320又はマイクロフォン308のような種々の周辺機器に接続されてよく、それぞれはマルチメディアデータを装置300に供給するために、入力/出力カード(図示せず)に接続される。通信バスは、装置300に含まれる、又はそれに接続された種々の要素間の通信及び相互接続性を提供する。バスの表現は限定されず、特に、中央演算処理装置は直接的に、又は装置300の別の要素の手段によって、装置300の任意の要素に命令を通信するように動作可能である。
【0024】
ディスク306は例えばコンパクトディスク(CD-ROM)、書き換え可能又はそうでない、ZIPディスク又はメモリカード等の任意の情報媒体、及び一般的には、マイクロコンピュータ又はマイクロプロセッサによって読み取られ、装置に統合又はそうではない、可能であればリムーバブルであり、及び実行がデジタル画像のシーケンスを符号化する方法及び/又は実装される本発明によるビットストリームを復号化する方法を可能にする1つ以上のプログラムを記憶するように構成された情報記憶手段によって、置き換えられてもよい。実行可能コードは、読み出し専用メモリ306、ハードディスク304、又は前述のような例えばディスク306等のリムーバブルデジタル媒体のいずれかに格納されてもよい。変形例によれば、プログラムの実行可能コードは、ハードディスク304のような実行される前に装置300の記憶手段の1つに記憶されるために、インターフェース302を介して、通信ネットワーク303の手段によって受信され得る。
【0025】
中央演算処理装置311は、命令又はプログラムのソフトウェアコードの一部又は本発明に記載のプログラム、前述の記憶手段のうち1つに記憶される命令の実行を制御及び指示するよう適合されている。電源オン時に、例えばハードディスク304又は読み出し専用メモリ306上の不揮発性メモリに記憶されるプログラム又はプログラムは、ランダムアクセスメモリ312に転送され、それは次にプログラム又はプログラムの実行可能コードと、本発明を実施するために必要な変数及びパラメータを記憶するためのレジスタを含む。この実施形態では、装置が本発明を実施するためのソフトウェアを使用するプログラマブル装置である。しかしながら、代替的に、本発明はハードウェア(例えば、特定用途向け集積回路又はASICの形態で)において実装されてもよい。
【0026】
図4は、本発明の少なくとも1つの実施形態による符号化部のブロック図を示す。符号化部は、接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU311によって実行されるべきプログラム命令の形態で、本発明の1つ以上の実施形態による画像シーケンスの画像を符号化する少なくとも1つの実施形態を実施する方法の少なくとも1つの対応するステップを実施するように適合される。デジタル画像i0からin401のオリジナルシーケンスは、符号化部400によって入力として受信される。各デジタル画像は、ピクセルとして知られるサンプルのセットによって表される。ビットストリーム410は、符号化処理の実装後の符号化部400による出力である。ビットストリーム410は、複数の符号化部又はスライスを備え、各スライスは符号化されたビデオデータを備えるスライスとスライス本体を符号化するために使用される符号化パラメータの符号化値を送信するためのスライスヘッダを備える。
【0027】
入力デジタル画像i0からin401は、モジュール402によってピクセルのブロックに分割される。ブロックは画像部分に対応し、可変サイズであってもよい(例えば、4×4、8×8、16×16、32×32、64×64、128×128ピクセル、及びいくつかの矩形ブロックサイズが考慮されてもよい)。符号化モードは、各入力ブロックに対して選択される。符号化モードの2つのファミリーが提供される、つまり、空間的予測符号化(イントラ予測)に基づく符号化モードと、時間的予測(インター符号化、マージスキップ)に基づく符号化モード。可能な符号化モードがテストされる。モジュール403は、符号化されるべき所定のブロックが、符号化されるべき前記ブロックの近傍の画素から計算された予測子によって予測されるイントラ予測処理を実施する。選択されたイントラ予測子の指示及び所定のブロックとそれの予測子との間の差分は、イントラ符号化が選択される場合に残差を提供するために符号化される。
【0028】
時間的予測は、動き推定モジュール404及び動き補償モジュール405によって実施される。最初に、基準画像416のセットの中から基準画像が選択され、符号化されるべき所定のブロックに最も近い領域である基準領域又は画像部分とも呼ばれる基準画像の部分が、動き推定モジュール404によって選択される。次いで、動き補償モジュール405は、選択された領域を使用して、符号化されるべきブロックを予測する。残差ブロックとも呼ばれる、選択された基準領域と所定のブロックとの間の差分は、動き補償モジュール405によって計算される。選択された基準領域は、動きベクトルによって示される。このように、両方の場合(空間的及び時間的予測)、残差は元のブロックから予測を減算することによって計算される。モジュール403によって実施されるイントラ予測では、予測方向が符号化される。時間的予測では、少なくとも1つの動きベクトルが符号化される。インター予測が選択される場合、動きベクトル及び残差ブロックに対する情報が符号化される。ビットレートをさらに低減するために、動きが同種であると仮定すると、動きベクトルは、動きベクトル予測子に対する差分によって符号化される。動き情報予測子セットの動きベクトル予測子は、動きベクトル予測と符号化モジュール417によって動きベクトル場418から得られる。
【0029】
符号化部400はさらに、レート歪み基準などの符号化コスト基準を適用することによって、符号化モード選択のための選択モジュール406を備える。冗長性をさらに低減するために、変換モジュール407によって変換(DCTなど)が残差ブロックに適用され、得られた変換データは、量子化モジュール408によって量子化され、エントロピー符号化モジュール409によってエントロピー符号化される。最後に、符号化されている現在のブロックの符号化された残差ブロックは、ビットストリーム410に挿入される。また、符号化部400は後続の画像の動き推定のための参照画像を生成するために、符号化された画像の復号化を行う。これは、ビットストリームを受信する符号化部及び複合化部が同じ参照フレームを有することを可能にする。逆量子化モジュール411は、量子化データの逆量子化を行い、逆変換モジュール412による逆変換が続く。逆方向イントラ予測モジュール413は、所定のブロックにどの予測子を使用するかを判定するために予測情報を使用し、逆方向動き補償モジュール414は、モジュール412によって取得された残差を、参照画像416のセットから取得された参照領域に実際に加える。
【0030】
次いで、ポストフィルタリングは、再構成された画素のフレームをフィルタリングするために、モジュール415によって適用される。本発明の実施形態では、補償オフセットが再構成画像の再構成画素の画素値に付加される、SAOループフィルタが使用される。
図5は、本発明の一実施形態による、符号化部からデータを受信するために使用され得る復号化部60のブロック図を示す。復号化部は、接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU311によって実行されるプログラム命令の形式で、復号化部60によって実施される方法の対応するステップを実施するように適合される。復号化部60は符号化ユニットを含むビットストリーム61を受信し、それぞれは符号化パラメータに関する情報を含むヘッダと、符号化されたビデオデータを含む本体から構成される。
図4に関して説明したように、符号化されたビデオデータはエントロピー符号化され、動きベクトル予測子のインデックスは、所定のブロックに対して、予め定めたビット数で符号化される。受信された符号化ビデオデータは、モジュール62によってエントロピー復号化される。次いで、残差データはモジュール63によって逆量子化され、次いで、画素値を得るために逆変換がモジュール64によって適用される。
【0031】
符号化モードを示すモードデータはまた、エントロピー復号化され、モードに基づいて、イントラ型復号化又はインター型復号化が画像データの符号化ブロック上に実行される。イントラモードの場合、イントラ予測子は、ビットストリームで指定されたイントラ予測モードに基づいて、イントラ逆予測モジュール65によって判定される。モードがインターである場合、符号化部によって使用される参照領域を見つけるために、動き予測情報がビットストリームから抽出される。動き予測情報は、参照フレームインデックスと動きベクトル残差から構成される。動きベクトル復号モジュール70によって動きベクトルを得るために、動きベクトル予測子が動きベクトル残差に加えられる。
【0032】
動きベクトル復号化モジュール70は、動き予測によって符号化された現在のブロックごとに対して動きベクトル復号化を適用する。現在のブロックについて、動きベクトル予測子のインデックスは、復号され得る現在のブロックに関連する動きベクトルの実際の値がいったん取得されると、モジュール66によって逆方向動き補償を適用するために使用される。復号化された動きベクトルによって示される参照画像部分は、逆方向動き補償66を適用するために、参照画像68から抽出される。動きベクトル場データ71は後続の復号化された動きベクトルの逆予測に使用するために、復号化された動きベクトルで更新される。最後に、復号化されたブロックが得られる。ポストフィルタリングは、ポストフィルタリングモジュール67によって適用される。復号化されたビデオ信号69は、最終的に復号化部60によって提供される。
【0033】
(CABAC)
HEVCは、コンテキスト適応型バイナリ算術符号化(CABAC)、ゴロムライス符号、又は固定長符号化と呼ばれる単純なバイナリ表現など、複数種類のエントロピー符号化を使用する。ほとんどの場合、異なるシンタックス要素を表現するために、バイナリ符号化処理が実行される。このバイナリ符号化処理はまた、非常に具体的であり、異なる構文要素に依存する。算術符号化は、それらの現在の確率に従ってシンタックス要素を表す。CABACは、コンテキスト変数によって定義される「コンテキスト」に応じてシンタックス要素の確率を分離する算術符号化の拡張である。これは条件付き確率に相当する。コンテキスト変数は、すでに符号化されている左上のブロック(以下により詳細に説明するように、
図6bのA2)及び左上のブロック(
図6bのB3)の現在のシンタックス値から導き出され得る。
【0034】
(インター符号化)
HEVCは、3つの異なるインターモード、すなわち、インターモード、マージモード、及びマージスキップモードを使用する。これらのモード間の主な違いは、ビットストリームにおけるデータ伝達である。動きベクトル符号化について、現在のHEVC規格は、規格の先のバージョンには存在しなかった動きベクトル予測のための競合ベースの方式を含む。インター又はマージモードのそれぞれについて最良の動きベクトル予測子又は最良の動き情報を見つけるために、いくつかの候補が符号化部側で歪みレート基準と競合していることを意味する。最良の予測子又は動き情報の最良の候補に対応するインデックスが、ビットストリームに挿入される。復号化部は、予測子又は候補の同じセットを導出することができ、複合化されたインデックスに従って最良の1つを使用する。HEVCの画面コンテンツ拡張では、イントラブロックコピーと呼ばれる新しい符号化ツールが、それらの3つのインターモードのいずれかとして伝達され、IBCと同等のインターモードとの間の差分は、基準フレームが現在の1つであるかどうかをチェックすることによって行われる。これは、例えば、リストL0の参照インデックスをチェックすることと、これがそのリスト内の最後のフレームである場合、これがイントラブロックコピーであると推定することによって実施され得る。実施するための別の方法は、現在のピクチャオーダカウントと参照フレームを比較すること、すなわち、等しい場合、これはイントラブロックコピーである。
【0035】
予測子及び候補の導出の設計は、複雑さに不均衡な影響を与えることなく、最良の符号化効率を達成する上で重要である。HEVCでは、2つの動きベクトル導出が使用される、すなわち、インターモード用の1つ(高度動きベクトル予測(AMVP))及び、マージモード用の1つ(マージ導出処理)。以下、これらの処理を説明する。
図6a及び
図6bは、HEVC符号化及び復号化システムの高度動きベクトル予測(AMVP)及びマージモードにおける動きベクトル予測子を生成するために使用され得る空間的及び時間的ブロックを示し、
図7は、AMVP予測子セット導出のプロセスの簡略化されたステップを示す。2つの予測子、すなわちAMVPモードの2つの空間動きベクトルは、上の角部のブロック(ブロックB2)及び左角部のブロック(ブロックA0)を含む上ブロック(文字「B」によって示される)及び左ブロック(文字「A」によって示される)の中から選択され、1つの予測子が
図6aに示されるように、配置されたブロックの右下ブロック(H)及び中央ブロック(中央)の中から選択される。以下の表1は、
図6a及び6bに示されるように、現在のブロックに対する用語でブロックを参照するときに使用される命名法の概要を示す。この命名法は、簡略表記として使用されるが、特に将来の規格のバージョンでは他のラベル付けシステムが使用されてもよいことを理解されたい。
【0036】
【0037】
「現在のブロック」は、サイズが例えば4x4、16x16、32x32、64x64、128x128、又はその間の任意のサイズなど、可変であってよいことに注意されるべきである。ブロックの次元は、これは、バイナリ符号化を使用する場合、ビットのより効率的な使用をもたらすように、好ましくは2つのファクタ(すなわち2^n×2^m、ここでn及びmは正の整数である)である。現在のブロックは正方形である必要はないが、これはしばしば、符号化の複雑さのための好ましい実施形態である。
図7を参照すると、第1のステップは左下のブロックA0及びA1の中から、空間位置が
図6に示されている第1の空間予測子(候補1、706)を選択することを目的としている。そのために、これらのブロックは所定の順序で次々に選択され(700、702)、選択されたブロックごとに、所定の順序で以下の条件が評価され(704)、条件が満たされる第1のブロックは、予測子として設定される、すなわち、同じ参照リストと同じ参照画像からの動きベクトルと、他の参照リストと同じ参照画像からの動きベクトルと、同じ参照リストと異なる参照画像からのスケーリングされた動きベクトル又は他の参照リストと異なる参照画像からのスケーリングされた動きベクトル。
【0038】
値が見つからない場合、左の予測子は使用不可と見なされる。この場合、それは関連ブロックがイントラ符号化されているか、又はそれらのブロックが存在しないことを示す。次のステップは、空間的位置が
図6に示されている右上ブロックB0、上ブロックB1、及び左上ブロックB2の中から第2の空間予測子(候補2、716)を選択することを目的とする。そのために、これらのブロックは次々に、所定の順序で選択され(708、710、712)、そして選択されたブロックごとに、上記の条件が所定の順序で評価され(714)、上記の条件が満たされる第1のブロックは、予測子として設定される。再び、値が見つからない場合、上の予測子は利用不可能であると見なされる。この場合、関連ブロックがイントラ符号化されているか、又はそれらのブロックが存在しないことを示す。次のステップ(718)において、2つの予測子は両方が利用可能である場合、それらが等しい場合(すなわち、同じ動きベクトル値、同じ参照リスト、同じ参照インデックス、及び同じ方向タイプ)、それらのうちの1つを除去するために、互いに比較される。1つの空間的予測子のみが利用可能である場合、アルゴリズムは、次のステップにおいて時間的予測子を探している。
【0039】
時間的動き予測子(候補3、726)は、次のように導出される、すなわち、前のフレームにおいて配置されたブロックの右下(H、720)位置がまず、利用可能性チェックモジュール722において考慮される。それが存在しない場合、又は動きベクトル予測子が利用可能でない場合、配置されたブロックの中央(中央、724)がチェックされるように選択される。これらの時間的位置(中央及びH)は
図6に示されている。いずれの場合も、拡大縮小723は現在のフレームと第1のフレームとの間の時間的距離が参照リストであることに一致するように、それらの候補に適用される。次に、動き予測子値が予測子のセットに追加される。次に、予測子の数(Nb_Cand)が、予測子の最大個数(Max_Cand)と比較される(728)。上述のとおり、AMVPの導出処理が生成する必要がある動きベクトル予測子の最大予測子数(Max_Cand)は、HEVC規格の現在のバージョンでは2である。この最大数に達する場合、AMVP予測子の最終リスト又はセット(732)が構築される。そうでない場合、ゼロ予測子がリストに追加される(730)。ゼロ予測子は、(0,0)に等しい動きベクトルである。
【0040】
図7に示すように、AMVP予測子の最終リスト又はセット(732)は、空間的動き予測子のサブセット(700~712)及び時間的動き予測子のサブセット(720、724)から構築される。上述のように、マージモード又はマージスキップモードの動き予測子候補は、方向、リスト、参照フレームインデックス及び動きベクトルという全ての必要な動き情報を表す。複数の候補のインデックス付きリストは、マージ導出処理によって生成される。現在のHEVC設計では、両方のマージモードの候補の最大個数は5に等しい(4つの空間的候補及び1つの時間的候補)。
図8は、マージモードの動きベクトル導出処理の概略図である。導出処理の第1のステップでは、5つのブロック位置が考慮される(800~808)。これらの位置は、基準A1、B1、B0、A0、及びB2で
図3に示される空間的位置である。次のステップでは、空間的動きベクトルの利用可能性がチェックされ、多くても5つの動きベクトルが選択される(810)。それが存在する場合及びブロックがイントラ符号化されていない場合、予測子は利用可能であると見なされる。
【0041】
したがって、5つのブロックに対応する動きベクトルを候補として選択することは、以下の条件に従って行われる、すなわち、「左」のA1動きベクトル(800)が利用可能である場合(810)、すなわち、それが存在する場合及びこのブロックがイントラ符号化されていない場合、「左」のブロックの動きベクトルが選択され、候補リスト内の第1の候補として使用され(814)、「上」のB1動きベクトル(802)が利用可能である場合(810)、候補「上」のブロック動きベクトルは、存在する場合、「左」のA1動きベクトルと比較される(812)。B1動きベクトルがA1動きベクトルに等しい場合、B1は空間的候補のリストに追加されない(814)。逆に、B1動きベクトルがA1動きベクトルに等しくない場合、B1が空間的候補のリストに追加され(814)、「右上」のB0動きベクトル(804)が利用可能である場合(810)、「右上」の動きベクトルがB1動きベクトルと比較される(812)。B0動きベクトルがB1動きベクトルに等しい場合、B0動きベクトルは空間的候補のリストに追加されない(814)。逆に、B0動きベクトルがB1動きベクトルに等しくない場合、B0動きベクトルが空間的候補のリストに追加され(814)、
【0042】
「左下」のA0動きベクトル(806)が利用可能である場合(810)、「左下」の動きベクトルがA1動きベクトルと比較される(812)。A0動きベクトルがA1動きベクトルに等しい場合、A0動きベクトルは空間的候補のリストに追加されない(814)。逆に、A0動きベクトルがA1動きベクトルと等しくない場合、A0動きベクトルが空間的候補のリストに追加され(814)、空間的候補のリストが4つの候補を含まない場合、「左上」のB2動きベクトル(808)の利用可能性がチェックされる(810)。利用可能であれば、それはA1動きベクトル及びB1動きベクトルと比較される。B2動きベクトルがA1動きベクトル又はB1動きベクトルに等しい場合、B2動きベクトルは空間的候補のリストに追加されない(814)。逆に、B2動きベクトルがA1動きベクトル又はB1動きベクトルに等しくない場合、B2動きベクトルが空間的候補のリストに追加される(814)。
【0043】
この段階の最後に、空間的候補のリストは、4つまでの候補を含む。時間的候補について、2つの位置は使用され得る、すなわち、配置されたブロックの右下の位置(
図6においてHで示される816)及び配置されたブロックの中心(818)。これらの位置は
図6に示される。AMVP動きベクトル導出処理について、第1のステップは、H位置におけるブロックの可用性をチェックすること(820)を目的とする。次に、それが利用可能でない場合、中心位置におけるブロックの利用可能性がチェックされる(820)。これらの位置の少なくとも1つの動きベクトルが利用可能である場合、時間的動きベクトルは、マージ動きベクトル予測子候補のリストに追加される時間的候補(824)を作成するために、必要であれば、リストL0及びL1の両方について、インデックス0を有する参照フレームにスケーリングされ得る(822)。それは、リスト内の空間的候補の後に配置される。リストL0及びL1は、0、1つ以上の参照フレームを含む2つの参照フレームリストである。
【0044】
候補の数(Nb_Cand)が候補の最大数より厳密に少ない場合(826)(値は、ビットストリームスライスヘッダにおいて伝達され、現在のHEVC設計において5に等しいMax_Cand)、及び現在のフレームがBタイプである場合、組み合わせられた候補が生成される(828)。組み合わせられた候補は、マージ動きベクトル予測子候補のリストの利用可能な候補に基づいて生成される。それは主に、リストL0の1つの候補の動きベクトルをリストL1の1つの候補の動きベクトルと組み合わせることからなる。候補数(Nb_Cand)が最大候補数(Max_Cand)よりも厳密に少ないままの(830)場合、マージ動きベクトル予測子候補リストの候補数が最大候補数に達するまで、ゼロ動き候補が生成される(832)。この処理の終わりに、マージ動きベクトル予測子候補のリスト又はセットが構築される(834)。
図8に示すように、マージ動きベクトル予測子候補のリスト又はセットは、空間的候補のサブセット(800~808)及び時間的候補のサブセット(816、818)から構築される(834)。
【0045】
(オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP))
オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP)は、特定の動き補償である。時間的基準フレームからの現在のブロックについて1つの動き情報のみを考慮する代わりに、それぞれ配置されたブロックの各動き情報が考慮される。したがって、この時間的動きベクトル予測は
図9に示すように、各サブブロックの関連する動き情報と一緒に、現在のブロックの分割を与える。現在のVTM参照ソフトウェアでは、ATMVPがマージ候補のリストに挿入されたマージ候補として伝達される。SPSレベルでATMVPが有効化されると、最大マージ候補数は1つ増加される。したがって、このモードが無効化されている場合、5の代わりに6の候補が考慮される。
【0046】
さらに、この予測がSPSレベルで有効化されると、マージインデックスの全てのビンは、CABACによって符号化されたコンテキストになる。HEVC内にある間、又はATMVPがSPSレベルで有効化されていない場合、第1のビンのみが符号化されたコンテキストであり、残りのビンはバイパス符号化コンテキストである。
図10(a)は、HEVCに対する、又はATMVPがSPSレベルで有効化されていない場合のマージインデックスの符号化を示す。これは、単項最大符号化に対応する。さらに、第1番目のビットはCABAC符号化され、他のビットはバイパスCABAC符号化される。
図10(b)は、ATMVPがSPSレベルで有効化される時のマージインデックスの符号化を示す。さらに、全てのビットがCABAC符号化される(第1番目から第5番目のビットまで)。各インデックスはそれ自体のコンテキストを有し、言い換えれば、それらの確率は分離されることに留意されたい。
【0047】
(アフィンモード)
HEVCでは、動き補償予測(MCP)のために並進運動モデルのみが適用される。一方、現実世界では、例えばズームイン/ズームアウト、回転、遠近運動、及び他の不規則な動きなど、多くの種類の運動がある。JEMでは、簡易アフィン変換動き補償予測が適用され、2017年7月13~21日にトリノのJVET会議で発表された文書JVET-G1001の抽出に基づいて、アフィンモードの一般原理を以下に述べる。この文書全体は、それはJEMで使用される他のアルゴリズムを記述するので、ここに参照により組み込まれる。
図11(a)に示すように、ブロックのアフィン動き場は、2つの制御点動きベクトルによって記述される。ブロックの動きベクトル場(MVF)は、以下の数式1によって記述される。
【0048】
【0049】
ここで、(v0x、v0y)は左上角部の制御点の動きベクトルであり、(v1x、v1y)は右上角部の制御点の動きベクトルである。動き補償予測をさらに単純化するために、サブブロックベースのアフィン変換予測が適用される。サブブロックサイズは数式2のように導出され、ここで、MvPreは動きベクトル分数精度(JEMでは1/16)であり、(v2x,v2y)は数式1に従って計算された左下制御点の動きベクトルである。
【0050】
【0051】
数式2によって導出された後、M及びNは必要であれば、それぞれw及びhの除数になるように下方に調整されてもよい。各M×Nサブブロックの動きベクトルを導出するために、
図6aに示されるように、各サブブロックの中央サンプルの動きベクトルは、数式1に従って計算され、1/16分数精度に切り上げられる。次に、動き補償補間フィルタは、導出した動きベクトルを有する各サブブロックの予測を生成するために、適用される。
【0052】
アフィンモードは、インターモード(AMVP、マージ、マージスキップ)としての動き補償モードである。それの原理は、2つ又は3つの隣接する動き情報に従って画素毎に1つの動き情報を生成することである。現在のVTM参照ソフトウェアでは、
図11(a)に示すように、アフィンモードは4x4ブロックごとに1つの動き情報を導き出す。このモードはAMVP用に使用可能であり、両方のマージモードはフラグによって有効化される。このフラグはCABAC符号化される。一実施形態では、コンテキストは左ブロック(
図6bの位置A2)及び左上ブロック(
図6bの位置B3)のアフィンフラグの合計に依存する。
【0053】
したがって、JEMでは、以下の式で与えられるアフィンフラグに対して3つのコンテキスト変数(0、1又は2)を取り得る。
Ctx = IsAffine(A2) + IsAffine(B3)
ここで、IsAffine(ブロック)はブロックがアフィンブロックでない場合に0を、ブロックがアフィンである場合に1を返す関数である。
【0054】
(アフィンマージ候補導出)
JEMでは、アフィンマージモード(マージ又はマージスキップ)は位置A1、B1、B0、A0、B2のブロック間でアフィンである第1の隣接ブロックから導出される。これらの位置は、
図6a及び6bに示される。しかしながら、どのようにアフィンパラメータが導出されるかは、完全には定義されておらず、本発明は、少なくともこの点を改善することを目的とする。
【0055】
(アフィンマージ伝達)
図12は、符号化モードに関連するいくつかのシンタックス要素の部分復号化処理のフローチャートである。この図では、スキップフラグ(1201)、予測モード(1211)、マージフラグ(1203)、マージインデックス(1208)、及びアフィンフラグ(1207)が復号化され得る。インタースライス内の全てのCUについて、スキップフラグが復号化される(1201)。CUがスキップでない場合(1202)、プレドモード(予測モード)が復号される(1211)。このシンタックス要素は、現在のCUがインター又はイントラモードであるかを示す。CUがスキップ(1202)である場合、それの現在のモードはインターモードであることに留意されたい。CU(1212)の場合、CUはAMVP内又はマージモード内で符号化される。CUがインター(1212)である場合、マージフラグが復号化される(1203)。CUがマージである場合(1204)又はCUがスキップである場合(1202)、アフィンフラグ(1206)が復号化される必要があるかが検証される(1205)。現在のCUが、現在のVVCにおいてCUの高さ及び幅が等しくならなければならないことを意味する、2N×2NCUである場合、このフラグは復号化される。
【0056】
さらに、少なくとも1つの隣接するCU A1又はB1又はB0又はA0又はB2は、アフィンモード(マージ又はAMVP)で符号化されなければならない。最終的に、現在のCUは4x4 CUであってはならず、デフォルトによりCU 4x4はVTM参照ソフトウェアにおいて無効化される。この条件(1205)が偽である場合、現在のCUが古典的マージモード又はマージスキップモードで符号化され、マージインデックスが復号化されることが確実である(1208)。アフィンフラグ(1206)が1に等しく設定される場合(1207)、CUはマージアフィンCU又はマージスキップアフィンCUであり、マージインデックス(1208)は復号される必要はない。そうでない場合、現在のCUは古典的な(基本的な)マージ又はマージスキップCUであり、マージインデックス候補(1208)は復号される。そうでない場合、現在のCUは古典的な(基本的な)マージ又はマージスキップCUであり、マージインデックス候補(1208)は復号される。この明細書では、「伝達」は、モード他の情報の有効化又は無効化を表す1つ以上のシンタックス要素への挿入又はビットストリームからの抽出を意味することができる。
【0057】
(マージ候補導出)
図13は、マージ候補導出を示すフローチャートである。この導出は
図8に示されるHEVCのマージリスト導出の上に構築されている。HEVCと比較した主な変更は、ATMVP候補(1319、1321、1323)の追加、候補の完全な重複チェック(1320、1325)、及び候補の新しい順序である。ATMVP予測は、それは現在のCUのいくつかの動き情報を表すので、特別な候補として設定される。第1のサブブロック(左上)の値は時間的候補と比較され、時間的候補はそれらが等しい場合、マージリストに追加されない(1320)。ATMVP候補は、他の空間的候補とは比較されない。リスト内に既にある各空間的候補と比較される時間的候補とは反対に(1325)、それが重複候補である場合、マージ候補リスト内に追加されない。
【0058】
空間的候補がリスト内に追加される場合、それは、HEVCの最終バージョンの場合ではないリスト内の他の空間的候補と比較される(1310)。現在のVTMバージョンでは、マージ候補のリストが、それは符号化テスト条件にわたって最良の結果を提供するよう判定されるので、以下の順序として設定される。
・A1
・B1
・B0
・A0
・ATMVP
・B2
・時間的
・組み合わせ
・Zero_MV
【0059】
空間的候補B2は、ATMVP候補の後に設定されることに留意することが重要である。さらに、ATMVPがスライスレベルで有効化される場合、候補リストの最大数は5ではなく6である。本発明の目的は、符号化効率及び複雑さを考慮して、効率的な方法でビットストリームの一部にアフィンモードを伝達することである。また、本発明の目的は、既存のビデオ符号化フレームワークに対する最小量の構造的変更を要求する方法でアフィンモードを伝達することである。ここで、本発明の例示的な実施形態を、
図13~21を参照して説明する。実施形態は特に明記しない限り組み合わされてもよく、例えば、実施形態の特定の組み合わせは増大した複雑さで符号化効率を改善してもよいが、これは特定の使用例では許容可能であり得ることに留意されたい。概して、改善された動き補償を提供する可能性がより高い場合、アフィンモードを使用するために、動き予測子モードを伝達するシンタックスを修正することによって、符号化の複雑さの許容可能な増加で、符号化効率を改善することが可能である。
【0060】
(第1実施形態)
第1の実施形態では、アフィン動き予測モードが、少なくとも1つのインターモードのためのビットストリームの一部のために伝達(例えば、有効化又は無効化)され得る。前記ビットストリームの一部に使用されるインター予測モードが判定され、アフィン動きモードが、ビットストリームの一部で使用されるインター予測モードに依存して伝達される(有効化又は無効化)。この実施形態の利点は、未使用のシンタックスを除去することによって、より良い符号化効率になることである。さらに、それは、評価される必要のないいくつかのインター符号化の可能性を回避することによって、符号化部の複雑さを低減する。最終的には、符号化部側では、CABAC符号化されるいくつかのアフィンフラグが、符号化処理の効率を向上させるビットストリームから抽出される必要がない。第1実施形態の例では、スキップモードは、アフィンモードのために有効化されない。CUがスキップされたCUである場合(データストリーム内のスキップフラグの状態又は存在に基づいて)、アフィンフラグはビットストリームから抽出される必要がないことを意味する。
図14(
図12と同じ構造を共有し、対応する説明はここを適用する)はこの例を示す。
図14において、CUがスキップ(1402)である場合、アフィンフラグ(1406)は復号化されず、1405の条件は評価されない。CUがスキップである場合、マージインデックスは復号化される(1406)。
【0061】
この例の利点は少量の動きを有するシーケンスに対する符号化効率の改善であり、より動きを有するシーケンスに対する符号化効率の低減ではない。これは、スキップモードは典型的に動きがほとんど又は全くない場合に使用されるからであり、そのようなものとして、それはアフィンモードが適切である可能性が低いからである。上述したように、符号化及び復号化処理の複雑さも低減される。追加の例では、アフィンマージスキップモードがハイレベルで、例えば、スライス、フレーム、シーケンス、又はCTUのレベルで、有効化又は無効化され得る。これは、ハイレベルシンタックスフラグに基づいて判定されてもよい。このような場合、アフィンマージスキップはシーケンス又は少しの動きを有するフレームについて無効化されてよく、動き量が増加する場合に有効化されてよい。この追加の例の利点は、アフィンマージスキップの使用に関する柔軟性である。
【0062】
一実施形態では、アフィンマージスキップモードが、符号化部側で評価されない、その結果、ビットストリームはアフィンマージスキップモードを含まない。利点は、符号化効率が観察されることであるが、第1実施形態よりも小さいことである。アフィンについて、マージ及びスキップモードが有効化されていなくてもよい(又はアフィンはAMVPでのみ有効化されている)。さらなる例では、マージ及びマージスキップモードが、アフィンモードに対して有効化されていない。CUがスキップ又はマージされる場合、アフィンフラグはビットストリームから抽出される必要がないことを意味する。
図14と比較すると、この実施形態では、モジュール1405、1406、及び1407が除去されている。この例の利点は、すぐ上の例と同様である。利点は、少しの動きを有するシーケンスに対する符号化効率の改善、及びより動きを有するシーケンスに対する同じ符号化効率である。上述したように、符号化及び復号化処理の複雑さは低減される。
【0063】
ハイレベルシンタックス要素は、アフィンマージが有効化され得ることを伝達する。さらに別の例では、アフィンマージモード及びマージスキップモードが1つのフラグを有するスライス、フレーム、シーケンス、又はCTUレベルとして、ハイレベルで有効化又は無効化されてもよい。この場合、アフィンマージは、シーケンス又は少しの動きを有するフレームに対して無効化されてよく、動き量が増加する場合に有効化されてもよい。この追加の実施形態の利点は、アフィンスキップの使用に関する柔軟性である。別の例では、1つのフラグはマージスキップモード用及びマージモード用の1つのフラグが伝達される。別の例では、アフィンマージスキップモード及びマージモードが符号化部側で評価されない。結果的に、ビットストリームは、アフィンマージスキップモードを含まない。利点は符号化効率が観察され得ることである。
【0064】
(第2実施形態)
第2の実施形態では、現在のブロックのアフィンモードを伝達することは、1つ以上の隣接するブロックのモードに依存する。符号化効率を改善するために利用され得る隣接するブロックがどのように符号化されるかに相関を有する可能性がある。特に、1つ以上の特定の隣接ブロックがアフィンモードを使用する場合、アフィンモードが現在のモードに適切である可能性がより高い。一実施形態では、アフィンマージ又はアフィンマージスキップモードの候補の数が、2つの候補のみに減らされる。少数のアフィンフラグがマージモードのために復号化され、かつ、より少ない比較及びメモリバッファアクセスがアフィンマージチェック条件(1205)のために必要とされるので、この実施形態の利点は、復号部側での複雑さの低減である。符号化部側のより少ないアフィンマージモードは、評価される必要がある。
【0065】
第2の実施形態の一例では、現在のブロック(例えば、
図6に示すように、候補A1及びB1)の上の左に1つ隣接するブロック及び1つの隣接するブロックは、アフィンフラグが復号化される必要があるかどうかを知るために、及びアフィンマージ候補の導出のために評価される。アフィンマージのためのこれらの2つの位置のみを利用することの利点は、複雑さの低減を有する現在のVTM実装として、5つの候補を維持するのと同様の符号化効率である。
図15は、この実施形態を示す。
図12と比較したこの図では、モジュール1505が、A1及びB1の位置のみのチェックによって変更されている。第2の実施形態のさらなる例では、
図6bに示すような候補A2及びB3のみが、アフィンフラグが復号化される必要があるかどうかを判定するため、及びアフィンマージ候補の導出のために評価される。この例の利点は、先の実施例と同じであるが、それは先の実施例と比較して「最悪の場合」のメモリアクセスも削減する。実際、位置A2及びB3で、位置はアフィンフラグコンテキスト導出に使用されるそれらと同じである。実際、アフィンフラグについて、コンテキスト導出は、
図6bの位置A2及びB3における隣接するブロックに依存する。結果的に、アフィンフラグが復号化される必要がある場合、A2及びB3のアフィンフラグ値は現在のアフィンフラグのコンテキスト導出のためにすでにメモリ内にあり、したがって、さらなるメモリアクセスは必要ではない。
【0066】
(第3実施形態)
第3実施形態では、現在のブロックのアフィンモードを伝達することは、現在のブロックに隣接するブロックに対応するマージ候補のリストに依存する。第3実施形態の一例では、リストは、現在のアフィンフラグのコンテキスト導出のために、そのようなブロックのアフィンフラグ値が既にメモリ内にあり、そのようなさらなるメモリアクセスが必要ではないため、前記ブロックに関連するコンテキスト変数を判定するために使用されているブロックから始まる。例えば、可能なアフィンマージ候補は、
図6(b)に示すように、A2又はB3又はBO又はAO又はB2の順序である(A1又はB1又はBO又はAO又はB2の代わりに)。これは、現在のVTMと比較して、符号化効率の改善を与える。そして、それはまた、最悪のシナリオに対するアフィンフラグの復号化のためにアクセスされる必要があるアフィンフラグの量を制限する。現在のバージョンでは、モジュール1205用の5及びアフィンフラグコンテキスト導出用の2及び現在の実施形態では、A2及びB3のアフィンフラグ値としての5のみが、現在のアフィンフラグのコンテキスト導出のためのメモリ内に既に存在するので、そのようなさらなるメモリアクセスは必要ではない。
【0067】
第3実施形態の変形は、コンテキストアライメントに関する。アフィンモードを伝達することは、コンテキスト符号化フラグをデータストリームに挿入することを含んでよく、前記フラグのためのコンテキスト変数は、隣接するブロックがアフィンモードを使用するか否かに基づいて判定される。第3実施形態の代替例では、アフィンフラグのコンテキスト導出のために考慮される位置が、
図6bに示すように、位置A2及びB3の代わりに位置A1及びB1である。その場合、先の実施例の同じ利点が得られる。これは、コンテキストとアフィンマージ導出との間の他のアラインメントである。その場合、アフィンフラグのコンテキスト変数は、次の式に従って取得される、すなわち、Ctx = IsAffine(A1)+ IsAffine(B1)、ここで、Ctxはアフィンフラグのコンテキストであり、IsAffineはブロックがアフィンブロックでない場合に0を、ブロックがアフィンである場合に1を返す関数である。この例では、現在のアフィンフラグのコンテキスト導出のために、A1とB1のアフィンフラグ値がメモリに格納され、そのようなものとして、さらなるメモリアクセスは必要ではない。
【0068】
さらなる代替例では、アフィンフラグのコンテキスト導出のために考慮される位置は、現在のブロックがマージモード(両方のマージモード)である場合、位置A2及びB3の代わりに位置A1及びB1である。先の例と比較した追加の利点は、より良好な符号化効率である。実際、AMVPについて、アフィンブロックはこの導出のために考慮されないので、AMVPについて、動きベクトルの導出にアライメントされるべきコンテキスト導出の必要はない。
【0069】
(第4実施形態)
第4実施形態では、アフィンモードの伝達は、隣接するブロックがマージモードであるか否かに依存して実行される。第4実施形態の一例では、アフィンマージ(マージ及びスキップ)の候補がアフィンAMVP候補のみであってもよい。
図17は、この実施形態を示す。この実施形態の利点は、少しのアフィンフラグが符号化効率に影響することなく復号化される必要があるので、符号化の複雑さ低減になる。第4実施形態のさらなる例では、アフィンマージ(マージ及びスキップ)の候補が、アフィンAMVP候補又はマージアフィン候補のみであってもよいが、アフィンマージスキップでなくてよい。先の実施例と同様に、この例の利点は、少しのアフィンフラグは符号化効率に影響することなく復号化される必要があるので、符号化の複雑さ低減になる。
【0070】
(第5実施形態)
第5の実施形態では、アフィンモードを伝達することは、アフィンモードを候補動き予測子として挿入することを含む。第5実施形態の一例では、アフィンマージ(及びマージスキップ)がマージ候補として伝達される。この場合、
図12のモジュール1205、1206及び1207は除去される。加えて、マージモードの符号化効率に影響を与えないように、マージ候補の最大可能数はインクリメントされる。例えば、現在のVTMバージョンでは、この値は6に等しく設定され、したがって、この実施形態をVTMの現在のバージョンに適用する場合、値は7になる。本利点は、少数のシンタックス要素が復号化される必要があるため、マージモードのシンタックス要素の設計簡略化になる。いくつかの状況では、符号化効率が観察され得る。
【0071】
ここで、この例を実施するための2つの可能性を以下で説明する。候補動き予測子の位置は、選択されるそれの可能性及び、そのようなものとして、それはリストのより上に配置される場合(より低いインデックス値)、動きベクトル予測子が選択されるそれの可能性がより高いことを示す。第1の例では、アフィンマージインデックスがマージ候補のリスト内で常に同じ位置を有する。これは、固定されたマージidx値を有することを意味する。例えば、アフィンマージモードが最も可能性のあるコンテンツではない複雑な動きを表すはずであるので、この値は5に等しく設定されてもよい。この実施形態の追加の利点は、現在のブロックが、データ自体を復号化するだけでなく、シンタックス要素の構文解析/復号化/読取りがされる場合、現在のブロックはアフィンブロックとして設定され得ることである。結果的に、値は、AMVPのために使用されるアフィンフラグのCABACコンテキストを判定するために使用され得る。したがって、条件付き確率はこのアフィンフラグについて改善されるべきであり、符号化効率は、より良好になるであろう。
【0072】
第2の例では、アフィンマージ候補は他のマージ候補と共に導出される。この例では、新しいアフィンマージ候補がマージ候補のリストに追加される。
図18はこの例を示す。
図13と比較すると、アフィン候補は、第1のアフィン隣接ブロックA1、B1、BO、AO、B2(1917)である。
図12の1205と同じ条件が有効である場合(1927)、アフィンパラメータを用いて生成された動きベクトル場が、アフィン候補を得るために生成される(1929)。初期候補のリストは、ATMVP、時間的及びアフィン候補の使用に従って、4、5、6、又は7つの候補を有することができる。全てのこれらの候補の間の順序は、より可能性の高い候補が、それらが動きベクトル候補のカットを行う可能性がより高いことを保証するために、最初に処理されるべきであるため重要であり、好ましい順序は以下の通りである。
A1
B1
B0
A0
アフィンマージ
ATMVP
B2
時間的
組み合わせ
Zero_MV
【0073】
アフィンマージはATMVPモードの前であるが、4つの主要な隣接ブロックの後にあることに留意することが重要である。ATMVP候補の前にアフィンマージを設定する利点は、ATMVP及び時間的予測子の後にそれを設定するものと比較されるので、符号化効率向上となる。この符号化効率の向上は、GOP(ピクチャグループ)構造と、GOP内の各ピクチャの量子化パラメータ(QP)設定に依存する。しかし、最も使用されるGOP及びQP設定について、この順序は符号化効率の向上を与える。このソリューションのさらなる利点は、シンタックス及び導出の両方のためのマージ及びマージスキップのクリーンな設計である。さらに、アフィン候補マージインデックスは、リスト内の前の候補の可用性又は値(重複チェック)に従って変更することができる。結果的に効率的な伝達が得られる。さらなる例では、アフィンマージインデックスは、1つ又はいくつかの条件に従って可変である。
【0074】
例えば、アフィン候補に関連付けられたリスト内のマージインデックス又は位置は、基準に従い変化する。原理は、アフィンマージが選択される高い確率を有する場合(及び選択される低い確率がある場合により高い値)、アフィンマージに対応するマージインデックスに低い値を設定することである。この例の利点は、それが最も使用される可能性がある場合、マージインデックスの最適な適応のおかげで、符号化効率向上となる。
【0075】
マージ候補のリスト内のアフィンモードの位置を選択するための基準は以下を含む。
a)スキップモードが有効化されている場合(スキップフラグの状況)
この基準を適用する一例では、アフィンマージインデックスが高い値(例えば5)に等しく設定された値を有するか、又は現在のマージがマージスキップモードである場合、それは空間的及び時間的MVの後に設定される。第1実施形態について説明したように、任意の大きな(又は複雑な)動きになる可能性が低いので、アフィンモードがスキップモードのために選択される可能性は低い。
b)隣接ブロックの動き情報
この基準を適用する一例では、アフィンマージインデックスが高い値に等しく設定された値を有するか、又は左の1つのブロック及び上の1つのブロック(例えば、ブロックA1及びB1)の動き情報が同様か又は等しい場合、それは空間的及び時間的MVの後に設定される。A1がB1と同じ動き情報を有する場合、動き情報は現在のブロックについて一定である高い確率を有する。したがって、アフィンマージは、選択される低い確率を有する。
【0076】
c)ATMVP候補
この基準を適用する一例では、アフィンマージインデックスが高い値に等しく設定された値を有するか、又はATMVP候補が1つの動き情報のみを含む場合、それは空間的及び時間的MVの後に設定される。その場合、配置されたブロックの前のフレーム内の細分化はない。したがって、現在のブロックコンテンツが非一定の動きの内部にあるわずかな可能性があるので、マージリスト内の高い位置にアフィンを設定しないことが好ましい。
d)隣接ブロックがアフィンモードを使用する場合
この基準を適用する一例では、アフィンマージインデックスが低い値に等しく設定された値を有するか、又は2つ以上の隣接ブロックがアフィンである場合、それは時間的予測の前で、かつ、空間的予測子から遠くに設定される。この基準を適用する追加の例では、アフィンマージインデックス又はアフィン位置(idx)が、idx=P-Nに等しく設定され、ここで、Pはアフィンマージインデックスについて可能な最低位置であり、Nはアフィン隣接ブロックの数である。一例では、Pは5であり、Nは5であり、隣接ブロックはA1、B1、B0、A0、B2である。この表記では、最高位置は0のインデックス値を有することに留意されたい。
【0077】
この例では、マージ候補位置のアフィンマージインデックスが、それの隣接ブロックに関連する確率に従って設定される。従って、全ての隣接位置がアフィンである場合に第1の位置で、及び、1つの隣接ブロックのみがアフィンである場合に第4の位置である。例示的な値「5」は、同様の符号化効率を得るために6又は7に設定され得ることを理解されたい。また、これらの基準の組合せも可能であることを理解されたい。
【0078】
第5の実施形態の別の例では、アフィンモードは前記現在のブロックのアフィンモードの尤度を前記判定に依存して伝達される。特定の例では、アフィンマージ候補は、候補のリスト内に追加されないか、又は基準に従ってアフィンマージに対応するインデックスはない。この例の原理は、有用である可能性がないアフィンモードを無効化することである。この例の利点は、マージインデックスビットの最適な使用のおかげで、符号化効率向上となる。
【0079】
有用であるアフィンモードの可能性を判定するための基準は以下を含む。
a)スキップフラグの状況
この基準を適用する一例では、現在のマージがマージスキップモードである場合、アフィンマージ候補は追加されない。第1実施形態で説明したように、スキップモードではアフィンモードが選択される低い可能性がある。
b)隣接ブロックの動き情報
この基準を適用する一実施形態では、アフィンマージ候補は左の1つのブロック及び上の1つのブロック(例えば、ブロックA1及びB1)の動き情報が同様か、又は等しい場合には追加されない。左の1つのブロック及び上の1つのブロック(例えば、ブロックA1及びB1)が同じ動き情報を有する場合、動き情報は現在のブロックに対して一定である高い確率となる。したがって、アフィンマージは無効化されるであろう。
c)ATMVP候補
この基準を適用する一実施形態では、ATMVP候補が1つの動き情報のみを含む場合、アフィンマージ候補は追加されない。このような例では、現在のブロックコンテンツが非一定の動きの内部にあるわずかな可能性があるので、マージリスト内の高い位置でアフィンを無効化することが好ましい。これらの基準の組合せが可能であることを理解されたい。
【0080】
(本発明の実施形態の実装)
図20は、本発明の1つ以上の実施形態の実装するためのコンピューティングデバイス1300の模式的なブロック図である。コンピューティングデバイス1300は、マイクロコンピュータ、ワークステーション、又はライトポータブルデバイス等のデバイスであってもよい。コンピューティングデバイス1300は、以下に接続された通信バスを備える、マイクロプロセッサなどの中央処理装置(CPU)1301、本発明の実施形態の方法の実行可能コードを記憶するためのランダムアクセスメモリ(RAM)1302及び本発明の実施形態に係る画像の少なくとも一部を符号化又は復号化するための方法を実現するために必要な変数及びパラメータを記録するために適合されたレジスタ、それらのメモリ容量は例えば、拡張ポートに接続されたオプションのRAMによって拡張されてもよく、本発明の実施形態を実現するためのコンピュータプログラムを記憶するための読み出し専用メモリ(ROM)1303、ネットワークインターフェース(NET)13004は処理されるデジタルデータが送信又は受信される通信ネットワークに典型的に接続される。ネットワークインターフェース(NET)1304は単一のネットワークインターフェースであってもよいし、異なるネットワークインターフェース(例えば、有線及び無線インターフェース、又は異なる種類の有線又は無線インターフェース)のセットで構成されてもよい。
【0081】
データパケットは送信のためにネットワークインターフェースに書き込まれるか、又はCPU1301で実行するソフトウェアアプリケーションの制御の下で受信用のネットワークインターフェースから読み出される、ユーザインターフェース(UI)1305がユーザからの入力を受信するため又はユーザに情報を表示するために使用されてもよい、ハードディスク(HD)1306は大容量記憶装置として提供されてもよい、入力/出力モジュール(IO)1307が、ビデオソース又はディスプレイなどの外部装置から/までデータを受信/送信するために使用されてもよい。実行可能符号は、ROM1303、HD1306、又は例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納されてもよい。変形例によれば、プログラムの実行可能符号は実行される前に、HD1306などの通信装置1300の記憶手段の1つに記憶されるために、NET1304を介して、通信ネットワークの手段によって受信され得る。CPU1301は、命令が前述の記憶手段の1つに格納される、本発明の実施形態によるプログラム又はプログラムのソフトウェアコードの命令又は部分の実行を制御し、指示するように適合される。電源オン後、CPU1301は例えば、プログラムROM1303又はHD1306からこれらの命令がロードされた後に、メインRAMメモリ1302から、ソフトウェアアプリケーションに関する命令を実行することができる。このようなソフトウェアアプリケーションは、CPU1301によって実行されると、本発明による方法のステップを実行させる。
【0082】
また、本発明の他の実施形態によれば、コンピュータ、携帯電話(携帯電話)、タブレット、又はユーザにコンテンツを提供/表示することができる他の任意の種類のデバイス(例えば、ディスプレイ装置)などのユーザ端末に、前述の実施形態による復号化部が提供されることも理解される。さらに別の実施形態によれば、前述の実施形態による符号化部は、符号化部が符号化するためのコンテンツをキャプチャ及び提供するカメラ、ビデオカメラ、又はネットワークカメラ(例えば、閉回路テレビ又はビデオ監視カメラ)も備える画像キャプチャ装置において提供される。2つのこのような例は、
図21及び22を参照して以下に提供される。
【0083】
図21は、ネットワークカメラ2102及びクライアント装置2104を含むネットワークカメラシステム2100を示す図である。ネットワークカメラ2102は、撮像部2106と、符号化部2108と、通信部2110と、制御部2112とを含む。ネットワークカメラ2102とクライアント装置2104は、ネットワーク200を介して相互に通信可能なように相互接続されている。撮像部2106は、レンズ及び撮像素子(例えば、電荷結合素子(CCD)又は相補型金属酸化膜半導体(CMOS))を含み、被写体の画像を撮像し、その画像に基づいて画像データを生成する。この画像は静止画像又はビデオ画像であってもよい。また、撮像部は、(光学的又はデジタル的のいずれかで)ズーム又はパンするように適合されるズーム手段及び/又はパン手段をそれぞれ備えてもよい。符号化部2108は、第1から第5実施形態で説明された前記符号化方法を用いて画像データを符号化する。符号化部2108は、第1から第5の実施形態で説明された符号化方法の少なくとも1つを使用する。他の例について、符号化部2108は、第1から第5の実施形態で説明された符号化方法の組み合わせを使用することができる。
【0084】
ネットワークカメラ2102の通信部2110は、符号化部2108で符号化された符号化画像データをクライアント装置2104に送信する。さらに、通信部2110は、クライアント装置2104からのコマンドを受信する。コマンドは、符号化部2108の符号化のためのパラメータを設定するためのコマンドを含む。制御部2112は、通信部2110によって受信されたコマンドに従って、ネットワークカメラ2102内の他の部を制御する。クライアント装置2104は、通信部2114、復号化部2116、及び制御部2118を有する。クライアント装置2104の通信部2118は、ネットワークカメラ2102にコマンドを送信する。さらに、クライアント装置2104の通信部2118は、ネットワークカメラ2102から符号化画像データを受信する。復号化部2116は、第1から第5の実施形態のいずれかで説明された前記復号化方法を用いることにより、符号化画像データを復号する。別の例として、復号化部2116は、第1から第5の実施形態で説明された復号化方法の組み合わせを使用することができる。
【0085】
クライアント装置2104の制御部2118は、通信部2114が受信したユーザ操作又はコマンドに従って、クライアント装置2104内の他の部を制御する。クライアント装置2104の制御部2118は、復号化部2116で復号された画像を表示するために表示装置2120を制御する。また、クライアント装置2104の制御部2118は、符号化部2108の符号化のためのパラメータを含むネットワークカメラ2102のパラメータの値を指定するGUI(グラフィカルユーザインタフェース)を表示するために表示装置2120を制御する。また、クライアント装置2104の制御部2118は、表示装置2120により表示されるGUIへのユーザ操作入力に応じて、クライアント装置2104内の他の部を制御する。クライアント装置2104の制御部2118は、表示装置2120により表示されるGUIへのユーザ操作入力に応じて、ネットワークカメラ2102のパラメータの値を指定するコマンドをネットワークカメラ2102に送信するために、クライアント装置2104の通信部2114を制御する。ネットワークカメラシステム2100は、ビデオの記録中にカメラ2102がズーム又はパンを利用するかどうかを判定することができ、このような情報は、ビデオストリームをズーム又はパンとして符号化する場合、撮影がズーム、回転、及び/又は伸張(特にレンズが「魚眼」レンズである場合、パンの副作用になり得る)などの複雑な動きを符号化するのによく適したアフィンモードの使用から利益を得ることができる間に、使用されてもよい。
【0086】
図22は、スマートフォン2200を示す図である。スマートフォン2200は、通信部2202と、復号化/符号化部2204、制御部2206及び表示部2208を含む。通信部2202は、符号化された画像データをネットワーク経由で受信する。復号化部2204は、通信部2202により受信された符号化画像データを復号する。復号化部2204は第1から第5の実施形態で説明された前記復号化方法を用いることにより、符号化画像データを復号する。復号化部2204は、第1から第5の実施形態で説明された復号化方法の少なくとも1つを使用することができる。例えば、符号化部2202は、第1から第5の実施形態で説明された復号化方法の組み合わせを使用することができる。制御部2206は、通信部2202により受信されたユーザ操作又はコマンドに応じて、スマートフォン2200内の他の部を制御する。
【0087】
例えば、制御部2206は、復号化部2204により復号された画像を表示するために表示装置2208を制御する。スマートフォンは画像又はビデオを記録するための画像記録装置2210(例えば、回路に関連付けられたデジタルカメラ)をさらに備えることができる。このような記録された画像又はビデオは、制御部2206の指示の下、復号化/符号化部2204によって符号化されてもよい。スマートフォンはさらに、モバイル装置の向きを感知するように適合されたセンサ2212を備えてもよい。このようなセンサは、加速度計、ジャイロスコープ、コンパス、全地球測位(GPS)ユニット又は同様の位置センサを含むことができる。そのようなセンサ2212は、スマートフォンが向きを変えるかどうかを判定することができ、そのような情報は、撮影が回転のような複雑な動きを符号化によく適したアフィンモードの使用から利益を得ることができる間に、ビデオストリームを向きにおける変化として符号化する場合に、使用されてもよい。
【0088】
(代替例及び修正例)
本発明の目的はアフィンモードが最も効率的な方法で利用されることを保証することであり、上述の特定の例は、アフィンモードが有用であると知覚される可能性に依存して、アフィンモードの使用を伝達することに関することが理解されるであろう。これのさらなる例は複雑な動き(アフィン変換が特に効率的である)が符号化されていることが知られている場合に、符号化部に適用され得る。このような場合の例には以下を含む。
a)カメラズームイン/ズームアウト
b)撮影(すなわち、回転運動)中に向きを変えるポータブルカメラ(例えば、携帯電話)
c)「魚眼」レンズカメラのパン(例えば、画像の一部の伸張/歪曲)
【0089】
そのようなものとして、アフィンモードがスライス、フレームシーケンス、又は実際のビデオストリーム全体のために使用される可能性が高く与えられるように、記録プロセス中に複雑な動きの表示は上げられてよい。さらなる例では、アフィンモードがビデオを記録するために使用されるデバイスの特徴又は機能性に応じて、使用される高い可能性が与えられてよい。例えば、モバイル装置は、固定監視カメラ(と言う)よりも向きを変える可能性が高いので、アフィンモードは前者からのビデオを符号化するためにより適切であり得る。特徴又は機能の例は、ズーム手段の存在/使用、位置センサの存在/使用、パン手段の存在/使用、デバイスが携帯型であるか否か、又はデバイス上のユーザ選択を含む。
【0090】
本発明は実施形態を参照して説明されたが、本発明は開示された実施形態に限定されないことを理解されたい。添付の特許請求の範囲に定義されるように、本発明の範囲から逸脱することなく、様々な変更及び修正は行われることは、当業者には理解される。本明細書に開示された全ての特徴(添付の特許請求の範囲、要約及び図面を含む)、及び/又はそのように開示された任意の方法又は処理の全てのステップはそのような特徴及び/又はステップの少なくとも一部が相互に排他的である組み合わせを除き、任意の組み合わせで組み合わせられてよい。本明細書に開示される各特徴(添付の特許請求の範囲、要約及び図面を含む)は別段の記載がない限り、同一の、同等の、又は類似の目的を果たす代替的特徴に置き換えられてよい。したがって、別段の記載がない限り、開示される各特徴は、同等又は同様の特徴の一般的なシリーズの一例にすぎない。
【0091】
また、示されるか、又は判定/推論された結果は例えば、復号化処理中に、比較、判定、評価、選択、実行、実施、又は考慮を実際に実行する代わりに、処理において使用され得るように、上述の比較、判定、評価、選択、実行、実施、又は考慮の任意の結果、例えば、符号化又はフィルタ処理中に行われる選択はビットストリーム内のデータから、例えば、結果を示すフラグ又はデータに示され、又は判定可能/推論可能であってもよい、ことを理解されたい。特許請求の範囲において、単語「有する」は他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用され得ないことを示すものではない。特許請求の範囲に現れる参照符号は説明としてのみであり、特許請求の範囲に限定的な影響を及ぼさない。