(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024026805
(43)【公開日】2024-02-28
(54)【発明の名称】非分離二次変換に基づいた画像コーディング方法及びその装置
(51)【国際特許分類】
H04N 19/12 20140101AFI20240220BHJP
H04N 19/136 20140101ALI20240220BHJP
H04N 19/157 20140101ALI20240220BHJP
H04N 19/176 20140101ALI20240220BHJP
H04N 19/70 20140101ALI20240220BHJP
【FI】
H04N19/12
H04N19/136
H04N19/157
H04N19/176
H04N19/70
【審査請求】有
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2024004969
(22)【出願日】2024-01-17
(62)【分割の表示】P 2023027517の分割
【原出願日】2018-12-13
(31)【優先権主張番号】62/599,021
(32)【優先日】2017-12-15
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502032105
【氏名又は名称】エルジー エレクトロニクス インコーポレイティド
【氏名又は名称原語表記】LG ELECTRONICS INC.
【住所又は居所原語表記】128, Yeoui-daero, Yeongdeungpo-gu, 07336 Seoul,Republic of Korea
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100165191
【弁理士】
【氏名又は名称】河合 章
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100159259
【弁理士】
【氏名又は名称】竹本 実
(72)【発明者】
【氏名】メウディ サレヒファー
(72)【発明者】
【氏名】キム スンファン
(72)【発明者】
【氏名】イム ジェヒョン
(72)【発明者】
【氏名】ク ムンモ
(57)【要約】
【課題】画像コーディング効率を高める方法及び装置を提供する。
【解決手段】デコード装置により行われる画像デコード方法は、ビットストリームから対象ブロックの変換係数を導出するステップと、前記対象ブロックに対するNSST(Non-Separable Secondary Transform)インデックスを導出するステップと、前記対象ブロックの前記変換係数に基づいて前記対象ブロックのレジデュアルサンプルを生成するステップとを含む。
【選択図】
図15
【特許請求の範囲】
【請求項1】
デコード装置により行われる画像デコード方法において、
ビットストリームから変換係数に関する情報を取得することにより、対象ブロックの前記変換係数を導出するステップと、
前記ビットストリームに含まれる非分離変換インデックスに関する情報から、前記対象ブロックに対する前記非分離変換インデックスを導出するステップであって、前記非分離変換インデックスの値が0であることは、非分離変換が前記対象ブロックに対して使用されないことを表し、前記非分離変換インデックスの値が0でないことは、変換マトリックスの1つが前記非分離変換に対して使用されることを表す、ステップと、
前記対象ブロックの前記変換係数に対する逆変換を実行することにより前記対象ブロックのレジデュアルサンプルを導出するステップであって、前記逆変換は、前記非分離変換インデックスを使用して実行される、ステップと、
前記レジデュアルサンプルに基づいて復元ピクチャを生成するステップであって、前記復元ピクチャ内の復元サンプルは、前記レジデュアルサンプルを使用して導出される、ステップと、を含み、
前記非分離変換インデックスの値が0でない場合、前記非分離変換に基づく前記逆変換は、前記非分離変換インデックスにより示される逆変換マトリックスを使用して実行され、
前記逆変換マトリックスのサイズはN×Rであり、
前記Rは、前記非分離変換に基づく前記逆変換が適用される入力変換係数の数と等しく、前記Nは、前記非分離変換に基づく前記逆変換の出力変換係数の数と等しく、N個の出力変換係数は、前記対象ブロックの左上端対象領域内に位置し、
前記Rは前記Nより小さく、
前記対象ブロックに対する前記非分離変換インデックスを導出するステップは、
前記対象ブロックの前記変換係数のうちR+1番目からN番目の変換係数をスキャンするステップと、
前記R+1番目からN番目の変換係数に0でない変換係数が含まれる場合、前記非分離変換インデックスの値を0として導出するステップと、を含む、画像デコード方法。
【請求項2】
エンコード装置により行われる画像エンコードの方法において、
対象ブロックのレジデュアルサンプルを導出するステップと、
前記対象ブロックの前記レジデュアルサンプルに対する変換を実行することにより前記対象ブロックの変換係数を導出するステップと、
非分離変換インデックスを導出するステップであって、前記非分離変換インデックスの値が0であることは、非分離変換が前記対象ブロックに対して使用されないことを表し、前記非分離変換インデックスの値が0でないことは、変換マトリックスの1つが前記非分離変換に対して使用されることを表す、ステップと、
前記変換係数に関する情報及び前記非分離変換インデックスに関する情報の少なくとも1つを含む画像情報をエンコードするステップと、を含み、
前記非分離変換インデックスの値が0でない場合、前記非分離変換インデックスにより示される変換マトリックスを使用して、前記対象ブロックの左上端対象領域に含まれる係数に対する前記非分離変換に基づく前記変換を実行することにより、前記変換係数が導出され、
前記変換マトリックスのサイズはR×Nであり、
前記Nは、前記非分離変換に基づく前記変換が適用される入力変換係数の数と等しく、N個の入力変換係数は、前記対象ブロックの前記左上端対象領域に含まれる係数であり、前記Rは、前記非分離変換に基づく前記変換の出力変換係数の数と等しく、
前記Rは前記Nより小さく、
前記対象ブロックに対する前記非分離変換インデックスを導出するステップは、
前記対象ブロックの前記変換係数のうちR+1番目からN番目の変換係数をスキャンするステップと、
前記R+1番目からN番目の変換係数に0でない変換係数が含まれる場合、前記非分離変換インデックスの値を0として決定するステップと、を含む、画像エンコード方法。
【請求項3】
画像に対するデータの送信方法において、
前記画像に対するビットストリームを取得するステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み、
前記ビットストリームは、対象ブロックのレジデュアルサンプルを導出し、前記対象ブロックの前記レジデュアルサンプルに対する変換を実行することにより前記対象ブロックの変換係数を導出し、非分離変換インデックスを導出し、前記非分離変換インデックスの値が0であることは、非分離変換が前記対象ブロックに対して使用されないことを表し、前記非分離変換インデックスの値が0でないことは、変換マトリックスの1つが前記非分離変換に対して使用されることを表し、前記変換係数に関する情報及び前記非分離変換インデックスに関する情報の少なくとも1つを含む画像情報をエンコードすることに基づいて生成され、
前記非分離変換インデックスの値が0でない場合、前記非分離変換インデックスにより示される変換マトリックスを使用して、前記対象ブロックの左上端対象領域に含まれる係数に対する前記非分離変換に基づく前記変換を実行することにより、前記変換係数が導出され、
前記変換マトリックスのサイズはR×Nであり、
前記Nは、前記非分離変換に基づく前記変換が適用される入力変換係数の数と等しく、N個の入力変換係数は、前記対象ブロックの前記左上端対象領域に含まれる係数であり、前記Rは、前記非分離変換に基づく前記変換の出力変換係数の数と等しく、
前記Rは前記Nより小さく、
前記対象ブロックに対する前記非分離変換インデックスを導出することは、
前記対象ブロックの前記変換係数のうちR+1番目からN番目の変換係数をスキャンすることと、
前記R+1番目からN番目の変換係数に0でない変換係数が含まれる場合、前記非分離変換インデックスの値を0として決定することと、を含む、データ送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像コーディング技術に関し、より詳細には、画像コーディングシステムにおける非分離二次変換による画像デコード方法及び装置に関する。
【背景技術】
【0002】
最近、HD(High Definition)映像及びUHD(Ultra High Definition)映像のような高解像度、高品質の映像に対する需要が多様な分野で増加している。映像データが高解像度、高品質になるほど、既存の映像データに比べて相対的に送信される情報量またはビット量が増加するため、既存の有無線広帯域回線のような媒体を利用して映像データを送信するか、または既存の格納媒体を利用して映像データを格納する場合、送信費用と格納費用が増加する。
【0003】
これによって、高解像度、高品質映像の情報を効果的に送信または格納し、再生するために高効率の映像圧縮技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の技術的課題は、画像コーディング効率を高める方法及び装置を提供することにある。
【0005】
本発明の他の技術的課題は、対象ブロックに対してNSSTを適用する画像デコード方法及び装置を提供することにある。
【0006】
本発明の他の技術的課題は、対象ブロックの特定条件に基づいてNSSTインデックスの範囲を導出する画像デコード方法や装置を提供することにある。
【0007】
本発明の他の技術的課題は、対象ブロックの変換係数に基づいてNSSTインデックスをコーディングするか否かを決定する画像デコード方法及び装置を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一実施形態によれば、デコード装置により行われる画像デコード方法が提供される。前記方法は、ビットストリームから対象ブロックの変換係数を導出するステップと、前記対象ブロックに対するNSST(Non-Separable Secondary Transform)インデックスを導出するステップと、前記NSSTインデックスに基づいて前記対象ブロックの前記変換係数に対する逆変換(inversed transform)を行って前記対象ブロックのレジデュアルサンプルを導出するステップと、前記レジデュアルサンプルに基づいて復元ピクチャを生成するステップとを含むことを特徴とする。
【0009】
本発明の他の実施形態によれば、画像デコードを行うデコード装置が提供される。前記デコード装置は、ビットストリームから対象ブロックの変換係数を導出し、前記対象ブロックに対するNSST(Non-Separable Secondary Transform)インデックスを導出するエントロピーデコード部と、前記NSSTインデックスに基づいて前記対象ブロックの前記変換係数に対する逆変換(inversed transform)を行って前記対象ブロックのレジデュアルサンプルを導出する逆変換部と、前記レジデュアルサンプルに基づいて復元ピクチャを生成する加算部とを含むことを特徴とする。
【0010】
本発明のまた他の実施形態によれば、エンコード装置により行われるビデオエンコード方法を提供する。前記方法は、対象ブロックのレジデュアルサンプルを導出するステップと、前記レジデュアルサンプルに対する変換(transform)を行って前記対象ブロックの変換係数を導出するステップと、前記対象ブロックに対するNSSTインデックスのエンコード可否を決定するステップと、前記変換係数に関する情報をエンコードするステップとを含むものの、前記NSSTインデックスのエンコード可否を決定するステップは、前記対象ブロックの前記変換係数のうちR+1番目からN番目の変換係数をスキャンするステップと、前記R+1番目からN番目の変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスのエンコードしないと決定するステップとを含み、前記Nは、前記対象ブロックの左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さいことを特徴とする。
【0011】
本発明のまた他の実施形態によれば、ビデオエンコード装置を提供する。前記エンコード装置は、対象ブロックのレジデュアルサンプルを導出する加算部と、前記レジデュアルサンプルに対する変換(transform)を行って前記対象ブロックの変換係数を導出する変換部と、前記対象ブロックに対するNSSTインデックスのエンコード可否を決定し、前記変換係数に関する情報をエンコードするエントロピーエンコード部とを含むものの、前記エントロピーエンコード部は、前記対象ブロックの前記変換係数のうちR+1番目からN番目の変換係数をスキャンし、前記R+1番目からN番目の変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスのエンコードしないと決定し、前記Nは、前記対象ブロックの左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さいことを特徴とする。
【発明の効果】
【0012】
本発明によれば、NSSTインデックスの範囲を対象ブロックの特定条件に基づいて導出することができ、これにより、前記NSSTインデックスのためのビット量を減少させ、全般的なコーディング効率を向上させることができる。
【0013】
本発明によれば、NSSTインデックスに対するシンタックスエレメント(Syntax element)の送信が対象ブロックに対する変換係数に基づいて決定され、これにより、NSSTインデックスのためのビット量を減少させ、全般的なコーディング効率を向上させることができる。
【図面の簡単な説明】
【0014】
【
図1】本発明が適用されることができるビデオエンコーディング装置の構成を概略的に説明する図面である。
【
図2】ビデオエンコード装置により行われる画像エンコード方法の一例を示す。
【
図3】本発明が適用できるビデオデコード装置の構成を概略的に説明する図である。
【
図4】デコード装置により行われる画像デコード方法の一例を示す。
【
図6】65個の予測方向のイントラ方向性モードを例示的に示す。
【
図7a】一実施形態による変換係数のコーディング過程を示すフローチャートである。
【
図7b】一実施形態による変換係数のコーディング過程を示すフローチャートである。
【
図8】本発明の実施形態による対象ブロックに基づいて変換係数の配列を説明するための図である。
【
図9】R+1からNまでの変換係数をスキャンする一例を示す。
【
図10a】一実施形態によるNSSTインデックスのコーディング過程を示すフローチャートである。
【
図10b】一実施形態によるNSSTインデックスのコーディング過程を示すフローチャートである。
【
図11】NSSTインデックスがコーディングされるか否かを判断する一例を示す。
【
図12】対象ブロックの全ての成分に対するR+1からNまでの変換係数をスキャンする一例を示す。
【
図13】本発明に従うエンコード装置による画像エンコード方法を概略的に示す。
【
図14】本発明に従う画像エンコード方法を行うエンコード装置を概略的に示す。
【
図15】本発明に従うデコード装置による画像デコード方法を概略的に示す。
【
図16】本発明に従う画像デコード方法を行うデコード装置を概略的に示す。
【発明を実施するための形態】
【0015】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施例に限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定しようとする意図に使われるものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品またはそれらを組み合わせたものの存在または付加の可能性を予め排除しないと理解しなければならない。
【0016】
一方、本発明で説明される図面上の各構成は、互いに異なる特徴的な機能に対する説明の便宜のために独立して図示されたものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち二つ以上の構成が合わせて一つの構成をなすこともあり、一つの構成が複数の構成に分けられることもある。各構成が統合及び/または分離された実施例も、本発明の本質から外れない限り、本発明の権利範囲に含まれる。
【0017】
以下、添付図面を参照し、本発明の好ましい実施例をより詳細に説明する。以下、図面上の同一の構成要素については同一の参照符号を使用し、同一の構成要素について重複説明は省略する。
【0018】
一方、本発明は、ビデオ/映像コーディングに関する、例えば、本発明で開示された方法/実施例は、VVC(versatile video coding)標準または次世代ビデオ/イメージコーディングに開示された方法に適用されることができる。
【0019】
本明細書で、ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)は、コーディングにおいてピクチャの一部を構成する単位である。一つのピクチャは複数のスライスで構成されてもよく、必要に応じて、ピクチャ及びスライスは互いに混用して用いられてもよい。
【0020】
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示し、輝度(ルーマ)成分のピクセル/ピクセルの値のみを示してもよく、彩度(クロマ)成分のピクセル/ピクセルの値のみを示してもよい。
【0021】
ユニット(unit)は、映像処理の基本単位を示す。ユニットは、ピクチャの特定領域及び該当領域に対する情報のうち少なくとも一つを含むことができる。ユニットは、場合によってブロック(block)または領域(area)などの用語と混用して用いられてもよい。一般的な場合、MxNのブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)の集合を示すことができる。
【0022】
図1は、本発明が適用されることができるビデオエンコーディング装置の構成を概略的に説明する図面である。
【0023】
図1を参照すると、ビデオエンコーディング装置100は、ピクチャ分割部105、予測部110、レジデュアル処理部120、エントロピーエンコーディング部130、加算部140、フィルタ部150、及びメモリ160を含むことができる。レジデュアル処理部120は、減算部121、変換部122、量子化部123、再整列部124、逆量子化部125、及び逆変換部126を含むことができる。
【0024】
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理ユニット(processing unit)に分割できる。
【0025】
一例として、処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれる。この場合、コーディングユニットは、最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、一つのコーディングユニットは、クアッドツリー構造及び/またはバイナリツリー構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造が後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて、本発明によるコーディング手順が実行されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使われることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。
【0026】
他の例として、処理ユニットは、コーディングユニット(coding unit、CU)、予測ユニット(prediction unit、PU)または変換ユニット(transform unit、TU)を含むこともできる。コーディングユニットは、最大コーディングユニット(largest coding unit、LCU)からクアッドツリー構造によって下位(deeper)デプスのコーディングユニットに分割(split)されることができる。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使われることができ、または、必要によって、コーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使われることができる。最小コーディングユニット(smallest coding unit、SCU)が設定された場合、コーディングユニットは、最小コーディングユニットより小さいコーディングユニットに分割されることができない。ここで、最終コーディングユニットとは、予測ユニットまたは変換ユニットにパーティショニングまたは分割の基盤となるコーディングユニットを意味する。予測ユニットは、コーディングユニットからパーティショニング(partitioning)されるユニットであって、サンプル予測のユニットである。このとき、予測ユニットは、サブブロック(subblock)に分けられることもできる。変換ユニットは、コーディングユニットからクアッドツリー構造によって分割されることができ、変換係数を誘導するユニット及び/または変換係数からレジデュアル信号(residual signal)を誘導するユニットである。以下、コーディングユニットはコーディングブロック(coding block、CB)、予測ユニットは予測ブロック(prediction block、PB)、変換ユニットは変換ブロック(transform block、TB)とも呼ばれる。予測ブロックまたは予測ユニットは、ピクチャ内でブロック形態の特定領域を意味し、予測サンプルのアレイ(array)を含むことができる。また、変換ブロックまたは変換ユニットは、ピクチャ内でブロック形態の特定領域を意味し、変換係数またはレジデュアルサンプルのアレイを含むことができる。
【0027】
予測部110は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部110で実行される予測の単位は、コーディングブロック、または変換ブロック、または予測ブロックである。
【0028】
予測部110は、現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。一例として、予測部110は、CU単位にイントラ予測またはインター予測が適用されるかを決定することができる。
【0029】
イントラ予測の場合、予測部110は、現在ブロックが属するピクチャ(以下、現在ピクチャ)内の現在ブロック外部の参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。このとき、予測部110は、(i)現在ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は非方向性モードまたは非角度モードと呼ばれ、(ii)の場合は方向性(directional)モードまたは角度(angular)モードと呼ばれる。イントラ予測における予測モードは、例えば、33個の方向性予測モードと少なくとも2個以上の非方向性モードを有することができる。非方向性モードは、DC予測モード及びプラナーモード(Planarモード)を含むことができる。予測部110は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
【0030】
インター予測の場合、予測部110は、参照ピクチャ上で動きベクトルにより特定されるサンプルに基づいて、現在ブロックに対する予測サンプルを誘導することができる。予測部110は、スキップ(skip)モード、マージ(merge)モード、及びMVP(motion vector prediction)モードのうちいずれか一つを適用して現在ブロックに対する予測サンプルを誘導することができる。スキップモードとマージモードの場合、予測部110は、隣接ブロックの動き情報を現在ブロックの動き情報として利用できる。スキップモードの場合、マージモードと違って予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。MVPモードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(Motion Vector Predictor)として利用して現在ブロックの動きベクトル予測子として利用して現在ブロックの動きベクトルを誘導することができる。
【0031】
インター予測の場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャ(reference picture)に存在する時間的隣接ブロック(temporal neighboring block)を含むことができる。前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)とも呼ばれる。動き情報(motion information)は、動きベクトルと参照ピクチャインデックスを含むことができる。予測モード情報と動き情報などの情報は、(エントロピー)エンコーディングされてビットストリーム形態で出力されることができる。
【0032】
スキップモードとマージモードで時間的隣接ブロックの動き情報が利用される場合、参照ピクチャリスト(reference picture list)上の最上位ピクチャが参照ピクチャとして利用されることもできる。参照ピクチャリスト(Picture Order Count)に含まれる参照ピクチャは、現在ピクチャと該当参照ピクチャとの間のPOC(Picture order count)差に基づいて整列されることができる。POCは、ピクチャのディスプレイ順序に対応し、コーディング順序と区分されることができる。
【0033】
減算部121は、原本サンプルと予測サンプルとの間の差であるレジデュアルサンプルを生成する。スキップモードが適用される場合には、前述したようにレジデュアルサンプルを生成しない。
【0034】
変換部122は、変換ブロック単位にレジデュアルサンプルを変換して変換係数(transform coefficient)を生成する。変換部122は、該当変換ブロックのサイズと、該当変換ブロックと空間的に重なるコーディングブロックまたは予測ブロックに適用された予測モードによって変換を実行することができる。例えば、前記変換ブロックと重なる前記コーディングブロックまたは前記予測ブロックにイントラ予測が適用され、前記変換ブロックが4×4のレジデュアルアレイ(array)である場合、レジデュアルサンプルは、DST(Discrete Sine Transform)変換カーネルを利用して変換され、その他の場合、レジデュアルサンプルは、DCT(Discrete Cosine Transform)変換カーネルを利用して変換できる。
【0035】
量子化部123は、変換係数を量子化し、量子化された変換係数を生成することができる。
【0036】
再整列部124は、量子化された変換係数を再整列する。再整列部124は、係数スキャニング(scanning)方法を介してブロック形態の量子化された変換係数を1次元ベクトル形態で再整列できる。ここで、再整列部124は、別途の構成で説明したが、量子化部123の一部であってもよい。
【0037】
エントロピーエンコーディング部130は、量子化された変換係数に対するエントロピーエンコーディングを実行することができる。エントロピーエンコーディングは、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのようなエンコーディング方法を含むことができる。エントロピーエンコーディング部130は、量子化された変換係数外にビデオ復元に必要な情報(例えば、シンタックス要素(syntax element)の値等)を共にまたは別途にエントロピーエンコーディングまたは既設定された方法によってエンコーディングすることもできる。エンコーディングされた情報は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位に送信または格納されることができる。
【0038】
逆量子化部125は、量子化部123で量子化された値(量子化された変換係数)を逆量子化し、逆変換部126は、逆量子化部125で逆量子化された値を逆変換してレジデュアルサンプルを生成する。
【0039】
加算部140は、レジデュアルサンプルと予測サンプルを加算してピクチャを復元する。レジデュアルサンプルと予測サンプルは、ブロック単位に加算されて復元ブロックが生成されることができる。ここで、加算部140は、別途の構成で説明したが、予測部110の一部であってもよい。一方、加算部140は、復元部(reconstruction module)または復元ブロック生成部とも呼ばれる。
【0040】
復元されたピクチャ(reconstructed picture)に対してフィルタ部150は、デブロッキングフィルタ及び/またはサンプル適応的オフセット(sample adaptive offset)を適用することができる。デブロッキングフィルタリング及び/またはサンプル適応的オフセットを介して、復元ピクチャ内のブロック境界のアーチファクトや量子化過程での歪曲が補正されることができる。サンプル適応的オフセットは、サンプル単位に適用されることができ、デブロッキングフィルタリングの過程が完了した後に適用されることができる。フィルタ部150は、ALF(Adaptive Loop Filter)を復元されたピクチャに適用することもできる。ALFは、デブロッキングフィルタ及び/またはサンプル適応的オフセットが適用された後の復元されたピクチャに対して適用されることができる。
【0041】
メモリ160は、復元ピクチャ(デコーディングされたピクチャ)またはエンコーディング/デコーディングに必要な情報を格納することができる。ここで、復元ピクチャは、前記フィルタ部150によりフィルタリング手順が完了した復元ピクチャである。前記格納された復元ピクチャは、他のピクチャの(インター)予測のための参照ピクチャとして活用されることができる。例えば、メモリ160は、インター予測に使われる(参照)ピクチャを格納することができる。このとき、インター予測に使われるピクチャは、参照ピクチャセット(reference picture set)または参照ピクチャリスト(reference picture list)により指定されることができる。
【0042】
図2は、ビデオエンコード装置により行われる画像エンコード方法の一例を示す。
図2に示すように、前記画像エンコード方法は、イントラ/インター予測、変換(transform)、量子化(quantization)及びエントロピーエンコード(entropy encoding)の過程を含む。例えば、イントラ/インター予測により現在ブロックの予測ブロックが生成され、前記現在ブロックの入力ブロックと前記予測ブロックとの減算により前記現在ブロックのレジデュアルブロックが生成される。以後、前記レジデュアルブロックに対する変換により係数(coefficent)ブロック、すなわち、前記現在ブロックの変換係数が生成される。前記変換係数は、量子化及びエントロピーエンコードされてビットストリームに格納される。
【0043】
図3は、本発明が適用できるビデオデコード装置の構成を概略的に説明する図である。
【0044】
図3に示すように、ビデオデコード装置300は、エントロピーデコード部310、レジデュアル処理部320、予測部330、加算部340、フィルタ部350及びメモリ360を含む。ここで、レジデュアル処理部320は、再整列部321、逆量子化部322、逆変換部323を含んでもよい。
【0045】
ビデオ情報を含むビットストリームが入力されると、ビデオデコード装置300は、ビデオエンコード装置においてビデオ情報が処理されたプロセスに対応してビデオを復元することができる。
【0046】
例えば、ビデオデコード装置300は、ビデオエンコード装置において適用された処理ユニットを利用してビデオデコードを行うことができる。従って、ビデオデコーディングの処理ユニットブロックは一例としてコーディングユニットであり得、他の例としてコーディングユニット、予測ユニット又は変換ユニットであり得る。コーディングユニットは、最大コーディングユニットからクアッドツリー構造及び/又はバイナリツリー構造に従って分割されることができる。
【0047】
予測ユニット及び変換ユニットが場合によってさらに使用されることができ、この場合、予測ブロックは、コーディングユニットから導出又はパーティショニングされるブロックであって、サンプル予測のユニットであり得る。ここで、予測ユニットはサブブロックに分けられることもできる。変換ユニットは、コーディングユニットからクアッドツリー構造に従って分割され、変換係数を誘導するユニット又は変換係数からレジデュアル信号を誘導するユニットであり得る。
【0048】
エントロピーデコード部310はビットストリームをパーシングしてビデオ復元又はピクチャ復元に必要な情報を出力する。例えば、エントロピーデコード部310は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、ビデオ復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。
【0049】
より詳細に、CABACエントロピーデコード方法は、ビットストリームにおいて各構文要素に該当するビンを受信し、デコード対象構文要素情報と周辺及びデコード対象ブロックのデコード情報又は以前段階でデコードされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行って各構文要素の値に該当するシンボルを生成する。ここで、CABACエントロピーデコード方法は、文脈モデルの決定後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。
【0050】
エントロピーデコード部310においてデコードされた情報のうち予測に関する情報は予測部330に提供され、エントロピーデコード部310においてエントロピーデコードが行われたレジデュアル値、すなわち、量子化された変換係数は再整列部321に入力される。
【0051】
再整列部321は、量子化されている変換係数を2次元のブロック形態に再整列する。再整列部321は、エンコード装置において行われた係数スキャニングに対応して再整列を行うことができる。ここで、再整列部321は、別途の構成として説明したが、再整列部321は逆量子化部322の一部であってもよい。
【0052】
逆量子化部322は、量子化されている変換係数を(逆)量子化パラメータに基づいて逆量子化して変換係数を出力する。ここで、量子化パラメータを誘導するための情報はエンコード装置からシグナリングされる。
【0053】
逆変換部323は、変換係数を逆変換してレジデュアルサンプルを誘導する。
【0054】
予測部330は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成する。予測部330において行われる予測の単位はコーディングブロックでもあり、変換ブロックでもあり、予測ブロックでもあり得る。
【0055】
予測部330は、前記予測に関する情報に基づいてイントラ予測を適用するかインター予測を適用するかを決定する。ここで、イントラ予測とインター予測のうちいずれを適用するかを決定する単位と予測サンプルを生成する単位は相異なってもよい。あわせて、インター予測とイントラ予測において予測サンプルを生成する単位も相異なってもよい。例えば、インター予測とイントラ予測のうちいずれを適用するかはCU単位で決定されることができる。また、例えば、インター予測においてPU単位で予測モードを決定し、予測サンプルを生成することができ、イントラ予測においてPU単位で予測モードを決定し、TU単位で予測サンプルを生成することもできる。
【0056】
イントラ予測の場合、予測部330は、現在ピクチャ内の周辺参照サンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部330は、現在ブロックの周辺参照サンプルに基づいて方向性モード又は非方向性モードを適用して現在ブロックに対する予測サンプルを誘導することができる。ここで、周辺ブロックのイントラ予測モードを利用して現在ブロックに適用する予測モードが決定されることもできる。
【0057】
インター予測の場合、予測部330は、参照ピクチャ上において動きベクトルにより参照ピクチャ上において特定されるサンプルに基づいて現在ブロックに対する予測サンプルを誘導することができる。予測部330は、スキップ(skip)モード、マージ(merge)モード及びMVPモードのうちいずれか1つを適用して現在ブロックに対する予測サンプルを誘導する。ここで、ビデオエンコード装置から提供された現在ブロックのインター予測に必要な動き情報、例えば、動きベクター、参照ピクチャインデックスなどに関する情報は、前記予測に関する情報に基づいて取得または誘導される。
【0058】
スキップモードとマージモードの場合、周辺ブロックの動き情報が現在ブロックの動き情報として利用されてもよい。ここで、周辺ブロックは空間的周辺ブロックと時間的周辺ブロックを含む。
【0059】
予測部330は、可用の周辺ブロックの動き情報としてマージ候補リストを構成し、マージインデックスがマージ候補リスト上において指示する情報を現在ブロックの動きベクターとして使用できる。マージインデックスはエンコード装置からシグナリングされる。動き情報は動きベクトルと参照ピクチャを含んでもよい。スキップモードとマージモードにおいて時間的周辺ブロックの動き情報が用いられる場合、参照ピクチャリスト上の最上位ピクチャが参照ピクチャとして利用されることができる。
【0060】
スキップモードの場合、マージモードとは異なって予測サンプルと原本サンプルとの間の差(レジデュアル)が送信されない。
【0061】
MVPモードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用いて現在ブロックの動きベクトルが誘導される。ここで、周辺ブロックは空間的周辺ブロックと時間的周辺ブロックを含む。
【0062】
一例として、マージモードが適用される場合、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルを用いて、マージ候補リストが生成される。マージモードにおいては、マージ候補リストにおいて選択された候補ブロックの動きベクトルが現在ブロックの動きベクトルとして使用される。前記予測に関する情報は、前記マージ候補リストに含まれた候補ブロックのうち選択された最適な動きベクトルを有する候補ブロックを指示するマージインデックスを含む。ここで、予測部330は、前記マージインデックスを利用して、現在ブロックの動きベクトルを導出する。
【0063】
他の例として、MVP(Motion Vector Prediction)モードが適用される場合、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルを用いて、動きベクトル予測子候補リストが生成される。すなわち、復元された空間的周辺ブロックの動きベクトル及び/又は時間的周辺ブロックであるColブロックに対応する動きベクトルは、動きベクトル候補として使用されることができる。前記予測に関する情報は、前記リストに含まれた動きベクトル候補のうち選択された最適の動きベクトルを指示する予測動きベクトルインデックスを含む。ここで、予測部330は、前記動きベクトルインデックスを用いて、動きベクトル候補リストに含まれた動きベクトル候補のうち、現在ブロックの予測動きベクトルを選択することができる。エンコード装置の予測部は、現在ブロックの動きベクトルと動きベクトル予測子との間の動きベクトル差分(MVD)を求め、これをエンコードしてビットストリーム態形で出力する。すなわち、MVDは、現在ブロックの動きベクトルから前記動きベクトル予測子を減算した値として求められる。ここで、予測部330は、前記予測に関する情報に含まれた動きベクトル差分を取得し、前記動きベクトル差分と前記動きベクトル予測子の加算により現在ブロックの前記動きベクトルを導出する。予測部はまた、参照ピクチャを指示する参照ピクチャインデックスなどを前記予測に関する情報から取得又は誘導することができる。
【0064】
加算部340は、レジデュアルサンプルと予測サンプルを加算して現在ブロック又は現在ピクチャを復元する。加算部340は、レジデュアルサンプルと予測サンプルをブロック単位で加算して現在ピクチャを復元することもできる。スキップモードが適用された場合はレジデュアルが送信されないので、予測サンプルが復元サンプルになり得る。ここでは加算部340を別途の構成として説明しているが、加算部340は予測部330の一部であってもよい。一方、加算部340は、復元部又は復元ブロック生成部と呼ばれてもよい。
【0065】
フィルタ部350は、復元されたピクチャにデブロッキングフィルタリングサンプル適応的オフセット、及び/又はALFなどを適用することができる。ここで、サンプル適応的オフセットはサンプル単位で適用され、デブロッキングフィルタリング以後に適用されてもよい。ALFは、デブロッキングフィルタリング及び/又はサンプル適応的オフセット以後に適用されてもよい。
【0066】
メモリ360は、復元ピクチャ(デコードされたピクチャ)又はデコードに必要な情報を格納する。ここで、復元ピクチャは、前記フィルタ部350によりフィルタリング手順が完了した復元ピクチャであり得る。例えば、メモリ360は、インター予測に使用されるピクチャを格納する。ここで、インター予測に使用されるピクチャは参照ピクチャセット又は参照ピクチャリストにより指定されることもある。復元されたピクチャは他のピクチャに対する参照ピクチャとして利用されることもある。また、メモリ360は復元されたピクチャを出力順序に従って出力することもある。
【0067】
図4は、デコード装置により行われる画像デコード方法の一例を示す。
図4に示すように、前記画像デコード方法は、エントロピーデコード(entropy decoding)、逆量子化、逆変換(inverse transform)及びイントラ/インター予測の過程を含む。例えば、デコード装置においては前記エンコード方法の逆過程が行われることができる。具体的に、ビットストリームに対するエントロピーデコードにより量子化された変換係数が取得され、前記量子化された変換係数に対する逆量子化過程により現在ブロックの係数ブロック、すなわち、変換係数が取得できる。前記変換係数に対する逆変換により前記現在ブロックのレジデュアルブロックが導出され、イントラ/インター予測により導出された前記現在ブロックの予測ブロックと前記レジデュアルブロックとの加算により前記現在ブロックの復元ブロック(reconstructed block)が導出される。
【0068】
一方、前述した変換により前記現在ブロックのレジデュアルブロックに対する低周波数(lower frequency)の変換係数が導出され、前記レジデュアルブロックの端部にはゼロテール(zero tail)が導出される。
【0069】
具体的に、前記変換は2つの主要過程から構成され、前記主要過程はコア変換(core transform)及び二次変換(secondary transform)を含む。前記コア変換及び前記二次変換を含む変換は、多重変換技法と言える。
【0070】
【0071】
図5に示すように、変換部は、前述した
図1のエンコード装置内の変換部に対応し、逆変換部は、前述した
図1のエンコード装置内の逆変換部又は
図3のデコード装置内の逆変換部に対応する。
【0072】
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて一次変換を行って(一次)変換係数を導出する(S510)。ここで、前記一次変換は適応的多重コア変換(Adaptive Multiple core transform:AMT)を含む。前記適応的多重コア変換は、MTS(Multiple Transform Set)と表現してもよい。
【0073】
前記適応的多重コア変換は、DCT(Discrete Cosine Transform)タイプ2とDST(Discrete Sine Transform)タイプ7、DCTタイプ8、及び/又はDSTタイプ1を追加的に使用して変換する方式を示す。すなわち、前記適応的多重コア変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8及び前記DSTタイプ1のうち選択された複数の変換カーネルに基づいて空間ドメインのレジデュアル信号(又は、レジデュアルブロック)を周波数ドメインの変換係数(又は、一次変換係数)に変換する変換方法を示す。ここで、前記一次変換係数は、変換部の立場から臨時変換係数と呼ばれてもよい。
【0074】
言い換えれば、既存の変換方法が適用される場合、DCTタイプ2に基づいてレジデュアル信号(又は、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数が生成された。これとは異なり、前記適応的多重コア変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1などに基づいてレジデュアル信号(又は、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数(又は、一次変換係数)が生成される。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1などは変換タイプ、変換カーネル(kernel)又は変換コア(core)と呼ばれてもよい。
【0075】
参考として、前記DCT/DST変換タイプは基底関数(basis functions)に基づいて定義され、前記基底関数は下記の表のように表現することができる。
【0076】
【0077】
前記適応的多重コア変換が行われる場合、前記変換カーネルのうち対象ブロックに対する垂直変換カーネル及び水平変換カーネルが選択され、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が行われ、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が行われる。ここで、前記水平変換は前記対象ブロックの水平成分に対する変換を示し、前記垂直変換は前記対象ブロックの垂直成分に対する変換を示す。前記垂直変換カーネル/水平変換カーネルは、レジデュアルブロックを囲む(encompass)対象ブロック(CU又はサブブロック)の予測モード及び/又は変換サブセットを示す変換インデックスに基づいて適応的に決定される。
【0078】
例えば、前記適応的多重コア変換は、対象ブロックの幅(width)及び高さ(height)が両方とも64より小さいか等しい場合に適用され、前記対象ブロックの前記適応的多重コア変換が適用されるか否かは、CUレベルフラグに基づいて決定できる。具体的に、前記CUレベルフラグが0である場合、前述の既存の変換方法が適用されることがある。すなわち、前記CUレベルフラグが0である場合、前記DCTタイプ2に基づいてレジデュアル信号(又は、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数が生成され、前記変換係数がエンコードされる。一方、ここで、前記対象ブロックはCUであり得る。前記CUレベルフラグが0である場合、前記適応的多重コア変換が前記対象ブロックに適用できる。
【0079】
また、前記適応的多重コア変換が適用される対象ブロックのルーマブロックの場合、2つの追加的なフラグがシグナリングされ、前記フラグに基づいて垂直変換カーネル及び水平変換カーネルが選択される。前記垂直変換カーネルに対するフラグは、AMT垂直フラグと表してもよく、AMT_TU_vertical_flag(又は、EMT_TU_vertical_flag)は、前記AMT垂直フラグのシンタックス要素(syntax element)を示す。前記水平変換カーネルに対するフラグは、AMT水平フラグと表してもよく、AMT_TU_horizontal_flag(又は、EMT_TU_horizontal_flag)は、前記AMT水平フラグのシンタックス要素を示す。前記AMT垂直フラグは、前記垂直変換カーネルに対する変換サブセットに含まれた変換カーネル候補のうち1つの変換カーネル候補を示し、前記AMT垂直フラグが示す変換カーネル候補は前記対象ブロックに対する垂直変換カーネルとして導出される。また、前記AMT水平フラグは、前記水平変換カーネルに対する変換サブセットに含まれた変換カーネル候補のうち1つの変換カーネル候補を示し、前記AMT水平フラグが示す変換カーネル候補は、前記対象ブロックに対する水平変換カーネルとして導出される。一方、前記AMT垂直フラグはMTS垂直フラグと表してもよく、前記AMT水平フラグはMTS水平フラグと表してもよい。
【0080】
一方、3つの変換サブセットが既に設定され、前記対象ブロックに適用されたイントラ予測モードに基づいて前記変換サブセットのうち1つが前記垂直変換カーネルに対する変換サブセットとして導出される。また、前記対象ブロックに適用されたイントラ予測モードに基づいて前記変換サブセットのうち1つが前記水平変換カーネルに対する変換サブセットとして導出される。例えば、前記既に設定された変換サブセットは下記の表のように導出される。
【0081】
【0082】
表2を参照すると、インデックス値が0である変換サブセットは、DSTタイプ7及びDCTタイプ8を変換カーネル候補として含む変換サブセットを示し、インデックス値が1である変換サブセットは、DSTタイプ7及びDCTタイプ8を変換カーネル候補として含む変換サブセットを示す。
【0083】
前記対象ブロックに適用されたイントラ予測モードに基づいて導出される前記垂直変換カーネルに対する変換サブセット及び前記水平変換カーネルに対する変換サブセットは、下記の表のように導出される。
【0084】
【0085】
ここで、Vは前記垂直変換カーネルに対する変換サブセットを示し、Hは前記水平変換カーネルに対する変換サブセットを示す。
【0086】
前記対象ブロックに対するAMTフラグ(又は、EMT_Cu_flag)の値が1である場合、表3に示すように前記対象ブロックのイントラ予測モードに基づいて前記垂直変換カーネルに対する変換サブセット及び前記水平変換カーネルに対する変換サブセットが導出される。以後、前記垂直変換カーネルに対する変換サブセットに含まれた変換カーネル候補のうち前記対象ブロックのAMT垂直フラグが示す変換カーネル候補が前記対象ブロックの垂直変換カーネルとして導出され、前記水平変換カーネル候補が前記対象ブロックの水平変換カーネルとして導出される。一方、前記AMTフラグはMTSフラグと表してもよい。
【0087】
参考として、例えば、イントラ予測モードは2つの非方向性(non-directional、又は、非角度性(non-angular))イントラ予測モードと65個の方向性(directional、又は、角度性(angular))イントラ予測モードを含む。前記非方向性イントラ予測モードは、0番であるプランナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含み、前記方向性イントラ予測モードは、2番ないし66番の65個のイントラ予測モードを含む。ただし、これは例示であって、本発明は、イントラ予測モードの数が異なる場合にも適用される。一方、場合によっては67番であるイントラ予測モードがさらに使用されることもあり、前記67番のイントラ予測モードはLM(linear model)モードを示すことができる。
【0088】
図6は、65個の予測方向のイントラ方向性モードを例示的に示す。
【0089】
図6に示すように、左上向き対角予測方向を有する34番のイントラ予測モードを中心に水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードを区分することができる。
図6のHとVはそれぞれ水平方向性と垂直方向性を意味し、-32~32の数字はサンプルグリッドポジション(sample grid position)上において1/32単位の変位を示す。2番ないし33番のイントラ予測モードは水平方向性を有し、34番ないし66番のイントラ予測モードは垂直方向性を有する。18番のイントラ予測モードと50番のイントラ予測モードはそれぞれ水平イントラ予測モード(horizontal intra prediction mode)と、垂直イントラ予測モード(vertical intra prediction mode)を示し、2番のイントラ予測モードは左下向き対角イントラ予測モード、34番のイントラ予測モードは左上向き対角イントラ予測モード、66番のイントラ予測モードは右上向きモードと呼ばれてもよい。
【0090】
変換部は、前記(一次)変換係数に基づいて二次変換を行って(二次)変換係数を導出する(S520)。前記一次変換が空間ドメインから周波数ドメインへの変換であったとしたら、前記二次変換は周波数ドメインから周波数ドメインへの変換であるといえる。前記二次変換は非分離変換(non-separable transform)を含む。この場合、前記二次変換は、非分離二次変換(non-separable secondary transform:NSST)又はMDNSST(mode-dependent non-separable secondary transform)と呼ばれてもよい。前記非分離二次変換は、前記一次変換により導出された(一次)変換係数を非分離変換マトリックス(non-separable transform matrix)に基づいて二次変換してレジデュアル信号に対する変換係数(又は、二次変換係数)を生成する変換を示す。ここで、前記非分離変換マトリックスに基づいて前記(一次)変換係数に対して垂直変換及び水平変換を分離して(又は、水平垂直変換を独立的に)適用せずに一度に変換を適用することができる。言い換えれば、前記非分離二次変換は、前記非分離変換マトリックスに基づいて前記(一次)変換係数の垂直成分及び水平成分分離せずに共に変換して変換係数(又は、二次変換係数)を生成する変換方法を示す。前記非分離二次変換は、(一次)変換係数で構成されたブロック(以下、変換係数ブロック又は対象ブロックと呼ばれてもよい)の左上端(top-left)領域に対して適用される。例えば、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも8以上である場合、8×8非分離二次変換が前記変換係数ブロックの左上端8×8領域(以下、左上端対象領域)に対して適用される。また、前記変換係数ブロックの幅(W)及び高さ(H)が両方とも4以上であるとともに、前記変換係数ブロックの幅(W)又は高さ(H)が8より小さい場合、4×4非分離二次変換が前記変換係数ブロックの左上端min(8,W)×min(8,H)領域に対して適用される。
【0091】
具体的に、例えば、4×4入力ブロックが使用される場合、非分離二次変換は以下のように行われる。
【0092】
前記4×4入力ブロックXは次のように表現される。
【0093】
【0094】
前記Xをベクトル形態で示す場合、ベクトル
は次のように表現される。
【0095】
【0096】
この場合、前記二次非分離変換は次のように計算される。
【0097】
【0098】
ここで、
は変換係数ベクトルを示し、Tは16×16(非分離)変換メトリクスを示す。
【0099】
前記数式3により16×1変換係数ベクトル
が導出され、前記
はスキャン順序(水平、垂直、対角(diagonal)など)により4×4ブロックに再構成(re-organized)される。ただし、前述の計算は例示であって、非分離二次変換の計算複雑度を減らすためにHyGT(Hypercube-Givens Transform)などが非分離二次変換の計算のために使用されることもある。
【0100】
一方、前記非分離二次変換は、モード基盤(mode dependent)に変換カーネル(又は、変換コア、変換タイプ)が選択されることができる。ここで、モードは、イントラ予測モード及び/又はインター予測モードを含む。
【0101】
前述したように、前記非分離二次変換は、前記変換係数ブロックの幅(W)及び高さ(H)に基づいて決定された8×8変換又は4×4変換に基づいて行われる。すなわち、前記非分離二次変換は、8×8サブブロックサイズ又は4×4サブブロックサイズに基づいて行われる。例えば、前記モード基盤変換カーネルの選択のために、8×8サブブロックサイズ及び4×4サブブロックサイズの両方ともに対して非分離二次変換のための3つずつ35セットの非分離二次変換カーネルが構成される。すなわち、8×8サブブロックサイズに対して35個の変換セットが構成され、4×4サブブロックサイズに対して35個の変換セットが構成される。この場合、8×8サブブロックサイズに対する35個の変換セットにはそれぞれ3つずつの8×8変換カーネルが含まれ、この場合、4×4サブブロックサイズに対する35個の変換セットにはそれぞれ3つずつの4×4変換カーネルが含まれる。ただし、前記変換サブブロックサイズ、前記セットの数及びセット内の変換カーネルの数は例示であって、8×8又は4×4以外のサイズが使用されてもよく、または、n個のセットが構成され、各セット内にk個の変換カーネルが含まれてもよい。
【0102】
前記変換セットはNSSTセットと呼ばれてもよく、前記NSSTセット内の変換カーネルはNSSTカーネルと呼ばれてもよい。前記変換セットのうち特定セットの選択は、例えば、対象ブロック(CU又はサブブロック)のイントラ予測モードに基づいて行われる。
【0103】
この場合、前記35個の変換セットと前記イントラ予測モードの間のマッピング(mapping)は、例えば、以下の表のように示される。参考として、対象ブロックにLMモードが適用される場合、前記対象ブロックに対しては二次変換が適用されないことがある。
【0104】
【0105】
一方、特定セットが使用されることが決定すると、非分離二次変換インデックスにより前記特定セット内のk個の変換カーネルのうち1つが選択される。エンコード装置は、RD(rate-distortion)チェック基盤で特定変換カーネルを示す非分離二次変換インデックスを導出し、前記非分離二次変換インデックスをデコード装置にシグナリングする。デコード装置は、前記非分離二次変換インデックスに基づいて特定セット内のk個の変換カーネルのうち1つを選択する。例えば、NSSTインデックス値0は1番目の非分離二次変換カーネルを示し、NSSTインデックス値1は2番目の非分離二次変換カーネルを示し、NSSTインデックス値2は3番目の非分離二次変換カーネルを示す。または、NSSTインデックス値0は対象ブロックに対して1番目の非分離二次変換が適用されないことを示し、NSSTインデックス値1ないし3は前記3つの変換カーネルを示す。
【0106】
図5をまた参照すると、変換部は、選択された変換カーネルに基づいて前記非分離二次変換を行い、(二次)変換係数を取得することができる。前記変換係数は、前述したように量子化部により量子化された変換係数として導出され、エンコードされてデコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達される。
【0107】
一方、二次変換が省略される場合、前記一次(分離)変換の出力である(一次)変換係数が前述したように量子化部により量子化された変換係数として導出され、エンコードされてデコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達される。
【0108】
逆変換部は、前述の変換部において行われた手順の逆順で一連の手順を行う。逆変換部は、(逆量子化された)変換係数を受信して、二次(逆)変換を行って(一次)変換係数を導出し(S550)、前記(一次)変換係数に対して一次(逆)変換を行ってレジデュアルブロック(レジデュアルサンプル)を取得する。ここで、前記一次変換係数は、逆変換部の立場から修正された(modified)変換係数と呼ばれてもよい。エンコード装置及びデコード装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成できることは前述の通りである。
【0109】
一方、前述したように、二次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して前記一次(分離)変換を行ってレジデュアルブロック(レジデュアルサンプル)を取得する。エンコード装置及びデコード装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成し、これに基づいて復元ピクチャを生成できることは前述の通りである。
【0110】
一方、前述の非分離二次変換は、変換スキップモードでコーディングされたブロックに対しては適用されないことがある。例えば、対象CUに対するNSSTインデックスがシグナリングされ、前記NSSTインデックスの値が0でない場合、前記対象CU内の変換スキップモードでコーディングされたブロックに対して前記非分離二次変換は適用されないことがある。また、全ての構成要素(ルーマ成分、クロマ成分など)のブロックを含む前記対象CUが前記変換スキップモードでコーディングされた場合、又は、前記対象CUに対する変換係数のうち0でない変換係数の個数が2より小さい場合、前記NSSTインデックスはシグナリングされないことがある。具体的な変換係数のコーディング過程は次のようである。
【0111】
図7a及び
図7bは、一実施形態による変換係数のコーディング過程を示すフローチャートである。
【0112】
図7a及び
図7bに開示された各ステップは、
図1及び
図3に開示されたエンコード装置100又はデコード装置300により行われ、より具体的には、
図1に開示されたエントロピーエンコード部130及び
図3に開示されたエントロピーデコード部310により行われる。従って、
図1又は
図3において前述された内容と重複する具体的な内容は説明を省略するか簡単にする。
【0113】
本明細書においては、特定情報又は概念を定義するための用語又は文章を使用している。例えば、本明細書においては、「対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグ」をcbfと表現している。しかしながら、「cbf」は、coded_block_flagなどの多様な用語に置き換えることができるので、本明細書において特定情報又は概念を定義するために用いられた用語又は文章を明細書全般で解釈するにおいて、その名称に限った解釈を行ってはならず、前記用語の意味による多様な動作、機能及び効果に注目して解釈する必要がある。
【0114】
【0115】
一実施形態によるエンコード装置100は、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示すか否かを判断する(S700)。対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示す場合、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在する。逆に、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが0を示す場合、対象ブロックに対する変換係数は全て0を示す。
【0116】
対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグは、例えば、cbfフラグと表現される。cbfフラグはルーマブロックに対するcbf_luma[x0][y0][trafoDepth]及びクロマブロックに対するcbf_cb[x0][y0][trafoDepth]及びcbf_cr[x0][y0][trafoDepth]フラグを含む。ここで、アレイインデックスx0及びy0は現在ピクチャの左上端(top-left)ルーマ/クロマサンプルに対する対象ブロックの左上端ルーマ/クロマサンプルの位置を意味し、アレイインデックスtrafoDepthは変換コーディングを目的にしてコーディングブロックが分割されたレベルを意味し得る。trafoDepthが0を示すブロックがコーディングブロックと対応し、コーディングブロックと変換ブロックが同一に定義された場合は、trafoDepthが0とみなされる。
【0117】
一実施形態によるエンコード装置100は、S700で対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示す場合、対象ブロックに対する変換係数に関する情報をエンコードする(S710)。
【0118】
対象ブロックに対する変換係数に関する情報は、例えば、0ではない最後の変換係数の位置に関する情報、対象ブロックのサブグループに0でない変換係数が含まれるか否かを示すグループフラグ情報及び簡素化係数に関する情報のうち少なくとも1つを含む。各情報に関する具体的な説明は後述する。
【0119】
一実施形態によるエンコード装置100は、NSSTを行う条件に該当するか否かを判断する(S720)。より具体的に、エンコード装置100は、NSSTインデックスをエンコードする条件に該当するか否かを判断する。ここで、NSSTインデックスは、例えば、変換インデックス(transform index)と呼ばれてもよい。
【0120】
一実施形態によるエンコード装置100は、S720でNSSTを行う条件に該当すると判断された場合、NSSTインデックスをエンコードする(S730)。より具体的に、エンコード装置100は、NSSTインデックスをエンコードする条件に該当すると判断される場合、NSSTインデックスをエンコードする。
【0121】
一実施形態によるエンコード装置100は、S700で対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが0を示す場合、S710、S720及びS730に従う動作を省略することができる。
【0122】
また、一実施形態によるエンコード装置100は、S720でNSSTを行う条件に該当しないと判断された場合、S730に従う動作を省略することができる。
【0123】
【0124】
一実施形態によるデコード装置300は、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示すか否かを判断する(S740)。対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示す場合、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在する。逆に、対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが0を示す場合、対象ブロックに対する変換係数は全て0を示す。
【0125】
一実施形態によるデコード装置300は、S740で対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが1を示す場合、対象ブロックに対する変換係数に関する情報をデコードする(S750)。
【0126】
一実施形態によるデコード装置300は、NSSTを行う条件に該当するか否かを判断する(S760)。より具体的に、デコード装置300は、NSSTインデックスをビットストリームからデコードする条件に該当するか否かを判断する。
【0127】
一実施形態によるデコード装置300は、S760でNSSTを行う条件に該当すると判断された場合、NSSTインデックスをデコードする(S770)。
【0128】
一実施形態によるデコード装置300は、S740で対象ブロックに対する変換係数のうち0でない変換係数が少なくとも1つ存在するか否かを示すフラグが0を示す場合、S750、S760及びS770に従う動作を省略することができる。
【0129】
また、一実施形態によるデコード装置300は、S760でNSSTを行う条件に該当しないと判断された場合、S770に従う動作を省略することができる。
【0130】
前述のようにNSSTが行われない場合に前記NSSTインデックスがシグナリングされることは、コーディング効率を低下させる可能性がある。また、特定条件に応じて前記NSSTインデックスのコーディング方法を異なるようにする方案が、全般的な画像のコーディング効率を向上させることができる。従って、本発明においては、様々なNSSTインデックスコーディング方法を提案する。
【0131】
一例として、特定条件に基づいて前記NSSTインデックス範囲が決定される。言い換えれば、特定条件に基づいて前記NSSTインデックスの値の範囲が決定されることができる。具体的に、前記特定条件に基づいて前記NSSTインデックスの最大値が決定される。
【0132】
例えば、ブロックサイズに基づいて前記NSSTインデックスの値の範囲が決定される。ここで、前記ブロックサイズは最小(W,H)と定義される。前記Wは幅(width)を示し、Hは高さ(height)を示す。この場合、対象ブロックの幅と前記Wとの比較、前記対象ブロックの高さと前記最小Hとの比較により、前記NSSTインデックスの値の範囲が決定される。
【0133】
または、前記ブロックサイズはブロックのサンプル数である(W*H)と定義される。この場合、対象ブロックのサンプル数であるW*Hと特定値との比較により前記NSSTインデックスの値の範囲が決定される。
【0134】
また、例えば、ブロックの形状(shape)、すなわち、ブロックタイプ(type)に基づいて前記NSSTインデックスの値の範囲が決定できる。ここで、前記ブロックタイプは正方形(square)ブロック又は非正方形(non-square)ブロックと定義される。この場合、対象ブロックが正方形ブロック又は非正方形ブロックであるかに基づいて前記NSSTインデックスの値の範囲が決定される。
【0135】
または、前記ブロックタイプは、ブロックの長い辺(幅及び高さのうち長い辺)と短い辺の割合(ratio)と定義される。この場合、対象ブロックの長い辺と短い辺の割合と既設定の臨界値(例えば、2又は3)との比較により前記NSSTインデックスの値の範囲が決定される。ここで、前記割合は前記短い辺により前記長い辺を割った値を示す。例えば、前記対象ブロックの幅が高さよりも長い場合、前記幅を前記高さに割った値と前記既設定の臨界値との比較により前記NSSTインデックスの値の範囲が決定される。また、前記対象ブロックの高さが幅より長い場合、前記高さを前記幅で割った値と前記既設定の臨界値との比較により前記NSSTインデックスの値の範囲が決定される。
【0136】
また、例えば、ブロックに適用されるイントラ予測モードに基づいて前記NSSTインデックスの値の範囲が決定される。一例として、前記対象ブロックに適用されるイントラ予測モードが非方向性イントラ予測モード又は方向性イントラ予測モードであるかに基づいて前記NSSTインデックスの値の範囲が決定される。
【0137】
または、他の例として、前記対象ブロックに適用されるイントラ予測モードがカテゴリA(Category A)又はカテゴリB(Category B)に含まれたイントラ予測モードであるかに基づいて前記NSSTインデックスの値の範囲が決定される。ここで、一例として、前記カテゴリAは、2番のイントラ予測モード、10番のイントラ予測モード、18番のイントラ予測モード、26番のイントラ予測モード、34番のイントラ予測モード、42番のイントラ予測モード、50番のイントラ予測モード、58番のイントラ予測モード及び66番のイントラ予測モードを含み、前記カテゴリBは、前記カテゴリAに含まれるイントラ予測モード以外のイントラ予測モードを含む。前記カテゴリAに含まれたイントラ予測モードは既に設定されてもよく、前記カテゴリA及び前記カテゴリBは前述した例と異なるイントラ予測モードを含むと既に設定されてもよい。
【0138】
または、他の例として、ブロックのAMTファクター(factor)に基づいて前記NSSTインデックスの値の範囲が決定される。前記AMTファクターはMTSファクターと示してもよい。
【0139】
例えば、前記AMTファクターは、前述のAMTフラグと定義されてもよい。この場合、前記対象ブロックのAMTフラグの値に基づいて前記NSSTインデックスの値の範囲が決定される。
【0140】
または、前記AMTファクターは、前述のAMT垂直フラグ及び/又はAMT水平フラグと定義されてもよい。この場合、前記対象ブロックの前記AMT垂直フラグ及び/又は前記AMT水平フラグの値に基づいて前記NSSTインデックスの値の範囲が決定される。
【0141】
または、前記AMTファクターは、多重コア変換において適用された変換カーネルと定義されてもよい。この場合、前記対象ブロックの多重コア変換において適用された変換カーネルに基づいて前記NSSTインデックスの値の範囲が決定される。
【0142】
または、他の例として、ブロックの成分に基づいて前記NSSTインデックスの値の範囲が決定される。例えば、前記対象ブロックのルーマブロックに対するNSSTインデックスの値の範囲と前記対象ブロックのクロマブロックに対する前記NSSTインデックスの値の範囲は相異なるように適用されることができる。
【0143】
一方、前述の特定条件の組み合わせにより前記NSSTインデックスの値の範囲が決定されることもある。
【0144】
前記特定条件に基づいて決定される前記NSSTインデックスの値の範囲、すなわち、前記NSSTインデックスの最大値は多様に設定されることができる。
【0145】
例えば、前記特定条件に基づいて前記NSSTインデックスの最大値はR1、R2又はR3と決定される。具体的に、前記特定条件がカテゴリAに該当する場合、前記NSSTインデックスの最大値はR1として導出され、前記特定条件がカテゴリBに該当する場合、前記NSSTインデックスの最大値はR2として導出され、前記特定条件がカテゴリCに該当する場合、前記NSSTインデックスの最大値はR3として導出される。
【0146】
前記カテゴリAに対するR1、前記カテゴリBに対するR2、前記カテゴリCに対するR3は、以下の表のように導出される。
【0147】
【0148】
前記R1、前記R2、前記R3は既に設定されてもよい。例えば、前記R1、前記R2、前記R3の関係は以下の数式のように導出される。
【0149】
【0150】
数式4を参照すると、前記R1は0より大きいか等しく、前記R2は前記R1より大きく、前記R3は前記R2より大きい。一方、前記R1が0である場合に前記対象ブロックに対する前記NSSTインデックスの最大値が前記R1と決定された場合、前記NSSTインデックスはシグナリングされずに、前記NSSTインデックスの値は0として導出(inferred)される。
【0151】
また、本発明においては、暗示的(implicit)NSSTインデックスコーディング方法が提案される。
【0152】
一般に、NSSTが適用される場合、変換係数のうち0でない変換係数の分布は変更されることができる。特に、特定条件において二次変換としてRST(reduced secondary transform)が使用される場合、NSSTインデックスはコーディングされないことがある。
【0153】
ここで、前記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値を意味することもある。
【0154】
一実施形態による前記簡素化変換マトリックスのサイズは、通常の変換マトリックスのサイズN×Nより小さいR×Nであり、下記の数式5のように定義される。
【0155】
【0156】
対象ブロックの一次変換が適用された変換係数に対して簡素化変換マトリクスTR×Nが乗算される場合、前記対象ブロックに対する(二次)変換係数が導出される。
【0157】
前記RSTが適用される場合、二次変換にR×Nサイズである簡素化変換マトリックスが適用されるので、R+1からNまでの変換係数は暗示的に(implicitly)0となり得る。言い換えれば、対象ブロックの変換係数が前記RSTが適用されて導出された場合、前記R+1からNまでの変換係数の値は0であり得る。ここで、前記R+1からNまでの変換係数は変換係数のうちR+1番目の変換係数からN番目の変換係数を示す。具体的に、対象ブロックの変換係数の配列は次のように説明できる。
【0158】
図8は、本発明の実施形態による対象ブロックに基づいて変換係数の配列を説明するための図である。以下、
図8において後述する変換に関する説明は、逆変換にも同様に適用される。対象ブロック(又は、レジデュアルブロック)800に対して、一次変換及び簡素化変換に基づいたNSST(二次変換の一例)が行われる。一例において、
図8に示された16×16ブロックは対象ブロック800示し、AないしPと表記された4×4ブロックは対象ブロック800のサブグループを示す。一次変換は対象ブロック800全体の範囲において行われ、一次変換が行われた後、NSSTはサブグループA、B、E及びFが構成する8×8ブロック(以下、左上端対象領域)に対して適用される。ここで、簡素化変換に基づいたNSSTが行われると、R個(ここで、Rは簡素化係数を意味し、RはNより小さい)のNSST変換係数のみが導出されるので、R+1番目からN番目の範囲のNSST変換係数はそれぞれ0と決定される。Rが、例えば、16である場合、簡素化変換に基づいたNSSTが行われて導出された16個の変換係数は、対象ブロック800の左上端対象領域に含まれる左上端4×4ブロックであるサブグループAに含まれた各ブロックに割り当てられ、サブグループB、E及びFに含まれたN-R個、すなわち、64-16=48個の各ブロックに対しては変換係数0が割り当てられる。簡素化変換に基づいたNSSTが行われない一次変換係数は、サブグループC、D、G、H、I、J、K、L、M、N、O及びPに含まれた各ブロックに割り当てられる。
【0159】
従って、R+1からNまでの変換係数をスキャンして0でない変換係数が少なくとも1つでも導出される場合、前記RSTは適用されないと判断され、前記NSSTインデックスの値は、別途のシグナリングなしに暗示的に0になり得る。すなわち、R+1からNまでの変換係数をスキャンして0でない変換係数が少なくとも1つでも導出される場合、前記RSTは適用されず、前記NSSTインデックスの値は別途のシグナリングなしに0として導出される。
【0160】
図9は、R+1からNまでの変換係数をスキャンする一例を示す。
【0161】
図9に示すように、変換が適用される対象ブロックのサイズが64×64であり、R=16(すなわち、R/N=16/64=1/4である)であり得る。すなわち、
図9は、前記対象ブロックの左上端対象領域を示す。前記対象ブロックの前記左上端対象領域の64個のサンプルに対する二次変換に16×64サイズの簡素化変換マトリックスが適用されることがある。この場合、前記左上端対象領域に前記RSTが適用されると、17から64(N)までの変換係数の値は0でなければならない。言い換えれば、前記対象ブロックの17から64までの変換係数のうち0でない変換係数が少なくとも1つでも導出される場合、前記RSTは適用されず、前記NSSTインデックスの値は、別途のシグナリングなしに0として導出される。従って、デコード装置は、対象ブロックの変換係数をデコードし、デコードされた変換係数のうち17から64までの変換係数をスキャンし、0でない変換係数が導出される場合、前記NSSTインデックスに対する別途のシンタックス要素のシグナリングなしに前記NSSTインデックスの値を0として導出することができる。一方、前記17から64までの変換係数のうち0でない変換係数が存在しない場合、デコード装置は前記NSSTインデックスを受信し、デコードすることができる。
【0162】
図10a及び
図10bは、一実施形態によるNSSTインデックスのコーディング過程を示すフローチャートである。
【0163】
図10aは、NSSTインデックスのエンコード過程を示している。
【0164】
エンコード装置は、対象ブロックに対する変換係数をエンコードする(S1000)。エンコード装置は、量子化された変換係数に対するエントロピーエンコードを行う。エントロピーエンコードは、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのエンコード方法を含む。
【0165】
エンコード装置は、対象ブロックに対する(明示的な(explicit))NSSTインデックスがコーディングされるか否かを判断する(S1010)。ここで、前記明示的な(explicit)NSSTインデックスはデコード装置に伝達されるNSSTインデックスを示す。すなわち、エンコード装置は、シグナリングされるNSSTインデックスを生成するか否かを判断することができる。言い換えれば、エンコード装置は、NSSTインデックスに対するシンタックス要素のためのビットを割り当てるか否かを判断することができる。前述の実施形態のようにNSSTインデックスがシグナリングされなくてもデコード装置が前記NSSTインデックスの値を導出できる場合は、エンコード装置は前記NSSTインデックスをコーディングしないことがある。NSSTインデックスがコーディングされるか否かを判断する具体的な過程は後述する。
【0166】
前記(明示的な)NSSTインデックスがコーディングされると判断された場合、エンコード装置は前記NSSTインデックスをエンコードする(S1020)。
【0167】
図10bは、NSSTインデックスのデコード過程を示している。
【0168】
デコード装置は、対象ブロックに対する変換係数をデコードする(S1030)。
【0169】
デコード装置は、対象ブロックに対する(明示的な(explicit))NSSTインデックスがコーディングされるか否かを判断する(S1040)。ここで、前記明示的な(explicit)NSSTインデックスは、エンコード装置からシグナリングされるNSSTインデックスを示す。前述した実施形態のようにNSSTインデックスがシグナリングされなくてもデコード装置が前記NSSTインデックスの値を導出できる場合は、エンコード装置から前記NSSTインデックスがシグナリングされないことがある。NSSTインデックスがコーディングされるか否かを判断する具体的な過程は後述する。
【0170】
前記(明示的な)NSSTインデックスがコーディングされると判断された場合、エンコード装置はNSSTインデックスをデコードする(S1040)。
【0171】
図11は、NSSTインデックスがコーディングされるか否かを判断する一例を示す。
【0172】
エンコード装置/デコード装置は、対象ブロックに対するNSSTインデックスをコーディングする条件に該当するか否かを判断する(S1100)。例えば、前記対象ブロックに対するcbfフラグが0を示す場合、エンコード装置/デコード装置は、前記対象ブロックに対するNSSTインデックスをコーディングしないと判断する。または、前記対象ブロックが変換スキップモードでコーディングされた場合、または、前記対象ブロックに対する変換係数のうち0でない変換係数の個数が既設定の臨界値より小さい場合、エンコード装置/デコード装置は、前記対象ブロックに対するNSSTインデックスをコーディングしないと判断する。例えば、前記既設定の臨界値は2であり得る。
【0173】
前記対象ブロックに対するNSSTインデックスをコーディングする条件に該当する場合、エンコード装置/デコード装置はR+1からNまでの変換係数をスキャンする(S1110)。前記R+1からNまでの変換係数は、前記変換係数のうちスキャンオーダー(scan order)上、R+1番目からN番目までの変換係数を示す。
【0174】
エンコード装置/デコード装置は、前記R+1からNまでの変換係数のうち0でない変換係数が導出されるか否かを判断する(S1120)。前記R+1からNまでの変換係数のうち0でない変換係数が導出された場合、エンコード装置/デコード装置は前記対象ブロックに対するNSSTインデックスをコーディングしないと判断する。この場合、エンコード装置/デコード装置は、前記対象ブロックに対するNSSTインデックスの値を0として導出することができる。言い換えれば、例えば、値が0であるNSSTインデックスがNSSTが適用されないことを示す場合、エンコード装置/デコード装置は前記対象ブロックの左上端対象領域に対するNSSTを行わないことがある。
【0175】
一方、前記R+1からNまでの変換係数のうち0でない変換係数が導出されていない場合、エンコード装置は前記対象ブロックに対するNSSTインデックスをエンコードし、デコード装置は前記対象ブロックに対するNSSTインデックスをデコードする。
【0176】
一方、前記対象ブロックの成分(ルーマ成分、クロマCb成分、クロマCr成分)が共通的な前記NSSTインデックスを使用することが提案される。
【0177】
例えば、前記対象ブロックのクロマCbブロックと前記対象ブロックのクロマCrブロックに対して同一のNSSTインデックスが使用される。また、他の例として、前記対象ブロックのルーマブロック、前記対象ブロックのクロマCbブロック及び前記対象ブロックのクロマCrブロックに対して同一のNSSTインデックスが使用される。
【0178】
前記対象ブロックの2つ又は3つの成分が同一のNSSTインデックスを使用する場合、エンコード装置は、全ての成分(対象ブロックのルーマブロック、クロマCbブロック、クロマCrブロック)のR+1からNまでの変換係数をスキャンし、0でない変換係数が少なくとも1つ以上導出される場合、前記NSSTインデックスをエンコードせずに、前記NSSTインデックスの値を0として導出する。また、デコード装置は、全ての成分(対象ブロックのルーマブロック、クロマCbブロック、クロマCrブロック)のR+1からNまでの変換係数をスキャンし、0でない変換係数が少なくとも1つ以上導出される場合、前記NSSTインデックスをデコードせずに、前記NSSTインデックスの値を0として導出する。
【0179】
図12は、対象ブロックの全ての成分に対するR+1からNまでの変換係数をスキャンする一例を示す。
【0180】
図12に示すように、変換が適用される対象ブロックのルーマブロック、クロマCbブロック及びクロマCrブロックのサイズが64×64であり、R=16(すなわち、R/N=16/64=1/4である)であり得る。すなわち、
図12は、前記ルーマブロックの左上端対象領域、前記クロマCbブロックの左上端対象領域及び前記クロマCrブロックの左上端対象領域を示す。従って、前記ルーマブロックの左上端対象領域、前記クロマCbブロックの左上端対象領域、及び前記クロマCrブロックの左上端対象領域のそれぞれの64個のサンプルに対する二次変換に16×64サイズの簡素化変換マトリックスが適用されることができる。この場合、前記ルーマブロックの左上端対象領域、前記クロマCbブロックの左上端対象領域及び前記クロマCrブロックの左上端対象領域に前記RSTが適用されると、各ブロックの17から64(N)までの変換係数の値は0でなければならない。言い換えれば、各ブロックの17から64までの変換係数のうち0でない変換係数が少なくとも1つでも導出される場合、前記RSTは適用されず、前記NSSTインデックスの値は、別途のシグナリングなしに0として導出される。従って、デコード装置は、対象ブロックの全ての成分に対する変換係数をデコードし、デコードされた変換係数のうち前記ルーマブロック、前記クロマCbブロック及び前記クロマCrブロックの17から64までの変換係数をスキャンし、0でない変換係数が導出される場合、前記NSSTインデックスに対する別途のシンタックス要素のシグナリングなしに前記NSSTインデックスの値を0として導出する。一方、前記17から64までの変換係数のうち0でない変換係数が存在しない場合、デコード装置は、前記NSSTインデックスを受信し、デコードすることができる。前記NSSTインデックスは、前記ルーマブロック、前記クロマCbブロック及び前記クロマCrブロックに対するインデックスとして使用される。
【0181】
また、本発明では、上位レベルにおいてNSSTインデックスインジケータをシグナリングする方案が提案される。NSST_Idx_indicatorは、前記NSSTインデックスインジケータに対するシンタックス要素を示す。例えば、前記NSSTインデックスインジケータはCTU(Coding Tree Unit)レベルでコーディングされ、前記NSSTインデックスインジケータは対象CTUにNSSTが適用されるか否かを示す。すなわち、前記NSSTインデックスインジケータは、対象CTUにNSSTが可用であるか否かを示す。具体的には、前記対象CTUに対する前記NSSTインデックスインジケータが活性化された(enabled)場合(前記対象CTUにNSSTが可能である場合)、すなわち、前記NSSTインデックスインジケータの値が1である場合、対象CTUに含まれるCU又はTUに対するNSSTインデックスがコーディングされる。前記対象CTUに対する前記NSSTインデックスインジケータが活性化していない場合(前記対象CTUにNSSTが可用でない場合)、すなわち、前記NSSTインデックスインジケータの値が0である場合、対象CTUに含まれたCU又はTUに対するNSSTインデックスがコーディングされない。一方、前記NSSTインデックスインジケータは、前述したようにCTUレベルでコーディングされることができ、また、他の任意のサイズのサンプルグループレベルでコーディングされることもできる。例えば、前記NSSTインデックスインジケータはCU(Coding Unit)レベルでコーディングされることもできる。
【0182】
図13は、本発明に従うエンコード装置による画像エンコード方法を概略的に示す。
図13に開示された方法は、
図1に開示されたエンコード装置により行われることができる。具体的には、例えば、
図13のS1300は前記エンコード装置の減算部、S1310は前記エンコード装置の変換部、S1320ないしS1330は前記エンコード装置のエントロピーエンコード部により行われることができる。また、図示されてはいないが、予測サンプルを導出する過程は前記エンコード装置の予測部により行われることができる。
【0183】
エンコード装置は、対象ブロックのレジデュアルサンプルを導出する(S1300)。例えば、エンコード装置は、対象ブロックにインター予測を行うか、又はイントラ予測を行うかを決定し、具体的なインター予測モード又は具体的なイントラ予測モードをRDコスト基盤で決定する決定されたモードに応じてエンコード装置は前記対象ブロックに対する予測サンプルを導出し、前記対象ブロックに対する原本サンプルと前記予測サンプルの加算により前記レジデュアルサンプルを導出する。
【0184】
エンコード装置は、前記レジデュアルサンプルに対する変換を行って前記対象ブロックの変換係数を導出する(S1310)。エンコード装置は、前記対象ブロックに対するNSSTの適用可否を決定する。
【0185】
前記対象ブロックに対して前記NSSTが適用される場合、エンコード装置は、前記レジデュアルサンプルに対するコア変換を行って修正された変換係数を導出し、簡素化変換マトリックスに基づいて前記対象ブロックの左上端対象領域に位置する修正された変換係数に対するNSSTを行って前記対象ブロックの前記変換係数を導出する。前記対象ブロックの前記左上端領域に位置する前記修正された変換係数以外の修正された変換係数はそのまま前記対象ブロックの前記変換係数として導出される。前記簡素化変換マトリックスのサイズはR×Nであり、前記Nは前記左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さい。
【0186】
具体的に、前記レジデュアルサンプルに対するコア変換は次のように行われる。エンコード装置は前記対象ブロックに対する適応的多重コア変換(Adaptive Multiple core Transform:AMT)の適用可否を決定することができる。この場合、前記対象ブロックの適応的多重コア変換が適用されるか否かを示すAMTフラグが生成される。前記対象ブロックに前記AMTが適用されない場合、エンコード装置はDCTタイプ2を前記対象ブロックに対する変換カーネルとして導出し、前記DCTタイプ2に基づいて前記レジデュアルサンプルへの変換を行って前記修正された変換係数を導出する。
【0187】
前記対象ブロックに前記AMTが適用される場合、エンコード装置は、水平変換カーネルに対する変換サブセット及び垂直変換カーネルに対する変換サブセットを構成し、前記変換サブセットに基づいて水平変換カーネル及び垂直変換カーネルを導出し、前記水平変換カーネル及び前記垂直変換カーネルに基づいて前記レジデュアルサンプルに対する変換を行って修正された変換係数を導出する。ここで、前記水平変換カーネルに対する変換サブセット及び前記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1を候補として含む。また、変換インデックス情報が生成されることができ、前記変換インデックス情報は、前記水平変換カーネルを示すAMT水平フラグ及び前記垂直変換カーネルを示すAMT垂直フラグを含む。一方、前記変換カーネルは変換タイプ又は変換コアと呼ばれてもよい。
【0188】
一方、前記対象ブロックに対して前記NSSTが適用されない場合、エンコード装置は、前記レジデュアルサンプルに対するコア変換を行って前記対象ブロックの前記変換係数を導出することができる。
【0189】
具体的に、前記レジデュアルサンプルに対するコア変換は次のように行われる。エンコード装置は、前記対象ブロックに対する適応的多重コア変換(Adaptive Multiple core Transform:AMT)の適用可否を決定する。この場合、前記対象ブロックの適応的多重コア変換が適用されるか否かを示すAMTフラグが生成される。前記対象ブロックに前記AMTが適用されない場合、エンコード装置はDCTタイプ2を前記対象ブロックに対する変換カーネルとして導出し、前記DCTタイプ2に基づいて前記レジデュアルサンプルへの変換を行って前記変換係数を導出する。
【0190】
前記対象ブロックに前記AMTが適用される場合、エンコード装置は、水平変換カーネルに対する変換サブセット及び垂直変換カーネルに対する変換サブセットを構成し、前記変換サブセットに基づいて水平変換カーネル及び垂直変換カーネルを導出し、前記水平変換カーネル及び前記垂直変換カーネルに基づいて前記レジデュアルサンプルへの変換を行って変換係数を導出する。ここで、前記水平変換カーネルに対する変換サブセット及び前記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1を候補として含む。また、変換インデックス情報が生成されることができ、前記変換インデックス情報は、前記水平変換カーネルを示すAMT水平フラグ、及び前記垂直変換カーネルを示すAMT垂直フラグを含む。一方、前記変換カーネルは変換タイプ又は変換コアと呼ばれてもよい。
【0191】
エンコード装置は、前記NSSTインデックスをエンコードするか否かを決定する(S1320)。
【0192】
一例として、エンコード装置は、前記対象ブロックの変換係数のうち、R+1番目からN番目の変換係数をスキャンし、前記R+1番目からN番目の変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスをエンコードしないと決定する。ここで、前記Nは前記左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さい。前記Nは、前記左上端対象領域の幅(width)と高さ(height)の積として導出される。
【0193】
また、前記R+1番目からN番目の変換係数に0でない変換係数が含まれていない場合、エンコード装置は、前記NSSTインデックスをエンコードすると決定する。この場合、変換係数に関する情報は、前記NSSTインデックスに対するシンタックス要素(syntax element)を含む。すなわち、前記NSSTインデックスに対するシンタックス要素はエンコードされる。言い換えれば、前記NSSTインデックスに対するシンタックス要素のためのビットが割り当てられる。
【0194】
一方、エンコード装置は、前記NSSTが行われる実行できる条件に該当するか否かを判断し、前記NSSTが実行できる場合、前記対象ブロックに対するNSSTインデックスをエンコードすると決定する。例えば、ビットストリームから前記対象ブロックを含む対象CTUに対するNSSTインデックスインジケータ(indicator)が生成され、前記NSSTインデックスインジケータは前記対象CTUにNSSTが適用されるか否かを示す。前記NSSTインデックスインジケータの値が1である場合、エンコード装置は、前記対象ブロックに対するNSSTインデックスをエンコードすると決定し、前記NSSTインデックスインジケータの値が0である場合、デコード装置は、前記対象ブロックに対するNSSTインデックスをエンコードしないと決定する。前述した例のように、前記NSSTインデックスインジケータはCTUレベルでシグナリングされ、また、前記NSSTインデックスインジケータはCUレベル又は他の上位レベルでシグナリングされる。
【0195】
また、前記NSSTインデックスは、前記対象ブロックの複数の成分に対して使用される。
【0196】
例えば、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数、クロマCbブロックの変換係数及びクロマCrブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数、前記クロマCbブロックのR+1番目からN番目の変換係数及び前記クロマCrブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスはエンコードされないと決定される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記NSSTインデックスはエンコードすると決定される。この場合、変換係数に関する情報は、前記NSSTインデックスに対するシンタックス要素(syntax element)を含む。すなわち、前記NSSTインデックスに対するシンタックス要素はエンコードされる。言い換えれば、前記NSSTインデックスに対するシンタックス要素のためのビットが割り当てられる。
【0197】
他の例として、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数及びクロマCbブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数及び前記クロマCbブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスはエンコードされないと決定される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記NSSTインデックスはエンコードすると決定される。この場合、変換係数に関する情報は、前記NSSTインデックスに対するシンタックス要素(syntax element)を含む。すなわち、前記NSSTインデックスに対するシンタックス要素はエンコードされる。言い換えれば、前記NSSTインデックスに対するシンタックス要素のためのビットが割り当てられる。
【0198】
他の例として、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数及びクロマCrブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数及び前記クロマCrブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスはエンコードされないと決定される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記NSSTインデックスはエンコードすると決定される。この場合、変換係数に関する情報は、前記NSSTインデックスに対するシンタックス要素(syntax element)を含む。すなわち、前記NSSTインデックスに対するシンタックス要素はエンコードされる。言い換えれば、前記NSSTインデックスに対するシンタックス要素のためのビットが割り当てられる。
【0199】
一方、特定条件に基づいてNSSTインデックスの範囲が導出されることができる。例えば、前記特定条件に基づいて前記NSSTインデックスの最大値が導出され、前記範囲は0ないし前記導出された最大値として導出される。前記導出されたNSSTインデックスの値は前記範囲に含まれる。
【0200】
例えば、前記対象ブロックのサイズに基づいて前記NSSTインデックスの範囲が導出される。具体的に、最小幅及び最小高さが既に設定され、前記対象ブロックの幅及び前記最小幅、前記対象ブロックの高さ及び前記最小高さに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックのサンプル数及び特定の値に基づいて前記NSSTインデックスの範囲が導出される。前記サンプル数は、前記対象ブロックの幅と高さを乗じた値であり、前記特定値は既に設定されてもよい。
【0201】
また、他の例として、前記対象ブロックのタイプに基づいて前記NSSTインデックスの範囲が導出される。具体的に、前記対象ブロックが非正方形ブロックであるか否かに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックの幅と高さとの割合及び特定値に基づいて前記NSSTインデックスの範囲が導出される。前記対象ブロックの幅と高さ間の割合は、前記対象ブロックの幅と高さのうち長い辺を短い辺で割った値であり、前記特定値は既に設定されてもよい。
【0202】
また、他の例として、前記対象ブロックのイントラ予測モードに基づいて前記NSSTインデックスの範囲が導出される。具体的に、前記対象ブロックのイントラ予測モードが非方向性イントラ予測モードであるか又は方向性イントラ予測モードであるかに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックのイントラ予測モードがカテゴリA(Category A)又はカテゴリB(Category B)に含まれたイントラ予測モードであるか否かに基づいて前記NSSTインデックスの範囲が導出される。ここで、前記カテゴリAに含まれたイントラ予測モードと前記カテゴリBに含まれたイントラ予測モードは既に設定されてもよい。一例として、前記カテゴリAは、2番のイントラ予測モード、10番のイントラ予測モード、18番のイントラ予測モード、26番のイントラ予測モード、34番のイントラ予測モード、42番のイントラ予測モード、50番のイントラ予測モード、58番のイントラ予測モード及び66番のイントラ予測モードを含み、前記カテゴリBは前記カテゴリAに含まれたイントラ予測モード以外のイントラ予測モードを含む。
【0203】
また、他の例として、前記対象ブロックのコア変換(core transform)に関する情報に基づいて前記NSSTインデックスの範囲が導出される。例えば、適応的多重コア変換(Adaptive Multiple core Transform:AMT)が適用されるか否かを示すAMTフラグに基づいて前記NSSTインデックスの範囲が導出される。また、水平変換カーネルを示すAMT水平フラグ及び垂直変換カーネルを示すAMT垂直フラグに基づいて前記NSSTインデックスの範囲が導出される。
【0204】
一方、前記NSSTインデックスの値が0である場合、前記NSSTインデックスは前記対象ブロックにNSSTが適用されないことを示す。
【0205】
エンコード装置は変換係数に関する情報をエンコードする(S1330)。前記変換係数に関する情報は、前記変換係数のサイズ、位置などに関する情報を含む。また、前述したように、前記変換係数に関する情報は、前記NSSTインデックス、前記変換インデックス情報及び/又は前記AMTフラグをさらに含んでもよい。前記変換係数に関する情報を含む画像情報はビットストリーム形態で出力される。また、前記画像情報は、前記NSSTインデックスインジケータ及び/又は予測情報をさらに含んでもよい。前記予測情報は、前記予測手順に関する情報であり、予測モード情報及び動き情報に関する情報(例えば、インター予測が適用される場合)などを含む。
【0206】
出力されたビットストリームは格納媒体又はネットワークを介してデコード装置に伝達される。
【0207】
図14は、本発明に従う画像エンコード方法を行うエンコード装置を概略的に示す。
図13に開示された方法は、
図14に開示されたエンコード装置により行われることができる。具体的に、例えば、
図14の前記エンコード装置の加算部は
図13のS1300を行い、前記エンコード装置の変換部はS1310を行い、前記エンコード装置のエントロピーエンコード部は
図13のS1320ないしS1330を行うことができる。また、図示されてはいないが、予測サンプルを導出する過程は前記エンコード装置の予測部により行われることができる。
【0208】
図15は、本発明に従うデコード装置による画像デコード方法を概略的に示す。
図15に開示された方法は、
図3に開示されたデコード装置により行われることができる。具体的には、例えば、
図15のS1500ないしS1510は前記デコード装置のエントロピーデコード部、S1520は前記デコード装置の逆変換部、S1530は前記デコード装置の加算部により行われることができる。また、図示されてはいないが、予測サンプルを導出する過程は前記デコード装置の予測部により行われる。
【0209】
デコード装置は、前記ビットストリームから前記対象ブロックの変換係数を導出する(S1500)。デコード装置は、前記ビットストリームを介して受信された前記対象ブロックの変換係数に関する情報をデコードして前記対象ブロックの変換係数を導出する。前記受信された前記対象ブロックの変換係数に関する情報は、レジデュアル(residual)情報と示す。
【0210】
一方、前記対象ブロックの変換係数は、前記対象ブロックのルーマブロックの変換係数、前記対象ブロックのクロマCbブロックの変換係数及び前記対象ブロックのクロマCrブロックの変換係数を含む。
【0211】
デコード装置は、前記対象ブロックに対するNSST(Non-Separable Secondary Transform)インデックスを導出する(S1510)。
【0212】
一例として、デコード装置は、前記対象ブロックの変換係数のうちR+1番目からN番目の変換係数をスキャンし、前記R+1番目からN番目の変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスの値を0として導出する。ここで、前記Nは前記対象ブロックの左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さい。前記Nは、前記左上端の対象領域の幅(width)と高さ(height)の積として導出される。
【0213】
また、前記R+1番目からN番目の変換係数に0でない変換係数が含まれていない場合、デコード装置は、前記ビットストリームに含まれた前記NSSTインデックスに対するシンタックス要素(syntax element)をパーシング(parsing)して前記NSSTインデックスの値を導出する。すなわち、前記R+1番目からN番目の変換係数に0でない変換係数が含まれていない場合、前記ビットストリームは前記NSSTインデックスに対するシンタックス要素を含み、デコード装置はビットストリームを介して受信された前記NSSTインデックスに対するシンタックス要素をパーシングして前記NSSTインデックスの値を導出する。
【0214】
一方、デコード装置は、前記NSSTが実行できるとの条件に該当するか否かを判断し、前記NSSTが実行できる場合、前記対象ブロックに対するNSSTインデックスを導出する。例えば、ビットストリームから前記対象ブロックを含む対象CTUに対するNSSTインデックスインジケータ(indicator)がシグナリングされ、前記NSSTインデックスインジケータは前記対象CTUにNSSTが可用であるか(enabled)否かを示す。前記NSSTインデックスインジケータの値が1である場合、デコード装置は前記対象ブロックに対するNSSTインデックスを導出し、前記NSSTインデックスインジケータの値が0である場合、デコード装置は前記対象ブロックに対するNSSTインデックスを導出しないことがある。前述の例のように、前記NSSTインデックスインジケータはCTUレベルでシグナリングされ、または、前記NSSTインデックスインジケータはCUレベル又は他の上位レベルでシグナリングされる。
【0215】
また、前記NSSTインデックスは前記対象ブロックの複数の成分に対して使用される。
【0216】
例えば、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数、クロマCbブロックの変換係数及びクロマCrブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数、前記クロマCbブロックのR+1番目からN番目の変換係数及び前記クロマCrブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスの値は0として導出される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記ビットストリームは前記NSSTインデックスに対するシンタックス要素を含み、前記NSSTインデックスの値はビットストリームを介して受信された前記NSSTインデックスに対するシンタックス要素をパーシングして導出される。
【0217】
他の例として、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数及びクロマCbブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数及び前記クロマCbブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスの値は0として導出される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記ビットストリームは前記NSSTインデックスに対するシンタックス要素を含み、前記NSSTインデックスの値はビットストリームを介して受信された前記NSSTインデックスに対するシンタックス要素をパーシングして導出される。
【0218】
他の例として、前記NSSTインデックスが前記対象ブロックのルーマブロックの変換係数及びクロマCrブロックの変換係数に対する逆変換に使用される。この場合、前記ルーマブロックのR+1番目からN番目の変換係数及び前記クロマCrブロックのR+1番目からN番目の変換係数がスキャンされ、前記スキャンされた変換係数に0でない変換係数が含まれた場合、前記NSSTインデックスの値は0として導出される。前記スキャンされた変換係数に0でない変換係数が含まれていない場合、前記ビットストリームは前記NSSTインデックスに対するシンタックス要素を含み、前記NSSTインデックスの値はビットストリームを介して受信された前記NSSTインデックスに対するシンタックス要素をパーシングして導出される。
【0219】
一方、特定条件に基づいてNSSTインデックスの範囲が導出されることができる。例えば、前記特定条件に基づいて前記NSSTインデックスの最大値が導出され、前記範囲は0ないし前記導出された最大値として導出される。前記導出されたNSSTインデックスの値は前記範囲に含まれる。
【0220】
例えば、前記対象ブロックのサイズに基づいて前記NSSTインデックスの範囲が導出される。具体的に、最小幅及び最小高さが既に設定され、前記対象ブロックの幅及び前記最小幅、前記対象ブロックの高さ及び前記最小高さに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックのサンプル数及び特定値に基づいて前記NSSTインデックスの範囲が導出される。前記サンプル数は、前記対象ブロックの幅と高さを乗じた値であり、前記特定値は既に設定されてもよい。
【0221】
また、他の例として、前記対象ブロックのタイプに基づいて前記NSSTインデックスの範囲が導出されることができる。具体的に、前記対象ブロックが非正方形ブロックであるか否かに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックの幅と高さとの割合及び特定値に基づいて前記NSSTインデックスの範囲が導出される。前記対象ブロックの幅と高さ間の割合は前記対象ブロックの幅と高さのうち長い辺を短い辺で割った値であり、前記特定値は既に設定されてもよい。
【0222】
また、他の例として、前記対象ブロックのイントラ予測モードに基づいて前記NSSTインデックスの範囲が導出されることができる。具体的に、前記対象ブロックのイントラ予測モードが非方向性イントラ予測モードか又は方向性イントラ予測モードであるかに基づいて前記NSSTインデックスの範囲が導出される。また、前記対象ブロックのイントラ予測モードがカテゴリA(Category A)又はカテゴリB(Category B)に含まれたイントラ予測モードであるか否かに基づいて前記NSSTインデックスの範囲が導出される。ここで、前記カテゴリAに含まれたイントラ予測モードと前記カテゴリBに含まれたイントラ予測モードは既に設定されてもよい。一例として、前記カテゴリAは、2番のイントラ予測モード、10番のイントラ予測モード、18番のイントラ予測モード、26番のイントラ予測モード、34番のイントラ予測モード、42番のイントラ予測モード、50番のイントラ予測モード、58番のイントラ予測モード及び66番のイントラ予測モードを含み、前記カテゴリBは前記カテゴリAに含まれたイントラ予測モード以外のイントラ予測モードを含む。
【0223】
また、他の例としては、前記対象ブロックのコア変換(core transform)に関する情報に基づいて前記NSSTインデックスの範囲が導出されることができる。例えば、適応的多重コア変換(Adaptive Multiple core transform:AMT)が適用されるか否かを示すAMTフラグに基づいて前記NSSTインデックスの範囲が導出される。また、水平変換カーネルを示すAMT水平フラグ及び垂直変換カーネルを示すAMT垂直フラグに基づいて前記NSSTインデックスの範囲が導出される。
【0224】
一方、前記NSSTインデックスの値が0である場合、前記NSSTインデックスは前記対象ブロックにNSSTが適用されないことを示す。
【0225】
デコード装置は、前記NSSTインデックスに基づいて前記対象ブロックの前記変換係数に対する逆変換(inversed transform)を行って前記対象ブロックのレジデュアルサンプルを導出する(S1520)。
【0226】
例えば、前記NSSTインデックスの値が0である場合、デコード装置は前記対象ブロックの前記変換係数に対するコア変換(core transform)を実行し、前記レジデュアルサンプルを導出する。
【0227】
具体的に、デコード装置は、ビットストリームから適応的多重コア変換(Adaptive Multiple core Transform:AMT)が適用されるか否かを示すAMTフラグを取得する。
【0228】
前記AMTフラグの値が0である場合、デコード装置は、DCTタイプ2を前記対象ブロックに対する変換カーネルとして導出し、前記DCTタイプ2に基づいて前記変換係数に対する逆変換を行って前記レジデュアルサンプルを導出する。
【0229】
前記AMTフラグの値が1である場合、デコード装置は水平変換カーネルに対する変換サブセット及び垂直変換カーネルに対する変換サブセットを構成し、前記ビットストリームから取得された変換インデックス情報、前記変換サブセットに基づいて水平変換カーネル及び垂直変換カーネルを導出し、前記水平変換カーネル及び垂直変換カーネルに基づいて前記変換係数に対する逆変換を行って前記レジデュアルサンプルを導出する。ここで、前記水平変換カーネルに対する変換サブセット及び前記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1を候補として含む。また、前記変換インデックス情報は、前記水平変換カーネルに対する変換サブセットに含まれた候補のうち1つを示すAMT水平フラグ及び前記垂直変換カーネルに対する変換サブセットに含まれた候補のうち1つを示すAMT垂直フラグを含む。一方、前記変換カーネルは変換タイプ又は変換コア(core)と呼ばれてもよい。
【0230】
他の例として、前記NSSTインデックスの値が0でない場合、デコード装置は、前記NSSTインデックスが示す簡素化変換マトリックス(reduced transform matrix)に基づいて前記対象ブロックの左上端対象領域に位置する変換係数に対するNSSTを実行して修正された変換係数を導出し、前記修正された変換係数を含む対象ブロックに対するコア変換を行って前記レジデュアルサンプルを導出する。前記簡素化変換マトリックスのサイズはR×Nであり、前記Nは前記左上端対象領域のサンプル数であり、前記Rは簡素化係数(reduced coefficient)であり、前記Rは前記Nより小さい。
【0231】
前記対象ブロックに対するコア変換は次のように行われる。デコード装置は、ビットストリームから適応的多重コア変換(Adaptive Multiple core Transform:AMT)が適用されるか否かを示すAMTフラグを取得し、前記AMTフラグの値が0である場合、デコード装置は、DCTタイプ2を前記対象ブロックに対する変換カーネルとして導出し、前記DCTタイプ2に基づいて前記修正された変換係数を含む前記対象ブロックに対する逆変換を行って前記サンプルを導出する。
【0232】
前記AMTフラグの値が1である場合、デコード装置は、水平変換カーネルに対する変換サブセット及び垂直変換カーネルに対する変換サブセットを構成し、前記ビットストリームから取得された変換インデックス情報、前記変換サブセットに基づいて水平変換カーネル及び垂直変換カーネルを導出し、前記水平変換カーネル及び前記垂直変換カーネルに基づいて前記修正された変換係数を含む前記対象ブロックに対する逆変換を行って前記レジデュアルサンプルを導出する。ここで、前記水平変換カーネルに対する変換サブセット及び前記垂直変換カーネルに対する変換サブセットは、DCTタイプ2、DSTタイプ7、DCTタイプ8、及び/又はDSTタイプ1を候補として含む。また、前記変換インデックス情報は、前記水平変換カーネルに対する変換サブセットに含まれた候補のうち1つを示すAMT水平フラグ及び前記垂直変換カーネルに対する変換サブセットに含まれた候補のうち1つを示すAMT垂直フラグを含む。一方、前記変換カーネルは変換タイプ又は変換コア(core)と呼ばれもよい。
【0233】
デコード装置は、前記レジデュアルサンプルに基づいて復元ピクチャを生成する(S1530)。デコード装置は、前記レジデュアルサンプルに基づいて復元ピクチャを生成する。例えば、デコード装置は、ビットストリームを介して受信された予測情報に基づいて対象ブロックに対するインター予測又はイントラ予測を行い、予測サンプルを導出することができ、前記予測サンプルと前記レジデュアルサンプルの加算により前記復元ピクチャを生成する。以後、必要に応じて、主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO及び/又はALF手順のようなインループフィルタリング手順が前記復元ピクチャに適用できることは前述の通りである。
【0234】
図16は、本発明に従う画像デコード方法を行うデコード装置を概略的に示す。
図15に開示された方法は、
図16に開示されたデコード装置により行われることができる。具体的に、例えば、
図16の前記デコード装置のエントロピーデコード部は
図15のS1500ないしS1510を行い、
図16の前記デコード装置の逆変換部は
図15のS1520を行い、
図16の前記デコード装置の加算部は
図15のS1530を行うことができる。また、図示されてはいないが、予測サンプルを導出する過程は、
図16の前記デコード装置の予測部により行われることができる。
【0235】
前述した本発明によれば、NSSTインデックスの範囲を対象ブロックの特定条件に基づいて導出し、これにより、前記NSSTインデックスのためのビット量を減少させ、全般的なコーディング効率を向上させることができる。
【0236】
また、本発明によれば、NSSTインデックスに対するシンタックスエレメントの送信が対象ブロックに対する変換係数に基づいて決定され、これにより、NSSTインデックスのためのビット量を減少させ、全般的なコーディング効率を向上させることができる。
【0237】
前述した実施形態において、方法は一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、本発明はステップの順序に限定されるものではなく、あるステップは前述とは異なるステップと異なる順序で又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、他のステップが含まれるかフローチャートの1つ又はそれ以上のステップが本発明の範囲に影響を及ぼさずに削除できることが理解できるであろう。
【0238】
前述した本発明に従う方法は、ソフトウェア形態で実装され、本発明によるエンコード装置及び/又はデコード装置は、例えば、テレビ、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を行う装置に含まれる。
【0239】
本発明において実施形態がソフトウェアにより実現されるとき、前述した方法は、前述した機能を行うモジュール(過程、機能など)により実現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあり、よく知られた多様な手段でプロセッサと接続されることができる。プロセッサは、ASIC(Application Specific Integrated Circuit)、他のチプセット、論理回路及び/又はデータ処理装置を含む。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含む。すなわち、本発明で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われる。例えば、各図面で図示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われる。
【0240】
また、本発明が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTT(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などが含まれる。
【0241】
また、本発明が適用される処理方法は、コンピュータにより実行されるプログラムの形態で生産されることができ、コンピュータにより読み取りできる記録媒体に格納できる。本発明によるデータ構造を有するマルチメディアデータもまたコンピュータにより読み取りできる記録媒体に格納できる。前記コンピュータにより読み取りできる記録媒体は、コンピュータにより読み取りできるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータにより読み取りできる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピ(登録商標)ディスク及び光学データ格納装置を含むことができる。また、前記コンピュータにより読み取りできる記録媒体は、搬送波(例えば、インターネットを介する送信)の形態で実現されたメディアを含む。また、エンコード方法により生成されたビットストリームがコンピュータにより読み取りできる記録媒体に格納されるか、有無線通信ネットワークを介して送信できる。また、本発明の実施形態は、プログラムコードによるコンピュータプログラム製品として実現され、前記プログラムコードは、本発明の実施形態によりコンピュータにおいて行われる。前記プログラムコードは、コンピュータにより読み取りできるキャリア上に格納されることができる。
【0242】
また、本発明が適用されるコンテンツストリーミングシステムは、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置及びマルチメディア入力装置を含む。
【0243】
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割を果たす。他の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されてもよい。前記ビットストリームは、本発明が適用されるエンコード方法又はビットストリーム生成方法により生成され、前記ストリームサーバは、前記ビットストリームを送信又は受信する過程で一時的に前記ビットストリームを格納することができる。
【0244】
前記ストリーミングサーバは、ウェブサーバを介するユーザ要求に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体としての役割を果たす。ユーザが前記ウェブサーバにご希望のサービスを要求すると、前記ウェブサーバはこれをストリーミングサーバに伝達し、前記ストリーミングサーバはユーザにマルチメディアデータを送信する。ここで、前記コンテンツストリーミングシステムは別途の制御サーバを含んでもよく、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たす。
【0245】
前記ストリーミングサーバは、メディア格納所及び/又はエンコードサーバからコンテンツを受信する。例えば、前記エンコードサーバからコンテンツを受信する場合、前記コンテンツをリアルタイムに受信できる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは前記ビットストリームを一定時間格納することができる。
【0246】
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがあり得る。前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営でき、この場合、各サーバで受信するデータは分散処理されることができる。
【手続補正書】
【提出日】2024-02-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デコード装置により行われる画像デコード方法において、
ビットストリームから予測モード情報及びレジデュアル情報を取得するステップと、
前記予測モード情報に基づいて対象ブロックに対する予測サンプルを導出するステップと、
前記レジデュアル情報に基づいて前記対象ブロックの変換係数を導出するステップと、
前記対象ブロックの前記変換係数のうちのR+1番目からN番目の変換係数に0でない変換係数が存在するか否かを決定するステップと、
前記R+1番目からN番目の変換係数に前記0でない変換係数が存在するか否かの決定に基づいて、前記対象ブロックに対する非分離変換インデックスを導出するステップと、
前記対象ブロックの前記変換係数に基づいて逆変換を実行することにより前記対象ブロックのレジデュアルサンプルを導出するステップであって、前記逆変換は、前記非分離変換インデックスに基づく、ステップと、
前記予測サンプル及び前記レジデュアルサンプルに基づいて復元ピクチャを生成するステップと、を含み、
前記R+1番目からN番目の変換係数に前記0でない変換係数が存在する場合に基づいて、前記非分離変換インデックスの値は0として導出され、
前記非分離変換インデックスの値が0でない場合に基づいて、非分離変換に基づく前記逆変換は、前記非分離変換インデックスに関連する変換マトリックスに基づく前記逆変換の入力係数に対して実行され、
前記Rは、前記逆変換の前記入力係数の数であり、前記Nは、前記対象ブロックの前記変換係数の数である、画像デコード方法。
【請求項2】
エンコード装置により行われる画像エンコードの方法において、
対象ブロックの予測モードを導出するステップと、
前記予測モードに基づいて前記対象ブロックに対する予測サンプルを導出するステップと、
前記予測モードに基づいて予測モード情報を生成するステップと、
前記予測サンプルに基づいて前記対象ブロックのレジデュアルサンプルを導出するステップと、
前記レジデュアルサンプルに基づいて変換を実行することにより前記対象ブロックに対する変換係数を導出するステップと、
前記対象ブロックの前記変換係数のうちのR+1番目からN番目の変換係数に0でない変換係数が存在するか否かを決定するステップと、
前記R+1番目からN番目の変換係数に前記0でない変換係数が存在するか否かの決定に基づいて、前記対象ブロックに対する非分離変換インデックスをエンコードするか否かを決定するステップと、
前記予測モード情報、及び前記変換係数に関連する情報を含むレジデュアル情報をエンコードするステップと、を含み、
非分離変換に基づく前記変換が、前記非分離変換インデックスに関連する変換マトリックスに基づく前記変換係数に対して実行される場合に基づいて、前記R+1番目からN番目の変換係数に前記0でない変換係数は存在せず、
前記R+1番目からN番目の変換係数に前記0でない変換係数が存在する場合に基づいて、前記非分離変換インデックスは、エンコードされないと決定され、
前記Rは、前記変換の出力係数の数であり、前記Nは、前記対象ブロックの前記変換係数の数である、画像エンコード方法。
【請求項3】
画像に対するデータの送信方法において、
前記画像に対するビットストリームを取得するステップであって、前記ビットストリームは、対象ブロックの予測モードを導出し、前記予測モードに基づいて前記対象ブロックに対する予測サンプルを導出し、前記予測モードに基づいて予測モード情報を生成し、前記予測サンプルに基づいて前記対象ブロックのレジデュアルサンプルを導出し、前記レジデュアルサンプルに基づいて変換を実行することにより前記対象ブロックに対する変換係数を導出し、前記対象ブロックの前記変換係数のうちのR+1番目からN番目の変換係数に0でない変換係数が存在するか否かを決定し、前記R+1番目からN番目の変換係数に前記0でない変換係数が存在するか否かの決定に基づいて、前記対象ブロックに対する非分離変換インデックスをエンコードするか否かを決定し、前記予測モード情報、及び前記変換係数に関連する情報を含むレジデュアル情報をエンコードすることに基づいて生成される、ステップと、
前記ビットストリームを含む前記データを送信するステップと、を含み、
非分離変換に基づく前記変換が、前記非分離変換インデックスに関連する変換マトリックスに基づく前記変換係数に対して実行される場合に基づいて、前記R+1番目からN番目の変換係数に前記0でない変換係数は存在せず、
前記R+1番目からN番目の変換係数に前記0でない変換係数が存在する場合に基づいて、前記非分離変換インデックスは、エンコードされないと決定され、
前記Rは、前記変換の出力係数の数であり、前記Nは、前記対象ブロックの前記変換係数の数である、データ送信方法。