IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 華為技術有限公司の特許一覧

特開2023-184560動きベクトル予測方法及び関連する装置
<>
  • 特開-動きベクトル予測方法及び関連する装置 図1
  • 特開-動きベクトル予測方法及び関連する装置 図2A
  • 特開-動きベクトル予測方法及び関連する装置 図2B
  • 特開-動きベクトル予測方法及び関連する装置 図3
  • 特開-動きベクトル予測方法及び関連する装置 図4
  • 特開-動きベクトル予測方法及び関連する装置 図5
  • 特開-動きベクトル予測方法及び関連する装置 図6
  • 特開-動きベクトル予測方法及び関連する装置 図7
  • 特開-動きベクトル予測方法及び関連する装置 図8
  • 特開-動きベクトル予測方法及び関連する装置 図9
  • 特開-動きベクトル予測方法及び関連する装置 図10
  • 特開-動きベクトル予測方法及び関連する装置 図11A
  • 特開-動きベクトル予測方法及び関連する装置 図11B
  • 特開-動きベクトル予測方法及び関連する装置 図12
  • 特開-動きベクトル予測方法及び関連する装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023184560
(43)【公開日】2023-12-28
(54)【発明の名称】動きベクトル予測方法及び関連する装置
(51)【国際特許分類】
   H04N 19/52 20140101AFI20231221BHJP
   H04N 19/54 20140101ALI20231221BHJP
   H04N 19/46 20140101ALI20231221BHJP
