(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024026419
(43)【公開日】2024-02-28
(54)【発明の名称】変換に基づく映像コーディング方法及びその装置
(51)【国際特許分類】
H04N 19/12 20140101AFI20240220BHJP
H04N 19/61 20140101ALI20240220BHJP
H04N 19/593 20140101ALI20240220BHJP
H04N 19/157 20140101ALI20240220BHJP
H04N 19/176 20140101ALI20240220BHJP
H04N 19/186 20140101ALI20240220BHJP
H04N 19/70 20140101ALI20240220BHJP
【FI】
H04N19/12
H04N19/61
H04N19/593
H04N19/157
H04N19/176
H04N19/186
H04N19/70
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023214457
(22)【出願日】2023-12-20
(62)【分割の表示】P 2023015146の分割
【原出願日】2020-10-29
(31)【優先権主張番号】62/927,667
(32)【優先日】2019-10-29
(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)【発明者】
【氏名】キム スンファン
(72)【発明者】
【氏名】イム チェヒョン
(57)【要約】
【課題】本発明は、映像デコーディング方法に関する。
【解決手段】本文書による映像デコーディング方法は、クロマブロックのイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップとを含み、前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定されることを特徴とする。
【選択図】
図13
【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
ビットストリームからイントラ予測モード情報及びLFNSTインデックスを取得するステップと、
前記イントラ予測モード情報に基づいてクロマブロックのイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、
前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、
前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップと、
前記LFNSTインデックス及び前記LFNSTセットから導出されたLFNSTマトリクスに基づいて前記クロマブロックに対する変換係数を導出するステップと、
前記変換係数に基づいて前記クロマブロックに対するレジデュアルサンプルを導出するステップとを含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、映像デコーディング方法。
【請求項2】
前記特定位置は、前記ルマブロックの中心位置である、請求項1に記載の映像デコーディング方法。
【請求項3】
前記カラーフォーマットは、4:2:0であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH))に設定される、請求項1に記載の映像デコーディング方法。
【請求項4】
前記特定位置に対応するイントラ予測モードがIBCモードである場合、前記更新されたイントラ予測モードはイントラDCモードである、請求項1に記載の映像デコーディング方法。
【請求項5】
前記特定位置に対応するイントラ予測モードがパレットモードである場合、前記更新されたイントラ予測モードはイントラDCモードである、請求項1に記載の映像デコーディング方法。
【請求項6】
映像エンコーディング装置により実行される映像エンコーディング方法において、
クロマブロックに対するイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、
前記CCLMモードに基づいて前記クロマブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記クロマブロックに対するレジデュアルサンプルを導出するステップと、
前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、
前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップと、
前記クロマブロックに対する修正された変換係数を導出するステップと、を含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、映像エンコーディング方法。
【請求項7】
前記特定位置は、前記ルマブロックの中心位置である、請求項6に記載の映像エンコーディング方法。
【請求項8】
前記カラーフォーマットは、4:2:0であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH))に設定される、請求項6に記載の映像エンコーディング方法。
【請求項9】
前記特定位置に対応するイントラ予測モードがIBCモードである場合、前記更新されたイントラ予測モードはイントラDCモードである、請求項6に記載の映像エンコーディング方法。
【請求項10】
前記特定位置に対応するイントラ予測モードがパレットモードである場合、前記更新されたイントラ予測モードはイントラDCモードである、請求項6に記載の映像エンコーディング方法。
【請求項11】
映像に対するデータの送信方法であって、
前記映像に対するビットストリームを取得するステップであって、前記ビットストリームは、クロマブロックに対するイントラ予測モードをCCLM(cross-component linear model)モードとして導出し、前記CCLMモードに基づいて前記クロマブロックに対する予測サンプルを導出し、前記予測サンプルに基づいて前記クロマブロックに対するレジデュアルサンプルを導出し、前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新し、前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定し、前記クロマブロックに対する修正変換係数を導出し、前記ビットストリームを生成するために前記修正変換係数に関連したレジデュアル情報を符号化することに基づいて生成される、ステップと、
前記ビットストリームを含むデータを送信するステップとを含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、画像コーディング技術に関し、より詳細には、画像コーディングシステムにおいて変換(transform)に基づく画像コーディング方法及びその装置に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオのような高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど、既存の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して画像データを送信するか、既存の格納媒体を利用して画像/ビデオデータを格納する場合、送信費用と格納費用が増加する。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム画像のように、現実画像と異なる画像特性を有する画像/ビデオに対する放送が増加している。
【0004】
これにより、前記のような様々な特性を有する高解像度高品質の画像/ビデオの情報を効果的に圧縮して送信するか格納し、再生するために高効率の画像/ビデオ圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は、映像コーディング効率を上げる方法及び装置を提供することにある。
【0006】
本文書の他の技術的課題は、LFNSTインデックスコーディングの効率を上げる方法及び装置を提供することにある。
【0007】
本文書の他の技術的課題は、LFNSTインデックスのコーディングを介して2次変換の効率を上げる方法及び装置を提供することにある。
【0008】
本文書の他の技術的課題は、CCLMモードであるとき、ルマブロックのイントラモードを借用してLFNST変換セットを導出することに対する映像コーディング方法及び装置を提供することにある。
【課題を解決するための手段】
【0009】
本文書の一実施例によると、デコーディング装置により実行される映像デコーディング方法を提供する。前記方法は、クロマブロックのイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップとを含み、前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定されることを特徴とする。
【0010】
前記特定位置は、前記ルマブロックの中心位置である。
【0011】
前記特定位置は、((xTbY+(nTbW*SubWidthC)/2)、(yTbY+(nTbH*SubHeightC)/2))に設定され、xTbY及びyTbYは、前記ルマブロックの左上端座標を示し、nTbW及びnTbHは、前記クロマブロックの幅及び高さを示し、SubWidthC及びSubHeightCは、前記カラーフォーマットに対応される変数である。
【0012】
前記カラーフォーマットが4:2:0である場合、SubWidthC及びSubHeightCは2であり、前記カラーフォーマットが4:2:2である場合、SubWidthCは2であり、かつSubHeightCは1である。
【0013】
前記特定位置に対応するイントラ予測モードがMIPモードである場合、前記更新されたイントラ予測モードはイントラプラナーモードである。
【0014】
前記特定位置に対応するイントラ予測モードがIBCモードである場合、前記更新されたイントラ予測モードはイントラDCモードである。
【0015】
前記特定位置に対応するイントラ予測モードがパレットモードである場合、前記更新されたイントラ予測モードはイントラDCモードである。
【0016】
本文書の一実施例によると、エンコーディング装置により実行される映像エンコーディング方法を提供する。前記方法は、クロマブロックに対するイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、前記CCLMモードに基づいて前記クロマブロックに対する予測サンプルを導出するステップと、前記予測サンプルに基づいて前記クロマブロックに対するレジデュアルサンプルを導出するステップと、前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップと、前記レジデュアルサンプル及び前記LFNSTマトリクスに基づいて前記クロマブロックに対する修正された変換係数を導出するステップと、を含み、前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定される。
【0017】
本文書の他の一実施例によると、エンコーディング装置により実行された映像エンコーディング方法によって生成されたエンコーディングされた映像情報及びビットストリームが含まれている映像データが格納されたデジタル格納媒体が提供される。
【0018】
本文書の他の一実施例によると、デコーディング装置により前記映像デコーディング方法を実行するようにするエンコーディングされた映像情報及びビットストリームが含まれている映像データが格納されたデジタル格納媒体が提供される。
【発明の効果】
【0019】
本文書によると、全般的な映像/ビデオ圧縮効率を上げることができる。
【0020】
本文書によると、LFNSTインデックスコーディングの効率を上げることができる。
【0021】
本文書によると、LFNSTインデックスのコーディングを介して2次変換の効率を上げることができる。
【0022】
本文書によると、CCLMモードであるとき、ルマブロックのイントラモードを借用してLFNST変換セットを導出することに対する映像コーディング方法及び装置を提供することができる。
【0023】
本明細書の具体的な一例を介して得られる効果は、以上で羅列された効果に制限されない。例えば、関連する技術分野における通常の知識を有する者(a person having ordinary skill in the related art)が、本明細書から理解または誘導できる様々な技術的効果が存在し得る。これによって、本明細書の具体的な効果は、本明細書に明示的に記載されているものに制限されず、本明細書の技術的特徴から理解または誘導できる様々な効果を含み得る。
【図面の簡単な説明】
【0024】
【
図1】本文書が適用され得るビデオ/画像エンコード装置の構成を概略的に説明する図である。
【
図2】本文書が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
【
図3】本文書の一実施形態に係る多重変換技法を概略的に示す。
【
図4】65個予測方向のイントラ方向性モードを例示的に示す。
【
図5】本文書の一実施形態に係るRSTを説明するための図である。
【
図6】一例によって順方向1次変換の出力データを1次元ベクトルで配列する順序を示した図である。
【
図7】一例によって順方向2次変換の出力データを2次元ブロックで配列する順序を示した図である。
【
図8】LFNSTが適用されるブロック形状を示した図である。
【
図9】一例によって順方向LFNSTの出力データの配置を示した図である。
【
図10】一例によって4×4LFNSTが適用されるブロックでのゼロアウトを示す図である。
【
図11】一例によって8×8LFNSTが適用されるブロックでのゼロアウトを示す図である。
【
図12】一実施例に係るクロマブロックのイントラ予測モード導出時に適用されることができるCCLMを説明するための図である。
【
図13】一例に係る映像のデコーディング方法を説明するための図である。
【
図14】一例に係る映像のエンコーディング方法を説明するための図である。
【
図15】本文書が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
【
図16】本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0025】
本文書は、様々な変更を加えることができ、様々な実施形態を有することができるが、特定の実施形態を図面に例示し、詳細に説明しようとする。しかし、これは、本文書を特定の実施形態に限定しようとするわけではない。本明細書で常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書における技術的思想を限定しようとする意図に使用されるわけではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを指定しようとするものであり、1つ又はそれ以上の異なる特徴や、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものの存在又は付加の可能性を予め排除しないものと理解されるべきである。
【0026】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立して示すものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味するのではない。例えば、各構成のうち、2つ以上の構成が合わせられて1つの構成をなすこともあり、1つの構成が複数の構成に分けられることもある。各構成が統合及び/又は分離された実施形態も、本文書の本質から外れない限り、本文書の権利範囲に含まれる。
【0027】
以下、添付図を参照として、本文書の好ましい実施例をより詳細に説明しようとする。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
【0028】
本文書は、ビデオ/画像コーディングに関する。例えば、本文書で開示された方法/実施例は、VVC(Versatile Video Coding)標準(ITU-T Rec. H.266)、VVC以降の次世代ビデオ/イメージのコーディング標準、又はそれ以外のビデオコーディング関連の標準(例えば、HEVC(High Efficiency Video Coding)標準(ITU-T Rec. H.265)、EVC(essential video coding)標準、AVS2標準等)と関連し得る。
【0029】
本文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、別の言及がない限り、前記実施形態は互いに組み合わせて実行することもある。
【0030】
本文書で、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定の時間帯における1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャは、1つ以上のスライス/タイルで構成されることができる。1つのピクチャは、1つ以上のタイルグループで構成されることができる。1つのタイルグループは、1つ以上のタイルを含むことができる。
【0031】
ピクセル(pixel)又はペル(pel)は、1つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的にピクセル又はピクセルの値を示すことがあり、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともあり、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともある。或いは、サンプルは空間ドメインでのピクセル値を意味することもあり、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもある。
【0032】
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関する情報の少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合に応じて、ブロック(block)又は領域(area)等の用語と混用して使用されてもよい。一般的な場合、M×Nブロックは、M個の列とN個の行とからなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)の集合(又はアレイ)を含むことができる。
【0033】
本文書において、「/」及び「、」は、「及び/又は」と解釈される。例えば、「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.”)
【0034】
さらに、本文書において、「又は」は、「及び/又は」と解釈される。例えば、「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.”)
【0035】
本明細書において、「少なくとも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)」と同様に解釈され得る。
【0036】
また、本明細書において、「少なくとも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)」を意味し得る。
【0037】
また、本明細書で使用される括弧は、「例えば(for example)」を意味し得る。具体的に、「予測(イントラ予測)」で表示された場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えると、本明細書の「予測」は、「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであり得る。また、「予測(すなわち、イントラ予測)」で表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
【0038】
本明細書において1つの図面内で個別的に説明される技術的特徴は、個別的に実現されてもよく、同時に実現されてもよい。
【0039】
図1は、本文書が適用できるビデオ/画像エンコード装置の構成を概略的に説明する図面である。以下、ビデオエンコード装置とは、画像エンコード装置を含むことができる。
【0040】
図1を参照すると、エンコード装置100は、画像分割部(image partitioner)110、予測部(predictor)120、レジデュアル処理部(residual processor)130、エントロピーエンコード部(entropy encoder)140、加算部(adder)150、フィルタリング部(filter)160、及びメモリ(memory)170を含めて構成されることができる。予測部120は、インター予測部121及びイントラ予測部122を含むことができる。レジデュアル処理部130は、変換部(transformer)132、量子化部(quantizer)133、逆量子化部(dequantizer)134、逆変換部(inverse transformer)135を含むことができる。レジデュアル処理部130は、減算部(subtractor)131をさらに含むことができる。加算部150は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれ得る。前述した画像分割部110、予測部120、レジデュアル処理部130、エントロピーエンコード部140、加算部150、及びフィルタリング部160は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体によって構成されることもできる。前記ハードウェアコンポーネントは、メモリ170を内/外部コンポーネントとしてさらに含むこともできる。
【0041】
画像分割部110は、エンコード装置100に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれ得る。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて、本文書に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットがすぐに最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて、最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、各々上述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であってもよく、前記変換ユニットは、変換係数を導く単位及び/又は変換係数からレジデュアル信号(residual signal)を導く単位であってもよい。
【0042】
ユニットは、場合に応じて、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行とからなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用できる。
【0043】
エンコード装置100は、入力画像信号(原本ブロック、原本サンプルアレイ)でインター予測部121またはイントラ予測部122から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部132に送信される。この場合、図示されたように、エンコード装置100内で入力画像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部131と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるか決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピーエンコード部140に伝達することができる。予測に関する情報は、エントロピーエンコード部140でエンコードされてビットストリーム形態で出力されることができる。
【0044】
イントラ予測部122は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置してもよく、または、離れて位置してもよい。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定に応じてそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部122は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0045】
インター予測部121は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。そのとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的周辺ブロックを含む参照ピクチャとは同じであってもよく、異なってもよい。前記時間的周辺ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれ得、前記時間的周辺ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)とも呼ばれ得る。例えば、インター予測部121は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合に、インター予測部121は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードと異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
【0046】
予測部120は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して行われることができる。すなわち、IBCは、本文書で説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例とみなすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0047】
前記予測部(インター予測部121及び/又は前記イントラ予測部122を含む)を介して生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられることができる。変換部132は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)のうち、少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることができ、正方形でない可変大きさのブロックにも適用されることができる。
【0048】
量子化部133は、変換係数を量子化してエントロピーエンコード部140に送信され、エントロピーエンコード部140は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部133は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコード部140は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコード方法を行うことができる。エントロピーエンコード部140は、量子化された変換係数の他に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/画像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位に送信または格納されることができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書においてエンコード装置からデコード装置に伝達/シグナリングされる情報及び/又はシンタックス要素は、ビデオ/画像情報に含まれることができる。前記ビデオ/画像情報は、上述したエンコード手順を介してエンコードされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。エントロピーエンコード部140から出力された信号は、送信する送信部(図示せず)及び/又は格納する格納部(図示せず)がエンコード装置100の内/外部エレメントとして構成され得るし、または送信部は、エントロピーエンコード部140に含まれることもできる。
【0049】
量子化部133から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部134及び逆変換部135を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元できる。加算部155は、復元されたレジデュアル信号をインター予測部121またはイントラ予測部122から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部150は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
【0050】
一方、ピクチャエンコード及び/又は復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0051】
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的に、メモリ170のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコード部140に伝達することができる。フィルタリング関する情報は、エントロピーエンコード部140でエンコードされてビットストリームの形態で出力されることができる。
【0052】
メモリ170に送信された修正された復元ピクチャは、インター予測部121で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置における予測のミスマッチを避けることができ、符号化効率も向上させることができる。
【0053】
メモリ170のDPBは、修正された復元ピクチャをインター予測部121における参照ピクチャとして使用するために格納することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部121に伝達することができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部122に伝達することができる。
【0054】
図2は、本文書が適用できるビデオ/画像デコード装置の構成を概略的に説明する図である。
【0055】
図2を参照すると、デコード装置200は、エントロピーデコード部(entropy decoder)210、レジデュアル処理部(residual processor)220、予測部(predictor)230、加算部(adder)240、フィルタリング部(filter)250、及びメモリ(memoery)260を含めて構成されることができる。予測部230は、インター予測部231及びイントラ予測部232を含むことができる。レジデュアル処理部220は、逆量子化部(dequantizer)221及び逆変換部(inverse transformer)222を含むことができる。前述したエントロピーデコード部210、レジデュアル処理部220、予測部230、加算部240、及びフィルタリング部250は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ260は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ260を内/外部コンポーネントとしてさらに含むこともできる。
【0056】
ビデオ/画像情報を含むビットストリームが入力されると、デコード装置200は、
図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元できる。例えば、デコード装置200は、前記ビットストリームから取得したブロック分割に関する情報に基づいてユニット/ブロックを導出できる。デコード装置200は、エンコード装置で適用された処理ユニットを用いてデコードを実行することができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであってもよく、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出できる。そして、デコード装置200を介してデコード及び出力された復元画像信号は、再生装置を介して再生されることができる。
【0057】
デコード装置200は、
図1のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部210を介してデコードされることができる。例えば、エントロピーデコード部210は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、さらに、前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコード手順を介してデコードされて、前記ビットストリームから取得されることができる。例えば、エントロピーデコード部210は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値などを出力することができる。より詳細に、CABACエントロピーデコード方法は、ビットストリームで各構文要素に該当するビンを受信し、デコード対象構文要素情報と周辺及びデコード対象ブロックのデコード情報、あるいは以前ステップでデコードされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測し、ビンの算術デコード(arithmetic decoding)を行って、各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコード方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコード部210でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部232及びイントラ予測部231)に提供され、エントロピーデコード部210でエントロピーデコードが行われたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部220に入力されることができる。レジデュアル処理部220は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出することができる。また、エントロピーデコード部210でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部250に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置200の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピーデコード部210の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、前記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコード部210を含むことができ、前記サンプルデコーダは、前記逆量子化部221、逆変換部222、加算部240、フィルタリング部250、メモリ260、インター予測部232、及びイントラ予測部231のうち、少なくとも1つを含むことができる。
【0058】
逆量子化部221では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部221は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコード装置で行われた係数のスキャン順序に基づいて再整列を行うことができる。逆量子化部221は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を獲得できる。
【0059】
逆変換部222では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を獲得することになる。
【0060】
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコード部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるか決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0061】
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と類似して行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例とみなすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/画像情報に含まれてシグナリングされることができる。
【0062】
イントラ予測部231は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの周辺(neighbor)に位置してもよく、または離れて位置してもよい。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部231は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
【0063】
インター予測部232は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。そのとき、インター予測モードで送信される動き情報の量を減らすために、周辺ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間的周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)とを含むことができる。例えば、インター予測部232は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0064】
加算部240は、取得されたレジデュアル信号を予測部(インター予測部232及び/又はイントラ予測部231を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
【0065】
加算部240は、復元部または復元ブロック生成部と呼ばれ得る。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されてもよく、または次のピクチャのインター予測のために使用されてもよい。
【0066】
一方、ピクチャデコード過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0067】
フィルタリング部250は、復元信号にフィルタリングを適用して、主観的/客観的画質を向上させることができる。例えば、フィルタリング部250は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ260、具体的に、メモリ260のDPBに送信することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0068】
メモリ260のDPBに格納された(修正された)復元ピクチャは、インター予測部232で参照ピクチャとして使用されることができる。メモリ260は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納できる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部232に伝達することができる。メモリ260は、現在ピクチャ内の復元されたブロックの復元サンプルを格納でき、イントラ予測部231に伝達することができる。
【0069】
本文書において、エンコード装置100のフィルタリング部160、インター予測部121、及びイントラ予測部122で説明された実施形態等は、各々デコード装置200のフィルタリング部250、インター予測部232、及びイントラ予測部231にも同一または対応するように適用されることができる。
【0070】
上述したように、ビデオコーディングを行うにあたり、圧縮効率を高めるために予測を行う。これを通じて、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。予測されたブロックは、エンコード装置及びデコード装置で同一に導出され、エンコード装置は、原本ブロックの原本サンプル値自体でない、原本ブロックと予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコード装置にシグナリングすることにより画像コーディング効率を高めることができる。デコード装置は、レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、レジデュアルブロックと予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0071】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、原本ブロックと予測されたブロックとの間のレジデュアルブロックを導出し、レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を行って変換係数を導出し、変換係数に量子化手順を行って量子化された変換係数を導出し、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、レジデュアル情報は、量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、レジデュアル情報に基づいて逆量子化/逆変換手順を行い、レジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコード装置は、予測されたブロックとレジデュアルブロックとに基づいて復元ピクチャを生成することができる。エンコード装置は、さらに、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0072】
図3は、本文書にかかる多重変換技法を概略的に示す。
【0073】
図3を参照すると、変換部は、前述した
図1のエンコード装置内の変換部に対応し得、逆変換部は、前述した
図1のエンコード装置内の逆変換部又は
図3のデコード装置内の逆変換部に対応し得る。
【0074】
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて1次変換を行って、(1次)変換係数を導出することができる(S310)。このような1次変換(primary transform)は、核心変換(core transform)と指称され得る。ここで、前記1次変換は、多重変換選択(Multiple Transform Selection、MTS)に基づき得、1次変換として多重変換が適用される場合、多重核心変換と指称され得る。
【0075】
多重核心変換は、DCT(Discrete Cosine Transform)タイプ2、DST(Discrete Sine Transform)タイプ7、DCTタイプ8、及び/又はDSTタイプ1をさらに使用して変換する方式を示すことができる。すなわち、前記多重核心変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8、及び前記DSTタイプ1のうち選択された複数の変換カーネルに基づいて、空間ドメインのレジデュアル信号(又はレジデュアルブロック)を周波数ドメインの変換係数(又は1次変換係数)に変換する変換方法を示すことができる。ここで、前記1次変換係数は、変換部の立場で仮の変換係数と呼ばれ得る。
【0076】
言い換えると、既存の変換方法が適用される場合、DCTタイプ2に基づいて、レジデュアル信号(又はレジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて、変換係数が生成できた。これと異なり、前記多重核心変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1等に基づいて、レジデュアル信号(又はレジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて、変換係数(又は1次変換係数)が生成できる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1等は、変換タイプ、変換カーネル(kernel)又は変換コア(core)と呼ばれ得る。このようなDCT/DST変換タイプは、基底関数に基づいて定義されることができる。
【0077】
前記多重核心変換が実行される場合、前記変換カーネルのうち、対象ブロックに対する垂直変換カーネル及び水平変換カーネルが選択でき、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が実行されることができる。ここで、前記水平変換は、前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は、前記対象ブロックの垂直成分に対する変換を示すことができる。前記垂直変換カーネル/水平変換カーネルは、レジデュアルブロックを含む対象ブロック(CU又はサブブロック)の予測モード及び/又は変換インデックスに基づいて、適応的に決定されることができる。
【0078】
また、一例によると、MTSを適用して1次変換を実行する場合、特定の基底関数を所定の値に設定し、垂直変換又は水平変換であるとき、どの基底関数が適用されるか否かを組み合わせて、変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向の変換カーネルをtrTypeHorで示し、垂直方向の変換カーネルをtrTypeVerで示す場合、trTypeHor又はtrTypeVerの値0はDCT2に設定され、trTypeHor又はtrTypeVerの値1はDST7に設定され、trTypeHor又はtrTypeVerの値2はDCT8に設定されることができる。
【0079】
この場合、多数の変換カーネルセットのいずれかを指示するために、MTSインデックス情報がエンコードされ、デコード装置にシグナリングされることができる。例えば、MTSインデックスが0であると、trTypeHor及びtrTypeVerの値がすべて0であることを指示し、MTSインデックスが1であると、trTypeHor及びtrTypeVerの値がすべて1であることを指示し、MTSインデックスが2であると、trTypeHorの値は2であり、trTypeVerの値は1であることを指示し、MTSインデックスが3であると、trTypeHorの値は1であり、trTypeVerの値は2であることを指示し、MTSインデックスが4であると、trTypeHor及びtrTypeVerの値がすべて2であることを指示することができる。
【0080】
一例によって、MTSのインデックス情報による変換カーネルセットを表で示すと、次の通りである。
【0081】
【0082】
変換部は、前記(1次)変換係数に基づいて2次変換を行って修正された(2次)変換係数を導出する(S320)。前記1次変換は空間ドメインから周波数ドメインへの変換であり、前記2次変換は(1次)変換係数間に存在する相関関係(correlation)を利用してより圧縮的な表現に変換することを意味する。前記2次変換は非分離変換(non-separable transform)を含む。この場合、前記2次変換は非分離2次変換(non-separable secondary transform、NSST)又はMDNSST(mode-dependent non-separable secondary transform)と呼ばれてもよい。前記非分離2次変換は、前記1次変換により導出された(1次)変換係数を非分離変換マトリックス(non-separable transform matrix)に基づいて2次変換してレジデュアル信号に対する修正された変換係数(又は、2次変換係数)を生成する変換を示す。ここで、前記非分離変換マトリックスに基づいて前記(1次)変換係数に対して垂直変換及び水平変換を分離して(又は、水平垂直変換を独立的に)適用せずに一度に変換を適用することができる。言い換えると、前記非分離2次変換は、前記(1次)変換係数に対して垂直方向と水平方向に別に適用されずに、例えば、2次元信号(変換係数)を特定の決まった方向(例えば、行優先(row-first)方向又は列優先(column-first)方向)により1次元信号に再整列した後、前記非分離変換マトリックスに基づいて修正された変換係数(又は、2次変換係数)を生成する変換方法を示す。例えば、行優先順序はM×Nブロックに対して1番目の行、2番目の行、...、N番目の行の順に一列に配置することであり、列優先順序はM×Nブロックに対して1番目の列、2番目の列、... 、M番目の列の順に一列に配置することである。前記非分離2次変換は、(1次)変換係数で構成されたブロック(以下、変換係数ブロックという)の左上側(top-left)領域に対して適用できる。例えば、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも8以上である場合、8×8非分離2次変換が前記変換係数ブロックの左上側8×8の領域に対して適用できる。また、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも4以上でありながら、前記変換係数ブロックの幅(W)又は高さ(H)が8より小さい場合、4×4非分離2次変換が前記変換係数ブロックの左上側min(8,W)×min(8,H)領域に対して適用できる。ただ、実施形態はこれに限定されず、例えば、前記変換係数ブロックの幅(W)又は高さ(H)が両方とも4以上である条件のみを満足しても、4×4非分離2次変換が前記変換係数ブロックの左上側min(8,W)×min(8,H)領域に対して適用されることもできる。
【0083】
具体的に、例えば、4×4の入力ブロックが使用される場合、非分離2次変換は次のように実行されることができる。
【0084】
前記4×4の入力ブロックXは、次のように示されることができる。
【0085】
【0086】
前記Xをベクトルの形態で示す場合、ベクトル
は、次のように示されることができる。
【0087】
【0088】
数式2のように、ベクトル
は、行優先(row-first)の順序によって、数式1におけるXの2次元ブロックを1次元ベクトルに再配列する。
【0089】
この場合、前記2次非分離変換は、次のように計算されることができる。
【0090】
【0091】
ここで、
は、変換係数ベクトルを示し、Tは、16×16の(非分離)変換マトリックスを示す。
【0092】
前記数式3を介して、16×1の変換係数ベクトル
が導出でき、前記
は、スキャン順序(水平、垂直、対角(diagonal)等)を介して、4×4ブロックで再構成(re-organized)できる。但し、前述した計算は例示であって、非分離2次変換の計算複雑度を減らすために、HyGT(Hypercube-Givens Transform)等が非分離2次変換の計算のために使用されることもできる。
【0093】
一方、前記非分離2次変換は、モードベース(mode dependent)として変換カーネル(又は変換コア、変換タイプ)が選択できる。ここで、モードは、イントラ予測モード及び/又はインター予測モードを含むことができる。
【0094】
前述したように、前記非分離2次変換は、前記変換係数ブロックの幅(W)及び高さ(H)に基づいて決定された8×8変換又は4×4変換に基づいて実行されることができる。8x8変換は、WとHがすべて8よりも等しいか大きいとき、当該変換係数ブロックの内部に含まれている8x8領域に適用されることができる変換を指し、当該8x8領域は、当該変換係数ブロックの内部の左上側の8x8領域であり得る。同様に、4x4変換は、WとHがすべて4よりも等しいか大きいとき、当該変換係数ブロックの内部に含まれている4x4領域に適用されることができる変換を指し、当該4x4領域は、当該変換係数ブロックの内部の左上側の4x4領域であり得る。例えば、8x8変換カーネルマトリックスは、64x64/16x64行列、4x4変換カーネルマトリックスは、16x16/8x16行列になり得る。
【0095】
そのとき、モードベースの変換カーネルの選択のために、8×8変換及び4×4変換の両方に対して、非分離2次変換のための変換セット当たり2個ずつの非分離2次変換カーネルが構成され得、変換セットは4個であり得る。すなわち、8×8変換に対して4個の変換セットが構成され、4×4変換に対して4個の変換セットが構成され得る。この場合、8×8変換に対する4個の変換セットには、それぞれ2個ずつの8×8変換カーネルが含まれ得、この場合、4×4変換に対する4個の変換セットには、それぞれ2個ずつの4×4変換カーネルが含まれ得る。
【0096】
但し、前記変換のサイズ、すなわち、変換が適用される領域のサイズは例示として8×8又は4×4以外のサイズが使用され得、前記セットの数はn個、各セット内の変換カーネルの数はk個であり得る。
【0097】
前記変換セットは、NSSTセット又はLFNSTセットと呼ばれ得る。前記変換セットのうちの特定セットの選択は、例えば、現在ブロック(CU又はサブブロック)のイントラ予測モードに基づいて実行されることができる。LFNST(Low-Frequency Non-Separable Transform)は、後述される減少した非分離変換の一例であり得、低周波成分に対する非分離変換を示す。
【0098】
参考までに、例えば、イントラ予測モードは、2個の非方向性(non-directinoal、又は非角度性(non-angular))イントラ予測モードと65個の方向性(directional、又は角度性(angular))イントラ予測モードとを含むことができる。前記非方向性イントラ予測モードは、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは、2番乃至66番の65個のイントラ予測モードを含むことができる。但し、これは例示であって、本文書は、イントラ予測モードの数が異なる場合にも適用できる。一方、場合に応じて、67番のイントラ予測モードがさらに使用でき、前記67番のイントラ予測モードは、LM(linear model)モードを示すことができる。
【0099】
図4は、65個の予測方向のイントラ方向性モードを例示的に示す。
【0100】
図4を参照すると、右下側対角の予測方向を有する34番のイントラ予測モードを中心に水平方向性(horizontal directionality)を有するイントラ予測モードと、垂直方向性(vertical directionality)を有するイントラ予測モードとを区分することができる。
図4のHとVは、それぞれ水平方向性と垂直方向性を意味し、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を示す。これは、モードインデックス値に対するオフセットを示すことができる。 2番乃至33番のイントラ予測モードは水平方向性、34番乃至66番のイントラ予測モードは垂直方向性を有する。一方、34番のイントラ予測モードは、厳密に言えば、水平方向性でも垂直方向性でもないと見ることができるが、2次変換の変換セットを決定する観点から、水平方向性に属すると分類できる。これは、34番のイントラ予測モードを中心に対称となる垂直方向モードに対しては、入力データをトランスポーズ(transpose)して使用し、34番のイントラ予測モードに対しては、水平方向モードに対する入力データの整列方式を使用するためである。入力データをトランスポーズすることは、2次元ブロックのデータMxNに対して、行が列となり、列が行となり、NxMのデータを構成することを意味する。18番のイントラ予測モードと50番のイントラ予測モードとは、それぞれ水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番のイントラ予測モードは、左側の参照ピクセルをもって右上側方向と予測するので、右上側対角のイントラ予測モードと呼ばれ得、同じ脈絡で34番のイントラ予測モードは、右下側対角のイントラ予測モード、66番のイントラ予測モードは、左下側対角のイントラ予測モードと呼ばれ得る。
【0101】
一例によって、イントラ予測モードによって、4個の変換セットのマッピング(mapping)は、例えば、次の表のように示され得る。
【0102】
【0103】
表2のように、イントラ予測モードによって4個の変換セットのいずれか、すなわち、lfnstTrSetIdxが0から3、すなわち、4個のいずれかにマッピングされることができる。
【0104】
一方、非分離変換に特定セットが使用されるものと決定されると、非分離2次変換インデックスを介して、前記特定セット内のk個の変換カーネルのうち一つが選択できる。エンコード装置は、RD(rate-distortion)チェックに基づいて特定の変換カーネルを指す非分離2次変換インデックスを導出することができ、前記非分離2次変換インデックスをデコード装置にシグナリングできる。デコード装置は、前記非分離2次変換インデックスに基づいて、特定セット内のk個の変換カーネルのうち一つを選択することができる。例えば、lfnstのインデックス値0は、1番目の非分離2次変換カーネルを指すことができ、lfnstのインデックス値1は、2番目の非分離2次変換カーネルを指すことができ、lfnstのインデックス値2は、3番目の非分離2次変換カーネルを指すことができる。或いは、lfnstのインデックス値0は、対象ブロックに対して、1番目の非分離2次変換が適用されないことを指すことができ、lfnstのインデックス値1乃至3は、前記3個の変換カーネルを指すことができる。
【0105】
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行し、修正された(2次)変換係数を獲得することができる。前記修正された変換係数は、前述したように量子化部を介して量子化された変換係数で導出されることができ、エンコードされて、デコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達されることができる。
【0106】
一方、前述したように2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように量子化部を介して量子化された変換係数で導出されることができ、エンコードされて、デコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達されることができる。
【0107】
逆変換部は、前述した変換部で実行された手順の逆順で一連の手順を実行することができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S350)、前記(1次)変換係数に対して1次(逆)変換を実行し、レジデュアルブロック(レジデュアルサンプル)を獲得することができる(S360)。ここで、前記1次変換係数は、逆変換部の立場で、修正された(modified)変換係数と呼ばれ得る。エンコード装置及びデコード装置は、前記レジデュアルブロックと予測されたブロックとに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは前述した通りである。
【0108】
一方、デコード装置は、2次逆変換適用可否決定部(又は2次逆変換の適用可否を決定する要素)と、2次逆変換決定部(又は2次逆変換を決定する要素)をさらに含むことができる。2次逆変換適用可否決定部は、2次逆変換の適用可否を決定することができる。例えば、2次逆変換は、NSST、RST又はLFNSTであり得、2次逆変換適用可否決定部は、ビットストリームからパーシングした2次変換フラグに基づいて、2次逆変換の適用可否を決定することができる。別の一例として、2次逆変換適用可否決定部は、レジデュアルブロックの変換係数に基づいて、2次逆変換の適用可否を決定することもできる。
【0109】
2次逆変換決定部は、2次逆変換を決定することができる。そのとき、2次逆変換決定部は、イントラ予測モードによって指定されたLFNST(NSST又はRST)変換セットに基づいて、現在ブロックに適用される2次逆変換を決定することができる。また、一実施例として、1次変換決定方法に依存的に(depend on)2次変換決定方法が決定できる。イントラ予測モードによって1次変換と2次変換の多様な組み合わせが決定できる。また、一例として、2次逆変換決定部は、現在ブロックの大きさに基づいて、2次逆変換が適用される領域を決定することもできる。
【0110】
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信し、前記1次(分離)逆変換を実行してレジデュアルブロック(レジデュアルサンプル)を獲得することができる。エンコード装置及びデコード装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは前述した通りである。
【0111】
一方、本文書においては、非分離2次変換に伴われる計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリックス(カーネル)の大きさが減少したRST(reduced secondary transform)を適用することができる。
【0112】
一方、本文書で説明された変換カーネル、変換マトリックス、変換カーネルマトリックスを構成する係数、すなわち、カーネル係数又はマトリックス係数は、8ビットで表現され得る。これは、デコード装置及びエンコード装置で具現するための一つの条件であり得、既存の9ビット又は10ビットと比較し、合理的に受け入れられる性能低下を伴いながら、変換カーネルを格納するためのメモリ要求量を減らすことができる。また、カーネルマトリックスを8ビットで表現することによって、小さい掛け算器を使用でき、最適のソフトウェアの具現のために使用されるSIMD(Single Instruction Multiple Data)命令により好適であり得る。
【0113】
本明細書において、RSTは簡素化ファクター(factor)によって大きさが減少した変換マトリックス(transform matrix)に基づいて、対象ブロックに対するレジデュアルサンプルに対して実行される変換を意味することができる。簡素化変換を実行する場合、変換マトリックスの大きさの減少により、変換時に要求される演算量が減少し得る。すなわち、RSTは、大きさが大きいブロックの変換又は非分離変換時に発生する演算の複雑度(complexity)のイシューを解消するために利用できる。
【0114】
RSTは、減少した変換、減少変換、reduced transform、reduced secondary transform、reduction transform、simplified transform、simple transform等の多様な用語で指称され得、RSTが指称され得る名称は、挙げられた例示に限定されない。或いは、RSTは、主に変換ブロックで0ではない係数を含む低周波領域で行われるので、LFNST(Low-Frequency Non-Separable Transform)と指称されることもある。前記変換インデックスは、LFNSTインデックスと名付けられ得る。
【0115】
一方、2次逆変換がRSTに基づいてなされる場合、エンコード装置100の逆変換部135とデコード装置200の逆変換部222とは、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部とを備えることができる。逆1次変換は、レジデュアルに適用されていた1次変換の逆変換を意味する。本文書において変換に基づいて変換係数を導出することは、当該変換を適用して変換係数を導出することを意味することができる。
【0116】
図5は、本文書の一実施例に係るRSTを説明するための図である。
【0117】
本明細書において、「対象ブロック」は、コーディングが実行される現在ブロック又はレジデュアルブロック又は変換ブロックを意味することができる。
【0118】
一実施例に係るRSTで、N次元ベクトル(N dimensional vector)が異なる空間に位置したR次元ベクトル(R dimensional vector)にマッピングされ、減少した変換マトリックスが決定でき、ここで、RはNよりも小さい。Nは、変換が適用されるブロックの一辺の長さ(length)の二乗、又は変換が適用されるブロックと対応する変換係数の総個数を意味することができ、簡素化ファクターは、R/N値を意味することができる。簡素化ファクターは、減少したファクター、減少ファクター、reduced factor、reduction factor、simplified factor、simple factor等の多様な用語で指称され得る。一方、Rは、簡素化係数(reduced coefficient)と指称され得るが、場合に応じては、簡素化ファクターがRを意味することもある。また、場合に応じて、簡素化ファクターは、N/R値を意味することもある。
【0119】
一実施例において、簡素化ファクター又は簡素化係数は、ビットストリームを介してシグナリングできるが、実施例がこれに限定されるわけではない。例えば、簡素化ファクター又は簡素化係数に対する既に定義された値が各エンコード装置100及びデコード装置200に格納されていることがあり、この場合、簡素化ファクター又は簡素化係数は、別にシグナリングされないことがある。
【0120】
一実施例にかかる簡素化変換マトリックスのサイズは、通常の変換マトリックスのサイズNxNよりも小さいRxNであり、下記の数式4のように定義されることができる。
【0121】
【0122】
図5の(a)に示すReduced Transformブロック内のマトリックスTは、数式4のマトリックスTRxNを意味することができる。
図5の(a)のように、対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリックスTRxNが掛けられる場合、対象ブロックに対する変換係数が導出できる。
【0123】
一実施例において、変換が適用されるブロックのサイズが8x8であり、R=16(すなわち、R/N=16/64=1/4である)である場合、
図5の(a)によるRSTは、下記の数式5のような行列演算で表現され得る。この場合、メモリと掛け算演算が簡素化ファクターにより略1/4と減少し得る。
【0124】
本文書において行列演算とは、行列を列ベクトルの左側に置いて、行列と列ベクトルを掛けて列ベクトルを得る演算で理解できる。
【0125】
【0126】
数式5において、r1乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができ、より具体的に、1次変換を適用して生成された変換係数であり得る。数式5の演算結果、対象ブロックに対する変換係数ciが導出でき、ciの導出過程は数式6の通りである。
【0127】
【0128】
数式6の演算結果、対象ブロックに対する変換係数c1乃至cRが導出できる。すなわち、R=16である場合、対象ブロックに対する変換係数c1乃至c16が導出できる。もし、RSTではなく、通常の(regular)変換が適用されて、サイズが64x64(NxN)である変換マトリックスが、サイズが64x1(Nx1)であるレジデュアルサンプルに掛けられたら、対象ブロックに対する変換係数が64個(N個)が導出されるかもしれないが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少し、エンコード装置100がデコード装置200に送信するデータの量が減少するので、エンコード装置100-デコード装置200の間の送信効率が増加し得る。
【0129】
変換マトリックスのサイズの観点から検討すると、通常の変換マトリックスのサイズは64x64(NxN)であるが、簡素化変換マトリックスのサイズは16x64(RxN)と減少するので、通常の変換を実行する時と比較すると、RSTを実行する時にメモリの使用をR/Nの割合で減少させることができる。また、通常の変換マトリックスを用いる際の掛け算演算の数NxNと比較すると、簡素化変換マトリックスを用いると、掛け算演算の数をR/Nの割合で減少(RxN)させることができる。
【0130】
一実施例において、エンコード装置100の変換部132は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を実行することによって、対象ブロックに対する変換係数を導出することができる。このような変換係数は、デコード装置200の逆変換部に伝達されることができ、デコード装置200の逆変換部222は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて、対象ブロックに対するレジデュアルサンプルを導出することができる。
【0131】
一実施例にかかる逆RSTマトリックスTNxRのサイズは、通常の逆変換マトリックスのサイズNxNよりも小さいNxRであり、数式4に示した簡素化変換マトリックスTRxNとトランスポーズ(transpose)の関係にある。
【0132】
図5の(b)に示したReduced Inv. Transformブロック内のマトリックスTtは、逆RSTマトリックスTRxNTを意味することができる(上付き文字Tはトランスポーズを意味する)。
図5の(b)のように、対象ブロックに対する変換係数に対して逆RSTマトリックスTRxNTが掛けられる場合、対象ブロックに対する修正された変換係数又は対象ブロックに対するレジデュアルサンプルが導出できる。逆RSTマトリックスTRxNTは、(TRxN)TNxRと表現することもある。
【0133】
より具体的に、2次逆変換に逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリックスTRxNTが掛けられると、対象ブロックに対する修正された変換係数が導出できる。一方、逆1次変換に逆RSTが適用でき、この場合、対象ブロックに対する変換係数に対して逆RSTマトリックスTRxNTが掛けられると、対象ブロックに対するレジデュアルサンプルが導出できる。
【0134】
一実施例において、逆変換が適用されるブロックのサイズが8x8であり、R=16(すなわち、R/N=16/64=1/4である場合)である場合、
図5の(b)によるRSTは、下記の数式7のような行列演算で表現されることができる。
【0135】
【0136】
数式7において、c1乃至c16は、対象ブロックに対する変換係数を示すことができる。数式7の演算結果、対象ブロックに対する修正された変換係数又は対象ブロックに対するレジデュアルサンプルを示すrjが導出でき、rjの導出過程は、数式8の通りである。
【0137】
【0138】
数式8の演算結果、対象ブロックに対する修正された変換係数又は対象ブロックに対するレジデュアルサンプルを示すr1乃至rNが導出できる。逆変換マトリックスのサイズの観点から検討すると、通常の逆変換マトリックスのサイズは64x64(NxN)であるが、簡素化逆変換マトリックスのサイズは、64x16(NxR)と減少するので、通常の逆変換を実行する時と比較すると、逆RSTを実行する時にメモリの使用をR/Nの割合で減少させることができる。また、通常の逆変換マトリックスを用いる時の掛け算演算の数NxNと比較すると、簡素化逆変換マトリックスを用いると、掛け算演算の数をR/Nの割合で減少(NxR)させることができる。
【0139】
一方、8x8のRSTに対しても、表2のような変換セットの構成を適用することができる。すなわち、表2での変換セットによって当該8x8のRSTが適用できる。一つの変換セットは、画面内の予測モードによって2個又は3個の変換(カーネル)で構成されているので、2次変換を適用しない場合まで含めて、最大4個の変換のうち一つを選択するように構成されることができる。2次変換を適用しないときの変換は、恒等行列が適用されたものとみなされ得る。4個の変換に対してそれぞれ0、1、2、3のインデックスを付与するとしたとき(例えば、0番のインデックスを恒等行列、すなわち、2次変換を適用しない場合に割り当てることができる)、変換インデックス又はlfnstのインデックスというシンタックス要素(syntax element)を変換係数のブロック毎にシグナリングし、適用される変換を指定することができる。すなわち、変換インデックスを介して8x8左上側のブロックに対して、RSTの構成では8x8のRSTを指定することができ、又はLFNSTが適用される場合、8x8のlfnstを指定することができる。8x8のlfnst及び8x8のRSTは、変換の対象になる対象ブロックのWとHがすべて8よりも等しいか大きいとき、当該変換係数のブロック内部に含まれている8x8領域に適用されることができる変換を指し、当該8x8領域は、当該変換係数のブロック内部の左上側の8x8領域であり得る。同様に、4x4のlfnst及び4x4のRSTは、対象ブロックのWとHがすべて4よりも等しいか大きいとき、当該変換係数のブロック内部に含まれている4x4領域に適用されることができる変換を指し、当該4x4領域は、当該変換係数のブロック内部の左上側の4x4領域であり得る。
【0140】
一方、本文書の一実施例にかかり、エンコード過程の変換で、8x8領域を構成する64個のデータに対して、16x64の変換カーネルマトリックスではなく、48個のデータのみを選択し、最大16x48の変換カーネルマトリックスを適用することができる。ここで、「最大」とは、m個の係数を生成することができるmx48の変換カーネルマトリックスに対して、mの最大値が16ということを意味する。すなわち、8x8の領域にmx48の変換カーネルマトリックス(m≦16)を適用してRSTを実行する場合、48個のデータの入力を受けて、m個の係数を生成することができる。mが16である場合、48個のデータの入力を受けて、16個の係数を生成する。すなわち、48個のデータが48x1ベクトルをなすとしたとき、16x48行列と48x1ベクトルを順序通りに掛けて、16x1ベクトルが生成できる。そのとき、8x8領域をなす48個のデータを適切に配列し、48x1ベクトルを構成することができる。そのとき、最大16x48の変換カーネルマトリックスを適用して行列演算を行うと、16個の修正された変換係数が生成されるが、16個の修正された変換係数は、スキャニング順序に従って左上側の4x4領域に配置されることができ、右上側の4x4領域と左下側の4x4領域は0で満たされ得る。
【0141】
デコード過程の逆変換には、前記述べられた変換カーネルマトリックスのトランスポーズされたマトリックスが使用できる。すなわち、デコード装置で実行される逆変換過程で逆RST又はLFNSTが実行される場合、逆RSTを適用する入力係数データは、所定の配列順序に従って1次元ベクトルで構成され、1次元ベクトルに当該逆RSTの行列を左側で掛けて得られた修正された係数ベクトルを所定の配列順序に従って2次元ブロックに配列されることができる。
【0142】
整理すると、変換過程で、8x8領域にRST又はLFNSTが適用される場合、8x8領域の変換係数のうち、8x8領域の右下側領域を除いた左上側、右上側、左下側領域の48個の変換係数と、16x48の変換カーネルマトリックスとの行列演算が実行される。行列演算のために、48個の変換係数は1次元の配列に入力される。このような行列演算が行われると、16個の修正された変換係数が導出され、修正された変換係数は、8x8領域の左上側領域に配列されることができる。
【0143】
逆に、逆変換過程で、8x8領域に逆RST又はLFNSTが適用される場合、8x8領域の変換係数のうち、8x8領域の左上側に対応する16個の変換係数は、スキャニング順序に従って、1次元の配列形態で入力されて、48x16の変換カーネルマトリックスと行列演算されることができる。すなわち、このような場合の行列演算は、(48x16行列)*(16x1変換係数ベクトル)=(48x1修正された変換係数ベクトル)で示すことができる。ここで、nx1ベクトルは、nx1行列のような意味で解釈され得るので、nx1列ベクトルで表記されることもある。また、*は、行列の掛け算演算を意味する。このような行列演算が行われると、48個の修正された変換係数が導出でき、48個の修正された変換係数は、8x8領域の右下側領域を除いた左上側、右上側、左下側領域に配列されることができる。
【0144】
一方、2次逆変換がRSTに基づいてなされる場合、エンコード装置100の逆変換部135とデコード装置200の逆変換部222とは、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部とを備えることができる。逆1次変換は、レジデュアルに適用されていた1次変換の逆変換を意味する。本文書において変換に基づいて変換係数を導出することは、当該変換を適用して変換係数を導出することを意味することができる。
【0145】
前述された非分離変換、LFNSTについて具体的にみると、次の通りである。LFNSTは、エンコード装置による順方向(forward)変換と、デコード装置による逆方向(inverse)変換を含むことができる。
【0146】
エンコード装置は、順方向1次変換(primary (core) transform)を適用した後、導出された結果(又は結果の一部)を入力として、順方向2次変換(secondary transform)を適用する。
【0147】
【0148】
前記数式9で、xとyは、それぞれ2次変換の入力と出力であり、Gは、2次変換を示す行列であって、変換基底ベクトル(transform basis vector)は列ベクトルで構成される。逆方向LFNSTの場合、変換行列Gの次元(dimension)を[row数×column数]で表記したとき、順方向LFNSTの場合、行列GのトランスポーズをとったことがGTの次元になる。
【0149】
逆方向LFNSTの場合、行列Gの次元は、[48x16]、[48x8]、[16x16]、[16x8]となり、[48x8]行列と[16x8]行列は、それぞれ[48x16]行列と[16x16]行列の左側から8個の変換基底ベクトルをサンプリングした部分行列である。
【0150】
反面、順方向LFNSTの場合、行列GTの次元は、[16x48]、[8x48]、[16x16]、[8x16]となり、[8x48]行列と[8x16]行列は、それぞれ[16x48]行列と[16x16]行列の上方から8個の変換基底ベクトルをサンプリングした部分行列である。
【0151】
従って、順方向LFNSTの場合、入力xとしては[48x1]ベクトル又は[16x1]ベクトルが可能であり、出力yとしては、[16x1]ベクトル又は[8x1]ベクトルが可能である。ビデオコーディング及びデコードにおける順方向1次変換の出力は、2次元(2D)データであるので、入力xとして[48x1]ベクトル又は[16x1]ベクトルを構成するために、順方向変換の出力である2Dデータを適切に配列して1次元ベクトルを構成しなければならない。
【0152】
図6は、一例によって、順方向1次変換の出力データを1次元ベクトルに配列する順序を示した図である。
図6の(a)及び(b)の左側図は、[48x1]ベクトルを作るための順序を示し、
図6の(a)及び(b)の右側図は、[16x1]ベクトルを作るための順序を示す。LFNSTの場合、
図6の(a)及び(b)のような順序で2Dデータを順次に配列し、1次元ベクトルxが得られる。
【0153】
このような順方向1次変換の出力データの配列方向は、現在ブロックのイントラ予測モードによって決定されることができる。例えば、現在ブロックのイントラ予測モードが対角線方向を基準に水平方向であると、順方向1次変換の出力データは、
図6の(a)の順に配列されることができ、現在ブロックのイントラ予測モードが対角線方向を基準に垂直方向であると、順方向1次変換の出力データは、
図6の(b)の順に配列されることができる。
【0154】
一例によって、
図6の(a)及び(b)の配列順序(ordering)と異なる配列順序を適用することができ、
図6の(a)及び(b)の配列順序を適用したときと同じ結果(yベクトル)を導出するためには、行列Gの列ベクトルを当該配列順序に合わせて再配列すればよい。すなわち、xベクトルを構成する各要素に対して、常時同じ変換基底ベクトルと掛けられるようにGの列ベクトルを再配置することができる。
【0155】
数式9を介して導出される出力yは、1次元ベクトルであるので、もし順方向2次変換の結果を入力として処理する構成、例えば、量子化又はレジデュアルコーディングを実行する構成が、入力データとして2次元データが必要であれば、数式9の出力yベクトルは再度2Dデータに適切に配置されなければならない。
【0156】
図7は、 一例によって順方向2次変換の出力データを2次元ブロックで配列する順序を示した図である。
【0157】
LFNSTの場合、決められたスキャン順序に従って2Dブロックに配置されることができる。
図7の(a)は、出力yが[16x1]ベクトルである場合、2次元ブロックの16個の位置に対角スキャン(diagonal scan)順序に従って出力値が配置されることを示す。
図7の(b)は、出力yが[8x1]ベクトルである場合、2次元ブロックの8個の位置に対角スキャン順序に従って出力値が配置され、残りの8個の位置には0で満たされることを示す。
図7の(b)のXは、0と満たされることを示す。
【0158】
別の例によって、量子化又はレジデュアルコーディング実行する構成により、出力ベクトルyが処理される順序は、既設定された順序に従って実行されることができるため、
図7のように、出力ベクトルyが2Dブロックに配置されないことがある。但し、レジデュアルコーディングの場合、CG(Coefficient Group)のような2Dブロック(例えば、4x4)単位でデータコーディングが実行でき、この場合、
図7の対角スキャン順序のように特定の順序に従ってデータが配列できる。
【0159】
一方、デコード装置は、逆方向の変換のために逆量子化過程等を通じて出力された2次元データを既設定されたスキャン順序に従って羅列し、1次元入力ベクトルであるyを構成することができる。入力ベクトルyは、下記数式により入力ベクトルxに出力されることができる。
【0160】
【0161】
逆方向LFNSTの場合、[16x1]ベクトル又は[8x1]ベクトルである入力ベクトルyにG行列を掛けることによって、出力ベクトルxを導出することができる。逆方向LFNSTの場合、出力ベクトルxは[48x1]ベクトル又は[16x1]ベクトルであり得る。
【0162】
出力ベクトルxは、
図6に示した順序に従って、2次元ブロックに配置されて2次元データに配列され、このような2次元データは、逆方向1次変換の入力データ(又は入力データの一部)になる。
【0163】
従って、逆方向2次変換は、全体的に順方向2次変換の過程と反対であり、逆変換の場合、順方向と異なり、逆方向2次変換を先に適用した後、逆方向1次変換を適用することになる。
【0164】
逆方向LFNSTでは、変換行列Gとして[48x16]行列8個と[16x16]行列8個のうち1つが選択できる。[48x16]行列と[16x16]行列のうち、どの行列を適用するか否かは、ブロックの大きさと形状によって決定される。
【0165】
また、8個の行列は、前述した表2のように4個の変換セットから導出されることができ、各変換セットは、2個の行列で構成されることができる。4個の変換セットのうち、どの変換セットを使用するかはイントラ予測モードによって決定され、より具体的に広角イントラ予測モード(Wide Angle Intra Prediction、WAIP)まで考慮して、拡張されたイントラ予測モード値に基づいて変換セットが決定される。選択された変換セットを構成する2個の行列のうち、どの行列を選択するかはインデックスシグナリング(index signaling)を介して導出される。より具体的に、送信されるインデックス値としては、0、1、2が可能であり、0はLFNSTを適用しないことを指示し、1と2はイントラ予測モード値に基づいて選択された変換セットを構成する2個の変換行列の何れかを指示することができる。
【0166】
一方、前述したように、[48x16]行列と[16x16]行列のうち、どの変換行列をLFNSTに適用するか否かは、変換対象ブロックの大きさと形状により決定される。
【0167】
図8は、LFNSTが適用されるブロックの形状を示した図である。
図8の(a)は4x4ブロックを、(b)は4x8及び8x4ブロックを、(c)はNが16以上である4xN又はNx4ブロックを、(d)は8x8ブロックを、(e)はM≧8、N≧8であり、N>8又はM>8であるMxNブロックを示している。
【0168】
図8で、太い枠を有するブロックが、LFNSTが適用される領域を指す。
図8の(a)及び(b)のブロックについては、左上側(top-left)の4x4領域に対してLFNSTが適用され、
図8の(c)のブロックに対しては、連続して配置された2個の左上側の4x4領域に対して、それぞれLFNSTが適用される。
図8の(a)、(b)、(c)では、4x4領域の単位でLFNSTが適用されるので、このようなLFNSTを以下「4x4のLFNST」と名づけることとし、当該変換行列としては、数式9及び数式10のGに対する行列次元を基準[16x16]又は[16x8]行列が適用できる。
【0169】
より具体的に、
図8の(a)の4x4ブロック(4x4TU又は4x4CU)に対しては[16x8]行列が適用され、
図8の(b)及び(c)におけるブロックに対しては[16x16]行列が適用される。これは、最悪の場合(worst case)に対する計算複雑度をサンプル当たり8掛け算(8 multiplications per sample)に合わせるためである。
【0170】
図8の(d)及び(e)については、左上側の8x8領域に対してLFNSTが適用され、このようなLFNSTを以下「8x8のLFNST」と名付けることとする。当該変換行列としては、[48x16]又は[48x8]行列が適用できる。順方向LFNSTの場合、入力データとして[48x1]ベクトル(数式9のxベクトル)が入力されるので、左上側の8x8領域の全てのサンプル値が順方向LFNSTの入力値として使用されない。すなわち、
図6の(a)の左側順序又は
図6の(b)の左側順序で見るように、右下側(bottom-right)の4x4ブロックはそのまま置いて、残りの3個の4x4ブロックに属したサンプルに基づいて、[48x1]ベクトルを構成することができる。
【0171】
図8の(d)における8x8ブロック(8x8TU又は8x8CU)に[48x8]行列が適用され、
図8の(e)における8x8ブロックに[48x16]行列が適用できる。これもやはり、最悪の場合(worst case)に対する計算複雑度をサンプル当たり8掛け算(8 multiplications per sample)に合わせるためである。
【0172】
ブロックの形状に応じて、これに対応する順方向LFNST(4x4LFNST又は8x8LFNST)が適用されると、8個又は16個の出力データ(数式9におけるyベクトル、[8x1]又は[16x1]ベクトル)が生成され、順方向LFNSTでは、行列GTの特性上、出力データの数が入力データの数よりも等しいか少なくなる。
【0173】
図9は、一例によって順方向LFNSTの出力データの配置を示した図面であり、ブロック形状に沿って順方向LFNSTの出力データが配置されるブロックを示す。
【0174】
図9に示したブロックの左上側に陰影で処理された領域が順方向LFNSTの出力データが位置する領域に当該し、0で表記された位置は0値で満たされるサンプルを示し、残りの領域は、順方向LFNSTにより変更されない領域を示す。LFNSTにより変更されない領域には、順方向1次変換の出力データが変更されずにそのまま存在する。
【0175】
前述したように、ブロックの形状に応じて適用される変換行列の次元が変わるので、出力データの数も変わる。
図9のように、順方向LFNSTの出力データが左上側4x4ブロックを全て満たさないこともある。
図11の(a)及び(d)の場合、太い線で表示されたブロック又はブロック内部の一部領域には、それぞれ[16x8]行列と[48x8]行列が適用されて、順方向LFNSTの出力で[8x1]ベクトルが生成される。すなわち、
図7の(b)に示したスキャン順序に従って、8個の出力データのみ
図9の(a)及び(d)のように満たされ、残りの8個の位置に対しては0が満たされることができる。
図8の(d)のLFNSTの適用ブロックの場合、
図9の(d)のように左上側の4x4ブロックに隣接した右上側及び左下側の2個の4x4ブロックも0値で満たされる。
【0176】
前記のように、基本的にLFNSTインデックスをシグナリングし、LFNSTの適用可否、及び適用する変換行列を指定することになる。
図9に示したように、LFNSTが適用される場合、順方向LFNSTの出力データの数が入力データの数よりも等しいか少ないことがあるため、0値で満たされる領域が次のように発生する。
【0177】
1)
図9の(a)のように、左上側の4x4ブロック内にスキャン順序上8番目以降の位置、すなわち、9番目から16番目までのサンプル
【0178】
2)
図9の(d)及び(e)のように、[16×48]行列又は[8×48]行列が適用されて左上側の4×4ブロックに隣接した2つの4×4ブロック又はスキャン順序上の2番目と3番目の4×4ブロック
【0179】
従って、前記1)と2)の領域をチェックし、0ではない(non-zero)データが存在することになると、LFNSTが適用されていないことが確実であるため、当該LFNSTインデックスのシグナリングを省略することができるようになる。
【0180】
一例によって、例えば、VVC標準に採択されたLFNSTの場合、LFNSTインデックスのシグナリングは、レジデュアルコーディングの後に実行されるので、エンコード装置は、レジデュアルコーディングを介してTU又はCUブロック内部の全ての位置に対する0ではないデータ(有効係数)の存在可否が分かるようになる。従って、エンコード装置は、0ではないデータの存在可否を通じて、LFNSTインデックスに対するシグナリングを実行するか否かを判断することができ、デコード装置は、LFNSTインデックスのパーシング可否を判断することができる。もし、前記1)と2)で指定された領域に0ではないデータが存在しない場合、LFNSTインデックスのシグナリングを実行するようになる。
【0181】
一方、採択されたLFNSTに対して、次のような単純化方法が適用できる。
【0182】
(i)一例によって、順方向LFNSTに対する出力データの数を最大16個に限定することができる。
【0183】
図8の(c)の場合、左上側に隣接した2個の4x4領域にそれぞれ4x4のLFNSTが適用でき、そのとき、最大32個のLFNST出力データが生成できる。もし、順方向LFNSTに対する出力データの数を最大16に限定すると、4xN/Nx4(N≧16)ブロック(TU又はCU)に対しても、左上側に存在する1個の4x4領域に対してのみ4x4LFNSTを適用し、
図8の全てのブロックに対して、LFNSTを一度だけ適用できる。これを通じて、画像コーディングに対する具現が単純になる。
【0184】
(ii)一例によって、LFNSTが適用されない領域に対して、追加的にゼロアウト(zero-out)を適用することができる。本文書におけるゼロアウトは、特定の領域に属した全ての位置の値を0値で満たすことを意味することができる。即ち、LFNSTによって変更されずに順方向1次変換の結果を維持している領域に対しても、ゼロアウトを適用することができる。前述したように、LFNSTは4×4LFNSTと8×8LFNSTとに区分されるため、下記のように2種類((ii)-(A)及び(ii)-(B))にゼロアウトを区分することができる。
【0185】
(ii)-(A)4×4LFNSTが適用されるとき、4×4LFNSTが適用されない領域をゼロアウトすることができる。
図10は、一例によって、4×4LFNSTが適用されるブロックでのゼロアウトを示す図である。
【0186】
図10のように、4×4LFNSTが適用されるブロックに対して、即ち、
図9の(a)、(b)、及び(c)のブロックに対してLFNSTが適用されない領域まで全て0で満たされることができる。
【0187】
一方、
図10の(d)は、一例によって順方向LFNSTの出力データ個数の最大値を16に限定した場合、4×4LFNSTが適用されない残りのブロックに対してゼロアウトを実行したことを示す。
【0188】
(ii)-(B)8×8LFNSTが適用されるとき、8×8LFNSTが適用されない領域をゼロアウトすることができる。
図11は、一例によって、8×8LFNSTが適用されるブロックでのゼロアウトを示す図である。
【0189】
図11のように、8×8LFNSTが適用されるブロックに対して、即ち、
図9の(d)及び(e)のブロックに対してLFNSTが適用されない領域まで全て0で満たされることができる。
【0190】
(iii)前記(ii)で提示したゼロアウトによって、LFNSTが適用されるとき、0で満たされる領域が変わることができる。したがって、前記(ii)で提案されたゼロアウトによって0でないデータが存在するかどうかを
図9のLFNSTの場合よりも広い領域に対してチェックできる。
【0191】
例えば、(ii)-(B)を適用する場合、
図9の(d)及び(e)において0値で満たされる領域に追加して、
図11において追加的に0で満たされた領域まで0でないデータが存在するかどうかをチェックした後、0でないデータが存在しない場合にのみ、LFNSTインデックスに対するシグナリングを実行することができる。
【0192】
もちろん、前記(ii)で提案されたゼロアウトを適用しても、既存LFNSTインデックスシグナリングと同様に、0でないデータが存在するかどうかをチェックすることができる。即ち、
図9に0で満たされたブロックに対して、0でないデータが存在するかどうかをチェックし、LFNSTインデックスシグナリングを適用することができる。このような場合、エンコーディング装置にのみゼロアウトを実行し、デコーディング装置では該当ゼロアウトを仮定せずに、即ち、
図9において明示的に0で表記された領域に対してのみ0でないデータが存在するかどうかのみをチェックしてLFNSTインデックスパーシングを実行することができる。
【0193】
前記LFNSTに対する単純化方法((i)、(ii)-(A)、(ii)-(B)、(iii))の組み合わせを適用した多様な実施例が導出されることができる。もちろん、前記単純化方法に対する組み合わせは、下記の実施例に限定されるものではなく、任意の組み合わせをLFNSTに適用できる。
【0194】
実施例
【0195】
-順方向LFNSTに対する出力データ数を最大16個に限定→(i)
【0196】
-4×4LFNSTが適用されるとき、4×4LFNSTが適用されない領域を全てゼロアウト→(ii)-(A)
【0197】
-8×8LFNSTが適用されるとき、8×8LFNSTが適用されない領域を全てゼロアウト→(ii)-(B)
【0198】
-既存0値で満たされる領域と追加的なゼロアウト((ii)-(A)、(ii)-(B))によって0で満たされる領域に対しても、0でないデータが存在するかどうかをチェックした後、0でないデータが存在しない場合にのみLFNSTインデクシングシグナリング→(iii)
【0199】
前記実施例の場合、LFNSTが適用されるとき、0でない出力データが存在できる領域が左上端4×4領域の内部に制限される。より詳しく、
図10の(a)と
図11の(a)の場合、スキャン順序上に8番目の位置が、0でないデータが存在できる最後の位置になり、
図10の(b)及び(d)と
図11の(b)の場合、スキャン順序上に16番目の位置(即ち、左上端4×4ブロックの右下側の位置)が、0でないデータが存在できる最後の位置になる。
【0200】
従って、LFNSTが適用されたとき、レジデュアルコーディング過程が許容されない位置(最も最後の位置を越えた位置で)で0ではないデータが存在するか否かをチェックした後、LFNSTインデックスのシグナリング可否が決定できる。
【0201】
(ii)で提案されたゼロアウト方式の場合、1次変換とLFNSTの両方ともを適用したときに最終的に発生するデータの数が減少するため、全体変換過程を行うときに要求される計算量を減らすことができる。すなわち、LFNSTが適用される場合、LFNSTが適用されない領域に存在する順方向1次変換出力データに対してもゼロアウトを適用するため、順方向1次変換を行うときからゼロアウトとなる領域に対するデータを生成する必要がない。従って、当該データ生成に要求される演算量を節約することができる。(ii)で提案されたゼロアウト方式の追加的な効果をまとめると、以下のようである。
【0202】
第1に、前記のように全体変換過程の実行に必要な計算量が低減する。
【0203】
特に、(ii)-(B)を適用する場合、最悪の場合に対する計算量が減少して変換の過程を軽量化することができる。敷衍すると、一般的に大きなサイズの1次変換実行に大量の演算が要求されるが、(ii)-(B)を適用すると、順方向LFNST実行結果として導出されるデータの数を16個以下に減らすことができ、全体ブロック(TUまたはCU)サイズが大きくなるほど、変換演算量低減効果はさらに増加する。
【0204】
第2に、変換過程全体に必要な演算量が減少して変換実行に必要な電力消費を削減することができる。
【0205】
第3に、変換過程に伴う遅延時間(latency)を減少させる。
【0206】
LFNSTのような2次変換は既存の1次変換に計算量を追加することになるので、変換実行に伴う全体遅延時間を増加させる。特に、イントラ予測の場合、予測過程で隣接ブロックの復元データが使用されるので、エンコード時に2次変換による遅延時間の増加が復元(reconstruction)までの遅延時間の増加につながり、イントラ予測エンコードの全体的な遅延時間の増加につながる可能性がある。
【0207】
しかしながら、(ii)で提示したゼロアウトを適用すると、LFNST適用時に1次変換実行の遅延時間を大幅に減らすことができるため、変換実行全体に対する遅延時間はそのまま維持されるか低減することになり、エンコード装置をより簡単に実現することができる。
【0208】
一方、従来のイントラ予測は、現在符号化しようとするブロックを1つの符号化単位とみなして分割なしに符号化を行っていた。しかしながら、ISP(Intra Sub-Paritions)コーディングは、現在符号化しようとするブロックを水平方向又は垂直方向に分割してイントラ予測符号化を行うことを意味する。このとき、分割されたブロック単位で符号化/復号化を行って復元されたブロックを生成し、復元されたブロックは次の分割されたブロックの参照ブロックとして使用される。一例によって、ISPコーディング時に1つのコーディングブロックが2つ又は4つのサブブロックに分割されてコーディングされてもよく、ISPにおいて1つのサブブロックは隣接する左側又は隣接する上側に位置するサブブロックの復元されたピクセル値を参照してイントラ予測が行われる。以下、使用される「コーディング」は、エンコード装置において行われるエンコードとデコード装置で行われるデコードを全て含む概念として使用される。
【0209】
ISPは、ブロックのサイズに応じてルマイントラで予測されたブロックを垂直方向又は水平方向に2つ又は4つのサブパーティショニングに分割することである。例えば、ISPが適用できる最小ブロックサイズは4×8又は8×4である。ブロックサイズが4×8又は8×4より大きい場合、ブロックは4つのサブパーティショニングに分割される。
【0210】
ISP適用の時、サブブロックは分割の形態に応じて、例えば、水平(Horizontal)又は垂直(Verticial)、左側から右側又は上側から下側に順次コーディングされ、1つのサブブロックに対する逆変換とイントラ予測を経て復元過程まで行われた後、次のサブブロックに対するコーディングが行われる。最左側又は最上側のサブブロックに対しては通常のイントラ予測方式のように既にコーディングされたコーディングブロックの復元ピクセルを参照する。また、後続の内部のサブブロックの各辺に対して以前のサブブロックと隣接していない場合は、当該辺に隣接した参照ピクセルを導出するために、通常のイントラ予測方式のように既にコーディングされた隣接したコーディングブロックの復元ピクセルを参照する。
【0211】
ISPコーディングモードでは全てのサブブロックが同じイントラ予測モードでコーディングされることができ、ISPコーディングを使用するかどうかを示すフラグとどの方向に(水平または垂直)分割するかを示すフラグなどがシグナリングされることができる。このとき、ブロックもようによってサブブロックの個数を2個または4個に調節することができ、一つサブブロックの大きさ(幅×高さ)が16未満である場合、該当サブブロックへの分割を許容しない、またはISPコーディング自体を適用しないように制限できる。
【0212】
一方、ISP予測モードである場合、1つのコーディングユニットが2つ又は4つのパーティションブロック、すなわち、サブブロックに分割されて予測され、当該分割された2つ又は4つのパーティションブロックには同一の画面内予測モードが適用される。
【0213】
前述したように、分割方向は、水平方向(横長さと縦長さがそれぞれM、NであるM×Nコーディングユニットが水平方向に分割されると、2つに分割される場合はM×(N/2)ブロックに分割され、4つに分割される場合はM×(N/4)ブロックに分割される)と、垂直方向(M×Nコーディングユニットが垂直方向に分割されると、2つに分割される場合は(M/2)×Nブロックに分割され、4つに分割される場合は(M/4)×Nブロックに分割される)が全て可能である。水平方向に分割される場合、上側から下側の方向順にパーティションブロックがコーディングされ、垂直方向に分割される場合、左側から右側の方向順にパーティションブロックがコーディングされる。現在コーディングされるパーティションブロックは水平(垂直)方向分割である場合、上側(左側)パーティションブロックの復元されたピクセル値を参照して予測されることができる。
【0214】
ISP予測方法で生成されたレジデュアル信号にパーティションブロック単位で変換が適用されることができる。順方向(forward)を基準に1次変換(core transform又はprimary transform)に既存のDCT-2だけでなくDST-7/DCT-8組み合わせベースのMTS(Multiple Transform Selection)技術が適用され、1次変換により生成された変換係数に順方向LFNST(Low Frequency Non-Separable Transform)が適用されて最終的な修正された変換係数が生成されることができる。
【0215】
すなわち、ISP予測モードが適用されて分割されたパーティションブロックにもLFNSTが適用でき、前述のように、分割されたパーティションブロックには同一のイントラ予測モードが適用される。従って、イントラ予測モードに基づいて導出されるLFNSTセットを選択するとき、全てのパーティションブロックに導出されたLFNSTセットを適用することができる。すなわち、全てのパーティションブロックに同一のイントラ予測モードが適用されるので、これにより全てのパーティションブロックには同一のLFNSTセットが適用されることができる。
【0216】
一方、一例によって、LFNSTは横長と縦長が全て4以上である変換ブロックに対してのみ適用できる。従って、ISP予測方式に従って分割されたパーティションブロックの縦長又は横長が4未満である場合、LFNSTが適用されずLFNSTインデックスもシグナリングされない。また、各パーティションブロックにLFNSTを適用する場合、当該パーティションブロックを1つの変換ブロックとみなすことができる。もちろん、ISP予測方式が適用されない場合、コーディングブロックにLFNSTが適用される。
【0217】
各パーティションブロックにLFNSTを適用することを具体的に説明すると、以下のようにある。
【0218】
一例によって、個別的なパーティションブロックに対して順方向LFNSTを適用した後、左上側4×4領域に変換係数スキャン順序に従って最大16個(8個又は16個)の係数のみを残した後、残りの位置及び領域は全て0値で充填するゼロアウトが適用される。
【0219】
または、一例によって、パーティションブロックの一辺の長さが4である場合、左上側4×4領域に対してのみLFNSTを適用し、パーティションブロックの全ての辺、すなわち、幅及び高さの長さが8以上である場合、左上側8×8領域内部の右下側4×4領域を除いた残りの48個の係数に対してLFNSTを適用することができる。
【0220】
または、一例によって、最悪の場合の計算複雑度を8掛け算/サンプル(multiplications per sample)に合わせるために、各パーティションブロックが4×4又は8×8である場合は、順方向LFNST適用後に8つの変換係数のみを出力することができる。すなわち、パーティションブロックが4×4であると、変換マトリックスとして8×16行列が適用され、パーティションブロックが8×8であると、変換マトリックスとして8×48行列が適用される。
【0221】
一方、現在VVC標準において、LFNSTインデックスシグナリングはコーディングユニット単位で行われる。従って、ISP予測モードであり、全てのパーティションブロックに対してLFNSTを適用する場合、当該パーティションブロックに対して同一のLFNSTインデックス値が適用できる。すなわち、コーディングユニットレベルにおいてLFNSTインデックス値が一度送信されると、コーディングユニット内部の全てのパーティションブロックに対しては該当LFNSTインデックスが適用できる。前述のように、LFNSTインデックス値は0、1、2値を有し、0はLFNSTが適用されない場合を示し、1と2はLFNSTが適用されるときに1つのLFNSTセット内に存在する2つの変換マトリックスを示す。
【0222】
前記のように、LFNSTセットはイントラ予測モードにより決定され、ISP予測モードである場合、コーディングユニット内の全てのパーティションブロックが同一のイントラ予測モードで予測されるので、パーティションブロックは同一のLFNSTセットを参照することができる。
【0223】
また他の一例として、LFNSTインデックスシグナリングは依然としてコーディングユニット単位で行われるが、ISP予測モードの場合、全てのパーティションブロックに対して一律にLFNST適用の可否を決定せず、別途の条件に従ってそれぞれのパーティションブロックに対してコーディングユニットレベルにおいてシグナリングされたLFNSTインデックス値を適用するか、それともLFNSTを適用しないかを決定する。ここで、別途の条件は、ビットストリームを介して各パーティションブロック別にフラグ形態でシグナリングされ、フラグ値が1であると、コーディングユニットレベルにおいてシグナリングされたLFNSTインデックス値を適用し、フラグ値が0であると、LFNSTを適用しない。
【0224】
以下では、ISPモードにLFNST適用時、最悪の場合に関する計算複雑度を維持する方法について説明する。
【0225】
ISPモードである場合、LFNST適用時にサンプル当たり(又は、係数当たり、位置当たり)掛け算数を一定値以下に維持するためにLFNST適用を制限することができる。パーティションブロックのサイズに応じて、以下のようにLFNSTを適用してサンプル当たり(又は、係数当たり、位置当たり)掛け算数を8個以下に維持することができる。
【0226】
1.パーティションブロックの横長と縦長が両方とも4以上である場合は、現在VVC標準におけるLFNSTに対する最悪の場合に対する計算複雑度調節方式と同一の方式を適用することができる。
【0227】
すなわち、パーティションブロックが4×4ブロックである場合には16×16行列の代わりに、順方向では16×16行列から上位8個の行をサンプリングした8×16行列を適用し、逆方向では16×16行列から左側8個の列をサンプリングした16×8行列を適用することができる。また、パーティションブロックが8×8ブロックであるときは、順方向の場合は16×48行列の代わりに、16×48行列から上位8個の行をサンプリングした8×48行列を適用し、逆方向の場合は48×16行列の代わりに48×16から左側の8個の列をサンプリングした48×8行列を適用することができる。
【0228】
4×N又はN×4(N>4)ブロックの場合、順方向変換を行う時、左上側4×4ブロックに対してのみ16×16行列を適用した後、生成された16個の係数は左上側4×4領域に配置され、それ以外の領域は0値で充填される。また、逆方向変換を行う時には左上4×4ブロックに位置した16個の係数をスキャン順序に従って配置して入力ベクトルを構成した後、16×16行列を掛け算して16個の出力データを生成することができる。生成された出力データは左上側4×4領域に配置され、左上側4×4領域を除いた残りの領域は0で充填される。
【0229】
8×N又はN×8(N>8)ブロックの場合、順方向変換を行う時に左上側8×8ブロック内部のROI領域(左上側8×8ブロックから右下側4×4ブロックを除いた残りの領域)に対してのみ16×48行列を適用した後、生成された16個の係数は左上側4×4領域に配置され、それ以外の領域は全て0値で充填される。また、逆方向変換を行う時には左上側4×4ブロックに位置した16個の係数をスキャン順序に従って配置して入力ベクトルを構成した後、48×16行列を掛け算して48個の出力データを生成する。生成された出力データは、前記ROI領域に充填され、残りの領域は全て0値で充填される。
【0230】
また他の一例として、サンプル当たり(又は、係数当たり、位置当たり)掛け算数を一定値以下に維持するためにISPパーティションブロックのサイズではないISPコーディングユニットのサイズを基準にサンプル当たり(又は、係数当たり、位置当たり)掛け算数を8個以下に維持する。もし、ISPパーティションブロックのうちLFNSTが適用される条件を満たすブロックが1つだけ存在する場合、パーティションブロックのサイズではない当該コーディングユニットのサイズに基づいてLFNST最悪の場合に対する複雑度演算が適用される。例えば、あるコーディングユニットに対するルマコーディングブロックが4×4サイズの4つのパーティションブロックに分割されてISPでコーディングされ、そのうち2つのパーティションブロックに対しては0ではない変換係数が存在しない場合、他の2つのパーティションブロックには(エンコーダ基準で)それぞれ8つではない16個の変換係数が生成されるように設定することができる。
【0231】
以下では、ISPモードである場合、LFNSTインデックスをシグナリングする方法について説明する。
【0232】
前述のように、LFNSTインデックスは0、1、2値を有し、0はLFNSTを適用しないことを示し、1と2は選択されたLFNSTのセットに含まれる2つのLFNSTカーネルマトリックスのいずれか1つずつを示す。LFNSTインデックスにより選択されたLFNSTカーネルマトリックスに基づいてLFNSTが適用される。現在VVC標準においてLFNSTインデックスの送信方式を説明すると、以下のようである。
【0233】
1.コーディングユニット(CU)ごとに1回ずつLFNSTインデックスを送信することができ、デュアルツリー(dual-tree)の場合は、ルマブロックとクロマブロックに対してそれぞれ個別のLFNSTインデックスがシグナリングされる。
【0234】
2.LFNSTインデックスがシグナリングされない場合は、LFNSTインデックス値はデフォルト値である0と決定される(infer)。LFNSTインデックス値が0に類推される場合は次のようである。
【0235】
A.変換が適用されないモードである場合(例えば、変換スキップ(transform skip)、BDPCM、無損失(lossless)コーディングなど)
【0236】
B.1次変換がDCT-2でない場合(DST7やDCT8)、すなわち、水平方向の変換又は垂直方向の変換がDCT-2でない場合
【0237】
C.コーディングユニットのルマブロックに対する横長又は縦長が変換可能な最大ルマ変換のサイズを超過する場合、例えば、変換可能な最大ルマ変換のサイズが64である場合、コーディングブロックのルマブロックに対するサイズが128×16と同様である場合はLFNSTが適用できない。
【0238】
デュアルツリーの場合、ルマ成分に対するコーディングユニットとクロマ成分に対するコーディングユニットのそれぞれに対して、最大ルマ変換のサイズを超過するか否かが判断される。すなわち、ルマブロックに対して変換が可能な最大ルマ変換のサイズを超過するか否かがチェックされ、クロマブロックに対してカラーフォーマットに対する対応ルマブロックの縦/横の長さと最大変換が可能な最大ルマ変換のサイズを超過するか否かがチェックされる。例えば、カラーフォーマットが4:2:0である場合には、対応ルマブロックの横/縦の長さはそれぞれ当該クロマブロックの2倍となり、対応ルマブロック変換のサイズは当該クロマブロックの2倍となる。また他の例として、カラーフォーマットが4:4:4である場合には、対応ルマブロックの横/縦の長さと変換のサイズは、対応するクロマブロックと同じである。
【0239】
64長さ変換又は32長さ変換がそれぞれ64又は32長さを有する横又は縦に適用される変換を意味し、「変換サイズ」は当該長さである64又は32を意味する。
【0240】
シングルツリーである場合、ルマブロックに対して横長又は縦長が変換可能な最大ルマ変換ブロックのサイズを超過しているか否かをチェックした後、超過する場合はLFNSTインデックスシグナリングを省略してもよい。
【0241】
D.コーディングユニットの横長と縦長の両方とも4以上である場合にのみLFNSTインデックスを送信できる。
【0242】
デュアルツリーである場合、該当成分(すなわち、ルマ又はクロマ成分)に対する横長と縦長が両方とも4以上である場合にのみLFNSTインデックスをシグナリングすることができる。
【0243】
シングルツリーである場合は、ルマ成分に対する横長さ縦長が両方とも4以上である場合に対してLFNSTインデックスをシグナリングすることができる。
【0244】
E.最後の0ではない係数の位置(last non-zero coefficient position)がDC位置(ブロックの左上側位置)ではない場合、デュアルツリータイプのルマブロックであると、最終0ではない係数の位置がDC位置でない場合はLFNSTインデックスを送信する。デュアルツリータイプのクロマブロックであると、Cbに対する最後の0ではない係数の位置とCrに対する最後の0ではない係数の位置のうち1つでもDC位置でない場合は、該当LNFSTインデックスを送信する。
【0245】
シングルツリータイプであると、ルマ成分、Cb成分、Cr成分のうち1つでも当該最後の0ではない係数の位置がDC位置でない場合は、LFNSTインデックスを送信する。
【0246】
ここで、1つの変換ブロックに対する変換係数の存在の可否を示すCBF(coded block flag)値が0であると、LFNSTインデックスシグナリングを行うか否かを判断するために、当該変換ブロックに対する最後の0ではない係数の位置をチェックしない。すなわち、当該CBF値が0である場合、当該ブロックに変換が適用されないので、LFNSTインデックスシグナリングに対する条件をチェックするとき、最後の0ではない係数の位置を考慮しなくてもよい。
【0247】
例えば、1)デュアルツリータイプで、ルマ成分である場合、当該CBF値が0であると、LFNSTインデックスをシグナリングせず、2)デュアルツリータイプで、クロマ成分である場合、Cbに対するCBF値が0であり、Crに対するCBF値が1であると、Crに対する最後の0ではない係数の位置のみをチェックして該当LFNSTインデックスを送信し、3)シングルツリータイプである場合は、ルマ、Cb、Crの全てに対して各CBF値が1である成分に対してのみ最後の0ではない係数の位置をチェックする。
【0248】
F.LFNST変換係数が存在できる場所ではない位置に変換係数が存在することが確認された場合、LFNSTインデックスシグナリングを省略することができる。4×4変換ブロックと8×8変換ブロックの場合は、VVC標準においての変換係数スキャン順序に従ってDC位置から8つの位置にLFNST変換係数が存在し、残りの位置は全て0で充填される。また、4×4変換ブロックと8×8変換ブロックではない場合は、VVC標準での変換係数スキャン順序に従ってDC位置から16個の位置にLFNST変換係数が存在し、残りの位置は全て0で充填される。
【0249】
従って、レジデュアルコーディング(residual coding)を行った後、前記0値が充填されなければならない領域に0ではない変換係数が存在すると、LFNSTインデックスシグナリングを省略することができる。
【0250】
一方、ISPモードは、ルマブロックである場合にのみ適用されるか、ルマブロックとクロマブロックの両方ともに適用されることもある。前述したように、ISP予測が適用される場合、該当コーディングユニットは2つ又は4つのパーティションブロックに分割されて予測され、変換も該当パーティションブロックにそれぞれ適用される。従って、コーディングユニット単位でLFNSTインデックスをシグナリングする条件を決定する時にも該当パーティションブロックにそれぞれLFNSTが適用できるという事実を考慮しなければならない。また、ISP予測モードが特定成分(例えば、ルマブロック)に対してのみ適用される場合は、当該成分に対してのみパーティションブロックに分割されるという事実を考慮してLFNSTインデックスをシグナリングしなければならない。ISPモードである場合、可能なLFNSTインデックスシグナリング方式を整理すると、以下のようである。
【0251】
1.コーディングユニット(CU)ごとに1回ずつLFNSTインデックスを送信することができ、デュアルツリー(dual-tree)である場合はルマブロックとクロマブロックに対してそれぞれ個別的なLFNSTインデックスがシグナリングされることができる。
【0252】
2.LFNSTインデックスがシグナリングされない場合は、LFNSTインデックス値はデフォルト値である0に決定される(infer)。LFNSTインデックス値が0に類推される場合は次のようである。
【0253】
A.変換が適用されないモードである場合(例えば、変換スキップ(transform skip)、BDPCM、無損失(lossless)コーディングなど)
【0254】
B.コーディングユニットのルマブロックに対する横長又は縦長が変換可能な最大ルマ変換のサイズを超過する場合、例えば、変換可能な最大ルマ変換のサイズが64である場合、コーディングブロックのルマブロックに対するサイズが128×16と同一である場合はLFNSTが適用できない。
【0255】
コーディングユニットの代わりにパーティションブロックのサイズを基準にLFNSTインデックスのシグナリングを行うか否かを決定することもできる。すなわち、当該ルマブロックに対するパーティションブロックの横長又は縦長が変換可能な最大ルマ変換のサイズを超過する場合、LFNSTインデックスシグナリングを省略し、LFNSTインデックス値を0と類推できる。
【0256】
デュアルツリーの場合、ルマ成分に対するコーディングユニット又はパーティションブロックとクロマ成分に対するコーディングユニット又はパーティションブロックのそれぞれに対して最大変換ブロックサイズを超過するか否かが判断される。すなわち、ルマに対するコーディングユニット又はパーティションブロックの縦長と横長をそれぞれ最大ルマ変換サイズと比較して1つでも最大ルマ変換サイズより大きい場合はLFNSTを適用せず、クロマに対するコーディングユニット又はパーティションブロックの場合は、カラーフォーマットに対する対応ルマブロックの横/縦の長さと最大変換可能な最大ルマ変換のサイズが比較される。例えば、カラーフォーマットが4:2:0である場合には、対応ルマブロックの横/縦の長さはそれぞれ当該クロマブロックの2倍となり、対応ルマブロックの変換サイズは当該クロマブロックの2倍となる。また他の例として、カラーフォーマットが4:4:4である場合には、対応ルマブロックの横/縦の長さと変換サイズは対応するクロマブロックと同じである。
【0257】
シングルツリーである場合、ルマブロック(コーディングユニット又はパーティションブロック)に対して横長又は縦長が変換可能な最大ルマ変換ブロックサイズを超過しているか否かをチェックした後、超過する場合はLFNSTインデックスシグナリングを省略してもよい。
【0258】
C.もし、現在のVVC標準に含まれているLFNSTを適用すると、パーティションブロックの横長と縦長が両方とも4以上である場合にのみLFNSTインデックスを送信することができる。
【0259】
もし、現在VVC標準に含まれているLFNST以外に、2×M(1×M)又はM×2(M×1)ブロックに対するLFNSTまで適用すると、パーティションブロックのサイズが2×M(1×M)又はM×2(M×1)ブロックより大きいか等しい場合にのみLFNSTインデックスを送信することができる。ここで、P×QブロックがR×Sブロックより大きいか等しいという意味は、P≧Rであり、Q≧Sであることを意味する。
【0260】
整理すると、パーティションブロックが、LFNSTが適用可能な最小限のサイズより大きいか等しい場合にのみLFNSTインデックスを送信することができる。デュアルツリーの場合、ルマ又はクロマ成分に対するパーティションブロックが、LFNSTが適用可能な最小限のサイズより大きい等しい場合にのみLFNSTインデックスをシグナリングすることができる。シングルツリーの場合、ルマ成分に対するパーティションブロックが、LFNSTが適用可能な最小限のサイズより大きいか等しい場合にのみLFNSTインデックスをシグナリングすることができる。
【0261】
本文書において、M×NブロックがK×Lブロックより大きいか等しいことは、MがKより大きいか等しく、NがLより大きいか等しいことを意味する。M×NブロックがK×Lブロックより大きいということは、MがKより大きいか等しく、NがLより大きいか等しいながら、MがKより大きいか、NがLより大きいということを意味する。M×NブロックがK×Lブロックより小さいか等しいということは、MがKより小さいか等しく、NがLより小さいか等しいということを意味し、M×NブロックがK×Lブロックより小さいということはMがKより小さいか等しく、NがLより小さかいか等しいながら、MがKより小さいか、NがLより小さいことを意味する。
【0262】
D.最後の0ではない係数の位置(last non-zero coefficient position)がDC位置(ブロックの左上端位置)でない場合、デュアルツリータイプのルマブロックであれば、全てのパーティションブロックのうち1つでも当該最後の0ではない係数の位置がDC位置でなければ、LFNST送信することができる。デュアルツリータイプであり、クロマブロックであれば、Cbに対する全てのパーティションブロックの(ISPモードがクロマ成分に適用されない場合には、パーティションブロックの数は1個であるとみなす)最後の0ではない係数の位置とCrに対する全てのパーティションブロックの(ISPモードがクロマ成分に適用されない場合には、パーティションブロックの数が1個であるとみなす)最後の0ではない係数の位置のうち1つでもDC位置でなければ、当該LNFSTインデックスを送信することができる。
【0263】
シングルツリータイプの場合、ルマ成分、Cbの成分、Cr成分に対する全てのパーティションブロックのうち1つでも最後の0ではない係数の位置がDC位置でないと、該当LFNSTインデックスを送信することができる。
【0264】
ここで、各パーティションブロックに対して変換係数が存在するか否かを示すCBF(coded block flag)値が0であると、LFNSTインデックスシグナリングを行うか否かを判断するために、当該パーティションブロックに対する最後の0ではない係数の位置をチェックしない。すなわち、当該CBF値が0であると、当該ブロックに変換が適用されないので、LFNSTインデックスシグナリングに関する条件をチェックするとき、当該パーティションブロックに対する最後の0ではない係数の位置を考慮しない。
【0265】
例えば、1)デュアルツリータイプで、ルマ成分である場合、各パーティションブロックに対して該当CBF値が0であると、LFNSTインデックスシグナリングを行うか否かを決定する時に該当パーティションブロックを除外し、2)デュアルツリータイプで、クロマ成分である場合、各パーティションブロックに対してCbに対するCBF値が0で、Crに対するCBF値が1であると、Crに対する最後の0ではない係数の位置のみをチェックして該当LFNSTインデックスシグナリングを行うか否かを決定し、3)シングルツリータイプである場合、ルマ成分、Cb成分、Cr成分の全てのパーティションブロックに対してCBF値が1であるブロックに対してのみ最後の0ではない係数の位置をチェックしてLFNSTインデックスシグナリングを行うか否かを決定することができる。
【0266】
ISPモードである場合は、最後の0ではない係数の位置をチェックしないように映像情報を構成してもよく、これに関する実施形態は次のようである。
【0267】
i.ISPモードである場合は、ルマブロックとクロマブロックの両方ともに対して最後の0ではない係数の位置に関するチェックを省略し、LFNSTインデックスシグナリングを許容する。すなわち、全てのパーティションブロックに対して最後の0ではない係数の位置がDC位置であるか、該当CBF値が0であっても、当該LFNSTインデックスシグナリングを許容する。
【0268】
ii.ISPモードである場合は、ルマブロックに対してのみ最後の0ではない係数の位置に関するチェックを省略し、クロマブロックである場合は、前述の方式の最後の0ではない係数の位置に関するチェックを行う。例えば、デュアルツリータイプであり、ルマブロックである場合は、最後の0ではない係数の位置に関するチェックを行わずにLFNSTインデックスシグナリングを許容し、デュアルツリータイプであり、クロマブロックである場合は、前述の方式で最後の0ではない係数の位置に対するDC位置の存在可否をチェックして該当LFNSTインデックスのシグナリングを行うか否かを決定する。
【0269】
iii.ISPモードであり、シングルツリータイプである場合は、前記i番又はii番の方式を適用する。すなわち、ISPモードでありシングルツリータイプにi番を適用する場合、ルマブロックとクロマブロックの両方ともに対して最後の0ではない係数の位置に関するチェックを省略し、LFNSTインデックスシグナリングを許容する。または、ii番を適用してルマ成分に対するパーティションブロックに対しては最後の0ではない係数の位置に関するチェックを省略し、クロマ成分に対するパーティションブロック(クロマ成分に対してISPを適用しない場合はパーティションブロックの数が1であると見なす)に対しては前述の方式で最後の0ではない係数の位置に関するチェックを行って該当LFNSTインデックスシグナリングを行うか否かを決定することができる。
【0270】
E.全てのパーティションブロックのうち1つのパーティションブロックに対してでもLFNST変換係数が存在できる位置ではない位置に変換係数が存在することが確認されると、LFNSTインデックスシグナリングを省略することができる。
【0271】
例えば、4×4パーティションブロックと8×8パーティションブロックの場合は、VVC標準での変換係数スキャン順序に従ってDC位置から8つの位置にLFNST変換係数が存在し、残りの位置は全て0で充填される。また、4×4より大きいか等しいながら4×4パーティションブロック及び8×8パーティションブロックではない場合は、VVC標準での変換係数スキャン順序に従ってDC位置から16個の位置にLFNST変換係数が存在し、残りの位置は全て0で充填される。
【0272】
従って、レジデュアルコーディング(residual coding)を行った後、前記0値が充填されなければならない領域に0ではない変換係数が存在すると、LFNSTインデックスシグナリングを省略することができる。
【0273】
一方、ISPモードである場合、現在VVC標準においては水平方向と垂直方向に対してそれぞれ独立的に長さ条件を見てMTSインデックスに対するシグナリングなしにDCT-2の代わりにDST-7を適用する。縦長又は横長が4より大きいか等しく16より小さいか等しい否かが判断され、判断結果に応じて1次変換カーネルが決定される。従って、ISPモードでありながらLFNSTが適用できる場合に対しては次のような変換組み合わせ構成が可能である。
【0274】
1.LFNSTインデックスが0である場合(LFNSTインデックスが0と類推される場合も含む)については、現在VVC標準に含まれているISPであるときの1次変換の決定条件に従う。すなわち、水平方向と垂直方向に対してそれぞれ独立的に長さ条件(4より大きいか等しく16より小さいか等しい条件)を満足するか否かをチェックして、満足する場合は1次変換のためにDCT-2の代わりにDST-7を適用し、満足しない場合はDCT-2を適用する。
【0275】
2.LFNSTインデックスが0より大きい場合については、1次変換で次のような2つの構成が可能である。
【0276】
A.水平方向と垂直方向の両方ともに対してDCT-2が適用できる。
【0277】
B.現在VVC標準に含まれているISPであるときの1次変換の決定条件に従うことができる。すなわち、水平方向と垂直方向に対してそれぞれ独立的に長さの条件(4より大きいか等しく16より小さいか等しい条件)を満足するか否かをチェックして、満足する場合はDCT-2の代わりにDST-7を適用し、満足しない場合はDCT-2を適用する。
【0278】
ISPモードである場合、LFNSTインデックスはコーディングユニットごとに送信されるのではなく、パーティションブロックごとに送信するように映像情報を構成することができる。このような場合、前述のLFNSTインデックスシグナリング方式においてLFNSTインデックスが送信される単位内にパーティションブロックが1つだけ存在すると見なし、LFNSTインデックスシグナリングを行うか否かを決定することができる。
【0279】
一方、以下ではLFNSTインデックスとMTSインデックスのシグナリング順序に対して考察する。
【0280】
一例によって、レジデュアルコーディングでシグナリングされるLFNSTインデックスは、最後の0ではない係数位置に対するコーディング位置の次にコーディングされることができ、MTSインデックスは、LFNSTインデックスの直後にコーディングされることができる。このような構成の場合、変換ユニット毎にLFNSTインデックスがシグナリングされることができる。または、レジデュアルコーディングでシグナリングされなくても、LFNSTインデックスは、最後の有効係数位置に対するコーディングの次にコーディングされることができ、MTSインデックスは、LFNSTインデックスの次にコーディングされることができる。
【0281】
一例に係るレジデュアルコーディングのシンタックスは、下記の通りである。
【0282】
【0283】
【0284】
表3に示す主要変数の意味は、下記の通りである。
【0285】
1.cbWidth、cbHeight:現在コーディングブロック(Coding Block)の幅と高さ
【0286】
2.log2TbWidth、log2TbHeight:現在変換ブロック(Transform Block)の幅と高さに対するベース-2のログ値、ゼロアウトが反映されて0ではない係数(non-zero coefficient)が存在できる左上端領域に縮小されることができる。
【0287】
3.sps_lfnst_enabled_flag:LFNSTの適用可能(enable)可否を示すフラグであって、フラグ値が0である場合は、LFNSTが適用不可であることを示し、フラグ値が1である場合は、LFNSTが適用可能であることを示す。シーケンスパラメータセット(Sequence Parameter Set;SPS)に定義されている。
【0288】
4.CuPredMode[chType][x0][y0]:変数chTypeと(x0、y0)位置に対応される予測モード、chTypeは0と1値を有することができ、0はルマ成分を示し、1はクロマ成分を示す。(x0、y0)位置は、ピクチャ上での位置を示し、CuPredMode[chType][x0][y0]値ではMODE_INTRA(イントラ予測)とMODE_INTER(インター予測)が可能である。
【0289】
5.IntraSubPartitionsSplit[x0][y0]:(x0、y0)位置に対する内容は、前記4と同じである。(x0、y0)位置でのどのようなISP分割が適用されたかを示し、ISP_NO_SPLITは、(x0、y0)位置に該当するコーディングユニットがパーティションブロックに分割されないことを示す。
【0290】
6.intra_mip_flag[x0][y0]:(x0、y0)位置に対する内容は、前記4と同じである。intra_mip_flagは、MIP(Matrix-based Intra Prediction)予測モードが適用されたかどうかを示すフラグである。フラグ値が0である場合は、MIPが適用不可であることを示し、フラグ値が1である場合は、MIPが適用されることを示す。
【0291】
7.cIdx:0値は、ルマを示し、1値と2値は、各々、クロマ成分であるCb、Crを示す。
【0292】
8.treeType:シングルツリー(single-tree)とデュアルツリー(dual-tree)などを指す(SINGLE_TREE:シングルツリー、DUAL_TREE_LUMA:ルマ成分に対するデュアルツリー、DUAL_TREE_CHROMA:クロマ成分に対するデュアルツリー)
【0293】
9.tu_cbf_cb[x0][y0]:(x0、y0)位置に対する内容は、前記4と同じである。Cb成分に対するCBF(Coded Block Flag)を示す、その値が0である場合は、0ではない係数がCb成分に対する該当変換ユニットに存在しないということを意味し、1である場合は、0ではない係数がCb成分に対する該当変換ユニットに存在するということを示す。
【0294】
10.lastSubBlock:最後の有効係数(lastnon-zero coefficient)が位置するサブブロック(sub-block、Coefficient Group(CG))のスキャン順序上の位置を示す。0は、DC成分が含まれているサブブロックを指し、0より大きい場合は、DC成分が含まれているサブブロックでない。
【0295】
11.lastScanPos:最後の有効係数が一サブブロック内部でスキャン順序上どの位置にあるかを示す。一つのサブブロックが16個の位置で構成されている場合、0から15までの値が可能である。
【0296】
12.lfnst_idx[x0][y0]:パーシングしようとするLFNSTインデックスシンタックスエレメントである。パーシングされない場合、0値に類推される。即ち、デフォルト値が0に設定され、LFNSTを適用しないことを示す。
【0297】
13.LastSignificantCoeffX、LastSignificantCoeffY:最後の有効係数が変換ブロック内に位置するx座標とy座標を示す。x座標は、0から始めて左側から右側へ増加し、y座標は0から始めて上側から下側に増加する。二つの変数の値が全て0である場合は、最後の有効係数がDCに位置することを意味する。
【0298】
14.cu_sbt_flag:現在VVC標準に含まれているサブブロック変換(SubBlock Transform、SBT)が適用可能かどうかを示すフラグであって、フラグ値が0である場合は、SBTが適用不可であることを示し、フラグ値が1である場合は、SBTが適用されることを示す。
【0299】
15.sps_explicit_mts_inter_enabled_flag、sps_explicit_mts_intra_enabled_flag:各々インターCUとイントラCUに対して明示的なMTSが適用されたかどうかを示すフラグであって、該当フラグ値が0である場合は、インターCUまたはイントラCUに対してMTSが適用不可であることを示し、1である場合は、適用可能であることを示す。
【0300】
16.tu_mts_idx[x0][y0]:パーシングしようとするMTSインデックスシンタックスエレメントである。パーシングされない場合、0値に類推される。即ち、デフォルト値が0に設定され、水平方向と垂直方向に対して全てDCT-2が適用されることを示す。
【0301】
表3のように、シングルツリーである場合は、ルマに対する最後の有効係数位置条件のみを有してLFNSTインデックスのシグナリング可否を決定することができる。即ち、最後の有効係数位置がDCでない、かつ最後の有効係数が左上端サブブロック(CG)、例えば、4×4ブロック、内部に存在する場合、LFNSTインデックスがシグナリングされる。このとき、4×4変換ブロックと8×8変換ブロックの場合は、左上端サブブロック内部の0から7までの位置に最後の有効係数が存在してこそLFNSTインデックスがシグナリングされる。
【0302】
デュアルツリーの場合は、ルマとクロマは、各々、独立的にLFNSTインデックスがシグナリングされ、クロマの場合は、Cb成分に対してのみ最後の有効係数位置条件を適用してLFNSTインデックスをシグナリングすることができる。Cr成分に対しては該当条件をチェックしなく、もし、Cbに対するCBF値が0である場合は、Cr成分に対して最後の有効係数位置条件を適用してLFNSTインデックスをシグナリングすることができる。
【0303】
表3の「Min(log2TbWidth、log2TbHeight)>=2」は、「Min(tbWidth、tbHeight)>=4」で表現されることができ、「Min(log2TbWidth、log2TbHeight)>=4」は、「Min(tbWidth、tbHeight)>=16」で表現されることができる。
【0304】
表3において、log2ZoTbWidthとlog2ZoTbHeightは、各々、ゼロアウトにより最後の有効係数が存在できる左上端領域に対する幅と高さのベースが2である(base-2)ログ値を意味する。
【0305】
表3のように、log2ZoTbWidthとlog2ZoTbHeight値は、二箇所でアップデートされることができる。1番目は、MTSインデックスまたはLFNSTインデックス値がパーシングされる前であり、2番目は、MTSインデックスのパーシング後である。
【0306】
1番目のアップデートは、MTSインデックス(tu_mts_idx[x0][y0])値がパーシングされる前であるため、MTSインデックス値にかかわらずlog2ZoTbWidthとlog2ZoTbHeightを設定することができる。
【0307】
MTSインデックスがパーシングされた後にはMTSインデックス値が0より大きい場合(DST-7/DCT-8組み合わせである場合)に対してlog2ZoTbWidthとlog2ZoTbHeightを設定するようになる。1次変換で水平方向と垂直方向に対して各々独立的にDST-7/DCT-8を適用する場合、各方向に対して行または列毎に最大16個までの有効係数が存在できる。即ち、32長さ以上のDST-7/DCT-8を適用した後、左側または上側から行または列毎に最大16個の変換係数が導出されることができる。したがって、2次元ブロックに対しては水平方向と垂直方向の両方ともに対してDST-7/DCT-8が適用されるとき、最大左上端16×16領域までのみ有効係数が存在できる。
【0308】
また、現在1次変換で水平方向と垂直方向に対して各々独立的にDCT-2が適用される場合、各方向に対して行または列毎に最大32個までの有効係数が存在できる。即ち、64長さ以上のDCT-2を適用する時は、左側または上側から行または列毎に最大32個の変換係数が導出されることができる。したがって、2次元ブロックに対しては水平方向と垂直方向の両方ともに対してDCT-2が適用されるとき、最大左上端32×32領域までのみ有効係数が存在できる。
【0309】
また、水平方向と垂直方向に対して、一方ではDST-7/DCT-8が適用され、他方ではDCT-2が適用されるとき、前者の方向では16個の有効係数が存在でき、後者の方向では32個の有効係数が存在できる。例えば、64×8変換ブロックであり、かつ水平方向にはDCT-2が適用され、垂直方向にはDST-7が適用される場合(暗黙的MTSが適用される状況で発生できる)、最大左上端32×8領域で有効係数が存在できる。
【0310】
もし、表3のようにlog2ZoTbWidthとlog2ZoTbHeightが二箇所でアップデートされる場合、即ち、MTSインデックスパーシング前にアップデートされる場合、以下の表のようにlast_sig_coeff_x_prefixとlast_sig_coeff_y_prefixの範囲がlog2ZoTbWidthとlog2ZoTbHeightにより決められることができる。
【0311】
【0312】
また、このような場合、last_sig_coeff_x_prefixとlast_sig_coeff_y_prefixに対する二進化過程でlog2ZoTbWidthとlog2TbHeight値を反映してlast_sig_coeff_x_prefixとlast_sig_coeff_y_prefixの最大値を設定することができる。
【0313】
【0314】
一方、一例によって、ISPモードであり、かつLFNSTが適用される場合、表3のシグナリングを適用した時、表6のようにスペックテキストが構成されることができる。表3と比較した時、ISPモードでない場合に対してのみLFNSTインデックスをシグナリングした条件(表3のIntraSubPartitionsSplit[x0][y0]==ISP_NO_SPLIT)が削除された。
【0315】
シングルツリーである場合、ルマである時(cIdx=0である時)に送信したLFNSTインデックスをクロマである時に再使用する場合は、有効係数が存在する1番目のISPパーティションブロックに対して送信されたLFNSTインデックスをクロマ変換ブロックに適用できる。または、シングルツリーである場合であるとしても、クロマ成分である場合に対してルマ成分と別途にLFNSTインデックスをシグナリングすることができる。表6に記載された変数に対する説明は、表3の通りである。
【0316】
【0317】
一方、一例によって、LFNSTインデックスまたは/及びMTSインデックスは、コーディングユニットレベルでシグナリングされることができる。LFNSTインデックスは、前述したように、0、1、2の三つの値を有することができ、0はLFNSTを適用しないことを指し、1と2は選択されたLFNSTセットに含まれている2個のLFNSTカーネル候補のうち各々1番目の候補と2番目の候補を指示する。LFNSTインデックスは、トランケイテッドユナリ二進化(truncated unary binarization)を介してコーディングされ、0、1、2値は、各々、binストリング0、10、11でコーディングされることができる。
【0318】
一例によると、1次変換で水平方向と垂直方向の両方ともに対してDCT-2が適用される時にのみLFNSTが適用されることができる。したがって、もし、MTSインデックスをLFNSTインデックスシグナリング後にシグナリングする場合、LFNSTインデックス値が0である場合に限ってのみMTSインデックスをシグナリングすることができ、LFNSTインデックスが0ではない場合にはMTSインデックスをシグナリングせずに水平方向と垂直方向の両方ともにDCT-2を適用して1次変換を実行することができる。
【0319】
MTSインデックス値は、0、1、2、3、4の値を有することができ、0、1、2、3、4は、各々、水平方向と垂直方向に対してDCT-2/DCT-2、DST-7/DST-7、DCT-8/DST-7、DST-7/DCT-8、DCT-8/DCT-8が適用されることを指示することができる。また、MTSインデックスは、トランケイテッドユナリ二進化を介してコーディングされることができ、前記0、1、2、3、4値は、各々、binストリング0、10、110、1110、1111でコーディングされることができる。
【0320】
LFNSTインデックスがコーディングユニットレベルでシグナリングされることは、以下の表のように示すことができる。LFNSTインデックスは、コーディングユニットシンタックステーブルの後半にシグナリングされることができる。
【0321】
【0322】
表7の変数LfnstDcOnlyと変数LfnstZeroOutSigCoeffFlagは、以下の表10に示すように設定されることができる。
【0323】
変数LfnstDcOnlyは、該当CBF(Coded Block Flag、該当ブロック内に有効係数が一つでも存在する場合は1、そうでない場合は0)値が1である変換ブロックに対して最後の有効係数が全てDC位置(左上端位置)に位置する場合は1になり、そうでない場合は0になる。より具体的に、デュアルツリールマである場合には、最後の有効係数の位置をルマ変換ブロック一つに対してチェックし、デュアルツリークロマである場合には、Cbに対する変換ブロックとCrに対する変換ブロックの両方ともに対して最後の有効係数位置をチェックする。シングルツリーである場合には、ルマ、Cb、Crに対する変換ブロックに対して最後の有効係数位置をチェックすることができる。
【0324】
変数LfnstZeroOutSigCoeffFlagは、LFNSTが適用されるとき、ゼロアウトになる位置に有効係数が存在する場合は0であり、そうでない場合は1になる。
【0325】
表7及び以下の表に含まれるlfnst_idx[x0][y0]は、該当コーディングユニットに対するLFNSTインデックスを示し、tu_mts_idx[x0][y0]は、該当コーディングユニットに対するMTSインデックスを示す。
【0326】
一例によって、MTSインデックスをコーディングユニットレベルでLFNSTインデックス以後に続いてコーディングしようとする場合は、表8のようにコーディングユニットシンタックステーブルが構成されることができる。
【0327】
【0328】
表8を表7と比較した時、lfnst_idx[x0][y0]をシグナリングする条件でtu_mts_idx[x0][y0]値が0であるかをチェックする条件(即ち、水平方向と垂直方向に対して両方ともDCT-2であるかどうかをチェックすること)が、transform_skip_flag[x0][y0]値が0であるかをチェックする条件(!transform_skip_flag[x0][y0])に変更された。transform_skip_flag[x0][y0]は、コーディングユニットが、変換が省略される変換スキップモードにコーディングされたかどうかを示し、前記フラグは、MTSインデックス及びLFNSTインデックスより先にシグナリングされる。即ち、tu_mtx_idx[x0][y0]値をシグナリングする前にlfnst_idx[x0][y0]をシグナリングするため、transform_skip_flag[x0][y0]値に対する条件のみをチェックすることができる。
【0329】
表8に示すように、tu_mts_idx[x0][y0]をコーディングするとき、様々な条件がチェックされ、前述したように、lfnst_idx[x0][y0]値が0である場合にのみtu_mts_idx[x0][y0]がシグナリングされる。
【0330】
また、tu_cbf_luma[x0][y0]は、ルマ成分に対して有効係数が存在するかどうかを示すフラグであり、cbWidthとcbHeightは、各々、ルマ成分に対するコーディングユニットの幅と高さを示す。
【0331】
また、表8において、(IntraSubPartitionsSplit[x0][y0]==ISP_NO_SPLIT)は、ISPモードでない場合を示し、(!cu_sbt_flag)は、SBTが適用されない場合を示す。
【0332】
表8によると、ルマ成分に対するコーディングユニットの幅と高さが両方とも32以下であるとき、tu_mts_idx[x0][y0]がシグナリングされ、即ち、MTS適用可否がルマ成分に対するコーディングユニットの幅と高さにより決定される。
【0333】
他の例によって、変換ブロックタイリング(TU tiling)が発生する場合(例えば、最大変換大きさが32に設定された場合、64×64コーディングユニットは、4個の32×32変換ブロックに分割されてコーディングされる)、各変換ブロックの大きさを基準にしてMTSインデックスがシグナリングされることができる。例えば、変換ブロックの幅と高さが両方とも32以下であるとき、コーディングユニット内の全ての変換ブロックに対しては同じMTSインデックス値が適用されて同じ1次変換が適用されることができる。また、変換ブロックタイリングが発生する場合、表8のtu_cbf_luma[x0][y0]値は、左上端変換ブロックに対するCBF値であり、または全ての変換ブロックに対して一つの変換ブロックでも該当CBF値が1である場合、1に設定されることができる。
【0334】
一例によって、現在ブロックにISPモードが適用される場合、LFNSTを適用することができ、この場合、表8は、表9のように変更されることができる。
【0335】
【0336】
表9のように、ISPモードである場合にも(IntraSubPartitionsSplitType!=ISP_NO_SPLIT)lfnst_idx[x0][y0]をシグナリングするように構成でき、全てのISPパーティションブロックに対して同じLFNSTインデックス値が適用されることができる。
【0337】
また、表9のように、tu_mts_idx[x0][y0]は、ISPモードでない場合にのみシグナリングされることができるため、MTSインデックスコーディング部分は、表8の通りである。
【0338】
表8及び表9のように、MTSインデックスをLFNSTインデックス直後にシグナリングする場合、レジデュアルコーディングを実行するとき、1次変換に対する情報を知ることができない。即ち、MTSインデックスがレジデュアルコーディング以後にシグナリングされる。したがって、レジデュアルコーディングパートで32長さのDST-7またはDCT-8に対して16個の係数のみを残してゼロアウトを実行する部分は、以下の表10のように変更されることができる。
【0339】
【0340】
【0341】
表10のようにlog2ZoTbWidthとlog2ZoTbHeightを決定する過程で(ここで、log2ZoTbWidthとlog2ZoTbHeightは、各々、ゼロアウトが実行された後に残った左上端領域に対する幅と高さのベース-2(base-2)ログ値を示す)tu_mts_idx[x0][y0]値をチェックする部分が省略されることができる。
【0342】
表10のlast_sig_coeff_x_prefixとlast_sig_coeff_y_prefixに対する二進化は、表5のようにlog2ZoTbWidthとlog2ZoTbHeightに基づいて決定されることができる。
【0343】
また、表10のように、レジデュアルコーディングでlog2ZoTbWidthとlog2ZoTbHeightを決定するとき、sps_mts_enable_flagをチェックする条件が追加されることができる。
【0344】
一方、他の例によって、コーディングユニットシンタックステーブル、変換ユニットシンタックステーブル、及びレジデュアルコーディングシンタックステーブルは、以下の表の通りである。表11によると、MTSインデックスは、変換ユニットレベルからコーディングユニットレベルのシンタックスに移動し、LFNSTインデックスシグナリング以後にシグナリングされる。また、コーディングユニットにISPが適用される場合、LFNSTを許容しない制限条件が除去された。コーディングユニットにISPが適用される場合、LFNSTを許容しない制限条件が除去されるため、LFNSTを全てのイントラ予測ブロックに適用できる。また、MTSインデックス及びLFNSTインデックスは、両方ともコーディングユニットレベルの最後の部分に条件付きでシグナリングされる。
【0345】
【0346】
【0347】
【0348】
表11において、MtsZeroOutSigCoeffFlagは、最初に1に設定され、この値は、表13のレジデュアルコーディングで変更されることができる。変数MtsZeroOutSigCoeffFlagは、ゼロアウトによって0で満たされるべき領域(LastSignificantCoeffX>15||LastSignificantCoeffY>15)に有効係数が存在すると、その値が1から0へ変更され、この場合、表11のように、MTSインデックスはシグナリングされない。
【0349】
一方、表11のように、tu_cbf_luma[x0][y0]が0である場合にはmts_idx[x0][y0]コーディングを省略することができる。即ち、ルマ成分のCBF値が0である場合は、変換を適用しないため、MTSインデックスをシグナリングする必要がなくて、MTSインデックスコーディングを省略することができる。
【0350】
一例によって、前記技術的特徴は、他の条件付き構文で具現されることができる。例えば、MTSが実行された後、現在ブロックのDC領域を除外した領域に有効係数が存在するかどうかを示す変数を導出することができ、前記変数がDC領域を除外した領域に有効係数が存在することを示す場合、MTSインデックスをシグナリングすることができる。即ち、現在ブロックのDC領域を除外した領域に有効係数が存在するということは、tu_cbf_luma[x0][y0]値が1であることを示し、この場合、MTSインデックスをシグナリングすることができる。
【0351】
前記変数は、MtsDcOnlyで表すことができ、変数MtsDcOnlyは、コーディングユニットレベルで最初に1に設定された後、レジデュアルコーディングレベルで現在ブロックのDC領域を除外した領域に有効係数が存在することを示す場合、その値が0に変更されることができる。変数MtsDcOnlyが0である場合、MTSインデックスがシグナリングされるように映像情報が構成されることができる。
【0352】
もし、tu_cbf_luma[x0][y0]が0である場合は、表12の変換ユニットレベルでレジデュアルコーディングシンタックスの呼び出しが行われないため、変数MtsDcOnlyは、初期値1を維持するようになる。このような場合、変数MtsDcOnlyが0に変更されなかったため、MTSインデックスがシグナリングされないように映像情報が構成されることができる。即ち、MTSインデックスは、パーシング及びシグナリングされない。
【0353】
一方、デコーディング装置は、表13の変数MtsZeroOutSigCoeffFlagを導出するために変換係数のカラーインデックス(cIdx)を判断することができる。カラーインデックス(cIdx)が0であることは、ルマ成分を意味する。
【0354】
一例によって、現在ブロックのルマ成分にのみMTSが適用されることができるため、デコーディング装置は、MTSインデックスのパーシング可否を決定する変数MtsZeroOutSigCoeffFlagを導出する時、カラーインデックスがルマであるかどうかを判断することができる。(if cIdx==0、MtsZeroOutSigCoeffFlag=0)。
【0355】
変数MtsZeroOutSigCoeffFlagは、MTS適用時にゼロアウトが実行されたかどうかを示す変数であって、MTS実行後にゼロアウトにより最後の有効係数が存在できる左上端領域、即ち、左上端16×16領域以外の領域に変換係数が存在するかどうかを示す。変数MtsZeroOutSigCoeffFlagは、表11のようにコーディングユニットレベルで最初に1に設定され(MtsZeroOutSigCoeffFlag=1)、16×16領域以外の領域に変換係数が存在すると、表13のようにレジデュアルコーディングレベルでその値が1から0へ変更されることができる(MtsZeroOutSigCoeffFlag=0)。変数MtsZeroOutSigCoeffFlagの値が0である場合、MTSインデックスはシグナリングされない。
【0356】
表13のように、レジデュアルコーディングレベルで、MTSに伴われるゼロアウトが実行されたかどうかによって0でない変換係数が存在できるノンゼロアウト領域が設定されることができ、この場合にも、カラーインデックス(cIdx)が0である場合、ノンゼロアウト領域は、現在ブロックの左上端16×16領域に設定されることができる。
【0357】
このように、MTSインデックスのパーシング可否を決定する変数を導出する時は、カラー成分がルマであるかまたはクロマであるかを判断するが、現在ブロックのルマ成分またはクロマ成分の両方ともにLFNSTが適用されることができるため、LFNSTインデックスのパーシング可否を決定する変数を導出する時はカラー成分を判断しない。
【0358】
例えば、表11にはLFNST適用時にゼロアウトが実行されたことを示すことができる変数LfnstZeroOutSigCoeffFlagが示されている。変数LfnstZeroOutSigCoeffFlagは、現在ブロックの左上端第1の領域を除外した第2の領域に有効係数が存在するかどうかを示し、この値は、最初に1に設定され、第2の領域に有効係数が存在すると、その値は、0に変更されることができる。最初設定された変数LfnstZeroOutSigCoeffFlag値が1に維持されてこそLFNSTインデックスがパーシングされることができる。変数LfnstZeroOutSigCoeffFlag値が1であるかどうかを判断及び導出する時、現在ブロックのルマ成分またはクロマ成分の両方ともにLFNSTが適用されることができるため、現在ブロックのカラーインデックスは判断されない。
【0359】
図12は、一実施例に係るクロマブロックのイントラ予測モード導出時に適用されることができるCCLMを説明するための図である。
【0360】
本明細書において、「参照サンプルテンプレート」は、現在クロマブロックを予測するための現在クロマブロック周辺の参照サンプルの集合を意味することができる。参照サンプルテンプレートは、既定義されることができ、参照サンプルテンプレートに関する情報がエンコーディング装置100からデコーディング装置200にシグナリングされることもできる。
【0361】
図12を参照すると、現在クロマブロックである4×4ブロックの周辺に1ラインで陰影表示されたサンプルの集合は、参照サンプルテンプレートを示す。参照サンプルテンプレートが1ラインの参照サンプルで構成され、それに対して、参照サンプルテンプレートと対応されるルマ領域内の参照サンプル領域は、2ラインで構成されたことを
図12で確認することができる。
【0362】
一実施例において、JVET(Joint Video Exploration Team)で使われるJEM(Joint Explolation TEST Model)でクロマ映像の画面内の符号化を実行するとき、CCLM(Cross Component Linear Model)を利用することができる。CCLMは、クロマ映像の画素値を復元された輝度映像の画素値で予測する方法であって、輝度映像とクロマ映像との間の相関度(correlation)が高い特性に基づいている。
【0363】
Cb及びCrクロマ映像のCCLM予測は、以下の数式を基づいて行われる。
【0364】
【0365】
ここで、Predc(i、j)は、予測されるCbまたはCrクロマ映像を意味し、RecL’(i、j)は、クロマブロックサイズに調節された復元された輝度映像を意味し、(i、j)は、画素の座標を意味する。4:2:0カラーフォーマット(color format)では輝度映像の大きさが色彩映像の2倍であるため、ダウンサンプリング(downsampling)を介してクロマブロック大きさのRecL’を生成すべきであり、したがって、クロマ映像Predc(i、j)に使われる輝度映像の画素は、RecL(2i、2j)外に周辺画素まで全て考慮して使用することができる。前記RecL’(i、j)は、ダウンサンプリングされたルマサンプルと示すことができる。
【0366】
例えば、前記RecL’(i、j)は、以下の数式のように6個の周辺画素を利用して導出されることができる。
【0367】
【0368】
また、α、βは、
図12の陰影表示された領域のように、CbまたはCrクロマブロック周辺テンプレートと輝度ブロック周辺テンプレートとの間のcross-correlation及び平均値の差を示す。α、βは、例えば、以下の数式13の通りである。
【0369】
【0370】
ここで、L(n)は、現在クロマ映像に対応するルマブロックの周辺参照サンプル及び/または左側周辺サンプルを意味し、C(n)は、現在符号化が適用される現在クロマブロックの周辺参照サンプル及び/または左側周辺サンプルを意味し、(i、j)は、画素位置を意味する。また、L(n)は、前記現在ルマブロックのダウンサンプリング(down-sampled)された上側周辺サンプル及び/または左側周辺サンプルを示すことができる。また、Nは、CCLMパラメータ計算に使われた総画素対(pair、輝度及びクロマ)値の数を示すことができ、前記現在クロマブロックの幅(width)と高さ(height)のうち小さい値の2倍である値を示すことができる。
【0371】
一方、ピクチャは、コーディングツリーユニット(CTUs)のシーケンスに分割される(divided into a sequence)ことができる。CTUは、コーディングツリーブロック(CTB)に対応されることができる。または、CTUは、ルマサンプルのコーディングツリーブロックと、対応するクロマサンプルのコーディングツリーブロックと、を含むことができる。ツリータイプは、ルマブロックと対応するクロマブロックが個別的な分割構造を有するかどうかによって、シングルツリー(SINGLE_TREE)またはデュアルツリー(DUAL_TREE)に区分されることができる。クロマブロックがルマブロックと同じ分割構造を有する場合はシングルツリーで表し、クロマ成分ブロックがルマ成分ブロックと異なる分割構造を有する場合はデュアルツリーで表すことができる。
【0372】
一方、一例によって、クロマ変換ブロックにLFNSTを適用する時、同一位置のルマ変換ブロック(collocated Luma transform block)に対する情報を参照する必要がある。
【0373】
該当部分に対する既存のスペックテキストを表で表せると、以下の通りである。
【0374】
【0375】
表14に示すように、現在のイントラ予測モードがCCLMモードであるとき、同一位置ルマ変換ブロックに対するイントラ予測モード値を使用して該当クロマ変換ブロックに対するpredModeIntra変数値を決定することを示す(イタリック体で表示された部分)。このようにルマ変換ブロックのイントラ予測モード値(predModeIntra値)は、以後LFNSTセットを決定するときに使われることができる。
【0376】
しかし、本変換過程の入力値で入力される変数nTbW及び変数nTbHは、現在変換ブロック(the current transform block)に対する幅及び高さを示す。現在ブロックがルマ変換ブロックである場合、変数nTbW及び変数nTbHはルマ変換ブロックに対する幅及び高さを示し、現在ブロックがクロマ変換ブロックである場合、変数nTbW及び変数nTbHはクロマ変換ブロックに対する幅及び高さを示す。
【0377】
このとき、表14のイタリック体に対する部分内の変数nTbW及び変数nTbHは、カラーフォーマットを反映しないクロマ変換ブロックの幅及び高さを示しているため、クロマ変換ブロックに対応するルマ変換ブロックの参照位置を正確に指示していない。したがって、表14のイタリック体部分は、以下の表のように修正されることができる。
【0378】
【0379】
表15に示すように、nTbWとnTbHは、各々、(nTbW*SubWidthC)/2と(nTbH*SubHeightC)/2に変更された。xTbYとyTbYは、各々、ルマに対する現在ピクチャ内での位置を示し(the top-left sample of the current luma transform block relative to the top left luma sample of the current picture)、nTbWとnTbHは、現在コーディングする変換ブロックの幅と高さを示すことができる(a variable nTbW specifying the width of the current transform block,a variable nTbH specifying the height of the current transform block)。
【0380】
もし、現在コーディングする変換ブロックがクロマに対する(CbまたはCrに対する)変換ブロックである場合、nTbWとnTbHは、各々、クロマ変換ブロックに対する幅と高さになる。したがって、現在コーディングする変換ブロックがクロマ変換ブロックである場合(cIdx>0)、同一位置ルマ変換ブロック(collocated Luma transform block)に対する参照位置を求める時、該当ルマ変換ブロックに対する幅と高さで該当参照位置を求めなければならない。表15のSubWidthCとSubHeightCは、カラーフォーマット(Chroma format、例えば、4:2:0、4:2:2、4:4:4)によって設定される値であり、より具体的に、各々、ルマ成分とクロマ成分の幅の比率と高さの比率を示すため(以下の表16参照)、クロマ変換ブロックの場合、(nTbW*SubWidthC)と(nTbH*SubHeightC)は、各々、同一位置ルマ変換ブロックに対する幅及び高さに対する値になることができる。
【0381】
結果的に、xTbY+(nTbW*SubWidthC)/2値とyTbY+(nTbH*SubHeightC)/2値は、現在ピクチャの左上端位置を基準とする同一位置ルマ変換ブロック内部のセンター位置値を指示するため、より明確には同一位置ルマ変換ブロックを指すことができる。
【0382】
【0383】
表15において、predModeIntra変数は、イントラ予測モード値を指し、predModeIntra変数値がINTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLMであることは、現在の変換ブロックがクロマに対する変換ブロックであることを示す。一例によって、現在VVC標準でINTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLMは、イントラ予測モード値のうち、各々、81、82、83のモード値に該当する。したがって、表15のようにxTbY+(nTbW*SubWidthC)/2値とyTbY+(nTbH*SubHeightC)/2値を使用して、同一位置ルマ変換ブロックで参照位置を求めなければならない。
【0384】
表15のように、predModeIntra変数値は、intra_mip_flag[xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]変数とCuPredMode[0][xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]変数を共に考慮してその値が更新される。
【0385】
変数intra_mip_flagは、現在変換ブロック(または、コーディングユニット)がMIP(Matrix-based Intra Prediction)方式にコーディングされたかを示す変数であり、intra_mip_flag[x][y」は、現在ピクチャ内で左上端位置を(0、0)に置いた時、ルマ成分基準にして(x、y)座標に該当する位置に対するMIP適用可否を指示するフラグ値を示す。x座標とy座標は、各々、左側から右側へ、上側から下側へ増加する。MIP適用可否を示すフラグ値が1である時は、MIPが適用されたことを示す。MIP適用可否を示すフラグ値が0である時は、MIPが適用されないことを示す。MIPは、ルマブロックに対してのみ適用されることができる。
【0386】
表15の修正された内容部分によると、同一位置ルマ変換ブロック内部のintra_mip_flag[xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]値が1である時は、predModeIntra値をプラナーモードに設定する(INTRA_PLANAR)。
【0387】
CuPredMode[0][xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]変数値は、ルマ成分に対して現在ピクチャの左上端位置を(0、0)に置いた時、(xTbY+(nTbW*SubWidthC)/2、yTbY+(nTbH*SubHeightC)/2)座標に該当する予測モード値を示す。予測モード値は、MODE_INTRA、MODE_IBC、MODE_PLT、MODE_INTER値を有することができ、各々、イントラ予測モード、IBC(Intra Block Copy)予測モード、PLT(Palette)コーディングモード、インター予測モードを示す。表15によると、CuPredMode[0][xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]変数値がMODE_IBCでありまたはMODE_PLTである場合、変数predModeIntra値は、DCモードに設定される。前記二つの場合でない場合、変数predModeIntra値は、IntraPredModeY[xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2]値に(同一位置ルマ変換ブロック内部の中心位置に該当するイントラ予測モード値に)設定される。
【0388】
一例によって、表15で更新されたpredModeIntra値に基づいて以下の表のように広角イントラ予測(wide angle intra prediction)可否を考慮して変数predModeIntra値をもう一回更新できる。
【0389】
【0390】
表17で提示されたマッピング過程の入力値であるpredModeIntra、nTbW、nTbHは、各々、表15で更新された変数predModeIntra値と表15で参照されるnTbW、nTbHと同じである。
【0391】
表17において、nCbWとnCbHは、各々、該当変換ブロックに対応されるコーディングブロックの幅と高さを指し、IntraSubPartitionsSplitType変数は、ISPモードが適用されたかどうかを示す。IntraSubPartitionsSplitTypeがISP_NO_SPLITである場合は、ISPによってコーディングユニットが分割されていないことを(即ち、ISPモードが適用されていないことを)示す。変数IntraSubPartitionsSplitType値がISP_NO_SPLITでない場合は、ISPモードが適用されてコーディングユニットが2個または4個のパーティションブロックに分割されたことを示す。表17において、cIdxは、カラー成分(color component)を指すインデックスであり、cIdx値が0である場合はルマブロックを示し、cIdx値が0でない場合はクロマブロックを示す。表17のマッピング過程を介して出力されるpredModeIntra値は、広角イントラ予測(WAIP)モードの適用可否を考慮して更新された値である。
【0392】
表17を介して更新されたpredModeIntra値に対して以下の表のようなマッピング関係を介してLFNSTセットが決定されることができる。
【0393】
【0394】
前記表において、lfnstTrSetIdxは、LFNSTセットを指すインデックスを示し、0から3までの値を有するため、総4個のLFNSTセットが構成されたことを確認することができる。各LFNSTセットは、2個の変換カーネル、即ち、LFNSTカーネルで構成されることができ(LFNSTが適用される領域によって、該当変換カーネルは、順方向基準にして16×16行列乃至16×48行列になることができる)、該当2個の変換カーネルのうちどの変換カーネルが適用されるかは、LFNSTインデックスのシグナリングを介して指定できる。また、LFNSTインデックスを介してLFNSTの適用可否も指定できる。現在VVC標準でLFNSTインデックスは0、1、2値を有することができ、0はLFNSTを適用しないということを指し、1と2は各々該当2個の変換カーネルを示す。
【0395】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されない。
【0396】
図13は、本文書の一実施例に係るビデオデコーディング装置の動作を示す流れ図である。
【0397】
図13に開示された各ステップは、
図3乃至
図12で詳述した内容のうち一部に基づいている。したがって、
図2乃至
図12で詳述した内容と重複する具体的な内容は、説明を省略または簡単にする。
【0398】
一実施例に係るデコーディング装置200は、ビットストリームからイントラ予測モード情報及びLFNSTインデックスを取得することができる(S1310)。
【0399】
イントラ予測モード情報は、現在ブロックの周辺ブロック(例えば、左側及び/または上側周辺ブロック)のイントラ予測モード及び追加的な候補モードに基づいて導出されたMPM(most probable mode)リスト内のmpm候補のうち一つを指示するmpmインデックスまたは前記mpm候補に含まれない残りのイントラ予測モードのうち一つを指示するリメイニングイントラ予測モード情報を含むことができる。
【0400】
また、イントラモード情報は、現在ブロックにCCLMが適用されるかどうかを指示するフラグ情報sps_cclm_enabled_flag及びクロマ成分に対するイントラ予測モードに対する情報intra_chroma_pred_modeを含むことができる。
【0401】
LFNSTインデックス情報は、シンタックス情報で受信され、シンタックス情報は、0と1を含む二進化されたbinストリングで受信される。
【0402】
本実施例に係るLFNSTインデックスのシンタックス要素は、逆LFNSTまたは逆非分離変換が適用されるかどうか及び変換セットに含まれている変換カーネルマトリクスのうちいずれか一つを指示することができ、変換セットが二つの変換カーネルマトリクスを含む場合、変換インデックスのシンタックス要素の値は三つである。
【0403】
即ち、一実施例によって、LFNSTインデックスに対するシンタックス要素値は、対象ブロックに逆LFNSTが適用されない場合を指示する0、変換カーネルマトリクスのうち1番目の変換カーネルマトリクスを指示する1、変換カーネルマトリクスのうち2番目の変換カーネルマトリクスを指示する2、を含むことができる。
【0404】
また、デコーディング装置200は、ビットストリームから現在ブロックに対する量子化された変換係数に関する情報をデコーディングすることができ、現在ブロックに対する量子化された変換係数に関する情報に基づいて対象ブロックに対する量子化された変換係数を導出することができる。対象ブロックに対する量子化された変換係数に関する情報は、SPS(Sequence Parameter Set)またはスライスヘッダ(slice header)に含まれることができ、簡素化変換(RST)が適用されるかどうかに対する情報、簡素化ファクターに関する情報、簡素化変換を適用する最小変換サイズに対する情報、簡素化変換を適用する最大変換サイズに対する情報、簡素化逆変換サイズ、変換セットに含まれている変換カーネルマトリクスのうちいずれか一つを指示する変換インデックスに対する情報のうち少なくとも一つを含むことができる。
【0405】
デコーディング装置200は、現在ブロックに対するレジデュアル情報、即ち、量子化された変換係数に対して逆量子化を実行して変換係数を導出することができ、導出された変換係数を所定スキャニング順序に配列できる。
【0406】
具体的に、導出された変換係数は、4×4ブロック単位で逆方向対角スキャン順序によって配列されることができ、4×4ブロック内の変換係数も逆方向対角スキャン順序によって配列されることができる。即ち、逆量子化が実行された変換係数は、VVCやHEVCのようなビデオコーデックで適用されている逆方向スキャンによって配置されることができる。
【0407】
このようなレジデュアル情報に基づいて導出された変換係数は、前記のように逆量子化された変換係数であってもよく、量子化された変換係数であってもよい。即ち、変換係数は、量子化可否にかかわらず、現在ブロックで0でないデータであるかどうかをチェックすることができるデータであればよい。
【0408】
デコーディング装置は、イントラ予測モード情報に基づいてクロマブロックのイントラ予測モードをCCLMモードとして導出することができる(S1320)。
【0409】
例えば、デコーディング装置は、ビットストリームを介して現在クロマブロックのイントラ予測モードに対する情報を受信することができ、イントラ予測モードに対する情報に基づいてCCLMモードを前記現在クロマブロックのイントラ予測モードとして導出することができる。
【0410】
CCLMモードは、左上側ベースのCCLMモード、上側ベースのCCLMモードまたは左側ベースのCCLMモードを含むことができる。
【0411】
前述したように、デコーディング装置は、非分離変換であるLFNSTまたは分離変換であるMTSを適用してレジデュアルサンプルを導出することができ、このような変換は、各々、LFNSTカーネル、即ち、LFNSTマトリクスを指示するLFNSTインデックスとMTSカーネルを指示するMTSインデックスとに基づいて実行されることができる。
【0412】
一方、LFNSTのためにLFNSTセットが決定されるべきであり、LFNSTセットは、現在ブロックのイントラ予測モードとマッピング関係を有する。
【0413】
デコーディング装置は、クロマブロックの逆LFNSTのために、クロマブロックのイントラ予測モードをクロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新できる(S1330)。
【0414】
一例によって、更新されたイントラ予測モードは、ルマブロック内の特定位置に対応するイントラ予測モードとして導出されることができ、このとき、特定位置は、クロマブロックのカラーフォーマットに基づいて設定されることができる。
【0415】
特定位置は、ルマブロックの中心位置であり、((xTbY+(nTbW*SubWidthC)/2)、(yTbY+(nTbH*SubHeightC)/2))で表現されることができる。
【0416】
前記中心位置で、xTbY及びyTbYは、ルマブロックの左上端座標、即ち、現在変換ブロックに対するルマサンプル基準での左上端位置を示し、nTbW及びnTbHは、前記クロマブロックの幅及び高さを示し、SubWidthC及びSubHeightCは、カラーフォーマットに対応される変数に対応する。((xTbY+(nTbW*SubWidthC)/2)、(yTbY+(nTbH*SubHeightC)/2))は、ルマ変換ブロックの中間位置を示し、IntraPredModeY[xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2」は、該当位置に対するルマブロックでのイントラ予測モードを指すようになる。
【0417】
SubWidthC及びSubHeightCは、表16のように導出されることができる。即ち、カラーフォーマットが4:2:0である場合、SubWidthC及びSubHeighCは2であり、カラーフォーマットが4:2:2である場合、SubWidthCは2であり、かつSubHeightCは1である。
【0418】
表15のように、カラーフォーマットにかかわらずにクロマブロックに対応するルマブロックの特定位置を指定するために、特定位置を指示する変数にカラーフォーマットが反映された。
【0419】
一例によって、特定位置に対応するルマブロックのイントラ予測モードがマトリクスベースのイントラ予測(Matrix based intra prediction、以下、MIP)モードである場合、デコーディング装置は、更新されたイントラ予測モードをイントラプラナーモードに設定できる。
【0420】
MIPモードは、アフィン線形加重イントラ予測(Affine linear weighted intra predictio、ALWIP)またはマトリクス加重イントラ予測(Matrix weighted intra prediction、MWIP)とも呼ばれる。MIPが現在ブロックに対して適用される場合、i)アベレージング(averaging)手順が実行された周辺参照サンプルを利用して、ii)メトリックスベクトルマルチプリケーション(matrix-vector-multiplication)手順を実行し、iii)必要によって、水平/垂直補間(interpolation)手順をさらに実行することで、前記現在ブロックに対する予測サンプルを導出することができる。
【0421】
または、一例によって、特定位置に対応するイントラ予測モードがイントラブロックコピー(intra block copy、IBC)モードまたはパレットモードである場合、デコーディング装置は、更新されたイントラ予測モードをイントラDCモードに設定できる。
【0422】
IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0423】
整理すると、中心位置に対するイントラ予測モードがMIPモード、IBCモード、及びパレットモードである場合、クロマブロックのイントラ予測モードは、イントラプラナーモードまたはイントラDCモードのような特定モードに更新されることができる。
【0424】
もちろん、中心位置のイントラ予測モードがMIPモード、IBCモード、及びパレットモードでない場合、クロマブロックとルマブロックの連関性を反映するために、クロマブロックのイントラ予測モードは、中心位置に対するルマブロックのイントラ予測モードに更新されることができる。
【0425】
デコーディング装置は、更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定し(S1340)、LFNSTセットから導出されたLFNSTマトリクスに基づいてクロマブロックに対する変換係数を導出することができる(S1350)。
【0426】
複数のLFNSTマトリクスのうちいずれか一つは、LFNSTセット及びLFNSTインデックスに基づいて複数の中からいずれか一つを選択することができる。
【0427】
表18のように、イントラ予測モードによってLFNST変換セットが導出される。イントラ予測モードでCCLMモードを示す81乃至83は省略されており、これはCCLMモードの場合、対応されるルマブロックに対するイントラモード値を有してLFNST変換セットを導出するためである。
【0428】
一例によって、表18のように、現在ブロックのイントラ予測モードによって4個のLFNSTセットのうちいずれか一つが決定されることができ、このとき、現在クロマブロックに適用されるLFNSTセットも決定されることができる。
【0429】
その後、デコーディング装置は、逆量子化された変換係数にLFNSTマトリクスを適用して逆RST、例えば、逆LFNSTを実行することによって、現在クロマブロックに対する修正された変換係数を導出することができる。
【0430】
デコーディング装置は、1次逆変換を介して変換係数からレジデュアルサンプルを導出することができる(S1360)。1次逆変換としてMTSが使われることができる。
【0431】
また、デコーディング装置は、現在ブロックに対するレジデュアルサンプル及び現在ブロックに対する予測サンプルに基づいて、復元サンプルを生成することができる。現在ブロックは、現在ルマブロックまたは現在クロマブロックである。
【0432】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されない。
【0433】
図14は、本文書の一実施例に係るビデオエンコーディング装置の動作を示す流れ図である。
【0434】
図14に開示された各ステップは、
図3乃至
図12で詳述した内容のうち一部に基づいている。したがって、
図1及び
図3乃至
図12で詳述した内容と重複する具体的な内容は、説明を省略または簡単にする。
【0435】
一実施例に係るエンコーディング装置100は、クロマブロックに対するイントラ予測モードをCCLMモードとして導出することができる(S1410)。
【0436】
例えば、エンコーディング装置は、RDコスト(Rate-distortion cost)(または、RDO)に基づいて前記現在クロマブロックのイントラ予測モードを決定することができる。ここで、前記RDコストは、SAD(Sum of Absolute Difference)に基づいて導出されることができる。エンコーディング装置は、RDコストに基づいて前記CCLMモードを前記現在クロマブロックのイントラ予測モードに決定できる。
【0437】
CCLMモードは、左上側ベースのCCLMモード、上側ベースのCCLMモードまたは左側ベースのCCLMモードを含むことができる。
【0438】
また、エンコーディング装置は、前記現在クロマブロックのイントラ予測モードに対する情報をエンコーディングすることができ、ビットストリームを介して前記イントラ予測モードに対する情報がシグナリングされることができる。前記現在クロマブロックの予測関連情報は、前記イントラ予測モードに対する情報を含むことができる。
【0439】
エンコーディング装置は、CCLMモードに基づいてクロマブロックに対する予測サンプルを導出することができる(S1420)。
【0440】
一実施例に係るエンコーディング装置は、予測サンプルに基づいてクロマブロックに対するレジデュアルサンプルを導出することができる(S1430)。
【0441】
一実施例に係るエンコーディング装置は、レジデュアルサンプルに対する1次変換に基づいてクロマブロックに対する変換係数を導出することができる。
【0442】
1次変換は、複数の変換カーネルを介して実行されることができ、この場合、イントラ予測モードに基づいて変換カーネルが選択されることができる。
【0443】
エンコーディング装置は、クロマブロックのLFNSTのために、クロマブロックのイントラ予測モードをクロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新できる(S1440)。
【0444】
エンコーディング装置は、表15に示すように、クロマブロックに対するCCLMモードをクロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新できる(When predModeIntra is equal to either INTRA_LT_CCLM,INTRA_L_CCLM,or INTRA_T_CCLM,predModeIntra is derived as follow:)。
【0445】
一例によって、更新されたイントラ予測モードは、ルマブロック内の特定位置に対応するイントラ予測モードとして導出されることができ、このとき、特定位置は、クロマブロックのカラーフォーマットに基づいて設定されることができる。
【0446】
特定位置は、ルマブロックの中心位置であり、((xTbY+(nTbW*SubWidthC)/2)、(yTbY+(nTbH*SubHeightC)/2))で表現されることができる。
【0447】
前記中心位置で、xTbY及びyTbYは、ルマブロックの左上端座標、即ち、現在変換ブロックに対するルマサンプル基準での左上端位置を示し、nTbW及びnTbHは、前記クロマブロックの幅及び高さを示し、SubWidthC及びSubHeightCは、カラーフォーマットに対応される変数に対応する。((xTbY+(nTbW*SubWidthC)/2)、(yTbY+(nTbH*SubHeightC)/2))は、ルマ変換ブロックの中間位置を示し、IntraPredModeY[xTbY+(nTbW*SubWidthC)/2][yTbY+(nTbH*SubHeightC)/2」は、該当位置に対するルマブロックでのイントラ予測モードを指すようになる。
【0448】
SubWidthC及びSubHeightCは、表16のように導出されることができる。即ち、カラーフォーマットが4:2:0である場合、SubWidthC及びSubHeightCは2であり、カラーフォーマットが4:2:2である場合、SubWidthCは2であり、かつSubHeightCは1である。
【0449】
表15のように、カラーフォーマットにかかわらずにクロマブロックに対応するルマブロックの特定位置を指定するために、特定位置を指示する変数にカラーフォーマットが反映された。
【0450】
一例によって、特定位置に対応するルマブロックのイントラ予測モードがマトリクスベースのイントラ予測(Matrix based intr aprediction、以下、MIP)モードである場合、エンコーディング装置は、更新されたイントラ予測モードをイントラプラナーモードに設定できる。
【0451】
MIPモードは、アフィン線形加重イントラ予測(Affine linear weighted intra predictio、ALWIP)またはマトリクス加重イントラ予測(Matrix weighted intra prediction、MWIP)とも呼ばれる。MIPが現在ブロックに対して適用される場合、i)アベレージング(averaging)手順が実行された周辺参照サンプルを利用して、ii)メトリックスベクトルマルチプリケーション(matrix-vector-multiplication)手順を実行し、iii)必要によって、水平/垂直補間(interpolation)手順をさらに実行することで、前記現在ブロックに対する予測サンプルを導出することができる。
【0452】
または、一例によって、特定位置に対応するイントラ予測モードがイントラブロックコピー(intra block copy、IBC)モードまたはパレットモードである場合、エンコーディング装置は、更新されたイントラ予測モードをイントラDCモードに設定できる。
【0453】
IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見ることができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0454】
整理すると、中心位置に対するイントラ予測モードがMIPモード、IBCモード、及びパレットモードである場合、クロマブロックのイントラ予測モードは、イントラプラナーモードまたはイントラDCモードのような特定モードに更新されることができる。
【0455】
もちろん、中心位置のイントラ予測モードがMIPモード、IBCモード、及びパレットモードでない場合、クロマブロックとルマブロックの連関性を反映するために、クロマブロックのイントラ予測モードは、中心位置に対するルマブロックのイントラ予測モードに更新されることができる。
【0456】
エンコーディング装置は、更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定し(S1450)、レジデュアルサンプル、LFNSTマトリクスに基づいてクロマブロックに対する修正された変換係数を導出することができる(S1460)。
【0457】
エンコーディング装置は、現在ブロックに適用されるイントラ予測モードによるマッピング関係に基づいて変換セットを決定し、変換セットに含まれている二つのうちいずれか一つのLFNST行列に基づいてLFNST、即ち、非分離変換を実行することができる。
【0458】
前述したように、変換の対象になる変換ブロックのイントラ予測モードによって複数の変換セットが決定されることができる。LFNSTに適用される行列は、逆方向LFNSTに使われる行列とトランスポーズ関係にある。
【0459】
一例示において、LFNST行列は、行の個数が列の個数より少ない非正方形マトリクスである。
【0460】
エンコーディング装置は、現在クロマブロックに対する修正された変換係数に基づいて量子化を実行して量子化された変換係数を導出し、量子化された変換係数に関する情報、イントラ予測モード情報、及びLFNSTマトリクスを指示するLFNSTインデックスを含む映像情報をエンコーディングした後に出力できる(S1470)。
【0461】
より具体的に、エンコーディング装置100は、量子化された変換係数に関する情報を生成し、生成された量子化された変換係数に関する情報をエンコーディングすることができる。
【0462】
一例示において、量子化された変換係数に関する情報は、LFNSTが適用されるかどうかに対する情報、簡素化ファクターに関する情報、LFNSTを適用する最小変換サイズに対する情報、及びLFNSTを適用する最大変換サイズに対する情報のうち少なくとも一つを含むことができる。
【0463】
エンコーディング装置は、イントラモード情報として現在ブロックにCCLMが適用されるかどうかを指示するフラグ情報sps_cclm_enabled_flag及びクロマ成分に対するイントラ予測モードに対する情報intra_chroma_pred_modeをエンコーディングすることができる。
【0464】
CCLMモードに対する情報であるintra_chroma_pred_modeは、左上側ベースのCCLMモード、上側ベースのCCLMモードまたは左側ベースのCCLMモードを指示することができる。
【0465】
本文書において、量子化/逆量子化及び/又は変換/逆変換の少なくとも1つは省略され得る。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれ得る。前記変換/逆変換が省略される場合、前記変換係数は、係数又はレジデュアル係数と呼ばれることもあり、又は表現の統一性のために変換係数と依然として呼ばれることもある。
【0466】
また、本文書において、量子化された変換係数及び変換係数は、それぞれ変換係数及びスケーリングされた(scaled)変換係数と指称され得る。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、前記変換係数に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(又は前記変換係数に関する情報)に基づいて変換係数が導出でき、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出できる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいて、レジデュアルサンプルが導出できる。これは、本文書の別の部分でも同様に適用/表現できる。
【0467】
前述した実施例において、方法は、一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、本文書は、ステップの順序に限定されるわけではなく、あるステップは、前述したところと異なるステップと異なる順序で、又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、別のステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本文書の範囲に影響を与えずに削除され得ることを理解することができる。
【0468】
前述した本文書に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコード装置及び/又はデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置等の画像処理を行う装置に含まれ得る。
【0469】
本文書において、実施例がソフトウェアで具現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能等)で具現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて実行されることができる。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて実行されることができる。
【0470】
また、本文書が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、オーダーメイド型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置等に含まれ得、ビデオ信号又はデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)等を含み得る。
【0471】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に格納されることができる。本文書に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に格納されることができる。前記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取ることができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学的データ格納装置を含み得る。また、前記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取ることができる記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
【0472】
図15は、本文書が適用できるビデオ/画像コーディングシステムの例を概略的に示す。
【0473】
図15を参照すると、ビデオ/画像コーディングシステムは、ソースデバイス及び受信デバイスを含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミングの形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達することができる。
【0474】
前記ソースデバイスは、ビデオソース、エンコード装置、送信部を含むことができる。前記受信デバイスは、受信部、デコード装置、及びレンダラーを含むことができる。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれ得、前記デコード装置は、ビデオ/画像デコード装置と呼ばれ得る。送信機は、エンコード装置に含まれることができる。受信機は、デコード装置に含まれることができる。レンダラーは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0475】
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程などを介してビデオ/画像を獲得できる。ビデオソースは、ビデオ/画像のキャプチャデバイス及び/又はビデオ/画像の生成デバイスを含むことができる。ビデオ/画像のキャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像の生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成され得るし、この場合、関連データが生成される過程にビデオ/画像のキャプチャ過程が代替されることができる。
【0476】
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)の形態で出力されることができる。
【0477】
送信部は、ビットストリームの形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミングの形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコード装置に伝達することができる。
【0478】
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/画像をデコードすることができる。
【0479】
レンダラーは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
【0480】
図16は、本文書が適用されるコンテンツストリーミングシステムの構造図を例示的に示す。
【0481】
また、本文書が適用されるコンテンツストリーミングシステムは、大きくエンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0482】
前記エンコードサーバは、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略され得る。前記ビットストリームは、本文書が適用されるエンコード方法又はビットストリームの生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で、一時的に前記ビットストリームを格納することができる。
【0483】
前記ストリーミングサーバは、ウェブサーバを介したユーザの要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。そのとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0484】
前記ストリーミングサーバは、メディアストレージ及び/又はエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信することになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間格納することができる。
【0485】
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがあり得る。前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0486】
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として具現されることができる。
【手続補正書】
【提出日】2023-12-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
ビットストリームからイントラ予測モード情報及びLFNST(Low-Frequency Non-Separable Transform)インデックスを取得するステップと、
前記イントラ予測モード情報に基づいてクロマブロックのイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、
前記イントラ予測モードに基づいて前記クロマブロックに対する予測サンプルを導出するステップと、
前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、
前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNSTセットを決定するステップと、
前記LFNSTインデックス及び前記LFNSTセットから導出されたLFNSTマトリクスに基づいて前記クロマブロックに対する変換係数を導出するステップと、
前記変換係数に基づいて前記クロマブロックに対するレジデュアルサンプルを導出するステップと、
前記クロマブロックに対する前記予測サンプルと前記レジデュアルサンプルに基づいて復元ピクチャを生成するステップとを含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定され、
前記カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、映像デコーディング方法。
【請求項2】
前記特定位置は、前記ルマブロックの中心位置である、請求項1に記載の映像デコーディング方法。
【請求項3】
前記カラーフォーマットは、4:2:0であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH))に設定される、請求項1に記載の映像デコーディング方法。
【請求項4】
前記ルマブロックは、MIP(Matrix-based Intra Prediction)モード、IBC(Intra Block Copy)モード、又はPLT(Palette)モードに基づいてコーディングされない、請求項1に記載の映像デコーディング方法。
【請求項5】
映像エンコーディング装置により実行される映像エンコーディング方法において、
クロマブロックに対するイントラ予測モードをCCLM(cross-component linear model)モードとして導出するステップと、
前記CCLMモードに基づいて前記クロマブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記クロマブロックに対するレジデュアルサンプルを導出するステップと、
前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新するステップと、
前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNST(Low-Frequency Non-Separable Transform)セットを決定するステップと、
前記クロマブロックに対する修正された変換係数を導出するステップと、
前記クロマブロックに対する前記イントラ予測モードに関連したイントラ予測モード情報と前記クロマブロックに対する前記修正された変換係数に関連したレジデュアル情報を含むビットストリームを生成するステップと、を含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定され、
前記カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、映像エンコーディング方法。
【請求項6】
前記特定位置は、前記ルマブロックの中心位置である、請求項5に記載の映像エンコーディング方法。
【請求項7】
前記カラーフォーマットは、4:2:0であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH))に設定される、請求項5に記載の映像エンコーディング方法。
【請求項8】
請求項5に記載される映像エンコーディング方法により生成されたビットストリームを保存する非一時的コンピュータ可読デジタル記憶媒体。
【請求項9】
前記ルマブロックは、MIP(Matrix-based Intra Prediction)モード、IBC(Intra Block Copy)モード、又はPLT(Palette)モードに基づいてコーディングされない、請求項5に記載の映像エンコーディング方法。
【請求項10】
映像に対するデータの送信方法であって、
前記映像に対するビットストリームを取得するステップであって、前記ビットストリームは、クロマブロックに対するイントラ予測モードをCCLM(cross-component linear model)モードとして導出し、前記CCLMモードに基づいて前記クロマブロックに対する予測サンプルを導出し、前記予測サンプルに基づいて前記クロマブロックに対するレジデュアルサンプルを導出し、前記クロマブロックの前記イントラ予測モードを前記クロマブロックに対応するルマブロックのイントラ予測モードに基づいて更新し、前記更新されたイントラ予測モードに基づいてLFNSTマトリクスを含むLFNST(Low-Frequency Non-Separable Transform)セットを決定し、前記クロマブロックに対する修正変換係数を導出し、前記ビットストリームを生成するために、前記クロマブロックに対する前記イントラ予測モードに関連したイントラ予測モード情報と前記修正変換係数に関連したレジデュアル情報を符号化することに基づいて生成される、ステップと、
前記ビットストリームを含むデータを送信するステップとを含み、
前記更新されたイントラ予測モードは、前記ルマブロック内の特定位置に対応するイントラ予測モードとして導出され、
前記特定位置は、前記クロマブロックのカラーフォーマットに基づいて設定され、
前記カラーフォーマットは、4:2:2であり、
前記特定位置は、((xTbY+nTbW)、(yTbY+nTbH/2))に設定され、
xTbYとyTbYは、前記ルマブロックの左上端軸座標を示し、
nTbWとnTbHは、前記クロマブロックの幅及び高さを示す、送信方法。