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

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

▶ エルジー エレクトロニクス インコーポレイティドの特許一覧

特開2024-15036アフィン予測を用いてビデオ信号を処理する方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024015036
(43)【公開日】2024-02-01
(54)【発明の名称】アフィン予測を用いてビデオ信号を処理する方法及び装置
(51)【国際特許分類】
   H04N 19/54 20140101AFI20240125BHJP
   H04N 19/70 20140101ALI20240125BHJP
【FI】
H04N19/54
H04N19/70
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023198969
(22)【出願日】2023-11-24
(62)【分割の表示】P 2020505788の分割
【原出願日】2018-08-03
(31)【優先権主張番号】62/541,083
(32)【優先日】2017-08-03
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】イ チェホ
(57)【要約】
【課題】アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をデコードする方法を提供する。
【解決手段】現在ブロックに対してAFモードが適用されるか否かを確認するステップと、ここで、AFモードはアフィン動きモデルを利用する動き予測モードを示し、現在ブロックに対してAFモードが適用される場合、AF4モードが利用されるか否かを確認するステップと、ここで、AF4モードは、アフィン動きモデルを構成する4つのパラメータを利用して動きベクトルを予測するモードを示し、AF4モードが利用されると、4つのパラメータを利用して動きベクトル予測子を生成し、AF4モードが利用されないと、アフィン動きモデルを構成する6つのパラメータを利用して動きベクトル予測子を生成するステップと、動きベクトル予測子に基づいて現在ブロックの動きベクトルを取得するステップとを含む。
【選択図】図11
【特許請求の範囲】
【請求項1】
アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をデコードする方法において、
前記ビデオ信号からマージフラグを取得するステップであって、前記マージフラグは、動きパラメータが隣接ブロックから推測されるか否かを表す、ステップと、
前記動きパラメータが前記隣接ブロックから推測されないことに基づいて、前記現在ブロックの幅と高さが所定値と等しいか、又は所定値より大きいか否かを検査するステップと、
前記ビデオ信号からアフィンフラグを取得するステップであって、前記アフィンフラグは、前記AFモードが前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを取得するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測を行うステップと、を含み、
前記動きパラメータが前記隣接ブロックから推測されないことを前記マージフラグが表すこと、及び前記現在ブロックの前記幅と前記高さが前記所定値と等しいか、又は前記所定値より大きいことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが取得され、
前記所定値は16である、方法。
【請求項2】
前記アフィンフラグ及び前記アフィンパラメータフラグは、コーディングユニットのレベルにおいて定義される、請求項1に記載の方法。
【請求項3】
前記現在ブロックの前記幅と前記高さが前記所定値より小さいことに基づいて、前記現在ブロックは、前記AFモード以外のコーディングモードに基づいてデコードされる、請求項1に記載の方法。
【請求項4】
アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をデコードする装置において、
前記ビデオ信号からマージフラグを取得し、前記マージフラグは、動きパラメータが隣接ブロックから推測されるか否かを表し、
前記動きパラメータが前記隣接ブロックから推測されないことに基づいて、前記現在ブロックの幅と高さが所定値と等しいか、又は所定値より大きいか否かを検査し、
前記ビデオ信号からアフィンフラグを取得し、前記アフィンフラグは、前記AFモードが前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表し、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを取得し、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得し、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測を行うよう構成されたプロセッサを含み、
前記動きパラメータが前記隣接ブロックから推測されないことを前記マージフラグが表すこと、及び前記現在ブロックの前記幅と前記高さが前記所定値と等しいか、又は前記所定値より大きいことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが取得され、
前記所定値は16である、装置。
【請求項5】
前記アフィンフラグ及び前記アフィンパラメータフラグは、コーディングユニットのレベルにおいて定義される、請求項4に記載の装置。
【請求項6】
前記現在ブロックの前記幅と前記高さが前記所定値より小さいことに基づいて、前記現在ブロックは、前記AFモード以外のコーディングモードに基づいてデコードされる、請求項4に記載の装置。
【請求項7】
アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をエンコードする方法において、
動きパラメータが隣接ブロックから推測されるか否かを表すマージフラグを生成するステップと、
前記動きパラメータが前記隣接ブロックから推測されないことに基づいて、前記現在ブロックの幅と高さが所定値と等しいか、又は所定値より大きいか否かを検査するステップと、
前記ビデオ信号からアフィンフラグを生成するステップであって、前記アフィンフラグは、前記AFモードが前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを生成するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測を行うステップと、を含み、
前記動きパラメータが前記隣接ブロックから推測されないことを前記マージフラグが表すこと、及び前記現在ブロックの前記幅と前記高さが前記所定値と等しいか、又は前記所定値より大きいことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが生成され、
前記所定値は16である、方法。
【請求項8】
ビデオ信号に対するデータの送信方法において、
前記ビデオ信号に対するビットストリームを生成するステップであって、前記ビットストリームは、エンコード方法により生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み、
前記エンコード方法は、
動きパラメータが隣接ブロックから推測されるか否かを表すマージフラグを生成するステップと、
前記動きパラメータが前記隣接ブロックから推測されないことに基づいて、現在ブロックの幅と高さが所定値と等しいか、又は所定値より大きいか否かを検査するステップと、
前記ビデオ信号からアフィンフラグを生成するステップであって、前記アフィンフラグは、アフィン動き予測モード(AFモード)が前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを生成するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測を行うステップと、を含み、
前記動きパラメータが前記隣接ブロックから推測されないことを前記マージフラグが表すこと、及び前記現在ブロックの前記幅と前記高さが前記所定値と等しいか、又は前記所定値より大きいことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが生成され、
前記所定値は16である、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ信号のエンコード/デコード方法及び装置に関し、より具体的に、アフィン予測(affine prediction)を適応的に行う方法及び装置に関する。
【背景技術】
【0002】
圧縮符号化とは、デジタル化した情報を通信回線を介して送信するか、格納媒体に適した形態で格納するための一連の信号処理技術を意味する。画像、イメージ、音声などのメディアが圧縮符号化の対象となり、特に、画像を対象にして圧縮符号化を行う技術をビデオ画像圧縮という。
【0003】
次世代ビデオコンテンツは、高解像度(high spatial resolution)、高フレーム率(high frame rate)及び画像表現の高次元化(high dimensionality of scene representation)という特徴を有する。そのようなコンテンツを処理するためには、メモリ格納(memory storage)、メモリアクセス率(memory access rate)及び処理電力(processing power)の側面で多大な増加をもたらすだろう。
【0004】
従って、次世代ビデオコンテンツをより効率的に処理するためのコーディングツールをデザインする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、より効率的にビデオ信号をエンコード、デコードする方法を提案する。
【0006】
また、本発明は、4つのパラメータを利用するアフィン予測(Four parameter affine prediction)モードであるAF4モード及び6つのパラメータを利用するアフィン予測(six parameter affine prediction)モードであるAF6モードを両方とも考慮してエンコード又はデコードする方法を提案する。
【0007】
また、本発明は、ブロックサイズに基づいてAF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定(又は、選択)する方法を提案する。
【0008】
また、本発明は、隣接ブロックがアフィン予測によりコーディングされたか否かに基づいてAF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定(又は、選択)する方法を提案する。
【課題を解決するための手段】
【0009】
前述した技術的課題を解決するために、
【0010】
本発明は、ブロックサイズに基づいてアフィン予測(affine prediction)を適応的に行う方法を提供する。
【0011】
また、本発明は、隣接ブロックがアフィン予測によりコーディングされたか否かに基づいてアフィン予測(affine prediction)を適応的に行う方法を提供する。
【0012】
また、本発明は、AF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定(又は、選択)する方法を提供する。
【0013】
また、本発明は、少なくとも1つの既に設定された条件を満足するか否かに基づいてアフィン予測(affine prediction)を適応的に行う方法を提供し、この場合、前記既に設定された条件は、ブロックサイズ、ブロックのピクセル数、ブロックの幅、ブロックの高さ、隣接ブロックがアフィン予測によりコーディングされたか否かの少なくとも1つを含んでもよい。
【発明の効果】
【0014】
本発明は、アフィン予測(affine prediction)を適応的に行う方法を提供することにより、アフィン予測の性能を向上させることができ、アフィン予測の複雑度を減少させることにより、より効率的なコーディングを行うことができる。
【図面の簡単な説明】
【0015】
図1】本発明が適用される実施形態として、ビデオ信号のエンコードが行われるエンコーダの概略的なブロック図を示す。
図2】本発明が適用される実施形態として、ビデオ信号のデコードが行われるデコーダの概略的なブロック図を示す。
図3】本発明が適用できる実施形態として、QT(QuadTree、以下、「QT」という)ブロック分割構造を説明するための図である。
図4】本発明が適用できる実施形態として、BT(Binary Tree、以下、「BT」という)ブロック分割構造を説明するための図である。
図5】本発明が適用できる実施形態として、TT(Ternary Tree、以下、「TT」という)ブロック分割構造を説明するための図である。
図6】本発明が適用できる実施形態として、AT(Asymmetric Tree、以下、「AT」という)ブロック分割構造を説明するための図である。
図7】本発明が適用される実施形態として、インター予測モードを説明するための図である。
図8】本発明が適用される実施形態として、アフィン動きモデル(affine motion model)を説明するための図である。
図9】本発明が適用される実施形態として、制御点動きベクトル(control point motion vector)を利用したアフィン動き予測方法を説明するための図である。
図10】本発明が適用される実施形態として、アフィン予測モード(Affine prediction mode)を利用して現在ブロックを含むビデオ信号を処理する過程を説明するフローチャートである。
図11】本発明が適用される実施形態(1-1)として、AF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定するフローチャートを示す。
図12】本発明が適用される実施形態(1-2)として、AF4モード又はAF6モードに基づいて適応的にデコードを行うフローチャートを示す。
図13】本発明が適用される実施形態(1-3)として、AF4モード又はAF6モードに基づいてデコードを行うシンタックス構造を示す。
図14】本発明が適用される実施形態(2-1)として、条件A(condition A)に基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
図15】本発明が適用される実施形態(2-2)として、条件A(condition A)に基づいてAF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図16】本発明が適用される実施形態(2-3)として、条件A(condition A)に基づいてAF4モード又はAF6モードに応じてデコードを行うシンタックス構造を示す。
図17】本発明が適用される実施形態(3-1)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
図18】本発明が適用される実施形態(3-2)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図19】本発明が適用される実施形態(3-3)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードに応じてデコードを行うシンタックス構造を示す。
図20】本発明が適用される実施形態(4-1)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
図21】本発明が適用される実施形態(4-2)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図22】本発明が適用される実施形態(4-3)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードに応じてデコードを行うシンタックス構造を示す。
図23】本発明が適用される実施形態(5-1)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
図24】本発明が適用される実施形態(5-2)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図25】本発明が適用される実施形態(5-3)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードに応じてデコードを行うシンタックス構造を示す。
図26】本発明が適用される実施形態(6-1)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
図27】本発明が適用される実施形態(6-2)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図28】本発明が適用される実施形態(6-3)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードに応じてデコードを行うシンタックス構造を示す。
図29】本発明が適用される実施形態として、AF4モード又はAF6モードの少なくとも1つに基づいて動きベクトル予測子を生成するフローチャートを示す。
図30】本発明が適用される実施形態として、AF4_flag及びAF6_flagに基づいて動きベクトル予測子を生成するフローチャートを示す。
図31】本発明が適用される実施形態として、隣接ブロックがAFモードでコーディングされたか否かに基づいてAF4モード又はAF6モードに応じて適応的にデコードを行うフローチャートを示す。
図32】本発明が適用される実施形態として、AF4_flag及びAF6_flagに基づいて適応的にデコードを行うシンタックスを示す。
図33】本発明が適用される実施形態として、隣接ブロックがAFモードでコーディングされたか否かに基づいてAF4モード又はAF6モードに応じて適応的にデコードを行うシンタックスを示す。
図34】本発明が適用されるビデオコーディングシステムを示す。
図35】本発明が適用されるコンテンツストリーミングシステムを示す。
【発明を実施するための最良の形態】
【0016】
本発明は、アフィン動き予測モード(AFモード、Affine mode)に基づいて現在ブロックを含むビデオ信号をデコードする方法において、前記現在ブロックに対して前記AFモードが適用されるか否かを確認するステップと、ここで、前記AFモードは、アフィン動きモデル(affine motion model)を利用する動き予測モードを示し;前記現在ブロックに対して前記AFモードが適用される場合、AF4モードが利用されるか否かを確認するステップと、ここで、前記AF4モードは、前記アフィン動きモデル(affine motion model)を構成する4つのパラメータを利用して動きベクトルを予測するモードを示し;AF4モードが利用されると、前記4つのパラメータを利用して動きベクトル予測子を生成し、AF4モードが利用されないと、前記アフィン動きモデル(affine motion model)を構成する6つのパラメータを利用して動きベクトル予測子を生成するステップと;前記動きベクトル予測子に基づいて前記現在ブロックの動きベクトルを取得するステップとを含むことを特徴とする方法を提供する。
【0017】
本発明において、前記方法は、前記ビデオ信号からアフィンフラグを取得するステップをさらに含み、前記アフィンフラグは、前記現在ブロックに対して前記AFモードが適用されるか否かを示し、前記現在ブロックに対して前記AFモードが適用されるか否かは、前記アフィンフラグに基づいて確認されることを特徴とする。
【0018】
本発明において、前記方法は、前記アフィンフラグによって前記現在ブロックに対して前記AFモードが適用される場合、前記ビデオ信号からアフィンパラメータフラグを取得するステップをさらに含み、前記アフィンパラメータフラグは、前記動きベクトル予測子が前記4つのパラメータを利用して生成されるか又は前記6つのパラメータを利用して生成されるかを示すことを特徴とする。
【0019】
本発明において、前記アフィンフラグ及び前記アフィンパラメータフラグは、スライス、最大コーディングユニット、コーディングユニット又は予測ユニットの少なくとも1つのレベルにおいて定義されることを特徴とする。
【0020】
本発明において、前記方法は、前記現在ブロックのサイズが既に設定された条件を満足するか否かを確認するステップをさらに含み、前記既に設定された条件は、前記現在ブロック内のピクセル数、前記現在ブロックの幅及び/又は高さの少なくとも1つが既に設定された閾値より大きいか否かを示し、前記現在ブロックのサイズが既に設定された条件を満足する場合、前記現在ブロックに対して前記AFモードが適用されるか否かを確認するステップが行われることを特徴とする。
【0021】
本発明において、前記現在ブロックのサイズが既に設定された条件を満足しない場合、前記現在ブロックは、前記AFモードではない他のコーディングモードに基づいてデコードされることを特徴とする。
【0022】
本発明において、前記方法は、前記現在ブロックに対して前記AFモードが適用される場合、隣接ブロックに対してAFモードが適用されたか否かを確認するステップをさらに含み、前記隣接ブロックに対してAFモードが適用された場合、動きベクトル予測子は前記4つのパラメータを利用して生成され、前記隣接ブロックに対してAFモードが適用されない場合、前記AF4モードが利用されるか否かを確認するステップを行うことを特徴とする。
【0023】
本発明は、アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をデコードする装置において、前記現在ブロックに対して前記AFモードが適用されるか否かを確認し、前記現在ブロックに対して前記AFモードが適用される場合、AF4モードが利用されるか否かを確認し、AF4モードが利用されると、4つのパラメータを利用して動きベクトル予測子を生成し、AF4モードが利用されないと、アフィン動きモデル(affine motion model)を構成する6つのパラメータを利用して動きベクトル予測子を生成し、前記動きベクトル予測子に基づいて前記現在ブロックの動きベクトルを取得するインター予測部を含み、前記AFモードは、前記アフィン動きモデル(affine motion model)を利用する動き予測モードを示し、前記AF4モードは、前記アフィン動きモデル(affine motion model)を構成する4つのパラメータを利用して動きベクトルを予測するモードを示すことを特徴とする装置を提供する。
【0024】
本発明において、前記装置は、前記ビデオ信号からアフィンフラグをパーシングするパーシング部をさらに含み、前記アフィンフラグは、前記現在ブロックに対して前記AFモードが適用されるか否かを示し、前記現在ブロックに対して前記AFモードが適用されるか否かは、前記アフィンフラグに基づいて確認されることを特徴とする。
【0025】
本発明において、前記装置は、前記アフィンフラグによって前記現在ブロックに対して前記AFモードが適用される場合、前記ビデオ信号からアフィンパラメータフラグを取得する前記パーシング部を含み、前記アフィンパラメータフラグは、前記動きベクトル予測子が前記4つのパラメータを利用して生成されるか又は前記6つのパラメータを利用して生成されるかを示すことを特徴とする。
【0026】
本発明において、前記装置は、前記現在ブロックのサイズが既に設定された条件を満足するか否かを確認する前記インター予測部を含み、前記既に設定された条件は、前記現在ブロック内のピクセル数、前記現在ブロックの幅及び/又は高さの少なくとも1つが既に設定された閾値より大きいか否かを示し、前記現在ブロックのサイズが既に設定された条件を満足する場合、前記現在ブロックに対して前記AFモードが適用されるか否かを確認するステップが行われることを特徴とする。
【0027】
本発明において、前記装置は、前記現在ブロックに対して前記AFモードが適用される場合、隣接ブロックに対してAFモードが適用されたか否かを確認する前記インター予測部を含み、前記隣接ブロックに対してAFモードが適用された場合、動きベクトル予測子は前記4つのパラメータを利用して生成され、前記隣接ブロックに対してAFモードが適用されない場合、前記AF4モードが利用されるか否かを確認するステップを行うことを特徴とする。
【発明を実施するための形態】
【0028】
以下、添付の図面を参照して本発明の実施形態の構成とその作用を説明し、図面により説明される本発明の構成と作用は1つの実施形態として説明されるものであり、これにより本発明の技術的思想とその核心構成及び作用が制限されるものではない。
【0029】
併せて、本発明で使われる用語はできる限り現在広く使われる一般的な用語を選択したが、特定の場合は出願人が任意に選定した用語を使用して説明する。そのような場合には該当部分の詳細説明でその意味を明確に記載するので、本発明の説明で使われた用語の名称だけで単純解析されてはならず、その該当用語の意味まで把握して解析されるべきであることを明らかにする。
【0030】
また、本発明で使われる用語は発明を説明するために選択された一般的な用語であるが、類似の意味を有する他の用語がある場合、より適切な解析のために代替可能である。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各コーディング過程で適切に代替されて解析できるものである。また、パーティショニング(partitioning)、分解(decomposition)、スプリッティング(splitting)及び分割(division)などの場合にも各コーディング過程で適切に代替され解析できるものである。
【0031】
図1は、本発明が適用される実施形態として、ビデオ信号のエンコードが行われるエンコーダの概略的なブロック図を示す。
【0032】
図1に示すように、エンコーダ100は、画像分割部110、変換部120、量子化部130、逆量子化部140、逆変換部150、フィルタリング部160、復号ピクチャバッファ(DPB:Decoded Picture Buffer)170、インター予測部180、イントラ予測部185及びエントロピーエンコード部190を含んで構成される。
【0033】
画像分割部110は、エンコーダ100に入力された入力画像(Input image)(又は、ピクチャ、フレーム)を1つ以上の処理ユニットに分割する。例えば、前記処理ユニットは、コーディングツリーユニット(CTU:Coding Tree Unit)、コーディングユニット(CU:Coding Unit)、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)であり得る。このとき、前記分割は、QT(QuadTree)、BT(Binary Tree)、TT(Ternary Tree)、AT(Asymmetric Tree)の少なくとも1つ方式により行われる。
【0034】
ただし、前記用語は、本発明に関する説明の便宜のために使用されるだけで、本発明は、当該用語の定義に限定されない。また、本明細書では説明の便宜のために、ビデオ信号をエンコード又はデコードする過程で用いられる単位としてコーディングユニットという用語を使用するが、本発明はそれに限定されなく、発明の内容に応じて適切に解析可能である。
【0035】
エンコーダ100は、入力画像信号から、インター予測部180又はイントラ予測部185から出力された予測信号(prediction signal)を減算してレジデュアル信号(residual signal)を生成し、生成されたレジデュアル信号は変換部120に送信される。
【0036】
変換部120は、レジデュアル信号に変換技法を適用して変換係数(transform coefficient)を生成する。変換過程は、正方形の同一サイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
【0037】
量子化部130は、変換係数を量子化してエントロピーエンコード部190に送信し、エントロピーエンコード部190は、量子化された信号(quantized signal)をエントロピーコーディングしてビットストリームに出力する。
【0038】
量子化部130から出力された量子化された信号(quantized signal)は、予測信号を生成するために利用されてもよい。例えば、量子化された信号(quantized signal)は、ループ内の逆量子化部140及び逆変換部150により逆量子化及び逆変換を適用することによりレジデュアル信号を復元することができる。復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号(prediction signal)に足すことにより、復元信号(reconstructed signal)が生成される。
【0039】
一方、前述したような圧縮過程で、隣接したブロックが相異なる量子化パラメータにより量子化されることにより、ブロック境界が見える劣化が発生する可能性がある。このような現象をブロッキング劣化(blocking artifacts)といい、これは、画質を評価する重要な要素の1つである。このような劣化を低減するためにフィルタリング過程を行ってもよい。このようなフィルタリング過程により、ブロッキング劣化を除去するとともに、現在のピクチャに対する誤差を減らすことにより画質を向上させることが可能となる。
【0040】
フィルタリング部160は、復元信号にフィルタリングを適用してこれを再生装置に出力するか、復号ピクチャバッファ170に送信する。復号ピクチャバッファ170に送信されたフィルタリングされた信号は、インター予測部180において参照ピクチャとして使用可能である。このように、フィルタリングされたピクチャを画面間予測モードにおいて参照ピクチャとして利用することにより、画質だけでなく符号化効率も向上される。
【0041】
復号ピクチャバッファ170は、フィルタリングされたピクチャをインター予測部180での参照ピクチャとして使用するために格納する。
【0042】
インター予測部180は、復元ピクチャ(reconstructed picture)を参照して時間的重複性及び/又は空間的重複性を除去するために、時間的予測及び/又は空間的な予測を行う。ここで、予測を行うために用いられる参照ピクチャは、以前時間に符号化/復号化の時にブロック単位で量子化と逆量子化を経た変換された信号であるため、ブロッキングアーティファクトやリンギングアーティファクト(ringing artifact)が存在し得る。
【0043】
従って、インター予測部180は、このような信号の不連続や量子化による性能低下を解決するために、ローパスフィルタ(lowpass filter)を適用することにより、ピクセル間の信号をサブピクセル単位で補間することができる。ここで、サブピクセルは、補間フィルタを適用して生成された仮想のピクセルを意味し、整数ピクセルは、復元されたピクチャに存在する実際ピクセルを意味する。補間方法としては、線形補間、双線形補間(bi-linear interpolation)、ウィナーフィルタ(wiener filter)などが適用されてもよい。
【0044】
補間フィルタは、復元ピクチャ(reconstructed picture)に適用されて予測の精密度を向上させる。例えば、インター予測部180は、整数ピクセルに補間フィルタを適用して補間ピクセルを生成し、補間ピクセル(interpolated pixels)で構成された補間ブロック(interpolated block)を予測ブロック(prediction block)として使用して予測を行うことができる。
【0045】
イントラ予測部185は、現在符号化を行おうとするブロックの周辺にあるサンプルを参照して現在ブロックを予測することができる。前記イントラ予測部185は、イントラ予測を行うために次のような過程を行う。まず、予測信号を生成するために必要な参照サンプルを用意する。そして、用意された参照サンプルを利用して予測信号を生成する。以後、予測モードを符号化する。ここで、参照サンプルは、参照サンプルパディング及び/又は参照サンプルフィルタリングにより用意される。参照サンプルは予測及び復元過程を経たため、量子化エラーが存在する可能性がある。従って、このようなエラーを減らすために、イントラ予測に用いられる各予測モードに対して参照サンプルフィルタリングの過程が行われる。
【0046】
前記インター予測部180又は前記イントラ予測部185により生成された予測信号(prediction signal)は、復元信号を生成するために利用されるか、レジデュアル信号を生成するために利用される。
【0047】
図2は、本発明が適用される実施形態として、ビデオ信号のデコードが行われるデコーダの概略的なブロック図を示す。
【0048】
図2に示すように、デコーダ200は、パーシング部(図示せず)、エントロピーデコード部210、逆量子化部220、逆変換部230、フィルタリング部240、復号ピクチャバッファ(DPB:Decoded Picture Buffer Unit)250、インター予測部260、イントラ予測部265及び復元部(図示せず)を含んで構成される。
【0049】
デコーダ200は、図1のエンコーダ100から出力された信号を受信し、パーシング部(図示せず)を介してシンタックスエレメントをパーシング又は取得する。パーシング又は取得された信号は、エントロピーデコード部210によりエントロピーデコーディングされる。
【0050】
逆量子化部220においては、量子化ステップサイズ情報を利用してエントロピーデコーディングされた信号から変換係数(transform coefficient)を取得する。
【0051】
逆変換部230においては、変換係数を逆変換してレジデュアル信号(residual signal)を取得する。
【0052】
復元部(図示せず)は、取得されたレジデュアル信号をインター予測部260又はイントラ予測部265から出力された予測信号(prediction signal)に足すことにより、復元信号(reconstructed signal)を生成する。
【0053】
フィルタリング部240は、復元信号(reconstructed signal)にフィルタリングを適用してこれを再生装置に出力するか、復号ピクチャバッファ部250に送信する。復号ピクチャバッファ部250に送信されたフィルタリングされた信号は、インター予測部260において参照ピクチャとして使用可能である。
【0054】
本明細書において、エンコーダ100のフィルタリング部160、インター予測部180及びイントラ予測部185において説明された実施形態は、それぞれデコーダのフィルタリング部240、インター予測部260及びイントラ予測部265にも同様に適用されることができる。
【0055】
前記デコーダ200を介して出力された復元ビデオ信号(reconstructed video signal)は、再生装置により再生されることができる。
【0056】
図3は、本発明が適用できる実施形態として、QT(QuadTree、以下「QT」という)ブロック分割構造を説明するための図である。
【0057】
ビデオコーディングにおいて1つのブロックはQT(QuadTree)ベースに分割されることができる。また、QTにより分割された1つのサブブロック(sub block)は、QTを使用して再帰的にさらに分割されることができる。これ以上QT分割されないリーフブロック(leaf block)は、BT(Binary Tree)、TT(Ternary Tree)又はAT(Asymmetric Tree)の少なくとも1つの方式により分割されることができる。BTは、horizontal BT(2N×N、2N×N)とvertical BT(N×2N、N×2N)の2つの形態の分割を有する。TTは、horizontal TT(2N×1/2N、2N×N、2N×1/2N)とvertical TT(1/2N×2N、N×2N、1/2N×2N)の2つの形態の分割を有する。ATは、horizontal-up AT(2N×1/2N、2N×3/2N)、horizontal-down AT(2N×3/2N、2N×1/2N)、vertical-left AT(1/2N×2N、3/2N×2N)、vertical-right AT(3/2N×2N、1/2N×2N)の4つの形態の分割を有する。それぞれのBT、TT、ATは、BT、TT、ATを使用して再帰的にさらに分割されることができる。
【0058】
図3は、QT分割の例を示す。ブロックAは、QTにより4つのサブブロック(A0、A1、A2、A3)に分割されることができる。サブブロックA1は、さらにQTにより4つのサブブロック(B0、B1、B2、B3)に分割されることができる。
【0059】
図4は、本発明が適用できる実施形態として、BT(Binary Tree、以下「BT」という)ブロック分割構造を説明するための図である。
【0060】
図4は、BT分割の例を示す。QTによりこれ以上分割されないブロックB3は、vertical BT(C0、C1)又はhorizontal BT(D0、D1)により分割されることができる。ブロックC0のようにそれぞれのサブブロックは、horizontal BT(E0、E1)又はvertical BT(F0、F1)の形態のように再帰的にさらに分割されることができる。
【0061】
図5は、本発明が適用できる実施形態として、TT(Ternary Tree、以下「TT」という)ブロック分割構造を説明するための図である。
【0062】
図5は、TT分割の例を示す。QTによりこれ以上分割されないブロックB3は、vertical TT(C0、C1、C2)又はhorizontal TT(D0、D1、D2)により分割されることができる。ブロックC1のようにそれぞれのサブブロックは、horizontal TT(E0、E1、E2)又はvertical TT(F0、F1、F2)の形態のように再帰的にさらに分割されることができる。
【0063】
図6は、本発明が適用できる実施形態として、AT(Asymmetric Tree、以下「AT」という)ブロック分割構造を説明するための図である。
【0064】
図6は、AT分割の例を示す。QTによりこれ以上分割されないブロックB3は、vertical AT(C0、C1)又はhorizontal AT(D0、D1)により分割されることができる。ブロックC1のようにそれぞれのサブブロックは、horizontal AT(E0、E1)又はvertical TT(F0、F1)の形態のように再帰的にさらに分割されることができる。
【0065】
一方、BT、TT、AT分割は、共に使用されて分割が可能である。例えば、BTにより分割されたサブブロックはTT又はATによる分割が可能である。また、TTにより分割されたサブブロックはBT又はATによる分割が可能である。ATにより分割されたサブブロックはBT又はTTによる分割が可能である。例えば、horizontal BT分割の後、それぞれのサブブロックがvertical BTにより分割されることができ、又はvertical BT分割の後、それぞれのサブブロックがhorizontal BTにより分割されることもできる。前記2種類の分割方法は、分割順序は異なるが、最終的に分割される形状は同一である。
【0066】
また、ブロックが分割されると、ブロックを探索する順序を多様に定義することができる。一般に、左側から右側へ、上段から下段へ探索を行い、ブロックを探索するということは、各分割されたサブブロックの追加的なブロック分割を行うか否かを決定する順序を意味するか、ブロックがこれ以上分割されない場合、各サブブロックの符号化順序を意味するか、又はサブブロックにおいて他の隣接ブロックの情報を参照する時の探索順序を意味する。
【0067】
図7は、本発明が適用される実施形態として、インター予測モードを説明するための図である。
【0068】
インター予測モード
【0069】
発明が適用されるインター予測モードでは、動き情報の量を減らすために、マージ(Merge)モード、AMVP(Advanced Motion Vector Prediction)モード又はアフィン予測モード(Affine prediction mode、以下「AFモード」という )が利用される。
【0070】
1)マージ(Merge)モード
【0071】
マージモードは、空間的(spatially)又は時間的(temporally)に隣り合うブロックから動きパラメータ(又は、情報)を導出する方法を意味する。
【0072】
マージモードにおいて利用可能な候補のセットは、空間的に隣り合う候補(spatial neighbor candidates)、時間的候補(temporal candidates)、及び生成された候補(generated candidates)から構成される。
【0073】
図7の(a)に示すように、{A1、B1、B0、A0、B2}の順序に従って各空間的候補ブロックが利用可能であるか否かが判断される。その時、候補ブロックがイントラ予測モードでエンコードされて動き情報が存在しない場合又は候補ブロックが現在ピクチャ(又は、スライス)の外に位置する場合は、当該候補ブロックは利用できない。
【0074】
空間的候補の有効性を判断した後、現在処理ブロックの候補ブロックから不要な候補ブロックを除くことにより、空間的マージ候補が構成できる。例えば、現在予測ブロックの候補ブロックが同一コーディングブロック内の1番目の予測ブロックである場合、当該候補ブロックを除き、また同一の動き情報を有する候補ブロックを除くことができる。
【0075】
空間的マージ候補の構成が完了すると、{T0、T1}の順序に従って時間的マージ候補の構成過程が行われる。
【0076】
時間的候補構成において、参照ピクチャの同一位置(collocated)ブロックの右下端(right bottom)ブロック(T0)が利用可能である場合、当該ブロックを時間的マージ候補として構成する。同一位置(collocated)ブロックは、選択された参照ピクチャにおいて現在処理ブロックに対応する位置に存在するブロックを意味する。それに対して、そうではない場合、同一位置(collocated)ブロックの中央(center)に位置するブロック(T1)を時間的マージ候補として構成する。
【0077】
マージ候補の最大個数はスライスヘッダーにおいて特定できる。マージ候補の個数が最大個数より大きい場合、最大個数より小さい個数の空間的候補と時間的候補が維持される。そうではない場合、マージ候補の個数は、候補個数が最大個数になるまで、現在まで追加された候補を組み合わせて追加的なマージ候補(すなわち、組み合わされた双予測マージ候補(combined bi-predictive merging candidates))が生成される。
【0078】
エンコーダにおいては、前述したような方法でマージ候補リストを構成し、動き推定(Motion Estimation)を行うことによりマージ候補リストから選択された候補ブロック情報をマージインデックス(merge index)(例えば、merge_idx[x0][y0]’)としてデコーダにシグナリングする。図7の(b)においては、マージ候補リストからB1ブロックが選択された場合を例示し、この場合、マージインデックス(merge index)として「インデックス1(Index 1)」がデコーダにシグナリングされる。
【0079】
デコーダにおいては、エンコーダと同様にマージ候補リストを構成し、マージ候補リストにおいてエンコーダから受信したマージインデックス(merge index)に該当する候補ブロックの動き情報から現在ブロックに関する動き情報を導出する。そして、デコーダは、導出した動き情報に基づいて現在処理ブロックに対する予測ブロックを生成する。
【0080】
2)AMVP(Advanced Motion Vector Prediction)モード
【0081】
AMVPモードは、周辺ブロックから動きベクトル予測値を誘導する方法を意味する。従って、水平及び垂直の動きベクトル差分値(MVD:motion vector difference)、参照インデックス及びインター予測モードがデコーダにシグナリングされる。水平及び垂直の動きベクトル値は、誘導された動きベクトル予測値とエンコーダから提供された動きベクトル差分値(MVD:motion vector difference)を用いて計算される。
【0082】
すなわち、エンコーダにおいては、動きベクトル予測値候補リストを構成し、動き推定(Motion Estimation)を行うことにより動きベクトル予測値候補リストから選択された動き参照フラグ(すなわち、候補ブロック情報)(例えば、mvp_lX_flag[x0][y0]’)をデコーダにシグナリングする。デコーダにおいては、エンコーダと同様に動きベクトル予測値候補リストを構成し、動きベクトル予測値候補リストにおいてエンコーダから受信した動き参照フラグで指示された候補ブロックの動き情報を利用して、現在処理ブロックの動きベクトル予測値を導出する。そして、デコーダは、導出された動きベクトル予測値とエンコーダから送信された動きベクトル差分値を利用して、現在処理ブロックに対する動きベクトル値を取得する。そして、デコーダは、導出した動き情報をベースに現在処理ブロックに対する予測ブロックを生成する(すなわち、動き補償)。
【0083】
AMVPモードの場合、図7に前述した5つの利用可能な候補者のうち2つの空間的動き候補が選択される。1番目の空間的動き候補は左側に位置した{A0、A1}セットから選択され、2番目の空間的動き候補は上位に位置した{B0、B1、B2}セットから選択される。ここで、隣り合う候補ブロックの参照インデックスが現在予測ブロックと同一でない場合、動きベクトルがスケーリングされる。
【0084】
空間的動き候補の探索結果から選択された候補数が2つである場合は候補の構成を終了するが、2つ未満である場合は時間的な動き候補が追加される。
【0085】
デコーダ(例えば、インター予測部)は、処理ブロック(例えば、予測ユニット)に対する動きパラメータをデコードする。
【0086】
例えば、処理ブロックがマージモードを利用する場合、デコーダは、エンコーダからシグナリングされたマージインデックスをデコードすることができる。そして、マージインデックスにおいて指示された候補ブロックの動きパラメータから現在処理ブロックの動きパラメータを導出することができる。
【0087】
また、処理ブロックがAMVPモードが適用された場合、デコーダは、エンコーダからシグナリングされた水平及び垂直の動きベクトル差分値(MVD:motion vector difference)、参照インデックス及びインター予測モードを復号化することができる。そして、動き参照フラグから指示された候補ブロックの動きパラメータから動きベクトル予測値を導出し、動きベクトル予測値と受信した動きベクトル差分値を利用して現在処理ブロックの動きベクトル値を導出することができる。
【0088】
デコーダは、デコードされた動きパラメータ(又は、情報)を用いて予測ユニットに対する動き補償を行う。
【0089】
すなわち、エンコーダ/デコーダにおいては、復号化された動きパラメータを用いて、以前にデコードされたピクチャから現在ユニットの画像を予測する動き補償(motion compensation)を行う。
【0090】
3)AFモード(Affine Mode)
【0091】
前記AFモードは、アフィン動きモデル(affine motion model)を用いる動き予測モードを意味し、アフィンマージモード(affine merge mode)又はアフィンインターモード(affine inter mode)の少なくとも1つを含んでもよい。前記アフィンインターモード(affine inter mode)はAF4モード又はAF6モードの少なくとも1つを含んでもよい。ここで、AF4モードは4つのパラメータを利用するアフィン予測(Four parameter affine prediction)モードを示し、AF6モードは6つのパラメータを利用するアフィン予測(six parameter affine prediction)モードを示す。
【0092】
ただし、本発明では、説明の便宜のためにAF4モード又はAF6モードと表現するが、これは、必ず別途の予測モードとして定義される必要はなく、前記AF4モード又はAF6モードはただ4つのパラメータを利用するか又は6つのパラメータを利用するかによって区分されて理解されることができる。
【0093】
前記AFモードについては、図8ないし図10においてより詳細に説明する。
【0094】
図8は、本発明が適用される実施形態として、アフィン動きモデル(affine motion model)を説明するための図である。
【0095】
一般的な画像符号化技術は、コーディングブロックの動きを表現するために並進動きモデル(translation motion model)を使用する。ここで、並進動きモデルは、平行移動されたブロックベースの予測方法を示す。すなわち、コーディングブロックの動き情報は1つの動きベクトルを用いて表現される。しかしながら、実際のコーディングブロック内で各ピクセル別の最適の動きベクトルは相異なる可能性がある。もし、少ない情報のみでピクセル別又はサブブロック単位別に最適の動きベクトルを決定できると、コーディング効率を向上させることができる。
【0096】
従って、本発明は、インター予測の性能を高めるために、平行移動されたブロックベースの予測方法だけでなく、画像の多様な動きを反映したインター予測ベースの画像処理方法を提案する。
【0097】
また、本発明は、アフィン動きモデル(affine motion model)を使用してエンコード/デコードを行うアフィン動き予測方法を提案する。アフィン動きモデルは、制御点の動きベクトルを用いてピクセル単位又はサブブロック単位で動きベクトルを誘導する予測方法を示す。本明細書において、アフィン動きモデル(affine motion model)を用いるアフィン動き予測モードをAFモード(Affine Mode)という。
【0098】
また、本発明は、ブロックサイズに基づいてアフィン予測(affine prediction)を適応的に行う方法を提供する。
【0099】
また、本発明は、隣接ブロックがアフィン予測によりコーディングされたか否かに基づいてアフィン予測を適応的に行う方法を提供する。
【0100】
また、本発明は、AF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定(又は、選択)する方法を提供する。ここで、AF4モードは4つのパラメータを利用するアフィン予測(Four parameter affine prediction)モードを示し、AF6モードは6つのパラメータを利用するアフィン予測(six parameter affine prediction)モードを示す。
【0101】
図8に示すように、画像の歪みを動き情報として表現するために様々な方法が使用され、特に、アフィン動きモデルは、図8に示す4つの動きを表現することができる。
【0102】
例えば、アフィン動きモデルは、画像の移動(translate)、画像の拡大/縮小(scale)、画像の回転(rotate)、画像のせん断(shear)だけでなく、誘発される任意の画像歪みをモデリングすることができる。
【0103】
アフィン動きモデルは様々な方法で表現されるが、そのうち、本発明ではブロックの特定基準点(又は、基準ピクセル/サンプル)での動き情報を活用して歪みを表示(又は、識別)し、これを利用してインター予測を行う方法を提案する。ここで、基準点は、制御点(CP:Control Point)(又は、制御ピクセル、制御サンプル)と称され、このような基準点での動きベクトルは制御点動きベクトル(CPMV:Control Point Motion Vector)と称される。このような制御点の数に応じて表現できる歪みの程度が変わる。
【0104】
アフィン動きモデルは、次の数式1のように6つのパラメータ(a、b、c、d、e、f)を利用して表現される。
【0105】
【数1】
【0106】
ここで、(x、y)はコーディングブロックの左上側ピクセルの位置を示す。そして、v及びvは、それぞれ(x、y)での動きベクトルを示す。
【0107】
図9は、本発明が適用される実施形態として、制御点動きベクトル(control point motion vector)を利用したアフィン動き予測方法を説明するための図である。
【0108】
図9の(a)に示すように、現在ブロック901の左上側制御点(CP)902(以下、第1制御点という)、右上側制御点(CP)903(以下、第2制御点という)及び左下側制御点(CP)904(以下、第3制御点という)は、それぞれ独立的な動き情報を有することができる。これをそれぞれCP、CP、CPと表現する。しかしながら、これは、本発明の一実施形態に該当し、本発明はこれに限定されない。例えば、右下側制御点、センター制御点、その他にサブブロックの位置別制御点など、様々な制御点を定義することができる。
【0109】
本発明の一実施形態として、前記第1制御点ないし第3制御点のうち少なくとも1つは現在ブロックに含まれたピクセルであり得る。または、他の例として、前記第1制御点ないし第3制御点のうち少なくとも1つは現在ブロックに含まれない現在ブロックに隣接したピクセルであり得る。
【0110】
前記制御点のうち1つ以上の制御点動き情報を利用して、現在ブロック901のピクセル別又はサブブロック別の動き情報が誘導されることができる。
【0111】
例えば、現在ブロック901の左上側制御点902、右上側制御点903及び左下側制御点904の動きベクトルを利用したアフィン動きモデルは、次の数式2のように定義される。
【0112】
【数2】
【0113】
ここで、
を左上側制御点902の動きベクトル、
を右上側制御点903の動きベクトル、
を左下側制御点904の動きベクトルであるとするとき、


