以下、図面を参照して本発明の実施例に対して具体的に説明する。本明細書の実施例を説明するにあたって、関連した公知構成又は機能に対する具体的な説明が本明細書の要旨を不明にすると判断される場合にはその詳細な説明は省略する。
本明細書において、一構成要素が他の構成要素に“連結されている”又は“接続されている”と言及された場合、該当他の構成要素に直接的に連結されている、又は接続されていることを意味し、又は中間に他の構成要素が存在することを意味する。また、本明細書において、特定構成を“含む”と記述する内容は、該当構成以外の構成を排除するものではなく、追加的な構成が本発明の実施又は本発明の技術的思想の範囲に含まれることができることを意味する。
第1、第2などの用語は、多様な構成の説明に使われることができるが、前記構成は、前記用語により限定されるものではない。前記用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1の構成は第2の構成と命名することができ、同様に、第2の構成も第1の構成と命名することができる。
また、本発明の実施例に開示する構成部は、互いに異なる特徴的な機能を示すために独立的に図示されるものであり、各構成部が分離されたハードウェアや一つのソフトウェア構成単位に構成されることを意味しない。即ち、各構成部は、説明の便宜上、それぞれの構成部として羅列して含むものであり、各構成部のうち少なくとも2個の構成部が統合されて一つの構成部からなり、又は一つの構成部が複数個の構成部に分けられて機能を遂行することができる。各構成部の統合された実施例及び分離された実施例も本発明の本質から外れない限り本発明の権利範囲に含まれる。
また、一部の構成要素は、本発明で本質的な機能を遂行する必須的構成要素ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除いた本発明の本質具現に必須的な構成部のみを含んで具現されることができ、単に性能向上のために使われる選択的な構成要素を除いた必須的な構成要素のみを含む構造も本発明の権利範囲に含まれる。
まず、説明の便宜及び発明の理解のために、本明細書で使われる用語に対して簡略に説明する。
ユニット(unit)は、映像符号化及び復号化の単位を意味する。即ち、映像符号化/復号化において符号化単位又は復号化単位とは、一つの映像を細分化されたユニットに分割して符号化又は復号化する時、その分割された単位を意味する。ブロック(block)、マクロブロック、符号化ユニット(coding unit)又は予測ユニット(prediction unit)又は変換ユニット(transform unit)又は符号化ブロック(coding block)又は予測ブロック(prediction block)又は変換ブロック(transform block)などと呼ばれている。一つのユニットは、大きさが小さい下位ユニットに分割されることができる。
変換ユニット(transform unit)は、変換、逆変換、量子化、逆量子化、変換係数符号化/復号化のように残差ブロック(residual block)の符号化/復号化を実行するにあたって、基本ユニット又は単位ユニットであり、一つの変換ユニットは、複数の小さい変換ユニットに分割されることができる。また、変換ブロックと同じ意味で使われることができ、輝度と色差信号に対する変換ブロックに関連した構文要素(syntax element)が含まれている形態を変換ユニットともいう。
量子化行列(quantization matrix)は、映像の主観的画質又は客観的画質を向上させるために量子化又は逆量子化過程で利用される行列を意味する。量子化行列は、スケーリングリスト(scaling list)とも呼ばれる。
量子化/逆量子化に使われる量子化行列は、ビットストリーム(bit stream)に送信されることもでき、符号化器及び/又は復号化器が既に保有した基本行列(default matrix)が使われることもできる。送信される量子化行列の情報は、シーケンスパラメータセット(SPS:sequence parameter set)又はピクチャパラメータセット(PPS:picture parameter set)を介して量子化行列の大きさ又は量子化行列が適用される変換ブロック大きさ別に一括して送信されることができる。例えば、4×4変換ブロックのための4×4量子化行列が送信され、8×8変換ブロックのための8×8行列が送信され、16×16変換ブロックのための16×16行列が送信され、32×32変換ブロックのための32×32行列が送信されることができる。
現在ブロックに適用される量子化行列は、(1)同じ大きさの量子化行列を複写して取得されてもよく、(2)量子化行列内の以前行列係数(matrix coefficient)から予測により生成されてもよい。同じ大きさの行列は、以前に符号化又は復号化又は使われた量子化行列であってもよく、参照量子化行列であってもよく、基本量子化行列であってもよい。または、以前に符号化又は復号化又は使われた量子化行列、参照量子化行列、基本量子化行列のうち少なくとも二つを含む組合せから選択的に決定されることもできる。
パラメータセット(parameter set)は、ビットストリーム内の構造のうちヘッダ情報に該当し、シーケンスパラメータセット、ピクチャパラメータセット、適応パラメータセット(adaptation parameter set)などを通称する。
量子化媒介変数(quantization parameter)は、量子化及び逆量子化で使われる値であって、量子化媒介変数は、量子化ステップ大きさ(step size)にマッピングされた値である。
基本行列は、符号化器及び/又は復号化器で予め定義されている所定の量子化行列を意味し、本明細書で後述される基本量子化行列は、基本行列と同じ意味で使われることができる。非基本行列(non-default matrix)は、符号化器及び/又は復号化器で予め定義されず、符号化器から復号化器に送信される、即ち、ユーザによって送信/受信される量子化行列を意味し、本明細書で後述される非基本量子化行列は、非基本行列と同じ意味で使われることができる。
図1は、本発明が適用される映像符号化装置の一実施例に係る構成を示すブロック図である。
図1を参照すると、前記映像符号化装置100は、動き予測部111、動き補償部112、イントラ予測部120、スイッチ115、減算器125、変換部130、量子化部140、エントロピー符号化部150、逆量子化部160、逆変換部170、加算器175、フィルタ部180、及び参照映像バッファ190を含む。
映像符号化装置100は、入力映像に対してイントラ(intra)モード又はインター(inter)モードに符号化を実行することによってビットストリームを出力することができる。イントラ予測は、画面内予測を意味し、インター予測は、画面間予測を意味する。イントラモードである場合、スイッチ115がイントラに切り替え、インターモードである場合、スイッチ115がインターに切り替えることができる。映像符号化装置100は、入力映像の入力ブロックに対する予測ブロックを生成した後、入力ブロックと予測ブロックとの差分を符号化することができる。このとき、入力映像は、元映像(original picture)を意味する。
イントラモードである場合、イントラ予測部120は、現在ブロック周辺の既に符号化されたブロックのピクセル値を利用して空間的予測を実行することによって予測ブロックを生成することができる。
インターモードである場合、動き予測部111は、動き予測過程で参照映像バッファ190に格納されている参照映像で入力ブロックと最もよくマッチされる領域を探して動きベクトルを求めることができる。動き補償部112は、動きベクトルを利用して動き補償を実行することによって予測ブロックを生成することができる。ここで、動きベクトルは、インター予測に使われる2次元ベクトルであり、現在ブロックと参照映像内のブロックとの間のオフセットを示すことができる。
減算器125は、入力ブロックと生成された予測ブロックとの差分により残差ブロックを生成することができる。変換部130は、残差ブロックに対して変換(transform)を実行することで、変換係数(transform coefficient)を出力することができる。そして、量子化部140は、入力された変換係数を量子化媒介変数と量子化行列のうち少なくとも一つを利用して量子化することによって、量子化された係数(quantized coefficient)を出力することができる。このとき、量子化行列は、符号化器に入力されることができ、入力された量子化行列が符号化器で使われると決定されることができる。
エントロピー符号化部150は、量子化部140で算出された値又は符号化過程で算出された符号化パラメータ値などに基づいてエントロピー符号化を実行することで、ビットストリーム(bit stream)を出力することができる。エントロピー符号化が適用される場合、高い発生確率を有するシンボル(symbol)に少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、符号化対象シンボルに対するビット列の大きさが減少されることができる。したがって、エントロピー符号化を介して映像符号化の圧縮性能が高まることができる。エントロピー符号化部150は、エントロピー符号化のために、指数-ゴロムコード(Exponential-Golomb Code)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)のような符号化方法を使用することができる。
図1の実施例に係る映像符号化装置は、インター予測符号化、即ち、画面間予測符号化を実行するため、現在符号化された映像は、参照映像として使われるために復号化されて格納される必要がある。したがって、量子化された係数は、逆量子化部160で逆量子化され、逆変換部170で逆変換される。逆量子化及び逆変換された係数は、復元された残差ブロックになって加算器175を介して予測ブロックと加えられることで、復元ブロックが生成される。
復元ブロックは、フィルタ部180を経て、フィルタ部180は、デグロッキングフィルタ(deblocking filter)、SAO(Sample Adaptive Offset)、ALF(Adaptive Loop Filter)のうち少なくとも一つ以上を復元ブロック又は復元ピクチャに適用することができる。フィルタ部180は、インループ(in-loop)フィルタとも呼ばれる。デグロッキングフィルタは、ブロック間の境界に発生したブロック歪曲を除去することができる。SAOは、コーディングエラーを補償するために、ピクセル値に適正オフセット(offset)値を加えることができる。ALFは、復元された映像と元来の映像を比較した値に基づいてフィルタリングを実行することができる。フィルタ部180を経た復元ブロックは、参照映像バッファ190に格納されることができる。
図2は、本発明が適用される映像復号化装置の一実施例に係る構成を示すブロック図である。
図2を参照すると、前記映像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、イントラ予測部240、動き補償部250、加算器255、フィルタ部260、及び参照映像バッファ270を含む。
映像復号化装置200は、符号化器で出力されたビットストリームの入力を受けてイントラモード又はインターモードに復号化を実行し、再構成された映像、即ち、復元映像を出力することができる。イントラモードである場合、スイッチがイントラに切り替え、インターモードである場合、スイッチがインターに切り替えることができる。映像復号化装置200は、入力されたビットストリームから復元された残差ブロック(reconstructed residual block)を得て予測ブロックを生成した後、復元された残差ブロックと予測ブロックを加えて再構成されたブロック、即ち、復元ブロックを生成することができる。
エントロピー復号化部210は、入力されたビットストリームを確率分布によってエントロピー復号化することで、量子化された係数(quantized coefficient)形態のシンボルを含むシンボルを生成することができる。エントロピー復号化方法は、前述したエントロピー符号化方法と同様である。
エントロピー復号化方法が適用される場合、高い発生確率を有するシンボルに少ない数のビットが割り当てられ、低い発生確率を有するシンボルに多い数のビットが割り当てられてシンボルが表現されることによって、各シンボルに対するビット列の大きさが減少されることができる。
量子化された係数は、逆量子化部220で量子化媒介変数を利用して逆量子化され、逆変換部230で逆変換され、量子化された係数が逆量子化/逆変換された結果、復元された残差ブロックが生成されることができる。
逆量子化に使われる量子化行列は、スケーリングリストとも呼ばれる。逆量子化部220は、量子化された係数に量子化行列を適用することで、逆量子化された係数を生成することができる。
このとき、逆量子化部220は、符号化器で適用された量子化に対応して逆量子化を実行することができる。例えば、逆量子化部220は、符号化器で適用された量子化行列を量子化された係数に逆に適用して逆量子化を実行することができる。
映像復号化装置200で逆量子化に使われる量子化行列は、ビットストリームから受信されることもでき、符号化器及び/又は復号化器が既に保有した基本行列が使われることもできる。送信される量子化行列の情報は、シーケンスパラメータセット又はピクチャパラメータセットを介して量子化行列大きさ又は量子化行列が適用される変換ブロック大きさ別に一括して受信されることができる。例えば、4×4変換ブロックのための4×4量子化行列が受信され、8×8変換ブロックのための8×8行列が受信され、16×16変換ブロックのための16×16行列が受信され、32×32変換ブロックのための32×32行列が受信されることができる。
イントラモードである場合、イントラ予測部240は、現在ブロック周辺の既に復号化されたブロックのピクセル値を利用して空間的予測を実行することによって予測ブロックを生成することができる。インターモードである場合、動き補償部250は、動きベクトル及び参照映像バッファ270に格納されている参照映像を利用して動き補償を実行することによって予測ブロックを生成することができる。
復元された残差ブロックと予測ブロックは、加算器255を介して加えられ、加えられたブロックは、フィルタ部260を経ることができる。フィルタ部260は、デグロッキングフィルタ、SAO、ALFのうち少なくとも一つ以上を復元ブロック又は復元ピクチャに適用することができる。フィルタ部260は、再構成された映像、即ち、復元映像を出力することができる。復元映像は、参照映像バッファ270に格納されてインター予測に使われることができる。
一方、ブロック分割情報にはユニットの深さ(depth)に対する情報が含まれることができる。深さ情報は、ユニットが分割される回数及び/又は程度を示すことができる。
図3は、一つのユニットが複数の下位ユニットに分割される実施例を概略的に示す概念図である。
一つのユニット又はブロックは、ツリー構造(tree structure)に基づいて深さ情報を有して階層的に分割されることができる。各々の分割された下位ユニットは、深さ情報を有することができる。前記深さ情報は、ユニットが分割された回数及び/又は程度を示すため、前記下位ユニットの大きさに対する情報を含むこともできる。
図3の310を参照すると、最も上位ノードは、ルートノード(root node)とも呼ばれ、最も小さい深さ値を有することができる。このとき、最も上位ノードは、レベル0の深さを有することができ、分割されない最初のユニットを示すことができる。
レベル1の深さを有する下位ノードは、最初のユニットが一回分割されたユニットを示すことができ、レベル2の深さを有する下位ノードは、最初のユニットが二回分割されたユニットを示すことができる。例えば、図3の320において、ノードaに対応するユニットaは、最初のユニットで一回分割されたユニットであり、レベル1の深さを有することができる。
レベル3のリーフノード(leaf node)は、最初のユニットが三回分割されたユニットを示すことができる。例えば、図3の320において、ノードdに対応するユニットdは、最初のユニットで三回分割されたユニットであり、レベル3の深さを有することができる。したがって、最も下位ノードであるレベル3のリーフノードは、最も深い深さを有することができる。
以上、概略的な符号化/復号化方法を説明した。符号化/復号化過程の量子化及び逆量子化過程で利用される量子化行列符号化/復号化方法は、符号化/復号化の他の過程と同様に、符号化効率に大きい影響を及ぼす。したがって、符号化効率を考慮して量子化/逆量子化を改善する必要がある。
具体的に、従来には使用可能な変換の最小大きさと最大大きさを考慮せずに、全ての変換に対する量子化行列を符号化/復号化した。また、従来にはシーケンス又はピクチャ又はスライス内で変換大きさ又は量子化行列種類別に基本行列と非基本行列とを混用して使用せずに、一律的に量子化行列を適用するため、符号化器で量子化行列選択の自由度が低いという短所があり、符号化/復号化しなくてもよい基本行列を符号化して送らなければならないため、符号化効率が低下されるという短所がある。
このように従来の方法によると、量子化行列の適用において、自由度が低く、符号化効率も高くないだけでなく、複雑度も高かった。
したがって、量子化/逆量子化において、符号化効率を上げ、且つ複雑度を減らすために、量子化行列を効果的に使用する方法を考慮する必要がある。
図4は、本発明による映像符号化方法を概略的に説明する順序図である。
図4を参照すると、符号化器は、現在シーケンス又はピクチャの変換ユニット大きさに対する情報を決定して符号化する(S410)。
変換ユニットの大きさ情報は、変換ユニットの最小大きさと最大大きさのうち少なくとも一つ以上を意味する。符号化器は、映像符号化時、変換ユニットの最小大きさと最大大きさを決定することができる。
例えば、符号化器は、正方形(square)変換ユニットの最小大きさを4×4ブロックに決定し、又は最大大きさを32×32ブロックに決定することができる。また、符号化器は、正方形変換ユニットの最小大きさと最大大きさを、各々、4×4ブロックと32×32ブロックに決定することもできる。正方形変換ユニットの最小大きさ及び最大大きさによって符号化を実行することができる。
符号化器は、決定された変換ユニット大きさ情報をビットストリームにエントロピー符号化することができる。例えば、符号化器は、決定された変換ユニット大きさ情報をビットストリーム内のパラメータセットに符号化することができる。
前述したように、変換ユニット大きさ情報は、変換ユニットの最小大きさと最大大きさのうち少なくとも一つ以上に対する情報を意味する。したがって、符号化器は、変換ユニット大きさ情報として変換ユニットの最小大きさと最大大きさに対する情報をビットストリームに符号化することができる。このとき、変換ユニットの最大大きさは、変換ユニットの最小大きさとの差分値を利用して特定されることができる。
表1は、ビットストリームのシーケンスパラメータセットにエントロピー符号化された変換ユニット大きさ情報の例を概略的に示す。
表1で例示した構文要素のように、正方形変換ユニットの最小横又は縦大きさに対してLog2関数を適用してLog2MinTrafoSizeを計算した後、Log2MinTrafoSizeに2を減算した値をlog2_min_transform_block_size_minus2を利用して特定することができる。また、正方形変換ユニットの最大横又は縦大きさにLog2関数を適用してLog2MaxTrafoSizeを計算した後、Log2MaxTrafoSizeとLog2MinTrafoSizeとの間の差分値をlog2_diff_max_min_transform_block_sizeを利用して特定することができる。符号化器は、構文要素であるlog2_min_transform_block_size_minus2とlog2_diff_max_min_transform_block_sizeをビットストリームに符号化して復号化器に送信することができる。即ち、符号化器は、log2_min_transform_block_size_minus2とlog2_diff_max_min_transform_block_sizeが指示する値を符号化してビットストリームで送信することができる。
符号化器は、量子化行列情報を符号化することができる(S420)。符号化器は、(1)量子化行列の使用可否情報、(2)量子化行列の存在(present)有無情報、(3)量子化行列の符号化可否及び基本行列の使用可否、(4)量子化行列予測符号化方法と種類、(5)参照量子化行列識別子、又は(6)量子化行列内で以前に符号化された量子化行列係数値と符号化対象量子化行列係数値との間の差分値のうち少なくとも一つ以上を含む量子化行列情報を符号化する。
このとき、符号化器は、変換ユニットの大きさに対する情報に基づいて量子化行列情報を符号化することもできる。
以下、図面と表を参照して量子化行列情報の符号化方法に対して具体的に説明する。
量子化行列情報は、符号化器で決定された又は使われた方法を指示するようになる。例えば、符号化器は、量子化行列の使用可否に対して決定した後、量子化行列使用可否情報をパラメータセットに符号化することができる。したがって、符号化された量子化行列使用可否情報は、符号化器が決定した量子化行列使用可否を指示するようになる。
表2は、量子化行列の使用可否情報をシーケンスパラメータに符号化した例を示す。
表2のシンタックス例のように、符号化器は、量子化行列使用可否情報であるscaling_list_enabled_flagをシーケンスパラメータセットに符号化して復号化器に送信することができる。このとき、scaling_list_enabled_flagの値が1の場合、シーケンス全体に対する変換係数の逆量子化(dequantization)/スケーリング(scaling)で量子化行列を使用するということを指示し、scaling_list_enabled_flagの値が0の場合、変換係数の逆量子化/スケーリングで量子化行列を使用しないということを指示することができる。
ここで、シンタックスは、構文要素を意味する。
符号化器は、量子化行列の存在有無に対して決定した後、量子化行列の存在有無情報をパラメータセットに符号化することができる。
表3は、量子化行列の存在有無情報をパラメータセットに符号化する例を示す。
表3のシンタックス例のように、符号化器は、量子化行列の存在有無情報であるaps_scaling_list_data_present_flagをパラメータセットに符号化することができる。表3では、量子化行列の存在有無情報を適応パラメータセットに符号化する場合を例示したが、本発明は、これに限定されるものではなく、符号化器は、他のパラメータセットに量子化行列の存在有無情報を符号化することもできる。
表3において、aps_scaling_list_data_present_flagの値が1の場合、適応パラメータセットに量子化行列が存在することを指示し、aps_scaling_list_data_present_flagの値が0の場合、適応パラメータセットに量子化行列が存在しないことを指示する。もし、scaling_list_enabled_flagが1であり、aps_scaling_list_data_present_flagが0の場合、基本行列が逆量子化時に使われることを意味する。
また、量子化行列の存在有無情報は、互いに異なるパラメータセットに存在し、例えば、シーケンスで量子化行列の存在有無を示すsps_scaling_list_data_present_flagとピクチャで量子化行列の存在有無を示すpps_scaling_list_data_present_flagが使われる時、sps_scaling_list_data_present_flagが1であり、且つpps_scaling_list_data_present_flagが0の場合、シーケンスに該当する量子化行列が量子化/逆量子化時に使われることができる。即ち、多数のパラメータセットで量子化行列が送信され、一部パラメータセットに量子化行列が存在しない場合、存在し、又は活性化(active)されたパラメータセットに存在する量子化行列を量子化/逆量子化時に使われることができる。前記内容は、後述される実施例のうち、量子化行列の存在有無情報を符号化/復号化する内容にも適用されることができる。
符号化器は、量子化行列の符号化可否及び基本行列の使用可否を決定した後、量子化行列の符号化可否及び基本行列の使用可否に対する情報をパラメータセットに符号化することができる。
表4は、量子化行列の符号化可否及び基本行列の使用可否に対する情報をパラメータセットに符号化する一例を示す。
符号化器は、表4の例のように、量子化行列の符号化可否及び基本行列の使用可否情報であるuse_default_scaling_list_flagを適応パラメータセットに符号化することができる。use_default_scaling_list_flagの値が1の場合、量子化行列が符号化されず、全ての量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定する。use_default_scaling_list_flagの値が0の場合、量子化行列が符号化され、符号化器及び/又は復号化器で予め決められた基本行列を使用しない。
表4では、use_default_scaling_list_flagを適応パラメータセットに符号化する場合を説明したが、これは説明の便宜のための一例に過ぎず、use_default_scaling_list_flagは、その他のパラメータセットに符号化されてもよい。
量子化行列の情報は、変換ユニットの大きさ又は変換ブロックの大きさ、符号化モード、及び色成分を考慮して決定されることができる。また、量子化行列の情報は、該当情報が輝度成分(Y,luma)に対するものであるか、又は色差成分(Cb,Cr,chroma)に対するものであるかも指示することができる。
例えば、符号化器は、量子化行列の大きさに対応する情報であるSizeIDと各量子化行列種類に対応する情報であるMatrixIDを利用することによって、量子化行列の符号化、基本行列の使用可否、予測符号化方法のうち少なくとも一つ以上を決定する。
このとき、SizeIDは、変換ユニットの大きさに対応する量子化行列の情報又は変換ブロックの大きさに対応する量子化行列の情報として解釈されることもできる。そして、本明細書で使われるSizeIDは、sizeID、sizeIdと同じであり、MatrixIDは、matrixID、matrixIdと同じである。
このとき、符号化器は、符号化器及び/又は復号化器に格納されたテーブルを利用することもできる。
表5は、変換ブロックの大きさ又は変換ブロックに対応する量子化行列の大きさを指示するのに利用されるテーブルの一例を示す。
表5の例において、SizeID値は、変換ユニットの大きさ、変換ブロックの大きさ又は量子化行列の大きさを特定する。
表6は、量子化行列が使われるブロックの符号化モード及び色成分にマッピングする量子化行列種類に対するテーブルの一例を示す。
表6の例において、MatrixID値は、量子化行列が使われる符号化モード(coding mode)及び色成分(color component)を特定する量子化行列の種類を示す。このとき、符号化モードは、予測モード(prediction mode)を意味する。
表7及び表8は、表5及び表6で決定されるSizeIDとMatrixIDに基づいて基本量子化行列の特定に利用される基本量子化行列テーブルの一例である。ここで、テーブル内の各値は、ScalingList[SizeID][MatrixID][i]により特定される値を意味する。
表7は、SizeIDの値が0(4×4ブロック)である基本量子化行列に対するものであり、表8は、SizeIDの値が1(8×8ブロック)、2(16×16ブロック)、3(32×32ブロック)である基本量子化行列に対するものである。表7及び表8において、SizeIDとMatrixIDの値は、表5及び表6により特定される通りである。
表7及び表8において、iは、量子化行列内の各係数位置を特定する。量子化行列は、16×16ブロック又は32×32ブロックに対する量子化行列の場合、16×16ブロック及び32×32ブロック全体に対して量子化行列値を特定せずに、8×8ブロックに対してのみ、量子化行列係数を特定した後、特定されない係数は、8×8ブロック値に基づいて誘導して使用することもできる。表8の例も8×8ブロック単位に基本量子化行列を特定する例を示している。16×16ブロック又は32×32ブロックに対する量子化行列の係数(quantization matrix coefficient)は、8×8ブロック単位に格納された量子化行列から補間されて誘導され、又は所定の方式に誘導されることができる。8×8量子化行列から16×16又は32×32量子化行列を補間を介して誘導する場合、DC位置の量子化行列係数は、補間された値を使用せずに別途の値を使用することができる。
一方、使用可能な変換ユニットの最小大きさと最大大きさを考慮して量子化行列を使用しない場合、全ての大きさの変換ユニットに対する量子化行列を符号化しなければならない。したがって、符号化効率が低下され、計算複雑度が増加できる。
したがって、符号化器は、変換ユニットの大きさを考慮して量子化行列に対する情報を符号化することができる。例えば、符号化器は、SizeIDを変換ユニット大きさ情報のうち最小大きさと最大大きさによって制限することができる。
符号化器は、制限されたSizeIDを利用して量子化行列の符号化、基本行列の使用可否を指示する情報の符号化、予測符号化方法の種類を指示する情報の符号化のうち少なくとも一つ以上を実行することができる。
表9は、SizeIDを制限して量子化行列の符号化を実行する場合に利用されるシンタックス構造の一例を示す。
表9の例のように、符号化器は、SizeIDを変換ユニット大きさ情報のうち最小大きさと最大大きさによって制限し、特定の変換ユニット大きさに対してのみ、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上に対する情報の符号化を実行することができる。
例えば、Log2MinTrafoSizeの値が3であり、且つLog2MaxTrafoSizeの値が4の場合、8×8変換ユニットから16×16変換ユニットに該当する量子化行列の符号化、基本行列の使用可否情報の符号化、予測符号化方法種類に対する情報の符号化のうち少なくとも一つ以上を実行することができる。
一方、表9の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、SizeIDを変換ユニット大きさ情報のうち最大大きさと最小大きさとの間の差分値によって制限し、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上の情報に対する符号化を実行することができる。
表10は、SizeIDを変換ユニット大きさ情報のうち最大大きさと最小大きさとの間の差分値によって制限し、量子化行列に対する情報を符号化する場合に利用されるシンタックス構造の一例を概略的に示す。
表10のシンタックス例では、変換ユニット大きさ情報のうち最大大きさと最小大きさとの間の差分値によってSizeIDを制限する。符号化器は、変換ユニット大きさ情報のうち最大大きさと最小大きさとの間の差分値によってSizeIDを制限し、特定変換ユニット大きさ範囲に対してのみ、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上の情報を符号化することができる。
表10の例において、Log2MinTrafoSizeの値が3であり、且つLog2MaxTrafoSizeの値が4の場合、8×8変換ユニットから16×16変換ユニットに該当する量子化行列の符号化、基本行列の使用可否に対する符号化、予測符号化方法の種類に対する符号化のうち少なくとも一つ以上が実行されることができる。
このとき、Log2MaxTrafoSizeとLog2MinTrafoSizeとの間の差分値は、変換ユニットの最大大きさと最小大きさとの間の差分値であり、log2_diff_max_min_transform_block_sizeと同じである。そして、Log2MinTrafoSize-2は、log2_min_transform_block_size_minus2と同じである。
表10の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
一方、シーケンス又はピクチャ又はスライス内で変換ブロック(ユニット)の大きさ又は量子化行列種類別に基本行列と非基本行列とを混用して使用できない場合、符号化器で量子化行列選択の自由度が低くなるようになる。例えば、スライス内の特定大きさの変換ブロックに対して基本行列を使用し、他の特定大きさの変換ブロックに対して非基本行列を使用するためには、基本行列を符号化して復号化器にも送信しなければならないため、符号化効率が低下される。
シーケンス又はピクチャ又はスライス内で変換大きさ又は量子化行列種類別に基本行列と非基本行列とを混用して使用するために、符号化器は、SizeIDによって量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することができる。
表11は、SizeIDによって量子化行列情報を符号化する場合に適用されることができるシンタックス構造の一例を示す。
表11の例のように、符号化器は、SizeIDによる量子化行列の符号化可否及び基本行列の使用可否を特定する情報であるsid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセットに符号化することができる。MatrixIDは、表6のように特定量子化行列種類を指示する。
このとき、sid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、SizeIDに該当する量子化行列が符号化されず、SizeIDに該当する量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定されることができる。sid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、SizeIDに該当する量子化行列が符号化され、符号化器及び/又は復号化器で予め決められた基本行列をSizeIDに該当する量子化行列で使用しない。
表11の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、符号化器は、MatrixIDによって量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することができる。
表12は、MatrixIDを利用して量子化行列情報を符号化する場合に適用されることができるシンタックスの例を概略的に示す。
表12の例のように、符号化器は、MatrixIDによる量子化行列の符号化可否及び基本行列の使用可否情報であるmid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセットに符号化することができる。
このとき、mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、MatrixIDに該当する量子化行列が符号化されず、MatrixIDに該当する量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定されることができる。mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、MatrixIDに該当する量子化行列が符号化され、符号化器及び/又は復号化器で予め決められた基本行列をMatrixIDに該当する量子化行列として使用しない。
表12の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、SizeIDとMatrixIDによって、符号化器は、量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することができる。
表13は、SizeIDとMatrixIDを利用して量子化行列情報を符号化する場合に適用されることができるシンタックスの例を概略的に示す。
表13の例のように、SizeIDとMatrixIDによって、符号化器は、量子化行列の符号化可否及び基本行列の使用可否に対する情報であるsid_mid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセットに符号化することができる。
このとき、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、SizeIDとMatrixIDに該当する量子化行列が符号化されず、SizeIDとMatrixIDに該当する量子化行列の係数値は、符号化器及び/又は復号化器で予め決められた基本行列の係数値と同一に決定されることができる。
sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、SizeIDとMatrixIDに該当する量子化行列が符号化され、符号化器及び/又は復号化器で予め決められた基本行列をSizeIDとMatrixIDに該当する量子化行列として使用しない。
表13の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
一方、符号化器がSizeIDとMatrixIDによって、表13の例と異なる方法により量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することもできる。SizeIDを変換ユニット大きさ情報のうち最小大きさと最大大きさによって制限し、量子化行列符号化又は基本行列の使用可否符号化又は予測符号化方法種類符号化のうち少なくとも一つ以上を実行することができる。
表14は、SizeIDとMatrixIDを利用して量子化行列情報を符号化する場合に適用されることができるシンタックスの他の例を概略的に示す。
表14の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、符号化器は、SizeIDを変換ユニットの大きさ情報のうち最大大きさと最小大きさとの間の差分値によって制限し、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上の情報に対する符号化を実行することもできる。
表15は、SizeIDとMatrixIDを利用して量子化行列情報を符号化する場合に適用されることができるシンタックスの他の例を概略的に示す。
表15の例において、変換ユニットの最大大きさを特定するLog2MaxTrafoSizeと変換ユニットの最小大きさを特定するLog2MinTrafoSizeとの間の差分値は、変換ユニットの最大大きさと最小大きさとの間の差分値であり、log2_diff_max_min_transform_block_sizeと同じである。Log2MinTrafoSize-2は、log2_min_transform_block_size_minus2と同じである。
表15の例において、符号化器は、Log2MaxTrafoSize-Log2MinTrafoSize+1により制限されるSizeIDとMatrixIDに基づいて量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することができる。
表15の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
一方、量子化行列情報が符号化対象パラメータセットに存在するか、又はアップデートするかに対する情報をパラメータセットに符号化して符号化/復号化に利用することもできる。
表16は、量子化行列情報に存在(present)有無などに対する情報を符号化する場合に利用できるシンタックスの一例を概略的に示す。
表16において、符号化器は、シンタックス要素scaling_list_update_flag[SizeID][MatrixID]を利用して符号化対象パラメータに量子化行列情報が存在するかどうかを特定することができる。
例えば、scaling_list_update_flag[SizeID][MatrixID]の値が1の場合、SizeIDとMatrixIDに該当する量子化行列情報が存在するということを指示することができる。または、scaling_list_update_flag[SizeID][MatrixID]の値が1の場合、SizeIDとMatrixIDに該当し、以前に符号化された量子化行列情報を符号化対象パラメータセット内のSizeIDとMatrixIDに該当する量子化行列情報にアップデート(update)することを指示することもできる。このとき、アップデートするとは、以前に符号化された量子化行列情報を符号化対象パラメータセット内の量子化行列情報に変えるということを意味する。
scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、SizeIDとMatrixIDに該当する量子化行列情報が存在しないということを指示することができる。または、scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、符号化行列情報をアップデートしないことを指示することもできる。
scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、パラメータセットにSizeIDとMatrixIDに該当する量子化行列情報が存在せず、量子化行列情報が符号化されなかったため、復号化器ではSizeIDとMatrixIDに該当する量子化された変換係数(transform coefficient)に対してどのような量子化行列情報を使用して逆量子化を実行しなければならないかが分からない。したがって、scaling_list_update_flag[SizeID][MatrixID]が0の場合、SizeIDとMatrixIDに該当する量子化行列情報が存在しないため、SizeIDとMatrixIDに該当する量子化行列は、基本行列を使用することを意味し、又は量子化行列を使用しないことを意味する。
表16の例において、scaling_list_update_flag[SizeID][MatrixID]は、SizeIDとMatrixIDによって符号化されるため、scaling_list_update_flag[SizeID][MatrixID]の値が1の場合、符号化器は、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上の情報を符号化することができる。
scaling_list_update_flag[SizeID][MatrixID]の値が0の場合には、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上の情報を符号化しない。即ち、scaling_list_update_flag[SizeID][MatrixID]を利用し、不必要な量子化行列を符号化しない。
scaling_list_update_flag[SizeID][MatrixID]のみを利用してはシーケンス又はピクチャ又はスライス内で変換大きさ又は量子化行列種類別に基本行列と非基本行列とを混用して使用することができないため、符号化器で量子化行列選択の自由度が低いという短所がある。
したがって、符号化器は、SizeIDとMatrixIDによる量子化行列の符号化可否及び基本行列の使用可否を特定する情報であるsid_mid_use_default_scaling_list_flag[SizeID][MatrixID]をパラメータセットに符号化することができる。
例えば、表16の例において、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、SizeIDとMatrixIDに該当する量子化行列が符号化されず、SizeIDとMatrixIDに該当する量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定されることができる。sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、SizeIDとMatrixIDに該当する量子化行列が符号化され、符号化器及び/又は復号化器で予め決められた基本行列をSizeIDとMatrixIDに該当する量子化行列で使用しないようになる。
表16の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、符号化器は、SizeIDとMatrixIDによって量子化行列の符号化可否及び基本行列の使用可否をパラメータセットに符号化することができる。このように、符号化器は、量子化行列情報をSizeIDとMatrixIDに対応する量子化行列情報にアップデートするかどうかを指示するための情報としてscaling_list_update_flag[SizeID][MatrixID]を符号化対象パラメータ内で利用することもできる。
表17は、前述したように、SizeIDとMatrixIDによって量子化行列情報を符号化する場合に利用されることができるシンタックス構造の例を概略的に示す。
表17の例において、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が0の場合、SizeIDとMatrixIDに該当する量子化行列は、符号化される。以前に符号化されたSizeIDとMatrixIDに該当する量子化行列は、符号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートされず、以前に符号化されたSizeIDとMatrixIDに該当する量子化行列をそのまま利用する。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が1の場合、SizeIDとMatrixIDに該当する量子化行列は、符号化され、以前に符号化されたSizeIDとMatrixIDに該当する量子化行列は、符号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートされる。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が0の場合、SizeIDとMatrixIDに該当する量子化行列は、符号化されず、量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定される。以前に符号化されたSizeIDとMatrixIDに該当する量子化行列は、符号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートされず、符号化器と復号化器は、以前に符号化されたSizeIDとMatrixIDに該当する量子化行列を利用するようになる。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1であり、且つscaling_list_update_flag[SizeID][MatrixID]の値も1の場合には、SizeIDとMatrixIDに該当する量子化行列は、符号化されず、量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定される。以前に符号化されたSizeIDとMatrixIDに該当する量子化行列は、符号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートされる。
表17の例において、use_default_scaling_list_flagは、符号化されなくてもよい。
また、符号化器は、量子化行列を予測符号化する方法の種類を決定した後、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。
表18及び表19は、量子化行列を予測符号化する方法をパラメータセットに符号化する場合に適用されることができるシンタックス例を概略的に示す。
表18の例のように、符号化器は、量子化行列を予測符号化する方法を特定する情報であるpred_mode_flagを適応パラメータセットに符号化することができる。本明細書で後述されるscaling_list_pred_mode_flagは、pred_mode_flagと同じ意味で解釈されることができる。
例えば、表18の例において、pred_mode_flagの値が1の場合、符号化器は、量子化行列をDPCM(Differential Pulse Code Modulation)と指数-ゴロムコードで符号化することができる。pred_mode_flagの値が0の場合、符号化器は、量子化行列の係数値が以前に符号化された量子化行列係数値と同じ値を有するように決定することができる。このとき、量子化行列の係数値と以前に符号化された量子化行列係数値は、互いに異なる量子化行列内の値である。
量子化行列の予測符号化方法が符号化対象量子化行列を以前に符号化された量子化行列と同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。
したがって、表18の例のように、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるpred_matrix_id_deltaを適応パラメータセットに符号化することができる。
本明細書で後述されるscaling_list_pred_matrix_id_deltaは、pred_matrix_id_deltaと同じ意味で解釈されることができる。このとき、符号化器と復号化器は、pred_matrix_id_deltaと数式1を利用して符号化対象量子化行列の参照量子化行列を指示するRefMatrixIDの値を決定することができる。
[数1]
RefMatrixID=MatrixID-(1+pred_matrix_id_delta)
量子化行列の予測符号化方法がDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、以前に符号化された量子化行列係数値は、符号化対象量子化行列内の係数値である。即ち、以前に符号化された量子化行列係数値と符号化対象量子化行列の係数値は、同じ量子化行列内の値である。
したがって、表19の例のように、符号化器は、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるdelta_coefを適応パラメータセットに符号化することができる。本明細書で後述されるdelta_coefは、scaling_list_delta_coefと同じ意味で解釈されることができる。
符号化器は、下記の方法を利用してシーケンス又はピクチャ又はスライス内で基本量子化行列と非基本量子化行列とを混用して使用することができ、不必要な量子化行列送信を防止することができる。
量子化行列の予測符号化方法が符号化器が既に有している以前に符号化された量子化行列と同一に決定する方法(pred_mode_flag=0)である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子を利用して基本行列の使用可否をパラメータセットに符号化することができる。
例えば、表18の例のように、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるpred_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化器と復号化器は、pred_matrix_id_deltaと数式2を利用して符号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDを決定し、基本行列の使用可否を決定することができる。
[数2]
RefMatrixID=MatrixID-pred_matrix_id_delta
数式2において、RefMatrixID値がMatrixID値と同じ場合、SizeIDとRefMatrixIDに該当する量子化行列係数値は、符号化器及び/又は復号化器で予め決められた基本行列の係数値と同一に決定される。このとき、基本行列は、SizeID及びRefMatrixIDにより特定される基本行列を意味する。
また、pred_matrix_id_delta値が0の場合、RefMatrixID値とMatrixID値は、同じになる。RefMatrixID値がMatrixID値と同じでない場合、符号化器は、RefMatrixIDに該当する量子化行列を符号化対象量子化行列の参照量子化行列に決定できる。この場合、符号化器は、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定することができる。
SizeIDに該当する量子化行列の大きさが復号化器で使用可能な変換ユニットの最小大きさと最大大きさに含まれる場合、前記方法を利用して符号化対象量子化行列の参照量子化行列及び基本行列の使用可否を決定することができる。SizeIDに該当する量子化行列の大きさが復号化器で使用可能な変換ユニットの最小大きさと最大大きさの範囲に含まれない場合、SizeIDに該当する量子化行列に対する符号化方法を基本行列と同一に決定しない。SizeID及び変換ユニットの最大大きさと変換ユニットの最小大きさとの間の差分値によって、量子化行列、基本行列の使用可否、予測符号化方法の種類のうち少なくとも一つ以上に対する情報を符号化する時、前記決定する過程が実行されることができる。
符号化器は、量子化行列の使用可否を決定した後、量子化行列の使用可否に対する情報をパラメータセットに符号化することができる。
表20は、量子化行列の使用可否に対する情報をパラメータセットに符号化する一例を概略的に示す。
表20の例のように、符号化器は、量子化行列の使用可否に対する情報であるscaling_list_enable_flagをパラメータセットに符号化することができる。
表20の例において、scaling_list_enable_flagの値が1の場合、量子化/逆量子化で基本行列又は非基本行列などの量子化行列が使われることができ、反対に、scaling_list_enable_flagの値が0の場合、量子化/逆量子化で量子化行列が使われない、又は全ての係数値が同一な量子化行列が使われることができる。このとき、全ての係数値は16である。
また、量子化行列の予測符号化方法がDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、以前に符号化された量子化行列の係数値は、符号化対象量子化行列内の係数値である。即ち、以前に符号化された量子化行列係数値と符号化対象量子化行列の係数値は、同じ量子化行列内の値である。
表21は、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値を利用して量子化行列情報を符号化する場合に利用できるシンタックス構造の一例を概略的に示す。
表21の例では、以前に符号化された量子化行列係数値と符号化対象量子化行列係数値との間の差分値であるdelta_coefがパラメータセットに符号化される。
表21の例では、数式3を利用して量子化行列の係数を算出することができる。
[数3]
Nextcoef=(nextcoef+delta_coef+256)%256
数式3を利用して計算された量子化行列係数値nextcoefが(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、該当量子化行列の係数値は、符号化器及び/又は復号化器で予め決められた基本行列の係数値と同一に決定されることができる。
即ち、nextcoefの値が(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、該当量子化行列が基本行列として使われることができる。
このとき、特定値は0である。そして、基本行列は、SizeIDとMatrixIDに該当する基本行列である。したがって、量子化行列の係数値nextcoefが0であり、且つ量子化行列の一番目の値に該当する場合、該当量子化行列に対する量子化行列差分値の符号化を中止することができる。
量子化行列の予測符号化方法がDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、以前に符号化された量子化行列の係数値は、符号化対象量子化行列内の係数値である。即ち、以前に符号化された量子化行列係数値と符号化対象量子化行列の係数値は、同じ量子化行列内の値である。
表22は、以前に符号化された量子化行列の係数値と符号化対象である量子化行列の係数値との間の差分値を利用する場合に対するシンタックス構造の一例を簡単に示す。
表22の例では、以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるdelta_coefをパラメータセットに符号化する。表22の例において、数式3を利用して計算された量子化行列係数値nextcoefが特定値と同じであり、且つ量子化行列の一番目の値の場合、該当量子化行列の係数値は、符号化器及び/又は復号化器で予め決められた基本行列の係数値と同一に決定されることができる。
即ち、nextcoefが(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、該当量子化行列を基本行列として使用することができる。このとき、特定値は0であり、数式3によって計算された量子化行列係数値は、4×4と8×8の量子化行列大きさ又は変換大きさの量子化行列係数値である。
また、量子化行列の一番目の値は、scaling_list_dc_coef_minus8を利用する値であってもよく、特定値は、scaling_list_dc_coef_minus8+8に該当する値であってもよい。
このとき、scaling_list_dc_coef_minus8は、16×16大きさを有する量子化行列又は32×32大きさを有する量子化行列の一番目の値を意味する。即ち、scaling_list_dc_coef_minus8は、DC行列係数に対する量子化行列の係数値を意味し、又はDC行列係数を意味する。本明細書において、DC行列係数は、逆量子化時に使用する量子化行列内に存在し、変換ブロック内のDC変換係数に対する量子化行列係数を意味する。
例えば、scaling_list_dc_coef_minus8[sizeID-2][MatrixID]は、sizeIDが2の場合、16×16大きさの量子化行列又は変換でDC係数に対する量子化行列の係数値を意味する。scaling_list_dc_coef_minus8[sizeID-2][MatrixID]は、sizeIDが3の場合、32×32大きさの量子化行列又は変換でDC係数に対する量子化行列の係数値を意味する。
また、前述した基本行列は、SizeIDとMatrixIDに該当する基本行列を意味する。前述したように、量子化行列の係数値nextcoefが0であり、且つ量子化行列の一番目の値の場合、該当量子化行列に対する量子化行列差分値の符号化を中止することができる。
この方法を利用すると、量子化行列の大きさ又は変換大きさによって、DC行列係数に対する量子化行列の係数値であるscaling_list_dc_coef_minus8に対する符号化可否及び基本行列の使用可否に対する符号化を異なるようにすることができる。
一方、量子化行列の係数値を利用して基本行列使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度が増加するという短所がある。
以下、映像符号化/復号化において参照量子化行列に対する識別子(参照量子化行列識別子)を利用して基本行列(dafault matrix)の使用可否を決定する方法を提供する。したがって、下記の方法を利用すると、量子化行列の符号化/復号化時、計算の複雑度を減少させることができる。
表23及び表24は、参照量子化行列に対する識別子を利用する場合に適用することができるシンタックス構造の一例を簡単に示す。
まず、符号化器は、量子化行列の存在有無を示す情報をパラメータセットに符号化することができる。
表23の例のように、符号化器は、量子化行列のビットストリーム内の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ量子化行列を基本量子化行列に決定すると、scaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在すると、scaling_list_present_flagの値を1に符号化できる。
符号化器は、量子化行列に対する予測符号化方法の種類を決定し、決定された量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、量子化行列の予測符号化方法に対する情報が符号化されるパラメータセットは、適応パラメータセットである。
表23の例のように、符号化器は、量子化行列の予測符号化方法を特定する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。例えば、量子化行列の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化する。また、量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合又は符号化対象量子化行列の係数値を基本行列係数値と同一に決定する場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。
このとき、同じ値を有するように決定するとは、特定量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列の予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測において、量子化行列を参照量子化行列又は基本行列と同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットに符号化することができる。このとき、パラメータセットは、適応パラメータセットである。
表23の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合又は符号化対象量子化行列係数値を基本行列係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットに符号化することができる。
このとき、符号化器は、符号化対象量子化行列を指示するmatrixID、参照量子化行列又は基本行列を指示するRefMatrixID、及び数式4を利用して量子化行列識別子であるscaling_list_pred_matrix_id_deltaの値を決定することができる。
[数4]
scaling_list_pred_matrix_id_delta=matrixID-RefMatrixID
符号化対象量子化行列の係数値が符号化器及び/又は復号化器で予め決められた基本行列の係数値と同一に決定された場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0に符号化し、RefMatrixID値とmatrixID値が同一になる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
符号化対象量子化行列係数値を参照量子化行列係数値と同一に決定した場合(即ち、以前に符号化された量子化行列係数値と同一に決定する場合)、符号化器は、scaling_list_pred_matrix_id_delta値を0でない値に符号化することによって、RefMatrixID値とmatrixID値が同じでないようにすることができる。このとき、scaling_list_pred_matrix_id_delta値は、正の整数値である。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表24の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットに符号化することができる。
表24の例のように、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。表23と表24では、量子化行列情報を適応パラメータセットに符号化する場合を例示したが、本発明は、これに限定されるものではなく、符号化器は、他のパラメータセット(シーケンスパラメータセット、ピクチャパラメータセットのうち少なくとも一つを含むパラメータセット)に量子化行列情報を符号化することもできる。
前述したように、従来の量子化行列符号化/復号化では、量子化行列の予測時に不必要な情報を符号化/復号化するため、符号化効率が低下されるという短所がある。
本発明では、参照量子化行列の存在有無によって量子化行列符号化/復号化を異なるように実行することで、量子化行列符号化/復号化時、符号化効率を向上させることができる。
表25及び表26は、参照量子化行列の存在有無によって量子化行列符号化/復号化を異なるようにする場合に適用することができるシンタックス構造の一例を簡単に示す。
まず、符号化器は、量子化行列存在有無を示す情報をパラメータセットに符号化することができる。
表25の例のように、符号化器は、量子化行列のビットストリーム内の存在有無を指示する情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合にはscaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在する場合にはscaling_list_present_flagの値を1に符号化できる。
符号化器は、量子化行列の予測符号化方法種類に対して決定した後、matrixIDが0より大きい場合に量子化行列の予測符号化方法情報をパラメータセットに符号化することができる。このとき、量子化行列の予測符号化方法情報が符号化されるパラメータセットは、適応パラメータセットである。
表25の例のように、符号化器は、量子化行列の予測符号化方法を特定する情報であるscaling_list_pred_mode_flagをmatrixIDが0より大きい場合にのみ、パラメータセットに符号化することができる。量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化する。また、量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化する。このとき、同じ値を有するように決定するとは、参照量子化行列係数値を符号化対象量子化行列係数値に複写する量子化行列予測方法を使用するということを意味する。
matrixIDが0の場合には、表23の例のように、scaling_list_pred_mode_flagの値がトゥルー(TRUE)になり、符号化器は、scaling_list_pred_mode_flagを符号化せずに、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化できる。
量子化行列の予測符号化方法が、量子化行列間予測のために参照量子化行列と同一に決定する方法であり、matrixIDが0より大きい場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。このとき、参照量子化行列識別子が符号化されるパラメータセットは、適応パラメータセットである。
表25の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをmatrixIDが0より大きい場合にのみ、パラメータセットに符号化することができる。このとき、符号化器と復号化器は、符号化対象量子化行列を指示するmatrixID、参照量子化行列を指示するRefMatrixID、及び数式5を利用して量子化行列識別子であるscaling_list_pred_matrix_id_deltaの値を決定することができる。
[数5]
scaling_list_pred_matrix_id_delta=matrixID-(RefMatrixID+1)
matrixIDの値が0の場合は、各sizeID別に一番目の量子化行列を指示する。量子化行列の予測は、同じsizeIDを有する以前に符号化された量子化行列からのみ可能であるため、sizeID別一番目の量子化行列に対しては同じsizeID値を有する参照量子化行列が存在しない。したがって、行列複写による量子化行列の予測を実行することができない。結局、matrixIDが0より大きい場合にのみ、符号化器は、参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaを符号化してRefMatrixIDを決定し、符号化対象量子化行列係数値を参照量子化行列係数値と同一に決定できる。
符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに対応する参照量子化行列を符号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列の予測方法を意味する。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表26の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットに符号化することができる。
表26の例のように、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。
また、符号化器は、scaling_list_dc_coef_minus8又はnextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を符号化することができる。即ち、符号化器は、scaling_list_dc_coef_minus8の値を-8に符号化することによって基本行列の使用を復号化器に指示することができ、一番目のnextCoef値が0になるようにscaling_list_delta_coefを符号化することによって基本行列の使用を復号化器に指示することができる。
一方、量子化行列の係数値を利用して基本行列使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度を増加させるという短所がある。また、量子化行列予測時、不必要な情報を符号化/復号化するため、符号化効率が低下されるという短所がある。
本発明では、映像符号化/復号化で参照量子化行列の識別子を利用して基本行列の使用可否を決定するため、量子化行列の符号化/復号化時、計算複雑度を減少させることができる。また、本発明では、参照量子化行列の存在有無によって量子化行列の符号化/復号化を異なるように実行することで、量子化行列の符号化/復号化時、符号化効率を向上させることができる。
表27及び表28は、参照量子化行列の識別子を利用する場合に適用可能なシンタックス構造の一例を簡単に示す。
符号化器は、まず、量子化行列存在有無を示す情報をパラメータセットに符号化することができる。
表27の例のように、符号化器は、量子化行列のビットストリーム内の存在有無を特定する情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合、符号化器は、scaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化できる。
符号化器は、量子化行列に対する予測符号化方法の種類を決定した後、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法に対する情報が符号化されるパラメータセットは、適応パラメータセットである。
表27の例のように、符号化器は、量子化行列の予測符号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。例えば、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化できる。量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合又は符号化対象量子化行列係数値を基本行列係数値と同一に決定した場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。このとき、同じ値を有するように決定するとは、特定量子化行列の係数値を符号化対象量子化行列係数値に複写する量子化行列予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測のために量子化行列を参照量子化行列又は基本行列と同一に決定する方法であり、matrixIDが0より大きい場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットに符号化することができる。このとき、参照量子化行列識別子と基本行列の使用可否を符号化するパラメータセットは、適応パラメータセットである。
表27の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合又は符号化対象量子化行列の係数値を基本行列の係数値と同一に決定した場合、符号化器は、matrixIDが0より大きい場合にのみ、符号化対象量子化行列に対する参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットに符号化することができる。
このとき、符号化器は、符号化対象量子化行列を指示するmatrixID、参照量子化行列又は基本行列を指示するRefMatrixID、及び数式6を利用して量子化行列識別子であるscaling_list_pred_matrix_id_deltaを決定することができる。
[数6]
scaling_list_pred_matrix_id_delta=matrixID-RefMatrixID
符号化対象量子化行列の係数値が符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定された場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0に符号化し、RefMatrixID値とmatrixID値を同一にすることができる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
符号化対象量子化行列の係数値が参照量子化行列係数値と同一に決定された場合、符号化器は、scaling_list_pred_matrix_id_delta値を0でない値に符号化することによって、RefMatrixID値とmatrixID値が同じでなくすることができる。
また、scaling_list_pred_mode_flagの値が0の場合、量子化行列の予測符号化方法は、量子化行列を参照量子化行列又は基本行列と同一に決定する方法を示す。この場合、量子化行列予測は、同じsizeIDを有する以前に符号化された量子化行列又は基本行列から可能である。
matrixIDが0の場合、各sizeID別に一番目の量子化行列を意味するため、scaling_list_pred_mode_flagの値が0であり、且つmatrixIDが0の場合、sizeID別一番目の量子化行列に対しては同じsizeID値を有する参照量子化行列が存在しない。したがって、sizeID別一番目の量子化行列に対しては行列複写のような方法の量子化行列予測を実行することができない。
このような場合、符号化器は、scaling_list_pred_matrix_id_deltaを符号化せずにscaling_list_pred_matrix_id_delta値を0に類推することができる。scaling_list_pred_matrix_id_deltaの値が0の場合、RefMatrixID値がmatrixID値と同じであるため、sizeIDとmatrixIDに該当する符号化対象量子化行列の係数値は、符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定されることができる。ここで、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表28の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットに符号化することができる。
量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefは、表28の例のように、パラメータセットに符号化されることができる。
従来の量子化行列符号化/復号化は、量子化行列送信時、行列内の全体係数とDC行列係数を符号化/復号化し、このとき、DC行列係数に対して予測符号化/復号化をしないため、符号化効率の向上に限界がある。
これと違って、量子化行列内のDC行列係数の予測符号化/復号化を実行すると、符号化効率を向上させることができる。
ここで、本発明は、DC行列係数を定数8から予測せずに、周辺係数間の高い相関度を利用して周辺AC係数から予測する方法を提供する。これによって、本発明によると、符号化効率を向上させることができる。
表29及び表30は、DC行列係数を周辺係数間の相関度を利用して予測する場合に適用されるシンタックス構造の一例を簡単に示す。
表29及び表30による実施例では、量子化行列の符号化/復号化順序と量子化行列の復元順序を一致させる。したがって、DC行列係数を格納すべきメモリ空間を節約することができる。また、表29及び表30による実施例では、基本行列の使用可否を指示する時、多数のシンタックス要素を利用せずにシンタックス要素scaling_list_delta_coefのみを利用することができる。
符号化器は、まず、量子化行列の存在有無を示す情報をパラメータセットに符号化することができる。
表28の例のように、符号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定される場合、符号化器は、scaling_list_present_flagの値を0に符号化し、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化できる。
量子化行列の予測符号化方法種類に対して決定した後、符号化器は、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法が符号化されるパラメータセットは、適応パラメータセットである。
表29の例のように、量子化行列の予測符号化方法情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。例えば、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化できる。量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定される場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。このとき、同じ値を有するように決定するとは、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測のために参照量子化行列と同一に量子化行列を決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。このとき、参照量子化行列識別子を符号化するパラメータセットは、適応パラメータセットである。
表29の例のように、符号化対象量子化行列の係数値が参照量子化行列の係数値と同一に決定された場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化対象量子化行列を意味するmatrixID、参照量子化行列を指示するRefMatrixID、及び以下の数式7を利用することによって、符号化器は、量子化行列識別子であるscaling_list_pred_matrix_id_deltaを決定することができる。
[数7]
scaling_list_pred_matrix_id_delta=matrixID-(RefMatrixID+1)
符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を符号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値を符号化するパラメータセットは、適応パラメータセットである。
表30の例のように、符号化器は、量子化行列内で以前に符号化された量子化行列係数値と符号化対象量子化行列係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。
このとき、符号化器は、nextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を符号化することができる。例えば、符号化器は、一番目のnextCoefの値が0になるようにscaling_list_delta_coefを符号化することによって基本行列の使用を復号化器に指示することができる。
符号化器は、表30の例のように、DC行列係数に該当する量子化行列係数値の差分値であるscaling_list_dc_coef_resをパラメータセットに符号化することができる。このとき、scaling_list_dc_coef_resは、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)量子化行列であり、且つ基本行列を使用しない場合(useDefaultScalingMatrixFlag=0)に符号化されることができる。
表30の例において、DC行列の係数を別途に符号化する16×16又は32×32量子化行列に対するscaling_list_dc_coef_resの値は、DC行列係数値とDC位置に存在する行列係数との差を利用して計算されることができる。
一方、量子化行列の係数値を利用して基本行列使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度を増加させるという短所がある。また、従来には量子化行列の送信時に行列内の全体係数とDC行列係数を符号化/復号化し、このとき、DC行列係数に対しては予測符号化/復号化しないため、符号化効率の向上に限界がある。
本発明では、映像符号化/復号化で参照量子化行列の識別子を利用して基本行列の使用可否を決定する。したがって、量子化行列の符号化/復号化時、計算複雑度を減少させることができる。また、本発明では、量子化行列内のDC行列係数に対する予測符号化/復号化を実行するため、符号化効率を向上させることができる。それだけでなく、DC行列の係数を定数8から予測せず、周辺係数間の高い相関度を利用して周辺AC係数から予測するため、符号化効率を向上させることができる。
表31及び表32は、前述した特徴を全部適用する場合に利用されることができるシンタックス構造の一例を概略的に示す。
表31及び表32の実施例では、量子化行列の符号化/復号化順序と量子化行列の復元順序を一致させる。したがって、DC行列係数を格納すべきメモリ空間を節約することができる。また、表31及び表32の実施例では、基本行列の使用可否を指示する時、多数のシンタックス要素を利用せずにシンタックス要素scaling_list_delta_coefのみを利用することができる。
まず、符号化器は、量子化行列存在有無を示す情報をパラメータセットに符号化することができる。
表31の例のように、符号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合、符号化器は、scaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化できる。
量子化行列に対する予測符号化方法の種類を決定した後、符号化器は、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法を符号化するパラメータセットは、適応パラメータセットである。
表31の例のように、符号化器は、量子化行列の予測符号化方法を特定する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。例えば、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化する。また、量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合又は符号化対象量子化行列係数値を基本行列係数値と同一に決定した場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化する。このとき、同じ値を有するように決定するとは、特定量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測のために量子化行列を参照量子化行列又は基本行列と同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットに符号化することができる。このとき、符号化が実行されるパラメータセットは、適応パラメータセットである。
表31の例のように、符号化対象量子化行列係数値を参照量子化行列係数値と同一に決定した場合又は符号化対象量子化行列係数値を基本行列係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットに符号化することができる。
このとき、符号化対象量子化行列を意味するmatrixID、参照量子化行列又は基本行列を指示するRefMatrixID、及び数式8を利用して符号化器及び復号化器は、量子化行列識別子であるscaling_list_pred_matrix_id_deltaの値を決定することができる。
[数8]
scaling_list_pred_matrix_id_delta=matrixID-RefMatrixID
符号化対象量子化行列係数値が符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定された場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0に符号化し、RefMatrixID値とmatrixID値が同一にすることができる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
符号化対象量子化行列の係数値が参照量子化行列係数値と同一に決定された場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0でない値に符号化することによって、RefMatrixID値とmatrixID値が同じでなくすることができる。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表32の例のように、量子化行列内で以前に符号化された量子化行列係数値と符号化対象量子化行列係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。
符号化器は、表32の例のように、DC行列の係数に該当する量子化行列の係数値の差分値であるscaling_list_dc_coef_resをパラメータセットに符号化することができる。このとき、scaling_list_dc_coef_resは、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)であり、且つ基本行列を使用しない場合(useDefaultScalingMatrixFlag=0)に符号化されることができる。
DC行列係数を別途に符号化する16×16量子化行列又は32×32量子化行列に対するscaling_list_dc_coef_res値は、DC行列係数値とDC位置に存在する行列の係数との差を利用して計算されることができる。
一方、従来の量子化行列符号化/復号化では、符号化/復号化をする時の量子化行列の大きさではなく、量子化及び逆量子化をする時の量子化行列の大きさを利用して量子化行列の複写を実行するため、制限された個数の量子化行列から量子化行列を複写するようになる。したがって、量子化行列符号化/復号化時、符号化効率の向上に限界がある。
本発明では、符号化/復号化をする時の量子化行列の大きさと同一な量子化行列から量子化行列の予測を実行するため、符号化効率の向上及び量子化行列予測の自由度を増加させることができる。
表33及び表34は、符号化/復号化をする時の量子化行列の大きさと同一な量子化行列から量子化行列の予測を実行する場合に利用できるシンタックス構造の一例を概略的に示す。
符号化器は、まず、量子化行列の存在有無を示す情報をパラメータセットに符号化することができる。
表33又は表34の例のように、符号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合、符号化器は、scaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化できる。
量子化行列に対する予測符号化方法の種類を決定した後、符号化器は、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法が符号化されるパラメータセットは、適応パラメータセットである。例えば、符号化器は、表33又は表34の例のように、量子化行列の予測符号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。具体的な例として、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化でき、量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。このとき、同じ値を有するように決定するとは、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
また、量子化行列の予測符号化方法が、量子化行列間予測のために参照量子化行列と量子化行列を同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。このとき、参照量子化行列の識別情報(識別子)として符号化対象量子化行列の参照量子化行列の大きさを特定する情報と参照量子化行列を特定する情報のうち少なくとも一つがパラメータセットに符号化されるようにすることもできる。識別子又は識別情報が符号化されるパラメータセットは、適応パラメータセットである。
例えば、表33の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列に対する識別情報であるscaling_list_pred_size_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化対象量子化行列の参照量子化行列の大きさであるRefSizeID、参照量子化行列を指示するRefMatrixID、及び数式9を利用して量子化行列の識別情報であるscaling_list_pred_size_matrix_id_deltaの値が決定されることができる。
[数9]
scaling_list_pred_size_matrix_id_delta=6*(RefSizeID-sizeID)+(RefMatrixID%6)
他の例として、表34の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列に対する識別情報であるscaling_list_pred_size_id_deltaとscaling_list_pred_size_matrix_id_deltaをパラメータセットに符号化することができる。このとき、RefSizeIDと数式10を利用してscaling_list_pred_size_id_deltaの値が決定されることができ、符号化対象量子化行列の参照量子化行列を指示するRefMatrixIDと数式11を利用してscaling_list_pred_matrix_id_deltaの値が決定されることができる。
[数10]
scaling_list_pred_size_id_delta=sizeID-RefSizeID
[数11]
scaling_list_pred_matrix_id_delta=matrixID-RefMatrixID
符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefSizeIDとRefMatrixIDに該当する参照量子化行列を符号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
したがって、表33又は表34の例を介して、同じsizeIDを有する量子化行列からの量子化行列予測のみ許容せず、符号化/復号化時、行列大きさは同じ、且つ異なるsizeIDを有する量子化行列から量子化行列を予測することが可能である。
また、表33の例又は表34の例において、シンタックス要素の値の範囲が特定値に制限されることもできる。例えば、表33又は表34の例において、scaling_list_pred_size_matrix_id_deltaは0~17の値を有することができ、scaling_list_pred_size_id_deltaは0~2の値を有することができ、scaling_list_pred_matrix_id_deltaは0~5の値を有することができるように制限できる。
また、表33又は表34の実施例において、符号化器は、符号化対象量子化行列より大きい大きさを有する量子化行列からは量子化行列の予測を実行しなくてもよい。
さらに、量子化行列の大きさ別にDC行列係数とAC行列係数を分けて予測するようにすることもできる。例えば、8×8大きさを有する量子化行列に対してはDC行列係数とAC行列係数を分けて予測し、残りの大きさの量子化行列に対してはDC行列係数とAC行列係数を共に予測することができる。即ち、8×8の大きさを有する量子化行列から予測を実行する場合、符号化器は、8×8の大きさを有する量子化行列内のDC行列係数位置に該当する値を符号化対象行列のDC行列係数と判断し、該当位置の値を予測することができる。16×16又は32×32の大きさを有する量子化行列から予測を実行する場合、符号化器は、量子化行列のDC行列係数も共に予測できる。
一方、量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、量子化行列内で以前に符号化された量子化行列係数値と符号化対象量子化行列係数値との間の差分値ををパラメータセットに符号化することができる。このとき、パラメータセットは、適応パラメータセットである。
表35は、量子化行列内で以前に符号化された量子化行列係数値を利用して量子化行列内の係数を予測する場合に適用されることができるシンタックス構造の一例を示す。
表35の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列の係数情報であるscaling_list_dc_coef_minus8をパラメータセットに符号化することができる。
表35の例のように、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。
また、符号化器は、scaling_list_dc_coef_minus8又はnextCoefの値の誘導に使われるscaling_list_delta_coefを利用して基本行列の使用可否を指示する情報を符号化することができる。例えば、符号化器は、scaling_list_dc_coef_minus8の値を-8に符号化することによって基本行列使用を復号化器に指示することができ、一番目のnextCoef値が0になるようにscaling_list_delta_coefを符号化することによって基本行列の使用を復号化器に指示することができる。
即ち、量子化行列の係数値を利用して基本行列使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度を増加させるという短所がある。また、量子化行列予測時、不必要な情報を符号化/復号化するため、符号化効率が低下されるという短所がある。また、符号化/復号化時の量子化行列の大きさではなく、量子化と逆量子化時の量子化行列の大きさを利用して量子化行列の複写を実行する。制限された個数の量子化行列から量子化行列を複写するため、量子化行列符号化/復号化時、符号化効率の向上に限界がある。
本発明では、映像符号化/復号化で参照量子化行列の識別子を利用して基本行列の使用可否を決定することができる。したがって、量子化行列符号化/復号化時、計算複雑度を減少させることができる。また、符号化/復号化時の量子化行列の大きさと同一な量子化行列から量子化行列の予測を実行するため、符号化効率を向上させ、且つ量子化行列の予測において自由度を増加させることができる。
表36及び表37は、参照量子化行列の識別子を利用して符号化/復号化時の同じ大きさの量子化行列を利用して予測を実行する場合に適用されることができるシンタックス構造の一例を簡単に示す。
符号化器は、まず、量子化行列の存在有無を示す情報をパラメータセットに符号化することができる。
表36又は表37の例のように、符号化器は、量子化行列のビットストリーム内の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合、符号化器は、scaling_list_present_flagの値を0に符号化し、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化する。
量子化行列に対する予測符号化方法の種類を決定した後、符号化器は、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法に対する情報が符号化されるパラメータセットは、適応パラメータセットである。
表36又は表37の例のように、符号化器は、量子化行列の予測符号化方法を特定する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。例えば、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化できる。また、量子化行列間の予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合又は符号化対象量子化行列の係数値を基本行列の係数値と同一に決定した場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。同じ値を有するように決定するとは、特定量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測のために量子化行列を参照量子化行列又は基本行列と同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。このとき、参照量子化行列の識別情報(識別子)として符号化対象量子化行列の参照量子化行列の大きさを特定する情報と参照量子化行列を特定する情報のうち少なくとも一つがパラメータセットに符号化されるようにすることもできる。そして、識別子又は識別情報が符号化されるパラメータセットは、適応パラメータセットである。
例えば、表36の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合又は符号化対象量子化行列の係数値を基本行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列を識別する情報であるscaling_list_pred_size_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化器は、RefSizeID、参照量子化行列又は基本行列を指示するRefMatrixID、及び数式12を利用して量子化行列の識別情報であるscaling_list_pred_size_matrix_id_deltaを決定することができる。
[数12]
scaling_list_pred_size_matrix_id_delta=6*(RefSizeID-sizeID)+(RefMatrixID%6)
他の例として、表37のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合又は符号化対象量子化行列の係数値を基本行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列に対する識別情報であるscaling_list_pred_size_id_deltaとscaling_list_pred_size_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化器は、RefSizeIDと数式13を利用してscaling_list_pred_size_id_deltaの値を誘導することができ、符号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDと数式14を利用してscaling_list_pred_matrix_id_deltaの値を誘導することができる。
[数13]
scaling_list_pred_size_id_delta=sizeID-RefSizeID
[数14]
scaling_list_pred_matrix_id_delta=matrixID-RefMatrixID
符号化対象量子化行列の係数値を符号化器及び/又は復号化器で予め決められた基本行列係数値と同一に決定した場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0に符号化し、RefMatrixID値とmatrixID値が同一にすることができる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合、符号化器は、scaling_list_pred_matrix_id_deltaの値を0でない値に符号化することによって、RefMatrixID値とmatrixID値が同じでなくすることができる。
したがって、表36又は表37の例を介して、同じsizeIDを有する量子化行列からの量子化行列予測だけでなく、符号化/復号化時、行列大きさは同じ、且つ異なるsizeIDを有する量子化行列から量子化行列を予測することが可能である。
また、表36又は表37の例において、scaling_list_pred_size_matrix_id_delta、scaling_list_pred_size_id_delta、scaling_list_pred_matrix_id_delta値の範囲を制限することもできる。例えば、scaling_list_pred_size_matrix_id_deltaは0~17の値を有することができ、scaling_list_pred_size_id_deltaは0~2の値を有することができ、scaling_list_pred_matrix_id_deltaは0~5の値を有することができるように制限することもできる。
さらに、符号化対象量子化行列より大きい大きさを有する量子化行列からは量子化行列の予測を実行しないようにすることもできる。
量子化行列の予測において、行列の大きさを考慮して予測の方法を異なるようにすることもできる。例えば、8×8の大きさを有する量子化行列から予測する場合、符号化器は、8×8の大きさを有する量子化行列内のDC係数位置に該当する値をDC行列係数と判断し、該当位置の値を予測し、16×16又は32×32の大きさを有する量子化行列から予測する場合、符号化器は、DC行列係数も共に予測できる。
一方、量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表38は、量子化行列内で以前に符号化された量子化行列係数値を利用して量子化行列内の係数を予測する場合に適用されることができるシンタックス構造の一例を示す。
表38の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列の係数を特定する情報であるscaling_list_dc_coef_minus8をパラメータセットに符号化することができる。
符号化器は、表38の例のように、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することもできる。
従来の量子化行列符号化/復号化では、量子化行列内の一番目の係数の符号化/復号化時によく発生する係数値を考慮せずに、量子化行列係数を符号化した。したがって、従来の量子化行列符号化/復号化の場合、符号化効率の向上には限界がある。
本発明では、よく発生する係数値を利用して量子化行列内の一番目の係数の予測符号化/復号化を実行することができる。また、本発明では、基本行列の一番目の係数値又はDC行列係数値は16に定義されており、又は非基本行列の一番目の係数値又はDC行列係数値が16を基準に分布されている場合、符号化/復号化対象量子化行列内の一番目の係数値又はDC行列係数値も定数16から予測して符号化/復号化できる。したがって、本発明によると、符号化効率を向上させることができる。
表39及び表40は、量子化行列内の一番目の係数を考慮する場合に適用することができるシンタックス構造の一例を概略的に示す。
符号化器は、まず、量子化行列の存在有無を示す情報をパラメータセットに符号化することができる。
表39の例のように、符号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットに符号化することができる。例えば、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定する場合、符号化器は、scaling_list_present_flagの値を0に符号化でき、符号化された量子化行列が存在する場合、符号化器は、scaling_list_present_flagの値を1に符号化できる。
量子化行列に対する予測符号化方法の種類を決定した後、符号化器は、量子化行列の予測符号化方法に対する情報をパラメータセットに符号化することができる。このとき、予測符号化方法に対する情報が符号化されるパラメータセットは、適応パラメータセットである。
表39の例のように、量子化行列の予測符号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットに符号化することができる。
例えば、量子化行列内の係数を予測符号化するために、量子化行列をスキャンしてDPCMと指数-ゴロムコードで符号化する場合、符号化器は、scaling_list_pred_mode_flagの値を1に符号化できる。また、量子化行列間予測のために、参照量子化行列と符号化対象量子化行列が同じ値を有するように決定する場合、符号化器は、scaling_list_pred_mode_flagの値を0に符号化できる。同じ値を有するように決定するとは、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を使用するということを意味する。
量子化行列の予測符号化方法が、量子化行列間予測のために量子化行列を参照量子化行列と同一に決定する方法である場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子をパラメータセットに符号化することができる。このとき、参照量子化行列識別子を符号化するパラメータセットは、適応パラメータセットである。
表39の例のように、符号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定した場合、符号化器は、符号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットに符号化することができる。このとき、符号化器は、符号化対象量子化行列を意味するmatrixID、参照量子化行列を指示するRefMatrixID、及び数式15を利用することによって、量子化行列識別子であるscaling_list_pred_matrix_id_deltaを決定することができる。
[数15]
scaling_list_pred_matrix_id_delta=matrixID-(RefMatrixID+1)
符号化対象量子化行列係数値を参照量子化行列係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を符号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を符号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
量子化行列の予測符号化方法が、量子化行列内の係数を予測符号化するためにスキャンを介してDPCMと指数-ゴロムコードで符号化する方法である場合、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値をパラメータセットに符号化することができる。このとき、差分値が符号化されるパラメータセットは、適応パラメータセットである。
表40の例のように、符号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、符号化器は、DC行列の係数に該当する量子化行列の係数値であるscaling_list_dc_coef_minus16をパラメータセットに符号化することができる。このとき、scaling_list_dc_coef_minus16の値は、予測値を16にして計算されたDC行列の係数を示す。
表40の例のように、符号化器は、量子化行列内で以前に符号化された量子化行列の係数値と符号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットに符号化することができる。符号化器は、表40の例のように‘nextCoef=16’、即ち、一番目の係数値に対する予測値を16に設定できる。
また、符号化器は、scaling_list_dc_coef_minus16又はnextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を決定することができる。即ち、scaling_list_dc_coef_minus16の値を-16に符号化することによって基本行列の使用を復号化器に指示することができ、一番目のnextCoef値が0になるようにscaling_list_delta_coefを符号化することによって基本行列の使用を復号化器に指示することができる。
表39及び表40の例だけでなく、前記表及び以下の表の実施例において、符号化器は、nextCoefは16に設定でき、scaling_list_dc_coef_minus16の値は、予測値を16にして計算されたDC行列の係数を意味する。また、前記表及び以下の表の実施例において、符号化器は、scaling_list_dc_coef_minus16の値を-16に符号化することによって基本行列の使用を復号化器に指示することもできる。
以上、量子化行列情報を符号化してシグナリングする符号化器の動作に対する例を説明した。以下、前述した表の例を利用して復号化器で量子化行列情報を復号化し、量子化行列を取得する例に対して説明する。
図5は、量子化行列に対する情報を復号化し、それを利用して復号化を実行する復号化器動作の一例を概略的に説明する順序図である。
図5を参照すると、復号化器は、変換ユニットの大きさ情報を復号化し、復号化した情報に基づいて変換ユニットの大きさを決定する(S510)。
復号化器は、受信したビットストリームから変換ユニットの大きさに対する情報をエントロピー復号化(entropy decoding)する。復号化器は、ビットストリーム内のパラメータセットから変換ユニットの大きさに対する情報を復号化することができる。
例えば、復号化器は、ビットストリームから変換ユニットの最小大きさと最大大きさに対する情報を復号化することができる。
表1の例のように、復号化器は、ビットストリーム内のlog2_min_transform_block_size_minus2のシンタックス要素を利用することによってLog2関数が適用された正方形変換ユニットの横又は縦方向の最小大きさを復号化することができる、また、復号化器は、ビットストリーム内のlog2_diff_max_min_transform_block_sizeのシンタックス要素を利用することによってLog2関数が適用された正方形変換ユニットの横又は縦方向の最大大きさと横又は縦方向の最小大きさとの間の差分値を復号化することもできる。
復号化器は、前記復号化された変換ユニットの最小大きさと最大大きさを決定することができる。このとき、変換ユニットの最大大きさは、復号化された最大大きさと最小大きさとの間の差分値と復号化された最小大きさを利用して決定することもできる。
例えば、復号化器は、復号化されたlog2_min_transform_block_size_minus2に2を加算してLog2MinTrafoSizeを計算した後、1<<Log2MinTrafoSizeを利用して計算された値を正方形変換ユニットの横又は縦方向の最小大きさに決定できる。復号化器は、復号化されたlog2_diff_max_min_transform_block_sizeの値、そして、復号化されたlog2_min_transform_block_size_minus2に2を加算した値によりLog2MaxTrafoSizeを計算した後、1<<Log2MaxTrafoSizeを利用して計算された値を正方形変換ユニットの横又は縦方向の最大大きさに決定できる。
ここで、変換ユニットの最小大きさは、Log2MinTrafoSize又は1<<Log2MinTrafoSizeを利用して計算された値を意味し、変換ユニットの最大大きさは、Log2MaxTrafoSize又は1<<Log2MaxTrafoSizeを利用して計算された値を意味する。
復号化器は、量子化行列情報を復号化する(S520)。復号化器は、(1)量子化行列の使用可否、(2)量子化行列の存在(present)有無、(3)量子化行列の復号化可否及び基本行列の使用可否、(4)量子化行列予測復号化方法の種類、(5)参照量子化行列識別子、又は(6)量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値のうち少なくとも一つ以上に対する情報を含む量子化行列情報を復号化することができる。このとき、量子化行列情報は、変換ユニットの大きさに依存的である。
復号化器は、まず、量子化行列の使用可否に対する情報をパラメータセットで復号化して量子化行列の使用可否に対して決定できる。表2の例のように、復号化器は、量子化行列の使用可否に対する情報であるscaling_list_enabled_flagをシーケンスパラメータセットで復号化できる。このとき、scaling_list_enabled_flagの値が1の場合、復号化器は、シーケンス全体に対する変換係数の逆量子化(dequantization)/スケーリング(scaling)で量子化行列を使用することができ、scaling_list_enabled_flagの値が0の場合、復号化器は、変換係数の逆量子化/スケーリングで量子化行列を使用しない。
復号化器は、量子化行列の存在有無に対する情報をパラメータセットで復号化して量子化行列の存在有無に対して決定できる。表3の例のように、復号化器は、量子化行列の存在有無に対する情報であるaps_scaling_list_data_present_flagを適応パラメータセットで復号化できる。例えば、aps_scaling_list_data_present_flagの値が1の場合、適応パラメータセットに量子化行列が存在することを意味し、aps_scaling_list_data_present_flagの値が0の場合、適応パラメータセットに量子化行列が存在しないことを意味する。もし、scaling_list_enabled_flagが1であり、且つaps_scaling_list_data_present_flagが0の場合、基本行列が逆量子化時に使われることを意味する。また、量子化行列の存在有無情報を適応パラメータセットに復号化する場合を例示したが、本発明は、これに限定されるものではなく、復号化器は、他のパラメータセットに量子化行列の存在有無情報を復号化することもできる。
復号化器は、量子化行列の復号化可否及び基本行列の使用可否に対する情報をパラメータセットで復号化して量子化行列の復号化可否及び基本行列の使用可否に対して決定できる。表4の例のように、復号化器は、量子化行列の復号化可否及び基本行列の使用可否に対する情報であるuse_default_scaling_list_flagを適応パラメータセットで復号化できる。例えば、use_default_scaling_list_flagの値が1の場合、量子化行列が復号化されず、全ての量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本量子化行列の係数値と同一に決定されることができる。use_default_scaling_list_flagの値が0の場合、量子化行列が復号化され、符号化器及び/又は復号化器に予め決められた基本行列は使われない。
復号化器は、SizeIDとMatrixIDを利用して量子化行列の復号化をするか、基本行列を使用するか、又は予測復号化を実行するかのうち少なくとも一つ以上を決定することができる。
表5及び表6の例のように、SizeID値は、テーブルを利用して変換ユニットの大きさ又は量子化行列の大きさによる量子化行列を特定し、MatrixID値は、量子化行列が使われる符号化モード及び色成分に対応する量子化行列の種類を特定することができる。
一方、基本量子化行列は、表7及び表8を利用して指示されることができる。
使用可能な変換ユニットの最小大きさと最大大きさを考慮しない場合、全ての大きさの変換ユニットに対する量子化行列を復号化しなければならないため、符号化効率が低下され、計算複雑度が増加するようになる。
本発明によると、変換ユニットの大きさを考慮して量子化行列の情報を復号化することができる。
表9は、一例として、前記各変換ユニット大きさに該当するSizeIDを変換ユニット大きさ情報のうち最小大きさと最大大きさによって制限して量子化行列復号化又は基本行列の使用可否復号化又は予測復号化方法種類復号化のうち少なくとも一つ以上を実行する。
表9の例のように、SizeIDを変換ユニットの大きさ情報のうち最小大きさと最大大きさによって制限し、特定大きさの変換ユニットに対してのみ、量子化行列又は基本行列の使用可否又は予測復号化方法の種類のうち少なくとも一つ以上の情報に対する復号化を実行することができる。
例えば、変換ユニットの最小大きさを特定するLog2MinTrafoSizeの値が3であり、且つ変換ユニットの最大大きさを特定するLog2MaxTrafoSizeの値が4の場合、復号化器は、8×8大きさから16×16大きさまでの変換ユニットに対応する量子化行列の復号化又は基本行列使用可否の復号化、予測復号化方法の種類に対する復号化のうち少なくとも一つ以上を実行することができる。
一方、表9の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、前記と違って、復号化器は、SizeIDを変換ユニットの最大大きさと最小大きさとの間の差分値によって制限して量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行することもできる。
復号化器は、表10の例のように、SizeIDを変換ユニットの最大大きさと最小大きさとの間の差分値によって制限し、特定大きさの変換ユニットに対してのみ(即ち、変換ユニットの特定大きさに対してのみ)、量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行することができる。
例えば、変換ユニットの最小大きさを特定するLog2MinTrafoSizeの値が3であり、且つ変換ユニットの最大大きさを特定するLog2MaxTrafoSizeが4の場合、8×8大きさから16×16大きさまでの変換ユニットに該当する量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行することができる。
このとき、Log2MaxTrafoSizeとLog2MinTrafoSizeとの間の差分値は、変換ユニットの最大大きさと最小大きさとの間の差分値であって、log2_diff_max_min_transform_block_sizeにより特定されることができる。そして、Log2MinTrafoSize-2は、log2_min_transform_block_size_minus2と同じである。
表10の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
一方、シーケンス又はピクチャ又はスライス内で変換ブロックの大きさ別に又は量子化行列の種類別に基本行列と非基本行列とを混用して使用することができない場合、符号化器で量子化行列を選択するにあたって、自由度が低くなるようになる。例えば、スライス内の特定変換大きさに対しては基本行列を使用し、他の特定変換大きさに対して非基本行列を使用するためには基本行列を符号化して送らなければならないため、符号化効率が低下されることができる。
本発明では、シーケンス又はピクチャ又はスライス内で変換ブロックの大きさ別に又は量子化行列の種類別に基本行列と非基本行列とを混用して使用することができる。
例えば、復号化器は、SizeIDによって量子化行列の復号化可否及び基本行列の使用可否をパラメータセットで復号化できる。表11の例のように、復号化器は、SizeIDによって量子化行列の復号化可否と基本行列の使用可否を特定する情報であるsid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセット(adaptation parameter set)から復号化できる。例えば、sid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、復号化器は、SizeIDに対応する量子化行列を復号化せず、SizeIDに該当する量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。sid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、復号化器は、SizeIDに対応する量子化行列を復号化し、符号化器及び/又は復号化器に予め決められた基本行列をSizeIDに該当する量子化行列として使用しない。
一方、表11の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、復号化器は、SizeIDの代わりに、MatrixIDによって量子化行列の復号化可否及び基本行列の使用可否をパラメータセットで復号化することもできる。
表12の例のように、復号化器は、MatrixIDによって量子化行列の復号化可否及び基本行列の使用可否を特定する情報であるmid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセットから復号化することができる。例えば、mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、復号化器は、MatrixIDに対応する量子化行列を復号化せず、MatrixIDに該当する量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、復号化器は、MatrixIDに該当する量子化行列を復号化し、符号化器及び/又は復号化器に予め決められた基本行列をMatrixIDに該当する量子化行列として使用しない。
表12の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、復号化器は、SizeIDのみを考慮し、又はMatrixIDのみを考慮する代わりに、SizeIDとMatrixIDの両方ともを考慮し、SizeID及びMatrixIDによって量子化行列の復号化可否及び基本行列の使用可否に対する情報をパラメータセットから復号化することもできる。
表13の例のように、復号化器は、SizeIDとMatrixIDによって量子化行列の復号化可否及び基本行列の使用可否を特定する情報であるsid_mid_use_default_scaling_list_flag[SizeID][MatrixID]を適応パラメータセットから復号化することができる。例えば、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、復号化器は、SizeIDとMatrixIDに該当する量子化行列を復号化せず、SizeIDとMatrixIDに該当する量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、復号化器は、SizeIDとMatrixIDに該当する量子化行列を復号化し、符号化器及び/又は復号化器に予め決められた基本行列をSizeIDとMatrixIDに該当する量子化行列として使用しない。
表13の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
一方、表14の例のように、復号化器は、SizeIDを変換ユニットの最小大きさと最大大きさによって制限し、量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行する。また、復号化器は、SizeIDとMatrixIDによって量子化行列の復号化可否に対する情報及び基本行列の使用可否に対する情報をパラメータセットから復号化することができる。
表14の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
表15の例のように、復号化器は、SizeIDを変換ユニットの大きさ情報のうち最大大きさと最小大きさとの間の差分値によって制限し、量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行することができる。例えば、Log2MaxTrafoSizeとLog2MinTrafoSizeとの間の差分値は、変換ユニットの最大大きさと最小大きさとの間の差分値を特定するため、log2_diff_max_min_transform_block_sizeと同じであり、Log2MinTrafoSize-2は、log2_min_transform_block_size_minus2と同じである。また、復号化器は、SizeIDとMatrixIDによって量子化行列の復号化可否及び基本行列の使用可否に対する情報をパラメータセットから復号化することができる。
表15の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、表16の例のように、復号化器は、量子化行列情報が復号化対象パラメータセットに存在するか、又は量子化行列をアップデートするかをパラメータセット内のscaling_list_update_flag[SizeID][MatrixID]に基づいて決定できる。例えば、1の値を有するscaling_list_update_flag[SizeID][MatrixID]は、SizeID及びMatrixIDにより特定される量子化行列情報が復号化対象パラメータセットに存在することを指示し、又はSizeID及びMatrixIDに対応し、以前に復号化された量子化行列の情報を復号化対象パラメータセット内のSizeID及びMatrixIDに対応する量子化行列情報にアップデート(update)することを指示する。このとき、量子化行列の情報をアップデートするとは、以前に復号化された量子化行列の情報を復号化対象パラメータセット内の量子化行列情報に変えるということを意味する。また、0の値を有するscaling_list_update_flag[SizeID][MatrixID]は、SizeID及びMatrixIDに対応する量子化行列情報が復号化対象パラメータセット内に存在しない、又は以前に復号化された量子化行列の情報をアップデートしないことを指示する。例えば、scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、パラメータセットにSizeID及びMatrixIDに対応する量子化行列情報が存在せず、量子化行列情報も復号化されなかったため、復号化器は、SizeID及びMatrixIDにより特定される量子化行列の係数の逆量子化にどのような量子化行列情報を使用しなければならないかが分からなくなる。したがって、scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、SizeID及びMatrixIDに該当する量子化行列情報が復号化対象パラメータセットに存在しないため、SizeID及びMatrixIDに対応する量子化行列として基本行列を使用し、又は量子化行列を使用しないことが指示することができる。
このとき、scaling_list_update_flag[SizeID][MatrixID]は、各変換ユニット大きさに該当するSizeIDとMatrixIDによって復号化されるため、scaling_list_update_flag[SizeID][MatrixID]の値が1の場合、復号化器は、量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行することができる。scaling_list_update_flag[SizeID][MatrixID]の値が0の場合、復号化器は、量子化行列の復号化、基本行列の使用可否に対する情報の復号化、予測復号化方法の種類に対する情報の復号化のうち少なくとも一つ以上を実行しない。即ち、復号化器は、scaling_list_update_flag[SizeID][MatrixID]の指示によって、不必要な量子化行列を復号化しない。
一方、scaling_list_update_flag[SizeID][MatrixID]のみを利用してはシーケンス又はピクチャ又はスライス内の変換ブロックの大きさ別に又は量子化行列の種類別に基本行列と非基本行列とを混用して使用することができないため、量子化行列を選択する自由度が低いという短所がある。したがって、SizeIDとMatrixIDに基づいて、復号化器は、量子化行列の復号化可否及び基本行列の使用可否に対する情報であるsid_mid_use_default_scaling_list_flag[SizeID][MatrixID]をパラメータセットで復号化できる。例えば、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1の場合、復号化器は、SizeID及びMatrixIDにより特定される量子化行列を復号化せず、SizeID及びMatrixIDに対応する量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定される。sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0の場合、復号化器は、SizeIDとMatrixIDにより特定される量子化行列を復号化し、符号化器及び/又は復号化器に予め決められた基本行列をSizeIDとMatrixIDに該当する量子化行列として使用しない。
表16の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、復号化器は、表17の例のように、SizeIDとMatrixIDによって、量子化行列の復号化可否、基本行列の使用可否をパラメータセットで復号化できる。また、SizeIDとMatrixIDに該当する量子化行列情報にアップデートするかに対するscaling_list_update_flag[SizeID][MatrixID]が復号化対象パラメータ内で利用されることができる。
例えば、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が0の場合、復号化器は、SizeIDとMatrixIDに対応する量子化行列を復号化し、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を復号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートせずに、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を利用する。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が0であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が1の場合、復号化器は、SizeIDとMatrixIDに該当する量子化行列を復号化し、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を復号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートする。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が0の場合、復号化器は、SizeIDとMatrixIDに該当する量子化行列を復号化せずに、量子化行列の係数値を符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定し、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を復号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートせずに、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を利用する。
また、sid_mid_use_default_scaling_list_flag[SizeID][MatrixID]の値が1であり、且つscaling_list_update_flag[SizeID][MatrixID]の値が1の場合、復号化器は、SizeIDとMatrixIDに該当する量子化行列を復号化せずに、量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定し、以前に復号化されたSizeIDとMatrixIDに該当する量子化行列を復号化対象パラメータ内のSizeIDとMatrixIDに該当する量子化行列にアップデートする。
表17の例において、use_default_scaling_list_flagは、復号化されなくてもよい。
また、復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットで復号化することによって量子化行列に対する予測復号化方法の種類に対して決定できる。表18の例のように、復号化器は、量子化行列の予測復号化方法に対する情報であるpred_mode_flagを適応パラメータセットから復号化することができる。例えば、pred_mode_flagの値が1の場合、復号化器は、量子化行列を指数-ゴロムコードと逆DPCM(Inverse Differential Pulse Code Modulation)により復号化でき、pred_mode_flagの値が0の場合、復号化器は、量子化行列の係数を以前に復号化された量子化行列の係数値と同じ値に決定する。このとき、量子化行列の係数と以前に復号化された量子化行列係数値は、互いに異なる量子化行列内の値であり、以前に復号化された量子化行列は、参照量子化行列を意味する。
量子化行列の予測復号化方法が量子化行列を以前に復号化された量子化行列と同一に決定する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子をパラメータセットから復号化することができる。表18の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別子であるpred_matrix_id_deltaを適応パラメータセットで復号化できる。このとき、復号化器は、pred_matrix_id_deltaと数式16を利用して復号化対象量子化行列の参照量子化行列を指示するRefMatrixIDを決定することができる。
[数16]
RefMatrixID=MatrixID-(1+pred_matrix_id_delta)
量子化行列の予測復号化方法が指数-ゴロムコードと逆DPCMにより復号化する方法である場合、復号化器は、以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、以前に復号化された量子化行列の係数値は、復号化対象量子化行列内の係数値である。表19の例のように、以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるdelta_coefは、適応パラメータセットから復号化されることができる。
一方、下記の方法を利用してシーケンス又はピクチャ又はスライス内で基本量子化行列と非基本量子化行列とを混用して使用することができ、不必要な量子化行列を受信することを防止することができる。
例えば、量子化行列の予測復号化方法が、復号化器が既に有している以前に復号化された量子化行列と同一に量子化行列を決定する方法(pred_mode_flag=0)の場合、復号化器は、パラメータセットから復号化対象量子化行列の参照量子化行列識別子を利用して基本行列の使用可否を復号化することができる。
表18の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別子であるpred_matrix_id_deltaをパラメータセットから復号化することができる。このとき、復号化器は、pred_matrix_id_deltaと数式17を利用して、復号化対象量子化行列の参照量子化行列又は基本行列を特定する情報RefMatrixIDの決定及び基本行列の使用可否の決定を実行することができる。
[数17]
RefMatrixID=MatrixID-pred_matrix_id_delta
例えば、RefMatrixID値がMatrixID値と同じ場合、SizeIDとRefMatrixIDに該当する量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定される。このとき、基本行列は、SizeIDとRefMatrixIDに該当する基本行列を意味する。そして、pred_matrix_id_delta値が0の場合、RefMatrixID値とMatrixID値が同一になる。RefMatrixID値がMatrixID値と同じでない場合、RefMatrixIDに該当する量子化行列が復号化対象量子化行列の参照量子化行列に決定され、復号化対象量子化行列の係数値が参照量子化行列の係数値と同一に決定される。
SizeIDに該当する量子化行列の大きさが復号化器で使用可能な変換ユニットの最小大きさと最大大きさに含まれる場合、前記方法を利用して復号化対象量子化行列の参照量子化行列及び基本行列の使用可否を決定することができる。SizeIDに該当する量子化行列の大きさが復号化器で使用可能な変換ユニットの最小大きさと最大大きさに含まれない場合、SizeIDに該当する量子化行列に対して基本行列と同一に決定しない。
SizeIDを変換ユニット大きさ情報のうち最大大きさと最小大きさとの間の差分値によって量子化行列復号化、又は基本行列の使用可否復号化、又は予測復号化方法種類復号化のうち少なくとも一つ以上を実行する場合、前記決定する過程が実行されることができる。
また、復号化器は、量子化行列の使用可否を決定した後、量子化行列の使用可否に対する情報をパラメータセットから復号化することができる。
表20の例のように、復号化器は、量子化行列の使用可否情報であるscaling_list_enable_flagをパラメータセットで復号化できる。このとき、scaling_list_enable_flagの値が1の場合、復号化器は、逆量子化で基本行列又は非基本行列などの量子化行列を使用することができ、scaling_list_enable_flagの値が0の場合、復号化器は、逆量子化で量子化行列を使用しない、又は全ての係数値が同一な量子化行列を使用することができる。このとき、全ての係数値は、16である。
また、量子化行列の予測復号化方法が逆DPCMと指数-ゴロムコードで復号化する方法である場合、復号化器は、以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。以前に復号化された量子化行列の係数値は、復号化対象量子化行列内の係数値である。即ち、以前に復号化された量子化行列係数値と復号化対象量子化行列の係数値は、同じ量子化行列内の値である。
表21の例のように、復号化器は、以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるdelta_coefをパラメータセットで復号化できる。もし、表21の例のように、数式18を利用して量子化行列の係数値nextcoefが(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、該当量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。
[数18]
nextcoef=(nextcoef+delta_coef+256)%256
即ち、量子化行列の係数nextcoefが(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、復号化器は、該当量子化行列を基本行列として使用することができる。このとき、特定値は、0である。ここで、基本行列は、SizeIDとMatrixIDにより特定される基本行列を意味する。したがって、量子化行列係数値nextcoefが0であり、量子化行列の一番目の値の場合、復号化器は、該当量子化行列に対する量子化行列差分値の復号化を中止することができる。
一方、量子化行列の予測復号化方法が逆DPCMと指数-ゴロムコードで復号化する方法である場合、復号化器は、以前に復号化された量子化行列係数値と復号化対象量子化行列係数値との間の差分値ををパラメータセットで復号化できる。以前に復号化された量子化行列の係数値は、復号化対象量子化行列内の係数値である。即ち、以前に復号化された量子化行列係数値と復号化対象量子化行列の係数値は、同じ量子化行列内の値である。
表22の例のように、復号化器は、以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるdelta_coefをパラメータセットで復号化できる。例えば、表22の例のように、数式18、即ち、(nextcoef+delta_coef+256)%256を利用して計算された量子化行列係数値nextcoefが特定値と同じであり、且つ量子化行列の一番目の値の場合、復号化器は、該当量子化行列の係数値を符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定できる。即ち、nextcoefが(1)特定値と同じであり、且つ(2)量子化行列の一番目の値の場合、復号化器は、該当量子化行列を基本行列として使用することができる。このとき、特定値は、0であり、(nextcoef+delta_coef+256)%256で計算された量子化行列の係数値は、4×4又は8×8の大きさを有する量子化行列の係数値である。
また、量子化行列の一番目の値は、scaling_list_dc_coef_minus8を利用する値であり、特定値は、scaling_list_dc_coef_minus8+8に該当する値である。
scaling_list_dc_coef_minus8は、16×16又は32×32大きさを有する量子化行列の一番目の値を意味し、これはDC行列係数値を意味する。
sizeIDが2の場合、scaling_list_dc_coef_minus8[sizeID-2][MatrixID]は、16×16大きさのDC行列係数値に該当できる。このとき、16×16は、量子化行列に対応する変換ブロックの大きさである。SizeIDが3の場合、scaling_list_dc_coef_minus8[sizeID-2][MatrixID]は、32×32大きさの量子化行列でDC行列係数値に該当できる。このとき、32×32は、量子化行列に対応する変換ブロックの大きさであってもよい。各々の場合、基本行列は、SizeIDとMatrixIDに該当する基本行列を意味する。したがって、量子化行列の係数値nextcoefが0であり、且つ量子化行列の一番目の値の場合、復号化器は、該当量子化行列に対する量子化行列の差分値(係数値の差)に対する復号化を中止することができる。
復号化器は、この方法を利用して量子化行列の大きさ又は変換大きさによって、DC行列係数値であるscaling_list_dc_coef_minus8の復号化可否及び基本行列の使用可否に対する復号化を異なるように実行できる。
一方、量子化行列の係数値を利用して基本行列の使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列係数値に対する符号化/復号化過程の複雑度が増加するという短所がある。これに比べて、本発明は、映像符号化/復号化で参照量子化行列識別子を利用して基本行列の使用可否を決定することができる。したがって、量子化行列の符号化/復号化過程で計算の複雑度を減少させることができる。
まず、復号化器は、量子化行列存在有無を示す情報をパラメータセットで復号化できる。表23の例のように、復号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在しないということを意味し、量子化行列が基本量子化行列に決定され、scaling_list_present_flag値が1の場合、符号化された量子化行列が存在するということを意味する。
復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化することによって量子化行列の予測復号化方法の種類に対して決定できる。このとき、予測復号化方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。表23の例のように、復号化器は、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。例えば、scaling_list_pred_mode_flagの値が1の場合、復号化器は、量子化行列を指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化して量子化行列内の係数を予測復号化し、scaling_list_pred_mode_flagの値が0の場合、復号化対象量子化行列の係数値を参照量子化行列の係数値と同じ値を有するように決定し、又は復号化対象量子化行列の係数値を基本行列の係数値と同一に決定することで、量子化行列間予測を実行する。ここで、同じ値を有するように決定するとは、特定量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。
量子化行列の予測復号化方法が量子化行列を参照量子化行列又は基本行列と同一に決定して量子化行列間予測を実行する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットから復号化することができる。このとき、情報を復号化するパラメータセットは、適応パラメータセットである。
即ち、復号化器は、表23の例のように、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否を特定する情報であるscaling_list_pred_matrix_id_deltaをパラメータセットから復号化することができる。このとき、復号化器は、scaling_list_pred_matrix_id_deltaと数式19を利用して復号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDを決定することができる。
[数19]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta
RefMatrixID値がmatrixID値と同じ場合、sizeIDとmatrixIDに該当する復号化対象量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。ここで、基本行列は、sizeIDとmatrixIDに該当する基本行列である。数式19を参照すると、scaling_list_pred_matrix_id_delta値が0の場合、RefMatrixID値とmatrixID値と同じであるということを意味する。
RefMatrixID値がmatrixID値と同じでない場合、復号化器は、RefMatrixIDに該当する量子化行列を復号化対象量子化行列の参照量子化行列に決定し、復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定できる。復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。このとき、scaling_list_pred_matrix_id_delta値は、正の整数値である。
量子化行列の予測復号化方法が、指数-ゴロムコード、逆DPCM、及びスキャンを利用して量子化行列内の係数を予測復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、復号化器が差分値を復号化するパラメータセットは、適応パラメータセットである。
表24の例のように、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、復号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットから復号化することができる。また、復号化器は、表24の例のように、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。表23及び表24では、量子化行列情報を適応パラメータセットで復号化する場合を例示したが、本発明は、これに限定されるものではなく、復号化器は、他のパラメータセット(シーケンスパラメータセット、ピクチャパラメータセットのうち少なくとも一つを含むパラメータセット)で量子化行列情報を復号化することもできる。
符号化器の例で説明したように、従来の量子化行列符号化/復号化では、量子化行列の予測時、不必要な情報を符号化/復号化するため、符号化効率が低下されることができる。本発明では、参照量子化行列の存在有無によって量子化行列符号化/復号化を異なるように実行することができるため、量子化行列の符号化/復号化時、符号化効率を向上させることができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットから復号化することができる。復号化器は、表25の例のように、量子化行列のビットストリーム内の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、全ての量子化行列が基本量子化行列に決定されることを意味し、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在することを意味する。
また、復号化器は、matrixIDが0より大きい場合、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化して量子化行列の予測復号化方法の種類に対して決定できる。このとき、予測復号化方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。
例えば、復号化器は、表25の例のように、matrixIDが0より大きい場合、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。表25の例では、scaling_list_pred_mode_flagの値が1の場合、復号化器は、量子化行列を指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化することによって量子化行列内の係数を予測復号化することができ、scaling_list_pred_mode_flagの値が0の場合、復号化器は、復号化対象量子化行列の係数値を参照量子化行列の係数値と同じ値を有するように決定して量子化行列間予測を実行することができる。ここで、同じ値を有するように決定するとは、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。
また、表25の例において、matrixIDが0の場合、scaling_list_pred_mode_flagの値がトゥルー(TRUE)になるため、復号化器は、scaling_list_pred_mode_flagを復号化せずに、量子化行列を逆DPCM及び指数-ゴロムコードを利用してスキャンすることで復号化できる。
復号化された量子化行列の予測復号化方法が、量子化行列を参照量子化行列と同一に決定して量子化行列間予測を実行する方法であり、matrixIDが0より大きい場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子をパラメータセットから復号化することができる。このとき、参照量子化行列識別子を復号化するパラメータセットは、適応パラメータセットである。
例えば、復号化器は、表25のように、matrixIDが0より大きい場合、復号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットで復号化できる。このとき、scaling_list_pred_matrix_id_deltaと数式20を利用して復号化対象量子化行列の参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数20]
RefMatrixID=matrixID-(1+scaling_list_pred_matrix_id_delta)
表25の例において、0の値を有するmatrixIDは、各sizeID別に一番目の量子化行列を指示する。量子化行列の予測は、同じsizeIDを有する以前に復号化された量子化行列からのみ可能であり、sizeID別に一番目の量子化行列は、同じsizeID値を有する参照量子化行列が存在しないため、行列複写のような方法の量子化行列予測を実行することができない。したがって、matrixIDが0より大きい場合、復号化器は、参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaを復号化してRefMatrixIDに該当する量子化行列を復号化対象量子化行列の参照量子化行列に決定し、復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定できる。復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、指数-ゴロムコード、逆DPCM、スキャンを利用して量子化行列内の係数を予測復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、差分値を復号化するパラメータセットは、適応パラメータセットである。
例えば、表26の例のように、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、復号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットから復号化することができる。また、復号化器は、表26の例のように、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。
また、復号化器は、scaling_list_dc_coef_minus8又はnextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を決定することができる。例えば、scaling_list_dc_coef_minus8の値が-8に復号化されると、復号化器は、該当量子化行列を基本行列に決定でき、scaling_list_delta_coefを復号化して計算された一番目のnextCoef値が0の場合、復号化器は、該当量子化行列を基本行列に決定できる。
符号化器の例で説明したように、量子化行列の係数値を利用して基本行列の使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度を増加させるという短所がある。また、量子化行列予測時、不必要な情報を符号化/復号化するため、符号化効率が低下される。本発明では、映像符号化/復号化で参照量子化行列識別子を利用して基本行列の使用可否を決定することができるため、量子化行列符号化/復号化時、計算複雑度を減少させることができ、参照量子化行列の存在有無によって量子化行列の符号化/復号化を異なるように実行することができるため、量子化行列の符号化/復号化時、符号化効率を向上させることができる。
具体的に、復号化器は、まず、量子化行列の存在有無を示す情報をパラメータセットから復号化することができる。復号化器は、表27の例のように、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定され、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定される。
また、復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化して量子化行列の予測復号化方法の種類に対して決定できる。このとき、予測復号化方法に対する情報が復号化されるパラメータセットは、適応パラメータセットである。
具体的に、復号化器は、表27の例のように、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。例えば、scaling_list_pred_mode_flagの値が1の場合、復号化器は、量子化行列を指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化することによって量子化行列内の係数を予測復号化し、scaling_list_pred_mode_flagの値が0の場合、復号化対象量子化行列の係数値を参照量子化行列の係数値と同じ値を有するように決定し、又は復号化対象量子化行列の係数値を基本行列の係数値と同一に決定することで、量子化行列間予測を実行することができる。ここで、同じ値を有するように決定するとは、特定量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列間予測のために、参照量子化行列又は基本行列と同一に決定する方法であり、matrixIDが0より大きい場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットから復号化することができる。このとき、参照量子化行列識別子と基本行列の使用可否が復号化されるパラメータセットは、適応パラメータセットである。
この場合、表27の例のように、復号化部は、matrixIDが0より大きい場合、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否に対する情報であるscaling_list_pred_matrix_id_deltaをパラメータセットから復号化することができる。このとき、scaling_list_pred_matrix_id_deltaと数式21を利用して復号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDが決定されることができる。
[数21]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta
RefMatrixID値がmatrixID値と同じ場合、sizeIDとmatrixIDに該当する復号化対象量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定される。ここで、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。数式21によると、scaling_list_pred_matrix_id_delta値が0の場合、RefMatrixID値とmatrixID値と同じであることを意味する。
RefMatrixID値がmatrixID値と同じでない場合、RefMatrixIDに該当する量子化行列が復号化対象量子化行列の参照量子化行列に決定され、復号化対象量子化行列の係数値が参照量子化行列係数値と同一に決定される。復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
このとき、scaling_list_pred_mode_flagの値が0の場合、量子化行列の予測復号化方法が量子化行列を以前に復号化された量子化行列と同一に決定する方法であるということを示し、量子化行列の予測は、同じsizeIDを有する以前に復号化された量子化行列から可能になる。
一方、matrixIDの値が0の場合、各sizeID別に一番目の量子化行列を指示し、scaling_list_pred_mode_flag値が0であり、且つmatrixIDの値が0の場合、sizeID別に一番目の量子化行列は、同じsizeID値を有する参照量子化行列が存在しないため、行列複写のような方法の量子化行列予測が実行されることができない。したがって、このような場合、復号化器は、scaling_list_pred_matrix_id_deltaを復号化せずにscaling_list_pred_matrix_id_deltaの値を0に類推する。scaling_list_pred_matrix_id_deltaの値が0の場合、RefMatrixID値とmatrixID値と同じであるため、sizeIDとmatrixIDに該当する復号化対象量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定される。ここで、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。
復号化された量子化行列の予測復号化方法が、指数-ゴロムコード、逆DPCM、及びスキャンを利用して量子化行列内の係数を予測復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、差分値を復号化するパラメータセットは、適応パラメータセットである。
例えば、表28の例のように、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、復号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットから復号化することができる。表28の例のように、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。
符号化器の例で説明したように、従来の量子化行列符号化/復号化は、量子化行列の送信時、行列内の全体係数とDC行列係数を符号化/復号化し、このとき、DC行列係数に対して予測符号化/復号化しないため、符号化効率向上に限界がある。本発明では、量子化行列内のDC行列係数の予測符号化/復号化を実行することができ、これによって、符号化効率を向上させることができる。例えば、表29及び表30の実施例は、DC行列係数を定数8から予測せずに、周辺係数間の高い相関度を利用して周辺AC係数から予測することによって、符号化効率を向上させることができる。また、表29及び表30の実施例は、量子化行列の符号化/復号化順序と量子化行列の復元順序を一致させることによって、DC行列係数を格納すべきメモリ空間を節約することができる。また、表29及び表30の実施例は、基本行列の使用可否を指示する時、多数のシンタックス要素を利用せずにscaling_list_delta_coefのシンタックス要素を利用することができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットで復号化できる。例えば、表29の例のように、復号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。このとき、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列を基本量子化行列に決定し、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定される。
復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化して量子化行列の予測復号化方法の種類に対して決定できる。このとき、復号化予測方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。
具体的に、復号化器は、表29の例のように、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。例えば、scaling_list_pred_mode_flagの値が1の場合、復号化器は、指数-ゴロムコード、逆DPCM、及びスキャンを利用して量子化行列内の係数を予測復号化することができ、scaling_list_pred_mode_flagの値が0の場合、復号化器は、復号化対象量子化行列の係数値を参照量子化行列の係数値と同じ値を有するように決定して量子化行列間予測を実行することができる。ここで、同じ値を有するように決定するとは、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列間予測のために、量子化行列を参照量子化行列と同一に決定する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子をパラメータセットで復号化できる。このとき、参照量子化行列識別子を復号化するパラメータセットは、適応パラメータセットである。
具体的に、復号化器は、表29の例のように、復号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットから復号化することができる。このとき、scaling_list_pred_matrix_id_deltaと数式22を利用して復号化対象量子化行列の参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数22]
RefMatrixID=matrixID-(1+scaling_list_pred_matrix_id_delta)
復号化器は、RefMatrixIDに該当する量子化行列を復号化対象量子化行列の参照量子化行列に決定し、復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定できる。復号化対象量子化行列の係数値を参照量子化行列係数値と同一に決定することは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、指数-ゴロムコード、逆DPCM、及びスキャンを利用して量子化行列内の係数を予測復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、差分値が復号化されるパラメータセットは、適応パラメータセットである。
例えば、復号化器は、表30のように、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。このとき、復号化器は、nextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を決定することができる。即ち、scaling_list_delta_coefを復号化して計算された一番目のnextCoef値が0の場合、復号化器は、該当量子化行列を基本行列に決定できる。
また、復号化器は、表30の例のように、DC行列係数に該当する量子化行列の係数値間の差分値であるscaling_list_dc_coef_resをパラメータセットから復号化することができる。このとき、scaling_list_dc_coef_resは、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)であり、且つ基本行列を使用しない場合(useDefaultScalingMatrixFlag=0)に復号化されることができる。
DC行列係数を別途に復号化する16×16又は32×32大きさの量子化行列に対して、DC行列係数は、数式23のようにscaling_list_dc_coef_res値とDC位置に存在する行列係数との和を利用して計算されることができる。
[数23]
ScalingFactor[2][MatrixID][0][0]=scaling_list_dc_coef_res[0][MatrixID]+ScalingFactor[2][MatrixID][0][0]withmatrixID=0...5
ScalingFactor[3][MatrixID][0][0]=scaling_list_dc_coef_res[1][MatrixID]+ScalingFactor[3][MatrixID][0][0]withmatrixID=0...1
数式23において、ScalingFactor[2]は、16×16大きさの量子化行列を意味し、ScalingFactor[3]は、32×32大きさの量子化行列を意味する。また、ScalingFactor[2][MatrixID][0][0]は、matrixIDに対応する16×16大きさの量子化行列内のDC行列係数を意味し、ScalingFactor[3][MatrixID][0][0]は、matrixIDに対応する32×32量子化行列内のDC行列係数を意味する。
一方、量子化行列の係数値を利用して基本行列使用有無を決定する量子化行列の符号化/復号化方法は、量子化行列の係数値に対する符号化/復号化過程の複雑度を増加させるという短所がある。また、量子化行列の送信時、行列内の全体係数とDC行列係数を符号化/復号化し、このとき、DC行列係数に対して予測符号化/復号化しないため、符号化効率向上に限界がある。
本発明では、映像符号化/復号化で参照量子化行列識別子を利用して基本行列の使用可否を決定するため、量子化行列の符号化/復号化時、複雑度を減少させることができ、量子化行列内のDC行列係数に対する予測符号化/復号化を実行するため、符号化効率を向上させることができる。例えば、表31及び表32の例では、行列のDC行列係数を定数8から予測せずに、周辺係数間の高い相関度を利用して周辺AC係数から予測できるため、符号化効率を向上させることができる。また、表31及び表32の例では、量子化行列の符号化/復号化順序と量子化行列の復元順序を一致させることができるため、DC行列係数を格納するメモリ空間を節約することができる。また、表31及び表32の例では、基本行列の使用可否を指示する時、多数のシンタックス要素を利用せずにscaling_list_delta_coefのシンタックス要素を利用することができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットから復号化することができる。表31の例のように、復号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。このとき、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定され、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定される。
復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化して量子化行列に対する予測復号化方法の種類を決定することができる。このとき、予測復号化方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。
例えば、復号化器は、表31の例のように、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットで復号化できる。表31の例において、scaling_list_pred_mode_flagの値が1の場合、量子化行列内の係数を予測復号化するために、量子化行列が指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化でき、scaling_list_pred_mode_flagの値が0の場合、量子化行列間予測のために、復号化対象量子化行列の係数値が参照量子化行列の係数値と同じ値を有するように決定され、又は復号化対象量子化行列の係数値が基本行列の係数値と同一に決定されることができる。このとき、同じ値を有するように決定されるとは、特定量子化行列係数値を復号化対象量子化行列係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列を参照量子化行列又は基本行列と同一に決定する量子化行列間予測方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットから復号化することができる。このとき、復号化されるパラメータセットは、適応パラメータセットである。
具体的に、復号化器は、表31の例のように、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否に対する情報であるscaling_list_pred_matrix_id_deltaをパラメータセットから復号化することができる。このとき、scaling_list_pred_matrix_id_deltaと数式24を利用して復号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDを決定する。
[数24]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta
RefMatrixID値がmatrixID値と同じ場合、sizeIDとmatrixIDに該当する復号化対象量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。そして、数式24において、scaling_list_pred_matrix_id_delta値が0の場合、RefMatrixID値とmatrixID値は、同じであることを意味する。RefMatrixID値がmatrixID値と同じでない場合、RefMatrixIDに該当する量子化行列が復号化対象量子化行列の参照量子化行列に決定され、復号化対象量子化行列の係数値が参照量子化行列の係数値と同一に決定されることができる。復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列内の係数を予測復号化するために、指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットで復号化できる。このとき、差分値を復号化するパラメータセットは、適応パラメータセットである。
また、復号化器は、表32の例のように、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットで復号化できる。表32の例のように、復号化器は、DC行列係数に該当する量子化行列の係数値の差分値であるscaling_list_dc_coef_resをパラメータセットに復号化できる。このとき、scaling_list_dc_coef_resは、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)量子化行列であり、且つ基本行列を使用しない場合(useDefaultScalingMatrixFlag=0)に復号化されることができる。
DC行列係数を別途に復号化する16×16大きさの量子化行列又は32×32大きさの量子化行列に対して、DC行列係数は、数式25のようにscaling_list_dc_coef_res値とDC位置に存在する行列の係数との和を利用して計算されることができる。
[数25]
ScalingFactor[2][MatrixID][0][0]=scaling_list_dc_coef_res[0][MatrixID]+ScalingFactor[2][MatrixID][0][0]withmatrixID=0...5
ScalingFactor[3][MatrixID][0][0]=scaling_list_dc_coef_res[1][MatrixID]+ScalingFactor[3][MatrixID][0][0]withmatrixID=0...1
数式25において、ScalingFactor[2]は、16×16量子化行列を意味し、ScalingFactor[3]は、32×32量子化行列を意味する。また、ScalingFactor[2][MatrixID][0][0]は、該当matrixIDに対応する16×16量子化行列内のDC行列係数を意味し、ScalingFactor[3][MatrixID][0][0]は、該当matrixIDに対応する32×32量子化行列内のDC行列係数を意味する。
符号化器に対する例で説明したように、従来の量子化行列符号化/復号化では、符号化/復号化時の量子化行列の大きさではなく、量子化及び逆量子化時の量子化行列の大きさを利用して量子化行列複写を実行する。したがって、制限された個数の量子化行列から量子化行列を複写しなければならないため、量子化行列の符号化効率に限界がある。本発明では、符号化/復号化時、量子化行列の大きさと同一な量子化行列から量子化行列の予測を実行することができるため、符号化効率の向上及び量子化行列の予測自由度を増加させることができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットから復号化することができる。表33及び表34の例のように、復号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定され、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定される。
また、復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットで復号化して量子化行列の予測復号化方法の種類を決定することができる。このとき、予測復号化方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。
具体的に、表33及び表34の例のように、復号化器は、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。例えば、scaling_list_pred_mode_flagの値が1の場合、量子化行列内の係数を予測復号化するために、量子化行列が指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化され、scaling_list_pred_mode_flagの値が0の場合、量子化行列間予測のために、復号化対象量子化行列係数値が参照量子化行列係数値と同じ値を有するように決定される。このとき、同じ値を有するように決定するとは、参照量子化行列係数値を復号化対象量子化行列係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列間予測のために、量子化行列を参照量子化行列と同一に決定する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子をパラメータセットから復号化することができる。このとき、参照量子化行列識別情報(識別子)は、復号化対象量子化行列の参照量子化行列の大きさと参照量子化行列のうち少なくとも一つ以上を含むことができる。そして、参照量子化行列識別子を復号化するパラメータセットは、適応パラメータセットである。
例えば、表33の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別情報であるscaling_list_pred_size_matrix_id_deltaをパラメータセットから復号化することができる。このとき、scaling_list_pred_size_matrix_id_deltaと数式26を利用して復号化対象量子化行列の参照量子化行列の大きさであるRefSizeIDと参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数26]
RefSizeID=sizeID-(scaling_list_pred_size_matrix_id_delta/6)
RefMatrixID=scaling_list_pred_size_matrix_id_delta%6
また、表34の例のように、復号化器は、復号化対象量子化行列の参照量子化行列に対する識別情報であるscaling_list_pred_size_id_deltaとscaling_list_pred_size_matrix_id_deltaをパラメータセットから復号化することができる。このとき、scaling_list_pred_size_id_deltaの値と数式27を利用してRefSizeIDが決定されることができ、scaling_list_pred_matrix_id_deltaと数式28を利用して復号化対象量子化行列の参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数27]
RefSizeID=sizeID-scaling_list_pred_size_id_delta
[数28]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta
復号化対象量子化行列の係数値は、sizeIDがRefSizeIDと同じであり、且つmatrixIDがRefMatrixIDと同じである参照量子化行列の係数値から同一に決定されることができる。即ち、復号化器は、参照量子化行列を復号化対象量子化行列に複写できる。復号化対象量子化行列の係数値を参照量子化行列係数値と同一に決定するとは、RefSizeIDとRefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列の予測方法を適用するということを意味する。
表33及び表34の例を介して、同じsizeIDを有する量子化行列から量子化行列を予測するだけでなく、符号化/復号化時、行列の大きさは同じ、且つ異なるsizeIDを有する量子化行列からも量子化行列を予測することが可能になる。
また、表33及び表34の例において、scaling_list_pred_size_matrix_id_delta値、scaling_list_pred_size_id_delta値、scaling_list_pred_matrix_id_delta値が特定範囲内の値に制限されこともできる。例えば、scaling_list_pred_size_matrix_id_deltaは0~17の値を有し、scaling_list_pred_size_id_deltaは0~2の値を有し、scaling_list_pred_matrix_id_deltaは0~5の値を有するようにすることができる。
また、表33及び表34の例において、復号化器は、復号化対象量子化行列より大きい大きさの量子化行列からは復号化対象量子化行列を予測しない。
また、表33及び表34の例において、復号化対象量子化行列を8×8大きさ量子化行列から予測する時、復号化器は、8×8の大きさを有する量子化行列内のDC行列係数位置に該当する値をDC行列係数と判断し、該当位置の値を予測することができる。そして、16×16又は32×32の大きさを有する量子化行列から復号化対象量子化行列を予測する時、復号化器は、DC行列係数も共に予測できる。
一方、量子化行列の予測復号化方法が、量子化行列内の係数を予測復号化するために、指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、差分値を復号化するパラメータセットは、適応パラメータセットである。
具体的に、表35の例のように、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、復号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットで復号化できる。
また、復号化器は、表35の例のように、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。
また、復号化器は、scaling_list_dc_coef_minus8又はnextCoefの計算に使われるscaling_list_delta_coefを利用して基本行列の使用可否を決定することができる。即ち、scaling_list_dc_coef_minus8の値が-8に復号化されると、該当量子化行列が基本行列に決定されることができ、scaling_list_delta_coefを復号化して計算された一番目のnextCoef値が0の場合、該当量子化行列が基本行列に決定されることができる。
符号化器の例で説明したように、従来の量子化行列符号化/復号化では、量子化行列の係数値を利用して基本行列の使用有無を決定するため、行列の係数値を符号化/復号化する過程の複雑度が増加し、符号化/復号化時の量子化行列の大きさではなく、量子化と逆量子化時の量子化行列の大きさを利用して量子化行列複写を実行するため、制限された個数の量子化行列から量子化行列を複写するようになる。本発明では、参照量子化行列識別子を利用して基本行列の使用可否を決定することができるため、量子化行列符号化/復号化時、計算複雑度を減少させることができる。また、本発明では、符号化/復号化時、量子化行列の大きさと同一な量子化行列から量子化行列の予測を実行することができるため、符号化効率の向上及び量子化行列予測の自由度を増加させることができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットで復号化できる。復号化器は、表36及び表37の例のように、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定されることができ、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定されることができる。
量子化行列の予測復号化方法情報をパラメータセットで復号化して量子化行列の予測復号化方法種類に対して決定できる。このとき、パラメータセットは、適応パラメータセットである。
表36及び表37の例のように、復号化器は、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットで復号化できる。このとき、scaling_list_pred_mode_flagの値が1の場合、復号化器は、量子化行列内の係数を予測復号化するために、量子化行列を指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化でき、scaling_list_pred_mode_flagの値が0の場合、復号化器は、量子化行列間予測のために、復号化対象量子化行列係数値を参照量子化行列係数値と同じ値を有するように決定し、又は復号化対象量子化行列係数値を基本行列係数値と同一に決定できる。このとき、同じ値を有するように決定するとは、特定量子化行列係数値を復号化対象量子化行列係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列間予測のために、量子化行列を参照量子化行列又は基本行列と同一に決定する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否をパラメータセットで復号化できる。このとき、参照量子化行列識別情報(識別子)は、復号化対象量子化行列の参照量子化行列大きさと参照量子化行列のうち少なくとも一つ以上を含むことができる。そして、復号化されるパラメータセットは、適応パラメータセットである。
例えば、表36の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否に対する情報であるscaling_list_pred_size_matrix_id_deltaをパラメータセットから復号化することができる。
このとき、scaling_list_pred_size_matrix_id_deltaと数式29を利用してRefSizeIDと参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数29]
RefSizeID=sizeID-(scaling_list_pred_size_matrix_id_delta/6)
RefMatrixID=scaling_list_pred_size_matrix_id_delta%6
また、表37の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別子と基本行列の使用可否に対する情報であるscaling_list_pred_size_id_deltaとscaling_list_pred_size_matrix_id_deltaをパラメータセットから復号化することもできる。このとき、scaling_list_pred_size_id_delta値と数式30を利用してRefSizeIDを決定し、scaling_list_pred_matrix_id_deltaと数式31を利用して復号化対象量子化行列の参照量子化行列又は基本行列を指示するRefMatrixIDを決定することができる。
[数30]
RefSizeID=sizeID-scaling_list_pred_size_id_delta
[数31]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta
RefMatrixID値がmatrixID値と同じ場合、sizeIDとmatrixIDに該当する復号化対象量子化行列の係数値は、符号化器及び/又は復号化器に予め決められた基本行列の係数値と同一に決定されることができる。このとき、基本行列は、sizeIDとmatrixIDに該当する基本行列を意味する。そして、数式31において、scaling_list_pred_matrix_id_delta値が0の場合、RefMatrixID値とmatrixID値は、同じであることを意味する。
RefMatrixID値がmatrixID値と同じでない場合、RefSizeIDとRefMatrixIDに該当する量子化行列が復号化対象量子化行列の参照量子化行列に決定され、復号化対象量子化行列係数値が参照量子化行列係数値と同一に決定されることができる。復号化対象量子化行列係数値を参照量子化行列係数値と同一に決定するとは、RefSizeIDとRefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
したがって、表36又は表37の例を介して同じsizeIDを有する量子化行列からの量子化行列予測だけでなく、符号化/復号化時、行列の大きさは同じ、且つ異なるsizeIDを有する量子化行列から量子化行列の予測を実行することが許容される。
また、表36又は表37の例において、scaling_list_pred_size_matrix_id_delta値、scaling_list_pred_size_id_delta値、scaling_list_pred_matrix_id_delta値は、測定した範囲に制限されることができる。例えば、scaling_list_pred_size_matrix_id_deltaは0~17の値を有し、scaling_list_pred_size_id_deltaは0~2の値を有し、scaling_list_pred_matrix_id_deltaは0~5の値を有するようにすることができる。
また、表36又は表37の例において、復号化器は、復号化対象量子化行列より大きい大きさを有する量子化行列からは予測しない。
また、8×8大きさ量子化行列から予測する時、復号化器は、8×8大きさを有する量子化行列内のDC行列係数位置に該当する値をDC行列係数と判断し、該当位置の値を予測することができる。そして、16×16大きさの量子化行列又は32×32大きさの量子化行列から予測する場合には、復号化器は、DC行列係数も共に予測できる。
一方、量子化行列の予測復号化方法が、量子化行列内の係数を予測復号化するために、指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットで復号化できる。このとき、差分値を復号化するパラメータセットは、適応パラメータセットである。
表38の例のように、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、復号化器は、DC行列係数であるscaling_list_dc_coef_minus8をパラメータセットから復号化することができる。
表38の例のように、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値であるscaling_list_delta_coefをパラメータセットで復号化できる。
符号化器に対する例で説明したように、従来の量子化行列符号化/復号化では、量子化行列内の一番目の係数の符号化/復号化時によく発生する係数値を考慮せずに、量子化行列の係数を符号化するため、符号化効率向上に限界がある。本発明では、よく発生する係数値を利用して量子化行列内の一番目の係数の予測符号化/復号化を実行することができるため、符号化効率を向上させることができる。基本行列の一番目の係数値又はDC行列係数値は、16に定義されており、又は非基本行列の一番目の係数値又はDC行列係数値が16を基準に分布されている場合、符号化/復号化対象量子化行列内の一番目の係数値又はDC行列係数値も定数16から予測して符号化/復号化すると、符号化効率を向上させることができる。
具体的に、復号化器は、量子化行列の存在有無を示す情報をパラメータセットから復号化することができる。表39の例のように、復号化器は、ビットストリーム内の量子化行列の存在有無を示す情報であるscaling_list_present_flagをパラメータセットから復号化することができる。例えば、scaling_list_present_flagの値が0の場合、量子化行列が存在せず、且つ全ての量子化行列が基本量子化行列に決定されることができ、scaling_list_present_flagの値が1の場合、符号化された量子化行列が存在すると決定されることができる。
また、復号化器は、量子化行列の予測復号化方法に対する情報をパラメータセットから復号化して量子化行列に対する予測復号化方法の種類を決定することができる。このとき、予測符号化方法に対する情報を復号化するパラメータセットは、適応パラメータセットである。
表39の例のように、復号化器は、量子化行列の予測復号化方法に対する情報であるscaling_list_pred_mode_flagをパラメータセットから復号化することができる。このとき、scaling_list_pred_mode_flagの値が1の場合、復号化器は、量子化行列内の係数を予測復号化するために、量子化行列を指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化し、scaling_list_pred_mode_flagの値が0の場合、復号化器は、量子化行列間予測のために、復号化対象量子化行列の係数値を参照量子化行列の係数値と同じ値を有するように決定できる。このとき、同じ値を有するように決定するとは、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
量子化行列の予測復号化方法が、量子化行列間予測のために、量子化行列を参照量子化行列と同一に決定する方法である場合、復号化器は、復号化対象量子化行列の参照量子化行列識別子をパラメータセットから復号化することができる。このとき、参照量子化行列識別子を復号化するパラメータセットは、適応パラメータセットである。
また、表39の例のように、復号化器は、復号化対象量子化行列の参照量子化行列識別子であるscaling_list_pred_matrix_id_deltaをパラメータセットで復号化することができる。このとき、scaling_list_pred_matrix_id_deltaと数式32を利用して復号化対象量子化行列の参照量子化行列を指示するRefMatrixIDが決定されることができる。
[数32]
RefMatrixID=matrixID-(1+scaling_list_pred_matrix_id_delta)
復号化器は、RefMatrixIDに該当する量子化行列を復号化対象量子化行列の参照量子化行列に決定し、復号化対象量子化行列の係数値を参照量子化行列の係数値と同一に決定できる。復号化対象量子化行列係数値を参照量子化行列係数値と同一に決定するとは、RefMatrixIDに該当する参照量子化行列を復号化対象量子化行列の参照量子化行列に決定し、参照量子化行列の係数値を復号化対象量子化行列の係数値に複写する量子化行列予測方法を適用するということを意味する。
復号化された量子化行列の予測復号化方法が、量子化行列内の係数を予測復号化するために、指数-ゴロムコード、逆DPCM、及びスキャンを利用して復号化する方法である場合、復号化器は、量子化行列内で以前に復号化された量子化行列の係数値と復号化対象量子化行列の係数値との間の差分値をパラメータセットから復号化することができる。このとき、差分値が復号化されるパラメータセットは、適応パラメータセットである。
表40の例のように、復号化器は、量子化行列内で以前に復号化された量子化行列係数値と復号化対象量子化行列係数値との間の差分値であるscaling_list_delta_coefをパラメータセットから復号化することができる。このとき、復号化器は、nextCoef=16のように一番目の係数値に対する予測値を16に設定することもできる。
また、表40のように、復号化器は、復号化対象量子化行列の大きさが16×16(sizeID=2)又は32×32(sizeID=3)の場合、DC行列係数に該当する量子化行列の係数値であるscaling_list_dc_coef_minus16をパラメータセットから復号化することができる。scaling_list_dc_coef_minus16の値は、予測値を16にして計算されたDC行列係数を意味する。
また、scaling_list_dc_coef_minus16又はnextCoefの計算に使われるscaling_list_delta_coefを利用して復号化器は、基本行列の使用可否を決定することができる。例えば、scaling_list_dc_coef_minus16の値が-16に復号化されると、該当量子化行列が基本行列に決定されることができ、scaling_list_delta_coefを復号化して計算された一番目のnextCoef値が0の場合、該当量子化行列が基本行列に決定されることができる。
表39及び表40の例だけでなく、前記表の例においても、nextCoefは16に設定されることができ、scaling_list_dc_coef_minus16の値は予測値を16にして計算されたDC行列係数を意味し、scaling_list_dc_coef_minus16の値が-16に復号化されると、復号化器は、該当量子化行列を基本行列に決定できる。
以上、表と図面を利用して、本発明による量子化行列情報の符号化/復号化及び送信/受信に対する実施例を説明した。
前記表18と表19の例、表20と表21の例、表23と表24の例、表25と表26の例、表27と表28の例、表29と表30の例、表31と表32の例、表33と表34の例、表36と表38の例、表37と表38の例、表39と表40の例において、二つの表に分けて本発明によるシンタックス構造の例を説明したが、これは説明の便宜のためのものに過ぎず、本発明は、これに限定されるものではない。
例えば、前記シンタックス構造の例において、scaling_list_pred_mode_flagは、量子化行列の予測方式を指示し、scaling_list_pred_mode_flagの値が0の場合、行列の複写により量子化行列を取得し、scaling_list_pred_mode_flagの値が1の場合、行列係数を量子化行列内で以前行列係数から予測して量子化行列を取得する。
表23及び表24の場合を例として説明すると、scaling_list_pred_mode_flagの値が1の場合、量子化行列シンタックス、即ち、スケーリングリスト(scaling_list)のシンタックスを呼び出して量子化行列を取得するが、これを一つのシンタックスで解決できる。二つ以上のシンタックス構造と同じ意味の一個のシンタックス構造で構成することは、発明の内容を変更するものではなく、本発明の技術的思想の範囲内にあることを留意すべきである。
表41は、表23及び表24の例を一つのシンタックス構造で構成したものである。表23及び表24と同様に、表41の量子化行列情報は、符号化器でシーケンスパラメータセット、ピクチャパラメータセットのうち少なくとも一つを含むパラメータセットに量子化行列情報を符号化することができ、復号化器でシーケンスパラメータセット、ピクチャパラメータセットのうち少なくとも一つを含むパラメータセットで量子化行列情報を復号化することができる。
言及したように、表23及び表24の例と表41の例は、シンタックス構造が2個か又は1個かという形式的なことのみ異なり、その他は同じである。
符号化器は、表41のように、scaling_list_pred_mode_flagを介して行列の予測モードを指示することができる。例えば、量子化行列間複写が実行されると、scaling_list_pred_mode_flagの値は、0に決定されて符号化され、量子化行列内で行列の係数予測符号化が実行されると、scaling_list_pred_mode_flagの値は、1に決定されて符号化される。量子化行列の複写は、前述したように、基本量子化行列を符号化対象量子化行列にし、又は参照量子化行列を符号化対象量子化行列にすることを意味する。行列の係数を予測する方法は、前述したように、量子化行列内の係数を予測符号化する方法を意味する。
量子化行列の複写が実行される場合(scaling_list_pred_mode_flag==0)、scaling_list_pred_matrix_id_deltaが送信される。前述したように、scaling_list_pred_matrix_id_deltaは、現在符号化対象量子化行列の誘導に利用される参照量子化行列又は基本量子化行列を特定する。
例えば、符号化対象量子化行列が基本量子化行列に決定された場合、scaling_list_pred_matrix_id_deltaの値は、0に決定されて符号化されることができる。即ち、現在符号化対象量子化行列が基本量子化行列の中から推定(infer)された場合である。基本量子化行列は、表7及び表8により特定されることができる。
現在符号化対象量子化行列が参照量子化行列から決定された場合、scaling_list_pred_matrix_id_deltaの値は、0でない値に決定されて符号化されることができる。即ち、現在符号化対象量子化行列(ScalingList)が数式33のように参照量子化行列から決定された場合である。
[数33]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta[SizeID][MatrixID]
ScalingList[SizeID][MatrixID][i]=ScalingList[SizeID][RefMatrixId][i]
数式33において、scaling_list_pred_matrix_id_delta値は、sizeIDとmatrixIDにより特定され、インデックスiは、量子化行列内の係数の位置を特定する。
量子化行列内の予測符号化が実行される場合(scaling_list_pred_mode_flag==1)には、4×4大きさの量子化行列に対する行列係数、8×8大きさの量子化行列に対する行列係数、DC行列係数を含む16×16大きさの量子化行列に対する行列係数、DC行列係数を含む32×32大きさの量子化行列に対する行列係数が符号化されることができる。このとき、符号化される全体行列係数の個数は、coefNum=Min(64,(1<<(4+(sizeId<<1))))を利用して計算されることができる。このとき、16×16大きさの量子化行列と32×32大きさの量子化行列は符号化される時、8×8大きさの量子化行列にダウンサンプリング(downsampling)されて符号化されることができる。
復号化器の場合、表41のシンタックス要素をビットストリームから復号化して逆量子化を実行し、これによって、映像を復元することができる。
復号化器は、表41のように、受信されたscaling_list_pred_mode_flagの指示によって、行列の予測モードを決定することができる。例えば、scaling_list_pred_mode_flagの値が0の場合、量子化行列間複写を実行し、scaling_list_pred_mode_flagの値が1の場合、量子化行列内で行列係数を予測することができる。復号化器は、これを介して逆量子化に使用する(逆)量子化行列を取得することができる。本明細書では、量子化の場合に適用される符号化対象量子化行列と逆量子化に適用される復号化対象量子化行列の両方ともを量子化行列ともいうが、これは説明の便宜のためのものに過ぎない。量子化に適用される行列と逆量子化に適用される行列との間には逆の関係が成立でき、逆量子化に使われる量子化行列をスケーリングリストともいう。
量子化行列の複写は、前述したように、基本量子化行列を復号化対象量子化行列に決定し、又は参照量子化行列を復号化対象量子化行列に決定することを意味する。行列の係数を予測する方法は、前述したように、量子化行列内の係数を予測復号化する方法を意味する。
量子化行列の複写が実行される場合(scaling_list_pred_mode_flag==0)、復号化器は、現在復号化対象量子化行列の誘導に利用される参照量子化行列又は基本量子化行列を特定する。
例えば、scaling_list_pred_matrix_id_deltaの値が0の場合、復号化器は、復号化対象量子化行列を基本量子化行列に決定されることができる。即ち、現在復号化対象量子化行列は、基本量子化行列の中から推定(infer)されることができる。基本量子化行列は、表7及び表8により特定されることができる。
scaling_list_pred_matrix_id_deltaの値が0でない場合、復号化器は、現在復号化対象量子化行列を参照量子化行列から決定できる。即ち、現在復号化対象量子化行列(ScalingList)は、数式34のように参照量子化行列から決定されることができる。
[数34]
RefMatrixID=matrixID-scaling_list_pred_matrix_id_delta[SizeID][MatrixID]
ScalingList[SizeID][MatrixID][i]=ScalingList[SizeID][RefMatrixId][i]
数式34において、scaling_list_pred_matrix_id_delta値は、sizeIDとmatrixIDにより特定され、インデックスiは、量子化行列内の係数の位置を特定する。
量子化行列内の予測復号化が実行される場合(scaling_list_pred_mode_flag==1)に、復号化器は、4×4大きさの量子化行列に対する行列係数、8×8大きさの量子化行列に対する行列係数、DC行列係数を含む16×16大きさの量子化行列に対する行列係数、DC行列係数を含む32×32大きさの量子化行列に対する行列係数を復号化することができる。このとき、復号化される全体行列係数の個数は、coefNum=Min(64,(1<<(4+(sizeId<<1))))を利用して計算されることができる。このとき、16×16大きさの量子化行列と32×32大きさの量子化行列は符号化される時、8×8大きさの量子化行列にダウンサンプリングされたため、8×8大きさの量子化行列をアップサンプリング(upsampling)又は補間(interpolation)することによって、16×16大きさの量子化行列と32×32大きさの量子化行列に復元できる。また、アップサンプリング又は補間を適用する場合にも、DC行列係数は、補間された値を使用せずにscaling_list_dc_coef_minus8のように別途にシグナリングされた値から誘導された値に変えて使用することができる。
以上、表を利用してシンタックス構造の例と、それを利用する符号化及び復号化の例を説明した。前述した例では、同じシンタックス構造を利用して符号化の例と復号化の例を説明したが、本発明は、これに限定されるものではない。例えば、前述したシンタックス構造の表は、符号化にのみ利用されてもよく、復号化にのみ利用されてもよい。
図6は、本発明によって逆量子化を実行する方法の一例を概略的に説明するフローチャートである。
図6を参照すると、復号化器は、パラメータセットに量子化行列が存在するかどうかを指示する識別子を取得することができる(S610)。量子化行列がパラメータセット内に存在するかどうかを指示する情報は、前述した表の例でscaling_list_present_flagである。
このとき、パラメータセットに量子化行列が存在するというのは、パラメータセットに量子化行列に対する情報(例えば、scaling_list_pred_mode_flag、scaling_list_pred_matrix_id_delta、scaling_list_dc_coef_minus8、scaling_list_delta_coef等)が存在することを含む。このとき、量子化行列が存在するかどうかを指示する識別子を取得する前に量子化行列を使用するかどうかを指示する識別子であるscaling_list_enable_flagを取得することができる。scaling_list_enable_flagを取得して量子化行列を使用する場合、量子化行列が存在するかどうかを指示する識別子を取得することができる。
このとき、パラメータセットは、量子化行列の情報を送信するシーケンスパラメータセット又はピクチャパラメータセットである。
復号化器は、前記識別子に基づいてパラメータセットに量子化行列が存在するかどうかを判断することができる(S620)。例えば、scaling_list_present_flagの値が1の場合、復号化器は、パラメータセットに量子化行列が存在すると判断し、scaling_list_present_flagの値が0の場合、復号化器は、パラメータセットに量子化行列が存在しないと判断することができる。
パラメータセットに量子化行列が存在しない場合(パラメータセットに量子化行列が存在しないと判断した場合)、復号化器は、逆量子化で量子化行列を使用しない、又は逆量子化で行列係数の値が全部16である同じ量子化行列(flat matrix)を使用し、又は逆量子化で全ての量子化行列を基本量子化行列にするよう決定できる(S630)。
パラメータセットに量子化行列が存在する場合(パラメータセットに量子化行列が存在すると判断した場合)、復号化器は、量子化行列の大きさ又は種類別に量子化行列の情報を取得することができる(S640)。このとき、量子化行列の種類は、画面内の残差ブロックに対する変換係数の逆量子化用量子化行列、画面間残差ブロックに対する変換係数の逆量子化用量子化行列、輝度成分(luma)ブロックに対する変換係数の逆量子化用量子化行列、色差成分(chroma)ブロックに対する変換係数の逆量子化用量子化行列などのうち少なくとも一つ以上であり、又は一つ以上の組合せである。
復号化器は、取得した量子化行列を利用して逆量子化を実行することができる(S650)。復号化器は、パラメータセットに量子化行列が存在しない場合にはS630ステップで決定したことによって、復号化器は、量子化行列を使用せずに逆量子化を実行し、又は逆量子化で行列係数の値が全部16である同じ量子化行列(flat matrix)を使用し、又は逆量子化で全ての量子化行列を基本量子化行列に使用するように逆量子化できる。量子化行列の係数を予測し、又は基本量子化行列を使用することに対しては前述した実施例で説明した通りである。パラメータセットに量子化行列が存在する場合、復号化器は、該当量子化行列を取得して逆量子化に利用できる。復号化器は、図2で説明したように、逆量子化された信号に基づいて映像を復元することができる。
一方、図6では、量子化行列の存否を指示する識別子が符号化器から送信されると説明したが、これは発明の一例に過ぎない。前述したように、量子化行列に対する情報を送信する場合には量子化行列の存否に対する情報を別途に送信しなくてもよい。
図7は、パラメータセットに量子化行列が存在する場合、量子化行列の情報を取得して逆量子化を実行する方法の一例を概略的に説明する図面である。図7は、(1)図6のS640及びS650に対応するステップであり、又は(2)量子化行列の存否を指示する別途の識別子が送信されないが、量子化行列がパラメータセットに存在して量子化行列に対する情報が符号化器から送信される場合に量子化行列を取得して逆量子化を実行する場合の方法である。ただし、量子化行列の存否が別途の識別子で送信されるかどうかに対する相違点を除外すると、(1)と(2)の方法は同様である。図7において、量子化行列情報は、復号化器でシーケンスパラメータセット、ピクチャパラメータセットのうち少なくとも一つを含むパラメータセットで量子化行列情報を復号化することができる。
図7の例では、量子化行列の符号化/復号化時、複雑度を減少させるために、復号化対象量子化行列の予測のための参照量子化行列識別子値が復号化対象量子化行列の識別子値と同じ場合、復号化器は、復号化対象量子化行列を復号化せずに逆量子化時に復号化器が既に有している量子化行列を使用することができる。このとき、復号化器が既に有している量子化行列は、基本量子化行列である。
具体的に、図7を参照すると、パラメータセット内に量子化行列が存在する場合、復号化器は、量子化行列の予測方式を決定することができる(S710)。パラメータセットに量子化行列が存在するというのは、パラメータセットに量子化行列に対する情報(例えば、scaling_list_pred_mode_flag、scaling_list_pred_matrix_id_delta、scaling_list_dc_coef_minus8、scaling_list_delta_coef等)が存在することを含む。
前述した例を参照すると、符号化器から送信されたシンタックス要素pred_mode_flagの値によって量子化行列の予測方式が決定されることができる。量子化行列に対する予測方式であることを明確にするために、pred_mode_flagは、前述した例と同様に、scaling_list_pred_mode_flagで表示されることもできる。pred_mode_flagが指示する量子化行列の予測方式は、(1)復号化器が既に有している量子化行列をそのまま使用する方式、(2)量子化行列の値を送信して量子化行列内の量子化行列係数値間の逆DPCMする方式のうちいずれか一つである。
例えば、pred_mode_flagの値が0の場合、復号化器は、既に有している量子化行列(既に復号化された量子化行列(参照行列)又は基本行列)を利用し、pred_mode_flagの値が1の場合、復号化器は、送信された情報に基づいて量子化行列内の係数を予測復号化することができる。
量子化行列予測方式が復号化器が既に有している量子化行列をそのまま使用する方式である場合、復号化器は、量子化行列の識別情報を取得することができる(S720)。量子化行列の識別情報は、復号化器が既に有している量子化行列を識別することができる情報であって、前述した例のscaling_list_pred_matrix_id_delta、pred_matrix_id_deltaなどに該当する。
復号化器は、識別情報により特定される量子化行列が現在復号化対象量子化行列と同じかどうかを判断することができる(S730)。pred_matrix_id_deltaは、量子化行列の誘導に利用される参照量子化行列を特定する。量子化行列に対するものであることを明確にするために、pred_matrix_id_deltaは、前述した例と同様に、scaling_list_pred_matrix_id_deltaで表示されることもできる。
scaling_list_pred_matrix_id_delta値が0の場合、復号化対象量子化行列として量子化行列情報(SizeID、MatrixID)が特定する基本量子化行列を使用することができる。
scaling_list_pred_matrix_id_deltaの値が0でない場合、前述した例を参照すると、復号化対象量子化行列(の種類)を特定するmatrixIDと参照量子化行列を特定するRefMatrixIDとの間にはscaling_list_pred_matrix_id_delta=matrixID-RefMatrixIDの関係が成立するため、復号化対象量子化行列を既に復号化された参照量子化行列から誘導できる。
量子化行列識別情報が特定する量子化行列が、復号化対象量子化行列と同じでない場合(!scaling_list_pred_matrix_id_delta==0又はmatrixID!=RefMatrixID)、復号化器は、量子化行列識別情報を利用して逆量子化時に使用する量子化行列を決定することができる(S740)。この場合、復号化器は、量子化行列を量子化行列識別情報scaling_list_pred_matrix_id_deltaに基づいて前述した表の例のように逆量子化時に使用する量子化行列を決定することができる。
量子化行列識別情報が特定する量子化行列が、復号化対象量子化行列と同じ場合(scaling_list_pred_matrix_id_delta==0又はmatrixID==RefMatrixID)、復号化器は、既に有している基本量子化行列を利用することができる。このとき、基本量子化行列は、表7及び表8を利用して決定されることができる。
S710において、量子化行列係数値間の逆DPCM方式を使用すると決定した場合、復号化器は、量子化行列の係数値を初期化することができる(S760)。例えば、復号化器は、量子化行列の係数(nextcoef)を定数値に設定することによって初期化することができる。初期化時に設定される定数は、前述した表の例と同様に、8又は16のうちいずれか一つである。
復号化器は、符号化器から送信された量子化行列内の係数間差分値を復号化することができる(S770)。量子化行列内の係数間差分値は、例えば、delta_coefのようなシンタックス要素により特定されることができ、量子化行列に対するものであることを明確にするために、delta_coefは、前述した表の例のようにscaling_list_delta_coefであってもよい。
復号化器は、量子化行列の係数値を誘導することができる(S780)。復号化器は、量子化行列内の係数間差分値を以前に復号化された量子化行列の係数に加えて復号化対象量子化行列(現在量子化行列)の係数値を誘導することができる。例えば、復号化器は、前述した数式のようにnextcoef=(nextcoef=delta_coef+256)%256の関係を利用して現在量子化行列の係数値を誘導することができる。
復号化器は、量子化行列を誘導したかどうかを判断する(S790)。量子化行列の係数が全部復号化されない場合、復号化器は、S770ステップに戻って以後のステップを進行する。
復号化器は、取得した量子化行列を利用して逆量子化を実行することができる(S650)。
一方、量子化行列の係数値を誘導する時、図7の例では区別しなかったが、前述した実施例のように、所定大きさの量子化行列に対してはDC行列係数を先に誘導することもできる。
図8は、パラメータセットに量子化行列が存在する場合、量子化行列の情報を取得して逆量子化を実行する方法の他の例を概略的に説明する図面である図8は、(1)図6のS640及びS650に対応するステップであり、又は(2)量子化行列の存否を指示する別途の識別子が送信されないが、量子化行列がパラメータセットに存在して量子化行列に対する情報が符号化器から送信される場合に量子化行列を取得して逆量子化を実行する場合の方法である。ただし、量子化行列の存否が別途の識別子で送信されるかどうかに対する相違点を除外すると、(1)と(2)の方法は同様である。
図8の例では、不必要な量子化行列送信を防止するために、復号化対象量子化行列の一番目の値が特定値である場合、復号化器は、復号化対象量子化行列を復号化せず、逆量子化時、復号化器が既に有している基本(default)量子化行列を使用することができる。
具体的に、図8を参照すると、パラメータセット内に量子化行列が存在する場合、復号化器は、量子化行列の予測方式を決定することができる(S810)。パラメータセットに量子化行列が存在するというのは、パラメータセットに量子化行列に対する情報が存在することを含む。
量子化行列予測方式が、復号化器が既に有している量子化行列をそのまま使用する方式である場合、復号化器は、量子化行列の識別情報を取得することができる(S820)。
量子化行列の識別情報は、復号化器が既に有している量子化行列を識別することができる情報であって、前述した例のscaling_list_pred_matrix_id_delta、pred_matrix_id_deltaなどに該当できる。
復号化器は、量子化行列識別情報を利用して逆量子化時に使用する量子化行列を決定することができる(S830)。復号化器は、scaling_list_pred_matrix_id_delta、pred_matrix_id_deltaなどの識別情報の指示によって、量子化行列を決定することができる。
S810において、量子化行列係数値間の逆DPCM方式を使用すると決定した場合、復号化器は、量子化行列の係数値を初期化することができる(S840)。例えば、復号化器は、量子化行列の係数(nextcoef)を定数値に設定することによって初期化することができる。初期化時に設定される定数は、前述した表の例と同様に、8又は16のうちいずれか一つである。
復号化器は、符号化器から送信された量子化行列内の係数間差分値を復号化することができる(S850)。量子化行列内の係数間差分値は、例えば、delta_coefのようなシンタックス要素により特定されることができる。
復号化器は、量子化行列の係数値を誘導することができる(S860)。復号化器は、量子化行列内の係数間差分値を以前に復号化された量子化行列の係数に加えて復号化対象量子化行列(現在量子化行列)の係数値を誘導することができる。例えば、復号化器は、前述した数式のようにnextcoef=(nextcoef=delta_coef+256)%256の関係を利用して現在量子化行列の係数値を誘導することができる。
復号化器は、誘導した係数が量子化行列の一番目の係数値であり、且つ特定値と同じかどうかを判断することができる(S870)。このとき、特定値は0である。
復号化器は、誘導した係数が量子化行列の一番目の係数値であり、且つ特定値と同じ場合、復号化器が既に有している基本量子化行列を逆量子化に利用するように決定できる(S880)。
復号化器は、誘導した係数が量子化行列の一番目の係数値であり、且つ特定値と同じ場合でない場合、量子化行列係数に対する差分値が全部復号化されたかどうかを確認する(S890)。全部復号化されない場合、復号化器は、S850ステップから以下のステップを進行することができる。
復号化器は、取得した量子化行列を利用して逆量子化を実行することができる(S650)。
前述した実施例において、量子化行列情報とは、量子化行列又は量子化行列を誘導することができる情報を意味する。このとき、量子化行列を誘導することができる情報は、基本行列の使用可否又は予測符号化/復号化方法種類又は参照量子化行列識別子又は参照量子化行列などを意味する。
前述した例示的なシステムにおいて、方法は、一連のステップ又はブロックで順序図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、他の順序に又は同時に発生できる。また、前述した実施例は、多様な態様の例示を含む。例えば、各実施例の組合せも本発明の一実施例として理解しなければならない。