本文書は、様々な変更を加えることができ、種々の実施例を有することができ、特定実施例を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施例に限定しようとするものではない。本明細書で常用する用語は、単に特定の実施例を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、一つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて一つの構成をなすこともでき、一つの構成を複数の構成に分けることもできる。各構成が統合及び/または分離された実施例も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
以下、添付図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略されることができる。
この文書は、ビデオ/映像コーディングに関する。例えば、この文書に開示された方法/実施例は、VVC(Versatile Video Coding)標準(ITU-T Rec.H.266)、VVC以後の次世代ビデオ/イメージコーディング標準、またはその以外のビデオコーディング関連標準(例えば、HEVC(High Efficiency Video Coding)標準(ITU-T Rec.H.265)、EVC(essential video coding)標準、AVS2標準等)と関連することができる。
この文書ではビデオ/映像コーディングに関する多様な実施例を提示し、他の言及がない限り、前記実施例は、互いに組み合わせて実行されることもできる。
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の一つの映像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。一つのピクチャは、一つ以上のスライス/タイルで構成されることができる。一つのピクチャは、一つ以上のタイルグループで構成されることができる。一つのタイルグループは、一つ以上のタイルを含むことができる。
ピクセル(pixel)またはペル(pel)は、一つのピクチャ(または、映像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち少なくとも一つを含むことができる。一つのユニットは、一つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
この文書において、“/”と“、”は、“及び/または”と解釈される。例えば、“A/B”は、“A及び/またはB”と解釈され、“A、B”は、“A及び/またはB”と解釈される。追加的に、“A/B/C”は、“A、B及び/またはCのうち少なくとも一つ”を意味する。また、“A、B、C”も、“A、B及び/またはCのうち少なくとも一つ”を意味する。(In this document,the term “/” and “,” should be interpreted to indicate “and/or.” For instance,the expression “A/B” may mean “A and/or B.”Further,“A,B” may mean “A and/or B.”Further,“A/B/C” may mean “at least one of A,B,and/or C.”Also,“A/B/C” may mean “at least one of A,B,and/or C.”)
追加的に、本文書において、“または”は、“及び/または”と解釈される。例えば、“AまたはB”は、1)“A”のみを意味し、または、2)“B”のみを意味し、または、3)“A及びB”を意味することができる。他の表現としては、本文書の“または”は、“追加的にまたは代替的に(additionally or alternatively)”を意味することができる。(Further,in the document,the term “or” should be interpreted to indicate “and/or.” For instance,the expression “A or B” may comprise 1)only A,2)only B,and/or 3)both A and B.In other words,the term “or” in this document should be interpreted to indicate “additionally or alternatively.”)
本明細書において、“少なくとも一つのA及びB(at least one of A and B)”は、“ただA”、“ただB”または“AとBの両方とも”を意味することができる。また、本明細書において、“少なくとも一つのAまたはB(at least one of A or B)”や“少なくとも一つのA及び/またはB(at least one of A and/or B)”という表現は、“少なくとも一つのA及びB(at least one of A and B)”と同じく解釈されることができる。
また、本明細書において、“少なくとも一つのA、B及びC(at least one of A,B and C)”は、“ただA”、“ただB”、“ただC”、または“A、B及びCの任意の全ての組み合わせ(any combination of A、B and C)”を意味することができる。また、“少なくとも一つのA、BまたはC(at least one of A,B or C)”や“少なくとも一つのA、B及び/またはC(at least one of A,B and/or C)”は、“少なくとも一つのA、B及びC(at least one of A,B and C)”を意味することができる。
また、本明細書で使われる括弧は、“例えば(for example)”を意味することができる。具体的に、“予測(イントラ予測)”で表示された場合、“予測”の一例として“イントラ予測”が提案されたものである。他の表現としては、本明細書の“予測”は、“イントラ予測”に制限(limit)されるものではなく、“イントラ予測”が“予測”の一例として提案されたものである。また、“予測(即ち、イントラ予測)”で表示された場合にも、“予測”の一例として“イントラ予測”が提案されたものである。
本明細書において、一つの図面内で個別的に説明される技術的特徴は、個別的に具現されることもでき、同時に具現されることもできる。
図1は、本文書が適用されることができるビデオ/映像コーディングシステムの例を概略的に示す。
図1を参照すると、ビデオ/映像コーディングシステムは、ソースデバイス及び受信デバイスを含むことができる。ソースデバイスは、エンコーディングされたビデオ(video)/映像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置、及びレンダラを含むことができる。前記エンコーディング装置は、ビデオ/映像エンコーディング装置と呼ばれることができ、前記デコーディング装置は、ビデオ/映像デコーディング装置と呼ばれることができる。送信機は、エンコーディング装置に含まれることができる。受信機は、デコーディング装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
ビデオソースは、ビデオ/映像のキャプチャ、合成または生成過程などを介してビデオ/映像を取得することができる。ビデオソースは、ビデオ/映像キャプチャデバイス及び/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/映像が生成されることができ、この場合、ビデオ/映像キャプチャ過程を関連データが生成される過程に代替されることができる。
エンコーディング装置は、入力ビデオ/映像をエンコーディングすることができる。エンコーディング装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を実行することができる。エンコーディングされたデータ(エンコーディングされたビデオ/映像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
送信部は、ビットストリーム形態で出力されたエンコーディングされたビデオ/映像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/映像をデコーディングすることができる。
レンダラは、デコーディングされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
図2は、本文書が適用されることができるビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置とは、映像エンコーディング装置を含むことができる。
図2に示すように、エンコーディング装置200は、画像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコーディング部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を備えて構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を備えることができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。レジデュアル処理部230は、減算部(subtractor、231)をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。上述した画像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250、及びフィルタリング部260は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体によって構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
画像分割部210は、エンコーディング装置200に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/またはターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/またはターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本開示に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、前記予測ユニット及び前記変換ユニットは、各々上述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を導く単位及び/または変換係数からレジデュアル信号(residual signal)を導く単位であることができる。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)等の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
減算部231は、入力映像信号(原本ブロック、原本サンプルまたは原本サンプルアレイ)から、予測部220から出力された予測信号(予測されたブロック、予測サンプルまたは予測サンプルアレイ)を減算してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルまたはレジデュアルサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。予測部220は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部220は、現在ブロックまたはCU単位でイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができる。予測部は、各予測モードに対する説明で後述するように、予測モード情報など、予測に関する多様な情報を生成してエントロピーエンコーディング部240に伝達できる。予測に関する情報は、エントロピーエンコーディング部240でエンコーディングされてビットストリーム形態で出力されることができる。
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードとマージモードとの場合に、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
予測部220は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用できる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy、IBC)を実行することもできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。
インター予測部221及び/またはイントラ予測部222を介して生成された予測信号は、復元信号を生成するために利用され、またはレジデュアル信号を生成するために利用されることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)などを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとする時、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない可変の大きさのブロックにも適用されることができる。
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に送信され、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコーディングしてビットストリームで出力できる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列でき、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような多様なエンコーディング方法を実行することができる。エントロピーエンコーディング部240は、量子化された変換係数外にビデオ/イメージの復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別途にエンコーディングすることもできる。エンコーディングされた情報(例えば、エンコーディングされたビデオ/映像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信または格納されることができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書で後述されるシグナリング/送信される情報及び/またはシンタックス要素は、前述したエンコーディング手順を介してエンコーディングされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/または通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。エントロピーエンコーディング部240から出力された信号は、送信する送信部(図示せず)及び/または格納する格納部(図示せず)がエンコーディング装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピーエンコーディング部240に含まれることもできる。
量子化部233から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号を予測部220から出力された予測信号に加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルまたは復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使われることもできる。
一方、ピクチャエンコーディング及び/または復元過程でLMCS(luma mapping with chrom ascaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコーディング部290に伝達できる。フィルタリング関する情報は、エントロピーエンコーディング部290でエンコーディングされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部280で参照ピクチャとして使われることができる。エンコーディング装置は、これを介してインター予測が適用される場合、エンコーディング装置200とデコーディング装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部221に伝達できる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達できる。
図3は、本文書が適用されることができるビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図3に示すように、デコーディング装置300は、エントロピーデコーディング部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を備えて構成されることができる。予測部330は、インター予測部331及びイントラ予測部332を備えることができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)321を備えることができる。上述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/画像情報を含むビットストリームが入力されれば、デコーディング装置300は、図3のエンコーディング装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/またはターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコーディング装置300を介してデコーディング及び出力された復元画像信号は、再生装置を介して再生されることができる。
デコーディング装置300は、図2のエンコーディング装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコーディング部310を介してデコーディングされることができる。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングして映像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/または前記一般制限情報にも基づいてピクチャをデコーディングすることができる。本文書で後述されるシグナリング/受信される情報及び/またはシンタックス要素は、前記デコーディング手順を介してデコーディングされて前記ビットストリームから取得されることができる。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法を基礎にしてビットストリーム内の情報をデコーディングし、映像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳しくは、CABACエントロピーデコーディング方法は、ビットストリームで各シンタックス要素に該当するbinを受信し、デコーディング対象シンタックス要素情報と隣接及びデコーディング対象ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/binの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってbinの発生確率を予測してbinの算術デコーディング(arithmetic decoding)を実行して各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、コンテキストモデル決定後、次のシンボル/binのコンテキストモデルのためにデコーディングされたシンボル/binの情報を利用してコンテキストモデルをアップデートすることができる。エントロピーデコーディング部310でデコーディングされた情報のうち予測に関する情報は、予測部330に提供され、エントロピーデコーディング部310でエントロピーデコーディングが実行されたレジデュアルに対する情報、即ち、量子化された変換係数及び関連パラメータ情報は、逆量子化部321に入力されることができる。また、エントロピーデコーディング部310でデコーディングされた情報のうちフィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコーディング部310の構成要素である場合もある。一方、本文書によるデコーディング装置は、ビデオ/映像/ピクチャデコーディング装置と呼ばれることができ、前記デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、予測部330、加算部340、フィルタリング部350、及びメモリ360のうち少なくとも一つを含むことができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコーディング装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
予測部は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、一つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用できる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy、IBC)を実行することもできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像コーディングのために使われることができる。IBCは、基本的に現在ピクチャ内で予測を実行するが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように実行されることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち少なくとも一つを利用することができる。
イントラ予測部332は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置でき、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部332は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
インター予測部331は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部331は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。多様な予測モードに基づいてインター予測が実行されることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
加算部340は、取得されたレジデュアル信号を、予測部330から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることによって復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使われることができる。
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使われることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使われることもできる。
一方、ピクチャデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ60、具体的に、メモリ360のDPBに送信できる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部331で参照ピクチャとして使われることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコーディングされた)ブロックの動き情報及び/または既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部331に伝達できる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部332に伝達できる。
本明細書において、デコーディング装置300の予測部330、逆量子化部321、逆変換部322、及びフィルタリング部350などで説明された実施例は、各々、エンコーディング装置200の予測部220、逆量子化部234、逆変換部235、及びフィルタリング部260などにも同一または対応されるように適用されることができる。
一方、前述したように、ビデオコーディングを実行するにあたって圧縮効率を上げるために予測を実行する。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコーディング装置及びデコーディング装置で同様に導出され、前記エンコーディング装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコーディング装置にシグナリングすることで画像コーディング効率を上げることができる。デコーディング装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコーディング装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコーディング装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコーディング装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコーディング装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコーディング装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
図4は、本文書による多重変換技法を概略的に示す。
図4を参照すると、変換部は、前述した図2のエンコーディング装置内の変換部に対応されることができ、逆変換部は、前述した図2のエンコーディング装置内の逆変換部または図3のデコーディング装置内の逆変換部に対応されることができる。
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて1次変換を実行して(1次)変換係数を導出することができる(S410)。このような1次変換(primary transform)は、核心変換(core transform)と呼ばれることができる。ここで、前記1次変換は、多重変換選択(MTS:Multiple Transform Selection)に基づくことができ、1次変換で多重変換が適用される場合に多重核心変換と呼ばれることができる。
例えば、多重核心変換は、DCT(Discrete Cosine Transform)タイプ2(DCT-II)、DST(Discrete Sine Transform)タイプ7(DST-VII)、DCTタイプ8(DCT-VIII)及び/またはDSTタイプ1(DST-I)を追加的に使用して変換する方式を示すことができる。即ち、前記多重核心変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8、及び前記DSTタイプ1の中から選択された複数の変換カーネルに基づいて、空間ドメインのレジデュアル信号(または、レジデュアルブロック)を周波数ドメインの変換係数(または、1次変換係数)に変換する変換方法を示すことができる。ここで、前記1次変換係数は、変換部側で臨時変換係数と呼ばれることができる。
即ち、既存の変換方法が適用される場合、DCTタイプ2に基づいてレジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数が生成されることができる。ただし、これと違って、前記多重核心変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8及び/またはDSTタイプ1などに基づいて、レジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数(または、1次変換係数)が生成されることができる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1等は、変換タイプ、変換カーネル(kernel)または変換コア(core)と呼ばれることができる。このようなDCT/DST変換タイプは、基底関数に基づいて定義されることができる。
前記多重核心変換が実行される場合、前記変換カーネルの中から対象ブロックに対する垂直変換カーネル及び/または水平変換カーネルが選択されることができ、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が実行されることができる。ここで、前記水平変換は、前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は、前記対象ブロックの垂直成分に対する変換を示すことができる。前記垂直変換カーネル/水平変換カーネルは、レジデュアルブロックを含む対象ブロック(CUまたはサブブロック)の予測モード及び/または変換インデックスに基づいて適応的に決定されることができる。
または、例えば、MTSを適用して1次変換を実行する場合、特定基底関数を所定値に設定し、垂直変換または水平変換である時、どのような基底関数が適用されるかを組み合わせて変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向変換カーネルをtrTypeHorで表し、垂直方向変換カーネルをtrTypeVerで表す場合、0の値を有するtrTypeHorまたはtrTypeVerは、DCT2に設定されることができ、1の値を有するtrTypeHorまたはtrTypeVerは、DST7に設定されることができる。2の値を有するtrTypeHorまたはtrTypeVerは、DCT8に設定されることができる。
または、例えば、多数の変換カーネルセットのうちいずれか一つを指示するために、MTSインデックス(index)がエンコーディングされ、MTSインデックス情報がデコーディング装置にシグナリングされることができる。ここで、MTSインデックスは、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素で表すことができる。例えば、MTSインデックスが0である場合、trTypeHor及びtrTypeVer値が全て0であることを示すことができ、MTSインデックスが1である場合、trTypeHor及びtrTypeVer値が全て1であることを示すことができ、MTSインデックスが2である場合、trTypeHor値は2であり、かつtrTypeVer値は1であることを示すことができ、MTSインデックスが3である場合、trTypeHor値は1であり、かつtrTypeVer値は2であることを示すことができ、MTSインデックスが4である場合、trTypeHor及びtrTypeVer値が全て2であることを示すことができる。例えば、MTSインデックスによる変換カーネルセットは、以下の表のように示すことができる。
変換部は、前記(1次)変換係数に基づいて2次変換を実行して修正された(2次)変換係数を導出することができる(S420)。前記1次変換は、空間ドメインから周波数ドメインへの変換であり、前記2次変換は、(1次)変換係数間に存在する相関関係(correlation)を利用してさらに圧縮的な表現に変換することを示すことができる。
例えば、前記2次変換は、非分離変換(non-separable transform)を含むことができる。この場合、前記2次変換は、非分離2次変換(non-separable secondary transform、NSST)またはMDNSST(mode-dependent non-separable secondary transform)と呼ばれることができる。前記非分離2次変換は、前記1次変換を介して導出された(1次)変換係数を非分離変換マトリクス(non-separable transform matrix)に基づいて2次変換してレジデュアル信号に対する修正された変換係数(または、2次変換係数)を生成する変換を示すことができる。ここで、前記非分離変換マトリクスに基づいて前記(1次)変換係数に対して垂直変換及び水平変換を分離して(または、水平変換及び垂直変換を独立的に)適用せずに、一度に変換を適用することができる。
即ち、前記非分離2次変換は、前記(1次)変換係数の垂直成分及び水平成分を分離することなく、例えば、2次元信号(変換係数)を特定の決められた方向(例えば、行優先(row-first)方向または列優先(column-first)方向)を介して1次元信号に再整列した後、前記非分離変換マトリクスに基づいて修正された変換係数(または、2次変換係数)を生成する変換方法を示すことができる。
例えば、行優先方向(または、順序)は、M×Nブロックに対して1番目の行、2番目の行、...、N番目の行の順序によって一列に配置することを示すことができ、列優先方向(または、順序)は、M×Nブロックに対して1番目の列、2番目の列、...、M番目の列の順序によって一列に配置することを示すことができる。ここで、M及びNは、各々、ブロックの幅(W)及び高さ(H)を示すことができ、全て正の整数である。
例えば、前記非分離2次変換は、(1次)変換係数で構成されたブロック(以下、変換係数ブロックという)の左上段(top-left)領域に対して適用されることができる。例えば、前記変換係数ブロックの幅(W)及び高さ(H)が全て8以上である場合、8×8非分離2次変換が前記変換係数ブロックの左上段8×8領域に対して適用されることができる。また、前記変換係数ブロックの幅(W)及び高さ(H)が全て4以上であり、かつ前記変換係数ブロックの幅(W)または高さ(H)が8より小さい場合、4×4非分離2次変換が前記変換係数ブロックの左上段min(8、W)×min(8、H)領域に対して適用されることができる。ただし、実施例は、これに限定されるものではなく、例えば、前記変換係数ブロックの幅(W)または高さ(H)が全て4以上である条件のみ満たしても、4×4非分離2次変換が前記変換係数ブロックの左上段min(8、W)×min(8、H)領域に対して適用されることもできる。
具体的に、例えば、4×4入力ブロックが使われる場合、非分離2次変換は、下記のように実行されることができる。
前記4×4入力ブロックXは、以下のように示される。
例えば、前記Xのベクトル形態は、以下のように示される。
数式2を参照すると、
は、ベクトルXを示すことができ、行優先(row-first)順序によって数式1のXの2次元ブロックを1次元ベクトルに再配列して示される。
この場合、前記2次非分離変換は、以下のように計算されることができる。
ここで、
は、変換係数ベクトルを示すことができ、Tは、16×16(非分離)変換マトリクスを示すことができる。
前記数式3に基づいて16×1サイズの
が導出されることができ、前記
は、スキャン順序(水平、垂直または対角(diagonal)等)を介して4×4ブロックで再構成(re-organized)されることができる。ただし、前述した計算は、一例に過ぎず、非分離2次変換の計算複雑度を減らすためにHyGT(Hypercube-Givens Transform)などが非分離2次変換の計算のために使われることもできる。
一方、前記非分離2次変換は、モードベース(mode dependent)の変換カーネル(または、変換コア、変換タイプ)が選択されることもできる。ここで、モードは、イントラ予測モード及び/またはインター予測モードを含むことができる。
例えば、前述したように、前記非分離2次変換は、前記変換係数ブロックの幅(W)及び高さ(H)に基づいて決定された8×8変換または4×4変換に基づいて実行されることができる。例えば、8×8変換は、W及びHが全て8と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている8×8領域に適用されることができる変換を示すことができ、前記8×8領域は、該当変換係数ブロックの内部の左上段8×8領域である。また、これと類似するように、4×4変換は、W及びHが全て4と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている4×4領域に適用されることができる変換を示すことができ、前記4×4領域は、該当変換係数ブロックの内部の左上段4×4領域である。例えば、8×8変換カーネルマトリクスは、64×64/16×64行列になることができ、4×4変換カーネルマトリクスは、16×16/8×16行列になることができる。
このとき、モードベースの変換カーネル選択のために、8×8変換及び4×4変換の両方ともに対して非分離2次変換のための変換セット当たり2個ずつの非分離2次変換カーネルが構成されることができ、変換セットは、4個である。即ち、8×8変換に対して4個の変換セットが構成されることができ、4×4変換に対して4個の変換セットが構成されることができる。この場合、8×8変換に対する4個の変換セットには各々2個ずつの8×8変換カーネルが含まれることができ、4×4変換に対する4個の変換セットには各々2個ずつの4×4変換カーネルが含まれることができる。
ただし、前記変換のサイズ、前記セットの個数、及びセット内の変換カーネルの個数は、一例に過ぎず、8×8または4×4以外のサイズが使われることもでき、または、n個のセットが構成されることもでき、各セット内にk個の変換カーネルが含まれることもできる。ここで、n及びkは、各々、正の整数である。
例えば、前記変換セットは、NSSTセットと呼ばれることができ、前記NSSTセット内の変換カーネルは、NSSTカーネルと呼ばれることができる。例えば、前記変換セットの中からの特定セットの選択は、対象ブロック(CUまたはサブブロック)のイントラ予測モードに基づいて実行されることができる。
例えば、イントラ予測モードは、2個の非方向性(non-directinoal)または非角度性(non-angular)イントラ予測モードと、65個の方向性(directional)または角度性(angular)イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは、2番乃至66番の65個のイントラ予測モードを含むことができる。ただし、これは一例に過ぎず、本文書による実施例は、イントラ予測モードの個数が異なる場合にも適用されることができる。一方、場合によって、67番イントラ予測モードがさらに使用されることができ、前記67番イントラ予測モードは、LM(linear model)モードを示すこともできる。
図5は、65個の予測方向のイントラ方向性モードを例示的に示す。
図5を参照すると、左上向対角予測方向を有する34番イントラ予測モードを中心にして、水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードとを区分することができる。図5のHとVは、各々、水平方向性と垂直方向性を意味することができ、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を示すことができる。これは、モードインデックス値に対するオフセットを示すことができる。
例えば、2番乃至33番イントラ予測モードは、水平方向性を有することができ、34番乃至66番イントラ予測モードは、垂直方向性を有することができる。一方、34番イントラ予測モードは、厳密には水平方向性も垂直方向性もないとみることができるが、2次変換の変換セットを決定する観点で水平方向性に属すると分類されることができる。その理由は、34番イントラ予測モードを中心にして対称される垂直方向モードに対しては入力データをトランスポーズ(transpose)して使用し、34番イントラ予測モードに対しては水平方向モードに対する入力データ整列方式を使用するためである。ここで、入力データをトランスポーズすることは、2次元ブロックデータM×Nに対して行が列になり、列が行になってN×Mデータを構成することを意味することができる。
また、18番イントラ予測モード及び50番イントラ予測モードは、各々、水平イントラ予測モード(horizontal intra prediction mode)及び垂直イントラ予測モード(vertical intra prediction mode)を示すことができ、2番イントラ予測モードは、左側参照ピクセルを有して右上向の方向に予測するため、右上向対角(diagonal)イントラ予測モードと呼ばれることができ、同様に、34番イントラ予測モードは、右下向対角イントラ予測モードと呼ばれ、66番イントラ予測モードは、左下向対角イントラ予測モードと呼ばれることができる。
一方、非分離変換に特定セットが使われると決定されると、非分離2次変換インデックスを介して前記特定セット内のk個の変換カーネルの中から一つが選択されることができる。例えば、エンコーディング装置は、RD(rate-distortion)チェックに基づいて特定変換カーネルを示す非分離2次変換インデックスを導出することができ、前記非分離2次変換インデックスをデコーディング装置にシグナリングできる。例えば、デコーディング装置は、前記非分離2次変換インデックスに基づいて特定セット内のk個の変換カーネルの中から一つを選択することができる。例えば、0の値を有するNSSTインデックスは、1番目の非分離2次変換カーネルを示すことができ、1の値を有するNSSTインデックスは、2番目の非分離2次変換カーネルを示すことができ、2の値を有するNSSTインデックスは、3番目の非分離2次変換カーネルを示すことができる。または、0の値を有するNSSTインデックスは、対象ブロックに対して1番目の非分離2次変換が適用されないことを示すことができ、1乃至3の値を有するNSSTインデックスは、前記3個の変換カーネルを指すことができる。
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行し、修正された(2次)変換係数を取得することができる。前記修正された変換係数は、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
一方、前述したように、2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコーディングされてデコーディング装置にシグナリング及びエンコーディング装置内の逆量子化/逆変換部に伝達されることができる。
再び、図4を参照すると、逆変換部は、前述した変換部で実行された手順の逆順に一連の手順を実行することができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S450)、前記(1次)変換係数に対して1次(逆)変換を実行してレジデュアルブロック(レジデュアルサンプル)を取得することができる(S460)。ここで、前記1次変換係数は、逆変換部側で修正された(modified)変換係数と呼ばれることができる。エンコーディング装置及び/またはデコーディング装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成することができ、これに基づいて復元ピクチャを生成することができることは、前述した通りである。
一方、デコーディング装置は、2次逆変換適用可否決定部(または、2次逆変換の適用可否を決定する要素)及び2次逆変換決定部(または、2次逆変換を決定する要素)をさらに含むこともできる。例えば、2次逆変換適用可否決定部は、2次逆変換の適用可否を決定することができる。例えば、2次逆変換は、NSSTまたはRSTであり、2次逆変換適用可否決定部は、ビットストリームからパーシングまたは取得した2次変換フラグに基づいて2次逆変換の適用可否を決定することができる。または、例えば、2次逆変換適用可否決定部は、レジデュアルブロックの変換係数に基づいて2次逆変換の適用可否を決定することもできる。
2次逆変換決定部は、2次逆変換を決定することができる。このとき、2次逆変換決定部は、イントラ予測モードによって指定されたNSST(または、RST)変換セットに基づいて現在ブロックに適用される2次逆変換を決定することができる。または、1次変換決定方法に依存的に(dependon)2次変換決定方法が決定されることもできる。または、イントラ予測モードによって1次変換及び2次変換の多様な組み合わせが決定されることができる。例えば、2次逆変換決定部は、現在ブロックの大きさに基づいて2次逆変換が適用される領域を決定することもできる。
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して前記1次(分離)逆変換を実行することでレジデュアルブロック(レジデュアルサンプル)を取得することができる。エンコーディング装置及び/またはデコーディング装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成することができ、これに基づいて復元ピクチャを生成することができることは、前述した通りである。
一方、本文書では非分離2次変換による計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリクス(カーネル)の大きさが減少されたRST(reduced secondary transform)を適用することができる。
本文書において、RSTは、簡素化ファクタ(factor)によって大きさが減少された変換マトリクス(transform matrix)に基づいて対象ブロックに対するレジデュアルサンプルに対して実行される(簡素化)変換を意味することができる。これを実行する場合、変換マトリクスの大きさ減少によって変換時に要求される演算量が減少されることができる。即ち、RSTは、大きさが大きいブロックの変換または非分離変換時に発生する演算複雑度(complexity)問題を解消するために利用されることができる。
例えば、RSTは、減少された変換(reduced transform)、減少された2次変換(reduced secondary transform)、減少変換(reduction transform)、簡素化した変換(simplified transform)または簡素化変換(simple transform)等、多様な用語で呼ばれることができ、RSTが呼ばれる名称は、羅列された例示に限定されるものではない。または、RSTは、主に変換ブロックで0でない係数を含む低周波領域で行われるため、LFNST(Low-Frequency Non-Separable Transform)と呼ばれることができる。
一方、2次逆変換がRSTに基づいて行われる場合、エンコーディング装置200の逆変換部235とデコーディング装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書において、変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出することを意味することができる。
図6及び図7は、本文書の一実施例によるRSTを説明するための図である。
例えば、図6は、正方向減少された変換(forward reduced transform)が適用されることを説明するための図面であり、図7は、逆方向減少された変換(inverse reduced transform)が適用されることを説明するための図である。本文書において、対象ブロックは、コーディングが実行される現在ブロック、レジデュアルブロックまたは変換ブロックを示すことができる。
例えば、RSTではN次元ベクトル(N dimensional vector)が異なる空間に位置したR次元ベクトル(R dimensional vector)にマッピングされて減少された変換マトリクスが決定されることができる。ここで、N及びRは、各々、正の整数であり、Rは、Nより小さい。Nは、変換が適用されるブロックの一辺の長さ(length)の自乗または変換が適用されるブロックと対応される変換係数の総個数を意味することができ、簡素化ファクタは、R/N値を意味することができる。簡素化ファクタは、減少されたファクタ(reduced factor)、減少ファクタ(reduction factor)、簡素化したファクタ(simplified factor)または簡素化ファクタ(simple factor)等、多様な用語で呼ばれることができる。一方、Rは、減少された係数(reduced coefficient)で呼ばれることができるが、場合によっては、簡素化ファクタがRを意味することもできる。また、場合によって、簡素化ファクタは、N/R値を意味することもできる。
例えば、簡素化ファクタまたは減少された係数は、ビットストリームを介してシグナリングされることができるが、これに限定されるものではない。例えば、簡素化ファクタまたは減少された係数に対する既に定義された値が各エンコーディング装置200及びデコーディング装置300に格納されている場合があり、この場合、簡素化ファクタまたは減少された係数は、別途にシグナリングされない。
例えば、簡素化変換マトリクスのサイズ(R×N)は、通常の変換マトリクスのサイズ(N×N)より小さく、以下の数式のように定義されることができる。
例えば、図6に示す減少された変換(reduced transform)ブロック内のマトリクスTは、数式4のマトリクスTR×Nを示すことができる。図6のように対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリクスTR×Nが掛け算される場合、対象ブロックに対する変換係数が導出されることができる。
例えば、変換が適用されるブロックのサイズが8×8であり、Rが16である場合(即ち、R/N=16/64=1/4)、図6によるRSTは、以下の数式5のような行列演算で表現されることができる。この場合、メモリと掛け算演算が簡素化ファクタにより略1/4に減少されることができる。
本文書において、行列演算とは、行列を列ベクトルの左側に置き、行列と列ベクトルを掛け算して列ベクトルを得る演算として理解されることができる。
数式5において、r1乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができる。または、例えば、1次変換を適用して生成された変換係数である。数式5の演算結果に基づいて対象ブロックに対する変換係数ciが導出されることができる。
例えば、Rが16である場合、対象ブロックに対する変換係数c1乃至c16が導出されることができる。もし、RSTではなく、通常の(regular)変換が適用され、サイズが64×64(N×N)である変換マトリクスが、サイズが64×1(N×1)であるレジデュアルサンプルに掛け算された場合、対象ブロックに対する変換係数が64個(N個)導出されるが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少してエンコーディング装置200がデコーディング装置300に送信するデータの量が減少するため、エンコーディング装置200とデコーディング装置300との間の送信効率が増加できる。
変換マトリクスのサイズ観点を考慮すると、通常の変換マトリクスのサイズは、64×64(N×N)であり、それに対して、簡素化変換マトリクスのサイズは、16×64(R×N)に減少するため、通常の変換を実行する時と比較すると、RSTを実行する時にメモリ使用をR/N割合で減少させることができる。また、通常の変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化変換マトリクスを利用する場合、掛け算演算数をR/N割合で減少(R×N)させることができる。
一実施例において、エンコーディング装置200の変換部232は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を実行することによって対象ブロックに対する変換係数を導出することができる。このような変換係数は、デコーディング装置300の逆変換部に伝達されることができ、デコーディング装置300の逆変換部322は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて対象ブロックに対するレジデュアルサンプルを導出することができる。
一実施例による逆RSTマトリクスTN×Rのサイズは、通常の逆変換マトリクスのサイズN×Nより小さいN×Rであり、数式4に示す簡素化変換マトリクスTR×Nとトランスポーズ(transpose)関係にある。
図7に示す減少された逆変換(reduced inverse transform)ブロック内のマトリクスTtは、逆RSTマトリクスTR×N
Tを示すことができる。ここで、上付き文字Tは、トランスポーズを示すことができる。図7のように対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算される場合、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルが導出されることができる。逆RSTマトリクスTR×N
Tは、(TR×N)T
N×Rで表現することもできる。
より具体的に、2次逆変換で逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算されると、対象ブロックに対する修正された変換係数が導出されることができる。一方、逆1次変換で逆RSTが適用されることができ、この場合、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算されると、対象ブロックに対するレジデュアルサンプルが導出されることができる。
一実施例において、逆変換が適用されるブロックのサイズが8×8であり、Rが16である場合(即ち、R/N=16/64=1/4)、図7によるRSTは、以下の数式6のような行列演算で表現されることができる。
数式6において、c1乃至c16は、対象ブロックに対する変換係数を示すことができる。数式6の演算結果に基づいて対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すrjが導出されることができる。即ち、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すr1乃至rNが導出されることができる。
逆変換マトリクスのサイズ観点を考慮すると、通常の逆変換マトリクスのサイズは、64×64(N×N)であり、それに対して、簡素化逆変換マトリクスのサイズは、64×16(N×R)に減少するため、通常の逆変換を実行する時と比較すると、逆RSTを実行する時にメモリ使用をR/N割合で減少させることができる。また、通常の逆変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化逆変換マトリクスを利用する場合、掛け算演算数をR/N割合で減少(N×R)させることができる。
一方、8×8RSTに対しても変換セットを構成して適用できる。即ち、変換セットによって該当8×8RSTが適用されることができる。一つの変換セットは、画面内の予測モードによって2個または3個の変換カーネルで構成されているため、2次変換を適用しない場合まで含んで最大4個の変換の中から一つを選択するように構成されることができる。2次変換を適用しない時の変換は、恒等行列が適用されたと見なされる。4個の変換に対して各々0、1、2または3のインデックスを付与するとした時(例えば、0番インデックスを恒等行列、即ち、2次変換を適用しない場合に割り当てることができる)、NSSTインデックスというシンタックス要素(syntax element)を変換係数ブロック毎にシグナリングして適用される変換を指定することができる。即ち、NSSTインデックスを介して8×8左上段ブロックに対して、8×8NSSTを指定することができ、RST構成では8×8RSTを指定することができる。8×8NSST及び8×8RSTは、変換の対象になる対象ブロックのW及びHが全て8と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている8×8領域に適用されることができる変換を示すことができ、前記8×8領域は、該当変換係数ブロックの内部の左上段8×8領域である。また、これと類似するように、4×4NSST及び4×4RSTは、対象ブロックのW及びHが全て4と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている4×4領域に適用されることができる変換を示すことができ、前記4×4領域は、該当変換係数ブロックの内部の左上段4×4領域である。
一方、例えば、エンコーディング装置は、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)またはCABAC(context-adaptive binary arithmetic coding)などのような多様なコーディング方法に基づいてシンタックス要素の値またはレジデュアルに関する変換係数の量子化された値などをエンコーディングしてビットストリームを導出することができる。また、デコーディング装置は、指数ゴロム符号化、CAVLCまたはCABACなどのような多様なコーディング方法に基づいてビットストリームをデコーディングし、映像復元に必要なシンタックス要素の値またはレジデュアルに関する変換係数の量子化された値などを導出することができる。
例えば、前述したコーディング方法は、後述する内容のように実行されることができる。
図8は、シンタックス要素をエンコーディングするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。
例えば、CABACのコーディング過程でエンコーディング装置は、入力信号が二進値でないシンタックス要素である場合には、前記入力信号の値を二進化(binarization)して入力信号を二進値に変換できる。また、前記入力信号が既に二進値である場合(即ち、前記入力信号の値が二進値である場合)には、二進化が実行されずに、そのまま前記入力信号が利用されることができる。ここで、二進値を構成する各々の二進数0または1をbinということができる。例えば、二進化された後の二進ストリングが110である場合、1、1、及び0の各々を一つのbinと表すことができる。一つのシンタックス要素に対する前記binは、前記シンタックス要素の値を示すことができる。このような二進化は、Truncated Rice binarization processまたはFixed-length binarization processなど、多様な二進化方法に基づくことができ、対象シンタックス要素に対する二進化方法は、あらかじめ定義されることができる。前記二進化手順は、エントロピーエンコーディング部内の二進化部により実行されることができる。
以後、前記シンタックス要素の二進化されたbinは、正規(regular)コーディングエンジンまたはバイパス(bypass)コーディングエンジンに入力されることができる。エンコーディング装置の正規コーディングエンジンは、該当binに対して確率値を反映するコンテキストモデル(context model)を割り当てることができ、割り当てられたコンテキストモデルに基づいて該当binをエンコーディングすることができる。エンコーディング装置の前記正規コーディングエンジンは、各binに対するコーディングを実行した後に該当binに対するコンテキストモデルを更新することができる。前述した内容のようにコーディングされるbinは、コンテキストコーディングされたbin(context-coded bin)と表すことができる。
一方、前記シンタックス要素の二進化されたbinが前記バイパスコーディングエンジンに入力される場合には、次のようにコーディングされることができる。例えば、エンコーディング装置のバイパスコーディングエンジンは、入力されたbinに対して確率を推定する手順と、コーディング後に前記binに適用した確率モデルを更新する手順と、を省略することができる。バイパスコーディングが適用される場合、エンコーディング装置は、コンテキストモデルを割り当てる代わりに均一な確率分布を適用して入力されるbinをコーディングすることができ、これを介してエンコーディング速度を向上させることができる。前述した内容のようにコーディングされるbinは、バイパスbin(bypass bin)と表すことができる。
エントロピーデコーディングは、前述したエントロピーエンコーディングと同じ過程を逆順に実行する過程を示すことができる。
デコーディング装置(エントロピーデコーディング部)は、エンコーディングされた映像/ビデオ情報をデコーディングすることができる。前記映像/ビデオ情報は、パーティショニング関連情報、予測関連情報(例えば、インター/イントラ予測区分情報、イントラ予測モード情報、インター予測モード情報等)、レジデュアル情報またはインループフィルタリング関連情報などを含むことができ、またはそれに関する多様なシンタックス要素を含むことができる。前記エントロピーコーディングは、シンタックス要素単位で実行されることができる。
デコーディング装置は、対象シンタックス要素に対する二進化を実行することができる。ここで、前記二進化は、Truncated Rice binarization processまたはFixed-length binarization processなど、多様な二進化方法に基づくことができ、対象シンタックス要素に対する二進化方法は、あらかじめ定義されることができる。デコーディング装置は、前記二進化手順を介して対象シンタックス要素の使用可能値に対する使用可能binストリング(binストリング候補)を導出することができる。前記二進化手順は、エントロピーデコーディング部内の二進化部により実行されることができる。
デコーディング装置は、ビットストリーム内の入力ビットから前記対象シンタックス要素に対する各binを順次にデコーディングまたはパーシングしながら、導出されたbinストリングを該当シンタックス要素に対する使用可能binストリングと比較できる。もし、導出されたbinストリングが前記使用可能binストリングのうち一つと同じ場合、該当binストリングに対応する値が該当シンタックス要素の値として導出される。もし、それとも、前記ビットストリーム内の次のビットをさらにパーシング後、前述した手順を再び実行することができる。このような過程を介してビットストリーム内に特定情報(または、特定シンタックス要素)に対する開始ビットや終了ビットを使用することなく、可変長さビットを利用して該当情報をシグナリングすることができる。これを介して低い値に対しては相対的に少ないビットを割り当てることができ、全般的なコーディング効率を上げることができる。
デコーディング装置は、CABACまたはCAVLCなどのエントロピーコーディング技法に基づいて、ビットストリームから前記binストリング内の各binをコンテキストモデルに基づいてまたはバイパスに基づいてデコーディングできる
シンタックス要素がコンテキストモデルに基づいてデコーディングされる場合、デコーディング装置は、ビットストリームを介して前記シンタックス要素に該当するbinを受信することができ、前記シンタックス要素とデコーディング対象ブロックまたは隣接ブロックのデコーディング情報または以前ステップでデコーディングされたシンボル/binの情報を利用してコンテキストモデル(context model)を決定することができ、決定されたコンテキストモデルによって前記受信されたbinの発生確率を予測してbinの算術デコーディング(arithmetic decoding)を実行することで前記シンタックス要素の値を導出することができる。以後、前記決定されたコンテキストモデルに基づいて、次にデコーディングされるbinのコンテキストモデルがアップデートされることができる。
コンテキストモデルは、コンテキストコーディング(正規コーディング)されるbin別に割当及びアップデートされることができ、コンテキストモデルは、コンテキストインデックス(ctxIdx:context index)またはコンテキストインデックス増減(ctxInc:context index increment)に基づいて指示されることができる。ctxIdxは、ctxIncに基づいて導出されることができる。具体的に、例えば、前記正規コーディングされるbinの各々に対するコンテキストモデルを示すctxIdxは、ctxInc及びコンテキストインデックスオフセット(ctxIdxOffset:context index offset)の和として導出されることができる。例えば、前記ctxIncは、各bin別に異なるように導出されることができる。前記ctxIdxOffsetは、前記ctxIdxの最小値(the lowest value)で示される。前記ctxIdxOffsetは、一般的に他のシンタックス要素に対するコンテキストモデルとの区分のために利用される値であり、一つのシンタックス要素に対するコンテキストモデルは、ctxIncに基づいて区分または導出されることができる。
エントロピーエンコーディング手順で、正規コーディングエンジンを介してエンコーディングを実行するか、または、バイパスコーディングエンジンを介してエンコーディングを実行するかが決定されることができ、これによって、コーディング経路がスイッチングされることができる。エントロピーデコーディングは、エントロピーエンコーディングと同じ過程を逆順に実行することができる。
一方、例えば、シンタックス要素がバイパスデコーディングされる場合、デコーディング装置は、ビットストリームを介して前記シンタックス要素に該当するbinを受信することができ、均一な確率分布を適用して入力されるbinをデコーディングすることができる。この場合、デコーディング装置は、シンタックス要素のコンテキストモデルを導出する手順と、デコーディング以後に前記binに適用したコンテキストモデルを更新する手順と、は、省略されることができる。
前述したように、レジデュアルサンプルは、変換、量子化過程を経て量子化された変換係数として導出されることができる。量子化された変換係数は、変換係数とも呼ばれる。この場合、ブロック内の変換係数は、レジデュアル情報の形態でシグナリングされることができる。前記レジデュアル情報は、レジデュアルコーディングに関するシンタックスまたはシンタックス要素を含むことができる。例えば、エンコーディング装置は、レジデュアル情報をエンコーディングしてビットストリーム形態で出力でき、デコーディング装置は、ビットストリームからレジデュアル情報をデコーディングしてレジデュアル(量子化された)変換係数を導出することができる。前記レジデュアル情報は、後述するように該当ブロックに対して変換が適用されたか、ブロック内の最後の有効変換係数の位置がどこであるか、サブブロック内の有効変換係数が存在するか、または有効変換係数の大きさ/符号がどうであるかなどを示すシンタックス要素を含むことができる。
一方、例えば、図2のエンコーディング装置内の予測部または図3のデコーディング装置内の予測部は、イントラ予測を実行することができる。イントラ予測に対してより詳細に説明すると、下記の通りである。
イントラ予測は、現在ブロックが属するピクチャ(以下、現在ピクチャという)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。前記現在ブロックの隣接参照サンプルは、nW×nH大きさの現在ブロックの左側(left)境界に隣接したサンプル及び左下側(bottom-left)に隣接した総2×nH個のサンプル、現在ブロックの上側(top)境界に隣接したサンプル及び右上側(top-right)に隣接した総2×nW個のサンプル及び現在ブロックの左上側(top-left)に隣接した1個のサンプルを含むことができる。または、前記現在ブロックの隣接参照サンプルは、複数列の上側隣接サンプル及び複数行の左側隣接サンプルを含むこともできる。また、前記現在ブロックの隣接参照サンプルは、nW×nH大きさの現在ブロックの右側(right)境界に隣接した総nH個のサンプル、現在ブロックの下側(bottom)境界に隣接した総nW個のサンプル及び現在ブロックの右下側(bottom-right)に隣接した1個のサンプルを含むこともできる。
ただし、現在ブロックの隣接参照サンプルのうち一部は、まだデコーディングされない、または利用可能でない場合がある。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)し、予測に使用する隣接参照サンプルを構成することができる。または、利用可能なサンプルの補間(interpolation)を介して予測に使用する隣接参照サンプルを構成することができる。
隣接参照サンプルが導出された場合、(i)現在ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを誘導することができ、(ii)現在ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて前記予測サンプルを誘導することもできる。(i)の場合は、非方向性(non-directional)モードまたは非角度(non-angular)モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれることができる。
また、前記隣接参照サンプルのうち前記現在ブロックの予測サンプルを基準にして、前記現在ブロックのイントラ予測モードの予測方向の反対方向に位置する前記第2の隣接サンプルと前記第1の隣接サンプルとの補間を介して前記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(LIP:Linear interpolation intra prediction)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LM(linear model)モードと呼ばれることができる。また、フィルタリングされた隣接参照サンプルに基づいて前記現在ブロックの臨時予測サンプルを導出し、前記既存の隣接参照サンプル、即ち、フィルタリングされない隣接参照サンプルのうち、前記イントラ予測モードによって導出された少なくとも一つの参照サンプルと前記臨時予測サンプルとを加重和(weighted sum)して前記現在ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。また、現在ブロックの隣接多重参照サンプルラインの中から最も予測正確度が高い参照サンプルラインを選択して該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、この時に使われた参照サンプルラインをデコーディング装置に指示(シグナリング)する方法でイントラ予測コーディングを実行することができる。前述した場合は、multi-reference line(MRL)intra predictionまたはMRLベースのイントラ予測と呼ばれることができる。また、現在ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、前記サブパーティション単位で隣接参照サンプルを導出して利用できる。即ち、この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同じく適用され、前記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、intra sub-partitions(ISP)またはISPベースのイントラ予測と呼ばれることができる。
前述したイントラ予測方法は、イントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。前記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、多様な用語で呼ばれることができる。例えば、前記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、及びISPのうち少なくとも一つを含むことができる。前記LIP、PDPC、MRLまたはISPなどの特定イントラ予測タイプを除外した一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、前記のような特定イントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
即ち、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、及びイントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
一方、前述したイントラ予測タイプのうちISPは、現在ブロックを水平方向または垂直方向に分割し、分割されたブロック単位でイントラ予測を実行することができる。即ち、ISPは、前記現在ブロックを水平方向または垂直方向に分割してサブブロックを導出することができ、前記サブブロックの各々に対するイントラ予測を実行することができる。この場合、分割されたサブブロック単位でエンコーディング/デコーディングを実行して復元ブロック(reconstructed block)が生成されることができ、前記復元ブロックは、次に分割されたサブブロックの参照ブロックとして使われることができる。ここで、サブブロックは、イントラサブパーティション(Intra Sub-Partition)とも呼ばれる。
例えば、ISPが適用される場合、前記現在ブロックのサイズに基づいて、現在ブロックは、垂直方向(vertical)または水平方向(horizontal)に2個または4個のサブパーティションに分割されることができる。
例えば、ISPの適用のために、前記ISPの適用可否を示すフラグは、ブロック単位で送信されることができ、前記ISPが現在ブロックに適用される場合、分割タイプが水平であるか、または、垂直であるか、即ち、前記分割方向が水平方向であるか、または、垂直方向であるかを示すフラグがエンコーディング/デコーディングされることができる。前記ISPの適用可否を示すフラグは、ISPフラグと呼ばれることができ、前記ISPフラグは、intra_subpartitions_mode_flagシンタックス要素で示される。また、前記分割タイプを示すフラグは、ISP分割フラグと呼ばれることができ、前記ISP分割フラグは、intra_subpartitions_split_flagシンタックス要素で示される。
例えば、ISPフラグまたはISP分割フラグにより現在ブロックにISPが適用されないことを示す情報(IntraSubPartitionsSplitType==ISP_NO_SPLIT)、水平方向に分割されることを示す情報(IntraSubPartitionsSplitType==ISP_HOR_SPLIT)または垂直方向に分割されることを示す情報(IntraSubPartitionsSplitType==ISP_VER_SPLIT)が示される。例えば、前記ISPフラグまたはISP分割フラグは、ブロックのサブパーティショニングに関するISP関連情報とも呼ばれる。
一方、前述したイントラ予測タイプ外にもALWIP(affine linear weighted intra prediction)が使われることができる。前記ALWIPは、LWIP(linear weighted intra prediction)、MWIP(matrix weighted intra prediction)またはMIP(matrix based intra prediction)とも呼ばれる。前記ALWIPが現在ブロックに対して適用される場合、i)アベレージング(averaging)手順が実行された隣接参照サンプルを利用し、ii)マトリクスベクトルマルチプリケーション(matrix-vector-multiplication)手順を実行し、iii)必要によって、水平/垂直補間(interpolation)手順をさらに実行することで、前記現在ブロックに対する予測サンプルを導出することができる。
前記ALWIPのために使われるイントラ予測モードは、前述したLIP、PDPC、MRLまたはISPイントラ予測や、ノーマルイントラ予測で使われるイントラ予測モードと異なるように構成されることができる。前記ALWIPのためのイントラ予測モードは、ALWIPモードと呼ばれることができる。例えば、前記ALWIPのためのイントラ予測モードによって、前記マトリクスベクトルマルチプリケーションで使われるマトリクス及びオフセットが異なるように設定されることができる。ここで、前記マトリクスは、(アフィン)加重値メトリックスと呼ばれることができ、前記オフセットは、(アフィン)オフセットベクトルまたは(アフィン)バイアス(bias)ベクトルと呼ばれることができる。本文書において、ALWIPのためのイントラ予測モードは、ALWIPモード、ALWIPイントラ予測モード、LWIPモード、LWIPイントラ予測モード、MWIPモード、MWIPイントラ予測モード、MIPモードまたはMIPイントラ予測モードとも呼ばれる。具体的なALWIP方法に対しては後述する。
図9は、8×8ブロックに対するMIPを説明するための図である。
幅W及び高さHの四角形ブロックのサンプルを予測するために、MIPは、ブロックの左側境界(boundary)隣接のサンプル及び上側境界隣接のサンプルを利用することができる。ここで、左側境界隣接のサンプルは、ブロックの左側境界に隣接した1個のラインに位置したサンプルを示すことができ、復元されたサンプルを示すことができる。上側境界隣接のサンプルは、ブロックの上側境界に隣接した1個のラインに位置したサンプルを示すことができ、復元されたサンプルを示すことができる。
例えば、復元されたサンプルが使用可能でない場合、従来のイントラ予測と同様に、復元されたサンプルを生成または導出することができ、これを利用することもできる。
予測信号(または、予測サンプル)は、アベレージング過程(averaging process)、マトリクスベクトルマルチプリケーション過程(matrix vector multiplication process)、及び(線形)補間過程((linear)Interpolation process)に基づいて生成されることができる。
例えば、アベレージング過程は、平均化を介して境界の外のサンプルを抽出する過程である。例えば、前記抽出するサンプルは、幅W及び高さHが全て4である場合、4個のサンプルであり、その他の場合、8個のサンプルである。例えば、図9において、bdryleft及びbdrytopは、各々、抽出された左側サンプル及び上側サンプルを示すことができる。
例えば、マトリクスベクトルマルチプリケーション過程は、平均化されたサンプルを入力してマトリクスベクトルマルチプリケーションを実行する過程である。または、オフセットがさらに追加されることができる。例えば、図9において、Akは、マトリクスを示すことができ、bkは、オフセットを示すことができ、bdryredは、アベレージング過程を介して抽出されたサンプルに対する減少された(reduced)信号である。または、bdryredは、bdryleft及びbdrytopに対する減少された情報である。結果は、原本ブロック内のサブサンプリングされたサンプルのセットに対する減少された予測信号(predred)である。
例えば、(線形)補間過程は、線形補間によりサブサンプリングされたセットに対する予測信号から残りの位置で予測信号が生成される過程である。ここで、線形補間は、各方向での単一線形補間を示すことができる。例えば、図9において、ブロック内に灰色で表示された減少された予測信号(predred)及び隣接境界サンプルに基づいて線形補間を実行することができ、これを介してブロック内の全ての予測サンプルを導出することができる。
例えば、予測信号(または、予測ブロック、予測サンプル)を生成するために要求されるマトリクス(図9において、Ak)及びオフセットベクトル(図9において、bk)は、マトリクスの3個のセット(S0、S1、及びS2)から有してくることができる。例えば、セットS0は、18個のマトリクス(A0
i、i=0、1、...、17)及び18個のオフセットベクトル(b0
i、i=0、1、...、17)で構成されることができる。ここで、18個のマトリクスの各々は、16個の行及び4個の列を有することができ、18個のオフセットベクトルは、各々、16サイズを有することができる。前記セットS0のマトリクス及びオフセットベクトルは、4×4サイズのブロックに使われることができる。例えば、セットS1は、10個のマトリクス(A1
i、i=0、1、...、9)及び10個のオフセットベクトル(b1
i、i=0、1、...、9)で構成されることができる。ここで、10個のマトリクスの各々は、16個の行及び8個の列を有することができ、10個のオフセットベクトルは、各々、16サイズを有することができる。前記セットS1のマトリクス及びオフセットベクトルは、4×8、8×4または8×8サイズのブロックに使われることができる。例えば、セットS2は、6個のマトリクス(A2
i、i=0、1、...、5)及び6個のオフセットベクトル(b2
i、i=0、1、...、5)で構成されることができる。ここで、6個のマトリクスの各々は、64個の行及び8個の列を有することができ、6個のオフセットベクトルは、各々、64サイズを有することができる。前記セットS2のマトリクス及びオフセットベクトルは、残りの全てのブロックに使われることができる。
一方、本文書の一実施例は、MIPが適用されるブロックに対してLFNSTインデックス情報をシグナリングすることができる。または、エンコーディング装置は、MIPが適用されるブロックの変換のためのLFNSTインデックス情報をエンコーディングしてビットストリームを生成することができ、デコーディング装置は、ビットストリームをパーシングまたはデコーディングしてMIPが適用されるブロックの変換のためのLFNSTインデックス情報を取得することができる。
例えば、LFNSTインデックス情報は、LFNST変換セットを構成する変換個数によって、これを区分するための情報である。例えば、LFNSTインデックス情報に基づいてMIPが適用されたイントラ予測が実行されるブロックに対して最適のLFNSTカーネルが選択されることができる。例えば、LFNSTインデックス情報は、st_idxシンタックス要素またはlfnst_idxシンタックス要素で示される。
例えば、LFNSTインデックス情報(または、st_idxシンタックス要素)は、以下の表のようにシンタックスに含まれることができる。
前記表2乃至表5は、一つのシンタックスまたは情報を連続して示すものである。
例えば、前記表2乃至表5において、intra_mip_flagシンタックス要素、intra_mip_mpm_flagシンタックス要素、intra_mip_mpm_idxシンタックス要素、intra_mip_mpm_remainderシンタックス要素またはst_idxシンタックス要素が示す情報またはセマンティクス(sematics)は、以下の表の通りである。
例えば、intra_mip_flagシンタックス要素は、ルマサンプルまたは現在ブロックにMIPが適用されるかに対する情報を示すことができる。または、例えば、intra_mip_mpm_flagシンタックス要素、intra_mip_mpm_idxシンタックス要素またはintra_mip_mpm_remainderシンタックス要素は、MIPが適用される場合、現在ブロックに適用されるイントラ予測モードに対する情報を示すことができる。または、例えば、st_idxシンタックス要素は、現在ブロックのためのLFNSTに適用される変換カーネル(LFNSTカーネル)に対する情報を示すことができる。即ち、st_idxシンタックス要素は、LFNST変換セット内に変換カーネルのうち一つを示す情報である。ここで、st_idxシンタックス要素は、lfnst_idxシンタックス要素またはLFNSTインデックス情報で表すこともできる。
図10は、MIP及びLFNSTが適用される方法を説明する流れ図である。
一方、本文書の他の実施例は、MIPが適用されるブロックに対してLFNSTインデックス情報をシグナリングしないこともある。または、エンコーディング装置は、MIPが適用されるブロックの変換のためのLFNSTインデックス情報を除外した映像情報をエンコーディングしてビットストリームを生成することができ、デコーディング装置は、ビットストリームをパーシングまたはデコーディングし、MIPが適用されるブロックの変換のためのLFNSTインデックス情報無く前記ブロックの変換過程を実行することができる。
例えば、LFNSTインデックス情報がシグナリングされない場合、LFNSTインデックス情報は、基本値として誘導されることができる。例えば、基本値として誘導されるLFNSTインデックス情報は、0値である。例えば、値が0であるLFNSTインデックス情報は、該当ブロックにLFNSTが適用されないことを示すことができる。この場合、LFNSTインデックス情報を送信しないことによってLFNSTインデックス情報をコーディングするためのビット量が低減される効果がある。また、MIP及びLFNSTが同時に適用されることを防止して複雑度を減少させることができ、これによる遅延(latency)低減効果もある。
図10を参照すると、まず該当ブロックにMIPが適用されるかが判断されることができる。即ち、intra_mip_flagシンタックス要素の値が1であるか、または、0であるかを判断することができる(S1000)。例えば、intra_mip_flagシンタックス要素の値が1である場合、trueまたはyesと見ることができ、該当ブロックにMIPが適用されることを示すことができる。したがって、該当ブロックにMIP予測を実行することができる(S1010)。即ち、MIP予測を実行して該当ブロックに対する予測ブロックを導出することができる。以後、逆1次変換(inverse primary transform)手順が実行されることができ(S1020)、イントラ復元(intra reconstruction)手順が実行されることができる(S1030)。即ち、ビットストリームから取得される変換係数に対して逆1次変換を実行してレジデュアルブロックを導出することができ、前記MIP予測による予測ブロック及び前記レジデュアルブロックに基づいて復元ブロックを生成することができる。即ち、MIPが適用されるブロックに対するLFNSTインデックス情報を含まない。または、MIPが適用されるブロックに対してLFNSTを適用しない。
または、例えば、intra_mip_flagシンタックス要素の値が0である場合、falseまたはnoと見ることができ、該当ブロックにMIPが適用されないことを示すことができる。即ち、該当ブロックには従来のイントラ予測が適用されることができる(S1040)。即ち、従来のイントラ予測を実行して該当ブロックに対する予測ブロックを導出することができる。以後、LFNSTインデックス情報に基づいて該当ブロックにLFNSTが適用されるかが判断されることができる。即ち、st_idxシンタックス要素の値が0より大きいかを判断することができる(S1050)。例えば、st_idxシンタックス要素の値が0より大きい場合、前記st_idxシンタックス要素が示す変換カーネルを利用して逆LFNST変換(inverse LFNST transform)手順を実行することができる(S1060)。または、st_idxシンタックス要素の値が0より大きくない場合、これは該当ブロックにLFNSTが適用されないことを示すことができ、逆LFNST変換手順を実行しない。以後、逆1次変換(inverse primary transform)手順が実行されることができ(S1020)、イントラ復元(intra reconstruction)手順が実行されることができる(S1030)。即ち、ビットストリームから取得される変換係数に対して逆1次変換を実行してレジデュアルブロックを導出することができ、前記従来イントラ予測による予測ブロック及び前記レジデュアルブロックに基づいて復元ブロックを生成することができる。
整理すると、MIPが適用される場合、LFNSTインデックス情報の復号化無くMIP予測ブロックを生成し、受信された係数(coefficient)に対する逆1次変換を適用して最終的なイントラ復元信号を生成することができる。
それに対して、MIPが適用されない場合、LFNSTインデックス情報を復号化し、そのフラグ(または、LFNSTインデックス情報またはst_idxシンタックス要素)値が0より大きい場合、受信された係数(coefficient)に対して逆LFNST変換及び逆1次変換を適用して最終的なイントラ復元信号を生成することができる。
例えば、前述した手順のために、LFNSTインデックス情報(または、st_idxシンタックス要素)は、MIPが適用されるかに対する情報(または、intra_mip_flagシンタックス要素)に基づいてシンタックスまたは映像情報に含まれることができ、シグナリングされることができる。または、LFNSTインデックス情報(または、st_idxシンタックス要素)は、MIPが適用されるかに対する情報(または、intra_mip_flagシンタックス要素)を参照して選択的に構成/パーシング/シグナリング/送信/受信されることができる。例えば、LFNSTインデックス情報は、st_idxシンタックス要素またはlfnst_idxシンタックス要素で示される。
例えば、LFNSTインデックス情報(または、st_idxシンタックス要素)は、表7のように含まれることができる。
例えば、表7を参照すると、st_idxシンタックス要素は、intra_mip_flagシンタックス要素に基づいて含まれることができる。即ち、intra_mip_flagシンタックス要素の値が0(!intra_mip_flag)である場合、st_idxシンタックス要素が含まれることができる。
または、例えば、LFNSTインデックス情報(または、lfnst_idxシンタックス要素)は、表8のように含まれることもできる。
例えば、表8を参照すると、lfnst_idxシンタックス要素は、intra_mip_flagシンタックス要素に基づいて含まれることができる。即ち、intra_mip_flagシンタックス要素の値が0(!intra_mip_flag)である場合、lfnst_idxシンタックス要素が含まれることができる。
例えば、表7または表8を参照すると、st_idxシンタックス要素またはlfnst_idxシンタックス要素は、ブロックのサブパーティショニングに関するISP(Intra Sub-Partitions)関連情報に基づいて含まれることもできる。例えば、ISP関連情報は、ISPフラグまたはISP分割フラグを含むことができ、これを介してブロックにサブパーティショニングが実行されるかに対する情報を示すことができる。例えば、サブパーティショニングが実行されるかに対する情報は、IntraSubPartitionsSplitTypeで示され、ISP_NO_SPLITは、サブパーティショニングが実行されないことを示すことができ、ISP_HOR_SPLITは、水平方向にサブパーティショニングが実行されることを示すことができ、ISP_VER_SPLITは、垂直方向にサブパーティショニングが実行されることを示すことができる。
前記レジデュアル関連情報は、前記MIPフラグ及び前記ISP関連情報に基づいて前記LFNSTインデックス情報を含む。
一方、本文書の他の実施例は、MIPが適用されるブロックに対してLFNSTインデックス情報を別途にシグナリングせずに、誘導できる。または、エンコーディング装置は、MIPが適用されるブロックの変換のためのLFNSTインデックス情報を除外した映像情報をエンコーディングしてビットストリームを生成することができ、デコーディング装置は、ビットストリームをパーシングまたはデコーディングし、MIPが適用されるブロックの変換のためのLFNSTインデックス情報を誘導して取得でき、これに基づいて前記ブロックの変換過程を実行することができる。
即ち、該当ブロックに対してLFNSTインデックス情報を復号化しないが、誘導過程を介してLFNST変換セットを構成する変換を区分するインデックスを決定することができる。または、誘導過程を介してMIPが適用されたブロックに別途の最適化された変換カーネルが使われるように決定することもできる。この場合、MIPが適用されたブロックに対して最適のLFNSTカーネルを選択しながらも、これをコーディングするためのビット量を低減する効果を有することができる。
例えば、LFNSTインデックス情報は、イントラ予測のための参照ラインインデックス情報、イントラ予測モード情報、ブロックの大きさ情報またはMIP適用可否情報のうち少なくとも一つに基づいて誘導されることができる。
一方、本文書の他の実施例は、MIPが適用されるブロックに対するLFNSTインデックス情報をシグナリングするために二進化できる。例えば、現在ブロックにMIPが適用されるかどうかによって、適用可能なLFNST変換の個数が異なり、このために、LFNSTインデックス情報に対する二進化方法が選択的にスイッチングされることができる。
例えば、MIPが適用されたブロックに対して一つのLFNSTカーネルが使われることができ、このカーネルは、MIPが適用されないブロックに適用されるLFNSTカーネルのうち一つである。または、MIPが適用されたブロックに対して既存に使われたLFNSTカーネルを使用せずに、MIPが適用されたブロックに最適化された別個のカーネルを定義して使われることもできる。
この場合、MIPが適用されたブロックに対して、そうでないブロックより減少された個数のLFNSTカーネルが使われることで、LFNSTインデックス情報をシグナリングすることによるオーバーヘッドを低減することができ、複雑度を減少する効果がある。
例えば、LFNSTインデックス情報は、以下の表のような二進化方法が利用されることができる。
表9を参照すると、例えば、st_idxシンタックス要素は、該当ブロックにMIPが適用されない場合、intra_mip_flag[][]==falseである場合またはintra_mip_flagシンタックス要素の値が0である場合、TR(Truncated Rice)に二進化されることができる。例えば、この場合、入力パラメータであるcMaxは、2の値を有することができ、cRiceParamは、0の値を有することができる。
または、例えば、st_idxシンタックス要素は、該当ブロックにMIPが適用される場合、intra_mip_flag[][]==trueである場合またはintra_mip_flagシンタックス要素の値が1である場合、FL(Fixed-Length)に二進化されることができる。例えば、この場合、入力パラメータであるcMaxは、1の値を有することができる。
ここで、前記st_idxシンタックス要素は、LFNSTインデックス情報を示すことができ、lfnst_idxシンタックス要素で表すこともできる。
一方、本文書の他の実施例は、MIPが適用されるブロックに対してLFNST関連情報をシグナリングすることができる。
例えば、LFNSTインデックス情報は、一つのシンタックス要素を含むことができ、一つのシンタックス要素に基づいてLFNSTが適用されるかに対する情報及びLFNSTのために使われる変換カーネルの種類に対する情報を示すことができる。この場合、LFNSTインデックス情報は、例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素で表すことができる。
または、例えば、LFNSTインデックス情報は、一つ以上のシンタックス要素を含むことができ、一つ以上のシンタックス要素に基づいてLFNSTが適用されるかに対する情報及びLFNSTのために使われる変換カーネルの種類に対する情報を示すこともできる。例えば、LFNSTインデックス情報は、2個のシンタックス要素を含むことができる。この場合、LFNSTインデックス情報は、LFNSTが適用されるかに対する情報を示すシンタックス要素及びLFNSTのために使われる変換カーネルの種類に対する情報を示すシンタックス要素を含むことができる。例えば、LFNSTが適用されるかに対する情報は、LFNSTフラグと示すことができ、st_flagシンタックス要素またはlfnst_flagシンタックス要素で表すこともできる。または、例えば、LFNSTのために使われる変換カーネルの種類に対する情報は、変換カーネルインデックスフラグと示すことができ、st_idx_flagシンタックス要素、st_kernel_flagシンタックス要素、lfnst_idx_flagシンタックス要素またはlfnst_kernel_flagシンタックス要素で表すこともできる。例えば、LFNSTインデックス情報が、前述したように、一つ以上のシンタックス要素を含む場合、LFNSTインデックス情報は、LFNST関連情報とも呼ばれる。
例えば、LFNST関連情報(例えば、st_flagシンタックス要素またはst_idx_flagシンタックス要素)は、表10のように含まれることができる。
一方、MIPが適用されるブロックは、MIPが適用されないブロックと異なる個数のLFNST変換(カーネル)が使われることができる。例えば、MIPが適用されるブロックは、一つのLFNST変換カーネルのみが使われることもできる。例えば、前記一つのLFNST変換カーネルは、MIPが適用されないブロックに適用されるLFNSTカーネルのうち一つである。または、MIPが適用されたブロックに対して既存に使われたLFNSTカーネルを使用せずに、MIPが適用されたブロックに最適化された別個のカーネルを定義して使われることもできる。
この場合、LFNST関連情報のうち、LFNSTのために使われる変換カーネルの種類に対する情報(例えば、変換カーネルインデックスフラグ)は、MIPが適用されたかによって選択的にシグナリングされることができ、この時のLFNST関連情報は、例えば、表11のように含まれることができる。
即ち、表11を参照すると、LFNSTのために使われる変換カーネルの種類に対する情報(または、st_idx_flagシンタックス要素)は、該当ブロックにMIPが適用されたかに対する情報(または、intra_mip_flagシンタックス要素)に基づいて含まれることができる。または、例えば、st_idx_flagシンタックス要素は、該当ブロックにMIPが適用されない場合(!intra_mip_flag)にシグナリングされることができる。
例えば、前記表10または表11において、st_flagシンタックス要素またはst_idx_flagシンタックス要素が示す情報またはセマンティクス(sematics)は、以下の表の通りである。
例えば、st_flagシンタックス要素は、2次変換が適用されるかに対する情報を示すことができる。例えば、st_flagシンタックス要素の値が0である場合、2次変換が適用されないことを示すことができ、1である場合、2次変換が適用されることを示すことができる。例えば、st_idx_flagシンタックス要素は、選択された変換セット内の2個の候補カーネルのうち適用される2次変換カーネルに対する情報を示すことができる。
例えば、LFNST関連情報は、以下の表のような二進化方法が利用されることができる。
表13を参照すると、例えば、st_flagシンタックス要素は、FLに二進化されることができる。例えば、この場合、入力パラメータであるcMaxは、1の値を有することができる。または、例えば、st_idx_flagシンタックス要素は、FLに二進化されることができる。例えば、この場合、入力パラメータであるcMaxは、1の値を有することができる。
例えば、表10または表11を参照すると、st_flagシンタックス要素またはst_idx_flagシンタックス要素のdescriptorは、ae(v)である。ここで、ae(v)は、コンテキスト適応的算術エントロピーコーディング(context-adaptive arithmetic entropy-coding)を示すことができる。または、descriptorがae(v)であるシンタックス要素は、コンテキスト適応的算術エントロピーコーディングされたシンタックス要素(context-adaptive arithmetic entropy-coded syntax element)である。即ち、LFNST関連情報(例えば、st_flagシンタックス要素またはst_idx_flagシンタックス要素)は、コンテキスト適応的算術エントロピーコーディングが適用されることができる。または、LFNST関連情報(例えば、st_flagシンタックス要素またはst_idx_flagシンタックス要素)は、コンテキスト適応的算術エントロピーコーディングが適用された情報またはシンタックス要素である。または、LFNST関連情報(例えば、st_flagシンタックス要素またはst_idx_flagシンタックス要素のbinストリングのbin)は、前述したCABACなどに基づいてエンコーディング/デコーディングされることができる。ここで、コンテキスト適応的算術エントロピーコーディングは、コンテキストモデルベースのコーディング、コンテキストコーディングまたは正規コーディングと示すこともできる。
例えば、LFNST関連情報(例えば、st_flagシンタックス要素またはst_idx_flagシンタックス要素)のコンテキストインデックス増減(ctxInc:context index increment)またはst_flagシンタックス要素またはst_idx_flagシンタックス要素のbin位置によるctxIncは、表14のように割当または決定されることができる。または、表14のように、st_flagシンタックス要素またはst_idx_flagシンタックス要素のbin位置によってコンテキストモデルが選択されることができる。または、表14のように、割当または決定されるst_flagシンタックス要素またはst_idx_flagシンタックス要素のbin位置によるctxIncに基づいてコンテキストモデルが選択されることができる。
表14を参照すると、例えば、st_flagシンタックス要素(のbinストリングのbinまたは1番目のbin)は、2個のコンテキストモデル(または、ctxIdx)を使用することができ、0または1の値を有するctxIncに基づいてコンテキストモデルが選択されることができる。または、例えば、st_idx_flagシンタックス要素(のbinストリングのbinまたは1番目のbin)は、バイパスコーディングが適用されることができる。または、均一な確率分布を適用してコーディングできる。
例えば、前記st_flagシンタックス要素(のbinストリングのbinまたは1番目のbin)のctxIncは、以下の表15に基づいて決定されることができる。
表15を参照すると、例えば、前記st_flagシンタックス要素(のbinストリングのbinまたは1番目のbin)のctxIncは、MTSインデックス(または、tu_mts_idxシンタックス要素)またはツリータイプ情報(treeType)に基づいて決定されることができる。例えば、ctxIncは、MTSインデックスの値が0であり、ツリータイプがシングルツリーでない場合、1として導出されることができる。または、ctxIncは、MTSインデックスの値が0でない、またはツリータイプがシングルツリーである場合、0として導出されることができる。
この場合、MIPが適用されたブロックに対して、そうでないブロックより減少された個数のLFNSTカーネルが使われることで、LFNSTインデックス情報をシグナリングすることによるオーバーヘッドを低減することができ、複雑度を減少する効果がある。
一方、本文書の他の実施例は、MIPが適用されるブロックに対してLFNSTカーネルを誘導して使用することができる。即ち、LFNSTカーネルに関する情報を別途にシグナリングせずに、誘導できる。または、エンコーディング装置は、MIPが適用されるブロックの変換のためのLFNSTインデックス情報またはLFNSTのために使われる変換カーネル(の種類)に対する情報を除外した映像情報をエンコーディングしてビットストリームを生成することができ、デコーディング装置は、ビットストリームをパーシングまたはデコーディングし、MIPが適用されるブロックの変換のためのLFNSTインデックス情報またはLFNSTのために使われる変換カーネルに対する情報を誘導して取得でき、これに基づいて前記ブロックの変換過程を実行することができる。
即ち、該当ブロックに対してLFNSTインデックス情報またはLFNSTのために使われる変換カーネルに対する情報を復号化しないが、誘導過程を介してLFNST変換セットを構成する変換を区分するインデックスを決定することができる。または、誘導過程を介してMIPが適用されたブロックに別途の最適化された変換カーネルが使われるように決定することもできる。この場合、MIPが適用されたブロックに対して最適のLFNSTカーネルを選択しながらも、これをコーディングするためのビット量を低減する効果を有することができる。
例えば、LFNSTインデックス情報またはLFNSTのために使われる変換カーネルに対する情報は、イントラ予測のための参照ラインインデックス情報、イントラ予測モード情報、ブロックの大きさ情報またはMIP適用可否情報のうち少なくとも一つに基づいて誘導されることができる。
前述した本文書の実施例において、FL(Fixed-Length)二進化は、特定ビット数のように固定された長さで二進化する方法を示すことができ、特定ビット数は、あらかじめ定義されることもでき、またはcMaxに基づいて示すこともできる。TU(Truncated Unary)二進化は、表現しようとするシンボルの個数ほどの1と一個の0を利用し、表現しようとするシンボルの個数が最大長さと同じ場合、0を付け加えない可変長さで二進化する方法を示すことができ、最大長さは、cMaxに基づいて示すことができる。TR(Truncated Rice)二進化は、TU+FLのようにprefix及びsufixを連結した形態で二進化する方法を示すことができ、最大長さ及びシフト(shift)情報を利用するが、シフト情報が0の値を有する場合、TUと同じである。ここで、最大長さは、cMaxに基づいて示すことができ、シフト情報は、cRiceParamに基づいて示すことができる。
図11及び図12は、本文書の実施例によるビデオ/映像エンコーディング方法及び関連コンポーネントの一例を概略的に示す。
図11に開示された方法は、図2または図12に開示されたエンコーディング装置により実行されることができる。具体的に、例えば、図11のS1100乃至S1120は、図12の前記エンコーディング装置の予測部220により実行されることができ、図11のS1130乃至S1150は、図12の前記エンコーディング装置のレジデュアル処理部230により実行されることができ、図11のS1160は、図12の前記エンコーディング装置のエントロピーエンコーディング部240により実行されることができる。また、図11には示されていないが、図12において、前記エンコーディング装置の予測部220により予測サンプルまたは予測関連情報を導出することができ、前記エンコーディング装置のレジデュアル処理部230により原本サンプルまたは予測サンプルからレジデュアル情報が導出されることができ、前記エンコーディング装置のエントロピーエンコーディング部240によりレジデュアル情報または予測関連情報からビットストリームが生成されることができる。図11に開示された方法は、本文書で詳述した実施例を含むことができる。
図11を参照すると、エンコーディング装置は、現在ブロックに対するイントラ予測タイプを決定することができ(S1100)、イントラ予測タイプに基づいて現在ブロックに対するイントラ予測タイプ情報を生成することができる(S1110)。例えば、エンコーディング装置は、RD(rate distortion)コスト(cost)を考慮して前記現在ブロックに対する前記イントラ予測タイプを決定することができる。イントラ予測タイプ情報は、現在ブロックに隣接した参照ラインを使用するノーマルイントラ予測タイプ、現在ブロックに隣接しない参照ラインを使用するMRL(Multi-Reference Line)、現在ブロックに対してサブパーティショニングを実行するISP(Intra Sub-Partitions)またはマトリクスを利用するMIP(Matrix based Intra Prediction)などの適用可否に対する情報を示すことができる。
例えば、前記イントラ予測タイプ情報は、前記現在ブロックにMIPが適用されるかどうかを示すMIPフラグを含むことができる。または、例えば、前記イントラ予測タイプ情報は、前記現在ブロックにISPのサブパーティショニングに関するISP(Intra Sub-Partitions)関連情報を含むことができる。例えば、ISP関連情報は、前記現在ブロックにISPが適用されるかどうかを示すISPフラグまたは分割される方向を示すISP分割フラグを含むことができる。または、例えば、前記イントラ予測タイプ情報は、前記MIPフラグ及び前記ISP関連情報を含むこともできる。例えば、MIPフラグは、intra_mip_flagシンタックス要素を示すことができる。または、例えば、ISPフラグは、intra_subpartitions_mode_flagシンタックス要素を示すことができ、ISP分割フラグは、intra_subpartitions_split_flagシンタックス要素を示すことができる。
また、図11には示されていないが、例えば、エンコーディング装置は、現在ブロックに対するイントラ予測モードを決定することができ、イントラ予測モードに基づいて現在ブロックに対するイントラ予測情報を生成することができる。例えば、エンコーディング装置は、RDコストを考慮して前記イントラ予測モードを決定することができる。イントラ予測モード情報は、イントラ予測モードのうち現在ブロックに適用されるイントラ予測モードを示すことができる。例えば、イントラ予測モードは、0番乃至66番イントラ予測モードを含むことができる。例えば、0番イントラ予測モードは、プラナーモードを示すことができ、1番イントラ予測モードは、DCモードを示すことができる。また、2番乃至66番イントラ予測モードは、方向性または角度性イントラ予測モードと示すことができ、参照する方向を示すことができる。または、0番及び1番イントラ予測モードは、非方向性または非角度性イントラ予測モードと示すことができる。これに対する詳細な説明は、図5と共に詳述した。
例えば、エンコーディング装置は、現在ブロックに対する予測関連情報を生成することができ、予測関連情報は、イントラ予測モード情報及び/またはイントラ予測タイプ情報を含むこともできる。
エンコーディング装置は、イントラ予測タイプに基づいて現在ブロックの予測サンプルを導出することができる(S1120)。または、例えば、エンコーディング装置は、イントラ予測モード及び/またはイントラ予測タイプに基づいて前記予測サンプルを生成することができる。または、予測関連情報に基づいて前記予測サンプルを生成することができる。
エンコーディング装置は、予測サンプルに基づいて現在ブロックのレジデュアルサンプルを生成することができる(S1130)。例えば、エンコーディング装置は、原本サンプル(例えば、入力映像信号)及び前記予測サンプルに基づいて前記レジデュアルサンプルを生成することができる。または、例えば、エンコーディング装置は、前記原本サンプルと前記予測サンプルとの間の差に基づいて前記レジデュアルサンプルを生成することができる。
エンコーディング装置は、レジデュアルサンプルに基づいて現在ブロックに対する変換係数を導出することができる(S1140)。例えば、エンコーディング装置は、前記レジデュアルサンプルに基づいて1次変換を実行して変換係数を導出することができる。または、例えば、エンコーディング装置は、前記レジデュアルサンプルに基づいて1次変換を実行して臨時変換係数を導出することができ、臨時変換係数にLFNSTを適用して変換係数を導出することもできる。例えば、前記エンコーディング装置は、前記LFNSTが適用された場合、前記LFNSTインデックス情報を生成することができる。即ち、前記変換係数の導出に利用された変換カーネルに基づいて前記LFNSTインデックス情報を生成することができる。
エンコーディング装置は、変換係数に基づいてレジデュアル関連情報を生成することができる(S1150)。例えば、エンコーディング装置は、変換係数に基づいて量子化を実行して量子化された変換係数を導出することができる。また、エンコーディング装置は、前記量子化された変換係数に基づいて量子化された変換係数に関する情報を生成することができる。また、前記レジデュアル関連情報は量子化された変換係数に関する情報を含むことができる。
エンコーディング装置は、イントラ予測タイプ情報及びレジデュアル関連情報をエンコーディングすることができる(S1160)。例えば、レジデュアル関連情報は、前述したように、量子化された変換係数に関する情報を含むことができる。また例えば、レジデュアル関連情報は、前記LFNSTインデックス情報を含むこともできる。または、例えば、レジデュアル関連情報は、前記LFNSTインデックス情報を含まないこともある。
例えば、前記レジデュアル関連情報は、前記MIPフラグに基づいて前記現在ブロックの低周波変換係数に対する非分離変換に関する情報を示すLFNSTインデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPフラグまたは前記現在ブロックのサイズに基づいてLFNSTインデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPフラグまたは前記現在ブロックに関する情報に基づいてLFNSTインデックス情報を含むことができる。ここで、前記現在ブロックに関する情報は、前記現在ブロックのサイズ、シングルツリーまたはデュアルツリーを示すツリー構造情報、LFNST使用可能フラグまたはISP関連情報のうち少なくとも一つを含むことができる。例えば、前記MIPフラグは、前記レジデュアル関連情報がLFNSTインデックス情報を含むかどうかを判断するための複数の条件のうち一つであり、前記MIPフラグ外に前記現在ブロックのサイズなどのような他の条件により前記レジデュアル関連情報がLFNSTインデックス情報を含むこともできる。ただし、以下では前記MIPフラグを中心に説明する。ここで、LFNSTインデックス情報は、変換インデックス情報と示すこともできる。または、LFNSTインデックス情報は、st_idxシンタックス要素またはlfnst_idxシンタックス要素で表すこともできる。
例えば、前記レジデュアル関連情報は、前記MIPが適用されないことを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPが適用されることを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報を含まない。即ち、前記MIPフラグが、前記現在ブロックにMIPが適用されることを示す場合(例えば、intra_mip_flagシンタックス要素の値が1である場合)、前記レジデュアル関連情報が前記LFNSTインデックス情報を含まないこともあり、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素の値が0である場合)、前記レジデュアル関連情報が前記LFNSTインデックス情報を含むことができる。
または、例えば、前記レジデュアル関連情報は、前記MIPフラグ及び前記ISP関連情報に基づいて前記LFNSTインデックス情報を含むこともできる。例えば、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素の値が0である場合)、前記ISP関連情報(IntraSubPartitionsSplitType)を参照して前記レジデュアル関連情報が前記LFNSTインデックス情報を含むことができる。ここで、IntraSubPartitionsSplitTypeは、ISPが適用されないこと(ISP_NO_SPLIT)、水平方向に適用(ISP_HOR_SPLIT)または垂直方向に適用(ISP_VER_SPLIT)を示すことができ、これは前記ISPフラグまたは前記ISP分割フラグに基づいて導出されることができる。
例えば、前記MIPフラグが、現在ブロックに前記MIPが適用されることを示すことによって前記LFNSTインデックス情報が誘導または導出されて使われることができ、この場合、前記レジデュアル関連情報は、前記LFNSTインデックス情報を含まない。即ち、エンコーディング装置は、前記LFNSTインデックス情報をシグナリングしない。例えば、前記LFNSTインデックス情報は、前記現在ブロックに対する参照ラインインデックス情報、前記現在ブロックのイントラ予測モード情報、前記現在ブロックのサイズ情報、及び前記MIPフラグのうち少なくとも一つに基づいて誘導または導出されて使われることができる。
または、例えば、前記LFNSTインデックス情報は、前記現在ブロックの低周波変換係数に対する非分離変換が適用されるかを示すLFNSTフラグ及び/または変換カーネル(kernel)候補のうち前記現在ブロックに適用された変換カーネルを示す変換カーネルインデックスフラグを含むこともできる。即ち、前記LFNSTインデックス情報は、一つのシンタックス要素または一つの情報に基づいて前記現在ブロックの低周波変換係数に対する非分離変換に関する情報を示すことができるが、2個のシンタックス要素または2個の情報に基づいて示すこともできる。例えば、前記LFNSTフラグは、st_flagシンタックス要素またはlfnst_flagシンタックス要素で表すこともでき、前記変換カーネルインデックスフラグは、st_idx_flagシンタックス要素、st_kernel_flagシンタックス要素、lfnst_idx_flagシンタックス要素またはlfnst_kernel_flagシンタックス要素で表すこともできる。ここで、前記変換カーネルインデックスフラグは、前記非分離変換が適用されることを示す前記LFNSTフラグ及び前記MIPが適用されないことを示す前記MIPフラグに基づいて前記LFNSTインデックス情報に含まれることもできる。即ち、前記LFNSTフラグが、前記非分離変換が適用されることを示し、前記MIPフラグが、前記MIPが適用されることを示す場合、前記LFNSTインデックス情報は、前記変換カーネルインデックスフラグを含むことができる。
例えば、前記MIPフラグが、現在ブロックに前記MIPが適用されることを示すことによって前記LFNSTフラグ及び前記変換カーネルインデックスフラグが誘導または導出されて使われることができ、この場合、前記レジデュアル関連情報は、前記LFNSTフラグ及び前記変換カーネルインデックスフラグを含まない。即ち、エンコーディング装置は、前記LFNSTフラグ及び前記変換カーネルインデックスフラグをシグナリングしない。例えば、前記LFNSTフラグ及び前記変換カーネルインデックスフラグは、前記現在ブロックに対する参照ラインインデックス情報、前記現在ブロックのイントラ予測モード情報、前記現在ブロックのサイズ情報、及び前記MIPフラグのうち少なくとも一つに基づいて誘導または導出されて使われることができる。
例えば、前記レジデュアル関連情報が前記LFNSTインデックス情報を含む場合、前記LFNSTインデックス情報は、二進化を介して示される。例えば、前記MIPが適用されないことを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、TR(Truncated Rice)ベースの二進化を介して示され、前記MIPが適用されることを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、FL(Fixed Length)ベースの二進化を介して示される。即ち、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素が0またはfalseである場合)、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、TRベースの二進化を介して示され、前記MIPフラグが、前記現在ブロックにMIPが適用されることを示す場合(例えば、intra_mip_flagシンタックス要素が1またはtrueである場合)、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、FLベースの二進化を介して示される。
または、例えば、前記レジデュアル関連情報が前記LFNSTインデックス情報を含み、前記LFNSTインデックス情報が前記LFNSTフラグ及び前記変換カーネルインデックスフラグを含む場合、前記LFNSTフラグ及び前記変換カーネルインデックスフラグは、FL(Fixed Length)ベースの二進化を介して示される。
例えば、前記LFNSTインデックス情報は、前述したような二進化を介してbinストリング(のbin)で示され、これをコーディングしてビット、ビットストリングまたはビットストリームを生成することができる。
例えば、前記LFNSTフラグのbinストリングの(1番目の)binは、コンテキストコーディングに基づいてコーディングされることができ、前記コンテキストコーディングは、前記LFNSTフラグに関するコンテキストインデックス増減の値に基づいて実行されることができる。ここで、コンテキストコーディングは、コンテキストモデルに基づいて実行されるコーディングであって、正規(regular)コーディングとも呼ばれる。また、コンテキストモデルは、コンテキストインデックス(ctxIdx)により示され、前記コンテキストインデックスは、コンテキストインデックス増減(ctxInc)及びコンテキストインデックスオフセット(ctxIdxOffset)に基づいて示される。例えば、前記コンテキストインデックス増減の値は、0及び1を含む候補のうち一つで示される。例えば、前記コンテキストインデックス増減の値は、変換カーネルセットのうち前記現在ブロックに使用する変換カーネルセットを示すMTSインデックス(例えば、mts_idxシンタックス要素またはtu_mts_idxシンタックス要素)及び前記現在ブロックの分割構造を示すツリータイプ情報に基づいて決定されることができる。ここで、ツリータイプ情報は、現在ブロックのルマ成分とクロマ成分の分割構造が同じであることを示すシングルツリーまたは現在ブロックのルマ成分とクロマ成分の分割構造が互いに異なることを示すデュアルツリーを示すことができる。
例えば、前記変換カーネルインデックスフラグのbinストリングの(1番目の)binは、バイパスコーディングに基づいてコーディングされることができる。ここで、バイパスコーディングは、均一な確率分布に基づいてコンテキストコーディングを実行することを示すこともでき、コンテキストコーディングのアップデート手順などが省略されることによってコーディング効率を向上させることができる。
または、図11には示されていないが、例えば、エンコーディング装置は、前記レジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成することもできる。また、前記復元サンプルに基づいて復元ブロック及び復元ピクチャが導出されることもできる。
例えば、エンコーディング装置は、前述した情報(または、シンタックス要素)の全部または一部を含む映像情報をエンコーディングしてビットストリームまたはエンコーディングされた情報を生成することができる。または、ビットストリーム形態で出力できる。また、前記ビットストリームまたはエンコーディングされた情報は、ネットワークまたは格納媒体を介してデコーディング装置に送信されることができる。または、前記ビットストリームまたはエンコーディングされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前記ビットストリームまたは前記エンコーディングされた情報は、前述した映像エンコーディング方法により生成されることができる。
図13及び図14は、本文書の実施例によるビデオ/映像デコーディング方法及び関連コンポーネントの一例を概略的に示す。
図13に開示された方法は、図3または図14に開示されたデコーディング装置により実行されることができる。具体的に、例えば、図13のS1300は、図14で前記デコーディング装置のエントロピーデコーディング部310により実行されることができ、図13のS1310及びS1320は、図14で前記デコーディング装置のレジデュアル処理部320により実行されることができる。また、図13には示されていないが、図14において、前記デコーディング装置のエントロピーデコーディング部310によりビットストリームから予測関連情報またはレジデュアル情報が導出されることができ、前記デコーディング装置のレジデュアル処理部320によりレジデュアル情報からレジデュアルサンプルが導出されることができ、前記デコーディング装置の予測部330により予測関連情報から予測サンプルが導出されることができ、前記デコーディング装置の加算部340によりレジデュアルサンプルまたは予測サンプルから復元ブロックまたは復元ピクチャが導出されることができる。図13に開示された方法は、本文書で詳述した実施例を含むことができる。
図13を参照すると、デコーディング装置は、ビットストリームから現在ブロックに対するイントラ予測タイプ情報及びレジデュアル関連情報を取得することができる(S1300)。例えば、デコーディング装置は、ビットストリームをパーシングまたはデコーディングしてイントラ予測タイプ情報またはレジデュアル関連情報を取得することができる。ここで、ビットストリームは、エンコーディングされた(映像)情報とも呼ばれる。
例えば、デコーディング装置は、ビットストリームから予測関連情報を取得することができ、予測関連情報は、イントラ予測モード情報及び/またはイントラ予測タイプ情報を含むこともできる。例えば、デコーディング装置は、予測関連情報に基づいて現在ブロックに対する予測サンプルを生成することができる。
イントラ予測モード情報は、イントラ予測モードのうち現在ブロックに適用されるイントラ予測モードを示すことができる。例えば、イントラ予測モードは、0番乃至66番イントラ予測モードを含むことができる。例えば、0番イントラ予測モードは、プラナーモードを示すことができ、1番イントラ予測モードは、DCモードを示すことができる。また、2番乃至66番イントラ予測モードは、方向性または角度性イントラ予測モードと示すことができ、参照する方向を示すことができる。または、0番及び1番イントラ予測モードは、非方向性または非角度性イントラ予測モードと示すことができる。これに対する詳細な説明は、図5と共に詳述した。
また、イントラ予測タイプ情報は、現在ブロックに隣接した参照ラインを使用するノーマルイントラ予測タイプ、現在ブロックに隣接しない参照ラインを使用するMRL(Multi-Reference Line)、現在ブロックに対してサブパーティショニングを実行するISP(Intra Sub-Partitions)またはマトリクスを利用するMIP(Matrix based Intra Prediction)などの適用可否に対する情報を示すことができる。
例えば、デコーディング装置は、ビットストリームからレジデュアル関連情報を取得することができる。ここで、レジデュアル関連情報は、レジデュアルサンプルを導出するために利用される情報を示すことができ、レジデュアルサンプルに関する情報、(逆)変換関連情報及び/または(逆)量子化関連情報を含むことができる。例えば、レジデュアル関連情報は、量子化された変換係数に関する情報を含むことができる。
例えば、前記イントラ予測タイプ情報は、前記現在ブロックにMIPが適用されるかどうかを示すMIPフラグを含むことができる。または、例えば、前記イントラ予測タイプ情報は、前記現在ブロックにISPのサブパーティショニングに関するISP(Intra Sub-Partitions)関連情報を含むことができる。例えば、ISP関連情報は、前記現在ブロックにISPが適用されるかどうかを示すISPフラグまたは分割される方向を示すISP分割フラグを含むことができる。または、例えば、前記イントラ予測タイプ情報は、前記MIPフラグ及び前記ISP関連情報を含むこともできる。例えば、MIPフラグは、intra_mip_flagシンタックス要素を示すことができる。または、例えば、ISPフラグは、intra_subpartitions_mode_flagシンタックス要素を示すことができ、ISP分割フラグは、intra_subpartitions_split_flagシンタックス要素を示すことができる。
例えば、前記レジデュアル関連情報は、前記MIPフラグに基づいて前記現在ブロックの低周波変換係数に対する非分離変換に関する情報を示すLFNST(Low Frequency Non Separable Transform)インデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPフラグまたは前記現在ブロックのサイズに基づいてLFNSTインデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPフラグまたは前記現在ブロックに関する情報に基づいてLFNSTインデックス情報を含むことができる。ここで、前記現在ブロックに関する情報は、前記現在ブロックのサイズ、シングルツリーまたはデュアルツリーを示すツリー構造情報、LFNST使用可能フラグまたはISP関連情報のうち少なくとも一つを含むことができる。例えば、前記MIPフラグは、前記レジデュアル関連情報がLFNSTインデックス情報を含むかどうかを判断するための複数の条件のうち一つであり、前記MIPフラグ外に前記現在ブロックのサイズなどのような他の条件により前記レジデュアル関連情報がLFNSTインデックス情報を含むこともできる。ただし、以下では前記MIPフラグを中心に説明する。ここで、LFNSTインデックス情報は、変換インデックス情報と示すこともできる。または、LFNSTインデックス情報は、st_idxシンタックス要素またはlfnst_idxシンタックス要素で表すこともできる。
例えば、前記レジデュアル関連情報は、前記MIPが適用されないことを示す前記MIPフラグに基づいて前記LFNSTインデックス情報を含むことができる。または、例えば、前記レジデュアル関連情報は、前記MIPが適用されることを示す前記MIPフラグに基づいて前記LFNSTインデックス情報を含まない。即ち、前記MIPフラグが、前記現在ブロックにMIPが適用されることを示す場合(例えば、intra_mip_flagシンタックス要素の値が1である場合)、前記レジデュアル関連情報が前記LFNSTインデックス情報を含まないこともあり、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素の値が0である場合)、前記レジデュアル関連情報が前記LFNSTインデックス情報を含むことができる。
または、例えば、前記レジデュアル関連情報は、前記MIPフラグ及び前記ISP関連情報に基づいて前記LFNSTインデックス情報を含むこともできる。例えば、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素の値が0である場合)、前記ISP関連情報(IntraSubPartitionsSplitType)を参照して前記レジデュアル関連情報が前記LFNSTインデックス情報を含むことができる。ここで、IntraSubPartitionsSplitTypeは、ISPが適用されないこと(ISP_NO_SPLIT)、水平方向に適用(ISP_HOR_SPLIT)または垂直方向に適用(ISP_VER_SPLIT)を示すことができ、これは前記ISPフラグまたは前記ISP分割フラグに基づいて導出されることができる。
例えば、前記MIPフラグが、現在ブロックに前記MIPが適用されることを示すことによって、前記レジデュアル関連情報が前記LFNSTインデックス情報を含まない場合、即ち、前記LFNSTインデックス情報がシグナリングされない場合、前記LFNSTインデックス情報は、誘導または導出されることができる。例えば、前記LFNSTインデックス情報は、前記現在ブロックに対する参照ラインインデックス情報、前記現在ブロックのイントラ予測モード情報、前記現在ブロックのサイズ情報、及び前記MIPフラグのうち少なくとも一つに基づいて導出されることができる。
または、例えば、前記LFNSTインデックス情報は、前記現在ブロックの低周波変換係数に対する非分離変換が適用されるかを示すLFNSTフラグ及び/または変換カーネル(kernel)候補のうち前記現在ブロックに適用された変換カーネルを示す変換カーネルインデックスフラグを含むこともできる。即ち、前記LFNSTインデックス情報は、一つのシンタックス要素または一つの情報に基づいて前記現在ブロックの低周波変換係数に対する非分離変換に関する情報を示すことができるが、2個のシンタックス要素または2個の情報に基づいて示すこともできる。例えば、前記LFNSTフラグは、st_flagシンタックス要素またはlfnst_flagシンタックス要素で表すこともでき、前記変換カーネルインデックスフラグは、st_idx_flagシンタックス要素、st_kernel_flagシンタックス要素、lfnst_idx_flagシンタックス要素またはlfnst_kernel_flagシンタックス要素で表すこともできる。ここで、前記変換カーネルインデックスフラグは、前記非分離変換が適用されることを示す前記LFNSTフラグ及び前記MIPが適用されないことを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報に含まれることもできる。即ち、前記LFNSTフラグが、前記非分離変換が適用されることを示し、前記MIPフラグが、前記MIPが適用されることを示す場合、前記LFNSTインデックス情報は、前記変換カーネルインデックスフラグを含むことができる。
例えば、前記MIPフラグが、現在ブロックに前記MIPが適用されることを示すことによって、前記レジデュアル関連情報が前記LFNSTフラグ及び前記変換カーネルインデックスフラグを含まない場合、即ち、前記LFNSTフラグ及び前記変換カーネルインデックスフラグがシグナリングされない場合、前記LFNSTフラグ及び前記変換カーネルインデックスフラグは、誘導または導出されることができる。例えば、前記LFNSTフラグ及び前記変換カーネルインデックスフラグは、前記現在ブロックに対する参照ラインインデックス情報、前記現在ブロックのイントラ予測モード情報、前記現在ブロックのサイズ情報、及び前記MIPフラグのうち少なくとも一つに基づいて導出されることができる。
例えば、前記レジデュアル関連情報が前記LFNSTインデックス情報を含む場合、前記LFNSTインデックス情報は、二進化を介して導出されることができる。例えば、前記MIPが適用されないことを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、TR(Truncated Rice)ベースの二進化を介して導出されることができ、前記MIPが適用されることを示す前記MIPフラグに基づいて、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、FL(Fixed Length)ベースの二進化を介して導出されることができる。即ち、前記MIPフラグが、前記現在ブロックにMIPが適用されないことを示す場合(例えば、intra_mip_flagシンタックス要素が0またはfalseである場合)、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、TRベースの二進化を介して導出されることができ、前記MIPフラグが、前記現在ブロックにMIPが適用されることを示す場合(例えば、intra_mip_flagシンタックス要素が1またはtrueである場合)、前記LFNSTインデックス情報(例えば、st_idxシンタックス要素またはlfnst_idxシンタックス要素)は、FLベースの二進化を介して導出されることができる。
または、例えば、前記レジデュアル関連情報が前記LFNSTインデックス情報を含み、前記LFNSTインデックス情報が前記LFNSTフラグ及び前記変換カーネルインデックスフラグを含む場合、前記LFNSTフラグ及び前記変換カーネルインデックスフラグは、FL(Fixed Length)ベースの二進化を介して導出されることができる。
例えば、前記LFNSTインデックス情報は、前述したような二進化を介して候補を導出することができ、ビットストリームをパーシングまたはデコーディングして示すbinを候補と比較でき、これを介して前記LFNSTインデックス情報が取得されることができる。
例えば、前記LFNSTフラグのbinストリングの(1番目の)binは、コンテキストコーディングに基づいて導出されることができ、前記コンテキストコーディングは、前記LFNSTフラグに関するコンテキストインデックス増減の値に基づいて実行されることができる。ここで、コンテキストコーディングは、コンテキストモデルに基づいて実行されるコーディングであって、正規(regular)コーディングとも呼ばれる。また、コンテキストモデルは、コンテキストインデックス(ctxIdx)により示され、前記コンテキストインデックスは、コンテキストインデックス増減(ctxInc)及びコンテキストインデックスオフセット(ctxIdxOffset)に基づいて導出されることができる。例えば、前記コンテキストインデックス増減の値は、0及び1を含む候補のうち一つとして導出されることができる。例えば、前記コンテキストインデックス増減の値は、変換カーネルセットのうち前記現在ブロックに使用する変換カーネルセットを示すMTSインデックス(例えば、mts_idxシンタックス要素またはtu_mts_idxシンタックス要素)及び前記現在ブロックの分割構造を示すツリータイプ情報に基づいて導出されることができる。ここで、ツリータイプ情報は、現在ブロックのルマ成分とクロマ成分の分割構造が同じであることを示すシングルツリーまたは現在ブロックのルマ成分とクロマ成分の分割構造が互いに異なることを示すデュアルツリーを示すことができる。
例えば、前記変換カーネルインデックスフラグのbinストリングの(1番目の)binは、バイパスコーディングに基づいて導出されることができる。ここで、バイパスコーディングは、均一な確率分布に基づいてコンテキストコーディングを実行することを示すことができ、コンテキストコーディングのアップデート手順などが省略されることによってコーディング効率を向上させることができる。
デコーディング装置は、レジデュアル関連情報に基づいて現在ブロックに対する変換係数を導出することができる(S1310)。例えば、レジデュアル関連情報は、量子化された変換係数に関する情報を含むことができ、デコーディング装置は、前記量子化された変換係数に関する情報に基づいて現在ブロックに対する量子化された変換係数を導出することができる。例えば、デコーディング装置は、前記量子化された変換係数に対して逆量子化を実行して現在ブロックに対する変換係数を導出することができる。
デコーディング装置は、変換係数に基づいて現在ブロックのレジデュアルサンプルを生成することができる(S1320)。例えば、デコーディング装置は、前記LFNSTインデックス情報に基づいて前記変換係数から前記レジデュアルサンプルを生成することができる。例えば、前記LFNSTインデックス情報が前記レジデュアル関連情報に含まれる場合または前記LFNSTインデックス情報が誘導または導出された場合、前記LFNSTインデックス情報によって前記変換係数に対してLFNSTを実行することができ、修正された変換係数を導出することができる。以後、デコーディング装置は、修正された変換係数に基づいて前記レジデュアルサンプルを生成することができる。または、例えば、前記LFNSTインデックス情報が前記レジデュアル関連情報に含まれない場合またはLFNSTを実行しないことを示す場合、デコーディング装置は、前記変換係数に対してLFNSTを実行せずに、前記変換係数に基づいてレジデュアルサンプルを生成することができる。
図13には示されていないが、例えば、デコーディング装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて復元サンプルを生成することができる。また、例えば、前記復元サンプルに基づいて復元ブロック及び復元ピクチャが導出されることができる。
例えば、デコーディング装置は、ビットストリームまたはエンコーディングされた情報をデコーディングして前述した情報(または、シンタックス要素)の全部または一部を含む映像情報を取得することができる。また、前記ビットストリームまたはエンコーディングされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前述したデコーディング方法が実行されるようにすることができる。
前述した実施例において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、該当実施例は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の一つまたはそれ以上のステップが本文書の実施例の範囲に影響を及ぼさずに削除可能であることを理解することができる。
前述した本文書の実施例による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコーディング装置及び/またはデコーディング装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの映像処理を実行する装置に含まれることができる。
本文書において、実施例がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて実行されることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施例が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
また、本文書の実施例が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書の実施例によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読みだすことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施例によりコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
図15は、本文書に開示された実施例が適用されることができるコンテンツストリーミングシステムの例を示す。
図15を参照すると、本文書の実施例が適用されるコンテンツストリーミングシステムは、大別して、エンコーディングサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコーディングサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコーディングサーバは省略されることができる。
前記ビットストリームは、本文書の実施例に適用されるエンコーディング方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/またはエンコーディングサーバからコンテンツを受信することができる。例えば、前記エンコーディングサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例として、携帯電話、スマートフォン(smart phone)、ノートブックコンピュータ(laptop computer)、デジタル放送用端末、PDA(personal digital assistants)、PMP(portable multimedia player)、ナビゲーション、スレートPC(slate PC)、タブレットPC(tablet PC)、ウルトラブック(ultrabook)、ウェアラブルデバイス(wearable device、例えば、ウォッチ型端末(smartwatch)、グラス型端末(smart glass)、HMD(head mounted display)、デジタルTV、デスクトップコンピュータ、デジタルサイニジがある。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせて方法で具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて方法で具現されることができる。