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

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

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

特許7521030マージデータシンタックスにおける重複シンタックスの除去方法及び装置
<>
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図1
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図2
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図3
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図4
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図5
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図6
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図7
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図8
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図9
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図10
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図11
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図12
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図13
  • 特許-マージデータシンタックスにおける重複シンタックスの除去方法及び装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】マージデータシンタックスにおける重複シンタックスの除去方法及び装置
(51)【国際特許分類】
   H04N 19/103 20140101AFI20240716BHJP
   H04N 19/159 20140101ALI20240716BHJP
   H04N 19/176 20140101ALI20240716BHJP
   H04N 19/50 20140101ALI20240716BHJP
   H04N 19/70 20140101ALI20240716BHJP
【FI】
H04N19/103
H04N19/159
H04N19/176
H04N19/50
H04N19/70
【請求項の数】 3
(21)【出願番号】P 2023030944
(22)【出願日】2023-03-01
(62)【分割の表示】P 2021572886の分割
【原出願日】2020-06-23
(65)【公開番号】P2023065569
(43)【公開日】2023-05-12
【審査請求日】2023-03-01
(31)【優先権主張番号】62/865,289
(32)【優先日】2019-06-23
(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)【発明者】
【氏名】パク ネリ
(72)【発明者】
【氏名】キム スンファン
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2022-537255(JP,A)
【文献】特表2022-538820(JP,A)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 5)",Document: JVET-N1001-v8, [online],JVET-N1001 (version 8),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月11日,Pages 32-34,53-58,80,109-117,[令和5年1月23日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6640> and <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N1001-v8.zip>.,(See document file "JVET-N1001-v8.docx" in the zip file "JVET-N1001-v8.zip".)
【文献】Yu-Ling Hsiao, et al.,"CE4-related: On merge flags signalling",Document: JVET-O0278-v1, [online],JVET-O0278 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月25日,Pages 1-6,[令和5年1月23日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6883> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0278-v1.zip>.,(See document file "JVET-O0278-v1.docx" in the zip file "JVET-O0278-v1.zip".)
【文献】Benjamin Bross, et al.,"Versatile Video Coding (Draft 5)",Document: JVET-N1001-v8, [online],JVET-O0278 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月25日,Pages 32-34,53-58,80,109-118,[令和5年1月23日検索], インターネット, <URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6883> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0278-v1.zip>.,(See document file "JVET-O0278_Spec.docx" in the zip file "JVET-O0278-v1.zip".)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
映像デコーディングのためのデコーディング装置であって、
メモリと、
前記メモリに接続される少なくとも一つのプロセッサとを備え、
前記少なくとも一つのプロセッサは、
レギュラーマージモードが現在ブロックに適用されると決定し、
前記レギュラーマージモードに基づいてマージ候補リスト(merge candidate list)を構成し、
前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出し、
前記動き情報に基づいて前記現在ブロックの予測サンプルを生成するように構成され、
ビットストリームはCIIP(combined inter-picture merge and intra-picture prediction)が可用であるか否かを示すCIIP可用フラグに関する情報を含み、
前記レギュラーマージモードは、前記ビットストリームから取得したレギュラーマージフラグ(regular merge flag)に基づいて前記現在ブロックに適用されると決定され、
前記レギュラーマージフラグは、前記CIIP可用フラグの値が1に等しいことに基づいて、前記ビットストリームから取得され、
前記CIIP可用フラグはSPS(Sequence Parameter Set)に含まれる、デコーディング装置。
【請求項2】
映像エンコーディングのためのエンコーディング装置であって、
メモリと、
前記メモリに接続される少なくとも一つのプロセッサとを備え、
前記少なくとも一つのプロセッサは、
現在ブロックに適用されるレギュラーマージモードを決定し、
前記レギュラーマージモードに基づいてマージ候補リスト(merge candidate list)を構成し、
前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出し、
前記動き情報に基づいて前記現在ブロックの予測サンプルを導出し、
映像情報をエンコーディングするように構成され、
前記映像情報は、CIIP(combined inter-picture merge and intra-picture prediction)が可用であるか否かを示すCIIP可用フラグに関する情報を含み、
前記映像情報は、前記CIIP可用フラグの値が1に等しいことに基づいてレギュラーマージフラグ(regular merge flag)を含み、
前記CIIP可用フラグはSPS(Sequence Parameter Set)に含まれる、エンコーディング装置。
【請求項3】
映像に対するデータの送信装置であって、
ビットストリームを生成するように構成された少なくとも一つのプロセッサと、
前記ビットストリームは、現在ブロックに適用されるレギュラーマージモードを決定し、前記レギュラーマージモードに基づいてマージ候補リストを構成し、前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出し、前記動き情報に基づいて前記現在ブロックの予測サンプルを導出し、映像情報をエンコーディングすることに基づいて生成され、
前記ビットストリームを含む前記データを送信するように構成された送信機とを備え、 前記映像情報は、CIIP(combined inter-picture merge and intra-picture prediction)が可用であるか否かを示すCIIP可用フラグに関する情報を含み、
前記映像情報は、前記CIIP可用フラグの値が1に等しいことに基づいてレギュラーマージフラグ(regular merge flag)を含み、
前記CIIP可用フラグはSPS(Sequence Parameter Set)に含まれる、映像に対するデータの送信装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ビデオ/映像コーディングシステムにおいてマージデータシンタックス(merge data syntax )の重複シンタックスを除去する方法及び装置に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)映像/ビデオのような高解像度、高品質の映像/ビデオに対する需要が様々な分野で増加している。映像/ビデオデータが高解像度、高品質になるほど、既存の映像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して映像データを送信するか、既存の格納媒体を利用して映像/ビデオデータを格納する場合、送信費用と格納費用が増加される。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有する映像/ビデオに対する放送が増加している。
【0004】
これにより、前記のような様々な特性を有する高解像度・高品質の映像/ビデオの情報を効果的に圧縮して送信するか、格納し、再生するために高効率の映像/ビデオ圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、映像コーディング効率を高める方法及び装置を提供することにある。
【0006】
本文書の他の技術的課題は、効率的にインター予測(inter prediction)を行う方法及び装置を提供することにある。
【0007】
本文書のまた他の技術的課題は、インター予測時に不必要なシグナリングを除去する方法及び装置を提供することにある。
【0008】
本文書のまた他の技術的課題は、インター予測時に効率的にマージモード(merge mode)に関する情報をシグナリングする方法及び装置を提供することにある。
【0009】
本文書のまた他の技術的課題は、マージデータシンタックスにおいて重複シンタックスを除去する方法及び装置を提供することにある。
【課題を解決するための手段】
【0010】
本文書の一実施形態によれば、デコーディング装置により行われるデコーディング方法は、ビットストリームから取得した予測モードに関する情報に基づいて現在ブロックの予測モードを決定するステップと、前記予測モードに基づいてマージ候補リスト(merge candidate list)を構成するステップと、前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出するステップと、前記動き情報に基づいて前記現在ブロックの予測サンプルを生成するステップとを含み、前記ビットストリームはCIIP(combined inter-picture merge and intra-picture prediction)が可用であるか否かを示すCIIP可用フラグに関する情報を含み、前記決定するステップは、前記CIIP可用フラグに基づいて前記ビットストリームからレギュラーマージフラグ(regular merge flag)を取得するステップを含む。
【0011】
本文書の他の実施形態によれば、エンコーディング装置により行われるエンコーディング方法は、現在ブロックの予測モードを決定するステップと、前記予測モードに基づいてマージ候補リスト(merge candidate list)を構成するステップと、前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出するステップと、前記動き情報に基づいて前記現在ブロックの予測サンプルを導出するステップと、前記予測サンプルに基づいてレジデュアルサンプルを導出するステップと、前記予測モードに基づいて生成された予測モードに関する情報と前記レジデュアルサンプルに基づいて生成されたレジデュアル情報を含む映像情報をエンコーディングするステップとを含み、前記映像情報は、CIIPか可用であるか否かを示すCIIP可用フラグに関する情報を含み、前記映像情報は前記CIIP可用フラグに基づいてレギュラーマージフラグを含む。
【0012】
本文書のまた他の実施形態によれば、コンピュータ読み取り可能なデジタル格納媒体であって、前記デジタル格納媒体は、デコーディング装置によりデコーディング方法を行うようにする情報を含み、前記デコーディング方法は、ビットストリームから取得した予測モードに関する情報に基づいて現在ブロックの予測モードを決定するステップと、前記予測モードに基づいてマージ候補リスト(merge candidate list)を構成するステップと、前記マージ候補リストに基づいて前記現在ブロックの動き情報を導出するステップと、前記動き情報に基づいて前記現在ブロックの予測サンプルを生成するステップとを含み、前記ビットストリームは、CIIP(combined inter-picture merge and intra-picture prediction)が可用であるか否かを示すCIIP可用フラグに関する情報を含み、前記決定するステップは、前記CIIP可用フラグに基づいて前記ビットストリームからレギュラーマージフラグ(regular merge flag)を取得するステップを含む。
【発明の効果】
【0013】
本文書の一実施形態によれば、全般的な映像/ビデオ圧縮効率を向上させることができる。
【0014】
本文書の一実施形態によれば、効率的にインター予測を行うことができる。
【0015】
本文書の一実施形態によれば、インター予測時に不要なシンタックスのシグナリングを効率的に除去することができる。
【0016】
本文書の一実施形態によれば、インター予測時に効率的にマージモード(merge mode)に関する情報をシグナリングすることができる。
【0017】
本文書の一実施形態によれば、マージデータシンタックスにおいて重複シンタックスを除去することができる。
【図面の簡単な説明】
【0018】
図1】本文書の実施形態が適用できるビデオ/映像コーディングシステムの例を概略的に示す。
図2】本文書の実施形態が適用できるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。
図3】本文書の実施形態が適用できるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図4】エンコーディング装置内のインター予測部を概略的に示す図である。
図5】デコーディング装置内のインター予測部を概略的に示す図である。
図6】インター予測に使用できる空間的候補を説明する図である。
図7】インター予測に使用できる時間的候補を説明する図である。
図8】インター予測時に使用できるサブブロックベースの時間的動きベクトル予測プロセスを説明する図である。
図9】インター予測に適用できるためのパーティショニングモードを説明する図である。
図10】本文書の実施形態によるインター予測方法を含むビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
図11】本文書の実施形態によるインター予測方法を含むビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
図12】本文書の実施形態によるインター予測方法を含むビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
図13】本文書の実施形態によるインター予測方法を含むビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
図14】本文書において開示された実施形態が適用できるコンテンツストリーミングシステムの例を示す。
【発明を実施するための形態】
【0019】
本文書の開示は様々な変更を加えることができ、様々な実施形態が有することができるため、特定の実施形態を図面に例示し、詳細に説明しようとする。本文書で使用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なる意味を有しない限り、「少なくとも1つ」の表現を含む。本文書において「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在又は付加可能性を予め排除しないことと理解されるべきである。
【0020】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味するものではない。例えば、各構成のうち、2つ以上の構成が結合されて1つの構成をなすこともでき、1つの構成を複数の構成に分けることもできる。各構成が統合及び/又は分離された実施形態も本文書において開示された方法の本質から逸脱しない限り、本文書の開示範囲に含まれる。
【0021】
この文書において、“/”と“、”は“及び/又は”と解釈される。例えば,“A/B”は“A及び/又はB”と解釈され,“A、Bは“A及び/又はB”と解釈される。追加的に、“A/B/C”は“A、B及び/又はCの少なくとも1つ”を意味する。また、“A、B、C”も“A、B及び/又はCの少なくとも1つ”を意味する(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.")。
【0022】
追加的に、本文書において、“又は”は“及び/又は”と解釈される。例えば、“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.")。
【0023】
本文書は、ビデオ(video)/映像(image)コーディングに関する。例えば、この文書において開示された方法/実施形態は、VVC(versatile video coding)標準で開示される方法に適用できる。また、この文書で開示された方法/実施形態は、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)又は次世代ビデオ/映像コーディング標準(例えば、H.267,H.268など)において開示される方法に適用できる。
【0024】
本文書では、ビデオ/映像コーディングに関する様々な実施形態が提示され、他に言及がない限り、前記実施形態は互いに組み合わせられて行われることもできる。
【0025】
以下、添付した図面を参照して、本文書の実施形態をより詳細に説明する。以下、図面上の同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素に関して重複する説明は省略する。
【0026】
図1は、本文書の実施形態が適用できるビデオ/映像コーディングシステムの例を概略的に示す。
【0027】
図1に示すように、ビデオ/映像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を備えることができる。ソースデバイスは、エンコーディングされたビデオ(video)/映像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達することができる。
【0028】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を備えることができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを備えることができる。前記エンコーディング装置は、ビデオ/映像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/映像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に備えられることができる。受信機は、デコーディング装置に備えられることができる。レンダラは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0029】
ビデオソースは、ビデオ/映像のキャプチャ、合成、または生成過程などを介してビデオ/映像を取得できる。ビデオソースは、ビデオ/映像キャプチャデバイス及び/又はビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成できる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成され得るし、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0030】
エンコーディング装置は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0031】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達することができる。
【0032】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/映像をデコーディングすることができる。
【0033】
レンダラは、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
【0034】
本文書において、量子化/逆量子化及び/又は変換/逆変換の少なくとも1つは省略されてもよい。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は変換係数と呼ばれる。前記変換/逆変換が省略される場合、前記変換係数は係数又はレジデュアル係数と呼ばれてもよく、または表現の統一性のために変換係数と呼ばれてもよい。
【0035】
本文書において、量子化された変換係数及び変換係数は、それぞれ変換係数及びスケーリングされた(scaled)変換係数と呼ばれてもよい。この場合、レジデュアル情報は、変換係数(ら)に関する情報を含み、前記変換係数(ら)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(又は、前記変換係数(ら)に関する情報)に基づいて変換係数が導出され、前記変換係数に対する逆変換(スケーリング)によりスケーリングされた変換係数が導出される。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルを導出される。これは、本文書の他の部分でも同様に適用/表現できる。
【0036】
この文書においてビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味し得る。ピクチャ(picture)は、一般に特定の時間帯の1つの映像を示す単位を意味し、スライス(slice)/タイル(tile)はコーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つ以上のCTU(coding tree unit)を含んでもよい。1つのピクチャは1つ以上のスライス/タイルで構成されてもよい。1つのピクチャは1つ以上のタイルグループで構成されてもよい。1つのタイルグループは1つ以上のタイルを含んでもよい。ブリックはピクチャ内のタイル内のCTU行の四角領域を示す(a brick may represent a rectangular region of CTU rows within a tile in a picture)。タイルは多数のブリックによりパーティショニングされ、各ブリックは前記タイル内の1つ以上の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)。スライスはピクチャの整数個のブリックを含み、前記整数個のブリックは1つのNALユニットに含まれる(A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit)。スライスは複数の完全なタイルで構成され、または、1つのタイルの完全なブリックの連続的なシーケンスであり得る(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と呼ばれてもよい。
【0037】
ピクセル(pixel)又はペル(pel)は、1つのピクチャ(又は、映像)を構成する最小の単位を意味し得る。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0038】
ユニット(unit)は、映像処理の基本単位を示す。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち、少なくとも1つを含む。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、cb、cr)ブロックを含んでもよい。ユニットは、場合によって、ブロック(block)又は領域(area)などの用語と混用して使用されてもよい。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又は、サンプルアレイ)、又は変換係数(transform coefficient)の集合(又は、アレイ)を含んでもよい。
【0039】
図2は、本文書の実施形態が適用できるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置とは、映像エンコーディング装置を含む。
【0040】
図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を内/外部コンポーネントとしてさらに備えることもできる。
【0041】
映像分割部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)を導く単位であることができる。
【0042】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)等の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0043】
エンコーディング装置200は、入力映像信号(原本ブロック、原本サンプルアレイ)でインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成でき、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力映像信号(原本ブロック、原本サンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成できる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるか決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0044】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0045】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。前記時間的周辺ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれることができ、前記時間的周辺ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成できる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードとマージモードとの場合に、インター予測部221は、周辺ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
【0046】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用できるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを用いることができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0047】
前記予測部(インター予測部221及び/又は前記イントラ予測部222を含む)を介して生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられることができる。
【0048】
変換部232は、レジデュアル信号に変換技法を適用して、変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)の少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するという際に、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換過程は正方形の同じサイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
【0049】
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に送信され、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。
【0050】
エントロピーエンコーディング部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に含まれることもできる。
【0051】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元できる。加算部155は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0052】
一方、ピクチャエンコーディング及び/又は復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0053】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成でき、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0054】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置100とデコーディング装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0055】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
【0056】
図3は、本文書の実施形態が適用できるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
【0057】
図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は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
【0058】
ビデオ/映像情報を含むビットストリームが入力されれば、デコーディング装置300は、図3のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元できる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコーディング装置300を介してデコーディング及び出力された復元映像信号は、再生装置を介して再生されることができる。
【0059】
デコーディング装置300は、図3のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出できる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてさらにピクチャをデコーディングすることができる。本文書において後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコーディング手順を介してデコーディングされて、前記ビットストリームから取得されることができる。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコーディングし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力できる。より具体的に、CABACエントロピーデコーディング方法は、ビットストリームで各シンタックス要素に該当するビンを受信し、デコーディング対象のシンタックス要素情報と周辺及びデコーディング対象ブロックのデコーディング情報あるいは以前ステップでデコーディングされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行い、各シンタックス要素の値に該当するシンボルを生成できる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコーディングされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが行われたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。
【0060】
レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出できる。また、エントロピーデコーディング部310でデコーディングされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピーデコーディング部310の構成要素であることもできる。一方、本文書に係るデコーディング装置は、ビデオ/映像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち、少なくとも1つを備えることができる。
【0061】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコーディング装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得できる。
【0062】
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0063】
予測部330は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成できる。予測部330は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるか決定することができ、具体的なイントラ/インター予測モードを決定できる。
【0064】
予測部330は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用できるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/映像情報に含まれてシグナリングされることができる。
【0065】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0066】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が行われ得るし、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0067】
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/又はイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成できる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0068】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または次のピクチャのインター予測のために使用されることもできる。
【0069】
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0070】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成でき、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0071】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納できる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納でき、イントラ予測部331に伝達することができる。
【0072】
本明細書において、エンコーディング装置200のフィルタリング部260、インター予測部221及びイントラ予測部222において説明された実施形態は、それぞれデコーディング装置300のフィルタリング部350、インター予測部332及びイントラ予測部331にも同一に又は対応するように適用できる。
【0073】
本文書によるビデオ/映像コーディング方法は、次のようなパーティショニング構造に基づいて行われる。具体的に、後述する予測、レジデュアル処理((逆)変換、(逆)量子化など)、シンタックス要素コーディング、フィルタリングなどの手順は、前記パーティショニング構造に基づいて導出されたCTU、CU(及び/又はTU、PU)に基づいて行われることができる。ブロックパーティショニング手順は、前述のエンコーディング装置の映像分割部210で行われ、パーティショニング関連情報がエントロピーエンコーディング部240で(エンコーディング)処理されてビットストリーム形態でデコーディング装置に伝達される。デコーディング装置のエントロピーデコーディング部310は、前記ビットストリームから取得した前記パーティショニング関連情報に基づいて現在ピクチャのブロックパーティショニング構造を導出し、これに基づいて映像デコーディングのための一連の手順(例えば、予測、レジデュアル処理、ブロック/ピクチャ復元、インループフィルタリングなど)を行うことができる。CUサイズとTUサイズが同一であってもよく、又は、CU領域内に複数のTUが存在する可能性もある。一方、CUサイズとは、一般的にルマ成分(サンプル)CB(coding block)サイズを示す。TUサイズとは、一般的にルマ成分(サンプル)TB(transform block)サイズを示す。クロマ成分(サンプル)CB又はTBサイズは、ピクチャ/映像のカラーフォーマット(クロマフォーマット、例えば、4:4:4、4:2:2、4:2:0など)による成分比に応じて、ルマ成分(サンプル)CB又はTBサイズに基づいて導出できる。前記TUサイズはmaxTbSizeに基づいて導出される。例えば、前記CUサイズが前記maxTbSizeより大きい場合、前記CUから前記maxTbSizeの複数のTU(TB)が導出され、前記TU(TB)単位で変換/逆変換が行われることができる。また、例えば、イントラ予測が適用される場合、イントラ予測モード/タイプは前記CU(又は、CB)単位で導出され、周辺参照サンプル導出及び予測サンプル生成手順はTU(又は、TB)単位で行われることができる。この場合、1つのCU(又は、CB)領域内に1つ又は複数のTU(又は、TB)が存在し、この場合、前記複数のTU(又は、TB)は同一のイントラ予測モード/タイプを共有することができる。
【0074】
また、本文書によるビデオ/イメージのコーディングにおいて、映像処理単位は階層的構造を有する。1つのピクチャは、1つ以上のタイル、ブリック、スライス及び/又はタイルグループに区分される。1つのスライスは1つ以上のブリックを含む。1つのブリックはタイル内の1つ以上のCTU行(row)を含む。スライスはピクチャの整数個のブリックを含む。1つのタイルグループは1つ以上のタイルを含む。1つのタイルは1つ以上のCTUを含む。前記CTUは1つ以上のCUに分割できる。タイルは、ピクチャ内で特定のタイル行及び特定のタイル列内のCTUsを含む四角領域である(A rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。タイルグループは、ピクチャ内のタイルラスタースキャンによる整数個のタイルを含む。スライスヘッダは、当該スライス(スライス内のブロック)に適用できる情報/パラメータを運ぶことができる。エンコーディング/デコーディング装置がマルチコアプロセッサを有する場合、前記タイル、スライス、ブリック及び/又はタイルグループに対するエンコーディング/デコーディング手順は並列処理される。本文書においてスライス又はタイルグループは混用されてもよい。すなわち、タイルグループヘッダはスライスヘッダと呼ばれてもよい。ここで、スライスは、intra(I)slice、predictive(P)slice及びbI-predictive(B)sliceを含むスライスタイプのいずれか1つのタイプを有する。Iスライス内のブロックに対しては予測のためにインター予測は使われず、イントラ予測のみが使用される。もちろん、この場合にも、予測なしに原本サンプル値をコーディングしてシグナリングすることもできる。Pスライス内のブロックに対してはイントラ予測又はインター予測が使用され、インター予測が使用される場合は単(uni)予測のみが使用される。一方、Bスライス内のブロックに対してはイントラ予測又はインター予測が使用され、インター予測が使用される場合には最大双(bi)予測まで使用されることができる。
【0075】
エンコーダにおいては、ビデオ映像の特性(例えば、解像度)に応じて又はコーディングの効率又は並列処理を考慮して、タイル/タイルグループ、ブリック、スライス、最大及び最小コーディングユニットサイズを決定し、これに関する情報又はこれを誘導できる情報がビットストリームに含まれる。
【0076】
デコーダにおいては、現在ピクチャのタイル/タイルグループ、ブリック、スライス、タイル内のCTUが複数のコーディングユニットに分割されているかなどを示す情報を得ることができる。このような情報は特定の条件下でのみ取得するように(送信できるように)すると効率を高めることができる。
【0077】
前記スライスヘッダ(スライスヘッダシンタックス)は、前記スライスに共通に適用できる情報/パラメータを含む。APS(APSシンタックス)又はPPS(PPSシンタックス)は、1つ以上のピクチャに共通に適用できる情報/パラメータを含む。前記SPS(SPSシンタックス)は、1つ以上のシーケンスに共通に適用できる情報/パラメータを含む。前記VPS(VPSシンタックス)は多重レイヤに共通に適用できる情報/パラメータを含む。前記DPS(DPSシンタックス)はビデオ全般に共通に適用できる情報/パラメータを含む。前記DPSはCVS(coded video sequence)のconcatenationに関連する情報/パラメータを含む。
【0078】
本文書において上位レベルシンタックスとは、前記APSシンタックス、PPSシンタックス、SPSシンタックス、VPSシンタックス、DPSシンタックス、スライスヘッダシンタックスの少なくとも1つを含む。
【0079】
また、例えば、前記タイル/タイルグループ/ブリック/スライスの分割及び構成などに関する情報は、前記上位レベルシンタックスを介してエンコーディング段において構成されてビットストリーム形態でデコーディング装置に伝達される。
【0080】
映像/ビデオコーディングにおいて、映像/ビデオを構成するピクチャは一連のデコーディング順序(decoding order)に従ってエンコーディング/デコーディングされる。デコーディングされたピクチャの出力順序(output order)に該当するピクチャ順序(picture order)は、前記デコーディング順序とは異なる設定になってもよく、これに基づいてインター予測時に順方向予測だけでなく、逆方向予測も行うことができる。
【0081】
ピクチャデコーディング手順は、概略的に、ビットストリームから(デコーディングによる)映像/ビデオ情報取得手順、ピクチャ復元手順及び復元されたピクチャに対するインループフィルタリング手順を含む。前記ピクチャ復元手順は、本文書において説明されるインター/イントラ予測及びレジデュアル処理(量子化された変換係数に対する逆量子化、逆変換)過程を経て取得した予測サンプル及びレジデュアルサンプルに基づいて行われる。前記ピクチャ復元手順により生成された復元ピクチャに対するインループフィルタリング手順により修正された(modified)復元ピクチャが生成され、前記修正された復元ピクチャがデコーディングされたピクチャとして出力され、またデコーディング装置の復号ピクチャバッファ又はメモリ360に格納されて以後にピクチャのデコーディング時にインター予測手順において参照ピクチャとして使用されることができる。場合によっては、前記インループフィルタリング手順は省略されてもよく、この場合、前記復元ピクチャがデコーディングされたピクチャとして出力され、またデコーディング装置の復号ピクチャバッファ又はメモリ360に格納されて以後にピクチャのデコーディング時にインター予測手順において参照ピクチャとして使用されることができる。前記インループフィルタリング手順は、前述のようにデブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順、及び/又はバイラテラルフィルタ(bi-lateral filter)手順などを含み、その一部又は全部が省略されてもよい。また、前記デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順及びバイラテラルフィルタ(bi-lateral filter)手順のいずれか1つ又は一部が順次適用されてもよく、又は全部が順次適用されてもよい。例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、SAO手順が行われてもよい。または、例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、ALF手順が行われてもよい。これは、エンコーディング装置においても同様に行われる。
【0082】
ピクチャエンコーディング手順は、概略的にピクチャ復元のための情報(例えば、予測情報、レジデュアル情報、パーティショニング情報など)をエンコーディングしてビットストリーム形態で出力する手順だけでなく、現在ピクチャに対する復元ピクチャを生成する手順及び復元ピクチャにインルーフフィルタリングを適用する手順(optional)を含んでもよい。エンコーディング装置は、逆量子化部234及び逆変換部235を介して量子化された変換係数から(修正された)レジデュアルサンプルを導出することができ、予測サンプルと前記(修正された)レジデュアルサンプルに基づいて復元ピクチャを生成することができる。このように生成された復元ピクチャは、前述のデコーディング装置において生成された復元ピクチャと同一であり得る。前記復元ピクチャに対するインループフィルタリング手順を介して修正された復元ピクチャが生成され、これは復号ピクチャバッファ又はメモリ270に格納されることができ、デコーディング装置における場合と同様に、以後にピクチャのエンコーディング時にインター予測手順において参照ピクチャとして使用されることができる。前述のように、場合によっては、前記ループフィルタリング手順の一部又は全部は省略されてもよい。前記エンループフィルタリング手順が行われる場合、(インループ)フィルタリング関連情報(パラメータ)がエントロピーエンコーディング部240においてエンコーディングされてビットストリーム形態で出力されることができ、デコーディング装置は、前記フィルタリング関連情報に基づいてエンコーディング装置と同一の方法でエンループフィルタリング手順を行うことができる。
【0083】
このようなインループフィルタリング手順によりブロッキングアーティファクト(artifact)及びリンギング(ringing)アーティファクトなど映像/動画コーディング時に発生するノイズを減らすことができ、主観的/客観的ビジュアルクオリティを高めることができる。また、エンコーディング装置とデコーディング装置において両方ともインループフィルタリング手順を行うことにより、エンコーディング装置とデコーディング装置は同一の予測結果を導出することができ、ピクチャコーディングの信頼性を高め、ピクチャコーディングのために送信されるべきデータ量を減らすことができる。
【0084】
前述のように、デコーディング装置だけでなくエンコーディング装置においてもピクチャ復元手順が行われることができる。各ブロック単位でイントラ予測/インター予測に基づいて復元ブロックが生成され、復元ブロックを含む復元ピクチャが生成されることができる。現在ピクチャ/スライス/タイルグループがIピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックはイントラ予測のみに基づいて復元されることができる。一方、現在ピクチャ/スライス/タイルグループがP又はBピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックはイントラ予測又はインター予測に基づいて復元されることができる。この場合、現在ピクチャ/スライス/タイルグループ内の一部ブロックに対してはインター予測が適用され、残りの一部ブロックに対してはイントラ予測が適用されることもできる。ピクチャのカラー成分はルマ成分及びクロマ成分を含むことができ、本文書において明示的に制限しなければ本文書で提案される方法及び実施形態はルマ成分及びクロマ成分に適用されることができる。
【0085】
一方、前述のようにビデオコーディングを行うにおいて、圧縮効率を高めるために予測が行われる。これにより、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(又は、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックはエンコーディング装置及びデコーディング装置において同様に導出され、前記エンコーディング装置は原本ブロックの原本サンプル値自体ではなく、前記原本ブロックと前記予測されたブロック間のレジデュアルに関する情報(レジデュアル情報)をデコーディング装置にシグナリングすることにより映像コーディング効率を高めることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを合わせて復元サンプルを含む復元ブロックを生成し、復元ブロックを含む復元ピクチャを生成することができる。
【0086】
前記レジデュアル情報は、変換及び量子化手順により生成される。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロック間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれたレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を行って変換係数を導出し、前記変換係数に量子化手順をを行って量子化された変換係数を導出して、関連するレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングする。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含んでもよい。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を行い、レジデュアルサンプル(又は、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成する。エンコーディング装置はまた、以後、ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成する。
【0087】
現在ブロックにインター予測が適用される場合、エンコーディング装置/デコーディング装置の予測部はブロック単位でインター予測を行って予測サンプルを導出する。インター予測は、現在ピクチャ以外のピクチャ(ら)のデータ要素(例えば、サンプル値又は動き情報など)に依存的な方法で導出される予測を示す(Inter prediction can be a prediction derived in a manner that is dependent on data elements (e.g., sample values or motion information) of picture(s) other than the current picture)。現在ブロックにインター予測が適用される場合、参照ピクチャインデックスが示す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロック(予測サンプルアレイ)を誘導することができる。この時、インター予測モードで送信される動き情報の量を減らすために周辺ブロックと現在ブロック間の動き情報の相関性に基づいて現在ブロックの動き情報をブロック、サブブロック又はサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含んでもよい。前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含んでもよい。インター予測が適用される場合、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighbouring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighbouring block)を含む。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャは同一であっても異なってもよい。前記時間的周辺ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれてもよく、前記時間的周辺ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれてもよい。例えば、現在ブロックの周辺ブロックに基づいて動き情報候補リストが構成され、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するためにどの候補が選択(使用)されるかを指示するフラグ又はインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が行われることができ、例えば、スキップモードと(ノーマル)マージモードの場合、現在ブロックの動き情報は選択された周辺ブロックの動き情報と同一であり得る。スキップモードの場合、マージモードと違ってレジデュアル信号が送信されない場合がある。動き情報予測(motion vector prediction、MVP)モードの場合、選択された周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)はシグナリングされる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を利用して前記現在ブロックの動きベクトルを導出することができる。
【0088】
インター予測に基づくビデオ/映像エンコーディング手順は、概略的に、例えば、以下を含むことができる。
【0089】
図4は、エンコーディング装置内のインター予測部を概略的に示す図である。
【0090】
図4に示すように、エンコーディング装置は現在ブロックに対するインター予測を行う。エンコーディング装置は、現在ブロックのインター予測モード及び動き情報を導出し、前記現在ブロックの予測サンプルを生成する。ここで、インター予測モード決定、動き情報の導出及び予測サンプル生成手順は同時に行われてもよく、ある1つの手順が他の手順より先に行われてもよい。例えば、エンコーディング装置のインター予測部221は、予測モード決定部221_1、動き情報導出部221_2、予測サンプル導出部221_3を含み、予測モード決定部221_1において前記現在ブロックに対する予測モードを決定し、動き情報導出部221_2において前記現在ブロックの動き情報を導出し、予測サンプル導出部221_3において前記現在ブロックの予測サンプルを導出する。例えば、エンコーディング装置のインター予測部221は、動きの推定(motion estimation)により参照ピクチャの一定領域(サーチ領域)内において前記現在ブロックと類似したブロックをサーチし、前記現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出する。これに基づいて前記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、前記参照ブロックと前記現在ブロックの位置差に基づいて動きベクトルを導出する。エンコーディング装置は、様々な予測モードのうち前記現在ブロックに対して適用されるモードを決定する。エンコーディング装置は、前記様々な予測モードに対するRD(rate-distortion)費用(cost)を比較し、前記現在ブロックに対する最適の予測モードを決定する。
【0091】
例えば、エンコーディング装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれたマージ候補が示す参照ブロックのうち前記現在ブロックとうち前記現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出することができる。この場合、前記導出された参照ブロックに関連するマージ候補が選択され、前記選択されたマージ候補を示すマージインデックス情報が生成されてデコーディング装置にシグナリングされる。前記選択されたマージ候補の動き情報を利用して前記現在ブロックの動き情報を導出することができる。
【0092】
他の例として、エンコーディング装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれたmvp(motion vector predictor)候補のうち選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして利用できる。この場合、例えば、前述の動き推定により導出された参照ブロックを示す動きベクトルが前記現在ブロックの動きベクトルとして利用され、前記mvp候補のうち前記現在ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が前記選択されたmvp候補となり得る。前記現在ブロックの動きベクトルから前記mvpを除いた差分であるMVD(motion vector difference)が導出できる。この場合、前記MVDに関する情報がデコーディング装置にシグナリングされる。また、(A)MVPモードが適用される場合、前記参照ピクチャインデックスの値は参照ピクチャインデックス情報で構成されて、別途に前記デコーディング装置にシグナリングされることができる。
【0093】
エンコーディング装置は、前記予測サンプルに基づいてレジデュアルサンプルを導出する。エンコーディング装置は、前記現在ブロックの原本サンプルと前記予測サンプルを比較することにより、前記レジデュアルサンプルを導出する。
【0094】
エンコーディング装置は、予測情報及びレジデュアル情報を含む映像情報をエンコーディングする。エンコーディング装置は、エンコーディングされた映像情報をビットストリーム形態で出力する。前記予測情報は、前記予測手順に関連する情報であり、予測モード情報(例えば、skip flag、merge flag又はmode indexなど)及び動き情報に関する情報を含む。前記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flag又はmvp index)を含む。また、前記動き情報に関する情報は、前述のMVDに関する情報及び/又は参照ピクチャインデックス情報を含む。また、前記動き情報に関する情報は、L0予測、L1予測、又は双(bi)予測が適用されるか否かを示す情報を含む。前記レジデュアル情報は、前記レジデュアルサンプルに関する情報である。前記レジデュアル情報は、前記レジデュアルサンプルに対する量子化された変換係数に関する情報を含む。
【0095】
出力されたビットストリームは(デジタル)格納媒体に格納されてデコーディング装置に伝達されるか、又は、ネットワークを介してデコーディング装置に伝達される。
【0096】
一方、前述のように、エンコーディング装置は、前記参照サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成することができる。これは、デコーディング装置により行われるのと同一の予測結果をエンコーディング装置から導出するためであり、これによりコーディング効率を高めることができるからである。従って、エンコーディング装置は、復元ピクチャ(又は、復元サンプル、復元ブロック)をメモリに格納し、インター予測のための参照ピクチャとして活用する。前記復元ピクチャにインループフィルタリング手順などがさらに適用できることは前述の通りである。
【0097】
インター予測に基づくビデオ/映像デコーディング手順は、概略的に、例えば、以下を含む。
【0098】
図5は、デコーディング装置内のインター予測部を概略的に示す図である。
【0099】
図5に示すように、デコーディング装置は前記エンコーディング装置により行われた動作と対応する動作を行う。デコーディング装置は受信された予測情報に基づいて現在ブロックに予測を行い、予測サンプルを導出する。
【0100】
具体的に、デコーディング装置は、受信された予測情報に基づいて前記現在ブロックに対する予測モードを決定することできる。デコーディング装置は、前記予測情報内の予測モード情報に基づいて前記現在ブロックにどのインター予測モードが適用されるかを決定することができる。
【0101】
例えば、前記merge flagに基づいて前記現在ブロックに前記マージモードが適用されるか又は(A)MVPモードが決定されるかを決定することができる。または、前記mode indexに基づいて様々なインター予測モード候補のうち1つを選択することができる。前記インター予測モード候補は、スキップモード、マージモード及び/又は(A)MVPモードを含み、または、後述する様々なインター予測モードを含む。
【0102】
デコーディング装置は、前記決定されたインター予測モードに基づいて前記現在ブロックの動き情報を導出する。例えば、デコーディング装置は、前記現在ブロックにスキップモード又はマージモードが適用される場合、後述するマージ候補リストを構成し、前記マージ候補リストに含まれたマージ候補のいずれか1つのマージ候補を選択する。前記選択は、前述の選択情報(merge index)に基づいて行われる。前記選択されたマージ候補の動き情報を利用して前記現在ブロックの動き情報を導出することができる。前記選択されたマージ候補の動き情報が、前記現在ブロックの動き情報として利用されることができる。
【0103】
他の例として、デコーディング装置は、前記現在ブロックに(A)MVPモードが適用される場合、後述の(A)MVP候補リストを構成し、前記(A)MVP候補リストに含まれたmvp(motion vector predictor)候補のうち選択されたmvp候補の動きベクトルを前記現在ブロックのmvpとして利用できる。前記選択は、前述の選択情報(mvp flag又はmvp index)に基づいて行われる。この場合、前記MVDに関する情報に基づいて前記現在ブロックのMVDを導出することができ、前記現在ブロックのmvpと前記MVDに基づいて前記現在ブロックの動きベクトルを導出することができる。また、前記参照ピクチャインデックス情報に基づいて前記現在ブロックの参照ピクチャインデックスを導出することができる。前記現在ブロックに関する参照ピクチャリスト内で前記参照ピクチャインデックスが示すピクチャが前記現在ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0104】
一方、後述のように、候補リスト構成なしに前記現在ブロックの動き情報が導出されることができ、この場合、後述の予測モードにおいて開示された手順に従って前記現在ブロックの動き情報が導出されることができる。この場合、前述のような候補リスト構成は省略されてもよい。
【0105】
デコーディング装置は、前記現在ブロックの動き情報に基づいて前記現在ブロックに対する予測サンプルを生成することができる。この場合、前記現在ブロックの参照ピクチャインデックスに基づいて前記参照ピクチャを導出し、前記現在ブロックの動きベクトルが前記参照ピクチャ上で指す参照ブロックのサンプルを利用して前記現在ブロックの予測サンプルを導出することができる。この場合、後述のように、場合によっては、前記現在ブロックの予測サンプルのうち全部又は一部に対する予測サンプルフィルタリングの手順がさらに行われることがある。
【0106】
例えば、デコーディング装置のインター予測部332は、予測モード決定部332_1、動き情報導出部332_2、予測サンプル導出部332_3を含み、予測モード決定部332_1で受信された予測モード情報に基づいて前記現在ブロックに対する予測モードを決定し、動き情報導出部332_2で受信された動き情報に関する情報に基づいて前記現在ブロックの動き情報(動きベクトル及び/又は参照ピクチャインデックスなど)を導出し、予測サンプル導出部332_3で前記現在ブロックの予測サンプルを導出することができる。
【0107】
デコーディング装置は、受信されたレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成する。デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる。以後、前記復元ピクチャにインループフィルタリング手順などがさらに適用できることは前述の通りである。
【0108】
前述のように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードに応じる動き情報導出ステップ、導出された動き情報に基づいた予測実行(予測サンプル生成)ステップを含む。前記インター予測手順は、前述のようにエンコーディング装置及びデコーディング装置で行われる。本文書において、コーディング装置とはエンコーディング装置及び/又はデコーディング装置を含む。
【0109】
ピクチャ内の現在ブロックの予測のために様々なインター予測モードが使用される。例えば、マージモード、スキップモード、MVP(motion vector prediction)モード、アフィン(Affine)モード、サブブロックマージモード、MMVD(merge with MVD)モード、HMVP(historical motion vector prediction)モードなど様々なモードが使用できる。DMVR(decoder side motion vector refinement)モード、AMVR(adaptive motion vector resolution)モード、BCW(Bi-prediction with CU-level weight)、BDOF(Bi-directional optical flow)などが付随的なモードとしてさらに又は代わりに使われることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれてもよい。MVPモードは、AMVP(advanced motion vector prediction)モードと呼ばれてもよい。本文書において、一部のモード及び/又は一部のモードにより導出された動き情報候補は、他のモードの動き情報関連候補の1つとして含まれてもよい。例えば、HMVP候補は前記マージ/スキップモードのマージ候補として追加されてもよく、または、前記MVPモードのmvp候補として追加されてもよい。
【0110】
現在ブロックのインター予測モードを指す予測モード情報がエンコーディング装置からデコーディング装置にシグナリングされることができる。前記予測モード情報は、ビットストリームに含まれ、デコーディング装置に受信されることができる。前記予測モード情報は、多数の候補モードのうちの1つを指示するインデックス情報を含むことができる。或いは、フラグ情報の階層的シグナリングを通じて、インター予測モードを指示することもある。この場合、前記予測モード情報は、1つ以上のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードの適用可否を指示し、スキップモードが適用されない場合に、マージフラグをシグナリングしてマージモードの適用可否を指示し、マージモードが適用されない場合に、MVPモードが適用されるものを指示するか、追加的な区分のためのフラグをさらにシグナリングすることもある。アフィンモードは、独立したモードとしてシグナリングされることもあり、又はマージモード又はMVPモード等に従属的なモードとしてシグナリングされることもある。例えば、アフィンモードは、アフィンマージモード及びアフィンMVPモードを含むことができる。
【0111】
一方、現在ブロックに前述のlist0(L0)予測、list1(L1)予測、又は双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるか否かを示す情報がシグナリングされる。前記情報は、動き予測方向情報、インター予測方向情報、又はインター予測指示情報と呼ばれ、例えば、inter_pred_idcシンタックス要素の形態で構成/エンコーディング/シグナリングされることができる。すなわち、inter_pred_idcシンタックス要素は、前述のlist0(L0)予測、list1(L1)予測、又は双予測(bi-prediction)が現在ブロック(現在コーディングユニット)に使用されるか否かを示すことができる。本文書においては、説明の便宜のためにinter_pred_idcシンタックス要素が示すインター予測タイプ(L0予測、L1予測、又はBI予測)は動き予測方向と表示されることができる。L0予測はpred_L0、L1予測はpred_L1、双予測はpred_BIで表されることもできる。例えば、inter_pred_idcシンタックス要素の値に応じて以下のような予測タイプを示すことができる。
【0112】
前述したように、1つのピクチャは、1つ以上のスライス(slice)を含むことができる。スライスは、Iスライス(intra slice)、Pスライス(predictive slice)及びBスライス(bi-predictive slice)を含むスライスタイプのうちの1つのタイプを有することができる。前記スライスタイプは、スライスタイプ情報に基づいて指示されることができる。Iスライス内のブロックに対しては、予測のためにインター予測は使用されず、イントラ予測のみ使用されることができる。もちろん、この場合にも、予測なしで原本サンプル値をコーディングしてシグナリングすることもある。Pスライス内のブロックに対しては、イントラ予測又はインター予測が使用でき、インター予測が使用される場合には、単(uni)予測のみ使用できる。一方、Bスライス内のブロックに対しては、イントラ予測又はインター予測が使用でき、インター予測が使用される場合には、最大の双(bi)予測まで使用できる。
【0113】
L0及びL1は、現在ピクチャより以前にエンコーディング/デコーディングされた参照ピクチャを含む。例えば、L0はPOC順序上、現在ピクチャより以前及び/又は以後の参照ピクチャを含んでもよく、L1はPOC順序上、現在ピクチャより以後及び/又は以前の参照ピクチャを含んでもよい。この場合、L0にはPOC順序上、現在ピクチャより以前の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられ、L1にはPOC順序上、現在ピクチャより以後の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられる。B sliceの場合は双予測が適用されてもよく、この場合にも単方向双予測が適用されることも、又は、双方向双予測が適用されることもできる。双方向双予測はtrue双予測と呼ばれてもよい。
【0114】
具体的に、例えば、現在ブロックのインター予測モードに関する情報は、CU(CUシンタックス)などのレベルでコーディングされてシグナリングされるか、あるいは条件に応じて黙示的に決定される。この場合、一部のモードに対しては明示的にシグナリングされ、残りの一部のモードは黙示的に導出される。
【0115】
例えば、CUシンタックスは、次の表1のように(インター)予測モードに関する情報などを運ぶことができる。
【0116】
【表1-1】
【表1-2】
【表1-3】
【表1-4】
【表1-5】
【表1-6】
【表1-7】
【表1-8】
【表1-9】
【表1-10】
【表1-11】
【表1-12】
【表1-13】
【0117】
ここで、cu_skip_flagは現在ブロック(CU)にスキップモードが適用されるか否かを示す。
【0118】
pred_mode_flagの値が0であると、現在コーディングユニットがインター予測モードでコーディングされることを示す。pred_mode_flagの値が1であると、現在コーディングユニットがイントラ予測モードでコーディングされることを示す(pred_mode_flag equal to 0 specifies that the current coding unit is coded in inter prediction mode. pred_mode_flag equal to 1 specifies that the current coding unit is coded in intra prediction mode.)。
【0119】
pred_mode_ibc_flagの値が1であると、現在コーディングユニットがIBC予測モードでコーディングされることを示す。pred_mode_ibc_flagの値が0であると、現在コーディングユニットがIBC予測モードでコーディングされないことを示す(pred_mode_ibc_flag equal to 1 specifies that the current coding unit is coded in IBC prediction mode. pred_mode_ibc_flag equal to 0 specifies that the current coding unit is not coded in IBC prediction mode.)。
【0120】
pcm_flag[x0][y0]の値が1であると、pcm_sample( )構文構造が存在し、transform_tree( )構文構造が(x0,y0)位置のルマコーディングブロックを含むコーディング単位に存在しないことを示す。pcm_flag[x0][y0]が0であると、pcm_sample( )構文構造が存在しないことを示す(pcm_flag[x0][y0] equal to 1 specifies that the pcm_sample( ) syntax structure is present and the transform_tree( ) syntax structure is not present in the coding unit including the luma coding block at the location (x0, y0). pcm_flag[x0][y0] equal to 0 specifies that pcm_sample( ) syntax structure is not present.)。すなわち、pcm_flagは現在ブロックにPCM(pulse coding modulation)モードが適用されるか否かを示す。現在ブロックにPCMモードが適用される場合、予測、変換、量子化などが適用されることなく、現在ブロック内の原本サンプルの値がコーディングされてシグナリングされることができる。
【0121】
intra_mip_flag[x0][y0]の値が1であると、ルマサンプルに対するイントラ予測タイプがマトリックスベースのイントラ予測(MIP)であることを示す。intra_mip_flag[x0][y0]が0であると、ルマサンプルに対するイントラ予測タイプがマトリックスベースのイントラ予測ではないことを示す(intra_mip_flag[x0][y0] equal to 1 specifies that the intra prediction type for luma samples is matrix-based intra prediction (MIP). intra_mip_flag[x0][y0] equal to 0 specifies that the intra prediction type for luma samples is not matrix-based intra prediction.)。すなわち、intra_mip_flagは現在ブロック(のルマサンプル)にMIP予測モード(タイプ)が適用されるか否かを示す。
【0122】
intra_chroma_pred_mode[x0][y0]は、現在ブロックにおいてクロマサンプルに対するイントラ予測モードを示す(intra_chroma_pred_mode[x0][y0] specifies the intra prediction mode for chroma samples in the current block.)。
【0123】
general_merge_flag[x0][y0]は、現在コーディングユニットに対するインター予測パラメータが隣接するインター予測されたパーティションから誘導されるか否かを示す(general_merge_flag[x0][y0] specifies whether the inter prediction parameters for the current coding unit are inferred from a neighbouring inter-predicted partition.)。すなわち、general_merge_flagは一般マージが可用であることを示し、general_merge_flagの値が1であると、regular merge mode、mmvd mode及びmerge subblock mode(subblock merge mode)が可用である。例えば、general_merge_flagの値が1であると、マージデータシンタックス(merge data syntax)がエンコーディングされたビデオ/イメージ情報(又は、ビットストリーム)からパーシングされ、マージデータシンタックスは次の表2のような情報を含むように構成/コーディングされる。
【0124】
【表2-1】
【表2-2】
【表2-3】
【0125】
ここで、regular_merge_flag[x0][y0]の値が1であると、レギュラーマージモードを用いて現在コーディングユニットのインター予測パラメータを生成することを示す(regular_merge_flag[x0][y0] equal to 1 specifies that regular merge mode is used to generate the inter prediction parameters of the current coding unit.)。すなわち、regular_merge_flagはマージモード(レギュラーマージモード)が現在ブロックに適用できるか否かを示す。
【0126】
mmvd_merge_flag[x0][y0]の値が1であると、動きベクトル差分を有するマージモードが現在コーディングユニットのインター予測パラメータの生成に使用されることを示す(mmvd_merge_flag[x0][y0] equal to 1 specifies that merge mode with motion vector difference is used to generate the inter prediction parameters of the current coding unit.)。すなわち、mmvd_merge_flagはMMVDが現在ブロックに適用されるか否かを示す。
【0127】
mmvd_cand_flag[x0][y0]は、マージ候補リスト内の1番目(0)又は2番目(1)候補がmmvd_distance_idx[x0][y0]及びmmvd_direction_idx[x0][y0]から導出された動きベクトル差分とともに使用されるか否かを示す(mmvd_cand_flag[x0][y0] specifies whether the first (0) or the second (1) candidate in the merging candidate list is used with the motion vector difference derived from mmvd_distance_idx[x0][y0] and mmvd_direction_idx[x0][y0].)。
【0128】
mmvd_distance_idx[x0][y0]は、MmvdDistance[x0][y0]の導出に使用されるインデックスを示す(mmvd_distance_idx[x0][y0] specifies the index used to derive MmvdDistance[x0][y0].)。
【0129】
mmvd_direction_idx[x0][y0]は、MmvdSign[x0][y0]の導出に使用されるインデックスを示す(mmvd_direction_idx[x0][y0] specifies index used to derive MmvdSign[x0][y0].)。
【0130】
merge_subblock_flag[x0][y0]は、現在コーディングに対するサブブロックベースのインター予測パラメータを示す(merge_subblock_flag[x0][y0] specifies whether the subblock-based inter prediction parameters for the current coding.)。すなわち、merge_subblock_flagは現在ブロックにサブブロックマージモード(又は、affine merge mode)が適用されるか否かを示す。
【0131】
merge_subblock_idx[x0][y0]はサブブロックベースのマージ候補リストのマージ候補インデックスを示す(merge_subblock_idx[x0][y0] specifies the merging candidate index of the subblock-based merging candidate list.)。
【0132】
ciip_flag[x0][y0]は、結合されたインター-ピクチャマージ及びイントラ-ピクチャ予測が現在コーディングユニットに適用されるか否かを示す(ciip_flag[x0][y0] specifies whether the combined inter-picture merge and intra-picture prediction is applied for the current coding unit.)。
【0133】
merge_triangle_idx0[x0][y0]は、三角形ベースの動き補償候補リストの1番目のマージ候補インデックスを示す(merge_triangle_idx0[x0][y0] specifies the first merging candidate index of the triangular shape based motion compensation candidate list.)。
【0134】
merge_triangle_idx1[x0][y0]は、三角形ベースの動き補償候補リストの2番目のマージ候補インデックスを示す(merge_triangle_idx1[x0][y0] specifies the second merging candidate index of the triangular shape based motion compensation candidate list.)。
【0135】
merge_idx[x0][y0]は、マージ候補リストのマージ候補インデックスを示す(merge_idx[x0][y0] specifies the merging candidate index of the merging candidate list.)。
【0136】
一方、再び表1のCUシンタックスを参照すると、mvp_l0_flag[x0][y0]はリスト0の動きベクトル予測子のインデックスを示す(mvp_l0_flag[x0][y0] specifies the motion vector predictor index of list 0.)。すなわち、mvp_l0_flagはMVPモードが適用される場合、MVP候補リスト0において前記現在ブロックのMVP導出のために選択される候補を示す。
【0137】
mvp_l1_flag[x0][y0]はmvp_l0_flagと同一の意味を有し、l0及びリスト0はそれぞれl1及びリスト1に置き換えることができる(ref_idx_l1[x0][y0] has the same semantics as ref_idx_l0, with l0, L0 and list 0 replaced by l1, L1 and list 1, respectively.)。
【0138】
inter_pred_idc[x0][y0]は現在コーディングユニットに対してリスト0、リスト1又はbi-predictionが使用されるか否かを示す(inter_pred_idc[x0][y0] specifies whether list0, list1, or bi-prediction is used for the current coding unit.)。
【0139】
sym_mvd_flag[x0][y0]の値が1であると、構文要素ref_idx_l0[x0][y0]及びref_idx_l1[x0][y0]を示し、1と同一のrefListに対するmvd_coding(x0、y0、refList、cpIdx)構文構造が存在しないことを示す(sym_mvd_flag[x0][y0] equal to 1 specifies that the syntax elements ref_idx_l0[x0][y0] and ref_idx_l1[x0][y0], and the mvd_coding(x0, y0, refList ,cpIdx) syntax structure for refList equal to 1 are not present.)。すなわち、sym_mvd_flagはmvdコーディングにおいてsymmetric MVDが使用されるか否かを示す。
【0140】
ref_idx_l0[x0][y0]は現在コーディングユニットに対するリスト0参照ピクチャインデックスを示す(ref_idx_l0[x0][y0] specifies the list 0 reference picture index for the current coding unit.)。
【0141】
ref_idx_l1[x0][y0]はref_idx_l0と同一の意味を有し、l0、L0及びリスト0はそれぞれl1、L1及びリスト1に置き換えることができる(ref_idx_l1[x0][y0] has the same semantics as ref_idx_l0, with l0, L0 and list 0 replaced by l1, L1 and list 1, respectively.)。
【0142】
inter_affine_flag[x0][y0]の値が1であると、現在コーディングユニットに対してP又はBスライスをデコーディングするとき、現在コーディングユニットの予測サンプルを生成するためにアフィンモデルベースの動き補償が使用されることを示す(inter_affine_flag[x0][y0] equal to 1 specifies that for the current coding unit, when decoding a P or B slice, affine model based motion compensation is used to generate the prediction samples of the current coding unit.)。
【0143】
cu_affine_type_flag[x0][y0]の値が1であると、現在コーディングユニットに対してP又はBスライスをデコーディングするとき、6-パラメータアフィンモデルベースの動き補償が現在コーディングユニットの予測サンプルの生成に使用されることを示す。cu_affine_type_flag[x0][y0]の値が0であると、現在コーディングユニットの予測サンプルを生成するために4-パラメータアフィンモデルベースの動き補償が使用されることを示す(cu_affine_type_flag[x0][y0] equal to 1 specifies that for the current coding unit, when decoding a P or B slice, 6-parameter affine model based motion compensation is used to generate the prediction samples of the current coding unit. cu_affine_type_flag[x0][y0] equal to 0 specifies that 4-parameter affine model based motion compensation is used to generate the prediction samples of the current coding unit.)。
【0144】
amvr_flag[x0][y0]は、動きベクトル差分の解像度を示す。アレイインデックスx0、y0は、ピクチャの左上側ルマサンプルに対して考慮されたコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す。amvr_flag[x0][y0]の値が0であると、動きベクトル差分の解像度がルマサンプルの1/4であることを示す。amvr_flag[x0][y0]の値が1であると、動きベクトル差分の解像度がamvr_precision_flag[x0][y0]により追加で示されることを示す(amvr_flag[x0][y0] specifies the resolution of motion vector difference. The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture. amvr_flag[x0][y0] equal to 0 specifies that the resolution of the motion vector difference is 1/4 of a luma sample. amvr_flag[x0][y0] equal to 1 specifies that the resolution of the motion vector difference is further specified by amvr_precision_flag[x0][y0].)。
【0145】
amvr_precision_flag[x0][y0]の値が0であると、inter_affine_flag[x0][y0]の値が0である場合、動きベクトル差分の解像度が1つの整数ルマサンプルであることを示し、そうでない場合は、ルマサンプルの1/16であることを示す。amvr_precision_flag[x0][y0]の値が1であると、inter_affine_flag[x0][y0]の値が0である場合、動きベクトル差分の解像度が4つのルマサンプルであることを示し、そうでない場合は、1つの整数ルマサンプルであることを示す。アレイインデックスx0、y0は、ピクチャの左上側ルマサンプルに対して考慮されたコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(amvr_precision_flag[x0][y0] equal to 0 specifies that the resolution of the motion vector difference is one integer luma sample if inter_affine_flag[x0][y0] is equal to 0, and 1/16 of a luma sample otherwise. amvr_precision_flag[x0][y0] equal to 1 specifies that the resolution of the motion vector difference is four luma samples if inter_affine_flag[x0][y0] is equal to 0, and one integer luma sample otherwise. The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0146】
bcw_idx[x0][y0]は、CU加重値を使用する双方向予測の加重値インデックスを示す(bcw_idx[x0][y0] specifies the weight index of bi-prediction with CU weights.)。
【0147】
コーディング装置は、現在ブロックの動き情報を利用してインター予測を行う。エンコーディング装置は、動き推定(motion estimation)手順を介して現在ブロックに対する最適な動き情報を導出することができる。例えば、エンコーディング装置は、現在ブロックに対する原本ピクチャ内の原本ブロックを利用して相関性の高い類似の参照ブロックを参照ピクチャ内の決まった探索範囲内において分数ピクセル単位で探索し、それにより、動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現在ブロック(又は、現在ブロックのテンプレート)と参照ブロック(又は、参照ブロックのテンプレート)間のSADに基づいて計算される。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて様々な方法によりデコーディング装置にシグナリングされる。
【0148】
コーディング装置は、前記動き情報に基づいて前記現在ブロックに対する予測サンプル(ら)を導出することができる。前記予測サンプルを含む現在ブロックは、予測されたブロックと呼ばれてもよい。
【0149】
前記予測されたブロックは、前記現在ブロックの予測サンプル(予測サンプルアレイ)を含むことができる。現在ブロックの動きベクトルが分数サンプル単位を示す場合、補間(interpolation)手順が行われ、これを介して参照ピクチャ内において分数サンプル単位の参照サンプルに基づいて前記現在ブロックの予測サンプルが導出できる。現在ブロックにアフィン(Affine)インター予測が適用される場合、コーディング装置はサンプル/サブブロック単位の動きベクトル(MV)に基づいて予測サンプルを生成することができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャとMVL0を用いた予測)に基づいて導出された予測サンプルとL1予測(すなわち、参照ピクチャリストL1内の参照ピクチャとMVL1を用いた予測)に基づいて導出された予測サンプルの(位相に応じた)加重和又は加重平均を介して導出された予測サンプルが現在ブロックの予測サンプルとして利用できる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャが現在ピクチャを基準に互いに異なる時間的方向に位置する場合(すなわち、双予測でありながら双方向予測に該当する場合)、これをtrue双予測と呼んでもよい。
【0150】
導出された予測サンプルに基づいて復元サンプル及び復元ピクチャが生成でき、その後、インループフィルタリングなどの手順が行われる。
【0151】
図6は、インター予測に使用できる空間的候補を説明する図である。
【0152】
インター予測時にマージモード(merge mode)が適用される場合、現在ブロックの動き情報が直接的に送信されず、周辺予測ブロックの動き情報を利用して前記現在ブロックの動き情報を誘導する。従って、エンコーディング装置は、マージモードを用いたことを示すフラグ情報及び周辺のどの予測ブロックを用いているかを示すマージインデックスを送信することにより、現在ブロックの動き情報を示すことができる。前記マージモードは、レギュラーマージモード(regular merge mode)と呼ばれてもよい。
【0153】
コーディング装置は、マージモードを実行するために現在ブロックの動き情報を誘導するために用いられるマージ候補ブロック(merge candidate block)をサーチする。例えば、前記マージ候補ブロックは最大で5つまで利用できるが、本実施形態はこれに限定されない。また、前記マージ候補ブロックの最大個数に関する情報はスライスヘッダ又はタイルグループヘッダにおいて送信できるが、本実施形態はこれに限定されない。前記マージ候補ブロックを見つけた後、コーディング装置はマージ候補リストを生成し、これらのうち最も小さい費用を有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
【0154】
本文書は、前記マージ候補リストを構成するマージ候補ブロックに対する様々な実施形態を提供する。
【0155】
前記マージ候補リストは、例えば、5つのマージ候補ブロックを含む。例えば、4つの空間的マージ候補(spatial merge candidate)と1つの時間的マージ候補(temporal merge candidate)が利用できる。具体例として、空間的マージ候補の場合、図6に示されたブロック(A、A、B、B、B)を空間的マージ候補として利用することができる。以下、前記空間的マージ候補又は後述する空間的MVP候補はSMVPと呼ばれてもよく、前記時間的マージ候補又は後述する時間的MVP候補はTMVPと呼ばれてもよい。
【0156】
前記現在ブロックに対するマージ候補リストは、例えば、以下のような手順に基づいて構成される。
【0157】
まず、コーディング装置(エンコーディング装置/デコーディング装置)は、現在ブロックの空間的周辺ブロックを探索して導出された空間的マージ候補をマージ候補リストに挿入することができる。例えば、前記空間的周辺ブロックは、前記現在ブロックの左下側コーナー周辺ブロック(A)、左側周辺ブロック(A)、右上側コーナー周辺ブロック(B)、上側周辺ブロック(B)、及び左上側コーナー周辺ブロック(B)を含む。ただし、これは例示であって、前述した空間的周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側周辺ブロックなどの追加的な周辺ブロックが前記空間的周辺ブロックとしてさらに使用できる。コーディング装置は、前記空間的周辺ブロックを優先順位に基づいて探索して可用のブロックを検出し、検出されたブロックの動き情報を前記空間的マージ候補として導出することができる。例えば、エンコーディング装置及び/又はデコーディング装置は、図6に示された5つのブロックをA、B、B、A、Bの順に探索し、可用の候補を順次インデックスすることにより、マージ候補リストとして構成することができる。
【0158】
また、コーディング装置は、前記現在ブロックの時間的周辺ブロックを探索して導出された時間的マージ候補を前記マージ候補リストに挿入することができる。前記時間的周辺ブロックは、前記現在ブロックが位置する現在ピクチャとは異なるピクチャである参照ピクチャ上に位置することができる。前記時間的周辺ブロックが位置する参照ピクチャは同一位置(collocated)ピクチャ又はcolピクチャと呼ばれてもよい。前記時間的周辺ブロックは、前記colピクチャ上での前記現在ブロックに対する同一位置ブロック(co-located block)の右下側のコーナー周辺ブロック及び右下側センターブロックの順で探索される。
【0159】
一方、コーディング装置は、現在マージ候補の個数が最大マージ候補の個数より小さいか否かを確認できる。前記最大マージ候補の個数は、予め定義されるか、エンコーディング装置からデコーディング装置にシグナリングされることができる。例えば、エンコーディング装置は、前記最大マージ候補の個数に関する情報を生成し、エンコーディングしてビットストリーム形態で前記デコーディング装置に伝達する。前記最大マージ候補の個数が全て充填されると、以後の候補の追加過程は行われなくてもよい。
【0160】
前記確認の結果、前記現在マージ候補の個数が前記最大マージ候補の個数より小さい場合、コーディング装置は追加マージ候補を前記マージ候補リストに挿入することができる。前記追加マージ候補は、例えば、history based merge candidate(s)、pair-wise average merge candidate(s)、ATMP、combined bi-predictiveマージ候補(現在スライス/タイルグループのスライス/タイルグループのタイプがBタイプである場合)及び/又は零ベクトルマージ候補の少なくとも1つを含む。
【0161】
前記確認の結果、前記現在のマージ候補の個数が前記最大のマージ候補の個数よりも小さくない場合、コーディング装置は、前記マージ候補リストの構成を終了し得る。この場合、エンコーディング装置は、RD(rate-distortion)コストに基づき、前記マージ候補リストを構成するマージ候補のうち、最適のマージ候補を選択することができ、前記選択されたマージ候補を指す選択情報(ex. merge index)をデコーディング装置にシグナリングすることができる。デコーディング装置は、前記マージ候補リスト及び前記選択情報に基づいて、前記最適のマージ候補を選択することができる。
【0162】
前記選択されたマージ候補の動き情報が前記現在ブロックの動き情報に使用でき、前記現在ブロックの動き情報に基づいて、前記現在ブロックの予測サンプルを導出することができることは前述した通りである。エンコーディング装置は、前記予測サンプルに基づいて前記現在ブロックのレジデュアルサンプルを導出することができ、前記レジデュアルサンプルに関するレジデュアル情報をデコーディング装置にシグナリングできる。デコーディング装置は、前記レジデュアル情報に基づいて導出されたレジデュアルサンプル、及び前記予測サンプルに基づいて復元サンプルを生成することができ、これに基づいて、復元ピクチャを生成することができることは前述した通りである。
【0163】
インター予測時にスキップモード(skip mode)が適用される場合、前述のマージモードが適用される場合と同様の方法で前記現在ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、該当ブロックに対するレジデュアル信号が省略され、従って、予測サンプルが直ちに復元サンプルとして利用されることができる。前記スキップモードは、例えば、CUスキップフラグ(cu_skip_flag)の値が1である場合に適用される。
【0164】
図7は、インター予測に使用できる時間的候補を説明する図である。
【0165】
ここで、時間的候補(temporal candidate)は、前述の時間的マージ候補(temporal merge candidate)を示す。また、時間的候補に含まれる動きベクトルは、時間的mvp候補(temporal mvp candidate)に対応することもできる。
【0166】
このステップでは、1つの候補のみが候補リストに追加される(In this step, only one candidate is added to the candidate list.)。特に、時間的マージ候補の導出において、スケーリングされた動きベクトルは同一位置(collocated)参照ピクチャ(colPicと呼ばれてもよい)に属する同一位置CUに基づいて導出される(Particularly, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on co-located CU belonging to the collocated reference picture (may be referred to as colPic).)。同一位置(co-located)CUの導出に使用される参照ピクチャリストはスライスヘッダにおいて明示的にシグナリングされる(The reference picture list to be used for derivation of the co-located CU is explicitly signalled in the slice header.)。POC(picture order count)距離、tb及びtdを使用して同一位置CUの動きベクトルからスケーリングされる時間的マージ候補に対するスケーリングされた動きベクトルは図7において点線で示されているように得られ、ここで、tbは現在ピクチャの参照ピクチャと現在ピクチャのPOC差と定義され、tdは同一位置ピクチャの参照ピクチャと同一位置ピクチャの間のPOC差と定義される(The scaled motion vector for temporal merge candidate is obtained as illustrated by the dotted line in Figure 7, which is scaled from the motion vector of the co-located CU using the POC distances, tb and td, where tb is defined to be the POC difference between the reference picture of the current picture and the current picture and td is defined to be the POC difference between the reference picture of the co-located picture and the co-located picture.)。時間マージ候補の参照ピクチャインデックスは0に設定される(The reference picture index of temporal merge candidate is set equal to zero.)。
【0167】
内在的に(implicitly)導出された動き情報が現在のCUの予測サンプル生成のために直接的に使われるマージモードに加えて、動きベクトル差分を有するマージモード(merge mode with motion vector differences、MMVD)がVVCに導入される(Inaddition to merge mode, where the implicitly derived motion information is directly used for prediction samples generation of the current CU, the merge mode with motion vector differences (MMVD) is introduced in VVC.)。スキップモード及びマージモードには類似の動き情報導出方法が用いられるため、MMVDは前記スキップモードに適用できる(Because similar motion information derivation methods are used for the skip mode and the merge mode, MMVD may be applied to the skip mode.)。MMVDフラグ(例えば、mmvd_flag)はスキップフラグ及びマージフラグを送った直後にシグナリングされてMMVDモードがCUに適用されるか否かを示す(A MMVD flag (ex. mmvd_flag) may be singnaled right after sending a skip flag and merge flag to specify whether MMVD mode is used for a CU.)。
【0168】
MMVDにおいては、マージ候補が選択された後、シグナリングされたMVDの情報によりリファインされる(In MMVD, after a merge candidate is selected, it is further refined by the signaled MVDs information.)。MMVDが現在プロックに適用される場合(すなわち、mmvd_flagが1である場合)、MMVDに関する追加情報がシグナリングされる(When MMVD is applied to the current block (i.e. when the mmvd_flag is equal to 1), further information for the MMVD may be signaled.)。
【0169】
追加情報は、前記マージ候補リスト内の第1(0)又は第2(1)候補が動きベクトル差分とともに使用されるかを示すマージ候補リスト(例えば、mmvd_merge_flag)、動きの大きさを示すインデックス(例えば、mmvd_distance_idx)、及び動き方向表示インデックス(例えば、mmvd_direction_idx)を含む(The further information includes a merge candidate flag (ex. mmvd_merge_flag) indicating whether the first (0) or the second (1) candidate in the merging candidate list is used with the motion vector difference, an index to specify motion magnitude (ex. mmvd_distance_idx), and an index for indication of motion direction (ex. mmvd_direction_idx).)。MMVDモードでは、マージリストにおいて最初の2つの候補の1つがMVの基準として使用されるように選択される(In MMVD mode, one for the first two candidates in the merge list is selected to be used as MV basis.)。マージ候補フラグは、どのフラグが使われるかを示すようにシグナリングされる(The merge candidate flag is signaled to specify which one is used.)。
【0170】
距離インデックスは動きの大きさ情報を示し、開始点から予め決められたオフセット(Offset)を示す(Distance index specifies motion magnitude information and indicate the pre-defined offset from the starting point.)。
【0171】
オフセットは開始動きベクトルの水平成分又は垂直成分に加えられる(An offset is added to either horizontal component or vertical component of starting MV.)。距離インデックスと予め決められたオフセットの関係は、以下の表3のように示す(The relation of distance index and pre-defined offset is specified in Table 3.)。
【0172】
【表3】
【0173】
ここで、slice_fpel_mmvd_enabled_flagが1であると、動きベクトル差分があるマージモードが現在スライスにおいて整数サンプル精度を使用することを示す(Here, slice_fpel_mmvd_enabled_flag equal to 1 specifies that merge mode with motion vector difference uses integer sample precision in the current slice.)。slice_fpel_mmvd_enabled_flagが0であると、動きベクトル差分があるマージモードが現在スライスにおいて分数サンプル精度を使用することを示す(slice_fpel_mmvd_enabled_flag equal to 0 specifies that merge mode with motion vector difference can use fractional sample precision in the current slice.)。存在しない場合、slice_fpel_mmvd_enabled_flagの値は0として導出される(When not present, the value of slice_fpel_mmvd_enabled_flag is inferred to be 0.)。slice_fpel_mmvd_enabled_flagシンタックス要素はスライスヘッダを介して(スライスヘッダに含まれて)シグナリングされる(Slice_fpel_mmvd_enabled_flag syntax element may be signaled through (may be comprised in) a slice header.)。
【0174】
方向インデックスは、開始点を基準にMVDの方向を示す。方向インデックスは、表4に示すように、4方向を示すことができる(Direction index represents the direction of the MVD relative to the starting point.)。MVD表示の意味は、MVの開始情報に応じて変更される(The direction index can represent of the four directions as shown in Table4. It's noted that the meaning of MVD sign could be variant according to the information of starting MVs.)。開始MVが予測ではないMVであるか又は2つのリストを有する双予測MVが現在ピクチャの同一面を指す場合(例えば、2つの参照のPOCは両方とも現在ピクチャのPOCより大きいか、又は両方とも現在ピクチャのPOCより小さい場合)、表4のサインは、前記開始MVに追加されたMVオフセットのサインを示す(When the starting MVs is an un-prediction MV or bi-prediction MVs with both lists point to the same side of the current picture (i.e. POCs of two references are both larger than the POC of the current picture, or are both smaller than the POC of the current picture), the sign in Table 4 specifies the sign of MV offset added to the starting MV.)。開始MVが現在ピクチャの他の面を指す2つのMVを有する双予測MVである場合(すなわち、1つの参照のPOCが現在ピクチャのPOCより大きく他の参照のPOCが現在ピクチャのPCOより小さい場合)、表4のサインは開始MVのlist0 MV成分に追加されたMVオフセットのサインを示し、list1 MVのサインは逆の値を有する(When the starting MVs is bi-prediction MVs with the two MVs point to the different sides of the current picture (i.e. the POC of one reference is larger than the POC of the current picture, and the POC of the other reference is smaller than the POC of the current picture), the sign in Table 4 specifies the sign of MV offset added to the list0 MV component of starting MV and the sign for the list1 MV has opposite value.)。
【0175】
【表4】
【0176】
マージプラスMVDオフセットMmvdOffset[x0][y0]の2つの構成要素は、以下のように導出される(Both components of the merge plus MVD offset MmvdOffset[x0][y0] are derived as follows.)。
【0177】
【数1】
【0178】
図8は、インター予測時に使用できるサブブロックベースの時間的動きベクトル予測プロセスを説明する図である。
【0179】
インター予測のためにサブブロックベースの時間的動きベクトル予測(SbTMVP)方法が用いられる(Subblock-based temporal motion vector prediction (SbTMVP) method can be used for inter prediction.)。MVP(temporal motion vector prediction)と類似して、SbTMVPは同一位置ピクチャの動きフィールドを使用して現在ピクチャのCUに対する動きベクトル予測及びマージモードを向上させる(Similar to the temporal motion vector prediction (TMVP), SbTMVP uses the motion field in the collocated picture to improve motion vector prediction and merge mode for CUs in the current picture.)。TMVPにおいて使用される同一位置ピクチャが同一にSbTVMPに使用される(The same collocated picture used by TMVP is used for SbTVMP.)。SbTMVPは、以下の2つの主要側面でTMVPと異なる(SbTMVP differs from TMVP in the following two main aspects.)。
【0180】
1.TMVPはCUレベルでの動きを予測するが、SbTMVPはサブCUレベルでの動きを予測する(TMVP predicts motion at CU level but SbTMVP predicts motion at sub-CU level.)。
【0181】
2.TMVPは同一位置ピクチャ内の同一位置ブロックから時間的動きベクトルをフェッチする反面(前記同一位置ブロックは現在CUを基準に右下側又はセンター(右下側センター)ブロックである)、SbTMVPは前記同一位置ピクチャから時間的動き情報をフェッチする前にモーションシフト(ここで、モーションシフトは現在CUの空間的周辺ブロックのうち1つからの動きベクトルから取得される)を適用する(Whereas TMVP fetches the temporal motion vectors from the collocated block in the collocated picture (the collocated block is the bottom-right or center (below-right center) block relative to the current CU), SbTMVP applies a motion shift before fetching the temporal motion information from the collocated picture, where the motion shift is obtained from the motion vector from one of the spatial neighbouring blocks of the current CU.)。
【0182】
図8にはSbTVMPプロセスが示されている。SbTMVPは現在、CU内のサブCUの動きベクトルを2つのステップで予測する(SbTMVP predicts the motion vectors of the sub-CUs within the current CU in two steps.)。第1ステップにおいて、空間的隣接A1を検査する(In the first step, the spatial neighbour A1 is examined.)。参照ピクチャが識別される時、同一位置ピクチャを参照ピクチャとして使用する動きベクトルをA1が有する場合、この動きベクトル(時間的MV(tempVM)と呼ばれてもよい)が適用されるモーションシフトとして選択される(If A1 has a motion vector that uses the collocated picture as its reference picture is identified, this motion vector (may be referred to as a temporal MV (tempVM)) is selected to be the motion shift to be applied.)。このような動きが識別されない場合、モーションシフトは(0,0)に設定される(If no such motion is identified, then the motion shift is set to (0, 0).)。
【0183】
第2ステップにおいて、第1ステップで識別されたモーションシフトが適用されて(すなわち、現在ブロックの候補として追加される)、図8に示されているように同一位置ピクチャからサブCUレベル動き情報(動きベクトル及び参照インデックス)を取得する(In the second step, the motion shift identified in Step 1 is applied (i.e. added to the current block's coordinates) to obtain sub-CU-level motion information (motion vectors and reference indices) from the collocated picture as shown in Figure 8.)。図8の例は、モーションシフトがブロックA1’動きに設定されていると仮定する(The example in Figure 8 assumes the motion shift is set to block A1's motion.)。そして、それぞれのサブCUに対して、同一位置ピクチャ内の対応するブロック(センターサンプルをカバーする最小のモーショングリッド)の動き情報がサブCUに関するモーション情報の導出に使用される(Then, for each sub-CU, the motion information of its corresponding block (the smallest motion grid that covers the center sample) in the collocated picture is used to derive the motion information for the sub-CU.)。センターブロック(右下側センターサンプル)はサブブロックの長さ及び幅が偶数である場合、サブCU内の4つのセンターサンプルのうち右下側サンプル該当し得る(The center sample (below right center sample) may correspond to a below-right sample among 4 central samples in the sub-CU when the sub-block has even length width and height.)
【0184】
同一位置サブCUの動き情報が識別された後、TMVPプロセスと類似の方式で現在のサブCUの動きベクトル及び参照インデックスに変換され、ここで、時間的動きスケーリングが適用されて時間的動きベクトルの参照ピクチャを現在CUの参照ピクチャに配置する(After the motion information of the collocated sub-CU is identified, it is converted to the motion vectors and reference indices of the current sub-CU in a similar way as the TMVP process, where temporal motion scaling may be applied to align the reference pictures of the temporal motion vectors to those of the current CU.)。
【0185】
SBTVMP候補及びアフィンマージ候補を全て含む結合されたサブブロックベースのマージリストは、アフィンマージモード(サブブロック(ベース)マージモードと称されてもよい)のシグナリングのために使用されることができる(A combined sub-block based merge list which contains both SbTVMP candidate and affine merge candidates may be used for the signalling of affine merge mode (may be referred to as sub-block (based) merge mode).)。SbTVMPモードはSPS(Sequence Parameter Set)フラグにより活性化/非活性化される(The SbTVMP mode is enabled/disabled by a sequence parameter set (SPS) flag.)。SbTMVPモードが活性化する場合、SbTMVP予測子はサブブロックマージ候補リストの1番目の項目として追加された後、アフィンマージ候補が追加される(If the SbTMVP mode is enabled, the SbTMVP predictor is added as the first entry of the list of sub-block merge candidates, and followed by the affine merge candidates.)。アフィンマージ候補リストの最大許容サイズは5であり得る(The maximum allowed size of the affine merge candidate list may be 5.)。
【0186】
SbTMVPにおいて使用されるsub-CUサイズは8×8に固定され、アフィンマージモードでのようにSbTMVPモードは幅と高さが両方とも8以上であるCUにのみ該当する(The sub-CU size used in SbTMVP may be fixed to be 8x8, and as done for affine merge mode, SbTMVP mode may be only applicable to the CU with both width and height are larger than or equal to 8.)。
【0187】
追加的なSbTMVPマージ候補のエンコーディングロジックは他のマージ候補と同一であり、すなわち、P又はBスライスの各CUに対して、SbTMVP候補の使用可否を決定するために追加的なRDチェックが行われる(The encoding logic of the additional SbTMVP merge candidate is the same as for the other merge candidates, that is, for each CU in P or B slice, an additional RD check may be performed to decide whether to use the SbTMVP candidate.)。
【0188】
図9は、インター予測に適用できるためのパーティショニングモードを説明する図である。
【0189】
インター予測のためにトライアングルパーティションモードが使用される(A triangle partition mode may be used for inter prediction.)。前記トライアングルパーティションモードは、8×8又はそれ以上のCUに対してのみ適用できる(The triangle partition mode may be only applied to CUs that are 8x8 or larger.)。前記トライアングルパーティションモードは、レギュラーマージモード、MMVDモード、CIIPモード及びサブブロックマージモードを含む他のマージモードとともに、マージモードの一種としてCUレベルフラグを用いてシグナリングされることができる(The triangle partition mode is signalled using a CU-level flag as one kind of merge mode, with other merge modes including the regular merge mode, the MMVD mode, the CIIP mode and the subblock merge mode.)。
【0190】
このモードが使用される場合、図9に示されているように、CUは対角線分割又は半対角線分割を使用して2つの三角形のパーティションに均等に分割される(When this mode is used, a CU may be split evenly into two triangle-shaped partitions, using either the diagonal split or the anti-diagonal split as shown in Figure 9)。CU内の各三角形パーティションは、自体動きを使用してインター予測され、各パーティションに対して単予測のみが許容される。すなわち、各パーティションは1つのモーションベクトルと1つの参照インデックスを有する(Each triangle partition in the CU is inter-predicted using its own motion; only uni-prediction is allowed for each partition, that is, each partition has one motion vector and one reference index.)。単方向予測動き制約は既存の双予測と同様に、各CUに対して2つの動き補償予測のみが必要であるということを保障するために適用される(The uni-prediction motion constraint is applied to ensure that same as the conventional bi-prediction, only two motion compensated prediction are needed for each CU.)。
【0191】
現在CUに対してトライアングルパーティションモードが使用される場合、前記トライアングルパーティションの方向(対角線又は半対角線)を示すフラグと2つのマージインデックス((各)パーティション毎に1つずつ)が追加でシグナリングされる(If triangle partition mode isused for the current CU, then a flag indicating the triangle partition (diagonal or anti-diagonal), and two merge indices (one for each partition) are further signalled.)。最大TPM(triangle partition mode)候補サイズの数は、スライスレベルで明示的にシグナリングされ、TPMマージインデックスに対するシンタックス二進化を示す(The number of maximum TPM candidate size is signalled explicitly at slice level and specifies syntax binarization for TMP merge indices.)。それぞれのトライアングルパーティションを予測した後、対角線又は半対角線エッジに沿うサンプル値は適応的加重値を有するブレンディングプロセスを利用して調整される(After predicting each of the triangle partitions, the sample values along the diagonal oranti-diagonal edge are adjusted using a blending processing with adaptive weights.)。これは、全体CUに対する予測信号であり、変換及び量子化プロセスは他の予測モードでのように全体CUに適用される(This is the prediction signal for the whole CU, and transform and quantization process will be applied to the whole CU as in other prediction modes.)。最後に、トライアングルパーティションモードを使用して予測したCUのモーションフィールドは、4×4単位で格納される(Finally, the motion field of a CU predicted using the triangle partition mode is stored in 4x4 units.)。トライアングルパーティションモードはSBT(subblock transform)と一緒に使用されない。すなわち、シグナリングされたトライアングルモードの値が1であるとき、cu_sbt_flagはシグナリングなしに0として導出される(The triangle partition mode is not used in combination with SBT, that is, when the signalled triangle mode is equal to 1, the cu_sbt_flag is inferred to be 0 without signalling.)。
【0192】
単予測候補リストは前述のマージ候補リストから直接導出される(The uni-prediction candidate list is derived directly from the merge candidate list constructed as described above.)。
【0193】
自体の動きを使って各トライアングルパーティションを予測した後、2つの予測信号にブレンディングが適用されて対角線又は半対角線エッジの周辺においてサンプルを導出する(After predicting each triangle partition using its own motion, blending is applied to the two prediction signals to derive samples around the diagonal or anti-diagonal edge.)。
【0194】
一方、結合されたインター及びイントラの予測が現在ブロックに適用されることができる(Combined inter and intra prediction can be applied to a current block.)。CIIPモードが現在CUに適用されるか否かを示すために追加フラグ(例えば、ciip_flag)がシグナリングされる(An additional flag (ex. ciip_flag) may be signalled to indicate if the combined inter/intra prediction (CIIP) mode is applied to the current CU.)。例えば、CUがマージモードでコーディングされた場合、CUに最小64個のルマサンプルが含まれ(すなわち、CU幅とCU高さの積が64ルマサンプルより大きいか等しく)CU幅とCU高さが全て128ルマサンプルより小さい場合、CIIPモードが現在のCUに適用されるか否かを示すために追加フラグがシグナリングされる(For example, when a CU is coded in merge mode, if the CU contains at least 64 luma samples (that is, CU width times CU height is equal to or larger than 64), and if both CU width and CU height are less than 128 luma samples, the additional flag is signalled to indicate if the combined inter/intra prediction (CIIP) mode is applied to the current CU.)。その名称が示しているすように、CIIP予測はインター予測信号とイントラ予測信号を結合する(As its name indicates, the CIIP prediction combines an inter prediction signal with an intra prediction signal.)。CIIPモードP_interにおけるインター予測信号は、レギュラーマージモードに適用される同一のインター予測プロセスを利用して導出され、イントラ予測信号P_intraはプラナーモードを有するレギュラーイントラ予測プロセスに従って導出される(The inter prediction signal in the CIIP mode P_inter is derived using the same inter prediction process applied to regular merge mode; and the intra prediction signal P_intra is derived following the regular intra prediction process with the planar mode.)。その後、イントラ及びインター予測信号は加重平均を使用して結合され、ここで、加重値は次のように上側及び左側周辺ブロックのコーディングモードに応じて計算される(Then, the intra and inter prediction signals are combined using weighted averaging, where the weight value is calculated depending on the coding modes of the top and left neighbouring blocks as follows.)
【0195】
上側隣接が使用可能で、イントラコーディングされた場合、isIntraTopを1に設定し、そうでない場合、isIntraTopを0に設定する(If the top neighbor is available and intra coded, then set isIntraTop to 1, otherwise set isIntraTop to 0.)。
【0196】
左側隣接が使用可能で、イントラコーディングされた場合、isIntraLeftを1に設定し、そうでない場合、isIntraLeftを0に設定する(If the left neighbor is available and intra coded, then set isIntraLeft to 1, otherwise set isIntraLeft to 0.)。
【0197】
(isIntraLeft+isIntraLeft)が2である場合、加重値(wt)は3に設定される(If (isIntraLeft + isIntraLeft) is equal to 2, then wt is set to 3.)。
【0198】
そうではなく(isIntraLeft+isIntraLeft)が1であると、wtは2に設定される(Otherwise, if (isIntraLeft + isIntraLeft) is equal to 1, then wt is set to 2.)。
【0199】
そうでないと、wtは1に設定される(Otherwise, set wt to 1.)。
【0200】
CIIP予測は次のように形成される(The CIIP prediction is formed as follows.)。
【0201】
【数2】
【0202】
一方、コーディング装置において予測ブロックを生成するために、前述のレギュラーマージモード、スキップモード、SbTMVPモード、MMVDモード、トライアングルパーティションモード(パーティショニングモード)及び/又はCIIPモードに基づいて動き情報を誘導することができる。各モードは、シーケンスパラメータセット(SPS)に含まれるそれぞれのモードに対するオン/オフフラグ(on/off flag)を介して活性化/非活性化(enable/disable)される。もし、特定モードのためのオン/オフフラグが非活性化(disable)されると、エンコーディング装置はCU又はPU単位で当該予測モードのために明示的(explicit)に送信されるシンタックス(syntax)をシグナリングしない。
【0203】
本文書では、不要な(redundant)シンタックスのシグナリングが除去されるようにするために、マージ/スキップモードのオン/オフ及び適用方法を考慮してシンタックスをシグナリングする方法が開示される。
【0204】
例えば、レギュラーマージフラグ(regular_merge_flag)の場合、MMVD、サブブロックマージ(subblock merge)、CIIPマージ、及びトライアングルマージ(triangle merge)が許容されない条件では、可能な候補がレギュラーマージモード以外に存在しないため、フラグ(例えば、レギュラーマージフラグ)をシグナリングする必要がない。
【0205】
また、mmvd関連フラグ(例えば、mmvd_merge_flag)も、サブブロックマージ、CIIPマージ及びトライアングルマージが許容されない条件ではシグナリングする必要がない。
【0206】
サブブロック関連のフラグ(例えば、merge_subblock_flag)はCIIPマージ及びトライアングルマージが許容されない条件ではシグナリングする必要がない。
【0207】
CIIP関連フラグ(例えば、 ciip_flag)の場合、トライアングルマージが許容されない条件ではシグナリングする必要がない。
【0208】
従って、表2のマージデータシンタックスによれば、マージ/スキップモードのための特定モードが全て非活性化(disable)されるか、一部非活性化(disable)されたる場合、オン/オフフラグが不要に(redundant)シグナリングされる問題が発生する。従って、本文書では、現在ブロックに適用されるマージモードを選択する過程で、同一の情報(フラグ)が重複してシグナリングされることを防止するために、次のような方法が使用される。
【0209】
以下の図面は、本文書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/情報の名称は例示的に提示されたものであるので、本明細書の技術的特徴が以下の図面に用いられた具体的な名称に制限されるものではない。
【0210】
図10及び図11は、本文書の実施形態によるインター予測方法を含むビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0211】
図10のエンコーディング方法は、図2において開示されたエンコーディング装置200により行われる。具体的に、例えば、図10のS1000ないしS1030はエンコーディング装置200の予測部220により行われ、S1040はエンコーディング装置200のレジデュアル処理部230により行われ、S1050はエンコーディング装置200のエントロピーエンコーディング部240により行われる。図10において開示されたエンコーディング方法は、本文書で前述した実施形態を含む。
【0212】
具体的に、図10及び図11を参照すると、エンコーディング装置の予測部は現在ブロックの予測モードを決定する(S1000)。一例として、エンコーディング装置の予測部は、現在ブロックにインター予測が適用される場合、レギュラーマージモード、スキップモード、MMVDモード、サブブロックマージモード、パーティショニングモード、CIIPモードのいずれか1つを前記現在ブロックの予測モードとして決定することができる。
【0213】
ここで、前記レギュラーマージモードは周辺ブロックの動き情報を利用して現在ブロックの動き情報を誘導するモードと定義される。スキップモードは、予測ブロックを復元ブロックとして使用するモードと定義される。前記MMVDモードは、前記マージモード又は前記スキップモードに適用されるものであり、動きベクトル差分を利用するマージ(又は、スキップ)モードと定義される。前記サブブロックマージモードは、サブブロックに基づいてマージモードと定義される。前記パーティショニングモードは、現在ブロックを2つのパーティション(対角線又は半対角線)に分けて予測を行うモードと定義される。前記CIIPモードは、ピクチャ間の併合(inter-picture merge)とピクチャ内の予測(intra-picture prediction)が結合したモードと定義される。
【0214】
エンコーディング装置の予測部は、現在ブロックの予測モードに基づいてマージ候補リストを構成する(S1010)。例えば、現在ブロックに対する予測モードが(レギュラー)マージモードに決定される場合、エンコーディング装置の予測部は、前記現在ブロックの空間的周辺ブロックと時間的周辺ブロックに基づいてマージ候補リスト(又は、動き情報候補リスト)を構成し、それに基づいて動き情報を生成する。
【0215】
エンコーディング装置の予測部は、前記マージ候補リストに基づいて現在ブロックの動き情報を導出する(S1020)。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含む。例えば、現在ブロックに対する予測モードが(レギュラー)マージモードに決定される場合、エンコーディング装置の予測部は、前記現在ブロックの空間的周辺ブロックと時間的周辺ブロックに基づいてマージ候補リスト(又は、動き情報候補リスト)を構成し、それに基づいて動き情報を生成する。ここで、エンコーディング装置の予測部は、動き推定により参照ピクチャの一定領域(サーチ領域)内で現在ブロックと類似したブロックをサーチして前記現在ブロックとの差が最小又は一定基準以下である参照ブロックを導出し、これに基づいて前記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出する。そして、前記参照ブロックと前記現在ブロックの位置の差に基づいて動きベクトルを導出する。
【0216】
エンコーディング装置の予測部は、現在ブロックの予測モードと現在ブロックの動き情報に基づいて現在ブロックの予測サンプル(予測ブロック)を導出する(S1030)。また、前記予測モードに基づいて予測モードに関する情報を生成する。ここで、前記予測モードに関する情報は、インター/イントラ予測区分情報、インター予測モード情報などを含み、これに関する様々なシンタックス要素を含む。
【0217】
エンコーディング装置のレジデュアル処理部は、前記現在ブロックに対する原本のサンプル(原本ブロック)と前記現在ブロックに対する予測サンプル(予測ブロック)に基づいてレジデュアルサンプルを導出する(S1040)。そして、前記レジデュアルサンプルに基づいてレジデュアルサンプルに関する情報を導出する。
【0218】
エンコーディング装置のエンコーディング部は、前記レジデュアルサンプルに関する情報、前記予測モードに関する情報などを含む映像情報をエンコーディングする(S1050)。前記映像情報はパーティショニング関連情報、予測モードに関する情報、レジデュアル情報、インループフィルタリング関連情報などを含み、それに関する様々なシンタックス要素を含む。エンコーディング装置のエンコーディング部によりエンコーディングされた情報はビットストリーム形態で出力される。前記ビットストリームは、ネットワーク又は格納媒体を介してデコーディング装置に送信される。
【0219】
例えば、前記映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報を含む。また、前記映像情報は、コーディングユニットシンタックス、マージデータシンタックスなどの現在ブロックの予測モードに関する情報を含む。ここで、前記シーケンスパラメータセットはCIIP(combined inter-picture merge and intra-picture prediction)可用フラグ(ciip enabled flag)、パーティショニングモードに対する可用フラグなどを含む。前記コーディングユニットシンタックスは、現在ブロックにスキップモードが適用されるか否かを示すCUスキップフラグ(CU skip flag)を含む。
【0220】
一実施形態によれば、一例として、エンコーディング装置は、同一シンタックスが重複送信されないようにMMVD(MMVDモード)が許容される条件(MMVDAllowed)、マージサブブロック(サブブロックマージモードが許容される条件(MergeSubBlockAllowed)、マージCIIP(CIIPモード)が許容される条件(MergeCIIPAllowed)及び/又はマージトライアングル(パーティショニングモード)が許容される条件(MergeTriangleAllowed)に基づいてレギュラーマージフラグ(regular_merge_flag)のシグナリング条件と関連セマンティクス、MMVDマージフラグ(MMVD_merge_flag)のシグナリング条件と関連セマンティックス、マージサブブロックフラグ(merge_subblock_flag)のシグナリング条件と関連セマンティックス及び/又はCIIPフラグのシグナリング条件と関連セマンティックスの一部が適用されるか全てが適用されることができる。
【0221】
このために、マージデータシンタックスは一例として、次の表5のように構成される。
【0222】
【表5-1】
【表5-2】
【0223】
表5において、general_merge_flag[x0][y0]は、現在コーディングユニットに対するインター予測パラメータが隣接するインター予測されたパーティションから誘導されるか否かを示す(general_merge_flag[x0][y0] specifies whether the inter prediction parameters for the current coding unit are inferred from a neighbouring inter-predicted partition.)。アレイインデックスx0、y0はピクチャの左上側ルマサンプルに対する考慮されたコーディングブロックの左上側ルマサンプル位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0224】
general_merge_flag[x0][y0]が存在しない場合、これは次のように導出される(When general_merge_flag[x0][y0] is not present, it is inferred as follows.)。
【0225】
-cu_skip_flag[x0][y0]の値が1であると、general_merge_flag[x0][y0]は1として導出される(If cu_skip_flag[x0][y0] is equal to 1, general_merge_flag[x0][y0] is inferred to be equal to 1.)。
【0226】
-そうでないと、general_merge_flag[x0][y0]の値は0として導出される(Otherwise, general_merge_flag[x0][y0] is inferred to be equal to 0.)。
【0227】
表5において、MMVD(MMVD モード)が許容される条件(MMVDAllowed)、マージサブブロック(サブブロックマージモード)が許容される条件(MergeSubBlockAllowed)、マージCIIP(CIIPモード)が許容される条件(MergeCIIPAllowed)、及びマージトライアングル(パーティショニングモード)が許容される条件(MergeTriangleAlowed)はそれぞれ次のような条件に従って誘導される。
【0228】
もし、次の条件が全て真であれば、変数MMVDAllowedは真に設定される(If all of the following conditions are true, the variable MMVDAllowed is set equal to true.)。
【0229】
-general_merge_flag[x0][y0]の値が1(general_merge_flag[x0][y0] is equal to 1)
【0230】
-sps_mmvd_enabled_flagの値が1(sps_mmvd_enabled_flag is equal to 1)
【0231】
-現在ブロックの高さと現在ブロックの幅の積が32より大きい(cbWidth *cbHeight is greater than 32)
【0232】
もし、次の条件が全て真であれば、変数MMVDSubblockAllowedは真に設定される(If all of the following conditions are true, the variable MergeSubblockAllowed is set equal to true.)。
【0233】
-general_merge_flag[x0][y0]の値が1(general_merge_flag[x0][y0] is equal to 1)
【0234】
-サブブロックマージ候補の最大個数が0より大きい(MaxNumSubblockMergeCand > 0)
【0235】
-ブロックの幅が8以上であり、ブロックの高さが8以上(cbWidth is greater than or equal to 8 and cbHeight is greater than orequal to 8)
【0236】
もし、次の条件が全て真であれば、変数 MergeCIIPAllowedは真に設定される(If all of the following conditions are true, the variable MergeCIIPAllowed is set equal to true.)。
【0237】
-general_merge_flag[x0][y0]の値が1(general_merge_flag[x0][y0] is equal to 1)
【0238】
-sps_ciip_enabled_Flagの値が1(sps_ciip_enabled_Flag is equal to 1)
【0239】
-cu_skip_flag[x0][y0]の値が0(cu_skip_flag[x0][y0] is equal to 0)
【0240】
-現在ブロックの幅と高さの積が64以上(cbWidth * cbHeight is greater than or equal to 64)
【0241】
-現在ブロックの幅が128より小さく、現在ブロックの高さが128より小さい(cbWidth is smaller than 128 and cbHeight is smaller than 128)
【0242】
もし、次の条件が全て真であれば、変数MergeTriangleAllowedは真に設定される(If all of the following conditions are true, MergeTriangleAllowed is set equal to true.)。
【0243】
-general_merge_flag[x0][y0]の値が1(general_merge_flag[x0][y0] is equal to 1)
【0244】
-sps_triangle_enalbed_Flagの値が1であり、スライドタイプがB(sps_triangle_enalbed_Flag is equal to 1 and slice_type is equal to B)
【0245】
-トライアングルマージ候補の最大個数が2以上(NaxNumTriangleMergeCand is greater than or equal to 2)
【0246】
-現在ブロックの幅と高さの積が64以上(cbWidth * cbHeight is greater than or equal to 64)
【0247】
前記条件のうち、MMVDAllowedはMMVDが許容可能である条件を意味するが、このとき、ブロックサイズに基づく条件は、現在ブロックが4×8及び8×4でない場合に可能である。しかしながら、4×8及び/又は8×4ブロックにおいて単予測(uni-prediction)MMVD が許容される場合、圧縮効率が改善できるため、MMVDAllowed条件は以下のように変更できる。
【0248】
もし、次の条件が全て真であれば、変数MMVDAllowedは真に設定される(If all of the following conditions are true, the variable MMVDAllowed is set equal to true.)。
【0249】
-general_merge_flag[x0][y0]の値は1(general_merge_flag[x0][y0] is equal to 1)
【0250】
-sps_mmvd_enabled_flagの値は1(sps_mmvd_enabled_flag is equal to 1)
【0251】
一方、レギュラーマージプラグの値1は、現在コーディングユニット(現在ブロック)のインター予測パラメータの生成にレギュラーマージモードが使用されることを示す(regular_merge_flag[x0][y0] equal to 1 specifies that regular merge mode is used to generate the inter prediction parameters of the current coding unit.)。アレイインデックスx0、y0はピクチャの左上側ルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0252】
表5を参照すると、レギュラーメジプラグはMMVDモードに基づく条件(MMVDAllowed)、サブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTriangleAllowed)のうち少なくとも1つの値は1である場合、映像情報に含まれてビットストリームの形態でシグナリングされる。
【0253】
一例として、レギュラーマージプラグはCIIPが可用である場合、ビットストリームに含まれることができる。CIIPが可用であることは、ゼネラルマージフラグ、CIIP可用フラグ、現在ブロックのサイズ及びCUスキップフラグの少なくとも1つに基づいて判断できる。例えば、前記レギュラーマージフラグは、ゼネラルマージフラグの値が1である場合、又は、CIIP可用フラグの値が1である場合、又は、前記現在ブロックの高さと前記現在ブロックの幅の積が64以上である場合、又は、前記現在ブロックの高さと前記現在ブロックの幅がそれぞれ128より小さい場合、又は、前記スキップフラグの値が0である場合、ビットストリームに含まれる。または、前記レギュラーマージフラグは、ゼネラルマージフラグ、CIIP可用フラグ、現在ブロックのサイズ及びCUスキップフラグに基づく条件が全て満たされる場合、ビットストリームに含まれる。
【0254】
他の例として、レギュラーマージフラグは、パーティショニングモードが可用である場合、ビットストリームに含まれることができる。パーティショニングモードが可用であることは、ゼネラルマージフラグ、パーティショニングモードが可用であるか否かを示すパーティショニングモード可用フラグ、現在ブロックに関する情報の少なくとも1つに基づいて判断される。例えば、前記レギュラーマージフラグは、ゼネラルマージフラグの値が1である場合、又はパーティショニングモード可用フラグの値が1である場合、又は前記現在ブロックの高さと前記現在ブロックの幅の積が64以上である場合、又は前記現在ブロックのスライスタイプがBスライスである場合、又はパーティショニングモード候補の最大個数が2以上である場合、ビットストリームに含まれる。または、前記レギュラーマージフラグは、前記条件が全て満たされる場合にビットストリームに含まれる。
【0255】
マージデータシンタックスにレギュラーマージフラグが存在しない場合、これは次のように導出される(When regular_merge_flag[x0][y0] is not present in the merge data syntax, it is inferred as follows.)。
【0256】
もし、次の条件が全て真である場合、レギュラーマージプラグの値は1として導出される(If all of the following conditions are true, regular_merge_flag[x0][y0] is inferred to be equal to 1.)。
【0257】
-MMVDAllowedの値は0(MMVDAllowed is equal to 0)
【0258】
-MergeSubBlockAllowedの値は0(MergeSubBlockAllowed is equal to 0)
【0259】
-MergeCIIPAllowedの値は0(MergeCIIPAllowed is equal to 0)
【0260】
-MergeTriangleAllowedの値は0(MergeTriangleAllowed is equal to 0)
【0261】
-その他、レギュラーマージフラグの値は0として導出される(Otherwise, regular_merge_flag[x0][y0] is inferred to be equal to 0.)。
【0262】
一方、MMVDマージフラグの値1は、動きベクトル差分を有するマージモードが現在コーディングユニット(現在ブロック)のインター予測パラメータの生成に使用されることを示す(mmvd_merge_flag[x0][y0] equal to 1 specifies that merge mode with motion vector difference is used to generate the inter prediction parameters of the current coding unit.)。アレイインデックスx0、y0はピクチャの左上側のルマサンプルに対して考慮されるコーディングブロックの左上側のルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0263】
表5を参照すると、MMVDマージフラグはMMVDモードに基づく条件(MMVDAllowed)、サブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTriangleAllowed)のうち少なくとも1つの値が1である場合、映像情報に含まれてビットストリームの形態でシグナリングされる。
【0264】
マージデータシンタックスにMMVDマージフラグが存在しない場合、これは次のように導出される(When mmvd_merge_flag[x0][y0] is not present in the merge data syntax, it is inferred as follows.)。
【0265】
もし、次の条件が全て真である場合、MMVDマージフラグの値は1として導出される(If all of the following conditions are true, mmvd_merge_flag[x0][y0] is inferred to be equal to 1.)。
【0266】
-regular_merge_flag[x0][y0]の値は0(regular_merge_flag[x0][y0] is equeal to 0)
【0267】
-MMVDAllowedの値は1(MMVDAllowed is equal to 0)
【0268】
-MergeSubBlockAllowedの値は0(MergeSubBlockAllowed is equal to 0)
【0269】
-MergeCIIPAllowedの値は0(MergeCIIPAllowed is equal to 0)
【0270】
-MergeTriangleAllowedの値は0(MergeTriangleAllowed is equal to 0)
【0271】
-以外には、MMVDマージフラグの値が0として導出される(Otherwise, mmvd_merge_flag[x0][y0] is inferred to be equal to 0.)。
【0272】
mmvd_cand_flag[x0][y0]は、マージ候補リストの1番目(0)又は2番目(1)候補がmmvd_distance_idx[x0][y0]及びmmvd_direction_idx[x0][y0] から導出された動きベクトル差分と共に使用されるか否かを示す(mmvd_cand_flag[x0][y0] specifies whether the first (0) or the second (1) candidate in the merging candidate list is used with the motion vector difference derived from mmvd_distance_idx[x0][y0] and mmvd_direction_idx[x0][y0].)。アレイインデックスx0、y0は、ピクチャの左上側ルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。mmvd_cand_flag[x0][y0]が存在しない場合、これは0として導出される(When mmvd_cand_flag[x0][y0] is not present, it is inferred to be equal to 0.)。
【0273】
mmvd_distance_idx[x0][y0]は、表3に指定されたMMVDDistance[x0][y0]の導出に使用されるインデックスを示す(mmvd_distance_idx[x0][y0] specifies the index used to derive MMVDDistance[x0][y0] as specified in Table 3.)。アレイインデックスx0、y0はピクチャの左上側のルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0274】
mmvd_direction_idx[x0][y0]は、表4に指定されたMMVDSign[x0][y0]の導出に使用されるインデックスを示す(mmvd_direction_idx[x0][y0] specifies index used to derive MMVDSign[x0][y0] as specified in Table 4.)。アレイインデックスx0、y0はピクチャの左上側ルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0275】
マージプラスMVDオフセットMMVDOffset[x0][y0]の2つの構成要素は、数式1のように導出される(Both components of the merge plus MVD offset MMVDOffset[x0][y0] are derived as Equation 1.)。
【0276】
一方、マージサブブロックフラグは、周辺ブロックから現在コーディングユニットのためにサブブロックベースのインター予測パラメータが導出されるか否かを示す(merge_subblock_flag[x0][y0] specifies whether the subblock-based inter prediction parameters for the current coding unit are inferred from neighbouring blocks.)。アレイインデックスx0、y0はピクチャの左上側のルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0277】
表5を参照すると、マージサブブロックフラグは、サブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTriangleAllowed)のうち少なくとも1つの値が1である場合、映像情報に含まれてビットストリーム形態でシグナリングされる。
【0278】
マージデータシンタックスにマージサブブロックフラグが存在しない場合、これは次のように導出される(When merge_subblock_flag[x0][y0] is not present in the merge data syntax, it is inferred as follow.)。
【0279】
もし、次の条件が全て真である場合、マージサブブロックフラグの値は1として導出される(If all of the following conditions are true, merge_subblock_flag[x0][y0] is inferred to be equal to 1.)。
【0280】
-レギュラーマージフラッグの値が0(regular_merge_flag[x0][y0] is equal to 0)
【0281】
-MMVDマージフラグの値が0(mmvd_merge_flag[x0][y0] is equal to 0)
【0282】
-MergeSubBlockAllowedの値は0(MergeSubBlockAllowed is equal to 0)
【0283】
-MergeCIIPAllowedの値は0(MergeCIIPAllowed is equal to 0)
【0284】
-MergeTriangleAllowedの値は0(MergeTriangleAllowed is equal to 0)
【0285】
-以外には、マージサブブロックフラグの値が0として導出される(Otherwise, merge_subblock_flag[x0][y0] is inferred to be equal to 0.)。
【0286】
merge_subblock_idx[x0][y0]はサブブロックベースのマージ候補リストのマージ候補インデックスを示す。ここで、x0、y0は、ピクチャの左上側ルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す。(merge_subblock_idx[x0][y0] specifies the merging candidate index of the subblock-based merging candidate list where x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0287】
merge_subblock_idx[x0][y0]が存在しない場合、これは0として導出される(When merge_subblock_idx[x0][y0] is not present, it is inferred to bequal to0.)。
【0288】
一方、ciip_flag[x0][y0]は、結合されたインター-ピクチャマージ及びイントラ-ピクチャマージが現在コーディングユニットに適用されるか否かを示す(ciip_flag[x0][y0] specifies whether the combined inter-picture merge and intra-picture prediction is applied for the current coding unit.)。アレイインデックスx0、y0はピクチャの左上側ルマサンプルに対して考慮されるコーディングブロックの左上側ルマサンプルの位置(x0,y0)を示す(The array indices x0, y0 specify the location (x0, y0) of the top-left luma sample of the considered coding block relative to the top-left luma sample of the picture.)。
【0289】
表5を参照すると、CIIPフラグはCIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTriangleAllowed)の少なくとも1つの値が1である場合、映像情報に含まれてビットストリームの形態でシグナリングされる。
【0290】
例えば、CIIPフラグはパーティショニングモードが可用である場合、ビットストリームに含まれることができる。パーティショニングモードが可用であることは、ゼネラルマージフラグ、パーティショニングモードが可用であるか否かを示すパーティショニングモード可用フラグ、現在ブロックに関する情報の少なくとも1つに基づいて判断できる。例えば、前記CIIPフラグは、ゼネラルマージフラグの値が1である場合、又はパーティショニングモード可用フラグの値が1である場合、又は前記現在ブロックの高さと前記現在ブロックの幅の積が64以上である場合、又は前記現在ブロックのスライスタイプがBスライスである場合、又はパーティショニングモード候補の最大個数が2以上である場合、ビットストリームに含まれることができる。または、前記CIIPフラグは、前記条件が全て満たされる場合、ビットストリームに含まれる。
【0291】
マージデータシンタックスにciip_flag[x0][y0]が存在しない場合、これは次のように導出される(When ciip_flag[x0][y0] is not present, it is inferred as follows.)。
【0292】
もし、次の条件が全て真である場合、CIIPフラグの値は1として導出される(If all the following conditions are true, ciip_flag[x0][y0] is set equal to 1.)。
【0293】
-MergeCIIPAllowedの値は0(MergeCIIPAllowed is equal to 0)
【0294】
-MergeTriangleAllowedの値は0(MergeTriangleAllowed is equal to 0)
【0295】
-以外には、CIIPフラグの値が0として導出される(Otherwise, ciip_flag[x0][y0] is set equal to 0.)
【0296】
ciip_flag[x0][y0]の値が1である場合、x=xCb..xCb+cbWidth-1及びy=yCb..yCb+cbHeight-1である変数IntraPredModeY[x][y]はINTRA_PLANARとして設定される(When ciip_flag[x0][y0] is equal to 1, the variable IntraPredModeY[x][y] with x = xCb..xCb + cbWidth - 1 and y = yCb..yCb + cbHeight - 1 is set to be equal to INTRA_PLANAR.)。
【0297】
変数MergeTriangleFlag[x0][y0]は、トライアングルスライスベースの動き補償がBスライスをデコーディングするときに現在コーディングユニットの予測サンプルの生成に使われるか否かを示し、次のように導出される(The variable MergeTriangleFlag[x0][y0], which specifies whether triangular shape based motion compensation is used to generate the prediction samples of the current coding unit, when decoding a B slice, is derived as follows.)。
【0298】
次の条件が全て真である場合、MergeTriangleFlag[x0][y0]の値は1に設定される(If all the following conditions are true, MergeTriangleFlag[x0][y0] is set equal to 1.)。
【0299】
-MergeTriangleAllowedの値は1(MergeTriangleAllowed is equal to 1)
【0300】
-regular_merge_flag[x0][y0]の値は0(regular_merge_flag[x0][y0] is equal to 0)
【0301】
-mmvd_merge_flag[x0][y0]の値は0(mmvd_merge_flag[x0][y0] is equal to 0)
【0302】
-merge_subblock_flag[x0][y0]の値は0(merge_subblock_flag[x0][y0] is equal to 0)
【0303】
-ciip_flag[x0][y0]の値は0(ciip_flag[x0][y0] is equal to 0)
【0304】
-以外には、MergeTriangleFlag[x0][y0]の値が0に設定される。
【0305】
図12及び図13は、本文書の実施形態によるインター予測方法を含むビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0306】
図12において開示されたデコーディング方法は、図3及び図13において開示されたデコーディング装置300により行われる。具体的に、例えば、図12のS1200ないしS1230は、デコーディング装置300の予測部330により行われる。図12において開示されたデコーディング方法は、本文書で前述した実施形態を含む。
【0307】
図12及び図13に示すように、デコーディング装置は、ビットストリームから現在ブロックの予測モードに関する情報を取得し、これに基づいて現在ブロックの予測モードを決定する(S1200)。具体的に、デコーディング装置のエントロピーデコーディング部310は、図2のエンコーディング装置からビットストリーム形態で受信した信号からレジデュアル情報及び予測モードに関する情報を導出する。ここで、前記予測モードに関する情報は予測関連情報と称されてもよい。前記予測モードに関する情報は、インター/イントラ予測区分情報、インター予測モード情報などを含み、これに関する様々なシンタックス要素を含む。
【0308】
前記ビットストリームには、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報を含む映像情報が含まれる。前記映像情報は、コーディングユニットシンタックス、マージデータシンタックスなどの現在ブロックの予測モードに関する情報をさらに含んでもよい。前記シーケンスパラメータセットは、CIIP可用フラグ、パーティショニングモードに対する可用フラグなどを含む。前記コーディングユニットシンタックスは、現在ブロックにスキップモードが適用されるか否かを示すCUスキップフラグを含む。
【0309】
デコーディング装置の予測部320は、現在ブロックの予測モードに基づいて現在ブロックに関する動き情報候補リスト(又は、マージ候補リスト)を構成する(S1210)。また、ビットストリームから取得した候補選択情報(merge index)に基づいて前記動き情報候補リストからマージ候補を選択し、選択されたマージ候補の動き情報を利用して現在ブロックの動き情報を導出する(S1220)。
【0310】
現在ブロックの動き情報が導出されると、デコーディング装置の予測部は、前記現在ブロックの動き情報に基づいて現在ブロックの予測サンプルを生成する(S1230)。
【0311】
一方、デコーディング装置のレジデュアル処理部320は、ビットストリームから取得したレジデュアル情報に基づいてレジデュアルサンプルを生成する。
【0312】
デコーディング装置の加算部340は、予測部330で生成された予測サンプルとレジデュアル処理部320で生成されたレジデュアルサンプルに基づいて復元サンプルを生成する。復元ピクチャは前記復元サンプルに基づいて生成される。以後、必要に応じて主観的/客観的画質を向上させるためにデブロッキングフィルタリング、SAO及び/又はALF手順などのインループフィルタリング手順が前記復元ピクチャに適用されることができる。
【0313】
一実施形態として、現在ブロックの予測モードを決定するにおいて、デコーディング装置の予測部は、前述のMMVDモードに基づく条件(MMVDAllowed)、サブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTrrangleAllowed)の少なくとも1つの値が1である場合、ビットストリームからレギュラーマージフラグを取得又はパーシングすることができる。
【0314】
一例として、デコーディング装置は、CIIPが可用である場合、ビットストリームからレギュラーマージプラグをパーシングすることができる。CIIPが可用であることは、ゼネラルマージフラグ、CIIP可用フラグ、現在ブロックのサイズ及びCUスキップフラグの少なくとも1つに基づいて判断できる。例えば、前記ゼネラルマージフラグの値が1である場合、又はCIIP可用フラグの値が1である場合、又は前記現在ブロックの高さと前記現在ブロックの幅の積が64以上である場合、又は前記現在ブロックの高さと前記現在ブロックの幅がそれぞれ128より小さい場合、又は前記スキップフラグの値が0である場合、デコーディング装置はCIIPが可用であると判断する。または、デコーディング装置は、ゼネラルマージフラグ、CIIP可用フラグ、現在ブロックのサイズ及びCUスキップフラグに基づく条件が全て満たされる場合、CIIPが可用であると判断する。
【0315】
他の例として、デコーディング装置は、パーティショニングモードが可用である場合、ビットストリームからレギュラーマージフラグをパーシングすることができる。パーティショニングモードが可用であることは、ゼネラルマージフラグ、パーティショニングモードが可用であるか否かを示すパーティショニングモード可用フラグ、現在ブロックに関する情報の少なくとも1つに基づいて判断される。例えば、前記レギュラーマージフラグは、ゼネラルマージフラグの値が1である場合、又はパーティショニングモード可用フラグの値が1である場合、又は前記現在ブロックの高さと前記現在ブロックの幅の積が64以上である場合、又は前記現在ブロックのスライスタイプがBスライスである場合、又はパーティショニングモード候補の最大個数が2以上である場合、デコーディング装置は、パーティショニングモードが可用であると判断する。または、デコーディング装置は、前記条件が全て満たされる場合、パーティショニングモードが可用であると判断する。
【0316】
一方、現在ブロックの予測モードを決定するにおいて、デコーディング装置の予測部は、前述のMMVDモードに基づく条件(MMVDAllowed)、サブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)、及びパーティショニングモードに基づく条件(MerlgeTriangleAllowed)の少なくとも1つの値が1である場合、ビットストリームからMMVDマージフラグを取得又はパーシングすることもできる。
【0317】
また、現在ブロックの予測モードを決定するにおいて、デコーディング装置の予測部は、前述のサブブロックマージモードに基づく条件(MergeSubBlockAllowed)、CIIPモードに基づく条件(MergeCIIPAllowed)、及びパーティショニングモードに基づく条件(MergeTriangleAllowed)の少なくとも1つの値が1である場合、ビットストリームからマージサブブロックフラグを取得又はパーシングすることができる。
【0318】
また、現在ブロックの予測モードを決定するにおいて、デコーディング装置の予測部は、前述のCIIPモードに基づく条件(MergeCIIPAllowed)及びパーティショニングモードに基づく条件(MergeTriangleAllowed)の少なくとも1つの値が1である場合、ビットストリームからCIIPフラグを取得又はパーシングすることができる。一例として、デコーディング装置は、パーティショニングモードが可用である場合、ビットストリームからCIIPフラグをパーシングすることができる。パーティショニングモードが可用であることは、ゼネラルマージフラグ、パーティショニングモードが可用であるか否かを示すパーティショニングモード可用フラグ、現在ブロックに関する情報の少なくとも1つに基づいて判断される。例えば、前記レギュラーマージフラグは、ゼネラルマージフラグの値が1である場合、又はパーティショニングモード可用フラグの値が1である場合、又は前記現在ブロックの高さと前記現在ブロックの幅の積が64以上の場合、又は前記現在ブロックのスライスタイプがBスライスである場合、又はパーティショニングモード候補の最大個数が2以上である場合、デコーディング装置はパーティショニングモードが可用であると判断する。または、デコーディング装置は、前記条件が全て満たされる場合、パーティショニングモードが可用であると判断する。
【0319】
前述した実施形態において、方法は、一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、該当実施形態は、ステップの順序に限定されるわけではなく、あるステップは、前述したところと異なるステップと異なる順序で、又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの1つ又はそれ以上のステップが本文書の実施形態の範囲に影響を与えずに削除され得ることを理解することができる。
【0320】
前述した本文書の実施形態に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコーディング装置及び/又はデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置等の映像処理を行う装置に含まれ得る。
【0321】
本文書で、実施形態がソフトウェアで具現される際、前述した方法は、前述した機能を行うモジュール(過程、機能等)で具現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われ得る。この場合、具現のための情報(ex.information on instructions)又はアルゴリズムがデジタル格納媒体に格納されることができる。
【0322】
また、本文書の実施形態が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、オーダーメイド型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、映像電話ビデオ装置、運送手段端末(ex.車両(自律走行車両含む)端末、飛行機端末、船舶端末など)及び医療用ビデオ装置等に含まれ得、ビデオ信号又はデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)等を含み得る。
【0323】
また、本文書の実施形態(ら)が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に格納されることができる。本文書の実施形態に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に格納されることができる。前記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学的データ格納装置を含み得る。また、前記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。
【0324】
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
【0325】
図14は、本文書において開示された実施形態が適用できるコンテンツストリーミングシステムの例を示す。
【0326】
図14に示すように、本文書の実施形態が適用されるコンテンツストリーミングシステムは、大別してエンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置及びマルチメディア入力装置を含む。
【0327】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略され得る。
【0328】
前記ビットストリームは、本文書の実施形態が適用されるエンコーディング方法又はビットストリームの生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で、一時的に前記ビットストリームを格納することができる。
【0329】
前記ストリーミングサーバは、ウェブサーバを介してのユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すれば、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0330】
前記ストリーミングサーバは、メディア格納所及び/又はエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間、格納することができる。
【0331】
前記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがありうる。
【0332】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14