以下、添付図面を参照して、本開示の実施例について、本開示の属する技術分野における通常の知識を有する者が容易に実施し得るように詳細に説明する。しかし、本開示は、様々な異なる形態で実現でき、ここで説明する実施例に限定されない。
本開示の実施例を説明するにあたり、公知の構成又は機能についての具体的な説明が本開示の要旨を不明確にするおそれがあると判断される場合には、それについての詳細な説明は省略する。そして、図面において、本開示についての説明と関係ない部分は省略し、同様の部分には同様の図面符号を付した。
本開示において、ある構成要素が他の構成要素と「連結」、「結合」又は「接続」されているとするとき、これは、直接的な連結関係だけでなく、それらの間に別の構成要素が存在する間接的な連結関係も含むことができる。また、ある構成要素が他の構成要素を「含む」又は「有する」とするとき、これは、特に反対される記載がない限り、別の構成要素を排除するのではなく、別の構成要素をさらに含むことができることを意味する。
本開示において、「第1」、「第2」などの用語は、一つの構成要素を他の構成要素から区別する目的のみで使用され、特に言及されない限り、構成要素間の順序又は重要度などを限定しない。したがって、本開示の範囲内において、一実施例の第1構成要素は、他の実施例で第2構成要素と呼んでもよく、これと同様に、一実施例の第2構成要素を、他の実施例で第1構成要素と呼んでもよい。
本開示において、互いに区別される構成要素は、それぞれの特徴を明確に説明するためのものであり、構成要素が必ずしも分離されることを意味するものではない。つまり、複数の構成要素が統合されて一つのハードウェア又はソフトウェア単位で構成されてもよく、一つの構成要素が分散されて複数のハードウェア又はソフトウェア単位で構成されてもよい。よって、別に言及しなくても、このように統合された又は分散された実施例も本開示の範囲に含まれる。
本開示において、さまざまな実施例で説明する構成要素が必ず必要不可欠な構成要素を意味するものではなく、一部は選択的な構成要素であり得る。したがって、一実施例で説明する構成要素の部分集合で構成される実施例も本開示の範囲に含まれる。また、様々な実施例で説明する構成要素にさらに他の構成要素を含む実施例も、本開示の範囲に含まれる。
本開示は、画像の符号化及び復号化に関するものであって、本開示で使用される用語は、本開示で新たに定義されない限り、本開示の属する技術分野における通常の意味を持つことができる。
本開示で開示された方法/実施例は、VVC(versatile video coding)標準に開示される方法に適用されることができる。また、本開示で開示された方法/実施例は、EVC(essential video coding)標準、AV1(AOMedia Video 1)標準、AVS2(2nd generation of audio video coding standard)又は次世代ビデオ/画像コーディング標準(例えば.H.267又はH.268など)に開示される方法に適用されることができる。
本開示では、ビデオ/画像コーディングに関する様々な実施例を提示し、他に言及しない本開示における実施例は、互いに組み合わせられて行われることもできる。
本開示において、「ビデオ(video)」は、時間の流れによる一連の画像(image)の集合を意味することができる。「ピクチャ(picture)」は、一般的に、特定の時間帯のいずれか一つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、符号化においてピクチャの一部を構成する符号化単位である。スライス/タイルは、一つ以上のCTU(coding tree unit)を含むことができる。前記CUTは、一つ以上のCUに分割されることができる。
1つのピクチャは、1つ以上のスライス/タイルで構成されることができる。タイルは、ピクチャ内の特定のタイル行(Tile Row)及び特定のタイル列(Tile Column)内に存在する四角領域であり、複数のCTUから構成されることができる。タイル列は、CTUの四角領域として定義されることができ、ピクチャの高さと同じ高さを有し、ピクチャパラメータセットなどのビットストリーム部分からシグナリングされるシンタックス要素によって指定される幅を有することができる。タイル行は、CTUの四角領域として定義されることができ、ピクチャの幅と同じ幅を有し、ピクチャパラメータセットなどのビットストリーム部分からシグナリングされるシンタックス要素によって指定される高さを有することができる。
タイルスキャンは、ピクチャを分割するCTUの所定の連続した順序付け方法である。ここで、CTUは、タイル内でCTUラスタスキャン(raster scan)に従って連続的に順序付けられてもよく、ピクチャ内のタイルは、ピクチャのタイルのラスタスキャン順序に従って連続的に順序付けられてもよい。スライスは、整数個の完全なタイルを含むか、或いは1つのピクチャの1つのタイル内の連続する整数個の完全なCTU行を含むことができる。スライスは、1つのシングルNALユニットに独占的に含まれることができる。
1つのピクチャは、2つ以上のサブピクチャに区分されることができる。サブピクチャは、ピクチャ内の1つ以上のスライスの四角領域であり得る。
1つのピクチャは、1つ以上のタイルグループで構成されることができる。1つのタイルグループは、1つ以上のタイルを含むことができる。ブリックは、ピクチャ内のタイル以内のCTU行の四角領域を示すことができる。1つのタイルは、1つ以上のブリック(Brick)を含むことができる。ブリックは、タイル内のCTU行の四角領域を示すことができる。1つのタイルは、複数のブリックに分割されることができ、それぞれのブリックは、タイルに属する1つ以上のCTU行を含むことができる。複数のブリックに分割されないタイルもブリックとして扱われることができる。
本開示において、「ピクセル(pixel)」又は「ペル(pel)」は、一つのピクチャ(又は画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用できる。サンプルは、一般的に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。
本開示において、「ユニット(unit)」は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定の領域及び当該領域に関連する情報のうちの少なくとも一つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(例えば、Cb、Cr)ブロックを含むことができる。ユニットは、場合に応じて、「サンプルアレイ」、「ブロック(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つのA及びB(at least one of A and B)」は、「Aのみ」、「Bのみ」又は「AとBの両方」を意味することができる。また、本開示において、「少なくとも1つのA又はB(at least one of A or B)」や「少なくとも1つのA及び/又はB(at least one of A and/or B)」という表現は、「少なくとも1つのA及びB(at least one of A and B)」と同一に解釈されることができる。
また、本開示において、「少なくとも1つのA、B及びC(at least one of A, B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」、又は「A、B及びCの任意のいずれの組み合わせ(any combination of A,B and C)」を意味することができる。また、「少なくとも1つのA、B又はC(at least one of A, B or C)」や「少なくとも1つのA、B及び/又はC(at least one of A,B and/or C)」は、「少なくとも1つのA、B及びC(at least one of A, B and C)」を意味することができる。
また、本開示で使用される括弧は、「例えば(for example)」を意味することができる。具体的に、「予測(イントラ予測)」と表示された場合、「予測」の一例として「イントラ予測」が提案されたものであり得る。言い換えれば、本開示の「予測」は、「イントラ予測」に限定(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであり得る。また、「予測(すなわち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであり得る。
本開示において、1つの図面内で個別に説明される技術的特徴は、個別に実現されてもよく、同時に実現されてもよい。
ビデオコーディングシステムの概要
図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にも、同様に又は対応するように適用されることができる。
一般な画像/ビデオコーディング手順
画像/ビデオコーディングにおいて、画像/ビデオを構成するピクチャは、一連の復号化順序(decoding order)に従って符号化/復号化できる。復号化されたピクチャの出力順序(output order)に該当するピクチャ順序(picture order)は、前記復号化順序とは異なるように設定できる。これに基づいて、インター予測の際に、順方向予測だけでなく、逆方向予測も行うことができる。
図4は、本開示の実施例が適用できる概略的なピクチャ復号化手順の例を示す。図4において、S410は、図3で上述した復号化装置のエントロピー復号化部210で行われることができ、S420は、イントラ予測部265及びインター予測部260を含む予測部で行われることができ、S430は、逆量子化部220及び逆変換部230を含むレジデュアル処理部で行われることができ、S440は、加算部235で行われることができ、S450は、フィルタリング部240で行われることができる。S410は、本開示で説明された情報復号化手順を含むことができ、S420は、本開示で説明されたインター/イントラ予測手順を含むことができ、S430は、本開示で説明されたレジデュアル処理手順を含むことができ、S440は、本開示で説明されたブロック/ピクチャ復元手順を含むことができ、S450は、本開示で説明されたインループフィルタリング手順を含むことができる。
図4を参照すると、ピクチャ復号化手順は、図3についての説明で示されているように、概略的に、ビットストリームから(復号化による)画像/ビデオ情報取得手順(S410)、ピクチャ復元手順(S420~S440)、及び復元されたピクチャに対するインループフィルタリング手順(S450)を含むことができる。前記ピクチャ復元手順は、本開示で説明されたインター/イントラ予測(S420)及びレジデュアル処理(S430、量子化された変換係数に対する逆量子化、逆変換)過程を経て取得した予測サンプル及びレジデュアルサンプルに基づいて行われることができる。前記ピクチャ復元手順によって生成された復元ピクチャに対するインループフィルタリング手順を介して、修正(modified)された復元ピクチャが生成されることができ、前記修正された復元ピクチャが、復号化されたピクチャとして出力されることができ、また、復号化装置の復号ピクチャバッファ又はメモリ250に保存されて以後のピクチャの復号化時にインター予測手順で参照ピクチャとして使用されることができる。場合によっては、前記インループフィルタリング手順は省略可能であり、この場合、前記復元ピクチャが復号化されたピクチャとして出力されることができ、また、復号化装置の復号ピクチャバッファ又はメモリ250に保存されて以後のピクチャの復号化時にインター予測手順で参照ピクチャとして使用されることができる。前記インループフィルタリング手順(S450)は、上述したように、デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順、及び/又はバイラテラルフィルタ(bi-lateral filter)手順などを含むことができ、その一部又は全部が省略可能である。また、前記デブロッキングフィルタリング手順、SAO(sample adaptive offset)手順、ALF(adaptive loop filter)手順、及びバイラテラルフィルタ(bi-lateral filter)手順のうちの一つ又は一部が順次適用されてもよく、全てが順次適用されてもよい。例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、SAO手順が行われることができる。又は、例えば、復元ピクチャに対してデブロッキングフィルタリング手順が適用された後、ALF手順が行われることができる。これは、符号化装置においても同様に行われることができる。
図5は、本開示の実施例が適用できる概略的なピクチャ符号化手順の例を示す。図5において、S510は、図2で上述した符号化装置のイントラ予測部185又はインター予測部180を含む予測部で行われることができ、S520は、変換部120及び/又は量子化部130を含むレジデュアル処理部で行われることができ、S530は、エントロピー符号化部190で行われることができる。S510は、本開示で説明されたインター/イントラ予測手順を含むことができ、S520は、本開示で説明されたレジデュアル処理手順を含むことができ、S530は、本開示で説明された情報符号化手順を含むことができる。
図5を参照すると、ピクチャ符号化手順は、図2についての説明で示されているように、概略的にピクチャ復元のための情報(例えば、予測情報、レジデュアル情報、パーティショニング情報など)を符号化してビットストリーム形式で出力する手順だけでなく、現在ピクチャに対する復元ピクチャを生成する手順、及び復元ピクチャにインループフィルタリングを適用する手順(optional)を含むことができる。符号化装置は、逆量子化部140及び逆変換部150を介して、量子化された変換係数から(修正された)レジデュアルサンプルを導出することができ、S510の出力である予測サンプルと前記(修正された)レジデュアルサンプルに基づいて復元ピクチャを生成することができる。このように生成された復元ピクチャは、上述した復号化装置で生成した復元ピクチャと同一であり得る。前記復元ピクチャに対するインループフィルタリング手順を介して、修正された復元ピクチャが生成されることができ、これは、復号ピクチャバッファ又はメモリ170に保存されることができ、復号化装置での場合と同様に、以後のピクチャの符号化時にインター予測手順で参照ピクチャとして使用されることができる。上述したように、場合によっては、前記インループフィルタリング手順の一部又は全部は省略可能である。前記インループフィルタリング手順が行われる場合、(インループ)フィルタリング関連情報(パラメータ)がエントロピー符号化部190で符号化されてビットストリーム形式で出力されることができ、復号化装置は、前記フィルタリング関連情報に基づいて符号化装置と同様の方法でインループフィルタリング手順を行うことができる。
このようなインループフィルタリング手順を介して、ブロッキングアーチファクト(artifact)及びリンギング(ringing)アーチファクトなど、画像/動画像コーディング時に発生するノイズを低減することができ、主観的/客観的ビジュアルクオリティを高めることができる。また、符号化装置と復号化装置の両方でインループフィルタリング手順を行うことにより、符号化装置と復号化装置は、同一の予測結果を導出することができ、ピクチャコーディングの信頼性を高め、ピクチャコーディングのために伝送されるべきデータ量を減らすことができる。
上述したように、復号化装置だけでなく、符号化装置においてもピクチャ復元手順が行われることができる。各ブロック単位でイントラ予測/インター予測に基づいて復元ブロックが生成されることができ、復元ブロックを含む復元ピクチャが生成されることができる。現在ピクチャ/スライス/タイルグループがIピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測のみに基づいて復元されることができる。一方、現在ピクチャ/スライス/タイルグループがP又はBピクチャ/スライス/タイルグループである場合、前記現在ピクチャ/スライス/タイルグループに含まれるブロックは、イントラ予測又はインター予測に基づいて復元されることができる。この場合、現在ピクチャ/スライス/タイルグループ内の一部のブロックに対してはインター予測が適用され、残りの一部のブロックに対してはイントラ予測が適用されることもできる。ピクチャのカラー成分は、ルマ成分及びクロマ成分を含むことができ、本開示で明示的に制限しなければ、本開示で提案される方法及び実施例は、ルマ成分及びクロマ成分に適用されるができる。
コーディング階層及び構造の例
本開示によるコーディングされたビデオ/画像は、例えば、後述するコーディング階層及び構造に従って処理できる。
図6は、コーディングされた画像に対する階層構造を示す図である。コーディングされた画像は、画像の復号化処理及びそれ自体を扱う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ユニットタイプの一例を羅列する。
-DCI(Decoding capability information) NAL unit:DCIを含む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ユニットに対するタイプ
-APS(Adaptation Parameter Set) NAL unit:APSを含むNALユニットに対するタイプ
-PH(Picture header) NAL unit:Type for NAL unit including PH
上述したNALユニットタイプは、NALユニットタイプのためのシンタックス情報を有し、前記シンタックス情報は、NALユニットヘッダーに保存されてシグナリングされることができる。例えば、前記シンタックス情報はnal_unit_typeであることができ、NALユニットタイプはnal_unit_typeの値として特定されることができる。
一方、上述したように、一つのピクチャは、複数のスライスを含むことができ、一つのスライスは、スライスヘッダー及びスライスデータを含むことができる。この場合、一つのピクチャ内の複数のスライス(スライスヘッダー及びスライスデータ集合)に対して一つのピクチャヘッダーがさらに付加されることができる。前記ピクチャヘッダー(ピクチャヘッダーシンタックス)は、前記ピクチャに共通に適用可能な情報/パラメータを含むことができる。
前記スライスヘッダー(スライスヘッダーシンタックス)は、前記スライスに共通に適用可能な情報/パラメータを含むことができる。前記APS(APSシンタックス)又はPPS(PPSシンタックス)は、一つ以上のスライス又はピクチャに共通に適用可能な情報/パラメータを含むことができる。前記SPS(SPSシンタックス)は、一つ以上のシーケンスに共通に適用可能な情報/パラメータを含むことができる。前記VPS(VPSシンタックス)は、マルチレイヤに共通に適用可能な情報/パラメータを含むことができる。前記DCI(DCIシンタックス)は、ビデオ全般に共通に適用可能な情報/パラメータを含むことができる。前記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ユニット単位でシグナリングされることができる。例えば、以下の説明のように、ピクチャ情報がシグナリングされることができる。サブレイヤは、変数TemporalIdの所定の値及び関連したnon-VCL NALユニットを有するVCL NALユニットから構成される時間的スケーラブルビットストリームの時間的スケーラブルレイヤである。ここで、変数TemporalIdは、次のように誘導されることができる。
[数式1]
TemporalId=nuh_temporal_id_plus1-1
変数TemporalIdの値をシグナリングするためのシンタックス要素nuh_temproal_id_plus1は、NALユニットのNALユニットヘッダーを介してシグナリングされることができる。NALユニットヘッダーにおけるnal_unit_typeの値がIDR_W_RADLからRSV_IRAP_12までの値の範囲内にある場合、TemporalIdの値は0に強制されることができる。nal_unit_typeの値がSTSA_NUTと同一であり、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]の値が1である場合、TemporalIdの値は0にならないように制限されることができる。1つのAUの全てのVCL NALユニットに対して、TemporalIdの値は全て同一であり得る。符号化されたピクチャ、PU又はAUのTemporalIdの値は、当該符号化されたピクチャ、PU又はAUのVCL NALユニットのTemporalIdの値であり得る。サブレイヤ表現(sublayer representation)のTemporalIdの値は、1つのサブレイヤ表現における全てのVCL NALユニットのTemporalIdのうちの最も大きい値であり得る。
VCL NALユニットではなく、non-VCL NALユニットに対するTemporalIdの値は、次のように制限されることができる。
-nal_unit_typeがDCI_NUT、VPS_NUT又はSPS_NUTに等しい場合、TemporalIdは、0の値を持つように制限されることができ、当該NALユニットを含むAUのTemporalIdの値は、0となるように制限されることができる。
-そうではなく、nal_unit_typeがPH_NUTに等しい場合、TemporalIdの値は、NALユニットを含むPUのTemporalIdに等しく制限されることができる。
-そうではなく、nal_unit_typeがEOS_NUT又はEOB_NUTに等しい場合、TemporalIDは、0に等しく制限されることができる。
-そうでなく、nal_unit_typeがAUD_NUT、FD_NUT、PREFIX_SEI_NUT、又はSUFFIX_SEI_NUTに等しい場合、TemporalIdは、当該NALユニットを含むAUのTemporalIdと同じ値を有するように制限されることができる。
-そうではなく、nal_unit_typeがPPS_NUT、PREFIX_APS_NUT又はSUFFIX_APS_NUTに等しい場合、TemporalIdの値は、当該NALユニットを含むPUのTemporalId以上の値を有するように制限されることができる。
例えば、当該NALユニットがnon-VCL NALである場合、TemporalIdの値は、前記non-VCL NALユニットが適用されるすべてのAUのTemporalId値のうちの最も小さい値に等しくてもよい。nal_unit_typeの値がPPS_NUT、PREFIX_APS_NUT又はSUFFIX_APS_NUTに等しい場合、TemporalIdの値は、これを含むAUのTemporalId以上の値を有することができる。これは、すべてのPPSとAPSがビットストリームの開始部に含まれ得るためである(例えば、このような情報が帯域外へ伝送され、受信機がこれをビットストリームの開始部分に配置する)。ここで、一番目に符号化されるピクチャは、0の値を有するTemporalIdを有することができる。
一実施例において、NALユニット情報に基づいてビットストリームから取得される符号化ピクチャは、次のように、符号化装置によってシグナリングされ、復号化装置によって識別されることができる。一方、これは一例を示すものであり、他の方式でピクチャが識別されることもできる。
IRAP(Intra random access point)ピクチャは、IDR_W_RADLからCRA_NUTまでの値の範囲を有するnal_unit_typeに対して、すべてのVCL NALユニットが同じ値を有する符号化ピクチャである。一実施例において、IRAPピクチャは、その復号化プロセスにおいて、インター予測を行うために自分自身以外には他のピクチャを参照しなくてもよい。そして、IRAPピクチャは、後述するCRAピクチャ又はIDRピクチャであり得る。復号化順序において、ビットストリームにおける1番目のピクチャは、IRAP又はGDRピクチャとなるように強制されることができる。必須的なパラメータセットの参照が要求される場合において当該パラメータセットが利用可能となるように、復号化順序においてCVS内のIRAPピクチャとすべての後続するnon-RASLピクチャは正しく復号化されることができる。これは、復号化順序においてIRAPピクチャより先行する他の任意のピクチャの復号化プロセスを実行しなくても行われることができる。
CRA(Clean random access)ピクチャは、それぞれのVCL NALユニットがCRA_NUTと同じnal_unit_typeを有するIRAPピクチャである。例えば、CRAピクチャは、その復号化プロセスにおいてインター予測を行うために自分自身以外には他のピクチャを参照しないピクチャである。そして、CRAピクチャは、復号化順序でビットストリームにおける1番目のピクチャであってもよく、ビットストリームにおける後順序のピクチャとして現れてもよい。CRAピクチャは、関連したRADL又はRASLピクチャを有することができる。CRAピクチャがNoIncorrectPicOutputFlagの値として1を有する場合、関連したRASLピクチャは復号化装置によって出力されない可能性がある。これは、当該CRAピクチャが当該ビットストリームで提供されないピクチャに対する参照を含まないなどの理由で復号化できない可能性があるためである。一実施例において、画像の復号化の際に、不完全なピクチャが出力されない場合、CRAピクチャが不完全なピクチャであれば、CRAピクチャは、NoIncorrectPicOutputFlagの値として1を有することができる。
IDR(Instantaneous decoding refresh)ピクチャは、IRAPピクチャであって、個別VCL NALユニットがnal_unit_typeの値としてIDR_W_RADL又はIDR_N_LPと同じ値を有するピクチャである。例えば、IDRピクチャは、その復号化プロセスにおいて、インター予測を行うために自分自身以外には他のピクチャを参照しなくてもよい。そして、IDRピクチャは、復号化順でビットストリームにおける一番目のピクチャとして現れることができる。あるいは、IDRピクチャは、ビットストリームにおける後順位のピクチャとして現れることもできる。それぞれのIDRピクチャは、復号化順序で1つのCVSの一番目のピクチャであり得る。それぞれのVCL NALユニットに対するIDRピクチャがnal_unit_typeの値としてIDR_W_RADLと同じ値を有する場合、当該IDRピクチャは、関連したRADLピクチャを有することもできる。それぞれのVCL NALユニットに対するIDRピクチャがnal_unit_typeの値としてIDR_N_LPと同じ値を有する場合、当該IDRピクチャは、関連したリーディングピクチャを有しなくてもよい。IDRピクチャは、関連したRASLピクチャを有しなくてもよい。
RADL(Random access decodable leading)ピクチャは、符号化されたピクチャであって、個別VCL NALユニットがnal_unit_typeの値としてRADL_NUTの値を有するピクチャであり得る。一実施例において、すべてのRADLピクチャはリーディングピクチャであり得る。RADLピクチャは、同じ関連IRAPピクチャのトレーリングピクチャの復号化プロセスのために参照ピクチャとして使用されなくてもよい。ビットストリームから取得されるシンタックス要素field_seq_flagの値が0である場合、存在するすべてのRADLピクチャは、復号化順序で同じ関連IRAPピクチャのすべての非リーディングピクチャよりも先行することができる。
RASL(Random access skipped leading)ピクチャは、個別VCL NALユニットがnal_unit_typeの値としてRASL_NUTを有する符号化ピクチャであり得る。一実施例において、全てのRASLピクチャは、関連したCRAピクチャのリーディングピクチャであり得る。関連するCRAピクチャがNoIncorrectPicOutputFlagの値として1を有する場合、RASLピクチャは、出力されず、正常に復号化されない可能性がある。これは、RASLピクチャがビットストリームで提供されないピクチャの参照を含むためであり得る。RASLピクチャは、非RASLピクチャの復号化プロセスのために参照ピクチャとして使用されなくてもよい。field_seq_flagの値が0である場合、存在するすべてのRASLピクチャは、復号化順序で同じ連関CRAピクチャのすべての非リーディングピクチャよりも先行することができる。
トレーリングピクチャ(Trailing picture)は、関連するIRAPピクチャを出力順序で後行しながら、STSAピクチャではない非IRAPピクチャである。IRAPピクチャに関連したトレーリングピクチャは、復号化順序に従って当該IRAPピクチャの後ろに位置することができる。出力順序に従って前記関連するIRAPピクチャの後ろに位置し、復号化順序に従って前記関連するIRAPピクチャの前に位置するピクチャは許容されない。
GDR(Gradual decoding refresh)ピクチャは、個別VCL NALユニットがnal_unit_typeとしてGDR_NUTの値を有するピクチャである。
STSA(Step-wise temporal sublayer access)ピクチャは、個別VCL NALユニットがnal_unit_typeの値としてSTSA_NUTを有するピクチャである。STSAピクチャは、インター予測参照のためにSTSAピクチャと同じTemporalIdを有するピクチャを使用しなくてもよい。STSAピクチャと同じTemporalIdを有し、復号化順序でSTSAピクチャの後ろに位置したピクチャは、インター予測参照のためのSTSAピクチャと同じTemporalIdを有し、復号化順序でSTSAピクチャより先行して位置したピクチャを利用しなくてもよい。
STSAピクチャは、該当STSAピクチャにおいて、該当STSAピクチャを含むサブレイヤの直下のサブレイヤから該当STSAピクチャを含むサブレイヤへのアップスイッチングを可能にすることができる。STSAピクチャは、0より大きいTemporalIdを有するように強制されることができる。
一実施例において、シングルレイヤ又はマルチレイヤビットストリームに対して、以下の制限のうちの少なくとも1つが適用できる。
-復号化順序でビットストリームにおける一番目のピクチャではない個別ピクチャは、復号化順序における以前のIRAPピクチャに連関するものと見なされることができる。
-IRAPピクチャのリーディングピクチャである場合、当該ピクチャはRADL又はRASLピクチャであり得る。
-IRAPピクチャのトレーリングピクチャである場合、当該ピクチャはRADL又はRASLピクチャ以外のピクチャとなるように制限されることができる。
-IDRピクチャに連関したビットストリームにRASLピクチャが提供されないように制限されることができる。
-nal_unit_typeがIDR_N_LPであるIDRピクチャに連関したビットストリームにはRADLピクチャが提供されないように制限されることができる。(例えば、各パラメータセットセットが、それが参照されるとき、ビットストリームで又は外部手段によって利用可能であれば、IRAP PUの位置でランダムアクセスはIRAP PU以前のすべてのPUを捨てることにより行われることができる。また、IRAPピクチャ及び復号化順序において後続する非RASLピクチャを正確に復号化することができる。)
-復号化順序に従ってIRAPピクチャより先行する全てのピクチャは、出力順序に従ってIRAPピクチャを先行するように強制されることができ、出力順序に従って前記IRAPピクチャに連関した全てのRADLピクチャより先行するように強制されることができる。
-CRAピクチャに連関した全てのRASLピクチャは、出力順序に従ってCRAピクチャに関連した全てのRADLピクチャを先行するように制限されることができる。
-CRAピクチャに連関した全てのRASLピクチャは、CRAピクチャを復号化順序に従って先行する全てのIRAPピクチャよりも出力順序に従って後ろに位置することができる。
-field_seq_flagの値が0であり、現在ピクチャがIRAPピクチャに関連したリーディングピクチャである場合、現在ピクチャは、同じIRAPピクチャに連関した全ての非リーディングピクチャを復号化順序に従って先行することができる。そうでなければ、IRAPピクチャに連関したリーディングピクチャのうち、復号化順序による一番目のリーディングピクチャpicAと最後のリーディングピクチャpicBに対して、復号化順序に従ってpicAより先行する非リーディングピクチャが最大1つ存在するように強制されることができ、復号化順序に従ってpicAとpicBとの間に非リーディングピクチャは存在しないように強制されることができる。
マルチレイヤベースの符号化
本開示による画像/ビデオコーディングは、マルチレイヤベースの画像/ビデオコーディングを含むことができる。前記マルチレイヤベースの画像/ビデオコーディングは、スケーラブルコーディングを含むことができる。マルチレイヤベースのコーディング又はスケーラブルコーディングでは、入力信号をレイヤごとに処理することができる。レイヤによって、入力信号(入力画像/ピクチャ)は、解像度(resolution)、フレームレート(frame rate)、ビットデプス(bit-depth)、カラーフォーマット(color format)、アスファクトレート(aspect ratio)、ビュー(view)のうちの少なくとも1つに対して互いに異なる値を有することができる。この場合、レイヤ間の差異点を利用して(例えば、スケーラビリティに基づいて)、レイヤ間の予測を行うことにより、情報の重複伝送/処理を減らし、圧縮効率を高めることができる。
図7は、本開示の実施例が適用でき、マルチレイヤベースのビデオ/画像信号の符号化が行われるマルチレイヤ符号化装置700の概略的なブロック図を示す。
図7のマルチレイヤ符号化装置700は、前記図2の符号化装置を含むことができる。図2と比較して、図7のマルチレイヤ符号化装置700では、画像分割部110及び加算部155の図示が省略されているが、前記マルチレイヤ符号化装置700は、画像分割部110及び加算部155を含むことができる。一実施例において、画像分割部110及び加算部155はレイヤ単位で含まれることができる。以下、図7についての説明では、マルチレイヤベースの予測について重点的に説明する。例えば、以下に説明される内容の他にも、図7のマルチレイヤ符号化装置700は、先立って図2を参照して説明したような符号化装置に対する技術的思想を含むことができる。
説明の便宜のために、2つのレイヤからなるマルチレイヤ構造が図7に示されている。しかし、本開示の実施例は、2つのレイヤに限定されず、本開示の実施例が適用されるマルチレイヤ構造は、2つ以上のレイヤを含むことができる。
図7を参照すると、符号化装置700は、レイヤ1に対する符号化部700-1と、レイヤ0に対する符号化部700-0と、を含む。レイヤ0はベースレイヤ、参照レイヤ又は下位レイヤであり、レイヤ1はエンハンスメントレイヤ、現在レイヤ又は上位レイヤであり得る。
レイヤ1の符号化部700-1は、予測部720-1、レジデュアル処理部730-1、フィルタリング部760-1、メモリ770-1、エントロピー符号化部740-1、及びMUX(Multiplexer)770を含むことができる。一実施例において、前記MUXは外部コンポーネントとして含まれてもよい。
レイヤ0の符号化部700-0は、予測部720-0、レジデュアル処理部730-0、フィルタリング部760-0、メモリ770-0及びエントロピー符号化部740-0を含むことができる。
予測部720-0、720-1は、入力された画像に対して上述したように様々な予測技法に基づいて予測を行うことができる。例えば、予測部720-0、720-1は、インター予測とイントラ予測を行うことができる。予測部720-0、720-1は、所定の処理単位で予測を行うことができる。予測の実行単位は、コーディングユニット(Coding Unit:CU)であってもよく、変換ユニット(Transform Unit:TU)であってもよい。予測の結果に基づいて予測されたブロック(予測サンプルを含む)が生成されることができ、これに基づいてレジデュアル処理部はレジデュアルブロック(レジデュアルサンプルを含む)を導出することができる。
インター予測を通じては、現在ピクチャの以前ピクチャ及び/又は以後ピクチャのうちの少なくとも1つのピクチャの情報に基づいて予測を行って予測ブロックを生成することができる。イントラ予測を通じては、現在ピクチャ内の周辺サンプルに基づいて予測を行って予測ブロックを生成することができる。
インター予測のモード又は方法として、上述した様々な予測モード方法などが使用できる。インター予測では、予測対象である現在ブロックに対して参照ピクチャを選択し、参照ピクチャ内で現在ブロックに対応する参照ブロックを選択することができる。予測部720-0、720-1は、参照ブロックに基づいて予測されたブロックを生成することができる。
また、予測部720-1は、レイヤ0の情報を用いてレイヤ1に対する予測を行うことができる。本開示では、他のレイヤの情報を用いて現在レイヤの情報を予測する方法を、説明の便宜のために、インターレイヤ予測と呼ぶ。
他のレイヤの情報を用いて予測される(例えば、インターレイヤ予測によって予測される)現在レイヤの情報は、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータなど)のうちの少なくとも1つであり得る。
また、現在レイヤに対する予測に用いられる(例えば、インターレイヤ予測に用いられる)他のレイヤの情報は、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータなど)のうちの少なくとも1つであり得る。
インターレイヤ予測において、現在ブロックは、現在レイヤ(例えば、レイヤ1)内の現在ピクチャ内のブロックであって、符号化対象のブロックであり得る。参照ブロックは、現在ブロックの予測に参照されるレイヤ(参照レイヤ、例えば、レイヤ0)において現在ブロックの属するピクチャ(現在ピクチャ)と同じアクセスユニット(AU:access Unit)に属するピクチャ(参照ピクチャ)内のブロックであって、現在ブロックに対応するブロックであり得る。
インターレイヤ予測の一例として、参照レイヤの動き情報を用いて現在レイヤの動き情報を予測するインターレイヤ動き予測がある。インターレイヤ動き予測によれば、参照ブロックの動き情報を用いて現在ブロックの動き情報を予測することができる。すなわち、後述するインター予測モードに従って動き情報を導出する際に、時間的周辺ブロックの代わりにインターレイヤ参照ブロックの動き情報に基づいて動き情報候補を導出することができる。
インターレイヤ動き予測を適用する場合に、予測部720-1は、参照レイヤの参照ブロック(すなわち、インターレイヤ参照ブロック)動き情報をスケーリングして利用することもできる。
インターレイヤ予測の別の例として、インターレイヤテクスチャ予測は、復元された参照ブロックのテクスチャを現在ブロックに対する予測値として用いることができる。このとき、予測部720-1は、参照ブロックのテクスチャをアップサンプリングによってスケーリングされることができる。インターレイヤテクスチャ予測は、インターレイヤ(復元)サンプル予測、又は単にインターレイヤ予測と呼ばれることがある。
インターレイヤ予測の別の例であるインターレイヤパラメータ予測では、参照レイヤの誘導されたパラメータを現在レイヤで再使用するか、或いは参照レイヤで使用したパラメータに基づいて現在レイヤに対するパラメータを誘導することができる。
インターレイヤ予測の別の例であるインターレイヤレジデュアル予測では、他のレイヤのレジデュアル情報を用いて現在レイヤのレジデュアルを予測し、これに基づいて現在ブロックに対する予測を行うことができる。
インターレイヤ予測の別の例であるインターレイヤ差分予測では、現在レイヤの復元ピクチャと参照レイヤの復元ピクチャをアップサンプリング又はダウンサンプリングした画像同士間の差分を利用して、現在ブロックに対する予測を行うことができる。
インターレイヤ予測の別の例であるインターレイヤシンタックス予測では、参照レイヤのシンタックス情報を用いて現在ブロックのテクスチャを予測又は生成することができる。このとき、参照される参照レイヤのシンタックス情報は、イントラ予測モードに関する情報、動き情報を含むことができる。
上述したインターレイヤを用いた予測方法は、特定のブロックに対する予測の際に複数個が用いられることもできる。
ここでは、インターレイヤ予測の例として、インターレイヤテクスチャ予測、インターレイヤ動き予測、インターレイヤユニット情報予測、インターレイヤパラメータ予測、インターレイヤレジデュアル予測、インターレイヤ差分予測、インターレイヤシンタックス予測などを説明したが、本発明で適用可能なインターレイヤ予測は、これらに限定されない。
例えば、インターレイヤ予測を現在レイヤに対するインター予測の拡張として適用することもできる。すなわち、参照レイヤから誘導された参照ピクチャを、現在ブロックのインター予測に参照可能な参照ピクチャに含ませて、現在ブロックに対するインター予測を行うこともできる。
この場合、インターレイヤ参照ピクチャは、現在ブロックに対する参照ピクチャリストに含まれることができる。予測部720-1は、インターレイヤ参照ピクチャを用いて現在ブロックに対するインター予測を行うことができる。
ここで、インターレイヤ参照ピクチャは、参照レイヤの復元されたピクチャを現在レイヤに対応するようにサンプリングして構成された参照ピクチャであり得る。したがって、参照レイヤの復元されたピクチャが現在レイヤのピクチャに対応する場合には、サンプリングなしに参照レイヤの復元されたピクチャをインターレイヤ参照ピクチャとして用いることができる。例えば、参照レイヤの復元されたピクチャと現在レイヤの復元されたピクチャにおけるサンプルの幅と高さが同一であり、参照レイヤのピクチャにおける左上端、右上端、左下端、右下端と、現在レイヤのピクチャにおける左上端、右上端、左下端及び右下端とのオフセットが0である場合、参照レイヤの復元されたピクチャを再びサンプリングせず、現在レイヤのインターレイヤ参照ピクチャとして使用することもできる。
また、インターレイヤ参照ピクチャが誘導される参照レイヤの復元ピクチャは、符号化対象である現在ピクチャと同じAUに属するピクチャであり得る。
インターレイヤ参照ピクチャを参照ピクチャリストに含めて現在ブロックに対するインター予測を行う場合に、インターレイヤ参照ピクチャの参照ピクチャリスト内の位置は参照ピクチャリストL0とL1で互いに異なることができる。例えば、参照ピクチャリストL0では、現在ピクチャ以前の短期参照ピクチャの後にインターレイヤ参照ピクチャが位置することができ、参照ピクチャリストL1では、参照ピクチャリストの最後にインターレイヤ参照ピクチャが位置することもできる。
ここで、参照ピクチャリストL0は、Pスライスのインター予測に使用される参照ピクチャリスト又はBスライスのインター予測において1番目の参照ピクチャリストとして用いられる参照ピクチャリストである。参照ピクチャリストL1は、Bスライスのインター予測に使用される2番目の参照ピクチャリストである。
したがって、参照ピクチャリストL0は、現在ピクチャ以前の短期参照ピクチャ、インターレイヤ参照ピクチャ、現在ピクチャ以後の短期参照ピクチャ、長期参照ピクチャの順で構成されることができる。参照ピクチャリストL1は、現在ピクチャ以後の短期参照ピクチャ、現在ピクチャ以前の短期参照ピクチャ、長期参照ピクチャ、インターレイヤ参照ピクチャの順で構成されることができる。
ここで、Pスライス(predictive slice)は、イントラ予測が行われるか、或いは予測ブロックあたり最大1つの動きベクトル及び参照ピクチャインデックスを用いてインター予測が行われるスライスである。Bスライス(bi-predictive slice)は、イントラ予測が行われるか、或いは予測ブロックあたり最大2つの動きベクトルと参照ピクチャインデックスを用いて予測が行われるスライスである。これに関して、Iスライス(intra slice)は、イントラ予測のみが適用されたスライスである。
また、インターレイヤ参照ピクチャを含む参照ピクチャリストに基づいて現在ブロックに対するインター予測を行う場合に、参照ピクチャリストは、複数のレイヤから誘導された複数のインターレイヤ参照ピクチャを含むことができる。
複数のインターレイヤ参照ピクチャを含む場合に、インターレイヤ参照ピクチャは、参照ピクチャリストL0とL1において交差配置されることもできる。例えば、2つのインターレイヤ参照ピクチャ(Inter-layer reference picture)、インターレイヤ参照ピクチャILRPi及びインターレイヤ参照ピクチャILRPjが現在ブロックのインター予測に使用される参照ピクチャリストに含まれる場合を仮定する。この場合、参照ピクチャリストL0において、ILRPiは現在ピクチャ以前の短期参照ピクチャの後ろに位置し、ILRPjはリストの最後に位置することができる。また、参照ピクチャリストL1において、ILRPiはリストの最後に位置し、ILRPjは現在ピクチャ以後の短期参照ピクチャの後ろに位置することができる。
この場合、参照ピクチャリストL0は、現在ピクチャ以前の短期参照ピクチャ、インターレイヤ参照ピクチャILRPi、現在ピクチャ以後の短期参照ピクチャ、長期参照ピクチャ、インターレイヤ参照ピクチャILRPjの順で構成されることができる。参照ピクチャリストL1は、現在ピクチャ以後の短期参照ピクチャ、インターレイヤ参照ピクチャILRPj、現在ピクチャ以前の短期参照ピクチャ、長期参照ピクチャ、インターレイヤ参照ピクチャILRPiの順で構成されることができる。
また、2つのインターレイヤ参照ピクチャのうち、いずれか一つは、解像度に関するスケーラブルレイヤから誘導したインターレイヤ参照ピクチャであり、他の一つは、異なるビューを提供するレイヤから誘導したインターレイヤ参照ピクチャでもあり得る。この場合、例えば、ILRPiは異なる解像度を提供するレイヤから誘導したインターレイヤ参照ピクチャであり、ILRPjは異なるビューを提供するレイヤから誘導したインターレイヤ参照ピクチャであれば、ビュー(view)を除いたスケーラビリティのみを支援するスケーラブルビデオコーディングの場合、参照ピクチャリストL0は、現在ピクチャ以前の短期参照ピクチャ、インターレイヤ参照ピクチャILRPi、現在ピクチャ以後の短期参照ピクチャ、長期参照ピクチャの順で構成されることができる。参照ピクチャリストL1は、現在ピクチャ以後の短期参照ピクチャ、現在ピクチャ以前の短期参照ピクチャ、長期参照ピクチャ、インターレイヤ参照ピクチャILRPiの順で構成されることができる。
一方、インターレイヤ予測において、インターレイヤ参照ピクチャの情報は、サンプル値のみが用いられてもよく、動き情報(動きベクトル)のみが用いられてもよく、サンプル値と動き情報の両方が用いられてもよい。予測部720-1は、参照ピクチャインデックスがインターレイヤ参照ピクチャを指し示す場合に、符号化装置から受信した情報に応じてインターレイヤ参照ピクチャのサンプル値のみを用いるか、或いはインターレイヤ参照ピクチャの動き情報(動きベクトル)のみを用いるか、或いはインターレイヤ参照ピクチャのサンプル値と動き情報の両方を用いることができる。
インターレイヤ参照ピクチャのサンプル値のみを用いる場合に、予測部720-1は、インターレイヤ参照ピクチャにおいて動きベクトルが特定するブロックのサンプルを現在ブロックの予測サンプルとして誘導することができる。ビュー(view)を考慮しないスケーラブルビデオコーディングの場合に、インターレイヤ参照ピクチャを用いるインター予測(インターレイヤ予測)における動きベクトルは、固定された値(例えば、0)に設定されることができる。
インターレイヤ参照ピクチャの動き情報のみを用いる場合に、予測部720-1は、インターレイヤ参照ピクチャで特定される動きベクトルを、現在ブロックの動きベクトルを誘導するための動きベクトル予測子として用いることができる。また、予測部720-1は、インターレイヤ参照ピクチャで特定される動きベクトルを現在ブロックの動きベクトルとして用いることもできる。
インターレイヤ参照ピクチャのサンプルと動き情報の両方を用いる場合に、予測部720-1は、インターレイヤ参照ピクチャで現在ブロックに対応する領域のサンプルと、インターレイヤ参照ピクチャで特定される動き情報(動きベクトル)を現在ブロックの予測に用いることができる。
符号化装置は、インターレイヤ予測が適用される場合に、参照ピクチャリストにおいてインターレイヤ参照ピクチャを指し示す参照インデックスを復号化装置へ伝送することができ、インターレイヤ参照ピクチャからどの情報(サンプル情報、動き情報、又はサンプル情報と動き情報の両方)を用いるかを特定する情報、すなわち2つのレイヤの間でインターレイヤ予測に関する依存性(dependency)のタイプ(dependency type)を特定する情報も復号化装置へ伝送することができる。
図8は、本開示の実施例が適用でき、マルチレイヤベースのビデオ/画像信号の復号化が行われる復号化装置の概略的なブロック図を示す。図8の復号化装置は、前記図3の復号化装置を含むことができる。図8に示されている再整列部は、省略されるか、或いは逆量子化部に含まれることができる。本図面についての説明では、マルチレイヤベースの予測について重点的に説明する。その他は、前記図3で説明された復号化装置についての説明内容を含むことができる。
また、図8の例では、説明の便宜のために、2つのレイヤからなるマルチレイヤ構造を例として説明する。しかし、本開示の実施例はこれに限定されず、本開示の実施例が適用されるマルチレイヤ構造は2つ以上のレイヤを含むことができることに留意されたい。
図8を参照すると、復号化装置800は、レイヤ1に対する復号化部800-1と、レイヤ0に対する復号化部800-0と、を含むことができる。レイヤ1の復号化部800-1は、エントロピー復号化部810-1、レジデュアル処理部820-1、予測部830-1、加算器840-1、フィルタリング部850-1、メモリ860-1を含むことができる。レイヤ0の復号化部800-0は、エントロピー復号化部810-0、レジデュアル処理部820-0、予測部830-0、加算器840-0、フィルタリング部850-0、メモリ860-0を含むことができる。
符号化装置から画像情報を含むビットストリームが伝送されると、DEMUX805は、レイヤごとに情報をデマルチプレクシングして各レイヤ別の復号化装置へ伝達することができる。
エントロピー復号化部810-1、810-0は、符号化装置で使用したコーディング方式に対応して復号化を行うことができる。例えば、符号化装置でCABACが使用された場合に、エントロピー復号化部810-1、810-0も、CABACを用いてエントロピー復号化を行うことができる。
現在ブロックに対する予測モードがイントラ予測モード(intra prediction)である場合に、予測部830-1、830-0は、現在ピクチャ内の周辺復元サンプルに基づいて現在ブロックに対するイントラ予測を行うことができる。
現在ブロックに対する予測モードがインター予測(inter prediction)モードである場合に、予測部830-1、830-0は、現在ピクチャの以前ピクチャ又は以後ピクチャのうちの少なくとも1つのピクチャに含まれている情報に基づいて、現在ブロックに対するインター予測を行うことができる。インター予測に必要な動き情報の一部又は全部は、符号化装置から受信した情報を確認し、それに対応して誘導されることができる。
インター予測のモードとしてスキップモードが適用される場合には、符号化装置からレジデュアルが伝送されず、予測ブロックを復元ブロックとすることができる。
一方、レイヤ1の予測部830-1は、レイヤ1内の情報のみを用いてインター予測又はイントラ予測を行ってもよく、他のレイヤ(レイヤ0)の情報を用いてインターレイヤ予測を行ってもよい。
他のレイヤの情報を用いて予測される(例えば、インターレイヤ予測によって予測される)現在レイヤの情報としては、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータなど)のうちの少なくとも1つであり得る。
また、現在レイヤに対する予測に用いられる(例えば、インターレイヤ予測に用いられる)他のレイヤの情報としては、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータなど)のうちの少なくとも一つであり得る。
インターレイヤ予測において、現在ブロックは、現在レイヤ(例えば、レイヤ1)内の現在ピクチャ内のブロックであって、復号化対象ブロックであり得る。参照ブロックは、現在ブロックの予測に参照されるレイヤ(参照レイヤ、例えば、レイヤ0)における、現在ブロックの属するピクチャ(現在ピクチャ)と同じアクセスユニット(AU:access Unit)に属するピクチャ(参照ピクチャ)内のブロックであって、現在ブロックに対応するブロックであり得る。
マルチレイヤ復号化装置800は、先立ってマルチレイヤ符号化装置700で説明したようにインターレイヤ予測を行うことができる。例えば、マルチレイヤ復号化装置800は、先立ってマルチレイヤ符号化装置700で説明したように、インターレイヤテクスチャ予測、インターレイヤ動き予測、インターレイヤユニット情報予測、インターレイヤパラメータ予測、インターレイヤレジデュアル予測、インターレイヤ差分予測、インターレイヤシンタックス予測などを行うことができ、本開示で適用することが可能なインターレイヤ予測は、これらに限定されない。
予測部830-1は、符号化装置から受信した参照ピクチャインデックス或いは周辺ブロックから誘導した参照ピクチャインデックスが参照ピクチャリスト内でインターレイヤ参照ピクチャを指し示す場合に、インターレイヤ参照ピクチャを用いたインターレイヤ予測を行うことができる。例えば、予測部830-1は、参照ピクチャインデックスがインターレイヤ参照ピクチャを指し示す場合に、インターレイヤ参照ピクチャにおいて動きベクトルによって特定される領域のサンプル値を現在ブロックに対する予測ブロックとして誘導することができる。
この場合、インターレイヤ参照ピクチャは、現在ブロックに対する参照ピクチャリストに含まれることができる。予測部830-1は、インターレイヤ参照ピクチャを用いて現在ブロックに対するインター予測を行うことができる。
ここで、先立ってマルチレイヤ符号化装置700で説明したように、マルチレイヤ復号化装置800の動作において、インターレイヤ参照ピクチャは、参照レイヤの復元されたピクチャを現在レイヤに対応するようにサンプリングして構成された参照ピクチャであり得る。参照レイヤの復元されたピクチャが現在レイヤのピクチャに対応する場合に対する処理も、符号化過程での処理と同様に行われることができる。
また、先立ってマルチレイヤ符号化装置700で説明したように、マルチレイヤ復号化装置800の動作において、インターレイヤ参照ピクチャが誘導される参照レイヤの復元ピクチャは、符号化対象である現在ピクチャと同じAUに属するピクチャであり得る。
また、先立ってマルチレイヤ符号化装置700で説明したように、マルチレイヤ復号化装置800の動作において、インターレイヤ参照ピクチャを参照ピクチャリストに含めて、現在ブロックに対するインター予測を行う場合に、インターレイヤ参照ピクチャの参照ピクチャリスト内の位置は、参照ピクチャリストL0とL1で互いに異なり得る。
また、先立ってマルチレイヤ符号化装置700で説明したように、マルチレイヤ復号化装置800の動作において、インターレイヤ参照ピクチャを含む参照ピクチャリストに基づいて現在ブロックに対するインター予測を行う場合に、参照ピクチャリストは、複数のレイヤから誘導された複数のインターレイヤ参照ピクチャを含むことができ、インターレイヤ参照ピクチャの配置も、先立って符号化過程で説明したのと対応するように行われることができる。
また、先立ってマルチレイヤ符号化装置700で説明したように、マルチレイヤ復号化装置800の動作において、インターレイヤ参照ピクチャの情報は、サンプル値のみ用いられてもよく、動き情報(動きベクトル)のみ用いられてもよく、サンプル値と動き情報の両方が用いられてもよい。
マルチレイヤ復号化装置800は、参照ピクチャリストにおいてインターレイヤ参照ピクチャを指し示す参照インデックスをマルチレイヤ符号化装置700から受信し、それに基づいてインターレイヤ予測を行うことができる。また、マルチレイヤ復号化装置800は、インターレイヤ参照ピクチャからどの情報(サンプル情報、動き情報、又はサンプル情報と動き情報の両方)を用いるかを指し示す情報、すなわち2つのレイヤの間でインターレイヤ予測に関する依存性(dependency)のタイプ(dependency type)を特定する情報も、マルチレイヤ符号化装置700から受信することができる。
HLS(High level syntax)シグナリング及びセマンティクス
前述したように、HLSは、ビデオ及び/又は画像符号化のために符号化及び/又はシグナリングされることができる。前述したように、本開示におけるビデオ/画像情報はHLSに含まれることができる。そして、画像/ビデオ符号化方法は、このような画像/ビデオ情報に基づいて行われることができる。
Video Parameter Set signalling
ビデオパラメータセット(Video parameter set、VPS)は、階層情報の伝送のために用いられるパラメータセットである。前記階層情報は、例えば、出力レイヤセット(output layer set、OLS)に関する情報、プロファイルディアレベル(profile tier level)に関する情報、OLSと仮想参照デコーダ(hypothetical reference decoder)との関係に関する情報、OLSとDPBとの関係に関する情報などを含むことができる。VPSは、ビットストリームの復号化に必須ではなくてもよい。VPS RBSP(raw byte sequence payload)は、参照される前に、TemporalIDが0である少なくとも1つのアクセスユニット(Access Unit、AU)に含まれるか、或いは外部手段を介して提供されることにより、復号化プロセスに利用可能でなければならない。CVS内で特定の値のvps_video_parameter_set_idを持つすべてのVPS NALユニットは、同じコンテンツを持たなければならない。
図9は、本開示の一実施例によるVPSのシンタックス構造を例示的に示す図である。以下、図9のシンタックス要素について説明する。
vps_video_parameter_set_idは、VPSに対する識別子を提供する。他のシンタックス要素は、vps_video_parameter_set_idを用いてVPSを参照することができる。vps_video_parameter_set_idの値は、0より大きくなければならない。
vps_max_layers_minus1は、VPSを参照する個別CVSに存在するレイヤの最大許容個数を示すことができる。例えば、vps_max_layers_minus1に1を加えた値は、VPSを参照する個別CVSに存在するレイヤの最大許容個数を示すことができる。
vps_max_sublayers_minus1に1を加えた値は、前記VPSを参照する個別CVSにおけるレイヤに存在しうる時間的サブレイヤの最大個数を示すことができる。
vps_all_layers_same_num_sublayers_flagの値1は、時間的サブレイヤの個数が、前記VPSを参照する個別CVSにおけるすべてのレイヤにおいて同一であることを示すことができる。vps_all_layers_same_num_sublayers_flagの値0は、時間的サブレイヤの個数が、前記VPSを参照する個別CVSにおけるレイヤで同一でもよく、同一でなくてもよいことを示すことができる。vps_all_layers_same_num_sublayers_flagの値がビットストリームから提供されない場合、vps_all_layers_same_num_sublayers_flagの値は1に誘導されることができる。
vps_all_independent_layers_flagの値1は、CVSに属するすべてのレイヤがインターレイヤ予測を用いず、独立して符号化されたことを示すことができる。vps_all_independent_layers_flagの値0は、CVSに属する少なくとも1つのレイヤがインターレイヤ予測を用いて符号化されたことを示すことができる。
vps_layer_id[i]は、i番目のレイヤのnuh_layer_idの値を示すことができる。任意の2つの負数でない整数値m及びnに対して、mがnより小さい場合、vps_layer_id[m]はvps_layer_id[n]より小さい値を有するように制限されることができる。ここで、nuh_layer_idは、NALユニットヘッダーでシグナリングされるシンタックス要素であって、NALユニットの識別子を示すことができる。
vps_independent_layer_flag[i]の値1は、インデックスiに対応するレイヤにはインターレイヤ予測が適用されないことを示すことができる。vps_independent_layer_flag[i]の値0は、インデックスiに対応するレイヤにはインターレイヤ予測が適用でき、シンタックス要素vps_direct_ref_layer_flag[i][j]がVPSから取得されることを示すことができる。ここで、jは、0からi-1までの値を有することができる。一方、vps_independent_layer_flag[i]の値がビットストリームに存在しない場合、その値は1に誘導されることができる。
vps_direct_ref_layer_flag[i][j]の値0は、インデックスjを有するレイヤが、インデックスiを有するレイヤの直接参照レイヤではないことを示すことができる。vps_direct_ref_layer_flag[i][j]の値1は、インデックスjを有するレイヤが、インデックスiを有するレイヤの直接参照レイヤであることを示すことができる。0からvps_max_layers_minus1までの値の範囲を有するi及びjに対して、vps_direct_ref_layer_flag[i][j]の値がビットストリームから取得されなければ、その値は0に誘導されることができる。vps_independent_layer_flag[i]の値が0であれば、vps_direct_ref_layer_flag[i][j]の値が1となるようにする少なくとも1つのjが存在する可能性があり、このとき、jの値の範囲は、0からi-1までの値の範囲を有することができる。
一実施例において、変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、及びLayerUsedAsRefLayerFlagd[j]は、図10の擬似コードを用いて誘導されることができる。
変数GeneralLayerIdx[i]は、nuh_layer_idの値がvps_layer_id[i]と等しいレイヤのレイヤインデックスを示し、下記数式のように誘導されることができる。
[数式2]
for(i=0;i<=vps_max_layers_minus1;i++)
GeneralLayerIdx[vps_layer_id[i]]=i
max_tid_ref_present_flag[i]の値1は、シンタックス要素max_tid_il_ref_pics_plus1[i]がビットストリームから提供されることを示すことができる。max_tid_ref_present_flag[i]の値0は、シンタックス要素max_tid_il_ref_pics_plus1[i]がビットストリームから提供されないことを示すことができる。
max_tid_il_ref_pics_plus1[i]の値0は、i番目のレイヤのnon-IRAPピクチャによるインターレイヤ予測が使用されないことを示すことができる。max_tid_il_ref_pics_plus1[i]の0より大きい値は、i番目のレイヤのピクチャの復号化のためにmax_tid_il_ref_pics_plus1[i]-1より大きい時間的ID(TemporalId)を有するピクチャは、ILRP(inter-layer reference picture)として使用されないことを示すことができる。一方、max_tid_il_ref_pics_plus1[i]の値がビットストリームから取得されない場合、その値は7に誘導されることができる。
シンタックス要素each_layer_is_an_ols_flagの値1は、個別OLSが1つのレイヤのみを有し、VPSを参照するCVSに属する個別レイヤは、唯一つの出力レイヤである単独包含レイヤを有するOLSであることを示すことができる。each_layer_is_an_ols_flagの値0は、OLSが1つよりも多いレイヤを含み得ることを示すことができる。一実施例において、vps_max_layers_minus1の値が0であれば、each_layer_is_an_ols_flagの値は1に誘導されることができる。そうではなく、vps_all_independent_layers_flagの値が0であれば、each_layer_is_an_ols_flagの値は0に誘導されることができる。
ols_mode_idcの値0は、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことを示すことができる。i番目のOLSは、0からiまでのレイヤインデックスを有するレイヤを含むことができる。そして、個別OLSに対してOLSのうちの最も高いレイヤが出力されることができる。
ols_mode_idcの値1は、VPSによって指定されるOLSの総数がvps_max_layers_minus1+1に等しいことを示すことができる。i番目のOLSは、0からiまでのレイヤインデックスを有するレイヤを含むことができる。そして、個別OLSに対してOLSのすべてのレイヤが出力されることができる。
ols_mode_idcの値2は、VPSによって指定されるOLSの総数が明示的にシグナリングされ、個別OLSに対して出力レイヤが明示的にシグナリングされ、他のレイヤはOLSの出力レイヤの直接又は参照レイヤであり得る。
ols_mode_idcの値は、0から2までの値を有することができる。ols_mode_idcの値3は、将来の使用のために保存されることができる。vps_all_independent_layers_flagの値が1であり、each_layer_is_an_ols_flagの値が0であれば、ols_mode_idcの値は2に誘導されることができる。
ols_mode_idcの値が所定の値である場合(例えば、値が2である場合)、シンタックス要素num_output_layer_sets_minus1に1を加えた値は、VPSによって指定されるOLSの総数を示すことができる。
VPSによって指定されるOLSの総数を示す変数TotalNumOlssは、図11のように誘導されることができる。
ols_output_layer_flag[i][j]の値1は、ols_mode_idcの値が2である場合、nuh_layer_idの値がvps_layer_id[j]に等しいレイヤはi番目のOLSの出力レイヤであることを示すことができる。ols_output_layer_flag[i][j]の値0は、ols_mode_idcの値が2である場合、nuh_layer_idの値がvps_layer_id[j]に等しいレイヤはi番目のOLSの出力レイヤではないことを示すことができる。
i番目のOLSにおける出力レイヤの個数を示す変数NumOutputLayersInOls[i]、i番目のOLSにおけるj番目のレイヤに存在するサブレイヤの個数を示す変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSにおけるj番目の出力レイヤのnuh_layer_id値を示す変数OutputLayerIdInOls[i][j]、k番目のレイヤが少なくとも1つのOLSで1つの出力レイヤとして使用されるか否かを示す変数LayerUsedAsOutputLayerFlag[k]は、図12の擬似コードのように誘導されることができる。
0からvps_max_layers_minus1までのiの値のそれぞれに対して、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値がすべて0とならないように強制されることができる。例えば、少なくとも1つのOLSの出力レイヤでもなく、他のレイヤの直接参照レイヤでもないレイヤは存在しないように強制されることができる。
個別OLSごとに、出力レイヤであるレイヤが少なくとも1つ存在するように強制されることができる。例えば、0からTotalNumOlss-1までのそれぞれのi値に対して、NumOutputLayersInOls[i]の値は、1以上の値を有するように強制されることができる。
i番目のOLSにおけるレイヤの個数を示す変数NumLayersInOls[i]及びi番目のOLSにおけるj番目のレイヤのnuh_layer_idの値を示す変数LayerIdInOls[i][j]は、図13のように誘導されることができる。
一実施例において、0番目のOLSは、最も低いレイヤのみを含むことができる。ここで、最も低いレイヤとは、nuh_layer_idの値がvps_layer_id[0]であるレイヤを意味することができる。そして、0番目のOLSに1つだけ含まれているレイヤは、出力として使用できる。
nuh_layer_idの値がLayerIdInOls[i][j]と同じレイヤのOLSレイヤインデックスを示す変数OlsLayerIdx[i][j]は、図14のように誘導されることができる。
それぞれのOLSに存在する最も低いレイヤは、独立レイヤとなるように制限されることができる。例えば、0からTotalNumOlss-1までの値の範囲を有するそれぞれのiに対して、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は、1となるように強制されることができる。
それぞれのレイヤは、VPSによって指定される少なくとも1つのOLSに含まれるように強制されることができる。
max_tid_il_ref_pics_plus1[i]シグナリングの制限
シンタックス要素max_tid_il_ref_pics_plus1[i]に関するシグナリングは、そのセマンティクスと機能において多少問題がある。
例えば、max_tid_il_ref_pics_plus1[i]のセマンティクスは、max_tid_il_ref_pics_plus1[i]の値が0より大きければ、i番目のレイヤに存在するピクチャはそのインターレイヤ予測のために参照ピクチャから最大max_tid_il_ref_ref_pics_plus1[i]-1個までのサブレイヤのみを使用することを示すことができる。
これは、i番目のサブレイヤに存在するピクチャはそのインターレイヤ予測を行うために参照ピクチャから最大max_tid_il_ref_ref_pics_plus1[i]-1までのサブレイヤを使用することができることを示す。
前記シンタックス要素は、変数NumSubLayersInLayerInOLS[i][j]の誘導を許容するために設計された。ここで、変数NumSubLayersInLayerInOLS[i][j]は、i番目のOLSにおけるj番目のレイヤに存在するサブレイヤの個数を示すことができる。ここで、OLSは、出力レイヤセット(Output layer set)の略字であって、出力レイヤとして指定された少なくとも1つのレイヤの集合を意味することができる。
抽出されたOLSの出力レイヤではないレイヤに存在するサブレイヤ内に存在するピクチャを除去するために、変数NumSubLayersInLayerInOLS[i][j]は、ビットストリーム抽出プロセスで使用されることができる。
このようなメカニズムは、1つのレイヤがインターレイヤ予測を行うために1つより多い参照レイヤを使用し、個別参照レイヤで使用されるサブレイヤの個数が同一でない場合に非効率性を示す。
例えば、インターレイヤ予測を行うために、レイヤ2がレイヤ0及びレイヤ1を参照すると仮定することができる。レイヤ0では、インターレイヤ予測を行うために2つのサブレイヤのみが使用されるのに対し、レイヤ1では、3つのサブレイヤが使用されることができる。このような例示において、上述したシグナリング方法によれば、レイヤ2はインターレイヤ予測を行うために3つのサブレイヤを使用し、このような方法では、レイヤ0ではサブレイヤ3又はそれ以上を除去することができなくなるという問題がある。
改善方案
以下の実施例は、上述した問題点を解決するための方案を提示する。個別実施例は、個別的に実施されるか、或いは一部又は全部が一緒に組み合わせられて実施されることができる。
改善方案1.1つのレイヤに対するインターレイヤ予測で使用されるサブレイヤの最大個数をシグナリングするために、すべての参照レイヤに対して1つの値をシグナリングする代わりに、1つのレイヤの個別参照レイヤごとに、前記参照レイヤで使用されるサブレイヤの最大個数がシグナリングされることができる。
改善方案2.レイヤiに対する参照レイヤjで使用される最大サブレイヤの個数は、レイヤjがレイヤiの直接参照レイヤである場合に限って提供されることができる。
改善方案3.1つのレイヤによるインターレイヤ予測のために使用されるサブレイヤの最大個数のシグナリングが存在するか否かを示すフラグが、全てのレイヤに対して1つシグナリングされることができる。これは、VPSでシグナリングされることができる。
a)シンタックス要素max_tid_ref_present_flag[i]は、max_tid_ref_present_flagに変更されて使用されることができる。
b)すべてのレイヤが独立したレイヤである場合、max_tid_ref_present_flagは提供されないことができる。max_tid_ref_present_flagが提供されない場合、max_tid_ref_present_flagの値は0に誘導されることができる。
改善方案4.直接参照レイヤ及び間接参照レイヤのためのNumSubLayersInLayerInOLSは、次のように誘導されることができる。
a)each_layer_is_an_ols_flag[i]の値が1である場合(例えば、true)、NumSubLayersInLayerInOLS[i][0]はvps_max_sub_layers_minus1+1の値に設定されることができる。
b)each_layer_is_an_ols_flag[i]の値が0であり(例えば、false)、個別OLSに対して、vps_direct_ref_layer_flag[l][k]の値が真であれば、NumSubLayersInLayerInOLS[i][GeneralLayerIdx[vps_layer_id[k]]]は、max_tid_il_ref_pics_plus[l][k]に誘導されることができる。
c)前記改善方案4は、ols_mode_idcの値が2である場合に適用されることができる。
実施例1
一実施例において、改善方案1及び2は、図15に示されている変更されたVPSのシンタックスに従って実施されることができる。以下に説明されたVPSシンタックスに対して変更された図15のシンタックス要素について説明する。
vps_independent_layer_flag[i]の値1は、インデックスiを有するレイヤがインターレイヤ予測を用いないことを示すことができる。vps_independent_layer_flag[i]の値0は、インデックスiを有するレイヤがインターレイヤ予測を用いることができ、シンタックス要素vps_direct_ref_layer_flag[i][j]がVPSから取得されることを示すことができる。ここで、jは、0からi-1までの値を有することができる。vps_independent_layer_flag[i]の値がビットストリームから取得されない場合、vps_independent_layer_flag[i]の値は1に誘導されることができる。
max_tid_ref_present_flag[i]の値1は、シンタックス要素max_tid_il_ref_pics_plus1[i][j]がビットストリームから提供されることを示すことができる。max_tid_ref_present_flag[i]の値0は、シンタックス要素max_tid_il_ref_pics_plus1[i][j]がビットストリームから提供されないことを示すことができる。
max_tid_il_ref_pics_plus1[i][j]の値0は、i番目のレイヤの非IRAPピクチャによるインターレイヤ予測のための参照レイヤとしてj番目のレイヤが使用されないことを示すことができる。max_tid_il_ref_pics_plus1[i][j]の0より大きい値は、i番目のレイヤのピクチャの復号化のためにj番目のレイヤにおいてmax_tid_il_ref_pics_plus1[i][j]-1より大きい時間的ID(TemporalId)レイヤを有するピクチャはILRP(inter-layer reference picture)として使用されないことを示すことができる。一方、max_tid_il_ref_pics_plus1[i][j]の値がビットストリームから取得されない場合、その値は7に誘導されることができる。
そして、上述した説明に従って変更されたシンタックス要素と変数を用いて、変数NumOutputLayersInOls[i]、NumSubLayersInLayerInOLS[i][j]、OutputLayerIdInOls[i][j]、及びLayerUsedAsOutputLayerFlag[k]は、図16の擬似コードのように決定されることができる。
上述した方法のように、1つのレイヤの個別参照レイヤごとに、前記参照レイヤで使用されるサブレイヤの最大個数がシグナリングされることができ、レイヤiに対する参照レイヤjで使用される最大サブレイヤの個数は、レイヤjがレイヤiの直接参照レイヤである場合に限って提供されることができる。
実施例2
一実施例において、改善方案3は、図17に示されている変更されたVPSのシンタックスに従って実施されることができる。例えば、図17のmax_tid_ref_present_flagのように、1つのレイヤによるインターレイヤ予測のために使用されるサブレイヤの最大個数のシグナリングが存在するか否かを示すフラグが全てのレイヤに対して1つシグナリングされることができる。
例えば、前述したVPSのシンタックスに対して変更された図17のシンタックス要素max_tid_ref_present_flagの値1は、シンタックス要素max_tid_il_ref_pics_plus1[i]がビットストリームから提供されることを示すことができる。max_tid_ref_present_flagの値0は、シンタックス要素max_tid_il_ref_pics_plus1[i]がビットストリームから提供されないことを示すことができる。
実施例3
前述した改善方案1、2及び4によるNumOutputLayersInOlsの誘導は、図18の擬似コードに従って行われることができる。図18は、直接参照レイヤ及び間接参照レイヤのためのNumOutputLayersInOlsを誘導する方法を示す擬似コードを示す図である。
図18に示すように、ols_mode_idcの値が2である場合、each_layer_is_an_ols_flag[i]の値が真であれば、NumSubLayersInLayerInOLS[i][0]はvps_max_sub_layers_minus1+1の値に設定されることができ、each_layer_is_an_ols_flag[i]の値が偽であり、個別OLSに対して、vps_direct_ref_layer_flag[l][k]の値が真であれば、NumSubLayersInLayerInOLS[i][GeneralLayerIdx[vps_layer_id[k]]]]はmax_tid_il_ref_pics_plus[l][k]に誘導されることができる。
符号化及び復号化方法
以下、一実施例による画像符号化装置及び画像復号化装置によって行われる画像符号化方法及び復号化方法について説明する。図19は、一実施例による画像符号化装置が画像を符号化するために、及び/又は画像復号化装置が画像を復号化するために現在レイヤのサブレイヤの個数を決定する方法を説明するフローチャートである。
一実施例による画像復号化装置は、メモリとプロセッサを含み、復号化装置は、プロセッサの動作によって、以下に説明する実施例に従って復号化を行うことができる。一実施例による画像符号化装置は、メモリとプロセッサとを含み、符号化装置は、プロセッサの動作によって、以下に説明する実施例によって復号化装置の復号化に対応する方式で符号化を行うことができる。以下の説明の便宜のために復号化装置の動作を説明するが、以下の説明は、符号化装置に対しても適用されることができる。
一実施例において、現在レイヤのサブレイヤの個数は、現在レイヤに属するサブレイヤの個数を意味するものと用いられることができるが、他の実施例では、現在レイヤのサブレイヤの個数は、現在レイヤに要求されるサブレイヤの個数を意味するものとして用いられることもできる。
一実施例による復号化装置は、レイヤ間直接参照の如何を決定することができる(S1910)。ここで、前記レイヤ間直接参照の如何は、ビットストリームから取得される直接参照レイヤ情報によって決定されることができる。そして、前記直接参照レイヤ情報は、レイヤ間直接参照の如何を示すことができる。例えば、直接参照レイヤ情報は、前述したシンタックス要素vps_direct_ref_layer_flag[i][j]であり得る。
前記直接参照レイヤ情報は、インターレイヤ予測に基づいて符号化されるレイヤに対して前記ビットストリームから取得されることができる。ここで、前記インターレイヤ予測に基づいて符号化されるか否かは、前記ビットストリームから取得される独立レイヤ情報に基づいて決定されることができる。例えば、独立レイヤ情報は、前述したシンタックス要素vps_independent_layer_flag[i]であり得る。
次に、復号化装置は、前記レイヤ間直接参照の如何に基づいて現在レイヤのサブレイヤの個数を決定することができる(S1920)。
ここで、前記現在レイヤのサブレイヤの個数は、前記現在レイヤが出力レイヤであるか否かに基づいて決定されることができる。一実施例において、現在レイヤが出力レイヤであるか否かは、図18の擬似コードに示されているように、「if(each_layer_is_an_ols_flag)」又は「if(ols_output_layer_flag[i][k])」によって決定されることができる。
一実施例において、前記現在レイヤが出力レイヤであるか否かに基づいて、前記現在レイヤのサブレイヤの個数は、サブレイヤの利用可能な最大個数として決定されることができる。これは、図18の擬似コードに示されているように、「NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1」で実現されることができる。
一実施例において、前記現在レイヤが出力レイヤではないことに基づいて、前記現在レイヤのサブレイヤの個数は、前記レイヤ間直接参照の如何に基づいて決定された所定の値に決定されることもできる。
ここで、前記所定の値は、インターレイヤ予測を行うために参照可能なピクチャを示す最大識別子情報に基づいて決定されることができる。前記最大識別子情報は、第1レイヤの複数のピクチャのうち、前記最大識別子情報によって識別される値より大きい時間的識別子を有するピクチャが、第2レイヤの現在ピクチャを復号化するためにインターレイヤ参照ピクチャとして使用されないことを示す情報であることができ、例えば、最大識別子情報は、前述したシンタックス要素max_tid_il_ref_pics_plus1[i][j]であり得る。
一実施例において、前記第1レイヤは、前記現在レイヤであり、前記第2レイヤは、前記現在レイヤを直接参照レイヤとして利用可能なレイヤであり得る。
例えば、最大識別子情報は、図18に示めされているmax_tid_il_ref_pics_plus1[l][k]であり得る。そして、現在レイヤのサブレイヤとそれを直接参照可能なレイヤとの関係は、図18における「if(vps_direct_ref_layer_flag[l][k])」によって識別されることができる。
前記現在レイヤが出力レイヤであるか否かは、前記ビットストリームから取得された出力レイヤセットモード情報に基づいて決定されることができ、ここで、出力レイヤセットモード情報は、前述したシンタックス要素ols_mode_idcであり得る。
また、前記現在レイヤが出力レイヤであるか否かは、前記ビットストリームから取得された出力レイヤセットモード情報及び出力レイヤフラグに基づいて決定されることができ、ここで、出力レイヤフラグは、前述したシンタックス要素ols_output_layer_flag[i][j]であり得る。
このような方式で決定されたサブレイヤの個数に基づいて、復号化装置は、現在レイヤのインターレイヤ予測を行うことにより現在レイヤを復号化することができ、符号化装置は、現在レイヤのインターレイヤ予測を行うことにより現在レイヤを符号化することができる。
例えば、一実施例において、画像復号化方法は、ビットストリームからレイヤの最大許容個数(例えば、vps_max_layers_minus1)を取得するステップと、最大許容個数に基づいて第1インデックス(例えば、i)を有する現在レイヤを識別するステップと、ビットストリームから現在レイヤがインターレイヤ予測に基づいて符号化されたか否かを示す独立レイヤフラグ(例えば、vps_independent_layer_flag[i])を取得するステップと、独立レイヤフラグに基づいてビットストリームから最大時間識別子シグナリングフラグ(例えば、vps_max_tid_ref_present_flag[i])を取得するステップと、独立レイヤフラグと第1インデックス及び第2インデックスに基づいて、第2インデックスを有する参照レイヤが現在レイヤの直接参照レイヤであるかを示す直接参照レイヤフラグ(例えば、vps_direct_ref_layer_flag[i][j])をビットストリームから取得するステップと、最大時間識別子シグナリングフラグと直接参照レイヤフラグに基づいてビットストリームから最大時間識別子情報(例えば、vps_max_tid_il_ref_pics_plus1[i][j])を取得するステップと、参照レイヤのサブレイヤの個数(例えば、NumSubLayersInLayerInOLS[i][k])を最大時間識別子情報に基づいて決定するステップと、を含むことができる。
また、一実施例において、画像符号化方法は、参照レイヤの参照ピクチャを符号化するステップ、参照ピクチャに基づいて現在レイヤの現在ピクチャを符号化するステップ、及び現在ピクチャの符号化情報を含むビットストリームを生成するステップを含むことができる。
ここで、インターレイヤ予測に基づいて現在レイヤが符号化されたかを示す独立レイヤフラグ(例えば、vps_independent_layer_flag[i])がビットストリームに含まれることができる。さらに、最大時間識別子シグナリングフラグ(例えば、vps_max_tid_ref_present_flag[i])が、インターレイヤ予測に基づいて現在レイヤが符号化されたか否かに基づいてビットストリームに含まれることができる。これに加えて、参照レイヤが現在レイヤの直接参照レイヤであるか否かを示す直接参照レイヤフラグ(例えば、vps_direct_ref_layer_flag[i][j])がビットストリームに含まれることができる。
また、最大時間識別子情報(例えば、vps_max_tid_il_ref_pics_plus1[i][j])が最大時間識別子シグナリングフラグ及び直接参照フラグに基づいてビットストリームに含まれることができる。さらに、現在レイヤから参照できる参照レイヤのサブレイヤの個数(例えば、NumSubLayersInLayerInOLS[i][k])が最大時間識別子情報に基づいて符号化されることができる。
ここで、サブレイヤは、現在レイヤから参照されることができ、最大時間識別子フラグは、最大時間識別子情報がビットストリームから取得されるか否かを示すことができる。また、参照レイヤのピクチャのうち、最大時間識別子情報によって識別された値よりも大きい時間識別子値を有するピクチャは、現在レイヤの現在ピクチャを復号化するためのインターレイヤ参照ピクチャとして使用されなくてもよい。
応用実施例
本開示の例示的な方法は、説明の明確性のために動作のシリーズで表現されているが、これは、ステップが行われる順序を制限するためのものではなく、必要な場合には、それぞれのステップが同時に又は異なる順序で行われることもできる。本開示による方法を実現するために、例示するステップにさらに他のステップを含むか、一部のステップを除いて残りのステップを含むか、又は一部のステップを除いて追加の他のステップを含むこともできる。
本開示において、所定の動作(ステップ)を行う画像符号化装置又は画像復号化装置は、当該動作(ステップ)の実行条件や状況を確認する動作(ステップ)を行うことができる。例えば、所定の条件が満たされる場合、所定の動作を行うと記載された場合、画像符号化装置又は画像復号化装置は、前記所定の条件が満たされるか否かを確認する動作を行った後、前記所定の動作を行うことができる。
本開示の様々な実施例は、すべての可能な組み合わせを羅列したものではなく、本開示の代表的な態様を説明するためのものであり、様々な実施例で説明する事項は、独立して適用されてもよく、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)などを含むことができる。
図20は本開示の実施例が適用できるコンテンツストリーミングシステムを例示する図である。
図20に示されているように、本開示の実施例が適用されたコンテンツストリーミングシステムは、大きく、符号化サーバ、ストリーミングサーバ、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)を含む。