本文書の開示は、様々な変更を加えることができ、様々な実施形態を有することができるが、特定の実施形態を図面に例示し、詳細に説明しようとする。しかし、これは、本開示を特定の実施形態に限定しようとするわけではない。本文書で使用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書における実施形態の技術的思想を限定しようとする意図に使用されるものではない。単数の表現は、文脈上明らかに異なる意味ではない限り、複数の表現を含む。本文書において、「含む」又は「有する」等の用語は、文書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを指定しようとするものであり、1つ又はそれ以上の異なる特徴や、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものの存在又は付加の可能性を予め排除しないものと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立して示すものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されるということを意味するのではない。例えば、各構成のうち、2つ以上の構成を合わせて1つの構成をなすこともあり、1つの構成が複数の構成に分けられることもある。各構成が統合及び/又は分離された実施形態も、本文書の開示範囲に含まれる。
以下、添付図を参照として、本文書の実施形態を説明しようとする。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し得、同じ構成要素に対して重複した説明は省略され得る。
図1は、本文書の実施形態が適用され得るビデオ/画像コーディングシステムの例を概略的に示す。
図1に示すように、ビデオ/画像コーディングシステムは、第1の装置(ソースデバイス)及び第2の装置(受信デバイス)を備えることができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達することができる。
前記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。前記受信デバイスは、受信部、デコード装置、及びレンダラーを備えることができる。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、前記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信機は、エンコード装置に備えられることができる。受信機は、デコード装置に備えられることができる。レンダラーは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成され得るし、この場合、関連データが生成される過程にビデオ/画像キャプチャ過程が代替されることができる。
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコード装置に伝達することができる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/画像をデコードすることができる。
レンダラーは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
本文書は、ビデオ/画像コーディングに関する。例えば、本文書で開示された方法/実施形態は、VVC(versatile video coding)標準に開示される方法に適用されることができる。また、本文書で開示された方法/実施形態は、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)又は次世代ビデオ/画像コーディング標準(ex.267又はH.268等)に開示される方法に適用されることができる。
本文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、別の言及がない限り、前記実施形態は互いに組み合わせて行うこともある。
本文書で、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定の時間帯の1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャは、1つ以上のスライス/タイルで構成されることができる。タイルは、ピクチャ内の特定のタイル列及び特定のタイル列以内のCTUの四角領域である(A tile is a rectangular region of CTUs within a particular tile column and a particular tile row in a picture)。前記タイル列は、CTUの四角領域であり、前記四角領域は、前記ピクチャの高さと同じ高さを有し、幅はピクチャパラメータセット内のシンタックス要素により明示され得る(The tile column is a rectangular region of CTUs having a height equal to the height of the picture and a width specified by syntax elements in the picture parameter set)。前記タイル行はCTUの四角領域であり、前記四角領域はピクチャパラメータセット内のシンタックス要素によって明示される幅を有し、高さは前記ピクチャの高さと同一であり得る(The tile row is a rectangular region of CTUs having a height specified by syntax elements in the picture parameter set and a width equal to the width of the picture)。タイルのスキャンはピクチャをパーティショニングするCTUの特定の順次オーダリングを示し得、前記CTUはタイル内のCTUラスタースキャンに連続的に整列され得、ピクチャ内のタイルは、前記ピクチャの前記タイルのラスタースキャンに連続的に整列され得る(A tile scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a tile whereas tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。スライスは単一のNALユニットに排他的に含まれ得る、整数個の完全なタイル又はピクチャのタイル内の整数個の連続的な完全なCTU行を含み得る(A slice includes an integer number of complete tiles or an integer number of consecutive complete CTU rows within a tile of a picture that may be exclusively contained in a single NAL unit)
一方、1つのピクチャは、2つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の1つ以上のスライスの四角領域であり得る(an rectangular region of one or more slices within a picture)。
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として、「サンプル(sample)」が使用され得る。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すことができ、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち、少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行とからなるサンプル(または、サンプルアレイ)または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
本文書において、「A又はB(A or B)」は、「ただA」、「ただB」、又は「A及びB両方」を意味し得る。言い換えると、本文書において、「A又はB(A or B)」は、「A及び/又はB(A and/or B)」と解釈され得る。例えば、本文書において、「A、B又はC(A, B or C)」は、「ただA」、「ただB」、「ただC」、又は「A、B及びCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。
本文書で使用されるスラッシュ(/)や休止符(comma)は、「及び/又は(and/or)」を意味し得る。例えば、「A/B」は、「A及び/又はB」を意味し得る。これによって、「A/B」は、「ただA」、「ただB」、又は「A及びB両方」を意味し得る。例えば、「A、B、C」は、「A、B又はC」を意味し得る。
本文書において、「少なくとも1つのA及びB(at least one of A and B)」は、「ただA」、「ただB」又は「A及びB両方」を意味し得る。また、本文書において、「少なくとも1つのA又はB(at least one of A or B)」や「少なくとも1つのA及び/又はB(at least one of A and/or B)」という表現は、「少なくとも1つのA及びB(at least one of A and B)」と同様に解釈され得る。
また、本文書において、「少なくとも1つのA、B及びC(at least one of A, B and C)」は、「ただA」、「ただB」、「ただC」、又は「A、B及びCの任意の全ての組み合わせ(any combination of A, B and C)」を意味し得る。また、「少なくとも1つのA、B又はC(at least one of A, B or C)」や「少なくとも1つのA、B及び/又はC(at least one of A, B and/or C)」は、「少なくとも1つのA、B及びC(at least one of A, B and C)」を意味し得る。
また、本文書で使用される括弧は、「例えば(for example)」を意味し得る。具体的に、「予測(イントラ予測)」と表示された場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えると、本文書の「予測」は、「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであり得る。また、「予測(即ち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
本文書において1つの図面内で個別的に説明される技術的特徴は、個別的に実現されてもよく、同時に実現されてもよい。
図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)に対応する用語として使用することができる。
エンコード装置200は、入力画像信号(原本ブロック、原本サンプルアレイ)でインター予測部221またはイントラ予測部222から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。この場合、図示されたように、エンコーダ200内において入力画像信号(原本ブロック、原本サンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは、減算部231と呼ばれることができる。予測部は、処理対象ブロック(以下、現在ブロックという)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロックまたは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は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを用いることができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャ内のサンプル値をシグナリングすることができる。
前記予測部(インター予測部221及び/又は前記イントラ予測部222を含む)を介して生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられることができる。変換部232は、レジデュアル信号に変換技法を適用して、変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)の少なくとも1つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するという際に、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は正方形の同じサイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
量子化部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を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元できる。加算部155は、復元されたレジデュアル信号をインター予測部221またはイントラ予測部222から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成され得る。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部250は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャエンコード及び/又は復元過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピーエンコード部240に伝達することができる。フィルタリングに関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置における予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ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は、図3のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部310を介してデコードされることができる。例えば、エントロピーデコード部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出できる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報に基づいてさらにピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコード手順を介してデコードされて、前記ビットストリームから取得されることができる。例えば、エントロピーデコード部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法を基にビットストリーム内の情報をデコードし、画像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力できる。より具体的に、CABACエントロピーデコード方法は、ビットストリームで各シンタックス要素に該当するビンを受信し、デコード対象のシンタックス要素情報と隣接及びデコード対象ブロックのデコード情報または以前ステップでデコードされたシンボル/ビンの情報を利用して文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測してビンの算術デコード(arithmetic decoding)を行い、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコード方法は、文脈モデル決定後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を利用して文脈モデルをアップデートすることができる。エントロピーデコード部310でデコードされた情報のうち、予測に関する情報は、予測部(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコード部310でエントロピーデコードが行われたレジデュアル値、即ち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されることができる。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出できる。また、エントロピーデコード部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピーデコード部310の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、前記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコード部310を備えることができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332、及びイントラ予測部331のうち、少なくとも1つを備えることができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコード部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるか決定することができ、具体的なイントラ/インター予測モードを決定できる。
予測部320は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、combined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy、IBC)予測モードに基づくことができ、またはパレットモード(palette mode)に基づくこともできる。前記IBC予測モードまたはパレットモードは、例えば、SCC(screen content coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。即ち、IBCは、本文書において説明されるインター予測技法のうち、少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。パレットモードが適用される場合、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/画像情報に含まれてシグナリングされることができる。
イントラ予測部331は、現在ピクチャ内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が行われ得るし、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
加算部340は、取得されたレジデュアル信号を予測部(インター予測部332及び/又はイントラ予測部331を備える)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることができ、または次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャデコード過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ360、具体的に、メモリ360のDPBに送信することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部332で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納できる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納でき、イントラ予測部331に伝達することができる。
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施形態等は、各々デコード装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同じく導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに対する情報(レジデュアル情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングされることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レジデュアル情報に基づいて逆量子化/逆変換の手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出することができる。デコード装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
本文書において、量子化/逆量子化及び/又は変換/逆変換のうち少なくとも1つは、省略されることができる。前記量子化/逆量子化が省略される場合、前記量子化された変換係数は、変換係数と呼ばれることができる。前記変換/逆変換が省略される場合、前記変換係数は、係数またはレジデュアル係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
本文書において、量子化された変換係数及び変換係数は、各々、変換係数及びスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、レジデュアル情報は、変換係数(ら)に関する情報を含むことができ、前記変換係数(ら)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数(ら)に関する情報)に基づいて変換係数が導出されることができ、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されることができる。これは本文書の他の部分でも同様に適用/表現されることができる。
イントラ予測は、現在ブロックが属するピクチャ(以下、現在ピクチャという)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を示すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。前記現在ブロックの隣接参照サンプルは、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)モードと呼ばれることができる。
また、前記隣接参照サンプルのうち前記現在ブロックの予測サンプルを基準にして、前記現在ブロックのイントラ予測モードの予測方向に位置する第1の隣接サンプルと前記予測方向の反対方向に位置する第2の隣接サンプルとの補間を介して前記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。
また、フィルタリングされた隣接参照サンプルに基づいて前記現在ブロックの臨時予測サンプルを導出し、前記既存の隣接参照サンプル、即ち、フィルタリングされない隣接参照サンプルのうち、前記イントラ予測モードによって導出された少なくとも1つの参照サンプルと前記臨時予測サンプルとを加重和(weighted sum)して前記現在ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。
また、現在ブロックの隣接多重参照サンプルラインの中から最も予測正確度が高い参照サンプルラインを選択して該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、この時に使われた参照サンプルラインをデコード装置に指示(シグナリング)する方法でイントラ予測符号化を実行することができる。前述した場合は、多重参照ライン(multi-reference line)イントラ予測またはMRLベースのイントラ予測と呼ばれることができる。
また、現在ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、前記サブパーティション単位で隣接参照サンプルを導出して利用できる。即ち、この場合、現在ブロックに対するイントラ予測モードが前記サブパーティションに同じく適用され、前記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、ISP(intra sub-partitions)ベースのイントラ予測と呼ばれることができる。
前述したイントラ予測方法は、イントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。前記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、様々な用語で呼ばれることができる。例えば、前記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、ISPのうち少なくとも1つを含むことができる。前記LIP、PDPC、MRL、ISPなどの特定イントラ予測タイプを除外した一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、前記のような特定イントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
具体的に、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
イントラ予測が適用される場合、隣接ブロックのイントラ予測モードを利用して現在ブロックに適用されるイントラ予測モードが決定されることができる。例えば、デコード装置は、現在ブロックの隣接ブロック(例えば、左側及び/又は上側隣接ブロック)のイントラ予測モード及び追加的な候補モードに基づいて導出されたMPM(most probable mode)リスト内のMPM候補のうち1つを、受信されたMPMインデックスに基づいて選択でき、または、前記MPM候補(及びプラナーモード)に含まれない残りのイントラ予測モードのうち1つを、リメイニングイントラ予測モード情報に基づいて選択できる。前記MPMリストは、プラナーモードを候補として含む場合または含まない場合で構成されることができる。例えば、前記MPMリストがプラナーモードを候補として含む場合、前記MPMリストは、6個の候補を有することができ、前記MPMリストがプラナーモードを候補として含まない場合、前記MPMリストは、5個の候補を有することができる。前記MPMリストがプラナーモードを候補として含まない場合、現在ブロックのイントラ予測モードがプラナーモードでないかことを示すnotプラナーフラグ(例えば、intra_luma_not_planar_flag)がシグナリングされることができる。例えば、MPMフラグが先にシグナリングされ、MPMインデックス及びnotプラナーフラグは、MPMフラグの値が1である場合にシグナリングされることができる。また、前記MPMインデックスは、前記notプラナーフラグの値が1である場合にシグナリングされることができる。ここで、前記MPMリストがプラナーモードを候補として含まないように構成されることは、前記プラナーモードがMPMでないことを意味するより、MPMとして常にプラナーモードが考慮されるため、先にフラグ(not planar flag)をシグナリングしてプラナーモードであるかどうかを先に確認するためである。
例えば、現在ブロックに適用されるイントラ予測モードがMPM候補(及びプラナーモード)内にあるか、または、リメイニングモード内にあるかは、MPMフラグ(例えば、intra_luma_mpm_flag)に基づいて指示されることができる。MPMフラグの値1は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内にあることを示すことができ、MPM flagの値0は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内に無いことを示すことができる。前記notプラナーフラグ(例えば、intra_luma_not_planar_flag)値0は、前記現在ブロックに対するイントラ予測モードがプラナーモードであることを示すことができ、前記notプラナーフラグ値1は、前記現在ブロックに対するイントラ予測モードがプラナーモードでないことを示すことができる。前記MPMインデックスは、mpm_idxまたはintra_luma_mpm_idxシンテックス要素の形態でシグナリングされることができ、前記リメイニングイントラ予測モード情報は、rem_intra_luma_pred_modeまたはintra_luma_mpm_remainderシンテックス要素の形態でシグナリングされることができる。例えば、前記リメイニングイントラ予測モード情報は、全体イントラ予測モードのうち前記MPM候補(及びプラナーモード)に含まれない残りのイントラ予測モードを予測モード番号順にインデキシングしてそのうち1つを指すことができる。前記イントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モードである。以下、イントラ予測モード情報は、前記MPM flag(例えば、intra_luma_mpm_flag)、前記not planar flag(例えば、intra_luma_not_planar_flag)、前記MPMインデックス(例えば、mpm_idxまたはintra_luma_mpm_idx)、前記リメイニングイントラ予測モード情報(rem_intra_luma_pred_modeまたはintra_luma_mpm_remainder)のうち少なくとも1つを含むことができる。本文書において、MPMリストは、MPM候補リスト、candModeListなど、様々な用語で呼ばれることができる。MIPが現在ブロックに適用される場合、MIPのための別途のmpm flag(例えば、intra_mip_mpm_flag)、mpmインデックス(例えば、intra_mip_mpm_idx)、リメイニングイントラ予測モード情報(例えば、intra_mip_mpm_remainder)がシグナリングされることができ、前記not planar flagはシグナリングされない。
即ち、一般的に画像に対するブロック分割になると、コーディングしようとする現在ブロックと隣接(neighboring)ブロックは、類似する画像特性を有するようになる。したがって、現在ブロックと隣接ブロックは、互いに同じまたは類似するイントラ予測モードを有する確率が高い。したがって、エンコーダは、現在ブロックのイントラ予測モードをエンコードするために、隣接ブロックのイントラ予測モードを利用することができる。
例えば、エンコーダ/デコーダは、現在ブロックに対するMPM(most probable modes)リストを構成することができる。前記MPMリストは、MPM候補リストと示すこともできる。ここで、MPMとは、イントラ予測モードコーディング時、現在ブロックと隣接ブロックの類似性を考慮してコーディング効率を向上させるために利用されるモードを意味することができる。前述したように、MPMリストは、プラナーモードを含んで構成されることもでき、または、プラナーモードを除外して構成されることもできる。例えば、MPMリストがプラナーモードを含む場合、MPMリストの候補の個数は6個である。そして、MPMリストがプラナーモードを含まない場合、MPMリストの候補の個数は5個である。
エンコーダ/デコーダは、5個または6個のMPMを含むMPMリストを構成することができる。
MPMリストを構成するために、デフォルトイントラモード(Default intra modes)、隣接イントラモード(Neighbour intra modes)、及び導出されたイントラモード(Derived intra modes)の三つの種類のモードが考慮されることができる。
前記隣接イントラモードのために、二つの隣接ブロック、即ち、左側隣接ブロック及び上側隣接ブロックが考慮されることができる。
前述したように、もし、MPMリストがプラナーモードを含まないように構成する場合、前記リストからプラナー(planar)モードが除外され、前記MPMリスト候補の個数は、5個に設定されることができる。
また、イントラ予測モードのうち、非方向性モード(または、非角度モード)は、現在ブロックの隣接(neighboring)参照サンプルの平均(average)ベースのDCモードまたは補間(interpolation)ベースのプラナー(planar)モードを含むことができる。
インター予測が適用される場合、エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現在ピクチャ以外のピクチャのデータ要素(ex.サンプル値、又は動き情報)に依存的な方法で導出される予測を示すことができる。現在ブロックにインター予測が適用される場合、参照ピクチャのインデックスの指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロック(予測サンプルアレイ)を誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、現在ブロックの動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャのインデックスを含むことができる。前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測等)の情報を更に含むことができる。インター予測が適用される場合、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間的隣接ブロックを含む参照ピクチャとは同一であってもよく、異なってもよい。前記時間的隣接ブロックは、同じ位置参照ブロック(collocated reference block)、同じ位置CU(colCU)等の名称で呼ばれ得、前記時間的隣接ブロックを含む参照ピクチャは、同じ位置ピクチャ(collocated picture、colPic)と呼ばれることもある。例えば、現在ブロックの隣接ブロックに基づいて動き情報の候補リストが構成されることができ、前記現在ブロックの動きベクトル及び/又は参照ピクチャのインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグ又はインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が行われ、例えば、スキップモードとマージモードの場合、現在ブロックの動き情報は、選択された隣接ブロックの動き情報を同一であり得る。スキップモードの場合、マージモードと異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)はシグナリングされることができる。この場合、前記動きベクトル予測子及び動きベクトル差分の和を用いて、前記現在ブロックの動きベクトルを導出することができる。
前記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測等)に応じて、L0動き情報及び/又はL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトル又はMVL0と呼ばれ得、L1方向の動きベクトルは、L1動きベクトル又はMVL1と呼ばれ得る。L0動きベクトルに基づいた予測は、L0予測と呼ばれ得、L1動きベクトルに基づいた予測をL1予測と呼ばれ得、前記L0動きベクトル及び前記L1動きベクトルの両方に基づいた予測を双(Bi)予測と呼ばれ得る。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連した動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連した動きベクトルを示すことができる。参照ピクチャリストL0は、前記現在ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャに含むことができ、参照ピクチャリストL1は、前記現在ピクチャよりも、出力順序上、以後のピクチャを含むことができる。前記以前のピクチャは、順方向(参照)ピクチャと呼ばれ得、前記以後のピクチャは、逆方向(参照)ピクチャと呼ばれ得る。前記参照ピクチャリストL0は、前記現在ピクチャよりも、出力順序上、以後のピクチャを参照ピクチャにさらに含むことができる。この場合、前記参照ピクチャリストL0内で前記以前のピクチャが先にインデキシングされ、前記以後のピクチャは、その後にインデキシングされ得る。前記参照ピクチャリストL1は、前記現在ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャにさらに含むことができる。この場合、前記参照ピクチャリスト1内で前記以後のピクチャが先にインデキシングされ、前記以前のピクチャは、その後にインデキシングされ得る。ここで、出力順序は、POC(picture order count)順序(order)に対応し得る。
図4は、例示的なブロックツリー構造を示す。図4は、クワッドツリー及び隋伴されるマルチタイプツリー(quadtree and nested multi-type tree)構造に基づいて CTUが多重CUに分割されることを例示的に示す。
ボールドブロックエッジ(bold block edges)は、クワッドツリーパーティショニングを、残りのエッジは、マルチタイプツリーパーティショニングを示す。マルチタイプツリーを伴ったクワッドツリーパーティションは、コンテンツ-アダプティブコーディングツリー構造を提供することができる。CUは、コーディングブロック(CB)に対応することができる。あるいは、CUは、ルマサンプルのコーディングブロックと、対応するクロマサンプルの二つのコーディングブロックを含むことができる。CUのサイズは、CTUだけ大きくてもよく、またはルマサンプル単位で4×4ほど小さくてもよい。例えば、4:2:0カラーフォーマット(orクロマフォーマット)の場合、最大クロマCBサイズは64×64であり、最小クロマCBサイズは2×2であり得る。
本文書において、例えば、最大許容ルマTBサイズは64×64であり、最大許容クロマTBサイズは32×32であり得る。前記ツリー構造に沿って分割されたCBの幅または高さが最大の変換幅または高さより大きい場合、そのCBは、自動的に(または暗黙的に)水平方向及び垂直方向のTBサイズ制限を満足するまで分割されることができる。
本文書において、コーディングツリースキームは、ルマ及びクロマ(成分)ブロックが個別的(separate)ブロックツリー構造を有することを支援することができる。個別的ブロックツリー構造を有するブロックは、個別的ツリーでコーディングされたものであり得る。一つのCTU内ルマ及びクロマブロックが同一ブロックツリー構造を有する場合は、SINGLE_TREE(シングルツリー構造)と示すことができる。一つのCTU内ルマ及びクロマブロックが個別的ブロックツリー構造を有する場合は、DUAL_TREE(シングルツリー構造)と示すことができる。この場合、ルマ成分に対するブロックツリータイプは、DUAL_TREE_LUMAと呼ばれることができ、クロマ成分に対するブロックツリータイプは、DUAL_TREE_CHROMAと呼ばれることができる。デュアルツリー構造を有するブロックは、デュアルツリーでコーディングされたものであり得る。P及びBスライス/タイルグループに対して、一つのCTU内ルマ及びクロマCTBは、同一コーディングツリー構造を有するように制限されることができる。しかし、Iスライス/タイルグループに対して、ルマ及びクロマブロックは、互いに個別的ブロックツリー構造を有することができる。個別的ブロックツリーモードが適用される場合、ルマCTBは、特定コーディングツリー構造に基づいてCUに分割され、クロマCTBは、他のコーディングツリー構造に基づいてクロマCUに分割されることができる。これは、Iスライス/タイルグループ内CUは、ルマ成分のコーディングブロックまたは二つのクロマ成分のコーディングブロックで構成され、PまたはBスライス/タイルグループのCUは、三つのカラー成分のブロックで構成されることができることを意味することができる。本文書において、スライスは、タイル/タイルグループと呼ばれることができ、タイル/タイルグループは、スライスと呼ばれることができる。
マルチタイプのツリーを伴ったクワッドツリーコーディングツリー構造について説明したが、CUが分割される構造はこれに限定されない。例えば、BT構造及びTT構造は、多数分割ツリー(Multiple partitioning Tree、MPT)構造に含まれる概念に解釈されることができ、CUは、QT構造及びMPT構造を通じて分割されると解釈することができる。QT構造及びMPT構造を通じてCUが分割される一例において、QT構造のリーフノードがいくつかのブロックに分割されるかに関する情報を含む構文要素(例えば、MPT_split_type)及びQT構造のリーフノードが垂直と水平のうち、どちらの方向に分割されるかに関する情報を含む構文要素(例えば、MPT_split_mode)がシグナリングされることで、分割構造が決定され得る。
また他の例において、CUは、QT構造、BT構造またはTT構造と別の方法で分割されることができる。つまり、QT構造に応じて、下位デプスのCUが上位デプスのCUの1/4サイズに分割されたり、BT構造に応じて、下位デプスのCUが上位デプスのCUの1/2サイズに分割されたり、TT構造に応じて、下位デプスのCUが上位デプスのCUの1/4または1/2のサイズに分割されるのとは異なり、下位デプスのCUは、場合によって、上位デプスのCUの1/5、1/3、3/8、3/5、2/3または5/8のサイズに分割されることができ、CUが分割される方法は、これに限定されない。
図5は、コーディングされた画像/ビデオに対する階層構造を例示的に示す。
図5を参照すると、コーディングされた画像/ビデオは、画像/ビデオのデコード処理及びそのものを扱うVCL(video coding layer、ビデオコーディングレイヤ)、符号化された情報を送信して格納する下位システム、そして、VCLと下位システムとの間に存在してネットワーク適応機能を担当するNAL(network abstraction layer、ネットワーク抽象レイヤ)に分けられている。
VCLでは、圧縮された画像データ(スライスデータ)を含むVCLデータを生成するか、あるいはピクチャパラメータセット(Picture Parameter Set:PPS)、シーケンスパラメータセット(Sequence Parameter Set:SPS)、ビデオパラメータセット(Video Parameter Set:VPS)などの情報を含むパラメータセットまたは画像のデコーディング過程に付加的に必要なSEI(Supplemental Enhancement Information)メッセージを生成することができる。
NALでは、VCLで生成されたRBSP(Raw Byte Sequence Payload)にヘッダ情報(NALユニットヘッダ)を付け加えてNALユニットを生成することができる。この時、RBSPは、VCLで生成されたスライスデータ、パラメータセット、SEIメッセージなどを言う。NALユニットヘッダには当該NALユニットに含まれるRBSPデータによって特定されるNALユニットタイプの情報を含むことができる。
前記図面で示したように、NALユニットは、VCLで生成されたRBSPによってVCL NALユニットとNon-VCL NALユニットに分けられることができる。VCL NALユニットは、画像に対する情報(スライスデータ)を含んでいるNALユニットを意味することができ、Non-VCL NALユニットは、画像をデコーディングするために必要な情報(パラメータセットまたはSEIメッセージ)を含んでいるNALユニットを意味することができる。
前述のVCL NALユニット、Non-VCL NALユニットは、下位システムのデータ規格によってヘッダ情報を付けてネットワークを介して送信されることができる。例えば、NALユニットは、H.266/VVCファイルフォーマット、RTP(Real-time Transport Protocol)、TS(Transport Stream)などのような所定規格のデータ形態に変形されて、多様なネットワークを介して送信されることができる。
前述のように、NALユニットは、当該NALユニットに含まれるRBSPデータ構造(structure)によってNALユニットのタイプが特定されることができ、このようなNALユニットのタイプに対する情報は、NALユニットヘッダに格納されて、シグナリングされることができる。
例えば、NALユニットが画像に対する情報(スライスデータ)を含むか否かによって、大きく、VCL NALユニットタイプとNon-VCL NALユニットタイプに分類されることができる。VCL NALユニットタイプは、VCL NALユニットが含むピクチャの性質及び種類などによって分類されることができ、Non-VCL NALユニットタイプは、パラメータセットの種類などによって分類されることができる。
以下は、Non-VCL NALユニットタイプが含むパラメータセットの種類などによって特定されたNALユニットタイプの一例である。
- APS(Adaptation Parameter Set)NAL unit:APSを含むNALユニットに対するタイプ
- DPS(Decoding Parameter Set)NAL unit:DPSを含むNALユニットに対するタイプ
- VPS(Video Parameter Set)NAL unit:VPSを含むNALユニットに対するタイプ
- SPS(Sequence Parameter Set)NAL unit:SPSを含むNALユニットに対するタイプ
- PPS(Picture Parameter Set)NAL unit:PPSを含むNALユニットに対するタイプ
- PH(Picture header)NAL unit:PHを含む NALユニットに対するタイプ
前述のNALユニットタイプは、NALユニットタイプのためのシンタックス情報を有し、前記シンタックス情報は、NALユニットヘッダに格納されてシグナリングされることができる。例えば、前記シンタックス情報は、nal_unit_typeであり得、NALユニットタイプは、nal_unit_type値で特定されることができる。
一方、前述のように、一つのピクチャは、複数のスライスを含むことができ、一つのスライスは、スライスヘッダ及びスライスデータを含むことができる。この場合、一つのピクチャ内の複数のスライス(スライスヘッダ及びスライスデータ集合)に対して、一つのピクチャヘッダがさらに付加されることができる。前記ピクチャヘッダ(ピクチャヘッダシンタックス)は、前記ピクチャに共通的に適用することができる情報/パラメータを含むことができる。本文書において、スライスは、タイルグループで混用または代替されることができる。また、本文書において、スライスヘッダは、タイプグループヘッダで混用または代替されることができる。
前記スライスヘッダ(スライスヘッダシンタックス)は、前記スライスに共通的に適用することができる情報/パラメータを含むことができる。前記APS(APSシンタックス)またはPPS(PPSシンタックス)は、一つ以上のスライスまたはピクチャに共通的に適用することができる情報/パラメータを含むことができる。前記SPS(SPSシンタックス)は、一つ以上のシーケンスに共通的に適用することができる情報/パラメータを含むことができる。前記VPS(VPSシンタックス)は、多重レイヤドに共通的に適用することができる情報/パラメータを含むことができる。前記DPS(DPSシンタックス)は、ビデオ全般に共通的に適用することができる情報/パラメータを含むことができる。前記DPSは、CVS(coded video sequence)の接合(concatenation)に係わる情報/パラメータを含むことができる。本文書において、上位レベルシンタックス(HighLevel syntax、HLS)とは、前記APSシンタックス、PPSシンタックス、SPSシンタックス、VPSシンタックス、DPSシンタックス、ピクチャヘッダシンタックス、スライスヘッダシンタックスの少なくとも一つを含むことができる。
本文書において、エンコード装置からデコード装置でエンコーディングされてビットストリーム形態でシグナリングされる画像/ビデオ情報は、ピクチャ内のパーティショニング関連情報、イントラ/インター予測情報、レジデュアル情報、ループ内フィルタリング情報などを含むだけでなく、前記スライスヘッダに含まれた情報、前記ピクチャヘッダに含まれた情報、前記APSに含まれた情報、前記PPSに含まれた情報、SPSに含まれた情報、VPSに含まれた情報及び/またはDPSに含まれた情報を含むことができる。また、前記画像/ビデオ情報は、NALユニットヘッダの情報をさらに含むことができる。
一方、量子化などの圧縮符号化過程で発生するエラーによる原本(original)画像と復元画像の差を補償するために、前述のように、復元サンプルまたは復元ピクチャにループ内フィルタリング手順が実行されることができる。前述のように、ループ内フィルタリングはエンコード装置のフィルタ部及びデコード装置のフィルタ部で実行されることができ、デブロッキングフィルタ、SAO及び/または適応的ループフィルタ(ALF)が適用されることができる。例えば、ALF手順は、デブロッキングフィルタリング手順及び/またはSAO手順が完了された後に実行されることができる。ただ、この場合にも、デブロッキングフィルタリング手順及び/またはSAO手順が省略され得る。
一方、コーディング効率を高めるために、前述のように、LMCS(luma mapping wth chroma scaling)が適用されることができる。LMCSは、ループ整形器(整形)と指称されることができる。コーディング効率を高めるために、LMCSの制御及び/またはLMCS関連情報のシグナリングは、階層的に実行されることができる。
図6は、本文書の一実施形態に係るCVSの階層的な構造を例示的に示す。CVS(coded video suquence)は、SPS、PPS、タイルグループヘッダ(tile group header)、タイルデータ(tile data)、及び/またはCTUを含むことができる。ここで、タイルグループヘッダ及びタイルデータは、それぞれスライスヘッダ及びスライスデータと指称されることもできる。
SPSは、CVSで用いられるように、ツールを使用可能にするためのフラグを原始的に含むことができる。また、SPSは、ピクチャごとに変わるパラメータに対する情報を含むPPSによって参照されることができる。符号化されたピクチャのそれぞれは、一つ以上の符号化された矩形ドメインのタイルを含むことができる。前記タイルは、タイルグループを形成するラスタースキャンでグループ化されることができる。各タイルグループは、タイルグループというヘッダ情報にカプセル化される。各タイルは、符号化されたデータを含むCTUで構成される。ここで、データは原本サンプル値、予測サンプル値、及びそのルマ及びクロマ成分(ルマ予測サンプル値及びクロマ予測サンプル値)を含むことができる。
従来の方法によれば、ALFデータ(ALFパラメータ)またはLMCSデータ(LMCSパラメータ)は、タイルグループヘッダに含まれた。一つのビデオが多数のピクチャで構成され、一つのピクチャが多数のタイルを含むことを考慮すると、ALFデータ(ALFパラメータ)またはLMCSデータ(LMCSパラメータ)のシグナリングがタイルグループ単位で頻繁に行われることは、コーディング効率を低下させるという問題があった。
本文書において提案された一実施形態に係ると、前記ALFパラメータまたはLMCSデータ(LMCSパラメータ)は、APSに含まれてシグナリングされることができる。
一実施形態において、APSが定義され、前記APSは、必要なALFデータ(ALFパラメータ)を運ぶことができる。しかも、APSは、自己識別パラメータ(self-identification Parameter)及びALFデータを有することができる。前記APSの自己識別パラメータはAPS IDを含むことができる。すなわち、前記APSは、ALFデータフィールドの外にも前記APS IDを示す情報を含むことができる。タイルグループヘッダまたはスライスヘッダは、APSインデックス情報を利用してAPSを参照することができる。言い換えれば、タイルグループヘッダまたはスライスヘッダは、APSインデックス情報を含むことができ、前記APSインデックス情報が示すAPS IDを有するAPSに含まれたALFデータ(ALFパラメータ)に基づいて対象ブロックに対するALF手順を実行することができる。ここで、前記APSインデックス情報はAPS ID情報とも呼ばれ得る。
また、前記SPSは、ALFの使用を許容するフラグを含むことができる。例えば、CVSが始まる(begin)時、SPSがチェックされ、前記SPS内に前記フラグがチェックされることができる。例えば、SPSは、下表1のシンタックスを含むことができる。表1のシンタックスは、SPSの一部分であり得る。
前記表1のシンタックスに含まれたシンタックス要素のセマンティクスは、例えば、次の表のように示すことができる。
すなわち、前記sps_alf_enabled_flagシンタックス要素は、その値が0であるか、1であるかに基づいて、ALFの可用可否を表すことができる。sps_alf_enabled_flagシンタックス要素は、ALF可用フラグ(第1ALF可用フラグと呼ばれ得る)と呼ばれ得、SPSに含まれることができる。すなわち、前記ALF可用フラグは、SPS(またはSPSレベル)でシグナリングされることができる。前記SPSでシグナリングされる前記ALF可用フラグの値が1である場合、前記SPSを参照するCVS内のピクチャに対して基本的にALFが可用に決められることができる。一方、前述のように、前記SPSよりも下位レベルで追加的な可用フラグをシグナリングして、個別的にALFをon/off処理することもできる。
例えば、ALFツールがCVSに対して可用である場合、タイルグループヘッダまたはスライスヘッダで追加的な可用フラグ(第2ALF可用フラグと呼ばれ得る)がシグナリングされることができる。前記第2ALF可用フラグは、例えば、SPSレベルでALFが可用である場合にパーシング/シグナリングされることができる。もし、第2ALF可用フラグの値が1である場合、前記タイルグループヘッダまたは前記スライスヘッダを通じてALFデータをパーシングすることができる。例えば、前記第2ALF可用フラグは、ルマ及びクロマ成分に関するALF可用条件(condition)を明示(specify)することができる。前記ALFデータは、APS ID情報を通じて接近することができる。
前記表3または表4のシンタックスに含まれたシンタックス要素のセマンティクスは、例えば、次の表のように示すことができる。
前記第2ALF可用フラグは、tile_group_alf_enabled_flagシンタックス要素またはslice_alf_enabled_flagシンタックス要素を含むことができる。
前記APS ID情報(ex.tile_group_aps_idシンタックス要素またはslice_aps_idシンタックス要素)に基づいて当該タイルグループまたは当該スライスで参照するAPSが識別されることができる。前記APSはALFデータを含むことができる。
一方、ALFデータを含むAPSの構造は、例えば、次のようなシンタックス及びセマンティクスに基づいて説明されることができる。表7のシンタックスは、APSの一部分であり得る。
前記のように、adaptation_parameter_set_idシンタックス要素は、当該APSの識別子を示すことができる。すなわち、APSは、前記adaptation_parameter_set_idシンタックス要素に基づいて識別されることができる。前記adaptation_parameter_set_idシンタックス要素は、APS ID情報と呼ばれることができる。また、前記APSは、ALFデータフィールドを含むことができる。前記ALFデータフィールドは、前記adaptation_parameter_set_idシンタックス要素以後にパーシング/シグナリングされることができる。
また、例えば、APSでAPS拡張フラグ(ex.aps_extension_flagシンタックス要素)がパーシング/シグナリングされることができる。前記APS拡張フラグは、APS拡張データフラグ(aps_extension_data_flag)シンタックス要素が存在するか否かを指示することができる。前記APS拡張フラグは、例えばVVC標準の以後のバージョンのための拡張ポイントを提供するために用いられることができる。
図7は、本文書の一実施形態に係る例示的なLMCS構造を示す。図7のLMCS構造700は、適応的ピースワイズ線形(adaptive piecewise linear、adaptive PWL)モデルに基づいたルマ成分のループ内マッピング(in-loop mapping)部分710と、クロマ成分に対してルマ-依存的なクロマレジデュアルスケーリング(luma-dependent chroma residual scaling)部分720を含むことができる。ループ内マッピング部分710の逆量子化及び逆変換711、復元712、及びイントラ予測713ブロックは、マッピングされた(整形された(reshaped))ドメインで適用されるプロセスを示す。ループ内マッピング部分710のループフィルタ715、動き補償またはインター予測717ブロック、及びクロマレジデュアルスケーリング部分720の復元722、イントラ予測723、動き補償またはインター予測724、ループフィルタ725ブロックは、本来の(マッピングされない(non-mapped)、整形されない)ドメインで適用されるプロセスを示す。
図7で説明するように、LMCSが使用可能になると、逆整形(マッピング)プロセス714、フォワード整形(マッピング)プロセス718、及びクロマスケーリングプロセス721の少なくとも一つが適用されることができる。例えば、逆整形プロセスは、復元されたピクチャの(復元された)ルマサンプル(またはルマサンプルまたはルマサンプルアレイ)に適用されることができる。逆整形プロセスは、ルマサンプルの部分関数(逆)インデックス(piecewise function(inverse)index)に基づいて実行されることができる。部分関数(逆)インデックスは、ルマサンプルが属するピース(または部分)を識別することができる。逆整形プロセスの出力は、修正された(復元)ルマサンプル(または修正されたルマサンプルまたは修正されたルマサンプルアレイ)である。LMCSは、タイルグループ(またはスライス)、ピクチャまたはより高いレベルで使用可能になるか、または使用不可能になることができる。
フォワード整形プロセス及び/またはクロマスケーリングプロセスは、復元されたピクチャを生成するために適用されることができる。ピクチャは、ルマサンプルとクロマサンプルを含むことができる。ルマサンプルを有する復元されたピクチャは、復元されたルマピクチャと指称されることができ、クロマサンプルを有する復元されたピクチャは、復元されたクロマピクチャと指称されることができる。復元されたルマピクチャと復元されたクロマピクチャの組合は、復元されたピクチャと指称されることができる。復元されたルマピクチャは、フォワード整形プロセスに基づいて生成されることができる。例えば、インター予測が現在ブロックに適用されると、フォワード整形は、参照ピクチャの(復元された)ルマサンプルに基づいて導出されたルマ予測サンプルに適用される。参照ピクチャの(復元された)ルマサンプルは、逆整形プロセスに基づいて生成されるので、フォワード整形がルマ予測サンプルに適用されて整形された(マッピングされた)ルマ予測サンプルが導出されることができる。フォワード整形プロセスは、ルマ予測サンプルの部分関数インデックスに基づいて実行されることができる。部分関数インデックスは、インター予測に用いられた参照ピクチャのルマ予測サンプルの値またはルマサンプルの値に基づいて導出されることができる。イントラ予測(またはIBC(intra block copy))が現在ブロックに適用される場合、逆整形プロセスが現在ピクチャの復元されたサンプルにまだ適用されなかったので、フォワードマッピングは必要でない。復元されたルマピクチャで(復元された)ルマサンプルは整形されたルマ予測サンプル及び対応するルマレジデュアルサンプルに基づいて生成される。
復元されたクロマピクチャは、クロマスケーリングプロセスに基づいて生成されることができる。例えば、復元されたクロマピクチャでの(復元された)クロマサンプルは、現在ブロックでのクロマ予測サンプル及びクロマレジデュアルサンプル(cres)に基づいて導出されることができる。クロマレジデュアルサンプル(cres)は現在ブロックに対する(スケーリングされた)クロマレジデュアルサンプル(cresScale)及びクロマレジデュアルスケーリングファクター(cScaleInvはvarScaleと指称されることができる)に基づいて導出される。クロマレジデュアルスケーリングファクターは、現在ブロックで整形されたルマ予測サンプル値に基づいて計算されることができる。例えば、スケーリングファクターは、整形されたルマ予測サンプル値(Y`pred)の平均ルマ値(ave(Y`pred))に基づいて計算されることができる。参考に、逆変換/逆量子化に基づいて導出された(スケーリングされた)クロマレジデュアルサンプルはcresScale、前記(スケーリングされた)クロマレジデュアルサンプルに(逆)スケーリング手順を実行して導出されるクロマレジデュアルサンプルはcresと指称されることができる。
図8は、本文書の他の一実施形態に係るLMCS構造を示す。図8は、図7を参照して説明され得る。ここでは、図8のLMCS構造と図7のLMCS構造700との間の差について主に説明する。図8のループ内マッピング部分とルマ-依存的なクロマレジデュアルスケーリング部分は、それぞれ図7のループ内マッピング部分710とルマ-依存的なクロマレジデュアルスケーリング部分720と同一/類似するように動作することができる。
図8を参照すると、ルマ復元サンプルに基づいてクロマレジデュアルスケーリングファクターを導出することができる。この場合、復元ブロックの内部ルマ復元サンプルではない復元ブロック外部の周辺ルマ復元サンプルに基づいて平均ルマ値(avgYr)を獲得することができ、前記平均ルマ値(avgYr)に基づいてクロマレジデュアルスケーリングファクターを導出することができる。ここで、前記周辺ルマ復元サンプルは、現在ブロックの周辺ルマ復元サンプルであり得、または前記現在ブロックを含むVPDU(virtualpipeline data units)の周辺ルマ復元サンプルであり得る。例えば、対象ブロックにイントラ予測が適用される場合、前記イントラ予測に基づいて導出された予測サンプルに基づいて復元サンプルが導出されることができる。また、例えば、前記対象ブロックにインター予測が適用される場合、前記インター予測に基づいて導出された予測サンプルにフォワードマッピングを適用し、整形された(あるいはフォワードマッピングされた)ルマ予測サンプルに基づいて復元サンプルが生成されることができる。
ビットストリームを介してシグナリングされる動画/画像情報は、LMCSパラメータ(LMCSに対する情報)を含むことができる。LMCSパラメータは、HLS(high level syntax、スライスヘッダシンタックスを含む)などで構成されることができる。LMCSパラメータ及び構成の詳細な説明は後述される。前述のように、本文書(及び以下の実施形態)で説明されたシンタックス表は、エンコーダ段で構成/エンコードされることができ、ビットストリームを介してデコーダ段にシグナリングされることができる。デコーダは、シンタックス表でLMCSに対する情報(シンタックス構成要素の形態で)をパーシング/デコーディングすることができる。以下で説明される一つ以上の実施形態は組み合わせられることができる。エンコーダは、LMCSに関する情報に基づいて現在ピクチャをエンコーディングすることができ、そして、デコーダは、LMCSに関する情報に基づいて現在ピクチャをデコーディングすることができる。
ルマ成分のループ内マッピングは、圧縮効率を向上させるために、動的範囲にかけてコードワードを再分配することにより入力信号の動的範囲を調節することができる。ルママッピングのために、フォワードマッピング(整形)関数(FwdMap)と、前記フォワードマッピング関数(FwdMap)に対応する逆マッピング(整形)関数(InvMap)が用いられることができる。フォワードマッピング関数(FwdMap)は、部分線形モデルを利用してシグナリングされることができ、例えば、部分線形モデルは、16個のピース(pieces)またはビン(bins)を有することができる。前記ピースは、同じ長さを有することができる。一例において、逆マッピング関数(InvMap)は別途にシグナリングされなくてもよく、その代わりにフォワードマッピング関数(FwdMap)から導出されることができる。すなわち、逆マッピングは、フォワードマッピングの関数であり得る。例えば、逆マッピング関数は、y=xを基準として、フォワードマッピング関数を対称させた関数であり得る。
ループ内(ルマ)整形(reshaping)は、整形されたドメインで入力ルマ値(サンプル)を変更された値にマッピングするのみ用いられることができる。整形された値は符号化され、そして復元後に本来の(マッピングされない、整形されない)ドメインに再びマッピングされることができる。クロマレジデュアルスケーリングは、ルマ信号とクロマ信号との間の差を補償するために適用されることができる。ループ内整形は、整形器モデルのためのハイレベルシンタックスを指定して実行されることができる。整形器モデルシンタックスは、部分線形モデル(PWLモデル)をシグナリングすることができる。部分線形モデルに基づいてフォワードルックアップテーブル(FwdLUT)及び/または逆ルックアップテーブル(InvLUT)が導出されることができる。一例として、フォワードルックアップテーブル(FwdLUT)が導出された場合、フォワードルックアップテーブル(FwdLUT)に基づいて逆ルックアップテーブル(InvLUT)が導出されることができる。フォワードルックアップテーブル(FwdLUT)は入力ルマ値Yiを変更された値Yrにマッピングし、逆ルックアップテーブル(InvLUT)は、変更された値に基づいた復元値Yrを復元された値Y`iにマッピングすることができる。復元された値Y`iは入力ルマ値Yiに基づいて導出されることができる。
一例において、SPSは、下表9のシンタックスを含むことができる。表9のシンタックスは、ツール使用可能なフラグとしてsps_reshaper_enabled_flagを含むことができる。ここで、sps_reshaper_enabled_flagは、整形器がCVS(coded video sequence)で使用されるどうかを指定するのに利用されることができる。すなわち、sps_reshaper_enabled_flagは、SPSで整形を使用可能にするフラグであり得る。一例において、表9のシンタックスはSPSの一部分であり得る。
一例において、sps_seq_parameter_set_id及びsps_reshaper_enabled_flagが示すことができるセマンティクスは、下表10の通りであり得る。
一例において、タイルグループヘッダまたはスライスヘッダは、下表11 または表12のシンタックスを含むことができる。
前記表11または表12のシンタックスに含まれたシンタックス要素のセマンティクスは、例えば、次の表に開示された事項を含むことができる。
一例として、sps_reshaper_enabled_flagがパーシングされると、タイルグループヘッダは、ルックアップテーブル(FwdLUT及び/またはInvLUT)を構成するのに用いられる追加的なデータ(例えば、前記表13または14に含まれた情報)をパーシングすることができる。このために、SPS整形器フラグの状態がスライスヘッダまたはタイルグループヘッダで確認されることができる。sps_reshaper_enabled_flagが真(または1)である場合、追加的なフラグ、tile_group_reshaper_model_present_flag(またはslice_reshaper_model_present_flag)がパーシングされることができる。tile_group_reshaper_model_present_flag(またはslice_reshaper_model_present_flag)の目的は、整形器モデルの存在を指示するのにあり得る。例えば、tile_group_reshaper_model_present_flag(またはslice_reshaper_model_present_flag)が真(または1)である場合、現在タイルグループ(または現在スライス)に対して整形器が存在すると指示されることができる。tile_group_reshaper_model_present_flag(またはslice_reshaper_model_present_flag)が偽(または0)である場合、現在タイルグループ(または現在スライス)に対して整形器が存在しないと指示されることができる。
整形器が存在し、そして整形器が現在タイルグループ(または現在スライス)で使用可能になった場合、整形器モデル(例えば、tile_group_reshaper_model()またはslice_reshaper_model())はプロセッシングされることができ、これに加えて、追加的なフラグ、tile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)もパーシングされることができる。tile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)は、整形器モデルが現在タイルグループ(またはスライス)に用いられたか否かを指示することができる。例えば、tile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)が0(または偽)であると、整形器モデルは、現在タイルグループ(または現在スライス)に用いられていないことと指示されることができる。tile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)が1(または真)であると、整形器モデルは、現在タイルグループ(またはスライス)に用いられたことと指示されることができる。
一例として、例えば、tile_group_reshaper_model_present_flag(またはslice_reshaper_model_present_flag)が真(または1)であり、tile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)が偽(または0)であり得る。これは、整形器モデルが存在するが、現在タイルグループ(またはスライス)で用いられなかったことを意味する。このような場合、整形器モデルは、次のタイルグループ(またはスライス)で用いられることができる。他の例として、tile_group_reshaper_enable_flagが真(または1)であり、tile_group_reshaper_model_present_flagが偽(または0)であり得る。
整形器モデル(例えば、tile_group_reshaper_model()またはslice_reshaper_model())及びtile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)がパーシングされると、クロマスケーリングのために必要な条件が存在するか否かが判断(評価)されることができる。前記条件は、条件1(現在タイルグループ/スライスがイントラ符号化されないこと)及び/または条件2(現在タイルグループ/スライスがルマ及びクロマに対する二つの区分されたコーディングクアッドツリー構造に分割されないこと、すなわち現在タイルグループ/スライスがデュアルツリー構造でないこと)を含むことができる。条件1及び/または条件2が真であり、及び/またはtile_group_reshaper_enable_flag(またはslice_reshaper_enable_flag)が真(または1)であると、tile_group_reshaper_chroma_residual_scale_flag(またはslice_reshaper_chroma_residual_scale_flag)がパーシングされることができる。tile_group_reshaper_chroma_residual_scale_flag(またはslice_reshaper_chroma_residual_scale_flag)が使用可能であると(1または真であると)、現在タイルグループ(またはスライス)に対してクロマレジデュアルスケーリングが使用可能になったことが指示されることができる。tile_group_reshaper_chroma_residual_scale_flag(またはslice_reshaper_chroma_residual_scale_flag)が使用不可能になると(0または偽であると)、現在タイルグループ(またはスライス)に対してクロマレジデュアルスケーリングが使用不可能になったことが指示されることができる。
前述の整形の目的は、ルックアップテーブル(FwdLUT及び/またはInvLUT)を構成するために必要なデータをパーシングすることである。一例において、前記パーシングされたデータに基づいて構成されたルックアップテーブルは許容可能なルマ値範囲の分布を複数個のビン(例えば、16個)に分けることができる。よって、与えられたビン内にあるルマ値は変更されたルマ値にマッピングされることができる。
図9は、例示的なフォワードマッピングを示すグラフを示す。図9では、例示的に5つのビンのみ示される。
図9を参照すると、x軸は入力ルマ値を示し、y軸は変更された出力ルマ値を示す。x軸は、5つのビンまたはピースに分けられ、各ビンは長さLを有する。すなわち、変更されたルマ値にマッピングされた5つのビンは互いに同じ長さを有する。フォワードルックアップテーブル(FwdLUT)は、タイルグループヘッダで利用可能なデータ(例えば、整形器データ)を用いて構成されることができ、これからマッピングが容易になり得る。
一実施形態において、前記ビンインデックスに関する出力ピボットポイント(output pivot points)が計算されることができる。出力ピボットポイントは、ルマコードワード整形の出力範囲の最小及び最大境界を設定(マーキング)することができる。出力ピボットポイントを計算する過程は、コードワードの数の部分累積(piecewise cumulative)分布関数に基づいて実行されることができる。前記出力ピボット範囲は、用いられるビンの最大個数及びルックアップテーブル(FwdLUTまたはInvLUT)の大きさに基づいて分割されることができる。一例として、前記出力ピボット範囲は、ビンの最大個数とルックアップテーブルの大きさの間の積に基づいて分割されることができる。例えば、ビンの最大個数とルックアップテーブルの大きさの間の積が1024の場合、前記出力ピボット範囲は1024個のエントリーに分割されることができる。前記出力ピボット範囲の分割は、スケーリングファクターに基づいて(利用して)実行(適用または達成)されることができる。一例において、スケーリングファクターは、以下の数式1に基づいて導出されることができる。
前記数式1で、SFは、スケーリングファクターを示し、y1及びy2は、それぞれのビンに対応する出力ピボットポイントを示す。また、FP_PREC及びcは予め決められた定数であり得る。前記数式1に基づいて決められるスケーリングファクターは、フォワード整形のためのスケーリングファクターと指称されることができる。
他の実施形態において、逆整形(逆マッピング)に関連して、ビンの定義された範囲(例えば、reshaper_model_min_bin_idxからreshape_model_max_bin_idxまで)に対して、フォワードルックアップテーブル(FwdLUT)のマッピングされたピボットポイントに対応する入力整形されたピボットポイント及びマッピングされた逆出力ピボットポイント(ビンインデックス*初期コードワードの数で与えられる)がパッチされる。他の例において、スケーリングファクター(SF)は、以下の数式2に基づいて導出されることができる。
前記数式2で、SFは、スケーリングファクターを示し、x1及びx2は、入力ピボットポイントを示し、y1及びy2は、それぞれのピース(ビン)に対応する出力ピボットポイントを示す。ここで、入力ピボットポイントは、フォワードルックアップテーブル(FwdLUT)に基づいてマッピングされたピボットポイントであり得、そして出力ピボットポイントは逆ルックアップテーブル(InvLUT)に基づいて逆マッピングされたピボットポイントであり得る。また、FP_PRECは、予め決められた定数であり得る。数式2のFP_PRECは、数式1のFP_PRECと同じであるか、異なってもよい。前記数式2に基づいて決められたスケーリングファクターは、逆整形のためのスケーリングファクターと指称されることができる。逆整形の途中に、数式2のスケーリングファクターに基づいて入力ピボットポイントの分割が実行されることができる。分割された入力ピボットポイントに基づいて、0から最小ビンインデックス(reshaper_model_min_bin_idx)まで及び/または最小ビンインデックス(reshaper_model_min_bin_idx)から最大ビンインデックス(reshape_model_max_bin_idx)までの範囲に属するビンインデックスのために、最小及び最大ビン値に対応するピボット値が指定される。
一例において、LMCSデータ(lmcs_data)は、APSに含まれることができる。APSのセマンティクスは、例えば、コーディングのために、32個のAPSがシグナリングされることができる。
次の表は、本文書の一実施形態に係る例示的なAPSのシンタックス及びセマンティクスを示す。
前記表15を参照すると、APSでAPSパラメータのタイプ情報(ex.aps_params_type)がパーシング/シグナリングされることができる。APSパラメータのタイプ情報は、adaptation_parameter_set_id以後にパーシング/シグナリングされることができる。
前記表15に含まれたaps_params_type、ALF_APS及びLMCS_APSは、表16内に含まれた表3.2に従って説明されることができる。すなわち、前記表15に含まれたaps_params_typeに従ってAPSに適用されるAPSパラメータのタイプは、表16内に含まれた表3.2のように設定されることができる。表15に含まれたシンタックス要素は、表8を参照して説明されることができる。APSに関する説明は、表1乃至表8と一緒に前述された説明によって裏付けられることができる。
表16を参照すると、例えば、aps_params_typeは、当該APSパラメータのタイプを分類するためのシンタックス要素であり得る。APSパラメータのタイプは、ALFパラメータ及びLMCSパラメータを含むことができる。表16を参照すると、タイプ情報(aps_params_type)の値が0の場合、aps_params_typeの名称は、ALF_APS(or ALF APS)に決められることができ、APSパラメータのタイプは、ALFパラメータで決められることができる(APSパラメータは、ALFパラメータを示すことができる)。この場合、APSにALFデータフィールド(i.e.alf_data())がパーシング/シグナリングされることができる。タイプ情報(aps_params_type)の値が1である場合、aps_params_typeの名称は、LMCS_APS(or LMCS APS)に決められることができ、そして、APSパラメータのタイプは、LMCSパラメータで決められることができる(APSパラメータは、LMCSパラメータを示すことができる)。この場合、APSにLMCSデータフィールド(i.e.lmcs_data())がパーシング/シグナリングされることができる。
下表17及び/または18は、一実施形態に係る整形器モデルのシンタックスを示す。前記整形器モデルは、LMCSモデルと呼ばれることができる。ここで、整形器モデルは、例示的に、タイルグループ整形器で説明されたが、必ず本実施形態によって本明細本が制限されるのではない。例えば、前記整形器モデルはAPSに含まれることもでき、またはタイルグループ整形器モデルは、スライス整形器モデルまたはLMCSデータ(LMCSデータフィールド)と指称されることもできる。また、接頭語(prefix)reshaper_modelまたはRspは、lmcsと混用されて用いられることができる。例えば、次の表及び以下の説明で、reshaper_model_min_bin_idx、reshaper_model_delta_max_bin_idx、reshaper_model_max_bin_idx、RspCW、RsepDeltaCWは、それぞれlmcs_min_bin_idx、lmcs_delta_max_bin_idx、lmcs_max_bin_idx、lmcsCW、lmcsDeltaCWと混用されて用いられることができる。
前記表15に含まれたLMCSデータ(lmcs_data())または整形器モデル(タイルグループ整形器またはスライス整形器)は、次の表に含まれたシンタックスのように表現されることができる。
前記表17及び/または表18のシンタックスに含まれたシンタックス要素のセマンティクスは、例えば、次の表に開示された事項を含むことができる。
本文書に係るルマサンプルに対する逆マッピング手順は、下表のような標準文書形式で記述されることができる。
本文書に係るルマサンプルに対する区分関数インデックス(piecewise function index)手順の識別は、下表のような標準文書形式で記述されることができる。表22で、idxYInvは、逆マッピングインデックスと指称されることができ、逆マッピングインデックスは、復元ルマサンプル(luma Sample)に基づいて導出されることができる。
前述の実施形態及び例示に基づいてルママッピングが実行されることができ、前述のシンタックス及びそれに含まれた構成要素はただ例示的な表現であり得、実施形態が前述の表や数式によって制限されるのではない。以下では、ルママッピングに基づいてクロマレジデュアルスケーリング(レジデュアルサンプルのクロマ成分に対するスケーリング)を実行する方法が説明される。
(ルマ-依存的な(luma-dependent))クロマレジデュアルスケーリングは、ルマサンプル及びこれに対応するクロマサンプルの間の差を補償するためである。例えば、クロマレジデュアルスケーリングが使用可能である否かはタイルグループレベルまたはスライスグループレベルでシグナリングされることができる。一例において、ルママッピングが使用可能で、デュアルツリー分割(dual tree partitioning)が現在タイルグループに適用されない場合、ルマ-依存的なクロマレジデュアルスケーリングが使用可能である否かを指示するために、追加的なフラグがシグナリングされることができる。他の例において、ルママッピングが使用されないか、またはデュアルツリー分割が現在タイルグループに使用されないと、ルマ-依存的なクロマレジデュアルスケーリングが使用不可能になることがある。また、他の例において、クロマレジデュアルスケーリングは、4より小さいか同じ大きさを有するクロマブロックに対しては、常に使用不可能になり得る。
クロマレジデュアルスケーリングは、当該ルマ予測ブロック(イントラ予測モード及び/またはインター予測モードが適用された予測ブロックのルマ成分)の平均値に基づくことができる。エンコーダ段及び/またはデコーダ段でのスケーリング演算は、以下の数式3に基づいて固定小数点定数演算で具現されることができる。
前述の数式3において、c`は、スケーリングされたクロマレジデュアルサンプル(レジデュアルサンプルのスケーリングされたクロマ成分)を示し、cは、クロマレジデュアルサンプル(レジデュアルサンプルのクロマ成分)を示し、sは、クロマレジデュアルスケーリングファクターを示し、CSCALE_FP_PRECは、予め決められた定数を示すことができ、例えば、CSCALE_FP_PRECは、11であり得る。
図10は、本文書の一実施形態によってクロマレジデュアルスケーリングインデックスを導出する方法を示す手順図である。図10とともに説明される方法は、図7及びそれに係わる説明に含まれた表、数式、変数、アレイ、関数に基づいて実行されることができる。
S1010ステップにおいて、予測モード情報に基づいて予測モードがイントラ予測モードであるのか、またはインター予測モードであるのかが判断されることができる。予測モードがイントラ予測モードであると、現在ブロックまたは現在ブロックの予測サンプルは既整形された(マッピングされた)領域にあることと見なされる。予測モードがインター予測モードであると、現在ブロックまたは現在ブロックの予測サンプルは本来の(マッピングされない、整形されない)領域にあることと見なされる。
S1020ステップにおいて、予測モードがイントラ予測モードである場合、現在ブロック(または現在ブロックのルマ予測サンプル)の平均が計算(導出)されることができる。すなわち、既整形された領域にある現在ブロックの平均が直接計算される。平均は平均値とも指称され得る。
S1021ステップにおいて、予測モードがインター予測モードである場合、現在ブロックのルマ予測サンプルに対してフォワード整形(フォワードマッピング)が実行(適用)されることができる。フォワード整形を通じて、インター予測モードに基づいたルマ予測サンプルは、本来の領域から整形された領域にマッピングされることができる。一例において、ルマ予測サンプルに対するフォワード整形は、前述の表17及び/または18とともに説明されたLMCSデータフィールドまたは整形器モデルに基づいて実行されることができる。
S1022ステップにおいて、(フォワード)整形された、または(フォワード)マッピングされたルマ予測サンプルの平均が計算(導出)されることができる。すなわち、(フォワード)整形された、または(フォワード)マッピングされた結果に対して平均化過程が実行されることができる。
S1030ステップにおいて、クロマレジデュアルスケーリングインデックスが計算されることができる。予測モードがイントラ予測モードである場合、前記予測ルマサンプルの平均に基づいて前記クロマレジデュアルスケーリングインデックスが計算されることができる。予測モードがインター予測モードである場合、フォワード整形されたルマ予測サンプルの平均に基づいて前記クロマレジデュアルスケーリングインデックスが計算されることができる。
一実施形態において、前記クロマレジデュアルスケーリングインデックスは、forループ構文に基づいて計算されることができる。下表は、前記クロマレジデュアルスケーリングインデックスの導出(計算)のための例示的なforループ構文を示す。
前記表23で、idxSは、前記クロマレジデュアルスケーリングインデックスを示し、idxSは、if構文の条件を満たすクロマレジデュアルスケーリングインデックスが求められた否かを識別するインデックスを示し、Sは、予め決められた定数を示し、そして、MaxBinIdxは、許容可能な最大ビンインデックスを示す。ReshapPivot[idxS+1](言い換えれば、LmcsPivot[idxS+1])は、前述の表19及び/または20に基づいて導出されることができる。
一実施形態において、クロマレジデュアルスケーリングファクターは、前記クロマレジデュアルスケーリングインデックスに基づいて導出されることができる。以下の数式4は、前記クロマレジデュアルスケーリングファクターの導出のための一例である。
前記数式4で、sは、前記クロマレジデュアルスケーリングファクターを示し、そして、ChromaScaleCoefは、前述の表19及び/または20に基づいて導出された変数(またはアレイ)であり得る。
前述のように、前記参照サンプルの平均ルマ値を獲得することができ、前記平均ルマ値に基づいてクロマレジデュアルスケーリングファクターを導出することができる。前記クロマレジデュアルスケーリングファクターに基づいてクロマ成分レジデュアルサンプルに対するスケーリングを実行し、スケーリングされたクロマ成分レジデュアルサンプルに基づいてクロマ成分復元サンプルが生成されることができることは前述のとおりである。
本文書の一実施形態において、前述のLMCSを効率的に適用するためのシグナリング構造が提案される。本文書の一実施形態に係ると、例えば、LMCSデータは、HLS(例えばAPS)に含まれることができ、APSの下位レベルであるヘッダ情報(ex.ピクチャヘッダ、スライスヘッダ)を通じて、参照されるAPS IDをシグナリングすることで、LMCSモデル(整形器モデル)を適応的に導出することができる。前記LMCSモデルは、LMCSパラメータに基づいて導出されることができる。また、例えば、前記ヘッダ情報を通じて複数のAPS IDがシグナリングされることができ、これを通じて同一ピクチャ/スライス内のブロック単位で互いに異なるLMCSモデルを適用することができる。
本文書に係る一実施形態において、LMCSに必要な演算を効率的に実行する方法が提案される。表19及び/または20で前述されたセマンティクスによれば、InvScaleCoeff[i]の導出のためにピース長さ(piecelength)lmcsCW[i]による割り算演算が要求される。ただ、前記ピース長さが2の累乗(power of 2)でない場合、前記割り算演算はビットシフトで実行されることができない。
例えば、InvScaleCoeffの計算は、一つのスライスあたり最大16回の割り算演算が必要となり得る。前述の表19及び/または20によると、10ビットコーディングの場合、lmcsCW[i]の範囲は、8から511までであるので、LUTを用いてlmcsCW[i]による割り算演算を具現するためには、LUTのサイズが504である必要がある。また、12ビットコーディングの場合、lmcsCW[i]の範囲は、32から2047までであるので、LUTを用いてlmcsCW[i]による割り算演算を具現するためには、LUTのサイズが2016である必要がある。すなわち、割り算演算は、ハードウェアの具現において相当な費用を招来することがあり、よって割り算演算はできれば省略されるべきである。
本実施形態の一観点で、lmcsCW[i]を固定された数(または予め決められた数または所定の数(pre-defined number or pre-determined number))の倍数に制限することができる。それによって、割り算演算のためのLUT(lookup table)が(LUTの容量またはサイズ)減少されることができる。例えば、lmcsCW[i]が2の倍数である場合、割り算演算を代替するためのLUTのサイズが半分に減少されることができる。
本実施形態の他の観点で、高い内部ビット深度コーディングが提案される。高い内部ビット深度コーディングは、lmcsCW[i]の範囲制限の上位条件であり得る。例えば、コーディングビット深度が10より高い場合に、lmcsCW[i]は1<<(BitDepthY-10)の倍数に制限されることができる。ここで、BitDepthYは、ルマビット深度であり得る。これによって、lmcsCW[i]の可能な値はコーディングビット深度によって変わらなくなり、それによって、前記InvScaleCoeff計算のためのLUTのサイズは、コーディングビット深度が高くても増加しなくなる。一例において、12ビット内部コーディングビット深度に対して、lmcsCW[i]の値は4の倍数に制限されることができ、これによって、割り算演算を代替するためのLUTのサイズは、10ビットコーディングのために用いられるLUTのサイズと同一であり得る。本観点は、単独でも実施可能であるが、前述の観点と組み合わせて実施されることもできる。
本実施形態の他の観点で、lmcsCW[i]をより狭い範囲に制限することができる。例えば、lmcsCW[i]は、(OrgCW>>1)から(OrgCW<<1)-1までの範囲内に制限されることができる。10ビットコーディングの場合、lmcsCW[i]の範囲は[32、127]であり得、96のサイズを有するLUTのみでもInvScaleCoeffを計算することができる。
本実施形態のまた他の観点で、lmcsCW[i]を2の累乗に近接する数値で近似して整形器の設計に用いることができる。これによって、逆マッピング手順での割り算演算は、ビットシフトで実行されることができる(代替されることができる)。
本文書に係る一実施形態において、LMCSコードワード範囲の制限が提案される。前述の表8によれば、LMCSコードワードの値は(OrgCW>>3)から(OrgCW<<3)-1までの範囲内にある。LMCSピース長さの広い範囲によって、RspCW[i]とOrgCWとの間の大きな差が発生すると、視覚的劣化が招来されることがある。
本文書に係る一実施形態に係ると、LMCS PWLマッピングのコードワードを狭い範囲に制限することが提案される。例えば、lmcsCW[i]の範囲は、(OrgCW>>1)から(OrgCW<<1)-1までの範囲にあり得る。
本文書に係る一実施形態において、LMCSでのクロマレジデュアルスケーリングのために、単一クロマレジデュアルスケーリングファクターの使用が提案される。クロマレジデュアルスケーリングファクターを導出するための従来の方法は、当該ルマブロックの平均値を用いて逆ルママッピングでの各ピースの勾配を当該スケーリングファクターとして導出した。また、当該ルマブロックの利用可能性を要求するピースワイズインデックスを識別するための手順によりレイテンシ問題が発生された。これはハードウェアの具現において好ましくない。本文書の一実施形態を通じて、クロマブロックでのスケーリングは、ルマブロック値に依存されなくなり、ピースワイズインデックス識別が必要でないことがある。したがって、レイテンシのイシューなしにLMCSでのクロマレジデュアルスケーリング手順が実行されることができる。
本文書に係る一実施形態において、単一クロマスケーリングファクターは、ルマLMCS情報に基づいてエンコーダとデコーダの全部で導出されることができる。LMCSルマモデルが受信されると、クロマレジデュアルスケーリングファクターがアップデートされることができる。例えば、LMCSモデルがアップデートされる場合に、単一クロマレジデュアルスケーリングファクターがアップデートされることができる。
下表は、本実施形態によって単一クロマスケーリングファクターを獲得するための一例を示す。
表24を参照すると、単一クロマスケーリングファクター(ex.ChromaScaleCoeffまたはChromaScaleCoeffSingle)は、lmcs_min_bin_idxとlmcs_max_bin_idxとの間の範囲内の全てのピース(pieces)の逆ルママッピング勾配を平均化することで獲得されることができる。
図11は、本文書の一実施形態に係るピボットポイントの線形フィッティングを示す。図11では、ピボットポイントP1、Ps、P2が示される。以下の実施形態またはそれらの例示は、図11を参照して説明される。
本実施形態の一例において、ピボットポイントlmcs_min_bin_idxとlmcs_max_bin_idx+1との間のルマPWLマッピングの線形近似に基づいて単一クロマスケーリングファクターが獲得されることができる。すなわち、線形マッピングの逆勾配がクロマレジデュアルスケーリングファクターとして用いられることができる。例えば、図11の線形ライン1(linear line 1)は、ピボットポイントP1、P2を連結する一直線であり得る。図11を参照すると、P1で入力値はx1であり、マッピングされた値は0であり、そして、P2で入力値はx2であり、マッピングされた値はy2である。線形ライン1の逆勾配(逆スケール)は(x2-x1)/y2であり、そして単一クロマスケーリングファクターChromaScaleCoeffSingleは、ピボットポイントP1、P2の入力値及びマッピングされた値、及び次の数式に基づいて計算されることができる。
数式5で、CSCALE_FP_PRECは、シフトファクター(shift factor)を示し、例えば、CSCALE_FP_PRECは、予め決められた定数であり得る。一例において、CSCALE_FP_PRECは11であり得る。
本実施形態に係る他の例において、図11を参照すると、ピボットポイントPsで入力値はmin_bin_idx+1であり、マッピングされた値はysである。それによって、線形ライン1の逆勾配(逆スケール)は(xs-x1)/ysと計算されることができ、単一クロマスケーリングファクターChromaScaleCoeffSingleは、ピボットポイントP1、Psの入力値、及びマッピングされた値、及び次の数式に基づいて計算されることができる。
数式6で、CSCALE_FP_PRECは、シフトファクター(ビットシフトのためのファクター)を示し、例えば、CSCALE_FP_PRECは、予め決められた定数であり得る。一例において、CSCALE_FP_PRECは11であり得、CSCALE_FP_PRECに基づいて逆スケールに対するビットシフトが実行されることができる。
本実施形態に係る他の例において、単一クロマレジデュアルスケーリングファクターは、線形近似ライン(linear approximation line)に基づいて導出されることができる。線形近似ラインを導出するための一例は、ピボットポイント(ex.lmcs_min_bin_idx、lmcs_max_bin_idx+1)の線形的連結を含むことができる。例えば、線形フィッティング結果は、PWLマッピングのコードワードで示すことができる。P2でのマッピングされた値y2は、全てのビン(ピース)のコードワードの和であり得、そして、P2での入力値とP1での入力値との間の差(x2-x1)は、OrgCW*(lmcs_max_bin_idx-lmcs_min_bin_idx+1)(OrgCWは、前述の表19及び/または表20参照)であり得る。下表は、前述の実施形態によって単一クロマスケーリングファクターを獲得する例示を示す。
表25を参照すると、単一クロマスケーリングファクター(ex.ChromaScaleCoeffSingle)は、2つのピボットポイント(i.e.、lmcs_min_bin_idx、lmcs_max_bin_idx)から獲得されることができる。例えば、線形マッピングの勾配逆数(inverse slope of linear mapping)は、クロマスケーリングファクターとして用いられることができる。
本実施形態のまた他の例において、単一クロマスケーリングファクターは、ピボットポイントの線形フィッティング(linear fitting)によって獲得されて、線形フィッティングと既存のPWLマッピングとの間のエラー(または平均二乗エラー)を最小化することができる。本例示は、単純にlmcs_min_bin_idxとlmcs_max_bin_idxの2つのピボットポイントを単純に連結することよりも正確になり得る。最適な線形マッピングを捜すための多様な方法が存在することができ、以下では、一例が説明される。
一例において、最小二乗エラーの和を最小化するための線形フィッティング式(linear fitting equation)y=b1*x+b0のパラメータb1、b0は、次の数式7及び/または8に基づいて計算されることができる。
ここで、xは、原本ルマ値であり、yは、整形されたルマ値を示す。具体的には、
、
は、それぞれx、yの平均を示し、xi、yiは、i番目のピボットポイントの値を示す。
図11を参照すると、線形マッピングを識別するためのまた他の近似が次のように与えられることができる:
- lmcs_min_bin_idxとlmcs_max_bin_idx+1でのPWLマッピングのピボットポイントを連結することで、線形ライン1獲得、OrgCWの倍数である入力値を有する線形ラインでのlmcs_pivots_linear[i]を計算
- 線形ライン1及びPWLマッピングを利用してピボットポイントのマッピングされた値の間の差を合算
- 平均差(avgDiff)を獲得
- 平均差によって(e.g.2*avgDiff)線形ラインの最後のピボットポイントを調整
- 調整された線形ラインの勾配逆数(inverse slope)をクロマレジデュアルスケールとして使用
前述の線形フィッティングによって、クロマスケーリングファクター(i.e.、フォワードマッピングの勾配逆数(inverse slope of forward mapping))は、次の数式9または10に基づいて導出される(獲得される)ことができる。
前述の数式で、lmcs_pivots_lienar[i]は、線形マッピングのマッピングされた値であり得る。線形マッピングを通じて、最小及び最大ビンインデックスの間のPWLマッピングの全てのピースは同じLMCSコードワード(lmcsCW)を有することができる。すなわち、lmcs_pivots_linear[lmcs_min_bin_idx+1]は、lmcsCW[lmcs_min_bin_idx]と同一であり得る。
また、数式9、10で、CSCALE_FP_PRECは、シフトファクター(ビットシフトのためのファクター)を示し、例えば、CSCALE_FP_PRECは、予め決められた定数であり得る。一例において、CSCALE_FP_PRECは11であり得る。
単一クロマレジデュアルスケーリングファクター(ChromaScaleCoeffSingle)を通じて、当該ルマブロックの平均を計算する必要がなく、そしてPWL線形マッピングでインデックスを捜す必要がない。したがって、クロマレジデュアルスケーリングを利用したコーディングの効率が高くなることができる。
前述の本実施形態に係るLMCSデータに関するセマンティクス及び/またはクロマサンプルに対するルマ依存的なクロマレジデュアルスケーリング手順は、次の表のように標準文書形式で記述されることができる。
本文書の他の実施形態において、エンコーダは、単一クロマスケーリングファクターに関するパラメータを決めることができ、前記パラメータをデコーダにシグナリングすることができる。シグナリングを通じて、エンコーダは、クロマレジデュアルスケーリングファクターを導出するために、エンコーダで利用可能な他の情報を活用可能にすることができる。本実施形態は、クロマレジデュアルスケーリングレイテンシ問題を除去することに目的がある。
例えば、クロマレジデュアルスケーリングファクターを決めるために用いられる線形マッピングを識別するための手順は、次のように与えられることができる:
- lmcs_min_bin_idxとlmcs_max_bin_idx+1でのPWLマッピングのピボットポイントを連結することで、線形ライン1獲得、OrgCWの倍数である入力値を有する線形ラインでのlmcs_pivots_linear[i]を計算
- 線形ライン1及びルマPWLマッピングのピボットポイントを利用してピボットポイントのマッピングされた値の間の差の加重和を獲得
- 加重値が適用された(weighted)平均差(avgDiff)を獲得
- 加重値が適用された平均差によって(e.g.2*avgDiff)線形ライン1の最後のピボットポイントを調整
- 調整された線形ラインの勾配逆数(inverse slope)をクロマレジデュアルスケールとして使用
下表は、クロマスケーリングファクターを導出のために、y値をシグナリングする例示的なシンタックスを示す。
表28において、シンタックス要素lmcs_chroma_scaleは、LMCSクロマレジデュアルスケーリングのために用いられる単一クロマ(レジデュアル)スケーリングファクターを明示(specify)することができる(ChromaScaleCoeffSingle=lmcs_chroma_scale)。すなわち、クロマレジデュアルスケーリングファクターに関する情報が直接シグナリングされ、前記シグナリングされた情報がクロマレジデュアルスケーリングファクターとして導出されることができる。言い換えれば、シグナリングされたクロマレジデュアルスケーリングファクターに関する情報の値が単一クロマレジデュアルスケーリングファクターの値として(直接的に)導出されることができる。ここで、シンタックス要素lmcs_chroma_scaleは、他のLMCSデータ(例えば、コードワードの絶対値、符号に関するシンタックス要素etc.)とともにシグナリングされることができる。
代案的に、エンコーダは、クロマレジデュアルスケーリングファクターを導出するために必要なパラメータのみをデコーダにシグナリングすることができる。デコーダでクロマレジデュアルスケーリングファクターを導出するために、入力値xとマッピングされた値yが必要となる。x値は、ビン長さを示すので、既にデコーダ段にも知られた値であるので、シグナリングされる必要がない。結局、クロマレジデュアルスケーリングファクターを導出するためには、ただy値のみがシグナリングされる必要がある。ここで、y値は、線形マッピングにおける任意のピボットポイントのマッピングされた値であり得る(e.g.図11のP2あるいはPsのマッピングされた値)。
次の表は、クロマレジデュアルスケーリングファクターを導出するためにマッピングされた値をシグナリングする例示を示す。
前述の表29及び30のシンタックスの一つがエンコーダとデコーダによって明示される(specified)任意の線形ピボットポイントでy値をシグナリングするために用いられることができる。すなわち、エンコーダ及びデコーダは、互いに同じシンタックスを用いてy値を導出することができる。
まず、表29による実施形態が説明され得る。表29において、lmcs_cw_linearは、PsまたはP2にマッピングされた値を示すことができる。すなわち、表29による実施形態において、lmcs_cw_linearを通じて固定された数字がシグナリングされることができる。
本実施形態に係る一例において、lmcs_cw_linearが一つのビン(i.e.図11のPsでのlmcs_pivots_linear[lmcs_min_bin_idx+1])にマッピングされた値を示す場合、クロマスケーリングファクターは、次の数式に基づいて導出されることができる。
本実施形態に係る他の例において、lmcs_cw_linearがlmcs_max_bin_idx+1(i.e.図11のP2でのlmcs_pivots_linear[lmcs_max_bin_idx+1])を示す場合、クロマスケーリングファクターは、次の数式に基づいて導出されることができる。
前述の数式で、CSCALE_FP_PRECは、シフトファクター(ビットシフトのためのファクター)を示し、例えば、CSCALE_FP_PRECは、予め決められた定数であり得る。一例において、CSCALE_FP_PRECは11であり得る。
次に、表30による実施形態が説明され得る。本実施形態において、lmcs_cw_linearは、固定された数に関するデルタ値(i.e.lmcs_delta_abs_cw_linear、lmcs_delta_sign_cw_linear_flag)としてシグナリングされることもできる。本実施形態の一例において、lmcs_cw_linearがlmcs_pivots_linear[lmcs_min_bin_idx+1](i.e.図11のPs)でのマッピングされた値を示す場合、lmcs_cw_linear_delta及びlmcs_cw_linearは、次の数式に基づいて導出されることができる。
本実施形態の他の例において、lmcs_cw_linearがlmcs_pivots_linear[lmcs_max_bin_idx+1](i.e.図11のP2)でのマッピングされた値を示す場合、lmcs_cw_linear_delta及びlmcs_cw_linearは、次の数式に基づいて導出されることができる。
前述の数式で、OrgCWは、前述の表19及び/または20に基づいて導出された値であり得る。
前述の本実施形態に係るLMCSデータに関するセマンティクス及び/またはクロマサンプルに対するルマ依存的なクロマレジデュアルスケーリング手順は、次の表のように、標準文書形式で記述されることができる。
図12は、本文書の一実施形態に係る線形整形(または線形整形器、線形マッピング)の一例を示す。すなわち、本文書の一実施形態では、LMCSで線形整形器の使用が提案される。例えば、図12の例示は、フォワード線形整形(マッピング)に係わることができる。
図12を参照すると、線形整形器は、2つのピボットポイント(i.e.、P1、P2)を含むことができる。P1とP2は、入力とマッピングされた値を示すことができ、例えば、P1は(minInput、0)であり得、そして、P2は(maxInput、maxMapped)であり得る。ここで、minInputは最小入力値を示し、maxInputは最大入力値を示す。入力値がminInputより小さいか同一であれば、0にマッピングされ、入力値がmaxInputより大きければ、maxMappedにマッピングされる。minInputとmaxInputとの間の入力(ルマ)値は、他の値に線形的にマッピングされることができる。図12は、マッピングの一例を示す。ピボットポイントP1、P2はエンコーダで決められることができ、このために、ピースワイズ線形マッピングを近似するために、線形フィッティングが用いられることができる。
本文書に係る他の実施形態において、線形整形器をシグナリングする方法のまた他の例が提案されることができる。線形整形器モデルのピボットポイントP1、P2は、明示的にシグナリングされることができる。次の表は、本例示によって線形整形器モデルを明示的にシグナリングするシンタックス及びセマンティクスの一例を示す。
表33及び34を参照すると、シンタックス要素lmcs_min_inputに基づいて第1ピボットポイントの入力値が導出されることができ、そして、シンタックス要素lmcs_max_inputに基づいて第2ピボットポイントの入力値が導出されることができる。第1ピボットポイントのマッピングされた値は予め決められた値(エンコーダ及びデコーダの全部に知られた値)であり得、例えば、0であり得る。シンタックス要素lmcs_max_mappedに基づいて第2ピボットポイントのマッピングされた値が導出されることができる。すなわち、表33のシンタックスに基づいてシグナリングされた前記情報に基づいて線形整形器モデルが明示的に(直接的に)シグナリングされることができる。
代案的に、lmcs_max_input及びlmcs_max_mappedは、デルタ値としてシグナリングされることができる。次の表は、デルタ値として線形整形器モデルをシグナリングするシンタックス及びセマンティクスの一例を示す。
前記表36を参照すると、シンタックス要素lmcs_min_inputに基づいて第1ピボットポイントの入力値が導出されることができる。例えば、lmcs_min_inputは、0のマッピングされた値を有することができる。lmcs_max_input_deltaは、第2ピボットポイントの入力値と最大ルマ値(i.e.、(1<<bitdepthY)-1)との間の差を示すことができる。lmcs_max_mapped_deltaは、第2ピボットポイントのマッピングされた値と最大ルマ値(i.e.、(1<<bitdepthY)-1)との間の差を示すことができる。
本文書の一実施形態に係ると、前述の線形整形器に関する例示に基づいてルマ予測サンプルのためのフォワードマッピング、ルマ復元サンプルのための逆マッピング、クロマレジデュアルスケーリングが実行されることができる。一例において、線形整形器に基づく逆マッピングでルマ(復元)サンプル(ピクセル)のための逆スケーリングのために、ただ一つの逆スケーリングファクターが必要になることがある。これは、フォワードマッピング、クロマレジデュアルスケーリングでも同様である。すなわち、ビンインデックスiに対するScaleCoeff[i]、InvScaleCoeff[i] and ChromaScaleCoeff[i]を決めるステップは、ただ一つのファクターを利用することを代替することができる。ここで、一つのファクターとは、線形マッピングの(フォワード)勾配または逆勾配が固定小数点で表現されたことを指称することができる。一例において、逆ルママッピングスケーリングファクター(ルマ復元サンプルのための逆マッピングでの逆スケーリングファクター)は、次の数式の少なくとも一つに基づいて導出されることができる。
数式17のlmcsCWLinearは、前述の表31から導出されることができる。数式18及び19のlmcsCWLinearALLは、前述の表33乃至36の少なくとも一つから導出されることができる。数式17または18で、OrgCWは、表19及び/または表20から導出されることができる。
次の表は、ピクチャ復元でのルマサンプル(i.e.ルマ予測サンプル)に対するフォワードマッピング手順を示す数式及びシンタックス(条件文)を説明する。以下の表及び数式で、FP_PRECは、ビットシフトのための定数であり、予め決められた値であり得る。例えば、FP_PRECは、11または15であり得る。
表37は、前述の表17乃至表20に基づいたルママッピング手順でフォワードマッピングされたルマサンプルを導出するためのものであり得る。すなわち、表37は、表19及び/または20とともに説明されることができる。表37で、入力としてのルマ(予測)サンプルPredSamples[i][j]から出力としてのフォワードマッピングされたルマ(予測)サンプルPredmAPSamples[i][j]が導出されることができる。表37のidxYは(フォワード)マッピングインデックスと指称されることができ、マッピングインデックスは予測ルマサンプルに基づいて導出されることができる。
表38は、線形整形器の適用によるルママッピングでフォワードマッピングされたルマサンプルを導出するためのものであり得る。例えば、表38のlmcs_min_input、lmcs_max_input、lmcs_max_mapped、ScaleCoeffSingleは、表33乃至36 の少なくとも一つによって導出されることができる。表38で、lmcs_min_input<predSamples[i][j]<lmcs_max_inputの場合に、入力としてのルマ(予測)サンプルPredSamples[i][j]から出力としてのフォワードマッピングされたルマ(予測)サンプルPredmAPSamples[i][j]が導出されることができる。表37と表38との比較を通じて、線形整形器の適用による既存LMCSからの変化がフォワードマッピング観点で見えられることができる。
次の数式及び表は、ルマサンプル(i.e.ルマ復元サンプル)に対する逆マッピング手順を説明する。以下の数式及び表で、入力としてのlumaSampleは、逆マッピング以前の(修正前)ルマ復元サンプルであり得る。出力としてのinvSampleは、逆マッピングされた(修正された)ルマ復元サンプルであり得る。他の場合、クリッピングされたinvSampleが修正されたルマ復元サンプルと指称され得る。
数式21はルママッピングで逆マッピングされたルマサンプルを導出するためのものであり得る。数式20で、インデックスidxInvは、後述される表50、51または52に基づいて導出されることができる。
数式21は、線形整形器の適用によるルママッピングで逆マッピングされたルマサンプルを導出するためのものであり得る。例えば、数式21のlmcs_min_inputは、表33乃至36の少なくとも一つによって導出されることができる。数式20と数式21との比較を通じて、線形整形器の適用による既存LMCSからの変化がフォワードマッピング観点で見えられることができる。
表39は、ルママッピングで逆マッピングされたルマサンプルを導出するための数式の一例を含むことができる。例えば、インデックスidxInvは、後述される表50、51または52に基づいて導出されることができる。
表40は、ルママッピングで逆マッピングされたルマサンプルを導出するための数式の他の例を含むことができる。例えば、表40のlmcs_min_input及び/またはlmcs_max_mappedは、表33乃至36の少なくとも一つによって導出されることができ、そして/または表40のInvScaleCoeffSingleは、表33乃至36、及び/または数式17乃至19の少なくとも一つによって導出されることができる。
前述の線形整形器に関する例示に基づいてピースワイズインデックス識別手順が省略されることができる。すなわち、本例示において、整形されたルマピクセルを有するピースが1つのみ存在するので、逆ルママッピング及びクロマレジデュアルスケーリングに用いられるピースワイズインデックス識別手順が除去されることができる。これによって、逆ルママッピングの複雑性が減少されることができる。それに加えて、ルマピースワイズインデックス識別に依存することで引き起こされるレイテンシ問題がクロマレジデュアルスケーリングの途中に除去されることができる。
前述の線形整形器の使用に関する実施形態によって、LMCSのために次のような利点が提供されることができる。i)エンコーダの整形器の設計を単純化してピースワイズ線形ピースの間で発生される急激な変化による劣化を防止することができる。ii)ピースワイズインデックス識別手順を除去してデコーダ逆マッピング手順を単純化することができる。iii)ピースワイズインデックス識別手順を除去して当該ルマブロックに依存することで引き起こされるクロマレジデュアルスケーリング内のレイテンシ問題を除去することができる。iv)シグナリングのオーバーヘッドを減らし、整形器の頻繁なアップデートをより実現可能にすることができる。v)16個のピースのループ(例えば、for構文)が必要であった多くの部分でループを除去することができる。例えば、InvScaleCoeff[i]を導出するために、lmcsCW[i]による割り算演算の数を1に減らすことができる。
本文書に係る他の実施形態において、フレキシブルビンに基づいたLMCSが提案される。ここで、フレキシブルビンとは、ビンの個数が所定の数に固定されないことを意味することができる。既存の一実施形態では、LMCSでのビンの個数が16個に固定され、そして、16個のビンは入力サンプル値に対して均等に分布された。本実施形態において、フレキシブルな個数のビンが提案され、そしてピース(ビン)が原本ピクセル値に対して均等に分配されないはずである。
次の表は、本実施形態に係るLMCSデータ(データフィールド)に関するシンタックス及びそれに含まれたシンタックス要素に対するセマンティクスを例示的に示す。
表41を参照すると、ビンの個数に関する情報lmcs_num_bins_minus1がシグナリングされることができる。表42を参照すると、lmcs_num_bins_minus1+1は、ビンの個数と同一であり得、これからビンの個数は、1から(1<<BitDepthY)-1までの範囲内にあり得る。例えば、lmcs_num_bins_minus1またはlmcs_num_bins_minus1+1は2の倍数であり得る。
表41及び表42と一緒に説明された実施形態において、ピボットポイントの個数は、整形器が線形であるか否かに関係なく、lmcs_num_bins_minus1(ビンの個数に関する情報)に基づいて導出されることができ(lmcs_num_bins_minus1のシグナリング)、そしてピボットポイントの入力値及びマッピングされた値(LmcsPivot_input[i]、LmcsPivot_mapped[i])はシグナリングされたコードワード値(lmcs_delta_input_cw[i]、lmcs_delta_mapped_cw[i])の合算に基づいて導出されることができる(ここで、初期入力値LmcsPivot_input[0]及び初期出力値LmcsPivot_mapped[0]は 0)。
図13は、本文書の一実施形態における線形フォワードマッピングの一例を示す。図14は、本文書の一実施形態における逆フォワードマッピングの一例を示す。
図13及び図14による実施形態において、レギュラーLMCS及び線形LMCSを全部支援する方法が提案される。本実施形態に係る一例において、シンタックス要素lmcs_is_linearに基づいてレギュラーLMCS及び/または線形LMCSが指示されることができる。エンコーダで、線形LMCSラインが決められた後、マッピングされた値(ex.図13及び図14のPLでのマッピングされた値)は均等なピース(ex.LmcsMaxBinIdx-lmcs_min_bin_idx+1)に分けられることができる。ビンLmcsMaxBinIdxでのコードワードは、前述のlmcsデータまたは整形器モデルに関するシンタックスを利用してシグナリングされることができる。
次の表は、本実施形態の一例によるLMCSデータ(データフィールド)に関するシンタックス及びそれに含まれたシンタックス要素に対するセマンティクスを例示的に示す。
次の表は、本実施形態の他の例によるLMCSデータ(データフィールド)に関するシンタックス及びそれに含まれたシンタックス要素に対するセマンティクスを例示的に示す。
前記表43乃至46を参照すると、lmcs_is_linear_flagが真である場合、lmcs_min_bin_idxとLmcsMaxBinIdxとの間の全てのlmcsDeltaCW[i]は同じ値を有することができる。すなわち、lmcs_min_bin_idxとLmcsMaxBinIdxとの間の全てのピースの中でLmcsCW[i]が同じ値を有することができる。lmcs_min_bin_idxとlmcsMaxBinIdxとの間の全てのピースのスケール及び逆スケールとクロマスケールは同一であり得る。線形整形器が真であると、ピースインデックスを導出する必要がなく、ピースの中の一つでスケール、逆スケールが用いられることができる。
次の表は、本実施形態に係るピースワイズインデックスの識別手順を例示的に示す。
本文書の他の実施形態に係ると、レギュラー16-ピースPWL LMCS及び線形LMCSの適用は、ハイレベルシンタックス(例えば、シーケンスレベル)に依存することができる。
次の表は、本実施形態に係るSPSに関するシンタックス及びそれに含まれたシンタックス要素に対するセマンティクスを例示的に示す。
表48及び49を参照すると、SPSに含まれたシンタックス要素によってレギュラーLMCS及び/または線形LMCSの可用可否が決定(シグナリング)されることができる。表48を参照すると、シンタックス要素sps_linear_lmcs_enabled_flagに基づいてレギュラーLMCSまたは線形LMCSの一つがシーケンス単位で可用されることができる。
これに加えて、線形LMCSまたはレギュラーLMCSの一つまたは二つが全部可用されるか否かは、プロファイルレベルに依存的であり得る。一例において、特定プロファイル(e.g.SDRプロファイル)に対して、線形LMCSのみが許容されることができ、そして、他のプロファイル(e.g.HDRプロファイル)に対して、レギュラーLMCSのみが許容されることができ、そして、また他のプロファイルに対しては、レギュラーLMCS及び/または線形LMCS両方とも許容されることができる。
本文書のまた他の実施形態に係ると、LMCSピースワイズインデックス識別手順が逆ルママッピング及びクロマレジデュアルスケーリングで用いられることができる。本実施形態において、クロマレジデュアルスケーリングが可用なブロックに対して、前記ピースワイズインデックスの識別手順が用いられることができ、そして整形された(マッピングされた)領域内の全てのルマサンプルを対しても前記識別手順が用いられることができる。本実施形態は、前記インデックスを導出するための複雑度を減少することを目的とする。
次の表は、既存のピースワイズ関数インデックスの識別手順(導出手順)を示す。
一例において、前記ピースワイズインデックス識別手順では入力サンプルが少なくとも二つ以上のカテゴリに分類されることができる。例えば、前記入力サンプルは、三つのカテゴリ、第1、第2、第3カテゴリに分類されることができる。例えば、第1カテゴリは、LmcsPivot[lmcs_min_bin_idx+1]より小さいサンプル(の値)を示すことができ、第2カテゴリは、LmcsPivot[LmcsMaxBinIdx]より大きいか同じサンプル(の値)を示すことができ、第3カテゴリは、LmcsPivot[lmcs_min_bin_idx+1]とLmcsPivot[LmcsMaxBinIdx]との間のサンプル(の値)を示すことができる。
本実施形態において、カテゴリの分類を除去することにより、識別手順を最適化する方法が提案される。ピースワイズインデックス識別手順に対する入力が整形された(マッピングされた)ルマ値であるので、ピボットポイントlmcs_min_bin_idx及びLmcsMaxBinIdx+1でのマッピングされた値を超える値はあってはならない。よって、カテゴリ別にサンプルを分類する条件的手順は、既存のピースワイズインデックス識別手順で省略されることができ、具体的な例示が以下で表とともに説明され得る。
本実施形態による一例において、表50に含まれた識別手順は、下表51または52の一つで代替されることができる。表51、52を参照すると、表50の前の二つのカテゴリが削除されることができ、そして、最後のカテゴリに対して繰り返し的なループ(for構文)での境界値(第2境界値またはエンディングポイント)がLmcsMaxBinIdxでLmcsMaxBinIdx+1に修正されることができる。すなわち、識別手順が単純化されることができ、ピースワイズインデックスを導出するための複雑度が減少されることができる。よって、本実施形態によってLMCS関連コーディングが効率的に実行されることができる。
表51を参照すると、if節の条件に対応する比較手順(if節の条件に対応する数式)は、最小ビンインデックスから最大ビンインデックスまでのビンインデックスの全部に対して繰り返し的に実行されることができる。if節の条件に対応する数式が真である場合でのビンインデックスは、逆ルママッピングのための逆マッピングインデックス(またはクロマレジデュアルスケーリングのための逆スケーリングインデックス)として導出されることができる。前記逆マッピングインデックスに基づいて修正された復元ルマサンプル(またはスケーリングされたクロマレジデュアルサンプル)が導出されることができる。
表51の実施形態に係ると、(逆)ピースワイズ関数インデックスを識別する手順で発生され得る問題が解決されることができる。表51の実施形態によって、演算バグが除去されることができ、そして/または重なる境界条件によって発生される重複演算過程が省略されることができる。本文書が表51の実施形態によるものでない場合、ピースワイズインデックス(逆マッピングインデックス)の識別のためのfor構文(ループ構文)で現在ブロックに対するLMCSで利用されるマッピング値がLmcsPivot[idxYInv+1]を超える(逸脱する)ことがある。本実施形態に係ると、前記インデックス識別手順で現在ブロックに対するLMCSで利用される適切な範囲内のマッピング値が利用されることができる。
次の表は、表51の実施形態によって改善されたコーディング性能に関する効果を示す。
表53乃至表55を参照すると、表51の実施形態によってコーディング性能が改善されることができる。または、表51の実施形態によってコーディング性能を保持しながら演算バグが除去されることができ、そして/または重なった演算過程が省略されることができる。
本文書に係る一実施形態において、従来の実施形態では個別的ブロックツリーによってコーディングされたスライス(e.g.イントラスライス)に対して、デュアルツリーによってコーディングされたスライスより対応するルマブロックでのクロマレジデュアルスケーリング依存度によるレイテンシが高かった。このような理由から、従来の実施形態では、個別的ブロックツリーでコーディングされたスライスにはLMCSクロマレジデュアルスケーリングが適用されなかった。
本実施形態では、個別ツリーでコーディングされたスライスに対してもクロマレジデュアルスケーリングが適用されることができる。前述した単一クロマレジデュアルスケーリングファクターが用いられる場合、対応するルマブロックでのクロマレジデュアルスケーリングの間の依存度がないので、クロマレジデュアルスケーリングの適用によるレイテンシがないはずである。
次の表は、本実施形態に係るスライスヘッダのシンタックス及びセマンティクスを示す。
表57を参照すると、現在ブロックがデュアルツリー構造であるかシングルツリー構造であるか否かを示す条件節(またはそれに対するフラグ)に関係なく、クロマレジデュアルスケーリングフラグがシグナリングされることができる。
本文書に係る一実施形態において、ALFデータ及び/またはLMCSデータがAPSでシグナリングされることができる。例えば、32個のAPSが用いられることができる。一例において、全てのAPSがALF及び/またはLMCSのために用いられる場合、前記APSのバッファーのためには、約10キロバイト(Kbytes)オン-チップメモリーが必要となるはずである。ALF/LMCSパラメータを格納するのに要求されるメモリ、及びLMCSのために必要な計算複雑度を制限する(減少させる)ために、ALF及び/またはLMCS APSの個数を制限する方案が本実施形態で提案される。
本実施形態に係る一例で、ピクチャ内に含まれたスライスまたはブリックスの個数に関係なく、ピクチャあたり一つのLMCSモデルが使用(許容)されることができる。LMCSのためのAPSの個数は32個より少なくてもよい。例えば、LMCSのためのAPSの個数は4つであり得る。
次の表は、本実施形態に係るAPSに関するセマンティクスを示す。
表58を参照すると、LMCS APSの最大個数は予め決められることができる。例えば、LMCS APSの最大個数は4つであり得る。表15及び表58を参照すると、複数のAPSはLMCS APSを含むことができる。LMCS APSの(最大)個数は4つであり得る。一例で、LMCS APSの一つのLMCS APSに含まれたLMCSデータフィールドが現在ピクチャ内の現在ブロックのためのLMCS手順で用いられることができる。
次の表は、スライスヘッダ(またはピクチャヘッダ)に含まれたシンタックス要素に対するセマンティクスを示す。
表59から説明されるシンタックス要素は、表56を参照して説明されることができる。一例において、シンタックス要素slice_lmcs_aps_idは、スライスヘッダに含まれることができる。他の例において、表56のシンタックス要素slice_lmcs_aps_idは、ピクチャヘッダに含まれることもでき、この場合、slice_lmcs_aps_idは、ph_lmcs_aps_idに修正されることができる。
本文書の一実施形態に係ると、LMCS APSの全体個数は4より小さいか同じであり得る。また、本実施形態の一例において、一つのピクチャあたり一つのLMCSモデルのみ用いられることができる。この時、画像/ビデオの解像度に関係なく、一つのピクチャあたり一つのLMCSモデルのみ用いられることができる。本実施形態に係ると、LMCS APSに対する制約によって具現が容易になることができ、そして、資源(メモリー)の過消費問題を解決することができる。
次の表は、本文書に開示されたシンタックス要素の一例に対するセマンティクスを示す。
表60から説明されるシンタックス要素は、表56を参照して説明されることができる。一例において、シンタックス要素slice_lmcs_aps_idは、スライスヘッダに含まれることができる。他の例において、表60のシンタックス要素slice_lmcs_aps_idは、ピクチャヘッダに含まれることもでき、この場合、slice_lmcs_aps_idは、ph_lmcs_aps_idに修正されることができる。
前記表60を参照すると、シンタックス要素slice_lmcs_aps_idによって現在スライス(または現在ピクチャ)が参照するLMCS APSのadaptation_parameter_set_idが明示されることができる。すなわち、slice_lmcs_aps_idは、現在スライス(または現在ピクチャ)が参照するLMCS APSのadaptation_parameter_set_idを示すことができる。slice_lmcs_aps_idの値は0から3までの範囲にあり得る。すなわち、slice_lmcs_aps_idの値は0、1、2または3であり得る。例えば、第0乃至第3のLMCS APS(または第1乃至第4のLMCS APS)のうち、slice_lmcs_aps_idによって指示される第0LMCS APS(または第1LMCS APS)は、現在スライス(または現在ピクチャ)によって参照されることができ、そして、前記第0LMCS APS(または第1LMCS APS)に含まれたLMCSデータ(LMCSデータフィールドまたは整形器モデル)は、現在スライス(または現在ピクチャ)に対するLMCS手順のために利用されることができる(前記第0LMCS APS(または第1LMCS APS)に含まれたLMCSデータ(LMCSデータフィールドまたは整形器モデル)に基づいて現在スライス(または現在ピクチャ)に対するLMCS手順が実行されることができる)。
本文書に開示された少なくとも一つの実施形態によって、LMCSに関するコーディング手順が整理(clean up)または単純化されることができる。
以下の図面は、本明細書の具体的な一例を説明するために作成された。図面に記載された具体的な装置の名称や具体的な信号/メッセージ/フィールドの名称は、例示的に提示されたものであるので、本明細書の技術的特徴は以下の図面に用いられた具体的な名称に制限されない。
図15及び16は、本文書の実施形態に係るビデオ/画像エンコード方法及び関連コンポーネントの一例を概略的に示す。図15で開示された方法は、図2で開示されたエンコード装置により実行されることができる。具体的には、例えば、図15のS1500は、前記エンコード装置の予測部220により実行されることができ、S1510及び/またはS1520は、前記エンコード装置の予測部220及び/または加算部250により実行されることができ、S1520は、前記エンコード装置のレジデュアル処理部230または加算部250により実行されることができ、S1530及び/またはS1540は、前記エンコード装置のレジデュアル処理部230または加算部250により実行されることができ、S1550乃至S1570は、前記エンコード装置のレジデュアル処理部230により実行されることができ、S1580は、前記エンコード装置のエントロピーエンコード部240により実行されることができる。図15で開示された方法は、本文書で上述した実施形態を含むことができる。
図15を参照すると、エンコード装置は、予測ルマサンプルを生成することができる(S1500)。予測ルマサンプルに関して、エンコード装置は、予測モードに基づいて前記現在ブロックの予測ルマサンプルを導出することができる。この場合、インター予測またはイントラ予測など本文書で開示された多様な予測方法が適用されることができる。
エンコード装置は、予測クロマサンプルを導出することができる。エンコード装置は、現在ブロックの原本クロマサンプル及び予測クロマサンプルに基づいて前記レジデュアルクロマサンプルを導出することができる。例えば、エンコード装置は、前記予測クロマサンプルと原本クロマサンプルとの間の差に基づいてレジデュアルクロマサンプルを導出することができる。
エンコード装置は、ルママッピングのためのビン及び/またはLMCSコードワードを導出することができる(S1510)。エンコード装置は、複数個のビンに対するそれぞれのLMCSコードワードを導出することができる。例えば、前述のlmcsCW[i]はエンコード装置により導出されたLMCSコードワードに対応することができる。
エンコード装置は、マッピングされた予測ルマサンプルを生成することができる(S1520)。例えば、エンコード装置は、ルママッピングのためのピボットポイントの入力値及びマッピング値(出力値)を導出することができ、そして、前記入力値及びマッピング値に基づいてマッピングされた予測ルマサンプルを生成することができる。一例において、エンコード装置は、第1予測ルマサンプルに基づいてマッピングインデックス(idxY)を導出することができ、そして、前記マッピングインデックスに対応するピボットポイントの入力値及びマッピング値に基づいて第1マッピングされた予測ルマサンプルを生成することができる。他の例において、線形マッピング(線形整形、線形LMCS)が用いられることができ、そして、線形マッピングでの二つのピボットポイントから導出されたフォワードマッピンスケーリングファクターに基づいてマッピングされた予測ルマサンプルが生成されることができ、したがって、線形マッピングによってインデックス導出手順が省略されることもできる。
エンコード装置は、復元ルマサンプルを生成することができる(S1530)。エンコード装置は、マッピングされた予測ルマサンプルに基づいて復元ルマサンプルを生成することができる。具体的には、エンコード装置は、前述のレジデュアルルマサンプルをマッピングされた予測ルマサンプルと合算することができ、前記合算結果に基づいて復元ルマサンプルを生成することができる。
エンコード装置は、前記ルママッピングのための前記ビン、前記LMCSコードワード、及び前記復元ルマサンプルに基づいて修正された復元ルマサンプルを生成することができる(S1540)。エンコード装置は、前記復元ルマサンプルに対する逆マッピング手順を通じて前記修正された復元ルマサンプルを生成することができる。例えば、エンコード装置は、逆マッピング手順で復元ルマサンプル及び/またはビンインデックスごとに割り当てられたマッピング値(ex.LmcsPivot[i]、i=lmcs_min_bin_idx...LmcsMaxBinIdx+1)に基づいて逆マッピングインデックス(ex.invYIdx)を導出することができる。エンコード装置は、逆マッピングインデックスに割り当てられたマッピング値(LmcsPivot[invYIdx])に基づいて修正された復元ルマサンプルを生成することができる。
エンコード装置は、スケーリングされたレジデュアルクロマサンプルを生成することができる。具体的には、エンコード装置は、クロマレジデュアルスケーリングファクターを導出することができ、クロマレジデュアルスケーリングファクターに基づいてスケーリングされたレジデュアルクロマサンプルを生成することができる。ここで、エンコーディング段のクロマレジデュアルスケーリングは、フォワードクロマレジデュアルスケーリングと指称されることもできる。よって、エンコード装置により導出されたクロマレジデュアルスケーリングファクターは、フォワードクロマレジデュアルスケーリングファクターと指称されることができ、フォワードスケーリングされたレジデュアルクロマサンプルが生成されることができる。
エンコード装置は、ルママッピングのためのビン及びLMCSコードワードに基づいてLMCSデータに関する情報を導出することができる(S1550)。または、エンコード装置は、マッピングされた予測ルマサンプル及び/またはスケーリングされたレジデュアルクロマサンプルに基づいてLMCSデータに関する情報を生成することができる。エンコード装置は、前記復元サンプルに対するLMCSデータに関する情報を生成することができる。エンコード装置は、前記復元サンプルに対するフィルタリングのために適用されることができるLMCS関連パラメータを導出し、LMCS関連パラメータに基づいてLMCSデータに関する情報を生成することができる。例えば、LMCSデータに関する情報は、前述のルママッピング(ex.フォワードマッピング、逆マッピング、線形マッピング)に関する情報、クロマレジデュアルスケーリングに関する情報、及び/またはLMCS(または整形、整形器)に関するインデックス(ex.最大ビンインデックス、最小ビンインデックス)を含むことができる。
エンコード装置は、前記マッピングされた予測ルマサンプルに基づいてレジデュアルルマサンプルを生成することができる(S1560)。例えば、エンコード装置は、前記マッピングされた予測ルマサンプルと原本ルマサンプルとの間の差に基づいてレジデュアルルマサンプルを導出することができる。
エンコード装置は、レジデュアル情報を導出することができる(S1570)。エンコード装置は、前記スケーリングされたレジデュアルクロマサンプル及び/または前記レジデュアルルマサンプルに基づいてレジデュアル情報を導出することができる。エンコード装置は、前記スケーリングされたレジデュアルクロマサンプル及び前記ルマレジデュアルサンプルに対する変換手順に基づいて変換係数を導出することができる。例えば、変換手順は、DCT、DST、GBT、またはCNTの少なくとも一つを含むことができる。エンコード装置は、前記変換係数に対する量子化手順に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン手順に基づいて1次元ベクトル形態を有することができる。エンコード装置は、前記量子化された変換係数を示すレジデュアル情報を生成することができる。レジデュアル情報は、指数ゴロム、CAVLC、CABACなどのような多様なエンコード方法を通じて生成されることができる。
エンコード装置は、画像/ビデオ情報をエンコーディングすることができる(S1580)。前記画像情報は、LMCS関連情報及び/またはレジデュアル情報を含むことができる。例えば、LMCS関連情報は、線形LMCSに関する情報を含むことができる。一例において、線形LMCSに関する情報に基づいて少なくとも一つのLMCSコードワードが導出されることができる。エンコーディングされたビデオ/画像情報はビットストリーム形態で出力されることができる。前記ビットストリームは、ネットワークまたは格納媒体を介してデコード装置に送信されることができる。
前記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、前記画像/ビデオ情報は、前述の表1乃至60の少なくとも一つに開示された情報を含むことができる。
一実施形態において、前記画像情報は、LMCS APSを含むことができる。LMCS APS(前記LMCS APSの一つ)は、LMCSデータフィールドを含むAPSであることを示すタイプ情報、及び前記LMCS APSの識別子情報(identifier information、ID 情報)を含むことができる。前記LMCSデータフィールドは、前記LMCSデータに関する情報を含むことができる。前記タイプ情報に基づいて前記LMCS APSは前記LMCSデータフィールドを含み、前記LMCSデータフィールドに基づいて前記LMCSコードワードが導出されることができる。一例において、前記識別子情報の値は所定の範囲内にあり得る。例えば、前記所定の範囲は0から3の範囲であり得る。すなわち、前記識別子情報の値は0、1、2、または3であり得る。他の例において、前記LMCS APSの最大個数は予め決められた値であり得る。例えば、LMCS APSの最大個数(前記予め決められた値)は4であり得る。
一実施形態において、エンコード装置は、クロマレジデュアルスケーリングのためのピースワイズインデックスを生成することができる。エンコード装置は、前記ピースワイズインデックスに基づいてクロマレジデュアルスケーリングファクターを導出することができる。エンコード装置は、前記レジデュアルクロマサンプル、及び前記クロマレジデュアルスケーリングファクターに基づいてスケーリングされたレジデュアルクロマサンプルを生成することができる。
一実施形態において、前記現在ブロックがシングルツリー構造またはデュアルツリー構造である場合(前記現在ブロックが個別的ツリー構造である場合、前記現在ブロックが個別的ツリーでコーディングされた場合)、前記現在ブロックのためにクロマレジデュアルスケーリングが適用されるか否かを示すクロマレジデュアルスケーリング可用フラグがエンコード装置によって生成されることができる。現在ピクチャ、現在スライス、及び/または現在ブロックに対してクロマレジデュアルスケーリングが適用される場合、前記クロマレジデュアルスケーリング可用フラグの値は1であり得る。
一実施形態において、前記クロマレジデュアルスケーリングファクターは、単一クロマレジデュアルスケーリングファクターであり得る。
一実施形態において、前記タイプ情報の値が1であることに基づいて、前記APSは、LMCSパラメータを含む前記LMCSデータフィールドを含むことができる。
一実施形態において、前記画像情報はヘッダ情報を含むことができる。ここで、ヘッダ情報は、ピクチャヘッダ(またはスライスヘッダ)であり得る。前記ヘッダ情報は、LMCS関連APS ID情報を含むことができる。前記LMCS関連APS ID情報は、前記現在ピクチャ、前記現在ブロック、または現在スライスに対するLMCS APSの前記識別子情報を示すことができる。すなわち、前記LMCS関連APS ID情報の値は、前記LMCS APSの前記識別子情報の値と同一であり得る。例えば、前記LMCS関連APS ID情報の値は0から3の範囲内にあり得る。すなわち、前記LMCS関連APS ID情報の値は0、1、2、または3であり得る。
一実施形態において、前記画像情報は、SPS(sequence parameter set)を含むことができる。前記SPSは、線形LMCSが可用であるか否かを示す線形LMCS可用フラグを含むことができる。
一実施形態において、前記LMCSデータに関する情報に基づいて最小ビンインデックス(ex.lmcs_min_bin_idx)及び/または最大ビンインデックス(ex.LmcsMaxBinIdx)が導出されることができる。前記最小ビンインデックスに基づいて第1マッピング値(LmcsPivot[lmcs_min_bin_idx])が導出されることができる。前記最大ビンインデックスに基づいて第2マッピング値(LmcsPivot[LmcsMaxBinIdx]またはLmcsPivot[LmcsMaxBinIdx+1])が導出されることができる。前記復元ルマサンプル(ex.表36または37のlumaSample)の値は、第1マッピング値から第2マッピング値までの範囲にあり得る。一例において、全ての復元ルマサンプルの値は、第1マッピング値から第2マッピング値までの範囲にあり得る。他の例において、復元ルマサンプルのうち一部サンプルの値は、第1マッピング値から第2マッピング値までの範囲にあり得る。
一実施形態において、前記LMCSデータに関する情報は、LMCSデータフィールド及び線形LMCSに関する情報を含むことができる。前記線形LMCSに関する情報は、線形マッピングに関する情報とも指称され得る。前記LMCSデータフィールドは、線形LMCSが適用されるか否かを示す線形LMCSフラグを含むことができる。前記線形LMCSフラグの値が1である場合、前記マッピングされた予測ルマサンプルは、前記線形LMCSに関する情報に基づいて生成されることができる。
一実施形態において、前記線形LMCSに関する情報は、第1ピボットポイント(ex.図11のP1)に関する情報、及び第2ピボットポイント(ex.図11のP2)に関する情報を含むことができる。例えば、前記第1ピボットポイントの入力値及びマッピング値は、それぞれ最小入力値、最小マッピング値であり得る。前記第2ピボットポイントの入力値及びマッピング値は、それぞれ最大入力値、最大マッピング値であり得る。前記最小入力値及び前記最大入力値の間の入力値は、線形的にマッピングされることができる。
一実施形態において、前記画像情報は、前記最大入力値に関する情報、及び前記最大マッピング値に関する情報を含むことができる。前記最大入力値は、前記最大入力値に関する情報(ex.表33のlmcs_max_input)の値と同一であり得る。前記最大マッピング値は、前記最大マッピング値に関する情報(ex.表33のlmcs_max_mapped)の値と同一であり得る。
一実施形態において、前記線形マッピングに関する情報は、前記第2ピボットポイントの入力デルタ値に関する情報(ex.表35のlmcs_max_input_delta)及び前記第2ピボットポイントのマッピングデルタ値に関する情報(ex.表35のlmcs_max_mapped_delta)を含むことができる。前記第2ピボットポイントの入力デルタ値に基づいて前記最大入力値が導出され、前記第2ピボットポイントのマッピングデルタ値に基づいて前記最大マッピング値が導出されることができる。
一実施形態において、前記最大入力値及び前記最大マッピング値は、前述の表36に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、前記マッピングされた予測ルマサンプルを生成するステップは、前記予測ルマサンプルに対するフォワードマッピングスケーリングファクター(ex.前述のScaleCoeffSingle)を導出するステップ、及び前記フォワードマッピングスケーリングファクターに基づいて前記マッピングされた予測ルマサンプルは生成するステップを含むことができる。前記フォワードマッピングスケーリングファクターは、前記予測ルマサンプルのための単一ファクターであり得る。
一実施形態において、前記フォワードマッピングスケーリングファクターは、前述の表36及び/または38に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、前記マッピングされた予測ルマサンプルは、前述の表38に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、エンコード装置は、前記復元ルマサンプル(ex.前述のlumaSample)に対する逆マッピングスケーリングファクター(ex.前述のInvScaleCoeffSingle)を導出することができる。また、エンコード装置は、前記復元ルマサンプル及び前記逆マッピングスケーリングファクターに基づいて修正された復元ルマサンプル(ex.invSample)を生成することができる。前記逆マッピングスケーリングファクターは、前記復元ルマサンプルのための単一ファクターであり得る。
一実施形態において、前記逆マッピングスケーリングファクターは、前記復元ルマサンプルに基づいて導出されたピースワイズインデックスを利用して導出されることができる。
一実施形態において、前記ピースワイズインデックスは、前述の表51に基づいて導出されることができる。すなわち、前記表51に含まれた比較手順(lumaSample<LmcsPivot[idxYInv+1])は、前記ピースワイズインデックスが前記最小ビンインデックスの場合から前記ピースワイズインデックスが前記最大ビンインデックスの場合まで繰り返し的に実行されることができる。
一実施形態において、前記逆マッピングスケーリングファクターは、前述の表33、34、35、36に含まれた少なくとも一つの数式、または数式11または12に基づいて導出されることができる。
一実施形態において、前記修正された復元ルマサンプルは、前述の数式20、数式21、表39、及び/または表40に基づいて導出されることができる。
一実施形態において、前記LMCS関連情報は、前記マッピングされた予測ルマサンプルを導出するためのビンの個数に関する情報(ex.表41のlmcs_num_bins_minus1)を含むことができる。例えば、ルママッピングのためのピボットポイントの個数は、前記ビンの個数と同一に設定されることができる。一例において、エンコード装置は、前記ビンの個数だけ前記ピボットポイントのデルタ入力値及びデルタマッピング値をそれぞれ生成することができる。一例において、前記デルタ入力値(ex.表41のlmcs_delta_input_cw[i])及び前記デルタマッピング値(ex.表41のlmcs_delta_mapped_cw[i])に基づいて前記ピボットポイントの入力値及びマッピング値が導出され、前記入力値(ex.表42のlmcsPivot_input[i])及び前記マッピング値(ex.表42のLmcsPivot_mapped[i])に基づいて前記マッピングされた予測ルマサンプルが生成されることができる。
一実施形態において、エンコード装置は、前記LMCS関連情報に含まれた少なくとも一つのLMCSコードワードと原本コードワード(OrgCW)に基づいてLMCSデルタコードワードを導出することができ、少なくとも一つのLMCSコードワードと原本コードワードに基づいてマッピングされたルマ予測サンプルを導出することもできる。一例において、前記線形マッピングに関する情報は、LMCSデルタコードワードに関する情報を含むことができる。
一実施形態において、前記LMCSデルタコードワードとOrgCWの合算に基づいて前記少なくとも一つのLMCSコードワードが導出されることができ、例えば、OrgCWは(1<<BitDepthY)/16であり、ここで、BitDepthYは、ルマビット深度を示すことができる。本実施形態は、数式12に基づくことができる。
一実施形態において、前記LMCSデルタコードワードとOrgCW*(lmcs_max_bin_idx-lmcs_min_bin_idx+1)の合算に基づいて前記少なくとも一つのLMCSコードワードが導出されることができ、lmcs_max_bin_idx及びlmcs_min_bin_idxは、各々、最大binインデックス及び最小binインデックスであり、OrgCWは(1<<BitDepthY)/16である。本実施形態は、数式15、16に基づいて行われることができる。
一実施形態において、前記少なくとも一つのLMCSコードワードは、2の倍数であることができる。
一実施形態において、前記復元ルマサンプルのルマビット深度(BitDepthY)が10より高い場合、前記少なくとも一つのLMCSコードワードは、1<<(BitDepthY-10)の倍数である。
一実施形態において、前記少なくとも一つのLMCSコードワードは、(OrgCW>>1)から(OrgCW<<1)-1までの範囲内にある。
図17及び18は、本文書の実施形態に係る画像/ビデオデコード方法及び関連コンポーネントの一例を概略的に示す。図17で開示された方法は、図3で開示されたデコード装置により実行されることができる。具体的には、例えば、図17のS1700は、前記デコード装置のエントロピーデコード部310により実行されることができ、S1710は、前記デコード装置の予測部330により実行されることができ、S1720は、前記デコード装置のレジデュアル処理部320、予測部330及び/または加算部340により実行されることができ、S1730は、前記デコード装置の加算部340により実行されることができる。図17で開示された方法は、本文書で上述した実施形態を含むことができる。
図17を参照すると、デコード装置は、ビデオ/画像情報を受信/獲得することができる(S1700)。ビデオ/画像情報は、LMCSデータに関する情報及び/またはレジデュアル情報を含むことができる。例えば、LMCSデータに関する情報は、前述のルママッピング(ex.フォワードマッピング、逆マッピング、線形マッピング)に関する情報、クロマレジデュアルスケーリングに関する情報、及び/またはLMCS(または整形、整形器)に関するインデックス(ex.最大ビンインデックス、最小ビンインデックス、マッピングインデックス)を含むことができる。デコード装置は、ビットストリームを介して前記画像/ビデオ情報を受信/獲得することができる。
前記画像/ビデオ情報は、本文書の実施形態に係る多様な情報を含むことができる。例えば、前記画像/ビデオ情報は、前述した表1乃至60の少なくとも一つに開示された情報を含むことができる。
デコード装置は、予測ルマサンプルを生成することができる。デコード装置は、予測モードに基づいて前記現在ブロックの予測ルマサンプルを導出することができる。この場合、インター予測またはイントラ予測など本文書で開示された多様な予測方法が適用されることができる。
前記画像情報は、レジデュアル情報を含むことができる。デコード装置は、レジデュアル情報に基づいてレジデュアルクロマサンプルを生成することができる。具体的には、デコード装置は、レジデュアル情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン手順に基づいて1次元ベクトル形態を有することができる。デコード装置は、前記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、変換係数に基づいてレジデュアルクロマサンプル及び/またはレジデュアルルマサンプルを導出することができる。
デコード装置は、マッピングされた予測ルマサンプルを生成することができる(S1710)。例えば、デコード装置は、ルママッピングのためのピボットポイントの入力値及びマッピング値(出力値)を導出することができ、そして、前記入力値及びマッピング値に基づいてマッピングされた予測ルマサンプルを生成することができる。一例において、デコード装置は、第1予測ルマサンプルに基づいて(フォワード)マッピングインデックス(idxY)を導出することができ、そして、前記マッピングインデックスに対応するピボットポイントの入力値及びマッピング値に基づいて第1マッピングされた予測ルマサンプルを生成することができる。他の例において、線形マッピング(線形整形、線形LMCS)が用いられることができ、そして、線形マッピングでの二つのピボットポイントから導出されたフォワードマッピングスケーリングファクターに基づいてマッピングされた予測ルマサンプルが生成されることができ、したがって、線形マッピングによってインデックス導出手順が省略されることもできる。
デコード装置は、前記レジデュアル情報に基づいてレジデュアルルマサンプルを生成することができる(S1720)。例えば、デコード装置は、前記レジデュアル情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン手順に基づいて1次元ベクトル形態を有することができる。デコード装置は、前記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、前記変換係数に対する逆変換手順に基づいてレジデュアルサンプルを導出することができる。前記レジデュアルサンプルは、レジデュアルルマサンプル及び/またはレジデュアルクロマサンプルを含むことができる。
デコード装置は、復元ルマサンプルを生成することができる(S1730)。デコード装置は、マッピングされた予測ルマサンプルに基づいて復元ルマサンプルを生成することができる。具体的には、デコード装置は、前述のレジデュアルルマサンプルをマッピングされた予測ルマサンプルと合算することができ、前記合算結果に基づいて復元ルマサンプルを生成することができる。
デコード装置は、前記LMCSデータに関する情報及び前記復元ルマサンプルに基づいて修正された復元ルマサンプルを生成することができる(S1740)。デコード装置は、前記復元ルマサンプルに対する逆マッピング手順を通じて前記修正された復元ルマサンプルを生成することができる。
デコード装置は、スケーリングされたレジデュアルクロマサンプルを生成することができる。具体的には、デコード装置は、クロマレジデュアルスケーリングファクターを導出することができ、クロマレジデュアルスケーリングファクターに基づいてスケーリングされたレジデュアルクロマサンプルを生成することができる。ここで、デコーディング段のクロマレジデュアルスケーリングは、エンコーディング段とは反対に、逆クロマレジデュアルスケーリングとも指称され得る。よって、デコード装置により導出されたクロマレジデュアルスケーリングファクターは、逆クロマレジデュアルスケーリングファクターと指称され得る、逆スケーリングされたレジデュアルクロマサンプルが生成されることができる。
デコード装置は、復元クロマサンプルを生成することができる。デコード装置は、スケーリングされたレジデュアルクロマサンプルに基づいて復元クロマサンプルを生成することができる。具体的には、デコード装置は、クロマ成分に対する予測手順を実行することができ、予測クロマサンプルを生成することができる。デコード装置は、予測クロマサンプルとスケーリングされたレジデュアルクロマサンプルとの間の合算に基づいて復元クロマサンプルを生成することができる。
一実施形態において、前記画像情報は、LMCS APSを含むことができる。LMCS APS(前記LMCS APSの一つ)は、LMCSデータフィールドを含むAPSであることを示すタイプ情報及び前記LMCS APSの識別子情報(identifier information、ID 情報)を含むことができる。前記LMCSデータフィールドは、前記LMCSデータに関する情報を含むことができる。前記タイプ情報に基づいて、前記LMCS APSは、前記LMCSデータフィールドを含み、前記LMCSデータフィールドに基づいて前記LMCSコードワードが導出されることができる。前記LMCSコードワードに基づいて前記マッピングされた予測ルマサンプル及び前記修正された復元ルマサンプルが生成されることができる。一例において、前記識別子情報の値は所定の範囲内にあり得る。例えば、前記所定の範囲は0から3の範囲であり得る。すなわち、前記識別子情報の値は0、1、2、または3であり得る。前記LMCS APSの最大個数は、予め決められた値であり得る。他の例において、前記LMCS APSの最大個数は、予め決められた値であり得る。例えば、LMCS APSの最大個数(前記予め決められた値)は4であり得る。
一実施形態において、前記LMCSデータに関する情報に基づいてピースワイズインデックス(ex.表35、36または37のidxYInv)が識別されることができる。デコード装置は、前記ピースワイズインデックスに基づいてクロマレジデュアルスケーリングファクターを導出することができる。デコード装置は、前記レジデュアルクロマサンプル及び前記クロマレジデュアルスケーリングファクターに基づいてスケーリングされたレジデュアルクロマサンプルを生成することができる。
一実施形態において、前記現在ブロックがシングルツリー構造またはデュアルツリー構造である場合(前記現在ブロックが個別的ツリー構造である場合、前記現在ブロックが個別的ツリーでコーディングされた場合)、前記現在ブロックのためにクロマレジデュアルスケーリングが適用されるか否かを示すクロマレジデュアルスケーリング可用フラグがシグナリングされることができる。現在ピクチャ、現在スライス、及び/または現在ブロックに対してクロマレジデュアルスケーリングが適用される場合、前記クロマレジデュアルスケーリング可用フラグの値は1であり得る。
一実施形態において、前記クロマレジデュアルスケーリングファクターは、単一クロマレジデュアルスケーリングファクターであり得る。
一実施形態において、前記タイプ情報の値が1であることに基づいて、前記APSは、LMCSパラメータを含む前記LMCSデータフィールドを含むことができる。
一実施形態において、前記画像情報はヘッダ情報を含むことができる。ここで、ヘッダ情報は、ピクチャヘッダ(またはスライスヘッダ)であり得る。前記ヘッダ情報は、LMCS関連APS ID情報を含むことができる。前記LMCS関連APS ID情報は、前記現在ピクチャ、前記現在ブロック、または現在スライスに対するLMCS APSの前記識別子情報を示すことができる。すなわち、前記LMCS関連APS ID情報の値は、前記LMCS APSの前記識別子情報の値と同一であり得る。例えば、前記LMCS関連APS ID情報の値は0から3の範囲内にあり得る。すなわち、前記LMCS関連APS ID情報の値は0、1、2、または3であり得る。
一実施形態において、前記LMCSデータに関する情報に基づいて最小ビンインデックス(ex.lmcs_min_bin_idx)及び/または最大ビンインデックス(ex.LmcsMaxBinIdx)が導出されることができる。前記最小ビンインデックスに基づいて第1マッピング値(LmcsPivot[lmcs_min_bin_idx])が導出されることができる。前記最大ビンインデックスに基づいて第2マッピング値(LmcsPivot[LmcsMaxBinIdx]またはLmcsPivot[LmcsMaxBinIdx+1])が導出されることができる。前記復元ルマサンプル(ex.表51または52のlumaSample)の値は、第1マッピング値から第2マッピング値までの範囲にあり得る。一例において、全ての復元ルマサンプルの値は第1マッピング値から第2マッピング値までの範囲にあり得る。他の例において、復元ルマサンプルのうち一部サンプルの値は第1マッピング値から第2マッピング値までの範囲にあり得る。
一実施形態において、前記画像情報はSPS(sequence parameter set)を含むことができる。前記SPSは線形LMCSが可用であるか否かを示す線形LMCS可用フラグを含むことができる。
一実施形態において、前記クロマレジデュアルスケーリングファクターは、単一クロマレジデュアルスケーリングファクターであり得る。
一実施形態において、前記LMCSデータに関する情報は、LMCSデータフィールド及び線形LMCSに関する情報を含むことができる。前記線形LMCSに関する情報は、線形マッピングに関する情報とも指称され得る。前記LMCSデータフィールドは、線形LMCSが適用されるか否かを示す線形LMCSフラグを含むことができる。前記線形LMCSフラグの値が1の場合、前記マッピングされた予測ルマサンプルは、前記線形LMCSに関する情報に基づいて生成されることができる。
一実施形態において、前記線形LMCSに関する情報は、第1ピボットポイント(ex.図11のP1)に関する情報及び第2ピボットポイント(ex.図11のP2)に関する情報を含むことができる。例えば、前記第1ピボットポイントの入力値及びマッピング値は、それぞれ最小入力値、最小マッピング値であり得る。前記第2ピボットポイントの入力値及びマッピング値は、それぞれ最大入力値、最大マッピング値であり得る。前記最小入力値及び前記最大入力値の間の入力値は、線形的にマッピングされることができる。
一実施形態において、前記画像情報は、前記最大入力値に関する情報及び前記最大マッピング値に関する情報を含むことができる。前記最大入力値は、前記最大入力値に関する情報(ex.表33のlmcs_max_input)の値と同一であり得る。前記最大マッピング値は、前記最大マッピング値に関する情報(ex.表33のlmcs_max_mapped)の値と同一であり得る。
一実施形態において、前記線形マッピングに関する情報は、前記第2ピボットポイントの入力デルタ値に関する情報(ex.表35のlmcs_max_input_delta)及び前記第2ピボットポイントのマッピングデルタ値に関する情報(ex.表35のlmcs_max_mapped_delta)を含むことができる。前記第2ピボットポイントの入力デルタ値に基づいて前記最大入力値が導出され、前記第2ピボットポイントのマッピングデルタ値に基づいて前記最大マッピング値が導出されることができる。
一実施形態において、前記最大入力値及び前記最大マッピング値は、前述の表36に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、前記マッピングされた予測ルマサンプルを生成するステップは、前記予測ルマサンプルに対するフォワードマッピングスケーリングファクター(ex.前述のScaleCoeffSingle)を導出するステップ、及び前記フォワードマッピングスケーリングファクターに基づいて前記マッピングされた予測ルマサンプルは生成するステップを含むことができる。前記フォワードマッピングスケーリングファクターは、前記予測ルマサンプルのための単一ファクターであり得る。
一実施形態において、前記逆マッピングスケーリングファクターは、前記復元ルマサンプルに基づいて導出されたピースワイズインデックスを利用して導出されることができる。
一実施形態において、前記ピースワイズインデックスは、前述の表51に基づいて導出されることができる。すなわち、前記表51に含まれた比較手順(lumaSample<LmcsPivot[idxYInv+1])は、前記ピースワイズインデックスが前記最小ビンインデックスの場合から前記ピースワイズインデックスが前記最大ビンインデックスの場合まで繰り返し的に実行されることができる。
一実施形態において、前記フォワードマッピングスケーリングファクターは、前述の表36及び/または38に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、前記マッピングされた予測ルマサンプルは、前述の表38に含まれた少なくとも一つの数式に基づいて導出されることができる。
一実施形態において、デコード装置は、前記復元ルマサンプル(ex.前述のlumaSample)に対する逆マッピングスケーリングファクター(ex.前述のInvScaleCoeffSingle)を導出することができる。また、デコード装置は、前記復元ルマサンプル及び前記逆マッピングスケーリングファクターに基づいて修正された復元ルマサンプル(ex.invSample)を生成することができる。前記逆マッピングスケーリングファクターは、前記復元ルマサンプルのための単一ファクターであり得る。
一実施形態において、前記逆マッピングスケーリングファクターは、前述の表33、34、35、36に含まれた少なくとも一つの数式、または数式11 または12に基づいて導出されることができる。
一実施形態において、前記修正された復元ルマサンプルは、前述の数式20、数式21、表39、及び/または表40に基づいて導出されることができる。
一実施形態において、前記LMCS関連情報は、前記マッピングされた予測ルマサンプルを導出するためのビンの個数に関する情報(ex.表41のlmcs_num_bins_minus1)を含むことができる。例えば、ルママッピングのためのピボットポイントの個数は、前記ビンの個数と同一に設定されることができる。一例において、デコード装置は、前記ビンの個数だけ前記ピボットポイントのデルタ入力値及びデルタマッピング値をそれぞれ生成することができる。一例において、前記デルタ入力値(ex.表41のlmcs_delta_input_cw[i])及び前記デルタマッピング値(ex.表41のlmcs_delta_mapped_cw[i])に基づいて前記ピボットポイントの入力値及びマッピング値が導出され、前記入力値(ex.表42のLmcsPivot_input[i])及び前記マッピング値(ex.表42のLmcsPivot_mapped[i])に基づいて前記マッピングされた予測ルマサンプルが生成されることができる。
一実施形態において、デコード装置は、前記LMCS関連情報に含まれた少なくとも一つのLMCSコードワードと原本コードワード(OrgCW)に基づいてLMCSデルタコードワードを導出することができ、少なくとも一つのLMCSコードワードと原本コードワードに基づいてマッピングされたルマ予測サンプルを導出することもできる。一例において、前記線形マッピングに関する情報は、LMCSデルタコードワードに関する情報を含むことができる。
一実施形態において、前記LMCSデルタコードワードとOrgCWの合算に基づいて前記少なくとも一つのLMCSコードワードが導出されることができ、例えば、OrgCWは(1<<BitDepthY)/16であり、ここで、BitDepthYは、ルマビット深度を示すことができる。本実施形態は、数式14に基づくことができる。
一実施形態において、前記LMCSデルタコードワードとOrgCW*(lmcs_max_bin_idx-lmcs_min_bin_idx+1)の合算に基づいて前記少なくとも一つのLMCSコードワードが導出されることができ、lmcs_max_bin_idx及びlmcs_min_bin_idxは、各々、最大binインデックス及び最小binインデックスであり、OrgCWは(1<<BitDepthY)/16である。本実施形態は、数式15、16に基づいて行われることができる。
一実施形態において、前記少なくとも一つのLMCSコードワードは、2の倍数であることができる。
一実施形態において、前記復元ルマサンプルのルマビット深度(BitDepthY)が10より高い場合、前記少なくとも一つのLMCSコードワードは、1<<(BitDepthY-10)の倍数である。
一実施形態において、前記少なくとも一つのLMCSコードワードは、(OrgCW>>1)から(OrgCW<<1)-1までの範囲内にある。
前述の文段で、LMCSデータに関する情報は、LMCS関連情報と同一であり得る。
前述した実施形態において、方法は、一連のステップ又はブロックとしてフローチャートに基づいて説明されているが、該当実施形態は、ステップの順序に限定されるわけではなく、あるステップは、前述したところと異なるステップと異なる順序で、又は同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの一つ又はそれ以上のステップが本文書の実施形態の範囲に影響を与えずに削除され得ることを理解することができる。
前述した本文書の実施形態に係る方法は、ソフトウェアの形態で実現されることができ、本文書に係るエンコード装置及び/又はデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置等の画像処理を行う装置に含まれ得る。
本文書で、実施形態がソフトウェアで実現される際、前述した方法は、前述した機能を行うモジュール(過程、機能等)で実現されることができる。モジュールはメモリに格納され、プロセッサにより実行されることができる。メモリは、プロセッサの内部又は外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/又はデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/又は他の格納装置を含むことができる。即ち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で実現されて行われ得る。この場合、実現のための情報(ex.information on instructions)又はアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施形態が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、オーダーメイド型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(ex.車両(自律走行車両含む)端末、飛行機端末、船舶端末など)及び医療用ビデオ装置等に含まれ得、ビデオ信号又はデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)等を含み得る。
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に格納されることができる。本文書の実施形態に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に格納されることができる。前記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、及び光学的データ格納装置を含み得る。また、前記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
図19は、本文書に開示された実施形態が適用されることができるコンテンツストリーミングシステムの例を示す。
図19を参照すると、本文書の実施形態が適用されるコンテンツストリーミングシステムは、大きくエンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、カムコーダ等のようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略され得る。
前記ビットストリームは、本文書の実施形態が適用されるエンコード方法又はビットストリームの生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信又は受信する過程で、一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介してのユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すれば、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/又はエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間、格納することができる。
前記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジなどがありうる。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として実現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として実現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として実現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として実現されることができる。