【FI】
H04N19/52
H04N19/54
H04N19/46
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023176813
(22)【出願日】2023-10-12
(62)【分割の表示】P 2020573324の分割
【原出願日】2018-11-22
(31)【優先権主張番号】62/693,422
(32)【優先日】2018-07-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/699,733
(32)【優先日】2018-07-18
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェン,ホァンバン
(72)【発明者】
【氏名】ヤン,ハイタオ
(72)【発明者】
【氏名】チェン,ジァンレェ
(72)【発明者】
【氏名】フゥ,ジィアリ
(57)【要約】
【課題】本願は、動きベクトル予測方法及び関連する装置を提供する。
【解決手段】方法は、候補動きベクトルリストのインデックス値を取得するようビットストリームをパースすることと、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成することであり、K個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2Nパラメータアフィン変換モデルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、NはKと等しくない、ことと、候補動きベクトルリストの中で、インデックス値に基づいてK個の制御点の対象候補動きベクトルを決定することと、K個の制御点の対象候補動きベクトルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得することとを含む。本願は、オーディオ及びビデオコーディング処理のコーディング効率を改善するのを助け、ユーザ要求を満足する。
【選択図】図9
【特許請求の範囲】
【請求項1】
符号化デバイスによって実施されるビデオ画像符号化方法であって、
現在のブロックのアフィンモデルが2×Kパラメータアフィン変換モデルであり、前記現在のブロックの近傍ブロックのアフィン変換モデルが2×Nパラメータアフィン変換モデルである場合に、前記近傍ブロックのための前記2×Nパラメータアフィン変換モデルに従って、前記現在のブロックのK個の制御点の候補動きベクトル予測子を取得することであり、前記2×Nパラメータアフィン変換モデルは、前記近傍ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2に等しい整数であり、Kは3に等しい整数であり、前記近傍ブロックは、前記現在のブロックに空間的に近接する符号化された画像ブロックであり、前記現在のブロックは、複数のサブブロックを含む、前記取得することと、
前記現在のブロックの前記K個の制御点の前記候補動きベクトル予測子を含む制御点動きベクトル予測子候補リストを構成することと、
前記制御点動きベクトル予測子候補リストの中で、前記K個の制御点の対象候補動きベクトル予測子を決定することと、
前記現在のブロックに関連するシンタックス要素をビットストリームに符号化することであり、前記シンタックス要素は、前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の位置を示すインデックス値を含む、前記符号化することと
を有する方法。
【請求項2】
前記現在のブロックの3つの制御点の候補動きベクトル予測子は、前記現在のブロック前記近傍ブロックのための4パラメータアフィン変換モデルに基づき取得され、前記近傍ブロックの前記N個の制御点は、前記近傍ブロックの左上制御点及び右上制御点であるが、前記現在のブロックの前記K個の制御点は、前記現在のブロックの左上制御点、左下制御点及び右上制御点である、
請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記3つの制御点の前記候補動きベクトル予測子は、前記現在のブロックの左上サンプル位置での動きベクトル予測子、前記現在のブロックの右上サンプル位置での動きベクトル予測子、及び前記現在のブロックの左下サンプル位置での動きベクトル予測子を含む、
請求項2に記載の方法。
【請求項4】
前記現在のブロックの前記3つの制御点の前記候補動きベクトル予測子は、次の式
【数1】
に従って計算され、
vxは、前記現在のブロックの前記左上サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記左上サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記現在のブロックの前記右上サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記右上サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記現在のブロックの前記左下サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記左下サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記近傍ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、前記近傍ブロックの前記左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、前記近傍ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、前記近傍ブロックの前記右上サンプル位置に対応する動きベクトルの垂直成分であり、xは、前記現在のブロックの前記左上サンプル位置の水平座標であり、yは、前記現在のブロックの前記左上サンプル位置の垂直座標であり、xは、前記現在のブロックの前記右上サンプル位置の水平座標であり、yは、前記現在のブロックの前記右上サンプル位置の垂直座標であり、xは、前記現在のブロックの前記左下サンプル位置の水平座標であり、yは、前記現在のブロックの前記左下サンプル位置の垂直座標であり、xは、前記近傍ブロックの前記左上サンプル位置の水平座標であり、yは、前記近傍ブロックの前記左上サンプル位置の垂直座標であり、xは、前記近傍ブロックの前記右上サンプル位置の水平座標であり、yは、前記近傍ブロックの前記右上サンプル位置の垂直座標である、
請求項3に記載の方法。
【請求項5】
当該方法は、アドバンスト動きベクトル予測(AMVP)モードで使用されるか、あるいは、前記制御点動きベクトル予測子候補リストは、前記AMVPモードに対応する制御点動きベクトル予測子候補リストであるか、あるいは、前記対象候補動きベクトル予測子の前記インデックス値は、前記AMVPモードに対応する前記制御点動きベクトル予測子候補リストのインデックス値である、
請求項3に記載の方法。
【請求項6】
前記現在のブロックに関連する前記シンタックス要素を前記ビットストリームに符号化することは、
前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の前記位置を示す前記インデックス値と、前記現在のブロックの前記K個の制御点の動きベクトル差分とを前記ビットストリームに符号化することを有する、
請求項1に記載の方法。
【請求項7】
符号化デバイスであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサへ結合され、前記1つ以上のプロセッサによって実行され、当該符号化デバイスに、
現在のブロックのアフィンモデルが2×Kパラメータアフィン変換モデルであり、前記現在のブロックの近傍ブロックのアフィン変換モデルが2×Nパラメータアフィン変換モデルである場合に、前記近傍ブロックのための前記2×Nパラメータアフィン変換モデルに従って、前記現在のブロックのK個の制御点の候補動きベクトル予測子を取得することであり、前記2×Nパラメータアフィン変換モデルは、前記近傍ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2に等しい整数であり、Kは3に等しい整数であり、前記近傍ブロックは、前記現在のブロックに空間的に近接する符号化された画像ブロックであり、前記現在のブロックは、複数のサブブロックを含む、前記取得することと、
前記現在のブロックの前記K個の制御点の前記候補動きベクトル予測子を含む制御点動きベクトル予測子候補リストを構成することと、
前記制御点動きベクトル予測子候補リストの中で、前記K個の制御点の対象候補動きベクトル予測子を決定することと、
前記現在のブロックに関連するシンタックス要素をビットストリームに符号化することであり、前記シンタックス要素は、前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の位置を示すインデックス値を含む、前記符号化することと
を実行させるプログラミング命令を記憶するコンピュータ可読記憶媒体と
を有する符号化デバイス。
【請求項8】
前記現在のブロックの3つの制御点の候補動きベクトル予測子は、前記現在のブロック前記近傍ブロックのための4パラメータアフィン変換モデルに基づき取得され、前記近傍ブロックの前記N個の制御点は、前記近傍ブロックの左上制御点及び右上制御点であるが、前記現在のブロックの前記K個の制御点は、前記現在のブロックの左上制御点、左下制御点及び右上制御点である、
請求項7に記載の符号化デバイス。
【請求項9】
前記現在のブロックの前記3つの制御点の前記候補動きベクトル予測子は、前記現在のブロックの左上サンプル位置での動きベクトル予測子、前記現在のブロックの右上サンプル位置での動きベクトル予測子、及び前記現在のブロックの左下サンプル位置での動きベクトル予測子を含む、
請求項8に記載の符号化デバイス。
【請求項10】
前記現在のブロックの前記3つの制御点の前記候補動きベクトル予測子は、次の式
【数2】
に従って計算され、
vxは、前記現在のブロックの前記左上サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記左上サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記現在のブロックの前記右上サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記右上サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記現在のブロックの前記左下サンプル位置に対応する動きベクトル予測子の水平成分であり、vyは、前記現在のブロックの前記左下サンプル位置に対応する動きベクトル予測子の垂直成分であり、vxは、前記近傍ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、前記近傍ブロックの前記左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、前記近傍ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、前記近傍ブロックの前記右上サンプル位置に対応する動きベクトルの垂直成分であり、xは、前記現在のブロックの前記左上サンプル位置の水平座標であり、yは、前記現在のブロックの前記左上サンプル位置の垂直座標であり、xは、前記現在のブロックの前記右上サンプル位置の水平座標であり、yは、前記現在のブロックの前記右上サンプル位置の垂直座標であり、xは、前記現在のブロックの前記左下サンプル位置の水平座標であり、yは、前記現在のブロックの前記左下サンプル位置の垂直座標であり、xは、前記近傍ブロックの前記左上サンプル位置の水平座標であり、yは、前記近傍ブロックの前記左上サンプル位置の垂直座標であり、xは、前記近傍ブロックの前記右上サンプル位置の水平座標であり、yは、前記近傍ブロックの前記右上サンプル位置の垂直座標である、
請求項9に記載の符号化デバイス。
【請求項11】
前記制御点動きベクトル予測子候補リストは、アドバンスト動きベクトル予測(AMVP)モードに対応する制御点動きベクトル予測子候補リストであるか、あるいは、前記対象候補動きベクトル予測子の前記インデックス値は、前記AMVPモードに対応する前記制御点動きベクトル予測子候補リストのインデックス値である、
請求項9に記載の符号化デバイス。
【請求項12】
前記1つ以上のプロセッサは更に、前記命令を実行して、前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の前記位置を示す前記インデックス値と、前記現在のブロックの前記K個の制御点の動きベクトル差分とを前記ビットストリームに符号化する、
請求項7に記載の符号化デバイス。
【請求項13】
ビデオ画像の符号化のためのコンピュータ命令を記憶する非一時的なコンピュータ可読媒体であって、
前記命令は、1つ以上のプロセッサによって実行される場合に、前記1つ以上のプロセッサに、
現在のブロックのアフィンモデルが2×Kパラメータアフィン変換モデルであり、前記現在のブロックの近傍ブロックのアフィン変換モデルが2×Nパラメータアフィン変換モデルである場合に、前記近傍ブロックのための前記2×Nパラメータアフィン変換モデルに従って、前記現在のブロックのK個の制御点の候補動きベクトル予測子を取得することであり、前記2×Nパラメータアフィン変換モデルは、前記近傍ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2に等しい整数であり、Kは3に等しい整数であり、前記近傍ブロックは、前記現在のブロックに空間的に近接する符号化された画像ブロックであり、前記現在のブロックは、複数のサブブロックを含む、前記取得することと、
前記現在のブロックの前記K個の制御点の前記候補動きベクトル予測子を含む制御点動きベクトル予測子候補リストを構成することと、
前記制御点動きベクトル予測子候補リストの中で、前記K個の制御点の対象候補動きベクトル予測子を決定することと、
前記現在のブロックに関連するシンタックス要素をビットストリームに符号化することであり、前記シンタックス要素は、前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の位置を示すインデックス値を含む、前記符号化することと
を有する動作を実行させる、
非一時的なコンピュータ可読媒体。
【請求項14】
前記現在のブロックの3つの制御点の候補動きベクトル予測子は、前記現在のブロック前記近傍ブロックのための4パラメータアフィン変換モデルに基づき取得され、前記近傍ブロックの前記N個の制御点は、前記近傍ブロックの左上制御点及び右上制御点であるが、前記現在のブロックの前記K個の制御点は、前記現在のブロックの左上制御点、左下制御点及び右上制御点である、
請求項13に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記現在のブロックの前記3つの制御点の前記候補動きベクトル予測子は、前記現在のブロックの左上サンプル位置での動きベクトル予測子、前記現在のブロックの右上サンプル位置での動きベクトル予測子、及び前記現在のブロックの左下サンプル位置での動きベクトル予測子を含む、
請求項14に記載の非一時的なコンピュータ可読媒体。
【請求項16】
前記制御点動きベクトル予測子候補リストは、アドバンスト動きベクトル予測(AMVP)モードに対応する制御点動きベクトル予測子候補リストであるか、あるいは、前記対象候補動きベクトル予測子の前記インデックス値は、前記AMVPモードに対応する前記制御点動きベクトル予測子候補リストのインデックス値である、
請求項15に記載の非一時的なコンピュータ可読媒体。
【請求項17】
前記現在のブロックに関連する前記シンタックス要素を前記ビットストリームに符号化することは、
前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の前記位置を示す前記インデックス値と、前記現在のブロックの前記K個の制御点の動きベクトル差分とを前記ビットストリームに符号化することを有する、
請求項13に記載の非一時的なコンピュータ可読媒体。
【請求項18】
ビデオ画像符号化方法によって生成されたビットストリームを有する非一時的なコンピュータ可読媒体であって、
前記ビデオ画像符号化方法は、
現在のブロックのアフィンモデルが2×Kパラメータアフィン変換モデルであり、前記現在のブロックの近傍ブロックのアフィン変換モデルが2×Nパラメータアフィン変換モデルである場合に、前記近傍ブロックのための前記2×Nパラメータアフィン変換モデルに従って、前記現在のブロックのK個の制御点の候補動きベクトル予測子を取得することであり、前記2×Nパラメータアフィン変換モデルは、前記近傍ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2に等しい整数であり、Kは3に等しい整数であり、前記近傍ブロックは、前記現在のブロックに空間的に近接する符号化された画像ブロックであり、前記現在のブロックは、複数のサブブロックを含む、前記取得することと、
前記現在のブロックの前記K個の制御点の前記候補動きベクトル予測子を含む制御点動きベクトル予測子候補リストを構成することと、
前記制御点動きベクトル予測子候補リストの中で、前記K個の制御点の対象候補動きベクトル予測子を決定することと、
前記現在のブロックに関連するシンタックス要素を前記ビットストリームに符号化することであり、前記シンタックス要素は、前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の位置を示すインデックス値を含む、前記符号化することと
を有する、
非一時的なコンピュータ可読媒体。
【請求項19】
前記現在のブロックの3つの制御点の候補動きベクトル予測子は、前記現在のブロック前記近傍ブロックのための4パラメータアフィン変換モデルに基づき取得され、前記近傍ブロックの前記N個の制御点は、前記近傍ブロックの左上制御点及び右上制御点であるが、前記現在のブロックの前記K個の制御点は、前記現在のブロックの左上制御点、左下制御点及び右上制御点である、
請求項18に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記現在のブロックに関連する前記シンタックス要素を前記ビットストリームに符号化することは、
前記制御点動きベクトル予測子候補リストにおける前記K個の制御点の前記対象候補動きベクトル予測子の前記位置を示す前記インデックス値と、前記現在のブロックの前記K個の制御点の動きベクトル差分とを前記ビットストリームに符号化することを有する、
請求項18に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ビデオコーディング技術の分野に、特に、ビデオ画像の動きベクトルを予測する方法及び装置と、対応する符号器及び復号器とに関係がある。
【背景技術】
【0002】
ビデオコーディング(ビデオ符号化及び復号化)は、広範囲のデジタルビデオ用途、例えば、放送デジタルTV、インターネット及びモバイルネットワーク上のビデオ伝送、ビデオチャットやビデオ会議などの実時間の対話アプリケーション、DVD及びブルーレイディスク、ビデオコンテンツ取得及び編集システム、並びにセキュリティ用途のカムコーダ、において使用されている。
【0003】
1990年のH.261標準規格におけるブロックベースのハイブリッドビデオコーディングアプローチの開発以来、新しいビデオコーディング技術及びツールが開発され、新しいビデオコーディング標準規格の基礎を形成した。更なるビデオコーディング標準規格には、MPEG-1ビデオ、MPEG-2ビデオ、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG-4 パート10 アドバンスト・ビデオ・コーディング(Advanced Video Coding,AVC)、ITU-T H.265/高効率ビデオコーディング(High Efficiency Video Coding,HEVC)、及び拡張、例えば、これらの標準規格のスケーラビリティ及び/又は3D(three-dimensional)拡張がある。ビデオ作成及び使用がより偏在的になるにつれて、ビデオトラフィックは、通信ネットワーク及びデータ記憶に対する最大の負荷である。従って、ビデオコーディング標準規格の大部分の目標の1つは、画像品質を犠牲にせずにその前身と比較してビットレート低減を達成することであった。最新の高効率ビデオコーディング(High Efficiency Video Coding,HEVC)は、画像品質を犠牲にせずにAVCの約2倍ビデオを圧縮することができるが、HEVCと比較してビデオを更に圧縮する新しい技術が更に渇望されている。
【発明の概要】
【0004】
本発明の実施形態は、コーディング効率を改善しかつユーザ要求を満足するように、動きベクトル予測方法及び関連する装置を提供する。
【0005】
第1の態様に従って、本発明の実施形態は、動きベクトル予測方法を提供する。方法は、復号器側又は符号器側の視点から記載される。方法は、処理されるべき画像ブロックを予測するために使用されてよい。処理されるべき画像ブロックは、ビデオ画像を分割することによって取得される。符号器側で、処理されるべき画像ブロックは、現在のアフィンコーディングブロックであり、処理されるべき画像ブロックに空間的に近接する復号された画像ブロックは、隣接アフィンコーディングブロックである。復号器側で、処理されるべき画像ブロックは、現在のアフィン復号化ブロックであり、処理されるべき画像ブロックに空間的に近接する復号された画像ブロックは、隣接アフィン復号化ブロックである。記載を簡単にするために、処理されるべき画像ブロックは、現在のブロックと呼ばれてよく、処理されるべき画像ブロックに空間的に近接する参照ブロックは、隣接ブロックと呼ばれてよい。方法は、候補動きベクトルリストのインデックス値を取得するようビットストリームをパースすることと、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成することであり、K個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2×Nパラメータアフィン変換モデルに基づいて取得され、2×Nパラメータアフィン変換モデルは、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、NはKと等しくないことと、候補動きベクトルリストの中で、インデックス値に基づいてK個の制御点の対象候補動きベクトルを決定することと、K個の制御点の対象候補動きベクトルに基づいて現在のブロックの各サブブロックの位置に対応する予測動きベクトルを取得することとを含む。様々なサブブロックの位置に対応する予測動きベクトルは夫々、複数のサブブロックの動き補償のために使用されてよい。
【0006】
本発明のこの実施形態において、現在のブロックを予測する過程で、復号器側は、現在のブロックの候補リストを構成するフェーズで(例えば、アフィン変換モデルに基づくAMVPモード又はマージモードのための候補動きベクトルリストを構成するフェーズで)、隣接ブロックのアフィン変換モデルを使用することによって現在のブロックのアフィン変換モデルを構成することができる、ことが分かる。2つのブロックのアフィン変換モデルは、異なってよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0007】
第1の態様に従って、可能な実施において、現在のブロックの1つ以上の前もってセットされた空間的に隣接するブロックの利用可能性は、前もってセットされた順序で決定されてよく、次いで、前もってセットされた順序にある利用可能な隣接ブロックは、順次に取得される。前もってセットされた利用可能な隣接ブロックは、処理されるべき画像ブロックの上、左、右上、左下、又は左上に位置する隣接画像ブロックを含んでよい。例えば、左に位置する隣接画像ブロック、上に位置する隣接画像ブロック、右上に位置する隣接画像ブロック、左下に位置する隣接画像ブロック、及び左上に位置する隣接画像ブロックは、順次に利用可能性を確認される。
【0008】
第1の態様に従って、可能な実施において、N=2かつK=3である。具体的に言えば、4パラメータアフィン変換モデルがアフィン復号化ブロック(符号器側ではアフィンコーディングブロック)に使用され、6パラメータアフィン変換モデルが現在のブロックに使用される場合に、現在のブロックの3つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている4パラメータアフィン変換モデルに基づいて取得される。
【0009】
例えば、現在のブロックの3つの制御点の候補動きベクトルは、現在のブロックの左上サンプル位置(又は左上角と呼ばれる、以下同じ)(x0,y0)での動きベクトル(vx0,vy0)と、現在のブロックの右上サンプル位置(又は右上角と呼ばれる、以下同じ)(x1,y1)での動きベクトル(vx1,vy1)と、現在のブロックの左下サンプル位置(又は左下角と呼ばれる、以下同じ)(x2,y2)での動きベクトル(vx2,vy2)とを含む。
【0010】
現在のブロックの3つの制御点の候補動きベクトルが、現在のブロックの隣接ブロックに使用されている4パラメータアフィン変換モデルに基づいて取得されることは、現在のブロックの左上角(x0,y0)での動きベクトル(vx0,vy0)と、現在のブロックの右上角(x1,y1)での動きベクトル(vx1,vy1)と、現在のブロックの左下角(x2,y2)での動きベクトル(vx2,vy2)とが、最初に、次の式:
【数1】
に従って計算されることを含み、
vxは、現在のブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの左下サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左下サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、xは、現在のブロックの左上サンプル位置の水平座標であり、yは、現在のブロックの左上サンプル位置の垂直座標であり、xは、現在のブロックの右上サンプル位置の水平座標であり、yは、現在のブロックの右上サンプル位置の垂直座標であり、xは、隣接ブロックの左上サンプル位置の水平座標であり、yは、隣接ブロックの左上サンプル位置の垂直座標であり、xは、隣接ブロックの右上サンプル位置の水平座標であり、yは、隣接ブロックの右上サンプル位置の垂直座標である。
【0011】
第1の態様に従って、可能な実施において、N=3かつK=2である。具体的に言えば、6パラメータアフィン変換モデルがアフィン復号化ブロック(符号器側ではアフィンコーディングブロック)に使用され、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている6パラメータアフィン変換モデルに基づいて取得される。
【0012】
例えば、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの左上サンプル位置(又は左上角と呼ばれる、以下同じ)(x0,y0)での動きベクトル(vx0,vy0)と、現在のブロックの右上サンプル位置(又は右上角と呼ばれる、以下同じ)(x1,y1)での動きベクトル(vx1,vy1)とを含み、現在のブロックの2つの制御点の候補動きベクトルが、現在のブロックの隣接ブロックに使用されている6パラメータアフィン変換モデルに基づいて取得されることは、現在のブロックの2つの制御点の候補動きベクトルが、次の式
【数2】
に従って計算されることを含み、
vxは、現在のブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左下サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左下サンプル位置に対応する動きベクトルの垂直成分であり、xは、現在のブロックの左上サンプル位置の水平座標であり、yは、現在のブロックの左上サンプル位置の垂直座標であり、xは、現在のブロックの右上サンプル位置の水平座標であり、yは、現在のブロックの右上サンプル位置の垂直座標であり、xは、現在のブロックの左下サンプル位置の水平座標であり、yは、現在のブロックの左下サンプル位置の垂直座標であり、xは、隣接ブロックの左上サンプル位置の水平座標であり、yは、隣接ブロックの左上サンプル位置の垂直座標であり、xは、隣接ブロックの右上サンプル位置の水平座標であり、yは、隣接ブロックの右上サンプル位置の垂直座標であり、xは、隣接ブロックの左下サンプル位置の水平座標であり、yは、隣接ブロックの左下サンプル位置の垂直座標である。
【0013】
本発明のこの実施形態において、現在のブロックをパースするフェーズで(例えば、候補動きベクトルリストを構成するフェーズで)、現在のブロックのアフィン変換モデルは、隣接ブロックのアフィン変換モデルを使用することによって構成され得る、ことが分かる。2つのブロックのアフィン変換モデルは、異なってよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0014】
第1の態様に従って、現在のブロックを再構成するフェーズの実施形態において、現在のブロックの各サブブロックの予測動きベクトルを取得するプロセスは、次のプロシージャ:K個の制御点の対象候補動きベクトルに基づいて現在のブロックの2×Kパラメータアフィン変換モデルを取得することと、2×Kパラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得することとを含む。
【0015】
例えば、6パラメータアフィン運動モデルが現在のアフィン復号化ブロックに使用される場合に、現在のブロックの6パラメータアフィン変換モデルは、現在のブロックの3つの制御点(すなわち、K=3)の対象候補動きベクトルに基づいて構成される。サブブロック内のサンプル座標(x(i,j),y(i,j))は、各サブブロック内のサンプル座標に対応する動きベクトルを取得するように6パラメータアフィン運動モデルについての式に代入され、取得された動きベクトルは、サブブロック内の全てのサンプルの動きベクトル(vx(i,j),vy(i,j))として使用される。
【数3】
【0016】
他の例として、4パラメータアフィン運動モデルが現在のアフィン復号化ブロックに使用される場合に、現在のブロックの4パラメータアフィン変換モデルは、現在のブロックの2つの制御点(すなわち、K=2)の対象候補動きベクトルに基づいて構成される。サブブロック内のサンプル座標(x(i,j),y(i,j))は、各サブブロック内のサンプル座標に対応する動きベクトルを取得するように4パラメータアフィン運動モデルについての式に代入され、取得された動きベクトルは、サブブロック内の全てのサンプルの動きベクトル(vx(i,j),vy(i,j))として使用される。
【数4】
【0017】
第1の態様に従って、現在のブロックを再構成するフェーズの他の実施形態において、現在のブロックの各サブブロックの予測動きベクトルを取得するプロセスは、次のプロシージャ:現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロック6パラメータアフィン変換モデルを取得することと、現在のブロックの6パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得することとを含む。
【0018】
すなわち、この解決法では、パースフェーズ(リスト構成フェーズ)で現在のブロックに使用されたアフィン変換モデルにかかわらず、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルが、各サブブロックを再構成するように、現在のブロックの各サブブロックの動きベクトル情報を取得するために一律に使用される。例えば、4パラメータアフィン変換モデル又は8パラメータ双線形モデルがパースフェーズで使用される場合に、現在のブロックの6パラメータアフィン変換モデルが更に構成される。例えば、6パラメータアフィン変換モデルがパースフェーズで使用される場合に、現在のブロックの6パラメータアフィン変換モデルは、引き続き再構成フェーズで使用される。
【0019】
例えば、4パラメータアフィン変換モデルは、パースフェーズで現在のブロックに使用され、4パラメータアフィン変換モデル又は他のパラメータアフィン変換モデルは、隣接ブロックに使用されてよい。従って、現在のブロックの2つの制御点の動きベクトルが取得され、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)が取得された後、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルは、現在のブロックの2つの制御点の動きベクトルに基づいて構成される必要がある。
【0020】
例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)に基づいて、第3の制御点の動きベクトルは、次の式に従って取得されてよい。第3の制御点の動きベクトルは、例えば、現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)である。
【数5】
【0021】
次いで、再構成フェーズにおける現在のブロックの6パラメータアフィン変換モデルは、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)と、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)と、現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)とを使用することによって取得される。6パラメータアフィン変換モデルについての式は、次の通りである:
【数6】
【0022】
次いで、現在のブロックの左上角(又は他の基準点)に対する現在のブロックの各サブブロック(又は各動き補償ユニット)の前もってセットされた位置(例えば、中心点)でのサンプルの座標(x(i,j),y(i,j))は、各サブブロックをその後に再構成するように、各サブブロック(又は各動き補償ユニット)の前もってセットされた位置でのサンプルの動き情報を取得するよう6パラメータアフィン変換モデルについての上記の式に代入される。
【0023】
本発明のこの実施形態において、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルは、現在のブロックを予測するために一律に使用され得る。現在のブロックのアフィン運動を記述する運動モデルのパラメータの数が多いほど、精度は高くなり、計算複雑性も高くなる。この解決法において、再構成フェーズで構成された6パラメータアフィン変換モデルは、画像ブロックの平行移動、スケーリング、及び回転などのアフィン変換を記述し、モデル複雑性とモデリング能力との間の良いバランスを達成することができる。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0024】
第1の態様に従って、可能な実施において、アフィン変換モデルに基づくAMVPモードで、K個の制御点の対象候補動きベクトルに基づいて2×Kパラメータアフィン変換モデルを取得することは、K個の制御点の対象候補動きベクトル及びK個の制御点の動きベクトル差に基づいてK個の制御点の動きベクトルを取得することであり、K個の制御点の動きベクトル差は、ビットストリームをパースすることによって取得される、ことと、K個の制御点の動きベクトルに基づいて現在のブロックの2×Kパラメータアフィン変換モデルを取得することとを含む。
【0025】
第1の態様に従って、可能な実施において、符号器側及び復号器側は、インター予測を行うためにアフィン変換モデルに基づくAMVPモードを使用し、そして、構成されたリストは、アフィン変換モデルに基づくAMVPモードのための候補動きベクトルリストである。
【0026】
本発明のいくつかの具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、本明細書で説明されている第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0027】
本発明のいくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、第1運動モデルに基づく動きベクトル予測方法と、構成的制御点動きベクトル予測方法とを使用することによって別々に取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0028】
第1の態様に従って、可能な実施において、符号器側及び復号器側は、インター予測を行うためにアフィン変換モデルに基づくマージモードを使用し、そして、構成されたリストは、アフィン変換モデルに基づくマージモードのための候補動きベクトルリストである。
【0029】
本発明のいくつかの具体的な実施形態において、現在のブロックの制御点の候補動きベクトルはまた、本明細書で説明されている第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、マージモードに対応する候補動きベクトルリストに加えられてもよい。
【0030】
本発明のいくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、第1運動モデルに基づく動きベクトル予測方法と、構成的制御点動きベクトル予測方法とを使用することによって別々に取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0031】
第1の態様に従って、可能な実施において、複数の隣接ブロックが存在する場合に、すなわち、現在のブロックが複数の隣接アフィン復号化ブロックを有する場合に、可能な実施形態で、符号器側及び復号器側は両方とも、最初に、モデルパラメータの数が現在のブロックのそれと同じであるアフィン復号化ブロックを使用することによって現在のブロックの制御点の候補動きベクトルを取得し、制御点の取得された候補動きベクトルを、AMVPモードに対応する候補動きベクトルリストに加えることができる。次いで、現在のブロックの制御点の候補動きベクトルは、モデルパラメータの数が現在のブロックのそれとは異なるアフィン復号化ブロックを使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。このようにして、モデルパラメータの数が現在のブロックのそれと同じであるアフィン復号化ブロックを使用することによって取得される、現在のブロックの制御点の候補動きベクトルは、リストの最前位置に位置付けられる。この設計は、ビットストリームで伝送されるビットの数を減らすのを助ける。
【0032】
第1の態様に従って、可能な実施において、復号器側が現在のブロックの制御点の候補動きベクトルを導出する過程で、アフィン復号化ブロックのアフィン変換モデルのフラグ情報(flag)が取得される必要があり得る。フラグは、復号器側でローカルで予め記憶され、そして、アフィン復号化ブロックのサブブロックを予測するために実際に使用されるアフィン復号化ブロックのアフィン変換モデルを示すために使用される。
【0033】
例えば、適用シナリオにおいて、復号器側が、アフィン復号化ブロックのフラグを識別することによって、アフィン復号化ブロックに実際に使用されたアフィン変換モデルのモデルパラメータの数が、現在のブロックに使用されたアフィン変換モデルのそれとは異なる(又はそれと同じである)と決定する場合に、復号器側は、アフィン復号化ブロックに実際に使用されたアフィン変換モデルを使用することによって現在のブロックの制御点の候補動きベクトルを導出するようトリガされる。
【0034】
第1の態様に従って、可能な実施において、復号器側が現在のブロックの制御点の候補動きベクトルを導出する過程で、アフィン復号化ブロックのアフィン変換モデルのフラグは、必要とされなくてもよい。
【0035】
例えば、適用シナリオにおいて、復号器側が現在のブロックに使用されたアフィン変換モデルを決定した後、復号器側は、アフィン復号化ブロックの特定の数(特定の数は、現在のブロックの制御点の数と同じか又は異なる)の制御点を取得し、アフィン復号化ブロックの特定の数の制御点を使用することによってアフィン変換モデルを構成し、次いで、アフィン変換モデルを使用することによって現在のブロックの制御点の候補動きベクトルを導出する。
【0036】
第2の態様に従って、本発明の実施形態は、他の動きベクトル予測方法を提供する。方法は、候補動きベクトルリストのインデックス値を取得するようビットストリームをパースすることと、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成することであり、現在のブロックのK個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2Nパラメータアフィン変換モデルに基づいて取得され、2Nパラメータアフィン変換モデルは、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、隣接ブロックは、現在のブロックに空間的に近接する復号された画像ブロックであり、現在のブロックは、複数のサブブロックを含む、ことと、候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定することと、現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得することと、現在のブロックの6パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得することとを含む。
【0037】
本発明のこの実施形態において、6パラメータアフィン変換モデルは、現在のブロックを再構成するフェーズで現在のブロックを予測するために一律に使用され得る、ことが分かる。現在のブロックのアフィン運動を記述する運動モデルのパラメータの数が多いほど、精度は高くなり、計算複雑性も高くなる。この解決法において、再構成フェーズで構成された6パラメータアフィン変換モデルは、画像ブロックの平行移動、スケーリング、及び回転などのアフィン変換を記述し、モデル複雑性とモデリング能力との間の良いバランスを達成することができる。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0038】
第2の態様に従って、可能な実施において、N=2かつK=3である。
【0039】
相応して、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている4パラメータアフィン変換モデルに基づいて取得される。
【0040】
第2の態様に従って、可能な実施において、N=3かつK=2である。相応して、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている6パラメータアフィン変換モデルに基づいて取得される。
【0041】
第2の態様に従って、可能な実施において、現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得することは、
現在のブロックの2つの制御点の対象候補動きベクトルに基づいて現在のブロックの4パラメータアフィン変換モデルを取得することと、
現在のブロックの4パラメータアフィン変換モデルに基づいて現在のブロックの第3の制御点の動きベクトルを取得することと、
現在のブロックの2つの制御点の対象候補動きベクトル及び第3の制御点の動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得することと
を含む。
【0042】
第2の態様に従って、可能な実施において、現在のブロックの2つの制御点の対象候補動きベクトルに基づいて現在のブロックの4パラメータアフィン変換モデルを取得することは、
現在のブロックの2つの制御点の対象候補動きベクトル及び現在のブロックの2つの制御点の動きベクトル差に基づいて現在のブロックの2つの制御点の動きベクトルを取得することであり、現在のブロックの2つの制御点の動きベクトル差は、ビットストリームをパースすることによって取得される、ことと、
現在のブロックの2つの制御点の動きベクトルに基づいて現在のブロックの4パラメータアフィン変換モデルを取得することと
を含み、
相応して、現在のブロックの2つの制御点の対象候補動きベクトル及び第3の制御点の動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得することは、具体的に、
現在のブロックの2つの制御点の動きベクトル及び第3の制御点の動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得することを含む。
【0043】
第2の態様に従って、可能な実施において、N=2かつK=3である。相応して、現在のブロックの3つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている4パラメータアフィン変換モデルに基づいて取得される。
【0044】
第3の態様に従って、本発明の実施形態は、復号化デバイスを提供する。デバイスは、ビットストリームの形でビデオデータを記憶するよう構成される記憶ユニットと、候補動きベクトルリストのインデックス値を取得するようビットストリームをパースするよう構成されるエントロピ復号化ユニットと、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成するよう構成され、現在のブロックのK個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2×Nパラメータアフィン変換モデルに基づいて取得され、2×Nパラメータアフィン変換モデルは、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、NはKと等しくなく、隣接ブロックは、現在のブロックに空間的に近接する復号された画像ブロックであり、現在のブロックは、複数のサブブロックを含む、予測処理ユニットであり、候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定し、現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得するよう構成される予測処理ユニットとを含む。
【0045】
具体的な実施形態において、デバイスのモジュールは、第1の態様で記載される方法を実施するよう構成されてよい。
【0046】
第4の態様に従って、本発明の実施形態は、復号化デバイスを提供する。デバイスは、ビットストリームの形でビデオデータを記憶するよう構成される記憶ユニットと、候補動きベクトルリストのインデックス値を取得するようビットストリームをパースするよう構成されるエントロピ復号化ユニットと、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成するよう構成され、現在のブロックのK個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2Nパラメータアフィン変換モデルに基づいて取得され、2Nパラメータアフィン変換モデルは、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、隣接ブロックは、現在のブロックに空間的に近接する復号された画像ブロックであり、現在のブロックは、複数のサブブロックを含む、予測処理ユニットであり、候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定し、現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得し、現在のブロックの6パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得するよう構成される予測処理ユニットとを含む。
【0047】
具体的な実施形態において、デバイスのモジュールは、第2の態様で記載される方法を実施するよう構成されてよい。
【0048】
第5の態様に従って、本発明の実施形態は、ビデオ復号化デバイスを提供する。デバイスは、
ビットストリームの形でビデオデータを記憶するよう構成されるメモリと、
候補動きベクトルリストのインデックス値を取得するようビットストリームをパースし、現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成するよう構成され、現在のブロックのK個の制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている2×Nパラメータアフィン変換モデルに基づいて取得され、2×Nパラメータアフィン変換モデルは、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nは2以上4以下の整数であり、Kは2以上4以下の整数であり、NはKと等しくなく、隣接ブロックは、現在のブロックに空間的に近接する復号された画像ブロックであり、現在のブロックは、複数のサブブロックを含む、復号器であり、候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定し、現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得するよう構成される復号器とを含む。
【0049】
第5の態様に従って、いくつかの実施において、Nは2に等しく、Kは3に等しい。相応して、現在のブロックの3つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている4パラメータアフィン変換モデルに基づいて取得される。
【0050】
第5の態様に従って、いくつかの実施において、現在のブロックの3つの制御点の候補動きベクトルは、現在のブロックの左上サンプル位置での動きベクトルと、現在のブロックの右上サンプル位置での動きベクトルと、現在のブロックの左下サンプル位置での動きベクトルとを含む。
【0051】
復号器は、現在のブロックの3つの制御点の候補動きベクトルを、次の式
【数7】
に従って計算するよう構成され、
vxは、現在のブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの左下サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左下サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、xは、現在のブロックの左上サンプル位置の水平座標であり、yは、現在のブロックの左上サンプル位置の垂直座標であり、xは、現在のブロックの右上サンプル位置の水平座標であり、yは、現在のブロックの右上サンプル位置の垂直座標であり、xは、現在のブロックの左下サンプル位置の水平座標であり、yは、現在のブロックの左下サンプル位置の垂直座標であり、xは、隣接ブロックの左上サンプル位置の水平座標であり、yは、隣接ブロックの左上サンプル位置の垂直座標であり、xは、隣接ブロックの右上サンプル位置の水平座標であり、yは、隣接ブロックの右上サンプル位置の垂直座標である。
【0052】
第5の態様に従って、いくつかの実施において、Nは3に等しく、Kは2に等しい。相応して、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの隣接ブロックに使用されている6パラメータアフィン変換モデルに基づいて取得される。
【0053】
第5の態様に従って、いくつかの実施において、現在のブロックの2つの制御点の候補動きベクトルは、現在のブロックの左上サンプル位置での動きベクトルと、現在のブロックの右上サンプル位置での動きベクトルとを含む。
【0054】
復号器は、現在のブロックの2つの制御点の候補動きベクトルを、次の式
【数8】
に従って計算するよう構成され、
vxは、現在のブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、現在のブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、現在のブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの右上サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの右上サンプル位置に対応する動きベクトルの垂直成分であり、vxは、隣接ブロックの左下サンプル位置に対応する動きベクトルの水平成分であり、vyは、隣接ブロックの左下サンプル位置に対応する動きベクトルの垂直成分であり、xは、現在のブロックの左上サンプル位置の水平座標であり、yは、現在のブロックの左上サンプル位置の垂直座標であり、xは、現在のブロックの右上サンプル位置の水平座標であり、yは、現在のブロックの右上サンプル位置の垂直座標であり、xは、隣接ブロックの左上サンプル位置の水平座標であり、yは、隣接ブロックの左上サンプル位置の垂直座標であり、xは、隣接ブロックの右上サンプル位置の水平座標であり、yは、隣接ブロックの右上サンプル位置の垂直座標であり、xは、隣接ブロックの左下サンプル位置の水平座標であり、yは、隣接ブロックの左下サンプル位置の垂直座標である。
【0055】
第5の態様に従って、いくつかの実施において、復号器は、
現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの2×Kパラメータアフィン変換モデルを取得し、
現在のブロックの2×Kパラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得する
よう特に構成される。
【0056】
第5の態様に従って、いくつかの実施において、復号器は、
現在のブロックのK個の制御点の対象候補動きベクトル及び現在のブロックのK個の制御点の動きベクトル差に基づいて現在のブロックのK個の制御点の動きベクトルを取得し、現在のブロックのK個の制御点の動きベクトル差は、ビットストリームをパースすることによって取得され、
現在のブロックのK個の制御点の動きベクトルに基づいて現在のブロックの2×Kパラメータアフィン変換モデルを取得する
よう特に構成される。
【0057】
第5の態様に従って、いくつかの実施において、候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定した後に、復号器は、
現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得し、
現在のブロックの6パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得する
よう更に構成される。
【0058】
復号器の具体的な機能実施については、第1の態様における関連する記載を参照されたい。
【0059】
第6の態様に従って、本発明の実施形態は、他のビデオ復号化デバイスを提供する。デバイスは、
ビットストリームの形でビデオデータを記憶するよう構成されるメモリと、
候補動きベクトルリストのインデックス値を取得するようビットストリームをパースし;現在のブロックのK個の制御点の候補動きベクトルを含む候補動きベクトルリストを構成し、現在のブロックのK個の制御点の候補動きベクトルが、現在のブロックの隣接ブロックに使用されている2Nパラメータアフィン変換モデルに基づいて取得され、2Nパラメータアフィン変換モデルが、隣接ブロックのN個の制御点の動きベクトルに基づいて取得され、Nが2以上4以下の整数であり、Kが2以上4以下の整数であり、隣接ブロックが、現在のブロックに空間的に近接する復号された画像ブロックであり、現在のブロックが、複数のサブブロックを含み;候補動きベクトルリストの中で、インデックス値に基づいて現在のブロックのK個の制御点の対象候補動きベクトルを決定し;現在のブロックのK個の制御点の対象候補動きベクトルに基づいて現在のブロックの6パラメータアフィン変換モデルを取得し;現在のブロックの6パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの予測動きベクトルを取得するよう構成される復号器とを含む。
【0060】
復号器の具体的な機能実施については、第2の態様における関連する記載を参照されたい。
【0061】
第7の態様に従って、本発明の実施形態は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、命令を記憶し、命令が実行される場合に、1つ以上のプロセッサは、ビデオデータを符号化することを可能にされる。命令は、1つ以上のプロセッサが、第1の態様のいずれかの可能な実施形態で記載される方法を実行することを可能にする。
【0062】
第8の態様に従って、本発明の実施形態は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は、命令を記憶し、命令が実行される場合に、1つ以上のプロセッサは、ビデオデータを符号化することを可能にされる。命令は、1つ以上のプロセッサが、第2の態様のいずれかの可能な実施形態で記載される方法を実行することを可能にする。
【0063】
第9の態様に従って、本発明の実施形態は、プログラムコードを含むコンピュータプログラムを提供する。プログラムコードがコンピュータで実行される場合に、第1の態様のいずれかの可能な実施形態で記載される方法は実行される。
【0064】
第10の態様に従って、本発明の実施形態は、プログラムコードを含むコンピュータプログラムを提供する。プログラムコードがコンピュータで実行される場合に、第2の態様のいずれかの可能な実施形態で記載される方法は実行される。
【0065】
本発明の実施形態において、現在のブロックを符号化及び復号する過程において、現在のブロックパースするフェーズで(例えば、AMVPモード又はマージモードのための候補動きベクトルリストを構成するフェーズで)、現在のブロックのアフィン変換モデルは、隣接ブロックのアフィン変換モデルを使用することによって構成され得る、ことが分かる。その2つのブロックのアフィン変換モデルは、異なってよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを符号化する効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0066】
更には、現在のブロックを符号化及び復号する過程において、復号器側は、画像ブロックを再構成するフェーズで画像ブロックを予測するために6パラメータアフィン変換モデルを一律に使用してよい、ことが分かる。このようにして、本発明のこの実施形態において、現在のブロックを再構成する過程で、モデル複雑性とモデリング能力との間には良いバランスが達成される。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0067】
本発明の実施形態における又は背景におけるより明りょうに技術的解決法を記載するために、下記は、本発明の実施形態又は背景を記載する添付の図面について簡単に説明する。
【図面の簡単な説明】
【0068】
図1】本発明の実施形態を実施するビデオコーディングシステムの構造の例を示すブロック図である。
図2A】本発明の実施形態を実施するビデオ符号器の構造の例を示すブロック図である。
図2B】本発明の実施形態を実施するビデオ復号器の構造の例を示すブロック図である。
図3】本発明の実施形態を実施するビデオコーディングデバイスの例を示すブロック図である。
図4】本発明の実施形態を実施する符号化装置又は復号化装置の例を示すブロック図である。
図5】例となる動作が現在のブロックに対して行われるシナリオを示す概略図である。
図6】他の例となる動作が現在のブロックに対して行われるシナリオを示す概略図である。
図7】他の例となる動作が現在のブロックに対して行われるシナリオを示す概略図である。
図8】他の例となる動作が現在のブロックに対して行われるシナリオを示す概略図である。
図9】本発明の実施形態に従う動きベクトル予測方法のフローチャートである。
図10】他の例となる動作が現在のブロックに対して行われるシナリオを示す概略図である。
図11A】本発明の実施形態に従う現在のブロック及び現在のブロックの動き補償ユニットの概略図である。
図11B】本発明の実施形態に従う他の現在のブロック及び現在のブロックの動き補償ユニットの概略図である。
図12】本発明の実施形態に従う他の動きベクトル予測方法のフローチャートである。
図13】本発明の実施形態に従う他の動きベクトル予測方法のフローチャートである。
【発明を実施するための形態】
【0069】
下記は、最初に、本発明の実施形態における関連する概念について簡単に説明する。本発明の実施形態における技術的解決法は、既存のビデオコーディング標準規格(例えば、H.264及びHEVCなどの標準規格)に適用されるだけでなく、将来のビデオコーディング標準規格(例えば、H.266標準規格)にも適用されてよい。
【0070】
ビデオコーディングは、通常は、ビデオを構成する画像のシーケンス、又はビデオシーケンスを処理することを指す。ビデオコーディングの分野で、「ピクチャ(picture)」、「フレーム(frame)」、及び「画像(image)」との語は、同義語として使用されることがある。本明細書で使用されているビデオコーディングは、ビデオ符号化及びビデオ復号化を含む。ビデオ符号化は発信元側で行われ、通常は、より効率的な記憶及び/又は伝送のために、ビデオ画像を表すデータの量を減らすよう原ビデオ画像を(例えば、圧縮することによって)処理することを含む。ビデオ復号化は、あて先側で行われ、通常は、ビデオ画像を再構成するよう符号器と比較して逆の処理を含む。実施形態におけるビデオ画像の“コーディング”は、ビデオシーケンスの“符号化”又は“復号化”と理解されるべきである。符号化部分及び復号化部分の組み合わせは、CODEC(符号化及び復号化)とも呼ばれる。
【0071】
ビデオシーケンスは、画像(picture)の連続を含み、画像はスライス(slice)に更に分割され、スライスはブロック(block)に更に分割される。ビデオコーディングは、ブロック単位で実行される。いくつかの新しいビデオコーディング標準規格では、「ブロック」という概念は更に拡張される。例えば、マクロブロック(macroblock,MB)はH.264標準規格で導入されている。マクロブロックは、予測符号化のために使用され得る複数の予測ブロック(predictor)に更に分割されてよい。高効率ビデオコーディング(high efficiency video coding,HEVC)標準規格では、「コーディングユニット(coding unit,CU)」、「予測ユニット(prediction unit,PU)」、及び「変換ユニット(transform unit,TU)」などの基本概念が使用されている。複数のブロックユニットは、機能的分割を通じて取得され、新しい木ベース構造を使用することによって記述される。例えば、CUは、四分木に基づいて、より小さいCUに分割されてよく、より小さいCUは、四分木構造を生成するよう更に分割されてよい。CUは、コード化した画像を分割及び符号化するための基本単位である。PU及びTUも、同様の木構造を有している。PUは、予測ブロックに対応してよく、予測コーディングのための基本単位である。CUは、分割パターンに基づいて、複数のPUに更に分割される。TUは、変換ブロックに対応してよく、予測残差を変換するための基本単位である。なお、本質的に、CU、PU、及びTUの全ては、概念的にはブロック(又は画像ブロック)である。
【0072】
例えば、HEVCでは、CTUは、コーディング木として表されている四分木構造を使用することによって、複数のCUに分割される。インター画像(時間的)又はイントラ画像(空間的)予測を使用することによって画像エリアを符号化すべきかどうかに関する決定は、CUレベルで行われる。各CUは、PU分割パターンに基づいて、1つ、2つ、又は4つのPUに更に分割されてよい。1つのPU内では、同じ予測プロセスが適用され、関連情報は、PUベースで復号器へ送信される。PU分割パターンに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CUは、CUのために使用されるコーディング木に類似した他の四分木構造に基づいて、変換ユニット(transform unit,TU)に分割されてよい。ビデオ圧縮技術の近年の開発では、四分木プラス二分木(Quad-tree plus binary tree,QTBT)パーティションフレームが、コーディングブロックを分割するために使用されている。QTBTブロック構造では、CUは正方形又は長方形であってよい。
【0073】
本明細書中、記載及び理解を容易にするために、現在のコード化された画像内の符号化されるべき画像ブロックは、現在のブロックと呼ばれ得る。例えば、符号化では、現在のブロックは、目下符号化中であるブロックであり、復号化では、現在のブロックは、目下復号化中であるブロックである。現在のブロックを予測するために使用される参照画像内の復号された画像ブロックは、参照ブロックと呼ばれる。すなわち、参照ブロックは、現在のブロックのための参照信号を供給するブロックであり、参照信号は、画像ブロック内のピクセル値を表す。参照画像内で現在のブロックのための予測信号を供給するブロックは、予測ブロックと呼ばれてよく、予測信号は、予測ブロック内のピクセル値、サンプリング値、又はサンプリング信号を表す。例えば、複数の参照ブロックがトラバースされた後、最適な参照ブロックは見つけられる。最適な参照ブロックは、現在のブロックのための予測を供給し、予測ブロックと呼ばれ得る。
【0074】
下記は、本発明の実施形態におけるビデオコーディングシステムについて記載する。図1は、本発明の実施形態に従うビデオコーディングシステムの例のブロック図である。本明細書中で使用されているように、「ビデオコーデック」との語は、一般に、ビデオ符号器及びビデオ復号器を指す。本発明の実施形態で、「ビデオコーディング」又は「コーディング」との語は、一般に、ビデオ符号化又はビデオ復号化を指し得る。ビデオコーディングシステムのビデオ符号器100及びビデオ復号器200は、本発明の実施形態で提供される複数の新しいインター予測モードのうちのいずれか1つで説明されている様々な方法の例に従って、現在のコード化された画像ブロック又は現在のコード化された画像ブロックのサブブロックの動き情報、例えば、動きベクトルを予測するよう構成され、それにより、予測された動きベクトルは、動き推定方法を使用することによって取得された動きベクトルを最大限に近似する。このようにして、動きベクトル差は、符号化中に送信される必要がなく、それによって、コーディング性能を更に改善する。
【0075】
図1に示されるように、ビデオコーディングシステムは、発信元装置10及びあて先装置20を含む。発信元装置10は、符号化されたビデオデータを生成する。従って、発信元装置10は、ビデオ符号化装置と呼ばれ得る。あて先装置20は、発信元装置10によって生成された符号化されたビデオデータを復号してよい。従って、あて先装置20は、ビデオ復号化装置と呼ばれ得る。様々な実施解決法で、発信元装置10、あて先装置20、又は発信元装置10及びあて先装置20の両方は、1つ以上のプロセッサと、1つ以上のプロセッサへ結合されているメモリとを含んでよい。メモリは、RAM、ROM、EEPROM、フラッシュメモリ、又は本明細書で記載されるように、コンピュータにアクセス可能な命令若しくはデータ構造の形で所望のプログラムコードを記憶するために使用され得るあらゆる他の媒体を含んでよいが、これらに限定されない。
【0076】
発信元装置10及びあて先装置20は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、“スマート”フォンなどの携帯電話機、テレビ受像機、カメラ、ディスプレイ装置、デジタルメディアプレイヤー、ビデオゲーム機、車載コンピュータ、及び同様の装置を含む様々な装置を含んでよい。
【0077】
あて先装置20は、符号化されたビデオデータを発信元装置10からリンク30を介して受信してよい。リンク30は、符号化されたビデオデータを発信元装置10からあて先装置20へ移動することができる1つ以上の媒体又は装置を含んでよい。一例で、リンク30は、符号化されたビデオデータをあて先装置20へ実時間で直接に送ることを発信元装置10に可能にする1つ以上の通信媒体を含んでよい。この例で、発信元装置10は、通信標準規格(例えば、無線通信プロトコル)に従って、符号化されたビデオデータを変調してよく、そして、変調されたビデオデータをあて先装置20へ送信してよい。1つ以上の通信媒体は、無線通信媒体及び/又は有線通信媒体、例えば、無線周波数(RF)スペクトル又は1つ以上の物理伝送ケーブルを含んでよい。1つ以上の通信媒体は、パケットベースのネットワークの部分であってもよく、パケットベースのネットワークは、例えば、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、又はグローバル・ネットワーク(例えば、インターネット)である。1つ以上の通信媒体は、ルータ、スイッチ、基地局、又は発信元装置10からあて先装置20への通信を助ける他のデバイスを含んでよい。
【0078】
他の例で、符号化されたデータは、出力インターフェース140を通じて記憶装置40へ出力されてもよい。同様に、符号化されたデータは、入力インターフェース240を通じて記憶装置40からアクセスされてもよい。記憶装置40は、複数の分散された又はローカルでアクセスされるデータ記憶媒体、例えば、ハード・ディスク・ドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュメモリ、揮発性若しくは不揮発性メモリ、又は符号化されたビデオデータを記憶するよう構成されたあらゆる他の適切なデジタル記憶媒体のうちのいずれか1つを含んでよい。
【0079】
他の例で、記憶装置40は、発信元装置10によって生成された符号化されたビデオデータを記憶することができるファイルサーバ又は他の中間記憶装置に対応してよい。あて先装置20は、記憶装置40からストリーミング伝送又はダウンロードを通じて、記憶されているビデオデータにアクセスしてよい。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータをあて先装置20へ送信することができる如何なるタイプのサーバであってもよい。例えば、ファイルサーバは、ネットワークサーバ(例えば、ウェブサイトに使用される)、FTPサーバ、ネットワーク・アタッチド・ストレージ(NAS)装置、又はローカル・ディスク・ドライブを含む。あて先装置20は、如何なる標準のデータ接続(インターネット接続を含む)を通じて、符号化されたビデオデータにアクセスしてもよい。標準のデータ接続は、ファイルサーバに記憶されている符号化されたビデオデータにアクセスするために使用され得る無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、DSL若しくはケーブルモデム)、又はそれらの組み合わせを含んでよい。記憶装置40からの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、又はそれらの組み合わせであってよい。
【0080】
本発明の実施形態における動きベクトル予測技術は、複数のマルチメディア用途、例えば、オーバー・ザ・エアのテレビ放送、無線テレビ伝送、衛星テレビ伝送、ストリーミングビデオ伝送(例えば、インターネットを経る)、データ記憶媒体に記憶されているビデオデータの符号化、データ記憶媒体に記憶されているビデオデータの復号化、又は他の用途をサポートするようビデオコーディングに適用されてよい。いくつかの例で、ビデオコーディングシステムは、ストリーミングビデオ伝送、ビデオ再生、ビデオ放送、及び/又はテレビ電話などの用途をサポートするように、単方向又は双方向のビデオ伝送をサポートするよう構成されてよい。
【0081】
図1に記載されるビデオコーディングシステムは、一例にすぎない。本発明の実施形態における技術は、符号化装置と復号化装置との間の如何なるデータ通信も必ずしも含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用可能であり得る。他の例では、データは、ローカルメモリから読み出されたり、ストリーミング方式でネットワーク上で伝送されたり、などする。ビデオ符号化装置は、データを符号化し、データをメモリに記憶してよく、かつ/あるいは、ビデオ復号化装置は、メモリからデータを読み出し、データを復号してよい。多くの例では、単にデータを符号化し、データをメモリに格納し、かつ/あるいは、メモリからデータを読み出し、データを復号するだけであって、互いに通信しない装置が、符号化及び復号化を実行する。
【0082】
図1の例では、発信元装置10は、ビデオソース120、ビデオ符号器100、及び出力インターフェース140を含む。いくつかの例で、出力インターフェース140は、変調器/復調器(モデム)及び/又は送信器を含んでよい。ビデオソース120は、ビデオ捕捉装置(例えば、カメラ)、前に捕捉されたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するビデオ・フィードイン・インターフェース、及び/又はビデオデータを生成するコンピュータグラフィクスシステム、あるいは、上記のビデオデータソースの組み合わせを含んでよい。
【0083】
ビデオ符号器100は、ビデオソース120からのビデオデータを符号化してよい。いくつかの例で、発信元装置10は、符号化されたビデオデータをあて先装置20へ出力インターフェース140を通じて直接送信する。他の例では、符号化されたビデオデータは、代替的に、記憶装置40に記憶されてよく、それにより、あて先装置20は、その後に、復号化及び/又は再生のために、符号化されたビデオデータにアクセスする。
【0084】
図1の例では、あて先装置20は、入力インターフェース240、ビデオ復号器200、及びディスプレイ装置220を含む。いくつかの例で、入力インターフェース240は、受信器及び/又はモデムを含む。入力インターフェース240は、リンク30を通じて及び/又は記憶装置40から、符号化されたビデオデータを受け取ってよい。ディスプレイ装置220は、あて先装置20と一体化されてよく、あるいは、あて先装置20の外に配置されてよい。通常は、ディスプレイ装置220は、復号されたビデオデータを表示する。ディスプレイ装置220は、複数のタイプのディスプレイ装置、例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は他のタイプのディスプレイ装置を含んでよい。
【0085】
図1に図示されていないが、いくつかの態様で、ビデオ符号器100及びビデオ復号器200は、夫々、オーディオ符号器及びオーディオ復号器と一体化されてよく、結合されたデータストリーム又は個別のデータストリームにおいてオーディオ及びビデオを符号化するように、適切なマルチプレクサ-デマルチプレクサ(MUX-DEMUX)ユニット又は他のハードウェア及びソフトウェアを含んでよい。妥当な場合、必要に応じて、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル又は、ユーザ・データグラム・プロトコル(UDP)などの他のプロトコルに準拠してよい。
【0086】
ビデオ符号器100及びビデオ復号器200は夫々、例えば、次の複数の回路:1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ハードウェア、又はそれらの任意の組み合わせ、のうちのいずれか1つとして実施されてよい。本発明の実施形態が部分的にソフトウェアで実施される場合に、装置は、適切な不揮発性コンピュータ可読記憶媒体内に、そのソフトウェアに使用される命令を記憶してよく、ハードウェアで命令を実行して本発明の実施形態における技術を実施するために1つ以上のプロセッサを使用してよい。上記の内容(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、などを含む)のいずれか1つが、1つ以上のプロセッサと見なされてよい。ビデオ符号器100及びビデオ復号器200は夫々、1つ以上の符号器又は復号器に含まれてよく、符号器又は復号器は、対応する装置において複合型符号器/復号器(コーデック)の一部分として組み込まれてよい。
【0087】
本発明の実施形態で、ビデオ符号器100は、一般に、何らかの情報をビデオ復号器200などの他の装置へ「送信」又は「伝送」する装置であってよい。「送信」又は「伝送」との用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素及び/又は他のデータの転送を指し得る。転送は、実時間で又はほぼ実時間で起こり得る。あるいは、通信は、ある期間の後に起こり得る。例えば、通信は、符号化されたビットストリーム内のシンタックス要素が符号化中にコンピュータ可読記憶媒体に記憶されるときに起こってよく、復号化装置は、次いで、シンタックス要素が媒体に記憶された後にいつでもシンタックス要素を取り出してよい。
【0088】
ビデオ符号器100及びビデオ復号器200は、高効率ビデオコーディング(HEVC)又はその拡張などのビデオ圧縮標準規格に従って動作してよく、HEVCテストモデル(HM)に従ってよい。あるいは、ビデオ符号器100及びビデオ復号器200は、他の産業標準規格、例えば、ITU-T H.264標準規格、H.265標準規格、又はそのような標準規格の拡張に従って動作してよい。しかし、本発明の実施形態における技術は、如何なる特定のコーディング標準規格にも限定されない。
【0089】
一例で、ビデオ符号器100は、現在の符号化されるべき画像ブロックに関するシンタックス要素をデジタルビデオ出力ビットストリーム(略してビットストリームと呼ばれる)に符号化するよう構成される。ここで、現在の画像ブロックのインター予測に使用されるシンタックス要素は、略してインター予測データと呼ばれ、インター予測データは、例えば、インター予測モードの指示情報を含む。本発明の実施形態におけるインター予測モードは、アフィン変換モデルに基づくAMVPモード及びアフィン変換モデルに基づくマージモードの少なくとも1つを含む。インター予測データがアフィン変換モデルに基づくAMVPモードの指示情報を含む場合に、インター予測データは、AMVPモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)と、現在のブロックの制御点の動きベクトル差(MVD)とを更に含んでよい。インター予測データがアフィン変換モデルに基づくマージモードの指示情報を含む場合に、インター予測データは、マージモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)を更に含んでよい。その上、任意の実施形態で、上記の例におけるインター予測データは、現在のブロックのアフィン変換モデル(モデルパラメータの数)の指示情報を更に含んでよい。
【0090】
本発明の実施形態で提供される新しいインター予測モードに基づいて予測された動き情報に基づいて生成された予測ブロックと、現在の符号化されるべき画像ブロック(すなわち、原ブロック)との間の差(すなわち、残差)が0である場合に、ビデオ符号器100は、現在の符号化されるべき画像ブロックに関するシンタックス要素をビットストリームに符号化しさえすればよい、ことが理解されるべきである。そうでなければ、シンタックス要素に加えて、対応する残差が更にビットストリームに符号化される必要がある。
【0091】
具体的な実施形態において、ビデオ符号器100は、本発明で説明される動きベクトル予測方法の符号器側での適用を実施するように、図13に記載される以下の実施形態を実行するよう構成されてよい。
【0092】
一例で、ビデオ復号器200は、現在の復号されるべき画像ブロックに関するシンタックス要素を取得するように、ビットストリームを復号するよう構成される(S401)。ここで、現在の画像ブロックのインター予測に使用されるシンタックス要素は、略してインター予測データと呼ばれ、インター予測データは、例えば、インター予測モードの指示情報を含む。本発明の実施形態におけるインター予測モードは、アフィン変換モデルに基づくAMVPモード及びアフィン変換モデルに基づくマージモードの少なくとも1つを含む。インター予測データがアフィン変換モデルに基づくAMVPモードの指示情報を含む場合に、インター予測データは、AMVPモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)と、現在のブロックの制御点の動きベクトル差(MVD)とを更に含んでよい。インター予測データがアフィン変換モデルに基づくマージモードの指示情報を含む場合に、インター予測データは、マージモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)を更に含んでよい。その上、任意の実施形態で、上記の例におけるインター予測データは、現在のブロックのアフィン変換モデル(モデルパラメータの数)の指示情報を更に含んでよい。
【0093】
具体的な実施形態において、ビデオ復号器200は、本発明で説明される動きベクトル予測方法の復号器側での適用を実施するように、図9又は図12に記載される以下の実施形態を実行するよう構成されてよい。
【0094】
図2Aは、本発明の実施形態に従う、例となるビデオ符号器100のブロック図である。ビデオ符号器100は、ビデオを後処理エンティティ41へ出力するよう構成される。後処理エンティティ41は、ビデオ符号器100からの符号化されたビデオデータを処理することが可能なビデオエンティティの例を表す。例えば、ビデオエンティティは、メディア・アウェア・ネットワーク・エレメント(MANE)又はスプライシング装置/編集装置である。いくつかの場合に、後処理エンティティ41は、ネットワークエンティティの例であってよい。いくつかのビデオ符号化システムで、後処理エンティティ41及びビデオ符号器100は、別個の装置のコンポーネントであってよい。他の場合では、後処理エンティティ41に関して説明されている機能は、ビデオ符号器100を含む同じ装置によって実行されてよい。一例で、後処理エンティティ41は、図1の記憶装置40の例である。
【0095】
図2Aの例では、ビデオ符号器100は、予測処理ユニット108、フィルタユニット106、復号化画像バッファ(DPB)107、加算器112、変換器101、量子化器102、及びエントロピ符号器103を含む。予測処理ユニット108は、インター予測器110及びイントラ予測器109を含む。画像ブロック再構成のために、ビデオ符号器100は、逆量子化器104、逆変換器105、及び加算器111を更に含む。フィルタユニット106は、1つ以上のループフィルタ、例えば、デブロッキングフィルタ、適応ループフィルタ(ALF)、及びサンプル適応オフセット(SAO)フィルタを表すよう意図される。フィルタユニット106は図2Aでインループフィルタとして示されているが、他の実施では、フィルタユニット106は、ポストループフィルタとして実施されてよい。一例で、ビデオ符号器100は、ビデオデータメモリ及びパーティショニングユニット(図示せず)を更に含んでもよい。
【0096】
ビデオデータメモリは、ビデオ符号器100のコンポーネントによって符号化されたビデオデータを記憶してよい。ビデオデータメモリに記憶されているビデオデータは、ビデオソース120から取得されてよい。DPB107は、イントラ又はインターコーディングモードでビデオデータを符号化するためにビデオ符号器100によって使用される参照ビデオデータを記憶する参照画像メモリであってよい。ビデオデータメモリ及びDPB107は夫々、複数のメモリ装置、例えば、同期DRAM(SDRAM)、磁気抵抗性RAM(MRAM)、抵抗性RAM(RRAM)、又は他のタイプのメモリ装置を含む動的ランダム・アクセス・メモリ(DRAM)、のうちのいずれか1つによって構成されてよい。ビデオデータメモリ及びDPB107は、同じメモリ装置又は別個のメモリ装置によって提供されてよい。様々な例で、ビデオデータメモリは、ビデオ符号器100の他のコンポーネントとともにチップ上に組み込まれてよく、あるいは、それらのコンポーネントに対してチップの外に配置されてよい。
【0097】
図2Aに示されるように、ビデオ符号器100は、ビデオデータを受け取り、ビデオデータをビデオデータメモリに格納する。パーティショニングユニットは、ビデオデータをいくつかの画像ブロックに分割し、これらの画像ブロックは、より小さいブロックに更に分割、例えば、四分木構造又は二分木構造に基づいて分割されてよい。分割は、スライス(slice)、タイル(tile)、又は他のより大きいユニットへの分割を更に含んでよい。ビデオ符号器100は、通常は、符号化されるべきビデオスライス内の画像ブロックを符号化するコンポーネントである。スライスは、複数の画像ブロックに分割されてよい(そして、タイルと呼ばれる画像ブロックセットに分割されてよい)。
【0098】
予測処理ユニット108内のイントラ予測器109は、空間冗長性を取り除くように、現在の画像ブロックと同じフレーム又はスライスにある1つ以上の隣接ブロックに対して、符号化されるべき現在の画像ブロックに対するイントラ予測符号化を実行してよい。予測処理ユニット108内のインター予測器110は、時間冗長性を取り除くように、1つ以上の参照画像内の1つ以上の予測ブロックに対して、現在の画像ブロックに対するインター予測符号化を実行してよい。
【0099】
具体的に、インター予測器110は、現在の画像ブロックを符号化するために使用されるインター予測モードを決定するよう構成されてよい。例えば、インター予測器110は、レート歪み解析を通じて、候補インター予測モードセット内の様々なインター予測モードのレート歪み値を計算し、インター予測モードから最適なレート歪み特性を有しているインター予測モードを選択してよい。レート歪み解析は、通常は、符号化されたブロックと、その符号化されたブロックを生成するよう符号化されるべきである元の符号化されていないブロックとの間の歪み(又は誤り)の量と、符号化されたブロックを生成するために使用されたビットレート(すなわち、ビットの量)とを決定することである。例えば、インター予測器110は、候補インター予測モードセットの中で、最小のレート歪みコストを有しておりかつ現在のブロックを符号化するために使用されるインター予測モードを、現在の画像ブロックに対するインター予測を実行するために使用されるインター予測モードとして決定してよい。下記は、インター予測符号化プロセス、特に、本発明の実施形態において無指向性又は指向性動き場に使用される様々なインター予測モードで現在の画像ブロック内の1つ以上のサブブロック(具体的に、夫々のサブブロック又は全てのサブブロックであってよい)の動き情報を予測するプロセス、について詳細に記載する。
【0100】
インター予測器110は、決定されたインター予測モードに基づいて現在の画像ブロック内の1つ以上のサブブロックの動き情報(例えば、動きベクトル)を予測し、現在の画像ブロック内の1つ以上のサブブロックの動き情報(例えば、動きベクトル)を使用することによって現在の画像ブロックの予測ブロックを取得又は生成するよう構成される。インター予測器110は、参照画像リスト内の1つの参照画像において、動きベクトルが指し示す予測ブロックを見つける。インター予測器110は、画像ブロック及びビデオスライスに関連付けられたシンタックス要素を更に生成してよく、それにより、ビデオ復号器200は、ビデオスライスの画像ブロックを復号するためにシンタックス要素を使用する。代替的に、一例で、インター予測器110は、サブブロックの予測ブロックを生成するために、各サブブロックの動き情報を使用することによって動き補償プロセスを実行し、それによって、現在の画像ブロックの予測ブロックを取得する。ここでのインター予測器110は、動き推定プロセス及び動き補償プロセスを実行する、ことが理解されるべきである。
【0101】
具体的に、現在の画像ブロックのためのインター予測モードを選択した後、インター予測器110は、現在の画像ブロックの選択されたインター予測モードを示す情報をエントロピ符号器103へ供給してよく、それにより、エントロピ符号器103は、選択されたインター予測モードを示す情報を符号化する。本発明のこの実施形態において、ビデオ符号器100は、現在の画像ブロックに関連したインター予測データを、ビデオ符号器100によって送信されるビットストリームに加えてよい。インター予測データは、例えば、インター予測モードの指示情報を含む。本発明の実施形態におけるインター予測モードは、アフィン変換モデルに基づくAMVPモード及びアフィン変換モデルに基づくマージモードの少なくとも1つを含む。インター予測データがアフィン変換モデルに基づくAMVPモードの指示情報を含む場合に、インター予測データは、AMVPモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)と、現在のブロックの制御点の動きベクトル差(MVD)とを更に含んでよい。インター予測データがアフィン変換モデルに基づくマージモードの指示情報を含む場合に、インター予測データは、マージモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)を更に含んでよい。その上、任意の実施形態で、上記の例におけるインター予測データは、現在のブロックのアフィン変換モデル(モデルパラメータの数)の指示情報を更に含んでよい。
【0102】
具体的な実施形態において、インター予測器110は、本発明で説明される動きベクトル予測方法の符号器側での適用を実施するように、図13に記載される以下の実施形態における関連するステップを実行するよう構成されてよい。
【0103】
イントラ予測器109は、現在の画像ブロックに対するイントラ予測を実行してよい。具体的に、イントラ予測器109は、現在のブロックを符号化するために使用されるイントラ予測モードを決定してよい。例えば、イントラ予測器109は、レート歪み解析を通じて、様々な試験されるべきイントラ予測モードのレート歪み値を計算し、試験されるべきモードから最適なレート歪み特性を有しているイントラ予測モードを選択してよい。如何なる場合でも、画像ブロックのためのイントラ予測モードを選択した後、イントラ予測器109は、現在の画像ブロックの選択されたイントラ予測モードを示す情報をエントロピ符号器103へ供給してよく、それにより、エントロピ符号器103は、選択されたイントラ予測モードを示す情報を符号化する。
【0104】
予測処理ユニット108がインター予測及びイントラ予測を通じて現在の画像ブロックの予測ブロックを生成した後、ビデオ符号器100は、残差画像ブロックを生成するよう、符号化されるべき現在の画像ブロックから予測ブロックを減じる。加算器112は、減算演算を実行する1つ以上のコンポーネントを表す。残差ブロックにおける残差ビデオデータは、1つ以上のTUに含まれ、変換器101に適用されてよい。変換器101は、離散コサイン変換(DCT)又は概念的に類似した変換などの変換を通じて、残差ビデオデータを残差変換係数に変換する。変換器101は、残差ビデオデータをピクセル値領域から変換領域、例えば、周波数領域へ変換してよい。
【0105】
変換器101は、取得された変換係数を量子化器102へ送ってよい。量子化器102は、ビットレートを更に低減するよう変換係数を量子化する。いくつかの例で、量子化器102は更に、量子化された変換係数を含むマトリクスをスキャンしてもよい。代替的に、エントロピ符号器103がスキャンを実行してもよい。
【0106】
量子化後に、エントロピ符号器103は、量子化された変換係数に対してエントロピ符号化を実行する。例えば、エントロピ符号器103は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応2進算術演算コーディング(CABAC)、シンタックスに基づくコンテキスト適応2進算術演算コーディング(SBAC)、確率区間パーティショニングエントロピ(PIPE)コーディング、又は他のエントロピコーディング方法若しくは技術を実行してよい。エントロピ符号器103がエントロピ符号化を実行した後、符号化されたビットストリームはビデオ復号器200へ送信されるか、あるいは、その後の伝送のために又はビデオ復号器200によって取り出されるようにアーカイブ保管されてよい。エントロピ符号器103は、符号化されるべき現在の画像ブロックのシンタックス要素に対してエントロピ符号化を更に実行してよい。
【0107】
逆量子化器104及び逆変換器105は、ピクセル領域で残差ブロックを再構成するよう、例えば、参照画像の参照ブロックとしてその後に使用されるよう、逆量子化及び逆変換を夫々適用する。加算器111は、再構成された画像ブロックを生成するよう、再構成された残差ブロックを、インター予測器110又はイントラ予測器109によって生成された予測ブロックに加える。フィルタユニット106は、ブロッキングアーチファクト(blocking artifacts)などの歪みを低減するよう、再構成された画像ブロックに適用可能であり得る。次いで、再構成された画像ブロックは、復号化画像バッファ107に参照ブロックとして記憶され、インター予測器110によって、後続のビデオフレーム又は画像内のブロックに対するインター予測を実行するよう参照ブロックとして使用されてよい。
【0108】
ビデオ符号器100の他の構造的変形がビデオストリームを符号化するために使用され得る、ことが理解されるべきである。例えば、いくつかの画像ブロック又は画像フレームについて、ビデオ符号器100は、残差信号を直接に量子化してよく、相応して、変換器101及び逆変換器105による処理は不要である。代替的に、いくつかの画像ブロック又は画像フレームについて、ビデオ符号器100は、残差データを生成せず、相応して、変換器101、量子化器102、逆量子化器104、及び逆変換器105による処理は不要である。代替的に、ビデオ符号器100は、フィルタユニット106による処理なしで、再構成された画像ブロックを参照ブロックとして直接に記憶してよい。代替的に、ビデオ符号器100内の量子化器102及び逆量子化器104は結合されてよい。
【0109】
具体的に、本発明のこの実施形態において、ビデオ符号器100は、以下の実施形態で説明される動きベクトル予測方法を実行するよう構成される。
【0110】
図2Bは、本発明の実施形態に従う、例となるビデオ復号器200のブロック図である。図2Bの例では、ビデオ復号器200は、エントロピ復号器203、予測処理ユニット208、逆量子化器204、逆変換器205、加算器211、フィルタユニット206、及び復号化画像バッファ207を含む。予測処理ユニット208は、インター予測器210及びイントラ予測器209を含んでよい。いくつかの例で、ビデオ復号器200は、図2Aでビデオ符号器100に関して説明されている符号化プロセスとは実質的に逆である復号化プロセスを実行してよい。
【0111】
復号化中、ビデオ復号器200は、ビデオ符号器100から、符号化されたビデオスライスの画像ブロック及び関連するシンタックス要素を表す符号化されたビデオビットストリームを受け取る。ビデオ復号器200は、ネットワークエンティティ42からビデオデータを受け取ってよく、任意に、更に、ビデオデータをビデオデータメモリ(図示せず)に格納してよい。ビデオデータメモリは、ビデオ復号器200のコンポーネントによって復号されるべきであるビデオデータ、例えば、符号化されたビデオビットストリームを記憶してよい。ビデオデータメモリに記憶されているビデオデータは、例えば、記憶装置40又はカメラなどのローカルビデオソースからビデオデータの有線又は無線ネットワーク通信を通じて、あるいは、物理データ記憶媒体にアクセスすることによって、取得されてよい。ビデオデータメモリは、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するよう構成された復号化画像バッファ(DPB)として使用されてよい。従って、ビデオデータメモリは図2Bに示されていないが、ビデオデータメモリ及びDPB207は、同じメモリであってよく、あるいは、別々に配置されたメモリであってよい。ビデオデータメモリ及びDPB207は夫々、複数のメモリ装置、例えば、同期DRAM(SDRAM)、磁気抵抗性RAM(MRAM)、抵抗性RAM(RRAM)、又は他のタイプのメモリ装置を含む動的ランダム・アクセス・メモリ(DRAM)、のうちのいずれか1つによって構成されてよい。ビデオデータメモリ及びDPB107は、同じメモリ装置又は別個のメモリ装置によって提供されてよい。様々な例で、ビデオデータメモリは、ビデオ復号器200の他のコンポーネントとともにチップ上に組み込まれてよく、あるいは、それらのコンポーネントに対してチップの外に配置されてよい。
【0112】
ネットワークエンティティ42は、例えば、サーバ、MANE、ビデオエディタ/スプライサ、又は上記の技術の1つ以上を実施するよう構成された他の同様の装置であってよい。ネットワークエンティティ42は、ビデオ符号器、例えば、ビデオ符号器100を含んでも含まなくてもよい。ネットワークエンティティ42が符号化されたビデオビットストリームをビデオ復号器200へ送る前に、ネットワークエンティティ42は、本発明の実施形態で説明される技術の一部を実施してよい。いくつかのビデオ復号化システムで、ネットワークエンティティ42及びビデオ復号器200は、別個の装置のコンポーネントであってよい。他の場合では、ネットワークエンティティ42に関して説明されている機能は、ビデオ復号器200を含む同じ装置によって実行されてよい。いくつかの場合に、ネットワークエンティティ42は、図1の記憶装置40の例であってよい。
【0113】
ビデオ復号器200のエントロピ復号器203は、量子化された係数及びいくつかのシンタックス要素を生成するようビットストリームに対するエントロピ復号化を実行する。エントロピ復号器203は、シンタックス要素を予測処理ユニット208へ転送する。ビデオ復号器200は、ビデオスライスレベル及び/又は画像ブロックレベルで複数のシンタックス要素/1つのシンタックス要素を受け取ってよい。
【0114】
ビデオスライスがイントラ復号された(I)スライスに復号される場合に、予測処理ユニット208のイントラ予測器209は、信号で伝えられたイントラ予測モードと、現在のフレーム又は画像の前に復号されたブロックのデータとに基づいて、現在のビデオスライスの画像ブロックの予測ブロックを生成してよい。ビデオスライスがインター復号された(すなわち、B又はP)スライスに復号される場合に、予測処理ユニット208のインター予測器210は、エントロピ復号器203から受け取られたシンタックス要素に基づいて、現在のビデオスライスの現在の画像ブロックを復号するために使用されるインター予測モードを決定し、決定されたインター予測モードに基づいて現在の画像ブロックを復号(例えば、それに対してインター予測を実行)してよい。具体的に、インター予測器210は、現在のビデオスライスの現在の画像ブロックを予測するために新しいインター予測モードを使用すべきかどうかを決定してよい。シンタックス要素が、現在の画像ブロックを予測するために新しいインター予測モードを使用することを示す場合に、インター予測器210は、動き補償プロセスを使用することによって現在の画像ブロックの予測された動き情報又は現在の画像ブロックのサブブロックの予測された動き情報に基づいて現在の画像ブロック又は現在の画像ブロックのサブブロックのための予測ブロックを取得又は生成するように、新しいインター予測モード(例えば、シンタックス要素によって示されている新しいインター予測モード又はデフォルトの新しいインター予測モード)に基づいて現在のビデオスライスの現在の画像ブロックの動き情報又は現在の画像ブロックのサブブロックの動き情報を予測する。ここでの動き情報は、参照画像情報及び動きベクトルを含んでよい。参照画像情報は、単方向/双方向予測情報、参照画像リスト番号、及び参照画像リストに対応する参照画像インデックスを含んでよいが。これらに限定されない。インター予測のために、予測ブロックは、参照画像リストの1つの中の参照画像の1つから生成されてよい。ビデオ復号器200は、DPB207に記憶されている参照画像に基づいて、参照画像リスト、すなわち、リスト0及びリスト1を構成してよい。現在の画像の参照フレームインデックスは、参照フレームリスト0及び参照フレームリスト1の1つ以上に含まれてよい。ここでのインター予測器210は、動き補償プロセスを実行する、ことが理解されるべきである。下記は、様々な新しいインター予測モードにおいて、参照ブロックの動き情報を使用することによって現在の画像ブロックの動き情報又は現在の画像ブロックのサブブロックの動き情報を予測するインター予測プロセスについて詳細に記載する。
【0115】
一例で、インター予測器210は、現在の復号されるべき画像ブロックに関連しかつビットストリームを復号すること(S401)によって取得されるシンタックス要素に基づいて、現在の復号されるべき画像ブロックを予測してよい。ここで、現在の画像ブロックのインター予測に使用されるシンタックス要素は、略してインター予測データと呼ばれ、インター予測データは、例えば、インター予測モードの指示情報を含む。本発明の実施形態におけるインター予測モードは、アフィン変換モデルに基づくAMVPモード及びアフィン変換モデルに基づくマージモードの少なくとも1つを含む。インター予測データがアフィン変換モデルに基づくAMVPモードの指示情報を含む場合に、インター予測データは、AMVPモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)と、現在のブロックの制御点の動きベクトル差(MVD)とを更に含んでよい。インター予測データがアフィン変換モデルに基づくマージモードの指示情報を含む場合に、インター予測データは、マージモードに対応する候補動きベクトルリストのインデックス値(又はインデックス番号と呼ばれる)を更に含んでよい。その上、任意の実施形態で、上記の例におけるインター予測データは、現在のブロックのアフィン変換モデル(モデルパラメータの数)の指示情報を更に含んでよい。
【0116】
具体的な実施形態において、インター予測器210は、本発明で説明される動きベクトル予測方法の復号器側での適用を実施するように、図9又は図12に記載される以下の実施形態における関連するステップを実行するよう構成されてよい。
【0117】
逆量子化器204は、ビットストリームで供給され、そしてエントロピ復号器203によって復号された量子化された変換係数に対して逆量子化を実行する、すなわち、量子化解除する。逆量子化プロセスは、ビデオスライス内の各画像ブロックについてビデオ符号器100によって計算された量子化パラメータを使用することによって、適用されるべき量子化度合いを決定し、同様に、適用されるべき逆量子化度合いを決定することを含んでよい。逆変換器205は、ピクセル領域の残差ブロックを生成するよう、逆変換、例えば、逆DCT、逆整数変換、又は概念上類似した逆変換プロセスを変換係数に適用する。
【0118】
インター予測器210が現在の画像ブロック又は現在の画像ブロックのサブブロックに使用される予測ブロックを生成した後、ビデオ復号器200は、再構成されたブロック、すなわち、復号された画像ブロックを取得するよう、逆変換器205からの残差ブロック及びインター予測器210によって生成された対応する予測ブロックを加算する。加算器211は、加算演算を実行するコンポーネントを表す。必要な場合に、ループフィルタ(復号化ループ内又はその後)が更に、ピクセルを平滑化するために使用されてよく、あるいは、ビデオ品質は、他の方法で改善されてよい。フィルタユニット206は、1つ以上のループフィルタ、例えば、デブロッキングフィルタ、適応ループフィルタ(ALF)、及びサンプル適応オフセット(SAO)フィルタを表してよい。フィルタユニット206は図2Bでインループフィルタとして示されているが、他の実施では、フィルタユニット206は、ポストループフィルタとして実施されてよい。一例で、フィルタユニット206は、ブロック歪みを低減するよう、再構成されたブロックに適用可能であり、結果は、復号されたビデオストリームとして出力される。その上、所与のフレーム又は画像内の復号された画像ブロックは更に、復号化画像バッファ207に格納されてよく、復号化画像バッファ207は、その後の動き補償に使用される参照画像を記憶する。復号化画像バッファ207は、メモリの一部であってよく、ディスプレイ装置(例えば、図1のディスプレイ装置220)でのその後の提示のために、復号されたビデオを更に記憶してよい。代替的に、復号化画像バッファ207は、そのようなメモリから分離していてよい。
【0119】
ビデオ復号器200の他の構造的変形が、符号化されたビデオストリームを復号するために使用され得る、ことが理解されるべきである。例えば、ビデオ復号器200は、フィルタユニット206による処理なしで、出力ビデオストリームを生成してよい。代替的に、いくつかの画像ブロック又は画像フレームについて、ビデオ復号器200のエントロピ復号器203は、復号化を通じて、量子化された係数を取得せず、相応して、逆量子化器204及び逆変換器205による処理は不要である。
【0120】
具体的に、本発明のこの実施形態において、ビデオ復号器200は、以下の実施形態で説明される動きベクトル予測方法を実行するよう構成される。
【0121】
図3は、本発明の実施形態に従うビデオコーディングデバイス400(例えば、ビデオ符号化デバイス400又はビデオ復号化デバイス400)の略構造図である。ビデオコーディングデバイス400は、本明細書で説明される実施形態に適用可能である。実施形態において、ビデオコーディングデバイス400は、ビデオ復号器(例えば、図1のビデオ復号器200)又はビデオ符号器(例えば、図1のビデオ符号器100)であってよい。他の実施形態では、ビデオコーディングデバイス400は、図1のビデオ復号器200又は図1のビデオ符号器100における1つ以上のコンポーネントであってよい。
【0122】
ビデオコーディングデバイス400は、データを受信するよう構成されている入口ポート410及び受信器ユニット(Rx)420と、データを処理するよう構成されているプロセッサ、ロジックユニット、又は中央演算処理装置(CPU)430と、データを送信するよう構成されている送信器ユニット(Tx)440及び出口ポート450と、データを記憶するよう構成されているメモリ460とを含む。ビデオコーディングデバイス400は、光又は電気信号の出口又は入口のために、入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450へ結合されている光電気及び電気光(EO)変換コンポーネントを更に含んでよい。
【0123】
プロセッサ430は、ハードウェア及びソフトウェアによって実施される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、又はDSPとして実施されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470(例えば、符号化モジュール470又は復号化モジュール470)を含む。符号化/復号化モジュール470は、本発明の実施形態で提供される動きベクトル予測方法を実施するよう、本明細書で開示されている実施形態を実施する。例えば、符号化/復号化モジュール470は、様々なコーディング動作を実行、処理、又は提供する。従って、符号化/復号化モジュール470は、ビデオコーディングデバイス400の機能を実質的に改善し、異なる状態へのビデオコーディングデバイス400の変換に作用する。代替的に、符号化/復号化モジュール470は、メモリ460に記憶されている命令として実施され、プロセッサ430によって実行される。
【0124】
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを含み、プログラムが選択的に実行される場合にそのようなプログラムを記憶するために、かつ、プログラム実行中に読み出される命令及びデータを記憶するために、オーバーフローデータ記憶デバイスとして使用されてよい。メモリ460は、揮発性及び/又は不揮発性であってよく、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、三値連想メモリ(ternary content-addressable memory,TCAM)、及び/又は静的ランダム・アクセス・メモリ(SRAM)であってよい。
【0125】
本願のビデオ符号器100及びビデオ復号器200で、プロシージャの処理結果は、更に処理された後に次のプロシージャへ出力されてよい、ことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出、又はループフィルタリングなどのプロシージャの後で、クリッピング又はシフトなどの動作が、対応するプロシージャの処理結果に対して更に実行される。
【0126】
例えば、隣接するアフィンコーディングブロックの動きベクトルに基づいて導出される、現在の画像ブロックの制御点の動きベクトルは、更に処理されてよい。これは、本願において限定されない。例えば、動きベクトルの値範囲は、動きベクトルが特定のビットデプス内にあるように、制限される。動きベクトルの許容されるビットデプスがbitDepthであるすると、動きベクトル範囲は、-2^(bitDepth-1)から2^(bitDepth-1)までであり、ここで、符号「^」は累乗を表す。bitDepthが16である場合に、値範囲は-32768から32767まである。bitDepthが18である場合に、値範囲は-131072から131071までである。動きベクトルの値範囲は、次の2つの方法のどちらか一方で制限されてよい。
【0127】
方法1:動きベクトルのオーバーフローする高次ビットは、除かれる:
ux=(vx+2bitDepth)%2bitDepth
vx=(ux>=2bitDepth-1)?(ux-2bitDepth):ux
uy=(vy+2bitDepth)%2bitDepth
vy=(uy>=2bitDepth-1)?(uy-2bitDepth):uy
【0128】
例えば、vxの値は-32769であり、32767が上記の式に従って取得される。値は、2の補数形式でコンピュータに記憶され、-32769の2の補数は、1,0111,1111,1111,1111(17ビット)であり、オーバーフローのためにコンピュータによって実行される処理は、高次ビットを捨てることである。従って、vxの値は、0111,1111,1111,1111、すなわち、32767であり、式に従って取得された結果と一致する。
【0129】
方法2:クリッピングが、次の式に示されるように、動きベクトルに対して実行される:
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
【0130】
上記の式で、Clip3は、zの値を範囲[x,y]にクリップすることとして定義される。
【数9】
【0131】
図4は、本発明の実施形態に従う符号化デバイス又は復号化デバイス(略してコーディングデバイス1200)の実施の略ブロック図である。コーディングデバイス1200は、プロセッサ1210、メモリ1230、及びバスシステム1250を含んでよい。プロセッサ及びメモリは、バスシステムを使用することによって互いへ接続されている。メモリは、命令を記憶するよう構成される。プロセッサは、メモリに記憶されている命令を実行するよう構成される。符号化デバイスのメモリは、プログラムコードを記憶している。プロセッサは、メモリに記憶されているプログラムコードを呼び出して、本発明の実施形態で説明される様々なビデオ符号化又は復号化方法、特に、様々な新しいインター予測モード及び新しいインター予測モードにおける動き情報予測方法でのビデオ符号化又は復号化方法を実行してよい。繰り返しを避けるために、詳細はここで再び記載されない。
【0132】
本発明のこの実施形態において、プロセッサ1210は、中央演算処理装置(central processing unit,略してCPU)であってよく、あるいは、プロセッサ1210は、他の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)若しくは他のプログラム可能なロジックデバイス、ディスクリートゲート若しくはトランジスタロジックデバイス、ディスクリートハードウェア部品、などであってよい。汎用プロセッサは、マイクロプロセッサであってよく、あるいは、プロセッサは、如何なる従来のプロセッサなどであってもよい。
【0133】
メモリ1230は、リード・オンリー・メモリ(ROM)デバイス又はランダム・アクセス・メモリ(RAM)デバイスを含んでよい。如何なる他の適切なタイプの記憶デバイスも、メモリ1230として使用されてよい。メモリ1230は、バスシステム1250を使用することによってプロセッサ1210によってアクセスされるコード及びデータ1231を含んでよい。メモリ1230は、オペレーティングシステム1233及びアプリケーションプログラム1235を更に含んでよい。アプリケーションプログラム1235は、本発明の実施形態で説明されているビデオ符号化又は復号化方法(特に、本発明の実施形態で説明されている動きベクトル予測方法)を実行することをプロセッサ1210に可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム1235は、アプリケーション1からNを含んでよく、更には、本発明の実施形態で説明されているビデオ符号化又は復号化方法を実行するビデオ符号化又は復号化アプリケーション(略してビデオコーディングアプリケーション)を含む。
【0134】
データバスに加えて、バスシステム1250は、電力バス、制御バス、ステータス信号バス、などを更に含んでよい。なお、明りょうな記載のために、図では、様々なタイプのバスが、バスシステム1250として標記されている。
【0135】
任意に、コーディングデバイス1200は、1つ以上の出力デバイス、例えば、ディスプレイ1270を更に含んでよい。一例で、ディスプレイ1270は、動作上タッチ入力を検知するタッチユニットとディスプレイとを組み合わせるタッチディスプレイであってよい。ディスプレイ1270は、バスシステム1250を使用することによってプロセッサ1210へ接続されてよい。
【0136】
本発明の実施形態における技術的解決法をより良く理解するために、下記は、本発明の実施形態におけるインター予測モード、非平行移動運動モデル、継承的制御点動きベクトル予測方法、及び構成的制御点動きベクトル予測方法について更に記載する。
【0137】
(1)インター予測モード。HEVCでは、2つのインター予測モードが使用される。すなわち、アドバンスト動きベクトル予測(advanced motion vector prediction,AMVP)モード及びマージ(merge)モードである。
【0138】
AMVPモードでは、現在のブロックの空間的又は時間的に隣接する符号化されたブロック(隣接ブロックと表される)が最初にトラバースされる。候補動きベクトルリスト(動き情報候補リストとも呼ばれ得る)が、隣接ブロックの動き情報に基づいて構成される。次いで、最適な動きベクトルが、レート歪みコストに基づいて候補動きベクトルリストの中で決定され、最小のレート歪みコストを有している候補動き情報が、現在のブロックの動きベクトル予測子(motion vector predictor,MVP)として使用される。隣接ブロックの位置及びトラバース順序は、予め定義されている。レート歪みコストは、式(1)に従って計算され、このとき、Jは、レート歪みコストRD costを表し、SADは、元のピクセル値と、候補動きベクトル予測子を使用することによって動き推定を通じて取得された予測されたピクセル値との間の差分絶対値和(sum of absolute differences,SAD)であり、Rは、ビットレートを表し、λは、ラグランジュ乗数を表す。符号器側は、候補動きベクトルリスト内の選択された動きベクトル予測子のインデックス値及び参照フレームインデックス値を復号器側へ転送する。更に、現在のブロックの実際の動きベクトルを取得するよう、MVPを中心とした近傍において動き探索が実行される。符号器側は、MVPと実際の動きベクトルとの間の差(動きベクトル差)を復号器側へ転送する。

