(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-10-06
(45)【発行日】2025-10-15
(54)【発明の名称】MDMVRベースの映像コーディング方法及び装置
(51)【国際特許分類】
H04N 19/513 20140101AFI20251007BHJP
H04N 19/46 20140101ALI20251007BHJP
【FI】
H04N19/513
H04N19/46
(21)【出願番号】P 2024519056
(86)(22)【出願日】2022-09-30
(86)【国際出願番号】 KR2022014755
(87)【国際公開番号】W WO2023055171
(87)【国際公開日】2023-04-06
【審査請求日】2024-03-27
(32)【優先日】2021-10-01
(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)【参考文献】
【文献】Yao-Jen Chang ETAL;,EE2: Tests of compression efficiency methods beyond VVC,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 22nd Meeting, by teleconference, 20-28 Apr. 2021, JVET-V0120-v2,2021年04月22日,pp.1,12-14
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
現在ブロックに対して
MDMVR(multi-layer Decoder-side Motion Vector Refinement)が使用されるかどうかを決定するステップと、
前記現在ブロックに
対して前記MDMVRが
使用されることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップと、
前記リファインされた動きベクトルに基づいて
、前記現在ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて
、前記現在ブロックに対する復元サンプルを生成するステップと、を含
み、
前記MDMVRが使用されるかどうかは、前記MDMVRを使用するかどうかに関連した第1のフラグ情報に基づいて決定され、
前記第1のフラグ情報は、SPS(Sequence Parameter Set)でシグナリングされる、映像デコーディング方法。
【請求項2】
前記MDMVR
の使用に関連した前記第1のフラグ情報に基づいて、前記MDMVRの制御に関連した第2のフラグ情報がシグナリングされ、
前記第2のフラグ情報は、PPS(Picture Parameter Set)、PH(Picture header)、SH(Slice header)
又はCU(Coding unit)
に前記MDMVRに関連したシンタックスエレメントが存在するかどうかに関連した情報である
、請求項
1に記載の映像デコーディング方法。
【請求項3】
前記第1のフラグ情報は、固定長さコーディン
グにより二進化される
、請求項
1に記載の映像デコーディング方法。
【請求項4】
前記第2のフラグ情報に基づいて、前記MDMVRに関連した
前記シンタックスエレメント
は、前記PPS、前記PH、前記SH
又は前記CUでシグナリングされ、
前記MDMVRに関連した
前記シンタックスエレメントは、コンテキストコーディン
グに基づいて導出される
、請求項
2に記載の映像デコーディング方法。
【請求項5】
前記現在ブロックは、少なくとも
1つのPU(prediction unit)を含み、
前記少なくとも
1つのPUに対して前記MDMVRのレイヤ
の数が決定される
、請求項1に記載の映像デコーディング方法。
【請求項6】
前記MDMVR
が使用されるかどうかは、MVD(Motion Vector Difference)情報に基づいて決定され、
前記MVD情報があらかじめ決定された閾値を超えるかどうかに基づいて
、前記MDMVRが前記現在ブロックに適用されるかどうかが決定される
、請求項1に記載の映像デコーディング方法。
【請求項7】
前記MVD情報があらかじめ決定された閾値範囲内にあるか
どうかに基づいて
、前記MDMVRのレイヤ
の数が決定される
、請求項
6に記載の映像デコーディング方法。
【請求項8】
前記現在ブロックに前記MDMVRが
使用されることに基づいて、前記MDMVRの各レイヤに対して探索パターン、及び探索領域の大きさ
が決定され、
前記探索パターンは、x方向の動きベクトル及びy方向の動きベクトルに基づいて決定され、
又は垂直動き及び水平動きに基づいて決定され、
前記探索領域の
前記大きさは、ブロック大きさに基づいて決定される
、請求項1に記載の映像デコーディング方法。
【請求項9】
前記リファインされた動きベクトルは、SAD(Sum of Absolute Differences)
又はMR-SAD(Mean Removed-Sum of Absolute Difference)に基づいて導出される
、請求項1に記載の映像デコーディング方法。
【請求項10】
前記リファインされた動きベクトルは、加重値
が適用された最小歪曲費用に基づいて導出
され、
前記最小歪曲費用は、特定探索地点の歪曲が優先する場合に基づいて前記加重値を適用
することにより計算される
、請求項1に記載の映像デコーディング方法。
【請求項11】
前記現在ブロックに
対して前記MDMVRが
使用されることに基づいて、前記MDMVRの各レイヤに対して終了条件
が満た
されたかどうか
が決定
され、
前記終了条件は、初期動きベクトルとリファインされた動きベクトルとの間の距離、サンプルベースの差、
又はSADベースの差が閾値より小さいかどうかに基づいて
、各レイヤに対す
るMDMVR終了を決定する
、請求項1に記載の映像デコーディング方法。
【請求項12】
エンコーディング装置により実行される映像エンコーディング方法において、
現在ブロックに対して
MDMVR(multi-layer Decoder-side Motion Vector Refinement)が使用されるかどうかを決定するステップと、
前記現在ブロックに
対して前記MDMVRが
使用されることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップと、
前記リファインされた動きベクトルに基づいて
、前記現在ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて
、レジデュアルサンプルを導出するステップと、
前記レジデュアルサンプルに関する情報を含む映像情報をエンコーディング
することによりビットストリームを生成するステップと、を含
み、
前記MDMVRが使用されるかどうかに基づいて、前記MDMVRを使用するかどうかに関連した第1のフラグ情報の値が決定され、
前記第1のフラグ情報は、SPS(Sequence Parameter Set)でシグナリングされる、映像エンコーディング方法。
【請求項13】
映像情報のビットストリームを含むデータ
の送信方法において、
前記映像情報の前記ビットストリームを取得
するステップであって、前記ビットストリームは、
現在ブロックに対して
MDMVR(multi-layer Decoder-side Motion Vector Refinement)が使用されるかどうかを決定するステップ
と、
前記現在ブロックに
対して前記MDMVRが
使用されることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップ
と、
前記リファインされた動きベクトルに基づいて
、前記現在ブロックに対する予測サンプルを導出するステップ
と、
前記予測サンプルに基づいて
、レジデュアルサンプルを導出するステップ
と、
前記レジデュアルサンプルに関する情報を含む映像情報をエンコーディングするステップ
と、に基づいて生成される
、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含
み、
前記MDMVRが使用されるかどうかに基づいて、前記MDMVRを使用するかどうかに関連した第1のフラグ情報の値が決定され、
前記第1のフラグ情報は、SPS(Sequence Parameter Set)でシグナリングされる、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、ビデオまたは映像コーディング技術に関し、例えば、MDMVR(multi-layer Decoder-side Motion Vector Refinement)ベースの映像コーディング技術に関する。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)ビデオ/映像のような高解像度、高品質のビデオ/映像に対する需要が多様な分野で増加している。ビデオ/映像データが高解像度、高品質になるほど、既存のビデオ/映像データに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信し、または既存の格納媒体を利用してビデオ/映像データを格納する場合、送信費用と格納費用が増加する。
【0003】
また、最近、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有するビデオ/映像に対する放送が増加している。
【0004】
これによって、前記のような多様な特性を有する高解像度高品質のビデオ/映像の情報を効果的に圧縮して送信または格納し、再生するために高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、ビデオ/映像コーディング効率を高める方法及び装置を提供することにある。
【0006】
本文書の他の技術的課題は、インターコーディングの効率を高めるための多重レイヤを使用するDMVRベースの映像コーディング方法及び装置を提供することにある。
【課題を解決するための手段】
【0007】
本文書の一実施例によると、デコーディング装置により実行される映像デコーディング方法が提供される。前記方法は、現在ブロックに対して多重レイヤ(multi-layer)DMVR(Decoder-side Motion Vector Refinement)(MDMVR)の使用可否を決定するステップ、前記現在ブロックに前記MDMVRが使われることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップ、前記リファインされた動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップ、及び前記予測サンプルに基づいて前記現在ブロックに対する復元サンプルを生成するステップ、を含む。
【0008】
本文書の他の一実施例によると、エンコーディング装置により実行される映像エンコーディング方法が提供される。前記方法は、現在ブロックに対して多重レイヤ(multi-layer)DMVR(Decoder-side Motion Vector Refinement)(MDMVR)の使用可否を決定するステップ、前記現在ブロックに前記MDMVRが使われることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップ、前記リファインされた動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップ、前記予測サンプルに基づいてレジデュアルサンプルを導出するステップ、及び前記レジデュアルサンプルに関する情報を含む映像情報をエンコーディングしてビットストリームを生成するステップ、を含む。
【0009】
本文書の他の一実施例によると、本文書の実施例のうち少なくとも一つに開示されたビデオ/映像エンコーディング方法によって生成されたエンコーディングされたビデオ/映像情報及び/又はビットストリームが格納されたコンピュータで読み取り可能なデジタル格納媒体を提供する。
【0010】
本文書の他の一実施例によると、映像情報のビットストリームを含むデータに対する送信方法を提供する。前記送信方法は、前記映像情報の前記ビットストリームを取得し、前記ビットストリームは、現在ブロックに対して多重レイヤ(multi-layer)DMVR(Decoder-side Motion Vector Refinement)(MDMVR)の使用可否を決定するステップ、前記現在ブロックに前記MDMVRが使われることに基づいて、前記現在ブロックに対するリファインされた動きベクトルを導出するステップ、前記リファインされた動きベクトルに基づいて前記現在ブロックに対する予測サンプルを導出するステップ、前記予測サンプルに基づいてレジデュアルサンプルを導出するステップ、及び前記レジデュアルサンプルに関する情報を含む映像情報をエンコーディングするステップに基づいて生成されるステップ、及び前記ビットストリームを含む前記データを送信するステップ、を含む。
【発明の効果】
【0011】
本文書は、多様な効果を有することができる。例えば、本文書によると、全般的な映像/ビデオ圧縮効率を高めることができる。また、本文書によると、効率的な多重レイヤを利用するデコーダサイド動きベクトルリファインメントベースの映像コーディングを実行することができる。また、本文書によると、インターコーディング構造の性能を向上させて処理の複雑性を増加させない多重レイヤを利用するデコーダサイド動きベクトルリファインメント方法を提供することができる。また、本文書によると、多重レイヤを使用するデコーダサイド動きベクトルリファインメントの使用可否を決定する多様な方案を提供することによって処理複雑性を増加させずに処理効率性を高めることができる。
【0012】
本文書の具体的な実施例を介して得ることができる効果は、以上で羅列された効果に制限されない。例えば、関連した技術分野の通常の知識を有する者(a person having ordinary skill in the related art)が本文書から理解し、または誘導できる多様な技術的効果が存在できる。これによって、本文書の具体的な効果は、本文書に明示的に記載されたものに制限されることなく、本文書の技術的特徴から理解され、または誘導されることができる多様な効果を含むことができる。
【図面の簡単な説明】
【0013】
【
図1】本文書の実施例が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【
図2】本文書の実施例が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
【
図3】本文書の実施例が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【
図4】コーディングされたビデオ/映像に対する階層構造を例示的に示す。
【
図5】DMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
【
図6】SAD(sum of absolute differences)を使用してDMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
【
図7】本文書の一実施例に係るMDMVR構造を例示的に示す。
【
図8】本文書の他の実施例に係るMDMVR構造を例示的に示す。
【
図9】本文書の実施例(ら)に係るビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【
図10】本文書の実施例(ら)に係るビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【
図11】本文書の実施例(ら)に係るビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
【
図12】本文書の実施例(ら)に係るビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
【
図13】本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【発明を実施するための形態】
【0014】
本文書は、多様な変更を加えることができ、様々な実施例を有することができ、特定実施例を図面に例示して詳細に説明しようとする。しかし、これは本文書の実施例を特定実施例に限定しようとするものではない。本文書で使用する用語は、単に特定の実施例を説明するために使われたものであって、本文書の技術的思想を限定しようとする意図で使われたものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本文書において、「含む」または「有する」などの用語は、文書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性をあらかじめ排除しないと理解されなければならない。
【0015】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味するものではない。例えば、各構成のうち、2つ以上の構成が結合されて1つの構成をなすことができ、1つの構成を複数の構成に分けることもできる。各構成が統合及び/又は分離された実施形態も本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0016】
本文書において、「AまたはB(A or B)」は「Aのみ」、「Bのみ」または「AとBの両方とも」を意味することができる。言い換えると、本文書において「AまたはB(A or B)」は「A及び/又はB(A and/or B)」と解釈されることができる。例えば、本文書において、「A、BまたはC(A,B or C)」は「Aのみ」、「Bのみ」、「Cのみ」、または「A、B及びCの任意の全ての組み合わせ(any combination of A,B and C)」を意味することができる。
【0017】
本文書で使われるスラッシュ(/)やコンマ(comma)は「及び/又は(and/or)」を意味することができる。例えば、「A/B」は「A及び/又はB」を意味することができる。これによって、「A/B」は「Aのみ」、「Bのみ」、または「AとBの両方とも」を意味することができる。例えば、「A、B、C」は「A、BまたはC」を意味することができる。
【0018】
本文書において、「少なくとも一つのA及びB(at least one of A and B)」は、「Aのみ」、「Bのみ」または「AとBの両方とも」を意味することができる。また、本文書において、「少なくとも一つのAまたはB(at least one of A or B)」や「少なくとも一つのA及び/又はB(at least one of A and/or B)」という表現は「少なくとも一つのA及びB(at least one of A and B)」と同様に解釈されることができる。
【0019】
また、本文書において、「少なくとも一つのA、B及びC(at least one of A,B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」、または「A、B及びCの任意の全ての組み合わせ(any combination of A,B and C)」を意味することができる。また、「少なくとも一つのA、BまたはC(at least one of A,B or C)」や「少なくとも一つのA、B及び/又はC(at least one of A,B and/or C)」は「少なくとも一つのA、B及びC(at least one of A,B and C)」を意味することができる。
【0020】
また、本文書で使われる括弧は「例えば、(for example)」を意味することができる。具体的に、「予測(イントラ予測)」で表示された場合、「予測」の一例として「イントラ予測」が提案されたものである。言い換えると、本文書の「予測」は「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されるものである。また、「予測(すなわち、イントラ予測)」で表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものである。
【0021】
本文書は、ビデオ/映像コーディングに関する。例えば、本文書に開示された方法/実施例は、VVC(versatile video coding)標準に開示される方法に適用されることができる。また、本文書に開示された方法/実施例は、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)または次世代ビデオ/映像コーディング標準(例えば、H.267またはH.268等)に開示される方法に適用されることができる。
【0022】
この文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、他の言及がない限り、前記実施形態は、互いに組み合わせられて実行されることもできる。
【0023】
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、サブピクチャ(subpicture)/スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。サブピクチャ/スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは、一つ以上のサブピクチャ/スライス/タイルで構成されることができる。一つのピクチャは、一つ以上のタイルグループで構成されることができる。一つのタイルグループは、一つ以上のタイルを含むことができる。ブリックは、ピクチャ内のタイル内のCTU行(row)の長方形領域を示すことができる。タイルは、多数のブリックでパーティショニングされることができ、各ブリックは、前記タイル内の一つ以上のCTU行で構成されることができる。多数のブリックによりパーティショニングされないタイルもブリックと呼ばれることができる。ブリックスキャンは、ピクチャをパーティショニングするCTUの特定の順次オーダリングを示すことができ、前記CTUは、ブリック内でCTUラスタスキャンで整列されることができ、タイル内のブリックは、前記タイルの前記ブリックのラスタスキャンで連続的に整列されることができ、そして、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタスキャンで連続的に整列されることができる。また、サブピクチャは、ピクチャ内の一つ以上のスライスの長方形領域を示すことができる。すなわち、サブピクチャは、ピクチャの長方形領域を総括的にカバーする一つ以上のスライスを含むことができる。タイルは、特定タイル列及び特定タイル列以内のCTUの長方形領域である。前記タイル列は、CTUの長方形領域であり、前記長方形領域は、前記ピクチャの高さと同じ高さを有し、幅はピクチャパラメータセット内のシンタックス要素により明示されることができる。前記タイル行は、CTUの長方形領域であり、前記長方形領域はピクチャパラメータセット内のシンタックス要素により明示される幅を有し、高さは前記ピクチャの高さと同じである。タイルスキャンは、ピクチャをパーティショニングするCTUの特定の順次オーダリングを示すことができ、前記CTUは、タイル内のCTUラスタスキャンで連続的に整列されることができ、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタスキャンで連続的に整列されることができる。スライスは、ピクチャの整数個のブリックを含むことができ、前記整数個のブリックは、一つのNALユニットに含まれることができる。スライスは、多数の完全なタイルで構成されることができ、または、一つのタイルの完全なブリックの連続的なシーケンスである。この文書では、タイルグループとスライスは混用されることができる。例えば、本文書では、tile group/tile group headerは、slice/slice headerと呼ばれることができる。
【0024】
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0025】
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち、少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0026】
本文書において、一つの図面内で個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
【0027】
以下の図面は、本文書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は例示的に提示されたものであるため、本文書の技術的特徴が以下の図面に使われた具体的な名称に制限されない。
【0028】
以下、添付した図面を参照して、本文書の好ましい実施形態をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重なった説明は省略されることができる。
【0029】
図1は、本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す。
【0030】
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル記録媒体またはネットワークを介して受信デバイスに伝達することができる。
【0031】
前記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。前記受信デバイスは、受信部、デコード装置、及びレンダラーを備えることができる。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、前記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信機は、エンコード装置に含まれることができる。受信機は、デコード装置に含まれることができる。レンダラーは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0032】
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを備えることができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを備えることができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、関連データが生成される過程にてビデオ/画像キャプチャ過程が代替されることができる。
【0033】
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0034】
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル記録媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記録媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記録媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコード装置に伝達することができる。
【0035】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコードすることができる。
【0036】
レンダラーは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
【0037】
図2は、本文書の実施例が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、エンコーディング装置とは、映像エンコーディング装置及び/又はビデオエンコーディング装置を含むことができる。
【0038】
図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は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル記録媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
【0039】
画像分割部210は、エンコード装置200に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はターナリ構造が後ほど適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本文書に係るコーディング手順が実行されることができる。この場合、画像特性に応じるコーディング効率などに基づいて、最大コーディングユニットが直ちに最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)、より下位デプスのコーディングユニットに分割されて、最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、前記予測ユニット及び前記変換ユニットは、各々前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であり、前記変換ユニットは、変換係数を誘導する単位及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位である。
【0040】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0041】
エンコード装置200は、入力画像信号(原本ブロック、原本サンプルアレイ)から、インター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力画像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピーエンコード部240に伝達することができる。予測に関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
【0042】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planar Mode)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示に過ぎず、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用されることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0043】
インター予測部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)をシグナリングすることによって現在ブロックの動きベクトルを指示することができる。
【0044】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、または、パレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して実行されることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0045】
前記予測部(インター予測部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)のうち、少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形でない、可変サイズのブロックにも適用されることもできる。
【0046】
量子化部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に含まれることもできる。
【0047】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによってレジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることによって復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0048】
一方、ピクチャエンコード及び/又は復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0049】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコード部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
【0050】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200とデコード装置300での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0051】
メモリ270DPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
【0052】
図3は、本文書の実施例が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。以下、デコーディング装置とは、映像デコーディング装置及び/又はビデオデコーディング装置を含むことができる。
【0053】
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memory)360を含んで構成されることができる。予測部330は、イントラ予測部331及びインター予測部332を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)321を含むことができる。前述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むことができる。
【0054】
ビデオ/画像情報を含むビットストリームが入力されると、デコード装置300は、
図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコード装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを実行することができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出されることができる。そして、デコード装置300を介してデコード及び出力された復元画像信号は、再生装置を介して再生されることができる。
【0055】
デコード装置300は、
図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部310を介してデコードされることができる。例えば、エントロピーデコード部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出できる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてさらにピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコード手順を介してデコードされて前記ビットストリームから取得されることができる。例えば、エントロピーデコード部310は、指数ゴロム符号化、CAVLCまたはCABAC等のコーディング方法を基にビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値などを出力することができる。より詳細に、CABACエントロピーデコード方法は、ビットストリームで各構文要素に該当するビンを受信し、デコード対象構文要素情報と周辺及びデコード対象ブロックのデコード情報、または以前ステップでデコードされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測し、ビンの算術デコード(arithmetic decoding)を実行して各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコード方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコード部310でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコード部310でエントロピーデコードが実行されたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出できる。また、エントロピーデコード部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコード部310の構成要素である。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、前記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコード部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち、少なくとも1つを備えることができる。
【0056】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコード装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0057】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0058】
予測部は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコード部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0059】
予測部320は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくこともでき、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して実行されることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/画像情報に含まれてシグナリングされることができる。
【0060】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0061】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードから送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0062】
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/又はイントラ予測部331を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0063】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または、次のピクチャのインター予測のために使用されることもできる。
【0064】
一方、ピクチャデコード過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0065】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0066】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達することができる。
【0067】
本文書において、エンコーディング装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施例は、各々、デコーディング装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
【0068】
図4は、コーディングされたビデオ/映像に対する階層構造を例示的に示す。
【0069】
図4を参照すると、コーディングされたビデオ/映像は、ビデオ/映像のデコーディング処理及びその自体を扱うVCL(video coding layer、ビデオコーディング階層)、符号化された情報を送信して格納する下位システム、そしてVCLと下位システムとの間に存在してネットワーク適応機能を担当するNAL(network abstraction layer、ネットワーク抽象階層)に区分されることができる。
【0070】
例えば、VCLでは、圧縮されたイメージデータ(スライスデータ)を含むVCLデータが生成され、またはピクチャパラメータセット(Picture Parameter Set、PPS)、シーケンスパラメータセット(Sequence Parameter Set、SPS)、ビデオパラメータセット(Video Parameter Set、VPS)または映像デコーディング過程に追加で必要なSEI(Supplemental Enhancement Information、SEI)メッセージを含むパラメータセットが生成されることができる。
【0071】
例えば、NALでは、VCLで生成されたRBSP(Raw Byte Sequence Payload)にヘッダ(header)情報(NALユニットヘッダ)を追加してNALユニットが生成されることができる。この場合、RBSPは、VCLで生成されたスライスデータ(slice data)、パラメータセット(parameter set)、SEIメッセージ(SEI message)などを参照することができる。NALユニットヘッダは、該当NALユニットに含まれているRBSPデータによって指定されたNALユニットタイプ情報を含むことができる。
【0072】
例えば、
図4に示すように、NALユニットは、VCLで生成されたRBSPによってVCL NALユニットとNon-VCL NALユニットに分類されることができる(classified)。VCL NALユニットは、映像(image)に対する情報(スライスデータ)を含むNALユニットを意味することができ、Non-VCL NALユニットは、映像デコーディングに必要な情報(パラメータセットまたはSEIメッセージ)を含むNALユニットを意味することができる。
【0073】
前述したVCL NALユニットとNon-VCL NALユニットは、サブシステムのデータ規格(data standard)によってヘッダ情報を添付してネットワークを介して送信されることができる。例えば、NALユニットは、H.266/VVCファイルフォーマット(VVC file format)、リアルタイムトランスポートプロトコル(real-time transport protocol、RTP)、トランスポートプストリーム(Transport Stream、TS)などのようなあらかじめ決められた標準のデータフォーマット(data format)に変換されることができ、多様なネットワークを介して送信されることができる。
【0074】
また、前述したように、NALユニットは、該当NALユニットに含まれているRBSPデータ構造によってNALユニットタイプが指定されることができ、NALユニットタイプに対する情報は、NALユニットヘッダに格納されてシグナリングされることができる。
【0075】
例えば、NALユニットは、映像に対する情報(スライスデータ)を含むかどうかによってVCL NALユニットタイプとNon-VCL NALユニットタイプに分類されることができる。また、VCL NALユニットタイプは、VCL NALユニットに含まれているピクチャの特性とタイプによって分類されることができ、Non-VCL NALユニットタイプは、パラメータセットのタイプによって分類されることができる。
【0076】
次は、Non-VCL NALユニットタイプに含まれているパラメータセットのタイプによって指定されたNALユニットタイプの例である。
【0077】
-APS(Adaptation Parameter Set)NALユニット:APSを含むNALユニットに対するタイプ
【0078】
-DPS(Decoding Parameter Set)NALユニット:DPSを含むNALユニットに対するタイプ
【0079】
-VPS(Video Parameter Set)NALユニット:VPSを含むNALユニットに対するタイプ
【0080】
-SPS(Sequence Parameter Set)NALユニット:SPSを含むNALユニットに対するタイプ
【0081】
-PPS(Picture Parameter Set)NALユニット:PPSを含むNALユニットに対するタイプ
【0082】
-PH(Picture header)NALユニット:PHを含むNALユニットに対するタイプ
【0083】
前述したNALユニットタイプは、NALユニットタイプに対するシンタックス情報を有することができ、シンタックス情報は、NALユニットヘッダに格納及びシグナリングされることができる。例えば、前記シンタックス情報は、nal_unit_typeであり、NAL単位タイプは、nal_unit_type値に指定されることができる。
【0084】
一方、一つのピクチャは、複数のスライスを含むことができ、スライスは、スライスヘッダ及びスライスデータを含むことができる。この場合、複数のスライス(スライスヘッダ及びスライスデータのセット)に対して一つのピクチャヘッダが追加されることができる。ピクチャヘッダ(ピクチャヘッダシンタックス)は、ピクチャに共通的に適用されることができる情報/パラメータを含むことができる。スライスヘッダ(スライスヘッダシンタックス)は、スライスに共通的に適用されることができる情報/パラメータを含むことができる。APS(APSシンタックス)またはPPS(PPSシンタックス)は、一つ以上のスライスまたはピクチャに共通的に適用されることができる情報/パラメータを含むことができる。SPS(SPSシンタックス)は、一つ以上のシーケンス(sequence)に共通的に適用されることができる情報/パラメータを含むことができる。VPS(VPSシンタックス)は、複数のレイヤに共通的に適用されることができる情報/パラメータを含むことができる。DPS(DPSシンタックス)は、全体映像に共通的に適用されることができる情報/パラメータを含むことができる。DPSは、コーディングされたビデオシーケンス(Coded Video Sequence、CVS)の連結(concatenation)と関連した情報/パラメータを含むことができる。
【0085】
本文書において、エンコーディング装置からデコーディング装置にエンコーディングされてビットストリーム形態でシグナリングされる映像/ビデオ情報は、ピクチャ内のパーティショニング関連情報、イントラ/インター予測情報、インターレイヤ予測関連情報、レジデュアル情報、インループフィルタリング情報などを含むだけでなく、前記スライスヘッダに含まれている情報、前記ピクチャヘッダに含まれている情報、前記APSに含まれている情報、前記PPSに含まれている情報、SPSに含まれている情報、VPSに含まれている情報、及び/又はDPSに含まれている情報を含むことができる。また、前記映像/ビデオ情報は、NALユニットヘッダの情報をさらに含むことができる。
【0086】
一方、前述したように、ビデオコーディングを実行するにあたって、圧縮効率を高めるために予測を実行する。これによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。予測されたブロックは、エンコーディング装置及びデコーディング装置で同じく導出され、エンコーディング装置は、原本ブロックの原本サンプル値自体でない原本ブロックと予測されたブロックとの間のレジデュアルに対する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで映像コーディング効率を高めることができる。デコーディング装置は、レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、レジデュアルブロックと予測されたブロックとを加えて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0087】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、原本ブロックと予測されたブロックとの間のレジデュアルブロックを導出し、レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングすることができる。ここで、レジデュアル情報は、量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックとレジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0088】
本文書において、量子化/逆量子化及び/又は変換/逆変換のうち少なくとも一つは省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数と呼ばれることもでき、または表現の統一性のために変換係数と依然として呼ばれることもできる。また、前記変換/逆変換の省略可否は、transform_skip_flagに基づいてシグナリングされることができる。
【0089】
本文書において、量子化された変換係数及び変換係数は、各々、変換係数及びスケーリングされた(scaled)変換係数と指称されることができる。この場合、レジデュアル情報は、変換係数(ら)に関する情報を含むことができ、前記変換係数(ら)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数(ら)に関する情報)に基づいて変換係数が導出されることができ、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されることができる。これは本文書の他の部分でも同様に適用/表現されることができる。
【0090】
一方、前述したように、現在ブロックに対する予測を実行するにあたって、イントラ予測またはインター予測を適用することができる。以下では現在ブロックにインター予測を適用する場合に関して説明する。
【0091】
エンコーディング/デコーディング装置の予測部(より具体的にインター予測部)は、ブロック単位でインター予測を実行して予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャ(ら)のデータ要素(例:サンプル値、または動き情報等)に依存した方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロック(予測サンプルアレイ)を誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、現在ブロックの動き情報をブロック、サブブロックまたはサンプル単位で予測できる。動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。動き情報は、インター予測タイプ(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)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を利用して現在ブロックの動きベクトルを導出することができる。
【0092】
前記動き情報は、インター予測タイプ(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)に対応されることができる。
【0093】
また、現在ブロックにインター予測を適用するにあたって、多様なインター予測モードが使われることができる。例えば、マージモード、スキップモード、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)モードと呼ばれることもできる。本文書において、一部モード及び/又は一部モードによって導出された動き情報候補は、他のモードの動き情報関連候補のうち一つとして含まれることもできる。
【0094】
現在ブロックのインター予測モードを指す予測モード情報がエンコーディング装置からデコーディング装置にシグナリングされることができる。このとき、予測モード情報は、ビットストリームに含まれてデコーディング装置に受信されることができる。予測モード情報は、多数の候補モードのうち一つを指示するインデックス情報を含むことができる。または、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、予測モード情報は、一つ以上のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモード適用可否を指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモード適用可否を指示し、マージモードが適用されない場合にMVPモードが適用されることと指示し、または追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立的なモードでシグナリングされることもでき、またはマージモードまたはMVPモードなどに従属的なモードでシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含むことができる。
【0095】
また、現在ブロックにインター予測を適用するにあたって、現在ブロックの動き情報を利用することができる。エンコーディング装置は、動き推定(motion estimation)手順を介して現在ブロックに対する最適の動き情報を導出することができる。例えば、エンコーディング装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを利用して相関性が高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索でき、これを介して動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(または、現在ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSAD(sum of absolute differences)に基づいて計算されることができる。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて多様な方法によってデコーディング装置にシグナリングされることができる。
【0096】
前記のようにインター予測モードによって導出された動き情報に基づいて現在ブロックに対する予測されたブロックを導出することができる。予測されたブロックは、現在ブロックの予測サンプル(予測サンプルアレイ)を含むことができる。現在ブロックの動きベクトル(MV)が分数サンプル単位を指す場合、補間(interpolation)手順が実行されることができ、これを介して参照ピクチャ内で分数サンプル単位の参照サンプルに基づいて現在ブロックの予測サンプルが導出されることができる。現在ブロックにアフィン(Affine)インター予測が適用される場合、サンプル/サブブロック単位MVに基づいて予測サンプルを生成することができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャとMVL0を利用した予測)に基づいて導出された予測サンプルと、L1予測(すなわち、参照ピクチャリストL1内の参照ピクチャとMVL1を利用した予測)に基づいて導出された予測サンプルと、の(位相による)加重和または加重平均を介して導出された予測サンプルが現在ブロックの予測サンプルとして利用されることができる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャが、現在ピクチャを基準にして互いに異なる時間的方向に位置する場合、(すなわち、双予測であり、かつ両方向予測に該当する場合)これをtrue双予測と呼ぶことができる。
【0097】
導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成されることができ、以後インループフィルタリングなどの手順が実行されることができることは、前述した通りである。
【0098】
一方、スキップモード及び/又はマージモードは、MVD(Motion Vector Difference)無しで隣接ブロックの動きベクトルに基づいて現在ブロックの動きを予測するため、動き予測において限界を示す。スキップモード及び/又はマージモードの限界を改善するために、DMVR(Decoder-side Motion Vector Refinement)、BDOF(Bi-directional optical flow)モードなどを適用して動きベクトルをリファイン(refine)することができる。DMVR、BDOFモードは、現在ブロックにtrue双予測が適用される場合に使われることができる。
【0099】
図5は、DMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
【0100】
DMVRは、デコーダ側で隣接ブロックの動き情報をリファイン(refinement)して動き予測を実行する方法である。DMVRが適用される場合、デコーダは、マージ(merge)/スキップ(skip)モードで隣接ブロックの動き情報を利用して生成されたテンプレート(template)に基づいてcost比較を介してリファインされた動き情報を誘導することができる。この場合、付加的なシグナリング情報無しで動き予測の精密度を高め、圧縮性能を向上させることができる。
【0101】
本文書において、説明の便宜のためにデコーディング装置を中心に説明するが、本文書の実施例に係るDMVRは、エンコーディング装置でも同じ方法で実行されることができる。
【0102】
図5を参照すると、デコーディング装置は、list0及びlist1方向の初期動きベクトル(または、動き情報)(例:MV0及びMV1)により識別される予測ブロック(すなわち、参照ブロック)を導出し、導出された予測ブロックを加重和(例えば、平均)してテンプレート(または、bilateral template)を生成することができる(step1)。ここで、初期動きベクトル(MV0及びMV1)は、マージ/スキップモードで隣接ブロックの動き情報を利用して誘導された動きベクトルを示すことができる。
【0103】
そして、デコーディング装置は、テンプレートマッチング(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を算出する動きベクトルは、更新された動きベクトル(初期動きベクトルを代替する)として考慮されることができる。
図5に示すように、デコーディング装置は、更新された動きベクトルMV0′及びMV1′を利用して最終両方向予測結果(すなわち、最終両方向予測ブロック)を生成することができる。一実施例として、更新された(または、新しい)動きベクトル誘導のためのmulti-iterationが最終両方向予測結果取得に使われることができる。
【0104】
一実施例において、デコーディング装置は、初期動き補償予測(すなわち、従来のマージ/スキップモードを介した動き補償予測)の正確度を向上させるためにDMVRプロセスを呼び出しすることができる。例えば、デコーディング装置は、現在ブロックの予測モードがマージモードまたはスキップモードであり、現在ブロックにディスプレイ順序上現在ピクチャを基準にして両方向の参照ピクチャが反対方向にある両方向双予測が適用される場合、DMVRプロセスを実行することができる。
【0105】
図6は、SAD(sum of absolute differences)を使用してDMVR(Decoder-side Motion Vector Refinement)を実行する過程の一実施例を説明するための図である。
【0106】
前述したように、デコーディング装置は、DMVRを実行するにあたって、SADを利用してmatching costを測定することができる。一実施例として、
図6ではテンプレートを生成せず、二つの参照ピクチャ内の予測サンプル間のMRSAD(Mean Sum of Absolute Difference)を計算して動きベクトルをリファインする方法を説明する。すなわち、
図6の方法は、MRSADを利用する両方向マッチング(bilateral matching)の一実施例を示す。
【0107】
図6を参照すると、デコーディング装置は、list0(L0)方向の動きベクトル(MV0)により指示される画素(サンプル)の隣接画素をL0参照ピクチャ上で導出し、list1(L1)方向の動きベクトル(MV1)により指示される画素(サンプル)の隣接画素をL1参照ピクチャ上で導出することができる。そして、デコーディング装置は、L0参照ピクチャ上で導出された隣接画素を指示する動きベクトルにより識別されるL0予測ブロック(すなわち、L0参照ブロック)と、L1参照ピクチャ上で導出された隣接画素を指示する動きベクトルにより識別されるL1予測ブロック(すなわち、L1参照ブロック)と、の間のMRSADを計算してmatching costを測定することができる。このとき、デコーディング装置は、最小costを有する探索地点(すなわち、L0予測ブロックとL1予測ブロックとの間の最小SADを有する探索領域)をリファインされた動きベクトル対として選択できる。すなわち、リファインされた動きベクトル対は、L0参照ピクチャで最小costを有する画素位置(L0予測ブロック)を指すリファインされたL0動きベクトルと、L1参照ピクチャで最小costを有する画素位置(L1予測ブロック)を指すリファインされたL1動きベクトルと、を含むことができる。
【0108】
一実施例として、matching costを計算するにあたって、参照ピクチャの探索領域が設定された後、単方向予測は、regular 8 tap DCTIF interpolation filterを使用して実行されることができる。また、一例として、MRSAD計算は、16ビット精密度が使われることができ、内部バッファを考慮してMRSAD計算以前にクリッピング及び/又は丸め演算が適用されない。
【0109】
前述したように、現在ブロックにtrue双予測が適用される場合、双予測信号をリファインするためにBDOFが使われることができる。BDOF(Bi-directional optical flow)は、現在ブロックに双予測が適用される場合、改善された動き情報を計算し、これに基づいて予測サンプルを生成するために使われることができる。例えば、BDOFは、4x4サブブロック(sub-block)レベルで適用されることができる。すなわち、BDOFは、現在ブロック内の4x4サブブロック単位で実行されることができる。または、BDOFは、ルマ成分に対してのみ適用されることができる。または、BDOFは、クロマ成分に対してのみ適用されることもでき、ルマ成分及びクロマ成分に対して適用されることもできる。
【0110】
BDOFモードは、その名称で示すように、オブジェクトの動きがsmoothと仮定するオプティカルフロー(optical flow)概念に基づく。4x4サブブロックの各々に対して、L0及びL1予測サンプル間の差値を最小化することによって、動きリファインメント(vx、vy)が計算されることができる。そして、動きリファインメントは、4x4サブブロックで双予測サンプル値を調整するために使われることができる。
【0111】
前述したDMVR及びBDOFは、true双予測を適用する場合(このとき、true双予測は、現在ブロックのピクチャを基準にして異なる方向の参照ピクチャで動き予測/補償する場合を示す)、動き情報をリファインして予測を実行する技術であって、ピクチャ内のオブジェクトの動きが一定速度、一定の方向に行われる場合を仮定しているという点で類似した概念のリファインメント技術であることを知ることができる。
【0112】
一方、以下ではインターコーディング構造の性能を向上させるためにデコーダでインターモード(ら)及び/又はインター予測(ら)の決定/パーシングに使われることができる構造及び特徴を説明する。説明された方法(ら)は、VVC(Versatile Video Coding)に基づいて作成されるが、他の過去または未来のビデオコーディング技術にも適用されることができる。
【0113】
本文書ではインターコーディングの性能を向上させるために多重パス(multi-pass)DMVR技術が適用されることができる。多重パスDMVR(すなわち、MDMVR)は、次世代ビデオコーデックでDMVRの技術を追加的に向上(及びsimplify)するための技術であって、1番目のパスでは両方向マッチング(bilateral matching、BM)がコーディングブロックに適用され、2番目のパスでBMはコーディングブロック内の各16x16サブブロックに適用され、3番目のパスではBDOFを適用して各8x8サブブロックのMVを改善(refined)することができる。ここで、改善されたMVは、空間及び時間モーションベクトル予測のために格納されることができる。
【0114】
多重パスDMVRに対してより具体的に説明すると、MDMVRの1番目のパスで、コーディングブロックにBM(bilateral matching)を適用して改善された(refined)MVを導出することができる。DMVR(Decoder-Side Motion Vector Refinement)と類似するように、両方向(bi-prediction)予測動作で改善されたMVは、参照ピクチャリストL0及びL1で二つの初期MV(MV0及びMV1)周辺で探索(search)されることができる。改善されたMV(MV0_pass1及びMV1_pass1)は、L0及びL1内の二つの参照ブロック間の最小両方向マッチングcostに基づいて初期MV周辺で導出されることができる。
【0115】
BMは、整数サンプル精密度intDeltaMVを導出するためにローカル探索を実行することができる。ローカル探索は、3x3正方形探索パターンを適用して水平方向の探索範囲[-sHor、sHor]及び垂直方向の探索範囲[-sVer、sVer]に対して繰り返しすることができる。ここで、sHor及びsVerの値はブロック次元(dimension)により決定され、sHorとsVerの最大値は8である。
【0116】
両方向マッチングcostは、bilCost=mvDistanceCost+sadCostで計算されることができる。ブロック大きさcbW*cbHが64より大きい場合、MRSAD費用関数を適用して参照ブロック間のDC歪曲効果を除去することができる。3x3探索パターンの中心点にあるbilCostが最小費用を有する場合、intDeltaMVローカル探索を終了することができる。そうでない場合、現在最小費用探索地点が3x3探索パターンの新しい中心点になって探索範囲の端に到達する時まで最小費用探索を続けることができる。
【0117】
最終deltaMVを導出するために既存の分数サンプルリファインメント(fractional sample refinement)が追加で適用されることができる。1番目のパス後、改善されたMVは、以下のように導出されることができる。
【0118】
MV0_pass1=MV0+deltaMV
【0119】
MV1_pass1=MV1-deltaMV
【0120】
MDMVRの2番目のパスで、16x16グリッドサブブロックにBMを適用して改善された(refined)MVを導出することができる。各サブブロックに対して、参照ピクチャリストL0及びL1で1番目のパスで取得した二つのMV(MV0_pass1、MV1_pass1)周辺で改善されたMVが探索されることができる。改善されたMV(MV0_pass2(sbIdx2)及びMV1_pass2(sbIdx2))は、L0及びL1内の二つの参照サブブロック間の最小両方向マッチングcostに基づいて導出されることができる。
【0121】
各サブブロックに対して、BMは、整数サンプル精密度intDeltaMVを導出するために全体探索を実行することができる。全体探索は、水平方向に[-sHor、sHor]、垂直方向に[-sVer、sVer]の探索範囲を有し、ここで、sHor及びsVerの値はブロック次元により決定され、sHor及びsVerの最大値は8である。
【0122】
両方向マッチングcostは、bilCost=satdCost*costFactorのように二つの参照サブブロック間のSATD費用に費用要素(cost factor)を適用して計算されることができる。探索領域(2*sHor+1)*(2*sVer+1)は、最大5個のダイアモンド型探索領域に分けることができる。各探索領域には各探索地点と開始MVとの間の距離(intDeltaMV)により決定されるcostFactorが割り当てられ、各ダイアモンド領域は、探索領域の中心から始める順序に処理されることができる。各領域で、探索ポイントは、該当領域の左側上端(top left)から始まって右側下端コーナー(bottom right corner)までラスタスキャン順序(raster scan order)に処理されることができる。現在探索領域内の最小bilCostがsbW*sbHのような閾値より小さい場合、int-pel全体探索が終了され、そうでない場合、全ての探索ポイントが検査される時までint-pel全体探索が次の探索領域に続くことができる。
【0123】
既存VVCにおいて、DMVR分数サンプルリファインメントは、最終deltaMV(sbIdx2)を導出するために追加で適用されることができる。2番目のパスで改善されたMVは、以下のように導出されることができる。
【0124】
MV0_pass2(sbIdx2)=MV0_pass1+deltaMV(sbIdx2)
【0125】
MV1_pass2(sbIdx2)=MV1_pass1-deltaMV(sbIdx2)
【0126】
MDMVRの3番目のパスで、8x8グリッドサブブロックにBDOFを適用して改善された(refined)MVを導出することができる。各8x8サブブロックに対して、BDOFリファインメントは、2番目のパスの親サブブロックの改善されたMVから始まってクリッピング無しでスケーリングされたVx及びVyを導出するために適用されることができる。導出されたbioMv(Vx、Vy)は、1/16サンプル精密度で四捨五入されて-32と32との間でクリッピングされることができる。
【0127】
3番目のパスで改善されたMV(MV0_pass3(sbIdx3)及びMV1_pass3(sbIdx3))は、次のように導出されることができる。
【0128】
MV0_pass3(sbIdx3)=MV0_pass2(sbIdx2)+bioMv
【0129】
MV1_pass3(sbIdx3)=MV0_pass2(sbIdx2)-bioMv
【0130】
一方、本文書は、前述のようなデコーダサイド動きベクトル導出(Decoder-Side Motion Vector Derivation、DMVD)(すなわち、DMVR及び/又は多重パスDMVR)を適用するにあたって、インターコーディング構造の性能を向上させ、処理の複雑性を増加させない方案を提案する。このために、下記のような側面が考慮されることができる。すなわち、提案される方法は下記のような実施例を含むことができ、提案される実施例は個別的にまたは組み合わせして適用されることができる。
【0131】
1.一例として、DMVRは、最終リファインされた動きベクトルを導出するために多重レベルまたは多重パスまたは多重ステップで適用されることができる。本開示の目的のために、多重レイヤ(multi-layer)DMVRは、MDMVRと指称されることができる。また、多重レイヤは、多重パス、多重レベル、または多重ステップなどと指称されることもできる。
【0132】
2.また、一例として、MDMVRの使用は、下記のいくつかの要素(factors)を考慮して決定されることができる。
【0133】
a.各CUは、多様な数のレイヤを有することができる。例えば、現在PUは2個のレイヤを有することができ、次のPUは3個のレイヤが必要である。
【0134】
b.MVD情報を使用してDMVRがブロックに適用されるべきかまたは適用されることができるDMVRのレベルまたはレイヤ数を決定することが可能である。
【0135】
i)例えば、1番目の場合(すなわち、DMVRのon/off制御のための使用)、マージモードでのMVDがあらかじめ決定された閾値を超えると、DMVRを適用しないことが可能である。例えば、閾値は、1/4画素(pel)、1/2画素(pel)、1画素(pel)、4画素(pel)及び/又はその他の適切なMVD単位で選択されることができる。
【0136】
ii)例えば、特定ブロック大きさに対して、閾値(ら)のうちいずれか一つでも満たされない場合、DMVRが適用されない。
【0137】
iii)または、このような閾値を使用してDMVRに単一レイヤ、2個レイヤ、または多重レイヤを適用すべきかどうかを決定することが可能なこともある。例えば、MVDが特定閾値の範囲内にある場合、8x8レベルでない16x16レベルでDMVRを実行することで十分である。
【0138】
3.また、一例として、MDMVRを実行する場合、各レイヤは、同じ探索パターンを有することもでき、または異なる探索パターンを有することもできる。
【0139】
4.また、一例として、探索ポイントは、一般的に探索パターンによって異なることがある。したがって、初期に多くの探索ポイントと相関関係がある大きい探索を使用し、以後レイヤで小さい探索パターンと少ない数の探索ポイントを考慮して探索領域を減らすことが可能でかつ有利である。
【0140】
5.追加的に、初期探索パターンの正確度は整数ベースであって、追加レイヤ正確度は1/2-画素(pel)または1/4画素(pel)である。
【0141】
6.また、一例として、考慮される探索パターンは、正方形、ダイアモンド型、十字型、長方形及び/又はブロックの基本的な動きをキャプチャするための他の適切な形状を含むことができるが、これに限定されるものではない。
【0142】
a.例えば、x方向の動きベクトルがy方向の動きベクトルより大きい場合、長方形探索パターンがブロックの基本的な動きをキャプチャするときにさらに適合できるため有用である。
【0143】
b.または、垂直動きが多いブロックに対してダイアモンド型/十字型がさらに適合できる。
【0144】
7.また、一例として、探索領域の大きさは、ブロックの大きさによって各ブロック毎に異なることがある。
【0145】
a.例えば、より大きいブロックが使われる場合、7x7/8x8、またはそれ以上、または他の適切な正方形/ダイアモンド型探索パターンを使用することが可能である。これは可変DMVRグラニュラリティ(granularity)と共に使われることができる。
【0146】
b.または、ブロックがより小さい場合、探索領域は5x5より小さくすることができる。
【0147】
c.また、基本的な動き情報、利用可能な隣接ブロックの動き特性に基づいて探索領域の大きさを決定することが可能である。例えば、ブロックMVDが(あらかじめ決定されることができる)閾値Tより大きい場合、7x7探索領域が使われることができる。
【0148】
8.また、一例として、処理を待つ間に参照サンプルをあらかじめフェッチして(pre-fetch)メモリに格納されることが可能である。例えば、サンプルをあらかじめフェッチした(pre-fetch)場合、サンプルは参照サンプルパディングされることができる。
【0149】
9.VVCにおいて、DMVRは、繰り返しプロセス(iterative process)を使用してリファインされたMVを評価する手段としてSADを使用する。しかし、歪曲を評価するためにいくつかの他の歪曲メトリック(distortion metrics)を使用することが可能である。
【0150】
a.例えば、L0ノルム(norm)が使われることができ、ここで、初期及び中間動きベクトルは、xまたはy方向に動き変化があったかどうかを決定するときに使われることができる。これは以後早期終了されることができるかどうかを評価するときに使われることができる。
【0151】
b.または、例えば、ユークリッドノルム(Euclidean Norm)(L2)のようなノルムの他の形式を使用してどの地点が最も大きい変位(displacement)を有するかを指示することができるため、基準点(outlier)を指示することができる。
【0152】
c.また、例えば、MR-SAD(Mean Removed-Sum of Absolute Difference)を使用することが可能である。また、MR-SADの様々な変形を使用することもできる。例えば、全ての代替行/列のMRSADまたは各ブロック毎に累積平均の以前ブロックのMRSADが使われることができる。
【0153】
10.また、一例として、歪曲測定を減衰/増幅(attenuate/amplify)するために追加加重値要素(weighting factors)を追加することが可能である。特定探索地点の歪曲が他の探索地点より優先する場合、このような考慮事項が考慮されることができる。
【0154】
a.例えば、初期探索地点が探索範囲内の他の地点より優先すべき場合、初期エラー/歪曲メトリック(error/distortion metric)に対する加重値を適用して初期値(ら)が最小歪曲費用を発生させることができる。
【0155】
b.他の例として、使用する加重値を決定するために隣接ブロックの利用可能な動き情報を考慮することが可能である。
【0156】
11.また、一例として、MDMVRの単一レイヤ内でまたは各レイヤ内で早期終了を容易にすることが可能である。
【0157】
a.例えば、MDMVRは、初期開始MVと繰り返し間の地点でのMVとの間の距離が閾値Tより小さい場合、早期終了されることができ、その後、探索は終了されることができる。
【0158】
b.または、全ての終了条件は、レイヤ間で確認されることができる。例えば、CUではDMVRのために3個のレイヤを使用するようにシグナリングできる。しかし、1番目のレイヤ以後に終了条件が満たされると、DMVRは終了されることができる。
【0159】
c.または、例えば、サンプルベースの差またはSADベースの差のような他の早期終了方法論(methodologies)も個別確認または組み合わせで使われることができる。
【0160】
12.また、一例として、単一レイヤDMVRまたはMDMVRの使用は、多数のパラメータセットでシグナリングされることができる。
【0161】
a.例えば、MDMVRの使用は、関連GCIフラグと共にSPSで単一フラグをシグナリングすることで全体シーケンスに対して固定されることができる。
【0162】
b.シーケンスがPPS(Picture Parameter Set)/PH(Picture header)/SH(Slice header)/CU(Coding unit)及び/又は他の適切なヘッダでDMVRとMDMVRとの間を転換することが可能である。
【0163】
i)例えば、既存DMVRまたはMDMVRの使用は、PHまたは下位レベルに存在する追加制御を介してPPSでシグナリングされることができる。
【0164】
ii)例えば、CUレベルでDMVRとMDMVRとの間を転換することが可能である。すなわち、各CUは、独立的に転換されることができる。
【0165】
c.SPSでフラグ、またはPTLフラグ、すなわち、GCI制約フラグがシグナリングされる時、固定長さコーディング(fixed length coding)されることができるということを考慮することができる。
【0166】
d.MDMVRに対するシンタックスエレメントがPPSまたは下位レベルでシグナリングされる場合、必要な細部情報をシグナリングするためにコンテキストコーディング(context coding)を使用することが適切である。
【0167】
i)例えば、シグナリングされることができる情報は、レイヤの数、MDMVR適用のグラニュラリティ(granularity)、早期終了が明示的に使われるかどうか等を含むことができるが、これに限定されるものではない。
【0168】
ii)また、例えば、コンテキストモデルの数、初期化値は、ブロック統計の関連側面を考慮して決定されることができる。
【0169】
一方、前述のような多重レイヤDMVR(すなわち、MDMVR)の使用は、圧縮効率を介してビデオ品質を向上させるときに有利であると考慮されることができる。これによって、本文書は、MDMVRの使用と関連した情報を効率的にシグナリングする方法を提案する。これと関連して、デコーダで実行されることができる構造の例示として
図7及び
図8のように動作できる。
【0170】
図7は、本文書の一実施例に係るMDMVR構造を例示的に示す。
【0171】
図7の例では、フラグ/インデックスを使用してMDMVRまたは既存DMVRが使われるかどうかを把握することができる(S700)。一般的に、このようなフラグ(単一ビン(single bin)または多重固定長さコーディングビン(multiple fixed length coded bins))は、DMVRが使われるか(例:インデックス0)、単一レイヤDMVRが使われるか(例:インデックス1)、または単一及びMDMVRが全て使われるか(例:インデックス2)を示すときに使われることができる。例えば、既存DMVRが使われる場合、既存DMVR処理過程が実行される(S710)。MDMVRが使われる場合、追加制御情報がスライスヘッダまたはピクチャヘッダでシグナリングされることができる(S720~S740)。
【0172】
より具体的に、デコーディング装置は、MDMVRの使用可否に関連した情報(例:MDMVRイネイブルフラグまたはインデックス情報)を取得し、前記情報に基づいてDMVRが使われるかまたはMDMVRが使われるかを決定することができる(S700)。前記MDMVRの使用可否に関連した情報は、MDMVRがイネイブルするかどうかを示す情報であり、上位レベル(例:SPS)シンタックスでシグナリングされることができる。
【0173】
例えば、デコーディング装置は、MDMVRの使用可否に関連したフラグ情報を取得し、前記フラグ情報の値が0である場合、DMVRが使われることと決定し、前記フラグ情報の値が1である場合、MDMVRが使われることと決定できる。
【0174】
または、例えば、デコーディング装置は、MDMVRの使用可否に関連したインデックス情報を取得し、前記インデックス情報の値に基づいてDMVRまたはMDMVRの使用を決定することができる。例えば、前記インデックス情報の値が0である場合、DMVRが使われることと決定し、前記インデックス情報の値が1である場合、MDMVRが使われることと決定できる。または、前述したように、前記インデックス情報の値が0である場合、DMVRが使われることと決定し、前記インデックス情報の値が1である場合、単一レイヤDMVRが使われることと決定し、前記インデックス情報の値が2である場合、多重レイヤDMVR(すなわち、MDMVR)が使われることと決定できる。
【0175】
デコーディング装置は、MDMVRの使用可否に関連した情報に基づいてDMVRが使われることと決定した場合、DMVRを実行することができる(S710)。
【0176】
デコーディング装置は、MDMVRの使用可否に関連した情報に基づいてMDMVRが使われることと決定した場合、追加制御情報を取得することができる(S720)。
【0177】
前記追加制御情報は、下位レベル(例:ピクチャヘッダ、スライスヘッダ等)でのMDMVR関連制御情報であり、例えば、MDMVR関連シンタックスエレメントがピクチャヘッダシンタックスに存在するかどうかを示すことができる。例えば、前記追加制御情報の値が0である場合、前記追加制御情報(例:MDMVR関連シンタックスエレメント)がピクチャヘッダシンタックスに存在しないことを示し、前記追加制御情報の値が1である場合、前記追加制御情報(例:MDMVR関連シンタックスエレメント)がピクチャヘッダシンタックスに存在することを示すことができる。
【0178】
デコーディング装置は、前記追加制御情報の値が0である場合、ピクチャヘッダシンタックスに前記MDMVR関連追加制御情報が存在しないことを把握することができ、スライスヘッダでのMDMVR関連情報を取得することができる(S730)。
【0179】
前記スライスヘッダでのMDMVR関連情報は、MDMVR関連シンタックスエレメントがスライスヘッダに存在するかどうかを示すことができる。例えば、前記MDMVR関連情報の値が1である場合、MDMVR関連シンタックスエレメントがスライスヘッダに存在することを示し、以後スライスヘッダからMDMVR関連シンタックスエレメントがシグナリング/パーシングされることができる。
【0180】
デコーディング装置は、前記追加制御情報の値が1である場合、ピクチャヘッダシンタックスに前記MDMVR関連シンタックスエレメントが存在することを把握することができ、ピクチャヘッダからMDMVR関連シンタックスエレメントを取得することができる(S740)。
【0181】
以後、デコーディング装置は、ピクチャヘッダまたはスライスヘッダからシグナリングされるMDMVR関連情報に基づいてMDMVRを実行することができる。
【0182】
図8は、本文書の他の実施例に係るMDMVR構造を例示的に示す。
【0183】
図8の例では、MDMVR情報がPPSまたはCUレベルでシグナリングされることができる。DMVRは、PUレベルで実行されることができる。ここで、MDMVRがイネイブル(enable)されると、制御エレメントがPPSまたはCUレベルに存在するかどうかを示すためにPPSで追加シンタックスエレメントがパーシングされることができる。多数のフレームは一般的に1個のPPSを参照するため、PPSで制御情報をパーシングすることは、CUでエレメントがシグナリングされる場合と比較してより柔軟性(flexibility)が落ちることができる。一方、PPSレベルでのシグナリングは、シグナリングオーバーヘッドを減らすことができる。
【0184】
具体的な例として、
図8を参照すると、デコーディング装置は、MDMVRの使用可否に関連した情報(例:MDMVRイネイブルフラグまたはインデックス情報)を取得し、前記情報に基づいてDMVRが使われるかまたはMDMVRが使われるかを決定することができる(S800)。前記MDMVRの使用可否に関連した情報は、MDMVRがイネイブルするかどうかを示す情報であり、上位レベル(例:SPS)シンタックスでシグナリングされることができる。
【0185】
例えば、デコーディング装置は、MDMVRの使用可否に関連したフラグ情報を取得し、前記フラグ情報の値が0である場合、DMVRが使われることと決定し、前記フラグ情報の値が1である場合、MDMVRが使われることと決定できる。
【0186】
または、例えば、デコーディング装置は、MDMVRの使用可否に関連したインデックス情報を取得し、前記インデックス情報の値に基づいてDMVRまたはMDMVRの使用を決定することができる。例えば、前記インデックス情報の値が0である場合、DMVRが使われることと決定し、前記インデックス情報の値が1である場合、MDMVRが使われることと決定できる。または、前述したように、前記インデックス情報の値が0である場合、DMVRが使われることと決定し、前記インデックス情報の値が1である場合、単一レイヤDMVRが使われることと決定し、前記インデックス情報の値が2である場合、多重レイヤDMVR(すなわち、MDMVR)が使われることと決定できる。
【0187】
デコーディング装置は、MDMVRの使用可否に関連した情報に基づいてDMVRが使われることと決定した場合、DMVRを実行することができる(S810)。
【0188】
このとき、デコーディング装置は、PUレベルでシグナリングされるDMVR関連情報を取得し、DMVRを実行することができる。
【0189】
デコーディング装置は、MDMVRの使用可否に関連した情報に基づいてMDMVRが使われることと決定した場合、追加制御情報を取得することができる(S820)。
【0190】
前記追加制御情報は、下位レベル(例:PPS)でのMDMVR関連制御情報であり、例えば、MDMVR関連シンタックスエレメントがPPSシンタックスに存在するかどうかを示すことができる。例えば、前記追加制御情報の値が0である場合、前記追加制御情報(例:MDMVR関連シンタックスエレメント)がPPSシンタックスに存在しないことを示し、前記追加制御情報の値が1である場合、前記追加制御情報(例:MDMVR関連シンタックスエレメント)がPPSシンタックスに存在することを示すことができる。
【0191】
デコーディング装置は、前記追加制御情報の値が0である場合、PPSシンタックスに前記MDMVR関連追加制御情報が存在しないことを把握することができ、CUでのMDMVR関連情報を取得することができる(S830)。
【0192】
前記CUでのMDMVR関連情報は、MDMVR関連シンタックスエレメントがCUシンタックスに存在するかどうかを示すことができる。例えば、前記MDMVR関連情報の値が1である場合、MDMVR関連シンタックスエレメントがCUシンタックスに存在することを示し、以後CUシンタックスからMDMVR関連シンタックスエレメントがシグナリング/パーシングされることができる。
【0193】
デコーディング装置は、前記追加制御情報の値が1である場合、PPSシンタックスに前記MDMVR関連追加制御情報が存在することを把握することができ、PPSからMDMVR関連追加制御情報(例:MDMVR関連シンタックスエレメント)を取得することができる(S840)。
【0194】
以後、デコーディング装置は、PPSまたはCUからシグナリングされるMDMVR関連情報に基づいてMDMVRを実行することができる。
【0195】
以下の図面は、本文書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な用語/名称(例えば、シンタックス/シンタックス要素の名称など)は例示的に提示されたものであるため、本文書の技術的特徴が以下の図面に使われた具体的な用語/名称に制限されない。
【0196】
図9及び
図10は、本文書の実施例(ら)に係るビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0197】
図9に開示された方法は、
図2または
図10に開示されたエンコーディング装置200により実行されることができる。ここで、
図10に開示されたエンコーディング装置200は、
図2に開示されたエンコーディング装置200を簡略に示したものである。具体的に、
図9のステップS900~S920は、
図10に開示された予測部220により実行されることができ、
図9のステップS930は、
図10に開示されたレジデュアル処理部230により実行されることができ、
図9のステップS940は、
図10に開示されたエントロピーエンコーディング部240により実行されることができる。また、図示されてはいないが、現在ブロックに対するレジデュアルサンプルと予測サンプルとに基づいて前記現在ブロックに対する復元サンプル及び復元ピクチャを生成する過程は、前記エンコーディング装置200の加算部250により実行されることができ、前記現在ブロックに対する予測情報をエンコーディングする過程は、前記エンコーディング装置200のエントロピーエンコーディング部240により実行されることができる。また、
図9に開示された方法は、本文書で詳述した実施例を含んで実行されることができる。したがって、
図9では前述した実施例と重複する内容に関して具体的な説明を省略または簡単にする。
【0198】
図9を参照すると、エンコーディング装置は、現在ブロックに対して多重レイヤ(multi-layer)DMVR(Decoder-side Motion Vector Refinement)(MDMVR)の使用可否を決定することができる(S900)。
【0199】
ここで、前述したように、多重レイヤDMVRは、MDMVRと指称されることができ、多重パスDMVR、多重レベルDMVR、または多重ステップDMVRなどと混用または代替されて使われることもできる。
【0200】
すなわち、エンコーディング装置は、現在ブロックに対する最終リファインされた動きベクトルを導出するために多重レイヤ(または、多重パス、多重レベル、多重ステップ等)を使用してDMVRを適用するかどうかを決定することができる。
【0201】
このとき、エンコーディング装置は、前述した実施例によって現在ブロックに対してMDMVRを使用するかどうかを決定することができる。
【0202】
一実施例として、MDMVRの使用可否は、多数のパラメータセットでシグナリングされる情報に基づいて決定されることができる。一例として、MDMVRの使用可否を示すことに関連した第1のフラグ情報に基づいてMDMVRの使用可否が決定されることができる。第1のフラグ情報は、SPS(Sequence Parameter Set)でシグナリングされることができる。この場合、MDMVRの使用可否は、全体シーケンスに対して決められることができ、また、シーケンスレベルで追加制御情報をシグナリングし、下位レベル(例:PPS(Picture Parameter Set)/PH(Picture header)/SH(Slice header)/CU(Coding unit)及び/又は他の適切なヘッダ)でMDMVRの適用可否を決定することができる。一例として、SPSでシグナリングされた前記第1のフラグ情報に基づいて(すなわち、MDMVRが使われることと関連した第1のフラグ情報に基づいて)、例えば、第1のフラグ情報の値が1である場合、MDMVRの制御に関連した第2のフラグ情報がシグナリングされることができる。第2のフラグ情報は、下位レベルでMDMVRの使用可否を制御するための情報であり、PPS、PH、SH、CUまたは他の適切なヘッダでMDMVRに関連したシンタックスエレメントが存在するかどうかに関連した情報である。
【0203】
具体的な例として、
図7及び
図8を参照して説明したように、SPSレベルでのMDMVRが使われるかどうかに関連した第1のフラグ情報に基づいて(例:第1のフラグ情報の値が1である場合)、PPS/PHでのMDMVR制御に関連した第2のフラグ情報がシグナリングされることができる。このとき、第2のフラグ情報がPPS/PHでのMDMVR制御に関連したシンタックスエレメントが存在することを示す場合、PPS/PHからMDMVR制御に関連したシンタックスエレメントがさらにシグナリングされることができる。または、第2のフラグ情報がPPS/PHでのMDMVR制御に関連したシンタックスエレメントが存在しないことを示す場合、下位レベル(例:CU、SH)でMDMVRに関連したシンタックスエレメントがシグナリングされることができる。
【0204】
また、一例として、前述のような上位レベル(例:SPS)でシグナリングされる第1のフラグ情報は、固定長さコーディング(fixed length coding)により二進化されることができる。また、第1のフラグ及び/又は第2のフラグに基づいてMDMVRに関連したシンタックスエレメントがPPS、PH、SH、CUのような下位レベルでシグナリングされる場合、前記MDMVRに関連したシンタックスエレメントは、コンテキストコーディング(context coding)に基づいて導出(すなわち、パーシング)されることができる。例えば、前記MDMVRに関連したシンタックスエレメントは、MDMVR実行のために必要な細部情報を含むことができ、例えば、レイヤの数、MDMVR適用のグラニュラリティ(granularity)、早期終了が明示的に使われるかどうか等を含むことができる。また、前記MDMVRに関連したシンタックスエレメントのコンテキストコーディングを実行するにあたって、コンテキストモデルの数、初期化値が決定されることができ、このとき、ブロック統計の関連側面を考慮して決定されることができる。
【0205】
また、一実施例として、現在ブロックが少なくとも一つのPU(prediction unit)を含むCU(coding unit)であり、この場合、少なくとも一つのPUに対してMDMVRのレイヤ数が決定されることができる。例えば、現在ブロック内の第1のPUに対しては2個のレイヤを使用してMDMVRを適用することができ、現在ブロック内の第2のPUに対しては3個のレイヤを使用してMDMVRを適用することができる。または、各CU毎にMDMVRのレイヤ数が決定されることもできる。この場合、CU内の全てのPUは、同じレイヤ数を有することができる。
【0206】
また、一実施例として、MDMVRの使用可否は、MVD(Motion Vector Difference)情報に基づいて決定されることができる。例えば、MVDがあらかじめ決定された閾値を超えるかどうかに基づいて、まず、DMVRの使用可否を決定することができる。一例として、MVDがあらかじめ決定された閾値を超えると、DMVRを適用しないことと決定できる。このとき、閾値は、1/4画素(pel)、1/2画素(pel)、1画素(pel)、4画素(pel)及び/又はその他の適切なMVD単位で選択されることができる。または、特定ブロック大きさに対して、前記閾値を満たすことができない場合、DMVRを適用しない。または、例えば、前記閾値に基づいてDMVRに単一レイヤ、または多重レイヤを適用すべきかどうかを決定することができる。例えば、MVDが特定閾値の範囲内にある場合、8x8レベルでない16x16レベルでDMVRを実行することができる。言い換えると、MVDがあらかじめ決定された閾値を超えるかどうかに基づいてMDMVRが現在ブロックに適用されるかどうかを決定することができる。一例として、MVDがあらかじめ決定された閾値を超えると、MDMVRを適用しないことと決定できる。また、前記MVD情報があらかじめ決定された閾値範囲内にあるかに基づいてMDMVRのレイヤ数が決定されることもできる。
【0207】
また、一実施例として、現在ブロックにMDMVRが使われることに基づいて(すなわち、現在ブロックにMDMVRが実行される場合)、MDMVRの各レイヤに対して探索パターン及び探索領域の大きさを決定することができる。
【0208】
例えば、各レイヤは、同じ探索パターンを有することもでき、異なる探索パターンを有することもできる。また、例えば、探索パターンは、正方形、ダイアモンド型、十字型、長方形及び/又はブロックの基本的な動きをキャプチャするための他の適切な形状を含むことができる。このとき、探索パターンは、x方向の動きベクトル及びy方向の動きベクトルに基づいて決定され、または垂直動き及び水平動きに基づいて決定されることができる。一例として、x方向の動きベクトルがy方向の動きベクトルより大きい場合、長方形探索パターンがブロックの基本的な動きをキャプチャするときにさらに適合できる。または、一例として、垂直動きがより多くのブロックに対してダイアモンド型/十字型探索パターンがさらに適合できる。
【0209】
また、例えば、探索領域の大きさは、ブロック大きさに基づいて決定されることができる。一例として、大きいブロックが使われる場合、7x7/8x8、またはそれ以上、または他の適切な正方形/ダイアモンド型探索パターンを使用することができる。または、一例として、小さいブロックが使われる場合、探索領域は、5x5より小さい大きさを有することができる。または、一例として、探索領域の大きさは、基本的な動き情報、利用可能な隣接ブロックの動き特性に基づいて決定されることができ、例えば、ブロックMVDがあらかじめ決定された閾値Tより大きい場合、7x7探索領域が使われることができる。
【0210】
また、例えば、探索ポイントは、探索パターンに基づいて決定されることができる。一例として、初期に探索ポイントと相関関係がある場合、より大きい大きさの探索パターンを使用することができる。以後、より小さい大きさの探索パターン及びより少ない数の探索ポイントが考慮されると、レイヤで探索領域を減らすことができる。
【0211】
また、例えば、初期探索パターンの正確度は整数をベースに決められ、追加レイヤ正確度は1/2-画素(pel)または1/4-画素(pel)で決められることができる。
【0212】
また、一実施例として、リファインされた動きベクトルは、SAD(Sum of Absolute Differences)またはMR-SAD(Mean Removed-Sum of Absolute Difference)に基づいて導出されることができる。言い換えると、MDMVRの適用により導出されるリファインされた動きベクトルは、SADまたはMR-SADに基づいて歪曲を測定し、これに基づいて最終リファインされた動きベクトルが導出されることができる。また、リファインされた動きベクトルを導出するにあたって、L0ノルム(norm)またはユークリッドノルム(Euclidean Norm)(L2)などを使用することもできる。
【0213】
また、一実施例として、リファインされた動きベクトルは、加重値を適用した最小歪曲費用に基づいて導出されることができる。ここで、最小歪曲費用は、特定探索地点の歪曲が他の探索地点より優先する場合に基づいて加重値を適用して計算されることができる。一例として、初期探索地点が探索範囲内の他の地点より優先すべき場合、初期エラー/歪曲メトリック(error/distortion metric)に対する加重値を適用して初期値(ら)に対する最小歪曲費用を計算することができる。または、一例として、隣接ブロックの利用可能な動き情報を考慮して加重値を決定することで最小歪曲費用を計算することができる。
【0214】
また、一実施例として、現在ブロックにMDMVRが使われることに基づいて、MDMVRの各レイヤに対して終了条件を満たすかどうかを決定してMDMVRを実行することができる。前記終了条件は、初期動きベクトルとリファインされた動きベクトルとの間の距離、サンプルベースの差、またはSADベースの差が閾値より小さいかどうかに基づいて各レイヤに対するMDMVR終了を決定することができる。一例として、初期開始MVと繰り返し間の地点でのMV(すなわち、リファインされたMV)との間の距離が閾値Tより小さい場合、終了条件を満たすと判断してMDMVRを終了することができる。また、前記終了条件を満たすかどうかを決定するにあたって、MDMVRのレイヤ間に確認することができる。一例として、MDMVRの1番目のレイヤ以後に終了条件を満たすと判断した場合、以後残りのレイヤに対してはMDMVRを実行せずに早期終了されることができる。
【0215】
また、一実施例として、処理を待つ間に参照サンプルをあらかじめフェッチして(pre-fetch)メモリに格納することができる。例えば、サンプルをあらかじめフェッチした(pre-fetch)場合、サンプルは参照サンプルパディングされることができる。
【0216】
エンコーディング装置は、現在ブロックにMDMVRが使われることに基づいて、現在ブロックに対するリファインされた動きベクトルを導出することができる(S910)。
【0217】
すなわち、前述のような実施例(ら)によって現在ブロックにMDMVRが使われるかどうかが決定されることができる。このとき、エンコーディング装置は、MDMVRが使われることと決定されると、現在ブロックに対してMDMVRを適用してリファインされた動きベクトルを導出することができる。
【0218】
一実施例として、まず、現在ブロックに対してインター予測を実行する場合、エンコーディング装置は、現在ブロックの動き情報(動きベクトル、参照ピクチャインデックス等)を導出することができる。例えば、エンコーディング装置は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチ領域)内で現在ブロックと類似したブロックをサーチし、現在ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。これに基づいて参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、参照ブロックと現在ブロックとの位置差に基づいて動きベクトルを導出することができる。
【0219】
また、エンコーディング装置は、多様な予測モードのうち現在ブロックに対して適用されるインター予測モードを決定することができる。エンコーディング装置は、多様な予測モードに対するRD costを比較して現在ブロックに対する最適の予測モードを決定することができる。
【0220】
以後、前述したように、現在ブロックに対してMDMVRを適用することに決定された場合、エンコーディング装置は、動きベクトルに対してMDMVRを適用して最終的にリファインされた動きベクトルを導出することができる。
【0221】
エンコーディング装置は、リファインされた動きベクトルに基づいて現在ブロックに対する予測サンプルを導出することができ(S920)、前記予測サンプルに基づいて現在ブロックに対するレジデュアルサンプルを導出することができる(S930)。
【0222】
すなわち、エンコーディング装置は、現在ブロックに対する原本サンプルと現在ブロックの予測サンプルとに基づいてレジデュアルサンプルを導出することができる。そして、エンコーディング装置は、レジデュアルサンプルに対する情報を生成することができる。ここで、レジデュアルサンプルに対する情報は、レジデュアルサンプルに変換及び量子化を実行して導出された量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。
【0223】
エンコーディング装置は、映像情報(または、ビデオ情報)をエンコーディングすることができる(S940)。ここで、映像情報は、予測関連情報(例えば、予測モード情報)を含むことができる。また、映像情報は、前記レジデュアル情報を含むことができる。すなわち、映像情報は、エンコーディング過程で導出される多様な情報を含むことができ、このような多様な情報を含んでエンコーディングされることができる。
【0224】
一実施例として、エンコーディング装置は、レジデュアルサンプルに関する情報を含む映像情報をエンコーディングしてビットストリームで生成できる。また、エンコーディング装置は、予測関連情報(例えば、予測モード情報)を含む映像情報をエンコーディングしてビットストリームで生成できる。
【0225】
前述のような多様な情報を含む映像情報は、エンコーディングされてビットストリーム形態で出力されることができる。ビットストリームは、ネットワークまたは(デジタル)格納媒体を介してデコーディング装置に送信されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。
【0226】
図11及び
図12は、本文書の実施例(ら)に係るビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0227】
図11に開示された方法は、
図3または
図12に開示されたデコーディング装置300により実行されることができる。ここで、
図12に開示されたデコーディング装置300は、
図3に開示されたデコーディング装置300を簡略に示したものである。具体的に、
図11のステップS1100は、
図12に開示されたエントロピーデコーディング部310及び/又は予測部330により実行されることができ、
図11のステップS1110~S1120は、
図12に開示された予測部330により実行されることができ、
図11のステップS1130は、
図12に開示された加算部340により実行されることができる。また、図示されてはいないが、現在ブロックに対する予測情報及び/又はレジデュアル情報を受信する過程は、前記デコーディング装置300のエントロピーデコーディング部310により実行されることができ、レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプルを導出する過程は、前記デコーディング装置300のレジデュアル処理部320により実行されることができる。また、
図11に開示された方法は、本文書で詳述した実施例を含んで実行されることができる。したがって、
図11では前述した実施例と重複する内容に関して具体的な説明を省略または簡単にする。
【0228】
図11を参照すると、デコーディング装置は、現在ブロックに対して多重レイヤ(multi-layer)DMVR(Decoder-side Motion Vector Refinement)(MDMVR)の使用可否を決定することができる(S1100)。
【0229】
ここで、前述したように、多重レイヤDMVRは、MDMVRと指称されることができ、多重パスDMVR、多重レベルDMVR、または多重ステップDMVRなどと混用または代替されて使われることもできる。
【0230】
すなわち、デコーディング装置は、現在ブロックに対する最終リファインされた動きベクトルを導出するために多重レイヤ(または、多重パス、多重レベル、多重ステップ等)を使用してDMVRを適用するかどうかを決定することができる。
【0231】
このとき、デコーディング装置は、前述した実施例によって現在ブロックに対してMDMVRを使用するかどうかを決定することができる。
【0232】
一実施例として、MDMVRの使用可否は、多数のパラメータセットでシグナリングされる情報に基づいて決定されることができる。一例として、MDMVRの使用可否を示すことに関連した第1のフラグ情報に基づいてMDMVRの使用可否が決定されることができる。第1のフラグ情報は、SPS(Sequence Parameter Set)でシグナリングされることができる。この場合、MDMVRの使用可否は、全体シーケンスに対して決められることができ、また、シーケンスレベルで追加制御情報をシグナリングし、下位レベル(例:PPS(Picture Parameter Set)/PH(Picture header)/SH(Slice header)/CU(Coding unit)及び/又は他の適切なヘッダ)でMDMVRの適用可否を決定することができる。一例として、SPSでシグナリングされた前記第1のフラグ情報に基づいて(すなわち、MDMVRが使われることと関連した第1のフラグ情報に基づいて)、例えば、第1のフラグ情報の値が1である場合、MDMVRの制御に関連した第2のフラグ情報がシグナリングされることができる。第2のフラグ情報は、下位レベルでMDMVRの使用可否を制御するための情報であり、PPS、PH、SH、CUまたは他の適切なヘッダでMDMVRに関連したシンタックスエレメントが存在するかどうかに関連した情報である。
【0233】
具体的な例として、
図7及び
図8を参照して説明したように、SPSレベルでのMDMVRが使われるかどうかに関連した第1のフラグ情報に基づいて(例:第1のフラグ情報の値が1である場合)、PPS/PHでのMDMVR制御に関連した第2のフラグ情報がシグナリングされることができる。このとき、第2のフラグ情報がPPS/PHでのMDMVR制御に関連したシンタックスエレメントが存在することを示す場合、PPS/PHからMDMVR制御に関連したシンタックスエレメントがさらにシグナリングされることができる。または、第2のフラグ情報がPPS/PHでのMDMVR制御に関連したシンタックスエレメントが存在しないことを示す場合、下位レベル(例:CU、SH)でMDMVRに関連したシンタックスエレメントがシグナリングされることができる。
【0234】
また、一例として、前述のような上位レベル(例:SPS)でシグナリングされる第1のフラグ情報は、固定長さコーディング(fixed length coding)により二進化されることができる。また、第1のフラグ及び/又は第2のフラグに基づいてMDMVRに関連したシンタックスエレメントがPPS、PH、SH、CUのような下位レベルでシグナリングされる場合、前記MDMVRに関連したシンタックスエレメントは、コンテキストコーディング(context coding)に基づいて導出(すなわち、パーシング)されることができる。例えば、前記MDMVRに関連したシンタックスエレメントは、MDMVR実行のために必要な細部情報を含むことができ、例えば、レイヤの数、MDMVR適用のグラニュラリティ(granularity)、早期終了が明示的に使われるかどうか等を含むことができる。また、前記MDMVRに関連したシンタックスエレメントのコンテキストコーディングを実行するにあたって、コンテキストモデルの数、初期化値が決定されることができ、このとき、ブロック統計の関連側面を考慮して決定されることができる。
【0235】
また、一実施例として、現在ブロックが少なくとも一つのPU(prediction unit)を含むCU(coding unit)であり、この場合、少なくとも一つのPUに対してMDMVRのレイヤ数が決定されることができる。例えば、現在ブロック内の第1のPUに対しては2個のレイヤを使用してMDMVRを適用することができ、現在ブロック内の第2のPUに対しては3個のレイヤを使用してMDMVRを適用することができる。または、各CU毎にMDMVRのレイヤ数が決定されることもできる。この場合、CU内の全てのPUは、同じレイヤ数を有することができる。
【0236】
また、一実施例として、MDMVRの使用可否は、MVD(Motion Vector Difference)情報に基づいて決定されることができる。例えば、MVDがあらかじめ決定された閾値を超えるかどうかに基づいて、まず、DMVRの使用可否を決定することができる。一例として、MVDがあらかじめ決定された閾値を超えると、DMVRを適用しないことと決定できる。このとき、閾値は、1/4画素(pel)、1/2画素(pel)、1画素(pel)、4画素(pel)及び/又はその他の適切なMVD単位で選択されることができる。または、特定ブロック大きさに対して、前記閾値を満たすことができない場合、DMVRを適用しない。または、例えば、前記閾値に基づいてDMVRに単一レイヤ、または多重レイヤを適用すべきかどうかを決定することができる。例えば、MVDが特定閾値の範囲内にある場合、8x8レベルでない16x16レベルでDMVRを実行することができる。言い換えると、MVDがあらかじめ決定された閾値を超えるかどうかに基づいてMDMVRが現在ブロックに適用されるかどうかを決定することができる。一例として、MVDがあらかじめ決定された閾値を超えると、MDMVRを適用しないことと決定できる。また、前記MVD情報があらかじめ決定された閾値範囲内にあるかに基づいてMDMVRのレイヤ数が決定されることもできる。
【0237】
また、一実施例として、現在ブロックにMDMVRが使われることに基づいて(すなわち、現在ブロックにMDMVRが実行される場合)、MDMVRの各レイヤに対して探索パターン及び探索領域の大きさを決定することができる。
【0238】
例えば、各レイヤは、同じ探索パターンを有することもでき、異なる探索パターンを有することもできる。また、例えば、探索パターンは、正方形、ダイアモンド型、十字型、長方形及び/又はブロックの基本的な動きをキャプチャするための他の適切な形状を含むことができる。このとき、探索パターンは、x方向の動きベクトル及びy方向の動きベクトルに基づいて決定され、または垂直動き及び水平動きに基づいて決定されることができる。一例として、x方向の動きベクトルがy方向の動きベクトルより大きい場合、長方形探索パターンがブロックの基本的な動きをキャプチャするときにさらに適合できる。または、一例として、垂直動きがより多くのブロックに対してダイアモンド型/十字型探索パターンがさらに適合できる。
【0239】
また、例えば、探索領域の大きさは、ブロック大きさに基づいて決定されることができる。一例として、大きいブロックが使われる場合、7x7/8x8、またはそれ以上、または他の適切な正方形/ダイアモンド型探索パターンを使用することができる。または、一例として、小さいブロックが使われる場合、探索領域は、5x5より小さい大きさを有することができる。または、一例として、探索領域の大きさは、基本的な動き情報、利用可能な隣接ブロックの動き特性に基づいて決定されることができ、例えば、ブロックMVDがあらかじめ決定された閾値Tより大きい場合、7x7探索領域が使われることができる。
【0240】
また、例えば、探索ポイントは、探索パターンに基づいて決定されることができる。一例として、初期に探索ポイントと相関関係がある場合、より大きい大きさの探索パターンを使用することができる。以後、より小さい大きさの探索パターン及びより少ない数の探索ポイントが考慮されると、レイヤで探索領域を減らすことができる。
【0241】
また、例えば、初期探索パターンの正確度は、整数をベースに決められ、追加レイヤ正確度は1/2-画素(pel)または1/4-画素(pel)で決められることができる。
【0242】
また、一実施例として、リファインされた動きベクトルは、SAD(Sum of Absolute Differences)またはMR-SAD(Mean Removed-Sum of Absolute Difference)に基づいて導出されることができる。言い換えると、MDMVRの適用により導出されるリファインされた動きベクトルは、SADまたはMR-SADに基づいて歪曲を測定し、これに基づいて最終リファインされた動きベクトルが導出されることができる。また、リファインされた動きベクトルを導出するにあたって、L0ノルム(norm)またはユークリッドノルム(Euclidean Norm)(L2)などを使用することもできる。
【0243】
また、一実施例として、リファインされた動きベクトルは、加重値を適用した最小歪曲費用に基づいて導出されることができる。ここで、最小歪曲費用は、特定探索地点の歪曲が他の探索地点より優先する場合に基づいて加重値を適用して計算されることができる。一例として、初期探索地点が探索範囲内の他の地点より優先すべき場合、初期エラー/歪曲メトリック(error/distortion metric)に対する加重値を適用して初期値(ら)に対する最小歪曲費用を計算することができる。または、一例として、隣接ブロックの利用可能な動き情報を考慮して加重値を決定することで最小歪曲費用を計算することができる。
【0244】
また、一実施例として、現在ブロックにMDMVRが使われることに基づいて、MDMVRの各レイヤに対して終了条件を満たすかどうかを決定してMDMVRを実行することができる。前記終了条件は、初期動きベクトルとリファインされた動きベクトルとの間の距離、サンプルベースの差、またはSADベースの差が閾値より小さいかどうかに基づいて各レイヤに対するMDMVR終了を決定することができる。一例として、初期開始MVと繰り返し間の地点でのMV(すなわち、リファインされたMV)との間の距離が閾値Tより小さい場合、終了条件を満たすと判断してMDMVRを終了することができる。また、前記終了条件を満たすかどうかを決定するにあたって、MDMVRのレイヤ間に確認することができる。一例として、MDMVRの1番目のレイヤ以後に終了条件を満たすと判断した場合、以後余りレイヤに対してはMDMVRを実行せずに早期終了されることができる。
【0245】
また、一実施例として、処理を待つ間に参照サンプルをあらかじめフェッチして(pre-fetch)メモリに格納することができる。例えば、サンプルをあらかじめフェッチした(pre-fetch)場合、サンプルは参照サンプルパディングされることができる。
【0246】
デコーディング装置は、現在ブロックにMDMVRが使われることに基づいて、現在ブロックに対するリファインされた動きベクトルを導出することができる(S1110)。
【0247】
すなわち、前述のような実施例(ら)によって現在ブロックにMDMVRが使われるかどうかが決定されることができる。このとき、デコーディング装置は、MDMVRが使われることと決定されると、現在ブロックに対してMDMVRを適用してリファインされた動きベクトルを導出することができる。
【0248】
一実施例として、まず、デコーディング装置は、ビットストリームから予測関連情報を含む映像情報を取得し、前記予測関連情報に基づいて現在ブロックに対する予測モードを決定することができる。そして、デコーディング装置は、予測モードに基づいて現在ブロックの動き情報(動きベクトル、参照ピクチャインデックス等)を導出することができる。ここで、予測モードは、スキップモード、マージモード、(A)MVPモードなどを含むことができる。
【0249】
以後、前述したように、現在ブロックに対してMDMVRを適用することに決定された場合、デコーディング装置は、動きベクトルに対してMDMVRを適用して最終的にリファインされた動きベクトルを導出することができる。
【0250】
デコーディング装置は、リファインされた動きベクトルに基づいて現在ブロックに対する予測サンプルを導出することができ(S1120)、前記予測サンプルに基づいて現在ブロックに対する復元サンプルを生成することができる(S1130)。
【0251】
一実施例として、デコーディング装置は、予測モードによって予測サンプルを直ちに復元サンプルとして利用することもでき、または前記予測サンプルにレジデュアルサンプルを加えて復元サンプルを生成することもできる。
【0252】
デコーディング装置は、現在ブロックに対するレジデュアルサンプルが存在する場合、現在ブロックに対するレジデュアルに関する情報を受信することができる。レジデュアルに関する情報は、レジデュアルサンプルに関する変換係数を含むことができる。デコーディング装置は、レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプル(または、レジデュアルサンプルアレイ)を導出することができる。具体的に、デコーディング装置は、レジデュアル情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて1次元ベクトル形態を有することができる。デコーディング装置は、前記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコーディング装置は、変換係数に基づいてレジデュアルサンプルを導出することができる。
【0253】
デコーディング装置は、予測サンプルとレジデュアルサンプルとに基づいて復元サンプルを生成することができ、前記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出することができる。具体的に、デコーディング装置は、予測サンプルとレジデュアルサンプルとの間の和に基づいて復元サンプルを生成することができる。以後、デコーディング装置は、必要によって主観的/客観的画質を向上させるためにデブロッキングフィルタリング及び/又はSAO手順のようなインループフィルタリング手順を前記復元ピクチャに適用できることは、前述した通りである。
【0254】
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本文書の実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の一つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0255】
前述した本文書による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/又はデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
【0256】
本文書において、実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。すなわち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
【0257】
また、本文書の実施例(ら)が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(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)などを含むことができる。
【0258】
また、本文書の実施例(ら)が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書の実施例(ら)に係るデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読みだすことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
【0259】
また、本文書の実施例(ら)は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例(ら)によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
【0260】
図13は、本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【0261】
図13を参照すると、本文書の実施例が適用されるコンテンツストリーミングシステムは、大まかに、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0262】
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されることができる。
【0263】
前記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0264】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間命令/応答を制御する役割をする。
【0265】
前記ストリーミングサーバは、メディア格納所及び/またはエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
【0266】
前記ユーザ装置の例として、携帯電話、スマートフォン(smartphone)、ノートブックコンピュータ(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、デスクトップコンピュータ、デジタルサイニジなどがある。
【0267】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは分散処理されることができる。
【0268】
本文書に記載された請求項は、多様な方式で組み合わせられることができる。例えば、本文書の方法請求項の技術的特徴が組み合わせられて装置で具現されることもでき、本文書の装置請求項の技術的特徴が組み合わせられて方法で具現されることもできる。また、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置で具現されることもでき、本文書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法で具現されることもできる。