本文書は、様々な変更を加えることができ、種々の実施形態を有することができ、特定実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書において常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、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)、または次世代ビデオ/画像コーディング標準(例えば、H.267またはH.268等)に開示される方法に適用されることができる。
この文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、他の言及がない限り、前記実施形態は、互いに組み合わせられて実行されることもできる。
この文書においてビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味し得る。ピクチャ(picture)は、一般に特定の時間帯の1つの画像を示す単位を意味し、サブピクチャ(subpicture)/スライス(slice)/タイル(tile)はコーディングにおいてピクチャの一部を構成する単位である。サブピクチャ/スライス/タイルは、1つ以上のCTU(coding tree unit)を含んでもよい。1つのピクチャは1つ以上のサブピクチャ/スライス/タイルで構成されてもよい。1つのピクチャは1つ以上のタイルのグループで構成されてもよい。1つのタイルグループは1つ以上のタイルを含んでもよい。ブリックはピクチャ内のタイル内のCTU行の長方形領域を示す(a brick may represent a rectangular region of CTU rows within a tile in a picture)。タイルは複数のブリックでパーティショニングされ、各ブリックは前記タイル内の1つ以上のCTU行で構成される(A tile may be partitioned into multiple bricks, each of which consisting of one or more CTU rows within the tile)。複数のブリックによりパーティショニングされていないタイルもブリックと呼ばれてもよい(A tile that is not partitioned into multiple bricks may be also referred to as a brick)。ブリックスキャンはピクチャをパーティショニングするCTUの特定の順次オーダリングを示し、前記CTUはブリック内においてCTUラスタスキャンで整列され、タイル内のブリックは前記タイルの前記ブリックのラスタスキャンで連続的に整列され、そして、ピクチャ内のタイルは前記ピクチャの前記タイルのラスタスキャンで連続整列される(A brick scan is a specific sequential ordering of CTUs partitioning a picture in which the CTUs are ordered consecutively in CTU raster scan in a brick, bricks within a tile are ordered consecutively in a raster scan of the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the picture)。また、サブピクチャはサブピクチャ内の1つ以上のスライスの長方形領域を示す(a subpicture may represent a rectangular region of one or more slices within a picture)。すなわち、サブピクチャはピクチャの長方形領域を総括的にカバーする1つ以上のスライスを含む(a subpicture contains one or more slices that collectively cover a rectangular region of a picture)。タイルは特定タイル列及び特定タイル列以内の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)。スライスはピクチャの整数個のブリックを含み、前記整数個のブリックは1つのNALユニットに含まれる(A slice includes an integer number of bricks of a picture that maybe exclusively contained in a single NAL unit)。スライスは複数の完全なタイルで構成され、または、1つのタイルの完全なブリックの連続的なシーケンスであり得る(A slice may consists of either a number of complete tiles or only a consecutive sequence of complete bricks of one tile)。この文書では、タイルグループとスライスは混用されてもよい。例えば、本文書ではtile group/tile group headerはslice/slice headerと呼ばれてもよい。
ピクセル(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 Mode)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示に過ぎず、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用されることができる。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは同じであってもよく、異なってもよい。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などの名称で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するためにどのような候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が実行されることができ、例えば、スキップモードとマージモードの場合に、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なってレジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(Motion Vector Predictor)として利用し、動きベクトル差分(motion vector difference)をシグナリングすることによって現在ブロックの動きベクトルを指示することができる。
予測部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)、KLT(Karhunen-Loeve 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を介して逆量子化及び逆変換を適用することによってレジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号をインター予測部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で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200とデコード装置300での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270DPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
図3は、本文書の実施形態が適用され得るビデオ/画像デコード装置の構成を概略的に説明する図である。
図3に示すように、デコード装置300は、エントロピーデコード部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memory)360を備えて構成されることができる。予測部330は、インター予測部331及びイントラ予測部332を備えることができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)322を備えることができる。前述したエントロピーデコード部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/画像情報を含むビットストリームが入力されると、デコード装置300は、図2のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコード装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを実行することができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであり、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出されることができる。そして、デコード装置300を介してデコード及び出力された復元画像信号は、再生装置を介して再生されることができる。
デコード装置300は、図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部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)変換係数と称されることができる。この場合、レジデュアル情報は、変換係数(等)に関する情報を含むことができ、前記変換係数(等)に関する情報は、レジデュアルコーディングシンタックスを介してシグナリングされることができる。前記レジデュアル情報(または、前記変換係数(等)に関する情報)に基づいて変換係数が導出され得るし、前記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出され得る。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出され得る。これは、本文書の他の部分でも同様に適用/表現されることができる。
図4は、コーティングされた画像/ビデオに対する階層構造を例示的に示す。
図4を参照すると、コーティングされた画像/ビデオは、画像/ビデオのデコード処理及びそれ自体を取り扱う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値で特定されることができる。
一方、前述の内容のように、エンコード装置は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような多様なエンコード方法を行うことができる。また、デコード装置は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法を基にビットストリーム内の情報をデコードし、画像の復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力できる。
例えば、前述のコーディング方法は、後述の内容のように行うことができる。
図5は、シンタックスエレメント(syntax element)をエンコードするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。例えば、CABACの符号化過程は、エンコード装置は入力信号が二進値ではないシンタックスエレメントである場合には、前記入力信号の値を二進化(binarization)し、入力信号を二進値に変換できる。また、前記入力信号が既に二進値である場合(すなわち、前記入力信号の値が二進値である場合)には二進化が行われることなくバイパス(bypass)されることができる。ここで、二進値を構成する各々の二進数0又は1をビン(bin)といえる。例えば、二進化された後の二進ストリングが110である場合、1、1、0各々を1つのビンという。1つのシンタックスエレメントに対する前記ビンは、前記シンタックスエレメントの値を示すことができる。
その後、前記シンタックスエレメントの二進化したビンは、正規(regular)符号化エンジン又はバイパス符号化エンジンに入力されることができる。エンコード装置の正規符号化エンジンは、当該ビンに対して、確率値を反映するコンテキストモデル(context model)を割り当てることができ、割り当てられたコンテキストモデルに基づいて当該ビンをエンコードできる。エンコード装置の前記正規符号化エンジンは、各ビンに対するエンコードを行った後に、当該ビンに対するコンテキストモデルを更新することができる。前述の内容のようにエンコードされるビンは、文脈符号化ビン(context-coded bin)と示すことができる。
一方、前記シンタックスエレメントの二進化したビンが前記バイパス符号化エンジンに入力される場合には、次のようにコーディングされることができる。例えば、エンコード装置のバイパス符号化エンジンは、入力されたビンに対して確率を推定する手順と、符号化後に前記ビンに適用した確率モデルを更新する手順を省略する。バイパスエンコードが適用される場合、エンコード装置はコンテキストモデルを割り当てる代わりに、均一な確率分布を適用し、入力されるビンをエンコードすることができ、これを介してエンコード速度を向上させることができる。前述の内容のようにエンコードされるビンは、バイパスビン(bypass bin)と示すことができる。
エントロピーデコードは、前述のエントロピーエンコードと同じ過程を逆順に行う過程を示すことができる。
例えば、シンタックスエレメントがコンテキストモデルに基づいてデコードされる場合、デコード装置はビットストリームを介して前記シンタックスエレメントに該当するビンを受信することができ、前記シンタックスエレメントとデコード対象のブロック又は周辺ブロックのデコード情報若しくは以前のステップでデコードされたシンボル/ビンの情報を用いてコンテキストモデル(context model)を決定することができ、決定されたコンテキストモデルによって、前記受信されたビン(bin)の発生確率を予測してビンの算術デコード(arithmetic decoding)を行い、前記シンタックスエレメントの値を導出することができる。その後、前記決定されたコンテキストモデルで、次にデコードされるビンのコンテキストモデルが更新できる。
また、例えば、シンタックスエレメントがバイパスデコードされる場合、デコード装置はビットストリームを介して前記シンタックスエレメントに該当するビンを受信することができ、均一な確率分布を適用し、入力されるビンをデコードすることができる。この場合、デコード装置は、シンタックスエレメントのコンテキストモデルを導出する手順と、デコードの後に前記ビンに適用したコンテキストモデルを更新する手順は省略され得る。
また、前述したように、ビデオコーディングを行うのにおいて、圧縮効率を上げるために予測を行う。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成できる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同一に導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコード装置にシグナリングすることにより画像コーディング効率を上げることができる。デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成でき、復元ブロックを含む復元ピクチャを生成できる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれたレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を行って変換係数を導出し、前記変換係数に量子化手順を行って量子化された変換係数を導出し、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を行い、レジデュアルサンプル(または、レジデュアルブロック)を導出できる。デコード装置は、予測されたブロックと前記レジデュアルブロックとに基づいて復元ピクチャを生成できる。エンコード装置は、さらに以後ピクチャのインター予測のための参照のために、量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成できる。
イントラ予測は、現在ブロックが属するピクチャ(以下、現在ピクチャ)内の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測を表すことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺参照サンプルが導出され得る。前記現在ブロックの周辺参照サンプルは、nW×nHサイズの現在ブロックの左側(left)境界に隣接したサンプル及び左下側(bottom-left)に隣り合う合計2×nH個のサンプル、現在ブロックの上側(top)境界に隣接したサンプル及び右上側(top-right)に隣り合う合計2xnW個のサンプル及び現在ブロックの左上側(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)を利用し、ルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードまたはCCLM(chroma component 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)ステップが行われることもできる。
図6は、イントラ予測基盤のビデオ/画像エンコード方法の例を示す。
図6に示すように、エンコード装置は、現在ブロックに対するイントラ予測を行う(S600)。エンコード装置は、現在ブロックに対するイントラ予測モード/タイプを導出し、現在ブロックの周辺参照サンプルを導出でき、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成する。ここで、イントラ予測モード/タイプ決定、周辺参照サンプル導出及び予測サンプル生成手順は、同時に行われることができ、いずれか1つの手順が他の手順より先に行われることもできる。エンコード装置は、複数のイントラ予測モード/タイプのうち、前記現在ブロックに対して適用されるモード/タイプを決定できる。エンコード装置は、前記イントラ予測モード/タイプに対するRD costを比較し、前記現在ブロックに対する最適のイントラ予測モード/タイプを決定できる。
一方、エンコード装置は、予測サンプルフィルタリング手順を行うこともできる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって前記予測サンプルのうち一部または全部がフィルタリングされ得る。場合によって、前記予測サンプルフィルタリング手順は省略されることができる。
エンコード装置は、(フィルタリングされた)予測サンプルに基づいて前記現在ブロックに対するレジデュアルサンプルを生成する(S610)。エンコード装置は、現在ブロックの原本サンプルで前記予測サンプルを位相基盤にて比較し、前記レジデュアルサンプルを導出できる。
エンコード装置は、前記イントラ予測に関する情報(予測情報)及び前記レジデュアルサンプルに関するレジデュアル情報を含む画像情報をエンコードすることができる(S620)。前記予測情報は、前記イントラ予測モード情報、前記イントラ予測タイプ情報を含むことができる。エンコード装置は、エンコードされた画像情報をビットストリーム形態で出力することができる。出力されたビットストリームは、格納媒体またはネットワークを介してデコード装置に伝達されることができる。
前記レジデュアル情報は、後述するレジデュアルコーディングシンタクスを含むことができる。エンコード装置は、前記レジデュアルサンプルを変換/量子化して、量子化された変換係数を導出できる。前記レジデュアル情報は、前記量子化された変換係数に関する情報を含むことができる。
一方、前述したように、エンコード装置は、復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成できる。このために、エンコード装置は、前記量子化された変換係数を再度逆量子化/逆変換処理して(修正された)レジデュアルサンプルを導出できる。このように、レジデュアルサンプルを変換/量子化後、再度逆量子化/逆変換を行う理由は、前述したように、デコード装置から導出されるレジデュアルサンプルと同じレジデュアルサンプルを導出するためである。エンコード装置は、前記予測サンプルと前記(修正された)レジデュアルサンプルとに基づいて前記現在ブロックに対する復元サンプルを含む復元ブロックを生成できる。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成され得る。前記復元ピクチャにインループフィルタリング手順などがさらに適用され得ることは、前述したとおりである。
図7は、イントラ予測基盤のビデオ/画像エンコード方法の例を示す。
デコード装置は、前記エンコード装置で行われた動作と対応する動作を行うことができる。
予測情報及びレジデュアル情報をビットストリームから取得することができる。前記レジデュアル情報に基づいて現在ブロックに対するレジデュアルサンプルが導出され得る。具体的に、前記レジデュアル情報に基づいて導出された量子化された変換係数に基づいて、逆量子化を行って変換係数を導出し、前記変換係数に対する逆変換を行い、前記現在ブロックに対するレジデュアルサンプルを導出できる。
具体的に、デコード装置は、受信された予測情報(イントラ予測モード/タイプ情報)に基づいて現在ブロックに対するイントラ予測モード/タイプを導出できる(S700)。デコード装置は、前記現在ブロックの周辺参照サンプルを導出できる(S710)。デコード装置は、前記イントラ予測モード/タイプ及び前記周辺参照サンプルに基づいて前記現在ブロック内の予測サンプルを生成する(S720)。この場合、デコード装置は、予測サンプルフィルタリング手順を行うことができる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。前記予測サンプルフィルタリング手順によって前記予測サンプルのうち一部または全部がフィルタリングされ得る。場合によって、予測サンプルフィルタリング手順は省略されることができる。
デコード装置は、受信されたレジデュアル情報に基づいて前記現在ブロックに対するレジデュアルサンプルを生成する(S730)。デコード装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて前記現在ブロックに対する復元サンプルを生成し、前記復元サンプルを含む復元ブロックを導出できる(S740)。前記復元ブロックに基づいて前記現在ピクチャに対する復元ピクチャが生成され得る。前記復元ピクチャにインループフィルタリング手順などがさらに適用され得ることは、前述したとおりである。
前記イントラ予測モード情報は、例えば、MPM(most probable mode)が前記現在ブロックに適用されるか、それとも、リメイニングモード(remaining mode)が適用されるかの可否を表すフラグ情報(ex.intra_luma_mpm_flag)を含むことができ、前記MPMが前記現在ブロックに適用される場合、前記予測モード情報は、前記イントラ予測モード候補(MPM候補)のうち1つを指すインデックス情報(ex.intra_luma_mpm_idx)をさらに含むことができる。前記イントラ予測モード候補(MPM候補)は、MPM候補リストまたはMPMリストで構成されることができる。また、前記MPMが前記現在ブロックに適用されない場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうち1つを指すリメイニングモード情報(ex.intra_luma_mpm_remainder)をさらに含むことができる。デコード装置は、前記イントラ予測モード情報に基づいて前記現在ブロックのイントラ予測モードを決定できる。
また、前記イントラ予測タイプ情報は様々な形態で実現できる。一例として、前記イントラ予測タイプ情報は、前記イントラ予測タイプのいずれか1つを指示するイントラ予測タイプインデックス情報を含む。他の例として、前記イントラ予測タイプ情報は、前記MRLが前記現在ブロックに適用されるか否か及び適用される場合は何番目の参照サンプルラインが利用されるかを示す参照サンプルライン情報(ex.intra_luma_ref_idx)、前記ISPが前記ブロックに適用されるか否かを示すISPフラグ情報(ex.intra_subpartitions_mode_flag)又は前記ISPが適用される場合はサブパーティションが分割タイプを指示するISPタイプ情報(ex.intra_subpartitions_split_flag)の少なくとも1つを含む。また、前記イントラ予測タイプ情報は、前記現在ブロックにMIP(matrix-based intra prediction)が適用されるか否かを示すMIPフラグを含む。
前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、本文書において説明したコーディング方法によってエンコード/デコードされることができる。例えば、前記イントラ予測モード情報及び/又は前記イントラ予測タイプ情報は、エントロピーコーディング(ex.CABAC、CAVLC)を介してエンコード/デコードされることができる。
図8は、イントラ予測手順を例示的に示す。
図8を参照すれば、前述したようにイントラ予測手順は、イントラ予測モード/タイプ決定ステップ、周辺参照サンプル導出ステップ、イントラ予測実行(予測サンプル生成)ステップを含むことができる。前記イントラ予測手順は、前述したようにエンコード装置及びデコード装置で行われることができる。本文書においてコーディング装置とは、エンコード装置及び/又はデコード装置を含むことができる。
図8に示すように、コーディング装置は、イントラ予測モード/タイプを決定する(S800)。
エンコード装置は、前述した様々なイントラ予測モード/タイプのうち、前記現在ブロックに適用されるイントラ予測モード/タイプを決定でき、予測関連情報を生成できる。前記予測関連情報は、前記現在ブロックに適用されるイントラ予測モードを表すイントラ予測モード情報及び/又は前記現在ブロックに適用されるイントラ予測タイプを表すイントラ予測タイプ情報を含むことができる。デコード装置は、前記予測関連情報に基づいて前記現在ブロックに適用されるイントラ予測モード/タイプを決定できる。
前記イントラ予測モード情報は、例えば、MPM(most probable mode)が前記現在ブロックに適用されるか、それとも、リメイニングモード(remaining mode)が適用されるかの可否を表すフラグ情報(ex.intra_luma_mpm_flag)を含むことができ、前記MPMが前記現在ブロックに適用される場合、前記予測モード情報は、前記イントラ予測モード候補(MPM候補)のうち1つを指すインデックス情報(ex.intra_luma_mpm_idx)をさらに含むことができる。前記イントラ予測モード候補(MPM候補)は、MPM候補リストまたはMPMリストで構成されることができる。また、前記MPMが前記現在ブロックに適用されない場合、前記イントラ予測モード情報は、前記イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうち1つを指すリメイニングモード情報(ex.intra_luma_mpm_remainder)をさらに含むことができる。デコード装置は、前記イントラ予測モード情報に基づいて前記現在ブロックのイントラ予測モードを決定できる。
また、前記イントラ予測タイプ情報は様々な形態で実現できる。一例として、前記イントラ予測タイプ情報は、前記イントラ予測タイプのいずれか1つを指示するイントラ予測タイプインデックス情報を含む。他の例として、前記イントラ予測タイプ情報は、前記MRLが前記現在ブロックに適用されるか否か及び適用される場合は何番目の参照サンプルラインが利用されるかを示す参照サンプルライン情報(ex.intra_luma_ref_idx)、前記ISPが前記現在ブロックに適用されるか否かを示すISPフラグ情報(ex.intra_subpartitions_mode_flag)又は前記ISPが適用される場合はサブパーティションが分割タイプを指示するISPタイプ情報(ex.intra_subpartitions_split_flag)のうち少なくとも1つを含む。また、前記イントラ予測タイプ情報は、前記現在ブロックにMIP(matrix-based intra prediction)が適用されるか否かを示すMIPフラグを含む。
例えば、イントラ予測が適用される場合、周辺ブロックのイントラ予測モードを用いて現在ブロックに適用されるイントラ予測モードが決定され得る。例えば、コーディング装置は、現在ブロックの周辺ブロック(ex.左側及び/又は上側周辺ブロック)のイントラ予測モード及び/又は追加的な候補モードに基づいて導出されたMPM(most probable mode)リスト内のMPM候補のうち1つを、受信されたMPMインデックスに基づいて選択することができ、または、前記MPM候補(及びプラナーモード)に含まれなかった残りのイントラ予測モードのうち1つをMPMリメインダー情報(リメイニングイントラ予測モード情報)に基づいて選択することができる。前記MPMリストは、プラナーモードを候補として含むか、含まないように構成されることができる。例えば、前記MPMリストがプラナーモードを候補として含む場合、前記MPMリストは、6個の候補を有することができ、前記MPMリストがプラナーモードを候補として含まない場合、前記MPMリストは、5個の候補を有することができる。前記MPMリストがプラナーモードを候補として含まない場合、現在ブロックのイントラ予測モードがプラナーモードでないかを表すnotプラナーフラグ(ex.intra_luma_not_planar_flag)がシグナリングされ得る。例えば、MPMフラグが先にシグナリングされ、MPMインデックス及びnotプラナーフラグは、MPMフラグの値が1である場合にシグナリングされることができる。また、前記MPMインデックスは、前記notプラナーフラグの値が1である場合にシグナリングされることができる。ここで、前記MPMリストがプラナーモードを候補として含まないように構成されることは、前記プラナーモードがMPMでないというよりは、MPMとして常にプラナーモードが考慮されるので、先にフラグ(not planar flag)をシグナリングして、プラナーモードであるか否かを先に確認するためである。
例えば、現在ブロックに適用されるイントラ予測モードがMPM候補(及びプラナーモード)の中にあるか、それとも、リメイニングモードの中にあるかは、MPMフラグ(ex.intra_luma_mpm_flag)に基づいて指示されることができる。MPMフラグの値1は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内にあることを表すことができ、MPMフラグの値0は、前記現在ブロックに対するイントラ予測モードがMPM候補(及びプラナーモード)内にないことを表すことができる。前記not planar flag(ex.intra_luma_not_planar_flag)値0は、前記現在ブロックに対するイントラ予測モードがプラナーモードであることを表すことができ、前記not planar flag値1は、前記現在ブロックに対するイントラ予測モードがプラナーモードでないことを表すことができる。前記MPMインデックスは、mpm_idxまたはintra_luma_mpm_idxシンタクス要素の形態でシグナリングされることができ、前記リメイニングイントラ予測モード情報は、rem_intra_luma_pred_modeまたはintra_luma_mpm_remainderシンタクス要素の形態でシグナリングされることができる。例えば、前記リメイニングイントラ予測モード情報は、全体イントラ予測モードのうち、前記MPM候補(及びプラナーモード)に含まれない残りのイントラ予測モードを予測モード番号順にインデクシングして、そのうち1つを指すことができる。前記イントラ予測モードは、ルマ成分(サンプル)に対するイントラ予測モードであることができる。以下、イントラ予測モード情報は、前記MPMフラグ(ex.intra_luma_mpm_flag)、前記not planar flag(ex.intra_luma_not_planar_flag)、前記MPMインデックス(ex.mpm_idxまたはintra_luma_mpm_idx)、前記リメイニングイントラ予測モード情報(rem_intra_luma_pred_modeまたはintra_luma_mpm_remainder)のうち、少なくとも1つを含むことができる。本文書においてMPMリストは、MPM候補リスト、candModeListなど、様々な用語と呼ばれることができる。
MIPが現在ブロックに適用される場合、MIPのための別途のMPM flag(ex.intra_mip_mpm_flag)、MPMインデックス(ex.intra_mip_mpm_idx)、リメイニングイントラ予測モード情報(ex.intra_mip_mpm_remainder)がシグナリングされ得るし、前記not planar flagはシグナリングされないことができる。
言い換えれば、一般的に画像に対するブロック分割がなされると、コーディングしようとする現在ブロックと周辺(neighboring)ブロックとは、類似した画像特性を有するようになる。したがって、現在ブロックと周辺ブロックとは、互いに同一であるか、類似したイントラ予測モードを有する確率が高い。したがって、エンコーダは、現在ブロックのイントラ予測モードをエンコードするために、周辺ブロックのイントラ予測モードを用いることができる。
コーディング装置は、現在ブロックに対するMPM(most probable modes)リストを構成できる。前記MPMリストは、MPM候補リストと表すこともできる。ここで、MPMとは、イントラ予測モードコーディングの際、現在ブロックと周辺ブロックとの類似性を考慮して、コーディング効率を向上させるために用いられるモードを意味できる。前述したように、MPMリストは、プラナーモードを含んで構成されることができ、またはプラナーモードを除いて構成されることができる。例えば、MPMリストがプラナーモードを含む場合、MPMリストの候補の個数は、6個であることができる。そして、MPMリストがプラナーモードを含まない場合、MPMリストの候補の個数は、5個であることができる。
エンコード装置は、様々なイントラ予測モードに基づいて予測を行うことができ、これに基づいたRDO(rate-distortion optimization)に基づいて最適のイントラ予測モードを決定できる。エンコード装置は、この場合、前記MPMリストに構成されたMPM候補及びプラナーモードのみを用いて前記最適のイントラ予測モードを決定することができ、または、前記MPMリストに構成されたMPM候補及びプラナーモードだけでなく、残りのイントラ予測モードをさらに用いて前記最適のイントラ予測モードを決定することもできる。具体的に、例えば、仮に前記現在ブロックのイントラ予測タイプがノーマルイントラ予測タイプでない特定タイプ(例えば、LIP、MRL、またはISP)である場合には、エンコード装置は、前記MPM候補及びプラナーモードのみを前記現在ブロックに対するイントラ予測モード候補として考慮して前記最適のイントラ予測モードを決定できる。すなわち、この場合には、前記現在ブロックに対するイントラ予測モードは、前記MPM候補及びプラナーモードの中で決定されることができ、この場合には、前記MPM flagをエンコード/シグナリングしないことができる。デコード装置は、この場合には、MPM flagを別途にシグナリングされなくとも、MPM flagが1であることと推定することができる。
一方、一般的に、前記現在ブロックのイントラ予測モードがプラナーモードでなく、前記MPMリスト内にあるMPM候補のうち1つの場合、エンコード装置は、前記MPM候補のうち1つを指すMPMインデックス(mpm idx)を生成する。仮に、前記現在ブロックのイントラ予測モードが前記MPMリスト内にもない場合には、前記MPMリスト(及びプラナーモード)に含まれなかった残りのイントラ予測モードの中で前記現在ブロックのイントラ予測モードと同じモードを指すMPMリメインダー情報(リメイニングイントラ予測モード情報)を生成する。前記MPMリメインダー情報は、例えば、intra_luma_mpm_remainderシンタクス要素を含むことができる。
デコード装置は、ビットストリームからイントラ予測モード情報を取得する。前記イントラ予測モード情報は、前述したように、MPMフラグ、notプラナーフラグ、MPMインデックス、MPMリメインダー情報(リメイニングイントラ予測モード情報)のうち、少なくとも1つを含むことができる。デコード装置は、MPMリストを構成できる。前記MPMリストは、前記エンコード装置で構成されたMPMリストと同様に構成される。すなわち、前記MPMリストは、周辺ブロックのイントラ予測モードを含むことができ、予め決められた方法によって特定イントラ予測モードをさらに含むこともできる。
デコード装置は、前記MPMリスト及び前記イントラ予測モード情報に基づいて現在ブロックのイントラ予測モードを決定できる。一例として、前記MPMフラグの値が1である場合、デコード装置は、プラナーモードを前記現在ブロックのイントラ予測モードとして導出するか(not planar flag基盤)、前記MPMリスト内のMPM候補のうち、で前記MPMインデックスが指す候補を前記現在ブロックのイントラ予測モードとして導出することができる。ここで、MPM候補とは、前記MPMリストに含まれる候補のみを表すことができ、または、前記MPMリストに含まれる候補だけでなく、前記MPMフラグの値が1である場合に適用されることができるプラナーモードも含まれることができる。
他の例として、前記MPMフラグの値が0である場合、デコード装置は、前記MPMリスト及びプラナーモードに含まれなかった残りのイントラ予測モードの中で前記リメイニングイントラ予測モード情報(mpm remainder情報と呼ばれることができる)が指すイントラ予測モードを前記現在ブロックのイントラ予測モードとして導出することができる。一方、さらに他の例として、前記現在ブロックのイントラ予測タイプが特定タイプ(ex.LIP、MRLまたはISP等)である場合、デコード装置は、前記MPMフラグのパーシング/デコード/確認なしにも、前記プラナーモードまたは前記MPMリスト内で前記MPMフラグが指す候補を前記現在ブロックのイントラ予測モードとして導出することができる。
コーディング装置は、現在ブロックの周辺参照サンプルを導出する(S810)。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺参照サンプルが導出され得る。前記現在ブロックの周辺参照サンプルは、nW×nHサイズの現在ブロックの左側(left)境界に隣接したサンプル及び左下側(bottom-left)に隣り合う合計2×nH個のサンプル、現在ブロックの上側(top)境界に隣接したサンプル及び右上側(top-right)に隣り合う合計2xnW個のサンプル及び現在ブロックの左上側(top-left)に隣り合う1個のサンプルを含むことができる。または、前記現在ブロックの周辺参照サンプルは、複数列の上側周辺サンプル及び複数行の左側周辺サンプルを含むこともできる。また、前記現在ブロックの周辺参照サンプルは、nW×nHサイズの現在ブロックの右側(right)境界に隣接した合計nH個のサンプル、現在ブロックの下側(bottom)境界に隣接した合計nW個のサンプル、及び現在ブロックの右下側(bottom-right)に隣り合う1個のサンプルを含むこともできる。
一方、MRLが適用される場合(すなわち、MRLインデックスの値が0より大きい場合)、前記周辺参照サンプルは、左側/上側で現在ブロックに隣接した0番ラインでない、1番ないし2番ラインに位置することができ、この場合、周辺参照サンプルの個数はさらに増えることができる。一方、ISPが適用される場合、前記周辺参照サンプルは、サブパーティション単位で導出されることができる。
コーディング装置は、現在ブロックにイントラ予測を行って予測サンプルを導出する(S820)。コーディング装置は、前記イントラ予測モード/タイプ及び前記周辺サンプルに基づいて前記予測サンプルを導出できる。コーディング装置は、現在ブロックの周辺参照サンプルのうち、前記現在ブロックのイントラ予測モードによる参照サンプルを導出でき、前記参照サンプルに基づいて前記現在ブロックの予測サンプルを導出できる。
一方、一実施形態によって、BDPCM(block differential pulse coded modulation又はBlock-based Delta Pulse Code Modulation)技法が使われ得る。BDPCMは、RDPCM(quantized Residual block-based Delta Pulse Code Modulation)と名付けられることもある。
BDPCMを適用してブロックを予測する場合、ブロックの行又は列をラインバイラインで予測するために、復元されたサンプルが活用できる。このとき、使われた参照サンプルは、フィルタリングされないサンプルであってもよい。BDPCMの方向は、垂直方向又は水平方向の予測が使われているかどうかを示すことができる。すなわち、BDPCMが適用される場合、垂直方向又は水平方向がBDPCMの方向に選択され得、前記BDPCMの方向に予測が行われ得る。予測誤謬(prediction error)は空間的ドメインで量子化されることができ、サンプルは予測(すなわち、予測サンプル)に逆量子化された予測誤謬を加えることによって復元されることができる。前記予測誤謬は、レジデュアル(residual)を意味し得る。このようなBDPCMの代案として、量子化されたレジデュアルドメインBDPCMが提案され得、予測方向やシグナリングは、空間的ドメインに適用されていたBDPCMと同一であり得る。すなわち、量子化されたレジデュアルドメインBDPCMを介して量子化係数自体をDPCM(Delta Pulse Code Modulation)のように重ねた後、逆量子化を介してレジデュアルが復元できる。従って、量子化されたレジデュアルドメインBDPCMは、レジデュアルのコーディング段でDPCMを適用するという意味に使われ得る。以下で使われる量子化されたレジデュアルドメインは、予測に基づいて導出されたレジデュアルが、変換することなく量子化されたものであって、量子化されたレジデュアルサンプルに対するドメインを意味する。例えば、量子化されたレジデュアルドメインは、変換スキップが適用される、すなわち、レジデュアルサンプルに対して変換はスキップされるが、量子化は適用される量子化されたレジデュアル(又は量子化されたレジデュアル係数)を含むことができる。或いは、例えば、量子化されたレジデュアルドメインは、量子化された変換係数を含むことができる。
MXNサイズのブロックに対して、左側又は上側境界のサンプル(すなわち、左側周辺のサンプル又は上側周辺のサンプル)のうち、フィルタリングされていないサンプルを用いて、水平方向にイントラ予測(左側周辺のサンプルラインをラインバイラインで予測ブロックにコピーする)又は垂直方向にイントラ予測(上側周辺のサンプルラインをラインバイラインで予測ブロックにコピーする)を行った予測値を活用して導出されたレジデュアルが、r(i,j)(0≦i≦M-1、0≦j≦N-1)と仮定することができる。ここで、Mは、列(row)又は高さ(height)、Nは、行(column)又は幅(width)を示すことができる。また、レジデュアルr(i,j)の量子化された値がQ(r(i,j))(0≦i≦M-1、0≦j≦N-1)と仮定することができる。ここで、レジデュアルは、原本ブロックと予測ブロック値の差値を意味する。
その後、BDPCMを量子化されたレジデュアルサンプルに適用すると、
を構成とするM×Nの変形されたアレイ
が導出され得る。
例えば、垂直のBDPCMがシグナリングされると(すなわち、垂直方向のBDPCMが適用される場合)、
は、次の数式のように導出され得る。
すなわち、例えば、垂直方向のBDPCMが適用される場合、エンコード装置は上側周辺のサンプルに基づいて垂直方向のイントラ予測を行うことができ、前記現在ブロックに対する量子化されたレジデュアルサンプル(quantized residual samples)は、前述の数式1のように導出され得る。前述の数式1を参照すると、現在ブロックの一番目の行を除く行の量子化されたレジデュアルサンプルは、該当位置に対する量子化された値と、該当位置の以前の行の位置(すなわち、該当位置の上側周辺の位置)に対する量子化された値の差分で導出され得る。
また、水平予測に対して同様に適用すると(すなわち、水平方向のBDPCMが適用される場合)、量子化されたレジデュアルサンプル(the residual quantized samples)は、次の数式のように導出され得る。
すなわち、例えば、水平方向のBDPCMが適用される場合、エンコード装置は左側周辺のサンプルに基づいて水平方向のイントラ予測を行うことができ、前記現在ブロックに対する量子化されたレジデュアルサンプル(quantized residual samples)は、前述の数式2のように導出され得る。前述の数式2を参照すると、現在ブロックの一番目の列を除く列の量子化されたレジデュアルサンプルは、該当位置に対する量子化された値と、該当位置の以前の列の位置(すなわち、該当位置の左側周辺の位置)に対する量子化された値の差分で導出され得る。
前記量子化されたレジデュアルサンプル
は、デコード装置に送信されることができる。
デコード装置では、Q(r(i,j))(0≦i≦M-1、0≦j≦N-1)を導出するために、前記演算が逆に実行され得る。
垂直予測については、次の数式が適用できる。
また、水平予測については、次の数式が適用できる。
逆量子化された量子化されたレジデュアル
は、復元されたサンプル値を導出するために、イントラブロックの予測値と合わせられる。
このような技法の主な利点は、係数のパーシング時又はパーシング後にも簡単に予測子を加えることによって、逆BDPCMが実行できることである。
前記のように、BDPCMは、量子化されたレジデュアルドメインに適用されることができ、量子化されたレジデュアルドメインは、量子化されたレジデュアル(又は量子化されたレジデュアル係数)を含むことができ、このとき、レジデュアルに対しては変換スキップが適用できる。すなわち、BDPCMが適用される場合には、レジデュアルサンプルに対して変換はスキップされ、量子化は適用されることができる。或いは、量子化されたレジデュアルドメインは、量子化された変換係数を含むこともできる。BDPCMの適用可否に対するフラグは、シーケンスレベル(SPS)でシグナリングされることができ、このようなフラグは、SPSで変換スキップモードが可能であるとシグナリングされる場合にのみシグナリングされることもできる。前記フラグは、BDPCM利用可能フラグ又はSPS BDPCM利用可能フラグと呼ばれてもよい。
BDPCMの適用時、イントラ予測はイントラ予測方向と類似する予測方向(例えば、垂直予測又は水平予測)によるサンプルコピー(sample copy)によって全体ブロックに実行されることができる。原本と予測ブロックの差分値であるレジデュアルは、変換がスキップされて量子化され、量子化されたレジデュアルと水平又は垂直方向に対する予測子(すなわち、水平又は垂直方向の量子化されたレジデュアル)との間のデルタ値、すなわち、差分値
をコーディングすることができる。
BDPCMが適用可能であると、CUサイズがルマサンプルに対するMaxTsSize(最大の変換スキップブロックサイズ)よりも小さいか等しく、CUがイントラ予測でコーティングされる場合、フラグ情報がCUレベルで送信されることができる。前記フラグ情報は、BDPCMフラグと呼ばれてもよい。ここで、MaxTsSizeは、変換スキップモードが許容されるための最大のブロックサイズを意味し得る。前記フラグ情報は、通常のイントラコーディングが適用されるか、又はBDPCMが適用されるかどうかを指示することができる。BDPCMが適用される場合、予測方向が水平方向であるか、垂直方向であるかを指示するBDPCM予測方向フラグを送信することができる。前記BDPCM予測方向フラグは、BDPCM方向フラグと呼ばれてもよい。その後、ブロックは、フィルタリングされていない参照サンプルを用いた通常の水平又は垂直のイントラ予測過程を通じて予測できる。また、レジデュアルは量子化され、各量子化されたレジデュアルとその予測子、例えば、BDPCM予測方向によって水平又は垂直方向にある周辺位置の既に量子化されたレジデュアル間の差値がコーディングされ得る。
一方、前述のBDPCMは、後述するように、標準文書の形式で記述できる。
例えば、前述のBDPCM利用可能フラグに対するシンタックスエレメント(syntax element)及び前記シンタックスエレメントに対するセマンティクス(semantics)は、次の表のように示すことができる。
表1は、SPS(Sequence parameter set)でシグナリングされるsps_bdpcm_enabled_flag及びsps_bdpcm_chroma_enabled_flagを示しており、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、イントラ予測が行われるコーディングルマユニットにBDPCMが適用されるかどうかを示すフラグ情報、すなわち、「intra_bdpcm_luma_flag」がコーディングルマユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが1であれば、イントラ予測が行われるコーディングクロマユニットにBDPCMが適用されるかどうかを示すフラグ情報、すなわち、「intra_bdpcm_chroma_flag」がコーディングクロマユニットに存在することを示すことができる。前記シンタックスエレメントsps_bdpcm_enabled_flag及びsps_bdpcm_chroma_enabled_flagは、前述のBDPCM利用可能フラグに対するシンタックスエレメントであり得る。また、前記シンタックスエレメント「sps_bdpcm_enabled_flag」が存在しなければ、その値は0とみなされ得る。さらに、前記シンタックスエレメント「sps_bdpcm_chroma_enabled_flag」が存在しなければ、その値は0とみなされ得る。
また、例えば、前述のBDPCMフラグ及びBDPCM方向フラグに対するシンタックスエレメントは、ルマ成分及びクロマ成分に対して別途シグナリングされることができる。例えば、前記シンタックスエレメントを含むコーディングユニットシンタックス及び前記シンタックスエレメントに対するセマンティクス(semantics)は、次の表のように示すことができる。
前述の内容のように、表3のシンタックスエレメントintra_bdpcm_luma_flagは、現在ルマブロックにBDPCMが適用されるかどうかを示すことができ、intra_bdpcm_chroma_flagは、現在ルマブロック又は現在クロマブロックにBDPCMが適用されるかどうかを示すことができる。例えば、intra_bdpcm_luma_flag又はintra_bdpcm_chroma_flagの値が1であれば、当該コーディングブロックに対する変換はスキップされ、コーディングブロックに対する予測モードは、予測方向を示すintra_bdpcm_luma_dir_flag又はintra_bdpcm_chroma_dir_flagにより水平又は垂直方向に設定され得る。intra_bdpcm_luma_flag又はintra_bdpcm_chroma_flagが存在しなければ、この値は0とみなされ得る。
また、例えば、予測方向を示すintra_bdpcm_luma_dir_flag又はintra_bdpcm_chroma_dir_flagの値が0であれば、BDPCMの予測方向が水平方向であることを示すことができ、intra_bdpcm_luma_dir_flag又はintra_bdpcm_chroma_dir_flagの値が1であれば、BDPCMの予測方向が垂直方向であることを示すことができる。
一方、前記intra_bdpcm_luma_flagは、現在ルマブロックに対するBDPCMルマフラグのシンタックスエレメントを示すことができ、前記intra_bdpcm_chroma_flagは、現在クロマブロックに対するBDPCMクロマフラグのシンタックスエレメントを示すことができ、前記intra_bdpcm_luma_dir_flagは、現在ルマブロックに対するBDPCMルマ方向フラグのシンタックスエレメントを示すことができ、前記intra_bdpcm_chroma_dir_flagは、現在クロマブロックに対するBDPCMクロマ方向フラグのシンタックスエレメントを示すことができる。
また、BDPCMが適用される場合に、逆量子化過程の一例は、次の表のように示すことができる。
或いは、BDPCMが適用される場合に、逆量子化過程の一例は、次の表のように示すこともできる。
表5又は表6を参照すると、bdpcm_flagの値が1であれば、逆量子化されたレジデュアル値d[x][y]は、中間変数dz[x][y]に基づいて導出され得る。ここで、xは横方向の座標であって、左側から右側に増加し、yは縦方向の座標であって、上側から下側に増加し、2次元ブロック内の位置は(x,y)と表記され得る。また、2次元ブロック内の位置は、当該ブロックの左上側位置を(0,0)においたときの(x,y)の位置を示す。
例えば、bdpcm_dir_flagの値が0であれば、すなわち、水平のBDPCMが適用されると、変数dz[x][y]は、xが0である場合には、TransCoeffLevel[xTbY][yTbY][cIdx][x][y]、xが0ではない場合には、dz[x-1][y]+dz[x][y]に基づいて導出され得る。すなわち、水平のBDPCMが適用される場合(bdpcm_dir_flagの値が0)には、xが0である一番目の列に位置するサンプルの変数dz[x][y]は、前記サンプルのレジデュアル情報に基づいて導出されたTransCoeffLevel[xTbY][yTbY][cIdx][x][y]で導出され得、xが0ではない一番目の列以外の列に位置するサンプルの変数dz[x][y]は、前記サンプルの左側周辺サンプルのdz[x-1][y]と前記サンプルに対するdz[x][y]との和で導出され得る。ここで、前記dz[x-1][y]と合わせられる前記サンプルに対するdz[x][y]は、シグナリングされる前記サンプルに対するレジデュアル情報に基づいて導出され得る。
また、例えば、bdpcm_dir_flagの値が1であれば、すなわち、垂直のBDPCMが適用されれば、変数dz[x][y]はdz[x][y-1]+dz[x][y]に基づいて導出され得る。すなわち、垂直のBDPCMが適用される場合(bdpcm_dir_flagの値が1)には、yが0である一番目の行に位置するサンプルの変数dz[x][y]は、前記サンプルのレジデュアル情報に基づいて導出されたTransCoeffLevel[xTbY][yTbY][cIdx][x][y]で導出され得、yが0ではない一番目の行以外の行に位置するサンプルの変数dz[x][y]は、前記サンプルの上側周辺サンプルのdz[x][y-1]と前記サンプルに対するdz[x][y]との和で導出され得る。ここで、前記dz[x][y-1]と合わせられる前記サンプルに対するdz[x][y]は、シグナリングされる前記サンプルに対するレジデュアル情報に基づいて導出され得る。
前述の内容のように、特定の位置のレジデュアルは、水平方向又は垂直方向に以前の位置(すなわち、左側又は上側)にあるレジデュアルと特定の位置のレジデュアル情報で受信された値の和に基づいて導出され得る。BDPCMの適用時、特定の位置(x,y)のレジデュアルサンプル値と水平方向又は垂直方向に以前の位置(すなわち、(x-1,y)又は(x,y-1))にあるレジデュアルサンプル値の差分値がレジデュアル情報でシグナリングされるためである。
前述の内容のように、BPDCMに対する情報がシグナリングされ得るが、本文書では、BDPCMに対する情報をシグナリングする別の実施形態を提案する。例えば、既存のビデオ標準によると、YUV420ではルマブロックに対するBDPCMのみが行われ、YUV444ではルマブロック及びクロマブロックに対するBDPCMが行われ得るので、前述の表1に示すように、SPS(sequence parameter set)シンタックスでルマブロックに対するBDPCM利用可能フラグのシンタックスエレメントであるsps_bdpcm_enabled_flagとクロマブロックに対するBDPCM利用可能フラグのシンタックスエレメントであるsps_bdpcm_chroma_enabled_flagが各々送信できる。特に、クロマブロックに対するBDPCM利用可能フラグは、ルマブロックに対してBDPCMが利用可能であり、画像のクロマフォーマットがYUV444である場合(すなわち、chroma_format_idc=3である場合)にのみ送信できる。
前述の内容と異なり、本文書は、1つのフラグに基づいてルマブロックとクロマブロックともに対してBDPCMが利用可能かどうかを制御する実施形態を提案する。例えば、提案した実施形態では、後述の表7のようにSPSシンタックスでBDPCMが可能かどうかに対する1つのシンタックスエレメントsps_bdpcm_enabled_flagのみ送信され得、これによりルマブロックとクロマブロックともに対するBDPCMの利用可能/利用不可能の可否が導出され得る。本実施形態によると、1つのシンタックスエレメントで画像内のルマブロック及びクロマブロックにおけるBDPCMが利用可能かどうかを判断することができ、これによりBDPCMのためのビット量を減らし、全般的なコーティング効率を向上させることができる。
例えば、表8を参照すると、sps_bdpcm_enabled_flagが1であれば、ルマブロック及びクロマブロックともに対してBDPCMが利用可能であることを意味し、sps_bdpcm_enabled_flagが0であれば、ルマブロック及びクロマブロックともに対してBDPCMが利用可能ではないことを意味し得る。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、イントラ予測が行われるコーディングユニット(ルマ成分及びクロマ成分を含む)にBDPCMが利用可能であることを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、イントラ予測が行われるコーディングユニットにBDPCMが利用可能ではないことを示すことができる。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、intra_bdpcm_luma_flag及びintra_bdpcm_chroma_flagがコーディングユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、intra_bdpcm_luma_flag及びintra_bdpcm_chroma_flagがコーディングユニットに存在しないことを示すことができる。intra_bdpcm_luma_flag及びintra_bdpcm_chroma_flagをintra_bdpcm_flagと示してもよい。
一方、前記BDPCMが利用可能かどうかに対するフラグは、例示で示したSPSシンタックスだけでなく、APS(Adaptation Parameter Set)シンタックス、PPS(Picture Parameter Set)シンタックス、VPS(Video Parameter Set)シンタックス、DPS(Decoding Parameter Set)シンタックス、picture header syntax又はスライスヘッダシンタックスなどで送信されてもよい。
また、提案した実施形態で、シンタックスエレメントsps_bdpcm_enabled_flagに対するセマンティクスは、表8のように変更され得る。
さらに、本実施形態において、シンタックスエレメントsps_bdpcm_enabled_flagでルマブロックとクロマブロックに対してBDPCMが利用可能かどうかが一度に制御されるので、本実施形態によるコーディングユニットのシンタックスは、次の表の通りである。
また、本文書は、BDPCMに対する情報をシグナリングする別の実施形態を提案する。例えば、本文書は、画像のクロマフォーマットに関係なく、ルマブロックとクロマブロックともに対してBDPCMが利用可能かどうかを制御する実施形態を提案する。本実施形態によると、画像のクロマフォーマットに関係なく、ルマブロックのBDPCMが利用可能かどうかに対する情報と、クロマブロックのBDPCMが利用可能かどうかに対する情報とが各々送信されることができる。本実施形態によると、画像のクロマフォーマットに関係なく、画像内のクロマブロックのBDPCMが利用可能かどうかを示すBDPCMクロマ利用可能フラグがシグナリングでき、これによりBDPCMのための複雑度を減らし、全般的なコーディング効率を向上させることができる。
例えば、提案した実施形態では、後述する表10のように変換スキップモードが利用可能である場合(すなわち、sps_transform_skip_enabled_flagが1である場合)、SPSシンタックスでルマブロックのBDPCMが利用可能かどうかに対するシンタックスエレメントsps_bdpcm_enabled_flag及びクロマブロックのBDPCMが利用可能かどうかに対するシンタックスエレメントsps_bdpcm_chroma_enabled_flagが送信できる。
例えば、sps_bdpcm_enabled_flagが1であれば、ルマブロックに対してBDPCMが利用可能であることを意味し、sps_bdpcm_enabled_flagが0であれば、ルマブロックに対してBDPCMが利用可能ではないことを意味し得る。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、イントラ予測が行われるルマコーディングユニットにBDPCMが利用可能であることを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、イントラ予測が行われるルマコーディングユニットにBDPCMが利用可能ではないことを示すことができる。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、intra_bdpcm_luma_flagがコーディングユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、intra_bdpcm_luma_flagがコーディングユニットに存在しないことを示すことができる。
また、例えば、sps_bdpcm_chroma_enabled_flagが1であれば、クロマブロックに対してBDPCMが利用可能であることを意味し、sps_bdpcm_chroma_enabled_flagが0であれば、クロマブロックに対してBDPCMが利用可能ではないことを意味し得る。すなわち、例えば、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが1であれば、イントラ予測が行われるクロマコーディングユニットにBDPCMが利用可能であることを示すことができ、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが0であれば、イントラ予測が行われるクロマコーディングユニットにBDPCMが利用可能ではないことを示すことができる。すなわち、例えば、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが1であれば、intra_bdpcm_chroma_flagがコーディングユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、intra_bdpcm_chroma_flagがコーディングユニットに存在しないことを示すことができる。
一方、前記BDPCMが利用可能かどうかに対するフラグは、例示で示したSPSシンタックスだけでなく、APS(Adaptation Parameter Set)シンタックス、PPS(Picture Parameter Set)シンタックス、VPS(Video Parameter Set)シンタックス、DPS(Decoding Parameter Set)シンタックス、picture header syntax又はスライスヘッダシンタックスなどで送信されてもよい。
また、提案した実施形態で、シンタックスエレメントsps_bdpcm_enabled_flag及びシンタックスエレメントsps_bdpcm_chroma_enabled_flagに対するセマンティクスは、表11のように変更され得る。
また、本文書は、BDPCMに対する情報をシグナリングする別の実施形態を提案する。例えば、本文書は、画像のクロマフォーマットに関係なく、ルマブロックとクロマブロックともに対してBDPCMが利用可能かどうかを制御する実施形態を提案する。本実施形態によると、画像のクロマフォーマットに関係なく、ルマブロックのBDPCMが利用可能かどうかに対する情報と、クロマブロックのBDPCMが利用可能かどうかに対する情報とが各々送信され、クロマブロックのBDPCMが利用可能かどうかに対する情報は、ルマブロックに対してBDPCMが利用可能である場合にのみ送信されることができる。本実施形態によると、画像のクロマフォーマットに関係なく、画像内のルマブロック及びクロマブロックのBDPCMが利用可能かどうかを示すBDPCM利用可能フラグがシグナリングでき、これによりBDPCMのための複雑度を減らし、全般的なコーディング効率を向上させることができる。
例えば、提案した実施形態では、後述する表12のように、変換スキップモードが利用可能である場合(すなわち、sps_transform_skip_enabled_flagが1である場合)、SPSシンタックスでルマブロックのBDPCMが利用可能かどうかに対するシンタックスエレメントsps_bdpcm_enabled_flagが送信でき、ルマブロックに対してBDPCMが利用可能である場合(すなわち、sps_bdpcm_enabled_flagが1である場合)、クロマブロックのBDPCMが利用可能かどうかに対するシンタックスエレメントsps_bdpcm_chroma_enabled_flagが送信できる。
例えば、sps_bdpcm_enabled_flagが1であれば、ルマブロックに対してBDPCMが利用可能であることを意味し、sps_bdpcm_enabled_flagが0であれば、ルマブロックに対してBDPCMが利用可能ではないことを意味し得る。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、イントラ予測が行われるルマコーディングユニットにBDPCMが利用可能であることを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、イントラ予測が行われるルマコーディングユニットにBDPCMが利用可能ではないことを示すことができる。すなわち、例えば、シンタックスエレメントsps_bdpcm_enabled_flagが1であれば、intra_bdpcm_luma_flagがコーディングユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、intra_bdpcm_luma_flagがコーディングユニットに存在しないことを示すことができる。
また、例えば、sps_bdpcm_chroma_enabled_flagが1であれば、クロマブロックに対してBDPCMが利用可能であることを意味し、sps_bdpcm_chroma_enabled_flagが0であれば、クロマブロックに対してBDPCMが利用可能ではないことを意味し得る。すなわち、例えば、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが1であれば、イントラ予測が行われるクロマコーディングユニットにBDPCMが利用可能であることを示すことができ、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが0であれば、イントラ予測が行われるクロマコーディングユニットにBDPCMが利用可能ではないことを示すことができる。すなわち、例えば、シンタックスエレメントsps_bdpcm_chroma_enabled_flagが1であれば、intra_bdpcm_chroma_flagがコーディングユニットに存在することを示すことができ、シンタックスエレメントsps_bdpcm_enabled_flagが0であれば、intra_bdpcm_chroma_flagがコーディングユニットに存在しないことを示すことができる。
一方、前記BDPCMが利用可能かどうかに対するフラグは、例示で示したSPSシンタックスだけでなく、APS(Adaptation Parameter Set)シンタックス、PPS(Picture Parameter Set)シンタックス、VPS(Video Parameter Set)シンタックス、DPS(Decoding Parameter Set)シンタックス、picture header syntax又はスライスヘッダシンタックスなどで送信されてもよい。
また、本文書は、BDPCMに対する情報をシグナリングする別の実施形態を提案する。例えば、本文書は、前述の実施形態のうちの1つにさらに後述する過程を行う実施形態を提案する。例えば、本実施形態によると、SPSシンタックス、VPSシンタックス、DPSシンタックス、picture header syntax、又はスライスヘッダシンタックスなどでルマブロック及びクロマブロックともに対してBDPCMが利用可能であり、前記BDPCMが行われ得る特定の条件を満たす場合、CUシンタックス又はTUシンタックスでintra_bdpcm_chroma_flagとintra_bdpcm_chroma_dir_flagが送信されず、intra_bdpcm_chroma_flagの値はinfra_bdpcm_luma_flag、intra_bdpcm_chroma_dir_flagの値はintra_bdpcm_luma_dir_flagの値で導出され得る。ここで、例えば、前記特定の条件は、ツリータイプ(tree type)がデュアルツリー(dual tree)である場合及び/又は現在ブロックの幅(width)と高さ(height)が全て定義された変換スキップブロックの最大サイズよりも小さい場合(すなわち、cbWidth<=MaxTsSize&&cbHeight<=MaxTsSizeである場合)などであり得る。
或いは、例えば、本実施形態によると、前記BDPCMが行われ得る特定の条件を満たす場合、intra_bdpcm_chroma_flagは送信されず、intra_bdpcm_chroma_flagの値はintra_bdpcm_luma_flagの値で導出され得る。これは、現在ブロックのルマブロックがBDPCMモードでコーディングされる場合、前記現在ブロックのクロマブロックは追加的なシンタックスエレメント(すなわち、intra_bdpcm_chroma_flag)の送信なく、BDPCMモードでコーディングされることを意味する。但し、前述の実施形態において、intra_bdpcm_chroma_dir_flagはintra_bdpcm_luma_dir_flagと独立して異なる値を有してもよい。すなわち、前述の実施形態において、現在ブロックに対するintra_bdpcm_chroma_dir_flagは送信されることができる。
また別の例として、前記BDPCMが行われ得る特定の条件を満たす場合、現在ブロックに対するintra_bdpcm_luma_flagとintdra_bdpcm_chroma_flagがいずれも1であれば、intra_bdpcm_chroma_dir_flagは送信されず、intra_bdpcm_chroma_dir_flagの値はintra_bdpcm_luma_dir_flagの値で導出され得る。
また、本文書は、BDPCMに対する情報をシグナリングする別の実施形態を提案する。例えば、本文書は、前述の実施形態のうちの1つにさらに後述の過程を行う実施形態を提案する。
例えば、本実施形態によると、上位レベルシンタックス(high level syntax)(例えば、SPSシンタックス、VPSシンタックス、DPSシンタックス、picture header syntax、又はスライスヘッダシンタックスなど)でintra_bdpcm_enabled_flag又はintra_bdpcm_chroma_enabled_flagに基づいてクロマブロックに対するBDPCMが利用可能であり、ツリータイプがシングルツリー(single tree)である場合、CUシンタックス又はTUシンタックスで各々のクロマブロック(CbクロマブロックとCrクロマブロック)に対するintra_bdpcm_chroma_flag及びintra_bdpcm_chroma_dir_flagが別途送信されず、Cbクロマブロック及びCrクロマブロックに対するintra_bdpcm_chroma_flag及びintra_bdpcm_chroma_dir_flagが送信できる。すなわち、送信されたintra_bdpcm_chroma_flagの値が1である場合、現在ブロックのCbクロマブロック及びCrクロマブロックともBDPCMモードでコーディングされることを意味し、送信されたintra_bdpcm_chroma_flagの値が0である場合、現在ブロックのCbクロマブロック及びCrクロマブロックともBDPCMモードでコーディングされないことを意味する。また、intra_bdpcm_chroma_dir_flagの値が0である場合、現在ブロックのCbクロマブロック及びCrクロマブロックに対するBDPCMの予測方向が水平方向であることを意味し、intra_bdpcm_chroma_dir_flagの値が1である場合、現在ブロックのCbクロマブロック及びCrクロマブロックに対するBDPCMの予測方向が垂直方向であることを意味し得る。
或いは、例えば、本実施形態によると、上位レベルシンタックス(high level syntax)(例えば、SPSシンタックス、VPSシンタックス、DPSシンタックス、picture header syntax、又はスライスヘッダシンタックスなど)でintra_bdpcm_enabled_flag又はintra_bdpcm_chroma_enabled_flagに基づいてクロマブロックに対するBDPCMが利用可能であり、ツリータイプがシングルツリー(single tree)である場合、CUシンタックス又はTUシンタックスで各々のクロマブロック(CbクロマブロックとCrクロマブロック)に対するintra_bdpcm_chroma_flagが別途送信されず、Cbクロマブロック及びCrクロマブロックに対するintra_bdpcm_chroma_flagが送信できる。すなわち、送信されたintra_bdpcm_chroma_flagの値が1である場合、現在ブロックのCbクロマブロック及びCrクロマブロックともBDPCMモードでコーディングされることを意味し、送信されたintra_bdpcm_chroma_flagの値が0である場合、現在ブロックのCbクロマブロック及びCrクロマブロックともBDPCMモードでコーディングされないことを意味する。ここで、各々のクロマブロックに対するintra_bdpcm_chroma_dir_flagが送信されることがあり、各クロマブロックに対するintra_bdpcm_chroma_dir_flagは異なる値を有することもある。
例えば、本実施形態によると、上位レベルシンタックス(high level syntax)(例えば、SPSシンタックス、VPSシンタックス、DPSシンタックス、picture header syntax、又はスライスヘッダシンタックスなど)でintra_bdpcm_enabled_flag又はintra_bdpcm_chroma_enabled_flagに基づいてクロマブロックに対するBDPCMが利用可能であり、ツリータイプがシングルツリー(single tree)である場合、CUシンタックス又はTUシンタックスでクロマブロック(CbクロマブロックとCrクロマブロック)各々に対するintra_bdpcm_chroma_flagが送信され、Cbクロマブロック及びCrクロマブロックに対するintra_bdpcm_chroma_dir_flagが送信され得る。
すなわち、クロマブロックに対して送信されたintra_bdpcm_chroma_flagの値がいずれも1である場合、両クロマブロックのうち後からコーディングされるクロマブロックに対するintra_bdpcm_chroma_dir_flagはコーディングされず、両クロマブロックのうち先にコーディングされたクロマ色差ブロックのintra_bdpcm_chroma_dir_flagが後からコーディングされるクロマブロックに対するintra_bdpcm_chroma_dir_flagでそのまま導出され得る。例えば、intra_bdpcm_chroma_dir_flagの値が0である場合、現在ブロックのCbクロマブロック及びCrクロマブロックに対するBDPCMの予測方向が水平方向であることを意味し、intra_bdpcm_chroma_dir_flagの値が1である場合、現在ブロックのCbクロマブロック及びCrクロマブロックに対するBDPCMの予測方向が垂直方向であることを意味し得る。
図9は、本文書によるエンコード装置による画像エンコード方法を概略的に示す。図9で開示された方法は、図2で開示されたエンコード装置により行われ得る。具体的には、例えば、図9のS900及びS920乃至S930は、前記エンコード装置の予測部により行われ、S910及びS940乃至S950は、前記エンコード装置のエントロピーエンコード部により行われ得る。また、示してはいないが、レジデュアルサンプルを導出する過程は、前記エンコード装置のレジデュアル処理部により行われ、レジデュアルサンプルと予測サンプルに基づいて復元サンプル及び復元ピクチャを生成する過程は、前記エンコード装置の加算部により行われ得る。
エンコード装置は、クロマブロック及びルマブロックに対してBDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかを判断する(S900)。例えば、エンコード装置は、画像内のクロマブロック及びルマブロックに対して、前記BDPCMが利用可能かどうかを決定することができる。
エンコード装置は、前記判断の結果に基づいて、前記クロマブロック及び前記ルマブロックに対して、前記BDPCMが利用可能かどうかに対するBDPCM利用可能フラグを生成する(S910)。エンコード装置は、前記判断の結果に基づいて、前記クロマブロック及び前記ルマブロックに対して、前記BDPCMが利用可能かどうかに対するBDPCM利用可能フラグを生成することができる。例えば、画像情報はクロマブロック及びルマブロックに対してBDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかに対するBDPCM利用可能フラグを含むことができる。例えば、前記BDPCM利用可能フラグは、クロマブロック及びルマブロックに対してBDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかを示すことができる。例えば、前記BDPCM利用可能フラグの値が1である場合、前記BDPCM利用可能フラグは、クロマブロック及びルマブロックに対してBDPCM(Block-based Delta Pulse Code Modulation)が利用可能であることを示すことができ、前記BDPCM利用可能フラグの値が0である場合、前記BDPCM利用可能フラグは、クロマブロック及びルマブロックに対してBDPCM(Block-based Delta Pulse Code Modulation)が利用可能ではないことを示すことができる。すなわち、例えば、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在するかどうかを示すことができる。例えば、前記BDPCM利用可能フラグの値が1である場合、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在し得ることを示すことができ、前記BDPCM利用可能フラグの値が0である場合、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在しないことを示すことができる。また、例えば、前記クロマブロックはクロマCb成分のブロック(クロマCbブロック)及び/又はクロマCr成分のブロック(クロマCrブロック)を含むことができる。
また、例えば、前記BDPCM利用可能フラグは画像のクロマフォーマットと関係なくシグナリングされることができる。例えば、前記BDPCM利用可能フラグは画像のクロマフォーマットがYUV444、YUV420又はYUV422である場合にシグナリングされることができる。すなわち、例えば、画像のクロマフォーマットがYUV444である場合にも、前記BDPCM利用可能フラグはシグナリングされることができる。
また、例えば、前記BDPCM利用可能フラグは上位レベルシンタックスにシグナリングされることができる。例えば、前記BDPCM利用可能フラグはSPS(Sequence Parameter Set、SPS)シンタックスにシグナリングされることができる。或いは、例えば、前記BDPCM利用可能フラグはAPS(Adaptation Parameter Set)シンタックス、PPS(Picture Parameter Set)シンタックス、VPS(Video Parameter Set)シンタックス、DPS(Decoding Parameter Set)シンタックス、PHシンタックス(picture header syntax)又はスライスヘッダシンタックス(slice header syntax)にシグナリングされることができる。例えば、前記BDPCM利用可能フラグのシンタックスエレメントは、前述のsps_bdpcm_enabled_flagであってもよい。
エンコード装置は、前記BDPCMに基づいて現在ルマブロックに対する予測サンプルを生成する(S920)。例えば、エンコード装置は、現在ルマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記BDPCMが行われる方向を決定することができる。
エンコード装置は、BDPCMが行われる予測方向に基づいて現在ルマブロックに対するイントラ予測を行って予測サンプルを導出し得る。例えば、前記予測方向は垂直方向又は水平方向であってもよく、これによるイントラ予測モードによって現在ルマブロックに対する予測サンプルが生成できる。
例えば、前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)に導出された場合、エンコード装置は、水平イントラ予測モードに基づいて前記現在ルマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)に導出された場合、エンコード装置は、前記現在ルマブロックの左側周辺サンプルに基づいてイントラ予測を行って、前記現在ルマブロックの予測サンプルを導出し得る。例えば、前記現在ルマブロックに対する予測方向が水平方向に導出された場合、エンコード装置は、予測サンプルと同じ行の左側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
また、例えば、前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)に導出された場合、エンコード装置は、垂直イントラ予測モードに基づいて前記現在ルマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)に導出された場合、エンコード装置は、前記現在ルマブロックの上側周辺サンプルに基づいて前記現在ルマブロックの予測サンプルを導出し得る。例えば、前記現在ルマブロックに対する予測方向が垂直方向に導出された場合、エンコード装置は、予測サンプルと同じ列の上側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
エンコード装置は、前記BDPCMに基づいて現在クロマブロックに対する予測サンプルを生成する(S930)。例えば、エンコード装置は、現在クロマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記BDPCMが行われる方向を決定することができる。
エンコード装置は、BDPCMが行われる予測方向に基づいて、現在クロマブロックに対するイントラ予測を行って予測サンプルを導出し得る。例えば、前記予測方向は垂直方向又は水平方向であってもよく、これによるイントラ予測モードによって現在クロマブロックに対する予測サンプルが生成できる。
例えば、前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)に導出された場合、エンコード装置は水平イントラ予測モードに基づいて前記現在クロマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)に導出された場合、エンコード装置は、前記現在クロマブロックの左側周辺サンプルに基づいてイントラ予測を行って、前記現在クロマブロックの予測サンプルを導出し得る。例えば、前記現在クロマブロックに対する予測方向が水平方向に導出された場合、エンコード装置は、予測サンプルと同じ行の左側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
また、例えば、前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)に導出された場合、エンコード装置は、垂直イントラ予測モードに基づいて前記現在クロマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)に導出された場合、エンコード装置は、前記現在クロマブロックの上側周辺サンプルに基づいて前記現在クロマブロックの予測サンプルを導出し得る。例えば、前記現在クロマブロックに対する予測方向が垂直方向に導出された場合、エンコード装置は予測サンプルと同じ列の上側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
エンコード装置は、前記現在ルマブロックに対するBDPCM関連情報及び前記現在クロマブロックに対するBDPCM関連情報を生成する(S940)。
例えば、前記BDPCM利用可能フラグの値が1である場合(すなわち、クロマブロック及びルマブロックに対してBDPCMが利用可能であると判断された場合)、エンコード装置は、前記現在ルマブロックに対するBDPCM関連情報及び現在クロマブロックに対するBDPCM関連情報を生成することができる。前記画像情報は、前記現在ルマブロックに対するBDPCM関連情報及び現在クロマブロックに対するBDPCM関連情報を含むことができる。
例えば、前記現在ルマブロックに対するBDPCM関連情報は、前記現在ルマブロックに対するBDPCMルマフラグ及び/又はBDPCMルマ方向フラグを含むことができる。
例えば、エンコード装置は、現在ルマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記現在ルマブロックのBDPCM(Block-based Delta Pulse Code Modulation)の適用可否に対するBDPCMルマフラグを生成することができる。
例えば、前記BDPCMルマフラグは、前記現在ルマブロックに前記BDPCMが適用され、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在するかどうかを示すことができる。例えば、前記BDPCMルマフラグの値が1である場合、前記BDPCMルマフラグは、前記現在ルマブロックに前記BDPCMが適用され、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在することを示すことができ、前記BDPCMルマフラグの値が0である場合、前記BDPCMルマフラグは、前記現在ルマブロックに前記BDPCMが適用されず、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在しないことを示すことができる。例えば、前記BDPCMルマフラグのシンタックスエレメントは、前述のbdpcm_flag又はintra_bdpcm_luma_flagであってもよい。また、例えば、前記BDPCMルマフラグは、CU(coding unit)単位でシグナリングされることができる。
また、例えば、エンコード装置は、現在ルマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記BDPCMが行われる方向を決定することができる。例えば、前記BDPCMルマフラグが前記現在ルマブロックに前記BDPCMが適用されることを示す場合、エンコード装置は、前記BDPCMルマ方向フラグを生成及びエンコードできる。例えば、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する予測方向として垂直方向又は水平方向を示すことができる。例えば、前記BDPCMルマ方向フラグの値が0である場合、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)であることを示すことができ、前記BDPCMルマ方向フラグの値が1である場合、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)であることを示すことができる。例えば、前記BDPCMルマ方向フラグのシンタックスエレメントは、前述のbdpcm_dir_flag又はintra_bdpcm_luma_dir_flagであってもよい。また、例えば、前記BDPCMルマ方向フラグは、CU(coding unit)単位でシグナリングされることができる。
例えば、前記現在クロマブロックに対するBDPCM関連情報は、前記現在クロマブロックに対するBDPCMクロマフラグ及び/又はBDPCMクロマ方向フラグを含むことができる。また、例えば、前記現在クロマブロックに対する(すなわち、前記現在クロマブロックの全てに対する)前記BDPCM関連情報は、画像のツリータイプ(tree type)がシングルツリー(single tree)であり、前記BDPCM利用可能フラグの値が1である場合にシグナリングされることができる。すなわち、例えば、前記現在クロマブロックに対する(すなわち、前記現在クロマブロックの全てに対する)前記BDPCM関連情報は、画像のツリータイプ(tree type)がシングルツリー(single tree)であり、前記現在クロマブロックに対してBDPCMが利用可能である場合にシグナリングされることができる。一方、現在ブロックのツリータイプは、現在ルマブロックと対応する現在クロマブロックが個別的な分割構造を有するかどうかによって、シングルツリー(SINGLE_TREE)又はデュアルツリー(DUAL_TREE)に区分できる。例えば、現在クロマブロックが現在ルマブロックと同じ分割構造を有する場合はシングルツリー、現在クロマブロックが現在ルマブロックと異なる分割構造を有する場合はデュアルツリーで示すことができる。
例えば、エンコード装置は、現在クロマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記現在クロマブロックのBDPCM(Block-based Delta Pulse Code Modulation)の適用可否に対するBDPCMクロマフラグを生成することができる。例えば、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用され、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在するかどうかを示すことができる。例えば、前記BDPCMクロマフラグの値が1である場合、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用され、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在することを示すことができ、前記BDPCMクロマフラグの値が0である場合、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用されず、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在しないことを示すことができる。すなわち、例えば、前記BDPCMクロマフラグの値が1である場合、前記BDPCMクロマフラグは、前記現在クロマブロックの全てに前記BDPCMが適用され、前記現在クロマブロックの全てに対するBDPCMクロマ方向フラグが存在することを示すことができ、前記BDPCMクロマフラグの値が0である場合、前記BDPCMクロマフラグは、前記現在クロマブロックの全てに前記BDPCMが適用されず、前記現在クロマブロックの全てに対するBDPCMクロマ方向フラグが存在しないことを示すことができる。ここで、例えば、前記現在クロマブロックは、現在クロマCbブロック及び現在クロマCrブロックを含むことができる。例えば、前記BDPCMクロマフラグのシンタックスエレメントは、前述のbdpcm_flag又はintra_bdpcm_chroma_flagであってもよい。また、例えば、前記BDPCMクロマフラグはCU(coding unit)単位でシグナリングされることができる。
また、例えば、エンコード装置は、現在クロマブロックに対してBDPCMが適用されるかどうかを決定することができ、前記BDPCMが行われる方向を決定することができる。例えば、前記BDPCMクロマフラグが前記現在クロマブロックに前記BDPCMが適用されることを示す場合、エンコード装置は、前記BDPCMクロマ方向フラグを生成及びエンコードできる。例えば、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する予測方向として垂直方向又は水平方向を示すことができる。例えば、前記BDPCMクロマ方向フラグの値が0である場合、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)であることを示すことができ、前記BDPCMクロマ方向フラグの値が1である場合、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)であることを示すことができる。例えば、前記BDPCMクロマ方向フラグのシンタックスエレメントは、前述のbdpcm_dir_flag又はintra_bdpcm_chroma_dir_flagであってもよい。また、例えば、前記BDPCMクロマ方向フラグは、CU(coding unit)単位でシグナリングされることができる。
一方、例えば、エンコード装置は、前記現在ルマブロックの予測サンプルに基づいて前記現在ルマブロックのレジデュアルサンプルを導出し得る。例えば、エンコード装置は、前記現在ルマブロックに対する原本サンプルと前記予測サンプルの減算を介して、前記レジデュアルサンプルを導出し得る。また、例えば、エンコード装置は、前記現在クロマブロックの予測サンプルに基づいて、前記現在クロマブロックのレジデュアルサンプルを導出し得る。例えば、エンコード装置は、前記現在クロマブロックの各々に対する原本サンプルと予測サンプルの減算を介してレジデュアルサンプルを導出し得る。
エンコード装置は、前記BDPCM利用可能フラグ、前記現在ルマブロックに対する前記BDPCM関連情報及び前記現在クロマブロックに対する前記BDPCM関連情報を含む画像情報をエンコードする(S950)。エンコード装置は、前記BDPCM利用可能フラグ、前記現在ルマブロックに対する前記BDPCM関連情報及び前記現在クロマブロックに対する前記BDPCM関連情報を含む画像情報をエンコードすることができる。例えば、前記現在ルマブロックに対する前記BDPCM関連情報は、前記現在ルマブロックに前記BDPCMが適用されるかどうかに対するBDPCMルマフラグ及び/又は前記現在ルマブロックの予測方向に対するBDPCMルマ方向フラグを含むことができ、前記現在クロマブロックに対する前記BDPCM関連情報は、前記現在クロマブロックに前記BDPCMが適用されるか、BDPCMクロマフラグ及び/又は前記現在クロマブロックの予測方向に対するBDPCMクロマ方向フラグを含むことができる。
一方、例えば、前記画像情報はレジデュアル情報を含むことができる。例えば、エンコード装置は、前記現在ルマブロック又は現在クロマブロックのレジデュアルサンプルに基づいて、前記現在ルマブロック又は現在クロマブロックのレジデュアル係数を導出し得る。例えば、前記現在ルマブロック又は現在クロマブロックに対して前記BDPCMが適用される場合、エンコード装置は、前記現在ルマブロック又は現在クロマブロックに対して変換が適用されないと決定できる。この場合、例えば、エンコード装置は、前記現在ルマブロック又は現在クロマブロックのレジデュアルサンプルに量子化を行ってレジデュアル係数を導出し得る。ここで、例えば、前記変換が適用されないブロックは、変換スキップブロックと示すことができる。すなわち、例えば、前記現在ルマブロック又は現在クロマブロックは、変換スキップブロックであってもよい。
その後、例えば、エンコード装置は、前記レジデュアル係数に対するレジデュアル情報をエンコードすることができる。例えば、前記レジデュアル情報は、前記レジデュアルサンプルの前記レジデュアル係数に対するレジデュアル情報を含むことができる。
例えば、前記レジデュアル情報は、現在ルマブロック又は現在クロマブロックのレジデュアルサンプルに対するシンタックスエレメントを含むことができ、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。例えば、前記現在ルマブロック又は現在クロマブロックの予測方向が水平方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。すなわち、例えば、前記現在ルマブロック又は現在クロマブロックの予測方向が水平方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。また、例えば、前記現在ルマブロック又は現在クロマブロックの予測方向が垂直方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。すなわち、例えば、前記現在ルマブロック又は現在クロマブロックの予測方向が垂直方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。また、前記対象のレジデュアルサンプルが前記現在ルマブロック又は現在クロマブロックの一番目の行又は列に位置する場合、前記対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値が導出され得る。すなわち、前記対象のレジデュアルサンプルが前記現在ルマブロック又は現在クロマブロックの一番目の行又は列に位置する場合、前記対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値を示すことができる。
一方、前記画像情報を含むビットストリームは、ネットワーク又は(デジタル)格納媒体を介してデコード装置に送信されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含み得、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど多様な格納媒体を含み得る。
図10は、本文書による画像エンコード方法を行うエンコード装置を概略的に示す。図9で開示された方法は、図10で開示されたエンコード装置により行われ得る。具体的には、例えば、図10の前記エンコード装置の予測部は図9のS900及びS920乃至S930を行うことができ、前記エンコード装置のエントロピーエンコード部は、S910及びS940乃至S950を行うことができる。また、示してはいないが、レジデュアルサンプルを導出する過程は、前記エンコード装置のレジデュアル処理部により行われ、レジデュアルサンプルと予測サンプルに基づいて復元サンプル及び復元ピクチャを生成する過程は、前記エンコード装置の加算部により行われ得る。
図11は、本文書によるデコード装置による画像デコード方法を概略的に示す。図11で開示された方法は、図3で開示されたデコード装置により行われ得る。具体的には、例えば、図11のS1100乃至S1120及びS1140乃至S1150は、前記デコード装置のエントロピーデコード部により行われ、図11のS1130及びS1160は、前記デコード装置の予測部により行われ、図11のS1170は、前記デコード装置の加算部により行われ得る。
デコード装置は、クロマブロック及びルマブロックに対して、BDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかに対するBDPCM利用可能フラグを取得する(S1100)。デコード装置は、クロマブロック及びルマブロックに対して、BDPCMが利用可能かどうかに対するBDPCM利用可能フラグを取得することができる。デコード装置は、ビットストリームを介して画像情報を取得することができる。例えば、前記画像情報は、クロマブロック及びルマブロックに対して、BDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかに対するBDPCM利用可能フラグを含むことができる。例えば、前記BDPCM利用可能フラグは、クロマブロック及びルマブロックに対して、BDPCM(Block-based Delta Pulse Code Modulation)が利用可能かどうかを示すことができる。例えば、前記BDPCM利用可能フラグの値が1である場合、前記BDPCM利用可能フラグはクロマブロック及びルマブロックに対して、BDPCM(Block-based Delta Pulse Code Modulation)が利用可能であることを示すことができ、前記BDPCM利用可能フラグの値が0である場合、前記BDPCM利用可能フラグは、クロマブロック及びルマブロックに対して、BDPCM(Block-based Delta Pulse Code Modulation)が利用可能ではないことを示すことができる。すなわち、例えば、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在するかどうかを示すことができる。例えば、前記BDPCM利用可能フラグの値が1である場合、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在し得ることを示すことができ、前記BDPCM利用可能フラグの値が0である場合、前記BDPCM利用可能フラグは、前記クロマブロック及びルマブロックに対するBDPCMフラグが存在しないことを示すことができる。また、例えば、前記クロマブロックは、クロマCb成分のブロック(クロマCbブロック)及び/又はクロマCr成分のブロック(クロマCrブロック)を含むことができる。
また、例えば、前記BDPCM利用可能フラグは画像のクロマフォーマットと関係なくシグナリングされることができる。例えば、前記BDPCM利用可能フラグは、画像のクロマフォーマットがYUV444、YUV420又はYUV422である場合にシグナリングされることができる。すなわち、例えば、画像のクロマフォーマットがYUV444である場合にも、前記BDPCM利用可能フラグはシグナリングされることができる。
また、例えば、前記BDPCM利用可能フラグは、上位レベルシンタックスにシグナリングされることができる。例えば、前記BDPCM利用可能フラグは、SPS(Sequence Parameter Set、SPS)シンタックスにシグナリングされることができる。或いは、例えば、前記BDPCM利用可能フラグは、APS(Adaptation Parameter Set)シンタックス、PPS(Picture Parameter Set)シンタックス、VPS(Video Parameter Set)シンタックス、DPS(Decoding Parameter Set)シンタックス、PHシンタックス(picture header syntax)又はスライスヘッダシンタックス(slice header syntax)にシグナリングされることができる。例えば、前記BDPCM利用可能フラグのシンタックスエレメントは、前述のsps_bdpcm_enabled_flagであってもよい。
デコード装置は、前記BDPCM利用可能フラグに基づいて、現在ルマブロックのBDPCMの適用可否に対するBDPCMルマフラグを取得する(S1110)。デコード装置は、前記BDPCM利用可能フラグに基づいて、現在ルマブロックに対するBDPCM関連情報を取得することができる。例えば、前記現在ルマブロックに対するBDPCM関連情報は、前記現在ルマブロックに対するBDPCMルマフラグを含むことができる。デコード装置は、前記BDPCM利用可能フラグに基づいて現在ルマブロックに対するBDPCMルマフラグを取得することができる。
例えば、前記BDPCM利用可能フラグの値が1である場合(すなわち、前記BDPCM利用可能フラグがクロマブロック及びルマブロックに対して、前記BDPCMが利用可能であることを示す場合)、デコード装置は、前記現在ルマブロックに前記BDPCMが適用されるかどうかに対するBDPCMルマフラグを取得することができる。例えば、前記BDPCMルマフラグは、前記現在ルマブロックに前記BDPCMが適用され、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在するかどうかを示すことができる。例えば、前記BDPCMルマフラグの値が1である場合、前記BDPCMルマフラグは前記現在ルマブロックに前記BDPCMが適用され、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在することを示すことができ、前記BDPCMルマフラグの値が0である場合、前記BDPCMルマフラグは前記現在ルマブロックに前記BDPCMが適用されず、前記現在ルマブロックに対するBDPCMルマ方向フラグが存在しないことを示すことができる。例えば、前記BDPCMルマフラグのシンタックスエレメントは、前述のbdpcm_flag又はintra_bdpcm_luma_flagであってもよい。また、例えば、前記BDPCMルマフラグは、CU(coding unit)単位でシグナリングされることができる。
デコード装置は、前記BDPCMルマフラグに基づいて、前記現在ルマブロックの予測方向に対するBDPCMルマ方向フラグを取得する(S1120)。例えば、前記現在ルマブロックに対するBDPCM関連情報は、前記現在ルマブロックに対するBDPCMルマフラグ及び/又はBDPCMルマ方向フラグを含むことができる。
例えば、デコード装置は、前記BDPCMルマフラグに基づいて前記現在ルマブロックの予測方向に対するBDPCMルマ方向フラグを取得することができる。例えば、前記BDPCMルマフラグが前記現在ルマブロックに前記BDPCMが適用されることを示す場合、デコード装置は、前記BDPCMルマ方向フラグを取得することができる。すなわち、例えば、前記BDPCMルマフラグの値が1である場合、デコード装置は、前記BDPCMルマ方向フラグを取得することができる。例えば、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する予測方向として垂直方向又は水平方向を示すことができる。例えば、前記BDPCMルマ方向フラグの値が0である場合、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)であることを示すことができ、前記BDPCMルマ方向フラグの値が1である場合、前記BDPCMルマ方向フラグは、前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)であることを示すことができる。例えば、前記BDPCMルマ方向フラグのシンタックスエレメントは、前述のbdpcm_dir_flag又はintra_bdpcm_luma_dir_flagであってもよい。また、例えば、前記BDPCMルマ方向フラグは、CU(coding unit)単位でシグナリングされることができる。
デコード装置は、前記BDPCMルマ方向フラグに基づいて導出されたイントラ予測モードに基づいて、前記現在ルマブロックの予測サンプルを導出する(S1130)。
例えば、デコード装置は、前記BDPCMルマ方向フラグに基づいて導出されたイントラ予測モードに基づいて、前記現在ルマブロックの予測サンプルを導出し得る。
例えば、前記BDPCMルマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、水平イントラ予測モードを前記現在ルマブロックのイントラ予測モードとして導出し得る。例えば、前記BDPCMルマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、水平イントラ予測モードに基づいて前記現在ルマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記BDPCMルマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、前記現在ルマブロックの左側周辺サンプルに基づいてイントラ予測を行い、前記現在ルマブロックの予測サンプルを導出し得る。例えば、前記現在ルマブロックに対する予測方向が水平方向に導出された場合、デコード装置は予測サンプルと同じ行の左側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
また、例えば、前記BDPCMルマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は垂直イントラ予測モードを前記現在ルマブロックのイントラ予測モードとして導出し得る。例えば、前記BDPCMルマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は垂直イントラ予測モードに基づいて前記現在ルマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記BDPCMルマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMルマ方向フラグが前記現在ルマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は、前記現在ルマブロックの上側周辺サンプルに基づいて前記現在ルマブロックの予測サンプルを導出し得る。例えば、前記現在ルマブロックに対する予測方向が垂直方向に導出された場合、デコード装置は予測サンプルと同じ列の上側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
デコード装置は、前記BDPCM利用可能フラグに基づいて、現在クロマブロックのBDPCMの適用可否に対するBDPCMクロマフラグを取得する(S1140)。デコード装置は、前記BDPCM利用可能フラグに基づいて、現在クロマブロックに対するBDPCM関連情報を取得することができる。例えば、前記現在クロマブロックに対するBDPCM関連情報は、前記現在クロマブロックに対するBDPCMクロマフラグを含むことができる。デコード装置は、前記BDPCM利用可能フラグに基づいて現在クロマブロックに対するBDPCMクロマフラグを取得することができる。
また、例えば、前記現在クロマブロックに対する(すなわち、前記現在クロマブロックともに対する)前記BDPCM関連情報は、画像のツリータイプ(tree type)がシングルツリー(single tree)であり、前記BDPCM利用可能フラグの値が1である場合にシグナリングされることができる。すなわち、例えば、前記現在クロマブロックに対する(すなわち、前記現在クロマブロックともに対する) 前記BDPCM関連情報は、画像のツリータイプ(tree type)がシングルツリー(single tree)であり、前記現在クロマブロックに対してBDPCMが利用可能である場合にシグナリングされることができる。一方、現在ブロックのツリータイプは、現在ルマブロックと対応する現在クロマブロックが個別的な分割構造を有するかどうかによって、シングルツリー(SINGLE_TREE)又はデュアルツリー(DUAL_TREE)に区分できる。例えば、現在クロマブロックが現在ルマブロックと同じ分割構造を有する場合はシングルツリー、現在クロマブロックが現在ルマブロックと異なる分割構造を有する場合はデュアルツリーで示すことができる。
例えば、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用され、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在するかどうかを示すことができる。例えば、前記BDPCMクロマフラグの値が1である場合、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用され、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在することを示すことができ、前記BDPCMクロマフラグの値が0である場合、前記BDPCMクロマフラグは、前記現在クロマブロックに前記BDPCMが適用されず、前記現在クロマブロックに対するBDPCMクロマ方向フラグが存在しないことを示すことができる。すなわち、例えば、前記BDPCMクロマフラグの値が1である場合、前記BDPCMクロマフラグは、前記現在クロマブロックともに前記BDPCMが適用され、前記現在クロマブロックともに対するBDPCMクロマ方向フラグが存在することを示すことができ、前記BDPCMクロマフラグの値が0である場合、前記BDPCMクロマフラグは、前記現在クロマブロックともに前記BDPCMが適用されず、前記現在クロマブロックともに対するBDPCMクロマ方向フラグが存在しないことを示すことができる。ここで、例えば、前記現在クロマブロックは、現在クロマCbブロック及び現在クロマCrブロックを含むことができる。例えば、前記BDPCMクロマフラグのシンタックスエレメントは、前述のbdpcm_flag又はintra_bdpcm_chroma_flagであってもよい。また、例えば、前記BDPCMクロマフラグはCU(coding unit)単位でシグナリングされることができる。
デコード装置は、前記BDPCMクロマフラグに基づいて、前記現在クロマブロックの予測方向に対するBDPCMクロマ方向フラグを取得する(S1150)。例えば、前記現在クロマブロックに対するBDPCM関連情報は、前記現在クロマブロックに対するBDPCMクロマフラグ及び/又はBDPCMクロマ方向フラグを含むことができる。
例えば、デコード装置は、前記BDPCMクロマフラグに基づいて前記現在クロマブロックの予測方向に対するBDPCMクロマ方向フラグを取得することができる。例えば、前記BDPCMクロマフラグが前記現在クロマブロックに前記BDPCMが適用されることを示す場合、デコード装置は、前記BDPCMクロマ方向フラグを取得することができる。すなわち、例えば、前記BDPCMクロマフラグの値が1である場合、デコード装置は、前記BDPCMクロマ方向フラグを取得することができる。例えば、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する予測方向として垂直方向又は水平方向を示すことができる。例えば、前記BDPCMクロマ方向フラグの値が0である場合、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)であることを示すことができ、前記BDPCMクロマ方向フラグの値が1である場合、前記BDPCMクロマ方向フラグは、前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)であることを示すことができる。例えば、前記BDPCMクロマ方向フラグのシンタックスエレメントは、前述のbdpcm_dir_flag又はintra_bdpcm_chroma_dir_flagであってもよい。また、例えば、前記BDPCMクロマ方向フラグはCU(coding unit)単位でシグナリングされることができる。
デコード装置は、前記BDPCMクロマ方向フラグに基づいて導出されたイントラ予測モードに基づいて、前記現在クロマブロックの予測サンプルを導出する(S1160)。例えば、デコード装置は、前記BDPCMクロマ方向フラグに基づいて導出されたイントラ予測モードに基づいて、前記現在クロマブロックの予測サンプルを導出し得る。
例えば、前記BDPCMクロマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、水平イントラ予測モードを前記現在クロマブロックのイントラ予測モードとして導出し得る。例えば、前記BDPCMクロマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、水平イントラ予測モードに基づいて、前記現在クロマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記BDPCMクロマ方向フラグの値が0である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が水平方向(horizontal)であることを示す場合、デコード装置は、前記現在クロマブロックの左側周辺サンプルに基づいてイントラ予測を行い、前記現在クロマブロックの予測サンプルを導出し得る。例えば、前記現在クロマブロックに対する予測方向が水平方向に導出された場合、デコード装置は予測サンプルと同じ行の左側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
また、例えば、前記BDPCMクロマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は、垂直イントラ予測モードを前記現在クロマブロックのイントラ予測モードとして導出し得る。例えば、前記BDPCMクロマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は、垂直イントラ予測モードに基づいて、前記現在クロマブロックの予測サンプルを導出し得る。言い換えると、例えば、前記BDPCMクロマ方向フラグの値が1である場合、すなわち、例えば、前記BDPCMクロマ方向フラグが前記現在クロマブロックに対する前記予測方向が垂直方向(vertical)であることを示す場合、デコード装置は、前記現在クロマブロックの上側周辺サンプルに基づいて、前記現在クロマブロックの予測サンプルを導出し得る。例えば、前記現在クロマブロックに対する予測方向が垂直方向に導出された場合、デコード装置は予測サンプルと同じ列の上側周辺サンプルのサンプル値を前記予測サンプルのサンプル値として導出し得る。
デコード装置は、前記現在ルマブロックの前記予測サンプル及び前記現在クロマブロックの前記予測サンプルに基づいて復元ピクチャを生成する(S1170)。
デコード装置は、前記現在ルマブロックの予測サンプル及び前記現在クロマブロックの予測サンプルに基づいて、前記現在ルマブロック及び前記現在クロマブロックに対する復元サンプル及び/又は復元ピクチャを導出し得る。例えば、デコード装置は、前記現在ルマブロックの予測サンプルと前記現在ルマブロックのレジデュアルサンプルの加算を介して、前記現在ルマブロックの復元サンプルを導出し得る。また、例えば、デコード装置は、前記現在クロマブロックの予測サンプルと前記現在クロマブロックのレジデュアルサンプルの加算を介して、前記現在クロマブロックの復元サンプルを導出し得る。すなわち、例えば、デコード装置は、現在クロマCbブロックの予測サンプルと前記現在クロマCbブロックのレジデュアルサンプルの加算を介して、前記現在クロマCbブロックの復元サンプルを導出し得、現在クロマCrブロックの予測サンプルと前記現在クロマCrブロックのレジデュアルサンプルの加算を介して、前記現在クロマCrブロックの復元サンプルを導出し得る。
一方、例えば、デコード装置は、受信されたレジデュアル情報に基づいて、前記現在ルマブロックのレジデュアルサンプルを導出し得、受信されたレジデュアル情報に基づいて、前記現在クロマブロックのレジデュアルサンプル(現在クロマCbブロックのレジデュアルサンプル及び現在クロマCrブロックのレジデュアルサンプル)を導出し得る。
例えば、前記現在ルマブロックにBDPCMが適用される場合、前記レジデュアル情報は、現在ルマブロックのレジデュアルサンプルに対するシンタックスエレメントを含むことができ(すなわち、前記現在ルマブロックにBDPCMが適用される場合、前記レジデュアル情報は、現在ルマブロックの対象のレジデュアルサンプルに対するシンタックスエレメントを含むことができ)、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、前記現在ルマブロックにBDPCMが適用される場合、前記レジデュアル情報は、現在ルマブロックの対象のレジデュアルサンプルに対するシンタックスエレメントを含むことができ、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。
例えば、前記現在ルマブロックにBDPCMが適用され、前記現在ルマブロックに対する前記予測方向が水平方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。その後、前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値と前記差分との和で前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。ここで、前記対象のレジデュアルサンプルは、前記現在ルマブロックの一番目の列以外の列内のレジデュアルサンプルであってもよい。例えば、前記対象のレジデュアルサンプルのレジデュアル係数は、前述の数式4に基づいて導出され得る。一方、例えば、前記対象のレジデュアルサンプルが前記現在ルマブロックの一番目の列内のレジデュアルサンプルである場合、前記対象のレジデュアルサンプルのシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。
また、例えば、前記現在ルマブロックにBDPCMが適用され、前記現在ルマブロックに対する前記予測方向が垂直方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。その後、前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値と前記差分との和で前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。ここで、前記対象のレジデュアルサンプルは、前記現在ルマブロックの一番目の行以外の行内のレジデュアルサンプルであってもよい。例えば、前記対象のレジデュアルサンプルのレジデュアル係数は、前述の数式3に基づいて導出され得る。一方、例えば、前記対象のレジデュアルサンプルが前記現在ルマブロックの一番目の行内のレジデュアルサンプルである場合、前記対象のレジデュアルサンプルのシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。
その後、例えば、デコード装置は、前記レジデュアル係数を逆量子化して前記対象のレジデュアルサンプルを導出し得る。すなわち、例えば、前記対象のレジデュアルサンプルは、前記レジデュアル係数を逆量子化して導出され得る。
また、例えば、前記現在クロマブロック(例えば、現在クロマCbブロック又は現在クロマCrブロック)にBDPCMが適用される場合、前記レジデュアル情報は、現在クロマブロックのレジデュアルサンプルに対するシンタックスエレメントを含むことができ(すなわち、前記現在クロマブロックにBDPCMが適用される場合、前記レジデュアル情報は現在クロマブロック(現在クロマCbブロック及び現在クロマCrブロック)の対象のレジデュアルサンプルに対するシンタックスエレメントを含むことができ)、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、前記現在クロマブロックにBDPCMが適用される場合、前記レジデュアル情報は現在クロマブロック(例えば、現在クロマCbブロック又は現在クロマCrブロック)の対象のレジデュアルサンプルに対するシンタックスエレメントを含むことができ、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。
例えば、前記現在クロマブロックにBDPCMが適用され、前記現在クロマブロックに対する前記予測方向が水平方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。その後、前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値と前記差分との和で前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。ここで、前記対象のレジデュアルサンプルは、前記現在クロマブロックの一番目の列以外の列内のレジデュアルサンプルであってもよい。例えば、前記対象のレジデュアルサンプルのレジデュアル係数は、前述の数式4に基づいて導出され得る。一方、例えば、前記対象のレジデュアルサンプルが前記現在クロマブロックの一番目の列内のレジデュアルサンプルである場合、前記対象のレジデュアルサンプルのシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。
また、例えば、前記現在クロマブロックにBDPCMが適用され、前記現在クロマブロックに対する前記予測方向が垂直方向である場合、対象のレジデュアルサンプルに対するシンタックスエレメントは、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分を示すことができる。すなわち、例えば、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。その後、前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値と前記差分との和で前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。ここで、前記対象のレジデュアルサンプルは、前記現在クロマブロックの一番目の行以外の行内のレジデュアルサンプルであってもよい。例えば、前記対象のレジデュアルサンプルのレジデュアル係数は、前述の数式3に基づいて導出され得る。一方、例えば、前記対象のレジデュアルサンプルが前記現在クロマブロックの一番目の行内のレジデュアルサンプルである場合、前記対象のレジデュアルサンプルのシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数が導出され得る。
その後、例えば、デコード装置は、前記レジデュアル係数を逆量子化し、前記対象のレジデュアルサンプルを導出し得る。すなわち、例えば、前記対象のレジデュアルサンプルは、前記レジデュアル係数を逆量子化して導出され得る。
一方、図には示していないが、例えば、デコード装置は、前記BDPCMルマフラグに基づいて、前記現在ルマブロックに対するレジデュアル情報を取得することができる。例えば、前記BDPCMルマフラグが前記現在ルマブロックに前記BDPCMが適用されることを示す場合、すなわち、前記現在ルマブロックに前記BDPCMが適用される場合、前記レジデュアル情報は現在ルマブロックのレジデュアルサンプルに対するシンタックスエレメントを含むことができ、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。例えば、前記現在ルマブロックの予測方向が水平方向である場合、すなわち、前記BDPCMルマ方向フラグに基づいて、前記現在ルマブロックの予測方向が水平方向に導出された場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。また、例えば、前記現在ルマブロックの予測方向が垂直方向である場合、すなわち、前記BDPCMルマ方向フラグに基づいて、前記現在ルマブロックの予測方向が垂直方向に導出された場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。また、前記対象のレジデュアルサンプルが前記現在ブロックの一番目の行又は列に位置する場合、前記対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値が導出され得る。
また、例えば、デコード装置は、前記BDPCMクロマフラグに基づいて、前記現在クロマブロックに対するレジデュアル情報を取得することができる。例えば、前記BDPCMクロマフラグが前記現在クロマブロックに前記BDPCMが適用されることを示す場合、すなわち、前記現在クロマブロックに前記BDPCMが適用される場合、前記レジデュアル情報は、現在クロマブロックのレジデュアルサンプルに対するシンタックスエレメントを含むことができ、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプル又は上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。例えば、前記現在クロマブロックの予測方向が水平方向である場合、すなわち、前記BDPCMクロマ方向フラグに基づいて、前記現在クロマブロックの予測方向が水平方向に導出された場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの左側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。また、例えば、前記現在クロマブロックの予測方向が垂直方向である場合、すなわち、前記BDPCMクロマ方向フラグに基づいて、前記現在クロマブロックの予測方向が垂直方向に導出された場合、対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値と前記対象のレジデュアルサンプルの上側周辺レジデュアルサンプルのレジデュアル係数値の差分が導出され得る。また、前記対象のレジデュアルサンプルが前記現在クロマブロックの一番目の行又は列に位置する場合、前記対象のレジデュアルサンプルに対するシンタックスエレメントに基づいて、前記対象のレジデュアルサンプルのレジデュアル係数値が導出され得る。
デコード装置は、前記予測サンプルと前記レジデュアルサンプルの加算を介して、前記復元サンプルを導出することができる。その後、必要に応じて主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO及び/又はALF手順のようなインループフィルタリング手順が前記復元サンプルに適用可能であることは前述の通りである。
図12は、本文書による画像デコード方法を行うデコード装置を概略的に示す。図11で開示された方法は、図12で開示されたデコード装置により行われ得る。具体的には、例えば、図12の前記デコード装置のエントロピーデコード部は、図11のS1100乃至S1120及びS1140乃至S1150を行うことができ、図12の前記デコード装置の予測部は、図11のS1130及びS1160を行うことができ、図12の前記デコード装置の加算部は、図11のS1170を行うことができる。
前述の本文書によると、1つのシンタックスエレメントで画像内のルマブロック及びクロマブロックのBDPCMが利用可能かどうかを判断することができ、これによりBDPCMのためのビット量を減らし、全般的なコーディング効率を向上させることができる。
また、本文書によると、画像のクロマフォーマットに関係なく、画像内のルマブロック及びクロマブロックのBDPCMが利用可能かどうかを示すBDPCM利用可能フラグがシグナリングでき、これによりBDPCMのための複雑度を減らし、全般的なコーディング効率を向上させることができる。
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図を基に説明されているが、本文書は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと異なる順序でまたは同時に発生することができる。また、当業者であれば、流れ図に示されたステップが排他的でなく、他のステップが含まれ、または流れ図の1つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除可能であることを理解することができる。
本文書において説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。例えば、各図面において図示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。この場合、実現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施形態が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使用されることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを備えることができる。
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。本文書に係るデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読み出すことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介しての送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
図13は、本文書の実施形態が適用されるコンテンツストリーミングシステム構造図を例示的に示す。
本文書の実施形態が適用されるコンテンツストリーミングシステムは、大別して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されることができる。
前記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/またはエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例として、携帯電話、スマートフォン(smartphone)、ノートブックコンピュータ(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、デスクトップコンピュータ、デジタルサイニジなどがある。前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは分散処理されることができる。
本明細書に記載された請求項は様々な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として実現されることもでき、本明細書の装置請求項の技術的特徴が組み合わせられて方法として実現されることもできる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置として実現されることもでき、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法として実現されることもできる。