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

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

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

特表2022-504173ヒストリベースの画像コーディング方法およびその装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-01-13
(54)【発明の名称】ヒストリベースの画像コーディング方法およびその装置
(51)【国際特許分類】
   H04N 19/436 20140101AFI20220105BHJP
   H04N 19/52 20140101ALI20220105BHJP
【FI】
H04N19/436
H04N19/52
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021518461
(86)(22)【出願日】2019-10-04
(85)【翻訳文提出日】2021-05-31
(86)【国際出願番号】 KR2019012991
(87)【国際公開番号】W WO2020071829
(87)【国際公開日】2020-04-09
(31)【優先権主張番号】62/740,972
(32)【優先日】2018-10-04
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(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)【発明者】
【氏名】ナム チョンハク
(72)【発明者】
【氏名】イム チェヒョン
(72)【発明者】
【氏名】チャン ヒョンムン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159KK14
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MA23
5C159MC11
5C159ME01
5C159ME11
5C159NN11
5C159RC38
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本文書において開示された実施形態によれば、ヒストリベースで現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出し、上記HMVPバッファに有されるHMVP候補に基づいて現ブロックの動き情報を導出することができ、これを介してインター予測効率を上げることができる。
【選択図】図27
【特許請求の範囲】
【請求項1】
デコード装置によって行われる画像デコード方法であって、
現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出するステップと、
前記HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、
前記動き情報候補リストに基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて復元サンプルを生成するステップと、を有し、
現ピクチャ内には、1つまたは複数のタイルが存在し、
前記HMVPバッファは、現タイル内の前記現ブロックを有するCTU行の1番目のCTUで初期化される、ことを特徴とする画像デコード方法。
【請求項2】
前記HMVPバッファが初期化される場合、前記HMVPバッファに有されるHMVP候補の個数は、0に設定される、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項3】
前記現ピクチャが複数のタイルに分割される場合、前記HMVPバッファは、各タイル内のCTU行単位で初期化される、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項4】
前記CTU行の特定CTUが前記現ピクチャ内における前記CTU行の1番目のCTUではなく、前記特定CTUが前記タイル内における前記CTU行の1番目のCTUである場合、前記HMVPバッファは、前記特定CTUで初期化される、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項5】
前記現ブロックを有する現CTUが前記現タイル内の前記CTU行の前記1番目のCTUであると判断された場合、前記HMVPバッファは、前記現CTU内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有し、
前記現CTUが前記現タイル内の前記CTU行の前記1番目のCTUでないと判断された場合、前記HMVPバッファは、前記現タイル内の前記CTU行内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有する、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項6】
前記現ブロックにマージモードまたはMVP(Motion Vector Prediction)モードが適用される場合、前記HMVPバッファに有される前記HMVP候補に基づいて前記動き情報候補リストが構成される、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項7】
前記現ブロックにマージモードが適用される場合、前記動き情報候補リストは、マージ候補リストであり、前記HMVPバッファに有される前記HMVP候補は、前記マージ候補リストの候補として有され、
ビットストリームから取得されたマージインデックスに基づいて前記マージ候補リストに有される候補の中で前記HMVP候補が指示される、ことを特徴とする請求項1に記載の画像デコード方法。
【請求項8】
エンコード装置によって行われる画像エンコード方法であって、
現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出するステップと、
前記HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、
前記動き情報候補リストに基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて残差サンプルを導出するステップと、
前記残差サンプルに関する情報を有する画像情報をエンコードするステップと、を有し、
現ピクチャ内には、1つまたは複数のタイルが存在し、
前記HMVPバッファは、現タイル内の前記現ブロックを有するCTU行の1番目のCTUで初期化される、ことを特徴とする画像エンコード方法。
【請求項9】
前記HMVPバッファが初期化される場合、前記HMVPバッファに有されるHMVP候補の個数は、0に設定される、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項10】
前記現ピクチャが複数のタイルに分割される場合、前記HMVPバッファは、各タイル内のCTU行単位で初期化される、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項11】
前記CTU行の特定CTUが前記現ピクチャ内における前記CTU行の1番目のCTUではなく、前記特定CTUが前記タイル内における前記CTU行の1番目のCTUである場合、前記HMVPバッファは、前記特定CTUで初期化される、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項12】
前記現ブロックを有する現CTUが前記現タイル内の前記CTU行の前記1番目のCTUであると判断された場合、前記HMVPバッファは、前記現CTU内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有し、
前記現CTUが前記現タイル内の前記CTU行の前記1番目のCTUでないと判断された場合、前記HMVPバッファは、前記現タイル内の前記CTU行内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有する、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項13】
前記現ブロックにマージモードまたはMVP(Motion Vector Prediction)モードが適用される場合、前記HMVPバッファに有される前記HMVP候補に基づいて前記動き情報候補リストが構成される、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項14】
前記現ブロックにマージモードが適用される場合、前記動き情報候補リストは、マージ候補リストであり、前記HMVPバッファに有される前記HMVP候補は、前記マージ候補リストの候補として有され、
前記画像情報に有されるマージインデックスは、前記マージ候補リストに有される候補の中で前記HMVP候補を指示する、ことを特徴とする請求項8に記載の画像エンコード方法。
【請求項15】
コンピュータ読み取り可能なデジタル記憶媒体であって、請求項1に記載の画像デコード方法をデコード装置が行うように引き起こすエンコードされた情報が記憶されたデジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、画像コーディングに関し、より詳細には、ヒストリベースの画像コーディング方法およびその装置に関する。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオなどの高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど既存の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線などの媒体を利用して画像データを送信し、または既存の記憶(格納)媒体を利用して画像/ビデオデータを記憶する場合、送信コスト(費用)および記憶コストが増加する。
【0003】
また、最近VR(Virtual Reality)、AR(Artificial Reality)コンテンツやホログラムなどの没入型(実感)メディア(Immersive Media)に対する関心および需要が増加しており、ゲーム画像のように現実画像と異なる画像特性を有する画像/ビデオに関する放送が増加している。
【0004】
それによって、上記のような様々な特性を有する高解像度、高品質の画像/ビデオの情報を効果的に圧縮して送信または記憶し再生するために、高効率の画像/ビデオ圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、画像コーディング効率を上げる方法および装置を提供することにある。
【0006】
本文書の他の技術的課題は、効率的なインター予測方法および装置を提供することにある。
【0007】
本文書の他の技術的課題は、ヒストリベースの動きベクトルを導出する方法および装置を提供することにある。
【0008】
本文書の他の技術的課題は、HMVP(History-based Motion Vector Prediction)候補を効率的に導出する方法および装置を提供することにある。
【0009】
本文書の他の技術的課題は、HMVPバッファを効率的にアップデートする方法および装置を提供することにある。
【0010】
本文書の他の技術的課題は、HMVPバッファを効率的に初期化する方法および装置を提供することにある。
【課題を解決するための手段】
【0011】
本文書の一実施形態によれば、デコード装置によって行われる画像デコード方法を提供する。上記の方法は、現(現在)ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出するステップと、HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、動き情報候補リストに基づいて現ブロックの動き情報を導出するステップと、動き情報に基づいて現ブロックに対する予測サンプルを生成するステップと、予測サンプルに基づいて復元サンプルを生成するステップと、を有し、現ピクチャ内には、1つまたは複数のタイルが存在し、HMVPバッファは、現タイル内の現ブロックを有するCTU行の1番目のCTUで初期化されることを特徴とする。
【0012】
本文書の他の実施形態によれば、画像デコードを行うデコード装置が提供される。デコード装置は、現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出し、HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成し、動き情報候補リストに基づいて現ブロックの動き情報を導出し、動き情報に基づいて現ブロックに対する予測サンプルを生成する予測部と、予測サンプルに基づいて復元サンプルを生成する加算部と、を備え、現ピクチャ内には、1つまたは複数のタイルが存在し、HMVPバッファは、現タイル内の現ブロックを有するCTU行の1番目のCTUで初期化されることを特徴とする。
【0013】
本文書のさらに他の一実施形態によれば、エンコード装置によって行われる画像エンコード方法が提供される。上記の方法は、現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出するステップと、HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、動き情報候補リストに基づいて現ブロックの動き情報を導出するステップと、動き情報に基づいて現ブロックに対する予測サンプルを生成するステップと、予測サンプルに基づいて残差(レジデュアル)サンプルを導出するステップと、残差サンプルに関する情報を有する画像情報をエンコードするステップと、を有し、現ピクチャ内には、1つまたは複数のタイルが存在し、HMVPバッファは、現タイル内の現ブロックを有するCTU行の1番目のCTUで初期化されることを特徴とする。
【0014】
本文書のさらに他の一実施形態によれば、画像エンコードを行うエンコード装置が提供される。エンコード装置は、現ブロックに対するHMVP(History-based Motion Vector Prediction)バッファを導出し、HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成し、動き情報候補リストに基づいて現ブロックの動き情報を導出し、動き情報に基づいて現ブロックに対する予測サンプルを生成する予測部と、予測サンプルに基づいて残差サンプルを導出する残差処理部と、残差サンプルに関する情報を有する画像情報をエンコードするエントロピエンコード部と、を備え、現ピクチャ内には、1つまたは複数のタイルが存在し、HMVPバッファは、現タイル内の現ブロックを有するCTU行の1番目のCTUで初期化されることを特徴とする。
【0015】
本文書のさらに他の一実施形態によれば、エンコード装置により行われた画像エンコード方法によって生成されたエンコードされた画像情報が有される画像データが記憶されたデジタル記憶媒体を提供する。
【0016】
本文書のさらに他の一実施形態によれば、デコード装置によって画像デコード方法を行うように引き起こすエンコードされた画像情報が有される画像データが記憶されたデジタル記憶媒体を提供する。
【発明の効果】
【0017】
本文書の一実施形態によれば、全般的な画像/ビデオ圧縮効率を上げることができる。
【0018】
本文書の一実施形態によれば、効率的なインター予測を介して残差処理に必要な送信されるデータ量を減らすことができる。
【0019】
本文書の一実施形態によれば、効率的にHMVPバッファを管理することができる。
【0020】
本文書の一実施形態によれば、効率的なHMVPバッファ管理を介して並列処理をサポートすることができる。
【0021】
本文書の一実施形態によれば、インター予測のための動きベクトルを効率的に導出することができる。
【図面の簡単な説明】
【0022】
図1】本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す図である。
図2】本文書の実施形態が適用され得るビデオ/画像エンコード装置の構成を概略的に説明する図である。
図3】本文書の実施形態が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
図4】インター予測ベースのビデオ/画像エンコード方法の例を示す図である。
図5】インター予測ベースのビデオ/画像デコード方法の例を示す図である。
図6】インター予測手順を例示的に示す図である。
図7】従来のマージまたはAMVPモードで動き情報候補導出のために使われた空間隣接ブロックを例示的に示す図である。
図8】HMVP候補ベースのデコード手順の例を概略的に示す図である。
図9】FIFO規則によるHMVPテーブルアップデートを例示的に示す図である。
図10】制限されたFIFO規則によるHMVPテーブルアップデートを例示的に示す図である。
図11】並列処理のための技法のうちの1つであるWPP(Wavefront Parallel Processing)を例示的に示す図である。
図12】並列処理を考慮して一般的なHMVP方法を適用するときの問題点を例示的に示す図である。
図13】本文書の一実施形態に係るヒストリ管理バッファ(HMVPバッファ)の初期化方法を例示的に示す図である。
図14】一実施形態に係るHMVPバッファ管理方法を例示的に示す図である。
図15】他の一実施形態に係るHMVPバッファ管理方法を例示的に示す図である。
図16】タイル構造におけるHMVPバッファ初期化方法を例示的に示す図である。
図17】他の一実施形態に係るタイルの1番目のCTUを対象としたHMVPバッファ初期化方法の例を示す図である。
図18】さらに他の一実施形態に係る各タイル内のCTU行の1番目のCTUを対象としたHMVP管理バッファ初期化方法の例を示す図である。
図19】タイルとスライスとが同時に存在する構造の例を示す図である。
図20】各タイル内の1番目のCTUを対象としてHMVPバッファを初期化する方法の例を示す図である。
図21】タイル内の各スライスを対象としてHMVPバッファを初期化する方法の例を示す図である。
図22】タイルグループ内の1番目のタイルの1番目のCTUを対象としてHMVPバッファを初期化する例を示す図である。
図23】タイルグループ内の各タイルの1番目のCTUを対象としてHMVPバッファを初期化する例を示す図である。
図24】タイルグループ内の各タイルのCTU行を対象としてHMVPバッファを初期化する例を示す図である。
図25】本文書の実施形態(1つまたは複数(等))に係るインター予測方法を含むビデオ/画像エンコード方法および関連コンポーネントの一例を概略的に示す図である。
図26】本文書の実施形態(1つまたは複数)に係るインター予測方法を含むビデオ/画像エンコード方法および関連コンポーネントの一例を概略的に示す図である。
図27】本文書の実施形態に係るインター予測方法を含む画像デコード方法および関連コンポーネントの一例を概略的に示す図である。
図28】本文書の実施形態に係るインター予測方法を含む画像デコード方法および関連コンポーネントの一例を概略的に示す図である。
図29】本文書において開示された実施形態などが適用され得るコンテンツストリーミングシステムの例を示す図である。
【発明を実施するための形態】
【0023】
本文書において提示された方法は、様々な変更を加えることができ、種々の実施形態を有することができるところ、特定の実施形態を図面に例示し、詳細に説明しようとする。本明細書において使用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書において提示された方法の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上、明白に異なるように意味しない限り、「少なくとも1つの」の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つもしくは複数の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加の可能性を予め排除しないことと理解されるべきである。
【0024】
一方、本文書において説明される図面上の各構成は、互いに異なる特徴的な機能などに関する説明の都合上、独立して図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されることを意味するものではない。例えば、各構成のうち、2つ以上の構成が合わせられて1つの構成をなすことができ、1つの構成が複数の構成に分けられることもできる。各構成が統合および/または分離された実施形態も本文書において開示された方法の本質から逸脱しない限り、本文書の開示範囲に含まれる。
【0025】
この文書は、ビデオ/画像コーディングに関するものである。例えば、この文書において開示された方法/実施形態は、VVC(Versatile Video Coding)標準に開示される方法に適用されることができる。また、この文書において開示された方法/実施形態は、EVC(Essential Video Coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd Generation Of Audio Video Coding Standard)、または次世代ビデオ/画像コーディング標準(例えば、H.267 or H.268など)に開示される方法に適用されることができる。
【0026】
この文書では、ビデオ/画像コーディングに対する様々な実施形態を提示し、他の言及がない限り、上記実施形態は、互いに組み合わせて実行されることもできる。
【0027】
この文書において、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つまたは複数のCTU(Coding Tree Unit)を含むことができる。1つのピクチャは、1つまたは複数のスライス/タイルで構成されることができる。1つのピクチャは、1つまたは複数のタイルグループで構成されることができる。1つのタイルグループは、1つまたは複数のタイルを含むことができる。ブリックは、ピクチャ内のタイル以内のCTU行の長方形領域を示すことができる(a brick may represent a rectangular region of CTU rows within a tile in a picture)。タイルは、複数(多数)のブリックでパーティショニングされることができ、各ブリックは、上記タイル内の1つまたは複数のCTU行で構成されることができる(A tile may be partitioned into multiple bricks、each of which consisting of one or more CTU rows within the tile)。また、複数のブリックでパーティショニングされないタイルは、ブリックとも呼ばれる(A tile that is not partitioned into multiple bricks may be also referred to as a brick)。ブリックスキャンは、ピクチャをパーティショニングするCTUの特定のシーケンシャル(順次的)オーダリングを示すことができ、上記CTUは、ブリック内でCTUラスタスキャンで整列されることができ、タイル内のブリックは、上記タイルの上記ブリックのラスタスキャンで連続的に整列されることができ、そして、ピクチャ内のタイルは、上記ピクチャの上記タイルのラスタスキャンで連続的に整列されることができる(A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。タイルは、特定タイル列および特定タイル行(列)以内のCTUの長方形領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。上記タイル列は、CTUの長方形領域であり、上記長方形領域は、上記ピクチャの高さと同じ高さを有し、幅は、ピクチャパラメータセット内のシンタックス要素により明示されることができる(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。上記タイル行は、CTUの長方形領域であり、上記長方形領域は、ピクチャパラメータセット内のシンタックス要素により明示される幅を有し、高さは、上記ピクチャの高さと同じである(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルスキャンは、ピクチャをパーティショニングするCTUの特定シーケンシャルオーダリングを示すことができ、上記CTUは、タイル内のCTUラスタスキャンで連続的に整列されることができ、ピクチャ内のタイルは、上記ピクチャの上記タイルのラスタスキャンで連続的に整列されることができる(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは、ピクチャの整数個のブリックを含むことができ、上記整数個のブリックは、1つのNALユニットに含まれることができる(A slice includes an integer number of bricks of a picture that may be exclusively contained in a single NAL unit)。スライスは、複数の完全なタイルで構成されてもよく、または1つのタイルの完全なブリックの連続するシーケンスであってもよい(A slice may consists of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile)。この文書で、タイルグループとスライスとは混用されることができる。例えば、本文書でtile group/tile group headerは、slice/slice headerとも呼ばれる。
【0028】
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示し、ルマ(luma)成分のピクセル/ピクセルの値のみを示してもよく、クロマ(chroma)成分のピクセル/ピクセルの値のみを示してもよい。
【0029】
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域および該当領域に関連する情報のうちの少なくとも1つを含むことができる。1つのユニットは、1つのルマブロックおよび2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプル(または、サンプルアレイ)または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
【0030】
この文書において、“/”と“、”は、“および/または”と解釈される。例えば、“A/B”は、“Aおよび/またはB”と解釈され、“A、B”は、“Aおよび/またはB”と解釈される。追加的に、“A/B/C”は、“A、Bおよび/またはCのうちの少なくとも1つ”を意味する。また、“A、B、C”も“A、Bおよび/またはCのうちの少なくとも1つ”を意味する。(In this document, the term “/” and “,” should be interpreted to indicate “and/or.” For instance, the expression “A/B” may mean “A and/or B.” Further, “A, B” may mean “A and/or B.” Further,“A/B/C” may mean “at least one of A, B, and/or C.” Also, “A/B/C” may mean “at least one of A, B, and/or C.”)
【0031】
追加的に、本文書で“または”は、“および/または”と解釈される。例えば、“AまたはB”は、1)“A”のみを意味し、2)“B”のみを意味し、または3)“AおよびB”を意味することができる。その他の表現として、本文における“または”は、“追加的にまたは代替的(大体的)に(additionally or alternatively)”を意味することができる。(Further, in the document, the term “or” should be interpreted to indicate “and/or.” For instance, the expression “A or B” may comprise 1)only A, 2)only B, and/or 3)both A and B. In other words, the term “or” in this document should be interpreted to indicate “additionally or alternatively.”)
【0032】
以下、添付した図面を参照して、本文書の実施形態などをより詳細に説明しようとする。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複する説明は省略されることができる。
【0033】
図1は、本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す。
【0034】
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)および第2の装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達できる。
【0035】
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を含むことができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを含むことができる。上記エンコード装置は、ビデオ/画像エンコード装置とも呼ばれ、上記デコード装置は、ビデオ/画像デコード装置とも呼ばれる。送信器は、エンコード装置に含まれることができる。受信器は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0036】
ビデオソースは、ビデオ/画像のキャプチャ、合成または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイスおよび/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つまたは複数のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、およびスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、関連データが生成される過程としてビデオ/画像キャプチャ過程に代えることができる。
【0037】
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0038】
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータを、ファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、上記ビットストリームを受信/抽出してデコード装置に伝達できる。
【0039】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコードすることができる。
【0040】
レンダラは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示(ディスプレイ)されることができる。
【0041】
図2は、本文書の実施形態が適用され得るビデオ/画像エンコード装置の構成を概略的に説明する図である。以下、ビデオエンコード装置とは、画像エンコード装置を含むことができる。
【0042】
図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)または復元ブロック生成部(recontructed block generator)とも呼ばれる。前述した画像分割部210、予測部220、残差処理部230、エントロピエンコード部240、加算部250、およびフィルタリング部260は、実施形態によって1つまたは複数のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(Decoded Picture Buffer)を含むことができ、デジタル記憶媒体により構成されることもできる。上記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0043】
画像分割部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)を導出する単位である。
【0044】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語(a term corresponding to one picture (or image) for a pixel or a pel)として使われることができる。
【0045】
エンコード装置200は、入力画像信号(オリジナル(原本)ブロック、オリジナルサンプルアレイ)からインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(residual signal、残差(残余)ブロック、残差サンプルアレイ)を生成することができ、生成された残差信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内で入力画像信号(オリジナルブロック、オリジナルサンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231とも呼ばれる。予測部は、処理対象ブロック(以下、現ブロックという)に対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現ブロックまたはCU単位でイントラ予測が適用されるかまたはインター予測が適用されるかを決定することができる。予測部は、各予測モードに関する説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピエンコード部240に伝達できる。予測に関する情報は、エントロピエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
【0046】
イントラ予測部222は、現ピクチャ内のサンプルを参照して現ブロックを予測することができる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置し、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プラナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かさの度合いによって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使われることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用し、現ブロックに適用される予測モードを決定することもできる。
【0047】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは、同じであってもよく、異なってもよい。上記時間隣接ブロックは、コロケート(同一位置)参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれることもあり、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated Picture、colPic)とも呼ばれる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するためにどの候補が使われるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードおよびマージモードの場合、インター予測部221は、隣接ブロックの動き情報を現ブロックの動き情報として利用できる。スキップモードの場合、マージモードとは異なり残差信号が送信されない。動き情報予測(Motion Vector Prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることで、現ブロックの動きベクトルを指示することができる。
【0048】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用できる。これは、Combined Inter and Intra Prediction(CIIP)とも呼ばれる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(Intra Block Copy、IBC)予測モードに基づく場合もあり、またはパレットモード(palette mode)に基づく場合もある。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画像コーディングのために使われることができる。IBCは、基本的に現ピクチャ内で予測を実行するが、現ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。すなわち、IBCは、本文書で説明されるインター予測技法のうちの少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすこともできる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0049】
上記予測部(インター予測部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)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない可変な大きさのブロックに適用されることもできる。
【0050】
量子化部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に含まれることもできる。
【0051】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に逆量子化部234および逆変換部235を介して逆量子化および逆変換を適用することによって、残差信号(残差ブロックまたは残差サンプル)を復元することができる。加算部250は、復元された残差信号にインター予測部221またはイントラ予測部222から出力された予測信号を加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使われることができる。加算部250は、復元部または復元ブロック生成部とも呼ばれる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることもでき、後述するようにフィルタリングを経て次のピクチャのインター予測のために使われることもできる。
【0052】
一方、ピクチャエンコードおよび/または復元過程で、LMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0053】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ270、具体的には、メモリ270のDPBに記憶することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に関する説明で後述するように、フィルタリングに対する様々な情報を生成してエントロピエンコード部240に伝達できる。フィルタリングに関する情報は、エントロピエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
【0054】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使われることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200およびデコード装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0055】
メモリ270DPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために記憶することができる。メモリ270は、現ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部221に伝達できる。メモリ270は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達できる。
【0056】
図3は、本文書の実施形態が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
【0057】
図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を内/外部コンポーネントとしてさらに含むこともできる。
【0058】
ビデオ/画像情報を含むビットストリームが入力されると、デコード装置300は、図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコード装置300は、上記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコード装置300は、エンコード装置で適用された処理ユニットを利用してデコードを実行することができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから、四分木構造、二分木構造および/または三分木構造に応じて分割されることができる。コーディングユニットから1つまたは複数の変換ユニットが導出されることができる。そして、デコード装置300を介してデコードおよび出力された復元画像信号は、再生装置を介して再生されることができる。
【0059】
デコード装置300は、図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信した信号は、エントロピデコード部310を介してデコードされることができる。例えば、エントロピデコード部310は、上記ビットストリームをパージングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。上記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/画像情報は、一般的な制限情報(general constraint information)をさらに含むことができる。また、デコード装置は、上記パラメータセットに関する情報および/または上記一般的な制限情報に基づいてピクチャをデコードすることができる。本文書で後述されるシグナリング/受信される情報および/またはシンタックス要素は、上記デコード手順を介してデコードされて上記ビットストリームから取得されることができる。例えば、エントロピデコード部310は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、残差に対する変換係数の量子化された値を出力することができる。より詳しくは、CABACエントロピデコード方法は、ビットストリームで各シンタックス要素に該当するBINを受信し、デコード対象シンタックス要素情報と隣接およびデコード対象ブロックのデコード情報または以前ステップでデコードされたシンボル/BINの情報とを利用してコンテキスト(文脈)(context)モデルを決定し、決定されたコンテキストモデルによってBINの発生確率を予測してBINの算術デコード(arithmetic decoding)を実行することで、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピデコード方法は、コンテキストモデルの決定後、次のシンボル/BINのコンテキストモデルのためにデコードされたシンボル/BINの情報を利用してコンテキストモデルをアップデートすることができる。エントロピデコード部310でデコードされた情報のうちの予測に関する情報は、予測部(インター予測部332およびイントラ予測部331)に提供され、エントロピデコード部310でエントロピデコードが実行された残差値、すなわち、量子化された変換係数および関連パラメータ情報は、残差処理部320に入力されることができる。残差処理部320は、残差信号(残差ブロック、残差サンプル、残差サンプルアレイ)を導出することができる。また、エントロピデコード部310でデコードされた情報のうちのフィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)は、デコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピデコード部310の構成要素であることもある。一方、本文書によるデコード装置は、ビデオ/画像/ピクチャデコード装置とも呼ばれ、上記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)およびサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。上記情報デコーダは、上記エントロピデコード部310を含むことができ、上記サンプルデコーダは、上記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、およびイントラ予測部331のうちの少なくとも1つを含むことができる。
【0060】
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列できる。この場合、上記再整列は、エンコード装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0061】
逆変換部322では、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を取得するようになる。
【0062】
予測部は、現ブロックに対する予測を実行し、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピデコード部310から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるかまたはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0063】
予測部330は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用できる。これは、Combined Inter and intra Prediction(CIIP)とも呼ばれる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(Intra Block Copy、IBC)予測モードに基づく場合もあり、またはパレットモード(palette mode)に基づく場合もある。上記IBC予測モードまたはパレットモードは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画像コーディングのために使われることができる。IBCは、基本的に現ピクチャ内で予測を実行するが、現ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。すなわち、IBCは、本文書で説明されるインター予測技法のうちの少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすこともできる。パレットモードが適用される場合、パレットテーブルおよびパレットインデックスに関する情報が上記ビデオ/画像情報に含まれてシグナリングされることができる。
【0064】
イントラ予測部331は、現ピクチャ内のサンプルを参照して現ブロックを予測することができる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置し、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを利用し、現ブロックに適用される予測モードを決定することもできる。
【0065】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出することができる。様々な予測モードに基づいてインター予測が実行されることができ、上記予測に関する情報は、上記現ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0066】
加算部340は、取得された残差信号に予測部(インター予測部332および/またはイントラ予測部331を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)を加えることによって、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使われることができる。
【0067】
加算部340は、復元部または復元ブロック生成部とも呼ばれる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることもでき、後述するようにフィルタリングを経て出力されることもでき、または次のピクチャのインター予測のために使われることもできる。
【0068】
一方、ピクチャデコード過程で、LMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
【0069】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ360、具体的には、メモリ360のDPBに送信できる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(sample adaptive offset)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0070】
メモリ360のDPBに記憶された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使われることができる。メモリ360は、現ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部332に伝達できる。メモリ360は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部331に伝達できる。
【0071】
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、およびイントラ予測部222で説明された実施形態は、各々、デコード装置300のフィルタリング部350、インター予測部332、およびイントラ予測部331にも同一または対応するように適用されることができる。
【0072】
前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、上記予測されたブロックは、空間領域(ドメイン)(または、ピクセル領域)における予測サンプルを含む。上記予測されたブロックは、エンコード装置およびデコード装置で同一に導出され、上記エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でない上記オリジナルブロックと上記予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、上記残差情報に基づいて残差サンプルを含む残差ブロックを導出し、上記残差ブロックと上記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0073】
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、上記オリジナルブロックと上記予測されたブロックとの間の残差ブロックを導出し、上記残差ブロックに含まれている残差サンプル(残差サンプルアレイ)に変換手順を実行して変換係数を導出し、上記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングできる。ここで、上記残差情報は、上記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、上記残差情報に基づいて、逆量子化/逆変換手順を実行して残差サンプル(または、残差ブロック)を導出することができる。デコード装置は、予測されたブロックと上記残差ブロックとに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0074】
インター予測が適用される場合、エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を実行して予測サンプルを導出することができる。インター予測は、現ピクチャ以外のピクチャ(1つまたは複数)のデータ要素(例えば、サンプル値、または動き情報など)に依存した方法で導出される予測を示すことができる(Inter prediction can be a prediction derived in a manner that is dependent on data elements(e.g., sample values or motion information) of picture(s) other than the current picture)。現ブロックにインター予測が適用される場合、参照ピクチャインデックスが指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導出することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報をブロック、サブブロックまたはサンプル単位で予測できる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測が適用される場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは、同じであってもよく、異なってもよい。上記時間隣接ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれることもあり、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)とも呼ばれる。例えば、現ブロックの隣接ブロックに基づいて動き情報候補リストが構成されることができ、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するためにどの候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードおよび(ノーマル)マージモードの場合、現ブロックの動き情報は、選択された隣接ブロックの動き情報と同じである。スキップモードの場合、マージモードとは異なり、残差信号が送信されない。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)がシグナリングされることができる。この場合、上記動きベクトル予測子と動きベクトル差分との和を利用して上記現ブロックの動きベクトルを導出することができる。
【0075】
インター予測に基づくビデオ/画像エンコード手順は、概略的に、例えば、下記を含むことができる。
【0076】
図4は、インター予測ベースのビデオ/画像エンコード方法の例を示す。
【0077】
エンコード装置は、現ブロックに対するインター予測を実行する(S400)。エンコード装置は、現ブロックのインター予測モードおよび動き情報を導出し、上記現ブロックの予測サンプルを生成することができる。ここで、インター予測モード決定、動き情報導出、および予測サンプル生成手順は、同時に実行されてもよく、ある一手順が他の手順より以前に実行されてもよい。例えば、エンコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含むことができ、予測モード決定部で上記現ブロックに対する予測モードを決定し、動き情報導出部で上記現ブロックの動き情報を導出し、予測サンプル導出部で上記現ブロックの予測サンプルを導出することができる。例えば、エンコード装置のインター予測部は、動き推定(motion estimation)を介して参照ピクチャの一定領域(サーチ領域)内で上記現ブロックと類似したブロックをサーチし、上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。これに基づいて上記参照ブロックが位置する参照ピクチャを指す参照ピクチャインデックスを導出し、上記参照ブロックと上記現ブロックとの位置差に基づいて動きベクトルを導出することができる。エンコード装置は、多様な予測モードのうち、上記現ブロックに対して適用されるモードを決定することができる。エンコード装置は、上記多様な予測モードに対するRD costを比較して上記現ブロックに対する最適な予測モードを決定することができる。
【0078】
例えば、エンコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれているマージ候補が指す参照ブロックのうち、上記現ブロックと上記現ブロックとの差が最小または一定基準以下である参照ブロックを導出することができる。この場合、上記導出された参照ブロックと関連するマージ候補が選択され、上記選択されたマージ候補を指すマージインデックス情報が生成されてデコード装置にシグナリングされることができる。上記選択されたマージ候補の動き情報を利用して、上記現ブロックの動き情報が導出されることができる。
【0079】
他の例として、エンコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれているmvp(motion vector predictor)候補の中から選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。この場合、例えば、前述した動き推定により導出された参照ブロックを指す動きベクトルが、上記現ブロックの動きベクトルとして利用されることができ、上記mvp候補のうち、上記現ブロックの動きベクトルとの差が最も小さい動きベクトルを有するmvp候補が、上記選択されたmvp候補になる。上記現ブロックの動きベクトルから上記mvpを引いた差分であるMVD(Motion Vector Difference)が導出されることができる。この場合、上記MVDに関する情報がデコード装置にシグナリングされることができる。また、(A)MVPモードが適用される場合、上記参照ピクチャインデックスの値は、参照ピクチャインデックス情報で構成されて別途に上記デコード装置にシグナリングされることができる。
【0080】
エンコード装置は、上記予測サンプルに基づいて残差サンプルを導出することができる(S410)。エンコード装置は、上記現ブロックのオリジナルサンプルと上記予測サンプルとの比較を介して上記残差サンプルを導出することができる。
【0081】
エンコード装置は、予測情報および残差情報を含む画像情報をエンコードする(S420)。エンコード装置は、エンコードされた画像情報をビットストリーム形態で出力できる。上記予測情報は、上記予測手順に関連する情報であって、予測モード情報(例えば、skip flag、merge flagまたはmode indexなど)および動き情報に関する情報を含むことができる。上記動き情報に関する情報は、動きベクトルを導出するための情報である候補選択情報(例えば、merge ind例えば、mvp flagまたはmvp index)を含むことができる。また、上記動き情報に関する情報は、前述したMVDに関する情報および/または参照ピクチャインデックス情報を含むことができる。また、上記動き情報に関する情報は、L0予測、L1予測、または双(対)(bi)予測が適用されるかどうかを示す情報を含むことができる。上記残差情報は、上記残差サンプルに関する情報である。上記残差情報は、上記残差サンプルに対する量子化された変換係数に関する情報を含むことができる。
【0082】
出力されたビットストリームは、(デジタル)記憶媒体に記憶されてデコード装置に伝達されることもでき、またはネットワークを介してデコード装置に伝達されることもできる。
【0083】
一方、前述したように、エンコード装置は、上記参照サンプルおよび上記残差サンプルに基づいて復元ピクチャ(復元サンプルおよび復元ブロックを含む)を生成することができる。これは、デコード装置で実行されることと同じ予測結果をエンコード装置で導出するためであり、それによって、コーディング効率を上げることができる。したがって、エンコード装置は、復元ピクチャ(または、復元サンプル、復元ブロック)をメモリに記憶し、インター予測のための参照ピクチャとして活用できる。上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0084】
インター予測に基づくビデオ/画像デコード手順は、概略的に、例えば、下記を含むことができる。
【0085】
図5は、インター予測ベースのビデオ/画像デコード方法の例を示す。
【0086】
図5に示すように、デコード装置は、上記エンコード装置で実行された動作と対応する動作を実行することができる。デコード装置は、受信した予測情報に基づいて現ブロックに予測を実行して予測サンプルを導出することができる。
【0087】
具体的には、デコード装置は、受信した予測情報に基づいて上記現ブロックに対する予測モードを決定することができる(S500)。デコード装置は、上記予測情報内の予測モード情報に基づいて、上記現ブロックにどのようなインター予測モードが適用されるかを決定することができる。
【0088】
例えば、上記merge flagに基づいて、上記現ブロックに上記マージモードが適用されるかまたは(A)MVPモードが決定されるかを決定することができる。あるいは、上記mode indexに基づいて多様なインター予測モード候補の中から1つを選択することができる。上記インター予測モード候補は、スキップモード、マージモードおよび/もしくは(A)MVPモードを含むことができ、または後述する多様なインター予測モードを含むことができる。
【0089】
デコード装置は、上記決定したインター予測モードに基づいて上記現ブロックの動き情報を導出する(S510)。例えば、デコード装置は、上記現ブロックにスキップモードまたはマージモードが適用される場合、後述するマージ候補リストを構成し、上記マージ候補リストに含まれているマージ候補の中から1つのマージ候補を選択することができる。上記選択は、前述した選択情報(merge index)に基づいて実行されることができる。上記選択されたマージ候補の動き情報を利用して、上記現ブロックの動き情報が導出されることができる。上記選択されたマージ候補の動き情報が、上記現ブロックの動き情報として利用されることができる。
【0090】
他の例として、デコード装置は、上記現ブロックに(A)MVPモードが適用される場合、後述する(A)MVP候補リストを構成し、上記(A)MVP候補リストに含まれているmvp(motion vector predictor)候補の中から選択されたmvp候補の動きベクトルを上記現ブロックのmvpとして利用できる。上記選択は、前述した選択情報(mvp flagまたはmvp index)に基づいて実行されることができる。この場合、上記MVDに関する情報に基づいて上記現ブロックのMVDを導出することができ、上記現ブロックのmvpおよび上記MVDに基づいて上記現ブロックの動きベクトルを導出することができる。また、上記参照ピクチャインデックス情報に基づいて上記現ブロックの参照ピクチャインデックスを導出することができる。上記現ブロックに対する参照ピクチャリスト内で上記参照ピクチャインデックスが指すピクチャが、上記現ブロックのインター予測のために参照される参照ピクチャとして導出されることができる。
【0091】
一方、後述するように、候補リスト構成なしで上記現ブロックの動き情報が導出されることができ、この場合、後述する予測モードで開示された手順によって上記現ブロックの動き情報が導出されることができる。この場合、前述したような候補リスト構成は省略されることができる。
【0092】
デコード装置は、上記現ブロックの動き情報に基づいて上記現ブロックに対する予測サンプルを生成することができる(S520)。この場合、上記現ブロックの参照ピクチャインデックスに基づいて上記参照ピクチャを導出し、上記現ブロックの動きベクトルが上記参照ピクチャ上で指す参照ブロックのサンプルを用いて上記現ブロックの予測サンプルを導出することができる。この場合、後述するように、場合によって、上記現ブロックの予測サンプルのうちの全部または一部に対する予測サンプルフィルタリング手順がさらに実行されることができる。
【0093】
例えば、デコード装置のインター予測部は、予測モード決定部、動き情報導出部、予測サンプル導出部を含むことができ、予測モード決定部で受信した予測モード情報に基づいて上記現ブロックに対する予測モードを決定し、動き情報導出部で受信した動き情報に関する情報に基づいて上記現ブロックの動き情報(動きベクトルおよび/または参照ピクチャインデックスなど)を導出し、予測サンプル導出部で上記現ブロックの予測サンプルを導出することができる。
【0094】
デコード装置は、受信した残差情報に基づいて上記現ブロックに対する残差サンプルを生成する(S530)。デコード装置は、上記予測サンプルおよび上記残差サンプルに基づいて上記現ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成することができる(S540)。以後、上記復元ピクチャにインループフィルタリング手順などがさらに適用されることができることは、前述の通りである。
【0095】
図6は、インター予測手順を例示的に示す。
【0096】
図6に示すように、前述したように、インター予測手順は、インター予測モード決定ステップ、決定された予測モードによる動き情報導出ステップ、導出された動き情報に基づく予測実行(予測サンプル生成)ステップを含むことができる。上記インター予測手順は、前述したように、エンコード装置およびデコード装置で実行されることができる。本文書において、コーディング装置とは、エンコード装置および/またはデコード装置を含むことができる。
【0097】
図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マージ候補とも呼ばれる。
【0098】
現ブロックのインター予測モードを指す予測モード情報が、エンコード装置からデコード装置にシグナリングされることができる。上記予測モード情報は、ビットストリームに含まれてデコード装置に受信されることができる。上記予測モード情報は、複数の候補モードのうちの1つを指示するインデックス情報を含むことができる。あるいは、フラグ情報の階層的シグナリングを介してインター予測モードを指示することもできる。この場合、上記予測モード情報は、1つまたは複数のフラグを含むことができる。例えば、スキップフラグをシグナリングしてスキップモードの適用が可能か否かを指示し、スキップモードが適用されない場合にマージフラグをシグナリングしてマージモードの適用が可能か否かを指示し、マージモードが適用されない場合にMVPモードが適用されることを指示し、または追加的な区分のためのフラグをさらにシグナリングすることもできる。アフィンモードは、独立したモードでシグナリングされることもでき、またはマージモードもしくはMVPモードなどに従属的なモードでシグナリングされることもできる。例えば、アフィンモードは、アフィンマージモードおよびアフィンMVPモードを含むことができる。
【0099】
コーディング装置は、上記現ブロックに対する動き情報を導出する(S610)。上記動き情報導出は、上記インター予測モードに基づいて導出されることができる。
【0100】
コーディング装置は、現ブロックの動き情報を利用してインター予測を実行することができる。エンコード装置は、動き推定(motion estimation)手順を介して現ブロックに対する最適な動き情報を導出することができる。例えば、エンコード装置は、現ブロックに対するオリジナルピクチャ内のオリジナルブロックを利用して、相関性が高い類似した参照ブロックを参照ピクチャ内の決められた探索範囲内で分数ピクセル単位で探索でき、それによって、動き情報を導出することができる。ブロックの類似性は、位相(phase)ベースのサンプル値の差に基づいて導出することができる。例えば、ブロックの類似性は、現ブロック(または、現ブロックのテンプレート)と参照ブロック(または、参照ブロックのテンプレート)との間のSADに基づいて計算されることができる。この場合、サーチ領域内のSADが最も小さい参照ブロックに基づいて動き情報を導出することができる。導出された動き情報は、インター予測モードに基づいて多様な方法によってデコード装置にシグナリングされることができる。
【0101】
コーディング装置は、上記現ブロックに対する動き情報に基づいてインター予測を実行する(S620)。コーディング装置は、上記動き情報に基づいて上記現ブロックに対する予測サンプル(1つまたは複数)を導出することができる。上記予測サンプルを含む現ブロックは、予測されたブロックとも呼ばれる。
【0102】
一方、インター予測において、従来のマージまたはAMVPモードによると、現ブロックの空間的/時間的に隣接するブロックの動きベクトルを動き情報候補として使用することによって、動き情報量を減らす方法が使われた。例えば、現ブロックの動き情報候補を導出するために使われる隣接ブロックは、現ブロックの左下側コーナ隣接ブロック、左側隣接ブロック、右上側コーナ隣接ブロック、上側隣接ブロック、左上側コーナ隣接ブロックを含むことができた。
【0103】
図7は、従来のマージまたはAMVPモードで動き情報候補導出のために使われた空間隣接ブロックを例示的に示す。
【0104】
基本的には、上記空間隣接ブロックは、現ブロックと接しているブロックに制限された。これは、ハードウェア実現性を高めるためであり、現ブロックと遠く離れているブロックの情報を導出するためにはラインバッファ増加などの問題が発生するためであった。しかしながら、現ブロックの動き情報候補を導出するために隣接しないブロックの動き情報を使用することは、多様な候補を構成することができるため、性能向上をもたらす。ラインバッファ増加なしで隣接しないブロックの動き情報を使用するためにHMVP(History based Motion Vector Prediction)方法が使われることができる。本文書において、HMVPは、History based Motion Vector PredictionまたはHistory based Motion Vector Predictorを示すことができる。本文書によると、HMVPを利用して効率的にインター予測を実行することができ、並列処理(プロセシング)をサポートすることができる。例えば、本文書の実施形態では、並列化処理のためにヒストリバッファを管理する多様な方法を提案しており、これに基づいて並列処理がサポートされることができる。ただし、並列処理をサポートするとは、並列処理が必須的に実行されるべきであるという意味ではなく、ハードウェア性能やサービス形態を考慮してコーディング装置が並列処理を実行してもよく、実行しなくてもよい。例えば、コーディング装置がマルチコアプロセッサを備える場合、コーディング装置は、スライス、ブリックおよび/またはタイルのうちの一部を並列処理することができる。一方、コーディング装置がシングルコアプロセッサを備える場合またはマルチコアプロセッサを備える場合、コーディング装置は、演算およびメモリ負担を減らしながらシーケンシャル処理を実行することもできる。
【0105】
前述したHMVP方法によるHMVP候補は、以前にコーディングされたブロックの動き情報を含むことができる。例えば、現ピクチャ内のブロックコーディング順序によって以前にコーディングされたブロックの動き情報は、上記以前にコーディングされたブロックが現ブロックに隣接しない場合、上記現ブロックの動き情報として考慮されなかった。しかしながら、HMVP候補は、上記以前にコーディングされたブロックが現ブロックに隣接するかどうかを考慮せずに、現ブロックの動き情報候補(例えば、マージ候補またはMVP候補)として考慮されることができる。この場合、複数のHMVP候補がバッファに記憶されることができる。例えば、現ブロックにマージモードが適用される場合、HMVP候補(HMVPマージ候補)がマージ候補リストに追加されることができる。この場合、上記HMVP候補は、マージ候補リストに含まれる空間マージ候補および時間マージ候補の次に追加されることができる。
【0106】
HMVP方法によると、以前にコーディングされたブロックの動き情報は、テーブル形態で記憶されることができ、現ブロックの動き情報候補(例えば、マージ候補)として使われることができる。複数のHMVP候補を含むテーブル(または、バッファ、リスト)がエンコード/デコード手順の間に維持されることができる。上記テーブル(または、バッファ、リスト)は、HMVPテーブル(または、バッファ、リスト)とも呼ばれる。本文書の一実施形態によると、上記テーブル(または、バッファ、リスト)は、新しいスライスに接する(出会う)(encounter)場合に初期化されることができる。あるいは、本文書の一実施形態によると、上記テーブル(または、バッファ、リスト)は、新しいCTU行に接する場合に初期化されることができる。上記テーブルが初期化される場合、上記テーブルに含まれているHMVP候補の個数は、0に設定されることができる。上記テーブル(または、バッファ、リスト)のサイズは、特定値(例えば、5など)に固定されることができる。例えば、インターコーディングされたブロックがある場合、関連する動き情報が上記テーブルの最後のエントリで新しいHMVP候補として追加されることができる。上記(HMVP)テーブルは、(HMVP)バッファまたは(HMVP)リストとも呼ばれる。
【0107】
図8は、HMVP候補ベースのデコード手順の例を概略的に示す。ここで、HMVP候補ベースのデコード手順は、HMVP候補ベースのインター予測手順を含むことができる。
【0108】
図8に示すように、デコード装置は、HMVP候補(1つまたは複数)を含むHMVPテーブルをロードし、上記HMVP候補(1つまたは複数)のうちの少なくとも1つに基づいてブロックをデコードする。具体的には、例えば、デコード装置は、上記HMVP候補(1つまたは複数)のうちの少なくとも1つに基づいて現ブロックの動き情報を導出することができ、上記動き情報に基づいて上記現ブロックに対するインター予測を実行し、予測されたブロック(予測サンプルを含む)を導出することができる。上記予測されたブロックに基づいて復元ブロックが生成されることができることは、前述の通りである。上記現ブロックの導出された動き情報は、上記テーブルでアップデートされることができる。この場合、上記動き情報が上記テーブルの最後のエントリとして新しいHMVP候補として追加されることができる。上記テーブルに既に含まれているHMVP候補の個数が上記テーブルのサイズと同じ場合、上記テーブルに最初に入った候補が削除され、上記導出された動き情報が上記テーブルの最後のエントリに新しいHMVP候補として追加されることができる。
【0109】
図9は、FIFO規則によるHMVPテーブルアップデートを例示的に示し、図10は、制限されたFIFO規則によるHMVPテーブルアップデートを例示的に示す。
【0110】
上記テーブルには、FIFO(First-In-First-Out)規則が適用されることができる。例えば、テーブルサイズSが16である場合、これは、16個のHMVP候補が上記テーブルに含まれることができることを示す。以前にコーディングされたブロックから16個より多いHMVP候補が発生した場合、FIFO規則が適用されることができ、それによって、上記テーブルは、最新にコーディングされた最大16個の動き情報候補を含むことができる。この場合、上記図9に示すように、FIFO規則が適用されて最古のHMVP候補が除去され、新しいHMVP候補が追加されることができる。
【0111】
一方、コーディング効率をより向上させるために、図10に示すように制限されたFIFO規則が適用されることもできる。図10に示すように、HMVP候補をテーブルに挿入するとき、先に、重複チェック(redundancy check)が適用されることができる。それによって、同じ動き情報を有するHMVP候補が既に上記テーブルに存在するかどうかを判断することができる。上記テーブルに同じ動き情報を有するHMVP候補が存在する場合、上記同じ動き情報を有するHMVP候補は、上記テーブルから除去され、上記除去されるHMVP候補以後のHMVP候補は、一間(隔)ずつ動いて(すなわち、各インデックス-1)、以後新しいHMVP候補が挿入されることができる。
【0112】
前述したように、HMVP候補は、マージ候補リスト構成手順で使われることができる。この場合、例えば、上記テーブル内の最後のエントリから最初のエントリまで挿入可能な全てのHMVP候補は、空間マージ候補および時間マージ候補の次に挿入されることができる。この場合、プルーニングチェックがHMVP候補に対して適用されることができる。許容される最大マージ候補の個数はシグナリングされることができ、使用可能(可用)マージ候補の全体の個数が最大マージ候補の個数に到達する場合、上記マージ候補リスト構成手順は終了されることができる。
【0113】
同様に、HMVP候補は、(A)MVP候補リスト構成手順で使われることもできる。この場合、HMVPテーブル内の最後のk個のHMVP候補の動きベクトルがMVP候補リストを構成するTMVP候補の次に追加されることができる。この場合、例えば、MVPターゲット参照ピクチャと同じ参照ピクチャを有するHMVP候補が、上記MVP候補リスト構成のために使われることができる。ここで、MVPターゲット参照ピクチャは、上記MVPモードが適用された現ブロックのインター予測のための参照ピクチャを示すことができる。この場合、プルーニングチェックがHMVP候補に対して適用されることができる。上記kは、例えば、4である。ただし、これは例示に過ぎず、上記kは、1、2、3、4など、多様な値を有することができる。
【0114】
一方、マージ候補の全体の個数が15と同じまたは大きい場合、以下の表1のようにtruncated unary plus fixed length(with 3 bits)二進化(binarization)方法が、マージインデックスコーディングのために適用されることができる。
【0115】
【表1】
【0116】
上記表は、Nmrg=15である場合を仮定し、Nmrgは、マージ候補の全体の個数を示す。
【0117】
一方、ビデオコデックを適用したソリューション開発時、実現最適化のために画像/ビデオコーディングにおいて並列処理がサポートされることもできる。
【0118】
図11は、並列処理のための技法のうちの1つであるWPP(Wavefront Parallel Processing)を例示的に示す。
【0119】
図11に示すように、WPPが適用される場合、CTU行単位で並列化処理されることができる。この場合、Xで示されたブロックをコーディング(エンコード/デコード)する場合に矢印が指す位置との依存性(ディペンデンシ)が存在するようになる。したがって、現在コーディングしようとするブロックの右上側CTUのコーディングが完了することを待たなければならない。また、WPPが適用される場合、CABAC確率テーブル(または、コンテキスト情報)の初期化は、スライス単位でなされることができ、エントロピエンコード/デコードを含んで並列化処理するためには、CTU行単位でCABAC確率テーブル(または、コンテキスト情報)が初期化されなければならない。WPPは、効率的な初期化位置を決めるために提案された技術と見なすことができる。WPPが適用される場合、各LCT行は、サブストリームと呼ばれることができ、コーディング装置が複数の処理コアを備えた場合、並列処理がサポート(支援)され得る。例えば、WPPが適用される場合、3個の処理コア(core)がデコードを並列的に処理するならば、1番目の処理コアは、サブストリーム0をデコードし、2番目の処理コアは、サブストリーム1をデコードし、3番目の処理コアは、サブストリーム2をデコードすることができる。WPPが適用される場合には、n番目(nは、整数)のサブストリームに対してコーディングが行われ(進まれ)た後、n番目のサブストリームの2番目のCTUまたはLCUに対するコーディングが完了した後、n+1番目のサブストリームに対するコーディングが行われ得る。例えば、エントロピコーディングの場合、n番目のサブストリームの2番目のLCUに対するエントロピコーディングが完了すれば、n+1番目のサブストリームの1番目のLCUは、n番目のサブストリームの2番目のLCUに対するコンテキスト情報に基づいてエントロピコーディングされることができる。このとき、スライス内でサブストリームの個数は、LCU行の個数と同一であることができる。また、スライス内でサブストリームの個数は、エントリポイントの個数と同一であることができる。このとき、エントリポイントの個数は、エントリポイントオフセットの個数により特定されることができる。例えば、エントリポイントの個数は、エントリポイントオフセットの個数より1大きい値を有することができる。エントリポイントオフセットの個数に関する情報および/またはオフセットの値に関する情報が上述したビデオ/画像情報に含まれてエンコードされることができ、ビットストリームを介してデコード装置にシグナリングされることができる。一方、コーディング装置が1つの処理コアを備える場合、1つのサブストリーム単位でコーディング処理を行い、これを介してメモリ負荷およびコーディング依存性を減らすことができる。
【0120】
前述したHMVP方法は、予め決められたバッファ(HMVPテーブル)の大きさほど(by the size of a predetermined buffer (HMVP table))各ブロックのコーディング手順で導出された動き情報を候補として記憶する。この場合、図9で付加条件なしで開示したようにバッファ数ほど(as many as the number of buffers)候補を満たすこともでき、または新しく追加される候補とバッファ(HMVPテーブル)内に存在する候補との重複チェックを介して重複しないように候補を満たすこともできる。それによって、多様な候補を構成することができる。しかしながら、ビデオコデックを適用したソリューション開発時、HMVP候補がバッファに満たされる時点を一般的に知ることができないため、WPPを適用して、またはWPPを適用しなくても並列処理可能に実現することが不可能である。
【0121】
図12は、並列処理を考慮して一般的なHMVP方法を適用するときの問題点を例示的に示す。
【0122】
図12に示すように、WPPのように各CTU行単位で並列化する場合、HMVPバッファの依存性問題が発生し得る。例えば、N(N>=1)番目のCTU行における1番目のCTUのためのHMVPバッファは、N-1番目のCTU行に存在するブロック、例えば、N-1番目のCTU行の最後のCTU内のブロックのコーディング(エンコード/デコード)が完了しなければ満たされないためである。すなわち、現在の構造下で並列処理が適用される場合、デコード装置は、現HMVPバッファに記憶されたHMVP候補が現(対象)ブロックのデコードのために使われるHMVPバッファが適合する(合う)かどうかを知ることができない。これは、シーケンシャル処理を適用する場合に現ブロックのコーディング時点で導出されるHMVPバッファと、並列処理を適用する場合に現ブロックのコーディング時点で導出されるHMVPバッファと、に差が発生するおそれがあるためである。
【0123】
本文書の一実施形態では、上記のような問題点を解決するために、HMVPを適用するとき、ヒストリ管理バッファ(HMVPバッファ)を初期化することによって並列処理がサポートされるようにする。
【0124】
図13は、本文書の一実施形態に係るヒストリ管理バッファ(HMVPバッファ)の初期化方法を例示的に示す。
【0125】
図13に示すように、CTU行の最初のCTUごとにHMVPバッファが初期化されることができる。すなわち、CTU行の最初のCTUをコーディングする場合、HMVPバッファを初期化することで、HMVPバッファに含まれているHMVP候補の個数が0になるようにすることができる。上記のように、CTU行ごとにHMVPバッファを初期化することによって、並列処理がサポートされる場合も制約なしで現ブロックの左側方向に位置するCTUのコーディング過程で導出されたHMVP候補を使用することができる。この場合、例えば、現ブロックである現CUがCTU行の1番目のCTUに位置し、現CUが上記1番目のCTUの1番目のCUに該当する場合、上記HMVPバッファに含まれているHMVP候補の個数が0である。また、例えば、上記CTU行で現CUより以前にコーディングされたCUがインターモードでコーディングされると、上記以前にコーディングされたCUの動き情報に基づいてHMVP候補が導出されて上記HMVPバッファに含まれることができる。
【0126】
図14は、一実施形態に係るHMVPバッファ管理方法を例示的に示す。
【0127】
図14に示すように、スライス単位でHMVPバッファを初期化することができ、スライス内のCTUに対してもコーディング対象CTU(現CTU)が各CTU行の1番目のCTUかどうかを判断することができる。図14では、例示として(ctu_idx % Num)が0である場合、1番目のCTUであると判断すると記述した。このとき、Numは、各CTU行におけるCTU個数を意味する。他の例として、前述したブリック概念を利用する場合、ctu_idx_in_brick % BrickWidth)が0である場合、(該当ブリック内の)CTU行の1番目のCTUであると判断できる。ここで、ctu_idx_in_brickは、上記ブリック内の該当CTUのインデックスを示し、BrickWidthは、該当ブリックの幅をCTU単位で表す。すなわち、BrickWidthは、該当ブリック内のCTU列の個数を示すことができる。現CTUがCTU行の1番目のCTUである場合、HMVPバッファを初期化(すなわち、HMVPバッファ内の候補の個数を0に設定)し、そうでない場合、HMVPバッファを維持する。以後、該当CTU内の各CU別予測過程(例えば、マージまたはMVPモードベース)を経て、このとき、HMVPバッファに記憶された候補がマージモードまたはMVPモードの動き情報候補(例えば、マージ候補またはMVP候補)として含まれることができる。マージモードまたはMVPモードなどに基づくインター予測過程で導出された対象ブロック(現ブロック)の動き情報は、HMVPバッファに新しいHMVP候補として記憶(アップデート)される。この場合、前述した重複チェック過程がさらに実行されることもできる。以後、CUおよびCTUに対しても前述した手順が繰り返されることができる。
【0128】
他の例として、HMVPを適用するとき、CTUごとにHMVPバッファを初期化することでCTU単位の依存性を除去することもできる。
【0129】
図15は、他の一実施形態に係るHMVPバッファ管理方法を例示的に示す。
【0130】
図15に示すように、現CTUが各CTU行の1番目のCTUかどうかを判断することなしでCTUごとにHMVPバッファ初期化を実行することができる。この場合、CTU単位でHMVPバッファが初期化されるため、CTU内に存在するブロックの動き情報がHMVPテーブルに記憶される。この場合、同一CTU内にあるブロック(例えば、CU)の動き情報に基づいてHMVP候補を導出することができ、下記のように、現CTUが各CTU行の1番目のCTUかどうかを判断することなしでHMVPバッファ初期化が可能になる。
【0131】
上述したように、HMVPバッファをスライス単位で初期化することができ、これを介して現ブロックと空間的に離れているブロックの動きベクトルを使用することが可能である。しかしながら、この場合、スライス内では並列処理サポートが不可能であるため、上述した実施形態などでは、CTU行やCTU単位でバッファを初期化する方法を提案した。すなわち、本文書の実施形態などによれば、HMVPバッファは、スライス単位で初期化されることができ、スライス内では、CTU行単位で初期化されることができる。
【0132】
一方、1つのピクチャをコーディング(エンコード/デコード)するとき、当該ピクチャをスライス単位で分割することができ、および/または当該ピクチャをタイル単位で分割することもできる。例えば、エラー耐性(error resilience)を考慮して当該ピクチャをスライス単位で分割することができ、または当該ピクチャ内の一部領域をエンコード/デコードするために、当該ピクチャをタイル単位で分割することもできる。1つのピクチャが複数のタイルに分割されるとき、HMVP管理バッファを適用する場合、当該ピクチャ内のCTU行単位で初期化を実行、すなわち、ピクチャ内の各CTU行の1番目のCTUでHMVPバッファを初期化することは、ピクチャの一部分を符号化/復号するためのタイル構造では適していない。
【0133】
図16は、タイル構造におけるHMVPバッファ初期化方法を例示的に示す。
【0134】
図16のように、タイル1、タイル3の場合、各タイル単位でHMVP管理バッファが初期化されないので、各々タイル0、タイル2との(HMVP)依存性(dependency)が発生する。したがって、タイルが存在するとき、次のような方法でHMVPバッファを初期化することが可能である。
【0135】
一例として、CTU単位でHMVPバッファを初期化できる。これは、タイル、スライスなどを区分せずに適用され得ることは当然である。
【0136】
他の例として、各タイルの1番目のCTUを対象としてHMVPバッファを初期化できる。
【0137】
図17は、他の一実施形態に係るタイルの1番目のCTUを対象としたHMVPバッファ初期化方法の例を示す。
【0138】
図17に示すように、各タイルの1番目のCTUをコーディングするにあたって、HMVPバッファが初期化される。すなわち、タイル0をコーディングするとき、HMVPバッファ0が初期化されて使用され、タイル1をコーディングするとき、HMVPバッファ1が初期化されて使用されることができる。
【0139】
さらに他の例として、各タイル内のCTU行の1番目のCTUを対象としてHMVPバッファを初期化できる。
【0140】
図18は、さらに他の一実施形態に係る各タイル内のCTU行の1番目のCTUを対象としたHMVP管理バッファ初期化方法の例を示す。
【0141】
図18に示すように、各タイルのCTU行ごとにHMVPバッファが初期化され得る。例えば、タイルnの1番目のCTU行の1番目のCTUでHMVPバッファが初期化され、タイルnの2番目のCTU行の1番目のCTUでHMVPバッファが初期化され、タイルnの3番目のCTU行の1番目のCTUでHVMPバッファが初期化され得る。この場合、コーディング装置にマルチ(多重)コアプロセッサがあるならば、コーディング装置は、タイルnの1番目のCTU行のためのHMVPバッファ0を初期化して使用し、タイルnの2番目のCTU行のためのHVMPバッファ1を初期化して使用し、タイルnの3番目のCTU行のためのHMVPバッファ2を初期化して使用することができ、これを介して並列処理をサポートできる。一方、コーディング装置が単一コアプロセッサを備えた場合、コーディング装置は、コーディング順序によってHVMPバッファを各タイル内の各CTU行の1番目のCTUで初期化して再使用することができる。
【0142】
一方、タイル分割構造およびスライス分割構造によって、1つのピクチャ内にタイルとスライスとが同時に存在することもできる。
【0143】
図19は、タイルとスライスとが同時に存在する構造の例を示す。
【0144】
図19は、1つのピクチャが4個のタイルに分割され、各タイル内に2個のスライスが存在する場合を例示的に示す。図19のように、1つのピクチャ内にスライスおよびタイルの両方が存在する場合がありうるし、次のようにHMVPバッファを初期化することが可能である。
【0145】
一例として、CTU単位でHMVPバッファを初期化できる。このような方法は、CTUがタイルに位置するかスライスに位置するかを区分せずに適用されることができる。
【0146】
他の例として、各タイル内の1番目のCTUを対象としてHMVPバッファを初期化できる。
【0147】
図20は、各タイル内の1番目のCTUを対象としてHMVPバッファを初期化する方法の例を示す。
【0148】
図20に示すように、各タイルの1番目のCTUでHMVPバッファが初期化され得る。1つのタイル内の複数のスライスが存在する場合にも、タイル内の1番目のCTUでHMVPバッファ初期化が行われ得る。
【0149】
さらに他の例として、タイル内に存在する各スライスを対象としてHMVPバッファ初期化を行うこともできる。
【0150】
図21は、タイル内の各スライスを対象としてHMVPバッファを初期化する方法の例を示す。
【0151】
図21に示すように、タイル内の各スライスの1番目のCTUでHMVPバッファを初期化できる。したがって、1つのタイル内に複数のスライスが存在する場合には、上記複数のスライスの各々にHMVPバッファ初期化が行われ得る。この場合、各スライスの1番目のCTUを処理する場合に、上記HMVPバッファ初期化が行われ得る。
【0152】
一方、1つのピクチャ内にスライスなしで複数のタイルが存在しうる。あるいは、1つのスライス内に複数のタイルが存在することもできる。このような場合には、次のようにHMVPバッファ初期化を行うことができる。
【0153】
一例として、各タイルグループ単位でHMVPバッファが初期化され得る。
【0154】
図22は、タイルグループ内の1番目のタイルの1番目のCTUを対象としてHMVPバッファを初期化する例を示す。
【0155】
図22に示すように、1つのピクチャが2個のタイルグループに分けられ、各タイルグループ(TileGroup0、TileGroup1)が各々複数のタイルに分割されることができる。この場合、1つのタイルグループ内で1番目のタイルの1番目のCTUを対象としてHMVPバッファを初期化できる。
【0156】
他の例として、タイルグループ内のタイル単位でHMVPバッファが初期化され得る。
【0157】
図23は、タイルグループ内の各タイルの1番目のCTUを対象としてHMVPバッファを初期化する例を示す。
【0158】
図23に示すように、1つのピクチャが2個のタイルグループに分けられ、各タイルグループ(TileGroup0、TileGroup1)が各々複数のタイルに分割されることができる。この場合、1つのタイルグループ内で各タイルの1番目のCTUを対象としてHMVPバッファを初期化できる。
【0159】
さらに他の例として、タイルグループ内の各タイルのCTU行を対象としてHMVPバッファを初期化できる。
【0160】
図24は、タイルグループ内の各タイルのCTU行を対象としてHMVPバッファを初期化する例を示す。
【0161】
図24に示すように、1つのピクチャが2個のタイルグループに分けられ、各タイルグループ(TileGroup0、TileGroup1)が各々複数のタイルに分割されることができる。この場合、1つのタイルグループ内で各タイルのCTU行の1番目のCTUでHMVPバッファを初期化できる。
【0162】
あるいは、この場合にも、CTU単位でHMVP管理バッファを初期化することができる。これは、タイル、スライス、タイルグループなどを区分せずに適用され得ることは当然である。
【0163】
図25および図26は、本文書の実施形態(1つまたは複数)に係るインター予測方法を含むビデオ/画像エンコード方法および関連コンポーネントの一例を概略的に示す。図25において開示された方法は、図2において開示されたエンコード装置によって行われることができる。具体的には、例えば、図25のS2500ないしS2530は、上記エンコード装置の予測部220により行われることができ、図25のS2540は、上記エンコード装置の残差処理部230により行われることができ、図25のS2550は、上記エンコード装置のエントロピエンコード部240により行われることができる。図25において開示された方法は、本文書において上述した実施形態などを含むことができる。
【0164】
図25に示すように、エンコード装置は、現ブロックに対するHMVPバッファを導出する(S2500)。エンコード装置は、本文書の実施形態などで上述したHMVPバッファ管理方法を行うことができる。例えば、上記HMVPバッファは、スライス、タイル、またはタイルグループ単位で初期化されることができる。および/または、上記HMVPバッファは、CTU行単位で初期化されることができる。この場合、上記HMVPバッファは、上記スライス、タイル、またはタイルグループ内のCTU行単位で初期化されることができる。ここで、タイルは、ピクチャ内のCTUなどの長方形領域(rectangular region)を示すことができる。タイルは、上記ピクチャ内の特定タイル行および特定タイル列に基づいて明示されることができる。例えば、現ピクチャ内には、1つまたは複数のタイルが存在しうる。この場合、上記HMVPバッファは、現タイル内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。あるいは、上記現ピクチャ内には、1つまたは複数のスライスが存在しうる。この場合、上記HMVPバッファは、現スライス内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。あるいは、上記現ピクチャ内には、1つまたは複数のタイルグループが存在しうる。この場合、上記HMVPバッファは、現タイルグループ内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。
【0165】
エンコード装置は、上記現CTUが上記CTU行の上記1番目のCTUであるか否かを判断できる。この場合、上記HMVPバッファは、上記現ブロックを含む現CTUが位置するCTU行の1番目のCTUで初期化されることができる。言い換えれば、上記HMVPバッファは、上記現ブロックを含む現CTUが位置するCTU行の1番目のCTUを処理する場合、初期化されることができる。上記現ブロックを含む現CTUが上記現タイル内の上記CTU行の上記1番目のCTUであると判断された場合、上記HMVPバッファは、上記現CTU内で上記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を含み、上記現CTUが上記現タイル内の上記CTU行の上記1番目のCTUでないと判断された場合、上記HMVPバッファは、上記現タイル内の上記CTU行内で上記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を含むことができる。また、例えば、現ブロックである現CUが上記現タイル内の上記CTU行の1番目のCTUに位置し、現CUが上記1番目のCTUの1番目のCUに該当する場合、上記HMVPバッファに含まれるHMVP候補の個数が0である。また、例えば、上記現タイル内の上記CTU行で現CUより先にコーディングされたCU(例えば、現CTUで現CUより先にコーディングされたCUおよび/または現CTU行で現CTUより先にコーディングされたCTU内のCU)がインターモードでコーディングされていれば、上記先にコーディングされたCUの動き情報に基づいてHMVP候補が導出されて上記HMVPバッファに含まれることができる。
【0166】
上記現ピクチャが複数のタイルに分割される場合、上記HMVPバッファは、各タイル内のCTU行単位で初期化されることができる。
【0167】
上記HMVPバッファは、タイルまたはスライス内のCTU行単位で初期化されることができる。例えば、上記CTU行の特定CTUが上記現ピクチャ内における上記CTU行の1番目のCTUではなく、上記特定CTUが現タイルまたは現スライス内における上記CTU行の1番目のCTUである場合、上記HMVPバッファは、上記特定CTUで初期化されることができる。
【0168】
上記HMVPバッファが初期化される場合、上記HMVPバッファに含まれるHMVP候補の個数は、0に設定されることができる。
【0169】
エンコード装置は、上記HMVPバッファに基づいて動き情報候補リストを構成する(S2510)。上記HMVPバッファは、HMVP候補を含むことができ、上記HMVP候補を含む上記動き情報候補リストが構成され得る。
【0170】
一例として、上記現ブロックにマージモードが適用される場合、上記動き情報候補リストは、マージ候補リストであることができる。他の例として、上記現ブロックに(A)MVPモードが適用される場合、上記動き情報候補リストは、MVP候補リストであることができる。現ブロックにマージモードが適用される場合、上記HMVP候補は、上記現ブロックに対するマージ候補リスト内の使用可能なマージ候補(例えば、空間マージ候補および時間マージ候補を含む)の個数が予め決定された最大マージ候補個数より小さい場合に、上記マージ候補リストに追加されることができる。この場合、上記HMVP候補は、上記マージ候補リスト内で上記空間候補および時間候補の後に挿入されることができる。言い換えれば、上記HMVP候補には、上記マージ候補リスト内で上記空間候補および時間候補に割り当てられるインデックスよりさらに大きいインデックス値が割り当てられ得る。現ブロックに(A)MVPモードが適用される場合、上記HMVP候補は、上記現ブロックに対するMVP候補リスト内の使用可能なMVP候補(空間隣接ブロックおよび時間隣接ブロックに基づいて導出される)の個数が2個より小さい場合に、上記MVP候補リストに追加されることができる。
【0171】
エンコード装置は、上記動き情報候補リストに基づいて上記現ブロックの動き情報を導出することができる(S2520)。
【0172】
エンコード装置は、上記動き情報候補リストに基づいて上記現ブロックの動き情報を導出することができる。例えば、上記現ブロックにマージモードまたはMVPモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補をマージ候補またはMVP候補として使用することができる。例えば、上記現ブロックにマージモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補は、マージ候補リストの候補として含まれ、マージインデックスに基づいて上記マージ候補リストに含まれる候補の中で上記HMVP候補を指示できる。上記マージインデックスは、予測関連情報であって、後述する画像/ビデオ情報に含まれることができる。この場合、上記HMVP候補は、上記マージ候補リストに含まれる空間マージ候補および時間マージ候補よりさらに低い優先順位で上記マージ候補リスト内でインデックスが割り当てられ得る。すなわち、上記HMVP候補に割り当てられるインデックス値は、上記空間マージ候補および時間マージ候補のインデックス値達よりさらに高い値が割り当てられ得る。他の例として、上記現ブロックにMVPモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補は、マージ候補リストの候補として含まれ、MVPフラグ(または、MVPインデックス)に基づいて上記MVP候補リストに含まれる候補の中の上記HMVP候補を指示できる。上記MVPフラグ(または、MVPインデックス)は、予測関連情報であって、後述する画像/ビデオ情報に含まれることができる。
【0173】
エンコード装置は、上記導出された動き情報に基づいて上記現ブロックに対する予測サンプルを生成する(S2530)。エンコード装置は、上記動き情報に基づいてインター予測(動き補償)を行い、上記動き情報が参照ピクチャ上で指す参照サンプルを用いて予測サンプルを導出することができる。
【0174】
エンコード装置は、上記予測サンプルに基づいて残差サンプルを生成する(S2540)。エンコード装置は、上記現ブロックに対するオリジナルサンプルと上記現ブロックに対する予測サンプルとに基づいて残差サンプルを生成できる。
【0175】
エンコード装置は、上記残差サンプルに基づいて残差サンプルに関する情報を導出し、上記残差サンプルに関する情報を含む画像/ビデオ情報をエンコードする(S2550)。上記残差サンプルに関する情報は、残差情報と呼ばれることができ、量子化された変換係数に関する情報を含むことができる。エンコード装置は、上記残差サンプルに変換/量子化手順を行って、量子化された変換係数を導出することができる。
【0176】
エンコードされた画像/ビデオ情報は、ビットストリーム形態で出力されることができる。上記ビットストリームは、ネットワークまたは記憶媒体を介してデコード装置に送信されることができる。画像/ビデオ情報は、予測関連情報をさらに含むことができ、上記予測関連情報は、様々な予測モード(例えば、マージモード、MVPモードなど)に関する情報、MVD情報などをさらに含むことができる。
【0177】
図27および図28は、本文書の実施形態に係るインター予測方法を含む画像デコード方法および関連コンポーネントの一例を概略的に示す。図27において開示された方法は、図3において開示されたデコード装置によって行われることができる。具体的には、例えば、図27のS2700ないしS2730は、上記デコード装置の予測部330、S2740は、上記デコード装置の加算部340によって行われることができる。図27において開示された方法は、本文書で上述した実施形態を含むことができる。
【0178】
図27に示すように、デコード装置は、現ブロックに対するHMVPバッファを導出する(S2700)。デコード装置は、本文書の実施形態などで上述したHMVPバッファ管理方法を行うことができる。例えば、上記HMVPバッファは、スライス、タイル、またはタイルグループ単位で初期化されることができる。および/または、上記HMVPバッファは、CTU行単位で初期化されることができる。この場合、上記HMVPバッファは、上記スライス、タイル、またはタイルグループ内のCTU行単位で初期化されることができる。ここで、タイルは、ピクチャ内のCTUなどの長方形領域(rectangular region)を示すことができる。タイルは、上記ピクチャ内の特定タイル行および特定タイル列に基づいて明示されることができる。例えば、現ピクチャ内には、1つまたは複数のタイルが存在しうる。この場合、上記HMVPバッファは、現タイル内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。あるいは、上記現ピクチャ内には、1つまたは複数のスライスが存在しうる。この場合、上記HMVPバッファは、現スライス内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。あるいは、上記現ピクチャ内には、1つまたは複数のタイルグループが存在しうる。この場合、上記HMVPバッファは、現タイルグループ内の上記現ブロックを含むCTU行の1番目のCTUで初期化されることができる。
【0179】
デコード装置は、上記現CTUが上記CTU行の上記1番目のCTUであるか否かを判断できる。この場合、上記HMVPバッファは、上記現ブロックを含む現CTUが位置するCTU行の1番目のCTUで初期化されることができる。言い換えれば、上記HMVPバッファは、上記現ブロックを含む現CTUが位置するCTU行の1番目のCTUを処理する場合、初期化されることができる。上記現ブロックを含む現CTUが上記現タイル内の上記CTU行の上記1番目のCTUであると判断された場合、上記HMVPバッファは、上記現CTU内で上記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を含み、上記現CTUが上記現タイル内の上記CTU行の上記1番目のCTUでないと判断された場合、上記HMVPバッファは、上記現タイル内の上記CTU行内で上記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を含むことができる。また、例えば、現ブロックである現CUが上記現タイル内の上記CTU行の1番目のCTUに位置し、現CUが上記1番目のCTUの1番目のCUに該当する場合、上記HMVPバッファに含まれるHMVP候補の個数が0である。また、例えば、上記現タイル内の上記CTU行で現CUより先にコーディングされたCU(例えば、現CTUで現CUより先にコーディングされたCUおよび/または現CTU行で現CTUより先にコーディングされたCTU内のCU)がインターモードでコーディングされていれば、上記先にコーディングされたCUの動き情報に基づいてHMVP候補が導出されて、上記HMVPバッファに含まれることができる。
【0180】
上記現ピクチャが複数のタイルに分割される場合、上記HMVPバッファは、各タイル内のCTU行単位で初期化されることができる。
【0181】
上記HMVPバッファは、タイルまたはスライス内のCTU行単位で初期化されることができる。例えば、上記CTU行の特定CTUが上記現ピクチャ内における上記CTU行の1番目のCTUではなく、上記特定CTUが現タイルまたは現スライス内における上記CTU行の1番目のCTUである場合、上記HMVPバッファは、上記特定CTUで初期化されることができる。
【0182】
上記HMVPバッファが初期化される場合、上記HMVPバッファに含まれるHMVP候補の個数は、0に設定されることができる。
【0183】
デコード装置は、上記HMVPバッファに基づいて動き情報候補リストを構成する(S2710)。上記HMVPバッファは、HMVP候補を含むことができ、上記HMVP候補を含む上記動き情報候補リストが構成され得る。
【0184】
一例として、上記現ブロックにマージモードが適用される場合、上記動き情報候補リストは、マージ候補リストであることができる。他の例として、上記現ブロックに(A)MVPモードが適用される場合、上記動き情報候補リストは、MVP候補リストであることができる。現ブロックにマージモードが適用される場合、上記HMVP候補は、上記現ブロックに対するマージ候補リスト内の使用可能なマージ候補(例えば、空間マージ候補および時間マージ候補を含む)の個数が予め決定された最大マージ候補個数より小さい場合に、上記マージ候補リストに追加されることができる。この場合、上記HMVP候補は、上記マージ候補リスト内で上記空間候補および時間候補の後に挿入されることができる。言い換えれば、上記HMVP候補には、上記マージ候補リスト内で上記空間候補および時間候補に割り当てられるインデックスよりさらに大きいインデックス値が割り当てられ得る。現ブロックに(A)MVPモードが適用される場合、上記HMVP候補は、上記現ブロックに対するMVP候補リスト内の使用可能なMVP候補(空間隣接ブロックおよび時間隣接ブロックに基づいて導出される)の個数が2個より小さい場合に、上記MVP候補リストに追加されることができる。
【0185】
デコード装置は、上記動き情報候補リストに基づいて上記現ブロックの動き情報を導出することができる(S2720)。
【0186】
エンコード装置は、上記動き情報候補リストに基づいて上記現ブロックの動き情報を導出することができる。例えば、上記現ブロックにマージモードまたはMVPモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補をマージ候補またはMVP候補として使用することができる。例えば、上記現ブロックにマージモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補は、マージ候補リストの候補として含まれ、ビットストリームから取得されたマージインデックスに基づいて上記マージ候補リストに含まれる候補の中の上記HMVP候補が指示され得る。この場合、上記HMVP候補は、上記マージ候補リストに含まれる空間マージ候補および時間マージ候補よりさらに低い優先順位で上記マージ候補リスト内でインデックスが割り当てられ得る。すなわち、上記HMVP候補に割り当てられるインデックス値は、上記空間マージ候補および時間マージ候補のインデックス値よりさらに高い値が割り当てられ得る。他の例として、上記現ブロックにMVPモードが適用される場合、上記HMVPバッファに含まれる上記HMVP候補は、マージ候補リストの候補として含まれ、ビットストリームから取得したMVPフラグ(または、MVPインデックス)に基づいて上記MVP候補リストに含まれる候補の中で上記HMVP候補が指示され得る。
【0187】
デコード装置は、上記導出された動き情報に基づいて上記現ブロックに対する予測サンプルを生成する(S2730)。デコード装置は、上記動き情報に基づいてインター予測(動き補償)を実行することで、上記動き情報が参照ピクチャ上で指す参照サンプルを利用して予測サンプルを導出することができる。上記予測サンプルを含む現ブロックは、予測されたブロックとも呼ばれる。
【0188】
デコード装置は、上記予測サンプルに基づいて復元サンプルを生成する(S2740)。上記復元サンプルに基づいて復元ブロック/ピクチャが生成されることができることは、前述の通りである。デコード装置は、上記ビットストリームから残差情報(量子化された変換係数に関する情報を含む)を取得することができ、上記残差情報に基づいて残差サンプルを導出することができ、上記予測サンプルと上記残差サンプルとに基づいて上記復元サンプルが生成されることができることは、前述の通りである。以後、必要によって、主観的/客観的画質を向上させるために、デブロックフィルタリング、SAOおよび/またはALF手順などのインループフィルタリング手順が上記復元ピクチャに適用されることができることは、前述の通りである。
【0189】
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、その実施形態は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと異なる順序でまたは同時に発生し得る。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または流れ図の1つもしくは複数のステップが本文書の実施形態の範囲に影響を及ぼさずに削除可能であることを理解することができる。
【0190】
前述した本文書の実施形態による方法は、ソフトウェア形態で実現されることができ、本文書によるエンコード装置および/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を実行する装置に含まれることができる。
【0191】
本文書において、実施形態がソフトウェアで実現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能など)で実現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体および/または他の記憶装置を含むことができる。すなわち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて実行されることができる。この場合、実現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記憶媒体に記憶されることができる。
【0192】
また、本文書の実施形態(1つまたは複数)が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(注文型ビデオ)(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)などを含むことができる。
【0193】
また、本文書の実施形態(1つまたは複数)が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータ読み取り可能な記録媒体に記憶されることができる。本文書の実施形態(1つまたは複数)に係るデータ構造を有するマルチメディアデータもコンピュータ読み取り可能な記録媒体に記憶されることができる。上記コンピュータ読み取り可能な記録媒体は、コンピュータが読み取ることができるデータが記憶されるあらゆる種類の記憶装置および分散記憶装置を含む。上記コンピュータ読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、および光学データ記憶装置を含むことができる。また、上記コンピュータ読み取り可能な記録媒体は、搬送波(例えば、インターネットを介しての送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータ読み取り可能な記録媒体に記憶されるか、有無線通信ネットワークを介して送信されることができる。
【0194】
また、本文書の実施形態(1つまたは複数)は、プログラムコードによるコンピュータプログラム製品で実現されることができ、上記プログラムコードは、本文書の実施形態(1つまたは複数)によりコンピュータで行われることができる。上記プログラムコードは、コンピュータにより読み取り可能なキャリア上に記憶されることができる。
【0195】
図29は、本文書で開示された実施形態が適用され得るコンテンツストリーミングシステムの例を示す。
【0196】
図29に示すように、本文書の実施形態が適用されるコンテンツストリーミングシステムは、概して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、媒体(メディア)記憶装置(格納所)(media storage)、ユーザ装置、およびマルチメディア入力装置を含むことができる。
【0197】
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略されることができる。
【0198】
上記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で一時的に上記ビットストリームを記憶することができる。
【0199】
上記ストリーミングサーバは、ウェブサーバを介したユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すると、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0200】
上記ストリーミングサーバは、メディア記憶装置および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間記憶することができる。
【0201】
上記ユーザ装置の例として、携帯電話、スマートフォン(smartphone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ULTRABOOK(登録商標))、ウェアラブルデバイス(wearable device、例えば、スマートウォッチ(smartwatch)、スマートグラス(グラス型端末)(smart glass)、HMD(Head Mounted Display))、デジタルTV、デスクトップコンピュータ、デジタル署名(サイニジ)などがある。
【0202】
上記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
【手続補正書】
【提出日】2021-05-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコード装置によって行われる画像デコード方法であって、
現ブロックに対するヒストリベース動きベクトル予測(History-based Motion Vector Prediction;HMVP)バッファを導出するステップと、
前記HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、
前記動き情報候補リストに基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて復元サンプルを生成するステップと、を有し、
現ピクチャは、1つまたは複数のタイルを有し
前記現ブロックは、コーディングツリーユニット(Coding Tree Unit;CTU)から分割されたコーディングユニット(Coding Units;CU)の1つに対し、
前記HMVPバッファは、以前のブロックの動き情報に基づいてアップデートされ、
前記HMVPバッファは、それぞれのタイルのそれぞれのCTU行ごとに1番目のCTUで初期化され
前記方法は、さらに、
前記CTUが現タイルのCTU行における1番目のCTUであるか否かを決定するステップを有し、
前記現ブロックに対する前記HMVPバッファは、前記決定の結果に基づいて導出され、
前記CTUが前記現タイルの前記CTU行における前記1番目のCTUであるという前記決定の結果に基づいて、前記HMVPバッファは、前記CTUに対して初期化される、画像デコード方法。
【請求項2】
前記HMVPバッファが初期化されることに基づいて、前記HMVPバッファに有されるHMVP候補の個数は、0に設定される、請求項1に記載の画像デコード方法。
【請求項3】
前記現ピクチャが複数のタイルに分割されることに基づいて、前記HMVPバッファは、各タイル内のCTU行単位で初期化される、請求項1に記載の画像デコード方法。
【請求項4】
前記現ブロックを有する前記CTUが前記現タイル内の前記CTU行の前記1番目のCTUであるという前記決定の結果に基づいて、前記HMVPバッファは、前記CTU内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有し、
記CTUが前記現タイル内の前記CTU行の前記1番目のCTUでないという前記決定の結果に基づいて、前記HMVPバッファは、前記現タイル内の前記CTU行内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有する、請求項1に記載の画像デコード方法。
【請求項5】
前記現ブロックにマージモードまたは動きベクトル予測(Motion Vector Prediction;MVP)モードが適用されることに基づいて、前記HMVPバッファに有される前記HMVP候補に基づいて前記動き情報候補リストが構成される、請求項1に記載の画像デコード方法。
【請求項6】
前記現ブロックにマージモードが適用されることに基づいて、前記動き情報候補リストは、マージ候補リストであり、前記HMVPバッファに有される前記HMVP候補は、前記マージ候補リストの候補として有され、
ビットストリームから取得されたマージインデックスに基づいて前記マージ候補リストに有される候補の中前記HMVP候補が指示される、請求項1に記載の画像デコード方法。
【請求項7】
エンコード装置によって行われる画像エンコード方法であって、
現ブロックに対するヒストリベース動きベクトル予測(History-based Motion Vector Prediction;HMVP)バッファを導出するステップと、
前記HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、
前記動き情報候補リストに基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて残差サンプルを導出するステップと、
前記残差サンプルに関する情報を有する画像情報をエンコードするステップと、を有し、
現ピクチャ内には、1つまたは複数のタイルが存在し、
前記現ブロックは、コーディングツリーユニット(Coding Tree Unit;CTU)から分割されたコーディングユニット(Coding Units;CU)の1つに対し、
前記HMVPバッファは、以前のブロックの動き情報に基づいてアップデートされ、
前記HMVPバッファは、それぞれのタイルのそれぞれのCTU行ごとに1番目のCTUで初期化され
前記方法は、さらに、
前記CTUが現タイルのCTU行における1番目のCTUであるか否かを決定するステップを有し、
前記現ブロックに対する前記HMVPバッファは、前記決定の結果に基づいて導出され、
前記CTUが前記現タイルの前記CTU行における前記1番目のCTUであるという前記決定の結果に基づいて、前記HMVPバッファは、前記CTUに対して初期化される、画像エンコード方法。
【請求項8】
前記HMVPバッファが初期化されることに基づいて、前記HMVPバッファに有されるHMVP候補の個数は、0に設定される、請求項に記載の画像エンコード方法。
【請求項9】
前記現ピクチャが複数のタイルに分割されることに基づいて、前記HMVPバッファは、各タイル内のCTU行単位で初期化される、請求項に記載の画像エンコード方法。
【請求項10】
前記現ブロックを有する前記CTUが前記現タイル内の前記CTU行の前記1番目のCTUであるという前記決定の結果に基づいて、前記HMVPバッファは、前記CTU内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有し、
記CTUが前記現タイル内の前記CTU行の前記1番目のCTUでないという前記決定の結果に基づいて、前記HMVPバッファは、前記現タイル内の前記CTU行内で前記現ブロックより先に処理されたブロックの動き情報に基づいて導出されたHMVP候補を有する、請求項に記載の画像エンコード方法。
【請求項11】
前記現ブロックにマージモードまたは動きベクトル予測(Motion Vector Prediction;MVP)モードが適用されることに基づいて、前記HMVPバッファに有される前記HMVP候補に基づいて前記動き情報候補リストが構成される、請求項に記載の画像エンコード方法。
【請求項12】
前記現ブロックにマージモードが適用されることに基づいて、前記動き情報候補リストは、マージ候補リストであり、前記HMVPバッファに有される前記HMVP候補は、前記マージ候補リストの候補として有され、
前記画像情報に有されるマージインデックスは、前記マージ候補リストに有される候補の中前記HMVP候補を指示する、請求項に記載の画像エンコード方法。
【請求項13】
コンピュータ読み取り可能な持続性デジタル記憶媒体であって、画像デコード方法をデコード装置が行うように引き起こすエンコードされた情報記憶し、前記方法は、
現ブロックに対するヒストリベース動きベクトル予測(History-based Motion Vector Prediction;HMVP)バッファを導出するステップと、
前記HMVPバッファに有されるHMVP候補に基づいて動き情報候補リストを構成するステップと、
前記動き情報候補リストに基づいて前記現ブロックの動き情報を導出するステップと、
前記動き情報に基づいて前記現ブロックに対する予測サンプルを生成するステップと、
前記予測サンプルに基づいて復元サンプルを生成するステップと、を有し、
現ピクチャは、1つまたは複数のタイルを有し、
前記現ブロックは、コーディングツリーユニット(Coding Tree Unit;CTU)から分割されたコーディングユニット(Coding Units;CU)の1つに対し、
前記HMVPバッファは、以前のブロックの動き情報に基づいてアップデートされ、
前記HMVPバッファは、それぞれのタイルのそれぞれのCTU行ごとに1番目のCTUで初期化され、
前記方法は、さらに、
前記CTUが現タイルのCTU行における1番目のCTUであるか否かを決定するステップを有し、
前記現ブロックに対する前記HMVPバッファは、前記決定の結果に基づいて導出され、
前記CTUが前記現タイルの前記CTU行における前記1番目のCTUであるという前記決定の結果に基づいて、前記HMVPバッファは、前記CTUに対して初期化される、デジタル記憶媒体。
【国際調査報告】