(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023099016
(43)【公開日】2023-07-11
(54)【発明の名称】ビデオ画像の符号化の方法、ビデオデータ符号化デバイス、プログラム、及びデータ構造
(51)【国際特許分類】
H04N 19/54 20140101AFI20230704BHJP
H04N 19/70 20140101ALI20230704BHJP
H04N 19/52 20140101ALI20230704BHJP
【FI】
H04N19/54
H04N19/70
H04N19/52
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023065984
(22)【出願日】2023-04-13
(62)【分割の表示】P 2021510743の分割
【原出願日】2019-04-17
(31)【優先権主張番号】201810983026.0
(32)【優先日】2018-08-27
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】チェン、ホアンバン
(72)【発明者】
【氏名】マ、シャン
(72)【発明者】
【氏名】ヤン、ハイタオ
(72)【発明者】
【氏名】チェン、ジアンレ
(57)【要約】 (修正有)
【課題】符号化ビデオシーケンスの長さを増加させずに、デコーダの負荷を低減するビデオ画像予測方法及び装置を提供する。
【解決手段】方法は、処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルがアフィン動きモデルを含むかどうかを示すために使用される識別子1を、ビットストリームを解析して取得し、識別子1が、処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルはアフィン動きモデルを含むことを示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して識別子12を取得し、識別子12に基づいて、処理対象ブロックのインター予測についての予測モードを決定する。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ビデオ画像の符号化の方法であって、
ビデオ信号のためのビットストリームを生成する段階であり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、第1識別子を含み、前記第1識別子の値に基づいて第3識別子及び第2識別子が条件付きでシグナリングされ、前記第2識別子及び前記第3識別子の値に基づいて第4識別子が条件付きでシグナリングされ、前記第1識別子は、アフィン動きモデル型動き補償が処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示し、前記第2識別子は、アフィン動きモデル型高度動きベクトル予測(AMVP)モードが前記画像ブロックのインター予測について使用されること、及び、前記第3識別子が真値を有することを示し、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示し、前記第4識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示し、前記第4識別子の偽値は、4パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示す、段階と、
前記ビットストリームを復号装置に送信する段階と、
を備える方法。
【請求項2】
前記ビットストリームを送信するために格納する段階をさらに備える、請求項1に記載の方法。
【請求項3】
ビデオ画像の符号化の方法であって、
ビデオ信号のためのビットストリームを生成する段階であり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、アフィン動きモデル型動き補償が、処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示す第1識別子を含み、前記第1識別子の値に少なくとも基づいて第3識別子が条件付きでシグナリングされ、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示す、段階と、
前記ビットストリームを復号装置に送信する段階と、
を備える方法。
【請求項4】
前記ビットストリームを送信するために格納する段階をさらに備える、請求項3に記載の方法。
【請求項5】
ビデオデータをビットストリームの形式で格納するように構成された非一時的メモリ記憶装置と、
ビデオエンコーダであって、
ビデオ信号のための前記ビットストリームを生成することであり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、第1識別子を含み、前記第1識別子の値に基づいて第3識別子及び第2識別子が条件付きでシグナリングされ、前記第2識別子及び前記第3識別子の値に基づいて第4識別子が条件付きでシグナリングされ、前記第1識別子は、アフィン動きモデル型動き補償が処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示し、前記第2識別子は、アフィン動きモデル型高度動きベクトル予測(AMVP)モードが前記画像ブロックのインター予測について使用されること、及び、前記第3識別子が真値を有することを示し、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示し、前記第4識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示し、前記第4識別子の偽値は、4パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示す、生成することと、
前記ビットストリームを復号装置に送信ことと、
を行うように構成されたビデオエンコーダと、
を備えるビデオデータ符号化デバイス。
【請求項6】
前記ビデオエンコーダは、さらに、前記ビットストリームを送信するために格納するように構成される、請求項5に記載のビデオデータ符号化デバイス。
【請求項7】
ビデオデータをビットストリームの形式で格納するように構成された非一時的メモリ記憶装置と、
ビデオエンコーダであって、
ビデオ信号のための前記ビットストリームを生成することであり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、アフィン動きモデル型動き補償が、処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示す第1識別子を含み、前記第1識別子の値に少なくとも基づいて第3識別子が条件付きでシグナリングされ、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示す、生成することと、
前記ビットストリームを復号装置に送信することと、
を行うように構成されたビデオエンコーダと、
を備えるビデオデータ符号化デバイス。
【請求項8】
前記ビデオエンコーダは、さらに、前記ビットストリームを送信するために格納するように構成される、請求項7に記載のビデオデータ符号化デバイス。
【請求項9】
コンピュータに、
ビデオ信号のためのビットストリームを生成する手順であり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、第1識別子を含み、前記第1識別子の値に基づいて第3識別子及び第2識別子が条件付きでシグナリングされ、前記第2識別子及び前記第3識別子の値に基づいて第4識別子が条件付きでシグナリングされ、前記第1識別子は、アフィン動きモデル型動き補償が処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示し、前記第2識別子は、アフィン動きモデル型高度動きベクトル予測(AMVP)モードが前記画像ブロックのインター予測について使用されること、及び、前記第3識別子が真値を有することを示し、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示し、前記第4識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示し、前記第4識別子の偽値は、4パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示す、手順と、
前記ビットストリームを復号装置に送信する手順と、
を含む演算を実行させるプログラム。
【請求項10】
前記演算は、前記ビットストリームを送信するために格納する手順をさらに含む、請求項9に記載のプログラム。
【請求項11】
コンピュータに、
ビデオ信号のためのビットストリームを生成する手順であり、前記ビットストリームは複数のシンタックス要素を含み、前記複数のシンタックス要素は、アフィン動きモデル型動き補償が、処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示す第1識別子を含み、前記第1識別子の値に少なくとも基づいて第3識別子が条件付きでシグナリングされ、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示す、手順と、
前記ビットストリームを復号装置に送信する手順と、
を含む演算を実行させるプログラム。
【請求項12】
前記演算は、前記ビットストリームを送信するために格納する手順をさらに含む、請求項11に記載のプログラム。
【請求項13】
コンピュータによって使用されるデータ構造であって、
前記データ構造は、ビデオ信号のための符号化されたビットストリームを含み、前記符号化されたビットストリームは、前記コンピュータに処理対象ブロックに対してインター予測を実行させる複数のシンタックス要素を含み、前記複数のシンタックス要素は、第1識別子を含み、前記第1識別子の値に基づいて第3識別子及び第2識別子が条件付きでシグナリングされ、前記第2識別子及び前記第3識別子の値に基づいて第4識別子が条件付きでシグナリングされ、前記第1識別子は、アフィン動きモデル型動き補償が処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示し、前記第2識別子は、アフィン動きモデル型高度動きベクトル予測(AMVP)モードが前記画像ブロックのインター予測について使用されること、及び、前記第3識別子が真値を有することを示し、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示し、前記第4識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示し、前記第4識別子の偽値は、4パラメータアフィン動きモデル型動き補償が前記画像ブロックのインター予測について使用されることを示す、
データ構造。
【請求項14】
コンピュータによって使用されるデータ構造であって、
前記データ構造は、ビデオ信号のための符号化されたビットストリームを含み、前記符号化されたビットストリームは、前記コンピュータに処理対象ブロックに対してインター予測を実行させる複数のシンタックス要素を含み、前記複数のシンタックス要素は、アフィン動きモデル型動き補償が、処理対象の画像ブロックを含むビデオシーケンスに対して有効であることを示す第1識別子を含み、前記第1識別子の値に少なくとも基づいて第3識別子が条件付きでシグナリングされ、前記第3識別子の偽値は、6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して無効であることを示し、前記第3識別子の真値は、前記6パラメータアフィン動きモデル型動き補償が前記ビデオシーケンスに対して有効であることを示す、
データ構造。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2018年8月27日に中国特許庁に出願された、「ビデオ画像予測方法および装置」と題する中国特許出願第201810983026.0号の優先権を主張するものであり、その全体は参照によって本明細書に組み込まれる。
【0002】
本願は、画像の符号化および復号の技術の分野に関連し、特に、ビデオ画像予測方法および装置に関する。
【背景技術】
【0003】
情報技術の発達により、高解像度テレビ、ウェブ会議、IPTVおよび3Dテレビなどのビデオサービスが急速に発展している。直観性および高効率などの特長により、ビデオ信号は、人々の日常生活において情報を取得する主な方式となっている。ビデオ信号は大量のデータを含むので、大量の送信帯域幅および記憶空間を占有する。ビデオ信号を効率的に送信および格納するために、圧縮符号化がビデオ信号に対して実行される必要がある。ビデオ圧縮技術は、ビデオ用途の分野において、ますます不可欠な主要技術となっている。
【0004】
ビデオ符号化圧縮の基本原理は、空間ドメイン、時間ドメイン、およびコードワードの間の相関に基づいて、可能な限り冗長性を除去することである。現在の主要な方法は、画像ブロックに基づくハイブリッドビデオ符号化フレームワークを使用して、予測(イントラ予測およびインター予測を含む)、変換、量子化およびエントロピー符号化などの段階を実行することによって、ビデオ符号化圧縮を実装することである。
【0005】
様々なビデオ符号化/復号解決手段において、インター予測における動き推定/動き補償は、符号化/復号の性能に影響する主要技術である。既存のインター予測において、並進運動モデルを使用するブロックに基づく動き補償(motion compensation、MC)予測に基づいて、非並進運動モデル(例えばアフィン動きモデル)を使用するサブブロックに基づく動き補償予測が追加された。非並進運動モデルが使用されるかどうかに関らず、アフィン動きモデルについての関連パラメータが符号化ビデオシーケンスに追加される必要がある。その結果、符号化ビデオシーケンスの長さが増加する。
【発明の概要】
【0006】
本願は、符号化ビデオシーケンスの長さが増加するという従来技術における問題を解決するべく、ビデオ画像予測方法および装置を提供する。
【0007】
第1態様によれば、本願の実施形態はビデオ画像予測方法を提供し、当該方法は、ビットストリームを解析して第1識別子を取得する段階と、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、アフィン動きモデルを使用するインター予測についての事前設定された条件を処理対象ブロックが満たすとき、ビットストリームを解析して第2識別子を取得する段階と、第2識別子に基づいて、処理対象ブロックのインター予測についての予測モードを決定する段階であって、予測モードはアフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む、段階とを備える。
【0008】
前述の解決手段において、例えば、いくつかのビデオ画像は、いくつかのアフィン特性を有し得、いくつかのビデオ画像はアフィン特性を有しないことがあり得る。この場合、アフィン動きモデル型インター予測モードがビデオ画像について有効であるかどうかを示すために、識別子がビットストリームに追加され得る。アフィン動きモデル型インター予測モードがビデオ画像について有効でない場合、アフィン動きモデルに関連する、ビデオ画像の画像ブロックのパラメータは、送信される必要がないことがあり得る。デコーダ側において、ビデオ画像の画像ブロックの復号中、アフィン動きモデルに関連するパラメータを解析する必要はない。これにより、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0009】
例えば、「第1」および「第2」などの用語は単に、区別および説明のために使用されるものであり、相対的重要性の指示もしくは示唆、または、順序の指示もしくは示唆として理解されるべきではない。加えて、識別子などのパラメータについては、様々な態様および具体的な実施形態において同一の内容を説明するために異なる名称が使用され得る。例えば、第1態様における第1識別子は第2態様において第5識別子と称される。具体的な実施形態において、第1態様における第1識別子は識別子1と称され、第1態様における第2識別子は識別子12と称される。
【0010】
第1態様の可能な設計において、ビットストリームを解析して第1識別子を取得する段階は、ビットストリームのシーケンスパラメータセットを解析して第1識別子を取得するという方式で実装され得る。第1識別子がシーケンスパラメータセットにおいて構成され、かつ、アフィン動きモデル型インター予測モードがビデオ画像について有効でないことを第1識別子が示すとき、ビデオ画像の各画像ブロックレベルのシンタックスは、アフィン動きモデルに関連するシンタックス要素を含まない。デコーダ側において、ビデオ画像の画像ブロックの復号中、アフィン動きモデルに関連するパラメータを解析する必要はない。これにより、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0011】
第1態様の可能な設計において、処理対象ブロックを含むビデオ画像の画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、当該方法は更に、ビットストリームを解析して第3識別子を取得する段階を含む。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0012】
前述の設計において、6パラメータアフィンモデルを含むアフィン動きモデルがビデオ画像について有効であるかどうかを示す第3識別子は更に、ビットストリームにおいて構成され得る。6パラメータアフィンモデルがビデオ画像について有効でないことを第3識別子が示すとき、6パラメータアフィンモデルに関連するパラメータは、ビデオ画像の画像ブロックについて解析する必要がなく、ビデオ画像の各画像ブロックについて、ビットストリームにおいて6パラメータアフィンモデルに関連するパラメータを送信する必要もない。これにより、符号化ビデオシーケンスの長さを低減し、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0013】
具体的な実施形態において、第1態様における第3識別子は識別子13と称される。
【0014】
第1態様の可能な設計において、当該方法は更に、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階を備える。
【0015】
前述の設計において、第3識別子および第2識別子は、候補動きベクトルリストの構築を示すために使用される。
【0016】
第1態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0017】
第1態様の可能な設計において、当該方法は更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、ビットストリームを解析して第4識別子を取得する段階を備える。第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0018】
具体的な実施形態において、第4識別子は識別子14と称される。
【0019】
第1態様の可能な設計において、ビットストリームを解析して第3識別子を取得する段階は、ビットストリームのシーケンスパラメータセットを解析して第3識別子を取得する段階を含む。
【0020】
第1態様の可能な設計において、事前設定された条件は、処理対象ブロックの幅が第1事前設定閾値以上であること、および、処理対象ブロックの高さが第2事前設定閾値以上であることを含む。
【0021】
第1態様の可能な設計において、第1事前設定閾値は第2事前設定閾値に等しい。
【0022】
第2態様によれば、本願の実施形態はビデオ画像予測方法を提供し、当該方法は、ビットストリームを解析して第1識別子を取得する段階と、処理対象ブロックを含むスライスの画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、アフィン動きモデルを使用するインター予測についての事前設定された条件を処理対象ブロックが満たすとき、ビットストリームを解析して第2識別子を取得する段階と、第2識別子に基づいて、処理対象ブロックのインター予測についての予測モードを決定する段階であって、予測モードはアフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む、段階とを備える。
【0023】
前述の解決手段において、例えば、ビデオ画像のいくつかのスライスは、いくつかのアフィン特性を有し得、ビデオ画像のいくつかのスライスは、アフィン特性を有さないことがあり得る。この場合、アフィン動きモデル型インター予測モードがビデオ画像のスライスについて有効であるかどうかを示すために識別子がビットストリームに追加され得る。アフィン動きモデル型インター予測モードがスライスについて有効でない場合、アフィン動きモデルに関連する、スライスに含まれる画像ブロックのパラメータを送信する必要がないことがあり得る。デコーダ側において、スライスにおける画像ブロックの復号中、アフィン動きモデルに関連するパラメータを解析する必要はない。これにより、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0024】
具体的な実施形態において第2態様における第1識別子は識別子2と称され、第2態様における第2識別子は、具体的な実施形態において識別子22と称されることに留意すべきである。
【0025】
第2態様の可能な設計において、ビットストリームを解析して第1識別子を取得することは、ビットストリームにおけるスライスのスライスヘッダを解析して第1識別子を取得することを含む。
【0026】
第1識別子がスライスのスライスヘッダにおいて構成され、アフィン動きモデル型インター予測モードがスライスについて有効でないことを第1識別子が示すとき、スライスの各画像ブロックレベルシンタックスは、アフィン動きモデルに関連するシンタックス要素を含まない。デコーダ側では、スライスにおける画像ブロックの復号中、アフィン動きモデルに関連するパラメータを解析する必要はない。これにより、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0027】
第2態様の可能な設計において、処理対象ブロックを含むスライスの画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、当該方法は更に、ビットストリームを解析して第3識別子を取得する段階を含む。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0028】
第2態様における第3識別子は具体的な実施形態において識別子23と称されることに留意すべきである。
【0029】
第2態様の可能な設計において、当該方法は更に、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階を備える。
【0030】
第2態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0031】
第2態様の可能な設計において、当該方法は更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、ビットストリームを解析して第4識別子を取得する段階を備える。
【0032】
第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0033】
本願において、第4識別子は、具体的な実施形態において識別子24と称されることに留意すべきである。
【0034】
前述の設計において、スライスに使用されるアフィン動きモデルが6パラメータアフィン動きモデルを含み得るかどうかを示す第3識別子は更にビットストリームにおいて構成され得る。6パラメータアフィンモデルがスライスについて有効でないことを第3識別子が示すとき、スライスに含まれる画像ブロックについて、6パラメータアフィンモデルに関連するパラメータを解析する必要はなく、スライスに含まれる各画像ブロックについて、6パラメータアフィンモデルに関連するパラメータをビットストリームにおいて送信する必要もない。これにより、符号化ビデオシーケンスの長さを低減し、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0035】
第2態様の可能な設計において、ビットストリームを解析して第3識別子を取得することは、ビットストリームにおけるスライスのスライスヘッダを解析して第3識別子を取得することを含む。
【0036】
第2態様の可能な設計において、ビットストリームを解析して第1識別子を取得する前に、当該方法は更に、ビットストリームを解析して第5識別子を取得する段階を備える。第5識別子が第5の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含み、または、第5識別子が第6の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルは非アフィン動きモデルのみを含む。第5の値は第6の値と異なる。
【0037】
第5識別子は具体的な実施形態において識別子1と称される。
【0038】
いくつかのビデオ画像はアフィン特性を有さず、いくつかのビデオ画像のすべてのスライスがアフィン特性を有するわけではない。この場合、2つの識別子はビットストリームに追加され得る。第1タイプの識別子(第2態様において第5識別子と称される)が、アフィン動きモデル型インター予測モードがビデオ画像について有効であるかどうかを示すために使用され、第2タイプの識別子(第2態様において第1識別子と称される)が、アフィン動きモデル型インター予測モードがビデオ画像におけるスライスついて有効であるかどうかを示すために使用される。アフィン動きモデルを使用する必要がないスライスに含まれるビデオ画像または画像ブロックについては、アフィン動きモデルに関連する、画像ブロックのパラメータを送信する必要がないことがあり得る。デコーダ側において、画像ブロックの復号中、アフィン動きモデルに関連するパラメータを解析する必要はない。これにより、デコーダの負荷を低減し、処理速度を増加させ、処理時間を減少させることができる。
【0039】
第2態様の可能な設計において、ビットストリームを解析して第5識別子を取得する段階は、ビットストリームのシーケンスパラメータセットを解析して第5識別子を取得する段階を含む。
【0040】
第2態様の可能な設計において、ビットストリームを解析して第5識別子を取得した後、かつ、ビットストリームを解析して第1識別子を取得する前に、当該方法は更に、ビットストリームを解析して第6識別子を取得する段階を備える。第6識別子は、ビットストリームが第3識別子を含むことを決定するために使用される。
【0041】
第2態様における第6識別子は、具体的な実施形態において識別子13と称されることに留意すべきである。
【0042】
第2態様の可能な設計において、ビットストリームを解析して第6識別子を取得する段階は、ビットストリームのシーケンスパラメータセットを解析して第6識別子を取得する段階を含む。
【0043】
第2態様の可能な設計において、事前設定された条件は、処理対象ブロックの幅が第1事前設定閾値以上であること、および、処理対象ブロックの高さが第2事前設定閾値以上であることを含む。
【0044】
第2態様の可能な設計において、第1事前設定閾値は第2事前設定閾値に等しい。
【0045】
第1態様と同じ発明的概念に基づいて、第3態様によれば、本願の実施形態はビデオ画像予測装置を提供し、当該装置は、ビットストリームを解析して第1識別子を取得し、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して第2識別子を取得するよう構成される解析ユニットを備える。
【0046】
解析ユニットは更に、第2識別子に基づいて、処理対象ブロックのインター予測についての予測モードを決定するよう構成される。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0047】
第3態様の可能な設計において、ビットストリームを解析して第1識別子を取得するとき、解析ユニットは具体的には、ビットストリームのシーケンスパラメータセットを解析して第1識別子を取得するよう構成される。
【0048】
第3態様の可能な設計において、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、解析ユニットは更に、ビットストリームを解析して第3識別子を取得するよう構成される。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0049】
第3態様の可能な設計において、当該装置は更に、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築することであって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、こと、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築することであって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、ことを行うよう構成される構築ユニットを備える。
【0050】
第3態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0051】
第3態様の可能な設計において、解析ユニットは更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子は第2の値であるとき、ビットストリームを解析して第4識別子を取得するよう構成される。
【0052】
第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0053】
第3態様の可能な設計において、ビットストリームを解析して第3識別子を取得するとき、解析ユニットは具体的には、ビットストリームのシーケンスパラメータセットを解析して第3識別子を取得するよう構成される。
【0054】
第3態様の可能な設計において、事前設定された条件は、処理対象ブロックの幅が第1事前設定閾値以上であること、および、処理対象ブロックの高さが第2事前設定閾値以上であることを含む。
【0055】
第3態様の可能な設計において、第1事前設定閾値は第2事前設定閾値に等しい。
【0056】
第2態様と同じ発明的概念に基づいて、第4態様によれば、本願の実施形態はビデオ画像予測装置を提供し、当該装置は、ビットストリームを解析して第1識別子を取得するよう構成される解析ユニットを備える。解析ユニットは更に、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して第2識別子を取得し、第2識別子に基づいて、処理対象ブロックのインター予測についての予測モードを決定するよう構成される。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0057】
第4態様の可能な設計において、ビットストリームを解析して第1識別子を取得するとき、解析ユニットは具体的には、ビットストリームにおけるスライスのスライスヘッダを解析して第1識別子を取得するよう構成される。
【0058】
第4態様の可能な設計において、アフィン動きモデル型マージモードが、処理対象ブロックのインター予測に使用される。解析ユニットは更に、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、ビットストリームを解析して第3識別子を取得するよう構成される。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0059】
第4態様の可能な設計において、当該装置は更に、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築することであって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、こと、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築することであって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、ことを行うよう構成される構築ユニットを備える。
【0060】
第4態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0061】
第4態様の可能な設計において、解析ユニットは更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子は第2の値であるとき、ビットストリームを解析して第4識別子を取得するよう構成される。第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0062】
第4態様の可能な設計において、ビットストリームを解析して第3識別子を取得するとき、解析ユニットは具体的には、ビットストリームにおけるスライスのスライスヘッダを解析して第3識別子を取得するよう構成される。
【0063】
第4態様の可能な設計において、ビットストリームを解析して第1識別子を取得する前に、解析ユニットは更に、ビットストリームを解析して第5識別子を取得するよう構成される。第5識別子が第5の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含み、または、第5識別子が第6の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルは非アフィン動きモデルのみを含む。第5の値は第6の値と異なる。
【0064】
第4態様の可能な設計において、ビットストリームを解析して第5識別子を取得するとき、解析ユニットは具体的には、ビットストリームのシーケンスパラメータセットを解析して第5識別子を取得するよう構成される。
【0065】
第4態様の可能な設計において、解析ユニットは更に、ビットストリームを解析して第5識別子を取得した後、かつ、ビットストリームを解析して第1識別子を取得する前に、ビットストリームを解析して第6識別子を取得するよう構成される。第6識別子は、ビットストリームが第3識別子を含むことを決定するために使用される。
【0066】
第4態様の可能な設計において、ビットストリームを解析して第6識別子を取得するとき、解析ユニットは具体的には、ビットストリームのシーケンスパラメータセットを解析して第6識別子を取得するよう構成される。
【0067】
第4態様の可能な設計において、事前設定された条件は、処理対象ブロックの幅が第1事前設定閾値以上であること、および、処理対象ブロックの高さが第2事前設定閾値以上であることを含む。
【0068】
第4態様の可能な設計において、第1事前設定閾値は第2事前設定閾値に等しい。
【0069】
第5態様によれば、本願の実施形態は装置を提供する。当該装置はデコーダであり得、プロセッサおよびメモリを含む。メモリは、命令を格納するよう構成される。装置が動作するとき、プロセッサは、メモリに格納された命令を実行し、第1態様、第1態様の設計、第2態様、または第2態様の設計のいずれか1つにおいて提供される方法を装置が実行することを可能にする。メモリはプロセッサに統合され得る、または、プロセッサとは別個であり得ることに留意すべきである。
【0070】
第6態様によれば、本願の実施形態は、ビデオ画像予測方法を提供する。当該方法はエンコーダ側に適用され、第1識別子をビットストリームに符号化する段階と、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、第2識別子をビットストリームに符号化する段階であって、第2識別子は、処理対象ブロックのインター予測についての予測モードを決定するために使用される、段階とを備える。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0071】
第6態様の可能な設計において、第1識別子をビットストリームに符号化することは、第1識別子をビットストリームのシーケンスパラメータセットに符号化する方式で実装され得る。
【0072】
第6態様の可能な設計において、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、当該方法は更に、第3識別子をビットストリームに符号化する段階を備える。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0073】
第6態様の可能な設計において、当該方法は更に、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階を備える。
【0074】
前述の設計において、第3識別子および第2識別子は、候補動きベクトルリストの構築を示すために使用される。
【0075】
第6態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0076】
第6態様の可能な設計において、当該方法は更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第4識別子をビットストリームに符号化する段階を備える。第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0077】
具体的な実施形態において、第4識別子は識別子14と称される。
【0078】
第6態様の可能な設計において、第3識別子をビットストリームに符号化することは、第3識別子をビットストリームのシーケンスパラメータセットに符号化することを含む。
【0079】
第7態様によれば、本願の実施形態はビデオ画像予測方法を提供する。当該方法はエンコーダ側に適用され、第1識別子をビットストリームに符号化する段階と、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、第2識別子をビットストリームに符号化する段階であって、第2識別子は、処理対象ブロックのインター予測について予測モードを決定するために使用され、予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、および非アフィン動きモデル型予測モードを含む、段階とを備える。
【0080】
第7態様の可能な設計において、第1識別子をビットストリームに符号化することは、第1識別子をビットストリームのスライスのスライスヘッダに符号化することを含む。
【0081】
第7態様の可能な設計において、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを第1識別子が示すとき、当該方法は更に、第3識別子をビットストリームに符号化する段階を備える。第3識別子が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。または、第3識別子が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。
【0082】
第7態様の可能な設計において、当該方法は、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、第2候補動きベクトルリストは第2要素を含み、第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階を更に備える。
【0083】
第7態様の可能な設計において、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、第3識別子が第2の値であるとき、第1候補動きベクトルリストは更に第2要素を含む。
【0084】
第7態様の可能な設計において、当該方法は更に、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを第2識別子が示し、かつ、第3識別子が第2の値であるとき、第4識別子をビットストリームに符号化する段階を備える。
【0085】
第4識別子が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、第4識別子が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。
【0086】
第7態様の可能な設計において、第3識別子をビットストリームに符号化することは、第3識別子をビットストリームのスライスのスライスヘッダに符号化することを含む。
【0087】
第7態様の可能な設計において、第1識別子をビットストリームに符号化する前に、当該方法は更に、第5識別子をビットストリームに符号化する段階を備える。第5識別子が第5の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含み、または、第5識別子が第6の値であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルは非アフィン動きモデルのみを含む。第5の値は第6の値と異なる。
【0088】
第7態様の可能な設計において、第5識別子をビットストリームに符号化することは、第5識別子をビットストリームのシーケンスパラメータセットに符号化することを含む。
【0089】
第7態様の可能な設計において、第5識別子をビットストリームに符号化した後、かつ、ビットストリームにおける第1識別子を符号化した前に、方法は更に、第6識別子をビットストリームに符号化する段階を備える。第6識別子は、ビットストリームが第3識別子を含むと決定するために使用される。
【0090】
第7態様における第6識別子は、具体的な実施形態において識別子13と称されることに留意すべきである。
【0091】
第7態様の可能な設計において、第6識別子をビットストリームに符号化することは、第6識別子をビットストリームのシーケンスパラメータセットに符号化することを含む。
【0092】
第8態様によれば、本願の実施形態は装置を提供する。当該装置はエンコーダであり得、プロセッサおよびメモリを含む。メモリは命令を格納するよう構成される。装置が動作するとき、プロセッサはメモリに格納された命令を実行し、第3態様、第3態様の設計、第4態様、または第4態様の設計のいずれか1つにおいて提供される方法を装置が実行することを可能にする。メモリはプロセッサに統合され得る、または、プロセッサとは別個であり得ることに留意すべきである。
【0093】
第9態様によれば、本願はコンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を格納し、命令がコンピュータ上で実行されるとき、前述の態様の各々において説明される方法をコンピュータが実行することを可能にする。
【0094】
第10態様によれば、本願は命令を含むコンピュータプログラム製品を提供する。コンピュータプログラム製品がコンピュータ上で動作するとき、コンピュータは、前述の態様の各々において説明される方法を実行することが可能である。
【0095】
本願の第3から第10態様の技術的解決手段は、本願の第1態様および第2態様の技術的解決手段と一貫し、態様および対応する実装可能な設計によって達成される有利な効果は同様であることを理解すべきである。ここでは詳細を再び説明しない。
【図面の簡単な説明】
【0096】
【
図1】本願の実施形態において説明される実装におけるビデオ符号化および復号システムのブロック図である。
【0097】
【
図2A】本願の実施形態において説明される実装におけるビデオエンコーダのブロック図である。
【0098】
【
図2B】本願の実施形態において説明される実装におけるインター予測の概略図である。
【0099】
【
図2C】本願の実施形態において説明される実装におけるビデオデコーダのブロック図である。
【0100】
【
図3】本願の実施形態において説明される実装における動き情報の候補の位置の概略図である。
【0101】
【
図4】本願の実施形態において説明される実装における、継承された制御点動きベクトルの予測の概略図である。
【0102】
【
図5A】本願の実施形態において説明される実装における、構築された制御点動きベクトルの予測の概略図である。
【0103】
【
図5B】本願の実施形態において説明される実装における、構築された制御点動き情報を取得するために制御点動き情報を組み合わせることの概略フローチャートである。
【0104】
【
図6A】本願の実施形態において説明される実装におけるインター予測方法のフローチャートである。
【0105】
【
図6B】本願の実施形態において説明される実装における、候補動きベクトルリストを構築することの概略図である。
【0106】
【
図6C】本願の実施形態において説明される実装における動き補償ユニットの概略図である。
【0107】
【
図7】本願の実施形態によるビデオ画像予測方法の概略フローチャートである。
【0108】
【
図8】本願の実施形態によるインター予測方法の概略フローチャートである。
【0109】
【
図9】本願の実施形態による別のビデオ画像予測方法の概略フローチャートである。
【0110】
【
図10】本願の実施形態によるインター予測方法の概略フローチャートである。
【0111】
【
図11】本願の実施形態による更に別のビデオ画像予測方法の概略フローチャートである。
【0112】
【
図12】本願の実施形態による装置1200の概略図である。
【0113】
【
図13】本願の実施形態による装置1300の概略図である。
【0114】
【
図14】本願の実施形態による装置1400の概略図である。
【発明を実施するための形態】
【0115】
本願の実施形態において提供されるビデオ画像予測の解決手段は、ビデオ画像の符号化または復号に適用され得る。
図1は、本願の実施形態によるビデオ符号化および復号システム10の概略ブロック図である。
図1に示すように、システム10は発信元装置11および宛先装置12を含む。発信元装置11は、符号化ビデオデータを生成して、符号化ビデオデータを宛先装置12へ送信する。宛先装置12は、符号化ビデオデータを受信して、符号化ビデオデータを復号し、復号されたビデオデータを表示するよう構成される。発信元装置11および宛先装置12は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの携帯電話、スマートタッチパネル、テレビセット、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミング伝送装置などを含む様々な装置のいずれか1つを含み得る。
【0116】
本願の実施形態において提供される画像ブロックのイントラモードを予測するための解決手段がビデオ画像符号化または復号に適用され得る。
【0117】
宛先装置12は、リンク16を通じて、復号対象の符号化ビデオデータを受信し得る。リンク16は、符号化ビデオデータを発信元装置11から宛先装置12へ転送できる任意のタイプの媒体または装置を含み得る。可能な実装において、リンク16は、リアルタイムで発信元装置11が符号化ビデオデータを宛先装置12へ直接送信することを可能にする通信媒体を含み得る。符号化ビデオデータは、通信規格(例えば無線通信プロトコル)に従って変調され得、変調された符号化ビデオデータは宛先装置12へ送信される。通信媒体は、任意の無線または有線通信媒体、例えば、無線周波数スペクトル、または、1または複数の物理的送信回線を含み得る。通信媒体は、パケットベースのネットワーク(例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのグローバルネットワーク)の一部であってよい。通信媒体は、ルータ、スイッチ、基地局、または、発信元装置11と宛先装置12との間の通信を容易にするよう構成される任意の他のデバイスを含み得る。
【0118】
代替的に、ビデオ符号化および復号システム10は更に記憶装置を含む。符号化されたデータは、出力インタフェース14を通じて記憶装置へ出力され得る。同様に、符号化されたデータは、入力インタフェース15を通じて記憶装置からアクセスされ得る。記憶装置は、様々な分散またはローカルアクセスデータ記憶媒体、例えば、ハードディスクドライブ、ブルーレイ(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または非揮発性メモリ、または、符号化ビデオデータを格納するために使用される任意の他の適切なデジタル記憶媒体のいずれか1つを含み得る。別の実現可能な実装において、記憶装置は、発信元装置11によって生成される符号化されたビデオを維持できるファイルサーバまたは別の中間記憶装置に対応し得る。宛先装置12は、ストリーミング伝送またはダウンロードを通じて、記憶装置に格納されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを格納して符号化ビデオデータを宛先装置12へ送信できる任意のタイプのサーバであり得る。実現可能な実装において、ファイルサーバは、ウェブサイトサーバ、ファイル転送プロトコルサーバ、ネットワーク接続記憶装置、またはローカルディスクドライブを含む。宛先装置12は、インターネット接続を含む任意の標準データ接続を通じて符号化ビデオデータにアクセスし得る。データ接続は、無線チャネル(例えば、Wi-Fi(登録商標)接続)、有線接続(例えばケーブルモデム)、またはそれらの組み合わせを含み得る。無線チャネルまたは有線接続は、ファイルサーバに格納された符号化ビデオデータにアクセスするのに好適である。記憶装置からの符号化ビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または、それらの組み合わせであり得る。
【0119】
本願の技術は、無線用途または設定に必ずしも限定されない。当該技術は、様々なマルチメディア用途、例えば、電波テレビ放送、ケーブルテレビ伝送、衛星テレビ伝送、ストリーミングビデオ伝送(例えばインターネットを通じた)、データ記憶媒体に格納するためのデジタルビデオ符号化、データ記憶媒体に格納されたデジタルビデオの復号、または、別の用途のいずれか1つをサポートするために、ビデオ復号に適用され得る。いくつかの可能な実装において、システム10は、ストリーミングビデオ伝送、ビデオ再生、ビデオブロードキャスト、および/またはビデオ通話などの用途をサポートするよう単方向または双方向のビデオ伝送をサポートするよう構成されてよい。
【0120】
図1の可能な実装において、発信元装置11は、ビデオソース13、ビデオエンコーダ20、および出力インタフェース14を含み得る。いくつかの用途において、出力インタフェース14は、モジュレータ/デモジュレータ(モデム)および/または送受信機を含み得る。発信元装置11において、ビデオソース13は例えば、以下の発信元デバイス、すなわち、ビデオキャプチャ装置(例えばカメラ)、過去にキャプチャされたビデオを含むアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインインタフェース、および/または、ソースビデオとしてのコンピュータグラフィックデータを生成するために使用されるコンピュータグラフィックシステム、またはそれらの組み合わせを含み得る。可能な実装において、ビデオソース13がカメラである場合、発信元装置11および宛先装置12は、カメラ電話またはビデオ電話を構成し得る。例えば、本願において説明される技術は、例えばビデオ復号に適用され得、無線および/または有線の用途に適用され得る。
【0121】
ビデオエンコーダ20は、生成されたビデオを符号化、キャプチャ、プリキャプチャ、または計算し得る。符号化ビデオデータは、発信元装置11の出力インタフェース14を通じて、宛先装置12へ直接送信され得る。符号化ビデオデータはまた(または代替的に)、宛先装置12が後にアクセスするために、記憶装置に格納され得る、または、復号および/または再生のために、別の装置に格納され得る。
【0122】
宛先装置12は、入力インタフェース15、ビデオデコーダ30、および表示装置17を含む。いくつかの用途において、入力インタフェース15は、受信機および/またはモデムを含み得る。宛先装置12の入力インタフェース15は、リンク16を通じて符号化ビデオデータを受信する。リンク16を通じて記憶装置へ送信または提供される符号化ビデオデータは、ビデオデコーダ30によってビデオデータを復号するために、ビデオエンコーダ20によって生成された様々なシンタックス要素を含み得る。これらのシンタックス要素は、通信媒体で送信されて記憶媒体またはファイルサーバに格納された符号化ビデオデータと共に含まれ得る。
【0123】
表示装置17は、宛先装置12に統合され得る、または、宛先装置12の外部に位置し得る。いくつかの可能な実装において、宛先装置12は、統合された表示装置を含み得、また、外部表示装置のインタフェースに接続するよう構成され得る。別の可能な実装において、宛先装置12は表示装置であり得る。概して、表示装置17は、復号されたビデオデータをユーザに表示し、例えば、液晶ディスプレイ、プラズマディスプレイ、有機発光ダイオードディスプレイ、または、別のタイプの表示装置など、任意の様々な表示装置を含み得る。
【0124】
ビデオエンコーダ20およびビデオデコーダ30は、例えば、現在開発されている次世代ビデオ符号化圧縮規格(H.266)に従って動作し得、H.266テストモデル(JEM)に適合し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、例えば、ITU-T H.265規格またはITU-T H.264規格またはその拡張版(ITU-T H.265規格は、高効率ビデオ符号化規格とも称され、ITU-T H.264規格は、MPEG‐4パート10とも称される)、またはアドバンストビデオ符号化(advanced video coding、AVC)など他の専用または工業規格に従って動作し得る。しかしながら、本願における技術は、任意の特定の復号規格に限定されない。ビデオ圧縮規格の他の可能な実装はMPEG‐2およびITU-TH.263を含む。
【0125】
図1には示されないが、いくつかの態様において、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、オーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリームにおけるオーディオおよびビデオの両方を符号化するために適切なマルチプレクサ‐デマルチプレクサ(MUX-DEMUX)ユニットまたは他のハードウェアおよびソフトウェアを含み得る。該当する場合、いくつかの実現可能な実装において、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、または、ユーザデータグラムプロトコル(UDP)など他のプロトコルに適合し得る。
【0126】
ビデオエンコーダ20およびビデオデコーダ30は、例えば、1または複数のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、または、それらの任意の組み合わせなど、様々な適切なエンコーダ回路のいずれか1つとして別個に実装され得る。当該技術のいくつかがソフトウェアとして実装されるとき、装置はソフトウェアのための命令を適切な非一時的コンピュータ可読媒体に格納し、1または複数のプロセッサを使用することによってハードウェアの形態で命令を実行し、本願の技術を実装し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1または複数のエンコーダまたはデコーダに含まれ得、ビデオエンコーダ20またはビデオデコーダ30のいずれかは、対応する装置における組み合わされたエンコーダ/デコーダ(CODEC)の一部として統合され得る。
【0127】
JCT‐VCは、H.265(HEVC)規格を開発した。HEVC規格化は、ビデオ復号装置の発展モデルに基づき、当該モデルは、HEVCテストモデル(HM)と称される。最新のH.265規格文書がhttp://www.itu.int/rec/T-REC-H.265において入手可能である。規格文書の最新版はH.265(12/16)であり、当該規格文書は全体として参照によって本明細書に組み込まれる。HMにおいて、ビデオ復号装置は、ITU‐TH.264/AVCの既存のアルゴリズムに対する複数の追加的な機能を有すると想定されている。
【0128】
JVETはH.266規格の開発に専心している。H.266規格化プロセスは、ビデオ復号装置の発展モデルに基づき、当該モデルは、H.266テストモデルと称される。H.266アルゴリズムの説明は、http://phenix.int-evry.fr/jvetで入手可能である。最新のアルゴリズムの説明はJVET-F1001-v2に含まれる。アルゴリズムの説明の文書は、全体として参照によって本明細書に組み込まれる。加えて、JEMテストモデルの参照ソフトウェアがhttps://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftwareで入手可能であり、また、全体として参照によって本明細書に組み込まれる。
【0129】
概して、HMワーキングモデルの説明において、ビデオフレームまたは画像は、ルマおよびクロマサンプルの両方を含むツリーブロックのシーケンス、または最大符号化単位(largest coding unit、LCU)のシーケンスに分割され得、LCUはCTUとも称される。ツリーブロックは、H.264規格におけるマクロブロックと同様の機能を有する。スライスは、復号の順序で複数の連続するツリーブロックを含む。ビデオフレームまたは画像は、1または複数のスライスに区分され得る。各ツリーブロックは、四分木に基づいて符号化単位に分割できる。例えば、四分木のルートノードとして機能するツリーブロックは、4つの子ノードに分割され得、各子ノードは親ノードとしても機能し得、4つの他の子ノードに分割される。四分木の葉ノードとして機能する最終的な非分割可能子ノードは、復号ノード、例えば、復号画像ブロックを含む。復号ビットストリームに関連する構文データにおいて、ツリーブロックの分割の最大数および復号ノードの最小サイズが定義され得る。
【0130】
符号化単位は、復号ノード、予測単位(prediction unit、PU)、および復号ノードに関連する変換単位(transform unit、TU)を含む。CUのサイズは、復号ノードのサイズに対応し、CUの形状は正方形である必要がある。CUのサイズは、8×8画素から最大64×64画素の範囲であり得る、または、より大きいツリーブロックサイズであり得る。各CUは1または複数のPUおよび1または複数のTUを含み得る。例えば、CUに関連する構文データは、CUを1または複数のPUに区分することを記述し得る。CUがスキップモード、ダイレクトモード、イントラ予測モードまたはインター予測モードで符号化される場合、異なる区分モードが使用され得る。区分を通じて取得されるPUは非正方形形状であり得る。例えば、CUに関連する構文データはまた、四分木に基づいてCUを1または複数のTUに区分することを記述し得る。TUは正方形または非正方形形状であり得る。
【0131】
HEVC規格により、TUに基づく変換が可能となる。異なるCUは異なるTUを含み得る。TUのサイズは通常、区分されたLCUについて定義される所与のCU内のPUのサイズに基づき設定される。しかしながら、場合によっては常にこのようでなくてよい。TUのサイズは通常、PUのサイズと同一であるか、またはより小さい。いくつかの実現可能な実装において、「残差四分木(residual quadtree、RQT)」と称される四分木構造が、CUに対応する残差サンプルをより小さい単位に分割するために使用され得る。RQTの葉ノードはTUと称され得る。変換係数を生成するために、TUに関連する画素差分が変換され得、変換係数は量子化され得る。
【0132】
概して、PUは予測処理に関連するデータを含む。例えば、PUがイントラモードで符号化されるとき、PUは、PUのイントラ予測モードを記述するデータを含み得る。別の実現可能な実装において、PUがインターモードで符号化されるとき、PUは、PUの動きベクトルを定義するデータを含み得る。例えば、PUの動きベクトルを定義するデータは、動きベクトルの水平成分、動きベクトルの鉛直成分、動きベクトルの解像度(例えば、1/4画素精度、または1/8画素精度)、動きベクトルが指す参照画像、および/または、動きベクトルの参照画像リスト(例えばリスト0、リスト1、またはリストC)を記述し得る。
【0133】
概して、変換および量子化処理がTUに使用される。1または複数のPUを含む所与のCUはまた、1または複数のTUを含み得る。予測後、ビデオエンコーダ20は、PUに対応する残差値を計算し得る。残差値は画素差分を含む。画素差分は、変換係数に変換され得、変換係数は量子化され、TUを使用することによって走査され、エントロピー復号のためのシリアル化された変換係数を生成する。本願において、「画像ブロック」という用語は通常、CUの復号ノードを表すために使用される。いくつかの特定の用途では、本願において、「画像ブロック」という用語はまた、復号ノード、PU、およびTU、例えば、LCUまたはCUを含むツリーブロックを表すために使用され得る。
【0134】
ビデオエンコーダ20はビデオデータを符号化する。ビデオデータは1または複数の画像を含み得る。ビデオエンコーダ20はビットストリームを生成し得、ビットストリームはビットストリームの形式でビデオデータの符号化された情報を含む。符号化された情報は、符号化された画像データおよび関連データを含み得る。関連データは、シーケンスパラメータセット(sequence paramater set、SPS)、画像パラメータセット(picture parameter set、PPS)、および別のシンタックス構造を含み得る。SPSは、ゼロまたは複数のシーケンスに適用されるパラメータを含み得る。SPSは、符号化ビデオシーケンス(coded video sequence、CVS)の一般的な特徴の上位層パラメータを記述し、シーケンスパラメータセットSPSは、CVSにおけるすべてのスライス(slice)が必要とする情報を含む。PPSは、ゼロまたは複数の画像に適用されるパラメータを含み得る。シンタックス構造は、指定された順序でビットストリームに配置されるゼロまたは複数のシンタックス要素のセットである。
【0135】
実現可能な実装において、HMは様々なPUサイズについての予測をサポートする。特定のCUのサイズは2N×2Nであると想定すると、HMは、2N×2NまたはN×NのPUサイズについてのイントラ予測、および、2N×2N、2N×N、N×2N、またはN×Nの対称PUサイズについてのインター予測をサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズのインター予測についての非対称的区分をサポートする。非対称的区分において、CUはある方向に区分されず、別の方向に2つの部分に区分され、1つの部分はCUの25%を占め、他の部分はCUの75%を占める。CUの25%を占める部分は、「U(Up)」、「D(Down)」、「L(Left)」または「R(Right)」が後に続く「n」を含むインジケータによって示される。したがって、例えば、「2N×nU」は、上に2N×0.5N PUおよび下に2N×1.5N PUを有する、水平に区分された2N×2NのCUを指す。
【0136】
本願において、「N×N」および「N by N」は、鉛直次元および水平次元における画像ブロックの画素サイズを示すために交換可能に使用され得る。例えば、16×16画素、または、16 by 16画素である。通常、16×16ブロックは、鉛直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは通常、鉛直方向にN画素、水平方向にN画素を有し、Nは負でない整数値である。ブロックにおける画素は、行および列に配置され得る。加えて、ブロックにおいて、水平方向における画素の数および鉛直方向における画素の数は必ずしも同一でないことがあり得る。例えば、ブロックはN×M画素を含み得、Mは必ずしもNに等しくない。
【0137】
イントラまたはインター予測モードでCUにおけるPUを復号した後に、ビデオエンコーダ20は、CUにおけるTUの残差データを計算し得る。PUは、(画素領域とも称される)空間ドメインにおける画素データを含み得、TUは、残差ビデオデータに変換(例えば、離散余弦変換(discrete cosine transform、DCT)、整数変換、ウェーブレット変換、または他の概念的に同様の変換)が適用された後に取得される変換ドメインにおける係数を含み得る。残差データは、未符号化画像の画素と、PUに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUの残差データを含むTUを生成し、次に、TUを変換してCUの変換係数を生成し得る。
【0138】
JEMモデルは、ビデオ画像符号化構造を更に改善する。具体的には、「四分木+二分木」(QTBT)構造と称されるブロック符号化構造が導入される。QTBT構造は、HEVCにおけるCU、PU、およびTUなどの概念を使用することなく、よりフレキシブルなCU分割形状をサポートする。CUは正方形形状または長方形形状であり得る。最初に四分木区分がCTUに対して実行され、二分木区分が四分木の葉ノードに対して更に実行される。加えて、2つの二分木区分モード、すなわち対称水平区分および対称鉛直区分がある。二分木の葉ノードはCUと称される。JEMモデルにおけるCUは、予測処理においても、変換処理においても更に分割されない。言い換えれば、JEMモデルにおけるCU、PU、およびTUは、同一のブロックサイズを有する。既存のJEMモデルにおいて、最大CTUサイズは256×256ルマ画素である。
【0139】
図2Aは、本願の実施形態によるビデオエンコーダ20の概略ブロック図である。
【0140】
図2Aに示されるように、ビデオエンコーダ20は、予測モジュール21、加算器22、変換モジュール23、量子化モジュール24およびエントロピー符号化モジュール25を含み得る。例において、予測モジュール21は、インター予測モジュール211およびイントラ予測モジュール212を含み得る。予測モジュール21の内部構造は本願の本実施形態に限定されない。任意選択で、ハイブリッドアーキテクチャを有するビデオエンコーダ20は、逆量子化モジュール26、逆変換モジュール27、および加算器28も含み得る。
【0141】
図2Aの実現可能な実装において、ビデオエンコーダ20は更にストレージモジュール29を含み得る。ストレージモジュール29は代替的に、ビデオエンコーダ20の外部に配置され得ることが理解されるべきである。
【0142】
別の実現可能な実装において、ビデオエンコーダ20は更に、画像ブロックの境界をフィルタリングするためのフィルタ(
図2Aには示されない)を含み得る。これにより、再構築されたビデオ画像からアーチファクトを除去する。必要な場合、フィルタは通常、加算器28からの出力をフィルタリングする。
【0143】
任意選択で、ビデオエンコーダ20は更に、区分ユニット(
図2Aには示されない)を含み得る。ビデオエンコーダ20はビデオデータを受信し、区分ユニットはビデオデータを画像ブロックに区分する。そのような区分は、スライス、画像ブロック、または、他のより大きい単位への区分、および、(例えば)LCUおよびCUの四分木構造に基づいて実行される画像ブロックへの区分を更に含み得る。ビデオエンコーダ20は例えば、符号化対象のビデオスライスにおける画像ブロックを符号化するためのコンポーネントを記述する。スライスは通常、複数の画像ブロックに分割され得る(そして画像ブロックのセットに分割され得る)。スライスタイプは、I(主にイントラ画像符号化に使用される)、P(インター前方向参照予測画像符号化に使用される)、およびB(インター双方向参照予測画像符号化に使用される)を含む。
【0144】
予測モジュール21は、現在処理される必要がある画像ブロックに対してイントラまたはインター予測を実行し、現在のブロックの予測値(本願において予測情報と称され得る)を取得するよう構成される。本願の本実施形態において、現在処理される必要がある画像ブロックは、略して処理対象ブロックであり得、略して現在の画像ブロックであり得、または、略して現在のブロックであり得る。代替的に、符号化フェーズにおいて現在処理される必要がある画像ブロックは、略して現在の符号化ブロック(符号化ブロック)と称され得、復号フェーズにおいて現在処理される必要がある画像ブロックは、現在の符号化ブロック(復号ブロック)と称され得る。
【0145】
具体的には、予測モジュール21に含まれるインター予測モジュール211は、現在のブロックに対してインター予測を実行して、インター予測値を取得する。イントラ予測モジュール212は、現在のブロックに対してイントラ予測を実行してイントラ予測値を取得する。インター予測モジュール211は、再構築された画像において、現在の画像における現在のブロックのために、マッチする参照ブロックを検索し、参照ブロックにおけるサンプルのサンプル値を現在のブロックにおけるサンプルのサンプル値の予測情報または予測値として使用し(以下では情報と値を区別しない)(この処理は、動き推定(Motion estimation、ME)(
図2Bに示される)と称される)、現在のブロックの動き情報を送信する。
【0146】
画像ブロックの動き情報は、予測方向のインジケーション情報(通常、前方予測、後方予測、または双方向予測)、参照ブロックが指す1または2つの動きベクトル(Motion vector、MV)、および参照ブロックが位置する画像のインジケーション情報(参照画像インデックスReference indexとして表されることが多い)を含むことに留意すべきである。
【0147】
前方予測とは、前方参照画像セットから参照画像を選択して、現在のブロックの参照ブロックを取得することを意味する。後方予測とは、後方参照画像セットから参照画像を選択して、現在のブロックの参照ブロックを取得することを意味する。双方向予測とは、前方参照画像セットから参照画像を、後方参照画像セットから参照画像を選択して、参照ブロックを取得することを意味する。双方向予測方法が使用されるとき、現在のブロックについて2つの参照ブロックがある。各参照ブロックは、動きベクトルおよび参照画像インデックスを使用することによって示される必要があり、次に、現在のブロックにおけるサンプルのサンプル値の予測値が、2つの参照ブロックにおけるサンプルの画素値に基づいて決定される。
【0148】
動き推定処理において、現在のブロックのために、参照画像における複数の参照ブロックを試す必要があり、最後に、どの1または複数の特定の参照ブロックが予測に使用されるかが、レート歪み最適化(Rate-distortion optimization、RDO)を通じて、または、別の方法を使用することによって決定される。
【0149】
予測モジュール21がインター予測またはイントラ予測を通じて現在のブロックの予測値を生成した後に、ビデオエンコーダ20は、予測値を現在のブロックから減算し、残差情報を生成する。変換モジュール23は残差情報を変換するよう構成される。変換モジュール23は、離散余弦変換(discrete cosine transformation、DCT)などの変換、または、概念的に同様の変換(例えば離散正弦変換DST)を適用して、残差情報を残差変換係数に変換する。変換モジュール23は、取得された残差変換係数を量子化モジュール24へ送信し得る。量子化モジュール24は残差変換係数を量子化してコードレートを更に低減する。いくつかの実現可能な実装において、量子化モジュール24は、量子化された変換係数を含む行列の走査を継続し得る。代替的に、エントロピー符号化モジュール25が走査を実行し得る。
【0150】
量子化後、エントロピー符号化モジュール25は、量子化された残差変換係数に対してエントロピー符号化を実行し、ビットストリームを取得し得る。例えば、エントロピー符号化モジュール25は、コンテキスト適応型変数長さ復号(CAVLC)、コンテキスト適応型バイナリ算術復号(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術復号(SBAC)、確率区間区分エントロピー(PIPE)復号、または別のエントロピー符号化法もしくは技術を実行し得る。エントロピー符号化モジュール25がエントロピー符号化を実行した後に、符号化ビットストリームがビデオデコーダ30へ送信され得る、または、将来の送信もしくはビデオデコーダ30による検索のためにアーカイブされ得る。
【0151】
逆量子化モジュール26および逆変換モジュール27は、それぞれ逆量子化および逆変換を実行し、画素領域における残差ブロックを参照画像における参照ブロックとして再構築する。加算器28は、再構築を通じて取得された残差情報と、予測モジュール21によって生成された予測値とを加算して再構築ブロックを生成し、再構築ブロックを参照ブロックとして使用してストレージモジュール29に格納する。参照ブロックは、後続のビデオフレームまたは画像におけるブロックに対してインターまたはイントラ予測を実行するために予測モジュール21によって使用され得る。
【0152】
ビデオエンコーダ20の別の構造的変形がビデオストリームを符号化するために使用できることが理解されるべきである。例えば、いくつかの画像ブロックまたは画像フレームについて、ビデオエンコーダ20は、変換モジュール23による処理または逆変換モジュール27による処理無しで残差情報を直接量子化し得る。代替的に、いくつかの画像ブロックまたは画像フレームについて、ビデオエンコーダ20は、残差情報を生成せず、それに対応して、変換モジュール23、量子化モジュール24、逆量子化モジュール26、および逆変換モジュール27による処理は必要とされない。代替的に、ビデオエンコーダ20は、フィルタユニットによる処理無しで、再構築された画像ブロックを参照ブロックとして直接格納し得る。代替的に、ビデオエンコーダ20における量子化モジュール24および逆量子化モジュール26は共に組み合わされ得る。代替的に、ビデオエンコーダ20における変換モジュール23および逆変換モジュール27は共に組み合わされ得る。代替的に、加算器22および加算器28は共に組み合わされ得る。
【0153】
図2Cは本願の実施形態によるビデオデコーダ30の概略ブロック図である。
【0154】
図2Cに示されるように、ビデオデコーダ30はエントロピー復号モジュール31、予測モジュール32、逆量子化モジュール34、逆変換モジュール35および再構築モジュール36を含み得る。例において、予測モジュール32は、動き補償モジュール322およびイントラ予測モジュール321を含み得る。これは本願の本実施形態において限定されない。
【0155】
実現可能な実装において、ビデオデコーダ30は更にストレージモジュール33を含み得る。ストレージモジュール33は代替的にビデオデコーダ30の外部に配置され得ると理解されるべきである。いくつかの実現可能な実装において、ビデオデコーダ30は、
図2Aにおけるビデオエンコーダ20の符号化プロシージャとは逆の例示的な復号プロシージャを実行し得る。
【0156】
復号処理において、ビデオデコーダ30はビットストリームをビデオエンコーダ20から受信する。エントロピー復号モジュール31、逆量子化モジュール34および逆変換モジュール35はそれぞれ、ビデオデコーダ30によって受信されたビットストリームに対して、エントロピー復号、逆量子化、および逆変換を連続的に実行して残差情報を取得する。現在のブロックに対してイントラ予測が実行されるか、またはインター予測が実行されるかは、ビットストリームに基づいて決定される。イントラ予測が実行される場合、予測モジュール32におけるイントラ予測モジュール321は、使用されるイントラ予測方法、および、現在のブロックの周囲の再構築ブロックの参照画素の画素値に基づいて予測情報を構築する。インター予測が実行される場合、動き補償モジュール322は、解析を通じて動き情報を取得する必要があり、解析された動き情報に基づいて再構築された画像ブロックから参照ブロックを決定し、参照ブロックにおけるサンプルのサンプル値を予測情報として使用する(この処理は動き補償(motion compensation、MC)と称される)。再構築モジュール36は予測情報および残差情報を使用することによって、再構築情報を取得できる。
【0157】
前述の通り、本願は例えばインター復号に関連する。したがって、本願の特定の技術は動き補償モジュール322によって実行され得る。他の実現可能な実装において、ビデオデコーダ30の1または複数の他のユニットは、追加的または代替的に、本願の技術の実行を担い得る。
【0158】
以下ではまず、本願における概念を説明する。
【0159】
(1)インター予測モード
【0160】
HEVCにおいて、2つのインター予測モード、すなわち、高度動きベクトル予測(advanced motion vector prediction、AMVP)モードおよびマージ(merge)モードが使用される。
【0161】
AMVPモードにおいて、現在のブロックの空間的または時間的に隣接する符号化ブロック(隣接するブロックとして表される)が最初にトラバースされ、候補動きベクトルリスト(動き情報候補リストとも称され得る)は各隣接するブロックの動き情報に基づいて構築され、最適な動きベクトルは、レート歪みコストを使用することによって候補動きベクトルリストから決定され、最小レート歪みコストを有する候補動き情報が現在のブロックの動きベクトル予測値(motion vector predictor、MVP)として使用される。隣接するブロックの位置、および、隣接するブロックのトラバース順序の両方は予め定められる。レート歪みコストは、式(1)に従って計算される。Jはレート歪みコスト(RD Cost)を表し、SADは元の画素値と、候補動きベクトル予測値を使用することによって動き推定を通じて取得される予測画素値との間の絶対差の和(sum of absolute differences、SAD)であり、Rはビットレートを表し、λはラグランジュ乗数を表す。エンコーダ側は候補動きベクトルリストにおける選択された動きベクトル予測値のインデックス値および参照画像インデックス値をデコーダ側へ転送する。更に、現在のブロックの実際の動きベクトルを取得するために、MVPを中心として、動き探索が近隣において実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の差(motion vector difference)をデコーダ側へ転送する。
式(1)
【数1】
【0162】
マージモードにおいて、まず、現在のブロックの空間的または時間的に隣接する符号化ブロックの動き情報を使用することによって候補動きベクトルリストが構築され、次に、レート歪みコストを計算することによって、最適な動き情報が候補動きベクトルリストから決定され、現在のブロックの動き情報として使用され、次に、候補動きベクトルリストにおける最適な動き情報の位置のインデックス値(マージインデックスと表され、以降も同一である)がデコーダ側へ転送される。
図3は、現在のブロックの空間的および時間的な候補動き情報を示す。空間的候補動き情報は、5つの空間的に隣接するブロック(A0、A1、B0、B1およびB2)に由来する。隣接するブロックが利用可能でない場合(隣接するブロックが無い、隣接するブロックが符号化されない、または、隣接するブロックによって使用される予測モードがインター予測モードでない)、隣接するブロックの動き情報は候補動きベクトルリストに追加されない。現在のブロックの時間的候補動き情報は、参照フレームおよび現在のフレームの画像順序カウント(picture order count、POC)に基づいて、参照フレームにおける対応する位置におけるブロックのMVをスケーリングすることによって取得される。まず、参照フレームにおける位置Tにおけるブロックが利用可能であるかどうかが決定される。ブロックが利用可能でない場合、位置Cにおけるブロックが選択される。
【0163】
AMVPモードと同様に、マージモードにおいて、隣接するブロックの位置、および、隣接するブロックのトラバース順序の両方も予め定められる。加えて、異なるモードにおいて、隣接するブロックの位置、および、隣接するブロックのトラバース順序は異なり得る。
【0164】
候補動きベクトルリストは、AMVPモードおよびマージモードの両方において維持される必要があることが分かる。新しい動き情報が候補リストに毎回追加される前に、同一の動き情報がリストに既に存在するかどうかがまずチェックされる。同一の動き情報がリストに存在する場合、動き情報はリストに追加されない。このチェック処理は、候補動きベクトルリストのプルーニングと称される。リストは、リストにおける同一の動き情報を回避するためにプルーニングされ、それにより、冗長なレート歪みコスト計算を回避する。
【0165】
HEVCにおけるインター予測において、同一の動き情報が符号化ブロックにおけるすべての画素に使用され、次に、符号化ブロックの画素の予測値を取得するために動き情報に基づいて動き補償が実行される。しかしながら、符号化ブロックにおいてすべての画素が同一の動きの特性を有するわけではない。同一の動き情報を使用すると、不正確な動き補償予測、および、より多くの残差情報が生じ得る。
【0166】
既存のビデオ符号化規格において、並進運動モデルに基づくブロックマッチング動き推定が使用され、ブロックにおけるすべての画素の動きは一貫していると想定される。しかしながら、現実の世界では、様々な動きがある。例えば、回転するオブジェクト、異なる方向に回転するローラーコースター、花火の表示、および、映画における一部のスタント、特に、UGCシナリオにおける移動するオブジェクトなど、多くのオブジェクトは非並進運動である。これらの移動するオブジェクトについては、既存の符号化規格における並進運動モデルに基づくブロック動き補償技術が符号化に使用される場合、符号化効率は大きく影響を受け得る。この場合、符号化効率を更に改善するべく、非並進運動モデル、例えば、アフィン動きモデルが導入される。
【0167】
これに基づき、異なる動きモデルに関連して、AMVPモードは並進モデル型AMVPモードおよび非並進モデル型AMVPモードに分類され得、マージモードは、並進モデル型マージモードおよび非並進運動モデル型マージモードに分類され得る。
【0168】
(2)非並進運動モデル
【0169】
非並進運動モデル予測とは、エンコーダ/デコーダ側が同一の動きモデルを使用することによって現在のブロックにおける各動き補償小単位の動き情報を導出し、動き補償小単位の動き情報に基づいて動き補償を実行して予測ブロックを取得し、それにより、予測効率を改善することを意味する。一般的な非並進運動モデルは4パラメータアフィン動きモデルまたは6パラメータアフィン動きモデルを含む。
【0170】
本願の本実施形態における動き補償小単位は、サンプル、または、特定の方法に従う区分を通じて取得され、N1×N2のサイズを有する画素ブロックであり得る。N1およびN2の両方は正の整数であり、N1はN2に等しくてよく、またはN2に等しくなくてもよい。
【0171】
4パラメータアフィン動きモデルは以下の式(2)として表現される。
式(2)
【数2】
【0172】
4パラメータアフィン動きモデルは、2つのサンプルの動きベクトル、および、現在のブロックの左上サンプルに対する2つのサンプルの座標を使用することによって表され得る。動きモデルパラメータを表すために使用されるサンプルは制御点と称される。左上サンプル(0,0)および右上サンプル(W,0)が制御点として使用される場合、現在のブロックの左上サンプルおよび右上サンプルの制御点の動きベクトル(vx0,vy0)および(vx1,vy1)がまず決定され、次に、現在のブロックにおける各動き補償小単位の動き情報が式(3)に従って取得される。(x,y)は、現在のブロックの左上サンプルに対する動き補償小単位の座標であり、Wは現在のブロックの幅である。
式(3)
【数3】
【0173】
6パラメータアフィン動きモデルは式(4)として表現される。
式(4)
【数4】
【0174】
6パラメータアフィン動きモデルは、3つのサンプルの動きベクトル、および、現在のブロックの左上サンプルに対する3つのサンプルの座標を使用することによって表され得る。左上サンプル(0,0)、右上サンプル(W,0)および左下サンプル(0,H)が制御点として使用される場合、現在のブロックの左上制御点、右上制御点、および左下制御点の動きベクトルがそれぞれ(vx0,vy0)、(vx1,vy1)、および(vx2,vy2)として、まず決定される。次に、現在のブロックにおける各動き補償小単位の動き情報が式(5)に従って取得される。(x,y)は、現在のブロックの左上サンプルに対する動き補償小単位の座標であり、WおよびHはそれぞれ、現在のブロックの幅および高さである。
式(5)
【数5】
【0175】
アフィン動きモデルを使用することによって予測される符号化ブロックはアフィン符号化ブロックと称される。
【0176】
アフィン符号化ブロックの制御点の動き情報は通常、アフィン動きモデル型高度動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードまたはアフィン動きモデル型マージ(Merge)モードを使用することによって取得され得る。
【0177】
現在の符号化ブロックの制御点の動き情報は、継承された制御点動きベクトルまたは構築された制御点動きベクトルを予測する方法を使用することによって取得され得る。
【0178】
(3)継承された制御点動きベクトルを予測するための方法
【0179】
継承された制御点動きベクトルを予測するための方法は、隣接する符号化されたアフィン符号化ブロックの動きモデルを使用することによって現在のブロックの候補制御点動きベクトルを決定することである。
【0180】
図4に示される現在のブロックは例として使用される。現在のブロックの周囲の隣接する位置におけるブロックは、指定の順序、例えば順序A1->B1->B0->A0->B2の順でトラバースされ、現在のブロックの隣接する位置におけるブロックが位置するアフィン符号化ブロックを発見し、アフィン符号化ブロックの制御点動き情報を取得する。更に、アフィン符号化ブロックの制御点動き情報を使用することによって構築される動きモデルを使用することによって、現在のブロックの制御点動きベクトル(マージモードにおいて使用される)または制御点動きベクトル予測値(AMVPモードにおいて使用される)が更に導出される。順序A1->B1->B0->A0->B2は単に例として使用される。別の組み合わせの順序も本願に適用可能である。加えて、隣接する位置におけるブロックは、A1、B1、B0、A0およびB2に限定されない。
【0181】
隣接する位置におけるブロックは、サンプル、または、特定の方法に従った区分を通じて取得される事前設定サイズの画素ブロックであり得る。例えば、画素ブロックは、4×4画素ブロック、4×2画素ブロック、または別のサイズの画素ブロックであり得るが、これらに限定されない。
【0182】
以下では、A1を例として使用することによる決定処理を説明し、別の場合もそれと同様である。
【0183】
図4に示されるように、A1が位置する符号化ブロックが4パラメータアフィン符号化ブロックである場合、アフィン符号化ブロックの左上サンプル(x4,y4)の動きベクトル(vx4,vy4)およびアフィン符号化ブロックの右上サンプル(x5,y5)の動きベクトル(vx5,vy5)が取得される。現在のアフィン符号化ブロックの左上サンプル(x0,y0)の動きベクトル(vx0,vy0)は、式(6)に従って計算され、現在のアフィン符号化ブロックの右上サンプル(x1,y1)の動きベクトル(vx1,vy1)は式(7)に従って計算される。
式(6)
【数6】
式(7)
【数7】
【0184】
A1が位置するアフィン符号化ブロックに基づいて取得される現在のブロックの左上サンプル(x0,y0)の動きベクトル(vx0,vy0)および現在のブロックの右上サンプル(x1,y1)の動きベクトル(vx1,vy1)の組み合わせは現在のブロックの候補制御点動きベクトルである。
【0185】
A1が位置する符号化ブロックが6パラメータアフィン符号化ブロックである場合、アフィン符号化ブロックの左上サンプル(x4,y4)の動きベクトル(vx4,vy4)、アフィン符号化ブロックの右上サンプル(x5,y5)の動きベクトル(vx5,vy5)、および、アフィン符号化ブロックの左下サンプル(x6,y6)の動きベクトル(vx6,vy6)が取得される。現在のブロックの左上サンプル(x0,y0)の動きベクトル(vx0,vy0)は式(8)に従って計算され、現在のブロックの右上サンプル(x1,y1)の動きベクトル(vx1,vy1)は式(9)に従って計算され、現在のブロックの左下サンプル(x2,y2)の動きベクトル(vx2,vy2)は式(10)に従って計算される。
式(8)
【数8】
式(9)
【数9】
式(10)
【数10】
【0186】
A1が位置するアフィン符号化ブロックに基づいて取得される現在のブロックの左上サンプル(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上サンプル(x1,y1)の動きベクトル(vx1,vy1)、および、現在のブロックの左下サンプル(x2,y2)の動きベクトル(vx2,vy2)の組み合わせは現在のブロックの候補制御点動きベクトルである。
【0187】
他の動きモデル、候補の位置、ならびに、検索およびトラバースの順序も本願に適用可能であることに留意すべきである。本願の本実施形態においては詳細を説明しない。
【0188】
隣接および現在の符号化ブロックの動きモデルを表すために他の制御点が使用される方法も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0189】
(4)構築された制御点動きベクトル(constructed control point motion vectors)を予測する方法1
【0190】
構築された制御点動きベクトルを予測する方法は、現在のブロックの制御点の周囲の隣接する符号化ブロックの動きベクトルを組み合わせて、現在のアフィン符号化ブロックの制御点動きベクトルとして機能させることであり、隣接する符号化ブロックがアフィン符号化ブロックかどうかを考慮しない。
【0191】
左上サンプルの動きベクトルおよび現在のブロックの右上サンプルは、現在の符号化ブロックの周囲の隣接する符号化ブロックの動き情報を使用することによって決定される。
図5Aは、構築された制御点動きベクトルを予測するための方法を説明するための例として使用される。
図5Aは単に例であることに留意すべきである。
【0192】
図5Aに示されるように、左上サンプルの隣接する符号化ブロックA2、B2およびB3の動きベクトルは、現在のブロックの左上サンプルの動きベクトルについての候補動きベクトルとして使用され、右上サンプルの隣接する符号化ブロックB1およびB0の動きベクトルは、現在のブロックの右上サンプルの動きベクトルについての候補動きベクトルとして使用される。左上サンプルの候補動きベクトルおよび右上サンプルの候補動きベクトルは組み合わされて複数の2タプルを構成する。2タプルに含まれる2つの符号化ブロックの動きベクトルは、式(11A)に示されるように、現在のブロックの候補制御点動きベクトルとして使用され得る。
式(11A)
【数11】
v
A2はA2の動きベクトルを表し、v
B1はB1の動きベクトルを表し、v
B0はB0の動きベクトルを表し、v
B2はB2の動きベクトルを表し、v
B3はB3の動きベクトルを表す。
【0193】
図5Aに示されるように、左上サンプルの隣接する符号化ブロックA2、B2、およびB3の動きベクトルは、現在のブロックの左上サンプルの動きベクトルの候補動きベクトルとして使用され、右上サンプルの隣接する符号化ブロックB1およびB0の動きベクトルは、現在のブロックの右上サンプルの動きベクトルについての候補動きベクトルとして使用され、左下サンプルの隣接する符号化ブロックA0およびA1の動きベクトルは、現在のブロックの左下サンプルの動きベクトルについての候補動きベクトルとして使用される。左上サンプルの候補動きベクトル、右上サンプルの候補動きベクトル、および左下サンプルの候補動きベクトルは3タプルを構成するように組み合わされる。3タプルに含まれる3つの符号化されたブロックの動きベクトルは、式(11B)および式(11C)に示されるように、現在のブロックの候補制御点動きベクトルとして使用され得る。
式(11B)
【数12】
式(11C)
【数13】
v
A2はA2の動きベクトルを表し、v
B1はB1の動きベクトルを表し、v
B0はB0の動きベクトルを表し、v
B2はB2の動きベクトルを表し、v
B3はB3の動きベクトルを表し、v
A0はA0の動きベクトルを表し、v
A1はA1の動きベクトルを表す。
【0194】
制御点動きベクトルを組み合わせるための他の方法も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0195】
隣接および現在の符号化ブロックの動きモデルを表すために他の制御点が使用される方法も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0196】
(5)
図5Bに示される構築された制御点動きベクトル(constructed control point motion vectors)を予測するための方法2
【0197】
段階501:現在のブロックの制御点の動き情報を取得する。
【0198】
例えば、
図5Aにおいて、CPk(k=1,2,3,4)は第kの制御点を表す。A0、A1、A2、B0、B1、B2およびB3は、現在のブロックの空間的に隣接する位置であり、CP1、CP2、またはCP3を予測するために使用される。Tは現在のブロックの時間的に隣接する位置であり、CP4を予測するために使用される。
【0199】
CP1、CP2、CP3およびCP4の座標はそれぞれ(0,0)、(W,0)、(H,0)、および(W,H)であり、WおよびHは現在のブロックの幅および高さを表すと想定する。
【0200】
各制御点の動き情報は、以下の順序で取得される。
【0201】
(1)CP1の場合、チェック順序はB2->A2->B3である。B2が利用可能である場合、B2の動き情報が使用される。そうでない場合、A2およびB3がチェックされる。3つの位置すべての動き情報が利用可能でない場合、CP1の動き情報は取得できない。
【0202】
(2)CP2の場合、チェック順序はB0->B1である。B0が利用可能である場合、B0の動き情報がCP2のために使用される。そうでない場合、B1がチェックされる。両方の位置の動き情報が利用可能でない場合、CP2の動き情報を取得できない。
【0203】
(3)CP3の場合、チェック順序はA0->A1である。
【0204】
(4)CP4の場合、Tの動き情報が使用される。
【0205】
ここで、Xが利用可能であることは、X(XはA0、A1、A2、B0、B1、B2、B3またはT)位置を含むブロックが符号化され、インター予測モードが使用されることを意味する。そうでない場合、X位置は利用可能でない。
【0206】
制御点の動き情報を取得するための他の方法も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0207】
段階502:制御点の動き情報を組み合わせて、構築された制御点動き情報を取得する。
【0208】
2タプルを構成するように2つの制御点の動き情報が組み合わされて、4パラメータアフィン動きモデルを構築する。2つの制御点が、{CP1,CP4}、{CP2,CP3}、{CP1,CP2}、{CP2,CP4}、{CP1,CP3}または{CP3,CP4}のように組み合わされ得る。例えば、制御点CP1およびCP2の動き情報(例えば、2MV)に基づく2タプルを使用することによって構築された4パラメータアフィン動きモデルは、Affine(CP1,CP2)として表され得る。
【0209】
3タプルを構成するように3つの制御点の動き情報が組み合わされ、6パラメータアフィン動きモデルを構築する。3つの制御点は、{CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}または{CP1,CP3,CP4}として組み合わされ得る。例えば、制御点CP1、CP2およびCP3の動き情報(例えば、3MV)に基づく3タプルを使用することによって構築される6パラメータアフィン動きモデルは、Affine(CP1,CP2,CP3)として表され得る。
【0210】
4タプルを構成するように4つの制御点の動き情報が組み合わされ、8パラメータバイリニア動きモデルを構築する。制御点CP1、CP2、CP3、およびCP4の動き情報(例えば、4MV)を含む4タプルを使用することによって構築される8パラメータバイリニアモデルは、Bilinear(CP1,CP2,CP3,CP4)として表される。
【0211】
本願の本実施形態において、説明を容易にするために、2つの制御点(または2つの符号化ブロック)の動き情報の組み合わせは、略して2タプルと称され、3つの制御点(または3つの符号化ブロック)の動き情報の組み合わせは、略して3タプルと称され、4つの制御点(または4つの符号化ブロック)の動き情報の組み合わせは、略して4タプルと称される。
【0212】
これらのモデルは、事前設定された順序でトラバースされる。組み合わされたモデルに対応する特定の制御点の動き情報が利用可能でない場合、モデルは利用可能でないとみなされる。そうでない場合、モデルの参照画像インデックスが決定され、制御点の動きベクトルがスケーリングされる。スケーリング後に取得されるすべての制御点の動き情報が一貫している場合、モデルは無効である。モデルを制御する制御点の動き情報すべてが利用可能であり、かつ、モデルが有効である場合、モデルを構築するための制御点の動き情報が動き情報候補リストに追加される。
【0213】
制御点動きベクトルスケーリング方法が式(12)に示される。
式(12)
【数14】
CurPocは現在のフレームのPOC番号を表し、DesPocは現在のブロックの参照フレームのPOC番号を表し、SrcPocは制御点の参照フレームのPOC番号を表し、MV
sはスケーリング後に取得される動きベクトルを表し、MVは制御点の動きベクトルを表す。
【0214】
異なる制御点の組み合わせは同一位置における制御点に変換され得ることに留意すべきである。
【0215】
例えば、{CP1,CP4}、{CP2,CP3}、{CP2,CP4}、{CP1,CP3}または{CP3,CP4}の組み合わせを使用することによって取得される4パラメータアフィン動きモデルが{CP1,CP2}または{CP1,CP2,CP3}に変換される。変換方法は、制御点の動きベクトルおよび制御点の座標情報で式(2)を置換してモデルパラメータを取得し、次に、{CP1,CP2}の座標情報で式(3)を置換してCP1およびCP2の動きベクトルを取得することである。
【0216】
より直接的に、変換は式(13)~(21)に従って実行され得る。Wは現在のブロックの幅を表す。Hは現在のブロックの高さを表す。式(13)~(21)において、(vx0,vy0)はCP1の動きベクトルを表し、(vx1,vy1)はCP2の動きベクトルを表し、(vx2,vy2)はCP3の動きベクトルを表し、(vx3,vy3)はCP4の動きベクトルを表す。
【0217】
{CP1,CP2}は式(13)を使用することによって{CP1,CP2,CP3}に変換され得る。言い換えれば、{CP1,CP2,CP3}におけるCP3の動きベクトルは、式(13)を使用して決定され得る。
式(13)
【数15】
【0218】
{CP1,CP3}は、式(14)を使用することによって{CP1,CP2}または{CP1,CP2,CP3}に変換され得る。
式(14)
【数16】
【0219】
{CP2,CP3}は、式(15)を使用することによって{CP1,CP2}または{CP1,CP2,CP3}に変換され得る。
式(15)
【数17】
【0220】
{CP1,CP4}は、式(16)または(17)を使用することによって{CP1,CP2}または{CP1,CP2,CP3}に変換され得る。
式(16)
【数18】
式(17)
【数19】
【0221】
{CP2,CP4}は、式(18)を使用することによって{CP1,CP2}に変換され得、{CP2,CP4}は、式(18)および(19)を使用することによって{CP1,CP2,CP3}に変換され得る。
式(18)
【数20】
式(19)
【数21】
【0222】
{CP3,CP4}は、式(20)を使用することによって{CP1,CP2}に変換され得、{CP3,CP4}は、式(20)および(21)を使用することによって{CP1,CP2,CP3}に変換され得る。
式(20)
【数29】
式(21)
【数22】
【0223】
例えば、組み合わせ{CP1,CP2,CP4}、{CP2,CP3,CP4}、または{CP1,CP3,CP4}を使用することによって取得される6パラメータアフィン動きモデルは、制御点の{CP1,CP2,CP3}に変換される。変換方法は、制御点の動きベクトル、および、制御点の座標情報で式(4)を置換してモデルパラメータを取得し、次に、{CP1,CP2,CP3}の座標情報で式(5)を置換して、CP1、CP2およびCP3の動きベクトルを取得することである。
【0224】
より直接に、変換は式(22)から(24)に従って実行され得る。Wは現在のブロックの幅を表す。Hは現在のブロックの高さを表す。式(13)~(21)において、(vx0,vy0)はCP1の動きベクトルを表し、(vx1,vy1)はCP2の動きベクトルを表し、(vx2,vy2)はCP3の動きベクトルを表し、(vx3,vy3)はCP4の動きベクトルを表す。
【0225】
{CP1,CP2,CP4}は、式(22)に従って{CP1,CP2,CP3}に変換され得る。
式(22)
【数23】
【0226】
{CP2,CP3,CP4}は、式(23)に従って{CP1,CP2,CP3}に変換され得る。
式(23)
【数24】
【0227】
{CP1,CP3,CP4}は、式(24)に従って{CP1,CP2,CP3}に変換され得る。
式(24)
【数25】
【0228】
(6)アフィン動きモデル型高度動きベクトル予測モード(Affine AMVPモード)
【0229】
1.候補動きベクトルリストの構築
【0230】
アフィン動きモデル型AMVPモードの候補動きベクトルリストは、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって構築される。本願の本実施形態において、アフィン動きモデル型AMVPモードの候補動きベクトルリストは、制御点動きベクトル予測値候補リスト(control point motion vectors predictor candidate list)と称され得、各制御点動きベクトル予測値は、2つの(4パラメータアフィン動きモデル)制御点の動きベクトル、または、3つの(6パラメータアフィン動きモデル)制御点の動きベクトルを含む。
【0231】
任意選択で、制御点動きベクトル予測値候補リストは、特定のルールに従ってプルーニングおよびソートされ、特定の数に切り詰められ得る、またはパディングされ得る。
【0232】
2.最適な制御点動きベクトル予測値の決定
【0233】
エンコーダ側において、現在の符号化ブロックにおける各動き補償小単位の動きベクトルが、制御点動きベクトル予測値候補リストにおける各制御点動きベクトル予測値を使用することによって、式(3)/(5)に従って取得される。更に、各動き補償小単位の動きベクトルが指す参照フレームにおける対応する位置の画素値が取得され、アフィン動きモデルを使用することによって動き補償を実行するために画素値の予測値として使用される。現在の符号化ブロックにおけるすべてのサンプルの元の値と予測値との間の差の平均値が計算される。最小平均値に対応する制御点動きベクトル予測値が最適な制御点動きベクトル予測値として選択され、現在の符号化ブロックの2/3つの制御点動きベクトル予測値として使用される。制御点動きベクトル予測値候補リストにおける制御点動きベクトル予測値の位置を表すインデックス番号がビットストリームに符号化され、デコーダへ送信される。
【0234】
デコーダ側において、インデックス番号が解析され、制御点動きベクトル予測値(control point motion vectors predictor、CPMVP)が、インデックス番号に基づいて制御点動きベクトル予測値候補リストから決定される。
【0235】
3.制御点動きベクトルの決定
【0236】
エンコーダ側において、制御点動きベクトル(control point motion vectors、CPMV)を取得するために、特定の検索範囲内の動き探索のための検索開始点として制御点動きベクトル予測値が使用される。制御点動きベクトルと制御点動きベクトル予測値との間の差(control point motion vector differences、CPMVD)がデコーダ側へ転送される。
【0237】
デコーダ側において、制御点動きベクトル差が解析され、制御点動きベクトルを取得するために制御点動きベクトル差および制御点動きベクトル予測値が加算される。
【0238】
(7)アフィンマージモード(Affine Merge mode)
【0239】
制御点動きベクトルマージ候補リスト(control point motion vectors merge candidate list)が、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって構築される。
【0240】
任意選択で、制御点動きベクトルマージ候補リストが、特定のルールに従ってプルーニングおよびソートされ、特定の数に切り詰められ得る、またはパディングされ得る。
【0241】
エンコーダ側において、マージ候補リストにおける各制御点動きベクトルを使用することによって、式(3)/(5)に従って、現在の符号化ブロックにおける各動き補償小単位(サンプル、または、特定の方法に従う区分を通じて取得される、N1×N2のサイズを有する画素ブロック)の動きベクトルが取得される。更に、各動き補償小単位の動きベクトルが指す参照フレームにおける位置の画素値が取得され、アフィン動き補償を実行するために、画素値の予測値として使用される。現在の符号化ブロックにおけるすべてのサンプルの元の値と予測値との間の差の平均値が計算される。差の最小平均値に対応する制御点動きベクトルが、現在の符号化ブロックの2/3つの制御点動きベクトルとして選択される。候補リストにおける制御点の動きベクトルの位置を表すインデックス番号がビットストリームに符号化され、デコーダへ送信される。
【0242】
デコーダ側において、インデックス番号が解析され、制御点動きベクトル(control point motion vectors、CPMV)が、インデックス番号に基づいて、制御点動きベクトルマージ候補リストから決定される。
【0243】
加えて、本願において、「少なくとも1つ」は1または複数を意味し、「複数」は2または2より大きいことを意味することに留意すべきである。「および/または」という用語は、関連付けられる対象物間の対応関係を説明するものであり、3つの関係が存在し得ることを表す。例えば、Aおよび/またはBは、以下の場合、すなわち、Aのみが存在すること、AおよびBの両方が存在すること、および、Bのみが存在することを表し得る。ここで、AおよびBは単数形または複数形であり得る。「/」という文字は概して、関連付けられる対象物間の「または」の関係を示す。「以下の項目(要素)のうち少なくとも1つ」またはその同様の表現は、これらの項目の任意の組み合わせを示し、単一の場合(要素)または複数の項目(要素)の任意の組み合わせを含む。例えば、a、b、またはcのうち少なくとも1つとは、a、b、c、aとb、aとc、bとc、またはaとbとcを示し得る。ここで、a、b、およびcは単数形または複数形であり得る。
【0244】
本願において、インター予測モードを使用することによって現在のブロックが復号される場合、シンタックス要素を使用することによってインター予測モードがシグナリングされ得る。
【0245】
現在、現在のブロックに使用されるインター予測モードを解析するために現在使用されるシンタックス構造の一部については、表1を参照されたい。シンタックス構造におけるシンタックス要素は代替的に、別の識別子によって表され得ることに留意すべきである。これは本願において具体的には限定されない。
【表1】
【0246】
シンタックス要素merge_flag[x0][y0]は、マージモードが現在のブロックに使用されるかどうかを示すために使用され得る。例えば、merge_flag[x0][y0]=1であるとき、マージモードが現在のブロックに使用されることを示す。または、merge_flag[x0][y0]=0であるとき、マージモードは現在のブロックに使用されないことを示す。x0およびy0は、ビデオ画像に対する現在のブロックの座標を表す。
【0247】
変数allowAffineMergeは、現在のブロックについてアフィン動きモデル型マージモードを可能にするための条件が満たされるかどうかを示すために使用され得る。例えば、allowAffineMerge=0であるとき、アフィン動きモデル型マージモードを可能にする条件が満たされないことを示す。または、allowAffineMerge=1であるとき、アフィン動きモデル型マージモードの条件が満たされることを示す。アフィン動きモデル型マージモードを可能にする条件は、現在のブロックの幅および高さの両方が8以上であることであり得る。cbWidthは、現在のブロックの幅を表し、cbHeightは、現在のブロックの高さを表す。すなわち、cbWidth<8またはcbHeight<8であるとき、allowAffineMerge=0である。または、cbWidth≧8およびcbHeight≧8であるとき、allowAffineMerge=1である。
【0248】
変数allowAffineInterは、現在のブロックについてのアフィン動きモデル型AMVPモードを可能にする条件が満たされるかどうかを示すために使用され得る。例えば、allowAffineInter=0であるとき、アフィン動きモデル型AMVPモードを可能にする条件が満たされないことを示す。または、allowAffineInter=1であるとき、アフィン動きモデル型AMVPモードを可能にする条件が満たされることを示す。アフィン動きモデル型AMVPモードを可能にする条件は、現在のブロックの幅および高さの両方が16以上であることであり得る。言い換えれば、cbWidth<16またはcbHeight<16であるとき、allowAffineInter=0である。または、cbWidth≧16およびcbHeight≧16であるとき、allowAffineInter=1である。
【0249】
シンタックス要素affine_merge_flag[x0][y0]は、現在のブロックを含むスライスがPスライスまたはBスライスであるとき、アフィン動きモデル型マージモードが現在のブロックに使用されるかどうかを示すために使用され得る。例えば、affine_merge_flag[x0][y0]=1であるとき、アフィン動きモデル型マージモードが現在のブロックに使用されることを示す。または、affine_merge_flag[x0][y0]=0であるとき、アフィン動きモデル型マージモードは現在のブロックに使用されず、並進運動モデル型マージモードが使用され得ることを示す。
【0250】
シンタックス要素affine_inter_flag[x0][y0]は、現在のブロックを含むスライスがPスライスまたはBスライスであるとき、アフィン動きモデル型AMVPモードが現在のブロックに使用されるかどうかを示すために使用され得る。例えば、affine_inter_flag[x0][y0]=1であるとき、アフィン動きモデル型AMVPモードが現在のブロックに使用されることを示す。または、affine_inter_flag[x0][y0]=0であるとき、アフィン動きモデル型AMVPモードは現在のブロックに使用されず、並進運動モデル型AMVPモードが使用され得ることを示す。
【0251】
シンタックス要素affine_type_flag[x0][y0]は、現在のブロックを含むスライスがPスライスまたはBスライスであるとき、6パラメータアフィン動きモデル型動き補償が現在のブロックに使用されるかどうかを示すために使用され得る。affine_type_flag[x0][y0]=0であるとき、6パラメータアフィン動きモデル型動き補償が現在のブロックに使用されず、4パラメータアフィン動きモデル型動き補償のみが現在のブロックに使用され得ることを示す。または、affine_type_flag[x0][y0]=1であるとき、6パラメータアフィン動きモデル型動き補償が現在のブロックに使用されることを示す。
【0252】
表2に示されるように、MotionModelIdc[x0][y0]=1であるとき、4パラメータアフィン動きモデルが使用されることを示し、MotionModelIdc[x0][y0]=2であるとき、6パラメータアフィン動きモデルが使用されることを示し、または、MotionModelIdc[x0][y0]=0であるとき、並進運動モデルが使用されることを示す。
【表2】
【0253】
変数MaxNumMergeCandが最大リスト長を表すために使用され、構築された候補動きベクトルリストの最大候補数を示す。inter_pred_idc[x0][y0]が予測方向を示すために使用される。PRED_L1が後方予測を示すために使用される。num_ref_idx_l0_active_minus1が前方参照フレームリスト(リスト0)における参照フレームの数を示し、ref_idx_l0[x0][y0]が現在のブロックについての前方向(リスト0)参照画像インデックスを示す。mvd_coding(x0,y0,0,0)は第1動きベクトル差を示す。mvp_l0_flag[x0][y0]は前方向MVP候補リスト(リスト0)のMVP候補インデックスを示す。PRED_L0は前方予測を示す。num_ref_idx_l1_active_minus1は後方参照フレームリスト(リスト1)における参照フレームの数を示す。ref_idx_l1[x0][y0]は、現在のブロックについての後方(リスト1)参照画像インデックスを示し、mvp_l1_flag[x0][y0]は、後方MVP候補リスト(リスト1)のMVP候補インデックスを示す。
【0254】
表1において、ae(v)は、コンテキスト適応型バイナリ算術符号化(context-based adaptive binary arithmetic coding、CABAC)を使用することによって符号化されるシンタックス要素を表す。
【0255】
以下では、インター予測処理を詳細に説明する。
図6Aを参照されたい。
【0256】
段階601:表1に示されるシンタックス構造に基づいてビットストリームを解析し、現在のブロックのインター予測モードを決定する。
【0257】
現在のブロックのインター予測モードがアフィン動きモデル型AMVPモードであると決定される場合、段階602aが実行される。
【0258】
すなわち、merge_flag = 0かつaffine_inter_flag = 1であるとき、現在のブロックのインター予測モードがアフィン動きモデル型AMVPモードであることを示す。
【0259】
現在のブロックのインター予測モードがアフィン動きモデル型マージ(merge)モードであると決定される場合、段階602bが実行される。
【0260】
すなわち、シンタックス要素において、merge_flag = 1かつaffine_merge_flag = 1であるとき、現在のブロックのインター予測モードがアフィン動きモデル型マージモードであることを示す。
【0261】
段階602a:アフィン動きモデル型AMVPモードに対応する候補動きベクトルリストを構築して、段階603aを実行する。
【0262】
現在のブロックの候補制御点動きベクトルが、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって導出され、候補動きベクトルリストに追加される。
【0263】
候補動きベクトルリストは、2タプルリスト(現在の符号化ブロックは4パラメータアフィン動きモデルである)または3タプルリストを含み得る。2タプルリストは、4パラメータアフィン動きモデルを構築するために使用される1または複数の2タプルを含む。3タプルリストは、6パラメータアフィン動きモデルを構築するために使用される1または複数の3タプルを含む。
【0264】
任意選択で、候補動きベクトル2タプル/3タプルリストが、特定のルールに従ってプルーニングおよびソートされ、特定の数に切り詰めされ得る、またはパディングされ得る。
【0265】
A1:継承された制御点動きベクトルを予測するために方法を使用することによって候補動きベクトルリストを構築するためのプロシージャについての説明が提供される。
【0266】
図4は例として使用される。例えば、現在のブロックの周囲の隣接する位置におけるブロックは、
図4における順序A1->B1->B0->A0->B2でトラバースされ、隣接する位置におけるブロックが位置するアフィン符号化ブロックを発見し、アフィン符号化ブロックの制御点動き情報を取得する。更に、アフィン符号化ブロックの制御点動き情報を使用することによって動きモデルが構築され、現在のブロックの候補制御点動き情報が導出される。詳細については、(3)における継承された制御点動きベクトルを予測するための方法の関連する説明を参照されたい。ここでは詳細を説明しない。
【0267】
例えば、現在のブロックに使用されるアフィン動きモデルは、4パラメータアフィン動きモデルである(すなわち、MotionModelIdc=1)。隣接するアフィン符号化ブロックが4パラメータアフィン動きモデルである場合、アフィン符号化ブロックの2つの制御点の動きベクトル、すなわち左上制御点(x4,y4)の動きベクトル(vx4,vy4)および右上制御点(x5,y5)の動きベクトル(vx5,vy5)が取得される。アフィン符号化ブロックは、アフィン動きモデルを使用することによって符号化フェーズにおいて予測されるアフィン符号化ブロックである。
【0268】
現在のブロックの左上制御点および右上制御点の動きベクトルは、隣接するアフィン符号化ブロックの2つの制御点を含む4パラメータアフィン動きモデルを使用することによって、4パラメータアフィン動きモデルに対応する式(6)および(7)に従ってそれぞれ導出される。
【0269】
6パラメータアフィン動きモデルが、隣接するアフィン符号化ブロックに使用される場合、隣接するアフィン符号化ブロックの3つの制御点の動きベクトル、例えば、
図4における左上制御点(x4,y4)の動きベクトル(vx4,vy4)、右上制御点(x5,y5)の動きベクトル(vx5,vy5)、および、左下制御点(x6,y6)の動きベクトル(vx6,vy6)が取得される。
【0270】
左上制御点の動きベクトルおよび現在のブロックの右上制御点は、隣接するアフィン符号化ブロックの3つの制御点を含む6パラメータアフィン動きモデルを使用することによって、6パラメータアフィン動きモデルに対応する式(8)および(9)に従ってそれぞれ導出される。
【0271】
例えば、現在の復号ブロックのアフィン動きモデルは6パラメータアフィン動きモデルである(すなわち、MotionModelIdc=2)。
【0272】
隣接するアフィン符号化ブロックに使用されるアフィン動きモデルが6パラメータアフィン動きモデルである場合、隣接するアフィン符号化ブロックの3つの制御点の動きベクトル、例えば、
図4における左上制御点(x4,y4)の動きベクトル(vx4,vy4)、右上制御点(x5,y5)の動きベクトル(vx5,vy5)、および、左下制御点(x6,y6)の動きベクトル(vx6,vy6)が取得される。
【0273】
現在のブロックの左上制御点、右上制御点、および左下制御点の動きベクトルが、隣接するアフィン符号化ブロックの3つの制御点を含む6パラメータアフィン動きモデルを使用することによって、6パラメータアフィン動きモデルに対応する式(8)、(9)、および(10)に従ってそれぞれ導出される。
【0274】
隣接するアフィン符号化ブロックに使用されるアフィン動きモデルが4パラメータアフィン動きモデルである場合、アフィン符号化ブロックの2つの制御点の動きベクトル、すなわち左上制御点(x4,y4)の動きベクトル(vx4,vy4)および右上制御点(x5,y5)の動きベクトル(vx5,vy5)が取得される。
【0275】
現在のブロックの左上制御点、右上制御点、および左下制御点の動きベクトルは、隣接するアフィン符号化ブロックの2つの制御点を含む4パラメータアフィン動きモデルを使用することによって、4パラメータアフィン動きモデルに対応する式(6)および(7)に従ってそれぞれ導出される。
【0276】
他の動きモデル、候補の位置、および探索順序も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。隣接および現在の符号化ブロックの動きモデルを表すために他の制御点が使用される方法も本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0277】
A2:構築された制御動きベクトルを予測するための方法を使用することによって候補動きベクトルリストを構築するプロシージャの説明を提供する。
【0278】
例えば、現在の復号ブロックに使用されるアフィン動きモデルは4パラメータアフィン動きモデルである(すなわち、MotionModelIdcは1である)。この場合、現在の符号化ブロックの左上サンプルおよび右上サンプルの動きベクトルが、現在の符号化ブロックの周囲の隣接する符号化ブロックの動き情報を使用することによって決定される。具体的には、候補動きベクトルリストは、構築された制御点動きベクトルを予測する方式1または方式2で構築され得る。具体的な方式については、(4)および(5)の説明を参照されたい。ここでは詳細を説明しない。
【0279】
例えば、現在の復号ブロックに使用されるアフィン動きモデルが6パラメータアフィン動きモデルである(すなわち、MotionModelIdcが2である)場合、現在の符号化ブロックの左上サンプル、右上サンプル、および左下サンプルの動きベクトルが、現在の符号化ブロックの周囲の隣接する符号化ブロックの動き情報を使用することによって決定される。具体的には、候補動きベクトルリストは、構築された制御点動きベクトルを予測する方式1または方式2で構築され得る。具体的な方式については、(4)および(5)の説明を参照されたい。ここでは詳細を説明しない。
【0280】
制御点動き情報の他の組み合わせも本願に適用可能であることに留意すべきである。ここでは詳細を説明しない。
【0281】
段階603a:ビットストリームを解析して、最適な制御点動きベクトル予測値を決定し、段階604aを実行する。
【0282】
B1:現在の復号ブロックに使用されるアフィン動きモデルが4パラメータアフィン動きモデルである(MotionModelIdcが1である)場合、解析を通じてインデックス番号を取得し、インデックス番号に基づいて候補動きベクトルリストから2つの制御点の最適な動きベクトル予測値を決定する。
【0283】
例えば、インデックス番号はmvp_l0_flagまたはmvp_l1_flagである。
【0284】
B2:現在の復号ブロックに使用されるアフィン動きモデルが6パラメータアフィン動きモデルである(MotionModelIdcが2である)場合、解析を通じてインデックス番号を取得し、インデックス番号に基づいて候補動きベクトルリストから3つの制御点の最適な動きベクトル予測値を決定する。
【0285】
段階604a:ビットストリームを解析して制御点動きベクトルを決定する。
【0286】
C1:現在の復号ブロックに使用されるアフィン動きモデルが4パラメータアフィン動きモデルである(MotionModelIdcが1である)とき、ビットストリームを復号して現在のブロックの2つの制御点の動きベクトル差を取得し、動きベクトル差および制御点の動きベクトル予測値に基づいて制御点動きベクトルを取得する。前方予測が例として使用される。2つの制御点が指す動きベクトル差は、mvd_coding(x0,y0,0,0)およびmvd_coding(x0,y0,0,1)である。
【0287】
例えば、左上制御点および右上制御点の動きベクトル差が、ビットストリームを復号することによって取得され、動きベクトル予測値にそれぞれ加算され、現在のブロックの左上制御点および右上制御点の動きベクトルを取得する。
【0288】
C2:現在の復号ブロックのアフィン動きモデルが6パラメータアフィン動きモデルである(すなわち、MotionModelIdcが2である)とき、ビットストリームを復号して現在のブロックの3つの制御点の動きベクトル差を取得し、動きベクトル差および制御点の動きベクトル予測値に基づいて制御点動きベクトルを取得する。前方予測が例として使用される。3つの制御点の動きベクトル差はmvd_coding(x0,y0,0,0)、mvd_coding(x0,y0,0,1)およびmvd_coding(x0,y0,0,2)である。
【0289】
例えば、左上制御点、右上制御点、および左下制御点の動きベクトル差が、ビットストリームを復号することによって取得され、動きベクトル予測値にそれぞれ加算され、現在のブロックの左上制御点、右上制御点、および左下制御点の動きベクトルを取得する。
【0290】
段階602b:アフィン動きモデル型マージモードの動き情報候補リストを構築する。
【0291】
具体的には、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって、アフィン動きモデル型マージモードの動き情報候補リストが構築され得る。
【0292】
任意選択で、動き情報候補リストが特定のルールに従ってプルーニングおよびソートされ、特定の数に切り詰められ得る、またはパディングされ得る。
【0293】
D1:継承された制御動きベクトルを予測するための方法を使用することによって候補動きベクトルリストを構築するプロシージャの説明が提供される。
【0294】
現在のブロックの候補制御点動き情報は、継承された制御点動きベクトルを予測するための方法を使用することによって導出され、動き情報候補リストに追加される。
【0295】
現在のブロックの周囲の隣接する位置におけるブロックが、
図5AにおけるA1、B1、B0、A0およびB2の順序でトラバースされ、隣接する位置のアフィン符号化ブロックを発見し、アフィン符号化ブロックの制御点動き情報を取得する。更に、現在のブロックの候補制御点動き情報が、アフィン符号化ブロックの制御点動き情報から構築される動きモデルを使用することによって更に導出される。
【0296】
この時点で候補動きベクトルリストが空である場合、候補制御点動き情報が候補リストに追加される。そうでない場合、候補動きベクトルリストにおける動き情報が順次にトラバースされ、候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在するかどうかをチェックする。候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在しない場合、候補制御点動き情報が候補動きベクトルリストに追加される。
【0297】
2つの候補動き情報が同一であるかどうかを決定するために、1つの候補動き情報における前方参照フレーム、後方参照フレーム、各前方向動きベクトルの水平成分および鉛直成分、各後方動きベクトルの水平成分および鉛直成分が、他の候補動き情報のものと同一であるかどうかを順次決定する必要がある。前述の要素のすべてが異なる場合のみ、2つの候補動き情報は異なる候補動き情報とみなされる。
【0298】
候補動きベクトルリストにおける動き情報の数が最大リスト長MaxNumMrgCandに到達した場合(MaxNumMrgCandは、1、2、3、4、または5などの正の整数であり、以下の説明では例として5が使用され、ここでは詳細を説明しない)、候補リストの構築が完了する。そうでない場合、次の隣接する位置におけるブロックがトラバースされる。
【0299】
D2:構築された制御点動きベクトルを予測するための方法を使用することによって、現在のブロックの候補制御点動き情報を導出し、
図6Bに示されるように、候補制御点動き情報を動き情報候補リストに追加する。
【0300】
段階601c:現在のブロックの制御点の動き情報を取得する。(5)における構築された制御点動きベクトルを予測するための方法2における段階501を参照されたい。ここでは詳細を再度説明しない。
【0301】
段階602c:制御点の動き情報を組み合わせて、構築された制御点動き情報を取得する。
図5Bにおける段階501を指されたい。ここでは詳細を再度説明しない。
【0302】
段階603c:構築された制御点動き情報を候補動きベクトルリストに追加する。
【0303】
この時点で候補リストの長さが最大リスト長MaxNumMrgCandより小さい場合、これらの組み合わせが事前設定された順序でトラバースされ、有効な組み合わせを候補制御点動き情報として取得する。この時点で候補動きベクトルリストが空である場合、候補制御点動き情報が候補動きベクトルリストに追加される。そうでない場合、候補動きベクトルリストにおける動き情報が順次にトラバースされ、候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在するかどうかをチェックする。候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在しない場合、候補制御点動き情報が候補動きベクトルリストに追加される。
【0304】
例えば、事前設定された順序は、Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4)である。合計で10の組み合わせがある。
【0305】
組み合わせに対応する制御点動き情報が利用可能でない場合、組み合わせが利用可能でないとみなされる。組み合わせが利用可能である場合、組み合わせの参照画像インデックスが決定され(2つの制御点の場合、最小参照画像インデックスが組み合わせの参照画像インデックスとして選択され、2より多い制御点の場合、もっとも頻繁に現れる参照画像インデックスが選択され、複数の参照画像インデックスが現れる回数が同一である場合、組み合わせの参照画像インデックスとして最小参照画像インデックスが選択される)、制御点動きベクトルがスケーリングされる。スケーリング後に取得されたすべての制御点の動き情報が一貫している場合、組み合わせは無効である。
【0306】
任意選択で、本願の本実施形態において、候補動きベクトルリストは更にパディングされ得る。例えば、前述のトラバース処理の後に、候補動きベクトルリストの長さが最大リスト長MaxNumMrgCandより小さい場合、リストの長さがMaxNumMrgCandに等しくなるまで候補動きベクトルリストがパディングされ得る。
【0307】
パディングは、ゼロ動きベクトルで充填することによって、または、既存のリストにおける既存の候補動き情報を組み合わせる、もしくは加重平均することによって実行され得る。候補動きベクトルリストをパディングするための他の方法も本願に適用可能であることを留意すべきである。ここでは詳細を説明しない。
【0308】
段階S603b:ビットストリームを解析して最適な制御点動き情報を決定する。
【0309】
インデックス番号は解析され、最適な制御点動き情報は、インデックス番号に基づいて候補動きベクトルリストから決定される。
【0310】
段階604b:最適な制御点動き情報、および、現在の復号ブロックに使用されるアフィン動きモデルに基づいて現在のブロックの各サブブロックの動きベクトルを取得する。
【0311】
現在のアフィン符号化ブロックの各サブブロック(サブブロックはまた、動き補償ユニットに等しいことがあり得、サブブロックの幅および高さは、現在のブロックの幅および高さより小さい)については、動き補償ユニットにおける事前設定された位置におけるサンプルの動き情報は、動き補償ユニットにおけるすべてのサンプルの動き情報を表すために使用され得る。動き補償ユニットのサイズをM×Nと想定すると、この場合、事前設定された位置におけるサンプルは、中央のサンプル(M/2,N/2)、左上サンプル(0,0)、右上サンプル(M-1,0)、または、動き補償ユニットの別の位置におけるサンプルであり得る。以下では、例として動き補償ユニットの中心画素を使用することによって説明を提供する。
図6Cを参照されたい。
図6Cにおいて、V0は左上制御点の動きベクトルを表し、V1は右上制御点の動きベクトルを表す。小さい正方形の枠の各々は1つの動き補償ユニットを表す。
【0312】
現在のアフィン符号化ブロックの左上サンプルに対する動き補償ユニットの中央のサンプルの座標は、式(25)を使用することによって計算される。ここで、iは水平方向(左から右)における第iの動き補償ユニットであり、jは鉛直方向(上から下)における第jの動き補償ユニットであり、(x(i.j),y(i,j))は、現在のアフィン符号化ブロックの左上サンプルに対する第(i,j)の動き補償ユニットの中央のサンプルの座標を表す。
【0313】
現在のアフィン符号化ブロックに使用されるアフィン動きモデルが6パラメータアフィン動きモデルである場合、(x(i.j),y(i,j))で6パラメータアフィン動きモデルに対応する式(26)が置換され、各動き補償ユニットの中央のサンプルの動きベクトルを取得し、各動き補償ユニットの中央のサンプルの動きベクトルは、動き補償ユニットのすべてのサンプルの動きベクトル(vx(i,j),vy(i,j))として使用される。
【0314】
現在のアフィン符号化ブロックに使用されるアフィン動きモデルが4パラメータアフィン動きモデルである場合、(x
(i.j),y
(i,j))で、4パラメータアフィン動きモデルに対応する式(27)が置換され、各動き補償ユニットの中央のサンプルの動きベクトルを取得し、各動き補償ユニットの中央のサンプルの動きベクトルは、動き補償ユニットのすべてのサンプルの動きベクトル(vx
(i,j),vy
(i,j))として使用される。
式(25)
【数26】
式(26)
【数27】
式(27)
【数28】
【0315】
段階605b:決定されたサブブロックの動きベクトルに基づいて各サブブロックについての動き補償を実行し、サブブロックの予測画素値を取得する。
【0316】
従来技術において、4パラメータアフィン動きモデルのパラメータ情報および6パラメータアフィン動きモデルのパラメータ情報、例えば、表1におけるaffine_merge_flag、affine_inter_flagおよびaffine_type_flagの両方が、ビットストリームを介してデコーダ側へ送信される必要がある。現在のビデオ画像またはスライスが、アフィン変換特性を有しない場合、パラメータ情報の送信により、ビットストリームにおけるビットの数が増加する。加えて、アフィン動きモデルが各符号化ブロックに使用されるかどうかを示すパラメータ情報がデコーダ側で解析される必要がある。結果として、デコーダの負荷が増加し得、処理速度が低減し得、処理時間が増加し得る。
【0317】
これに基づき、本願の実施形態は、ビデオ画像予測方法および装置を提供し、ビットストリームにおけるビットの数が増加するという従来技術における問題を解決する。方法および装置は同じ発明的概念に基づいている。方法の問題解決の原理は装置のものと同様であるので、装置および方法の実装に対して相互参照してよい。繰り返しの説明は提供されない。
【0318】
前述の問題を解決するべく、本願の実施形態は以下の複数の可能な実装を提供するが、これに限定されない。
【0319】
第1の可能な実装において、例えば、いくつかのビデオ画像は、いくつかのアフィン特性を有し得、いくつかのビデオ画像はアフィン特性を有しないことがあり得る。この場合、アフィン動きモデル型インター予測モードがビデオ画像について有効であるかどうかを示すために、識別子がビットストリームに追加され得る。
【0320】
第2の可能な実装において、例えば、ビデオ画像におけるすべてのスライスがアフィン特性を有するわけではなく、アフィン動きモデル型インター予測モードがスライスについて有効であるかどうかを示すために識別子がビットストリームに追加され得る。
【0321】
第3の可能な実装において、例えば、いくつかのビデオ画像はアフィン特性を有さず、いくつかのビデオ画像のすべてのスライスがアフィン特性を有するわけではない。この場合、2つのタイプの識別子がビットストリームに追加され得る。第1タイプの識別子が、アフィン動きモデル型インター予測モードがビデオ画像について有効であるかどうかを示すために使用され、第2タイプの識別子が、アフィン動きモデル型インター予測モードがビデオ画像におけるスライスついて有効であるかどうかを示すために使用される。
【0322】
後の説明を容易にするために、アフィン動きモデル型インター予測モードがビデオ画像について有効であるかどうかを示すために使用される識別子は、識別子1と称され、アフィン動きモデル型インター予測モードがビデオ画像に含まれるスライスについて有効であるかどうかを示すために使用される識別子は識別子2と称される。
【0323】
前述の3つの可能な実装において、アフィン動きモデルを使用する必要がないビデオ画像またはスライスに含まれる画像ブロックについて、画像ブロックのアフィン動きモデルに関連するパラメータ、例えば、表1におけるaffine_merge_flag、affine_inter_flag、またはaffine_type_flagを送信する必要がないことがあり得る。デコーダ側において、画像ブロックの復号中、アフィン動きモデルに関連するパラメータは解析される必要がない。これにより、デコーダの負荷を低減し、処理速度を増加し、処理時間を減少させることができる。
【0324】
以下では、付属の図面を参照しながら、デコーダ側の観点から、本願において提供される前述の複数の可能な実装を詳細に説明する。具体的には、可能な実装は、ビデオデコーダ30によって実行され得る、または、ビデオデコーダにおける動き補償モジュールによって実行され得る、または、プロセッサによって実行され得る。
【0325】
図7を参照されたい。第1の可能な実装が説明される。
【0326】
段階701:ビットストリームを解析して識別子1を取得する。
【0327】
識別子1は、処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルがアフィン動きモデルを含むかどうかを示すために使用される。言い換えれば、識別子1は、アフィン動きモデル型動き補償が、処理対象ブロックを含むビデオ画像について有効であるかどうかを示すために使用される。
【0328】
例えば、識別子1は、ビットストリームのSPSにおいて構成され得る。これに基づいて、ビットストリームを解析して識別子1を取得することは、ビットストリームのSPSを解析して識別子1を取得する方式で実装され得る。
【0329】
段階702:識別子1が、処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルはアフィン動きモデルを含むことを示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して識別子12を取得する。
【0330】
任意選択で、事前設定された条件は、以下の場合の少なくとも1つを含み得る。
【0331】
処理対象ブロックの幅は第1事前設定閾値以上であり、処理対象ブロックの高さは第2事前設定閾値以上である。
【0332】
第1事前設定閾値は第2事前設定閾値に等しいことがあり得る。例えば、インター予測モードがマージモードであるとき、事前設定された条件は、処理対象ブロックの幅が8以上であること、および、処理対象ブロックの高さが8以上であることであり得る。インター予測モードがAMVPモードであるとき、事前設定された条件は、処理対象ブロックの幅が16以上であること、および、処理対象ブロックの高さが16以上であることであり得る。
【0333】
例えば、インター予測モードがマージモードであるとき、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすかどうかは、変数allowAffineMergeによって表され得る。例えば、インター予測モードがAMVPモードであるとき、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすかどうかは、変数allowAffineInterによって表され得る。allowAffineMergeおよびallowAffineInterの関連する説明については表を参照1されたい。ここでは詳細を再度説明しない。
【0334】
例えば、識別子1が、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含まないことを示すとき、アフィン動きモデルに関連するパラメータ情報は、ビデオ画像の画像ブロックに対してインター予測が実行されるときに解析される必要がない。例えば、ビットストリームは、識別子12を取得するために解析される必要はない。
【0335】
例えば、識別子1が値Aであるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示し、または、識別子1が値Bであるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含まないことを示す。例えば、識別子1が1であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示し、または、識別子1が0であるとき、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含まないことを示す。
【0336】
段階703:識別子12に基づいて、処理対象ブロックのインター予測についての予測モードを決定する。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0337】
例えば、識別子1は、シンタックス要素sps_affine_enabled_flagによって表され得る。sps_affine_enabled_flagは、アフィンモデル型動き補償がインター予測について有効であるかどうかを指定する(sps_affine_enabled_flagは、アフィンモデル型動き補償をインター予測に使用できるかどうかを指定する)。例えば、sps_affine_enabled_flagは0に等しく、アフィンモデル型動き補償がCVSにおいて使用されないようにシンタックス要素が制限され、affine_merge_flag、affine_inter_flagおよびaffine_type_flagがCVSの画像ブロックレベルシンタックスにおいて示されない。sps_affine_enabled_flagは1に等しく、アフィンモデル型動き補償はCVSにおいて使用され得る。(sps_affine_enabled_flagが0に等しい場合、アフィンモデル型動き補償がCVSにおいて使用されないようにシンタックス要素が制限され、affine_merge_flag、affine_inter_flagおよびaffine_type_flagはCVSの符号化単位レベルのシンタックスにおいて示されない。そうでない場合(sps_affine_enabled_flagが1に等しい)、アフィンモデル型動き補償がCVSにおいて使用され得る。)
【0338】
例えば、インター予測モードがAMVPモードであるとき、識別子12は、シンタックス要素affine_inter_flagによって表され得る、または、インター予測モードがマージモードであるとき、識別子12はシンタックス要素affine_merge_flagによって表され得る。affine_inter_flagおよびaffine_merge_flagの関連する説明については、表1の説明を参照されたい。ここでは詳細を再度説明しない。
【0339】
第1の可能な実装において、可能な例では、識別子13は更にビットストリームにおいて構成され得る。識別子13はビットストリームのシーケンスパラメータセットにおいて構成され得る。アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用される場合、ビットストリームを解析することによって取得される識別子1が、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示すとき、ビットストリームが解析されて、識別子13を取得する。識別子13が第1の値であるとき、アフィン動きモデルは、4パラメータアフィンモデルのみを含む。または、識別子13が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。例えば、第1の値は1であり、第2の値は0である。または、第1の値は0であり、第2の値は1である。
【0340】
例えば、識別子13はsps_affine_type_flagによって表され得る。sps_affine_type_flagは、6パラメータアフィンモデル型動き補償がインター予測について有効であるかどうかを指定する。例えば、sps_affine_type_flagは0に等しく、シンタックス要素は、6パラメータアフィンモデル型動き補償がCVSにおいて使用されないように制限され、affine_type_flagはCVSにおける画像ブロックレベルシンタックスにおいて示されない。(sps_affine_type_flagは、6パラメータアフィンモデル型動き補償をインター予測に使用できるかどうかを指定する。sps_affine_type_flagが0に等しい場合、シンタックス要素は、6パラメータアフィンモデル型動き補償がCVSにおいて使用されないように制限され、affine_type_flagはCVSにおけるcuレベルシンタックスにおいて示されない。そうでない場合(sps_affine_type_flagが1に等しい)、6パラメータアフィンモデル型動き補償がCVSにおいて使用され得る。存在しないとき、sps_affine_type_flagの値は0に等しいと推定される。
【0341】
第1の可能な実装において、可能な例では、識別子12が、アフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを示し、識別子13が第2の値であるとき、識別子14を取得するためにビットストリームが解析される必要がある。識別子14が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルである。または、識別子14が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。例えば、第3の値は1であり、第4の値は0である。または、第3の値は0であり、第4の値は1である。
【0342】
例えば、識別子14は、affine_type_flagによって表され得る。affine_type_flagが、6パラメータアフィン動きモデル型動き補償を画像ブロックのインター予測に使用できるかどうかを示すために使用される。例えば、affine_type_flag=0であるとき、6パラメータアフィン動きモデル型動き補償を画像ブロックのインター予測に使用できないことを示す。
【0343】
例えば、識別子1および識別子13を解析するためのシンタックス構造については、表3を参照されたい。u(1)は連続する1ビットを更に読み取ることを表し、符号なし整数として解釈される。
【表3】
【0344】
例えば、現在の画像ブロックに使用されるインター予測モードを解析するためのシンタックス構造の一部については、表4を参照されたい。
【表4】
【0345】
第1の可能な実装において、可能な例では、識別子1および識別子13を取得するためにビットストリームが解析される場合、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを識別子12が示し、かつ、識別子13が第2の値であるとき、第1候補動きベクトルリストが構築される。第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む。例えば、第1要素は1または複数の3タプルを含む。
【0346】
任意選択で、第1候補動きベクトルリストは更に第2要素を含み得る。第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む。例えば、第2要素は1または複数の2タプルを含む。第1候補動きベクトルリストは更に第3要素を含み得、第3要素は非アフィン動きモデルの動き情報を含む。
【0347】
別の可能な例において、識別子12が、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを示し、かつ、識別子13が第1の値であるとき、第2候補動きベクトルリストが構築される。第2候補動きベクトルリストは第2要素を含み、第2要素は4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む。第2候補動きベクトルリストは第1要素を含まない。第2候補動きベクトルリストは第3要素を更に含み得、第3要素は非アフィン動きモデルの動き情報を含む。第1候補動きベクトルリストおよび第2候補動きベクトルリストの両方は、アフィン動きモデル型マージモードについての候補動きベクトルリストである。
【0348】
第1の可能な実装において、可能な例では、識別子1および識別子13を取得するためにビットストリームが解析される場合、識別子12が、アフィン動きモデル型AMVPモードが処理対象ブロックおインター予測に使用されることを示し、かつ、識別子13が第2の値であるとき、識別子14を取得するためにビットストリームが解析される。識別子14が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルであり、または、識別子14が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。例えば、第3の値は1であり、第4の値は0である。または、第3の値は0であり、第4の値は1である。
【0349】
任意選択で、識別子14は、シンタックス要素affine_type_flagによって表され得る。affine_type_flagについては、表1における関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0350】
以下では、表3および表4におけるシンタックス構造を例として使用して、
図8に示されるような第1の可能な方式で実行されるインター予測プロシージャを詳細に説明する。
【0351】
段階801a:表3および表4に示されるシンタックス構造に基づいてビットストリームを解析し、現在のブロックおインター予測モードを決定する。
【0352】
現在のブロックのインター予測モードがアフィン動きモデル型AMVPモードであると決定される場合、段階802aが実行される。
【0353】
すなわち、シンタックス要素においてsps_affine_enabled_flag=1、merge_flag=0、およびaffine_inter_flag=1である場合、現在のブロックのインター予測モードはアフィン動きモデル型AMVPモードであると示す。
【0354】
例えば、シンタックス要素においてsps_affine_enabled_flag=1、merge_flag=0、affine_inter_flag=1、およびsps_affine_type_flag=1である場合、affine_type_flagを取得するためにビットストリームを解析する必要がある。解析されたaffine_type_flagが1に等しい場合、現在のブロックのインター予測モードが6パラメータアフィン動きモデル型AMVPモードであることを示す。または、解析を通じて取得されたaffine_type_flagが0に等しい場合、現在のブロックのインター予測モードが4パラメータアフィン動きモデル型AMVPモードであることを示す。
【0355】
例えば、シンタックス要素においてsps_affine_enabled_flag=1、merge_flag=0、affine_inter_flag=1、およびsps_affine_type_flag=0である場合、現在のブロックのインター予測モードが4パラメータアフィン動きモデル型AMVPモードであることを示する。この場合、affine_type_flagを解析する必要はない。
【0356】
例えば、シンタックス要素においてsps_affine_enabled_flag=0であり、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型AMVPモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0357】
現在のブロックのインター予測モードがアフィン動きモデル型マージ(merge)モードであると決定される場合、段階802bが実行される。
【0358】
すなわち、シンタックス要素においてsps_affine_enabled_flag=1であり、merge_flag=1であり、affine_merge_flag=1であり、現在のブロックのインター予測モードがアフィン動きモデル型マージモードであることを示す。
【0359】
例えば、シンタックス要素においてsps_affine_enabled_flag=1であり、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型マージモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0360】
段階802aから段階804aについては、段階602aから段階604aを参照されたい。ここでは詳細を再度説明しない。
【0361】
段階802b:アフィン動きモデル型マージモードについての動き情報候補リストを構築する。
【0362】
具体的には、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって、アフィン動きモデル型マージモードの動き情報候補リストが構築され得る。
【0363】
継承された制御点動きベクトルを予測するための方法を使用することによって、アフィン動きモデル型マージモードについての動き情報候補リストを構築することについては、段階602bにおけるD1の関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0364】
現在のブロックの候補制御点動き情報が、構築された制御点動きベクトルを予測するための方法を使用することによって導出され、動き情報候補リストに追加されるとき、方法は具体的には以下の段階を含む。
【0365】
(1)現在のブロックの制御点の動き情報を取得する。詳細については段階601cを参照されたい。ここでは詳細を再度説明しない。
【0366】
(2)制御点の動き情報を組み合わせて、構築された制御点動き情報を取得する。
【0367】
sps_affine_type_flag=0である場合、2つの制御点の動き情報が組み合わされて、4パラメータアフィン動きモデルを構築する。2つの制御点は、{CP1,CP4}、{CP2,CP3}、{CP1,CP2}、{CP2,CP4}、{CP1,CP3}、または{CP3,CP4}のように組み合わされる。例えば、制御点CP1およびCP2の動き情報(例えば2MV)に基づく2タプルを使用することによって構築される4パラメータアフィン動きモデルはAffine(CP1,CP2)として表される。
【0368】
sps_affine_type_flag=1である場合、3つの制御点の動き情報が組み合わされて、6パラメータアフィン動きモデルを構築する。3つの制御点は、{CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}または{CP1,CP3,CP4}のように組み合わされる。例えば、制御点CP1、CP2およびCP3の動き情報(例えば3MV)に基づく3タプルを使用することによって構築される6パラメータアフィン動きモデルはAffine(CP1,CP2,CP3)として表される。例えば、sps_affine_type_flag=1である場合、3つの制御点の動き情報を組み合わせて6パラメータアフィン動きモデルを構築することに加えて、2つの制御点の動き情報が更に組み合わされて、4パラメータアフィン動きモデルを構築し得る。
【0369】
異なる制御点の組み合わせはまた、同一位置における制御点に変換され得ることに留意すべきである。具体的な変換方法については、段階502における関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0370】
(3)構築された制御点動き情報を候補動きベクトルリストに追加する。
【0371】
この時点で、候補リストの長さが最大リスト長MaxNumMrgCandより小さい場合、これらの組み合わせが事前設定された順序でトラバースされ、有効な組み合わせを候補制御点動き情報として取得する。この時点で候補動きベクトルリストが空である場合、候補制御点動き情報が候補動きベクトルリストに追加される。そうでない場合、候補動きベクトルリストにおける動き情報が順次にトラバースされ、候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在するかどうかをチェックする。候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在しない場合、候補制御点動き情報が候補動きベクトルリストに追加される。
【0372】
例えば、sps_affine_type_flagが1である場合、事前設定された順序は、Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4)である。合計で10の組み合わせがある。10の組み合わせを候補動きベクトルリストに追加する順序は本願の本実施形態において具体的には限定されない。
【0373】
sps_affine_type_flagが0である場合、事前設定された順序は、Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4)である。合計で6の組み合わせがある。6の組み合わせを候補動きベクトルリストに追加する順序は、本願の本実施形態において具体的には限定されない。
【0374】
段階803bから段階805bについては、段階603bから段階605bを参照されたい。ここでは詳細を再度説明しない。
【0375】
【0376】
段階901:ビットストリームを解析して識別子2を取得する。
【0377】
識別子2は、処理対象ブロックを含むスライスにおける画像ブロックのインター予測のための候補動きモデルがアフィン動きモデルを含むかどうかを示すために使用される。言い換えれば、識別子2は、処理対象ブロックを含むスライスに含まれる画像ブロックに対して動き補償が実行されるとき、アフィン動きモデルを使用できるかどうかを示すために使用される。
【0378】
例えば、識別子2は、ビットストリームのスライスのスライスヘッダにおいて構成され得る。これに基づいて、ビットストリームを解析して識別子2を取得することは、ビットストリームのスライスのスライスヘッダを解析して識別子2を取得するという方式で実装され得る。
【0379】
段階902:識別子2が、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含むことを示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して識別子12を取得する。
【0380】
事前設定された条件および識別子12の関連する説明については、
図7および
図8に対応する実施形態を参照されたい。ここでは詳細を再度説明しない。
【0381】
例えば、識別子2が、処理対象ブロックを含むスライスの画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含まないことを示すとき、アフィン動きモデルに関連するパラメータ情報は、スライスの画像ブロックに対してインター予測が実行されるときに解析される必要がない。例えば、ビットストリームを解析して識別子12を取得する必要はない。
【0382】
例えば、識別子2が値A1であるとき、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含むことを示す。または、識別子2が値B1であるとき、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含むことを示す。例えば、識別子2が1に等しいとき、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含むことを示す。または、識別子2が0に等しいとき、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含まないことを示す。
【0383】
段階903:識別子12に基づいて、処理対象ブロックのインター予測についての予測モードを決定する。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0384】
例えば、識別子2は、シンタックス要素slice_affine_enabled_flagによって表され得る。slice_affine_enabled_flagは、アフィンモデル型動き補償がインター予測について有効であるかどうかを指定する。例えば、slice_affine_enabled_flagが0に等しく、シンタックス要素は、アフィンモデル型動き補償がスライスのために使用されないように制限され、affine_merge_flag、affine_inter_flagおよびaffine_type_flagはCVSの画像ブロックレベルシンタックスにおいて示されない。slice_affine_enabled_flagは1に等しく、アフィンモデル型動き補償はスライスのために使用され得る。(slice_affine_enabled_flagが、アフィンモデル型動き補償をインター予測に使用できるかどうかを指定する。slice_affine_enabled_flagが0に等しい場合、アフィンモデル型動き補償がスライスに使用されないようにシンタックス要素が制限され、affine_merge_flag、affine_inter_flagおよびaffine_type_flagは、CVSのcuレベルシンタックスにおいて示されない。そうでない場合(slice_affine_enabled_flagが1に等しい)、アフィンモデル型動き補償がスライスにおいて使用され得る)。
【0385】
第2の可能な実装において、可能な例では、識別子23がビットストリームにおいて更に構成され得る。識別子23は、ビットストリームのスライスのスライスヘッダにおいて構成され得る。ビットストリームを解析することによって取得される識別子2が、処理対象ブロックを含むスライスのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示すとき、ビットストリームは更に解析されて、識別子23を取得する。識別子23が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。識別子23が第2の値であるとき、アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。例えば、第1の値は1であり、第2の値は0である。または、第1の値は0であり、第2の値は1である。
【0386】
例えば、識別子23はslice_affine_type_flagによって表され得る。slice_affine_type_flagは、6パラメータアフィンモデル型動き補償がインター予測に有効であるかどうかを指定する。例えば、slice_affine_type_flagは0に等しく、シンタックス要素は、6パラメータアフィンモデル型動き補償がスライスに使用されないように制限され、affine_type_flagはCVSにおいて画像ブロックレベルシンタックスで示されない。(slice_affine_type_flagが、6パラメータアフィンモデル型動き補償をインター予測に使用できるかどうかを指定する。slice_affine_type_flagが0に等しい場合、シンタックス要素は、6パラメータアフィンモデル型動き補償がスライスにおいて使用されないように制限され、affine_type_flagは、CVSにおいてcuレベルシンタックスで示されない。そうでない場合(slice_affine_type_flagが1に等しい)、6パラメータアフィンモデル型動き補償がスライスにおいて使用され得る。存在しないとき、slice_affine_type_flagの値は0に等しいと推定される。
【0387】
例えば、識別子2および識別子23を解析するためのシンタックス構造については、表5を参照されたい。
【表5】
【0388】
例えば、現在の画像ブロックに使用されるインター予測モードを解析するためのシンタックス構造の一部については、表6を参照されたい。
【表6】
【0389】
第2の可能な実装において、可能な例では、識別子2および識別子23がビットストリームを解析することによって取得される場合、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを識別子12が示し、かつ、識別子23が第2の値であるとき、第1候補動きベクトルリストが構築される。第1候補動きベクトルリストは第1要素を含み、第1要素は、6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む。例えば、第1要素は1または複数の3タプルを含む。
【0390】
任意選択で、第1候補動きベクトルリストは更に第2要素を含み得る。第2要素は、4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む。例えば、第2要素は1または複数の2タプルを含む。第1候補動きベクトルリストは更に第3要素を含み得、第3要素は非アフィン動きモデルの動き情報を含む。
【0391】
別の可能な例において、識別子12が、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを示し、かつ、識別子23が第1の値であるとき、第2候補動きベクトルリストが構築される。第2候補動きベクトルリストは第2要素を含み、第2要素は4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む。第2候補動きベクトルリストは第1要素を含まない。第2候補動きベクトルリストは第3要素を更に含み得、第3要素は非アフィン動きモデルの動き情報を含む。第1候補動きベクトルリストおよび第2候補動きベクトルリストの両方は、アフィン動きモデル型マージモードについての候補動きベクトルリストである。
【0392】
第2の可能な実装において、可能な例では、識別子2および識別子23がビットストリームを解析することによって取得される場合、識別子12がアフィン動きモデル型AMVPモードが処理対象ブロックのインター予測に使用されることを示し、かつ、識別子23が第2の値であるとき、ビットストリームが解析され、識別子14を取得する。識別子14が第3の値であるとき、アフィン動きモデルは6パラメータアフィン動きモデルである。または、識別子14が第4の値であるとき、アフィン動きモデルは4パラメータアフィン動きモデルである。第3の値は第4の値と異なる。例えば、第3の値は1であり、第4の値は0である。または、第3の値は0であり、第4の値は1である。
【0393】
任意選択で、識別子14は、シンタックス要素affine_type_flagによって表され得る。affine_type_flagについては、表1における関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0394】
以下では、表5および表6におけるシンタックス構造を例として使用して、
図10に示されるような第2の可能な方式で実行されるインター予測プロシージャを詳細に説明する。
【0395】
段階1001:表5および表6に示されるシンタックス構造に基づいてビットストリームを解析し、現在のブロックのインター予測モードを決定する。
【0396】
現在のブロックのインター予測モードがアフィン動きモデル型AMVPモードであると決定された場合、段階1002aが実行される。
【0397】
すなわち、シンタックス要素においてslice_affine_enabled_flag=1、merge_flag=0、およびaffine_inter_flag=1である場合、現在のブロックのインター予測モードがアフィン動きモデル型AMVPモードであることを示す。
【0398】
例えば、シンタックス要素においてslice_affine_enabled_flag=0であり、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型AMVPモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0399】
現在のブロックのインター予測モードがアフィン動きモデル型マージ(merge)モードであると決定される場合、段階702bが実行される。
【0400】
すなわち、シンタックス要素においてslice_affine_enabled_flag=1であり、merge_flag=1であり、affine_merge_flag=1であり、現在のブロックのインター予測モードがアフィン動きモデル型マージモードであることを示す。
【0401】
例えば、シンタックス要素においてslice_affine_enabled_flag=1であり、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型マージモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0402】
段階1002aから段階1004aについては、段階602aから段階604aを参照されたい。ここでは詳細を再度説明しない。
【0403】
段階1002b:アフィン動きモデル型マージモードについての動き情報候補リストを構築する。
【0404】
具体的には、継承された制御点動きベクトルおよび/または構築された制御点動きベクトルを予測するための方法を使用することによって、アフィン動きモデル型マージモードの動き情報候補リストが構築され得る。
【0405】
継承された制御点動きベクトルを予測するための方法を使用することによって、アフィン動きモデル型マージモードについての動き情報候補リストを構築することについては、段階602bにおけるD1の関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0406】
現在のブロックの候補制御点動き情報が、構築された制御点動きベクトルを予測するための方法を使用することによって導出され、動き情報候補リストに追加されるとき、方法は具体的には以下の段階を含む。
【0407】
(1)現在のブロックの制御点の動き情報を取得する。詳細については段階601cを参照されたい。ここでは詳細を再度説明しない。
【0408】
(2)制御点の動き情報を組み合わせて、構築された制御点動き情報を取得する。
【0409】
slice_affine_type_flag=0である場合、2つの制御点の動き情報が組み合わされて、4パラメータアフィン動きモデルを構築する。2つの制御点は、{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},または{CP3,CP4}のように組み合わされる。例えば、制御点CP1およびCP2を使用することによって構築される4パラメータアフィン動きモデルは、Affine(CP1,CP2)として表される。
【0410】
slice_affine_type_flag=1である場合、3つの制御点の動き情報が組み合わされ、6パラメータアフィン動きモデルを構築する。3つの制御点は、{CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}または{CP1,CP3,CP4}のように組み合わされる。例えば、制御点CP1、CP2およびCP3を使用することによって構築される6パラメータアフィン動きモデルはAffine(CP1,CP2,CP3)として表される。例えば、slice_affine_type_flag=1である場合、3つの制御点の動き情報を組み合わせて6パラメータアフィン動きモデルを構築することに加えて、2つの制御点の動き情報が更に組み合わされて、4パラメータアフィン動きモデルを構築し得る。
【0411】
異なる制御点の組み合わせはまた、同一位置における制御点に変換され得ることに留意すべきである。特定の変換方法については、段階502における関連する説明を参照されたい。ここでは詳細を再度説明しない。
【0412】
(3)構築された制御点動き情報を候補動きベクトルリストに追加する。
【0413】
この時点で候補リストの長さが最大リスト長MaxNumMrgCandより小さい場合、これらの組み合わせが事前設定された順序でトラバースされ、有効な組み合わせを候補制御点動き情報として取得する。この時点で候補動きベクトルリストが空である場合、候補制御点動き情報が候補動きベクトルリストに追加される。そうでない場合、候補動きベクトルリストにおける動き情報が順次にトラバースされ、候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在するかどうかをチェックする。候補制御点動き情報と同一である動き情報が候補動きベクトルリストに存在しない場合、候補制御点動き情報が候補動きベクトルリストに追加される。
【0414】
例えば、slice_affine_type_flagが1である場合、事前設定された順序は、Affine(CP1,CP2,CP3)->Affine(CP1,CP2,CP4)->Affine(CP1,CP3,CP4)->Affine(CP2,CP3,CP4)->Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4)である。合計で10の組み合わせがある。10の組み合わせを候補動きベクトルリストに追加する順序は本願の本実施形態において具体的には限定されない。
【0415】
slice_affine_type_flagが0である場合、事前設定された順序は、Affine(CP1,CP2)->Affine(CP1,CP3)->Affine(CP2,CP3)->Affine(CP1,CP4)->Affine(CP2,CP4)->Affine(CP3,CP4)である。合計で6の組み合わせがある。6の組み合わせを候補動きベクトルリストに追加する順序は、本願の本実施形態において具体的には限定されない。
【0416】
段階1003bについては、段階603bを参照されたい。ここでは詳細を再度説明しない。
【0417】
段階1004bについては、段階604bを参照されたい。ここでは詳細を再度説明しない。
【0418】
図11を参照すると、第3の可能な実装が説明される。
【0419】
段階1101:ビットストリームを解析し、識別子1を取得する。
【0420】
段階1102:識別子1が、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示すとき、ビットストリームを解析し、識別子2を取得する。
【0421】
例えば、識別子1は、シンタックス要素sps_affine_enabled_flagによって表され得る。sps_affine_enabled_flagは、アフィンモデル型動き補償がインター予測について有効であるかどうかを指定する。例えば、sps_affine_enabled_flagが0に等しい場合、アフィンモデル型動き補償がCVSに使用されないことを示し、slice_affine_enabled_flagはCVSのスライスレベルシンタックスで示されない。(sps_affine_enabled_flagが1に等しいことは、slice_affine_enabled_flagがスライスヘッダに存在することを指定する。sps_affine_enabled_flagが0に等しいことは、slice_affine_enabled_flagがスライスヘッダに存在しないこと、および、アフィンモデル型動き補償がCVSにおいて使用されないことを指定する)。
【0422】
可能な例にいおて、識別子1が、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示す場合、ビットストリームは識別子2を含むことを示す。識別子1が、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含まないことを示す場合、ビットストリームは識別子2を含まないことを示す。
【0423】
段階1103:識別子2が、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルはアフィン動きモデルを含むことを示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、ビットストリームを解析して識別子12を取得する。
【0424】
事前設定された条件、識別子1、識別子2、および識別子12の関連する説明については、
図9および
図10に対応する実施形態を参照されたい。ここでは詳細を再度説明しない。
【0425】
段階1104:識別子12に基づいて、処理対象ブロックのインター予測についての予測モードを決定する。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型モードを含む。
【0426】
第3の可能な実装において、可能な例では、識別子23は更にビットストリームにおいて構成され得る。識別子23はビットストリームのスライスのスライスヘッダにおいて構成され得る。ビットストリームを解析することによって取得される識別子2が、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを示すとき、ビットストリームは解析され、識別子23を取得する。識別子23が第1の値であるとき、アフィン動きモデルは4パラメータアフィンモデルのみを含む。識別子23が第2の値であるとき、アフィン動きモデルは、4パラメータアフィンモデルおよび6パラメータアフィンモデルを含む。第1の値は第2の値と異なる。例えば、第1の値は1であり、第2の値は0である。または、第1の値は0であり、第2の値は1である。
【0427】
例えば、識別子1を解析するためのシンタックス構造については、表7を参照されたい。
【表7】
【0428】
例えば、識別子2および識別子23を解析するためのシンタックス構造については、表8を参照されたい。ここでは詳細を再度説明しない。
【表8】
【0429】
例えば、現在の画像ブロックに使用されるインター予測モードを解析するためのシンタックス構造の一部については、表6を参照されたい。
【0430】
第3の可能な方式におけるインター予測プロシージャにおいて、現在のブロックのインター予測モードを決定するためにビットストリームを解析するプロシージャのみが第2の可能な方式と異なり、他のプロシージャは同一である。ここでは詳細を再度説明しない。
【0431】
現在のブロックのインター予測モードを決定するためにビットストリームが解析されるとき、シンタックス要素においてsps_affine_enabled_flag=1、slice_affine_enabled_flag=1、merge_flag=0、およびaffine_inter_flag=1である場合、現在のブロックのインター予測モードはアフィン動きモデル型AMVPモードであることを示す。
【0432】
例えば、シンタックス要素においてsps_affine_enabled_flag=0かつmerge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型AMVPモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0433】
例えば、シンタックス要素においてsps_affine_enabled_flag=1、slice_affine_enabled_flag=0、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型AMVPモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0434】
シンタックス要素において、sps_affine_enabled_flag=1、slice_affine_enabled_flag=1であり、merge_flag=1であり、affine_merge_flag=1である場合、現在のブロックのインター予測モードがアフィン動きモデル型マージモードであることを示す。
【0435】
例えば、シンタックス要素においてsps_affine_enabled_flag=1であり、merge_flag=0である場合、現在のブロックのインター予測モードが並進運動モデル型マージモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0436】
例えば、sps_affine_enabled_flag=1、slice_affine_enabled_flag=0、およびmerge_flag=1である場合、現在のブロックのインター予測モードは並進運動モデル型マージモードであることを示す。この場合、affine_merge_flag、affine_inter_flag、およびaffine_type_flagは、ビットストリームに含まれなくてよく、ビットストリームを解析することによって取得される必要がない。
【0437】
第3の可能な実装において、識別子13は更に、識別子1に基づいてビットストリームにおいて構成され得る。第3の可能な実装において、識別子13が、アフィン動きモデル型マージモードが処理対象ブロックのインター予測に使用されることを示すとき、識別子13は更に、ビットストリームが識別子23を含むかどうかを示し得る。
【0438】
段階1101において、ビットストリームを解析して識別子1を取得した後、段階1102において、ビットストリームを解析して識別子2を取得する前に、方法は更に、ビットストリームを解析して識別子13を取得することを含む。
【0439】
識別子13はシンタックス要素sps_affine_type_flagによって表され得る。sps_affine_type_flagが、6パラメータアフィン動きモデル型動き補償がインター予測に有効されるかどうか、および、ビットストリームがslice_affine_type_flagを含むかどうかを示すために使用される。例えば、sps_affine_type_flag=0であることは、6パラメータアフィン動きモデル型動き補償がインター予測について有効でないことを示す。この場合、CVSは、6パラメータアフィン動きモデル型動き補償を示すために使用されるシンタックス要素を含まない。例えば、slice_affine_type_flagまたはaffine_type_flagは、CVSの画像ブロックレベルシンタックスで示されない。(slice_affine_type_flagは、6パラメータアフィンモデル型動き補償をインター予測に使用できるかどうかを指定する。slice_affine_type_flagが0に等しい場合、シンタックス要素は、6パラメータアフィンモデル型動き補償が現在の画像の復号に使用されないように制限され、affine_type_flagは、現在の画像のcuレベルシンタックスで示されない。そうでない場合(slice_affine_type_flagが1に等しい)、6パラメータアフィンモデル型動き補償は現在の画像お復号に使用され得る。存在しないとき、slice_affine_type_flagの値は0に等しいと推定される。
【0440】
例えば、識別子1および識別子13を解析するためのシンタックス構造については表9を参照されたい。
【表9】
【0441】
例えば、識別子2および識別子23を解析するためのシンタックス構造については表10を参照されたい。
【表10】
【0442】
当該方法の実施形態と同じ発明的概念に基づいて、本願の実施形態は更に装置を提供する。
図12を参照すると、装置1200は具体的には、ビデオデコーダにおけるプロセッサ、チップ、もしくはチップシステム、または、ビデオデコーダにおけるモジュール、例えば動き補償モジュール322であり得る。
【0443】
例えば、装置は解析ユニット1201および構築ユニット1202を含み得る。解析ユニット1201および構築ユニット1202は、
図7から
図11に対応する実施形態において示される方法における段階を実行する。例えば、解析ユニット1201は、ビットストリームに含まれる識別子(例えば、識別子1、識別子12、識別子13、識別子14、識別子2、および識別子23)を解析するように構成され得、構築ユニット1202は、候補動きベクトルリスト(第1候補動きベクトルリスト、第2候補動きベクトルリスト、または同様のもの)を構築するよう構成される。
【0444】
本願の実施形態は更に、復号装置の別の構造を提供する。
図13に示されるように、装置1300は通信インタフェース1310およびプロセッサ1320を含み得る。任意選択で、装置1300は更にメモリ1330を含み得る。メモリ1330は、装置の内側または外側に配置され得る。
図12に示される解析ユニット1201および構築ユニット1202の両方はプロセッサ1320によって実装され得る。プロセッサ1320は、通信インタフェース1310を通じてビデオストリームまたはビットストリームを送信または受信し、
図7から
図11における方法を実装するよう構成される。実装処理において、処理プロシージャにおける段階は、プロセッサ1320におけるハードウェアの集積論理回路、または、ソフトウェアの形態の命令を使用することによって実装されて、
図7から
図11における方法を完了し得る。
【0445】
本願の本実施形態における通信インタフェース1310は、回路、バス、送受信器、または、情報を交換するよう構成され得る任意の他の装置であり得る。例えば、他の装置は、装置1300に接続されたデバイスであり得る。例えば、装置がビデオエンコーダであるとき、他の装置はビデオデコーダであり得る。
【0446】
本願の本実施形態において、プロセッサ1320は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイまたは別のプログラマブル論理デバイス、ディスクリートゲートまたはトラジスタ論理デバイス、またはディスクリートハードウェアコンポーネントであり得、本願の実施形態において開示される方法、段階、および論理ブロック図を実装または実行できる。汎用プロセッサはマイクロプロセッサ、または、任意の従来のプロセッサまたは同様のものであり得る。本願の実施形態を参照して開示される方法における段階は、ハードウェアプロセッサによって直接実行され得る、または、プロセッサにおけるハードウェアおよびソフトウェアユニットの組み合わせを使用することによって実行され得る。前述の方法を実装するためにプロセッサ1320によって実行されるプログラムコードはメモリ1330に格納され得る。メモリ1330はプロセッサ1320に連結される。
【0447】
本願の本実施形態における連結は、装置、ユニット、またはモジュール間の間接的連結または通信接続であり、電気的形式、機械的形式、または別の形態であり得、装置、ユニット、またはモジュール間の情報交換に使用される。
【0448】
プロセッサ1320はメモリ1330と連携して動作し得る。メモリ1330は不揮発性メモリ、例えば、ハードディスクドライブ(hard disk drive、HDD)またはソリッドステートドライブ(solid-state drive、SSD)であり得る、または、揮発性メモリ(volatile memory)、例えば、ランダムアクセスメモリ(random-access memory、RAM)であり得る。メモリ1330は、命令またはデータ構造の形態で所望のプログラムコードを搬送または格納するよう構成でき、コンピュータによってアクセスできる任意の他の媒体であるが、これに限定されない。
【0449】
本願の本実施形態において、通信インタフェース1310、プロセッサ1320、およびメモリ1330の間の特定の接続媒体は限定されない。本願の本実施形態において、メモリ1330、プロセッサ1320、および通信インタフェース1310は、
図13においてバスを通じて接続され、バスは
図13において太線で表される。他のコンポーネント間の接続モードは単に概略的に説明され、それらの限定されない。バスは、アドレスバス、データバス、および制御バス等に分類され得る。表現を容易にするために、
図13においてはバスを表すのに1つの太線のみが用いられているが、このことは、1つのバスのみ、または1つのタイプのバスのみがあることを意味しない。
【0450】
前述の実現可能な実装、および
図7から
図11に関連する具体的な実施形態は、本願における1または複数のビデオデータ復号装置を説明する。前述の説明によれば、エンコーダ側は通常、インター予測モードを決定し、インター予測モードをビットストリームに符号化すると理解されるべきである。最後に選択されたインター予測モードが選択された後に、インター予測モードのインジケータ(例えば、前述の説明における識別子1、識別子2、識別子12、識別子13、識別子14、および識別子23)は、前述の復号方法とは完全に逆である符号化処理に従ってビットストリームに符号化される(それぞれ、復号処理において解析される識別子1、識別子2、識別子12、識別子13、識別子14、および識別子23に対応する)。エンコーダ側の候補動きベクトルリストの構築は、デコーダ側と完全に一貫していることが理解されるべきである。エンコーダ側の具体的な実施形態は再び説明しない。しかしながら、本願において説明されるビデオ画像予測方法は、符号化装置にも適用可能であることが理解されるべきである。
【0451】
本願の実施形態は更に、符号化装置を提供する。
図14に示されるように、装置1400は通信インタフェース1410およびプロセッサ1420を含み得る。任意選択で、装置1400は更にメモリ1430を含み得る。メモリ1430は装置の内側または外側に配置され得る。プロセッサ1420は、通信インタフェース1410を通じてビデオストリームまたはビットストリームを送信または受信する。
【0452】
一態様において、プロセッサ1420は、識別子1をビットストリームに符号化すること、および、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを識別子1が示し、かつ、処理対象ブロックが、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、識別子12をビットストリームに符号化することを行うよう構成される。識別子12は、処理対象ブロックのインター予測についての予測モードを決定するために使用される。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0453】
別の態様において、プロセッサ1420は、識別子3をビットストリームに符号化すること、および、処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを識別子3が示し、かつ、処理対象ブロックは、アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、識別子32をビットストリームに符号化することを行うよう構成される。識別子32は、処理対象ブロックのインター予測についての予測モードを決定するよう使用される。予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、および非アフィン動きモデル型予測モードを含む。
【0454】
本願の本実施形態における通信インタフェース1410は、回路、バス、送受信器、または、情報を交換するよう構成され得る任意の他の装置であり得る。例えば、他の装置は、装置1400に接続されたデバイスであり得る。例えば、装置がビデオエンコーダであるとき、他の装置はビデオデコーダであり得る。
【0455】
本願の本実施形態において、プロセッサ1420は、汎用プロセッサ、デジタル信号プロセッサ、特定用途向け集積回路、フィールドプログラマブルゲートアレイまたは別のプログラマブル論理デバイス、ディスクリートゲートまたはトラジスタ論理デバイス、またはディスクリートハードウェアコンポーネントであり得、本願の実施形態において開示される方法、段階、および論理ブロック図を実装または実行できる。汎用プロセッサはマイクロプロセッサ、または、任意の従来のプロセッサまたは同様のものであり得る。本願の実施形態を参照して開示される方法における段階は、ハードウェアプロセッサによって直接実行され得る、または、プロセッサにおけるハードウェアおよびソフトウェアユニットの組み合わせを使用することによって実行され得る。前述の方法を実装するためにプロセッサ1420によって実行されるプログラムコードはメモリ1430に格納され得る。メモリ1430はプロセッサ1420に連結される。
【0456】
本願の本実施形態における連結は、装置、ユニット、またはモジュール間の間接的連結または通信接続であり、電気的形式、機械的形式、または別の形態であり得、装置、ユニット、またはモジュール間の情報交換に使用される。
【0457】
プロセッサ1420はメモリ1430と連携して動作し得る。メモリ1430は不揮発性メモリ、例えば、ハードディスクドライブ(hard disk drive、HDD)またはソリッドステートドライブ(solid-state drive、SSD)であり得る、または、揮発性メモリ(volatile memory)、例えば、ランダムアクセスメモリ(random-access memory、RAM)であり得る。メモリ1430は、命令またはデータ構造の形態で所望のプログラムコードを搬送または格納するよう構成でき、コンピュータによってアクセスできる任意の他の媒体であるが、これに限定されない。
【0458】
本願の本実施形態において、通信インタフェース1410、プロセッサ1420、およびメモリ1430の間の特定の接続媒体は限定されない。本願の本実施形態において、メモリ1430、プロセッサ1420、および通信インタフェース1410は、
図14においてバスを通じて接続され、バスは
図14において太線で表される。他のコンポーネント間の接続モードは単に概略的に説明され、それらの限定されない。バスは、アドレスバス、データバス、および制御バス等に分類され得る。表現を容易にするために、
図14においてはバスを表すのに1つの太線のみが用いられているが、このことは、1つのバスのみ、または1つのタイプのバスのみがあることを意味しない。
【0459】
前述の実施形態に基づき、本願の一実施形態は、コンピュータ記憶媒体を更に提供する。記憶媒体はソフトウェアプログラムを格納する。ソフトウェアプログラムが1または複数のプロセッサによって読み取られ実行されるとき、前述の実施形態の任意の1または複数において提供される方法が実装され得る。コンピュータ記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、リードオンリーメモリ、ランダムアクセスメモリ、磁気ディスク、または光学ディスクなど、プログラムコードを格納できる任意の媒体を含み得る。
【0460】
前述の実施形態に基づいて、本願の実施形態は更にチップを提供する。チップは、前述の実施形態の任意の1または複数における機能、例えば、前述の方法における情報またはメッセージの取得または処理を実装するよう構成されるプロセッサを含む。任意選択で、チップは更にメモリを含み、メモリは、プロセッサによって必要とされ実行されるプログラム命令およびデータを格納するよう構成される。チップはチップを含み得る、または、チップおよび別のディスクリートデバイスを含み得る。
【0461】
本願の特定の態様が、ビデオエンコーダ20およびビデオデコーダ30を参照して説明されたが、本発明の技術は、多くの他のビデオ符号化および/または復号ユニット、プロセッサ、エンコーダ/デコーダ(CODEC)のハードウェアベースの復号ユニットおよび同様のユニットなどの処理ユニット、および同様のものを使用することによって適用され得ることを理解すべきであり得る。加えて、
図6Aから
図11に示され説明される段階は単に実現可能な実装として提供されることを理解されるべきである。言い換えれば、
図6Aから
図11における実現可能な実装において示される段階は、必ずしも
図6Aから
図11に示される順序で実行されず、より少ない、追加の、または代替的な段階が実行され得る。
【0462】
更に、実現可能な実装に応じて、本明細書において説明される方法のいずれかにおける特定のアクションまたはイベントは、異なる順序で実行され得るか、アクションまたはイベントが追加され得るか、または、アクションまたはイベントが組み合わされ得る、もしくは省略され得る(例えば、説明されたアクションまたはイベントのすべてが方法の実装に必要であるわけではない)ことが理解されるべきである。更に、特定の実現可能な実装において、アクションまたはイベントは、(例えば)マルチスレッド処理または割り込み処理を受け得る、または、順次にではなく同時に複数のプロセッサによって処理され得る。更に、説明を分かりやすくするために、本願の特定の態様は、単一のモジュールまたはユニットによって実行されるものと説明されるが、本願の技術は、ビデオデコーダに関連するユニットまたはモジュールの組み合わせによって実行され得ることが理解されるべきである。
【0463】
1または複数の実現可能な実装において、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせを使用することによって実装され得る。ソフトウェアを使用することによって機能が実装される場合、機能は1または複数の命令またはコードとしてコンピュータ可読媒体に格納され得る、または、コンピュータ可読媒体を通じて送信されて、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、コンピュータ可読記憶媒体または通信媒体を含み得る。コンピュータ可読記憶媒体は、データ記憶媒体などの有形の媒体に対応する。通信媒体は、(例えば)通信プロトコルに従って1つの位置から別の位置へのコンピュータプログラムの送信を容易にする任意の媒体を含む。
【0464】
この方式において、コンピュータ可読媒体は、例えば、(1)非一時的な有形のコンピュータ可読記憶媒体、または、(2)信号もしくはキャリアなどの通信媒体に対応し得る。データ記憶媒体は、本願において説明される技術を実装するための命令、コード、および/またはデータ構造を取得するために1または複数のコンピュータ、または、1または複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0465】
限定ではなく実現可能な実装として、コンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM、または別の光学ディスク記憶装置、磁気ディスク記憶装置もしくは別の磁気記憶装置、フラッシュメモリ、または、命令またはデータ構造の形成で必要なコードを格納するために使用でき、コンピュータによってアクセスできる任意の他の媒体を含み得る。同様に、任意の接続は、コンピュータ可読媒体と適宜称され得る。例えば、命令が同軸ケーブル、光学ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波などの無線技術を通じてウェブサイト、サーバ、または別のリモート発信元から送信される場合、同軸ケーブル、光学ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などの無線技術は、媒体の定義に含まれる。
【0466】
しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、キャリア、信号、または別の一時的媒体を含まず、代替的に、非一時的な有形の記憶媒体を意味すると理解されるべきである。本明細書において使用される磁気ディスクおよび光学ディスクは、コンパクトディスク(CD)、レーザディスク、光学ディスク、デジタルバーサタイルディスク(DVD)、フロッピディスク、およびブルーレイ(登録商標)ディスクを含む。磁気ディスクは通常、データを磁気的に複製し、光学ディスクはレーザを通じてデータを光学的に複製する。前述の磁気ディスクおよび光学ディスクの組み合わせもコンピュータ可読媒体の範囲に含まれる。
【0467】
命令は、1または複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積もしくはディスクリートロジック回路などの1または複数のプロセッサによって実行され得る。したがって、本明細書において使用される「プロセッサ」という用語は、前述の構造、または、本明細書において説明される技術を実装するために使用される別の構造のいずれか1つであり得る。加えて、いくつかの態様において、本明細書において説明される機能は、符号化および復号のために構成される専用ハードウェアおよび/またはソフトウェアモジュールにおいて提供され得る、または、組み合わされたコーデックに組み込まれ得る。加えて、当該技術はすべて1または複数の回路または論理要素で実装され得る。
【0468】
本願における技術は、無線携帯電話、集積回路(IC)またはIC(例えばチップセット)のセットを含む様々な装置またはデバイスで実装され得る。開示された技術を実行するよう構成される装置の機能的態様を強調するために、様々なコンポーネント、モジュールまたはユニットが本願において説明されるが、必ずしも異なるハードウェアユニットによって実装されない。より具体的には、上述のように、ユニットはコーデックハードウェアユニットにおいて組み合わされ得る、または、好適なソフトウェアおよび/またはファームウェアと連携して、相互運用性のあるハードウェアユニット(上述のような1または複数のプロセッサを含む)のセットによって提供され得る。
【0469】
前述の説明は、本願の特定の実装態様の単なる例にすぎず、本願の保護範囲を限定することが意図されているわけではない。本願に開示された技術的範囲内で当業者により容易に考え出される、あらゆる変形または置き換えは、本願の保護範囲に含まれることになる。したがって、本願の保護範囲は特許請求の範囲の保護範囲に従うことになる。
他の可能な請求項
(項目1) ビデオ画像予測方法であって、
ビットストリームを解析して第1識別子を取得する段階と、
処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを上記第1識別子が示し、かつ、上記処理対象ブロックが、上記アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、上記ビットストリームを解析し、第2識別子を取得する段階と、
上記第2識別子に基づいて、上記処理対象ブロックのインター予測についての予測モードを決定する段階であって、上記予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、非アフィン動きモデル型非アフィン動きモデル型予測モードを含む、段階と
を備える方法。
(項目2) ビットストリームを解析して第1識別子を取得する上記段階は、
上記ビットストリームのシーケンスパラメータセットを解析して上記第1識別子を取得する段階を含む、項目1に記載の方法。
(項目3) 上記処理対象ブロックを含む上記ビデオ画像における画像ブロックのインター予測についての上記候補動きモデルが上記アフィン動きモデルを含むことを上記第1識別子が示すとき、
上記ビットストリームを解析して第3識別子を取得する段階であって、上記第3識別子が第1の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルのみを含み、または、上記第3識別子が第2の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含み、上記第1の値は上記第2の値と異なる、段階
を更に備える、項目1または2に記載の方法。
(項目4) 上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、上記第1候補動きベクトルリストは第1要素を含み、上記第1要素は、上記6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、
上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、上記第2候補動きベクトルリストは第2要素を含み、上記第2要素は、上記4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階
を更に備える、項目3に記載の方法。
(項目5) 上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記第1候補動きベクトルリストは更に上記第2要素を含む、項目4に記載の方法。
(項目6) 上記アフィン動きモデル型AMVPモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記ビットストリームを解析して第4識別子を取得する段階を更に備え、
上記第4識別子が第3の値であるとき、上記アフィン動きモデルは上記6パラメータアフィン動きモデルである、または、上記第4識別子が第4の値であるとき、上記アフィン動きモデルは上記4パラメータアフィン動きモデルであり、上記第3の値は上記第4の値と異なる、
項目3から5のいずれか一項に記載の方法。
(項目7) 上記ビットストリームを解析して第3識別子を取得する上記段階は、
上記ビットストリームの上記シーケンスパラメータセットを解析して上記第3識別子を取得する段階
を含む、項目3から6のいずれか一項に記載の方法。
(項目8) 上記事前設定された条件は、上記処理対象ブロックの幅が第1事前設定閾値以上であり、かつ、上記処理対象ブロックの高さが第2事前設定閾値以上であることを含む、項目1から7のいずれか一項に記載の方法。
(項目9) 上記第1事前設定閾値は上記第2事前設定閾値に等しい、項目8に記載の方法。
(項目10) ビデオ画像予測方法であって、
ビットストリームを解析して第1識別子を取得する段階と、
上記処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを上記第1識別子が示し、かつ、上記処理対象ブロックが、上記アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、上記ビットストリームを解析して第2識別子を取得する段階と、
上記第2識別子に基づいて、上記処理対象ブロックのインター予測についての予測モードを決定する段階であって、上記予測モードはアフィン動きモデル型マージモード、アフィン動きモデル型高度動きベクトル予測AMVPモード、および非アフィン動きモデル型予測モードを含む、段階と
を備える方法。
(項目11) ビットストリームを解析して第1識別子を取得する上記段階は、
上記ビットストリームにおける上記スライスのスライスヘッダを解析して上記第1識別子を取得する段階を含む、項目10に記載の方法。
(項目12) 上記処理対象ブロックを含む上記スライスにおける画像ブロックのインター予測についての上記候補動きモデルが上記アフィン動きモデルを含むことを上記第1識別子が示すとき、
上記ビットストリームを解析して第3識別子を取得する段階であって、上記第3識別子が第1の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルのみを含み、または、上記第3識別子が第2の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含み、上記第1の値は上記第2の値と異なる、段階
を更に備える、項目10または11に記載の方法。
(項目13) 上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、第1候補動きベクトルリストを構築する段階であって、上記第1候補動きベクトルリストは第1要素を含み、上記第1要素は、上記6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、段階、または、
上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第1の値であるとき、第2候補動きベクトルリストを構築する段階であって、上記第2候補動きベクトルリストは第2要素を含み、上記第2要素は、上記4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、段階
を更に備える、項目12に記載の方法。
(項目14) 上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記第1候補動きベクトルリストは更に上記第2要素を含む、項目13に記載の方法。
(項目15) 上記アフィン動きモデル型AMVPモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記ビットストリームを解析して第4識別子を取得する段階を更に備え、
上記第4識別子が第3の値であるとき、上記アフィン動きモデルは上記6パラメータアフィン動きモデルであり、または、上記第4識別子が第4の値であるとき、上記アフィン動きモデルは上記4パラメータアフィン動きモデルであり、上記第3の値は上記第4の値と異なる、
項目12または13に記載の方法。
(項目16) 上記ビットストリームを解析して第3識別子を取得する上記段階は、
上記ビットストリームにおける上記スライスの上記スライスヘッダを解析して上記第3識別子を取得する段階を含む、項目12から15のいずれか一項に記載の方法。
(項目17) ビットストリームを解析して第1識別子を取得する上記段階の前に、
上記ビットストリームを解析して第5識別子を取得する段階であって、上記第5識別子が第5の値であるとき、上記処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルは上記アフィン動きモデルを含み、または、上記第5識別子が第6の値であるとき、上記処理対象ブロックを含むビデオ画像のインター予測についての候補動きモデルは、上記非アフィン動きモデルのみを含み、上記第5の値は上記第6の値と異なる、段階
を更に備える、項目10から16のいずれか一項に記載の方法。
(項目18) 上記ビットストリームを取得して第5識別子を解析する上記段階は、
上記ビットストリームのシーケンスパラメータセットを解析して上記第5識別子を取得する段階を含む、項目17に記載の方法。
(項目19) 上記ビットストリームを解析して第5識別子を取得する上記段階の後、かつ、ビットストリームを解析して第1識別子を取得する上記段階の前に、
上記ビットストリームを解析して第6識別子を取得する段階であって、上記第6識別子は、上記ビットストリームが上記第3識別子を含むことを決定するために使用される、段階
を更に含む、項目17または18に記載の方法。
(項目20) 上記ビットストリームを解析して第6識別子を取得する上記段階は、
上記ビットストリームの上記シーケンスパラメータセットを解析して上記第6識別子を取得する段階を含む、項目19に記載の方法。
(項目21) 上記事前設定された条件は、上記処理対象ブロックの幅が第1事前設定閾値以上であり、かつ、上記処理対象ブロックの高さが第2事前設定閾値以上であることを含む、項目10から20のいずれか一項に記載の方法。
(項目22) 上記第1事前設定閾値は上記第2事前設定閾値に等しい、項目21に記載の方法。
(項目23) ビデオ画像予測装置であって、
ビットストリームを解析して第1識別子を取得するよう構成される解析ユニットであって、処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを上記第1識別子が示し、かつ、上記処理対象ブロックが、上記アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、上記ビットストリームを解析して第2識別子を取得する、解析ユニットを備え、
上記解析ユニットは更に、上記第2識別子に基づいて、上記処理対象ブロックのインター予測についての予測モードを決定するよう構成され、上記予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および非アフィン動きモデル型予測モードを含む、
装置。
(項目24) 上記ビットストリームを解析して上記第1識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームのシーケンスパラメータセットを解析して上記第1識別子を取得するよう構成される、項目23に記載の装置。
(項目25) 上記処理対象ブロックを含む上記ビデオ画像における上記画像ブロックのインター予測についての上記候補動きモデルが上記アフィン動きモデルを含むことを上記第1識別子が示すとき、上記解析ユニットは更に、
上記ビットストリームを解析して第3識別子を取得するよう構成され、上記第3識別子が第1の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルのみを含み、または、上記第3識別子が第2の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含み、上記第1の値は上記第2の値と異なる、
項目23または24に記載の装置。
(項目26) アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、第1候補動きベクトルリストを構築することであって、上記第1候補動きベクトルリストは第1要素を含み、上記第1要素は、上記6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、こと、または、
アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第1の値であるとき、第2候補動きベクトルリストを構築することであって、上記第2候補動きベクトルリストは第2要素を含み、上記第2要素は、上記4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、こと
を行うように構成される構築ユニットを更に備える、項目25に記載の装置。
(項目27) アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記第1候補動きベクトルリストは更に上記第2要素を含む、項目26に記載の装置。
(項目28) 上記解析ユニットは更に、
上記アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記ビットストリームを解析して第4識別子を取得するよう構成され、
上記第4識別子が第3の値であるとき、上記アフィン動きモデルは上記6パラメータアフィン動きモデルであり、または、上記第4識別子が第4の値であるとき、上記アフィン動きモデルは上記4パラメータアフィン動きモデルであり、上記第3の値は上記第4の値と異なる、
項目25から27のいずれか一項に記載の装置。
(項目29) 上記ビットストリームを解析して上記第3識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームの上記シーケンスパラメータセットを解析して上記第3識別子を取得するよう構成される、項目25から28のいずれか一項に記載の装置。
(項目30) 上記事前設定された条件は、上記処理対象ブロックの幅が第1事前設定閾値以上であり、上記処理対象ブロックの高さが第2事前設定閾値以上であることを含む、項目25から29のいずれか一項に記載の装置。
(項目31) 上記第1事前設定閾値は上記第2事前設定閾値に等しい、項目30に記載の装置。
(項目32) ビデオ画像予測装置であって、
ビットストリームを解析して第1識別子を取得するよう構成される解析ユニットであって、上記処理対象ブロックを含むスライスにおける画像ブロックのインター予測についての候補動きモデルがアフィン動きモデルを含むことを上記第1識別子が示し、かつ、上記処理対象ブロックが、上記アフィン動きモデルを使用するインター予測についての事前設定された条件を満たすとき、上記ビットストリームを解析して第2識別子を取得し、上記第2識別子に基づいて、上記処理対象ブロックのインター予測についての予測モードを決定するよう更に構成される解析ユニットを備え、上記予測モードは、アフィン動きモデル型マージモード、アフィン動きモデル型AMVPモード、および、非アフィン動きモデル型予測モードを含む、装置。
(項目33) 上記ビットストリームを解析して上記第1識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームにおける上記スライスのスライスヘッダを解析して上記第1識別子を取得するよう構成される、項目32に記載の装置。
(項目34) 上記解析ユニットは更に、
上記処理対象ブロックを含む上記スライスにおける上記画像ブロックのインター予測についての上記候補動きモデルが上記アフィン動きモデルを含むことを上記第1識別子が示すとき、
上記ビットストリームを解析して第3識別子を取得することであって、上記第3識別子が第1の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルのみを含み、または、上記第3識別子が第2の値であるとき、上記アフィン動きモデルは4パラメータアフィンモデルおよび6パラメータアフィンモデルを含み、上記第1の値は上記第2の値と異なる、ことを行うよう構成される、項目32または33に記載の装置。
(項目35) アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、第1候補動きベクトルリストを構築することであって、上記第1候補動きベクトルリストは第1要素を含み、上記第1要素は、上記6パラメータアフィン動きモデルを構築するための3つの制御点の動き情報を含む、こと、または、
アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第1の値であるとき、第2候補動きベクトルリストを構築することであって、上記第2候補動きベクトルリストは第2要素を含み、上記第2要素は、上記4パラメータアフィン動きモデルを構築するための2つの制御点の動き情報のみを含む、こと
を行うように構成される構築ユニットを更に備える、項目34に記載の装置。
(項目36) アフィン動きモデル型マージモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記第1候補動きベクトルリストは更に上記第2要素を含む、項目35に記載の装置。
(項目37) 上記解析ユニットは更に、
上記アフィン動きモデル型AMVPモードが上記処理対象ブロックのインター予測に使用されることを上記第2識別子が示し、かつ、上記第3識別子が上記第2の値であるとき、上記ビットストリームを解析して第4識別子を取得するよう構成され、
上記第4識別子が第3の値であるとき、上記アフィン動きモデルは上記6パラメータアフィン動きモデルであり、または、上記第4識別子が第4の値であるとき、上記アフィン動きモデルは上記4パラメータアフィン動きモデルであり、上記第3の値は上記第4の値と異なる、
項目34または35に記載の装置。
(項目38) 上記ビットストリームを解析して上記第3識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームにおける上記スライスの上記スライスヘッダを解析して上記第3識別子を取得するよう構成される、項目34から37のいずれか一項に記載の装置。
(項目39) 上記ビットストリームを解析して上記第1識別子を取得する前に、上記解析ユニットは更に、
上記ビットストリームを解析して第5識別子を取得するよう構成され、上記第5識別子が第5の値であるとき、上記処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルは、上記アフィン動きモデルを含み、または、上記第5識別子が第6の値であるとき、上記処理対象ブロックを含むビデオ画像における画像ブロックのインター予測についての候補動きモデルは、上記非アフィン動きモデルのみを含み、上記第5の値は上記第6の値と異なる、項目32から38のいずれか一項に記載の装置。
(項目40) 上記ビットストリームを解析して上記第5識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームのシーケンスパラメータセットを解析して上記第5識別子を取得するよう構成される、項目39に記載の装置。
(項目41) 上記解析ユニットは更に、上記ビットストリームを解析して上記第5識別子を取得した後、かつ、上記ビットストリームを解析して上記第1識別子を取得する前に、上記ビットストリームを解析して上記第6識別子を取得するよう構成され、上記第6識別子は、上記ビットストリームが上記第3識別子を含むと決定するために使用される、項目39または40に記載の装置。
(項目42) 上記ビットストリームを解析して上記第6識別子を取得するとき、上記解析ユニットは具体的には、
上記ビットストリームの上記シーケンスパラメータセットを解析して上記第6識別子を取得するよう構成される、項目41に記載の装置。
(項目43) 上記事前設定された条件は、上記処理対象ブロックの幅が第1事前設定閾値以上であり、上記処理対象ブロックの高さが第2事前設定閾値以上であることを含む、項目32から42のいずれか一項に記載の装置。
(項目44) 上記第1事前設定閾値は上記第2事前設定閾値に等しい、項目43に記載の装置。
(項目45) デコーダであって、
メモリおよびプロセッサを備え、
上記メモリは、プログラム命令を格納するよう構成され、
上記プロセッサは、上記メモリに格納された上記プログラム命令を呼び出して実行し、項目1から22のいずれか一項に記載の方法を実装するよう構成される、
デコーダ。
(項目46) チップであって、上記チップはメモリに接続され、上記メモリに格納されたソフトウェアプログラムを読み取り、実行し、項目1から22のいずれか一項に記載の方法を実装するよう構成される、チップ。
【外国語明細書】