J=SAD+λR (1)
【0139】
マージモードでは、候補動きベクトルリストは、現在のブロックの空間的又は時間的に隣接する符号化されたブロックの動き情報に基づいて最初に構成される。次いで、レート歪みコストは、現在のブロックの動き情報として候補動きベクトルリストの中の最適な動き情報を決定するために計算され、そして、候補動きベクトルリストの中の最適な動き情報の位置のインデックス値(以降、マージインデックスと表される)が、復号器側へ転送される。図5は、現在のブロックの空間的及び時間的候補動き情報を示す。空間的候補動き情報は、5つの空間的に隣接するブロック(A0、A1、B0、B1、及びB2)からである。隣接ブロックが利用不可能である(隣接ブロックが存在しないか、あるいは、隣接ブロックが符号化されていないか、あるいは、隣接ブロックに使用されている予測モードがインター予測モードでない)場合に、隣接ブロックの動き情報は候補動きベクトルリストに加えられない。現在のブロックの時間的候補動き情報は、参照フレーム及び現在のフレームのピクチャ順序カウント(picture order count,POC)に基づいて、参照フレーム内の対応する位置にあるブロックのMVをスケーリングすることによって、取得される。参照フレーム内の位置Tにあるブロックが利用可能であるかどうかが、最初に決定される。ブロックが利用不可能である場合には、位置Cにあるブロックが選択される。
【0140】
AMVPモードと同様に、マージモードでは、隣接ブロックの位置及びトラバース順序はやはり予め定義されている。その上、隣接ブロックの位置及びトラバース順序は、異なるモードで異なってよい。
【0141】
候補動きベクトルリストは、AMVPモード及びマージモードの両方において保持される必要がある、ことが分かる。新しい動き情報が毎回候補リストに加えられる前に、リスト内に同じ動き情報が既に存在しているかどうかが最初に確認される。同じ動き情報がリストに存在している場合には、その動き情報はリストに加えられない。この確認プロセスは、候補動きベクトルリストのプルーニングと呼ばれる。リストのプルーニングは、冗長なレート歪みコスト計算を回避するように、リスト内で同じ動き情報を回避するためである。
【0142】
HEVCでのインター予測中に、同じ動き情報が、コーディングブロック内の全てのピクセルに使用され(すなわち、コーディングブロック内の全てのピクセルの動きは一致している)、次いで、コーディングブロックのピクセル予測子を取得するために、動き補償が動き情報に基づいて実行される。コーディングブロックでは、しかしながら、全てのピクセルが同じ動き特性を有しているとは限らない。同じ動き情報を使用することは、不正確な、動き補償された予測、及びより多くの残差情報をもたらす可能性がある。
【0143】
すなわち、既存のビデオコーディング標準規格では、平行移動運動モデルに基づくブロックマッチング動き推定が使用されている。しかし、現実世界では、様々な動きが存在する。多くのオブジェクト、例えば、回転しているオブジェクト、異なる方向で回転するローラーコースター、花火、及び映画の中のいくつかのスタントは、平行移動運動していない。これらの動いているオブジェクト、特にUGCシナリオでのそれらが、現在のコーディング標準規格で平行移動運動モデルに基づいてブロック動き補償技術を使用することによって符号化される場合に、コーディング効率は大いに影響を受ける。従って、非平行移動運動モデル、例えば、アフィン運動モデルが、コーディング効率を更に改善するために導入される。
【0144】
これに基づいて、異なる運動モデルに関して、AMVPモードは、平行移動運動モデルに基づくAMVPモードと非平行移動運動モデルに基づくAMVPモードとに分類されてよく、マージモードは、平行移動運動モデルに基づくマージモードと非平行移動運動モデルに基づくマージモードとに分類されてよい。
【0145】
(2)非平行移動運動モデル。非平行移動運動モデルに基づく予測では、コーデック側は、現在のブロック内の各動き補償サブユニットの動き情報を導出するために1つの運動モデルを使用し、予測ブロックを取得するよう動き補償サブユニットの動き情報に基づいて動き補償を実行する。これは、予測効率を改善することができる。本発明の実施形態における動き補償サブユニットは、特定の方法に従って分割を通じて取得される、サイズがN×Nであるサンプル又はピクセルブロックであってよく、このとき、N及びNは両方とも正の整数であり、NはNに等しくてよく、又はNに等しくなくてもよい。
【0146】
しばしば使用される非平行移動運動モデルは、4パラメータアフィン変換モデル及び6パラメータアフィン変換モデルを含み、更には、可能な適用シナリオでは、8パラメータ双線形モデルを含む。これらのモデルは、以下で別々に説明される。
【0147】
4パラメータアフィン変換モデルは、次の式(2)に示される:
【数10】
【0148】
4パラメータアフィン変換モデルは、2つのサンプルの動きベクトルと、現在のブロックの左上角にあるサンプルに対する2つのサンプルの座標とを使用することによって、表現され得る。運動モデルパラメータを表すために使用されるサンプルは、制御点と呼ばれる。左上角(0,0)にあるサンプル及び右上角(W,0)にあるサンプルが制御点として使用される場合に、現在のブロックの左上角及び右上角にある制御点の運動ベクトル(vx0,vy0)及び(vx1,vy1)は、最初に決定される。次いで、現在のブロックの各動き補償サブユニットの動き情報は、次の式(3)に従って取得され、このとき、(x,y)は、現在のブロックの左上角にあるサンプルに対する動き補償サブユニットの座標であり、Wは、現在のブロックの幅を表す。
【数11】
【0149】
6パラメータアフィン変換モデルは、次の式(4)に示される:
【数12】
【0150】
6パラメータアフィン変換モデルは、3つのサンプルの動きベクトルと、現在のブロックの左上角にあるサンプルに対する3つのサンプルの座標とを使用することによって、表現され得る。左上角(0,0)にあるサンプル、右上角(W,0)にあるサンプル、及び左下角(0,H)にあるサンプルが制御点として使用される場合に、現在のブロックの左上角、右上角、及び左下角にある制御点の動きベクトルは、最初に決定され、夫々(vx0,vy0)、(vx1,vy1)、及び(vx2,vy2)である。次いで、現在のブロックの各動き補償サブユニットの動き情報は、次の式(5)に従って取得され、このとき、(x,y)は、現在のブロックの左上角にあるサンプルに対する動き補償サブユニットの座標であり、W及びHは、夫々、現在のブロックの幅及び高さを表す。
【数13】
【0151】
8パラメータ双線形モデルは、次の式(6)に示される:
【数14】
【0152】
8パラメータ双線形モデルは、4つのサンプルの動きベクトルと、現在のコーディングブロックの左上角にあるサンプルに対する4つのサンプルの座標とを使用することによって、表現され得る。左上角(0,0)にあるサンプル、右上角(W,0)にあるサンプル、左下角(0,H)にあるサンプル、及び右下角(W,H)にあるサンプルが制御点として使用される場合に、現在のコーディングブロックの左上角、右上角、左下角、及び右下角にある制御点の動きベクトル(vx0,vy0)、(vx1,vy1)、(vx2,vy2)、及び(vx3,vy3)は、最初に決定される。次いで、現在のコーディングブロックの各動き補償サブユニットの動き情報は、次の式(7)に従って導出され、このとき、(x,y)は、現在のコーディングブロックの左上角にあるサンプルに対する動き補償サブユニットの座標であり、W及びHは、夫々、現在のコーディングブロックの幅及び高さである。
【数15】
【0153】
アフィン変換モデルを使用することによって予測されるコーディングブロックは、アフィンコーディングブロックとも呼ばれ得る。アフィン変換モデルがアフィンコーディングブロックの制御点の動き情報に直接関係があることは、上記の説明から分かる。
【0154】
通常、アフィンコーディングブロックの制御点の動き情報は、アフィン変換モデルに基づくAMVPモード又はアフィン変換モデルに基づくマージモードを使用することによって取得されてよい。アフィン変換モデルに基づくAMVPモード又はアフィン変換モデルに基づくマージモードで、アフィンコーディングブロックの制御点の動き情報は、継承的制御点動きベクトル予測方法又は構成的制御点動きベクトル予測方法に従って取得されてよい。下記は、2つの方法について更に記載する。
【0155】
(3)継承的制御点動きベクトル予測方法。継承的制御点動きベクトル予測方法では、現在のブロックの制御点の候補動きベクトルは、現在のブロックの隣接する符号化されたアフィンコーディングブロックのアフィン変換モデルを使用することによって決定される。アフィンコーディングブロックのアフィン変換モデルのパラメータ数(例えば、4つのパラメータ、6つのパラメータ、又は8つのパラメータ)は、現在のブロックのアフィン変換モデルのそれと同じである。
【0156】
図6に示される現在のブロックが一例として使用される。現在のブロックの隣接ブロックは、現在のブロックの隣接ブロックが位置するアフィンコーディングブロックを見つけ、アフィンコーディングブロックの制御点の動き情報を取得するために、特定の順序、例えば、A1→B1→B0→A0→B2でトラバースされる。更に、制御点の動きベクトル(マージモードの場合)又は制御点の動きベクトル予測子(AMVPモードの場合)は、アフィンコーディングブロックの制御点の動き情報に基づいて構成されたアフィン変換モデルを使用することによって、現在のブロックについて導出される。順序A1→B1→B0→A0→B2は、単に一例として使用されている。他の組み合わせ順序も、本発明の実施形態に適用可能である。その上、隣接ブロックは、A1、B1、B0、A0、及びB0に限られない。隣接ブロックはサンプルであってよく、あるいは、特定の分割方法、例えば、4×4ピクセルブロック、4×2ピクセルブロック、又は他のサイズのピクセルブロックに従って取得される、予めセットされたサイズのピクセルブロックであってよい。これは限定されない。アフィンコーディングブロックは、現在のブロックに近接しておりかつ符号化フェーズでアフィン変換モデルを使用することによって予測される符号化されたブロック(略して、隣接アフィンコーディングブロックとも呼ばれ得る)である。
【0157】
以下は、現在のブロックの制御点の候補動きベクトルを決定するプロセスを説明するために、図6に示されるA1を例として使用する。他の場合は、類推によって推定される。
【0158】
A1が位置するアフィンコーディングブロックが4パラメータアフィンコーディングブロックである(すなわち、アフィンコーディングブロックが4パラメータアフィン変換モデルを使用することによって予測される)場合に、アフィンコーディングブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)及びアフィンコーディングブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)は取得される。
【0159】
次いで、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)は、次の式(8)に従って計算される:
【数16】
【0160】
現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)は、次の式(9)に従って計算される:
【数17】
【0161】
A1が位置するアフィンコーディングブロックに基づいて取得される現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)の組み合わせは、現在のブロックの制御点の候補動きベクトルである。
【0162】
A1が位置するコーディングブロックが6パラメータアフィンコーディングブロックである(すなわち、アフィンコーディングブロックが6パラメータアフィン変換モデルを使用することによって予測される)場合に、アフィンコーディングブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)、アフィンコーディングブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)、及びアフィンコーディングブロックの左下角(x6,y6)の動きベクトル(vx6,vy6)は取得される。
【0163】
次いで、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)は、次の式(10)に従って計算される:
【数18】
【0164】
現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)は、次の式(11)に従って計算される:
【数19】
【0165】
現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)は、次の式(12)に従って計算される:
【数20】
【0166】
A1が位置するアフィンコーディングブロックに基づいて取得される現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)、右上角(x1,y1)の動きベクトル(vx1,vy1)、及び左下角(x2,y2)の動きベクトル(vx2,vy2)の組み合わせは、現在のブロックの制御点の候補動きベクトルである。
【0167】
他の運動モデル、候補位置、並びに探索及びトラバース順序も、本発明の実施形態に適用可能である、ことが留意されるべきである。詳細は、本発明の実施形態で説明されない。
【0168】
他の制御点を使用することによって現在及び隣接コーディングブロックの運動モデルを表現する方法も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0169】
(4)構成的制御点動きベクトル予測方法。構成的制御点動きベクトル予測方法では、現在のブロックの制御点の隣接する符号化されたブロックの動きベクトルは、現在のアフィンコーディングブロックの制御点の動きベクトルとして結合され、隣接する符号化されたブロックがアフィンコーディングブロックであるかどうかを考慮する必要はない。異なる予測モード(アフィン変換モデルに基づくAMVPモード及びアフィン変換モデルに基づくマージモード)に基づく構成的制御点動きベクトル予測方法は異なっており、以下で別々に説明される。
【0170】
アフィン変換モデルに基づくAMVPモードに基づく構成的制御点動きベクトル予測方法が、最初に説明される。
【0171】
図7は、現在のコーディングブロックの隣接する符号化されたブロックの動き情報を使用することによって現在のブロックの左上角及び右上角の動きベクトルを決定する構成的制御点動きベクトル予測方法を説明するために一例として使用される。
【0172】
現在のブロックが4パラメータアフィンコーディングブロックである(すなわち、現在のブロックが4パラメータアフィン変換モデルを使用することによって予測される)場合に、左上角に近接する符号化されたブロックA2、B2又はB3の動きベクトルは、現在のブロックの左上角の動きベクトルの候補動きベクトルとして使用されてよい。右上角に近接する符号化されたブロックB1又はB0の動きベクトルは、現在のブロックの右上角の動きベクトルの候補動きベクトルとして使用される。左上角及び右上角の候補動きベクトルは、複数の2タプルを構成するよう結合される。2タプルに含まれる2つの符号化されたブロックの動きベクトルは、現在のブロックの候補制御点動きベクトルとして使用されてよい。複数の2タプルは、次の通り(13A)に示される:

