(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-20
(54)【発明の名称】映像コーディング方法及びその装置
(51)【国際特許分類】
H04N 19/112 20140101AFI20240213BHJP
H04N 19/157 20140101ALI20240213BHJP
H04N 19/176 20140101ALI20240213BHJP
H04N 19/625 20140101ALI20240213BHJP
【FI】
H04N19/112
H04N19/157
H04N19/176
H04N19/625
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023551749
(86)(22)【出願日】2022-02-21
(85)【翻訳文提出日】2023-09-20
(86)【国際出願番号】 KR2022002524
(87)【国際公開番号】W WO2022182083
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】ク ムンモ
(72)【発明者】
【氏名】イム チェヒョン
(72)【発明者】
【氏名】キム ソンファン
(72)【発明者】
【氏名】チャオ チエ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC01
5C159MC23
5C159TA35
5C159TB08
5C159TC26
5C159UA02
5C159UA05
(57)【要約】
本文書による映像デコーディング方法は、変換係数に対して逆2次変換に基づいて修正された変換係数を導出するステップ;及び、前記修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップ;を含み、前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の出力領域にL個(48<L≦96)の修正された変換係数が配列される。
【選択図】
図17
【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
ビットストリームから対象ブロックに対するレジデュアル情報を受信するステップ;
前記レジデュアル情報に基づいて前記対象ブロックに対する変換係数を導出するステップ;
前記変換係数に対して逆2次変換に基づいて修正された変換係数を導出するステップ;
前記修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップ;及び、
前記対象ブロックに対するレジデュアルサンプルに基づいて復元ピクチャを生成するステップ;を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の出力領域にL個(48<L≦96)の修正された変換係数が配列されることを特徴とする映像デコーディング方法。
【請求項2】
前記修正された変換係数を導出するステップは、
順方向対角スキャニング順序によって前記変換係数を整列して入力アレイを導出するステップ;
前記入力アレイと変換カーネルのマトリックス演算を介して前記変換係数より多い個数の前記修正された変換係数を導出するステップ;及び、
前記修正された変換係数を前記出力領域に配列するステップ;を含み、
前記修正された変換係数は、前記対象ブロックのイントラ予測モードによって行優先方向または列優先方向のうちいずれか一つの順序に基づいて前記出力領域に配列されることを特徴とする請求項1に記載の映像デコーディング方法。
【請求項3】
前記出力領域は、前記対象ブロックの前記DC位置からスキャニング順序によって配列されることができる複数の4×4サブブロックで構成されることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項4】
前記出力領域は、前記対象ブロックの前記DC位置から所定の順序によって配列されることができる複数のp×qサブブロックで構成されることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項5】
前記出力領域は、前記対象ブロックの左上端m×nブロック(m≦M、n≦N)であることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項6】
前記出力領域は、前記対象ブロックの前記DC位置から同じ距離に離隔されているラインで構成された扇形領域を含むことを特徴とする請求項2に記載の映像デコーディング方法。
【請求項7】
前記入力アレイは、R個の変換係数を含み、
前記Rは、Lより小さい16の倍数であることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項8】
前記入力アレイは、前記対象ブロックの前記DC位置から前記順方向対角スキャニング順序に配列されることができる4×4サブブロック単位で整列され、前記4×4サブブロック内の前記順方向対角スキャニング順序によって整列されることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項9】
前記修正された変換係数を導出するステップは、前記2次変換に適用される前記変換カーネルを導出するステップを含み、
前記変換カーネルは、前記対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出され、
前記変換セットは、前記イントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成され、
前記対象ブロックの大きさに基づいて前記逆2次変換の大きさが設定され、
前記逆2次変換の大きさに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることを特徴とする請求項2に記載の映像デコーディング方法。
【請求項10】
前記対象ブロックの横及び縦の長さが両方とも4より大きいまたは同じであり、横または縦の長さが4であることに基づいて、前記逆2次変換の大きさは、第1の値に設定され、
前記対象ブロックの横及び縦の長さが両方とも8より大きいまたは同じであり、横または縦の長さが8であることに基づいて、前記逆2次変換の大きさは、第2の値に設定され、
前記対象ブロックの横及び縦の長さが両方とも16より大きいまたは同じであることに基づいて、前記逆2次変換の大きさは、第3の値に設定されることを特徴とする請求項9に記載の映像デコーディング方法。
【請求項11】
前記逆2次変換の大きさが前記第1の値であることに基づいて、前記変換カーネルの次元は16×16に設定され、
前記逆2次変換の大きさが前記第2の値であることに基づいて、前記変換カーネルの次元は48×Rまたは64×Sに設定され、Rは16、32、48のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、
前記逆2次変換の大きさが前記第3の値であることに基づいて、前記変換カーネルの次元は96×R、64×Sまたは48×Tのうちいずれか一つに設定され、Rは16、32、48、64、80、96のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、Tは16、32、48のうちいずれか一つであることを特徴とする請求項10に記載の映像デコーディング方法。
【請求項12】
前記逆1次変換にDST-7、DCT-8またはKLT(Karhunen Loeve Transform)のうちいずれか一つが適用されることを特徴とする請求項1に記載の映像デコーディング方法。
【請求項13】
前記修正された変換係数を導出するステップは、前記2次変換に適用される変換カーネルを導出するステップを含み、
前記変換カーネルは、前記対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出され、
前記変換セットは、前記イントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成され、
前記対象ブロックの大きさに基づいて前記逆2次変換の大きさが設定され、
前記逆2次変換の大きさ及び前記逆1次変換に適用される変換カーネルに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることを特徴とする請求項12に記載の映像デコーディング方法。
【請求項14】
前記逆1次変換は、水平方向変換及び垂直方向変換を含み、
前記水平方向変換または前記垂直方向変換に変換スキップが適用されることを特徴とする請求項1に記載の映像デコーディング方法。
【請求項15】
インター予測に基づいて前記対象ブロックに対する予測サンプルを導出するステップをさらに含むことを特徴とする請求項1に記載の映像デコーディング方法。
【請求項16】
前記逆2次変換に適用される変換インデックスに対する情報を受信するステップをさらに含み、
前記変換インデックスは、前記対象ブロックの特定領域に変換係数が存在する場合は受信され、
前記特定領域は、前記逆2次変換の大きさに基づいて設定されることを特徴とする請求項9に記載の映像デコーディング方法。
【請求項17】
前記対象ブロックのツリータイプがシングルツリーであることに基づいて、前記対象ブロックのルマ成分及びクロマ成分に前記逆2次変換が実行されることを特徴とする請求項1に記載の映像デコーディング方法。
【請求項18】
映像エンコーディング装置により実行される映像エンコーディング方法において、
対象ブロックに対する予測サンプルを導出するステップ;
前記予測サンプルに基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップ;
前記レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出するステップ;
前記変換係数に対して2次変換に基づいて修正された変換係数を導出するステップ;及び、
前記修正された変換係数に基づいて導出されたレジデュアル情報を含む映像情報をエンコーディングするステップ;を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の入力領域に配列されているL個(48<L≦96)の変換係数に対する前記2次変換が実行されることを特徴とする映像エンコーディング方法。
【請求項19】
コンピュータで読み取り可能なデジタル格納媒体であって、前記デジタル格納媒体には所定方法によって生成されたビットストリームが格納され、前記方法は、
対象ブロックに対する予測サンプルを導出するステップ;
前記予測サンプルに基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップ;
前記レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出するステップ;
前記変換係数に対して2次変換に基づいて修正された変換係数を導出するステップ;及び、
前記ビットストリームを生成するために前記修正された変換係数に基づいて導出されたレジデュアル情報を含む映像情報をエンコーディングするステップ;を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の入力領域に配列されているL個(48<L≦96)の変換係数に対する前記2次変換が実行されることを特徴とするデジタル格納媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は、映像コーディング技術に関し、より詳しくは、映像コーディングシステムにおいて、イントラ予測に基づく映像コーディング方法及びその装置に関する。
【背景技術】
【0002】
近年、4Kまたは8K以上のUHD(Ultra High Definition)画像/ビデオのような高解像度、高品質の画像/ビデオに対する需要が様々な分野で増加している。画像/ビデオデータが高解像度、高品質になるほど、既存の画像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するので、既存の有無線広帯域回線のような媒体を利用して画像データを送信するか、既存の格納媒体を利用して画像/ビデオデータを格納する場合、送信費用と格納費用が増加する。
【0003】
また、近年、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム画像のように、現実画像と異なる画像特性を有する画像/ビデオに対する放送が増加している。
【0004】
これにより、前記のような様々な特性を有する高解像度高品質の画像/ビデオの情報を効果的に圧縮して送信するか格納し、再生するために高効率の画像/ビデオ圧縮技術が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本文書の技術的課題は画像符号化効率を高める方法及び装置を提供することである。
【0006】
本文書の他の技術的課題は、多様な条件でLFNSTが適用された映像コーディング方法及び装置を提供することである。
【0007】
本文書の他の技術的課題は、多様な方法で1次変換と組み合わせられたLFNSTが適用された映像コーディング方法及び装置を提供することである。
【0008】
本文書の他の技術的課題は、符号化性能を向上させ、複雑度を最小化することができるLFNSTを適用した映像コーディング方法及び装置を提供することである。
【課題を解決するための手段】
【0009】
本文書の一実施例によると、デコーディング装置により実行される映像デコーディング方法を提供する。前記方法は、レジデュアル情報に基づいて前記対象ブロックに対する変換係数を導出するステップ、前記変換係数に対して逆2次変換に基づいて修正された変換係数を導出するステップ、前記修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップ、及び、前記対象ブロックに対するレジデュアルサンプルに基づいて復元ピクチャを生成するステップを含み、前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の出力領域にL個(48<L≦96)の修正された変換係数が配列される。
【0010】
前記修正された変換係数を導出するステップは、順方向対角スキャニング順序によって前記変換係数を整列して入力アレイを導出するステップ、前記入力アレイと変換カーネルのマトリックス演算を介して前記変換係数より多い個数の前記修正された変換係数を導出するステップ、及び、前記修正された変換係数を前記出力領域に配列するステップを含み、前記修正された変換係数は、前記対象ブロックのイントラ予測モードによって行優先方向または列優先方向のうちいずれか一つの順序に基づいて前記出力領域に配列される。
【0011】
前記出力領域は、前記対象ブロックの前記DC位置からスキャニング順序によって配列されることができる複数の4×4サブブロックで構成される。
【0012】
前記出力領域は、前記対象ブロックの前記DC位置から所定の順序によって配列されることができる複数のp×qサブブロックで構成される。
【0013】
前記出力領域は、前記対象ブロックの左上端m×nブロック(m≦M、n≦N)である。
【0014】
前記出力領域は、前記対象ブロックの前記DC位置から同じ距離に離隔されているラインで構成された扇形領域を含む。
【0015】
前記入力アレイは、R個の変換係数を含み、前記Rは、Lより小さい16の倍数である。
【0016】
前記入力アレイは、前記対象ブロックの前記DC位置から前記順方向対角スキャニング順序に配列されることができる4×4サブブロック単位で整列され、前記4×4サブブロック内の前記順方向対角スキャニング順序によって整列される。
【0017】
前記修正された変換係数を導出するステップは、前記2次変換に適用される前記変換カーネルを導出するステップを含み、前記変換カーネルは、前記対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出され、前記変換セットは、前記イントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成され、前記対象ブロックの大きさに基づいて前記逆2次変換の大きさが設定され、前記逆2次変換の大きさに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出される。
【0018】
前記対象ブロックの横及び縦の長さが両方とも4より大きいまたは同じであり、横または縦の長さが4であることに基づいて、前記逆2次変換の大きさは、第1の値に設定され、前記対象ブロックの横及び縦の長さが両方とも8より大きいまたは同じであり、横または縦の長さが8であることに基づいて、前記逆2次変換の大きさは、第2の値に設定され、前記対象ブロックの横及び縦の長さが両方とも16より大きいまたは同じであることに基づいて、前記逆2次変換の大きさは、第3の値に設定される。
【0019】
前記逆2次変換の大きさが前記第1の値であることに基づいて、前記変換カーネルの次元は16×16に設定され、前記逆2次変換の大きさが前記第2の値であることに基づいて、前記変換カーネルの次元は48×Rまたは64×Sに設定され、Rは16、32、48のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、前記逆2次変換の大きさが前記第3の値であることに基づいて、前記変換カーネルの次元は96×R、64×Sまたは48×Tのうちいずれか一つに設定され、Rは16、32、48、64、80、96のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、Tは16、32、48のうちいずれか一つである。
【0020】
前記逆1次変換にDST-7、DCT-8またはKLT(Karhunen Loeve Transform)のうちいずれか一つが適用される。
【0021】
前記逆2次変換の大きさ及び前記逆1次変換に適用される変換カーネルに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出される。
【0022】
前記逆1次変換は、水平方向変換及び垂直方向変換を含み、前記水平方向変換または前記垂直方向変換に変換スキップが適用される。
【0023】
インター予測に基づいて前記対象ブロックに対する予測サンプルを導出するステップをさらに含み、インター予測が適用された対象ブロックにもLFNSTが適用される。
【0024】
前記逆2次変換に適用される変換インデックスに対する情報を受信するステップをさらに含み、前記変換インデックスは、前記対象ブロックの特定領域に変換係数が存在する場合は受信され、前記特定領域は、前記逆2次変換の大きさに基づいて設定される。
【0025】
前記対象ブロックのツリータイプがシングルツリーであることに基づいて、前記対象ブロックのルマ成分及びクロマ成分に前記逆2次変換が実行される。
【0026】
本文書の一実施例によると、エンコーディング装置により実行される映像エンコーディング方法を提供する。前記方法は、レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出するステップ、前記変換係数に対して2次変換に基づいて修正された変換係数を導出するステップ、及び、前記ビットストリームを生成するために前記修正された変換係数に基づいて導出されたレジデュアル情報を含む映像情報をエンコーディングするステップを含み、前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の入力領域に配列されているL個(48<L≦96)の変換係数に対する前記2次変換が実行される。
【0027】
本文書の他の一実施例によると、エンコーディング装置により実行された映像エンコーディング方法によって生成されたエンコーディングされた映像情報及び/又はビットストリームが含まれている映像データが格納されたデジタル格納媒体及びこのような映像情報及び/又はビットストリームの送信方法が提供される。
【0028】
本文書の他の一実施例によると、デコーディング装置により前記映像デコーディング方法を実行するようにするエンコーディングされた映像情報及び/又はビットストリームが含まれている映像データが格納されたデジタル格納媒体及びこのような映像情報及び/又はビットストリームの送信方法が提供される。
【発明の効果】
【0029】
本文書によると、全般的な映像/ビデオ圧縮効率を高めることができる。
【0030】
本文書によると、多様な条件でLFNSTが適用された映像コーディング方法及び装置が提供されることができる。
【0031】
本文書によると、多様な方法で1次変換と組み合わせられたLFNSTが提供されることができる。
【0032】
本文書によると、符号化性能を向上させ、複雑度を最小化することができるLFNSTを適用した映像コーディング方法及び装置が提供されることができる。
【0033】
本明細書の具体的な一例を介して得られる効果は、以上で羅列された効果に制限されない。例えば、関連する技術分野における通常の知識を有する者(a person having ordinary skill in the related art)が、本明細書から理解または誘導できる様々な技術的効果が存在し得る。これによって、本明細書の具体的な効果は、本明細書に明示的に記載されているものに制限されず、本明細書の技術的特徴から理解または誘導できる様々な効果を含み得る。
【図面の簡単な説明】
【0034】
【
図1】本文書が適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
【
図2】本文書が適用されることができるビデオ/画像エンコーディング装置の構成を概略的に説明する図である。
【
図3】本文書が適用されることができるビデオ/画像デコーディング装置の構成を概略的に説明する図である。
【
図4】本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【
図5】65個予測方向のイントラ方向性モードを例示的に示す。
【
図6】本文書の一実施例に係る変換技法を概略的に示す。
【
図7】本文書の一実施例に係るRSTを説明するための図である。
【
図8】本文書の一実施例に係る順方向LFNST入力領域を示す図である。
【
図9a】本文書の一実施例に係る入力データの入力順序を示す図である。
【
図9b】本文書の一実施例に係る入力データの入力順序を示す図である。
【
図10a】本文書の他の実施例に係る入力データの入力順序を示す図である。
【
図10b】本文書の他の実施例に係る入力データの入力順序を示す図である。
【
図11】本文書の一実施例に係る非正方形のROIを示す図である。
【
図12】本文書の他の実施例に係る不規則形状のROIを示す図である。
【
図13】本文書の一実施例に係る不規則形状を有する64サンプルROIを示す図である。
【
図14】本文書の一実施例に係る不規則形状を有する96サンプルROIを示す図である。
【
図15】本文書の一実施例に係るスーパーセットROIとサブセットROIを示す図である。
【
図16】本文書の一実施例に係る変換係数のスキャン順序を示す図である。
【
図17】本文書の一実施例に係るビデオデコーディング装置の動作を示す流れ図である。
【
図18】本文書の一実施例に係るビデオエンコーディング装置の動作を示す流れ図である。
【発明を実施するための形態】
【0035】
本文書は、多様な変更を加えることができ、様々な実施形態を有することができ、特定実施形態を図面に例示して詳細に説明しようとする。しかし、これは本文書を特定実施形態に限定しようとするものではない。本明細書で使用する用語は、単に特定の実施形態を説明するために使われたものであって、本文書の技術的思想を限定しようとする意図で使われるものではない。単数の表現は、コンテキスト上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたもの等の存在または付加可能性をあらかじめ排除しないと理解されなければならない。
【0036】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/または分離された実施形態も、本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0037】
以下、添付図面を参照して、本文書の好ましい実施形態をより詳細に説明する。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
【0038】
この文書は、ビデオ/画像コーディングに関する。例えば、この文書に開示された方法/実施形態は、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標準等)と関連付けられている。
【0039】
この文書ではビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は、互いに組み合わせられて実行されることもできる。この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。
【0040】
本明細書において、一つの図面内で個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
【0041】
図1は、本文書が適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
【0042】
図1を参照すると、ビデオ/画像コーディングシステムは、ソースデバイス及び受信デバイスを含むことができる。ソースデバイスは、エンコーディングされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
【0043】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/画像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/画像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0044】
ビデオソースは、ビデオ/画像のキャプチャ、合成または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、関連データが生成される過程にビデオ/画像キャプチャ過程が代替されることができる。
【0045】
エンコーディング装置は、入力ビデオ/画像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0046】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0047】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコーディングすることができる。
【0048】
レンダラは、デコーディングされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
【0049】
図2は、本文書が適用されることができるビデオ/画像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置とは、画像エンコーディング装置を含むことができる。
【0050】
図2を参照すると、エンコーディング装置200は、画像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコーディング部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を含んで構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を含むことができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を含むことができる。レジデュアル処理部230は、減算部(subtractor)231をさらに含むことができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。前述した画像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250、及びフィルタリング部260は、実施形態によって一つ以上のハードウェアコンポーネント(例えば、エンコーディングチップセットまたはプロセッサ)により構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
【0051】
画像分割部210は、エンコーディング装置200に入力された入力画像(または、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割できる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、各々、前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であり、前記変換ユニットは、変換係数を誘導する単位及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位である。
【0052】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使われることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的に、ピクセルまたはピクセルの値を示すことができる。
【0053】
減算部231は、入力映像信号(原本ブロック、原本サンプルまたは原本サンプルアレイ)で予測部220から出力された予測信号(予測されたブロック、予測サンプルまたは予測サンプルアレイ)を減算してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルまたはレジデュアルサンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部232に送信される。
【0054】
予測部220は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部220は、現在ブロックまたはCU単位でイントラ予測が適用されるかまたはインター予測が適用されるかを決定することができる。予測部は、予測モード情報など、予測に関する多様な情報を生成してエントロピーエンコーディング部240に伝達できる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0055】
イントラ予測部222は、現在ピクチャ内のサンプル(参照サンプル)を参照して現在ブロックを予測することができる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0056】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。
【0057】
インター予測部221及び/またはイントラ予測部222を介して生成された予測信号は、復元信号を生成するために利用され、またはレジデュアル信号を生成するために利用されることができる。
【0058】
変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、Karhunen Loeve Transform(KLT)またはCNT(Conditionally Non-linear Transform)などを含むことができる。変換部232は、1次変換及び/又は2次変換を実行することができる。
【0059】
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に送信し、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームで出力できる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scanning order)に基づいて、ブロック形態の量子化された変換係数を1次元ベクトル形態で再整列でき、前記1次元ベクトル形態の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
【0060】
エントロピーエンコーディング部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような多様なエンコーディング方法を実行することができる。エントロピーエンコーディング部240は、量子化された変換係数外にビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別途にエンコーディングすることもできる。エントロピーエンコーディング部240から出力された信号は、送信する送信部(図示せず)及び/または格納する格納部(図示せず)がエンコーディング装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピーエンコーディング部240に含まれることもできる。
【0061】
量子化部233から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。
【0062】
加算部250は、復元されたレジデュアル信号を予測部220から出力された予測信号に加算することによって復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルまたは復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使われることもできる。
【0063】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0064】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使われることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置200とデコーディング装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0065】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。 メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達できる。
【0066】
図3は、本文書が適用されることができるビデオ/画像デコーディング装置の構成を概略的に説明する図である。
【0067】
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を含んで構成されることができる。予測部330は、インター予測部332及びイントラ予測部331を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)322を含むことができる。前述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって一つのハードウェアコンポーネント(例えば、デコーディングチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
【0068】
ビデオ/映像情報を含むビットストリームが入力されると、デコーディング装置300は、
図2のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。デコーディングの処理ユニットは、例えば、コーディングユニット、予測ユニットまたは変換ユニットである。コーディングユニットから一つ以上の変換ユニットが導出されることができる。
【0069】
デコーディング装置300は、
図2のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。本文書で後述されるシグナリング/受信される情報及び/またはシンタックス要素は、前記デコーディング手順を介してデコーディングされて前記ビットストリームから取得されることができる。
【0070】
逆量子化部321では量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列できる。この場合、前記再整列は、エンコーディング装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0071】
逆変換部322では変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。逆変換部322は、逆1次変換及び/又は逆2次変換を実行することができる
【0072】
予測部330は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。
【0073】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照となるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置でき、または離隔して位置することもできる。イントラ予測における予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部332は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0074】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部331は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0075】
加算部340は、取得されたレジデュアル信号を予測部330から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加算することによって復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するようにフィルタリングを経て出力されることもでき、または次のピクチャのインター予測のために使われることもできる。
【0076】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0077】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部331で参照ピクチャとして使われることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。
【0078】
本明細書において、デコーディング装置300の予測部330、逆量子化部321、逆変換部322、及びフィルタリング部350などで説明された実施例は、各々、エンコーディング装置200の予測部220、逆量子化部234、逆変換部235、及びフィルタリング部260などにも同一または対応されるように適用されることができる。
【0079】
図4は、本文書が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
【0080】
また、本文書が適用されるコンテンツストリーミングシステムは、大きくエンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、及びマルチメディア入力装置を含むことができる。
【0081】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略され得る。前記ビットストリームは、本文書が適用されるエンコーディング方法又はビットストリームの生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で、一時的に前記ビットストリームを格納することができる。
【0082】
前記ストリーミングサーバは、ウェブサーバを介したユーザの要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。そのとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0083】
前記ストリーミングサーバは、メディアストレージ及び/又はエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信することになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間格納することができる。
【0084】
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがあり得る。前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0085】
一方、イントラ予測モードは、非方向性(non-directional、または非角度性(non-angular))イントラ予測モードと、方向性(directional、または角度性(angular))イントラ予測モードと、を含むことができる。
【0086】
図5は、本文書の実施例が適用可能なイントラ予測モードの一例を示す。
【0087】
図5を参照すると、左上向対角予測方向を有する34番イントラ予測モードを中心に、水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードとを区分することができる。
図5のように、2番乃至33番イントラ予測モードは水平方向性を有し、34番乃至66番イントラ予測モードは垂直方向性を有する。18番イントラ予測モードと50番イントラ予測モードは、各々、水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番イントラ予測モードは左下向対角イントラ予測モード、34番イントラ予測モードは左上向対角イントラ予測モード、66番イントラ予測モードは右上向対角イントラ予測モードと呼ばれることができる。非方向性予測モードには0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができる。
【0088】
【0089】
図6を参照すると、変換部は、前述した
図2のエンコーディング装置内の変換部に対応し得、逆変換部は、前述した
図2のエンコーディング装置内の逆変換部又は
図3のデコーディング装置内の逆変換部に対応し得る。
【0090】
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて1次変換を行って、(1次)変換係数を導出することができる(S610)。このような1次変換(primary transform)は、核心変換(core transform)と指称され得る。ここで、前記1次変換は、多重変換選択(Multiple Transform Selection、MTS)に基づき得、1次変換として多重変換が適用される場合、多重核心変換と指称され得る。
【0091】
多重核心変換は、DCT(Discrete Cosine Transform)タイプ2、DST(Discrete Sine Transform)タイプ7、DCTタイプ8、及び/又はDSTタイプ1をさらに使用して変換する方式を示すことができる。すなわち、前記多重核心変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8、及び前記DSTタイプ1のうち選択された複数の変換カーネルに基づいて、空間ドメインのレジデュアル信号(又はレジデュアルブロック)を周波数ドメインの変換係数(又は1次変換係数)に変換する変換方法を示すことができる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1等は、変換タイプ、変換カーネル(kernel)または変換コア(core)と呼ばれることができる。このようなDCT/DST変換タイプは、基底関数に基づいて定義されることができる。
【0092】
前記多重核心変換が実行される場合、前記変換カーネルの中から対象ブロックに対する垂直変換カーネル及び水平変換カーネルが選択されることができ、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が実行されることができる。ここで、前記水平変換は、前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は、前記対象ブロックの垂直成分に対する変換を示すことができる。
【0093】
一例によると、MTSを適用して1次変換を実行する場合、特定の基底関数を所定の値に設定し、垂直変換又は水平変換であるとき、どの基底関数が適用されるか否かを組み合わせて、変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向の変換カーネルをtrTypeHorで示し、垂直方向の変換カーネルをtrTypeVerで示す場合、trTypeHor又はtrTypeVerの値0はDCT2に設定され、trTypeHor又はtrTypeVerの値1はDST7に設定され、trTypeHor又はtrTypeVerの値2はDCT8に設定されることができる。
【0094】
この場合、多数の変換カーネルセットのいずれかを指示するために、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であることを指示することができる。
【0095】
一例によって、MTSのインデックス情報による変換カーネルセットを表で示すと、次の通りである。
【0096】
【0097】
変換部は、前記(1次)変換係数に基づいて2次変換を行って修正された(2次)変換係数を導出する(S620)。前記1次変換は空間ドメインから周波数ドメインへの変換であり、前記2次変換は(1次)変換係数間に存在する相関関係(correlation)を利用してより圧縮的な表現に変換することを意味する。前記2次変換は非分離変換(non-separable transform)を含む。この場合、前記2次変換は非分離2次変換(non-separable secondary transform、NSST)又はMDNSST(mode-dependent non-separable secondary transform)と呼ばれてもよい。
【0098】
前記非分離2次変換は、前記1次変換を介して導出された(1次)変換係数を非分離変換マトリックス(non-separable transform matrix)に基づいて2次変換してレジデュアル信号に対する修正された変換係数(または、2次変換係数)を生成する変換を示すことができる。ここで、前記非分離変換マトリックスに基づいて前記(1次)変換係数に対して垂直変換及び水平変換を分離して(または、水平垂直変換を独立的に)適用せずに、一度に変換を適用することができる。例えば、非分離2次変換は、2次元信号(変換係数)を特定決められた方向(例えば、行優先(row-first)方向または列優先(column-first)方向)を介して1次元信号に再整列した後、このような1次元ベクトルと前記非分離変換マトリックスとのマトリックス演算に基づいて修正された変換係数(または、2次変換係数)を導出することができる。
【0099】
例えば、行優先順序は、M×Nブロックに対して1番目の行、2番目の行、...、N番目の行の順序に一列に配置することであり、列優先順序は、M×Nブロックに対して1番目の列、2番目の列、...、M番目の列の順序に一列に配置することである。すなわち、非分離2次変換のために(1次変換を介して導出された)変換係数は、行優先方向によって1次元ベクトルに整列された後、マトリックス演算が実行されることもでき、列優先方向によって1次元ベクトルに整列された後、マトリックス演算が実行されることもできる。
【0100】
前記非分離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)領域に対して適用されることもできる。整理すれば、変換ブロックの大きさによって、変換ブロックの左上端4×4領域または8×8領域に非分離2次変換が適用されることができる。一例によって、左上端4×4領域に対する変換を4×4変換、左上端8×8領域に対する変換を8×8変換と命名できる。
【0101】
このとき、変換カーネル選択のために、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変換カーネルが含まれることができる。
【0102】
但し、前記変換のサイズ、すなわち、変換が適用される領域のサイズは例示として8×8又は4×4以外のサイズが使用され得、前記セットの数はn個、各セット内の変換カーネルの数はk個であり得る。
【0103】
前記変換セットは、NSSTセット又はLFNSTセットと呼ばれ得る。前記変換セットのうちの特定セットの選択は、例えば、現在ブロック(CU又はサブブロック)のイントラ予測モードに基づいて実行されることができる。LFNST(Low-Frequency Non-Separable Transform)は、後述される減少した非分離変換の一例であり得、低周波成分に対する非分離変換を示す。
【0104】
一例によって、イントラ予測モードによって、4個の変換セットのマッピング(mapping)は、例えば、次の表のように示され得る。
【0105】
【0106】
表2のように、イントラ予測モードによって4個の変換セットのいずれか、すなわち、lfnstTrSetIdxが0から3、すなわち、4個のいずれかにマッピングされることができる
【0107】
一方、非分離変換に特定セットが使用されるものと決定されると、非分離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個の変換カーネルを指すことができる。
【0108】
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行し、修正された(2次)変換係数を獲得することができる。前記修正された変換係数は、前述したように量子化部を介して量子化された変換係数で導出されることができ、エンコーディングされて、デコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0109】
一方、前述したように2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように量子化部を介して量子化された変換係数で導出されることができ、エンコーディングされて、デコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0110】
逆変換部は、前述した変換部で実行された手順の逆順で一連の手順を実行することができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S630)、前記(1次)変換係数に対して1次(逆)変換を実行し、レジデュアルブロック(レジデュアルサンプル)を獲得することができる(S640)。ここで、前記1次変換係数は、逆変換部の立場で、修正された(modified)変換係数と呼ばれ得る。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックとに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成できることは前述した通りである。
【0111】
逆変換部は、特定順序、例えば、対角スキャン順序によって(具体的に、変換ブロックの左上端を始めとして右下端方向に進行する対角スキャン順序)整列された(逆量子化された)変換係数に変換カーネルマトリックスを適用して修正された変換係数を導出することができる。修正された変換係数は、変換部で2次変換のために変換係数が読まれた方向、すなわち、行優先方向または列優先方向によって変換ブロックの左上端領域に2次元に配列されることができる。変換部で4×4変換が実行された場合、逆変換部は、変換ブロックの4×4領域に修正された変換係数を2次元に整列でき、変換部で8×8変換が実行された場合、逆変換部は、変換ブロックの8×8領域に修正された変換係数を2次元に整列できる。
【0112】
一方、2次逆変換は、NSST、RST(reduced secondary transform)またはLFNSTであり、ビットストリームからパーシングした2次変換フラグに基づいて2次逆変換の適用可否が決定されることができる。他の一例として、2次逆変換適用可否は、レジデュアルブロックの変換係数に基づいて決定されることもできる。
【0113】
このような2次逆変換(すなわち、変換カーネル、変換マトリックスまたは変換カーネルマトリックス)は、イントラ予測モードによって指定されたLFNST(NSSTまたはRST)変換セットに基づいて決定されることができる。また、一実施例として、1次変換決定方法に依存的に(dependon)2次変換決定方法が決定されることができる。イントラ予測モードによって、1次変換と2次変換の多様な組み合わせが決定されることができる。また、一例として、現在ブロックの大きさに基づいて2次逆変換が適用される領域が決定されることもできる。
【0114】
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信し、前記1次(分離)逆変換を実行してレジデュアルブロック(レジデュアルサンプル)を獲得することができる。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成できることは前述した通りである。
【0115】
一方、本文書では非分離2次変換に伴われる計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリックス(カーネル)の大きさが減少されたRST(reduced secondary transform)を適用することができる。また、RSTは、主に変換ブロックで0でない係数を含む低周波領域で行われるため、LFNST(Low-Frequency Non-Separable Transform)と指称されることもできる。前記変換インデックスは、LFNSTインデックスと命名されることができる。
【0116】
本明細書において、LFNSTは、大きさが減少された変換マトリックス(transform matrix)に基づいて対象ブロックに対するレジデュアルサンプルに対して実行される変換を意味することができる。簡素化変換を実行する場合、変換マトリックスの大きさ減少によって変換時に要求される演算量が減少されることができる。すなわち、LFNSTは、大きさが大きいブロックの変換または非分離変換時に発生する演算複雑度(complexity)問題を解消するために利用されることができる。
【0117】
一方、2次逆変換がLFNSTに基づいて行われる場合、エンコーディング装置200の逆変換部235とデコーディング装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書において、変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出することを意味することができる。
【0118】
図7は、本文書の一実施例に係るRSTまたはRSTが適用されたLFNSTを説明するための図である。
【0119】
本明細書において、「対象ブロック」は、コーディングが実行される現在ブロックまたはレジデュアルブロックまたは変換ブロックを意味することができる。
【0120】
一実施例に係る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値を意味することもできる。
【0121】
一実施形態にかかる簡素化変換マトリックスのサイズは、通常の変換マトリックスのサイズN×Nよりも小さいR×Nであり、下記の数式1のように定義されることができる。
【0122】
【0123】
図7の(a)に示すReduced Transformブロック内のマトリックスTは、数式1のマトリックスT
R×Nを意味することができる。
図7の(a)のように、対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリックスT
R×Nが掛けられる場合、対象ブロックに対する変換係数が導出できる。
【0124】
一実施形態において、変換が適用されるブロックのサイズが8×8であり、R=16(すなわち、R/N=16/64=1/4である)である場合、
図7の(a)によるRSTは、下記の数式2のような行列演算で表現され得る。この場合、メモリと掛け算演算が簡素化ファクターにより略1/4と減少し得る。
【0125】
本文書において行列演算とは、行列を列ベクトルの左側に置いて、行列と列ベクトルを掛けて列ベクトルを得る演算で理解できる。
【0126】
【0127】
数式2において、r1乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができ、より具体的に、1次変換を適用して生成された変換係数であり得る。数式2の演算結果、対象ブロックに対する変換係数ciが導出でき、ciの導出過程は数式3の通りである。
【0128】
【0129】
数式3の演算結果、対象ブロックに対する変換係数c1乃至cRが導出できる。すなわち、R=16である場合、対象ブロックに対する変換係数c1乃至c16が導出できる。もし、RSTではなく、通常の(regular)変換が適用されて、サイズが64×64(N×N)である変換マトリックスが、サイズが64×1(N×1)であるレジデュアルサンプルに掛けられたら、対象ブロックに対する変換係数が64個(N個)が導出されるかもしれないが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少し、エンコーディング装置200がデコーディング装置300に送信するデータの量が減少するので、エンコーディング装置200-デコーディング装置300の間の送信効率が増加し得る。
【0130】
変換マトリックスのサイズ観点で検討すると、通常の変換マトリックスのサイズは64×64(N×N)であり、それに対して、簡素化変換マトリックスのサイズは16×64(R×N)に減少するため、通常の変換を実行する時と比較すると、LFNSTを実行するとき、メモリ使用をR/N割合で減少させることができる。また、通常の変換マトリックスを利用する時の掛け算演算数N×Nと比較すると、簡素化変換マトリックスを利用するとき、掛け算演算数をR/N割合で減少(R×N)させることができる。
【0131】
一実施形態において、エンコーディング装置200の変換部232は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を実行することによって、対象ブロックに対する変換係数を導出することができる。このような変換係数は、デコーディング装置300の逆変換部に伝達されることができ、デコーディング装置300の逆変換部322は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて、対象ブロックに対するレジデュアルサンプルを導出することができる。
【0132】
一実施形態にかかる逆RSTマトリックスTN×Rのサイズは、通常の逆変換マトリックスのサイズN×Nよりも小さいN×Rであり、数式1に示した簡素化変換マトリックスTR×Nとトランスポーズ(transpose)の関係にある。
【0133】
図7の(b)に示したReduced Inv. Transformブロック内のマトリックスT
tは、逆RSTマトリックスT
R×N
Tを意味することができる(上付き文字Tはトランスポーズを意味する)。
図7の(b)のように、対象ブロックに対する変換係数に対して逆RSTマトリックスT
R×N
Tが掛けられる場合、対象ブロックに対する修正された変換係数又は対象ブロックに対するレジデュアルサンプルが導出できる。逆RSTマトリックスT
R×N
Tは、(T
R×N)
T
N×Rと表現することもある。
【0134】
より具体的に、2次逆変換に逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリックスTR×N
Tが掛けられると、対象ブロックに対する修正された変換係数が導出できる。
【0135】
一方、一例によって、逆1次変換として逆RSTが適用されることができる。この場合、対象ブロックに対する変換係数に対して逆RSTマトリックスTR×N
Tが掛けられると、対象ブロックに対するレジデュアルサンプルが導出されることができる。
【0136】
一実施例において、逆変換が適用されるブロックのサイズが8×8であり、R=16(すなわち、R/N=16/64=1/4である場合)である場合、
図7の(b)による逆RSTは、以下の数式4のような行列演算で表現されることができる。
【0137】
【0138】
数式4において、c1乃至c16は、対象ブロックに対する変換係数、すなわち、レジデュアルコーディングを介して導出された変換係数を示すことができる。数式4の演算結果、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すriが導出されることができ、riの導出過程は、数式5の通りである。
【0139】
【0140】
数式5の演算結果、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すr1乃至rNが導出されることができる。数式4において、Nが64であるため、数式5を介して64個の修正された変換係数が導出されることができる。
【0141】
逆変換マトリックスのサイズ観点で検討すると、通常の逆変換マトリックスのサイズは64×64(N×N)であり、それに対して、簡素化逆変換マトリックスのサイズは64×16(N×R)に減少するため、通常の逆変換を実行する時と比較すると、逆RSTを実行するとき、メモリ使用をR/N割合で減少させることができる。また、通常の逆変換マトリックスを利用する時の掛け算演算数N×Nと比較すると、簡素化逆変換マトリックスをするとき、掛け算演算数をR/N割合で減少(N×R)させることができる。簡素化逆変換マトリックスまたは逆変換マトリックスは、変換であるかまたは逆変換であるかが混同されない場合、簡素化変換マトリックスまたは変換マトリックスと命名されることもできる。
【0142】
一方、本文書の一実施形態にかかり、エンコーディング過程の変換で、8×8領域を構成する64個のデータに対して、16×64の変換カーネルマトリックスではなく、48個のデータのみを選択し、最大16×48の変換カーネルマトリックスを適用することができる。ここで、「最大」とは、m個の係数を生成することができるm×48の変換カーネルマトリックスに対して、mの最大値が16ということを意味する。
【0143】
すなわち、8×8の領域にm×48の変換カーネルマトリックス(m≦16)を適用してRSTを実行する場合、48個のデータの入力を受けて、m個の係数を生成できる。mが16である場合、48個のデータの入力を受けて、16個の係数を生成する。すなわち、48個のデータが48×1ベクトルをなすとしたとき、16×48行列と48×1ベクトルを順序通りに掛けて、16×1ベクトルが生成できる。このような実施例の場合、数式2の列ベクトルはr1乃至r48になり、変換マトリックスの大きさは16×48になり、マトリックス演算を介して16個の修正された変換係数(c1乃至c16)が導出される。
【0144】
このとき、8×8領域をなす48個のデータを適切に配列して48×1ベクトルを構成することができる。例えば、8×8領域のうち右下端4×4領域を除外した領域を構成する48個のデータに基づいて48×1ベクトルを構成することができる。このとき、最大16×48変換カーネルマトリックスを適用して行列演算を実行すると、16個の修正された変換係数が生成され、16個の修正された変換係数は、スキャニング順序によって左上端4×4領域に配置されることができ、右上端4×4領域と左下端4×4領域は0で満たされることができる。
【0145】
デコーディング過程の逆変換には前記叙述された変換カーネルマトリックスのトランスポーズされたマトリックスが使われることができる。すなわち、デコーディング装置で実行される逆変換過程として逆RSTまたは逆LFNSTが実行される場合、逆RSTを適用する入力係数データは、所定の配列順序(対角スキャニング順序)によって1次元ベクトルで構成され、1次元ベクトルに該当逆RST行列を左側で掛けて得られた修正された係数ベクトルを所定の配列順序によって2次元ブロックに配列されることができる。
【0146】
8×8領域にRSTまたはLFNSTが実行され、これに対する逆RSTまたは逆LFNSTが実行される場合、数式4の変換マトリックスの大きさは48×16であり、列ベクトルはc1乃至c16になり、マトリックス演算を介して48個の修正された変換係数(r1乃至r48)が導出される。
【0147】
整理すれば、エンコーディング装置で実行される変換過程で、8×8領域にRSTまたはLFNSTが適用される場合、8×8領域の変換係数のうち8×8領域の右下端領域を除外した左上端、右上端、左下端領域の48個変換係数と16×48の変換カーネルマトリックスとの行列演算が実行される。行列演算のために48個の変換係数は、1次元配列で入力される。このような行列演算が実行されると、16個の修正された変換係数が導出され、修正された変換係数は、8×8領域の左上端領域に配列されることができる。
【0148】
それに対して、エンコーディング装置またはデコーディング装置で実行される逆変換過程で、8×8領域に逆RSTまたはLFNSTが適用される場合、8×8領域の変換係数のうち8×8領域の左上端に対応する16個の変換係数は、スキャニング順序によって1次元配列形態で入力されて48×16の変換カーネルマトリックスと行列演算されることができる。すなわち、このような場合の行列演算は、(48×16行列)*(16×1変換係数ベクトル)=(48×1修正された変換係数ベクトル)で示すことができる。ここで、n×1ベクトルは、n×1行列と同じ意味で解釈されることができるため、n×1列ベクトルで表記されることもできる。また、*は、行列掛け算演算を意味する。このような行列演算が実行されると、48個の修正された変換係数が導出されることができ、48個の修正された変換係数は、8×8領域の右下端領域を除外した左上端、右上端、左下端領域に配列されることができる。
【0149】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されるものではない。
【0150】
以下では、前述されたLFNSTを拡張した多様な実施例が論議される。
【0151】
実施例1:順方向LFNST(forward LFNST)を基準で、入力データ領域を示すROI(Region Of Interest)を構成する方法
【0152】
順方向LFNSTは、1次変換が適用された変換係数を入力で受ける。このとき、全ての変換係数を入力で受けるものでなく、変換ブロック内にあらかじめ定義された特定領域に属する変換係数を入力で受けることができる。
【0153】
図8の(a)は、VVC標準での順方向LFNST入力領域の一例を示し、4×4サブブロック(subblock)に対するスキャン順序上3番目の位置までを該当入力領域に設定している。以下、このような入力領域、すなわち、順方向LFNSTのために入力される入力変換係数の領域をRegion Of Interest乃至ROIと命名する。
【0154】
図8の(b)は、
図8の(a)に示したROIに4×4サブブロックに対するスキャン順序上4番目から6番目のサブブロックをROIに追加したものを示している。すなわち、ROIが6個の4×4サブブロックで構成されるため、サンプルを(ここでは1次変換が適用された変換係数)基準に
図8の(b)のROIは、全て96個のサンプルで構成される。VVCに使われた
図8の(a)のROIと比較した時、
図8の(b)の場合、より多くの1次変換係数がLFNSTで考慮されることができる。このような拡張されたROIに基づくLFNST(extended LFNST)は、既存のVVC LFNSTより大きいブロック(例えば、larger than or equal to 16×16)に対してより高い符号化性能を提供することができる。
【0155】
ROIに属するN個のサンプルに基づいて非分離変換行列を導出するようになると、該当変換行列が正方行列とした時、N×N変換行列が導出される。ここで、減少された変換のために前記
図7を参照して説明されたRを適用する場合、R値は、Nより小さいまたは同じであり、R値は、順方向LFNST観点ではLFNSTを適用して導出される出力変換係数の個数と解釈されることができる。したがって、
図8の(b)に対応されるLFNST変換カーネルの次元は、96×96だけでなく、16×96、32×96、48×96、64×96、80×96等も可能である(該当例示では16m×96行列(m≧1)と見ることができる)。このとき、出力変換係数の個数が必ず16の倍数である場合のみが許容されるものではなく、R値は、N(すなわち、96)より小さいまたは同じ任意の正の整数になることができる。96×96正方行列でR×96行列を生成する時は、順方向LFNST基準に96×96行列でR個の行をサンプリングして生成できる。もし、96×96行列を構成する行が上から重要度順に整列された場合、上からR個の行を順にサンプリングしてR×96行列を構成することができる。
【0156】
図8の(a)及び
図8の(b)でのROIは、各々、48個と96個の入力サンプル(入力変換係数または入力データ)で構成されている。ROIで入力サンプルを読む順序はあらかじめ定めておくことができるが、基本的に順序は任意に設定されることができる。より具体的に、任意のROIに適用される順方向LFNST行列をR×N行列とした時(すなわち、ROIは、N個の入力サンプルで構成)、たとえ、入力サンプルを読む順序を変更するとしても、N個の列ベクトルを変更された順序によって再配置すると、変更前と比較した時、出力値は入力サンプルの順序と関係なしに変更されない(出力値はR個の変換係数で構成される)。
【0157】
一方、特定順方向LFNST変換行列に対して(すなわち、列ベクトルを位置が固定されたとした時)ROIを構成する入力サンプルは、
図9または
図10のような順序に読まれて入力ベクトルで構成されることができる。
図9及び
図10は、イントラ予測モードによってROIから入力データを読む順序を示す。
【0158】
図9a及び
図10aは
図8の(a)に対応し、
図9b及び
図10bは
図8の(b)に対応する。もし、VVC LFNSTのように、イントラ予測モードに対して34番モードを中心とする対称性を適用する場合、
図5の-14~-1、2~33番モードに対しては
図9a及び
図9bのように行優先順序を適用し、35~80番モードに対しては
図10a及び
図10bの列優先順序を適用することができる。プラナーモードとDCモードを指す0番と1番モードと34番モードに対しては
図9a及び
図9bの順序をそのまま適用することもでき、モード別に
図9a及び
図9bまたは
図10a及び
図10bを適用することもできる。
【0159】
ROIに対する他の例示として、変換ブロックの左上端の四角形領域がROIとして設定されることができる。すなわち、M×N変換ブロックで左上端m×n(m≦M、n≦N)領域がROIとして設定されることができ、順方向LFNST観点で入力サンプル(1次変換を経た変換係数)数は、m×n個になる。より具体的な実施例として、mとnが両方とも8であり、順方向LFNST行列の次元はR×64になることができる(Rは64より小さいまたは同じであり、R値の例示として16、32、48、64などが可能)。mn×mn正方行列から(例えば、64×64行列)R個の行を選択する方式は、前述した96×96でR×96行列を生成する方式と同じである。
【0160】
一方、ROIは、
図8のように4×4サブブロックのみで構成可能なものではない。VVC標準で、4×4サブブロックは、LFNSTが適用されることができる変換ブロックに対する変換グループ(Coefficient Group、CG)に対応されることができるが、このようなCGが必ず4×4サブブロックであるものではない。一例によって、CGは、4×4サブブロックでないあらかじめ定義された任意のp×qサブブロックになることができる。4×4サブブロックでない異なる大きさのサブブロック(CG)が適用されるとしても、サブブロック構成と関係なしに順方向LFNSTのROI入力サンプルを読む順序は、
図9a及び
図9bまたは
図10a及び
図10bのように決められた特定順序に従うことができ、順方向LFNSTにより出力される変換係数は、該当CGと変換係数に対するスキャン順序によって配置されることができる。
【0161】
ROIが正方形でない非正方形(non-square)である場合(すなわち、左上端領域m×nに対してm≠n)、一つのM×N変換ブロックに対して対称となるイントラ予測モード間の(例えば、34番モードを中心に対称である二つのモードであって、24番と44番モード)対称性を利用することができない。
図11は、本文書の一実施例に係る非正方形のROIを示す図である。
図11の(a)のようにROIが非正方形である場合、行優先方向に入力サンプルを読む時と列優先方向に読む時を比較した時、二つの場合に対して変換係数の位相が整列(align)されないため、対称性を利用することができない。このような場合、一M×Nブロックを置いて、二つの対称であるモードが予測方向の対称性を利用してLFNSTカーネルを共有することはできないが、M×N変換ブロックとN×M変換ブロックとの間には34番モードを中心に対称であるイントラ予測モードの対称性を活用することができる。
【0162】
例えば、
図11の(b)のようにM×NブロックとN×MブロックでのROIが各々左上端m×n領域とn×m領域である場合、2番モードと66番モードに対して
図11の(b)で表示された順序によって入力サンプルを読むことができる。すなわち、2番モードに対しては
図11の(b)の左側順序によって入力サンプルを読み、66番モードに対しては
図11の(b)の右側順序によって入力サンプルを読むことができる。このように二つの予測モードの対称性を活用して入力サンプルを読むと、
図11の(b)の二つのROIに同じLFNSTカーネルを適用することができる。
【0163】
他の例によって、多少不規則形状を有するROIもLFNSTに適用されることができる。
図12は、本文書の一実施例に係る不規則形状のROIを示す図である。
図12の(a)のように、ROIは、互いに異なる長さを有するラインで構成されることもでき、
図12の(b)のように、ROIは、連続されないサンプルのセグメントで構成されることもできる。順方向LFNSTを適用する時は、
図12に提示されたパターンによって入力サンプルを集めて入力ベクトルを構成した後、LFNSTカーネルを適用することができ、逆LFNSTを適用する時は、該当カーネル行列を掛けて生成される出力を
図12に提示されたパターンによって配置できる。
【0164】
他の例によって、ROIは、
図8のような4×4サブブロック単位または単純四角形の形状でない、ライン別に異なる長さを有し、またはライン別に複数個のセグメントで構成される等の複雑な形状を有することができる。
図13は、本文書の一実施例に係る不規則形状を有する64サンプルROIを示す図であり、
図14は、不規則形状を有する96サンプルROIを示す図である。
【0165】
図13及び
図14のように、ROIは、
図8と比較して
図12のように複雑な形状を有し、DC位置を中心に密集された形態で構成されることができる。
図13の(a)、(b)、(c)に示すROIは、64個の位置(64個のサンプル)で構成されることができ、ROIの境界がDCを中心に同一または類似の長さほど離隔されるように構成される。類似の方式に、
図14のように96個の位置(96個のサンプル)で構成されたROIで構成されることもできる。すなわち、ROIは、
図13及び
図14のように、DC位置を中心に同一または類似の長さほど離隔されている特定境界内の変換係数で構成されることができる。
【0166】
一方、VVC標準では変換ブロック大きさによって異なるLFNSTカーネルが適用されるように構成されている。すなわち、4×4変換ブロックまたは4×N/N×4(N≧8)変換ブロック(横長さと縦長さが両方とも4より大きいまたは同じであり、かつ横長さまたは縦長さが4である変換ブロック)に対しては左上端4×4領域に適用されることができる16×16行列形態を有するLFNSTカーネルが適用される(LFNST_4×4と命名可能)。また、横長さと縦長さが両方とも8より大きいまたは同じ変換ブロックに対しては、ROIが左上端4×4サブブロック、左上端4×4サブブロックの右側に隣接した4×4サブブロック、左上端4×4サブブロックの下側に隣接した4×4サブブロックで構成され、ROIに順方向LFNST基準に16×48行列形態を有するLFNSTカーネルが適用される(LFNST_8×8と命名可能)。
【0167】
LFNST_4×4とLFNST_8×8は、各々、4個のセットで構成され、各セットは、2個の変換カーネルで構成され、どのようなセットに属するカーネルを適用するかはイントラ予測モードにより決定される。決定されたセットに対して2個のカーネルのうちどのようなカーネルを適用するかとLFNSTの適用可否は、LFNSTインデックスをシグナリングを介して指定される。LFNSTインデックス値が0である場合はLFNSTを適用せずに、1である場合は1番目のカーネルが適用され、2である場合は2番目のカーネルが適用される。
【0168】
このようにVVC標準でのLFNST構造を簡略化して説明したが、その他、いくつかの例外場合も存在する。例えば、4×4変換ブロックと8×8変換ブロックに対しては各々16×16行列と16×48行列でない該当行列からサンプリングされた8×16行列と8×48行列が順方向LFNSTとして適用され、MIP予測モードが適用される場合にはイントラ予測モードをプラナーモードと見なしてLFNSTセットが決定される。
【0169】
前記LFNST_4×4とLFNST_8×8は、各々、4個のLFNSTセットで構成されているため、LFNST_4×4やLFNST_8×8と命名されるLFNSTセットの束は、以下、説明の便宜上LFNSTセットリスト(LFNST set list)で示すことができる。
【0170】
一方、本文書において、LFNST_8×8は、横長さと縦長さが両方とも8より大きいまたは同じであり、かつ横長さまたは縦長さが8である変換ブロックに適用されるLFNSTセットリストを示すことができ、追加的に横長さと縦長さが両方とも16より大きいまたは同じ変換ブロックに適用されるLFNSTセットリストをLFNST_16×16と命名できる。
【0171】
LFNST_4×4、LFNST_8×8、LFNST_16×16が有することができる行列次元及びROIに対する追加的な実施例は、下記の通りである。以下の実施例において、変換行列は、順方向変換を適用する時を基準とする。
【0172】
1.LFNST_4×4は、16×16行列を有することができ、ROIは、左上端4×4領域になることができる。
【0173】
2.LFNST_8×8は、R×48行列乃至S×64行列を有することができ、R値として16、32、48が可能であり、S値として16、32、48、64が可能である。R×48行列に対するROIは、
図8の(a)になることができ、S×64行列に対するROIは、左上端8×8領域になることができる。
【0174】
3.LFNST_16×16は、R×96行列またはS×64行列またはT×48行列を有することができ、R値として16、32、48、64、80、96が可能であり、S値として16、32、48、64が可能であり、T値として16、32、48が可能である。R×96行列に対するROIは、
図8の(b)になることができ、S×64行列に対するROIは、左上端8×8領域になることができ、T×48行列に対するROIは、
図8の(a)になることができる。
【0175】
LFNST_4×4、LFNST_8×8、LFNST_16×16に対するアーキテクチャとして、前記1番、2番、3番で提示した行列次元とROIのどのような組み合わせも可能である。例えば、LFNST_4×4の場合、16×16行列に左上端4×4領域のROIが適用され、LFNST_8×8の場合、32×64行列に左上端8×8領域のROIが適用され、LFNST_16×16の場合、32×96行列に
図8の(b)のようなROIが適用されることができる。
【0176】
また、LFNST_4×4、LFNST_8×8、LFNST_16×16のうちいずれか一対でも行列次元が同じになると、該当対に対してLFNSTセットとLFNSTカーネルを共有することができる。例えば、LFNST_8×8の行列次元が32×64であり、LFNST_16×16の行列次元が32×64である場合、LFNST_8×8とLFNST_16×16に同じLFNSTセットリストが割り当てられることができ、ROIも同じく設定されることができる(例えば、ROIを左上端8×8領域に設定できる)。
【0177】
他の例として、LFNST_8×8の行列次元が32×48であり、LFNST_16×16の行列次元が32×48である時、LFNST_8×8とLFNST_16×16に同じLFNSTセットリストを割り当てることができ、ROIも同じく設定されることができる(例えば、ROIを
図8の(a)のように設定できる)。
【0178】
一方、逆LFNST(inverse LFNST)を適用する場合、R個の変換係数を入力して入力ベクトルを構成して該当入力ベクトルの左側にN×R行列を掛けると、N個の出力サンプル(出力変換係数)が生成される。ここで、N×R行列は、順方向LFNSTでのR×N行列の前置行列になり、N個の出力サンプルは、
図8乃至
図14のROIに配置されることができる。ROIに配置される時は、イントラ予測モード値によって
図9または
図10に提示された順序に従うことができる。例えば、イントラ予測モード間の対称性を活用する場合、イントラ予測モード-14~-1、2~33番に対しては
図9の行優先順序を適用し、35~80番モードに対しては
図10の列優先順序を適用することができる。プラナーモードとDCモードを指す0番と1番モードと34番モードに対しては、全て
図9a及び
図9bの順序を適用し、またはモード別に
図9a及び
図9bまたは
図10a及び
図10bの順序を適用することができる。
【0179】
一方、一実施例によって、大きい(スーパーセット、superset)ROIから小さい(サブセット、subset)ROIに対する変換行列を導出する方式が提案される。
【0180】
もし、ROIがL個の位置で構成されている時、該当ROIに対する順方向変換行列は、下記のようにL個の列ベクトルviで(i=1、2、...、L-1、L)構成され、各viは、R×1ベクトルで構成されることができる。すなわち、順方向行列Gは、以下の数式のようにR×L次元行列になり、R値は、Lより小さいまたは同じである)。
【0181】
【0182】
もし、サブセットであるROIがL個の位置のうち一部で構成されている場合、該当一部位置に対する集合をJとし、Jに属する位置インデックスをj1、j2、...、jMに設定できる。すなわち、集合Jは、総M個の位置で構成され、該当M個の位置は、スーパーセットであるROIにも属する。このとき、サブセットであるROIに対する順方向変換行列Hは、以下の数式のようにvj1、vj2、...、vjMで構成されることができる。
【0183】
【0184】
前記Hは、R×M行列次元を有し、Hから行の個数をRより小さいまたは同じく設定したH′を構成する場合、順方向変換行列H′は、v′j1、v′j2、...、v′jMで構成されることができる。v′j1、v′j2、...、v′jMがW×1次元ベクトルである場合、WはRより小さいまたは同じである。Hを構成するR個の行からW個の行を選択する時は、原則的には任意の行を選択することができるが、R個の行が重要度順序に上から下まで配置されたと仮定すると、W個の行は、R個の行のうち上からW個の行をサンプリングして得ることができる。
【0185】
図15は、一実施例に係るスーパーセットROIとサブセットROIを示す図である。
図15において、ROIは、4×4サブブロック毎に(1)から(6)までの一連番号が付与されている。
【0186】
96個の位置で構成されたスーパーセットROIを仮定すると、
図15のROIは、
図8の(b)と同じである。ROIにLFNSTを適用すると、
図9の(b)の順序通りに入力サンプルを読んで1次元ベクトルを構成した後、順方向変換行列を掛けて出力変換係数を導出することができる。イントラ予測モードによって、
図10の(b)で提示された順序によって入力ベクトルを構成することもできる。
【0187】
図15に対応される順方向変換行列は、R×96になることができ、R値として16、32、48、64、80、96などが可能である。一実施例によって、変換ブロックの大きさに対応して特定ROIを
図15のサブセットになるように構成でき、サブセットは、多様な方式で構成されることができる。変換ブロックの大きさを下記のように分類する場合、変換ブロックの形状毎に可能なROIと行列Gから(すなわち、R×96変換行列から)サンプリングされた順方向変換行列は、下記のように導出されることができる。
【0188】
1.4×4変換ブロック
【0189】
ROIは、
図15の(1)番4×4サブブロックで構成されることができ、行列Gから(1)番4×4サブブロックに該当する16個の位置に対する列ベクトルv
iを抽出して変換行列を構成することができる(R×16行列)。もし、構成される変換行列の行の数がRより小さいまたは同じ場合、該当R×16行列から必要な行の数ほどの行が抽出されることができ、一例として、R×16行列の最も上の行から順序通りに必要な数ほどの行が抽出されることができる。R′個ほどの行が抽出された場合、R′×16行列を順方向変換行列で適用してR′個の変換係数が生成されることができる。
【0190】
2.8×4変換ブロック
【0191】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(2)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(2)番4×4サブブロックで構成される場合は、R′×32行列が適用されることができる。
【0192】
3.4×8変換ブロック
【0193】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(4)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(4)番4×4サブブロックで構成される場合は、R′×32行列が適用されることができる。
【0194】
4.N×4(N≧16)変換ブロック
【0195】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(2)番4×4サブブロックで構成され、または(1)番と(2)番と(3)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(2)番4×4サブブロックで構成される場合は、R′×32行列が適用され、(1)番と(2)番と(3)番4×4サブブロックで構成される場合は、R′×48行列が適用されることができる。
【0196】
5.4×N(N≧16)変換ブロック
【0197】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(4)番4×4サブブロックで構成され、または(1)番と(4)番と(6)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(4)番4×4サブブロックで構成される場合は、R′×32行列が適用され、(1)番と(4)番と(6)番4×4サブブロックで構成される場合は、R′×48行列が適用されることができる。
【0198】
6.8×8変換ブロック
【0199】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(2)番と(4)番4×4サブブロックで構成され、または(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(2)番と(4)番4×4サブブロックで構成される場合は、R′×48行列が適用され、(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成される場合は、R′×64行列が適用されることができる。
【0200】
7.N×8(N≧16)変換ブロック
【0201】
ROIは、
図15の(1)番4×4サブブロックのみで構成され、または(1)番と(2)番と(4)番4×4サブブロックで構成され、または(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成され、または(1)番と(2)番と(3)番と(4)番と(5)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(2)番と(4)番4×4サブブロックで構成される場合は、R′×48行列が適用され、(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成される場合は、R′×64行列が適用され、(1)番と(2)番と(3)番と(4)番と(5)番4×4サブブロックで構成される場合は、R′×80行列が適用されることができる。
【0202】
8.8×N(N≧16)変換ブロック
【0203】
ROIは、
図15の(1)番4×4サブブロックのみを含み、または(1)番と(2)番と(4)番4×4サブブロックで構成され、または(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成され、または(1)番と(2)番と(4)番と(5)番と(6)番4×4サブブロックで構成されることができる。前記1番4×4ブロック場合と類似するように、必要な位置に対する列ベクトルをGから抽出した後、必要な行の個数(R′)のみを抽出して順方向変換行列を構成することができる。(1)番4×4サブブロックのみでROIが構成される場合は、R′×16行列が適用され、(1)番と(2)番と(4)番4×4サブブロックで構成される場合は、R′×48行列が適用され、(1)番と(2)番と(4)番と(5)番4×4サブブロックで構成される場合は、R′×64行列が適用され、(1)番と(2)番と(4)番と(5)番と(6)番4×4サブブロックで構成される場合は、R′×80行列が構成されることができる。
【0204】
9.16×16以上変換ブロック(すなわち、横長さと縦長さが両方とも16より大きいまたは同じ場合)
【0205】
ROIは、
図15で提示されたROIと同じであり(すなわち、(1)番から(6)番までの4×4サブブロックで構成)、該当順方向変換行列としてR×96行列になることができる。
【0206】
R値として16、32、48、64、80、96などが可能であり、R′値はブロック形状毎に異なることがあるが、4×4/4×N/N×4(N≧8)変換ブロックと8×8変換ブロックに対してはR′値が16に設定され、残りの場合に対してはR′値が32に設定されることができる。または、4×4/4×N/N×4(N≧8)変換ブロックと8×8/8×N/N×8(N≧8)変換ブロックに対してはR′値が16に設定され、残りの場合に対してはR′値が32に設定されることができる。他の実施例として、4×4/4×N/N×4(N≧8)変換ブロックに対してはR′値が16に設定され、残りの場合に対してはR′値が32に設定されることができる。
【0207】
実施例2:順方向LFNSTを基準で、出力データを構成する方法
【0208】
VVC標準では変換係数に対するスキャン順序が階層的に構成される。CGのスキャン順序があり、CG毎に内部のスキャン順序がある。
図16は、このような変換係数のスキャン順序を示す図である。
図16のように、スキャン順序は、左側下から右側上まで対角線方向に進行される。
図16において、小さい四角形は一つの変換係数を示し、小さい四角形内部の数字はスキャン順序を指す。
【0209】
CG単位で一回左側下から右側上までをスキャンすることを一つのスキャンラインとすると、1番目のスキャンラインは1個のCGで構成され、2番目と3番目のスキャンラインは各々2個と3個のCGで構成され、同じ方式によってN番目のスキャンラインも複数のCGで構成される。
【0210】
図8の(a)及び
図8の(b)に示すROIは、全てこのようなCG単位のスキャンラインで構成されている。
図8の(a)及び
図8の(b)は、各々、初めの2個と3個のスキャンラインで構成されたROIを示し、当然、ROIは、より多くのスキャンラインで構成されることもできる。
【0211】
前述したように、順方向LFNST基準での出力変換係数の個数をR、入力サンプルの数をNとした時、Rは、Nより小さいまたは同じく設定されることができる。特に、
図8のように、Rは、16の倍数に設定されることができる(すなわち、R=16k、k≧1)。これはLFNSTが適用される変換ブロックに対するCGが4×4サブブロックである場合を考慮して順方向LFNSTの出力変換係数の個数が一つのCG内部に存在するサンプル数の倍数になるように設定したことである。したがって、Rを16の倍数に設定すると、順方向LFNSTを適用して得られた変換係数が特定4×4サブブロックにのみ配列されるように設計できる。このような設計を介してレジデュアルコーディング(residual coding)パートとLFNSTインデックスシグナリング設計をさらに単純化させることができる。
【0212】
例えば、LFNST変換係数が存在できる領域以外の領域で変換係数がパーシングされる場合、LFNSTインデックスのシグナリングを省略してLFNSTが適用されないと類推できる。ここで、LFNST変換係数が存在できる領域が4×4サブブロック単位で構成されてレジデュアルコーディングが該当4×4サブブロック単位で実行されると、LFNST変換係数が存在できる領域以外の領域で変換係数が存在するかどうかをチェックすることがさらに簡単に実行されることができる。
【0213】
他の実施例によって、CGは、4×4サブブロックでない異なる形状になることができ、このような場合(例えば、m×nブロック、m≠n)R値は、m×nの倍数に設定されることができる。また、順方向LFNST出力変換係数が存在できるCGは、CGのスキャン順序によって配置された初めのk個のCGで構成されることができる。
【0214】
基本的に、順方向LFNSTの出力係数は、変換係数スキャン順序によって配置されることができる。普遍的に、順方向LFNSTカーネルの行ベクトルは、重要度順によって上から下へ配置されるため、出力ベクトルを構成する変換係数を上から下の順序に配置するとした時(ここで、出力ベクトルは列ベクトルと仮定)、より重要な係数から順序通りに配置されることができる。通常的に、変換係数のスキャン順序は、重要な係数からスキャンすると仮定され、左上端位置で示されるDC位置からスキャンしてDC位置から遠ざかるほど重要度が落ちる変換係数が配置されて主に0や0に近い値を有するようになる。したがって、順方向LFNSTの出力変換係数は、DC位置からスキャン順序によって順序通りに配置することがコーディング性能観点で有利である。また、レジデュアルコーディングパートもDC位置から遠ざかるほど0または0と近い値を有する変換係数がよく登場する時、コーディング効率が高まるように設計される場合が多い。
【0215】
一方、順方向LFNSTの出力変換係数を必ず固定された一つのスキャン順序によって配置する必要はない。すなわち、他の実施例によって、LFNSTの出力変換係数は、スキャン順序でない異なる順序によって整列されることができる。
【0216】
もし、統計的にVVC標準でのスキャン順序でない異なるスキャン順序が該当LFNST出力係数に適すると判断される場合、レジデュアルコーディング実行前にLFNST適用可否があらかじめ知られた場合に対しては既存決められたスキャン順序でないLFNSTに特化されたスキャン順序が適用されることができる。また、イントラ予測モードのようなコーディングコンテキスト(coding context)によって最適のスキャン順序が変わる場合、一例によって、イントラ予測モード(または、イントラ予測モードグループ)毎に異なるスキャン順序を順方向LFNST出力変換係数に適用できる。
【0217】
実施例3:変換ブロックの大きさによって多様なLFNSTセットリスト/LFNSTセット/LFNSTカーネルを適用する方法
【0218】
一例によると、VVCでのLFNSTセットリスト、LFNSTセット、セット当たりLFNSTカーネル構成と違って(ここで、セット当たりLFNSTカーネル構成は、どのようなLFNSTセットがいくつかの候補カーネルで構成されるかなどを指す。)、変換ブロックの大きさ別にLFNSTセットリストをさらに細分化して適用できる。
【0219】
例えば、可能な全ての変換ブロックの形状毎に(すなわち、可能なM×Nブロック毎に)異なるLFNSTセットリストが適用されることができ、該当セットリストは、例えば、LFNST_M×Nのように示すことができる。または、変換ブロック形状をグルーピング(grouping)してグループ毎に該当LFNSTセットリストが適用されることができる。VVC標準の場合は、変換ブロック形状によって二つのグループに分けて二種類のLFNSTセットリスト、すなわち、LFNST_4×4とLFNST_8×8が適用されると見ることができる。他のグルーピングの例示は、下記の通りである。
【0220】
1.変換ブロックの横長さと縦長さが両方とも16より大きいまたは同じ場合に対して別途のグループを設定し、該当グループに適用されるLFNSTセットリストが割り当てられることができる。ここで、LFNSTセットリストは、LFNST_16×16と命名されることができる。VVC標準のグルーピングと結合するようになると、(Group1)4×4、4×N/N×4(N≧8)変換ブロック、(Group2)8×8、8×N/N×8(N≧16)変換ブロック、(Group3)横と縦が両方とも16より大きいまたは同じ変換ブロックのように三つのグループに分けられることができ、各グループ及び/又はグループに適用されるLFNSTセットリストをLFNST_4×4、LFNST_8×8、LFNST_16×16と命名できる。
【0221】
2.前記1番でのグルーピングにおけるGroup1は、再び4×4変換ブロックと4×N/N×4(N≧8)とに分けられることができ、Group1AとGroup1Bのように区分できる。Group2も8×8変換ブロックと8×N/N×8(N≧16)変換ブロックとに分けられることができ、Group2AとGroup2Bのように区分できる。また、Group3も特定基準を介してGroup3AとGroup3Bとに分けられることができる。例えば、16×16と16×N/N×16(N≧16)変換ブロックをGroup3Aに置いて、残りの場合をGroup3Bに分類できる。
【0222】
また、Group1、Group2、Group3は、各々、前記のように細部グループに分けられることもあり、そうでないこともある。例えば、Group1とGroup3のみ細部グループに分けられる場合、全体グループは、Group1A、Group1B、Group2、Group3A、Group3Bのように構成されることができる。当然、Group1、Group2、Group3が全て分けられる場合、グループは、Group1A、Group1B、Group2A、Group2B、Group3A、Group3Bのように分類されることができる。
【0223】
前記二つの実施例だけでなく、変換ブロックの大きさを基準に多様な基準によってグルーピングを適用することができ、各グループ毎に該当LFNSTセットリストを付与することができる。このようなLFNSTセットリストは、グループ毎に異なるように構成されることができる。
【0224】
例えば、LFNSTセットリストを構成するLFNSTセット当たりカーネル数を異なるように設定でき(例えば、Group1に対しては3個のセット当たりLFNSTカーネル数を付与し、Group2に対しては2個のセット当たりLFNSTカーネル数を付与し、すなわち、Group1に対しては3個のセット毎にセットを構成するLFNSTカーネル数を設定し、Group2に対しては2個のセット毎にセットを構成するLFNSTカーネル数を設定する)、より詳しくは、一つのLFNSTセットリストを構成するLFNSTセット毎にセットを構成するカーネル数が異なるように設定されることもできる。
【0225】
または、LFNSTセットリスト毎に含まれるLFNSTセットの数を異なるように設定でき、例えば、Group1は18個のLFNSTセットで構成し、Group2は10個のLFNSTセットで構成することができる。当然、LFNSTセットリストによってカーネル行列の次元が異なるように設定されることができる。VVC標準を例に挙げると、LFNST_4×4は16×16行列で構成され、LFNST_8×8は16×48行列で構成される。
【0226】
より多様に、LFNSTセットリストを構成するLFNSTセット毎にカーネル行列の次元が異なるように設定されることもできる。このようなLFNSTセットリストの細部構成に対する具体的な実施例は、下記の通りである。
【0227】
1.Group1(LFNST_4×4)は18個のLFNSTセットで構成され、各LFNSTセットは3個のカーネルで構成され、該当カーネル行列の次元は16×16である。Group2(LFNST_8×8)は18個のLFNSTセットで構成され、各LFNSTセットは3個のカーネルで構成され、該当カーネル行列の次元は16×48である。Group3(LFNST_16×16)は18個のLFNSTセットで構成され、各LFNSTセットは3個のカーネルで構成され、該当カーネル行列の次元は32×96である。
【0228】
2.前記1番構成において、全てのLFNSTセットは、3個のカーネルの代わりに2個のカーネルで構成されることができる。
【0229】
3.前記1番構成において、全てのLFNSTセットリストは、18個でない異なる個数のセットで構成されることができる。例えば、LFNSTセットリストは、16個、15個、10個、6個、4個の変換セットで構成されることができる。
【0230】
4.前記1番構成において、LFNST_8×8を構成するカーネル行列の次元は、32×48乃至48×48に設定されることができる。
【0231】
5.前記1番構成において、LFNST_16×16を構成するカーネル行列の次元は、16×96、48×96、64×96、80×96、96×96のうち一つに設定されることができる。ここで、96は、順方向LFNST観点でROIを構成する入力サンプル(入力変換係数)の数を示し、ROIは、
図8の(b)のように構成されることができる。もし、LFNST_16×16に対応されるROIを
図8の(b)ではなく
図8の(a)のように構成する場合、LFNST_16×16を構成するカーネル行列の次元は、16×48、32×48、48×48のうち一つに設定されることができる。
【0232】
6.前記1番を基本とし、前記2番、3番、4番、5番が自由に組み合わせられることができる。例えば、3番を適用してLFNSTセットの数は、15に設定され、4番を適用してLFNST_8×8を構成するカーネル行列の次元は、32×48に設定されることができる。
【0233】
実施例4:ROIに複数のLFNSTを適用する方法
【0234】
VVC標準では左上端ROIに対して順方向LFNSTが一回適用される。したがって、VVC標準で順方向LFNSTに対するカーネル行列次元がR×Nとした時、該当ROI領域に属するサンプルの数はN個になる。
【0235】
もし、ROIに属するサンプルの数が該当カーネル行列に掛けられる入力ベクトルの次元より大きい場合、一例によって、該当ROIに対して順方向LFNSTを複数回適用するように構成できる。
【0236】
例えば、4×N/N×4(N≧8)変換ブロックに対してROIが左上端4×4ブロックでない4×8または8×4とした場合(4×Nに対しては4×8であり、N×4に対しては8×4)、該当ROIに対して二つの4×4サブブロックに分けた後、各々、LFNST_4×4に対するカーネルを適用することができる。
【0237】
このようにLFNST_4×4に対するカーネルを二回適用して生成された出力変換係数は、(二つの出力変換係数ベクトルで構成)二つの変換係数ベクトルが順序通りに連結(concatenate)されて一つのベクトルで生成された後、スキャン順序によって変換ブロックのDC位置から配置されることができる。または、出力変換係数は、各4×4サブブロック位置に該当するCGのDC位置から各々配置されることができる。もし、出力変換係数ベクトルの長さが16である場合、前記二つの方式は、同じ結果をもたらすことができる。
【0238】
または、他の例によって、4×N/N×4(N≧8)変換ブロックを全て4×4サブブロックに分けた後、全てのサブブロックにLFNST_4×4に対するカーネルを適用することができる。この場合、前記例と同じ方式に、出力変換係数は、DC位置から配置され、または各CGに分けて配置されることができる。
【0239】
他の実施例として、特定LFNSTセットリスト及び特定LFNSTセットに対してはROIを分割してLFNSTを分割されたROI領域毎に適用し、残りのLFNSTセットリスト及び他のLFNSTセットに対してはROIを分割せずにLFNSTをROIに一回のみ適用できる。例えば、LFNST_4×4に対しては2個以上の隣接した4×4ブロックにLFNSTが適用され、LFNST_8×8に対しては左上端ROIに対してのみLFNSTが適用されることができる。
【0240】
他の例示として、横と縦が両方とも16より大きいまたは同じ変換ブロックに対してROIを左上端16×16領域に置いて、該当ROIを4個の8×8ブロックに分けることができる。各8×8ブロックに対して、8×8ブロックを構成する左上端、右上端、左下端4×4サブブロック内の変換係数で順方向LFNSTの入力ベクトルを構成した後、各々LFNST_8×8に対するカーネルを(例えば、16×48/32×48行列)適用することができる。各8×8ブロックに対して順方向LFNSTを適用して生成された出力変換係数ベクトルは、決められた順序によって連結(concatenate)されてスキャン順序によって配置され、または各8×8ブロック毎に内部の左上端位置からスキャン順序によって配置されることができる。
【0241】
また、前述したように、CG単位でROIが設定されることができ、ROIに属するサンプルの数が順方向LFNSTカーネルを適用する入力ベクトルの次元より大きい。この場合、一例によって該当ROIが分割され、分割された領域毎に特定LFNSTが適用されることができる。すなわち、分割された領域毎に特定変換カーネルが適用されることができる。
【0242】
例えば、
図8の(b)において、1番目のスキャンラインと2番目のスキャンラインで構成された3個の4×4サブブロックに対しては16×48乃至32×48の次元を有する一つのカーネル行列(どのようなLFNSTセットに属するカーネル行列になることができる)が適用されることができ、3番目のスキャンラインで構成された3個の4×4サブブロックに対しては異なるカーネル行列(この場合も16×48乃至32×48の次元を有することができる)が適用されることができる。
【0243】
もちろん、二つの分割された領域に対して同じカーネル行列が適用されることもでき、二つの領域に対しては異なるLFNSTセットが割り当てられることで全く異なるカーネル行列が適用されることもできる。二つの領域を介して生成された変換係数は、前述した方式と同一または類似するようにチェーンのように連結されて(concatenate)ROIのDC位置から配置され、または分割された領域でスキャン順序上最も優先位置から各々配置することもできる。
【0244】
実施例5:LFNSTと1次変換の組み合わせ
【0245】
VVC標準では1次変換として水平方向と垂直方向に両方ともDCT-2が適用される場合にのみLFNSTが適用されることができる。以下、水平方向と垂直方向に対して各々A、B変換が適用される場合は、(A、B)のように表記する。例えば、水平方向と垂直方向に両方ともDCT-2が適用される場合は、(DCT-2、DCT-2)で表記できる。
【0246】
本文書の一実施例によって、前記(DCT-2、DCT-2)場合以外に異なる1次変換が適用される場合にも、変換ブロックにLFNSTが適用されることができる。すなわち、(DCT-2、DCT-2)場合以外に異なる1次変換が適用される場合にも、LFNSTが適用されるように映像情報が構成されることができる。
【0247】
現在VVC標準では(DCT-2、DCT-2)以外にもDST-7とDCT-8の組み合わせである(DST-7、DST-7)、(DCT-8、DST-7)、(DST-7、DCT-8)、(DCT-8、DCT-8)が1次変換として適用されることができる。一例によって、全てのDST-7とDCT-8組み合わせによる1次変換が適用された変換ブロックにもLFNSTが適用されることができる。
【0248】
他の実施例として、全てのDST-7とDCT-8組み合わせでない一部組み合わせに対してのみLFNSTが適用されるように映像情報が構成されることができる。例えば、DST-7とDCT-8の組み合わせのうち最も頻度数が高い(DST-7、DST-7)に対してのみLFNSTが適用されることができる。
【0249】
他の実施例として、イントラ予測モードによってLFNSTが適用される1次変換の構成を異なるように設定できる。例えば、プラナーモードとDCモードに対しては(DCT-2、DCT-2)以外に(DST-7、DST-7)にのみLFNSTが適用されることができるように許容し、水平方向モードに対しては(DCT-2、DCT-2)以外に(DST-7、DCT-7)と(DST-7、DCT-8)にのみLFNSTが適用されることができるように許容することができる。
【0250】
VVC標準では明示的(explicit)MTS以外に暗黙的(implicit)MTSが適用されることができる。暗黙的MTSが適用される場合、横と縦の長さが4以上であり、かつ16以下である場合に対してDST-7が適用されることができるため、可能な1次変換の組み合わせでDCT-8は存在せずにDCT-2とDST-7の組み合わせのみが可能である。一例によって、暗黙的MTSで可能な(DCT-2、DCT-2)、(DST-7、DCT-2)、(DCT-2、DST-7)、(DST-7、DST-7)のうち、(DCT-2、DCT-2)と(DST-7、DST-7)に対してのみLFNSTが適用されるように許容することができる。または、前記全ての四つの組み合わせに対してLFNSTが適用されることができるように映像情報が構成されることができる。
【0251】
VVC標準ではLFNSTインデックスに対するシグナリングを先に実行した後にMTSインデックスをシグナリングするため、暗黙的に1次変換が決定される場合を除いてLFNSTインデックスをシグナリングする時にどのような1次変換が適用されるかを知ることができない。
【0252】
VVC標準のシグナリング順序によると、LFNSTインデックスは、MTSと関係なしにシグナリングされ、LFNSTインデックスシグナリング後にMTSインデックスがシグナリングされる。LFNSTが特定の1次変換に対してのみ適用されて変換インデックスに対するVVC標準のシグナリング順序に従う場合、LFNSTの適用可否によって許容可能な1次変換候補がMTSインデックスにより指定されることができる。すなわち、1次変換候補がLFNST適用可否によって構成されることができる。
【0253】
例えば、LFNSTが(DCT-2、DCT-2)と(DST-7、DST-7)に対してのみ適用される場合、MTSインデックスは一つのビン(bin)で構成されることができ、その値が0である場合は(DCT-2、DCT-2)を指し、その値が1である場合は(DST-7、DST-7)を特定することができる。
【0254】
もし、MTSインデックスを先にシグナリングするように映像情報が構成される場合、どのような1次変換が適用されるかをLFNSTインデックスシグナリング前に知ることができる。このような場合、LFNSTインデックスシグナリング可否を1次変換とコーディングコンテキスト(coding context、例えば、イントラ予測モード)等を介して決定し、LFNSTインデックスのシグナリングが必要な場合にのみLFNSTインデックスがシグナリングされるように映像情報が構成されることができる。
【0255】
一例によって、VVC標準でサポートする1次変換以外に異なる1次変換もLFNSTと組み合わせられることができる。LFNSTと組み合わせが可能な他の1次変換は、下記の通りである。
【0256】
1.VVC標準でサポートするDCT-2、DST-7、DCT-8以外に異なるサイン(sine)変換またはコサイン(cosine)変換が可能である。参考までに、サイン変換とコサイン変換は、各々、八つの種類がある(すなわち、DST-1~DST-8、DCT-1~DCT-8)。
【0257】
2.サイン変換とコサイン変換でなく任意の変換が可能である。例えば、トレーニング(training)を介して得たKarhunen Loeve Transform(KLT)が可能であり、KLTは、非分離変換形態で適用されることもでき、分離変換形態で適用されることもできる。
【0258】
M×N変換ブロックに対してKLTが非分離変換形態で適用されると、該当KLTは、正方行列の場合、MN×MN形態を有するようになる。順方向のKLTの場合、MN個より少ない数の変換基底ベクトル(transform basis vector)のみを適用してMN個より少ない数の出力変換係数を得ようとする場合、R×MN(R≦MN)次元形態を有する行列が変換に使われることができる。
【0259】
また、非分離変換形態のKLTがM×Nブロックに適用されると、N個の行に対して各々異なるM×M変換が適用されることもでき、M個の列に対して各々異なるN×N変換が適用されることもできる。
【0260】
KLTが分離変換形態で適用されると、水平方向と垂直方向に別途の変換を適用することができる。例えば、M×N変換ブロックに分離変換形態のKLTを適用する場合、水平方向にはM×M変換を適用し(ここでも類似するようにM個より少ない数の出力変換係数を得るためにR×M(R≦M)変換を適用することができる)、垂直方向にはN×N変換を適用することができる(ここでも類似するようにN個より少ない数の出力変換係数を得るためにS×N(S≦M)変換を適用することができる)。
【0261】
より具体的に、順方向KLTを基準とした時、水平方向にM×M変換をN個の行に対して適用した後、垂直方向にN×N変換をM個の列に対して適用すると、M×N出力変換係数ブロックが導出されることができる。
【0262】
それに対して、垂直方向から変換を適用した後、水平方向に変換を適用することも可能である。また、計算量及びメモリ要求量のような複雑度を減らすために、前述したようにより少ない数の出力変換係数が導出されることができる。このためにM×M変換とN×N変換の代わりに各々R×M変換とS×N変換を適用すると、結果的にR×S出力変換係数ブロックが導出されることができる。
【0263】
非分離変換形態のKLTの場合は、ブロック形状(M×N)毎に異なるKLTが適用されることができ、分離変換形態のKLTの場合は、変換係数の長さ毎に異なるKLTが適用されることができる。すなわち、長さ2、4、8、16、32、64、128等によって異なるKLTが適用されることができる。
【0264】
イントラ予測コーディングブロックの場合、イントラ予測モードまたは適用されるコーディングツールによって異なる統計的特徴を有するレジデュアルデータが生成されることができる。したがって、イントラ予測モードまたはコーディングツール(例えば、MIP、ISP、MRL)によって異なるKLTを適用することができる。すなわち、イントラ予測モードまたはコーディングツールに対する統計的特性によって相関性を最もよく除去できる(decorrelate)最適のKLTを変換に活用できる。イントラ予測モード毎に異なるKLTを適用する場合、メモリ要求量を多く占めることができるため、イントラ予測モードグループ別に(例えば、0番と1番、2番から10番)異なるKLTを適用することができ、これを介して必要なKLTの数を減らすこともできる。
【0265】
3.VVC標準では長さ64まで(変換ブロック一辺の長さが64以下である場合)1次変換が適用可能であり、DCT-2でないDST-7とDCT-8に対しては長さ32まで(変換ブロック一辺の長さが32以下である場合)1次変換が適用可能である。VVC標準以外の今後標準ではより大きい、かつ多様な長さの1次変換が適用されることができる。例えば、DCT-2が長さ64より大きい128と256まで適用されることができ、DST-7とDCT-8が長さ32まででない長さ64以上に対しても(例えば、64、128、256)適用されることができる。
【0266】
4.LFNSTと組み合わせられることができる1次変換として、垂直方向または水平方向に変換スキップが適用される場合も可能である。より具体的に、変換スキップをTSで表記し、変換スキップでない変換(例えば、サイン変換、コサイン変換、KLT)をNon-TSで表記する時、(Non-TS、TS)または(TS、Non-TS)がLFNSTと組み合わせられることができる。LFNSTと組み合わせることができる他の1次変換の例としても(TS、TS)可能であり、該当場合は1次変換を省略してLFNSTを直接適用する場合と見なされることができる。
【0267】
また、一例によって、LFNSTセットリスト、LFNSTセット、LFNSTカーネル別に1次変換(primary transform)との組み合わせを異なるように構成できる。
【0268】
例えば、特定大きさの変換ブロックまたは特定大きさ以上の変換ブロック(例えば、横と縦が両方とも16より大きいまたは同じ変換ブロック)に対しては特定1次変換に対してのみ(例えば、(DCT-2、DCT-2)に対してのみ)LFNSTが適用されることができるように映像情報が構成されることができる。他の例によって、特定ブロック形状を有する変換ブロックに対しては(例えば、横長さが8未満であり、または縦長さが8未満である変換ブロック)DCT-2以外の異なる1次変換(例えば、DST-7とDCT-8の組み合わせ)に対してもLFNSTが適用されることができるように映像情報が構成されることができる。
【0269】
前記例を一般化すると、変換ブロックの形状(M×N)毎にLFNSTと組み合わせ可能な1次変換のリストが各々異なるように構成されることができる。
【0270】
例えば、4×4変換ブロックに対する組み合わせ可能な1次変換リストは、(DCT-2、DCT-2)と(DST-7、DST-7)であり、8×16変換ブロックに対する組み合わせ可能な1次変換リストは、(DCT-2、DCT-2)と分離変換形態のKLTになることができる。
【0271】
LFNSTインデックスがMTSインデックスより先にシグナリングされる場合、LFNSTインデックスを介してLFNST適用可否が先に把握され、その後、現在の変換ブロック大きさを共に考慮してMTSインデックスのシグナリング可否が決定されることができる。ここで、MTSインデックスがシグナリングされない場合、(DCT-2、DCT-2)がデフォルトで適用されると見なされることができる。
【0272】
一方、MTSインデックスがLFNSTインデックスより先にシグナリングされる場合にはMTSインデックスを介してどのような1次変換が適用されるかが把握され、もちろん、MTSインデックスと関係なしに適用される1次変換が暗黙的に決定される場合もある。その後、現在の変換ブロック大きさを共に考慮してLFNSTインデックスのシグナリング可否が決定されることができる。ここで、LFNSTインデックスがシグナリングされない場合、LFNSTが適用されないと見なされることができる。
【0273】
または、他の例によって、1次変換によって異なるLFNSTセットリスト、LFNSTセット、LFNSTカーネルが適用されることができる。
【0274】
例えば、(DST-7、DST-7)に対してLFNSTが適用可能である場合、(DST-7、DCT-7)に特化されたLFNSTセットリスト、LFNSTセット、LFNSTカーネルを別途にトレーニングして既存LFNSTセットリスト、LFNSTセット、LFNSTカーネルでないトレーニングを介して導出されたLFNSTセットリスト、LFNSTセット、LFNSTカーネルを適用することができる。
【0275】
一方、前記例のようにブロック形状によって、LFNSTセットリストは、LFNST_4×4、LFNST_8×8、LFNST_16×16にグルーピングされることができる。これと類似するように、(DST-7、DST-7)と組み合わせられることができる別途のLFNSTセットリストもグルーピングされることができ、該当LFNSTセットリストは、LFNST_DST7_4×4、LFNST_DST7_8×8、LFNST_DST7_16×16のように命名できる。このとき、LFNST_DST7_4×4、LFNST_DST7_8×8、LFNST_DST7_16×16は、LFNST_4×4、LFNST_8×8、LFNST_16×16と比較した時、LFNSTセットの数、セット当たりLFNSTカーネル数、カーネルの次元などが各々異なるように構成されることができる。より一般化して1次変換または1次変換グループ毎に異なるLFNSTセットリスト、LFNSTセット、LFNSTカーネルが適用されると、該当LFNSTセットリスト、LFNSTセット、LFNSTカーネルの構成は各々異なることがある。
【0276】
実施例6:分離可能なLFNST適用
【0277】
一例によって、1次変換のようにLFNSTを分離変換形態で適用できる。すなわち、ROIに対して水平方向と垂直方向に各々LFNSTを適用することができる。
【0278】
例えば、ROIが変換ブロックの左上端P×Qブロックとした時、順方向LFNST基準に先に水平方向にP×P変換行列をQ個の行に適用した後、垂直方向にQ×Q変換行列をP個の列に適用できる。LFNSTの形態と適用方式のみが異なり(すなわち、水平方向変換と垂直方向変換で構成)、LFNSTセットリスト、LFNSTセット、セット当たりLFNSTカーネル数などの構成は、前述した非分離変換形態のLFNSTと同じ方式に構成されることができる。また、ブロック大きさ(M×N)毎に異なるROIが設定されることもできる。
【0279】
また、非分離変換形態のLFNSTを適用する時、ライン(line、変換係数の行または列)毎に同じLFNSTカーネルが適用されることもでき、各々異なるLFNSTカーネルが適用されることもできる。より一般化すると、ライン毎に各々異なるLFNSTセットリスト、LFNSTセット、LFNSTカーネルが適用されることができる。もちろん、イントラ予測モード(または、モードグループ)乃至コーディングツール別に異なるLFNSTセットが適用されることもできる。
【0280】
一例によって、分離変換形態のLFNSTは、ラインの長さによって(すなわち、4、8、16、32、64、128等)分類されることができる。非分離変換形態のLFNSTは、前述したようにブロック形状によってグルーピングでき(例えば、LFNST_4×4、LFNST_8×8、LFNST_16×16)、分離変換形態のLFNSTは、ラインの長さによってグルーピングできる。
【0281】
また、非分離変換形態のLFNSTは、2次元領域形態でROIが設定されたが、分離変換形態のLFNSTは、一ラインの部分集合(例えば、左側乃至上側から長さNほどのセグメント(segment))がROIとして設定されることができる。例えば、長さ4に対しては長さ4の上側セグメントまたは左側セグメントがROIとして設定されることができ、長さ8、16に対しては長さ8の上側セグメントまたは左側セグメントがROIとして設定されることができ、長さ32以上に対しては長さ16の上側セグメントまたは左側セグメントがROIとして設定されることができる。
【0282】
LFNSTセットリストを分ける方式もライン長さを基準に分類できる。例えば、ライン長さ毎にLFNSTセットリストが設定されることもでき(LFNST_4、LFNST_8、LFNST_16等)、ライン長さを基準にグルーピングしてLFNSTセットリストが設定されることもできる。前記例に対してはROIが長さ4、長さ8、長さ16、長さ32以上に設定された各場合を各々グループに設定し、該当グループ毎にLFNSTセットリストが設定されることができる(LFNST_4、LFNST_8、LFNST_32と命名可能)。各LFNSTセットリスト毎にLFNSTセットやLFNSTカーネルに対する構成などが個別的に設定されることができる。
【0283】
分離可能LFNSTに対する他の実施例として、水平方向または垂直方向のうちいずれか一つの方向に対してのみLFNSTが適用されることができる。水平方向と垂直方向のうち一つの方向に対して1次変換(変換スキップ(transform skip)でない変換、例えば、sine変換、コサイン変換、KLT)が適用された場合、該当方向に対してのみLFNSTが適用されることができる
【0284】
実施例7:インター予測にLFNSTを適用する方法
【0285】
一例によって、イントラ予測モードだけでなく、インター予測により生成されたレジデュアルデータに対しても1次変換適用以後LFNSTが適用されることができる。
【0286】
インター予測モードが適用される場合、適用されるインター予測モードに関係なしに同じLFNSTセットリスト乃至LFNSTセットが適用されることもでき、適用されるインター予測コーディングツール別に(例えば、VVCのCIIP、GPM等)異なるLFNSTセットリスト、異なるLFNSTセット、異なるLFNSTカーネルが適用されることも可能である。
【0287】
一つのLFNSTセットリストが複数個のLFNSTセットで構成されているため、インター予測モードである時、特定基準によって複数個のLFNSTセットの中からどのようなセットを選択するかを決定することができる。前記特定基準に現在適用されるインター予測コーディングツールのコーディングモード情報(例えば、GPMでのパーティション情報)などになることができる。
【0288】
また、一例によって、インター予測モードが適用される多くの場合、動きベクトルが存在するため、動きベクトル情報をLFNSTセット選択乃至LFNSTカーネル選択に活用できる。例えば、動きベクトルのx成分とy成分の符号によってLFNSTセット乃至LFNSTカーネルを選択することができる。より具体的に、x成分とy成分の符号が全て+である場合は、1番目の「LFNSTセット及びLFNSTカーネル」が選択され、x成分が+であり、かつy成分の符号が-である場合は、2番目の「LFNSTセット及びLFNSTカーネル」が選択されることができる。
【0289】
もし、LFNSTセットが複数個のLFNSTカーネルで構成された場合、LFNSTセットは、前記特定基準を適用して選択されることができる。そして、イントラ予測モードに適用されたように、LFNSTインデックスをシグナリングすることで、選択されたLFNSTセットを構成するLFNSTカーネルのうちどのようなLFNSTカーネルを適用するかを指定することができる。
【0290】
一例によって、インター予測モードの場合にはイントラ予測モードと異なるROIが設定されることができる。インター予測モードの場合、1次変換を適用した時、0でない変換係数が一般的にイントラ予測モードより少なく発生する。インター予測モードに対してはROIをイントラ予測モードより小さく設定することができる。例えば、ブロック形状及び大きさと関係なしにROIを常に左上端4×4領域に設定できる。
【0291】
一例によって、インター予測モードに適用されるLFNSTも、イントラ予測モードのようにブロック形状及び大きさを基準にグルーピングされ、グループ毎にLFNSTセットリストを異なるように構成できる。例えば、イントラ予測モードと類似の方式にLFNSTをグルーピングしてLFNST_4×4、LFNST_8×8、LFNST_16×16をLFNSTセットリストに設定し、LFNSTセットリスト毎にLFNSTセット、セット当たりLFNSTカーネル数、LFNSTカーネルの行列次元などを異なるように設定できる。
【0292】
一例によって、順方向LFNSTを基準とした時、インター予測モードである場合、LFNST出力変換係数の個数をイントラ予測モードより小さく設定できる。例えば、インター予測モードに対するLFNST_4×4の場合、順方向LFNST基準に16×16変換行列の代わりに8×16変換行列を適用して出力変換係数の個数を減らすことができる。LFNSTセットリスト(LFNST_4×4、LFNST_8×8、LFNST_16×16)によってLFNST出力変換係数の数を異なるように設定でき、出力変換係数の数とROIによって該当LFNSTカーネル行列の次元が決定されることができる。
【0293】
また、一例によってインター予測モードに適用されるLFNSTの場合、VVC標準のLFNSTのように、ROI外部に存在する変換係数は(該当変換係数は、LFNSTが適用されない1次変換のみを介して求められた変換係数である)、全てゼロアウトされることもあり、ゼロアウトされないこともある。
【0294】
VVC標準ではインター予測モードが適用される時、コーディングブロックの分割されたサブブロックに変換を適用するSBT(subblock transform)が適用されることができる。SBTが適用される場合、全体レジデュアルブロックの一部(すなわち、半分または1/4)に対してのみレジデュアルデータを残し、残りはゼロアウト(zero-out)されたと見なされる。したがって、レジデュアルデータが残されたパーティションブロックに対してのみ1次変換が適用されることができるため、LFNSTも該当パーティションブロックに対してのみ適用されることができる。
【0295】
実施例8:ブロック大きさ及び変換係数パターンによってLFNST適用条件を変更する方法
【0296】
VVC標準では一つのコーディングブロックを構成する変換ブロックに対して、一つの変換ブロックのみでもDC位置でない位置に0でない変換係数が存在する場合にのみLFNSTが適用されることができるように制限している(但し、例外場合として、ISPモードが適用される場合には前記制限条件が適用されない)。すなわち、少なくとも一つの変換ブロックにDC位置でない位置に0でない変換係数が存在する場合にのみLFNSTが適用されることができる。
【0297】
一例によって、前記条件は、LFNSTセットリストによって異なるように適用されることもでき、変形された形態で適用されることもできる。関連した実施例を羅列してみると、下記の通りである。
【0298】
1.4×N/N×4(N≧4)変換ブロックに対してはVVC標準と同じくDC位置以外の位置に0でない変換係数が存在する場合にのみLFNSTが適用されるように構成できる。それ以外の変換ブロック(すなわち、横長さと縦長さが両方とも8より大きいまたは同じ変換ブロック)に対してはDC位置から始めてN番目までの(N≧2)位置以外の位置に0でない変換係数が存在する場合にのみLFNSTが適用されるように構成できる。
【0299】
より一般化してどのような特定領域でない領域、または特定領域に0でない変換係数が存在するかどうかによってLFNSTが適用されるように制限できる。例えば、特定領域は、左上端P×Q領域であり(例えば、P=Q=2)、または左上端P×Q領域でない領域になることができる。または、特定領域は、前記例示のようにスキャン順序基準にDC位置からN番目の位置までの領域であり、またはN番目の位置以後の領域である。
【0300】
2.LFNSTセットリストによって1番で説明した特定領域は、変わることができ、1番で提示した例は、このような構成に対する一つの実施例であると見ることができる。
【0301】
LFNSTセットリストがLFNST_4×4、LFNST_8×8、LFNST_16×16で構成される場合、LFNST_4×4に対しては1番で提示した特定領域が左上端1×1領域またはDC位置からの1番目の位置までの領域になることができ、LFNST_8×8に対しては特定領域が左上端2×2領域またはDC位置からの2番目の位置までの領域になることができる。LFNST_16×16に対しては特定領域が2×2領域またはDC位置からの3番目の位置までの領域になることができる。
【0302】
3.1番で提示した特定領域は、任意の形状を有する領域であり、または特定位置の集合で構成された領域になることができる。例えば、スキャン順序を基準とした時、該当集合は、1番目、3番目、5番目のスキャン順序位置で構成されることができる。
【0303】
または、一例によって、変数xによって導出される関数値(y=f(x))によってLFNSTカーネルを選択することができる。特定位置に存在する(例えば、スキャン順序によって8番目まで存在する)変換係数に対して0でない値が存在するかどうかを示すベクトルまたは変換係数のベクトル(または、絶対値ベクトル)を変数xに設定できる。このようなxを入力して任意の関数y=f(x)を通過させた後、y値によってLFNSTを適用するかどうかまたはどのようなLFNSTカーネルが選択されるかなどが決定されることができる。
【0304】
ここで、f(x)は、ベクトルxを構成する成分(element)に対する線形組み合わせになることができる。例えば、f(x)=wTxにおけるベクトルwは、線形組み合わせに対する加重値(weight)のベクトルまたはアフィン(affine)関数(すなわち、線形組み合わせにバイアス(bias)が加えられた形態)である。
【0305】
y値によってLFNST適用可否などを決定することができる。例えば、y値がある閾値より小さい場合、LFNSTが適用されずに(適用され)、該当閾値値より大きい場合、LFNSTが適用されるように(適用されないように)設定されることができる。また、閾値と比較して小さいかまたは大きいかによって候補LFNSTカーネルの中から一つが選択されるように設定されることもできる。
【0306】
実施例9:カラー成分(Color component)によるLFNST適用方法
【0307】
VVC標準ではコーディングユニットのツリータイプがシングルツリー(single tree)である時は、ルマ成分に対してのみLFNSTが適用され、分離ツリー(separate tree)、すなわち、デュアルツリー(dual tree)である場合、ルマ成分に対する分離ツリー(デュアルツリールマ)である時は、ルマ成分にLFNSTが適用され、クロマ成分に対する分離ツリー(デュアルツリークロマ)である時は、クロマ成分にLFNSTが適用される。
【0308】
VVC標準とは違って一実施例によると、LFNSTをルマ成分にのみ適用できる。ルマ成分にのみLFNSTを適用すると、シングルツリーではVVC標準のようにルマ成分に対してのみLFNSTを適用し、クロマ成分にはLFNSTを適用しないため、LFNSTインデックスは、ルマ成分に適用されたLFNSTカーネルのみを指示するようになる。ルマ成分にのみLFNSTが適用される場合、クロマ成分に対する分離ツリーである時は、LFNSTが適用されないため、LFNSTインデックスもシグナリングされない(LFNSTインデックスがシグナリングされない場合、デフォルトでLFNSTが適用されないと仮定されることができる)。
【0309】
または、他の実施例によって、VVC標準とは違ってシングルツリーである時、ルマ成分とクロマ成分の両方ともにLFNSTが適用されることができる。この場合、二つの方法で具現可能である。すなわち、1)一つのLFNSTインデックスをシグナリングすることで、ルマ成分とクロマ成分の両方ともに対して該当LFNSTカーネルを選択することができるように映像情報を構成し、2)ルマ成分とクロマ成分に対して個別的なLFNSTインデックスがシグナリングされるように映像情報を構成することで、各成分に最も適したLFNSTカーネルが選択されるようにすることができる。
【0310】
シングルツリーである時、ルマ成分とクロマ成分に対して個別的にLFNSTインデックスがシグナリングされるように映像情報が構成される場合、ルマ成分とクロマ成分に対するLFNSTセットリスト、LFNSTセット、LFNSTカーネルを異なるように構成できる。
【0311】
シングルツリーである時、ルマ成分とクロマ成分に対するLFNSTセットリスト、LFNSTセット、LFNSTカーネルが各々異なるように設定されており、一つのLFNSTインデックスをシグナリングしてルマ成分とクロマ成分に対するLFNSTカーネルを選択する場合、シグナリングされる一つのLFNSTインデックスにより指定されるルマ成分とクロマ成分に対するLFNSTカーネルは、各々異なるLFNSTセットリスト、LFNSTセットから選択されるため、異なることがある。
【0312】
一方、VVC標準ではルマ成分とクロマ成分に対して同じLFNSTセットリストを適用している。
【0313】
一実施例によると、VVC標準とは違ってルマ成分とクロマ成分に対して異なるLFNSTセットリスト、異なるLFNSTセット、異なるLFNSTカーネルが適用されることができる。または、一実施例によって、全てのカラー成分に対しても異なるLFNSTセットリスト、異なるLFNSTセット、異なるLFNSTカーネルを適用することもできる。例えばY、Cb、Crに各々異なるLFNSTセットリストが適用されることができる。また、異なるカラーフォーマットが適用される場合(例えば、YUV4:2:2、YUV4:4:4、RGB4:4:4)、該当するカラーフォーマットに対して各々異なるLFNSTセットリスト、異なるLFNSTセット、異なるLFNSTカーネルが適用されることができる。より具体的な例示として、RGB4:4:4フォーマットである場合、R成分、G成分、B成分に対して各々異なるLFNSTセットリスト、異なるLFNSTセット、異なるLFNSTカーネルが適用されることができる。もちろん、三つの成分に対して同じLFNSTセットリスト、LFNSTセット、LFNSTカーネルを適用するように構成することもできる。
【0314】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されるものではない。
【0315】
図17は、本文書の一実施例に係るビデオデコーディング装置の動作を示す流れ図である。
【0316】
図17に開示された各ステップは、
図5乃至
図16で詳述された内容のうち一部に基づいたものである。したがって、
図3、
図5乃至
図16で詳述された内容と重複する具体的な内容は、説明を省略し、または簡単にする。
【0317】
一実施例に係るデコーディング装置300は、ビットストリームから対象ブロックに対するレジデュアル情報を受信することができる(S1710)。対象ブロックは、コーディングまたは変換の対象となるコーディングブロックまたは変換ブロックである。
【0318】
デコーディング装置は、レジデュアル情報から量子化された変換係数に対する情報を取得することができ、映像デコーディングのための多様な情報を受信することができる。より具体的に、デコーディング装置300は、ビットストリームから対象ブロックに対する量子化された変換係数に関する情報をデコーディングすることができ、対象ブロックに対する量子化された変換係数に関する情報に基づいて対象ブロックに対する量子化された変換係数を導出することができる。
【0319】
また、対象ブロックに適用されるLFNSTに対する情報も受信されることができ、LFNSTに対する情報は、SPS(Sequence Parameter Set)またはスライスヘッダ(slice header)に含まれることができる。このような情報は、LFNSTが適用されるかどうかに対する情報、LFNSTを適用する最小変換サイズに対する情報、LFNSTを適用する最大変換サイズに対する情報、変換セットに含まれている変換カーネルのうちいずれか一つを指示する変換インデックスに対する情報のうち少なくとも一つを含むことができる。
【0320】
一実施例に係るデコーディング装置300は、レジデュアル情報に基づいて対象ブロックに対する変換係数を導出することができる(S1720)。デコーディング装置は、対象ブロックに対する量子化された変換係数に対して逆量子化を実行して変換係数を導出することができる。
【0321】
導出された変換係数は、4×4サブブロック単位で逆方向対角スキャン順序によって配列されることができ、4×4サブブロック内の変換係数も逆方向対角スキャン順序によって配列されることができる。すなわち、逆量子化が実行された変換係数は、VVCやHEVCのようなビデオコーデックで適用されている逆方向スキャン順序によって配置されることができる。
【0322】
一実施例に係るデコーディング装置300は、変換係数に対する逆2次変換に基づいて修正された変換係数を導出することができる(S1730)。
【0323】
本文書による場合、逆2次変換は、LFNST、すなわち、RSTが反映された非分離2次変換を含むことができ、逆2次変換は、LFNSTカーネルに基づいて実行されることができ、LFNSTカーネルは、列の個数が行の個数より少ない非正方形マトリックスでありうる。
【0324】
修正された変換係数を導出するステップは、順方向対角スキャニング順序によって変換係数を整列して入力アレイを導出するステップと、入力アレイと変換カーネルのマトリックス演算を介して入力される変換係数より多い個数の修正された変換係数を導出するステップと、修正された変換係数を出力領域に配列するステップと、を含むことができる。
【0325】
本文書による場合、既存のVVC標準とは違って、16×16より大きい変換ブロックの左上端16×16領域にLFNSTが適用されることができる。一例として、左上端16×16内の6個の4×4サブブロックからなる96個のサンプルに対する領域にLFNSTが適用されることができる。すなわち、対象ブロックの左上端16×16領域に属する一部変換係数、すなわち、入力アレイに基づいて変換係数より多い個数の修正された変換係数を導出することができる。一例によって、デコーディング装置は、対象ブロックの左上端領域のR個の変換係数に基づいてL個(48<L≦96)の修正された変換係数を導出することができ、導出されたL個(48<L≦96)の修正された変換係数は、所定の出力領域に配列されることができる。Rは、Lより小さい。
【0326】
入力アレイを構成する入力変換係数の個数R及び出力領域に配列される出力変換係数の個数Lは、変換カーネルの次元によって変更されることができる。一例によって、Rは16、32、48、80などになり、Lは64または96になることができる。
【0327】
一例によって、入力アレイは、対象ブロックのDC位置から順方向対角スキャニング順序に配列されることができる4×4サブブロック単位で整列され、4×4サブブロック内の順方向対角スキャニング順序によって整列されることができる。したがって、入力アレイを構成する変換係数の個数であるRは、4×4サブブロック内の変換係数の個数である16の倍数に設定されることができる。
【0328】
出力領域は、エンコーディング装置で2次変換を実行するために入力された入力変換係数の領域を意味するため、デコーディング装置で逆2次変換を実行する場合、出力変換係数が配列される領域を意味することができる。出力領域は、前述された図面を参考して説明されたROIに対応されることができる。
【0329】
一例によって、出力領域は、
図8乃至
図10のように対象ブロックのDC位置からスキャニング順序によって配列されることができる複数の4×4サブブロックで構成されることができる。また、出力領域は、対象ブロックのDC位置から所定の順序によって配列されることができる複数のp×qサブブロックで構成されることができる。または、出力領域は、対象ブロックの左上端m×nブロック(m≦M、n≦N)であり、
図11のように非正方形形態を有することもできる。
【0330】
または、他の例によって、出力領域は、四角形態でないより複雑でかつ不規則的な形状であり、例えば、対象ブロックのDC位置から同じ距離に離隔されているラインで構成された扇形領域を含むこともできる。変換係数は、DC位置を中心に密集されている確率が高いため、出力領域は、DC位置から一定の距離に離隔されている変換係数の集合に設定されることができる。
【0331】
修正された変換係数は、対象ブロックのイントラ予測モードによって行優先方向または列優先方向のうちいずれか一つの順序に基づいて出力領域に配列されることができる。対象ブロックに適用されることができるイントラ予測モードが65個の方向性モードのうちいずれか一つであり、イントラ予測モードが左上端対角線方向のイントラ予測モード34番モードを中心に対称であり、対象ブロックに適用されるイントラ予測モードがイントラ予測モード34番モードを基準に左側方向の2番乃至前記34番モードである場合、修正された変換係数は、行優先方向順序によって出力領域に2次元配列されることができる。もし、対象ブロックに適用されるイントラ予測モードがイントラ予測モード34番モードを基準に右側方向の35番乃至前記66番モードである場合、修正された変換係数は、列優先方向順序によって2次元配列されることができる。また、対象ブロックに適用されるイントラ予測モードがプラナーモードまたはDCモードである場合、修正された変換係数は、行優先方向順序によって出力領域に2次元配列されることができる。
【0332】
一方、修正された変換係数を導出するステップは、変換のための変換カーネルを導出するステップを含むことができ、変換カーネルは、対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出されることができる。
【0333】
変換セットは、表2のようにイントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成されることができる。変換セットを構成する変換カーネルのうちいずれかをLFNSTに適用するかは、変換インデックスから指示されることができる。
【0334】
一方、対象ブロックの大きさに基づいて逆2次変換の大きさが設定されることができ、このような逆2次変換の大きさに基づいて変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることができる。
【0335】
対象ブロックの横及び縦の長さが両方とも4より大きいまたは同じであり、横または縦の長さが4であることに基づいて、逆2次変換の大きさは、第1の値に設定されることができる。例えば、第1の値は2に設定されることができる。逆2次変換の大きさが2であることは、対象ブロックの左上端4×4領域にLFNSTが適用されることであり、前述されたLFNST_4×4に対応されることができる。
【0336】
または、対象ブロックの横及び縦の長さが両方とも8より大きいまたは同じであり、横または縦の長さが8であることに基づいて、逆2次変換の大きさは、第2の値に設定されることができる。例えば、第2の値は3に設定されることができる。逆2次変換の大きさが3であることは、対象ブロックの左上端8×8領域にLFNSTが適用されることであり、前述されたLFNST_8×8に対応されることができる。
【0337】
または、対象ブロックの横及び縦の長さが両方とも16より大きいまたは同じであることに基づいて、逆2次変換の大きさは、第3の値に設定されることができる。例えば、第3の値は4に設定されることができる。逆2次変換の大きさが4であることは、対象ブロックの左上端16×16領域にLFNSTが適用されることであり、前述されたLFNST_16×16に対応されることができる。
【0338】
逆2次変換の大きさ、すなわち、LFNSTが適用される大きさによるグルーピングに基づいて対象ブロックに適用される変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることができる。すなわち、変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元などは、逆2次変換の大きさまたは対象ブロックの大きさに対応して多様に設定及び構成されることができる。
【0339】
例えば、逆2次変換の大きさが2であることに基づいて、変換カーネルの次元は、16×16に設定されることができる。また、逆2次変換の大きさが3であることに基づいて、変換カーネルの次元は、48×Rまたは64×Sに設定されることができ、このとき、Rは16、32、48のうちいずれか一つに設定され、Sは16、32、48、64のうちいずれか一つに設定されることができる。また、逆2次変換の大きさが4であることに基づいて、変換カーネルの次元は、96×R、64×Sまたは48×Tのうちいずれか一つに設定され、Rは16、32、48、64、80、96のうちいずれか一つに設定され、Sは16、32、48、64のうちいずれか一つに設定され、Tは16、32、48のうちいずれか一つに設定されることができる。
【0340】
一方、一例によって、DC位置以外の領域(特定領域)に変換係数が存在する場合のみLFNSTが実行される条件で、特定領域は、既存VVC標準と異なるように設定されることができる。特定領域は、逆2次変換の大きさまたは対象ブロックの大きさによって多様な領域に設定されることができる。
【0341】
一方、一例によって、対象ブロックのツリータイプがシングルツリーであることに基づいて、対象ブロックのルマ成分及びクロマ成分に逆2次変換、すなわち、LFNSTが実行されることができる。または、他の例によって、対象ブロックのツリータイプがデュアルツリーである場合、クロマブロックにはLFNSTが実行されない。
【0342】
S1730を参照すると、対象ブロックに対する変換係数に対するLFNSTに基づいて対象ブロックに対するレジデュアルサンプルが導出されることを確認することができる。逆変換マトリックスのサイズ観点で検討すると、通常の逆変換マトリックスのサイズはN×Nであり、LFNSTカーネルのサイズはN×Rに減少するため、通常の変換を実行する時と比較すると、LFNSTを実行するとき、メモリ使用をR/N割合で減少させることができる。また、通常の逆変換マトリックスを利用する時の掛け算演算数N×Nと比較すると、LFNSTカーネルをする場合、掛け算演算数をR/N割合で減少(N×R)させることができる。併せて、LFNSTを適用する時、R個の変換係数のみをデコーディングすればよいため、通常の逆変換が適用される時、N個の変換係数をデコーディングしなければならないことと比較すると、対象ブロックに対する変換係数の総個数がN個からR個に減少してコーディング効率が増加できる。整理すれば、S1730によると、LFNSTを介してデコーディング装置300の(逆)変換効率及びコーディング効率が増加できる。
【0343】
一実施例に係るデコーディング装置300は、修正された変換係数に対する逆1次変換に基づいて対象ブロックに対するレジデュアルサンプルを導出することができる(S1740)。
【0344】
デコーディング装置300は、対象ブロックに対する修正された変換係数に対して逆1次変換を実行することができ、このとき、逆1次変換は、簡素化逆変換が適用されることもでき、通常的な分離変換が使われることもできる。
【0345】
一実施例によって、逆1次変換としてDST-7、DCT-8またはKLT(Karhunen Loeve Transform)などが適用された対象ブロックにもLFNSTが適用されることができる。
【0346】
または、一例によって、水平方向変換または垂直方向変換に変換スキップが適用された対象ブロックにもLFNSTが適用されることができる。
【0347】
逆1次変換に適用される変換カーネル(DCT-2、DST-7、DCT-8等)または変換カーネルの組み合わせによって、変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元などに対する多様な組み合わせ設計が可能である。
【0348】
一実施例に係るデコーディング装置300は、対象ブロックに対するレジデュアルサンプル及び対象ブロックに対する予測サンプルに基づいて復元ピクチャを生成することができる(S1750)。
【0349】
本文書の一例による場合、イントラ予測だけでなく、インター予測に基づいて予測サンプルが導出された対象ブロックにもLFNSTが適用されることができる。動き情報、動きベクトルの特徴などによって、変換セット、変換カーネルなどが多様に設計されることができる。
【0350】
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるため、本明細書の技術的特徴が以下の図面に使われた具体的な名称に制限されるものではない。
【0351】
図18は、本文書の一実施例に係るビデオエンコーディング装置の動作を示す流れ図である。
【0352】
図18に開示された各ステップは、
図5乃至
図16で詳述された内容のうち一部に基づいたものである。したがって、
図2及び
図5乃至
図16で詳述された内容と重複する具体的な内容は、説明を省略し、または簡単にする。
【0353】
一実施例に係るエンコーディング装置200は、対象ブロックに適用される予測モードに基づいて予測サンプルを導出することができる(S1810)。
【0354】
本文書の一例による場合、イントラ予測だけでなく、インター予測に基づいて予測サンプルが導出された対象ブロックにもLFNSTが適用されることができる。動き情報、動きベクトルの特徴などによって、後述される変換セット、変換カーネルなどが多様に設計されることができる。
【0355】
一実施例に係るエンコーディング装置200は、予測サンプルに基づいて対象ブロックに対するレジデュアルサンプルを導出することができる(S1820)。
【0356】
一実施例に係るエンコーディング装置200は、レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出することができる(S1830)。
【0357】
1次変換は、複数の変換カーネルを介して実行されることができ、この場合、イントラ予測モードに基づいて変換カーネルが選択されることができる。
【0358】
1次変換は、簡素化逆変換が適用されることもでき、通常的な分離変換が使われることもできる。
【0359】
1次変換としてDCT-2、DST-7、DCT-8またはKLT(Karhunen Loeve Transform)などが適用されることができ、本文書の一実施例によって、1次変換としてDCT-2でないDST-7、DCT-8またはKLTなどが適用された対象ブロックにもLFNSTが適用されることができる。
【0360】
または、一例によって、水平方向変換または垂直方向変換に変換スキップが適用された対象ブロックにもLFNSTが適用されることができる。
【0361】
1次変換に適用される変換カーネル(DCT-2、DST-7、DCT-8等)または変換カーネルの組み合わせによって、LFNSTに適用される変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元などに対する多様な組み合わせ設計が可能である。
【0362】
一実施例に係るエンコーディング装置200は、変換係数に対する2次変換に基づいて対象ブロックに対する修正された変換係数を導出することができる(S1840)。
【0363】
本文書による場合、2次変換は、LFNST、すなわち、RSTが反映された非分離2次変換を含むことができ、2次変換は、LFNSTカーネルに基づいて実行されることができ、LFNSTカーネルは、行の個数が列の個数より少ない非正方形マトリックスである。
【0364】
本文書による場合、既存のVVC標準とは違って、16×16より大きい変換ブロックの左上端16×16領域にLFNSTが適用されることができる。一例として、左上端16×16内の6個の4×4サブブロックからなる96個のサンプルに対する領域にLFNSTが適用されることができる。すなわち、対象ブロックの左上端16×16領域に属する一部変換係数に基づいて変換係数より少ない個数の修正された変換係数を導出することができる。一例によって、エンコーディング装置は、対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、対象ブロックの左上端領域のL個(48<L≦96)の変換係数に基づいてR個の修正された変換係数を導出することができる。導出されたR個の修正された変換係数は、所定のスキャニング順序によって出力アレイで導出されることができる。Rは、Lより小さい。
【0365】
エンコーディング装置で2次変換の対象となる入力変換係数の領域を意味する入力領域は、デコーディング方法で説明された出力領域及び前述された図面を参考して説明されたROIに対応されることができる。したがって、ROIに対する重複した説明は省略する。
【0366】
入力領域に配列される入力変換係数の個数L及びマトリックス演算を介して導出された修正された変換係数の個数Rは、変換カーネルの次元によって変更されることができる。一例によって、Rは16、32、48、80などになり、Lは64または96になることができる。
【0367】
一例によって、修正された変換係数は、対象ブロックのDC位置から順方向対角スキャニング順序に配列されることができる4×4サブブロック単位で整列され、4×4サブブロック内の順方向対角スキャニング順序によって整列されることができる。したがって、修正された変換係数の個数であるRは、4×4サブブロック内の変換係数の個数である16の倍数に設定されることができる。
【0368】
修正された変換係数を導出するステップは、変換のための変換カーネルを導出するステップを含むことができ、変換カーネルは、対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出されることができる。
【0369】
変換セットは、表2のようにイントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成されることができる。変換セットを構成する変換カーネルのうちいずれかをLFNSTに適用するかは、変換インデックスでエンコーディングされることができる。
【0370】
一方、対象ブロックの大きさに基づいて2次変換の大きさが設定されることができ、このような2次変換の大きさに基づいて、変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることができる。
【0371】
対象ブロックの横及び縦の長さが両方とも4より大きいまたは同じであり、横または縦の長さが4であることに基づいて、2次変換の大きさは、第1の値に設定されることができる。例えば、第1の値は2に設定されることができる。2次変換の大きさが2であることは、対象ブロックの左上端4×4領域にLFNSTが適用されることであって、前述されたLFNST_4×4に対応されることができる。
【0372】
または、対象ブロックの横及び縦の長さが両方とも8より大きいまたは同じであり、横または縦の長さが8であることに基づいて、2次変換の大きさは、第2の値に設定されることができる。例えば、第2の値は3に設定されることができる。2次変換の大きさが3であることは、対象ブロックの左上端8×8領域にLFNSTが適用されることであって、前述されたLFNST_8×8に対応されることができる。
【0373】
または、対象ブロックの横及び縦の長さが両方とも16より大きいまたは同じであることに基づいて、2次変換の大きさは、第3の値に設定されることができる。例えば、第3の値は4に設定されることができる。2次変換の大きさが4であることは、対象ブロックの左上端16×16領域にLFNSTが適用されることであって、前述されたLFNST_16×16に対応されることができる。
【0374】
2次変換の大きさ、すなわち、LFNSTが適用される大きさによるグルーピングに基づいて、対象ブロックに適用される変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出されることができる。すなわち、変換セットの個数、変換セットを構成する変換カーネルの個数及び変換カーネルの次元などは、2次変換の大きさまたは対象ブロックの大きさに対応して多様に設定及び構成されることができる。
【0375】
例えば、2次変換の大きさが2であることに基づいて、変換カーネルの次元は16×16に設定されることができる。また、2次変換の大きさが3であることに基づいて、変換カーネルの次元はR×48またはS×64に設定されることができ、このとき、Rは16、32、48のうちいずれか一つに設定され、Sは16、32、48、64のうちいずれか一つに設定されることができる。また、2次変換の大きさが4であることに基づいて、変換カーネルの次元はR×96、S×64またはT×48のうちいずれか一つに設定され、Rは16、32、48、64、80、96のうちいずれか一つに設定され、Sは16、32、48、64のうちいずれか一つに設定され、Tは16、32、48のうちいずれか一つに設定されることができる。
【0376】
一方、一例によって、DC位置以外の領域(特定領域)に変換係数が存在する場合のみLFNSTが実行される条件で、特定領域は、既存VVC標準と異なるように設定されることができる。特定領域は、逆2次変換の大きさまたは対象ブロックの大きさによって多様な領域に設定されることができる。
【0377】
一方、一例によって、対象ブロックのツリータイプがシングルツリーであることに基づいて、対象ブロックのルマ成分及びクロマ成分に2次変換、すなわち、LFNSTが実行されることができる。または、他の例によって、対象ブロックのツリータイプがデュアルツリーである場合、クロマブロックにはLFNSTが実行されない。
【0378】
S1840を参照すると、レジデュアルサンプルに対するLFNSTに基づいて対象ブロックに対する変換係数が導出されることを確認することができる。変換カーネルマトリックスのサイズ観点で検討すると、通常の変換カーネルマトリックスのサイズはN×Nであり、LFNSTカーネルのサイズはR×Nに減少するため、通常の変換を実行する時と比較すると、LFNSTを実行するとき、メモリ使用をR/N割合で減少させることができる。また、通常の変換カーネルマトリックスを利用する時の掛け算演算数N×Nと比較すると、LFNSTカーネルをする場合、掛け算演算数をR/N割合で減少(R×N)させることができる。併せて、LFNSTが適用される時、R個の変換係数のみが導出されるため、通常の変換が適用される時、N個の変換係数が導出されることと比較すると、対象ブロックに対する変換係数の総個数がN個からR個に減少し、エンコーディング装置200がデコーディング装置300に送信するデータの量が減少できる。整理すれば、S1840によると、RSTを介してエンコーディング装置200の変換効率及びコーディング効率が増加できる。
【0379】
一実施例に係るエンコーディング装置200は、対象ブロックに対するレジデュアル情報を含む映像情報をエンコーディングすることができる(S1850)。
【0380】
エンコーディング装置は、修正された変換係数に基づいて量子化を実行して量子化された変換係数を導出し、量子化された変換係数に関するレジデュアル情報を生成及びエンコーディングできる。レジデュアル情報は、前述した変換関連情報/シンタックス要素を含むことができる。エンコーディング装置は、レジデュアル情報を含む映像/ビデオ情報をエンコーディングしてビットストリーム形態で出力できる。
【0381】
また、エンコーディング装置は、対象ブロックに適用されたLFNSTに対する情報もエンコーディングでき、LFNSTに対する情報は、SPS(Sequence Parameter Set)またはスライスヘッダ(sliceheader)に含まれることができる。このような情報は、LFNSTが適用されるかどうかに対する情報、LFNSTを適用する最小変換サイズに対する情報、LFNSTを適用する最大変換サイズに対する情報、変換セットに含まれている変換カーネルのうちいずれか一つを指示する変換インデックスに対する情報のうち少なくとも一つを含むことができる。
【0382】
本文書において、量子化/逆量子化及び/又は変換/逆変換のうち少なくとも一つは省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアルサンプルと呼ばれることもでき、または表現の統一性のために変換係数と依然として呼ばれることもできる。
【0383】
また、本文書において、量子化された変換係数及び変換係数は、それぞれ変換係数及びスケーリングされた(scaled)変換係数と指称され得る。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、前記変換係数に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(又は前記変換係数に関する情報)に基づいて変換係数が導出でき、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出できる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいて、レジデュアルサンプルが導出できる。これは、本文書の別の部分でも同様に適用/表現できる。
【0384】
前述した実施例において、方法は、一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、本文書は、ステップの順序に限定されるわけではなく、あるステップは、前述したところと異なるステップと異なる順序で、又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、別のステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本文書の範囲に影響を与えずに削除され得ることを理解することができる。
【0385】
前述した本文書に係る方法は、ソフトウェアの形態で具現されることができ、本文書に係るエンコード装置及び/又はデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置等の画像処理を行う装置に含まれ得る。
【0386】
本文書において、実施例がソフトウェアで具現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能等)で具現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて実行されることができる。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて実行されることができる。
【0387】
また、本文書が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、オーダーメイド型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置等に含まれ得、ビデオ信号又はデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)等を含み得る。
【0388】
また、本文書が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に格納されることができる。本文書に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に格納されることができる。前記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取ることができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学的データ格納装置を含み得る。また、前記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取ることができる記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
【0389】
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として具現されることができる。
【手続補正書】
【提出日】2023-10-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーディング装置により実行される映像デコーディング方法において、
ビットストリームから対象ブロックに対するレジデュアル情報を受信するステップと、
前記レジデュアル情報に基づいて前記対象ブロックに対する変換係数を導出するステップと、
前記変換係数に対して逆2次変換に基づいて修正された変換係数を導出するステップと、
前記修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップと、
前記対象ブロックに対する前記レジデュアルサンプルに基づいて復元ピクチャを生成するステップと、を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の出力領域にL個(48<L≦96)の修正された変換係数が配列される、映像デコーディング方法。
【請求項2】
前記修正された変換係数を導出するステップは、
順方向対角スキャニング順序によって前記変換係数を整列して入力アレイを導出するステップと、
前記入力アレイと変換カーネルのマトリックス演算を介して前記変換係数より多い個数の修正された変換係数を導出するステップと、
前記修正された変換係数を前記出力領域に配列するステップと、を含み、
前記修正された変換係数は、前記対象ブロックのイントラ予測モードによって行優先方向または列優先方向のうちいずれか一つの順序に基づいて前記出力領域に配列される、請求項1に記載の映像デコーディング方法。
【請求項3】
前記出力領域は、前記対象ブロックのDC位置からスキャニング順序によって配列されることができる複数の4×4サブブロックで構成される、請求項2に記載の映像デコーディング方法。
【請求項4】
前記出力領域は、前記対象ブロックのDC位置から所定の順序によって配列されることができる複数のp×qサブブロックで構成される、請求項2に記載の映像デコーディング方法。
【請求項5】
前記出力領域は、前記対象ブロックの左上端m×nブロック(m≦M、n≦N)である、請求項2に記載の映像デコーディング方法。
【請求項6】
前記出力領域は、前記対象ブロックのDC位置から同じ距離に離隔されているラインで構成された扇形領域を含む、請求項2に記載の映像デコーディング方法。
【請求項7】
前記入力アレイは、R個の変換係数を含み、
前記Rは、Lより小さい16の倍数である、請求項2に記載の映像デコーディング方法。
【請求項8】
前記入力アレイは、前記対象ブロックのDC位置から前記順方向対角スキャニング順序に配列されることができる4×4サブブロック単位で整列され、前記4×4サブブロック内の前記順方向対角スキャニング順序によって整列される、請求項2に記載の映像デコーディング方法。
【請求項9】
前記修正された変換係数を導出するステップは、2次変換に適用される前記変換カーネルを導出するステップを含み、
前記変換カーネルは、前記対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出され、
前記変換セットは、前記イントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成され、
前記対象ブロックの大きさに基づいて前記逆2次変換の大きさが設定され、
前記逆2次変換の大きさに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出される、請求項2に記載の映像デコーディング方法。
【請求項10】
前記対象ブロックの横及び縦の長さが両方とも4より大きいまたは同じであり、横または縦の長さが4であることに基づいて、前記逆2次変換の大きさは、第1の値に設定され、
前記対象ブロックの横及び縦の長さが両方とも8より大きいまたは同じであり、横または縦の長さが8であることに基づいて、前記逆2次変換の大きさは、第2の値に設定され、
前記対象ブロックの横及び縦の長さが両方とも16より大きいまたは同じであることに基づいて、前記逆2次変換の大きさは、第3の値に設定される、請求項9に記載の映像デコーディング方法。
【請求項11】
前記逆2次変換の大きさが前記第1の値であることに基づいて、前記変換カーネルの次元は16×16に設定され、
前記逆2次変換の大きさが前記第2の値であることに基づいて、前記変換カーネルの次元は48×Rまたは64×Sに設定され、Rは16、32、48のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、
前記逆2次変換の大きさが前記第3の値であることに基づいて、前記変換カーネルの次元は96×R、64×Sまたは48×Tのうちいずれか一つに設定され、Rは16、32、48、64、80、96のうちいずれか一つであり、Sは16、32、48、64のうちいずれか一つであり、Tは16、32、48のうちいずれか一つである、請求項10に記載の映像デコーディング方法。
【請求項12】
前記逆1次変換にDST-7、DCT-8またはKLT(Karhunen Loeve Transform)のうちいずれか一つが適用される、請求項1に記載の映像デコーディング方法。
【請求項13】
前記修正された変換係数を導出するステップは、2次変換に適用される変換カーネルを導出するステップを含み、
前記変換カーネルは、前記対象ブロックに適用されるイントラ予測モードに基づいて導出される変換セットに基づいて導出され、
前記変換セットは、前記イントラ予測モードとのマッピング関係に基づいて複数個が存在し、一つの変換セットは、複数の変換カーネルで構成され、
前記対象ブロックの大きさに基づいて前記逆2次変換の大きさが設定され、
前記逆2次変換の大きさ及び前記逆1次変換に適用される変換カーネルに基づいて、変換セットの個数、前記変換セットを構成する変換カーネルの個数及び変換カーネルの次元のうち少なくとも一つが導出される、請求項12に記載の映像デコーディング方法。
【請求項14】
前記逆1次変換は、水平方向変換及び垂直方向変換を含み、
前記水平方向変換または前記垂直方向変換に変換スキップが適用される、請求項1に記載の映像デコーディング方法。
【請求項15】
インター予測に基づいて前記対象ブロックに対する予測サンプルを導出するステップをさらに含む、請求項1に記載の映像デコーディング方法。
【請求項16】
前記逆2次変換に適用される変換インデックスに対する情報を受信するステップをさらに含み、
前記変換インデックスは、前記対象ブロックの特定領域に変換係数が存在する場合は受信され、
前記特定領域は、前記逆2次変換の大きさに基づいて設定される、請求項9に記載の映像デコーディング方法。
【請求項17】
前記対象ブロックのツリータイプがシングルツリーであることに基づいて、前記対象ブロックのルマ成分及びクロマ成分に前記逆2次変換が実行される、請求項1に記載の映像デコーディング方法。
【請求項18】
エンコーディング装置により実行される映像エンコーディング方法において、
対象ブロックに対する予測サンプルを導出するステップと、
前記予測サンプルに基づいて前記対象ブロックに対するレジデュアルサンプルを導出するステップと、
前記レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出するステップと、
前記変換係数の2次変換に基づいて修正された変換係数を導出するステップと、
前記修正された変換係数に基づいて導出されたレジデュアル情報を含む映像情報をエンコーディングするステップと、を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の入力領域に配列されているL個(48<L≦96)の変換係数に対する前記2次変換が実行される、映像エンコーディング方法。
【請求項19】
映像情報のビットストリームを含むデータに対する送信方法において、
レジデュアル情報を含む前記映像情報の前記ビットストリームを取得するステップであって、前記ビットストリームは、対象ブロックに対する予測サンプルを導出し、前記予測サンプルに基づいて前記対象ブロックに対するレジデュアルサンプルを導出し、前記レジデュアルサンプルに対する1次変換に基づいて前記対象ブロックに対する変換係数を導出し、前記変換係数の2次変換に基づいて修正された変換係数を導出し、前記修正された変換係数に基づいて導出された前記レジデュアル情報を含む映像情報をエンコーディングすることにより生成される、ステップと、
前記レジデュアル情報を含む前記映像情報の前記ビットストリームを含む前記データを送信するステップと、を含み、
前記対象ブロックの大きさがM×N(M≧16、N≧16)であることに基づいて、前記対象ブロックの左上端の入力領域に配列されているL個(48<L≦96)の変換係数に対する前記2次変換が実行される、送信方法。
【国際調査報告】