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

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

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

特開2023-175949インター予測に基づく画像コーディング方法および装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175949
(43)【公開日】2023-12-12
(54)【発明の名称】インター予測に基づく画像コーディング方法および装置
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231205BHJP
   H04N 19/52 20140101ALI20231205BHJP
【FI】
H04N19/70
H04N19/52
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023174196
(22)【出願日】2023-10-06
(62)【分割の表示】P 2021576749の分割
【原出願日】2020-06-24
(31)【優先権主張番号】62/865,958
(32)【優先日】2019-06-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】パク ネリ
(72)【発明者】
【氏名】ナム チョンハク
(72)【発明者】
【氏名】チャン ヒョンムン
(57)【要約】      (修正有)
【課題】インター予測に基づく画像コーディング方法および装置を提供する。
【解決手段】画像/ビデオデコード方法は、エンコードされた情報からインター予測モードを導出するステップS2110と、インター予測モード情報に基づいて現ブロックの動きベクトル予測子候補リストを構成するステップS2120と、参照ピクチャリストに有される参照ピクチャに基づいて、SMVD(Symmetric Motion Vector Differences)のための参照ピクチャインデックスを有する動き情報を導出するステップS2130と、SMVDのための参照ピクチャインデックスを、参照ピクチャリスト内に含まれるショートターム(short-term)参照ピクチャに基づいて導出するステップS2160と、動き情報に基づいて予測サンプルを生成するステップS2170と、を含む。
【選択図】図21
【特許請求の範囲】
【請求項1】
デコード装置によって実行される画像デコード方法であって、
ビットストリームから予測関連情報を有する画像情報を取得するステップと、
前記予測関連情報に基づいて、インター予測モードを導出するステップと、
前記インター予測モードに基づいて、現ブロックの動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックの動きベクトルを導出するステップと、
前記現ブロックに対する参照ピクチャリストを導出するステップと、
前記参照ピクチャリストに有される参照ピクチャのそれぞれと現ピクチャとの間のピクチャオーダカウント(Picture Order Count;POC)差分を導出するステップと、
前記POC差分に基づいて、対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトルおよび前記対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、を有し、
前記動きベクトルは、前記動きベクトル予測子候補リストに基づいて導出される動きベクトル予測子と動きベクトル差分とに基づいて導出され、
前記現ブロックは、双予測(bi-prediction)が適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分およびL1予測に対するL1動きベクトル差分を有し、
前記対称動きベクトル差分参照インデックスは、L0予測に対するL0対称動きベクトル差分参照インデックスおよびL1予測に対するL1対称動きベクトル差分参照インデックスを有し、
前記L1動きベクトル差分は、前記L0動きベクトル差分に基づいて導出され、
前記L0対称動きベクトル差分参照インデックスおよび前記L1対称動きベクトル差分参照インデックスは、前記参照ピクチャリストに有されるショートターム(short-term)参照ピクチャと前記現ピクチャとの間のピクチャオーダカウント(POC)差分に基づいて導出される、画像デコード方法。
【請求項2】
エンコード装置によって実行される画像エンコード方法であって、
現ブロックの動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックの動きベクトル予測子を決定するステップと、
前記動きベクトル予測子候補リストのうちの前記動きベクトル予測子を示す選択情報を生成するステップと、
前記動きベクトル予測子に基づいて、前記現ブロックに対する動きベクトル差分を決定するステップと、
参照ピクチャを有する参照ピクチャリストを導出するステップと、
前記参照ピクチャリストに有される前記参照ピクチャのそれぞれと現ピクチャとの間のピクチャオーダカウント(Picture Order Count;POC)差分を導出するステップと、
前記POC差分に基づいて、対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトル差分および前記対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差情報を生成するステップと、
前記残差情報と前記選択情報および前記動きベクトル差分に関する情報を有する予測関連情報とを有する画像情報をエンコードするステップと、を有し、
前記現ブロックは、双予測(bi-prediction)が適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分およびL1予測に対するL1動きベクトル差分を有し、
前記対称動きベクトル差分参照インデックスは、L0予測に対するL0対称動きベクトル差分参照インデックスおよびL1予測に対するL1対称動きベクトル差分参照インデックスを有し、
前記L0対称動きベクトル差分参照インデックスおよび前記L1対称動きベクトル差分参照インデックスは、前記参照ピクチャリストに有されるショートターム(short-term)参照ピクチャと前記現ピクチャとの間のピクチャオーダカウント(POC)差分に基づいて導出される、画像エンコード方法。
【請求項3】
画像に関するデータの送信方法であって、
前記画像に関するビットストリームを取得するステップであって、前記ビットストリームは、
現ブロックの動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックの動きベクトル予測子を決定するステップと、
前記動きベクトル予測子候補リストのうちの前記動きベクトル予測子を示す選択情報を生成するステップと、
前記動きベクトル予測子に基づいて、前記現ブロックに対する動きベクトル差分を決定するステップと、
参照ピクチャを有する参照ピクチャリストを導出するステップと、
前記参照ピクチャリストに有される前記参照ピクチャのそれぞれと現ピクチャとの間のピクチャオーダカウント(Picture Order Count;POC)差分を導出するステップと、
前記POC差分に基づいて、対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトル差分および前記対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差情報を生成するステップと、
前記残差情報と前記選択情報および前記動きベクトル差分に関する情報を有する予測関連情報とを有する画像情報をエンコードするステップと、に基づいて生成されるステップと、
前記ビットストリームを有する前記データを送信するステップと、を有し、
前記現ブロックは、双予測(bi-prediction)が適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分およびL1予測に対するL1動きベクトル差分を有し、
前記対称動きベクトル差分参照インデックスは、L0予測に対するL0対称動きベクトル差分参照インデックスおよびL1予測に対するL1対称動きベクトル差分参照インデックスを有し、
前記L0対称動きベクトル差分参照インデックスおよび前記L1対称動きベクトル差分参照インデックスは、前記参照ピクチャリストに有されるショートターム(short-term)参照ピクチャと前記現ピクチャとの間のピクチャオーダカウント(POC)差分に基づいて導出される、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、インター予測に基づく画像コーディング方法および装置に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオのような高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど、既存(従来)の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して画像データを送信するか、既存の記憶(格納)媒体を利用して画像/ビデオデータを記憶する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Reality)コンテンツやホログラムなどの没入型(実感)メディア(Immersive Media)に対する関心および需要が増加しており、ゲーム画像のように、現実画像と異なる画像特性を有する画像/ビデオに対する放送が増加している。
【0004】
これにより、上記のような様々な特性を有する高解像度・高品質の画像/ビデオの情報を効果的に圧縮して送信するか、記憶し、再生するために高効率の画像/ビデオ圧縮技術が求められる。
【0005】
また、画像/ビデオコーディングにおけるインター予測は、SMVD(Symmetric Motion Vector Difference)参照インデックスのための手順および/またはMMVD(Merge Motion Vector Difference)のための手順を含むことができ、SMVD参照インデックスのための手順において、参照ピクチャマーキング(例えば、ショートタームまたはロングターム参照)を考慮して関連技術を適用する議論が進んでいる。
【発明の概要】
【課題を解決するための手段】
【0006】
本文書の一実施形態によると、画像/ビデオコーディング効率を上げる方法および装置が提供される。
【0007】
本文書の一実施形態によると、画像/ビデオコーディングシステムにおいて効率的なインター予測を行う方法および装置が提供される。
【0008】
本文書の一実施形態によると、インター予測において動きベクトル差分に関する情報をシグナリングする方法および装置が提供される。
【0009】
本文書の一実施形態によると、現(現在)ブロックに双予測が適用される場合、L0動きベクトル差分およびL1動きベクトル差分に関する情報をシグナリングする方法および装置が提供される。
【0010】
本文書の実施形態によると、SMVDフラグをシグナリングする方法および装置が提供される。
【0011】
本文書の一実施形態によると、SMVDフラグに基づいてL1動きベクトル差分を導出する方法および装置が提供される。
【0012】
本文書の一実施形態によると、参照ピクチャマーキングに基づいてSMVD参照インデックスに関する手順が行われ得る。
【0013】
本文書の一実施形態によると、ショートターム参照ピクチャ(ショートターム参照のために使用されるとマーキングされたピクチャ)を用いてSMVD参照インデックスに関する手順が行われ得る。
【0014】
本文書の一実施形態によると、デコード(復号)(decoding)装置により実行されるビデオ/画像デコード方法が提供される。
【0015】
本文書の一実施形態によると、ビデオ/画像デコードを実行するデコード装置が提供される。
【0016】
本文書の一実施形態によると、エンコード(符号化)(encoding)装置により実行されるビデオ/画像エンコード方法が提供される。
【0017】
本文書の一実施形態によると、ビデオ/画像エンコードを実行するエンコード装置が提供される。
【0018】
本文書の一実施形態によると、本文書の実施形態のうちの少なくとも1つに開示されたビデオ/画像エンコード方法によって生成されたエンコードされたビデオ/画像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体が提供される。
【0019】
本文書の一実施形態によると、デコード装置により本文書の実施形態のうちの少なくとも1つに開示されたビデオ/画像デコード方法を実行するようにするエンコードされた情報またはエンコードされたビデオ/画像情報が記憶されたコンピュータ読み取り可能なデジタル記憶媒体が提供される。
【発明の効果】
【0020】
本文書によると、全般的な画像/ビデオ圧縮効率を上げることができる。
【0021】
本文書によると、動きベクトル差分に関する情報を効率的にシグナリングすることができる。
【0022】
本文書によると、現ブロックに双予測が適用される場合、L1動きベクトル差分を効率的に導出することができる。
【0023】
本文書によると、L1動きベクトル差分を導出するのに利用される情報を効率的にシグナリングしてコーディングシステムの複雑度を減らすことができる。
【0024】
本文書の実施形態によると、SMVDのための参照ピクチャインデックスの導出のために、ショートターム参照ピクチャを用いることにより効率的なインター予測が行われ得る。
【0025】
本文書の具体的な一例を介して得ることができる効果は、以上で羅列された効果に制限されない。例えば、関連する技術分野の通常の知識を有する者が(a person having ordinary skill in the related art)本文書から理解し、または誘導できる多様な技術的効果が存在することができる。それによって、本文書の具体的な効果は、本文書に明示的に記載されたものに制限されずに、本文書の技術的特徴から理解され、または誘導されることができる多様な効果を含むことができる。
【図面の簡単な説明】
【0026】
図1】本文書の実施形態に適用されることができるビデオ/画像コーディングシステムの例を概略的に示す図である。
図2】本文書の実施形態に適用されることができるビデオ/画像エンコード装置の構成を概略的に説明する図である。
図3】本文書の実施形態に適用されることができるビデオ/画像デコード装置の構成を概略的に説明する図である。
図4】インター予測ベースのビデオ/画像エンコード方法の例を示す図である。
図5】インター予測ベースのビデオ/画像デコード方法の例を示す図である。
図6】インター予測手順を例示的に示す図である。
図7】本文書に係るMVP候補リストを構成する方法を概略的に示す図である。
図8】本文書の一実施形態に係るSMVDを説明する図である。
図9】インター予測において動きベクトルを導出する方法を説明する図である。
図10】本文書の一実施形態に係るMMVDのMVD導出(誘導)過程(処理、プロセス)(process)を示す図である。
図11】本文書の他の実施形態に係るMMVDのMVD導出過程を示す図である。
図12】本文書の他の実施形態に係るMMVDのMVD導出過程を示す図である。
図13】本文書の一実施形態に係るMMVDのMVD導出過程を示す図である。
図14】本文書の一実施形態に係るMMVDのMVD導出過程を示す図である。
図15】本文書の一実施形態によって、SMVDを説明する図である。
図16】本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。
図17】本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。
図18】本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。
図19】本文書の一実施形態に係るビデオ/画像エンコード方法および関連のコンポーネントの一例を概略的に示す図である。
図20】本文書の一実施形態に係るビデオ/画像エンコード方法および関連のコンポーネントの一例を概略的に示す図である。
図21】本文書の一実施形態に係る画像/ビデオデコード方法および関連のコンポーネントの一例を概略的に示す図である。
図22】本文書の一実施形態に係る画像/ビデオデコード方法および関連のコンポーネントの一例を概略的に示す図である。
図23】本文書で開示された実施形態が適用されることができるコンテンツストリーミングシステムの例を示す図である。
【発明を実施するための形態】
【0027】
本文書の開示は、様々な変更を加えることができ、様々な実施形態を有することができるが、特定の実施形態を図面に例示し、詳細に説明する。しかしながら、これは、本開示を特定の実施形態に限定しようとするわけではない。本文書で使用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書における実施形態の技術的思想を限定しようとする意図に使用されるものではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本文書において、「含む」または「有する」などの用語は、文書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つもしくは複数の異なる特徴や、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在もしくは付加の可能性を予め排除しないものと理解されるべきである。
【0028】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立して示すものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されることを意味するのではない。例えば、各構成のうち、2つ以上の構成を合わせて1つの構成をなすこともあり、1つの構成が複数の構成に分けられることもある。各構成が統合および/または分離された実施形態も、本文書の開示範囲に含まれる。
【0029】
以下、添付図を参照して、本文書の実施形態を説明する。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し得、同じ構成要素に対して重複する説明は省略され得る。
【0030】
図1は、本文書の実施形態が適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
【0031】
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)および第2の装置(受信デバイス)を備えることができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達することができる。
【0032】
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを備えることができる。上記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信器は、エンコード装置に備えられることができる。受信器は、デコード装置に備えられることができる。レンダラは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0033】
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイスおよび/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つまたは複数のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、およびスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成され得るし、この場合、関連データが生成される過程にビデオ/画像キャプチャ過程が代替されることができる。
【0034】
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0035】
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、上記ビットストリームを受信/抽出してデコード装置に伝達することができる。
【0036】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/画像をデコードすることができる。
【0037】
レンダラは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示(ディスプレイ)されることができる。
【0038】
本文書は、ビデオ/画像コーディングに関する。例えば、本文書で開示された方法/実施形態は、VVC(Versatile Video Coding)標準で開示される方法に適用されることができる。また、本文書で開示された方法/実施形態は、EVC(Essential Video Coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of Audio Video coding Standard)または次世代ビデオ/画像コーディング標準(例えば、H.267またはH.268など)で開示される方法に適用されることができる。
【0039】
本文書では、ビデオ/画像コーディングに関する多様な実施形態を提示し、別の言及がない限り、上記実施形態は互いに組み合わせて行うこともある。
【0040】
本文書で、ビデオ(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)
【0041】
一方、1つのピクチャは、2つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の1つまたは複数のスライスの四角領域であり得る(an rectangular region of one or more slices within a picture)。
【0042】
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として、「サンプル(sample)」が使用され得る。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すことができ、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
【0043】
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域および当該領域に関連する情報のうちの少なくとも1つを含むことができる。1つのユニットは、1つのルマブロックおよび2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行とからなるサンプル(または、サンプルアレイ)または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0044】
本文書において、「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)」を意味し得る。
【0045】
本文書で使用されるスラッシュ(/)や休止符(comma)は、「および/または(and/or)」を意味し得る。例えば、「A/B」は、「Aおよび/またはB」を意味し得る。これによって、「A/B」は、「ただA」、「ただB」、または「AおよびB両方」を意味し得る。例えば、「A、B、C」は、「A、BまたはC」を意味し得る。
【0046】
本文書において、「少なくとも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)」と同様に解釈され得る。
【0047】
また、本文書において、「少なくとも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)」を意味し得る。
【0048】
また、本文書で使用される括弧は、「例えば(for example)」を意味し得る。具体的には、「予測(イントラ予測)」と表示された場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えると、本文書の「予測」は、「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであり得る。また、「予測(すなわち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
【0049】
本文書において1つの図面内で個別に説明される技術的特徴は、個別に具現されてもよく、同時に具現されてもよい。
【0050】
図2は、本文書の実施形態が適用されることができるビデオ/画像エンコード装置の構成を概略的に説明する図である。以下、エンコード装置というのは、画像エンコード装置および/またはビデオエンコード装置を含むことができる。
【0051】
図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を内/外部コンポーネントとしてさらに備えられることもできる。
【0052】
画像分割部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)を導く単位であることができる。
【0053】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)などの集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
【0054】
エンコード装置200は、入力画像信号(オリジナル(原本)ブロック、オリジナルサンプルアレイ)から、インター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(residual signal、残差(残余)ブロック、残差サンプルアレイ)を生成することができ、生成された残差信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力画像信号(オリジナルブロック、オリジナルサンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現ブロックという)に対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現ブロックもしくはCU単位で、イントラ予測が適用されるか、またはインター予測が適用されるか、を決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピ符号化部240に伝達することができる。予測に関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0055】
イントラ予測部222は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プラナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
【0056】
インター予測部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)をシグナリングすることにより、現ブロックの動きベクトルを指示することができる。
【0057】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを用いることができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報に基づいて、ピクチャ内のサンプル値をシグナリングすることができる。
【0058】
上記予測部(インター予測部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)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換過程は、正方形の同じサイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
【0059】
量子化部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に含まれることもできる。
【0060】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234および逆変換部235を介して逆量子化および逆変換を適用することにより、残差信号(残差ブロックまたは残差サンプル)を復元できる。加算部155は、復元された残差信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成し得る。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0061】
一方、ピクチャエンコードおよび/または復元過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0062】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャを、メモリ270、具体的には、メモリ270のDPBに記憶することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピ符号化部240に伝達することができる。フィルタリングに関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
【0063】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置とにおける予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0064】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために記憶することができる。メモリ270は、現ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用されるために、インター予測部221に伝達されることができる。メモリ270は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
【0065】
図3は、本文書の実施形態が適用されることができるビデオ/画像デコード装置の構成を概略的に説明する図である。以下、デコード装置というのは、画像デコード装置および/またはビデオデコード装置を含むことができる。
【0066】
図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を内/外部コンポーネントとしてさらに備えられることもできる。
【0067】
ビデオ/画像情報を含むビットストリームが入力されると、デコード装置300は、図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元できる。例えば、デコード装置300は、上記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから、四分木構造、二分木構造、および/または三分木ツリー構造に従って分割されることができる。コーディングユニットから1つまたは複数の変換ユニットが導出され得る。そして、デコード装置300を介してデコードおよび出力された復元画像信号は、再生装置を介して再生されることができる。
【0068】
デコード装置300は、図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信した信号は、エントロピ復号部310を介してデコードされることができる。例えば、エントロピ復号部310は、上記ビットストリームをパージングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出できる。上記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、上記パラメータセットに関する情報および/または上記一般制限情報に基づいてさらにピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報および/またはシンタックス要素は、上記デコード手順を介してデコードされて、上記ビットストリームから取得されることができる。例えば、エントロピ復号部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、残差に関する変換係数の量子化された値を出力できる。より具体的には、CABACエントロピ復号方法は、ビットストリームで各シンタックス要素に該当するビンを受信し、デコード対象のシンタックス要素情報と隣接およびデコード対象ブロックのデコード情報または以前ステップでデコードされたシンボル/ビンの情報とを利用してコンテキスト(文脈)(context)モデルを決定し、決定されたコンテキストモデルによってビン(bin)の発生確率を予測してビンの算術デコード(arithmetic decoding)を行い、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピ復号方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのためにデコードされたシンボル/ビンの情報を利用してコンテキストモデルをアップデートすることができる。エントロピ復号部310でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部332およびイントラ予測部331)に提供され、エントロピ復号部310でエントロピ復号が行われた残差値、すなわち、量子化された変換係数および関連パラメータ情報は、残差処理部320に入力されることができる。残差処理部320は、残差信号(残差ブロック、残差サンプル、残差サンプルアレイ)を導出できる。また、エントロピ復号部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)が、デコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピ復号部310の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、上記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)およびサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。上記情報デコーダは、上記エントロピ復号部310を備えることができ、上記サンプルデコーダは、上記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、およびイントラ予測部331のうちの少なくとも1つを備えることができる。
【0069】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、上記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
【0070】
逆変換部322では、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を取得する。
【0071】
予測部は、現ブロックに対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピ復号部310から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるか、またはインター予測が適用されるか、を決定することができ、具体的なイントラ/インター予測モードを決定できる。
【0072】
予測部330は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報が上記ビデオ/画像情報に含まれてシグナリングされることができる。
【0073】
イントラ予測部331は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
【0074】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、BI予測など)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が行われ得るし、上記予測に関する情報は、上記現ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0075】
加算部340は、取得された残差信号を予測部(インター予測部332および/またはイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0076】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または次のピクチャのインター予測のために使用されることもできる。
【0077】
一方、ピクチャデコード過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0078】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャを、メモリ360、具体的には、メモリ360のDPBに送信することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0079】
メモリ360のDPBに記憶された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶できる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用されるために、インター予測部260に伝達されることができる。メモリ360は、現ピクチャ内の復元されたブロックの復元サンプルを記憶でき、イントラ予測部331に伝達することができる。
【0080】
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、およびイントラ予測部222で説明された実施形態などは、各々、デコード装置300のフィルタリング部350、インター予測部332、およびイントラ予測部331にも同一または対応するように適用されることができる。
【0081】
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、上記予測されたブロックは、空間領域(ドメイン)(または、ピクセル領域)における予測サンプルを含む。上記予測されたブロックは、エンコード装置およびデコード装置で同じく導出され、上記エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でない、上記オリジナルブロックと上記予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることで、画像コーディング効率を上げることができる。デコード装置は、上記残差情報に基づいて残差サンプルを含む残差ブロックを導出し、上記残差ブロックと上記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0082】
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、上記オリジナルブロックと上記予測されたブロックとの間の残差ブロックを導出し、上記残差ブロックに含まれている残差サンプル(残差サンプルアレイ)に変換手順を実行して変換係数を導出し、上記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングできる。ここで、上記残差情報は、上記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、上記残差情報に基づいて逆量子化/逆変換の手順を実行して残差サンプル(または、残差ブロック)を導出することができる。デコード装置は、予測されたブロックと上記残差ブロックとに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0083】
本文書において、量子化/逆量子化および/または変換/逆変換のうちの少なくとも1つは、省略されることができる。上記量子化/逆量子化が省略される場合、上記量子化された変換係数は、変換係数と呼ばれることができる。上記変換/逆変換が省略される場合、上記変換係数は、係数もしくは残差係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
【0084】
本文書において、量子化された変換係数および変換係数は、各々、変換係数およびスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、残差情報は、変換係数(1つまたは複数(ら))に関する情報を含むことができ、上記変換係数(1つまたは複数)に関する情報は、残差コーディングシンタックスを介してシグナリングされることができる。上記残差情報(または、上記変換係数(1つまたは複数)に関する情報)に基づいて変換係数が導出されることができ、上記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。上記スケーリングされた変換係数に対する逆変換(変換)に基づいて残差サンプルが導出されることができる。これは、本文書の他の部分でも同様に適用/表現されることができる。
【0085】
イントラ予測は、現ブロックが属するピクチャ(以下、現ピクチャという)内の参照サンプルに基づいて、現ブロックに対する予測サンプルを生成する予測を示すことができる。現ブロックにイントラ予測が適用される場合、現ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。上記現ブロックの隣接参照サンプルは、大きさnW×nHの現ブロックの左側(left)境界に隣接するサンプルおよび左下側(bottom-left)に隣接する合計2×nH個のサンプル、現ブロックの上側(top)境界に隣接するサンプルおよび右上側(top-right)に隣接する合計2×nW個のサンプルならびに現ブロックの左上側(top-left)に隣接する1個のサンプルを含むことができる。あるいは、上記現ブロックの隣接参照サンプルは、複数列の上側隣接サンプルおよび複数行の左側隣接サンプルを含むこともできる。また、上記現ブロックの隣接参照サンプルは、大きさnW×nHの現ブロックの右側(right)境界に隣接する合計nH個のサンプル、現ブロックの下側(bottom)境界に隣接する合計nW個のサンプルおよび現ブロックの右下側(bottom-right)に隣接する1個のサンプルを含むこともできる。
【0086】
ただし、現ブロックの隣接参照サンプルのうちの一部は、まだデコードされない、または利用可能でない場合がある。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して予測に使用する隣接参照サンプルを構成することができる。あるいは、利用可能なサンプルの補間(interpolation)を介して予測に使用する隣接参照サンプルを構成することができる。
【0087】
隣接参照サンプルが導出された場合、(i)現ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを導出(誘導)することができ、(ii)現ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて上記予測サンプルを導出することもできる。(i)の場合は、非方向性(non-directional)モードまたは非角度(non-angular)モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれることができる。
【0088】
また、上記隣接参照サンプルのうち、上記現ブロックの予測サンプルを基準にして、上記現ブロックのイントラ予測モードの予測方向に位置する第1の隣接サンプルと上記予測方向の反対方向に位置する第2の隣接サンプルとの補間を介して上記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(Linear Interpolation Intra Prediction、LIP)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。
【0089】
また、フィルタリングされた隣接参照サンプルに基づいて上記現ブロックの一時予測サンプルを導出し、上記既存の隣接参照サンプル、すなわち、フィルタリングされない隣接参照サンプルのうち、上記イントラ予測モードによって導出された少なくとも1つの参照サンプルと上記一時(臨時)予測サンプルとを加重和(weighted sum)して上記現ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position Dependent Intra Prediction)と呼ばれることができる。
【0090】
また、現ブロックの隣接多重参照サンプルラインの中から最も予測精度(正確度)が高い参照サンプルラインを選択して、該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、このときに使われた参照サンプルラインをデコード装置に指示(シグナリング)する方法でイントラ予測符号化を実行することができる。前述した場合は、多重参照ライン(Multi-Reference Line)イントラ予測またはMRLベースのイントラ予測と呼ばれることができる。
【0091】
また、現ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、上記サブパーティション単位で隣接参照サンプルを導出して利用できる。すなわち、この場合、現ブロックに対するイントラ予測モードが上記サブパーティションに同じく適用され、上記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、ISP(Intra Sub-Partitions)ベースのイントラ予測と呼ばれることができる。
【0092】
前述したイントラ予測方法は、イントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。上記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、多様な用語で呼ばれることができる。例えば、上記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、ISPのうちの少なくとも1つを含むことができる。上記LIP、PDPC、MRL、ISPなどの特定イントラ予測タイプを除外した一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、上記のような特定イントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
【0093】
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
【0094】
イントラ予測が適用される場合、隣接ブロックのイントラ予測モードを利用して現ブロックに適用されるイントラ予測モードが決定されることができる。例えば、デコード装置は、現ブロックの隣接ブロック(例えば、左側および/または上側隣接ブロック)のイントラ予測モードおよび追加的な候補モードに基づいて導出されたMPM(Most Probable Mode)リスト内のMPM候補のうちの1つを、受信したMPMインデックスに基づいて選択でき、または、上記MPM候補(および平面モード)に含まれない残りのイントラ予測モードのうちの1つを、残りの(リメイニング)イントラ予測モード情報に基づいて選択できる。上記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)をシグナリングして平面モードであるかどうかを先に確認するためである。
【0095】
例えば、現ブロックに適用されるイントラ予測モードが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は、シグナリングされない。
【0096】
すなわち、一般的に画像に対するブロック分割になると、コーディングしようとする現ブロックと隣接(neighboring)ブロックとは、類似する画像特性を有するようになる。したがって、現ブロックと隣接ブロックとは、互いに同じまたは類似するイントラ予測モードを有する確率が高い。したがって、エンコーダは、現ブロックのイントラ予測モードをエンコードするために、隣接ブロックのイントラ予測モードを利用することができる。
【0097】
例えば、エンコーダ/デコーダは、現ブロックに対するMPM(Most Probable Modes)リストを構成することができる。上記MPMリストは、MPM候補リストと示すこともできる。ここで、MPMとは、イントラ予測モードコーディング時、現ブロックと隣接ブロックとの類似性を考慮してコーディング効率を向上させるために利用されるモードを意味することができる。前述したように、MPMリストは、平面モードを含んで構成されることもでき、または、平面モードを除外して構成されることもできる。例えば、MPMリストが平面モードを含む場合、MPMリストの候補の個数は6個である。そして、MPMリストが平面モードを含まない場合、MPMリストの候補の個数は5個である。
【0098】
エンコーダ/デコーダは、5個または6個のMPMを含むMPMリストを構成することができる。
【0099】
MPMリストを構成するために、デフォルトイントラモード(Default intra modes)、隣接イントラモード(Neighbour intra modes)、および導出されたイントラモード(Derived intra modes)の3つの種類のモードが考慮されることができる。
【0100】
上記隣接イントラモードのために、2つの隣接ブロック、すなわち、左側隣接ブロックおよび上側隣接ブロックが考慮されることができる。
【0101】
前述したように、MPMリストが平面モードを含まないように構成される場合、上記リストから平面(planar)モードが除外され、上記MPMリスト候補の個数は、5個に設定されることができる。
【0102】
また、イントラ予測モードのうち、非方向性モード(または、非角度モード)は、現ブロックの隣接(neighboring)参照サンプルの平均(average)ベースのDCモードまたは補間(interpolation)ベースの平面(planar)モードを含むことができる。
【0103】
インター予測が適用される場合、エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、または動き情報)に依存する方法で導出される予測を示すことができる。現ブロックにインター予測が適用される場合、参照ピクチャのインデックスの指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報をブロック、サブブロックまたはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャのインデックスを含むことができる。上記動き情報は、インター予測タイプ(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)が、シグナリングされることができる。この場合、上記動きベクトル予測子と動きベクトル差分との和を用いて、上記現ブロックの動きベクトルを導出することができる。
【0104】
上記動き情報は、インター予測タイプ(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)に対応し得る。
【0105】
インター予測に基づくビデオ/画像エンコード手順は、概略的に、例えば以下を含む。
【0106】
図4は、インター予測ベースのビデオ/画像エンコード方法の例を示す。
【0107】
エンコード装置は、現ブロックに対するインター予測を行う(S400)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、上記ブロックの予測サンプルを生成する。ここで、インター予測モード決定、動き情報導出および予測サンプル生成の手順は、同時に行われてもよく、ある1つの手順が他の手順より先に行われてもよい。例えば、エンコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部において上記現ブロックに対する予測モードを決定し、動き情報導出部において上記現ブロックの動き情報を導出し、予測サンプル導出部において上記現ブロックの予測サンプルを導出する。例えば、エンコード装置のインター予測部は、動き推定(motion estimation)により参照ピクチャの一定領域(サーチ領域)内において上記現ブロックと類似したブロックをサーチし、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出する。これに基づいて上記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、上記参照ブロックと上記現ブロックとの位置差に基づいて動きベクトルを導出することができる。エンコード装置は、様々な予測モードのうち、上記現ブロックに対して適用されるモードを決定する。エンコード装置は、上記様々な予測モードに対するRD costを比較し、上記現ブロックに対する最適な予測モードを決定することができる。
【0108】
例えば、エンコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補が指す参照ブロックのうち、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。この場合、上記導出された参照ブロックに関連するマージ候補が選択され、上記選択されたマージ候補を指すマージインデックス情報が生成されてデコード装置にシグナリングされる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報が導出されることができる。
【0109】
他の例として、エンコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうち、選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。この場合、例えば、前述の動き推定により導出された参照ブロックを指す動きベクトルが上記現ブロックの動きベクトルとして利用されることができ、上記mvp候補のうち、上記現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が上記選択されたmvp候補となり得る。上記現ブロックの動きベクトルから上記mvpを引いた差分であるMVD(Motion Vector Difference)が導出されることができる。その場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、上記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成され、別途に上記デコード装置にシグナリングされる。
【0110】
エンコード装置は、上記予測サンプルに基づいて残差(レジデュアル)サンプルを導出する(S410)。エンコード装置は、上記現ブロックのオリジナルサンプルと上記予測サンプルとを比較することにより、上記残差サンプルを導出することができる。
【0111】
エンコード装置は、予測情報や残差情報を含む画像情報をエンコードする(S420)。エンコード装置は、エンコードされた画像情報をビットストリーム形態で出力する。上記予測情報は、上記予測手順に関連する情報であり、予測モード情報(例えは、skip flag、merge flagまたはmode indexなど)および動き情報に関する情報を含む。上記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge index、mvp flagまたはmvp index)を含む。また、上記動き情報に関する情報は、前述のMVDに関する情報および/または参照ピクチャインデックス情報を含む。また、上記動き情報に関する情報は、L0予測、L1予測、または双(bi)予測が適用されるか否かを示す情報を含む(The information on the motion information may include information indicating whether L0 prediction, L1 prediction, or bi prediction is applied)。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含む。
【0112】
出力されたビットストリームは、(デジタル)記憶媒体に記憶されてデコード装置に伝達されてもよく、また、ネットワークを介してデコード装置に伝達されてもよい。
【0113】
一方、前述のように、エンコード装置は、上記参照サンプルおよび上記残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成する。これは、デコード装置で行われるのと同一の予測結果をエンコード装置から導出するためであり、これにより、コーディング効率を高めることができるからである。したがって、エンコード装置は、復元ピクチャ(または、復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用することができる。上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは前述の通りである。
【0114】
インター予測に基づくビデオ/画像デコード手順は、概略的に、例えば以下を含む。
【0115】
図5は、インター予測ベースのビデオ/画像デコード方法の例を示す。
【0116】
図5に示すように、デコード装置は、上記エンコード装置で行われた動作と対応する動作を行う。デコード装置は、受信した予測情報に基づいて現ブロックで予測を行い、予測サンプルを導出することができる。
【0117】
具体的には、デコード装置は、受信した予測情報に基づいて上記現ブロックに対する予測モードを決定する(S500)。デコード装置は、上記予測情報内の予測モード情報に基づいて上記現ブロックにどのインター予測モードが適用されるかを決定することができる。
【0118】
例えば、上記merge flagに基づいて上記現ブロックに上記マージモードが適用されるか否か、または、(A)MVPモードが決定されるか否かを決定することができる。あるいは、上記mode indexに基づいて様々なインター予測モード候補のいずれか1つを選択することができる。上記インター予測モード候補は、スキップモード、マージモードおよび/または(A)MVPモードを含み、または、後述する様々なインター予測モードを含む。
【0119】
デコード装置は、上記決定されたインター予測モードに基づいて上記現ブロックの動き情報を導出する(S510)。例えば、デコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれるマージ候補のいずれか1つのマージ候補を選択する。上記選択は、前述の選択情報(merge index)に基づいて行われる。上記選択されたマージ候補の動き情報を利用して上記現ブロックの動き情報を導出することができる。上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として利用されることができる。
【0120】
他の例として、デコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述の(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれるmvp(motion vector predictor)候補のうちの選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。上記選択は、前述の選択情報(mvp flagまたはmvp index)に基づいて行われる。この場合、上記MVDに関する情報に基づいて上記現ブロックのMVDを導出することができ、上記現ブロックのmvpと上記MVDとに基づいて上記現ブロックの動きベクトルを導出することができる。また、上記参照ピクチャインデックス情報に基づいて上記現ブロックの参照ピクチャインデックスを導出することができる。上記現ブロックに関する参照ピクチャリスト内において上記参照ピクチャインデックスが指すピクチャが、上記現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0121】
一方、後述のように候補リストの構成なしで上記現ブロックの動き情報が導出されることができ、この場合、後述の予測モードにおいて開示された手順に従って上記現ブロックの動き情報が導出されることができる。この場合、前述のような候補リスト構成は省略されてもよい。
【0122】
デコード装置は、上記現ブロックの動き情報に基づいて上記現ブロックに対する予測サンプルを生成する(S520)。この場合、上記現ブロックの参照ピクチャインデックスに基づいて上記参照ピクチャを導出し、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルを利用して上記現ブロックの予測サンプルを導出することができる。この場合、後述のように、場合によって、上記現ブロックの予測サンプルのうちの全部または一部に対する予測サンプルフィルタリングの手順がさらに行われることがある。
【0123】
例えば、デコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含み、予測モード決定部で受信した予測モード情報に基づいて上記現ブロックに対する予測モードを決定し、動き情報導出部で受信した動き情報に関する情報に基づいて上記現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部から上記現ブロックの予測サンプルを導出することができる。
【0124】
デコード装置は、受信した残差(レジデュアル)情報に基づいて上記現ブロックに対する残差サンプルを生成する(S530)。デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて上記現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成する(S540)。以後、上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは前述の通りである。
【0125】
図6は、インター予測手順を例示的に示す。
【0126】
図6を参照すると、前述のように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードに応じる動き情報の導出ステップ、導出された動き情報に基づく予測実行(予測サンプル生成)ステップを含む。上記インター予測手順は、前述のように、エンコード装置およびデコード装置において行われる。本文書において、コーディング装置とは、エンコード装置および/またはデコード装置を含む。
【0127】
図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マージ候補と呼ばれてもよい。
【0128】
現ブロックのインター予測モードを指す予測モード情報が、エンコード装置からデコード装置にシグナリングされることができる。上記予測モード情報は、ビットストリームに含まれてデコード装置によって受信されることができる。上記予測モード情報は、多数の候補モードのうちの1つを指示するインデックス情報を含む。あるいは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、上記予測モード情報は、1つまたは複数のフラグを含む。例えば、スキップフラグをシグナリングしてスキップモードが適用されるか否かを指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモードが適用されるか否かを指示し、マージモードが適用されない場合にMVPモードが適用されると指示するか、追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされてもよく、またはマージモードもしくはMVPモードなどに従属的なモードでシグナリングされてもよい。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含む。
【0129】
一方、現ブロックに前述の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シンタックス要素の値によって以下のような予測タイプを示すことができる。
【0130】
<表1>
【表1】
【0131】
前述のように、1つのピクチャは、1つまたは複数のスライスを含む。スライスは、I(Intra)スライス、P(Predictive)スライスおよびB(Bi-Predictive)スライスを含むスライスタイプのうちの1つのタイプを有することができる。上記スライスタイプは、スライスタイプの情報に基づいて指示される。Iスライス内のブロックに対しては、予測のためにインター予測は使われずにイントラ予測のみが使用される。もちろん、この場合にも予測なしでオリジナルサンプル値をコーディングしてシグナリングすることもできる。Pスライス内のブロックに対してはイントラ予測またはインター予測が使用され、インター予測が使用される場合は、単(uni)予測のみが使用されることができる。一方、Bスライス内のブロックに対してはイントラ予測またはインター予測が使用され、インター予測が使用される場合は、最大双(bi)予測まで使用されることができる。
【0132】
L0およびL1は、現ピクチャより以前にエンコード/デコードされた参照ピクチャを含む。例えば、L0は、POC順序上、現ピクチャより以前および/または以後の参照ピクチャを含み、L1は、POC順序上、現ピクチャより以後および/または以前の参照ピクチャを含む。この場合、L0には、POC順序上、現ピクチャより以前の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられ、L1には、POC順序上、現ピクチャより以後の参照ピクチャに相対的にさらに低い参照ピクチャインデックスが割り当てられる。Bスライスの場合、双予測が適用され、この場合にも単方向双予測が適用されてもよく、または双方向双予測が適用されてもよい。双方向双予測は、真(true)双予測とも呼ばれる。
【0133】
コーディング装置は、上記現ブロックに対する動き情報を導出する(S610)。上記動き情報の導出を上記インター予測モードに基づいて導出することができる。
【0134】
コーディング装置は、現ブロックの動き情報を利用してインター予測を行うことができる。エンコード装置は、動き推定(motion estimation)手順を介して現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを利用して相関性の高い類似した参照ブロックを、参照ピクチャ内の決められた探索(サーチ)範囲内において端数(分数)(fractional)ピクセル単位で探索し、これにより動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または、現ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSAD(Sum of Absolute Differences)に基づいて計算されることができる。この場合、探索領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて様々な方法によってデコード装置にシグナリングされる。
【0135】
コーディング装置は、上記現ブロックに対する動き情報に基づいてインター予測を行う(S620)。コーディング装置は、上記動き情報に基づいて上記現ブロックに対する予測サンプル(1つまたは複数)を導出することができる。上記予測サンプルを含む現ブロックは、予測されたブロックと呼ばれてもよい。
【0136】
マージモード(merge mode)が適用される場合、現予測ブロックの動き情報が直接送信されることなく、周辺予測ブロックの動き情報を利用して上記現予測ブロックの動き情報を導出する。したがって、マージモードを利用したことを示すフラグ情報および周辺のどの予測ブロックを利用したかを示すマージインデックスを送信することにより、現予測ブロックの動き情報を指示することができる。上記マージモードは、regular merge modeと呼ばれてもよい。
【0137】
エンコーダは、マージモードを行うために、現予測ブロックの動き情報を導出するために用いられるマージ候補ブロック(merge candidate block)をサーチしなければならない。例えば、上記マージ候補ブロックは、最大5個まで利用されることができるが、本文書の実施形態はこれに限定されない。そして、上記マージ候補ブロックの最大個数は、スライスヘッダまたはタイルグループヘッダにおいて送信される。上記マージ候補ブロックを見つけた後、エンコーダは、マージ候補リストを生成し、これらのうちの最小コストを有するマージ候補ブロックを最終マージ候補ブロックとして選択することができる。
【0138】
上記マージ候補リストは、例えば、5つのマージ候補ブロックを利用することができる。例えば、4つの空間マージ候補(spatial merge candidate)と1つの時間マージ候補(temporal merge candidate)とを利用することができる。以下、上記空間マージ候補または後述する空間MVP候補は、SMVPと呼ばれてもよく、上記時間マージ候補または後述する時間MVP候補は、TMVPと呼ばれてもよい。
【0139】
以下、マージ候補リストを構成する方法を説明する。
【0140】
コーディング装置(エンコーダ/デコーダ)は、現ブロックの空間周辺ブロックを探索して導出された空間マージ候補をマージ候補リストに挿入する。例えば、上記空間周辺ブロックは、上記現ブロックの左下側コーナ周辺ブロック、左側周辺ブロック、右上側コーナ周辺ブロック、上側周辺ブロック、左上側コーナ周辺ブロックを含む。ただし、これは例示であり、前述の空間周辺ブロック以外にも右側周辺ブロック、下側周辺ブロック、右下側周辺ブロックなどの追加的な周辺ブロックが、さらに上記空間周辺ブロックとして使用されることができる。コーディング装置は、上記空間周辺ブロックを優先順位に基づいて探索して使用可能な(可用の)ブロックを検出し、検出されたブロックの動き情報を上記空間マージ候補として導出することができる。
【0141】
コーディング装置は、上記現ブロックの時間周辺ブロックを探索して導出された時間マージ候補を上記マージ候補リストに挿入する。上記時間周辺ブロックは、上記現ブロックが位置する現ピクチャとは異なるピクチャである参照ピクチャ上に位置し得る。上記時間周辺ブロックが位置する参照ピクチャは、コロケーテッド(コロケート)(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))に位置する予測ブロックの動き情報が上記時間マージ候補のために使用される。
【0142】
コーディング装置は、現マージ候補数(現在マージ候補の個数)が最大マージ候補数(最大マージ候補の個数)より小さいか否かを確認できる。上記最大マージ候補数は、予め定義されるかエンコーダからデコーダにシグナリングされることができる。例えば、エンコーダは、上記最大マージ候補数に関する情報を生成し、エンコードしてビットストリーム形態で上記デコーダに伝達する。上記最大マージ候補数が満たされ(充填され)ると、以後の候補追加過程は行われなくてもよい。
【0143】
上記確認の結果、上記現マージ候補数が上記最大マージ候補数より小さい場合、コーディング装置は、追加マージ候補を上記マージ候補リストに挿入する。
【0144】
上記確認の結果、上記現マージ候補数が上記最大マージ候補数より小さくない場合、コーディング装置は、上記マージ候補リストの構成を終了する。この場合、エンコーダは、RD(Rate-Distortion)コストに基づいて上記マージ候補リストを構成するマージ候補のうちの最適なマージ候補を選択することができ、上記選択されたマージ候補を指す選択情報(例えば、merge index)をデコーダにシグナリングすることができる。デコーダは、上記マージ候補リストおよび上記選択情報に基づいて上記最適マージ候補を選択する。
【0145】
上記選択されたマージ候補の動き情報が上記現ブロックの動き情報として使用されることができ、上記現ブロックの動き情報に基づいて上記現ブロックの予測サンプルを導出できることは、前述の通りである。エンコーダは、上記予測サンプルに基づいて上記現ブロックの残差サンプルを導出し、上記残差サンプルに関する残差情報をデコーダにシグナリングすることができる。デコーダは、上記残差情報に基づいて導出された残差サンプルおよび上記予測サンプルに基づいて復元サンプルを生成し、これに基づいて復元ピクチャを生成できることは、前述の通りである。
【0146】
スキップモード(skip mode)が適用される場合、前述のマージモードが適用される場合と同一の方法で上記現ブロックの動き情報を導出することができる。ただし、スキップモードが適用される場合、該当ブロックに対する残差信号が省略され、したがって、予測サンプルが直ちに復元サンプルとして利用されることができる。
【0147】
MVPモードが適用される場合、復元された空間周辺ブロックの動きベクトルおよび/または時間周辺ブロック(または、Colブロック)に対応する動きベクトルを用いて、動きベクトル予測子(motion vector predictor、mvp)候補リストが生成される。すなわち、復元された空間周辺ブロックの動きベクトルおよび/または時間周辺ブロックに対応する動きベクトルは、動きベクトル予測子候補として使用されることができる。双予測が適用される場合、L0動き情報導出のためのmvp候補リストとL1動き情報導出のためのmvp候補リストとが個別に生成されて利用されることができる。前述の予測情報(または、予測に関する情報)は、上記リストに含まれる動きベクトル予測子候補のうちの選択された最適な動きベクトル予測子候補を指示する選択情報(例えば、MVPフラグまたはMVPインデックス)を含む。ここで、予測部は、上記選択情報を利用して、動きベクトル候補リストに含まれる動きベクトル予測子候補のうち、現ブロックの動きベクトル予測子を選択することができる。エンコード装置の予測部は、現ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求めることができ、これをエンコードしてビットストリーム形態で出力する。すなわち、MVDは、現ブロックの動きベクトルから上記動きベクトル予測子を引いた値として求められる。ここで、デコード装置の予測部は、上記予測に関する情報に含まれる動きベクトル差分を取得し、上記動きベクトル差分と上記動きベクトル予測子との加算により、現ブロックの上記動きベクトルを導出することができる。デコード装置の予測部は、参照ピクチャを指示する参照ピクチャインデックスなどを上記予測に関する情報から取得または導出することができる。
【0148】
図7は、動きベクトル予測子候補リストを構成する方法を示すフローチャート(順序図)である。
【0149】
図7に示すように、一実施形態では、まず動きベクトル予測のための空間候補ブロックを探索して予測候補リストに挿入する(S700)。以降、一実施形態では、空間候補ブロックの個数が2より小さいか否かを判断する(S710)。例えば、一実施形態では、空間候補ブロックの個数が2より小さい場合、時間候補ブロックを探索して予測候補リストに追加挿し(S720)、時間候補ブロックが使用不可である場合は、ゼロ動きベクトルを使用する。すなわち、ゼロ動きベクトルを予測候補リストに追加挿入することができる(S730)。以降、一実施形態では、予備候補リストの構成を終了する(S740)。あるいは、一実施形態では、空間候補ブロックの個数が2より小さくない場合、予備候補リストの構成を終了する(S740)。ここで、予備候補リストは、MVP候補リストを示す。
【0150】
一方、MVPモードが適用される場合、参照ピクチャインデックスが明示的にシグナリングされる。この場合、L0予測のための参照ピクチャインデックス(refidxL0)とL1予測のための参照ピクチャインデックス(refidxL1)とに区分されてシグナリングされることができる。例えば、MVPモードが適用され、双予測(BI prediction)が適用される場合、上記refidxL0に関する情報、およびrefidxL1に関する情報が両方ともシグナリングされることができる。
【0151】
MVPモードが適用される場合、前述のように、エンコード装置から導出されたMVDに関する情報がデコード装置にシグナリングされる。MVDに関する情報は、例えば、MVDの絶対値および符号に対するx、y成分を示す情報を含むことができる。この場合、MVDの絶対値が0より大きいか否か、および1より大きいか否か、MVDの残り(remainder)を示す情報が段階的にシグナリングされることができる。例えば、MVDの絶対値が1より大きいか否かを示す情報は、MVDの絶対値が0より大きいか否かを示すflag情報の値が1である場合に限りシグナリングされることができる。
【0152】
例えば、MVDに関する情報は、以下の表のようなシンタックスで構成されてエンコード装置においてエンコードされてデコード装置にシグナリングされる。
【0153】
<表2>
【表2】
【0154】
例えば、表2においてabs_mvd_greater0_flagシンタックス要素は、差分(MVD)が0より大きいか否かに関する情報を示し、abs_mvd_greater1_flagシンタックス要素は、差分(MVD)が1より大きいか否かに関する情報を示す。また、abs_mvd_minus2シンタックス要素は、差分(MVD)に-2をした値に関する情報を示し、mvd_sign_flagシンタックス要素は、差分(MVD)の符号に関する情報を示す。また、表2において各シンタックス要素の[0]は、L0に関する情報であることを示し、[1]は、L1に関する情報であることを示す。
【0155】
例えば、MVD[compIdx]は、abs_mvd_greater0_flag[compIdx]*(abs_mvd_minus2[compIdx]+2)*(1-2*mvd_sign_flag[compIdx])に基づいて導出される。ここで、compIdx(または、cpIdx)は、各成分のインデックスを示し、0または1の値を有することができる。compIdx0は、x成分を示し、compIdx1は、y成分を示す。ただし、これは例示であり、x、y座標系ではなく、他の座標系を使って各成分別に値を表すこともできる。
【0156】
一方、L0予測のためのMVD(MVD L0)とL1予測のためのMVD(MVD L1)とを区分してシグナリングされてもよく、上記MVDに関する情報は、MVD L0に関する情報および/またはMVD L1に関する情報を含んでもよい。例えば、現ブロックにMVPモードが適用され、BI予測が適用される場合、上記MVD L0に関する情報およびMVD L1に関する情報が両方ともシグナリングされる。
【0157】
図8は、SMVD(Symmetric Motion Vector Differences)を説明する図である。
【0158】
BI予測が適用される場合、コーディング効率を考慮してSMVD(Symmetric MVD)が使用されてもよい。この場合は、動き情報のうちの一部のシグナリングが省略されてもよい。例えば、SMVDが現ブロックに適用される場合、refidxL0に関する情報、refidxL1に関する情報、MVD L1に関する情報がエンコード装置からデコード装置にシグナリングされることなく、内部的に導出されることができる。例えば、現ブロックにMVPモードおよびBI予測が適用される場合、SMVDの適用が可能か否かを指示するフラグ情報(例えば、SMVDフラグ情報またはsym_mvd_flagシンタックス要素)がシグナリングされ、上記フラグ情報の値が1である場合、デコード装置は、上記現ブロックにSMVDが適用されると判断する。
【0159】
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として導出されることができる。
【0160】
図8に示すように、参照ピクチャリスト0、参照ピクチャリスト1、およびMVD L0、MVD L1が示されている。ここで、MVD L1は、MVD L0と対称的である。
【0161】
MVD L1は、マイナス(-)MVD L0として導出されることができる。例えば、現ブロックに対する最終(改善または修正された)動き情報(動きベクトル:MV)は、次の数式に基づいて導出される。
【0162】
<数式1>
【数1】
【0163】
数式1において、mvx0およびmvy0は、L0動き情報またはL0予測のための動きベクトルのx成分およびy成分を示し、mvx1およびmvy1は、L1動き情報またはL1予測のための動きベクトルのx成分およびy成分を示す。また、mvpx0およびmvpy0は、L0予測のための動きベクトル予測子のx成分およびy成分を示し、mvpx1およびmvpy1は、L1予測のための動きベクトル予測子のx成分およびy成分を示す。また、mvdx0およびmvdy0は、L0予測のための動きベクトル差分のx成分およびy成分を示す。
【0164】
一方、MMVDモードは、マージモードにMVD(Motion Vector Difference)を適用する方法として、現ブロック(すなわち、現CU)の予測サンプルの生成に直接使われる動き情報が内在的に(implicitly)導出されることができる。例えば、現ブロック(すなわち、現CU)にMMVDを使用するか否かを示すMMVDフラグ(例えば、mmvd_flag)がシグナリングされ、このMMVDフラグに基づいてMMVDが行われることができる。MMVDが現ブロックに適用される場合(例えば、mmvd_flagが1である場合)、MMVDに関する追加情報がシグナリングされることができる。
【0165】
ここで、MMVDに関する追加情報は、マージ候補リスト内の第1候補または第2候補がMVDと共に使用されるか否かを指示するマージ候補フラグ(例えば、mmvd_cand_flag)、動きの大きさ(motion magnitude)を示すための距離インデックス(例えば、mmvd_distance_idx)、動き方向(motion direction)を示すための方向インデックス(mmvd_direction_idx)を含む。
【0166】
MMVDモードでは、マージ候補リスト内の候補のうちの1番目および2番目のエントリに位置する2つの候補(すなわち、第1候補または第2候補)を使用することができ、上記2つの候補(すなわち、第1候補または第2候補)のいずれか1つが、ベースMVとして使用されることができる。例えば、マージ候補フラグ(例えば、mmvd_cand_flag)が、マージ候補リスト内の2つの候補(すなわち、第1候補または第2候補)のいずれか1つを示すためにシグナリングされることができる。
【0167】
また、距離インデックス(例えば、mmvd_distance_idx)は、動きの大きさの情報を示し、開始ポイントから予め定められたオフセット(offset)を指示することができる。上記オフセットは、開始動きベクトルの水平成分または垂直成分に加えられてもよい。距離インデックスと予め定められたオフセットとの関係は、次の表のように示すことができる。
【0168】
<表3>
【表3】
【0169】
上記表3を参照すると、距離インデックス(例えば、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)に置き換えられることができる。
【0170】
また、方向インデックス(例えば、mmvd_direction_idx)は、開始ポイントを基準にMVDの方向を示し、以下の表4に示すように4方向を示す。ここで、MVDの方向は、MVDの符号を示すことができる。方向インデックスとMVD符号との関係は、以下の表のように示される。
【0171】
<表4>
【表4】
【0172】
上記表4を参照すると、方向インデックス(例えば、mmvd_direction_idx)の値によってMVDの符号(例えば、MmvdSign)が定められており、MVDの符号(例えば、MmvdSign)は、L0参照ピクチャおよびL1参照ピクチャに対して導出される。
【0173】
前述のような距離インデックス(例えば、mmvd_distance_idx)および方向インデックス(例えば、mmvd_direction_idx)に基づいて次の数式のようにMVDのオフセットを計算することができる。
【0174】
<数式2>
【数2】
【0175】
<数式3>
【数3】
【0176】
数式2および数式3において、MMVD距離(MmvdDistance[x0][y0])およびMMVD符号(MmvdSign[x0][y0][0]、MmvdSign[x0][y0][1])は、表3および/または表4に基づいて導出される。まとめると、MMVDモードでは、周辺ブロックに基づいて導出されたマージ候補リストのマージ候補子のうち、マージ候補フラグ(例えば、mmvd_cand_flag)により指示されるマージ候補を選択し、上記選択されたマージ候補をベース(base)候補(例えば、MVP)として使用することができる。そして、ベース候補に基づいて距離インデックス(例えば、mmvd_distance_idx)および方向インデックス(例えば、mmvd_direction_idx)を用いて導出されたMVDを加えて、現ブロックの動き情報(すなわち、動きベクトル)を導出することができる。
【0177】
予測モードによって導出された動き情報に基づいて、現ブロックに対する予測されたブロックを導出することができる。上記予測されたブロックは、上記現ブロックの予測サンプル(予測サンプルアレイ)を含む。現在のブロックの動きベクトルが端数サンプル単位を指す場合、補間(interpolation)手順が行われることができ、これにより参照ピクチャ内において端数サンプル単位の参照サンプルに基づいて上記現在のブロックの予測サンプルが導出されることができる。双予測が適用される場合、L0予測(すなわち、参照ピクチャリストL0内の参照ピクチャおよびMVL0を用いた予測)に基づいて導出された予測サンプルとL1予測(すなわち、参照ピクチャリストL1内の参照ピクチャおよびMVL1を用いた予測)に基づいて導出された予測サンプルとの(位相に応じた)加重和または加重平均により導出された予測サンプルが、現在のブロックの予測サンプルとして利用されることができる。双予測が適用される場合、L0予測に利用された参照ピクチャとL1予測に利用された参照ピクチャとが現ピクチャを基準に互いに異なる時間方向に位置する場合(すなわち、双予測でありながら双方向予測に該当する場合)、これを真(true)双予測と呼んでもよい。
【0178】
導出された予測サンプルに基づいて復元サンプルおよび復元ピクチャが生成され、その後、インループフィルタリングなどの手順が実行されることができることは、前述の通りである。
【0179】
前述のように本文書によれば、現ブロックに双予測が適用される場合、加重平均(weighted average)に基づいて予測サンプルを導出することができる。従来、双予測信号(すなわち、双予測サンプル)は、L0予測信号(L0予測サンプル)とL1予測信号(L1予測サンプル)との単純平均により導出されていた。すなわち、双予測サンプルは、L0参照ピクチャおよびMVL0に基づくL0予測サンプルとL1参照ピクチャおよびMVL1に基づくL1予測サンプルとの平均として導出された。しかしながら、本文書によると、双予測が適用される場合、次のように、L0予測信号とL1予測信号との加重平均により双予測信号(双予測サンプル)を導出することができる。
【0180】
前述のMMVDに関連する実施形態において、MMVDのMVD導出過程においてロングターム参照ピクチャを考慮した方法が提案されることができ、これにより、様々なアプリケーションにおいて圧縮効率を維持および増加させることができるようにする。また、本文書の実施形態において提案する方法は、MERGEにおいて使用されるMMVD技術以外に、インターモード(MVPモード)において使用される対称的(Symmetric)MVD技術であるSMVDにおいても同様に適用されることができる。
【0181】
図9は、インター予測において動きベクトルを導出する方法を説明する図である。
【0182】
本文書の一実施形態において、時間動き候補(Temporal motion candidate、temporal merge candidate、またはtemporal mvp candidate)の動きベクトルスケーリング(MV scaling)の過程でロングターム参照ピクチャを考慮したMV導出方法が使われている。時間動き候補は、mvCol(mvLXCol)に対応できる。時間動き候補は、「TMVP」と呼ばれてもよい。
【0183】
次の表は、ロングターム参照ピクチャの定義を説明する。
【0184】
<表5>
【表5】
【0185】
上記表5を参照すると、LongTermRefPic(aPic、aPb、refIdx、LX)が1(真、true)である場合、対応する参照ピクチャは、ロングターム参照のために使われる(used for long-term reference)ものとマーキングされる。例えば、ロングターム参照のために使われるとマーキングされていない参照ピクチャは、ショートターム参照のために使われる(used for short-term reference)ものとマーキングされた参照ピクチャであり得る。他の例において、ロングターム参照のために使用されるものとマーキングされず、使用されていないものとマーキングされていない参照ピクチャは、ショートターム参照のために使用されるものとマーキングされた参照ピクチャであり得る。以下、ロングターム参照のために使用されるものとマーキングされた参照ピクチャは、ロングターム参照ピクチャと称されてもよく、ショートターム参照のために使用されるものとマーキングされた参照ピクチャは、ショートターム参照ピクチャと称されてもよい。
【0186】
次の表は、TMVP(mvLXCol)の導出を説明する。
【0187】
<表6>
【表6】
【0188】
図9および表6を参照すると、現ピクチャが指す参照ピクチャタイプ(例えば、long-term reference picture(LTRP)であるかまたはshort-term refrence picture(STRP)であるかを指す)とコロケーテッドピクチャ(collocated picture)が指すコロケーテッド参照ピクチャ(collocated reference picture)のタイプとが同一でない場合、時間動きベクトル(mvLXCol)は使用されない。すなわち、全てがロングターム参照ピクチャであるか、全てがショートターム参照ピクチャである場合は、colMVを導出し、他のタイプを有する場合は、colMVを導出しない。また、全てがロングターム参照ピクチャである場合と、現ピクチャと現ピクチャの参照ピクチャとのPOC差分がコロケーテッドピクチャとコロケーテッドピクチャの参照ピクチャとの間のPOC差分と同一である場合と、において、スケーリングなしでコロケーテッドの動きベクトルをそのまま使用することができる。ショートターム参照ピクチャであり、POC差分が異なる場合、スケーリングされたコロケーテッドブロックの動きベクトルが使用される。
【0189】
本文書の実施形態において、MERGE/SKIPモードにおいて使用されるMMVDは、1つのコーディングブロックに対して、ベース動きベクトルインデックス(base MV index)、距離インデックス(distance index)、方向インデックス(direction index)を、MVD情報を導出するための情報としてシグナリングする。単方向予測を行う場合、動き情報からMVDを導出し、双方向予測の場合、ミラーリング(mirroring)およびスケーリング方法を用いて対称的なMVD情報を生成する。
【0190】
双方向予測を行う場合、L0またはL1のためのMVD情報は、スケーリングされてL1またはL0のMVDを生成するが、ロングターム参照ピクチャを参照する場合、MVD導出過程における変更が必要である。
【0191】
図10は、本文書の一実施形態に係るMMVDのMVD導出過程を示す。図10に示された方法は、双方向予測が適用されるブロックに対するものであることができる。
【0192】
図10を参照すると、L0参照ピクチャとの距離とL1参照ピクチャとの距離とが同一である場合、導出されたMmvdOffsetをそのままMVDとして使用することができ、POC差分(L0参照ピクチャと現ピクチャとの間のPOC差分とL1参照ピクチャと現ピクチャとの間のPOC差分と)が異なるとき、POC差分とロングターム参照ピクチャであるかまたはショートターム参照ピクチャであるかとによって(according to the POC difference and whether it is a long-term or short-term reference picture)、スケーリングするか単純ミラーリング(すなわち、-1*MmvdOffset)してMVDを導出することができる。
【0193】
一例として、双方向予測が適用されるブロックに対してMMVDを用いて対称的なMVDを導出する方法は、ロングターム参照ピクチャを使用するブロックには適合せず、特に、各方向の参照ピクチャタイプが異なる場合、MMVD使用時の性能向上は期待しにくい。したがって、次の図および実施形態においては、L0とL1との参照ピクチャタイプが異なる場合、MMVDが適用されないように実現される例が紹介される。
【0194】
図11は、本文書の他の実施形態に係るMMVDのMVD導出過程を示す。図11に示された方法は、双方向予測が適用されるブロックに対するものであることができる。
【0195】
図11を参照すると、現ピクチャ(または、現スライス、現ブロック)により参照される参照ピクチャがLTRP(Long-Term Reference Picture)であるかまたはSTRP(Short-Term Reference Picture)であるかによって異なるMVD導出方法が適用される。一例において、図11による実施形態の方法が適用される場合、本実施形態による標準文書の一部分は、次の表のように記述される。
【0196】
<表7>
【表7-1】
【0197】
【表7-2】
【0198】
図12は、本文書の他の実施形態に係るMMVDのMVD導出過程を示す。図12に示された方法は、双方向予測が適用されるブロックに対するものであることができる。
【0199】
図12を参照すると、現ピクチャ(または、現スライス、現ブロック)により参照される参照ピクチャがLTRP(Long-Term Reference Picture)であるかまたはSTRP(Short-Term Reference Picture)であるかによって異なるMVD導出方法が適用される。一例において、図12による実施形態の方法が適用される場合、本実施形態による標準文書の一部分は、次の表のように記述される。
【0200】
<表8>
【表8-1】
【0201】
【表8-2】
【0202】
まとめると、各方向の参照ピクチャタイプが異なる場合にMVDを導出しないMMVDのMVD導出過程が説明されている。
【0203】
本文書による一実施形態において、ロングターム参照ピクチャを参照する全ての場合にMVDが導出されるものではない。すなわち、L0、L1参照ピクチャが1つでもロングターム参照ピクチャであるときは、MVDを0に設定し、ショートターム参照ピクチャを有する場合にのみ、MVDが導出されることができる。以下の図面および表で具体的に説明する。
【0204】
図13は、本文書の一実施形態に係るMMVDのMVD導出過程を示す。図13に示された方法は、双方向予測が適用されるブロックに対するものであることができる。
【0205】
上記図13を参照すると、最優先条件(RefPicL0!=LTRP&&RefPicL1!=STRP)に基づいて現ピクチャ(または、現スライス、現ブロック)がショートターム参照ピクチャのみを参照する場合にMMVDのためのMVDが導出されることができる。一例において、図13による実施形態の方法が適用される場合、本実施形態による標準文書の一部分は、次の表のように記述される。
【0206】
<表9>
【表9-1】
【0207】
【表9-2】
【0208】
本文書による一実施形態において、各方向の参照ピクチャタイプが異なる場合、ショートターム参照ピクチャを有する場合は、MVDを導出し、ロングターム参照ピクチャを有する場合は、MVDが0に導出される。以下の図面および表で具体的に説明する。
【0209】
図14は、本文書の一実施形態に係るMMVDのMVD導出過程を示す。図14に示された方法は、双方向予測が適用されるブロックに対するものであることができる。
【0210】
上記図14を参照すると、各方向の参照ピクチャタイプが異なる場合、現ピクチャから距離の近い参照ピクチャ(ショートターム参照ピクチャ)を参照するとき、MmvdOffsetが適用され、現ピクチャから距離の遠い参照ピクチャ(ロングターム参照ピクチャ)を参照するとき、MVDは、0値を有する。ここで、現ピクチャに近いピクチャは、ショートターム参照ピクチャを有するとみなすことができるが、近いピクチャがロングターム参照ピクチャである場合は、ショートターム参照ピクチャを指すリストの動きベクトルにmmvdOffsetを適用することができる。
【0211】
<表10>
【表10】
【0212】
例えば、上記表10に含まれる4つの段落は、上記図14に含まれるフローチャートの一番下のブロック(内容)を順次置き換えることができる。
【0213】
一例において、図14による実施形態の方法が適用される場合、本実施形態による標準文書の一部分は、次の表のように記述される。
【0214】
<表11>
【表11-1】
【0215】
【表11-2】
【0216】
次の表は、本文書に含まれる実施形態間の比較表を示す。
【0217】
<表12>
【表12】
【0218】
表12を参照すると、図10ないし図14による実施形態において説明されたMMVDのMVD導出のために、参照ピクチャタイプを考慮してオフセットを適用する方法間の比較が示される。表12において、実施形態Aは、既存のMMVDに関するものであり、実施形態Bは、図10ないし図12による実施形態を示し、実施形態Cは、図13による実施形態を示し、実施形態Dは、図14による実施形態を示す。
【0219】
すなわち、図10図11および図12による実施形態においては、両方向の参照ピクチャタイプが同一である場合にのみMVDを導出する方法、図13による実施形態においては、両方向ともショートターム参照ピクチャである場合にのみMVDを導出する方法について記述した。図13による実施形態の場合、単方向予測に対してロングターム参照ピクチャであればMVDを0に設定する。また、図14による実施形態においては、両方向の参照ピクチャタイプが異なる場合、一方向にのみMVDを導出する方法について記述した。このような実施形態間の相違点は、本文書で説明される技術の様々な特徴を示し、上記特徴に基づいて本文書による実施形態が達成しようとする効果が実現されることができることが本明細書の属する技術分野の通常の知識を有する者により理解できる。
【0220】
本文書による実施形態においては、参照ピクチャタイプがロングターム参照ピクチャである場合、別途のプロセスを有する。ロングターム参照ピクチャを含む場合、POC差分(POCDiff)ベースのスケーリングまたはミラーリングは性能向上に影響がないため、ショートターム参照ピクチャを有する方向のMVDは、MmvdOffset値が割り当てられ、ロングターム参照ピクチャを有する方向のMVDは、0値が割り当てられるようにする。一例において、本実施形態が適用される場合、本実施形態による標準文書の一部分は、次の表のように記述される。
【0221】
<表13>
【表13-1】
【0222】
【表13-2】
【0223】
他の例において、上記表13の一部分は、次の表に置き換えることができる。表14を参照すると、POCDiffではなく、参照ピクチャタイプを基準としてOffsetが適用される。
【0224】
<表14>
【表14】
【0225】
さらに他の例において、上記表13の一部分は、次の表に置き換えることができる。表15を参照すると、参照ピクチャタイプを考慮せずに、常に、L0にMmvdOffsetを、L1に-MmvdOffsetを設定することができる。
【0226】
<表15>
【表15】
【0227】
本文書の一実施形態によると、前述のMERGEモードにおいて使用されるMMVDに類似して、インターモードにおけるSMVDが行われることができる。双方向予測を行う場合、対称的MVD導出が可能か否かがエンコード装置からデコード装置にシグナリングされ、関連フラグ(例えば、sym_mvd_flag)が真(または、その値が1)であるとき、第1方向MVD(例えば、MVD L0)のミラーリングにより第2方向MVD(例えば、MVD L1)が導出される。この場合、第1方向MVDに対するスケーリングは行われない場合がある。
【0228】
次の表は、デコードユニットのデコードに関連するシンタックスを示す。
【0229】
<表16>
【表16】
【0230】
<表17>
【表17】
【0231】
上記表16および表17を参照すると、inter_pred_idc==PRED_BIであり、そして、L0およびL1の参照ピクチャが使用可能(available)である場合(例えば、RefIdxSymL0>-1&&RefIdxSymL1>-1)、sym_mvd_flagがシグナリングされる。
【0232】
次の表は、一例によるMMVD参照インデックスのためのデコード手順を示す。
【0233】
<表18>
【表18】
【0234】
表18を参照すると、L0およびL1の参照ピクチャの使用可能性(availability)導出手順が説明される。すなわち、L0参照ピクチャのうちフォワード方向(forward direction)の参照ピクチャが存在する場合、現ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL0に設定し、該当値は、L0の参照インデックスに設定される。また、L1参照ピクチャのうちバックワード方向(backward direction)の参照ピクチャが存在する場合、現ピクチャに最も近い参照ピクチャインデックスをRefIdxSymL1に設定し、該当値は、L1の参照インデックスに設定される。
【0235】
以下の表19は、他の例によるMMVD参照インデックスのためのデコード手順を示す。
【0236】
<表19>
【表19】
【0237】
表19を参照すると、図10図11図12と共に説明された実施形態のようにL0またはL1参照ピクチャタイプが異なる場合、すなわち、ロングターム参照ピクチャとショートターム参照ピクチャとが使用される場合、SMVDを防ぐためにSMVDのための参照インデックス導出以後、L0とL1との参照ピクチャタイプが異なる場合、SMVDを使用しないようにする(表19の一番下の段落参照)。
【0238】
本文書の一実施形態において、マージモードで使用されるMMVDに類似して、インターモードでは、SMVDが適用されることができる。図13とともに説明された実施形態のように、ロングターム参照ピクチャが使用される場合、SMVDを防ぐために以下の表のようにSMVDのための参照インデックス導出の過程でロングターム参照ピクチャを除外することができる。
【0239】
<表20>
【表20】
【0240】
本実施形態の他の例による次の表は、SMVDのための参照ピクチャインデックス導出以後にロングターム参照ピクチャを使用する場合、SMVDを適用しないように処理する例を示す。
【0241】
<表21>
【表21】
【0242】
本文書の一実施形態において、TMVPのcolMV導出過程で現ピクチャの参照ピクチャタイプとコロケーテッドピクチャの参照ピクチャタイプとが異なる場合、動きベクトルMVは0に設定されるが、MMVD、SMVDの場合の導出方法と異なるので、これが統一されるようにする。
【0243】
現ピクチャの参照ピクチャタイプがロングターム参照ピクチャであり、コロケーテッドピクチャの参照ピクチャタイプがロングターム参照ピクチャである場合も、動きベクトルは、コロケーテッド動きベクトル値をそのまま使用しているが、MMVD、SMVDにおいて、この場合は、MVを0に設定する。ここで、TMVPも追加導出なしでMVを0に設定する。
【0244】
また、参照ピクチャタイプが異なっても、現ピクチャとの距離が近いロングターム参照ピクチャが存在し得るので、これを考慮してMVを0に設定する代わりにスケーリングなしでcolMVをMVとして使用することができる。
【0245】
図15は、本文書の一実施形態によってSMVDを説明する図である。
【0246】
SMVDの導出のために、図15のような方法が使用されることができる。すなわち、STRP(ショートターム参照ピクチャ)および/またはLTRP(ロングターム参照ピクチャ)に基づいてSMVDが導出されることができる。ミラーリングされたL0 MVDをL1 MVDに使用する場合に、参照ピクチャのタイプが異なれば、不正確なMVDが導出され得る。これは、距離の比率(参照ピクチャ0と現ピクチャとの間の距離および参照ピクチャ1と現ピクチャとの間の距離)が大きくなり、各方向に対する動きベクトルの相関度が下がるためである。
【0247】
本文書の一実施形態によると、参照ピクチャの使用可能性がチェックされ、そして条件を満たせば、sym_mvd_flagがパージングされ得る。sym_mvd_flagが真であれば、L1のMVD(MVDL1)がミラーリングされた(mirrored)MVDL0(L0のMVD)として導出されることができる。
【0248】
次の表は、本実施形態に係るコーディングユニットシンタックスの一部分を示す。
【0249】
<表22>
【表22】
【0250】
表22に基づいて、本実施形態に係るsym_mvd_flagの導出手順を説明できる。
【0251】
本実施形態では、SMVDのための参照ピクチャインデックス(RefIdxSymLX with X=0,1)が導出されることができる。RefIdxSymL0は、現ピクチャのPOCよりも小さいPOCを有する最も近い参照ピクチャ(のインデックス)を示すことができる。RefIdxSymL1は、現ピクチャのPOCよりも大きいPOCを有する最も近い参照ピクチャ(のインデックス)を示すことができる。
【0252】
次の表は、本実施形態によって、SMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
【0253】
<表23>
【表23】
【0254】
次の表は、実施形態の間の比較結果を示す。表24に含まれる実施形態によって参照ピクチャタイプが考慮されることによって、SMVDにおけるMVDの精度が向上することができる。表24において、MVDは、MVD 0(L0のMVD)を示すことができる。
【0255】
<表24>
【表24】
【0256】
表24を参照すると、実施例Pは、既存のSMVDの導出方法を示す。実施例Qでは、L0およびL1で、混合された参照ピクチャタイプ(例えば、STRP/LTRPまたはLTRP/STRP)が使用される場合にSMVDが制限され得る。実施例Rでは、ロングターム参照ピクチャ(LTRP)を参照する場合にSMVDが制限され得る。
【0257】
次の表は、表24の実施例QによってSMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
【0258】
<表25>
【表25】
【0259】
次の表は、表24の実施例QによってSMVDのための参照ピクチャインデックスを導出する方法を標準文書の形式で記述する。
【0260】
<表26>
【表26】
【0261】
<表27>
【表27】
【0262】
表26および/または表27を参照すると、ロングターム参照ピクチャ(LTRP)を参照する場合にSMVDが制限され得る。例えば、表26を参照すると、参照ピクチャチェック手順(reference picture checking process)でロングターム参照ピクチャが排除されることができる。これによって、他の参照ピクチャ(例えば、ロングターム参照ピクチャではない)がSMVDのために考慮されることができる。表27を参照すると、現ピクチャから最も近い参照ピクチャがロングターム参照ピクチャである場合に、SMVDが実行されないことがある。例えば、参照ピクチャリストにショートターム参照ピクチャが含まれているとしても、現ピクチャから最も近い参照ピクチャがロングターム参照ピクチャである場合には、SMVDが実行されないことがある。
【0263】
本文書の一実施形態に係る一例において、MMVD手順でL0のPOC距離がL1のPOC以上である場合に、L1 MVDがスケーリングされたまたはミラーリングされたL0 MVDとして導出されることができる。MMVD手順でL0のPOC距離がL1のPOCよりも小さい場合に、MMVD手順でL0 MVDがスケーリングされたまたはミラーリングされたL1 MVDとして導出されることができる。
【0264】
図16は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。
【0265】
本文書の一実施形態において、POC差分および/または参照ピクチャタイプを考慮し、MMVDでMVDが導出されることができる。図16を参照すると、currPocDiffLXは、現ピクチャのPOCと参照ピクチャLXのPOCとの間の差を意味することができる。CurrPocDiffL0とcurrPocDiffL1とは、互いに比較されることができ、そして参照ピクチャのタイプがチェックされることができる(“refPicList0!= LTRP”または“refPicList1 != LTRP”)。条件を考慮して、MmvdOffset(mmvd_cand_flag、mmvd_distance_idx、および/またはmmvd_direction_idxを用いて導出される)は、mMvdLXと同じ値、ミラーリングされた値またはスケーリングされた値として割り当てられることができる。
【0266】
次の表は、本実施形態に係る標準文書の一部分を示す。
【0267】
<表28>
【表28-1】
【0268】
【表28-2】
【0269】
現ピクチャが一つまたは複数のロングターム参照ピクチャ(LTRP)を参照する場合には、POC距離を考慮するミラーリング手順が必要ではないことがある。これは、他のMVDよりも非常に遠い距離の参照ピクチャから取得されたミラーリングMVDは、精度の側面で効果的ではないためである。これを解決するための案が以下で説明される。
【0270】
次の表は、実施例間の比較結果を示す。
【0271】
<表29>
【表29】
【0272】
表19を参照すると、実施例Xは、既存のMMVDの導出方法を示す。実施例Yでは、一つまたは複数のロングターム参照ピクチャが現ブロックに参照される場合にMMVD手順が制限され得る。すなわち、実施例Yでは、ロングターム参照ピクチャのためのPOC距離の比較手順が省略され得る。実施例Zでは、全ての場合に対して、MMVDの導出手順が制限され得る。すなわち、実施例Zでは、全ての場合に対して、POC距離を比較する手順が省略され得る。表19において、offsetは、MmvdOffsetを呼称(指称)し得る。
【0273】
図17は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。図17のフローチャートは、前述の実施例YによるMMVDの導出方法を示すことができる。
【0274】
図17を参照すると、参照ピクチャタイプがロングターム参照ピクチャである場合にPOC差分を比較する条件が除去され得、そして、ミラーリング手順のために使用されるアンカ(anchor)MVDは、L0 MVDに固定されることができる。
【0275】
次の表は、表19の実施例YによってMMVDを導出する方法を標準文書の形式で記述する。
【0276】
<表30>
【表30-1】
【0277】
【表30-2】
【0278】
図18は、本文書の一実施形態に係るMMVDの導出方法を示すフローチャートである。図18のフローチャートは、前述の実施例ZによるMMVDの導出方法を示すことができる。
【0279】
図18を参照すると、実施例Zでは、全ての場合に対して、MMVDの導出手順が制限され得る。全ての場合に対して、POC差分を比較する条件が除去され得、そして、ミラーリングまたはスケーリング手順のために使用されるアンカ(anchor)MVDは、L0 MVDに固定されることができる。
【0280】
次の表は、表19の実施例ZによってMMVDを導出する方法を標準文書の形式で記述する。
【0281】
<表31>
【表31-1】
【0282】
【表31-2】
【0283】
また、本実施形態の一例において、全ての場合に対して、POC差分を比較する条件が除去され得、そして、ただミラーリングする案のみが使用されることもある。次の表は、本例示において、MMVDを導出する方法を標準文書の形式で記述する。
【0284】
<表32>
【表32】
【0285】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるので、本明細書の技術的特徴は、以下の図面に用いられた具体的な名称に制限されない。
【0286】
図19および20は、本文書の実施形態に係るビデオ/画像エンコード方法および関連のコンポーネントの一例を概略的に示す。図19において開示された方法は、図2において開示されたエンコード装置によって実行されることができる。具体的には、例えば、図19のS1900ないしS1970は、上記エンコード装置の予測部220により実行されることができ、S1980は、上記エンコード装置の残差処理部230によって実行されることができる。S1990は、上記エンコード装置のエントロピ符号化部240によって実行されることができる。図19において開示された方法は、本文書で前述した実施形態を含むことができる。
【0287】
図19を参照すると、エンコード装置は、現ブロックに対する動きベクトル予測子候補リストを構成する(S1900)。例えば、エンコード装置は、現ブロックの予測サンプルを生成するためにRD(Rate Distortion)コスト(cost)を考慮し、現ブロックにインター予測を実行することができる。あるいは、例えば、エンコード装置は、現ブロックの予測サンプルを生成するのに用いたインター予測モードを決定することができ、動き情報を導出することができる。ここで、インター予測モードは、MVP(Motion Vector Prediction)モードであり得るが、これに限定されるわけではない。ここで、MVPモードは、AMVP(Advanced Motion Vector Prediction)モードとも呼ばれ得る。
【0288】
エンコード装置は、動き推定(motion estimation)を介して、現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを用いて、相関性の高い類似の参照ブロックを参照ピクチャ内の決められた探索範囲内で端数ピクセル単位で探索することができ、これを介して動き情報を導出することができる。
【0289】
エンコード装置は、導出した動き情報を動きベクトル予測子および/または動きベクトル差分を用いて示すために、動きベクトル予測子候補リストを構成することができる。例えば、エンコード装置は、空間周辺候補ブロックおよび/または時間周辺候補ブロックに基づいて、動きベクトル予測子候補リストを構成することができる。あるいは、エンコード装置は、動きベクトル予測子候補リストを構成するにあたって零動きベクトルもさらに用いることもできる。例えば、現ブロックに双予測が適用される場合、L0予測のためのL0動きベクトル予測子候補リストおよびL1予測のためのL1動きベクトル予測子候補リストがそれぞれ構成されることができる。
【0290】
エンコード装置は、動きベクトル予測子候補リストに基づいて、現ブロックの動きベクトル予測子を決定する(S1910)。例えば、エンコード装置は、動きベクトル予測子候補リスト内の動きベクトル予測子候補のうち、上記導出した動き情報(または動きベクトル)に基づいて、現ブロックに対する動きベクトル予測子を決定することができる。あるいは、エンコード装置は、上記導出した動き情報(または動きベクトル)との差が最も少ない動きベクトル予測子を上記動きベクトル予測子候補リスト内で決定することができる。例えば、現ブロックに双予測が適用される場合、L0予測のためのL0動きベクトル予測子およびL1予測のためのL1動きベクトル予測子が、それぞれL0動きベクトル予測子候補リストおよびL1動きベクトル予測子候補リストから決定されることができる。
【0291】
エンコード装置は、動きベクトル予測子候補リストのうち、上記動きベクトル予測子を示す選択情報を生成する(S1920)。例えば、選択情報は、インデックス情報とも呼ばれ得、MVPフラグまたはMVPインデックスとも呼ばれ得る。すなわち、エンコード装置は、動きベクトル予測子候補リスト内で上記現ブロックの動きベクトルを示すために使用された動きベクトル予測子を指示する情報を生成することができる。例えば、現ブロックに双予測が適用される場合、L0動きベクトル予測子に関する選択情報およびL1動きベクトル予測子に関する選択情報がそれぞれ生成されることができる。
【0292】
エンコード装置は、動きベクトル予測子に基づいて、現ブロックに対する動きベクトル差分を決定する(S1930)。例えば、エンコード装置は、上記導出した現ブロックに対する動き情報(または動きベクトル)、および上記動きベクトル予測子に基づいて、動きベクトル差分を決定することができる。あるいは、エンコード装置は、上記導出した現ブロックに対する動き情報(または動きベクトル)、および上記動きベクトル予測子間の差に基づいて、動きベクトル差分を決定することができる。例えば、現ブロックに双予測が適用される場合、L0動きベクトル差分およびL1動きベクトル差分がそれぞれ決定されることができる。ここで、L0動きベクトル差分はMvdL0で示すことができ、L1動きベクトル差分はMvdL1で示すこともできる。
【0293】
エンコード装置は、上記現ブロックに対する参照ピクチャリストを導出する(S1940)。一例において、参照ピクチャリストは、参照ピクチャリスト0(またはL0、参照ピクチャリストL0)、および参照ピクチャリスト1(またはL1、参照ピクチャリストL1)を含むことができる。例えば、エンコード装置は、現ピクチャに含まれるスライスのそれぞれごとに参照ピクチャリストを構成することができる。
【0294】
エンコード装置は、上記参照ピクチャリスト内に含まれる参照ピクチャのそれぞれと現ピクチャとの間のPOC差分を導出する(S1950)。一例において、現ピクチャと現ピクチャから以前の参照ピクチャとの間のPOC差分は、0よりも大きいことがある。別の例において、現ピクチャと現ピクチャから次の参照ピクチャとの間のPOC差分は、0よりも小さいことがある。ただし、これは例示にすぎない。
【0295】
エンコード装置は、上記POC差分に基づいて、対称動きベクトル差分参照インデックスを導出する(S1960)。対称動きベクトル差分参照インデックスは、SMVDの適用のための参照ピクチャを指すことができる。対称動きベクトル差分参照インデックスは、参照インデックスL0(RefIdxSumL0)および参照インデックスL1(RefIdxSumL1)を含むことができる。
【0296】
エンコード装置は、対称的なMVDと上記動きベクトル予測子とに基づいて、動きベクトルを導出することができる。動き情報は、上記動きベクトルを含むことができる。
【0297】
エンコード装置は、上記動きベクトル差分および上記対称動きベクトル差分参照インデックスに基づいて予測サンプルを生成する(S1970)。例えば、上記予測サンプルは、上記参照ピクチャインデックスが指す上記参照ピクチャ内のブロック(またはサンプル)のうち、上記動きベクトルにより指示されるブロック(またはサンプル)に基づいて生成されることができる。
【0298】
エンコード装置は、上記インター予測モードを含む予測関連情報を生成する(S1950)。上記予測関連情報は、MMVDに関する情報、SMVDに関する情報などを含むことができる。
【0299】
エンコード装置は、上記予測サンプルに基づいて残差(レジデュアル)情報を生成する(S1980)。具体的には、エンコード装置は、上記予測サンプルおよびオリジナルサンプルに基づいて残差サンプルを導出することができる。エンコード装置は、上記残差サンプルに基づいて残差情報を導出することができる。
【0300】
エンコード装置は、上記選択情報および上記動きベクトル差分に関する情報を含む予測関連情報をエンコードする(S1990)。エンコード装置は、上記予測関連情報および上記残差情報を含む画像/ビデオ情報をエンコードする。エンコードされた画像/ビデオ情報は、ビットストリームの形態で出力されることができる。上記ビットストリームは、ネットワークまたは(デジタル)記憶媒体を介してデコード装置に送信されることができる。上記予測関連情報は、MMVDに関する情報、SMVDに関する情報などを含むことができる。
【0301】
上記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、上記画像/ビデオ情報は、前述した表1ないし32のうちの少なくとも一つに開示された情報を含むことができる。
【0302】
一実施形態において、上記現ブロックは、双予測(bi-prediction)が適用されることができる。上記動きベクトル差分は、L0予測に対するL0動きベクトル差分およびL1予測に対するL1動きベクトル差分を含むことができる。上記対称動きベクトル差分参照インデックスは、L0予測に対するL0対称動きベクトル差分参照インデックス、およびL1予測に対するL1対称動きベクトル差分参照インデックスを含むことができる。上記L0対称動きベクトル差分参照インデックス、および上記L1対称動きベクトル差分参照インデックスは、上記参照ピクチャリスト内に含まれるショートターム参照ピクチャに基づいて導出されることができる。
【0303】
一実施形態において、上記L1動きベクトル差分の絶対値は、上記L0動きベクトル差分の絶対値と同一であり得る。上記L1動きベクトル差分の符号は、上記L0動きベクトル差分の符号と異なり得る。
【0304】
一実施形態において、上記画像情報は、値が1である対称動きベクトル差分フラグを含むことができる。
【0305】
一実施形態において、上記参照ピクチャリストは、L0予測のための参照ピクチャリストL0およびL1予測のための参照ピクチャリストL1を含むことができる。上記POC差分は、上記参照ピクチャリストL0に含まれるL0ショートターム参照ピクチャと上記現ピクチャとの間の第1のPOC差分、および上記参照ピクチャリストL1に含まれるL1ショートターム参照ピクチャと上記現ピクチャとの間の第2のPOC差分を含むことができる。上記L0対称動きベクトル差分参照インデックスは、上記L0ショートターム参照ピクチャを指すことができる。上記L1対称動きベクトル差分参照インデックスは、上記L1ショートターム参照ピクチャを指すことができる。上記L0対称動きベクトル差分参照インデックスは、上記第1のPOC差分に基づいて導出されることができる。上記L1対称動きベクトル差分参照インデックスは、上記第2のPOC差分に基づいて導出されることができる。
【0306】
一実施形態において、上記第1のPOC差分は、上記第2のPOC差分と同一であり得る。
【0307】
一実施形態において、上記参照ピクチャリストは、L0予測のための参照ピクチャリストL0を含むことができる。上記参照ピクチャリストL0は、第1のL0ショートターム参照ピクチャおよび第2のL0ショートターム参照ピクチャを含むことができる。上記POC差分は、上記第1のL0ショートターム参照ピクチャと上記現ピクチャとの間の第3のPOC差分、および上記第2のL0ショートターム参照ピクチャと上記現ピクチャとの間の第4のPOC差分を含むことができる。上記第3のPOC差分と第4のPOC差分との比較に基づいて、上記第1のL0ショートターム参照ピクチャを指す参照インデックスが、上記L0対称動きベクトル差分参照インデックスとして導出されることができる。
【0308】
一実施形態において、上記第3のPOC差分が上記第4のPOC差分よりも小さい場合、上記第1のL0ショートターム参照ピクチャを指す参照インデックスが、上記L0対称動きベクトル差分参照インデックスとして導出されることができる。
【0309】
図21および22は、本文書の実施形態に係る画像/ビデオデコード方法および関連のコンポーネントの一例を概略的に示す。図21において開示された方法は、図3において開示されたデコード装置によって実行されることができる。具体的には、例えば、図21のS2100は、上記デコード装置のエントロピ復号部310によって実行されることができ、S2110ないしS2170は、上記デコード装置の予測部330によって実行されることができる。図21において開示された方法は、本文書で前述した実施形態を含むことができる。
【0310】
図21を参照すると、デコード装置は、画像/ビデオ情報を受信/取得する(S2100)。デコード装置は、ビットストリームを介して上記画像/ビデオ情報を受信/取得することができる。上記画像/ビデオ情報は、予測関連情報(予測モード情報を含む)および残差情報を含むことができる。上記予測関連情報は、MMVDに関する情報、SMVDに関する情報などを含むことができる。また、上記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、上記画像/ビデオ情報は、前述した表1ないし32のうちの少なくとも一つに開示された情報を含むことができる。
【0311】
デコード装置は、上記予測関連情報に基づいて現ブロックに対するインター予測モードを導出する(S2110)。ここで、インター予測モードは、前述したマージモード、AMVPモード(動きベクトル予測子候補を用いたモード)、MMVD、SMVDを含むことができる。
【0312】
デコード装置は、インター予測モード情報に基づいて現ブロックの動きベクトル予測子候補リストを構成する(S2120)。例えば、デコード装置は、空間周辺候補ブロックおよび/または時間周辺候補ブロックに基づいて、動きベクトル予測子候補リストを構成することができる。あるいは、デコード装置は、動きベクトル予測子候補リストを構成するにあたって零動きベクトルもさらに用いることもできる。ここで構成された動きベクトル予測子候補リストは、エンコード装置で構成された動きベクトル予測子候補リストと同一であり得る。例えば、現ブロックに双予測が適用される場合、L0予測のためのL0動きベクトル予測子候補リストおよびL1予測のためのL1動きベクトル予測子候補リストが、それぞれ構成されることができる。
【0313】
デコード装置は、動きベクトル予測子候補リストに基づいて現ブロックの動きベクトルを導出する(S2130)。例えば、デコード装置は、前述した選択情報に基づいて、動きベクトル予測子候補リスト内で現ブロックのための動きベクトル予測子候補を導出することができ、導出した動きベクトル予測子候補に基づいて、現ブロックの動き情報(または動きベクトル)を導出することができる。あるいは、上記導出した動きベクトル予測子候補および前述した動きベクトル差分に関する情報により導出される動きベクトル差分に基づいて、上記現ブロックの動き情報(または動きベクトル)を導出することができる。例えば、現ブロックに双予測が適用される場合、L0予測のためのL0動きベクトル予測子およびL1予測のためのL1動きベクトル予測子が、それぞれL0予測のための選択情報、およびL1予測のための選択情報に基づいて、L0動きベクトル予測子候補リスト、およびL1動きベクトル予測子候補リストから導出されることができる。例えば、現ブロックに双予測が適用される場合、L0動きベクトル差分およびL1動きベクトル差分が、それぞれ動きベクトル差分に関する情報に基づいて導出されることができる。ここで、L0動きベクトル差分はMvdL0で示すことができ、L1動きベクトル差分はMvdL1で示すこともできる。また、現ブロックの動きベクトルも、L0動きベクトルおよびL1動きベクトルでそれぞれ導出されることができる。
【0314】
デコード装置は、上記現ブロックに対する参照ピクチャリストを導出する(S2140)。一例において、参照ピクチャリストは、参照ピクチャリスト0(またはL0、参照ピクチャリストL0)および参照ピクチャリスト1(またはL1、参照ピクチャリストL1)を含むことができる。例えば、デコード装置は、現ピクチャに含まれるスライスのそれぞれごとに参照ピクチャリストを構成することができる。
【0315】
デコード装置は、上記参照ピクチャリスト内に含まれる参照ピクチャのそれぞれと現ピクチャとの間のPOC差分を導出する(S2150)。一例において、現ピクチャと現ピクチャから以前の参照ピクチャとの間のPOC差分は、0よりも大きいことがある。別の例において、現ピクチャと現ピクチャから次の参照ピクチャとの間のPOC差分は、0よりも小さいことがある。ただし、これは例示にすぎない。
【0316】
デコード装置は、上記POC差分に基づいて、SMVDのための参照ピクチャインデックスを含む動き情報を導出する(S2160)。デコード装置は、SMVDのための参照インデックスを導出することができる。SMVDのための参照インデックスは、SMVDの適用のための参照ピクチャを指すことができる。SMVDのための参照インデックスは、参照インデックスL0(RefIdxSumL0)および参照インデックスL1(RefIdxSumL1)を含むことができる。
【0317】
デコード装置は、上記動き情報に基づいて予測サンプルを生成する(S2170)。デコード装置は、上記動き情報に含まれる動きベクトルと参照ピクチャインデックスとに基づいて、上記予測サンプルを生成することができる。例えば、上記予測サンプルは、上記参照ピクチャインデックスが指す上記参照ピクチャ内のブロック(またはサンプル)のうち、上記動きベクトルにより指示されるブロック(またはサンプル)に基づいて生成されることができる。
【0318】
一実施形態において、上記動きベクトルは、上記動きベクトル予測子候補リストに基づいて導出される動きベクトル予測子および動きベクトル差分に基づいて導出されることができる。上記現ブロックは、双予測(bi-prediction)が適用されることができる。上記動きベクトル差分は、L0予測に対するL0動きベクトル差分およびL1予測に対するL1動きベクトル差分を含むことができる。上記対称動きベクトル差分参照インデックスは、L0予測に対するL0対称動きベクトル差分参照インデックスおよびL1予測に対するL1対称動きベクトル差分参照インデックスを含むことができる。上記L1動きベクトル差分は、上記L0動きベクトル差分に基づいて導出されることができる。上記L0対称動きベクトル差分参照インデックスおよび上記L1対称動きベクトル差分参照インデックスは、上記参照ピクチャリスト内に含まれるショートターム参照ピクチャに基づいて導出されることができる。
【0319】
一実施形態において、上記画像情報は、対称動きベクトル差分フラグを含むことができる。値が1である上記対称動きベクトル差分フラグに基づいて、上記L0対称動きベクトル差分参照インデックスおよび上記L1対称動きベクトル差分参照インデックスが導出されることができる。
【0320】
一実施形態において、上記L1動きベクトル差分の絶対値は、上記L0動きベクトル差分の絶対値と同一であり得る。上記L1動きベクトル差分の符号は、上記L0動きベクトル差分の符号と異なり得る。
【0321】
一実施形態において、上記参照ピクチャリストは、L0予測のための参照ピクチャリストL0およびL1予測のための参照ピクチャリストL1を含むことができる。上記POC差分は、上記参照ピクチャリストL0に含まれるL0ショートターム参照ピクチャと上記現ピクチャとの間の第1のPOC差分、および上記参照ピクチャリストL1に含まれるL1ショートターム参照ピクチャと上記現ピクチャとの間の第2のPOC差分を含むことができる。上記L0対称動きベクトル差分参照インデックスは、上記L0ショートターム参照ピクチャを指すことができる。上記L1対称動きベクトル差分参照インデックスは、上記L1ショートターム参照ピクチャを指すことができる。上記L0対称動きベクトル差分参照インデックスは、上記第1のPOC差分に基づいて導出されることができる。上記L1対称動きベクトル差分参照インデックスは、上記第2のPOC差分に基づいて導出されることができる。
【0322】
一実施形態において、上記第1のPOC差分は、上記第2のPOC差分と同一であり得る。
【0323】
一実施形態において、上記参照ピクチャリストは、L0予測のための参照ピクチャリストL0を含むことができる。上記参照ピクチャリストL0は、第1のL0ショートターム参照ピクチャおよび第2のL0ショートターム参照ピクチャを含むことができる。上記POC差分は、上記第1のL0ショートターム参照ピクチャと上記現ピクチャとの間の第3のPOC差分、および上記第2のL0ショートターム参照ピクチャと上記現ピクチャとの間の第4のPOC差分を含むことができる。上記第3および第4のPOC差分の間の比較に基づいて、上記第1のL0ショートターム参照ピクチャを指す参照インデックスが、上記L0対称動きベクトル差分参照インデックスとして導出されることができる。
【0324】
一実施形態において、上記第3のPOC差分が上記第4のPOC差分よりも小さい場合、上記第1のL0ショートターム参照ピクチャを指す参照インデックスが、上記L0対称動きベクトル差分参照インデックスとして導出されることができる。
【0325】
前述した実施形態において、方法は、一連のステップまたはブロックとしてフローチャートに基づいて説明されているが、該当実施形態は、ステップの順序に限定されるわけではなく、あるステップは、前述したのと異なるステップおよび異なる順序で、または同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの1つまたは複数のステップが本文書の実施形態の範囲に影響を与えずに削除され得ることを理解することができる。
【0326】
前述した本文書の実施形態に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコード装置および/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を行う装置に含まれ得る。
【0327】
本文書で、実施形態がソフトウェアで具現される際、前述した方法は、前述した機能を行うモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体および/または他の記憶装置を含むことができる。すなわち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われ得る。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記憶媒体に記憶されることができる。
【0328】
また、本文書の実施形態が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(オーダーメイド型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over The Top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(Virtual Reality)装置、AR(Augmented (Argument) Reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)端末、飛行機端末、船舶端末など)および医療用ビデオ装置などに含まれ得、ビデオ信号またはデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over The Top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含み得る。
【0329】
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に記憶されることができる。本文書の実施形態に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に記憶されることができる。上記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、および光学データ記憶装置を含み得る。また、上記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に記憶されるか、有無線通信ネットワークを介して送信されることができる。
【0330】
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、上記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。上記プログラムコードは、コンピュータによって読み取り可能なキャリア上に記憶されることができる。
【0331】
図23は、本文書に開示された実施形態が適用されることができるコンテンツストリーミングシステムの例を示す。
【0332】
図23を参照すると、本文書の実施形態が適用されるコンテンツストリーミングシステムは、大まかに、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0333】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略され得る。
【0334】
上記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリームの生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で、一時的に上記ビットストリームを記憶することができる。
【0335】
上記ストリーミングサーバは、ウェブサーバを介してのユーザ要求(要請)に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すれば、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0336】
上記ストリーミングサーバは、メディア記憶装置(格納所)および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間、記憶することができる。
【0337】
上記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタル署名(サイニジ)などがありうる。
【0338】
上記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0339】
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として具現されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
【手続補正書】
【提出日】2023-10-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコード装置によって実行される画像デコード方法であって、
ビットストリームから予測関連情報を含む画像情報を取得するステップと、
前記予測関連情報に基づいて、インター予測モードを導出するステップと、
前記インター予測モードに基づいて、現ブロックに対する動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックに対する動きベクトルを導出するステップと、
前記現ブロックに対する参照ピクチャリストを導出するステップであって、前記参照ピクチャリストは、L0参照ピクチャリストとL1参照ピクチャリストとを含む、ステップと、
前記L0参照ピクチャリスト内のL0参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L0参照ピクチャリスト内の前記L0参照ピクチャと現ピクチャとの間の第1POC(Picture Order Count)差分を導出するステップと、
L0対称動きベクトル差分参照インデックスを導出するステップと、
前記L1参照ピクチャリスト内のL1参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L1参照ピクチャリスト内の前記L1参照ピクチャと前記現ピクチャとの間の第2POC差分を導出するステップと、
L1対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトル前記L0対称動きベクトル差分参照インデックス、及び前記L1対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、を含み
前記動きベクトルは、前記動きベクトル予測子候補リストに基づいて導出される動きベクトル予測子と動きベクトル差分とに基づいて導出され、
双予測が前記現ブロック適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分、及びL1予測に対するL1動きベクトル差分を含み
前記L1動きベクトル差分は、前記L0動きベクトル差分に基づいて導出され、
前記L0対称動きベクトル差分参照インデックスは前記第1POC差分と、前記L0参照ピクチャリスト内の前記L0参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出され
前記L1対称動きベクトル差分参照インデックスは、前記第2POC差分と、前記L1参照ピクチャリスト内の前記L1参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出される、画像デコード方法。
【請求項2】
前記L1動きベクトル差分の絶対値は、前記L0動きベクトル差分の絶対値と等しく、
前記L1動きベクトル差分の符号は、前記L0動きベクトル差分の符号と異なる、請求項1に記載の方法。
【請求項3】
エンコード装置によって実行される画像エンコード方法であって、
現ブロックの動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックの動きベクトル予測子を決定するステップと、
前記動きベクトル予測子候補リストのうちの前記動きベクトル予測子を示す選択情報を生成するステップと、
前記動きベクトル予測子に基づいて、前記現ブロックに対する動きベクトル差分を決定するステップと、
参照ピクチャを含む参照ピクチャリストを導出するステップであって、前記参照ピクチャリストは、L0参照ピクチャリストとL1参照ピクチャリストとを含む、ステップと、
前記L0参照ピクチャリスト内のL0参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L0参照ピクチャリスト内の前記L0参照ピクチャと現ピクチャとの間の第1POC(Picture Order Count)差分を導出するステップと、
L0対称動きベクトル差分参照インデックスを導出するステップと、
前記L1参照ピクチャリスト内のL1参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L1参照ピクチャリスト内の前記L1参照ピクチャと前記現ピクチャとの間の第2POC差分を導出するステップと、
L1対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトル差分前記L0対称動きベクトル差分参照インデックス、及び前記L1対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差情報を生成するステップと、
前記残差情報と前記選択情報及び前記動きベクトル差分に関する情報を含む予測関連情報とを含む画像情報をエンコードするステップと、を含み
双予測が前記現ブロック適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分、及びL1予測に対するL1動きベクトル差分を含み
前記L0対称動きベクトル差分参照インデックスは前記第1POC差分と、前記L0参照ピクチャリスト内の前記L0参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出され
前記L1対称動きベクトル差分参照インデックスは、前記第2POC差分と、前記L1参照ピクチャリスト内の前記L1参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出される、画像エンコード方法。
【請求項4】
前記L1動きベクトル差分の絶対値は、前記L0動きベクトル差分の絶対値と等しく、
前記L1動きベクトル差分の符号は、前記L0動きベクトル差分の符号と異なる、請求項3に記載の方法。
【請求項5】
画像に関するデータの送信方法であって、
前記画像に関するビットストリームを取得するステップであって、前記ビットストリームは、
現ブロックの動きベクトル予測子候補リストを構成するステップと、
前記動きベクトル予測子候補リストに基づいて、前記現ブロックの動きベクトル予測子を決定するステップと、
前記動きベクトル予測子候補リストのうちの前記動きベクトル予測子を示す選択情報を生成するステップと、
前記動きベクトル予測子に基づいて、前記現ブロックに対する動きベクトル差分を決定するステップと、
参照ピクチャを含む参照ピクチャリストを導出するステップであって、前記参照ピクチャリストは、L0参照ピクチャリストとL1参照ピクチャリストとを含む、ステップと、
前記L0参照ピクチャリスト内のL0参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L0参照ピクチャリスト内の前記L0参照ピクチャと現ピクチャとの間の第1POC(Picture Order Count)差分を導出するステップと、
L0対称動きベクトル差分参照インデックスを導出するステップと、
前記L1参照ピクチャリスト内のL1参照ピクチャがショートターム参照ピクチャであるかどうかを決定するステップと、
前記L1参照ピクチャリスト内の前記L1参照ピクチャと前記現ピクチャとの間の第2POC差分を導出するステップと、
L1対称動きベクトル差分参照インデックスを導出するステップと、
前記動きベクトル差分前記L0対称動きベクトル差分参照インデックス、及び前記L1対称動きベクトル差分参照インデックスに基づいて、予測サンプルを生成するステップと、
前記予測サンプルに基づいて、残差情報を生成するステップと、
前記残差情報と前記選択情報及び前記動きベクトル差分に関する情報を含む予測関連情報とを含む画像情報をエンコードするステップと、に基づいて生成されるステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み
双予測が前記現ブロック適用され、
前記動きベクトル差分は、L0予測に対するL0動きベクトル差分、及びL1予測に対するL1動きベクトル差分を含み
前記L0対称動きベクトル差分参照インデックスは前記第1POC差分と、前記L0参照ピクチャリスト内の前記L0参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出され
前記L1対称動きベクトル差分参照インデックスは、前記第2POC差分と、前記L1参照ピクチャリスト内の前記L1参照ピクチャが前記ショートターム参照ピクチャであることの決定とに基づいて導出される、送信方法。