本文書は、様々な変更を加えることができ、種々の実施形態を有することができ、特定実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書で常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つもしくは複数の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立して図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで実現されることを意味するものではない。例えば、各構成のうち、2つ以上の構成が結合されて1つの構成をなすこともでき、1つの構成を複数の構成に分けることもできる。各構成が統合および/または分離された実施形態も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
以下、添付の図面を参照して、本文書の好ましい実施形態をより詳細に説明する。以下、図面上の同一の構成要素に対しては同一の参照符号を使用し、同一の構成要素について重複する説明は省略する。
この文書は、ビデオ/画像コーディングに関する。例えば、この文書において開示された方法/実施形態は、VVC(Versatile Video Coding)標準(ITU-T Rec.H.266)、VVC以後の次世代ビデオ/イメージコーディング標準、またはそれ以外のビデオコーディング関連標準(例えば、HEVC(High Efficiency Video Coding)標準(ITU-T Rec.H.265)、EVC(Essential Video Coding)標準、AVS2標準など)に関連する。
この文書では、ビデオ/画像コーディングに関する様々な実施形態を提示し、他の言及がない限り、上記実施形態は、互いに組み合わせて実行されることもできる。
この文書においてビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味し得る。ピクチャ(picture)は、一般に特定の時間帯の1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つまたは複数のCTU(Coding Tree Unit)を含んでもよい。1つのピクチャは、1つまたは複数のスライス/タイルで構成されてもよい。1つのピクチャは、1つまたは複数のタイルグループで構成されてもよい。1つのタイルグループは、1つまたは複数のタイルを含んでもよい。
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味し得る。また、ピクセルに対応する用語として「サンプル(sample)」が使用されてもよい。サンプルは、一般的にピクセルまたはピクセルの値を示し、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。あるいは、サンプルは、空間領域(ドメイン)におけるピクセル値を意味することもでき、このようなピクセル値が周波数領域に変換される場合、周波数領域における変換係数を意味することもできる。
ユニット(unit)は、画像処理の基本単位を示す。ユニットは、ピクチャの特定領域および当該領域に関する情報のうちの少なくとも1つを含む。1つのユニットは、1つのルマブロックおよび2つのクロマ(例えば、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つ」を意味する。
追加的に、本文書において「または」は「および/または」と解釈される。例えば、「AまたはB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「AおよびB」を意味し得る。言い換えれば、本文書の「または」は「追加的にまたは代替として(additionally or alternatively)」を意味し得る。
本明細書において「少なくとも1つのAおよびB(at least one of A and B、AおよびBの少なくとも1つ)」は、「Aのみ」、「Bのみ」または「AおよびBの両方」を意味し得る。また、本明細書において「少なくとも1つのAまたはB(at least one of A or B、AまたはBの少なくとも1つ)」や「少なくとも1つのAおよび/またはB(at least one of A and/or B、Aおよび/またはBの少なくとも1つ)」という表現は、「少なくとも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の少なくとも1つ)」は、「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、A、BまたはCの少なくとも1つ)」や「少なくとも1つのA、Bおよび/またはC(at least one of A, B and C、A、Bおよび/またはCの少なくとも1つ)」は「少なくとも1つのA、BおよびC(at least one of A, B and C))」を意味し得る。
また、本明細書において用いられる括弧は「例えば(for example)」を意味し得る。具体的には、「予測(イントラ予測)」と表示されている場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えると、本明細書の「予測」は「イントラ予測」に制限(limit)されることなく、「イントラ予測」が「予測」の一例として提案されるものであり得る。また、「予測(すなわち、イントラ予測)」と表示されている場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
本明細書において1つの図面内において個別に説明される技術的特徴は、個別に実現されてもよく、同時に実現されてもよい。
図1は、本文書が適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
図1に示すように、ビデオ/画像コーディングシステムは、ソースデバイスおよび受信デバイスを備えることができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスに伝達することができる。
上記ソースデバイスは、ビデオソース、エンコード装置、送信部を備えることができる。上記受信デバイスは、受信部、デコード装置、およびレンダラを備えることができる。上記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、上記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信器は、エンコード装置に備えられることができる。受信器は、デコード装置に備えられることができる。レンダラは、ディスプレイ部を備えることができ、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
ビデオソースは、ビデオ/画像のキャプチャ、合成、または生成過程(処理、プロセス、process)などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイスおよび/またはビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つまたは複数のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、およびスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成され得るし、この場合、関連データが生成される過程にビデオ/画像キャプチャ過程が代替されることができる。
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮およびコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル記憶媒体またはネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。送信部は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介しての送信のためのエレメントを含むことができる。受信部は、上記ビットストリームを受信/抽出してデコード装置に伝達することができる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を行ってビデオ/画像をデコードすることができる。
レンダラは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示(ディスプレイ)されることができる。
図2は、本文書が適用されることができるビデオ/画像エンコード装置の構成を概略的に説明する図面である。以下、ビデオエンコード装置というのは、画像エンコード装置を含むことができる。
図2に示すように、エンコード装置200は、画像分割部(image partitioner)210、予測部(predictor)220、残差(レジデュアル)処理部(residual processor)230、エントロピ符号化(エンコード)部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、およびメモリ(memory)270を備えて構成されることができる。予測部220は、インター予測部221およびイントラ予測部222を備えることができる。残差処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。残差処理部230は、減算部(subtractor、231)をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(reconstructed block generator)と呼ばれることができる。前述した画像分割部210、予測部220、残差処理部230、エントロピ符号化部240、加算部250、およびフィルタリング部260は、実施形態によって1つまたは複数のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(Decoded Picture Buffer)を備えることができ、デジタル記憶媒体によって構成されることもできる。上記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
画像分割部210は、エンコード装置200に入力された入力画像(または、ピクチャ、フレーム)を1つまたは複数の処理ユニット(processing unit)に分割することができる。一例として、上記処理ユニットは、コーディングユニット(Coding Unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(Coding Tree Unit、CTU)または最大コーディングユニット(Largest Coding Unit、LCU)からQTBTTT(Quad-Tree Binary-Tree Ternary-Tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、四分木(クアッドツリー)構造、二分木(バイナリツリー)構造、および/または三分木(ターナリ)構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、四分木構造が先に適用され、二分木構造および/または三分木構造がその後に適用されることができる。あるいは、二分木構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本開示に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割されて最適なサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、および復元などの手順を含むことができる。他の例として、上記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、上記予測ユニットおよび上記変換ユニットは、各々前述した最終コーディングユニットから分割またはパーティショニングされることができる。上記予測ユニットは、サンプル予測の単位であることができ、上記変換ユニットは、変換係数を導く単位および/または変換係数から残差信号(residual signal)を導く単位であることができる。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用されることができる。一般的な場合、M×Nブロックは、M個の列およびN個の行からなるサンプルまたは変換係数(transform coefficient)などの集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)を(構成する)ピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
減算部231は、入力画像信号(オリジナル(原本)ブロック、オリジナルサンプルまたはオリジナルサンプルアレイ)から、予測部220から出力された予測信号(予測されたブロック、予測サンプルまたは予測サンプルアレイ)を減算して残差信号(残差ブロック、残差サンプルまたは残差サンプルアレイ)を生成することができ、生成された残差信号は、変換部232に送信される。予測部220は、処理対象ブロック(以下、現(現在)ブロックという)に対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部220は、現ブロックまたはCU単位で、イントラ予測が適用されるかまたはインター予測が適用されるかを決定することができる。予測部は、各予測モードについての説明で後述するように、予測モード情報など、予測に関する様々な情報を生成してエントロピ符号化部240に伝達することができる。予測に関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
イントラ予測部222は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモードおよび平面(プラナー)モード(Planarモード)を含むことができる。方向性モードは、予測方向の細かさの程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。上記時間隣接ブロックは、コロケート(同一位置)参照ブロック(collocated reference block)、コロケートCU(col CU)などの名前で呼ばれることができ、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードおよびマージモードの場合に、インター予測部221は、隣接ブロックの動き情報を現ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、残差信号が送信されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現ブロックの動きベクトルを指示することができる。
予測部220は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)を実行することができる。上記イントラブロックコピーは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを用いることができる。
インター予測部221および/またはイントラ予測部222(を含む)を介して生成された予測信号は、復元信号を生成するために用いられるか、残差信号を生成するために用いられることができる。変換部232は、残差信号に変換技法を適用して、変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)などを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現する際に、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じサイズを有するピクセルブロックに適用されてもよく、正方形ではない可変サイズのブロックに適用されてもよい。
量子化部233は、変換係数を量子化してエントロピ符号化部240に送信され、エントロピ符号化部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームに出力することができる。上記量子化された変換係数に関する情報は、残差情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列することができ、上記1次元ベクトル形態の量子化された変換係数に基づいて上記量子化された変換係数に関する情報を生成することもできる。エントロピ符号化部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(Context-Adaptive Variable Length Coding)、CABAC(Context-Adaptive Binary Arithmetic Coding)などの様々なエンコード方法を行うことができる。エントロピ符号化部240は、量子化された変換係数の他に、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共にまたは別にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/画像情報)は、ビットストリーム形態でNAL(Network Abstraction Layer)ユニット単位で送信または記憶されることができる。上記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、後述されるシグナリング/送信される情報および/またはシンタックス要素は、前述したエンコード手順を介してエンコードされて上記ビットストリームに含まれることができる。上記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル記憶媒体に記憶されることができる。ここで、ネットワークは、放送網および/または通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、様々な記憶媒体を含むことができる。エントロピ符号化部240から出力された信号については、送信する送信部(図示せず)および/もしくは記憶する記憶部(図示せず)がエンコード装置200の内/外部エレメントとして構成されることができ、または送信部は、エントロピ符号化部240に含まれることもできる。
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部234および逆変換部235を介して逆量子化および逆変換を適用することにより、残差信号(残差ブロックまたは残差サンプル)を復元できる。加算部155は、復元された残差信号を予測部220から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルまたは復元サンプルアレイ)を生成し得る。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。生成された復元信号は、現ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャエンコードおよび/または復元過程でLMCS(Luma Mapping with Chroma Scaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、上記修正された復元ピクチャをメモリ270、具体的には、メモリ270のDPBに記憶することができる。上記様々なフィルタリング方法は、例えば、デブロックフィルタリング、サンプル適応オフセット(Sample Adaptive Offset、SAO)、適応ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法についての説明で後述するように、フィルタリングに関する様々な情報を生成してエントロピ符号化部240に伝達することができる。フィルタリングに関する情報は、エントロピ符号化部240でエンコードされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部221で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置100とデコード装置とにおける予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは、修正された復元ピクチャをインター予測部221における参照ピクチャとして使用するために記憶することができる。メモリ270は、現ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報および/または既に復元されたピクチャ内のブロックの動き情報を記憶することができる。上記記憶された動き情報は、空間隣接ブロックの動き情報または時間隣接ブロックの動き情報として活用するために、インター予測部221に伝達することができる。メモリ270は、現ピクチャ内の復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
図3は、本文書が適用されることができるビデオ/画像デコード装置の構成を概略的に説明する図面である。
図3に示すように、デコード装置300は、エントロピ復号(デコード)部(entropy decoder)310、残差処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、およびメモリ(memory)360を備えて構成されることができる。予測部330は、インター予測部331およびイントラ予測部332を備えることができる。残差処理部320は、逆量子化部(dequantizer)321および逆変換部(inverse transformer)321を備えることができる。前述したエントロピ復号部310、残差処理部320、予測部330、加算部340、およびフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(Decoded Picture Buffer)を備えることができ、デジタル記憶媒体により構成されることもできる。上記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/画像情報を含むビットストリームが入力されれば、デコード装置300は、図3のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元できる。例えば、デコード装置300は、上記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットから四分木構造、二分木構造、および/または三分木ツリー構造に従って分割されることができる。コーディングユニットから1つまたは複数の変換ユニットが導出され得る。そして、デコード装置300を介してデコードおよび出力された復元画像信号は、再生装置を介して再生されることができる。
デコード装置300は、図3のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信した信号は、エントロピ復号部310を介してデコードされることができる。例えば、エントロピ復号部310は、上記ビットストリームをパージングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出できる。上記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、またはビデオパラメータセット(VPS)など、様々なパラメータセットに関する情報をさらに含むことができる。また、上記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、上記パラメータセットに関する情報および/または上記一般制限情報に基づいてさらにピクチャをデコードすることができる。本文書において後述されるシグナリング/受信される情報および/またはシンタックス要素は、上記デコード手順を介してデコードされて、上記ビットストリームから取得されることができる。例えば、エントロピ復号部310は、指数ゴロム符号化、CAVLC、またはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードし、画像復元に必要なシンタックス要素の値、残差に関する変換係数の量子化された値を出力できる。より具体的には、CABACエントロピ復号方法は、ビットストリームで各シンタックス要素に該当するビンを受信し、デコード対象のシンタックス要素情報ならびに隣接およびデコード対象ブロックのデコード情報、または以前のステップでデコードされたシンボル/ビンの情報を利用してコンテキスト(文脈)(context)モデルを決定し、決定されたコンテキストモデルによってビン(bin)の発生確率を予測してビンの算術デコード(arithmetic decoding)を行い、各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピ復号方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのためにデコードされたシンボル/ビンの情報を利用してコンテキストモデルをアップデートすることができる。エントロピ復号部310でデコードされた情報のうち、予測に関する情報は、予測部330に提供され、エントロピ復号部310でエントロピ復号が行われた残差情報、すなわち、量子化された変換係数および関連パラメータ情報は、逆量子化部321に入力されることができる。また、エントロピ復号部310でデコードされた情報のうち、フィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または受信部は、エントロピ復号部310の構成要素であることもできる。一方、本文書に係るデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、上記デコード装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)およびサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。上記情報デコーダは、上記エントロピ復号部310を備えることができ、上記サンプルデコーダは、上記逆量子化部321、逆変換部322、予測部330、加算部340、フィルタリング部350、およびメモリ360のうちの少なくとも1つを備えることができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、上記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換して残差信号(残差ブロック、残差サンプルアレイ)を取得する。
予測部は、現ブロックに対する予測を行い、上記現ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピ復号部310から出力された上記予測に関する情報に基づいて、上記現ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
予測部は、後述する様々な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のために、イントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測とを同時に適用することができる。これは、Combined Inter and Intra Prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(Intra Block Copy、IBC)を実行することができる。上記イントラブロックコピーは、例えば、SCC(Screen Content Coding)などのように、ゲームなどのコンテンツ画像/動画コーディングのために使用されることができる。IBCは、基本的に現ピクチャ内で予測を行うが、現ピクチャ内で参照ブロックを導出する点においてインター予測と同様に行われることができる。すなわち、IBCは、本文書において説明されるインター予測技法のうちの少なくとも1つを利用することができる。パレットモードは、イントラコーディングまたはイントラ予測の一例と見なすことができる。
イントラ予測部331は、現ピクチャ内のサンプルを参照して現ブロックを予測できる。上記参照されるサンプルは、予測モードによって上記現ブロックの隣接(neighbor)に位置することができ、または離れて位置することができる。イントラ予測において予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部331は、隣接ブロックに適用された予測モードを用いて、現ブロックに適用される予測モードを決定することもできる。
インター予測部332は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャインデックスを含むことができる。上記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)とを備えることができる。例えば、インター予測部332は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて上記現ブロックの動きベクトルおよび/または参照ピクチャインデックスを導出できる。様々な予測モードに基づいてインター予測が行われ得るし、上記予測に関する情報は、上記現ブロックに対するインター予測のモードを指示する情報を含むことができる。
加算部340は、取得された残差信号を予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対する残差がない場合、予測されたブロックが復元ブロックとして使用されることができる。
加算部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に伝達することができる。
本明細書において、デコード装置300の予測部330、逆量子化部321、逆変換部322、およびフィルタリング部350などで説明された実施形態は、各々、エンコード装置200の予測部220、逆量子化部234、逆変換部235、およびフィルタリング部260などにも同一または対応するように適用されることができる。
前述したように、ビデオコーディングを実行するにあたって、圧縮効率を上げるために予測を実行する。これを介して、コーディング対象ブロックである現ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、上記予測されたブロックは、空間領域(または、ピクセル領域)における予測サンプルを含む。上記予測されたブロックは、エンコード装置とデコード装置とで同じく導出され、上記エンコード装置は、オリジナルブロックのオリジナルサンプル値自体でない上記オリジナルブロックと上記予測されたブロックとの間の残差に関する情報(残差情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、上記残差情報に基づいて残差サンプルを含む残差ブロックを導出し、上記残差ブロックと上記予測されたブロックとを合わせて復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
上記残差情報は、変換および量子化手順を介して生成されることができる。例えば、エンコード装置は、上記オリジナルブロックと上記予測されたブロックとの間の残差ブロックを導出し、上記残差ブロックに含まれている残差サンプル(残差サンプルアレイ)に変換手順を実行して変換係数を導出し、上記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連する残差情報を(ビットストリームを介して)デコード装置にシグナリングできる。ここで、上記残差情報は、上記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、上記残差情報に基づいて逆量子化/逆変換の手順を実行して残差サンプル(または、残差ブロック)を導出することができる。デコード装置は、予測されたブロックおよび上記残差ブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後のピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換して残差ブロックを導出し、これに基づいて復元ピクチャを生成することができる。
本文書において、量子化/逆量子化および/または変換/逆変換のうちの少なくとも1つは、省略されることができる。上記量子化/逆量子化が省略される場合、上記量子化された変換係数は、変換係数と呼ばれることができる。上記変換/逆変換が省略される場合、上記変換係数は、係数もしくは残差係数と呼ばれることもでき、または、表現の統一性のために、依然として変換係数と呼ばれることもできる。
本文書において、量子化された変換係数および変換係数は、各々、変換係数およびスケーリングされた(scaled)変換係数と呼ばれることができる。この場合、残差情報は、変換係数(1つまたは複数(ら))に関する情報を含むことができ、上記変換係数(1つまたは複数)に関する情報は、残差コーディングシンタックスを介してシグナリングされることができる。上記残差情報(または、上記変換係数(1つまたは複数)に関する情報)に基づいて変換係数が導出されることができ、上記変換係数に対する逆変換(スケーリング)を介してスケーリングされた変換係数が導出されることができる。上記スケーリングされた変換係数に対する逆変換(変換)に基づいて、残差サンプルが導出されることができる。これは、本文書の他の部分でも同様に適用/表現されることができる。
エンコード装置/デコード装置の予測部は、ブロック単位でインター予測を行って予測サンプルを導出することができる。インター予測は、現ピクチャ以外のピクチャのデータ要素(例えば、サンプル値、または動き情報)に依存する方法で導出される予測を示すことができる。現ブロックにインター予測が適用される場合、参照ピクチャのインデックスが指す参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現ブロックに対する予測されたブロック(予測サンプルアレイ)を導出(誘導)することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現ブロックとの間の動き情報の相関性に基づいて、現ブロックの動き情報をブロック、サブブロックまたはサンプル単位で予測することができる。上記動き情報は、動きベクトルおよび参照ピクチャのインデックスを含むことができる。上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測が適用される場合、隣接ブロックは、現ピクチャ内に存在する空間隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間隣接ブロック(temporal neighboring block)と、を含むことができる。上記参照ブロックを含む参照ピクチャと上記時間隣接ブロックを含む参照ピクチャとは、同一であってもよく、異なってもよい。上記時間隣接ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名称で呼ばれ得、上記時間隣接ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることもある。例えば、現ブロックの隣接ブロックに基づいて動き情報の候補リストが構成されることができ、上記現ブロックの動きベクトルおよび/または参照ピクチャのインデックスを導出するために、どの候補が選択(使用)されるかを指示するフラグまたはインデックス情報がシグナリングされることができる。様々な予測モードに基づいてインター予測が行われ、例えば、スキップモードおよびマージモードの場合、現ブロックの動き情報は、選択された隣接ブロックの動き情報と同一であり得る。スキップモードの場合、マージモードと異なり、残差信号が送信されないことがある。動き情報予測(Motion Vector Prediction、MVP)モードの場合、選択された隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として利用し、動きベクトル差分(motion vector difference)がシグナリングされることができる。この場合、上記動きベクトル予測子と動きベクトル差分との和を用いて、上記現ブロックの動きベクトルを導出することができる。
上記動き情報は、インター予測タイプ(L0予測、L1予測、Bi予測など)に応じて、L0動き情報および/またはL1動き情報を含むことができる。L0方向の動きベクトルは、L0動きベクトルまたはMVL0と呼ばれ得、L1方向の動きベクトルは、L1動きベクトルまたはMVL1と呼ばれ得る。L0動きベクトルに基づいた予測は、L0予測と呼ばれ得、L1動きベクトルに基づいた予測をL1予測と呼ばれ得、上記L0動きベクトルおよび上記L1動きベクトルの両方に基づいた予測を双(Bi)予測と呼ばれ得る。ここで、L0動きベクトルは、参照ピクチャリストL0(L0)に関連する動きベクトルを示すことができ、L1動きベクトルは、参照ピクチャリストL1(L1)に関連する動きベクトルを示すことができる。参照ピクチャリストL0は、上記現ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャに含むことができ、参照ピクチャリストL1は、上記現ピクチャよりも、出力順序上、以後のピクチャを含むことができる。上記以前のピクチャは、順方向(参照)ピクチャと呼ばれ得、上記以後のピクチャは、逆方向(参照)ピクチャと呼ばれ得る。上記参照ピクチャリストL0は、上記現ピクチャよりも、出力順序上、以後のピクチャを参照ピクチャにさらに含むことができる。この場合、上記参照ピクチャリストL0内で上記以前のピクチャが先にインデキシングされ、上記以後のピクチャは、その後にインデキシングされ得る。上記参照ピクチャリストL1は、上記現ピクチャよりも、出力順序上、以前のピクチャを参照ピクチャにさらに含むことができる。この場合、上記参照ピクチャリスト1内で上記以後のピクチャが先にインデキシングされ、上記以前のピクチャは、その後にインデキシングされ得る。ここで、出力順序は、POC(Picture Order Count)順序(order)に対応し得る。
図4は、コーディングされた画像/ビデオに対する階層構造を例示的に示す。
図4に示すように、コーディングされた画像/ビデオは、画像/ビデオのデコード処理およびそれ自体を扱う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値によって特定されることができる。
一方、前述したように、1つのピクチャは、複数のスライスを含むことができ、1つのスライスは、スライスヘッダおよびスライスデータを含むことができる。この場合、1つのピクチャ内の複数のスライス(スライスヘッダおよびスライスデータ集合)に対して1つのピクチャヘッダがさらに付加されることができる。上記ピクチャヘッダ(ピクチャヘッダシンタックス)は、上記ピクチャに共通に適用できる情報/パラメータを含むことができる。本文書において、スライスは、タイルグループと混用または代替されることができる。また、本文書において、スライスヘッダは、タイプグループヘッダと混用または代替されることができる。
上記スライスヘッダ(スライスヘッダシンタックス、スライスヘッダ情報)は、上記スライスに共通に適用できる情報/パラメータを含むことができる。上記APS(APSシンタックス)またはPPS(PPSシンタックス)は、1つまたは複数のスライスまたはピクチャに共通に適用できる情報/パラメータを含むことができる。上記SPS(SPSシンタックス)は、1つまたは複数のシーケンスに共通に適用できる情報/パラメータを含むことができる。上記VPS(VPSシンタックス)は、マルチレイヤに共通に適用できる情報/パラメータを含むことができる。上記DPS(DPSシンタックス)は、ビデオ全般に共通に適用できる情報/パラメータを含むことができる。上記DPSは、CVS(Coded Video Sequence)のコンカチネーション(接合、concatenation)に関連する情報/パラメータを含むことができる。本文書において、上位レベルシンタックス(High Level Syntax、HLS)とは、上記APSシンタックス、PPSシンタックス、SPSシンタックス、VPSシンタックス、DPSシンタックス、ピクチャヘッダシンタックス、スライスヘッダシンタックスのうちの少なくとも1つを含むことができる。
本文書において、エンコード装置からデコード装置にエンコードされてビットストリーム形態でシグナリングされる画像/ビデオ情報は、ピクチャ内のパーティショニング関連情報、イントラ/インター予測情報、残差情報、インループフィルタリング情報などを含むだけでなく、上記スライスヘッダに含まれている情報、上記ピクチャヘッダに含まれている情報、上記APSに含まれている情報、上記PPSに含まれている情報、SPSに含まれている情報、VPSに含まれている情報、および/またはDPSに含まれている情報を含むことができる。また、上記画像/ビデオ情報は、NALユニットヘッダの情報をさらに含むことができる。
一方、量子化など、圧縮符号化過程で発生するエラーによるオリジナル(原本、original)画像と復元画像との差異を補償するために、前述したように、復元サンプルまたは復元ピクチャにインループフィルタリング手順が実行されることができる。前述したように、インループフィルタリングは、エンコード装置のフィルタ部およびデコード装置のフィルタ部で実行されることができ、デブロッキングフィルタ、SAOおよび/または適応ループフィルタ(ALF)が適用されることができる。例えば、ALF手順は、デブロックフィルタリング手順および/またはSAO手順が完了した後に実行されることができる。ただし、この場合も、デブロックフィルタリング手順および/またはSAO手順が省略されることもできる。
以下、ピクチャ復元およびフィルタリングに対する具体的な説明が記述される。画像/ビデオコーディングにおいて、各ブロック単位でイントラ予測/インター予測に基づいて復元ブロックが生成されることができ、復元ブロックを含む復元ピクチャが生成されることができる。現ピクチャ/スライスがIピクチャ/スライスである場合、上記現ピクチャ/スライスに含まれるブロックは、イントラ予測のみに基づいて復元されることができる。一方、現ピクチャ/スライスがPまたはBピクチャ/スライスである場合、上記現ピクチャ/スライスに含まれるブロックは、イントラ予測またはインター予測に基づいて復元されることができる。この場合、現ピクチャ/スライス内の一部のブロックに対してはイントラ予測が適用され、残りのブロックに対してはインター予測が適用されることもできる。
イントラ予測は、現ブロックが属するピクチャ(以下、現ピクチャという)内の参照サンプルに基づいて現ブロックに対する予測サンプルを生成する予測を示すことができる。現ブロックにイントラ予測が適用される場合、現ブロックのイントラ予測に使用する隣接参照サンプルが導出されることができる。上記現ブロックの隣接参照サンプルは、nW×nHの大きさの現ブロックの左側(left)境界に隣接するサンプルおよび左下側(bottom-left)に隣接する合計2×nH個のサンプル、現ブロックの上側(top)境界に隣接するサンプルおよび右上側(top-right)に隣接する合計2×nW個のサンプルおよび現ブロックの左上側(top-left)に隣接する1個のサンプルを含むことができる。あるいは、上記現ブロックの隣接参照サンプルは、複数列の上側隣接サンプルおよび複数行の左側隣接サンプルを含むこともできる。また、上記現ブロックの隣接参照サンプルは、nW×nHの大きさの現ブロックの右側(right)境界に隣接する合計nH個のサンプル、現ブロックの下側(bottom)境界に隣接する合計nW個のサンプル、および現ブロックの右下側(bottom-right)に隣接する1個のサンプルを含むこともできる。
ただし、現ブロックの隣接参照サンプルのうちの一部は、まだデコードされない、または利用可能でない場合がある。この場合、デコーダは、利用可能なサンプルとして利用可能でないサンプルを代替(substitution)して予測に使用する隣接参照サンプルを構成することができる。あるいは、利用可能なサンプルの補間(interpolation)を介して予測に使用する隣接参照サンプルを構成することができる。
隣接参照サンプルが導出された場合、(i)現ブロックの隣接(neighboring)参照サンプルの平均(average)または補間(interpolation)に基づいて予測サンプルを導出することができ、(ii)現ブロックの隣接参照サンプルのうち、予測サンプルに対して特定(予測)方向に存在する参照サンプルに基づいて上記予測サンプルを導出することもできる。(i)の場合は、非方向性モードまたは非角度モードと呼ばれ、(ii)の場合は、方向性(directional)モードまたは角度(angular)モードと呼ばれることができる。また、上記隣接参照サンプルのうちの上記現ブロックの予測サンプルを基準にして、上記現ブロックのイントラ予測モードの予測方向の反対方向に位置する上記第2の隣接サンプルと上記第1の隣接サンプルとの補間を介して上記予測サンプルが生成されることもできる。前述した場合は、線形補間イントラ予測(Linear Interpolation Intra Prediction、LIP)と呼ばれることができる。また、線形モデル(linear model)を利用してルマサンプルに基づいてクロマ予測サンプルが生成されることもできる。この場合は、LMモードと呼ばれることができる。また、フィルタリングされた隣接参照サンプルに基づいて上記現ブロックの一時(臨時)予測サンプルを導出し、上記既存の隣接参照サンプル、すなわち、フィルタリングされない隣接参照サンプルのうち、上記イントラ予測モードにより導出された少なくとも1つの参照サンプルと上記一時予測サンプルとを加重和(weighted sum)して上記現ブロックの予測サンプルを導出することもできる。前述した場合は、PDPC(Position Dependent Intra Prediction)と呼ばれることができる。また、現ブロックの隣接多重参照サンプルラインの中から最も予測精度(正確度)が高い参照サンプルラインを選択して該当ラインで予測方向に位置する参照サンプルを利用して予測サンプルを導出し、このときに使用された参照サンプルラインをデコード装置に指示(シグナリング)する方法でイントラ予測符号化を実行することができる。前述した場合は、Multi-Reference Line(MRL)intra predictionまたはMRLベースのイントラ予測と呼ばれることができる。また、現ブロックを垂直または水平のサブパーティションに分けて同じイントラ予測モードに基づいてイントラ予測を実行し、上記サブパーティション単位で隣接参照サンプルを導出して利用できる。すなわち、この場合、現ブロックに対するイントラ予測モードが上記サブパーティションに同じく適用され、上記サブパーティション単位で隣接参照サンプルを導出して利用することによって、場合によって、イントラ予測性能を高めることができる。このような予測方法は、Intra Sub-Partitions(ISP)またはISPベースのイントラ予測と呼ばれることができる。前述したイントラ予測方法は、目次(セクション)1および2におけるイントラ予測モードと区分してイントラ予測タイプと呼ばれることができる。上記イントラ予測タイプは、イントラ予測技法または付加イントラ予測モードなど、多様な用語で呼ばれることができる。例えば、上記イントラ予測タイプ(または、付加イントラ予測モードなど)は、前述したLIP、PDPC、MRL、ISPのうちの少なくとも1つを含むことができる。上記LIP、PDPC、MRL、ISPなどの特定イントラ予測タイプを除外した一般イントラ予測方法は、ノーマルイントラ予測タイプと呼ばれることができる。ノーマルイントラ予測タイプは、上記のような特定のイントラ予測タイプが適用されない場合、一般的に適用されることができ、前述したイントラ予測モードに基づいて予測が実行されることができる。一方、必要によって、導出された予測サンプルに対する後処理フィルタリングが実行されることもできる。
具体的には、イントラ予測手順は、イントラ予測モード/タイプ決定ステップ、隣接参照サンプル導出ステップ、イントラ予測モード/タイプベースの予測サンプル導出ステップを含むことができる。また、必要によって、導出された予測サンプルに対する後処理フィルタリング(post-filtering)ステップが実行されることもできる。
インループフィルタリング手順により修正された(modified)復元ピクチャが生成され、デコード装置から上記修正された復元ピクチャがデコードされたピクチャとして出力され、またエンコード装置/デコード装置の復号ピクチャバッファまたはメモリに記憶されて、以後にピクチャのエンコード/デコード時のインター予測手順において参照ピクチャとして使用されることができる。上記インループフィルタリング手順は、前述のようにデブロックフィルタリング手順、SAO(Sample Adaptive Offset)手順および/またはALF(Adaptive Loop Filter)手順などを含む。この場合、上記デブロックフィルタリング手順、SAO(Sample Adaptive Offset)手順、ALF(Adaptive Loop Filter)手順およびバイラテラルフィルタ(bi-lateral filter)手順のうちの1つもしくは一部が順次適用されてもよく、または全てが順次適用されてもよい。例えば、復元ピクチャに対してデブロックフィルタリング手順が適用された後、SAO手順が行われてもよい。あるいは、例えば、復元ピクチャに対してデブロックフィルタリング手順が適用された後、ALF手順が行われてもよい。これはエンコード装置においても同様に行われる。
デブロックフィルタリングは、復元されたピクチャでブロック間の境界に発生する歪曲を除去するフィルタリング技法である。デブロックフィルタリング手順は、例えば、復元ピクチャでターゲット境界を導出し、上記ターゲット境界に対するbs(boundary strength)を決定し、上記bSに基づいて上記ターゲット境界に対するデブロックフィルタリングを実行することができる。上記bSは、上記ターゲット境界を隣接する2つのブロックの予測モード、動きベクトル差、参照ピクチャが同一か否か、0でない有効係数が存在するか否かなどに基づいて決定されることができる。
SAOは、サンプル単位で復元ピクチャとオリジナルピクチャとのオフセット差を補償する方法であって、例えば、バンドオフセット(Band Offset)、エッジオフセット(Edge Offset)などのタイプに基づいて適用されることができる。SAOによると、各SAOタイプによってサンプルを互いに異なるカテゴリに分類し、カテゴリに基づいて各サンプルにオフセット値を足すことができる。SAOのためのフィルタリング情報は、SAO適用が可能か否かに関する情報、SAOタイプ情報、SAOオフセット値情報などを含むことができる。SAOは、上記デブロックフィルタリング適用後の復元ピクチャに対して適用されることもできる。
ALF(Adaptive Loop Filter)は、復元ピクチャに対してフィルタ形状によるフィルタ係数に基づいてサンプル単位でフィルタリングする技法である。エンコード装置は、復元ピクチャとオリジナルピクチャとの比較を介してALF適用が可能か否か、ALF形状および/またはALFフィルタリング係数などを決定することができ、デコード装置にシグナリングすることができる。すなわち、ALFのためのフィルタリング情報は、ALF適用が可能か否かに関する情報、ALFフィルタ形状(shape)情報、ALFフィルタリング係数情報などを含むことができる。ALFは、上記デブロックフィルタリング適用後の復元ピクチャに対して適用されることもできる。
図5は、ALFフィルタ形状の例を示す。
図5の(a)は7x7ダイヤモンドのフィルタ形状を示し、(b)は5x5ダイヤモンドのフィルタ形状を示す。図5におけるフィルタ形状内のCnは、フィルタ係数を示す。上記Cnでnが同じである場合、これは同じフィルタ係数が割り当てられ得ることを示す。本文書において、ALFのフィルタ形状に応じてフィルタ係数が割り当てられる位置および/または単位はフィルタタブと呼ばれ得る。このとき、各々のフィルタタブには1つのフィルタ係数が割り当てられ、フィルタタブが配列された形態はフィルタ形状に該当し得る。フィルタ形状のセンタに位置するフィルタタブは、センタフィルタタブと呼ばれ得る。センタフィルタタブを基準に互いに対応する位置に存在する同じn値の2つのフィルタタブには同じフィルタ係数が割り当てられ得る。例えば、7x7ダイヤモンドのフィルタ形状の場合、25個のフィルタタブを含み、C0ないしC11のフィルタ係数が中央対称の形態で割り当てられるので、13個のフィルタ係数のみで上記25個のフィルタタブにフィルタ係数を割り当て得る。また、例えば、5x5ダイヤモンドのフィルタ形状の場合、13個のフィルタタブを含み、C0ないしC5のフィルタ係数が中央対称の形態で割り当てられるので、7個のフィルタ係数のみで上記13個のフィルタタブにフィルタ係数を割り当て得る。例えば、シグナリングされるフィルタ係数に関する情報のデータ量を減らすために、7x7ダイヤモンドのフィルタ形状に対する13個のフィルタ係数のうちの12個のフィルタ係数は(明示的に)シグナリングされ、1個のフィルタ係数は(暗黙的に)導出され得る。また、例えば、5x5ダイヤモンドのフィルタ形状に対する7個のフィルタ係数のうちの6個のフィルタ係数は(明示的に)シグナリングされ、1個のフィルタ係数は(暗黙的に)導出され得る。
図6は、エンコード装置におけるフィルタリングに基づくエンコード方法を説明するフローチャートである。図6の方法は、S600ないしS630のステップを含むことができる。
S600のステップにおいて、エンコード装置は、復元ピクチャを生成することができる。S600のステップは、前述した復元ピクチャ(または復元サンプル)の生成手順に基づいて実行されることができる。
S610のステップにおいて、エンコード装置は、インループフィルタリング関連情報に基づいて(仮想境界を横切って)インループフィルタリングが適用されるかどうかを決定することができる。ここで、インループフィルタリングは、前述したデブロックフィルタリング、SAO、またはALFの少なくとも1つを含み得る。
S620のステップにおいて、エンコード装置は、S610のステップの上記決定に基づいて修正された復元ピクチャ(修正された復元サンプル)を生成することができる。ここで、修正された復元ピクチャ(修正された復元サンプル)は、フィルタリングされた復元ピクチャ(フィルタリングされた復元サンプル)であり得る。
S630のステップにおいて、エンコード装置は、インループフィルタリング手順に基づいてインループフィルタリング関連情報を含む画像/ビデオ情報をエンコードすることができる。
図7は、デコード装置におけるフィルタリングに基づくデコード方法を説明するフローチャートである。図7の方法は、S700ないしS730のステップを含むことができる。
S700のステップにおいて、デコード装置は、ビットストリームからインループフィルタリング関連情報を含む画像/ビデオ情報を取得することができる。ここで、ビットストリームは、エンコード装置から送信されたエンコードされた画像/ビデオ情報に基づくことができる。
S710のステップにおいて、デコード装置は、復元ピクチャを生成することができる。S710のステップは、前述した復元ピクチャ(または復元サンプル)の生成手順に基づいて実行されることができる。
S720のステップにおいて、デコード装置は、インループフィルタリング関連情報に基づいて(仮想境界を横切って)インループフィルタリングが適用されるかどうかを決定することができる。ここで、インループフィルタリングは、前述したデブロックフィルタリング、SAO、またはALFの少なくとも1つを含み得る。
S730のステップにおいて、デコード装置は、S720のステップの上記決定に基づいて修正された復元ピクチャ(修正された復元サンプル)を生成することができる。ここで、修正された復元ピクチャ(修正された復元サンプル)は、フィルタリングされた復元ピクチャ(フィルタリングされた復元サンプル)であり得る。
前述したように、復元ピクチャにインループフィルタリング手順が適用されることができる。この場合、復元ピクチャの主観的/客観的ビジュアルの品質をより高めるために仮想境界を定義し、上記仮想境界を横切って(across)上記インループフィルタリング手順を適用することもできる。上記仮想境界は、例えば、360度画像、VR画像、またはPIP(Picture In Picture)などの不連続エッジを含み得る。例えば、上記仮想境界は、予め定められた約束した位置に存在し得、その存否および/または位置がシグナリングされ得る。一例として、上記仮想境界はCTU行における上方の4番目のサンプルライン(具体的には、例えば、上記CTU行における上方の4番目のサンプルラインの上側)に位置し得る。他の例として、上記仮想境界は、その存否および/または位置に関する情報がHLSを介してシグナリングされることもある。上記HLSは、前述したように、SPS、PPS、ピクチャヘッダ、スライスヘッダなどを含み得る。
以下では、本文書の実施形態に関する上位レベルシンタックスのシグナリングおよびセマンティクスについて説明する。
本文書の一実施形態は、ループフィルタを制御する方法を含み得る。ループフィルタを制御する本方法は、復元ピクチャに対して適用され得る。インループフィルタ(ループフィルタ)は、エンコードされたビットストリームのデコードのために使用できる。ループフィルタは、前述したデブロッキング、SAO、ALFを含み得る。SPSは、デブロッキング、SAO、ALFの各々と関連するフラグを含み得る。上記フラグは、上記SPSを参照するCLVS(Coded Layer Video Sequence)、CVS(Coded Video Sequence)のコーディングのために、各ツールが使用可能であるかどうかを示すことができる。
上記ループフィルタがCVSに対して使用可能である場合、上記ループフィルタの適用は、特定の境界を横切らないように制御され得る。例えば、上記ループフィルタがサブピクチャの境界を横切るかどうかが制御され得る。また、上記ループフィルタがタイルの境界を横切るかどうかが制御され得る。これと共に、上記ループフィルタが仮想境界を横切るかどうかが制御され得る。ここで、仮想境界は、ラインバッファの使用可能性に基づいてCTU上に定義され得る。
仮想境界を横切ってインループフィルタリング手順が実行されるかどうかと関連し、インループフィルタリング関連情報は、SPSの仮想境界イネーブルフラグ(SPS内の仮想境界イネーブルフラグ)、SPSの仮想境界存在フラグ、ピクチャヘッダの仮想境界存在フラグ、SPSピクチャヘッダの仮想境界存在フラグ、仮想境界の位置に関する情報の少なくとも1つを含み得る。
本文書に含まれる実施形態において、仮想境界の位置に関する情報は、垂直の仮想境界のx座標に関する情報および/または水平の仮想境界のy座標に関する情報を含み得る。具体的には、仮想境界の位置に関する情報は、ルマサンプル単位の垂直な仮想境界のx座標および/または水平の仮想境界のy座標に関する情報を含み得る。また、仮想境界の位置に関する情報は、SPSに存在する垂直の仮想境界のx座標に関する情報(シンタックス要素)の数に関する情報を含み得る。また、仮想境界の位置に関する情報は、SPSに存在する水平の仮想境界のy座標に関する情報(シンタックス要素)の数に関する情報を含み得る。あるいは、仮想境界の位置に関する情報は、ピクチャヘッダに存在する垂直の仮想境界のx座標に関する情報(シンタックス要素)の数に関する情報を含み得る。また、仮想境界の位置に関する情報は、ピクチャヘッダに存在する水平の仮想境界のy座標に関する情報(シンタックス要素)の数に関する情報を含み得る。
次の表は、本実施形態によるSPSの例示的なシンタックスおよびセマンティクスを示す。
次の表は、本実施形態によるPPS(Picture Parameter Set)の例示的なシンタックスおよびセマンティクスを示す。
次の表は、本実施形態によるピクチャヘッダの例示的なシンタックスおよびセマンティクスを示す。
次の表は、本実施形態によるスライスヘッダの例示的なシンタックスおよびセマンティクスを示す。
以下では、インループフィルタリングで使用できる仮想境界に関する情報のシグナリングに関して説明する。
既存の設計において、仮想境界を横切るループフィルタを無効化(ディセーブル)する(disable)ために、i)SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)は0に設定され、また、全てのピクチャヘッダに対してPHの仮想境界存在フラグ(ph_loop_filter_across_virtual_boundaries_disabled_present_flag)は存在し、0に設定され、またはii)SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)は1に設定され、また、SPSの垂直仮想境界の数に関する情報(sps_num_ver_vertical_boudnaries)およびSPSの水平仮想境界の数に関する情報(sps_num_hor_vertical_boudnaries)は、いずれも0に設定され得る。
既存の設計においては、上記ii)によって、SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が1に設定され、デコーダが仮想境界の位置に対するシグナリングを予想することにより、デコード手順における問題が引き起こされることがある。
以下の段落で記述される実施形態は、前述した問題を解決するための解決策を提案することができる。実施形態は独立して適用してもよい。あるいは、少なくとも2つ以上の実施形態を組み合わせて適用してもよい。
本文書の一実施形態において、仮想境界を示すためのシンタックス要素がSPSに含まれるかどうかは、フラグにより制御され得る。例えば、上記フラグの数は2個であり得る(例えば、SPSの仮想境界イネーブルフラグ(SPS virtual boundaries enabled flag)、SPSの仮想境界存在フラグ(SPS virtual boundaries present flag))。
本実施形態による一例において、上記SPSの仮想境界イネーブルフラグは、sps_loop_filter_across_virtual_boundaries_disabled_flag(またはsps_virtual_boundaries_enabled_flag)と称され得る。上記SPSの仮想境界イネーブルフラグは、仮想境界を横切ってループフィルタを無効化するための特徴が有効化(イネーブル)されるかどうかを示すことができる。
本実施形態による一例において、上記SPSの仮想境界存在フラグは、sps_loop_filter_across_virtual_boundaries_disabled_present_flag(またはsps_virtual_boundaries_present_flag)と称され得る。上記SPSの仮想境界存在フラグは、仮想境界のためのシグナリング情報がSPSまたはピクチャヘッダ(Picture Header、PH)に含まれるかどうかを示すことができる。
本実施形態による一例において、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が0である場合、仮想境界を横切るループフィルタを無効化するシグナリング情報がピクチャヘッダに含まれ得る。
本実施形態による一例において、仮想境界の位置に関する情報(例えば、垂直の仮想境界、水平の仮想境界)がSPSに含まれる場合、垂直の仮想境界の数と水平の仮想境界の数との和が0より大きいように制限され得る。
本実施形態による一例において、現ピクチャに対して仮想境界でフィルタが無効化されるかどうかを示す変数が導出され得る。例えば、上記変数は、VirtualBoundairesDisabledFlagを含み得る。
本例示における一つの場合として、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、VirtualBoundairesDisabledFlagは1であり得る。
本例示における別の場合として、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が0であり、垂直の仮想境界の数に関する情報(例えば、ph_num_ver_virtual_boundaries)と水平の仮想境界の数に関する情報(例えば、ph_num_hor_virtual_boundaries)との和が0より大きい場合、VirtualBoundairesDisabledFlagは1であり得る。
本例示におけるその他の場合においては、VirtualBoundairesDisabledFlagは0であり得る。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表9ないし表12と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。上記SPSは、仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)を含み得る。上記SPSは、上記仮想境界イネーブルフラグに基づいてSPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)を含み得る。
例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1である場合、上記SPSの仮想境界存在フラグを含み得る。上記SPSは、上記仮想境界イネーブルフラグおよび上記SPSの仮想境界存在フラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が1である場合、上記SPSの垂直仮想境界の数に関する情報、上記SPSの垂直仮想境界の位置に関する情報、上記SPSの水平仮想境界の数に関する情報、上記SPSの水平仮想境界の位置に関する情報を含み得る。
一例において、上記SPSの垂直仮想境界の位置に関する情報の数は、上記SPSの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記SPSの水平仮想境界の位置に関する情報の数は、上記SPSの水平仮想境界の数に関する情報に基づいて決定されることができる。上記ピクチャヘッダは、上記仮想境界イネーブルフラグおよびSPSの仮想境界存在フラグに基づいて、PHの垂直仮想境界の数に関する情報(ph_num_ver_virtual_boundaries)、PHの垂直仮想境界の位置に関する情報(ph_virtual_boundaries_pos_x[i])、PHの水平仮想境界の数に関する情報(ph_num_hor_virtual_boundaries)、PHの水平仮想境界の位置に関する情報(ph_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記ピクチャヘッダは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が0である場合、上記PHの垂直仮想境界の数に関する情報、上記PHの垂直仮想境界の位置に関する情報、上記PHの水平仮想境界の数に関する情報、上記PHの水平仮想境界の位置に関する情報を含み得る。一例において、上記PHの垂直仮想境界の位置に関する情報の数は、上記PHの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記PHの水平仮想境界の位置に関する情報の数は、上記PHの水平仮想境界の数に関する情報に基づいて決定されることができる。
本文書の別の実施形態において、SPSを参照するピクチャのヘッダ情報(ピクチャヘッダ)の各々は、PHの仮想境界存在フラグph_loop_filter_across_virtual_boundaries_disabled_present_flag(またはph_virtual_boundaries_present_flag)を含み得る。本実施形態も、以前の実施形態のようにSPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)およびSPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)と共に説明されることができる。
本実施形態による一例において、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が0である場合、SPSを参照するピクチャのヘッダ情報(ピクチャヘッダ)の各々は、PHの仮想境界存在フラグph_loop_filter_across_virtual_boundaries_disalbed_present_flag(またはph_virtual_boundaries_present_flag)を含み得る。
本実施形態による一例において、仮想境界の位置に関する情報(例えば、垂直の仮想境界、水平の仮想境界)がSPSに含まれる場合、垂直の仮想境界の数と水平の仮想境界の数との和が0より大きいように制限され得る。
本実施形態による一例において、現ピクチャに対して仮想境界でフィルタが無効化されるかどうかを示す変数が導出され得る。例えば、上記変数は、VirtualBoundairesDisabledFlagを含み得る。
本例示における一つの場合として、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、VirtualBoundairesDisabledFlagは1であり得る。
本例示における別の場合として、上記SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、上記PHの仮想境界存在フラグ(ph_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、VirtualBoundairesDisabledFlagは1であり得る。
本例示におけるその他の場合においては、VirtualBoundairesDisabledFlagは0であり得る。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表13ないし表16と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。上記SPSは、仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)を含み得る。上記SPSは、上記仮想境界イネーブルフラグに基づいて、SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)を含み得る。例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1である場合、上記SPSの仮想境界存在フラグを含み得る。上記SPSは、上記仮想境界イネーブルフラグおよび上記SPSの仮想境界存在フラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が1である場合、上記SPSの垂直仮想境界の数に関する情報、上記SPSの垂直仮想境界の位置に関する情報、上記SPSの水平仮想境界の数に関する情報、上記SPSの水平仮想境界の位置に関する情報を含み得る。一例において、上記SPSの垂直仮想境界の位置に関する情報の数は、上記SPSの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記SPSの水平仮想境界の位置に関する情報の数は、上記SPSの水平仮想境界の数に関する情報に基づいて決定されることができる。上記ピクチャヘッダは、上記仮想境界イネーブルフラグおよびSPSの仮想境界存在フラグに基づいて、PHの仮想境界存在フラグを含み得る。
例えば、上記ピクチャヘッダは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が0である場合、上記ピクチャヘッダは上記PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記PHの仮想境界存在フラグに基づいてPHの垂直仮想境界の数に関する情報(ph_num_ver_virtual_boundaries)、PHの垂直仮想境界の位置に関する情報(ph_virtual_boundaries_pos_x[i])、PHの水平仮想境界の数に関する情報(ph_num_hor_virtual_boundaries)、PHの水平仮想境界の位置に関する情報(ph_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記ピクチャヘッダは、上記PHの仮想境界存在フラグの値が1である場合、上記PHの垂直仮想境界の数に関する情報、上記PHの垂直仮想境界の位置に関する情報、上記PHの水平仮想境界の数に関する情報、上記PHの水平仮想境界の位置に関する情報を含み得る。一例において、上記PHの垂直仮想境界の位置に関する情報の数は、上記PHの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記PHの水平仮想境界の位置に関する情報の数は、上記PHの水平仮想境界の数に関する情報に基づいて決定されることができる。
本文書の別の実施形態において、仮想境界を示すためのシンタックス要素がSPSに含まれるかどうかは、フラグにより制御され得る。例えば、上記フラグの数は2個であり得る(例えば、SPSの仮想境界存在フラグ(SPS virtual boundaries present flag)、SPS PHの仮想境界存在フラグ(SPS PH virtual boundaries present flag))。
本実施形態による一例において、上記SPSの仮想境界存在フラグは、sps_loop_filter_across_virtual_boundaries_disabled_present_flag(またはsps_virtual_boundaries_present_flag)と称され得る。上記SPSの仮想境界存在フラグは、仮想境界の情報がSPSに含まれるかどうかを示すことができる。
本実施形態による一例において、上記SPS PHの仮想境界存在フラグは、sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flagと称され得る。上記SPS PHの仮想境界存在フラグは、仮想境界の情報がピクチャヘッダ(Picture Header、PH)に含まれるかどうかを示すことができる。
本実施形態による一例において、上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、上記SPS PHの仮想境界存在フラグ(sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag)は存在せず、また、0に推論されるように制限され得る。
本実施形態による一例において、上記SPS PHの仮想境界存在フラグ(sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、仮想境界を横切るループフィルタを無効化するシグナリング情報がピクチャヘッダに含まれ得る。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表17ないし表20と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。上記SPSは、SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)を含み得る。上記SPSは、上記SPSの仮想境界存在フラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記SPSは、上記SPSの仮想境界存在フラグの値が1である場合、上記SPSの垂直仮想境界の数に関する情報、上記SPSの垂直仮想境界の位置に関する情報、上記SPSの水平仮想境界の数に関する情報、上記SPSの水平仮想境界の位置に関する情報を含み得る。一例において、上記SPSの垂直仮想境界の位置に関する情報の数は、上記SPSの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記SPSの水平仮想境界の位置に関する情報の数は、上記SPSの水平仮想境界の数に関する情報に基づいて決定されることができる。上記SPSは、上記SPSの仮想境界存在フラグに基づいてSPS PHの仮想境界存在フラグを含み得る。
例えば、上記SPSの仮想境界存在フラグの値が0である場合、上記SPSは、SPS PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記SPS PHの仮想境界存在フラグに基づいてPHの仮想境界存在フラグを含み得る。例えば、上記SPS PHの仮想境界存在フラグの値が1である場合、上記ピクチャヘッダは、上記PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記PHの仮想境界存在フラグに基づいて、PHの垂直仮想境界の数に関する情報(ph_num_ver_virtual_boundaries)、PHの垂直仮想境界の位置に関する情報(ph_virtual_boundaries_pos_x[i])、PHの水平仮想境界の数に関する情報(ph_num_hor_virtual_boundaries)、PHの水平仮想境界の位置に関する情報(ph_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記ピクチャヘッダは、上記PHの仮想境界存在フラグの値が1である場合、上記PHの垂直仮想境界の数に関する情報、上記PHの垂直仮想境界の位置に関する情報、上記PHの水平仮想境界の数に関する情報、上記PHの水平仮想境界の位置に関する情報を含み得る。一例において、上記PHの垂直仮想境界の位置に関する情報の数は、上記PHの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記PHの水平仮想境界の位置に関する情報の数は、上記PHの水平仮想境界の数に関する情報に基づいて決定されることができる。
本文書の別の実施形態において、漸進的デコードリフレッシュ(Gradual Decoding Refresh、GDR)が使用可能である場合(すなわち、gdr_enabled_flagの値が1である場合)、ループフィルタが仮想境界で無効化される特徴は有効化され、仮想境界の情報は、ピクチャヘッダでシグナリングされ得る(ピクチャヘッダに含まれ得る)。
本文書の別の実施形態において、仮想境界を横切ってループフィルタを無効化する機能が有効化されると、仮想境界の位置のシグナリングに関する情報が1つまたは複数のパラメータセットに含まれ得る。例えば、仮想境界を横切ってループフィルタを無効化する機能が有効化されると、仮想境界の位置のシグナリングに関する情報がSPSおよびピクチャヘッダに含まれ得る。
本実施形態において、SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1であり、仮想境界の位置に関するシグナリング情報が1つまたは複数のパラメータセットに含まれる場合、次の通りである。
a)仮想境界の位置に関するシグナリング情報がSPSにのみ含まれるか、ピクチャヘッダにのみ含まれるか、またはSPSおよびピクチャヘッダの両方に含まれ得る。
b)各ピクチャに対するVirtualBoundariesDisabledFlagの導出は次の通りである。
- sps_loop_filter_across_virtual_boundaries_disabled_flagが0である場合、VirtualBoundariesDisabledFlagは0に設定され得る。
- 本例示における別の場合において、仮想境界の位置に関する情報がSPSまたはピクチャと関連するピクチャヘッダの全てでシグナリングされない場合、VirtualBoundariesDisabledFlagは0に設定され得る。
- 本例示におけるその他の場合において(仮想境界の位置がSPSでのみシグナリングされるか、ピクチャヘッダでのみシグナリングされるか、またはSPSおよびピクチャヘッダの両方でシグナリングされる場合に)、VirtualBoundariesDisabledFlagは1に設定され得る。
c)ピクチャに適用される仮想境界は、ピクチャが直接または間接的に参照するパラメータセットでシグナリングされる仮想境界の集合(union)を含み得る。例えば、上記仮想境界は、SPSでシグナリングされる仮想境界を含み得る(存在する場合)。例えば、上記仮想境界は、ピクチャと関連するピクチャヘッダでシグナリングされる仮想境界を含み得る(存在する場合)。
d)ピクチャあたりの仮想境界の最大数や事前に定義された(pre-defined)値を超えないような制限が適用され得る。例えば、上記事前に定義された値は8であり得る。
e)ピクチャヘッダにシグナリングされた仮想境界の位置に関する情報は(ある場合)、他のパラメータセット(例えば、SPSまたはPPS)に含まれる仮想境界の位置に関する情報と同じではないように制限され得る。
- 代案として、現ピクチャに対して適用されたある仮想境界の位置に対して、上記仮想境界の位置(例えば、SPSとピクチャと関連するピクチャヘッダとでシグナリングされる同じ仮想境界の位置)は、2つの互いに異なるパラメータセットに含まれ得る。
f)上記SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)が1である場合、上記SPS PHの仮想境界存在フラグ(sps_ph_loop_filter_across_virtual_boundaries_disabled_present_flag)は存在せず、また、0に推論されるように制限され得る。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表21ないし表24と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。上記SPSは、仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)を含み得る。上記SPSは、上記仮想境界イネーブルフラグに基づいて、SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)を含み得る。例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1である場合、上記SPSの仮想境界存在フラグを含み得る。上記SPSは、上記仮想境界イネーブルフラグおよび上記SPSの仮想境界存在フラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が1である場合、上記SPSの垂直仮想境界の数に関する情報、上記SPSの垂直仮想境界の位置に関する情報、上記SPSの水平仮想境界の数に関する情報、上記SPSの水平仮想境界の位置に関する情報を含み得る。一例において、上記SPSの垂直仮想境界の位置に関する情報の数は、上記SPSの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記SPSの水平仮想境界の位置に関する情報の数は、上記SPSの水平仮想境界の数に関する情報に基づいて決定されることができる。上記ピクチャヘッダは、上記仮想境界イネーブルフラグに基づいてPHの仮想境界存在フラグを含み得る。
例えば、上記仮想境界イネーブルフラグの値が1である場合、上記ピクチャヘッダは、上記PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記PHの仮想境界存在フラグに基づいて、PHの垂直仮想境界の数に関する情報(ph_num_ver_virtual_boundaries)、PHの垂直仮想境界の位置に関する情報(ph_virtual_boundaries_pos_x[i])、PHの水平仮想境界の数に関する情報(ph_num_hor_virtual_boundaries)、PHの水平仮想境界の位置に関する情報(ph_virtual_boundaries_pos_y[i])を含み得る。例えば、上記ピクチャヘッダは、上記PHの仮想境界存在フラグの値が1である場合、上記PHの垂直仮想境界の数に関する情報、上記PHの垂直仮想境界の位置に関する情報、上記PHの水平仮想境界の数に関する情報、上記PHの水平仮想境界の位置に関する情報を含み得る。一例において、上記PHの垂直仮想境界の位置に関する情報の数は、上記PHの垂直仮想境界の数に関する情報に基づいて決定されることができ、上記PHの水平仮想境界の位置に関する情報の数は、上記PHの水平仮想境界の数に関する情報に基づいて決定されることができる。
本文書の別の実施形態においては、前述した実施形態によるが、垂直仮想境界の数と水平仮想境界の数との和が0より大きいという制限をしないことによって、ループフィルタリングが実行されることができる。
本文書の別の実施形態において、仮想境界に関する情報SPSおよびPHの両方でシグナリングされ得る。本実施形態の一例において、SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1である場合、垂直仮想境界の数に関する情報、水平仮想境界の数に関する情報、および/または仮想境界の位置に関する情報がSPSに含まれ得る。これと共に、SPSの仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)が1である場合、垂直仮想境界の数に関する情報、水平仮想境界の数に関する情報、および/または仮想境界の位置のデルタ値(仮想境界の位置のデルタ値)に関する情報がピクチャヘッダに含まれ得る。仮想境界の位置のデルタ値は、仮想境界の位置間の差を称し得る。ピクチャヘッダには、仮想境界の位置の符号に関する情報も含まれ得る。
本実施形態に関する一例によると、各ピクチャに対する仮想境界の位置を導出するために、仮想境界の位置のデルタ値がピクチャヘッダに存在しない場合、SPSでシグナリングされた仮想境界の位置に関する情報がループフィルタリングのために使用され得る。仮想境界の位置のデルタ値がピクチャヘッダに存在する場合、SPSでシグナリングされた仮想境界の位置に関する情報とこれに関連するデルタ値との間の合算に基づいて、仮想境界の位置が導出され得る。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表25ないし表28と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。上記SPSは、仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)を含み得る。上記SPSは、上記仮想境界イネーブルフラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1である場合、上記SPSの水平仮想境界の数に関する情報、上記SPSの水平仮想境界の位置に関する情報、上記SPSの垂直仮想境界の数に関する情報、上記SPSの垂直仮想境界の位置に関する情報を含み得る。
一例において、上記SPSの水平仮想境界の位置に関する情報の数は、上記SPSの水平仮想境界の数に関する情報に基づいて決定されることができ、上記SPSの垂直仮想境界の位置に関する情報の数は、上記SPSの垂直仮想境界の数に関する情報に基づいて決定されることができる。上記ピクチャヘッダは、上記仮想境界イネーブルフラグに基づいてPHの仮想境界存在フラグを含み得る。例えば、上記仮想境界イネーブルフラグの値が1である場合、上記ピクチャヘッダは、上記PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記PHの仮想境界存在フラグに基づいて、PHの水平仮想境界の位置のデルタ値に関する情報(ph_virtual_boundaries_pos_x_delta[i])、PHの水平仮想境界の位置の符号に関する情報(ph_virtual_boundaries_pos_x_sign[i])、PHの垂直仮想境界の位置のデルタ値に関する情報(ph_virtual_boundaries_pos_y_delta[i])、PHの垂直仮想境界の位置の符号に関する情報(ph_virtual_boundaries_pos_y_sign[i])を含み得る。
例えば、上記ピクチャヘッダは、上記PHの仮想境界存在フラグの値が1である場合、上記PHの垂直仮想境界の位置のデルタ値に関する情報、上記PHの垂直仮想境界の位置の符号に関する情報、上記PHの水平仮想境界の位置のデルタ値に関する情報、上記PHの水平仮想境界の位置の符号に関する情報を含み得る。一例において、上記SPSの垂直仮想境界の数に関する情報に基づいて、上記PHの垂直仮想境界の位置のデルタ値に関する情報の数および上記PHの垂直仮想境界の位置の符号に関する情報の数が決定されることができ、上記SPSの水平仮想境界の数に関する情報に基づいて、上記PHの水平仮想境界の位置のデルタ値に関する情報の数および上記PHの水平仮想境界の位置の符号に関する情報の数が決定されることができる。
本文書のさらに他の実施形態においては、各ピクチャに対する仮想境界の位置に関する情報のシグナリングを説明する。一例において、仮想境界の位置に関する情報がSPSに含まれ、仮想境界の位置のデルタ値に関する情報がピクチャヘッダに含まれない場合、ループフィルタリングのためにSPSに含まれる仮想境界の位置に関する情報が用いられ得る。仮想境界の位置に関する情報がSPSに含まれず、仮想境界の位置のデルタ値に関する情報がピクチャヘッダに含まれる場合、ループフィルタリングのためにピクチャヘッダに含まれる仮想境界の位置に関する情報が用いられ得る。仮想境界の位置に関する情報がSPSに含まれ、仮想境界の位置のデルタ値に関する情報がピクチャヘッダに含まれる場合、SPSでシグナリングされた仮想境界の位置に関する情報とこれに関連するデルタ値との間の合算に基づいて、仮想境界の位置が導出され得る。仮想境界の位置に関する情報がSPSに含まれず、仮想境界の位置のデルタ値に関する情報がピクチャヘッダに含まれない場合、ピクチャに対して仮想境界が適用されないことがある。
次の表は、本実施形態によるSPSの例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
次の表は、本実施形態によるヘッダ情報(ピクチャヘッダ)の例示的なシンタックスを示す。
次の表は、上記シンタックスに含まれるシンタックス要素に関する例示的なセマンティクスを示す。
表29ないし表32と関連する実施形態において、エンコード装置によりエンコードされた画像情報および/またはエンコード装置からデコード装置によって受信されたビットストリームを介して取得された画像情報は、シーケンスパラメータセット(Sequence Parameter Set、SPS)およびピクチャヘッダ(Picture Header、PH)を含み得る。
上記SPSは、仮想境界イネーブルフラグ(sps_loop_filter_across_virtual_boundaries_disabled_flag)を含み得る。上記SPSは、上記仮想境界イネーブルフラグに基づいて、SPSの仮想境界存在フラグ(sps_loop_filter_across_virtual_boundaries_disabled_present_flag)を含み得る。例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1である場合、上記SPSの仮想境界存在フラグを含み得る。上記SPSは、上記仮想境界イネーブルフラグおよび上記SPSの仮想境界存在フラグに基づいて、SPSの垂直仮想境界の数に関する情報(sps_num_ver_virtual_boundaries)、SPSの垂直仮想境界の位置に関する情報(sps_virtual_boundaries_pos_x[i])、SPSの水平仮想境界の数に関する情報(sps_num_hor_virtual_boundaries)、SPSの水平仮想境界の位置に関する情報(sps_virtual_boundaries_pos_y[i])を含み得る。
例えば、上記SPSは、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が1である場合、上記水平仮想境界の数に関する情報、上記水平仮想境界の位置に関する情報、上記垂直仮想境界の数に関する情報、上記垂直仮想境界の位置に関する情報を含み得る。一例において、上記水平仮想境界の位置に関する情報の数は、上記水平仮想境界の数に関する情報に基づいて決定されることができ、上記垂直仮想境界の位置に関する情報の数は、上記垂直仮想境界の数に関する情報に基づいて決定されることができる。上記ピクチャヘッダは、上記仮想境界イネーブルフラグに基づいてPHの仮想境界存在フラグを含み得る。
例えば、上記仮想境界イネーブルフラグの値が1である場合、上記ピクチャヘッダは上記PHの仮想境界存在フラグを含み得る。上記ピクチャヘッダは、上記PHの仮想境界存在フラグおよび上記SPSの垂直仮想境界の数に関する情報に基づいて、PHの垂直仮想境界の数に関する情報(ph_num_ver_virtual_boundaries)を含み得る。例えば、上記PHの仮想境界存在フラグの値が1であり、上記SPSの垂直仮想境界の数に関する情報の値が0である場合、上記ピクチャヘッダは、上記PHの垂直仮想境界の数に関する情報を含み得る。一例において、上記ピクチャヘッダは、上記PHの垂直仮想境界の数に関する情報に基づいて、PHの垂直仮想境界の位置のデルタ値に関する情報(ph_virtual_boundaries_pos_x_delta[i])、PHの垂直仮想境界の位置の符号に関する情報(ph_virtual_boundaries_pos_x_sign[i])を含み得る。一例において、上記PHの垂直仮想境界の数に関する情報に基づいて、上記PHの垂直仮想境界の位置のデルタ値に関する情報の数および上記PHの垂直仮想境界の位置の符号に関する情報の数が決定されることができる。上記ピクチャヘッダは、上記PHの仮想境界存在フラグおよび上記SPSの水平仮想境界の数に関する情報に基づいてPHの水平仮想境界の数(ph_num_hor_virtual_boundaries)に関する情報を含み得る。
例えば、上記PHの仮想境界存在フラグの値が1であり、上記SPSの水平仮想境界の数に関する情報の値が0である場合、上記ピクチャヘッダは、上記PHの水平仮想境界の数に関する情報を含み得る。一例において、上記ピクチャヘッダは、上記PHの水平仮想境界の数に関する情報に基づいて、PHの水平仮想境界の位置のデルタ値に関する情報(ph_virtual_boundaries_pos_y_delta[i])、PHの水平仮想境界の位置の符号に関する情報(ph_virtual_boundaries_pos_y_sign[i])を含み得る。一例において、上記PHの水平仮想境界の数に関する情報に基づいて、上記PHの水平仮想境界の位置のデルタ値に関する情報の数および上記PHの水平仮想境界の位置の符号に関する情報の数が決定されることができる。
上記表と共に、本文書の実施形態によると、仮想境界を横切って実行されるインループフィルタリングを制御するのに必要な情報がコーディング装置により効率的にシグナリングできる。一例において、仮想境界を横切ってインループフィルタリングが使用可能であるかどうかと関連する情報がシグナリングされることができる。
図8および図9は、本文書の実施形態によるビデオ/画像エンコード方法および関連コンポーネントの一例を概略的に示す。
図8で開示された方法は、図2または図9で開示されたエンコード装置により実行されることができる。具体的には、例えば、図8のS800およびS810は、図9の上記エンコード装置の残差処理部230により実行されることができ、図8のS820および/またはS830は、図9の上記エンコード装置のフィルタリング部260により実行されることができ、図8のS840は、図9の上記エンコード装置のエントロピ符号化部240により実行されることができる。また、図8で示していないが、図8で上記エンコード装置の予測部220により予測サンプルまたは予測関連情報を導出することができ、上記エンコード装置のエントロピ符号化部240により、残差情報または予測関連情報からビットストリームが生成されることができる。図8で開示された方法は、本文書で前述した実施形態を含み得る。
図8を参照すると、エンコード装置は残差サンプルを導出することができる(S800)。エンコード装置は、現ブロックに対する残差サンプルを導出することができ、上記現ブロックに対する残差サンプルは、現ブロックのオリジナルサンプルおよび予測サンプルに基づいて導出されることができる。具体的には、エンコード装置は、予測モードに基づいて上記現ブロックの予測サンプルを導出することができる。この場合、インター予測またはイントラ予測など、本文書で開示された多様な予測方法が適用されることができる。上記予測サンプルおよびオリジナルサンプルに基づいて残差サンプルを導出することができる。
エンコード装置は、変換係数を導出することができる。エンコード装置は、上記残差サンプルに対する変換手順に基づいて変換係数を導出することができる。例えば、変換手順は、DCT、DST、GBT、またはCNTの少なくとも1つを含み得る。
エンコード装置は量子化された変換係数を導出することができる。エンコード装置は、上記変換係数に対する量子化手順に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて1次元ベクトルの形態を有し得る。
エンコード装置は、残差情報を生成することができる(S810)。エンコード装置は、上記現ブロックに対する上記残差サンプルに基づいて残差情報を生成することができる。エンコード装置は、上記量子化された変換係数を示す残差情報を生成することができる。残差情報は、指数ゴロム、CAVLC、CABACなどの多様なエンコード方法を通じて生成できる。
エンコード装置は、復元サンプルを生成することができる。エンコード装置は、上記残差情報に基づいて復元サンプルを生成することができる。復元サンプルは、残差情報に基づいた残差サンプルを予測サンプルと加算して生成されることができる。具体的には、エンコード装置は、現ブロックに対する予測(イントラまたはインター予測)を実行し、オリジナルサンプルおよび予測から生成された予測サンプルに基づいて復元サンプルを生成することができる。
復元サンプルは、復元ルマサンプルおよび復元クロマサンプルを含み得る。具体的には、残差サンプルは、残差ルマサンプルおよび残差クロマサンプルを含み得る。残差ルマサンプルは、原本ルマサンプルおよび予測ルマサンプルに基づいて生成できる。残差クロマサンプルは、原本クロマサンプルおよび予測クロマサンプルに基づいて生成できる。エンコード装置は、上記残差ルマサンプルに対する変換係数(ルマ変換係数)および/または上記残差クロマサンプルに対する変換係数(クロマ変換係数)を導出することができる。量子化された変換係数は、量子化されたルマ変換係数および/または量子化されたクロマ変換係数を含み得る。
エンコード装置は、仮想境界を横切って上記インループフィルタリング手順が実行されるかどうかを決定することができる(S820)。ここで、仮想境界は、前述した仮想境界と同じであり得る。また、インループフィルタリング手順は、デブロッキング手順、SAO手順、またはALF手順の少なくとも1つを含み得る。
エンコード装置は、仮想境界関連情報を生成することができる(S830)。エンコード装置は、上記S820のステップの上記決定に基づいて、仮想境界関連情報を生成することができる。仮想境界関連情報は、インループフィルタリング関連情報に含まれ得る。ここで、インループフィルタリング関連情報は、上記インループフィルタリング手順を実行するのに用いられる情報を称し得る。例えば、仮想境界関連情報は、本文書で前述した仮想境界に関する情報(SPSの仮想境界イネーブルフラグ、ピクチャヘッダの仮想境界イネーブルフラグ、SPSの仮想境界存在フラグ、ピクチャヘッダの仮想境界存在フラグ、仮想境界の位置に関する情報など)を含み得る。
エンコード装置は、ビデオ/画像情報をエンコードすることができる(S840)。上記画像情報は、残差情報、予測関連情報、および/またはインループフィルタリング関連情報を含み得る。エンコードされたビデオ/画像情報は、ビットストリームの形態で出力されることができる。上記ビットストリーム、はネットワークまたは記憶媒体を介してデコード装置に送信されることができる。
上記画像/ビデオ情報は、本文書の実施形態による多様な情報を含むことができる。例えば、上記画像/ビデオ情報は、前述した表1ないし32の少なくとも1つに開示された情報を含み得る。
一実施形態において、上記画像情報は、SPS(Sequence Parameter Set)、および上記SPSを参照するピクチャヘッダ情報を含み得る。上記仮想境界関連情報は、仮想境界イネーブルフラグ(またはSPSの仮想境界イネーブルフラグ)を含み得る。上記仮想境界イネーブルフラグに基づいて、上記仮想境界関連情報のシグナリングが上記SPSまたは上記ピクチャヘッダ情報に存在するかどうかが決定されることができる。上記インループフィルタリング手順は、上記仮想境界イネーブルフラグに基づいて、仮想境界を横切って実行できる(あるいは、仮想境界を横切って実行されないことがある)。例えば、上記仮想境界イネーブルフラグは、仮想境界を横切るインループフィルタリング手順の無効化が可能であるかどうかを示すことができる。
一実施形態において、上記SPSは、上記仮想境界イネーブルフラグおよびSPSの仮想境界存在フラグを含み、上記仮想境界存在フラグに基づいて、上記仮想境界の位置に関する情報および上記仮想境界の数に関する情報が上記SPSに含まれるかどうかが決定されることができる。
一実施形態において、上記SPSの仮想境界存在フラグの値が1であることに基づいて、上記SPSは、垂直仮想境界の数に関する情報を含み得る。
一実施形態において、上記SPSは、垂直仮想境界の位置に関する情報を含み得る。また、上記垂直仮想境界の数に関する情報に基づいて、上記垂直仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記SPSの仮想境界存在フラグの値が1であることに基づいて、上記SPSは水平仮想境界の数に関する情報を含み得る。
一実施形態において、上記SPSは、水平仮想境界の位置に関する情報を含み得る。また、上記水平仮想境界の数に関する情報に基づいて、上記水平仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が0であることに基づいて、上記ピクチャヘッダ情報は、ピクチャヘッダの仮想境界存在フラグを含み得る。
一実施形態において、上記ピクチャヘッダの仮想境界存在フラグの値が1であることに基づいて、上記ピクチャヘッダ情報は、垂直仮想境界の数に関する情報を含み得る。
一実施形態において、上記ピクチャヘッダ情報は、垂直仮想境界の位置に関する情報を含み得る。また、上記垂直仮想境界の数に関する情報に基づいて、上記垂直仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記ピクチャヘッダの仮想境界存在フラグの値が1であることに基づいて、上記ピクチャヘッダ情報は、水平仮想境界の数に関する情報を含み得る。
一実施形態において、上記ピクチャヘッダ情報は水平仮想境界の位置に関する情報を含み得る。また、上記水平仮想境界の数に関する情報に基づいて、上記水平仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記SPSが垂直仮想境界の位置に関する情報と水平仮想境界の位置に関する情報とを含むことに基づいて、上記垂直仮想境界の数と上記水平仮想境界の数との和は0より大きくてもよい。
一実施形態において、上記インループフィルタリング関連情報(および/または仮想境界関連情報)は、SPSの仮想境界存在フラグ、ピクチャヘッダの仮想境界存在フラグ、および漸進的デコードリフレッシュ(Gradual Decoding Refresh、GDR)イネーブルフラグをさらに含み得る。例えば、上記GDRイネーブルフラグの値が1であることに基づいて、上記SPSの仮想境界イネーブルフラグ(仮想境界イネーブルフラグ)の値は1であり、上記SPSの仮想境界存在フラグの値は0であり、上記ピクチャヘッダの仮想境界存在フラグの値は1であり得る(仮想境界情報のシグナリングはピクチャヘッダに存在し得る)。
図10および図11は、本文書の実施形態によるビデオ/画像デコード方法および関連コンポーネントの一例を概略的に示す。
図10で開示された方法は、図3または図11で開示されたデコード装置により実行されることができる。具体的には、例えば、図10のS1000は、上記デコード装置のエントロピ復号部310により実行されることができ、S1010は、上記デコード装置の残差処理部320および/または加算部340により実行されることができ、S1020は、上記デコード装置のフィルタリング部350により実行されることができる。図10で開示された方法は、本文書で前述した実施形態を含み得る。
図10を参照すると、デコード装置は、ビデオ/画像情報を受信/取得することができる(S1000)。ビデオ/画像情報は、残差情報、予測関連情報、および/またはインループフィルタリング関連情報を含み得る。デコード装置は、ビットストリームを介して上記画像/ビデオ情報を受信/取得することができる。
上記画像/ビデオ情報は、本文書の実施形態による多様な情報を含み得る。例えば、上記画像/ビデオ情報は、前述した表1ないし32の少なくとも1つに開示された情報を含み得る。
デコード装置は、量子化された変換係数を導出することができる。デコード装置は、上記残差情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて1次元ベクトルの形態を有し得る。量子化された変換係数は、量子化されたルマ変換係数および/または量子化されたクロマ変換係数を含み得る。
デコード装置は、変換係数を導出することができる。デコード装置は、上記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、量子化されたルマ変換係数に基づいて、逆量子化を介してルマ変換係数を導出することができる。デコード装置は、量子化されたクロマ変換係数に基づいて、逆量子化を介してクロマ変換係数を導出することができる。
デコード装置は、残差サンプルを生成/導出することができる。デコード装置は、上記変換係数に対する逆変換手順に基づいて、残差サンプルを導出することができる。デコード装置は、ルマ変換係数に基づいて、逆変換手順を介して残差ルマサンプルを導出することができる。デコード装置は、クロマ変換係数に基づいて、逆変換手順を介して残差クロマサンプルを導出することができる。
デコード装置は、復元サンプルを生成/導出することができる(S1010)。例えば、デコード装置は、復元ルマサンプルおよび/または復元クロマサンプルを生成/導出することができる。デコード装置は、上記残差情報に基づいて復元ルマサンプルおよび/または復元クロマサンプルを生成することができる。デコード装置は、上記残差情報に基づいて復元サンプルを生成することができる。復元サンプルは、復元ルマサンプルおよび/または復元クロマサンプルを含み得る。復元サンプルのルマ成分が復元ルマサンプルに対応し、復元サンプルのクロマ成分が復元クロマサンプルに対応し得る。デコード装置は、予測手順を介して予測ルマサンプルおよび/または予測クロマサンプルを生成することができる。デコード装置は、予測ルマサンプルおよび残差ルマサンプルに基づいて復元ルマサンプルを生成することができる。デコード装置は、予測クロマサンプルおよび残差クロマサンプルに基づいて復元クロマサンプルを生成することができる。
デコード装置は、修正された(フィルタリングされた)復元サンプルを生成することができる(S1020)。デコード装置は、上記復元サンプルに対するインループフィルタリング手順に基づいて、修正された復元サンプルを生成することができる。デコード装置は、インループフィルタリング関連情報に基づいて、修正された復元サンプルを生成することができる。デコード装置は、修正された復元サンプルを生成するために、デブロッキング手順、SAO手順、および/またはALF手順を用いることができる。
一実施形態において、上記画像情報は、SPS、および上記SPSを参照するピクチャヘッダ情報を含み得る。上記仮想境界関連情報は、仮想境界イネーブルフラグ(またはSPSの仮想境界存在フラグ)を含み得る。上記仮想境界イネーブルフラグに基づいて、上記仮想境界関連情報のシグナリングが上記SPSまたは上記ピクチャヘッダ情報に存在するかどうかが決定されることができる。上記インループフィルタリング手順は、上記仮想境界イネーブルフラグに基づいて、仮想境界を横切って実行されることができる(または横切ることなく、実行されないことがある)。例えば、上記仮想境界イネーブルフラグは、仮想境界を横切るインループフィルタリング手順の無効化が可能であるかどうかを示すことができる。
一実施形態において、上記SPSは、仮想境界イネーブルフラグおよび/またはSPSの仮想境界存在フラグを含み得る。上記SPSの仮想境界存在フラグに基づいて、上記仮想境界の位置に関する情報および上記仮想境界の数に関する情報が上記SPSに含まれるかどうかが決定されることができる。
一実施形態において、上記SPSの仮想境界存在フラグの値が1であることに基づいて、上記SPSは垂直仮想境界の数に関する情報を含み得る。
一実施形態において、上記SPSは、垂直仮想境界の位置に関する情報を含み得る。また、上記垂直仮想境界の数に関する情報に基づいて、上記垂直仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記SPSの仮想境界存在フラグの値が1であることに基づいて、上記SPSは水平仮想境界の数に関する情報を含み得る。
一実施形態において、上記SPSは、水平仮想境界の位置に関する情報を含み得る。また、上記水平仮想境界の数に関する情報に基づいて、上記水平仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記仮想境界イネーブルフラグの値が1であり、上記SPSの仮想境界存在フラグの値が0であることに基づいて、上記ピクチャヘッダ情報は、ピクチャヘッダの仮想境界存在フラグを含み得る。
一実施形態において、上記ピクチャヘッダの仮想境界存在フラグの値が1であることに基づいて、上記ピクチャヘッダ情報は、垂直仮想境界の数に関する情報を含み得る。
一実施形態において、上記ピクチャヘッダ情報は、垂直仮想境界の位置に関する情報を含み得る。また、上記垂直仮想境界の数に関する情報に基づいて、上記垂直仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記ピクチャヘッダの仮想境界存在フラグの値が1であることに基づいて、上記ピクチャヘッダ情報は、水平仮想境界の数に関する情報を含み得る。
一実施形態において、上記ピクチャヘッダ情報は、水平仮想境界の位置に関する情報を含み得る。また、上記水平仮想境界の数に関する情報に基づいて、上記水平仮想境界の位置に関する情報の数が決定されることができる。
一実施形態において、上記SPSが垂直仮想境界の位置に関する情報と水平仮想境界の位置に関する情報とを含むことに基づいて、上記垂直仮想境界の数と上記水平仮想境界の数との和は0より大きくてもよい。
一実施形態において、上記インループフィルタリング関連情報(および/または仮想境界関連情報)は、SPSの仮想境界存在フラグ、ピクチャヘッダの仮想境界存在フラグ、および漸進的デコードリフレッシュ(Gradual Decoding Refresh、GDR)イネーブルフラグをさらに含み得る。例えば、上記GDRイネーブルフラグの値が1であることに基づいて、上記SPSの仮想境界イネーブルフラグ(仮想境界イネーブルフラグ)の値は1であり、上記SPSの仮想境界存在フラグの値は0であり、上記ピクチャヘッダの仮想境界存在フラグの値は1であり得る(仮想境界情報のシグナリングはピクチャヘッダに存在し得る)。
デコード装置は、現ブロックに対する残差サンプルが存在する場合、現ブロックに対する残差に関する情報を受信することができる。残差に関する情報は、残差サンプルに関する変換係数を含むことができる。デコード装置は、残差情報に基づいて現ブロックに対する残差サンプル(または、残差サンプルアレイ)を導出することができる。具体的には、デコード装置は、残差情報に基づいて量子化された変換係数を導出することができる。量子化された変換係数は、係数スキャン順序に基づいて1次元ベクトル形態を有することができる。デコード装置は、上記量子化された変換係数に対する逆量子化手順に基づいて変換係数を導出することができる。デコード装置は、変換係数に基づいて残差サンプルを導出することができる。
デコード装置は、(イントラ)予測サンプルと残差サンプルとに基づいて復元サンプルを生成することができ、上記復元サンプルに基づいて復元ブロックまたは復元ピクチャを導出することができる。具体的には、デコード装置は、(イントラ)予測サンプルと残差サンプルとの和に基づいて復元サンプルを生成することができる。以後、デコード装置は、必要によって、主観的/客観的画質を向上させるために、デブロックフィルタリングおよび/またはSAO手順などのインループフィルタリング手順を上記復元ピクチャに適用できることは、前述の通りである。
例えば、デコード装置は、ビットストリームまたはエンコードされた情報をデコードし、前述した情報(またはシンタックス要素)の全部または一部を含む画像情報を獲得することができる。また、上記ビットストリームまたはエンコードされた情報は、コンピュータ読み取り可能な記憶媒体に記憶されることができ、前述したデコード方法が行われるようにすることができる。
前述した実施形態において、方法は、一連のステップまたはブロックとしてフローチャートに基づいて説明されているが、該当実施形態は、ステップの順序に限定されるわけではなく、あるステップは、前述したのと異なるステップと異なる順序で、または同時に発生し得る。また、当業者であれば、フローチャートに示されているステップが排他的ではなく、異なるステップが含まれるか、フローチャートの1つまたは複数のステップが本文書の実施形態の範囲に影響を与えずに削除され得ることを理解することができる。
前述した本文書の実施形態に係る方法は、ソフトウェアの形態で実現されることができ、本文書に係るエンコード装置および/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を行う装置に含まれ得る。
本文書で、実施形態がソフトウェアで実現される際、前述した方法は、前述した機能を行うモジュール(過程、機能など)で実現されることができる。モジュールは、メモリに記憶され、プロセッサにより実行されることができる。メモリは、プロセッサの内部または外部にあってもよく、よく知られている様々な手段でプロセッサと連結されてもよい。プロセッサは、ASIC(Application-Specific Integrated Circuit)、他のチップセット、論理回路および/またはデータ処理装置を含むことができる。メモリは、ROM(Read-Only Memory)、RAM(Random Access Memory)、フラッシュメモリ、メモリカード、記憶媒体および/または他の記憶装置を含むことができる。すなわち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて行われ得る。例えば、各図面で示している機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で実現されて行われ得る。この場合、実現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル記憶媒体に記憶されることができる。
また、本文書の実施形態が適用されるデコード装置およびエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、ビデオオンデマンド(オーダーメイド型ビデオ)(VoD)サービス提供装置、OTTビデオ(Over The Top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(Virtual Reality)装置、AR(Augmented Reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両含む)端末、飛行機端末、船舶端末など)および医療用ビデオ装置などに含まれ得、ビデオ信号またはデータ信号を処理するために使用され得る。例えば、OTTビデオ(Over The Top video)装置としては、ゲームコンソール、ブルーレイプレーヤ、インターネットアクセスTV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含み得る。
また、本文書の実施形態が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されることができ、コンピュータが読み取ることができる記録媒体に記憶されることができる。本文書の実施形態に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み取ることができる記録媒体に記憶されることができる。上記コンピュータが読み取ることができる記録媒体は、コンピュータで読み取られるデータが記憶される全ての種類の記憶装置および分散記憶装置を含む。上記コンピュータが読み取ることができる記録媒体は、例えば、ブルーレイディスク(BD)、ユニバーサルシリアル(汎用直列)バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピディスク、および光学データ記憶装置を含み得る。また、上記コンピュータが読み取ることができる記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取られる記録媒体に記憶されるか、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で実現されることができ、上記プログラムコードは、本文書の実施形態によってコンピュータで実行されることができる。上記プログラムコードは、コンピュータによって読み取り可能なキャリア上に記憶されることができる。
図12は、本文書に開示された実施形態が適用されることができるコンテンツストリーミングシステムの例を示す。
図12を参照すると、本文書の実施形態が適用されるコンテンツストリーミングシステムは、大まかにエンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディアストレージ、ユーザ装置、およびマルチメディア入力装置を含むことができる。
上記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを上記ストリーミングサーバに送信する役割をする。別の例として、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置がビットストリームを直接生成する場合、上記エンコードサーバは省略され得る。
上記ビットストリームは、本文書の実施形態が適用されるエンコード方法またはビットストリームの生成方法により生成されることができ、上記ストリーミングサーバは、上記ビットストリームを送信または受信する過程で、一時的に上記ビットストリームを記憶することができる。
上記ストリーミングサーバは、ウェブサーバを介してのユーザ要求(要請)に基づいてマルチメディアデータをユーザ装置に送信し、上記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体の役割をする。ユーザが上記ウェブサーバに所望のサービスを要求すれば、上記ウェブサーバは、これをストリーミングサーバに伝達し、上記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、上記コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、上記制御サーバは、上記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
上記ストリーミングサーバは、メディア記憶装置(格納所)および/またはエンコードサーバからコンテンツを受信することができる。例えば、上記エンコードサーバからコンテンツを受信する場合、上記コンテンツをリアルタイムに受信することができる。この場合、円滑なストリーミングサービスを提供するために、上記ストリーミングサーバは、上記ビットストリームを一定時間の間、記憶することができる。
上記ユーザ装置の例では、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタル署名(サイニジ)などがありうる。
上記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運用されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として実現されることができ、本明細書の装置請求項の技術的特徴が組み合わせられて方法として実現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて装置として実現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴とが組み合わせられて方法として実現されることができる。