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

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

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

特許7513814動きベクトル差分を利用した映像コーディング方法および装置
<>
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図1
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図2
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図3
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図4
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図5
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図6
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図7
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図8
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図9
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図10
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図11
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図12
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図13
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図14
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図15
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図16
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図17
  • 特許-動きベクトル差分を利用した映像コーディング方法および装置 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】動きベクトル差分を利用した映像コーディング方法および装置
(51)【国際特許分類】
   H04N 19/52 20140101AFI20240702BHJP
   H04N 19/70 20140101ALI20240702BHJP
【FI】
H04N19/52
H04N19/70
【請求項の数】 3
(21)【出願番号】P 2023130213
(22)【出願日】2023-08-09
(62)【分割の表示】P 2021573927の分割
【原出願日】2020-06-15
(65)【公開番号】P2023138751
(43)【公開日】2023-10-02
【審査請求日】2023-08-09
(31)【優先権主張番号】62/861,982
(32)【優先日】2019-06-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】パク ネリ
(72)【発明者】
【氏名】ナム チョンハク
(72)【発明者】
【氏名】チャン ヒョンムン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/221256(WO,A1)
【文献】国際公開第2020/132272(WO,A1)
【文献】Huanbang Chen, Haitao Yang, and Jianle Chen,CE4: Symmetrical MVD mode (Test 4.5.1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0370-v1,12th Meeting: Macao, CN,2018年09月,pp.1-4
【文献】Huanbang Chen, Timofey Solovyev, Haitao Yang, and Jianle Chen,CE4: Symmetrical MVD mode (Test 4.4.3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0481,13th Meeting: Marrakech, MA,2019年01月,pp.1-4
【文献】Naeri Park, et al.,Non-CE4 : Symmetric-MVD control considering the reference picture type,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0414-r1,15th Meeting: Gothenburg, SE,2019年07月,pp.1-9
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコード装置により行われる映像デコード方法であって、
ビットストリームを介して、SMVD(symmetric motion vector differences)に関する情報とMVD(Motion Vector Difference)に関する情報とを含む予測関連情報を取得するステップと、
前記SMVDに関する前記情報の値が1であることに基づいて、SMVDを用いて現ブロックに対する予測モードをインター予測モードとして決定するステップと、
前記現ブロックの周辺ブロックに基づいて前記現ブロックのためのMVP(Motion Vector Predictor)候補リストを構成するステップと、
前記MVP候補リストに基づいて前記現ブロックのためのMVPを導出するステップと、
前記現ブロックのための前記MVPと前記MVDに関する前記情報に基づいて前記現ブロックのための動きベクトルを導出するステップと、
前記動きベクトルと参照ピクチャインデックスとに基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルと前記現ブロックに対する残差サンプルとに基づいて前記現ブロックに対する復元サンプルを生成するステップと、を含み
前記現ブロックに対する前記残差サンプルは、前記ビットストリームを介して導出された変換係数に関する情報に基づいて導出され、
前記参照ピクチャインデックスは、L0予測のための参照ピクチャインデックスとL1予測のための参照ピクチャインデックスとを含み、
前記L0予測のための前記参照ピクチャインデックスは、参照ピクチャリストL0に含まれるショートターム参照ピクチャと前記現ブロックを含む現ピクチャとの間のPOC(Picture Order Count)差分に基づいて導出され
前記L1予測のための前記参照ピクチャインデックスは、参照ピクチャリストL1に含まれるショートターム参照ピクチャと前記現ピクチャとの間の前記POC差分に基づいて導出される、映像デコード方法。
【請求項2】
エンコード装置により行われる映像エンコード方法であって、
SMVD(symmetric motion vector differences)を用いて現ブロックに対する予測モードをインター予測モードとして決定するステップと、
前記現ブロックの周辺ブロックに基づいて前記現ブロックのためのMVP(Motion Vector Predictor)候補リストを構成するステップと、
前記MVP候補リストに基づいて前記現ブロックのためのMVPを導出するステップと、
前記現ブロックのための動きベクトルを導出するステップと、
前記現ブロックのための前記MVP前記動きベクトルに基づいて前記現ブロックのためのMVD(Motion Vector Difference)を導出するステップと、
前記SMVDに関する情報と前記MVDに関する情報とを含む予測関連情報を生成するステップと、
前記動きベクトルと参照ピクチャインデックスとに基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて変換係数に関する情報を生成するステップと、
前記予測関連情報と前記変換係数に関する前記情報とを含む映像情報をエンコードしてビットストリームを出力するステップと、を含み
前記参照ピクチャインデックスは、L0予測のための参照ピクチャインデックスとL1予測のための参照ピクチャインデックスとを含み、
前記L0予測のための前記参照ピクチャインデックスは、参照ピクチャリストL0に含まれるショートターム参照ピクチャと前記現ブロックを含む現ピクチャとの間のPOC(Picture Order Count)差分に基づいて導出され
前記L1予測のための前記参照ピクチャインデックスは、参照ピクチャリストL1に含まれるショートターム参照ピクチャと前記現ピクチャとの間の前記POC差分に基づいて導出される、映像エンコード方法。
【請求項3】
映像に関するデータの送信方法であって、
前記映像に関するビットストリームを取得するステップであって、前記ビットストリームは、
SMVD(symmetric motion vector differences)を用いて現ブロックに対する予測モードをインター予測モードとして決定するステップと、
前記現ブロックの周辺ブロックに基づいて前記現ブロックのためのMVP(Motion Vector Predictor)候補リストを構成するステップと、
前記MVP候補リストに基づいて前記現ブロックのためのMVPを導出するステップと、
前記現ブロックのための動きベクトルを導出するステップと、
前記現ブロックのための前記MVP前記動きベクトルに基づいて前記現ブロックのためのMVD(Motion Vector Difference)を導出するステップと、
前記SMVDに関する情報と前記MVDに関する情報とを含む予測関連情報を生成するステップと、
前記動きベクトルと参照ピクチャインデックスとに基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて変換係数に関する情報を生成するステップと、
前記予測関連情報と前記変換係数に関する前記情報とを含む映像情報をエンコードするステップと、に基づいて生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み
前記参照ピクチャインデックスは、L0予測のための参照ピクチャインデックスとL1予測のための参照ピクチャインデックスとを含み、
前記L0予測のための前記参照ピクチャインデックスは、参照ピクチャリストL0に含まれるショートターム参照ピクチャと前記現ブロックを含む現ピクチャとの間のPOC(Picture Order Count)差分に基づいて導出され
前記L1予測のための前記参照ピクチャインデックスは、参照ピクチャリストL1に含まれるショートターム参照ピクチャと前記現ピクチャとの間の前記POC差分に基づいて導出される、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、動きベクトル差分を利用した映像コーディング方法および装置に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオなどの高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど、既存の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して画像データを送信するか、既存の記憶(格納)媒体を利用して画像/ビデオデータを記憶する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Reality)コンテンツやホログラムなどの没入型(実感)メディア(Immersive Media)に対する関心および需要が増加しており、ゲーム画像のように、現実画像と異なる画像特性を有する画像/ビデオに関する放送が増加している。
【0004】
これにより、上記のような様々な特性を有する高解像度・高品質の画像/ビデオの情報を効果的に圧縮して送信するか、記憶し、再生するために、高効率の画像/ビデオ圧縮技術が求められる。
【0005】
特に、映像/ビデオコーディングにおけるインター予測は、動きベクトル差分を利用することができる。上記手順に関連して、参照ピクチャタイプ(例えば、ショートタームまたはロングターム参照ピクチャ)に基づいて動きベクトル差分を導出する議論がある。
【発明の概要】
【課題を解決するための手段】
【0006】
本文書の一実施例によると、映像/ビデオコーディング効率を上げる方法および装置が提供される。
【0007】
本文書の一実施例によると、映像/ビデオコーディングシステムにおいて効率的なインター予測を行う方法および装置が提供される。
【0008】
本文書の一実施例によると、インター予測において動きベクトル差分に関する情報をシグナリングする方法および装置が提供される。
【0009】
本文書の一実施例によると、現(現在)ブロックに双予測が適用される場合、L0動きベクトル差分およびL1動きベクトル差分に関する情報をシグナリングする方法および装置が提供される。
【0010】
本文書の実施例によると、SMVDフラグをシグナリングする方法および装置が提供される。
【0011】
本文書の一実施例によると、対称的な動きベクトル差分の導出のために特定の参照ピクチャタイプが使用される。
【0012】
本文書の一実施例によると、ショートターム参照ピクチャ(ショートターム参照のために使用されるものとしてマーキングされたピクチャ)を利用してSMVD参照インデックスの導出手順が行われる。
【0013】
本文書の一実施例によると、デコード(復号、デコーディング)装置により実行されるビデオ/映像デコード方法が提供される。
【0014】
本文書の一実施例によると、ビデオ/映像デコーディングを実行するデコード装置が提供される。
【0015】
本文書の一実施例によると、エンコード(符号化、エンコーディング)装置により実行されるビデオ/映像エンコード方法が提供される。
【0016】
本文書の一実施例によると、ビデオ/映像エンコーディングを実行するエンコード装置が提供される。
【0017】
本文書の一実施例によると、本文書の実施例のうちの少なくとも1つに開示されたビデオ/映像エンコード方法によって生成されたエンコードされたビデオ/映像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体が提供される。
【0018】
本文書の一実施例によると、デコード装置により本文書の実施例のうちの少なくとも1つに開示されたビデオ/映像デコード方法を実行するようにするエンコードされた情報またはエンコードされたビデオ/映像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体が提供される。
【発明の効果】
【0019】
本文書によると、全般的な映像/ビデオ圧縮効率を上げることができる。
【0020】
本文書によると、動きベクトル差分に関する情報を効率的にシグナリングすることができる。
【0021】
本文書によると、現ブロックに双予測が適用される場合、L1動きベクトル差分を効率的に導出することができる。
【0022】
本文書によると、L1動きベクトル差分の導出に利用される情報は、参照ピクチャのタイプに基づいてシグナリングされ、したがって、コーディングシステムの複雑度を下げることができる。
【0023】
本文書の実施例によると、SMVDのための参照ピクチャインデックスの導出のために特定の参照ピクチャタイプを用いることにより効率的なインター予測が実行されることができる。
【0024】
本文書の具体的な一例を介して得ることができる効果は、以上で羅列された効果に制限されない。例えば、関連する技術分野の通常の知識を有する者が(a person having ordinary skill in the related art)が本文書から理解し、または誘導できる多様な技術的効果が存在可能である。それによって、本文書の具体的な効果は、本文書に明示的に記載されたものに制限されずに、本文書の技術的特徴から理解され、または誘導されることができる多様な効果を含むことができる。
【図面の簡単な説明】
【0025】
図1】本文書の実施例に適用されることができるビデオ/映像コーディングシステムの例を概略的に示す図である。
図2】本文書の実施例に適用されることができるビデオ/映像エンコード装置の構成を概略的に説明する図である。
図3】本文書の実施例に適用されることができるビデオ/映像デコード装置の構成を概略的に説明する図である。
図4】インター予測ベースのビデオ/映像エンコード方法の例を示す図である。
図5】インター予測ベースのビデオ/映像デコード方法の例を示す図である。
図6】インター予測手順を例示的に示す図である。
図7】SMVDを説明する図である。
図8】インター予測において動きベクトルを導出する方法を説明する図である。
図9】本文書の一実施例によるMMVDのMVD導出(誘導)方法を示す図である。
図10】本文書の一実施例によるMMVDのMVD導出方法を示す図である。
図11】本文書の一実施例によるMMVDのMVD導出方法を示す図である。
図12】本文書の一実施例によるMMVDのMVD導出方法を示す図である。
図13】本文書の一実施例によるMMVDのMVD導出方法を示す図である。
図14】本文書の実施例(1つまたは複数(ら))によるビデオ/映像エンコード方法の一例を概略的に示す図である。
図15】本文書の実施例(1つまたは複数)による関連コンポーネントの一例を概略的に示す図である。
図16】本文書の実施例(1つまたは複数)による映像/ビデオデコード方法の一例を概略的に示す図である。
図17】本文書の実施例(1つまたは複数)による関連コンポーネントの一例を概略的に示す図である。
図18】本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す図である。
【発明を実施するための形態】
【0026】
本文書の開示は、様々な変更を加えることができ、様々な実施例を有することができるが、特定の実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本開示を特定の実施例に限定しようとするわけではない。本文書で使用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書における実施例の技術的思想を限定しようとする意図に使用されるものではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本文書において、「含む」または「有する」などの用語は、文書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つもしくは複数の異なる特徴や、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在もしくは付加の可能性を予め排除しないものと理解されるべきである。
【0027】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立して示すものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されることを意味するものではない。例えば、各構成のうち、2つ以上の構成を合わせて1つの構成をなすこともあり、1つの構成が複数の構成に分けられることもある。各構成が統合および/または分離された実施例も、本文書の開示範囲に含まれる。
【0028】
以下、添付図を参照として、本文書の実施例を説明しようとする。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し得、同じ構成要素に対して重複する説明は省略され得る。
【0029】
図1は、本文書の実施例が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【0030】
図1に示すように、ビデオ/映像コーディングシステムは、第1の装置(ソースデバイス)および第2の装置(受信デバイス)を備えることができる。ソースデバイスは、エンコードされたビデオ(video)/映像(image)情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達することができる。
【0031】
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを備えることができる。上記エンコード装置は、ビデオ/映像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/映像デコード装置と呼ばれることができる。送信器は、エンコード装置に備えられることができる。受信器は、デコード装置に備えられることができる。レンダラは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0032】
ビデオソースは、ビデオ/映像のキャプチャ、合成、または生成過程(処理、process)などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイスおよび/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、1つまたは複数のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、またはスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成され得るし、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0033】
エンコード装置は、入力ビデオ/映像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0034】
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、上記ビットストリームを受信/抽出してデコード装置に伝達することができる。
【0035】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/映像をデコードすることができる。
【0036】
レンダラは、デコードされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介して表示(ディスプレイ)されることができる。
【0037】
本文書は、ビデオ/映像コーディングに関する。例えば、本文書で開示された方法/実施例は、VVC(Versatile Video Coding)標準に開示される方法に適用されることができる。また、本文書で開示された方法/実施例は、EVC(Essential Video Coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of Audio Video Coding Standard)または次世代ビデオ/映像コーディング標準(例えば、267またはH.268など)に開示される方法に適用されることができる。
【0038】
本文書では、ビデオ/映像コーディングに関する多様な実施例を提示し、別の言及がない限り、上記実施例は、互いに組み合わせられて行われることもある。
【0039】
本文書で、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定の時間(帯)の1つの映像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つまたは複数のCTU(Coding Tree Unit)を含むことができる。1つのピクチャは、1つまたは複数のスライス/タイルで構成されることができる。タイルは、ピクチャ内の特定のタイル列および特定のタイル行(列)内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。上記タイル列は、CTUの四角領域であり、上記四角領域は、上記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素により明示され得る(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。上記タイル行は、CTUの四角領域であり、上記四角領域は、ピクチャパラメータセット内のシンタックス要素によって明示される幅を有し、高さは、上記ピクチャの高さと同一であり得る(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルのスキャンは、ピクチャをパーティショニングするCTUの特定のシーケンシャルオーダリングを示し得、上記CTUは、タイル内のCTUラスタスキャンにおいて連続して整列され得、ピクチャ内のタイルは、上記ピクチャの上記タイルのラスタスキャンにおいて連続して整列され得る(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、単一のNALユニットに排他的に含まれ得る、整数個の完全なタイルまたはピクチャのタイル内の整数個の連続する完全なCTU行を含み得る(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit)。
【0040】
一方、1つのピクチャは、2つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の1つまたは複数のスライスの四角領域であり得る(an rectangular region of one or more slices within a picture)。
【0041】
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として、「サンプル(sample)」が使用され得る。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すことができ、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0042】
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域および当該領域に関連する情報のうちの少なくとも1つを含むことができる。1つのユニットは、1つのルマブロックおよび2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行とからなるサンプル(または、サンプルアレイ)または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0043】
本文書において、「AまたはB(A or B)」は、「ただA」、「ただB」、または「AおよびBの両方」を意味し得る。言い換えると、本文書において、「AまたはB(A or B)」は、「Aおよび/またはB(A and/or B)」と解釈され得る。例えば、本文書において、「A、BまたはC(A, B or C)」は、「ただA」、「ただB」、「ただC」、または「A、BおよびCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。
【0044】
本文書で使用されるスラッシュ(/)や休止符(comma)は、「および/または(and/or)」を意味し得る。例えば、「A/B」は、「Aおよび/またはB」を意味し得る。これによって、「A/B」は、「ただA」、「ただB」、または「AおよびB両方」を意味し得る。例えば、「A、B、C」は、「A、BまたはC」を意味し得る。
【0045】
本文書において、「少なくとも1つのAおよびB(at least one of A and B)」は、「ただA」、「ただB」または「AおよびB両方」を意味し得る。また、本文書において、「少なくとも1つのAまたはB(at least one of A or B)」や「少なくとも1つのAおよび/またはB(at least one of A and/or B)」という表現は、「少なくとも1つのAおよびB(at least one of A and B)」と同様に解釈され得る。
【0046】
また、本文書において、「少なくとも1つのA、BおよびC(at least one of A, B and C)」は、「ただA」、「ただB」、「ただC」、または「A、BおよびCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。また、「少なくとも1つのA、BまたはC(at least one of A, B or C)」や「少なくとも1つのA、Bおよび/またはC(at least one of A, B and/or C)」は、「少なくとも1つのA、BおよびC(at least one of A, B and C)」を意味し得る。
【0047】
また、本文書で使用される括弧は、「例えば(for example)」を意味し得る。具体的には、「予測(イントラ予測)」と表示された場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えると、本文書の「予測」は、「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであり得る。また、「予測(すなわち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
【0048】
本文書において1つの図面内で個別に説明される技術的特徴は、個別に具現されてもよく、同時に具現されてもよい。
【0049】
図2は、本文書の実施例が適用されることができるビデオ/映像エンコード装置の構成を概略的に説明する図である。以下、エンコード装置というのは、映像エンコード装置および/またはビデオエンコード装置を含むことができる。
【0050】
図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)または復元ブロック生成部(reconstructed block generator)と呼ばれることができる。上述した映像分割部210、予測部220、残差処理部230、エントロピ符号化部240、加算部250、およびフィルタリング部260は、実施例によって1つまたは複数のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(Decoded Picture Buffer)を備えることができ、デジタル記憶媒体によって構成されることもできる。上記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
【0051】
映像分割部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)を導く単位であることができる。
【0052】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)などの集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0053】
エンコード装置200は、入力映像信号(オリジナル(原本)ブロック、オリジナルサンプルアレイ)から、インター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、残差信号(residual signal、残差ブロック、残差サンプルアレイ)を生成することができ、生成された残差信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力映像信号(オリジナルブロック、オリジナルサンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現ブロックという)に対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現ブロックまたはCU単位で、イントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピ符号化部240に伝達することができる。予測に関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0054】
イントラ予測部222は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プラナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かさの程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
【0055】
インター予測部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)をシグナリングすることにより、現ブロックの動きベクトルを指示することができる。
【0056】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ映像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを用いることができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0057】
上記予測部(インター予測部221および/または上記イントラ予測部222を含む)を介して生成された予測信号は、復元信号を生成するために用いられるか、残差信号を生成するために用いられることができる。変換部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)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換過程は、正方形の同じサイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
【0058】
量子化部233は、変換係数を量子化してエントロピ符号化部240に送信され、エントロピ符号化部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームで出力することができる。上記量子化された変換係数に関する情報は、残差情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、上記1次元ベクトル形態の量子化された変換係数に基づいて上記量子化された変換係数に関する情報を生成することもできる。エントロピ符号化部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの様々なエンコード方法を行うことができる。エントロピ符号化部240は、量子化された変換係数の他に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共にまたは別にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/映像情報)は、ビットストリーム形態でNAL(Network Abstraction Layer)ユニット単位で送信または記憶されることができる。上記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、エンコード装置からデコード装置に伝達/シグナリングされる情報および/またはシンタックス要素は、ビデオ/映像情報に含まれることができる。上記ビデオ/映像情報は、上述したエンコーディング手順を介してエンコードされて上記ビットストリームに含まれることができる。上記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル記憶媒体に記憶されることができる。ここで、ネットワークは、放送網および/または通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。エントロピ符号化部240から出力された信号を送信する送信部(図示せず)および/もしくは記憶する記憶部(図示せず)は、エンコード装置200の内/外部エレメントとして構成されることができ、または送信部は、エントロピ符号化部240に含まれることもできる。
【0059】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234および逆変換部235を介して逆量子化および逆変換を適用することにより、残差信号(残差ブロックまたは残差サンプル)を復元できる。加算部155は、復元された残差信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成し得る。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0060】
一方、ピクチャエンコーディングおよび/または復元過程でLMCS(Luma Mapping With Chroma Scaling)が適用されることもできる。
【0061】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャを、メモリ270、具体的には、メモリ270のDPBに記憶することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピ符号化部240に伝達することができる。フィルタリングに関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0062】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置とにおける予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0063】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために記憶することができる。メモリ270は、現ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
【0064】
図3は、本文書の実施例が適用されることができるビデオ/映像デコード装置の構成を概略的に説明する図である。以下、デコード装置は、映像デコード装置および/またはビデオデコード装置を含むことができる。
【0065】
図3に示すように、デコード装置300は、エントロピ復号(エントロピーデコード、エントロピーデコーディング)部(entropy decoder)310、残差処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、およびメモリ(memory)360を備えて構成されることができる。予測部330は、イントラ予測部331およびインター予測部332を備えることができる。残差処理部320は、逆量子化部(dequantizer)321および逆変換部(inverse transformer)321を備えることができる。上述したエントロピ復号部310、残差処理部320、予測部330、加算部340、およびフィルタリング部350は、実施例によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(Decoded Picture Buffer)を備えることができ、デジタル記憶媒体により構成されることもできる。上記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
【0066】
ビデオ/映像情報を含むビットストリームが入力されると、デコード装置300は、図3のエンコード装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元できる。例えば、デコード装置300は、上記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから、四分木構造、二分木構造、および/または三分木ツリー構造に従って分割されることができる。コーディングユニットから1つまたは複数の変換ユニットが導出され得る。そして、デコード装置300を介してデコーディングおよび出力された復元映像信号は、再生装置を介して再生されることができる。
【0067】
デコード装置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に入力されることができる。残差処理部320は、残差信号(残差ブロック、残差サンプル、残差サンプルアレイ)を導出できる。また、エントロピ復号部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピ復号部310の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/映像/ピクチャデコード装置と呼ばれることができ、上記デコード装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)およびサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。上記情報デコーダは、上記エントロピ復号部310を備えることができ、上記サンプルデコーダは、上記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、およびイントラ予測部331のうちの少なくとも1つを備えることができる。
【0068】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、上記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0069】
逆変換部322では、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を取得する。
【0070】
予測部は、現ブロックに対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピ復号部310から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定できる。
【0071】
予測部330は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ映像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報が上記ビデオ/映像情報に含まれてシグナリングされることができる。
【0072】
イントラ予測部331は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
【0073】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、BI予測など)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が行われ得るし、上記予測に関する情報は、上記現ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0074】
加算部340は、取得された残差信号を予測部(インター予測部332および/またはイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0075】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または次のピクチャのインター予測のために使用されることもできる。
【0076】
一方、ピクチャデコーディング過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0077】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ360、具体的には、メモリ360のDPBに送信することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0078】
メモリ360のDPBに記憶された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶できる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現ピクチャ内の復元されたブロックの復元サンプルを記憶でき、イントラ予測部331に伝達することができる。
【0079】
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、およびイントラ予測部222で説明された実施例などは、各々、デコード装置300のフィルタリング部350、インター予測部332、およびイントラ予測部331にも同一または対応するように適用されることができる。
【0080】
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介して、コーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、上記予測されたブロックは、空間領域(ドメイン)(または、ピクセル領域)における予測サンプルを含む。上記予測されたブロックは、エンコード装置とデコード装置とで同じく導出され、上記エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でなく、上記オリジナルブロックと上記予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることで映像コーディング効率を上げることができる。デコード装置は、上記残差情報に基づいて残差サンプルを含む残差ブロックを導出し、上記残差ブロックと上記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0081】
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、上記オリジナルブロックと上記予測されたブロックとの間の残差ブロックを導出し、上記残差ブロックに含まれている残差サンプル(残差サンプルアレイ)に変換手順を実行して変換係数を導出し、上記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングできる。ここで、上記残差情報は、上記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、上記残差情報に基づいて逆量子化/逆変換の手順を実行して残差サンプル(または、残差ブロック)を導出することができる。デコード装置は、予測されたブロックと上記残差ブロックとに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後のピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0082】
本文書において、量子化/逆量子化および/または変換/逆変換のうちの少なくとも1つは、省略されることができる。上記量子化/逆量子化が省略される場合、上記量子化された変換係数は、変換係数と呼ばれることができる。上記変換/逆変換が省略される場合、上記変換係数は、係数もしくは残差係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
【0083】
本文書において、量子化された変換係数および変換係数は、各々、変換係数およびスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、残差情報は、変換係数(1つまたは複数)に関する情報を含むことができ、上記変換係数(1つまたは複数)に関する情報は、残差コーディングシンタックスを介してシグナリングされることができる。上記残差情報(または、上記変換係数(1つまたは複数)に関する情報)に基づいて変換係数が導出されることができ、上記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。上記スケーリングされた変換係数に対する逆変換(変換)に基づいて残差サンプルが導出されることができる。これは、本文書の他の部分でも同様に適用/表現されることができる。
【0084】
イントラ予測は、現ブロックが属するピクチャ(以下、現ピクチャという)内の参照サンプルに基づいて現ブロックに対する予測サンプルを生成する予測を示すことができる。現ブロックにイントラ予測が適用される場合、現ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。上記現ブロックの隣接参照サンプルは、大きさnW×nHの現ブロックの左側(left)境界に隣接するサンプルおよび左下側(bottom-left)に隣接する合計2×nH個のサンプル、現ブロックの上側(top)境界に隣接するサンプルおよび右上側(top-right)に隣接する合計2×nW個のサンプルならびに現ブロックの左上側(top-left)に隣接する1個のサンプルを含むことができる。あるいは、上記現ブロックの隣接参照サンプルは、複数列の上側隣接サンプルおよび複数行の左側隣接サンプルを含むこともできる。また、上記現ブロックの隣接参照サンプルは、大きさnW×nHの現ブロックの右側(right)境界に隣接する合計nH個のサンプル、現ブロックの下側(bottom)境界に隣接する合計nW個のサンプルおよび現ブロックの右下側(bottom-right)に隣接する1個のサンプルを含むこともできる。
【0085】
ただし、現ブロックの隣接参照サンプルのうちの一部は、まだデコードされない、または利用可能でない場合がある。この場合、デコーダは、利用可能なサンプルで利用可能でないサンプルを代替(substitution)して予測に使用する隣接参照サンプルを構成することができる。あるいは、利用可能なサンプルの補間(interpolation)を介して予測に使用する隣接参照サンプルを構成することができる。
【0086】
隣接参照サンプルが導出された場合、(i)現ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを導出することができ、(ii)現ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて上記予測サンプルを導出することもできる。(i)の場合は、非方向性(non-directional)モードまたは非角度(non-angular)モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれることができる。
【0087】
また、上記隣接参照サンプルのうちの上記現ブロックの予測サンプルを基準にして、上記現ブロックのイントラ予測モードの予測方向に位置する第1の隣接サンプルと上記予測方向の反対方向に位置する第2の隣接サンプルとの補間を介して上記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(Linear Interpolation Intra Prediction、LIP)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。
【0088】
また、フィルタリングされた隣接参照サンプルに基づいて上記現ブロックの一時(臨時)予測サンプルを導出し、上記既存の隣接参照サンプル、すなわち、フィルタリングされない隣接参照サンプルのうち、上記イントラ予測モードによって導出された少なくとも1つの参照サンプルと上記一時予測サンプルとの加重和(weighted sum)を算出して上記現ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position Dependent Intra Prediction)と呼ばれることができる。
【0089】
また、現ブロックの隣接多重参照(multi-reference)サンプルラインの中から最も予測確度(正確度、精度)が高い参照サンプルラインを選択して該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、このときに使われた参照サンプルラインをデコード装置に指示(シグナリング)する方法でイントラ予測符号化を実行することができる。前述した場合は、多重参照ライン(multi-reference line)イントラ予測またはMRLベースのイントラ予測と呼ばれることができる。
【0090】
また、現ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、上記サブパーティション単位で隣接参照サンプルを導出して利用できる。すなわち、この場合、現ブロックに対するイントラ予測モードが上記サブパーティションに同じく適用され、上記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、ISP(Intra Sub-Partitions)ベースのイントラ予測と呼ばれることができる。
【0091】
前述したイントラ予測方法は、イントラ予測モードと区分(区別)してイントラ予測タイプと呼ばれることができる。上記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、多様な用語で呼ばれることができる。例えば、上記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、ISPのうちの少なくとも1つを含むことができる。上記LIP、PDPC、MRL、ISPなどの特定のイントラ予測タイプを除外した一般的なイントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、上記のような特定のイントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
【0092】
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
【0093】
イントラ予測が適用される場合、隣接ブロックのイントラ予測モードを利用して現ブロックに適用されるイントラ予測モードが決定されることができる。例えば、デコード装置は、現ブロックの隣接ブロック(例えば、左側および/または上側隣接ブロック)のイントラ予測モードおよび追加的な候補モードに基づいて導出されたMPM(Most Probable Mode)リスト内のMPM候補のうちの1つを、受信したMPMインデックスに基づいて選択でき、または、上記MPM候補(および平面モード)に含まれない残りのイントラ予測モードのうちの1つを、残りの(リメイニング(remaining))イントラ予測モード情報に基づいて選択できる。上記MPMリストは、平面モードを候補として含む場合または含まない場合で構成されることができる。例えば、上記MPMリストが平面モードを候補として含む場合、上記MPMリストは、6個の候補を有することができ、上記MPMリストが平面モードを候補として含まない場合、上記MPMリストは、5個の候補を有することができる。上記MPMリストが平面モードを候補として含まない場合、現ブロックのイントラ予測モードが平面モードでないことを示すnot平面フラグ(例えば、intra_luma_not_planar_flag)がシグナリングされることができる。例えば、MPMフラグが先にシグナリングされ、MPMインデックスおよびnot平面フラグは、MPMフラグの値が1である場合にシグナリングされることができる。また、上記MPMインデックスは、上記not平面フラグの値が1である場合にシグナリングされることができる。ここで、上記MPMリストが平面モードを候補として含まないように構成されるのは、上記平面モードがMPMでないことを意味するというより、MPMとして常に平面モードが考慮されるため、先にフラグ(not planar flag)をシグナリングして平面モードであるかどうかを先に確認するためである。
【0094】
例えば、現ブロックに適用されるイントラ予測モードがMPM候補(および平面モード)内にあるか、または、残りのモード内にあるかは、MPMフラグ(例えば、intra_luma_mpm_flag)に基づいて指示されることができる。MPMフラグの値1は、上記現ブロックに対するイントラ予測モードがMPM候補(および平面モード)内にあることを示すことができ、MPM flagの値0は、上記現ブロックに対するイントラ予測モードがMPM候補(および平面モード)内に無いことを示すことができる。上記not平面フラグ(例えば、intra_luma_not_planar_flag)の値0は、上記現ブロックに対するイントラ予測モードが平面モードであることを示すことができ、上記not平面フラグの値1は、上記現ブロックに対するイントラ予測モードが平面モードでないことを示すことができる。上記MPMインデックスは、mpm_idxまたはintra_luma_mpm_idxシンタックス要素の形態でシグナリングされることができ、上記残りのイントラ予測モード情報は、rem_intra_luma_pred_modeまたはintra_luma_mpm_remainderシンタックス要素の形態でシグナリングされることができる。例えば、上記残りのイントラ予測モード情報は、全体のイントラ予測モードのうち、上記MPM候補(および平面モード)に含まれない残りのイントラ予測モードを予測モード番号順にインデキシングしてそのうちの1つを指すことができる。上記イントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モードである。以下、イントラ予測モード情報は、上記MPM flag(例えば、intra_luma_mpm_flag)、上記not planar flag(例えば、intra_luma_not_planar_flag)、上記MPMインデックス(例えば、mpm_idxまたはintra_luma_mpm_idx)、上記残りのイントラ予測モード情報(rem_intra_luma_pred_modeまたはintra_luma_mpm_remainder)のうちの少なくとも1つを含むことができる。本文書において、MPMリストは、MPM候補リスト、candModeListなど、多様な用語で呼ばれることができる。MIPが現ブロックに適用される場合、MIPのための別途のmpm flag(例えば、intra_mip_mpm_flag)、mpmインデックス(例えば、intra_mip_mpm_idx)、残りのイントラ予測モード情報(例えば、intra_mip_mpm_remainder)がシグナリングされることができ、上記not planar flagはシグナリングされない。
【0095】
すなわち、一般的に映像に対するブロック分割の場合、コーディングしようとする現ブロックと隣接(neighboring)ブロックとは、類似する映像特性を有するようになる。したがって、現ブロックと隣接ブロックとは、互いに同じまたは類似するイントラ予測モードを有する確率が高い。したがって、エンコーダは、現ブロックのイントラ予測モードをエンコードするために、隣接ブロックのイントラ予測モードを利用することができる。
【0096】
例えば、エンコーダ/デコーダは、現ブロックに対するMPM(Most Probable Modes)リストを構成することができる。上記MPMリストは、MPM候補リストと示すこともできる。ここで、MPMとは、イントラ予測モードコーディング時、現ブロックと隣接ブロックとの類似性を考慮してコーディング効率を向上させるために利用されるモードを意味することができる。前述したように、MPMリストは、平面モードを含んで構成されることもでき、または、平面モードを除外して構成されることもできる。例えば、MPMリストが平面モードを含む場合、MPMリストの候補の個数は6個である。そして、MPMリストが平面モードを含まない場合、MPMリストの候補の個数は5個である。
【0097】
エンコーダ/デコーダは、5個または6個のMPMを含むMPMリストを構成することができる。
【0098】
MPMリストを構成するために、デフォルトイントラモード(Default intra modes)、隣接イントラモード(Neighbour intra modes)、および導出されたイントラモード(Derived intra modes)の3つの種類のモードが考慮されることができる。
【0099】
上記隣接イントラモードのために、2つの隣接ブロック、すなわち、左側隣接ブロックおよび上側隣接ブロックが考慮されることができる。
【0100】
前述したように、MPMリストが平面モードを含まないように構成される場合、上記リストから平面(planar)モードが除外され、上記MPMリスト候補の個数は、5個に設定されることができる。
【0101】
また、イントラ予測モードのうち、非方向性モード(または、非角度モード)は、現ブロックの隣接(neighboring)参照サンプルの平均(average)ベースのDCモードまたは補間(interpolation)ベースの平面(planar)モードを含むことができる。
【0102】
インター予測が適用される場合、エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、または動き情報)に依存する方法で導出される予測を示すことができる。現ブロックにインター予測が適用される場合、参照ピクチャのインデックスの指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報を、ブロック、サブブロックまたはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャのインデックスを含むことができる。上記動き情報は、インター予測タイプ(L0予測、L1予測、BI予測など)の情報をさらに含むことができる。インター予測が適用される場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは、同一であってもよく、異なってもよい。上記時間隣接ブロックは、コロケート(同じ位置)参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれ得、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated Picture、colPic)と呼ばれることもある。例えば、現ブロックの隣接ブロックに基づいて動き情報の候補リストが構成されることができ、上記現ブロックの動きベクトルおよび/または参照ピクチャのインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が行われ、例えば、スキップモードおよびマージモードの場合、現ブロックの動き情報は、選択された隣接ブロックの動き情報と同一であり得る。スキップモードの場合、マージモードと異なり、残差信号が送信されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)は、シグナリングされることができる。この場合、上記動きベクトル予測子および動きベクトル差分の和を用いて、上記現ブロックの動きベクトルを導出することができる。
【0103】
上記動き情報は、インター予測タイプ(L0予測、L1予測、BI予測など)に応じて、L0動き情報および/またはL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれ得、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれ得る。L0動きベクトルに基づいた予測は、L0予測と呼ばれ得、L1動きベクトルに基づいた予測は、L1予測と呼ばれ得、上記L0動きベクトルおよび上記L1動きベクトルの両方に基づいた予測を双(Bi)予測と呼ばれ得る。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連する動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連する動きベクトルを示すことができる。参照ピクチャリストL0は、上記現ピクチャよりも、出力順序上の以前のピクチャを参照ピクチャに含むことができ、参照ピクチャリストL1は、上記現ピクチャよりも、出力順序上の以後のピクチャを含むことができる。上記以前のピクチャは、順方向(参照)ピクチャと呼ばれ得、上記以後のピクチャは、逆方向(参照)ピクチャと呼ばれ得る。上記参照ピクチャリストL0は、上記現ピクチャよりも、出力順序上の以後のピクチャを参照ピクチャにさらに含むことができる。この場合、上記参照ピクチャリストL0内で上記以前のピクチャが先にインデキシングされ、上記以後のピクチャは、その後にインデキシングされ得る。上記参照ピクチャリストL1は、上記現ピクチャよりも、出力順序上の以前のピクチャを参照ピクチャにさらに含むことができる。この場合、上記参照ピクチャリスト1内で上記以後のピクチャが先にインデキシングされ、上記以前のピクチャは、その後にインデキシングされ得る。ここで、出力順序は、POC(Picture Order Count)順序(order)に対応し得る。
【0104】
インター予測に基づくビデオ/映像エンコーディング手順は、概略的に、例えば以下を含む。
【0105】
図4は、インター予測ベースのビデオ/映像エンコード方法の例を示す。
【0106】
エンコード装置は、現ブロックに対するインター予測を行う(S400)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、上記ブロックの予測サンプルを生成する。ここで、インター予測モード決定、動き情報導出および予測サンプル生成の手順は、同時に行われてもよく、ある1つの手順が他の手順より先に行われてもよい。例えば、エンコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部において上記現ブロックに対する予測モードを決定し、動き情報導出部において上記現ブロックの動き情報を導出し、予測サンプル導出部において上記現ブロックの予測サンプルを導出する。例えば、エンコード装置のインター予測部は、動き推定(motion estimation)により参照ピクチャの一定領域(サーチ領域)内において上記現ブロックと類似したブロックをサーチし、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出する。これに基づいて上記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、上記参照ブロックと上記現ブロックとの位置差に基づいて動きベクトルを導出することができる。エンコード装置は、様々な予測モードのうち、上記現ブロックに対して適用されるモードを決定する。エンコード装置は、上記様々な予測モードに対するRD costを比較し、上記現ブロックに対する最適な予測モードを決定することができる。
【0107】
例えば、エンコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補が指す参照ブロックのうち、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。この場合、上記導出された参照ブロックに関連するマージ候補が選択され、上記選択されたマージ候補を指すマージインデックス情報が生成されてデコード装置にシグナリングされる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報が導出されることができる。
【0108】
他の例として、エンコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうちの選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。この場合、例えば、前述の動き推定により導出された参照ブロックを指す動きベクトルが上記現ブロックの動きベクトルとして利用されることができ、上記mvp候補のうち、上記現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が上記選択されたmvp候補となり得る。上記現ブロックの動きベクトルから上記mvpを引いた差分であるMVD(Motion Vector Difference)が導出されることができる。その場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、上記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成され、別途に上記デコード装置にシグナリングされる。
【0109】
エンコード装置は、上記予測サンプルに基づいて残差(レジデュアル)サンプルを導出する(S410)。エンコード装置は、上記現ブロックのオリジナルサンプルと上記予測サンプルとを比較することにより、上記残差サンプルを導出することができる。
【0110】
エンコード装置は、予測情報や残差情報を含む映像情報をエンコードする(S420)。エンコード装置は、エンコードされた映像情報をビットストリーム形態で出力する。上記予測情報は、上記予測手順に関連する情報であり、予測モード情報(例えは、skip flag、merge flagまたはmode indexなど)および動き情報に関する情報を含む。上記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flagまたはmvp index)を含む。また、上記動き情報に関する情報は、前述のMVDに関する情報および/または参照ピクチャインデックス情報を含む。また、上記動き情報に関する情報は、L0予測、L1予測、または双(bi)予測が適用されるか否かを示す情報を含む。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含む。
【0111】
出力されたビットストリームは、(デジタル)記憶媒体に記憶されてデコード装置に伝達されてもよく、また、ネットワークを介してデコード装置に伝達されてもよい。
【0112】
一方、前述のように、エンコード装置は、上記参照サンプルおよび上記残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成する。これは、デコード装置で行われるのと同一の予測結果をエンコード装置から導出するためであり、これにより、コーディング効率を高めることができるからである。したがって、エンコード装置は、復元ピクチャ(または、復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用することができる。上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0113】
インター予測に基づくビデオ/映像デコーディング手順は、概略的に、例えば以下を含む。
【0114】
図5は、インター予測ベースのビデオ/映像デコード方法の例を示す。
【0115】
図5に示すように、デコード装置は、上記エンコード装置で行われた動作と対応する動作を行う。デコード装置は、受信した予測情報に基づいて現ブロックで予測を行い、予測サンプルを導出することができる。
【0116】
具体的には、デコード装置は、受信した予測情報に基づいて上記現ブロックに対する予測モードを決定する(S500)。デコード装置は、上記予測情報内の予測モード情報に基づいて上記現ブロックにどのインター予測モードが適用されるかを決定することができる。
【0117】
例えば、上記merge flagに基づいて上記現ブロックに上記マージモードが適用されるか、または、(A)MVPモードが決定されるか否かを決定することができる。あるいは、上記mode indexに基づいて様々なインター予測モード候補のいずれか1つを選択することができる。上記インター予測モード候補は、スキップモード、マージモードおよび/もしくは(A)MVPモードを含み、または、後述する様々なインター予測モードを含む。
【0118】
デコード装置は、上記決定されたインター予測モードに基づいて上記現ブロックの動き情報を導出する(S510)。例えば、デコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補のいずれか1つのマージ候補を選択する。上記選択は、前述の選択情報(merge index)に基づいて行われる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報を導出することができる。上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として利用されることができる。
【0119】
他の例として、デコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述の(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうちの選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。上記選択は、前述の選択情報(mvp flagまたはmvp index)に基づいて行われる。この場合、上記MVDに関する情報に基づいて上記現ブロックのMVDを導出することができ、上記現ブロックのmvpおよび上記MVDに基づいて上記現ブロックの動きベクトルを導出することができる。また、上記参照ピクチャインデックス情報に基づいて上記現ブロックの参照ピクチャインデックスを導出することができる。上記現ブロックに関する参照ピクチャリスト内において上記参照ピクチャインデックスが指すピクチャが上記現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0120】
一方、後述のように候補リストの構成なしで上記現ブロックの動き情報が導出されることができ、この場合、後述の予測モードにおいて開示された手順に従って上記現ブロックの動き情報が導出されることができる。この場合、前述のような候補リスト構成は省略されてもよい。
【0121】
デコード装置は、上記現ブロックの動き情報に基づいて上記現ブロックに対する予測サンプルを生成する(S520)。この場合、上記現ブロックの参照ピクチャインデックスに基づいて上記参照ピクチャを導出し、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルを利用して上記現ブロックの予測サンプルを導出することができる。この場合、後述のように、場合によって、上記現ブロックの予測サンプルのうちの全部または一部に対する予測サンプルフィルタリングの手順がさらに行われることがある。
【0122】
例えば、デコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部で受信した予測モード情報に基づいて上記現ブロックに対する予測モードを決定し、動き情報導出部で受信した動き情報に関する情報に基づいて上記現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部から上記現ブロックの予測サンプルを導出することができる。
【0123】
デコード装置は、受信した残差(レジデュアル)情報に基づいて上記現ブロックに対する残差サンプルを生成する(S530)。デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて上記現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成する(S540)。以後、上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0124】
図6は、インター予測手順を例示的に示す。
【0125】
図6を参照すると、前述のように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードに応じる動き情報の導出ステップ、導出された動き情報に基づく予測実行(予測サンプル生成)ステップを含む。上記インター予測手順は、前述のように、エンコード装置およびデコード装置において行われる。本文書において、コーディング装置とは、エンコード装置および/またはデコード装置を含む。
【0126】
図6に示すように、コーディング装置は、現ブロックに対するインター予測モードを決定する(S600)。ピクチャ内の現ブロックの予測のために様々なインター予測モードが使用されることができる。例えば、マージモード、スキップモード、MVP(Motion Vector Prediction)モード、アフィン(Affine)モード、サブブロックマージモード、MMVD(merge with MVD)モードなどの様々なモードが使用されることができる。DMVR(Decoder Side Motion Vector Refinement)モード、AMVR(Adaptive Motion Vector Resolution)モード、Bi-prediction with CU-level Weight(BCW)、Bi-Directional Optical Flow(BDOF)などが付随的なモードとしてさらにまたは代わりに使用されることができる。アフィンモードは、アフィン動き予測(affine motion prediction)モードと呼ばれてもよい。MVPモードは、「AMVP(Advanced Motion Vector Prediction)モードと呼ばれてもよい。本文書において、一部のモードおよび/または一部のモードにより導出された動き情報候補は、他のモードの動き情報関連候補の1つとして含まれることもある。例えば、HMVP候補は、上記マージ/スキップモードのマージ候補として追加されてもよく、または上記MVPモードのmvp候補として追加されてもよい。上記HMVP候補が上記マージモードまたはスキップモードの動き情報候補として使用される場合、上記HMVP候補は、HMVPマージ候補と呼ばれてもよい。
【0127】
現ブロックのインター予測モードを指す予測モード情報が、エンコード装置からデコード装置にシグナリングされることができる。上記予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。上記予測モード情報は、多数の候補モードのうちの1つを指示するインデックス情報を含む。あるいは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、上記予測モード情報は、1つまたは複数のフラグを含む。例えば、スキップフラグをシグナリングしてスキップモードが適用されるか否かを指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモードが適用されるか否かを指示し、マージモードが適用されない場合に、MVPモードが適用されると指示するか、または追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされてもよく、またはマージモードもしくはMVPモードなどに従属的なモードでシグナリングされてもよい。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含む。
【0128】
一方、現ブロックに前述の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シンタックス要素の値によって以下のような予測タイプを示すことができる。
【0129】
<表1>
【表1】
【0130】
前述のように、1つのピクチャは、1つまたは複数のスライスを含む。スライスは、I(Intra)スライス、P(Predictive)スライスおよびB(Bi-Predictive)スライスを含むスライスタイプのうちの1つのタイプを有することができる。上記スライスタイプは、スライスタイプの情報に基づいて指示される。Iスライス内のブロックに対しては、予測のためにインター予測は使われずにイントラ予測のみが使用される。もちろん、この場合にも予測なしでオリジナルサンプル値をコーディングしてシグナリングすることもできる。Pスライス内のブロックに対してはイントラ予測またはインター予測が使用され、インター予測が使用される場合は、単(uni)予測のみが使用されることができる。一方、Bスライス内のブロックに対してはイントラ予測またはインター予測が使用され、インター予測が使用される場合は、最大双(bi)予測まで使用されることができる。
【0131】
L0およびL1は、現ピクチャより以前にエンコード/デコードされた参照ピクチャを含む。例えば、L0は、POC順序上、現ピクチャより以前および/または以後の参照ピクチャを含み、L1は、POC順序上、現ピクチャより以後および/または以前の参照ピクチャを含む。この場合、L0には、POC順序上、現ピクチャより以前の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられ、L1には、POC順序上、現ピクチャより以後の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられる。Bスライスの場合、双予測が適用され、この場合にも単方向双予測が適用されてもよく、または双方向双予測が適用されてもよい。双方向双予測は、真(true)双予測とも呼ばれる。
【0132】
次の表は、本文書の一実施例によるコーディングユニットに関するシンタックスを示す。
【0133】
<表2>
【表2-1】
【表2-2】
【表2-3】
【表2-4】
【表2-5】
【0134】
上記表2を参照すると、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がエンコードされたビデオ/イメージ情報(または、ビットストリーム)からパージングされることができ、merge data syntaxは、次の表のような情報を含むように構成/コーディングされる。
【0135】
<表3>
【表3】
【0136】
コーディング装置は、上記現ブロックに対する動き情報を導出する(S610)。上記動き情報の導出を上記インター予測モードに基づいて導出することができる。
【0137】
コーディング装置は、現ブロックの動き情報を利用してインター予測を行うことができる。エンコード装置は、動き推定(motion estimation)手順を介して現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを利用して相関性の高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内において端数(分数、fractional)ピクセル単位で探索し、これにより動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または、現ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSAD(Sum Of Absolute Differences)に基づいて計算されることができる。この場合、サーチスペース(探索領域)内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて様々な方法によってデコード装置にシグナリングされる。
【0138】
コーディング装置は、上記現ブロックに対する動き情報に基づいてインター予測を行う(S620)。コーディング装置は、上記動き情報に基づいて上記現ブロックに対する予測サンプル(1つまたは複数)を導出することができる。上記予測サンプルを含む現ブロックは、予測されたブロックと呼ばれてもよい。
【0139】
マージモード(merge mode)が適用される場合、現予測ブロックの動き情報が直接送信されることなく、周辺予測ブロックの動き情報を利用して上記現予測ブロックの動き情報を導出する。したがって、マージモードを利用したことを示すフラグ情報および周辺のどの予測ブロックを利用したかを示すマージインデックスを送信することにより、現予測ブロックの動き情報を指示することができる。上記マージモードは、regular merge modeと呼ばれてもよい。
【0140】
エンコーダは、マージモードを行うために、現予測ブロックの動き情報を導出するために用いられるマージ候補ブロック(merge candidate block)をサーチしなければならない。例えば、上記マージ候補ブロックは最大5個まで利用できるが、本文書の実施例はこれに限定されない。そして、上記マージ候補ブロックの最大個数は、スライスヘッダまたはタイルグループヘッダにおいて送信される。上記マージ候補ブロックを見つけた後、エンコーダは、マージ候補リストを生成し、これらのうちの最小コストを有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
【0141】
上記マージ候補リストは、例えば、5つのマージ候補ブロックを利用することができる。例えば、4つの空間マージ候補(spatial merge candidate)と1つの時間マージ候補(temporal merge candidate)とを利用することができる。以下、上記空間マージ候補または後述する空間MVP候補は、SMVPと呼ばれてもよく、上記時間マージ候補または後述する時間MVP候補は、TMVPと呼ばれてもよい。
【0142】
以下、本文書によるマージ候補リストを構成する方法を説明する。
【0143】
コーディング装置(エンコーダ/デコーダ)は、現ブロックの空間周辺ブロックを探索して導出された空間マージ候補をマージ候補リストに挿入する。例えば、上記空間周辺ブロックは、上記現ブロックの左下側コーナ周辺ブロック、左側周辺ブロック、右上側コーナ周辺ブロック、上側周辺ブロック、左上側コーナ周辺ブロックを含む。ただし、これは例示であり、前述の空間周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側周辺ブロックなどの追加的な周辺ブロックが、さらに上記空間周辺ブロックとして使用されることができる。コーディング装置は、上記空間周辺ブロックを優先順位に基づいて探索して使用可能なブロックを検出し、検出されたブロックの動き情報を上記空間マージ候補として導出することができる。
【0144】
コーディング装置は、上記現ブロックの時間周辺ブロックを探索して導出された時間マージ候補を上記マージ候補リストに挿入する。上記時間周辺ブロックは、上記現ブロックが位置する現ピクチャとは異なるピクチャである参照ピクチャ上に位置し得る。上記時間周辺ブロックが位置する参照ピクチャは、コロケーテッド(コロケート)(collocated)ピクチャまたはcolピクチャと呼ばれてもよい。上記時間周辺ブロックは、上記colピクチャ上における上記現ブロックに対するコロケートブロック(co-located block)の右下側コーナ周辺ブロックおよび右下側センタブロックの順で探索されることができる。一方、モーション(動き)データの圧縮(motion data compression)が適用される場合、上記colピクチャに一定記憶単位ごとに特定の動き情報を代表動き情報として記憶する。この場合、上記一定記憶単位内の全てのブロックに対する動き情報を記憶する必要がなく、これによりモーションデータの圧縮効果が得られる。この場合、一定記憶単位は、例えば、16×16サンプル単位もしくは8×8サンプル単位などに予め定められてもよく、または、エンコーダからデコーダに上記一定記憶単位に関するサイズ情報がシグナリングされてもよい。上記モーションデータの圧縮が適用される場合、上記時間周辺ブロックの動き情報は、上記時間周辺ブロックが位置する上記一定記憶単位の代表動き情報に置き換えられることができる。すなわち、この場合、実現の側面から見ると、上記時間周辺ブロックの座標に位置する予測ブロックではなく、上記時間周辺ブロックの座標(左上端サンプル位置(ポジション))に基づいて一定値の分だけ算術的右シフトした後、算術的左シフトした位置をカバーする予測ブロックの動き情報に基づいて上記時間マージ候補が導出される。例えば、上記一定記憶単位が2n×2nサンプル単位である場合、上記時間周辺ブロックの座標が(xTnb,yTnb)であれば、修正された位置である((xTnb>n)<<n),(yTnb>n)<<n))に位置する予測ブロックの動き情報が上記時間マージ候補のために使用される。具体的には、例えば、上記一定記憶単位が16×16サンプル単位である場合、上記時間周辺ブロックの座標が(xTnb,yTnb)であれば、修正された位置である((xTnb>4)<<4),(yTnb>4)<<4))に位置する予測ブロックの動き情報が上記時間マージ候補のために使用される。あるいは、例えば、上記一定記憶単位が8×8サンプル単位である場合、上記時間周辺ブロックの座標が(xTnb,yTnb)であれば、修正された位置である((xTnb>3)<<3),(yTnb>3)<<3))に位置する予測ブロックの動き情報が上記時間マージ候補のために使用される。
【0145】
コーディング装置は、現在のマージ候補の個数が最大マージ候補の個数より小さいか否かを確認できる。上記最大マージ候補の個数は、予め定義されるか、エンコーダからデコーダにシグナリングされることができる。例えば、エンコーダは、上記最大マージ候補の個数に関する情報を生成し、エンコードしてビットストリーム形態で上記デコーダに伝達する。上記最大マージ候補の個数が満たされると、以後の候補追加過程は行われなくてもよい。
【0146】
上記確認の結果、上記現在のマージ候補の個数が上記最大マージ候補の個数より小さい場合、コーディング装置は、追加マージ候補を上記マージ候補リストに挿入する。
【0147】
上記確認の結果、上記現在のマージ候補の個数が上記最大マージ候補の個数より小さくない場合、コーディング装置は、上記マージ候補リストの構成を終了する。この場合、エンコーダは、RD(Rate-Distortion)コストに基づいて上記マージ候補リストを構成するマージ候補のうちの最適なマージ候補を選択することができ、上記選択されたマージ候補を指す選択情報(例えば、merge index)をデコーダにシグナリングすることができる。デコーダは、上記マージ候補リストおよび上記選択情報に基づいて上記最適マージ候補を選択する。
【0148】
上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として使用されることができ、上記現ブロックの動き情報に基づいて上記現ブロックの予測サンプルを導出できることは前述の通りである。エンコーダは、上記予測サンプルに基づいて上記現ブロックの残差サンプルを導出し、上記残差サンプルに関する残差情報をデコーダにシグナリングすることができる。デコーダは、上記残差情報に基づいて導出された残差サンプルと上記予測サンプルとに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成できることは前述の通りである。
【0149】
スキップモード(skip mode)が適用される場合、前述のマージモードが適用される場合と同一の方法で上記現ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、該当ブロックに対する残差信号が省略され、したがって、予測サンプルが直ちに復元サンプルとして利用されることができる。
【0150】
MVPモードが適用される場合、復元された空間周辺ブロックの動きベクトルおよび/または時間周辺ブロック(または、Colブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector predictor、mvp)候補リストが生成される。すなわち、復元された空間周辺ブロックの動きベクトルおよび/または時間周辺ブロックに対応する動きベクトルは、動きベクトル予測子候補として使用されることができる。双予測が適用される場合、L0動き情報導出のためのmvp候補リストとL1動き情報導出のためのmvp候補リストとが個別に生成されて利用されることができる。前述の予測情報(または、予測に関する情報)は、上記リストに含まれる動きベクトル予測子候補のうちの選択された最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラグまたはMVPインデックス)を含む。ここで、予測部は、上記選択情報を利用して、動きベクトル候補リストに含まれる動きベクトル予測子候補のうち、現ブロックの動きベクトル予測子を選択することができる。エンコード装置の予測部は、現ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求めることができ、これをエンコードしてビットストリーム形態で出力する。すなわち、MVDは、現ブロックの動きベクトルから上記動きベクトル予測子を引いた値として求められる。ここで、デコード装置の予測部は、上記予測に関する情報に含まれる動きベクトル差分を取得し、上記動きベクトル差分と上記動きベクトル予測子との加算により、現ブロックの上記動きベクトルを導出することができる。デコード装置の予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを上記予測に関する情報から取得または導出することができる。
【0151】
以下、本文書による動きベクトル予測子候補リストを構成する方法を説明する。
【0152】
一実施例は、まず、動きベクトル予測のための空間候補ブロックを探索して予測候補リストに挿入する。以降、一実施例では、空間候補ブロックの個数が2より小さいか否かを判断する。例えば、一実施例において、空間候補ブロックの個数が2より小さい場合、時間候補ブロックを探索して予測候補リストに追加挿入し、時間候補ブロックが使用不可である場合は、ゼロ動きベクトルを使用する。すなわち、ゼロ動きベクトルを予測候補リストに追加挿入することができる。以降、一実施例において、予備候補リストの構成を終了する。あるいは、一実施例において、空間候補ブロックの個数が2より小さくない場合、予備候補リストの構成を終了する。ここで、予備候補リストは、MVP候補リストを示す。
【0153】
一方、MVPモードが適用される場合、参照ピクチャインデックスが明示的にシグナリングされる。この場合、L0予測のための参照ピクチャインデックス(refidxL0)とL1予測のための参照ピクチャインデックス(refidxL1)とに区分されてシグナリングされることができる。例えば、MVPモードが適用され、双予測(BI prediction)が適用される場合、上記refidxL0に関する情報、およびrefidxL1に関する情報が両方ともシグナリングされることができる。
【0154】
MVPモードが適用される場合、前述のように、エンコード装置から導出されたMVDに関する情報がデコード装置にシグナリングされる。MVDに関する情報は、例えば、MVD絶対値および符号に対するx、y成分を示す情報を含むことができる。この場合、MVD絶対値が0より大きいか否か、および1より大きいか否か、MVDの残りを示す情報が段階的にシグナリングされることができる。例えば、MVD絶対値が1より大きいか否かを示す情報は、MVD絶対値が0より大きいか否かを示すflag情報の値が1である場合に限りシグナリングされることができる。
【0155】
例えば、MVDに関する情報は、以下の表のようなシンタックスで構成されてエンコード装置においてエンコードされてデコード装置にシグナリングされる。
【0156】
<表4>
【表4】
【0157】
例えば、表4においてabs_mvd_greater0_flagシンタックス要素は、差分(MVD)が0より大きいか否かに関する情報を示し、abs_mvd_greater1_flagシンタックス要素は、差分(MVD)が1より大きいか否かに関する情報を示す。また、abs_mvd_minus2シンタックス要素は、差分(MVD)に-2を行った値に関する情報を示し、mvd_sign_flagシンタックス要素は差分(MVD)の符号に関する情報を示す。また、表4において各シンタックス要素の[0]は、L0に関する情報であることを示し、[1]は、L1に関する情報であることを示す。
【0158】
例えば、MVD[compIdx]は、abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx])に基づいて導出される。ここで、compIdx(または、cpIdx)は、各成分のインデックスを示し、0または1の値を有することができる。compIdx 0はx成分を示し、compIdx 1はy成分を示す。ただし、これは例示であり、x、y座標系ではなく、他の座標系を使って各成分別に値を表すこともできる。
【0159】
一方、L0予測のためのMVD(MVD L0)とL1予測のためのMVD(MVD L1)とは、区分されてシグナリングされてもよく、上記MVDに関する情報は、MVD L0に関する情報および/またはMVD L1に関する情報を含んでもよい。例えば、現ブロックにMVPモードが適用され、BI予測が適用される場合、上記MVD L0に関する情報およびMVD L1に関する情報が両方ともシグナリングされる。
【0160】
図7は、SMVD(Symmetric Motion Vector Differences)を説明する図である。
【0161】
BI予測が適用される場合、コーディング効率を考慮してSMVD(Symmetric MVD)が使用されてもよい。この場合は、動き情報のうちの一部のシグナリングが省略されてもよい。例えば、SMVDが現ブロックに適用される場合、refidxL0に関する情報、refidxL1に関する情報、MVD L1に関する情報が、エンコード装置からデコード装置にシグナリングされることなく、内部的に導出されることができる。例えば、現ブロックにMVPモードおよびBI予測が適用される場合、SMVDの適用が可能か否かを指示するフラグ情報(例えば、SMVDフラグ情報またはsym_mvd_flagシンタックス要素)がシグナリングされ、上記フラグ情報の値が1である場合、デコード装置は、上記現ブロックにSMVDが適用されると判断する。
【0162】
SMVDモードが適用される場合(すなわち、SMVDフラグ情報の値が1である場合)、mvp_l0_flag、mvp_l1_flag、およびMVD L0(動きベクトル差分L0)に関する情報が明示的に(explicitly)シグナリングされ、前述のようにrefidxL0に関する情報、refidx1に関する情報、およびMVD L1(動きベクトル差分L1)に関する情報のシグナリングが省略され、内部的に導出されることができる。例えば、refidxL0は、参照ピクチャリスト(reference picture list)0(list0またはL0と呼ばれてもよい)内において、POC手順上、現ピクチャに最も近い以前の参照ピクチャを指すインデックスとして導出されることができる。refidxL1は、参照ピクチャリスト(reference picture list)1(list1またはL1と呼ばれてもよい)内において、POC手順上、現ピクチャに最も近い以後の参照ピクチャを指すインデックスとして導出されることができる。あるいは、例えば、refidxL0およびrefidxL1は、両方ともそれぞれ0として導出されることができる。あるいは、例えば、上記refidxL0およびrefidxL1は、現ピクチャとの関係において同一のPOC差を有する最小インデックスとしてそれぞれ導出されることができる。具体的には、例えば、“[現ピクチャのPOC]-[refidxL0が指示する第1参照ピクチャのPOC]”を第1POC差分といい、“[現ピクチャのPOC]-[refidxL1が指示する第2参照ピクチャのPOC]”を第2POC差分というとき、上記第1POC差分と第2POC差分とが同一である場合に限り、上記第1参照ピクチャを指すrefidxL0の値が上記現ブロックのrefidxL0として導出され、上記第2参照ピクチャを指すrefidxL1の値が上記現ブロックのrefidxL1として導出されることもある。また、例えば、上記第1POC差分と第2POC差分とが同一である複数のセットがある場合、それらのうちの差分が最小であるセットのrefidxL0、refidxL1が現ブロックのrefidxL0、refidxL1として導出されることができる。
【0163】
図7に示すように、参照ピクチャリスト0、参照ピクチャリスト1、およびMVD L0、MVD L1が示されている。ここで、MVD L1は、MVD L0と対称的である。
【0164】
MVD L1は、マイナス(-)MVD L0として導出されることができる。例えば、現ブロックに対する最終(改善または修正された)動き情報(動きベクトル:MV)は、次の数式に基づいて導出される。
【0165】
<数式1>
【数1】
【0166】
数式1において、mvxおよびmvyは、L0動き情報またはL0予測のための動きベクトルのx成分およびy成分を示し、mvxおよびmvyは、L1動き情報またはL1予測のための動きベクトルのx成分およびy成分を示す。また、mvpxおよびmvpyは、L0予測のための動きベクトル予測子のx成分およびy成分を示し、mvpxおよびmvpyは、L1予測のための動きベクトル予測子のx成分およびy成分を示す。また、mvdxおよびmvdyは、L0予測のための動きベクトル差分のx成分およびy成分を示す。
【0167】
一方、MMVDモードは、マージモードにMVD(Motion Vector Difference)を適用する方法として、現ブロック(すなわち、現CU)の予測サンプルの生成に直接使われる動き情報が内在的に(implicitly)導出されることができる。例えば、現ブロック(すなわち、現CU)にMMVDを使用するか否かを示すMMVDフラグ(例えば、mmvd_flag)がシグナリングされ、このMMVDフラグに基づいてMMVDが行われることができる。MMVDが現ブロックに適用される場合(例えば、mmvd_flagが1である場合)、MMVDに関する追加情報がシグナリングされることができる。
【0168】
ここで、MMVDに関する追加情報は、マージ候補リスト内の第1候補または第2候補がMVDと共に使用されるか否かを指示するマージ候補フラグ(例えば、mmvd_cand_flag)、動きの大きさ(motion magnitude)を示すための距離インデックス(例えば、mmvd_distance_idx)、動きの方向(motion direction)を示すための方向インデックス(mmvd_direction_idx)を含む。
【0169】
MMVDモードでは、マージ候補リスト内の候補のうちの1番目および2番目のエントリに位置する2つの候補(すなわち、第1候補または第2候補)を使用することができ、上記2つの候補(すなわち、第1候補または第2候補)のいずれか1つがベースMVとして使用されることができる。例えば、マージ候補フラグ(例えば、mmvd_cand_flag)がマージ候補リスト内の2つの候補(すなわち、第1候補または第2候補)のいずれか1つを示すためにシグナリングされることができる。
【0170】
また、距離インデックス(例えば、mmvd_distance_idx)は、動き大きさ情報を示し、開始ポイントから予め定められたオフセット(offset)を指示することができる。上記オフセットは、開始動きベクトルの水平成分または垂直成分に加えられてもよい。距離インデックスと予め定められたオフセットとの関係は、次の表のように示すことができる。
【0171】
<表5>
【表5】
【0172】
上記表5を参照すると、距離インデックス(例えば、mmvd_distance_idx)の値によってMVDの距離(例えば、MmvdDistance)が定められており、MVDの距離(例えば、MmvdDistance)は、tile_group_fpel_mmvd_enabled_flagの値に基づいて整数サンプル単位(integer sample precision)または端数(分数)サンプル単位(fractional sample precision)を使用して導出されることができる。例えば、tile_group_fpel_mmvd_enabled_flagが1である場合、MVDの距離は、現タイルグループ(または、ピクチャヘッダ)において整数サンプル単位を使用して導出されることを示し、tile_group_fpel_mmvd_enabled_flagが0である場合、MVDの距離は、タイルグループ(または、ピクチャヘッダ)において端数サンプル単位を使用して導出されることを示す。表1において、タイルグループのための情報(フラグ)は、ピクチャヘッダのための情報に置き換えられることができ、例えば、tile_group_fpel_mmvd_enabled_flagは、ph_fpel_mmvd_enabled_flag(または、ph_mmvd_fullpel_only_flag)に置き換えられることができる。
【0173】
また、方向インデックス(例えば、mmvd_direction_idx)は、開始ポイントを基準にMVDの方向を示し、以下の表5に示すように4方向を示す。ここで、MVDの方向は、MVDの符号を示すことができる。方向インデックスとMVD符号との関係は、以下の表のように示す。
【0174】
<表6>
【表6】
【0175】
上記表6を参照すると、方向インデックス(例えば、mmvd_direction_idx)の値によってMVDの符号(例えば、MmvdSign)が定められており、MVDの符号(例えば、MmvdSign)は、L0参照ピクチャおよびL1参照ピクチャに対して導出される。
【0176】
前述のような距離インデックス(例えば、mmvd_distance_idx)および方向インデックス(例えば、mmvd_direction_idx)に基づいて、次の数式のようにMVDのオフセットを計算することができる。
【0177】
<数式2>
【数2】
【0178】
<数式3>
【数3】
【0179】
数式2および数式3において、MMVD距離(MmvdDistance[x0][y0])およびMMVD符号(MmvdSign[x0][y0][0]、MmvdSign[x0][y0][1])は、表5および/または表6に基づいて導出される。まとめると、MMVDモードでは、周辺ブロックに基づいて導出されたマージ候補リストのマージ候補子のうちのマージ候補フラグ(例えば、mmvd_cand_flag)により指示されるマージ候補を選択し、上記選択されたマージ候補をベース(base)候補(例えば、MVP)として使用することができる。そして、ベース候補に基づいて距離インデックス(例えば、mmvd_distance_idx)および方向インデックス(例えば、mmvd_direction_idx)を用いて導出されたMVDを加えて現ブロックの動き情報(すなわち、動きベクトル)を導出することができる。
【0180】
予測モードによって導出された動き情報に基づいて、現ブロックに対する予測されたブロックを導出することができる。上記予測されたブロックは、上記現ブロックの予測サンプル(予測サンプルアレイ)を含む。現在のブロックの動きベクトルが端数サンプル単位を指す場合、補間(interpolation)手順が行われることができ、これにより参照ピクチャ内において端数サンプル単位の参照サンプルに基づいて上記現在のブロックの予測サンプルが導出されることができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャおよびMVL0を用いた予測)に基づいて導出された予測サンプルとL1予測(すなわち、参照ピクチャリストL1内の参照ピクチャおよびMVL1を用いた予測)に基づいて導出された予測サンプルとの(位相に応じた)加重和または加重平均により導出された予測サンプルが、現在のブロックの予測サンプルとして利用されることができる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャとが現ピクチャを基準に互いに異なる時間方向に位置する場合(すなわち、双予測でありながら双方向予測に該当する場合)、これを真(true)双予測と呼んでもよい。
【0181】
導出された予測サンプルに基づいて復元サンプルおよび復元ピクチャが生成され、その後、インループフィルタリングなどの手順が実行されることができることは、前述の通りである。
【0182】
前述のように本文書によれば、現ブロックに双予測が適用される場合、加重平均(weighted average)に基づいて予測サンプルを導出することができる。従来、双予測信号(すなわち、双予測サンプル)は、L0予測信号(L0予測サンプル)とL1予測信号(L1予測サンプル)との単純平均により導出されていた。すなわち、双予測サンプルは、L0参照ピクチャおよびMVL0に基づくL0予測サンプルとL1参照ピクチャおよびMVL1に基づくL1予測サンプルとの平均として導出された。しかしながら、本文書によると、双予測が適用される場合、次のように、L0予測信号とL1予測信号との加重平均により双予測信号(双予測サンプル)を導出することができる。
【0183】
前述のMMVDに関連する実施例において、MMVDのMVD導出過程においてロングターム参照ピクチャを考慮した方法が提案されることができ、これにより、様々なアプリケーションにおいて圧縮効率を維持および増加させることができるようにする。また、本文書の実施例において提案する方法は、MERGEにおいて使用されるMMVD技術以外に、インターモード(MVPモード)において使用される対称的(Symmetric)MVD技術であるSMVDにおいても同様に適用されることができる。
【0184】
図8は、インター予測において動きベクトルを導出する方法を説明する図である。
【0185】
本文書の一実施例において、時間動き候補(Temporal motion candidate、temporal merge candidate、またはtemporal mvp candidate)の動きベクトルスケーリング(MV scaling)の過程で、ロングターム参照ピクチャを考慮したMV導出方法が使われている。時間動き候補は、mvCol(mvLXCol)に対応できる。時間動き候補は、「TMVP」と呼ばれてもよい。
【0186】
次の表は、ロングターム参照ピクチャの定義を説明する。
【0187】
<表7>
【表7】
【0188】
上記表7を参照すると、LongTermRefPic(aPic、aPb、refIdx、LX)が1(真、true)である場合、対応する参照ピクチャは、ロングターム参照のために使われる(used for long-term reference)とマーキングされる。例えば、ロングターム参照のために使われるとマーキングされていない参照ピクチャは、ショートターム参照のために使われる(used for short-term reference)とマーキングされた参照ピクチャであり得る。他の例において、ロングターム参照のために使用されるとマーキングされず、使用されていないとマーキングされていない参照ピクチャは、ショートターム参照のために使用されるものとマーキングされた参照ピクチャであり得る。以下、ロングターム参照のために使用されるとマーキングされた参照ピクチャは、ロングターム参照ピクチャと称されてもよく、ショートターム参照のために使用されるとマーキングされた参照ピクチャは、ショートターム参照ピクチャと称されてもよい。
【0189】
次の表は、TMVP(mvLXCol)の導出を説明する。
【0190】
<表8>
【表8】
【0191】
図8および表8を参照すると、現ピクチャが指す参照ピクチャタイプ(例えば、long-term reference picture(LTRP)またはshort-term refrence picture(STRP)であるかを指す)とコロケーテッドピクチャ(collocated picture)が指すコロケーテッド参照ピクチャ(collocated reference picture)のタイプとが同一でない場合、時間動きベクトル(mvLXCol)は使用されない。すなわち、全てがロングターム参照ピクチャであるか、全てがショートターム参照ピクチャである場合は、colMVを導出し、他のタイプを有する場合は、colMVを導出しない。また、全てがロングターム参照ピクチャである場合、および、現ピクチャと現ピクチャの参照ピクチャとのPOC差分が、コロケーテッドピクチャとコロケーテッドピクチャの参照ピクチャとの間のPOC差分と同一である場合、スケーリングなしでコロケーテッドの動きベクトルがそのまま使用されることができる。ショートターム参照ピクチャであり、POC差分が異なる場合、スケーリングされたコロケーテッドブロックの動きベクトルが使用される。
【0192】
本文書の実施例において、MERGE/SKIPモードにおいて使用されるMMVDは、1つのコーディングブロックに対してベース動きベクトルインデックス(base MV index)、距離インデックス(distance index)、方向インデックス(direction index)を、MVD情報を導出するための情報として、シグナリングする。単方向予測を行う場合、動き情報からMVDを導出し、双方向予測の場合、ミラーリング(mirroring)およびスケーリング方法を用いて対称的なMVD情報を生成する。
【0193】
双方向予測を行う場合、L0またはL1のためのMVD情報は、スケーリングされてL1またはL0のMVDを生成するが、ロングターム参照ピクチャを参照する場合、MVD導出過程における変更が必要である。
【0194】
図9ないし図13は、本文書の実施例によるMMVDのMVD導出方法を示す。図9ないし図13に示された方法は、双方向予測が適用されるブロックに対するものであり得る。
【0195】
図9による一実施例において、L0参照ピクチャとの距離と、L1参照ピクチャとの距離と、が同一である場合、導出されたMmvdOffsetをそのままMVDとして使用することができ、POC差分(L0参照ピクチャと現ピクチャとの間のPOC差分およびL1参照ピクチャと現ピクチャとの間のPOC差分)が異なるとき、POC差分と、ロングタームまたはショートターム参照ピクチャのいずれであるかと、によって、スケーリングまたは単純ミラーリング(すなわち、-1*MmvdOffset)してMVDを導出することができる。
【0196】
一例として、双方向予測が適用されるブロックに対してMMVDを用いて対称的なMVDを導出する方法は、ロングターム参照ピクチャを使用するブロックには適合せず、特に、各方向の参照ピクチャタイプが異なる場合、MMVD使用時の性能向上は期待しにくい。したがって、次の図および実施例においては、L0とL1との参照ピクチャタイプが異なる場合、MMVDが適用されないように実現される例が紹介される。
【0197】
図10による一実施例において、現ピクチャ(または、現スライス、現ブロック)により参照される参照ピクチャがLTRP(Long-Term Reference Picture)またはSTRP(Short-Term Reference Picture)であるかによって異なるMVD導出方法が適用される。一例において、図10による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
【0198】
<表9>
【表9-1】
【表9-2】
【0199】
図11による一実施例において、現ピクチャ(または、現スライス、現ブロック)により参照される参照ピクチャがLTRP(Long-Term Reference Picture)またはSTRP(Short-Term Reference Picture)であるかによって異なるMVD導出方法が適用される。一例において、図11による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
【0200】
<表10>
【表10-1】
【表10-2】
【0201】
まとめると、各方向の参照ピクチャタイプが異なる場合、MVDを導出しないMMVDのMVD導出過程が説明されている。
【0202】
図12による一実施例において、ロングターム参照ピクチャを参照する全ての場合にMVDが導出されるものではない。すなわち、L0、L1参照ピクチャのうちの少なくとも1つでもロングターム参照ピクチャであるときはMVDを0に設定し、ショートターム参照ピクチャを有する場合にのみMVDが導出されることができる。
【0203】
一例において、最優先条件(RefPicL0!=LTRP&&RefPicL1!=STRP)に基づいて現ピクチャ(または、現スライス、現ブロック)がショートターム参照ピクチャのみを参照する場合に、MMVDのためのMVDが導出されることができる。一例において、図12による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
【0204】
<表11>
【表11-1】
【表11-2】
【0205】
図13による一実施例において、各方向の参照ピクチャタイプが異なる場合、ショートターム参照ピクチャを有する場合はMVDを導出し、ロングターム参照ピクチャを有する場合はMVDが0に導出される。
【0206】
一例において、各方向の参照ピクチャタイプが異なる場合、現ピクチャから距離の近い参照ピクチャ(ショートターム参照ピクチャ)を参照するとき、MmvdOffsetが適用され、現ピクチャから距離の遠い参照ピクチャ(ロングターム参照ピクチャ)を参照するとき、MVDは0値を有する。ここで、現ピクチャに近いピクチャはショートターム参照ピクチャを有するとみなすことができるが、近いピクチャがロングターム参照ピクチャである場合は、ショートターム参照ピクチャを指すリストの動きベクトルにmmvdOffsetを適用することができる。
【0207】
<表12>
【表12】
【0208】
例えば、上記表12に含まれる4つの段落によって、上記図13に含まれるフローチャート(順序図)の一番下のブロック(の内容)は順次置き換えられることができる。
【0209】
一例において、図13による実施例の方法が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
【0210】
<表13>
【表13-1】
【表13-2】
【0211】
次の表は、本文書に含まれる実施例間を比較した表を示す。
【0212】
<表14>
【表14】
【0213】
表14を参照すると、図9ないし図13による実施例において説明されたMMVDのMVD導出のために、参照ピクチャタイプを考慮してオフセットを適用する方法間の比較が示される。表14において、実施例Aは、既存のMMVDに関するものであり、実施例Bは、図9ないし図11による実施例を示し、実施例Cは、図12による実施例を示し、実施例Dは、図13による実施例を示す。
【0214】
すなわち、図9図10および図11による実施例においては、両方向の参照ピクチャタイプが同一である場合にのみMVDを導出する方法、図12による実施例においては、両方向ともショートターム参照ピクチャである場合にのみMVDを導出する方法について記述した。図12による実施例の場合、単方向予測に対してロングターム参照ピクチャであればMVDを0に設定する。また、図13による実施例においては、両方向の参照ピクチャタイプが異なる場合、一方向にのみMVDを導出する方法について記述した。このような実施例間の相違点は、本文書で説明される技術の様々な特徴を示し、上記特徴に基づいて本文書による実施例が達成しようとする効果が実現されることができることが、本明細書の属する技術分野の通常の知識を有する者により理解できる。
【0215】
本文書による実施例においては、参照ピクチャタイプがロングターム参照ピクチャである場合、別途のプロセスを有する。ロングターム参照ピクチャを含む場合、POC差分(POCDiff)ベースのスケーリングまたはミラーリングは、性能向上に影響がないため、ショートターム参照ピクチャを有する方向のMVDには、MmvdOffset値が割り当てられ、ロングターム参照ピクチャを有する方向のMVDには、0値が割り当てられるようにする。一例において、本実施例が適用される場合、本実施例による標準文書の一部分は、次の表のように記述される。
【0216】
<表15>
【表15-1】
【表15-2】
【0217】
他の例において、上記表15の一部分は、次の表に置き換えることができる。表16を参照すると、POCDiffではなく参照ピクチャタイプを基準としてOffsetが適用される。
【0218】
<表16>
【表16】
【0219】
さらに他の例において、上記表15の一部分は、次の表に置き換えることができる。表17を参照すると、参照ピクチャタイプを考慮せずに常にL0にMmvdOffsetを、L1に-MmvdOffsetを設定することができる。
【0220】
<表17>
【表17】
【0221】
本文書の一実施例によると、前述のMERGEモードにおいて使用されるMMVDに類似して、インターモードにおけるSMVDが行われることができる。双方向予測を行う場合、対称的MVD導出が可能か否かがエンコード装置からデコード装置にシグナリングされ、関連フラグ(例えば、sym_mvd_flag)が真(または、その値が1)であるとき、第1方向MVD(例えば、MVD L0)のミラーリングにより第2方向MVD(例えば、MVD L1)が導出される。この場合、第1方向MVDに対するスケーリングは、行われない場合がある。
【0222】
次の表は、本文書の一実施例によるコーディングユニットに関するシンタックスを示す。
【0223】
<表18>
【表18】
【0224】
<表19>
【表19】
【0225】
上記表18および表19を参照すると、inter_pred_idc==PRED_BIであり、そして、L0およびL1の参照ピクチャが使用可能(available)である場合(例えば、RefIdxSymL0>-1&&RefIdxSymL1>-1)、sym_mvd_flagがシグナリングされる。
【0226】
次の表は、一例によるMMVD参照インデックスのためのデコーディング手順を示す。
【0227】
<表20>
【表20】
【0228】
表20を参照すると、L0およびL1の参照ピクチャの使用可能性(availability)の導出手順が説明される。すなわち、L0参照ピクチャのうちのフォワード方向(forward direction)の参照ピクチャが存在する場合、現ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL0に設定し、該当値は、L0の参照インデックスに設定される。また、L1参照ピクチャのうちのバックワード方向(backward direction)の参照ピクチャが存在する場合、現ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL1に設定し、該当値は、L1の参照インデックスに設定される。
【0229】
以下の表21は、他の例によるMMVD参照インデックスのためのデコーディング手順を示す。
【0230】
<表21>
【表21】
【0231】
表21を参照すると、図9図10図11と共に説明された実施例のように、L0またはL1参照ピクチャタイプが異なる場合、すなわち、ロングターム参照ピクチャとショートターム参照ピクチャとが使用される場合、SMVDを防ぐためにSMVDのための参照インデックス導出の後、L0とL1との参照ピクチャタイプが異なる場合、SMVDを使用しないようにする(表20の一番下の段落参照)。
【0232】
本文書の一実施例において、マージモードで使用されるMMVDに類似して、インターモードでは、SMVDが適用されることができる。図12とともに説明された実施例のように、ロングターム参照ピクチャが使用される場合、SMVDを防ぐために以下の表のように、SMVDのための参照インデックス導出の過程でロングターム参照ピクチャを除外することができる。
【0233】
<表22>
【表22】
【0234】
本実施例の他の例による次の表は、SMVDのための参照ピクチャインデックス導出の後にロングターム参照ピクチャを使用する場合、SMVDを適用しないように処理する例を示す。
【0235】
<表23>
【表23】
【0236】
本文書の一実施例において、TMVPのcolMV導出過程で現ピクチャの参照ピクチャタイプとコロケーテッドピクチャの参照ピクチャタイプとが異なる場合、動きベクトルMVは0に設定されるが、MMVD、SMVDの場合の導出方法と異なるので、これを統一されるようにする。
【0237】
現ピクチャの参照ピクチャタイプがロングターム参照ピクチャであり、コロケーテッドピクチャの参照ピクチャタイプがロングターム参照ピクチャである場合も、動きベクトルは、コロケーテッド動きベクトル値をそのまま使用しているが、MMVD、SMVDにおいて、この場合はMVを0に設定する。ここで、TMVPも追加の導出なしでMVを0に設定する。
【0238】
また、参照ピクチャタイプが異なっても、現ピクチャとの距離が近いロングターム参照ピクチャが存在し得るので、これを考慮してMVを0に設定する代わりにスケーリングなしでcolMVをMVとして使用することができる。
【0239】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号メッセージフィールドの名称は例示的に提示されたものであるので、本明細書の技術的特徴は、以下の図面に用いられた具体的な名称に制限されない。
【0240】
図14および図15は、本文書の実施例(1つまたは複数)によるビデオ/映像エンコード方法および関連コンポーネントの一例を概略的に示す。図14において開示された方法は、図2において開示されたエンコード装置により行われる。具体的には、例えば、図14のS1400ないしS1450は、上記エンコード装置の予測部220により行われ、S1460は、上記エンコード装置の残差処理部230により行われる。S1470は、上記エンコード装置のエントロピ符号化部240により行われる。図14において開示された方法は、本文書で前述した実施例を含む。
【0241】
図14を参照すると、エンコード装置は、現ピクチャ内の現ブロックのためにインター予測モードを導出する(S1400)。ここで、インター予測モードは、前述のマージモード、AMVPモード(動きベクトル予測子候補を用いたモード)、MMVD、SMVDを含む。
【0242】
エンコード装置は、上記インター予測モードのための参照ピクチャを導出する。エンコード装置は、参照ピクチャの導出のために参照ピクチャリストを構成する。一例において、参照ピクチャリストは、参照ピクチャリスト0(または、L0、参照ピクチャリストL0)または参照ピクチャリスト1(または、L1、参照ピクチャリストL1)を含む。例えば、エンコード装置は、現ピクチャに含まれるスライスのそれぞれごとに参照ピクチャリストを構成することができる。
【0243】
エンコード装置は、現ブロックの周辺ブロックに基づいて、上記現ブロックのためのMVP候補リストを構成する(S1410)。一例において、上記周辺ブロックは、上記現ブロックを含む現ピクチャに含まれる。他の例において、上記周辺ブロックは、上記現ピクチャの以前の(参照)ピクチャまたは次(以後)の(参照)ピクチャに含まれる。ここで、以前のピクチャのPOCは、現ピクチャのPOCより小さく、そして、以後のピクチャのPOCは、現ピクチャのPOCより大きいことがある。一例によれば、現ピクチャと現ピクチャの以前の(参照)ピクチャとの間のPOC差分は、0より大きい。他の例において、現ピクチャと現ピクチャの次の(参照)ピクチャとの間のPOC差分は、0より小さい。ただし、これは例示的なものに過ぎない。
【0244】
エンコード装置は、上記MVP候補リストに基づいて、上記現ブロックのためのMVPを導出する(S1420)。エンコード装置は、上記MVP候補リストに含まれる動きベクトル予測子候補のうちの最適な動きベクトル予測子候補を導出する。エンコード装置は、上記最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラグまたはMVPインデックス)を生成することができる。
【0245】
エンコード装置は、上記インター予測モードを含む予測関連情報を生成する(S1430)。一例において、上記予測関連情報は、上記現ブロックのためのMVD(Motion Vector Difference)に関する情報を含む。また、上記予測に関する情報は、MMVDに関する情報、SMVDに関する情報などを含む。
【0246】
エンコード装置は、上記インター予測モードに基づいて、上記現ブロックの予測のための動き情報を導出する(S1440)。例えば、動き情報は、SMVDのための参照インデックスを含む。SMVDのための参照インデックスは、SMVDを適用するための参照ピクチャを指す。SMVDのための参照インデックスは、参照インデックスL0(RefIdxSumL0)および参照インデックスL1(RefIdxSumL1)を含む。
【0247】
エンコード装置は、上記動き情報に基づいて予測サンプルを生成する(S1450)。エンコード装置は、上記動き情報に含まれる動きベクトルと参照ピクチャインデックスとに基づいて上記予測サンプルを生成する。例えば、上記予測サンプルは、上記参照ピクチャインデックスが指す上記参照ピクチャ内のブロック(または、サンプル)のうち、上記動きベクトルにより指示されるブロック(または、サンプル)に基づいて生成される。
【0248】
エンコード装置は、上記予測サンプルに基づいて残差(レジデュアル)情報を導出する(S1460)。具体的には、エンコード装置は、上記予測サンプルとオリジナルサンプルとに基づいて残差サンプルを導出することができる。エンコード装置は、上記残差サンプルに基づいて残差情報を導出することができる。上記残差情報の導出のために、前述の変換および量子化過程が行われる。
【0249】
エンコード装置は、上記予測関連情報および上記残差情報を含む映像/ビデオ情報をエンコードする(S1470)。エンコードされた映像/ビデオ情報は、ビットストリーム形態で出力されることができる。上記ビットストリームは、ネットワークまたは(デジタル)記憶媒体を介してデコード装置に送信されることができる。
【0250】
上記映像/ビデオ情報は、本文書の実施例による様々な情報を含む。例えば、上記映像/ビデオ情報は、前述の表1ないし表23のいずれか1つに開示された情報を含む。
【0251】
一実施例において、上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含む。上記動きベクトルは、上記MVDに関する情報および上記MVPに基づいて導出される。上記参照ピクチャインデックスは、参照ピクチャリストに含まれる参照ピクチャのうちのショートターム参照ピクチャに基づいて導出される。
【0252】
一実施例において、上記MVDと上記MVPとの間の合算に基づいて上記現ブロックのための動きベクトルが導出される。
【0253】
一実施例において、上記予測関連情報は、SMVDに関する情報を含む。例えば、上記ショートターム参照ピクチャと上記現ブロックを含む現ピクチャとの間のPOC差分に基づいて上記参照ピクチャインデックスが導出される場合、上記SMVDに関する情報の値は1であり得る。
【0254】
一実施例において、L0予測のためのMVD L0が導出されることができる。例えば、上記MVD L0からL1予測のためのMVD L1が導出され、また、上記MVD L0および上記MVD L1に基づいて上記動き情報が導出される場合、上記SMVDに関する情報の値は1であり得る。
【0255】
一実施例において、上記MVD L1の大きさは、上記MVD L0の大きさと同一であり得る。上記MVD L1の符号は、上記MVD L0の符号と逆であり得る。
【0256】
一実施例において、上記参照ピクチャインデックスは、上記ショートターム参照ピクチャを指す。
【0257】
一実施例において、上記参照ピクチャリスト0は、上記ショートターム参照ピクチャを含む。上記参照ピクチャリスト0に含まれる参照ピクチャのそれぞれと上記現ブロックを含む現ブロックとの間のPOC差分に基づいて上記参照ピクチャインデックスが導出されることができる。
【0258】
一実施例において、上記POC差分間の比較に基づいて上記参照ピクチャインデックスが導出される。
【0259】
図16および図17は、本文書の実施例による映像/ビデオデコード方法および関連コンポーネントの一例を概略的に示す。図16において開示された方法は、図3において開示されたデコード装置により行われる。具体的には、例えば、図16のS1600は、上記デコード装置のエントロピ復号部310により行われ、S1610ないしS1650は、上記デコード装置の予測部330により行われる。図16において開示された方法は、本文書で前述した実施例を含む。
【0260】
図16に示すように、デコード装置は、映像/ビデオ情報を受信/取得する(S1600)。デコード装置は、ビットストリームを介して上記映像/ビデオ情報を受信/取得することができる。上記映像/ビデオ情報は、予測関連情報(予測モード情報を含む)および残差情報を含む。上記予測関連情報は、mMVDに関する情報、SMVDに関する情報などを含む。また、上記映像/ビデオ情報は、本文書の実施例による様々な情報を含む。例えば、上記映像/ビデオ情報は、図1ないし図15とともに説明された情報、ならびに/または前述の表1ないし図23の少なくとも1つに開示された情報を含む。
【0261】
デコード装置は、上記予測関連情報に基づいて、現ブロックに対するインター予測モードを導出する(S1610)。ここで、インター予測モードは、前述のマージモード、AMVPモード(動きベクトル予測子候補を用いたモード)、MMVD、SMVDを含む。
【0262】
デコード装置は、現ブロックの周辺ブロックに基づいて上記現ブロックのためのMVP候補リストを構成する(S1620)。一例において、上記周辺ブロックは、上記現ブロックを含む現ピクチャに含まれる。他の例において、上記周辺ブロックは、上記現ピクチャからの以前の(参照)ピクチャまたは次(以後)の(参照)ピクチャに含まれる。ここで、以前のピクチャのPOCは、現ピクチャのPOCより小さく、そして、以後のピクチャのPOCは、現ピクチャのPOCより大きいことがある。一例によれば、現ピクチャと現ピクチャの以前の(参照)ピクチャとの間のPOC差分は、0より大きい。他の例において、現ピクチャと現ピクチャの次の(参照)ピクチャとの間のPOC差分は、0より小さい。ただし、これは例示的なものに過ぎない。
【0263】
デコード装置は、上記MVP候補リストに基づいて上記現ブロックのためのMVPを導出する(S1630)。デコード装置は、上記MVP候補リストに含まれる動きベクトル予測子候補のうちの最適な動きベクトル予測子候補を導出することができる。エンコード装置は、上記最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラグまたはMVPインデックス)を生成することができる。
【0264】
デコーディングデバイスは、上記MVDに関する情報および上記MVPに基づいて上記現ブロックのための動き情報を導出する(S1640)。例えば、動き情報は、SMVDのための参照インデックスを含む。SMVDのための参照インデックスは、SMVDを適用するための参照ピクチャを指す。SMVDのためのの参照インデックスは、参照インデックスL0(RefIdxSumL0)および参照インデックスL1(RefIdxSumL1)を含む。
【0265】
デコード装置は、上記動き情報に基づいて予測サンプルを生成する(S1650)。デコード装置は、上記動き情報に含まれる動きベクトルと参照ピクチャインデックスとに基づいて上記予測サンプルを生成することができる。例えば、上記予測サンプルは、上記参照ピクチャインデックスが指す上記参照ピクチャ内のブロック(または、サンプル)のうちの上記動きベクトルにより指示されるブロック(または、サンプル)に基づいて生成されることができる。
【0266】
デコード装置は、上記残差情報に基づいて残差サンプルを生成することができる。具体的には、デコード装置は、上記残差情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて1次元ベクトル形態を有することができる。デコード装置は、上記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、上記変換係数に対する逆変換手順に基づいて残差サンプルを導出することができる。
【0267】
デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて現ピクチャの復元サンプルを生成する。デコード装置は、(修正された)復元サンプルを生成するためにフィルタリング手順をさらに行うこともできる。
【0268】
一実施例において、上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含む。上記動きベクトルは、上記MVDに関する情報および上記MVPに基づいて導出される。上記参照ピクチャインデックスは、参照ピクチャリストに含まれる参照ピクチャのうちのショートターム参照ピクチャに基づいて導出される。
【0269】
一実施例において、上記MVDに関する情報に基づいてMVDが導出されることができる。上記MVD(MVP)と上記MVPとの間の合算に基づいて上記現ブロックのための動きベクトルが導出される。
【0270】
一実施例において、上記予測関連情報は、SMVDに関する情報を含む。例えば、上記SMVDに関する情報の値が1である場合、上記ショートターム参照ピクチャと上記現ブロックを含む現ピクチャとの間のPOC差分に基づいて上記参照ピクチャインデックスが導出される。
【0271】
一実施例において、上記MVDに関する情報に基づいてL0予測のためのMVD L0が導出される。例えば、上記SMVDに関する情報の値が1である場合、MVD L0からL1予測のためのMVD L1が導出され、また、上記MVD L0および上記MVD L1に基づいて上記動き情報が導出される。
【0272】
一実施例において、上記MVD L1の大きさは、上記MVD L0の大きさと同一であり得る。上記MVD L1の符号は、上記MVD L0の符号と逆であり得る。
【0273】
一実施例において、上記参照ピクチャインデックスは、上記ショートターム参照ピクチャを指すことができる。
【0274】
一実施例において、上記参照ピクチャリスト0は、上記ショートターム参照ピクチャを含む。上記参照ピクチャリスト0に含まれる参照ピクチャのそれぞれと上記現ブロックを含む現ブロックとの間のPOC差分に基づいて上記参照ピクチャインデックスが導出される。
【0275】
一実施例において、上記POC差分間の比較に基づいて上記参照ピクチャインデックスが導出される。
【0276】
一実施例において、上記参照ピクチャインデックス(例えば、ref_idx_l1[x0][y0])は、直接シグナリングされることなく、上記SMVDに関する情報に基づいて導出される。
【0277】
前述した実施例において、方法は、一連のステップまたはブロックとしてフローチャートに基づいて説明されているが、該当の実施例は、ステップの順序に限定されるわけではなく、あるステップは、前述したのと異なるステップおよび異なる順序で、または同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの1つまたは複数のステップが本文書の実施例の範囲に影響を与えずに削除され得ることを理解することができる。
【0278】
前述した本文書の実施例に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコード装置および/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を行う装置に含まれ得る。
【0279】
本文書で、実施例がソフトウェアで具現される際、前述した方法は、前述した機能を行うモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体および/または他の記憶装置を含むことができる。すなわち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われ得る。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記憶媒体に記憶されることができる。
【0280】
また、本文書の実施例が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(オーダーメイド型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over the Top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(Virtual Reality)装置、AR(Augmented Reality)装置、映像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両含む)端末、飛行機端末、船舶端末など)および医療用ビデオ装置などに含まれ得、ビデオ信号またはデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over The Top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含み得る。
【0281】
また、本文書の実施例が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に記憶されることができる。本文書の実施例に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に記憶されることができる。上記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、および光学データ記憶装置を含み得る。また、上記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に記憶されるか、有無線通信ネットワークを介して送信されることができる。
【0282】
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、上記プログラムコードは、本文書の実施例によってコンピュータで実行されることができる。上記プログラムコードは、コンピュータによって読み取り可能なキャリア上に記憶されることができる。
【0283】
図18は、本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
【0284】
図18を参照すると、本文書の実施例が適用されるコンテンツストリーミングシステムは、大まかに、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0285】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略され得る。
【0286】
上記ビットストリームは、本文書の実施例が適用されるエンコード方法またはビットストリームの生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で、一時的に上記ビットストリームを記憶することができる。
【0287】
上記ストリーミングサーバは、ウェブサーバを介してのユーザ要求(要請)に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すれば、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0288】
上記ストリーミングサーバは、メディア記憶装置(格納所)および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間、記憶することができる。
【0289】
上記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタル署名(サイニジ)などがありうる。
【0290】
上記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0291】
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として具現されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18