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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】不分離1次変換設計方法及び装置
(51)【国際特許分類】
   H04N 19/12 20140101AFI20241024BHJP
   H04N 19/136 20140101ALI20241024BHJP
   H04N 19/176 20140101ALI20241024BHJP
   H04N 19/18 20140101ALI20241024BHJP
   H04N 19/70 20140101ALI20241024BHJP
【FI】
H04N19/12
H04N19/136
H04N19/176
H04N19/18
H04N19/70
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024525093
(86)(22)【出願日】2022-10-25
(85)【翻訳文提出日】2024-05-20
(86)【国際出願番号】 KR2022016333
(87)【国際公開番号】W WO2023075353
(87)【国際公開日】2023-05-04
(31)【優先権主張番号】63/271,233
(32)【優先日】2021-10-25
(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
5C159MA21
5C159MC11
5C159ME01
5C159RC12
5C159TA37
5C159TB08
5C159TC03
5C159TC04
5C159TC31
5C159TD12
(57)【要約】
本文書の開示によれば、1次変換が不分離変換を含むように構成することで、分離変換のみを含む従来の1次変換よりさらに高い符号化効率を期待することができる。また、現在のブロック又は周辺ブロックの残差特性を利用して不分離1次変換を適用することで、不分離変換カーネルに関連する情報をシグナリングするのに必要なビット数を削減することができ、さらに効率的な圧縮性能を得ることができる。また、不分離変換が分離変換に比べて計算の複雑度やメモリ要求量がさらに大きいにも関わらず、本文書の開示を介して計算の複雑度を減らし、消費電力を減らすことができる。
【選択図】図2
【特許請求の範囲】
【請求項1】
デコーディング装置によって実行される映像デコーディング方法において、
ビットストリームを介して映像情報を獲得するが、前記映像情報は残差情報及び変換インデックス情報を含むステップと、
前記残差情報に基づいて現在のブロックに対する変換係数を導出するステップと、
前記変換係数に基づいて複数の変換カーネルのうち、前記変換インデックス情報に関連した変換カーネルを使用して1次変換を実行することで、前記現在のブロックに対する残差サンプルを導出するステップと、
前記残差サンプルに基づいて前記現在のブロックに対する復元サンプルを生成するステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックに対する残差値に基づいて決定されることを特徴とする、映像デコーディング方法。
【請求項2】
前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含み、
前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出され、
前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つことを特徴とする、請求項1に記載の映像デコーディング方法。
【請求項3】
前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことを特徴とする、請求項2に記載の映像デコーディング方法。
【請求項4】
前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含み、
前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含み、
Mは1より大きい整数であり、NはMより大きい整数であることを特徴とする、請求項2に記載の映像デコーディング方法。
【請求項5】
前記第1の変数の値が0である場合に基づいて、前記変換インデックス情報は分離変換カーネルに関連することを特徴とする、請求項2に記載の映像デコーディング方法。
【請求項6】
前記第1の変数の値が0である場合に基づいて、前記変換インデックス情報は予め決められた変換カーネルに関連することを特徴とする、請求項2に記載の映像デコーディング方法。
【請求項7】
前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含み、
前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出されることを特徴とする、請求項1に記載の映像デコーディング方法。
【請求項8】
前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことを特徴とする、請求項7に記載の映像デコーディング方法。
【請求項9】
前記第2の変数の値が予め決められた第5の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第5の閾値を超過して、予め決められた第6の閾値以下であれば前記複数の変換カーネルはK個の不分離変換カーネルを含み、
前記第2の変数の値が前記第6の閾値を超過すれば前記複数の変換カーネルはL個の不分離変換カーネルを含み、
Kは1より大きい整数であり、LはKより大きい整数であることを特徴とする、請求項7に記載の映像デコーディング方法。
【請求項10】
前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記変換インデックス情報は分離変換カーネルに関連することを特徴とする、請求項7に記載の映像デコーディング方法。
【請求項11】
前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記変換インデックス情報は予め決められた変換カーネルに関連することを特徴とする、請求項7に記載の映像デコーディング方法。
【請求項12】
前記映像情報は前記1次変換に不分離変換カーネルが適用されるか否かを示すフラグをさらに含み、
前記残差情報は前記フラグ及び不分離変換カーネルに関連する前記変換インデックス情報より先にパージングされることを特徴とする、請求項1に記載の映像デコーディング方法。
【請求項13】
エンコーディング装置によって実行される映像エンコーディング方法において、
現在のブロックに対する残差サンプルを導出するステップと、
前記残差サンプルに対して変換カーネルに基づいて1次変換を実行することで、前記現在のブロックに対する変換係数を導出するステップと、
複数の変換カーネルのうち、前記変換カーネルに関連する変換インデックス情報を生成するステップと、
前記変換係数に基づいて残差情報を生成するステップと、
前記変換インデックス情報及び前記残差情報を含む映像情報をエンコーディングするステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックの残差値に基づいて決定されることを特徴とする、映像デコーディング方法。
【請求項14】
前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含み、
前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出され、
前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つことを特徴とする、請求項13に記載の映像エンコーディング方法。
【請求項15】
前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことを特徴とする、請求項14に記載の映像エンコーディング方法。
【請求項16】
前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含み、
前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含み、
Mは1より大きい整数であり、NはMより大きい整数であることを特徴とする、請求項14に記載の映像エンコーディング方法。
【請求項17】
前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含み、
前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出されることを特徴とする、請求項13に記載の映像エンコーディング方法。
【請求項18】
前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことを特徴とする、請求項17に記載の映像エンコーディング方法。
【請求項19】
第13項の映像エンコーディング方法によって生成されたビットストリームを格納するコンピューター可読デジタル記憶媒体。
【請求項20】
映像に対するデータの送信方法において、
前記映像に対するビットストリームを獲得するが、前記ビットストリームは現在のブロックに対する残差サンプルを導出するステップ、前記残差サンプルに対して変換カーネルに基づいて1次変換を実行することで、前記現在のブロックに対する変換係数を導出するステップ、複数の変換カーネルのうち、前記変換カーネルに関連する変換インデックス情報を生成するステップ、前記変換係数に基づいて残差情報を生成するステップ及び前記変換インデックス情報及び前記残差情報を含む映像情報をエンコーディングするステップに基づいて生成されるステップと、
前記ビットストリームを含む前記データを送信するステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックの残差値に基づいて決定されることを特徴とする、送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本文書は映像/イメージコーディング技術に関するもので、より詳しくは映像又は映像コーディングシステムでの不分離1次変換を実行することにおいて、変換に関連する情報を効果的にシグナリングする方法に関するものである。
【背景技術】
【0002】
最近、4Kまたは8K以上のUHD(Ultra High Definition)映像/ビデオのような高解像度、高品質の映像/ビデオに対する需要が多様な分野で増加している。映像/ビデオデータが高解像度、高品質になるほど、既存の映像/ビデオデータに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信し、または既存の格納媒体を利用して映像/ビデオデータを格納する場合、送信費用と格納費用が増加する。
【0003】
また、最近、VR(Virtual Reality)、AR(Artificial Realtiy)コンテンツやホログラムなどの実感メディア(Immersive Media)に対する関心及び需要が増加しており、ゲーム映像のように、現実映像と異なる映像特性を有する映像/ビデオに対する放送が増加している。
【0004】
これによって、前記のような多様な特性を有する高解像度、高品質の映像/ビデオの情報を効果的に圧縮して送信または格納し、再生するために、高効率の映像/ビデオ圧縮技術が要求される。
【発明の概要】
【課題を解決するための手段】
【0005】
本文書の一実施形態によれば、映像/イメージコーディング効率を高める方法及び装置を提供する。
【0006】
本文書の一実施形態によれば、空間領域において周波数領域への1次変換が不分離変換を含むことに関連する映像コーディング方法及び装置を提供する。
【0007】
本文書の一実施形態によれば、分離変換と不分離変換を含む1次変換に基づいて、変換インデックス情報を効果的にシグナリングする方法及び装置を提供する。
【0008】
本文書の一実施形態によれば、現在のブロック又は周辺ブロックの残差値に基づいて不分離1次変換を効率的に適用する方法及び装置を提供する。
【0009】
本文書の一実施形態によれば、デコーディング装置によって実行される映像/イメージデコーディング方法を提供する。
【0010】
本文書の一実施形態によれば、映像/イメージデコーディングを実行するデコーディング装置を提供する。
【0011】
本文書の一実施形態によれば、エンコーディング装置によって実行される映像/イメージエンコーディング方法を提供する。
【0012】
本文書の一実施形態によれば、映像/イメージエンコーディングを実行するエンコーディング装置を提供する。
【0013】
本文書の一実施形態によれば、本文書の実施形態のうち、少なくとも1つに開示されている映像/イメージエンコーディング方法に応じて生成された、エンコーディングされた映像/イメージ情報が格納されたコンピューター可読デジタル記憶媒体を提供する。
【0014】
本文書の一実施形態によれば、デコーディング装置によって本文書の実施形態のうち、少なくとも1つに開示されている映像/イメージデコーディング方法を実行するために生じるエンコーディングされた情報又はエンコーディングされた映像/イメージ情報が格納されたコンピューター可読デジタル記憶媒体を提供する。
【0015】
本文書の一実施形態によれば、本文書の実施形態のうち、少なくとも1つに開示されている映像/イメージエンコーディング方法に基づいて生成されたビットストリームを含む映像/イメージデータの送信方法を提供する。
【0016】
本文書の一実施形態によれば、本文書の実施形態のうち、少なくとも1つに開示されている映像/イメージエンコーディング方法に基づいて生成されたビットストリームを含む映像/イメージデータを送信する送信装置を提供する。
【図面の簡単な説明】
【0017】
図1】本文書の実施形態を適用することができる映像/イメージコーディングシステムの例を概略的に示す。
【0018】
図2】本文書の実施形態を適用することができる映像/イメージエンコーディング装置の構成を概略的に説明する図面である。
【0019】
図3】本文書の実施形態を適用することができる映像/イメージデコーディング装置の構成を概略的に説明する図面である。
【0020】
図4】コーディングされた映像/イメージに対する階層構造を例示的に示す。
【0021】
図5】65個の予測方向のイントラ方向モードを例示的に示す。
【0022】
図6】本文書の一実施形態に係る変換技術を概略的に示す。
【0023】
図7】本文書の一実施形態に係るRSTを説明するための図面である。
【0024】
図8】シンタックス要素をエンコーディングするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。
【0025】
図9-10】本文書の実施形態(ら)に係る映像/イメージエンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0026】
図11-12】本文書の実施形態に係る映像/イメージデコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0027】
図13】本文書において開示されている実施形態を適用することができるコンテンツストリーミングシステムの例を示す。
【発明を実施するための形態】
【0028】
本文書は、多様な変更を加えることができ、様々な実施例を有することができ、特定実施例を図面に例示して詳細に説明しようとする。しかし、これは本文書を特定実施例に限定しようとするものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであって、本文書の技術的思想を限定しようとする意図で使われるものではない。単数の表現は、コンテキスト上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたもの等の存在または付加可能性をあらかじめ排除しないと理解されなければならない。
【0029】
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の便宜のために独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/または分離された実施例も、本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
【0030】
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
【0031】
図1は本文書の実施形態を適用することができる映像/イメージコーディングシステムの例を概略的に示す。
【0032】
図1を参照すれば、映像/イメージコーディングシステムは第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を含むことができる。ソースデバイスはエンコーディングされた映像(video)/イメージ(image)情報又はデータをファイル又はストリーミングの形でデジタル記憶媒体又はネットワークを介して受信デバイスに伝達することができる。
【0033】
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/映像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/映像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
【0034】
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイス及び/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成されることができ、この場合、関連データが生成される過程にビデオ/映像キャプチャ過程が代替されることができる。
【0035】
エンコーディング装置は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
【0036】
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
【0037】
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/映像をデコーディングすることができる。
【0038】
レンダラは、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
【0039】
本文書は映像/イメージコーディングに関するものである。例えば本文書において開示されている方法/実施形態はVVC(versatile video coding)標準に開示される方法に適用することができる。また、本文書において開示されている方法/実施形態はEVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of Audio video coding standard)又は次世代映像/イメージコーディング標準(ex.H.267 or H.268など)に開示される方法に適用することができる。
【0040】
本文書においては映像/イメージコーディングに関する様々な実施形態を提示して、他に言及がない限り前記実施形態は互い組み合わせされ実行される。
【0041】
本文書において映像(video)は時間の流れに係る一連のイメージ(image)のセットを意味することができる。ピクチャ(picture)は通常特定の時間帯の1つのイメージを示す単位を意味し、スライス(slice)/タイル(tile)はコーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャは1つ以上のスライス/タイルに構成することができる。タイルはピクチャ内の特定のタイル列及び特定のタイル行以内のCTUの矩形領域である。(A tile is a rectangular region of CTU s within a particular tile column and a particular tile row in a picture)。前記タイル列はCTUの矩形領域であり、前記矩形領域は前記ピクチャの高さと同じ高さを持ち、広さはピクチャパラメータセット内のシンタックス要素によって明示される(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the Picture Parameter set)。前記タイル行はCTUの矩形領域であり、前記矩形領域はピクチャパラメータセット内のシンタックス要素によって明示される高さを持ち、広さは前記ピクチャの広さと同じである(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the Picture Parameter set and a width equal to the width of the picture)。タイルスキャンはピクチャをパーティションするCTUの特定の順次オーダリングを表すことができ、前記CTUはタイル内のCTUラスター走査に連続的に並べ替えることができ、ピクチャ内のタイルは前記ピクチャの前記タイルのラスター走査に連続的に並べ替えることができる(A tile scan is a specific sequential ordering of CTU spartitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは単一のNALユニットに排他的に含めまれる、整数個の完全なタイル又はピクチャのタイル内の整数個の連続した完全なCTU行を含むことができる(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of A picture that maybe exclusively contained in a single NAL unit)
【0042】
その一方で、1つのピクチャは2つ以上のサブピクチャに分けることができる。サブピクチャはピクチャ内の1つ以上のスライスの矩形領域であり得る(an rectangular region of one or more slices within a picture)。
【0043】
ピクセル(pixel)又はペル(pel)は1つのピクチャ(又は映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使われる。サンプルは通常ピクセル又はピクセルの値を表すことができ、ルーマ(luma)成分のピクセル/ピクセル値のみを表すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみ表すこともできる。
【0044】
ユニット(unit)は映像処理の基本単位を示すことができる。ユニットはピクチャの特定領域及び該当領域に関連する情報のうち、少なくとも1つを含むことができる。1つのユニットは1つのルーマブロック及び2つのクロマ(ex.cb、cr)ブロックを含むことができる。ユニットは場合によってブロック(block)又は領域(area)などの用語と混用して使われる。通常の場合、MxNブロックはM個の列とN個の行でできたサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
【0045】
本文書において「A又はB(A or B)」は「ただA」、「ただB」又は「AとB全て」を意味することができる。言い換えれば、本文書において「A又はB(A or B)」は「A及び/又はB(A and/or B)」に解釈することができる。例えば、本文書において「A、B又はC(A、B or C)」は「ただA」、「ただB」、「ただC」、又は「A、B及びCの任意の全ての組み合わせ(any combination of A,B and C)」を意味することができる。
【0046】
本文書において使われるスラッシュ(ら)やコンマ(comma)は「及び/又は(and/or)」を意味することができる。例えば、「A/B」は「A及び/又はB」を意味することができる。これに応じて「A/B」は「ただA」、「ただB」、又は「AとB全て」を意味することができる。例えば、「A,B,C」は「A,B又はC」を意味することができる。
【0047】
本文書において「少なくとも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)」と同じく解釈することができる。
【0048】
また、本文書において「少なくとも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)」を意味することができる。
【0049】
また、本文書において使われる括弧は「例えば(for example)」を意味することができる。具体的に、「予測(イントラ予測)」と表示された場合、「予測」の一例として「イントラ予測」が提案されたことであり得る。言い換えれば本文書の「予測」は「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されることであり得る。また、「予測(即ち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたことであり得る。
【0050】
本文書において1つの図面内で個別的に説明される技術的な特徴は、個別的に実装することもでき、同時に実装することもできる。
【0051】
図2は本文書の実施形態を適用することができる映像/イメージエンコーディング装置の構成を概略的に説明する図面である。以下エンコーディング装置というのはイメージエンコーディング装置及び/又は映像エンコーディング装置を含むことができる。
【0052】
図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を内/外部コンポーネントとしてさらに含むこともできる。
【0053】
映像分割部210は、エンコーディング装置200に入力された入力映像(または、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割できる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/またはターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/またはターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本文書によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使われることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、各々、前述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であり、前記変換ユニットは、変換係数を誘導する単位及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位である。
【0054】
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使われることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または、映像)をピクセル(pixel)またはペル(pel)に対応する用語として使われることができる。
【0055】
エンコーディング装置200は入力映像信号(元のブロック、元のサンプルアレイ)においてインター予測部221又はイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して残差信号(residual signal、残差ブロック、残差サンプルアレイ)を生成することができ、生成された残差信号は変換部232に送信される。この場合、示されたようにエンコーダ200内で入力映像信号(元のブロック、元のサンプルアレイ)において予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部231と呼べる。予測部は処理対象ブロック(以下、現在のブロックとする)に対する予測を実行して、前記現在のブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は現在のブロック又はCU単位でイントラ予測が適用されるか又はインター予測が適用されるかを決定することができる。予測部は各予測モードに対する説明において後述するように予測モード情報など予測に関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。予測に関する情報はエントロピーエンコーディング部240においてエンコーディングされビットストリーム形で出力される。
【0056】
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測で、予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定によってそれ以上またはその以下の個数の方向性予測モードが使われることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを利用して、現在ブロックに適用される予測モードを決定することもできる。
【0057】
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャは、同じこともあり、異なることもある。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が使われるかを指示する情報を生成することができる。多様な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用できる。スキップモードの場合、マージモードとは違って、レジデュアル信号が送信されない。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることで、現在ブロックの動きベクトルを指示することができる。
【0058】
予測部220は後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は1つのブロックに対する予測のためにイントラ予測又はインター予測を適用できるだけでなく、イントラ予測とインター予測を同時に適用することができる。これはcombined inter and intra prediction(CIIP)と呼べる。また、予測部はブロックに対する予測のためにイントラブロックコピー(intra block copy,IBC)予測モードに基づくか又はパレットモード(palette mode)に基づくことができる。前記IBC予測モード又はパレットモードは例えばSCC(screen content coding)などのようにゲームなどのコンテンツイメージ/映像コーディングのために使われる。IBCは基本的に現在のピクチャ内で予測を実行するが現在のピクチャ内で参照ブロックを導出する点でインター予測と同様に実行することができる。即ち、IBCは本文書において説明されるインター予測技術のうち、少なくとも1つを用いることができる。パレットモードはイントラコーディング又はイントラ予測の一例として見られる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
【0059】
前記予測部(インター予測部221及び/又は前記イントラ予測部222を含む)を介して生成された予測信号は復元信号を生成するために用いられるか残差信号を生成するために用いられる。変換部232は残差信号に変換技術を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技術はDCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうち、少なくとも1つを含むことができる。ここで、GBTはピクセル間の関係情報をグラフに表現するとするとき、このグラフから得られた変換を意味する。CNTは以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成して、それに基づいて獲得される変換を意味する。また、変換プロセスは正方形の同じサイズを持つピクセルブロックに適用することもでき正方形ではない可変サイズのブロックにも適用することができる。
【0060】
量子化部233は変換係数を量子化してエントロピーエンコーディング部240に送信して、エントロピーエンコーディング部240は量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームに出力することができる。前記量子化された変換係数に関する情報は残差情報と呼べる。量子化部233は係数スキャン手順(scan order)に基づいてブロックの形の量子化された変換係数を1次元ベクトル形で再並べ替えすることができ、前記1次元ベクトルの形の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部240は例えば指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコーディング方法を実行することができる。エントロピーエンコーディング部240は量子化された変換係数外に映像/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)をともに又は別途エンコーディングすることもできる。エンコーディングされた情報(ex.エンコーディングされた映像/イメージ情報)はビットストリーム形でNAL(network abstraction layer)ユニット単位に送信又は格納される。前記映像/イメージ情報は適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又は映像パラメータセット(VPS)など様々なパラメータセットに関する情報を更に含むことができる。また前記映像/イメージ情報は一般制限情報(general constraint information)を更に含むことができる。本文書においてエンコーディング装置においてデコーディング装置に伝達/シグナリングされる情報及び/又はシンタックス要素は映像/イメージ情報に含まれる。前記映像/イメージ情報は上述のエンコーディング手順を介してエンコーディングされ前記ビットストリームに含まれる。前記ビットストリームはネットワークを介して送信され、又はデジタル記憶媒体に格納される。ここでネットワークは放送ネットワーク及び/又は通信ネットワークなどを含むことができ、デジタル記憶媒体はUSB、SD、CD、DVD、ブルーレイ、HDD、SSDなど様々な記憶媒体を含むことができる。エントロピーエンコーディング部240から出力された信号は送信する送信部(示していない)及び/又は格納する格納部(示していない)がエンコーディング装置200の内/外部要素として構成でき、又は送信部はエントロピーエンコーディング部240に含まれる場合もある。
【0061】
量子化部233から出力された量子化された変換係数は予測信号を生成するために用いられる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することで残差信号(残差ブロック or 残差サンプル)を復元することができる。加算部250は復元された残差信号をインター予測部221又はイントラ予測部222から出力された予測信号に加算することで復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成される。スキップモードが適用された場合のように処理対象のブロックに対する残差がない場合、予測されたブロックが復元ブロックに使われる。加算部250は復元部又は復元ブロック生成部と呼べる。生成された復元信号は現在のピクチャ内の次の処理対象ブロックのイントラ予測のために使用され、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用することもできる。
【0062】
一方、ピクチャエンコーディング及び/または復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0063】
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコーディング部240に伝達できる。フィルタリング関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
【0064】
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使われることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置200とデコーディング装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
【0065】
メモリ270のDPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部221に伝達できる。メモリ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のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを利用してデコーディングを実行することができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから、クアッドツリー構造、バイナリツリー構造及び/またはターナリツリー構造によって分割されることができる。コーディングユニットから一つ以上の変換ユニットが導出されることができる。そして、デコーディング装置300を介してデコーディング及び出力された復元映像信号は、再生装置を介して再生されることができる。
【0069】
デコーディング装置300は図2のエンコーディング装置から出力された信号をビットストリームの形で受信することができ、受信された信号はエントロピーデコーディング部310を介してデコーディングすることができる。例えば、エントロピーデコーディング部310は前記ビットストリームをパージングして映像復元(又は、ピクチャ復元)に必要な情報(ex.映像/イメージ情報)を導出することができる。前記映像/イメージ情報は適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又は映像パラメータセット(VPS)など様々なパラメータセットに関する情報を更に含むことができる。また前記映像/イメージ情報は一般制限情報(general constraint information)を更に含むことができる。デコーディング装置は前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてピクチャをデコーディングすることができる。本文書において後述するシグナリング/受信される情報及び/又はシンタックス要素は前記デコーディング手順を介してデコーディングされ前記ビットストリームから獲得することができる。例えば、エントロピーデコーディング部310は指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコーディングして、映像復元に必要なシンタックス要素の値、残差に関する変換係数の量子化された値を出力することができる。より詳細に、CABACエントロピーデコーディング方法は、ビットストリームにおいて各構文要素に対応するビンを対象構文要素情報と周辺及びデコーディング対象ブロックのデコーディング情報又は以前ステップにおいてデコーディングされたシンボル/ビンの情報を利用してコンテキスト(context)モデルを決定して、決定されたコンテキストモデルに応じてビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を実行して各構文要素の値に対応するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法はコンテキストモデル決定後、次のシンボル/ビンのコンテキストモデルのためにデコーディングされたシンボル/ビンの情報を利用してコンテキストモデルを更新することができる。エントロピーデコーディング部310においてデコーディングされた情報のうち、予測に関する情報は予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310においてエントロピーデコーディングが実行された残差値、即ち、量子化された変換係数及び関連パラメータ情報は残差処理部320に入力される。残差処理部320は残差信号(残差ブロック、残差サンプル、残差サンプルアレイ)を導出することができる。また、エントロピーデコーディング部310においてデコーディングされた情報のうち、フィルタリングに関する情報はフィルタリング部350に提供される。その一方で、エンコーディング装置から出力された信号を受信する受信部(示していない)がデコーディング装置300の内/外部要素としてさらに構成することができ、又は受信部はエントロピーデコーディング部310の構成要素であり得る。その一方で、本文書に係るデコーディング装置は映像/イメージ/ピクチャデコーディング装置とも呼べ、前記デコーディング装置は情報デコーダ(映像/イメージ/ピクチャ情報デコーダ)及びサンプルデコーダ(映像/イメージ/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332及びイントラ予測部331のうち、少なくとも1つを含むことができる。
【0070】
逆量子化部321では量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列できる。この場合、前記再整列は、エンコーディング装置で実行された係数スキャン順序に基づいて再整列を実行することができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を利用して量子化された変換係数に対する逆量子化を実行し、変換係数(transform coefficient)を取得することができる。
【0071】
逆変換部322では変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
【0072】
予測部は、現在ブロックに対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
【0073】
予測部330は後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部330は1つのブロックに対する予測のためにイントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。これはcombined inter and intra prediction(CIIP)と呼べる。また、予測部330はブロックに対する予測のためにイントラブロックコピー(intra block copy,IBC)予測モードに基づくこともでき、又はパレットモード(palette mode)に基づくこともできる。前記IBC予測モード又はパレットモードは例えば、SCC(screen content coding)などのようにゲームなどのコンテンツイメージ/映像コーディングのために使われる。IBCは基本的に現在のピクチャ内で予測を実行するが現在のピクチャ内で参照ブロックを導出する点でインター予測と同様に実行することができる。即ち、IBCは本文書において説明されるインター予測技術のうち、少なくとも1つを用いることができる。パレットモードはイントラコーディング又はイントラ予測の一例として見られる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記映像/イメージ情報に含まれシグナリングできる。
【0074】
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの隣接(neighbor)に位置することもでき、または離れて位置することもできる。イントラ予測で、予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0075】
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
【0076】
加算部340は獲得された残差信号を予測部(インター予測部332及び/又はイントラ予測部331を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加算することで復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックに使われる。
【0077】
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使われることもできる。
【0078】
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
【0079】
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用することで、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信できる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
【0080】
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使われることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部332に伝達できる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達できる。
【0081】
本文書において、エンコーディング装置200のフィルタリング部260、インター予測部221及びイントラ予測部222において説明された実施形態はそれぞれデコーディング装置300のフィルタリング部350、インター予測部332及びイントラ予測部331にも同じ又は対応するように適用することができる。
【0082】
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同じく導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに対する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで映像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
【0083】
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出して関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングできる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックとに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
【0084】
本文書において量子化/逆量子化及び/又は変換/逆変換のうち、少なくとも1つは省略することができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は変換係数と呼べる。前記変換/逆変換が省略される場合、前記変換係数は係数又は残差係数と呼ばれるか、又は表現の統一のために変換係数と呼べる。前記変換/逆変換の省略可否は変換スキップフラグに基づいてシグナリングできる。例えば、前記変換スキップフラグはtransform_skip_flagシンタックス要素であり得る。
【0085】
また、本文書において量子化された変換係数及び変換係数はそれぞれ変換係数及びスケーリングされた(scaled)変換係数と呼べる。この場合、残差情報は変換係数(ら)に関する情報を含むことができ、前記変換係数(ら)に関する情報は残差コーディングシンタックスを介してシグナリングされる。前記残差情報(又は前記変換係数(ら)に関する情報)に基づいて変換係数が導出され、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数を導出することができる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいて残差サンプルを導出することができる。これは本文書の他の部分でも同様に適用/表現することができる。
【0086】
図4はコーディングされた映像/イメージに対する階層構造を例示的に示す。
【0087】
図4を参照すれば、コーディングされた映像/イメージは映像/イメージのデコーディング処理及びそれ自体を扱うVCL(video coding layer、映像コーディング層)、符号化された情報を送信、格納する下位システム、そしてVCLと下位システムの間に存在し、ネットワーク適応機能を担当するNAL(network abstraction layer、ネットワーク抽象層)に分けることができる。
【0088】
例えば、VCLにおいては、圧縮されたイメージデータ(スライスデータ)を含むVCLデータが生成されるか又はピクチャパラメータセット(Picture Parameter set,PPS)、シーケンスパラメータセット(Sequence Parameter set,SPS)、映像パラメータセット(Video Parameter set,VPS)を含むパラメータセット又は映像デコーディングプロセスに更に必要なSEI(Supplemental Enhancement Information,SEI)メッセージが生成される。
【0089】
また、例えば、NALにおいては、VCLにおいて生成されたRBSP(Raw Byte Sequence Payload)にヘッダ(header)情報(NALユニットヘッダ)を追加してNALユニットが生成される。この場合、RBSPはVCLにおいて生成されたスライスデータ(slice data)、パラメータセット(parameter set)、SEIメッセージ(SEI message)などを参照することができる。NALユニットヘッダは該当NALユニットに含まれたRBSPデータに応じて指定されたNALユニットタイプ情報を含むことができる。
【0090】
また、例えば、図4に示されたようにNALユニットはVCLにおいて生成されたRBSPに応じてVCL NALユニットとNon-VCL NALユニットに分類(classified)することができる。VCL NALユニットはイメージ(image)に対する情報(スライスデータ)を含むNALユニットを意味することができ、Non-VCL NALユニットは映像デコーディングに必要な情報(パラメータセット又はSEIメッセージ)を含むNALユニットを意味することができる。
【0091】
上述のVCL NALユニットとNon-VCL NALユニットはサブシステムのデータ規格(data standard)に応じてヘッダ情報を添付してネットワークを介して送信される。例えば、NALユニットはH.266/VVCファイルフォーマット(VVC file format)、リアルタイム送信プロトコル(real-time transport protocol,RTP)、送信ストリーム(Transport Stream,TS)などのような予め決められた標準のデータフォーマット(data format)に変換され、様々なネットワークを介して送信される。
【0092】
また、上述のようにNALユニットは該当NALユニットに含まれたRBSPデータ構造に応じてNALユニットタイプが指定され、NALユニットタイプに対する情報はNALユニットヘッダに格納されシグナリングされる。
【0093】
例えば、NALユニットは映像に対する情報(スライスデータ)を含むか否かに応じてVCL NALユニットタイプとNon-VCL NALユニットタイプに分類することができる。また、VCL NALユニットタイプはVCL NALユニットに含まれたピクチャの性質及びタイプに応じて分類することができ、Non-VCL NALユニットタイプはパラメータセットのタイプに応じて分類することができる。
【0094】
次はNon-VCL NALユニットタイプに含まれたパラメータセットのタイプに応じて指定されたNALユニットタイプの例であり得る。
【0095】
-DCI(Decoding capability information)NAL unit:DCIを含むNALユニットに対するタイプ
【0096】
-VPS(Video Parameter set)NAL unit:VPSを含むNALユニットに対するタイプ
【0097】
-SPS(Sequence Parameter set)NAL unit:SPSを含むNALユニットに対するタイプ
【0098】
-PPS(Picture Parameter set)NAL unit:PPSを含むNALユニットに対するタイプ
【0099】
-APS(Adaptation Parameter set)NAL unit:APSを含むNALユニットに対するタイプ
【0100】
-PH(Picture header)NAL unit:PHを含むNALユニットに対するタイプ
【0101】
上述のNALユニットタイプはNALユニットタイプに対するシンタックス情報を持つことができ、シンタックス情報はNALユニットヘッダに格納及びシグナリングされる。例えば、前記シンタックス情報はnal_unit_typeであり、NAL単位タイプはnal_unit_type値に指定することができる。
【0102】
その一方で、上述のように1つのピクチャは複数のスライスを含むことができ、スライスはスライスヘッダ及びスライスデータを含むことができる。この場合、複数のスライス(スライスヘッダ及びスライスデータのセット)に対して1つのピクチャヘッダが追加(埋め込み(embedded)される。ピクチャヘッダ(ピクチャヘッダシンタックス)はピクチャに共通に適用できる情報/パラメータを含むことができる。スライスヘッダ(スライスヘッダシンタックス)はスライスに共通に適用できる情報/パラメータを含むことができる。APS(APSシンタックス)又はPPS(PPSシンタックス)は1つ以上のスライス又はピクチャに共通に適用できる情報/パラメータを含むことができる。SPS(SPSシンタックス)は1つ以上のシーケンス(sequence)に共通に適用できる情報/パラメータを含むことができる。VPS(VPSシンタックス)は複数のレイヤに共通に適用できる情報/パラメータを含むことができる。DPS(DPSシンタックス)は全体映像に共通に適用できる情報/パラメータを含むことができる。DCIは映像全般に共通に適用できる情報/パラメータを含むことができる。また、DCIはデコーディング能力(Decoding capability)に関連する情報/パラメータを含むことができる。本文書において上位レベルシンタックス(High Level Syntax,HLS)は例えば、APSシンタックス,PPSシンタックス,SPSシンタックス,VPSシンタックス、DCIシンタックス、ピクチャヘッダシンタックス及びスライスヘッダシンタックスのうち、少なくとも1つを含むことができる。また、本文書において下位レベルシンタックス(low level syntax,LLS)は例えば、スライスデータ(slice data)シンタックス、CTU(coding tree unit)シンタックス、CU(coding unit)シンタックス、TU(tansform unit)シンタックスのうち、少なくとも1つを含むことができる。
【0103】
本文書においてエンコーディング装置においてデコーディング装置にエンコーディングされビットストリームの形でシグナリングされる映像/イメージ情報はピクチャ内のパーティション関連情報、イントラ/インター予測情報、残差情報、インループフィルタリング情報を含むことができる。また、映像/イメージ情報は前記スライスヘッダの情報、前記Picture headerの情報、前記APSの情報、前記PPSの情報,SPSの情報,VPSの情報及び/又はDCIの情報を含むことができる。また前記映像/イメージ情報は一般制限情報(general constraint information)及び/又はNAL unitheaderの情報を更に含むことができる。
【0104】
その一方で、上述のようにエンコーディング装置においてデコーディング装置に伝達/シグナリングされる情報及び/又はシンタックス要素は上述のエンコーディング手順を介してエンコーディングされ前記ビットストリームに含まれ、シグナリング/受信される情報及び/又はシンタックス要素は上述のデコーディング手順を介してデコーディングされ前記ビットストリームから獲得することができる。このとき、例えば、デコーディング装置はシグナリング/受信される情報及び/又はシンタックス要素をデコーディングするために前記ビットストリームからそれぞれの情報及び/又はシンタックス要素に対するビットを読み込む動作であるパージング(parsing)を実行することができる。
【0105】
例えば、次のコーディングディスクリプタ(Descriptor)それぞれは特定シンタックス要素に対するパージングプロセスを指示することができる。
【0106】
-ae(v):コンテクスト適応型2値算術符号化(CABAC)に符号化されたシンタックス要素をデコーディングする関数(context-adaptive arithmetic entropy-coded syntax element)。
【0107】
-b(8):任意のビットパターンを持つバイト(8ビット)を読み取る関数として、このディスクリプタに対する前記パージングプロセスはread_bits(8)関数の戻り値によって明示される。(byte having any pattern of bit string(8bits)。The parsing process for this descriptor is specified by the return value of the function read_bits(8))。
【0108】
-f(n):左側からn個のビットを使った固定されたビットパターンを読み取る関数に、このディスクリプタに対する前記パージングプロセスはread_bits(n)関数の戻り値によって明示される。(fixed-pattern bit string using n bits written(from left to right)with the left bit first。The parsing process for this descriptor is specified by the return value of the function read_bits(n))。
【0109】
-i(n):nビットを使った符号付き整数にコーディングされたシンタックス要素をデコーディングする関数に、シンタックス表においてnが「v」であれば、該当ビット数は別のシンタックス要素の値に応じて異なる場合がある。このディスクリプタに対する前記パージングプロセスは1番目に示されたMSB(most significant bit)が2の補数の整数表現に解釈されるread_bits(n)関数の戻り値によって明示される。(signed integer using n bits。When n is 「v」 in the syntax table,the number of bits varies in a manner dependent on the value of other syntax elements.The parsing process for this descriptor is specified by the return value of the function read_bits(n)interpreted as a two‘s complement integer representation with most significant bit written first)。
【0110】
-se(v):符号付き0次Exp-Golombに符号化されたシンタックス要素をデコーディングする関数に、このディスクリプタに対する前記パージングプロセスは0のようなk次として明示される。(signed integer 0-th order Exp-Golomb-coded syntax element with the left bit first.The parsing process for this descriptor is specified with the order k equal to 0).
【0111】
-st(v):ISO/IEC10646に明示されたように、UCS送信形式-8(UTF-8)文字にエンコーディングされたnullで終わるビット列に、このディスクリプタに対する前記パージングプロセスは次のように明示される。例えば、st(v)は現在位置からスタートして0x00のような、バイト並べ替えられた次のバイトまでビットストリームにおいて一連のバイトを読み取り返してビットストリームポインタを(string Length+1)*8ビット位置だけ前に移動させることができる。ここで、string Lengthは返されたバイト数と等しい場合がある。また、ここで、st(v)ディスクリプタはビットストリームの現在位置がバイト整列位置である場合にのみ使われる。(null-terminated string encoded as universal coded character set(UCS)transmission format-8(UTF-8)characters as specified in ISO/IEC10646. The parsing process is specified as follows:st(v)begins at a byte-aligned position in the bit stream and reads and returns a series of bytes from the bit stream,beginning at the current position and continuing up to but not including the next byte-aligned byte that is equal to 0x00,and advances the bit stream pointer by(string Length+1)*8bit positions,where string Length is equal to the number of bytes returned.Thest(v) syntax descriptor is only used in this Specification when the current position in the bit stream is a byte-aligned position.)
【0112】
-tu(v):Truncated Unary codeに符号化されたシンタックス要素をデコーディングする関数(using up to max Valbits with max Val defined in the semantics of the symtax element).
【0113】
-u(n):nビットを使った符号のない整数にコーディングされたシンタックス要素をデコーディングする関数に、シンタックス表においてnが「v」であれば、該当ビット数は他のシンタックス要素の値に応じて異なる場合がある。このディスクリプタに対する前記パージングプロセスは1番目に提示されたMSB(most significant bit)が符号のない整数の二値表現に解釈されるread_bits(n)関数の戻り値によって明示される。(unsigned integer using n bits.When n is「v」in the syntax table,the number of bits varies in a manner dependent on the value of other syntax elements. The parsing process for this descriptor is specified by the return value of the function read_bits(n)interpreted as a binary representation of An unsigned integer with most significant bit written first).
【0114】
-ue(v):符号のない0次Exp-Golombに符号化されたシンタックス要素をデコーディングする関数に、このディスクリプタに対する前記パージングプロセスは0のようなk次に明示される。(unsigned integer 0-th order Exp-Golomb-coded syntax element with the left bit first. The parsing process for this descriptor is specified with the order k equal to 0).
【0115】
その一方で、上述のようにイントラ予測モードは2個の不方向性イントラ予測モードと65個の方向性予測モードを含むことができる。前記不方向性イントラ予測モードは平面(planar)イントラ予測モード及びDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは2番から66番イントラ予測モードを含むことができる。
【0116】
図5は65個の方向性イントラ予測モードを例示的に示す。
【0117】
図5を参照すれば、左上斜め予測方向を持つ34番イントラ予測モードを中心に水平方向の指向性(horizontal directionality)を持つイントラ予測モードと垂直方向の指向性(vertical directionality)を持つイントラ予測モードを区分することができる。即ち、2番から33番イントラ予測モードは水平方向の指向性、34番から66番イントラ予測モードは垂直方向の指向性を持つ。18番イントラ予測モードと50番イントラ予測モードはそれぞれ水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番イントラ予測モードは左下斜めイントラ予測モード、34番イントラ予測モードは左上斜めイントラ予測モード、66番イントラ予測モードは右上斜めイントラ予測モードを示すことができる。不方向性イントラ予測モードは0番である平面イントラ予測モード及び1番であるDCイントラ予測モードを含むことができる。
【0118】
図6は本文書に係る変換技術を概略的に示す。
【0119】
図6を参照すると、変換部は、前述した図2のエンコーディング装置内の変換部に対応されることができ、逆変換部は、前述した図2のエンコーディング装置内の逆変換部または図3のデコーディング装置内の逆変換部に対応されることができる。
【0120】
変換部は残差ブロック内の残差サンプル(残差サンプルアレイ)に基づいて1次変換を実行して(1次)変換係数を導出することができる(S610)。前記1次変換(primary transform)はコア変換(core transform)と呼べる。ここで前記1次変換は適応的多重変換選択(Multiple Transform Selection,MTS)に基づき、1次変換に適応的多重変換が適用される場合、適応的多重コア変換(adaptive multiple core transform)と呼べる。
【0121】
適応的多重コア変換は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変換タイプは基底関数に基づいて定義することができ、前記基底関数は次の表のように示すことができる。
【0122】
【表1】
【0123】
前記適応的多重コア変換が実行される場合、前記変換カーネルのうち、対象ブロックに対する垂直変換カーネル及び水平変換カーネルを選択することができ、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が実行することができる。ここで、前記水平変換は前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は前記対象ブロックの垂直成分に対する変換を示すことができる。
【0124】
また、一例によると、MTSを適用して1次変換を実行する場合、特定基底関数を所定値に設定し、垂直変換または水平変換である時、どのような基底関数が適用されるかを組み合わせて変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向変換カーネルをtrTypeHorで表し、垂直方向変換カーネルをtrTypeVerで表す場合、trTypeHorまたはtrTypeVer値0はDCT2に設定され、trTypeHorまたはtrTypeVer値1はDST7に設定され、trTypeHorまたはtrTypeVer値2はDCT8に設定されることができる。
【0125】
この場合、多数の変換カーネルセットのうちいずれか一つを指示するために、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であることを指示することができる。
【0126】
一例によって、MTSインデックス情報による変換カーネルセットを表で示すと、以下の通りである。
【0127】
【表2】
【0128】
変換部は前記(1次)変換係数に基づいて2次変換を実行して修正された(2次)変換係数を導出することができる(S620)。前記1次変換が空間領域において周波数領域への変換であったなら、前記2次変換は周波数領域において周波数領域への変換に見られる。前記2次変換は(1次)変換係数の間に存在する相関関係(correlation)を利用してより簡潔な表現に変換することを意味する。前記2次変換は不分離変換(non-separable transform)を含むことができる。この場合、前記2次変換は不分離2次変換(non-separable secondary transform,NSST)又はMDNSST(mode-dependent non-separable secondary transform)と呼べる。
【0129】
前記不分離2次変換は前記1次変換を介して導出された(1次)変換係数を不分離変換マトリックス(non-separable transform matrix)に基づいて2次変換して残差信号に対する修正された変換係数(又は2次変換係数)を生成する変換を示すことができる。ここで、前記不分離変換マトリックスに基づいて前記(1次)変換係数に対して垂直変換及び水平変換を分離して(又は水平垂直変換を独立的に)適用せず、一度に変換を適用することができる。例えば不分離2次変換は2次元信号(変換係数)を特定に決められた方向(例えば、行優先(row-first)方向又は列優先(column-first)方向)を介して1次元信号に再並べ替えした後、このような1次元ベクトルと前記不分離変換マトリックスとのマトリックス演算に基づいて修正された変換係数(又は2次変換係数)を導出することができる。
【0130】
例えば、行優先手順はMxNブロックに対して1番目の行、2番目の行、…、N番目の行の順序で一列に配置することであり、列優先手順はMxNブロックに対して1番目の列、2番目の列、…、M番目の列の順序で一列に配置することである。即ち、不分離2次変換のために、1次変換を介して導出された変換係数は行優先方向に応じて1次元ベクトルに並べ替えた後マトリックス演算が実行される場合もあり、列優先方向に応じて1次元ベクトルに並べ替えた後マトリックス演算が実行される場合もある。
【0131】
前記不分離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変換と呼べる。
【0132】
具体的に例えば、4×4入力ブロックが使われる場合、不分離2次変換は次のように実行することができる。
【0133】
一例として、前記4×4入力ブロックXは次の数式1のようになる。
【0134】
【数1】
【0135】
前記Xをベクトル形態で表す場合、ベクトル
は、以下のように示される。
【0136】
【数2】
【0137】
この場合、前記2次非分離変換は、下記のように計算されることができる。
【0138】
【数3】
【0139】
ここで、
は変換係数ベクトルを示し、Tは16×16(不分離)変換マトリックスを示し、・は行列とベクトルの乗算を意味する。
【0140】
前記数式3を介して16×1変換係数ベクトル
が導出されることができ、前記
は、スキャン順序(水平、垂直、対角(diagonal)等)を介して4×4ブロックで再構成(re-organized)されることができる。ただし、前述した計算は、例示に過ぎず、非分離2次変換の計算複雑度を減らすために、HyGT(Hypercube-Givens Transform)などが非分離2次変換の計算のために使われることもできる。
【0141】
一方、前記非分離2次変換は、モードベースの(modedependent)変換カーネル(または、変換コア、変換タイプ)が選択されることができる。ここで、モードは、イントラ予測モード及び/またはインター予測モードを含むことができる。
【0142】
このとき、モードベースの変換カーネル選択のために、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変換カーネルが含まれることができる。
【0143】
ただし、前記変換のサイズ、即ち、変換が適用される領域のサイズは、例示に過ぎず、8×8または4×4以外のサイズが使われることができ、前記セットの数はn個、各セット内の変換カーネルの数はk個である。
【0144】
前記変換セットは、NSSTセットまたはLFNSTセットと呼ばれることができる。前記変換セットの中からの特定セットの選択は、例えば、現在ブロック(CUまたはサブブロック)のイントラ予測モードに基づいて実行されることができる。LFNST(Low-Frequency Non-Separable Transform)は、後述される減少された非分離変換の一例であり、低周波成分に対する非分離変換を示す。
【0145】
一例によって、イントラ予測モードによって4個の変換セットのマッピング(mapping)は、例えば、以下の表のように示される。
【0146】
【表3】
【0147】
表3のように、イントラ予測モードによって、4個の変換セットのうちいずれか一つ、即ち、lfnstTrSetIdxが0から3、即ち、4個のうちいずれか一つにマッピングされることができる。
【0148】
一方、非分離変換に特定セットが使われると決定される場合、非分離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個の変換カーネルを指すことができる。
【0149】
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行して修正された(2次)変換係数を取得することができる。前記修正された変換係数は、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0150】
一方、前述したように、2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
【0151】
逆変換部は、前述した変換部で実行された手順の逆順に一連の手順を実行することができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S630)、前記(1次)変換係数に対して1次(逆)変換を実行してレジデュアルブロック(レジデュアルサンプルら)を取得することができる(S640)。ここで、前記1次変換係数は、逆変換部立場で修正された(modified)変換係数と呼ばれることができる。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックとに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは、前述の通りである。
【0152】
逆変換部は特定手順、例えば、斜めスキャン手順に応じて(具体的に、変換ブロックの左上端を始め右下方向に進める斜めスキャン手順)並べ替えられた(逆量子化された)変換係数に変換カーネルマトリックスを適用して修正された変換係数を導出することができる。修正された変換係数は変換部において2次変換のために変換係数が読み取られた方向、即ち、行優先方向又は列優先方向に応じて変換ブロックの左上領域に2次元に配列することができる。変換部において4×4変換が実行された場合、逆変換部は変換ブロックの4×4領域に修正された変換係数を2次元に並び変えることができ、変換部において8×8変換が実行された場合、逆変換部は変換ブロックの8×8領域に修正された変換係数を2次元に並び変えることができる。
【0153】
その一方で、2次逆変換はNSST、RST(reduced secondary transform)又はLFNSTであり、ビットストリームからパージングした2次変換フラグに基づいて2次逆変換の適用可否が決定される。別の一例として、2次逆変換適用可否は残差ブロックの変換係数に基づいて決定される。
【0154】
このような2次逆変換(即ち、変換カーネル、変換マトリックス又は変換カーネルマトリックス)はイントラ予測モードに応じて指定されたLFNST(NSST又はRST)変換セットに基づいて決定される。また、一実施形態として、1次変換決定方法に依存して(depend on)2次変換決定方法が決定される。イントラ予測モードに応じて1次変換と2次変換の様々な複数の組み合わせが決定される。また、一例として、現在のブロックのサイズに基づいて2次逆変換が適用される領域が決定される。
【0155】
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して前記1次(分離)逆変換を実行することでレジデュアルブロック(レジデュアルサンプル)を取得することができる。エンコーディング装置及びデコーディング装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成することができることは、前述の通りである。
【0156】
一方、本文書では非分離2次変換による計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリクス(カーネル)の大きさが減少されたRST(reduced secondary transform)を適用することができる。また、RSTは主に変換ブロックにおいて0ではない係数を含む低周波領域においてできるためLFNST(Low-Frequency Non-Separable transform)とも呼べる。前記不分離2次変換インデックスはLFNSTインデックスと呼べる。
【0157】
本明細書においてLFNSTはサイズが減少した変換マトリックス(transform matrix)に基づいて対象ブロックに対する残差サンプルに対して実行される変換を意味することができる。簡素化変換を実行する場合、変換マトリックスのサイズ減少のため変換時、要求される演算量が減少する場合がある。即ち、LFNSTはサイズが大きいブロックの変換又は不分離変換時、発生する演算複雑度(complexity)問題を解消するために用いられる。
【0158】
一方、2次逆変換がLFNSTに基づいて行われる場合、エンコーディング装置200の逆変換部235とデコーディング装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書で変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出するのを意味することができる。
【0159】
図7は本文書の一実施形態に係るRST又はRSTが適用されたLFNSTを説明するための図面である。
【0160】
本明細書において、「対象ブロック」は、コーディングが実行される現在ブロックまたはレジデュアルブロックまたは変換ブロックを意味することができる。
【0161】
一実施例に係る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値を意味することもできる。
【0162】
一実施例に係る簡素化変換マトリクスのサイズは、通常の変換マトリクスのサイズN×Nより小さいR×Nであり、以下の数式4のように定義されることができる。
【0163】
【数4】
【0164】
図7の(a)に示すReduced Transformブロック内のマトリクスTは、数式4のマトリクスTR×Nを意味することができる。図7の(a)のように、対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリクスTR×Nが掛けられる場合、対象ブロックに対する変換係数が導出されることができる。
【0165】
一実施例において、変換が適用されるブロックのサイズが8×8であり、R=16(即ち、R/N=16/64=1/4)である場合、図7の(a)によるRSTは、以下の数式5のような行列演算で表現されることができる。この場合、メモリと掛け演算が簡素化ファクタにより概略1/4に減少できる。
【0166】
本文書において、行列演算とは、行列を列ベクトルの左側に置いて行列と列ベクトルをかけて列ベクトルを得る演算と理解されることができる。
【0167】
【数5】
【0168】
数式5において、r乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができ、より具体的に、1次変換を適用して生成された変換係数である。数式5の演算結果、対象ブロックに対する変換係数cが導出されることができ、cの導出過程は、数式6の通りである。
【0169】
【数6】
【0170】
数式6の演算結果、対象ブロックに対する変換係数c乃至cが導出されることができる。即ち、R=16である場合、対象ブロックに対する変換係数c乃至c16が導出されることができる。もし、RSTではなく通常の(regular)変換が適用されてサイズが64×64(N×N)である変換マトリクスが、サイズが64×1(N×1)であるレジデュアルサンプルに掛けられた場合、対象ブロックに対する変換係数が64個(N個)導出されるが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少してエンコーディング装置200がデコーディング装置300に送信するデータの量が減少するため、エンコーディング装置200-デコーディング装置300間の送信効率が増加できる。
【0171】
変換マトリクスのサイズ観点で検討すると、通常の変換マトリクスのサイズは64×64(N×N)であり、簡素化変換マトリクスのサイズは16×64(R×N)に減少するため、通常の変換を実行する時と比較すると、LFNSTを実行する時にメモリ使用をR/N割合に減少させることができる。また、通常の変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化変換マトリクスを利用する場合、掛け算演算数をR/N割合に減少(R×N)させることができる。
【0172】
一実施例において、エンコーディング装置200の変換部232は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を実行することによって対象ブロックに対する変換係数を導出することができる。このような変換係数は、デコーディング装置300の逆変換部に伝達されることができ、デコーディング装置300の逆変換部322は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて対象ブロックに対するレジデュアルサンプルを導出することができる。
【0173】
一実施例に係る逆RSTマトリクスTN×Rのサイズは、通常の逆変換マトリクスのサイズN×Nより小さいN×Rであり、数式4に示す簡素化変換マトリクスTR×Nとトランスポーズ(transpose)関係にある。
【0174】
図7の(b)に示すReduced Inv.Transformブロック内のマトリクスTは、逆RSTマトリクスTR×N を意味することができる(上付き文字Tは、トランスポーズを意味する)。図7の(b)のように、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられる場合、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルが導出されることができる。逆RSTマトリクスTR×N は、(TR×N N×Rで表現することもできる。
【0175】
より具体的に、2次逆変換として逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられると、対象ブロックに対する修正された変換係数が導出されることができる。一方、逆1次変換として逆RSTが適用されることができ、この場合、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N が掛けられると、対象ブロックに対するレジデュアルサンプルが導出されることができる。
【0176】
一方、一例によれば、逆一次変換で逆RSTを適用することができる。この場合、対象ブロックに対する変換係数に逆RST行列TR×N が乗算されると、対象ブロックの残差サンプルが導出される。
【0177】
一実施例において、逆変換が適用されるブロックのサイズが8×8であり、R=16(即ち、R/N=16/64=1/4である場合)である場合、図7の(b)によるRSTは、以下の数式7のような行列演算で表現されることができる。
【0178】
【数7】
【0179】
数式7においてcからc16は対象ブロックに対する変換係数、即ち、残差コーディングを介して導出された変換係数を示すことができる。数式7の演算結果対象ブロックに対する修正された変換係数又は対象ブロックに対する残差サンプルを示すrを導出することができ、rの導出プロセスは数式8と同じ場合がある。
【0180】
【数8】
【0181】
数式8の演算結果、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すr1乃至rNが導出されることができる。数式7においてNが64であるため、数式8を介して64個の修正された変換係数を導出することができる。
【0182】
逆変換マトリクスのサイズ観点で検討すると、通常の逆変換マトリクスのサイズは64×64(N×N)であり、簡素化逆変換マトリクスのサイズは64×16(N×R)に減少するため、通常の逆変換を実行する時と比較すると、逆RSTを実行する時にメモリ使用をR/N割合に減少させることができる。また、通常の逆変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化逆変換マトリクスを利用する場合、掛け算演算数をR/N割合に減少(N×R)させることができる。簡素化逆変換マトリックス又は逆変換マトリックスは変換であるか逆変換であるか混同しない場合は簡素化変換マトリックス又は変換マトリックスとも呼べる。
【0183】
一方、本文書の一実施例によって、エンコーディング過程の変換で、8×8領域を構成する64個のデータに対して16×64変換カーネルマトリクスでない、48個のデータのみを選択して最大16×48変換カーネルマトリクスを適用することができる。ここで、「最大」とは、m個の係数を生成することができるm×48変換カーネルマトリクスに対してmの最大値が16であることを意味する。
【0184】
即ち、8×8領域にm×48変換カーネルマトリクス(m≦16)を適用してRSTを実行する場合、48個のデータの入力を受けてm個の係数を生成することができる。mが16である場合、48個のデータの入力を受けて16個の係数を生成する。即ち、48個のデータが48×1ベクトルをなすとした時、16×48行列と48×1ベクトルをじゅんにかけて16×1ベクトルが生成されることができる。このような実施形態の場合、数式8の列ベクトルはrからr48になり、変換マトリックスのサイズは16x48になり、マトリックス演算を介して16個の修正された変換係数(cからc16)が導出される。
【0185】
このとき、8×8領域をなす48個のデータを適切に配列して48×1ベクトルを構成することができる。例えば、8×8領域のうち右下端4×4領域を除外した領域を構成する48個のデータに基づいて48×1ベクトルを構成することができる。このとき、最大16×48変換カーネルマトリクスを適用して行列演算を実行すると、16個の修正された変換係数が生成され、16個の修正された変換係数は、スキャニング順序によって左上端4×4領域に配置されることができ、右上端4×4領域と左下端4×4領域は、0で満たされることができる。
【0186】
デコーディングプロセスの逆変換には前記述べた変換カーネルマトリックスのトランスポーズされたマトリックスが使われる。即ち、デコーディング装置において実行される逆変換プロセスに逆RST又は逆LFNSTが実行される場合、逆RSTを適用する入力係数データは所定の配列手順(斜め走査手順)に応じて1次元ベクトルに構成され、1次元ベクトルに当該の逆RST行列を左側において乗算して得た修正された係数ベクトルを所定の配列手順に応じて2次元ブロックに配列することができる。
【0187】
8x8領域にRST又はLFNSTが実行され、これに対する逆RST又は逆LFNSTが実行される場合、数式7の変換マトリックスのサイズは48x16であり、列ベクトルはcからc16になり、マトリックス演算を介して48個の修正された変換係数(rからr48)が導出される。
【0188】
まとめると、エンコーディング装置において実行される変換プロセスにおいて、8x8領域にRST又はLFNSTが適用される場合、8x8領域の変換係数のうち、8x8領域の右下領域を除いた左上、右上、左下領域の48個変換係数と16x48の変換カーネルマトリックスとの行列演算が実行される。行列演算のために48個の変換係数は1次元配列に入力される。このような行列演算が実行されれば16個の修正された変換係数が導出され、修正された変換係数は8x8領域の左上領域に配列することができる。
【0189】
逆に、エンコーディング装置又はデコーディング装置において実行される逆変換プロセスにおいて、8x8領域に逆RST又はLFNSTが適用される場合、8x8領域の変換係数のうち、8x8領域の左上に対応する16個の変換係数は走査手順に応じて1次元配列形で入力され48x16の変換カーネルマトリックスと行列演算できる。即ち、このような場合の行列演算は(48x16行列)*(16x1変換係数ベクトル)=(48x1修正された変換係数ベクトル)に示すことができる。ここでnx1ベクトルはnx1行列のような意味に解釈することができるため、nx1列ベクトルに表記することもできる。また、*は行列乗算演算を意味する。このような行列演算が実行されれば、48個の修正された変換係数が導出され、48個の修正された変換係数は8x8領域の右下領域を除いた左上、右上、左下領域に配列することができる。
【0190】
その一方で、例えば、エンコーディング装置は指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)又はCABAC(context-adaptive binary arithmetic coding)などのような様々なコーディング方法に基づいてシンタックス要素の値又は残差に関する変換係数の量子化された値などをエンコーディングしてビットストリームを導出することができる。また、デコーディング装置は指数ゴロム符号化、CAVLC又はCABACなどのような様々なコーディング方法に基づいてビットストリームをデコーディングして映像復元に必要なシンタックス要素の値又は残差に関する変換係数の量子化された値などを導出することができる。
【0191】
例えば、上述のコーディング方法は後述する内容のように実行することができる。
【0192】
図8はシンタックス要素をエンコーディングするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。
【0193】
例えば、CABACのコーディングプロセスにおいてエンコーディング装置は入力信号が二値ではないシンタックス要素である場合は前記入力信号の値を二値化(binarization)して入力信号を二値に変換することができる。また、前記入力信号が既に二値である場合(即ち、前記入力信号の値が二値である場合)には二値化が実行されず、そのまま前記入力信号が用いられる。ここで、二値を構成するそれぞれの二値数0又は1をビン(bin)とすることができる。例えば、二値化した後の二値ストリングが110である場合、1、1及び0それぞれを1つのビンと示すことができる。1つのシンタックス要素に対する前記ビン(ら)は前記シンタックス要素の値を示すことができる。このような二値化はTruncated Rice binarization process又はFixed-length binarization processなど様々な二値化方法に基づき、対象シンタックス要素に対する二値化方法は予め定義することができる。前記二値化手順はエントロピーエンコーディング部内の二値化部によって実行される。
【0194】
以降、前記シンタックス要素の二値化されたビンは正規(regular)コーディングエンジン又はバイパス(bypass)コーディングエンジンに入力される。エンコーディング装置の正規コーディングエンジンは当該ビンに対して確率値を反映するコンテクストモデル(context model)を割り当てることができ、割り当てられたコンテクストモデルに基づいて当該ビンをエンコーディングすることができる。エンコーディング装置の前記正規コーディングエンジンは各ビンに対するコーディングを実行した後当該ビンに対するコンテクストモデルを更新することができる。上述の内容のようにコーディングすることができるビンはコンテクストコーディングされたビン(context coded bin)と示すことができる。
【0195】
その一方で、前記シンタックス要素の二値化されたビンが前記バイパスコーディングエンジンに入力される場合には次のようにコーディングすることができる。例えば、エンコーディング装置のバイパスコーディングエンジンは入力されたビンに対して確率を推定する手順とコーディング後、前記ビンに適用した確率モデルを更新する手順を省略することができる。バイパスコーディングが適用される場合、エンコーディング装置はコンテクストモデルを割り当てる代わりに均一な確率分布を適用して入力されるビンをコーディングすることができ、これを介してエンコーディング速度を向上させることができる。上述の内容のようにコーディングすることができるビンはバイパスビン(bypass bin)と示すことができる。
【0196】
エントロピーデコーディングは上述のエントロピーエンコーディングと同じプロセスを逆順に実行するプロセスを示すことができる。
【0197】
デコーディング装置(エントロピーデコーディング部)はエンコーディングされた映像/イメージ情報をデコーディングすることができる。前記映像/イメージ情報はパーティション関連情報、予測関連情報(ex.インター/イントラ予測区分情報、イントラ予測モード情報、インター予測モード情報など)、残差情報又はインループフィルタリング関連情報などを含むことができ、又はそれに関する様々なシンタックス要素を含むことができる。前記エントロピーコーディングはシンタックス要素単位に実行することができる。
【0198】
デコーディング装置は対象シンタックス要素に対する二値化を実行することができる。ここで前記二値化はTruncated Rice binarization process又はFixed-length binarization processなど様々な二値化方法に基づき、対象シンタックス要素に対する二値化方法は予め定義することができる。デコーディング装置は前記二値化手順を介して対象シンタックス要素の利用可能値に対する利用可能ビンストリング(ビンストリング候補)を導出することができる。前記二値化手順はエントロピーデコーディング部内の二値化部によって実行される。
【0199】
デコーディング装置はビットストリーム内の入力ビット(ら)から前記対象シンタックス要素に対する各ビンを順次デコーディング又はパージングしながら、導出されたビンストリングを該当シンタックス要素に対する利用可能ビンストリングと比較することができる。もし導出されたビンストリングが前記利用可能ビンストリングのうち、1つと同じである場合、当該ビンストリングに対応する値が該当シンタックス要素の値に導出される。もし、そうでなければ、前記ビットストリーム内の次のビットをさらにパージングした後、上述の手順を再び実行することができる。このようなプロセスを介してビットストリーム内の特定情報(又は特定シンタックス要素)に対する最初のビットや終わりのビットを使用しなくとも可変の長さビットを利用して該当情報をシグナリングすることができる。これを介して低い値に対しては比較的さらに少ないビットを割り当てることができ、全般的なコーディング効率を高めることができる。
【0200】
デコーディング装置はCABAC又はCAVLCなどのエントロピーコーディング技術に基づいてビットストリームから前記ビンストリング内の各ビンをコンテクストモデルベース又はバイパスベースデコーディングすることができる。
【0201】
シンタックス要素がコンテクストモデルに基づいてデコーディングすることができる場合、デコーディング装置はビットストリームを介して前記シンタックス要素に対応するビンを受信することができ、前記シンタックス要素とデコーディング対象ブロック又は周辺ブロックのデコーディング情報又は以前ステップにおいてデコーディングされたシンボル/ビンの情報を利用してコンテクストモデル(context model)を決定することができ、決定されたコンテクストモデルに応じて前記受信されたビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を実行して前記シンタックス要素の値を導出することができる。以降、前記決定されたコンテクストモデルに基づいて次にデコーディングすることができるビンのコンテクストモデルが更新される。
【0202】
コンテクストモデルはコンテクストコーディング(正規コーディング)されるビン別に割り当て及び更新され、コンテクストモデルはコンテクストインデックス(ctxIdx:context index)又はコンテクストインデックス増減(ctxInc:context index increment)に基づいて指示することができる。ctxIdxはctxIncに基づいて導出することができる。具体的に例えば、前記正規コーディングすることができるビンそれぞれに対するコンテクストモデルを示すctxIdxはctxInc及びコンテクストインデックスオフセット(ctxIdx Offset:context index offset)の合計に導出することができる。例えば、前記ctxIncは各ビン別に異なるように導出することができる。前記ctxIdx Offsetは前記ctxIdxの最小値(the lowest value)に示すことができる。前記ctxIdx Offsetは通常他のシンタックス要素に対するコンテクストモデルとの区分のために用いられる値であり、1つのシンタックス要素に対するコンテクストモデルはctxIncに基づいて区分又は導出することができる。
【0203】
エントロピーエンコーディング手順において正規コーディングエンジンを介してエンコーディングを実行することであるか又はバイパスコーディングエンジンを介してエンコーディングを実行することであるかが決定され、これに応じてコーディング経路がスイッチすること場合がある。エントロピーデコーディングはエントロピーエンコーディングと同じプロセスを逆順に実行することができる。
【0204】
その一方で、例えば、シンタックス要素がバイパスデコーディングすることができる場合、デコーディング装置はビットストリームを介して前記シンタックス要素に対応するビンを受信することができ、均一な確率分布を適用して入力されるビンをデコーディングすることができる。この場合、デコーディング装置はシンタックス要素のコンテクストモデルを導出する手順とデコーディング以降に前記ビンに適用したコンテクストモデルを更新する手順は省略することができる。
【0205】
その一方で、上述のように、既存には適応的多重コア変換(Multiple Transform Selection,MTS)が適用される場合、残差信号(又は残差ブロック)に対してDCTタイプ2、DSTタイプ7及びDCTタイプ8に基づいて空間領域において周波数領域への1次変換が適用され変換係数(又は1次変換係数)が生成された。このような適応的多重コア変換は水平方向に1つのカーネルを適用して、垂直方向に1つのカーネルを適用する分離変換の形であった。
【0206】
即ち、既存の1次変換には分離変換のみが適用され、不分離変換は適用されなかったが、通常不分離変換(カーネル)は分離変換(カーネル)よりさらに高い符号化効率を提供する。これに応じて、以下においては分離変換と不分離変換を含む1次変換に関連する様々な実施形態を提案する。
【0207】
本文書において提案される第1の実施形態によれば、1次変換は不分離変換を含むことができる。
【0208】
一例として、1次変換にはDCTタイプ2と不分離(1次)変換カーネルが使われる。又は、一例として、既存のDCTタイプ2、DSTタイプ7、DCTタイプ8にさらに不分離(1次)変換カーネルが使われる。又は、一例として、既存のDCTタイプ2、DSTタイプ7、DCTタイプ8のうち、1つ以上のカーネルが不分離(1次)変換カーネルに代替することができる。但し、これは例示であり、前記において説明した既存の変換カーネルの構成が異なる場合にも適用することができる。即ち、他のタイプのDCT/DSTや変換スキップを含む場合にも適用することができる。
【0209】
これに関連して、不分離1次変換は残差信号を不分離変換マトリックスに基づいて変換して前記残差信号に対する変換係数を生成することができる。即ち、垂直変換及び水平変換を分離して(又は水平垂直変換を独立的に)適用する既存の変換方法と違って、前記不分離変換マトリックスを利用して一度に変換を実行することができる。
【0210】
例えば、前記不分離1次変換は図6に関連して上述の不分離2次変換方法と同じ方法で実行することができる。
【0211】
一例として、4×4入力ブロックに対して前記不分離1次変換が適用される場合、前記4x4入力ブロックXは前記数式1と等しい場合がある。このとき、前記Xをベクトル形で示す場合、ベクトル
は前記数式2と同じ場合がある。この場合、前記1次不分離変換は前記数式3のように計算することができる。
【0212】
前記数式3を介して16x1変換係数ベクトル
が導出され、前記
はスキャン手順(ex.水平、垂直、斜め(diagonal)、又は予め決められた/格納されたスキャン手順)に応じて4x4ブロックに再構成することができる。但し、上述の計算は例示であり、不分離1次変換の計算複雑度を減らせるための最適化された不分離変換計算方法が使われる。
【0213】
その一方で、前記不分離1次変換に対する変換セットとカーネルはモード(ex.イントラ予測モード、インター予測モードなど)、入力ブロックの広さ(width)、入力ブロックの高さ(height)、入力ブロックのピクセル数、ブロック内のサブブロック位置、明示的にシグナリングされた構文要素(シンタックス要素)、周辺ピクセルの統計的特性、2次変換の使用可否などに応じて多様に構成することができる。即ち、前記不分離1次変換に対する変換セット及び変換カーネルはモード(ex.イントラ予測モード、インター予測モードなど)、入力ブロックの広さ(width)、入力ブロックの高さ(height)、入力ブロックのピクセル数、ブロック内のサブブロック位置、明示的にシグナリングされた構文要素、周辺ピクセルの統計的特性、2次変換の使用可否のうち、少なくとも1つにベースして選択することができる。
【0214】
例えば、現在のブロックに対してイントラ予測が適用される場合、イントラ予測モードに基づいてn個のセットがグループ化され、各セット内にk個の変換カーネルが含まれるように構成することができる。このとき、本文書によれば、イントラ予測モードの数及びグルーピング方法は特定値及び特定方法に限られない。
【0215】
又は、例えば、前記不分離1次変換セットとカーネルは入力ブロックの広さ又は/及び高さに基づいて決定される。一例として、4x4入力ブロックに対してはn個のセットと各セット内にk個の変換カーネルが含まれるように構成することができ、4x8ブロックに対してはn個のセットと各セット内にk個の変換カーネルが含まれるように構成することができる。
【0216】
別の例として、比較的大きいブロックに対しては該当ブロックの広さと高さに係る不分離変換を使用しない。即ち、一例として、該当ブロックを空間領域において小さいブロック(i.e.,サブブロック)に分離して、分離された小さいブロック(i.e.,サブブロック)の広さと高さに応じて前記不分離1次変換を実行することができる。例えば、4x8ブロックに対する不分離変換を実行するとき、4x8ブロックを空間領域において2個の4x4サブブロックに分離して、各4x4サブブロックに対して4x4ブロックベースの前記不分離1次変換を実行することができる。別の例として、8x16ブロックを空間領域において2個の8x8サブブロックに分離して、各8x8サブブロックに対して8x8ブロックベースの前記不分離1次変換を実行することができる。
【0217】
変換部は選択された変換カーネルに基づいて前記不分離1次変換を実行して、変換係数を獲得することができる。獲得された変換係数は2次変換を実行するか、又は2次変換を実行せず、量子化部によって量子化された変換係数に導出することができる。そして、量子化された変換係数はエンコーディングされデコーディング装置にシグナリングされ、また、量子化された変換係数はエンコーディング装置内の逆量子化/逆変換部に伝達することができる。逆変換部は上述の変換部において実行された手順の逆順に一連の手順を実行することができる。逆変換部は(逆量子化された)変換係数を受信して、2次変換を実行するか、又は2次変換を実行せず前記1次逆変換を実行して残差ブロック(残差サンプル)を獲得することができる。そして、エンコーディング装置及びデコーディング装置は前記残差ブロックと予測されたブロックに基づいて復元ブロックを生成して、これに基づいて復元ピクチャを生成することができる。
【0218】
このように、前記第1の実施形態のように前記1次変換が不分離変換を含むように構成することで、従来の1次変換よりさらに高い符号化効率を期待することができる。
【0219】
本文書において提案される第2の実施形態によれば、1次変換が分離変換と不分離変換を全て含む場合、前記1次変換に関連する情報を次のように効率的にシグナリングすることができる。
【0220】
上述のように、分離変換ベースの1次変換にはDCTタイプ2、DSTタイプ7、DCTタイプ8、DCTタイプ5、DSTタイプ4、DSTタイプ1、IDT(identity transform)、又はそれ以外の不分離変換ではない変換(ex:変換スキップ)が含まれる。分離変換の場合、通常複数個の選択可能な変換が存在して、不分離変換の場合、分離変換に比べて比較的計算の複雑度やメモリ要求量がさらに大きい場合があるため選択可能な不分離変換の数が1つであるかそれ以上であり得る。
【0221】
例えば、1次変換に適用可能な不分離変換カーネルの数が1つであり、分離変換カーネルの数が複数である場合、次のように1次変換に対する変換インデックス情報がシグナリングされる。関連して、変換インデックス情報の値は変換インデックスと同じ意味であり得る。
【0222】
一例として、不分離変換に対する変換インデックスは0に設定することができ、分離変換に対する変換インデックスは1から始めることができる。即ち、不分離変換カーネルに関連する変換インデックス情報の値は0に設定することができ、分離変換カーネルに関連する変換インデックス情報の値は1から始めることができる。
【0223】
即ち、一例として、1次変換に適用される複数の変換カーネルが1個の不分離変換カーネルとM個の分離変換カーネルを含む場合、前記1個の不分離変換カーネルに関連する変換インデックス情報の値は0であり、前記M個の分離変換カーネルに関連する変換インデックス情報の値は1からMであり得る。このとき、一例として、Mは1より大きい正の整数であり得る。
【0224】
例えば、5種類の分離変換の可能性がある場合、変換インデックス0は不分離変換を示し、変換インデックス1から5は予め定義された分離変換を示すことができる。即ち、分離変換カーネルの数が5である場合、0の値を持つ変換インデックス情報は不分離変換を示し、1から5の値を持つ変換インデックス情報はそれぞれ予め定義された分離変換を示すことができる。これに応じて、0から5のうち、いずれか1つの変換インデックス値がエンコーディング装置(符号化装置)においてデコーディング装置(復号化装置)にシグナリングされる。そして、デコーディング装置(復号化装置)においてはデコーディング(復号か)された変換インデックスを介して不分離変換又は分離変換の使用可否を認識でき、複数の分離変換(カーネル)のうち、どの分離変換が使用されたか判別することができる。
【0225】
別の例として、不分離変換に対する変換インデックスが予め定義されたNに設定することができ、分離変換に対する変換インデックスが0から予め定義された最大インデックス値MまでNを除いた手順に応じて定義することができる(但し、M>=N)。即ち、不分離変換カーネルに関連する変換インデックス情報の値は予め定義されたNに設定することができ、分離変換カーネルに関連する変換インデックス情報の値は0から予め定義された最大インデックス値MまでNを除いた手順に応じて定義することができる。
【0226】
即ち、一例として、前記複数の変換カーネルが1個の不分離変換カーネルとM個の分離変換カーネルを含む場合、前記1個の不分離変換カーネルに関連する変換インデックス情報の値はNであり、前記M個の分離変換カーネルに関連する変換インデックス情報の値は0からN-1及びN+1からMであり得る。このとき、一例として、Mは1より大きい正の整数であり、NはMより小さい正の整数であり得る。
【0227】
例えば、利用可能な分離変換の数が5であり、不分離変換に対する変換インデックスが3(N)に予め定義された場合、分離変換に対する変換インデックスは0から5まで予め決められた手順に応じて割り当てられるが、3はスキップして決定される。即ち、分離変換カーネルの数が5であり、不分離変換カーネルに関連する変換インデックス情報の値が3に予め定義された場合、分離変換カーネルに関連する変換インデックス情報の値は0から5まで予め決められた手順に応じて割り当てられるが、3はスキップして、割り当てることができる。これに応じて、0から5のうち、いずれか1つの変換インデックス値がエンコーディング装置(符号化装置)においてデコーディング装置(復号化装置)にシグナリングされる。そして、デコーディング装置(復号化装置)においてはデコーディング(復号か)された変換インデックスを介して不分離変換又は分離変換の使用可否がわかり、複数の分離変換(カーネル)のうち、どの分離変換が使用されたか判別することができる。
【0228】
別の例として、前記1次変換に対する変換インデックス情報をシグナリングする前に不分離変換の使用可否を示すフラグをシグナリングすることができる。例えば、不分離変換の使用可否を示す前記フラグの値が0である場合、追加に分離変換に対する変換インデックス情報をシグナリングすることができる。例えば、前記フラグの値が1である場合、不分離変換カーネルの数が1つであり、分離変換カーネルの数が複数である場合に適用される上述の例示に応じて前記1次変換に対する変換インデックス情報をシグナリングすることができる。
【0229】
即ち、一例として、前記エンコーディングされた情報は1次変換に不分離変換カーネルが適用されるか否かを示すフラグを含むことができる。例えば、前記フラグの値0は1次変換に不分離変換カーネルが適用されないことを示すことができ、前記フラグの値1は1次変換に不分離変換カーネルが適用されることを示すことができる。また、例えば、前記フラグの値が0である場合、前記1次変換に対する変換インデックス情報は分離変換カーネルとのみ関連することができる。つまり、前記フラグの値が0であることは1次変換に不分離変換カーネルが適用されないことを示すため、前記1次変換に対する変換インデックス情報は分離変換カーネルとのみ関連することができる。
【0230】
このとき、例えば、不分離変換可否を示すフラグの値はコンテクストコーディングビン(context coded bin)を介して確率を予測してコーディングすることができる。即ち、前記フラグはコンテクストモデル(Context model)に基づいてコンテクストコーディング(Context coding)される。このとき、例えば、確率予測のためのコンテクストモデルは現在のブロックのサイズ、現在のブロックの形、現在のブロックに適用されるイントラ予測モード、及び/又は以前にコーディングされたブロックの情報などを利用して構成することができる。
【0231】
また、例えば、変換インデックス(又は分離変換カーネルに関連する変換インデックス)情報は固定長符号化(Fixed Length Coding,FLC)又は打ち切り二値コード(Truncated binary code、TBC)に基づいて二値化される。このとき、前記変換インデックスはコンテクストコーディング(Context coding)このとき、例えば、前記変換インデックス情報はコンテクストコーディング(Context coding)又はバイパスコーディング(Bypass coding)に基づいてコーディングすることができる。
【0232】
即ち、例えば、前記1次変換に対する変換インデックス(又は分離変換カーネルに関連する変換インデックス)値はFLC又はTBCに基づいて二値化され、コンテクストコーディング(context coded binに取り扱いしコーディング)又はバイパスコーディング(Bypass coding、即ち、bypass coded binに取り扱いしコーディング)を介してコーディングすることができる。
【0233】
又は、例えば、前記1次変換に対する変換インデックス情報はTruncated Unary code,TU codeに基づいて二値化することができる。このとき、例えば、前記変換インデックス情報はコンテクストコーディング又はバイパスコーディングに基づいてコーディングすることができる。
【0234】
即ち、例えば、前記1次変換に対する変換インデックス値はTU二値化を介して表現することができ、コンテクストコーディングを介して発生確率を予測してコーディングすることができるか、バイパスコーディングを介して同じ確率にコーディングすることができる。
【0235】
例えば、前記1次変換に適用可能な不分離変換カーネルの数が2以上であり、分離変換カーネルの数が複数である場合、次のように前記1次変換に対する変換インデックス情報がシグナリングされる。同様に、変換インデックス情報の値は変換インデックスと同じ意味であり得る。
【0236】
一例として、前記1次変換に対する変換インデックス情報をシグナリングする前に不分離変換の使用可否を示すフラグをシグナリングすることができる。例えば、不分離変換の使用可否を示す前記フラグの値が1である場合、不分離変換カーネルに関連する変換インデックス情報を追加にシグナリングすることができ、前記フラグの値が0である場合、分離変換カーネルに関連する変換インデックス情報を追加にシグナリングすることができる。
【0237】
即ち、上述のように、前記エンコーディングされた情報は前記1次変換に不分離変換カーネルが適用されるか否かを示すフラグを含むことができる。例えば、上述したように、前記フラグの値0は前記1次変換に不分離変換カーネルが適用されないことを示すことができ、前記フラグの値1は前記1次変換に不分離変換カーネルが適用されることを示すことができる。また、例えば、前記フラグの値が0である場合、前記1次変換に対する変換インデックス情報は分離変換カーネルに関連することができ、前記フラグの値が1である場合、前記1次変換に対する変換インデックス情報は不分離変換カーネルに関連することができる。つまり、前記フラグの値が0であることは前記1次変換に分離変換カーネルが適用されることを示すため、前記1次変換に対する変換インデックス情報は分離変換カーネルに関連することができ、前記フラグの値が1であることは前記1次変換に不分離変換カーネルが適用されることを示すため、前記1次変換に対する変換インデックス情報は不分離変換カーネルに関連することができる。
【0238】
即ち、例えば、前記複数の変換カーネルがL個の不分離変換カーネルとM個の分離変換カーネルを含み、前記フラグの値が1であることに基づいて、前記変換インデックス情報は不分離変換カーネルに関連することができ、L及びMは1より大きい正の整数であり得る。
【0239】
このとき、例えば、不分離変換カーネルに関連する変換インデックス情報又は分離変換カーネルに関連する変換インデックス情報はFLC又はTBCに基づいて二値化することができ、コンテクストコーディング又はバイパスコーディングに基づいてコーディングすることができる。
【0240】
即ち、例えば、前記不分離変換カーネルに関連する変換インデックス情報又は前記分離変換カーネルに関連する変換インデックス情報はFLC又はTBCに基づいて二値化することができ、コンテクストコーディング(context coded binに取り扱いしコーディング)又はバイパスコーディング(Bypass coding、即ち、bypass coded binに取り扱いしコーディング)を介してコーディングすることができる。
【0241】
又は、前記不分離変換カーネルに関連する変換インデックス情報又は前記分離変換カーネルに関連する変換インデックス情報はTU codeに基づいて二値化することができ、コンテクストコーディング又はバイパスコーディングに基づいてコーディングすることができる。
【0242】
即ち、例えば、前記不分離変換カーネルに関連する変換インデックス情報又は前記分離変換カーネルに関連する変換インデックス情報はTU二値化を介して表現することができ、コンテクストコーディングを介して発生確率を予測してコーディングすることができるか、バイパスコーディングを介して同じ確率にコーディングすることができる。
【0243】
このとき、例えば、不分離変換可否を示す前記フラグの値は上述のように、コンテクストコーディングビン(context coded bin)を介して確率を予測してコーディングすることができる。即ち、前記フラグはコンテクストモデル(Context model)に基づいてコンテクストコーディング(Context coding)することができる。このとき、例えば、確率予測のためのコンテクストモデルは現在のブロックのサイズ、現在のブロックの形、現在のブロックに適用されるイントラ予測モード、及び/又は以前にコーディングされたブロックの情報などを利用して構成することができる。
【0244】
別の例として、不分離変換の使用可否を示すフラグを別途シグナリングせず、前記1次変換に適用される全ての変換カーネルに対する変換インデックス情報を一度にシグナリングすることができる。例えば、不分離変換カーネルの数がLであり、利用可能な分離変換カーネルの数がMである場合、変換インデックス値0からL-1はそれぞれ予め決められたL個の不分離変換カーネルを示すことができ、変換インデックス値LからL+M-1はそれぞれ予め決められたM個の分離変換カーネルを示すことができる。即ち、例えば、変換インデックス値0からL-1は不分離変換カーネル0からL-1に対応することができ、変換インデックス値LからL+M-1は分離変換カーネル0からM-1に対応することができる。
【0245】
即ち、一例として、前記1次変換に適用される複数の変換カーネルがL個の不分離変換カーネルとM個の分離変換カーネルを含む場合、前記L個の不分離変換カーネルに関連する変換インデックス情報の値は0からL-1であり、前記M個の分離変換カーネルに関連する変換インデックス情報の値はLからL+M-1であり得る。このとき、一例として、L及びMは1より大きい正の整数であり得る。
【0246】
このように前記1次変換に対する変換インデックスを利用可能な分離変換カーネル及び不分離変換カーネルにマッピングする方法は上述の場合外にも予め定義された形で多様に適用することができる。
【0247】
例えば、不分離変換カーネルの数が1つ又は多数であり、分離変換カーネルの数が複数である上述の場合において、分離変換に関連する変換インデックスは水平方向と垂直方向に適用される変換を予め決められたルールに応じて決定することでシグナリングされる。又は、例えば、分離変換に関連する変換インデックスは水平方向に対する分離変換インデックスと垂直方向に対する分離変換インデックスに別途分かれて送信でき、各変換インデックスが指定する変換が該当方向に適用することもできる。
【0248】
このように、前記第2の実施形態のように前記1次変換に関連する情報を効率的にシグナリングすることで、ビット数削減及びコーディング性能改善の効果を期待することができる。
【0249】
本文書において提案される第3の実施形態によれば、前記1次変換が分離変換と不分離変換を全て含む場合、現在のブロック又は周辺ブロックの残差の特性を利用して次のように不分離1次変換を適用することができる。即ち、前記1次変換に適用される複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックに対する残差値に基づいて決定される。
【0250】
ここで、例えば、前記周辺ブロックは前記現在のブロックの直前にコーディングされたブロックであり得る。又は、例えば、前記周辺ブロックは前記現在のブロックの上部に隣接する周辺ブロック又は前記現在のブロックの左側に隣接する周辺ブロックであり得る。
【0251】
これに関連して、低い残差信号エネルギーを持つブロック、即ち、残差係数の数が少ないブロックは複数の不分離変換カーネルを使用することより1つの不分離変換カーネルを使用することが効率的であり得る。つまり、現在のブロック内の有効係数の数が少ない場合には、複数の不分離変換カーネルを使用することより1つの不分離変換カーネルを使用することが効率的であり得る。これを介して、不分離変換カーネルに対する情報をシグナリングするのに必要なビット数を削減することができ、さらに効率的な圧縮性能を得ることができる。逆に、高い残差信号エネルギーを持つブロック、即ち、残差係数の数が多いブロックは複数の不分離変換カーネルを使用することが効率的であり得る。つまり、現在のブロック内の有効係数の数が多い場合には様々な特性を持てるため追加的な情報のシグナリングが必要でも複数の不分離変換カーネルを使用することが効率的であり得る。これを介して、不分離変換の場合分離変換に比べて計算の複雑度やメモリ要求量がさらに大きいにも関わらず、本文書において提案される方法を介して計算の複雑度を減らし、消費電力を減らすことができる。
【0252】
一実施形態によれば、現在のブロック又は周辺ブロックの最後の有効係数の位置を利用して不分離1次変換を適用することができる。ここで、前記最後の有効係数は最後の0ではない係数を意味することができる。
【0253】
これに関連して、ブロック内の最後の有効係数の位置はブロックの残差特性を把握する重要な手掛かりになり得る。通常ブロック内で最後の有効係数の位置がブロックの左上ピクセル(top-left pixel)と近いほど空間領域においてピクセル値(サンプル値)の分布は一定して、ブロック内で前記最後の有効係数の位置がブロックの左上ピクセルと遠いほど空間領域においてピクセル値の分布は一定しない場合がある。即ち、ブロック内で前記最後の有効係数の位置がブロックの左上のサンプルと近いほど空間領域においてサンプル値の分散(variance)は小さくて、ブロック内で前記最後の有効係数の位置がブロックの左上のサンプルと遠いほど空間領域においてサンプル値の分散は大きい場合がある。
【0254】
例えば、ブロック内で前記最後の有効係数の位置を識別するための1次元位置情報を示す第1の変数を定義することができる。例えば、以下において説明される前記第1の変数はlastScanPosに表現することができる。このとき、例えば、ブロックの左上のサンプル位置に対する前記第1の変数は0に設定することができ、ブロックの右下側サンプル位置に行くほど前記第1の変数は大きい値を持つことができる。即ち、例えば、前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つことができる。
【0255】
また、例えば、デコーディング装置(復号化装置)において前記第1の変数は前記最後の有効係数の位置情報に関連したシンタックス要素の値に基づいて導出することができる。一例として、前記最後の有効係数の位置情報に関連したシンタックス要素はlast_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix及び/又はlast_sig_coeff_y_suffixであり得る。ここで、シンタックス要素last_sig_coeff_x_prefixは前記最後の有効係数の列位置の接頭(prefix)と示すことができ、シンタックス要素last_sig_coeff_y_prefixは前記最後の有効係数の行位置の接頭(prefix)を表すことができ、シンタックス要素last_sig_coeff_x_suffixは前記最後の有効係数の列位置の接尾(suffix)を示すことができ、シンタックス要素last_sig_coeff_y_suffixは前記最後の有効係数の行位置の接尾(suffix)を示すことができる。例えば、前記最後の有効係数の位置情報に関連したシンタックス要素は本文書において第1のシンタックス要素に表現することができる。また、一例として、ブロック内の係数はブロックサイズに応じて予め決められた係数のスキャン手順又は係数のスキャン手順の逆順に応じて割り当てることができる。
【0256】
このとき、例えば、現在のブロック又は周辺ブロックに対する前記第1の変数の値に応じて範囲(range)に分けて、次のように当該範囲に応じて不分離変換カーネルの数を変えることができる。
【0257】
一例として、2つの範囲が使われる場合、現在のブロック又は周辺ブロックに対する前記第1の変数の値が第1の閾値以下であれば1つの不分離変換カーネルが使用され、前記第1の変数の値が前記第1の閾値を超過すれば複数の不分離変換カーネルが使われる。即ち、現在のブロック又は周辺ブロックに対する前記第1の変数の値が前記第1の閾値以下であることに応じて前記最後の有効係数の位置がブロックの左上のサンプルに近い場合、1つの不分離変換カーネルが使用され、現在のブロック又は周辺ブロックに対する前記第1の変数の値が前記第1の閾値を超過することに応じて前記最後の有効係数の位置がブロックの右下のサンプルと比較的近い場合、複数の不分離変換カーネルが使われる。ここで、例えば、前記第1の閾値はth1に表現することができ、前記第1の閾値は予め決まる。
【0258】
別の例として、3個の範囲が使われる場合、現在のブロック又は周辺ブロックに対する前記第1の変数の値が第2の閾値以下であれば1つの不分離変換カーネルが使用され、前記第1の変数の値が前記第2の閾値を超過して、第3の閾値以下であればM個の不分離変換カーネルが使用され、前記第1の変数の値が前記第3の閾値を超過すればN個の不分離変換カーネルが使われる。ここで、例えば、Mは1より大きい整数であり、NはMより大きい整数であり得る。また、例えば、前記第2の閾値はth2に表現することができ、前記第3の閾値はth3に表現することができ、前記第2の閾値及び/又は前記第3の閾値は予め決めることができる。
【0259】
このとき、例えば、現在のブロック内の有効係数が左上のサンプル位置、即ち、DC位置にのみ存在する場合には前記第1の変数の値に係る範囲に基づいて不分離変換カーネルの数を変える前記の例が適用しない場合がある。例えば、現在のブロック内の有効係数が左上のサンプル位置、即ち、DC位置にのみ存在する場合には前記1次変換に分離変換(ex.DCT-2)又は別途の決められた変換方法が適用することができる。即ち、例えば、前記第1の変数の値が0である場合、前記1次変換に対する変換インデックス情報は分離変換カーネル(ex.DCT-2)又は予め決められた変換カーネルに関連することができる。
【0260】
一実施形態によれば、現在のブロック又は周辺ブロックに対する0ではない有効係数の数を利用して不分離1次変換を適用することができる。
【0261】
これに関連して、ブロック内の有効係数の数はブロックの残差特性を把握する重要な手掛かりになり得る。通常ブロック内で0ではない有効係数の数が少ないほど空間領域においてピクセル値(サンプル値)の分布は一定して、ブロック内で0ではない有効係数の数が多いほど空間領域においてピクセル値の分布は一定しない場合がある。即ち、ブロック内で0ではない有効係数の数が少ないほど空間領域においてサンプル値の分散は小さくて、ブロック内で0ではない有効係数の数が多いほど空間領域においてサンプル値の分散は大きい場合がある。
【0262】
例えば、ブロック内で0ではない有効係数の数を示す第2の変数を定義することができる。例えば、。以下において説明される前記第2の変数はnumSigCoeffに表現することができる。
【0263】
このとき、例えば、デコーディング装置(復号化装置)において前記第2の変数は有効係数の存在可否に関連したシンタックス要素の値に基づいて導出することができる。又は、例えば、前記第2の変数は有効係数に対する別途のカウンターを介して計算することができる。一例として、前記有効係数の存在可否に関連したシンタックス要素はsig_coeff_flag及び/又はsb_coded_flagであり得る。ここで、シンタックス要素sig_coeff_flagは特定変換係数の位置に有効係数が存在するか否かに関連することができ、シンタックス要素sb_coded_flagは特定サブブロック内に有効係数が存在するか否かに関連することができる。例えば、前記有効係数の存在可否に関連したシンタックス要素は本文書において第2のシンタックス要素に表現することができる。
【0264】
このとき、例えば、現在のブロック又は周辺ブロックに対する前記第2の変数の値に応じて範囲に分けて、次のように当該範囲に応じて不分離変換カーネルの数を変えることができる。
【0265】
一例として、2つの範囲が使われる場合、現在のブロック又は周辺ブロックに対する前記第2の変数の値が第4の閾値以下であれば1つの不分離変換カーネルが使用され、前記第2の変数の値が前記第4の閾値を超過すれば複数の不分離変換カーネルが使われる。即ち、現在のブロック又は周辺ブロックに対する前記第2の変数の値が前記第4の閾値以下であることに応じてブロック内の有効係数の数が少ない場合、1つの不分離変換カーネルが使用され、前記第2の変数の値が前記第4の閾値を超過することに応じてブロック内の有効係数の数が比較的多い場合、複数の不分離変換カーネルが使われる。ここで、例えば、前記第4の閾値はth4に表現することができ、前記第4の閾値は予め決めることができる。
【0266】
別の例として、3個の範囲が使われる場合、現在のブロック又は周辺ブロックに対する前記第2の変数の値が第5の閾値以下であれば1つの不分離変換カーネルが使用され、前記第2の変数の値が前記第5の閾値を超過して、第6の閾値以下であればK個の不分離変換カーネルが使用され、前記第2の変数の値が前記第6の閾値を超過すればL個の不分離変換カーネルが使われる。ここで、例えば、Kは1より大きい整数であり、LはKより大きい整数であり得る。また、例えば、前記第5の閾値はth5と表現することができ、前記第6の閾値はth6と表現することができ、前記第5の閾値及び/又は第6の閾値は予め決めることができる。
【0267】
このとき、例えば、現在のブロック内の有効係数が左上のサンプル位置、即ち、DC位置にのみ存在する場合には前記第2の変数の値に係る範囲に基づいて不分離変換カーネルの数を変える前記例が適用しない場合がある。例えば、現在のブロック内の有効係数が左上のサンプル位置、即ち、DC位置にのみ存在する場合には前記1次変換に分離変換(ex.DCT-2)又は別途の決められた変換方法が適用することができる。即ち、例えば、前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記1次変換に対する変換インデックス情報は分離変換カーネル(ex.DCT-2)又は予め決められた変換カーネルに関連することができる。
【0268】
また、例えば、デコーディング装置(復号化装置)において残差に関するシンタックスは不分離変換に関連する情報に先行してパージングすることができる。ここで、例えば、前記残差に関するシンタックスは残差情報を含むことができる。即ち、残差情報は不分離変換に関連する情報に先行してパージングすることができる。また、例えば、前記不分離変換に関連する情報は不分離変換の適用可否を示すフラグ及び/又は不分離変換に関連する変換インデックス情報を含むことができる。
【0269】
ここで、例えば、前記不分離変換の適用可否を示すフラグ及び/又は前記不分離変換に関連する変換インデックス情報は前記1次変換に関連する情報を効率的にシグナリングすることに関連する前記第2の実施形態に基づいてシグナリングされる。具体的な例として、前記第3の実施形態に応じて決定された現在のブロックの1次変換に対する不分離変換カーネルが1つである場合、前記第2の実施形態に係る1次変換に適用可能な不分離変換カーネルの数が1つであり、分離変換カーネルの数が複数である場合の例を適用することができる。また、前記第3の実施形態に応じて決定された現在のブロックの1次変換に対する不分離変換カーネルが複数である場合、前記第2の実施形態に係る1次変換に適用可能な不分離変換カーネルの数が2以上であり、分離変換カーネルの数が複数である場合の例が適用することができる。
【0270】
このように、前記第3の実施形態のように現在のブロック又は周辺ブロックの残差特性を利用して不分離1次変換を適用することで、不分離変換カーネルに関連する情報をシグナリングするのに必要なビット数を削減することができ、より効率的な圧縮性能を得ることができる。また、不分離変換が分離変換に比べて計算の複雑度やメモリ要求量がさらに大きいにも関わらず、前記第3の実施形態を介して、計算の複雑度を減らし、消費電力を減らすことができる。
【0271】
以下の図面は本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は例示的に提示されたことであるため、本明細書の技術的な特徴が以下の図面に使用された具体的な名称に限られない。
【0272】
図9及び図10は本文書の実施形態(ら)に係る映像/イメージエンコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0273】
図9に開示されている方法は図2において開示されているエンコーディング装置によって実行される。具体的に例えば、図9のS900からS930は図2のエンコーディング装置200の残差処理部230によって実行され、図9のS940はエンコーディング装置200のエントロピーエンコーディング部240によって実行される。図9に開示されている方法は本文書において上述の実施形態を含むことができる。
【0274】
図9を参照すれば、エンコーディング装置200は現在のブロックに対する残差サンプルを導出する。(S900)。例えば、エンコーディング装置200は現在のブロックに対する予測サンプルを導出して、導出された予測サンプルに基づいて前記現在のブロックに対する残差サンプルを導出することができる。
【0275】
エンコーディング装置200は変換カーネルに基づいて1次変換を実行することで変換係数を導出する(S910)。例えば、エンコーディング装置200は前記残差サンプルに対して変換カーネルに基づいて1次変換を実行することで、前記現在のブロックに対する変換係数を導出することができる。例えば、前記変換カーネルは複数の変換カーネルのうち、前記1次変換に適用される変換カーネルであり、変換マトリックスと呼べる。また、例えば、前記変換カーネルは前記複数の変換カーネルのうち、イントラ予測モードに基づいて選択することができる。また、前記変換カーネルは不分離変換カーネル又は分離変換カーネルのうち、いずれか1つであり得る。
【0276】
エンコーディング装置200は変換カーネルに関連する変換インデックス情報を生成する。(S920)。例えば、エンコーディング装置200は前記複数の変換カーネルのうち、前記変換カーネルに関連する変換インデックス情報を生成することができる。
【0277】
エンコーディング装置200は変換係数に基づいて残差情報を生成する(S930)。即ち、例えば、エンコーディング装置200は前記1次変換を実行することで導出された前記現在のブロックに対する前記変換係数に基づいて残差情報を生成することができる。
【0278】
また、例えば、S930は前記変換係数に対して不分離変換である2次変換を実行することで、前記現在のブロックに対する修正された変換係数を導出するステップ及び前記修正された変換係数に基づいて残差情報を生成するステップを含むことができる。即ち、エンコーディング装置200は前記1次変換を実行することで導出された前記現在のブロックに対する前記変換係数に対して不分離変換である2次変換を実行することで、前記現在のブロックに対する修正された変換係数を導出して、前記修正された変換係数に基づいて残差情報を生成することができる。
【0279】
例えば、前記変換インデックス情報が分離変換カーネルに関連することに基づいてS930は前記変換係数に対して不分離変換である2次変換を実行することで、前記現在のブロックに対する修正された変換係数を導出するステップ及び前記修正された変換係数に基づいて残差情報を生成するステップを含むことができる。即ち、例えば、エンコーディング装置200は前記変換インデックス情報が分離変換カーネルに関連する場合、前記変換係数に対して不分離変換である2次変換を実行することで前記現在のブロックに対する修正された変換係数を導出して、前記修正された変換係数に基づいて前記残差情報を生成することができる。
【0280】
このとき、例えば、エンコーディング装置200は前記変換係数に対してLFNSTマトリックスに基づいてLFNSTを適用することで、前記変換係数を導出することができる。一例として、前記LFNSTは2次変換であり、前記RSTが反映された不分離2次変換を含むことができる。このとき、2次変換に適用されるLFNSTマトリックスは行の数が列の数より少ない非正方形マトリックスであり得る。
【0281】
また、例えば、エンコーディング装置200は前記修正された変換係数に対する量子化を実行して量子化された変換係数を導出して、前記量子化された変換係数に対する残差情報を生成することができる。例えば、残差情報はLFNSTに関連した情報など上述の変換関連情報/シンタックス要素を含むことができる。
【0282】
エンコーディング装置200は映像情報をエンコーディングする(S940)。例えば、エンコーディング装置200は前記変換インデックス情報及び前記残差情報を含む映像情報をエンコーディングすることができる。また、前記映像情報は前記現在のブロックに対する予測サンプルに関連する予測関連情報を更に含むことができる。
【0283】
また、前記映像/イメージ情報は本文書の実施形態に係る様々な情報を含むことができる。一例として、前記映像/イメージ情報はピクチャ復元のための情報を含むことができる。前記ピクチャ復元のための情報は予測に関連する情報、変換に関連する情報及びフィルタリングに関連する情報などを含むことができる。
【0284】
エンコーディングされた映像/イメージ情報はビットストリーム形で出力される。前記ビットストリームはネットワーク又は記憶媒体を介してデコーディング装置に送信される。
【0285】
これに関連して、本文書において提案された一実施形態によれば、前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含むことができる。また、前記一実施形態によれば、前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックに対する残差(残差)値に基づいて決定される。
【0286】
本文書において提案された一実施形態によれば、前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含むことができる。ここで、例えば、前記第1のシンタックス要素はlast_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix及び/又はlast_sig_coeff_y_suffixを含むことができる。
【0287】
このとき、一例として、前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出することができる。例えば、前記第1の変数はlastScanPosに表現することができる。
【0288】
また、一例として、前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つことができる。
【0289】
このとき、本文書において提案された一実施形態によれば、前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことができる。
【0290】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含むことができ、前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含むことができる。このとき、一例として、Mは1より大きい整数であり、NはMより大きい整数であり得る。
【0291】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が0である場合に基づいて、前記1次変換に対する前記変換インデックス情報は分離変換カーネルに関連することができる。
【0292】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が0である場合に基づいて、前記1次変換に対する前記変換インデックス情報は予め決められた変換カーネルに関連することができる。
【0293】
本文書において提案された一実施形態によれば、前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含むことができる。ここで、例えば、前記第2のシンタックス要素はsig_coeff_flag及び/又はsb_coded_flagを含むことができる。
【0294】
このとき、一例として、前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出することができる。例えば、前記第2の変数はnumSigCoeffに表現することができる。
【0295】
このとき、本文書において提案された一実施形態によれば、前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことができる。
【0296】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が予め決められた第5の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第2の変数の値が前記第5の閾値を超過して、予め決められた第6の閾値以下であれば前記複数の変換カーネルはK個の不分離変換カーネルを含むことができ、前記第2の変数の値が前記第6の閾値を超過すれば前記複数の変換カーネルはL個の不分離変換カーネルを含むことができる。このとき、一例として、Kは1より大きい整数であり、LはKより大きい整数であり得る。
【0297】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記1次変換に対する前記変換インデックス情報は分離変換カーネルに関連することができる。
【0298】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記1次変換に対する前記変換インデックス情報は予め決められた変換カーネルに関連することができる。
【0299】
本文書において提案された一実施形態によれば、前記残差情報は前記1次変換に不分離変換カーネルが適用されるか否かを示すフラグを更に含むことができる。このとき、一例として、前記残差情報は前記フラグ及び不分離変換カーネルに関連する前記変換インデックス情報より先にパージングすることができる。
【0300】
図11及び図12は本文書の実施形態に係る映像/イメージデコーディング方法及び関連コンポーネントの一例を概略的に示す。
【0301】
図11において開示されている方法は図3において開示されているデコーディング装置によって実行される。具体的に例えば、図11のS1100はデコーディング装置300のエントロピーデコーディング部310によって実行され、S1110及びS1120はデコーディング装置300の残差処理部320によって実行され、S1130は加算部340によって実行される。図11に開示されている方法は本文書において上述の実施形態を含むことができる。
【0302】
図11を参照すればデコーディング装置300はビットストリームを介して映像情報を獲得する。(S1100)。例えば、デコーディング装置300はビットストリームを介して映像/イメージ情報を受信/獲得することができる。一例として、前記映像/イメージ情報は残差情報及び変換インデックス情報を含むことができる。又は、一例として、前記映像/イメージ情報は予測関連情報を更に含むことができる。
【0303】
また、前記映像/イメージ情報は本文書の実施形態に係る様々な情報を含むことができる。一例として、前記映像/イメージ情報はピクチャ復元のための情報を含むことができる。前記ピクチャ復元のための情報は予測に関連する情報、変換に関連する情報及びフィルタリングに関連する情報などを含むことができる。
【0304】
デコーディング装置300は残差情報に基づいて変換係数を導出する(S1110)。例えば、デコーディング装置300は前記残差情報に基づいて現在のブロックに対する変換係数を導出することができる。例えば、デコーディング装置300は前記残差情報から前記現在のブロックに対する量子化された変換係数を導出することができる。また、デコーディング装置300は前記量子化された変換係数に対して逆量子化を実行することで、前記現在のブロックに対する変換係数を導出することができる。また、例えば、残差情報はLFNSTに関連した情報など上述の変換関連情報/シンタックス要素を含むことができる。
【0305】
デコーディング装置300は変換カーネルを使用して1次変換を実行することで、残差サンプルを導出する(S1120)。例えば、デコーディング装置300は前記変換係数に基づいて複数の変換カーネルのうち、前記変換インデックス情報に関連した変換カーネルを使用して1次変換を実行することで、前記現在のブロックに対する残差サンプルを導出することができる。例えば、前記変換カーネルは複数の変換カーネルのうち、前記1次変換に適用される変換カーネルであり、変換マトリックスと呼べる。また、例えば、前記変換カーネルは前記複数の変換カーネルのうち、イントラ予測モードに基づいて選択することができる。また、前記変換カーネルは不分離変換カーネル又は分離変換カーネルのうち、いずれか1つであり得る。また、前記1次変換は逆1次変換であり得る。
【0306】
また、例えば、S1120は前記変換係数に対して不分離変換である2次変換を実行することで、前記現在のブロックに対する修正された変換係数を導出するステップ及び前記修正された変換係数に対して前記変換インデックス情報に関連した変換カーネルを使用して前記1次変換を実行することで、前記現在のブロックに対する残差サンプルを導出するステップを含むことができる。
【0307】
このとき、例えば、デコーディング装置300は前記変換係数に対してLFNSTマトリックスに基づいてLFNSTを適用することで、前記修正された変換係数を導出することができる。一例として、前記LFNSTは2次(逆)変換であり、前記RSTが反映された不分離2次(逆)変換を含むことができる。このとき、2次(逆)変換に適用されるLFNSTマトリックスは列の数が行の数より少ない非正方形マトリックスであり得る。
【0308】
デコーディング装置300は現在のブロックに対する復元サンプルを生成する(S1130)。例えば、デコーディング装置300は前記残差サンプルに基づいて前記現在のブロックに対する復元サンプルを生成することができる。また、デコーディング装置300は前記残差サンプルに基づいて前記復元サンプルを含む復元ピクチャを生成することができる。また、デコーディング装置300は復元ピクチャに対して様々なフィルタリング方法を適用して修正された復元ピクチャを生成することができる。前記修正された復元ピクチャはデコーディングされたピクチャとして出力及び/又は復号ピクチャバッファー又はメモリ360に格納することができ、以降ピクチャのデコーディング時、インター予測手順において参照ピクチャに使われる。
【0309】
これに関連して、本文書において提案された一実施形態によれば、前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含むことができる。また、前記一実施形態によれば、前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックに対する残差(残差)値に基づいて決定される。
【0310】
本文書において提案された一実施形態によれば、前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含むことができる。ここで、例えば、前記第1のシンタックス要素はlast_sig_coeff_x_prefix、last_sig_coeff_y_prefix、last_sig_coeff_x_suffix及び/又はlast_sig_coeff_y_suffixを含むことができる。
【0311】
このとき、一例として、前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出することができる。例えば、前記第1の変数はlastScanPosに表現することができる。
【0312】
また、一例として、前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つことができる。
【0313】
このとき、本文書において提案された一実施形態によれば、前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことができる。
【0314】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含むことができ、前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含むことができる。このとき、一例として、Mは1より大きい整数であり、NはMより大きい整数であり得る。
【0315】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が0である場合に基づいて、前記1次変換に対する前記変換インデックス情報は分離変換カーネルに関連することができる。
【0316】
又は、本文書において提案された一実施形態によれば、前記第1の変数の値が0である場合に基づいて、前記1次変換に対する前記変換インデックス情報は予め決められた変換カーネルに関連することができる。
【0317】
本文書において提案された一実施形態によれば、前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含むことができる。ここで、例えば、前記第2のシンタックス要素はsig_coeff_flag及び/又はsb_coded_flagを含むことができる。
【0318】
このとき、一例として、前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出することができる。例えば、前記第2の変数はnumSigCoeffに表現することができる。
【0319】
このとき、本文書において提案された一実施形態によれば、前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含むことができる。
【0320】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が予め決められた第5の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含むことができ、前記第2の変数の値が前記第5の閾値を超過して、予め決められた第6の閾値以下であれば前記複数の変換カーネルはK個の不分離変換カーネルを含むことができ、前記第2の変数の値が前記第6の閾値を超過すれば前記複数の変換カーネルはL個の不分離変換カーネルを含むことができる。このとき、一例として、Kは1より大きい整数であり、LはKより大きい整数であり得る。
【0321】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記1次変換に対する前記変換インデックス情報は分離変換カーネルに関連することができる。
【0322】
又は、本文書において提案された一実施形態によれば、前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記1次変換に対する前記変換インデックス情報は予め決められた変換カーネルに関連することができる。
【0323】
本文書において提案された一実施形態によれば、前記残差情報は前記1次変換に不分離変換カーネルが適用されるか否かを示すフラグを更に含むことができる。このとき、一例として、前記残差情報は前記フラグ及び不分離変換カーネルに関連する前記変換インデックス情報より先にパージングすることができる。
【0324】
上述の実施形態において、方法は一連のステップ又はブロックとしてフロー図に基づいて説明されているが、該当実施形態はステップの手順に限られるものではなく、あるステップは上述したものと異なるステップと異なる順序で又は同時に発生することができる。また、当業者であれば、フロー図に示されたステップが排他的ではなく、他のステップが含まれるかフロー図の1つ又はそれ以上のステップが本文書の実施形態の範囲に影響を与えず、削除される場合があることを理解することができる。
【0325】
上述の本文書の実施形態に係る方法はソフトウェアの形で実装することができ、本文書に係るエンコーディング装置及び/又はデコーディング装置は例えばTV、コンピューター、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれる。
【0326】
本文書において、実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合実装のための情報(ex.information on instructions)又はアルゴリズムをデジタル記憶媒体に格納することができる。
【0327】
また、本文書の実施形態(ら)が適用されるデコーディング装置及びエンコーディング装置はマルチメディア放送送受信装置、モバイル通信端末、ホームシアター映像装置、デジタルシネマ映像装置、監視カメラ、映像会話装置、映像通信のようなリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、ビデオカメラ、注文型映像(VoD)サービス提供装置、OTT映像(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)映像装置、VR(virtual reality)装置、AR(argumente reality)装置、テレビ電話ビデオ装置、運送手段、端末(ex.車両(自律走行車両を含む)端末、飛行機端末、船舶端末など)及び医療用ビデオ装置などに含むことができ、ビデオ信号又はデータ信号を処理するために使われる。例えば、OTT映像(Over the top video)装置にはゲームコンソール、ブルーレイプレイヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
【0328】
また、本文書の実施形態(ら)が適用される処理方法はコンピューターに実行されるプログラムの形で生産でき、コンピューター可読記録媒体に格納することができる。本文書の実施形態(ら)に係るデータ構造を持つマルチメディアデータもまたコンピューター可読記録媒体に格納することができる。前記コンピューター可読記録媒体はコンピューターに可読データが格納される全てのタイプの記憶装置及び分散記憶装置を含む。前記コンピューター可読記録媒体は、例えば、ブルーレイディスク(BD)、汎用シリアルバス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク及び光データ記憶装置を含むことができる。また、前記コンピューター可読記録媒体は搬送波(例えば、インターネットを介した送信)の形で実装されたメディアを含む。また、エンコーディング方法に生成されたビットストリームがコンピューター可読記録媒体に格納されるか有無線通信ネットワークを介して送信される。
【0329】
また、本文書の実施形態(ら)はプログラムコードによるコンピュータープログラム製品に実装することができ、前記プログラムコードは本文書の実施形態(ら)によってコンピューターにおいて実行することができる。前記プログラムコードはコンピューターによって可読キャリア上に格納することができる。
【0330】
図13は本文書において開示されている実施形態を適用することができるコンテンツストリーミングシステムの例を示す。
【0331】
図13を参照すれば、本文書の実施形態が適用されるコンテンツストリーミングシステムは大きくエンコーディングサーバー、ストリーミングサーバー、ウェブサーバー、メディア格納、ユーザー装置及びマルチメディア入力装置を含むことができる。
【0332】
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。前記ビットストリームは、本文書が適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
【0333】
前記ビットストリームは本文書の実施形態が適用されるエンコーディング方法又はビットストリーム生成方法によって生成することができ、前記ストリーミングサーバーは前記ビットストリームを送信又は受信するプロセスにおいて一時的に前記ビットストリームを格納することができる。
【0334】
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、どのようなサービスがあるかをユーザに知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
【0335】
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間に格納することができる。
【0336】
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがある。
【0337】
前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
【0338】
本明細書に記載された請求項は、多様な方式で組み合わせられることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置で具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法で具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置で具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法で具現されることができる。
図1
図2
図3
図4
図5
図6
図7(a)】
図7(b)】
図8
図9
図10
図11
図12
図13
【手続補正書】
【提出日】2024-06-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコーディング装置によって実行される映像デコーディング方法において、
ビットストリームを介して映像情報を獲得するステップであって、前記映像情報は残差情報及び変換インデックス情報を含むステップと、
前記残差情報に基づいて現在のブロックに対する変換係数を導出するステップと、
前記変換係数に基づいて複数の変換カーネルのうちの、前記変換インデックス情報に関連した変換カーネルを使用して1次変換を実行することで、前記現在のブロックに対する残差サンプルを導出するステップと、
前記残差サンプルに基づいて前記現在のブロックに対する復元サンプルを生成するステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックに対する残差値に基づいて決定される、映像デコーディング方法。
【請求項2】
前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含み、
前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出され、
前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つ、請求項1に記載の映像デコーディング方法。
【請求項3】
前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含む、請求項2に記載の映像デコーディング方法。
【請求項4】
前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含み、
前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含み、
Mは1より大きい整数であり、NはMより大きい整数である、請求項2に記載の映像デコーディング方法。
【請求項5】
前記第1の変数の値が0であることに基づいて、前記変換インデックス情報は分離変換カーネルに関連する、請求項2に記載の映像デコーディング方法。
【請求項6】
前記第1の変数の値が0であることに基づいて、前記変換インデックス情報は予め決められた変換カーネルに関連する、請求項2に記載の映像デコーディング方法。
【請求項7】
前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含み、
前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出される、請求項1に記載の映像デコーディング方法。
【請求項8】
前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含む、請求項7に記載の映像デコーディング方法。
【請求項9】
前記第2の変数の値が予め決められた第5の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第5の閾値を超過して、予め決められた第6の閾値以下であれば前記複数の変換カーネルはK個の不分離変換カーネルを含み、
前記第2の変数の値が前記第6の閾値を超過すれば前記複数の変換カーネルはL個の不分離変換カーネルを含み、
Kは1より大きい整数であり、LはKより大きい整数である、請求項7に記載の映像デコーディング方法。
【請求項10】
前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみに有効係数が存在することに基づいて、前記変換インデックス情報は分離変換カーネルに関連する、請求項7に記載の映像デコーディング方法。
【請求項11】
前記第2の変数の値が1であり、前記現在のブロック内の左上のサンプル位置にのみ有効係数が存在することに基づいて、前記変換インデックス情報は予め決められた変換カーネルに関連する、請求項7に記載の映像デコーディング方法。
【請求項12】
前記映像情報は前記1次変換に不分離変換カーネルが適用されるか否かを示すフラグをさらに含み、
前記残差情報は前記フラグ及び不分離変換カーネルに関連する前記変換インデックス情報より先にパージングされる、請求項1に記載の映像デコーディング方法。
【請求項13】
エンコーディング装置によって実行される映像エンコーディング方法において、
現在のブロックに対する残差サンプルを導出するステップと、
前記残差サンプルに対して変換カーネルに基づいて1次変換を実行することで、前記現在のブロックに対する変換係数を導出するステップと、
複数の変換カーネルのうちの、前記変換カーネルに関連する変換インデックス情報を生成するステップと、
前記変換係数に基づいて残差情報を生成するステップと、
前記変換インデックス情報及び前記残差情報を含む映像情報をエンコーディングするステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックの残差値に基づいて決定される、映像エンコーディング方法。
【請求項14】
前記残差情報は最後の有効係数の位置情報に関連した第1のシンタックス要素を含み、
前記現在のブロック内の最後の有効係数の1次元位置情報を示す第1の変数は前記第1のシンタックス要素に基づいて導出され、
前記第1の変数は前記現在のブロックの左上のサンプル位置に対して0の値を持ち、前記第1の変数は前記現在のブロックの左上のサンプル位置を基準に右下に位置するサンプルであるほど大きい値を持つ、請求項13に記載の映像エンコーディング方法。
【請求項15】
前記第1の変数の値が予め決められた第1の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第1の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含む、請求項14に記載の映像エンコーディング方法。
【請求項16】
前記第1の変数の値が予め決められた第2の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第1の変数の値が前記第2の閾値を超過して、予め決められた第3の閾値以下であれば前記複数の変換カーネルはM個の不分離変換カーネルを含み、
前記第1の変数の値が前記第3の閾値を超過すれば前記複数の変換カーネルはN個の不分離変換カーネルを含み、
Mは1より大きい整数であり、NはMより大きい整数である、請求項14に記載の映像エンコーディング方法。
【請求項17】
前記残差情報は有効係数の存在可否に関連した第2のシンタックス要素を含み、
前記現在のブロック内の有効係数の数を示す第2の変数は前記第2のシンタックス要素に基づいて導出される、請求項13に記載の映像エンコーディング方法。
【請求項18】
前記第2の変数の値が予め決められた第4の閾値以下であれば前記複数の変換カーネルは1つの不分離変換カーネルを含み、
前記第2の変数の値が前記第4の閾値を超過すれば前記複数の変換カーネルは複数の不分離変換カーネルを含む、請求項17に記載の映像エンコーディング方法。
【請求項19】
映像に対するデータの送信方法において、
前記映像に対するビットストリームを獲得するステップであって、前記ビットストリームは、現在のブロックに対する残差サンプルを導出することと、前記残差サンプルに対して変換カーネルに基づいて1次変換を実行することで、前記現在のブロックに対する変換係数を導出することと、複数の変換カーネルのうちの、前記変換カーネルに関連する変換インデックス情報を生成することと、前記変換係数に基づいて残差情報を生成することと、前記変換インデックス情報及び前記残差情報を含む映像情報をエンコーディングすることに基づいて生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップを含み、
前記複数の変換カーネルは分離変換カーネルと不分離変換カーネルを含み、
前記複数の変換カーネルに含まれる不分離変換カーネルの数は前記現在のブロックの残差値に基づいて決定される、送信方法。
【国際調査報告】