以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素を他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を他の実施例で第1構成要素と呼んでもよい。
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
本開示において、「ピクチャ(picture)」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、ピクチャの一部を構成する符号化単位であって、一つのピクチャは、一つ以上のスライス/タイルで構成できる。また、スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(block)」又は「領域(area)」などの用語と混用して使用できる。一般な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(又はサンプルアレイ)又は変換係数(transform coefficient)のセット(又はアレイ)を含むことができる。
本開示において、「現在ブロック」は、「現在コーディングブロック」、「現在コーディングユニット」、「符号化対象ブロック」、「復号化対象ブロック」又は「処理対象ブロック」のうちのいずれか一つを意味することができる。予測が行われる場合、「現在ブロック」は、「現在予測ブロック」又は「予測対象ブロック」を意味することができる。変換(逆変換)/量子化(逆量子化)が行われる場合、「現在ブロック」は「現在変換ブロック」又は「変換対象ブロック」を意味することができる。フィルタリングが行われる場合、「現在ブロック」は「フィルタリング対象ブロック」を意味することができる。
また、本開示において、「現在ブロック」は、クロマブロックという明示的な記載がない限り、ルマ成分ブロックとクロマ成分ブロックを全て含むブロック又は「現在ブロックのルマブロック」を意味することができる。現在ブロックのルマ成分ブロックは、明示的に「ルマブロック」又は「現在ルマブロック」のようにルマ成分ブロックという明示的な記載を含んで表現できる。また、現在ブロックのクロマ成分ブロックは、明示的に「クロマブロック」又は「現在クロマブロック」のようにクロマ成分ブロックという明示的な記載を含んで表現できる。
本開示において、「/」と「、」は「及び/又は」と解釈されることができる。例えば、「A/B」と「A、B」は「A及び/又はB」と解釈されることができる。また、「A/B/C」と「A、B、C」は、「A、B及び/又はCのうちの少なくとも一つ」を意味することができる。
本開示において、「又は」は「及び/又は」と解釈されることができる。例えば、「A又はB」は、1)「A」のみを意味するか、2)「B」のみを意味するか、3)「A及びB」を意味することができる。又は、本開示において、「又は」は、「追加的に又は代替的に(additionally or alternatively)」を意味することができる。
ビデオコーディングシステムの概要
図1は、本開示による実施例が適用できるビデオコーディングシステムを概略的に示す図である。
一実施例によるビデオコーディングシステムは、符号化装置10及び復号化装置20を含むことができる。符号化装置10は、符号化されたビデオ(video)及び/又は画像(image)情報又はデータをファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20へ伝達することができる。
一実施例による符号化装置10は、ビデオソース生成部11、符号化部12及び伝送部13を含むことができる。一実施例による復号化装置20は、受信部21、復号化部22及びレンダリング部23を含むことができる。前記符号化部12は、ビデオ/画像符号化部と呼ばれることができ、前記復号化部22は、ビデオ/画像復号化部と呼ばれることができる。伝送部13は、符号化部12に含まれることができる。受信部21は、復号化部22に含まれることができる。レンダリング部23は、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイス又は外部コンポーネントとして構成されることもできる。
ビデオソース生成部11は、ビデオ/画像のキャプチャ、合成又は生成過程などを介してビデオ/画像を取得することができる。ビデオソース生成部11は、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程は、関連データが生成される過程に置き換えられることができる。
符号化部12は、入力ビデオ/画像を符号化することができる。符号化部12は、圧縮及び符号化効率のために、予測、変換、量子化などの一連の手順を行うことができる。符号化部12は、符号化されたデータ(符号化されたビデオ/画像情報)をビットストリーム(bitstream)形式で出力することができる。
伝送部13は、ビットストリーム形式で出力された、符号化されたビデオ/画像情報又はデータを、ファイル又はストリーミング形式でデジタル記憶媒体又はネットワークを介して復号化装置20の受信部21に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray(登録商標)、HDD、SSDなどのさまざまな記憶媒体を含むことができる。伝送部13は、予め決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介して伝送するためのエレメントを含むことができる。受信部21は、前記記憶媒体又はネットワークから前記ビットストリームを抽出/受信して復号化部22に伝達することができる。
復号化部22は、符号化部12の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/画像を復号化することができる。
レンダリング部23は、復号化されたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介して表示されることができる。
画像符号化装置の概要
図2は、本開示による実施例が適用できる画像符号化装置を概略的に示す図である。
図2に示されているように、画像符号化装置100は、画像分割部110、減算部115、変換部120、量子化部130、逆量子化部140、逆変換部150、加算部155、フィルタリング部160、メモリ170、インター予測部180、イントラ予測部185及びエントロピー符号化部190を含むことができる。インター予測部180及びイントラ予測部185は、合わせて「予測部」と呼ばれることができる。変換部120、量子化部130、逆量子化部140及び逆変換部150は、レジデュアル(residual)処理部に含まれることができる。レジデュアル処理部は減算部115をさらに含むこともできる。
画像符号化装置100を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、エンコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって実現できる。
画像分割部110は、画像符号化装置100に入力された入力画像(又は、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)又は最大コーディングユニット(largest coding unit、LCU)をQT/BT/TT(Quad-tree/binary-tree/ternary-tree)構造によって再帰的に(recursively)分割することにより取得されることができる。例えば、一つのコーディングニットは、四分木構造、二分木構造及び/又は三分木構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割されることができる。コーディングユニットの分割のために、四分木構造が先に適用され、二分木構造及び/又は三分木構造が後で適用されることができる。それ以上分割されない最終コーディングユニットを基に、本開示によるコーディング手順が行われることができる。最大コーディングユニットが最終コーディングユニットとして使用されることができ、最大コーディングユニットを分割して取得した下位デプスのコーディングユニットが最終コーディングユニットとして使用されることもできる。ここで、コーディング手順とは、後述する予測、変換及び/又は復元などの手順を含むことができる。他の例として、前記コーディング手順の処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)であることができる。前記予測ユニット及び前記変換ユニットは、それぞれ前記最終コーディングユニットから分割又はパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を誘導する単位、及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であることができる。
予測部(インター予測部180又はイントラ予測部185)は、処理対象ブロック(現在ブロック)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか、或いはインター予測が適用されるかを決定することができる。予測部は、現在ブロックの予測に関するさまざまな情報を生成してエントロピー符号化部190に伝達することができる。予測に関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
イントラ予測部185は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。参照される前記サンプルは、イントラ予測モード及び/又はイントラ予測技法に従って、前記現在ブロックの周辺(neighbor)に位置することもでき、或いは離れて位置することもできる。イントラ予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプランナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度に応じて、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示に過ぎず、設定に基づいてそれ以上又はそれ以下の個数の方向性予測モードが使用できる。イントラ予測部185は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と、参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャと、前記時間周辺ブロックを含む参照ピクチャとは、同一でもよく、互いに異なってもよい。前記時間周辺ブロックは、コロケート参照ブロック(collocated reference block)、コロケートCU(colCU)などの名前で呼ばれることができる。前記時間周辺ブロックを含む参照ピクチャは、コロケートピクチャ(collocated picture、colPic)と呼ばれることができる。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われることができ、例えばスキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が伝送されないことができる。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)及び動きベクトル予測子に対するインジケータ(indicator)を符号化することにより、現在ブロックの動きベクトルをシグナリングすることができる。動きベクトル差分は、現在ブロックの動きベクトルと動きベクトル予測子との差を意味することができる。
予測部は、後述する様々な予測方法及び/又は予測技法に基づいて予測信号を生成することができる。例えば、予測部は、現在ブロックの予測のために、イントラ予測又はインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用することができる。現在ブロックの予測のためにイントラ予測とインター予測を同時に適用する予測方法は、CIIP(combined inter and intra prediction)と呼ばれることができる。また、予測部は、現在ブロックの予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画コーディングのために使用できる。IBCは、現在ブロックから所定の距離だけ離れた位置の現在ピクチャ内の既に復元された参照ブロックを用いて現在ブロックを予測する方法である。IBCが適用される場合、現在ピクチャ内の参照ブロックの位置は、前記所定の距離に該当するベクトル(ブロックベクトル)として符号化されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出するという点で、インター予測と同様に行われることができる。すなわち、IBCは、本開示で説明されるインター予測技法のうちの少なくとも1つを用いることができる。
予測部によって生成された予測信号は、復元信号を生成するために用いられるか、或いはレジデュアル信号を生成するために用いられることができる。減算部115は、入力画像信号(原本ブロック、原本サンプルアレイ)から、予測部から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算して、レジデュアル信号(residual signal、残余ブロック、残余サンプルアレイ)を生成することができる。生成されたレジデュアル信号は、変換部120に伝送されることができる。
変換部120は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうちの少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。変換過程は、正方形の同じサイズを有するピクセルブロックに適用されることもでき、正方形ではない、可変サイズのブロックに適用されることもできる。
量子化部130は、変換係数を量子化してエントロピー符号化部190に伝送することができる。エントロピー符号化部190は、量子化された信号(量子化された変換係数に関する情報)を符号化してビットストリーム形式で出力することができる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順序(scan order)に基づいて、ブロック形式の量子化された変換係数を1次元ベクトル形式で再整列することができ、前記1次元ベクトル形式の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。
エントロピー符号化部190は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などの様々な符号化方法を行うことができる。エントロピー符号化部190は、量子化された変換係数の他に、ビデオ/画像復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を一緒に又は別々に符号化することもできる。符号化された情報(例えば、符号化されたビデオ/画像情報)は、ビットストリーム形式でNAL(network abstraction layer)ユニット単位で伝送又は保存されることができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本開示で言及されたシグナリング情報、伝送される情報及び/又はシンタックス要素は、上述した符号化手順を介して符号化されて前記ビットストリームに含まれることができる。
前記ビットストリームは、ネットワークを介して伝送されることができ、又はデジタル記憶媒体に保存されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなどのさまざまな記憶媒体を含むことができる。エントロピー符号化部190から出力された信号を伝送する伝送部(図示せず)及び/又は保存する保存部(図示せず)が画像符号化装置100の内/外部要素として備えられることができ、又は伝送部はエントロピー符号化部190の構成要素として備えられることもできる。
量子化部130から出力された、量子化された変換係数は、レジデュアル信号を生成するために用いられることができる。例えば、量子化された変換係数に逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。
加算部155は、復元されたレジデュアル信号をインター予測部180又はイントラ予測部185から出力された予測信号に加えることにより、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。加算部155は、復元部又は復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ170、具体的にはメモリ170のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法についての説明で後述するようにフィルタリングに関する様々な情報を生成してエントロピー符号化部190に伝達することができる。フィルタリングに関する情報は、エントロピー符号化部190で符号化されてビットストリーム形式で出力されることができる。
メモリ170に伝送された、修正された復元ピクチャは、インター予測部180で参照ピクチャとして使用されることができる。画像符号化装置100は、これを介してインター予測が適用される場合、画像符号化装置100と画像復号化装置での予測ミスマッチを回避することができ、符号化効率も向上させることができる。
メモリ170内のDPBは、インター予測部180での参照ピクチャとして使用するために、修正された復元ピクチャを保存することができる。メモリ170は、現在ピクチャ内の動き情報が導出された(又は符号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内ブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部180に伝達されることができる。メモリ170は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部185に伝達することができる。
画像復号化装置の概要
図3は、本開示による実施例が適用できる画像復号化装置を概略的に示す図である。
図3に示されているように、画像復号化装置200は、エントロピー復号化部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265を含んで構成できる。インター予測部260及びイントラ予測部265を合わせて「予測部」と呼ばれることができる。逆量子化部220、逆変換部230はレジデュアル処理部に含まれることができる。
画像復号化装置200を構成する複数の構成部の全部又は少なくとも一部は、実施例によって一つのハードウェアコンポーネント(例えば、デコーダ又はプロセッサ)で実現されることができる。また、メモリ170は、DPBを含むことができ、デジタル記憶媒体によって実現できる。
ビデオ/画像情報を含むビットストリームを受信した画像復号化装置200は、図2の画像符号化装置100で行われたプロセスに対応するプロセスを実行して画像を復元することができる。例えば、画像復号化装置200は、画像符号化装置で適用された処理ユニットを用いて復号化を行うことができる。したがって、復号化の処理ユニットは、例えばコーディングユニットであることができる。コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットを分割して取得できる。そして、画像復号化装置200を介して復号化及び出力された復元画像信号は、再生装置(図示せず)を介して再生できる。
画像復号化装置200は、図2の画像符号化装置から出力された信号をビットストリーム形式で受信することができる。受信された信号は、エントロピー復号化部210を介して復号化できる。例えば、エントロピー復号化部210は、前記ビットストリームをパーシングして画像復元(又はピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出することができる。前記ビデオ/画像情報は、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。画像復号化装置は、画像を復号化するために、前記パラメータセットに関する情報及び/又は前記一般制限情報をさらに用いることができる。本開示で言及されたシグナリング情報、受信される情報及び/又はシンタックス要素は、前記復号化手順を介して復号化されることにより、前記ビットストリームから取得されることができる。例えば、エントロピー復号化部210は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内の情報を復号化し、画像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピー復号化方法は、ビットストリームから各シンタックス要素に該当するビン(bin)を受信し、復号化対象シンタックス要素情報と周辺ブロック及び復号化対象ブロックの復号化情報、或いは以前ステップで復号化されたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいてビン(bin)の発生確率を予測してビンの算術復号化(arithmetic decoding)を行うことにより、各シンタックス要素の値に該当するシンボルを生成することができる。この時、CABACエントロピー復号化方法は、コンテキストモデルの決定後、次のシンボル/ビンのコンテキストモデルのために、復号化されたシンボル/ビンの情報を用いてコンテキストモデルを更新することができる。エントロピー復号化部210で復号化された情報のうち、予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)に提供され、エントロピー復号化部210でエントロピー復号化が行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピー復号化部210で復号化された情報のうち、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、画像符号化装置から出力された信号を受信する受信部(図示せず)が画像復号化装置200の内/外部要素としてさらに備えられることができ、又は受信部はエントロピー復号化部210の構成要素として備えられることもできる。
一方、本開示による画像復号化装置は、ビデオ/画像/ピクチャ復号化装置と呼ばれることができる。前記画像復号化装置は、情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及び/又はサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)を含むこともできる。前記情報デコーダは、エントロピー復号化部210を含むことができ、前記サンプルデコーダは、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、メモリ250、インター予測部260及びイントラ予測部265のうちの少なくとも一つを含むことができる。
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロック形式で再整列することができる。この場合、前記再整列は、画像符号化装置で行われた係数スキャン順序に基づいて行われることができる。逆量子化部220は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて、量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部230では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得することができる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピー復号化部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか或いはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モード(予測技法)を決定することができる。
予測部が後述の様々な予測方法(技法)に基づいて予測信号を生成することができるのは、画像符号化装置100の予測部についての説明で述べたのと同様である。
イントラ予測部265は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。イントラ予測部185についての説明は、イントラ予測部265に対しても同様に適用されることができる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロックとの動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)情報をさらに含むことができる。インター予測の場合に、周辺ブロックは、現在ピクチャ内に存在する空間周辺ブロック(spatial neighboring block)と参照ピクチャに存在する時間周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出することができる。様々な予測モード(技法)に基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモード(技法)を指示する情報を含むことができる。
加算部235は、取得されたレジデュアル信号を予測部(インター予測部260及び/又はイントラ予測部265を含む)から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることにより、復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用できる。加算部155についての説明は、加算部235に対しても同様に適用できる。加算部235は、復元部又は復元ブロック生成部と呼ばれることもある。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するようにフィルタリングを介して次のピクチャのインター予測のために使用されることもできる。
フィルタリング部240は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ250、具体的にはメモリ250のDPBに保存することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、双方向フィルタ(bilateral filter)などを含むことができる。
メモリ250のDPBに保存された(修正された)復元ピクチャは、インター予測部260で参照ピクチャとして使用されることができる。メモリ250は、現在ピクチャ内の動き情報が導出された(又は復号化された)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を保存することができる。前記保存された動き情報は、空間周辺ブロックの動き情報又は時間周辺ブロックの動き情報として活用するために、インター予測部260に伝達することができる。メモリ250は、現在ピクチャ内の復元されたブロックの復元サンプルを保存することができ、イントラ予測部265に伝達することができる。
本明細書において、画像符号化装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施例は、それぞれ画像復号化装置200のフィルタリング部240、インター予測部260及びイントラ予測部265にも、同様に又は対応するように適用されることができる。
コーディング階層及び構造の例
本文書によるコーディングされたビデオ/画像は、例えば、後述するコーディング階層及び構造に従って処理できる。
図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ユニットタイプ情報を含むことができる。
図4に示されているように、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ユニットタイプの一例を羅列する。
-DCI(Decoding capability information) NAL unit type(NUT):DCIを含むNALユニットに対するタイプ
-VPS(Video Parameter Set) NUT:VPSを含むNALユニットに対するタイプ
-SPS(Sequence Parameter Set) NUT:SPSを含むNALユニットに対するタイプ
-PPS(Picture Parameter Set) NUT:PPSを含むNALユニットに対するタイプ
-APS(Adaptation Parameter Set) NUT:APSを含むNALユニットに対するタイプ
-PH(Picture header) NUT:ピクチャヘッダーを含むNULユニットに対するタイプ
上述したNALユニットタイプは、NALユニットタイプのためのシンタックス情報を有し、前記シンタックス情報は、NALユニットヘッダーに保存されてシグナリングされることができる。例えば、前記シンタックス情報はnal_unit_typeであり、NALユニットタイプはnal_unit_typeの値を用いて特定できる。
一方、一つのピクチャは、複数のスライスを含むことができ、一つのスライスは、スライスヘッダー及びスライスデータを含むことができる。この場合、一つのピクチャ内の複数のスライス(スライスヘッダー及びスライスデータ集合)に対して一つのピクチャヘッダーがさらに付加されることができる。前記ピクチャヘッダー(ピクチャヘッダーシンタックス)は、前記ピクチャに共通に適用可能な情報/パラメータを含むことができる。前記スライスヘッダー(スライスヘッダーシンタックス)は、前記スライスに共通に適用可能な情報/パラメータを含むことができる。前記APS(APSシンタックス)又はPPS(PPSシンタックス)は、一つ以上のスライス又はピクチャに共通に適用可能な情報/パラメータを含むことができる。前記SPS(SPSシンタックス)は、一つ以上のシーケンスに共通に適用可能な情報/パラメータを含むことができる。前記VPS(VPSシンタックス)は、多重レイヤーに共通に適用可能な情報/パラメータを含むことができる。前記DCIは、復号化能力(decoding capability)に関連する情報/パラメータを含むことができる。
本開示において、ハイレベルシンタックス(High level syntax、HLS)は、前記APSシンタックス、PPSシンタックス、SPSシンタックス、VPSシンタックス、DCIシンタックス、ピクチャヘッダーシンタックス、及びスライスヘッダーシンタックスのうちの少なくとも一つを含むことができる。また、本開示において、下位レベルシンタックス(low level syntax、LLS)は、例えば、スライスデータシンタックス、CTUシンタックス、符号化単位シンタックス、変換単位シンタックスなどを含むことができる。
本開示において、符号化装置から復号化装置へ符号化されてビットストリーム形式でシグナリングされる画像/ビデオ情報は、ピクチャ内のパーティショニング関連情報、イントラ/インター予測情報、レジデュアル情報、インループフィルタリング情報などを含むだけでなく、前記スライスヘッダーの情報、前記ピクチャヘッダーの情報、前記APSの情報、前記PPSの情報、SPSの情報、前記VPSの情報及び/又は前記DCIの情報を含むことができる。また、前記画像/ビデオ情報は、一般制限情報(general constraint information)及び/又はNALユニットヘッダーの情報をさらに含むことができる。
NALユニットタイプ(NAL unit type)の概要
一般に、1つのピクチャに対して1つのNALユニットタイプが設定できる。上述したように、NALユニットタイプを表すシンタックス情報は、NALユニット内のNALユニットヘッダーに保存されてシグナリングされることができる。例えば、前記シンタックス情報はnal_unit_typeであり、NALユニットタイプはnal_unit_type値を用いて特定できる。NALユニットタイプの一例は、下記表1の通りである。
表1を参照すると、VCL NALユニットタイプは、ピクチャタイプによって、0番乃至12番のNALユニットタイプに分類されることができる。また、non-VCL NALユニットタイプは、パラメータの類型によって、13番乃至31番のNALユニットタイプに分類されることができる。VCL NALユニットタイプをピクチャタイプ別にまとめると、次のとおりである。
(1)IRAP(Intra Random Access Point)ピクチャ
IRAPピクチャは、ランダムアクセス可能なピクチャであって、全てのVCL NALユニットがIDR_W_RADL乃至CRA_NUTの範囲内で同じNALユニットタイプを有するピクチャを意味することができる。IRAPピクチャは、IDR(Instantaneous decoding refresh)ピクチャ及びCRA(Clean random access)ピクチャを含むことができる。IRAPピクチャは、復号化過程で同じレイヤー内の参照ピクチャに基づくインター予測を利用しないことができる。復号化順にビットストリーム内の1番目のピクチャは、IRAPピクチャ又はGDR(Gradual Decoding Refresh)ピクチャであり得る。単一レイヤービットストリームに対して、参照する必要のあるパラメータセットが利用可能である場合、復号化順にIRAPピクチャに先行する如何なるピクチャも復号化しなくても、前記IRAPピクチャ及びCLVS(coded layer video sequence)内で復号化順に前記IRAPピクチャに後続する全てのnon-RASL(Random Access Skipped Leading)ピクチャは正しく復号化できる。
(2)CRA(Clean Random Access)ピクチャ
CRAピクチャは、それぞれのVCL NALユニットがCRA_NUTに等しいNALユニットタイプを有するIRAPピクチャを意味することができる。CRAピクチャは、復号化過程でインター予測を利用しないことができる。CRAピクチャは、復号化順にビットストリーム内で1番目のピクチャであってもよく、或いは1番目以後のピクチャであってもよい。CRAピクチャは、RADL又はRASLピクチャに関連することができる。CRAピクチャに対してNoOutputBeforeRecoveryFlagが第1値(例えば、1)を有する場合、前記CRAピクチャに関連するRASLピクチャは、ビットストリーム内に存在しないピクチャを参照するので復号化できず、その結果、画像復号化装置によって出力されないことができる。ここで、NoOutputBeforeRecoveryFlagは、復号化順にリカバリポイントピクチャ(recovery point picture)に先行するピクチャが前記リカバリポイントピクチャよりも先に出力されるか否かを示すことができる。例えば、第1値(例えば、1)のNoOutputBeforeRecoveryFlagは、復号化順にリカバリポイントピクチャに先行するピクチャが前記リカバリポイントピクチャよりも先に出力できないことを示すことができる。この場合、CRAピクチャは、ビットストリーム内で1番目のピクチャ又は復号化順にEOS(End Of Sequence)NALユニットに後続する1番目のピクチャである可能性があり、これは、ランダムアクセスが発生した場合を意味することができる。これとは異なり、第2値(例えば、0)を有するNoOutputBeforeRecoveryFlagは、復号化順にリカバリポイントピクチャに先行するピクチャが前記リカバリポイントピクチャよりも先に出力できることを示すことができる。この場合、CRAピクチャは、ビットストリーム内で1番目のピクチャ又は復号化順にEOS NALユニットに後続する1番目のピクチャではない可能性があり、これは、ランダムアクセスが発生していない場合を意味することができる。
(3)IDR(Instantaneous Decoding Refresh)ピクチャ
IDRピクチャは、それぞれのVCL NALユニットがIDR_W_RADL又はIDR_N_LPに等しいNALユニットタイプを有するIRAPピクチャを意味することができる。IDRピクチャは、復号化過程でインター予測を利用しないことができる。IDRピクチャは、復号化順にビットストリーム内で1番目のピクチャであってもよく、又は1番目以後のピクチャであってもよい。それぞれのIDRピクチャは、復号化順にCVS(coded video sequence)の1番目のピクチャであり得る。IDRピクチャに対するそれぞれのVCL NALユニットがIDR_W_RADLに等しいNALユニットタイプを有する場合、前記IDRピクチャは、関連したRADLピクチャを有することができる。これとは異なり、IDRピクチャに対するそれぞれのVCL NALユニットがIDR_N_LPに等しいNALユニットタイプを有する場合、前記IDRピクチャは、関連したリーディングピクチャ(leading pictures)を有しないことができる。一方、IDRピクチャは、関連したRASLピクチャを有しないことができる。
(4)RADL(Random Access Decodable Leading)ピクチャ
RADLピクチャは、それぞれのVCL NALユニットがRADL_NUTに等しいNALユニットタイプを有するピクチャを意味することができる。すべてのRADLピクチャはリーディングピクチャであり得る。
(5)RASL(Random Access Skipped Leading)ピクチャ
RASLピクチャは、少なくとも1つのVCL NALユニットがRASL_NUTに等しいNALユニットタイプを有し、残りのVCL NALユニットがRASL_NUT又はRADL_NUTに等しいNALユニットタイプを有するピクチャを意味することができる。全てのRASLピクチャは、関連したCRAピクチャのリーディングピクチャであり得る。
(6)トレーリング(Trailing)ピクチャ
トレーリングピクチャは、それぞれのVCL NALユニットがTRAIL_NUTに等しいNALユニットタイプを有するピクチャを意味することができる。IRAP又はGDRピクチャに関連したトレーリングピクチャは、復号化順に前記IRAP又はGDRピクチャに後続することができる。出力順に関連したIRAPピクチャに後続し、復号化順に前記関連したIRAPピクチャに先行するピクチャは許容されないことがある。
(7)GDR(Gradual Decoding Refresh)ピクチャ
GDRピクチャは、ランダムアクセス可能なピクチャであって、それぞれのVCL NALユニットがGDR_NUTに等しいNALユニットタイプを有するピクチャを意味することができる。
GDR機能(feauture)は、復元されたピクチャの全ての部分が正しく復号化されない可能性のあるピクチャから復号化が始まるが、前記ピクチャに後続するピクチャ(subsequence picture)内で復元されたピクチャの正しく復号化された部分が、全体ピクチャ(whole picture)が正しく復号化されるまで次第に増加することを意味することができる。このとき、復号化過程がGDR機能で始まり得るピクチャをGDRピクチャといい、全体ピクチャが正しく復号化されるGDRピクチャ以後の1番目のピクチャをリカバリポイントピクチャという。
(8)STSA(Step-wise Temporal Sublayer Access)ピクチャ
STSAピクチャは、ランダムアクセス可能なピクチャであって、それぞれのVCL NALユニットがSTSA_NUTに等しいNALユニットタイプを有するピクチャを意味することができる。
ハイレベルシンタックス
上述したように、画像/ビデオコーディングのためにハイレベルシンタックス(high level syntax、HLS)が符号化/シグナリングされることができる。画像/ビデオ情報は、ハイレベルシンタックス(HLS)を含むことができ、前記画像/ビデオ情報に基づいて画像/ビデオコーディング方法が行われることができる。
画像/ビデオ情報の一例として、参照ピクチャリスト情報(例えば、ref_pic_lists)は、ピクチャパラメータセット(picture parameter set)内でシグナリングされるrpl_info_in_ph_flagシンタックスに基づいて、ピクチャヘッダー(picture header)又はスライスヘッダー(slice header)内でシグナリングされることができる。ここで、rpl_info_in_ph_flagは、参照ピクチャリスト情報がピクチャヘッダー内に存在するか否かを示すことができる。例えば、第1値(例えば、1)のrpl_info_in_ph_flagは、参照ピクチャリスト情報がピクチャヘッダー内に存在し、スライスヘッダー内に存在しないことを示すことができる。これとは異なり、第2値(例えば、0)のrpl_info_in_ph_flagは、参照ピクチャリスト情報がピクチャヘッダー内に存在せず、スライスヘッダー内に存在し得ることを示すことができる。
図5は、ピクチャヘッダーの一例を示す図である。
図5を参照すると、ピクチャヘッダーは、シンタックス要素gdr_or_irap_pic_flagを含むことができる。gdr_or_irap_pic_flagは、現在ピクチャがGDR(Gradual Decoding Refresh)又はIRAP(Intra Random Access Point)ピクチャであるか否かを示すことができる。例えば、第1値(例えば、1)のgdr_or_irap_pic_flagは、現在ピクチャがGDR又はIRAPピクチャであることを示すことができる。これとは異なり、第2値(例えば、0)のgdr_or_irap_pic_flagは、現在ピクチャがGDRピクチャではなく、IRAPピクチャであり得ることを示すことができる。
また、ピクチャヘッダーはシンタックス要素gdr_pic_flagを含むことができる。gdr_pic_flagは、現在ピクチャがGDRピクチャであるか否かを示すことができる。例えば、第1値(例えば、1)のgdr_pic_flagは、現在ピクチャがGDRピクチャであることを示すことができる。これとは異なり、第2値(例えば、0)のgdr_pic_flagは、現在ピクチャがGDRピクチャではないことを示すことができる。gdr_pic_flagが存在しなければ(すなわち、シグナリングされなければ)、gdr_pic_flagの値は第2値(例えば、0)と推論されることができる。GDRピクチャが利用不可であり、CLVS(coded layer video sequence)内に存在しない場合(例えば、sps_gdr_enabled_flag==0)、gdr_pic_flagの値は、第2値(例えば、0)に制限されることができる。一方、上述したgdr_or_irap_pic_flagが第1値(例えば、1)を有し、gdr_pic_flagが第2値(例えば、0)を有する場合、現在ピクチャはIRAPピクチャと決定されることができる。
また、ピクチャヘッダーは、シンタックス要素ph_inter_slice_allowed_flagを含むことができる。ph_inter_slice_allowed_flagは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を有することができるか否かを示すことができる。例えば、第1値(例えば、1)のph_inter_slice_allowed_flagは、現在ピクチャ内にBスライスタイプ(すなわち、sh_slice_type=0)又はPスライスタイプ(すなわち、sh_slice_type=1)を有する1つ以上の符号化スライスが存在し得ることを示すことができる。これとは異なり、第2値(例えば、0)のph_inter_slice_allowed_flagは、現在ピクチャ内のすべての符号化スライスがIスライスタイプ(すなわち、sh_slice_type=2)を有することを示すことができる。
また、ピクチャヘッダーは、シンタックス要素ph_intra_slice_allowed_flagを含むことができる。ph_intra_slice_allowed_flagは、現在ピクチャ内に1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を有することができるか否かを示すことができる。例えば、第1値(例えば、1)のph_intra_slice_allowed_flagは、現在ピクチャ内にIスライスタイプ(すなわち、sh_slice_type=2)を有する1つ以上の符号化スライスが存在し得ることを示すことができる。これとは異なり、第2値(例えば、0)のph_intra_slice_allowed_flagは、現在ピクチャ内のすべての符号化スライスがBスライスタイプ(すなわち、sh_slice_type=0)又はPスライスタイプ(すなわち、sh_slice_type=1)を有することを示すことができる。ph_intra_slice_allowed_flagは、ph_intra_slice_allowed_flagが第1値(例えば、1)を有する場合にのみシグナリングされることができる。ph_intra_slice_allowed_flagが存在しなければ、ph_intra_slice_allowed_flagの値は第1値(例えば、1)と推論されることができる。
一方、前述したrpl_info_in_ph_flagが第1値(例えば、1)を有する場合、参照ピクチャリスト情報ref_pic_listsは、ピクチャヘッダー内でシグナリングされることができる。
上述したように、ピクチャヘッダーは、インター予測された(inter-predicted)スライス及びイントラ予測された(intra-predicted)スライスに対するシンタックス要素のシグナリングがピクチャヘッダー内で許容されるか否かを示す2つのシンタックス要素(例えば、ph_inter_slice_allowed_flag及びph_intra_slice_allowed_flag)を含むことができる。しかしながら、GDRピクチャの場合、ピクチャの属性上、インタースライスタイプを有する1つ以上のスライスを含むので、GDRピクチャに対してph_inter_slice_allowed_flagをシグナリングする必要がない。しかし、図5のピクチャヘッダーでは、ph_inter_slice_allowed_flagが条件なしにシグナリングされるので、シグナリングオーバーヘッドが不要に増加する問題が発生する。
図6は、スライスヘッダーの一例を示す図である。
図6を参照すると、上述したrpl_info_in_ph_flagが第2値(例えば、0)を有する場合、参照ピクチャリスト情報ref_pic_listsは、所定の条件下にスライスヘッダー内でシグナリングされることができる。具体的には、rpl_info_in_ph_flagが第2値(例えば、0)を有し、NALユニットタイプがIDR_W_RADL及びIDR_N_LPではないか(すなわち、nal_unit_type!=IDR_W_RADL && nal_unit_type!=IDR_N_LP)、或いはsps_idr_rpl_presetn_flagが第1値(例えば、1)を有する場合、ref_pic_listsがシグナリングされることができる。ここで、第1値(例えば、1)のsps_idr_rpl_present_flagは、参照ピクチャリストに関するシンタックス要素が、IDR_W_RADL又はIDR_N_LPに等しいNALユニットタイプを有するスライスのスライスヘッダー内に存在し得ることを示すことができる。
一般に、IDR_W_RADL又はIDR_N_LPに等しいNALユニットタイプを有するIDRピクチャの場合、ピクチャの属性上、参照ピクチャリスト情報が不要である。したがって、参照ピクチャリスト情報ref_pic_listをシグナリングするために、NALユニットヘッダー内でシグナリングされるNALユニットタイプに関する情報であるnal_unit_type値を確認する必要がある。一方、nal_unit_typeがIDRピクチャに関連した値を有しても、ビットストリーム抽出及び併合シナリオの場合、参照ピクチャリスト情報が必要であり得る。したがって、参照ピクチャリスト情報ref_pic_listをシグナリングするために、スライスヘッダー内に参照ピクチャリストに関するシンタックス要素が存在するか否かを示すsps_idr_rpl_present_flagを確認する必要がある。
しかしながら、ピクチャヘッダー内において、参照ピクチャリスト情報は、上述した追加のシグナリング条件を考慮せずにシグナリングされる。すなわち、ピクチャヘッダー内で、参照ピクチャリスト情報ref_pic_listは、rpl_info_in_ph_flagに基づいてシグナリングされるだけである。これにより、ビットストリーム抽出及び併合を伴わないIDRピクチャに対しても、参照ピクチャリスト情報ref_pic_listが不要にシグナリングできるという問題が発生する。
上述した問題を解決するために、本開示の実施例によれば、ピクチャヘッダー内に参照ピクチャリスト情報のシグナリング条件が追加されるか、或いは現在ピクチャがIDRピクチャであることを示すフラグが追加され得る。または、ピクチャヘッダー内に、インタースライス関連シンタックス要素のシグナリング条件が追加され得る。以下、添付図面を参照して、本開示の実施例を詳細に説明する。
実施例1
本開示の実施例1によれば、ピクチャヘッダー内で、参照ピクチャリスト情報は、IDRピクチャの参照ピクチャリストに関するシンタックス要素がスライスヘッダー内に存在するか否か(すなわち、sps_idr_rpl_present_flag)に基づいてシグナリングされることができる。
図7は、本開示の一実施例によるピクチャヘッダーを示す図である。
図7を参照すると、ピクチャヘッダーは、現在ピクチャがGDR(Gradual Decoding Refresh)又はIRAP(Intra Random Access Point)ピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagを含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
ピクチャヘッダー内で、参照ピクチャリスト情報ref_pic_listsは、所定の第1条件に基づいてシグナリングされることができる(710)。具体的には、ref_pic_listsは、ピクチャヘッダー内に参照ピクチャリスト情報が存在し(すなわち、rpl_info_in_ph_flag==1)、IDR_N_LP又はIDR_W_RADLに等しいNALユニットタイプを持つスライスのスライスヘッダー内に参照ピクチャリストに関するシンタックス要素が存在する場合(すなわち、sps_idr_rpl_present_flag==1)にのみ、シグナリングされることができる。ここで、IDR_N_LPは、ビットストリーム内に関連した(associated)リーディングピクチャ(例えば、RASL及びRADLピクチャ)を持たないIDRピクチャのNALユニットタイプを意味することができる。また、IDR_W_RADLは、ビットストリーム内に関連したRASLピクチャを持たないが、関連したRADLピクチャを持つことができるIDRピクチャのNALユニットタイプを意味することができる
図7の場合、sps_idr_rpl_present_flagが第1値(例えば、1)を有するか否かに基づいて、参照ピクチャリスト情報ref_pic_listsがシグナリングされるという点で、図5のピクチャヘッダーとは異なり得る。すなわち、スライスヘッダー内に参照ピクチャリストに関するシンタックス要素が存在しない場合(すなわち、sps_idr_rpl_present_flag==0)、ref_pic_listsは、ピクチャヘッダー内でシグナリングされないことがある。これにより、ピクチャヘッダー内で、IDRピクチャに対する参照ピクチャリスト情報が不要にシグナリングされるという問題が解消できる。
実施例2
本開示の実施例2によれば、ピクチャヘッダー内に現在ピクチャがIDRピクチャであるか否かを示すシンタックス要素が新たに定義されることができる。
図8は、本開示の一実施例によるidr_pic_flagを含むピクチャヘッダーを示す図である。
図8を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、シンタックス要素idr_pic_flagをさらに含むことができる(810)。idr_pic_flagは、現在ピクチャがIDRピクチャであるか否かを示すことができる。例えば、第1値(例えば、1)のidr_pic_flagは、現在ピクチャがIDRピクチャであることを示すことができる。これとは異なり、第2値(例えば、0)のidr_pic_flagは、現在ピクチャがIDRピクチャではないことを示すことができる。idr_pic_flagが存在しない場合、idr_pic_flagは第2値(例えば、0)と推論されることができる。
idr_pic_flagは、gdr_or_irap_pic_flagに基づいて条件的にシグナリングされることができる。例えば、gdr_or_irap_pic_flagが、現在ピクチャがGDR又はIRAPピクチャであることを示す第1値(例えば、1)を有する場合、idr_pic_flagはシグナリングされることができる。これとは異なり、gdr_or_irap_pic_flagが、現在ピクチャがGDRピクチャではなく、IRAPピクチャであり得ることを示す第2値(例えば、0)を有する場合、idr_pic_flagはシグナリングされないことがある。このように、idr_pic_flagは、gdr_pic_flagと同じ条件(すなわち、gdr_or_irap_pic_flag==1)の下でシグナリングされることができる。
一方、他の実施例において、idr_pic_flagは、gdr_or_irap_pic_flag及びgdr_pic_flagに基づいて条件的にシグナリングされることもできる。
図9は、本開示の他の実施例によるidr_pic_flagを含むピクチャヘッダーを示す図である。
図9を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、現在ピクチャがIDRピクチャであるか否かを示すシンタックス要素idr_pic_flagをさらに含むことができる(910)。idr_pic_flagのセマンティクスは、図8を参照して上述した通りである。
idr_pic_flagは、gdr_or_irap_pic_flag及びgdr_pic_flagに基づいて条件的にシグナリングされることができる。例えば、gdr_or_irap_pic_flagが、現在ピクチャがGDR又はIRAPピクチャであることを示す第1値(例えば、1)を有し、gdr_pic_flagが、現在ピクチャがGDRピクチャでないことを示す第2値(例えば、0)を有する場合、idr_pic_flagはシグナリングされることができる。これとは異なり、gdr_or_irap_pic_flagが、現在ピクチャがGDRピクチャではなくIRAPピクチャであり得ることを示す第2値(例えば、0)を有するか、或いは、gdr_or_irap_pic_flagが、現在ピクチャがGDRピクチャであることを示す第1値(例えば、1)を有する場合、idr_pic_flagはシグナリングされないことがある。これにより、idr_pic_flagは、現在ピクチャがIRAPピクチャである場合にのみシグナリングされることができる。
このように、現在ピクチャがIDRピクチャであるか否かを示すidr_pic_flagが明示的にシグナリングされることにより、現在ピクチャがIDRピクチャであることを前提とする様々なシンタックス要素のシグナリング条件が単純化できる。
実施例3
本開示の実施例3によれば、ピクチャヘッダー内で、参照ピクチャリスト情報は、現在ピクチャがIDRピクチャであるか否かに基づいてシグナリングされることができる。
図10は、本開示の一実施例によるピクチャヘッダーを示す図である。
図10を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
一実施例において、gdr_or_irap_pic_flagが第1値(例えば、1)を有し、gdr_pic_flagが第2値(例えば、0)を有し(すなわち、現在ピクチャがIRAPピクチャであり)、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が第1値(例えば、1)を有する場合、ph_inter_slice_allowed_flagの値は第2値(例えば、0)に設定されることができる。ここで、第1値(例えば、1)のvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]は、インデックスGeneralLayerIdx[nuh_layer_id]を有するレイヤーがインターレイヤー予測を利用しないことを示すことができる。
また、ピクチャヘッダーは、現在ピクチャがIDRピクチャであるか否かを示すシンタックス要素idr_pic_flagをさらに含むことができる。idr_pic_flagのセマンティクス及びシグナリング条件は、図8を参照して上述した通りである。
ピクチャヘッダー内で、参照ピクチャリスト情報ref_pic_listsは、所定の第2条件に基づいてシグナリングされることができる(1010)。具体的には、ref_pic_listsは、ピクチャヘッダー内に参照ピクチャリスト情報が存在し(すなわち、rpl_info_in_ph_flag==1)、現在ピクチャがIDRピクチャでない場合(すなわち、idr_pic_flag==0)にのみ、シグナリングされることができる。
図10の場合、現在ピクチャがIDRピクチャであるか否かに基づいて、参照ピクチャリスト情報ref_pic_listsがシグナリングされるという点で、図5のピクチャヘッダーとは異なり得る。すなわち、現在ピクチャがIDRピクチャである場合(すなわち、idr_pic_flag==1)、ref_pic_listsはピクチャヘッダー内でシグナリングされないことがある。これにより、ピクチャヘッダー内で、IDRピクチャに対する参照ピクチャリスト情報が不要にシグナリングされるという問題が解消できる。
実施例4
本開示の実施例4によれば、ピクチャヘッダー内で、参照ピクチャリスト情報は、現在ピクチャがIDRピクチャであるか否か、及びIDRピクチャの参照ピクチャリストに関するシンタックス要素がスライスヘッダー内に存在するか否かに基づいてシグナリングされることができる。
図11は、本開示の一実施例によるピクチャヘッダーを示す図である。
図11を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
一実施例において、gdr_or_irap_pic_flagが第1値(例えば、1)を有し、gdr_pic_flagが第2値(例えば、0)を有し(すなわち、現在ピクチャがIRAPピクチャであり)、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が第1値(例えば、1)を有する場合、ph_inter_slice_allowed_flagの値は第2値(例えば、0)に設定されることができる。ここで、第1値(例えば、1)のvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]は、インデックスGeneralLayerIdx[nuh_layer_id]を有するレイヤーがインターレイヤー予測を利用しないことを示すことができる。
また、ピクチャヘッダーは、現在ピクチャがIDRピクチャであるか否かを示すシンタックス要素idr_pic_flagをさらに含むことができる。idr_pic_flagのセマンティクス及びシグナリング条件は、図8を参照して上述した通りである。
ピクチャヘッダー内で、参照ピクチャリスト情報ref_pic_listsは、所定の第3条件に基づいてシグナリングされることができる(1110)。具体的には、ref_pic_listsは、ピクチャヘッダー内に参照ピクチャリスト情報が存在し(すなわち、rpl_info_in_ph_flag==1)、参照ピクチャリストに関するシンタックス要素がIDR_N_LP又はIDR_W_RADLに等しいNALユニットタイプを有するスライスのスライスヘッダー内に存在するか、或いは、現在ピクチャがIDRピクチャでない場合(すなわち、sps_idr_rpl_present_flag==1又はidr_pic_flag==0)にのみ、シグナリングされることができる。
図11の場合、sps_idr_rpl_present_flagが第1値(例えば、1)を有するか、或いは、idr_pic_flagが第2値(例えば、0)を有するかに基づいて、参照ピクチャリスト情報ref_pic_listsがシグナリングされるという点で、図5のピクチャヘッダーとは異なり得る。つまり、スライスヘッダー内にIDRピクチャの参照ピクチャリストに関するシンタックス要素が存在せず(すなわち、sps_idr_rpl_present_flag==0)、現在ピクチャがIDRピクチャである場合(すなわち、idr_pic_flag==1)、ref_pic_listsはピクチャヘッダー内でシグナリングされないことがある。これにより、ピクチャヘッダー内で、IDRピクチャに対する参照ピクチャリスト情報が不要にシグナリングされるという問題が解消できる。
実施例5
本開示の実施例5によれば、ピクチャヘッダー内で、参照ピクチャリスト情報は、現在ピクチャがIDRピクチャであるか否か、及びIDRピクチャの参照ピクチャリストに関するシンタックス要素がスライスヘッダーに存在するか否かに基づいてシグナリングされることができる。
図12は、本開示の一実施例によるピクチャヘッダーを示す図である。
図12を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。また、ピクチャヘッダーは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_inter_slice_allowed_flag、及び現在ピクチャ内の1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すシンタックス要素ph_intra_slice_allowed_flagを含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、現在ピクチャがIDRピクチャであるか否かを示すシンタックス要素idr_pic_flagをさらに含むことができる。idr_pic_flagは、現在ピクチャがGDRピクチャでない場合(すなわち、gdr_pic_flag==0)にのみシグナリングされるという点で、図11のidr_pic_flagとは異なり得る。すなわち、gdr_pic_flagが第1値(例えば、1)を有する場合、idr_pic_flagはシグナリングされないことがある。一方、gdr_pic_flagがシグナリングされなくても第2値(例えば、0)に設定される場合、idr_pic_flagはシグナリングされることができる。
ピクチャヘッダー内で、参照ピクチャリスト情報ref_pic_listsは、所定の第3条件に基づいてシグナリングされることができる(1210)。具体的には、ref_pic_listsは、ピクチャヘッダー内に参照ピクチャリスト情報が存在し(すなわち、rpl_info_in_ph_flag==1)、参照ピクチャリストに関するシンタックス要素がIDR_N_LP又はIDR_W_RADLに等しいNALユニットタイプを有するスライスのスライスヘッダー内に存在するか、或いは現在ピクチャがIDRピクチャでない場合(すなわち、sps_idr_rpl_present_flag==1又はidr_pic_flag==0)にのみ、シグナリングされることができる。
図12の場合、sps_idr_rpl_present_flagが第1値(例えば、1)を有するか、或いはidr_pic_flagが第2値(例えば、0)を有するか否かに基づいて、参照ピクチャリスト情報ref_pic_listsがシグナリングされるという点で、図5のピクチャヘッダーとは異なり得る。つまり、スライスヘッダー内にIDRピクチャの参照ピクチャリストに関するシンタックス要素が存在せず(すなわち、sps_idr_rpl_present_flag==0)、現在ピクチャがIDRピクチャである場合(すなわち、idr_pic_flag==1)、ref_pic_listsはピクチャヘッダー内でシグナリングされないことがある。これにより、ピクチャヘッダー内で、IDRピクチャに対する参照ピクチャリスト情報が不要にシグナリングされるという問題が解消できる。
実施例6
本開示の実施例6によれば、ピクチャヘッダー内で、現在ピクチャ内にインタースライスが許容されるか否かを示す情報は、現在ピクチャがGDRピクチャであるか否かに基づいてシグナリングされることができる。
図13は、本開示の一実施例によるピクチャヘッダーを示す図である。
図13を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、シンタックス要素ph_inter_slice_allowed_flagを含むことができる。ph_inter_slice_allowed_flagは、現在ピクチャ内の1つ以上のスライスがインタースライスタイプ(例えば、Bスライスタイプ又はPスライスタイプ)を持つことができるか否かを示すことができる。例えば、第1値(例えば、1)のph_inter_slice_allowed_flagは、現在ピクチャ内にBスライスタイプ(すなわち、slice_type=0)又はPスライスタイプ(すなわち、slice_type=1)を持つ1つ以上の符号化スライスが存在し得ることを示すことができる。これとは異なり、第2値(例えば、0)のph_inter_slice_allowed_flagは、現在ピクチャ内のすべての符号化スライスがIスライスタイプ(すなわち、slice_type=2)を有することを示すことができる。
ph_inter_slice_allowed_flagは、現在ピクチャがGDRピクチャでない場合にのみシグナリングされることができる(1310)。例えば、gdr_pic_flagが、現在ピクチャがGDRピクチャでないことを示す第2値(例えば、0)を有する場合、ph_inter_slice_allowed_flagはシグナリングされることができる。これとは異なり、gdr_pic_flagが、現在ピクチャがGDRピクチャであることを示す第1値(例えば、1)を有する場合、ph_inter_slice_allowed_flagはシグナリングされないことがある。ph_inter_slice_allowed_flagがシグナリングされない場合、ph_inter_slice_allowed_flagの値は第1値(例えば、1)と推論されることができる。
また、ピクチャヘッダーは、シンタックス要素ph_intra_slice_allowed_flagを含むことができる。ph_intra_slice_allowed_flagは、現在ピクチャ内に1つ以上のスライスがイントラスライスタイプ(例えば、Iスライスタイプ)を持つことができるか否かを示すことができる。例えば、第1値(例えば、1)のph_intra_slice_allowed_flagは、現在ピクチャ内にIスライスタイプ(すなわち、slice_type=2)を有する1つ以上の符号化スライスが存在し得ることを示すことができる。これとは異なり、第2値(例えば、0)のph_intra_slice_allowed_flagは、現在ピクチャ内のすべての符号化スライスがBスライスタイプ(すなわち、slice_type=0)又はPスライスタイプ(すなわち、slice_type=1)を持つことを示すことができる。
ph_intra_slice_allowed_flagは、現在ピクチャに対してインタースライスが許容される場合にのみシグナリングされることができる(1720)。例えば、ph_inter_slice_allowed_flagが、現在ピクチャ内にBスライスタイプ又はPスライスタイプを有する1つ以上の符号化スライスが存在し得ることを示す第1値(例えば、1)を有する場合、ph_intra_slice_allowed_flagはシグナリングされることができる。これとは異なり、ph_inter_slice_allowed_flagが、現在ピクチャ内のすべての符号化スライスがIスライスタイプを持つことを示す第2値(例えば、0)を有する場合、ph_inter_slice_allowed_flagはシグナリングされないことがある。ph_intra_slice_allowed_flagがシグナリングされない場合、ph_intra_slice_allowed_flagの値は第1値(例えば、1)と推論されることができる。
一方、他の実施例において、ph_intra_slice_allowed_flagは、現在ピクチャがGDRピクチャではなく、現在ピクチャに対してインタースライスが許容される場合にのみシグナリングされることもできる。
図14は、本開示の他の実施例によるピクチャヘッダーを示す図である。図14のピクチャヘッダーは、ph_intra_slice_allowed_flagのシグナリング条件を除いては、図13のピクチャヘッダーと同じ構造及びセマンティクスを有することができる。よって、重複した説明は省略する。
図14を参照すると、ピクチャヘッダー内で、ph_intra_slice_allowed_flagは、現在ピクチャがGDRピクチャではなく、現在ピクチャに対してインタースライスが許容される場合にのみシグナリングされることができる(1410)。例えば、gdr_pic_flagが、現在ピクチャがGDRピクチャでないことを示す第2値(例えば、0)を有し、ph_inter_slice_allowed_flagが現在ピクチャ内にBスライスタイプ又はPスライスタイプを持つ1つ以上の符号化スライスが存在し得ることを示す第1値(例えば、1)を有する場合、ph_intra_slice_allowed_flagはシグナリングされることができる。これとは異なり、gdr_pic_flagが、現在ピクチャがGDRピクチャであることを示す第1値(例えば、1)を有するか、或いは、ph_inter_slice_allowed_flagが、現在ピクチャ内のすべての符号化スライスがIスライスタイプを持つことを示す第2値(例えば、0)を有する場合、ph_intra_slice_allowed_flagはシグナリングされないことがある。ph_intra_slice_allowed_flagがシグナリングされない場合、ph_intra_slice_allowed_flagの値は第1値(例えば、1)と推論されることができる。
以上、図13及び図14を参照して上述したように、ph_inter_slice_allowed_flagは、現在ピクチャがGDRピクチャでない場合にのみシグナリングされることができる。これにより、ピクチャの属性上、インタースライスを含むことができるGDRピクチャに対して、ph_inter_slice_allowed_flagが不要にシグナリングされるという問題が解消できる。
実施例7
本開示の実施例7によれば、ピクチャヘッダー内で、現在ピクチャ内にインタースライスが許容されるか否かを示す情報は、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができるか否か、及び現在ピクチャがIRAPピクチャであるか否かに基づいてシグナリングされることができる。
図15は、本開示の一実施例によるピクチャヘッダーを示す図である。
図15を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、現在ピクチャに対してインタースライス(例えば、Bスライス又はPスライス)が許容されるか否かを示すシンタックス要素ph_inter_slice_allowed_flagを含むことができる。ph_inter_slice_allowed_flagのセマンティクスは、図13を参照して上述した通りである。
ph_inter_slice_allowed_flagは、所定の第4条件に基づいてシグナリングされることができる(1510)。具体的には、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができることを示す第2値(例えば、0)を有するか、或いは、gdr_or_irap_pic_flagが、現在ピクチャがGDRピクチャではなく、IRAPピクチャであり得ることを示す第2値(例えば、0)を有するか、或いは、gdr_pic_flagが、現在ピクチャがGDRピクチャであることを示す第1値(例えば、1)を有する場合(すなわち、!(vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] && gdr_or_irap_pic_flag && !gdr_pic_flag)==1)、ph_inter_slice_allowed_flagは、シグナリングされることができる。これとは異なり、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用しないことを示す第1値(例えば、1)を有し、gdr_or_irap_pic_flagが、現在ピクチャがGDR又はIRAPピクチャであることを示す第1値(例えば、1)を有し、gdr_pic_flagが、現在ピクチャがGDRピクチャでないことを示す第2値(例えば、0)を有する場合(すなわち、!(vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] && gdr_or_irap_pic_flag && !gdr_pic_flag)==0)、ph_inter_slice_allowed_flagは、シグナリングされず、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。つまり、現在ピクチャがインターレイヤー予測を利用しない独立したレイヤーに含まれているIRAPピクチャである場合、ph_inter_slice_allowed_flagは、シグナリングされず、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。
他の実施例において、ph_inter_slice_allowed_flagがシグナリングされない場合、現在ピクチャがGDRピクチャであれば(すなわち、gdr_or_irap_pic_flag==1 && gdr_pic_flag==1)、ph_inter_slice_allowed_flagは、現在ピクチャに対してインタースライスが許容されることを示す第1値(例えば、1)と推論されることができる。これとは異なり、現在ピクチャがGDRピクチャでなければ(例えば、現在ピクチャが独立したレイヤーに含まれているIRAPピクチャであれば(すなわち、gdr_or_irap_pic_flag==1 && gdr_pic_flag==0 && vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]==1))、ph_inter_slice_allowed_flagは、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。
一方、一実施例において、gdr_or_irap_pic_flagが第1値(例えば、1)を有し、gdr_pic_flagが第2値(例えば、0)を有し(すなわち、現在ピクチャがIRAPピクチャであり)、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が第1値(例えば、1)を有する場合、ph_inter_slice_allowed_flagの値は第2値(例えば、0)に設定されることができる。ここで、第1値(例えば、1)のvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]は、インデックスGeneralLayerIdx[nuh_layer_id]を有するレイヤーがインターレイヤー予測を利用しないことを示すことができる。
以上、図15を参照して上述したように、現在ピクチャがインターレイヤー予測を利用しない独立したレイヤーに属し、現在ピクチャがIRAPピクチャのみである場合(すなわち、!(vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]] && gdr_or_irap_pic_flag && !gdr_pic_flag)==0)、ph_inter_slice_allowed_flagは、シグナリングされないことがある。これにより、ピクチャの属性上、イントラスライスのみを含むことができるIRAPピクチャに対して、ph_inter_slice_allowed_flagが不要にシグナリングされるという問題が解消できる。
実施例8
本開示の実施例8によれば、ピクチャヘッダー内で、現在ピクチャ内にインタースライスが許容されるか否かを示す情報は、現在ピクチャがGDRピクチャであるか否か、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができるか否か、及び現在ピクチャがIRAPピクチャであるか否かに基づいてシグナリングされることができる。
図16は、本開示の一実施例によるピクチャヘッダーを示す図である。
図16を参照すると、ピクチャヘッダーは、現在ピクチャがGDR又はIRAPピクチャであるか否かを示すシンタックス要素gdr_or_irap_pic_flagと、現在ピクチャがGDRピクチャであるか否かを示すシンタックス要素gdr_pic_flagと、を含むことができる。前記シンタックス要素それぞれのセマンティクスは、図5を参照して上述した通りである。
また、ピクチャヘッダーは、現在ピクチャに対してインタースライス(例えば、Bスライス又はPスライス)が許容されるか否かを示すシンタックス要素ph_inter_slice_allowed_flagを含むことができる。ph_inter_slice_allowed_flagのセマンティクスは、図13を参照して上述した通りである。
ph_inter_slice_allowed_flagは、所定の第5条件に基づいてシグナリングされることができる(1610)。このとき、前記第5条件は、第5-1条件及び第5-2条件から構成されることができる。具体的には、前記第5-1条件は、gdr_pic_flagが、現在ピクチャがGDRピクチャでないことを示す第2値(例えば、0)を有する場合(すなわち、!(gdr_pic_flag)==1)を意味することができる。また、前記第5-2条件は、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができることを示す第2値(例えば、0)を有するか、或いは、gdr_or_irap_pic_flagが、現在ピクチャがGDRピクチャではなく、IRAPピクチャであり得ることを示す第2値(例えば、0)を有するか、或いは、gdr_pic_flagが、現在ピクチャがGDRピクチャであることを示す第1値(例えば、1)を有する場合(すなわち、!(vps_independent_layer_flag[GeneralLayerIdex[nuh_layer_id]] && gdr_or_irap_pic_flag && !gdr_pic_flag)==1)を意味することができる。前記第5-1条件及び前記第5-2条件の両方が真(true)である場合、ph_inter_slice_allowed_flagはシグナリングされることができる。これとは異なり、前記第5-1条件及び前記第5-2条件のうちの少なくとも1つが偽(flase)である場合、ph_inter_slice_allowed_flagは、シグナリングされず、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。つまり、現在ピクチャがGDRピクチャであるか、或いは現在ピクチャがインターレイヤー予測を利用しない独立したレイヤーに含まれているIRAPピクチャである場合、ph_inter_slice_allowed_flagは、シグナリングされず、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。
他の実施例において、ph_inter_slice_allowed_flagがシグナリングされない場合、現在ピクチャがGDRピクチャであれば(すなわち、gdr_or_irap_pic_flag==1 && gdr_pic_flag==1)、ph_inter_slice_allowed_flagは、現在ピクチャに対してインタースライスが許容されることを示す第1値(例えば、1)と推論されることができる。これとは異なり、現在ピクチャがGDRピクチャでなければ(例えば、現在ピクチャが独立したレイヤーに含まれているIRAPピクチャであれば(すなわち、gdr_or_irap_pic_flag==1 && gdr_pic_flag==0 && vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]==1))、ph_inter_slice_allowed_flagは、現在ピクチャに対してインタースライスが許容されないことを示す第2値(例えば、0)と推論されることができる。
一方、一実施例において、gdr_or_irap_pic_flagが第1値(例えば、1)を有し、gdr_pic_flagが第2値(例えば、0)を有し(すなわち、現在ピクチャがIRAPピクチャであり)、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が第1値(例えば、1)を有する場合、ph_inter_slice_allowed_flagの値は第2値(例えば、0)に設定されることができる。ここで、第1値(例えば、1)のvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]は、インデックスGeneralLayerIdx[nuh_layer_id]を有するレイヤーがインターレイヤー予測を利用しないことを示すことができる。
以上、図16を参照して上述したように、現在ピクチャがGDRピクチャであるか(すなわち、!(gdr_pic_flag)==0)、又は現在ピクチャがインターレイヤー予測を利用しない独立したレイヤーに属し、現在ピクチャがIRAPピクチャのみ(すなわち、!(vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]] && gdr_or_irap_pic_flag && !gdr_pic_flag)==0)、ph_inter_slice_allowed_flagがシグナリングされないことがある。これにより、ピクチャの属性上、インタースライスを含むことができるGDRピクチャ及びイントラスライスのみを含むことができるIRAPピクチャに対して、ph_inter_slice_allowed_flagが不要にシグナリングされるという問題が解消できる。
以下、図17及び図18を参照して、本開示の一実施例による画像符号化/復号化方法を詳細に説明する。
図17は、本開示の一実施例による画像符号化方法を示すフローチャートである。図17の画像符号化方法は、図2の画像符号化装置によって行われることができる。
図17を参照すると、画像符号化装置は、現在ブロックを含む現在ピクチャに対してインタースライスタイプが許容されるか否かに関する第1情報を符号化することができる(S1710)。前記第1情報は、例えば、図7~図16を参照して上述したph_inter_slice_allowed_flagであり得る。一例において、前記第1情報は、現在ピクチャ内のスライスが有するスライスタイプに基づいて決定されることができる。例えば、現在ピクチャ内の1つ以上のスライスがBスライスタイプ又はPスライスタイプを有する場合、前記第1情報は、現在ピクチャに対してインタースライスタイプが許容されることを示す第1値(例えば、1)を有することができる。これとは異なり、現在ピクチャ内のすべてのスライスがIスライスタイプを有する場合、前記第1情報は、現在ピクチャに対してインタースライスタイプが許容されないことを示す第2値(例えば、0)を有することができる。
一実施例において、現在ピクチャに対してインタースライスタイプが許容されるか否かは、現在ピクチャのピクチャタイプ、及び現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができるか否かに基づいて決定されることができる。例えば、現在ピクチャがIRAP(Intra Random Access Point)ピクチャと同じピクチャタイプを有し、現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用しない場合、現在ピクチャに対してインタースライスタイプは許容されないことができる。又は、現在ピクチャがGDR(Gradual Decoding Refresh)ピクチャと同じピクチャタイプを有する場合、現在ピクチャに対してインタースライスタイプは許容されることができる。そして、この場合、前記第1情報の符号化はスキップされることができる。
現在ピクチャのピクチャタイプに関する情報は、ピクチャヘッダー内に符号化されることができる。現在ピクチャのピクチャタイプに関する情報は、現在ピクチャがGDR(Gradual Decoding Refresh)又はIRAP(Intra Random Access Point)ピクチャと同じピクチャタイプを有するか否かに関する第3情報、及び現在ピクチャがGDRピクチャと同じピクチャタイプを有するか否かに関する第4情報を含むことができる。前記第3情報及び前記第4情報は、例えば、図7~図16を参照して上述したgdr_or_irap_pic_flag及びgdr_pic_flagであり得る。現在ピクチャがIRAPピクチャと同じピクチャタイプを有する場合、前記第3情報は、現在ピクチャがGDR又はIRAPピクチャと同じピクチャタイプを有することを示す第1値(例えば、1)を有することができる。また、前記第4情報は、現在ピクチャがGDRピクチャとは異なるピクチャタイプを有することを示す第2値(例えば、0)を有することができる。
一方、現在レイヤーがインターレイヤー予測を利用することができるか否か(すなわち、現在レイヤーがマルチレイヤー構造で独立したレイヤーであるか否か)に関する第5情報(例えば、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]])が、ビデオパラメータセット内に符号化されることができる。前記第5情報が第1値(例えば、1)を有する場合、現在レイヤーはインターレイヤー予測を利用しないことができる。これとは異なり、前記第5情報が第2値(例えば、0)を有する場合、現在レイヤーはインターレイヤー予測を利用することができる。
現在ピクチャに対してインタースライスタイプが許容されることに基づいて、画像符号化装置は、現在ピクチャに対してイントラスライスタイプが許容されるか否かに関する第2情報を符号化することができる(S1720)。前記第2情報は、例えば、図7~図16を参照して上述したph_intra_slice_allowed_flagであり得る。前記第2情報は、前記第1情報と同様に、現在ピクチャ内のスライスが有するスライスタイプに基づいて決定されることができる。例えば、現在ピクチャ内の1つ以上のスライスがIスライスタイプを有する場合、前記第2情報は、現在ピクチャに対してイントラスライスタイプが許容されることを示す第1値(例えば、1)を有することができる。これとは異なり、現在ピクチャ内のすべてのスライスがBスライスタイプ又はPスライスタイプを有する場合、前記第2情報は、現在ピクチャに対してイントラスライスタイプが許容されないことを示す第2値(例えば、0)を有することができる。前記第2情報は、ピクチャヘッダー内で前記第1情報と共に符号化/シグナリングされることができる。一方、本開示において、前記第1情報及び第2情報は利用可能スライスタイプ情報と呼ばれることもある。
図18は、本開示の一実施例による画像復号化方法を示すフローチャートである。図18の画像復号化方法は、図3の画像復号化装置によって行われることができる。
図18を参照すると、画像復号化装置は、現在ブロックを含む現在ピクチャに対してインタースライスタイプが許容されるか否かを決定することができる(S1810)。
現在ピクチャに対してインタースライスタイプが許容されるか否かは、ピクチャヘッダーから取得される第1情報(例えば、ph_inter_slice_allowed_flag)に基づいて決定されることができる。例えば、前記第1情報が第1値(例えば、1)を有する場合、現在ピクチャに対してインタースライスタイプは許容されることができる。これとは異なり、前記第2情報が第2値(例えば、0)を有する場合、現在ピクチャに対してインタースライスタイプは許容されないことがある。
一実施例において、現在ピクチャに対してインタースライスタイプが許容されるか否かは、現在ピクチャのピクチャタイプ及び現在ピクチャを含む現在レイヤーがインターレイヤー予測を利用することができるか否かに基づいて決定されることができる。例えば、現在ピクチャがIRAP(Intra Random Access Point)ピクチャと同じピクチャタイプを有し、現在レイヤーがインターレイヤー予測を利用しないことに基づいて、現在ピクチャに対してインタースライスタイプは許容されないことがある。或いは、現在ピクチャがGDR(Gradual Decoding Refresh)ピクチャと同じピクチャタイプを有する場合、現在ピクチャに対してインタースライスタイプは許容されることができる。そして、この場合、前記第1情報のパーシングはスキップできる。
現在ピクチャのピクチャタイプは、現在ピクチャがGDR(Gradual Decoding Refresh)又はIRAP(Intra Random Access Point)ピクチャと同じピクチャタイプを有するか否かに関する第3情報、及び現在ピクチャがGDRピクチャと同じピクチャタイプを有するか否かに関する第4情報に基づいて決定されることができる。前記第3情報及び前記第4情報は、例えば、図7~図16を参照して上述したgdr_or_irap_pic_flag及びgdr_pic_flagであり得る。前記第3情報が、現在ピクチャがGDR又はIRAPピクチャと同じピクチャタイプを有することを示し、前記第4情報が、現在ピクチャがGDRピクチャとは異なるピクチャタイプを有することを示す場合、現在ピクチャのピクチャタイプは、IRAPピクチャと同じピクチャタイプと決定されることができる。
一方、現在レイヤーがインターレイヤー予測を利用することができるか否か(すなわち、現在レイヤーがマルチレイヤー構造で独立したレイヤーであるか否か)は、ビデオパラメータセット(video parameter set)から得られる第5情報に基づいて決定されることができる。例えば、前記第5情報が第1値(例えば、1)を有する場合、現在レイヤーはインターレイヤー予測を利用しないことができる。これとは異なり、前記第5情報が第2値(例えば、0)を有する場合、現在レイヤーはインターレイヤー予測を利用することができる。
現在ピクチャに対してインタースライスタイプが許容されることに基づいて、画像復号化装置は、現在ピクチャに対してイントラスライスタイプが許容されるか否かを決定することができる(S1820)。
現在ピクチャに対してイントラスライスタイプが許容されるか否かは、ピクチャヘッダーから取得される第2情報(例えば、ph_intra_slice_allowed_flag)に基づいて決定されることができる。例えば、前記第2情報が第1値(例えば、1)を有する場合、現在ピクチャに対してイントラスライスタイプは許容されることができる。これとは異なり、前記第2情報が第2値(例えば、0)を有する場合、現在ピクチャに対してイントラスライスタイプは許容されないことがある。一方、本開示において、前記第1情報及び第2情報は、利用可能スライスタイプ情報と呼ばれることもある。
そして、画像復号化装置は、現在ピクチャに対して許容されるスライスタイプに基づいて、現在ブロックを復号化することができる(S1830)。例えば、画像復号化装置は、現在ピクチャに対して許容されるスライスタイプに基づいて、現在ピクチャ内のスライスが有するスライスタイプを決定することができる。現在ブロックがインタースライスタイプを有するスライスに含まれる場合、画像復号化装置は、インター予測を行うことにより現在ブロックを復号化することができる。これとは異なり、現在ブロックがイントラスライスタイプを有するスライスに含まれる場合、画像復号化装置は、イントラ予測を行うことにより現在ブロックを復号化することができる。
以上、本開示の一実施例による画像符号化/復号化方法によれば、現在ピクチャがインターレイヤー予測を利用しない独立したレイヤーに属し、現在ピクチャがIRAPピクチャのみである場合、現在ピクチャに対してインタースライスタイプは許容されないことがある。これにより、符号化段では、現在ピクチャに対してインタースライスタイプが許容されるか否かを示す情報(例えば、ph_inter_slice_allowed_flag)をシグナリングする必要がないので、シグナリングオーバーヘッドが減少し、符号化効率が向上することができる。また、復号化段では、現在ピクチャに対してインタースライスタイプが許容されるか否かを示す情報(例えば、ph_inter_slice_allowed_flag)をパーシングする必要がないので、演算複雑度が減少し、復号化効率が向上することができる。
本開示で説明されたシンタックス要素の名称は、当該シンタックス要素がシグナリングされる位置に関する情報を含むことができる。例えば、「sps_」で始まるシンタックス要素は、当該シンタックス要素がシーケンスパラメータセット(SPS)でシグナリングされることを意味することができる。さらに、「pps_」、「ph_」、「sh_」などで始まるシンタックス要素は、当該シンタックス要素がピクチャパラメータセット(PPS)、ピクチャヘッダー、スライスヘッダーなどでそれぞれシグナリングされることを意味することができる。
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、或いは一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満足される場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満足されるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、全ての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、2つ以上の組み合わせで適用されてもよい。
また、本開示の様々な実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア、又はそれらの組み合わせなどによって実現できる。ハードウェアによる実現の場合、1つ又はそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、汎用プロセッサ(general processor)、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって実現できる。
また、本開示の実施例が適用された画像復号化装置及び画像符号化装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信などのリアルタイム通信装置、モバイルストリーミング装置、記憶媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号又はデータ信号を処理するために使用できる。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
図19は、本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図19に示すように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、Webサーバ、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記符号化サーバは、スマートフォン、カメラ、カムコーダなどのマルチメディア入力装置から入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これを前記ストリーミングサーバに伝送する役割を果たす。他の例として、スマートフォン、カメラ、ビデオカメラなどのマルチメディア入力装置がビットストリームを直接生成する場合、前記符号化サーバは省略できる。
前記ビットストリームは、本開示の実施例が適用された画像符号化方法及び/又は画像符号化装置によって生成でき、前記ストリーミングサーバは、前記ビットストリームを伝送又は受信する過程で一時的に前記ビットストリームを保存することができる。
前記ストリーミングサーバは、Webサーバを介してユーザの要求に基づいてマルチメディアデータをユーザ装置に伝送し、前記Webサーバは、ユーザにどんなサービスがあるかを知らせる媒介体の役割を果たすことができる。ユーザが前記Webサーバに所望のサービスを要求すると、前記Webサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを伝送することができる。この時、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割を果たすことができる。
前記ストリーミングサーバは、メディアストレージ及び/又は符号化サーバからコンテンツを受信することができる。例えば、前記符号化サーバからコンテンツを受信する場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間保存することができる。
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどがあり得る。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバから受信するデータは、分散処理されることができる。
本開示の範囲は、様々な実施例の方法による動作が装置又はコンピュータ上で実行されるようにするソフトウェア又はマシン-実行可能なコマンド(例えば、オペレーティングシステム、アプリケーション、ファームウェア(firmware)、プログラムなど)、及びこのようなソフトウェア又はコマンドなどが保存されて装置又はコンピュータ上で実行できる非一時的なコンピュータ可読媒体(non-transitory computer-readable medium)を含む。