本発明は、多様な変更を加えることができ、多様な実施例を有することができ、特定の実施例を図面に例示して詳細に説明する。しかし、これは本発明を特定の実施形態に対して限定するものではない。本明細書で使用する用語は、単に特定の実施例を説明するために使われたものであり、本発明の技術的思想を限定するために使われたものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本明細書において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはこれらを組合せたものが存在することを指定するものであり、一つまたはそれ以上の他の特徴、数字、ステップ、動作、構成要素、部品またはこれらを組合せたものの存在または付加可能性を予め排除しないと理解しなければならない。
一方、本発明で説明される図面上の各構成は、ビデオエンコーディング装置/デコーディング装置で互いに異なる特徴的な機能に対する説明の便宜のために独立的に図示したものであり、各構成が互いに別個のハードウェアや別個のソフトウェアで具現されるということを意味しない。例えば、各構成のうち二つ以上の構成が統合されて一つの構成になることもでき、一つの構成が複数の構成に分けられることもできる。各構成が統合及び/または分離された実施例も本発明の本質から外れない限り本発明の権利範囲に含まれる。
以下、添付図面を参照して、本発明の好ましい実施例をさらに詳細に説明する。以下、図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対する重複説明は省略する。
スケーラビリティをサポートするビデオコーディング方法(以下、「スケーラブルコーディング」という)では入力信号をレイヤ別に処理することができる。レイヤによって入力信号(入力映像)は、解像度(resolution)、フレームレート(frame rate)、ビットデプス(bit−depth)、カラーフォーマット(color format)、アスペクト率(aspect ratio)のうち少なくとも一つが異なる。
本明細書において、スケーラブルコーディングとは、スケーラブルエンコーディングとスケーラブルデコーディングを含む。
スケーラブルエンコーディング/デコーディングではレイヤ間の差を利用することによって、即ち、スケーラビリティに基づいてレイヤ間予測を実行することによって、情報の重複送信/処理を減らして圧縮効率を上げることができる。
図1は、本発明の一実施例によってスケーラビリティをサポートするビデオエンコーディング装置を概略的に示すブロック図である。
図1を参照すると、エンコーディング装置100は、レイヤ1に対するエンコーディング部105とレイヤ0に対するエンコーディング部135を含む。
レイヤ0は、ベースレイヤ、参照レイヤまたは下位レイヤであり、レイヤ1は、エンハンスメントレイヤ、現在レイヤまたは上位レイヤである。
レイヤ1のエンコーディング部105は、予測部110、変換/量子化部115、フィルタリング部120、DPB(Decoded Picture Buffer)125、エントロピーコーディング部130、及びMUX(Multiplexer)165を含む。
レイヤ0のエンコーディング部135は、予測部140、変換/量子化部145、フィルタリング部150、DPB155及びエントロピーコーディング部160を含む。
予測部110、140は、入力された映像に対してインター予測とイントラ予測を実行することができる。予測部110、140は、所定の処理単位に予測を実行することができる。予測の実行単位は、コーディングユニット(Coding Unit:CU)であってもよく、予測ユニット(Prediction Unit:PU)であってもよく、変換ユニット(Transform Unit:TU)であってもよい。
例えば、予測部110、140は、CU単位にインター予測を適用するか、またはイントラ予測を適用するかを決定し、PU単位に予測のモードを決定し、PU単位またはTU単位に予測を実行することもできる。実行される予測は、予測ブロックの生成とレジデュアルブロック(レジデュアル信号)の生成を含む。
インター予測を介しては現在ピクチャの以前ピクチャ及び/または以後ピクチャのうち少なくとも一つのピクチャの情報に基づいて予測を実行して予測ブロックを生成することができる。イントラ予測を介しては現在ピクチャ内のピクセル情報に基づいて予測を実行して予測ブロックを生成することができる。
インター予測のモードまたは方法として、スキップ(skip)モード、マージ(merge)モード、MVP(Motion Vector Predictor)モード方法などがある。インター予測では予測対象である現在PUに対して参照ピクチャを選択し、参照ピクチャ内で現在PUに対応する参照ブロックを選択することができる。予測部110、140は、参照ブロックに基づいて予測ブロックを生成することができる。
予測ブロックは、整数サンプル単位に生成されることもでき、整数以下ピクセル単位に生成されることもできる。このとき、動きベクトルも整数ピクセル単位または整数ピクセル以下の単位に表現されることができる。
インター予測において、動き情報、即ち、参照ピクチャのインデックス、動きベクトル、レジデュアル信号などの情報は、エントロピーエンコーディングされてデコーディング装置に伝達される。スキップモードが適用される場合は、レジデュアルを生成、変換、量子化、送信しない。
イントラ予測において、予測モードは、33個の方向性予測モードと少なくとも二つ以上の非方向性モードを有することができる。非方向性モードは、DC予測モード及びプレーナモード(Planarモード)を含むことができる。イントラ予測では、参照サンプルにフィルタを適用した後、予測ブロックを生成することもできる。
PUは、多様なサイズ/形態のブロックであり、例えば、インター予測の場合、PUは、2N×2Nブロック、2N×Nブロック、N×2Nブロック、またはN×Nブロック(Nは整数)などである。イントラ予測の場合、PUは、2N×2NブロックまたはN×Nブロック(Nは整数)などである。このとき、N×Nブロック大きさのPUは、特定の場合にのみ適用するように設定することができる。例えば、最小大きさCUに対してのみN×Nブロック大きさのPUを利用するように定め、またはイントラ予測に対してのみ利用するように定めることもできる。また、前述した大きさのPU外に、N×mNブロック、mN×Nブロック、2N×mNブロックまたはmN×2Nブロック(m<1)などのPUをより定義して使用することもできる。
また、予測部110は、レイヤ0の情報を利用してレイヤ1に対する予測を実行することができる。本明細書では、他のレイヤの情報を利用して現在レイヤの情報を予測する方法を、説明の便宜のために、インターレイヤ予測という。
他のレイヤの情報を利用して予測される(即ち、インターレイヤ予測により予測される)現在レイヤの情報として、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータ等)などがある。
また、現在レイヤに対する予測に利用される(即ち、インターレイヤ予測に利用される)他のレイヤの情報として、テクスチャ、動き情報、ユニット情報、所定のパラメータ(例えば、フィルタリングパラメータなど)がある。
インターレイヤ予測の一例として、インターレイヤ動き予測は、インターレイヤインター予測という。インターレイヤインター予測によると、レイヤ0(参照レイヤまたはベースレイヤ)の動き情報を利用してレイヤ1(現在レイヤまたはエンハンスメントレイヤ)の現在ブロックに対する予測を実行することができる。
インターレイヤインター予測を適用する場合は、参照レイヤの動き情報をスケーリングすることもできる。
インターレイヤ予測の他の例として、インターレイヤテクスチャ予測は、インターレイヤイントラ予測またはイントラBL(Base Layer)予測とも呼ばれる。インターレイヤテクスチャ予測は、参照レイヤ内の参照ブロックがイントラ予測により復元された場合に適用されることができる。
インターレイヤイントラ予測では、参照レイヤ内の参照ブロックのテクスチャをエンハンスメントレイヤの現在ブロックに対する予測値として使用することができる。このとき、参照ブロックのテクスチャは、アップサンプリングによりスケーリングされることができる。
インターレイヤ予測の他の例であるインターレイヤユニットパラメータ予測では、ベースレイヤのユニット(CU、PU及び/またはTU)情報を誘導してエンハンスメントレイヤのユニット情報として使用し、またはベースレイヤのユニット情報に基づいてエンハンスメントレイヤのユニット情報を決定することができる。
また、ユニット情報は、各ユニットレベルでの情報を含むことができる。例えば、CU情報の場合、パーティション(CU、PU及び/またはTU)に対する情報、変換に対する情報、予測に対する情報、コーディングに対する情報を含むことができる。PU情報の場合、PUパーティションに対する情報、予測に対する情報(例えば、動き情報、予測モードに対する情報等)などを含むことができる。TUに対する情報は、TUパーティションに対する情報、変換に対する情報(変換係数、変換方法等)などを含むことができる。
また、ユニット情報は、処理単位(例えば、CU、PU、TU等)の分割情報のみを含むこともできる。
インターレイヤ予測の他の例であるインターレイヤパラメータ予測では、ベースレイヤで使用したパラメータを誘導してエンハンスメントレイヤで再使用するようにし、またはベースレイヤで使用したパラメータに基づいてエンハンスメントレイヤに対するパラメータを予測することができる。
ここでは、インターレイヤ予測の例として、インターレイヤテクスチャ予測、インターレイヤ動き予測、インターレイヤユニット情報予測、インターレイヤパラメータ予測を説明したが、本発明で適用できるインターレイヤ予測は、これに限定されるものではない。
例えば、予測部110は、インターレイヤ予測として、他のレイヤのレジデュアル情報を利用して現在レイヤのレジデュアルを予測し、これに基づいて現在レイヤ内の現在ブロックに対する予測を実行するインターレイヤレジデュアル予測を利用することもできる。
また、予測部110は、インターレイヤ予測として、現在レイヤの復元ピクチャと他のレイヤの復元ピクチャをアップサンプリングまたはダウンサンプリングした映像間の差分(差分映像)映像を利用して現在レイヤ内の現在ブロックに対する予測を実行するインターレイヤ差分予測を実行することもできる。
また、予測部110は、インターレイヤ予測として、他のレイヤのシンタックス情報を利用して現在ブロックのテクスチャを予測または生成するインターレイヤシンタックス予測を利用することもできる。このとき、現在ブロックの予測に利用する参照レイヤのシンタックス情報は、イントラ予測モードに対する情報、動き情報などである。
このとき、参照レイヤで、イントラ予測モードが適用されたブロック(intra)からはイントラ予測モードを参照し、インター予測モードが適用されたブロック(MV)からは動き情報を参照することで、インターレイヤシンタックス予測を実行することができる。
例えば、参照レイヤがPスライスやBスライスであるが、スライス内の参照ブロックは、イントラ予測モードが適用されたブロックである。このような場合、インターレイヤシンタックス予測を適用すると、参照レイヤのシンタックス情報のうち参照ブロックのイントラ予測モードを利用して現在ブロックに対するテクスチャを生成/予測するインターレイヤ予測を実行することができる。
前述したインターレイヤを利用した多様な予測方法は、特定のブロックに対する予測時、複数個が利用されることもできる。例えば、現在ブロックを予測するためにレイヤ0の予測情報を利用しながら、対応されるレイヤ0または対応ブロックのユニット情報またはフィルタリングパラメータ情報などを追加的に利用することができる。このようなインターレイヤ予測方法の結合は、本明細書の以下で説明される予測にも適用されることができる。
変換/量子化部115、145は、変換ブロック単位にレジデュアルブロックに対する変換を実行して変換係数を生成し、変換係数を量子化することができる。
変換ブロックは、サンプルの方形ブロックであって、同じ変換が適用されるブロックである。変換ブロックは、変換ユニット(TU)であり、クワッドツリー(quad tree)構造を有することができる。
変換/量子化部115、145は、レジデュアルブロックに適用された予測モードとブロックの大きさによって変換を実行して変換係数の2次元アレイを生成することができる。例えば、レジデュアルブロックにイントラ予測が適用され、ブロックが4×4のレジデュアル配列の場合、レジデュアルブロックをDST(Discrete Sine Transform)を利用して変換し、その他の場合、レジデュアルブロックをDCT(Discrete Cosine Transform)を利用して変換することができる。
変換/量子化部115、145は、変換係数を量子化することで、量子化された変換係数を生成することができる。
変換/量子化部115、145は、量子化された変換係数をエントロピーコーディング部130、160に伝達することができる。このとき、変換/量子化部145は、量子化された変換係数の2次元アレイを所定のスキャン順序によって1次元アレイに再整列してエントロピーコーディング部130、160に伝達することもできる。また、変換/量子化部115、145は、インター予測のために、レジデュアルと予測ブロックに基づいて生成された復元ブロックを変換/量子化せずに、フィルタリング部120、150に伝達することができる。
一方、変換/量子化部115、145は、必要に応じて、変換を省略(skip)して量子化のみを実行し、または変換と量子化を両方とも省略することもできる。例えば、変換/量子化部115、145は、特定の予測方法が適用され、または特定の大きさを有するブロック、または特定の予測ブロックが適用された特定の大きさのブロックに対して変換を省略することもできる。
エントロピーコーディング部130、160は、量子化された変換係数に対するエントロピーエンコーディングを実行することができる。エントロピーエンコーディングには、例えば、指数ゴロム(Exponential Golomb)、CABAC(Context−Adaptive Binary Arithmetic Coding)などのようなエンコーディング方法を使用することができる。
フィルタリング部120、150は、デブロッキングフィルタ、ALF(Adaptive Loop Filter)、SAO(Sample Adaptive Offset)を復元されたピクチャに適用することができる。
デブロッキングフィルタは、復元されたピクチャでブロック間の境界に発生した歪曲を除去することができる。ALF(Adaptive Loop Filter)は、デブロッキングフィルタを介してブロックがフィルタリングされた後、復元された映像と原映像を比較した値に基づいてフィルタリングを実行することができる。SAOは、デブロッキングフィルタが適用されたレジデュアルブロックに対し、ピクセル単位に原映像とのオフセット差を復元し、バンドオフセット(Band Offset)、エッジオフセット(Edge Offset)などの形態に適用される。
フィルタリング部120、150は、デブロッキングフィルタ、ALF、SAOを全部適用せずに、デブロッキングフィルタのみを適用し、またはデブロッキングフィルタとALFのみを適用し、またはデブロッキングフィルタとSAOのみを適用することもできる。
DPB125、155は、フィルタリング部120、150から復元ブロックまたは復元ピクチャの伝達を受けて格納することができる。DPB125、155は、復元ブロックまたはピクチャをインター予測を実行する予測部110、140に提供することができる。
レイヤ0のエントロピーコーディング部160で出力される情報とレイヤ1のエントロピーコーディング部130で出力される情報は、MUX165でマルチプレキシングされてビットストリームで出力されることができる。
一方、ここでは説明の便宜のために、レイヤ1のエンコーディング部105がMUX165を含むと説明したが、MUXは、レイヤ1のエンコーディング部105及びレイヤ0のエンコーディング部135とは別途の装置またはモジュールであってもよい。
図1のエンコーディング装置は、カメラなどを含んで映像を撮像してエンコーディングすることができる電子装置等で具現されることができる。例えば、エンコーディング装置は、テレビ、コンピュータシステム、携帯電話またはタブレットPCのような個人端末機などで具現され、またはこれらの電子装置に含まれることができる。
図2は、本発明によってスケーラブルコーディングを実行するエンコーディング装置でのインターレイヤ予測に対する一例を説明するブロック図である。
図2を参照すると、デコーディング装置200は、レイヤ1のデコーディング部210とレイヤ0のデコーディング部250を含む。
レイヤ0は、ベースレイヤ、参照レイヤまたは下位レイヤであり、レイヤ1は、エンハンスメントレイヤ、現在レイヤまたは上位レイヤである。
レイヤ1のデコーディング部210は、エントロピーデコーディング部215、再整列部220、逆量子化部225、逆変換部230、予測部235、フィルタリング部240、メモリを含むことができる。
レイヤ0のデコーディング部250は、エントロピーデコーディング部255、再整列部260、逆量子化部265、逆変換部270、予測部275、フィルタリング部280、メモリ285を含むことができる。
エンコーディング装置から映像情報を含むビットストリームが送信されると、DEMUX205は、レイヤ別に情報をデマルチプレキシングして各レイヤ別デコーディング装置に伝達することができる。
エントロピーデコーディング部215、255は、エンコーディング装置で使用したエントロピーコーディング方式に対応してエントロピーデコーディングを実行することができる。例えば、エンコーディング装置でCABACが使われた場合、エントロピーデコーディング部215、255もCABACを利用してエントロピーデコーディングを実行することができる。
エントロピーデコーディング部215、255でデコーディングされた情報のうち予測ブロックを生成するための情報は、予測部235、275に提供され、エントロピーデコーディング部215、255でエントロピーデコーディングが実行されたレジデュアル値、即ち、量子化された変換係数は、再整列部220、260に入力されることができる。
再整列部220、260は、エントロピーデコーディング部215、255でエントロピーデコーディングされたビットストリームの情報、即ち、量子化された変換係数をエンコーディング装置で再整列した方法に基づいて再整列することができる。
例えば、再整列部220、260は、1次元アレイの量子化された変換係数を再び2次元アレイの係数に再整列することができる。再整列部220、260は、現在ブロック(変換ブロック)に適用された予測モード及び/または変換ブロックの大きさに基づいてスキャニングを実行して係数(量子化された変換係数)の2次元アレイを生成することができる。
逆量子化部225、265は、エンコーディング装置で提供された量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を実行して変換係数を生成することができる。
逆変換部230、270は、変換係数に対してエンコーディング装置の変換部が実行した変換に対する逆変換を実行することができる。逆変換部230、270は、エンコーディング装置で実行されたDCT(Discrete Cosine Transform)及びDST(Discrete Sine Transform)に対して逆DCT及び/または逆DSTを実行することができる。
エンコーディング装置において、DCT及び/またはDSTは、予測方法、現在ブロックの大きさ及び予測方向など、複数の情報によって選択的に実行されることができ、デコーディング装置の逆変換部230、270は、エンコーディング装置で実行された変換情報に基づいて逆変換を実行することができる。
例えば、逆変換部230、270は、予測モード/ブロック大きさによって逆DCTと逆DSTを適用することができる。例えば、逆変換部230、270は、イントラ予測が適用された4×4ルマブロックに対して逆DSTを適用することもできる。
また、逆変換部230、270は、予測モード/ブロック大きさに関係なく、特定の逆変換方法を固定的に使用することもできる。例えば、逆変換部230、270は、全ての変換ブロックに逆DSTのみを適用することができる。また、逆変換部230、270は、全ての変換ブロックに逆DCTのみを適用することもできる。
逆変換部230、270は、変換係数または変換係数のブロックを逆変換してレジデュアルまたはレジデュアルブロックを生成することができる。
逆変換部230、270は、また、必要に応じてまたはエンコーディング装置でエンコーディングされた方式によって、変換を省略(skip)することもできる。例えば、逆変換230、270は、特定の予測方法が適用され、または特定の大きさを有するブロック、または特定の予測ブロックが適用された特定の大きさのブロックに対して変換を省略することもできる。
予測部235、275は、エントロピーデコーディング部215、255から伝達された予測ブロック生成関連情報とメモリ245、285で提供された以前にデコーディングされたブロック及び/またはピクチャ情報に基づいて現在ブロックに対する予測ブロックを生成することができる。
現在ブロックに対する予測モードがイントラ予測(intra prediction)モードの場合、予測部235、275は、現在ピクチャ内のピクセル情報に基づいて現在ブロックに対するイントラ予測を実行することができる。
現在ブロックに対する予測モードがインター予測(inter prediction)モードの場合、予測部235、275は、現在ピクチャの以前ピクチャまたは以後ピクチャのうち少なくとも一つのピクチャに含まれている情報に基づいて現在ブロックに対するインター予測を実行することができる。インター予測に必要な動き情報の一部または全部は、エンコーディング装置から受信した情報を確認し、これに対応して誘導されることができる。
インター予測のモードとしてスキップモードが適用される場合は、エンコーディング装置からレジデュアルが送信されず、予測ブロックを復元ブロックにすることができる。
一方、レイヤ1の予測部235は、レイヤ1内の情報のみを利用してインター予測またはイントラ予測を実行することもでき、他のレイヤ(レイヤ0)の情報を利用してインターレイヤ予測を実行することもできる。
例えば、レイヤ1の予測部235は、レイヤ1の動き情報、レイヤ1のテクスチャ情報、レイヤ1のユニット情報、レイヤ1のパラメータ情報のうち一つを利用して現在ブロックに対する予測を実行することができる。
レイヤ1の予測部235は、レイヤ0の予測部275からレイヤ1の動き情報の伝達を受けて動き予測を実行することができる。インターレイヤ動き予測をインターレイヤインター予測ともいう。インターレイヤ動き予測により、参照レイヤ(ベースレイヤ)の動き情報を利用して現在レイヤ(エンハンスメントレイヤ)の現在ブロックに対する予測が実行されることができる。予測部235は、必要な場合、参照レイヤの動き情報をスケーリングして利用することもできる。
レイヤ1の予測部235は、レイヤ0の予測部275からレイヤ0のテクスチャ情報の伝達を受けてテクスチャ予測を実行することができる。テクスチャ予測は、インターレイヤイントラ予測またはイントラBL(Base Layer)予測とも呼ばれる。テクスチャ予測は、参照レイヤの参照ブロックがイントラ予測により復元された場合に適用されることができる。または、テクスチャ予測は、参照レイヤに参照インデックスを割り当てて参照することもできる。
インターレイヤイントラ予測では、参照レイヤ内の参照ブロックのテクスチャをエンハンスメントレイヤの現在ブロックに対する予測値として使用することができる。このとき、参照ブロックのテクスチャは、アップサンプリングによりスケーリングされることができる。
レイヤ1の予測部235は、レイヤ0の予測部275からレイヤ0のユニットパラメータ情報の伝達を受けてユニットパラメータ予測を実行することができる。ユニットパラメータ予測により、ベースレイヤのユニット(CU、PU及び/またはTU)情報がエンハンスメントレイヤのユニット情報として使われ、またはベースレイヤのユニット情報に基づいてエンハンスメントレイヤのユニット情報が決定されることができる。
レイヤ1の予測部235は、レイヤ0の予測部275からレイヤ0のフィルタリングに対するパラメータ情報の伝達を受けてパラメータ予測を実行することもできる。パラメータ予測により、ベースレイヤで使用したパラメータを誘導してエンハンスメントレイヤで再使用し、またはベースレイヤで使用したパラメータに基づいてエンハンスメントレイヤに対するパラメータを予測することができる。
前述したインターレイヤを利用した多様な予測方法は、特定のブロックに対する予測時、複数個が利用されることもできる。例えば、現在ブロックを予測するためにレイヤ0の予測情報を利用しながら、対応されるレイヤ0または対応ブロックのユニット情報またはフィルタリングパラメータ情報などを追加的に利用することができる。このようなインターレイヤ予測方法の結合は、本明細書の以下で説明される予測にも適用されることができる。
加算器290、295は、予測部235、275で生成された予測ブロックと逆変換部230、270で生成されたレジデュアルブロックとを利用して復元ブロックを生成することができる。この場合、加算器290、295を、復元ブロックを生成する別途のユニット(復元ブロック生成部)と見ることができる。
加算器290、295で復元されたブロック及び/またはピクチャは、フィルタリング部240、280に提供されることができる。
図2の例を参照すると、レイヤ1のフィルタリング部240は、レイヤ1の予測部235及び/またはレイヤ0のフィルタリング部280から伝達されるパラメータ情報を利用して復元されたピクチャに対するフィルタリングを実行することもできる。例えば、レイヤ1のフィルタリング部240は、レイヤ0で適用されたフィルタリングのパラメータから予測されたパラメータを利用してレイヤ1に対するまたはレイヤ間のフィルタリングを適用することができる。
メモリ245、285は、復元されたピクチャまたはブロックを格納して参照ピクチャまたは参照ブロックとして使用可能にする。メモリ245、285は、格納された復元ピクチャを所定の出力部(図示せず)またはディスプレイ(図示せず)を介して出力することもできる。
図2の例では、再整列部、逆量子化部、逆変換部などに分けて説明したが、図1のエンコーディング装置のように、逆量子化/逆変換部の一モジュールで再整列、逆量子化、逆変換を順に実行するようにデコーディング装置を構成することもできる。
図1及び図2の例では、予測部と説明したが、発明に対する理解を容易にするために、レイヤ1の予測部は、他のレイヤ(レイヤ0)の情報を利用して予測を実行するインターレイヤ予測部と、他のレイヤ(レイヤ0)の情報を利用せずに予測を実行するインター/イントラ予測部とを含むとみることもできる。
図2のデコーディング装置は、映像を再生し、または再生して表示することができる多様な電子装置で具現されることができる。例えば、デコーディング装置は、セットトップボックス、テレビ、コンピュータシステム、携帯電話、タブレットPCのような個人端末機などで具現され、またはこれらの電子装置に含まれることができる。
ビットストリーム内の複数のレイヤをサポートするビデオの符号化及び復号化、即ち、スケーラブルコーディング(scalable coding)の場合、複数のレイヤ間には強い連関性(correlation)が存在するため、このような連関性を利用して予測を実行すると、データの重複要素を除去することができ、映像の符号化性能を向上させることができる。以下、他のレイヤの情報を利用して予測の対象となる現在レイヤの予測を実行することをレイヤ間予測(inter−layer prediction)と表現する。スケーラブルビデオコーディングは、以下、符号化観点では、スケーラブルビデオ符号化と同じ意味を有し、復号化観点では、スケーラブルビデオ復号化と同じ意味を有する。
複数のレイヤは、解像度、フレームレート、カラーフォーマットのうち少なくとも一つが互いに異なり、レイヤ間予測時、解像度の調節のためにレイヤのアップサンプリングまたはダウンサンプリングが実行されることができる。
図3は、本発明が適用されることができる、複数レイヤを利用したスケーラブルビデオコーディング構造の一実施例を概略的に示す概念図である。図3において、GOP(Group of Picture)は、ピクチャ群、即ち、ピクチャのグループを示す。
映像データを送信するためには送信媒体が必要であり、その性能は多様なネットワーク環境に応じて送信媒体別に異なる。このような多様な送信媒体またはネットワーク環境への適用のためにスケーラブルビデオコーディング方法が提供されることができる。
スケーラブルビデオコーディング方法は、レイヤ(layer)間のテクスチャ情報、動き情報、残余信号などを活用してレイヤ間重複性を除去して符号化/復号化性能を高めるコーディング方法である。スケーラブルビデオコーディング方法は、送信ビット率、送信エラー率、システムリソースなどの周辺条件に応じて、空間的、時間的、画質的観点で多様なスケーラビリティを提供することができる。
スケーラブルビデオコーディングは、多様なネットワーク状況に適用可能なビットストリームを提供することができるように、複数レイヤ(multiple layers)構造を使用して実行されることができる。例えば、スケーラブルビデオコーディング構造は、一般的な映像符号化方法を利用して映像データを圧縮処理するベースレイヤを含むことができ、ベースレイヤの符号化情報及び一般的な映像符号化方法を共に使用して映像データを圧縮処理するエンハンスメントレイヤを含むことができる。
ここで、レイヤ(layer)は、空間(spatial、例えば、映像大きさ)、時間(temporal、例えば、符号化順序、映像出力順序、フレームレート)、画質、複雑度などを基準に区分される映像及びビットストリーム(bitstream)の集合を意味する。また、ベースレイヤは、参照レイヤまたはBase layerを意味し、エンハンスメントレイヤは、Enhancement layerを意味する。また、複数のレイヤは、相互間に従属性を有することもできる。
図3を参照すると、例えば、ベースレイヤは、SD(standard definition)、15Hzのフレーム率、1Mbpsビット率として定義されることができ、第1のエンハンスメントレイヤは、HD(high definition)、30Hzのフレーム率、3.9Mbpsビット率として定義されることができ、第2のエンハンスメントレイヤは、4K−UHE(ultra high definition)、60Hzのフレーム率、27.2Mbpsビット率として定義されることができる。前記フォーマット(format)、フレーム率、ビット率等は、一実施例に過ぎず、必要に応じて変更されることができる。また、使われるレイヤの数も本実施例に限定されるものではなく、状況に応じて変更されることができる。
例えば、送信帯域幅が4Mbpsの場合、前記第1のエンハンスメントレイヤHDのフレームレートを減らして15Hz以下に送信することができる。スケーラブルビデオコーディング方法は、前記図3の実施例で詳述した方法により、時間的、空間的、画質的スケーラビリティを提供することができる。
スケーラブルビデオコーディングは、以下、符号化観点ではスケーラブルビデオ符号化と同じ意味を有し、復号化観点ではスケーラブルビデオ復号化と同じ意味を有する。
一方、複数のレイヤを含むビットストリームは、パケットスイッチングネットワーク(packet−switching network)を介してビデオの適応的送信を容易にするNAL(Network Abstraction Layer)ユニットで構成される。複数のレイヤと同様に、ビットストリーム内の複数の多視点映像を含むマルチビュービデオコーディング(multi−view video coding)で複数の視点間の関係は、複数のレイヤをサポートするビデオでの空間的レイヤ(spatial layer)間の関係と同様である。
コンテンツ伝達経路(content delivery path)での全てのノードでビットストリームを効果的且つ効率的に変換するためには、ビットストリームのスケーラビリティ情報が非常に重要である。現在単一レイヤに対するビデオコーディングに対する標準(high efficiency video coding)ではNALユニットヘッダ(header)にレイヤ情報と関連したフィールドが2個存在する。
表1は、NALユニットヘッダの一例を示す。
表1を参照すると、forbidden_zero_bitは、1の値を有する。
nal_unit_typeは、該当nalユニットの種類を示す。
nuh_reserved_zero_6bitsは、以後の他のレイヤ、即ち、スケーラビリティに対する情報を示すための領域であり、該当レイヤを識別するレイヤIDに対する情報を含むことができる。
3bitsの長さを有するtemporal_idは、ビデオビットストリームの時間的レイヤ(temporal layer)を示す。時間的レイヤは、ビデオコーディングレイヤ(video coding layer、VCL)NALユニットで構成された時間的にスケールされることができるビットストリームのレイヤを意味し、時間的レイヤは、特定のtemporal_id値を有する。
複数のスケーラビリティ(例えば、多視点、3D拡張)をサポートするビットストリームのコーディングにも表1のようなNALユニットヘッダ構造を使用することができる。この場合、NALユニットヘッダでスケーラビリティに対する情報、例えば、レイヤIDのような情報は、表1の6ビットのnuh_reserved_zero_6bitsを介して伝達されることができる。
したがって、NALユニットヘッダでシグナリングされるレイヤID情報と該当レイヤのスケーラビリティタイプ、即ち、レイヤにどのようなスケーラビリティが適用されるかをマッピングさせる情報のシグナリングが必要である。
スケーラビリティのタイプ、種類及びこれらをレイヤIDとマッピングさせる情報は、ビデオパラメータセット(video parameter set)に含まれることができ、スケーラビリティをサポートするビットストリームに対するビデオパラメータセット拡張(video parameter set extension)に含まれることができる。
本発明は、複数のレイヤをサポートするビットストリーム内で映像のレイヤ的情報(scalability information)を効果的に記述し、これをシグナリングするための方法及びそれを具現する装置に関する。
表2は、現在ビデオパラメータセットに対する一例を示す。
表2を参照すると、video_parameter_set_idは、他の構文要素により参照される該当ビデオパラメータセットを識別するための構文要素である。
vps_temporal_id_nesting_flagは、vps_max_sub_layers_minus1が0より大きい場合、ビデオパラメータセットを参照するコーディングされたビデオシーケンスに対して追加的にインター予測が制限されるかどうかを示す。vps_max_sub_layers_minus1が0の場合、vps_temporal_id_nesting_flagは1にならなければならない。vps_temporal_id_nesting_flagの構文要素は、時間的サブレイヤのアップサンプリング時に使われる。
reserved_zero_2bitsは、ビットストリーム内で3になることができ、3でない他の値は、追加的に異なるように使われることができ、この場合、デコーディング部は、reserved_zero_2bits値を無視することができる。
max_num_layers_minus1に1を加えた値は、ビデオパラメータセットを参照するコーディングされたビデオシーケンス内に存在するレイヤの最大数を示す。
vps_max_sub_layers_minus1に1を加えた値は、コーディングされたビデオシーケンス内に存在できる時間的サブレイヤの最大数を示す。vps_max_sub_layers_minus1は、0〜6の値を有することができる。
next_essential_info_byte_offsetは、NALユニットの始めからビデオパラメータセットNALユニット内の固定長さコーディング情報の次のセットに対するバイトオフセットを示す。
ベースレイヤまたはベース視点でないビデオパラメータセット情報は、固定された長さのコーディングされた情報であり、ビデオパラメータセットNALユニットの割り当てられたバイト位置から始まる。next_essential_info_byte_offsetにより特定されるバイトオフセットは、エントロピーデコーディングをする必要なく、ビデオパラメータセットNALユニット内の必須な情報への接近を容易にすることができる。このようなnext_essential_info_byte_offsetに対する情報は、セッション交渉及び/または容量交換のための必須な情報である。
vps_max_dec_pic_buffering[i]は、映像格納バッファの単位でコーディングされたビデオシーケンスのために要求されるデコーディングされたピクチャバッファの最大大きさを示す。
vps_max_num_reorder_pics[i]は、コーディングされたビデオシーケンスの任意のピクチャよりデコーディング順序で先行することができ、出力順序で後行することができるピクチャの許容可能な最大数を示す。
vps_max_latency_increase[i]は、0でない値を有し、最大遅延ピクチャの個数を演算するときに使われる値であり、コーディングされたビデオシーケンスの任意のピクチャよりデコーディング順序で先行することができ、出力順序で後行することができるピクチャの最大数を示す。
num_hrd_parametersは、ビデオパラメータセットに存在するhrd_parameters()構文要素の個数を示し、ビットストリームでnum_hrd_parametersは、1より小さいまたは同じ値を有することができる。もし、この値が1より小さいまたは同じ値でない場合、デコーディング部は、num_hrd_parameters値として構文要素で指示している1〜1024範囲の異なる値を許容することができる。
bit_equal_to_oneは、1の値を有する。
vps_extension_flagが0の場合、ビデオパラメータセット構文要素にvps_extension_data_flag構文要素が存在しないことを意味し、vps_extension_flagが1の場合、レイヤ拡張バージョンのためにvps_extension_data_flag構文要素が存在することを意味する。
vps_extension_data_flagは、レイヤ拡張バージョンのためのデータが存在するかどうかを示す値であり、どんな値も有することができる。
もし、ビットストリームが複数のレイヤをサポートするレイヤ拡張バージョンである場合、vps_extension_flag及びvps_extension_data_flagは1であり、レイヤに対する多様な情報は、ビットストリーム内のビデオパラメータ、例えば、ビデオパラメータセット拡張(video parameter sets extension)に含まれてシグナリングされることができる。
ビデオパラメータセット拡張に含まれることができるレイヤの情報は、レイヤが有することができる全てのスケーラビリティ、即ち、ディメンションに対する情報を含むことができ、このようなディメンションに対する情報は、表を利用して設定されることもできる。
その他、レイヤに対してシグナリングされる情報には、レイヤのディメンションの個数、各レイヤの各ディメンションの能動的範囲、レイヤ識別に対する情報、直接的な参照レイヤに対するリストなどが含まれることができる。
各レイヤに対するディメンションを示すための全体ビット数は、表1のNALユニットヘッダでシグナリングされるレイヤIDをシグナリングするために割り当てられたビット数にマッチングされなければならない。もし、NALユニットヘッダでシグナリングされるレイヤIDが6ビットの場合、各レイヤに適用されることができるディメンションを記述する全体ビット数は6になる。
以下の表3は、本発明の一実施例に係るビデオパラメータセットの拡張を示す。
表3を参照すると、vps_extension_byte_alignment_reserved_one_bitは、1になる。
num_dimensions_minus1[i]に1を加えた値は、各レイヤでシグナリングされるディメンションタイプとディメンションIDの個数を示す。
dimension_type[i]は、以下の表4に示すように、i番目のレイヤのj番目のスケーラビリティディメンションタイプを示す。
複数のスケーラビリティをサポートするビットストリームでディメンションタイプ(dimension type)とは、空間的スケーラビリティ、画質スケーラビリティのようなスケーラビリティのタイプを意味し、ディメンションID(dimension ID)は、特定のディメンションタイプが有することができるレイヤに対するインデックス、特定のディメンションタイプが適用されるレイヤを識別する情報を意味する。
ディメンションタイプ(dimension_type)は、レイヤのスケーラビリティIDに該当するディメンションID(dimension_id)にマッピングされることができる。
表4を参照すると、スケーラビリティタイプには多視点スケーラビリティ(multi view scalability)、深さスケーラビリティ(depth scalability)、空間的スケーラビリティ(spatial scalability)及び画質スケーラビリティ(quality scalability)が存在できる。
num_dimensions_minus1[i]がシグナリングされると、0から1ずつ増加しながら、ディメンション個数ほどi番目のレイヤに対するディメンションタイプ(dimension_type)に対する情報がシグナリングされる。
i番目のレイヤに対してシグナリングされるdimension_typeが0の場合、該当レイヤには多視点スケーラビリティが適用されることを示し、dimension_typeが1の場合、該当レイヤには深さスケーラビリティが適用されることを示す。dimension_typeが2の場合、該当レイヤには空間的スケーラビリティが適用され、dimension_typeが3の場合、該当レイヤには画質スケーラビリティが適用される。表4によると、一つのレイヤは、最大4種類のスケーラビリティを有することができる。
表4に示すディメンションIDは、ビットストリームでサポートされることができるスケーラビリティに対する一例示に過ぎず、ディメンションIDは、さらに追加されることもでき、ビットストリームは、表4に記述されている4個のディメンションのうち一部のみをサポートすることもできる。dimension_typeの4〜15の値は、追加的なスケーラビリティのタイプを記述するときに使われることができる。
以下、具体的に各ディメンションタイプ及びディメンションIDに対して説明する。
ディメンションIDが多視点スケーラビリティ(multi view scalability)を識別することができるview order idxの場合、これはレイヤが多視点コーディング構造でコーディングされたことを意味する。
図4は、多視点コーディングに対するフレームワークの一例を示す。
図示されているように、多視点コーディングのために総5個のカメラで映像ストリームが生成されることができ、カメラ1により生成された映像のストリームは、ベース視点になる。残りのカメラ2〜5により生成された映像は、カメラ1を含む他の視点映像を参照してコーディングされることができる。
カメラ3で生成される映像ストリームは、ベース視点を参照して予測が実行され、コーディングされる他の視点(例えば、視点2)になることができる。
また、カメラ2で生成される映像ストリームは、ベース視点及び視点2を参照して予測が実行され、コーディングされる他の視点(例えば、視点3)になることができる。
そして、カメラ5で生成される映像ストリームは、ベース視点を参照して予測が実行され、コーディングされる他の視点(例えば、視点4)になることができる。
カメラ4で生成される映像ストリームは、ベース視点及び視点4を参照して予測が実行され、コーディングされる他の視点(例えば、視点5)になることができる。
view order idxは、ビットストリーム内で多視点レイヤの順序(the order of the view layer)、即ち、複数の多視点レイヤのうちいずれのレイヤを示すかを識別する値である。view order idxは、NALユニットと関連したレイヤIDの一部を構成することができる。
ディメンションIDが深さスケーラビリティ(depth scalability)を識別するdepth order idxの場合、これはレイヤが3Dビデオコーディング構造でコーディングされたことを意味する。3Dビデオコーディングには3Dピクチャを表現するために一つまたはそれ以上のコーディングされたフレームに深さマップ(depth map)が使われ、depth order idxは、コーディングされた3Dビデオビットストリームで深さマップのレイヤまたは深さ順序(the order of the depth layer/order)を識別する。
図5は、深さマップを利用して3Dビデオのコーディングに対するフレームワークの一例を示す。
図5に示すように、3D映像は、複数の深さマップを利用してコーディングされることができ、ベースレイヤは、深さ順序1及び深さ順序2で表現されることができる上位レイヤにより参照されることができる。深さ順序Nで表示されているレイヤは、Nより低い順序を有するレイヤに対する深さ依存性を有することができる。
depth order idxは、深さマップのレイヤまたは深さ順序、即ち、複数の深さマップレイヤのうちいずれのレイヤを示すかを識別する値である。depth order idxは、NALユニットと関連したレイヤIDの一部を構成することができる。
ディメンションIDが空間的スケーラビリティ(spatial scalability)を識別することができるdependency IDの場合、これは上位レイヤが下位レイヤのコーディングされた映像を参照して予測及び空間的スケーラビリティコーディングが実行されることを意味する。
図6は、空間的スケーラビリティコーディングに対するフレームワークの一例を示す。
空間的スケーラビリティが適用される映像において、各空間的スケーラビリティレイヤは、下位レイヤと、該当下位レイヤより大きい空間的解像度(例えば、ピクチャ幅またはピクチャ高さ)を有する上位レイヤで構成されている。
dependency IDがNであるレイヤは、ベースレイヤになることができ、dependency IDがN+1であるレイヤは、dependency IDがNであるレイヤより大きい解像度を有する上位レイヤであり、ベースレイヤのコーディングされた映像情報を利用してコーディングされることができる。
dependency IDは、ビットストリーム内の空間的レイヤ順序を示し、NALユニットと関連したレイヤIDの一部を構成することができる。
ディメンションIDが画質スケーラビリティ(quality scalability)を識別することができるquality IDの場合、これは上位レイヤが下位レイヤのコーディングされた映像を参照して予測及び画質スケーラビリティコーディングが実行されることを意味する。
図7は、画質スケーラビリティコーディングに対するフレームワークの一例を示す。
画質スケーラビリティが適用される映像において、各画質スケーラビリティレイヤは、下位レイヤと、該当下位レイヤと同じ空間的解像度(例えば、ピクチャ幅またはピクチャ高さ)を有する一方で、視覚的に画質が優秀な上位レイヤで構成されている。
quality IDがNであるレイヤは、ベースレイヤになることができ、quality IDがN+1であるレイヤは、quality IDがNであるレイヤより向上した画質を有する上位レイヤであり、ベースレイヤを利用してコーディングされることができる。
quality IDは、ビットストリーム内の画質スケーラビリティレイヤ順序を示し、NALユニットと関連したレイヤIDの一部を構成することができる。
画質スケーラビリティは、空間的スケーラビリティと同じコデックス構造が適用されることができ、この場合、画質スケーラビリティと空間的スケーラビリティは、一つのIDで示すこともできる。
前述したように、ビットストリームは、多様なスケーラビリティをサポートするレイヤを含むことができ、スケーラビリティは、ディメンションタイプに対する情報とこれにマッピングされる該当ディメンションに対するレイヤを識別するためのディメンションIDに対する情報で表現されることができる。この場合、ディメンションタイプは、エンコーディング装置からデコーディング装置にシグナリングされることができ、ディメンションタイプとディメンションIDのマッピング関係は、既設定された表を介してエンコーディング装置及びデコーディング装置と事前に設定されることができる。
dimension_len[i]は、i番目のディメンションIDに対する長さ、即ち、ビット数を示し、dimension_len[i]の値は、1〜6範囲の値になることができ、i番目のレイヤに対するdimension_len[i]の和は、6にならなければならない。
dimension_len[i]は、dimension_id_lenまたはdimension_id_len_minus1などの構文要素でシグナリングされることもできる。この場合、dimension_id_lenまたはdimension_id_len_minus1により特定される値の和は、6にならなければならない。
i番目のレイヤのディメンションを示す情報は、該当レイヤを識別するためにNALユニットヘッダに含まれているレイヤIDとマッピングされなければならず、したがって、ディメンションを示すディメンションIDの長さ、dimension_len[i]の総和は、レイヤIDの長さと同じまたは小さいべきである。
レイヤを識別するレイヤIDの長さが6ビットの場合、dimension_len[i]は、1〜6の値を有することができ、dimension_len[i]の総和は、6ビットにならなければならない。
vps_layer_id[i]は、依存性情報が適用されるi番目のレイヤのレイヤIDを示し、vps_layer_id[i]の各ビットは、下記のように構成されることができる。
dimension_len[0]+dimension_len[1]+…+dimension_len[num_dimension_minus1]
ビデオパラメータセットに含まれているレイヤID情報は、NALユニットヘッダで含まれているレイヤを識別する情報と同じである。
num_direct_ref_layers[i]は、i番目のレイヤが直接的に参照するレイヤの個数を示す。
ref_layer_id[i][j]は、i番目のレイヤが直接的に参照するj番目のレイヤを識別する情報である。
表3のビデオパラメータセットに含まれている構文要素によってスケーラビリティ情報を把握する一例を説明すると、下記の通りである。
まず、ビットストリームが空間及び画質スケーラビリティをサポートし、画質スケーラビリティに対応してベースレイヤとこれを参照する第1のエンハンスメントレイヤが存在し、空間的スケーラビリティに対応してベースレイヤと第1のエンハンスメントレイヤが、第2のエンハンスメントレイヤが存在すると仮定する。この場合、下記のようにシグナリングされることができる。
vps_max_layers_minus1=6
num_dimension_minus1=1
vps_max_layers_minus1=6は、レイヤの最大個数は7個であることを示し、num_dimension_minus1=1は、現在ビットストリームでサポートするディメンション、即ち、スケーラビリティは、2個であることを意味する。
dimension_type[0]=2
dimension_length[0]=3
1番目のdimension_type[0]が2であることは、表4を参照すると、ディメンションIDがdependency IDであるため、空間的スケーラビリティがサポートされることであることを確認することができる。
また、dimension_length[0]=3であることは、空間的スケーラビリティを示すディメンションIDの長さが3ビットであることを示す。
dimension_type[1]=3
dimension_length[1]=3
2番目のdimension_type[1]が3であることは、表4を参照すると、ディメンションIDがquality IDであるため、画質スケーラビリティがサポートされることであることを確認することができる。
dimension_length[1]=3であることは、画質スケーラビリティを示すディメンションIDの長さが3ビットであることを示す。
したがって、ビットストリームで送信されるレイヤIDは、dimension_lengthの和である6になり、vps_layer_id[i]のビット数は、6になる。
最下位のレイヤ、即ち、ベースレイヤは、参照するレイヤがないため、vps_layer_idがシグナリングされない。
vps_layer_id[1]=1(000001)
num_direct_ref_layers[1]=1
ref_layer_id[1][0]=0
vps_layer_id[1]=1は、1番目のレイヤのvps_layer_id[1]が1であることを示し、これはビット列「000001」でシグナリングされる。「000001」のうち、前部の3ビット(000)は、空間的ディメンションを示すdependency IDを意味し、後部の3ビット(001)は、画質ディメンションを示すquality IDを意味する。
num_direct_ref_layers[1]=1は、1番目のレイヤが直接的に参照するレイヤの個数が1個であることを示し、ref_layer_id[1][0]=0は、直接参照するレイヤのIDが0番目のレイヤであることを示す。
vps_layer_id[2]=16(010000)
num_direct_ref_layers[2]=1
ref_layer_id[2][0]=0
vps_layer_id[2]=16は、2番目のレイヤのvps_layer_id[2]が16であることを示し、これはビット列「001000」でシグナリングされる。「001000」のうち、前部の3ビット(001)は、空間的ディメンションを示すdependency IDを意味し、後部の3ビット(000)は、画質ディメンションを示すquality IDを意味する。
num_direct_ref_layers[2]=1は、2番目のレイヤが直接的に参照するレイヤの個数が1であることを意味し、ref_layer_id[2][0]=0は、直接参照するレイヤのIDが0番目のレイヤであることを示す。
即ち、2番目のレイヤと1番目のレイヤは、同じ0番目のレイヤを直接的に参照する。
vps_layer_id[3]=17(010001)
num_direct_ref_layers[3]=1
ref_layer_id[3][0]=2
vps_layer_id[3]=17は、3番目のレイヤのvps_layer_id[3]が17であることを示し、これはビット列「001001」でシグナリングされる。「001001」のうち、前部の3ビット(001)は、空間的ディメンションを示すdependency IDを意味し、後部の3ビット(001)は、画質ディメンションを示すquality IDを意味する。
num_direct_ref_layers[3]=1は、3番目のレイヤが直接的に参照するレイヤの個数が1個であることを示し、ref_layer_id[3][0]=2は、直接参照するレイヤのIDが2番目のレイヤであることを示す。
vps_layer_id[4]=32(100000)
num_direct_ref_layers[4]=1
ref_layer_id[4][0]=2
vps_layer_id[4]=32は、4番目のレイヤのvps_layer_id[4]が32であることを示し、これはビット列「010000」でシグナリングされる。「010000」のうち、前部の3ビット(010)は、空間的ディメンションを示すdependency IDを意味し、後部の3ビット(000)は、画質ディメンションを示すquality IDを意味する。
num_direct_ref_layers[4]=1は、4番目のレイヤが直接的に参照するレイヤの個数が1個であることを示し、ref_layer_id[4][0]=2は、直接参照するレイヤのIDが2番目のレイヤであることを示す。
vps_layer_id[5]=33(100001)
num_direct_ref_layers[5]=1
ref_layer_id[5][0]=4
vps_layer_id[5]=33は、5番目のレイヤのvps_layer_id[5]は33であることを示し、これはビット列「010001」でシグナリングされる。「010001」のうち、前部の3ビット(010)は、空間的ディメンションを示すdependency IDを意味し、後部の3ビット(001)は、画質ディメンションを示すquality IDを意味する。
num_direct_ref_layers[5]=1は、5番目のレイヤが直接的に参照するレイヤの個数が1個であることを示し、ref_layer_id[5][0]=4は、直接参照するレイヤのIDが4番目のレイヤであることを示す。
表5は、本発明の他の実施例に係るビデオパラメータセットの拡張を示す。
表5を参照すると、vps_extension_byte_alignment_reserved_one_bitは、1になる。
num_dimensions_minus1[i]に1を加えた値は、各レイヤでシグナリングされるディメンションタイプとディメンションIDの個数を示す。
dimension_type[i]は、表4に示すように、i番目のレイヤのj番目のスケーラビリティディメンションタイプを示す。
dimension_len[i]は、i番目のレイヤのディメンションIDに対する長さ、即ち、ビット数を示し、dimension_len[i]の値は、1〜8の範囲の値になることができる。
dimension_len[i]は、dimension_id_lenまたはdimension_id_len_minus1などの構文要素でシグナリングされることもできる。
vps_layer_id[i]は、依存性情報が適用されるi番目のレイヤのレイヤIDを示し、vps_layer_id[i]の各ビットは、下記のように構成されることができる。
dimension_len[0]+dimension_len[1]+…+dimension_len[num_dimension_minus1]
即ち、vps_layer_id[i]のビット数は、dimension_len[i]またはdimension_id_len_minus1に1を加えた値、即ち、dimension_len[i]またはdimension_id_len_minus1により特定される値の和のビット数を有することができる。
ビデオパラメータセットに含まれているレイヤID情報は、NALユニットヘッダで含まれているレイヤを識別する情報と同じである。
num_direct_ref_layers[i]は、i番目のレイヤが直接的に参照するレイヤの個数を示す。
ref_layer_id[i][j]は、i番目のレイヤが直接的に参照するj番目のレイヤを識別する情報である。
vps_layer_id[i]を示すビット数が表3では6ビットに限定されているが、表5のvps_layer_id[i]は、その長さが固定されたビットではない。vps_layer_id[i]に対するディスクリプタは、u(n)であり、これは情報伝達のために整数のnビットを利用することを意味し、nは、他のシンタックス値に依存して変更されることができる。本実施例による場合、レイヤを識別するレイヤID、vps_layer_id[i]のビット数は、dimension_len[i]の総和によって決定されることができる。
即ち、本実施例による場合、dimension_lenの和は制限されるものではなく、ただし、各dimension_len[i]は、3ビットの値、即ち、最大8まで有することができることを意味する。
表6は、本発明の他の実施例に係るビデオパラメータセットの拡張を示す。
表6を参照すると、vps_extension_byte_alignment_reserved_one_bitは、1になる。
num_dimensions_minus1[i]に1を加えた値は、各レイヤでシグナリングされるディメンションタイプとディメンションIDの個数を示す。
dimension_type[i]は、表4に示すように、i番目のレイヤのj番目のスケーラビリティディメンションタイプを示す。
dimension_len[i]は、i番目のレイヤのディメンションIDに対する長さ、即ち、ビット数を示し、dimension_len[i]の値は、1〜8の範囲の値になることができる。
vps_layer_id[i]は、依存性情報が適用されるi番目のレイヤのレイヤIDを示し、vps_layer_id[i]の各ビットは、下記のように構成されることができる。
dimension_len[0]+dimension_len[1]+…+dimension_len[num_dimension_minus1]
ビデオパラメータセットに含まれているレイヤID情報は、NALユニットヘッダで含まれているレイヤを識別する情報と同じである。
num_direct_ref_layers[i]は、i番目のレイヤが直接的に参照するレイヤの個数を示す。
ref_layer_id[i][j]は、i番目のレイヤが直接的に参照するj番目のレイヤを識別する情報である。
本実施例による場合、dimension_len[i]に対するディスクリプタとしてue(v)が割り当てられることができる。ue(v)は、指数ゴロム方式に基づいて符号化されるシンタックス要素を示し、これは情報が固定長さ符号化でない適応的にビット長さを決定する符号化方式によってコーディングされることを示す。指数ゴロム符号化方式が適用される場合は、指数ゴロムコードによって可変的にビットの長さが決定されることができるため、dimension_len[i]を示すために使われるビットの個数は可変的である。
dimension_len[i]のビット数によってvps_layer_id[i]も可変的な値を有することができる。
図8は、本発明の一実施例に係るビデオエンコーディング装置を示す制御ブロック図である。
図8に示すように、本実施例に係るエンコーディング装置は、第1のエンコーディング部810、第2のエンコーディング部820及び情報生成部830を含む。
第1のエンコーディング部810は、図1のビデオエンコーディング装置において、レイヤ0のエンコーディングのためのエンコーディング部135に対応されることができ、第2のエンコーディング部820は、図1のビデオエンコーディング装置において、レイヤ1のエンコーディングのためのエンコーディング部105に対応されることができる。
第1のエンコーディング部810及び第2のエンコーディング部820では、各レイヤに対する映像に対する予測、変換及びエントロピーコーディングが行われ、このような内容は、図1を参照して説明されたエンコーディング装置の説明と同様であるため省略する。
エンコーディング装置は、二つのレイヤでない三つ以上のレイヤに対するエンコーディングを実行することができ、この場合、第3のエンコーディング部、第4のエンコーディング部をさらに含むことができる。
本実施例に係る情報生成部830は、各エンコーディング部810、820でレイヤがエンコーディングされる時、レイヤのスケーラビリティに対する情報を生成する。情報生成部830は、第1のエンコーディング部810に含まれている部分的な構成であってもよく、第2のエンコーディング部820に含まれることができる一構成であってもよい。または、情報生成部830は、各エンコーディング部810、820に含まれる構成で設計されることもできる。即ち、説明の便宜のために、情報生成部830は、図8に独立の構成で示したが、情報生成部830の物理的な構造及び位置は、図8に限定されるものではない。
情報生成部830は、ディメンションタイプの個数、スケーラビリティタイプを示すディメンションタイプ、ディメンションIDの長さを示す情報、ディメンションID、レイヤIDなどを生成することができる。ディメンションタイプとディメンションIDのマッピング関係は、所定の表に基づいて生成されることができる。
レイヤIDのビット数は、ディメンションIDの長さ、即ち、ディメンションIDのビット数を加えた値であり、例えば、レイヤIDが6ビットの場合、該当レイヤのディメンションIDの全体ビット数は、6ビットになる。
また、情報生成部830は、該当レイヤが直接的に参照するレイヤの個数及び参照レイヤを識別する参照レイヤIDに対する情報を生成することができる。
このような情報生成部830で生成された情報は、他の情報と同様にエンコーディング過程を介してビットストリーム形態でビデオデコーディング装置に送信される。
図9は、本発明の一実施例に係るビデオデコーディング装置を示す制御ブロック図である。
図9に示すように、本実施例に係るデコーディング装置は、情報把握部910、第1のデコーディング部920及び第2のデコーディング部930を含む。
本実施例に係る情報把握部910は、ビデオエンコーディング装置から受信されるビットストリームに基づいて各デコーディング部920、930でレイヤがデコーディングされる時、レイヤ間スケーラビリティ情報を把握する。情報把握部910は、ビットストリームをパーシングするパーシング部で具現されることができ、またはビットストリームをエントロピーデコーディングするエントロピーデコーディング部で具現されることもできる。
このような情報把握部910は、第1のデコーディング部920に含まれている部分的な構成であってもよく、第2のデコーディング部930に含まれることができる一構成であってもよい。または、情報把握部910は、各デコーディング部920、930に含まれる複数の構成要素で設計されることもできる。即ち、説明の便宜のために、情報把握部910は、図9に独立の構成で示したが、情報把握部910の物理的な構造及び位置は、図9に限定されるものではない。
エンコーディング装置から受信されて情報把握部910で把握される情報は、ディメンションタイプの個数、スケーラビリティタイプを示すディメンションタイプ、ディメンションIDの長さを示す情報、ディメンションID、レイヤIDなどを含むことができる。ディメンションタイプとディメンションIDのマッピング関係は、所定の表に基づいて把握されることができる。
また、情報把握部910は、該当レイヤが直接的に参照するレイヤの個数及び参照レイヤを識別する参照レイヤIDに対する情報も受信して把握することができる。
情報把握部910で把握されたレイヤ間スケーラビリティ情報は、デコーディング部920、930に伝達され、デコーディング部920、930は、スケーラビリティ情報に基づいてレイヤ間予測及び復元を実行することができる。
第1のデコーディング部920は、図2のビデオデコーディング装置において、レイヤ0のデコーディングのためのデコーディング部250に対応されることができ、第2のデコーディング部930は、図2のビデオデコーディング装置において、レイヤ1のデコーディングのためのデコーディング部210に対応されることができる。
第1のデコーディング部920及び第2のデコーディング部930では各レイヤの映像に対するエントロピーデコーディング、逆変換及び予測、復元が行われ、このような内容は、図2を参照して説明されたデコーディング装置の説明と同様であるため省略する。
デコーディング装置は、二つのレイヤでない三つ以上のレイヤに対するデコーディングを実行することができ、この場合、第3のデコーディング部、第4のデコーディング部をさらに含むことができる。
図10は、本発明による映像情報のエンコーディング方法を説明した制御流れ図である。
図示されているように、エンコーディング装置は、複数のスケーラビリティに対する情報を含むビデオパラメータセットに対する情報をエンコーディングする(S1001)。
ビデオパラメータセットに含まれている複数のスケーラビリティに対する情報は、ディメンションタイプの個数、スケーラビリティタイプを示すディメンションタイプ、ディメンションIDの長さを示す情報、ディメンションID、レイヤIDなどを含むことができる。ディメンションIDは、特定のディメンションタイプが有することができるレイヤに対するインデックスを意味する。
ディメンションタイプとディメンションIDのマッピング関係は、ルックアップテーブルのような表を介して設定されることができる。
レイヤIDのビット数は、ディメンションIDの長さ、即ち、ディメンションIDのビット数を加えた値であり、例えば、レイヤIDが6ビットの場合、該当レイヤのディメンションIDの全体ビット数は、6ビットになる。
また、ビデオパラメータセットには該当レイヤが直接的に参照するレイヤの個数及び参照レイヤを識別する参照レイヤIDに対する情報を含むことができる。
エンコーディング装置は、エンコーディングされたビデオパラメータセットに対する情報をビットストリームで送信する(S1002)。
図11は、本発明による映像情報のデコーディング方法を説明するための制御流れ図である。
図11を参照すると、デコーディング装置は、複数のスケーラビリティに対する情報を含むビデオパラメータセット拡張に対する情報を受信する(S1101)。
その後、デコーディング装置は、ビデオパラメータセットをパーシングしてビットストリームに含まれているスケーラビリティの情報を把握、即ち、スケーラビリティ情報を誘導する(S1102)。映像情報に対するパーシングは、エントロピー復号化部または別途のパーシング部で実行されることができる。
ビデオパラメータセットに含まれている複数のスケーラビリティに対する情報は、ディメンションタイプの個数、スケーラビリティタイプを示すディメンションタイプ、ディメンションIDの長さを示す情報、ディメンションID、レイヤIDなどを含むことができる。ディメンションIDは、特定のディメンションタイプが有することができるレイヤに対するインデックスを意味する。
ディメンションタイプとディメンションIDのマッピング関係は、表を介して設定されることができ、デコーディング装置は、このような表を利用してスケーラビリティを把握することができる。
レイヤIDのビット数は、ディメンションIDの長さ、即ち、ディメンションIDのビット数を加えた値であり、例えば、レイヤIDが6ビットの場合、該当レイヤのディメンションIDの全体ビット数は、6ビットになる。
複数のスケーラビリティをサポートするビットストリームでレイヤIDとスケーラビリティディメンションID(scalability dimension ID)との間の関係を指示する方法として、レイヤIDとスケーラビリティディメンションID(scalability dimension ID)との間のマッピング方法を知らせる第1の方法と、レイヤIDのビットを分割(partitioningまたはsplicing)して割り当てられたビットにどのようなディメンションタイプが存在するかを知らせる第2の方法が存在できる。
レイヤIDとディメンションIDとの間の関係を指示する方法としてレイヤIDとディメンションIDとの間のマッピング方法を知らせる第1の方法が適用される場合、デコーディング装置は、ディメンションIDを受信することができる。この場合、デコーディング装置は、ディメンションIDの長さを示す情報を介して該当ディメンションに対する情報が全体レイヤIDのうち、何ビットに該当するかを把握し、該当ビット数に対応するディメンションIDを把握してレイヤIDとディメンションIDをマッピングさせることができる。
例えば、view IDの長さが3ビットであり、dependency IDの長さが2ビットである場合、多視点スケーラビリティを示すディメンションIDは、3ビットの情報でシグナリングされ、空間的スケーラビリティを示すディメンションIDは、2ビットの情報でシグナリングされることができる。
一方、レイヤIDのビット数を分割(splicing)して割り当てられたビットにどのようなディメンションタイプが存在するかを知らせる第2の方法によりレイヤIDとディメンションIDをマッピングする場合、デコーディング装置は、レイヤIDを分割して直接的にディメンションIDをシグナリングすることもできる。この場合、ディメンションIDは、デコーディング装置にシグナリングされない。
例えば、レイヤIDが6ビットであり、多視点スケーラビリティと空間的スケーラビリティがサポートされると仮定する。多視点スケーラビリティと空間的スケーラビリティが各々3ビットずつ分割してレイヤIDを構成することができる。レイヤIDが「001010」の場合、view IDは「001」であり、dependency IDは「010」であると把握されることができる。
前記二つの方法は、レイヤIDのビット数を分割して使用するかどうかを示すフラグ情報を介して区分されることができる。第1の方法が適用される場合、レイヤIDのビット数を分割して使用するかどうかを示すフラグ情報は0であり、第2の方法が適用される場合、レイヤIDのビット数を分割して使用するかどうかを示すフラグ情報は1である。
また、ビデオパラメータセットには該当レイヤが直接的に参照するレイヤの個数及び参照レイヤを識別する参照レイヤIDに対する情報を含むことができる。
前述したように、本発明によると、ビットストリーム内のスケーラビリティ情報を記述し、特に、ディメンション情報とレイヤ情報を互いにマッチングすることで、レイヤを識別することができる方法及びそれを利用する装置が提供される。
前述した例示的なシステムにおいて、方法は、一連のステップまたはブロックで流れ図に基づいて説明されているが、本発明は、ステップの順序に限定されるものではなく、あるステップは、前述と異なるステップと、異なる順序にまたは同時に発生できる。また、前述した実施例は、多様な態様の例示を含むことができるため、各実施例の組合せも本発明の一実施例として理解しなければならない。したがって、本発明は、特許請求の範囲内に属する全ての交替、修正及び変更を含む。