本文書は様々な変更を加えることができ、様々な実施例を有し得るところ、特定実施例を図面に例示して詳細に説明する。ただし、これは、本文書の実施例を特定実施例に限定しようとするものではない。本明細書で常用する用語は特定の実施例を説明するために使われるだけで、本文書の技術的思想を限定する意図で使われるものではない。単数の表現は、文脈において別に断らない限り、複数の表現をも含む。本明細書において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品又はそれらを組み合わせたものが存在することを指定するためのものであり、1つ又はそれ以上の他の特徴、数字、段階、動作、構成要素、部品又はそれらを組み合わせたものの存在又は付加の可能性をあらかじめ排除しないものとして理解されるべきである。
一方、本文書で説明される図面上の各構成は、それぞれ異なる特徴的な機能に関する説明の便宜のために独立して示すものであり、各構成が互いに別個のハードウェアや別個のソフトウェアとして具現されるということを意味するものではない。例えば、各構成のうち2つ以上の構成が合わせられて一つの構成をなしてもよく、一つの構成が複数の構成に分けられてもよい。各構成が統合及び/又は分離された実施例も、本文書の本質から逸脱しない限り、本文書の権利範囲に含まれる。
以下、添付の図面を参照して、本文書の好ましい実施例をより詳細に説明する。以下、図面上の同一の構成要素には同一の参照符号を付し、同一の構成要素について重複する説明は省略する。
図1には、本文書の実施例が適用可能なビデオ/映像コーディングシステムの例を概略的に示す。
図1を参照すると、ビデオ/映像コーディングシステムは、第1装置(ソースデバイス)及び第2装置(受信デバイス)を含むことができる。ソースデバイスは、エンコードされたビデオ(video)/映像(image)情報又はデータをファイル又はストリーミングの形態でデジタル記憶媒体又はネットワークを介して受信デバイスに伝達することができる。
前記ソースデバイスは、ビデオソース、エンコーディング装置、送信部を含むことができる。前記受信デバイスは、受信部、デコーディング装置及びレンダラーを含むことができる。前記エンコーディング装置はビデオ/映像エンコーディング装置と呼ばれてもよく、前記デコーディング装置はビデオ/映像デコーディング装置と呼ばれてもよい。送信機はエンコーディング装置に含まれてよい。受信機はデコーディング装置に含まれてよい。レンダラーはディスプレイ部を含むこともでき、ディスプレイ部は別個のデバイス又は外部コンポーネントとして構成されてもよい。
ビデオソースは、ビデオ/映像のキャプチャー、合成又は生成過程などによってビデオ/映像を取得できる。ビデオソースは、ビデオ/映像キャプチャーデバイス及び/又はビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャーデバイスは、例えば、1つ以上のカメラ、以前にキャプチャーされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えば、コンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。例えば、コンピュータなどによって仮想のビデオ/映像が生成されてよく、この場合、関連データが生成される過程でビデオ/映像のキャプチャー過程に代えてよい。
エンコーディング装置は、入力ビデオ/映像をエンコードすることができる。エンコーディング装置は、圧縮及びコーディング効率のために予測、変換、量子化などの一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)の形態で出力されてよい。
送信部は、ビットストリームの形態で出力されたエンコードされたビデオ/映像情報又はデータをファイル又はストリーミングの形態で、デジタル記憶媒体又はネットワークを介して受信デバイスの受信部に伝達することができる。デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含むことができる。送信部は、あらかじめ定められたファイルフォーマットによってメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した伝送のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコーディング装置に伝達できる。
デコーディング装置は、エンコーディング装置の動作に対応する逆量子化、逆変換、予測などの一連の手順を行ってビデオ/映像をデコードすることができる。
レンダラーは、デコードされたビデオ/映像をレンダーすることができる。レンダーされたビデオ/映像は、ディスプレイ部でディスプレイされてよい。
この文書は、ビデオ/映像コーディングに関する。例えば、この文書に開示の方法/実施例は、VVC(versatile video coding)標準、EVC(essential video coding)標準、AV1(AOMedia Video1)標準、AVS2(2nd generation of audio video coding standard)又は次世代ビデオ/映像コーディング標準(例えば、H.267又はH.268など)に開示される方法に適用されてよい。
この文書ではビデオ/映像コーディングに関する様々な実施例を提示し、特に言及がない限り、前記実施例は互いに組み合わせられて行われてもよい。
この文書において、ビデオ(video)は、時間の流れによる一連の映像(image)の集合を意味できる。ピクチャー(picture)は一般に、特定時間帯の1つの映像を表す単位を意味し、サブピクチャー(subpicture)/スライス(slice)/タイル(tile)は、コーディングにおいてピクチャーの一部を構成する単位である。サブピクチャー/スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャーは1つ以上のサブピクチャー/スライス/タイルで構成されてよい。1つのピクチャーは1つ以上のタイルグループで構成されてよい。1つのタイルグループは1つ以上のタイルを含むことができる。ブリックは、ピクチャーのタイル内でCTU行の四角領域を示すことができる。タイルは、複数のブリックにパーティショニングされてよく、各ブリックは、前記タイル内で1つ以上のCTU行で構成されてよい。複数のブリックにパーティショニングされていないタイルもブリックと呼ぶことができる。ブリックスキャンは、ピクチャーをパーティショニングするCTUの特定の順次的オーダーリングを示すことができ、これらのCTUはブリック内でCTUラスタースキャンで整列されてよく、タイル内のブリックは、前記タイルの前記ブリックのラスタースキャンで連続して整列されてよく、そしてピクチャー内のタイルは、前記ピクチャーの前記タイルのラスタースキャンで連続して整列されてよい。また、サブピクチャーは、ピクチャー内の1つ以上のスライスの四角領域を示すことができる。すなわち、サブピクチャーは、ピクチャーの長方形の領域をまとめてカバーする1つ以上のスライスを含むことができる。タイルは、ピクチャーにおいて特定タイル行及び特定タイル列以内のCTUの四角領域である。前記タイル列はCTUの四角領域であり、前記四角領域は、前記ピクチャーの高さと同じ高さを有し、幅はピクチャーパラメータセット内のシンタックス要素によって明示されてよい。前記タイル行はCTUの四角領域であり、前記四角領域は、ピクチャーパラメータセット内のシンタックス要素によって明示される幅を有し、高さは前記ピクチャーの高さと同一であってよい。タイルスキャンは、ピクチャーをパーティショニングするCTUの特定の順次的オーダーリングを示すことができ、前記CTUは、タイル内にCTUラスタースキャンで連続して整列されてよく、ピクチャー内のタイルは、前記ピクチャーの前記タイルのラスタースキャンで連続して整列されてよい。スライスは、ピクチャーの整数個のブリックを含むことができ、前記整数個のブリックは単一NALユニットに含まれてよい。スライスは、複数の完全なタイルで構成されてよく、又は1つのタイルの完全なブリックの連続したシーケンスであってよい。この文書においてタイルグループとスライスは同じ意味で使われてよい。例えば、本文書においてタイルグループ/タイルグループヘッダーはスライス/スライスヘッダーと呼ばれてよい。
ピクセル(pixel)又はPEL(pel)は、1つのピクチャー(又は、映像)を構成する最小の単位を意味できる。また、ピクセルに対応する用語として「サンプル(sample)」が使われてよい。サンプルは一般に、ピクセル又はピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを表してもよく、クロマ(chroma)成分のピクセル/ピクセル値のみを表してもよい。
ユニット(unit)は、映像処理の基本単位を示すことができる。ユニットは、ピクチャーの特定領域及び当該領域に関連した情報のうち少なくとも一つを含むことができる。1つのユニットは、1つのルマブロック及び2つのクロマ(ex.cb,cr)ブロックを含むことができる。ユニットは、場合によってブロック(block)又は領域(area)などの用語と同じ意味で使われてよい。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル(又は、サンプルアレイ)又は変換係数(transform coefficient)の集合(又は、アレイ)を含むことができる。
本明細書において、「A又はB(A or B)」は、「Aのみ」、「Bのみ」又は「AとBの両方」を意味できる。言い換えると、本明細書において「A又はB(A or B)」は「A及び/又はB(A and/or B)」と解釈できる。例えば、本明細書において「A、B又はC(A,B or C)」は、「Aのみ」、「Bのみ」、「Cのみ」、又は「A、B及びCの任意の全ての組合せ(any combination of A,B and C)」を意味できる。
本明細書で使われるスラッシュ(/)やコンマ(comma)は、「及び/又は(and/or)」を意味できる。例えば、「A/B」は「A及び/又はB」を意味できる。したがって、「A/B」は、「Aのみ」、「Bのみ」、又は「AとBの両方」を意味できる。例えば、「A、B、C」は「A、B又はC」を意味できる。
本明細書において「A及びBのうち少なくとも一つ(at least one of A and B)」は、「Aのみ」、「Bのみ」又は「AとBの両方」を意味できる。また、本明細書において「A又はBのうち少なくとも一つ(at least one of A or B)」や「A及び/又はBのうち少なくとも一つ(at least one of A and/or B)」という表現は、「A及びBのうち少なくとも一つ(at least one of A and B)」と同一に解釈されてよい。
また、本明細書において「A、B及びCのうち少なくとも一つ(at least one of A,B and C)」は、「Aのみ」、「Bのみ」、「Cのみ」、又は「A、B及びCの任意の全ての組合せ(any combination of A,B and C)」を意味できる。また、「A、B又はCのうち少なくとも一つ(at least one of A,B or C)」や「A、B及び/又はCのうち少なくとも一つ(at least one of A,B and/or C)」は、「A、B及びCのうち少なくとも一つ(at least one of A,B and C)」を意味できる。
また、本明細書で使われる括弧は、「例えば(for example)」を意味できる。具体的には、「予測(イントラ予測)」と表示された場合に、「予測」の一例として「イントラ予測」が提案されたものであってよい。言い換えると、本明細書における「予測」は「イントラ予測」に制限(limit)されず、「イントラ予測」が「予測」の一例として提案されたものであろう。また、「予測(すなわち、イントラ予測)」と表示された場合にも、「予測」の一例として「イントラ予測」が提案されたものであろう。
本明細書において、1つの図面で個別に説明される技術的特徴は、個別に具現されてもよく、同時に具現されてもよい。
以下の図面は、本明細書の具体的な一例を説明するために作成されたものである。図面に記載された具体的な装置の名称又は具体的な信号/メッセージ/フィールドの名称は例示的に提示されたものであり、本明細書の技術的特徴は、以下の図面における具体的な名称に制限されない。
図2は、本文書の実施例が適用可能なビデオ/映像エンコーディング装置の構成を概略的に説明する図である。以下、ビデオエンコーディング装置は、映像エンコーディング装置を含むことができる。
図2を参照すると、エンコーディング装置200は、映像分割部(image partitioner,210)、予測部(predictor,220)、レジデュアル処理部(residual processor,230)、エントロピーエンコーディング部(entropy encoder,240)、加算部(adder,250)、フィルタリング部(filter,260)及びメモリ(memory,270)を含んで構成されてよい。予測部220は、インター予測部221及びイントラ予測部222を含むことができる。レジデュアル処理部230は、変換部(transformer,232)、量子化部(quantizer233)、逆量子化部(dequantizer,234)、逆変換部(inverse transformer,235)を含むことができる。レジデュアル処理部230は、減算部(subtractor,231)をさらに含むことができる。加算部250は、復元部(reconstructor)又は復元ブロック生成部(recontructged block generator)と呼ばれてもよい。上述した映像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコーディング部240、加算部250及びフィルタリング部260は、実施例によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセット又はプロセッサ)によって構成されてよい。また、メモリ270は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって構成されてもよい。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに含むこともできる。
映像分割部210は、エンコーディング装置200に入力された入力映像(又は、ピクチャー、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit,CU)と呼ぶことができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit,CTU)又は最大コーディングユニット(largest coding unit,LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されてよい。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はタナーリー構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されてよい。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はタナーリー構造が後で適用されてよい。又は、バイナリツリー構造が先に適用されてもよい。それ以上分割されない最終コーディングユニットに基づいて、本文書によるコーディング手順が行われてよい。この場合、映像特性によるコーディング効率などに基づいて、最大コーディングユニットが直ちに最終コーディングユニットとして用いられてよく、又は、必要によってコーディングユニットは再帰的に(recursively)さらに下位デプスのコーディングユニットに分割され、最適のサイズのコーディングユニットが最終コーディングユニットとして用いられてよい。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)又は変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットはそれぞれ、上述した最終コーディングユニットから分割又はパーティショニングされてよい。前記予測ユニットはサンプル予測の単位であってよく、前記変換ユニットは、変換係数を誘導する単位及び/又は変換係数からレジデュアル信号(residual signal)を誘導する単位であってよい。
ユニットは、場合によって、ブロック(block)又は領域(area)などの用語と同じ意味で使われてよい。一般の場合、MxNブロックは、M個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示すことができる。サンプルは一般に、ピクセル又はピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すこともでき、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、ピクセル(pixel)又はペル(pel)に対する1つのピクチャー(又は、映像)に対応する用語として使われてよい。
エンコーディング装置200は、入力映像信号(原本ブロック、原本サンプルアレイ)から、インター予測部221又はイントラ予測部222から出力された予測信号(予測ブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal;残余ブロック、残余サンプルアレイ)を生成でき、生成されたレジデュアル信号は変換部232に伝送される。この場合、図示のようにエンコーディング装置200において、入力映像信号(原本ブロック、原本サンプルアレイ)から予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部231と呼ばれてよい。予測部は、処理対象ブロック(以下、現在ブロックという。)に対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測ブロック(predicted block)を生成できる。予測部は、現在ブロック又はCU単位でイントラ予測が適用されるか又はインター予測が適用されるかを決定できる。予測部は、各予測モードに関する説明で後述するように、予測モード情報などの予測に関する様々な情報を生成してエントロピーエンコーディング部240に伝達できる。予測に関する情報は、エントロピーエンコーディング部240でエンコードされてビットストリームの形態で出力されてよい。
イントラ予測部222は、現在ピクチャー内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの周辺(neighbor)に位置してよく、離れて位置してもよい。イントラ予測において予測モードは複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプレーナーモード(Planar mode)を含むことができる。方向性モードは、予測方向の細密な程度によって、例えば33個の方向性予測モード又は65個の方向性予測モードを含むことができる。ただし、これは例示であり、設定によってそれ以上又はそれ以下の個数の方向性予測モードが用いられてもよい。イントラ予測部222は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測ブロックを誘導することができる。この時、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロック間の動き情報の相関性に基づき、動き情報をブロック、サブブロック又はサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャーインデックスを含むことができる。前記動き情報は、インター予測方向情報(L0予測、L1予測、Bi予測など)をさらに含むことができる。インター予測において、周辺ブロックは、現在ピクチャー内に存在する空間的周辺ブロック(spatial neighboring block)と、参照ピクチャーに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。前記参照ブロックを含む参照ピクチャーと前記時間的周辺ブロックを含む参照ピクチャーは同一であってもよく、異なってもよい。前記時間的周辺ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(colCU)などと呼ぶこともでき、前記時間的周辺ブロックを含む参照ピクチャーは、同一位置ピクチャー(collocated picture,colPic)と呼ぶこともできる。例えば、インター予測部221は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出するためにどの候補が用いられるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われてよく、例えば、スキップモードとマージモードでは、インター予測部221は周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップモードでは、マージモードとは違い、レジデュアル信号が伝送されなくてよい。動き情報予測(motion vector prediction,MVP)モードでは、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナルすることによって現在ブロックの動きベクトルを指示することができる。
予測部220は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測又はインター予測を適用できる他に、イントラ予測とインター予測を同時に適用することもできる。これをCIIP(combined inter and intra prediction)と呼ぶことができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy,IBC)予測モードに基づいてもよく、又はパレットモード(palette mode)に基づいてもよい。前記IBC予測モード又はパレットモードは、例えばSCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像のコーディングのために用いられてよい。IBCは基本的に現在ピクチャー内で予測を行うが、現在ピクチャー内で参照ブロックを導出する点でインター予測と類似に行われてよい。すなわち、IBCは、本文書で説明されるインター予測手法のうち少なくとも一つを用いることができる。パレットモードは、イントラコーディング又はイントラ予測の一例と見なすことができる。パレットモードが適用される場合に、パレットテーブル及びパレットインデックスに関する情報に基づいてピクチャー内サンプル値をシグナルすることができる。
前記予測部(インター予測部221及び/又は前記イントラ予測部222含む。)で生成された予測信号は、復元信号を生成するために用いられるか、レジデュアル信号を生成するために用いられてよい。変換部232は、レジデュアル信号に変換手法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換手法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、又はCNT(Conditionally Non-linear Transform)のうち少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとするとき、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を用いて予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同一サイズを有するピクセルブロックに適用されてもよく、正方形以外の可変サイズのブロックに適用されてもよい。
量子化部233は、変換係数を量子化してエントロピーエンコーディング部240に伝送し、エントロピーエンコーディング部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームとして出力できる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ぶことができる。量子化部233は、係数スキャン順序(scan order)に基づき、ブロック形態の量子化された変換係数を1次元ベクトルの形態で再整列でき、前記1次元ベクトル形態の量子化された変換係数に基づき、前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような様々なエンコーディング方法を行うことができる。エントロピーエンコーディング部240は、量子化された変換係数の他にも、ビデオ/イメージ復元に必要な情報(例えば、シンタックス要素(syntax elements)の値など)を共に又は別にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/映像情報)は、ビットストリームの形態でNAL(network abstraction layer)ユニット単位で伝送又は記憶されてよい。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャーパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書において、エンコーディング装置でデコーディング装置に伝達/シグナルされる情報及び/又はシンタックス要素は、ビデオ/映像情報に含まれてよい。前記ビデオ/映像情報は、上述のエンコーディング手順によってエンコードされて前記ビットストリームに含まれてよい。前記ビットストリームはネットワークを介して伝送されてよく、又はデジタル記憶媒体に記憶されてよい。ここで、ネットワークは放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含むことができる。エントロピーエンコーディング部240から出力された信号を伝送する送信部(図示せず)及び/又は記憶する記憶部(図示せず)がエンコーディング装置200の内/外部エレメントとして構成されてよく、又は送信部はエントロピーエンコーディング部240に含まれてもよい。
量子化部233から出力された量子化された変換係数は、予測信号を生成するために用いられてよい。例えば、量子化された変換係数に、逆量子化部234及び逆変換部235で逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロック又はレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号を、インター予測部221又はイントラ予測部222から出力された予測信号に加算することによって、復元(reconstructed)信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合に、予測されたブロックが復元ブロックとして用いられてよい。加算部250は、復元部又は復元ブロック生成部と呼ぶことができる。生成された復元信号は、現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてよく、後述するように、フィルタリングを経て次のピクチャーのインター予測のために用いられてもよい。
一方、ピクチャーエンコーディング及び/又は復元過程においてLMCS(luma mapping with chroma scaling)が適用されてもよい。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャーに様々なフィルタリング方法を適用し、修正された(modified)復元ピクチャーを生成でき、前記修正された復元ピクチャーをメモリ270、具体的にメモリ270のDPBに記憶させることができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、両方向フィルター(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に関する説明で後述されるように、フィルタリングに関する様々な情報を生成してエントロピーエンコーディング部240に伝達することができる。フィルタリング関する情報は、エントロピーエンコーディング部240でエンコードされてビットストリームの形態で出力されてよい。
メモリ270に伝送された修正された復元ピクチャーは、インター予測部221で参照ピクチャーとして用いられてよい。エンコーディング装置は、これによってインター予測が適用される場合に、エンコーディング装置200とデコーディング装置300での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは、修正された復元ピクチャーをインター予測部221での参照ピクチャーとして使用するために記憶することができる。メモリ270は、現在ピクチャー内動き情報が導出された(又は、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャー内のブロックの動き情報を記憶することができる。前記記憶された動き情報は、空間的周辺ブロックの動き情報又は時間的周辺ブロックの動き情報として活用するためにインター予測部221に伝達することができる。メモリ270は、現在ピクチャー内復元されたブロックの復元サンプルを記憶することができ、イントラ予測部222に伝達することができる。
図3は、本文書の実施例が適用可能なビデオ/映像デコーディング装置の構成を概略的に説明する図である。
図3を参照すると、デコーディング装置300は、エントロピーデコーディング部(entropy decoder,310)、レジデュアル処理部(residual processor,320)、予測部(predictor,330)、加算部(adder,340)、フィルタリング部(filter,350)及びメモリ(memory,360)を含んで構成されてよい。予測部330は、インター予測部331及びイントラ予測部332を含むことができる。レジデュアル処理部320は、逆量子化部(dequantizer,321)及び逆変換部(inverse transformer,322)を含むことができる。上述したエントロピーデコーディング部310、レジデュアル処理部320、予測部330、加算部340及びフィルタリング部350は、実施例によって、一つのハードウェアコンポーネント(例えば、デコーダチップセット又はプロセッサ)によって構成されてもよい。また、メモリ360は、DPB(decoded picture buffer)を含むことができ、デジタル記憶媒体によって構成されてもよい。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに含むこともできる。
ビデオ/映像情報を含むビットストリームが入力されると、デコーディング装置300は、図2のエンコーディング装置でビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコーディング装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出することができる。デコーディング装置300は、エンコーディング装置で適用された処理ユニットを用いてデコーディングを行うことができる。したがって、デコーディングの処理ユニットは、例えばコーディングユニットであってよく、コーディングユニットは、コーディングツリーユニット又は最大コーディングユニットから、クアッドツリー構造、バイナリツリー構造及び/又はタナーリーツリー構造をしたがって分割されてよい。コーディングユニットから1つ以上の変換ユニットが導出されてよい。そして、デコーディング装置300でデコーディング及び出力された復元映像信号は、再生装置で再生されてよい。
デコーディング装置300は、図2のエンコーディング装置から出力された信号をビットストリームの形態で受信することができ、受信された信号は、エントロピーデコーディング部310でデコードされてよい。例えば、エントロピーデコーディング部310は、前記ビットストリームをパーシングし、映像復元(又は、ピクチャー復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。前記ビデオ/映像情報は、アダプテーションパラメータセット(APS)、ピクチャーパラメータセット(PPS)、シーケンスパラメータセット(SPS)又はビデオパラメータセット(VPS)などの様々なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/映像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコーディング装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報にさらに基づいてピクチャーをデコードすることができる。本文書で後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコーディング手順によってデコードされ、前記ビットストリームから取得されてよい。例えば、エントロピーデコーディング部310は、指数ゴロム符号化、CAVLC又はCABACなどのコーディング方法に基づいてビットストリーム内情報をデコードし、映像復元に必要なシンタックスエレメントの値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳細には、CABACエントロピーデコーディング方法は、ビットストリームから各構文要素に該当するビン(bin)を受信し、デコーディング対象構文要素情報、周辺及びデコーディング対象ブロックのデコーディング情報、或いは以前段階でデコードされたシンボル/ビンの情報を用いて文脈(context)モデルを決定し、決定された文脈モデルによってビン(bin)の発生確率を予測してビンの算術デコーディング(arithmetic decoding)を行い、各構文要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコーディング方法は、文脈モデル決定後に、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を用いて文脈モデルをアップデートすることができる。エントロピーデコーディング部310でデコードされた情報のうち予測に関する情報は予測部330(インター予測部332及びイントラ予測部331)に提供され、エントロピーデコーディング部310でエントロピーデコーディングが行われたレジデュアル値、すなわち、量子化された変換係数及び関連パラメータ情報は、レジデュアル処理部320に入力されてよい。レジデュアル処理部320は、レジデュアル信号(レジデュアルブロック、レジデュアルサンプル、レジデュアルサンプルアレイ)を導出することができる。また、エントロピーデコーディング部310でデコードされた情報のうちフィルタリングに関する情報は、フィルタリング部350に提供されてよい。一方、エンコーディング装置から出力された信号を受信する受信部(図示せず)がデコーディング装置300の内/外部エレメントとしてさらに構成されてよく、又は受信部はエントロピーデコーディング部310の構成要素であってよい。一方、本文書に係るデコーディング装置は、ビデオ/映像/ピクチャーデコーディング装置と呼ぶことができ、該デコーディング装置は、情報デコーダ(ビデオ/映像/ピクチャー情報デコーダ)及びサンプルデコーダ(ビデオ/映像/ピクチャーサンプルデコーダ)に区別できる。前記情報デコーダは、前記エントロピーデコーディング部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、加算部340、フィルタリング部350、メモリ360、インター予測部332及びイントラ予測部331のうち少なくとも一つを含むことができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力できる。逆量子化部321は、量子化された変換係数を、2次元ブロックの形態で再整列できる。この場合、前記再整列は、エンコーディング装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得する。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコーディング部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか又はインター予測が適用されるかが決定でき、具体的なイントラ/インター予測モードを決定することができる。
予測部320は、後述する様々な予測方法に基づいて予測信号を生成できる。例えば、予測部は、一つのブロックに対する予測のためにイントラ予測又はインター予測を適用できる他に、イントラ予測とインター予測を同時に適用することもできる。これをCIIP(combined inter and intra prediction)モードと呼ぶことができる。また、予測部は、ブロックに対する予測のために、イントラブロックコピー(intra block copy,IBC)予測モードに基づいてもよく、又はパレットモード(palette mode)に基づいてもよい。前記IBC予測モード又はパレットモードは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ映像/動映像のコーディングのために用いられてよい。IBCは基本的に現在ピクチャー内で予測を行うが、現在ピクチャー内で参照ブロックを導出する点でインター予測と類似に行われてよい。すなわち、IBCは、本文書で説明されるインター予測手法のうち少なくとも一つを用いることができる。パレットモードは、イントラコーディング又はイントラ予測の一例と見なすことができる。パレットモードが適用される場合に、パレットテーブル及びパレットインデックスに関する情報が前記ビデオ/映像情報に含まれてシグナルされてよい。
イントラ予測部331は、現在ピクチャー内のサンプルを参照して現在ブロックを予測できる。前記参照されるサンプルは、予測モードによって、前記現在ブロックの周辺(neighbor)に位置してもよく、又は離れて位置してもよい。イントラ予測において、予測モードは複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部331は、周辺ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部332は、参照ピクチャー上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで伝送される動き情報の量を減らすために、周辺ブロックと現在ブロック間の動き情報の相関性に基づいて動き情報をブロック、サブブロック又はサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャーインデックスを含むことができる。前記動き情報は、インター予測方向情報(L0予測、L1予測、Bi予測など)をさらに含むことができる。インター予測において、周辺ブロックは、現在ピクチャー内に存在する空間的周辺ブロック(spatial neighboring block)と、参照ピクチャーに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部332は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャーインデックスを導出することができる。様々な予測モードに基づいてインター予測が行われてよく、前記予測に関する情報は、前記現在ブロックに対するインター予測モードを指示する情報を含むことができる。
加算部340は、取得されたレジデュアル信号を、予測部(インター予測部332及び/又はイントラ予測部331含む。)から出力された予測信号(予測ブロック、予測サンプルアレイ)に足すことにより、復元信号(復元ピクチャー、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように、処理対象ブロックに対するレジデュアルがない場合に、予測されたブロックが復元ブロックとして用いられてよい。
加算部340は、復元部又は復元ブロック生成部と呼ぶことができる。生成された復元信号は、現在ピクチャー内の次の処理対象ブロックのイントラ予測のために用いられてよく、後述するように、フィルタリングを経て出力されてもよく、又は次のピクチャーのインター予測のために用いられてもよい。
一方、ピクチャーデコーディング過程でLMCS(luma mapping with chroma scaling)が適用されてもよい。
フィルタリング部350は、復元信号にフィルタリングを適用して、主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャーに様々なフィルタリング方法を適用して、修正された(modified)復元ピクチャーを生成でき、前記修正された復元ピクチャーを、メモリ360、具体的にメモリ360のDPBに伝送することができる。前記様々なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルター(adaptive loop filter)、両方向フィルター(bilateral filter)などを含むことができる。
メモリ360のDPBに記憶された(修正された)復元ピクチャーは、インター予測部332で参照ピクチャーとして用いられてよい。メモリ360は、現在ピクチャー内の動き情報が導出された(又は、デコードされた)ブロックの動き情報、及び/又は既に復元されたピクチャー内のブロックの動き情報を記憶することができる。該記憶された動き情報は、空間的周辺ブロックの動き情報又は時間的周辺ブロックの動き情報として活用するためにインター予測部260に伝達できる。メモリ360は、現在ピクチャー内の復元されたブロックの復元サンプルを記憶でき、イントラ予測部331に伝達することができる。
本明細書において、エンコーディング装置200のフィルタリング部260、インター予測部221及びイントラ予測部222で説明された実施例は、それぞれ、デコーディング装置300のフィルタリング部350、インター予測部332及びイントラ予測部331にも同一に又は対応するように適用されてよい。
本文書において、量子化/逆量子化及び/又は変換/逆変換のうち少なくとも一つは省略されてよい。前記量子化/逆量子化が省略される場合に、前記量子化された変換係数は、変換係数と呼ぶことができる。前記変換/逆変換が省略される場合に、前記変換係数は、係数又はレジデュアル係数と呼ぶこともでき、又は表現の統一性のために変換係数と相変らず呼ぶこともできる。
また、本文書において、量子化された変換係数及び変換係数はそれぞれ、変換係数及びスケーリングされた(scaled)変換係数と呼ぶことができる。この場合、レジデュアル情報は、変換係数に関する情報を含むことができ、前記変換係数に関する情報は、レジデュアルコーディングシンタックスによってシグナルされてよい。前記レジデュアル情報(又は、前記変換係数に関する情報)に基づいて変換係数が導出されてよく、前記変換係数に対する逆変換(スケーリング)によってスケーリングされた変換係数が導出されてよい。前記スケーリングされた変換係数に対する逆変換(変換)に基づいてレジデュアルサンプルが導出されてよい。これは、本文書の他の部分でも、同一に適用/表現されてよい。
一方、DPB(Decoded Picture Buffer)でのピクチャー出力及び除去プロセスが行われてよい。ビデオ/映像コーディングシステムに対する既存VVC標準において前記DPB(Decoded Picture Buffer)でのピクチャー出力及び除去プロセスは、下表の通りでよい。
例えば、ビデオ/映像コーディングシステムに対するVVC標準によれば、現在ピクチャーをデコードする前に(たたし、前記現在ピクチャーの最初のスライスのスライスヘッダーをパースした後に)、上述の表に開示されているように、ピクチャー当たり1回ずつピクチャー出力プロセスが呼び出されてよい(invoked)。
また、例えば、表1を参照すると、現在AU(Access Unit)が、AU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に適用されてよい。したがって、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
また、例えば、表1を参照すると、DPBのピクチャーkに対して次の条件がいずれも真(true)である場合に、DPBの全ピクチャーkはDPBから除去されてよい。
- ピクチャーkは「参照として用いられない(unused for reference)」と表示される。
- ピクチャーkが0に等しいPictureOutputFlagを有するか、又は前記ピクチャーkのDPB出力時間(DPB output time)が現在ピクチャーnの最初のDU(Decoding Unit)(DU mと表示される。)のCPB除去時間(removal time)より小さい又は等しい。;すなわち、DpbOutputTime[k]がDuCpbRemovalTime[m]より小さい又は等しい。
また、例えば、表1を参照すると、現在AU(Access Unit)が、AU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に次のように適用されてよい。
- 例えば、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
- そうでない場合(すなわち、NoOutputOfPriorPicsFlagの値が0である場合)に、DPBの「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示された(marked)ピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよく、DPBの空いていないピクチャー記憶バッファ(all non-empty picture storage buffers)は、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスを繰り返し呼び出して空になり、DPB充満度は0に設定されてよい。
一方、前記バンピングプロセスは、次のような順序のステップで構成されてよい。
1.まず、出力されるピクチャーとして、「出力に必要(needed for output)」と表示されたDPBの全ピクチャーのうち、PicOrderCntVal値が最も小さいピクチャーが選択されてよい。
2.前記ピクチャーのそれぞれは、ピクチャーに対するコンフォーマンスクロッピングウィンドウ(conformance cropping window)を用いてnuh_layer_idの昇順でクロップされてよく(cropped)、前記クロップされたピクチャーは出力され、前記ピクチャーは「出力に不要である(not needed for output)」と表示されてよい。
3.「参照として用いられない(unused for reference)」と表示され、クロップされて出力されたピクチャーのうち一つのピクチャーを含む各ピクチャー記憶バッファは空になり、DPBの充満度は1ずつ減少してよい。
また、例えば、表1を参照すると、現在AUがCVSS AUでない場合に、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよい。空になった各ピクチャー記憶バッファに対して、DPB充満度は1ずつ減少してよい。また、後述する条件のうち一つ以上が真(true)である場合に、後述する条件が全て真でなくなるまで、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスが、空になった各追加ピクチャー記憶バッファに対してDPB充満度を1ずつさらに減少させながら繰り返し呼び出されてよい。
- 「出力必要(needed for output)」と表示されたDPB内のピクチャーの数がmax_num_reorder_pics[Htid]よりも大きい。
- max_latency_increase_plus1[Htid]が0でなく、DPB内の「出力必要(needed for output)」と表示された関連変数PicLatencyCountがMaxLatencyPictures[Htid]より大きい又等しいピクチャーが少なくとも一つ存在する。
- DPB内のピクチャーの数がmax_dec_pic_buffering_minus1[Htid]+1以上である。
一方、上述したピクチャー出力及び除去プロセスに対する既存VVC標準は、次のような問題があり得る。
例えば、第一に、ピクチャーの全てのスライスがデコードされた後に、前記ピクチャーが「短期参照として用いられる(used for short-term reference)」と表示される(marked)ことがある。これにより、ピクチャーがデコードされる時には、前記ピクチャーがDPBで明確な状態(status)でないことがある。結果的に、DPBのピクチャーストレージ(picture storage)の個数に影響を及ぼすことがある。
第二に、ピクチャーの出力状態(output status)の割り当て(すなわち、出力必要(needed for output))は、バンピングプロセス中に行われることがある。既存VVC標準によれば、前記プロセスは、コードされたビデオシーケンス開始AU(coded video sequence start AU)であるAUのピクチャーに対しては呼び出されないことがある。このため、当該ピクチャーと関連したPicLatencyCountの値が初期化されないことがある。
上述したように、DPBでピクチャーの出力及び除去プロセス呼び出しは、ピクチャー当たりに1回行われてよいが、前記プロセスは、CVSの全てのレイヤに共有されるDPBの状態(すなわち、DPBに記憶されたピクチャーの状態)に影響を与えることがある。上の事実を考慮すれば、NoOutputOfPriorPicsFlagの導出及びNoOutputOfPriorPicsFlagの値に基づいてDPBからピクチャーを除去するプロセスには問題があり得る。既存のビデオ/映像標準によれば、AU 0以外のCVSS AUの全ピクチャーに対して当該フラグ(すなわち、NoOutputOfPriorPicsFlag)の値に基づいてDPBでピクチャーを誘導して除去するプロセスが呼び出され得る。上述したようなプロセスは、1番目のピクチャーに対してのみ問題なく行われ得る。2番目のピクチャーから始まる前記プロセスは、以前(previous)ピクチャー(すなわち、デコーディング順序において以前順序のピクチャー)が出力される前にDPBから前記以前ピクチャーを除去することがある。このような動作は正しいデコーダ動作(decoder behavior)であると言えない。
そこで、本文書は、上述した問題に関する解決方案を提案する。提案される実施例は、個別に又は組み合わせて適用されてよい。
一例として、DPBの参照ピクチャーを出力しないでDPBから除去するか否かを示すフラグ又は変数(variable)の値の導出プロセスは、AU(access Unit)当たりに1回のみ呼び出されてよい。すなわち、例えば、DPBの参照ピクチャーを出力しないでDPBから除去するか否かを示すフラグ又は変数(variable)の値の導出プロセスがAU(access Unit)当たりに1回のみ呼び出されるようにする方案が提案されてよい。ここで、前記変数は、NoOutputOfPriorPicsFlagであってよい。
また、一例として、NoOutputOfPriorPicsFlagの値の導出プロセスは、コードされたビデオシーケンス開始AU(Coded Video Sequence Start AU,CVSS AU)において最初のピクチャーのデコーディングプロセス以前であるが、現在ピクチャーの最初のスライスのスライスヘッダーをパースした後に呼び出されてよい。すなわち、例えば、NoOutputOfPriorPicsFlagの値の導出プロセスを、CVSS AUの最初のピクチャーのデコーディングプロセスが行われる前であるが、現在ピクチャーの最初のスライスのスライスヘッダーはパースされた後に行う方案が提案されてよい。
また、一例として、NoOutputOfPriorPicsFlagが1である場合に、DPBに記憶されたピクチャーを出力しないで除去するプロセスがAU当たりに1回のみ呼び出されてよい。すなわち、例えば、NoOutputOfPriorPicsFlagが1である場合に、DPBに記憶されたピクチャーを出力しないで除去するプロセスをAU当たりに1回のみ呼び出す方案が提案されてよい。
また、一例として、NoOutputOfPriorPicsFlagが1である場合に、DPBに記憶されたピクチャーを出力しないで除去するプロセスが、CVSS AU内の最初のピクチャーのデコーディングプロセス以前であるが、現在ピクチャーの最初のスライスのスライスヘッダーをパースした後に呼び出されてよい。すなわち、例えば、NoOutputOfPriorPicsFlagが1である場合に、DPBに記憶されたピクチャーを出力しないで除去するプロセスを、CVSS AU内の最初のピクチャーのデコーディングプロセス以前であるが、現在ピクチャーの最初のスライスのスライスヘッダーをパースした後に呼び出す方案が提案されてよい。
また、一例として、上述した実施例におけるピクチャーの除去は、DPBから現在ピクチャーの除去は含まれなくてよい。すなわち、例えば、前記実施例におけるピクチャーの除去が、DPBから現在ピクチャーの除去は含まない方案が提案されてよい。
上述した実施例は、次のように具現されてよい。例えば、上述した実施例は、後述するように、VVC標準仕様(specification)を基準にして示すことができる。
例えば、表2を参照すると、現在ピクチャーが最初のピクチャーであり、現在AU(すなわち、前記現在ピクチャーを含むAU)が、AU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に適用されてよい。したがって、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
また、例えば、表2を参照すると、現在AUがCVSS AUでないか又は現在AUがAU 0以外のCVSS AUであるが、現在ピクチャーが前記現在AU内の最初のピクチャーでなく、DPBのピクチャーkに対して次の条件がいずれも真(true)である場合に、DPBの全ピクチャーkはDPBから除去されてよい。
- ピクチャーkは「参照として用いられない(unused for reference)」と表示される。
- ピクチャーkが0のPictureOutputFlagを有するか、又は前記ピクチャーkのDPB出力時間(DPB output time)が現在ピクチャーnの最初のDU(DU mと表示される。)のCPB除去時間(removal time)より小さい又は等しい。;すなわち、DpbOutputTime[k]がDuCpbRemovalTime[m]より小さい又は等しい。
また、例えば、表2を参照すると、現在ピクチャーが最初のピクチャーであり、現在AU(すなわち、前記現在ピクチャーを含むAU)がAU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に次のように適用されてよい。
- 例えば、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
- そうでない場合(すなわち、NoOutputOfPriorPicsFlagの値が0である場合)に、DPBの「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示された(marked)ピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよく、DPBの空いていないピクチャー記憶バッファ(all non-empty picture storage buffers)は、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスを繰り返し呼び出して空になり、DPB充満度は0に設定されてよい。
また、例えば、表2を参照すると、現在AUがCVSS AUでないか又は現在AUがAU 0以外のCVSS AUであるが、現在ピクチャーが前記現在AUの最初のピクチャーでない場合に、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよい。空になった各ピクチャー記憶バッファに対して、DPB充満度は1ずつ減少してよい。また、後述する条件のうち一つ以上が真(true)である場合に、後述する条件が全て真にならなくまで、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスが空になった各追加ピクチャー記憶バッファに対してDPB充満度を1ずつさらに減少させながら繰り返し呼び出されてよい。
- 「出力必要(needed for output)」と表示されたDPB内のピクチャーの数がmax_num_reorder_pics[Htid]よりも大きい。
- max_latency_increase_plus1[Htid]が0でなく、DPB内の「出力必要(needed for output)」と表示された関連変数PicLatencyCountがMaxLatencyPictures[Htid]より大きい又等しいピクチャーが少なくとも一つある。
- DPB内のピクチャーの数がmax_dec_pic_buffering_minus1[Htid]+1以上である。
又は、上述した実施例は、次のように具現されてよい。例えば、上述した実施例は、後述するように、VVC標準仕様(specification)を基準にして示すことができる。
例えば、表3を参照すると、現在ピクチャーが現在AUの最初のピクチャーであり、現在AUがAU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に適用されてよい。したがって、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
また、例えば、表3を参照すると、現在AUがCVSS AUでないか又は現在AUがAU 0以外のCVSS AUであるが、現在ピクチャーが前記現在AUの最初のピクチャーでなく、DPBのピクチャーkに対して次の条件がいずれも真(true)である場合に、DPBの全ピクチャーkはDPBから除去されてよい。
- ピクチャーkは「参照として用いられない(unused for reference)」と表示される。
- ピクチャーkが0のPictureOutputFlagを有するか、又は前記ピクチャーkのDPB出力時間(DPB output time)が現在ピクチャーnの最初のDU(DU mと表示される。)のCPB除去時間(removal time)より小さい又は等しい。;すなわち、DpbOutputTime[k]がDuCpbRemovalTime[m]より小さい又は等しい。
また、例えば、表3を参照すると、現在ピクチャーが現在AUの最初のピクチャーであり、現在AUがAU 0以外のCVSS AU(Coded Video Sequence Start AU)である場合に、次の順序のステップが適用されてよい。
- 第一に、変数NoOutputOfPriorPicsFlagが、テスト中のデコーダに対して下記のように導出されてよい。
- 現在AUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8又はmax_dec_pic_buffering_minus1[Htid]の値のそれぞれが、先行するAUに対して導出されたPicWidthMaxInSamplesY、PicHeightMaxInSamplesY、MaxChromaFormat、MaxBitDepthMinus8、又はmax_dec_pic_buffering_minus1[Htid]の値と異なる場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値に関係なくテスト中のデコーダによって1と等しくなるように設定されてよい。
- そうでない場合に、NoOutputOfPriorPicsFlagは、現在AUのph_no_output_of_prior_pics_flagの値と同一に設定されてよい。
- 第二に、テスト中のデコーダに対して導出された変数NoOutputOfPriorPicsFlagがHRD(Hypothetical Reference Decoder)に次のように適用されてよい。
- 例えば、NoOutputOfPriorPicsFlagの値が1である場合に、DPBの全ピクチャー記憶バッファ(all picture storage buffers)は、含むピクチャーの出力無しで空になってよく、DPB充満度(fullness)は0に設定されてよい。
- そうでない場合(すなわち、NoOutputOfPriorPicsFlagの値が0である場合)に、DPBの「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示された(marked)ピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよく、DPBの空いていないピクチャー記憶バッファ(all non-empty picture storage buffers)は、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスを繰り返し呼び出して空になり、DPB充満度は0に設定されてよい。
また、例えば、表3を参照すると、現在AUがCVSS AUでないか又は現在AUがAU 0以外のCVSS AUであるが、現在ピクチャーが前記現在AUの最初のピクチャーでない場合に、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーを含む全てのピクチャー記憶バッファ(all picture storage buffers)が(出力無しで)空になってよい。空になった各ピクチャー記憶バッファに対して、DPB充満度は1ずつ減少してよい。また、後述する条件のうち一つ以上が真(true)である場合に、後述する条件が全て真にならなくまで、(VVC標準の)C.5.2.4節に指定された「バンピング(bumping)」プロセスが空になった各追加ピクチャー記憶バッファに対してDPB充満度を1ずつさらに減少させながら繰り返し呼び出されてよい。
- 「出力必要(needed for output)」と表示されたDPB内のピクチャーの数がmax_num_reorder_pics[Htid]よりも大きい。
- max_latency_increase_plus1[Htid]が0でなく、DPB内の「出力必要(needed for output)」と表示された関連変数PicLatencyCountがMaxLatencyPictures[Htid]より大きい又等しいピクチャーが少なくとも一つある。
- DPB内のピクチャーの数がmax_dec_pic_buffering_minus1[Htid]+1以上である。
一方、例えば、実施例は次の手順によって適用されてよい。後述する手順の段階のうち一つ以上は省略されてもよい。
図4は、本文書の実施例に係るエンコーディング手順を例示的に示す。
図4を参照すると、エンコーディング装置は、ピクチャーをデコード(復元)する(S400)。エンコーディング装置は、現在AUのピクチャーをデコードできる。
エンコーディング装置は、DPBパラメータに基づいてDPBを管理する(S410)。ここで、DPB管理は、DPBアップデートと呼ぶこともできる。DPB管理プロセスは、DPBでデコードされたピクチャーのマーキング(marking)及び/又は除去(removal)プロセスを含むことができる。デコードされたピクチャーは、サブシクエント(subseqeunt)ピクチャーのインター予測のための参照(references)として用いられてよい。すなわち、デコードされたピクチャーは、デコーディング順序において後行するピクチャーのインター予測の参照ピクチャーとして用いられてよい。各デコードされたピクチャーは基本的にDPBに挿入されてよい。また、DPBは一般に、現在ピクチャーをデコードする前にアップデートされてよい。DPBと関連したレイヤが出力レイヤでなく(又は、DPBパラメータが出力レイヤと関連がなく)参照レイヤである場合に、DPB内のデコードされたピクチャーは出力されなくてよい。DPB(又は、DPBパラメータ)と関連したレイヤが出力レイヤであれば、DPB内のデコードされたピクチャーは、DPB及び/又はDPBパラメータに基づいて出力されてよい。DPB管理は、DPBからデコードされたピクチャーを出力することを含むことができる。
エンコーディング装置は、DPBパラメータに関連した情報を含む映像情報をエンコードする(S420)。DPBパラメータに関連した情報は、上述した実施例に開示の情報/シンタックスエレメント、及び/又は後述する表に開示のシンタックスエレメントを含むことができる。
例えば、上述の表4は、シグナルされるDPBパラメータに対するシンタックスエレメントを含むVPS(Video Parameter Set,VPS)を示すことができる。
上述の表4に示すシンタックスエレメント(syntax elements)に対するセマンティックス(semantics)は、次の通りでよい。
例えば、シンタックスエレメントvps_num_dpb_paramsは、VPSにおいてdpb_parameters()シンタックス構造(syntax structure)の数を示すことができる。例えば、vps_num_dpb_paramsの値は、0~16の範囲にあってよい。また、シンタックスエレメントvps_num_dpb_paramsが存在しない場合に、シンタックスエレメントvps_num_dpb_paramsの値は0に等しいと見なされてよい。
また、例えば、シンタックスエレメントsame_dpb_size_output_or_nonoutput_flagは、VPSにシンタックスエレメントlayer_nonoutput_dpb_params_idx[i]が存在しているか否かを示すことができる。例えば、シンタックスエレメントsame_dpb_size_output_or_nonoutput_flagの値が1である場合に、シンタックスエレメントsame_dpb_size_output_or_nonoutput_flagは、VPSにシンタックスエレメントlayer_nonoutput_dpb_params_idx[i]がないことを示すことができ、シンタックスエレメントsame_dpb_size_output_or_nonoutput_flagの値が0である場合に、シンタックスエレメントsame_dpb_size_output_or_nonoutput_flagは、VPSにシンタックスエレメントlayer_nonoutput_dpb_params_idx[i]が存在し得ることを示すことができる。
また、例えば、シンタックスエレメントvps_sublayer_dpb_params_present_flagは、VPSのdpb_parameters()シンタックス構造内のシンタックスエレメントmax_dec_pic_buffering_minus1[]、max_num_reorder_pics[]及びmax_latency_increase_plus1[]の存在を制御(control)するために用いられてよい。また、シンタックスエレメントvps_sublayer_dpb_params_present_flagが存在しない場合に、シンタックスエレメントvps_sublayer_dpb_params_present_flagの値は0に等しいと見なされてよい。
また、例えば、シンタックスエレメントdpb_size_only_flag[i]は、シンタックスエレメントmax_num_reorder_pics[]及びmax_latency_increase_plus1[]がVPSのi番目のdpb_parameters()シンタックス構造に存在しているか否かを示すことができる。例えば、シンタックスエレメントdpb_size_only_flag[i]の値が1である場合に、シンタックスエレメントdpb_size_only_flag[i]は、シンタックスエレメントmax_num_reorder_pics[]及びmax_latency_increase_plus1[]がVPSのi番目のdpb_parameters()シンタックス構造に存在しないことを示すことができ、シンタックスエレメントdpb_size_only_flag[i]の値が0である場合に、シンタックスエレメントdpb_size_only_flag[i]は、シンタックスエレメントmax_num_reorder_pics[]及びmax_latency_increase_plus1[]がVPSのi番目のdpb_parameters()シンタックス構造に存在し得ることを示すことができる。
また、例えば、シンタックスエレメントdpb_max_temporal_id[i]は、VPSにおいてi番目のdpb_parameters()シンタックス構造にDPBパラメータが存在し得る最上位サブレイヤ表現(highest sublayer representation)のTemporalIdを示すことができる。また、dpb_max_temporal_id[i]の値は、0~vps_max_sublayers_minus1の範囲にあってよい。また、例えば、vps_max_sublayers_minus1の値が0である場合に、dpb_max_temporal_id[i]の値は0と見なされてよい。また、例えば、vps_max_sublayers_minus1の値が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1である場合に、dpb_max_temporal_id[i]の値はvps_max_sublayers_minus1と同一であると見なされてよい。
また、例えば、シンタックスエレメントlayer_output_dpb_params_idx[i]は、OLSの出力レイヤであるi番目のレイヤに適用されるdpb_parameters()シンタックス構造のインデックスを、VPSのdpb_parameters()シンタックス構造のリストに指定できる。シンタックスエレメントlayer_output_dpb_params_idx[i]が存在する場合に、シンタックスエレメントlayer_output_dpb_params_idx[i]の値は、0~vps_num_dpb_params-1の範囲にあってよい。
例えば、vps_independent_layer_flag[i]が1である場合に、出力レイヤであるi番目のレイヤに適用されるdpb_parameters()シンタックス構造レイヤにおいて参照するSPSに存在するdpb_parameters()シンタックス構造であってよい。
又は、例えば、vps_independent_layer_flag[i]が0である場合に、次のような内容が適用されてよい。
- vps_num_dpb_paramsが1である場合に、layer_output_dpb_params_idx[i]の値は0と見なされてよい。
- layer_output_dpb_params_idx[i]の値は、dpb_size_only_flag[layer_output_dpb_params_idx[i]]の値が0になるようにすることが、ビットストリーム適合性(bitstream conformance)の要求事項(requirement)であってよい。
また、例えば、シンタックスエレメントlayer_nonoutput_dpb_params_idx[i]は、OLSの非出力レイヤ(non-output layer)であるi番目のレイヤに適用されるdpb_parameters()シンタックス構造のインデックスを、VPSのdpb_parameters()シンタックス構造のリストに指定することができる。シンタックスエレメントlayer_nonoutput_dpb_params_idx[i]が存在する場合に、シンタックスエレメントlayer_nonoutput_dpb_params_idx[i]の値は、0~vps_num_dpb_params-1の範囲にあってよい。
例えば、same_dpb_size_output_or_nonoutput_flagが1である場合に、次のような内容が適用されてよい。
- vps_independent_layer_flag[i]が1である場合に、非出力レイヤであるi番目のレイヤに適用されるdpb_parameters()シンタックス構造のレイヤが参照するSPSにあるdpb_parameters()シンタックス構造であってよい。
- vps_independent_layer_flag[i]が0である場合に、layer_nonoutput_dpb_params_idx[i]の値はlayer_output_dpb_params_idx[i]と同一であると見なされてよい。
又は、例えば、same_dpb_size_output_or_nonoutput_flagが0である場合に、vps_num_dpb_paramsが1であれば、layer_output_dpb_params_idx[i]の値は0と見なされてよい。
一方、例えば、上述の表4に開示されたDPBパラメータシンタックス構造であるdpb_parameters()シンタックス構造は、次の通りでよい。
表6を参照すると、dpb_parameters()シンタックス構造は、CVSの各CLVSに対するDPBサイズ、最大ピクチャーリオーダー数(maximum picture reorder number)及び最大レイテンシー(maximum latency)に関する情報を提供することができる。前記dpb_parameters()シンタックス構造は、DPBパラメータに関する情報又はDPBパラメータ情報と表すこともできる。
VPSにdpb_parameters()シンタックス構造が含まれた場合に、dpb_parameters()シンタックス構造が適用されるOLSは、VPSによって指定されてよい。また、dpb_parameters()シンタックス構造がSPSに含まれた場合に、dpb_parameters()シンタックス構造は、SPSを参照するレイヤのうち最下位レイヤのみを含むOLSに適用されてよく、ここで、前記最下位レイヤは独立レイヤであってよい。
上述の表6に示すシンタックスエレメント(syntax elements)に対するセマンティックス(semantics)は、次の通りでよい。
例えば、シンタックスエレメントmax_dec_pic_buffering_minus1[i]に1を足した値は、CVSの各CLVSに対してHtidがiと同一である場合に、DPBの最大要求サイズ(maximum required size)をピクチャー記憶バッファ単位で示すことができる。例えば、max_dec_pic_buffering_minus1[i]は、DPBサイズに関する情報であってよい。例えば、シンタックスエレメントmax_dec_pic_buffering_minus1[i]の値は、0~MaxDpbSize-1の範囲にあってよい。また、例えば、iが0よりも大きい場合に、max_dec_pic_buffering_minus1[i]は、max_dec_pic_buffering_minus1[i-1]より大きい又等しくてよい。また、例えば、0~maxSubLayersMinus1-1の範囲内のiに対するmax_dec_pic_buffering_minus1[i]が存在しない場合に、subLayerInfoFlagが0であるので、シンタックスエレメントmax_dec_pic_buffering_minus1[i]の値はmax_dec_pic_buffering_minus1[maxSubLayersMinus1]と同一であると見なされてよい。
また、例えば、シンタックスエレメントmax_num_reorder_pics[i]は、CVSの各CLVSに対してデコーディング順序においてCLVSの全ピクチャーに先行してよく、Htidがiと同一である場合に、出力順序(output order)で当該ピクチャーを後行(follow)し得るCLVSの最大許容ピクチャー数(maximum allowed number of pictures)を示すことができる。例えば、max_num_reorder_pics[i]は、DPBの最大ピクチャーリオーダー数に関する情報であってよい。max_num_reorder_pics[i]の値は、0~max_dec_pic_buffering_minus1[i]の範囲にあってよい。また、例えば、iが0よりも大きい場合に、max_num_reorder_pics[i]は、max_num_reorder_pics[i-1]より大きい又等しくてよい。また、例えば、0~maxSubLayersMinus1-1の範囲内のiに対するmax_num_reorder_pics[i]が存在しない場合に、subLayerInfoFlagが0であるので、シンタックスエレメントmax_num_reorder_pics[i]はmax_num_reorder_pics[maxSubLayersMinus1]と同一であると見なされてよい。
また、例えば、値が0でないシンタックスエレメントmax_latency_increase_plus1[i]は、MaxLatencyPictures[i]の値を計算するために用いられてよい。前記MaxLatencyPictures[i]は、CVSの各CLVSに対して出力順序においてCLVSの全ピクチャーに先行してよく、Htidがiと等しい場合に、デコーディング順序で当該ピクチャーを後行(follow)し得るCLVSの最大ピクチャー数(the maximum number of pictures)を示すことができる。例えば、max_latency_increase_plus1[i]は、DPBの最大レイテンシー(maximum latency)に対する情報であってよい。
例えば、max_latency_increase_plus1[i]が0でない場合に、MaxLatencyPictures[i]の値は、次の式のように導出されてよい。
一方、例えば、max_latency_increase_plus1[i]が0であれば、該当の制限が表示されなくてよい。前記max_latency_increase_plus1[i]の値は0~232-2の範囲にあってよい。また、例えば、0~maxSubLayersMinus1-1の範囲内のiに対するmax_latency_increase_plus1[i]が存在しない場合に、subLayerInfoFlagが0であるので、シンタックスエレメントmax_latency_increase_plus1[i]は、max_latency_increase_plus1[maxSubLayersMinus1]と同一であると見なされてよい。
上述したDPBパラメータに関連した情報/シンタックスエレメントに基づいて、上述したDPB管理が行われてよい。現在レイヤが出力レイヤであるか参照レイヤであるかによって異なるDPBパラメータがシグナルされてよく、又は、DPB(又は、DPBパラメータ)がOLSに対するものであるか(OLSマップされるか)否かによって異なるDPBパラメータがシグナルされてよい。
一方、たとえ図4には示されていないが、エンコーディング装置は、アップデート/管理されたDPBに基づいて現在ピクチャーをデコードすることができる。また、デコードされた現在ピクチャーはDPBに挿入されてよく、デコードされた現在ピクチャーを含むDPBは、デコーディング順序において前記現在ピクチャーの次のピクチャーをデコードする前に、DPBパラメータに基づいてアップデートされてよい。
図5には、本文書の実施例に係るデコーディング手順を例示する。
デコーディング装置は、ビットストリームからDPBパラメータに関連した情報を含む映像情報を取得する(S500)。デコーディング装置は、DPBパラメータに関連した情報を含む映像情報を取得できる。前記DPBパラメータに関連した情報/シンタックスエレメントは、上述した通りでよい。
デコーディング装置は、DPBパラメータに基づいてDPBを管理する(S510)。ここで、DPB管理はDPBアップデートと呼ばれてもよい。DPB管理プロセスは、DPBでデコードされたピクチャーのマーキング(marking)及び/又は除去(removal)プロセスを含むことができる。デコーディング装置は、前記DPBパラメータに関連した情報に基づいてDPBパラメータを導出することができ、前記導出されたDPBパラメータに基づいてDPB管理プロセスを行うことができる。
デコーディング装置は、前記DPBに基づいて現在ピクチャーをデコード/出力する(S520)。デコーディング装置は、アップデート/管理されたDPBに基づいて現在ピクチャーをデコードできる。例えば、DPB内の(以前に)デコードされたピクチャーを参照ピクチャーとして用いたインター予測に基づいて現在ピクチャー内のブロック/スライスがデコードされてよい。
図6には、本文書に係るエンコーディング装置による映像エンコーディング方法を概略的に示す。図6に開示の方法は、図2に開示のエンコーディング装置によって行われてよい。具体的には、例えば、図6のS600~S610は、前記エンコーディング装置のDPBによって行われてよく、S620は、前記エンコーディング装置のエントロピーエンコーディング部によって行われてよい。また、たとえ図示してはいないが、現在ピクチャーをデコードする過程は、前記エンコーディング装置の予測部及びレジデュアル処理部によって行われてよい。
エンコーディング装置は、現在ピクチャーがAU 0以外のCVSS AU(Coded Video Sequence Start Access Unit)である現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出する(S600)。エンコーディング装置は、前記現在ピクチャーをデコードする以前であり、前記現在ピクチャーに対するスライスヘッダーを生成/エンコードした後にDPBをアップデートするために前記変数の値を導出することができる。前記DPBは、前記現在ピクチャー以前にデコードされたピクチャーを含むことができる。
例えば、エンコーディング装置は、現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出することができる。ここで、前記変数は、DPB(Decoded Picture Buffer)内の全ピクチャー記憶バッファ(picture storage buffers)が出力無しで空になるか否かを示すことができる。前記現在AUは、前記現在ピクチャーを含むAUであってよい。また、例えば、前記AU 0は、デコーディング順序においてビットストリームの最初のAUであってよい。すなわち、例えば、前記AU 0は、デコードするビットストリームの最初のAUであってよい。一方、エンコーディング装置は、前記現在ピクチャーに対するスライスヘッダーを生成/エンコードでき、その後、現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出することができる。
例えば、エンコーディング装置は、前記現在ピクチャーが、AU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かを判断できる。前記現在AUが前記AU 0以外の前記CVSS AUであり、前記現在ピクチャーが前記現在AUの最初のピクチャーである場合に、エンコーディング装置は前記変数の値を導出することができる。
例えば、前記現在AUが前記AU 0以外のCVSS AUであり、前記現在ピクチャーが前記現在AUの最初のピクチャーである場合に、エンコーディング装置は、前記現在AUに対するパラメータのうち少なくとも一つが、デコーディング順序上で前記現在AUの以前AU(preceding AU)に対するパラメータと異なるか否かを判断できる。前記現在AUに対する前記パラメータのうち少なくとも一つが前記以前AUに対する前記パラメータと異なる場合に、前記変数の値は1と同一に設定されてよく、前記現在AUに対する前記パラメータが前記以前AUに対する前記パラメータと同一である場合に、前記変数の値は、前記変数に対するシンタックスエレメントの値と同一に設定されてよい。エンコーディング装置は、前記現在ピクチャーに対する映像情報を生成/エンコードでき、前記映像情報は前記シンタックスエレメントを含むことができる。前記シンタックスエレメントは、上述したph_no_output_of_prior_pics_flagであってよい。また、前記現在AUに対する前記パラメータは、前記現在AUに対する最大ピクチャー幅(maximum picture width)に対するパラメータ、最大ピクチャー高さ(maximum picture height)に対するパラメータ、可用クロマフォーマットに対するパラメータ、最大ビットデプスに対するパラメータ、及びDPB最大サイズに対するパラメータを含むことができる。前記最大ピクチャー幅に対するパラメータは上述のPicWidthMaxInSamplesY、前記最大ピクチャー高さに対するパラメータは上述のPicHeightMaxInSamplesY、前記可用クロマフォーマットに対するパラメータは上述のMaxChromaFormat、前記最大ビットデプスに対するパラメータは上述のMaxBitDepthMinus8、前記DPB最大サイズに対するパラメータは上述のmax_dec_pic_buffering_minus1[Htid]であってよい。
一方、例えば、前記現在AUがCVSS AUでないか、又は前記現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーでない場合に、エンコーディング装置は前記変数の値を導出しなくてよい。
これにより、前記変数が、AU 0以外のCVSS AUである前記現在AUの全ピクチャーのデコーディング前ではなく、前記現在AUの最初のピクチャーである現在ピクチャーのデコーディング前にのみ導出されてよく、DPB(Decoded Picture Buffer)内の全ピクチャー記憶バッファ(picture storage buffers)が出力無しで空になるプロセスが、前記現在AUの最初のピクチャーである現在ピクチャーのデコーディング前にのみ行われてよい。
エンコーディング装置は、前記変数に基づいて前記DPBをアップデートする(S610)。例えば、エンコーディング装置は前記変数に基づいて前記DPBをアップデートすることができる。
例えば、前記変数の値が1である場合に、前記DPB内の前記全ピクチャー記憶バッファは出力無しで空になってよく、DPB充満度(fullness)は0と同一に設定されてよい。また、例えば、前記変数の値が0である場合に、前記DPB内の特定ピクチャーを含むピクチャー記憶バッファは出力無しで空になってよく、前記DPB内の空いていないピクチャー記憶バッファに対してはバンピングプロセスが行われてよい。また、DPB充満度は0に設定されてよい。ここで、例えば、前記特定ピクチャーは、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーであってよい。前記バンピングプロセスは、上述した通りでよい。
また、例えば、前記現在ピクチャーが、前記AU 0以外のCVSS AUである前記現在AUの最初のピクチャーでない場合に、エンコーディング装置は、前記DPB内の第1条件及び第2条件を満たす特定ピクチャーを前記DPBから除去してよい。ここで、前記第1条件は、前記特定ピクチャーは「参照として用いられない」と表示されたピクチャーであるということでよく、前記第2条件は、前記特定ピクチャーが0に等しいピクチャー出力フラグを有するか、又は前記特定ピクチャーのDPB出力時間(DPB output time)が前記現在ピクチャーの最初のDU(Decoding Unit)のCPB除去時間(removal time)より小さい又は等しいということであってよい。ここで、前記ピクチャー出力フラグは、上述したPictureOutputFlagであってよい。
また、例えば、前記現在ピクチャーが、前記AU 0以外のCVSS AUである前記現在AUの最初のピクチャーでない場合に、前記DPB内の特定ピクチャーを含むピクチャー記憶バッファは出力無しで空になってよい。ここで、前記特定ピクチャーは、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーであってよい。また、空になった前記ピクチャー記憶バッファに対してDPB充満度が1ずつ減少してよい。すなわち、例えば、ピクチャー記憶バッファが空になる度にDPB充満度が1ずつ減少してよい。また、後述する条件のうち少なくとも一つが真である場合に、前記条件がいずれも真でなくなるまで、上述したバンピングプロセスが空になった各追加ピクチャー記憶バッファに対してDPB充満度を1ずつさらに減少させながら繰り返し行われてよい。
例えば、第1条件は、「出力必要(needed for output)」と表示されたDPB内のピクチャーの数が、前記現在AUに対するシンタックスエレメントmax_num_reorder_pics[Htid]より大きいということであってよく、第2条件は、前記現在AUに対するシンタックスエレメントmax_latency_increase_plus1[Htid]が0でなく、DPB内の「出力必要(needed for output)」と表示された関連変数PicLatencyCountがMaxLatencyPictures[Htid]より大きい又等しいピクチャーが少なくとも一つあるということであってよく、第3条件は、前記DPB内のピクチャーの数が、前記現在AUに対するシンタックスエレメントmax_dec_pic_buffering_minus1[Htid]に1を足した値以上であるということであってよい。前記映像情報は前記現在AUに対するシンタックスエレメントを含むことができる。
エンコーディング装置は、前記現在ピクチャーに対する映像情報をエンコードする(S620)。エンコーディング装置は、前記DPBをアップデートするためのシンタックスエレメントを含む映像情報をエンコードすることができる。また、前記映像情報は、前記現在ピクチャーに対するスライスヘッダーを含むことができる。
一方、たとえ図示してはいないが、エンコーディング装置は、前記アップデートされたDPBに基づいて前記現在ピクチャーをデコードできる。例えば、エンコーディング装置は、前記DPBの参照ピクチャーに基づき、前記現在ピクチャー内のブロックに対するインター予測を行って予測サンプルを導出でき、前記予測サンプルに基づいて、前記現在ピクチャーに対する復元サンプル及び/又は復元ピクチャーを生成できる。一方、例えば、エンコーディング装置は、前記現在ピクチャー内のブロックにレジデュアルサンプルを導出することができ、前記予測サンプルと前記レジデュアルサンプルとの加算によって復元サンプル及び/又は復元ピクチャーを生成できる。その後、必要によって、主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO及び/又はALF手順のようなインループフィルタリング手順が前記復元サンプルに適用されてよいことは、上述した通りである。エンコーディング装置は、前記ブロックに対する予測関連情報及び/又はレジデュアル情報を生成/エンコードでき、前記映像情報は、前記予測関連情報及び/又は前記レジデュアル情報を含むことができる。また、エンコーディング装置は、前記デコードされた前記現在ピクチャーを前記DPBに挿入できる。また、例えば、エンコーディング装置は、前記現在AUに対するDPBパラメータを導出でき、前記DPBパラメータに対するDBP関連情報を生成できる。前記映像情報は、前記DBP関連情報を含むことができる。
一方、前記映像情報を含むビットストリームは、ネットワーク又は(デジタル)記憶媒体によってデコーディング装置に送信されてよい。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル記憶媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなどの様々な記憶媒体を含むことができる。
図7には、本文書に係る映像エンコーディング方法を行うエンコーディング装置を概略的に示す。図7に開示の方法は、図6に開示のエンコーディング装置によって行われてよい。具体的には、例えば、図7の前記エンコーディング装置のDPBは、S600~S610を行うことができ、図7の前記エンコーディング装置のエントロピーエンコーディング部は、S620を行うことができる。また、たとえ図示してはいないが、現在ピクチャーをデコードする過程は、前記エンコーディング装置の予測部及びレジデュアル処理部によって行われてよい。
図8には、本文書に係るデコーディング装置による映像デコーディング方法を概略的に示す。図8に開示の方法は、図3に開示のデコーディング装置によって行われてよい。具体的には、例えば、図8のS800~S810は、前記デコーディング装置のDPBによって行われてよく、図8のS820は、前記デコーディング装置の予測部及びレジデュアル処理部によって行われてよい。
デコーディング装置は、現在ピクチャーがAU 0以外のCVSS AU(Coded Video Sequence Start Access Unit)である現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出する(S800)。デコーディング装置は、現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出することができる。ここで、前記変数は、DPB(Decoded Picture Buffer)内の全ピクチャー記憶バッファ(picture storage buffers)が出力無しで空になるか否かを示すことができる。前記現在AUは、前記現在ピクチャーを含むAUであってよい。また、例えば、前記AU 0は、デコーディング順序においてビットストリームの最初のAUであってよい。すなわち、例えば、前記AU 0は、デコーディング装置がデコードするビットストリームの最初のAUであってよい。一方、デコーディング装置は、前記現在ピクチャーに対するスライスヘッダーをパースでき、その後、現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かに基づいて変数の値を導出することができる。
例えば、デコーディング装置は、前記現在ピクチャーが、AU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーであるか否かを判断できる。前記現在AUが前記AU 0以外のCVSS AUであり、前記現在ピクチャーが前記現在AUの最初のピクチャーである場合に、デコーディング装置は、前記変数の値を導出することができる。
例えば、前記現在AUが前記AU 0以外のCVSS AUであり、前記現在ピクチャーが前記現在AUの最初のピクチャーである場合に、デコーディング装置は、前記現在AUに対するパラメータのうち少なくとも一つが、デコーディング順序上で前記現在AUの以前AU(preceding AU)に対するパラメータと異なるか否かを判断できる。前記現在AUに対する前記パラメータのうち少なくとも一つが前記以前AUに対する前記パラメータと異なる場合に、前記変数の値は1と同一に設定されてよく、前記現在AUに対する前記パラメータが前記以前AUに対する前記パラメータと同一である場合に、前記変数の値は、前記変数に対してシグナルされたシンタックスエレメントの値と同一に設定されてよい。デコーディング装置は、前記現在ピクチャーに対する映像情報を取得でき、前記映像情報は、前記シンタックスエレメントを含むことができる。前記シンタックスエレメントは、上述したph_no_output_of_prior_pics_flagであってよい。また、前記現在AUに対する前記パラメータは、前記現在AUに対する最大ピクチャー幅(maximum picture width)に対するパラメータ、最大ピクチャー高さ(maximum picture height)に対するパラメータ、可用クロマフォーマットに対するパラメータ、最大ビットデプスに対するパラメータ、及びDPB最大サイズに対するパラメータを含むことができる。前記最大ピクチャー幅に対するパラメータは上述のPicWidthMaxInSamplesY、前記最大ピクチャー高さに対するパラメータは上述のPicHeightMaxInSamplesY、前記可用クロマフォーマットに対するパラメータは上述のMaxChromaFormat、前記最大ビットデプスに対するパラメータは上述のMaxBitDepthMinus8、前記DPB最大サイズに対するパラメータは上述のmax_dec_pic_buffering_minus1[Htid]であってよい。
一方、例えば、前記現在AUがCVSS AUでないか、又は前記現在ピクチャーがAU 0以外のCVSS AUである現在AU(Access Unit)の最初のピクチャーでない場合に、デコーディング装置は前記変数の値を導出しなくてよい。
これにより、前記変数が、AU 0以外のCVSS AUである前記現在AUの全ピクチャーのデコーディング前ではなく、前記現在AUの最初のピクチャーである現在ピクチャーのデコーディング前にのみ導出されてよく、DPB(Decoded Picture Buffer)内の全ピクチャー記憶バッファ(picture storage buffers)が出力無しで空になるプロセスが、前記現在AUの最初のピクチャーである現在ピクチャーのデコーディング前にのみ行われてよい。
デコーディング装置は、前記変数に基づいて前記DPBをアップデートする(S810)。例えば、デコーディング装置は、前記変数に基づいて前記DPBをアップデートできる。アップデートされる前に、前記DPBは、前記現在ピクチャー以前にデコードされたピクチャーを含むことができる。
例えば、前記変数の値が1である場合に、前記DPB内の前記全ピクチャー記憶バッファは出力無しで空になってよく、DPB充満度(fullness)は0と同一に設定されてよい。また、例えば、前記変数の値が0である場合に、前記DPB内の特定ピクチャーを含むピクチャー記憶バッファは出力無しで空になってよく、前記DPB内の空いていないピクチャー記憶バッファに対してはバンピングプロセスが行われてよい。また、DPB充満度は0に設定されてよい。ここで、例えば、前記特定ピクチャーは、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーであってよい。前記バンピングプロセスは、上述した通りでよい。
また、例えば、前記現在ピクチャーが、前記AU 0以外のCVSS AUである前記現在AUの最初のピクチャーでない場合に、デコーディング装置は、前記DPB内の第1条件及び第2条件を満たす特定ピクチャーを前記DPBから除去できる。ここで、前記第1条件は、前記特定ピクチャーは「参照として用いられない」と表示されたピクチャーであるということであり、前記第2条件は、前記特定ピクチャーが0に等しいピクチャー出力フラグを有するか、又は前記特定ピクチャーのDPB出力時間(DPB output time)が前記現在ピクチャーの最初のDU(Decoding Unit)のCPB除去時間(removal time)より小さい又は等しいということであってよい。ここで、前記ピクチャー出力フラグは、上述したPictureOutputFlagであってよい。
また、例えば、前記現在ピクチャーが、前記AU 0以外のCVSS AUである前記現在AUの最初のピクチャーでない場合に、前記DPB内の特定ピクチャーを含むピクチャー記憶バッファは出力無しで空になってよい。ここで、前記特定ピクチャーは、「出力に不要である(not needed for output)」及び「参照として用いられない(unused for reference)」と表示されたピクチャーであってよい。また、空になった前記ピクチャー記憶バッファに対してDPB充満度が1ずつ減少してよい。すなわち、例えば、ピクチャー記憶バッファが空になる度にDPB充満度が1ずつ減少してよい。また、後述する条件のうち少なくとも一つが真である場合に、前記条件がいずれも真でなくなるまで、上述したバンピングプロセスが空になった各追加ピクチャー記憶バッファに対してDPB充満度を1ずつさらに減少させながら繰り返し行われてよい。
例えば、第1条件は、「出力必要(needed for output)」と表示されたDPB内のピクチャーの数が、前記現在AUに対するシンタックスエレメントmax_num_reorder_pics[Htid]よりも大きいということであってよく、第2条件は、前記現在AUに対するシンタックスエレメントmax_latency_increase_plus1[Htid]が0でなく、DPB内の「出力必要(needed for output)」と表示された関連変数PicLatencyCountがMaxLatencyPictures[Htid]より大きい又等しいピクチャーが少なくとも一つあるということであってよく、第3条件は、前記DPB内のピクチャーの数が前記現在AUに対するシンタックスエレメントmax_dec_pic_buffering_minus1[Htid]に1を足した値以上であるということであってよい。前記映像情報は、前記現在AUに対するシンタックスエレメントを含むことができる。
デコーディング装置は、前記アップデートされたDPBに基づいて前記現在ピクチャーをデコードする(S820)。例えば、デコーディング装置は、前記アップデートされたDPBに基づいて前記現在ピクチャーをデコードできる。例えば、デコーディング装置は、前記DPBの参照ピクチャーに基づいて、前記現在ピクチャー内のブロックに対するインター予測を行って予測サンプルを導出でき、前記予測サンプルに基づいて、前記現在ピクチャーに対する復元サンプル及び/又は復元ピクチャーを生成できる。一方、例えば、デコーディング装置は、ビットストリームを用いて受信した前記現在ピクチャーに対するレジデュアル情報に基づいて前記現在ピクチャー内のブロックにレジデュアルサンプルを導出でき、前記予測サンプルと前記レジデュアルサンプルとの加算によって復元サンプル及び/又は復元ピクチャーを生成できる。前記映像情報は、前記レジデュアル情報を含むことができる。また、デコーディング装置は、前記デコードされた前記現在ピクチャーを前記DPBに挿入することができる。
その後、必要によって、主観的/客観的画質を向上させるために、デブロッキングフィルタリング、SAO及び/又はALF手順のようなインループフィルタリング手順が前記復元サンプルに適用されてよいことは、上述した通りである。
図9には、本文書に係る映像デコーディング方法を行うデコーディング装置を概略的に示す。図8に開示の方法は、図9に開示のデコーディング装置によって行われてよい。具体的には、例えば、図9の前記デコーディング装置のDPBは、図8のS800~S810を行うことができ、図9の前記デコーディング装置の予測部及びレジデュアル処理部は、図8のS820を行うことができる。
上述した本文書によれば、DPB内のピクチャーを出力しないで除去するプロセスを行うか否かを、AU 0以外のCVSS AUの全ピクチャーのデコーディング前に判断する代わりに、AU 0以外のCVSS AUの最初のピクチャーのデコーディング前にのみ判断でき、これにより、CVS内の全レイヤに対して影響を及ぼすDPB状態をピクチャーごとに変更しなくて済み、コーディング効率を向上させることができる。
また、本文書によれば、DPB内のピクチャーを出力しないで除去するか否かを示す変数を、AU 0以外のCVSS AUの全ピクチャーのデコーディング前ではなく、AU 0以外のCVSS AUの最初のピクチャーのデコーディング前にのみ導出でき、これにより、CVS内の全レイヤに対して影響を及ぼすDPB状態をピクチャーごとに変更しなくて済み、コーディング効率を向上させることができる。
上述した実施例において、方法は、一連の段階又はブロックであり、順序図に基づいて説明されているが、本文書は、段階の順序に限定されるものではなく、ある段階は、上述したのと異なる段階と異なる順序で又は同時に発生してもよい。また、当業者であれば、順序図に示された段階が排他的でなく、他の段階が含まれたり、順序図の1つ又はそれ以上の段階が本文書の範囲に影響を及ぼさずに削除されてもよいことが理解できよう。
本文書で説明した実施例は、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で)具現され行われてよい。例えば、各図に示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ又はチップ上で具現されて行われてよい。この場合、具現のための情報(例えば、information on instructions)又はアルゴリズムがデジタル記憶媒体に記憶されてよい。
また、本文書の実施例が適用されるデコーディング装置及びエンコーディング装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ会話装置、ビデオ通信のような実時間通信装置、モバイルストリーミング装置、記憶媒体、キャムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、画像電話ビデオ装置、運送手段端末(例えば、車両端末、飛行機端末、船舶端末など)及び医療用ビデオ装置などに含まれてよく、ビデオ信号又はデータ信号を処理するために用いられてよい。例えば、OTTビデオ(Over the top video)装置としては、ゲームコンソール、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
また、本文書の実施例が適用される処理方法は、コンピュータで実行されるプログラムの形態で生産されてよく、コンピュータ可読記録媒体に記憶されてよい。本文書によるデータ構造を有するマルチメディアデータも、コンピュータ可読記録媒体に記憶されてよい。前記コンピュータ可読記録媒体は、コンピュータで読み取り可能なデータが記憶されるあらゆる種類の記憶装置及び分散記憶装置を含む。前記コンピュータ可読記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク及び光学的データ記憶装置を含むことができる。また、前記コンピュータ可読記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコーディング方法で生成されたビットストリームがコンピュータ可読記録媒体に記憶されてもよく、有無線通信ネットワークを通じて送信されてもよい。
また、本文書の実施例は、プログラムコードによるコンピュータプログラム製品として具現されてよく、前記プログラムコードは、本文書の実施例によってコンピュータで実行されてよい。前記プログラムコードは、コンピュータで読み取り可能なキャリア上に記憶されてよい。
図10は、本文書の実施例が適用されるコンテンツストリーミングシステムを例示する構造図である。
本文書の実施例が適用されるコンテンツストリーミングシステムは、大きく、エンコーディングサーバー、ストリーミングサーバー、ウェブサーバー、メディアストレージ、ユーザ装置及びマルチメディア入力装置を含むことができる。
前記エンコーディングサーバーは、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータとして圧縮してビットストリームを生成し、これを前記ストリーミングサーバーに送信する役割を担う。他の例として、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合に、前記エンコーディングサーバーは省略されてよい。
前記ビットストリームは、本文書の実施例が適用されるエンコーディング方法又はビットストリーム生成方法によって生成されてよく、前記ストリーミングサーバーは、前記ビットストリームを送信又は受信する過程で一時的に前記ビットストリームを記憶することができる。
前記ストリーミングサーバーは、ウェブサーバーを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバーはユーザにどのようなサービスがあるかを知らせる媒介体として働く。ユーザ所望のサービスを前記ウェブサーバーに要請すれば、前記ウェブサーバーはそれをストリーミングサーバーに伝達し、前記ストリーミングサーバーはユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは別個の制御サーバーを含むことができ、この場合、前記制御サーバーは前記コンテンツストリーミングシステムにおける各装置間の命令/応答を制御する役割を担う。
前記ストリーミングサーバーは、メディアストレージ及び/又はエンコーディングサーバーからコンテンツを受信することができる。例えば、前記エンコーディングサーバーからコンテンツを受信する場合に、前記コンテンツを実時間で受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバーは前記ビットストリームを一定時間記憶することができる。
前記ユーザ装置の例としては、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイネージなどを挙げることができる。前記コンテンツストリーミングシステム内の各サーバーは、分散サーバーとして運営されてよく、この場合、各サーバーで受信するデータは分散処理されてよい。
本明細書に記載された請求項は様々な方式で組み合わせられてよい。例えば、本明細書の方法請求項の技術的特徴が組み合わせられて装置として具現されてよく、本明細書の装置請求項の技術的特徴が組み合わせられて方法として具現されてよい。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて装置として具現されてよく、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせられて方法として具現されてよい。