(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023105160
(43)【公開日】2023-07-28
(54)【発明の名称】画像コーディングシステムにおいてコンストラクテッドアフィンMVP候補を使用するアフィン動き予測に基づいた画像デコード方法及び装置
(51)【国際特許分類】
H04N 19/52 20140101AFI20230721BHJP
【FI】
H04N19/52
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2023093942
(22)【出願日】2023-06-07
(62)【分割の表示】P 2022040142の分割
【原出願日】2019-08-06
(31)【優先権主張番号】62/715,269
(32)【優先日】2018-08-06
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】イ チェホ
(57)【要約】
【課題】画像コーディング効率を向上させる方法及び装置を提供する。
【解決手段】デコード装置により行われる画像デコード方法は、ビットストリームから現在ブロックに対する動き予測情報を取得するステップと、前記現在ブロックに対するアフィンMVP候補リストを生成するステップと、前記アフィンMVP候補リストに基づいて前記現在ブロックのCPに対するCPMVPを導出するステップと、前記動き予測情報に基づいて前記現在ブロックの前記CPに対するCPMVDを導出するステップと、前記CPMVP及び前記CPMVDに基づいて前記現在ブロックの前記CPに対するCPMVを導出するステップと、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出するステップを含む。
【選択図】
図22
【特許請求の範囲】
【請求項1】
デコード装置による画像デコード方法において、
ビットストリームから現在ブロックに対する予測関連情報を取得するステップと、
前記現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストを構成するステップと、
前記予測関連情報及び前記アフィンMVP候補リストに基づいて、前記現在ブロックのコントロールポイント(CPs)に対するコントロールポイント動きベクトル(CPMVs)を導出するステップと、
前記CPMVsに基づいて、前記現在ブロックに対する予測サンプルを導出するステップと、
前記導出された予測サンプルに基づいて、前記現在ブロックに対する復元ピクチャを生成するステップと、を含み、
コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記コンストラクテッドアフィンMVP候補は、前記現在ブロックの第1CP、第2CP及び第3CPに対する候補動きベクトルを含み、
前記第1CP、前記第2CP及び前記第3CPに対する前記候補動きベクトルが利用可能であることに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記第1CPに対する候補動きベクトル、前記第2CPに対する候補動きベクトル、又は前記第3CPに対する候補動きベクトルの少なくとも1つが利用可能でないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、前記コンストラクテッドアフィンMVP候補は前記アフィンMVP候補リストに含まれない、画像デコード方法。
【請求項2】
前記第1CPは前記現在ブロックの左上端位置であり、前記第2CPは前記現在ブロックの右上端位置であり、前記第3CPは前記現在ブロックの左下端位置である、請求項1に記載の画像デコード方法。
【請求項3】
前記第1CPに対する第1周辺ブロックグループ内に、前記現在ブロックの参照ピクチャと同一の参照ピクチャを有する周辺ブロックがないことに基づいて、前記第1CPに対する前記候補動きベクトルは利用可能ではなく、
前記第2CPに対する第2周辺ブロックグループ内に、前記現在ブロックの参照ピクチャと同一の参照ピクチャを有する周辺ブロックがないことに基づいて、前記第2CPに対する前記候補動きベクトルは利用可能ではなく、
前記第3CPに対する第3周辺ブロックグループ内に、前記現在ブロックの参照ピクチャと同一の参照ピクチャを有する周辺ブロックがないことに基づいて、前記第3CPに対する前記候補動きベクトルは利用可能ではない、請求項1に記載の画像デコード方法。
【請求項4】
前記第1周辺ブロックグループ内の第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第1CPに対する前記候補動きベクトルは利用可能であり、
前記第2周辺ブロックグループ内の第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第2CPに対する前記候補動きベクトルは利用可能であり、
前記第3周辺ブロックグループ内の第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第3CPに対する前記候補動きベクトルは利用可能であり、
前記第1CPに対する前記候補動きベクトル、前記第2CPに対する前記候補動きベクトル、及び前記第3CPに対する前記候補動きベクトルが利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記第1CPに対する前記候補動きベクトル、前記第2CPに対する前記候補動きベクトル、又は前記第3CPに対する前記候補動きベクトルの少なくとも1つが利用可能でないことに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含まない、請求項3に記載の画像デコード方法。
【請求項5】
前記第1周辺ブロックグループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、
前記第2周辺ブロックグループは、周辺ブロックD、周辺ブロックEを含み、
前記第3周辺ブロックグループは、周辺ブロックF、周辺ブロックGを含み、
前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端サンプルポジションのx成分及びy成分が0であることに基づいて、前記周辺ブロックAは(-1、-1)座標のサンプルを含むブロックであり、前記周辺ブロックBは(0、-1)座標のサンプルを含むブロックであり、前記周辺ブロックCは(-1、0)座標のサンプルを含むブロックであり、前記周辺ブロックDは(W-1、-1)座標のサンプルを含むブロックであり、前記周辺ブロックEは(W、-1)座標のサンプルを含むブロックであり、前記周辺ブロックFは(-1、H-1)座標のサンプルを含むブロックであり、前記周辺ブロックGは(-1、H)座標のサンプルを含むブロックである、請求項4に記載の画像デコード方法。
【請求項6】
前記第1ブロックは、第1特定順序で前記第1周辺ブロックグループ内の周辺ブロックをチェックして、参照ピクチャが前記現在ブロックの参照ピクチャと同一であることが1番目に確認されたブロックであり、
前記第2ブロックは、第2特定順序で前記第2周辺ブロックグループ内の周辺ブロックをチェックして、参照ピクチャが前記現在ブロックの参照ピクチャと同一であることが1番目に確認されたブロックであり、
前記第3ブロックは、第3特定順序で前記第3周辺ブロックグループ内の周辺ブロックをチェックして、参照ピクチャが前記現在ブロックの参照ピクチャと同一であることが1番目に確認されたブロックである、請求項5に記載の画像デコード方法。
【請求項7】
前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり、
前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり、
前記第3特定順序は、前記周辺ブロックFから前記周辺ブロックGへの順序である、請求項6に記載の画像デコード方法。
【請求項8】
エンコード装置による画像エンコードの方法において、
現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストを構成するステップと、
前記アフィンMVP候補リストに基づいて、前記現在ブロックのコントロールポイント(CPs)に対する複数のコントロールポイント動きベクトル(CPMVs)を導出するステップと、
前記CPMVsに基づいて、前記現在ブロックに対する予測サンプルを導出するステップと、
前記現在ブロックに対する予測関連情報をエンコードするステップと、を含み、
コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記コンストラクテッドアフィンMVP候補は、前記現在ブロックの第1CP、第2CP及び第3CPに対する候補動きベクトルを含み、
前記第1CP、前記第2CP及び前記第3CPに対する前記候補動きベクトルが利用可能であることに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記第1CPに対する候補動きベクトル、前記第2CPに対する候補動きベクトル、又は前記第3CPに対する候補動きベクトルの少なくとも1つが利用可能でないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、前記コンストラクテッドアフィンMVP候補は前記アフィンMVP候補リストに含まれない、画像エンコード方法。
【請求項9】
前記第1CPは前記現在ブロックの左上端位置であり、前記第2CPは前記現在ブロックの右上端位置であり、前記第3CPは前記現在ブロックの左下端位置である、請求項8に記載の画像エンコード方法。
【請求項10】
第1周辺ブロックグループ内の第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第1CPに対する前記候補動きベクトルは利用可能であり、
第2周辺ブロックグループ内の第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第2CPに対する前記候補動きベクトルは利用可能であり、
第3周辺ブロックグループ内の第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることに基づいて、前記第3CPに対する前記候補動きベクトルは利用可能であり、
前記第1CPに対する前記候補動きベクトル、前記第2CPに対する前記候補動きベクトル、及び前記第3CPに対する前記候補動きベクトルが利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記第1CPに対する前記候補動きベクトル、前記第2CPに対する前記候補動きベクトル、又は前記第3CPに対する前記候補動きベクトルの少なくとも1つが利用可能でないことに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含まない、請求項9に記載の画像エンコード方法。
【請求項11】
前記第1周辺ブロックグループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、
前記第2周辺ブロックグループは、周辺ブロックD、周辺ブロックEを含み、
前記第3周辺ブロックグループは、周辺ブロックF、周辺ブロックGを含み、
前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端サンプルポジションのx成分及びy成分が0であることに基づいて、前記周辺ブロックAは(-1、-1)座標のサンプルを含むブロックであり、前記周辺ブロックBは(0、-1)座標のサンプルを含むブロックであり、前記周辺ブロックCは(-1、0)座標のサンプルを含むブロックであり、前記周辺ブロックDは(W-1、-1)座標のサンプルを含むブロックであり、前記周辺ブロックEは(W、-1)座標のサンプルを含むブロックであり、前記周辺ブロックFは(-1、H-1)座標のサンプルを含むブロックであり、前記周辺ブロックGは(-1、H)座標のサンプルを含むブロックである、請求項10に記載の画像エンコード方法。
【請求項12】
画像に対するデータの送信方法において、
現在ブロックに対する予測関連情報を含む画像情報のビットストリームを取得するステップと、
前記予測関連情報を含む画像情報の前記ビットストリームを含む前記データを送信するステップと、を含み、
前記予測関連情報は、前記現在ブロックに対する予測サンプルに対する情報であり、
前記予測サンプルは、前記現在ブロックのコントロールポイント(CPs)に対するコントロールポイント動きベクトル(CPMVs)に基づいて導出され、
前記CPMVsは、前記現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストに基づいて導出され、
コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含み、
前記コンストラクテッドアフィンMVP候補は、前記現在ブロックの第1CP、第2CP及び第3CPに対する候補動きベクトルを含み、
前記第1CP、前記第2CP及び前記第3CPに対する前記候補動きベクトルが利用可能であることに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記第1CPに対する候補動きベクトル、前記第2CPに対する候補動きベクトル、又は前記第3CPに対する候補動きベクトルの少なくとも1つが利用可能でないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、前記コンストラクテッドアフィンMVP候補は前記アフィンMVP候補リストに含まれない、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、さらに詳細には、映像コーディングシステムにおけるアフィン動き予測(affine motion prediction)に基づいた映像デコード方法及び装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が多様な分野において増加しつつある。映像データが高解像度、高品質になるほど、従来の映像データに比べて相対的に転送される情報量またはビット量が増加するから、従来の有無線広帯域回線のような媒体を利用して映像データを転送するか、または従来の格納媒体を利用して映像データを格納する場合、転送費用と格納費用が増加する。
【0003】
そのため、高解像度、高品質映像の情報を効果的に転送または格納し、再生するために、高効率の映像圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本文書の技術的課題は、画像コーディング効率を向上させる方法及び装置を提供することにある。
【0005】
本文書の他の技術的課題は、CPに対する候補動きベクトルが全て可用である場合にのみ周辺ブロックに基づいてコンストラクテッドアフィンMVP候補を導出して前記現在ブロックのアフィンMVP候補リストを構成し、構成されたアフィンMVP候補リストに基づいて前記現在ブロックに対する予測を行う画像デコード方法及び装置を提供することにある。
【課題を解決するための手段】
【0006】
本文書の一実施形態によれば、デコード装置により行われる画像デコード方法が提供される。前記方法は、ビットストリームから現在ブロックに対する動き予測情報(motion prediction information)を取得するステップと、前記現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成するステップと、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出するステップと、前記動き予測情報に基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出するステップと、前記CPMVP及び前記CPMVDに基づいて前記現在ブロックの前記CPに対するCPMV(Control Point Motion Vectors)を導出するステップと、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出するステップと、前記導出された予測サンプルに基づいて前記現在ブロックに対する復元ピクチャを生成するステップと、を含むものの、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含み、前記コンストラクテッドアフィンMVP候補は前記CPに対する候補動きベクトル(candidate motion vectors)を含み、前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが可用である場合に可用であることを特徴とする。
【0007】
本文書の他の実施形態によれば、画像デコーディングを行うデコード装置が提供される。前記デコード装置は、ビットストリームから現在ブロックに対する動き予測情報(motion prediction information)を取得するエントロピーデコード部と、前記現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成し、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出し、前記動き予測情報に基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出し、前記CPMVP及び前記CPMVDに基づいて前記現在ブロックの前記CPに対するCPMV(Control Point Motion Vectors)を導出し、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出する予測部と、前記導出された予測サンプルに基づいて前記現在ブロックに対する復元ピクチャを生成する加算部と、を含むものの、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含み、前記コンストラクテッドアフィンMVP候補は前記CPに対する候補動きベクトル(candidate motion vectors)を含み、前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが可用である場合に可用であることを特徴とする。
【0008】
本文書のまた他の実施形態によれば、エンコード装置により行われるビデオエンコード方法を提供する。前記方法は、現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成するステップと、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出するステップと、前記現在ブロックの前記CPに対するCPMVを導出するステップと、前記CPMVP及び前記CPMVに基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出するステップと、前記CPMVDに関する情報を含む動き予測情報(motion prediction information)をエンコードするステップとを含むものの、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含み、前記コンストラクテッドアフィンMVP候補は前記CPに対する候補動きベクトル(candidate motion vectors)を含み、前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが可用である場合に可用であることを特徴とする。
【0009】
本文書のまた他の実施形態によれば、ビデオエンコード装置を提供する。前記エンコード装置は、現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成し、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出し、前記ブロックの前記CPに対するCPMVを導出し、前記CPMVP及び前記CPMVに基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出する予測部と、前記CPMVP及び前記CPMVに基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出する減算部と、前記CPMVDに関する情報を含む動き予測情報(motion prediction information)をエンコードするエントロピーエンコード部とを含むものの、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含み、前記コンストラクテッドアフィンMVP候補は前記CPに対する候補動きベクトル(candidate motion vectors)を含み、前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが可用である場合に可用であることを特徴とする。
【発明の効果】
【0010】
本文書によれば、全般的な画像/ビデオの圧縮効率を向上させることができる。
【0011】
本文書によれば、アフィン動き予測に基づいた画像コーディングの効率を向上させることができる。
【0012】
本文書によれば、アフィンMVP候補リストを導出するにおいて、コンストラクテッドアフィンMVP候補のCPに対する候補動きベクトルが全て可用である場合にのみ前記コンストラクテッドアフィンMVP候補を追加することができ、これによりコンストラクテッドアフィンMVP候補を導出する過程及びアフィンMVP候補リストを構成する過程の複雑度を低減し、コーディング効率を向上させることができる。
【図面の簡単な説明】
【0013】
【
図1】本文書が適用されることができるビデオエンコード装置の構成を概略的に説明する図である。
【
図2】本文書が適用されることができるビデオデコード装置の構成を概略的に説明する図である。
【
図3】前記アフィン動きモデルを介して表現される動きを例示的に示す。
【
図4】3個のコントロールポイントに対する動きベクトルが使用される前記アフィン動きモデルを例示的に示す。
【
図5】2個のコントロールポイントに対する動きベクトルが使用される前記アフィン動きモデルを例示的に示す。
【
図6】前記アフィン動きモデルに基づいてサブブロック単位で動きベクトルを誘導する方法を例示的に示す。
【
図7】本文書の一実施形態によるアフィン動き予測方法のフローチャートを例示的に示す。
【
図8】本文書の一実施形態によるコントロールポイントでの動きベクトル予測子を導き出す方法を説明するための図である。
【
図9】本文書の一実施形態によるコントロールポイントでの動きベクトル予測子を導き出す方法を説明するための図である。
【
図10】周辺ブロックAがアフィンマージ候補として選択された場合に行われるアフィン予測の一例を示す。
【
図11】前記継承されたアフィン候補を導き出すための周辺ブロックを例示的に示す。
【
図12】前記コンストラクテッドアフィン候補に対する空間的候補を例示的に示す。
【
図13】アフィンMVPリストを構成する一例を例示的に示す。
【
図14】前記コンストラクテッド候補を導出する一例を示す。
【
図15】前記コンストラクテッド候補を導出する一例を示す。
【
図16】前記現在ブロックに4アフィン動きモデルが適用される場合に前記コンストラクテッド候補を導出する一例を示す。
【
図17】前記現在ブロックに6アフィン動きモデルが適用される場合に前記コンストラクテッド候補を導出する一例を示す。
【
図18】前記現在ブロックの幅及び高さに基づいて適応的に選択されたCPに対するCPMVPを含むコンストラクテッド候補を導出する一例を示す。
【
図19】現在ブロックのコンストラクテッド候補を導出する一例を示す。
【
図20】本文書に従うエンコード装置による画像エンコード方法を概略的に示す。
【
図21】本文書に従う画像エンコード方法を行うエンコード装置を概略的に示す。
【
図22】本文書に従うデコード装置による画像デコード方法を概略的に示す。
【
図23】本文書に従う画像デコード方法を行うデコード装置を概略的に示す。
【
図24】本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【発明を実施するための形態】
【0014】
本文書は、多様な変更を加えることができ、様々な実施形態を有することができるから、特定実施形態を図面に例示し詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書において常用する用語は、但し特定の実施形態を説明するために使用されたもので、本文書の技術的思想を限定しようとする意図として使用されるものではない。単数の表現は、文脈上明白に異なって意味しない限り、複数の表現を含む。本明細書において“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたことが存在することを指定しようとすることであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性を予め排除しないものと理解されなければならない。
【0015】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に示されたものであり、各構成が互いに別のハードウェアまたは別のソフトウェアにより具現化されるということを意味しない。例えば、各構成のうち、二つ以上の構成が合わせられて一つの構成をなすこともでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/または分離された実施形態も本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0016】
以下、添付した図面を参照して、本文書の好ましい実施形態をさらに詳細に説明する。以下、図面上の同じ構成要素については、同じ参照符号を使用し同じ構成要素について重なった説明は省略する。
【0017】
本明細書において、ビデオ(video)は時間の流れに従う一連の画像(image)の集合を意味し得る。ピクチャ(picture)は、一般的に特定時間帯の1つの画像を示す単位であり、スライス(slice)はコーディングにおいてピクチャの一部を構成する単位である。1つのピクチャは複数のスライス又はタイルグループで構成されてもよく、必要に応じて、ピクチャ、スライス、タイルグループは互いに混用して使用されてもよい。本文書において、画像は、静止画像でもあり得、ビデオを構成する時間(time)の画像を示すことでもあり得る。以下、画像コーディングは、ビデオコーディングと混用される場合もある。また、画像コーディングはピクチャコーディング又はフレーム(frame)コーディングと混用される場合もある。
【0018】
ピクセル(pixel)又はペル(pel)は、1つのピクチャ(又は、画像)を構成する最小の単位を意味し得る。また、ピクセルに対応する用語として、「サンプル(sample)」が使われる。サンプルは、一般的にピクセル又はピクセルの値を示すことができ、ルーマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0019】
ユニット(unit)は、画像処理の基本単位を示す。ユニットは、ピクチャの特定領域及び当該領域に関する情報のうち少なくとも1つを含む。ユニットは、場合によって、ブロック(block)又は領域(area)などの用語と混用して使われてもよい。または、ユニットは、ルーマ成分ブロックとクロマ成分(cb、cr)ブロックを含んでもよい。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示す。
【0020】
図1は、本文書が適用できるビデオ/画像エンコード装置の構成を概略的に説明する図である。以下、ビデオエンコード装置は、画像エンコード装置を含んでもよい。
【0021】
図1に示すように、ビデオエンコード装置100は、ピクチャ分割部(picture partitioning module)105、予測部(prediction module)110、レジデュアル処理部(residual processing module)120、エントロピーエンコード部(entropy encoding module)130、加算部(adder)140、フィルタ部(filtering module)150及びメモリ(memory)160を含む。レジデュアル処理部120は、減算部(substractor)121、変換部(transform module)122、量子化部(quantization module)123、再整列部(rearrangement module)124、逆量子化部(dequantization module)125及び逆変換部(inverse transform module)124を含む。
【0022】
ピクチャ分割部105は、入力されたピクチャを少なくとも1つの処理ユニット(processing unit)に分割することができる。
【0023】
一例として、処理ユニットは、コーディングユニット(coding unit:CU)と呼ばれもよい。この場合、コーディングユニットは、最大コーディングユニット(largest coding unit:LCU)からQTBT(Quad-tree binary-tree)構造に応じて再帰的に(recursively)分割される。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又は、ターナリ(ternary)ツリー構造に基づいて下位(deeper)深さ(depth)の複数のコーディングユニットに分割される。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及びターナリツリー構造が後で適用されてもよい。または、バイナリツリー構造/ターナリツリー構造が先に適用されてもよい。それ以上分割されない最終コーディングユニットに基づいて本文書に従うコーディング手順が行われることができる。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが直ちに最終コーディングユニットとして使用されてもよく、又は、必要に応じてコーディングユニットは再帰的に(recursively)より下位深さのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されてもよい。ここで、コーディング手順は、後述する予測、変換、及び復元などの手順を含む。
【0024】
他の例として、処理ユニットは、コーディングユニット(coding unit:Cu)、予測ユニット(prediction unit:PU)又は変換ユニット(transform unit:TU)を含む。コーディングユニットは、最大コーディングユニット(largest coding unit:LCU)からクアッドツリー構造に応じて下位(deeper)深さのコーディングユニットに分割(split)される。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが直ちに最終コーディングユニットとして使用されてもよく、又は、必要に応じてコーディングユニットは再帰的に(recursively)より下位深さのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されてもよい。最小コーディングユニット(smallest coding unit:SCU)が設定された場合、コーディングユニットは最小コーディングユニットより小さいコーディングユニットに分割できない。ここで、最終コーディングユニットとは、予測ユニット又は変換ユニットにパーティショニング又は分割されるベースとなるコーディングユニットを意味する。予測ユニットは、コーディングユニットからパーティショニング(partitioning)されるユニットであって、サンプル予測のユニットであり得る。ここで、予測ユニットは、サブブロック(sub block)に分けられることもできる。変換ユニットは、コーディングユニットからクアッドツリー構造に応じて分割され、変換係数を誘導するユニット及び/又は変換係数からレジデュアル信号(residual signal)を誘導するユニットであり得る。以下、コーディングユニットは、コーディングブロック(coding block:CB)、予測ユニットは予測ブロック(prediction block:PB)、変換ユニットは変換ブロック(transform block:TB)と呼ばれてもよい。予測ブロック又は予測ユニットは、ピクチャ内でブロック形態の特定領域を意味し、予測サンプルのアレイ(array)を含んでもよい。また、変換ブロック又は変換ユニットは、ピクチャ内でブロック形態の特定領域を意味し、変換係数又はレジデュアルサンプルのアレイを含んでもよい。
【0025】
予測部110は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部110で行われる予測の単位はコーディングブロックでもあり得、変換ブロックでもあり得、予測ブロックでもあり得る。
【0026】
予測部110は、現在ブロックにイントラ予測が適用されるかインター予測が適用されるかを決定する。一例として、予測部110は、CU単位でイントラ予測又はインター予測が適用されるか決定することができる。
【0027】
イントラ予測の場合、予測部110は、現在ブロックが属するピクチャ(以下、現在ピクチャ)内の現在ブロック外部の参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。ここで、予測部110は、(i)現在ブロックの周辺(neighboring)参照サンプルの平均(average)又はインターポレーション(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの周辺参照サンプルのうち予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モード又は非角度モード、(ii)の場合は方向性(directional)モード又は角度(angular)モードと呼ばれることができる。イントラ予測において、予測モードは、例えば、33個の方向性予測モードと少なくとも2つ以上の非方向性モードを有することができる。非方向性モードは、DC予測モード及びプラナーモード(Planar mode)を含んでもよい。予測部110は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0028】
インター予測の場合、予測部110は、参照ピクチャ上で動きベクトルにより特定されるサンプルに基づいて、現在ブロックに対する予測サンプルを誘導することができる。予測部110は、スキップ(skip)モード、マージ(merge)モード、及びMVP(Motion Vector Prediction)モードのいずれか1つを適用して現在ブロックに対する予測サンプルを誘導することができる。スキップモードとマージモードの場合、予測部110は、周辺ブロックの動き情報を現在ブロックの動き情報として利用できる。スキップモードの場合、マージモードとは異なって、予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。MVPモードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(Motion Vector Predictor)として利用して現在ブロックの動きベクトル予測子として利用して現在ブロックの動きベクトルを誘導することができる。
【0029】
インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャ(reference picture)に存在する時間的周辺ブロック(temporal neighboring block)を含む。前記時間的周辺ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture:colPic)と呼ばれてもよい。動き情報(motion information)は、動きベクトルと参照ピクチャインデックスを含む。予測モード情報と動き情報などの情報は(エントロピー)エンコードされてビットストリーム形態で出力されることができる。
【0030】
スキップモードとマージモードにおいて時間的周辺ブロックの動き情報が用いられる場合、参照ピクチャリスト(reference picture list)上の最上位ピクチャが参照ピクチャとして利用されることもできる。参照ピクチャリスト( reference picture list )に含まれる参照ピクチャは、現在ピクチャと当該参照ピクチャとの間のPOC(Picture order count)の差に基づいて整列されることができる。POCは、ピクチャのディスプレイ順に対応し、コーディング順と区別される。
【0031】
減算部121は、原本サンプルと予測サンプルとの間の差であるレジデュアルサンプルを生成する。スキップモードが適用される場合には、前述したようにレジデュアルサンプルを生成しないことがある。
【0032】
変換部122は、変換ブロック単位でレジデュアルサンプルを変換して変換係数(transform coefficient)を生成する。変換部122は、当該変換ブロックのサイズと、当該変換ブロックと空間的に重なるコーディングブロック又は予測ブロックに適用された予測モードに従って変換を行うことができる。例えば、前記変換ブロックと重なる前記コーディングブロック又は前記予測ブロックにイントラ予測が適用され、前記変換ブロックが4×4のレジデュアルアレイ(array)であると、レジデュアルサンプルはDST(Discrete Sine Transform)変換カーネルを用いて変換され、それ以外の場合であると、レジデュアルサンプルはDCT(Discrete Cosine Transform)変換カーネルを用いて変換できる。
【0033】
量子化部123は、変換係数を量子化して、量子化された変換係数を生成することができる。
【0034】
再整列部124は、量子化された変換係数を再整列する。再整列部124は、係数スキャニング(scanning)方法によりブロック形態の量子化された変換係数を1次元ベクトル形態に再整列することができる。ここで、再整列部124は別途の構成として説明したが、再整列部124は量子化部123の一部であってもよい。
【0035】
エントロピーエンコード部130は、量子化された変換係数に対するエントロピーエンコードを行うことができる。エントロピーエンコードは、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのエンコード方法が含む。エントロピーエンコード部130は、量子化された変換係数のほか、ビデオ復元に必要な情報(例えば、シンタックス要素(syntax element)の値など)を共に又は別途にエントロピーエンコード又は既設定された方法によりエンコードすることもできる。エンコードされた情報は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信又は格納される。前記ビットストリームは、ネットワークを介して伝送されてもよく、又はデジタル格納媒体に格納されてもよい。ここで、ネットワークは、放送網及び/又は通信網などを含んでもよく、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど多様な格納媒体を含んでもよい。
【0036】
逆量子化部125は、量子化部123で量子化された値(量子化された変換係数)を逆量子化し、逆変換部126は、逆量子化部125で逆量子化された値を逆変換してレジデュアルサンプルを生成する。
【0037】
加算部140は、レジデュアルサンプルと予測サンプルを合わせてピクチャを復元する。レジデュアルサンプルと予測サンプルはブロック単位で加算されて復元ブロックが生成されることができる。ここで、加算部140は、別途の構成として説明したが、加算部140は、予測部110の一部であってもよい。一方、加算部140は、復元部(reconstruction module)又は復元ブロック生成部と呼ばれてもよい。
【0038】
復元されたピクチャ(reconstructed picture)に対してフィルタ部150は、デブロッキングフィルタ及び/又はサンプル適応的オフセット(sample adaptive offset)を適用することができる。デブロッキングフィルタリング及び/又はサンプル適応的オフセットにより、復元ピクチャ内のブロック境界のアーティファクトや量子化過程での歪みが補正できる。サンプル適応的オフセットは、サンプル単位で適用されてもよく、デブロッキングフィルタリングの過程が完了した後に適用されてもよい。フィルタ部150は、ALF(Adaptive Loop Filter)を復元されたピクチャに適用することもできる。ALFは、デブロッキングフィルタ及び/又はサンプル適応的オフセットが適用された後の復元されたピクチャに対して適用されることができる。
【0039】
メモリ160は、復元ピクチャ(デコードされたピクチャ)又はエンコード/デコードに必要な情報を格納することができる。ここで、復元ピクチャは、前記フィルタ部150によりフィルタリング手順が完了した復元ピクチャであり得る。前記格納された復元ピクチャは、他のピクチャの(インター)予測のための参照ピクチャとして活用できる。例えば、メモリ160は、インター予測に使われる(参照)ピクチャを格納することができる。ここで、インター予測に使われるピクチャは、参照ピクチャセット(reference picture set)又は参照ピクチャリスト(reference picture list)により指定されることができる。
【0040】
図2は、本文書が適用できるビデオ/画像デコード装置の構成を概説する図である。以下、ビデオデコード装置とは、画像デコード装置を含んでもよい。
【0041】
図2に示すように、ビデオデコード装置200は、エントロピーデコード部(entropy decoding module)210、レジデュアル処理部(residual processing module)220、予測部(prediction module)230、加算部(adder)240、フィルタ部(filtering module)250及びメモリ(memory)260を含む。ここで、レジデュアル処理部220は、再整列部(rearrangement module)221、逆量子化部(dequantization module)222、逆変換部(inverse transform module)223を含む。また、図示されてはいないが、ビデオデコード装置200は、ビデオ情報を含むビットストリームを受信する受信部を含む。前記受信部は、別途のモジュールとして構成されてもよく、又はエントロピーデコード部210に含まれてもよい。
【0042】
ビデオ/画像情報を含むビットストリームが入力されると、ビデオデコード装置200は、ビデオエンコード装置においてビデオ/画像情報が処理されたプロセスに対応してビデオ/画像/ピクチャを復元することができる。
【0043】
例えば、ビデオデコード装置200は、ビデオエンコード装置において適用された処理ユニットを利用してビデオデコードを行うことができる。従って、ビデオデコードの処理ユニットブロックは、一例としてコーディングユニットであり得、他の例としてコーディングユニット、予測ユニット又は変換ユニットであり得る。コーディングユニットは、最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造に応じて分割されることができる。
【0044】
予測ユニット及び変換ユニットが場合によってさらに使われることがあり、この場合、予測ブロックは、コーディングユニットから導出又はパーティショニングされるブロックであって、サンプル予測のユニットであり得る。ここで、予測ユニットは、サブブロックに分けられることもある。変換ユニットは、コーディングユニットからクアッドツリー構造に応じて分割されることができ、変換係数を誘導するユニット又は変換係数からレジデュアル信号を誘導するユニットであり得る。
【0045】
エントロピーデコード部210は、ビットストリームをパーシングしてビデオ復元又はピクチャ復元に必要な情報を出力することができる。例えば、エントロピーデコード部210は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、ビデオ復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。
【0046】
より詳細に、CABACエントロピーデコード方法は、ビットストリームにおいて各シンタックス要素に該当するビンを受信し、デコード対象シンタックス要素情報と周辺及びデコード対象ブロックのデコード情報又は以前段階でデコードされたシンボル/ビンの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに応じてビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行って各シンタックス要素の値に該当するシンボルを生成することができる。ここで、CABACエントロピーデコード方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンタクストモデルのためにデコードされたシンボル/ビンの情報を利用してコンテキストモデルをアップデートすることができる。
【0047】
エントロピーデコード部210でデコードされた情報のうち予測に関する情報は予測部230に提供され、エントロピーデコード部210でエントロピーデコードが行われたレジデュアル値、すなわち、量子化された変換係数は再定列部221に入力される。
【0048】
再整列部221は、量子化されている変換係数を2次元のブロック形態に再整列する。再整列部221は、エンコード装置において行われた係数スキャニングに対応して再整列を行う。ここで、再整列部221は、別途の構成として説明したが、再整列部221は逆量子化部222の一部であってもよい。
【0049】
逆量子化部222は、量子化されている変換係数を(逆)量子化パラメータに基づいて逆量子化して変換係数を出力する。ここで、量子化パラメータを誘導するための情報はエンコード装置からシグナリングされる。
【0050】
逆変換部223は、変換係数を逆変換してレジデュアルサンプルを誘導する。
【0051】
予測部230は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部230において行われる予測の単位はコーディングブロックでもあり得、変換ブロックでもあり得、予測ブロックでもあり得る。
【0052】
予測部230は、前記予測に関する情報に基づいてイントラ予測を適用するかインター予測を適用するかを決定する。ここで、イントラ予測とインター予測のいずれを適用するかを決定する単位と予測サンプルを生成する単位は異なることがある。あわせて、インター予測とイントラ予測において、予測サンプルを生成する単位も異なることがある。例えば、インター予測とイントラ予測のいずれを適用するかはCU単位で決定できる。また、例えば、インター予測において、PU単位で予測モードを決定し、予測サンプルを生成することができ、イントラ予測においてPU単位で予測モードを決定し、TU単位で予測サンプルを生成することもできる。
【0053】
イントラ予測の場合、予測部230は、現在ピクチャ内の周辺参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部230は、現在ブロックの周辺参照サンプルに基づいて方向性モード又は非方向性モードを適用して現在ブロックに対する予測サンプルを誘導することができる。ここで、周辺ブロックのイントラ予測モードを利用して現在ブロックに適用する予測モードが決定されることもある。
【0054】
インター予測の場合、予測部230は、参照ピクチャ上において動きベクトルにより参照ピクチャ上において特定されるサンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部230は、スキップ(skip)モード、マージ(merge)モード及びMVPモードのいずれか1つを適用して現在ブロックに対する予測サンプルを誘導することができる。ここで、ビデオエンコード装置において提供された現在ブロックのインター予測に必要な動き情報、例えば、動きベクトル、参照ピクチャインデックスなどに関する情報は、前記予測に関する情報に基づいて取得又は誘導されることができる。
【0055】
スキップモードとマージモードの場合、周辺ブロックの動き情報が現在ブロックの動き情報として利用されることができる。このとき、周辺ブロックは空間的周辺ブロックと時間的周辺ブロックを含む。
【0056】
予測部230は、可用の周辺ブロックの動き情報でマージ候補リストを構成し、マージインデックスがマージ候補リスト上において指示する情報を現在ブロックの動きベクトルとして使用する。マージインデックスはエンコード装置からシグナリングされる。動き情報は動きベクトルと参照ピクチャを含む。スキップモードとマージモードにおいて時間的周辺ブロックの動き情報が用いられる場合、参照ピクチャリスト上の最上位ピクチャが参照ピクチャとして利用できる。
【0057】
スキップモードの場合、マージモードとは異なって、予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。
【0058】
MVPモードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用いて現在ブロックの動きベクトルが誘導されることができる。ここで、周辺ブロックは、空間的周辺ブロックと時間的周辺ブロックを含む。
【0059】
一例として、マージモードが適用される場合、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルを用いて、マージ候補リストが生成されることができる。マージモードでは、マージ候補リストから選択された候補ブロックの動きベクトルが現在ブロックの動きベクトルとして使用される。前記予測に関する情報は、前記マージ候補リストに含まれた候補ブロックのうち選択された最適な動きベクトルを有する候補ブロックを指示するマージインデックスを含む。ここで、予測部230は、前記マージインデックスを利用して、現在ブロックの動きベクトルを導出することができる。
【0060】
他の例として、MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルを用いて、動きベクトル予測子候補リストが生成されることができる。すなわち、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルは動きベクトル候補として使用できる。前記予測に関する情報は、前記リストに含まれた動きベクトル候補のうち選択された最適の動きベクトルを指示する予測動きベクトルインデックスを含む。ここで、予測部230は、前記動きベクトルインデックスを用いて、動きベクトル候補リストに含まれた動きベクトル候補のうち、現在ブロックの予測動きベクトルを選択することができる。エンコード装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求めることができ、これをエンコードしてビットストリーム形態で出力することができる。すなわち、MVDは、現在ブロックの動きベクトルから前記動きベクトル予測子を減算した値として求められる。ここで、予測部230は、前記予測に関する情報に含まれた動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子の加算により現在ブロックの前記動きベクトルを導出することができる。予測部は、また、参照ピクチャを指示する参照ピクチャインデックスなどを前記予測に関する情報から取得又は誘導することができる。
【0061】
加算部240は、レジデュアルサンプルと予測サンプルを加算して現在ブロック又は現在ピクチャを復元することができる。加算部240は、レジデュアルサンプルと予測サンプルをブロック単位で加算して現在ピクチャを復元することもできる。スキップモードが適用された場合は、レジデュアルが送信されないので、予測サンプルが復元サンプルになり得る。ここでは、加算部240を別途の構成として説明しているが、加算部240は予測部230の一部であってもよい。一方、加算部240は、復元部(reconstruction module)又は復元ブロック生成部と呼ばれてもよい。
【0062】
フィルタ部250は、復元されたピクチャにデブロッキングフィルタリングサンプル適応的オフセット、及び/又はALFなどを適用することができる。ここで、サンプル適応的オフセットは、サンプル単位で適用されてもよく、デブロッキングフィルタリング以後に適用されてもよい。ALFは、デブロッキングフィルタリング及び/又はサンプル適応的オフセット以後に適用されてもよい。
【0063】
メモリ260は、復元ピクチャ(デコードされたピクチャ)又はデコードに必要な情報を格納することができる。ここで、復元ピクチャは、前記フィルタ部250によりフィルタリング手順が完了した復元ピクチャであり得る。例えば、メモリ260は、インター予測に使われるピクチャを格納することができる。ここで、インター予測に使われるピクチャは、参照ピクチャセット又は参照ピクチャリストにより指定されることもできる。復元されたピクチャは、他のピクチャに対する参照ピクチャとして利用できる。また、メモリ260は、復元されたピクチャを出力順序に従って出力することもできる。
【0064】
一方、インター予測の場合、映像の歪みを考慮したインター予測方法が提案されている。具体的に、現在ブロックのサブブロックまたはサンプルポイントに対する動きベクトルを效率的に導き出し、映像の回転、ズームインまたはズームアウトなどの変形にもかかわらず、インター予測の正確度を高めるアフィン動きモデルが提案されている。すなわち、現在ブロックのサブブロックまたはサンプルポイントに対する動きベクトルを導き出すアフィン動きモデルが提案されている。前記アフィン動きモデルを使用する予測は、アフィンインター予測(affine inter prediction)またはアフィンモーション予測(affine motion prediction)と呼ばれることができる。
【0065】
例えば、前記アフィン動きモデルを使用する前記アフィンインター予測は、後述する内容のように、4通りの動き、すなわち、後述する内容のような4通りの変形を效率的に表現できる。
【0066】
図3は、前記アフィン動きモデルを介して表現される動きを例示的に示す。
図3を参照すると、前記アフィン動きモデルを介して表現されることができる動きは、並進(translate)動き、スケール(scale)動き、回転(rotate)動き及びせん断(shear)動きを含むことができる。すなわち、
図3に示す時間の流れに従って、映像(の一部)が平面移動する並進動きだけでなく、時間の流れに従って映像(の一部)がスケール(scale)されるスケール動き、時間の流れに従って映像(の一部)が回転する回転動き、時間の流れに従って映像(の一部)が平衡正方形変形されるせん断動きを前記アフィンインター予測を介して效率的に表現できる。
【0067】
エンコード装置/デコード装置は、前記アフィンインター予測を介して現在ブロックのコントロールポイント(control point、CP)での動きベクトルに基づいて、前記映像の歪み形態を予測でき、これを通じて予測の正確度を高めることによって、映像の圧縮性能を向上させることができる。また、前記現在ブロックの周辺ブロックの動きベクトルを利用して、前記現在ブロックの少なくとも一つのコントロールポイントに対する動きベクトルが誘導されうるので、追加される付加情報に対するデータ量負担を減らし、インター予測効率をかなり向上させることができる。
【0068】
前記アフィンインター予測の一例として、3個のコントロールポイント、すなわち3個の基準点での動き情報を必要とすることができる。
【0069】
図4は、3個のコントロールポイントに対する動きベクトルが使用される前記アフィン動きモデルを例示的に示す。
【0070】
現在ブロック400内の左上端(top-left)サンプル位置(position)を(0,0)とする場合、前記
図4に示すように、(0,0)、(w,0)、(0,h)サンプルポジションを前記コントロールポイントと決めることができる。以下(0,0)サンプルポジションのコントロールポイントは、CP0、(w,0)、サンプルポジションのコントロールポイントは、CP1、(0,h)サンプルポジションのコントロールポイントは、CP2と表すことができる。
【0071】
上述した各コントロールポイントと該当コントロールポイントに対する動きベクトルを利用して、前記アフィン動きモデルに対する式が導き出されることができる。前記アフィン動きモデルに対する式は、次の通りに表すことができる。
【0072】
【0073】
式中、wは、前記現在ブロック400の幅(width)を表し、hは、前記現在ブロック400の高さ(height)を表し、v0x、v0yは、それぞれCP0の動きベクトルのx成分、y成分を表し、v1x、v1yは、それぞれCP1の動きベクトルのx成分、y成分を表し、v2x、v2yは、それぞれCP2の動きベクトルのx成分、y成分を表す。また、xは、前記現在ブロック400内の対象サンプルの位置のx成分を表し、yは、前記現在ブロック400内の前記対象サンプルの前記位置のy成分を表し、vxは、前記現在ブロック400内の前記対象サンプルの動きベクトルのx成分、vyは、現在ブロック400内の前記対象サンプルの前記動きベクトルのy成分を表す。
【0074】
前記CP0の動きベクトル、前記CP1の動きベクトル及び前記CP2の動きベクトルは知っているので、前記式1に基づいて現在ブロック内のサンプル位置に応じる動きベクトルが誘導されることができる。すなわち、前記アフィン動きモデルによると、対象サンプルの座標(x、y)と3個のコントロールポイントとの距離比に基づいて、前記コントロールポイントでの動きベクトルv0(v0x、v0y)、v1(v1x、v1y)、v2(v2x、v2y)がスケーリングされて、前記対象サンプル位置に応じる前記対象サンプルの動きベクトルが導き出されることができる。すなわち、前記アフィン動きモデルによれば、前記コントロールポイントの動きベクトルに基づいて、前記現在ブロック内の各サンプルの動きベクトルが導き出されることができる。一方、前記アフィン動きモデルに応じて導き出された前記現在ブロック内のサンプルの動きベクトルの集合は、アフィン動きベクトルフィールド(affine Motion Vector Field、MVF)と表すことができる。
【0075】
一方、前記式1に対する6個のパラメータは、次の式のようにa、b、c、d、e、fで表すことができ、前記6個のパラメータで表した前記アフィン動きモデルに対する式は、次の通りでありうる。
【0076】
【0077】
式中、wは、前記現在ブロック400の幅(width)を表し、hは、前記現在ブロック400の高さ(height)を表し、v0x、v0yは、それぞれCP0の動きベクトルのx成分、y成分を表し、v1x、v1yは、それぞれCP1の動きベクトルのx成分、y成分を表し、v2x、v2yは、それぞれCP2の動きベクトルのx成分、y成分を表す。また、xは、前記現在ブロック400内の対象サンプルの位置のx成分を表し、yは、前記現在ブロック400内の前記対象サンプルの前記位置のy成分を表し、vxは、前記現在ブロック400内の前記対象サンプルの動きベクトルのx成分、vyは、現在ブロック400内の前記対象サンプルの前記動きベクトルのy成分を表す。
【0078】
前記6個のパラメータを使用する前記アフィン動きモデルまたは前記アフィンインター予測は、6パラメータアフィン動きモデルまたはAF6と表すことができる。
【0079】
また、前記アフィンインター予測の一例として、2個のコントロールポイント、すなわち2個の基準点での動き情報を必要とすることができる。
【0080】
図5は、2個のコントロールポイントに対する動きベクトルが使用される前記アフィン動きモデルを例示的に示す。2個のコントロールポイントを使用する前記アフィン動きモデルは、並進動き、スケール動き、回転動きを含む3通りの動きを表現できる。3通りの動きを表現する前記アフィン動きモデルは、シミラリティアフィン動きモデル(similarity affine motion model)またはシンプリファイドアフィン動きモデル(simplified affine motion model)と表すことができる。
【0081】
現在ブロック500内の左上端(top-left)サンプル位置(position)を(0,0)とする場合、前記
図5に示すように、(0,0)、(w,0)、サンプルポジションを前記コントロールポイントで決めることができる。以下(0,0)サンプルポジションのコントロールポイントは、CP0、(w,0)、サンプルポジションのコントロールポイントは、CP1と表すことができる。
【0082】
上述した各コントロールポイントと該当コントロールポイントに対する動きベクトルを利用して、前記アフィン動きモデルに対する式が導き出されることができる。前記アフィン動きモデルに対する式は、次の通りに表すことができる。
【0083】
【0084】
式中、wは、前記現在ブロック500の幅(width)を表し、v0x、v0yは、それぞれCP0の動きベクトルのx成分、y成分を表し、v1x、v1yは、それぞれCP1の動きベクトルのx成分、y成分を表す。また、xは、前記現在ブロック500内の対象サンプルの位置のx成分を表し、yは、前記現在ブロック500内の前記対象サンプルの前記位置のy成分を表し、vxは、前記現在ブロック500内の前記対象サンプルの動きベクトルのx成分、vyは、現在ブロック500内の前記対象サンプルの前記動きベクトルのy成分を表す。
【0085】
一方、前記式3に対する4個のパラメータは、次の式のようにa、b、c、dで表すことができ、前記4個のパラメータで表した前記アフィン動きモデルに対する式は、次の通りでありうる。
【0086】
【0087】
式中、wは、前記現在ブロック500の幅(width)を表し、v0x、v0yは、それぞれCP0の動きベクトルのx成分、y成分を表し、v1x、v1yは、それぞれCP1の動きベクトルのx成分、y成分を表す。また、xは、前記現在ブロック500内の対象サンプルの位置のx成分を表し、yは、前記現在ブロック500内の前記対象サンプルの前記位置のy成分を表し、vxは、前記現在ブロック500内の前記対象サンプルの動きベクトルのx成分、vyは、現在ブロック500内の前記対象サンプルの前記動きベクトルのy成分を表す。前記2個のコントロールポイントを使用する前記アフィン動きモデルは、前記式4のように4個のパラメータa、b、c、dで表れることができるから、前記4個のパラメータを使用する前記アフィン動きモデルまたは前記アフィンインター予測は、4パラメータアフィン動きモデルまたはAF4と表すことができる。すなわち、前記アフィン動きモデルによれば、前記コントロールポイントの動きベクトルに基づいて、前記現在ブロック内の各サンプルの動きベクトルが導き出されることができる。一方、前記アフィン動きモデルに応じて導き出された前記現在ブロック内のサンプルの動きベクトルの集合は、アフィン動きベクトルフィールド(Motion Vector Field、MVF)と表すことができる。
【0088】
一方、上述した内容のように、前記アフィン動きモデルを介してサンプル単位の動きベクトルが導き出されることができ、これによりインター予測の正確度がかなり向上することができる。ただし、この場合、動き補償(motion compensation)過程での複雑度が大きく増加しうる。
【0089】
このため、サンプル単位の動きベクトルが導き出される代わりに、前記現在ブロック内のサブブロック単位の動きベクトルが導き出されるように制限できる。
【0090】
図6は、前記アフィン動きモデルに基づいてサブブロック単位で動きベクトルを誘導する方法を例示的に示す。
図6は、前記現在ブロックのサイズが16×16で、4×4サブブロック単位で動きベクトルが誘導される場合を例示的に示す。前記サブブロックは、多様なサイズに設定されることができ、例えば、サブブロックがn×nサイズ(nは、正の整数、ex、nは、4)に設定された場合、前記アフィン動きモデルに基づいて現在ブロック内のn×nサブブロック単位で動きベクトルが導き出されることができ、各サブブロックを代表する動きベクトルを誘導するための多様な方法が適用されることができる。
【0091】
例えば、
図6を参照すると、各サブブロックのセンターまたはセンター右下側(lower right side)サンプルポジションを代表座標として、各サブブロックの動きベクトルが導き出されることができる。ここで、センター右下側ポジションとは、サブブロックのセンターに位置する4個のサンプルのうち、右下側に位置するサンプルポジションを表すことができる。例えば、nが奇数の場合、サブブロックの真ん中には、一つのサンプルが位置でき、この場合、センターサンプルポジションが前記サブブロックの動きベクトルの導出のために使用されることができる。しかし、nが偶数の場合、サブブロックの中央には、4個のサンプルが隣接して位置でき、この場合、右下側サンプルポジションが前記動きベクトルの導出のために使用されることができる。例えば、
図6を参照すると、各サブブロック別代表座標は、(2,2)、(6,2)、(10,2),...,(14,14)に導き出されることができ、エンコード装置/デコード装置は、前記サブブロックの代表座標の各々を上述した式1または3に代入して、各サブブロックの動きベクトルを導き出すことができる。前記アフィン動きモデルを介して導き出された現在ブロック内のサブブロックの動きベクトルは、アフィンMVFと表すことができる。
【0092】
一方、一例として、前記現在ブロック内のサブブロックのサイズは、次のような式に基づいて導き出されることもできる。
【0093】
【0094】
式中、Mは、サブブロックの幅(width)を表し、Nは、サブブロックの高さ(height)を表す。また、v0x、v0yは、各々前記現在ブロックのCPMV0のx成分、y成分を表し、v0x、v0yは、各々前記現在ブロックのCPMV1のx成分、y成分を表し、wは、前記現在ブロックの幅を表し、hは、前記現在ブロックの高さを表し、MvPreは、動きベクトル分数正確度(motion vector fraction accuracy)を表す。例えば、前記動きベクトル分数正確度は、1/16に設定されることができる。
【0095】
一方、上述したアフィン動きモデルを使用したインター予測、すなわち、アフィン動き予測は、アフィンマージモード(affine merge mode、AF_MERGE)とアフィンインターモード(affine inter mode、AF_INTER)が存在できる。ここで、前記アフィンインターモードは、アフィンMVPモード(affine motion vector prediction mode、AF_MVP)と表すことができる。
【0096】
前記アフィンマージモードでは、前記コントロールポイントの動きベクトルに対するMVDを転送しないという側面において、従来のマージモードと似ている。すなわち、前記アフィンマージモードは、従来のスキップ(skip)/マージ(merge)モードと同様にMVD(motion vector difference)に対するコーディングなしで前記現在ブロックの周辺ブロックから2個または3個のコントロールポイントの各々に対するCPMVを誘導して予測を行うエンコード/デコード方法を表すことができる。
【0097】
例えば、前記現在ブロックに前記AF_MRGモードが適用される場合、現在ブロックの周辺ブロックのうち、アフィンモードが適用された周辺ブロックからCP0及びCP1に対したMV(すなわち、CPMV0及びCPMV1)を導き出すことができる。すなわち、前記アフィンモードが適用された前記周辺ブロックのCPMV0及びCPMV1がマージ候補として導き出されることができ、前記マージ候補が前記現在ブロックに対するCPMV0及びCPMV1として導き出されることができる。
【0098】
前記アフィンインターモードは、前記コントロールポイントの動きベクトルに対するMVP(motion vector predictor)を導き出し、受信されたMVD(motion vector difference)及び前記MVPに基づいて前記コントロールポイントの動きベクトルを導き出し、前記コントロールポイントの動きベクトルに基づいて、前記現在ブロックのアフィンMVFを導き出して、アフィンMVFに基づいて予測を行うインター予測を表すことができる。ここで、前記コントロールポイントの動きベクトルは、CPMV(Control Point Motion Vector)、前記コントロールポイントのMVPは、CPMVP(Control Point Motion Vector Predictor)、前記コントロールポイントのMVDは、CPMVD(Control Point Motion Vector Difference)と表すことができる。具体的に、例えば、エンコード装置は、CP0及びCP1(または、CP0、CP1及びCP2)の各々に対するCPMVP(control point point motion vector predictor)とCPMV(control point point motion vector)を導き出すことができ、前記CPMVPに対した情報及び/または前記CPMVPとCPMVの差値であるCPMVDを転送または格納することができる。
【0099】
ここで、現在ブロックに前記アフィンインターモードが適用される場合、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックに基づいて、アフィンMVP候補リストを構成でき、アフィンMVP候補は、CPMVPペア(pair)候補として指し示すことができ、アフィンMVP候補リストは、CPMVP候補リストとして指し示すこともできる。
【0100】
また、各アフィンMVP候補は、4パラメータアフィン動きモデル(foul parameter affine motion model)では、CP0とCP1のCPMVPの組み合わせを意味でき、6パラメータアフィン動きモデル(six parameter affine motion model)では、CP0、CP1及びCP2のCPMVPの組み合わせを意味できる。
【0101】
図7は、本文書の一実施形態によるアフィン動き予測方法のフローチャートを例示的に示す。
【0102】
図7を参照すると、アフィン動き予測方法は、大きく次の通りに表すことができる。アフィン動き予測方法が始まると、まずCPMVペア(pair)が獲得されうる(S700)。ここで、CPMVペアは、4パラメータアフィンモデルを利用する場合、CPMV0及びCPMV1を含むことができる。
【0103】
以後、CPMVペアに基づいてアフィン動き補償が行われることができ(S710)、アフィン動き予測が終了できる。
【0104】
また、前記CPMV0及び前記CPMV1を決定するために、2個のアフィン予測モードが存在できる。ここで、2個のアフィン予測モードは、アフィンインターモード及びアフィンマージモードを含むことができる。アフィンインターモードは、CPMV0及びCPMV1に対した2個の動きベクトル差分(MVD、Motion Vector Difference)情報をシグナリングして、明確にCPMV0及びCPMV1を決定できる。反面、アフィンマージモードは、MVD情報シグナリング無しでCPMVペアを導き出すことができる。
【0105】
換言すれば、アフィンマージモードは、アフィンモードでコーディングされた周辺ブロックのCPMVを利用して、現在ブロックのCPMVを導き出すことができ、動きベクトルをサブブロック単位で決定する場合、アフィンマージモードは、サブブロックマージモードと指し示すこともできる。
【0106】
アフィンマージモードにおいてエンコード装置は、現在ブロックのCPMVを導き出すためのアフィンモードでコーディングされた周辺ブロックに対するインデックスをデコード装置にシグナリングでき、周辺ブロックのCPMV及び現在ブロックのCPMV間の差分値をさらにシグナリングすることもできる。ここで、アフィンマージモードは、周辺ブロックに基づいてアフィンマージ候補リストを構成でき、周辺ブロックに対するインデックスは、アフィンマージ候補リストのうち、現在ブロックのCPMVを導き出すために参照する周辺ブロックを表すことができる。アフィンマージ候補リストは、サブブロックマージ候補リストと指し示すこともできる。
【0107】
アフィンインターモードは、アフィンMVPモードと指し示すこともできる。アフィンMVPモードにおいて現在ブロックのCPMVは、CPMVP(Control Point Motion Vector Predictor)及びCPMVD(Control Point Motion Vector Difference)に基づいて導き出されることができる。換言すれば、エンコード装置は、現在ブロックのCPMVに対してCPMVPを決定し、現在ブロックのCPMVとCPMVPの差分値であるCPMVDを導き出して、CPMVPに対した情報及びCPMVDに対した情報をデコード装置にシグナリングできる。ここで、前記アフィンMVPモードは、周辺ブロックに基づいてアフィンMVP候補リストを構成でき、CPMVPに対した情報は、アフィンMVP候補リストのうち、現在ブロックのCPMVに対したCPMVPを導き出すために参照する周辺ブロックを表すことができる。アフィンMVP候補リストは、コントロールポイント動きベクトル予測子候補リストと指し示すこともできる。
【0108】
例えば、6パラメータアフィン動きモデルのアフィンインターモードが適用される場合、後述するように現在ブロックがエンコードされることができる。
【0109】
図8は、本文書の一実施形態によるコントロールポイントでの動きベクトル予測子を導き出す方法を説明するための図である。
【0110】
図8を参照すると、現在ブロックのCP0の動きベクトルをv
0、CP1の動きベクトルをv
1、左下端(bottom-left)サンプルポジションのコントロールポイントの動きベクトルをv
2、CP2の動きベクトルをv
3と表現できる。すなわち、前記v
0は、CP0のCPMVP、前記v
1は、CP1のCPMVP、前記v
2は、CP2のCPMVPを表すことができる。
【0111】
アフィンMVP候補は、前記CP0のCPMVP候補、前記CP1のCPMVP候補、前記CP2の候補の組み合わせでありうる。
【0112】
例えば、前記アフィンMVP候補は、次の通りに導き出されることができる。
【0113】
具体的に、次の式のように、最大12個のCPMVP候補の組み合わせが決定されることができる。
【0114】
【0115】
ここで、vAは、周辺ブロックAの動きベクトル、vBは、周辺ブロックBの動きベクトル、vCは、周辺ブロックCの動きベクトル、vDは、周辺ブロックDの動きベクトル、vEは、周辺ブロックEの動きベクトル、vFは、周辺ブロックFの動きベクトル、vGは、周辺ブロックGの動きベクトルを表すことができる。
【0116】
また、前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを表すことができ、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを表すことができ、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左側に位置する周辺ブロックを表すことができる。また、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを表すことができ、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを表すことができる。また、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左側に位置する周辺ブロックを表すことができ、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを表すことができる。
【0117】
すなわち、上述した式6を参照すると、前記CP0のCPMVP候補は、前記周辺ブロックAの動きベクトルvA、前記周辺ブロックBの動きベクトルvB及び/または前記周辺ブロックCの動きベクトルvCを含むことができ、前記CP1のCPMVP候補は、前記周辺ブロックDの動きベクトルvD、及び/または前記周辺ブロックEの動きベクトルvEを含むことができ、前記CP2のCPMVP候補は、前記周辺ブロックFの動きベクトルvF、及び/または前記周辺ブロックGの動きベクトルvGを含むことができる。
【0118】
換言すれば、前記CP0のCPMVP v0は、左上端サンプルポジションの周辺ブロックA、B、及びCのうち、少なくとも一つの動きベクトルに基づいて導き出されることができる。ここで、周辺ブロックAは、現在ブロックの左上端サンプルポジションの左上端に位置するブロックを意味でき、周辺ブロックBは、現在ブロックの左上端サンプルポジションの上端に位置するブロックを意味でき、周辺ブロックCは、現在ブロックの左上端サンプルポジションの左側に位置するブロックを意味できる。
【0119】
前記周辺ブロックの動きベクトルに基づいて前記CP0のCPMVP候補、前記CP1のCPMVP候補、前記CP2のCPMVP候補を含む最大12個のCPMVP候補組み合わせが導き出されることができる。
【0120】
以後、導き出されたCPMVP候補組み合わせをDVが小さな順に整列して、上位2個のCPMVP候補組み合わせが前記アフィンMVP候補として導き出されることができる。
【0121】
CPMVP候補組み合わせのDVは、次の式のように導き出されることができる。
【0122】
【0123】
以後、エンコード装置は、前記アフィンMVP候補の各々に対するCPMVを決定でき、前記CPMVに対するRD(Rate Distortion)コストを比較して、小さなRDコストを有するアフィンMVP候補を前記現在ブロックに対する最適のアフィンMVP候補として選択できる。エンコード装置は、前記最適の候補を指すインデックス及びCPMVDをエンコード及びシグナリングできる。
【0124】
また、例えば、アフィンマージモードが適用される場合、後述するように現在ブロックがエンコードされることができる。
【0125】
図9は、本文書の一実施形態によるコントロールポイントでの動きベクトル予測子を導き出す方法を説明するための図である。
【0126】
図9に示す現在ブロックの周辺ブロックに基づいて、前記現在ブロックのアフィンマージ候補リストが構成されることができる。前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックEを含むことができる。前記周辺ブロックAは、前記現在ブロックの左側周辺ブロック、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロック、前記周辺ブロックCは、前記現在ブロックの右上側コーナー周辺ブロック、前記周辺ブロックDは、前記現在ブロックの左下側コーナー周辺ブロック、前記周辺ブロックEは、前記現在ブロックの左上側コーナー周辺ブロックを表すことができる。
【0127】
例えば、前記現在ブロックのサイズがWxHであり、現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0の場合、前記左側周辺ブロックは、(-1、H-1)座標のサンプルを含むブロックで、前記上側周辺ブロックは、(W-1、-1)座標のサンプルを含むブロックで、前記右上側コーナー周辺ブロックは、(W、-1)座標のサンプルを含むブロックで、前記左下側コーナー周辺ブロックは、(-1、H)座標のサンプルを含むブロックで、前記左上側コーナー周辺ブロックは、(-1、-1)座標のサンプルを含むブロックでありうる。
【0128】
具体的に、例えば、エンコード装置は、前記現在ブロックの周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックEを特定スキャニング順にスキャニングでき、スキャニング順序において第1番目にアフィン予測モードでエンコードされた周辺ブロックをアフィンマージモードの候補ブロック、すなわち、アフィンマージ候補として決定できる。ここで、例えば、前記特定スキャニング順序は、アルファベット(alphabet)の順でありうる。すなわち、前記特定スキャニング順序は、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックEの順でありうる。
【0129】
以後、エンコード装置は、前記決定された候補ブロックのCPMVを利用して、前記現在ブロックのアフィン動きモデルを決定でき、前記アフィン動きモデルに基づいて前記現在ブロックのCPMVを決定でき、前記CPMVに基づいて前記現在ブロックのアフィンMVFを決定できる。
【0130】
一例として、周辺ブロックAが前記現在ブロックの候補ブロックとして決定された場合、後述するようにコーディングされることができる。
【0131】
図10は、周辺ブロックAがアフィンマージ候補として選択された場合に行われるアフィン予測の一例を示す。
【0132】
図10を参照すると、エンコード装置は、前記現在ブロックの周辺ブロックAを候補ブロックとして決定でき、前記周辺ブロックのCPMV、v
2及びv
3に基づいて前記現在ブロックのアフィン動きモデルを導き出すことができる。以後、エンコード装置は、前記アフィン動きモデルに基づいて前記現在ブロックのCPMV、v
0及びv
1を決定できる。エンコード装置は、前記現在ブロックのCPMV、v
0及びv
1に基づいてアフィンMVFを決定でき、前記アフィンMVFに基づいて前記現在ブロックに対するエンコード過程を行うことができる。
【0133】
一方、アフィンインター予測に関連してアフィンMVP候補リスト構成に対して継承されたアフィン候補(inherited affine candidate)とコンストラクテッドアフィン候補(constructed affine candidate)が考慮されている。
【0134】
ここで、前記継承されたアフィン候補は、次の通りでありうる。
【0135】
例えば、前記現在ブロックの周辺ブロックがアフィンブロックで、前記現在ブロックの参照ピクチャと前記周辺ブロックの参照ピクチャとが同じ場合、前記周辺ブロックのアフィンモーションモデルから前記現在ブロックのアフィンMVPペアが決定されることができる。ここで、前記アフィンブロックは、前記アフィンインター予測が適用されたブロックを表すことができる。前記継承されたアフィン候補は、前記周辺ブロックのアフィン動きモデルに基づいて導き出されたCPMVP(例えば、前記アフィンMVPペア)を表すことができる。
【0136】
具体的に、一例として、後述するように前記継承されたアフィン候補が導き出されることができる。
【0137】
図11は、前記継承されたアフィン候補を導き出すための周辺ブロックを例示的に示す。
【0138】
図11を参照すると、前記現在ブロックの周辺ブロックは、前記現在ブロックの左側周辺ブロックA0、前記現在ブロックの左下側コーナー周辺ブロックA1、前記現在ブロックの上側周辺ブロックB0、前記現在ブロックの右上側コーナー周辺ブロックB1、前記現在ブロックの左上側コーナー周辺ブロックB2を含むことができる。
【0139】
例えば、前記現在ブロックのサイズがWxHであり、現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0の場合、前記左側周辺ブロックは、(-1、H-1)座標のサンプルを含むブロックで、前記上側周辺ブロックは、(W-1、-1)座標のサンプルを含むブロックで、前記右上側コーナー周辺ブロックは、(W、-1)座標のサンプルを含むブロックで、前記左下側コーナー周辺ブロックは、(-1、H)座標のサンプルを含むブロックで、前記左上側コーナー周辺ブロックは、(-1、-1)座標のサンプルを含むブロックでありうる。
【0140】
エンコード装置/デコード装置は、周辺ブロックA0、A1、B0、B1及びB2を順次にチェックでき、周辺ブロックがアフィン動きモデルを使用してコーディングされ、前記現在ブロックの参照ピクチャと前記周辺ブロックの参照ピクチャが同じ場合、前記周辺ブロックのアフィン動きモデルに基づいて、前記現在ブロックの2個のCPMVまたは3個のCPMVを導き出すことができる。前記CPMVは、前記現在ブロックのアフィンMVP候補として導き出されることができる。前記アフィンMVP候補は、前記継承されたアフィン候補を表すことができる。
【0141】
一例として、前記周辺ブロックに基づいて最大2個の継承されたアフィン候補が導き出されることができる。
【0142】
例えば、エンコード装置/デコード装置は、周辺ブロック内の第1ブロックに基づいて前記現在ブロックの第1アフィンMVP候補を導き出すことができる。ここで、前記第1ブロックは、アフィン動きモデルでコーディングされることができ、前記第1ブロックの参照ピクチャは、前記現在ブロックの参照ピクチャと同一なものでありうる。すなわち、前記第1ブロックは、特定順序に応じて前記周辺ブロックをチェックして、初めて確認された条件を満たすブロックでありうる。前記条件は、アフィン動きモデルでコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一なものでありうる。
【0143】
以後、エンコード装置/デコード装置は、周辺ブロック内の第2ブロックに基づいて、前記現在ブロックの第2アフィンMVP候補を導き出すことができる。ここで、前記第2ブロックは、アフィン動きモデルでコーディングされることができ、前記第2ブロックの参照ピクチャは、前記現在ブロックの参照ピクチャと同一なものでありうる。すなわち、前記第2ブロックは、特定順序に応じて前記周辺ブロックをチェックして、第2番目に確認された条件を満たすブロックでありうる。前記条件は、アフィン動きモデルでコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一なものでありうる。
【0144】
一方、例えば、前記継承されたアフィン候補の可用の個数が2よりも小さい場合(すなわち、導出された継承されたアフィン候補の個数が2より小さい場合)、コンストラクテッドアフィン候補(constructed affine candidate)が考慮される。前記構成されたアフィン候補は以下のように導出される。
【0145】
図12は、前記コンストラクテッドアフィン候補に対する空間的候補を例示的に示す。
【0146】
図12に示すように、前記現在ブロックの周辺ブロックの動きベクトルは3つのグループに分けられる。
図12を参照すると、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。
【0147】
前記周辺ブロックAは前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示す。また、前記周辺ブロックDは前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示す。また、前記周辺ブロックFは前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0148】
例えば、前記3つのグループはS0、S1、S2を含み、前記S0、前記S1、前記S2は次の表のように導出される。
【0149】
【0150】
ここで、mvAは前記周辺ブロックAの動きベクトル、mvBは前記周辺ブロックBの動きベクトル、mvCは前記周辺ブロックCの動きベクトル、mvDは前記周辺ブロックDの動きベクトル、mvEは前記周辺ブロックEの動きベクトル、mvFは前記周辺ブロックFの動きベクトル、mvGは前記周辺ブロックGの動きベクトルを示す。前記S0は第1グループ、S1は第2グループ、前記S2は第3グループと示してもよい。
【0151】
エンコード装置/デコード装置は、前記S0からmv0を導出し、S1からmv1を導出し、S2からmv2を導出し、前記mv0、前記mv1、前記mv2を含むアフィンMVP候補を導出する。前記アフィンMVP候補は、前記コンストラクテッドアフィン候補を示すことができる。また、前記mv0はCP0のCPMVP候補であり、前記mv1はCP1のCPMVP候補であり、前記mv2はCP2のCPMVP候補であり得る。
【0152】
ここで、前記mv0に対する参照ピクチャは前記現在ブロックの参照ピクチャと同一であり得る。すなわち、前記mv0は特定の順序に従って前記S0内の動きベクトルをチェックして1番目に確認された条件を満たす動きベクトルであり得る。前記条件は、動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。前記特定順序は、前記S0において前記周辺ブロックA→前記周辺ブロックB→前記周辺ブロックCであり得る。また、前述した順序以外の順序で行われてもよく、前述した例に限定されない。
【0153】
また、前記mv1に対する参照ピクチャは、前記現在ブロックの参照ピクチャと同一であり得る。すなわち、前記mv1は、特定順序に従って前記S1内の動きベクトルをチェックして1番目に確認された条件を満たす動きベクトルであり得る。前記条件は、動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。前記特定順序は、前記S1において前記周辺ブロックD→前記周辺ブロックEであり得る。また、前述した順序以外の順序で行われてもよく、前述した例に限定されない。
【0154】
また、前記mv2に対する参照ピクチャは、前記現在ブロックの参照ピクチャと同一であり得る。すなわち、前記mv2は、特定順序に従って前記S2内の動きベクトルをチェックして1番目に確認された条件を満たす動きベクトルであり得る。前記条件は、動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。前記特定順序は、前記S2において前記周辺ブロックF→前記周辺ブロックGであり得る。また、前述した順序以外の順序で行われてもよく、前述した例に限定されない。
【0155】
一方、前記mv0及び前記mv1のみが可用である場合、すなわち、前記mv0及び前記mv1のみが導出される場合、前記mv2は次の数式のように導出される。
【0156】
【0157】
ここで、mv2
xは前記mv2のx成分を示し、mv2
yは前記mv2のy成分を示し、mv0
xは前記mv0のx成分を示し、mv0
yは前記mv0のy成分を示し、mv1
xは前記mv1のx成分を示し、mv1
yは前記mv1のy成分を示す。また、wは前記現在ブロックの幅を示し、hは前記現在ブロックの高さを示す。
【0158】
一方、前記mv0及び前記mv2のみが導出される場合、前記mv1は次の数式のように導出される。
【0159】
【0160】
ここで、mv1
xは前記mv1のx成分を示し、mv1
yは前記mv1のy成分を示し、mv0
xは前記mv0のx成分を示し、mv0
yは前記mv2のy成分を示し、mv2
xは前記mv2のx成分を示し、mv2
yは前記mv2のy成分を表す。また、wは前記現在ブロックの幅を示し、hは前記現在ブロックの高さを示す。
【0161】
また、可用の(available)前記継承されたアフィン候補及び/又は、前記コンストラクテッドアフィン候補の数が2より小さい場合、既存のHEVC標準のAMVP過程が前記アフィンMVPリスト構成に適用できる。すなわち、可用の(available)前記継承されたアフィン候補及び/又はコンストラクテッドアフィン候補の数が2より小さい場合、既存のHEVC標準におけるMVP候補を構成する過程が行われることができる。
【0162】
一方、前述したアフィンMVPリストを構成する実施形態のフローチャートは後述の通りである。
【0163】
図13は、アフィンMVPリストを構成する一例を例示的に示す。
【0164】
図13に示すように、エンコード装置/デコード装置は、現在ブロックのアフィンMVPリストに継承された候補(inherited candidate)を追加する(S1300)。前記継承された候補は、前述の継承されたアフィン候補を示す。
【0165】
具体的には、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックから最大2つの継承されたアフィン候補を導出する。ここで、前記周辺ブロックは、前記現在ブロックの左側周辺ブロックA0、左下側コーナー周辺ブロックA1、上側周辺ブロックB0、右上側コーナー周辺ブロックB1及び左上側コーナー周辺ブロックB2を含む。
【0166】
例えば、エンコード装置/デコード装置は、周辺ブロック内の第1ブロックに基づいて前記現在ブロックの第1アフィンMVP候補を導出する。ここで、前記第1ブロックはアフィン動きモデルにコーディングされ、前記第1ブロックの参照ピクチャは前記現在ブロックの参照ピクチャと同一であり得る。すなわち、前記第1ブロックは、特定順序に従って前記周辺ブロックをチェックして1番目に確認された条件を満たすブロックであり得る。前記条件は、アフィン動きモデルにコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0167】
以後、エンコード装置/でコード装置は、周辺ブロック内の第2ブロックに基づいて前期現在ブロックの第2アフィンMVP候補を導出する。ここで、前記第2ブロックは、アフィン動きモデルにコーディングされ、前記第2ブロックの参照ピクチャは、前記現在ブロックの参照ピクチャと同一であり得る。すなわち、前記第2ブロックは、特定順序に従って前記周辺ブロックをチェックして2番目に確認された条件を満たすブロックであり得る。前記条件は、アフィン動きモデルにコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0168】
一方、前記特定順序は、左側周辺ブロックA0→左下側コーナー周辺ブロックA1→上側周辺ブロックB0→右上側コーナー周辺ブロックB1→左上側コーナー周辺ブロックB2であり得る。また、前述の順序以外の順序で行われてもよく、前述の例に限定されない。
【0169】
エンコード装置/デコード装置は、現在ブロックのアフィンMVPリストにコンストラクテッド候補(constructed candidate)を追加できる(S1310)。前記コンストラクテッド候補は、前述のコンストラクテッドアフィン候補を示す。前記コンストタクテッド候補は、コンストラクテッドアフィンMVP候補と示すこともできる。可用の継承された候補の個数が2つより小さい場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにコンストラクテッド候補(constructed candidate)を追加することができる。
【0170】
一方、前記現在ブロックに適用されるアフィン動きモデルが6アフィン動きモデルであるか又は4アフィン動きモデルであるかに応じて、前記コンストラクテッドアフィン候補を導出する方法が異なる可能性がある。前記コンストラクテッド候補を導出する方案に関する詳細内容は後述する。
【0171】
エンコード装置/デコード装置は、現在ブロックのアフィンMVPリストにHEVC AMVP候補を追加する(S1320)。可用の継承された候補及び/又はコンストラクテッド候補の個数が2つより小さい場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにHEVC AMVP候補を追加する。すなわち、可用の継承された候補及び/又はコンストラクテッド候補の個数が2つより小さい場合、エンコード装置/デコード装置は、既存のHEVC標準でのMVP候補を構成する過程を行うことができる。
【0172】
一方、前記コンストラクテッド候補を導出する方案は、以下のようである。
【0173】
例えば、前記現在ブロックに適用されるアフィン動きモデルが6アフィン動きモデルである場合、
図14に示す実施形態のように前記コンストラクテッド候補が導出される。
【0174】
図14は、前記コンストラクテッド候補を導出する一例を示す。
【0175】
図14に示すように、エンコード装置/デコード装置は、前記現在ブロックに対するmv
0、mv
1、mv
2をチェックする(S1400)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv
0、mv
1、mv
2が存在するか否かを判断できる。ここで、前記mv
0は、前記現在ブロックのCP0のCPMVP候補であり、前記mv
1はCP1のCPMVP候補であり、前記mv
2はCP2のCPMVP候補であり得る。また、前記mv
0、前記mv
1、前記mv
2は、前記CPに対する候補動きベクトルであると示すことができる。
【0176】
例えば、エンコード装置/デコード装置は、第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックすることができる。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出することができる。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0177】
また、例えば、エンコード装置/デコード装置は、第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出することができる。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0178】
また、例えば、エンコード装置/デコード装置は、第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0179】
一方、前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記周辺ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0180】
前記現在ブロックに対する前記mv0及び前記mv1のみが可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv1のみが導出された場合、エンコード装置/デコード装置は、前述した数式8に基づいて前記現在ブロックに対するmv2を導出する(S1410)。エンコード装置/デコード装置は、前述した数式8に前記導出されたmv0及び前記mv1を代入して前記mv2を導出する。
【0181】
前記現在ブロックに対する前記mv0及び前記mv2のみが可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv2のみが導出された場合、エンコード装置/デコード装置は、前述の数式9に基づいて前記現在ブロックに対するmv1を導出する(S1420)。エンコード装置/デコード装置は、前述した数式9に前記導出されたmv0及び前記mv2を代入して前記mv1を導出する。
【0182】
エンコード装置/デコード装置は、前記導出されたmv0、mv1及びmv2を前記現在ブロックのコンストラクテッド候補として導出する(S1430)。前記mv0、前記mv1及び前記mv2が可用である場合、すなわち、前記現在ブロックの周辺ブロックに基づいて前記mv0、前記mv1及び前記mv2が導出された場合、エンコード装置/デコード装置は、前記導出されたmv0、前記mv1及び前記mv2を前記現在ブロックのコンストラクテッド候補として導出する。
【0183】
また、前記現在ブロックに対する前記mv0及び前記mv1のみが可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv1のみが導出された場合、エンコード装置/デコード装置は、前記導出されたmv0、前記mv1と前述の数式8に基づいて導出されたmv2を前記現在ブロックの前記コンストラクテッド候補として導出する。
【0184】
また、前記現在ブロックに対する前記mv0及び前記mv2のみが可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv2のみが導出された場合、エンコード装置/デコード装置は、前記導出されたmv0、前記mv2と前述した数式9に基づいて導出されたmv1を前記現在ブロックの前記コンストラクテッド候補として導出する。
【0185】
また、例えば、前記現在ブロックに適用されるアフィン動きモデルが4アフィン動きモデルである場合、
図15に示す実施形態のように前記コンストラクテッド候補が導出されることができる。
【0186】
図15は、前記コンストラクテッド候補を導出する一例を示す。
【0187】
図15に示すように、エンコード装置/デコード装置は、前記現在ブロックに対するmv
0、mv
1、mv
2をチェックする(S1500)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv
0、mv
1、mv
2が存在するか否かを判断する。ここで、前記mv
0は前記現在ブロックのCP0のCPMVP候補であり、前記mv
1はCP1のCPMVP候補であり、前記mv
2はCP2のCPMVP候補であり得る。
【0188】
例えば、エンコード装置/デコード装置は、第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0189】
また、例えば、エンコード装置/デコード装置は、第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出する。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0190】
また、例えば、エンコード装置/デコード装置は、第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0191】
一方、前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記周辺ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0192】
前記現在ブロックに対する前記mv0及び前記mv1のみが可用である場合、又は、前記現在ブロックに対する前記mv0、前記mv1及び前記mv2が可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv1が導出された場合、又は、前記現在ブロックに対する前記mv0、前記mv1及び前記mv2が導出された場合、エンコード装置は、前記導出されたmv0、前記mv1を現在ブロック候補として導出する(S1510)。
【0193】
一方、前記現在ブロックに対する前記mv0及び前記mv2のみが可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv2のみが導出された場合、エンコード装置/デコード装置は、前述の数式9に基づいて前記現在ブロックに対するmv1を導出する(S1520)。エンコード装置/デコード装置は、前述の数式9に前記導出されたmv0及び前記mv2を代入して前記mv1を導出する。
【0194】
以後、エンコード装置/デコード装置は、前記導出されたmv0及びmv1を前記現在ブロックのコンストラクテッド候補として導出する(S1510)。
【0195】
一方、本文書においては、前述の実施形態とは異なるコンスタラクテッド候補を導出する方案が提案される。提案される実施形態は、前述のコンストラクテッド候補を導出する実施形態に比べて複雑度を減らしてコーディング性能を向上させる。前記提案される実施形態は後述の通りである。また、前記継承されたアフィン候補の可用の個数が2より小さい場合(すなわち、導出された継承されたアフィン候補の個数が2より小さい場合)、コンストラクテッドアフィン候補(constructed affine candidate)が考慮される。
【0196】
例えば、エンコード装置/デコード装置は前記現在ブロックに対するmv0、mv1、mv2をチェックする。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv0、mv1、mv2が存在するか否かを判断する。ここで、前記mv0は前記現在ブロックのCP0のCPMVP候補であり、前記mv1はCP1のCPMVP候補であり、前記mv2はCP2のCPMVP候補であり得る。
【0197】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0198】
エンコード装置/デコード装置は、前記第1グループにおいて可用のmv0が存在するか否かを判断し、前記第2グループにおいて可用のmv1が存在するか否かを判断し、前記第3グループにおいて可用のmv2が存在するか否かを判断する。
【0199】
具体的には、例えば、エンコード装置/デコード装置は、第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0200】
また、エンコード装置/デコード装置は、第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出することができる。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0201】
また、エンコード装置/デコード装置は、第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0202】
以後、前記現在ブロックに適用されるアフィン動きモデルが4アフィン動きモデルである場合、前記現在ブロックに対するmv0及びmv1が可用であると、エンコード装置/デコード装置は、前記導出されたmv0及びmv1を前記現在ブロックのコンストラクテッド候補として導出する。一方、前記現在ブロックに対するmv0及び/又はmv1が可用でない場合、すなわち、前記現在ブロックの周辺ブロックからmv0及びmv1の少なくとも1つが導出されない場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにコンストラクテッド候補を追加しない。
【0203】
また、前記現在ブロックに適用されるアフィン動きモデルが6アフィン動きモデルである場合、前記現在ブロックに対するmv0、mv1及びmv2が可用であると、エンコード装置/デコード装置は、前記導出されたmv0、mv1及びmv2を前記現在ブロックのコンストラクテッド候補として導出する。一方、前記現在ブロックに対するmv0、mv1及び/又はmv2が可用でない場合、すなわち、前記現在ブロックの周辺ブロックからmv0、mv1及びmv2の少なくとも1つが導出されない場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにコンストラクテッド候補を追加しない。
【0204】
前述の提案された実施形態は、前記現在ブロックのアフィン動きモデルを生成するためのCPの動きベクトルが全て可能である場合にのみコンストラクテッド候補として考慮する方法である。ここで、可用(available)の意味は、周辺ブロックの参照ピクチャと現在ブロックの参照ピクチャが同一であることを示す。すなわち、前記コンストラクテッド候補は、前記現在ブロックのCPのそれぞれに対する周辺ブロックの動きベクトルのうち前記条件を満たす動きベクトルが存在する場合にのみ導出されることができる。従って、前記現在ブロックに適用されるアフィン動きモデルが4アフィン動きモデルである場合、前記現在ブロックのCP0とCP1のMV(すなわち、前記mv0及び前記mv1)が可用である場合にのみ前記コンストラクテッド候補が考慮される。また、前記現在ブロックに適用されるアフィン動きモデルが6アフィン動きモデルの場合、前記現在ブロックのCP0、CP1、CP2のMV(すなわち、前記mv0、前記mv1、及び前記mv2)が可用である場合にのみ、前記コンストラクテッド候補が考慮される。従って、提案された実施形態によれば、前述の数式8又は数式9に基づいてCPに対する動きベクトルを導出する追加的な構成を必要としない場合がある。これにより、前記コンストラクテッド候補を導出するための演算複雑度を低減することができる。また、同一の参照ピクチャを有するCPMVP候補が可用である場合のみを限定して前記コンストラクテッド候補が決定されるので、全般的なコーディング性能を向上させることができる。
【0205】
前述の実施形態は、
図16及び
図17のように示すことができる。
【0206】
図16は、前記現在ブロックに4アフィン動きモデルが適用される場合に前記コンストラクテッド候補を導出する一例を示す。
【0207】
図16示すように、エンコード装置/デコード装置は、前記現在ブロックに対するmv
0、mv
1が可用であるか否かを判断する(S1600)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv
0、mv
1が存在するか否かを判断する。ここで、前記mv
0は前記現在ブロックのCP0のCPMVP候補であり、前記mv
1はCP1のCPMVP候補であり得る。
【0208】
エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第2グループにおいて可用のmv1が存在するか否かを判断する。
【0209】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0210】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0211】
また、エンコード装置/デコード装置は、前記第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出する。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0212】
前記現在ブロックに対する前記mv0及び前記mv1が可用である場合、すなわち、前記現在ブロックに対する前記mv0及び前記mv1が導出された場合、エンコード装置/デコード装置は、前記導出されたmv0及びmv1を前記現在ブロックのコンストラクテッド候補として導出する(S1610)。一方、前記現在ブロックに対するmv0及び/又はmv1が可用でない場合、すなわち、前記現在ブロックの周辺ブロックからmv0及びmv1の少なくとも1つが導出されない場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにコンストラクテッド候補を追加しない。
【0213】
図17は、前記現在ブロックに6アフィン動きモデルが適用される場合に前記コンストラクテッド候補を導出する一例を示す。
【0214】
図17に示すように、エンコード装置/デコード装置は、前記現在ブロックに対するmv
0、mv
1、mv
2が可用であるか否かを判断する(S1700)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv
0、mv
1、mv
2が存在するか否かを判断する。ここで、前記mv
0は前記現在ブロックのCP0のCPMVP候補であり、前記mv
1はCP1のCPMVP候補であり、前記mv
2はCP2のCPMVP候補であり得る。
【0215】
エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第2グループにおいて可用のmv1が存在するか否かを判断し、第3グループにおいて可用のmv2が存在するか否かを判断する。
【0216】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0217】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0218】
また、エンコード装置/デコード装置は、前記第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出する。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0219】
また、エンコード装置/デコード装置は、前記第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0220】
前記現在ブロックに対する前記mv0、前記mv1及び前記mv2が可用である場合、すなわち、前記現在ブロックに対する前記mv0、前記mv1及び前記mv2が導出された場合、エンコード装置/デコード装置は、前記導出されたmv0、mv1及びmv2を前記現在ブロックのコンストラクテッド候補として導出する(S1710)。一方、前記現在ブロックに対するmv0、mv1及び/又はmv2が可用でない場合、すなわち、前記現在ブロックの周辺ブロックからmv0、mv1及びmv2の少なくとも1つが導出されない場合、エンコード装置/デコード装置は、前記現在ブロックのアフィンMVPリストにコンストラクテッド候補を追加しない。
【0221】
また、本文書では、後述のようなコンスタラクテッド候補を導出する実施形態が提案される。具体的には、後述する実施形態においては、4アフィン動きモデルを生成するためのCPが現在ブロックの幅及び高さに基づいて適応的に決定できる。すなわち、前記現在ブロックに適用されたアフィン動きモデルが4アフィン動きモデルである場合、前記現在ブロックの幅及び高さに基づいて前記現在ブロックのCP0、CP1、CP2のうち2つのCPが選択できる。
【0222】
例えば、前記現在ブロックのCPは次の表のように選択される。
【0223】
【0224】
前記表2を参照すると、前記現在ブロックの幅が高さより大きいか等しい場合、前記現在ブロックに対するアフィン動きモデルのCPは、CP0及びCP1と選択されることができる。また、前記現在ブロックの幅が高さよりも小さい場合、前記現在ブロックに対するアフィン動きモデルのCPは、CP0及びCP2と選択されることができる。
【0225】
図18は、前記現在ブロックの幅及び高さに基づいて適応的に選択されたCPに対するCPMVPを含むコンストラクテッド候補を導出する一例を示す。
【0226】
図18に示すように、前記現在ブロックに4アフィン動きモデルが適用される場合、エンコード装置/デコード装置は、現在ブロックの幅が高さより大きいか等しいを判断する(S1800)。前記現在ブロックの幅が高さより大きいか等しい場合、エンコード装置/デコード装置は、前記現在ブロックに対するアフィン動きモデルのCPをCP0及びCP1と選択できる。また、前記現在ブロックの幅が高さより小さい場合、エンコード装置/デコード装置は、前記現在ブロックに対するアフィン動きモデルのCPをCP0及びCP2と選択できる。
【0227】
前記現在ブロックの幅が高さより大きいか等しい場合、エンコード装置/デコード装置は、前記現在ブロックに対するmv0、mv1が可用であるか否かを判断する(S1810)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv0、mv1が存在するか否かを判断する。ここで、前記mv0は、前記現在ブロックのCP0のCPMVP候補であり、前記mv1は、CP1のCPMVP候補であり得る。
【0228】
エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第2グループにおいて可用のmv1が存在するか否かを判断する。
【0229】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0230】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0231】
また、エンコード装置/デコード装置は、前記第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出する。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0232】
一方、前記現在ブロックの幅が高さより小さい場合、前記現在ブロックに対するmv0、mv2が可用であるか否かを判断する(S1820)。すなわち、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv0、mv2が存在するか否かを判断する。ここで、前記mv0は、前記現在ブロックのCP0のCPMVP候補であり、前記mv2は、CP2のCPMVP候補であり得る。
【0233】
エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第3グループにおいて可用のmv2が存在するか否かを判断する。
【0234】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0235】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0236】
また、エンコード装置/デコード装置は、前記第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0237】
エンコード装置/デコード装置は、導出された動きベクトルに基づいて前記現在ブロックのコンストラクテッド候補を決定する(S1830)。例えば、前記CP0に対するmv0、前記CP1に対するmv1が導出された場合、エンコード装置/デコード装置は、前記mv0、前記mv1を前記コンストラクテッド候補として決定する。また、例えば、前記CP0に対するmv0、前記CP2に対するmv2が導出された場合、エンコード装置/デコード装置は、前記mv0、前記mv2を前記コンストラクテッド候補として決定する。
【0238】
一方、前記現在ブロックに6アフィン動きモデルが適用される場合、前述の実施形態のように、前記CP0、前記CP1、前記CP2に対するCPMVP(すなわち、mv0、mv1、mv2)の全てが可用である場合、前記コンストラクテッド候補が考慮されることができる。
【0239】
また、本文書においては、後述のようなコンスタラクテッド候補を導出する実施形態が提案される。具体的には、後述の実施形態は、適応的にCPを選択する案が考慮されない場合に、現在ブロックのコンストラクテッド候補を導出するにおいて適用できる。
【0240】
図19は、現在ブロックのコンストラクテッド候補を導出する一例を示す。
【0241】
エンコード装置/デコード装置は、前記現在ブロックに対するmv0、mv1が可用であるか否かを判断する(S1900)。前記現在ブロックに4アフィン動きモデルが適用された場合、エンコード装置/デコード装置は、前記現在ブロックの周辺ブロックにおいて可用のmv0、mv1が存在するか否かを判断する。ここで、前記mv0は、前記現在ブロックのCP0のCPMVP候補であり得、前記mv1は、CP1のCPMVP候補であり得る。
【0242】
エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第2グループにおいて可用のmv1が存在するか否かを判断する。
【0243】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0244】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0245】
また、エンコード装置/デコード装置は、前記第2グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv1として導出する。すなわち、前記mv1は、特定順序に従って前記第2グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第2グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv1は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第2グループ内の周辺ブロックDから前記周辺ブロックEへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0246】
前記現在ブロックに対するmv0及び/又はmv1が可用でない場合、すなわち、前記現在ブロックの周辺ブロックからmv0及びmv1の少なくとも1つが導出されない場合、エンコード装置/デコード装置は、前記現在ブロックに対するmv0、mv2が可用であり、前記現在ブロックの幅が高さより小さいかを判断する(S1910)。
【0247】
例えば、エンコード装置/デコード装置は、第1グループにおいて可用のmv0が存在するか否かを判断し、第3グループにおいて可用のmv2が存在するか否かを判断する。ここで、前記mv0は、前記現在ブロックのCP0のCPMVP候補であり得、前記mv2は、CP2のCPMVP候補であり得る。
【0248】
具体的には、前記現在ブロックの周辺ブロックは3つのグループに分けられ、前記周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF及び周辺ブロックGを含む。前記第1グループは、周辺ブロックAの動きベクトル、周辺ブロックBの動きベクトル、周辺ブロックCの動きベクトルを含み、前記第2グループは、周辺ブロックDの動きベクトル、周辺ブロックEの動きベクトルを含み、前記第3グループは、周辺ブロックFの動きベクトル、周辺ブロックGの動きベクトルを含む。前記周辺ブロックAは、前記現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを示し、前記周辺ブロックBは、前記現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックCは、前記現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックDは、前記現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを示し、前記周辺ブロックEは、前記現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを示し、前記周辺ブロックFは、前記現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを示し、前記周辺ブロックGは、前記現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを示す。
【0249】
エンコード装置/デコード装置は、前記第1グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv0として導出する。すなわち、前記mv0は、特定順序に従って前記第1グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第1グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv0は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第1グループ内の周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0250】
また、エンコード装置/デコード装置は、前記第3グループ内の周辺ブロックの動きベクトルを特定順序に従って特定条件を満たすか否かをチェックする。エンコード装置/デコード装置は、前記チェック過程で1番目に確認された条件を満たす周辺ブロックの動きベクトルを前記mv2として導出する。すなわち、前記mv2は、特定順序に従って前記第3グループ内の動きベクトルをチェックして1番目に確認された前記特定条件を満たす動きベクトルであり得る。前記第3グループ内の前記周辺ブロックの動きベクトルが前記特定条件を満たさない場合、可用のmv2は存在しない可能性がある。ここで、例えば、前記特定順序は、前記第3グループ内の周辺ブロックFから前記周辺ブロックGへの順序であり得る。また、例えば、前記特定条件は、周辺ブロックの動きベクトルに対する参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。
【0251】
また、エンコード装置/デコード装置は、前記現在ブロックの幅が高さより小さいかを判断する。
【0252】
前記現在ブロックに対するmv0、mv2が可用であり、前記現在ブロックの幅が高さより小さい場合、エンコード装置/デコード装置は、前述の数式9に基づいて前記現在ブロックに対するmv1を導出する(S1920)。前記現在ブロックに対するmv0、mv2が可用であり、前記現在ブロックの幅が高さより小さい場合、エンコード装置/デコード装置は、前述の数式9に前記導出されたmv0及び前記mv2を代入して前記mv1を導出する。一方、前記現在ブロックに対するmv0及びmv2の少なくとも1つが可用でないか又は前記現在ブロックの幅が前記高さより小さくない場合、前記現在ブロックのコンストラクテッド候補は導出されない可能性がある。
【0253】
以後、エンコード装置/デコード装置は、前記導出されたmv0及びmv1を前記現在ブロックのコンストラクテッド候補として導出する(S1930)。
【0254】
図20は、本文書に従うエンコード装置による画像エンコード方法を概略的に示す。
図20に開示された方法は、
図1に開示されたエンコード装置により行われることができる。具体的には、例えば、
図20のS2000ないしS2030は前記エンコード装置の予測部により行われ、S2040は前記エンコード装置のエントロピーエンコード部により行われる。また、図示されてはいないが、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出する過程は、前記エンコード装置の予測部により行われ、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出する過程は、前記エンコード装置の減算部により行われ、前記レジデュアルサンプルに基づいて前記現在ブロックに対するレジデュアルに関する情報を生成する過程は、前記エンコード装置の変換部により行われ、前記レジデュアルに関する情報をエンコードする過程は、前記エンコード装置のエントロピーエンコード部により行われる。
【0255】
エンコード装置は、現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成する(S2000)。エンコード装置は、前記現在ブロックに対するアフィンMVP候補を含むアフィンMVP候補リストを構成する。
【0256】
一例として、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記コンストラクテッドアフィンMVP候補は、前記CPに対する候補動きベクトル(candidate motion vectors)を含む。前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが全て可用である場合に可用できる。
【0257】
例えば、前記現在ブロックに4アフィン動きモデル(4 affine motion model)が適用される場合、前記現在ブロックの前記CPは前記CP0及びCP1を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示す。
【0258】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP1に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは、第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは、第2ブロックの動きベクトルであり得る。
【0259】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0260】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0261】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは、前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは、前記現在ブロックの右上側コーナー周辺ブロックであり得る。
【0262】
一方、前記CP0の候補動きベクトル及び前記CP1の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない可能性がある。
【0263】
または、例えば、前記現在ブロックに6アフィン動きモデル(6 affine motion model)が適用される場合、前記現在ブロックの前記CPはCP0、CP1及びCP2を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用で、前記CP2に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示し、前記CP2は前記現在ブロックの左下端位置を示す。
【0264】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル、前記CP1に対する候補動きベクトル、及び前記CP2に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは第2ブロックの動きベクトルであり得、前記CP2に対する候補動きベクトルは第3ブロックの動きベクトルであり得る。
【0265】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0266】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0267】
また、前記第3ブロックは、第3特定順序に従って前記第3グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第3グループ内の前記第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP2に対する候補動きベクトルが可用できる。また、例えば、前記第3グループは、周辺ブロックF、周辺ブロックGを含み、前記第3特定順序は、前記周辺ブロックFから前記周辺ブロックGへの順序であり得る。
【0268】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックFは(-1,H-1)座標のサンプルを含むブロックであり得、前記周辺ブロックGは(-1,H)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは前記現在ブロックの左上側コーナー周辺ブロックである得、前記周辺ブロックBは前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは前記現在ブロックの右上側コーナー周辺ブロックであり得、前記周辺ブロックFは前記現在ブロックの左側周辺ブロックのうち最下側に位置する左側周辺ブロックであり得、前記周辺ブロックGは前記現在ブロックの左下側コーナー周辺ブロックであり得る
【0269】
一方、前記CP0の候補動きベクトル、前記CP1の候補動きベクトル、及び前記CP2の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない場合がある。
【0270】
または、例えば、前記現在ブロックに4アフィン動きモデル(4 affin motion model)が適用される場合、前記現在ブロックの幅及び高さに基づいてCPが選択され、前記コンストラクテッドアフィンMVP候補は、前記選択されたCPに対する候補動きベクトルを含む。
【0271】
一例として、前記現在ブロックの幅が高さより大きいか等しい場合、前記現在ブロックの前記CPは前記CP0及びCP1を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含むことができる。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示す。
【0272】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP1に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは、第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは、第2ブロックの動きベクトルであり得る。
【0273】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0274】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0275】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは、前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは、前記現在ブロックの右上側コーナー周辺ブロックであり得る。
【0276】
前記CP0の候補動きベクトル及び前記CP1の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない可能性がある。
【0277】
また、前記現在ブロックの幅が高さよりも小さい場合、前記現在ブロックの前記CP0及びCP2を含む。前記CP0に対する候補動きベクトルが可用で、前記CP2に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP2は前記現在ブロックの左下端位置を示す。
【0278】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP2に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは、第1ブロックの動きベクトルであり得、前記CP2に対する候補動きベクトルは、第3ブロックの動きベクトルであり得る。
【0279】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0280】
また、前記第3ブロックは、第3特定順序に従って前記第3グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第3グループ内の前記第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP2に対する候補動きベクトルが可用できる。また、例えば、前記第3グループは、周辺ブロックF、周辺ブロックGを含み、前記第3特定順序は、前記周辺ブロックFから前記周辺ブロックGへの順序であり得る。
【0281】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックFは(-1,H-1)座標のサンプルを含むブロックであり得、前記周辺ブロックGは(-1,H)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックFは、前記現在ブロックの左側周辺ブロックのうち最下側に位置する左側周辺ブロックであり得、前記周辺ブロックGは、前記現在ブロックの右下側コーナー周辺ブロックであり得る。
【0282】
前記CP0の候補動きベクトル及び前記CP2の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない可能性がある。
【0283】
また、一例として、前記アフィンMVP候補リストは継承された(inherited)アフィンMVP候補を含む。
【0284】
前記継承されたアフィンMVP候補は、前記現在ブロックの周辺ブロック内の特定のブロックに基づいて導出される。ここで、前記特定のブロックは、アフィン動きモデルにコーディングされ、前記特定ブロックの参照ピクチャは前記現在ブロックの参照ピクチャと同一であり得る。
【0285】
ここで、前記特定のブロックは、特定順序に従って前記周辺ブロックをチェックして1番目に確認された条件を満たすブロックであり得る。前記条件は、アフィン動きモデルにコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。例えば、エンコード装置は、前記周辺ブロックを前記特定順序で前記条件を満たすか否かをチェックし、1番目に前記条件を満たす特定ブロックを導出し、前記特定ブロックに基づいて前記継承されたアフィンMVP候補を導出することができる。
【0286】
具体的には、例えば、エンコード装置は、前記特定のブロックのアフィン動きモデルに基づいて前記現在ブロックのCPに対する動きベクトルを導出し、前記動きベクトルをCPMVP候補として含む前記継承されたアフィンMVP候補を導出することができる。前記アフィン動きモデルは、前述の数式1又は数式3のように導出されることができる。
【0287】
ここで、前記周辺ブロックは、前記現在ブロックの左側周辺ブロック、上側周辺ブロック、右上側周辺ブロック、左下側周辺ブロック、左上側周辺ブロックを含む。例えば、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記左側周辺ブロックは(-1,H-1)座標のサンプルを含むブロックであり、前記上側周辺ブロックは(W-1,-1)座標のサンプルを含むブロックであり、前記右上側周辺ブロックは(W,-1)座標のサンプルを含むブロックであり、前記左下側周辺ブロックは(-1,H)座標のサンプルを含むブロックであり、前記左上側周辺ブロックは(-1,-1)座標のサンプルを含むブロックであり得る。
【0288】
一方、前述の過程を介して2つより小さい個数のアフィンMVP候補が導出された場合、前記アフィンMVP候補は既存のHEVC標準でのMVP候補を含むことができる。
【0289】
すなわち、例えば、前述の過程を介して2つより小さい個数のアフィンMVP候補が導出された場合、エンコード装置は、既存のHEVC標準でのMVP候補を導出することができる。
【0290】
一方、エンコード装置は、前記現在ブロックに適用されるアフィン動きモデルを決定し、前記現在ブロックに適用されるアフィン動きモデルを示すアフィンタイプ情報を生成及びエンコードすることができる。例えば、前記アフィンタイプ情報は、前記現在ブロックに適用されるアフィン動きモデルが4アフィン動きモデルであるか又は6アフィン動きモデルであるかを示す。前記アフィンタイプ情報は、前記ビットストリームを介してシグナリングされることがある。画像情報は前記アフィンタイプ情報を含む。
【0291】
エンコード装置は、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出する(S2010)。エンコード装置は、最適のRDコストを有する前記現在ブロックの前記CPに対するCPMVを導出し、前記アフィンMVP候補のうち前記CPMVに最も類似したアフィンMVP候補を前記現在ブロックに対するアフィンMVP候補として選択する。エンコード装置は、前記アフィンMVP候補リストに含まれた前記アフィンMVP候補のうち前記選択されたアフィンMVP候補に基づいて前記現在ブロックのCP(Control Point)に対するCPMVPを導出する。具体的には、アフィンMVP候補がCP0に対する候補動きベクトル及びCP1に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP1に対する候補動きベクトルは前記CP1のCPMVPとして導出されることができる。また、アフィンMVP候補がCP0に対する候補動きベクトル、CP1に対する候補動きベクトル及びCP2に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP2に対する候補動きベクトルは前記CP1のCPMVPとして導出される。また、アフィンMVP候補がCP0に対する候補動きベクトル及びCP2に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP2に対する候補動きベクトルは前記CP2のCPMVPとして導出される。
【0292】
エンコード装置は、前記アフィンMVP候補のうち前記選択されたアフィンMVP候補を示すアフィンMVP候補インデックスをエンコードすることができる。前記アフィンMVP候補インデックスは、前記現在ブロックに対するアフィンの動きベクトル予測子(Motion Vector Predictor:MVP)候補リストに含まれたアフィンMVP候補のうち前記1つのアフィンMVP候補を示すことができる。
【0293】
エンコード装置は、前記現在ブロックの前記CPに対するCPMVを導出する(S2020)。エンコード装置は、前記現在ブロックの前記CPのそれぞれに対するCPMVを導出する。
【0294】
エンコード装置は、前記CPMVP及び前記CPMVに基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出する(S2030)。エンコード装置は、前記CPのそれぞれに対する前記CPMVP及び前記CPMVに基づいて前記現在ブロックの前記CPに対するCPMVDを導出する。
【0295】
エンコード装置は、前記CPMVDに関する情報を含む動き予測情報(motion prediction information)をエンコードする(S2040)。エンコード装置は、前記CPMVDに関する情報を含む動き予測情報をビットストリームの形態で出力する。すなわち、エンコード装置は、前記動き予測情報を含む画像情報をビットストリームの形態で出力する。エンコード装置は、前記CPのそれぞれに対するCPMVDに関する情報をエンコードし、前記動き予測情報は、前記CPMVDに関する情報を含む。
【0296】
また、前記動き予測情報は、前記アフィンMVP候補インデックスを含む。前記アフィンMVP候補インデックスは、前記現在ブロックに対するアフィンの動きベクトル予測子(Motion Vector Predictor:MVP)候補リストに含まれたアフィンMVP候補のうち前記選択されたアフィンMVP候補を示すことができる。
【0297】
一方、一例として、エンコード装置は、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出し、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを導出し、前記レジデュアルサンプルに基づいて前記現在ブロックに対するレジデュアルに関する情報を生成し、前記レジデュアルに関する情報をエンコードする。前記画像情報は、前記レジデュアルに関する情報を含むことができる。
【0298】
一方、前記ビットストリームは、ネットワーク又は(デジタル)格納媒体を介してデコード装置に送信される。ここで、ネットワークは、放送網及び/又は通信網などを含み、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど多様な格納媒体を含む。
【0299】
図21は、本文書に従う画像エンコード方法を行うエンコード装置を概略的に示す。
図20に開示された方法は、
図21に開示されたエンコード装置により行われる。具体的には、例えば、
図21の前記エンコード装置の予測部は
図20のS2000ないしS2030を行い、
図21の前記エンコード装置のエントロピーエンコード部は
図20のS2040を行う。また、図示されてはいないが、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出する過程は、
図21のエンコード装置の予測部により行われ、前記現在ブロックに対する原本サンプルと予測サンプルに基づいて記現在ブロックに対するレジデュアルサンプルを導出する過程は、
図21の前記エンコード装置の減算部により行われ、前記レジデュアルサンプルに基づいて前記現在ブロックに対するレジデュアルに関する情報を生成する過程は、
図21の前記エンコード装置の変換部により行われ、前記レジデュアルに関する情報をエンコードする過程は、
図21の前記エンコード装置のエントロピーエンコード部により行われる。
【0300】
図22は、本文書に従うデコード装置による画像デコード方法を概略的に示す。
図22に開示された方法は、
図2に開示されたデコード装置により行われる。具体的には、例えば、
図22のS2200は前記デコード装置のエントロピーデコード部により行われ、S2210ないしS2250は前記デコード装置の予測部により行われ、S2260は前記デコード装置の加算部により行われる。また、図示されてはいないが、ビットストリームを介して現在ブロックのレジデュアルに関する情報を取得する過程は、前記デコード装置のエントロピーデコード部により行われ、前記レジデュアル情報に基づいて前記現在ブロックに対する前記レジデュアルサンプルを導出する過程は、前記デコード装置の逆変換部により行われる。
【0301】
デコード装置は、ビットストリームから現在ブロックに対する動き予測情報(motion prediction information)を取得する(S2200)。デコード装置は、前記ビットストリームから前記動き予測情報を含む画像情報を取得する。
【0302】
また、例えば、前記動き予測情報は、前記現在ブロックのCP(control point)に対するCPMVD(Control Point Motion Vector Differences)に関する情報を含む。すなわち、前記動き予測情報は、前記現在ブロックのCPのそれぞれに対するCPMVDに関する情報を含む。
【0303】
また、例えば、前記動き予測情報は、前記現在ブロックに対するアフィンMVP候補インデックスを含む。前記アフィンMVP候補インデックスは、前記現在ブロックに対するアフィンの動きベクトル予測子(Motion Vector Predictor:MVP)候補リストに含まれたアフィンMVP候補のうち1つを示すことができる。
【0304】
デコード装置は、前記現在ブロックに対するアフィン(affine)動きベクトル予測子(Motion Vector Predictor:MVP)候補リストを構成する(S2210)。デコード装置は、前記現在ブロックに対するアフィンMVP候補を含むアフィンMVP候補リストを構成する。
【0305】
一例として、コンストラクテッド(constructed)アフィンMVP候補が可用である場合、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記コンストラクテッドアフィンMVP候補は、前記CPに対する候補動きベクトルたち(candidate motion vectors)を含む。前記コンストラクテッドアフィンMVP候補は、前記候補動きベクトルが全て可用である場合に可用できる。
【0306】
例えば、前記現在ブロックに4アフィン動きモデル(4 affine motion model)が適用される場合、前記現在ブロックの前記CPは、前記CP0及びCP1を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含むことができる。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示す。
【0307】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP1に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは第2ブロックの動きベクトルであり得る。
【0308】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0309】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0310】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは、前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは、前記現在ブロックの右上側コーナー周辺ブロックであり得る。
【0311】
一方、前記CP0の候補動きベクトル及び前記CP1の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない可能性がある。
【0312】
または、例えば、前記現在ブロックに6アフィン動きモデル(6 affine motion model)が適用される場合、前記現在ブロックの前記CPはCP0、CP1及びCP2を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用で、前記CP2に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含むことができる。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示し、前記CP2は前記現在ブロックの左下端位置を示す。
【0313】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル、前記CP1に対する候補動きベクトル、及び前記CP2に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは第2ブロックの動きベクトルであり得、前記CP2に対する候補動きベクトルは第3ブロックの動きベクトルであり得る。
【0314】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0315】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0316】
また、前記第3ブロックは、第3特定順序に従って前記第3グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第3グループ内の前記第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP2に対する候補動きベクトルが可用できる。また、例えば、前記第3グループは、周辺ブロックF、周辺ブロックGを含み、前記第3特定順序は、前記周辺ブロックFから前記周辺ブロックGへの順序であり得る。
【0317】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1、0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックFは(-1,H-1)座標のサンプルを含むブロックであり得、前記周辺ブロックGは(-1,H)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは前記現在ブロックの左上側コーナー周辺ブロックである得、前記周辺ブロックBは前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは前記現在ブロックの右上側コーナー周辺ブロックであり得、前記周辺ブロックFは前記現在ブロックの左側周辺ブロックのうち最下側に位置する左側周辺ブロックであり得、前記周辺ブロックGは前記現在ブロックの左下側コーナー周辺ブロックであり得る。
【0318】
一方、前記CP0の候補動きベクトル、前記CP1の候補動きベクトル、及び前記CP2の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない場合がある。
【0319】
または、例えば、前記現在ブロックに4アフィン動きモデル(4 affin motion model)が適用される場合、前記現在ブロックの幅及び高さに基づいてCPが選択され、前記コンストラクテッドアフィンMVP候補は前記選択されたCPに対する候補動きベクトルを含む。
【0320】
一例として、前記現在ブロックの幅が高さより大きいか等しい場合、前記現在ブロックの前記CPはCP0及びCP1を含む。前記CP0に対する候補動きベクトルが可用で、前記CP1に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含むことができる。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP1は前記現在ブロックの右上端位置を示す。
【0321】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP1に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは第1ブロックの動きベクトルであり得、前記CP1に対する候補動きベクトルは第2ブロックの動きベクトルであり得る。
【0322】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0323】
また、前記第2ブロックは、第2特定順序に従って前記第2グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第2グループ内の前記第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP1に対する候補動きベクトルが可用できる。また、例えば、前記第2グループは、周辺ブロックD、周辺ブロックEを含み、前記第2特定順序は、前記周辺ブロックDから前記周辺ブロックEへの順序であり得る。
【0324】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックDは(W-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックEは(W,-1)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックDは、前記現在ブロックの上側周辺ブロックのうち最右側に位置する上側周辺ブロックであり得、前記周辺ブロックEは、前記現在ブロックの右上側コーナー周辺ブロックであり得る。
【0325】
前記CP0の候補動きベクトル及び前記CP1の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない場合がある。
【0326】
また、前記現在ブロックの幅が高さよりも小さい場合、前記現在ブロックの前記CP0及びCP2を含むことができる。前記CP0に対する候補動きベクトルが可用で、前記CP2に対する候補動きベクトルが可用である場合、前記コンストラクテッドアフィンMVP候補は可用であり、前記アフィンMVP候補リストは前記コンストラクテッドアフィンMVP候補を含む。ここで、前記CP0は前記現在ブロックの左上端位置を示し、前記CP2は前記現在ブロックの左下端位置を示す。
【0327】
前記コンストラクテッドアフィンMVP候補は、前記CP0に対する候補動きベクトル及び前記CP2に対する候補動きベクトルを含む。前記CP0に対する候補動きベクトルは第1ブロックの動きベクトルであり得、前記CP2に対する候補動きベクトルは第3ブロックの動きベクトルであり得る。
【0328】
また、前記第1ブロックは、第1特定順序に従って前記第1グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第1グループ内の前記第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP0に対する候補動きベクトルが可用できる。また、例えば、前記第1グループは、周辺ブロックA、周辺ブロックB、周辺ブロックCを含み、前記第1特定順序は、前記周辺ブロックAから前記周辺ブロックB、前記周辺ブロックCへの順序であり得る。
【0329】
また、前記第3ブロックは、第3特定順序に従って前記第3グループ内の周辺ブロックをチェックして1番目に確認された参照ピクチャが前記現在ブロックの参照ピクチャと同一であるブロックであり得る。ここで、前記第3グループ内の前記第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一である場合、前記CP2に対する候補動きベクトルが可用できる。また、例えば、前記第3グループは、周辺ブロックF、周辺ブロックGを含み、前記第3特定順序は、前記周辺ブロックFから前記周辺ブロックGへの順序であり得る。
【0330】
一方、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、前記周辺ブロックAは(-1,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックBは(0,-1)座標のサンプルを含むブロックであり得、前記周辺ブロックCは(-1,-0)座標のサンプルを含むブロックであり得、前記周辺ブロックFは(-1,H-1)座標のサンプルを含むブロックであり得、前記周辺ブロックGは(-1,H)座標のサンプルを含むブロックであり得る。すなわち、前記周辺ブロックAは、前記現在ブロックの左上側コーナー周辺ブロックであり得、前記周辺ブロックBは、前記現在ブロックの上側周辺ブロックのうち最左側に位置する上側周辺ブロックであり得、前記周辺ブロックCは、前記現在ブロックの左側周辺ブロックのうち最上側に位置する左側周辺ブロックであり得、前記周辺ブロックFは、前記現在ブロックの左側周辺ブロックのうち最下側に位置する左側周辺ブロックであり得、前記周辺ブロックGは、前記現在ブロックの右下側コーナー周辺ブロックであり得る。
【0331】
前記CP0の候補動きベクトル及び前記CP2の候補動きベクトルのうち少なくとも1つが可用でない場合、前記コンストラクテッドアフィンMVP候補は可用でない場合がある。
【0332】
また、一例として、前記アフィンMVP候補リストは継承された(inherited)アフィンMVP候補を含む。
【0333】
前記継承されたアフィンMVP候補は、前記現在ブロックの周辺ブロック内の特定ブロックに基づいて導出される。ここで、前記特定ブロックはアフィン動きモデルにコーディングされ、前記特定のブロックの参照ピクチャは前記現在ブロックの参照ピクチャと同一であり得る。
【0334】
ここで、前記特定ブロックは、特定順序に従って前記周辺ブロックをチェックして1番目に確認された条件を満たすブロックであり得る。前記条件は、アフィン動きモデルにコーディングされ、ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であることであり得る。例えば、デコード装置は、前記周辺ブロックを前記特定順序で前記条件を満たすか否かをチェックし、1番目に前記条件を満たす特定ブロックを導出し、前記特定ブロックに基づいて前記継承されたアフィンMVP候補を導出する。
【0335】
具体的には、例えば、デコード装置は、前記特定ブロックのアフィン動きモデルに基づいて前記現在ブロックのCPに対する動きベクトルを導出し、前記動きベクトルをCPMVP候補として含む前記継承されたアフィンMVP候補を導出することができる。前記アフィン動きモデルは、前述の数式1又は数式3のように導出される。
【0336】
ここで、前記周辺ブロックは、前記現在ブロックの左側周辺ブロック、上側周辺ブロック、右上側周辺ブロック、左下側周辺ブロック、左上側周辺ブロックを含む。例えば、前記現在ブロックのサイズがW×Hであり、前記現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である、前記左側周辺ブロックは(-1,H-1)座標のサンプルを含むブロックであり得、前記上側周辺ブロックは(W-1,-1)座標のサンプルを含むブロックであり得、前記右上側周辺ブロックは(W,-1)座標のサンプルを含むブロックであり得、前記左下側周辺ブロックは(-1,H)座標のサンプルを含むブロックであり、前記左上側周辺ブロックは(-1,-1)座標のサンプルを含むブロックであり得る。
【0337】
一方、前述の過程を介して2つより小さい個数のアフィンMVP候補が導出された場合、前記アフィンMVP候補は既存のHEVC標準でのMVP候補を含む。
【0338】
すなわち、例えば、前述の過程を介して2つより小さい個数のアフィンMVP候補が導出された場合、デコード装置は、既存のHEVC標準でのMVP候補を導出することができる。
【0339】
一方、前記現在ブロックに適用されるアフィン動きモデルは、アフィンタイプ情報に基づいて導出される。例えば、前記アフィンタイプ情報は、前記現在ブロックに適用されるアフィン動きモデルを示す。すなわち、前記アフィンタイプ情報は、前記現在ブロックに適用されるアフィン動きモデルが4アフィン動きモデルであるか又は6アフィン動きモデルであるかを示すことができる。前記アフィンタイプ情報は、前記ビットストリームを介して取得できる。画像情報は、前記アフィンタイプ情報を含む。
【0340】
デコード装置は、前記アフィンMVP候補リストに基づいて前記現在ブロックのCP(Control Point)に対するCPMVP(Control Point Motion Vector Predictors)を導出する(S2220)。
【0341】
デコード装置は、前記アフィンMVP候補リストに含まれた前記アフィンMVP候補のうち特定アフィンMVP候補を選択し、前記選択されたアフィンMVP候補を前記現在ブロックの前記CPに対するCPMVPとして導出する。例えば、デコード装置は、ビットストリームから前記現在ブロックに対する前記アフィンMVP候補インデックスを取得し、前記アフィンMVP候補リストに含まれた前記アフィンMVP候補のうち前記アフィンMVP候補インデックスが示すアフィンMVP候補を前記現在ブロックの前記CPに対するCPMVP候補として導出する。具体的には、アフィンMVP候補がCP0に対する候補動きベクトル及びCP1に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP1に対する候補動きベクトルは前記CP1のCPMVPとして導出される。また、アフィンMVP候補がCP0に対する候補動きベクトル、CP1に対する候補動きベクトル及びCP2に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP2に対する候補動きベクトルは前記CP1のCPMVPとして導出できる。また、アフィンMVP候補がCP0に対する候補動きベクトル及びCP2に対する候補動きベクトルを含む場合、前記アフィンMVP候補のCP0に対する候補動きベクトルは前記CP0のCPMVPとして導出され、前記アフィンMVP候補のCP2に対する候補動きベクトルは前記CP2のCPMVPとして導出される。
【0342】
デコード装置は、前記動き予測情報に基づいて前記現在ブロックの前記CPに対するCPMVD(Control Point Motion Vector Differences)を導出する(S2230)。前記動き予測情報は、前記CPのそれぞれに対するCPMVDに関する情報を含み、デコード装置は、前記CPのそれぞれに対する前記CPMVDに関する情報に基づいて前記現在ブロックの前記CPのそれぞれに対する前記CPMVDを導出する。
【0343】
デコード装置は、前記CPMVP及び前記CPMVDに基づいて前記現在ブロックの前記CPに対するCPMV(Control Point Motion Vectors)を導出する(S2240)。デコード装置は、前記CPのそれぞれに対するCPMVP及びCPMVDに基づいて各CPに対するCPMVを導出する。例えば、デコード装置は、各CPに対するCPMVP及びCPMVDを加算して前記CPに対するCPMVを導出する。
【0344】
デコード装置は、前記CPMVに基づいて前記現在ブロックに対する予測サンプルを導出する(S2250)。デコード装置は、前記CPMVに基づいて前記現在ブロックのサブブロック単位又はサンプル単位の動きベクトルを導出する。すなわち、デコード装置は、前記CPMVに基づいて前記現在ブロックの各サブブロック又は各サンプルの動きベクトルを導出する。前記サブブロック単位又は前記サンプル単位の動きベクトルは、前述の数式1又は数式3に基づいて導出される。前記動きベクトルは、アフィン動きベクトルフィールド(Motion Vector Field:MVF)又は動きベクトルアレイと示すことができる。
【0345】
デコード装置は、前記サブブロック単位又は前記サンプル単位の動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出する。デコード装置は、前記サブブロック単位又は前記サンプル単位の動きベクトルに基づいて参照ピクチャ内の参照領域を導出し、前記参照領域内の復元されたサンプルに基づいて前記現在ブロックの予測サンプルを生成することができる。
【0346】
デコード装置は、前記導出された予測サンプルに基づいて前記現在ブロックに対する復元ピクチャを生成する(S2260)。デコード装置は、前記導出された予測サンプルに基づいて前記現在ブロックに対する復元ピクチャを生成する。デコード装置は、予測モードに応じて予測サンプルを直ちに復元サンプルとして利用することもでき、又は、前記予測サンプルにレジデュアルサンプルを加算して復元サンプルを生成することもできる。デコード装置は、前記現在ブロックに対するレジデュアルサンプルが存在する場合、前記ビットストリームから前記現在ブロックに対するレジデュアルに関する情報を取得する。前記レジデュアルに関する情報は、前記レジデュアルサンプルに関する変換係数を含む。デコード装置は、前記レジデュアル情報に基づいて前記現在ブロックに対する前記レジデュアルサンプル(又は、レジデュアルサンプルアレイ)を導出する。デコード装置は、前記予測サンプルと前記レジデュアルサンプルに基づいて復元サンプルを生成し、前記復元サンプルに基づいて復元ブロック又は復元ピクチャを導出する。以後、デコード装置は、必要に応じて主観的/客観的画質を向上させるために、デブロッキングフィルタリング及び/又はSAO手順のようなインループフィルタリング手順を前記復元ピクチャに適用できることは、前述の通りである。
【0347】
図23は、本文書に伴う画像デコード方法を行うデコード装置を概略的に示す。
図22に開示された方法は、
図23に開示されたデコード装置により行われることができる。具体的に、例えば、
図23の前記デコード装置のエントロピーデコード部は
図22のS2200を行い、
図23の前記デコード装置の予測部は
図22のS2210ないしS2250を行い、
図23の前記デコード装置の加算部は
図22のS2260を行う。また、図示されてはいないが、ビットストリームを介して現在ブロックのレジデュアルに関する情報を含む画像情報を取得する過程は、
図23の前記デコード装置のエントロピーデコード部により行われ、前記レジデュアル情報に基づいて前記現在ブロックに対する前記レジデュアルサンプルを導出する過程は、
図23の前記デコード装置の逆変換部により行われる。
【0348】
前述の本文書によれば、アフィン動き予測に基づいた画像コーディングの効率を向上させることができる。
【0349】
また、本文書によれば、アフィンMVP候補リストを導出するにおいて、コンストラクテッドアフィンMVP候補のCPに対する候補動きベクトルが全て可用である場合にのみ、前記コンストラクテッドアフィンMVP候補を追加することができ、これにより、コンストラクテッドアフィンMVP候補を導出する過程及びアフィンMVP候補リストを構成する過程の複雑度を低減し、コーディング効率を向上させることができる。
【0350】
前述の実施形態において、方法は一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、本文書は、ステップの順序に限定されるものではなく、あるステップは前述とは異なるステップと異なる順序で又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、他のステップが含まれるか、フローチャートの1つ又はそれ以上のステップが本文書の範囲に影響を及ぼさずに削除できることが理解できるであろう。
【0351】
本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われる。例えば、各図に示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われる。この場合、実現のための情報(例えば、information on instructions)又はアルゴリズムがデジタル格納媒体に格納されることができる。
【0352】
また、本文書が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTT(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えは、車両(自律走行車両を含む)端末、飛行機端末、船舶端末など)及び医療用ビデオ装置などに含まれることができ、ビデオ信号及びデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などが含まれる。
【0353】
また、本文書が適用される処理方法は、コンピュータにより実行されるプログラムの形態で生産されることができ、コンピュータにより読み取りできる記録媒体に格納できる。本発明によるデータ構造を有するマルチメディアデータもまたコンピュータにより読み取りできる記録媒体に格納できる。前記コンピュータにより読み取りできる記録媒体は、コンピュータにより読み取りできるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータにより読み取りできる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピ(登録商標)ディスク、及び光学データ格納装置を含むことができる。また、前記コンピュータにより読み取りできる記録媒体は、搬送波(例えば、インターネットを介する送信)の形態で実現されたメディアを含む。また、エンコード方法により生成されたビットストリームがコンピュータにより読み取りできる記録媒体に格納されるか、有無線通信ネットワークを介して送信できる。
【0354】
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品として実現され、前記プログラムコードは、本発明の実施形態によりコンピュータにおいて行われる。前記プログラムコードは、コンピュータにより読み取りできるキャリア上に格納されることができる。
【0355】
図24は、本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0356】
本文書が適用されるコンテンツストリーミングシステムは、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置及びマルチメディア入力装置を含む。
【0357】
前記エンコードサーバは、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割を果たす。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されてもよい。
【0358】
前記ビットストリームは、本開示が適用されるエンコード方法又はビットストリーム生成方法により生成され、前記ストリームサーバは、前記ビットストリームを送信又は受信する過程で一時的に前記ビットストリームを格納することができる。
【0359】
前記ストリーミングサーバは、ウェブサーバを介するユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒体としての役割を果たす。ユーザが前記ウェブサーバにご希望のサービスを要求すると、前記ウェブサーバはこれをストリーミングサーバに伝達し、前記ストリーミングサーバはユーザにマルチメディアデータを送信する。ここで、前記コンテンツストリーミングシステムは別途の制御サーバを含んでもよく、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たす。
【0360】
前記ストリーミングサーバは、メディア格納所及び/又はエンコードサーバからコンテンツを受信する。例えば、前記エンコードサーバからコンテンツを受信する場合、前記コンテンツをリアルタイムに受信できる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは前記ビットストリームを一定時間格納することができる。
【0361】
前記ユーザ装置の例としては、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(smartwatch)、スマートグラス(smart glass)、HMD(head mounted display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどを有することができる。前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営でき、この場合、各サーバで受信するデータは分散処理されることができる。
【手続補正書】
【提出日】2023-06-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコード装置による画像デコード方法において、
ビットストリームから現在ブロックのコントロールポイント(CPs)に対するコントロールポイント動きベクトル差分(CPMVDs)に関する情報を取得するステップと、
前記現在ブロックの前記CPsに対する利用可能な動きベクトルを決定するステップと、
前記CPsに対する前記利用可能な動きベクトルに基づいて、前記現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストを構成するステップと、
前記アフィンMVP候補リストに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル予測子(CPMVPs)を導出するステップと、
前記現在ブロックの前記CPsに対する前記CPMVDsに関する情報に基づいて、前記現在ブロックの前記CPsに対する前記CPMVDsを導出するステップと、
前記CPMVPs及び前記CPMVDsに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル(CPMVs)を導出するステップと、
前記CPMVsに基づいて、前記現在ブロックに対するサブブロック動きベクトルを導出するステップと、
前記現在ブロックに対する前記サブブロック動きベクトルに基づいて、前記現在ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて、前記現在ブロックに対する復元ピクチャを生成するステップと、を含み、
前記CPsは、コントロールポイント0(CP0)、コントロールポイント1(CP1)及びコントロールポイント2(CP2)を含み、
前記CP0は、前記現在ブロックの左上端位置に位置し、前記CP1は、前記現在ブロックの右上端位置に位置し、前記CP2は、前記現在ブロックの左下端位置に位置し、
前記CP0に対する利用可能な動きベクトルは、前記CP0に対するCPMVPとして第1周辺ブロックグループから導出され、前記CP1に対する利用可能な動きベクトルは、前記CP1に対するCPMVPとして第2周辺ブロックグループから導出され、前記CP2に対する利用可能な動きベクトルは、前記CP2に対するCPMVPとして第3周辺ブロックグループから導出され、
前記第1周辺ブロックグループ内の第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第1ブロックの動きベクトルは、前記CP0に対する前記利用可能な動きベクトルとして決定され、
前記第2周辺ブロックグループ内の第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第2ブロックの動きベクトルは、前記CP1に対する前記利用可能な動きベクトルとして決定され、
前記第3周辺ブロックグループ内の第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第3ブロックの動きベクトルは、前記CP2に対する前記利用可能な動きベクトルとして決定され、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの組み合わせは、コンストラクテッドアフィンMVP候補として導出され、
前記コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの全てが存在するときのみ、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は、前記アフィンMVP候補リストに含まれない、画像デコード方法。
【請求項2】
エンコード装置による画像エンコードの方法において、
現在ブロックのコントロールポイント(CPs)に対する利用可能な動きベクトルを決定するステップと、
前記CPsに対する前記利用可能な動きベクトルに基づいて、前記現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストを構成するステップと、
前記アフィンMVP候補リストに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル予測子(CPMVPs)を導出するステップと、
前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル(CPMVs)を導出するステップと、
前記CPMVPs及び前記CPMVsに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル差分(CPMVDs)を導出するステップと、
前記CPsに対する前記CPMVDsに関する情報をエンコードするステップと、を含み、
前記CPsは、コントロールポイント0(CP0)、コントロールポイント1(CP1)及びコントロールポイント2(CP2)を含み、
前記CP0は、前記現在ブロックの左上端位置に位置し、前記CP1は、前記現在ブロックの右上端位置に位置し、前記CP2は、前記現在ブロックの左下端位置に位置し、
前記CP0に対する利用可能な動きベクトルは、前記CP0に対するCPMVPとして第1周辺ブロックグループから導出され、前記CP1に対する利用可能な動きベクトルは、前記CP1に対するCPMVPとして第2周辺ブロックグループから導出され、前記CP2に対する利用可能な動きベクトルは、前記CP2に対するCPMVPとして第3周辺ブロックグループから導出され、
前記第1周辺ブロックグループ内の第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第1ブロックの動きベクトルは、前記CP0に対する前記利用可能な動きベクトルとして決定され、
前記第2周辺ブロックグループ内の第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第2ブロックの動きベクトルは、前記CP1に対する前記利用可能な動きベクトルとして決定され、
前記第3周辺ブロックグループ内の第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第3ブロックの動きベクトルは、前記CP2に対する前記利用可能な動きベクトルとして決定され、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの組み合わせは、コンストラクテッドアフィンMVP候補として導出され、
前記コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの全てが存在するときのみ、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は、前記アフィンMVP候補リストに含まれない、画像エンコード方法。
【請求項3】
画像に対するデータの送信方法において、
前記画像に対するビットストリームを取得するステップであって、前記ビットストリームは、現在ブロックのコントロールポイント(CPs)に対する利用可能な動きベクトルを決定し、前記CPsに対する前記利用可能な動きベクトルに基づいて、前記現在ブロックに対するアフィン動きベクトル予測子(MVP)候補リストを構成し、前記アフィンMVP候補リストに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル予測子(CPMVPs)を導出し、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル(CPMVs)を導出し、前記CPMVPs及び前記CPMVsに基づいて、前記現在ブロックの前記CPsに対するコントロールポイント動きベクトル差分(CPMVDs)を導出し、前記CPsに対する前記CPMVDsに関する情報をエンコードすることに基づいて生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み、
前記CPsは、コントロールポイント0(CP0)、コントロールポイント1(CP1)及びコントロールポイント2(CP2)を含み、
前記CP0は、前記現在ブロックの左上端位置に位置し、前記CP1は、前記現在ブロックの右上端位置に位置し、前記CP2は、前記現在ブロックの左下端位置に位置し、
前記CP0に対する利用可能な動きベクトルは、前記CP0に対するCPMVPとして第1周辺ブロックグループから導出され、前記CP1に対する利用可能な動きベクトルは、前記CP1に対するCPMVPとして第2周辺ブロックグループから導出され、前記CP2に対する利用可能な動きベクトルは、前記CP2に対するCPMVPとして第3周辺ブロックグループから導出され、
前記第1周辺ブロックグループ内の第1ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第1ブロックの動きベクトルは、前記CP0に対する前記利用可能な動きベクトルとして決定され、
前記第2周辺ブロックグループ内の第2ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第2ブロックの動きベクトルは、前記CP1に対する前記利用可能な動きベクトルとして決定され、
前記第3周辺ブロックグループ内の第3ブロックの参照ピクチャが前記現在ブロックの参照ピクチャと同一であるとき、前記第3ブロックの動きベクトルは、前記CP2に対する前記利用可能な動きベクトルとして決定され、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの組み合わせは、コンストラクテッドアフィンMVP候補として導出され、
前記コンストラクテッドアフィンMVP候補が利用可能であることに基づいて、前記アフィンMVP候補リストは、前記コンストラクテッドアフィンMVP候補を含み、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの全てが存在するときのみ、前記コンストラクテッドアフィンMVP候補は利用可能であり、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は利用可能でなく、
前記CP0に対する前記利用可能な動きベクトル、前記CP1に対する前記利用可能な動きベクトル、及び前記CP2に対する前記利用可能な動きベクトルの少なくとも1つが存在しないことに基づいて、前記コンストラクテッドアフィンMVP候補は、前記アフィンMVP候補リストに含まれない、送信方法。