本文書は、様々な変更を加えることができ、種々の実施形態を有することができるところ、特定実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書において常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、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.H.267 or H.268等)に開示される方法に適用されることができる。
この文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、他の言及がない限り、前記実施形態は、互いに組み合わせられて行われることもできる。
この文書においてビデオ(video)は、時間の流れるにしたがう一連の画像(image)等の集合を意味できる。ピクチャ(picture)は、一般的に特定時間帯の1つの画像を表す単位を意味し、スライス(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 scanof the bricks of the tile, and tiles in a picture are ordered consecutively in a raster scan of the tiles of the 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 may be 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つのクロマ(ex.cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
この文書において「/」と「、」とは、「及び/又は」と解釈される。例えば、「A/B」は、「A及び/又はB」と解釈され、「A、B」は、「A及び/又はB」と解釈される。追加的に、「A/B/C」は、「A、B、及び/又はCのうち、少なくとも1つ」を意味する。また、「A、B、C」も「A、B、及び/又はCのうち、少なくとも1つ」を意味する。(In this document, the term “/” and “、”should be interpreted to indicate “and/or.” For instance, the expression “A/B” may mean “A and/or B.” Further, “A、B” may mean “A and/or B.” Further, “A/B/C” may mean “atleast one of A, B, and/or C.” Also, “A/B/C” may mean “at least one of A, B, and/or C.”)
追加的に、本文書において「または」は、「及び/又は」と解釈される。例えば、「AまたはB」は、1)「A」だけを意味し、2)「B」だけを意味するか、3)「A及びB」を意味できる。言い換えれば、本文書の「または」は、「追加的にまたは代替的に(additionally or alternatively)」を意味できる。(Further, in the document, the term “or” should be interpreted to indicate “and/or.” For instance, the expression “A or B” may comprise 1)only A, 2)only B, and/or 3)both A and B. In other words, the term “or” in this document should be interpreted to indicate 「additionally or alternatively.”)
図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)の値等)を共に、または別にエンコードすることもできる。エンコードされた情報(ex.エンコードされたビデオ/画像情報)は、ビットストリーム形態で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で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200とデコード装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは、修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達することができる。
図3は、本文書の実施形態に適用されることができるビデオ/画像デコード装置の構成を概略的に説明する図である。
図3に示すように、デコード装置300は、エントロピーデコード部(entropy decoder、310)、レシデュアル処理部(residual processor、320)、予測部(predictor、330)、加算部(adder、340)、フィルタリング部(filter、350)、及びメモリ(memoery、360)を備えて構成されることができる。予測部330は、インター予測部332及びイントラ予測部331を備えることができる。レシデュアル処理部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は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(ex.ビデオ/画像情報)を導出できる。前記ビデオ/画像情報は、アダプテーションパラメータセット(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は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的周辺ブロックの動き情報または時間的周辺ブロックの動き情報として活用するために、インター予測部332に伝達することができる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部331に伝達することができる。
本明細書において、エンコード装置200のフィルタリング部260、インター予測部221、及びイントラ予測部222で説明された実施形態は、各々デコード装置300のフィルタリング部350、インター予測部332、及びイントラ予測部331にも同一または対応するように適用されることができる。
上述したように、ビデオコーディングを行うにあたって、圧縮効率を上げるために予測を行う。これを介してコーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成できる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同様に導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない、前記原本ブロックと前記予測されたブロックとの間のレシデュアルに関する情報(レシデュアル情報)をデコード装置にシグナリングすることにより画像コーディング効率を上げることができる。デコード装置は、前記レシデュアル情報に基づいてレシデュアルサンプルを含むレシデュアルブロックを導出し、前記レシデュアルブロックと前記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成でき、復元ブロックを含む復元ピクチャを生成できる。
前記レシデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレシデュアルブロックを導出し、前記レシデュアルブロックに含まれたレシデュアルサンプル(レシデュアルサンプルアレイ)に変換手順を行って変換係数を導出し、前記変換係数に量子化手順を行って量子化された変換係数を導出して、関連したレシデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、前記レシデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レシデュアル情報に基づいて逆量子化/逆変換手順を行い、レシデュアルサンプル(または、レシデュアルブロック)を導出できる。デコード装置は、予測されたブロックと前記レシデュアルブロックに基づいて復元ピクチャを生成できる。エンコード装置は、さらにその後、ピクチャのインター予測のための参照のために、量子化された変換係数を逆量子化/逆変換してレシデュアルブロックを導出し、これに基づいて復元ピクチャを生成できる。
図4は、ビデオエンコード装置によって行われる画像エンコード方法の一例を示す。
図4に示すように、画像エンコード方法は、ブロックパーティショニング(block partitioning)、イントラ/インター予測、変換(transform)、量子化(quantization)、及びエントロピーエンコード(entropy encoding)過程を含むことができる。例えば、現在ピクチャは、複数のブロックに分割されることができ、イントラ/インター予測を介して現在ブロックの予測ブロックが生成され得るし、前記現在ブロックの入力ブロックと前記予測ブロックとの減算を介して前記現在ブロックのレシデュアルブロックが生成され得る。その後、前記レシデュアルブロックに対する変換を介して係数(coefficent)ブロック、すなわち、前記現在ブロックの変換係数が生成され得る。前記変換係数は、量子化及びエントロピーエンコードされてビットストリームに格納されることができる。
図5は、デコード装置によって行われる画像デコード方法の一例を示す。
図5に示すように、画像デコード方法は、エントロピーデコード(entropy decoding)、逆量子化(inverse quantization)、逆変換(inverse transform)、及びイントラ/インター予測過程を含むことができる。例えば、デコード装置では、前述したエンコード方法の逆過程が行われ得る。具体的に、ビットストリームに対するエントロピーデコードを介して量子化された変換係数が取得され得るし、前記量子化された変換係数に対する逆量子化過程を介して現在ブロックの係数ブロック、すなわち、変換係数が取得され得る。前記変換係数に対する逆変換を介して前記現在ブロックのレシデュアルブロックが導出され得るし、イントラ/インター予測を介して導出された前記現在ブロックの予測ブロックと前記レシデュアルブロックとの加算を介して前記現在ブロックの復元ブロック(reconstructed block)が導出され得る。
一方、イントラ予測が行われる場合、サンプル間の相関関係が利用され得るし、原本ブロックと予測ブロックとの間の差、すなわち、レシデュアル(residual)が取得され得る。前記レシデュアルには、上述した変換及び量子化が適用され得るところ、これを介して空間的リダンダンシ(spatial redundancy)が除去され得る。以下では、イントラ予測が使用されるエンコード方法及びデコード方法に関して具体的に説明する。
イントラ予測は、現在ブロックを含むピクチャ(以下、現在ピクチャ)内の現在ブロック外部の参照サンプルに基づいて現在ブロックに対する予測サンプルを生成する予測をいう。ここで、現在ブロック外部の参照サンプルは、現在ブロックの周辺に位置するサンプルをいうことができる。現在ブロックにイントラ予測が適用される場合、現在ブロックのイントラ予測に使用する周辺(neighboring)参照サンプルが導出され得る。
例えば、現在ブロックのサイズ(幅×高さ)が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)現在ブロックの周辺参照サンプルの平均(average)あるいはインターポレーション(interpolation)に基づいて予測サンプルを導くことができ、(ii)現在ブロックの周辺参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて予測サンプルを導くこともできる。(i)の場合は、イントラ予測モードが非方向性モードまたは非角度モードであるときに適用されることができ、(ii)の場合は、イントラ予測モードが方向性(directional)モードまたは角度(angular)モードであるときに適用されることができる。
また、周辺参照サンプルのうち、現在ブロックの予測サンプルを基準に現在ブロックのイントラ予測モードの予測方向に位置する第1の周辺サンプルと、前記第1の周辺サンプルに対応する第2の周辺サンプルとの補間を介して予測サンプルが生成され得る。第2の周辺サンプルは、現在ブロックのイントラ予測モードの予測方向と反対方向に位置するサンプルでありうる。上述した場合は、線形補間イントラ予測(Linear interpolation intra prediction、LIP)と呼ばれることができる。また、フィルタリングされた周辺参照サンプルに基づいて現在ブロックの臨時予測サンプルを導出し、既存の周辺参照サンプル、すなわち、フィルタリングされなかった周辺参照サンプルのうち、前記イントラ予測モードによって導出された少なくとも1つの参照サンプルと前記臨時予測サンプルを加重和(weighted sum)して現在ブロックの予測サンプルを導出することもできる。上述した場合は、PDPC(Position dependent intra prediction)と呼ばれることができる。一方、必要に応じて、導出された予測サンプルに対する後処理フィルタリングが行われることもできる。
具体的に、イントラ予測手順は、イントラ予測モード決定ステップ、周辺参照サンプル導出ステップ、イントラ予測モード基盤予測サンプル導出ステップを含むことができる。また、必要に応じて、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが行われることもできる。
図6は、イントラ予測に基づいた画像エンコード方法の一例を示し、図7は、エンコード装置内のイントラ予測部を概略的に示す。図7のエンコード装置内のイントラ予測部は、上述した図2のエンコード装置200のイントラ予測部222にも同一または対応するように適用されることができる。
図6及び図7に示すように、S600は、エンコード装置のイントラ予測部222によって行われることができ、S610は、エンコード装置のレシデュアル処理部230によって行われることができる。具体的に、S610は、エンコード装置の減算部231によって行われることができる。S620において予測情報は、イントラ予測部222によって導出され、エントロピーエンコード部240によってエンコードされることができる。S620においてレシデュアル情報は、レシデュアル処理部230によって導出され、エントロピーエンコード部240によってエンコードされることができる。レシデュアル情報は、レシデュアルサンプルに関する情報である。レシデュアル情報は、レシデュアルサンプルに対する量子化された変換係数に関する情報を含むことができる。上述したように、レシデュアルサンプルは、エンコード装置の変換部232を介して変換係数として導出され、前記変換係数は、量子化部233を介して量子化された変換係数として導出されることができる。量子化された変換係数に関する情報がレシデュアルコーディング手順を介してエントロピーエンコード部240でエンコードされることができる。
エンコード装置は、現在ブロックに対するイントラ予測を行うことができる(S600)。エンコード装置は、現在ブロックに対するイントラ予測モードを導出し、現在ブロックの周辺参照サンプルを導出でき、前記イントラ予測モード及び前記周辺参照サンプルに基づいて現在ブロック内の予測サンプルを生成できる。ここで、イントラ予測モード決定、周辺参照サンプル導出、及び予測サンプル生成手順は、同時に行われることができ、いずれか1つの手順が他の手順より先に行われることもできる。
一実施形態として、エンコード装置のイントラ予測部222は、予測モード決定部223、参照サンプル導出部224、予測サンプル導出部225を備えることができ、予測モード決定部223で現在ブロックに対するイントラ予測モードを決定し、参照サンプル導出部224で現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部225で現在ブロックの予測サンプルを導出できる。一方、例え、図示されてはいないが、後述する予測サンプルフィルタリング手順が行われる場合、イントラ予測部222は、予測サンプルフィルタ部(図示せず)をさらに備えることもできる。エンコード装置は、複数のイントラ予測モードのうち、現在ブロックに対して適用されるモードを決定できる。エンコード装置は、イントラ予測モードに対するRD costを比較し、現在ブロックに対する最適のイントラ予測モードを決定できる。
上述したように、エンコード装置は、予測サンプルフィルタリング手順を行うこともできる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。予測サンプルフィルタリング手順によって予測サンプルのうち、一部または全部がフィルタリングされ得る。場合によって、予測サンプルフィルタリング手順は省略されることができる。
エンコード装置は、(フィルタリングされた)予測サンプルに基づいて現在ブロックに対するレシデュアルサンプルを生成できる(S610)。エンコード装置は、イントラ予測モードを表す予測モード情報及びレシデュアルサンプルに関するレシデュアル情報を含む画像情報をエンコードできる(S620)。エンコードされた画像情報は、ビットストリーム形態で出力されることができる。出力されたビットストリームは、格納媒体またはネットワークを介してデコード装置に伝達されることができる。
上述したように、エンコード装置は、予測サンプル及びレシデュアルサンプルに基づいて復元ピクチャ(復元サンプル及び復元ブロックを含む)を生成できる。これは、デコード装置で行われることと同じ予測結果をエンコード装置から導出するためであり、これを介してコーディング効率を上げることができるためである。また、復元ピクチャにインループフィルタリング手順などがさらに適用され得ることは、上述したとおりである。
図8は、イントラ予測に基づいた画像デコード方法の一例を示し、図9は、デコード装置内のイントラ予測部を概略的に示す。図9のデコード装置内のイントラ予測部は、上述した図3のデコード装置300のイントラ予測部331にも同一または対応するように適用されることができる。
図8及び図9に示すように、デコード装置は、上述したエンコード装置で行われた動作と対応する動作を行うことができる。デコード装置は、受信された予測情報に基づいて現在ブロックに対する予測を行い、予測サンプルを導出できる。
S800~S820は、デコード装置のイントラ予測部331によって行われることができ、S830のレシデュアル情報は、デコード装置のエントロピーデコード部310によってビットストリームから取得されることができる。デコード装置のレシデュアル処理部320は、レシデュアル情報に基づいて現在ブロックに対するレシデュアルサンプルを導出できる。具体的に、レシデュアル処理部の逆量子化部321は、レシデュアル情報に基づいて導出された量子化された変換係数に基づき、逆量子化を行って変換係数を導出し、レシデュアル処理部320の逆変換部322は、変換係数に対する逆変換を行って現在ブロックに対するレシデュアルサンプルを導出できる。S840は、デコード装置の加算部340または復元部によって行われることができる。
デコード装置は、受信された予測モード情報に基づいて現在ブロックに対するイントラ予測モードを導出できる(S800)。デコード装置は、現在ブロックの周辺参照サンプルを導出できる(S810)。デコード装置は、前記イントラ予測モード及び前記周辺参照サンプルに基づいて現在ブロック内の予測サンプルを生成できる(S820)。この場合、デコード装置は、予測サンプルフィルタリング手順を行うことができる。予測サンプルフィルタリングは、ポストフィルタリングと呼ばれることができる。予測サンプルフィルタリング手順によって予測サンプルのうち、一部または全部がフィルタリングされ得る。場合によって、予測サンプルフィルタリング手順は省略されることができる。
デコード装置は、受信されたレシデュアル情報に基づいて現在ブロックに対するレシデュアルサンプルを生成できる(S830)。デコード装置は、(フィルタリングされた)予測サンプル及びレシデュアルサンプルに基づいて現在ブロックに対する復元サンプルを生成し、これに基づいて復元ピクチャを生成できる(S840)。
一実施形態として、デコード装置のイントラ予測部331は、予測モード決定部333、参照サンプル導出部334、予測サンプル導出部335を備えることができ、予測モード決定部333は、エンコード装置の予測モード決定部223で受信された予測モード情報に基づいて現在ブロックに対するイントラ予測モードを決定し、参照サンプル導出部334は、現在ブロックの周辺参照サンプルを導出し、予測サンプル導出部335は、現在ブロックの予測サンプルを導出できる。一方、例え、図示されてはいないが、上述した予測サンプルフィルタリング手順が行われる場合、イントラ予測部331は、予測サンプルフィルタ部(図示せず)をさらに備えることもできる。
一方、イントラ予測を行うにあたって、現在ブロックにMPM(Most Probable Mode)が適用されるか否かによって予測モード情報が決定され得る。例えば、予測モード情報は、現在ブロックにMPM(Most Probable Mode)が適用されるか、それとも、リメイニングモード(remaining mode)が適用されるかの可否を表すフラグ情報(ex.prev_intra_luma_pred_flag)を含むことができる。MPMが現在ブロックに適用される場合、予測モード情報は、イントラ予測モード候補(MPM候補)のうち1つを指すインデックス情報(ex.mpm_idx)をさらに含むことができる。このとき、イントラ予測モード候補(MPM候補)は、MPM候補リストまたはMPMリストで構成されることができる。また、MPMが現在ブロックに適用されない場合、予測モード情報は、イントラ予測モード候補(MPM候補)を除いた残りのイントラ予測モードのうち1つを指すリメイニングモード情報(ex.rem_inra_luma_pred_mode)をさらに含むことができる。デコード装置は、予測モード情報に基づいて現在ブロックのイントラ予測モードを決定できる。このとき、予測モード情報は、後述するコーディング方法を介してエンコード/デコードされることができる。例えば、予測モード情報は、truncated (rice) binary codeに基づいてエントロピーコーディング(ex.CABAC、CAVLC)を介してエンコード/デコードされることができる。
また、イントラ予測が適用される場合に、予測モード情報を決定するにあたって、周辺ブロックのイントラ予測モードを用いて現在ブロックに適用されるイントラ予測モードが決定され得る。例えば、デコード装置は、現在ブロックの左側ブロックのイントラ予測モード及び上側ブロックのイントラ予測モードに基づいてMPM(Most Probable Mode)候補を導出でき、前記MPM候補のうち1つをMPMインデックス(ex.mpm_idx)に基づいて選択することができる。または、前記MPM候補に含まれていない残りのイントラ予測モードのうち1つをリメイニングイントラ予測モード情報(ex.rem_inra_luma_pred_mode)に基づいて選択することができる。MPMインデックスは、mpm_idxシンタックス要素の形態でシグナリングされることができ、リメイニングイントラ予測モード情報は、rem_intra_luma_pred_modeシンタックス要素の形態でシグナリングされることができる。例えば、リメイニングイントラ予測モード情報は、全体イントラ予測モードのうち、MPM候補に含まれない残りのイントラ予測モードを予測モード番号順にインデクシングして、そのうち1つを指すことができる。
イントラ予測モードは、非方向性(non-directional、または非角度性(non-angular))イントラ予測モードと方向性(directional、または角度性(angular))イントラ予測モードとを含むことができる。例えば、HEVC標準では、2個の非方向性予測モードと33個の方向性予測モードとを含むイントラ予測モードを使用する。非方向性予測モードには、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、方向性予測モードには、2番ないし34番のイントラ予測モードを含むことができる。プラナーイントラ予測モードは、プラナーモードと呼ばれることができ、DCイントラ予測モードは、DCモードと呼ばれることができる。
または、自然画像(natural video)で提示された任意のエッジ方向(edge direction)をキャプチャするために、前記方向性イントラ予測モードは、後述する図10のように、既存の33個から65個に拡張されることができる。この場合、イントラ予測モードは、2個の非方向性イントラ予測モードと65個の方向性イントラ予測モードとを含むことができる。非方向性イントラ予測モードは、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、方向性イントラ予測モードは、2番ないし66番のイントラ予測モードを含むことができる。拡張された方向性イントラ予測モードは、全てのサイズのブロックに適用されることができ、ルマ成分及びクロマ成分の両方に適用されることができる。ただし、これは例示であって、本文書の実施形態は、イントラ予測モードの数が異なる場合にも適用されることができる。場合によって、67番のイントラ予測モードがさらに使用され得るし、前記67番のイントラ予測モードは、LM(linear model)モードを表すことができる。
図10は、65個の方向性イントラ予測モードを例示的に示す。
図10に示すように、左上向き対角予測方向を有する34番のイントラ予測モードを中心に水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードとを区分できる。図10のHとVは、各々水平方向性と垂直方向性を意味し、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を表す。2番ないし33番のイントラ予測モードは、水平方向性、34番ないし66番のイントラ予測モードは、垂直方向性を有する。18番のイントラ予測モードと50番のイントラ予測モードとは、各々水平イントラ予測モード(horizontal intra prediction mode)、垂直イントラ予測モード(vertical intra prediction mode)を表し、2番のイントラ予測モードは、左下向き対角イントラ予測モード、34番のイントラ予測モードは、左上向き対角イントラ予測モード、66番のイントラ予測モードは、右上向き対角イントラ予測モードと呼ばれることができる。
上述したように、一般的にピクチャに対するブロック分割が行われれば、コーディングしようとする現在ブロックと周辺ブロックとは、類似した画像特性を有するようになる。したがって、現在ブロックと周辺ブロックとは、互いに同一であるか、類似したイントラ予測モードを有する確率が高い。このような画像特性によって、周辺ブロックのイントラ予測モードを用いて現在ブロックのイントラ予測モードを導出できる。これは、MPM(Most Probable Modes)と称されることができる。すなわち、MPMは、イントラ予測モードコーディングの際、現在ブロックと周辺ブロックとの類似性を考慮して、コーディング効率を向上させるために用いられるモードを意味できる。
例えば、エンコード/デコード装置は、現在ブロックに対するMPM(Most Probable Modes)リストを構成できる。MPMリストは、MPM候補リストと表すこともできる。このとき、MPMリスト生成の複雑度を考慮して、所定のMPM候補を含むMPMリストを構成できる。例えば、MPMリストは、3個のMPM候補、5個のMPM候補、または6個のMPM候補を含むことができる。一実施形態として、MPMリストは、周辺ブロックのイントラ予測モード、導出されたイントラ予測モード、及び/又はデフォルト(default)イントラ予測モードに基づいて導出されたMPM候補を含むことができる。ここで、周辺ブロックからMPM候補を導出するにあたって、エンコード装置/デコード装置は、現在ブロックの周辺ブロックを特定順序にしたがって探索し、周辺ブロックのイントラ予測モードを導出し、これを導出された順序に基づいてMPM候補として使用することができる。例えば、周辺ブロックは、現在ブロックの左側周辺ブロック、上側周辺ブロック、左下側周辺ブロック、右上側周辺ブロック、左上側周辺ブロックのうち、少なくとも1つを含むことができる。仮に、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれなかった場合、リメイニングモードが使用され得る。この場合、リメイニングモードは、全体イントラ予測モードのうち、MPM候補を除いた残りのイントラ予測モードを使用するモードであって、リメイニングイントラ予測モード情報をコーディングし、シグナリングすることができる。リメイニングイントラ予測モード情報は、MPM候補を除いた残りのイントラ予測モードのうち、現在ブロックに適用されるイントラ予測モードを指示する情報でありうる。例えば、67個のイントラ予測モードを使用する場合、リメイニングイントラ予測モード情報は、6ビットのシンタックス要素(ex.rem_intra_luma_pred_modeシンタックス要素)を含むことができる。
上述したように、HEVC標準では、イントラ予測時に35個のイントラ予測モードを使用し、この場合、3個のMPM候補を含むMPMリストを構成する。ここで、3個のMPM候補は、周辺ブロックF及び周辺ブロックGのイントラ予測モードに基づいて導出されることができる。周辺ブロックF及び周辺ブロックGを含む現在ブロックの周辺ブロックは、後述する内容のとおりでありうる。
図11は、現在ブロックの周辺ブロックを例示的に示す。
図11に示すように、現在ブロックの周辺ブロックは、周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF、及び/又は周辺ブロックGを含むことができる。
ここで、周辺ブロックAは、現在ブロックの左上端サンプルポジションの左上端に位置する周辺ブロックを表すことができる。周辺ブロックBは、現在ブロックの右上端サンプルポジションの上端に位置する周辺ブロックを表すことができる。周辺ブロックCは、現在ブロックの右上端サンプルポジションの右上端に位置する周辺ブロックを表すことができる。周辺ブロックDは、現在ブロックの左下端サンプルポジションの左端に位置する周辺ブロックを表すことができる。周辺ブロックEは、現在ブロックの左下端サンプルポジションの左下端に位置する周辺ブロックを表すことができる。周辺ブロックGは、現在ブロックの左上端サンプルポジションの上端に位置する周辺ブロックを表すことができる。周辺ブロックFは、現在ブロックの左上端サンプルポジションの左端に位置する周辺ブロックを表すことができる。
例えば、現在ブロックのサイズがW×Hであり、現在ブロックの左上端(top-left)サンプルポジションのx成分が0及びy成分が0である場合、周辺ブロックAは、(-1、-1)左標のサンプルを含むブロックであり、周辺ブロックBは、(W-1、-1)左標のサンプルを含むブロックであり、周辺ブロックCは、(W、-1)左標のサンプルを含むブロックであり、周辺ブロックDは、(-1、H-1)左標のサンプルを含むブロックであり、周辺ブロックEは、(-1、H)左標のサンプルを含むブロックであり、周辺ブロックFは、(-1、0)左標のサンプルを含むブロックであり、周辺ブロックGは、(0、-1)左標のサンプルを含むブロックでありうる。
HEVC標準によれば、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードに基づいて3個のMPM候補が導出され得る。例えば、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが導出され得る。一方、次の場合、周辺ブロックFのイントラ予測モードまたは周辺ブロックGのイントラ予測モードは、DCイントラ予測モードとして導出されることができる。
1)周辺ブロックFまたは周辺ブロックGが可用でない場合
2)周辺ブロックFまたは周辺ブロックGがイントラ予測モードにコーディングされなかった場合(すなわち、周辺ブロックFまたは周辺ブロックGがイントラコーディングされたブロック(intra coded block)でない場合)
3)周辺ブロックFまたは周辺ブロックGが現在コーディングツリーユニット(CTU)を外れる場合
上記のように、周辺ブロックFのイントラ予測モードまたは周辺ブロックGのイントラ予測モードが決定された場合、3個のMPM候補は、次の表1のように導出されることができる。
前記表1は、MPMリストを構成する概略的なアルゴリズム(すなわち、pseudo code)を例示的に表したものである。前記表1を参照すれば、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同じであるか判断されることができる。
周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一であり、周辺ブロックFのイントラ予測モードのモード番号が2より小さい場合、現在ブロックのMPMリストは、MPMリスト1(MPM list1)として導出されることができる。すなわち、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一であり、周辺ブロックFのイントラ予測モードが0番のイントラ予測モードまたは1番のイントラ予測モードである場合、現在ブロックのMPMリストは、MPMリスト1として導出されることができる。ここで、MPMリスト1は、MPM候補{F、F-1、F+1}で構成されたMPMリストを表すことができる。Fは、周辺ブロックFのイントラ予測モードを表すことができ、F-1は、周辺ブロックFのイントラ予測モードのモード番号から1を引いた値がモード番号であるイントラ予測モードを表すことができ、F+1は、周辺ブロックFのイントラ予測モードのモード番号に1を加えた値がモード番号であるイントラ予測モードを表すことができる。例えば、周辺ブロックFのイントラ予測モードがN番のイントラ予測モードである場合、MPMリスト1は、N番のイントラ予測モード、N-1番のイントラ予測モード、N+1番のイントラ予測モードをMPM候補として含むMPMリストで構成されることができる。
また、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一であり、周辺ブロックFのイントラ予測モードのモード番号が2より小さくない場合、現在ブロックのMPMリストは、MPMリスト2(MPM list2)として導出されることができる。
また、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一でなく、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードがプラナーイントラ予測モードでない場合、現在ブロックのMPMリストは、MPMリスト3(MPM list3)として導出されることができる。
また、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一でなく、周辺ブロックFのイントラ予測モードのモード番号及び周辺ブロックGのイントラ予測モードのモード番号の合計が2より小さい場合、現在ブロックのMPMリストは、MPMリスト4(MPM list4)として導出されることができる。
また、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードが同一でなく、周辺ブロックFのイントラ予測モード及び周辺ブロックGのイントラ予測モードのうち、少なくとも1つがプラナーイントラ予測モードであり、周辺ブロックFのイントラ予測モードのモード番号及び周辺ブロックGのイントラ予測モードのモード番号の合計が2より小さくない場合、現在ブロックのMPMリストは、MPMリスト5(MPM list5)として導出されることができる。
一方、イントラ予測モードの個数が増加するにつれてMPM候補の数が増加される必要がある。これにより、MPM候補の数は、イントラ予測モードの数によって異なることができる。一般的に、イントラ予測モードの数が増加すれば、MPM候補の数が増加することができる。しかし、常にイントラ予測モードの数が増加すれば、MPM候補の数が増加するものではない。例えば、35個のイントラ予測モードが存在する場合、または67個のイントラ予測モードが存在する場合は、デザインによって3個、4個、5個、6個のような様々な数のMPM候補を有することができる。
例えば、6MPMリスト構成が行われ得る。すなわち、6個のMPM候補を含むMPMリストが構成され得る。例えば、6MPMリスト構成は、様々な周辺ブロックの位置を検索する過程及び同じイントラ予測モードを除くための持続的なプルーニング(pruning)チェック過程が行われ得る。一例として、6個のMPM候補を構成する順序は、次のとおりでありうる。
周辺ブロックD、周辺ブロックB、プラナーイントラ予測モード、DCイントラ予測モード、周辺ブロックE、周辺ブロックC、及び周辺ブロックA。
すなわち、周辺ブロックDのイントラ予測モード、周辺ブロックBのイントラ予測モード、プラナーイントラ予測モード、DCイントラ予測モード、周辺ブロックEのイントラ予測モード、周辺ブロックCのイントラ予測モード、周辺ブロックAのイントラ予測モード順にMPM候補として導出されることができ、既に導出されたイントラ予測モードと同じ場合、MPM候補として導出されないことがある。
また、MPMリストが最大候補個数のMPM候補を含まない場合、すなわち、導出されたMPM候補の個数が最大候補個数より小さい場合、導出されたMPM候補と隣接した方向性イントラ予測モードと予め定義されたデフォルトイントラ予測モードとがMPM候補として考慮され得るし、プルーニングチェック過程が共に行われることができる。ここで、MPM候補と隣接した方向性イントラ予測モードは、MPM候補とモード番号が隣接したイントラ予測モードを表すことができる。上述した周辺ブロック検索及び持続的なプルーニングチェックは、ビット送信率節約に利点があるが、各ブロックのMPMリスト構成に対するハードウェア作動周期の数を増加させることができる。最悪のシナリオは、3840×2160 4Kイメージがイントラ予測のために4×4サイズブロックに分割される場合がありうるし、この場合、各4×4サイズブロックに対する増加されたハードウェア作動周期は、処理量に重要に考慮されることができる。一方、インター予測にコーディングされた周辺ブロックが前記周辺ブロックのイントラ予測モードを知っている場合、前記周辺ブロックのイントラ予測モードは、MPMリスト構成のために使用されることができる。
上記のように、MPMリストを構成するにあたって、エンコード装置は、ビット率(bit rate)と歪み(distortion)とを同時に最適化することにより最上のイントラ予測モードを決定し、前記決定された最上のイントラ予測モードをビットストリームとしてコーディングすることができる。デコード装置は、ビットストリームに含まれたイントラ予測モードをパーシング(デコード)し、パーシングされたイントラ予測モードに基づいてイントラ予測を行うことができる。しかし、イントラ予測モードの数が増加されるにつれてシグナリングオーバーヘッドを最小化するために、効率的なイントラモードコーディングを必要とする。エンコード装置及びデコード装置の両方でコーディングされたブロックの周辺イントラ予測モードを使用してMPMリストを構成し、このとき、最上のイントラ予測モードがMPMリスト内の候補のうち1つであるとき、MPMインデックスをシグナリングすることによりオーバーヘッドを最小化できる。MPMリストの長さとMPMリストの構成方法は、アルゴリズムによって変わることができる。
ただし、67個のイントラ予測モードがイントラ予測に使用される場合、既存の3個のMPM候補を含むMPMリストは、複数のイントラ予測モードの多様性を表すには十分でない場合がある。また、周辺ブロック検索及びプルーニングチェック過程を含む6MPMリスト構成方案は、あまりに複雑であって、処理量に影響を及ぼす可能性がある。これにより、本文書の実施形態は、複雑性とコーディング効率との間の適切な均衡を有する効率的なMPMリスト構成方案を提案する。
図12及び図13は、現在ブロックに対するMPMリストを構成する方法を概略的に示すフローチャートである。
図12及び図13に示すように、k個のMPM候補を含む現在ブロックに対するMPMリストが構成され得る。ここで、kは、MPMリストの長さ、すなわち、MPMリストに含まれるMPM候補の個数を表すことができる。図12及び図13に開示された実施形態によれば、5個の条件に基づいて5個の効率的なMPMリスト(MPMリスト1~MPMリスト5)を構成できる。すなわち、5個の条件に基づいて5個のMPMリストのうち1つが現在ブロックに対するMPMリストとして導出されることができる。MPMリストは、図12に示されたように独立的なリストであることができ、または、図13に示されたように部分的に共有される部分を有するリストであることもできる。図13のように、共有される部分的なリストが使用されれば、複製プロセス(duplication process)を避けることができる。5個の条件は、全ての条件の確率の合計が1になるようにモデリングされることができる。
図14は、現在ブロックに対するMPMリストを構成する方法の一実施形態を示すフローチャートである。
図14では、現在ブロックの周辺に位置した周辺ブロックに基づいてk個のMPM候補を含む現在ブロックに対するMPMリストを効率的に構成する方法を例示的に示したものである。例えば、kは、6でありうるし、5個の効率的なリストのうち、現在ブロックに対するMPMリストを構成するために5個の条件が使用され得る。図14において、Lは、上述した図11に示された周辺ブロックBのイントラ予測モードを表すことができ、Aは、上述した図11に示された周辺ブロックDのイントラ予測モードを表すことができる。または、それとは逆に、Lは、上述した図11に示された周辺ブロックDのイントラ予測モードを表すことができ、Aは、上述した図11に示された周辺ブロックBのイントラ予測モードを表すことができる。図14において、「!」シンボルは、論理否定演算子であって、真でない値を真値に、またはその反対に変換する「not」演算子と称されることができる。例えば、!7で表記されたものは0値を表し、!0で表記されたものは1値を表すことができる。
図14に示すように、エンコード/デコード装置は、L及びAが同じであるか否かを判断する条件1をチェックできる(S1400)。すなわち、エンコード/デコード装置は、L及びAが同じイントラ予測モードであるか否かを判断できる。条件1は、「L==A」であるかを判断する条件でありうる。
L及びAが同じイントラ予測モードである場合(すなわち、条件1を満たす場合)、エンコード/デコード装置は、L(または、A)が方向性イントラ予測モードであるか否かを判断する条件2をチェックできる(S1405)。すなわち、エンコード/デコード装置は、L及びAが同一であり、L(または、A)のモード番号がDCモードのモード番号より大きいか否かを判断できる。条件2は、「L>DC_idx」であるかを判断する条件でありうる。
条件2を満たす場合、エンコード/デコード装置は、MPMリスト1を現在ブロックに対するMPMリストとして導出することができる(S1410)。条件2を満たさない場合、エンコード/デコード装置は、MPMリスト2を現在ブロックに対するMPMリストとして導出することができる(S1415)。
ここで、MPMリスト1は、次の表2のように構成されることができ、MPMリスト2は、次の表3のように構成されることができる。
前記表2及び表3を参照すれば、MPMリスト1は、前記表2のように、第1のMPM候補(mpm[0])ないし第6MPM候補(mpm[5])を含むことができ、MPMリスト2は、前記表3のように、第1のMPM候補(mpm[0])ないし第6MPM候補(mpm[5])を含むことができる。ここで、第1のないし第6MPM候補は、各々MPMインデックス値0~5により指示されるイントラ予測モード(すなわち、モード番号)を表すことができる。例えば、第1のMPM候補は、mpm[0]に割り当てられたイントラ予測モードを表すものであって、MPMインデックスの値0により指示されることができる。
L及びAが同じイントラ予測モードでない場合(すなわち、条件1を満たさない場合)、エンコード/デコード装置は、部分的に共有されるMPMリスト1を導出できる(S1420)。
ここで、部分的に共有されるMPMリスト1は、次の表4のように構成されることができる。
前記表4を参照すれば、部分的に共有されるMPMリスト1は、Lを表す第1のMPM候補(mpm[0])及びAを表す第2のMPM候補(mpm[1])を含むことができる。すなわち、L及びAが同一でない場合、エンコード/デコード装置は、先にL及びAをMPMリスト内に追加することができる。したがって、後述するMPMリスト3、4、5は、前記表4のように、第1のMPM候補(mpm[0])及び第2のMPM候補(mpm[1])を部分的に含んで構成されることができる。ここで、第1のMPM候補(mpm[0])及び第2のMPM候補(mpm[1])を導出するにあたって、LとAとの間のモード番号のサイズを比較し、MPMインデックス順序を決めることができる。例えば、前記表4を参照すれば、LがAよりモード番号が大きい場合、Lを指示するmax_idx値を0に設定することができ、Aを指示するmin_idx値を1に設定することができる。LがAよりモード番号が小さい場合、max_idxとmin_idx値を前記と反対に設定することができる。
次に、エンコード/デコード装置は、L及びAが共に方向性イントラ予測モードであるか否かを判断する条件3をチェックできる(S1425)。すなわち、エンコード/デコード装置は、L及びAが同一でなく、L及びAのモード番号がDCモード番号より大きいか否かを判断できる。条件3は、「L>DC_idx AND A>DC_idx」であるかを判断する条件でありうる。
L及びAが共にDCモードより大きいモード番号である場合(すなわち、条件3を満たす場合)、エンコード/デコード装置は、部分的に共有されるMPMリスト2を導出できる(S1440)。
ここで、部分的に共有されるMPMリスト2は、次の表5のように構成されることができる。
前記表5を参照すれば、部分的に共有されるMPMリスト2は、プラナーモードを表す第3MPM候補(mpm[2])及びDCモードを表す第4MPM候補(mpm[3])を含むことができる。すなわち、条件3を満たすということは、L及びAが共に方向性イントラ予測モードであるから、エンコード/デコード装置は、前記表4で説明した部分的に共有されるMPMリスト1に含まれた第1のMPM候補(mpm[0]=L)及び第2のMPM候補(mpm[1]=A)の次に、方向性イントラ予測モードでないプラナーモード及びDCモードを第3MPM候補(mpm[2])及び第4MPM候補(mpm[3])としてMPMリスト内に追加することができる。したがって、後述するMPMリスト4、5は、前記表4のような第1のMPM候補(mpm[0])及び第2のMPM候補(mpm[1])とともに、前記表5のような第3MPM候補(mpm[2])及び第4MPM候補(mpm[3])を部分的に含んで構成されることができる。
次に、エンコード/デコード装置は、Lのモード番号とAのモード番号との間の差が64でもなく、1でもないかの可否を判断する条件4をチェックできる(S1445)。条件4は、「diff!=64 AND diff !=1」であるかを判断する条件でありうる。
例えば、Lのモード番号とAのモード番号との間の差(diff)は、前記表5に表れた数式のように計算されることができる。ここで、diffは、Lのモード番号とAのモード番号のうち、大きい値から小さい値を引いた結果でありうる。
このとき、条件4を満たす場合、エンコード/デコード装置は、MPMリスト5を現在ブロックに対するMPMリストとして導出することができる(S1455)。条件4を満たさない場合、エンコード/デコード装置は、MPMリスト4を現在ブロックに対するMPMリストとして導出することができる(S1450)。
ここで、MPMリスト4は、次の表6のように構成されることができ、MPMリスト5は、次の表7のように構成されることができる。
前記表6のMPMリスト4及び前記表7のMPMリスト5の各々は、前記表4及び前記表5で説明した第1のないし第4MPM候補(mpm[0]~mpm[3])とともに、第5MPM候補(mpm[4])及び第6MPM候補(mpm[5])を含んで構成されることができる。
一方、ステップS1425において、L及びAのうち、少なくとも1つが非方向性イントラ予測モードである場合(すなわち、条件3を満たさない場合)、エンコード/デコード装置は、L及びAのうち、いずれか1つのみ非方向性イントラ予測モードであるか否かを判断する条件5をチェックできる(S1430)。すなわち、エンコード/デコード装置は、L及びAのうち、少なくとも1つがDCモード番号以下であり、Lのモード番号とAのモード番号の合計が2以上であるか否かを判断できる。条件5は、「L+A>=2」であるかを判断する条件でありうる。
Lのモード番号とAのモード番号との合計が2以上である場合(すなわち、条件5を満たす場合)、エンコード/デコード装置は、MPMリスト3を現在ブロックに対するMPMリストとして導出することができる(S1435)。
ここで、MPMリスト3は、次の表8のように構成されることができる。
前記表8を参照すれば、MPMリスト3は、前記表4で説明した第1のMPM候補(mpm[0])及び第2のMPM候補(mpm[1])とともに、第3ないし第6MPM候補(mpm[2]~mpm[5])を含んで構成されることができる。ここで、条件5を満たすということは、L及びAのうち、いずれか1つは、方向性予測モードであり、残りの1つは、非方向性予測モードであるということを意味できる。したがって、MPMリスト3は、第1の及び第2のMPM候補の次に、第3MPM候補(mpm[2])として非方向性予測モードを含むことができる。例えば、L及びAのうち、非方向性モードであるいずれか1つがプラナーモードであれば、第3MPM候補(mpm[2])はDCモードとして導出され、または、L及びAのうち、非方向性モードであるいずれか1つがDCモードであれば、第3MPM候補(mpm[2])はプラナーモードとして導出されることができる。
Lのモード番号とAのモード番号との合計が2以上でない場合(すなわち、条件5を満たさない場合)、エンコード/デコード装置は、MPMリスト2を現在ブロックに対するMPMリストとして導出することができる(S1415)。この場合、L及びAは共に非方向性予測モードでありうる。
ここで、MPMリスト2は、前記表3のとおりでありうる。前記表3を参照すれば、L及びAが共に非方向性予測モードであるから、MPMリスト2は、第1のMPM候補(mpm[0])及び第2のMPM候補(mpm[1])として各々プラナーモード及びDCモードを導出できる。残りの第3ないし第6MPM候補(mpm[2]~mpm[5])は、表3に表れたとおりに導出されることができる。
前記表2ないし表8において、(方向性イントラ予測モード+1)、(方向性イントラ予測モード-1)、(方向性イントラ予測モード+2)、(方向性イントラ予測モード-2)などは、数学的に値を加えるか、引くものでありうる。しかし、一部の場合には、単純に数学的に計算されないことがある。例えば、方向性イントラ予測モードを加減することにより、周辺イントラ予測モードの一貫性が維持されない非方向性イントラ予測モードになることができ、または、最大利用可能なイントラ予測モードインデックスを超過することもできる。例えば、方向性イントラ予測モードから1を引いた値は、DCインデックス(DCモード)を表すイントラモード1に導出されることができる。66番の方向性イントラ予測モードに1を加えると67になるので、最大利用可能なイントラモードのインデックス66を超過することになる。したがって、次のように、モジュラー算術式(modular arithmetic;%で表記される)を使用してモードを加減する演算は制限されることができる。すなわち、一貫性が維持されない非方向性イントラ予測モードを表す値が導出されたり、最大利用可能なイントラモードインデックスを超過する値が導出されることを防止できる。例えば、モジュラー算術式を使用してモードを加えること(adding)及び引くこと(subtracting)は、次の表9のように導出されることができる。
上述した実施形態におけるMPMリストを構成する方法は、エンコード/デコード装置で行われることができる。このとき、MPMリストを構成するにあたって、エンコード装置は、現在ブロックに適用される最適のイントラ予測モードを導出し、導出された最適のイントラ予測モードが上述した実施形態のような方式で構成されたMPM候補を含むMPMリスト内に属するかを判断できる。仮に、現在ブロックのイントラ予測モードがMPM候補を含むMPMリスト内に属する場合、エンコード装置は、MPMフラグとMPMインデックスをエンコードできる。ここで、MPMフラグは、現在ブロックのイントラ予測モードがMPMリスト(すなわち、MPM候補)内に属するか否かを指示できる。MPMインデックスは、MPMリスト内に含まれたMPM候補のうち、現在ブロックのイントラ予測モードとしていかなるMPMモードが適用されるかを表すことができる。それに対し、現在ブロックのイントラ予測モードがMPM候補を含むMPMリスト内に属しない場合、エンコード装置は、現在ブロックのイントラ予測モードをエンコードできる。
デコード装置は、エンコード装置と同様に、上述した実施形態のような方式を適用してMPMリストを構成できる。そして、デコード装置は、エンコード装置からMPMフラグを受信し、これを用いて現在ブロックに適用されるイントラ予測モードがMPMリスト(すなわち、MPM候補)内に含まれるか否かを確認できる。現在ブロックに適用されるイントラ予測モードがMPMリスト(すなわち、MPM候補)内に含まれる場合、デコード装置は、エンコード装置から受信したMPMインデックスを用いて現在ブロックに適用されるイントラ予測モードを導くことができる。それに対し、現在ブロックに適用されるイントラ予測モードがMPMリスト(すなわち、MPM候補)内に含まれない場合、デコード装置は、MPM候補を除いた残りの予測モードのうち、特定予測モードを指示する予測モードインデックス(または、残余予測モードインデックス;リメイニングモード情報)を利用して現在ブロックに適用されるイントラ予測モードを導くことができる。
以下では、3個のMPM候補を含むMPMリストと比較して類似した複雑度を有する拡張されたMPMリストを構成する方法を提案する。拡張されたMPMリストは、3個以上のMPM候補を含むことをいい、例えば、3個、4個、5個、または6個のMPM候補を含むことができる。後述する提案方法では、2個の周辺イントラ予測モード(左側周辺イントラ予測モード及び上側周辺イントラ予測モード)を使用して6個のMPM候補を含むMPMリストを生成する実施形態を説明する。ここで、左側周辺イントラ予測モード(LEFT)は、上述した図11において周辺ブロックDのイントラ予測モードを表すことができ、上側周辺イントラ予測モード(ABOVE)は、上述した図11において周辺ブロックBのイントラ予測モードを表すことができる。
MPMリストを構成するにあたって、3個のMPM候補を使用することは、単純性と処理量に利点があるためである。しかし、既存の6個のMPM候補を使用する方式は、様々な周辺ブロックの位置を検索する過程と持続的なプルーニング過程、MPMリスト生成のための各ステップ、ラインバッファ要求事項、及びパーシング従属性を含むので、複雑度が増加することができる。したがって、3個のMPM候補を使用する方式のように、6個のMPM候補を使用するのにおいても、複雑度及び処理量に利点を得ることができる方案を提案する。
一実施形態として、次の表10のようなアルゴリズム(すなわち、pseudo code)によってMPMリストを構成できる。
前記表10を参照すれば、周辺イントラ予測モードであるLEFT及びABOVEに基づいて現在ブロックのMPMリストが生成され得る。ここで、LEFTは、上述した図11において周辺ブロックDのイントラ予測モードを表すことができ、ABOVEは、上述した図11において周辺ブロックBのイントラ予測モードを表すことができる。また、周辺ブロックDは、現在ブロックの左側に隣接した左側周辺ブロックのうち、最下側に位置する左側周辺ブロックを表すことができ、周辺ブロックBは、現在ブロックの上側に隣接した周辺ブロックのうち、最右側に位置する上側周辺ブロックを表すことができる。
具体的に、LEFT及びABOVEのイントラ予測モードが導出され得る。そして、LEFT及びABOVEのイントラ予測モードに基づいて現在ブロックのMPMリスト(すなわち、MPM候補)がMPM_ordering_0に設定され得る。このとき、LEFT及びABOVEが同一であり、LEFTのモード番号がDCモードより大きいか、同じ場合、現在ブロックのMPMリスト(すなわち、MPM候補)がMPM_ordering_1に設定され得る。または、LEFT及びABOVEが同一でなく、LEFTのモード番号がDCモードより大きく、ABOVEのモード番号がDCモードより大きい場合、現在ブロックのMPMリスト(すなわち、MPM候補)がMPM_ordering_2に設定され得る。または、LEFT及びABOVEが同一でなく、LEFTのモード番号とABOVEのモード番号のうち、少なくとも1つがDCモードより大きくなく、LEFTのモード番号とABOVEのモード番号との合計がDCモードより大きい場合、現在ブロックのMPMリスト(すなわち、MPM候補)がMPM_ordering_3に設定され得る。
ここで、MPM_ordering_0、MPM_ordering_1、MPM_ordering_2、MPM_ordering_3は、上述した図12~図14において説明したように、予め決められた順序にしたがってMPM候補を含むように構成されたものでありうる。
また、上記のように導出されたMPM候補を除いた残りのイントラ予測モードのうち1つが現在ブロックに適用されるイントラ予測モードである場合、リメイニングモード情報に基づいて現在ブロックのMPMコーディングを行うことができる。このようなリメイニングモード情報は、truncated binaryコーディングを適用してエンコード/デコードされることができる。
他の実施形態として、次の表11のようなアルゴリズム(すなわち、スペック;spec)によってMPMリストを構成できる。
前記表11を参照すれば、現在ブロックの周辺ブロックに基づいて候補イントラ予測モードが導出され得るし、候補イントラ予測モードに基づいて現在ブロックに対するMPMリストが構成され得る。候補イントラ予測モードは、候補イントラ予測モードA及び候補イントラ予測モードBを含むことができる。
例えば、後述する条件のうち、少なくとも1つの条件が真(true)である場合(すなわち、後述する条件のうち、少なくとも1つの条件が満たされる場合、候補イントラ予測モードAは、プラナーイントラ予測モードに設定されることができる。
・周辺ブロックAが可用でない
・周辺ブロックAにイントラ予測が適用されない
ここで、周辺ブロックAは、現在ブロックの左側周辺ブロックでありうる。左側周辺ブロックは、現在ブロックに隣接した左側周辺ブロックのうち、最下側に位置する左側周辺ブロックでありうる。例えば、現在ブロックのサイズがcbWidth×cbHeightであり、現在ブロックの左上端(top-left)サンプルポジションのx成分がxCb及びy成分がyCbである場合、周辺ブロックAは、(xCb-1、yCb+cbHeight-1)左標のサンプルを含むブロックでありうる。一方、前記周辺ブロックAは、上述した図11の周辺ブロックDを表すことができる。
前記条件が全て真でない場合(すなわち、前記条件が全て満たされない場合)、候補イントラ予測モードAは、周辺ブロックAのイントラ予測モードに設定されることができる。
また、例えば、後述する条件のうち、少なくとも1つの条件が真(true)である場合(すなわち、後述する条件のうち、少なくとも1つの条件が満たされる場合、候補イントラ予測モードBは、プラナーイントラ予測モードに設定されることができる。
・周辺ブロックBが可用でない
・周辺ブロックBにイントラ予測が適用されない
・yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい
ここで、周辺ブロックBは、現在ブロックの上側周辺ブロックでありうる。上側周辺ブロックは、現在ブロックに隣接した上側周辺ブロックのうち、最右側に位置する上側周辺ブロックでありうる。例えば、現在ブロックのサイズがcbWidth×cbHeightであり、現在ブロックの左上端(top-left)サンプルポジションのx成分がxCb及びy成分がyCbである場合、周辺ブロックBは、(xCb+cbWidth-1、yCb-1)左標のサンプルを含むブロックでありうる。一方、CtbLog2SizeYは、現在CTUのサイズを表すことができ、((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)は、現在CTUの上側境界の左標を表すことができる。すなわち、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)より小さい場合は、周辺ブロックBが現在CTUの範囲を外れる場合を表すことができる。すなわち、上述した条件は、周辺ブロックBが前記現在CTUの範囲を外れる場合を表すことができる。
前記条件が全て真でない場合(すなわち、前記条件が全て満たされない場合)、候補イントラ予測モードBは、周辺ブロックBのイントラ予測モードに設定されることができる。
候補イントラ予測モードが導出された場合、現在ブロックのMPMリストは、第1のMPMリストのように構成されることができる。第1のMPMリストは、候補イントラ予測モードAを表す第1のMPM候補、候補イントラ予測モードAを論理否定演算子で演算した値のイントラ予測モードを表す第2のMPM候補、50番のイントラ予測モードを表す第3MPM候補、18番のイントラ予測モードを表す第4MPM候補、46番のイントラ予測モードを表す第5MPM候補、54番のイントラ予測モードを表す第6MPM候補で構成されることができる。
その後、候補イントラ予測モードBと候補イントラ予測モードAとが同じであるか判断されることができる。
このとき、候補イントラ予測モードBと候補イントラ予測モードAとが同じ場合、候補イントラ予測モードAが1より大きいか判断されることができる。仮に、候補イントラ予測モードAが1より大きい場合、現在ブロックのMPMリストは、第2のMPMリストのように構成されることができる。第2のMPMリストは、候補イントラ予測モードAを表す第1のMPM候補、プラナーイントラ予測モードを表す第2のMPM候補、DCイントラ予測モードを表す第3MPM候補、2+((candIntraPredModeA+62)%65)として導出されるイントラ予測モードを表す第4MPM候補、2+((candIntraPredModeA-1)%65)として導出されるイントラ予測モードを表す第5MPM候補、2+((candIntraPredModeA+61)%65)として導出されるイントラ予測モードを表す第6MPM候補で構成されることができる。
それとも、候補イントラ予測モードBと候補イントラ予測モードAとが同一でない場合、まず、現在ブロックの第1のMPM候補及び第2のMPM候補が導出され得る。第1のMPM候補は、候補イントラ予測モードA、第2のMPM候補は、候補イントラ予測モードBとして導出されることができる。そして、biggerIdxが設定され得る。第1のMPM候補が第2のMPM候補より大きい場合、biggerIdxは0として導出されることができ、第1のMPM候補が第2のMPM候補より大きくない場合、biggerIdxは1として導出されることができる。
次に、候補イントラ予測モードA及び候補イントラ予測モードBが1より大きいか判断されることができる(すなわち、候補イントラ予測モードAのモード番号及び候補イントラ予測モードBのモード番号が1より大きいか判断されることができる)。このとき、候補イントラ予測モードA及び候補イントラ予測モードBが1より大きい場合、現在ブロックの第3MPM候補及び第4MPM候補が導出され得る。第3MPM候補は、プラナーイントラ予測モード、第4MPM候補は、DCイントラ予測モードとして導出されることができる。
次に、biggerIdxの値を有するMPMインデックスが指すMPM候補とbiggerIdxを論理否定演算子で演算した値(すなわち、!biggerIdx)を有するMPMインデックスが指すMPM候補との差分(diff)が64でもなく、1でもないかの可否が判断され得る。
前記差分が64でもなく、1でもない場合、現在ブロックの第5MPM候補及び第6MPM候補が導出され得る。第5MPM候補は、2+((candModeList[biggerIdx]+62)%65)として導出されるイントラ予測モード、第6MPM候補は、2+((candModeList[biggerIdx]-1)%65)として導出されるイントラ予測モードとして導出されることができる。
それとも、前記差分が64または1である場合、現在ブロックの第5MPM候補及び第6MPM候補が導出され得る。第5MPM候補は、2+((candModeList[biggerIdx]+61)%65)として導出されるイントラ予測モード、第6MPM候補は、2+(candModeList[biggerIdx]%65)として導出されるイントラ予測モードとして導出されることができる。
一方、候補イントラ予測モードAと候補イントラ予測モードBとの合計が2より大きいか、同じ場合、現在ブロックの第3MPM候補、第4MPM候補、第5MPM候補、及び第6MPM候補が導出され得る。第3MPM候補は、biggerIdxを論理否定演算子で演算した値(すなわち、!biggerIdx)を有するMPMインデックスが指すMPM候補を論理否定演算子で演算した値として導出されるイントラ予測モード、第4MPM候補は、2+((candModeList[biggerIdx]+62)%65)として導出されるイントラ予測モード、第5MPM候補は、2+((candModeList[biggerIdx]-1)%65)として導出されるイントラ予測モードとして導出されることができ、第6MPM候補は、2+((candModeList[biggerIdx]+61)%65)として導出されるイントラ予測モードとして導出されることができる。
上記のように導出されたMPM候補を含むMPMリストに基づいて現在ブロックに対するイントラ予測モードを導出でき、導出されたイントラ予測モードに基づき、現在ブロックの予測を行って予測されたサンプルを生成できる。
このとき、現在ブロックに対するイントラ予測モードを導出するにあたって、MPMフラグ(例:前記表11のintra_luma_mpm_flag)が1である場合、上記のように導出されたMPM候補のうち、MPMインデックス(例:前記表11のintra_luma_mpm_idx)が指すMPM候補を現在ブロックのイントラ予測モードとして導出することができる。または、MPMフラグ(例:前記表11のintra_luma_mpm_flag)が0である場合、上記のように導出されたMPM候補を除いた残りのイントラ予測モードのうち1つを指すリメイニングモード(例:前記表11のintra_luma_mpm_remainder)に基づいて現在ブロックのイントラ予測モードとして導出することができる。
上述したように、現在ブロックに対するイントラ予測モード情報は、シンタックス要素の値にコーディングされてシグナリングされることができる。ここで、イントラ予測モード情報とは、現在ブロックに対するイントラ予測のために必要な情報であって、上述したMPMフラグ、MPMインデックス、リメイニングモードなどを含むことができる。イントラ予測モード情報をコーディングするにあたって、各シンタックス要素によって様々な2値化(binarization)過程が適用され得る。
ここで、2値化は、シンタックス要素の全ての可能な値に対するビンストリング(bin string)のセットを意味できる。また、2値化過程は、シンタックス要素の全ての可能な値をビンストリングのセットに固有にマッピングさせる手順を意味できる。ビンは、一桁の2進数を意味でき、例えば「0」、「1」の各々を1つのビンということができる。ビンストリングは、ビンで構成される2進シーケンスを意味でき、例えば、「01」のように連続した2進数でありうる。
一実施形態として、イントラ予測モード情報のシンタックス要素及びこれに対応する2値化は、次の表12のとおりでありうる。
前記表12を参照すれば、MPMフラグを表す「intra_luma_mpm_flag」シンタックス要素は、FL(fixed-length)2値化過程が適用されてエンコード/デコードされることができる。MPMインデックスを表す「intra_luma_mpm_idx」シンタックス要素は、TR(truncated rice)2値化過程が適用されてエンコード/デコードされることができる。リメイニングモードを表す「intra_luma_mpm_remainder」シンタックス要素は、TB(Truncated Binary)2値化過程が適用されてエンコード/デコードされることができる。
本文書の実施形態によれば、上述したように、既存の35個のイントラ予測モードが拡張されて67個のイントラ予測モードが使用され得る。この場合、イントラ予測モード情報をコーディングするにあたって、リメイニングモードを表すシンタックス要素は6ビットが必要でありうる。しかし、コーディング方法(すなわち、2値化方法)によっては、リメイニングモードを表すシンタックス要素のビット数を節約することもできる。すなわち、前記表12のように、リメイニングモードを表すシンタックス要素のコーディング時にTB(Truncated Binary)2値化処理を行なうことによってビット数を節約し、コーディング効率を上げることができる。
一実施形態として、リメイニングモードを表すシンタックス要素は、次の表13のようなTB(Truncated Binary)2値化過程が行われ得る。
前記表13を参照すれば、リメイニングモードを表すシンタックス要素(intra_luma_mpm_remainder)が入力される場合、TB(Truncated Binary)コーディングに基づいてシンタックス要素(intra_luma_mpm_remainder)のTB2値化された値を出力できる。まず、シンタックス要素(intra_luma_mpm_remainder)の可能な値の範囲が決定され得るし、このシンタックス要素(intra_luma_mpm_remainder)の範囲は、0~cMaxの間でありうる。cMaxは、シンタックス要素(intra_luma_mpm_remainder)が有することができる最大値を表すことができ、1より大きいか、同じ値を有することができる。シンタックス要素(intra_luma_mpm_remainder)の値に対するTB2値化された値(TBビンストリング)が前記表13のアルゴリズムに基づいて導出され得る。例えば、前記表12においてリメイニングモードを表すシンタックス要素(intra_luma_mpm_remainder)の場合、cMaxが60であるから、このシンタックス要素(intra_luma_mpm_remainder)は、6ビットを用いて表現されることができる。ただし、前記表13のアルゴリズムのようなTBコーディングに基づいてリメイニングモードを表すシンタックス要素(intra_luma_mpm_remainder)の値を2値化コーディングする場合、シンタックス要素(intra_luma_mpm_remainder)の値に応じて6ビットより少ない数のビットを用いて2値化コーディングが行われ得る。例えば、リメイニングモードを表すシンタックス要素(intra_luma_mpm_remainder)は、そのシンタックス要素の値に応じて1ビットから5ビットまで可変的にビットを生成してTBコーディングにコーディングされることができる。
図15は、本文書の一実施形態に係り、エンコード装置によって行われることができるエンコード方法を概略的に示すフローチャートである。
図15に開示された方法は、図2において開示されたエンコード装置200によって行われることができる。具体的に、図15のステップS1500~S1520は、図2に開示された予測部220及びイントラ予測部222によって行われることができ、図15のステップS1530は、図2に開示されたエントロピーエンコード部240によって行われることができる。また、図15において開示された方法は、本明細書において上述した実施形態を含むことができる。したがって、図15では、上述した実施形態と重複する内容に関して、具体的な説明を省略したり、簡略化する。
図15に示すように、エンコード装置は、現在ブロックの周辺に位置した周辺ブロックに基づいて現在ブロックに対するMPM(Most Probable Mode)候補を導出してMPMリストを構成できる(S1500)。
ここで、周辺ブロックは、上述した図11に示された周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF、及び/又は周辺ブロックGを含むことができる。
一実施形態として、MPMリストを構成するにあたって、2個の周辺ブロックを使用でき、例えば、周辺ブロックD及び周辺ブロックBを使用できる。周辺ブロックDは、現在ブロックの左側に隣接した左側周辺ブロックのうち、最下側に位置する左側周辺ブロックを表すことができ、周辺ブロックBは、現在ブロックの上側に隣接した周辺ブロックのうち、最右側に位置する上側周辺ブロックを表すことができる。
エンコード装置は、第1の周辺ブロック(周辺ブロックD)に基づいて第1のMPM候補を導出し、第2の周辺ブロック(周辺ブロックB)に基づいて第2のMPM候補を導出できる。
例えば、第1の周辺ブロックが可用であり(available)、第1の周辺ブロックにイントラ予測(intra prediction)が適用された場合、第1のMPM候補は、第1の周辺ブロックのイントラ予測モードとして導出されることができる。第1の周辺ブロックが可用でないか、または第1の周辺ブロックにイントラ予測が適用されなかった場合、第1のMPM候補は、プラナーイントラ予測モードとして導出されることができる。
また、例えば、第2の周辺ブロックが可用であり(available)、第2の周辺ブロックにイントラ予測(intra prediction)が適用され、第2の周辺ブロックが現在CTUに含まれた場合、第2のMPM候補は、第2の周辺ブロックのイントラ予測モードとして導出されることができる。第2の周辺ブロックが可用でないか、または第2の周辺ブロックにイントラ予測が適用されないか、または第2の周辺ブロックが現在CTUに含まれなかった場合、第2のMPM候補は、プラナーイントラ予測モードとして導出されることができる。
エンコード装置は、上記のように導出された第1のMPM候補及び第2のMPM候補に基づいてMPMリストを構成できる。このとき、MPMリストの候補個数によって第1のMPM候補及び第2のMPM候補を含んで残りのMPM候補が導出され得る。上述したように、MPMリスト内に含まれる候補個数は、アルゴリズムによって相違することができ、例えば、3個、4個、5個、6個などでありうる。また、上述したように、第1の周辺ブロックから導出された第1のMPM候補及び第2の周辺ブロックから導出された第2のMPM候補に基づき、決められた条件によって追加的にMPM候補が導出され得る。
例えば、エンコード装置は、第1のMPM候補及び第2のMPM候補が同一であるか否かを判断し、第1のMPM候補または第2のMPM候補のモード番号がDCモードのモード番号より大きいか否かを判断できる。このとき、第1のMPM候補及び第2のMPM候補が同一でない場合、エンコード装置は、第1のMPM候補及び第2のMPM候補が2つともDCモードより大きいか、または2つのうち、いずれか1つがDCモードより大きいかを判断できる。また、第1のMPM候補及び第2のMPM候補が2つともDCモードより大きい場合、エンコード装置は、第1のMPM候補及び第2のMPM候補のモード番号間の差(例えば、2つの候補のモード番号差が1であるか、2または62より大きいか、同じであるかなど)に基づいて判断することができる。このように、エンコード装置は、第1のMPM候補及び第2のMPM候補に基づいて上記のような条件の満足可否によってMPMリストを異なるように構成することができる。一例として、MPMリストは、6個のMPM候補を含むことができ、この場合、上記のような条件の満足可否に基づいて第1のMPM候補及び第2のMPM候補を含んで6個のMPM候補を導出できる。このとき、6個のMPM候補は、0~5のインデックス値に対応してマッピングされることができ、インデックス値に基づいてMPMリスト内で指示されることができる。したがって、エンコード装置は、インデックス情報をシグナリングすることにより、MPMリスト内のMPM候補のうち、いずれか1つを指示できる。
上述した現在ブロックの周辺ブロックに基づき、MPM候補を導出してMPMリストを生成する過程は、1つの例示であり、コーディング効率を考慮して様々な方式でMPMリストを構成できる。また、MPMリストを生成する過程は、本文書において説明したMPMリストを構成する様々な実施形態が適用され得るし、これは、図12~図14、表1~表13を参照して詳細に説明したので、本実施形態では、説明を省略する。
エンコード装置は、現在ブロックに対するイントラ予測モードを決定できる(S1510)。
一実施形態として、エンコード装置は、現在ブロックに対して様々なイントラ予測モードを行って最適のRD(rate-distortion) costを有するイントラ予測モードを導出し、これを現在ブロックのイントラ予測モードとして決定することができる。このとき、エンコード装置は、2個の非方向性イントラ予測モードと65個のイントラ方向性予測モードとを含むイントラ予測モードに基づいて現在ブロックに対する最適のイントラ予測モードを導出できる。67個のイントラ予測モードは、前記図10を参照して上述したとおりである。
そして、エンコード装置は、現在ブロックのイントラ予測モードに関する情報を生成できる。イントラ予測モードに関する情報は、現在ブロックのイントラ予測モードを指示するための情報であって、MPMフラグ情報、MPMインデックス情報、リメイニングモード情報などを含むことができる。
一実施形態として、エンコード装置は、前記決定された現在ブロックのイントラ予測モードが前記MPMリスト内のMPM候補に含まれるか否かを判断し、判断結果にしたがってMPMフラグ情報を生成できる。例えば、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれている場合、エンコード装置は、MPMフラグ情報を1に設定することができる。または、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれていない場合、エンコード装置は、MPMフラグ情報を0に設定することができる。
また、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれている場合、エンコード装置は、MPM候補のうち、現在ブロックのためのイントラ予測モードを指示するMPMインデックス情報を生成できる。例えば、MPMリストが6個のMPM候補を含んで構成される場合、MPMインデックス情報は、0~5のインデックス値でありうる。
MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれない場合、エンコード装置は、MPM候補を除いた残りのイントラ予測モードのうち、現在ブロックのためのイントラ予測モードを指示するリメイニングモード情報を生成できる。例えば、上述したように、67個のイントラ予測モードを使用し、6個のMPM候補を含んでMPMリストを構成する場合、残りのイントラ予測モードは、全体イントラ予測モードの個数からMPM候補の個数を引いた61個のモードを含むことができる。したがって、リメイニングモード情報は、0~60のインデックス値で表すことができる。
エンコード装置は、現在ブロックに対して決定されたイントラ予測モードに基づき、イントラ予測を行って現在ブロックに対する予測サンプルを生成できる(S1520)。
一実施形態として、エンコード装置は、イントラ予測モードに基づいて現在ブロックの周辺サンプルのうち、少なくとも1つの周辺サンプルを導出でき、周辺サンプルに基づいて予測サンプルを生成できる。ここで、周辺サンプルは、現在ブロックの左上側コーナー周辺サンプル、上側周辺サンプル、及び左側周辺サンプルを含むことができる。例えば、現在ブロックのサイズがW×Hであり、現在ブロックの左上端(top-left)サンプルポジションのx成分がxN及びy成分がyNである場合、左側周辺サンプルは、p[xN-1][yN]ないしp[xN-1][2H+yN-1]、左上側コーナー周辺サンプルは、p[xN-1][yN-1]、上側周辺サンプルは、p[xN][yN-1]ないしp[2W+xN-1][yN-1]でありうる。
エンコード装置は、現在ブロックに対するイントラ予測モードに関する情報を含む画像情報をエンコードできる(S1530)。
すなわち、エンコード装置は、上述したMPMフラグ情報、MPMインデックス情報、リメイニングモード情報のうち、少なくとも1つを含むイントラ予測モードに関する情報を生成し、これらをエンコードすることができる。
上述したように、イントラ予測モードが67個に拡張されることにより、リメイニングモード情報を表すためには、より多くのビット数が必要である。これにより、コーディング効率を向上させるために、リメイニングモード情報をエンコードするにあたってTB(Truncated Binary)2値化方法を使用できる。
一実施形態として、エンコード装置は、上述したMPMフラグ情報、MPMインデックス情報、リメイニングモード情報を2値化過程に基づいてエンコードすることができる。このとき、MPMフラグ情報、MPMインデックス情報、リメイニングモード情報に対して予め決められた2値化タイプ情報に基づいて2値化過程を行うことができ、これは、上述した表12のとおりでありうる。前記表12によれば、リメイニングモード情報は、TB(Truncated Binary)2値化タイプに予め定義されている。
MPM候補は、上述したように、2個の非方向性イントラ予測モード及び65個の方向性イントラ予測モードを含む67個のイントラ予測モードに基づいて導出されることができる。したがって、リメイニングモード情報は、前記67個のイントラ予測モードからMPM候補の個数(例えば、6個)を除いた残りのイントラ予測モードに基づいて導出されるイントラ予測モードに対する指示情報をシンタックス要素(syntax element)の値で表すことができる。一例として、リメイニングモード情報を表すシンタックス要素の値は、61個のイントラ予測モードを指示するためのインデックス値(例:0~60の値)で表現されることができる。
一実施形態として、リメイニングモード情報を表すシンタックス要素の値は、上述した表13のアルゴリズムに基づいてTB(Truncated Binary)2値化過程を行うことによって導出されることができる。上述したように、リメイニングモード情報は、シンタックス要素の値で表現され、前記表12に記載されたように、リメイニングモード情報に対するシンタックス要素の値の最大範囲(cMax)は60でありうる。したがって、前記表13のアルゴリズムによれば、リメイニングモード情報を表すシンタックス要素の値がMPM候補を除いた残りのイントラ予測モードの個数(すなわち、cMax)に基づいて導かれた特定値より小さい場合、リメイニングモード情報を表すシンタックス要素の値は、TB(Truncated Binary)2値化過程に基づいて1ビットから5ビットまでの可変的ビット数を使用して導出される値でありうる。これと反対の場合、リメイニングモード情報を表すシンタックス要素の値は、TB(Truncated Binary)2値化過程に基づいて6ビットの値として導出されることができる。前記表13のように、リメイニングモード情報に対してTB(Truncated Binary)2値化過程を適用することにより、シンタックス要素の値に応じてビット数を節約できるようになる。
また、例え、図示されてはいないが、エンコード装置は、現在ブロックに対する原本サンプルと予測サンプルとに基づいて現在ブロックに対するレシデュアルサンプルを導出でき、レシデュアルサンプルに基づいて現在ブロックに対するレシデュアルに関する情報を生成できる。そして、エンコード装置は、レシデュアルに関する情報を含む画像情報をエンコードでき、ビットストリーム形態で出力することができる。
ビットストリームは、ネットワークまたは(デジタル)格納媒体を介してデコード装置に送信されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な格納媒体を含むことができる。
上述した現在ブロックに対するレシデュアルサンプルを導出する過程は、図2において開示されたエンコード装置200の減算部231によって行われることができ、レシデュアルに関する情報を生成する過程は、図2において開示されたエンコード装置200の変換部232によって行われることができ、レシデュアルに関する情報を含む画像情報をエンコードする過程は、図2において開示されたエンコード装置200のエントロピーエンコード部240によって行われることができる。
図16は、本文書の一実施形態に係り、デコード装置によって行われることができるデコード方法を概略的に示すフローチャートである。
図16に開示された方法は、図3において開示されたデコード装置300によって行われることができる。具体的に、図16のステップS1600~S1620は、図3に開示された予測部330及びイントラ予測部331によって行われることができ、図16のステップS1630は、図3に開示された加算部340によって行われることができる。また、図16のステップS1610は、図3に開示されたエントロピーデコード部310によって行われることができる。また、図16において開示された方法は、本明細書において上述した実施形態を含むことができる。したがって、図16では、上述した実施形態と重複する内容に関して具体的な説明を省略したり、簡略化する。
図16に示すように、デコード装置は、現在ブロックの周辺に位置した周辺ブロックに基づいて現在ブロックに対するMPM(Most Probable Mode)候補を導出してMPMリストを構成できる(S1600)。
ここで、周辺ブロックは、上述した図11に示された周辺ブロックA、周辺ブロックB、周辺ブロックC、周辺ブロックD、周辺ブロックE、周辺ブロックF、及び/又は周辺ブロックGを含むことができる。
一実施形態として、MPMリストを構成するにあたって、2個の周辺ブロックを使用でき、例えば、周辺ブロックD及び周辺ブロックBを使用できる。周辺ブロックDは、現在ブロックの左側に隣接した左側周辺ブロックのうち、最下側に位置する左側周辺ブロックを表すことができ、周辺ブロックBは、現在ブロックの上側に隣接した周辺ブロックのうち、最右側に位置する上側周辺ブロックを表すことができる。
デコード装置は、第1の周辺ブロック(周辺ブロックD)に基づいて第1のMPM候補を導出し、第2の周辺ブロック(周辺ブロックB)に基づいて第2のMPM候補を導出できる。
例えば、第1の周辺ブロックが可用であり(available)、第1の周辺ブロックにイントラ予測(intra prediction)が適用された場合、第1のMPM候補は、第1の周辺ブロックのイントラ予測モードとして導出されることができる。第1の周辺ブロックが可用でないか、または第1の周辺ブロックにイントラ予測が適用されなかった場合、第1のMPM候補は、プラナーイントラ予測モードとして導出されることができる。
また、例えば、第2の周辺ブロックが可用であり(available)、第2の周辺ブロックにイントラ予測(intra prediction)が適用され、第2の周辺ブロックが現在CTUに含まれた場合、第2のMPM候補は、第2の周辺ブロックのイントラ予測モードとして導出されることができる。第2の周辺ブロックが可用でないか、または第2の周辺ブロックにイントラ予測が適用されないか、または第2の周辺ブロックが現在CTUに含まれなかった場合、第2のMPM候補は、プラナーイントラ予測モードとして導出されることができる。
デコード装置は、上記のように導出された第1のMPM候補及び第2のMPM候補に基づいてMPMリストを構成できる。このとき、MPMリストの候補個数によって第1のMPM候補及び第2のMPM候補を含んで残りのMPM候補が導出され得る。上述したように、MPMリスト内に含まれる候補個数は、アルゴリズムによって相違することができ、例えば、3個、4個、5個、6個などでありうる。また、上述したように、第1の周辺ブロックから導出された第1のMPM候補及び第2の周辺ブロックから導出された第2のMPM候補に基づき、決められた条件によって追加的にMPM候補が導出され得る。
例えば、デコード装置は、第1のMPM候補及び第2のMPM候補が同一であるか否かを判断し、第1のMPM候補または第2のMPM候補のモード番号がDCモードのモード番号より大きいか否かを判断できる。このとき、第1のMPM候補及び第2のMPM候補が同一でない場合、デコード装置は、第1のMPM候補及び第2のMPM候補が2つともDCモードより大きいか、または2つのうち、いずれか1つがDCモードより大きいかを判断できる。また、第1のMPM候補及び第2のMPM候補が2つともDCモードより大きい場合、デコード装置は、第1のMPM候補及び第2のMPM候補のモード番号間の差(例えば、2つの候補のモード番号差が1であるか、2または62より大きいか、同じであるかなど)に基づいて判断することができる。このように、デコード装置は、第1のMPM候補及び第2のMPM候補に基づいて上記のような条件の満足可否によってMPMリストを異なるように構成することができる。一例として、MPMリストは、6個のMPM候補を含むことができ、この場合、上記のような条件の満足可否に基づいて第1のMPM候補及び第2のMPM候補を含んで6個のMPM候補を導出できる。このとき、6個のMPM候補は、0~5のインデックス値に対応してマッピングされることができ、インデックス値に基づいてMPMリスト内で指示されることができる。したがって、デコード装置は、エンコード装置からシグナリングされたインデックス情報に基づいてMPMリスト内のMPM候補のうち、どの候補を指示するか判断することができる。
上述した現在ブロックの周辺ブロックに基づき、MPM候補を導出してMPMリストを生成する過程は、1つの例示であり、コーディング効率を考慮して様々な方式でMPMリストを構成できる。また、MPMリストを生成する過程は、本文書において説明したMPMリストを構成する様々な実施形態が適用され得るし、これは、図12~図14、表1~表13を参照して詳細に説明したので、本実施形態では、説明を省略する。
デコード装置は、前記MPMリストに基づいて現在ブロックに対するイントラ予測モードを導出できる(S1610)。
一実施形態として、デコード装置は、ビットストリームから現在ブロックに対するイントラ予測モードに関する情報を取得できる。イントラ予測モードに関する情報は、現在ブロックのイントラ予測モードを指示するための情報であって、MPMフラグ情報、MPMインデックス情報、リメイニングモード情報などを含むことができる。
まず、デコード装置は、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれているか否かを表すMPMフラグ情報を取得できる。そして、デコード装置は、MPMフラグ情報に基づいてMPMインデックス情報またはリメイニングモード情報を取得できる。
例えば、MPMフラグ情報が1を表す場合、デコード装置は、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれていることと判断することができ、この場合、MPM候補のうち、現在ブロックのためのイントラ予測モードを指示するMPMインデックス情報を取得できる。デコード装置は、MPMリスト内でMPMインデックス情報が指示するMPM候補を現在ブロックに対するイントラ予測モードとして導出することができる。
MPMフラグ情報が0を表す場合、デコード装置は、MPMリスト内のMPM候補のうち、現在ブロックのためのイントラ予測モードが含まれていないことと判断することができ、この場合、MPM候補を除いた残りのイントラ予測モードのうち、現在ブロックのためのイントラ予測モードを指示するリメイニングモード情報を取得できる。デコード装置は、リメイニングモード情報が指示するイントラ予測モードを現在ブロックに対するイントラ予測モードとして導出することができる。
上述したように、イントラ予測モードが67個に拡張されることにより、リメイニングモード情報を表すためには、より多くのビット数が必要である。これにより、コーディング効率を向上させるために、リメイニングモード情報は、TB(Truncated Binary)2値化方法に基づいてデコードされることにより取得されることができる。
一実施形態として、デコード装置は、上述したMPMフラグ情報、MPMインデックス情報、リメイニングモード情報を2値化過程に基づいてデコードすることができる。このとき、MPMフラグ情報、MPMインデックス情報、リメイニングモード情報に対して予め決められた2値化タイプ情報に基づいて2値化過程を行うことができ、これは、上述した表12のとおりでありうる。前記表12によれば、リメイニングモード情報は、TB(Truncated Binary)2値化タイプに予め定義されている。
MPM候補は、上述したように、2個の非方向性イントラ予測モード及び65個の方向性イントラ予測モードを含む67個のイントラ予測モードに基づいて導出されることができる。したがって、リメイニングモード情報は、前記67個のイントラ予測モードからMPM候補の個数(例えば、6個)を除いた残りのイントラ予測モードに基づいて導出されるイントラ予測モードに対する指示情報をシンタックス要素(syntax element)の値で表すことができる。一例として、リメイニングモード情報を表すシンタックス要素の値は、61個のイントラ予測モードを指示するためのインデックス値(例:0~60の値)で表現されることができる。
一実施形態として、リメイニングモード情報を表すシンタックス要素の値は、上述した表13のアルゴリズムに基づいてTB(Truncated Binary)2値化過程を行うことによって導出されることができる。上述したように、リメイニングモード情報は、シンタックス要素の値で表現され、前記表12に記載されたように、リメイニングモード情報に対するシンタックス要素の値の最大範囲(cMax)は60でありうる。したがって、前記表13のアルゴリズムによれば、リメイニングモード情報を表すシンタックス要素の値がMPM候補を除いた残りのイントラ予測モードの個数(すなわち、cMax)に基づいて導かれた特定値より小さい場合、リメイニングモード情報を表すシンタックス要素の値は、TB(Truncated Binary)2値化過程に基づいて1ビットから5ビットまでの可変的ビット数を使用して導出される値でありうる。これと反対の場合、リメイニングモード情報を表すシンタックス要素の値は、TB(Truncated Binary)2値化過程に基づいて6ビットの値として導出されることができる。前記表13のように、リメイニングモード情報に対してTB(Truncated Binary)2値化過程を適用することにより、シンタックス要素の値に応じてビット数を節約できるようになる。
デコード装置は、現在ブロックに対して導出されたイントラ予測モードに基づき、イントラ予測を行って現在ブロックに対する予測サンプルを生成できる(S1620)。
一実施形態として、デコード装置は、イントラ予測モードに基づいて現在ブロックの周辺サンプルのうち、少なくとも1つの周辺サンプルを導出でき、周辺サンプルに基づいて予測サンプルを生成できる。ここで、周辺サンプルは、現在ブロックの左上側コーナー周辺サンプル、上側周辺サンプル、及び左側周辺サンプルを含むことができる。例えば、現在ブロックのサイズがW×Hであり、現在ブロックの左上端(top-left)サンプルポジションのx成分がxN及びy成分がyNである場合、左側周辺サンプルは、p[xN-1][yN]ないしp[xN-1][2H+yN-1]、左上側コーナー周辺サンプルは、p[xN-1][yN-1]、上側周辺サンプルは、p[xN][yN-1]ないしp[2W+xN-1][yN-1]でありうる。
デコード装置は、予測サンプルに基づいて現在ブロックに対する復元ピクチャを生成できる(S1630)。
一実施形態として、デコード装置は、予測モードによって予測サンプルをそのまま復元サンプルとして用いることができ、または、前記予測サンプルにレシデュアルサンプルを加えて復元サンプルを生成することもできる。
デコード装置は、現在ブロックに対するレシデュアルサンプルが存在する場合、現在ブロックに対するレシデュアルに関する情報を受信できる。レシデュアルに関する情報は、レシデュアルサンプルに関する変換係数を含むことができる。デコード装置は、レシデュアル情報に基づいて現在ブロックに対するレシデュアルサンプル(または、レシデュアルサンプルアレイ)を導出できる。デコード装置は、予測サンプルとレシデュアルサンプルとに基づいて復元サンプルを生成でき、前記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出できる。その後、デコード装置は、必要に応じて主観的/客観的画質を向上させるために、デブロッキングフィルタリング及び/又はSAO手順のようなインループフィルタリング手順を前記復元ピクチャに適用できることは上述したとおりである。
上述した実施形態において、方法等は、一連のステップまたはブロックとして順序図を基に説明されているが、本文書の実施形態は、ステップ等の順序に限定されるものではなく、あるステップは、上述と異なるステップと異なる順序でまたは同時に発生することができる。また、当業者であれば、順序図に示されたステップが排他的でなく、他のステップが含まれるか、順序図の1つまたはそれ以上のステップが本文書の範囲に影響を及ぼさずに削除され得ることが理解できるであろう。
上述した本文書に係る方法は、ソフトウェア形態で実現されることができ、本文書に係るエンコード装置及び/又はデコード装置は、例えば、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、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介しての送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納されるか、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、前記プログラムコードは、本文書の実施形態によってコンピュータで行われることができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に格納されることができる。
図17は、本文書において開示された実施形態が適用され得るコンテンツストリーミングシステムの例を示す。
図17に示すように、本文書の実施形態に適用されるコンテンツストリーミングシステムは、大別して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されることができる。
前記ビットストリームは、本文書の実施形態に適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納できる。
前記ストリーミングサーバは、ウェブサーバを介してのユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにいかなるサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに望みのサービスを要請すれば、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/又はエンコードサーバからコンテンツを受信できる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがありうる。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。