本文書は、様々な変更を加えることができ、種々の実施形態を有することができ、特定実施形態を図面に例示し、詳細に説明しようとする。しかしながら、これは、本文書を特定実施形態に限定しようとするものではない。本明細書で常用する用語は、単に特定の実施形態を説明するために使用されたものであって、本文書の技術的思想を限定しようとする意図で使用されるものではない。単数の表現は、文脈上明白に異なるように意味しない限り、複数の表現を含む。本明細書において「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものが存在することを指定しようとするものであり、1つまたはそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、またはこれらを組み合わせたものなどの存在または付加可能性を予め排除しないことと理解されるべきである。
一方、本文書で説明される図面上の各構成は、互いに異なる特徴的な機能に関する説明の都合上、独立的に図示されたものであって、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味するものではない。例えば、各構成のうち、二つ以上の構成が結合されて1つの構成をなすこともでき、1つの構成を複数の構成に分けることもできる。各構成が統合及び/又は分離された実施形態も本文書の本質から外れない限り、本文書の権利範囲に含まれる。
以下、添付図面を参照して、本文書の好ましい実施形態をより詳細に説明する。以下、図面上の同じ構成要素に対しては、同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略されることができる。
この文書は、ビデオ/画像コーディングに関する。例えば、この文書に開示された方法/実施形態は、VVC(Versatile Video Coding)標準(ITU-T Rec.H.266)、VVC以後の次世代ビデオ/イメージコーディング標準、またはそれ以外のビデオコーディング関連標準(例えば、HEVC(High Efficiency Video Coding)標準(ITU-T Rec.H.265)、EVC(essential video coding)標準、AVS2標準等)と関連することができる。
この文書ではビデオ/画像コーディングに関する多様な実施形態を提示し、他の言及がない限り、前記実施形態は、互いに組み合わせて行われることもできる。
この文書において、ビデオ(video)は、時間の流れによる一連の画像(image)の集合を意味することができる。ピクチャ(picture)は、一般的に特定時間帯の1つの画像を示す単位を意味し、スライス(slice)/タイル(tile)は、コーディングにおいてピクチャの一部を構成する単位である。スライス/タイルは、1つ以上のCTU(coding tree unit)を含むことができる。1つのピクチャは、1つ以上のスライス/タイルで構成されることができる。1つのピクチャは、1つ以上のタイルグループで構成されることができる。1つのタイルグループは、1つ以上のタイルを含むことができる。
ピクセル(pixel)またはペル(pel)は、1つのピクチャ(または、画像)を構成する最小の単位を意味することができる。また、ピクセルに対応する用語として「サンプル(sample)」が使用されることができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、ルマ(luma)成分のピクセル/ピクセル値のみを示すこともでき、クロマ(chroma)成分のピクセル/ピクセル値のみを示すこともできる。または、サンプルは、空間ドメインでのピクセル値を意味することもでき、このようなピクセル値が周波数ドメインに変換されると、周波数ドメインでの変換係数を意味することもできる。
ユニット(unit)は、画像処理の基本単位を示すことができる。ユニットは、ピクチャの特定領域及び当該領域に関連した情報のうち、少なくとも1つを含むことができる。1つのユニットは、1つのルマブロック及び二つのクロマ(例えば、cb、cr)ブロックを含むことができる。ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプル(または、サンプルアレイ)、または変換係数(transform coefficient)の集合(または、アレイ)を含むことができる。
この文書において、“/”と“、”は、“及び/又は”と解釈される。例えば、“A/B”は、“A及び/又はB”と解釈され、“A、B”は、“A及び/又はB”と解釈される。追加的に、“A/B/C”は、“A、B及び/又はCのうち、少なくとも1つ”を意味する。また、“A、B、C”も、“A、B及び/又はCのうち、少なくとも1つ”を意味する。(In this document,the term “/” and “,” should be interpreted to indicate “and/or.” For instance,the expression “A/B” may mean “A and/or B.”Further,“A,B” may mean “A and/or B.”Further,“A/B/C” may mean “at least one of A,B,and/or C.”Also,“A/B/C” may mean “at least one of A,B,and/or C.”)
追加的に、本文書において、“または”は、“及び/又は”と解釈される。例えば、“AまたはB”は、1)“A”のみを意味し、または、2)“B”のみを意味し、または、3)“A及びB”を意味することができる。他の表現としては、本文書の“または”は、“追加的にまたは代替的に(additionally or alternatively)”を意味することができる。(Further,in the document,the term “or” should be interpreted to indicate “and/or.” For instance,the expression “A or B” may comprise 1)only A,2)only B,and/or 3)both A and B.In other words,the term “or” in this document should be interpreted to indicate “additionally or alternatively.”)
本明細書において、“少なくとも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は、本文書が適用されることができるビデオ/画像コーディングシステムの例を概略的に示す。
図1を参照すると、ビデオ/画像コーディングシステムは、ソースデバイス及び受信デバイスを含むことができる。ソースデバイスは、エンコードされたビデオ(video)/画像(image)情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスに伝達できる。
前記ソースデバイスは、ビデオソース、エンコード装置、送信部を含むことができる。前記受信デバイスは、受信部、デコード装置、及びレンダラを含むことができる。前記エンコード装置は、ビデオ/画像エンコード装置と呼ばれることができ、前記デコード装置は、ビデオ/画像デコード装置と呼ばれることができる。送信機は、エンコード装置に含まれることができる。受信機は、デコード装置に含まれることができる。レンダラは、ディスプレイ部を含むこともでき、ディスプレイ部は、別個のデバイスまたは外部コンポーネントで構成されることもできる。
ビデオソースは、ビデオ/画像のキャプチャ、合成または生成過程などを介してビデオ/画像を取得することができる。ビデオソースは、ビデオ/画像キャプチャデバイス及び/又はビデオ/画像生成デバイスを含むことができる。ビデオ/画像キャプチャデバイスは、例えば、1つ以上のカメラ、以前にキャプチャされたビデオ/画像を含むビデオ/画像アーカイブなどを含むことができる。ビデオ/画像生成デバイスは、例えば、コンピュータ、タブレット、及びスマートフォンなどを含むことができ、(電子的に)ビデオ/画像を生成することができる。例えば、コンピュータなどを介して仮想のビデオ/画像が生成されることができ、この場合、ビデオ/画像キャプチャ過程を関連データが生成される過程に代替されることができる。
エンコード装置は、入力ビデオ/画像をエンコードすることができる。エンコード装置は、圧縮及びコーディング効率のために、予測、変換、量子化など、一連の手順を行うことができる。エンコードされたデータ(エンコードされたビデオ/画像情報)は、ビットストリーム(bitstream)形態で出力されることができる。
送信部は、ビットストリーム形態で出力されたエンコードされたビデオ/画像情報またはデータをファイルまたはストリーミング形態でデジタル格納媒体またはネットワークを介して受信デバイスの受信部に伝達できる。デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。送信部は、あらかじめ決められたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した送信のためのエレメントを含むことができる。受信部は、前記ビットストリームを受信/抽出してデコード装置に伝達できる。
デコード装置は、エンコード装置の動作に対応する逆量子化、逆変換、予測など、一連の手順を実行してビデオ/画像をデコードすることができる。
レンダラは、デコードされたビデオ/画像をレンダリングすることができる。レンダリングされたビデオ/画像は、ディスプレイ部を介してディスプレイされることができる。
図2は、本文書が適用されることができるビデオ/画像エンコード装置の構成を概略的に説明する図である。以下、ビデオエンコード装置とは、画像エンコード装置を含むことができる。
図2に示すように、エンコード装置200は、画像分割部(image partitioner)210、予測部(predictor)220、レジデュアル処理部(residual processor)230、エントロピーエンコード部(entropy encoder)240、加算部(adder)250、フィルタリング部(filter)260、及びメモリ(memory)270を備えて構成されることができる。予測部220は、インター予測部221及びイントラ予測部222を備えることができる。レジデュアル処理部230は、変換部(transformer)232、量子化部(quantizer)233、逆量子化部(dequantizer)234、逆変換部(inverse transformer)235を備えることができる。レジデュアル処理部230は、減算部(subtractor、231)をさらに備えることができる。加算部250は、復元部(reconstructor)または復元ブロック生成部(recontructged block generator)と呼ばれることができる。上述した画像分割部210、予測部220、レジデュアル処理部230、エントロピーエンコード部240、加算部250、及びフィルタリング部260は、実施形態によって1つ以上のハードウェアコンポーネント(例えば、エンコーダチップセットまたはプロセッサ)によって構成されることができる。また、メモリ270は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体によって構成されることもできる。前記ハードウェアコンポーネントは、メモリ270を内/外部コンポーネントとしてさらに備えることもできる。
画像分割部210は、エンコード装置200に入力された入力画像(または、ピクチャ、フレーム)を1つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(coding unit、CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBTTT(Quad-tree binary-tree ternary-tree)構造によって再帰的に(recursively)分割されることができる。例えば、1つのコーディングユニットは、クアッドツリー構造、バイナリツリー構造、及び/又はターナリ構造に基づいて下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クアッドツリー構造が先に適用され、バイナリツリー構造及び/又はターナリ構造がその後に適用されることができる。または、バイナリツリー構造が先に適用されることもできる。それ以上分割されない最終コーディングユニットに基づいて本開示に係るコーディング手順が行われ得る。この場合、画像特性によるコーディング効率などに基づいて、最大コーディングユニットが最終コーディングユニットとして使用されることができ、または、必要に応じてコーディングユニットは、再帰的に(recursively)もっと下位デプスのコーディングユニットに分割されて最適のサイズのコーディングユニットが最終コーディングユニットとして使用されることができる。ここで、コーディング手順とは、後述する予測、変換、及び復元などの手順を含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに備えることができる。この場合、前記予測ユニット及び前記変換ユニットは、各々上述した最終コーディングユニットから分割またはパーティショニングされることができる。前記予測ユニットは、サンプル予測の単位であることができ、前記変換ユニットは、変換係数を導く単位及び/又は変換係数からレジデュアル信号(residual signal)を導く単位であることができる。
ユニットは、場合によって、ブロック(block)または領域(area)などの用語と混用して使用されることができる。一般的な場合、M×Nブロックは、M個の列とN個の行からなるサンプルまたは変換係数(transform coefficient)等の集合を示すことができる。サンプルは、一般的にピクセルまたはピクセルの値を示すことができ、輝度(luma)成分のピクセル/ピクセル値のみを示すことができ、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、1つのピクチャ(または、画像)をピクセル(pixel)またはペル(pel)に対応する用語として使用することができる。
減算部231は、入力画像信号(原本ブロック、原本サンプルまたは原本サンプルアレイ)から、予測部220から出力された予測信号(予測されたブロック、予測サンプルまたは予測サンプルアレイ)を減算してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルまたはレジデュアルサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部232に送信される。予測部220は、処理対象ブロック(以下、現在ブロックという)に対する予測を実行し、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部220は、現在ブロックまたはCU単位でイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができる。予測部は、各予測モードに対する説明で後述するように、予測モード情報など、予測に関する多様な情報を生成してエントロピーエンコード部240に伝達できる。予測に関する情報は、エントロピーエンコード部240でエンコードされてビットストリーム形態で出力されることができる。
イントラ予測部222は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置することができ、または、離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。非方向性モードは、例えば、DCモード及びプラナーモード(Planarモード)を含むことができる。方向性モードは、予測方向の細かい程度によって、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは、例示であり、設定によってそれ以上またはそれ以下の個数の方向性予測モードが使用され得る。イントラ予測部222は、隣接ブロックに適用された予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部221は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを導くことができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)とを含むことができる。前記参照ブロックを含む参照ピクチャと前記時間的隣接ブロックを含む参照ピクチャとは同じであることができ、異なることもできる。前記時間的隣接ブロックは、同一位置参照ブロック(collocated reference block)、同一位置CU(col CU)などの名前で呼ばれることができ、前記時間的隣接ブロックを含む参照ピクチャは、同一位置ピクチャ(collocated picture、colPic)と呼ばれることもできる。例えば、インター予測部221は、隣接ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出するために、どの候補が使用されるかを指示する情報を生成することができる。様々な予測モードに基づいてインター予測が行われ得るし、例えば、スキップモードとマージモードとの場合に、インター予測部221は、隣接ブロックの動き情報を現在ブロックの動き情報として利用することができる。スキップモードの場合、マージモードとは異なり、レジデュアル信号が送信されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、隣接ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)として用い、動きベクトル差分(motion vector difference)をシグナリングすることにより、現在ブロックの動きベクトルを指示することができる。
予測部220は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用できる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように行われることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち、少なくとも1つを利用することができる。
インター予測部221及び/又はイントラ予測部222を介して生成された予測信号は、復元信号を生成するために利用され、またはレジデュアル信号を生成するために利用されることができる。変換部232は、レジデュアル信号に変換技法を適用して変換係数(transform coefficients)を生成することができる。例えば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)などを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとする時、このグラフから得られた変換を意味する。CNTは、以前に復元された全てのピクセル(all previously reconstructed pixel)を利用して予測信号を生成し、それに基づいて取得される変換を意味する。また、変換過程は、正方形の同じ大きさを有するピクセルブロックに適用されることもでき、正方形でない可変の大きさのブロックにも適用されることができる。
量子化部233は、変換係数を量子化してエントロピーエンコード部240に送信され、エントロピーエンコード部240は、量子化された信号(量子化された変換係数に関する情報)をエンコードしてビットストリームで出力できる。前記量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部233は、係数スキャン順序(scan order)に基づいてブロック形態の量子化された変換係数を1次元ベクトル形態で再整列でき、前記1次元ベクトル形態の量子化された変換係数に基づいて前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコード部240は、例えば、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのような多様なエンコード方法を行うことができる。エントロピーエンコード部240は、量子化された変換係数外にビデオ/イメージの復元に必要な情報(例えば、シンタックス要素(syntax elements)の値等)を共にまたは別途にエンコードすることもできる。エンコードされた情報(例えば、エンコードされたビデオ/画像情報)は、ビットストリーム形態でNAL(network abstraction layer)ユニット単位で送信または格納されることができる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。本文書で後述されるシグナリング/送信される情報及び/又はシンタックス要素は、前述したエンコード手順を介してエンコードされて前記ビットストリームに含まれることができる。前記ビットストリームは、ネットワークを介して送信されることができ、またはデジタル格納媒体に格納されることができる。ここで、ネットワークは、放送網及び/又は通信網などを含むことができ、デジタル格納媒体は、USB、SD、CD、DVD、ブルーレイ、HDD、SSDなど、多様な格納媒体を含むことができる。エントロピーエンコード部240から出力された信号は、送信する送信部(図示せず)及び/又は格納する格納部(図示せず)がエンコード装置200の内/外部エレメントとして構成されることができ、または、送信部は、エントロピーエンコード部240に含まれることもできる。
量子化部233から出力された量子化された変換係数は、予測信号を生成するために利用されることができる。例えば、量子化された変換係数に逆量子化部234及び逆変換部235を介して逆量子化及び逆変換を適用することによって、レジデュアル信号(レジデュアルブロックまたはレジデュアルサンプル)を復元することができる。加算部250は、復元されたレジデュアル信号を予測部220から出力された予測信号に加えることによって、復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルまたは復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャエンコード及び/又は復元過程でLMCS(luma mapping with chrom ascaling)が適用されることもできる。
フィルタリング部260は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部260は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ270、具体的に、メモリ270のDPBに格納することができる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部260は、各フィルタリング方法に対する説明で後述するように、フィルタリングに関する多様な情報を生成してエントロピーエンコード部290に伝達できる。フィルタリング関する情報は、エントロピーエンコード部290でエンコードされてビットストリーム形態で出力されることができる。
メモリ270に送信された修正された復元ピクチャは、インター予測部280で参照ピクチャとして使用されることができる。エンコード装置は、これを介してインター予測が適用される場合、エンコード装置200とデコード装置での予測ミスマッチを避けることができ、符号化効率も向上させることができる。
メモリ270のDPBは。修正された復元ピクチャをインター予測部221での参照ピクチャとして使用するために格納することができる。メモリ270は、現在ピクチャ内の動き情報が導出された(または、エンコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部221に伝達できる。メモリ270は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部222に伝達できる。
図3は、本文書が適用されることができるビデオ/画像デコード装置の構成を概略的に説明する図である。
図3に示すように、デコード装置300は、エントロピーデコード部(entropy decoder)310、レジデュアル処理部(residual processor)320、予測部(predictor)330、加算部(adder)340、フィルタリング部(filter)350、及びメモリ(memoery)360を備えて構成されることができる。予測部330は、インター予測部331及びイントラ予測部332を備えることができる。レジデュアル処理部320は、逆量子化部(dequantizer)321及び逆変換部(inverse transformer)321を備えることができる。上述したエントロピーデコード部310、レジデュアル処理部320、予測部330、加算部340、及びフィルタリング部350は、実施形態によって1つのハードウェアコンポーネント(例えば、デコーダチップセットまたはプロセッサ)により構成されることができる。また、メモリ360は、DPB(decoded picture buffer)を備えることができ、デジタル格納媒体により構成されることもできる。前記ハードウェアコンポーネントは、メモリ360を内/外部コンポーネントとしてさらに備えることもできる。
ビデオ/画像情報を含むビットストリームが入力されれば、デコード装置300は、図3のエンコード装置でビデオ/画像情報が処理されたプロセスに対応して画像を復元することができる。例えば、デコード装置300は、前記ビットストリームから取得したブロック分割関連情報に基づいてユニット/ブロックを導出できる。デコード装置300は、エンコード装置で適用された処理ユニットを用いてデコードを行うことができる。したがって、デコードの処理ユニットは、例えば、コーディングユニットであることができ、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクアッドツリー構造、バイナリツリー構造、及び/又はターナリツリー構造にしたがって分割されることができる。コーディングユニットから1つ以上の変換ユニットが導出され得る。そして、デコード装置300を介してデコード及び出力された復元画像信号は、再生装置を介して再生されることができる。
デコード装置300は、図2のエンコード装置から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部310を介してデコードされることができる。例えば、エントロピーデコード部310は、前記ビットストリームをパーシングして画像復元(または、ピクチャ復元)に必要な情報(例えば、ビデオ/画像情報)を導出できる。前記ビデオ/画像情報は、アダプテーションパラメータセット(APS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)またはビデオパラメータセット(VPS)等、多様なパラメータセットに関する情報をさらに含むことができる。また、前記ビデオ/画像情報は、一般制限情報(general constraint information)をさらに含むことができる。デコード装置は、前記パラメータセットに関する情報及び/又は前記一般制限情報にも基づいてピクチャをデコードすることができる。本文書で後述されるシグナリング/受信される情報及び/又はシンタックス要素は、前記デコード手順を介してデコードされて前記ビットストリームから取得されることができる。例えば、エントロピーデコード部310は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法を基礎にしてビットストリーム内の情報をデコードし、画像復元に必要なシンタックス要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。より詳しくは、CABACエントロピーデコード方法は、ビットストリームで各シンタックス要素に該当するbinを受信し、デコード対象シンタックス要素情報と隣接及びデコード対象ブロックのデコード情報または以前ステップでデコードされたシンボル/binの情報を利用してコンテキスト(context)モデルを決定し、決定されたコンテキストモデルによってbinの発生確率を予測してbinの算術デコード(arithmetic decoding)を実行して各シンタックス要素の値に該当するシンボルを生成することができる。このとき、CABACエントロピーデコード方法は、コンテキストモデル決定後、次のシンボル/binのコンテキストモデルのためにデコードされたシンボル/binの情報を利用してコンテキストモデルをアップデートすることができる。エントロピーデコード部310でデコードされた情報のうち予測に関する情報は、予測部330に提供され、エントロピーデコード部310でエントロピーデコードが実行されたレジデュアルに対する情報、即ち、量子化された変換係数及び関連パラメータ情報は、逆量子化部321に入力されることができる。また、エントロピーデコード部310でデコードされた情報のうちフィルタリングに関する情報は、フィルタリング部350に提供されることができる。一方、エンコード装置から出力された信号を受信する受信部(図示せず)がデコード装置300の内/外部エレメントとしてさらに構成されることができ、または、受信部は、エントロピーデコード部310の構成要素である場合もある。一方、本文書によるデコード装置は、ビデオ/画像/ピクチャデコード装置と呼ばれることができ、前記デコード装置は。情報デコーダ(ビデオ/画像/ピクチャ情報デコーダ)及びサンプルデコーダ(ビデオ/画像/ピクチャサンプルデコーダ)に区分することもできる。前記情報デコーダは、前記エントロピーデコード部310を含むことができ、前記サンプルデコーダは、前記逆量子化部321、逆変換部322、予測部330、加算部340、フィルタリング部350、及びメモリ360のうち、少なくとも1つを含むことができる。
逆量子化部321では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部321は、量子化された変換係数を2次元のブロック形態で再整列することができる。この場合、前記再整列は、エンコード装置で行われた係数スキャン順序に基づいて再整列を行うことができる。逆量子化部321は、量子化パラメータ(例えば、量子化ステップサイズ情報)を用いて量子化された変換係数に対する逆量子化を行い、変換係数(transform coefficient)を取得することができる。
逆変換部322では、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を取得するようになる。
予測部は、現在ブロックに対する予測を行い、前記現在ブロックに対する予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は、エントロピーデコード部310から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、または、インター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
予測部は、後述する多様な予測方法に基づいて予測信号を生成することができる。例えば、予測部は、1つのブロックに対する予測のためにイントラ予測またはインター予測を適用することができるだけでなく、イントラ予測とインター予測を同時に適用できる。これはcombined inter and intra prediction(CIIP)と呼ばれることができる。また、予測部は、ブロックに対する予測のためにイントラブロックコピー(intra block copy、IBC)を行うこともできる。前記イントラブロックコピーは、例えば、SCC(screen content coding)などのようにゲームなどのコンテンツ画像/動画像コーディングのために使用されることができる。IBCは、基本的に現在ピクチャ内で予測を行うが、現在ピクチャ内で参照ブロックを導出する点でインター予測と類似するように行われることができる。即ち、IBCは、本文書で説明されるインター予測技法のうち、少なくとも1つを利用することができる。
イントラ予測部332は、現在ピクチャ内のサンプルを参照して現在ブロックを予測することができる。前記参照されるサンプルは、予測モードによって前記現在ブロックの隣接(neighbor)に位置でき、または離れて位置することもできる。イントラ予測において、予測モードは、複数の非方向性モードと複数の方向性モードとを含むことができる。イントラ予測部332は、隣接ブロックに適用された予測モードを利用し、現在ブロックに適用される予測モードを決定することもできる。
インター予測部331は、参照ピクチャ上で動きベクトルにより特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックに対する予測されたブロックを誘導することができる。このとき、インター予測モードで送信される動き情報の量を減らすために、隣接ブロックと現在ブロックとの間の動き情報の相関性に基づいて、動き情報をブロック、サブブロックまたはサンプル単位で予測できる。前記動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。前記動き情報は、インター予測方向(L0予測、L1予測、Bi予測等)情報をさらに含むことができる。インター予測の場合に、隣接ブロックは、現在ピクチャ内に存在する空間的隣接ブロック(spatial neighboring block)と、参照ピクチャに存在する時間的隣接ブロック(temporal neighboring block)と、を含むことができる。例えば、インター予測部331は、隣接ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて前記現在ブロックの動きベクトル及び/又は参照ピクチャインデックスを導出できる。多様な予測モードに基づいてインター予測が行われることができ、前記予測に関する情報は、前記現在ブロックに対するインター予測のモードを指示する情報を含むことができる。
加算部340は、取得されたレジデュアル信号を、予測部330から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることによって復元信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)を生成することができる。スキップモードが適用された場合のように処理対象ブロックに対するレジデュアルがない場合、予測されたブロックが復元ブロックとして使用されることができる。
加算部340は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在ピクチャ内の次の処理対象ブロックのイントラ予測のために使用されることができ、後述するように、フィルタリングを経て出力されることもでき、または、次のピクチャのインター予測のために使用されることもできる。
一方、ピクチャデコード過程でLMCS(luma mapping with chroma scaling)が適用されることもできる。
フィルタリング部350は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部350は、復元ピクチャに多様なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、前記修正された復元ピクチャをメモリ60、具体的に、メモリ360のDPBに送信できる。前記多様なフィルタリング方法は、例えば、デブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。
メモリ360のDPBに格納された(修正された)復元ピクチャは、インター予測部331で参照ピクチャとして使用されることができる。メモリ360は、現在ピクチャ内の動き情報が導出された(または、デコードされた)ブロックの動き情報及び/又は既に復元されたピクチャ内のブロックの動き情報を格納することができる。前記格納された動き情報は、空間的隣接ブロックの動き情報または時間的隣接ブロックの動き情報として活用するためにインター予測部331に伝達できる。メモリ360は、現在ピクチャ内の復元されたブロックの復元サンプルを格納することができ、イントラ予測部332に伝達できる。
本明細書において、デコード装置300の予測部330、逆量子化部321、逆変換部322、及びフィルタリング部350などで説明された実施形態は、各々、エンコード装置200の予測部220、逆量子化部234、逆変換部235、及びフィルタリング部260などにも同一または対応されるように適用されることができる。
一方、前述したように、ビデオコーディングを行うにあたって圧縮効率を上げるために予測を行う。それによって、コーディング対象ブロックである現在ブロックに対する予測サンプルを含む予測されたブロックを生成することができる。ここで、前記予測されたブロックは、空間ドメイン(または、ピクセルドメイン)での予測サンプルを含む。前記予測されたブロックは、エンコード装置及びデコード装置で同様に導出され、前記エンコード装置は、原本ブロックの原本サンプル値自体でない前記原本ブロックと前記予測されたブロックとの間のレジデュアルに関する情報(レジデュアル情報)をデコード装置にシグナリングすることで画像コーディング効率を上げることができる。デコード装置は、前記レジデュアル情報に基づいてレジデュアルサンプルを含むレジデュアルブロックを導出し、前記レジデュアルブロックと前記予測されたブロックを加算して復元サンプルを含む復元ブロックを生成することができ、復元ブロックを含む復元ピクチャを生成することができる。
前記レジデュアル情報は、変換及び量子化手順を介して生成されることができる。例えば、エンコード装置は、前記原本ブロックと前記予測されたブロックとの間のレジデュアルブロックを導出し、前記レジデュアルブロックに含まれているレジデュアルサンプル(レジデュアルサンプルアレイ)に変換手順を実行して変換係数を導出し、前記変換係数に量子化手順を実行して量子化された変換係数を導出することで、関連したレジデュアル情報を(ビットストリームを介して)デコード装置にシグナリングすることができる。ここで、前記レジデュアル情報は、前記量子化された変換係数の値情報、位置情報、変換技法、変換カーネル、量子化パラメータなどの情報を含むことができる。デコード装置は、前記レジデュアル情報に基づいて逆量子化/逆変換手順を実行してレジデュアルサンプル(または、レジデュアルブロック)を導出できる。デコード装置は、予測されたブロックと前記レジデュアルブロックに基づいて復元ピクチャを生成することができる。また、エンコード装置は、以後ピクチャのインター予測のための参照のために量子化された変換係数を逆量子化/逆変換してレジデュアルブロックを導出し、これに基づいて復元ピクチャを生成することができる。
図4は、本文書による多重変換技法を概略的に示す。
図4を参照すると、変換部は、前述した図2のエンコード装置内の変換部に対応されることができ、逆変換部は、前述した図2のエンコード装置内の逆変換部または図3のデコード装置内の逆変換部に対応されることができる。
変換部は、レジデュアルブロック内のレジデュアルサンプル(レジデュアルサンプルアレイ)に基づいて1次変換を実行して(1次)変換係数を導出することができる(S410)。このような1次変換(primary transform)は、核心変換(core transform)と呼ばれることができる。ここで、前記1次変換は、多重変換選択(MTS:Multiple Transform Selection)に基づくことができ、1次変換で多重変換が適用される場合に多重核心変換と呼ばれることができる。
例えば、多重核心変換は、DCT(Discrete Cosine Transform)タイプ2(DCT-II)、DST(Discrete Sine Transform)タイプ7(DST-VII)、DCTタイプ8(DCT-VIII)及び/又はDSTタイプ1(DST-I)を追加的に使用して変換する方式を示すことができる。即ち、前記多重核心変換は、前記DCTタイプ2、前記DSTタイプ7、前記DCTタイプ8、及び前記DSTタイプ1の中から選択された複数の変換カーネルに基づいて、空間ドメインのレジデュアル信号(または、レジデュアルブロック)を周波数ドメインの変換係数(または、1次変換係数)に変換する変換方法を示すことができる。ここで、前記1次変換係数は、変換部側で臨時変換係数と呼ばれることができる。
即ち、既存の変換方法が適用される場合、DCTタイプ2に基づいてレジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数が生成されることができる。ただし、これと違って、前記多重核心変換が適用される場合、DCTタイプ2、DSTタイプ7、DCTタイプ8及び/又はDSTタイプ1などに基づいて、レジデュアル信号(または、レジデュアルブロック)に対する空間ドメインから周波数ドメインへの変換が適用されて変換係数(または、1次変換係数)が生成されることができる。ここで、DCTタイプ2、DSTタイプ7、DCTタイプ8、及びDSTタイプ1等は、変換タイプ、変換カーネル(kernel)または変換コア(core)と呼ばれることができる。このようなDCT/DST変換タイプは、基底関数に基づいて定義されることができる。
前記多重核心変換が行われる場合、前記変換カーネルの中から対象ブロックに対する垂直変換カーネル及び/又は水平変換カーネルが選択されることができ、前記垂直変換カーネルに基づいて前記対象ブロックに対する垂直変換が実行され、前記水平変換カーネルに基づいて前記対象ブロックに対する水平変換が行われることができる。ここで、前記水平変換は、前記対象ブロックの水平成分に対する変換を示すことができ、前記垂直変換は、前記対象ブロックの垂直成分に対する変換を示すことができる。前記垂直変換カーネル/水平変換カーネルは、レジデュアルブロックを含む対象ブロック(CUまたはサブブロック)の予測モード及び/又は変換インデックスに基づいて適応的に決定されることができる。
または、例えば、MTSを適用して1次変換を行う場合、特定基底関数を所定値に設定し、垂直変換または水平変換である時、どのような基底関数が適用されるかを組み合わせて変換カーネルに対するマッピング関係を設定することができる。例えば、水平方向変換カーネルをtrTypeHorで表し、垂直方向変換カーネルをtrTypeVerで表す場合、0の値を有するtrTypeHorまたはtrTypeVerは、DCT2に設定されることができ、1の値を有するtrTypeHorまたはtrTypeVerは、DST7に設定されることができる。2の値を有するtrTypeHorまたはtrTypeVerは、DCT8に設定されることができる。
または、例えば、複数の変換カーネルセットのうち、いずれか1つを指示するために、MTSインデックス(index)がエンコードされてMTSインデックス情報がデコード装置にシグナリングされることができる。ここで、MTSインデックスは、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素と表すことができる。例えば、MTSインデックスが0である場合、trTypeHor及びtrTypeVer値が共に0であることを表すことができ、(trTypeHor、trTypeVer)=(DCT2、DCT2)になることができる。MTSインデックスが1である場合、trTypeHor及びtrTypeVer値が共に1であることを表すことができ、(trTypeHor、trTypeVer)=(DST7、DST7)になることができる。MTSインデックスが2である場合、trTypeHor値は2であり、trTypeVer値は1であることを表すことができ、(trTypeHor、trTypeVer)=(DCT8、DST7)になることができる。MTSインデックスが3である場合、trTypeHor値は1であり、trTypeVer値は2であることを表すことができ、(trTypeHor、trTypeVer)=(DST7、DCT8)になることができる。MTSインデックスが4である場合、trTypeHor及びtrTypeVer値が共に2であることを表すことができ、(trTypeHor、trTypeVer)=(DCT8、DCT8)になることができる。例えば、MTSインデックスによる変換カーネルセットは、次の表のように表すことができる。
変換部は、前記(1次)変換係数に基づいて2次変換を実行して修正された(2次)変換係数を導出することができる(S420)。前記1次変換は、空間ドメインから周波数ドメインへの変換であり、前記2次変換は、(1次)変換係数間に存在する相関関係(correlation)を利用してさらに圧縮的な表現に変換することを示すことができる。
例えば、前記2次変換は、非分離変換(non-separable transform)を含むことができる。この場合、前記2次変換は、非分離2次変換(non-separable secondary transform、NSST)またはMDNSST(mode-dependent non-separable secondary transform)と呼ばれることができる。前記非分離2次変換は、前記1次変換を介して導出された(1次)変換係数を非分離変換マトリクス(non-separable transform matrix)に基づいて2次変換してレジデュアル信号に対する修正された変換係数(または、2次変換係数)を生成する変換を示すことができる。ここで、前記非分離変換マトリクスに基づいて前記(1次)変換係数に対して垂直変換及び水平変換を分離して(または、水平変換及び垂直変換を独立的に)適用せずに、一度に変換を適用することができる。
即ち、前記非分離2次変換は、前記(1次)変換係数の垂直成分及び水平成分を分離することなく、例えば、2次元信号(変換係数)を特定決められた方向(例えば、行優先(row-first)方向または列優先(column-first)方向)を介して1次元信号に再整列した後、前記非分離変換マトリクスに基づいて修正された変換係数(または、2次変換係数)を生成する変換方法を示すことができる。
例えば、行優先方向(または、順序)は、M×Nブロックに対して1番目の行、2番目の行、...、N番目の行の順序によって一列に配置することを示すことができ、列優先方向(または、順序)は、M×Nブロックに対して1番目の列、2番目の列、...、M番目の列の順序によって一列に配置することを示すことができる。ここで、M及びNは、各々、ブロックの幅(W)及び高さ(H)を示すことができ、全て正の整数である。
例えば、前記非分離2次変換は、(1次)変換係数で構成されたブロック(以下、変換係数ブロックという)の左上段(top-left)領域に対して適用されることができる。例えば、前記変換係数ブロックの幅(W)及び高さ(H)が全て8以上である場合、8×8非分離2次変換が前記変換係数ブロックの左上段8×8領域に対して適用されることができる。また、前記変換係数ブロックの幅(W)及び高さ(H)が全て4以上であり、かつ前記変換係数ブロックの幅(W)または高さ(H)が8より小さい場合、4×4非分離2次変換が前記変換係数ブロックの左上段min(8、W)×min(8、H)領域に対して適用されることができる。ただし、実施形態は、これに限定されるものではなく、例えば、前記変換係数ブロックの幅(W)または高さ(H)が全て4以上である条件のみ満たしても、4×4非分離2次変換が前記変換係数ブロックの左上段min(8、W)×min(8、H)領域に対して適用されることもできる。
具体的に、例えば、4×4入力ブロックが使用される場合、非分離2次変換は、下記のように行われることができる。
前記4×4入力ブロックXは、以下のように示される。
例えば、前記Xのベクトル形態は、以下のように示される。
数式2を参照すると、
は、ベクトルXを示すことができ、行優先(row-first)順序によって数式1のXの2次元ブロックを1次元ベクトルに再配列して示される。
この場合、前記2次非分離変換は、以下のように計算されることができる。
ここで、
は、変換係数ベクトルを示すことができ、Tは、16×16(非分離)変換マトリクスを示すことができる。
前記数式3に基づいて16×1サイズの
が導出されることができ、前記
は、スキャン順序(水平、垂直または対角(diagonal)等)を介して4×4ブロックで再構成(re-organized)されることができる。ただし、前述した計算は、一例に過ぎず、非分離2次変換の計算複雑度を減らすためにHyGT(Hypercube-Givens Transform)などが非分離2次変換の計算のために使用されることもできる。
一方、前記非分離2次変換は、モードベース(mode dependent)の変換カーネル(または、変換コア、変換タイプ)が選択されることもできる。ここで、モードは、イントラ予測モード及び/又はインター予測モードを含むことができる。
例えば、前述したように、前記非分離2次変換は、前記変換係数ブロックの幅(W)及び高さ(H)に基づいて決定された8×8変換または4×4変換に基づいて行われることができる。例えば、8×8変換は、W及びHが全て8と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている8×8領域に適用されることができる変換を示すことができ、前記8×8領域は、該当変換係数ブロックの内部の左上段8×8領域である。また、これと類似するように、4×4変換は、W及びHが全て4と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている4×4領域に適用されることができる変換を示すことができ、前記4×4領域は、該当変換係数ブロックの内部の左上段4×4領域である。例えば、8×8変換カーネルマトリクスは、64×64/16×64行列になることができ、4×4変換カーネルマトリクスは、16×16/8×16行列になることができる。
このとき、モードベースの変換カーネル選択のために、8×8変換及び4×4変換の両方ともに対して非分離2次変換のための変換セット当たり2個ずつの非分離2次変換カーネルが構成されることができ、変換セットは、4個である。即ち、8×8変換に対して4個の変換セットが構成されることができ、4×4変換に対して4個の変換セットが構成されることができる。この場合、8×8変換に対する4個の変換セットには各々2個ずつの8×8変換カーネルが含まれることができ、4×4変換に対する4個の変換セットには各々2個ずつの4×4変換カーネルが含まれることができる。
ただし、前記変換のサイズ、前記セットの個数、及びセット内の変換カーネルの個数は、一例に過ぎず、8×8または4×4以外のサイズが使用されることもでき、または、n個のセットが構成されることもでき、各セット内にk個の変換カーネルが含まれることもできる。ここで、n及びkは、各々、正の整数である。
例えば、前記変換セットは、NSSTセットと呼ばれることができ、前記NSSTセット内の変換カーネルは、NSSTカーネルと呼ばれることができる。例えば、前記変換セットの中からの特定セットの選択は、対象ブロック(CUまたはサブブロック)のイントラ予測モードに基づいて行われることができる。
例えば、イントラ予測モードは、2個の非方向性(non-directinoal)または非角度性(non-angular)イントラ予測モードと、65個の方向性(directional)または角度性(angular)イントラ予測モードと、を含むことができる。前記非方向性イントラ予測モードは、0番であるプラナー(planar)イントラ予測モード及び1番であるDCイントラ予測モードを含むことができ、前記方向性イントラ予測モードは、2番乃至66番の65個のイントラ予測モードを含むことができる。ただし、これは一例に過ぎず、本文書による実施形態は、イントラ予測モードの個数が異なる場合にも適用されることができる。一方、場合によって、67番イントラ予測モードがさらに使用されることができ、前記67番イントラ予測モードは、LM(linear model)モードを示すこともできる。
図5は、65個の予測方向のイントラ方向性モードを例示的に示す。
図5を参照すると、左上向対角予測方向を有する34番イントラ予測モードを中心にして、水平方向性(horizontal directionality)を有するイントラ予測モードと垂直方向性(vertical directionality)を有するイントラ予測モードとを区分することができる。図5のHとVは、各々、水平方向性と垂直方向性を意味することができ、-32~32の数字は、サンプルグリッドポジション(sample grid position)上で1/32単位の変位を示すことができる。これは、モードインデックス値に対するオフセットを示すことができる。
例えば、2番乃至33番イントラ予測モードは、水平方向性を有することができ、34番乃至66番イントラ予測モードは、垂直方向性を有することができる。一方、34番イントラ予測モードは、厳密には水平方向性も垂直方向性もないとみることができるが、2次変換の変換セットを決定する観点で水平方向性に属すると分類されることができる。その理由は、34番イントラ予測モードを中心にして対称される垂直方向モードに対しては入力データをトランスポーズ(transpose)して使用し、34番イントラ予測モードに対しては水平方向モードに対する入力データ整列方式を使用するためである。ここで、入力データをトランスポーズすることは、2次元ブロックデータM×Nに対して行が列になり、列が行になってN×Mデータを構成することを意味することができる。
また、18番イントラ予測モード及び50番イントラ予測モードは、各々、水平イントラ予測モード(horizontal intra prediction mode)及び垂直イントラ予測モード(vertical intra prediction mode)を示すことができ、2番イントラ予測モードは、左側参照ピクセルを有して右上向の方向に予測するため、右上向対角(diagonal)イントラ予測モードと呼ばれることができ、同様に、34番イントラ予測モードは、右下向対角イントラ予測モードと呼ばれ、66番イントラ予測モードは、左下向対角イントラ予測モードと呼ばれることができる。
一方、非分離変換に特定セットが使用されると決定されると、非分離2次変換インデックスを介して前記特定セット内のk個の変換カーネルの中から1つが選択され得る。例えば、エンコード装置は、RD(rate-distortion)チェックに基づいて特定変換カーネルを示す非分離2次変換インデックスを導出でき、前記非分離2次変換インデックスをデコード装置にシグナリングできる。例えば、デコード装置は、前記非分離2次変換インデックスに基づいて特定セット内のk個の変換カーネルの中から1つを選択することができる。例えば、0の値を有するNSSTインデックスは、1番目の非分離2次変換カーネルを示すことができ、1の値を有するNSSTインデックスは、2番目の非分離2次変換カーネルを示すことができ、2の値を有するNSSTインデックスは、3番目の非分離2次変換カーネルを示すことができる。または、0の値を有するNSSTインデックスは、対象ブロックに対して1番目の非分離2次変換が適用されないことを示すことができ、1乃至3の値を有するNSSTインデックスは、前記3個の変換カーネルを指すことができる。
変換部は、選択された変換カーネルに基づいて前記非分離2次変換を実行し、修正された(2次)変換係数を取得することができる。前記修正された変換係数は、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコードされてデコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達されることができる。
一方、前述したように、2次変換が省略される場合、前記1次(分離)変換の出力である(1次)変換係数が、前述したように、量子化部を介して量子化された変換係数として導出されることができ、エンコードされてデコード装置にシグナリング及びエンコード装置内の逆量子化/逆変換部に伝達されることができる。
再び、図4を参照すると、逆変換部は、前述した変換部で実行された手順の逆順に一連の手順を行うことができる。逆変換部は、(逆量子化された)変換係数を受信し、2次(逆)変換を実行して(1次)変換係数を導出し(S450)、前記(1次)変換係数に対して1次(逆)変換を実行してレジデュアルブロック(レジデュアルサンプル)を取得することができる(S460)。ここで、前記1次変換係数は、逆変換部側で修正された(modified)変換係数と呼ばれることができる。エンコード装置及び/又はデコード装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成することができ、これに基づいて復元ピクチャを生成することができることは、前述した通りである。
一方、デコード装置は、2次逆変換適用可否決定部(または、2次逆変換の適用可否を決定する要素)及び2次逆変換決定部(または、2次逆変換を決定する要素)をさらに含むこともできる。例えば、2次逆変換適用可否決定部は、2次逆変換の適用可否を決定することができる。例えば、2次逆変換は、NSSTまたはRSTであり、2次逆変換適用可否決定部は、ビットストリームからパーシングまたは取得した2次変換フラグに基づいて2次逆変換の適用可否を決定することができる。または、例えば、2次逆変換適用可否決定部は、レジデュアルブロックの変換係数に基づいて2次逆変換の適用可否を決定することもできる。
2次逆変換決定部は、2次逆変換を決定することができる。このとき、2次逆変換決定部は、イントラ予測モードによって指定されたNSST(または、RST)変換セットに基づいて現在ブロックに適用される2次逆変換を決定することができる。または、1次変換決定方法に依存的に(dependon)2次変換決定方法が決定されることもできる。または、イントラ予測モードによって1次変換及び2次変換の多様な組み合わせが決定されることができる。例えば、2次逆変換決定部は、現在ブロックの大きさに基づいて2次逆変換が適用される領域を決定することもできる。
一方、前述したように、2次(逆)変換が省略される場合、(逆量子化された)変換係数を受信して前記1次(分離)逆変換を行うことでレジデュアルブロック(レジデュアルサンプル)を取得することができる。エンコード装置及び/又はデコード装置は、前記レジデュアルブロックと予測されたブロックに基づいて復元ブロックを生成することができ、これに基づいて復元ピクチャを生成することができることは、前述した通りである。
一方、本文書では非分離2次変換による計算量とメモリ要求量の低減のために、NSSTの概念で変換マトリクス(カーネル)の大きさが減少されたRST(reduced secondary transform)を適用することができる。
本文書において、RSTは、簡素化ファクタ(factor)によって大きさが減少された変換マトリクス(transform matrix)に基づいて対象ブロックに対するレジデュアルサンプルに対して行われる(簡素化)変換を意味することができる。これを行う場合、変換マトリクスの大きさ減少によって変換時に要求される演算量が減少されることができる。即ち、RSTは、大きさが大きいブロックの変換または非分離変換時に発生する演算複雑度(complexity)問題を解消するために利用されることができる。
例えば、RSTは、減少された変換(reduced transform)、減少された2次変換(reduced secondary transform)、減少変換(reduction transform)、簡素化した変換(simplified transform)または簡素化変換(simple transform)等、多様な用語で呼ばれることができ、RSTが呼ばれる名称は、羅列された例示に限定されるものではない。または、RSTは、主に変換ブロックで0でない係数を含む低周波領域で行われるため、LFNST(Low-Frequency Non-Separable Transform)と呼ばれることができる。
一方、2次逆変換がRSTに基づいて行われる場合、エンコード装置200の逆変換部235とデコード装置300の逆変換部322は、変換係数に対する逆RSTに基づいて修正された変換係数を導出する逆RST部と、修正された変換係数に対する逆1次変換に基づいて前記対象ブロックに対するレジデュアルサンプルを導出する逆1次変換部と、を含むことができる。逆1次変換は、レジデュアルに適用された1次変換の逆変換を意味する。本文書において、変換に基づいて変換係数を導出することは、該当変換を適用して変換係数を導出することを意味することができる。
図6及び図7は、本文書の一実施形態によるRSTを説明するための図である。
例えば、図6は、正方向減少された変換(forward reduced transform)が適用されることを説明するための図面であり、図7は、逆方向減少された変換(inverse reduced transform)が適用されることを説明するための図である。本文書において、対象ブロックは、コーディングが行われる現在ブロック、レジデュアルブロックまたは変換ブロックを示すことができる。
例えば、RSTではN次元ベクトル(N dimensional vector)が異なる空間に位置したR次元ベクトル(R dimensional vector)にマッピングされて減少された変換マトリクスが決定されることができる。ここで、N及びRは、各々、正の整数であり、Rは、Nより小さい。Nは、変換が適用されるブロックの一辺の長さ(length)の自乗または変換が適用されるブロックと対応される変換係数の総個数を意味することができ、簡素化ファクタは、R/N値を意味することができる。簡素化ファクタは、減少されたファクタ(reduced factor)、減少ファクタ(reduction factor)、簡素化したファクタ(simplified factor)または簡素化ファクタ(simple factor)等、多様な用語で呼ばれることができる。一方、Rは、減少された係数(reduced coefficient)で呼ばれることができるが、場合によっては、簡素化ファクタがRを意味することもできる。また、場合によって、簡素化ファクタは、N/R値を意味することもできる。
例えば、簡素化ファクタまたは減少された係数は、ビットストリームを介してシグナリングされることができるが、これに限定されるものではない。例えば、簡素化ファクタまたは減少された係数に対する既に定義された値が各エンコード装置200及びデコード装置300に格納されている場合があり、この場合、簡素化ファクタまたは減少された係数は、別途にシグナリングされない。
例えば、簡素化変換マトリクスのサイズ(R×N)は、通常の変換マトリクスのサイズ(N×N)より小さく、以下の数式のように定義されることができる。
例えば、図6に示す減少された変換(reduced transform)ブロック内のマトリクスTは、数式4のマトリクスTR×Nを示すことができる。図6のように対象ブロックに対するレジデュアルサンプルに対して簡素化変換マトリクスTR×Nが掛け算される場合、対象ブロックに対する変換係数が導出されることができる。
例えば、変換が適用されるブロックのサイズが8×8であり、Rが16である場合(即ち、R/N=16/64=1/4)、図6によるRSTは、以下の数式5のような行列演算で表現されることができる。この場合、メモリと掛け算演算が簡素化ファクタにより略1/4に減少されることができる。
本文書において、行列演算とは、行列を列ベクトルの左側に置き、行列と列ベクトルを掛け算して列ベクトルを得る演算として理解されることができる。
数式5において、r1乃至r64は、対象ブロックに対するレジデュアルサンプルを示すことができる。または、例えば、1次変換を適用して生成された変換係数である。数式5の演算結果に基づいて対象ブロックに対する変換係数ciが導出されることができる。
例えば、Rが16である場合、対象ブロックに対する変換係数c1乃至c16が導出されることができる。もし、RSTではなく、通常の(regular)変換が適用され、サイズが64×64(N×N)である変換マトリクスが、サイズが64×1(N×1)であるレジデュアルサンプルに掛け算された場合、対象ブロックに対する変換係数が64個(N個)導出されるが、RSTが適用されたため、対象ブロックに対する変換係数が16個(R個)のみ導出される。対象ブロックに対する変換係数の総個数がN個からR個に減少してエンコード装置200がデコード装置300に送信するデータの量が減少するため、エンコード装置200とデコード装置300との間の送信効率が増加できる。
変換マトリクスのサイズ観点を考慮すると、通常の変換マトリクスのサイズは、64×64(N×N)であり、それに対して、簡素化変換マトリクスのサイズは、16×64(R×N)に減少するため、通常の変換を行う時と比較すると、RSTを行う時にメモリ使用をR/N割合で減少させることができる。また、通常の変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化変換マトリクスを利用する場合、掛け算演算数をR/N割合で減少(R×N)させることができる。
一実施形態において、エンコード装置200の変換部232は、対象ブロックに対するレジデュアルサンプルを1次変換及びRSTベースの2次変換を行うことによって対象ブロックに対する変換係数を導出できる。このような変換係数は、デコード装置300の逆変換部に伝達されることができ、デコード装置300の逆変換部322は、変換係数に対する逆RST(reduced secondary transform)に基づいて修正された変換係数を導出し、修正された変換係数に対する逆1次変換に基づいて対象ブロックに対するレジデュアルサンプルを導出できる。
一実施形態による逆RSTマトリクスTN×Rのサイズは、通常の逆変換マトリクスのサイズN×Nより小さいN×Rであり、数式4に示す簡素化変換マトリクスTR×Nとトランスポーズ(transpose)関係にある。
図7に示す減少された逆変換(reduced inverse transform)ブロック内のマトリクスTtは、逆RSTマトリクスTR×N
Tを示すことができる。ここで、上付き文字Tは、トランスポーズを示すことができる。図7のように対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算される場合、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルが導出されることができる。逆RSTマトリクスTR×N
Tは、(TR×N)T
N×Rで表現することもできる。
より具体的に、2次逆変換で逆RSTが適用される場合には、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算されると、対象ブロックに対する修正された変換係数が導出されることができる。一方、逆1次変換で逆RSTが適用されることができ、この場合、対象ブロックに対する変換係数に対して逆RSTマトリクスTR×N
Tが掛け算されると、対象ブロックに対するレジデュアルサンプルが導出されることができる。
一実施形態において、逆変換が適用されるブロックのサイズが8×8であり、Rが16である場合(即ち、R/N=16/64=1/4)、図7によるRSTは、以下の数式6のような行列演算で表現されることができる。
数式6において、c1乃至c16は、対象ブロックに対する変換係数を示すことができる。数式6の演算結果に基づいて対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すrjが導出されることができる。即ち、対象ブロックに対する修正された変換係数または対象ブロックに対するレジデュアルサンプルを示すr1乃至rNが導出されることができる。
逆変換マトリクスのサイズ観点を考慮すると、通常の逆変換マトリクスのサイズは、64×64(N×N)であり、それに対して、簡素化逆変換マトリクスのサイズは、64×16(N×R)に減少するため、通常の逆変換を行う時と比較すると、逆RSTを行う時にメモリ使用をR/N割合で減少させることができる。また、通常の逆変換マトリクスを利用する時の掛け算演算数N×Nと比較すると、簡素化逆変換マトリクスを利用する場合、掛け算演算数をR/N割合で減少(N×R)させることができる。
一方、8×8RSTに対しても変換セットを構成して適用できる。即ち、変換セットによって該当8×8RSTが適用されることができる。1つの変換セットは、画面内の予測モードによって2個または3個の変換カーネルで構成されているため、2次変換を適用しない場合まで含んで最大4個の変換の中から1つを選択するように構成されることができる。2次変換を適用しない時の変換は、恒等行列が適用されたと見なされる。4個の変換に対して各々0、1、2または3のインデックスを付与するとした時(例えば、0番インデックスを恒等行列、即ち、2次変換を適用しない場合に割り当てることができる)、NSSTインデックスというシンタックス要素(syntax element)を変換係数ブロック毎にシグナリングして適用される変換を指定することができる。即ち、NSSTインデックスを介して8×8左上段ブロックに対して、8×8NSSTを指定することができ、RST構成では8×8RSTを指定することができる。8×8NSST及び8×8RSTは、変換の対象になる対象ブロックのW及びHが全て8と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている8×8領域に適用されることができる変換を示すことができ、前記8×8領域は、該当変換係数ブロックの内部の左上段8×8領域である。また、これと類似するように、4×4NSST及び4×4RSTは、対象ブロックのW及びHが全て4と同じまたは大きい場合、該当変換係数ブロックの内部に含まれている4×4領域に適用されることができる変換を示すことができ、前記4×4領域は、該当変換係数ブロックの内部の左上段4×4領域である。
一方、例えば、エンコード装置は、指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)またはCABAC(context-adaptive binary arithmetic coding)などのような多様なコーディング方法に基づいてシンタックス要素の値またはレジデュアルに関する変換係数の量子化された値などをエンコードしてビットストリームを導出できる。また、デコード装置は、指数ゴロム符号化、CAVLCまたはCABACなどのような多様なコーディング方法に基づいてビットストリームをデコードし、画像復元に必要なシンタックス要素の値またはレジデュアルに関する変換係数の量子化された値などを導出できる。
例えば、前述したコーディング方法は、後述する内容のように行われることができる。
図8は、シンタックス要素をエンコードするためのCABAC(context-adaptive binary arithmetic coding)を例示的に示す。
例えば、CABACのコーディング過程でエンコード装置は、入力信号が二進値でないシンタックス要素である場合には、前記入力信号の値を二進化(binarization)して入力信号を二進値に変換できる。また、前記入力信号が既に二進値である場合(即ち、前記入力信号の値が二進値である場合)には、二進化が実行されずに、そのまま前記入力信号が利用されることができる。ここで、二進値を構成する各々の二進数0または1をbinということができる。例えば、二進化された後の二進ストリングが110である場合、1、1、及び0の各々を1つのbinと表すことができる。1つのシンタックス要素に対する前記binは、前記シンタックス要素の値を示すことができる。このような二進化は、Truncated Rice binarization processまたはFixed-length binarization processなど、多様な二進化方法に基づくことができ、対象シンタックス要素に対する二進化方法は、あらかじめ定義されることができる。前記二進化手順は、エントロピーエンコード部内の二進化部により行われることができる。
以後、前記シンタックス要素の二進化されたbinは、正規(regular)コーディングエンジンまたはバイパス(bypass)コーディングエンジンに入力されることができる。エンコード装置の正規コーディングエンジンは、該当binに対して確率値を反映するコンテキストモデル(context model)を割り当てることができ、割り当てられたコンテキストモデルに基づいて該当binをエンコードすることができる。エンコード装置の前記正規コーディングエンジンは、各binに対するコーディングを実行した後に該当binに対するコンテキストモデルを更新することができる。前述した内容のようにコーディングされるbinは、コンテキストコーディングされたbin(context-coded bin)と表すことができる。
一方、前記シンタックス要素の二進化されたbinが前記バイパスコーディングエンジンに入力される場合には、次のようにコーディングされることができる。例えば、エンコード装置のバイパスコーディングエンジンは、入力されたbinに対して確率を推定する手順と、コーディング後に前記binに適用した確率モデルを更新する手順と、を省略することができる。バイパスコーディングが適用される場合、エンコード装置は、コンテキストモデルを割り当てる代わりに均一な確率分布を適用して入力されるbinをコーディングすることができ、これを介してエンコード速度を向上させることができる。前述した内容のようにコーディングされるbinは、バイパスbin(bypass bin)と表すことができる。
エントロピーデコードは、前述したエントロピーエンコードと同じ過程を逆順に行う過程を示すことができる。
デコード装置(エントロピーデコード部)は、エンコードされた画像/ビデオ情報をデコードすることができる。前記画像/ビデオ情報は、パーティショニング関連情報、予測関連情報(例えば、インター/イントラ予測区分情報、イントラ予測モード情報、インター予測モード情報等)、レジデュアル情報またはインループフィルタリング関連情報などを含むことができ、またはそれに関する多様なシンタックス要素を含むことができる。前記エントロピーコーディングは、シンタックス要素単位で行われることができる。
デコード装置は、対象シンタックス要素に対する二進化を行うことができる。ここで、前記二進化は、Truncated Rice binarization processまたはFixed-length binarization processなど、多様な二進化方法に基づくことができ、対象シンタックス要素に対する二進化方法は、あらかじめ定義されることができる。デコード装置は、前記二進化手順を介して対象シンタックス要素の利用可能な値に対する利用可能binストリング(binストリング候補)を導出できる。前記二進化手順は、エントロピーデコード部内の二進化部により行われることができる。
デコード装置は、ビットストリーム内の入力ビットから前記対象シンタックス要素に対する各binを順次にデコードまたはパーシングしながら、導出されたbinストリングを該当シンタックス要素に対する利用可能binストリングと比較できる。もし、導出されたbinストリングが前記利用可能binストリングのうち1つと同じ場合、該当binストリングに対応する値が該当シンタックス要素の値として導出される。もし、それとも、前記ビットストリーム内の次のビットをさらにパーシング後、前述した手順を再び行うことができる。このような過程を介してビットストリーム内に特定情報(または、特定シンタックス要素)に対する開始ビットや終了ビットを使用することなく、可変長ビットを利用して該当情報をシグナリングすることができる。これを介して低い値に対しては相対的に少ないビットを割り当てることができ、全般的なコーディング効率を上げることができる。
デコード装置は、CABACまたはCAVLCなどのエントロピーコーディング技法に基づいて、ビットストリームから前記binストリング内の各binをコンテキストモデルに基づいてまたはバイパスに基づいてデコードできる
シンタックス要素がコンテキストモデルに基づいてデコードされる場合、デコード装置は、ビットストリームを介して前記シンタックス要素に該当するbinを受信することができ、前記シンタックス要素とデコード対象ブロックまたは隣接ブロックのデコード情報または以前ステップでデコードされたシンボル/binの情報を利用してコンテキストモデル(context model)を決定することができ、決定されたコンテキストモデルによって前記受信されたbinの発生確率を予測してbinの算術デコード(arithmetic decoding)を行うことで前記シンタックス要素の値を導出できる。以後、前記決定されたコンテキストモデルに基づいて、次にデコードされるbinのコンテキストモデルがアップデートされることができる。
コンテキストモデルは、コンテキストコーディング(正規コーディング)されるbin別に割当及びアップデートされることができ、コンテキストモデルは、コンテキストインデックス(ctxIdx:context index)またはコンテキストインデックス増分(ctxInc:context index increment)に基づいて指示されることができる。ctxIdxは、ctxIncに基づいて導出されることができる。具体的に、例えば、前記正規コーディングされるbinの各々に対するコンテキストモデルを示すctxIdxは、ctxInc及びコンテキストインデックスオフセット(ctxIdxOffset:context index offset)の和として導出されることができる。例えば、前記ctxIncは、各bin別に異なるように導出されることができる。前記ctxIdxOffsetは、前記ctxIdxの最小値(the lowest value)で示される。前記ctxIdxOffsetは、一般的に他のシンタックス要素に対するコンテキストモデルとの区分のために利用される値であり、1つのシンタックス要素に対するコンテキストモデルは、ctxIncに基づいて区分または導出されることができる。
エントロピーエンコード手順で、正規コーディングエンジンを介してエンコードを行うか、または、バイパスコーディングエンジンを介してエンコードを行うかが決定されることができ、これによって、コーディング経路がスイッチングされることができる。エントロピーデコードは、エントロピーエンコードと同じ過程を逆順に行うことができる。
一方、例えば、シンタックス要素がバイパスデコードされる場合、デコード装置は、ビットストリームを介して前記シンタックス要素に該当するbinを受信することができ、均一な確率分布を適用して入力されるbinをデコードすることができる。この場合、デコード装置は、シンタックス要素のコンテキストモデルを導出する手順と、デコード以後に前記binに適用したコンテキストモデルを更新する手順と、は、省略されることができる。
一方、本文書の一実施形態は、MTSインデックスをシグナリングする方案を提案できる。ここで、MTSインデックスは、上述したように、複数の変換カーネルセットのうち、いずれか1つを表すことができ、MTSインデックスがエンコードされてMTSインデックス情報がデコード装置にシグナリングされることができ、デコード装置でMTSインデックス情報をデコードしてMTSインデックスを取得し、MTSインデックスに基づいて適用される変換カーネルセットを判断できる。MTSインデックスは、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素と表すこともできる。例えば、MTSインデックスは、Rice-Golmb parameter 0次を使用して二進化されることができるが、Truncated Riceに基づいて二進化されることもできる。Truncated Riceに基づいて二進化される場合、入力パラメータであるcMaxは、4の値を有することができ、cRiceParamは、0の値を有することができる。例えば、エンコード装置は、MTSインデックスを二進化してMTSインデックスに対するビン(等)を導出し、導出したビン(等)をエンコードしてMTSインデックス情報(MTSインデックスに対するビット(等)を導出し、MTSインデックス情報をデコード装置にシグナリングすることができる。デコード装置は、MTSインデックス情報をデコードしてMTSインデックスに対するビン(等)を導出し、導出したMTSインデックスに対するビン(等)とMTSインデックスに対する候補ビン(等)とを比較してMTSインデックスを導出できる。
例えば、MTSインデックス(例えば、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素)は、全てのビンに対してコンテキストモデルまたはコンテキストインデックスに基づいてコンテキストコーディングされることができる。この場合、MTSインデックスのコンテキストコーディングのためのコンテキストインデックス増分(ctxInc:context index increment)またはビン位置によるctxIncは、表2のように割当または決定されることができる。または、表2のように、ビン位置によってコンテキストモデルが選択され得る。
表2を参照すれば、0番ビン(1番目のビン)に対するctxIncは、cqtDepthに基づいて割り当てられることができる。ここで、cqtDepthは、現在ブロックに対するクアッドツリーデプス(quad-tree depth)を表すことができ、0~5のうち1つの値に導出されることができる。すなわち、0番目のビンに対するctxIncは、cqtDepthによって0~5のうち1つの値に割り当てられることができる。また、1番ビン(2番目のビン)に対するctxIncは、6が割り当てられることができ、2番ビン(3番目のビン)に対するctxIncは、7が割り当てられることができ、3番ビン(4番目のビン)に対するctxIncは、8が割り当てられることができる。すなわち、0番ビンないし3番ビンは、互いに異なる値のctxIncを割り当てられることができる。ここで、互いに異なるctxInc値は、互いに異なる文脈モデルを表すことができ、この場合、MTSインデックスのコーディングのための文脈モデルが9個になることができる。
または、例えば、MTSインデックス(例えば、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素)は、表3のように、全てのビンに対してバイパスコーディングされることもできる。この場合、MTSインデックスのコーディングのための文脈モデルが0個になることができる。
または、例えば、MTSインデックス(例えば、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素)は、表4のように、0番ビン(1番目のビン)に対してコンテキストモデルまたはコンテキストインデックスに基づいてコンテキストコーディングされることができ、残りのビンに対してバイパスコーディングされることもできる。すなわち、0番ビン(1番目のビン)に対するctxIncは、0が割り当てられることができる。この場合、MTSインデックスのコーディングのための文脈モデルが1個になることができる。
または、例えば、MTSインデックス(例えば、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素)は、表5のように、0番ビン(1番目のビン)及び1番ビン(2番目のビン)に対してコンテキストモデルまたはコンテキストインデックスに基づいてコンテキストコーディングされることができ、残りのビンに対してバイパスコーディングされることもできる。すなわち、0番ビン(1番目のビン)に対するctxIncは、0が割り当てられることができ、1番ビン(2番目のビン)に対するctxIncは、1が割り当てられることができる。この場合、MTSインデックスのコーディングのための文脈モデルが2個になることができる。
または、例えば、MTSインデックス(例えば、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素)は、表6のように、全てのビンに対してコンテキストモデルまたはコンテキストインデックスに基づいてコンテキストコーディングされることができ、各ビンに対して1個のctxIncを割り当てることができる。すなわち、0番ビン(1番目のビン)に対するctxIncは、0が割り当てられることができ、1番ビン(2番目のビン)に対するctxIncは、1が割り当てられることができる。2番ビン(3番目のビン)に対するctxIncは、2が割り当てられることができ、3番ビン(4番目のビン)に対するctxIncは、2が割り当てられることができる。この場合、MTSインデックスのコーディングのための文脈モデルが4個になることができる。
上述したように、一実施形態は、MTSインデックスのビンのうち全部または一部にバイパスコーディングを適用するか、コンテキストコーディングを適用しても、特定値をctxIncに適用して文脈モデルの個数を減らすことにより複雑度が低くなり、デコーダの出力量が増加されるという効果がありうる。また、一実施形態は、上述したように文脈モデルを使用する場合、各ビンの位置に対する発生統計に基づいて初期値及び/又は多重ウィンドウの大きさは、可変的であることもできる。
図9及び図10は、本文書の実施形態(等)に係るビデオ/画像エンコード方法及び関連コンポーネントの一例を概略的に示す。
図9において開示された方法は、図2または図10において開示されたエンコード装置によって行われることができる。具体的に、例えば、図9のS900ないしS920は、図10の前記エンコード装置のレジデュアル処理部230によって行われることができ、図9のS930は、図10の前記エンコード装置のエントロピーエンコード部240によって行われることができる。また、図9において図示していないが、図10において前記エンコード装置の予測部220によって予測サンプルまたは予測関連情報を導出でき、前記エンコード装置のレジデュアル処理部230によって原本サンプルまたは予測サンプルからレジデュアル情報が導出され得るし、前記エンコード装置のエントロピーエンコード部240によってレジデュアル情報または予測関連情報からビットストリームが生成され得る。図9において開示された方法は、本文書において上述した実施形態を含むことができる。
図9に示すように、エンコード装置は、現在ブロックに対するレジデュアルサンプルを導出する(S900)。例えば、エンコード装置は、予測サンプル及び原本サンプルに基づいてレジデュアルサンプルを導出できる。図9において図示していないが、エンコード装置は、現在ブロックに対する予測サンプルを生成するために、RD(rate distortion)コスト(cost)を考慮して現在ブロックにイントラ予測またはインター予測を行うことができ、予測モード/タイプ情報を含む予測関連情報を生成できる。
エンコード装置は、レジデュアルサンプルに基づいて現在ブロックに対する変換係数を導出する(S910)。例えば、エンコード装置は、前記レジデュアルサンプルに変換を行って前記変換係数を導出できる。ここで、変換は、変換カーネルまたは変換カーネルセットに基づいて行われることができる。例えば、変換カーネルセットは、水平方向変換カーネル及び垂直方向変換カーネルを含むことができる。例えば、エンコード装置は、レジデュアルサンプルに1次変換を行って変換係数を導出できる。または、例えば、エンコード装置は、レジデュアルサンプルに1次変換を行って臨時変換係数を導出し、臨時変換係数に2次変換を行って前記変換係数を導出することもできる。例えば、前記変換カーネルセットに基づいて行う変換は、1次変換を表すことができる。
エンコード装置は、変換係数に基づいてMTSインデックス及びレジデュアル情報を生成する(S920)。言い換えれば、エンコード装置は、変換係数に基づいてMTSインデックス及び/又はレジデュアル情報を生成できる。
MTSインデックスは、変換カーネルセット候補のうち、現在ブロック(の変換係数)に適用された変換カーネルセットを表すことができる。ここで、MTSインデックスは、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素と表すこともできる。上述したように、変換カーネルセットは、水平方向変換カーネル及び垂直方向変換カーネルを含むことができ、水平方向変換カーネルは、trTypeHorと表すことができ、垂直方向変換カーネルは、trTypeVerと表すことができる。
例えば、現在ブロック(の変換係数)に適用された水平方向変換カーネル及び垂直方向変換カーネルによりtrTypeHor及びtrTypeVerの値が表されることができ、trTypeHor及びtrTypeVerの値によってMTSインデックスが0~4を含む候補のうち1つで表わされることができる。
例えば、MTSインデックスが0である場合、trTypeHor及びtrTypeVerが共に0であることを表すことができる。または、MTSインデックスが1である場合、trTypeHor及びtrTypeVerが共に1であることを表すことができる。または、MTSインデックスが2である場合、trTypeHorが2であり、trTypeVerが1であることを表すことができる。MTSインデックスが3である場合、trTypeHorが1であり、trTypeVerが1であることを表すことができる。または、MTSインデックスが4である場合、trTypeHor及びtrTypeVerは共に2であることを表すことができる。例えば、trTypeHorまたはtrTypeVerの値が0である場合、現在ブロック(の変換係数)に水平方向または垂直方向としてDCT2が適用されたことを表すことができ、1である場合、DST7が適用されたことを表すことができ、2である場合、DCT8が適用されたことを表すことができる。すなわち、前記水平方向として適用する変換カーネル及び前記垂直方向として適用する変換カーネルの各々は、前記MTSインデックスに基づいてDCT2、DST7、及びDCT8を含む候補のうち1つで表わされることができる。
MTSインデックスは、MTSインデックスのビンストリングのビンに基づいて表わされることができる。言い換えれば、MTSインデックスは、二進化されてMTSインデックスのビンストリング(のビン)で表わされることができ、MTSインデックスのビンストリング(のビン)は、エントロピーエンコードされることができる。
言い換えれば、MTSインデックスのビンストリングのビンのうち、少なくとも1つのビンは、コンテキストコーディングに基づいて表わされることができる。ここで、コンテキストコーディングは、コンテキストインデックス増分(ctxInc)の値に基づいて行われることができる。または、コンテキストコーディングは、コンテキストインデックス(ctxIdx)またはコンテキストモデルに基づいて行われることができる。ここで、コンテキストインデックスは、コンテキストインデックス増分の値に基づいて表わされることができる。または、コンテキストインデックスは、コンテキストインデックス増分の値及びコンテキストインデックスオフセット(ctxIdxOffset)に基づいて表されることもできる。
例えば、MTSインデックスのビンストリングのビンの全てがコンテキストコーディングに基づいて表わされることができる。例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、cqtDepthに基づいて表わされることができる。ここで、cqtDepthは、現在ブロックに対するクアッドツリーデプス(quad-tree depth)を表すことができ、0~5のうち1つの値に表わされることができる。また、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、6に表わされることができ、3番目のビンまたは2番ビン(bin 2)に対するctxIncは、7に表わされることができ、4番目のビンまたは3番ビン(bin 3)に対するctxIncは、8に表わされることができる。または、例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0に表わされることができ、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、1に表わされることができ、3番目のビンまたは2番ビン(bin 2)に対するctxIncは、2に表わされることができ、4番目のビンまたは3番ビン(bin 3)に対するctxIncは、3に表わされることができる。すなわち、前記ビンストリングのビンのうち、1番目のビンのコンテキストコーディングのために使用されることができるコンテキストインデックス増分の値の個数は、1個であることができる。
または、例えば、MTSインデックスのビンストリングのビンのうち一部がコンテキストコーディングに基づいて表わされ、残りは、バイパスコーディングに基づいて表わされることもできる。例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0に表わされることができ、残りのビンは、バイパスコーディングに基づいて表わされることができる。または、例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0に表わされることができ、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、1に表わされることができ、残りのビンは、バイパスコーディングに基づいて表わされることができる。すなわち、前記ビンストリングのビンのうち、1番目のビンのコンテキストコーディングのために使用されることができるコンテキストインデックス増分の値の個数は、1個であることができる。
または、MTSインデックスのビンストリングのビンの全てがバイパスコーディングに基づいて表わされることもできる。ここで、バイパスコーディングは、均一な確率分布に基づいてコンテキストコーディングを行うことを表すこともでき、コンテキストコーディングのアップデート手順などが省略されることにより、コーディング効率を向上させることができる。
レジデュアル情報は、レジデュアルサンプルを導出するために利用される情報を表すことができる。また、例えば、エンコード装置は、変換係数に量子化を行うことができ、レジデュアル情報は、レジデュアルサンプルに関する情報、変換関連情報、及び/又は量子化関連情報を含むことができる。例えば、レジデュアル情報は、量子化された変換係数に関する情報を含むことができる。
エンコード装置は、MTSインデックス及びレジデュアル情報を含む画像情報をエンコードする(S930)。例えば、画像情報は、予測関連情報をさらに含むことができる。例えば、エンコード装置は、画像情報をエンコードしてビットストリームを生成できる。ビットストリームは、エンコードされた(画像)情報と呼ばれることもできる。
または、図9に図示していないが、例えば、エンコード装置は、前記レジデュアルサンプル及び前記予測サンプルに基づいて復元サンプルを生成することもできる。また、前記復元サンプルに基づいて復元ブロック及び復元ピクチャが導出されることもできる。
例えば、エンコード装置は、上述した情報(または、シンタックス要素)の全部または一部を含む画像情報をエンコードしてビットストリームまたはエンコードされた情報を生成できる。または、ビットストリーム形態で出力することができる。また、前記ビットストリームまたはエンコードされた情報は、ネットワークまたは格納媒体を介してデコード装置に送信されることができる。または、前記ビットストリームまたはエンコードされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前記ビットストリームまたは前記エンコードされた情報は、上述した画像エンコード方法により生成されることができる。
図11及び図12は、本文書の実施形態(等)に係るビデオ/画像デコード方法及び関連コンポーネントの一例を概略的に示す。
図11において開示された方法は、図3または図12において開示されたデコード装置によって行われることができる。具体的に、例えば、図11のS1100は、図12において前記デコード装置のエントロピーデコード部310によって行われることができ、図11のS1110及びS1120は、図12において前記デコード装置のレジデュアル処理部320によって行われることができる。また、図11において図示していないが、図12において前記デコード装置のエントロピーデコード部310によってビットストリームから予測関連情報またはレジデュアル情報が導出され得るし、前記デコード装置のレジデュアル処理部320によってレジデュアル情報からレジデュアルサンプルが導出され得るし、前記デコード装置の予測部330によって予測関連情報から予測サンプルが導出され得るし、前記デコード装置の加算部340によってレジデュアルサンプルまたは予測サンプルから復元ブロックまたは復元ピクチャが導出され得る。図11において開示された方法は、本文書において上述した実施形態を含むことができる。
図11に示すように、デコード装置は、ビットストリームからMTSインデックス及びレジデュアル情報を取得する(S1100)。例えば、デコード装置は、ビットストリームをパーシングまたはデコードしてMTSインデックス及び/又はレジデュアル情報を取得できる。ここで、ビットストリームは、エンコードされた(画像)情報と呼ばれることもできる。
MTSインデックスは、変換カーネルセット候補のうち、現在ブロックに適用する変換カーネルセットを表すことができる。ここで、MTSインデックスは、tu_mts_idxシンタックス要素またはmts_idxシンタックス要素と表すこともできる。また、変換カーネルセットは、現在ブロックに水平方向として適用する変換カーネル及び前記現在ブロックに垂直方向として適用する変換カーネルを含むことができる。ここで、水平方向として適用する変換カーネルは、trTypeHorと表すことができ、垂直方向として適用する変換カーネルは、trTypeVerと表すことができる。
例えば、MTSインデックスは、0~4を含む候補のうち1つで導出されることができ、MTSインデックスによってtrTypeHor及びtrTypeVerは、各々0~2のうち1つで導出されることができる。例えば、MTSインデックスが0である場合、trTypeHor及びtrTypeVerは共に0であることができる。または、MTSインデックスが1である場合、trTypeHor及びtrTypeVerは共に1であることができる。または、MTSインデックスが2である場合、trTypeHorは2であり、trTypeVerは1であることができる。MTSインデックスが3である場合、trTypeHorは1であり、trTypeVerは1であることができる。または、MTSインデックスが4である場合、trTypeHor及びtrTypeVerは共に2であることができる。例えば、trTypeHorまたはtrTypeVerの値は、変換カーネルを表すことができ、0である場合、DCT2を表すことができ、1である場合、DST7を表すことができ、2である場合、DCT8を表すことができる。すなわち、前記水平方向として適用する変換カーネル及び前記垂直方向として適用する変換カーネルの各々は、前記MTSインデックスに基づいてDCT2、DST7、及びDCT8を含む候補のうち1つで導出されることができる。
MTSインデックスは、MTSインデックスのビンストリングのビンに基づいて導出されることができる。言い換えれば、MTSインデックス情報は、エントロピーデコードされて二進化されたMTSインデックスで導出されることができ、二進化されたMTSインデックスは、MTSインデックスのビンストリング(のビン)で表わされることができる。
言い換えれば、MTSインデックスのビンストリングのビンのうち、少なくとも1つのビンは、コンテキストコーディングに基づいて導出されることができる。ここで、コンテキストコーディングは、コンテキストインデックス増分(ctxInc)の値に基づいて行われることができる。または、コンテキストコーディングは、コンテキストインデックス(ctxIdx)またはコンテキストモデルに基づいて行われることができる。ここで、コンテキストインデックスは、コンテキストインデックス増分の値に基づいて導出されることができる。または、コンテキストインデックスは、コンテキストインデックス増分の値及びコンテキストインデックスオフセット(ctxIdxOffset)に基づいて導出されることもできる。
例えば、MTSインデックスのビンストリングのビンの全てがコンテキストコーディングに基づいて導出されることができる。例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、cqtDepthに基づいて割り当てられることができる。ここで、cqtDepthは、現在ブロックに対するクアッドツリーデプス(quad-tree depth)を表すことができ、0~5のうち1つの値に導出されることができる。また、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、6が割り当てられることができ、3番目のビンまたは2番ビン(bin 2)に対するctxIncは、7が割り当てられることができ、4番目のビンまたは3番ビン(bin 3)に対するctxIncは、8が割り当てられることができる。または、例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0が割り当てられることができ、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、1が割り当てられることができ、3番目のビンまたは2番ビン(bin 2)に対するctxIncは、2が割り当てられることができ、4番目のビンまたは3番ビン(bin 3)に対するctxIncは、3が割り当てられることができる。すなわち、前記ビンストリングのビンのうち、1番目のビンのコンテキストコーディングのために使用されることができるコンテキストインデックス増分の値の個数は、1個であることができる。
または、例えば、MTSインデックスのビンストリングのビンのうち一部がコンテキストコーディングに基づいて導出され、残りは、バイパスコーディングに基づいて導出されることもできる。例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0が割り当てられることができ、残りのビンは、バイパスコーディングに基づいて導出されることができる。または、例えば、MTSインデックスのビンストリングのビンのうち、1番目のビンまたは0番ビン(bin 0)に対するctxIncは、0が割り当てられることができ、2番目のビンまたは1番ビン(bin 1)に対するctxIncは、1が割り当てられることができ、残りのビンは、バイパスコーディングに基づいて導出されることができる。すなわち、前記ビンストリングのビンのうち、1番目のビンのコンテキストコーディングのために使用されることができるコンテキストインデックス増分の値の個数は、1個であることができる。
または、MTSインデックスのビンストリングのビンの全てがバイパスコーディングに基づいて導出されることもできる。ここで、バイパスコーディングは、均一な確率分布に基づいてコンテキストコーディングを行うことを表すこともでき、コンテキストコーディングのアップデート手順などが省略されることにより、コーディング効率を向上させることができる。
レジデュアル情報は、レジデュアルサンプルを導出するために利用される情報を表すことができ、レジデュアルサンプルに関する情報、逆変換関連情報、及び/又は逆量子化関連情報を含むことができる。例えば、レジデュアル情報は、量子化された変換係数に関する情報を含むことができる。
デコード装置は、レジデュアル情報に基づいて現在ブロックに対する変換係数を導出する(S1110)。例えば、デコード装置は、レジデュアル情報に含まれた前記量子化された変換係数に関する情報に基づいて現在ブロックに対する量子化された変換係数を導出できる。例えば、デコード装置は、前記量子化された変換係数に対して逆量子化を行って現在ブロックに対する変換係数を導出できる。
デコード装置は、MTSインデックス及び変換係数に基づいて現在ブロックのレジデュアルサンプルを生成する(S1120)。例えば、前記レジデュアルサンプルは、前記変換係数及び前記MTSインデックスにより表される変換カーネルセットに基づいて生成されることができる。すなわち、デコード装置は、前記MTSインデックスにより表される変換カーネルセットを用いた逆変換を介して前記変換係数から前記レジデュアルサンプルを生成できる。ここで、MTSインデックスにより表される変換カーネルセットを用いた逆変換は、1次逆変換に含まれることができる。または、デコード装置は、変換係数からレジデュアルサンプルを生成の際、1次逆変換だけでなく、2次逆変換も利用することができる。この場合、デコード装置は、変換係数に2次逆変換を行って修正された変換係数を導出し、修正された変換係数に1次逆変換を行って前記レジデュアルサンプルを生成することもできる。
図11に図示していないが、例えば、デコード装置は、ビットストリームから予測モード/タイプ情報を含む予測関連情報を取得でき、予測モード/タイプ情報に基づいてイントラ予測またはインター予測を行って現在ブロックに対する予測サンプルを生成できる。また、例えば、デコード装置は、前記予測サンプル及び前記レジデュアルサンプルに基づいて復元サンプルを生成できる。また、例えば、前記復元サンプルに基づいて復元ブロックまたは復元ピクチャが導出され得る。
例えば、デコード装置は、ビットストリームまたはエンコードされた情報をデコードして前述した情報(または、シンタックス要素)の全部または一部を含む画像情報を取得することができる。また、前記ビットストリームまたはエンコードされた情報は、コンピュータ読み取り可能な格納媒体に格納されることができ、前述したデコード方法が行われるようにすることができる。
前述した実施形態において、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、該当実施形態は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、当業者であれば、流れ図に示すステップが排他的でなく、他のステップが含まれ、または、流れ図の1つまたはそれ以上のステップが本文書の実施形態の範囲に影響を及ぼさずに削除可能であることを理解することができる。
前述した本文書の実施形態による方法は、ソフトウェア形態で具現されることができ、本文書によるエンコード装置及び/またはデコード装置は、例えば、TV、コンピュータ、スマートフォン、セットトップボックス、ディスプレイ装置などの画像処理を行う装置に含まれることができる。
本文書において、実施形態がソフトウェアで具現される時、前述した方法は、前述した機能を遂行するモジュール(過程、機能など)で具現されることができる。モジュールは、メモリに格納され、プロセッサにより行われることができる。メモリは、プロセッサの内部または外部にあり、よく知られた多様な手段でプロセッサと連結されることができる。プロセッサは、ASIC(application-specific integrated circuit)、他のチップセット、論理回路及び/またはデータ処理装置を含むことができる。メモリは、ROM(read-only memory)、RAM(random access memory)、フラッシュメモリ、メモリカード、格納媒体及び/または他の格納装置を含むことができる。即ち、本文書で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われることができる。例えば、各図面で示す機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラまたはチップ上で具現されて行われることができる。この場合、具現のための情報(例えば、information on instructions)またはアルゴリズムがデジタル格納媒体に格納されることができる。
また、本文書の実施形態が適用されるデコード装置及びエンコード装置は、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信のようなリアルタイム通信装置、モバイルストリーミング装置、格納媒体、カムコーダ、注文型ビデオ(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、VR(virtual reality)装置、AR(argumente reality)装置、画像電話ビデオ装置、運送手段端末(例えば、車両(自律走行車両を含む)端末、飛行機端末、船舶端末等)、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために使われることができる。例えば、OTTビデオ(Over the top video)装置として、ゲームコンソール、ブルーレイプレーヤ、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recorder)などを含むことができる。
また、本文書の実施形態が適用される処理方法は、コンピュータで行われるプログラムの形態で生産されることができ、コンピュータが読み取り可能な記録媒体に格納されることができる。また、本文書の実施形態によるデータ構造を有するマルチメディアデータもコンピュータが読み取り可能な記録媒体に格納されることができる。前記コンピュータが読み取り可能な記録媒体は、コンピュータで読みだすことができるデータが格納される全ての種類の格納装置及び分散格納装置を含む。前記コンピュータが読み取り可能な記録媒体は、例えば、ブルーレイディスク(BD)、汎用直列バス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ格納装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを介した送信)の形態で具現されたメディアを含む。また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に格納され、または、有無線通信ネットワークを介して送信されることができる。
また、本文書の実施形態は、プログラムコードによるコンピュータプログラム製品で具現されることができ、前記プログラムコードは、本文書の実施形態によりコンピュータで行われることができる。前記プログラムコードは、コンピュータにより読み取り可能なキャリア上に格納されることができる。
図13は、本文書において開示された実施形態が適用され得るコンテンツストリーミングシステムの例を示す。
図13に示すように、本文書の実施形態が適用されるコンテンツストリーミングシステムは、大別して、エンコードサーバ、ストリーミングサーバ、ウェブサーバ、メディア格納所、ユーザ装置、及びマルチメディア入力装置を含むことができる。
前記エンコードサーバは、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置から入力されたコンテンツをデジタルデータで圧縮してビットストリームを生成し、これを前記ストリーミングサーバに送信する役割をする。他の例として、スマートフォン、カメラ、カムコーダなどのようなマルチメディア入力装置がビットストリームを直接生成する場合、前記エンコードサーバは省略されることができる。
前記ビットストリームは、本文書の実施形態に適用されるエンコード方法またはビットストリーム生成方法により生成されることができ、前記ストリーミングサーバは、前記ビットストリームを送信または受信する過程で一時的に前記ビットストリームを格納することができる。
前記ストリーミングサーバは、ウェブサーバを介したユーザ要請に基づいてマルチメディアデータをユーザ装置に送信し、前記ウェブサーバは、ユーザにどのようなサービスがあるかを知らせる媒介体役割をする。ユーザが前記ウェブサーバに所望のサービスを要請すると、前記ウェブサーバは、これをストリーミングサーバに伝達し、前記ストリーミングサーバは、ユーザにマルチメディアデータを送信する。このとき、前記コンテンツストリーミングシステムは、別途の制御サーバを含むことができ、この場合、前記制御サーバは、前記コンテンツストリーミングシステム内の各装置間の命令/応答を制御する役割をする。
前記ストリーミングサーバは、メディア格納所及び/またはエンコードサーバからコンテンツを受信することができる。例えば、前記エンコードサーバからコンテンツを受信するようになる場合、前記コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、前記ストリーミングサーバは、前記ビットストリームを一定時間の間格納することができる。
前記ユーザ装置の例として、携帯電話、スマートフォン(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、デスクトップコンピュータ、デジタルサイニジがある。
前記コンテンツストリーミングシステム内の各サーバは、分散サーバとして運営されることができ、この場合、各サーバで受信するデータは、分散処理されることができる。
本明細書に記載された請求項は、多様な方式で組み合わせることができる。例えば、本明細書の方法請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の装置請求項の技術的特徴が組み合わせて方法で具現されることができる。また、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて装置で具現されることができ、本明細書の方法請求項の技術的特徴と装置請求項の技術的特徴が組み合わせて方法で具現されることができる。