と定義されることができる。そして、数式2においてwは現在ブロック901の幅(width)、hは現在ブロック901の高さ(height)を示す。そして、
は{x、y}位置の動きベクトルを示す。
【0114】
本発明では、アフィン動きモデルが表現できる動きのうち並進(translation)、スケール(scale)、回転(rotate)の3つの動きを表現するアフィン動きモデルを定義できる。本明細書では、これを簡易アフィン動きモデル(simplified affine motion model or similarity affine motion model)と呼ぶことにする。
【0115】
前記簡易アフィン動きモデルは、次の数式3のように4つのパラメータ(a、b、c、d)を利用して表現する。
【0116】
【数3】
【0117】
ここで、{v、v}はそれぞれ{x、y}位置の動きベクトルを示す。このように4つのパラメータを利用するアフィン動きモデルをAF4という。本発明は、これに限定されなく、6つのパラメータを利用する場合にはAF6といい、前述した実施形態を同一に適用することができる。
【0118】
図9の(b)に示すように、
を現在ブロックの左上側制御点1001の動きベクトル、
を右上側制御点1002の動きベクトルであるとするとき、

と定義されることができる。ここで、AF4のアフィン動きモデルを次の数式4のように定義することができる。
【0119】
【数4】
【0120】
数式4において、wは現在ブロックの幅(width)、hは現在ブロックの高さ(height)を示す。そして、
は、それぞれ{x,y}位置の動きベクトルを示す。
【0121】
エンコーダ又はデコーダは、制御点動きベクトル(例えば、左上側制御点1001及び右上側制御点1002の動きベクトル)を利用して各ピクセル位置の動きベクトルを決定(又は、誘導)することができる。
【0122】
本発明において、アフィン動き予測により決定される動きベクトルの集合をアフィン動きベクトルフィールドと定義することができる。前記アフィン動きベクトルフィールドは、前記数式1ないし4のうち少なくとも1つを利用して決定される。
【0123】
符号化/復号化過程で、アフィン動き予測による動きベクトルは、ピクセル単位又は予め定義された(又は、予め設定された)ブロック(又は、サブブロック)単位で決定されることができる。例えば、ピクセル単位で決定される場合は、ブロック内の各ピクセルを基準に動きベクトルが誘導され、サブブロック単位で決定される場合は、現在ブロック内の各サブブロック単位を基準に動きベクトルが誘導される。他の例として、サブブロック単位で決定される場合、動きベクトルは左上側ピクセル又は中央ピクセルを基準に当該サブブロックの動きベクトルが誘導される。
【0124】
以下、本発明の説明において説明の便宜のために、アフィン動き予測により動きベクトルが4×4ブロック単位で決定される場合を中心に説明するが、本発明はこれに限定されるものではなく、本発明はピクセル単位又は他のサイズのブロック単位で適用されることができる。
【0125】
一方、図9の(b)に示すように、現在ブロックのサイズが16×16である場合を仮定する。エンコーダ又はデコーダは、現在ブロックの左上側制御点1001及び右上側制御点1002の動きベクトルを利用して4×4サブブロック単位で動きベクトルを決定する。そして、各サブブロックの中央ピクセル値を基準に当該サブブロックの動きベクトルが決定される。
【0126】
図9の(b)において、各サブブロックの中央に表示された矢印は、アフィン動きモデル(Affin motion model)により取得された動きベクトルを示す。
【0127】
アフィン動き予測は、アフィンマージモード(以下、「AFマージモード」という)とアフィンインターモード(以下、「AFインターモード」という)として利用されることができる。AFマージモードは、スキップモード又はマージモードと類似して動きベクトル差(motion vector difference)を符号化せず、2つの制御点動きベクトルを誘導して符号化又は復号化する方法である。AFインターモードは、制御点動きベクトル予測子(motion vector predictor)と制御点動きベクトルを決定した後、その差に該当する制御点動きベクトル差分値(control point motion vector difference:CPMVD)を符号化又は復号化する方法である。この場合、AF4モードの場合は2つの制御点動きベクトル差分値が送信され、AF6モードの場合は3つの制御点動きベクトル差分値が送信される。
【0128】
ここで、AF4モードはAF6モードに比べて少ない個数の動きベクトル差分値を送信するため、少ないビットで制御点動きベクトル(Control Point Motion Vector:CPMV)を表現できるという長所があり、AF6モードは3つのCPMVDを送信するため、優秀な予測子生成が可能であるので、残差コーディング(residual coding)のためのビットを減らすことができるという長所がある。
【0129】
従って、本発明では、AFインターモードにおいてAF4モード及びAF6モードを両方とも(又は、同時に)考慮する方法を提案する。
【0130】
図10は、本発明が適用される実施形態として、アフィン予測モード(以下、「AFモード」という)を利用して現在ブロックを含むビデオ信号を処理する過程を説明するフローチャートである。
【0131】
本発明は、AFモードを利用して現在ブロックを含むビデオ信号を処理する方法を提供する。
【0132】
まず、ビデオ信号処理装置は、現在ブロックの少なくとも2つの制御点に隣接したピクセル又はブロックの動きベクトルを利用して動きベクトル対(motion vector pair)の候補リストを生成する(S1010)。ここで、前記制御点は前記現在ブロックのコーナーピクセルを意味し、前記動きベクトル対は前記現在ブロックの左上側コーナーピクセル及び右上側コーナーピクセルの動きベクトルを示す。
【0133】
一実施形態として、前記制御点は、前記現在ブロックの左上側コーナーピクセル、右上側コーナーピクセル、左下側コーナーピクセル又は右下側コーナーピクセルのうち少なくとも2つを含み、前記候補リストは、前記左上側コーナーピクセル、前記右上側コーナーピクセル及び前記左下側コーナーピクセルに隣接したピクセル又はブロックにより構成される。
【0134】
一実施形態として、前記候補リストは、前記左上側コーナーピクセルの対角隣接ピクセル(A)、上側隣接ピクセル(B)及び左側隣接ピクセル(C)の動きベクトル、前記右上側コーナーピクセルの上側隣接ピクセル(D)及び対角隣接ピクセル(E)の動きベクトル、及び前記左下側コーナーピクセルの左隣ピクセル(F)及び対角隣接ピクセル(G)の動きベクトルに基づいて生成されることができる
【0135】
一実施形態として、前記方法は、前記候補リストの動きベクトル対が2つより小さい場合、AMVP候補リストを前記候補リストに追加するステップをさらに含んでもよい。
【0136】
一実施形態として、前記現在ブロックがN×4のサイズである場合、前記現在ブロックの制御点動きベクトルは、前記現在ブロック内の左側サブブロックと右側サブブロックの中央位置を基準に誘導された動きベクトルに決定され、前記現在ブロックが4×Nのサイズである場合、前記現在ブロックの制御点動きベクトルは、前記現在ブロック内の上側サブブロック及び下側サブブロックの中央位置を基準に誘導された動きベクトルに決定されることを特徴とする。
【0137】
一実施形態として、前記現在ブロックがN×4のサイズである場合、前記現在ブロック内の左側サブブロックの制御点動きベクトルは、第1制御点動きベクトルと第3制御点動きベクトルの平均値により決定され、右側サブブロックの制御点動きベクトルは、第2制御点動きベクトルと第4制御点動きベクトルの平均値により決定され、前記現在ブロックが4×Nのサイズである場合、前記現在ブロック内の上側サブブロックの制御点動きベクトルは、第1制御点動きベクトルと第2制御点動きベクトルの平均値により決定され、下側サブブロックの制御点動きベクトルは、第3制御点動きベクトルと第4制御点動きベクトルの平均値により決定されることを特徴とする。
【0138】
他の一実施形態として、前記方法は、前記AFモードが行われるか否かを示す予測モード又はフラグ情報をシグナリングすることができる。
【0139】
この場合、前記ビデオ信号処理装置は、前記予測モード又はフラグ情報を受信し、前記予測モード又は前記フラグ情報によって前記AFモードを行い、前記AFモードによって動きベクトルを誘導することができる。ここで、前記AFモードは、前記現在ブロックの制御点動きベクトルを用いてピクセル又はサブブロック単位で動きベクトルを誘導するモードを示すことを特徴とする。
【0140】
一方、前記ビデオ信号処理装置は、前記動きベクトル対の発散値(divergence value)に基づいて既に設定された個数の動きベクトル対の最終候補リストを決定する(S1020)。ここで、前記最終候補リストは、発散値が小さい順に決定され、前記発散値は、動きベクトルの方向の類似性を示す値を意味する。
【0141】
前記ビデオ信号処理装置は、前記最終候補リストからレート歪みコスト(Rate-Distortion Cost)に基づいて前記現在ブロックの制御点動きベクトルを決定する(S1030)。
【0142】
前記ビデオ信号処理装置は、前記制御点動きベクトルに基づいて前記現在ブロックの動きベクトル予測子を生成する(S1040)。
【0143】
図11は、本発明が適用される実施形態(1-1)として、AF4モード又はAF6モードの少なくとも1つに基づいて最適のコーディングモードを適応的に決定するフローチャートを示す。
【0144】
ビデオ信号処理装置は、スキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行う(S1110)。ここで、マージモードは一般的なマージモードだけでなく前述したAFマージモードを含んでもよく、インターモードは一般的なインターモードだけでなく前述したAFインターモードを含んでもよい。
【0145】
前記ビデオ信号処理装置は、AF4モード又はAF6モードの少なくとも1つに基づいて動きベクトル予測を行う(S1120)。ここで、前記S1110ステップと前記S1120ステップはその順序に制限されない。
【0146】
前記ビデオ信号処理装置は、前記S1120ステップの結果を比較して、前記モードのうち最適のコーディングモードを決定する(S1130)。ここで、前記S1120ステップの結果はレート歪みコスト(Rate-Distortion Cost)に基づいて比較される。
【0147】
以後、前記ビデオ信号処理装置は、最適のコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得する。
【0148】
以後、前述の図1及び図2で説明したエンコード/デコードの過程が同一に適用される。
【0149】
図12は、本発明が適用される実施形態(1-2)として、AF4モード又はAF6モードに基づいて適応的にデコードを行うフローチャートを示す。
【0150】
デコーダは、ビットストリームを受信する(S1210)。前記ビットストリームは、ビデオ信号内の現在ブロックのコーディングモードに関する情報を含む。
【0151】
前記デコーダは、前記現在ブロックのコーディングモードがAFモードであるか否かを確認する(S1220)。ここで、前記AFモードは、アフィン動きモデル(affine motion model)を利用するアフィン動き予測モードを意味し、例えば、アフィンマージモード(affine merge mode)又はアフィンインターモード(affine inter mode)の少なくとも1つを含んでもよく、前記アフィンインターモード(affine inter mode)はAF4モード又はAF6モードの少なくとも1つを含んでもよい。
【0152】
ここで、前記S1220ステップは、AFモードが行われるか否かを示すアフィンフラグにより確認される。例えば、前記アフィンフラグはaffine_flagと表現されることができる。前記affine_flag=1であると、現在ブロックに対してAFモードが行われることを示し、前記affine_flag=0であると、現在ブロックに対してAFモードが行われないことを示す。
【0153】
現在ブロックに対してAFモードが行われない場合、前記デコーダは、前記AFモードではないコーディングモードによってデコード(すなわち、動きベクトル予測)を行う(S1230)。例えば、スキップモード、マージモード又はインターモードが利用されてもよい。
【0154】
現在ブロックに対してAFモードが行われる場合、前記デコーダは、前記現在ブロックに対してAF4モードが適用されるか否かを確認する(S1240)。
【0155】
ここで、前記S1240ステップは、AF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示すアフィンパラメータフラグによって確認できる。例えば、前記アフィンパラメータフラグは、affine_param_flagと表現される。前記affine_param_flag=0であると、AF4モードによって動きベクトル予測が行われ(S1250)、前記affine_param_flag=1であると、AF6モードによって動きベクトル予測が行われることを意味するが、(S1260)、本発明はこれに限定されない。
【0156】
例えば、前記アフィンパラメータフラグはAF4_flag及びAF6_flagの少なくとも1つを含む。
【0157】
AF4_flagは現在ブロックに対してAF4モードが行われるか否かを示す。AF4_flag=1であると、現在ブロックに対してAF4モードが行われ、AF4_flag=0であると、現在ブロックに対してAF4モードが行われない。ここで、AF4モードが行われるということは4つのパラメータで表現されるアフィン動きモデルを利用して動きベクトル予測を行うことを意味する。
【0158】
AF6_flagは現在ブロックに対してAF6モードが行われるか否かを示す。AF6_flag=1であると、現在ブロックに対してAF6モードが行われ、AF4_flag=0であると、現在ブロックに対してAF6モードが行われない。ここで、AF6モードが行われるということは、4つのパラメータで表現されるアフィン動きモデルを利用して動きベクトル予測を行うことを意味する。
【0159】
前記アフィンフラグ及び前記アフィンパラメータフラグは、スライス、最大コーディングユニット、コーディングユニット又は予測ユニットの少なくとも1つのレベルにおいて定義できる。
【0160】
例えば、AF_flag、AF4_flag及びAF6_flagの少なくとも1つはスライスレベルにおいて定義され、またブロックレベル又は予測ユニットレベルにおいて定義されることができる。
【0161】
図13は、本発明が適用される実施形態(1-3)として、AF4モード又はAF6モードに基づいてデコードを行うシンタックス構造を示す。
【0162】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S1310)。
【0163】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダはaffine_flagを取得することができる(S1320)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0164】
前記affine_flag=1であると、すなわち、現在ブロックに対してAFモードが行われると、前記デコーダはaffine_param_flagを取得することができる(S1330)。ここで、affine_param_flagはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示す。
【0165】
前記affine_param_flag=0であると、すなわち、AF4モードによって動きベクトル予測が行われると、前記デコーダは、2つの動きベクトル差分値である、mvd_CP0及びmvd_CP1を取得することができる(S1340)。ここで、mvd_CP0は制御点0に対する動きベクトル差分値を示し、mvd_CP1は制御点1に対する動きベクトル差分値を示す。
【0166】
そして、前記affine_param_flag=1であると、すなわち、AF6モードによって動きベクトル予測が行われると、前記デコーダは、3つの動きベクトル差分値である、mvd_CP0、mvd_CP1及びmvd_CP2を取得することができる(S1350)。
【0167】
図14は、本発明が適用される実施形態(2-1)として、条件A(condition A)に基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
【0168】
エンコーダは、スキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行う(S1410)。
【0169】
前記エンコーダは、動きベクトル予測のための最適のコーディングモードを決定するために、現在ブロックに対して条件Aが満足するか否かを確認する(S1420)。
【0170】
ここで、前記条件Aは、ブロックサイズに対する条件を意味する。例えば、次の表1の実施形態が適用できる。
【0171】
【表1】
【0172】
前記表1のExample 1において、前記条件Aは前記現在ブロックのピクセル数(pixNum)が閾値(TH1)より大きいか否かを示す。ここで、前記閾値は64、128、256、512、1024、・・・などの値を有し、例えば、TH1=64はブロックサイズが4×16、8×8又は16×4である場合を意味し、TH1=128はブロックサイズが32×4、16×8、8×16又は4×32である場合を意味する。
【0173】
Example 2の場合、前記現在ブロックの幅(width)及び高さ(height)が両方とも閾値(TH1)より大きいか否かを示す。
【0174】
Example 3の場合、前記現在ブロックの幅(width)が閾値(TH1)より大きいか、又は前記現在ブロックの高さ(height)が閾値(TH1)より大きいかを示す。
【0175】
前記条件Aが満足される場合、前記エンコーダは、AF4モード又はAF6モードの少なくとも1つに基づいて動きベクトル予測を行う(S1430)。
【0176】
前記エンコーダは、前記S1410及び前記S1430ステップの結果を比較して、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを決定する(S1440)。
【0177】
一方、前記条件Aが満足されない場合、前記エンコーダは、AFモードではないモードのうち最適のコーディングモードを決定する(S1440)。
【0178】
以後、前記エンコーダは、最適のコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得することができる。
【0179】
以後、図1及び図2で説明したエンコード/デコードの過程が同一に適用されることができる。
【0180】
図15は、本発明が適用される実施形態(2-2)として、条件A(condition A)に基づいてAF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0181】
デコーダは、ビットストリームを受信する(S1510)。前記ビットストリームは、ビデオ信号及び現在ブロックのコーディングモードに関する情報を含む。
【0182】
前記デコーダは、動きベクトル予測のための最適のコーディングモードを決定するために、現在ブロックに対して条件Aが満足するか否かを確認する(S1520)。ここで、前記条件Aは、ブロックサイズに対する条件を意味する。例えば、表1の実施形態が適用されることができる。
【0183】
前記条件Aが満足される場合、前記デコーダは、前記現在ブロックのコーディングモードがAFモードであるか否かを確認する(S1530)。ここで、前記AFモードは、アフィン動きモデル(affine motion model)を用いるアフィン動き予測モードを意味し、本明細書で説明した実施形態が適用されることができる。
【0184】
ここで、前記S1530ステップは、AFモードが行われるか否かを示すアフィンフラグにより確認されることができる。例えば、前記アフィンフラグはaffine_flagと表現される。前記affine_flag=1であると、現在ブロックに対してAFモードが行われることを示し、前記affine_flag=0であると、現在ブロックに対してAFモードが行われないことを示す。
【0185】
前記条件Aが満足されない場合であるか、前記現在ブロックに対してAFモードが行われない場合、前記デコーダは、前記AFモードではないコーディングモードによってデコード(すなわち、動きベクトル予測)を行うことができる(S1540)。例えば、スキップモード、マージモード又はインターモードが利用される。
【0186】
前記現在ブロックに対してAFモードが行われる場合、前記デコーダは、前記現在ブロックに対してAF4モードが適用されるか否かを確認する(S1550)。
【0187】
ここで、前記S1550ステップはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示すアフィンパラメータフラグにより確認できる。例えば、前記アフィンパラメータフラグはaffine_param_flagと表現できる。前記affine_param_flag=0であると、AF4モードによって動きベクトル予測が行われ(S1560)、前記affine_param_flag=1であると、AF6モードによって動きベクトル予測が行われることを意味するが(S1570)、本発明はこれに限定されない。
【0188】
図16は、本発明が適用される実施形態(2-3)として、条件A(condition A)に基づいてAF4モード又はAF6モードによってデコードを行うシンタックス構造を示す。
【0189】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S1610)。
【0190】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダは、条件Aが満足されるか否かを確認する(S1620)。ここで、前記条件Aは、ブロックサイズに対する条件を意味する。例えば、前記表1の実施形態が適用されることができる。
【0191】
前記条件Aが満足される場合、前記デコーダはaffine_flagを取得することができる(S1620)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0192】
前記affine_flag=1であると、すなわち、現在ブロックに対してAFモードが行われると、前記デコーダはaffine_param_flagを取得できる(S1630)。ここで、affine_param_flagはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示す。
【0193】
前記affine_param_flag=0であると、すなわち、AF4モードによって動きベクトル予測が行われると、前記デコーダは2つの動きベクトル差分値である、mvd_CP0及びmvd_CP1を取得できる(S1640)。ここで、mvd_CP0は制御点0に対する動きベクトル差分値を示し、mvd_CP1は制御点1に対する動きベクトル差分値を示す。
【0194】
そして、前記affine_param_flag=1であると、すなわち、AF6モードによって動きベクトル予測が行われると、前記デコーダは3つの動きベクトル差分値である、mvd_CP0、mvd_CP1及びmvd_CP2を取得できる(S1650)。
【0195】
図17は、本発明が適用される実施形態(3-1)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
【0196】
本発明は、現在ブロックのサイズに基づいてAF4モードとAF6モードを適応的に選択する方法を提供する。
【0197】
例えば、AF6モードはAF4モードより追加的に1つの動きベクトル差分値を送信するので、相対的に大きなブロックにおいては効果的である。従って、現在ブロックのサイズが既に設定されたサイズより小さい(又は、小さいか等しい)場合、AF4モードのみを考慮してエンコードを行い、前記現在ブロックが既に設定されたサイズより大きいか等しい(又は、大きい)場合、AF6モードのみを考慮してエンコードを行う。
【0198】
一方、AF4モード又はAF6モードのうち明確に1つのみが有利であると判断されない領域の場合は、AF4モード及びAF6モードを両方とも考慮し、このうち最適のモードのみをシグナリングすることができる。
【0199】
図17に示すように、エンコーダは、スキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行う(S1710)。
【0200】
前記エンコーダは、現在ブロックに対して条件Bが満足するか否かを確認する(S1720)。ここで、前記条件Bはブロックサイズに対する条件を意味する。例えば、次の表2の実施形態が適用されることができる。
【0201】
【表2】
【0202】
前記表2のExample 1において、前記条件Bは、前記現在ブロックのピクセル数(pixNum)が閾値(TH2)より小さいか否かを示す。ここで、前記閾値は64、128、256、512、1024、・・・などの値を有し、例えば、TH2=64はブロックサイズが4×16、8×8、又は16×4である場合を意味し、TH2=128はブロックサイズが32×4、16×8、8×16又は4×32である場合を意味する。
【0203】
Example 2の場合、前記条件Bは、前記現在ブロックの幅(width)及び高さ(height)が両方とも閾値(TH2)より小さいか否かを示す。
【0204】
Example 3の場合、前記条件Bは、現在ブロックの幅(width)が閾値(TH2)より小さいか、又は前記現在ブロックの高さ(height)が閾値(TH2)より小さいかを示す。
【0205】
前記条件Bが満足される場合、前記エンコーダはAF4モードに基づいて動きベクトル予測を行う(S1730)。
【0206】
前記条件Bが満足されない場合、前記エンコーダは、前記現在ブロックに対して条件Cが満足するか否かを確認する(S1740)。ここで、前記条件Cはブロックサイズに対する条件を意味する。例えば、次の表3の実施形態が適用されることができる。
【0207】
【表3】
【0208】
前記表3のExample 1において、前記条件Aは、前記現在ブロックのピクセル数(pixNum)が閾値(TH3)より大きいか等しいか否かを示す。ここで、前記閾値は64、128、256、512、1024、・・・などの値を有し、例えば、TH3=64はブロックサイズが4×16、8×8、または16×4である場合を意味し、TH3=128はブロックサイズが32×4、16×8、8×16又は4×32である場合を意味する。
【0209】
Example 2の場合、前記現在ブロックの幅(width)及び高さ(height)が両方とも閾値(TH3)より大きいか等しいか否かを示す。
【0210】
Example 3の場合、前記現在ブロックの幅(width)が閾値(TH1)より大きいか等しいか、又は前記現在ブロックの高さ(height)が閾値(TH1)より大きいか等しいかを示す。
【0211】
前記条件Cが満足される場合、前記エンコーダはAF6モードに基づいて動きベクトル予測を行う(S1760)。
【0212】
前記条件Cが満足されない場合、前記エンコーダは、AF4モード及びAF6モードに基づいて動きベクトル予測を行うことができる(S1750)。
【0213】
一方、前記条件B(condition B)及び前記条件C(condition C)において、閾値(TH2)と閾値(TH3)は次の数式5を満足するように決定されることができる。
【0214】
[数5]
TH_2 ≦ TH_3
【0215】
前記エンコーダは、前記S1710、S1730、S1750、S1760ステップの結果を比較して、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを決定する(S1770)。
【0216】
以後、前記エンコーダは、最適のコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得できる。
【0217】
以後、図1及び図2で説明したエンコード/デコードの過程が同一に適用されることができる。
【0218】
図18は、本発明が適用される実施形態(3-2)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0219】
デコーダは、現在ブロックのコーディングモードがAFモードであるか否かを確認する(S1810)。ここで、前記AFモードは、アフィン動きモデル(affine motion model)を用いるアフィン動き予測モードを意味し、本明細書で説明した実施形態が適用されることができ、重複する説明は省略する。
【0220】
前記現在ブロックに対してAFモードが行われる場合、前記デコーダは、前記現在ブロックに対して条件Bが満足するか否かを確認する(S1820)。ここで、前記条件Bは、ブロックサイズに対する条件を意味する。例えば、前記表2の実施形態が適用されることができ、重複される説明は省略する。
【0221】
前記条件Bが満足される場合、前記デコーダは、AF4モードに基づいて動きベクトル予測を行う(S1830)。
【0222】
前記条件Bが満足されない場合、前記デコーダは、前記現在ブロックに対して条件Cが満足するか否かを確認する(S1840)。ここで、前記条件Cは、ブロックサイズに対する条件を意味する。例えば、前記表3の実施形態が適用されることができ、重複される説明は省略する。
【0223】
一方、前記条件B(condition B)及び前記条件C(condition C)において、閾値(TH2)と閾値(TH3)は前記数式5を満足するように決定されることができる。
【0224】
前記条件Cが満足される場合、前記デコーダは、AF6モードに基づいて動きベクトル予測を行う(S1860)。
【0225】
前記条件Cが満足されない場合、前記デコーダは、前記現在ブロックに対してAF4モードが適用されるか否かを確認する(S1850)。
【0226】
ここで、前記S1850ステップは、AF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示すアフィンパラメータフラグにより確認されることができる。
【0227】
例えば、前記アフィンパラメータフラグはaffine_param_flagで表現できる。前記affine_param_flag=0であると、AF4モードによって動きベクトル予測が行われ(S1830)、前記affine_param_flag=1であると、AF6モードによって動きベクトル予測が行われることを意味するが(S1860)、本発明はこれに限定されない。
【0228】
一方、前記現在ブロックに対してAFモードが行われない場合、前記デコーダは、前記AFモードではないコーディングモードによってデコード(すなわち、動きベクトル予測)を行う(S1870)。例えば、スキップモード、マージモード又はインターモードが利用されることができる。
【0229】
図19は、本発明が適用される実施形態(3-3)として、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードによってデコードを行うシンタックス構造を示す。
【0230】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S1910)。
【0231】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダはaffine_flagを取得する(S1920)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0232】
前記affine_flag=1であると、すなわち、現在ブロックに対してAFモードが行われると、前記デコーダは条件Bが満足するか否かを確認する(S1620)。ここで、前記条件Bはブロックサイズに対する条件を意味する。例えば、前記表2の実施形態が適用されることができる。
【0233】
前記条件Bが満足される場合、前記デコーダはaffine_param_flagを0に設定する(S1930)。ここで、affine_param_flagはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示す。affine_param_flag=0は、AF4モードによって動きベクトル予測を行うことを意味する。
【0234】
前記条件Bが満足されずに条件Cが満足される場合、前記デコーダは、affine_param_flagを1に設定する(S1940)。ここで、affine_param_flag=1は、AF6モードによって動きベクトル予測を行うことを意味する。
【0235】
それに対して、前記条件Bが満足されずに前記条件Cも満足されない場合、前記デコーダはaffine_param_flagを取得できる(S1950)。
【0236】
前記affine_param_flag=0であると、前記デコーダは、2つの動きベクトル差分値である、mvd_CP0及びmvd_CP1を取得できる(S1960)。
【0237】
前記affine_param_flag=1であると、前記デコーダは、3つの動きベクトル差分値である、mvd_CP0、mvd_CP1及びmvd_CP2を取得できる(S1970)。
【0238】
図20は、本発明が適用される実施形態(4-1)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
【0239】
エンコーダは、スキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行う(S2010)。
【0240】
前記エンコーダは、隣接ブロックがAFモードでコーディングされたか否かを確認する(S2020)。ここで、隣接ブロックがAFモードでコーディングされたか否かは、isNeighborAffine()で表現できる。例えば、isNeighborAffine()=0であると、隣接ブロックはAFモードでコーディングされていない場合を意味し、isNeighborAffine()=1であると、隣接ブロックはAFモードでコーディングされた場合を意味する。
【0241】
前記隣接ブロックがAFモードでコーディングされていない場合、前記エンコーダは、AF4モードに基づいて動きベクトル予測を行う(S2030)。
【0242】
前記隣接ブロックがAFモードでコーディングされた場合、前記エンコーダは、AF4モードに基づいて動きベクトル予測を行い、AF6モードに基づいても動きベクトル予測を行う(S2040)。
【0243】
前記エンコーダは、前記S2030及び前記S2040ステップの結果を比較して、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを決定する(S2050)。
【0244】
以後、前記エンコーダは、最適なコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得できる。
【0245】
以後、図1及び図2で説明したエンコード/デコードの過程が同一に適用されることができる。
【0246】
図21は、本発明が適用される実施形態(4-2)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0247】
デコーダは、ビットストリームを受信することができる(S2110)。前記ビットストリームは、ビデオ信号内の現在ブロックのコーディングモードに関する情報を含む。
【0248】
前記デコーダは、前記現在ブロックのコーディングモードがAFモードであるか否かを確認する(S2120)。
【0249】
前記現在ブロックに対してAFモードが行われない場合、前記デコーダは、前記AFモードではないコーディングモードによってデコード(すなわち、動きベクトル予測)を行う(S2170)。例えば、スキップモード、マージモード又はインターモードが利用されることができる。
【0250】
現在ブロックに対してAFモードが行われる場合、前記デコーダは、隣接ブロックがAFモードでコーディングされたか否かを確認する(S2130)。ここで、隣接ブロックがAFモードでコーディングされたか否かは、isNeighborAffine()で表現できる。例えば、isNeighborAffine()=0であると、隣接ブロックはAFモードでコーディングされていない場合を意味し、isNeighborAffine()=1であると、隣接ブロックはAFモードでコーディングされた場合を意味する。
【0251】
前記隣接ブロックがAFモードでコーディングされた場合、前記デコーダはAF4モードに基づいて動きベクトル予測を行う(S2140)。
【0252】
前記隣接ブロックがAFモードでコーディングされていない場合、前記デコーダは前記現在ブロックに対してAF4モードが適用されるか否かを確認する(S2150)。
【0253】
ここで、前記S2150ステップは、AF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示すアフィンパラメータフラグにより確認されることができる。例えば、前記アフィンパラメータフラグはaffine_param_flagで表現できる。前記affine_param_flag=0であると、AF4モードによって動きベクトル予測が行われ(S2140)、前記affine_param_flag=1であると、AF6モードによって動きベクトル予測が行われる(S2160)。
【0254】
図22は、本発明が適用される実施形態(4-3)として、隣接ブロックのコーディングモードに基づいてAF4モード又はAF6モードによってデコードを行うシンタックス構造を示す。
【0255】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S2210)。
【0256】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダはaffine_flagを取得できる(S2220)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0257】
前記affine_flag=1であると、すなわち、現在ブロックに対してAFモードが行われると、前記デコーダは隣接ブロックがAFモードでコーディングされたか否かを確認する(S2230)。
【0258】
隣接ブロックがAFモードでコーディングされた場合、前記デコーダはaffine_param_flagを取得できる(S2230)。ここで、affine_param_flagはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示す。
【0259】
隣接ブロックがAFモードでコーディングされていない場合、前記デコーダはaffine_param_flagを0に設定する(S2240)。
【0260】
前記affine_param_flag=0であると、すなわち、AF4モードによって動きベクトル予測が行われると、前記デコーダは2つの動きベクトル差分値である、mvd_CP0及びmvd_CP1を取得できる(S2250)。
【0261】
そして、前記affine_param_flag=1であると、すなわち、AF6モードによって動きベクトル予測が行われると、前記デコーダは3つの動きベクトル差分値である、mvd_CP0、mvd_CP1及びmvd_CP2を取得できる(S2260)。
【0262】
図23は、本発明が適用される実施形態(5-1)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
【0263】
本発明は、実施形態2と実施形態3を組み合わせる実施形態を示す。図23では条件A、B、Cを全て考慮した場合の一例を説明し、条件の順序は異なるように適用可能である。
【0264】
図23に示すように、エンコーダはスキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行う(S2310)。
【0265】
前記エンコーダは、現在ブロックに対して条件Aが満足するか否かを確認する(S2320)。ここで、前記条件Aはブロックサイズに対する条件を意味し、前記表1の実施形態が適用されることができる。
【0266】
前記条件Aが満足される場合、前記エンコーダは、AFモードを除いたモードのうち最適のコーディングモードを決定する(S2380)。
【0267】
一方、前記条件Aが満足されない場合、前記エンコーダは、前記現在ブロックに対して条件Bが満足するか否かを確認する(S2330)。ここで、前記条件Bはブロックサイズに対する条件を意味し、前記表2の実施形態が適用されることができる。
【0268】
前記条件Bが満足される場合、前記エンコーダはAF4モードに基づいて動きベクトル予測を行う(S2340)。
【0269】
前記条件Bが満足されない場合、前記エンコーダは、前記現在ブロックに対して条件Cが満足するか否かを確認する(S2350)。ここで、前記条件Cはブロックサイズに対する条件を意味し、前記表3の実施形態が適用されることができる。
【0270】
前記条件Cが満足される場合、前記エンコーダはAF6モードに基づいて動きベクトル予測を行う(S2370)。
【0271】
前記条件Cが満足されない場合、前記エンコーダはAF4モードに基づいて動きベクトル予測を行い、また、AF6モードに基づいて動きベクトル予測を行う(S2360)。
【0272】
一方、前記条件B(condition B)及び前記条件C(condition C)において、閾値(TH2)と閾値(TH3)は前記数式5を満足するように決定されることができる。
【0273】
前記エンコーダは、前記S2310、S2340、S2360、S2370ステップの結果を比較して、最適のコーディングモードを決定する(S2380)。
【0274】
以後、前記エンコーダは、最適のコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得できる。
【0275】
以後、図1及び図2で説明したエンコード/デコードの過程が同一に適用されることができる。
【0276】
図24は、本発明が適用される実施形態(5-2)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0277】
デコーダは、現在ブロックに対して条件Aが満足するか否かを確認する(S2410)。ここで、前記条件Aはブロックサイズに対する条件を意味する。例えば、前記表1の実施形態が適用されることができる。
【0278】
前記条件Aが満足される場合、前記デコーダは前記現在ブロックのコーディングモードがAFモードであるか否かを確認する(S2420)。ここで、前記AFモードは、アフィン動きモデル(affine motion model)を用いるアフィン動き予測モードを意味し、本明細書で説明した実施形態が適用され、重複する説明は省略する。
【0279】
前記条件Aが満足されない場合であるか、前記現在ブロックに対してAFモードが行われない場合、前記デコーダは前記AFモードではないコーディングモードによってデコード(すなわち、動きベクトル予測)を行う(S2480)。例えば、スキップモード、マージモード又はインターモードが利用されることができる。
【0280】
前記現在ブロックに対してAFモードが行われる場合、前記デコーダは前記現在ブロックに対して条件Bが満足するか否かを確認する(S2430)。ここで、前記条件Bは、ブロックサイズに対する条件を意味する。例えば、前記表2の実施形態が適用されることができ、重複される説明は省略する。
【0281】
前記条件Bが満足される場合、前記デコーダはAF4モードに基づいて動きベクトル予測を行う(S2440)。
【0282】
前記条件Bが満足されない場合、前記デコーダは前記現在ブロックに対して条件Cが満足するか否かを確認する(S2450)。ここで、前記条件Cはブロックサイズに対する条件を意味する。例えば、前記表3の実施形態が適用されることができ、重複される説明は省略する。
【0283】
一方で、前記条件B(condition B)及び前記条件C(condition C)において、閾値(TH2)と閾値(TH3)は前記数式5を満足するように決定されることができる。
【0284】
前記条件Cが満足される場合、前記デコーダはAF6モードに基づいて動きベクトル予測を行う(S2470)。
【0285】
前記条件Cが満足されない場合、前記デコーダは前記現在ブロックに対してAF4モードが適用されるか否かを確認する(S2460)。
【0286】
ここで、前記S2460ステップはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示すアフィンパラメータフラグにより確認されることができる。
【0287】
例えば、前記アフィンパラメータフラグはaffine_param_flagで表現できる。前記affine_param_flag=0であると、AF4モードによって動きベクトル予測が行われ(S2440)、前記affine_param_flag=1であると、AF6モードによって動きベクトル予測が行われることを意味するが(S2470)、本発明はこれに限定されない。
【0288】
図25は、本発明が適用される実施形態(5-3)として、条件A(condition A)、条件B(condition B)又は条件C(condition C)の少なくとも1つに基づいて、AF4モード又はAF6モードによってデコードを行うシンタックス構造を示す。
【0289】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S2510)。
【0290】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダは条件Aが満足するか否かを確認する(S2520)。ここで、前記条件Aは、ブロックサイズに対する条件を意味する。例えば、前記表1の実施形態が適用されることができる。
【0291】
前記条件Aが満足される場合、前記デコーダはaffine_flagを取得できる(S2520)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0292】
前記affine_flag=1であると、すなわち、現在ブロックに対してAFモードが行われると、前記デコーダは条件Bが満足するか否かを確認する(S2530)。ここで、前記条件Bはブロックサイズに対する条件を意味する。例えば、前記表2の実施形態が適用されることができる。
【0293】
前記条件Bが満足される場合、前記デコーダはaffine_param_flagを0に設定する(S2540)。ここで、affine_param_flagはAF4モードが行われるか否か(又は、4つのパラメータによりアフィン動き予測が行われるか否か)を示す。affine_param_flag=0は、AF4モードによって動きベクトル予測を行うことを意味する。
【0294】
前記条件Bが満足されずに条件Cが満足される場合、前記デコーダはaffine_param_flagを1に設定する(S2550)。ここで、affine_param_flag=1は、AF6モードによって動きベクトル予測を行うことを意味する。
【0295】
それに対して、前記条件Bが満足されずに前記条件Cも満足されない場合、前記デコーダはaffine_param_flagを取得できる(S2560)。
【0296】
前記affine_param_flag=0であると、前記デコーダは2つの動きベクトル差分値である、mvd_CP0及びmvd_CP1を取得できる(S2570)。
【0297】
前記affine_param_flag=1であると、前記デコーダは3つの動きベクトル差分値である、mvd_CP0、mvd_CP1及びmvd_CP2を取得できる(S2580)。
【0298】
図26は、本発明が適用される実施形態(6-1)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードを含む動きベクトル予測モードのうち最適のコーディングモードを適応的に決定するフローチャートを示す。
【0299】
エンコーダは、スキップモード、マージモード、又はインターモードの少なくとも1つに基づいて予測を行うことができる(S2610)。
【0300】
前記エンコーダは、現在ブロックに対して条件Aが満足するか否かを確認する(S2620)。ここで、前記条件Aはブロックサイズに対する条件を意味し、前記表1の実施形態が適用されることができる。
【0301】
前記条件Aが満足される場合、前記エンコーダはAFモードを除いたモードのうち最適のコーディングモードを決定する(S2660)。
【0302】
一方、前記条件Aが満足されない場合、前記エンコーダは隣接ブロックがAFモードでコーディングされたか否かを確認する(S2630)。ここで、隣接ブロックがAFモードでコーディングされたか否かは、isNeighborAffine()で表現できる。例えば、isNeighborAffine()=0であると、隣接ブロックはAFモードでコーディングされていない場合を意味し、isNeighborAffine()=1であると、隣接ブロックはAFモードでコーディングされた場合を意味する。
【0303】
前記隣接ブロックがAFモードでコーディングされていない場合、前記エンコーダはAF4モードに基づいて動きベクトル予測を行う(S2640)。
【0304】
前記隣接ブロックがAFモードでコーディングされた場合、前記エンコーダはAF4モードに基づいて動きベクトル予測を行い、また、AF6モードに基づいて動きベクトル予測を行う(S2650)。
【0305】
前記エンコーダは、前記S2610、前記S2640及び前記S2650ステップの結果を比較して、最適のコーディングモードを決定する(S2660)。
【0306】
以後、前記エンコーダは最適なコーディングモードに基づいて現在ブロックの動きベクトル予測子を生成し、前記現在ブロックの動きベクトルから前記動きベクトル予測子を減算して動きベクトル差分値を取得できる。
【0307】
以後、図1及び図2で説明したエンコード/デコードの過程が同一に適用されることができる。
【0308】
図27は、本発明が適用される実施形態(6-2)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0309】
デコーダはビットストリームを受信できる(S2710)。前記ビットストリームは、ビデオ信号内の現在ブロックのコーディングモードに関する情報を含む。
【0310】
前記デコーダは、動きベクトル予測のための最適のコーディングモードを決定するために、現在ブロックに対して条件Aが満足するか否かを確認する(S2720)。ここで、前記条件Aはブロックサイズに対する条件を意味する。例えば、前記表1の実施形態が適用されることができる。
【0311】
前記条件Aが満足される場合、前記デコーダは、前記現在ブロックのコーディングモードがAFモードであるか否かを確認する(S2730)。
【0312】
以下、S2730ステップないしS2780ステップは、図21のS2120ステップないしS2170ステップで説明した内容が適用されることができ、重複される説明は省略する。
【0313】
図28は、本発明が適用される実施形態(6-3)として、条件A(condition A)又は隣接ブロックのコーディングモードの少なくとも1つに基づいてAF4モード又はAF6モードによってデコードを行うシンタックス構造を示す。
【0314】
デコーダは、merge_flagを取得して、現在ブロックに対してマージモードが適用されるか否かを確認する(S2810)。
【0315】
前記現在ブロックに対してマージモードが適用されない場合、前記デコーダは条件Aが満足するか否かを確認する(S2820)。ここで、前記条件Aはブロックサイズに対する条件を意味する。例えば、前記表1の実施形態が適用されることができる。
【0316】
前記条件Aが満足される場合、前記デコーダはaffine_flagを取得できる(S2820)。ここで、affine_flagはAFモードが行われるか否かを示す。
【0317】
以下、S2830ステップないしS2860ステップは、図22のS2230ステップないしS2260ステップで説明した内容が適用されることができ、重複される説明は省略する。
【0318】
図29は、本発明が適用される実施形態として、AF4モード又はAF6モードの少なくとも1つに基づいて動きベクトル予測子を生成するフローチャートを示す。
【0319】
デコーダは、現在ブロックに対してAFモードが適用されるか否かを確認する(S2910)。ここで、前記AFモードは、アフィン動きモデル(affine motion model)を用いる動き予測モードを示す。
【0320】
例えば、前記デコーダは、ビデオ信号からアフィンフラグを取得することができ、前記現在ブロックに対して前記AFモードが適用されるか否かは前記アフィンフラグに基づいて確認されることができる。
【0321】
前記デコーダは、前記現在ブロックに対して前記AFモードが適用される場合、AF4モードが利用されるか否かを確認する(S2920)。ここで、前記AF4モードは、前記アフィン動きモデル(affine motion model)を構成する4つのパラメータを利用して動きベクトルを予測するモードを示す。
【0322】
例えば、前記アフィンフラグによって前記現在ブロックに対して前記AFモードが適用される場合、前記デコーダは、前記ビデオ信号からアフィンパラメータフラグを取得でき、前記アフィンパラメータフラグは、前記動きベクトル予測子が前記4つのパラメータを利用して生成されるか又は前記6つのパラメータを利用して生成されるかを示す。
【0323】
ここで、前記アフィンフラグ及び前記アフィンパラメータフラグは、スライス、最大コーディングユニット、コーディングユニット又は予測ユニットの少なくとも1つのレベルにおいて定義できる。
【0324】
前記デコーダは、AF4モードが利用されると、前記4つのパラメータを利用して動きベクトル予測子を生成し、AF4モードが利用されないと、前記アフィン動きモデル(affine motion model)を構成する6つのパラメータを利用して動きベクトル予測子を生成する(S2930)。
【0325】
前記デコーダは、前記動きベクトル予測子に基づいて前記現在ブロックの動きベクトルを取得できる(S2940)。
【0326】
一実施形態として、前記デコーダは、前記現在ブロックのサイズが既に設定された条件を満足するか否かを確認できる。その時、前記既に設定された条件は、前記現在ブロック内のピクセル数、前記現在ブロックの幅及び/又は高さのうち少なくとも1つが既に設定された閾値より大きいか否かを示す。
【0327】
例えば、前記現在ブロックのサイズが既に設定された条件を満足する場合、前記デコーダは、前記現在ブロックに対して前記AFモードが適用されるか否かを確認することができる。
【0328】
それに対して、前記現在ブロックのサイズが既に設定された条件を満足しない場合、前記現在ブロックは、前記AFモードではない他のコーディングモードに基づいてデコードされることができる。
【0329】
一実施形態として、前記デコーダは、前記現在ブロックに対して前記AFモードが適用される場合、隣接ブロックに対してAFモードが適用されたか否かを確認することができる。
【0330】
前記隣接ブロックに対してAFモードが適用された場合、動きベクトル予測子は前記4つのパラメータを利用して生成され、前記隣接ブロックに対してAFモードが適用されない場合、前記デコーダは前記AF4モードが利用されるか否かを確認するステップを行う。
【0331】
図30は、本発明が適用される実施形態として、AF4_flag及びAF6_flagに基づいて動きベクトル予測子を生成するフローチャートを示す。
【0332】
デコーダは、ビデオ信号からAF4_flag及びAF6_flagの少なくとも1つを取得する(S3010)。ここで、AF4_flagは、現在ブロックに対してAF4モードが行われるか否かを示し、AF6_flagは、現在ブロックに対してAF6モードが行われるか否かを示す。
【0333】
ここで、前記AF4_flag及び前記AF6_flagの少なくとも1つはスライスレベルにおいて定義され、またブロックレベル又は予測ユニットレベルにおいて定義されることができる。ただし、本発明は、これに限定されず、前記AF4_flag及び前記AF6_flagの少なくとも1つは、スライス、最大コーディングユニット、コーディングユニット又は予測ユニットのうち少なくとも1つのレベルにおいて定義されることができる。
【0334】
前記デコーダは、AF4_flag及びAF6_flagの値を確認する(S3020)。
【0335】
AF4_flag=1であると、現在ブロックに対してAF4モードが行われ、AF4_flag=0であると、現在ブロックに対してAF4モードが行われない。ここで、AF4モードが行われるということは、4つのパラメータで表現されるアフィン動きモデルを利用して動きベクトル予測を行うことを意味する。
【0336】
AF6_flag=1であると、現在ブロックに対してAF6モードが行われ、AF4_flag=0であると、現在ブロックに対してAF6モードが行われない。ここで、AF6モードが行われるということは4つのパラメータで表現されるアフィン動きモデルを利用して動きベクトル予測を行うことを意味する。
【0337】
AF4_flag=0、AF6_flag=0であると、前記デコーダは、AF4モード及びAF6モード以外のモードによって動きベクトル予測を行う(S3030)。
【0338】
AF4_flag=1、AF6_flag=0であると、前記デコーダはAF4モードによって動きベクトル予測を行う(S3040)。
【0339】
AF4_flag=0、AF6_flag=1であると、前記デコーダはAF6モードによって動きベクトル予測を行う(S3050)。
【0340】
AF4_flag=1、AF6_flag=1であると、前記デコーダはAF4モード又はAF6モードによって動きベクトル予測を行う(S3060)。
【0341】
図31は、本発明が適用される実施形態として、隣接ブロックがAFモードでコーディングされたか否かに基づいてAF4モード又はAF6モードによって適応的にデコードを行うフローチャートを示す。
【0342】
デコーダは、現在ブロックに対してAFモードが適用されるか否かを確認する(S3110)。
【0343】
前記デコーダは、前記現在ブロックに対して前記AFモードが適用される場合、隣接ブロックがAFモードでコーディングされたか否かを確認する(S3120)。
【0344】
前記デコーダは、隣接ブロックがAFモードでコーディングされた場合、AF4_flag又はAF6_flagの少なくとも1つを取得できる(S3130)。
【0345】
前記デコーダは、AF4_flag又はAF6_flagの少なくとも1つに基づいて4つ又は6つのパラメータを利用して動きベクトル予測子を生成する(S3140)。例えば、AF4_flag=1であると、前記デコーダは、AF4モードによって動きベクトル予測を行うことができ、AF6_flag=1であると、前記デコーダは、AF6モードによって動きベクトル予測を行うことができる。
【0346】
前記デコーダは、前記動きベクトル予測子に基づいて前記現在ブロックの動きベクトルを取得できる(S3150)。
【0347】
図32は、本発明が適用される実施形態として、AF4_flag及びAF6_flagに基づいて適応的にデコードを行うシンタックスを示す。
【0348】
デコーダは、スライスレベルにおいてAF4_flag及びAF6_flagを取得できる(S3010)。ここで、AF4_flagは現在ブロックに対してAF4モードが行われるか否かを示し、AF6_flagは現在ブロックに対してAF6モードが行われるか否かを示す。前記AF4_flagはaffine_4_flagで表現することができ、前記AF6_flagはaffine_6_flagで表現することができる。
【0349】
前記デコーダは、ブロックレベル又は予測ユニットレベルにおいてAF4_flag及びAF6_flagに基づいて適応的にデコードを行うことができる。
【0350】
affine_4_flagが0でないか、affine_6_flagが0でない場合(すなわち、affine_4_flag=0 && affine_6_flag=0以外の場合)、前記デコーダはアフィンフラグを取得できる(S3220)。前記アフィンフラグはAFモードが行われるか否かを示す。
【0351】
AFモードが行われる場合、前記デコーダは、AF4_flag及びAF6_flag値によって適応的にデコードを行うことができる。
【0352】
affine_4_flag=1&&affine_6_flag=0である場合、前記デコーダは、affine_param_flagを0に設定することができる。すなわち、affine_param_flag=0はAF4モードが行われることを意味する。
【0353】
affine_4_flag=0&&affine_6_flag=1である場合、前記デコーダは、affine_param_flagを1に設定することができる。すなわち、affine_param_flag=1はAF6モードが行われることを意味する。
【0354】
affine_4_flag=1&&affine_6_flag=1であるの場合、前記デコーダはaffine_param_flagをパーシング又は取得できる。ここで、前記デコーダは、ブロックレベル又は予測ユニットレベルにおいてaffine_param_flag値に応じてAF4モード又はAF6モードによってデコードを行うことができる。
【0355】
その他、シンタックス構造は、前述した実施形態が適用されることができ、重複する説明は省略する。
【0356】
図33は、本発明が適用される実施形態として、隣接ブロックがAFモードでコーディングされたか否かに基づいてAF4モード又はAF6モードによって適応的にデコードを行うシンタックスを示す。
【0357】
本実施形態の場合、図32と重複される内容は前述した説明が適用されることができ、異なる部分のみを説明する。
【0358】
affine_4_flag=1&&affine_6_flag=1である場合、前記デコーダは隣接ブロックがAFモードでコーディングされたか否かを確認することができる。
【0359】
隣接ブロックがAFモードでコーディングされた場合、前記デコーダはaffine_param_flagをパーシング又は取得する(S3310)。ここで、前記デコーダは、ブロックレベル又は予測ユニットレベルにおいてaffine_param_flag値によってAF4モード又はAF6モードによってデコードを行うことができる。
【0360】
それに対して、隣接ブロックがAFモードでコーディングされていない場合、前記デコーダはaffine_param_flagを0に設定することができる。すなわち、affine_param_flag=0はAF4モードが行われることを意味する。
【0361】
図34は、本発明が適用されるビデオコーディングシステムを示す。
【0362】
ビデオコーディングシステムは、ソースデバイス(source device)及び受信デバイス(receiving device)を含む。ソースデバイスは、エンコードされたビデオ/画像情報又はデータをファイル又はストリーミング形式でデジタル格納媒体又はネットワークを介して受信デバイスに伝達する。
【0363】
前記ソースデバイスは、ビデオソース(video source)、エンコード装置(encoding apparatus)、送信部(transmitter)を含む。前記受信デバイスは、受信部(receiver)、デコード装置(decoding apparatus)及びレンダラー(renderer)を含む。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれてもよく、前記デコード装置は、ビデオ/画像デコード装置と呼ばれてもよい。送信機はエンコード装置に含まれてもよい。受信機はデコード装置に含まれてもよい。レンダラーはディスプレイ部を含んでもよく、ディスプレイ部は別のデバイス又は外部コンポーネントで構成されてもよい。
【0364】
ビデオソースは、ビデオ/画像のキャプチャ、合成又は生成過程によりビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含んでもよい。ビデオ/画像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含む。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含み、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどにより仮想のビデオ/画像が生成されることができ、この場合、関連データが生成される過程がビデオ/画像のキャッチャ過程を代わることができる。
【0365】
エンコード装置は、入力ビデオ/画像をエンコードする。エンコードは、圧縮及びコーディング効率のために予測、変換、量子化などの一連の手順を行う。エンコードされたデータ(エンコードされたビデオ/画像情報)はビットストリーム形式で出力される。
【0366】
送信部は、ビットストリーム形式で出力されたエンコードされたビデオ/画像情報又はデータをファイル又はストリーミング形式でデジタル格納媒体又はネットワークを介して受信デバイスの受信部に伝達する。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの多様な格納媒体を含む。送信部は、予め決められたファイルフォーメットによりメディアファイルを生成するためのエレメントを含み、放送/通信ネットワークを介する送信のためのエレメントを含む。受信部は、前記ビットストリームを抽出してデコード装置に伝達する。
【0367】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像をデコードする。
【0368】
レンダラーは、デコードされたビデオ/画像をレンダリングする。レンダリングされたビデオ/画像はディスプレイ部を介してディスプレイされる。
【0369】
図35は、本発明が適用されるコンテンツのストリーミングシステムを示す。
【0370】
図35に示すように、本発明が適用されるコンテンツストリーミングシステムは、大きくエンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置及びマルチメディア入力装置を含む。
【0371】
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割を果たす。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されてもよい。
【0372】
前記ビットストリームは、本発明が適用されるエンコード方法又はビットストリーム生成方法により生成され、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で一時的に前記ビットストリームを格納することができる。
【0373】
前記ストリーミングサーバは、ウェブサーバに介するユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介の役割を果たす。ユーザが前記ウェブサーバにご希望のサービスを要求すると、前記ウェブサーバはこれをストリーミングサーバに伝達し、前記ストリーミングサーバはユーザにマルチメディアデータを送信する。ここで、前記コンテンツストリーミングシステムは別途の制御サーバを含んでもよく、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たす。
【0374】
前記ストリーミングサーバは、メディア格納所及び/又はエンコードサーバからコンテンツを受信する。例えば、前記エンコードサーバからコンテンツを受信する場合、前記コンテンツをリアルタイムに受信できる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは前記ビットストリームを一定時間格納することができる。
【0375】
前記ユーザ装置の例としては、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(smartwatch)、スマートグラス(smart glass)、HMD(head mounted display))、デジタルTV、デスクトップコンピュータ、デジタルサイネージなどを有することができる。
【0376】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営でき、この場合、各サーバで受信するデータは分散処理されることができる。
【0377】
前述したように、本発明で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われることができる。例えば、前記図1図2図34及び図35に示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて行われることができる。
【0378】
また、本発明が適用されるデコーダ及びエンコーダは、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号及びデータ信号を処理するために使用できる。
【0379】
また、本発明が適用される処理方法は、コンピュータにより実行されるプログラムの形態で生産されることができ、コンピュータにより読み取りできる記録媒体に格納できる。本発明によるデータ構造を有するマルチメディアデータもまたコンピュータにより読み取りできる記録媒体に格納できる。前記コンピュータにより読み取りできる記録媒体は、コンピュータにより読み取りできるデータが格納される全ての種類の格納装置を含む。前記コンピュータにより読み取りできる格納媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、RAM、CD-ROM、磁気テープ、フロッピ(登録商標)ディスク、及び光学データ記憶装置を含むことができる。また、前記コンピュータにより読み取りできる記録媒体は、搬送波(例えば、インターネットを介する送信)の形態で実現されたメディアを含む。また、エンコード方法により生成されたビットストリームがコンピュータにより読み取りできる記録媒体に格納されるか、有無線通信ネットワークを介して送信できる。
【産業上の利用可能性】
【0380】
以上、前述した本発明の好ましい実施形態は、例示の目的のために開示されたものであり、当業者であれば、以下に添付された特許請求範囲に開示された本発明の技術的思想とその技術的範囲内において、様々な他の実施形態を改良、変更、代替又は付加などが可能であろう。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
【手続補正書】
【提出日】2023-12-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をデコードする方法において、
前記ビデオ信号からマージフラグを取得するステップであって、前記マージフラグは、マージモードが前記現在ブロックに適用されるか否かを表す、ステップと、
前記マージモードが前記現在ブロックに適用されないことに基づいて、前記ビデオ信号から、前記現在ブロックの幅と高さが16と等しいか、又は16より大きいことに基づいてアフィンフラグを取得するステップであって、前記アフィンフラグは、前記AFモードが前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを取得するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測サンプルを取得するステップと、
前記現在ブロックに対するレジデュアルサンプルを取得するステップと、
前記予測サンプル及び前記レジデュアルサンプルに基づいて、前記現在ブロックを復元するステップと、
前記復元された現在ブロックをフィルタリングするステップと、を含み、
前記マージモードが前記現在ブロックに適用されないことを前記マージフラグが表すことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが取得される、方法。
【請求項2】
前記アフィンフラグ及び前記アフィンパラメータフラグは、コーディングユニットのレベルにおいて定義される、請求項1に記載の方法。
【請求項3】
前記現在ブロックの前記幅と前記高さが16より小さいことに基づいて、前記現在ブロックは、前記AFモード以外のコーディングモードに基づいてデコードされる、請求項1に記載の方法。
【請求項4】
アフィン動き予測モード(AFモード)に基づいて現在ブロックを含むビデオ信号をエンコードする方法において、
マージモードが前記現在ブロックに適用されるか否かを表すマージフラグを生成するステップと、
前記マージモードが前記現在ブロックに適用されないことに基づいて、前記現在ブロックの幅と高さが16と等しいか、又は16より大きいことに基づいてアフィンフラグを生成するステップであって、前記アフィンフラグは、前記AFモードが前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを生成するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて、前記現在ブロックに対するレジデュアルサンプルを生成するステップと、
前記レジデュアルサンプルに対して変換、量子化、及びエントロピーエンコードを行うステップと、を含み、
前記予測サンプル及び前記レジデュアルサンプルに基づいて、前記現在ブロックが復元され、
前記マージモードが前記現在ブロックに適用されないことを前記マージフラグが表すことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが生成される、方法。
【請求項5】
ビデオ信号に対するデータの送信方法において、
前記ビデオ信号に対するビットストリームを生成するステップであって、前記ビットストリームは、エンコード方法により生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み、
前記エンコード方法は、
マージモードが現在ブロックに適用されるか否かを表すマージフラグを生成するステップと、
前記マージモードが前記現在ブロックに適用されないことに基づいて、前記現在ブロックの幅と高さが16と等しいか、又は16より大きいことに基づいてアフィンフラグを生成するステップであって、前記アフィンフラグは、アフィン動き予測モード(AFモード)が前記現在ブロックに適用されるか否かを表し、前記AFモードは、アフィン動きモデルを用いた動き予測モードを表す、ステップと、
前記AFモードが前記現在ブロックに適用されることに基づいて、前記アフィン動きモデルに対して4つのパラメータ又は6つのパラメータが使用されるか否かを表すアフィンパラメータフラグを生成するステップと、
前記アフィン動きモデルに対して前記4つのパラメータ又は前記6つのパラメータが使用されることに基づいて、動きベクトル予測子を取得するステップと、
前記動きベクトル予測子に基づいて、前記現在ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて、前記現在ブロックに対するレジデュアルサンプルを生成するステップと、
前記レジデュアルサンプルに対して変換、量子化、及びエントロピーエンコードを行うステップと、を含み、
前記予測サンプル及び前記レジデュアルサンプルに基づいて、前記現在ブロックが復元され、
前記マージモードが前記現在ブロックに適用されないことを前記マージフラグが表すことに基づいて、前記アフィンフラグ及び前記アフィンパラメータフラグが生成される、方法。