{vA2,vB1},{vA2,vB0},{vB2,vB1},{vB2,vB0},{vB3,vB1},{vB3,vB0} (13A)
【0173】
A2は、A2の動きベクトルを表し、vB1は、B1の動きベクトルを表し、vB0は、B0の動きベクトルを表し、vB2は、B2の動きベクトルを表し、vB3は、B3の動きベクトルを表す。
【0174】
現在のブロックが6パラメータアフィンコーディングブロックである(すなわち、現在のブロックが6パラメータアフィン変換モデルを使用することによって予測される)場合に、左上角に近接する符号化されたブロックA2、B2、又はB3の動きベクトルは、現在のブロックの左上角の動きベクトルの候補動きベクトルとして使用されてよい。右上角に近接する符号化されたブロックB1又はB0の動きベクトルは、現在のブロックの右上角の動きベクトルの候補動きベクトルとして使用される。左下角に近接する符号化されたブロックA0又はA1の動きベクトルは、現在のブロックの左下角の動きベクトルの候補動きベクトルとして使用される。左上角、右上角、及び左下角の候補動きベクトルは、複数のトリプレットを構成するよう結合される。トリプレットに含まれる3つの符号化されたブロックの動きベクトルは、現在のブロックの候補制御点動きベクトルとして使用されてよい。複数のトリプレットは、次の通り((13B)及び(13C))に示される:

