以下、本発明に係る好適な実施の形態を添付の図面を参照して、詳細に説明する。添付された図面と一緒に以下に開示される詳細な説明は、本発明の例示的な実施形態を説明しようとするものであり、本発明が実施されることができる唯一の実施形態を示したいのではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかし、当業者は、本発明がこのような具体的な詳細事項がなくても実施できることが分かる。
いくつかの場合、本発明の概念が曖昧になることを避けるために、公知の構造及び装置は省略されるか、各構造及び装置の核心機能を中心としたブロック図の形式で示されることができる。
さらに、本発明で用いられる用語は、可能な限り、現在広く用いられる一般的な用語を選択したが、特定の場合には、出願人が任意に選定した用語を使用して説明する。そのような場合には、当該部分の詳細説明で、その意味を明確に記載するため、本発明の説明で使用された用語の名称のみで単純に解釈されてはならないものであり、その当該用語の意味まで把握して解釈されるべきであることを明らかにしておく。
以下の説明で用いられる特定の用語は、本発明の理解を助けるために提供されたものであり、このような特定の用語の使用は、本発明の技術的思想を逸脱しない範囲で他の形態に変更されることができる。例えば、信号、データ、サンプル、ピクチャ、フレーム、ブロックなどの場合、各コーディングの過程で適切に代替されて解釈されることがある。
以下、本明細書において「処理ユニット」は、予測、変換、及び/または量子化などのようなエンコード/デコードの処理過程が実行される単位を意味する。また、処理ユニットは、輝度(luma)成分の単位と色差(chroma)成分の単位を含む意味で解釈されることができる。例えば、処理ユニットは、ブロック(block)、コーディングユニット(coding unit、CU)、予測ユニット(prediction unit、PU)、または変換ブロック(transform unit、TU)に該当することができる。
なお、以下、本明細書でピクセルまたは画素などをサンプルとして通称する。そして、サンプルを用いるとすることは、ピクセル値または画素値などを用いることを意味することができる。
また、処理ユニットは、必ず正方形のブロックに限定されるものではなく、3つ以上の頂点を有する多角形の形で構成されることもある。
なお、以下、本明細書でピクセルまたは画素などをサンプルとして通称する。そして、サンプルを用いるとすることは、ピクセル値または画素値などを用いることを意味することができる。
図1は、本発明が適用される実施形態として、映像コーディングシステムの例を示す。
映像コーディングシステムは、ソースデバイ10及び受信デバイス20を含むことができる。ソースデバイ10は、エンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形態でデジタル貯蔵媒体またはネットワークを介して受信デバイス20に転達することができる。
ソースデバイ10は、ビデオソース11、エンコード装置12、送信機13を含むことができる。受信デバイス20は、受信機21、デコード装置22及びレンダラー23を含むことができる。エンコード装置10は、ビデオ/映像エンコード装置と呼ばれることができ、デコード装置20は、ビデオ/映像デコード装置と呼ばれることができる。送信機13は、エンコード装置12に含まれることができる。受信機21は、デコード装置22に含まれることができる。レンダラー23は、ディスプレイ部を含むこともでき、ディスプレイ部の別のデバイスまたは外部のコンポーネントで構成されることもある。
ビデオソースはビデオ/映像のキャプチャ、合成または生成過程などを通じてビデオ/映像を獲得することができる。ビデオソースはビデオ/映像キャプチャデバイス及び/またはビデオ/映像生成デバイスを含むことができる。ビデオ/映像キャプチャデバイスは、例えば、一つ以上のカメラ、以前にキャプチャされたビデオ/映像を含むビデオ/映像アーカイブなどを含むことができる。ビデオ/映像生成デバイスは、例えばコンピュータ、タブレット及びスマートフォンなどを含むことができ、(電子的に)ビデオ/映像を生成することができる。たとえば、コンピュータなどを通じて、仮想のビデオ/映像が生成されることができ、この場合、関連するデータが生成される過程で、ビデオ/映像キャプチャプロセスが代えることができる。
エンコード装置12は、入力ビデオ/映像をエンコードすることができる。エンコード装置12は、圧縮およびコーディング効率のために予測、変換、量子化などの一連の手順を実行することができる。エンコードされたデータ(エンコードされたビデオ/映像情報)は、ビットストリーム(bitstream)の形で出力されることができる。
転送部13は、ビットストリームの形態で出力され、エンコードされたビデオ/映像情報またはデータを、ファイルまたはストリーミング形態でデジタル貯蔵媒体またはネットワークを介して受信デバイスの受信部に転達することができる。デジタル貯蔵媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなど、様々な貯蔵媒体を含むことができる。転送部13は、予め決まれたファイルフォーマットを介してメディアファイルを生成するためのエレメントを含むことができ、放送/通信ネットワークを介した転送のためのエレメントを含むことができる。受信機21は、ビットストリームを抽出してデコード装置22に転達することができる。
デコード装置22は、エンコード装置12の動作に対応する逆量子化、逆変換、予測など一連の手順を実行して、ビデオ/映像をデコードすることができる。
レンダラー(renderer)23は、デコードされたビデオ/映像をレンダリングすることができる。レンダリングされたビデオ/映像は、ディスプレイ部を介してディスプレイされることができる。
図2は、本発明が適用される実施形態として、ビデオ/映像信号のエンコーディングが行われるエンコード装置の概略的なブロック図を示す。図2のエンコード装置100は、図1のエンコード装置12に対応することができる。
映像分割部110は、エンコード装置100に入力された入力画像(または、ピクチャ、フレーム)を一つ以上の処理ユニット(processing unit)に分割することができる。一例として、前記処理ユニットは、コーディングユニット(CU)と呼ばれることができる。この場合、コーディングユニットは、コーディングツリーユニット(coding tree unit、CTU)または最大コーディングユニット(largest coding unit、LCU)からQTBT(Quad-tree binary-tree)構造に基づいて再帰的に(recursively)に分割されることができる。例えば、一つのコーディングユニットは、クワッドツリー構造及び/またはバイナリツリー構造に基づいて、下位(deeper)デプスの複数のコーディングユニットに分割されることができる。この場合、例えば、クワッドツリー構造が先に適用され、バイナリツリー構造が、後で適用されることができる。またはバイナリツリー構造が先に適用されることもある。これ以上分割されない最終コーディングユニットをベースに、本発明に係るコーディング手順が実行されることができる。この場合、映像の特性に応じたコーディング効率などに基づいて、最大コーディングユニットがすぐに最終的なコーディングユニットとして用いることができ、または必要に応じてコーディングユニットは、再帰的に(recursively)より下位デプスのコーディングユニットに分割され、最適のサイズのコーディングユニットが最終コーディングユニットとして用いられる。ここでコーディング手順とは、後述する予測、変換、及び復元などの手続きを含むことができる。他の例として、前記処理ユニットは、予測ユニット(PU:Prediction Unit)または変換ユニット(TU:Transform Unit)をさらに含むことができる。この場合、前記予測ユニット及び前記変換ユニットは、それぞれ前述した最終コーディングユニットから分割またはパーティショニングすることができる。前記予測ユニットは、サンプル予測の単位で有り得、前記の変換ユニットは、変換係数を誘導する単位、及び/または変換係数からレジデュアル信号(residual signal)を誘導する単位で有り得る。
ユニットは、場合によってブロック(block)または領域(area)などの用語と混用して用いられる。一般的な場合、MxNブロックはM個の列とN個の行からなるサンプル又は変換係数(transform coefficient)の集合を示すことができる。
サンプルは、一般的に、ピクセルまたはピクセルの値を示すこともあり、輝度(luma)成分のピクセル/ピクセル値のみを示すこともあり、彩度(chroma)成分のピクセル/ピクセル値のみを示すこともできる。サンプルは、一つのピクチャ(または映像)をピクセル(pixel)またはペル(pel)に対応する用語として用いられる。
エンコード装置100は、入力映像信号(原本ブロック、原本サンプルアレイ)でインター予測部180またはイントラ予測部185から出力された予測信号(予測されたブロック、予測サンプルアレイ)を減算してレジデュアル信号(residual signal、残りのブロック、残りのサンプルアレイ)を生成することができ、生成されたレジデュアル信号は、変換部120に転送される。この場合、図示のように、エンコーダ100内で入力映像信号(原本ブロック、原本サンプルアレイ)で予測信号(予測ブロック、予測サンプルアレイ)を減算するユニットは減算部115と呼ばれることができる。予測部は処理対象ブロック(以下、現在ブロックと称する)の予測を行い、現在ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部は現在ブロックまたはCU単位でイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができる。予測部は各予測モードの説明で後述するように、予測モード情報など予測に関する様々な情報を生成し、エントロピーエンコーディング部190に転達することができる。予測に関する情報は、エントロピーエンコーディング部190でエンコードされてビットストリーム形態で出力することができる。
イントラ予測部185は、現在のピクチャ内のサンプルを参照して、現在ブロックを予測することができる。参照されるサンプルは、予測モードに応じて前記現在ブロックの周辺(neighbor)に位置することができ、または離れて位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。非方向性モードは、例えば、DCモード及びプランナーモード(Planarモード)を含むことができる。方向性モードでは、予測方向の細かい程度に応じて、例えば、33個の方向性予測モードまたは65個の方向性予測モードを含むことができる。ただし、これは例示として設定によってはそれ以上、またはそれ以下の数の方向性予測モードが用いられることができる。イントラ予測部185は、周辺ブロックに適用される予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部180は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックの予測されたブロックを誘導することができる。このとき、インター予測モードで転送される動き情報の量を減らすために周囲のブロックと現在ブロックの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。動き情報は、動きベクトル及び参照ピクチャインデックスを含むことができる。動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在のピクチャ内に存在する空間的周りのブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。参照ブロックを含む参照ピクチャと時間的周辺ブロックを含む参照ピクチャは同じであることもあり、異なることもある。前記時間的周辺ブロックは、同じ位置参照ブロック(collocated reference block)、同じ位置(CU colCU)などの名で呼ばれることができ、時間的周辺ブロックを含む参照ピクチャは、同じ位置ピクチャ(collocated picture、colPic)と呼ばれることもある。例えば、インター予測部180は、周辺ブロックに基づいて動き情報候補リストを構成し、前記現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出するためにどの候補が用いられるかを指示する情報を生成することができる。様々な予測モードに基づいて、インター予測が行われることができ、例えば、スキップモードとマージモードの場合に、インター予測部180は、周辺ブロックの動き情報を現在ブロックの動き情報として用いることができる。スキップ・モードの場合、マージモードとは異なり、レジデュアル信号が転送されないことがある。動き情報予測(motion vector prediction、MVP)モードの場合、周辺ブロックの動きベクトルを動きベクトル予測子(motion vector predictor)で用いて、動きベクトル差分(motion vector difference)をシグナリングすることによって、現在ブロックの動きベクトルを指示することができる。
インター予測部180またはイントラ予測部185を介して生成された予測信号は、復元信号を生成するために用いられるか、またはレジデュアル信号を生成するために用いられる。
変換部120は、レジデュアル信号に変換手法を適用して変換係数(transform coefficients)を生成することができる。たとえば、変換技法は、DCT(Discrete Cosine Transform)、DST(Discrete Sine Transform)、KLT(Karhunen-Loeve Transform)、GBT(Graph-Based Transform)、またはCNT(Conditionally Non-linear Transform)の内、少なくとも一つを含むことができる。ここで、GBTは、ピクセル間の関係情報をグラフで表現するとしたときに、このグラフから得られた変換を意味する。 CNTは、以前に復元されたすべてのピクセル(all previously reconstructepixel)を用いて予測信号を生成し、それに基づいて獲得される変換を意味する。また、変換プロセスは、正方形の同じ大きさを有するピクセルブロックに適用されることもあり、非正方形可変サイズのブロックにも適用することができる。
量子化部130は、変換係数を量子化してエントロピーエンコーディング部190に転送され、エントロピーエンコーディング部190は、量子化された信号(量子化された変換係数に関する情報)をエンコードして、ビットストリームとして出力することができる。量子化された変換係数に関する情報は、レジデュアル情報と呼ばれることができる。量子化部130は、係数スキャン順(scan order)に基づいて、ブロックの形の量子化された変換係数を1次元ベクトルの形で再整列することができ、1次元ベクトルの形の量子化された変換係数に基づいて、前記量子化された変換係数に関する情報を生成することもできる。エントロピーエンコーディング部190は、例えば指数ゴロム(exponential Golomb)、CAVLC(context-adaptive variable length coding)、CABAC(context-adaptive binary arithmetic coding)などのようなさまざまなエンコード方法を実行することができる。エントロピーエンコーディング部190は、量子化された変換係数のほか、ビデオ/映像復元に必要な情報(例えば構文要素(syntax elements)の値など)を一緒に、または別々にエンコードすることもできる。エンコードされた情報(例えば、ビデオ/映像情報)は、ビットストリームの形でNAL(network abstraction layer)ユニット単位で転送または貯蔵することができる。前記ビットストリームは、ネットワークを介して転送されることができ、またはデジタル貯蔵媒体に貯蔵することができる。ここで、ネットワークは、放送網、及び/またはネットワークなどを含むことができ、デジタル貯蔵媒体は、USB、SD、CD、DVD、Blu-ray、HDD、SSDなど、様々な貯蔵媒体を含むことができる。エントロピーエンコーディング部190から出力された信号は、伝送する伝送部(図示せず)及び/または貯蔵する貯蔵部(図示せず)が、エンコード装置100の内/外のエレメントとして構成されることができ、または転送部はエントロピーエンコーディング部190の構成要素で有り得る。
量子化部130から出力された量子化された変換係数は、予測信号を生成するために用いることができる。例えば、量子化された変換係数は、ループ内の逆量子化部140及び逆変換部150を介して逆量子化及び逆変換を適用することにより、レジデュアル信号を復元することができる。加算部155は、復元されたレジデュアル信号をインター予測部180またはイントラ予測部185から出力された予測信号に加えることで復元(reconstructed)信号(復元ピクチャ、復元ブロック、復元サンプルアレイ)が生成されることができる。スキップモードが適用された場合と同様に処理対象ブロックのレジデュアルがない場合、予測されたブロックが復元ブロックとして用いられる。加算部155は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在のピクチャ内の次の処理対象ブロックのイントラ予測のために用いられ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いることもある。
フィルタリング部160は、復元信号にフィルタリングを適用して主観的/客観的画質を向上させることができる。例えば、フィルタリング部160は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、修正された(復元ピクチャを復号ピクチャバッファ170に転送することができる。様々なフィルタリングの方法は、例えば、ジブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset)、適応的ループフィルタ(adaptive loop filter)、両方向フィルタ(bilateral filter)などを含むことができる。フィルタリング部160は、各フィルタリング方法の説明で後述するようにフィルタリングに関するさまざまな情報を生成し、エントロピーエンコーディング部190に転達することができる。フィルタリングに関する情報は、エントロピーエンコーディング部190でエンコードされてビットストリーム形態で出力することができる。
復号ピクチャバッファ170に 転送された修正された復元ピクチャは、インター予測部180から参照ピクチャとして用いられる。エンコード装置は、これにより、インター予測が適用される場合、エンコード装置100とデコード装置での予測ミスマッチを回避することができ、エンコーディング効率も向上させることができる。
復号ピクチャバッファ170は、修正された復元ピクチャをインター予測部180からの参照ピクチャとして用いるために貯蔵することができる。
図3は、本発明が適用される実施形態として、映像信号のデコードが行われるデコード装置の概略的なブロック図を示す。図3のデコード装置200は、図1のデコード装置22に対応することができる。
図3を参照すると、デコード装置200は、エントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、復号ピクチャバッファ(DPB)250、インター予測部260及びイントラ予測部265を含んで構成されることができる。インター予測部260及びイントラ予測部265を合わせて予測部と呼ばれることができる。つまり、予測部はインター予測部180及びイントラ予測部185を含むことができる。逆量子化部220、逆変換部230を合わせてレジデュアル処理部と呼ばれることができる。つまり、レジデュアル処理部は、逆量子化部220、逆変換部230を含むことができる。前述したエントロピーデコード部210、逆量子化部220、逆変換部230、加算部235、フィルタリング部240、インター予測部260及びイントラ予測部265は、実施形態に応じて一つのハードウェアコンポーネント(例えば、デコーダまたはプロセッサ)によって構成されることができる。また、復号ピクチャバッファ250は、実施形態に応じて一つのハードウェアコンポーネント(例えば、メモリまたはデジタル貯蔵媒体)によって実施されることができる。
ビデオ/映像情報を含むビットストリームが入力されると、デコード装置200は、図2のエンコード装置100からのビデオ/映像情報が処理されたプロセスに対応して映像を復元することができる。例えば、デコード装置200は、エンコード装置100で適用された処理ユニットを用いてデコードを行うことができる。したがってデコードの処理ユニットは、例えば、コーディングユニットで有り得、コーディングユニットは、コーディングツリーユニットまたは最大コーディングユニットからクワッドツリー構造及び/またはバイナリツリー構造に沿って分けることができる。そして、デコード装置200を介してデコード及び出力された復元映像信号は、再生装置を通じて再生することができる。
デコード装置200は、図2のエンコード装置100から出力された信号をビットストリーム形態で受信することができ、受信された信号は、エントロピーデコード部210を介してデコードすることができる。例えば、エントロピーデコード部210は、ビットストリームをファージング(解析)して映像復元(またはピクチャ復元)に必要な情報(例えば、ビデオ/映像情報)を導出することができる。例えば、エントロピーデコード部210は、指数ゴロム符号化、CAVLCまたはCABACなどのコーディング方法に基づいてビットストリーム内の情報をデコードして、映像復元に必要な構文要素の値、レジデュアルに関する変換係数の量子化された値を出力することができる。さらに詳細に、CABACエントロピーデコード方法は、ビットストリームから各構文要素に当該するビンを受信し、デコード対象構文要素の情報と周辺及びデコード対象ブロックのデコード情報、または前の段階でデコードされたシンボル/ビンの情報を用いてコンテキスト(context)モデルを決定し、決定されたコンテキストモデルに基づいてビン(bin)の発生確率を予測して、ビンの算術デコード(arithmetic decoding)を実行して、各構文要素の値に当該するシンボルを生成することができる。このとき、CABACエントロピーデコード方法は、コンテキストモデルを決定した後、次のシンボル/ビンの文脈モデルのためにデコードされたシンボル/ビンの情報を用いて、コンテキストモデルを更新することができる。エントロピーデコード部210でデコードされた情報の内、予測に関する情報は、予測部(インター予測部260及びイントラ予測部265)で提供され、エントロピーデコード部210からエントロピーデコードが行われたレジデュアル値、すなわち量子化された変換係数及び関連パラメータ情報は、逆量子化部220に入力されることができる。また、エントロピーデコード部210でデコードされた情報の内、フィルタリングに関する情報は、フィルタリング部240に提供されることができる。一方、エンコード装置100から出力された信号を受信する受信部(図示せず)がデコード装置200の内/外部エレメントとしてさらに構成されることがあり、または受信部は、エントロピーデコード部210の構成要素有り得る。
逆量子化部220では、量子化された変換係数を逆量子化して変換係数を出力することができる。逆量子化部220は、量子化された変換係数を2次元のブロックの形態に再整列することができる。この場合、エンコード装置100で実行された係数スキャン順序に基づいて再整列が実行されることができる。逆量子化部220は、量子化パラメータ(例えば、量子化段階サイズ情報)を用いて、量子化された変換係数の逆量子化を行い、変換係数(transform coefficient)を獲得することができる。
逆変換部230は、変換係数を逆変換してレジデュアル信号(レジデュアルブロック、レジデュアルサンプルアレイ)を獲得することになる。
予測部は現在ブロックの予測を行い、前記現在ブロックの予測サンプルを含む予測されたブロック(predicted block)を生成することができる。予測部はエントロピーデコード部210から出力された前記予測に関する情報に基づいて、前記現在ブロックにイントラ予測が適用されるか、またはインター予測が適用されるかを決定することができ、具体的なイントラ/インター予測モードを決定することができる。
イントラ予測部265は、現在ピクチャ内のサンプルを参照して、現在ブロックを予測することができる。参照されるサンプルは、予測モードに応じて、現在ブロックの周辺(neighbor)に位置することができ、または離隔して位置することもできる。イントラ予測で予測モードは、複数の非方向性モードと複数の方向性モードを含むことができる。イントラ予測部265は、周辺ブロックに適用される予測モードを用いて、現在ブロックに適用される予測モードを決定することもできる。
インター予測部260は、参照ピクチャ上で動きベクトルによって特定される参照ブロック(参照サンプルアレイ)に基づいて、現在ブロックの予測されたブロックを誘導することができる。このとき、インター予測モードで転送される動き情報の量を減らすために周囲のブロックと現在ブロックの間の動き情報の相関性に基づいて動き情報をブロック、サブブロック、またはサンプル単位で予測することができる。動き情報は、動きベクトルと参照ピクチャインデックスを含むことができる。動き情報は、インター予測方向(L0予測、L1予測、Bi予測など)の情報をさらに含むことができる。インター予測の場合、周辺ブロックは、現在のピクチャ内に存在する空間的周りのブロック(spatial neighboring block)と参照ピクチャに存在する時間的周辺ブロック(temporal neighboring block)を含むことができる。例えば、インター予測部260は、周辺ブロックに基づいて動き情報候補リストを構成し、受信した候補選択情報に基づいて、現在ブロックの動きベクトル及び/または参照ピクチャインデックスを導出することができる。様々な予測モードに基づいて、インター予測が行われることができ、予測に関する情報は、現在ブロックのインター予測のモードを指示する情報を含むことができる。
加算部235は、獲得されたレジデュアル信号をインター予測部260またはイントラ予測部265から出力された予測信号(予測されたブロック、予測サンプルアレイ)に加えることで復元信号(復元ピクチャ、復元ブロック、復元、サンプルアレイ)を生成することができる。スキップモードが適用された場合と同様に処理対象ブロックのレジデュアルがない場合は、予測されたブロックが復元ブロックとして用いられる。
加算部235は、復元部または復元ブロック生成部と呼ばれることができる。生成された復元信号は、現在のピクチャ内の次の処理対象ブロックのイントラ予測のために用いられ、後述するようにフィルタリングを経て、次のピクチャのインター予測のために用いられることもできる。
フィルタリング部240は、復元信号にフィルタリングを適用することにより、主観的/客観的画質を向上させることができる。例えば、フィルタリング部240は、復元ピクチャに様々なフィルタリング方法を適用して修正された(modified)復元ピクチャを生成することができ、修正された復元ピクチャを復号ピクチャバッファ250に転送することができる。様々なフィルタリングの方法は、例えば、ジブロッキングフィルタリング、サンプル適応的オフセット(sample adaptive offset、SAO)、適応的ループフィルタ(adaptive loop filter、ALF)、両方向フィルタ(bilateral filter)などを含むことができる。
復号ピクチャバッファ250に転送された修正された復元ピクチャは、インター予測部260によって参照ピクチャとして用いられる。
本明細書において、エンコード装置100のフィルタリング部160、インター予測部180及びイントラ予測部185で説明された実施形態は、それぞれのデコード装置のフィルタリング部240、インター予測部260及びイントラ予測部265にも同一または対応するように適用することができる。
図4は、本発明が適用される実施形態でとして、コンテンツストリーミングシステムの構造図である。
本発明が適用されるコンテンツストリーミングシステムは、大きくエンコードサーバ410、ストリーミングサーバ420、Webサーバ430、メディアストレージ440、ユーザ装置450及びマルチメディア入力デバイス460を含むことができる。
エンコードサーバ410は、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力デバイスから入力されたコンテンツをデジタルデータに圧縮してビットストリームを生成し、これをストリーミングサーバ420に転送する役割をする。他の例として、スマートフォン、カメラ、キャムコーダなどのようなマルチメディア入力装置460がビットストリームを直接生成する場合、エンコードサーバ410は、省略することができる。
ビットストリームは、本発明が適用されるエンコード方法またはビットストリームを生成する方法によって生成されることができ、ストリーミングサーバ420は、ビットストリームを転送または受信する過程で一時的にビットストリームを貯蔵することができる。
ストリーミングサーバ420は、Webサーバ430を介したユーザの要請に基づいて、マルチメディアデータをユーザ装置450に転送し、Webサーバ430は、ユーザにどのようなサービスがあるかを知らせる媒介の役割をする。ユーザがWebサーバ430に所望するサービスを要請すると、Webサーバ430は、これをストリーミングサーバ420に伝達し、ストリーミングサーバ420は、ユーザにマルチメディアデータを転送する。このとき、コンテンツストリーミングシステムは、別の制御サーバを含むことができ、この場合、制御サーバは、コンテンツストリーミングシステム内の各デバイス間のコマンド/応答を制御する役割をする。
ストリーミングサーバ420は、メディアストレージ440及び/またはエンコーディングサーバ410からコンテンツを受信することができる。たとえば、エンコードサーバ410からコンテンツを受信することになる場合、コンテンツをリアルタイムで受信することができる。この場合、円滑なストリーミングサービスを提供するために、ストリーミングサーバ420は、ビットストリームを一定時間の間貯蔵することができる。
ユーザデバイス450の例としては、、携帯電話、スマートフォン(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 、デスクトップコンピュータ、デジタルサイネージなどを有することができる。
コンテンツストリーミングシステム内の各サーバは、分散サーバで運営されることができ、この場合、各サーバで受信するデータは、分散処理することができる。
図5は、本発明が適用されることができる実施形態として、図5aは、QT(QuadTree、QT)、図5bは、BT(Binary Tree、BT)、図5cは、TT(Ternary Tree、TT)図5dは、AT(Asymmetric Tree、AT)によるブロック分割構造を説明するための図である。
ビデオコーディングにおいて1つのブロックは、QTに基づいて分割されることができる。また、QTによって分割された一つのサブブロック(subblock)はQTを用いて再帰的にさらに分割されることができる。もはやQT分割されないリーフブロック(leaf block)はBT、TTまたはATの内ね少なくとも一つの方式によって分割されることができる。 BTはhorizontal BT(2NxN、2NxN)とvertical BT(Nx2N、Nx2N)の二つの形態の分割を有することがある。 TTはhorizontal TT(2Nx1/2N、2NxN、2Nx1/2N)とvertical TT(1/2Nx2N、Nx2N、1/2Nx2N)の二つの形態の分割を有することがある。 ATはhorizontal-up AT(2Nx1/2N、2Nx3/ 2N)、horizontal-down AT(2Nx3/2N、2Nx1/2N)、vertical-left AT(1/2Nx2N、3/2Nx2N)、vertical-right AT(3/2Nx2N、1/ 2Nx2N)の四つの形態の分割を有することができる。それぞれのBT、TT、ATはBT、TT、ATを用いて再帰的にさらに分割されることができる。
図5aは、QT分割の例を示す。ブロックAは、QTによって4つのサブブロック(A0、A1、A2、A3)に分割されることができる。サブブロックA1は、再びQTによって4つのサブブロック(B0、B1、B2、B3)に分割されることができる。
図5bはBT分割の例を示す。 QTによってもはや分割されないブロックB3は、vertical BT(C0、C1)またはhorizontal BT(D0、D1)に分割されることができる。ブロックC0のように、それぞれのサブブロックは、horizontal BT(E0、E1)またはvertical BT(F0、F1)の形態のように再帰的にさらに分割されることができる。
図5cはTT分割の例を示す。 QTによってもはや分割されないブロックB3は、vertical TT(C0、C1、C2)またはhorizontal TT(D0、D1、D2)に分割されることができる。ブロックC1のように、それぞれのサブブロックは、horizontal TT(E0、E1、E2)またはvertical TT(F0、F1、F2)の形態のように再帰的にさらに分割されることができる。
図5dはAT分割の例を示す。 QTによってもはや分割されないブロックB3は、vertical AT(C0、C1)またはhorizontal AT(D0、D1)に分割されることができる。ブロックC1のように、それぞれのサブブロックは、horizontal AT(E0、E1)またはvertical TT(F0、F1)の形態のように再帰的にさらに分割されることができる。
一方、BT、TT、AT分割は一緒に使用して分割が可能である。たとえば、BTによって分割されたサブブロックは、TTまたはATによる分割が可能である。また、TTによって分割されたサブブロックは、BTまたはATによる分割が可能である。 ATによって分割されたサブブロックは、BTまたはTTによる分割が可能である。たとえば、horizontal BT分割以後、それぞれのサブブロックがvertical BTに分割されることができ、またはvertical BT分割以後、それぞれのサブブロックがhorizontal BTに分割されることもできる。この場合、分割順番は異なるが、最終的に分割される形は同じである。
また、ブロックが分割されると、ブロックを探索する順序を多様に定義することができる。一般的に、左側から右側に、上端から下端に探索を行い、ブロックを探索するということは、各分割されたサブブロックの追加のブロックを分割するかどうかを決定する順序を意味するか、ブロックがもはや分割されない場合、各サブブロックの符号化順序を意味するか、またはサブブロックで他の隣接ブロックの情報を参照するときの探索順序を意味することができる。
図5a乃至5dのような分割構造によって分割された処理ユニット(または、変換ブロック)ごとに変換が実行されることができ、特に、行(row)方向と列(column)方向別に分割され、変換行列が適用されることができる。本発明の実施形態に係ると、処理ユニット(または変換ブロック)の行方向または列方向の長さに応じて、他の変換タイプが用いられる。
変換は、レジデュアルブロックに適用されるが、これは最大限レジデュアルブロックを無相関化(decorrelate)し、低周波数に係数を集中させ、ブロックの先端に0の尾(zero tail)を作成するためである。JEMソフトウェアで変換パーツは2つの主要な機能(コア変換(core transform)、2次変換(secondary transform))を含む。コア変換は、レジデュアルブロックのすべての行と列に適用されるDCT(discrete cosine transform)及びDST(discrete sine transform)変換ファミリーで構成される。以後2次変換がコア変換の出力の左上側コーナー(top left corner)に追加的に適用することができる。類似に2次逆変換とコア逆変換の順序の逆変換が適用されることができる。まず、2次逆変換が係数ブロックの左上側コーナーに適用することができる。以後コア逆変換が2次逆変換の出力の行及び列に適用される。コア変換または逆変換は、1次変換または逆変換と指称されることができる。
図6及び図7は、本発明が適用される実施形態として、図6は、図2のエンコード装置100内の変換及び量子化部(120/130)、逆量子化及び逆変換部(140/150)の概略的なブロック図を示し、図7は、デコード装置200内の逆量子化及び逆変換部(220/230)の概略的なブロック図を示す。
図6を注意深く見ると、変換、及び量子化部(120/130)は、1次変換部(primary transform unit)121、2次変換部(secondary transform unit)122及び量子化部130を含むことができる。逆量子化及び逆変換部(140/150)は、逆量子化部140、逆2次変換部(inverse secondary transform unit)151及び逆1次変換部(inverse primary transform unit)152を含むことができる。
図7を 注意深く見ると、逆量子化及び逆変換部(220/230)は、逆量子化部220、逆2次変換部(inverse secondary transform unit)231と逆1次変換部(inverse primary transform unit)232を含むことができる。
本発明において、変換を実行するとき、複数の段階を経て変換を実行することができる。例えば、図6に示すように、1次変換(primary transform)、2次変換(secondary transform)の2段階を適用することができ、またはアルゴリズムに基づいて、それ以上の変換段階が用いられる。ここで、1次変換は、コア変換(core transform)と指称されることができる。
1次変換部121は、レジデュアル信号に対して1次変換を適用することができ、ここで、1次変換はエンコーダ及び/またはデコーダからテーブルに既定義されることができる。
2次変換部122は、1次変換された信号に対して2次変換を適用することができ、ここで、2次変換はエンコーダ及び/またはデコーダからテーブルに既定義されることができる。
一実施形態において、2次変換として非分離2次変換(non-separable secondary transform)(NSST)が条件的に適用することができる。例えば、NSSTは画面内予測ブロックの場合にのみ適用され、予測モードグループごとに適用可能な変換セットを有することができる。
ここで、予測モードグループは、予測方向の対称性に基づいて設定されることができる。例えば、予測モード52と予測モード16は、予測モード34(対角方向)に基づいて対称であるので、1つのグループを形成して、同じ変換セット(transform set)が適用されることができる。このとき、予測モード52の変換を適用するとき、入力データを転置(transpose)した後に適用し、これは予測モード16と変換セットが同じであるからである。
一方、プランナーモード(Planar mode)とDCモード(DC mode)の場合、方向の対称性が存在しないため、それぞれの変換セットを有し、該変換セットは、2つの変換で構成されることができる。残りの方向性モードに対しては、変換セットごとに3つの変換で構成されることができる。
量子化部130は、2次変換された信号に対して量子化を行うことができる。
逆量子化及び逆変換部(140/150)は、先に説明した過程を逆に実行し、重複する説明は省略する。
図7は、デコード装置200内の逆量子化及び逆変換部(220/230)の概略的なブロック図を示す。
図7を参照すると、逆量子化及び逆変換部(220/230)は、逆量子化部220、逆2次変換部(inverse secondary transform unit231及び逆1次変換部(inverse primary transform unit)232を含むことができる。
逆量子化部220は、量子化段階サイズ情報を用いて、エントロピーデコード(復号化)された信号から変換係数を獲得する。
逆2次変換部231においては、変換係数に対して逆2次変換を実行する。ここで、逆2次変換は、図6で説明した2次変換の逆変換を示す。
逆1次変換部232は、逆2次変換された信号(またはブロック)について逆1次変換を行い、残差信号(residual signal)を獲得することになる。ここで、逆1次変換は、図6で説明した前記1次変換(primary transform)の逆変換を示す。
HEVCに適用されるDCT-2と4x4 DST-4に加えて、適応的(または明示的)多重変換(adaptive multiple transformまたはexplicit multiple transform)(AMTまたはEMT)技法がインター及びイントラエンコーディングされたブロックのレジデュアルコーディングのために用いられる。 HEVCでの変換、その他のDCT/DSTファミリーからの多数の選択された変換が用いられる。 JEMから新しく紹介された変換行列は、DST-7、DCT-8、DST-1、及びDCT-5である。下の表1は、選択されたDST/DCTの基底関数を示す。
EMTは64より小さいか同じ幅と高さを有するCUに適用されることができ、EMTが適用されるかどうかは、CUレベルフラグによって制御することができる。CUレベルフラグが0であれば、DCT-2が残差(residue)をエンコーディングするために、CUに適用される。EMTが適用されるCU内ルマコーディングブロックに対し、2つの追加のフラグが用いられる水平及び垂直変換を識別するためにシグナリングされる。HEVCのように、JEMのブロックのレジデュアルは変換スキップモードでコーディングされることができる。イントラレジデュアルコーディングのために、他のイントラ予測モードの他のレジデュアル統計により、モード‐依存的変換候補の選択プロセスが用いられる。3つの変換サブセットが、以下の表2のように定義されており、変換サブセットは、表3に示すようにイントラ予測モードに基づいて変換サブセットが選択される。
サブセットコンセプトと一緒に、変換のサブセットは、CU-レベルEMT_CU_flagが1であるCUのイントラ予測モードを用いることにより、表2に基づいて、最初に確認される。以降、水平(EMT_TU_horizontal_flag)と垂直(EMT_TU_vertical_flag)変換のそれぞれについて、確認された変換のサブセット内の2つの変換候補の内から一つが、表3に基づいて、フラグを使用した明示的なシグナリングに基づいて選択される。
表4は、本発明が適用される実施形態として、AMT(adaptive multiple transform)が適用される変換設定グループ(transform configuration group)を示す。
表4を注意深く見ると、変換設定グループ(transform configuration group)は、予測モードに基づいて決定され、グループの数は、総6個(G0~G5)で有り得る。そして、G0~G4は、イントラ予測が適用される場合に当該し、G5は、インター予測によって生成された残差ブロックに適用される変換の組み合わせ(または変換セット、変換組み合わせセット)を示す。
一つの変換の組み合わせは、当該2Dブロックの行(row)に適用される水平変換(horizontal transform)(または行変換(row transform))と列(column)に適用される垂直変換(vertical transform)(または列変換(column transform))で行うことができる。
ここで、すべての変換設定のグループは、各4つの変換組み合わせの候補を有することができる。4つの変換の組み合わせ候補は0~3の変換組み合わせのインデックスを介して選択または決定することができ、エンコーダからデコーダへの変換組み合わせのインデックスをエンコードして転送することができる。
一実施形態で、イントラ予測を介して獲得された残差データ(または残差信号)は、イントラ予測モードに応じて、その統計的特性がそれぞれ異なることができる。したがって、表4のようにイントラ予測別に一般的なコサイン変換ではなく、別の変換が適用されることができる。本明細書において、変換タイプは、例えば、DCT-Type 2、DCT-II、DCT-2のように表記することができる。
表4注意深く見ると、35個のイントラ予測モードを用いる場合と67個のイントラ予測モードを用いる場合が現れる。各イントラ予測モードの列で区分された変換設定グループごとに複数の変換の組み合わせが適用されることができる。例えば、複数の変換の組み合わせは、4つの(行方向変換、列方向変換)の組み合わせで構成されることができる。具体例として、グループ0においては、行(水平)方向と列(縦)方向のすべてDST-7とDCT-5が適用されることができ、総4つの組み合わせが可能である。
各イントラ予測モードに対して、総4つの変換カーネルの組み合わせが適用されることができるので、その内、一つを選択するための変換組み合わせのインデックスが変換ユニット(transform unit)ごとに転送されることができる。本明細書において、変換組み合わせのインデックスは、AMTインデックス(AMT index)と呼ばれることができ、amt_idxで表現されることができる。
また、表4で提示された変換カーネル以外にも、残差信号の特性上、行方向と列方向の全てにDCT-2が最適な場合が発生することができる。したがって、コーディングユニット毎にAMTフラグを定義することにより、適応的に変換が適用されることができる。ここで、AMTフラグが0の場合、行方向と列方向の全てにDCT-2が適用され、AMTフラグが1の場合、AMTのインデックスを使用して、4つの組み合わせのいずれかが選択または決定することができる。
一実施形態で、AMTフラグが0の場合、1つの変換ユニットの変換係数の数が3より小さいと、表4の変換カーネルが適用されず、行方向と列方向の全てDST-7が適用されることができる。
一実施形態として、変換係数の値を先にパーシング(解析)して、変換係数の数が3より小さければ、AMTインデックスが解析されず、DST-7が適用されることにより付加情報転送量が減少することができる。
一実施形態として、AMTは、変換ユニットの幅と高さの全てが32以下の場合にのみ、適用することができる。
一実施形態で、表4は、オフライントレーニング(off-line training)を介して基に設定されることができる。
一実施形態でAMTインデックスは、水平変換と垂直変換の組み合わせを同時に指すことができる、1つのインデックスとして定義することができる。または、AMTインデックスは、別の水平変換インデックスと垂直変換インデックスで定義することができる。
図8は、AMT(adaptive multiple transform)が実行される過程を示すフローチャートである。
本明細書において、水平方向と垂直方向に対して分離して、変換が適用される分離可能な変換(separable transform)の実施形態が、基本的に説明されるが、変換の組み合わせは、非分離変換(non-separable transform)にも構成することができる。
または、分離可能な変換と非分離変換の混合にも変換の組み合わせが構成されることができる。この場合、非分離変換が用いられると、行/列別変換選択や水平/垂直方向別の選択は不要になり、分離可能な変換が選択される場合にのみ、表4の変換の組み合わせが用いられることができる。
また、本明細書で提案される方法は、1次変換や2次変換に関係なく適用することができる。つまり、2つの内、何れか一方にのみ適用されなければならないという制約がなく、両方に適用することができる。ここで、1次変換は残差ブロックを最初に変換するための変換を意味することができ、2次変換は、1次変換の結果として生成されたブロックに対し変換を適用するための変換を意味することができる。
まず、エンコード装置100は、現在ブロックに対応する変換グループを決定することができる(S805)。ここで、変換グループは、表4の変換グループを意味することができるが、本発明はこれに限定されず、他の変換の組み合わせで構成されることができる。
エンコード装置100は、変換グループ内の用いられる候補変換の組み合わせに対して変換を実行することができる(S810)。変換実行結果、エンコード装置100は、RD(rate distortion)コストが最小の変換の組み合わせを決定または選択することができる(S815)。エンコード装置100は、選択された変換の組み合わせに対応する変換組み合わせのインデックスをエンコードすることができる(S820)。
図9は、AMTが実行されるデコード過程を示すフローチャートである。
まず、デコード装置200は、現在ブロックのための変換グループを決定することができる(S905)。デコード装置200は、変換組み合わせのインデックスを解析することができ、ここで変換組み合わせのインデックスは、変換グループ内の複数の変換組み合わせの内、いずれか一つに対応することができる(S910)。デコード装置200は、変換組み合わせのインデックスに対応する変換組み合わせを誘導することができる(S915)。ここで、変換組み合わせは、表4で説明された変換組み合わせを意味することができるが、本発明はこれに限定されない。つまり、他の変換の組み合わせによる構成も可能である。
デコード装置200は、変換組み合わせに基づいて、現在ブロックに対して逆変換を行うことができる(S920)。変換組み合わせが行変換と列変換で構成される場合、行変換を先に適用した後、列変換を適用することができる。ただし、本発明はこれに限定されず、逆に適用されるか、または非分離変換で構成された場合には、直接非分離変換が適用されることができる。
一方、他の一実施形態として、変換グループを決定する過程と変換組み合わせのインデックスを解析する過程は、同時に実行することができる。
本発明の実施形態に係ると、前述した用語「AMT」は「MTS(multiple transform setまたはmultiple transform selection)」として再定義することができる。以下説明されるMTS関連シンタックス(syntax)とセマンティックス(semantics)はVVC(versatile video coding)標準文書JVET-K1001-v4で定義される。
本発明の実施形態において下記のように方向性モードについて2つのMTS候補と非方向性モードについて4つのMTS候補が用いられる。
A)非方向性モード(DC、プランナー)
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DST-7が垂直変換に、DCT-8が水平変換に用いられる。
MTSインデックスが2のとき、DCT-8が垂直変換に、DST-7が水平変換に用いられる。
MTSインデックスが3の時、DCT-8が水平及び垂直変換に用いられる。
B)水平グループモードに属するモード
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DCT-8が垂直変換に、DST-7が水平変換に用いられる。
C)垂直グループモードに属するモード
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる
MTSインデックスが1のとき、DST-7が垂直変換に、DCT-8が水平変換に用いられる。
ここで(67個のモードが用いられるVTM 2.0で)、水平グループモードは2から34番イントラ予測モードを含み、垂直モードは35番から66番イントラ予測モードを含む。
本発明の他の実施形態において、すべての イントラ予測モードに対して3つのMTS候補を用いる。
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DST-7が垂直変換に、DCT-8が水平変換に用いられる。
MTSインデックスが2のとき、DCT-8が垂直変換に、DST-7が水平変換に用いられる。
本発明の他の実施形態において、方向性予測モードに対して2つのMTS候補を、非方向性予測モードに対して3つのMTS候補を用いる。
A)非方向性モード(DC、プランナー)
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DST-7が垂直変換に、DCT-8が水平変換に用いられる。
MTSインデックスが2のとき、DCT-8が垂直変換に、DST-7が水平変換に用いられる。
B)水平グループモードに当該する予測モード
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DCT-8が垂直変換に、DST-7が水平変換に用いられる。
C)垂直グループモードに当該する予測モード
MTSインデックスが0の時、DST-7が水平及び垂直変換に用いられる。
MTSインデックスが1のとき、DST-7が垂直変換に、DCT-8が水平変換に用いられる。
本発明の他の実施形態において、一つのMTS候補(例えば、DST-7)をすべてのイントラモードに対して用いられる。この場合、マイナーなコーディング損失と共にエンコード時間が40%まで減少することができる。さらに、一つのフラグがDCT-2とDST-7の間で指示するために用いられる。
図10は、本発明の実施形態に基づいてMTSに基づいて逆変換過程を示すフローチャートである。
本発明が適用されるデコード装置200は、、sps_mts_intra_enabled_flagまたはsps_mts_inter_enabled_flagを獲得することができる(S1005)。ここで、sps_mts_intra_enabled_flagはcu_mts_flagがイントラコーディングユニットのレジデュアルコーディング構文に存在するかどうかを示す。たとえば、sps_mts_intra_enabled_flag = 0であれば、cu_mts_flagがイントラコーディングユニットのレジデュアルコーディング構文に存在せず、sps_mts_intra_enabled_flag = 1であれば、cu_mts_flagがイントラコーディングユニットのレジデュアルコーディング構文に存在する。そして、sps_mts_inter_enabled_flagはcu_mts_flagがインターコーディングユニットのレジデュアルコーディング構文に存在するかどうかを示す。たとえば、sps_mts_inter_enabled_flag = 0であれば、cu_mts_flagがインターコーディングユニットのレジデュアルコーディング構文に存在せず、sps_mts_inter_enabled_flag = 1であれば、cu_mts_flagがインターコーディングユニットのレジデュアルコーディング構文に存在する。
デコード装置200は、sps_mts_intra_enabled_flagまたはsps_mts_inter_enabled_flagに基づいてcu_mts_flagを獲得することができる(S1010)。たとえば、sps_mts_intra_enabled_flag = 1またはsps_mts_inter_enabled_flag = 1のとき、デコード装置200は、cu_mts_flagを獲得することができる。ここで、cu_mts_flagは、MTSがルマ変換ブロックのレジデュアルサンプルに適用されるかどうかを示す。たとえば、cu_mts_flag = 0であると、MTSがルマ変換ブロックのレジデュアルサンプルに適用されず、cu_mts_flag = 1であればMTSがルマ変換ブロックのレジデュアルサンプルに適用される。
デコード装置200は、cu_mts_flagに基づいてmts_idxを獲得することができる(S1015)。たとえば、cu_mts_flag = 1のとき、デコード装置200は、mts_idxを獲得することができる。ここで、mts_idxはどの変換カーネルが現在変換ブロックの水平及び/または垂直方向に沿ったルマレジデュアルサンプルに適用されるかを示す。
たとえば、mts_idxについて、本明細書で説明される実施形態の内、少なくとも1つが適用されることができる。
デコード装置200は、mts_idxに対応する変換カーネルを誘導することができる(S1020)。たとえば、mts_idxに対応する変換カーネルは、水平変換及び垂直変換に区分されて定義することができる。
一例として、現在ブロックにMTSが適用される場合(つまり、cu_mts_flag = 1)、デコード装置200は、現在ブロックのイントラ予測モードに基づいてMTS候補を構成することができる。この場合、図10のデコードフローチャートにMTS候補を構成する段階がさらに含まれることができる。そして、デコード装置200は、構成されたMTS候補の内からmts_idxを用いて、現在ブロックに適用されるMTS候補を決定することができる。
他の一例として、水平変換および垂直変換は、互いに異なる変換カーネルが適用されることができる。ただし、本発明はこれに限定されず、前記水平変換及び垂直変換は、同じ変換カーネルが適用されることもある。
そして、デコード装置200は、変換カーネルに基づいて逆変換を行うことができる(S1025)。
また、本文書でMTSは、AMTまたはEMTとも表現することができ、同様に、mts_idx図AMT_idx、EMT_idx、AMT_TU_idx EMT_TU_idxなどのような表現することができ、本発明は、このような表現に限定されない。
また、本発明において、MTSフラグに基づいてMTSが適用される場合とそうでない場合とを区別して説明するが、本発明は、このような表現に制限されるものではない。例えば、MTSを適用するか否かは、予め定義された特定変換タイプ(基本変換タイプ、デフォルト変換タイプなどに称されてもよい)以外の別の変換タイプ(又は、変換カーネル)を使用するか否かと同一の意味であり得る。もし、MTSが適用される場合、基本変換タイプ以外の別の変換タイプ(例えば、複数の変換タイプのいずれか1つ又は2つ以上の組み合わせられた変換タイプ)が変換に利用され、MTSが適用されない場合、基本変換タイプが変換に利用されることができる。一実施形態において、前記基本変換タイプは、DCT2に設定(又は、定義)されることができる。
一例として、現在変換ブロックにMTSが適用されるか否かを示すMTSフラグシンタックスと、MTSが適用される場合に前記現在ブロックに適用される変換タイプを示すMTSインデックスシンタックスが個別にエンコーダからデコーダに送信されることもあり、他の一例として、現在変換ブロックにMTSが適用されるか否か及びMTSが適用される場合に前記現在ブロックに適用される変換タイプを両方とも含むシンタックス(例えば、MTSインデックス)がエンコーダからデコーダに送信されることもある。すなわち、後者の実施形態において、前述した基本変換タイプを含む全体変換タイプグループ(又は、変換タイプセット)内で現在変換ブロック(又は、ユニット)に適用される変換タイプを示すシンタックス(又は、シンタックス要素)がエンコーダからデコーダに送信されることがある。
従って、その表現にもかかわらず現在変換ブロックに適用される変換タイプを示すシンタックス(MTSインデックス)はMTSを適用するか否かに関する情報を含むことができる。言い換えると、後者の実施形態においてMTSフラグなしにMTSインデックスのみがシグナリングされるため、この場合は、MTSにDCT2が含まれると解釈できるが、本発明においては、DCT2を適用する場合をMTSを適用しないものと記述してもよく、それにもかかわらずMTSに関する技術的範囲は当該定義内容に限定されない。
図11は、本発明の実施形態に基づいてMTSに基づいてデコードを実行する装置のブロック図である。
本発明が適用されるデコード装置200は、シーケンスパラメータ獲得部1105、MTSフラグ獲得部1110、MTSインデックス獲得部1115、及び変換カーネル誘導部1120を含むことができる。
シーケンスパラメータ獲得部1105は、sps_mts_intra_enabled_flagまたはsps_mts_inter_enabled_flagを獲得することができる。ここで、sps_mts_intra_enabled_flagはcu_mts_flagがイントラコーディングユニットのレジデュアルコーディング構文に存在するかどうかを示し、sps_mts_inter_enabled_flagはcu_mts_flagがインターコーディングユニットのレジデュアルコーディング構文に存在するかどうかを示す。具体的な例は、図10に関連する説明が適用されることができる。
MTSフラグ獲得部1110は、sps_mts_intra_enabled_flagまたはsps_mts_inter_enabled_flagに基づいてcu_mts_flagを獲得することができる。たとえば、sps_mts_intra_enabled_flag = 1またはsps_mts_inter_enabled_flag = 1のとき、MTSフラグ獲得部1110は、cu_mts_flagを獲得することができる。ここで、cu_mts_flagは、MTSがルマ変換ブロックのレジデュアルサンプルに適用されるかどうかを示す。具体的な例は、前記図10に関連する説明が適用されることができる。
MTSインデックス獲得部1115は、cu_mts_flagに基づいてmts_idxを獲得することができる。たとえば、cu_mts_flag = 1のとき、MTSインデックス獲得部1115は、mts_idxを獲得することができる。ここで、mts_idxはどの変換カーネルが現在の変換ブロックの水平及び/または垂直方向に沿ったルマレジデュアルサンプルに適用されるかを示す。具体的な例は、前記図10の説明が適用されることができる。
変換カーネル誘導部1120は、mts_idxに対応する変換カーネルを誘導することができる。そして、デコード装置200は、誘導された変換カーネルに基づいて逆変換を行うことができる。
モード‐依存的非分離2次変換(mode-dependent non-separable secondary transform、MDNSST)が紹介される。低複雑度を維持するために、MDNSSTは、1次変換後の後低周波数の係数にのみ適用される。また、主に低周波の係数に対し適用される非分離変換はLFNST(low frequency non-separable transform)と呼ばれることができる。変換係数ブロックの幅(width、W)と高さ(height、H)の全てが8以上であれば、8x8非分離2次変換が変換係数ブロックの左上側8x8の領域に適用される。そうでなければ、幅または高さが8より小さい場合、4x4非分離2次変換が適用され、4x4非分離2次変換は、変換係数ブロックの左上側min(8、W)x min(8、H)に実行ことができる。ここで、min(A、B)はAとBの内、さらに小さい値を出力する関数である。また、WxHはブロックのサイズとして、Wは幅(width)は、Hは高さ(height)を示す。
4x4及び8x8ブロックサイズについて総35x3つの非分離2次変換があることができ、ここで、35はイントラ予測モードによって特定される変換セットの数であり、3は各予測モードのNSST候補の数である。イントラ予測モードから変換セットへのマッピングは、以下の表5に示すように定義することができる。また、本発明の実施形態に係ると、イントラ予測モードに応じて、4つの非分離変換セットの中で。
変換セットの内、変換カーネルを指示するために、NSSTインデックス(NSST idx)がコーディングされることができる。NSSTが適用されない場合、0の値を有するNSSTインデックスがシグナリングされることができる。
図12及び図13は、本発明が適用される実施形態として、2次変換が適用されるエンコード/デコードフローチャートである。
JEMにおいて、2次変換(MDNSST)は、変換スキップモードでコーディングされたブロックに適用されない。MDNSSTインデックスがCUに対しシグナリングされ、0でなければ、MDNSSTはCU内で変換スキップモードでコーディングされた成分のブロックに対し用いられない。係数エンコーディングとNSSTインデックスコーディングを含む全体的なコーディング構造が、図12及び図13に示される。CBF(coded block flag)が係数エンコーディング及びNSSTコーディングするかどうかを決定するためにエンコードされる。図12及び図13において、CBFフラグはルマブロックcbfフラグ(cbf_luma flag)またはクロマブロックcbfフラグ(cbf_cb flagまたはcbf_cr flag)を示すことができる。 CBFフラグが1のときの変換係数がコーディングされる。
図12を参照すると、エンコード装置100は、CBFが1かどうかを確認する(S1205)。CBFが0である場合、エンコード装置100は、変換係数のエンコード及びNSSTインデックスのエンコーディングを実行しない。CBFが1である場合、エンコード装置100は、変換係数のエンコーディングを行う(S1210)。以後、エンコード装置100は、NSSTインデックスコーディングするかどうかを決定し、(S1215)、NSSTインデックスコーディングを行う(S1220)。NSSTインデックスコーディングが適用されない場合、エンコード装置100は、NSSTを適用していない状態に変換手順を終了し、その後の段階(例えば、量子化)を実行することができる。
図13を参照すると、デコード装置200は、CBFが1かどうかを確認する(S1305)。CBFが0である場合、デコード装置200は、変換係数のデコード及びNSSTインデックスデコードを実行していない。CBFが1である場合、デコード装置200は、変換係数のデコードを行う(S1310)。以後、デコード装置200は、NSSTインデックスコーディングするかどうかを決定し、(S1315)、NSSTインデックスを解析する(S1320)。
NSSTは、1次変換が適用されたブロック(HEVCの場合TU)全体に対して適用されるものではなく左上側8x8領域または4x4の領域に対して適用することができる。一例として、ブロックのサイズ我8x8以上の場合、8x8 NSSTが適用され、8x8未満の場合、4x4 NSSTが適用されることができる。また、8x8 NSSTが適用される場合、4x4ブロックごとに4x4 NSSTが適用されることができる。8x8 NSSTと4x4 NSSTすべて前述した変換セットの構成に応じて決定されることができ、非分離変換であるだけ8x8 NSSTは、64個の入力データと64個の出力データを有し、4x4 NSSTは16個の入力と16個の出力を有することができる。
図14及び図15は、本発明が適用される実施形態として、図14は、ギブンス回転(Givens rotation)を説明するための図を示し、図15は、ギブンス回転層と置換(permutation)で構成された4x4 NSSTでの一ラウンド(round)の構成を示す。
8x8 NSSTと4x4 NSSTすべてギブンス回転の階層的組み合わせで構成されることができる。一つのギブンス回転に当該する行列は、数学式1と同じであり、行列積を図で表現すると、図14と同じである。
図14において、ギブンス回転によって出力されるtmとtnは、数学式2のように計算することができる。
図14のように一つのギブンス回転は、2つのデータを回転させるので、64個のデータ(8x8 NSSTの場合)または16個のデータ(4x4 NSSTの場合)の処理のために、それぞれ32個、または8個のギブンスの回転が必要である。したがって、32個または8個のギブンス回転の束がギブンス回転層(Given rotation layer)を形成することができる。図15に示すように、一つのギブンス回転層の出力データが置換(シャッフル)を介して次のギブンス回転層の入力データへ伝達される。図15に示すように 置換されるパターンは、規則的に定義され、4x4 NSSTの場合、4つのギブンス回転層及び対応する置換が一つのラウンドを形成する。4x4 NSSTは2回のラウンドで行われ、8x8 NSSTは4回のラウンドで実行される。互いに別のラウンドは、同じ置換パターンを用いるが適用されるギブンス回転角度は、それぞれ異なる。したがって、各変換を構成するすべてのギブンス回転の角度データの貯蔵が必要である。
最後の段階でギブンス回転層を経て出力されたデータに対して、最終的に一回の置換がさらに実行され、当該置換の情報は、変換ごとに別に貯蔵される。順方向(forward)NSSTの最後に、当該置換が行われ、逆方向(inverse)NSSTは、最初に当該逆方向置換が適用される。
逆方向NSSTは順方向NSSTで適用されたギブンス回転層と置換を逆の順序で行い、各ギブンス回転の角度に対してもマイナス(‐)の値をとることにより、回転させる。
RST (Reduced secondary transform)
図16は、本発明が適用される実施形態として、RSTの動作を示す。
一変換を示す直交(orthogonal)行列がNxNの形態を有するとしたとき、RT(reduced transform)は、N個の変換基底ベクトルの内からR個だけ残す(R <N)。変換係数を生成する順方向RTの行列は、数学式3のように定義することができる。
逆方向RTの行列は、順方向RT行列の転置(transpose)行列となるので、順方向RTと逆方向RTの適用を図示すれば、図16a及び図16bと同じであることができる。
1次変換が適用された変換係数のブロックの左上端8x8ブロックに適用されるRTは8x8 RSTと呼ばれることができる。数学式3で、Rの値を16に置いたとき、順方向8x8 RSTは16x64行列の形を有し、逆方向8x8 RSTは64x16の形態を有する。また、8x8 RSTに対しても、表5のような変換セットの構成が適用されることができる。つまり、表5のようにイントラ予測モードに応じた変換セットに基づいて8x8 RSTが決定することができる。一つの変換セットは、イントラ予測モードに応じて、2つまたは3つの変換で構成されるので、2次変換を適用しない場合まで含めて、最大4つの変換の内、いずれかが1つが選択されることができる(一つの変換は、恒等行列に該当することができる)。 4つの変換に対して、それぞれ0、1、2、3のインデックスが付与されたとき、NSSTインデックスに該当するシンタックス要素(syntax element)が変換係数のブロックごとにシグナリングされることで適用される変換が指定されることができる。例えば、0番インデックスは恒等行列、すなわち、2次変換が適用されない場合に割り当てることができる。結論として、NSSTインデックスを介して8x8左上端ブロックについて、JEM NSSTによると、8x8 NSSTが指定されることがあり、RST構成によれば、8x8 RSTが指定されることができる。
図17は、本発明が適用される実施形態として、逆方向スキャン順に基づいて64番目から17番目までの逆方向スキャンを実行する過程を示す図である。
数学式3のような順方向8x8 RSTが適用されると、16個の有効な変換係数が生成されるため、8x8の領域を構成する64個の入力データが16個の出力データに縮小され、2次元領域の観点によれば、1/4ほどの領域のみ有効な変換係数が満たされる。したがって、順方向8x8 RSTを適用することにより、獲得された16個の出力データが、図17の左上端の領域に満たされる。
図17で左上端4x4の領域が有効な変換係数が満たされるROI(region of interest)領域となり、残りの領域は空になる。空けられる領域には、0の値がデフォルトで満たすことができる。もし、図17のROI領域のほか、0でない有効な変換係数が見つかったら、8x8 RSTが適用されないことが確実であるので、該NSSTインデックスに該当コーディングが省略されることがある。逆に、図17のROI領域以外で0ではない変換係数が発見されないと(8x8 RSTが適用される場合、ROI以外の領域が0に満たされたとき)、8x8 RSTが適用されたこともあるので、NSSTインデックスがコーディングされることができる。このような条件的NSSTインデックスコーディングは0ではない、変換係数の存在の有無のチェックが必要であるのでレジデュアルコーディングプロセスの後に実行されることができる。
図18は、本発明が適用される実施形態として、単一変換指示子(single transform indicator)を用いたエンコードフローチャートの例を示す。
本発明の実施形態において、単一変換指示子(single transform indicator、STI)が紹介される。2つの変換(1次変換及び2次変換)を順次用いる代わりに、単一変換指示子が活性化されたとき(STI coding == 1)単一変換(single transform)が適用されることができる。ここで、単一変換は、どの種類の変換でもすることができる。例えば、単一変換は分離変換または非分離変換で有り得る。単一変換は、非分離変換から近似された変換で有り得る。単一変換インデックス(図18のST_idx)は、単一変換指示子が活性化されたときシグナリングされることができる。ここで、単一変換インデックスは使用可能な変換候補の内から適用される変換に該当する変換を指示することができる。
図18を参照すると、エンコード装置100は、CBFが1かどうかを決定する(S1805)。CBFが1である場合、エンコード装置100は、STIコーディングが適用されるかどうかを決定する(S1810)。STIコーディングが適用される場合、エンコード装置100は、STIインデックス(STI_Idx)をエンコードし(S1845)、変換係数のコーディングを行う(S1850)。STIコーディングが適用されない場合、エンコード装置100は、CUレベルでEMT(またはMTS)が適用されるかどうかを示すフラグ(EMT_CU_Flag)をエンコードする(S1815)。以後、エンコード装置100は、変換係数のコーディングを行う(S1820)。以後、エンコード装置100変換ユニット(TU)にEMTが適用されるかどうかを決定する(S1825)。TUにEMTが適用される場合、エンコード装置100は、TUに適用される1次変換のインデックス(EMT_TU Idx)をエンコードする(S1830)。以後、エンコード装置100は、NSSTが適用されるかどうかを決定する(S1835)。NSSTが適用される場合、エンコード装置100は、適用されるNSSTを指示するインデックス(NSST_Idx)をエンコードする(S1840)。
一例において、単一変換コーディングの条件が充足/活性化(例えば、STI_coding == 1)されると、単一変換インデックス(ST_Idx)がシグナリングされず、暗黙的に(implicitly)誘導されることができる。ST_idxはブロックサイズとイントラ予測モードに基づいて、暗黙的に決定されることができる。ここで、ST_idxは現在の変換ブロックに適用される変換(または変換カーネル)を指示することができる。
単一変換指示子は、以下の条件の内、1つまたは複数の条件が満足されると、活性化することができる(STI_coding == 1)。
1) ブロックサイズが4または8のように、あらかじめ決められた値に相当する。
2) ブロックの幅==ブロックの高さ(正方形ブロック)
3) DCまたはプランナーのように予め決定されたモードの内、いずれか一つのイントラ予測モードである。
別の例において、STIコーディングフラグは、単一変換が適用されるか否かを示すためにシグナリングすることができる。STIコーディングフラグはSTIコーディング値及びCBFに基づいてシグナリングされることができる。例えば、STIコーディングフラグはCBFが1であり、STIコーディングが活性化になるときシグナリングすることができる。さらにSTIコーディングフラグは、ブロックサイズ、ブロックの形(正方形ブロックまたは非正方形ブロック)、またはイントラ予測モードを考慮して、条件的にシグナリングされることができる。
係数コーディングの内、獲得された情報が用いられるために係数コーディングの後にST_idxが決定することができる。一例でST_idxは、ブロックサイズ、イントラ予測モード、及び0ではない係数(non-zero coefficient)の数に基づいて暗黙的に決定することができる。別の例において、ST_idxはブロックサイズ及び/またはブロックの形及び/またはイントラ予測モード、及び/または0ではない係数の数に基づいて、条件的にエンコード/デコードすることができる。別の例において、ST_idxシグナリングは、0ではない係数の分布(すなわち、0でない係数の位置)に依存して省略することができる。特に、0でない係数が左上側4x4領域でない領域で発見されると、ST_idxのシグナリングが省略されることができる。
図19は、本発明が適用される実施形態でとして、統一された変換指示子(unified transform indicator、UTI)を用いたエンコードフローチャートの例を示す。
本発明の実施形態において、統一された変換指示子が紹介される。UTIは、1次変換指示子と2次変換指示子を包括する。
図19を参照すると、エンコード装置100は、CBFが1かどうかを決定する(S1905)。 CBFが1である場合、エンコード装置100は、UTIコーディングが適用されるかどうかを決定する(S1910)。 UTIコーディングが適用される場合、エンコード装置100は、UTIインデックス(UTI_Idx)をエンコードし(S1945)、変換係数のコーディングを行う(S1950)。 UTIコーディングが適用されない場合、エンコード装置100は、CUレベルでEMT(またはMTS)が適用されるかどうかを示すフラグ(EMT_CU_Flag)をエンコードする(S1915)。以後、エンコード装置100は、変換係数のエンコーディングを行う(S1920)。以後、エンコード装置100変換ユニット(TU)にEMTが適用されるかどうかを決定する(S1925)。TUにEMTが適用される場合、エンコード装置100は、TUに適用される1次変換のインデックス(EMT_TU Idx)をエンコードする(S1930)。以後、エンコード装置100は、NSSTが適用されるかどうかを決定する(S1935)。NSSTが適用される場合、エンコード装置100は、適用されるNSSTを指示するインデックス(NSST_Idx)をエンコードする(S1940)。
UTIは、それぞれの予め決まれたユニット(CTUまたはCU)ごとにエンコーディングされることができる。
UTIコーディングモードは下の条件に依存することができる。
1) ブロックサイズ
2) ブロックの形態
3) イントラ予測モード
どのようにUTIからコア変換インデックスを誘導/抽出するかが予め定義される。どのようにUTIから2次変換インデックスを誘導/抽出するかが予め定義される。
UTIの構文構造は、選択的に用いられる。UTIは、CU(またはTU)サイズに依存することができる。例えば、さらに小さなCU(TU)が相対的に狭い範囲のUTIインデックスを有することができる。一例で、予め定義された条件(例えば、ブロックサイズが予め定義されたしきい値より小さい)が満足されると、UTIは、コア変換インデックスだけを指示することができる。
別の例で、2次変換が用いられることを指示されない場合(例えば、2次変換インデックス== 0または2次変換が既に決定された場合)UTIインデックスは、コア変換インデックスとして扱うことができる。同じように、コア変換インデックスが知られればUTIインデックスは2次変換インデックスとして扱われることができる。特に、イントラ予測モードとブロックサイズを考慮して、あらかじめ決定されたコアの変換が用いられることができる。
図20a及び図20bは、本発明が適用される実施形態でとして、UTIを使ったエンコードフローチャートの他の例を示す。
別の例において、変換エンコーディング構造は、図20a及び図20bに示すようにUTIインデックスコーディングが用いられる。ここで、UTIインデックスは係数エンコーディング前にエンコーディングされたり係数エンコーディングの後にコーディングされることができる。
図20aを参照すると、エンコード装置100は、CBFが1かどうかを確認する(S2005)。CBFが1であれば、エンコード装置100は、UTIインデックス(UTI_Idx)をコーディングし(S2010)、変換係数のコーディングを行う(S2015)。
図20bを参照すると、エンコード装置100は、CBFが1かどうかを確認する(S2055)。CBFが1であれば、エンコード装置100は、変換係数のコーディングを実行し、(S2060)、UTIインデックス(UTI_Idx)をコーディングする(S2065)。
本発明の他の実施形態において、変換指示子のデータ隠し(data hiding)及び暗黙的コーディング方法(implicit coding methods)が紹介される。ここで変換指示子はST_idx、UTI_idx、EMT_CU_Flag、EMT_TU_Flag、NSST_idxと変換カーネルを指示するために用いられる変換に関連するインデックスを含む。前述した変換指示子は、シグナリングされず、該情報が係数エンコーディングプロセスに挿入することができる(係数コーディングプロセスの内、抽出されることができる)。係数エンコーディングプロセスは次の部分を含むことができる。
- 最後のx位置(Last_position_x)、最後のy位置(Last_position_y)
- グループフラグ(Group flag)
- 意味マップ(significance map)
- 1より大きいかどうかを指示するフラグ(Greater_than_1_flag)
- 2より大きいかどうかを指示するフラグ(Greater_than_2_flag)
- 残りのレベルのコーディング(Remaining level coding)
- サインコーディング(Sign coding)
たとえば、変換指示子情報が、前述した係数コーディングプロセスの一つまたはそれ以上の者に挿入することができる。変換指示子情報を挿入するために一緒に考慮することできるものは以下の通りである。
- サインコーディングのパターン(Pattern of Sign coding)
- 残りレベルの絶対値(The absolute value of remaining level)
-1より大きいかどうかを指示するフラグの数(The number of Greater_than_1_flag)
- 最後のx位置及び最後のy位置の値(The value of Last_position_X and Last_position_Y)
前述したデータ隠し方法は、条件的に考慮することができる。たとえば、データ隠し方法は、0ではない係数の数に依存てきで有り得る。
また別の例において、NSST_idxとEMT_idxは依存的で有り得る。たとえば、EMT_CU_flagが0(または1)のとき、NSST_idxは0ではないことがある。この場合、NSST_idx-1がNSST_idxの代わりにシグナリングすることができる。
本発明の他の実施形態において、イントラ予測モードに基づいNSST変換セットのマッピングが、以下の表7のように紹介される。前述したように、以下の説明では、非分離変換の例としてNSSTを中心に説明するが、非分離変換についての他の知られている用語(例えば、LFNST)が用いられることができる。例えば、NSSTセット(NSST Set)、NSSTインデックスはLFNSTセット、LFNSTインデックスに置き換えて用いられる。また、本文書に説明されるRSTは、変換ブロックの少なくとも一部の領域(左上側4x4、8x8の領域または8x8ブロックで右‐下側4x4の領域を除外した残りの領域)に適用される正方形非分離変換行列で縮小された入力の長さ及び/または縮小された出力の長さを有する非正方形の変換行列を用いる非分離変換(例えば、LFNST)の例として、RSTまたLFNSTに置き換えて用いられる。
NSSTセットナンバーは、表8のように0から3の間で再配列されることができる。
NSST変換セットでは、要求されるメモリ空間を低減させるために(35の代わりに)、4つの変換セットが用いられる。
さらに、各変換セットごとに、さまざまな数の変換カーネルが以下のように用いられる。
ケースA:各変換セットごとに2つの使用可能な変換カーネルが用いられ、NSSTインデックス範囲は0~2である。たとえば、NSSTインデックスが0である場合、2次変換(デコーダに基づいて2次逆変換)が適用されないことがある。NSSTインデックスが1または2である場合、2次変換が適用されることができる。変換セットは、2つの変換カーネルを含むことができ、前記2つの変換カーネルに1または2のインデックスがマッピングされることができる。
表9を参照すると、0番から3番非分離変換(NSSTまたはLFNST)セットごとに2つの変換カーネルが用いられる。
ケースB:0番変換セットに対し2つの使用可能な変換カーネルを使用し、残りの変換セットに対し各々一つの変換カーネルを用いる。0番変換セット(DC、プランナー)に対し使用可能なNSSTインデックスは0~2である。しかし、他のモード(1、2、3番の変換セット)のNSSTインデックスは0~1である。
表10を参照すると、0番インデックスに対応する非分離変換(NSST)セットに対して2つの非分離変換カーネルが設定され、1、2、3番インデックスに対応する非分離変換(NSST)セットのそれぞれについて、1つの非分離変換カーネルが設定される。
ケースC:各変換セットごとに一つの変換カーネルを使用し、NSSTインデックス範囲は0~1である。
図21は、本発明が適用される実施形態として、変換を実行するエンコードフローチャートの例を示す。
エンコード装置100は、レジデュアルブロックについて1次変換を実行する(S2105)。1次変換は、コア変換に呼ばれることができる。実施形態として、エンコード装置100は、前述したMTSを用いて、1次変換を実行することができる。また、エンコード装置100は、MTSの候補の内から、特定MTSを指示するMTSインデックスをデコード装置200に転送することができる。このとき、MTS候補は、現在ブロックのイントラ予測モードに基づいて構成されることができる。
エンコード装置100は、2次変換の適用をするかどうかを決定する(S2110)。一例として、エンコード装置100は、1次変換されたレジデュアル変換係数に基づいて、2次変換の適用をするかどうかを決定することができる。たとえば、2次変換はNSSTまたはRSTで有り得る。
エンコード装置100は、2次変換を決定する(S2115)。このとき、エンコード装置100は、イントラ予測モードに応じて指定されたNSST(またはRST)変換セットに基づいて、2次変換を決定することができる。
また、一例として、エンコード装置100は、S2115段階に先立って、現在ブロックの大きさに基づいて、2次変換が適用される領域を決定することができる。
エンコード装置100は、S2115段階で決定された2次変換を用いて、2次変換を実行する(S2120)。
図22は、本発明が適用される実施形態として、変換を実行するデコードフローチャートの例を示す。
デコード装置200は、2次逆変換の適用をするかどうかを決定する(S2205)。たとえば、2次逆変換はNSSTまたはRSTで有り得る。一例として、デコード装置200は、エンコード装置100から受信された2次変換フラグに基づいて、2次逆変換の適用をするかどうかを決定することができる。
デコード装置200は、2次逆変換を決定する(S2210)。このとき、デコード装置200は、前述したイントラ予測モードに応じて指定されたNSST(またはRST)変換セットに基づいて、現在ブロックに適用される2次逆変換を決定することができる。
また、一例として、デコード装置200は、S2210段階に先立って、現在ブロックの大きさに基づいて、2次逆変換が適用される領域を決定することができる。
デコード装置200は、S2210段階で決定された2次逆変換を用いて、逆量子化されたレジデュアルブロックについて2次逆変換を実行する(S2215)。
デコード装置200は、2次逆変換されたレジデュアルブロックについて1次逆変換を実行する(S2220)。1次逆変換はコア逆変換と呼びことができる。実施形態として、デコード装置200は、前述したMTSを用いて、1次逆変換を行うことができる。また、一例として、デコード装置200は、S2220段階に先立って、現在ブロックにMTSが適用されるかどうかを決定することができる。この場合、図22のデコードフローチャートにMTSが適用されるかどうかを決定する段階がさらに含まれることができる。
一例として、現在ブロックにMTSが適用される場合(つまり、cu_mts_flag = 1)、デコード装置200は、現在ブロックのイントラ予測モードに基づいてMTS候補を構成することができる。この場合、図22のデコードフローチャートにMTS候補を構成する段階がさらに含まれることができる。そして、デコード装置200は、構成されたMTSの候補の内、特定のMTSを指示するmts_idxを用いて、現在ブロックに適用される1次逆変換を決定することができる。
図23は、本発明が適用される実施形態として、エンコード装置100内の変換部120の詳細ブロック図の例を示す。
本発明の実施形態が適用されるエンコード装置100は、1次変換部2310、2次変換適用可否決定部2320、2次変換決定部2330、2次変換部2340を含むことができる。
1次変換部2310は、レジデュアルブロックについて1次変換を実行することができる。1次変換は、コア変換に呼ばれることができる。実施形態として、1次変換部2310は、前述したMTSを用いて、1次変換を実行することができる。また、1次変換部2310は、MTSの候補の内から、特定MTSを指示するMTSインデックスをデコード装置200に転送することができる。このとき、MTS候補は、現在ブロックのイントラ予測モードに基づいて構成されることができる。
2次変換適用可否決定部2320は、2次変換を適用するかどうかを決定することができる。一例として、2次変換適用可否決定部2320は、1次変換されたレジデュアルブロックの変換係数に基づいて、2次変換の適用をするかどうかを決定することができる。たとえば、2次変換はNSSTまたはRSTで有り得る。
2次変換決定部2330は、2次変換を決定する。このとき、2次変換決定部2330は、前述したように、イントラ予測モードに応じて指定されたNSST(またはRST)変換セットに基づいて、2次変換を決定することができる。
また、一例として、2次変換決定部2330は、現在ブロックの大きさに基づいて、2次変換が適用される領域を決定することもできる。
2次変換部2340は、決定された2次変換を用いて、2次変換を実行することができる。
図24は、本発明が適用される実施形態として、デコード装置200内の逆変換部230の詳細ブロック図の例を示す。
本発明が適用されるデコード装置200は、2次逆変換適用可否決定部2410、2次逆変換決定部2420、2次逆変換部2430、1次逆変換部2440を含む。
2次逆変換適用可否決定部2410は、2次逆変換の適用をするかどうかを決定することができる。たとえば、2次逆変換はNSSTまたはRSTで有り得る。一例として、2次逆変換適用可否決定部2410は、エンコード装置100から受信された2次変換フラグに基づいて、2次逆変換の適用をするかどうかを決定することができる。他の一例として、2次逆変換適用可否決定部2410は、レジデュアルブロックの変換係数に基づいて、2次逆変換の適用をするかどうかを決定することもできる。
2次逆変換決定部2420は、2次逆変換を決定することができる。このとき、2次逆変換決定部2420は、イントラ予測モードに応じて指定されたNSST(またはRST)変換セットに基づいて、現在ブロックに適用される2次逆変換を決定することができる。
また、一例として、2次逆変換決定部2420は、現在ブロックの大きさに基づいて、2次逆変換が適用される領域を決定することができる。
また、一例として、2次逆変換部2430は、決定された2次逆変換を用いて、逆量子化されたレジデュアルブロックについて2次逆変換を行うことができる。
1次逆変換部2440は、2次逆変換されたレジデュアルブロックについて1次逆変換を行うことができる。実施形態として、1次逆変換部2440は、前述したMTSを用いて、1次変換を実行することができる。また、一例として、1次逆変換部2440は、現在ブロックにMTSが適用されるかどうかを決定することができる。
一例として、現在ブロックにMTSが適用される場合(つまり、cu_mts_flag = 1)、1次逆変換部2440は、現在ブロックのイントラ予測モードに基づいてMTS候補を構成することができる。そして、1次逆変換部2440は、構成されたMTSの候補の内から、特定のMTSを指示するmts_idxを用いて、現在ブロックに適用される1次変換を決定することができる。
図25は、本発明が適用される実施形態として、ビデオ信号を処理するためのフローチャートを示す。図25のフローチャートは、デコード装置200または逆変換部230によって実行されることができる。
まず、デコード装置200は、非分離変換インデックス及び現在ブロックの幅と高さに基づいて、現在ブロックの逆非分離変換の適用をするかどうかを決定することができる。例えば、デコード装置200は、非分離変換インデックスが0ではなく、現在ブロックの幅と高さがそれぞれ4以上の場合、前記非分離変換を適用するように決定することができる。もし非分離変換インデックスが0であるか、現在ブロックの幅または高さが4より小さい場合、デコード装置200は、逆方向の非分離変換を省略し、逆方向1次変換を実行することができる。
S2505段階において、デコード装置200は、現在ブロックのイントラ予測モードに基づいて、予め定義された非分離変換セットの内から、現在ブロックの非分離変換に用いられる非分離変換セットを指示する非分離変換セットインデックスを決定する。非分離変換セットインデックスは、表7または表8のように、イントラ予測モードの範囲に応じて設定される4つの変換セットにそれぞれ割り当てられるように設定されることができる。つまり、表7または表8のように、イントラ予測モードが0~1である場合、非分離変換セットインデックスは、第1インデックス値に決定され、イントラ予測モードが2~12または56~66であれば、非分離変換セットインデックスは、第2インデックス値に決定され、イントラ予測モードが13~23または45~55であれば、非分離変換セットインデックスは、第3インデックス値に決定され、イントラ予測モードが24~44であれば、非分離変換セットインデックスは、第4インデックス値に決定することができる。
ここで、予め定義された非分離変換セットは、表9のように、それぞれ2つの変換カーネルを含むことができる。また、予め定義された非分離変換セットは、表10または表11のように1つまたは2つの変換カーネルを含むこともできる。
S2510段階において、デコード装置200は、非分離変換セットインデックスによって指示される非分離変換セットに含まれた変換カーネルの内、現在ブロックの非分離変換インデックスによって指示される変換カーネルを非分離変換行列で決定する。たとえば、非分離変換セットインデックスのインデックス値のそれぞれについて、2つの非分離変換カーネルが設定されることができ、デコード装置200は、非分離変換セットインデックスに対応する2つの変換行列カーネルの内、非分離変換インデックスによって指示される変換カーネルに基づいて非分離変換行列を決定することができる。
S2515段階で、デコード装置200は、現在ブロックの幅及び高さに応じて決定される現在ブロックの左上側領域に対し非分離変換行列を適用する。たとえば、現在ブロックの幅と高さのすべてが8以上の場合、現在ブロックの左上側8x8の領域に対して非分離変換が適用され、現在ブロックの幅または高さが8より小さい場合、現在ブロックの4x4領域にについて、非分離変換が適用されることができる。非分離変換のサイズもまた非分離変換が適用される領域に対応して8x8または4x4に設定されることができる。
また、デコード装置200は、非分離変換が適用された現在ブロックに対して水平方向の変換と垂直方向の変換を適用することができる。ここで、水平方向の変換と垂直方向の変換は、現在ブロックに適用された予測モード及び変換行列の選択のためのMTSインデックスに基づいて決定することができる。
以下では、一次変換(primary transform)及び二次変換(secondary transform)を組み合わせて適用する方法を説明する。すなわち、本発明の実施形態においては、一次変換及び二次変換に用いられる変換を効率的に設計する方法を提案する。ここで、前記図1ないし図25で提案した方法が適用されてもよく、関連して重複する説明は省略する。
前述したように、一次変換はエンコーダを基準に残差ブロックに先に適用される変換を示す。二次変換が適用される場合、エンコーダは一次変換された残差ブロックに対して二次変換を行う。一方、二次変換が適用される場合、デコーダを基準に一次逆変換に先立って二次逆変換が行われる。デコーダは、二次逆変換された変換係数ブロックに対して一次逆変換を行うことにより残差ブロックを誘導することができる。
また、前述したように、二次変換として非分離変換が利用されてもよく、低い複雑度を維持するために、左上側の特定領域の低周波数の係数にのみ適用できる。このような、低周波数の係数に対して適用される二次変換は、NSST(Non-Separable Secondary Transform)、LFNST(low frequency non-separable transform)、RST(reduced secondary transform)と称されてもよい。また、前記一次変換はコア変換(core transform)と称されてもよい。
本発明の一実施形態において、一次変換に用いられる一次変換候補及び二次変換に用いられる二次変換カーネルは、様々な組み合わせで予め定義されてもよい。本明細書において、一次変換に用いられる一次変換候補はMTS候補と称されてもよいが、その名称に制限されない。一例として、一次変換候補は、水平及び垂直方向のそれぞれに適用される変換カーネル(又は、変換タイプ)の組み合わせであってもよく、前記変換カーネルは、DCT2、DST7及び/又はDCT8のいずれか1つであってもよい。言い換えると、一次変換候補は、DCT2、DST7及び/又はDCT8の少なくとも1つの組み合わせであり得る。以下で、具体的な例を挙げて説明する。
-組み合わせA
組み合わせAにおいては、次の表12のように、イントラ予測モードによって一次変換候補及び二次変換カーネルが定義される。
表12を参照すると、一例(Case1)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合(例えば、DC、プランナーモード)、4つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードの方向性に関係なく2つの変換カーネルを含むことができる。すなわち、前述したように、イントラ予測モードによって複数の二次変換カーネルセットが予め定義され、前記予め定義された複数の二次変換カーネルセットはそれぞれ2つの変換カーネルを含む。
また、一例(Case2)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合、4つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードが方向性を有する場合、1つの変換カーネルを含み、方向性を有さない場合、2つの変換カーネルを含むことができる。
また、一例(Case3)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合、4つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードの方向性に関係なく1つの変換カーネルを含むことができる。
-組み合わせB
組み合わせBにおいては、次の表13のように、イントラ予測モードによって一次変換候補及び二次変換カーネルが定義される。
表13を参照すると、一例(Case1)として、イントラ予測モードの方向性に関係なく、3つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードの方向性に関係なく2つの変換カーネルを含むことができる。すなわち、前述したように、イントラ予測モードによって複数の二次変換カーネルセットが予め定義され、前記予め定義された複数の二次変換カーネルセットはそれぞれ2つの変換カーネルを含むことができる。
また、一例(Case2)として、イントラ予測モードの方向性に関係なく、3つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードが方向性を有する場合、1つの変換カーネルを含み、方向性を有さない場合、2つの変換カーネルを含むことができる。
また、一例(Case3)として、イントラ予測モードの方向性に関係なく、3つの一次変換候補が使用される。このとき、二次変換候補は、イントラ予測モードの方向性に関係なく1つの変換カーネルを含むことができる。
-組み合わせC
組み合わせCにおいては、次の表14のように、イントラ予測モードによって一次変換候補及び二次変換カーネルが定義される。
表14を参照すると、一例(Case1)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合(例えば、DC、プランナーモード)、3つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードの方向性に関係なく2つの変換カーネルを含むことができる。すなわち、前述したように、イントラ予測モードによって複数の二次変換カーネルセットが予め定義され、前記予め定義された複数の二次変換カーネルセットはそれぞれ2つの変換カーネルを含むことができる。
また、一例(Case2)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合、3つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードが方向性を有する場合、1つの変換カーネルを含み、方向性を有さない場合、2つの変換カーネルを含むことができる。
また、一例(Case3)として、イントラ予測モードが方向性を有する場合、2つの一次変換候補が使用され、方向性を有さない場合、3つの一次変換候補が使用される。ここで、二次変換候補は、イントラ予測モードの方向性に関係なく1つの変換カーネルを含むことができる。
以上では複数の一次変換候補を使用する場合を中心に説明した。以下では、固定された一次変換候補を利用する場合に対する一次変換と二次変換の組み合わせを例にして説明する。
-組み合わせD
組み合わせDにおいては、次の表15のように、イントラ予測モードによって一次変換候補及び二次変換カーネルが定義される。
表15を参照すると、実施形態として、イントラ予測モードに関係なく1つの一次変換候補が固定的に使用される。例えば、前記固定された一次変換候補は、DCT2、DST7及び/又はDCT8の少なくとも1つの組み合わせであり得る。
一例(Case1)として、イントラ予測モードに関係なく、1つの一次変換候補が固定的に使用され、ここで、二次変換候補は、イントラ予測モードの方向性に関係なく2つの変換カーネルを含むことができる。すなわち、前述したように、イントラ予測モードによって複数の二次変換カーネルセットが予め定義され、前記予め定義された複数の二次変換カーネルセットはそれぞれ2つの変換カーネルを含むことができる。
また、一例(Case2) として、イントラ予測モードに関係なく1つの一次変換候補が固定的に使用され、ここで、二次変換候補は、イントラ予測モードが方向性を有する場合、1つの変換カーネルを含み、方向性を有さない場合、2つの変換カーネルを含むことができる。
また、一例(Case3)として、イントラ予測モードに関係なく1つの一次変換候補が固定的に使用され、ここで、二次変換候補はイントラ予測モードの方向性に関係なく1つの変換カーネルを含むことができる。
-組み合わせE
組み合わせEにおいては、次の表16のように、イントラ予測モードによって一次変換候補及び二次変換カーネルが定義される。
表16を参照すると、一次変換としてDCT2が適用される場合に限って、二次変換が定義される。言い換えれば、MTSが適用されない場合(すなわち、一次変換としてDCT2が適用される場合)、二次変換が適用可能である。前記図10で説明したように、本明細書において、MTSが適用される場合とそうでない場合とを区別して説明されるが、本発明はこのような表現に制限されるものではない。例えば、MTSを適用するか否かは、予め定義された特定変換タイプ(基本変換タイプ、デフォルト変換タイプなどに称されてもよい)以外の別の変換タイプ(又は、変換カーネル)を使用するか否かと同一の意味であり得る。もし、MTSが適用される場合、基本変換タイプ以外の別の変換タイプ(例えば、複数の変換タイプのいずれか1つ又は2つ以上の組み合わせの変換タイプ)が変換に利用され、MTSが適用されない場合、基本変換タイプが変換に利用されることがある。一実施形態において、前記基本変換タイプはDCT2に設定(又は、定義)されることがある。
一例(Case1)として、一次変換にDCT2が適用される場合、二次変換が適用可能であり、ここで、二次変換候補は、イントラ予測モードの方向性に関係なく2つの変換カーネルを含む。すなわち、前述したように、イントラ予測モードによって複数の二次変換カーネルセットが予め定義され、前記予め定義された複数の二次変換カーネルセットはそれぞれ2つの変換カーネルを含むことができる。
また、一例(Case2)として、一次変換にDCT2が適用される場合、二次変換が適用可能であり、ここで、二次変換候補はイントラ予測モードが方向性を有する場合、1つの変換カーネルを含み、方向性を有さない場合、2つの変換カーネルを含むことができる。
また、一例(Case3)として、一次変換にDCT2が適用される場合、二次変換が適用可能であり、ここで、二次変換候補はイントラ予測モードの方向性に関係なく1つの変換カーネルを含むことができる。
図26は、本発明が適用される実施形態によるビデオ信号の変換方法を例示するフローチャートである。
図26を参照すると、説明の便宜のためにデコーダを中心に説明するが、本発明はこれに限定されるものではなく、本実施形態によるビデオ信号に対する変換方法はエンコーダにおいても実質的に同一に適用できる。図26のフローチャートは、デコード装置200又は逆変換部230により行われる。
デコード装置200は、現在ブロックの一次変換(primary transform)に適用される一次変換カーネル(primary transform kernel)を示す第1シンタックス要素(syntax element)をパーシングする(S2601)。
デコード装置200は、前記第1シンタックス要素に基づいて前記現在ブロックに二次変換(secondary transform)が適用できるか否かを決定する(S2602)。
デコード装置200は、前記現在ブロックに二次変換が適用できる場合、前記現在ブロックの二次変換に適用される二次変換カーネル(secondary transform kernel)を示す第2シンタックス要素をパーシングする(S2603)。
デコード装置200は、前記第2シンタックス要素により示される二次変換カーネルを用いて前記現在ブロックの左上側の特定領域に対して二次逆変換を行うことにより、二次逆変換されたブロックを誘導する(S2604)。
デコード装置200は、前記第1シンタックス要素により示される一次変換カーネルを用いて前記二次逆変換されたブロックに対して一次逆変換を行うことにより、前記現在ブロックの残差ブロックを誘導する(S2605)。
前述したように、S2602ステップは、前記第1シンタックス要素が予め定義された第1変換カーネルを示す場合、前記現在ブロックに二次変換が適用できると決定することにより行われる。ここで、前記第1変換カーネルはDCT2に定義される。
また、前述したように、デコード装置200は、前記現在ブロックのイントラ予測モードに基づいて予め定義された二次変換カーネルセット(secondary transform kernel set)のうち前記現在ブロックの二次変換に用いられる二次変換カーネルセットを決定することができる。そして、前記第2シンタックス要素は、前記決定された二次変換カーネルセット内で前記現在ブロックの二次変換に適用される二次変換カーネルを示すことができる。
また、前述したように、前記予め定義された二次変換カーネルセットはそれぞれ2つの変換カーネルを含むことができる。
本発明の一実施形態において、MTS(Multiple Transform Set)が用いられるシンタックス構造の一例を説明する。
一例として、次の表17は、シーケンスパラメータセット(sequence parameter set)のシンタックス構造の一例を表す。
表17を参照すれば、本発明の実施形態に係るMTSの使用可能可否は、シーケンスパラメータセットシンタックスを介してシグナリングされることができる。ここで、sps_mts_intra_enabled_flagは、イントラコーディングユニットに対する下位レベルシンタックス(例えば、レシデュアルコーディングシンタックス、変換ユニットシンタックス)内にMTSフラグまたはMTSインデックスが存在するか否かを指示する。そして、sps_mts_inter_enabled_flagは、インターコーディングユニットに対する下位レベルシンタックス内にMTSフラグまたはMTSインデックスが存在するか否かを指示する。
また、他の一例として、次の表18は、変換ユニットシンタックス構造の一例を表す。
表18を参照すれば、cu_mts_flagは、MTSがルマ変換ブロックのレシデュアルサンプルに適用されるか否かを表す。例えば、cu_mts_flag=0であれば、MTSがルマ変換ブロックのレシデュアルサンプルに適用されず、cu_mts_flag=1であれば、MTSがルマ変換ブロックのレシデュアルサンプルに適用される。
前述したように、本発明において、MTSフラグに基づいてMTSが適用される場合と、そうでない場合とを区分して説明するが、本発明がこのような表現に制限されるものではない。例えば、MTSの適用可否は、予め定義された特定変換タイプ(基本変換タイプ、デフォルト変換タイプなどと称されることができる)以外の他の変換タイプ(または、変換カーネル)を使用するかの可否と同じ意味でありうる。仮に、MTSが適用される場合、基本変換タイプ以外の他の変換タイプ(例えば、複数の変換タイプのうち、いずれか1つ、または2つ以上の組み合わせられた変換タイプ)が変換に利用され、MTSが適用されない場合、基本変換タイプが変換に利用されることができる。一実施形態において、前記基本変換タイプは、DCT2に設定(または、定義)されることができる。
一例として、現在変換ブロックにMTSが適用されるか否かを指示するMTSフラグシンタックスと、MTSが適用される場合、前記現在ブロックに適用される変換タイプを指示するMTSインデックスシンタックスとが個別的にエンコーダからデコーダに送信されることができ、他の一例として、現在変換ブロックにMTSが適用されるか否か及びMTSが適用される場合、前記現在ブロックに適用される変換タイプを全て含むシンタックス(例えば、MTSインデックス)がエンコーダからデコーダに送信されることもできる。すなわち、後者の実施形態において、上述した基本変換タイプを含む全体変換タイプグループ(または、変換タイプセット)内で現在変換ブロック(または、ユニット)に適用される変換タイプを指示するシンタックス(または、シンタックス要素)がエンコーダからデコーダに送信されることができる。
したがって、その表現にもかかわらず、現在変換ブロックに適用される変換タイプを指示するシンタックス(MTSインデックス)は、MTS適用可否に関する情報を含むことができる。言い換えれば、後者の実施形態においてMTSフラグなしにMTSインデックスのみシグナリングされることができ、この場合は、MTSにDCT2が含まれることと解釈することができるが、本発明では、DCT2を適用する場合をMTSを適用しないことと記述することができ、それにもかかわらず、MTSに関する技術的範囲は、当該定義内容に限定されない。
また、他の一例として、次の表19は、レシデュアルユニットシンタックス構造の一例を表す。
表19を参照すれば、transform_skip_flag及び/又はmts_idxシンタックス(または、シンタックス要素)は、レシデュアルシンタックスを介してシグナリングされることができる。ただし、これは、1つの例示であって、本発明がこれに限定されるものではない。例えば、transform_skip_flag及び/又はmts_idxシンタックスは、変換ユニットシンタックスを介してシグナリングされることもできる。
以下では、前述した2次変換に利用可能な2次変換行列(secondary transform matrix)の具体的な実施形態を説明する。前述したように、前記2次変換は、非分離変換(non separable secondary transform、NSST)、LFNST(low frequency non-separable transform)、RST(reduced secondary transform)と称されることができる。
前述したように、本発明の実施形態において、2次変換を適用するにあたって、メモリ効率向上のために、4個の変換セット(または、2次変換セット)が使用され得る。一実施形態として、エンコーダ/デコーダは、4個の変換セットに各々0、1、2、3のインデックスを割り当てることができる。
また、前述したように、それぞれの変換セットは、あらかじめ定義された数の変換カーネルを願むことができる。一実施形態として、2次変換に用いられる4個の変換セットがエンコーダとデコーダとに予め定義されることができ、それぞれの変換セットは、1個または2個の変換行列(または、変換タイプ、変換カーネル)を含むことができる。
次の表20は、8×8領域に適用されることができる変換の一例を表す。
表20を参照すれば、変換行列の係数にスケーリング値として128がかけられた場合を例示する。表20において、g_aiNsst8×8[4][2][16][64]配列で1番目の入力の[4]は、変換セットの数を意味し(このとき、それぞれの変換セットは、インデックス0、1、2、3に区分されることができる)、2番目の入力の[2]は、それぞれの変換セットを構成する変換行列の数を意味し、3番目と4番目の入力の[16][64]は、16×64 RST(Reduced Secondary Transform)の行と列を意味する。
表20は、変換セットが2個の変換行列を含む場合を仮定するが、仮に、1個の変換行列を含む場合であれば、表20においてそれぞれの変換セットに対して特定順序の変換行列を使用するように設定することができる。例えば、変換セットが1個の変換行列を含む場合、エンコーダ/デコーダは、前記表20においてそれぞれの変換セット内で予め定義された、すなわち、1番目または2番目の変換行列を使用できる。
表20のRSTを適用する場合、エンコーダ/デコーダは、16個の変換係数が出力されるように構成(または、定義、設定)することができ、16×64行列のうち、m×64部分のみ適用することにより、m個の変換係数のみ出力されるように構成することもできる。例えば、エンコーダ/デコーダは、m=8に設定することにより、最上側から8×64行列のみを用いて8個の変換係数のみ出力するように構成することができる。このように、縮小された2次変換を適用することによって計算量を半分に減らすことができる。一実施形態として、エンコーダ/デコーダは、最悪の場合(Worst case)の計算量を減らすために、8×8変換ユニット(TU:transform unit)に対して8×64行列を適用できる。
次の表21は、4×4領域に適用されることができる変換の一例を表す。
表21を参照すれば、変換行列の係数にスケーリング値として128がかけられた場合を例示する。表21において、g_aiNsst4×4[4][2][16][16]配列で1番目の入力の[4」は、変換セットの数を意味し(このとき、それぞれの変換セットは、インデックス0、1、2、3に区分されることができる)、2番目の入力の[2」は、それぞれの変換セットを構成する変換行列の数を意味し、3番目と4番目の入力の[16][16」は、16×16 RST(Reduced Secondary Transform)の行と列を意味する。
表21は、変換セットが2個の変換行列を含む場合を仮定するが、仮りに、1個の変換行列を含む場合であれば、表21においてそれぞれの変換セットに対して特定順序の変換行列を使用するように設定することができる。例えば、変換セットが1個の変換行列を含む場合、エンコーダ/デコーダは、前記表21においてそれぞれの変換セット内で予め定義された、すなわち、1番目または2番目の変換行列を使用できる。
表21のRSTを適用する場合、エンコーダ/デコーダは、16個の変換係数が出力されるように構成(または、定義、設定)することができ、16×16行列のうち、m×16部分のみ適用することにより、m個の変換係数のみ出力されるように構成することもできる。例えば、エンコーダ/デコーダは、m=8に設定することにより、最上側から8×16行列のみを用いて8個の変換係数のみ出力するように構成することができる。このように、縮小された2次変換を適用することによって計算量を半分に減らすことができる。一実施形態として、エンコーダ/デコーダは、最悪の場合(Worst case)の計算量を減らすために、8×8変換ユニット(TU:transform unit)に対して8×64行列を適用できる。
一実施形態において、2次変換は、前記表20及び表21において例示する変換行列は、予め定義された条件によって左上端4×4、4×8、8×4領域(すなわち、TU)に対して適用されることができ、左上端4×4領域に対してのみ適用されることができる。4×8 TUと8×4 TUの場合、エンコーダ/デコーダは、2個の4×4領域に分けてそれぞれの分割された領域に指定された変換を適用できる。仮りに、2次変換が4×4領域に対してのみ適用されるように定義される場合、前記表21に定義された変換のみ適用(または、利用)することもできる。
一方、前記表20及び表21においてスケーリング値を128と仮定して変換行列の係数を定義したが、本発明がこれに制限されるものではない。例えば、表20及び表21は、スケーリング値を256に設定することにより、各々次の表22及び表23のように定義されることもできる。
前述したように、本発明の実施形態において、2次変換を適用するにあたって、メモリ効率向上のために、4個の変換セット(または、2次変換セット)が使用され得る。一実施形態として、エンコーダ/デコーダは、4個の変換セットに各々0、1、2、3のインデックスを割り当てることができる。
また、前述したように、それぞれの変換セットは、予め定義された数の変換カーネルを含むことができる。一実施形態として、2次変換に用いられる4個の変換セットがエンコーダとデコーダとに予め定義されることができ、それぞれの変換セットは、1個または2個の変換行列(または、変換タイプ、変換カーネル)を含むことができる。
以下では、2次変換に適用可能な様々な2次変換セット及び変換行列(または、変換タイプ、変換カーネル)の様々な種々の例示を見せる。前述した表20ないし表23と異なる様々な変換行列が細部的に定義され得るが、本実施形態では、説明の都合上、一般化された2次変換セットの構成方法とともに非方向性モード(例えば、DCモード、プラナーモード)を中心に例を挙げて説明する。
まず、具体的に、4×4領域に適用されることができる2次変換の例示を説明する。2次変換に利用可能な2次変換セットに対する以下の例示のうち、第1の例示及び第4の例示は、変換行列は、それぞれの変換セットが2個の変換行列で構成される実施形態に適用されることができる。第2の例示及び第3の例示の変換行列は、それぞれの変換セットは、それぞれの変換セットが1個の変換行列で構成される実施形態において適用されることができる。
特に、第1の例示は、前述した組み合わせD及び表15において説明した実施形態のCase1に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase1、組み合わせB及び表13において説明した実施形態のCase1、組み合わせC及び表14において説明した実施形態のCase1、または組み合わせE及び表16において説明した実施形態のCase1に適用されることができる。
また、特に、第2の例示の変換配列(すなわち、変換セット)は、前述した組み合わせD及び表15において説明した実施形態のCase3に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase3、組み合わせB及び表13において説明した実施形態のCase3、組み合わせC及び表14において説明した実施形態のCase3、または組み合わせE及び表16において説明した実施形態のCase3に適用されることができる。
前述した組み合わせA、B、C、D、Eは、MTS候補の数が3個以下である場合だけを扱っているが、1次変換で全てのイントラ予測モードに対して4個のMTS候補を全て適用するように構成することもできる。以下の第1ないし第4の例示は、全て4個のMTS候補を適用する場合にも利用されることができ、特に、第4の例示の変換配列は、4個のMTS候補を適用する場合にさらに適合することができる。
以後の第5ないし第7の例示の変換配列は、35個の変換セットを適用する場合に該当する。各イントラ予測モードに対して次の表24のように変換セットをマッピングする場合に適用されることができる。
表24において、NSSTセットインデックスは、変換セットインデックスを表す。表24のマッピング方法が適用される場合にも、前述した組み合わせAないしEに適用されることができる。すなわち、それぞれの組み合わせに対して上述した方法と同様に、第5ないし第8の例示に対しても適用されることができる。
第5及び第8の例示の変換配列は、それぞれの変換セットが2個の変換行列で構成される実施形態に適用されることができ、第6及び第7の例示の変換配列は、それぞれの変換セットが1個の変換行列で構成される実施形態に適用されることができる。
特に、第5の例示は、前述した組み合わせD及び表15において説明した実施形態のCase1に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase1、組み合わせB及び表13において説明した実施形態のCase1、組み合わせC及び表14において説明した実施形態のCase1、または組み合わせE及び表16において説明した実施形態のCase1に適用されることができる。
また、特に、第6及び第7の例示の変換配列(すなわち、変換セット)は、前述した組み合わせD及び表15において説明した実施形態のCase3に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase3、組み合わせB及び表13において説明した実施形態のCase3、組み合わせC及び表14において説明した実施形態のCase3、または組み合わせE及び表16において説明した実施形態のCase3に適用されることができる。
前述した組み合わせA、B、C、D、Eは、MTS候補の数が3個以下である場合だけを扱っているが、1次変換で全てのイントラ予測モードに対して4個のMTS候補を全て適用するように構成することもできる。以下の第5ないし第8の例示は、全て4個のMTS候補を適用する場合にも利用されることができ、特に、第8の例示の変換配列は、4個のMTS候補を適用する場合にさらに適合することができる。
以下の第1ないし第8の例示の変換配列のうち、4×4領域に適用されることができる変換例示は、全て128がスケーリング値でかけられた変換行列に該当する。以下の例示の変換配列は、共通的にg_aiNsst4×4[N1][N2][16][16]アレイで表現されることができる。ここで、N1は、変換セットの数を表す。ここで、N1は、4または35であり、インデックス0、1、...、N1-1に区分されることができる。N2は、各変換セットを構成する変換行列の数を表し(すなわち、1または2)、[16][16]は、16×16変換行列を表す。
以下の例示も同様に、ある変換セットが1個のtransformで構成された場合、それぞれの変換セットに対して特定順序の変換行列を使用するように設定することができる。例えば、変換セットが1個の変換行列を含む場合、エンコーダ/デコーダは、それぞれの変換セット内で予め定義された、すなわち、1番目または2番目の変換行列を使用できる。
最悪の場合(Worst case)の計算量を減らすために、エンコーダ/デコーダは、4×4 TUに対して8×16行列を適用できる。以下の例示の4×4領域に適用されることができる変換は、4×4 TU、4×M TU、M×4 TUに対して適用されることができ(M>4)、4×M TU及びM×4 TUに適用される場合、4×4領域に分けてそれぞれの指定された変換を適用したり、最大左上端4×8または8×4領域に対してのみ適用することもできる。また、左上端4×4領域に対してのみ適用されることができる。
一実施形態において、最悪の場合(Worst case)の計算量を減らすために、次のような方法が適用され得る。
例えば、エンコーダ/デコーダは、幅がWであり、高さがHであるブロックに対して、W>=8であり、H>=8である場合は、8×8領域に適用されることができる変換配列(または、変換行列、変換カーネル)を(例えば、16×64行列)左上端8×8領域に適用することができる。仮に、W=8であり、H=8である場合、エンコーダ/デコーダは、16×64行列のうち、8×64部分のみ適用することができる。この場合、2次変換の入力は、8個の変換係数で生成されることができ、当該領域で残りの係数は、0とみなされることができる。
また、例えば、幅がWであり、高さがHであるブロックに対して、WとHのうち1つが8より小さい場合(すなわち、4である場合)、エンコーダ/デコーダは、4×4領域に適用されることができる変換配列を適用できる。仮に、W=4であり、H=4である場合、エンコーダ/デコーダは、16×16行列のうち、8×16部分のみ適用することができる。この場合、2次変換の入力は、8個の変換係数で生成されることができ、当該領域で残りの係数は、0とみなされることができる。
一実施形態において、仮に、(W、H)=(4、8)または(8、4)である場合、エンコーダ/デコーダは、左上端4×4領域に対してのみ2次変換を適用できる。WまたはHが8より大きい場合、エンコーダ/デコーダは、左上端2個の4×4ブロックに対してのみ2次変換を適用する。すなわち、エンコーダ/デコーダは、最大(at most)左上端4×8または8×4領域までのみ4×4ブロック2個に分けて指定された変換行列を適用できる。
第1の例示
第1の例示は、次の表25のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第2の例示
第2の例示は、次の表26のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第3の例示
第3の例示は、次の表27のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第4の例示
第4の例示は、次の表28のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第5の例示
第5の例示は、次の表29のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第6の例示
第6の例示は、次の表30のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第7の例示
第7の例示は、次の表31のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第8の例示
第8の例示は、次の表32のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
以下では、8×8領域に適用されることができる2次変換の例示を説明する。2次変換に利用可能な2次変換セットに対する以下の例示のうち、第9の例示及び第12の例示は、変換行列は、それぞれの変換セットが2個の変換行列で構成される実施形態に適用されることができる。第10の例示及び第11の例示の変換行列は、それぞれの変換セットは、それぞれの変換セットが1個の変換行列で構成される実施形態において適用されることができる。
特に、第9の例示は、前述した組み合わせD及び表15において説明した実施形態のCase1に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase1、組み合わせB及び表13において説明した実施形態のCase1、組み合わせC及び表14において説明した実施形態のCase1、または組み合わせE及び表16において説明した実施形態のCase1に適用されることができる。
また、特に、第10の例示の変換配列(すなわち、変換セット)は、前述した組み合わせD及び表15において説明した実施形態のCase3に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase3、組み合わせB及び表13において説明した実施形態のCase3、組み合わせC及び表14において説明した実施形態のCase3、または組み合わせE及び表16において説明した実施形態のCase3に適用されることができる。
前述した組み合わせA、B、C、D、Eは、MTS候補の数が3個以下である場合だけを扱っているが、1次変換で全てのイントラ予測モードに対して4個のMTS候補を全て適用するように構成することもできる。以下の第9ないし第12の例示は、全て4個のMTS候補を適用する場合にも利用されることができ、特に、第12の例示の変換配列は、4個のMTS候補を適用する場合にさらに適合することができる。
以後の第13ないし第16の例示の変換配列は、35個の変換セットを適用する場合に該当する。各イントラ予測モードに対して前述した表24のように変換セットをマッピングする場合に適用されることができる。
表24において、NSSTセットインデックスは、変換セットインデックスを表す。表24のマッピング方法が適用される場合にも、前述した組み合わせAないしEに適用されることができる。すなわち、それぞれの組み合わせに対して上述した方法と同様に、第13ないし第16の例示に対しても適用されることができる。
第13及び第16の例示の変換配列は、それぞれの変換セットが2個の変換行列で構成される実施形態に適用されることができ、第14及び第15の例示の変換配列は、それぞれの変換セットが1個の変換行列で構成される実施形態に適用されることができる。
特に、第13の例示は、前述した組み合わせD及び表15において説明した実施形態のCase1に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase1、組み合わせB及び表13において説明した実施形態のCase1、組み合わせC及び表14において説明した実施形態のCase1、または組み合わせE及び表16において説明した実施形態のCase1に適用されることができる。
また、特に、第14及び第15の例示の変換配列(すなわち、変換セット)は、前述した組み合わせD及び表15において説明した実施形態のCase3に適用されることができ、その上、組み合わせA及び表12において説明した実施形態のCase3、組み合わせB及び表13において説明した実施形態のCase3、組み合わせC及び表14において説明した実施形態のCase3、または組み合わせE及び表16において説明した実施形態のCase3に適用されることができる。
前述した組み合わせA、B、C、D、Eは、MTS候補の数が3個以下である場合だけを扱っているが、1次変換で全てのイントラ予測モードに対して4個のMTS候補を全て適用するように構成することもできる。以下の第13ないし第16の例示は、全て4個のMTS候補を適用する場合にも利用されることができ、特に、第8の例示の変換配列は、4個のMTS候補を適用する場合にさらに適合することができる。
以下の第8ないし第16の例示の変換配列のうち、8×8領域に適用されることができる変換例示は、全て128がスケーリング値でかけられた変換行列に該当する。以下の例示の変換配列は、共通的にg_aiNsst8×8[N1][N2][16][64]アレイで表現されることができる。ここで、N1は、変換セットの数を表す。ここで、N1は、4または35であり、インデックス0、1、...、N1-1に区分されることができる。N2は、各変換セットを構成する変換行列の数を表し(すなわち、1または2)、[16][64]は、16×64 Reduced Secondary Transform(RST)を表す。
以下の例示も同様に、ある変換セットが1個のtransformで構成された場合、それぞれの変換セットに対して特定順序の変換行列を使用するように設定することができる。例えば、変換セットが1個の変換行列を含む場合、エンコーダ/デコーダは、それぞれの変換セット内で予め定義された、すなわち、1番目または2番目の変換行列を使用できる。
当該RSTを適用すれば、16個の変換係数が出力されるが、16×64行列のうち、m×64部分のみ適用するようになると、m個の変換係数のみ出力されるように構成することができる。例えば、m=8にし、一番上から8×64行列だけをかけて8個の変換係数のみ出力する代わりに、計算量は半分に減らすことができる。
第9の例示
第9の例示は、次の表33のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第10の例示
第10の例示は、次の表34のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第11の例示
第11の例示は、次の表35のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第12の例示
第12の例示は、次の表36のように定義されることができる。4個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第13の例示
第13の例示は、次の表37のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
第14の例示
第14の例示は、次の表38のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第15の例示
第15の例示は、次の表39のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、1個の変換行列で構成されることができる。
第16の例示
第16の例示は、次の表40のように定義されることができる。35個の変換集合が定義され得るし、このとき、それぞれの変換セットは、2個の変換行列で構成されることができる。
図27は、本発明が適用される実施形態に係るビデオ信号の変換方法を例示するフローチャートである。
図27に示すように、説明の都合上、デコーダを中心に説明するが、本発明がこれに限定されるものではなく、本実施形態に係るビデオ信号に対する変換方法は、エンコーダでも実質的に同様に適用されることができる。図27のフローチャートは、デコード装置200または逆変換部230により行われることができる。
デコード装置200は、現在ブロックのイントラ予測モードに基づき、予め定義された2次変換セット(secondary transform sets)のうち、前記現在ブロックに適用される2次変換セットを決定する(S2701)。
デコード装置200は、前記決定された2次変換セット内で前記現在ブロックに適用される2次変換行列(secondary transform matrix)を指示する第1のシンタックス要素を取得する(S2702)。
デコード装置200は、前記第1のシンタックス要素により特定される2次変換行列を用いて、前記現在ブロックの左上端領域に対して2次逆変換を行うことによって2次逆変換 されたブロックを導く(S2703)。
デコード装置200は、前記現在ブロックの1次変換行列(primary transform matrix)を用いて前記2次逆変換されたブロックに対して1次逆変換を行うことにより、前記現在ブロックの残差ブロックを導く(S2704)。
前述したように、前記予め定義された2次変換セットは、各々2個の2次変換行列を含むことができる。
前述したように、前記S2704ステップは、前記現在ブロックの幅及び高さに基づいて、前記2次逆変換の入力長さ及び出力長さを決定するステップをさらに含むことができる。前述したように、前記現在ブロックの高さ及び幅が各々4である場合、前記非分離変換の入力長さは8、出力長さは16に決定されることができる。
前述したように、デコード装置200は、前記現在ブロックの1次変換に適用される1次変換行列を指示する第2のシンタックス要素をパーシングできる。そして、デコード装置200は、前記第2のシンタックス要素に基づいて前記現在ブロックに2次変換が適用され得るか否かを決定できる。
前述したように、前記2次変換が適用され得るか否かを決定するステップは、前記第2のシンタックス要素が予め定義された特定変換タイプを指示する場合、前記現在ブロックに2次変換が適用され得ることと決定することによって行われることができる。
前述したように、前記予め定義された特定変換タイプは、DCT2と定義されることができる。
図28は、本発明が適用される実施形態として、ビデオ信号を処理するための装置のブロック図の例を示す。図28のビデオ信号処理装置は、図1のエンコード装置又は図2のデコード装置に該当することができる。
映像信号を処理する映像処理装置2800は、映像信号を貯蔵するメモリ2820と、前記メモリと結合されながら、映像信号を処理するプロセッサ2810を含む。
本発明の実施形態に係るプロセッサ2810は、映像信号の処理のための少なくとも一つのプロセッシング回路で構成されることができ、映像信号をエンコードまたはデコードするためのコマンドを実行することにより、映像信号を処理することができる。つまり、プロセッサ2810は、前述したエンコードまたはデコード方法を実行することにより、元の映像データをエンコードしたり、エンコードされた映像信号をデコードすることができる。
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形で生産されることができ、コンピュータが読み取り可能な貯蔵媒体に貯蔵することができる。本発明に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み出しできる記録媒体に貯蔵することができる。前記コンピュータが判読可能な記録媒体は、コンピュータで読み取り可能なデータが貯蔵されるあらゆる種類のストレージデバイス及び分散ストレージデバイスを含む。前記コンピュータが判読可能な記録媒体は、例えば、ブルーレイディスク(BD)、ユニバー去るシリアルバス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ貯蔵装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを通じた伝送)の形で実現されたメディアを含む。また、エンコード方法で生成されたビットストリームが、コンピュータが読み取り可能な記録媒体に貯蔵したり、有無線通信ネットワークを介して転送されることができる。
また、本発明の実施形態は、プログラムコードによるコンピュータプログラム製品として実現されることができ、前記プログラムコードは、本発明の実施形態により、コンピュータ上で実行することができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に貯蔵することができる。
前記記述されたように、本発明で説明した実施形態は、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。例えば、各図で示した機能ユニットは、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはチップ上で実現されて実行されることができる。
また、本発明が適用されるデコーダとエンコーダは、マルチメディア放送送受信装置、モバイル通信端末、ホームシネマビデオ装置、デジタルシネマビデオ装置、監視用カメラ、ビデオ対話装置、ビデオ通信などのようなリアルタイム通信装置、モバイルストリーミング装置、貯蔵媒体、キャムコーダ、ビデオオンデマンド(VoD)サービス提供装置、OTTビデオ(Over the top video)装置、インターネットストリーミングサービス提供装置、3次元(3D)ビデオ装置、テレビ電話、ビデオ装置、及び医療用ビデオ装置などに含まれることができ、ビデオ信号またはデータ信号を処理するために用いられる。たとえば、OTTビデオ(Over the top video)装置では、ゲーム機、ブルーレイプレーヤー、インターネット接続TV、ホームシアターシステム、スマートフォン、タブレットPC、DVR(Digital Video Recoder)などを含むことができる。
また、本発明が適用される処理方法は、コンピュータで実行されるプログラムの形で生産されることができ、コンピュータが読み取り可能な貯蔵媒体に貯蔵することができる。本発明に係るデータ構造を有するマルチメディアデータもまた、コンピュータが読み出し可能な貯蔵媒体に貯蔵することができる。前記コンピュータが判読可能な記録媒体は、コンピュータに読み取り可能なデータが貯蔵されるあらゆる種類のストレージデバイス及び分散ストレージデバイスを含む。前記コンピュータが判読可能な記録媒体は、例えば、ブルー例ディスク(BD)、ユニバーサルシリアルバス(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、及び光学的データ貯蔵装置を含むことができる。また、前記コンピュータが読み取り可能な記録媒体は、搬送波(例えば、インターネットを通じた伝送)の形で実現されたメディアを含む。 また、エンコード方法で生成されたビットストリームがコンピュータが読み取り可能な記録媒体に貯蔵したり、有無線通信ネットワークを介して転送されることができる。
また、本発明の実施形態は、プログラムコードによるコンピュータプログラム製品として実現されることができ、前記プログラムコードは、本発明の実施形態により、コンピュータ上で実行することができる。前記プログラムコードは、コンピュータによって読み取り可能なキャリア上に貯蔵することができる。
以上で説明した実施形態は、本発明の構成要素と特徴が所定形態で結合されたものである。各構成要素または特徴は、別の明示的な言及がない限り選択的なもので考慮されるべきである。各構成要素または特徴は、他の構成要素や特徴と結合されない形態で実施されることができる。また、一部の構成要素及び/または特徴を結合して、本発明の実施形態を構成することも可能である。本発明の実施形態で説明される動作の順序は変更されることができる。どの実施形態の一部の構成や特徴は、他の実施形態に含まれることができ、または他の実施形態に対応する構成または特徴と代替されることができる。特許請求の範囲で明示的な引用関係がない請求項を結合して実施形態を構成したり、出願後の補正により新しい請求項として含めることができることは自明である。
本発明に係る実施形態は、 様々な手段、例えば、ハードウェア、ファームウェア(firmware)、ソフトウェアまたはそれらの組み合わせなどにより実現されることができる。ハードウェアによる実現の場合、本発明の一実施形態は、一つまたはそれ以上のASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどにより実現されることができる。
ファームウェアやソフトウェアによる実現の場合、本発明の一実施形態は、以上で説明した機能または動作を実行するモジュール、プロシージャ、関数などの形態で実現されることができる。ソフトウェアコードは、メモリに貯蔵されてプロセッサによって駆動されることができる。前記メモリは、前記プロセッサの内部または外部に位置して、既に公知された多様な手段により、前記プロセッサとデータを送受信することができる。
本発明は、本発明の必須的特徴を逸脱しない範囲で他の特定の形態で具体化されることができることは、当業者に自明である。したがって、前述した詳細な説明は、すべての面で制限的に解釈してはならなく、例示的なものとみなされるべきである。本発明の範囲は、添付された請求項の合理的解釈によって決定されるべきであり、本発明の等価的範囲内でのすべての変更は、本発明の範囲に含まれる。