本発明は、多様な変更を加えることができ、多様な実施例を有することができ、特定実施例を図面に例示して詳細な説明に詳細に説明する。しかし、これは本発明を特定の実施形態に対して限定するものではなく、本発明の思想及び技術範囲に含まれる全ての変更、均等物乃至代替物を含むと理解しなければならない。各図面を説明しながら類似の参照符号を類似の構成要素に対して使用した。
第1、第2などの用語は、多様な構成要素の説明に使うことができるが、前記構成要素は、前記用語により限定されてはならない。前記用語は、一つの構成要素を他の構成要素から区別する目的にのみ使われる。例えば、本発明の権利範囲を外れない限り、第1の構成要素は第2の構成要素と命名することもでき、同様に、第2の構成要素も第1の構成要素と命名することもできる。及び/又はという用語は、複数の関連記載項目の組合せ又は複数の関連記載項目のうちいずれの項目をも含む。
一構成要素が他の構成要素に「連結されている」又は「接続されている」と言及された場合、該当他の構成要素に直接的に連結されている、又は接続されているが、中間に他の構成要素が存在することもできると理解しなければならない。反面、一構成要素が他の構成要素に「直接連結されている」又は「直接接続されている」と言及された場合、中間に他の構成要素が存在しないと理解しなければならない。
本出願で使用した用語は、単に特定の実施例を説明するために使われたものであり、本発明を限定するものではない。単数の表現は、文脈上明白に異なる意味ではない限り、複数の表現を含む。本出願において、「含む」又は「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はそれらを組合せたものが存在することを指定するものであり、一つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はそれらを組合せたものの存在又は付加可能性を予め排除しないと理解しなければならない。
以下、添付図面を参照して、本発明の好ましい実施例をさらに詳細に説明する。以下、図面において、同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
図1は、本発明の実施例に係る映像符号化装置を示すブロック図である。
図1を参照すると、映像符号化装置100は、ピクチャ分割部105、予測部110、変換部115、量子化部120、再整列部125、エントロピー符号化部130、逆量子化部135、逆変換部140、フィルタ部145、及びメモリ150を含むことができる。
図1に示す各構成部は、映像符号化装置で互いに異なる特徴的な機能を示すために独立的に図示するものであり、各構成部が分離されたハードウェアや一つのソフトウェア構成単位に構成されることを意味しない。即ち、各構成部は、説明の便宜上、それぞれの構成部として羅列して含むものであり、各構成部のうち少なくとも二つの構成部が統合されて一つの構成部からなり、又は一つの構成部が複数個の構成部に分けられて機能を遂行することができ、このような各構成部の統合された実施例及び分離された実施例も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
また、一部の構成要素は、本発明で本質的な機能を遂行する必須な構成要素ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除いた本発明の本質具現に必須な構成部のみを含んで具現されることができ、単に性能向上のために使われる選択的構成要素を除いた必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
ピクチャ分割部105は、入力されたピクチャを少なくとも一つの処理単位に分割することができる。このとき、処理単位は、予測単位(Prediction Unit:PU)であってもよく、変換単位(Transform Unit:TU)であってもよく、符号化単位(Coding Unit:CU)であってもよい。ピクチャ分割部105では一つのピクチャに対して複数の符号化単位、予測単位、及び変換単位の組合せに分割し、所定の基準(例えば、費用関数)に一つの符号化単位、予測単位、及び変換単位の組合せを選択してピクチャを符号化することができる。
例えば、一つのピクチャは、複数個の符号化単位に分割することができる。ピクチャで符号化単位を分割するためには、クアッドツリー構造(Quad Tree Structure)のような再帰的なツリー構造を使用することができ、一つの映像又は最大大きさ符号化単位をルートにして異なる符号化単位に分割される符号化ユニットは、分割された符号化単位の個数ほどの子ノードを有して分割することができる。一定の制限によってこれ以上分割されない符号化単位は、リーフノードとなる。即ち、一つのコーディングユニットに対して正方形分割のみが可能であると仮定する場合、一つの符号化単位は、最大4個の異なる符号化単位に分割することができる。
以下、本発明の実施例において、符号化単位は、符号化をする単位という意味だけでなく、復号化をする単位という意味として使用することができる。
予測単位は、一つの符号化単位内で同じ大きさの少なくとも一つの正四角形又は長方形などの形態を有して分割されたり、一つの符号化単位内で分割された予測単位のうち一つの予測単位の形態が異なる予測単位の形態と異なる形態を有して分割されたりすることができる。
符号化単位に基づいて画面内予測を実行する予測単位を生成時に最小符号化単位でない場合、複数の予測単位(N×N)に分割せずに、画面内予測を実行することができる。
予測部110は、画面間予測を実行する画面間予測部と、画面内予測を実行する画面内予測部と、を含むことができる。予測単位に対して画面間予測を使用するか、画面内予測を実行するかを決定し、各予測方法による具体的な情報(例えば、画面内予測モード、動きベクトル、参照ピクチャ等)を決定することができる。このとき、予測が実行される処理単位と予測方法及び具体的な内容が決まる処理単位は異なってもよい。例えば、予測の方法と予測モードなどは、予測単位に決定され、予測の実行は、変換単位に実行されることもできる。生成された予測ブロックと原本ブロックとの間の残差値(残差ブロック)は、変換部115に入力することができる。また、予測のために使用した予測モード情報、動きベクトル情報などは、残差値と共にエントロピー符号化部130で符号化されて復号化装置に伝達することができる。特定の符号化モードを使用する場合、予測部110を介して予測ブロックを生成せずに、原本ブロックをそのまま符号化して復号化部に送信することも可能である。
画面間予測部は、現在ピクチャの以前ピクチャ又は以後ピクチャのうち少なくとも一つのピクチャの情報に基づいて予測単位を予測することができる。画面間予測部は、参照ピクチャ補間部、動き予測部、動き補償部を含むことができる。
参照ピクチャ補間部ではメモリ150から参照ピクチャ情報の提供を受け、参照ピクチャで整数画素以下の画素情報を生成することができる。輝度画素の場合、1/4画素単位に整数画素以下の画素情報を生成するためにフィルタ係数を異にするDCTベースの8タッブ補間フィルタ(DCT−based Interpolation Filter)を使うことができる。色差信号の場合、1/8画素単位に整数画素以下の画素情報を生成するためにフィルタ係数を異にするDCTベースの4タッブ補間フィルタ(DCT−based Interpolation Filter)を使うことができる。
動き予測部は、参照ピクチャ補間部により補間された参照ピクチャに基づいて動き予測を実行することができる。動きベクトルを算出するための方法として、FBMA(Full search−based Block Matching Algorithm)、TSS(Three Step Search)、NTS(New Three−Step Search Algorithm)等、多様な方法を使うことができる。動きベクトルは、補間された画素に基づいて1/2又は1/4画素単位の動きベクトル値を有することができる。動き予測部では動き予測方法を異にして現在予測単位を予測することができる。動き予測方法として、スキップ(Skip)方法、マージ(Merge)方法、AMVP(Advanced Motion Vector Prediction)方法など、多様な方法を使うことができる。
以下、本発明の実施例において、AMVP方法を使用して画面間予測を実行する時、候補予測動きベクトルリストを構成する方法に対して開示する。
画面内予測部は、現在ピクチャ内の画素情報である現在ブロック周辺の参照ピクセル情報に基づいて予測単位を生成することができる。現在予測単位の周辺ブロックが画面間予測を実行したブロックであるため、参照ピクセルが画面間予測を実行したピクセルの場合、画面間予測を実行したブロックに含まれる参照ピクセルを周辺の画面内予測を実行したブロックの参照ピクセル情報に取り替えて使用することができる。即ち、参照ピクセルが使用可能でない場合、使用可能でない参照ピクセル情報を使用可能な参照ピクセルのうち少なくとも一つの参照ピクセルに取り替えて使用することができる。
画面内予測における予測モードは、参照ピクセル情報を予測方向によって使用する方向性予測モードと、予測実行時に方向性情報を使用しない非方向性モードと、を有することができる。輝度情報を予測するためのモードと色差情報を予測するためのモードが異なってもよく、色差情報を予測するために輝度情報を予測した画面内予測モード情報又は予測された輝度信号情報を活用することができる。
画面内予測を実行する時、予測単位の大きさと変換単位の大きさが同じ場合、予測単位の左側に存在するピクセル、左側上段に存在するピクセル、上段に存在するピクセルに基づいて予測単位に対する画面内予測を実行するが、画面内予測を実行する時、予測単位の大きさと変換単位の大きさが異なる場合、変換単位に基づく参照ピクセルを利用して画面内予測を実行することができる。また、最小符号化単位に対してのみN×N分割を使用する画面内予測を使用することができる。
画面内予測方法は、予測モードによって参照画素にMDIS(Mode Dependent Intra Smoothing)フィルタを適用した後、予測ブロックを生成することができる。参照画素に適用されるMDISフィルタの種類は異なってもよい。画面内予測方法を実行するために現在予測単位の画面内予測モードは、現在予測単位の周辺に存在する予測単位の画面内予測モードから予測することができる。周辺予測単位から予測されたモード情報を利用して現在予測単位の予測モードを予測する場合、現在予測単位と周辺予測単位の画面内予測モードが同じであると、所定のフラグ情報を利用して現在予測単位と周辺予測単位の予測モードが同じであるという情報を送信することができ、もし、現在予測単位と周辺予測単位の予測モードが異なると、エントロピー符号化を実行して現在ブロックの予測モード情報を符号化することができる。
また、予測部110で生成された予測単位に基づいて予測を実行した予測単位と予測単位の原本ブロックとの差分値である残差値(Residual)情報を含む残差ブロックを生成することができる。生成した残差ブロックは、変換部115に入力することができる。変換部115において、原本ブロックと予測部110を介して生成された予測単位の残差値(residual)情報を含む残差ブロックをDCT(Discrete Cosine Transform)又はDST(Discrete Sine Transform)のような変換方法を使用して変換することができる。残差ブロックを変換するためにDCTを適用するかDSTを適用するかは、残差ブロックを生成するために使われた予測単位の画面内予測モード情報に基づいて決定することができる。
量子化部120は、変換部115から周波数領域に変換された値を量子化することができる。ブロックによって又は映像の重要度によって量子化係数を変えることができる。量子化部120で算出された値は、逆量子化部135と再整列部125に提供されることができる。
再整列部125は、量子化された残差値に対して係数値の再整列を実行することができる。
再整列部125は、係数スキャニング(Coefficient Scanning)方法を介して2次元のブロック形態係数を1次元のベクトル形態に変更することができる。例えば、再整列部125において、ジグザグスキャン(Zig−Zag Scan)方法を利用してDC係数から高周波数領域の係数までスキャンして1次元ベクトル形態に変更することができる。変換単位の大きさ及び画面内予測モードによってジグザグスキャン方法でない、2次元のブロック形態係数を列方向にスキャンする垂直スキャン方法、2次元のブロック形態係数を行方向にスキャンする水平スキャン方法を使うことができる。即ち、変換単位の大きさ及び画面内予測モードによって、ジグザグスキャン、垂直方向スキャン、及び水平方向スキャンのうちいずれのスキャン方法を使うかを決定することができる。
エントロピー符号化部130は、再整列部125により算出された値に基づいてエントロピー符号化を実行することができる。エントロピー符号化は、例えば、指数ゴロム(Exponential Golomb)、VLC(Variable Length Coding)、CABAC(Context−Adaptive Binary Arithmetic Coding)のような多様な符号化方法を使用することができる。
エントロピー符号化部130は、再整列部125及び予測部110から符号化単位の残差値係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、予測単位情報及び送信単位情報、動きベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報など、多様な情報を符号化することができる。
エントロピー符号化部130では再整列部125に入力された符号化単位の係数値をエントロピー符号化することができる。
逆量子化部135及び逆変換部140において、量子化部120で量子化された値を逆量子化し、変換部115で変換された値を逆変換する。逆量子化部135及び逆変換部140で生成された残差値(Residual)は、予測部110に含まれている動き推定部、動き補償部及びイントラ予測部を介して予測された予測単位と加えられて復元ブロック(Reconstructed Block)を生成することができる。
フィルタ部145は、デブロッキングフィルタ、オフセット補正部、ALF(Adaptive Loop Filter)のうち少なくとも一つを含むことができる。
デブロッキングフィルタ145は、復元されたピクチャでブロック間の境界のため発生したブロック歪曲を除去することができる。デブロッキングを実行するかどうかを判断するために、ブロックに含まれているいくつかの列又は行に含まれているピクセルに基づいて現在ブロックにデブロッキングフィルタを適用するかどうかを判断することができる。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度によって強いフィルタ(Strong Filter)又は弱いフィルタ(Weak Filter)を適用することができる。また、デブロッキングフィルタの適用において、垂直フィルタリング及び水平フィルタリングを実行する時、水平方向フィルタリング及び垂直方向フィルタリングが並行処理されるようにすることができる。
オフセット補正部は、デブロッキングを実行した映像に対してピクセル単位に原本映像とのオフセットを補正することができる。特定ピクチャに対するオフセット補正を実行するために映像に含まれているピクセルを一定数の領域に区分した後、オフセットを実行する領域を決定し、該当領域にオフセットを適用する方法又は各ピクセルのエッジ情報を考慮してオフセットを適用する方法を使用することができる。
ALF(Adaptive Loop Filter)は、フィルタリングした復元映像と元来の映像を比較した値に基づいてフィルタリングを実行することができる。映像に含まれているピクセルを所定のグループに分けた後、該当グループに適用される一つのフィルタを決定してグループ毎に差別的にフィルタリングを実行することができる。ALFを適用するかどうかに関連した情報は、輝度信号は符号化単位(Coding Unit;CU)別に送信されることができ、それぞれのブロックによって適用されるALFの大きさ及び係数は変わることができる。ALFは、多様な形態を有することができ、フィルタにより含まれる係数の個数も変わることができる。このようなALFのフィルタリング関連情報(フィルタ係数情報、ALF On/Off情報、フィルタ形態情報)は、ビットストリームで所定のパラメータセットに含まれて送信されることができる。
メモリ150は、フィルタ部145を介して算出された復元ブロック又はピクチャを格納することができ、格納された復元ブロック又はピクチャは、画面間予測を実行する時、予測部110に提供することができる。
図2は、本発明の実施例に係る映像復号化装置を示すブロック図である。
図2を参照すると、映像復号化装置200は、エントロピー復号化部210、再整列部215、逆量子化部220、逆変換部225、予測部230、フィルタ部235、メモリ240を含むことができる。
映像符号化装置から映像ビットストリームが入力された場合、入力されたビットストリームは、映像符号化部と反対の手順に復号化されることができる。
エントロピー復号化部210は、映像符号化装置のエントロピー符号化部でエントロピー符号化を実行したことと反対の手順にエントロピー復号化を実行することができ、エントロピー復号化部でエントロピー復号化を実行した残差値は、再整列部215に入力されることができる。
エントロピー復号化部210において、符号化装置で実行された画面内予測及び画面間予測に関連した情報を復号化することができる。前述したように、映像符号化装置で画面内予測及び画面間予測を実行する時、所定の制約がある場合、このような制約に基づくエントロピー復号化を実行して現在ブロックに対する画面内予測及び画面間予測に関連した情報の提供を受けることができる。
再整列部215は、エントロピー復号化部210でエントロピー復号化されたビットストリームを符号化部で再整列した方法に基づいて再整列を実行することができる。1次元ベクトル形態に表現された係数を再び2次元のブロック形態の係数に復元して再整列することができる。再整列部において、符号化部で実行された係数スキャニングに関連した情報の提供を受け、該当符号化部で実行されたスキャニング順序に基づいて逆にスキャニングする方法を介して再整列を実行することができる。
逆量子化部220は、符号化装置で提供された量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を実行することができる。
逆変換部225は、映像符号化装置で実行した量子化結果に対して変換部で実行したDCT及びDSTに対して逆DCT及び逆DSTを実行することができる。逆変換は、映像符号化装置で決定された送信単位に基づいて実行することができる。映像符号化装置の変換部において、DCTとDSTは、予測方法、現在ブロックの大きさ及び予測方向など、複数の情報によって選択的に実行することができ、映像復号化装置の逆変換部225において、映像符号化装置の変換部で実行された変換情報に基づいて逆変換を実行することができる。
変換を実行する時、変換単位でない符号化単位を基準に変換を実行することができる。
予測部230は、エントロピー復号化部210で提供された予測ブロック生成関連情報とメモリ240で提供された以前に復号化されたブロック又はピクチャ情報に基づいて予測ブロックを生成することができる。
前述したように、映像符号化装置での動作と同様に、画面内予測を実行する時、予測単位の大きさと変換単位の大きさが同じ場合、予測単位の左側に存在するピクセル、左側上段に存在するピクセル、上段に存在するピクセルに基づいて予測単位に対する画面内予測を実行するが、画面内予測を実行する時、予測単位の大きさと変換単位の大きさが異なる場合、変換単位に基づく参照ピクセルを利用して画面内予測を実行することができる。また、最小符号化単位に対してのみN×N分割を使用する画面内予測を使用することができる。
予測部230は、予測単位判別部、画面間予測部及び画面内予測部を含むことができる。予測単位判別部は、エントロピー復号化部で入力される予測単位情報、画面内予測方法の予測モード情報、画面間予測方法の動き予測関連情報など、多様な情報の入力を受けて現在符号化単位で予測単位を区分し、予測単位が画面間予測を実行するか、画面内予測を実行するかを判別することができる。画面間予測部は、映像符号化装置で提供された現在予測単位の画面間予測に必要な情報を利用して現在予測単位が含まれている現在ピクチャの以前ピクチャ又は以後ピクチャのうち少なくとも一つのピクチャに含まれている情報に基づいて現在予測単位に対する画面間予測を実行することができる。
画面間予測を実行するために符号化単位を基準に該当符号化単位に含まれている予測単位の動き予測方法がスキップモード(Skip Mode)、マージモード(Merge Mode)、AMVPモード(AMVP Mode)のうちいずれの方法であるかを判断することができる。
以下、本発明の実施例において、AMVP方法を使用して画面間予測を実行する時、候補予測動きベクトルリストを構成する方法に対して開示する。
画面内予測部は、現在ピクチャ内の画素情報に基づいて予測ブロックを生成することができる。予測単位が画面内予測を実行した予測単位である場合、映像符号化装置で提供された予測単位の画面内予測モード情報に基づいて画面内予測を実行することができる。画面内予測部には、MDISフィルタ、参照画素補間部、DCフィルタを含むことができる。MDISフィルタは、現在ブロックの参照画素にフィルタリングを実行する部分であり、現在予測単位の予測モードによってフィルタの適用の可否を決定して適用することができる。映像符号化装置で提供された予測単位の予測モード及びMDISフィルタ情報を利用して現在ブロックの参照画素にMDISフィルタリングを実行することができる。現在ブロックの予測モードがMDISフィルタリングを実行しないモードの場合、MDISフィルタは適用されない。
参照画素補間部は、予測単位の予測モードが参照画素を補間した画素値に基づいて画面内予測を実行する予測単位の場合、参照画素を補間して整数値以下の画素単位の参照画素を生成することができる。現在予測単位の予測モードが参照画素を補間せずに、予測ブロックを生成する予測モードの場合、参照画素は補間されない。DCフィルタは、現在ブロックの予測モードがDCモードの場合、フィルタリングを介して予測ブロックを生成することができる。
復元されたブロック又はピクチャは、フィルタ部235に提供することができる。フィルタ部235は、デブロッキングフィルタ、オフセット補正部、ALFを含むことができる。
映像符号化装置から該当ブロック又はピクチャにデブロッキングフィルタを適用するかどうかに対する情報及びデブロッキングフィルタを適用した場合には強いフィルタを適用するか弱いフィルタを適用するかに対する情報の提供を受けることができる。映像復号化装置のデブロッキングフィルタにおいて、映像符号化装置で提供されたデブロッキングフィルタ関連情報の提供を受け、映像復号化装置で該当ブロックに対するデブロッキングフィルタリングを実行することができる。映像符号化装置と同様に、まず、垂直デブロッキングフィルタリング及び水平デブロッキングフィルタリングを実行し、重なる部分においては垂直デブロッキング及び水平デブロッキングのうち少なくとも一つを実行することができる。垂直デブロッキングフィルタリング及び水平デブロッキングフィルタリングが重なる部分で以前に実行されない垂直デブロッキングフィルタリング又は水平デブロッキングフィルタリングを実行することができる。このようなデブロッキングフィルタリング過程を介してデブロッキングフィルタリングの並行処理(Parallel Processing)が可能である。
オフセット補正部は、符号化時、映像に適用されたオフセット補正の種類及びオフセット値情報などに基づいて復元された映像にオフセット補正を実行することができる。
ALFは、フィルタリングを実行した後、復元された映像と元来の映像を比較した値に基づいてフィルタリングを実行することができる。符号化装置から提供されたALF適用可否情報、ALF係数情報などに基づいて符号化単位にALFを適用することができる。このようなALF情報は、特定のパラメータセットに含めて提供することができる。
メモリ240は、復元されたピクチャ又はブロックを格納して参照ピクチャ又は参照ブロックとして使用することができ、また、復元されたピクチャを出力部に提供することができる。
前述したように、以下、本発明の実施例において、説明の便宜上、コーディングユニット(Coding Unit)を符号化単位という用語として使用するが、符号化だけでなく、復号化を実行する単位として使用することもできる。
また、以下、本発明の実施例で後述する映像符号化方法及び映像復号化方法は、図1及び図2で前述した映像符号化装置及び映像復号化装置に含まれている各構成部で実行されることができる。構成部の意味は、ハードウェアで構成することができることを意味するだけでなく、アルゴリズムを介して実行することができるソフトウェア的な処理単位も含むことができる。
画面間予測部において、現在フレームでない復元された他のフレームの情報を利用して予測対象ブロックのピクセル値を予測する画面間予測(Inter prediction)を実行することができ、予測に利用される映像を参照映像(Reference picture、又は、参照フレーム、参照ピクチャも同じ意味として使うことができる)という。予測対象ブロックの予測に利用する画面間予測情報は、いずれの参照映像を使用するかを示すことができる参照ピクチャインデックス情報、及び参照映像のブロックと予測対象ブロックとの間のベクトルを示すモーションベクトル(motion vector)情報などである。
予測対象ブロックの画面間予測のために使われる映像で参照映像リストを構成することができる。B slice(B−スライス)の場合には予測を実行するために二つの参照映像リストが必要である。以下の本発明の実施例において、二つの参照映像リストの各々を第1の参照映像リスト(List 0)、第2の参照映像リスト(List 1)といい、また、B sliceのうち第1の参照映像リスト(reference list 0)と第2の参照映像リスト(reference list 1)が同じであるslice(スライス)をGPB slice(GPBスライス)という。
以下の表1は、上位レベルシンタックスに含まれている参照ピクチャ情報と関連した構文要素を示す。以下、本発明の実施例で使われる構文要素及び構文要素が含まれる上位レベルシンタックス(SPS)は任意であり、構文要素は同じ意味を有するが、異なるように定義することができる。該当構文要素が含まれる上位レベルシンタックスも他の上位レベルシンタックス(例えば、参照ピクチャ情報のみを別に分離したシンタックス又はPPS)に含まれることができる。以下、本発明の実施例では特定の場合を仮定して開示するが、構文要素の表現形態及び構文要素が含まれているシンタックス構造は多様であり、このような実施例は本発明の権利範囲に含まれる。
表1を参照すると、SPS(Sequence Parameter Set)のような上位レベルシンタックスには画面間予測に使われる参照ピクチャと関連した情報を含むことができる。
max_num_ref_framesは、DPB(Decoded Picture Buffer)に格納することができる最大参照ピクチャの個数を示す。もし、現在DPBに格納されている参照ピクチャの個数がmax_num_ref_framesで設定された参照ピクチャの個数と同じであると、DPBには追加の参照ピクチャを格納することができる空間がないため、追加の参照ピクチャが格納される場合、DPBに格納された参照ピクチャのうち一つの参照ピクチャをDPBから除去しなければならない。
DPBからいずれの参照ピクチャを除去するかを決定するためにスライスヘッダー(sliceheader)に含まれているadaptive_ref_pic_marking_mode_flagのような構文要素を参照することができる。
adaptive_ref_pic_marking_mode_flagは、DPBから除去する参照映像を決定するための情報であり、adaptive_ref_pic_marking_mode_flagが1の場合、いずれのピクチャを除去するかに対する追加情報を送信することで、DPBから特定の参照ピクチャを除去することができる。adaptive_ref_pic_marking_mode_flagが0の場合、sliding window(スライディングウィンドウ)方法により、例えば、ピクチャがデコーディングされてDPBに格納された順序によってDPBにある参照映像のうち一つの参照映像をDPBから除去することができる。スライディングウィンドウによる参照ピクチャ除去方法は、下記のような方法を使用することができる。
(1)numShortTermを「短期参照映像」としてマーキングされた参照フレームの全体個数と定義し、numLongTermを「長期参照映像」としてマーキングされた参照フレームの全体個数と定義する。
(2)短期参照映像の個数(numShortTerm)と長期参照映像の個数(numLongTerm)を加えた値がMax(max_num_ref_frames,1)の場合、短期参照映像が0より大きいという条件が満たされると、FrameNumWrapが最も小さい値を有する短期参照ピクチャを「参照ピクチャとして使われない」と表示する。
即ち、前記のようなスライディングウィンドウ方法において、DPBに格納された短期参照ピクチャのうち最も早くデコーディングされた参照ピクチャを除去することができる。
本発明の実施例によると、ピクチャが階層的ピクチャ構造を有し、符号化及び復号化される場合、最上位のTemporal level(時間的レベル)を有するピクチャを除いた残りの映像が参照ピクチャとして使われることができる。もし、ピクチャがBスライスを含む場合、Bスライスに含まれているブロックは、L0リスト及びL1リストのうち少なくとも一つの参照ピクチャリストを介してブロックの予測値を生成することができ、L0リスト及びL1リストに含まれて参照ピクチャとして使われることができる参照ピクチャの個数は、メモリ帯域幅の問題のため制限されることができる。
DPBに格納することができる最大限の参照フレームの個数を示す構文要素であるmax_num_ref_framesで設定された最大参照フレームの個数が十分に大きい場合、DPBに格納された参照映像が多くなるため、予測対象ブロックを生成するための参照ピクチャの大部分が使用できるが、映像の解像度が大きくなってメモリの必要量が増加するにつれてmax_num_ref_framesに制限が発生するようになり、必要な参照ピクチャがDPBから除去される場合が発生し、DPBに参照映像として使われるべきピクチャが格納されていなくて参照ピクチャを画面間予測に使用することができない。参照ピクチャがDPBに格納されていない場合、予測ブロックの予測正確度が落ちることができ、このような問題のため符号化効率が低下することがありうる。本発明の実施例に係る参照ピクチャ管理方法ではDPBに参照ピクチャが格納されておらず使用できない場合(unavailable)を減らして画面間予測を実行する時に予測対象ブロックが参照する参照ピクチャが使用できる(available)ように設定する方法に対して開示する。
階層的ピクチャ構造で参照ピクチャとして使われるべき最適の参照ピクチャがDPBに格納されていない場合、符号化効率は減少するが、他のピクチャを参照ピクチャとして使用することもできる。以下、本発明の実施例において、説明の便宜上、最適の参照ピクチャがDPBに存在しない場合を参照ピクチャが使用できない場合(unavailable)と説明し、これは最適の参照ピクチャが使用できずに次善の参照ピクチャを画面間予測に使用する場合を含む。
以下、本発明の実施例において、説明の便宜上、DPBで許容される最大参照映像の個数を示すmax_num_ref_framesを4に設定し、L0リストに含まれることができる最大参照映像の個数(num_ref_idx_l0_active_minus1)を1に設定し、L1リストに含まれることができる最大参照映像の個数(num_ref_idx_l1_active_minus1)を1に設定し、num_ref_idx_lc_active_minus1を3に設定すると仮定する。即ち、DPBで許容される最大参照映像の個数は4個となり、L0リストに含むことができる最大参照映像の個数は2個となり、L1リストに含むことができる最大参照映像の個数は2個となり、LCリストに含むことができる最大参照映像の個数は4個となる。
LCリストは、combination listを示し、L1リストとL0リストを組合せて生成される参照ピクチャリストを示す。LCリストは、予測対象ブロックがunidirectional prediction方法を介して画面間予測を実行する時に使うことができるリストである。ref_pic_list_combination_flagは、ref_pic_list_combination_flagが1の場合、LCリストを使用することを示し、ref_ic_list_combination_flagが0の場合、GPB(Generalized B)であることを示す。GPBは、前述したように、予測を実行するための参照ピクチャリストであるL0リストとL1リストを構成する参照ピクチャが同じピクチャを示す。
本発明の実施例において、GOP(Group of Pictures)構造が8の場合を仮定して説明するが、GOPを構成するピクチャの個数は変えることができ、このような実施例も本発明の権利範囲に含まれる。
図3は、本発明の実施例に係る階層的ピクチャ構造を示す概念図である。
図3を参照すると、GOPに含まれるピクチャのPOC(Picture Order Count)はディスプレイの順序を示し、FrameNumはピクチャの符号化・復号化の順序を示す。階層的符号化構造では最上位のTemporal Level(時間的階層レベル)を有するPOCが1、3、5、7、9、11、13、15の場合を除いた残りの時間的階層に存在する映像が参照映像として使うことができる。
本発明の実施例によると、階層的ピクチャ構造でピクチャの符復号化順序を変化させて使用できない(unavailable)参照ピクチャの個数を減らして使用できる(available)参照ピクチャになるようにすることができる。
階層的ピクチャ構造は、ピクチャの時間的階層を基準に定義することができる。
任意のピクチャが特定のピクチャを参照する場合、任意のピクチャは、自分が参照するピクチャより高い(上位の)時間的階層に含まれることができる。
図3において、POCを基準にし、第0の時間的階層はPOC(0)に該当し、第1の時間的階層はPOC(8)、POC(16)に該当し、第2の時間的階層はPOC(4)、POC(12)に該当し、第3の時間的階層はPOC(2)、POC(6)、POC(10)、POC(14)に該当し、第4の時間的階層はPOC(1)、POC(3)、POC(5)、POC(7)、POC(9)、POC(11)、POC(13)、POC(15)に該当することができる。
本発明の実施例によると、最上位時間的レベルである第4の時間的階層(POC(1)、POC(3)、POC(5)、POC(7)、POC(9)、POC(11)、POC(13)、POC(15))に存在するピクチャと最上位の次に上位の階層である第3の時間的階層に存在する時間的レベル(POC(2)、POC(6)、POC(10)、POC(14))を有する参照ピクチャの復号化順序(FrameNum)を新たに設定することで、使用できる参照映像が既存の階層的ピクチャ構造より多く存在するように変化させることができる。
復号化順序(FrameNum)を変化させるにあたって、階層的ピクチャ構造で最上位の次に上位の時間的階層の一つのピクチャを復号化した後、最上位の次に上位の階層のPOCを基準にしてPOC順序上前後に存在する最上位時間的階層に存在するピクチャを順次復号することができる。即ち、復号化された最上位の次に上位の時間的階層ピクチャ周辺に存在する最上位時間的階層ピクチャを復号化された最上位の次に上位の時間的階層ピクチャよりPOCが大きい残りの最上位の次に上位の時間的階層に存在するピクチャより先に復号化することで、階層的ピクチャ構造の復号化順序を変化させることができる。
図3を参照すると、第0の時間的階層乃至第4の時間的階層からなる階層的ピクチャ構造において、第3の時間的階層ピクチャのうち、一つのピクチャを先に復号化した後、第3の時間的階層ピクチャのPOC(Picture Order Count)を基準にPOC順序上前後に存在する第4の時間的階層に存在するピクチャを他の第3の時間的階層ピクチャより優先的に復号化することができる。例えば、POC(2)である第3の時間的階層ピクチャを復号した後、POC(2)であるピクチャの周辺に存在する第4の時間的階層ピクチャのうち、POC(1)ピクチャとPOC(3)ピクチャを順次に復号化する方法を介して最上位時間的階層に存在する参照ピクチャの復号化ステップと最上位の次に上位の時間的階層に存在する参照ピクチャを復号化するステップの順序を変えることで、DPBに存在するピクチャが使用できる参照ピクチャになる場合を増加させることができる。
以下の表2は、図3に開示した各ピクチャのPOCを基準にしてL0、L1、LCで使われるべき参照ピクチャのPOCと階層的ピクチャ構造に基づいてDPBに格納されたピクチャを示す。DPBでは前述したスライディングウィンドウ方法を使用してDPBに含まれている参照ピクチャのうち少なくとも一つのピクチャを除去することができる。
表2を参照すると、POCが0番〜16番である場合とPOCが11番〜15番である場合、L0リストに必要な参照ピクチャ、L1リストに必要な参照ピクチャ、及びLCリストに必要な参照ピクチャが全部DPBに格納されている参照ピクチャであるため、該当POCのピクチャに対して画面間予測を実行する時に参照ピクチャの全てが使用できる。
例えば、POC(1)である場合、L0リストは優先的にPOC(1)の左側に存在し、且つPOC(1)より時間的階層が低いPOC(0)を優先的に含み、次に、POC(1)の右側に存在し、且つPOC(1)より時間的階層が低いPOC(2)を含ませることができる。L1リストは、優先的にPOC(1)の最も右側に存在し、且つPOC(1)より時間的階層が低いPOC(2)を優先的に含み、次に、POC(1)の2番目に右側に存在し、且つPOC(1)より時間的階層が低いPOC(4)を含ませることができる。
DPBにはPOC(0)、POC(8)、POC(2)、POC(4)が含まれており、POC(1)を予測するための全ての参照ピクチャであるPOC(0)、POC(2)、POC(4)が全部含まれているため、POC(1)を予測するための全ての参照ピクチャは使用できる。
図3の場合にも、POC(12)、POC(10)、POC(9)、POC(11)ではL0予測に対して4回、L1予測に対して1回、LC予測に対して4回の参照映像が使用できない(unavailable)場合が存在するが、既存の階層的ピクチャ構造で使われたFrameNum割当方法と比較して参照映像に対して使用できない(unavailable)回数が減って映像の符復号化効率を上げることができる。
図4は、本発明の実施例に係る階層的ピクチャ構造で復号化順序決定方法を示すフローチャートである。
図4を参照すると、最上位の次に上位の階層のピクチャのうち一つのピクチャを復号化する(ステップS400)。
最上位の次に上位の階層のピクチャのPOC順序より一つ小さいPOCを有する最上位階層ピクチャ及び一つ大きいPOCを有する最上位階層ピクチャを復号化する(ステップS410)。
本発明の実施例によると、最上位の次に上位の階層のピクチャが復号化されてDPBに格納された後、次に、最上位階層に存在する参照ピクチャのうち最上位の次に上位の階層を参照する最上位ピクチャを復号する。即ち、任意の最上位の次に上位の階層ピクチャが復号化された後、前記任意の最上位の次に上位の階層ピクチャを参照する最上位階層ピクチャが復号化され、次に、前記任意の最上位の次に上位の階層ピクチャよりPOCが大きい最上位の次に上位の階層ピクチャが復号化される。
最上位の次に上位の階層のピクチャがPOC(n)とする場合、次に復号化される最上位参照ピクチャは、POC(n−1)及びPOC(n+1)にすることができる。
本発明の他の実施例によると、階層的符号化構造において、DPBで存在する参照ピクチャに対するSliding Window方法を異なるように適用して参照ピクチャの使用可能性を高めることができる。
新たなSliding Window方法は、下記のような方式に適用することができる。
(1)numShortTermを「短期参照映像」としてマーキングされた参照フレームの全体個数と定義し、numLongtTermを「長期参照映像」としてマーキングされた参照フレームの全体個数と定義する。
(2)numShortTermとnumLongTermを加えた値がMax(max_num_ref_frame,1)であり、numShortTermが0より大きい場合、PicOrderCnt(entryShortTerm)が最も小さい値を有する短期参照映像を「参照映像として使われない」とマーキングする。
即ち、本発明の実施例によると、DPBに格納することができるピクチャのうち最も小さいPOC値を有するピクチャをDPBから除去するスライディングウィンドウ方法を使用してDPBに格納された参照ピクチャを管理することができる。
図5は、本発明の実施例に係るスライディングウィンドウ方法を示すフローチャートである。
図5を参照すると、短期参照映像の個数と長期参照映像の個数を算出する(ステップS500)。
DPBに格納されている全体参照映像の個数を算出するために短期参照映像としてマーキングされている参照フレームの個数を算出し、長期参照映像としてマーキングされている参照フレームの個数を算出することができる。
DPBに格納されたピクチャを基準にMax(max_num_ref_frame,1)であり、numShortTermが0より大きいかどうかを判断する(ステップS510)。
ステップS510において、(1)復号化されたピクチャを含んでDPBに格納された短期参照ピクチャ及び長期参照ピクチャを基準に合算されたピクチャの個数がMax(max_num_ref_frame,1)と同じ値を有するかどうか、(2)numShortTermが0より大きいかどうかのような二つの判断がそれぞれの判断手順又は一つの判断手順からなることができる。
DPBに格納されたピクチャを基準にMax(max_num_ref_frame,1)であり、numShortTermが0より大きいかどうかを判断し、DPBでピクチャを除去するかどうかを決定することができる。Max(max_num_ref_frame,1)であり、numShortTermが0より大きい場合は、現在DPBに既に許容することができる最大参照ピクチャの個数以上のピクチャが存在するということを意味し、numShortTermが0より大きいということは短期参照ピクチャが少なくても一つ存在するということを意味する。
Max(max_num_ref_frame,1)であり、numShortTermが0より大きい場合、DPBに存在する短期参照ピクチャのうちPicOrderCnt(entryShortTerm)が最も小さい、即ち、POCが最も小さい短期参照ピクチャがDPBから除去される(ステップS520)。
DPBに格納されたピクチャを基準にMax(max_num_ref_frame,1)でなく、numShortTermが0より大きくない場合、DPBからピクチャは除去されない。
以下の表3は、本発明の実施例に係る新たなスライディングウィンドウ方法を使用した場合、POC別参照ピクチャ可用性を示す。
表3を参照すると、POC(6)である場合、DPBに存在するピクチャが4個(POC(0)、POC(8)、POC(4)、POC(2))であり、追加的にPOC(6)が復号化された場合、最も小さいPOCに該当するPOC(0)をDPBから除去することで、DPBには(POC(8)、POC(4)、POC(2)、POC(6))が含まれることができる。
即ち、本発明の実施例において、DPBに存在する参照ピクチャがmax_num_ref_framesに該当する数のフレームで全部満たされた場合、POCのうち最も小さいPOCナンバーを有する参照ピクチャがDPBから除去される。
表3を参照すると、このようなDPB管理方法を使用することで、POC(1)、POC(3)、POC(9)、POC(11)でL0リストが使用できない場合が4回、L1リストが使用できない場合が4回発生するようになって、既存の階層的ピクチャ構造を使用する場合と比較して参照ピクチャが使用できない場合が減るようになる。
本発明の他の実施例によると、前述した図4及び図5で開示した方法が共に使われることができる。
即ち、本発明の実施例によると、図4で開示した階層的ピクチャ構造でFrameNumを再配列する方法と図5で開示した新たなスライディングウィンドウ方法を同時に適用することができる。
図6は、本発明の実施例に係る参照ピクチャ管理方法を示すフローチャートである。
図6では図4及び図5の状況が共に適用される場合に対して説明する。
最上位の次に上位の階層のピクチャのうち一つのピクチャを復号化する(ステップS600)。
復号化されたピクチャを含んでDPBに格納された短期参照ピクチャ及び長期参照ピクチャを基準に合算されたピクチャの個数がMax(max_num_ref_frame,1)と同じ値を有し、numShortTermが0より大きいかどうかを判断する(ステップS610)。
ステップS610の判断ステップでは(1)復号化されたピクチャを含んでDPBに格納された短期参照ピクチャ及び長期参照ピクチャを基準に合算されたピクチャの個数がMax(max_num_ref_frame,1)と同じ値を有するかどうか、(2)numShortTermが0より大きいかどうかのような二つの判断方法がそれぞれの判断手順からなることもできる。
DPBに格納されたピクチャの数がMax(max_num_ref_frame,1)と同じであり、numShortTermが0より大きい場合、DPBに存在する短期参照ピクチャのうちPicOrderCnt(entryShortTerm)が最も小さい、即ち、POCが最も小さい短期参照ピクチャがDPBから除去される(ステップS620)。
DPBに格納されたピクチャの数がMax(max_num_ref_frame,1)でなく、numShortTermが0より大きくない場合、DPBに格納されたピクチャを除去しない。
最上位の次に上位の階層のピクチャのPOC順序より一つ小さいPOCを有する上位階層ピクチャ及び一つ大きいPOCを有する上位階層ピクチャを復号化する(ステップS630)。
最上位階層ピクチャの場合、参照ピクチャで格納されないため、DPBに格納された参照ピクチャを管理する手順を実行しない。
以下の表4は、図3の方法と表3に開示した方法が共に適用された場合、DPBで参照ピクチャの使用可能性とL0リスト及びL1リストに含まれているピクチャの使用可能性に対して示す。
表4を参照すると、POC(9)において、L0リストを利用した予測に対して1回、LCリストを利用した予測に対して1回の使用できない可能性(unavailability)が発生することで、既存の階層的ピクチャ構造と比較して参照ピクチャの使用できない可能性(unavailability)が減るようになる。
図7は、本発明の実施例に係る映像復号化装置を示す概念図である。
図7を参照すると、映像復号化装置のDPBは、参照ピクチャ格納部700、参照ピクチャ情報判断部720、参照ピクチャ管理部740を含むことができる。
各構成部は、説明の便宜上、それぞれの構成部として羅列して含むものであり、各構成部のうち少なくとも二つが統合されて一つの構成部からなり、又は一つの構成部が複数個の構成部に分けられて機能を遂行することができ、このような各構成部の統合及び分離された実施例の場合も本発明の本質から外れない限り、本発明の権利範囲に含まれる。
また、一部の構成要素は、本発明で本質的な機能を遂行する必須な構成部ではなく、単に性能を向上させるための選択的構成要素である。本発明は、単に性能向上のために使われる構成要素を除いた本発明の本質具現に必須な構成部のみを含んで具現されることができ、単に性能向上のために使われる選択的構成要素を除いた必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
例えば、以下本発明の実施例において、参照ピクチャ格納部700、参照ピクチャ情報判断部720、参照ピクチャ情報更新部740を区分して説明するが、参照ピクチャ格納部700、参照ピクチャ情報判断部720、参照ピクチャ情報更新部740のうち少なくとも一つの構成部を含むことをDPB又はメモリという用語で表現することができる。
参照ピクチャ格納部700には短期参照ピクチャと長期参照ピクチャが格納されている。短期参照ピクチャと長期参照ピクチャは、参照ピクチャ格納部で格納されて除去される方式が異なる。例えば、短期参照ピクチャと長期参照ピクチャは、メモリに格納されて管理される方式が異なる。例えば、短期参照ピクチャは、メモリ内でFIFO(First in First out)のような方式で運営することができ、長期参照ピクチャは、FIFOにより開放が適しない参照ピクチャは、長期参照ピクチャとしてマーキングされて使うことができる。
参照ピクチャ情報判断部720は、階層的ピクチャ構造でピクチャの情報、例えば、POC、FrameNumのようなピクチャ情報を判断し、参照しなければならないピクチャ情報、復号化を実行する順次的ピクチャ情報などを含むことができる。
参照ピクチャ情報判断部720において、階層的ピクチャ構造に基づいて最上位の次に上位の時間的階層ピクチャのうち一つのピクチャを復号化した後、最上位の次に上位の時間的階層ピクチャのPOC(Picture Order Count)を基準にして前記POC順序上前後に存在する最上位時間的階層ピクチャに対して復号化を実行することができるようにピクチャ情報を判断後、参照ピクチャ格納部700に格納することができる。
また、参照ピクチャ情報更新部740において、階層的ピクチャ構造情報、GOP構造情報なども判断し、復号化を実行し、参照ピクチャ格納部700に格納されるピクチャ情報を判断することができる。
参照ピクチャ情報更新部740において、復号化された最上位の次に上位の時間的階層のピクチャを含んでDPBに格納された短期参照ピクチャ及び長期参照ピクチャを基準に合算されたピクチャの個数がMax(max_num_ref_frame,1)と同じ値を有するかどうかを判断することができ、また、numShortTermが0より大きいかどうかを判断することができる。このような判断結果に基づいて参照ピクチャ格納部700に格納されたピクチャの数がMax(max_num_ref_frame,1)と同じであり、numShortTermが0より大きい場合、DPBに存在する前記短期参照ピクチャのうちPOCが最も小さい短期参照ピクチャを参照ピクチャ格納部から除去することができる。
以上で説明した映像符号化及び映像復号化方法は、図1及び図2で前述した各映像符号化装置及び映像復号化装置の各構成部で具現することができる。
以上、実施例を参照して説明したが、該当技術分野の熟練した当業者は、特許請求の範囲に記載された本発明の思想及び領域から外れない範囲内で本発明を多様に修正及び変更可能であることを理解することができる。