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

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

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

特許7611300DMVR基盤のインター予測方法及び装置
<>
  • 特許-DMVR基盤のインター予測方法及び装置 図1
  • 特許-DMVR基盤のインター予測方法及び装置 図2
  • 特許-DMVR基盤のインター予測方法及び装置 図3
  • 特許-DMVR基盤のインター予測方法及び装置 図4
  • 特許-DMVR基盤のインター予測方法及び装置 図5
  • 特許-DMVR基盤のインター予測方法及び装置 図6
  • 特許-DMVR基盤のインター予測方法及び装置 図7
  • 特許-DMVR基盤のインター予測方法及び装置 図8
  • 特許-DMVR基盤のインター予測方法及び装置 図9
  • 特許-DMVR基盤のインター予測方法及び装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-25
(45)【発行日】2025-01-09
(54)【発明の名称】DMVR基盤のインター予測方法及び装置
(51)【国際特許分類】
   H04N 19/513 20140101AFI20241226BHJP
   H04N 19/46 20140101ALI20241226BHJP
【FI】
H04N19/513
H04N19/46
【請求項の数】 3
(21)【出願番号】P 2023094243
(22)【出願日】2023-06-07
(62)【分割の表示】P 2021547474の分割
【原出願日】2020-02-07
(65)【公開番号】P2023105177
(43)【公開日】2023-07-28
【審査請求日】2023-06-26
(31)【優先権主張番号】62/805,950
(32)【優先日】2019-02-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】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)【発明者】
【氏名】パク ネリ
(72)【発明者】
【氏名】ナム チョンハク
【審査官】白川 瑞樹
(56)【参考文献】
【文献】特許第7293369(JP,B2)
【文献】SETHURAMAN, Sriram,CE9: Results of DMVR related Tests CE9.2.1 and CE9.2.2,JVET-M0147 (version 7),ITU,2019年01月17日,pp.1-11,JVET-M0147-v7.DOCX
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
ビットストリームから予測モードに関する情報及びレジデュアル情報を取得するステップと、
前記予測モードに関する情報に基づいて、現在ブロックの動きベクトルを導出するステップと、
前記動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップと、
前記レジデュアル情報に基づいて、前記現在ブロックに対するレジデュアルサンプルを導出するステップと、
前記予測サンプル及び前記レジデュアルサンプルに基づいて、前記現在ブロックに対する復元サンプルを生成するステップと、を含み、
L0参照ピクチャとL1参照ピクチャに基づいて実行される双予測が前記現在ブロックに適用される場合、現在ピクチャと前記L0参照ピクチャとの間の距離と前記現在ピクチャと前記L1参照ピクチャとの間の距離が等しい場合、動きベクトル差分を伴うマージモード(MMVD)が前記現在ブロックに適用されるか否かに関連するMMVDフラグ情報の値が0と等しい場合マージモードが前記現在ブロックに適用されるかどうかに関連するマージフラグ情報の値が1と等しい場合、及び前記現在ブロックの双予測加重値インデックス情報の値が0と等しい場合に基づいて、前記動きベクトルを導出するステップは、前記現在ブロックの前記動きベクトルにデコーダ側動きベクトルリファインメント(DMVR)を適用するかどうかを決定するステップを含み、
前記L0参照ピクチャと前記L1参照ピクチャに基づいて実行される前記双予測が前記現在ブロックに適用される場合、前記現在ピクチャと前記L0参照ピクチャとの間の距離と前記現在ピクチャと前記L1参照ピクチャとの間の距離が等しい場合サブブロック基盤のマージモードが前記現在ブロックに適用されるかどうかに関連するサブブロック基盤のマージフラグ情報の値が0と等しい場合、及び前記現在ブロックの前記双予測加重値インデックス情報の値が0と等しい場合に基づいて、前記予測サンプルを導出するステップは、前記予測サンプルに両方向オプティカルフロー(BDOF)を適用するかどうかを決定するステップを含む、映像デコーディング方法。
【請求項2】
エンコーディング装置により実行される映像エンコーディング方法において、
現在ブロックに対する予測モードを導出するステップと、
前記予測モードに基づいて、前記現在ブロックの動きベクトルを導出するステップと、
前記動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいてレジデュアルサンプルを導出するステップと、
前記レジデュアルサンプルに基づいてレジデュアル情報を生成するステップと、
前記予測モードに関する情報及び前記レジデュアル情報を含む映像情報をエンコーディングするステップと、を含み、
L0参照ピクチャとL1参照ピクチャに基づいて実行される双予測が前記現在ブロックに適用される場合、現在ピクチャと前記L0参照ピクチャとの間の距離と前記現在ピクチャと前記L1参照ピクチャとの間の距離が等しい場合、動きベクトル差分を伴うマージモード(MMVD)が前記現在ブロックに適用されるか否かに関連するMMVDフラグ情報の値が0と等しい場合マージモードが前記現在ブロックに適用されるかどうかに関連するマージフラグ情報の値が1と等しい場合、及び前記現在ブロックの双予測加重値インデックス情報の値が0と等しい場合に基づいて、前記動きベクトルを導出するステップは、前記現在ブロックの前記動きベクトルにデコーダ側動きベクトルリファインメント(DMVR)を適用するかどうかを決定するステップを含み、
前記L0参照ピクチャと前記L1参照ピクチャに基づいて実行される前記双予測が前記現在ブロックに適用される場合、前記現在ピクチャと前記L0参照ピクチャとの間の距離と前記現在ピクチャと前記L1参照ピクチャとの間の距離が等しい場合サブブロック基盤のマージモードが前記現在ブロックに適用されるかどうかに関連するサブブロック基盤のマージフラグ情報の値が0と等しい場合、及び前記現在ブロックの前記双予測加重値インデックス情報の値が0と等しい場合に基づいて、前記予測サンプルを導出するステップは、前記予測サンプルに両方向オプティカルフロー(BDOF)を適用するかどうかを決定するステップを含む、映像エンコーディング方法。
【請求項3】
映像に対するデータの送信方法において、
請求項2に記載の映像エンコーディング方法を実行することにより、映像情報に対するビットストリームを生成するステップと、
前記ビットストリームを含む前記データを送信するステップと、を含む、データ送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、より詳しくは、DMVR(Decoder-side Motion Vector Refinement)に基づいてインター予測を実行する方法及び装置に関する。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)映像/ビデオのような高解像度、高品質の映像/ビデオに対する需要が多様な分野で増加している。映像/ビデオデータが高解像度、高品質になるほど、既存の映像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信し、または既存の格納媒体を利用して映像/ビデオデータを格納する場合、送信費用と格納費用が増加される。
【0003】
また、最近、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有する映像/ビデオに対する放送が増加している。
【0004】
これにより、前記のような多様な特性を有する高解像度、高品質の映像/ビデオの情報を効果的に圧縮して送信または格納し、再生するために、高効率の映像/ビデオ圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0006】
本文書の他の技術的課題は、効率的なインター予測方法及び装置を提供することにある。
【0007】
本文書の他の技術的課題は、DMVR(Decoder-side Motion Vector Refinement)に基づいてインター予測を実行する方法及び装置を提供することにある。
【0008】
本文書の他の技術的課題は、BDOF(Bi-directional optical flow)に基づいてインター予測を実行する方法及び装置を提供することにある。
【0009】
本文書の他の技術的課題は、映像コーディング効率を向上させるためのDMVRの適用可否を決定するための条件及び/またはBDOFの適用可否を決定するための条件を提供することによって予測性能を向上させる方法及び装置を提供することにある。
【課題を解決するための手段】
【0010】
本文書の一実施例によると、デコーディング装置により実行される映像デコーディング方法が提供される。前記方法は、現在ブロックの動きベクトルを導出するステップ、前記現在ブロックの動きベクトルに対してリファインメント(refinement)を適用するかどうかを決定するステップ、前記現在ブロックの動きベクトルに対してリファインメントを適用することに決定した場合、前記動きベクトルにDMVR(Decoder-side Motion Vector Refinement)を適用してリファインされた動きベクトルを導出するステップ、前記リファインされた動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップ、及び前記予測サンプルに基づいて前記現在ブロックに対する復元サンプルを生成するステップを含み、前記リファインメントを適用するかどうかを決定するステップは、前記現在ブロックの大きさまたは前記現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいて前記リファインメント適用可否を決定することを特徴とする。
【0011】
本文書の他の一実施例によると、エンコーディング装置により実行される映像エンコーディング方法が提供される。前記方法は、現在ブロックの動きベクトルを導出するステップ、前記現在ブロックの動きベクトルに対してリファインメント(refinement)を適用するかどうかを決定するステップ、前記現在ブロックの動きベクトルに対してリファインメントを適用することに決定した場合、前記動きベクトルにDMVR(Decoder-side Motion Vector Refinement)を適用してリファインされた動きベクトルを導出するステップ、前記リファインされた動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップ、前記予測サンプルに基づいてレジデュアルサンプルを導出するステップ、前記レジデュアルサンプルに基づいてレジデュアル情報を生成するステップ、及び前記レジデュアル情報を含む映像情報をエンコーディングするステップを含み、前記リファインメントを適用するかどうかを決定するステップは、前記現在ブロックの大きさまたは前記現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいて前記リファインメント適用可否を決定することを特徴とする。
【発明の効果】
【0012】
本文書によると、全般的な映像/ビデオ圧縮効率を上げることができる。
【0013】
本文書によると、効率的なインター予測を介して計算複雑度を減らすことができ、全般的なコーディング効率を向上させることができる。
【0014】
本文書によると、動き補償過程で動き情報をリファインメントするDMVR及び/またはBDOFを適用するにあたって、多様な適用条件を提案することによって、複雑度及び性能面での効率性を向上させることができる。
【図面の簡単な説明】
【0015】
図1】本文書の実施例に適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
図2】本文書の実施例に適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
図3】本文書の実施例に適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図4】true双予測でDMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
図5】DMVR及びBDOFの適用条件をチェックしてデコーディング過程を実行する方法を示す一例である。
図6】DMVR及びBDOFの適用条件をチェックしてデコーディング過程を実行する方法を示す他の例である。
図7】DMVR及びBDOFの適用条件をチェックしてデコーディング過程を実行する方法を示す他の例である。
図8】本文書の一実施例によってエンコーディング装置により実行されることができるエンコーディング方法を概略的に示す流れ図である。
図9】文書の一実施例によってデコーディング装置により実行されることができるデコーディング方法を概略的に示す流れ図である。
図10】本文書で開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【発明を実施するための形態】
【0016】
本文書は、多様な変更を加えることができ、種々な実施例を有することができ、特定実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施例に限定しようとするものではない。本明細書で常用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
【0017】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成を複数の構成に分けることもできる。各構成が統合及び/または分離された実施例も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
【0018】
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略されることができる。
【0019】
図1は、本文書の実施例に適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【0020】
図1を参照すると、ビデオ/映像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコーディングされたビデオ(video)/映像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
【0021】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/映像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/映像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0022】
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイス及び/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成されることができ、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0023】
エンコーディング装置は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0024】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0025】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/映像をデコーディングすることができる。
【0026】
レンダラは、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
【0027】
この文書は、ビデオ/映像コーディングに関する。例えば、この文書に開示された方法/実施例は、VVC(versatile video coding)標準、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)、または、次世代ビデオ/映像コーディング標準(例えば、H.267またはH.268等)に開示される方法に適用されることができる。
【0028】
この文書では、ビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は、互いに組み合わせられて実行されることもできる。
【0029】
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは、一つ以上のスライス/タイルで構成されることができる。一つのピクチャは、一つ以上のタイルグループで構成されることができる。一つのタイルグループは、一つ以上のタイルを含むことができる。ブリックは、ピクチャ内のタイル以内のCTU行の四角領域を示すことができる(a brick may represent a rectangular region of CTU rows within a tile in a picture)。タイルは、複数のブリックにパーティショニングされることができ、各ブリックは、前記タイル内の一つ以上のCTU行で構成されることができる(A tile may be partitioned into multiple bricks,each of which consisting of one or more CTU rows within the tile)。また、複数のブリックにパーティショニングされないタイルはブリックと呼ばれることもできる(A tile that is not partitioned into multiple bricks may be also referred to as a brick)。ブリックスキャンは、ピクチャをパーティショニングするCTUの特定の順次的オーダリングを示すことができ、前記CTUは、ブリック内でCTUラスタースキャンで整列されることができ、タイル内のブリックは、前記タイルの前記ブリックのラスタースキャンで連続的に整列されることができ、そして、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタースキャンで連続的に整列されることができる(A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。タイルは、特定タイル列及び特定タイル列以内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。前記タイル列は、CTUの四角領域であり、前記四角領域は、前記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素により明示されることができる(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。前記タイル行は、CTUの四角領域であり、前記四角領域は、ピクチャパラメータセット内のシンタックス要素により明示される幅を有し、高さは、前記ピクチャの高さと同じである(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルスキャンは、ピクチャをパーティショニングするCTUの特定の順次的オーダリングを示すことができ、前記CTUは、タイル内のCTUラスタースキャンで連続的に整列されることができ、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタースキャンで連続的に整列されることができる(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、ピクチャの整数個のブリックを含むことができ、前記整数個のブリックは、一つのNALユニットに含まれることができる(A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit)。スライスは、複数の完全なタイルで構成されることができ、または、一つのタイルの完全なブリックの連続的なシーケンスである(A slice may consists of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile)。この文書において、タイルグループとスライスとは混用されることができる。例えば、本文書において、tile group/tile group headerは、slice/slice headerと呼ばれることができる。
【0030】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
【0031】
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち少なくとも一つを含むことができる。一つのユニットは、一つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0032】
この文書において「/」と「、」とは、「及び/または」と解釈される。例えば、「A/B」は、「A及び/またはB」と解釈され、「A、B」は、「A及び/またはB」と解釈される。追加的に、「A/B/C」は、「A、B及び/またはCのうち少なくとも一つ」を意味する。また、「A、B、C」も「A、B及び/またはCのうち少なくとも一つ」を意味する。(In this document,the term “/”and “,”should be interpreted to indicate “and/or.”For instance,the expression “A/B” may mean “A and/or B.”Further,“A,B” may mean “A and/or B.”Further,“A/B/C” may mean “at least one of A,B,and/or C.”Also,“A/B/C” may mean “at least one of A,B,and/or C.”)
【0033】
追加的に、本文書において「または」は、「及び/または」と解釈される。例えば、「AまたはB」は、1)「A」のみを意味し、または2)「B」のみを意味し、または3)「A及びB」を意味することができる。その他の表現として、本文書の「または」は、「追加的にまたは代替的に(additionally or alternatively)」を意味することができる。(Further,in the document,the term “or” should be interpreted to indicate “and/or.”For instance,the expression “A or B” may comprise 1)only A,2)only B,and/or 3)both A and B.In other words,the term “or” in this document should be interpreted to indicate “additionally or alternatively.”)
【0034】
図2は、本文書の実施例に適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置とは、映像エンコーディング装置を含むことができる。
【0035】
図2を参照すると、エンコーディング装置200は、映像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコーディング部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を含んで構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を含むことができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を含むことができる。レジデュアル処理部230は、減算部(subtractor)231をさらに含むことができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。前述した映像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250、及びフィルタリング部260は、実施例によって一つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0036】
映像分割部210は、エンコーディング装置200に入力された入力映像(または、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/またはターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/またはターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本文書によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、各々前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であり、前記変換ユニットは、変換係数を誘導する単位及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位である。
【0037】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すこともでき、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0038】
エンコーディング装置200は、入力映像信号(原本ブロック、原本サンプルアレイ)からインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力映像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する多様な情報を生成してエントロピーエンコーディング部240に伝達することができる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0039】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することもでき、または、離れて位置することもできる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用されることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用して、現在ブロックに適用される予測モードを決定することもできる。
【0040】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは、同じであってもよく、異なってもよい。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは違ってレジデュアル信号が送信されない場合がある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることによって、現在ブロックの動きベクトルを指示することができる。
【0041】
予測部220は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することもできる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似するように実行されることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0042】
前記予測部(インター予測部221及び/または前記イントラ予測部222を含む)を介して生成された予測信号は、復元信号を生成するために用いられ、またはレジデュアル信号を生成するために用いられることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうち少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない可変大きさのブロックに適用されることもできる。
【0043】
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に送信し、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような多様なエンコーディング方法を実行することができる。エントロピーエンコーディング部240は、量子化された変換係数外に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別にエンコーディングすることもできる。エンコーディングされた情報(例えば、エンコーディングされたビデオ/映像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信または格納されることができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、エンコーディング装置からデコーディング装置に伝達/シグナリングされる情報及び/またはシンタックス要素は、ビデオ/映像情報に含まれることができる。前記ビデオ/映像情報は、前述したエンコーディング手順を介してエンコーディングされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、または、デジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/または通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。エントロピーエンコーディング部240から出力された信号は、送信する送信部(図示せず)及び/または格納する格納部(図示せず)がエンコーディング装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピーエンコーディング部240に含まれることもできる。
【0044】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部155は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0045】
一方、ピクチャエンコーディング及び/または復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0046】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0047】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置100とデコーディング装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0048】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
【0049】
図3は、本文書の実施例に適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【0050】
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を含んで構成されることができる。予測部330は、インター予測部331及びイントラ予測部332を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)321を含むことができる。前述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
【0051】
ビデオ/映像情報を含むビットストリームが入力されると、デコーディング装置300は、図2のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを利用してデコーディングを実行することができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/またはターナリツリー構造にしたがって分割されることができる。コーディングユニットから一つ以上の変換ユニットが導出されることができる。そして、デコーディング装置300を介してデコーディング及び出力された復元映像信号は、再生装置を介して再生されることができる。
【0052】
デコーディング装置300は、図2のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/または前記一般制限情報にも基づいてピクチャをデコーディングすることができる。本文書で後述されるシグナリング/受信される情報及び/またはシンタックス要素は、前記デコーディング手順を介してデコーディングされ、前記ビットストリームから取得されることができる。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基づいてビットストリーム内の情報をデコーディングし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳しく、CABACエントロピーデコーディング方法は、ビットストリームで各シンタックス要素に該当するbinを受信し、デコーディング対象のシンタックス要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/binの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってbinの発生確率を予測してbinの算術デコーディング(arithmetic decoding)を実行することで、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後、次のシンボル/binの文脈モデルのためにデコーディングされたシンボル/binの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが実行されたレジデュアル値、即ち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出することができる。また、エントロピーデコーディング部310でデコーディングされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコーディング部310の構成要素であることもある。一方、本文書によるデコーディング装置は、ビデオ/映像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち少なくとも一つを含むことができる。
【0053】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコーディング装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0054】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0055】
予測部は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0056】
予測部320は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/映像情報に含まれてシグナリングされることができる。
【0057】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを利用して、現在ブロックに適用される予測モードを決定することもできる。
【0058】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0059】
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/またはイントラ予測部331を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0060】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使用されることもできる。
【0061】
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0062】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0063】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達することができる。
【0064】
本明細書において、エンコーディング装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施例は、各々、デコーディング装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
【0065】
前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同様に導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで映像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0066】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0067】
一方、前述したように、現在ブロックに対する予測を実行するにあたってイントラ予測またはインター予測を適用することができる。以下では現在ブロックにインター予測を適用する場合に関して説明する。
【0068】
エンコーディング/デコーディング装置の予測部(より具体的に、インター予測部)は、ブロック単位でインター予測を実行して予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャ(ら)のデータ要素(例:サンプル値、または動き情報等)に依存した方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロック(予測サンプルアレイ)を誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、現在ブロックの動き情報をブロック、サブブロック、またはサンプル単位で予測できる。動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測が適用される場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは、同じであってもよく、異なってもよい。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、現在ブロックの隣接ブロックに基づいて動き情報候補リストが構成されることができ、現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された隣接ブロックの動き情報と同じである。スキップモードの場合、マージモードとは違ってレジデュアル信号が送信されない場合がある。動き情報予測(motion vector prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を利用して現在ブロックの動きベクトルを導出することができる。
【0069】
前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測等)によってL0動き情報及び/またはL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれることができ、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれることができる。L0動きベクトルに基づく予測はL0予測と呼ばれることができ、L1動きベクトルに基づく予測はL1予測と呼ばれることができ、L0動きベクトル及びL1動きベクトルの両方共に基づく予測は双(Bi)予測と呼ばれることができる。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連した動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連した動きベクトルを示すことができる。参照ピクチャリストL0は、現在ピクチャより出力順序上以前ピクチャを参照ピクチャとして含むことができ、参照ピクチャリストL1は、現在ピクチャより出力順序上以後ピクチャを含むことができる。以前ピクチャは、順方向(参照)ピクチャと呼ばれることができ、以後ピクチャは、逆方向(参照)ピクチャと呼ばれることができる。参照ピクチャリストL0は、現在ピクチャより出力順序上以後ピクチャを参照ピクチャとしてさらに含むことができる。この場合、参照ピクチャリストL0内で以前ピクチャが先にインデクシングされ、以後ピクチャはその次にインデクシングされることができる。参照ピクチャリストL1は、現在ピクチャより出力順序上以前ピクチャを参照ピクチャとしてさらに含むことができる。この場合、参照ピクチャリスト1内で以後ピクチャが先にインデクシングされ、以前ピクチャはその次にインデクシングされることができる。ここで、出力順序は、POC(picture order count)順序(order)に対応されることができる。
【0070】
また、現在ブロックにインター予測を適用するにあたって、多様なインター予測モードが使われることができる。例えば、マージモード、スキップモード、MVP(motion vector prediction)モード、アフィン(Affine)モード、HMVP(historical motino vector prediction)モードなど、多様なモードが使われることができる。DMVR(Decoder side motion vector refinement)モード、AMVR(adaptive motion vector resolution)モード、Bi-directional optical flow(BDOF)などが付随的なモードとしてさらに使用されることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれることもできる。MVPモードは、AMVP(advanced motion vector prediction)モードと呼ばれることもできる。本文書において、一部モード及び/または一部モードにより導出された動き情報候補は、他のモードの動き情報関連候補のうち一つとして含まれることもできる。
【0071】
現在ブロックのインター予測モードを指す予測モード情報がエンコーディング装置からデコーディング装置にシグナリングされることができる。このとき、予測モード情報は、ビットストリームに含まれてデコーディング装置に受信されることができる。予測モード情報は、多数の候補モードのうち一つを指示するインデックス情報を含むことができる。または、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、予測モード情報は、一つ以上のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモード適用可否を指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモード適用可否を指示し、マージモードが適用されない場合にMVPモードが適用されることと指示し、または追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立的なモードでシグナリングされることもでき、またはマージモードまたはMVPモードなどに従属的なモードでシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含むことができる。
【0072】
また、現在ブロックにインター予測を適用するにあたって、現在ブロックの動き情報を利用することができる。エンコーディング装置は、動き推定(motion estimation)手順を介して現在ブロックに対する最適の動き情報を導出することができる。例えば、エンコーディング装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを利用して相関性が高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索でき、これを介して動き情報を導出することができる。ブロックの類似性は、位相(phase)基盤のサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(または、現在ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSAD(sum of absolute differences)に基づいて計算されることができる。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて多様な方法によってデコーディング装置にシグナリングされることができる。
【0073】
前記のようにインター予測モードによって導出された動き情報に基づいて現在ブロックに対する予測されたブロックを導出することができる。予測されたブロックは、現在ブロックの予測サンプル(予測サンプルアレイ)を含むことができる。現在ブロックの動きベクトル(MV)が分数サンプル単位を指す場合、補間(interpolation)手順が実行されることができ、これを介して参照ピクチャ内で分数サンプル単位の参照サンプルに基づいて現在ブロックの予測サンプルが導出されることができる。現在ブロックにアフィン(Affine)インター予測が適用される場合、サンプル/サブブロック単位MVに基づいて予測サンプルを生成することができる。双予測が適用される場合、L0予測(即ち、参照ピクチャリストL0内の参照ピクチャとMVL0を利用した予測)に基づいて導出された予測サンプルと、L1予測(即ち、参照ピクチャリストL1内の参照ピクチャとMVL1を利用した予測)に基づいて導出された予測サンプルと、の(位相による)加重和または加重平均を介して導出された予測サンプルが、現在ブロックの予測サンプルとして利用されることができる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャが、現在ピクチャを基準にして互いに異なる時間的方向に位置する場合、(即ち、双予測かつ両方向予測に該当する場合)これをtrue双予測と呼ぶことができる。
【0074】
導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成されることができ、以後インループフィルタリングなどの手順が実行されることができることは、前述した通りである。
【0075】
一方、スキップモード及び/またはマージモードは、MVD(Motion Vector Difference)無しで隣接ブロックの動きベクトルに基づいて現在ブロックの動きを予測するため、動き予測において限界を示す。スキップモード及び/またはマージモードの限界を改善するために、DMVR(Decoder-side Motion Vector Refinement)、BDOF(Bi-directional optical flow)モードなどを適用して動きベクトルをリファイン(refine)することができる。DMVR、BDOFモードは、現在ブロックにtrue双予測が適用される場合に使われることができる。
【0076】
図4は、true双予測でDMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
【0077】
DMVRは、デコーダ側で隣接ブロックの動き情報をリファイン(refinement)して動き予測を実行する方法である。DMVRが適用される場合、デコーダは、マージ(merge)/スキップ(skip)モードで隣接ブロックの動き情報を利用して生成されたテンプレート(template)に基づいてcost比較を介してリファインされた動き情報を誘導することができる。この場合、付加的なシグナリング情報無しで動き予測の精密度を高め、圧縮性能を向上させることができる。
【0078】
本文書において、説明の便宜のためにデコーディング装置を中心に説明するが、本文書の実施例に係るDMVRは、エンコーディング装置でも同じ方法で実行されることができる。
【0079】
図4を参照すると、デコーディング装置は、list0及びlist1方向の初期動きベクトル(または、動き情報)(例:MV0及びMV1)により識別される予測ブロック(即ち、参照ブロック)を導出し、導出された予測ブロックを加重和(例えば、平均)してテンプレート(または、bilateral template)を生成することができる(step1)。ここで、初期動きベクトル(MV0及びMV1)は、マージ/スキップモードで隣接ブロックの動き情報を利用して誘導された動きベクトルを示すことができる。
【0080】
そして、デコーディング装置は、テンプレートマッチング(template matching)動作を介してテンプレートと参照ピクチャのサンプル領域間の差分値を最小化する動きベクトル(例:MV0′及びMV1′)を誘導することができる(step2)。ここで、サンプル領域は、参照ピクチャ内で初期予測ブロックの隣接領域を示し、サンプル領域は、隣接領域、参照領域、探索領域、探索範囲、探索空間などで呼ばれることができる。テンプレートマッチング動作は、テンプレートと参照ピクチャのサンプル領域間のcost測定値を計算する動作を含むことができる。例えば、cost測定にはSAD(sum of absolute differences)が利用されることができる。一例として、cost関数として正規化されたSADが使われることができる。このとき、matching costは、SAD(T-mean(T)、2*P[x]-2*mean(P[x]))として与えられることができる。ここで、Tは、テンプレートを示し、P[x]は、探索領域内のブロックを示す。そして、2個の参照ピクチャの各々に対して最小テンプレートcostを算出する動きベクトルは、更新された動きベクトル(初期動きベクトルを代替する)として考慮されることができる。図4に示すように、デコーディング装置は、更新された動きベクトルMV0′及びMV1′を利用して最終両方向予測結果(即ち、最終両方向予測ブロック)を生成することができる。一実施例として、更新された(または、新しい)動きベクトル誘導のためのmulti-iterationが最終両方向予測結果取得に使われることができる。
【0081】
一実施例において、デコーディング装置は、初期動き補償予測(即ち、従来のマージ/スキップモードを介した動き補償予測)の正確度を向上させるためにDMVRプロセスを呼び出しすることができる。例えば、デコーディング装置は、現在ブロックの予測モードがマージモードまたはスキップモードであり、現在ブロックにディスプレイ順序上現在ピクチャを基準にして両方向の参照ピクチャが反対方向にある両方向双予測が適用される場合、DMVRプロセスを実行することができる。
【0082】
前述したように、現在ブロックにtrue双予測が適用される場合、双予測信号をリファインするためにBDOFが使われることができる。BDOF(Bi-directional optical flow)は、現在ブロックに双予測が適用される場合、改善された動き情報を計算し、これに基づいて予測サンプルを生成するために使われることができる。例えば、BDOFは、4×4サブブロック(sub-block)レベルで適用されることができる。即ち、BDOFは、現在ブロック内の4×4サブブロック単位で実行されることができる。または、BDOFは、ルマ成分に対してのみ適用されることができる。または、BDOFは、クロマ成分に対してのみ適用されることもでき、ルマ成分及びクロマ成分に対して適用されることもできる。
【0083】
BDOFモードは、その名称で示すように、オブジェクトの動きがsmoothと仮定するオプティカルフロー(optical flow)概念を基盤とする。4×4サブブロックの各々に対して、L0及びL1予測サンプル間の差値を最小化することによって、動きリファインメント(v、v)が計算されることができる。そして、動きリファインメントは、4×4サブブロックで双予測サンプル値を調整するために使われることができる。
【0084】
前述したDMVR及びBDOFは、true双予測を適用する場合(このとき、true双予測は、現在ブロックのピクチャを基準にして異なる方向の参照ピクチャで動き予測/補償する場合を示す)、動き情報をリファインして予測を実行する技術であって、ピクチャ内のオブジェクトの動きが一定速度、一定の方向に行われる場合を仮定しているという点で類似した概念のリファインメント技術であることを知ることができる。ただし、true双予測が実行される場合、DMVRを適用するための条件とBDOFを適用するための条件が異なるため、各技術別に繰り返して数回の条件チェックを実行する過程を経なければならない。したがって、本文書では現在ブロックに適用される予測モードを決定するにあたって、条件チェックを実行する過程を改善することによって、デコーダ複雑度及び性能面で効率を向上させることができる方法を提案する。
【0085】
以下の表1は、既存のtrue双予測時にDMVRを適用するための条件を示す。以下に羅列した条件を全て満たす時にDMVRを適用することができる。
【0086】
【表1】
【0087】
前記表1を参照すると、1)SPS(Sequence Parameter Set)シンタックスでシグナリングされるフラグ情報(例:sps_dmvr_enabled_flag)に基づいてDMVR適用可否を決定することができる。ここで、フラグ情報(例:sps_dmvr_enabled_flag)は、true双予測基盤のDMVRが可用(enable)であるかどうかを示すことができる。例えば、sps_dmvr_enabled_flagが1である場合(即ち、true双予測基盤のDMVRが可用な場合)、DMVR可用可否条件を満たすと判断できる。
【0088】
2)マージモード/スキップモードを使用してインター予測を実行するかを示すフラグ情報(例:merge_flag)に基づいてDMVR適用可否を決定することができる。例えば、merge_flagが1である場合(即ち、マージモード/スキップモードを使用してインター予測を実行する場合)、マージモード/スキップモード適用可否条件を満たすと判断できる。
【0089】
3)MMVD(merge mode with motion vector difference)モードを使用してインター予測を実行するかどうかを示すフラグ情報(例:mmvd_flag)に基づいてDMVR適用可否を決定することができる。例えば、mmvd_flagが0である場合(即ち、MMVDモードを使用しない場合)、MMVDモード適用可否条件を満たすと判断できる。
【0090】
4)両方向予測(双予測)を使用するかどうかに基づいてDMVR適用可否を決定することができる。ここで、両方向予測は、現在ピクチャを基準にして互いに異なる方向に存在する参照ピクチャに基づいて実行されるインター予測を示すことができる。例えば、predFlagL0[0][0]=1であり、predFlagL0[1][1]=1である場合、両方向予測が適用されると判断でき、両方向予測可否条件を満たすと判断できる。
【0091】
5)true双予測であり、現在ピクチャと両方向の参照ピクチャとの間の距離が相互同じかどうかに基づいてDMVR適用可否を決定することができる。即ち、現在ピクチャとLO参照ピクチャ(即ち、参照ピクチャリストL0内の参照ピクチャ)との間の距離と、現在ピクチャとL1参照ピクチャ(即ち、参照ピクチャリストL1内の参照ピクチャ)との間の距離と、が相互同じかどうかを判断することができる。例えば、DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])=0である場合、true双予測であり、現在ピクチャと両方向の参照ピクチャとの間の距離が相互同じであると判断し、両方向の参照ピクチャ距離が同じかどうかの条件を満たすと判断できる。
【0092】
6)現在ブロックの長さ(Height)が閾値(threshold)より大きいかどうかに基づいてDMVR適用可否を決定することができる。例えば、現在ブロックの長さが8以上である場合、現在ブロック大きさ(長さ)条件を満たすと判断できる。
【0093】
7)現在ブロックの大きさが閾値(threshold)より大きいかどうかに基づいてDMVR適用可否を決定することができる。例えば、現在ブロックの大きさ、即ち、長さ(Height)*幅(Width)が64以上である場合、現在ブロック大きさ(長さ*幅)条件を満たすと判断できる。
【0094】
デコーディング装置は、前記表1の条件1)乃至7)を満たすかどうかによってDMVR適用可否を決定することができる。即ち、デコーディング装置は、前記表1の条件1)乃至7)が全て満たされる場合にDMVRを適用してtrue双予測を実行することができ、前記表1の条件のうち一つでも満たされない場合にDMVRを適用しない。
【0095】
以下の表2は、既存のtrue双予測時にBDOFを適用するための条件を示す。以下に羅列した条件を全て満たす時、BDOFを適用することができる。
【0096】
【表2】
【0097】
前記表2を参照すると、1)SPS(Sequence Parameter Set)シンタックスでシグナリングされるフラグ情報(例:sps_bdof_enabled_flag)に基づいてBDOF適用可否を決定することができる。ここで、フラグ情報(例:sps_bdof_enabled_flag)は、true双予測基盤のBDOFが可用(enable)であるかどうかを示すことができる。例えば、sps_bdof_enabled_flagが1である場合(即ち、true双予測基盤のBDOFが可用な場合)、BDOF可用可否条件を満たすと判断できる。
【0098】
2)両方向予測を使用するかどうかに基づいてBDOF適用可否を決定することができる。ここで、両方向予測は、現在ピクチャを基準にして互いに異なる方向に存在する参照ピクチャに基づいて実行されるインター予測を示すことができる。例えば、predFlagL0及びpredFlagL1が全て1である場合、両方向予測が適用されると判断でき、両方向予測可否条件を満たすと判断できる。
【0099】
3)true双予測であるかどうかに基づいてBDOF適用可否を決定することができる。即ち、現在ピクチャを基準にして、LO参照ピクチャ(即ち、参照ピクチャリストL0内の参照ピクチャ)とL1参照ピクチャ(即ち、参照ピクチャリストL1内の参照ピクチャ)とが時間的に互いに異なる方向に位置するかどうかを判断することができる。例えば、DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さい場合、現在ピクチャを基準にして両方向の参照ピクチャが互いに異なる方向に位置すると判断し、true双予測可否条件を満たすと判断できる。
【0100】
4)アフィンモードが使われるかどうかに基づいてBDOF適用可否を決定することができる。ここで、アフィンモードが使われるかどうかは、MotionModelIdcを誘導することによって判断できる。例えば、誘導されたMotionModelIdcが0である場合、アフィンモードが使われないと判断でき、この場合、アフィンモード適用可否条件を満たすと判断できる。
【0101】
5)マージモードでのインター予測がサブブロック単位で実行されるかどうかを示すフラグ情報(例:merge_subblock_flag)に基づいてBDOF適用可否を決定することができる。例えば、merge_subblock_flagが0である場合(即ち、サブブロック単位でマージモードが適用されない場合)、サブブロック基盤のマージモード可否条件を満たすと判断できる。
【0102】
6)GBiが存在するかどうかに基づいてBDOF適用可否を決定することができる。ここで、GBiが存在するかどうかは、GBiインデックス情報(例:GbiIdx)に基づいて判断できる。例えば、GbiIdxが0である場合(即ち、GbiIdxがデフォルトである場合)、GBi可否条件を満たすと判断できる。
【0103】
7)現在ブロックがルマ(Luma)成分を含むルマブロックであるかどうかに基づいてBDOF適用可否を決定することができる。例えば、ルマブロックであるかを示すインデックス(例:cIdx)が0である場合(即ち、ルマブロックである場合)、ルマブロック可否条件を満たすと判断できる。
【0104】
デコーディング装置は、前記表2の条件1)乃至7)を満たすかどうかによってBDOF適用可否を決定することができる。即ち、デコーディング装置は、前記表2の条件1)乃至7)が全て満たされる場合にBDOFを適用してtrue双予測を実行することができ、前記表2の条件のうち一つでも満たされない場合にBDOFを適用しない。
【0105】
前述したように、DMVRとBDOFの適用条件が、一部は同じであり、一部は類似または異なる。既存の方式では条件が同じ場合にも各技術別に条件チェックを実行するようになるため、双予測実行のための複雑度が増加するようになる。したがって、本文書では双予測時にDMVRとBDOFを適用するための効率的な条件を提案する。
【0106】
マージ/スキップモードは、AMVPモードと比較する時、相対的に動き正確度が低いため、DMVR方法を利用して動き情報をリファインするのが性能面で効果的である。しかし、BDOFモードは、DMVRとは違ってマージ/スキップモードだけでなく、AMVPモードである時も適用しているため、このようにAMVPモードでBDOFを適用する場合、性能対比BDOF実行のための複雑度が増加できる。したがって、本実施例ではDMVRと同様にBDOFの場合もマージ/スキップモードで適用する方案を提案する。
【0107】
この場合、本文書で提案する一実施例として、BDOFの適用条件は、以下の表3に提示された条件を含むことができる。
【0108】
【表3】
【0109】
前記表3を参照すると、マージモード/スキップモードを使用してインター予測を実行するかを示すフラグ情報(例:merge_flag)に基づいてBDOF適用可否を決定することができる。例えば、merge_flagが1である場合(即ち、マージモード/スキップモードを使用してインター予測を実行する場合)、マージモード/スキップモード適用可否条件を満たすと判断できる。したがって、DMVRと同様にBDOFの場合もマージ/スキップモードである時に適用されることができる。
【0110】
即ち、本実施例では前記マージ/スキップモードである場合に適用する条件と共に、BDOFが可用な場合に適用する条件、両方向予測である場合に適用する条件、true双予測である場合に適用する条件、アフィン予測でない場合に適用する条件、サブブロック基盤のマージモードでない場合に適用する条件、GBiインデックスがデフォルトである場合に適用する条件、ルマブロックである場合に適用する条件に基づいてBDOF適用可否を判断することができる。
【0111】
したがって、デコーディング装置は、前記表3に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表3に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表3の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0112】
前記表3で羅列された条件に基づいてtrue双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0113】
一方、本実施例で羅列した条件のうち前記表1及び表2で説明した条件と同じ場合には具体的な動作や意味が同じく適用されるため、各条件に対する具体的な説明は省略する。また、後述する実施例でも重複する内容は省略する。
【0114】
エンコーディング/デコーディング装置の場合、多様なハードウェアを使用して構成されることができ、性能対比複雑度比率の選好が異なることがある。したがって、本実施例ではマージ/スキップモードだけでなく、AMVPモードでもDMVRを適用して動き情報をリファインすることができる方案を提案する。
【0115】
この場合、本文書で提案する一実施例として、DMVRの適用条件は、以下の表4に提示された条件を含むことができる。
【0116】
【表4】
【0117】
前記表4を参照すると、マージモード/スキップモードを使用してインター予測を実行するかを示すフラグ情報(例:merge_flag)に基づいてDMVR適用可否を決定する過程が省略されることができる。このように、マージモード/スキップモードの適用可否条件を省略することによって、マージモード/スキップモードである場合だけでなく、AMVPモードでもDMVRを適用することができる。
【0118】
前記表4によると、DMVRが可用な場合に適用する条件、MMVDモードが使われない場合に適用する条件、両方向予測である場合に適用する条件、現在ピクチャと両方向参照ピクチャとの距離が相互同じなtrue双予測である場合に適用する条件、現在ブロックの長さが8以上である場合に適用する条件、現在ブロックの大きさ(長さ*幅)が64以上である場合に適用する条件に基づいてDMVR適用可否を判断することができる。
【0119】
即ち、デコーディング装置は、前記表4に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表4に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表4の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0120】
前記表4で羅列された条件に基づいて、true双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0121】
一方、本文書の一実施例として、DMVR及びBDOFは、全て一般的なマージ(normal merge)モードに適用されることができる。即ち、ATMVP(advanced temporal motion vector prediction)モードでない、アフィンモードでない、CPRでない場合、DMVR及びBDOFを適用することができる。この場合、DMVRの適用条件は、以下の表5に提示された条件を含むことができる。
【0122】
【表5】
【0123】
前記表5を参照すると、アフィンモードが使われない場合に適用する条件(例:MotionModelIdcが0である場合)、サブブロック基盤のマージモードでない場合に適用する条件(例:merge_subblock_flagが0である場合)を満たすかどうかを判断することによって、一般的なマージモードである場合に限りDMVRを適用することができる。
【0124】
また、本実施例では前記アフィンモード可否条件、サブブロック基盤のマージモード可否条件と共に、DMVRが可用な場合に適用する条件、マージモード/スキップモードである場合に適用する条件、MMVDモードが使われない場合に適用する条件、両方向予測である場合に適用する条件、現在ピクチャと両方向参照ピクチャとの距離が相互同じなtrue双予測である場合に適用する条件、現在ブロックの長さが8以上である場合に適用する条件、現在ブロックの大きさ(長さ*幅)が64以上である場合に適用する条件に基づいてDMVR適用可否を判断することができる。
【0125】
即ち、デコーディング装置は、前記表5に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表5に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表5の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0126】
前記表5の適用条件のうちサブブロック基盤のマージモード適用可否条件(例:merge_subblock_flag)は、既存のDMVR適用条件のうち重複する条件を含んでいる。したがって、本文書の一実施例として、サブブロック基盤のマージモード適用可否条件(例:merge_subblock_flag)と重複する条件を除去することができる。この場合、以下の表6に提案されたように該当条件が除去されることができる。
【0127】
【表6】
【0128】
前記表6を参照すると、サブブロック基盤のマージモードは、現在ブロックの大きさが8×8以上である場合に適用されることができる。したがって、サブブロック基盤のマージモード適用可否条件(例:merge_subblock_flag=0)は、現在ブロックの大きさと関連した条件を含んでいるため、既存のDMVRの適用条件の中から現在ブロックの大きさと関連した条件(例:CbHeight、CbHeight*CbWidth)を除外させることができる。例えば、現在ブロックの長さが8以上であるかどうかの条件、現在ブロックの長さ*幅が64以上であるかどうかの条件は省略し、前記表6に羅列されたその他の条件を利用してDMVR適用可否を判断することができる。
【0129】
即ち、デコーディング装置は、前記表6に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表6に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表6の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0130】
前記表5または前記表6で羅列された条件に基づいて、true双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0131】
本文書の一実施例として、低複雑度で動きベクトルの正確度を高めるために、ブロックの大きさが小さい場合には、DMVR及びBDOFのようなリファイン技術を適用しない。既存の方式では現在ブロックが8×8より大きいまたは同じブロックである場合にリファイン技術を適用しており、このうち、DMVRの場合、現在ブロックの大きさが大きい時、16×16単位で分けてリファインを適用するため、16×16より小さいブロックに対してはDMVRを適用しない。この場合、DMVRの適用条件は、以下の表7に提示された条件を含むことができる。
【0132】
【表7】
【0133】
前記表7を参照すると、現在ブロックの大きさと関連した条件(例:CbHeight、CbWidth)を変更することによって、16×16より小さいブロックに対してDMVRを適用しないようにすることができる。例えば、現在ブロックの長さ(例:CbHeight)が16以上である場合に適用する条件と、現在ブロックの幅(例:CbWidth)が16以上である場合に適用する条件と、を使用することができる。このような現在ブロックの大きさと関連した適用条件を満たす場合(即ち、現在ブロックの大きさが16×16以上である場合)にDMVRを適用し、前記のような現在ブロックの大きさと関連した適用条件を満たさない場合(即ち、現在ブロックの大きさが16×16より小さい場合)にDMVRを適用しない。
【0134】
また、本実施例では現在ブロックの大きさと関連した条件(例:CbHeight、CbWidth)と共に、前記表7で羅列された残りの適用条件に基づいてDMVR適用可否を判断することができる。
【0135】
即ち、デコーディング装置は、前記表7に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表7に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表7の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0136】
本文書の一実施例として、現在ブロックが16×16より小さいブロックである場合、DMVRだけでなく、BDOFを適用しない。この場合、BDOFの適用条件は、以下の表8に提示された条件を含むことができる。
【0137】
【表8】
【0138】
前記表8を参照すると、現在ブロックの大きさと関連した条件(例:CbHeight、CbWidth)を変更することによって、16×16より小さいブロックに対してBDOFを適用しないようにすることができる。例えば、現在ブロックの長さ(例:CbHeight)が16以上である場合に適用する条件と、現在ブロックの幅(例:CbWidth)が16以上である場合に適用する条件と、を使用することができる。このような現在ブロックの大きさと関連した適用条件を満たす場合(即ち、現在ブロックの大きさが16×16以上である場合)にBDOFを適用し、前記のような現在ブロックの大きさと関連した適用条件を満たさない場合(即ち、現在ブロックの大きさが16×16より小さい場合)にBDOFを適用しない。
【0139】
また、本実施例では現在ブロックの大きさと関連した条件(例:CbHeight、CbWidth)と共に、前記表8で羅列された残りの適用条件に基づいてBDOF適用可否を判断することができる。
【0140】
即ち、デコーディング装置は、前記表8に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表8に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表8の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0141】
前記表7または前記表8で羅列された条件に基づいて、true双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0142】
前述したように、DMVRは、現在ピクチャと両方向の参照ピクチャとの間の距離が相互同じな場合に適用し、それに対して、BDOFは、現在ピクチャと両方向の参照ピクチャとの間の距離が異なってもtrue双予測である場合に常に適用される。したがって、本文書ではコーディング効率を上げるために、前記両方向の参照ピクチャ距離と関連した条件をDMVR及びBDOFに統一して適用できる方案を提案する。
【0143】
本文書の一実施例として、BDOFの適用条件は、以下の表9に提示された条件を含むことができる。
【0144】
【表9】
【0145】
前記表9を参照すると、BDOFの適用条件のうち参照ピクチャ距離と関連した条件(例:DiffPicOrderCnt)を変更することによって、DMVRとBDOFに該当条件を同じく適用できる。例えば、DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])が0であるかどうかを判断することによって、現在ピクチャとLO参照ピクチャ(即ち、参照ピクチャリストL0内の参照ピクチャ)との間の距離と、現在ピクチャとL1参照ピクチャ(即ち、参照ピクチャリストL1内の参照ピクチャ)との間の距離と、が相互同じかどうかを決定することができる。即ち、現在ピクチャと両方向の参照ピクチャとの間の距離が相互同じな場合に限りBDOFを適用することができる。このように、true双予測であり、かつ両方向の参照ピクチャ距離が同じな条件が追加されるに応じて、BDOF適用範囲が制限されるため、デコーディング複雑度を節減することができる。
【0146】
また、本実施例では参照ピクチャ距離と関連した条件(例:DiffPicOrderCnt)と共に、前記表9で羅列された残りの適用条件に基づいてBDOF適用可否を判断することができる。
【0147】
即ち、デコーディング装置は、前記表9に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表9に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表9の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0148】
本文書の一実施例として、DMVRの適用条件は、以下の表10に提示された条件を含むことができる。
【0149】
【表10】
【0150】
前記表10を参照すると、DMVRの適用条件のうち参照ピクチャ距離と関連した条件(例:DiffPicOrderCnt)を変更することによって、DMVRとBDOFに該当条件を同じく適用できる。例えば、DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さいかどうかを判断することによって、現在ピクチャを基準にして両方向の参照ピクチャ(即ち、LO参照ピクチャ及びL1参照ピクチャ)が互いに異なる方向に位置するtrue双予測であるかを決定することができる。即ち、現在ピクチャと両方向の参照ピクチャとの間の距離が同じでなくても、true双予測である場合には常にDMVRを適用することができる。このように、true双予測可否条件が適用されるに応じて両方向の参照ピクチャ距離が異なる場合にもデコーディング複雑度を考慮して誘導された動きベクトルは、スケーリング(scaling)せずに使用することができる。
【0151】
また、本実施例では参照ピクチャ距離と関連した条件(例:DiffPicOrderCnt)と共に、前記表10で羅列された残りの適用条件に基づいてDMVR適用可否を判断することができる。
【0152】
即ち、デコーディング装置は、前記表10に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表10に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表10の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0153】
前記表9または前記表10で羅列された条件に基づいてtrue双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0154】
一方、各参照ブロックは、光の変化などにより加重和(weighted sum)で動き補償をする場合が発生できる。このとき、GBiやLIC(local illumination compensation)でその現象を把握することができるため、GBiやLIC条件を考慮してDMVRとBDOFの適用条件を定めることができる。
【0155】
本文書の一実施例として、GBi及びLIC条件を考慮してDMVRの適用可否を決定する方案を提案する。この場合、DMVRの適用条件は、以下の表11に提示された条件を含むことができる。
【0156】
【表11】
【0157】
前記表11を参照すると、GBi条件(例:GbiIdx)及びLIC条件(例:LICFlag)を追加してDMVRの適用可否を決定することができる。ここで、GBiは、L0予測及びL1予測に異なる加重値(weight)を適用することができる一般的な双予測(generalized bi-prediction)を示すことができ、例えば、GbiIdxを使用して示すことができる。GbiIdxは、双予測である場合に存在でき、双予測加重値インデックス(bi-prediction weight index)を示すことができる。例えば、GbiIdxは、マージモードの場合、隣接ブロックから導出されることができ、または、MVPモードの場合、GbiIdxシンタックス要素(例:gbi_idx)を介してエンコーディング装置からデコーディング装置にシグナリングされることができる。一例として、GbiIdxは、L1予測に適用される加重値wを指示することができ、この場合、L0予測には(1-w)の加重値が適用されることができる。他の例として、GbiIdxは、L0予測に適用される加重値wを指示することができ、この場合、L1予測には(1-w)の加重値が適用されることができる。
【0158】
前記表11によると、GbiIdxが0である場合(即ち、GbiIdxがデフォルトである場合)、GBi可否条件を満たすと定め、LICFlagが0である場合(即ち、LICが存在する場合)、LIC可否条件を満たすと定めることができる。
【0159】
また、本実施例ではGBi条件(例:GbiIdx)及びLIC条件(例:LICFlag)と共に、前記表11に羅列された残りの適用条件に基づいてDMVR適用可否を判断することができる。
【0160】
即ち、デコーディング装置は、前記表11に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表11に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表11の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0161】
本文書の一実施例として、GBi及びLIC条件を考慮してBDOFの適用可否を決定する方案を提案する。この場合、BDOFの適用条件は、以下の表12に提示された条件を含むことができる。
【0162】
【表12】
【0163】
前記表12によると、既存のGBi条件(例:GbiIdx)と共にLIC条件(例:LICFlag)を追加してBDOFの適用可否を決定することができる。例えば、GbiIdxが0である場合(即ち、GbiIdxがデフォルトである場合)、GBi可否条件を満たすと定め、LICFlagが0である場合(即ち、LICが存在する場合)、LIC可否条件を満たすと定めることができる。
【0164】
したがって、本実施例ではGBi条件(例:GbiIdx)及びLIC条件(例:LICFlag)と共に、前記表12に羅列された残りの適用条件に基づいてBDOF適用可否を判断することができる。
【0165】
即ち、デコーディング装置は、前記表12に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表12に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表12の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0166】
前記表11または前記表12で羅列された条件に基づいてtrue双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0167】
一方、DMVRとBDOFは、デコーディング装置でリファインメント過程を介して動き情報を誘導するため、デコーディング複雑度の問題が発生する。したがって、本文書ではマージインデックスを使用してDMVR及びBDOFの適用可否を決定することができるようにすることで、デコーディング複雑度を減らすことができる方法を提案する。このとき、DMVRとBDOFは、全て制限的な範囲内で動きベクトルのリファインを実行するため、動きベクトルが不正確な場合、ラファインの効果が減ることができる。したがって、本文書ではリファインの効率を考慮してマージインデックスが示す値が小さい場合にのみ、制限的に適用できる方案を提案する。
【0168】
ここで、マージインデックスは、エンコーディング装置からデコーディング装置にシグナリングされるシンタックス要素である。例えば、エンコーディング/デコーディング装置は、現在ブロックにマージモード/スキップモードが適用される場合、現在ブロックの隣接ブロックに基づいてマージ候補リストを構成することができる。このとき、エンコーディング装置は、RD(rate-distortion)costに基づいて、マージ候補リストに含まれているマージ候補の中から最適のマージ候補を選択し、選択されたマージ候補を指すマージインデックス情報をデコーディング装置にシグナリングできる。デコーディング装置は、マージ候補リスト及びマージインデックス情報に基づいて現在ブロックに適用されるマージ候補を選択することができる。
【0169】
本文書の一実施例として、マージインデックスを使用してDMVRの適用可否を決定する方法は、以下の表13に提示された条件を含むことができる。
【0170】
【表13】
【0171】
前記表13を参照すると、マージインデックス条件(例:merge_idx)を追加してDMVRの適用可否を決定することができる。例えば、マージインデックス(例:merge_idx)が2より小さい場合、マージインデックス条件を満たすと定めることができる。ここで、マージインデックスの値(threshold)を2に設定したが、これは一つの例示に過ぎず、コーディング効率によって該当値は変更されることができる。
【0172】
したがって、本実施例ではマージインデックス条件(例:merge_idx)と共に、前記表13に羅列された残りの適用条件に基づいてDMVR適用可否を判断することができる。
【0173】
即ち、デコーディング装置は、前記表13に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表13に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表13の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0174】
本文書の一実施例として、マージインデックスを使用してBDOFの適用可否を決定する方法は、以下の表14に提示された条件を含むことができる。
【0175】
【表14】
【0176】
前記表14を参照すると、マージモード/スキップモード可否条件(例:merge_flag)とマージインデックス条件(例:merge_idx)を追加してBDOFの適用可否を決定することができる。例えば、merge_flagが1であり(即ち、マージモード/スキップモードを使用してインター予測を実行する場合)、merge_idxが2以上である場合に該当しない場合、マージインデックスの値が小さい場合にのみ、制限的にBDOFを適用する条件を満たすと定めることができる。即ち、merge_flagが1であり(即ち、マージモード/スキップモードを使用してインター予測を実行する場合)、merge_idxが2より小さい場合、マージインデックス条件を満たすと判断してBDOFを適用することができる。ここで、マージインデックスの値(threshold)を2に設定したが、これは一つの例示に過ぎず、コーディング効率によって該当値は変更されることができる。
【0177】
即ち、本実施例ではマージモード/スキップモード可否条件(例:merge_flag)、マージインデックス条件(例:merge_idx)と共に、前記表14に羅列された残りの適用条件に基づいてBDOFの適用可否を判断することができる。
【0178】
即ち、デコーディング装置は、前記表14に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表14に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表14の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0179】
前記表13または前記表14で羅列された条件に基づいて、true双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0180】
一方、マージ/スキップモードでMMVDを介して動き情報をリファインすることができ、この場合、デコーダ複雑度が増加するため、MMVDが適用される時、DMVRを実行しないようにしている。しかし、MMVDを考慮せずに適用される場合、性能向上を考慮してMMVD条件がなくてもDMVRを適用することができる。この場合、本文書の一実施例によると、DMVRの適用条件は、以下の表15に提示された条件を含むことができる。
【0181】
【表15】
【0182】
前記表15を参照すると、既存のDMVRの適用条件の中からMMVDモード適用可否条件(例:mmvd_flag)を除外させることができる。即ち、mmvd_flagが0である場合(即ち、MMVDモードを使用しない場合)であるかどうかを判断する過程を省略し、前記表15に羅列された条件に基づいてDMVRの適用可否を判断することができる。
【0183】
即ち、デコーディング装置は、(MMVDモード適用可否条件(例:mmvd_flag)を除外した)前記表15に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にDMVRを適用してtrue双予測を実行することができる。もし、前記表15に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、DMVRを適用しない。このような前記表15の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0184】
また、前述した表15の実施例と逆に、マージ/スキップモードでMMVDを介して動き情報をリファインする時、デコーダ複雑度を考慮してBDOFの実行可否を決定することができる。したがって、本文書ではMMVD条件を考慮してBDOFの適用可否を決定する方法を提案する。この場合、本文書の一実施例によると、BDOFの適用条件は、以下の表16に提示された条件を含むことができる。
【0185】
【表16】
【0186】
前記表16を参照すると、MMVDモード適用可否条件(例:mmvd_flag)を追加することによって、MMVDを介して動き情報をリファインする場合にBDOFを適用しない。例えば、mmvd_flagが0である場合(即ち、MMVDモードを使用しない場合)、MMVDモード適用可否条件を満たすと判断できる。
【0187】
したがって、本実施例ではMMVDモード適用可否条件(例:mmvd_flag)と共に、前記表16に羅列された残りの適用条件に基づいてBDOF適用可否を判断することができる。
【0188】
即ち、デコーディング装置は、前記表16に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表16に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表16の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0189】
前記表15または前記表16で羅列された条件に基づいてtrue双予測を実行する方法は、DMVR及びBDOFに独立的に適用されることもでき、または、DMVR及びBDOFのための同一条件に適用されることもできる。
【0190】
一方、AMVPモードである時、AMVR(Adaptive Motion Vector Resolution)技術が適用されることができる。このとき、動きベクトルの解像度(resolution)が大きい場合、即ち、整数サンプル単位ラウンディング(integer-pel rounding)、4サンプル単位ラウンディング(4 integer-pel rounding)を有する場合、制限された領域内でリファインを実行するBDOFの場合、このような技術を適用するのが適合しない。したがって、本文書ではAMVR条件によってBDOFの実行を決定することができる方案を提案する。この場合、本文書の一実施例によると、BDOFの適用条件は、以下の表17に提示された条件を含むことができる。
【0191】
【表17】
【0192】
前記表17を参照すると、AMVR条件(例:amvr_flag)を追加してBDOFの適用可否を決定することができる。ここで、amvr_flagは、動きベクトル差(MVD)の解像度を示す情報である。例えば、amvr_flagが0である場合、MVDの解像度が1/4サンプル(quarter-luma-sample)単位で誘導されることを示し、amvr_flagが0でない場合、整数サンプル(integer-luma-sample)単位または4サンプル(four-luma-sample)単位で誘導されることを示すことができる。または、その反対の場合に定められることもできる。実施例によって、前記表17に提示されたように、amvr_flagが0でない場合、BDOFが適用されることと条件を設定することができる。即ち、amvr_flagが0である場合、BDOFが適用されないように制限できる。
【0193】
したがって、本実施例ではAMVR条件(例:amvr_flag)と共に、前記表17に羅列されたその他の条件に基づいてBDOFの適用可否を判断することができる。
【0194】
即ち、デコーディング装置は、前記表17に羅列された全ての条件が満たされるかどうかを決定し、全ての条件が満たされる場合にBDOFを適用してtrue双予測を実行することができる。もし、前記表17に羅列された条件のうち一つでも満たされない場合、デコーディング装置は、BDOFを適用しない。このような前記表17の条件は、エンコーディング装置でも適用されることができ、エンコーディング装置ではデコーディング装置と対応される方法で実行されることができる。
【0195】
一方、前述したようなDMVRとBDOFは、SPS(Sequence Parameter Set)シンタックスで各々シグナリングされることができる。以下の表18は、SPSシンタックスを介してシグナリングされるDMVRが可用であるかどうかとBDOFが可用であるかどうかを示すシンタックス要素の一例を示す。
【0196】
【表18】
【0197】
前記表18を参照すると、SPSシンタックスでsps_dmvr_enabled_flagをシグナリングすることができ、このシンタックス要素に基づいてtrue双予測基盤のDMVRが可用(enable)であるかどうかを示すことができる。例えば、sps_dmvr_enabled_flagが1である場合、true双予測基盤のDMVRが可用であることを示し、sps_dmvr_enabled_flagが0である場合、true双予測基盤のDMVRが可用でないことを示すことができる。
【0198】
また、SPSシンタックスでsps_bdof_enabled_flagをシグナリングすることができ、このシンタックス要素に基づいてtrue双予測基盤のBDOFが可用(enable)であるかどうかを示すことができる。例えば、sps_bdof_enabled_flagが1である場合、true双予測基盤のBDOFが可用であることを示し、sps_bdof_enabled_flagが0である場合、true双予測基盤のBDOFが可用でないことを示すことができる。
【0199】
前記表18のように、DMVRの可用可否を示すシンタックス要素(例:sps_dmvr_enabled_flag)と、BDOFの可用可否を示すシンタックス要素(例:sps_bdof_enabled_flag)と、を利用してDMVR及びBDOFの適用条件をチェックすることができる。
【0200】
図5は、DMVR及びBDOFの適用条件をチェックしてデコーディング過程を実行する方法を示す一例である。
【0201】
図5の方法は、前記表18のように、DMVRの可用可否を示すシンタックス要素(例:sps_dmvr_enabled_flag)とBDOFの可用可否を示すシンタックス要素(例:sps_bdof_enabled_flag)とを利用する場合に適用されることができる。
【0202】
図5を参照すると、デコーディング装置は、現在ブロックに対する動き情報(例:動きベクトル、参照ピクチャインデックス等)を誘導することができる(S500)。
【0203】
デコーディング装置は、DMVRの適用条件をチェックすることができる(S510)。このとき。DMVRの可用可否を示すシンタックス要素(例:sps_dmvr_enabled_flag)に基づいてDMVRの適用条件をチェックすることができる。例えば、DMVRが可用な場合(例えば、sps_dmvr_enabled_flagが1である場合)にDMVRの適用条件をチェックすることができる。
【0204】
デコーディング装置は、DMVRの適用条件を満たすかどうかによってDMVR過程を適用するかどうかを判断することができる(S520)。
【0205】
DMVRの適用条件を全て満たす場合、デコーディング装置は、DMVR過程を適用してリファインされた動き情報を導出することができる(S530)。DMVRの適用条件のうち一つ以上満たさない場合、デコーディング装置は、DMVR過程を適用しない。
【0206】
デコーディング装置は、DMVRを適用した場合に導出されたリファインされた動き情報またはDMVRを適用しない場合に導出された(リファインされない)動き情報に基づいて現在ブロックの予測サンプルを誘導することができる(S540)。
【0207】
そして、デコーディング装置は、BDOFの適用条件をチェックすることができる(S550)。このとき、BDOFの可用可否を示すシンタックス要素(例:sps_bdof_enabled_flag)に基づいてBDOFの適用条件をチェックすることができる。例えば、BDOFが可用な場合(例えば、sps_bdof_enabled_flagが1である場合)にBDOFの適用条件をチェックすることができる。
【0208】
BDOFの適用条件を全て満たす場合、デコーディング装置は、BDOF過程を適用して予測サンプルに対してリファインを実行することができる(S570)。BDOFの適用条件のうち一つ以上満たさない場合、デコーディング装置は、BDOF過程を適用しない。
【0209】
デコーディング装置は、現在ブロックに対するレジデュアルサンプルを誘導し(S580)、前記レジデュアルサンプルと前記BDOFを適用した場合に導出されたリファインされた予測サンプルまたはBDOFを適用しない場合に導出された(リファインされない)予測サンプルに基づいて復元されたサンプルを誘導することができる(S590)。
【0210】
本文書では前述したようにDMVRとBDOFを適用するにあたって、相互間の適用条件を一致(harmonization)させてコーディング効率を向上させて複雑度を減少させることができる多様な実施例を提案した。このような本文書の実施例によるDMVRとBDOFの適用条件をチェックしてデコーディング過程に適用するにあたって、各々の条件を別にチェックして適用することもできるが、コーディング効率を向上させるために一度に適用条件をチェックすることもできる。即ち、本文書ではDMVRとBDOFの適用条件を一度に統合してチェックできる方案を提案する。
【0211】
本文書の一実施例として、SPS(Sequence Parameter Set)シンタックスでデコーディング装置でのリファイン適用可否を示す情報(例:sps_refinement_enabled_flag)をシグナリングすることで、DMVR/BDOFの適用条件チェック過程を実行することができる。以下の表19は、SPSシンタックスを介してシグナリングされるデコーディング装置でのリファイン適用可否を示すシンタックス要素(例:sps_refinement_enabled_flag)の一例を示す。
【0212】
【表19】
【0213】
前記表19を参照すると、SPSシンタックスでsps_refinement_enabled_flagをシグナリングすることができ、このシンタックス要素に基づいてデコーディング装置でのリファイン適用が可能かどうかを示すことができる。例えば、sps_refinement_enabled_flagが存在する時(即ち、sps_refinement_enabled_flagがtrueである場合)、デコーディング装置でのリファイン適用が可能であると判断されることができる。この場合、デコーディング装置は、DMVRが可用(enable)であるかどうかを示すsps_dmvr_enabled_flagシンタックス要素及びBDOFが可用(enable)であるかどうかを示すsps_bdof_enabled_flagシンタックス要素を取得し、DMVRとBDOFの適用条件を判断することができる。
【0214】
図6及び図7は、DMVR及びBDOFの適用条件をチェックしてデコーディング過程を実行する方法を示す他の例である。
【0215】
図6の方法及び図7の方法は、前記表19のように、デコーディング装置でのリファイン適用が可能かどうかを示すシンタックス要素(例:sps_refinement_enabled_flag)を利用する場合に適用されることができる。また、図6及び図7は、前述した図5と重複する内容に関しては説明を省略する。
【0216】
図6を参照すると、前記図5の過程と比較してDMVR及びBDOFの適用条件を各々チェックせずに、前ステップで一度にチェックすることを知ることができる。一実施例として、図6のステップS610において、デコーディング装置は、リファイン適用条件をチェックすることができる。このとき、リファイン適用条件チェックは、前記表19のようにsps_refinement_enabled_flagに基づいて実行されることができる。例えば、sps_refinement_enabled_flagが1である場合、DMVRが可用(enable)であるかどうかを示すsps_dmvr_enabled_flagシンタックス要素またはBDOFが可用(enable)であるかどうかを示すsps_bdof_enabled_flagシンタックス要素を取得し、これに基づいてDMVR及びBDOFの適用条件をチェックすることができる。
【0217】
また、図7を参照すると、前記図5の過程と比較してDMVR及びBDOFの適用条件を各々チェックせずに、前ステップで一度にチェックし、異なる条件に対しては簡単なチェック過程(BDOFの適用条件)を実行することができる。一実施例として、図7のステップS710において、デコーディング装置は、リファイン適用条件をチェックすることができる。以後、図7のステップS750において、デコーディング装置は、前記リファイン適用条件と異なる条件を有するBDOFの適用条件に対して追加的に簡単にチェックを実行することができる。
【0218】
前述した本文書の実施例に係る表3乃至表17で羅列された方法は、組み合わせて適用されることができる。即ち、リファイン適用条件をチェックすることによってDMVR及びBDOFの適用可否を判断することができ、以下の表20のような条件を適用することができる。
【0219】
【表20】
【0220】
前記表20を参照すると、DMVRまたはBDOFが適用される時、両方向予測である場合に適用する条件、現在ピクチャと両方向参照ピクチャとの距離が相互同じなtrue双予測である場合に適用する条件、MMVDモードが使われない場合に適用する条件、アフィン予測でない場合に適用する条件、サブブロック基盤のマージモードでない場合に適用する条件、GBiインデックスがデフォルトである場合に適用する条件を利用することができる。即ち、前記条件を満たすかどうかによってDMVRまたはBDOFの適用可否を判断することができる。
【0221】
また、前述したように、DMVRのためにマージモードであるかどうかを判断し、または、BDOFのためにルマブロックであるかどうかを判断する等の条件が追加されることもできる。
【0222】
前記表20で羅列された適用条件は、一つの例示に過ぎず、前述した実施例(前記表3乃至表17の実施例)で羅列した多様な条件を組み合わせて使われることができることは自明である。
【0223】
図8は、本文書の一実施例によってエンコーディング装置により実行されることができるエンコーディング方法を概略的に示す流れ図である。
【0224】
図8に開示された方法は、図2で開示されたエンコーディング装置200により実行されることができる。具体的に、図8のステップS800~S830は、図2に開示された予測部220及びインター予測部221により実行されることができ、図8のステップS840~S850は、図2に開示されたレジデュアル処理部230により実行されることができ、図8のステップS860は、図2に開示されたエントロピーエンコーディング部240により実行されることができる。また、図8で開示された方法は、本文書で詳述した実施例を含むことができる。したがって、図8では詳述した実施例と重複する内容に関して具体的な説明を省略または簡単にする。
【0225】
図8を参照すると、エンコーディング装置は、現在ブロックの動きベクトルを導出することができる(S800)。
【0226】
一実施例として、現在ブロックに対してインター予測を実行する場合、エンコーディング装置は、現在ブロックの動き情報(動きベクトル、参照ピクチャインデックス等)を導出することができる。例えば、エンコーディング装置は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチ領域)内で現在ブロックと類似したブロックをサーチし、現在ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。これに基づいて参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、参照ブロックと現在ブロックの位置差に基づいて動きベクトルを導出することができる。
【0227】
また、エンコーディング装置は、多様な予測モードのうち現在ブロックに対して適用されるインター予測モードを決定することができる。エンコーディング装置は、多様な予測モードに対するRD costを比較して現在ブロックに対する最適の予測モードを決定することができる。
【0228】
例えば、エンコーディング装置は、現在ブロックにスキップモードまたはマージモードが適用される場合、マージ候補リストを構成することができる。このとき、マージ候補リストに含まれているマージ候補が指す参照ブロックのうち現在ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。この場合、導出された参照ブロックと関連したマージ候補が選択され、選択されたマージ候補を指すマージインデックス情報が生成されてデコーディング装置にシグナリングされることができる。選択されたマージ候補の動き情報を利用して現在ブロックの動き情報が導出されることができる。
【0229】
他の例として、エンコーディング装置は、現在ブロックに(A)MVPモードが適用される場合、(A)MVP候補リストを構成し、(A)MVP候補リストに含まれているmvp(motion vector predictor)候補の中から選択されたmvp候補の動きベクトルを現在ブロックのmvpとして利用できる。例えば、前述した動き推定により導出された参照ブロックを指す動きベクトルが、現在ブロックの動きベクトルとして利用されることができ、このとき、動き推定により導出された現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が、前記mvp候補の中から選択されることができる。そして、エンコーディング装置は、現在ブロックの動きベクトルから前記選択されたmvp候補の動きベクトルを引いた差分であるMVD(motion vector difference)を導出することができる。この場合、前記MVDに関する情報がデコーディング装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて別途にデコーディング装置にシグナリングされることができる。
【0230】
エンコーディング装置は、現在ブロックの動きベクトルに対してリファインメント(refinement)を適用するかどうかを決定することができる(S810)。
【0231】
即ち、エンコーディング装置は、コーディング効率、複雑度、予測性能などを考慮してリファインメントを適用するかどうかを判断することができる。このとき、エンコーディング装置は、前記表1乃至表20で説明した多様な適用条件を利用して現在ブロックに対してリファインメントを適用するかどうかを判断することができる。
【0232】
一実施例として、エンコーディング装置は、現在ブロックの大きさ、または現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいてリファインメント適用可否を決定することができる。例えば、現在ブロックの大きさが16×16以上である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。また、現在ブロックの双予測加重値インデックス情報の値が0である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0233】
ここで、双予測加重値インデックス情報は、前述したGbiIdxを示す。これはL0予測及びL1予測に異なる加重値(weight)を適用することができる一般的な双予測(generalized bi-prediction)で、L0予測及びL1予測に適用される加重値ファクタ(weight factor)を指示する情報として使われることができる。例えば、現在ブロックにマージモードが適用される場合、現在ブロックの双予測加重値インデックス情報は、現在ブロックの隣接ブロックのうちマージインデックスにより指示される隣接ブロックの双予測加重値インデックス情報と同じである。
【0234】
また、エンコーディング装置は、ビットストリームに含まれるDMVRが可用であるか(enable)どうかを示すDMVR可用フラグ情報(例:sps_dmvr_enabled_flag)、現在ブロックにマージモードが適用されるかどうかを示すマージフラグ情報(例:merge_flag)、または現在ブロックにMMVD(merge mode with motion vector difference)が適用されるかどうかを示すMMVDフラグ情報(例:mmvd_flag)のうち少なくとも一つに基づいてDMVR基盤のリファインメント適用可否を決定することができる。例えば、エンコーディング装置は、DMVR可用フラグ情報の値が1である場合、マージフラグ情報の値が1である場合、またはMMVDフラグ情報の値が0である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0235】
また、エンコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、または、現在ピクチャとL0参照ピクチャとの間の距離と、現在ピクチャとL1参照ピクチャとの間の距離と、が同じかどうかに基づいて現在ブロックの動きベクトルに対してDMVRを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0[0][0]=1であり、predFlagL0[1][1]=1である場合)、または、現在ピクチャを基準にしてL0参照ピクチャとの距離とL1参照ピクチャとの距離とが相互同じな場合(例:DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])=0である場合)、エンコーディング装置は、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0236】
また、他の例として、エンコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置するかどうか、または前記現在ブロックにアフィンモードが適用されるかどうかに基づいて現在ブロックの動きベクトルに対してDMVRを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0=1であり、predFlagL1=1である場合)、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置する場合(例:DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さい場合)、または、現在ブロックにアフィンモードが適用されない場合(例:MotionModelIdc=0である場合)、エンコーディング装置は、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0237】
ここで、DMVR基盤のリファインメントを適用するかどうかを決定するにあたって、前記羅列された条件は、一つの例示に過ぎず、前述した表1乃至表20の条件を多様に組み合わせて使われることができる。
【0238】
エンコーディング装置は、現在ブロックの動きベクトルに対してリファインメントを適用することに決定した場合、動きベクトルにDMVRを適用してリファインされた動きベクトルを導出することができる(S820)。
【0239】
このとき、エンコーディング装置は、前述した図4のDMVR過程を適用することができる。DMVRを適用してリファインされた動きベクトルを導出する過程は、図4で詳細に説明したため、ここでは説明を省略する。
【0240】
エンコーディング装置は、リファインされた動きベクトルに基づいて現在ブロックに対する予測サンプルを導出することができる(S830)。
【0241】
実施例によって、エンコーディング装置は、現在ブロックの予測サンプルに対してリファインメントを適用することができる。この場合、エンコーディング装置は、コーディング効率、複雑度、予測性能などを考慮して予測サンプルにBDOF基盤のリファインメントを適用することができる。
【0242】
一実施例として、エンコーディング装置は、現在ブロックの大きさ、または現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいて、予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、現在ブロックの大きさが16×16以上である場合、予測サンプルにBDOFを適用することに決定できる。また、現在ブロックの双予測加重値インデックス情報の値が0である場合、予測サンプルにBDOFを適用することに決定できる。
【0243】
また、エンコーディング装置は、ビットストリームに含まれるBDOFが可用であるか(enable)どうかを示すBDOF可用フラグ情報(例:sps_bdof_enabled_flag)、または現在ブロックにサブブロック基盤のマージモードが適用されるかどうかを示すサブブロック基盤のマージフラグ情報(例:merge_subblock_flag)に基づいてBDOF基盤のリファインメント適用可否を決定することができる。例えば、エンコーディング装置は、BDOF可用フラグ情報の値が1である場合、または、サブブロック基盤のマージフラグ情報の値が0である場合、予測サンプルに対してBDOFを適用することに決定できる。
【0244】
また、エンコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置するかどうか、または現在ブロックにアフィンモードが適用されるかどうかに基づいて予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0=1であり、predFlagL1=1である場合)、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置する場合(例:DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さい場合)、または、現在ブロックにアフィンモードが適用されない場合(例:MotionModelIdc=0である場合)、エンコーディング装置は、予測サンプルに対してBDOFを適用することに決定できる。
【0245】
また、他の例として、エンコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、または、現在ピクチャとL0参照ピクチャとの間の距離と、現在ピクチャとL1参照ピクチャとの間の距離と、が同じかどうかに基づいて予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0[0][0]=1であり、predFlagL0[1][1]=1である場合)、または、現在ピクチャを基準にしてL0参照ピクチャとの距離とL1参照ピクチャとの距離とが相互同じな場合(例:DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])=0である場合)、エンコーディング装置は、予測サンプルに対してBDOFを適用することに決定できる。
【0246】
ここで、BDOF基盤のリファインメントを適用するかどうかを決定するにあたって、前記羅列された条件は、一つの例示に過ぎず、前述した表1乃至表20の条件を多様に組み合わせて使われることができる。
【0247】
エンコーディング装置は、予測サンプルに対してBDOFを適用することに決定した場合、予測サンプルにBDOFを適用してリファインされた予測サンプルを導出することができる。
【0248】
エンコーディング装置は、予測サンプルに基づいてレジデュアルサンプルを導出し(S840)、レジデュアルサンプルに基づいてレジデュアル情報を生成することができる(S850)。
【0249】
即ち、エンコーディング装置は、現在ブロックに対する原本サンプルと現在ブロックの予測サンプルに基づいて、レジデュアルサンプルを導出することができる。そして、エンコーディング装置は、レジデュアルサンプルに対する情報を生成することができる。
【0250】
エンコーディング装置は、レジデュアル情報を含む映像情報をエンコーディングすることができる(S860)。
【0251】
即ち、エンコーディング装置は、レジデュアルサンプルに対する情報をエンコーディングしてビットストリームに出力し、これをネットワークまたは格納媒体を介してデコーディング装置に送信できる。
【0252】
また、エンコーディング装置は、前述したステップS800乃至S830で導出された情報をエンコーディングしてビットストリームに出力できる。例えば、DMVR可用フラグ情報、マージフラグ情報、MMVDフラグ情報、BDOF可用フラグ情報、サブブロック基盤のマージフラグ情報などが映像情報に含まれてエンコーディングされることができ、このようなエンコーディングされた映像情報は、デコーディング装置にシグナリングされることができる。
【0253】
図9は、文書の一実施例によってデコーディング装置により実行されることができるデコーディング方法を概略的に示す流れ図である。
【0254】
図9に開示された方法は、図3で開示されたデコーディング装置300により実行されることができる。具体的に、図9のステップS900~S930は、図3に開示された予測部330及びインター予測部332により実行されることができ、図9のステップS940は、図3に開示された加算部340により実行されることができる。また、図9で開示された方法は、本文書で詳述した実施例を含むことができる。したがって、図9では前述した実施例と重複する内容に関して具体的な説明を省略または簡単にする。
【0255】
図9を参照すると、デコーディング装置は、現在ブロックの動きベクトルを導出することができる(S900)。
【0256】
一実施例として、デコーディング装置は、エンコーディング装置からシグナリングされる予測情報に基づいて現在ブロックに対する予測モードを決定することができる。そして、デコーディング装置は、予測モードに基づいて現在ブロックの動き情報(動きベクトル、参照ピクチャインデックス等)を導出することができる。ここで、予測モードは、スキップモード、マージモード、(A)MVPモードなどを含むことができる。
【0257】
例えば、デコーディング装置は、現在ブロックにスキップモードまたはマージモードが適用される場合、マージ候補リストを構成し、マージ候補リストに含まれているマージ候補の中から一つのマージ候補を選択することができる。このとき、前述したマージインデックス情報(merge index)に基づいてマージ候補リストから一つのマージ候補が選択されることができる。デコーディング装置は、選択されたマージ候補の動き情報を利用して現在ブロックの動き情報を導出することができる。即ち、マージ候補リストに含まれているマージ候補のうちマージインデックスにより選択されたマージ候補の動き情報が現在ブロックの動き情報として利用されることができる。
【0258】
他の例として、デコーディング装置は、現在ブロックに(A)MVPモードが適用される場合、(A)MVP候補リストを構成し、(A)MVP候補リストに含まれているmvp(motion vector predictor)候補の中から選択されたmvp候補の動きベクトルを現在ブロックのmvpとして利用できる。前記mvp候補の選択は、mvpフラグ情報(mvp flag or mvp index)に基づいて実行されることができる。また、デコーディング装置は、エンコーディング装置からシグナリングされるMVDに関する情報に基づいて現在ブロックのMVDを導出することができる。この場合、デコーディング装置は、現在ブロックのmvpとMVDに基づいて現在ブロックの動きベクトルを導出することができる。また、デコーディング装置は、エンコーディング装置からシグナリングされる参照ピクチャインデックス情報に基づいて現在ブロックの参照ピクチャインデックスを導出することができる。このとき、現在ブロックに関する参照ピクチャリスト内で参照ピクチャインデックスが指すピクチャが、現在ブロックのインター予測のために参照になる参照ピクチャとして導出されることができる。
【0259】
デコーディング装置は、現在ブロックの動きベクトルに対してリファインメント(refinement)を適用するかどうかを決定することができる(S910)。
【0260】
一実施例として、デコーディング装置は、現在ブロックの大きさ、または現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいてリファインメント適用可否を決定することができる。例えば、現在ブロックの大きさが16×16以上である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。また、現在ブロックの双予測加重値インデックス情報の値が0である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0261】
ここで、双予測加重値インデックス情報は、前述したGbiIdxを示す。これはL0予測及びL1予測に異なる加重値(weight)を適用することができる一般的な双予測(generalized bi-prediction)で、L0予測及びL1予測に適用される加重値ファクタ(weight factor)を指示する情報として使われることができる。例えば、現在ブロックにマージモードが適用される場合、現在ブロックの双予測加重値インデックス情報は、現在ブロックの隣接ブロックのうちマージインデックスにより指示される隣接ブロックの双予測加重値インデックス情報と同じである。
【0262】
また、デコーディング装置は、ビットストリームからDMVRが可用であるか(enable)どうかを示すDMVR可用フラグ情報(例:sps_dmvr_enabled_flag)、現在ブロックにマージモードが適用されるかどうかを示すマージフラグ情報(例:merge_flag)、または現在ブロックにMMVD(merge mode with motion vector difference)が適用されるかどうかを示すMMVDフラグ情報(例:mmvd_flag)のうち少なくとも一つを取得することができ、このようなビットストリームから取得された情報に基づいてDMVR基盤のリファインメント適用可否を決定することができる。例えば、デコーディング装置は、DMVR可用フラグ情報の値が1である場合、マージフラグ情報の値が1である場合、またはMMVDフラグ情報の値が0である場合、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0263】
また、デコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、または、現在ピクチャとL0参照ピクチャとの間の距離と、現在ピクチャとL1参照ピクチャとの間の距離と、が同じかどうかに基づいて現在ブロックの動きベクトルに対してDMVRを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0[0][0]=1であり、predFlagL0[1][1]=1である場合)、または、現在ピクチャを基準にしてL0参照ピクチャとの距離とL1参照ピクチャとの距離とが相互同じな場合(例:DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])=0である場合)、デコーディング装置は、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0264】
また、他の例として、デコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置するかどうか、または前記現在ブロックにアフィンモードが適用されるかどうかに基づいて現在ブロックの動きベクトルに対してDMVRを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0=1であり、predFlagL1=1である場合)、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置する場合(例:DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さい場合)、または、現在ブロックにアフィンモードが適用されない場合(例:MotionModelIdc=0である場合)、デコーディング装置は、現在ブロックの動きベクトルに対してDMVRを適用することに決定できる。
【0265】
ここで、DMVR基盤のリファインメントを適用するかどうかを決定するにあたって、前記羅列された条件は、一つの例示に過ぎず、前述した表1乃至表20の条件を多様に組み合わせて使われることができる。
【0266】
デコーディング装置は、現在ブロックの動きベクトルに対してリファインメントを適用することに決定した場合、動きベクトルにDMVRを適用してリファインされた動きベクトルを導出することができる(S920)。
【0267】
このとき、デコーディング装置は、前述した図4のDMVR過程を適用することができる。DMVRを適用してリファインされた動きベクトルを導出する過程は、図4で詳細に説明したため、ここでは説明を省略する。
【0268】
デコーディング装置は、リファインされた動きベクトルに基づいて現在ブロックに対する予測サンプルを導出することができる(S930)。
【0269】
実施例によって、デコーディング装置は、現在ブロックの予測サンプルに対してリファインメントを適用することができる。
【0270】
一実施例として、デコーディング装置は、現在ブロックの大きさ、または現在ブロックの双予測加重値インデックス(bi-prediction weight index)情報のうち少なくとも一つに基づいて、予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、現在ブロックの大きさが16×16以上である場合、予測サンプルにBDOFを適用することに決定できる。また、現在ブロックの双予測加重値インデックス情報の値が0である場合、予測サンプルにBDOFを適用することに決定できる。
【0271】
また、デコーディング装置は、ビットストリームからBDOFが可用であるか(enable)どうかを示すBDOF可用フラグ情報(例:sps_bdof_enabled_flag)、または現在ブロックにサブブロック基盤のマージモードが適用されるかどうかを示すサブブロック基盤のマージフラグ情報(例:merge_subblock_flag)のうち少なくとも一つを取得することができ、このようなビットストリームから取得された情報に基づいてBDOF基盤のリファインメント適用可否を決定することができる。例えば、デコーディング装置は、BDOF可用フラグ情報の値が1である場合、または、サブブロック基盤のマージフラグ情報の値が0である場合、予測サンプルに対してBDOFを適用することに決定できる。
【0272】
また、デコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置するかどうか、または現在ブロックにアフィンモードが適用されるかどうかに基づいて予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0=1であり、predFlagL1=1である場合)、現在ピクチャを基準にしてL0参照ピクチャとL1参照ピクチャが時間上に互いに異なる方向に位置する場合(例:DiffPicOrderCnt(currPic、refPicList0[refIdxL0])*DiffPicOrderCnt(currPic、refPicList1[refIdxL1])が0より小さい場合)、または、現在ブロックにアフィンモードが適用されない場合(例:MotionModelIdc=0である場合)、デコーディング装置は、予測サンプルに対してBDOFを適用することに決定できる。
【0273】
また、他の例として、デコーディング装置は、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測(bi-prediction)が現在ブロックに適用されるかどうか、または、現在ピクチャとL0参照ピクチャとの間の距離と、現在ピクチャとL1参照ピクチャとの間の距離と、が同じかどうかに基づいて予測サンプルに対してBDOFを適用するかどうかを決定することができる。例えば、L0参照ピクチャ及びL1参照ピクチャに基づいて実行される双予測が現在ブロックに適用される場合(例:predFlagL0[0][0]=1であり、predFlagL0[1][1]=1である場合)、または、現在ピクチャを基準にしてL0参照ピクチャとの距離とL1参照ピクチャとの距離とが相互同じな場合(例:DiffPicOrderCnt(currPic、RefPicList0[refIdxL0])-DiffPicOrderCnt(currPic、RefPicList1[refIdxL1])=0である場合)、デコーディング装置は、予測サンプルに対してBDOFを適用することに決定できる。
【0274】
ここで、BDOF基盤のリファインメントを適用するかどうかを決定するにあたって、前記羅列された条件は、一つの例示に過ぎず、前述した表1乃至表20の条件を多様に組み合わせて使われることができる。
【0275】
デコーディング装置は、予測サンプルに対してBDOFを適用することに決定した場合、予測サンプルにBDOFを適用してリファインされた予測サンプルを導出することができる。
【0276】
デコーディング装置は、予測サンプルに基づいて現在ブロックに対する復元サンプルを生成することができる(S940)。
【0277】
一実施例として、デコーディング装置は、予測モードによって予測サンプルを復元サンプルとして利用することもでき、または、前記予測サンプルにレジデュアルサンプルを加算して復元サンプルを生成することもできる。
【0278】
デコーディング装置は、現在ブロックに対するレジデュアルサンプルが存在する場合、現在ブロックに対するレジデュアルに関する情報を受信することができる。レジデュアルに関する情報は、レジデュアルサンプルに関する変換係数を含むことができる。デコーディング装置は、レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプル(または、レジデュアルサンプルアレイ)を導出することができる。デコーディング装置は、予測サンプルとレジデュアルサンプルに基づいて復元サンプルを生成することができ、前記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出することができる。
【0279】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本文書の実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0280】
前述した本文書による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/またはデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
【0281】
本文書で実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
【0282】
また、本文書が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置ではゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
【0283】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み込むことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームが、コンピュータが読み取り可能な記録媒体に格納され、または有無線通信ネットワークを介して送信されることができる。
【0284】
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0285】
図10は、本文書で開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【0286】
図10を参照すると、本文書の実施例に適用されるコンテンツストリーミングシステムは、大別して、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0287】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。
【0288】
前記ビットストリームは、本文書の実施例に適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0289】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0290】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間格納することができる。
【0291】
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジがある。
【0292】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10