本発明の実施形態及び図面に開示された各構成部は、画像符号化装置の互いに異なる特徴的な機能を示すために、独立した構成で示したものである。各構成部が分離されたハードウェアや1つのソフトウェア構成単位でなされことを意味するものではない。すなわち、各構成部は、説明の便宜上、それぞれの構成部に個別に含まれるように配置されるものであって、各構成部のうち、少なくとも2つの構成部が合わせられて1つの構成部からなってもよく、1つの構成部が複数個の構成部に分けられて機能を行ってもよい。このような各構成部の統合された実施形態及び分離された実施形態も本発明の本質から逸脱しない限り、本発明の権利範囲に含まれる。
また、本発明において開示された一部の構成要素は、本発明において本質的な機能を行う必須な構成要素ではなく、単に性能を向上させるための選択的構成要素であり得る。本発明は、単に性能向上のために使用される構成要素を除いた本発明の本質を実現するのに必須な構成部のみを含んで実現されることができ、単に性能向上のために使用される選択的構成要素を除いた必須構成要素のみを含む構造も本発明の権利範囲に含まれる。
図1は、本発明の実施形態に係る符号化装置を示したブロック図である。
図1に示すように、符号化装置は、分割部100、予測部110、画面内予測部103、画面間予測部106、変換部115、量子化部120、再整列部125、エントロピー符号化部130、逆量子化部135、逆変換部140、フィルタ部145、及びメモリ150を備えることができる。
符号化装置は、以下の本発明の実施形態において説明する画像符号化方法により実現されることができるが、一部の構成部での動作は、符号化器の複雑度を下げるために、または速いリアルタイム符号化のために行われないこともある。例えば、予測部で画面内予測を行う際に、リアルタイムで符号化を行うために、全ての画面内予測モード方法を使用して最適の画面内符号化方法を選択する方法を使用せずに、一部の制約的な個数の画面内予測モードを使用して、そのうちから1つの画面内予測モードを最終画面内予測モードとして選択する方法が使用され得る。さらに他の例として、画面内予測または画面間予測を行う際に、使用される予測ブロックの形態を制限的に使用させることも可能である。
符号化装置で処理されるブロックの単位は、符号化を行う符号化単位、予測を行う予測単位、変換を行う変換単位となり得る。符号化単位は、CU(Coding Unit)、予測単位は、PU(Prediction Unit)、変換単位は、TU(Transform Unit)という用語として表現されることができる。
分割部100では、1つの画像(ピクチャー)を複数の符号化ブロック、予測ブロック、及び変換ブロックの組み合わせに分割し、所定の基準(例えば、費用関数)として、そのうちの1つの符号化ブロック、予測ブロック、及び変換ブロックの組み合わせを選択して画像を分割することができる。例えば、画像において符号化単位に分割するためには、クオッドツリー構造(QuadTree Structure)のような帰納的なツリー構造を使用することができる。以下、本発明の実施形態では、符号化ブロックの意味を、符号化をするブロックという意味のみならず、復号化を行うブロックという意味としても使用することができる。
予測ブロックは、画面内予測または画面間予測を行う単位となり得る。画面内予測を行うブロックは、2N×2N、N×Nのような正方形の形態のブロックであってもよく、SDIP(Short Distance Intra Prediction)を使用する長方形の形態のブロックの形態を有してもよい。画面間予測を行うブロックとしては、2N×2N、N×Nのような正方形の形態または正方形の形態の予測ブロックを同じ形態に二分割した形態の2N×N、N×2N、もしくは非対称形態のAMP(Asymetric Motion Partitioning)を使用した予測ブロック分割方法がある。予測ブロックの形態によって変換部115では変換を行う方法が変わることがある。
予測部110は、画面内予測を行う画面内予測部103と画面間予測を行う画面間予測部106とを備えることができる。予測ブロックに対して画面間予測を使用するかまたは画面内予測を行うかが決定されてもよい。予測が行われる処理単位と予測方法が決められる処理ブロックの単位とは異なることがある。例えば、画面内予測を行う場合、予測モードは予測ブロックを基準として決定され、予測を行う過程は変換ブロックを基準として行われることもできる。生成された予測ブロックと原本(オリジナル)ブロックとの間の残差値(残差ブロック)は変換部115に入力されることができる。また、予測のために使用された予測モード情報、動きベクトル情報などは、残差値とともにエントロピー符号化部130で符号化されて復号化器に伝達されることができる。
PCM(Pulse Coded Modulation)符号化モードを使用する場合、予測部110を介して予測を行わずに、オリジナルブロックをそのまま符号化して復号化部に伝送することも可能である。
画面内予測部103では、現在ブロック(予測対象となるブロック)の周辺に存在する参照ピクセルに基づいて画面内予測されたブロックを生成することができる。現在ブロックに対する最適の画面内予測モードを算出するために、現在ブロックに対して画面内予測されたブロックを、複数の画面内予測モードを使用することで生成してから、そのうちの1つの予測ブロックを選択して現在ブロックの予測ブロックとして使用することができる。画面内予測方法において画面内予測モードは、予測方向によって参照ピクセル情報を使用する方向性予測モードと、予測を行うときに方向性情報を使用しない非方向性モードとを有することができる。輝度情報を予測するためのモードと色差情報を予測するためのモードとは種類が相違し得る。色差情報を予測するために、輝度情報を予測した画面内予測モード情報または予測された輝度信号情報を活用することができる。
1つの画面内予測モードを使用して画面内予測を行う現在ブロックは、現在ブロックの周辺ブロックが画面内予測を行うときに使用された画面内予測モード情報から、現在ブロックの画面内予測モードを予測し、現在ブロックの画面内予測モード情報を符号化することができる。すなわち、現在ブロックの画面内予測モードは、現在ブロックの周辺に存在する予測ブロックの画面内予測モードから予測することができる。周辺ブロックから予測されたモード情報を利用して現在ブロックの画面内予測モードを予測する方法として次のような方法を使用することができる。
1)現在ブロックの画面内予測モードと周辺ブロックの画面内予測モードとが同一である場合、所定のフラグ情報を符号化して現在ブロックの画面内予測モードと周辺ブロックの画面内予測モードとが同一であるという情報を伝送することができる。
2)もし、現在ブロックの画面内予測モードと周辺ブロックの画面内予測モードとが相違する場合、現在ブロックの予測モード情報を符号化するために現在ブロックの画面内予測モード情報をエントロピー符号化することができる。
1)及び2)において、現在ブロックの画面内予測モードを符号化するために使用する周辺ブロックの画面内予測モードは、候補画面内予測モードという用語として定義されて使用される。
上記の1)及び2)の方法を行う際に、周辺ブロックの画面内予測モードが利用できなかった場合(例えば、周辺ブロックが存在しないか、周辺ブロックが画面間予測を行った場合)、予め設定された特定の画面内予測モード値を現在ブロックの画面内予測モードを予測するために候補画面内予測モード値として設定することができる。
画面内予測部103は、現在の画像内の画素情報である現在ブロック周辺の参照ピクセル情報に基づいて画面内予測されたブロックを生成することができる。現在ブロックの周辺ブロックが画面間予測を行ったブロックであり、参照ピクセルが画面間予測を行って予測されたピクセルの復元されたピクセルであり得る。このような場合、当該ピクセルを使用せずに周辺の画面内予測を行ったブロックのピクセルを参照ピクセルとして使用して現在ブロックを画面内予測することができる。すなわち、参照ピクセルが利用できなかった場合、利用しなかった参照ピクセルの代わりに他のピクセルを使用することができる。
予測ブロックは、複数個の変換ブロックを含むことができるが、画面内予測を行うとき、予測ブロックのサイズと変換ブロックのサイズとが同一である場合、予測ブロックの左側に存在するピクセル、左上側に存在するピクセル、上側に存在するピクセルに基づいて予測ブロックに対する画面内予測を行うことができる。しかし、画面内予測を行うとき、予測ブロックのサイズと変換ブロックのサイズとが相違して、予測ブロックの内部に複数の変換ブロックが含まれる場合、変換ブロックを基準として決定された参照ピクセルを用いて画面内予測を行うことができる。
また、1つの符号化ブロックは、複数の予測ブロックに分割され得るが、符号化ブロックのサイズが最小の場合に対応する最小符号化ブロックにおいてのみ、1つの符号化ブロックが4個の正方形の予測ブロックに分割されたN×N分割を使用して画面内予測を行うことができる。
画面内予測方法は、画面内予測モードによって参照画素にMDIS(Mode Dependent Intra Smoothing)フィルタを適用した後、予測ブロックを生成することができる。参照ピクセルに適用されるMDISフィルタの種類は変化してもよい。画面内予測が行われた後に画面内の予測されたブロックに適用される追加のフィルタであるMDISフィルタは、参照ピクセルと予測を行われた後に生成された画面内の予測されたブロックとの間に存在する差異を小さくするために用いることができる。MDISフィルタリングを行う際に、画面内予測モードの方向性によって、参照ピクセルと画面内の予測されたブロックに含まれた一部の列において、さまざまなフィルタリングを行うことができる。
本発明の実施形態によれば、現在ブロックのサイズによって画面内予測を行う際に、利用することができる画面内予測モードの数が変化することがある。例えば、画面内予測の対象になる現在ブロックのサイズによって、利用することができる画面内予測モードの数が変化することがある。したがって、現在ブロックに対する画面内予測を行うとき、現在ブロックのサイズが決定され、画面内予測を行うことによって利用することができる画面内予測モードが決定されてもよい。
画面間予測部106は、現在の画像の以前の画像または以後の画像のうち、少なくとも1つの画像に含まれたブロックの情報を参照して予測を行うことができる。画面間予測部106には、参照画像補間部、動き予測部、動き補償部が含まれ得る。
参照画像補間部は、メモリ150から参照画像情報を受信し、参照画像において整数画素以下の画素情報を生成することができる。輝度画素の場合、1/4画素単位で整数画素以下の画素情報を生成するために、フィルタ係数を異にするDCT基盤の8タブ補間フィルタ(DCT−based Interpolation Filter)が使用され得る。色差信号の場合、1/8画素単位で整数画素以下の画素情報を生成するために、フィルタ係数を異にするDCT基盤の4タブ補間フィルタ(DCT−based Interpolation Filter)が使用され得る。
画面間予測部106は、参照画像補間部により補間された参照画像に基づいて動き予測を行うことができる。動きベクトルを算出するための方法として、FBMA(Full search−based Block Matching Algorithm)、TSS(Three Step Search)、NTS(New Three−Step Search Algorithm)など、様々な方法が使用され得る。動きベクトルは、補間された画素に基づいて1/2または1/4画素単位の動きベクトル値を有することができる。画面間予測部106では、種々の画面間予測方法のうちの1つの画面間予測方法を適用して現在ブロックに対する予測を行うことができる。画面間予測方法としては、例えば、スキップ(Skip)方法、マージ(Merge)方法、AMVP(Advanced Motion Vector Prediction)方法など、様々な方法が使用され得る。
予測部110で生成された予測されたブロック(画面内予測されたブロックまたは画面間予測されたブロック)と予測されたブロックのオリジナルブロックとの差値である残差値(Residual)情報を含む残差ブロックが生成され得る。
残差ブロックは、変換部115に入力され得る。変換部115は、オリジナルブロックと予測されたブロックとの残差値(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次元のブロック型係数を行方向にスキャンする水平スキャン方法が使用され得る。すなわち、変換ブロックのサイズ及び画面内予測モードによって、ジグザグスキャン、垂直方向スキャン、及び水平方向スキャンのいずれか1つのスキャン方法が使用されるのかを決定することができる。
エントロピー符号化部130は、再整列部125により算出された値に基づいてエントロピー符号化を行うことができる。エントロピー符号化は、例えば、指数ゴロム(Exponential Golomb)、CAVLC(Context−Adaptive Variable Length Coding)、CABAC(Context−Adaptive Binary Arithmetic Coding)のような様々な符号化方法を使用することができる。
エントロピー符号化部130は、再整列部125及び予測部110から符号化ブロックの残差値係数情報及びブロックタイプ情報、予測モード情報、分割単位情報、予測ブロック情報及び伝送単位情報、動きベクトル情報、参照フレーム情報、ブロックの補間情報、フィルタリング情報など、様々な情報を受信し、所定の符号化方法に基づいてエントロピー符号化を行うことができる。また、エントロピー符号化部130では、再整列部125から入力された符号化単位の係数値をエントロピー符号化することができる。
エントロピー符号化部130では、CABACを用いたHEB(High Efficiency Binarization)方法またはCABACのbypassコーディングをCAVLC係数2進法化方法を活用するHTB(High Throughput Binarization)方法によってエントロピーコーディングを行うことができる。
エントロピー符号化部130は、画面内予測モード情報に対する2進法化を行って現在ブロックの画面内予測モード情報を符号化することができる。エントロピー符号化部130は、このような2進法化動作を行うためのコードワードマッピング部が含まれてもよく、画面内予測を行う予測ブロックのサイズによって2進法化を多様な方法で行うことができる。コードワードマッピング部は、コードワードマッピングテーブルが2進法化の演算によって適応的に生成されるか、コードワードマッピングテーブルを予め格納していてもよい。さらに他の実施形態として、エントロピー符号化部130は、コード番号マッピングを行うコード番号マッピング部とコードワードマッピングを行うコードワードマッピング部を利用する現在ブロックの画面内予測モード情報を表現することができる。コード番号マッピング部とコードワードマッピング部は、コード番号マッピングテーブルとコードワードマッピングテーブルが生成又は格納することができる。
逆量子化部135及び逆変換部140では、量子化部120で量子化された値を逆量子化し、変換部115で変換された値を逆変換する。逆量子化部135及び逆変換部140で生成された残差値(Residual)は、予測部110に含まれた動き推定部、動き補償部、及び画面内予測部を介して予測された予測ブロックと合わせられて復元ブロック(Reconstructed Block)を生成することができる。
フィルタ部145は、デブロッキングフィルタ、オフセット補正部、ALF(Adaptive Loop Filter)のうち、少なくとも1つを含むことができる。
デブロッキングフィルタは、復元された画像におけるブロック間の境界により生じたブロック歪みを除去することができる。デブロッキングを行うか否かを判断するために、ブロックに含まれたいくつかの列または行に含まれたピクセルに基づいて、現在ブロックにデブロッキングフィルタを適用するか否かが判断される。ブロックにデブロッキングフィルタを適用する場合、必要なデブロッキングフィルタリング強度によって強いフィルタ(Strong Filter)または弱いフィルタ(Weak Filter)を適用することができる。また、デブロッキングフィルタを適用して、垂直フィルタリング及び水平フィルタリングを行う場合、水平方向フィルタリング及び垂直方向フィルタリングが並行処理することができる。
オフセット補正部は、デブロッキングを行った画像に対してピクセル単位でオリジナル画像とのオフセットを補正することができる。特定画像に対するオフセット補正を行うために、画像に含まれたピクセルを一定の数の領域に区分した後、オフセットを行う領域を決定し、当該領域にオフセットを適用する方法、または各ピクセルのエッジ情報を考慮してオフセットを適用する方法を使用することができる。
ALF(Adaptive Loop Filter)は、フィルタリングされた復元画像と元の画像とを比較した値に基づいてフィルタリングを行うことができる。画像に含まれたピクセルを少なくとも1つ以上のグループに分けた後、当該グループに適用される1つのフィルタを決定してグループ毎に個別にフィルタリングを行うことができる。ALFを適用するか否かに関連する情報は符号化単位(Coding Unit、CU)別に伝送されてもよく、それぞれのブロックによって適用されるALFのサイズ及び係数は変化してもよい。ALFは、様々な形態を有することができ、それにより含まれるフィルタの係数の個数も変化することができる。このようなALFのフィルタリング関連情報(フィルタ係数情報、ALF On/Off情報、フィルタ形態情報)は、ビットストリーム形態でパラメータセットに含まれて伝送されてもよい。
メモリ150は、フィルタ部145を介して算出された復元ブロックまたは画像を格納することができ、格納された復元ブロックまたは画像は、画面間予測を行うとき、予測部110に提供されてもよい。
図2は、本発明の実施形態に係る復号化器を示したブロック図である。
図2に示すように、復号化器は、エントロピー復号化部210、再整列部215、逆量子化部220、逆変換部225、予測部230、フィルタ部235、メモリ240が備えられていてもよい。
符号化器からビットストリームが入力された場合、入力されたビットストリームは、符号化器と反対の手順で復号化されてもよい。
エントロピー復号化部210は、符号化器のエントロピー符号化部でエントロピー符号化を行ったことと反対の手順でエントロピー復号化を行うことができる。エントロピー復号化部210で復号化された情報のうち、予測ブロックを生成するための情報は予測部230に提供され、エントロピー復号化部でエントロピー復号化を行った残差値は再整列部215に入力されてもよい。
エントロピー復号化部210でもエントロピー符号化部と同様に、CABACを用いたHEBまたはCAVLCの係数コーディング方法を活用するHTB方法のうち、少なくとも1つの方法を利用して逆変換を行うことができる。
エントロピー復号化部210では、符号化器で行われた画面内予測及び画面間予測に関連した情報を復号化することができる。エントロピー復号化部は、画面内予測モード番号として受信されたコードワード(codeword)を生成するためのコードワードマッピングテーブルを含むために、コードワードマッピング部を含むことができる。コードワードマッピングテーブルは、予め格納されているか、適応的に生成されることができる。コード番号マッピングテーブルを使用する場合、コード番号マッピングを行うためのコード番号マッピング部がさらに備えられてもよい。
再整列部215は、エントロピー復号化部210でエントロピー復号化されたビットストリームを符号化部で再整列した方法に基づいて再整列を行うことができる。1次元ベクトル形態で表現された係数を再度2次元のブロック形態の係数に復元して再整列することができる。再整列部では、符号化部で行われた係数スキャニングに関連した情報の提供を受け、当該符号化部で行われたスキャニング順序に基づいて逆にスキャニングする方法によって再整列を行うことができる。
逆量子化部220は、符号化器で提供された量子化パラメータと再整列されたブロックの係数値に基づいて逆量子化を行うことができる。
逆変換部225は、符号化器で行った量子化結果について、変換部で行ったDCT及びDSTに対して逆DCT及び逆DSTを行うことができる。逆変換は、符号化器で決定された伝送単位に基づいて行われてもよい。符号化器の変換部では、DCTとDSTは、予測方法、現在ブロックのサイズ及び予測方向など、複数の情報に応じて選択的に行われてもよく、復号化器の逆変換部225は、符号化器の変換部で行われた変換情報に基づいて逆変換を行うことができる。
変換を行うとき、変換ブロックでない符号化ブロックを基準として変換を行うことができる。
予測部230は、エントロピー復号化部210から提供された予測ブロック生成関連情報と、メモリ240から提供された過去に復号化されたブロックまたは画像情報とに基づいて予測ブロックを生成することができる。
前述したように、符号化器における動作と同様に画面内予測を行うとき、予測ブロックのサイズと変換ブロックのサイズとが同一である場合、予測ブロックの左側に存在するピクセル、左上側に存在するピクセル、上側に存在するピクセルに基づいて予測ブロックに対する画面内予測を行うが、画面内予測を行うとき、変換ブロックが予測ブロックに含まれる場合、変換ブロックを基準とした参照ピクセルを用いて画面内予測を行うことができる。また、前述したように、最小サイズの符号化ブロックに対してのみN×N分割を使用する画面内予測が使用されてもよい。
予測部230は、予測単位判別部、画面間予測部、及び画面内予測部を備えることができる。予測単位判別部は、エントロピー復号化部から入力される予測単位情報、画面内予測方法の予測モード情報、画面間予測方法の動き予測関連情報など、様々な情報を受信して現在符号化ブロックで予測ブロックを区分し、予測ブロックが画面間予測を行うか、それとも、画面内予測を行うかの可否を判別することができる。画面間予測部は、符号化器から提供された現在予測ブロックの画面間予測に必要な情報を利用して現在予測ブロックが含まれた現在の画像の以前の画像または以後の画像のうち、少なくとも1つの画像に含まれた情報に基づいて現在予測ブロックに対する画面間予測を行うことができる。
画面間予測を行うために、符号化ブロックを基準として当該符号化ブロックに含まれた予測ブロックの動き予測方法がスキップモード(Skip Mode)、マージモード(Merge モード)、AMVPモード(AMVP Mode)のうち、いずれの方法であるかの可否を判断することができる。
画面内予測部は、現在の画像内の画素情報に基づいて予測ブロックを生成することができる。予測ブロックが画面内予測を行った予測ブロックである場合、符号化器から提供された予測ブロックの画面内予測モード情報に基づいて画面内予測を行うことができる。画面内予測部には、MDISフィルタ、参照画素補間部、DCフィルタを備えることができる。MDISフィルタは、現在ブロックの参照画素にフィルタリングを行う部分であって、現在予測ブロックの画面内予測モードによってフィルタの適用可否を決定して適用することができる。符号化器から提供された予測ブロックの予測モード及びMDISフィルタ情報を利用して現在ブロックの参照画素にMDISフィルタリングが行われてもよい。現在ブロックの予測モードがMDISフィルタリングを行わないモードである場合、MDISフィルタは適用されなくてもよい。また、符号化器のように、同様に予測ブロックを生成した後、参照ピクセルとともにさらにフィルタリングが行われてもよい。
参照画素補間部は、予測ブロックの予測モードが参照画素を補間した画素値に基づいて画面内予測を行う予測ブロックである場合、参照画素を補間して整数値以下の画素単位の参照画素を生成することができる。現在予測ブロックの予測モードが参照画素を補間せずに予測ブロックを生成する予測モードである場合、参照画素は補間されなくてもよい。DCフィルタは、現在ブロックの予測モードがDCモードである場合、フィルタリングを介して予測ブロックを生成することができる。
復元されたブロックまたは画像は、フィルタ部235に提供されてもよい。フィルタ部235は、デブロッキングフィルタ、オフセット補正部、ALFを備えることができる。
符号化器から当該ブロックまたは画像にデブロッキングフィルタを適用したか否かに関する情報、及びデブロッキングフィルタを適用した場合、強いフィルタを適用したかまたは弱いフィルタを適用したかに関する情報の提供を受けることができる。復号化器のデブロッキングフィルタは、符号化器から提供されたデブロッキングフィルタ関連情報の提供を受け、復号化器で当該ブロックに対するデブロッキングフィルタリングを行うことができる。符号化器と同様に、まず、垂直デブロッキングフィルタリング及び水平デブロッキングフィルタリングが行われ、両者が重なる部分においては、垂直デブロッキング及び水平デブロッキングのうち少なくとも1つが行われてもよい。過去に行われなかった垂直デブロッキングフィルタリングまたは水平デブロッキングフィルタリングが、垂直デブロッキングフィルタリング及び水平デブロッキングフィルタリングが重なる部分で行われてもよい。このようなデブロッキングフィルタリング過程を介してデブロッキングフィルタリングの並行処理(Parallel Processing)が可能である。
オフセット補正部は、符号化の際に画像に適用されたオフセット補正の種類及びオフセット値情報などに基づいて復元された画像にオフセット補正を行うことができる。
ALF(adaptive loop filter)は、フィルタリングを行った後、復元された画像と元の画像とを比較した値に基づいてフィルタリングを行うことができる。符号化器から提供されたALF適用可否情報、ALF係数情報などに基づいて符号化単位にALFを適用することができる。このようなALF情報は、特定のパラメータセットに含まれて提供され得る。
メモリ240は、復元された画像またはブロックを格納して参照画像または参照ブロックとして使用できるようにすることができ、また、復元された画像を出力部に提供することができる。
前述したように、以下、本発明の実施形態では、説明の便宜上、コーディングユニット(Coding Unit)が符号化ブロックという用語として使用されているが、符号化だけでなく、復号化を行うブロックであってもよい。以下、本発明の実施形態に係る図3〜図12において説明する画面内予測方法は、図1及び図2において前述した各モジュールの機能に応じて実現することができ、このような符号化器及び復号化器は、本発明の権利範囲に含まれる。
現在予測ブロックの画面内予測モードは、周辺ブロックの画面内予測モードから予測され得る。このような画面内予測モードの予測方法をMPM(Most Probable Mode)というが、現在ブロックの左側及び上側に存在するブロックの画面内予測モードまたは頻繁に使用される画面内予測モードに基づいて第1のMPM及び第2のMPMを設定し、現在ブロックの画面内予測モードが第1のMPM及び第2のMPMの画面内予測モードのうち、少なくとも1つと同一であれば、現在ブロックの画面内予測モードとがMPMの画面内予測モードと同一であるという情報を表示する情報である「prev_intra_pred_flag」を使用し、「mpm_idx」情報を介して第1のMPM、第2のMPMのうち、いずれの画面内予測モードと現在予測ブロックの画面内予測モードとが同一であるかを表示することができる。もし、現在ブロックの画面内予測モードとMPMの画面内予測モードとが同一でない場合、現在ブロックの画面内予測モードに関する情報は、「rem_intra_luma_pred_mode」情報で符号化することができる。
図3は、本発明の実施形態に係る現在ブロックの画面内予測モードを復号化する方法を示した順序図である。
図3に示すように、現在ブロックの画面内予測モード情報を復号化するために、前述した「prev_intra_pred_flag」情報を復号化することができる(ステップS300)。
復号化された「prev_intra_pred_flag」情報が1であるか0であるかの可否を判断する(ステップS310)。
本発明の実施形態では、「prev_intra_pred_flag」情報が1である場合、MPMと現在ブロックの画面内予測モードとが同一であると判断し、「prev_intra_pred_flag」情報が0である場合、MPMと現在ブロックの画面内予測モード情報が異なると判断するが、「prev_intra_pred_flag」情報に対する他の2進法化方法または他の情報表示方法を使用することも可能である。
もし、「prev_intra_pred_flag」を介して現在ブロックの画面内予測モードとMPMの画面内予測モードとが同一であると判断される場合、「mpm_idx」を復号化して現在ブロックの画面内予測モードが第1のMPMまたは第2のMPMのうち、いずれの画面内予測モードと同一であるかの可否に関する情報を得ることができる(ステップS320)。もし、「prev_intra_pred_flag」が現在ブロックの画面内予測モードとMPMの画面内予測モードとが同一でないと判断される場合、現在ブロックの画面内予測モードは、残りのモード情報である「rem_intra_luma_pred_mode」情報を復号化して現在ブロックの画面内予測モード情報を得ることができる(ステップS330)。
「rem_intra_luma_pred_mode」情報を符号化・復号化するためには、画面内予測モードにマッピングされたコードワード情報を利用することができる。下記の表1は、画面内予測モード情報を2進法化する方法のうち、1つである指数ゴロム符号化方法を示したものである。
表1に示すように、コードワードマッピングテーブル上でコード番号(codeNum)が小さいほど、短いコードワードでマッピングされてもよい。すなわち、頻繁に発生する情報に短いコードワードをマッピングする場合、同じ情報をより短いビットストリームで表現できるので、符号化・復号化効率が増加するということが分かる。
下記の表2は、本発明の実施形態に係る画面内予測モードに対する順序を羅列したものである。表2は、表3のように表記することもできる。
下記の表4は、本発明の実施形態に係る画面内予測モードとコードワードとをマッピングしておいた表である。表4でのコードワードは、任意に設定しておいたものであって、本発明の本質から逸脱しない限り、他のコードワードを使用して現在画面内予測モードに関する情報をマッピングすることができる。
表4に示すように、本発明の実施形態に係る画面内予測モードとコードワードのマッピング方法では、頻繁に発生する画面内予測モードに短いコードワードをマッピングし、頻繁に発生する画面内予測モードであるほど短いコードワードを有するようにすることができる。
以下、本発明の実施形態で生成される順序に基づいて、最も短いか、最も先にマッピングされるコードワードを第1のコードワードと定義し、その後、順に第2のコードワード、第3のコードワード、第4のコードワード、第nのコードワードなどと表現することができる。すなわち、第nのコードワードの長さは、第n+1のコードワードの長さより短いか同一であり得るが、第nのコードワードの長さは、第n+1のコードワードの長さより長いことはない(ここで、nは整数)。
画面内予測方法で符号化される場合、画面内予測モードのうち、非方向性画面内予測モードであるplanarモードとDCモードとが頻繁に使用され、それに対し、方向性画面内予測モードの使用頻度は相対的に少ない。したがって、本発明の実施形態では、非方向性画面内予測モードに短いコードワードがマッピングされるようにし、非方向性画面内予測モードにマッピングされたコードワードより長いコードワードが方向性画面内予測モードにマッピングされるようにすることにより、画像の符号化及び復号化効率を高めることができる。
表5及び表6は、本発明の実施形態に画面内予測モードによって異なる2進法符号化をする方法を示した表である。
表5は、画面内予測モードとして19個のモードを使用する場合を示したものであり、表6は、画面内予測モードとして35個のモードを使用する場合に、画面内予測モードを表現するための2進法化方法を示したものである。
表5及び表6に示すように、現在ブロックの画面内予測モードを表現するための2進法符号化方法としてunary code(1進法符号)とfixed length(固定長)を使用することができる。表5に示すように、画面内予測モードが0または1である場合、unary codeを用いたprefix(プレフィックス)は0に固定し、画面内予測モードである0と1を区分するためのfixed lengthを0または1に1ビットで表現することができる。また、画面内予測モードが2〜5である場合、unary codeを用いたprefixは10に固定し、画面内予測モード2〜5を区分するためにfixed lengthを2ビットで表現することができる。このような方式でunary codeとfixed lengthを用いてコードワードと画面内予測モードをマッピングさせることができる。表6もこのような方式で画面内予測モード情報を2進法化して表現することができる。
表5及び表6の場合も表2と同様に、画面内予測モード番号が小さいほど、2進法化の際に短いコードワードで生成される方法を使用することができる。したがって、本発明の実施形態によれば、小さい番号の画面内予測モードに対して頻繁に発生する画面内予測モードを配置することにより、少ないビットで当該情報を表現することができ、符号化効率を高めることができる。
図4は、本発明の実施形態に係る画面内予測モードを符号化する方法を示した概念図である。
図4に示すように、本発明の実施形態によれば、画面内予測モードを符号化するときに、コード番号マッピングテーブル(codeNum mapping table)を使用することができる。
前述した表5または表6の実施形態とは異なり、コード番号マッピングテーブル(codeNum mapping table)を使用する場合、任意の画面内予測モードが決定されれば、コード番号マッピングテーブルでt番目である決定された画面内予測モードと(t−1)番目の画面内予測モードとをスワッピングすることにより、発生頻繁の高い画面内予測モードのコード番号マッピングテーブル内の順位を上げることで、次の画面内予測モードが前記発生頻繁の高い画面内予測モードである場合、より小さい数のコード番号が割り当てられる。結果的に、当該コード番号に対して短いコードワードがマッピングされるようにする。すなわち、t番目の画面内予測モードに対するコード番号順位を上げて再配列されたコード番号マッピングテーブルは、次の予測ブロックに対する画面内予測を行うときに使用することができる。図4をみると、決定された画面内予測モードは「2」となり、2番目の画面内予測モードにマッピングされるコード番号「2」をコード番号マッピングテーブルから読み出してコードワードマッピングテーブルで2番目のコード番号にマッピングされるコードワード(「1000」)を2番目の画面内予測モードの結果値として出力するようになる。また、コード番号マッピングテーブルは、2番目の画面内予測モードと、すぐ上位に位置した1番目の画面内予測モードとをスワッピングして2番目の画面内予測モードのためのコード番号は「1」に、1番目の画面内予測モードのためのコード番号は「2」に修正されるようになる。そして、このように再配列されたコード番号マッピングテーブルは、次の予測ブロックの画面内予測モード符号化の際に用いられる。さらに他の実施形態では、t番目及び(t−1)番目の画面内予測モードの発生頻度数に基づいて、t番目及び(t−1)番目の画面内予測モードのスワッピング可否を決定する。すなわち、t番目の画面内予測モードの発生頻度数が(t−1)番目の画面内予測モードの発生頻度数より大きければ、t番目及び(t−1)番目の画面内予測モードのスワッピングを行い、再配列されたコード番号マッピングテーブルは、次の予測ブロックに対する画面内予測を行うときに使用することができる。逆に、t番目の画面内予測モードの発生頻度数が(t−1)番目の画面内予測モードの発生頻度数より小さければ、前記2つの画面内予測モードに対するスワッピングを行わずに、現在のコード番号マッピングテーブルを次の予測ブロックに対する画面内予測を行うときに使用することができる。このとき、全ての画面内予測モードに対する発生頻度数が無限に増加することを防止するために、周期的に全ての画面内予測モードに対する発生頻度数を同じ割合に減らすことができる。本実施形態の頻度数に基づいた画面内予測モードに対するスワッピング過程以外の他の過程(例えば、コードワードを決定する)は、前記実施形態(頻度数を用いずに直接スワッピングする)と同一であってもよい。
図4では、説明の便宜上、画面内予測モード番号とコード番号マッピングテーブルのコード番号が同一であると仮定するが、他の実施形態では、画面内予測モード番号とコード番号をマッピングする初期コード番号マッピングテーブルが予め決定されて、画面内予測モード番号と相違した番号であるコード番号をマッピングすることができる。
図4に示すように、任意の画面内予測モードが決定される場合、画面内予測モードは、コード番号マッピングテーブルのコード番号値にマッピングされてもよい。マッピングされたコード番号値は、コードワードマッピングテーブルを介してコードワード値にマッピングされてもよい。
図5は、本発明の実施形態に係る画面内予測モードを復号化する方法を示した概念図である。
図5に示すように、復号化器は、符号化器と同じ初期コードワードマッピングテーブルと初期コード番号マッピングテーブルとを有する。復号化器は、ビットストリームからコードワードを読み出し、当該コードワードに基づいてコードワードマッピングテーブルからマッピングされたコード番号値を取得し、前記コード番号にマッピングされる画面内予測モードをコード番号マッピングテーブルから取得すると、最終的に現在ブロックの画面内予測モードを決定することができる。復号化動作でも符号化器と同様に、任意の画面内予測モードが決定されれば、コード番号マッピングテーブルで前記画面内予測モードに対するスワッピングを行うことができる。
上記のような方法を行う場合、不要なスワッピングを防止するために、初期コード番号マッピングテーブルの値が重要である。なぜなら、このようなテーブルは、スライスまたはフレームのような任意の単位で再度初期化され、現在スライスまたはフレームの特徴を反映したコード番号マッピングテーブルを生成するために、スワッピングは初期化後に行われる必要があるからである。したがって、画面内予測モードとコード番号値をマッピングさせるコード番号マッピングテーブルを設定の際、頻繁に発生する画面内予測モード値に対してより小さいコード番号値をマッピングすることが重要である。本発明の実施形態によれば、より頻繁に発生する画面内予測モード番号であるほど、より小さいコード番号をマッピングさせ、結果的に、前記画面内予測モードに対するコードワードの長さをより短くして符号化効率を期待することができる。
図6は、本発明の実施形態に係るコード番号マッピングテーブルを異なるように使用する場合を示した概念図である。
図6に示すように、画面内予測モードの2進法符号化においてMPMを使用せずに、2進法符号化を行うことができる。すなわち、MPMのための別のフラグ情報を生成せずに、特定の予測ブロックの左側及び上側に存在するブロックの画面内予測モード情報に基づいてコード番号マッピングテーブルを再配列する方法を使用することができる。例えば、左側及び上側に存在するブロックの画面内予測モードが2及び3である場合、2と3をコード番号マッピングテーブルの上方に位置させ、残りの画面内予測モードを後回しにしてコード番号マッピングテーブルを構成する方法を使用することができる。すなわち、左側及び上側に存在するブロックの画面内予測モードをコード番号マッピングテーブル上の上方に位置させ、その後、左側及び上側に存在するブロックの画面内予測モードを除いた残りの画面内予測モードをコード番号マッピングテーブル上に配置する方法を使用して画面内予測モードに該当するコードワードを生成することができる。
前述したコード番号マッピングテーブルの再配列方法では、特定の予測ブロックの画面内予測モードが特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードのうち、少なくとも1つのモードと同一である可能性が大きいということを前提とする。したがって、相対的に発生頻繁が高い画面内予測モードを前記コード番号マッピングテーブルの上方に配置することで、前述したコード番号マッピングテーブルの再配列を最小化することができる。ここで、発生頻繁が高い画面内予測モードが特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードであってもよく、そうでなくてもよい。もし、発生頻繁が高い画面内予測モードが特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードであれば、相対的に再配列が発生する確率も低くなるので、不要な再配列を防ぐことができる。逆に、発生頻繁が高い画面内予測モードが特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードでなければ、特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードをコード番号マッピングテーブルの上方に位置させ、残りの画面内予測モードを後回ししてコード番号マッピングテーブルを再配列するとき、より短いコードワードを割り当てられるために、残りの画面内予測モードの中でも発生頻繁が高い画面内予測モードが相対的に小さいコード番号をマッピングされる必要がある。結果的に、発生頻繁が高い画面内予測モードが特定の予測ブロックの左側及び/又は上側に存在するブロックの画面内予測モードと同一であるか否かに関係なく、小さいコード番号を割り当てられるようになると、結果的に、圧縮性能及び/又は複雑度の側面で有利となる。
さらに他の実施形態では、画面内予測モードの2進法符号化においてMPMを使用して2進法符号化を行うことができる。しかし、MPMのための別のフラグ情報を生成せずに、特定の予測ブロックの第1のMPM及び第2のMPMの画面内予測モード情報に基づいてコード番号マッピングテーブルを再配列する方法を使用してMPMに対するコードワードを割り当てられることができる。例えば、第1のMPM及び第2のMPMの画面内予測モードが2及び3である場合、2と3をコード番号マッピングテーブルの上方に位置させ、残りの画面内予測モードを後回ししてコード番号マッピングテーブルを構成する方法を使用することができる。それ以外の過程は、特定の予測ブロックの左側及び上側に存在するブロックの画面内予測モードをコード番号マッピングテーブル上の上方に位置させる前記実施形態と同一であり得る。
本発明の実施形態によれば、前述したような画面内予測モードは、予測ブロックのサイズによって互いに異なる個数の画面内予測モードを使用することができる。
下記の表5は、予測ブロックのサイズによって使用され得る画面内予測モードの数を表した表である。
表7に示すように、予測ブロックのサイズが4×4であるか、64×64のサイズである場合、画面内予測モードの数は、11,18または19個が使用され得る。また、予測ブロックのサイズが16×16、32×32、64×64である場合、画面内予測モードの数は、35個を使用することができる。
35個の画面内予測モードは、下記の表8のように、画面内予測モード番号とそれによる名称を有することができる。
図7は、本発明の実施形態に係る35個の画面内予測モードを使用する場合の非方向性画面内予測モードと方向性画面内予測モードとを示したものである。
予測ブロックに対する画面内予測を行うために、35個の画面内予測モードを有する場合、Planar、DC、Ver+x(xは、−8から8までの整数)、Hor+x(xは、−7から8までの整数)であってもよい。
図8は、本発明の実施形態に係る19個の画面内予測モードを使用する場合の非方向性画面内予測モードと方向性画面内予測モードとを示したものである。
予測ブロックに対する画面内予測を行うために、19個の画面内予測モードを有する場合、planar、DC、Ver+2x(xは、−4から4までの整数)、Hor+2x(xは、−3から4までの整数)であってもよい。すなわち、19個の画面内予測モードは、図7において35個の画面内予測モードを使用する場合と異なり、垂直及び水平方向から2の倍数毎の角度動きに対する画面内予測モードのみを選択する方法を使用することができる。
18個の画面内予測モードを使用する場合では、18番の画面内予測モードを除いた0から17番までの画面内予測モードを使用して画面内予測を行う方法を行うことができる。
図9は、本発明の実施形態に係る11個の画面内予測モードを使用する場合の非方向性画面内予測モードと方向性画面内予測モードとを示したものである。
11個の画面内予測モードを有する場合、planar、DC、Ver+4x(xは、−2から2までの整数)、Hor+4x(xは、−1から2までの整数)であり得る。すなわち、11個の画面内予測モードは、図7において35個の画面内予測モードを使用する場合と異なり、垂直及び水平方向から4の倍数毎の角度動きに対する画面内予測モードのみを選択する方法を使用することができる。11個の画面内予測モードは、図9のように、4番モードから10番モードまで9個のモードを生成するために、VER(2番モード)及びHOR(3番モード)を基準とした空間が4等分される。当該9個のモードにplanar(0番モード)及びDC(1番モード)を足すと、総11個のモードが構成され得る。
図8及び図9のように、画面内予測モードが11個または19個は、64×64ブロックまたは4×4ブロックで使用することができる。
予測ブロックのサイズが64×64である場合、当該ブロックをより小さく分割(例えば、32×32、16×16等)する必要がないということであり、これは、当該ブロックの画素値に大きい変化がないと判断することができる。したがって、このような平坦なブロックに対して35個の全体モードを全て評価するようになると、ほとんどの画面内予測モードに対する予測値が類似して求められ、類似方向性を有したモード別の性能の大きい差は見えない。したがって、複雑度を考慮すれば、35個のモードを全て評価することよりは、一部画面内予測モードのみに基づいて画面内予測を行うことが複雑度の側面で有利であり得る。それにより、本発明では、図8及び図9のように、64×64予測ブロックに対して11個の画面内予測モード、18個の画面内予測モード、19個の画面内予測モードのうち、いずれか1つを使用して画面内予測を行うことができる。
4×4サイズの予測ブロックの場合にも予測ブロックのサイズが小さいので、35個の画面内予測モードとして作られたモード別の予測値が類似する可能性があり、35個の全ての画面内予測モードを使用するよりは64×64サイズの予測ブロックのように11、18または19個の画面内予測モードのうち、1つを使用して画面内予測を行ってもよい。
前述したように、11、19または35個の画面内予測モードが使用され、MPMモードの数が3個である場合、MPMを除くリメイニングモードに対するコード番号マッピングテーブルを生成することで符号化効率を高めることができる。
以下、本発明の実施形態において使用されるMPMは、現在ブロックの画面内予測モード値を予測する候補画面内予測モードの一般的な概念として使用するものであって、これと類似した概念であるMPRM(Most Probable Remaining Mode)が使用されてもよく、本発明の権利範囲に含まれるが、説明の便宜上、MPMについてのみ開示する。
図10は、本発明の実施形態に係るMPMを除いた残りの(リメイニング)画面内予測モードに対してコード番号マッピング方法を示した概念図である。
図10に示すように、MPMが画面内予測モード番号で2、4、5である場合、コード番号マッピングテーブルで2、4、5を除いた残りの画面内予測モードに対してコード番号マッピングを行うことができる。すなわち、リメイニングモード符号化の際、MPMに該当する画面内予測モードは選択されないので、MPMを除いたリメイニングモードに対してのみコード番号値を付与することができる。コード番号値は、コードワードマッピングテーブルを使用してコードワードにマッピングされ得るが、このような方法によってリメイニングモードに該当する画面内予測モードに対してのみコードワードがマッピングされるので、不要なコードワードの浪費を防ぐことができ、符号化効率を高めることができる。
復号化動作を行うときにも同様に、入力されたコードワードに基づいてコード番号を生成してMPMに該当する画面内予測モードを除き、マッピングされたコード番号マッピングテーブルを用いて画面内予測モード情報を復号することができる。
図10は、画面内予測モードが11個使用される場合を示したものであり、11個の画面内予測モードを使用して予測ブロックに対する画面内予測を行い、MPMが3個使用される場合、8個のリメイニング画面内予測モードに対してコードワードがマッピングされ得る。リメイニング画面内予測モードを固定長で表現すれば、3ビットのコードワード長で残りの8個の画面内予測モードに対するコードワードをマッピングすることができる。
下記の表9は、本発明の実施形態に係るリメイニング画面内予測モードを固定長で表現したものである。
表9のように、コード番号は、固定長符号化を使用したコードワードにマッピングされ得る。
このような方法において、画面内予測モードが11個、19個、35個であり、MPMが3個である場合、リメイニングモードが8個、16個、32個になるので、全体リメイニングモードの個数が2の指数乗であり、前記リメイニングモードを各指数ビットの固定長で表現される。下記の表は、各リメイニングの個数による指数ビットの固定長で表現される場合、リメイニングモードを示すためのコードワードの長さを示したものである。
表9に示すように、画面内予測モードの数が11個であり、MPMの個数が3である場合は、リメイニングモードを示すためのコードワードは3ビットを使用することができる。画面内予測モードの数が19個であり、MPMの個数が3である場合は、リメイニングモードを示すためのコードワードは4ビットを使用することができる。画面内予測モードの数が35個であり、MPMの個数が3である場合は、リメイニングモードを示すためのコードワードは5ビットを使用することができる。すなわち、本発明の実施形態によれば、現在ブロックの画面内予測モードの個数は、当該リメイニング画面内モードに対応する数の2の指数乗によって生成されてもよい、つまり、前記リメイニングモードは各指数ビットの固定長によって表現されるように決定することができる。上記の実施形態では、MPMの個数を3に仮定したものであって、MPMの個数が変わる場合、予測ブロックの画面内予測に使用される画面内予測モードの個数は変化してもよい。
図11は、本発明の実施形態に係る画面内予測モードの符号化及び復号化を行う画像符号化装置及び画像復号化装置の一部を示した概念図である。
図11の上段を参照すれば、画像符号化装置のコードワードマッピング部1100で画面内予測モード番号を受信してコードワードを生成することができる。前述したようなコードワードマッピングを行うためには、コードワードマッピング部1100にはコードワードマッピングテーブルを格納していてもよく、また、コードワードマッピングテーブルを生成するための2進法化動作を行ってもよい。コードワードマッピング部は、エントロピーコーディング部の一部として含まれて動作してもよい。前述したように、画面内予測モードのうち、発生頻度が高いDCモードまたはplanarモードのような非方向性画面内予測モードに小さい数の画面内予測モード番号を付与することができ、画面内予測モード番号が小さいほど、短いコードワードがマッピングされるようにするコードワードマッピングテーブルを生成することができる。
図11の下段に示すように、画像復号化装置のコードワードマッピング部1110でコードワードを受信し、入力されたコードワードをコードワードマッピング部に含まれたコードワードマッピングテーブルに基づいて画面内予測モード番号として生成することができる。
図12は、本発明の実施形態に係る画面内予測モードの符号化及び復号化を行う画像符号化装置及び画像復号化装置の一部を示した概念図である。
図12の上段に示すように、画像符号化装置の一部にはコード番号マッピング部1200とコードワードマッピング部1220とを備えることができる。画像符号化装置のコード番号マッピング部1200は、画面内予測モード番号を受信し、コード番号を出力することができる。コードワードマッピング部1220は、コード番号を受信し、コードワードを出力することができる。前述した実施形態に係るコード番号マッピング及びコードワードマッピングが行われてもよく、発生頻度が高い画面内予測モード番号ほど、小さい数のコード番号にマッピングされてもよい。前述したように、MPMを除いてコード番号マッピングをする方法を使用する場合、コード番号マッピング部は、MPMに該当する画面内予測モードを除いた残りの画面内予測モードに対してコード番号マッピングを行うことができる。
図12の下段に示すように、画像復号化装置は、コードワードマッピング部1240とコード番号マッピング部1260とを備えることができる。コードワードマッピング部1240は、入力されるコードワードに基づいてコード番号を算出することができ、コード番号マッピング部1260は、コード番号を受信し、画面内予測モード番号を算出することができる。コードワードマッピング部1240には、コードワードマッピングを行うためのコードワードマッピングテーブルが含まれてもよく、コード番号マッピング部1260には、受信されたコード番号に基づいて画面内予測モード番号を算出するためのコード番号マッピングテーブルが含まれてもよい。コードワードマッピングテーブルとコード番号マッピング部とは、予め格納されているか、適応的に生成されることができる。
以上、実施形態を参照して説明したが、当該技術分野の熟練された当業者は下記の特許請求の範囲に記載された本発明の思想及び領域から逸脱しない範囲内で本発明を様々に修正及び変更させ得ることが理解できるであろう。