{vA2,vB1,vA0},{vA2,vB0,vA0},{vB2,vB1,vA0},{vB2,vB0,vA0},{vB3,vB1,vA0},{vB3,vB0,vA0} (13B)

{vA2,vB1,vA1},{vA2,vB0,vA1},{vB2,vB1,vA1},{vB2,vB0,vA1},{vB3,vB1,vA1},{vB3,vB0,vA1} (13C)
【0175】
A2は、A2の動きベクトルを表し、vB1は、B1の動きベクトルを表し、vB0は、B0の動きベクトルを表し、vB2は、B2の動きベクトルを表し、vB3は、B3の動きベクトルを表し、vA0は、A0の動きベクトルを表し、vA1は、A1の動きベクトルを表す。
【0176】
図7は一例にすぎない、ことが留意されるべきである。制御点動きベクトルを結合する他の方法も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0177】
他の制御点を使用することによって現在及び隣接コーディングブロックの運動モデルを表現する方法も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0178】
下記は、アフィン変換モデルに基づくマージモードに基づく構成的制御点動きベクトル予測方法について記載する。
【0179】
図8は、現在のコーディングブロックの隣接する符号化されたブロックの動き情報を使用することによって現在のブロックの左上角及び右上角の動きベクトルを決定する構成的制御点動きベクトル予測方法を説明するために一例として使用される。図8は一例にすぎない、ことが留意されるべきである。
【0180】
図8に示されるように、CPk(k=1,2,3,4)は、k番目の制御点を表す。A0、A1、A2、B0、B1、B2、及びB3は、現在のブロックの空間的に隣接する位置であり、CP1、CP2、又はCP3を予測するために使用される。Tは、現在のブロックの時間的に隣接する位置であり、CP4を予測するために使用される。CP1、CP2、CP3、及びCP4の座標は、夫々、(0,0)、(W,0)、(H,0)、及び(W,H)であり、このとき、W及びHは、現在のブロックの幅及び高さを表す。この場合に、現在のブロックの各制御点の動き情報は、次の順序で取得される。
【0181】
1.CP1について、確認順序はB2→A2→B3である。B2が利用可能である場合に、B2の動き情報が使用される。そうでなければ、A2及びB3が確認される。3つの全ての位置の動き情報が利用不可能である場合に、CP1の動き情報は取得され得ない。
【0182】
2.CP2について、確認順序はB0→B1である。B0が利用可能である場合に、B0の動き情報がCP2のために使用される。そうでなければ、B1が確認される。両方の位置の動き情報が利用不可能である場合に、CP2の動き情報は取得され得ない。
【0183】
3.CP3について、確認順序はA0→A1である。
【0184】
4.CP4について、Tの動き情報が使用される。
【0185】
ここで、Xが利用可能であるとは、位置X(Xは、A0、A1、A2、B0、B1、B2、B3、又はTである)でのブロックが既に符号化されており、インター予測モードがそのブロックに使用されていることを意味する。そうでなければ、位置Xは利用不可能である。制御点動き情報を取得する他の方法も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0186】
次いで、現在のブロックの制御点動き情報は、構成的制御点動き情報を取得するよう結合される。
【0187】
4パラメータアフィン変換モデルが現在のブロックに使用される場合に、現在のブロックの2つの制御点の動き情報は、4パラメータアフィン変換モデルを構成するために、2タプルを構成するよう結合される。2つの制御点は次の:{CP1,CP4}、{CP2,CP3}、{CP1,CP2}、{CP2,CP4}、{CP1,CP3}、及び{CP3,CP4}、のように結合されてよい。例えば、制御点CP1及びCP2を含む2タプルを使用することによって構成された4パラメータアフィン変換モデルは、Affine(CP1,CP2)と表され得る。
【0188】
6パラメータアフィン変換モデルが現在のブロックに使用される場合に、現在のブロックの3つの制御点の動き情報は、6パラメータアフィン変換モデルを構成するために、トリプレットを構成するよう結合される。3つの制御点は次の:{CP1,CP2,CP4}、{CP1,CP2,CP3}、{CP2,CP3,CP4}及び{CP1,CP3,CP4}、のように結合されてよい。例えば、制御点CP1、CP2、及びCP3を含むトリプレットを使用することによって構成された6パラメータアフィン変換モデルは、Affine(CP1,CP2,CP3)と表され得る。
【0189】
8パラメータ双線形モデルが現在のブロックに使用される場合に、現在のブロックの4つ制御点の動き情報は、8パラメータ双線形モデルを構成するために、クワドループルを構成するよう結合される。制御点CP1、CP2、CP3、及びCP4を含むクワドループルを使用することによって構成された8パラメータ双線形モデルは、Bilinear(CP1,CP2,CP3,CP4)と表され得る。
【0190】
本明細書中で、記載を容易にするために、2つの制御点(又は2つの符号化されたブロック)の動き情報の組み合わせは、略して2タプルと呼ばれ、3つの制御点(又は3つの符号化されたブロック)の動き情報の組み合わせは、略してトリプレットと呼ばれ、4つの制御点(又は4つの符号化されたブロック)の動き情報の組み合わせは、略してクワドループルと呼ばれる。
【0191】
これらのモデルは、前もってセットされた順序でトラバースされる。結合モデルに対応する制御点の動き情報が利用不可能である場合に、モデルは利用不可能であると見なされる。そうでなければ、モデルの参照フレームインデックスは決定され、制御点の動きベクトルはスケーリングされる。スケーリング後の全ての制御点の動き情報が一致する場合に、モデルは無効である。モデルを制御する制御点の全ての動き情報が利用可能であって、かつ、モデルが有効である場合に、モデルを較正するために使用された制御点の動き情報は、動き情報候補リストに加えられる。
【0192】
制御点動きベクトルをスケーリングする方法は、次の式(14)に示される:
【数21】
【0193】
CurPocは、現在のフレームのPOC番号を表し、DesPocは、現在のブロックの参照フレームのPOC番号を表し、SrcPocは、制御点の参照フレームのPOC番号を表し、MVsは、スケーリングを通じて取得された動きベクトルを表し、MVは、制御点の動きベクトルを表す。
【0194】
異なる制御点の組み合わせは、代替的に、同じ場所での制御点に変換されてよい、ことが留意されるべきである。
【0195】
例えば、組み合わせ{CP1,CP4}、{CP2,CP3}、{CP2,CP4}、{CP1,CP3}、又は{CP3,CP4}を通じて取得された4パラメータアフィン変換モデルは、{CP1,CP2}又は{CP1,CP2,CP3}によって表現される。変換方法は、制御点の動きベクトル及び座標情報を上記の式(2)に代入してモデルパラメータを取得し、次いで、{CP1,CP2}の座標情報を上記の式(3)に代入して制御点の動きベクトルを取得することである。
【0196】
より直接的に、変換は、次の式(15)から(23)に従って実行されてよく、ここで、Wは、現在のブロックの幅を表し、Hは、現在のブロックの高さを表す。式(15)から(23)で、(vx,vy)は、CP1の動きベクトルを表し、(vx,vy)は、CP2の動きベクトルを表し、(vx,vy)は、CP3の動きベクトルを表し、(vx,vy)は、CP4の動きベクトルを表す。
【0197】
{CP1,CP2}は、次の式(15)に従って{CP1,CP2,CP3}に変換され得る。すなわち、{CP1,CP2,CP3}の中のCP3の動きベクトルは、次の式(15)に従って決定され得る:
【数22】
【0198】
{CP1,CP3}は、次の式(16)に従って{CP1,CP2}又は{CP1,CP2,CP3}に変換され得る:
【数23】
【0199】
{CP2,CP3}は、次の式(17)に従って{CP1,CP2}又は{CP1,CP2,CP3}に変換され得る:
【数24】
【0200】
{CP1,CP4}は、次の式(18)又は(19)に従って{CP1,CP2}又は{CP1,CP2,CP3}に変換され得る:
【数25】
【0201】
{CP2,CP4}は、次の式(20)に従って{CP1,CP2}に変換され得、{CP2,CP4}は、次の式(20)及び(21)に従って{CP1,CP2,CP3}に変換され得る:
【数26】
【0202】
{CP3,CP4}は、次の式(22)に従って{CP1,CP2}に変換され得、{CP3,CP4}は、次の式(22)及び(23)に従って{CP1,CP2,CP3}に変換され得る:
【数27】
【0203】
例えば、組み合わせ{CP1,CP2,CP4}、{CP2,CP3,CP4}、又は{CP1,CP3,CP4}を通じて取得された6パラメータアフィン変換モデルは、制御点{CP1,CP2,CP3}によって表現される。変換方法は、制御点の動きベクトル及び座標情報を上記の式(4)に代入してモデルパラメータを取得し、次いで、{CP1,CP2,CP3}の座標情報を上記の式(5)に代入して制御点の動きベクトルを取得することである。
【0204】
より直接的に、変換は、次の式(24)から(26)に従って実行されてよく、ここで、Wは、現在のブロックの幅を表し、Hは、現在のブロックの高さを表す。式(24)から(26)で、(vx,vy)は、CP1の動きベクトルを表し、(vx,vy)は、CP2の動きベクトルを表し、(vx,vy)は、CP3の動きベクトルを表し、(vx,vy)は、CP4の動きベクトルを表す。
【0205】
{CP1,CP2,CP4}は、式(24)に従って{CP1,CP2,CP3}に変換され得る:
【数28】
【0206】
{CP2,CP3,CP4}は、式(25)に従って{CP1,CP2,CP3}に変換され得る:
【数29】
【0207】
{CP1,C3,CP4}は、式(26)に従って{CP1,CP2,CP3}に変換され得る:
【数30】
【0208】
具体的な実施形態において、目下構成中である制御点動き情報が候補動きベクトルリストに加えられた後、候補リストの長さが最大リスト長さ(例えば、MaxAffineNumMrgCand)よりも短い場合には、これらの組み合わせは、前もってセットされた順序でトラバースされ、そして、取得された有効な組み合わせが、制御点の候補動き情報として使用される。候補動きベクトルリストが空である場合には、制御点の候補動き情報は候補動きベクトルリストに加えられる。そうでなければ、候補動きベクトルリスト内の動き情報は順次トラバースされ、制御点の候補動き情報と同じである動き情報が候補動きベクトルリストに存在するかどうかが確認される。制御点の候補動き情報と同じである動き情報が候補動きベクトルリストに存在しない場合には、制御点の候補動き情報は候補動きベクトルリストに加えられる。
【0209】
例えば、前もってセットされた順序は次の:Affine(CP1,CP2,CP3)→Affine(CP1,CP2,CP4)→Affine(CP1,CP3,CP4)→Affine(CP2,CP3,CP4)→Affine(CP1,CP2)→Affine(CP1,CP3)→Affine(CP2,CP3)→Affine(CP1,CP4)→Affine(CP2,CP4)→Affine(CP3,CP4)、の通りである。全部で10通りの組み合わせがある。
【0210】
組み合わせに対応する制御点動き情報が利用不可能である場合に、その組み合わせは利用不可能であると見なされる。組み合わせが利用可能である場合に、その組み合わせの参照フレームインデックスは決定され(2つの制御点の場合に、最小参照フレームインデックスが組み合わせの参照フレームインデックスとして選択され、2よりも多い制御点の場合に、最も頻繁に現れる参照フレームインデックスが選択され、複数の参照フレームインデックスが現れる回数が同じである場合に、最小参照フレームインデックスが組み合わせの参照フレームインデックスとして選択される)、制御点動きベクトルはスケーリングされる。スケーリング後の全ての制御点の動き情報が一致する場合に、組み合わせは無効である。
【0211】
任意に、本発明の実施形態において、候補動きベクトルリストは、代替的に、パディングされてよい。例えば、上記のトラバースプロセスの後に、候補動きベクトルリストの長さが最大リスト長さ(例えば、MaxAffineNumMrgCand)よりも短い場合に、候補動きベクトルリストは、リスト長さが最大リスト長さに等しくなるまでパディングされてよい。
【0212】
パディングは、ゼロ動きベクトルをパディングすることによって、あるいは、既存のリスト内の既存の候補動き情報を結合又は加重平均することによって、実行されてよい。候補動きベクトルリストをパディングする他の方法も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0213】
既存の解決法では、継承的制御点動きベクトル予測方法について、同じ画像シーケンスに使用される非平行移動運動モデルは固定され、画像内の異なるブロックに使用されるアフィン変換モデルのパラメータの数は同じである。すなわち、アフィンコーディングブロックに使用されるアフィン変換モデルのパラメータの数は、現在のブロックに使用されるアフィン変換モデルのそれと同じである。従って、アフィンコーディングブロックの制御点の数は、現在のブロックのそれと同じであり、アフィンコーディングブロック内の制御点の位置は、現在のブロックの制御点の位置と同じである。
【0214】
例えば、4パラメータアフィン変換モデルがアフィンコーディングブロックに使用される場合に、4パラメータアフィン変換モデルは現在のブロックにも使用される。復号器側は、各サブブロックを再構成するように、現在のブロックの4パラメータアフィン変換モデルに基づいて現在のブロックの各サブブロックの動きベクトル情報を取得する。
【0215】
他の例として、8パラメータ双線形モデルがアフィンコーディングブロックに使用される場合に、8パラメータ双線形モデルは現在のブロックにも使用される。復号器側は、各サブブロックを再構成するように、現在のブロックの8パラメータ双線形モデルに基づいて現在のブロックの各サブブロックの動きベクトル情報を取得する。
【0216】
実務は、画像内の異なるブロックのアフィン運動が異なり得る(すなわち、現在のブロックのアフィン運動は、アフィンコーディングブロックのアフィン運動とは異なり得る)、ことを示す。従って、現在のブロックが、アフィンコーディングブロックと同じ次数を有するアフィン変換モデルに基づいて、パースされ(例えば、候補動きベクトルリストが確立され)、再構成される既存の方法では、現在のブロックを予測する際のコーディング効率及び精度は高くなく、いくつかのシナリオでユーザ要求を満足することが依然として困難である。
【0217】
既存の解決法の欠点を解消し、コーディングプロセスにおける予測中のコーディング効率及び精度を改善するために、継承的制御点動きベクトル予測方法は、本発明の実施形態において改善される。2つの改善された解決法、すなわち、第1の改善された解決法及び第2の改善された解決法がある。第1の改善された解決法は、第1運動モデルに基づく動きベクトル予測方法とも呼ばれることがあり、第2の改善された解決法は、第2運動モデルに基づく動きベクトル予測方法とも呼ばれることがある。下記は、2つの方法について別々に記載している。
【0218】
(5)第1運動モデルに基づく動きベクトル予測方法。第1運動モデルに基づく動きベクトル予測方法では、画像シーケンス内の画像の異なるブロックに使用されるアフィン変換モデルは制限されず、すなわち、異なるアフィン変換モデルが異なるブロックごとに使用されてよい。現在のブロックを符号化及び復号化する過程で、現在のブロックに使用されるアフィン変換モデルは最初に決定される。現在のブロックに使用されるアフィン変換モデルは予め定義されてよく、あるいは、現在のブロックの実際の動き状態又は実際の要件に基づいて、複数のアフィン変換モデルから選択されてよい。2×Nパラメータアフィン変換モデルが現在のブロックの隣接ブロック(符号器側ではアフィンコーディングブロックと、又は復号器側ではアフィン復号化ブロックとも呼ばれる)に使用され、2×Kパラメータアフィン変換モデルが現在のブロックに使用され、N≠Nである、と仮定される。この場合に、現在のブロックのK個の制御点の動きベクトル(候補動きベクトル)は、隣接ブロックに使用されている2×Nパラメータアフィン変換モデルに基づいて補間計算を通じて取得される。
【0219】
以下は、現在のブロックの制御点の候補動きベクトルを決定するプロセスを説明するために、図10に示されるA1を例として使用する。決定プロセスは、主として、復号器側の視点から説明される。この場合に、A1が位置する隣接ブロックは、アフィン復号化ブロックである。符号器側での実施は、類推によって推定され得る、ことが理解され得る。すなわち、符号器側では、現在のブロックの隣接ブロックはアフィンコーディングブロックである。実施に関する詳細は、本明細書で再び記載されない。
【0220】
例えば、6パラメータアフィン変換モデルが、A1が位置するアフィン復号化ブロックに使用され、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、アフィン復号化ブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)、アフィン復号化ブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)、及びアフィン復号化ブロックの左下角(x6,y6)の動きベクトル(vx6,vy6)は取得される。6パラメータアフィン変換モデルについての次の式(27)及び(28)に従って、補間計算は、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)を取得するために、アフィン復号化ブロックの上記3つの制御点の動きベクトルによって構成された6パラメータアフィン変換モデルを使用することによって別々に実行される:
【数31】
【0221】
他の例として、4パラメータアフィン変換モデルが、A1が位置するアフィン復号化ブロックに使用され、6パラメータアフィン変換モデルが現在のブロックに使用される場合に、アフィン復号化ブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)及びアフィン復号化ブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)は取得される。この場合に、アフィン復号化ブロックの2つの制御点の動きベクトル、すなわち、左上制御点(x4,y4)の動きベクトル(vx4,vy4)及び右上制御点(x5,y5)の動きベクトル(vx5,vy5)、が取得される。4パラメータアフィン変換モデルについての次の式(29)、(30)、及び(31)に従って、補間計算は、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)を取得するために、アフィン復号化ブロックの2つの制御点の動きベクトルによって構成された4パラメータアフィン変換モデルを使用することによって別々に実行される:
【数32】
【0222】
上記の例は、単に、本発明の技術的解決法を説明するために使用されているにすぎず、本発明を限定する意図はない、ことが留意されるべきである。その上、他のアフィン変換モデルが現在のブロック及び隣接ブロックに使用される(例えば、4パラメータアフィン変換モデルが現在のブロックに使用され、8パラメータ双線形モデルが隣接ブロックに使用されるか、あるいは、6パラメータアフィン変換モデルが現在のブロックに使用され、8パラメータ双線形モデルが隣接ブロックに使用される)場合については、上記の例の実施を参照されたい。詳細はここで再び記載されない。
【0223】
この解決法では、現在のブロックのモデルパラメータの数が隣接ブロックのそれと同じであるかどうかは限定されない、ことが更に留意されるべきである。従って、いくつかの実施シナリオで、現在のブロックのモデルパラメータの数はまた、隣接ブロックのそれと同じであってもよい。
【0224】
例えば、4パラメータアフィン変換モデルが、A1が位置するアフィン復号化ブロックに使用され、4パラメータアフィン変換モデルが現在のブロックにも使用される場合に、アフィン復号化ブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)及びアフィン復号化ブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)は取得される。4パラメータアフィン変換モデルについての次の式(32)及び(33)に従って、補間計算は、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)を取得するために、アフィン復号化ブロックの上記2つの制御点の動きベクトルによって構成された4パラメータアフィン変換モデルを使用することによって別々に実行される:
【数33】
【0225】
他の例として、6パラメータアフィン変換モデルが、A1が位置するアフィン復号化ブロックに使用され、6パラメータアフィン変換モデルが現在のブロックに使用される場合に、アフィン復号化ブロックの左上角(x4,y4)の動きベクトル(vx4,vy4)、アフィン復号化ブロックの右上角(x5,y5)の動きベクトル(vx5,vy5)、及びアフィン復号化ブロックの左下角(x6,y6)の動きベクトル(vx6,vy6)は取得される。6パラメータアフィン変換モデルについての次の式(34)、(35)、及び(36)に従って、補間計算は、現在のブロックの左上角(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上角(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)を取得するために、アフィン復号化ブロックの3つの制御点によって構成された6パラメータアフィン変換モデルを使用することによって別々に実行される:
【数34】
【0226】
上記の例は、単に、本発明の技術的解決法を説明するために使用されているにすぎず、本発明を限定する意図はない、ことが留意されるべきである。その上、他のアフィン変換モデルが現在のブロック及び隣接ブロックに使用される(例えば、8パラメータ双線形モデルが現在のブロック及び隣接ブロックの両方に使用される)場合については、上記の例の実施を参照されたい。詳細はここで再び記載されない。
【0227】
本発明における第1運動モデルに基づく動きベクトル予測方法に従って、現在のブロックをパースするフェーズで(例えば、候補動きベクトルリストを構成するフェーズで)、隣接ブロックのアフィン変換モデルは、現在のブロックのアフィン変換モデルを構成するために使用され得る。2つのブロックのアフィン変換モデルは、異なってよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0228】
(6)第2運動モデルに基づく動きベクトル予測方法。第2運動モデルに基づく動きベクトル予測方法では、画像シーケンス内の画像の異なるブロックに使用されるアフィン変換モデルは限定されず、同じアフィン変換モデル又は異なるアフィン変換モデルが異なるブロックごとに使用されてよい。すなわち、2×Nパラメータアフィン変換モデルが現在のブロックの隣接ブロック(符号器側ではアフィンコーディングブロックと、又は復号器側ではアフィン復号化ブロックとも呼ばれる)に使用され、2×Kパラメータアフィン変換モデルが現在のブロックに使用される場合に、NはNに等しくても等しくなくてもよい。パースフェーズ(例えば、候補動きベクトルリストを構成するフェーズ)で、現在のブロックの制御点(例えば、2つ、3つ、又は4つの制御点)は、“(3)”で説明された継承的制御点動きベクトル予測方法又は“(5)”で説明された第1運動モデルに基づく動きベクトル予測方法に従って取得されてよい。次いで、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルは、各サブブロックを再構成するように、現在のブロックの制御点に基づいて現在のブロックの各サブブロックの動きベクトル情報を取得するために一律に使用される。
【0229】
以下も、(復号器側の視点から)現在のブロックの制御点の候補動きベクトルを決定するプロセスを説明するために、図6に示されるA1を例として使用する。他の場合は、類推によって推定される。
【0230】
例えば、4パラメータアフィン変換モデルが、パースフェーズで現在のブロックに使用され、4パラメータアフィン変換モデル又は他のパラメータアフィン変換モデルが隣接ブロックに使用され得る。従って、現在のブロックの2つの制御点の動きベクトル、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)は、“(3)”で説明された継承的制御点動きベクトル予測方法又は“(5)”で説明された第1運動モデルに基づく動きベクトル予測方法に従って取得されてよい。次いで、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルは、現在のブロックの2つの制御点の動きベクトルに基づいて構成される必要がある。
【0231】
例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)に基づいて、第3の制御点の動きベクトルは、次の式(40)に従って取得されてよい。第3の制御点の動きベクトルは、例えば、現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)である。
【数35】
【0232】
Wは、現在のブロックの幅を表し、Hは、現在のブロックの高さを表す。
【0233】
次いで、再構成フェーズにおける現在のブロックの6パラメータアフィン変換モデルは、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)と、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)と、現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)とを使用することによって取得される。6パラメータアフィン変換モデルについての式は、次の式(37)に示される:
【数36】
【0234】
次いで、現在のブロックの左上角(又は他の基準点)に対する現在のブロックの各サブブロック(又は各動き補償ユニット)の中心点の座標(x(i,j),y(i,j))は、各サブブロックをその後に再構成するように、各サブブロック(又は各動き補償ユニット)の中心点の動き情報を取得するよう上記の式(37)に代入される。
【0235】
上記の例は、単に、本発明の技術的解決法を説明するために使用されているにすぎず、本発明を限定する意図はない、ことが留意されるべきである。その上、他のアフィン変換モデル(例えば、6パラメータアフィン変換モデル又は8パラメータ双線形モデル)がパースフェーズで現在のブロックに使用される場合については、上記の例の実施を参照されたい。詳細はここで再び記載されない。
【0236】
本発明における第2運動モデルに基づく動きベクトル予測方法に従って、現在のブロックを再構成するフェーズで、6パラメータアフィン変換モデルは、現在のブロックを予測するために一律に使用され得る。現在のブロックのアフィン運動を記述する運動モデルのパラメータの数が多いほど、精度は高くなり、計算複雑性も高くなる。この解決法において、再構成フェーズで構成された6パラメータアフィン変換モデルは、画像ブロックの平行移動、スケーリング、及び回転などのアフィン変換を記述し、モデル複雑性とモデリング能力との間の良いバランスを達成することができる。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0237】
本発明のいくつかの実施形態で、第1の改善された解決法及び第2の改善された解決法は両方とも、二者択一的に実施のために使用されてよい、ことが理解され得る。
【0238】
例えば、4パラメータアフィン変換モデルがパースフェーズで現在のブロックに使用され、6パラメータアフィン変換モデルが隣接ブロックに使用される場合に、現在のブロックの2つの制御点の動きベクトルは、“(5)”で説明された第1運動モデルに基づく動きベクトル予測方法に従って取得されてよい。次いで、“(6)”で説明された第2運動モデルに基づく動きベクトル予測方法に従って、2つの制御点の動きベクトルは、現在のブロックの各サブブロックをその後に再構成するように、再構成フェーズで6パラメータアフィン変換モデルに変換される。
【0239】
他の例として、6パラメータアフィン変換モデルがパースフェーズで現在のブロックに使用され、4パラメータアフィン変換モデルが隣接ブロックに使用される場合に、現在のブロックの3つの制御点の動きベクトルは、“(5)”で説明された第1運動モデルに基づく動きベクトル予測方法に従って取得されてよい。次いで、“(6)”で説明された第2運動モデルに基づく動きベクトル予測方法における式(32)に従って、3つの制御点の動きベクトルは、現在のブロックの各サブブロックをその後に再構成するように、再構成フェーズで6パラメータアフィン変換モデルを取得するよう結合される。
【0240】
確かに、第1の改善された解決法及び第2の改善された解決法の両方が実施のために使用される解決法が、二者択一的に他の実施形態として実施されてよい。詳細は、ここで記載されない。
【0241】
上記の説明に基づいて、下記は、本発明の実施形態におけるアフィン変換モデルに基づくAMVPモード(Affine AMVP mode)及びアフィン変換モデルに基づくマージモード)(Affine Merge mode)について更に説明する。
【0242】
アフィン変換モデルに基づくAMVPモードが最初に説明される。
【0243】
アフィン変換モデルに基づくAMVPモードについて、実施形態において、AMVPに基づく候補動きベクトルリスト(又は制御点動きベクトル予測子候補リストと呼ばれる)も、第1運動モデルに基づく動きベクトル予測方法及び/又は構成的制御点動きベクトル予測方法を使用することによって構成され得る。他の実施形態では、AMVPモードに基づく候補動きベクトルリスト(又は制御点動きベクトル予測子候補リストと呼ばれる)は、継承的制御点動きベクトル予測方法及び/又は構成的制御点動きベクトル予測方法を使用することによって構成され得る。リスト内の制御点動きベクトル予測子は、2つの候補制御点動きベクトルを含むか(例えば、4パラメータアフィン変換モデルが現在のブロックに使用される場合)、あるいは、3つの候補制御点動きベクトルを含むか(例えば、6パラメータアフィン変換モデルが現在のブロックに使用される場合)、あるいは、4つの候補制御点動きベクトルを含んでよい(例えば、8パラメータ双線形モデルが現在のブロックに使用される場合)。
【0244】
可能な適用シナリオで、制御点動きベクトル予測子候補リストは、特定の規則に従って更にプルーニング及びソートされてよく、特定の数の制御点動きベクトル予測子候補を取得するよう切り詰められ又はパディングされてよい。
【0245】
次いで、符号器側で、符号器(例えば、ビデオ符号器100)は、制御点動きベクトル予測子候補リスト内の各制御点動きベクトル予測子を使用することによって、及び上記の式(3)、(5)、又は(7)に従って、現在のコーディングブロックの各動き補償サブユニットの動きベクトルを取得する。更に、符号器は、各動き補償サブユニットの動きベクトルが指し示す参照フレーム内の対応する位置のピクセル値を取得し、そのピクセル値を動き補償サブユニットのピクセル予測子として使用して、アフィン変換モデルに基づく動き補償を実行する。元の値と現在のコーディングブロックにおける各サンプルの予測子との間の平均差が計算される。最小平均差に対応する制御点動きベクトル予測子が、最適な制御点動きベクトル予測子として選択され、現在のコーディングブロックの2つ、3つ、又は4つの制御点の動きベクトル予測子として使用される。その上、符号器側で、制御点動きベクトル予測子は、制御点動きベクトル(control point motion vectors,CPMV)を取得するように特定の探索範囲内で動き探索を実行するよう探索開始点として更に使用されてよく、そして、制御点動きベクトルと制御点動きベクトル予測子との間の差(control point motion vectors differences,CPMVD)が計算される。次いで、符号器は、制御点動きベクトル予測子候補リスト内の制御点動きベクトル予測子の位置を示すインデックス値と、CPMVDとをビットストリームに符号化し、ビットストリームを復号器側へ転送する。
【0246】
復号器側で、復号器(例えば、ビデオ復号器200)は、インデックス値及び制御点動きベクトル差(CPMVD)を取得するようビットストリームをパースし、インデックス値に基づいて制御点動きベクトル予測子候補リスト内の制御点動きベクトル予測子(control point motion vectors predictor)を決定し、CPMVP及びCPMVDを加算して制御点動きベクトルを取得する。
【0247】
下記は、アフィン変換モデルに基づくマージモードについて説明する。
【0248】
アフィン変換モデルに基づくマージモードについて、実施形態において、マージモードのための候補動きベクトルリスト(又は制御点動きベクトルマージ候補リストと呼ばれる)は、継承的制御点動きベクトル予測方法及び/又は構成的制御点動きベクトル予測方法を使用することによって構成され得る。他の実施形態では、マージモードのための候補動きベクトルリスト(又は制御点動きベクトルマージ候補リストと呼ばれる)は、代替的に、第1運動モデルに基づく動きベクトル予測方法及び/又は構成的制御点動きベクトル予測方法を使用することによって構成され得る。
【0249】
可能な適用シナリオで、制御点動きベクトルマージ候補リストは、特定の規則に従って更にプルーニング及びソートされてよく、特定の数の制御点動きベクトル候補を取得するよう切り詰められ又はパディングされてよい。
【0250】
次いで、符号器側で、符号器(例えば、ビデオ符号器100)は、マージ候補リスト内の各制御点動きベクトルを使用することによって、及び上記の式(3)、(5)、又は(7)に従って、現在のコーディングブロックの各動き補償サブユニット(M×Nのサイズを有し、特定の方法に従って分割により取得されるサンプル又はピクセルブロック)の動きベクトルを取得する。更に、符号器は、各動き補償サブユニットの動きベクトルが指し示す参照フレーム内の位置のピクセル値を取得し、そのピクセル値を動き補償サブユニットのピクセル予測子として使用して、アフィン動き補償を実行する。元の値と現在のコーディングブロックの各サンプルの予測子との間の平均差が計算される。最小平均差に対応する制御点動きベクトルが、現在のコーディングブロックの2つ、3つ、又は4つの制御点の動きベクトルとして選択される。候補リスト内の制御点動きベクトルの位置を示すインデックス値がビットストリームに符号化され、復号器側へ送られる。
【0251】
復号器側で、復号器(例えば、ビデオ復号器200)は、インデックス値を取得するようビットストリームをパースし、インデックス値に基づいて制御点動きベクトルマージ候補リスト内の制御点動きベクトル(control point motion vectors,CPMVP)を決定する。
【0252】
加えて、本発明の実施形態で、「少なくとも1つ」は1つ以上を意味し、「複数の~」は2つ以上を意味する、ことが留意されるべきである。「及び/又は」との用語は、関連するオブジェクトを記載する関連付け関係を示し、3つの関係が存在する可能性があることを表す。例えば、A及び/又はBは、次の場合:Aのみが存在する、A及びBの両方が存在する、及びBのみが存在する、を示してよく、このとき、A及びBは単数又は複数であってよい。「/」との文字は、一般的に、関連するオブジェクトの間の“論理和”関係を示す。「次の項目(要素)の少なくとも1つ」又はその類似表現は、単一の項目(要素)又は複数の項目(要素)の任意の組み合わせを含め、それらの項目の任意の組み合わせを示す。例えば、a、b、又はcの少なくとも1つは、a、b、c、a及びb、a及びc、b及びc、又はa、b及びc、を示してよく、このとき、a、b、及びcは単数又は複数であってよい。
【0253】
図9を参照されたい。第1運動モデルに基づく動きベクトル予測方法の設計ソリューションに基づいて、本発明の実施形態は動きベクトル予測方法を提供する。方法は、ビデオ復号器200によって実行されてよく、具体的に、ビデオ復号器200のインター予測器210によって実行されてよい。ビデオ復号器200は、複数のビデオフレームを有するビデオデータストリームに基づいて、現在のビデオフレームの現在の復号化ブロック(略して現在のブロックと称される)の各サブブロックの動き情報を予測し、動き補償を実行するよう、下記のステップの一部又は全てを実行してよい。図9に示されるように、方法は、次のステップを含むが、これらに限定されない。
【0254】
ステップ601:ビットストリームをパースし、現在の復号化ブロックのインター予測モードを決定する。
【0255】
具体的に、復号器側でのビデオ復号器200は、インター予測モードを示すために使用されている指示情報を取得して、指示情報に基づいて現在のブロックのインター予測モードを決定するために、符号器側から送信されたビットストリーム内のシンタックス要素をパースしてよい。
【0256】
現在のブロックのインター予測モードがアフィン変換モデルに基づくAMVPモードであると決定される場合には、ステップ602aから606aが続いて実行される。
【0257】
現在のブロックのインター予測モードがアフィン変換モデルに基づくマージモードであると決定される場合には、ステップ602bから605bが続いて実行される。
【0258】
ステップ602a:アフィン変換モデルに基づくAMVPモードのための候補動きベクトルリストを構成する。
【0259】
本発明のいくつかの具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0260】
本発明のいくつかの他の具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、代替的に、第1運動モデルに基づく動きベクトル予測方法及び構成的制御点動きベクトル予測方法を使用することによって別々に取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0261】
4パラメータアフィン変換モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストは2タプルリストであってよい。2タプルリストは、4パラメータアフィン変換モデルを構成するために使用される1つ以上の2タプルを含む。
【0262】
6パラメータアフィン変換モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストはトリプレットリストであってよい。トリプレットリストは、6パラメータアフィン変換モデルを構成するために使用される1つ以上のトリプレットを含む。
【0263】
8パラメータ双線形モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストは、クワドループルリストであってよい。クワドループルリストは、8パラメータ双線形モデルを構成するために使用される1つ以上のクワドループルを含む。
【0264】
可能な適用シナリオで、候補動きベクトル2タプル/トリプレット/クワドループルリストは、特定の規則に従ってプルーニング及びソートされてよく、特定の数の候補動きベクトル候補を取得するよう切り詰められ又はパディングされてよい。
【0265】
第1運動モデルに基づく動きベクトル予測方法について、例えば、図10に示されるように、現在のブロックの隣接ブロックは、隣接ブロックが位置するアフィン復号化ブロック(例えば、A1が図10で位置するアフィン復号化ブロック)を見つけるために、図10のA1→B1→B0→A0→B2の順にトラバースされてよい。アフィン復号化ブロックのアフィン変換モデルは、アフィン復号化ブロックの制御点を使用することによって構成され、次いで、現在のブロックの制御点の候補動きベクトル(例えば、候補動きベクトル2タプル/トリプレット/クワドループル)は、アフィン復号化ブロックのアフィン変換モデルを使用することによって導出され、AMVPモードに対応する候補動きベクトルリストに加えられる。他の探索順序も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0266】
複数の隣接ブロックが存在する場合に、すなわち、現在のブロックが複数の隣接アフィン復号化ブロックを有する場合に、可能な実施形態で、符号器側及び復号器側は両方とも、最初に、モデルパラメータの数が現在のブロックのそれと同じであるアフィン復号化ブロックを使用することによって現在のブロックの制御点の候補動きベクトルを取得し、取得された候補動きベクトルを、AMVPモードに対応する候補動きベクトルリストに加えることができる、ことが留意されるべきである。次いで、現在のブロックの制御点の候補動きベクトルは、モデルパラメータの数が現在のブロックのそれとは異なるアフィン復号化ブロックを使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。このようにして、モデルパラメータの数が現在のブロックのそれと同じであるアフィン復号化ブロックを使用することによって取得される、現在のブロックの制御点の候補動きベクトルは、リストの最前位置に位置付けられる。この設計は、ビットストリームで伝送されるビットの数を減らすのを助ける。
【0267】
図10は、一例として使用される。現在の復号化ブロックのパラメータモデルは4パラメータアフィン変換モデルである、と仮定される。現在のブロックの隣接ブロックがトラバースされた後、4パラメータアフィン変換モデルは、B1が位置するアフィン復号化ブロックに使用されており、6パラメータアフィン変換モデルは、A1が位置するアフィン復号化ブロックに使用されている、と決定される。この場合に、現在のブロックの2つの制御点の動きベクトルは、最初に、B1が位置するアフィン復号化ブロックを使用することによって導出され、リストに加えられ得る。次いで、現在のブロックの2つの制御点の動きベクトルは、A1が位置するアフィン復号化ブロックを使用することによって導出され、リストに加えられる。
【0268】
あるいは、現在の復号化ブロックのパラメータモデルは6パラメータアフィン変換モデルである、と仮定される。現在のブロックの隣接ブロックがトラバースされた後、6パラメータアフィン変換モデルは、A1が位置するアフィン復号化ブロックに使用されており、4パラメータアフィン変換モデルは、B1が位置するアフィン復号化ブロックに使用されている、と決定される。この場合に、現在のブロックの3つの制御点の動きベクトルは、最初に、A1が位置するアフィン復号化ブロックを使用することによって導出され、リストに加えられ得る。次いで、現在のブロックの3つの制御点の動きベクトルは、B1が位置するアフィン復号化ブロックを使用することによって導出され、リストに加えられる。
【0269】
本発明の技術的解決法は、上記の例に限定されず、他の隣接ブロック、運動モデル、及び探索順序も、本発明に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0270】
ステップ602aで、異なるブロックに使用されるアフィン変換モデルは限定されない。すなわち、現在のブロックに使用されるアフィン変換モデルのパラメータの数は、アフィン復号化ブロックのそれと異なっても又は同じであってもよい。実施形態において、現在のブロックに使用されるアフィン変換モデルは、ビットストリームをパースすることによって決定されてよい。すなわち、この場合に、ビットストリームは、現在のブロックのアフィン変換モデルの指示情報を含む。実施形態において、現在のブロックに使用されるアフィン変換モデルは、事前設定されてよい。実施形態において、現在のブロックに使用されるアフィン変換モデルは、現在のブロックの実際の動き状態又は実際の要件に基づいて複数のアフィン変換モデルから選択されてよい。
【0271】
構成的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(4)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0272】
第1運動モデルに基づく動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(5)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0273】
第1運動モデルに基づく動きベクトル予測方法が使用されるいくつかの実施形態において、復号器側が現在のブロックの制御点の候補動きベクトルを導出する過程で、アフィン復号化ブロックのアフィン変換モデルのフラグ情報(flag)が取得される必要があり得る、ことが留意されるべきである。フラグは、復号器側でローカルで予め記憶され、そして、アフィン復号化ブロックのサブブロックを予測するために実際に使用されるアフィン復号化ブロックのアフィン変換モデルを示すために使用される。
【0274】
例えば、適用シナリオにおいて、復号器側が、アフィン復号化ブロックのフラグを識別することによって、アフィン復号化ブロックに実際に使用されたアフィン変換モデルのモデルパラメータの数が、現在のブロックに使用されたアフィン変換モデルのそれとは異なる(又はそれと同じである)と決定する場合に、復号器側は、アフィン復号化ブロックに実際に使用されたアフィン変換モデルを使用することによって現在のブロックの制御点の候補動きベクトルを導出するようトリガされる。
【0275】
例えば、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、復号器側がアフィン復号化ブロックのフラグを識別し、アフィン復号化ブロックに実際に使用されたアフィン変換モデルのモデルパラメータの数が現在のブロックに使用されたアフィン変換モデルのそれとは異なると、例えば、6パラメータアフィン変換モデルがアフィン復号化ブロックに使用されていると決定するならば、復号器側は、アフィン復号化ブロックの3つの制御点の動きベクトル、すなわち、左上角(x4,y4)の動きベクトル(vx4,vy4)、右上角(x5,y5)の動きベクトル(vx5,vy5)及び左下角(x6,y6)の動きベクトル(vx6,vy6)を取得する。アフィン復号化ブロックの3つの制御点によって構成された6パラメータアフィン変換モデルに基づいて、現在のブロックの左上及び右上制御点の候補動きベクトルは、夫々、6パラメータアフィン変換モデルのための式(27)及び(28)に従って導出される。
【0276】
他の例として、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、復号器側がアフィン復号化ブロックのフラグを識別し、アフィン復号化ブロックに実際に使用されたアフィン変換モデルのモデルパラメータの数が現在のブロックに使用されたアフィン変換モデルのそれと同じであると、例えば、4パラメータアフィン変換モデルがアフィン復号化ブロックにも使用されていると決定するならば、復号器側は、アフィン復号化ブロックの2つの制御点の動きベクトル、すなわち、左上制御点(x4,y4)の動きベクトル(vx4,vy4)及び右上制御点(x5,y5)の動きベクトル(vx5,vy5)を取得する。アフィン復号化ブロックの2つの制御点によって構成された4パラメータアフィン変換モデルに基づいて、現在のブロックの左上及び右上制御点の候補動きベクトルは、夫々、4パラメータアフィン変換モデルのための式(32)及び(33)に従って導出される。
【0277】
第1運動モデルに基づく動きベクトル予測方法が使用されるいくつかの他の実施形態において、復号器側が現在のブロックの制御点の候補動きベクトルを導出する過程で、アフィン復号化ブロックのアフィン変換モデルのフラグは必要とされなくてもよい、ことが留意されるべきである。
【0278】
例えば、適用シナリオにおいて、復号器側が現在のブロックに使用されたアフィン変換モデルを決定した後、復号器側は、アフィン復号化ブロックの特定の数(特定の数は、現在のブロックの制御点の数と同じか又は異なる)の制御点を取得し、アフィン復号化ブロックの特定の数の制御点を使用することによってアフィン変換モデルを構成し、次いで、アフィン変換モデルを使用することによって現在のブロックの制御点の候補動きベクトルを導出する。
【0279】
例えば、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、復号器側は、アフィン復号化ブロックに実際に使用されたアフィン変換モデル(アフィン復号化ブロックに実際に使用されたアフィン変換モデルは、4パラメータアフィン変換モデル、6パラメータアフィン変換モデル、又は8パラメータ双線形モデルであってよい)を決定せず、アフィン復号化ブロックの2つの制御点の動きベクトル、すなわち、左上制御点(x4,y4)の動きベクトル(vx4,vy4)及び右上制御点(x5,y5)の動きベクトル(vx5,vy5)を直接取得する。アフィン復号化ブロックの2つの制御点によって構成された4パラメータアフィン変換モデルに基づいて、現在のブロックの左上及び右上制御点の動きベクトルは、夫々、4パラメータアフィン変換モデルのための式(32)及び(33)に従って導出される。
【0280】
本発明の技術的解決法は、上記の例に限定されず、他の制御点、運動モデル、候補位置、及び探索順序も、本発明に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0281】
ステップ603a:インデックス値に基づいて制御点の最適な動きベクトル予測子を決定する。
【0282】
具体的に、候補動きベクトルリストのインデックス値は、ビットストリームをパースすることによって取得され、制御点の最適な動きベクトル予測子は、インデックス値に基づいて、ステップ602aで構成された候補動きベクトルリストの中で決定される。
【0283】
例えば、4パラメータアフィン運動モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、2つの制御点の最適な動きベクトル予測子は、インデックス値に基づいて候補動きベクトル2タプルリストの中で決定される。
【0284】
他の例として、6パラメータアフィン運動モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、3つの制御点の最適な動きベクトル予測子は、インデックス値に基づいて候補動きベクトルトリプレットリストの中で決定される。
【0285】
他の例として、8パラメータ双線形モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、4つの制御点の最適な動きベクトル予測子は、インデックス値に基づいて候補動きベクトルクワドループルリストの中で決定される。
【0286】
ステップ604a:動きベクトル差に基づいて制御点の実際の動きベクトル決定する。
【0287】
具体的に、制御点の動きベクトル差は、ビットストリームをパースすることによって取得され、次いで、制御点の動きベクトルは、制御点の動きベクトル差と、ステップ603aで決定されている制御点の最適な動きベクトル予測子とに基づいて、取得される。
【0288】
例えば、4パラメータアフィン運動モデルが現在のブロックに使用される場合に、現在のブロックの2つの制御点の動きベクトル差は、ビットストリームを復号することによって取得される。例えば、左上制御点の動きベクトル差及び右上制御点の動きベクトル差が、ビットストリームを復号することによって取得され得る。次いで、各制御点の動きベクトル差及び動きベクトル予測子は、制御点の実際の動きベクトルを取得するよう加算される。すなわち、現在のブロックの左上及び右上制御点の動きベクトルが取得される。
【0289】
他の例として、6パラメータアフィン運動モデルが現在のブロックに使用される場合に、現在のブロックの3つの制御点の動きベクトル差は、ビットストリームを復号することによって取得される。例えば、左上制御点の動きベクトル差、右上制御点の動きベクトル差、及び左下制御点の動きベクトル差が、ビットストリームを復号することによって取得され得る。次いで、各制御点の動きベクトル差及び動きベクトル予測子は、制御点の実際の動きベクトルを取得するよう加算される。すなわち、現在のブロックの左上、右上、及び左下制御点の動きベクトルが取得される。
【0290】
本発明のこの実施形態において、他のアフィン運動モデル及び他の制御点位置も使用されてよい、ことが留意されるべきである。詳細はここで記載されない。
【0291】
ステップ605a:現在のブロック使用されているアフィン変換モデルに基づいて現在のブロックの各サブブロックの動きベクトルを取得する。
【0292】
P×Qの現在のブロックにおける各M×Nのサブブロックについて(1つのサブブロックは1つの動き補償ユニットと同等であってよく、M×Nのサブブロックの幅又は高さの少なくとも1つは現在のブロックの幅又は高さよりも小さい)、動き補償ユニットにおける前もってセットされた位置でのサンプルの動き情報は、動き補償ユニットにおける全てのサンプルの動き情報を表すために使用されてよい。動き補償ユニットサイズがM×Nであるとすると、前もってセットされた位置でのサンプルは中心点(M/2,N/2)、左上サンプル(0,0)、右上サンプル(M-1,0)、又は動き補償ユニットの他の位置でのサンプルであってよい。
【0293】
下記は、動き補償ユニットの中心点を説明のために例として使用する。図11A及び図11Bを参照されたい。
【0294】
図11Aは、現在のブロック及び現在のブロックの動き補償ユニットの例を示す。図中の各小さいボックスは、1つの動き補償ユニットを表す。図中、各動き補償ユニットの仕様は4×4であり、各動き補償ユニットにおける灰色の点は動き補償ユニットの中心点を表す。図11Aで、V0は、現在のブロックの左上制御点の動きベクトルを表し、V1は、現在のブロックの右上制御点の動きベクトルを表し、V2は、現在のブロックの左下制御点の動きベクトルを表す。
【0295】
図11Bは、他の現在のブロック及び現在のブロックの動き補償ユニットの例を示す。図中の各小さいボックスは、1つの動き補償ユニットを表す。図中、各動き補償ユニットの仕様は8×8であり、各動き補償ユニットにおける灰色の点は動き補償ユニットの中心点を表す。図11Bで、V0は、現在のブロックの左上制御点の動きベクトルを表し、V1は、現在のブロックの右上制御点の動きベクトルを表し、V2は、現在のブロックの左下制御点の動きベクトルを表す。
【0296】
現在のブロックの左上ピクセルに対する動き補償ユニットの中心点の座標は、次の式(38)に従って計算され得る:
【数37】
【0297】
上記の式中、iは、(左から右へ)水平方向におけるi番目の動き補償ユニットであり、jは、(上から下へ)垂直方向におけるj番目の動き補償ユニットであり、(x(i,j),y(i,j))は、現在のアフィン復号化ブロックの左上制御点でのピクセルに対する(i,j)番目の動き補償ユニットの中心点の座標を示す。
【0298】
6パラメータアフィン運動モデルが現在のアフィン復号化ブロックに使用される場合に、(x(i,j),y(i,j))は、各動き補償ユニットの中心点の動きベクトルを取得するよう6パラメータアフィン運動モデルのための次の式(37)に代入され、取得された動きベクトルは、動き補償ユニットにおける全てのサンプルの動きベクトル(vx(i,j),vy(i,j))として使用される:
【数38】
【0299】
4パラメータアフィン運動モデルが現在のアフィン復号化ブロックに使用される場合に、(x(i,j),y(i,j))は、各動き補償ユニットの中心点の動きベクトルを取得するよう4パラメータアフィン運動モデルのための次の式(39)に代入され、取得された動きベクトルは、動き補償ユニットにおける全てのサンプルの動きベクトル(vx(i,j),vy(i,j))として使用される:
【数39】
【0300】
ステップ606a:サブブロックごとに、サブブロックの決定された動きベクトルに基づいて動き補償を実行して、サブブロックのピクセル予測子を取得する。
【0301】
ステップ602b:アフィン変換モデルに基づくマージモードのための候補動きベクトルリストを構成する。
【0302】
本発明のいくつかの具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、代替的に、第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0303】
本発明のいくつかの他の具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、代替的に、第1運動モデルに基づく動きベクトル予測方法及び構成的制御点動きベクトル予測方法を使用することによって別々に取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0304】
同様に、マージモードに対応する候補動きベクトルリストについて、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、候補動きベクトルリストは2タプルリストであってよい。2タプルリストは、4パラメータアフィン変換モデルを構成するために使用される1つ以上の2タプルを含む。
【0305】
6パラメータアフィン変換モデルが現在のブロックに使用される場合に、候補動きベクトルリストはトリプレットリストであってよい。トリプレットリストは、6パラメータアフィン変換モデルを構成するために使用される1つ以上のトリプレットを含む。
【0306】
8パラメータ双線形モデルが現在のブロックに使用される場合に、候補動きベクトルリストはクワドループルリストであってよい。クワドループルリストは、8パラメータ双線形モデルを構成するために使用される1つ以上のクワドループルを含む。
【0307】
可能な適用シナリオで、候補動きベクトル2タプル/トリプレット/クワドループルリストは、特定の規則に従ってプルーニング及びソートされてよく、特定の数の候補動きベクトル候補を取得するよう切り詰められ又はパディングされてよい。
【0308】
同様に、第1運動モデルに基づく動きベクトル予測方法について、例えば、図10に示されるように、現在のブロックの隣接ブロックは、隣接ブロックが位置するアフィン復号化ブロックを見つけるために、図10のA1→B1→B0→A0→B2の順にトラバースされてよい。アフィン復号化ブロックのアフィン変換モデルは、アフィン復号化ブロックの制御点を使用することによって構成され、次いで、現在のブロックの制御点の候補動きベクトル(例えば、候補動きベクトル2タプル/トリプレット/クワドループル)は、アフィン復号化ブロックのアフィン変換モデルを使用することによって導出され、マージモードに対応する候補動きベクトルリストに加えられる。他の探索順序も、本発明の実施形態に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0309】
具体的に、上記のトラバースプロセスで、候補動きベクトルリストが空である場合には、制御点の候補動き情報は候補リストに加えられる。そうでなければ、候補動きベクトルリスト内の動き情報は順次トラバースされ、制御点の候補動き情報と同じである動き情報が候補動きベクトルリストに存在するかどうかが確認される。制御点の候補動き情報と同じである動き情報が候補動きベクトルリストに存在しない場合には、制御点の候補動き情報は候補動きベクトルリストに加えられる。
【0310】
2つの候補動き情報が同じであるかどうかを決定するために、2つの候補動き情報における前方参照フレーム、後方参照フレーム、各前方動きベクトルの水平及び垂直成分、並びに各後方動きベクトルの水平及び垂直成分が同じであるかどうかを順次決定する必要がある。2つの候補動き情報は、それら全ての要素が異なる場合にのみ異なると見なされる。
【0311】
候補動きベクトルリスト内の動き情報の数が最大リスト長さに達する場合に、候補リスト構成は完了され、そうでなければ、次の隣接ブロックがトラバースされる。
【0312】
構成的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(4)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0313】
第1運動モデルに基づく動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(5)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0314】
第1運動モデルに基づく動きベクトル予測方法が使用されるいくつかの実施形態において、アフィン変換モデルに基づくマージモードの場合に、4パラメータアフィン変換モデル、6パラメータアフィン変換モデル、及び8パラメータ双線形モデルなどのアフィン変換モデルは、代替的に、画像内の異なるブロックごとに区別されてなくてもよく、すなわち、同数のパラメータによるアフィン変換モデルが異なるブロックに使用されてよい、ことが留意されるべきである。
【0315】
例えば、6パラメータアフィン変換モデルが画像内の全てのブロックに使用される。図10のA1が例として使用される。A1が位置するアフィン復号化ブロックの3つの制御点の動きベクトル、すなわち、左上制御点(x4,y4)の動きベクトル(vx4,vy4)、右上制御点(x5,y5)の動きベクトル(vx5,vy5)、及び左下制御点(x6,y6)の動きベクトル(vx6,vy6)、が取得される。次いで、隣接するアフィン復号化ブロックの3つの制御点によって構成された6パラメータアフィン変換モデルに基づいて、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルは、夫々、式(34)、(35)、及び(36)に従って導出される。
【0316】
本発明の技術的解決法は、上記の例に限定されず、他の制御点、運動モデル、候補位置、及び探索順序も、本発明に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0317】
ステップ603b:インデックス値に基づいて制御点の動きベクトルを決定する。
【0318】
具体的に、候補動きベクトルリストのインデックス値は、ビットストリームをパースすることによって取得され、制御点の実際の動きベクトルは、インデックス値に基づいて、ステップ602bで構成された候補動きベクトルリストの中で決定される。
【0319】
例えば、4パラメータアフィン運動モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、2つの制御点の動きベクトルは、インデックス値に基づいて候補動きベクトル2タプルリストの中で決定される。
【0320】
他の例として、6パラメータアフィン運動モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、3つの制御点の動きベクトルは、インデックス値に基づいて候補動きベクトルトリプレットリストの中で決定される。
【0321】
他の例として、8パラメータ双線形モデルが現在のブロックに使用される場合に、インデックス値は、パースすることにより取得され、4つの制御点の動きベクトルは、インデックス値に基づいて候補動きベクトルトクワドループルリストの中で決定される。
【0322】
ステップ604b:現在のブロックに使用されているアフィン変換モデルに基づいて現在のブロックの各サブブロックの動きベクトルを取得する。このステップの詳細な実施については、ステップ605aの説明を参照されたい。本明細書の簡潔さのために、詳細は、ここで再び記載されない。
【0323】
ステップ605b:サブブロックごとに、対応する動きベクトルに基づいて動き補償を実行して、サブブロックのピクセル予測子を取得する。
【0324】
本発明のこの実施形態において、復号器側は、現在のブロックを予測する過程で、第1運動モデルに基づく動きベクトル予測方法を使用する、ことが分かる。このようにして、隣接ブロックのアフィン変換モデルは、現在のブロックをパースするフェーズで(例えば、AMVPモード又はマージモードのための候補動きベクトルリストを構成するフェーズで)、現在のブロックのアフィン変換モデルを構成するために使用され得る。2つのブロックのアフィン変換モデルは、異なっても又は同じであってもよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0325】
図12を参照されたい。第2運動モデルに基づく動きベクトル予測方法の設計ソリューションに基づいて、本発明の実施形態は、他の動きベクトル予測方法を提供する。方法は、ビデオ復号器200によって実行されてよく、具体的に、ビデオ復号器200のインター予測器210によって実行されてよい。ビデオ復号器200は、複数のビデオフレームを有するビデオデータストリームに基づいて、現在のビデオフレームの現在の復号化ブロック(略して現在のブロックと称される)の各サブブロックの動き情報を予測し、動き補償を実行するよう、下記のステップの一部又は全てを実行してよい。図12に示されるように、方法は、次のステップを含むが、限定されない。
【0326】
ステップ701:ビットストリームをパースし、現在の復号化ブロックのインター予測モードを決定する。
【0327】
具体的に、復号器側でのビデオ復号器200は、インター予測モードを示すために使用されている指示情報を取得して、指示情報に基づいて現在のブロックのインター予測モードを決定するために、符号器側から送信されたビットストリーム内のシンタックス要素をパースしてよい。
【0328】
現在のブロックのインター予測モードがアフィン変換モデルに基づくAMVPモードであると決定される場合には、ステップ702aから706aが続いて実行される。
【0329】
現在のブロックのインター予測モードがアフィン変換モデルに基づくマージモードであると決定される場合には、ステップ702bから705bが続いて実行される。
【0330】
ステップ702a:アフィン変換モデルに基づくAMVPモードのための候補動きベクトルリストを構成する。
【0331】
本発明のこの実施形態で、画像シーケンス内の画像の異なるブロックに使用されるアフィン変換モデルは限定されず、すなわち、異なるアフィン変換モデルが異なるブロックごと使用されてよい。
【0332】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、継承的制御点動きベクトル予測方法を使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0333】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0334】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、構成的制御点動きベクトル予測方法を使用することによって取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0335】
いくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、継承的制御点動きベクトル予測方法、第2運動モデルに基づく動きベクトル予測方法、又は構成的制御点動きベクトル予測方法のうちのいずれか2つを使用することによって別々に取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0336】
いくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、継承的制御点動きベクトル予測方法、第2運動モデルに基づく動きベクトル予測方法、及び構成的制御点動きベクトル予測方法を使用することによって別々に取得され、AMVPモードに対応する候補動きベクトルリストに加えられてよい。
【0337】
継承的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(3)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0338】
構成的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(4)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0339】
第1運動モデルに基づく動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(5)”で及び図9の実施形態におけるステップ602aで詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0340】
例えば、4パラメータアフィン変換モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストは2タプルリストであってよい。2タプルリストは、4パラメータアフィン変換モデルを構成するために使用される1つ以上の2タプルを含む。
【0341】
6パラメータアフィン変換モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストはトリプレットリストであってよい。トリプレットリストは、6パラメータアフィン変換モデルを構成するために使用される1つ以上のトリプレットを含む。
【0342】
8パラメータ双線形モデルが現在のブロックに使用される場合に、AMVPモードのための候補動きベクトルリストは、クワドループルリストであってよい。クワドループルリストは、8パラメータ双線形モデルを構成するために使用される1つ以上のクワドループルを含む。
【0343】
可能な適用シナリオで、候補動きベクトル2タプル/トリプレット/クワドループルリストは、特定の規則に従って更にプルーニング及びソートされてよく、特定の数の候補動きベクトル候補を取得するよう切り詰められ又はパディングされてよい。
【0344】
ステップ703a:インデックス値に基づいて制御点の最適な動きベクトル予測子を決定する。具体的な内容については、図9の実施形態におけるステップ603aの関連する記載を参照されたい。詳細は、ここで再び記載されない。
【0345】
ステップ704a:動きベクトル差に基づいて現在のブロックの3つの制御点の動きベクトルを決定する。
【0346】
具体的に、制御点の動きベクトル差は、ビットストリームをパースすることによって取得され、次いで、制御点の動きベクトルは、制御点の動きベクトル差と、ステップ703aで決定されている制御点の最適な動きベクトル予測子とに基づいて、取得される。次いで、現在のブロックの3つの制御点の動きベクトルは、制御点の取得された動きベクトルに基づいて決定される。
【0347】
例えば、ステップ702aで復号器側によって構成された候補動きベクトルリストが2タプルリストである場合に、インデックス値は、ステップ703aでパースすることにより取得され、2つの制御点(すなわち、2タプル)の動きベクトル予測子(MVP)は、インデックス値に基づいて候補動きベクトルリストの中で決定される。現在のブロックの2つの制御点の動きベクトル差(MVD)は、ステップ704aでビットストリームをパースすることによって取得される。次いで、2つの制御点の動きベクトル(MV)は、2つの制御点のMVP及びMVDに基づいて夫々取得される。2つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)である。次いで、4パラメータアフィン変換モデルは、現在のブロックの2つの制御点の動きベクトルに基づいて構成される。第3の制御点の動きベクトルは、4パラメータアフィン変換モデルのための上記の式(40)に従って取得される。第3の制御点の動きベクトルは、例えば、現在のブロックの左下角(x2,y2)の動きベクトル(vx2,vy2)である。このようにして、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルは決定される。
【0348】
他の例として、ステップ702aで復号器側によって構成された候補動きベクトルリストがトリプレットリストである場合に、インデックス値は、ステップ703aでパースすることにより取得され、3つの制御点(すなわち、トリプレット)の動きベクトル予測子(MVP)は、インデックス値に基づいて候補動きベクトルリストの中で決定される。現在のブロックの3つの制御点の動きベクトル差(MVD)は、ステップ704aでビットストリームをパースすることによって取得される。次いで、3つの制御点の動きベクトル(MV)は、3つの制御点のMVP及びMVDに基づいて夫々取得される。3つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)である。
【0349】
このようにして、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルは、決定される。
【0350】
他の例として、ステップ702aで復号器側によって構成された候補動きベクトルリストがクワドループルリストである場合に、インデックス値は、ステップ703aでパースすることにより取得され、4つの制御点(すなわち、クワドループル)の動きベクトル予測子(MVP)は、インデックス値に基づいて候補動きベクトルリストの中で決定される。現在のブロックの4つの制御点の動きベクトル差(MVD)は、ステップ704aでビットストリームをパースすることによって取得される。次いで、4つの制御点の動きベクトル(MV)は、4つの制御点のMVP及びMVDに基づいて夫々取得される。4つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)、現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)、及び現在のブロックの右下制御点(x3,y3)の動きベクトル(vx3,vy3)である。次いで、復号器側は、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルのみを使用してよい。
【0351】
本発明の技術的解決法は、上記の例に限定されず、他の制御点及び運動モデルも、本発明に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0352】
ステップ705a:現在のブロックの3つの制御点に基づき、かつ、6パラメータアフィン変換モデルを使用することによって、各サブブロックの動きベクトルを取得する。
【0353】
具体的に、現在のブロックの3つの制御点の動きベクトルは、ステップ704aで決定されている。従って、6パラメータアフィン変換モデルは、現在のブロックの3つの制御点の動きベクトルに基づいて構成されてよく、各サブブロックの動きベクトルは、6パラメータアフィン変換モデルを使用することによって取得される。
【0354】
例えば、3つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)である。この場合に、再構成フェーズでの現在のブロックの6パラメータアフィン変換モデルは、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)を使用することによって取得される。6パラメータアフィン変換モデルの式は、式(37)に示されている。
【0355】
次いで、現在のブロックの左上角(又は他の基準点)に対する現在のブロックの各サブブロック(又は各動き補償ユニット)における前もってセットされた位置でのサンプルの座標(x(i,j),y(i,j))は、各サブブロックの動きベクトルを取得するために上記の式(37)に代入される。前もってセットされた位置でのサンプルは、各サブブロック(又は各動き補償ユニット)の中心点であってよい。現在のブロックの左上ピクセルに対する各サブブロック(又は各動き補償ユニット)の中心点の座標(x(i,j),y(i,j))は、上記の式(38)に従って計算されてよい。具体的な内容については、図11Aの実施形態及び図11Bの実施形態における関連する記載を参照されたい。詳細は、ここで再び記載されない。
【0356】
ステップ706a:サブブロックごとに、対応する動きベクトルに基づいて動き補償を実行して、サブブロックのピクセル予測子を取得する。
【0357】
ステップ702b:アフィン変換モデルに基づくマージモードのための候補動きベクトルリストを構成する。
【0358】
同様に、本発明のこの実施形態で、画像シーケンス内の画像の異なるブロックに使用されるアフィン変換モデルは限定されず、すなわち、異なるアフィン変換モデルが異なるブロックごと使用されてよい。
【0359】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、継承的制御点動きベクトル予測方法を使用することによって取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0360】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、第1運動モデルに基づく動きベクトル予測方法を使用することによって取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0361】
具体的な実施形態で、現在のブロックの制御点の候補動きベクトルは、構成的制御点動きベクトル予測方法を使用することによって取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0362】
いくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、継承的制御点動きベクトル予測方法、第2運動モデルに基づく動きベクトル予測方法、又は構成的制御点動きベクトル予測方法のうちのいずれか2つを使用することによって別々に取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0363】
いくつかの他の具体的な実施形態において、現在のブロックの制御点の候補動きベクトルは、代替的に、継承的制御点動きベクトル予測方法、第2運動モデルに基づく動きベクトル予測方法、及び構成的制御点動きベクトル予測方法を使用することによって別々に取得され、マージモードに対応する候補動きベクトルリストに加えられてよい。
【0364】
継承的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(3)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0365】
構成的制御点動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(4)”で詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0366】
第1運動モデルに基づく動きベクトル予測方法を使用することによって現在のブロックの制御点の候補動きベクトルを取得することに関するいくつかの内容は、上記の“(5)”で及び図9の実施形態におけるステップ602aで詳細に説明されている。本明細書の簡潔さのために、詳細はここで再び記載されない。
【0367】
更なるいくつかの他の実施形態で、アフィン変換モデルに基づくマージモードの場合に、復号器側によって確立された候補動きベクトルリストは、候補動きベクトル2タプル/トリプレット/クワドループルリストであってよい、ことが留意されるべきである。その上、候補動きベクトル2タプル/トリプレット/クワドループルリストは、特定の規則に従って更にプルーニング及びソートされてよく、特定の数の候補動きベクトル候補を取得するよう切り詰められ又はパディングされてよい。
【0368】
更なるいくつかの他の実施形態で、アフィン変換モデルに基づくマージモードの場合に、4パラメータアフィン変換モデル、6パラメータアフィン変換モデル、及び8パラメータ双線形モデルなどのアフィン変換モデルは、代替的に、画像内の異なるブロックごとに区別されてなくてもよく、すなわち、同数のパラメータによるアフィン変換モデルが異なるブロックに使用されてよい、ことが留意されるべきである。
【0369】
ステップ703b:インデックス値に基づいて制御点の動きベクトルを取得する。具体的に、候補動きベクトルリストのインデックス値は、ビットストリームをパースすることによって取得され、制御点の実際の動きベクトルは、インデックス値に基づいて、ステップ702bで構成された候補動きベクトルリストの中で決定される。このステップの具体的な実施については、図9の実施形態におけるステップ603bにおける関連する記載を参照されたい。詳細は、ここで再び記載されない。
【0370】
ステップ704b:制御点の取得された動きベクトルに基づいて現在のブロックの3つの制御点の動きベクトルを決定する。
【0371】
例えば、復号器側は、ステップ703bで2つの制御点(すなわち、2タプル)の動きベクトルを取得する。2つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)及び現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)である。次いで、4パラメータアフィン変換モデルは、現在のブロックの2つの制御点の動きベクトルに基づいて構成される。第3の制御点の動きベクトルは、4パラメータアフィン変換モデルのための上記の式(31)に従って取得される。第3の制御点の動きベクトルは、例えば、現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)である。このようにして、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルは、決定される。
【0372】
他の例として、復号器側は、ステップ703bで3つの制御点(すなわち、トリプレット)の動きベクトルを取得する。3つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトル(vx1,vy1)、及び現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)である。このようにして、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルは、決定される。
【0373】
他の例として、復号器側は、ステップ703bで4つの制御点(すなわち、クワドループル)の動きベクトルを取得する。4つの制御点の動きベクトルは、例えば、現在のブロックの左上制御点(x0,y0)の動きベクトル(vx0,vy0)、現在のブロックの右上制御点(x1,y1)の動きベクトルvx1,vy1)、現在のブロックの左下制御点(x2,y2)の動きベクトル(vx2,vy2)、及び現在のブロックの右下制御点(x3,y3)の動きベクトル(vx3,vy3)である。次いで、復号器側は、現在のブロックの左上制御点、右上制御点、及び左下制御点の動きベクトルのみを使用してよい。
【0374】
本発明の技術的解決法は、上記の例に限定されず、他の制御点及び運動モデルも、本発明に適用可能であり得る、ことが留意されるべきである。詳細はここで記載されない。
【0375】
ステップ705b:現在のブロックの3つの制御点に基づき、かつ、6パラメータアフィン変換モデルを使用することによって、各サブブロックの動きベクトルを取得する。このステップの具体的な実施については、ステップ705aにおける関連する記載を参照されたい。詳細は、ここで再び記載されない。
【0376】
ステップ706b:サブブロックごとに、対応する動きベクトルに基づいて動き補償を実行して、サブブロックのピクセル予測子を取得する。
【0377】
本発明のこの実施形態において、復号器側は、現在のブロックを予測する過程で、第2運動モデルに基づく動きベクトル予測方法を使用する、ことが分かる。このようにして、パースフェーズで、現在のブロックに使用されるアフィン変換モデルのパラメータの数は、隣接ブロックに使用されるアフィン変換モデルのそれと異なっても又は同じであってもよく、6パラメータアフィン変換モデルは、現在のブロックを再構成するフェーズ(サブブロックの動きベクトルを予測するフェーズを含む)で、現在のブロックを予測するために一律に使用され得る。この解決法で、再構成フェーズで構成された6パラメータアフィン変換モデルは、画像ブロックの平行移動、スケーリング、及び回転などのアフィン変換を記述し、モデル複雑性とモデリング能力との間の良いバランスを達成することができる。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0378】
図13は、本発明の実施形態に従う更なる他の動きベクトル予測方法のフローチャートである。方法は、ビデオ符号器100によって実行されてよく、具体的に、ビデオ符号器100のインター予測器110によって実行されてよい。ビデオ符号器100は、複数のビデオフレームを有するビデオデータストリームに基づいて、現在のビデオフレームの現在のコーディングブロック(略して現在のブロックと称される)を符号化するよう、下記のステップの一部又は全てを実行してよい。図13に示されるように、方法は、次のステップを含むが、これらに限定されない。
【0379】
801:現在のコーディングブロックのインター予測モードを決定する。
【0380】
具体的な実施において、複数のインター予測モードが、符号器側でインター予測のために予めセットされてよい。例えば、複数のインター予測モードは、上述されているアフィン運動モデルに基づくAMVPモード及びアフィン運動モデルに基づくマージモードを含む。符号器側は、現在のブロックを予測するための最適なインター予測モードを決定するために、複数のインター予測モードをトラバースする。
【0381】
他の具体的な実施では、ただ1つのインター予測モードが、符号器側でインター予測のために予めセットされてよい。この場合に、符号器側は、デフォルトのインター予測モードが現在使用されていることを直接決定する。デフォルトのインター予測モードは、アフィン運動モデルに基づくAMVPモード又はアフィン運動モデルに基づくマージモードである。
【0382】
本発明のこの実施形態において、現在のブロックのインター予測モードがアフィン運動モデルに基づくAMVPモードであると決定される場合には、ステップ802aから804aが続けて実行される。
【0383】
本発明のこの実施形態において、現在のブロックのインター予測モードがアフィン運動モデルに基づくマージモードであると決定される場合には、ステップ802bから804bが続けて実行される。
【0384】
802a:アフィン変換に基づくAMVPモードのための候補動きベクトルリストを構成する。
【0385】
いくつかの実施形態で、符号器側は、第1運動モデルに基づく動きベクトル予測方法の設計ソリューションを使用する。従って、このステップの具体的な実施については、図9の実施形態におけるステップ602aの記載を参照されたい。詳細は、ここで再び記載されない。
【0386】
いくつかの他の実施形態で、符号器側は、第2運動モデルに基づく動きベクトル予測方法の設計ソリューションを使用する。従って、このステップの具体的な実施については、図12の実施形態におけるステップ702aの記載を参照されたい。詳細は、ここで再び記載されない。
【0387】
803a:レート歪みコストに基づいて制御点の最適な動きベクトル予測子を決定する。
【0388】
いくつかの例で、符号器側は、候補動きベクトルリスト内の制御点動きベクトル予測子(例えば、候補動きベクトル2タプル/トリプレット/クワドループル)を使用することによって、及び式(3)、(5)、又は(7)に従って、現在のブロックの各動き補償サブユニットの動きベクトルを取得してよい。更に、符号器側は、各動き補償サブユニットの動きベクトルが指し示す参照フレーム内の対応する位置のピクセル値を取得し、そのピクセル値を動き補償サブユニットのピクセル予測子として使用して、アフィン運動モデルに基づく動き補償を実行する。元の値と現在のコーディングブロックにおける各サンプルの予測子との間の平均差が計算される。最小平均差に対応する制御点動きベクトル予測子が、最適な制御点動きベクトル予測子として選択され、現在のブロックの2つ、3つ、又は4つの制御点の動きベクトル予測子として使用される。
【0389】
804a:インデックス値と、制御点の動きベクトル差と、インター予測モードの指示情報とをビットストリームに符号化する。
【0390】
いくつかの例で、符号器側は、制御点動きベクトル(control point motion vectors,CPMV)を取得するように最適な制御点動きベクトル予測子を探索開始点として使用することによって特定の探索範囲内で動き探索を実行し、そして、制御点動きベクトルと制御点動きベクトル予測子との間の差(control point motion vectors differences,CPMVD)を計算してよい。次いで、符号器側は、候補動きベクトルリスト内の制御点動きベクトル予測子の位置を示すインデックス値と、CPMVDとをビットストリームに符号化する。インター予測モードの指示情報が更にビットストリームに符号化されてもよく、それにより、ビットストリームは、その後に、復号器側へ送信される。
【0391】
他の可能な例で、符号器側は、現在のブロックに使用されているアフィン変換モデル(パラメータの数)を示す指示情報をビットストリームに符号化し、その後に、ビットストリームを復号器側へ送信してよい。このようにして、復号器側は、指示情報に基づいて、現在のブロックに使用されているアフィン変換モデルを決定する。
【0392】
802b:アフィン変換に基づくマージモードのための候補動きベクトルリストを構成する。
【0393】
いくつかの実施形態で、符号器側は、第1運動モデルに基づく動きベクトル予測方法の設計ソリューションを使用する。従って、このステップの具体的な実施については、図9の実施形態におけるステップ602bの記載を参照されたい。詳細は、ここで再び記載されない。
【0394】
いくつかの他の実施形態で、符号器側は、第2運動モデルに基づく動きベクトル予測方法の設計ソリューションを使用する。従って、このステップの具体的な実施については、図12の実施形態におけるステップ702bの記載を参照されたい。詳細は、ここで再び記載されない。
【0395】
803b:制御点の最適な動きベクトル予測子を決定する。
【0396】
いくつかの例で、符号器側は、候補動きベクトルリスト内の制御点動きベクトル(例えば、候補動きベクトル2タプル/トリプレット/クワドループル)を使用することによって、及び式(3)、(5)、又は(7)に従って、現在のコーディングブロックの各動き補償サブユニットの動きベクトルを取得してよい。更に、符号器側は、各動き補償サブユニットの動きベクトルが指し示す参照フレーム内の位置のピクセル値を取得し、そのピクセル値を動き補償サブユニットのピクセル予測子として使用して、アフィン動き補償を実行する。元の値と現在のコーディングブロックにおける各サンプルの予測子との間の平均差が計算される。最小平均差に対応する制御点動きベクトルが、最適な制御点動きベクトルとして選択される。最適な制御点動きベクトルは、現在のコーディングブロックの2つ、3つ、又は4つの制御点の動きベクトルとして使用される。
【0397】
804b:インデックス値及びインター予測モードの指示情報をビットストリームに符号化する。
【0398】
一例で、符号器側は、候補リスト内の制御点動きベクトルの位置を示すインデックス値と、インター予測モードの指示情報とをビットストリームに符号化してよく、それにより、ビットストリームは、その後に、復号器側へ送信される。
【0399】
他の可能な例で、符号器側は、現在のブロックに使用されているアフィン変換モデル(パラメータの数)を示す指示情報をビットストリームに符号化し、その後に、ビットストリームを復号器側へ送信してよい。このようにして、復号器側は、指示情報に基づいて、現在のブロックに使用されているアフィン変換モデルを決定する。
【0400】
上記の実施形態は、符号器側が符号化を実行し、ビットストリームを送るプロセスのみを記載している、ことが留意されるべきである。上記の記載に従って、当業者であれば、符号器側は、他のプロシージャで、本発明の実施形態で説明されている他の方法を実行してもよい、ことを理解する。例えば、現在のブロックに対して符号器側によって実行される予測中に、現在のブロックを再構成するプロセスの具体的な実施については、復号器側に関して上述された関連する方法(図9又は図12の実施形態で示される)を参照されたい。詳細は、ここで再び記載されない。
【0401】
本発明の実施形態において、符号器側は、第1運動モデルに基づく動きベクトル予測方法の設計ソリューションに従って現在のブロックを符号化する、ことが分かる。このようにして、隣接ブロックのアフィン変換モデルは、現在のブロックをパースするフェーズで(例えば、AMVPモード又はマージモードのための候補動きベクトルリストを構成するフェーズで)、現在のブロックのアフィン変換モデルを構成するために使用され得る。2つのブロックのアフィン変換モデルは、異なっても又は同じであってもよい。現在のブロックのアフィン変換モデルは、現在のブロックの実際の動き状態/実際の要件をより良く満足する。従って、この解決法は、現在のブロックを符号化する効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0402】
本発明の実施形態において、符号器側は、第2運動モデルに基づく動きベクトル予測方法の設計ソリューションに従って現在のブロックを符号化する、ことが更に分かる。このことは、復号器側が、画像ブロックを再構成するフェーズで、画像ブロックを予測するために6パラメータアフィン変換モデルを一律に使用するのを助ける。従って、この解決法は、現在のブロックを予測する際のコーディング効率及び精度を改善し、かつ、ユーザ要求を満足することができる。
【0403】
当業者であれば、本明細書で開示及び記載されている様々な実例となる論理ブロック、モジュール、及びアルゴリズムステップを参照して説明されている機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実施され得る、と理解することができる。ソフトウェアで実施される場合に、実例となる論理ブロック、モジュール、及びステップを参照して説明されている機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体で記憶又は伝送され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形な媒体に対応するコンピュータ可読記憶媒体を含んでも、あるいは、1つの場所から他へ(例えば、通信プロトコルに従って)コンピュータプログラムの伝送を助ける如何なる通信媒体も含んでもよい。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形なコンピュータ可読記憶媒体、又は(2)信号若しくは搬送波などの通信媒体に対応してよい。データ記憶媒体は、本発明の実施形態で説明されている技術を実施するための命令、コード、及び/又はデータ構造を取り出すよう1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る如何なる使用可能な媒体でもあってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
【0404】
例としてであって限定としてではなく、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他のコンパクトディスク型記憶装置、磁気ディスク記憶装置若しくは他の磁気記憶装置、フラッシュメモリ、又は命令若しくはデータ構造の形で所望のプログラムコードを記憶するために使用可能であって、コンピュータによってアクセスされ得るあらゆる他の媒体を含んでよい。更に、如何なる接続も、コンピュータ可読媒体と適切に呼ばれる。例えば、命令がウェブサイト、サーバ、又は他の遠隔ソースから同軸ケーブル、光ファイバ、ツイステッドペア、デジタル加入者回線(DSL)、又は赤外線、電波、若しくはマイクロ波などの無線技術を通じて伝送される場合に、同軸ケーブル、光ファイバ、ツイステッドペア、DSL、又は赤外線、電波、若しくはマイクロ波などの無線技術は、媒体の定義に含まれる。なお、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、実際に非一時的な有形な記憶媒体である、ことが理解されるべきである。本明細書で使用されているdisk及びdiscは、コンパクトディスク(CD)、レーザーディスク、光ディスク、デジタル・バーサタイル・ディスク(DVD)、及びブルーレイディスクを含む。diskは、通常は、磁気的にデータを再生し、一方、discは、レーザーで光学的にデータを再生する。上記の組み合わせも、コンピュータ可読媒体の範囲に含まれるべきである。
【0405】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又は他の同等の集積若しくはディスクリート・ロジック回路などの1つ以上のプロセッサによって実行されてよい。従って、本明細書で使用されている「プロセッサ」との用語は、上記の構造又は本明細書で説明されている技術に適用可能なあらゆる他の構造のいずれか1つであってよい。更に、いくつかの態様で、本明細書で説明されている実例となる論理ブロック、モジュール、及びステップを参照して記載されている機能は、符号化及び復号化のために構成されている専用のハードウェア及び/又はソフトウェアモジュール内で提供されてよく、あるいは、複合型コーデックに組み込まれてよい。更に、技術は、1つ以上の回路又はロジック素子において完全に実施されてよい。
【0406】
本発明の実施形態における技術は、無線ハンドセット、集積回路(IC)、又はICの組(例えば、チップセット)を含む様々な装置又はデバイスで実施されてよい。様々なコンポーネント、モジュール、又はユニットは、開示されている技術を実行するよう構成されている装置の機能的側面を強調するように本発明の実施形態で説明されているが、必ずしも異なるハードウェアユニットによって実施されない。実際には、上述されたように、様々なユニットは、適切なソフトウェア及び/又はファームウェアと組み合わせてコーデックハードウェアユニットにまとめられてよく、あるいは、相互運用可能なハードウェアユニット(上述された1つ以上のプロセッサを含む)によって提供されてよい。
【0407】
上記の説明は、本発明の実施形態の具体的な実施の例にすぎず、本発明の実施形態の保護範囲を限定する意図はない。本発明の実施形態で開示されている技術的範囲内で当業者によって容易に考え出される如何なる変形又は置換も、本発明の実施形態の保護範囲内にあるべきである。従って、本発明の実施形態の保護範囲は、特許請求の範囲の保護範囲に従うべきである。
図1
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12
図13
【外国語明細書】