【文献】
Marta Karczewicz et al.,Video coding technology proposal by Qualcomm Inc.,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-A121,1st Meeting: Dresden, DE,2010年04月,pp.1,12
【文献】
Tomohiro Ikai and Yukinobu Yasugi,Region-based adaptive loop filter using two-dimensional feature,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,JCTVC-D116,4th Meeting: Daegu, KR,2011年01月,pp.1-12
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0058】
〔実施形態1〕
(符号化データの構成)
本実施形態に係る動画像符号化装置2及び動画像復号装置1の説明に先立って、動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データ#1のデータ構造について説明を行う。動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データ#1は、シーケンスレイヤ、GOP(Group Of Pictures)レイヤ、ピクチャレイヤ、スライスレイヤ、及び、マクロブロックレイヤ、からなる階層構造を有している。
【0059】
ピクチャレイヤ以下の階層について符号化データの構造を
図2に示す。
図2(a)〜(g)は、それぞれ、ピクチャレイヤP、スライスレイヤS、マクロブロックレイヤMB、マクロブロックヘッダMBH、インター予測パーティションの予測パラメータPP、イントラ予測パーティションの予測パラメータPP、フィルタパラメータFPの構造を示す図である。
【0060】
ピクチャレイヤPは、対象ピクチャを復号するために動画像復号装置1が参照するデータの集合である。ピクチャレイヤPは、
図2(a)に示すように、ピクチャヘッダPH、及び、スライスレイヤS
1〜S
Nsを含んでいる(NsはピクチャレイヤPに含まれるスライスレイヤの総数)。
【0061】
ピクチャヘッダPHには、対象ピクチャの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれている。例えば、動画像符号化装置2が符号化の際に用いた可変長符号化のモードを示す符号化モード情報(entoropy_coding_mode_flag)は、ピクチャヘッダPHに含まれる符号化パラメータの一例である。
【0062】
ピクチャレイヤPに含まれる各スライスレイヤSは、対象スライスを復号するために動画像復号装置1が参照するデータの集合である。スライスレイヤSは、
図2(b)に示すように、スライスヘッダSH、及び、マクロブロックレイヤMB
1〜MB
Nm(NmはスライスSに含まれるマクロブロックの総数)を含んでいる。
【0063】
スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれる。(1)スライスタイプを指定するスライスタイプ指定情報(slice_type)、(2)対象スライスを含むピクチャの表示順序(POC:Picture Order Count)を指定するPOC指定情報(pic_order_cnt_lbsやdelta_pic_order_cntなど)、及び、(3)動画像符号化装置2が符号化の際に用いた重み係数を指定する重み係数指定情報(pred_weight_table)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
【0064】
なお、スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるBスライスなどが挙げられる。
【0065】
また、スライスヘッダSHには、動画像復号装置1の備える適応フィルタが参照するフィルタパラメータFPが含まれる。ここで、動画像復号装置1の備える適応フィルタは、後述するように、対象スライスまたは対象マクロブロックに含まれる1若しくは複数の分割領域(またはパーティション)の各々を複数のタイプの何れかに分類し、タイプ毎に異なったフィルタ係数群を用いてフィルタ処理を行うものである。
図2(g)に、フィルタパラメータFPのデータ構造を示す。
図2(g)に示すように、フィルタパラメータFPには、フィルタオンオフ情報、フィルタセット番号、およびフィルタ係数群n(nは、フィルタ係数群を互いに識別するためのフィルタ番号であり、n=0、1、・・・、Nf−1をとる。Nfは、フィルタパラメータFPに含まれるフィルタ係数群の総数を表す)が含まれる。なお、上記パーティションとは、動画像符号化装置2および動画像復号装置1において予測画像を生成する単位(予測単位)のことである。また、上記分割領域とは、マクロブロックを構成する1または複数の互いに重複しない領域のことであり、各マクロブロックの分割領域への分割の態様は、動画像符号化装置2において決定される。
【0066】
フィルタオンオフ情報には、(1)対象スライスまたは対象スライスに含まれる各マクロブロックにおける上記1若しくは複数の分割領域のサイズおよび位置を指定するための領域指定情報、および、(2)分割領域毎(またはパーティション毎)にフィルタ処理のオンオフを指定するオンオフ情報が含まれる。
【0067】
フィルタセット番号は、対象スライスまたは対象マクロブロックに含まれる1若しくは複数の分割領域(またはパーティション)の分類の仕方をスライス毎に指定するための番号である。動画像復号装置1の備える適応フィルタは、フィルタセット番号を参照することにより、分割領域を幾つのタイプに分類すべきか、また、各タイプに分類された分割領域においてどのフィルタ係数群を用いるかを識別することができる。
【0068】
フィルタ係数群I(I=0〜Nf−1)には、(1)フィルタのタップ数(若しくはフィルタ係数群毎のフィルタ係数の総数)を指定するタップ数指定情報、(2)フィルタ係数aI
0〜aI
NT-1(NTは、フィルタ係数群Iに含まれるフィルタ係数の総数)、および、(3)オフセットoIが含まれる。なお、互いに異なるフィルタ番号の付されたフィルタ係数群は、互いに異なるタイプに分類された分割領域(またはパーティション)のフィルタ処理に用いられる。例えば、フィルタ係数群0およびフィルタ係数群1は、それぞれ、タイプAに分類された分割領域、および、タイプAとは異なるタイプBに分類された分割領域のフィルタ処理に用いられる。
【0069】
スライスレイヤSに含まれる各マクロブロックレイヤMBは、対象マクロブロックを復号するために動画像復号装置1が参照するデータの集合である。マクロブロックレイヤMBは、
図2(c)に示すように、スキップフラグSKIP、マクロブロックヘッダMBH、予測パラメータPP
1〜PP
NP、及び、量子化予測誤差QD
1〜QD
Nbを含んでいる。ここで、Npは、対象マクロブロックに含まれるパーティション(予測単位)の種類の数を表し、Nbは、対象マクロブロックに含まれるブロック(変換単位)の種類の数を表す。スキップフラグSKIPの値が1の場合、すなわち、対象マクロブロックがスキップブロックである場合、そのマクロブロックレイヤにおけるマクロブロックヘッダMBH、予測パラメータPP
1〜PP
NP、及び、量子化予測誤差QD
1〜QD
Nbは省略される。
【0070】
マクロブロックヘッダMBHには、対象マクロブロックの復号方法を決定するために動画像復号装置1が参照する符号化パラメータが含まれる。具体的には、
図2(d)に示すように、対象マクロブロックのマクロブロックタイプを指定するマクロブロックタイプ指定情報MBT(mb_type)、符号化ブロックパターンを指定するCBP(coded_block_pattern)、量子化ステップの大きさを指定する量子化パラメータ差分Δqp(mb_qp_delta)が含まれる。マクロブロックタイプ指定情報MBTは、予測単位指定情報PTと変換単位指定情報TTとを含む。
【0071】
予測単位指定情報PTは、対象マクロブロックのパーティション(予測単位)への分割パターン(すなわち、対象マクロブロックに含まれる各パーティションのサイズ、及び、対象マクロブロック内での位置)と、動画像符号化装置2が各パーティションにおける予測画像を生成する際に用いた予測方法(L0単方向予測、L1単方向予測、双方向予測、イントラ予測など)を指定する。パーティションのサイズは、例えば、16×16画素、8×8画素、4×4画素、16×8画素、8×16画素、8×4画素、4×8画素、8×1画素、および、1×8画素の中から選択可能である。より一般には、各パーティションは、M×N画素(Mは、対象マクロブロックの横方向の画素数以下の整数であり、Nは、対象マクロブロックの縦方向の画素数以下の整数である)の領域とすることができる。
【0072】
一方、変換単位指定情報TTは、対象マクロブロックのブロック(変換単位)への分割パターン(すなわち、対象マクロブロックに含まれる各ブロックのサイズ、及び、対象マクロブロック内での位置)を指定する。各ブロックは、16×16画素、8×8画素、4×4画素、16×8画素、8×16画素、8×4画素、4×8画素、8×1画素、および、1×8画素の中から選択可能である。より一般には、各ブロックは、M’×N’画素(M’は、対象マクロブロックの1辺の画素数以下の整数であり、N’は、対象マクロブロックの他の1辺の画素数以下の整数である)の領域とすることができる。
【0073】
なお、上記の説明では、マクロブロックを16×16画素の正方形領域としたときのパーティションを例示したが、これに限定されるものではない。例えば、64×64画素のマクロブロックに対しては、64×64画素、若しくは32×32画素の正方形領域、又は、64×32画素、32×64画素、32×16画素、若しくは16×32画素の長方形領域もパーティション、またはブロックとして許容される。
【0074】
量子化パラメータ差分Δqpは、対象マクロブロックにおける量子化パラメータqpと、そのマクロブロックの直前に符号化されたマクロブロックにおける量子化パラメータqp’との差分qp−qp’である。
【0075】
マクロブロックレイヤMBに含まれる各量子化予測残差QD
nは、動画像符号化装置2が以下の処理1〜3を対象ブロックに施すことによって生成した符号化データである。処理1:符号化対象画像から予測画像を減算した予測残差をDCT変換(Discrete Cosine Transform)する。処理2:処理1にて得られたDCT係数を量子化する。処理3:処理2にて量子化されたDCT係数を可変長符号化する。上述した量子化パラメータqpは、動画像符号化装置2がDCT係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2
pq/6)。
【0076】
マクロブロックレイヤMBに含まれる予測パラメータPPのうち、インター予測によって予測画像が生成されるインター予測パーティションに関する予測パラメータPPは、
図2(e)に示すように、参照画像インデックスRIと、推定動きベクトルインデックスPMVIと、動きベクトル残差MVDとを含んでいる。
【0077】
動きベクトル残差MVDは、動画像符号化装置2が以下の処理4〜6を実行することによって生成した符号化データである。処理4:符号化/復号化済みの局所復号画像(より正確には、符号化/復号化済みの局所復号画像に対してデブロック処理および適応的フィルタ処理を施すことによって得られる画像)を選択し、選択した符号化/復号化済みの局所復号画像(以下「参照画像」とも呼称)を参照して対象パーティションに対する動きベクトルmvを導出する。処理5:推定方法を選択し、選択した推定方法を用いて対象パーティションに割り付ける動きベクトルmvの推定値(以下「推定動きベクトル」とも呼称)pmvを導出する。処理6:処理4にて導出した動きベクトルmvから処理5にて導出した推定動きベクトルpmvを減算した動きベクトル残差MVDを符号化する。
【0078】
上述した参照画像インデックスRIは、処理4にて選択した符号化/復号化済みの局所復号画像(参照画像)を指定するものであり、上述した推定動きベクトルインデックスPMVIは、処理5にて選択した推定方法を指定するものである。処理5にて選択可能な推定方法としては、(1)符号化/復号化中の局所復号画像(より正確には、符号化/復号化中の局所復号画像における復号済みの領域に対してデブロック処理および適応的フィルタ処理を施すことによって得られる画像)において、対象パーティションに隣接するパーティション(以下「隣接パーティション」とも呼称する)に割り付けられた動きベクトルのメジアンを推定動きベクトルpmvとする方法や、(2)符号化/復号化済みの局所復号画像において、対象パーティションと同じ位置を占めるパーティション(しばしば「コロケートパーティション」と呼称される)に割り付けられた動きベクトルを推定動きベクトルpmvとする方法などが挙げられる。
【0079】
なお、単方向予測を行うパーティションに関する予測パラメータPPには、
図2(e)に示すように、参照画像インデックスRI、推定動きベクトルインデックスPMVI、及び、動きベクトル残差MVDがそれぞれ1つずつ含まれているが、双方向予測(重み付き予測)を行うパーティションに関する予測パラメータPPには、2つの参照画像インデックスRI1及びRI2、2つの推定動きベクトルインデックスPMVI1及びPMVI2、並びに、2つの動きベクトル残差MVD1及びMVD2が含まれる。
【0080】
マクロブロックレイヤMBに含まれる予測パラメータPPのうち、イントラ予測によって予測画像が生成されるイントラ予測パーティションに関する予測パラメータPPは、
図2(f)に示すように、予測インデックスPIを含んでいる。ここで、予測インデックスPIは、対象パーティションについてのイントラ予測方法(予測モード)を指定するためのインデックスである。なお、対象パーティションについて選択可能な予測モードの種類は、当該対象パーティションのサイズによって異なるため、予測インデックスのとり得る値の範囲も、対象パーティションのサイズによって異なる。
【0081】
図3(a)に、パーティションのサイズ毎の予測インデックスPIと予測モードとの対応表を示す。
図3(a)に示すように、各予測モードには、予測モード番号0〜11が付されている。予測インデックスPIがパーティションサイズによって意味が変わる相対的な番号であるのに対し、予測モード番号はパーティションサイズに依存しない一意な番号であり、各予測モードは、予測モード番号によって互いに識別が可能である(以下では、予測モード番号がAである予測モードを予測モードAと表すことにする)。また、
図3(a)に示すように、パーティションのサイズが16×16画素である場合には、予測インデックスPIは、0,1,2,3,および4の何れかの値をとる。16×16画素のパーティションに対しては、予測インデックス0は予測モード0(DC予測)に対応し、予測インデックス1は予測モード1(プレーン予測)に対応し、予測インデックス2は予測モード2(方向予測0)に対応し、予測インデックス3は予測モード6(方向予測4)に対応している。パーティションのサイズが8×8画素、4×4画素、8×1画素、または、1×8画素である場合にも、
図3(a)に示すように、パーティションのサイズ毎の各予測インデックスPIは、予測モードの何れかに対応付けられている。
【0082】
動画像復号装置1は、自身の備えるメモリに
図3(a)に示す対応表を記憶しておき、対象パーティションのサイズと、予測インデックスとから、当該対象パーティションに割り付ける予測モードを特定することができる。
【0083】
なお、符号化データ#1を生成する動画像符号化装置2は、対象パーティションの周辺のパーティションの予測インデックスに基づいて、当該対象パーティションについての予測インデックスの推定値を算出し、当該推定値と当該対象パーティションについての予測インデックスとが同じであるか否かを示すフラグを符号化データ#1に含める構成としてもよい。このような構成とすることにより、当該推定値と当該対象パーティションについての予測インデックスとが同じである場合には、当該対象パーティションについての予測インデックスの符号化を省略することができる。
【0084】
(動画像復号装置1)
以下では、本実施形態に係る動画像復号装置1について
図1〜
図21を参照して説明する。動画像復号装置1は、その一部に、H.264/MPEG−4.AVC、及び、KTAソフトウェアに採用されている技術を含む復号装置である。
【0085】
図1は、動画像復号装置1の構成を示すブロック図である。
図1に示すように、動画像復号装置1は、可変長符号復号部13、動きベクトル復元部14、バッファメモリ15、インター予測画像生成部16、イントラ予測画像生成部17、予測方式決定部18、逆量子化・逆変換部19、加算器20、デブロッキングフィルタ41、および、適応フィルタ42を備えている。動画像復号装置1は、符号化データ#1を復号することによって動画像#2を生成するための装置である。
【0086】
可変長符号復号部13は、各パーティションに関する予測パラメータPPを、符号化データ#1から復号する。すなわち、インター予測パーティションに関しては、参照画像インデックスRI、推定動きベクトルインデックスPMVI、及び、動きベクトル残差MVDを符号化データ#1から復号し、これらを動きベクトル復元部14に供給する。一方、イントラ予測パーティションに関しては、(1)パーティションのサイズを指定するサイズ指定情報、および、(2)予測インデックスを指定する予測インデックス指定情報を符号化データ#1から復号し、これをイントラ予測画像生成部17に供給する。また、可変長符号復号部13は、マクロブロックタイプMBTを符号化データから復号し、これを予測方式決定部18に供給する(図示省略)。更に、可変長符号復号部13は、各ブロックに関する量子化予測残差QD、及び、そのブロックを含むマクロブロックに関する量子化パラメータ差分Δqpを符号化データ#1から復号し、これらを逆量子化・逆変換部19に供給する。また、可変長符号復号部13は、符号化データ#1からフィルタオンオフ情報、フィルタセット番号、および、フィルタ係数群を復号し、それらを適応フィルタ42に供給する。
【0087】
動きベクトル復元部14は、各インター予測パーティションに関する動きベクトルmvを、そのパーティションに関する動きベクトル残差MVDと、他のパーティションに関する復元済みの動きベクトルmv’とから復元する。具体的には、(1)推定動きベクトルインデックスPMVIにより指定される推定方法に従って、復元済みの動きベクトルmv’から推定動きベクトルpmvを導出し、(2)導出した推定動きベクトルpmvと動きベクトル残差MVDとを加算することによって動きベクトルmvを得る。なお、他のパーティションに関する復元済みの動きベクトルmv’は、バッファメモリ15から読み出すことができる。動きベクトル復元部14は、復元した動きベクトルmvを、対応する参照画像インデックスRIと共に、インター予測画像生成部17に供給する。なお、双方向予測(重み付き予測)を行うインター予測パーティションについては、復元した2つの動きベクトルmv1及びmv2を、対応する参照画像インデックスRI1及びRI2と共に、インター予測画像生成部17に供給する。
【0088】
インター予測画像生成部16は、各インター予測パーティションに関する動き補償画像mcを生成する。具体的には、動きベクトル復元部14から供給された動きベクトルmvを用いて、同じく動きベクトル復元部14から供給された参照画像インデックスRIによって指定されるフィルタ済復号画像P_FL’から動き補償画像mcを生成する。ここで、フィルタ済復号画像P_FL’は、既に復号が完了した復号済みの復号画像に対して、デブロッキングフィルタ41によるデブロック処理、および、適応フィルタ42による適応的フィルタ処理を施すことによって得られる画像であり、インター予測画像生成部16は、フィルタ済復号画像P_FL’を構成する各画素の画素値をバッファメモリ15から読み出すことができる。インター予測画像生成部16によって生成された動き補償画像mcは、インター予測画像Pred_Interとして予測方式決定部18に供給される。なお、双方向予測(重み付き予測)を行うインター予測パーティションについては、(1)動きベクトルmv1を用いて、参照画像インデックスRI1によって指定されたフィルタ済復号画像P_FL1’から動き補償画像mc1を生成し、(2)動きベクトルmv2を用いて、参照画像インデックスRI2によって指定されたフィルタ済復号画像P_FL2’とから動き補償画像mc2を生成し、(3)動き補償画像mc1と動き補償画像mc2との加重平均にオフセット値を加えることによってインター予測画像Pred_Interを生成する。
【0089】
イントラ予測画像生成部17は、各イントラ予測パーティションに関する予測画像Pred_Intraを生成する。具体的には、まず、自身のメモリに記録されている
図3(a)に示した対応表を参照して、可変長符号復号部13から供給されたサイズ指定情報と予測インデックス指定情報とに基づいて予測モードを特定し、特定された予測モードを対象パーティションに対して、例えば、ラスタスキャン順に割り付ける。続いて、当該予測モードの示す予測方法に従って、復号画像Pから予測画像Pred_Intraを生成する。イントラ予測画像生成部17によって生成されたイントラ予測画像Pred_Intraは、予測方式決定部18に供給される。
【0090】
また、イントラ予測画像生成部17は、対象パーティションのサイズ、および、対象パーティションに割り付けられた予測モードを示す情報であるイントラ符号化モード情報IEMを適応フィルタ42に供給する。なお、イントラ予測画像生成部17によるイントラ予測画像Pred_Intraの具体的な生成処理については、後述するためここでは説明を省略する。
【0091】
予測方式決定部18は、マクロブロックタイプMBTに基づいて、各パーティションがインター予測を行うべきインター予測パーティションであるのか、イントラ予測を行うべきイントラ予測パーティションであるのかを決定する。そして、前者の場合には、インター予測画像生成部16にて生成されたインター予測画像Pred_Interを予測画像Predとして加算器20に供給し、後者の場合には、イントラ予測画像生成部17にて生成されたイントラ予測画像Pred_Intraを予測画像Predとして加算器20に供給する。
【0092】
逆量子化・逆変換部19は、(1)量子化予測残差QDを逆量子化し、(2)逆量子化によって得られたDCT係数を逆DCT(Discrete Cosine Transform)変換し、(3)逆DCT変換によって得られた予測残差Dを加算器20に供給する。なお、量子化予測残差QDを逆量子化する際に、逆量子化・逆変換部19は、可変長符号復号部13から供給された量子化パラメータ差分Δqpから量子化ステップQPを導出する。量子化パラメータqpは、直前に逆量子化/逆DCT変換したマクロブロックに関する量子化パラメータqp’に量子化パラメータ差分Δqpを加算することによって導出でき、量子化ステップQPは、量子化ステップqpからQP=2
pq/6によって導出できる。また、逆量子化・逆変換部19による予測残差Dの生成は、ブロック(変換単位)を単位として行われる。
【0093】
加算器20は、予測方式決定部18から供給された予測画像Predと、逆量子化・逆変換部19から供給された予測残差Dとを加算することによって復号画像Pを生成する。
【0094】
デブロッキングフィルタ41は、復号画像Pにおけるブロック境界、またはマクロブロック境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像Pにおける当該ブロック境界、または当該マクロブロック境界に対してデブロッキング処理を施すことによって、当該ブロック境界、または当該マクロブロック境界付近の画像の平滑化を行う。デブロッキングフィルタ41によりデブロッキング処理が施された画像は、デブロック済復号画像P_DBとして、適応フィルタ42に出力される。
【0095】
適応フィルタ42は、デブロッキングフィルタ41から供給されるデブロック済復号画像P_DBに対して、符号化データ#1から復号されたフィルタ係数を用いたフィルタ処理を施すことによって、フィルタ済復号画像P_FLを生成する。適応フィルタ42によりフィルタ処理が施された画像は、フィルタ済復号画像P_FLとして外部に出力されると共に、可変長符号復号部13によって符号化データから復号されたPOC指定情報と関連付けてバッファメモリ15に格納される。適応フィルタ42の具体的な構成については、後述するため、ここでは説明を省略する。
【0096】
(イントラ予測画像生成部17によるイントラ予測画像の生成処理)
以下では、イントラ予測画像生成部17によるイントラ予測画像Pred_Intraの生成処理について、
図3〜
図4を参照して説明する。
【0097】
イントラ予測画像生成部17は、復号画像Pを構成する画素のうち既に復号が完了したブロックに属する各画素の画素値を用い、対象パーティションに割り付けられた予測モードによって指定されるイントラ予測方法により、当該対象パーティションについてのイントラ予測画像Pred_Intraを生成する。
【0098】
各予測モードは、予測モード番号によって互いに識別可能であり、本実施形態においては、
図3(a)に示した予測モード(DC予測、プレーン予測、方向予測0〜7、TM予測、スケール予測)が選択可能である。方向予測0〜7は、対象パーティションの周辺の復号済みの画素値を所定の方向(予測方向)に外挿することによって、当該対象パーティションの予測画像を生成する予測方法を示している。
図3(b)に、方向予測0〜7の各々に対応する予測方向を示す。
図3(b)に示すように、方向予測0〜7は、対象パーティションの周辺の復号済みの画素値を、それぞれ、0度、22.5度、45度、67.5度、90度、112.5度、135度、および、−22.5度の方向に外挿することによって予測画像を生成することを示している。なお、上記の角度は、水平方向右向きを0度とし、時計回りに増加するものとして表現したものである(以下同様)。
【0099】
以下では、まず、
図4(a)を参照して、対象パーティションが4×4画素である場合の、DC予測、および方向予測0〜7について説明する。
図4(a)は、4×4画素である対象パーティションの各画素(予測対象画素)と、当該対象パーティションの周辺の画素(参照画素)とを示す図である。
図4(a)に示すように、予測対象画素および参照画素の各々は、座標(x、y)によって指定されるものとする。ここで、予測対象画素の各々は、x=0〜3およびy=0〜3を満たす(x、y)によって指定され、参照画素の各々は、(x、−1)(x=−1〜7)、または、座標(−1、y)(y=0〜3)によって指定されるものとする。また、座標(x、y)における予測対象画素の画素値をpred4x4[x,y]と表し、座標(x、y)における参照画素の画素値をp[x,y]と表すことにする。また、参照画素は、何れも復号済みであるとする。
【0100】
(DC予測:予測モード番号0)
対象パーティションに割り付けられた予測モードがDC予測である場合、イントラ予測画像生成部17は、対象パーティションの上辺または左辺に隣接する参照画素の画素値の平均値をとることにより、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、予測対象画素の画素値pred[x,y]を、例えば以下の式
pred4x4[x,y]=(p[0,-1]+p[1,-1]+p[2,-1]+p[3,-1]+p[-1,0]+p[-1,1]+p[-1,2]+p[-1,3] +4)>>3
によって生成する。ここで、>>は右シフト演算を表し、a>>bの値はa÷(2のb乗)の値の小数部分を切り捨てた値に等しい。また、<<は左シフト演算を表し、a<<bの値はa×(2のb乗)の値に等しい。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるDC prediction modeに対応している。
【0101】
(方向予測0:予測モード番号2)
対象パーティションについての予測モードが方向予測0である場合、イントラ予測画像生成部17は、参照画素の画素値を水平方向右向きに外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、予測対象画素の画素値pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=p[-1,y],(x,y=0...3)
によって生成する。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるHorizontal prediction modeに対応している。
【0102】
(方向予測1:予測モード番号3)
対象パーティションについての予測モードが方向予測1である場合、イントラ予測画像生成部17は、参照画素の画素値を22.5度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=(p[-1,y-(x>>1)-1]+p[-1,y-(x>>1)]+1)>>1,(zHD=0,2,4,6の場合)
pred4x4[x,y]=(p[-1,y-(x>>1)-2]+2*p[-1,y-(x>>1)-1]+p[-1,y-(x>>1)]+2)>>2,(zHD=1, 3,5の場合)
pred4x4[x,y]=(p[-1,0]+2*p[-1,-1]+p[0,-1]+2)>>2,(zHD=-1の場合)
pred4x4[x,y]=(p[x-1,-1]+2*p[x-2,-1]+p[x-3,-1]+2)>>2(zHD=-2,-3の場合)
によって生成する。ここで、zHDは、zHD=2*y-xによって定義される。また、記号*は、積
を表す演算記号である(以下同様)。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるHorizontal down prediction modeに対応している。
【0103】
(方向予測2:予測モード番号4)
対象パーティションについての予測モードが方向予測2である場合、イントラ予測画像生成部17は、参照画素の画素値を45度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式 pred4x4[x,y]=(p[x-y-2,-1]+2*p[x-y-1,-1]+p[x-y,-1]+2)>>2,(x>yの場合)
pred4x4[x,y]=(p[-1,y-x-2]+2*p[-1,y-x-1]+p[-1,y-x]+2)>>2,(x<yの場合)
pred4x4[x,y]=(p[0,-1]+2*p[-1,-1]+p[-1,0]+2)>>2,(x=yの場合)
によって生成する。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるDiagonal down-right prediction modeに対応している。
【0104】
(方向予測3:予測モード番号5)
対象パーティションについての予測モードが方向予測3である場合、イントラ予測画像生成部17は、参照画素の画素値を67.5度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=(p[x-(y>>1)-1,-1]+p[x-(y>>1),-1]+1)>>1,(zVR=0,2,4,6の場合)
pred4x4[x,y]=(p[x-(y>>1)-2,-1]+2*p[x-(y>>1)-1,-1]+p[x-(y>>1),-1]+2)>>2,(zVR=1, 3,5の場合)
pred4x4[x,y]=(p[-1,0]+2*p[-1,-1]+p[0,-1]+2)>>2,(zVR=-1の場合)
pred4x4[x,y]=(p[-1,y-1]+2*p[-1,y-2]+p[-1,y-3]+2)>>2,(zVR=-2,-3の場合)
によって生成する。ここで、zVRは、zVR=2*x-yによって定義される。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるVertical right prediction modeに対応している。
【0105】
(方向予測4:予測モード番号6)
対象パーティションについての予測モードが方向予測4である場合、イントラ予測画像生成部17は、参照画素の画素値を垂直方向下向きに外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=p[x,-1],(x,y=0...3)
によって生成する。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるVertical prediction modeに対応している。
【0106】
(方向予測5:予測モード番号7)
対象パーティションについての予測モードが方向予測5である場合、イントラ予測画像生成部17は、参照画素の画素値を112.5度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=(p[x+(y>>1),-1]+p[x+(y>>1)+1,-1]+1)>>1,(y=0,2の場合)
pred4x4[x,y]=(p[x+(y>>1),-1]+2*p[x+(y>>1)+1,-1]+p[x+(y>>1)+2,-1]+2)>>2,(y=1,3の場合)
によって生成する。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるVertical left prediction modeに対応している。
【0107】
(方向予測6:予測モード番号8)
対象パーティションについての予測モードが方向予測6である場合、イントラ予測画像生成部17は、参照画素の画素値を135度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=(p[6,-1]+3*p[7,-1]+2)>>2,(x=3,y=3の場合)
pred4x4[x,y]=(p[x+y,-1]+2*p[x+y+1,-1]+p[x+y+2,-1]+2)>>2,(x=3ではなく,y=3では
ない場合)
によって生成する。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるDiagonal down left prediction modeに対応している。
【0108】
(方向予測7:予測モード番号9)
対象パーティションについての予測モードが方向予測7である場合、イントラ予測画像生成部17は、参照画素の画素値を−22.5度の方向に外挿することによって、予測対象画素の画素値を生成する。より具体的には、イントラ予測画像生成部17は、pred4x4[x,y]を、例えば以下の式
pred4x4[x,y]=(p[-1,y+(x>>1)]+p[-1,y+(x>>1)+1]+1)>>1,(zHU=0,2,4の場合)
pred4x4[x,y]=(p[-1,y+(x>>1)]+2*p[-1,y+(x>>1)+1]+p[-1,y+(x>>1)+2]+2)>>2,(zHU=1, 3の場合)
pred4x4[x,y]=(p[-1,2]+3*p[-1,3]+2)>>2,(zHU=5の場合)
pred4x4[x,y]=p[-1,3],(zHU>5の場合)
によって生成する。ここで、zHUは、zHU=x+2*yによって定義される。なお、本予測モードは、H.264/MPEG−4.AVC規格におけるHorizontal up prediction modeに対応している。
【0109】
以上、対象パーティションが4×4画素である場合の、DC予測、および方向予測0〜7について説明を行ったが、イントラ予測画像生成部17は、参照画素の画素値を各方向に外挿することによって、対象パーティションが4×4画素以外である場合についても、上述した方法と略同様の方法によって、当該対象パーティションの各画素値を生成することができる。
【0110】
続いて、イントラ予測画像生成部17によるプレーン予測、TM(テンプレートマッチング)予測、および、スケール予測について説明する。
【0111】
(プレーン予測:予測モード番号1)
プレーン予測は、対象パーティションが16×16画素である場合に選択可能な予測モードである。対象パーティションについての予測モードがプレーン予測である場合、イントラ予測画像生成部17は、当該対象パーティションに隣接する復号済みの参照画素の画素値を用いて、当該対象パーティションの各画素値を平面的な予測によって生成する。
【0112】
以下では、16×16画素である対象パーティションの各画素は、座標(x、y)(x=0〜15、y=0〜15)によって指定されるものとする。なお、対象パーティション内の左上の画素の座標を(0、0)とし、右に行くにつれてxが増大し、下に行くにつれてyが増大するものとする。また、対象パーティションの上辺に隣接する復号済みの参照画素の座標を(x、−1)、その画素値をP(x,-1)(x=0〜15)と表し、対象パーティションの左辺に隣接する復号済みの参照画素の座標を(−1、y)、その画素値をP(-1,y)(y=0〜15)と表す。また、対象パーティションにおいて座標(x、y)によって指定される画素の画素値をpred_P(x,y)と表すことにする。
【0113】
(プレーン予測の例1)
対象パーティションについての予測モードがプレーン予測である場合、イントラ予測画像生成部17は、対象パーティションの画素値pred_P(x,y)を、例えば以下の式
pred_P(x,y)=((15-y)*TR(x)+(y+1)*BR(x)+(15-x)*LC(y)+(x+1)*RC(y)+16)/32(x,y=0...15)
によって生成する。ここで、
TR(x)=P(x,-1),(x=0...15)
LC(y)=P(-1,y),(y=0...15)
BR(x)=((15-x)*LC(15)+(x+1)*BRS+8)/16,(x=0...15)
RC(y)=((15-y)*TR(15)+(y+1)*BRS+8)/16,(y=0...15)
BRS=DC+planar_delta_y
であり、DCは、DC予測によって生成された画素値を表すものとする。
【0114】
(プレーン予測の例2)
また、イントラ予測画像生成部17は、対象パーティションの画素値pred_P(x,y)を、以下の式によって算出する構成としてもよい。
【0115】
pred_P[x,y]=Clip1Y((a+b*(x-7)+c*(y-7)+16)>>5),(x,y=0...15)
ここで、
a=16*(p[-1,15]+p[15,-1])
b=(5*H+32)>>6
c=(5*V+32)>>6
H=Σ_x'{(x'+1)*(p[8+x',-1]-p[6-x',-1])}
V=Σ_y'{(y'+1)*(p[-1,8+y']-p[-1,6-y'])}
である。なお、上記の式において、Σ_x'{...}は、{}内の式について、x'=0からx'=7までの総和を表すものとし、Σ_y'{...}は、{}内の式について、y'=0からx'=7までの総和を表すものとする。また、Clip1Yは、
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
によって定義され、Clip3(a,b,c)は、c<aであるときに値aをとり、c>bであるときに値bをとり、それ以外の場合に値cをとるクリップ関数である。また、BitDepthYは、ビット深度に応じて定まる値をとる。なお、本例は、H.264/MPEG−4.AVC規格におけるIntra_16x16_Plane prediction modeに対応している。
【0116】
(TM予測:予測モード番号10)
続いて、TM予測について、
図4(b)を参照して説明を行う。
【0117】
TM予測は、対象パーティションが4×4画素である場合に選択可能な予測モードである。対象パーティションについての予測モードがTM予測である場合、イントラ予測画像生成部17は、対象パーティションの周辺にテンプレート領域を設定し、復号済みの復号画像P(または、フィルタ済復号画像P_FL)から、当該テンプレート領域に最も類似する領域を探索し、探索された領域の周辺の領域の各画素値を、対象パーティションの各画素値に設定する。
【0118】
より具体的には、対象パーティションについてTM予測が選択されている場合、イントラ予測画像生成部17は、例えば、以下の処理を行う。
【0119】
(ステップS101)
まず、
図4(b)に示すように、対象パーティションの左辺または上辺に隣接する画素、および、対象パーティションの左上の頂点を共有する画素よりなる逆L字型の領域をテンプレート領域TRに設定する。
【0120】
(ステップS102)
続いて、復号済みの復号画像P(または、フィルタ済復号画像P_FL)において、テンプレート領域TRと同じ形の領域であって、テンプレート領域TRに最も類似する参照領域RRを探索する。ここで、参照領域RRの探索は、例えば、画素値の差分絶対値の総和(Sum of Absolute Difference)を評価することによって行うことができる。
【0121】
(ステップS103)
最後に、参照領域RRに上辺および左辺が接する4×4画素の領域の各画素値を、対象パーティションの対応する各画素値に設定する。
【0122】
(スケール予測:予測モード番号11)
続いて、スケール予測について説明を行う。
【0123】
スケール予測は、対象パーティションが16×16画素である場合に選択可能な予測モードである。対象パーティションについてスケール予測が選択されている場合、イントラ予測画像生成部17は、(1)動画像符号化装置によってダウンサンプリングされた縮小画像についての量子化係数を逆量子化および周波数変換することによって当該縮小画像の画像データを生成し、(2)対象パーティションの周辺のパーティションの各画素値の平均値と、上記縮小画像の画像データとを加算した後、アップサンプリングすることによって、対象パーティションについての予測画像を生成する。
【0124】
より具体的には、対象パーティションについてスケール予測が選択されている場合、イントラ予測画像生成部17は、例えば、以下の処理を行う。
【0125】
(ステップS201)
まず、16×16画素の対象パーティションを4×4画素にダウンサンプリングすることによって得られる画像データと、対象パーティションの周辺のパーティションの各画素値の平均値との差分である残差データを周波数変換および量子化することにより得られた量子化係数であって、動画像符号化装置から伝送される量子化係数Fsrを復号する。
【0126】
(ステップS202)
続いて、対象パーティションの周辺のパーティションの各画素値の平均値をとることによって、予測値dを算出する。
【0127】
(ステップS203)
続いて、ステップS201にて復号された量子化係数を逆量子化および逆周波数変換することによって、4×4画素の残差データB’srを生成する。
【0128】
(ステップS204)
続いて、ステップS202にて算出された予測値dと、ステップS203にて生成された4×4画素の残差データB’srとを加算することによって、4×4画素の画像データB’sを生成する。
【0129】
(ステップS205)
最後に、ステップS204にて生成された4×4画素の画像データB’sを16×16画素にアップサンプリングすることによって、対象パーティションについての16×16画素のイントラ予測画像Pred_Intraを生成する。
【0130】
なお、後述する動画像符号化装置2の備えるイントラ予測画像生成部は、スケール予測が選択されている対象パーティションについて以下の処理を行う。
【0131】
(ステップS201’)
まず、16×16画素の対象パーティションを4×4画素にダウンサンプリングすることによって4×4画素の画像データBsを生成する。
【0132】
(ステップS202’)
続いて、対象パーティションの周辺のパーティションの各画素値の平均値をとることによって、予測値dを算出する。
【0133】
(ステップS203’)
続いて、ステップS201’にて生成された画像データBsと、ステップS202’にて算出された予測値dとの差分をとることによって残差データBsrを生成する。
【0134】
(ステップS204’)
続いて、残差データBsrを周波数変換および量子化することによって、量子化係数を生成する。生成された量子化係数は、動画像復号装置1に伝送される。
【0135】
(ステップS205’)
続いて、ステップS204’にて生成された量子化係数を逆周波数変換および逆量子化することによって残差データB’srを生成する。
【0136】
(ステップS206’)
続いて、ステップS205’にて生成された残差データB’srと、ステップS202’にて算出された予測値dとを加算することによって画像データB’sを生成する。
【0137】
(ステップS207’)
最後に、ステップS206にて生成された画像データB’sを16×16画素にアップサンプリングすることによって、16×16画素のイントラ予測画像Pred_Intraを生成する。
【0138】
(適応フィルタ42)
以下では、動画像復号装置1の備える適応フィルタ42について、
図5〜
図9を参照して説明を行う。
【0139】
図5は、適応フィルタ42の構成を示すブロック図である。
図5に示すように、適応フィルタ42は、予測モード/サイズ蓄積部421、エッジ方向検出部422、活性度算出部423、領域分類部424、および、フィルタ処理部425を備えている。
【0140】
適応フィルタ42は、デブロッキングフィルタ41から供給されるデブロック済復号画像P_DBに対して、符号化データ#1から復号されたフィルタ係数を用いたフィルタ処理を施すことによって、フィルタ済復号画像P_FLを生成する。ここで、フィルタ済復号画像P_FLの生成は、マクロブロック単位で行ってもよいし、マクロブロックよりも小さい領域を単位として行ってもよいし、マクロブロックよりも大きい領域を単位として行ってもよい。以下では、適応フィルタ42が、マクロブロック単位で、フィルタ済復号画像P_FLの生成を行う場合を例に挙げ説明を行う。
【0141】
(予測モード/サイズ蓄積部421)
予測モード/サイズ蓄積部421は、イントラ予測画像生成部17より供給されるイントラ符号化モード情報IEMの示す、パーティションのサイズ(形状および大きさ)、および、パーティションに割り付けられた予測モードを蓄積する。予測モード/サイズ蓄積部421は、対象マクロブロックに含まれるすべてのパーティションについてのサイズおよび予測モードを蓄積する構成とすることができる。
【0142】
また、予測モード/サイズ蓄積部421に蓄積された各パーティションのサイズ、および予測モードを含む情報は、領域分類部424に供給される。
【0143】
なお、各パーティションの形状、および、予測モードの示す方向は、各パーティションにおける復号画像P(若しくはデブロック済復号画像P_DB)の方向性と相関があるという傾向がある。例えば、パーティションのサイズが8×1画素や8×2画素のように横長である場合には、該パーティションに横方向のエッジが含まれているという傾向があり、パーティションのサイズが1×8画素や2×8画素のように縦長である場合には、該パーティションに縦方向のエッジが含まれているという傾向がある。また、復号済みの画素値を所定の方向(予測方向)に外挿することによって行われる方向予測では、予測方向に沿ったエッジが含まれている傾向がある。
【0144】
また、パーティションの大きさは、各パーティションにおける復号画像P(若しくはデブロック済復号画像P_DB)の平坦度と相関があるという傾向がある。例えば、パーティションの大きさが小さい場合には、平坦度が小さく、パーティションのサイズが大きい場合には、平坦度が大きいという傾向がある。平坦度が小さい場合とはすなわち活性度(後述)が大きい場合であるから、パーティションサイズが小さい場合には活性度が大きく、パーティションのサイズが大きい場合には、活性度が小さい傾向があると表現することもできる。
【0145】
また、一部の予測モードは、予測モードが用いられたパーティションにおける復号画像P(若しくはデブロック済復号画像P_DB)の平坦度と相関がある傾向がある。例えば、プレーン予測およびスケール予測で予測されたパーティションは平坦度が大きい(活性度は小さい)傾向がある。
【0146】
領域分類部424は、後述するように、各パーティションのサイズ、および予測モードに応じて、各パーティションを、1または複数のタイプの何れかに分類し、フィルタ係数群を、対象マクロブロックに含まれる各分割領域、または、各パーティションに対して、タイプ毎に割り付けるので、適応フィルタ42は、各パーティションにおける復号画像P(若しくはデブロック済復号画像P_DB)の方向性および平坦度に応じて適切なフィルタ処理を行うことができる。
【0147】
(エッジ方向検出部422)
以下では、エッジ方向検出部422について、
図10(a)〜(b)を参照して説明する。
【0148】
エッジ方向検出部422は、可変長符号復号部13から供給されるフィルタオンオフ情報に含まれる領域指定情報を参照して、デブロック済復号画像P_DBにおける対象マクロブロックを1または複数の分割領域に分割し、各分割領域の画像についてエッジ検出を行う。また、各分割領域について、エッジの方向を示す角度Thetaを、領域分類部424に供給する。なお、上記分割領域には、1つの画素のみが含まれていてもよいし、複数の画素が含まれていてもよい。以下では、エッジ検出の対象となる分割領域(対象分割領域)が1つの画素のみを含む場合、および、対象分割領域に複数の画素が含まれている場合の各々について、エッジ方向検出部422による角度Thetaの算出処理について説明を行う。
【0149】
(対象分割領域が1つの画素のみを含む場合のThetaの算出処理)
対象分割領域が1つの画素(対象画素)のみを含む場合、エッジ検出部422は、対象画素を中心とする3×3画素の参照領域を設定し、当該参照領域の各画素に対して、以下の数式(1a)および(1b)によって定義されるソーベルフィルタ行列SFM_x、およびSFM_yを作用させることによって、ソーベルフィルタ後の画素値Sobel_xおよびSobel_yを算出する。
【0152】
より具体的には、例えば、3×3画素の参照領域に含まれる各画素の画素値を、
図10(a)に示すように、a〜hと表すことにすると、エッジ検出部422は、ソーベルフィルタ後の画素値Sobel_xおよびSobel_yを、それぞれ、以下の数式(2a)および(2b)によって算出する。
【0153】
Sobel_x=−a+c−2×d+2×e−f+h (2a)
Sobel_y=−a−2×b−c+f+2×g+h (2b)
続いて、エッジ検出部422は、以下の数式(3)によって、エッジ方向を示す角度(以下、「エッジ角度」とも呼称する)Thetaを算出する。
【0154】
Theta=arctan(Sobel_x/Sobel_y) (3)
ここで、arctanは、三角関数tanの逆関数を表す。また、角度Thetaは、
図10(b)に示すように、時計周りに増加するものとし、0度から180度までの範囲(0°≦Theta<180°)で表現されるものとする。
【0155】
(対象分割領域が複数の画素を含む場合のThetaの算出処理)
対象分割領域が複数の画素を含む場合、エッジ検出部422は、まず、対象分割領域に含まれる各画素について、3×3画素の参照領域を設定し、上述した方法によって各画素についてのソーベルフィルタ後の画素値Sobel_xおよびSobel_yを算出する。
【0156】
続いて、エッジ検出部422は、以下の数式(4)によって、各画素についてのエッジ強度ESを算出し、最もエッジ強度ESの大きい画素についてのソーベルフィルタ後の画素値Sobel_xおよびSobel_yを用いて、上記数式(3)によってエッジ角度Thetaを算出する。
【0157】
ES=(Sobel_x)
2+(Sobel_y)
2 (4)
なお、エッジ検出部422は、対象分割領域に含まれる全ての画素についてのエッジ強度ESが予め定められた閾値以下である場合には、当該対象分割領域については、エッジなしと判定し、判定結果を領域分類部424に供給する。
【0158】
なお、エッジ検出部422は、エッジの角度を算出することなく、エッジ方向に対応する番号(方向インデックス)を出力する構成としても良い。
【0159】
例えば、三角関数tanの逆関数を用いるのではなく、Sobel_yとSobel_xの大小関係に応じて場合分けをすることによって、以下のように方向インデックスを生成可能である。
【0160】
方向インデックス=0 |Sobel_y|<a×|Sobel_x|の場合
方向インデックス=1 |Sobel_y|≧a×|Sobel_x|かつ
|Sobel_y|≦b×|Sobel_x|かつ
Sobel_yとSobel_xの符号が等しい場合
方向インデックス=2 |Sobel_y|>b×|Sobel_x|の場合
方向インデックス=3 |Sobel_y|≧a×|Sobel_x|かつ
|Sobel_y|≦b×|Sobel_x|かつ
Sobel_yとSobel_xの符号が反対の場合
但し、a=tan(22.5°)=0.414・・・、b=tan(67.5°)=2.414・・・である。なお、この例では4つの方向インデックスを算出したが、2個の方向インデックスの算出や8個の方向インデックスを算出する構成としてもよい。
【0161】
(活性度算出部423)
活性度算出部423は、可変長符号復号部13から供給されるフィルタオンオフ情報に含まれる領域指定情報を参照して、デブロック済復号画像P_DBにおける対象マクロブロックを1または複数の分割領域に分割し、各分割領域の画像について、活性度(activity)ACTを算出する。ここで、活性度とは、概略的に言えば、画像の乱雑さを示す指標であり、分割領域を含む領域にDCT変換を施した場合に得られる変換係数において大きな高周波成分が存在するかなどによっても測定可能であるが、ここでは隣接する画素の画素値によって測定する。隣接する画素の画素値の差が大きいほど、活性度が大きくなる。算出された分割領域毎の活性度ACTは、領域分類部424に供給される。
【0162】
活性度の算出の対象となる分割領域(対象分割領域)における画素の座標を(i、j)と表し、その画素値をR(i、j)と表すことにすると、活性度算出部423は、例えば、以下の数式(5a)を用いることによって、活性度ACTを算出することができる。
【0164】
ここで、i、jに関する和記号Σは、対象分割領域に含まれる画素についての総和をとることを表すものとする。数式(5a)は、隣接する画素の画素値の絶対値の総和(Sum of Absolute Difference, SAD)を指標として、活性度を評価することに対応している。
【0165】
また、活性度算出部423は、以下の数式(5b)を用いることによって、活性度ACTを算出する構成としてもよい。
【0167】
ここで、数式(5b)におけるkおよびlに関する和は、座標(i、j)の画素を中心とした矩形状の領域(x方向:2K+1画素、y方向:2L+1画素)についての和を示している。本実施形態においては、数式(5b)におけるkおよびlに関する和は、対象分割領域に含まれる画素についての総和としてもよい。数式(5b)は、変形ラプラシアンの総和(Sum-Modified Laplacian, SML)を指標として、活性度を評価することに対応している。
【0168】
なお、活性度算出部423は、対象マクロブロックにイントラ予測が適用されている場合には、対象マクロブロックに含まれるパーティション毎に活性度ACTを算出する。
【0169】
(領域分類部424)
領域分類部424は、(1)予測モード/サイズ蓄積部421から供給される各パーティションのサイズ、(2)予測モード/サイズ蓄積部421から供給される各パーティションに割り付けられた予測モード、(3)エッジ方向検出部422から供給されるエッジ角度Theta、および、(4)活性度算出部423から供給される活性度ACTに基づいて、対象マクロブロックに含まれる各分割領域、または、各パーティションを、1または複数のタイプ(以下、「分割領域グループ」とも呼称)の何れかに分類する。領域分類部424による各分割領域、または、各パーティションの分類は、可変長符号復号部13により符号化データ#1から復号されたフィルタセット番号を参照して行われる。
【0170】
なお、エッジ方向検出部422から供給される情報としては、エッジ角度Thetaの代わりに、方向インデックスを用いても良い。以下では、方向インデックスを用いて分類を行う場合には、エッジ角度Thetaが(0°≦Theta<22.5°、または157.5°≦Theta<180°)の場合を方向インデックス0、エッジ角度Thetaが(22.5°≦Theta<67.5°)の場合を方向インデックス1、エッジ角度Thetaが(67.5°≦Theta<112.5°)の場合を方向インデックス2、エッジ角度Thetaが(112.5°≦Theta<157.5°)の場合を方向インデックス3と置き替えることによって、同様の分類を行う構成としてもよい。
【0171】
また、領域分類部424は、可変長符号復号部13から供給されるフィルタ係数群を、対象マクロブロックに含まれる各分割領域、または、各パーティションに対して、タイプ毎に、割り付ける。より具体的には、タイプI(I=1、2、…)に分類された分割領域またはパーティションに対して、符号化データ#1から復号されたフィルタ係数群Iを割り付ける。例えば、タイプ1に分類された分割領域に対しては、フィルタ係数群1を割り付け、タイプ2に分類された分割領域に対しては、フィルタ係数群2を割り付ける。
【0172】
また、対象マクロブロックに含まれる各分割領域または各パーティションが何れのタイプに分類されたのかを示す分類情報は、各分割領域または各パーティションに割り付けられたフィルタ係数群と共に、フィルタ処理部425に供給される。
【0173】
なお、領域分類部424は、対象マクロブロックにイントラ予測が適用されている場合に、各パーティションのサイズ、各パーティションに割り付けられた予測モード、および、各パーティションの活性度ACTに基づいて、各パーティションを複数のタイプの何れかに分類し、対象マクロブロックにインター予測が適用されている場合に、各分割領域におけるエッジ角度、および、各分割領域の活性度ACTに基づいて、各分割領域を複数のタイプの何れかに分類する構成とすることが好適であるが、本実施形態はこれに限定されるものではない。
【0174】
また、上記の説明では、適応フィルタ42の構成として、
図5に示すものを例に挙げたが、本実施形態はこれに限定されるものではない(以下では、
図5に示す適応フィルタ42の構成を適応フィルタ42の基本構成とも呼称する)。
【0175】
例えば、適応フィルタ42は、
図6に示すように、
図5に示す構成における予測モード/サイズ蓄積部421、エッジ方向検出部422、および、活性度算出部423のうち、予測モードサイズ蓄積部421のみを有する構成としてもよい(以下では、
図6に示す適応フィルタ42の構成を適応フィルタ42の第1の変形例とも呼称する)。
【0176】
また、適応フィルタ42は、
図7に示すように、
図5に示す構成における予測モード/サイズ蓄積部421、エッジ方向検出部422、および、活性度算出部423のうち、エッジ方向検出部422のみを有する構成としてもよい(以下では、
図7に示す適応フィルタ42の構成を適応フィルタ42の第2の変形例とも呼称する)。
【0177】
また、適応フィルタ42は、
図8に示すように、
図5に示す構成における予測モード/サイズ蓄積部421、エッジ方向検出部422、および、活性度算出部423のうち、エッジ方向検出部422および活性度算出部423のみを有する構成としてもよい(以下では、
図8に示す適応フィルタ42の構成を適応フィルタ42の第3の変形例とも呼称する)。
【0178】
また、適応フィルタ42は、
図9に示すように、
図5に示す構成における予測モード/サイズ蓄積部421、エッジ方向検出部422、および、活性度算出部423のうち、予測モード/サイズ蓄積部421および活性度算出部423のみを有する構成としてもよい(以下では、
図9に示す適応フィルタ42の構成を適応フィルタ42の第4の変形例とも呼称する)。
【0179】
以下では、領域分類部424による分類処理の例について
図11〜
図16を参照して説明する。なお、符号化データ#1を生成する動画像符号化装置2において、以下に示す(分類処理例1)〜(分類処理例6)に示した方法が選択的に用いられる場合には、何れの分類処理を行ったのかを示すフラグを符号化データ#1に含める構成とし、領域分類部424は当該フラグを参照して、以下に示す(分類処理例1)〜(分類処理例6)のうち、何れかの分類処理を行う構成としてもよい。
【0180】
(分類処理例1)
以下では、領域分類部424による分類処理の第1の例について
図11(a)〜(c)を参照して説明する。
【0181】
本例においては、領域分類部424は、フィルタセット番号、および、各分割領域のエッジ角度Thetaに基づいて、対象マクロブロックに含まれる各分割領域を分類する。
図11は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表である。なお、
図11(a)〜(c)におけるΘは、エッジ角度Thetaを表している(以下同様)。
【0182】
(1−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図11(a)に示すように、対象マクロブロックに含まれる全ての分割領域をタイプ0に分類する。
【0183】
(1−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図11(b)に示すように、エッジ角度Thetaが(0°≦Theta<45°、または135°≦Theta<180°)を満たす分割領域を、タイプ0に分類し、エッジ角度Thetaが(45°≦Theta<135°)を満たす分割領域をタイプ1に分類する。
【0184】
(1−3:フィルタセット番号=2の場合)
フィルタセット番号が2である場合、領域分類部424は、
図11(c)に示すように、エッジ角度Thetaが(0°≦Theta<22.5°、または157.5°≦Theta<180°)を満たす分割領域を、タイプ0に分類し、エッジ角度Thetaが(22.5°≦Theta<67.5°)を満たす分割領域をタイプ1に分類し、エッジ角度Thetaが(67.5°≦Theta<112.5°)を満たす分割領域をタイプ2に分類し、エッジ角度Thetaが(112.5°≦Theta<157.5°)を満たす分割領域をタイプ3に分類する。
【0185】
なお、何れのフィルタセット番号の場合についても、エッジ検出部422によりエッジなしと判定された分割領域が存在する場合には、当該分割領域をタイプ0に分類する構成とすることができる(以下の分類処理例においても同様)。
【0186】
また、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図7に示す第2の変形例を用いてもよいし、
図8に示す第3の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理のみを行う場合には、
図7に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0187】
(分類処理例2)
以下では、領域分類部424による分類処理の第2の例について
図12(a)〜(d)を参照して説明する。
【0188】
本例においては、領域分類部424は、フィルタセット番号、各分割領域のエッジ角度Theta、および、各分割領域の活性度ACTに基づいて、対象マクロブロックに含まれる各分割領域を分類する。
図12は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表であり、(d)は、フィルタセット番号が3である場合の分類を示す表である。
【0189】
(2−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図12(a)に示すように、対象マクロブロックに含まれる全ての分割領域をタイプ0に分類する。
【0190】
(2−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図12(b)に示すように、活性度ACTが予め定められた閾値TH以下である分割領域をタイプ0に分類し、活性度ACTが当該閾値THよりも大きい分割領域をタイプ1に分類する。
【0191】
(2−3:フィルタセット番号=2の場合)
フィルタセット番号が2である場合、領域分類部424は、
図12(c)に示すように、活性度ACTが予め定められた閾値TH以下である分割領域をタイプ0に分類し、活性度ACTが当該閾値THよりも大きい分割領域であって、エッジ角度Thetaが(0°≦Theta<45°、または135°≦Theta<180°)を満たす分割領域をタイプ1に分類し、活性度ACTが当該閾値THよりも大きい分割領域であって、エッジ角度Thetaが(45°≦Theta<135°)を満たす分割領域をタイプ2に分類する。
【0192】
(2−4:フィルタセット番号=3の場合)
フィルタセット番号が3である場合、領域分類部424は、
図12(d)に示すように、活性度ACTが予め定められた第1の閾値TH1以下である分割領域をタイプ0に分類し、活性度ACTが当該第1の閾値よりも大きい第2の閾値TH2よりも大きい分割領域をタイプ5に分類する。
【0193】
また領域分類部424は、活性度ACTが上記第1の閾値よりも大きく、かつ、上記第2の閾値以下である分割領域を以下のように分類する。すなわち、エッジ角度Thetaが、(0°≦Theta<22.5°、または157.5°≦Theta<180°)を満たす分割領域をタイプ1に分類し、エッジ角度Thetaが、(22.5°≦Theta<67.5°)を満たす分割領域をタイプ2に分類し、エッジ角度Thetaが、(67.5°≦Theta<112.5°)を満たす分割領域をタイプ3に分類し、エッジ角度Thetaが、(112.5°≦Theta<157.5°)を満たす分割領域をタイプ4に分類する。
【0194】
このように、本例においては、活性度が所定の閾値以下である場合には、対象マクロブロックに含まれる各分割領域を1つのタイプに分類し、活性度が所定の閾値よりも大きい場合にのみ、対象マクロブロックに含まれる各分割領域を、エッジ角度で測定される方向性によって複数のタイプに分類する。これは、活性度が小さい場合には、画像の方向性を利用するメリットが小さく、活性度が大きい場合には、画像の方向性を利用するメリットが大きいためである。
【0195】
なお、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図8に示す第3の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理のみを行う場合には、
図8に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0196】
(分類処理例3)
以下では、領域分類部424による分類処理の第3の例について
図13(a)〜(c)を参照して説明する。
【0197】
本例においては、領域分類部424は、フィルタセット番号、および、各パーティションのサイズに基づいて、対象マクロブロックに含まれる各パーティションを分類する。
図13は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表である。
【0198】
(3−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図13(a)に示すように、対象マクロブロックに含まれる全てのパーティションをタイプ0に分類する。
【0199】
(3−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図13(b)に示すように、16×16画素のパーティション、および、8×8画素のパーティションをタイプ0に分類し、4×4画素のパーティション、8×1画素のパーティション、および、1×8画素のパーティションをタイプ1に分類する。
【0200】
(3−2:フィルタセット番号=2の場合)
フィルタセット番号が2である場合、領域分類部424は、
図13(c)に示すように、16×16画素のパーティション、および、8×8画素のパーティションをタイプ0に分類し、4×4画素のパーティションをタイプ1に分類し、8×1画素のパーティションをタイプ2に分類し、1×8画素のパーティションをタイプ3に分類する。
【0201】
このように、本例においては、対象マクロブロックに含まれる各パーティションの大きさおよび形状に応じて、各パーティションを複数のタイプに分類する。上述したように、パーティションの大きさと該パーティションにおける画像の活性度との間には負の相関があるため、パーティションの大きさに応じて各パーティションを分類することは、画像の活性度に応じて各パーティションを分類することに対応する。また、上述したように、パーティションの形状と該パーティションにおける画像の方向性とは相関があるため、パーティションの形状に応じて各パーティションを分類することは、画像の方向性に応じて各パーティションを分類することに対応する。このように、本例は、パーティションの大きさと活性度との相関、および、パーティションの形状と方向性との相関を利用することによって、活性度および方向性を直接参照することなく、実質的に活性度および方向性に応じた分類を行うものである。
【0202】
なお、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図6に示す第1の変形例を用いてもよいし、
図9に示す第4の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理、(分類処理例4)、および(分類処理例5)の少なくとも何れかのみを行う場合には、
図6に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0203】
(分類処理例4)
以下では、領域分類部424による分類処理の第4の例について
図14(a)〜(c)を参照して説明する。
【0204】
本例においては、領域分類部424は、フィルタセット番号、および、各パーティションに割り付けられた予測モードに基づいて、対象マクロブロックに含まれる各パーティションを分類する。
図14は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表である。
【0205】
(4−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図14(a)に示すように、対象マクロブロックに含まれる全てのパーティションをタイプ0に分類する。
【0206】
(4−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図14(b)に示すように、DC予測、プレーン予測、および、スケール予測の何れかが適用されたパーティションをタイプ0に分類し、それ以外の予測モードが適用されたパーティションをタイプ1に分類する。
【0207】
(4−3:フィルタセット番号=2の場合)
フィルタセット番号が1である場合、領域分類部424は、
図14(c)に示すように、DC予測、プレーン予測、および、スケール予測の何れかが適用されたパーティションをタイプ0に分類し、方向予測0が適用されたパーティションをタイプ1に分類し、方向予測4が適用されたパーティションをタイプ2に分類し、方向予測1〜3の何れかが適用されたパーティションをタイプ3に分類し、方向予測5〜7の何れかが適用されたパーティションをタイプ4に分類し、TM予測が適用されたパーティションをタイプ5に分類する。
【0208】
本例では、特定の予測モードでは活性度が小さくなるという傾向を利用している。すなわち、活性度が小さくなる傾向のある特定の予測モードと、それ以外の予測モードとを異なったタイプに分類している。上記の説明では、DC予測、プレーン予測、スケール予測の場合に活性度が小さくなる傾向を利用しているが、DC予測の場合には活性度が大きい場合もあることから、プレーン予測、および、スケール予測の場合とDC予測の場合とで異なるタイプを割り当てても良い。DC予測を異なるタイプに割り当てる場合、フィルタセット番号が1の場合にはタイプ1、フィルタセット番号が2の場合には、タイプ5に割り当てると良い。
【0209】
なお、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図6に示す第1の変形例を用いてもよいし、
図9に示す第4の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理、(分類処理例3)、および(分類処理例5)の少なくとも何れかのみを行う場合には、
図6に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0210】
(分類処理例5)
以下では、領域分類部424による分類処理の第5の例について
図15(a)〜(e)を参照して説明する。
【0211】
本例においては、領域分類部424は、フィルタセット番号、各パーティションのサイズ、および、各パーティションに割り付けられた予測モードに基づいて、対象マクロブロックに含まれる各パーティションを分類する。
図15は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表であり、(d)は、フィルタセット番号が3である場合の分類を示す表であり、(e)は、フィルタセット番号が4である場合の分類を示す表である。
【0212】
(5−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図15(a)に示すように、対象マクロブロックに含まれる全てのパーティションをタイプ0に分類する。
【0213】
(5−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図15(b)に示すように、16×16画素のパーティション、および、8×8画素のパーティションをタイプ0に分類し、4×4画素のパーティション、8×1画素のパーティション、および、1×8画素のパーティションをタイプ1に分類する。
【0214】
(5−3:フィルタセット番号=2の場合)
フィルタセット番号が2である場合、領域分類部424は、
図15(c)に示すように、サイズが16×16画素および8×8画素の何れかであって、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ0に分類し、サイズが16×16画素および8×8画素の何れかであって、DC予測、プレーン予測、およびスケール予測以外の予測モードが適用されたパーティションをタイプ1に分類し、サイズが4×4画素、8×1画素、および1×8画素の何れかであって、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ2に分類し、サイズが4×4画素、8×1画素、および1×8画素の何れかであって、DC予測、プレーン予測、およびスケール予測以外の予測モードが適用されたパーティションをタイプ3に分類する。
【0215】
(5−4:フィルタセット番号=3の場合)
フィルタセット番号が3である場合、領域分類部424は、
図15(d)に示すように、サイズが16×16画素、8×8画素、および、4×4画素の何れかであるパーティションを以下のように分類する。すなわち、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ0に分類し、方向予測0が適用されたパーティションをタイプ1に分類し、方向予測4が適用されたパーティションをタイプ2に分類し、方向予測1〜3および5〜7の何れかが適用されたパーティションをタイプ3に分類し、TM予測が適用されたパーティションをタイプ4に分類する。
【0216】
また、領域分類部424は、
図15(d)に示すように、サイズが8×1画素であるパーティションをタイプ1(すなわち、サイズが16×16画素、8×8画素、および、4×4画素の何れかであって、方向予測0が適用されたパーティションと同じタイプ)に分類し、サイズが1×8画素であるパーティションをタイプ2(すなわち、サイズが16×16画素、8×8画素、および、4×4画素の何れかであって、方向予測4が適用されたパーティションと同じタイプ)に分類する。
【0217】
(5−5:フィルタセット番号=4の場合)
フィルタセット番号が4である場合、領域分類部424は、
図15(e)に示すように、サイズが16×16画素、および8×8画素の何れかであるパーティションを以下のように分類する。すなわち、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ0に分類し、方向予測0が適用されたパーティションをタイプ1に分類し、方向予測4が適用されたパーティションをタイプ2に分類し、方向予測1〜3の何れかが適用されたパーティションをタイプ1に分類し、方向予測5〜7の何れかが適用されたパーティションをタイプ2に分類し、TM予測が適応されたパーティションをタイプ3に分類する。
【0218】
また、領域分類部424は、
図15(e)に示すように、サイズが4×4画素であるパーティションを以下のように分類する。すなわち、すなわち、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ4に分類し、方向予測0が適用されたパーティションをタイプ5に分類し、方向予測4が適用されたパーティションをタイプ6に分類し、方向予測1〜3の何れかが適用されたパーティションをタイプ7に分類し、方向予測5〜7の何れかが適用されたパーティションをタイプ8に分類し、TM予測が適応されたパーティションをタイプ9に分類する。
【0219】
また、領域分類部424は、
図15(e)に示すように、サイズが8×1画素であるパーティションをタイプ5(すなわち、サイズが4×4画素であって、方向予測0が適用されたパーティションと同じタイプ)に分類し、サイズが1×8画素であるパーティションをタイプ6(すなわち、サイズが4×4画素であって、方向予測4が適用されたパーティションと同じタイプ)に分類する。
【0220】
このように、本例は、(1)パーティションのサイズと活性度との関係、および、(2)パーティションの形状及び予測モードと方向性との関係、の両方を利用するものである。
【0221】
なお、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図6に示す第1の変形例を用いてもよいし、
図9に示す第4の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理、(分類処理例3)、および(分類処理例4)の少なくとも何れかのみを行う場合には、
図6に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0222】
(分類処理例6)
以下では、領域分類部424による分類処理の第6の例について
図16(a)〜(e)を参照して説明する。
【0223】
本例においては、領域分類部424は、フィルタセット番号、および、各パーティションに割り付けられた予測モード、および、各パーティションの活性度に基づいて、対象マクロブロックに含まれる各パーティションを分類する。
図16は、本例における領域分類部424による分類処理を説明するためのものであって、(a)は、フィルタセット番号が0である場合の分類を示す表であり、(b)は、フィルタセット番号が1である場合の分類を示す表であり、(c)は、フィルタセット番号が2である場合の分類を示す表であり、(d)は、フィルタセット番号が3である場合の分類を示す表であり、(e)は、フィルタセット番号が4である場合の分類を示す表である。
【0224】
(6−1:フィルタセット番号=0の場合)
フィルタセット番号が0である場合、領域分類部424は、
図16(a)に示すように、対象マクロブロックに含まれる全てのパーティションをタイプ0に分類する。
【0225】
(6−2:フィルタセット番号=1の場合)
フィルタセット番号が1である場合、領域分類部424は、
図16(b)に示すように、活性度ACTが予め定められた閾値TH以下であるパーティションをタイプ0に分類し、活性度ACTが当該閾値THよりも大きいパーティションをタイプ1に分類する。
【0226】
(6−3:フィルタセット番号=2の場合)
フィルタセット番号が2である場合、領域分類部424は、
図16(c)に示すように、活性度ACTが予め定められた閾値TH以下であるパーティションをタイプ0に分類し、活性度ACTが当該閾値THよりも大きいパーティションであって、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ1に分類し、活性度ACTが当該閾値THよりも大きいパーティションであって、DC予測、プレーン予測、およびスケール予測以外の予測モードが適用されたパーティションをタイプ2に分類する。
【0227】
(6−4:フィルタセット番号=3の場合)
フィルタセット番号が3である場合、領域分類部424は、
図16(d)に示すように、活性度ACTが予め定められた閾値TH以下であるパーティションをタイプ0に分類する。また、領域分類部424は、活性度ACTが当該閾値THよりも大きいパーティションを以下のように分類する。すなわち、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ1に分類し、方向予測0が適用されたパーティションをタイプ2に分類し、方向予測4が適用されたパーティションをタイプ3に分類し、それ以外の予測モードが適用されたパーティションをタイプ4に分類する。
【0228】
(6−5:フィルタセット番号=4の場合)
フィルタセット番号が3である場合、領域分類部424は、
図16(e)に示すように、活性度ACTが予め定められた閾値TH以下であるパーティションをタイプ0に分類する。また、領域分類部424は、活性度ACTが当該閾値THよりも大きいパーティションを以下のように分類する。すなわち、DC予測、プレーン予測、およびスケール予測の何れかが適用されたパーティションをタイプ1に分類し、方向予測0が適用されたパーティションをタイプ2に分類し、方向予測4が適用されたパーティションをタイプ3に分類し、方向予測1〜3の何れかが適用されたパーティションをタイプ4に分類し、方向予測5〜7の何れかが適用されたパーティションをタイプ5に分類し、TM予測が適用されたパーティションをタイプ6に分類する。
【0229】
このように、本例は、(1)パーティションのサイズと活性度との関係、および、(2)パーティションの形状もしくは予測モードと方向性の関係の両方を利用するものである。
【0230】
なお、本例の処理を行うための適応フィルタ42としては、
図5に示す基本構成を有するものを用いてもよいし、
図9に示す第4の変形例を用いてもよい。(分類処理例1)〜(分類処理例6)のうち、本例の処理のみを行う場合には、
図9に示す変形例を用いることによって、適応フィルタ42の構成を簡単なものにすることができる。
【0231】
(フィルタ処理部425)
フィルタ処理部425は、デブロック済復号画像P_DBにおける対象マクロブロックに含まれる各分割領域、または、各パーティションに対して、領域分類部424より供給されるフィルタ係数群を用いてフィルタ処理を行うことによって、フィルタ済復号画像P_FLを生成する。ここで、タイプI(I=1、2、…)に分類された分割領域またはパーティションに対しては、フィルタ係数群Iを用いたフィルタ処理が行われる。
【0232】
より具体的には、フィルタ済復号画像P_FL(以下、「フィルタ後画像」とも呼称する)における対象マクロブロック内の画素値であって、タイプI(I=1、2、…)に分類された分割領域またはパーティションにおけるフィルタ対象画素の画素値をSF(x’、y’)と表し、デブロック済復号画像P_DB(以下、「フィルタ前画像」とも呼称する)における対象マクロブロック内または対象マクロブロック周辺の画素値をS(x、y)と表すことにすると、フィルタ処理部425は、画素値SF(x’、y’)を、以下の数式(6)によって算出する。
【0234】
ここで、座標(x、y)は座標(x’、y’)と同一の座標としてもよいし、1対1の対応を有していれば、異なった座標としてもよい。また、aI(i、j)は、フィルタ前画像の画素値S(x+i、y+j)に乗ぜられるフィルタ係数を表しており、符号化データ#1に含まれるフィルタ係数群に含まれるフィルタ係数に対応している。また、oIは、フィルタ係数群Iに含まれるオフセットを表している。
【0235】
また、Rは、フィルタ処理において参照される領域(以下、「フィルタ参照領域R」とも呼称する)を示している。
図17(a)に、本実施形態におけるフィルタ参照領域Rの例を示す。
図17(a)において、斜線が付された画素は、フィルタ対象画素を示している。また、
図17(a)において、a0〜a12は、符号化データ#1から復号されたフィルタ係数であって、フィルタ参照領域Rに含まれる各画素に割り付けられたフィルタ係数を表している。
図17(a)に示すように、フィルタ参照領域Rは、例えば、フィルタ対象画素からの市街地距離が3以下である画素から構成することができる。
【0236】
また、
図17(a)に示すように、各フィルタ係数は、180度の回転対称性を有するように、フィルタ参照領域Rに含まれる各画素に対して割り付けられる構成とすることができる。すなわち、数式(6)におけるaI(i、j)は、符号化データ#1から復号されたフィルタ係数a0〜a12を用いて、aI(0、−3)=aI(0、3)=a0、aI(1、−2)=aI(−1、2)=a1、…、のように、aI(i、j)=aI(−i、−j)を満たすように設定される構成とすることができる。
【0237】
ただし、本実施形態はこれに限定されるものではなく、各フィルタ係数の各画素値への割り付けは、回転対称性を有していなくてもよい。また、フィルタ参照領域Rは、より一般に、画素を単位として、座標(x、y)からの市街地距離がNcb以下である画素によって構成される領域であってもよいし、座標(x、y)を中心とするNx×Nyタップの矩形状の領域としてもよいし、その他の画素を含むように構成される領域であってもよい。
【0238】
フィルタ参照領域Rに含まれる各画素へのフィルタ係数の割り付け方、および、フィルタ参照領域Rの形状については、符号化データ#1を生成する動画像符号化装置の構成に応じて適宜設定すればよい。
【0239】
また、フィルタ処理部425は、可変長符号復号部13から供給されるオンオフ情報によって、フィルタ処理がオフであると指定されている分割領域、および、パーティションについては、フィルタ処理を行わない構成とすることができる。
【0240】
以上のように、適応フィルタ42は、出力画像(フィルタ済復号画像P_FL)における各画素の画素値を、入力画像(デブロック画像P_DB)における該画素の位置に応じて定まる参照領域R内の画素値と、フィルタ係数群とから算出する画像フィルタ装置において、上記入力画像を構成する複数の単位領域(分割領域またはパーティション)の各々における上記入力画像の方向性を識別する方向性識別手段(エッジ方向検出部422、領域分類部424)と、上記方向性識別手段によって識別された各単位領域における上記入力画像の方向性が、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループ(タイプ)の何れかに分類する分類手段(領域分類部424)と、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するフィルタ手段(フィルタ処理部425)と、を備えている。
【0241】
以上のような構成を有する適応フィルタ42によれば、上記フィルタ手段が、出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するので、上記入力画像の方向性が、単位領域毎に異なるような場合に、当該方向性に応じて適切なフィルタ処理を行うことができる。
【0242】
したがって、適応フィルタ42によれば、上記入力画像が、活性度によってフィルタ係数を切り替えたとしても符号化効率が向上しない画像特性を有するものであっても、上記出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0243】
なお、各単位領域における入力画像(デブロック画像P_DB)の方向性は、当該入力画像のエッジを、エッジ方向検出部422にて検出することによって識別してもよいし、イントラ予測画像を生成する際に参照されるイントラ予測モード(予測モード)の示す方向によって領域分類部424にて間接的に識別する構成としてもよい。
【0244】
また、適応フィルタ42は、画面内予測を用いて単位領域(分割領域またはパーティション)毎に生成された入力画像(デブロック画像P_DB)から出力画像(フィルタ済復号画像P_FL)を生成する画像フィルタ装置であって、出力画像における各画素の画素値を、該画素の位置に応じて定まる参照領域内の入力画像の画素値と、フィルタ係数群とから算出する画像フィルタ装置において、各単位領域の形状および大きさが、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループ(タイプ)の何れかに分類する分類手段(領域分類部424)と、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するフィルタ手段(フィルタ処理部425)と、を備えているものである、と表現することもできる。
【0245】
このように、適応フィルタ42は、パーティションの形状および大きさに応じて、例えば、(分類処理例3)に示したように各パーティションを複数のグループの何れかに分類し、グループ毎に最適なフィルタ係数を用いてフィルタ処理を行うことができる。
【0246】
したがって、適応フィルタ42によれば、上記入力画像が、活性度によってフィルタ係数を切り替えたとしても符号化効率が向上しない画像特性を有するものであっても、上記出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0247】
<変形例1>
以上の説明では、符号化データ#1のスライスヘッダSHに、フィルタセット番号が含まれている場合を例に挙げたが、本実施形態はこれに限定されるものではない。例えば、符号化データ#1のスライスヘッダSHは、フィルタセット番号に代えて、エッジ角度Theta、予測モード、各パーティションのサイズ、および活性度ACTと、1または複数のフィルタ係数群(より具体的には、フィルタ係数群を指定するフィルタ番号)との対応関係を示すテーブル(以下、「フィルタ割り当てテーブル」とも呼称する)を含む構成としてもよい。
【0248】
図18は、フィルタ割り当てテーブルを含むスライスヘッダSH’の構成を示す図である。スライスヘッダSH’は、既に説明したスライスヘッダSHと同様に、フィルタオンオフ情報、フィルタ係数群0〜Nf−1を含んでいる。また、スライスヘッダSH’は、スライスヘッダSHに含まれるフィルタセット番号に代えて、上述したフィルタ割り当てテーブルを含んでいる。
【0249】
図19(a)〜(b)に、フィルタ割り当てテーブルの例を示す。
図19(a)に示すように、フィルタ割り当てテーブルは、例えば、エッジ角度Thetaと、フィルタ番号との対応関係を示すテーブルであってもよいし、
図19(b)に示すように、予測モード、および、パーティションのサイズと、フィルタ番号との対応関係であってもよい。また、フィルタ割り当てテーブルとしては、
図19(a)〜(b)に示したものに限られるものではなく、エッジ方向、パーティションのサイズ、予測モード、および活性度の何れかと、フィルタ番号とを対応付けるものであればよい。
【0250】
適応フィルタ42の備える領域分類部424は、スライスヘッダSH’に含まれるフィルタ割り当てテーブルを参照し、対象マクロブロックに含まれる各分割領域または各パーティションに対して、符号化データ#1から復号されるフィルタ係数群であって、当該フィルタ割り当てテーブルによって指定されるフィルタ係数群を割り付ける構成とすることができる。
【0251】
例えば、領域分類部424は、スライスヘッダSH’に含まれるフィルタ割り当てテーブルが
図19(a)に示すものである場合、エッジ角度Thetaが(0°≦Theta<22.5°、または、157.5°≦Theta<180°)である分割領域に対して、フィルタ係数群0を割り付け、エッジ角度Thetaが(22.5°≦Theta<67.5°)である分割領域に対して、フィルタ係数群2を割り付け、エッジ角度Thetaが(67.5°≦Theta<112.5°)である分割領域に対して、フィルタ係数群1を割り付け、エッジ角度Thetaが(112.5°≦Theta<157.5°)である分割領域に対して、フィルタ係数群2を割り付ける。スライスヘッダSH’に含まれるフィルタ割り当てテーブルが
図19(b)に示すものである場合についても、同様である。
【0252】
このように、フィルタ割り当てテーブルを参照することによって、フィルタセットを用いる場合に比べて、複数のフィルタ係数群の各々を異なったタイプ(単位領域グループ)に関連付ける自由度が増大するため、フィルタ係数群の選択の自由度が増大する。
【0253】
なお、フィルタ割り当てテーブルは、符号化データ#1に含まれる複数のフィルタ係数群の各々を、何れのエッジ角度に関連付けるのかを示す情報(方向性情報)として捉えることもできる。
【0254】
<変形例2>
また、以上の説明では、数式(6)のフィルタ参照領域Rとして、
図17(a)に示すものを例に挙げたが、本実施形態はこれに限られるものではない。本実施形態におけるフィルタ参照領域Rとしては、例えば、
図17(b)〜(d)に示すものを用いてもよい。
図17(a)〜(d)において、斜線が付された画素は、フィルタ対象画素を示している。以下では、
図17(a)に示すフィルタ参照領域Rを「基本参照領域」と呼称し、
図17(b)に示すフィルタ参照領域Rを「垂直方向型の参照領域」と呼称し、
図17(c)に示すフィルタ参照領域Rを「水平方向型の参照領域」と呼称し、
図17(d)に示すフィルタ参照領域Rを「斜め方向型の参照領域」と呼称する。
【0255】
図17(a)に示す基本参照領域は、デブロック済復号画像P_DBの対象マクロブロックにおいて、エッジが存在しない分割領域若しくはパーティション、または、エッジの強度が所定の値よりも小さい分割領域若しくはパーティションのフィルタ処理に好適に用いることができる。
【0256】
一方で、
図17(b)に示すように、垂直方向型の参照領域は、垂直方向の長さが水平方向の長さに比べて長いという特徴がある。このため、デブロック済復号画像P_DBの対象マクロブロックにおいて、縦方向のエッジが存在する分割領域またはパーティションのフィルタ処理に好適に用いることができる。
【0257】
また、
図17(c)に示すように、水平方向型の参照領域は、水平方向の長さが垂直方向の長さに比べて長いという特徴がある。このため、デブロック済復号画像P_DBの対象マクロブロックにおいて、横方向のエッジが存在する分割領域またはパーティションのフィルタ処理に好適に用いることができる。
【0258】
また、
図17(d)に示すように、斜め方向型の参照領域は、矩形状であるため、デブロック済復号画像P_DBの対象マクロブロックにおいて、斜め方向のエッジが存在する分割領域またはパーティションのフィルタ処理に好適に用いることができる。
【0259】
適応フィルタ42の備えるフィルタ処理部425は、フィルタ参照領域Rとして、上述の基本参照領域、垂直方向型の参照領域、水平方向型の参照領域、および、斜め方向型の参照領域のうち、何れかの参照領域を選択的に用いる構成とすることができる。より具体的には、予測モード/サイズ蓄積部421およびエッジ方向検出部422が、それぞれ、各パーティションの予測モード、および、各分割領域のエッジ角度Thetaを、フィルタ処理部425に供給する構成とし、フィルタ処理部425は、各分割領域のエッジ角度、または、各パーティションの予測モードに応じて、上記複数の参照領域の何れかを選択的に用いる構成とすることができる。
【0260】
図20(a)に、エッジ角度と、使用される参照領域との対応関係の例を示す。
図20(a)に示すように、フィルタ処理部425は、例えば、エッジ角度Thetaが(0°≦Theta<22.5°、または157.5°≦Theta<180°)を満たす分割領域内にフィルタ対象画素が存在する場合に、水平方向型の参照領域を用い、エッジ角度Thetaが(22.5°≦Theta<67.5°)を満たす分割領域内にフィルタ対象画素が存在する場合に、斜め方向型の参照領域を用い、エッジ角度Thetaが(67.5°≦Theta<112.5°)を満たす分割領域内にフィルタ対象画素が存在する場合に、垂直方向型の参照領域を用い、エッジ角度Thetaが(112.5°≦Theta<157.5°)を満たす分割領域内にフィルタ対象画素が存在する場合に、斜め方向型の参照領域を用いる構成とすることができる。
【0261】
また、
図20(b)に、予測モードと、使用される参照領域との対応関係の例を示す。
図20(b)に示すように、フィルタ処理部425は、例えば、予測モードがDC予測、プレーン予測、TM予測、およびスケール予測の何れかであるパーティション内にフィルタ対象画素が存在する場合に、基本参照領域を用い、予測モードが方向予測0であるパーティション内にフィルタ対象画素が存在する場合に、水平方向型の参照領域を用い、予測モードが方向予測4であるパーティション内にフィルタ対象画素が存在する場合に、垂直方向型の参照領域を用い、予測モードが方向予測1〜3、および、方向予測5〜7の何れかであるパーティション内にフィルタ対象画素が存在する場合に、斜め方向型の参照領域を用いる構成とすることができる。
【0262】
本変形例の構成と同様の構成を有する動画像符号化装置は、エッジ角度、および、予測モードに応じて、複数のフィルタ参照領域の形状のうちから最適な形状を選択することによって、より適切なフィルタ処理を行うことができるので、予測精度が向上し、符号化効率を向上させることができる。また、フィルタ参照領域の形状をエッジ角度、および、予測モードに応じて、最適化することによって、フィルタ係数群の総数を可能な限り少なくしつつ効果的なフィルタ処理を行うことができる。
【0263】
また、本変形例の構成を有する動画像復号装置1は、そのような符号化効率の高い符号化データを適切に復号することができる。
【0264】
なお、本実施形態において、選択可能な参照領域の形状は、
図20(a)〜(d)に示すものに限定されるものではなく、エッジ角度、および、予測モードに応じて、他にも様々な形状および大きさの参照領域を用いることができる。
【0265】
<変形例3>
以上の説明では、符号化データ#1のスライスヘッダにフィルタセット番号が含まれている場合、および、当該フィルタセット番号に代えて、フィルタ割り当てテーブルが含まれている場合を例に挙げたが、本実施形態は、これらに限定されるものではない。
【0266】
例えば、符号化データ#1のスライスヘッダは、フィルタセット番号、および、フィルタ割り当てテーブルの何れも含まない構成としてもよい。
【0267】
符号化データ#1がこのような構成である場合、領域分類部424は、フィルタセット番号を参照することなく、(1)各パーティションのサイズ、(2)予測モード、(3)エッジ角度Theta、および、(4)活性度ACTに基づいて、対象マクロブロックに含まれる各分割領域、または、各パーティションを、1または複数のタイプに分類し、タイプI(I=1、2、…)に分類された分割領域またはパーティションに対して、符号化データ#1から復号されたフィルタ係数群Iを割り付ける構成とすればよい。
【0268】
また、以上の説明では、エッジ検出部422は、各分割領域のエッジの角度Thetaを、0°≦Theta<180°の範囲で検出するものとしたが、本実施形態はこれに限定されるものではない。例えば、エッジ検出部422は、各分割領域のエッジの角度Thetaを、0°≦Theta<360°の範囲で検出する構成としてもよい。
【0269】
図21は、符号化データ#1がフィルタセット番号、および、フィルタ割り当てテーブルの何れも含まない構成である場合であって、エッジ検出部422が、各分割領域のエッジの角度Thetaを、0°≦Theta<360°の範囲で検出する構成である場合の、領域分類部424による分類処理の例を示す表である。
図21に示すように、領域分類部424は、エッジ角度Thetaが(0°≦Theta<22.5°、または、337.5°≦Theta<360°)を満たす分割領域を、タイプ0に分類し、エッジ角度Thetaが(22.5°≦Theta<67.5°)を満たす分割領域を、タイプ1に分類し、エッジ角度Thetaが(67.5°≦Theta<112.5°)を満たす分割領域を、タイプ2に分類し、エッジ角度Thetaが(112.5°≦Theta<157.5°)を満たす分割領域を、タイプ3に分類し、エッジ角度Thetaが(157.5°≦Theta<202.5°)を満たす分割領域を、タイプ4に分類し、エッジ角度Thetaが(202.5°≦Theta<247.5°)を満たす分割領域を、タイプ5に分類し、エッジ角度Thetaが(247.5°≦Theta<292.5°)を満たす分割領域を、タイプ6に分類し、エッジ角度Thetaが(292.5°≦Theta<337.5°)を満たす分割領域を、タイプ7に分類する。
【0270】
また、領域分類部424は、タイプI(I=1〜7)に分類された分割領域に、符号化データ#1から復号されたフィルタ係数群Iを割り付ける。
【0271】
本変形例においては、エッジ角度を0°≦Theta<360°の範囲で検出し、検出された角度に応じてフィルタ係数群を割り付けるので、より効果的なフィルタ処理を行うことができる。また、本変形例においては、符号化データ#1は、フィルタセット番号、および、フィルタ割り当てテーブルの何れも含まない構成であるため、符号化データ#1の符号量を削減することができる。
【0272】
<変形例4>
また、以上の説明では、領域分類部424は、対象マクロブロックに含まれる各分割領域、または、各パーティション(予測単位)を複数のタイプの何れかに分類する構成としたが、本実施形態はこれに限定されるものではない。例えば、領域分類部424は、対象マクロブロックに含まれる各ブロック(変換単位)を複数のタイプの何れかに分類する構成としてもよい。この場合、領域分類部424は、上述した構成と略同様に、対象マクロブロックに含まれる各ブロックのサイズ、予測モード、エッジ角度、および、活性度ACTに応じて、各ブロックを複数のタイプの何れかに分類する構成とすることができる。
【0273】
また、このような構成の場合、イントラ予測モード蓄積部421は、対象マクロブロックに含まれる各パーティションの予測モードを、対応するブロックに割り付け、各ブロックの予測モードおよび各ブロックのサイズを蓄積する構成とすればよい。また、エッジ方向検出部422は、対象マクロブロックに含まれる各ブロックについてエッジ検出を行う構成とすればよい。また、活性度算出部423は、対象マクロブロックに含まれる各ブロックについて活性度ACTを算出する構成とすればよい。また、フィルタ処理部425は、タイプI(I=1、2、…)に分類されたブロックに対して、フィルタ係数群Iを用いたフィルタ処理を行う構成とすればよい。
【0274】
適応フィルタ42は、本例のような構成であっても、デブロック済復号画像P_DBに対して、適切なフィルタ処理を行うことができる。
【0275】
(動画像符号化装置2)
本実施形態に係る動画像符号化装置2の構成について
図22〜
図24を参照して説明する。動画像符号化装置2は、その一部に、H.264/MPEG−4.AVC、及び、KTAソフトウェアに採用されている技術を含む復号装置である。
【0276】
図22は、動画像符号化装置2の構成を示すブロック図である。
図22に示すように、動画像符号化装置2は、変換・量子化部21、可変長符号符号化部22、逆量子化・逆変換部23、バッファメモリ24、イントラ予測画像生成部25、インター予測画像生成部26、動きベクトル検出部27、予測方式制御部28、動きベクトル冗長性削除部29、加算器31、減算器32、デブロッキングフィルタ33、および、適応フィルタ34を備えている。動画像符号化装置2は、動画像#10(符号化対象画像)を符号化することによって、符号化データ#1を生成する装置である。
【0277】
変換・量子化部21は、(1)符号化対象画像から予測画像Predを減算した予測残差Dをブロック毎にDCT変換(Discrete Cosine Transform)し、(2)DCT変換により得られたDCT係数を量子化し、(3)量子化により得られた量子化予測残差QDを可変長符号符号化部22及び逆量子化・逆変換部23に供給する。なお、変換・量子化部21は、(1)量子化の際に用いる量子化ステップQPをマクロブロック毎に選択し、(2)選択した量子化ステップQPの大きさを示す量子化パラメータ差分Δqpを可変長符号符号化部22に供給し、(3)選択した量子化ステップQPを逆量子化・逆変換部23に供給する。ここで、量子化パラメータ差分Δqpとは、DCT変換/量子化するマクロブロックに関する量子化パラメータqp(QP=2
pq/6)の値から、直前にDCT変換/量子化したマクロブロックに関する量子化パラメータqp’の値を減算して得られる差分値のことを指す。
【0278】
可変長符号符号化部22は、(1)変換・量子化部21から供給された量子化予測残差QD並びにΔqp、(2)後述する予測方式制御部28から供給された量子化パラメータPP、および、(3)後述する適応フィルタ34から供給されたフィルタセット番号、フィルタ係数群、領域指定情報、並びにオンオフ情報を可変長符号化することによって、符号化データ#1を生成する。
【0279】
逆量子化・逆変換部23は、(1)量子化予測残差QDを逆量子化し、(2)逆量子化によって得られたDCT係数を逆DCT(Discrete Cosine Transform)変換し、(3)逆DCT変換によって得られた予測残差Dを加算器31に供給する。量子化予測残差QDを逆量子化する際には、変換・量子化部21から供給された量子化ステップQPを利用する。なお、逆量子化・逆変換部23から出力される予測残差Dは、変換・量子化部21に入力される予測残差Dに量子化誤差が加わったものであるが、ここでは簡単のために共通の呼称を用いる。
【0280】
イントラ予測画像生成部25は、各パーティションに関する予測画像Pred_Intraを生成する。具体的には、(1)各パーティションついてイントラ予測に用いる予測モードを選択し、(2)選択した予測モードを用いて、復号画像Pから予測画像Pred_Intraを生成する。イントラ予測画像生成部25は、生成したイントラ予測画像Pred_Intraを、予測方式制御部28に供給する。
【0281】
また、イントラ予測画像生成部25は、自身のメモリに格納されている
図3(a)に示す対応表を参照し、各パーティションについて選択された予測モードと、各パーティションのサイズとから各パーティションについての予測インデックスPIを特定し、各パーティションについての当該予測インデックスPIを示す予測インデックス指定情報を予測方式制御部28に供給する。
【0282】
また、イントラ予測画像生成部25は、対象パーティションのサイズ、および、対象パーティションに割り付けられた予測モードを示す情報であるイントラ符号化モード情報IEMを適応フィルタ34に供給する。
【0283】
なお、イントラ予測画像生成部25によるイントラ予測画像の生成は、(イントラ予測画像生成部17によるイントラ予測画像の生成処理)において説明した処理と同様の処理によって行うことができる。
【0284】
動きベクトル検出部27は、各パーティションに関する動きベクトルmvを検出する。具体的には、(1)参照画像として利用するフィルタ済復号画像P_FL’を選択し、(2)選択したフィルタ済復号画像P_FL’において対象パーティションを最良近似する領域を探索することによって、対象パーティションに関する動きベクトルmvを検出する。ここで、フィルタ済復号画像P_FL’は、既に復号が完了した復号済みの復号画像に対して、デブロッキングフィルタ33によるデブロック処理、および、適応フィルタ34による適応的フィルタ処理を施すことによって得られる画像であり、動きベクトル検出部27は、フィルタ済復号画像P_FL’を構成する各画素の画素値をバッファメモリ24から読み出すことができる。動きベクトル検出部27は、検出した動きベクトルmvを、参照画像として利用したフィルタ済復号画像P_FL’を指定する参照画像インデックスRIと共に、インター予測画像生成部26及び動きベクトル冗長性削除部29に供給する。なお、双方向予測(重み付き予測)を行うパーティションについては、参照画像として2枚のフィルタ済復号画像P_FL1’及びP_FL2’を選択し、2枚のフィルタ済復号画像P_FL1’及びP_FL2’の各々に対応する動きベクトルmv1及びmv2、並びに、参照画像インデックスRI1及びRI2をインター予測画像生成部26及び動きベクトル冗長性削除部29に供給する。
【0285】
インター予測画像生成部26は、各インター予測パーティションに関する動き補償画像mcを生成する。具体的には、動きベクトル検出部27から供給された動きベクトルmvを用いて、動きベクトル検出部27から供給された参照画像インデックスRIによって指定されるフィルタ済復号画像P_FL’から動き補償画像mcを生成する。動きベクトル検出部27と同様、インター予測画像生成部26は、フィルタ済復号画像P_FL’を構成する各画素の画素値をバッファメモリ24から読み出すことができる。インター予測画像生成部26は、生成した動き補償画像mc(インター予測画像Pred_Inter)を、動きベクトル検出部27から供給された参照画像インデックスRIと共に、予測方式制御部28に供給する。なお、双方向予測(重み付き予測)をパーティションについては、(1)動きベクトルmv1を用いて、参照画像インデックスRI1によって指定されたフィルタ済復号画像P_FL1’から動き補償画像mc1を生成し、(2)動きベクトルmv2を用いて、参照画像インデックスRI2によって指定されたフィルタ済参照画像P_FL2’から動き補償画像mc2を生成し、(3)動き補償画像mc1と動き補償画像mc2との加重平均にオフセット値を加えることによってインター予測画像Pred_Interを生成する。
【0286】
予測方式制御部28は、イントラ予測画像Pred_Intra及びインター予測画像Pred_Interを符号化対象画像と比較し、イントラ予測を行うかインター予測を行うかを選択する。イントラ予測を選択した場合、予測方式制御部28は、イントラ予測画像Pred_Intraを予測画像Predとして加算器31及び減算器32に供給すると共に、イントラ予測画像生成部25から供給された予測インデックスPIを予測パラメータPPとして可変長符号符号化部22に供給する。一方、インター予測を選択した場合、予測方式制御部28は、インター予測画像Pred_Interを予測画像Predとして加算器31及び減算器32に供給すると共に、インター予測画像生成部26から供給された参照画像インデックスRI、並びに、動きベクトル冗長性削除部29(後述)から供給された推定動きベクトルインデックスPMVI及び動きベクトル残差MVDを予測パラメータPPとして可変長符号符号化部に供給する。
【0287】
予測方式制御部28にて選択された予測画像Predを、符号化対象画像から減算することによって、減算器32にて予測残差Dが生成される。減算器32にて生成された予測残差Dは、上述したとおり、変換・量子化部21によってDCT変換/量子化される。一方、予測方式制御部28にて選択された予測画像Predを、逆量子化・逆変換部23にて生成された予測残差Dに加算することによって、加算器31にて局所復号画像Pが生成される。加算器31にて生成された局所復号画像Pは、デブロッキングフィルタ33および適応フィルタ34を経由したのち、フィルタ済復号画像P_FLとしてバッファメモリ24に格納され、インター予測における参照画像として利用される。
【0288】
なお、動きベクトル冗長性削除部29は、動きベクトル検出部27によって検出された動きベクトルmvにおける冗長性を削除する。具体的には、(1)動きベクトルmvの推定に用いる推定方法を選択し、(2)選択した推定方法に従って推定動きベクトルpmvを導出し、(3)動きベクトルmvから推定動きベクトルpmvを減算することにより動きベクトル残差MVDを生成する。動きベクトル冗長性削除部29は、生成した動きベクトル残差MVDを、選択した推定方法を示す推定動きベクトルインデックスPMVIと共に、予測方式制御部28に供給する。
【0289】
デブロッキングフィルタ33は、復号画像Pにおけるブロック境界、またはマクロブロック境界を介して互いに隣接する画素の画素値の差が予め定められた閾値よりも小さい場合に、復号画像Pにおける当該ブロック境界、または当該マクロブロック境界に対してデブロッキング処理を施すことによって、当該ブロック境界、または当該マクロブロック境界付近の画像の平滑化を行う。デブロッキングフィルタ33によりデブロッキング処理が施された画像は、デブロック済復号画像P_DBとして、適応フィルタ34に出力される。
【0290】
適応フィルタ34は、デブロッキングフィルタ33から供給されるデブロック済復号画像P_DBに対して、適応的なフィルタ処理を施すことによって、フィルタ済復号画像P_FLを生成する。適応フィルタ34によりフィルタ処理が施されたフィルタ済復号画像P_FLは、バッファメモリ24に格納される。適応フィルタ34の具体的な構成については、後述するため、ここでは説明を省略する。
【0291】
(適応フィルタ34)
以下では、動画像符号化装置2の備える適応フィルタ34について、
図23〜
図24を参照して説明を行う。
【0292】
図23は、適応フィルタ34の構成を示すブロック図である。
図23に示すように、適応フィルタ34は、領域分割部340、イントラ符号化モード蓄積部341、エッジ方向検出部342、活性度算出部343、領域分類部344、フィルタ処理部345、および、フィルタパラメータ導出部346を備えている。
【0293】
適応フィルタ34は、デブロッキングフィルタ33から供給されるデブロック済復号画像P_DBに対して、フィルタ後の画像と符号化対象画像との誤差が最小となるように決定されたフィルタ係数を用いてフィルタ処理を行うものである。フィルタ後の画像は、フィルタ済復号画像P_FLとしてバッファメモリ24に格納される。なお、フィルタ済復号画像P_FLの生成は、マクロブロック単位で行ってもよいし、マクロブロックよりも小さい領域を単位として行ってもよいし、マクロブロックよりも大きい領域を単位として行ってもよい。以下では、適応フィルタ34が、マクロブロック単位で、フィルタ済復号画像P_FLの生成を行う場合を例に挙げ説明を行う。
【0294】
(領域分割部340)
領域分割部340は、対象マクロブロックを1または複数の分割領域に分割し、各分割領域のサイズおよび位置を指定する領域指定情報を、エッジ方向検出部342、活性度算出部343、および、可変長符号符号化部22に対して供給する。ここで、各分割領域は、1つの画素から構成されるものであってもよいし、複数の画素から構成されるものであってもよい。なお、領域分割部340は、対象マクロブロックを、当該対象マクロブロック内の画像の特性(輝度、テクスチャ等)に応じて分割領域に分割する構成としてもよいし、符号化効率を最適化するように分割領域に分割する構成としてもよい。
【0295】
(イントラ符号化モード蓄積部341)
イントラ符号化モード蓄積部341は、イントラ予測画像生成部25より供給されるイントラ符号化モード情報IEMの示す、パーティションのサイズ、および、パーティションに割り付けられた予測モードを蓄積する。イントラ符号化モード蓄積部341は、対象マクロブロックに含まれるすべてのパーティションについてのサイズおよび予測モードを蓄積する構成とすることができる。
【0296】
また、イントラ符号化モード蓄積部341に蓄積された各パーティションのサイズ、および予測モードを含む情報は、領域分類部344に供給される。
【0297】
(エッジ方向検出部342)
エッジ方向検出部342は、領域分割部340から供給される領域指定情報を参照して、デブロック済復号画像P_DBにおける対象マクロブロックを1または複数の分割領域に分割し、各分割領域の画像についてエッジ検出を行う。また、各分割領域について、エッジの方向を示す角度(エッジ角度)Thetaを、領域分類部344に供給する。エッジ方向検出部342によるエッジ角度Thetaの算出は、エッジ方向検出部422と同様の方法によって行うことができる。なお、エッジ検出部342は、対象分割領域に含まれる全ての画素についてのエッジ強度が予め定められた閾値以下である場合には、当該対象分割領域については、エッジなしと判定し、判定結果を領域分類部344に供給する構成とすることができる。
【0298】
(活性度算出部343)
活性度算出部343は、領域分割部340から供給される領域指定情報を参照して、デブロック済復号画像P_DBにおける対象マクロブロックを1または複数の分割領域に分割し、各分割領域の画像について、活性度(activity)ACTを算出する。また、活性度算出部343は、対象マクロブロックにイントラ予測が適用されている場合には、対象マクロブロックに含まれるパーティション毎に活性度ACTを算出する。算出された活性度ACTは、領域分類部344に供給される。活性度算出部343による活性度ACTの算出は、活性度算出部423と同様の方法によって行うことができる。
【0299】
(領域分類部344)
領域分類部344は、(1)イントラ符号化モード蓄積部341から供給される各パーティションのサイズ、(2)イントラ符号化モード蓄積部341から供給される各パーティションに割り付けられた予測モード、(3)エッジ方向検出部342から供給されるエッジ角度Theta、および、(4)活性度算出部343から供給される活性度ACTに基づいて、対象マクロブロックに含まれる各分割領域、または、各パーティションを、1または複数のタイプの何れかに分類する。
【0300】
領域分類部344による各分割領域または各パーティションの分類は、領域分類部424による(分類処理例1)〜(分類処理例6)と同様の方法によって行われる。ただし、領域分類部344は、フィルタセット番号を更新しながら、分類処理を複数回行い、フィルタセット番号毎に分類情報を生成する構成とする。すなわち、領域分類部344は、以下の処理を行う構成とする。
【0301】
(ステップS301)
まず、フィルタセット番号kをk=0に設定する。
【0302】
(ステップS302)
続いて、フィルタセット番号kによって定まる分類処理を、領域分類部424と同様の方法によって行う。
【0303】
(ステップS303)
ステップS303にて行った分類により、各分割領域または各パーティションが何れのタイプに分類されたのかを示す分類情報(k)を生成する。
【0304】
(ステップS304)
続いて、kに1を加算し、k≦4である場合には、ステップS302およびステップS303の処理を行い、k=5となったら処理を終了する。
【0305】
以上の処理によって、領域分類部344は、フィルタセット番号がk(k=0〜4)であるときの分類情報(k)を生成する。生成された分類情報(k)は、フィルタパラメータ導出部346、および、フィルタ処理部345に供給される。
【0306】
なお、領域分類部344が、(分類処理例1)〜(分類処理例6)に示した方法を選択的に用いる場合には、何れの分類処理を行ったのかを示すフラグを符号化データ#1に含める構成としてもよい。
【0307】
(フィルタ処理部345)
フィルタ処理部345は、k=0〜4の各々について、分類情報(k)に基づいてフィルタパラメータ導出部346が算出したフィルタ係数群(k)を用いて、対象マクロブロックに含まれる各分割領域または各パーティションに対してフィルタ処理を行うことによって、フィルタ済復号画像P_FL(k)を生成する。生成されたフィルタ済復号画像P_FL(k)(k=0〜4)は、フィルタ処理部345の備えるメモリ、または、バッファメモリ24に格納される。また、フィルタ処理部345は、フィルタパラメータ導出部346より供給される、符号化コストが最小となるフィルタセット番号に含まれるフィルタ係数群を用いて生成したフィルタ済復号画像をフィルタ済復号画像P_FLとして、バッファメモリ24に供給する。
【0308】
なお、フィルタ処理部345によるフィルタ済復号画像P_FL(k)の生成は、フィルタ処理部425によるフィルタ済復号画像P_FLの生成と同様の処理によって行うことができる。また、フィルタ処理部345は、フィルタパラメータ導出部346から供給されるオンオフ情報によって、フィルタ処理がオフであると指定されている分割領域、および、パーティションについては、フィルタ処理を行わない構成とすることができる。
【0309】
(フィルタパラメータ導出部346)
続いて、フィルタパラメータ導出部346の構成について、
図24を参照して説明する。
図24は、フィルタパラメータ導出部346の構成を示すブロック図である。
図24に示すように、フィルタパラメータ導出部346は、フィルタ算出部461、コスト算出部462、および、最適フィルタセット選択部463を備えている。
【0310】
(フィルタ算出部461)
フィルタ算出部461は、k=0〜4の各々について、分類情報(k)に基づいて、デブロック済復号画像P_DBに含まれる各分割領域、または、各パーティションを1または複数のタイプに分類し、タイプ毎に最適なフィルタ係数を算出する。
【0311】
より具体的には、フィルタ算出部461は以下の処理を行う。
【0312】
(ステップS401)
まず、フィルタセット番号kを、k=0に設定する。
【0313】
(ステップS402)
続いて、分類情報(k)に基づいて、デブロック済復号画像P_DBに含まれる各分割領域、または、各パーティションを1または複数のタイプに分類する。
【0314】
(ステップS403)
続いて、対象マクロブロックにおけるデブロック済復号画像P_DBのうちタイプIに分類された分割領域またはパーティションよりなる画像を画像Iと表し、画像Iに含まれる画素のうち座標が(x、y)である画素の画素値をSI(x、y)と表し、対象マクロブロックにおける符号化対象画像に含まれる画素のうち座標が(x、y)である画素の画素値をST(x、y)と表すことにすると、フィルタ算出部461は、例えば、以下の数式(7)によって与えられる二乗誤差Eを最小にするようなフィルタ係数aI(i、j)およびオフセットoIを導出する。
【0316】
(ステップS404)
続いて、ステップS404にて導出されたフィルタ係数aI(i、j)およびオフセットoIをフィルタ係数群(k)として、フィルタ処理部345および最適フィルタセット選択部463に供給する。
【0317】
(ステップS405)
続いて、kに1を加算し、k≦4である場合には、ステップS402〜ステップS404の処理を行い、k=5となったら処理を終了する。
【0318】
以上の処理によって、フィルタ算出部461は、フィルタセット番号がk(k=0〜4)であるときの分類情報(k)に基づいて算出されたフィルタ係数群(k)をフィルタ処理部345および最適フィルタセット選択部463に供給する。
【0319】
また、フィルタ算出部461は、分割領域毎またはパーティション毎にフィルタ処理のオンオフを指定するオンオフ情報をフィルタ処理部345に供給する。
【0320】
(コスト算出部462)
コスト算出部462は、フィルタ処理部345より供給されるフィルタ済復号画像P_FL(k)(k=0〜4)の各々と、符号化対象画像とを比較することによって、フィルタセット番号k(k=0〜4)毎の符号化コストを算出する。また、フィルタセット番号k(k=0〜4)毎の符号化コストを示すコスト情報は、最適フィルタセット選択部463に供給される。なお、符号化コストの算出には、レート歪み関数(Rate-Distortion function)を用いることができる。
【0321】
(最適フィルタセット選択部463)
最適フィルタセット選択部463は、コスト算出部462より供給されるコスト情報の示すフィルタセット番号k(k=0〜4)毎の符号化コストを互いに比較し、最小の符号化コストに関連付けられたフィルタセット番号を、可変長符号符号化部22およびフィルタ処理部345に供給する。また、最適フィルタセット選択部463は、上記最小の符号化コストに関連付けられたフィルタセットに含まれるフィルタ係数群、および、オンオフ情報を可変長符号符号化部22に供給する。
【0322】
<変形例1’>
以上の説明では、動画像符号化装置2が、符号化データ#1にフィルタセット番号を含める場合を例に挙げたが、本実施形態における動画像符号化装置2の構成は、これに限定されるものではない。<変形例1>において説明したように、動画像符号化装置2は、フィルタセット番号に代えて、エッジ角度Theta、予測モード、各パーティションのサイズ、および活性度ACTと、1または複数のフィルタ係数群(より具体的には、フィルタ係数群を指定するフィルタ番号)との対応関係を示すテーブル(フィルタ割り当てテーブル)を符号化データ#1に含める構成としてもよい。この場合、適応フィルタ34の備える領域分類部344が、エッジ角度Theta、予測モード、各パーティションのサイズ、および活性度ACTをフィルタパラメータ導出部346に供給する構成とし、フィルタパラメータ導出部346が、エッジ角度Theta、予測モード、各パーティションのサイズ、および活性度ACTと、1または複数のフィルタ係数群との対応関係を示すフィルタ割り当てテーブルを生成する構成とすればよい。
【0323】
本変形例において、フィルタパラメータ導出部346により生成されるフィルタ割り当てテーブルの例としては、
図19(a)〜(b)に示すものが挙げられる。
【0324】
<変形例2’>
また、適応フィルタ34の備えるフィルタ処理部345は、フィルタ参照領域Rとして、<変形例2>において説明したように、基本参照領域、垂直方向型の参照領域、水平方向型の参照領域、および、斜め方向型の参照領域のうち、何れかの参照領域を選択的に用いる構成とすることができる。より具体的には、イントラ符号化モード蓄積部341およびエッジ方向検出部342が、それぞれ、各パーティションの予測モード、および、各分割領域のエッジ角度Thetaを、フィルタ処理部345に供給する構成とし、フィルタ処理部345は、各分割領域のエッジ角度Theta、または、各パーティションの予測モードに応じて、上記複数の参照領域の何れかを選択的に用いる構成とすることができる。
【0325】
本変形例において選択的に用いられるフィルタ参照領域と、予測モードおよびエッジ角度との対応関係の例としては、
図20(a)〜(b)に示すものが挙げられる。
【0326】
本変形例における動画像符号化装置2は、エッジ角度、および、予測モードに応じて、複数のフィルタ参照領域の何れかを選択的に用いることによって、より適切なフィルタ処理を行うことができるので、予測精度が向上し、符号化効率を向上させることができる。
【0327】
<変形例3’>
また、動画像符号化装置2は、符号化データ#1に、フィルタセット番号、および、フィルタ割り当てテーブルの何れも含めない構成としてもよい。
【0328】
すなわち、領域分類部344は、予め定められたフィルタセット番号に基づいて分類情報を生成し、フィルタパラメータ導出部346は、当該予め定められたフィルタセット番号に基づいてフィルタ係数群を導出し、フィルタ処理部345は、当該フィルタ係数を用いてフィルタ処理を行う構成としてもよい。
【0329】
また、エッジ検出部342は、各分割領域のエッジの角度Thetaを、0°≦Theta<360°の範囲で検出する構成としてもよい。
【0330】
本変形例における領域分類部344による分類処理の例を示すものとして、
図21が挙げられる。
【0331】
本変形例においては、エッジ角度を0°≦Theta<360°の範囲で検出し、検出された角度に応じてフィルタ係数群を割り付けるので、より効果的なフィルタ処理を行うことができる。また、本変形例においては、符号化データ#1は、フィルタセット番号、および、フィルタ割り当てテーブルの何れも含まない構成であるため、符号化データ#1の符号量を削減することができる。
【0332】
<変形例4’>
また、領域分類部344は、対象マクロブロックに含まれる各ブロック(変換単位)を複数のタイプの何れかに分類する構成としてもよい。この場合、領域分類部344は、上述した構成と略同様に、対象マクロブロックに含まれる各ブロックのサイズ、予測モード、エッジ角度、および、活性度ACTに応じて、各ブロックを複数のタイプの何れかに分類する構成とすることができる。
【0333】
また、このような構成の場合、イントラ予測モード蓄積部341は、対象マクロブロックに含まれる各パーティションの予測モードを、対応するブロックに割り付け、各ブロックの予測モードおよび各ブロックのサイズを蓄積する構成とすればよい。また、エッジ方向検出部342は、対象マクロブロックに含まれる各ブロックについてエッジ検出を行う構成とすればよい。また、活性度算出部343は、対象マクロブロックに含まれる各ブロックについて活性度ACTを算出する構成とすればよい。また、フィルタ処理部345は、タイプI(I=1、2、…)に分類されたブロックに対して、フィルタ係数群Iを用いたフィルタ処理を行う構成とすればよい。
【0334】
適応フィルタ34は、本例のような構成であっても、デブロック済復号画像P_DBに対して、適切なフィルタ処理を行うことができる。
【0335】
〔実施形態2〕
以下では、本発明の第2の実施形態について
図25〜
図38を参照して説明する。
【0336】
本実施形態に係る適応フィルタは、フィルタ前画像(例えば、デブロック済復号画像P_DB)を構成する各単位領域について、互いに導出方法の異なる2つの特性値を導出し、導出された2つの特性値に応じて、各単位領域を1または複数のグループの何れかに分類する。また、本実施形態に係る適応フィルタは、単位領域毎に定められたフィルタ係数を用いて、フィルタ前画像に対して単位領域毎に作用する。
【0337】
ここで単位領域とは、DCT変換(より一般には周波数変換)の単位であるブロックであってもよいし、予測画像を生成する単位であるパーティションであってもよいし、ブロックまたはパーティションの何れでもなく、本実施形態に係る適応フィルタによってサイズおよび位置が設定された領域であってもよい。また、単位領域は、1画素から構成されるものであってもよい。
【0338】
また、各グループは、2つの特性値によって張られる2次元領域上に設定される各部分領域と1対1の対応を有する。したがって、上記2次元領域をどのように各部分領域へ分割するのかを指定することにより、1または複数のグループをどのように設定するかが定まることになる。また、導出された2つの特性値のうち、優先度のより高い特性値、すなわち、より効果的な分類が期待できる特性値を第1の特性値Xと呼び、もう一方の特性値を第2の特性値Yと呼ぶ。なお、以下の説明において、上記2つの特性値によって張られる2次元領域を特性値領域とも呼称し、特性値領域上に設定される各部分領域を特性値部分領域とも呼称する。
【0339】
第1の特性値Xおよび第2の特性値Yとして、例えば以下のような組み合わせが可能である。本実施形態においては第1の特性値Xが画像の活性度である場合を取り扱うが、これらの組み合わせは本願に係る発明を限定するものではなく、他の特性値および組み合わせに対しても、本実施形態を容易に適用することができる。
【0340】
・第1の特性値X:画像の活性度、第2の特性値Y:画像の方向性
・第1の特性値X:画像の活性度、第2の特性値Y:平均画素値
・第1の特性値X:画像の活性度、第2の特性値Y:単位領域の座標
・第1の特性値X:単位領域の座標、第2の特性値Y:画像の活性度
・第1の特性値X:スライス番号、第2の特性値Y:画像の活性度
・第1の特性値X:平均画素値、第2の特性値Y:画像の活性度
・第1の特性値X:単位領域のy座標、第2の特性値Y:単位領域のx座標
・第1の特性値X:単位領域のx座標、第2の特性値Y:単位領域のy座標
なお、適応フィルタによる、フィルタ済みの画像と符号化対象画像との誤差を減らす効果(ノイズ低減の効果)の観点からは、活性度を優先する。すなわち、第1の特性値Xとして画像の活性度を用いることが適当である。一方、複雑性の観点からは、特性値の算出が容易な特性値を優先することも考えられる。具体的には、単位領域の座標や、スライス番号、平均画素値などを第1の特性値として用いることも可能である。この場合、低複雑性が要求されるようなアプリケーションの場合において、第1の分割のみで分割を終了させるような適用方法が可能であり、小さな複雑性で領域別フィルタの効果を得ることができる。
【0341】
ここで、画像の活性度に代えて、画素値の分散を用いてもよい。また、各単位領域について導出される各特性値は、導出方法如何によって、単位領域のサイズに依存する場合がある。このような場合には、各特性値として、単位領域のサイズへの依存性を取り除くことによって得られる正規化された特性値を用いることができる。
【0342】
本実施形態に係る適応フィルタは、特性値領域を第1段階の分割および第2段階の分割によって階層的に各部分領域へと分割する。ここで、第1段階の分割は、第1の特性値Xに関する分割であり、第2段階の分割は、第1の特性値Xおよび第2の特性値Yの少なくとも何れかに関する分割である。また、特性値領域の各部分領域への分割は、分割単位を単位として行われる。したがって、各部分領域は、1または複数の分割単位DUから構成される。また、各分割単位の境界は、各特性値について設定される分割点(特性値分割点とも呼称する)を用いて定められる。なお、第1段階の分割を初期分割とも呼称し、第2段階の分割を再分割とも呼称する。
【0343】
図25は、特性値領域CRと、特性値領域CR上に設定される分割単位DU[i][j](iは0≦i≦NX−1を満たす整数、jは0≦i≦NY−1を満たす整数、NXは第1の特性値Xに沿った分割単位の総数、NYは第2の特性値Yに沿った分割単位の総数)とを示す図である。
【0344】
図25に示す例において、実線は、特性値部分領域および分割単位の境界を示しており、破線は、分割単位の境界を示している。また、
図25に示す例において、分割単位DU[0][0]およびDU[0][1]は、1つの特性値部分領域を構成しており、DU[1][0]およびDU[2][0]は、他の1つの特性値部分領域を構成している。また、DU[1][1]は、単独で特性値部分領域を構成している。
【0345】
図25に示すように、各分割単位DUの境界は、第1の特性値Xについての特性値分割点PX1〜PX_NX−1、および、第2の特性値Yについての特性値分割点PY1〜PY_NY−1によって指定される。
【0346】
なお、以下では、第1の特性値Xのことを、単に特性値Xとも呼び、第2の特性値Yのことを単に特性値Yとも呼ぶ。
【0347】
また、各分割単位を指定するインデックス[i][j]のことを特性インデックスとも呼ぶ。特に、特性値Xに関するインデックス(上記の例では[i])を特性Xインデックスとも呼び、特性値Yに関するインデックス(上記の例では[j])を特性Yインデックスとも呼ぶ。特性インデックスは、各分割単位を一意に指定する2次元のインデックスである。
【0348】
(符号化データ#3)
本実施形態に係る動画像符号化装置4及び動画像復号装置3の詳細な説明に先立って、動画像符号化装置4によって生成され、動画像復号装置3によって復号される符号化データ#3のデータ構造について説明を行う。
【0349】
符号化データ#3のデータ構造は、実施形態1に係る符号化データ#1のデータ構造と略同じであるが、フィルタパラメータFPの構成が異なる。
図26は、本実施形態に係る符号化データ#3のフィルタパラメータFP(
図26においてalf_param()と表記)に含まれる各シンタックスを示す図である。
【0350】
(adaptive_loop_filter_flag)
adaptive_loop_filter_flagは、後述する適応フィルタ50による適応的フィルタ処理のオンオフを指定するフラグであり、adaptive_loop_filter_flagが0の場合、適応的フィルタ処理がオフに指定され、adaptive_loop_filter_flagが1の場合、適応的フィルタ処理がオンに指定される。
【0351】
(alf_enable_region_filter)
alf_enable_region_filterは、適応フィルタ50による特性値部分領域毎のフィルタ処理のオンオフを指定するフラグであり、alf_enable_region_filterが0の場合、特性値部分領域毎のフィルタ処理がオフに指定され、alf_enable_region_filterが1の場合、特性値部分領域毎のフィルタ処理がオンに指定される。後述する各種のシンタックスalf_num_first_split_minus1、alf_first_split_val_shift、alf_second_split_type、alf_second_split_flag[i0]、alf_length_luma_minus5_div2[i0]、alf_region_pred_luma[i][j]、およびalf_coeff_luma[i][j]は、alf_enable_region_filterが1の場合にのみ符号化される。
【0352】
alf_num_first_split_minus1、alf_first_split_val_shift、alf_second_split_type、および、alf_second_split_flag[i0]は、特性値領域CRを各特性値部分領域CPRに分割する分割の仕方を指定する特性値分割情報を構成する。特性値分割情報は、特性値領域CRの分割の仕方を指定する情報であり、第1段階の分割数及び形状(ここではalf_num_first_split_minus1)を指定する情報と、第1の分割で得られた特性値部分領域に対して第2段階の分割数及び形状を指定する情報(ここではalf_second_split_flag[i0])と、分割に用いる特性値の境界を指定するための情報(alf_second_split_type)から構成される。また、分割数及び形状とは別に、分割の仕方を指定する情報(ここではalf_second_split_type)も指定可能であり、これも特性値分割情報の一種である。
【0353】
本実施形態では、特性値分割情報は、特性値領域CRの分割の仕方を階層的に指定する情報である。階層的に指定することによって、高い分割の自由度を有しながら、分割の自由度を増やした場合に生じる分割を指定するための符号量の増加を防ぐことができる。また、階層的な表現では、同種の特性を有する複数の領域を、1つのまとまりとして表現することが可能であり、まとめられた該複数の領域に対して同じフィルタ係数を割り当てることが可能であるため、単純に特性値毎、もしくは、特性値の組み合わせ毎にフィルタ係数を割り当てる場合に比べて、フィルタ係数の符号量を低減することができる。実施形態には図示していないが、階層的な表現は、第1段階の分割と第2段階の分割で同じ特性値(例えば活性度)を用いる場合にも用いることが可能である。この場合も、近い特性値を有する複数の領域を1つのまとまりとして表現し、まとめられた該複数の領域に対して同じフィルタ係数を割り当てることにより、小さな符号量でフィルタ係数を符号化することができる。また、複数の特性値を用いる場合においては、ノイズ低減効果が大きい特性値を用いて優先的に分割を行い、分割したとしても効果の小さい領域については分割せずに1つのまとまりとして取り扱うことによって、フィルタ係数の符号量を相対的に小さくすることができる。
【0354】
(alf_num_first_split_minus1)
alf_num_first_split_minus1は、特性値領域の第1段階の分割の分割数AlfNumFirstSplitを指定するシンタックスであり、このシンタックスより、分割数AlfNumFirstSplitが、
AlfNumFirstSplit=alf_num_first_split_minus1+1
によって決定される。
【0355】
図27の(a)は、alf_enable_region_filter=0の場合の特性値領域CR、すなわち分割されていない特性値領域CRを示す図であり、
図27の(b)は、alf_enable_region_filter=1、かつAlfNumFirstSplit=3の場合について、第1段階の分割が行われた特性値領域CRを示す図である。
図27の(b)に示すように、AlfNumFirstSplit=3の場合、特性値領域CRは、第1段階の分割によって、特性値Xに関して3つの特性値部分領域に分割される。
図27の(b)では、これら3つの特性値部分領域の境界が、特性値分割点PX2およびPX4によって指定される場合を例示している。このように第1段階の分割において用いられる特性値分割点のことを初期分割点とも呼ぶ。また、第2段階の分割において用いられる特性値分割点のことを再分割点とも呼ぶ。
図27の(c)は、初期分割点PX2およびPX4に加えて、第2段階の分割において用いられる再分割点PX1、PX3およびPX5を示す図である。
【0356】
なお、第1の分割によって得られた各特性値部分領域は、初期分割インデックス[i0](0≦i0≦AlfNumFirstSplit−1)によって識別される。初期分割インデックス[i0]と特性Xインデックス[i]との対応は、後述するalf_second_split_typeの値に応じて以下のように与えられる。
【0357】
・alf_second_split_type=0の場合
i=2×i0、または2×i0+1
・alf_second_split_type=1の場合
i=i0
第1の分割によって得られた特性値部分領域であって、初期分割インデックス[i0]によって指定される特性値部分領域のことを特性値部分領域CPR[i0]とも表記する。
【0358】
(alf_first_split_val_shift)
alf_first_split_val_shiftは、特性値分割点PXn(1≦n≦NX−1)を変更するために参照されるフラグである。特性値分割点PXnは、alf_first_split_val_shiftの値に応じて変更される。
【0359】
(alf_second_split_type)
alf_second_split_typeは、第2段階の分割の種別を指定するためのフラグである。alf_second_split_typeが0であれば、各特性値部分領域は、特性値Xおよび特性値Yに基づいて1または複数の特性値部分領域に更に分割され、alf_second_split_typeが1であれば、各特性値部分領域は、特性値Yに基づいて1または複数の特性値部分領域に更に分割される。
【0360】
図27の(d)は、特性値Xとして活性度を用いる場合に、alf_first_split_val_shiftおよびalf_second_split_typeの値に応じて設定される特性値分割点PX1〜PX5を例示する表である。
図27の(d)に示す例においては、alf_second_split_type=1の場合に、初期分割点PX2およびPX4の各値が指定され、alf_second_split_type=0の場合に、初期分割点を含む全ての特性値分割点PX1〜PX5の各値が指定される。
図27の(d)に示す例においては、alf_first_split_val_shift=1の場合のPX1〜PX5の各値が、alf_first_split_val_shift=0の場合の各値の1/2に設定されている。このように、特性値分割点PXnの各値は、alf_first_split_val_shiftの値に応じて変更される。
【0361】
また、
図27の(d)に示すように、特性値Xとして活性度を用いる場合、特性値Xの値が大きい程、初期分割点の間隔が大きく設定される。これは、処理対象フレーム(またはスライス)に含まれる単位領域の多くは、小さな活性度を有しているためである。
図27の(d)に示すように、特性値Xの小さい範囲をより細かく分割することによって、各特性値部分領域に分類される単位領域の数を一定に近づけることができる。初期分割点に限らず、再分割においても、特性値の度数を考慮して、分割点の間隔を等間隔以外とすることが適当である。すなわち、特性値のヒストグラムを作成した場合において、多くの場合に度数が集中しやすい部分があれば、その度数が集中する部分ほど間隔を細かくし、度数が小さい部分では間隔を大きくすると良い。例えば、活性度に関しては、値が小さい部分に度数が集中しやすい傾向があり、方向性に関しては、水平方向と垂直方向に度数が集中しやすい傾向にある。
【0362】
alf_first_split_val_shiftは、初期分割(第1段階の分割)における分割点を指定するための情報(第1分割点指定情報)を構成する。
【0363】
(alf_second_split_flag)
alf_second_split_flag[i0]は、第1段階の分割によって得られた各特性値部分領域について、第2段階の分割の具体的な態様を指定するシンタックスである。上述のalf_second_split_type、およびalf_second_split_flag[i0]によって、第1段階の分割によって得られた各特性値部分領域についての、第2段階の分割が具体的に指定される。
【0364】
図28の(a)は、第1段階の分割によって得られた特性値部分領域が、alf_second_split_type=0によって指定される第2段階の分割によって、特性値Yに関して2つの特性値部分領域に分割される場合を示しており、
図28の(b)は、第1段階の分割によって得られた特性値部分領域が、alf_second_split_type=1によって指定される第2段階の分割によって、特性値Yに関して4つの特性値部分領域に分割される場合を示している。このように、alf_second_split_flag[i0]は、第2段階の分割において分割数と分割形状を指定する。
【0365】
図28の(c)は、特性値Yとして画像の方向性を用いた場合の特性値分割点PY1〜PY3と、特性値Yとして平均画素値を用いた場合の特性値分割点PY1〜PY3を示している。
【0366】
alf_second_split_typeは、再分割(第2段階の分割)における分割点を指定するための情報(第2分割点指定情報)を構成する。
【0367】
図29は、第1段階の分割によって得られた特性値部分領域CPR[i0=0]が、alf_second_split_flag[i0]、および、alf_second_split_typeの各値に応じて、第2段階の分割によってどのように分割されるのかを具体的に示す図である。[i0=0]以外の初期分割インデックスによって指定される特性値部分領域CPR[i0]の第2段階の分割も同様である。
【0368】
図29に示すように、alf_second_split_type=0の場合、第1段階の分割によって得られた特性値部分領域CPR[i0=0]は以下のように分割される。
【0369】
・alf_second_split_flag[i0]=0:分割なし
・alf_second_split_flag[i0]=1:特性値Xに関して2分割(特性値分割点:PX1)
・alf_second_split_flag[i0]=2:特性値Yに関して2分割(特性値分割点:PY2)
・alf_second_split_flag[i0]=3:特性値Xおよび特性値Yのそれぞれに関して2分割の合計4分割(特性値分割点:PX1,PY2)
また、alf_second_split_type=1の場合、第1段階の分割によって得られた特性値部分領域CPR[i0=0]は以下のように分割される。
【0370】
・alf_second_split_flag[i0]=0:分割なし
・alf_second_split_flag[i0]=1:特性値Yに関して2分割(特性値分割点:PY2)
・alf_second_split_flag[i0]=2:特性値Yに関して2分割(特性値分割点:PY1)
・alf_second_split_flag[i0]=3:特性値Yに関して4分割(特性値分割点:PY1,PY2,PY3)
また、第1段階の分割によって得られた特性値部分領域CPR[i0=0]に対して第2段階の分割を行うことによって得られた各特性値部分領域は、初期分割インデックス[i0]と再分割インデックス[j0]とを組み合わせて得られる特性値領域内インデックス(i0、j0)によって指定される。ここで、再分割インデックス[j0]は、特性値部分領域CPR[i0]に含まれる各特性値部分領域を指定するインデックスである。特性値領域内インデックス(i0、j0)によって指定される特性値部分領域を特性値部分領域CPR(i0、j0)とも表記する。
【0371】
図29に示すように、alf_second_split_type=0、および、alf_second_split_type=1の何れの場合にも、第1段階の分割によって得られた特性値部分領域CPR[i0]には、以下の特性値部分領域CPR(i0、j0)が含まれる。
【0372】
・alf_second_split_flag[i0]=0:CPR(i0、0)
・alf_second_split_flag[i0]=1:CPR(i0、0)、およびCPR(i0、1)
・alf_second_split_flag[i0]=2:CPR(i0、0)、およびCPR(i0、1)
・alf_second_split_flag[i0]=3:CPR(i0、0)、CPR(i0、1)、CPR(i0、2)、およびCPR(i0、3)
また、alf_second_split_type=0の場合、各特性値部分領域CPR(i0、j0)に含まれている分割単位DU[i][j]は以下の通りである。
【0373】
・alf_second_split_flag=0の場合:
CPR(i0、0):DU[2×i0][0],DU[2×i0][1],DU[2×i0+1][0],DU[2×i0+1][1]
・alf_second_split_flag=1の場合:
CPR(i0、0):DU[2×i0][0],DU[2×i0][1]
CPR(i0、1):DU[2×i0+1][0],DU[2×i0+1][1]
・alf_second_split_flag=2の場合:
CPR(i0、0):DU[2×i0][0],DU[2×i0+1][0]
CPR(i0、1):DU[2×i0][1],DU[2×i0+1][1]
・alf_second_split_flag=3の場合:
CPR(i0、0):DU[2×i0][0]
CPR(i0、1):DU[2×i0][1]
CPR(i0、2):DU[2×i0+1][0]
CPR(i0、3):DU[2×i0+1][1]
また、alf_second_split_type=1の場合、各特性値部分領域CPR(i0、j0)に含まれている分割単位DU[i][j]は以下の通りである。
【0374】
・alf_second_split_flag=0の場合:
CPR(i0、0):DU[i0][0],DU[i0][1],DU[i0][2],DU[i0][3]
・alf_second_split_flag=1の場合:
CPR(i0、0):DU[i0][0],DU[i0][1]
CPR(i0、1):DU[i0][2],DU[i0][3]
・alf_second_split_flag=2の場合:
CPR(i0、0):DU[i0][0]
CPR(i0、1):DU[i0][1],DU[i0][2],DU[i0][3]
・alf_second_split_flag=3の場合:
CPR(i0、0):DU[i0][0]
CPR(i0、1):DU[i0][1]
CPR(i0、2):DU[i0][2]
CPR(i0、3):DU[i0][3]
(alf_length_luma_minus5_div2)
alf_length_luma_minus5_div2[i0]は、第1段階の分割によって得られた各特性値部分領域についてのフィルタのタップ数を指定するためのシンタックス(タップ数指定情報)である。このシンタックスより、タップ数AlfLengthLumaが、
AlfLengthLuma=alf_length_luma_minus5_div2×2+5
によって決定される。
【0375】
図30は、alf_length_luma_minus5_div2[i0]の値が、1、2、および3である場合に、本実施形態に係る適応フィルタによってそれぞれ設定される参照領域R0、R1、R2を例示する図である。
図30においては、菱形の参照領域を例示しているが、本実施形態における参照領域は、これらの例に限定されるものではなく、alf_length_luma_minus5_div2[i0]によってタップ数が指定される矩形状の参照領域を用いてもよい。
【0376】
また、
図26に示すように、フィルタパラメータFPにおいて、alf_length_luma_minus5_div2[i0]は、後述するフィルタ係数を指定するためのシンタックスalf_coeff_luma[i][j]よりも上位の階層にて伝送される。また、図示しないが、第2段階の分割で得られた各特性値部分領域についてのフィルタのタップ数を指定するためのシンタックスを符号化しても良い。この場合、第2段階の分割で得られた各特性値部分領域についてのフィルタのタップ数を指定するためのシンタックスalf_length_luma_minus5_div2[i][j]が、alf_coeff_luma[i][j]と同じ階層において符号化される。上記の構成により、領域毎に異なるタップ数のフィルタ係数を用いて適応フィルタ処理を行うことが可能になる。領域の活性度及び領域毎の効果の違いに応じて適したタップ数が異なるため、適応的にタップ数を選択できる上記の構成は符号化効率を向上させることができる。例えば、領域の活性度が小さい場合には活性度が大きい場合よりもタップ数を大きくとることが適当であり、適応フィルタの効果が大きい特性値部分領域には、効果が小さい特性値部分領域よりも大きいタップ数を用いることが適当である。
【0377】
また、図示した構成では、1つの特性値部分領域に作用するフィルタのフィルタ係数ではなく、複数の特性値部分領域にそれぞれ作用するフィルタのフィルタ係数を1つのまとまりとしてタップ数を符号化する。これにより、多くのフィルタ係数を符号化する場合においてもタップ数の符号量を低減させることができる。
【0378】
(alf_coeff_luma)
alf_coeff_luma[i][j](i=i0,2×i0,2×i0+1、j=0,1,2,3)は、各特性値部分領域についてのフィルタ係数(オフセットを含む、以下同様)を指定するためのシンタックスである。
【0379】
alf_second_split_type=0の場合について、各特性値部分領域CPR(i0、j0)と、それらに割り付けられるalf_coeff_luma[i][j]との対応関係、すなわち、特性値領域内インデックス(i0、j0)とalf_coeff_luma[i][j]との対応関係は以下の通りである。なお、以下の表記において、「*」は積を表す演算記号である。
【0380】
・alf_second_split_flag=0の場合:
CPR(i0、0):alf_coeff_luma[i0*2][0]
・alf_second_split_flag=1の場合:
CPR(i0、0):alf_coeff_luma[i0*2][0]
CPR(i0、1):alf_coeff_luma[i0*2][1]
・alf_second_split_flag=2の場合:
CPR(i0、0):alf_coeff_luma[i0*2][0]
CPR(i0、1):alf_coeff_luma[i0*2][1]
・alf_second_split_flag=3の場合:
CPR(i0、0):alf_coeff_luma[i0*2][0]
CPR(i0、1):alf_coeff_luma[i0*2][1]
CPR(i0、2):alf_coeff_luma[i0*2+1][0]
CPR(i0、3):alf_coeff_luma[i0*2+1][1]
また、alf_second_split_type=1の場合について、各特性値部分領域CPR(i0、j0)と、それらに割り付けられるalf_coeff_luma[i][j]との対応関係、すなわち、特性値領域内インデックス(i0、j0)とalf_coeff_luma[i][j]との対応関係は以下の通りである。
【0381】
・alf_second_split_flag=0の場合:
CPR(i0、0):alf_coeff_luma[i0][0]
・alf_second_split_flag=1の場合:
CPR(i0、0):alf_coeff_luma[i0][0]
CPR(i0、1):alf_coeff_luma[i0][2]
・alf_second_split_flag=2の場合:
CPR(i0、0):alf_coeff_luma[i0][0]
CPR(i0、1):alf_coeff_luma[i0][1]
・alf_second_split_flag=3の場合:
CPR(i0、0):alf_coeff_luma[i0][0]
CPR(i0、1):alf_coeff_luma[i0][1]
CPR(i0、2):alf_coeff_luma[i0][2]
CPR(i0、3):alf_coeff_luma[i0][3]
なお、alf_coeff_luma[i][j]のうち、最初に符号化/復号されるフィルタ係数alf_coeff_luma[0][0]は、特性値部分領域CPR(0、0)についてのフィルタ係数そのものであり、alf_coeff_luma[i][j](i≠0、j≠0)は、対象となる特性値部分領域についてのフィルタ係数の予測値(予測フィルタ係数とも呼ぶ)と、実際に用いられるフィルタ係数との残差(フィルタ係数残差とも呼ぶ)である。alf_coeff_luma[i][j]は、より正確には、フィルタ係数又はフィルタ係数残差の各成分を指定するためのインデックス[k](0≦k≦Ncomp−1、Ncompは、フィルタ係数の成分の総数)を有しているが、ここではそのようなインデックスの表記を省略している。
【0382】
また、例えば、alf_coeff_luma[i][j]に含まれるオフセット成分を、オフセット以外の成分よりも上位の階層にて伝送する構成としてもよい。具体的には、alf_coeff_luma[i][j]に含まれるオフセット成分を、alf_length_luma_minus5_div2[i0]と同じ階層にて伝送しておき、オフセット以外の成分を、alf_length_luma_minus5_div2[i0]よりも下位の階層にて伝送する構成としてもよい。
【0383】
また、以下では、特性値部分領域CPR(i0、j0)に割り付けられたalf_coeff_luma[i][j]を、alf_coeff_luma(i0,j0)とも表記する。
【0384】
(alf_region_pred_luma)
alf_region_pred_luma[i][j](i=i0,2×i0,2×i0+1、j=1,2,3)は、各特性値部分領域についてのフィルタ係数の予測値を導出する際の予測方向を指定するためのフラグである。alf_region_pred_luma[i][j]は、各特性値部分領域CPR(i0、j0)のうち、フィルタ係数の予測値を導出する際に参照可能な特性値部分領域が複数隣接している特性値部分領域CPRについて符号化される。例えば、特性値領域CRに含まれる各特性値部分領域についてのフィルタ係数の復号がラスタスキャン順に行われる場合には、左辺および上辺の双方に特性値部分領域が隣接している特性値部分領域についてalf_region_pred_lumaが符号化される。例えば、alf_region_pred_luma=0であれば、上辺に隣接する特性値部分領域が参照され、alf_region_pred_luma=1であれば、左辺に隣接する特性値部分領域が参照される。
【0385】
一方で、特性値領域CRに含まれる各特性値部分領域についてのフィルタ係数の復号がラスタスキャンの逆順に行われる場合には、右辺および下辺の双方に特性値部分領域が隣接している特性値部分領域についてalf_region_pred_lumaが符号化される。
【0386】
図31は、特性値部分領域CPR[i0]に対して第2段階の分割を行うことによって得られた各特性値部分領域CPR(i0、j0)について割り付けられる予測方向を示す図である。
【0387】
各特性値部分領域についてのフィルタ係数の復号がラスタスキャン順に行われる場合であって、alf_second_split_type=0の場合における、各特性値部分領域CPR(i0、j0)と、それらに割り付けられるalf_region_pred_luma[i][j]との対応関係は以下の通りである。
【0388】
・alf_second_split_flag=2の場合:
CPR(i0、1):alf_region_pred_luma[i0*2][1]
・alf_second_split_flag=3の場合:
CPR(i0、1):alf_region_pred_luma[i0*2][1]
CPR(i0、3):alf_region_pred_luma[i0*2+1][1]
図31に示すように、これらの特性値部分領域については、alf_region_pred_lumaの値に応じて、予測方向として、上方向および左方向のうち何れかが割り付けられる。
【0389】
alf_region_pred_lumaを用いることにより、予測方向として、(1)特性値Yの値が処理対象の特性値部分領域と同じ特性値部分領域、または、特性値Yの値が処理対象の特性値部分領域により近い特性値部分領域について既に復号されたフィルタ係数を予測値とする予測方向(上方向)と、(2)特性値Xの値が処理対象の特性値部分領域と同じ特性値部分領域、または、特性値Xの値が処理対象の特性値部分領域により近い特性値部分領域について既に復号されたフィルタ係数を予測値とする予測方向(横方向)との選択が可能になる。
【0390】
ここで、特性値が近いか否かは、特性値の種類に応じて定まるものである。例えば、活性度などの単純なスカラー量によって表現される特性値については、値の差がより小さいものがより近いものとなる。一方で、方向性などのベクトル量(ここでは方向)に対してインデックスを割り当てることによって表現される特性値については、元のベクトルのなす角がより小さいものがより近いものとなる。
【0391】
また、各特性値部分領域についてのフィルタ係数の復号がラスタスキャン順に行われる場合であって、alf_second_split_type=1の場合における、各特性値部分領域CPR(i0、j0)と、それらに割り付けられるalf_region_pred_luma[i][j]との対応関係は以下の通りである。
【0392】
・alf_second_split_flag=1の場合:
CPR(i0、1):alf_region_pred_luma[i0][2]
・alf_second_split_flag=2の場合:
CPR(i0、1):alf_region_pred_luma[i0][1]
・alf_second_split_flag=3の場合:
CPR(i0、1):alf_region_pred_luma[i0][1]
CPR(i0、2):alf_region_pred_luma[i0][2]
CPR(i0、3):alf_region_pred_luma[i0][3]
図31に示すように、これらの特性値部分領域については、alf_region_pred_lumaの値に応じて、予測方向として、上方向および左方向のうち何れかが割り付けられる。
【0393】
一方で、
図31に示すように、以下に列挙する特性値部分領域については、上辺に隣接した特性値部分領域のみ参照可能であるため、予測方向として上方向のみが割り付けられる。
【0394】
・alf_second_split_type=0の場合:
・alf_second_split_flag=0の場合:
CPR(i0、0)
・alf_second_split_flag=1の場合:
CPR(i0、0)
CPR(i0、1)
・alf_second_split_flag=2の場合:
CPR(i0、0)
・alf_second_split_flag=3の場合:
CPR(i0、0)
CPR(i0、2)
・alf_second_split_type=1の場合:
・alf_second_split_flag=0の場合:
CPR(i0、0)
・alf_second_split_flag=1の場合:
CPR(i0、0)
・alf_second_split_flag=2の場合:
CPR(i0、0)
・alf_second_split_flag=3の場合:
CPR(i0、0)
なお、以下では、特性値部分領域CPR(i0、j0)に割り付けられたalf_region_pred_luma[i][j]を、alf_region_pred_luma(i0,j0)とも表記する。
【0395】
また、フィルタパラメータFPは、alf_region_pred_luma[i][j]を含まない構成としてもよい。この場合には、各特性値部分領域についての予測方向は、
図32に示すように、固定的に上方向を用いればよい。
【0396】
図26の末尾に示すシンタックスalf_length_luma_minus5_div2、およびalf_coeff_luma[0][0]は、シンタックスalf_enable_region_filterが0である場合、すなわち、特性値部分領域毎のフィルタ処理がオフに指定される場合にフィルタパラメータFPに含められる。alf_length_luma_minus5_div2によってタップ数が指定され、alf_coeff_luma[0][0]によってフィルタ係数が指定される。
【0397】
なお、
図26に示したDescriptor(記述子)u(1)は、これらの記述子に関連付けられたシンタックスが1ビットで固定長符号化されることを示しており、u(2)は、この記述子に関連付けられたシンタックスが2ビットで固定長符号化されることを示しており、ue(v)は、この記述子に関連付けられたシンタックスが可変長符号化されることを示している。
【0398】
また、上記の例では、シンタックスalf_second_split_flag[i0]の値は、0〜3のうち何れかの値をとるものとしたが、これは本実施形態を限定するものではない。例えば、シンタックスalf_second_split_flag[i0]が、0〜7のうち何れかの値をとる構成としてもよい。このようなシンタックスalf_second_split_flag[i0]によって指定される再分割の例を
図33に示す。
図33に示す例では、alf_second_split_flag[i0]の各値に応じて、初期分割によって得られた特性値部分領域CPR[i0]が、特性値Xについて最大で2分割され、特性値Yについて最大で3分割される。
【0399】
(動画像復号装置3)
以下では、本実施形態に係る動画像復号装置3について
図34〜
図36を参照して説明する。なお、以下では、実施形態1において既に説明した部分と同じ部分には同じ符号を付し、その説明を省略する。
【0400】
図34は、動画像復号装置3の構成を示すブロック図である。
図34に示すように、動画像復号装置3は、動画像復号装置1の備える適応フィルタ42に代えて、適応フィルタ50を備えている。適応フィルタ50には、符号化データ#3に含まれるフィルタパラメータFPが供給される。なお、動画像復号装置3のその他の構成は、動画像復号装置1と同じであるため、説明を省略する。
【0401】
(適応フィルタ50)
適応フィルタ50は、シンタックスadaptive_loop_filter_flagが1である場合に、デブロック済復号画像P_DBに対して適応的フィルタ処理を施すことによってフィルタ済復号画像P_FLを生成する。
【0402】
適応フィルタ50は、対象単位領域におけるデブロック済復号画像P_DBの特性値に応じて、該対象単位領域を、上述した各特性値部分領域の何れかと関連付け、該単位領域が関連付けられた特性値部分領域について復号されたフィルタ係数を用いて、該単位領域に対するフィルタ処理を施す。
【0403】
図35は、適応フィルタ50の構成を示すブロック図である。
図35に示すように、適応フィルタ50は、適応フィルタ情報復号部51および適応フィルタ部52を備えている。なお、
図35には図示していないが、適応フィルタ50は、シンタックスalf_enable_region_filterおよびシンタックスalf_num_first_split_minus1を復号する上位シンタックス復号部を備えている。
【0404】
適応フィルタ50は、シンタックスalf_enable_region_filterが1である場合に、特性値部分領域毎のフィルタ処理を行う。また、適応フィルタ50は、alf_num_first_split_minus1の値を用いて、分割数AlfNumFirstSplitを、
AlfNumFirstSplit=alf_num_first_split_minus1+1
に設定する。
【0405】
(適応フィルタ情報復号部51)
適応フィルタ情報復号部51は、符号化データ#3に含まれているフィルタパラメータFPを復号することによって、特性値分割点PXnおよびPYm、並びに、フィルタ係数RegionFilterLuma[i0][j0]を導出するための構成である。導出された各特性値分割点およびフィルタ係数RegionFilterLuma[i0][j0]は、適応フィルタ部52に供給される。なお、以下の説明では、適応フィルタ情報復号部51によるフィルタ係数RegionFilterLuma[i0][j0]の導出は、特性値領域CRを構成する各特性値部分領域についてラスタスキャン順に行われるものとするが、これは本実施形態を限定するものではなく、フィルタ係数RegionFilterLuma[i0][j0]の導出がラスタスキャンの逆順に行われる場合であっても適用することができる。その場合には、以下の説明における「左辺」を「右辺」と読み替え、「上辺」を「下辺」と読み替えればよい。
【0406】
図35に示すように、適応フィルタ情報復号部51は、領域別タップ数復号部511、領域構造復号部512、フィルタ係数残差復号部513、2次元予測フラグ復号部514、フィルタ係数予測部515、フィルタ係数復号部516、領域別フィルタ係数格納部517、特性値分割点変更フラグ復号部518、および、特性値分割点設定部519を備えている。
【0407】
領域別タップ数復号部511は、フィルタパラメータFPに含まれるシンタックスalf_length_luma_minus5_div2[i0](0≦i0<AlfNumFirstSplit)を復号する。復号されたシンタックスalf_length_luma_minus5_div2[i0]は、特性値部分領域CPR[i0]に割り付けられると共に、フィルタ係数残差復号部513に供給される。また、シンタックスalf_length_luma_minus5_div2[i0]は、フィルタ係数予測部515、フィルタ係数復号部516、領域別フィルタ係数格納部517、フィルタ係数割り付け部524、および、フィルタ部525にも供給される(
図35において矢印不図示)。
【0408】
領域構造復号部512は、フィルタパラメータFPに含まれるシンタックスalf_second_split_typeおよびalf_second_split_flag[i0]を復号する。復号されたシンタックスalf_second_split_typeは、特性値領域CR全体に割り付けられると共に、フィルタ係数残差復号部513、2次元予測フラグ復号部514、および、特性値分割点設定部519に供給される。また、復号されたシンタックスalf_second_split_flag[i0]は、特性値部分領域CPR[i0]に割り付けられると共に、フィルタ係数残差復号部513、2次元予測フラグ復号部514、および、特性値分割点設定部519に供給される。
【0409】
フィルタ係数残差復号部513は、alf_length_luma_minus5_div2[i0]、alf_second_split_type、およびalf_second_split_flag[i0]を参照して、フィルタパラメータFPに含まれるシンタックスalf_coeff_luma[i][j]を復号すると共に、各シンタックスalf_coeff_luma[i][j]を、それぞれに対応する特性値部分領域CPR(i0、j0)に割り付ける。alf_coeff_luma[i][j]と特性値部分領域CPR(i0、j0)との対応関係については、符号化データ#3の説明において既に述べたため、ここでは説明を省略する。また、復号されたシンタックスalf_coeff_luma[i][j]は、フィルタ係数復号部516に供給される。
【0410】
2次元予測フラグ復号部514は、alf_second_split_type、およびalf_second_split_flag[i0]を参照して、フィルタパラメータFPに含まれるシンタックスalf_region_pred_luma[i][j]を復号すると共に、各シンタックスalf_region_pred_luma[i][j]を、それぞれに対応する特性値部分領域CPR(i0、j0)に割り付ける。alf_region_pred_luma[i][j]と特性値部分領域CPR(i0、j0)との対応関係については、符号化データ#3の説明において既に述べたため、ここでは説明を省略する。また、復号されたシンタックスalf_region_pred_lumaは、フィルタ係数予測部515に供給される。
【0411】
フィルタ係数予測部515は、シンタックスalf_region_pred_lumaを参照し、領域別フィルタ係数格納部517に格納された復号済みのフィルタ係数RegionFilterLuma[i0'][j0']から、予測フィルタ係数PredRegionFilterLuma[i0][j0]を特性値部分領域毎に導出する。導出された予測フィルタ係数PredRegionFilterLuma[i0][j0]は、フィルタ係数復号部516に供給される。
【0412】
ここで、処理対象の特性値部分領域である対象特性値部分領域にシンタックスalf_region_pred_lumaが割り付けられている場合には、フィルタ係数予測部515は、対象特性値部分領域に対して当該シンタックスalf_region_pred_lumaが示す方向に隣接する特性値部分領域について復号済みのフィルタ係数RegionFilterLuma[i0'][j0']を、対象特性値部分領域についての予測フィルタ係数PredRegionFilterLuma[i0][j0]に設定する。一方で、対象特性値部分領域にシンタックスalf_region_pred_lumaが割り付けられていない場合には、フィルタ係数予測部515は、対象特性値部分領域の上辺に隣接する特性値部分領域について復号済みのフィルタ係数RegionFilterLuma[i0'][j0']を、対象特性値部分領域についての予測フィルタ係数PredRegionFilterLuma[i0][j0]に設定する。
【0413】
フィルタ係数復号部516は、各特性値部分領域について、フィルタ係数残差alf_coeff_luma(i0,j0)と予測フィルタ係数PredRegionFilterLuma[i0][j0]とを加算することによって、フィルタ係数RegionFilterLuma[i0][j0]を生成し、各特性値部分領域に割り付ける。生成されたフィルタ係数RegionFilterLuma[i0][j0]は、領域別フィルタ係数格納部517に格納される。
【0414】
特性値分割点変更フラグ復号部518は、フィルタパラメータFPに含まれるシンタックスalf_first_split_val_shiftを復号する。復号されたシンタックスalf_first_split_val_shiftは、特性値分割点設定部519に供給される。
【0415】
特性値分割点設定部519は、alf_first_split_val_shiftおよびalf_second_split_typeに基づいて、特性値分割点PXn(1≦n≦NX−1)およびPYm(1≦m≦NX−1)を導出する。導出された特性値分割点PXnおよびPYmは、適応フィルタ部52の備える特性インデックス算出部523に供給される。
【0416】
シンタックスalf_first_split_val_shiftおよびalf_second_split_typeの各値に対する特性値分割点PXnおよびPYmの具体例については、符号化データ#3の説明において既に述べたため、ここでは説明を省略する。
【0417】
なお、特性値分割点設定部519は、alf_first_split_val_shiftおよびalf_second_split_typeの何れをも参照することなく、自身の備えるメモリに予め格納された特性値分割情報に従って、特性値分割点PXn(1≦n≦NX−1)およびPYm(1≦m≦NX−1)を導出する構成としてもよい。このような構成の場合、上記特性値分割情報は、動画像復号装置3および動画像符号化装置4において共通のものを用いることが好ましい。
【0418】
(適応フィルタ部52)
適応フィルタ部52は、デブロック済復号画像P_DBを構成する各単位領域に対して、適応的フィルタ処理を行うことによってフィルタ済復号画像P_FLを生成するための構成である。ここで、各単位領域のフィルタ処理に用いられるフィルタ係数は、フィルタパラメータFPから復号されたフィルタ係数RegionFilterLuma[i0][j0]から、該単位領域におけるデブロック済復号画像P_DBの特性値Xに応じて、または、該単位領域におけるデブロック済復号画像P_DBの特性値Xおよび特性値Yに応じて選択される。また、生成されたフィルタ済復号画像P_FLは、バッファメモリ15に格納される。
【0419】
図35に示すように、適応フィルタ部52は、第1特性値算出部521、第2特性値算出部522、特性インデックス算出部523、フィルタ係数割り当て部524、および、フィルタ部525を備えている。
【0420】
なお、適応フィルタ部52に入力される画像は、デブロック済復号画像P_DBに限定されるものではなく、複数の入力画像を入力することもできる。例えば、適応フィルタ部52には、デブロック済復号画像P_DBに加えて、復号画像Pおよび予測残差Dの少なくとも何れかを入力する構成としてもよい。このような構成の場合、後述する第1特性値算出部521および第2特性値算出部522は、デブロック済復号画像P_DBのみならず、復号画像Pおよび予測残差Dの少なくとも何れかについても各特性値を算出する構成とし、フィルタ部525は、それぞれの入力画像に対して、適応的フィルタ処理を行い、フィルタ後の画像を加算した後に出力する構成としてもよい。このような場合、フィルタパラメータFPには、各入力画像に対するフィルタ係数であって、各特性値部分領域に対応するフィルタ係数を含めておく構成とすればよい。
【0421】
(第1特性値算出部521)
第1特性値算出部521は、処理対象の単位領域である対象単位領域におけるデブロック済復号画像P_DBについての特性値Xを算出する。以下では、特性値Xとして活性度を算出する算出処理(特性値Xの算出処理例1)および特性値Xとして画素値の分散を算出する算出処理(特性値Xの算出処理例2)について説明を行う。ただし、特性値Xの具体例はこれらに限定されるものではない。
【0422】
(特性値Xの算出処理例1)
本処理例では、第1特性値算出部521は、特性値Xとして、対象単位領域におけるデブロック済復号画像P_DBの活性度ACTを算出する。ここで、活性度とは、概略的に言えば、画像の乱雑さを示す指標であり、対象単位領域を含む領域にDCT変換を施した場合に得られる変換係数において大きな高周波成分が存在するかなどに基づいても算出可能であるが、ここでは隣接する画素の画素値に基づいて算出するものとする。隣接する画素の画素値の差が大きいほど、活性度が大きくなる。算出された活性度ACTは、特性値Xとして特性インデックス算出部523に供給される。
【0423】
対象単位領域がBx画素×By画素の矩形状である場合、対象単位領域における各画素の座標を(u、v)(u、vはそれぞれ0≦u≦Bx−1、0≦v≦By−1を満たす整数)と表し、その座標におけるデブロック済復号画像P_DBの画素値をS(u、v)と表すことにすると、第1特性値算出部521は、例えば、以下の数式(2−1a)を用いることによって、活性度ACTを算出することができる。
【0425】
数式(2−1a)は、隣接する画素の画素値の絶対値の総和(Sum of Absolute Difference, SAD)を指標として、活性度を評価することに対応している。
【0426】
また、第1特性値算出部521は、以下の数式(2−1b)を用いることによって、活性度ACTを算出する構成としてもよい。
【0428】
数式(2−1b)は、隣接する画素の画素値の変形ラプラシアンの総和(Sum-Modified Laplacian, SML)を指標として、活性度を評価することに対応している。
【0429】
対象単位領域についての活性度を数式(2−1a)または(2−1b)を用いて算出する場合、第1特性値算出部521は、対象単位領域内の画素S(i、j)のみならず、対象単位領域に隣接する画素S(−1、v)、S(Bx、v)、S(u、−1)、および、S(u、By)をも参照する。すなわち、数式(2−1a)または(2−1b)を用いる場合の特性値算出参照領域は、対象単位領域内の画素S(u、v)、および、対象単位領域に隣接する画素S(−1、v)、S(Bx、v)、S(u、−1)、および、S(u、By)から構成される。第1特性値算出部521が、4×4画素の対象単位領域URについての活性度ACTを、数式(2−1a)または(2−1b)を用いて算出する場合の特性値算出参照領域CRRを
図36(a)に示す。
【0430】
なお、対象単位領域がスライス境界またはマクロブロック境界に接している場合、特性値算出参照領域内の一部の画素について、デブロック済復号画像P_DBの画素値が参照不能である場合が生じ得る。例えば、対象単位領域が、未復号のマクロブロックに隣接している場合、この未復号のマクロブロックの画素値を参照することはできない。このような場合、例外処理として、第1特性値算出部521は、それらの参照不能な画素値を参照することなく活性度ACTの算出を行う。例えば、対象単位領域の右辺および下辺が未復号のマクロブロックに隣接している場合、第1特性値算出部521は、数式(2−1a)においてu、vの和の範囲を一部制限して得られる以下の数式(2−1a’)を用いて活性度ACTを算出すればよい。
【0432】
数式(2−1b)についても同様である。
【0433】
一方で、第1特性値算出部521は、対象単位領域がスライス境界またはマクロブロック境界に接しているか否かに関わらず、対象単位領域についての活性度を対象単位領域内の画素値のみを参照することによって算出する構成とすることもできる。例えば、第1特性値算出部521は、以下の数式(2−1c)を用いることによって、活性度ACTを算出することもできる。
【0435】
数式(2−1c)は、数式(2−1a)と同様に、隣接する画素の画素値のSADを指標として隣接する画素の画素値の活性度を評価することに対応しているが、数式(2−1a)と異なり、対象単位領域に含まれる画素のみを参照して活性度を算出することを表している。
【0436】
また、第1特性値算出部521は、以下の数式(2−1d)を用いることによって、活性度ACTを算出する構成としてもよい。
【0438】
数式(2−1d)は、数式(2−1b)と同様に、隣接する画素の画素値のSMLを指標として、活性度を評価することに対応しているが、数式(2−1a)と異なり、対象単位領域に含まれる画素のみを参照して活性度を算出することを表している。
【0439】
このように、第1特性値算出部521が、対象単位領域についての活性度を対象単位領域内の画素値のみを参照することによって算出する場合、
図36(b)に示すように、特性値算出参照領域CRRは、対象単位領域URと同一の領域となる。後述する分散VPも、対象単位領域内の画素値のみを参照して算出可能な活性度の一例である。
【0440】
したがって、第1特性値算出部521が、対象単位領域についての活性度を対象単位領域内の画素値のみを参照することによって算出する場合には、対象単位領域以外の画素値をも参照する場合に比べて、バッファメモリ15から読み出す画素数が削減され、バッファメモリ15から適応フィルタ50へのデータ伝送量が削減される。また、活性度を算出するために参照される画素の数が少なく、例外処理も不要であるため、活性度を算出するための処理量が削減される。
【0441】
なお、数式(2−1c)を用いることによって活性度ACTを算出する第1特性値算出部521を以下のように表現することもできる。すなわち、第1特性値算出部521は、画素(u、v)についての活性度ACT(u、v)を、座標(u、v)の近傍{(u、v),(u+1、v),(u、v+1)}における各画素の画素値を参照して算出し、対象単位領域の内部領域{(u、v)|0≦u≦Bx−2,0≦v≦By−2}におけるACT(u、v)の総和を用いて、対象単位領域についてのACTを算出する。
【0442】
また、数式(2−1d)を用いることによって活性度ACTを算出する第1特性値算出部521を以下のように表現することもできる。すなわち、第1特性値算出部521は、画素(u、v)についての活性度ACT(u、v)を、座標(u、v)の近傍{(u、v),(u+1、v),(u、v+1),(u−1、v),(u、v−1)}における各画素の画素値を参照して算出し、対象単位領域の内部領域{(u、v)|1≦u≦Bx−2,1≦v≦By−2}におけるACT(u、v)の総和を用いて、対象単位領域についてのACTを算出する。
【0443】
このように、対象単位領域に含まれる画素のみを参照して活性度を算出する第1特性値算出部521は、対象単位領域において、その近傍全体が該対象単位領域に含まれる画素からなる内部領域に属する各画素の活性度を、該画素の上記近傍に含まれる画素の画素値を参照して導出したうえで、内部領域に属する各画素の活性度から該対象単位領域についての活性度を算出するものであると表現することもできる。
【0444】
なお、対象単位領域に含まれる画素のみを参照して活性度を算出する構成は、上記の例に限定されるものではなく、対象単位領域を、その近傍全体が該対象単位領域に含まれる画素からなる内部領域と、その近傍全体が該対象単位領域に含まれない画素からなる周辺領域とに分け、内部領域に属する各画素の活性度を該画素の近傍内の画素の画素値を参照して導出し、かつ、周辺領域に属する各画素の活性度を該画素の上記近傍内の画素であって該単位領域内の画素の画素値を参照して導出したうえで、該単位領域に属する各画素の活性度から該単位領域についての活性度を算出する構成としてもよい。
【0445】
また、第1特性値算出部521は、実施形態1における活性度算出部423と同様の処理によって活性度ACTを算出する構成としてもよい。ただし、実施形態1における「分割領域」および「パーティション」は、本実施形態における「単位領域」に対応する。
【0446】
(特性値Xの算出処理例2)
本処理例では、第1特性値算出部521は、特性値Xとして、対象単位領域におけるデブロック済復号画像P_DBの画素値の分散VPを算出する。算出された分散VPは、特性値Xとして特性インデックス算出部523に供給される。
【0447】
ここで、対象単位領域がBx画素×By画素の矩形状である場合、対象単位領域における各画素の座標を(u、v)(u、vはそれぞれ0≦u≦Bx−1、0≦v≦By−1を満たす整数)と表し、その座標におけるデブロック済復号画像P_DBの画素値をS(u、v)と表すことにすると、第1特性値算出部521は、例えば、以下の数式(2−2)を用いて分散VPを算出する。
【0449】
なお、第1特性値算出部521によって算出される分散VPは、上述した活性度ACTと同様に、対象単位領域におけるデブロック済復号画像P_DBの乱雑さを示す指標として機能する。
【0450】
(第2特性値算出部522)
第2特性値算出部522は、対象単位領域におけるデブロック済復号画像P_DBについての特性値Yを算出する。以下では、特性値Yとして画像の方向性を算出する算出処理(特性値Yの算出処理例1)および(特性値Yの算出処理例2)、特性値Xとして平均画素値を算出する算出処理(特性値Yの算出処理例2)、並びに、特性値Xとして対象単位領域の座標値を算出する算出処理(特性値Yの算出処理例3)について説明を行う。ただし、特性値Yの具体例はこれらに限定されるものではない。
【0451】
(特性値Yの算出処理例1)
本処理例では、第2特性値算出部522は、特性値Yとして、対象単位領域におけるデブロック済復号画像の方向性を算出する。算出された方向性を示すインデックス(方向インデックス)は、特性値Yとして特性インデックス算出部523に供給される。
【0452】
第2特性値算出部522は、まず、対象単位領域におけるデブロック済復号画像P_DBの垂直方向活性度ACT_V、および、水平方向活性度ACT_Hを算出する。ここで、水平方向活性度ACT_H、および、垂直方向活性度ACT_Vは、例えば、上述した数式(2−1a)の第1項、および、第2項によってそれぞれ算出することができる。また、水平方向活性度ACT_H、および、垂直方向活性度ACT_Vは、上述した数式(2−1b)〜(2−1d)のうち、何れかの数式の第1項、および、第2項によってそれぞれ算出することもできる。
【0453】
続いて、第2特性値算出部522は、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hの各々の大きさに応じて、以下に列挙する方向インデックスを特性値Yとして特性インデックス算出部523に供給する。
【0454】
・方向インデックス=0:ACT_H>2×ACT_Vの場合
・方向インデックス=1:ACT_H≦2×ACT_VかつACT_V≦ACT_Hの場合
・方向インデックス=2:ACT_H<ACT_VかつACT_V≦2×ACT_Hの場合
・方向インデックス=3:2×ACT_H<ACT_Vの場合
なお、本処理例における方向インデックスの導出方向は上記の例に限られるものではない。例えば、第2特性値算出部522は、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hの各々の大きさに応じて、対象単位領域におけるデブロック済復号画像の方向性を3つに分類し、それらの方向性を示す方向インデックスを出力する構成としてもよいし、対象単位領域におけるデブロック済復号画像の方向性を2つに分類し、それらの方向性を示す方向インデックスを出力する構成としてもよい。また、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hの各々の大きさに応じて、対象単位領域におけるデブロック済復号画像の方向性を5つ以上に分類してもよい。
【0455】
第2特性値算出部522は、例えば、以下のように、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hの各々の大きさに応じて、対象単位領域におけるデブロック済復号画像の方向性を3つに分類することができる。
【0456】
・方向インデックス=0:ACT_H>2×ACT_Vの場合
・方向インデックス=1:ACT_H≦2×ACT_Vかつ2×ACT_H≧ACT_Vの場合
・方向インデックス=2:2×ACT_H<ACT_Vの場合
このような構成とする場合、初期分割によって得られた特性値部分領域CPR[i0]は、特性値Yに関して、最大で3つの特性値部分領域CPR(i0、j0)(j0=0、1、2)に再分割される。ここで、j0=0、1、2は、それぞれ、方向インデックス=0、1、2に対応する。
【0457】
また、第2特性値算出部522は、例えば、以下のように、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hの各々の大きさに応じて、対象単位領域におけるデブロック済復号画像の方向性を2つに分類することができる。
【0458】
・方向インデックス=0:ACT_H>ACT_Vの場合
・方向インデックス=1:ACT_H<ACT_Vの場合
このような構成とする場合、初期分割によって得られた特性値部分領域CPR[i0]は、特性値Yに関して、最大で2つの特性値部分領域CPR(i0、j0)(j0=0、1)に再分割される。ここで、j0=0、1は、それぞれ、方向インデックス=0、1、に対応する。
【0459】
(特性値Yの算出処理例2)
本処理例では、第2特性値算出部522は、特性値Yとして、対象単位領域におけるデブロック済復号画像の方向性を算出する。ただし、本処理例では、上述の(特性値Yの算出処理例1)とは異なり、対象単位領域におけるデブロック済復号画像のエッジ方向を検出し、検出されたエッジ方向に応じて、方向インデックスを特性値Yとして特性インデックス算出部523に供給する。
【0460】
本処理例におけるエッジ方向検出処理は、実施形態1におけるエッジ方向検出部422によるエッジ方向検出処理と同様である。第2特性値算出部522は、Sobel_yおよびSobel_xの大小関係に応じて場合分けをすることによって、以下のように方向インデックスを生成する。
【0461】
方向インデックス=0 |Sobel_y|<a×|Sobel_x|の場合
方向インデックス=1 |Sobel_y|≧a×|Sobel_x|かつ
|Sobel_y|≦b×|Sobel_x|かつ
Sobel_yとSobel_xの符号が等しい場合
方向インデックス=2 |Sobel_y|>b×|Sobel_x|の場合
方向インデックス=3 |Sobel_y|≧a×|Sobel_x|かつ
|Sobel_y|≦b×|Sobel_x|かつ
Sobel_yとSobel_xの符号が反対の場合
但し、a=tan(22.5°)=0.414・・・、b=tan(67.5°)=2.414・・・である。なお、この例では4つの方向インデックスを算出したが、2個または3個の方向インデックスの算出や5個以上の方向インデックスを算出する構成としてもよい。このような構成の場合、特性値Yの算出処理例1において説明したように、初期分割によって得られた特性値部分領域CPR[i0]は、特性値Yに関して、最大で、方向インデックスの総数と同数の特性値部分領域に再分割される。
【0462】
(特性値Yの算出処理例3)
本処理例では、第2特性値算出部522は、特性値Yとして、対象単位領域におけるデブロック済復号画像の画素値の平均(平均画素値とも呼ぶ)を算出し、算出した平均画素値を、特性値Yとして特性インデックス算出部523に供給する。
【0463】
第2特性値算出部522は、処理対象となる対象単位領域におけるデブロック済復号画像P_DBの各画素値をバッファメモリ15から読み出し、それらの画素値の平均をとることによって平均画素値MPを算出する。
【0464】
対象単位領域がBx画素×By画素の矩形状である場合、対象単位領域における各画素の座標を(u、v)(u、vはそれぞれ0≦u≦Bx−1、0≦v≦By−1を満たす整数)と表し、その座標におけるデブロック済復号画像P_DBの画素値をS(u、v)と表すことにすると、第2特性値算出部522は、例えば、以下の数式(2−3)を用いて、各画素値の単純平均をとることによって、平均画素値MPを算出することができる。
【0466】
なお、第2特性値算出部522は、各画素値の単純平均をとることに代えて、各画素値について所定の重み係数を用いた加重平均をとることによって平均画素値MPを算出する構成としてもよい。
【0467】
また、符号化データ#3の説明において、初期分割によって得られた特性値部分領域CPR[i0]が、特性値Yに関して、最大で4つの特性値部分領域に再分割される場合を例に挙げたが、本実施形態は、これに限定されるものではない。例えば、初期分割によって得られた特性値部分領域CPR[i0]が、特性値Yに関して、以下のように、最大で3つの特性値部分領域CPR(i0、j0)(j0=0、1、2)に分割される構成としてもよい。
【0468】
CPR(i0、0):MP≦64
CPR(i0、1):64<MPかつMP≦160
CPR(i0、2):160<MP
また、初期分割によって得られた特性値部分領域CPR[i0]が、特性値Yに関して、以下のように、最大で2つの特性値部分領域CPR(i0、j0)(j0=0、1)に分割される構成としてもよい。
【0469】
CPR(i0、0):MP≦128
CPR(i0、1):128<MP
(特性値Yの算出処理例4)
本処理例では、第2特性値算出部522は、処理対象フレーム(または処理対象スライス)における対象単位領域の座標を算出する。算出された座標は、特性値Yとして特性インデックス算出部523に供給される。ここで、対象単位領域の座標とは、より正確には、対象単位領域の代表画素の座標である。代表画素としては、例えば、対象単位領域内の画素であって、該対象単位領域の左上端の画素を用いることができる。ただし、対象単位領域における代表画素の具体的な位置は本実施形態を限定するものではない。
【0470】
対象単位領域が、ブロックまたはパーティションである場合には、処理対象フレームにおける当該対象単位領域の座標は、符号化データ#3から復号された以下の情報を参照することによって算出することができる。
【0471】
・符号化ブロックパターンを指定するCBP(coded_block_pattern)
・予測単位指定情報PT
・変換単位指定情報TT
また対象単位領域が、ブロックまたはパーティションの何れでもなく、適応フィルタ部50によって設定される領域である場合には、適応フィルタ50は、設定された単位領域の位置を示す情報を参照することによって、対象単位領域の座標を特定することができる。
【0472】
(特性インデックス算出部523)
特性インデックス算出部523は、対象単位領域について、第1特性値算出部521から供給される特性値Xおよび第2特性値算出部522から供給される特性値Yを、それぞれ、特性値分割点PXnおよびPYmと比較することによって、当該対象単位領域に対して、特性値領域内インデックス(i0、j0)を割り付ける。また、対象単位領域に対して割り付けた特性値領域内インデックス(i0、j0)をフィルタ係数割り付け部524に供給する。
【0473】
特性インデックス算出部523は、まず、対象単位領域についての特性値Xを、特性値分割点PX1〜PX_NX−1のうち第1段階の分割に用いられる初期分割点と比較することによって、初期分割インデックス[i0]を算出し、算出された初期分割インデックス[i0]を対象単位領域に割り付ける。
図27(b)に示すように初期分割点としてPX2およびPX4が用いられる場合、初期分割インデックス[i0]は以下のように算出される。
【0474】
・i0=0:X<PX2の場合
・i0=1:PX2≦X<PX4の場合
・i0=2:PX4≦Xの場合
続いて、特性インデックス算出部523は、alf_second_split_typeおよびalf_second_split_flag[i0]を参照し、特性値Xおよび特性値Yを、第2段階の分割に用いられる再分割点と比較することによって、再分割インデックス[j0]を算出する。算出された再分割インデックス[j0]は、対象単位領域に割り付けられる。
【0475】
図27(c)に示すように、特性値Xについての再分割点としてPX1、PX3、PX5が用いられる場合、再分割点PX1は、初期分割インデックス[i0=0]が割り付けられた対象単位領域に対して用いられ、再分割点PX3は、初期分割インデックス[i0=1]が割り付けられた対象単位領域に対して用いられ、再分割点PX5は、初期分割インデックス[i0=2]が割り付けられた対象単位領域に対して用いられる。
【0476】
以下では、初期分割インデックス[i0=0]が割り付けられた対象単位領域についての再分割インデックス[j0]の算出処理について、より具体的に説明を行う。初期分割インデックス[i0=1]が割り付けられた対象単位領域についての再分割インデックス[j0]の算出処理は、以下の説明におけるPX1をPX3と読み替えればよく、初期分割インデックス[i0=2]が割り付けられた対象単位領域についての再分割インデックス[j0]の算出処理は、以下の説明におけるPX1をPX5と読み替えればよい。
【0477】
特性インデックス算出部523は、alf_second_split_type=0の場合、初期分割インデックス[i0=0]が割り付けられた対象単位領域について、再分割インデックス[j0]を以下のように算出する。
【0478】
・alf_second_split_flag=0の場合:
j0=0
・alf_second_split_flag=1の場合:
j0=0:X<PX1のとき
j0=1:PX1≦Xのとき
・alf_second_split_flag=2の場合:
j0=0:Y<PY2のとき
j0=1:PY2≦Yのとき
・alf_second_split_flag=3の場合:
j0=0:X<PX1かつY<PY2のとき
j0=1:X<PX1かつPY2≦Yのとき
j0=2:PX1≦XかつY<PY2のとき
j0=3:PX1≦XかつPY2≦Yのとき
また、特性インデックス算出部523は、alf_second_split_type=1の場合、初期分割インデックス[i0=0]が割り付けられた対象単位領域について、再分割インデックス[j0]を以下のように算出する。
【0479】
・alf_second_split_flag=0の場合:
j0=0
・alf_second_split_flag=1の場合:
j0=0:Y<PY2のとき
j0=1:PY2≦Yのとき
・alf_second_split_flag=2の場合:
j0=0:Y<PY1のとき
j0=1:PY1≦Yのとき
・alf_second_split_flag=3の場合:
j0=0:Y<PY1のとき
j0=1:PY1≦Y<PY2のとき
j0=2:PY2≦Y<PY3のとき
j0=3:PY3≦Yのとき
(フィルタ係数割り付け部524)
フィルタ係数割り付け部524は、対象単位領域に割り付けられた特性値領域内インデックス(i0、j0)に対応するフィルタ係数RegionFilterLuma[i0][j0]を、特性別フィルタ係数格納部517から読み出し、読み出したフィルタ係数RegionFilterLuma[i0][j0]を、当該対象単位領域に割り付ける。対象単位領域に割り付けられたフィルタ係数RegionFilterLuma[i0][j0]は、フィルタ部525に供給される。
【0480】
(フィルタ部525)
フィルタ部525は、対象単位領域に対して、フィルタ係数RegionFilterLuma[i0][j0]を用いたフィルタ処理を施すことによって、該対象単位領域におけるフィルタ済復号画像P_FLを生成する。生成されたフィルタ済復号画像P_FLは、バッファメモリ15に格納される。
【0481】
より具体的には、フィルタ済復号画像P_FL(「フィルタ後画像」とも呼称する)におけるフィルタ対象画素の画素値をSF(x’、y’)と表し、デブロック済復号画像P_DB(「フィルタ前画像」とも呼称する)における画素値をS(x、y)と表すことにすると、フィルタ部525は、画素値SF(x’、y’)を、以下の数式(2−4)によって算出する。
【0483】
ここで、座標(x、y)は座標(x’、y’)と同一の座標としてもよいし、1対1の対応を有していれば、異なった座標としてもよい。また、a(u、v)は、フィルタ前画像の画素値S(x+u、y+v)に乗ぜられるフィルタ係数を表しており、フィルタ係数割り付け部524から供給されたフィルタ係数RegionFilterLuma[i0][j0]の各成分に対応する。また、oは、フィルタ係数RegionFilterLuma[i0][j0]に含まれるオフセット成分を表
している。
【0484】
また、数式(2−4)におけるRは、フィルタ処理において参照される領域(「フィルタ参照領域R」とも呼称する)を表している。参照領域Rのタップ数は、alf_length_luma_minus5_div2[i0]によって指定される。参照領域Rとしては、例えば、
図30に示したように、alf_length_luma_minus5_div2[i0]の各値に応じて設定される参照領域R0、R1、およびR2の何れかを用いればよい。なお。
図30においては、菱形の参照領域を例示しているが、本実施形態における参照領域Rは、これらの例に限定されるものではなく、alf_length_luma_minus5_div2[i0]によってタップ数が指定される矩形状の参照領域を用いてもよい。
【0485】
また、各フィルタ係数は、180度の回転対称性を有するように、フィルタ参照領域Rに含まれる各画素に対して割り付けられる構成とすることができる。すなわち、a(u、v)=a(−u、−v)を満たすように設定される構成とすることができる。このような構成とすることによって、alf_coeff_luma[i][j]に含まれる各成分の数を削減することができる。
【0486】
(動画像符号化装置4)
以下では、符号化対象画像を符号化することによって符号化データ#3を生成する動画像符号化装置4について、
図37〜
図38を参照して説明する。なお、以下では、既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【0487】
図37は、本実施形態に係る動画像符号化装置4の構成を示すブロック図である。
図37に示すように、動画像符号化装置4は、実施形態1に係る動画像符号化装置2の備える適応フィルタ34に代えて、適応フィルタ60を備えている。動画像符号化装置4のその他の構成は、実施形態1に係る動画像符号化装置2の構成と同様であるため、説明を省略する。
【0488】
(適応フィルタ60)
適応フィルタ60は、デブロック済復号画像P_DBに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像P_FLを生成する。生成されたフィルタ済復号画像P_FLは、バッファメモリ24に格納される。また、適応フィルタ60は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータFPとして可変長符号符号化部22に供給する。可変長符号符号化部22は、フィルタパラメータFPを符号化データ#3の一部として符号化する。
【0489】
図38は、適応フィルタ60の構成を示すブロック図である。
図38に示すように、適応フィルタ60は、適応フィルタ情報設定部61、および、適応フィルタ部62を備えている。
【0490】
(適応フィルタ情報設定部61)
適応フィルタ情報設定部61は、
図38に示すように、領域別タップ数設定部611、領域構造設定部612、フィルタパラメータ生成部613、2次元予測フラグ設定部614、フィルタ係数予測部515、フィルタ係数残差生成部616、特性別フィルタ係数格納部617、特性値分割点変更フラグ設定部618、特性値分割点設定部519を備えている。
【0491】
フィルタ係数予測部515、および特性値分割点設定部519については既に述べたためここでは説明を省略する。
【0492】
(領域別タップ数設定部611)
領域別タップ数設定部611は、初期分割によって得られた特性値部分領域CPR[i0]についてのタップ数を指定するためのシンタックスalf_length_luma_minus5_div2[i0]を設定する。設定されたシンタックスalf_length_luma_minus5_div2[i0]は、フィルタパラメータ生成部613に供給される。また、シンタックスalf_length_luma_minus5_div2[i0]は、フィルタ係数予測部515、フィルタ係数残差生成部616、領域別フィルタ係数格納部617、フィルタ係数導出部624、および、フィルタ部525にも供給される(
図38において矢印不図示)。
【0493】
alf_length_luma_minus5_div2[i0]の取り得る具体的な値、および、alf_length_luma_minus5_div2[i0]の具体的な値と参照領域Rのタップ数AlfLengthLumaとの対応関係については、既に述べたためここでは説明を省略する。
【0494】
なお、alf_length_luma_minus5_div2[i0]の具体的な値は、符号化効率がより向上する
ように定められる。
【0495】
(領域構造設定部612)
領域構造設定部612は、再分割の種別を指定するためのフラグalf_second_split_type、および、初期分割によって得られた各特性値部分領域について再分割の具体的な態様を指定するためのシンタックスalf_second_split_flag[i0]を設定する。設定されたフラグalf_second_split_typeおよびシンタックスalf_second_split_flag[i0]は、特性値分割点設定部519、2次元予測フラグ設定部614、および、フィルタパラメータ生成部613に供給される。
【0496】
alf_second_split_typeおよびalf_second_split_flag[i0]の取り得る値、並びに、alf_second_split_typeおよびalf_second_split_flag[i0]の具体的な値と再分割の態様との対応関係については、既に述べたためここでは説明を省略する。
【0497】
なお、alf_second_split_typeおよびalf_second_split_flag[i0]の具体的な値は、符号化効率がより向上するように定められる。
【0498】
(2次元予測フラグ設定部614)
2次元予測フラグ設定部614は、alf_second_split_typeおよびalf_second_split_flag[i0]を参照して、各特性値部分領域についてのフィルタ係数の予測値を導出する際の予測方向を指定するためのフラグalf_region_pred_luma[i][j]を設定する。設定されたフラグalf_region_pred_luma[i][j]は、フィルタ係数予測部515に供給される。
【0499】
alf_region_pred_luma[i][j]の取り得る値、およびalf_region_pred_luma[i][j]の具体的な値と予測方向との対応関係については既に述べたため、ここでは説明を省略する。なお、alf_region_pred_luma[i][j]の具体的な値は、符号化効率がより向上するように定められる。
【0500】
(フィルタ係数残差生成部616)
フィルタ係数残差616は、各特性値部分領域CPR(i0、j0)について、フィルタ係数予測部515より供給される予測フィルタ係数PredRegionFilterLumaと特性別フィルタ係数格納部617から読み出したフィルタ係数RegionFilterLumaとの差分をとることによって、フィルタ係数残差alf_coeff_luma[i][j]を生成する。生成されたフィルタ係数残差alf_coeff_luma[i][j]はフィルタパラメータ生成部613に供給される。
【0501】
(特性値分割点変更フラグ設定部618)
特性値分割点変更フラグ設定部618は、特性値分割点PXn(1≦n≦NX−1)を変更するために参照されるフラグalf_first_split_val_shiftを設定する。設定されたフラグalf_first_split_val_shiftは、特性値分割点設定部519に供給される。
【0502】
alf_first_split_val_shiftの取り得る値、および、alf_first_split_val_shiftの具体的な値と特性値分割点PXnとの対応関係については既に述べたため、ここでは説明を省略する。
【0503】
なお、alf_first_split_val_shiftの具体的な値は、符号化効率がより向上するように定められる。
【0504】
(フィルタパラメータ生成部613)
フィルタパラメータ生成部613は、シンタックスalf_length_luma_minus5_div2[i0]、alf_second_split_type、alf_second_split_flag[i0]、alf_first_split_val_shift、および、alf_coeff_luma[i][j]からフィルタパラメータFPを生成する。生成されたフィルタパラメータFPは、可変長符号符号化部22に供給される。
【0505】
なお、フィルタパラメータFPには、特性値部分領域毎のフィルタ処理を行うのか否かを指定するためのシンタックスalf_enable_region_filter、および、初期分割の分割数AlfNumFirstSplitを指定するためのシンタックスalf_num_first_split_minus1が含まれる。これらのシンタックスの具体的な値は、符号化効率がより向上するように定められる。
【0506】
(特性別フィルタ係数格納部617)
特性別フィルタ係数格納部617は、後述するフィルタ係数導出部624によって導出されたフィルタ係数RegionFilterLuma[i0][j0]が格納される。
【0507】
(適応フィルタ部62)
適応フィルタ部62は、
図38に示すように、第1特性値算出部521、第2特性値算出部522、特性インデックス算出部523、フィルタ係数導出部624、およびフィルタ部525を備えている。
【0508】
第1特性値算出部521、第2特性値算出部522、特性インデックス算出部523、およびフィルタ部525については、既に述べたため、ここでは説明を省略する。
【0509】
(フィルタ係数導出部624)
フィルタ係数導出部624は、対象単位領域におけるフィルタ済復号画像P_FLと符号化対象画像との誤差がより小さくなるようなフィルタ係数RegionFilterLuma[i0][j0]を導出する。導出されたフィルタ係数RegionFilterLuma[i0][j0]は、フィルタ部525に供給されると共に、特性別フィルタ係数格納部617に格納される。
【0510】
対象単位領域におけるデブロック済復号画像P_DBの画素値をS(x、y)と表し、対象単位領域における符号化対象画像の画素値をST(x、y)と表すことにすると、フィルタ係数導出部624は、例えば、以下の数式(2−5)によって与えられる二乗誤差Eを最小にするようなフィルタ係数a(u、v)およびオフセットoを導出する。ここで、フィルタ係数a(u、v)およびオフセットoは、RegionFilterLuma[i0][j0]の各成分である。
【0512】
<実施形態2の変形例>
以下では、実施形態2の変形例について、
図39〜
図40を参照して説明する。
図39は、本変形例に係るフィルタパラメータFP(
図39においてalf_param()と表記)に含まれる各シンタックスを示す図である。
図39に示すように、本変形例に係るフィルタパラメータFPには、
図26に示したフィルタパラメータFPとは異なり、シンタックスalf_first_split_val_shift、および、alf_second_split_typeは含まれておらず、alf_second_split_typeの値としては、alf_second_split_type=0の固定値が用いられる。
【0513】
本変形例においては、第1の特性値Xについての特性値分割点PX1〜PX_NX−1、すなわち、初期分割における分割点が、初期分割の分割数を指定するシンタックスalf_num_first_split_minus1の値に応じて設定される。
図40は、本変形例におけるalf_num_first_split_minus1の各値に応じて設定される特性値分割点PX1〜PX5を例示する表である。
【0514】
図40に示すように、本変形例においては、初期分割の分割数に応じて分割点が設定されるので、各特性値部分領域に分類される単位領域の数を一定に近づけることができる。このため、高い符号化効率を実現することができる。
【0515】
また、
図40に示すように、alf_num_first_split_minus1=0または1の場合に設定される特性値分割点の値は、alf_num_first_split_minus1=2の場合に設定される特性値分割点の何れかが用いられる。例えば、alf_num_first_split_minus1=0の場合に設定される特性値分割点PX1の値には、alf_num_first_split_minus1=2の場合に設定される特性値分割点PX3の値64が用いられる。このように、本変形例では、最大分割以外の分割(
図40に示す例では、alf_num_first_split_minus1=0または1)に用いられる分割点の値が、最大分割(
図40に示す例では、alf_num_first_split_minus1=2)に用いられる分割点の値の集合の要素となっている。
【0516】
このような構成とすることによって、動画像符号化装置において初期分割点の最適化を行う際に、各特性値部分領域についての特性値の算出をやり直す必要がなくなるため、処理量が削減される。
【0517】
〔実施形態3〕
以下では、本発明の第3の実施形態について、
図41〜
図44を参照して説明する。なお、以下では、実施形態2において既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【0518】
(符号化データ#5)
本実施形態に係る動画像符号化装置6及び動画像復号装置5の詳細な説明に先立って、動画像符号化装置6によって生成され、動画像復号装置5によって復号される符号化データ#5のデータ構造について説明を行う。
【0519】
符号化データ#5のデータ構造は、実施形態1に係る符号化データ#1のデータ構造と略同じであるが、フィルタパラメータFPの構成が異なる。
図41は、本実施形態に係る符号化データ#5のフィルタパラメータFP(
図41においてalf_param()と表記)に含まれる各シンタックスを示す図である。
【0520】
(alf_filter_pattern)
alf_filter_pattern[i](1≦i<AlfMaxNumFilters、AlfMaxNumFiltersは、初期分割
点の最大値)は、初期分割(第1段階の分割)における初期分割点を定めるためのフラグである。再分割(第2段階の分割)を行うか否かに関わらず、alf_filter_pattern[i]によって初期分割点が定まる。
【0521】
(alf_enable_second_split)
alf_enable_second_splitは、再分割を行うのか否かを指定するフラグである。alf_enable_second_split=0の場合には、再分割が行われず、alf_enable_second_split=1の場合には、再分割が行われる。
【0522】
符号化対象画像の画像特性如何によっては、再分割を行わないことによって符号量を削減したほうが、符号化効率が向上する場合がある。符号化データ#5に、alf_enable_second_splitを含めておくことによって、符号化効率の向上を図ることができる。
【0523】
(alf_select_split_char)
alf_select_split_charは、特性値Yとして、複数の候補のうち何れの特性値を用いるのかを指定するシンタックスである。
図42(a)に示すように、alf_select_split_charは、特性値Xおよび特性値Yを以下のように指定する。
【0524】
alf_select_split_char=0のとき:
特性値X=活性度、特性値Y=方向性
alf_select_split_char=1のとき:
特性値X=活性度、特性値Y=平均画素値
alf_select_split_char=2のとき:
特性値X=活性度、特性値Y=y座標
alf_select_split_char=3のとき:
特性値X=活性度、特性値Y=x座標
ここで、y座標とは、処理対象フレームにおける対象単位領域のフレーム内y座標のことを指し、x座標とは、処理対象フレームにおける対象単位領域のフレーム内x座標のことを指す。
【0525】
また、特性値Yとして方向性が指定される場合、当該特性値Yは、例えば、垂直方向活性度ACT_Vおよび水平方向活性度ACT_Hを用いて、
Y=(ACT_H+k)/(ACT_V+k)×4
k=(ACT_H+ACT_V)/16+1
によって算出される。
【0526】
図42(b)は、alf_select_split_charの各値について設定される再分割点PY1〜PY3の具体例を示している。
図42(b)において、「height」とは、フレームのy方向の画素数のことを指し、「width」とは、フレームのx方向の画素数のことを指す。
【0527】
(alf_enable_second_split_val)
alf_enable_second_split_valは、後述するalf_second_split_val[k](k=0、1、2)がフィルタパラメータFPに含まれるか否かを示すフラグである。alf_enable_second_split_val=1であれば、alf_second_split_val[k]がフィルタパラメータFPに含まれる。alf_enable_second_split_valは、再分割が行われる場合に符号化される。
【0528】
(alf_second_split_val)
alf_second_split_val[k](k=0、1、2)は、特性値Yについての再分割における再分割点を決定するために参照されるシンタックスである。
【0529】
alf_second_split_val[k]と、再分割点PY1〜PY3との関係を
図42(c)に示す。
図42(c)に示すように、再分割点PY1〜PY3の各値は、alf_second_split_val[k]の各値に応じて決定される。
【0530】
alf_secocond_split_flag、並びに、上記のalf_filter_pattern、alf_enable_second_split、alf_select_split_char、alf_enable_second_split_val、及びalf_second_split_valは、特性値領域CRを各特性値部分領域CPRに分割する分割の仕方を指定する特性値分割情報を構成する。
【0531】
(alf_region_disable_idc)
alf_region_disable_idc[i0]は、再分割によって得られた特性値部分領域のうち、フィルタ処理をオフとする領域を指定するためのフラグ(オンオフ指定情報)である。alf_second_split_flag[i0]の値が0のとき、すなわち、再分割が行われないとき、alf_region_disable_idc[i0]は、−1、0の何れかの値をとり、alf_second_split_flag[i0]の値が1または2のとき、すなわち、再分割が2分割であるとき、alf_region_disable_idc[i0]は、−1、0、1の何れかの値をとり、alf_second_split_flag[i0]の値が3のとき、すなわち、再分割が4分割であるとき、alf_region_disable_idc[i0]は、−1、0、1、2、3の何れかの値をとる。
【0532】
alf_region_disable_idc[i0]が−1のとき、再分割によって得られた特性値部分領域についてのフィルタ処理がオンに指定される。
【0533】
alf_region_disable_idc[i0]が−1以外の値であるとき、再分割によって得られた特性値部分領域のうち、再分割インデックス[j0](j0=alf_region_disable_idc[i0])によって指定される特性値部分領域についてのフィルタ処理がオフに指定される。フィルタ処理がオフに指定された特性値部分領域についてのフィルタ係数(またはフィルタ係数残差)alf_coeff_lumaの符号化は行われない。
【0534】
なお、
図41には、予測フィルタ係数を導出する際の予測方向を指定するシンタックスalf_region_pred_lumaを含まない構成を例示したが、これは本実施形態を限定するものではなく、実施形態2において説明したように、本実施形態においても、フィルタパラメータFPにシンタックスalf_region_pred_lumaを含める構成としてもよい。
【0535】
また、
図41には、実施形態2において説明したシンタックスalf_second_split_typeを含まずに、実施形態2において説明したalf_second_split_type=1の場合の再分割に関するフィルタ係数(またはフィルタ係数残差)alf_coeff_lumaを含む構成を例示したが、これは本実施形態を限定するものではない。本実施形態においても、フィルタパラメータFPに、alf_second_split_type、および、alf_second_split_typeの各値に対するフィルタ係数(またはフィルタ係数残差)alf_coeff_lumaを含める構成としてもよい。
【0536】
(適応フィルタ70)
本実施形態に係る動画像復号装置は、実施形態2に係る動画像復号装置3の備える適応フィルタ50に代えて、適応フィルタ70を備えている。本実施形態に係る動画像復号装置のその他の構成は、実施形態2に係る動画像復号装置3の構成と同様であるので、説明を省略する。
【0537】
図43は、適応フィルタ70の構成を示すブロック図である。
図43に示すように、適応フィルタ70は、適応フィルタ50の備える領域構造復号部512、フィルタ係数残差復号部513、特性値分割点変更フラグ復号部518、特性値分割点設定部519、および、第2特性値算出部522に代えて、それぞれ、領域構造復号部712、フィルタ係数残差復号部713、特性値分割点変更フラグ復号部718、特性値分割点設定部719、および、第2特性値算出部722を備えている。また、適応フィルタ70は、適応的フィルタオフ復号部731、特性選択フラグ復号部732を備えている。適応フィルタ70のその他の構成は、適応フィルタ50と同様である。
【0538】
なお、
図43には、適応フィルタ50の備える2次元予測フラグ復号部514を備えない構成を例示しているが、これは本実施形態を限定するものではなく、適応フィルタ70が2次元予測フラグ復号部514を備える構成とし、符号化データ#5に、alf_region_pred_lumaを含めておく構成としてもよい。
【0539】
適応的フィルタオフ復号部731は、フィルタパラメータFPに含まれるシンタックスalf_disable_region_idc[i0]を復号する。復号されたシンタックスalf_disable_region_idc[i0]は、フィルタ係数残差復号部713、および、フィルタ部525に供給される。alf_disable_region_idc[i0]がフィルタ処理のオフを指定している場合、フィルタ部525は、フィルタ処理を行わない。
【0540】
領域構造復号部712は、フィルタパラメータFPに含まれるシンタックスalf_second_split_flag[i0]を復号する。復号されたシンタックスalf_second_split_flag[i0]は、特性値部分領域CPR[i0]に割り付けられると共に、フィルタ係数残差復号部713、および、特性値分割点設定部719に供給される。
【0541】
フィルタ係数残差復号部713はalf_length_luma_minus5_div2[i0]、alf_disable_region_idc[i0]、およびalf_second_split_flag[i0]を参照して、フィルタパラメータFPに含まれるシンタックスalf_coeff_luma[i][j]を復号すると共に、各シンタックスalf_coeff_luma[i][j]を、それぞれに対応する特性値部分領域CPR(i0、j0)に割り付ける。alf_coeff_luma[i][j]と特性値部分領域CPR(i0、j0)との対応関係は、実施形態2に係る符号化データ#3の説明において既に述べた対応関係と同様であるため、ここでは説明を省略する。また、復号されたシンタックスalf_coeff_luma[i][j]は、フィルタ係数復号部516に供給される。
【0542】
なお、フィルタ係数残差復号部713は、alf_disable_region_idc[i0]によってフィルタ処理がオフに指定された特性値部分領域については、フィルタ係数残差alf_coeff_luma[i][j]の復号を行わない。
【0543】
特性値分割点変更フラグ復号部718は、フィルタパラメータFPに含まれるシンタックスalf_second_split_val[k](k=0、1、2)を復号する。復号されたシンタックスalf_second_split_val[k]は、特性値分割点設定部719に供給される。
【0544】
特性値選択フラグ復号部732は、フィルタパラメータFPに含まれるシンタックスalf_second_split_charを復号する。復号されたシンタックスalf_second_split_charは、特性値分割点設定部719、および、第2特性値算出部722に供給される。
【0545】
特性値分割点設定部719は、alf_second_split_flag[i0]、alf_second_split_val[k]、および、alf_second_split_charに基づいて、特性値分割点PXn(1≦n≦NX−1)およびPYm(1≦m≦NX−1)を導出する。導出された特性値分割点PXnおよびPYmは、特性インデックス算出部523に供給される。
【0546】
シンタックスalf_second_split_val[k]およびalf_second_split_charの各値に対する特性値分割点PXnおよびPYmの具体例については、符号化データ#5の説明において既に述べたため、ここでは説明を省略する。
【0547】
第2特性値算出部722は、対象単位領域におけるデブロック済復号画像P_DBについて、alf_second_split_charによって指定される特性値を算出する。算出された特性値は、特性値Yとして、特性インデックス算出部523に供給される。
【0548】
(動画像符号化装置6)
以下では、符号化対象画像を符号化することによって符号化データ#5を生成する動画像符号化装置6について、
図44を参照して説明する。なお、以下では、既に説明した部分については、同じ文言および同じ符号を用い、その説明を省略する。
【0549】
本実施形態に係る動画像符号化装置は、実施形態2に係る動画像符号化装置4の備える適応フィルタ60に代えて、適応フィルタ80を備えている。本実施形態に係る動画像復号装置のその他の構成は、実施形態2に係る動画像符号化装置4の構成と同様であるので、説明を省略する。
【0550】
適応フィルタ80は、デブロック済復号画像P_DBに対して、適応的フィルタ処理を施すことによって、フィルタ済復号画像P_FLを生成する。生成されたフィルタ済復号画像P_FLは、バッファメモリ24に格納される。また、適応フィルタ80は、フィルタ処理に用いた各種の適応フィルタ情報をフィルタパラメータFPとして可変長符号符号化部22に供給する。可変長符号符号化部22は、フィルタパラメータFPを符号化データ#5の一部として符号化する。
【0551】
図44は、適応フィルタ80の構成を示すブロック図である。
図44に示すように、適応フィルタ80は、適応フィルタ情報設定部81、および、適応フィルタ部82を備えている。
【0552】
(適応フィルタ情報設定部81)
適応フィルタ情報設定部81は、
図44に示すように、領域別タップ数設定部611、適応的オンオフ設定部831、領域構造設定部812、特性値分割点変更フラグ設定部818、特性選択フラグ設定部832、特性値分割点設定部719、フィルタ係数残差生成部616、フィルタ係数予測部515、フィルタパラメータ生成部813、および、特性別フィルタ係数格納部617を備えている。
【0553】
領域別タップ数設定部611、特性値分割点設定部719、フィルタ係数残差生成部616、フィルタ係数予測部515、および、特性別フィルタ係数格納部617については既に述べたため、ここでは説明を省略する。
【0554】
(適応的フィルタオフ設定部831)
適応的フィルタオフ設定部831は、再分割によって得られた特性値部分領域のうちフィルタ処理をオフとする領域を指定するためのフラグalf_region_disable_idc[i0]を設定する。設定されたフラグalf_region_disable_idc[i0]は、フィルタパラメータ生成部813、およびフィルタ部525に供給される。alf_region_disable_idc[i0]がフィルタ処理のオフを指定している場合、フィルタ部525は、フィルタ処理を行わない。
【0555】
alf_region_disable_idc[i0]の取り得る値とフィルタ処理のオンオフとの対応関係については既に述べたためここでは説明を省略する。
【0556】
なお、alf_region_disable_idc[i0]の具体的な値は、符号化効率がより向上するように定められる。
【0557】
(領域構造設定部812)
領域構造設定部812は、初期分割によって得られた各特性値部分領域について再分割の具体的な態様を指定するためのシンタックスalf_second_split_flag[i0]を設定する。設定されたシンタックスalf_second_split_flag[i0]は、特性値分割点設定部719、および、フィルタパラメータ生成部813に供給される。
【0558】
alf_second_split_flag[i0]の取り得る値、並びに、alf_second_split_flag[i0]の具体的な値と再分割の態様との対応関係については、既に述べたためここでは説明を省略する。
【0559】
なお、alf_second_split_flag[i0]の具体的な値は、符号化効率がより向上するように定められる。
【0560】
(特性値分割点変更フラグ設定部818)
特性値分割点変更フラグ設定部818は、特性値Yについての再分割における再分割点を決定するために参照されるシンタックスalf_second_split_val[k](k=0、1、2)を設定する。設定されたシンタックスalf_second_split_val[k]は、特性値分割点設定部719、および、フィルタパラメータ生成部813に供給される。
【0561】
alf_second_split_val[k]の取り得る値、および、alf_second_split_val[k]の各値と、特性値Yについての再分割における再分割点との対応関係については既に述べたためここでは説明を省略する。
【0562】
なお、alf_second_split_val[k]の具体的な値は、符号化効率がより向上するように定められる。
【0563】
(特性選択フラグ設定部832)
特性選択フラグ設定部832は、特性値Yとして複数の候補のうち何れの特性値を用いるのかを指定するシンタックスalf_select_split_charを設定する。設定されたシンタックスalf_select_split_charは、特性値分割点設定部719、フィルタパラメータ生成部813、および、第2特性値算出部722に供給される。
【0564】
alf_select_split_charの取り得る値、および、alf_select_split_charの各値と、特性値Yとの対応関係については既に述べたため、ここでは説明を省略する。
【0565】
なお、alf_select_split_charの具体的な値は、符号化効率がより向上するように定められる。
【0566】
(フィルタパラメータ生成部813)
フィルタパラメータ生成部813は、シンタックスalf_length_luma_minus5_div2[i0]、alf_disable_region_idc[i0]、alf_second_split_flag[i0]、alf_second_split_val、alf_second_split_char、および、alf_coeff_luma[i][j]からフィルタパラメータFPを生成する。生成されたフィルタパラメータFPは、可変長符号符号化部22に供給される。
【0567】
なお、フィルタパラメータFPには、特性値部分領域毎のフィルタ処理を行うのか否かを指定するためのシンタックスalf_enable_region_filter、初期分割における初期分割点を定めるためのフラグalf_filter_pattern、alf_second_split_val[k]がフィルタパラメータFPに含まれるか否かを示すフラグalf_enable_second_split_val、および、初期分割の分割数AlfNumFirstSplitを指定するためのシンタックスalf_num_first_split_minus1が含まれる。これらのシンタックスの具体的な値は、符号化効率がより向上するように定められる。
【0568】
(適応フィルタ部82)
適応フィルタ部82は、
図44に示すように、第1特性値算出部521、第2特性値算出部722、特性インデックス算出部523、フィルタ係数導出部624、および、フィルタ525を備えている。これらの各部については、既に述べたため説明を省略する。
【0569】
<実施形態2および実施形態3についての付記事項>
実施形態2における符号化データ#3のフィルタパラメータFPに含まれるシンタックスのうち、少なくとも何れかのシンタックスと、実施形態3における符号化データ#5のフィルタパラメータFPに含まれるシンタックスのうち、少なくとも何れかのシンタックスとを含むフィルタパラメータFP’も本発明の範疇に含まれる。そのようなフィルタパラメータFP’を復号する動画像復号装置は、実施形態2および実施形態3において既に説明した部分のうち、フィルタパラメータFP’に含まれるシンタックスを復号するために必要な各部を備える構成とすればよい。
【0570】
例えば、実施形態2における符号化データ#3のフィルタパラメータFPは、符号化データ#5のフィルタパラメータFPに含まれるシンタックスalf_second_split_char、alf_enable_second_split_val、および、alf_second_split_valを含む構成としてもよい。このような構成の場合、動画像復号装置3の備える適応フィルタ50は、特性選択フラグ復号部732、特性値分割点変更フラグ復号部718を備える構成とすればよい。
【0571】
また、実施形態3における符号化データ#5のフィルタパラメータFPは、シンタックスalf_region_disable_idc[i0]を含まない構成としてもよい。このような構成の場合、符号化データ#5を復号する動画像復号装置5は、全ての単位領域に対して適応的フィルタ処理を行う構成となる。
【0572】
<その他の付記事項1>
なお、上記実施形態における、マクロブロックは、H.264/MPEG−4 AVCの後継規格として提案されているHEVC(High Efficiency Video Coding)のLCU(最大コーディングユニット:Largest Coding Unit、コーディングツリー(Coding Tree)のrootと呼ばれることもある)に相当し、マクロブロックおよびブロックは、HEVCのCU(コーディングユニット:Coding Unit、コーディングツリーのleafと呼ばれることもある)、PU(Prediction Unit)、またはTU(Transformation Unit)に相当するものである。
【0573】
<その他の付記事項2>
上述したように、発明者は、符号化対象画像の画像特性如何によっては、(局所)復号画像の局所的な活性度の大きさに応じてフィルタ係数群を切り替えるのではなく、むしろ、(局所)復号画像の局所的な方向性の違いに応じてフィルタ係数群を切り替えることによって、符号化効率をより効果的に向上させることができるとの知見を得た。
【0574】
本発明に係る画像フィルタ装置は、出力画像における各画素の画素値を、入力画像における該画素の位置に応じて定まる参照領域内の画素値と、フィルタ係数群とから算出する画像フィルタ装置において、上記入力画像を構成する複数の単位領域の各々における上記入力画像の方向性を識別する方向性識別手段と、上記方向性識別手段によって識別された各単位領域における上記入力画像の方向性が、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類する分類手段と、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するフィルタ手段と、を備えていることを特徴としている。
【0575】
発明者は、上記の知見に基づき、画像フィルタ装置に入力される入力画像の方向性が、入力画像を構成する領域(単位領域)毎に異なる場合には、方向性の違いに応じてフィルタ係数群を切り替えることによって、上記出力画像を参照して生成される予測画像の予測精度を向上させることができることを見出した。
【0576】
上記のように構成された本発明に係る画像フィルタ装置によれば、上記方向性識別手段が、入力画像を構成する複数の単位領域の各々における上記入力画像の方向性を識別し、上記分類手段が、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類し、上記フィルタ手段が、出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するので、上記入力画像の方向性が、単位領域毎に異なるような場合に、当該方向性に応じて適切なフィルタ処理を行うことができる。
【0577】
したがって、上記のように構成された画像フィルタ装置によれば、上記入力画像が、活性度によってフィルタ係数群を切り替えたとしても符号化効率が向上しない画像特性を有するものであっても、上記出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0578】
なお、各単位領域における上記入力画像の方向性とは、例えば、各単位領域における上記入力画像の局所的な勾配方向に直交する方向として定義することができる。ここで、画像の勾配とは、画素(x,y)の画素値をz(x,y)とすると、x,y,zを座標とする3次元空間内に定義される、曲面{(x,y,z(x,y))|0≦x≦Nx,0≦y≦Ny,0≦z≦Nz)}の勾配のことを指す。ここで、Nx,Ny,Nzは、それぞれ、x方向の画素の総数、y方向の画素の総数、画素値zのとり得る最大値を表す。また、各単位領域における上記入力画像の方向性とは、各単位領域における上記入力画像の画素値の相関のより高い方向であると表現することもできる。
【0579】
また、上記方向性識別手段は、各単位領域における上記入力画像の方向性を、入力画像のエッジを検出することによって直接的に識別する構成としてもよいし、上記画像フィルタ装置が、画面内予測によってイントラ予測画像を生成する予測画像生成手段と共に用いられる場合には、イントラ予測画像を生成する際に参照されるイントラ予測モードの示す方向によって間接的に識別する構成としてもよいし、その他の方法によって識別する構成としてもよい。
【0580】
また、上記単位領域とは、上記入力画像を構成する複数の重複しない領域の各々ことを表すものとする。上記画像フィルタ装置が、画像を符号化する符号化装置、および、符号化データから画像を復号する復号装置において用いられる場合には、上記単位領域を、例えば、予測画像を生成する単位である予測単位(パーティション)としてもよいし、周波数変換の単位である変換単位としてもよいし、それら以外のものとしてもよい。
【0581】
また、本発明に係る画像フィルタ装置は、上記複数の単位領域の各々における上記入力画像の活性度を算出する活性度算出手段を更に備え、上記分類手段は、各単位領域における上記入力画像の方向性および活性度が、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類する、ことが好ましい。
【0582】
上記の構成によれば、上記活性度算出手段が、上記複数の単位領域の各々における上記入力画像の活性度を算出し、上記分類手段が、各単位領域における上記入力画像の方向性および活性度が、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類するので、上記画像フィルタ装置に入力される入力画像の方向性が単位領域毎に異なる場合、および、入力画像の活性度が単位領域毎に異なる場合であっても、上記単位領域グループ毎に最適なフィルタ係数群を用いてフィルタ処理を行うことができる。すなわち、上記入力画像の方向性および活性度が、単位領域毎に異なるような場合であっても、予測画像の生成により適した出力画像を生成することができる。したがって、上記のように構成された本発明に係る画像フィルタ装置が生成する出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0583】
また、上記方向性識別手段は、各単位領域における上記入力画像のエッジ方向を検出することによって、各単位領域における上記入力画像の方向性を識別するものである、ことが好ましい。
【0584】
上記の構成によれば、上記方向性識別手段は、各単位領域における上記入力画像の方向性を、各単位領域における上記入力画像のエッジ方向を検出することによって識別するので、上記入力画像が、単位領域毎に異なるエッジ方向を有している場合に、上記単位領域グループ毎に最適なフィルタ係数群を用いてフィルタ処理を行うことができる。これにより、上記入力画像のエッジ方向が、単位領域毎に異なるような場合であっても、予測画像の生成により適した出力画像を生成することができる。
【0585】
また、本発明に係る画像フィルタ装置においては、上記単位領域グループ毎に上記参照領域の最適化された形状が関連付けられており、上記参照領域の形状を、該参照領域と少なくとも一部が重複する単位領域が属する単位領域グループについて最適化する参照領域変更手段を更に備えている、ことが好ましい。
【0586】
上記の構成によれば、上記単位領域グループ毎に上記参照領域の最適化された形状が関連付けられており、上記参照領域変更手段が、上記参照領域の形状を、該参照領域と少なくとも一部が重複する単位領域が属する単位領域グループについて最適化するので、上記単位領域毎に最適な参照領域を用いてフィルタ処理を行うことができる。従って、上記の構成によれば、予測画像の生成により適した出力画像を生成することができる。
【0587】
また、上記方向性識別手段は、上記入力画像に対応する参照画像を参照して画面内予測によって各単位領域における予測画像を生成する際に用いられる予測パラメータの示す方向、および、各単位領域の形状の少なくとも何れかに基づいて、各単位領域における上記入力画像の方向性を識別するものである、ことが好ましい。
【0588】
発明者は、例えば、H.264/MPEG−4.AVC規格やKTAソフトウェアなどに採用されている画面内予測においては、各単位領域における予測画像を画面内予測によって生成する際に参照される予測パラメータ(イントラ予測モード)は、該単位領域における上記入力画像の方向性と相関を有していることを見出した。
【0589】
また、発明者は、例えば、H.264/MPEG−4.AVC規格やKTAソフトウェアなどに採用されている画面内予測およびその拡張方式に用いられている画面内予測において設定される各単位領域(予測単位、または、パーティションとも呼称する)の形状は、該単位領域における上記入力画像の方向性と相関を有していることを見出した。例えば、単位領域の長手方向が横方向である場合には、該単位領域における上記入力画像は、横方向のエッジを有する傾向があり、単位領域の長手方向が縦方向である場合には、該単位領域における上記入力画像は、縦方向のエッジを有する傾向がある。
【0590】
上記の構成によれば、上記方向性識別手段は、各単位領域における上記入力画像の方向性を、上記入力画像に対応する参照画像を参照して画面内予測によって各単位領域における予測画像を生成する際に用いられる予測パラメータの示す方向、および、各単位領域の形状の少なくとも何れかに基づいて識別するので、上記入力画像の方向性を、エッジ検出などの画素値を参照する計算を行うことなく、識別することができる。
【0591】
したがって、上記の構成によれば、各単位領域における上記入力画像の方向性を識別するための処理量を削減しつつ、該方向性に応じて適切なフィルタ処理を行うことができる。
【0592】
なお、上記入力画像とは、例えば、上記画像フィルタ装置が、復号装置において用いられる場合には、上記予測画像に、符号化データから復号された残差画像を加算することによって得られるものであり、上記画像フィルタ装置が、符号化装置において用いられる場合には、上記予測画像に、該予測画像と符号化対象画像との残差画像を加算することによって得られるものである。
【0593】
また、上記画面内予測において参照される上記入力画像に対応する参照画像とは、上記画像フィルタ装置に入力される上記入力画像と同一フレーム内の画像であって、処理対象となる単位領域から所定の距離以内にある画像であることが好ましい。また、上記画像フィルタ装置が、復号装置において用いられる場合には、上記参照画像として、上記入力画像と同一フレーム内の画像であって、処理対象の単位領域から所定の距離以内にある復号済みの画像を用いることができる。
【0594】
また、本発明に係る画像フィルタ装置においては、上記単位領域グループ毎に上記参照領域の最適化された形状が関連付けられており、上記参照領域の形状を、該参照領域と少なくとも一部が重複する単位領域が属する単位領域グループについて最適化する参照領域変更手段を更に備えている、ことが好ましい。
【0595】
上記の構成によれば、上記単位領域グループ毎に上記参照領域の最適化された形状が関連付けられており、上記参照領域変更手段が、上記参照領域の形状を、該参照領域と少なくとも一部が重複する単位領域が属する単位領域グループについて最適化するので、上記単位領域毎に最適な参照領域を用いてフィルタ処理を行うことができる。従って、上記の構成によれば、予測画像の生成により適した出力画像を生成することができる。
【0596】
また、本発明に係る復号装置は、符号化データを復号し、フィルタ後の復号画像を生成する復号装置であって、上記画像フィルタ装置と、各単位領域における予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、出力画像として上記フィルタ後の復号画像を生成するものである、ことを特徴としている。
【0597】
上記のように構成された本発明に係る復号装置によれば、当該復号装置の備える上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、上記入力画像(復号画像)の方向性に応じて上記単位領域グループ毎に最適化されたフィルタ係数群を用いて出力画像(フィルタ後の復号画像)を生成するので、上記入力画像の方向性が、単位領域毎に異なるような場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。
【0598】
上記の構成に対応する構成を有する符号化装置によれば、各単位領域における符号化対象画像の方向性が単位領域毎に異なるような場合であっても、予測画像の予測精度を向上させることができるので、符号化効率の高い符号化データを生成することができる。また、上記の構成を有する復号装置によれば、そのような符号化効率の高い符号化データを適切に復号することができる。
【0599】
また、本発明に係る復号装置は、符号化データを復号し、フィルタ後の復号画像を生成する復号装置であって、上記画像フィルタ装置を備え、上記画像フィルタ装置は、上記入力画像に対応する参照画像を参照して画面内予測によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、出力画像として上記フィルタ後の復号画像を生成するものである、ことを特徴としている。
【0600】
上記のように構成された本発明に係る復号装置によれば、当該復号装置の備える上記画像フィルタ装置は、画面内予測によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、上記入力画像(復号画像)の方向性に応じて上記単位領域グループ毎に最適化されたフィルタ係数群を用いて出力画像(フィルタ後の復号画像)を生成するので、上記入力画像の方向性が、単位領域毎に異なるような場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。
【0601】
上記の構成に対応する構成を有する符号化装置によれば、各単位領域における符号化対象画像の方向性が単位領域毎に異なるような場合であっても、予測画像の予測精度を向上させることができるので、符号化効率の高い符号化データを生成することができる。また、上記の構成を有する復号装置によれば、そのような符号化効率の高い符号化データを適切に復号することができる。
【0602】
また、上記画像フィルタ装置が、画面内予測において用いられる予測パラメータの示す方向、および、各単位領域の形状の少なくとも何れかに基づいて、各単位領域における上記入力画像の方向性を識別するものである場合には、上記入力画像の方向性を、エッジ検出などの画素値を参照する計算を行うことなく識別できるので、方向性を識別するための処理量を削減しつつ、符号化効率の高い符号化データを復号することができる。
【0603】
また、上記画面内予測において参照される上記入力画像に対応する参照画像とは、上記画像フィルタ装置に入力される上記入力画像と同一フレーム内の画像であって、処理対象となる単位領域から所定の距離以内にある画像であることが好ましい。また、上記参照画像として、上記入力画像と同一フレーム内の画像であって、処理対象の単位領域から所定の距離以内にある復号済みの画像を用いることができる。
【0604】
また、上記フィルタ手段は、符号化データから復号された、複数のフィルタ係数群の各々に関連付けられた方向性情報を参照して、該符号化データに含まれる上記複数のフィルタ係数群から上記複数の単位領域グループの各々について最適化されたフィルタ係数群を選択すると共に、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて選択されたフィルタ係数群を用いて算出する、ことが好ましい。
【0605】
上記の構成によれば、上記フィルタ手段は、符号化データから復号された、複数のフィルタ係数群の各々に関連付けられた方向性情報を参照して、該符号化データに含まれる上記複数のフィルタ係数群から上記複数の単位領域グループの各々について最適化されたフィルタ係数群を選択すると共に、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて選択されたフィルタ係数群を用いて算出するので、上記符号化データを生成する符号化装置にて用いられた各フィルタ係数群を、該符号化装置にて分類された単位領域グループに適切に割り付けることができる。
【0606】
したがって、上記の構成によれば、当該画像フィルタ装置に入力される入力画像に対して、符号化装置にて用いられたフィルタ係数群を適切に用いてフィルタ処理を行うことができる。また、上記の構成を有する画像フィルタ装置を備える復号装置は、符号化装置によって生成された高い符号化効率を有する符号化データを適切に復号することができる。
【0607】
また、本発明に係る符号化装置は、符号化対象画像と予測画像との残差画像を符号化することによって符号化データを生成する符号化装置であって、上記画像フィルタ装置と、各単位領域における上記予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記残差画像とを加算することによって得られる復号画像を入力画像とし、出力画像を生成するものである、ことを特徴としている。
【0608】
上記の構成を有する本発明に係る符号化装置によれば、当該符号化装置の備える上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、符号化対象画像と予測画像との残差画像を加算することによって得られる復号画像を入力画像とし、上記入力画像(復号画像)の方向性に応じて上記単位領域グループ毎に最適化されたフィルタ係数群を用いて出力画像を生成するので、上記入力画像の方向性が、単位領域毎に異なるような場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。また、予測精度が向上するため、上記符号化装置は、符号化効率の高い符号化データを生成することができる。
【0609】
また、本発明に係る符号化装置は、符号化対象画像と予測画像との残差画像を符号化することによって符号化データを生成する符号化装置であって、上記画像フィルタ装置を備え上記画像フィルタ装置は、上記入力画像に対応する参照画像を参照して画面内予測によって生成された予測画像と、上記残差画像とを加算することによって得られる復号画像を入力画像とし、出力画像を生成するものである、ことを特徴としている。
【0610】
上記のように構成された本発明に係る復号装置によれば、当該復号装置の備える上記画像フィルタ装置は、画面内予測によって生成された予測画像と、符号化対象画像と予測画像との残差画像を加算することによって得られる復号画像を入力画像とし、上記入力画像(復号画像)の方向性に応じて上記単位領域グループ毎に最適化されたフィルタ係数群を用いて出力画像を生成するので、上記入力画像の方向性が、単位領域毎に異なるような場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。
【0611】
また、上記画像フィルタ装置が、画面内予測において用いられる予測パラメータの示す方向、および、各単位領域の形状の少なくとも何れかに基づいて、各単位領域における上記入力画像の方向性を識別するものである場合には、上記入力画像の方向性を、エッジ検出などの画素値を参照する計算を行うことなく識別できるので、方向性を識別するための処理量を削減しつつ、符号化効率の高い符号化データを生成することができる。
【0612】
また、上記画面内予測において参照される上記入力画像に対応する参照画像とは、上記画像フィルタ装置に入力される上記入力画像と同一フレーム内の画像であって、処理対象となる単位領域から所定の距離以内にある画像であることが好ましい。また、上記参照画像として、上記入力画像と同一フレーム内の画像であって、処理対象の単位領域から所定の距離以内にある復号済みの画像を用いることができる。
【0613】
また、上記フィルタ手段によって用いられるフィルタ係数群は、符号化対象画像と上記出力画像との相違を単位領域グループ毎に最小化するように定められたものである、ことが好ましい。
【0614】
上記の構成によれば、上記フィルタ手段によって用いられるフィルタ係数群は、符号化対象画像と上記出力画像との相違を単位領域グループ毎に最小化するように定められたものであるため、上記フィルタ手段を備える符号化装置は、予測精度の高い予測画像を生成することができ、また、それにより、符号化効率の高い符号化データを生成することができる。
【0615】
また、本発明に係る符号化データのデータ構造は、出力画像における各画素の画素値を、入力画像における該画素の位置に応じて定まる参照領域内の画素値と、フィルタ係数群とから算出する画像フィルタ装置が参照する符号化データのデータ構造であって、複数のフィルタ係数群と、上記複数のフィルタ係数群の各々に関連付けられた方向性情報と、を含み、上記画像フィルタ装置は、上記入力画像を構成する複数の単位領域の各々における上記入力画像の方向性が予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類し、上記方向性情報を参照して上記複数のフィルタ係数群から上記複数の単位領域グループの各々について最適化されたフィルタ係数群を選択すると共に、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて選択されたフィルタ係数群を用いて算出する、ことを特徴としている。
【0616】
上記のように構成された本発明に係る符号化データは、複数のフィルタ係数群と、上記複数のフィルタ係数群の各々に関連付けられた方向性情報とを含んでいるため、上記符号化データを参照する上記画像フィルタ装置は、上記方向性情報を参照して上記複数のフィルタ係数群から上記複数の単位領域グループの各々について最適化されたフィルタ係数群を選択すると共に、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて選択されたフィルタ係数群を用いて算出するので、上記入力画像の方向性が、単位領域毎に異なるような場合に、予測画像を生成するためのより好適な出力画像を生成することができるという効果を奏する。したがって、上記のように構成された本発明に係る画像フィルタ装置が生成する出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0617】
また、本発明に係る画像フィルタ装置は、画面内予測を用いて単位領域毎に生成された入力画像から出力画像を生成する画像フィルタ装置であって、出力画像における各画素の画素値を、該画素の位置に応じて定まる参照領域内の入力画像の画素値と、フィルタ係数群とから算出する画像フィルタ装置において、各単位領域の形状および大きさが、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類する分類手段と、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するフィルタ手段と、を備えていることを特徴としている。
【0618】
発明者は、画面内予測を用いて単位領域毎に生成された入力画像を構成する単位領域(予測単位)の形状および大きさ違いに応じて、単位領域毎にフィルタ係数群を切り替えることにより、予測画像を生成するためのより好適な出力画像を生成することができるので、上記入力画像が、活性度によってフィルタ係数群を切り替えたとしても符号化効率が向上しない画像特性を有するものであっても、上記出力画像を参照して生成される予測画像の予測精度を向上させることができることを見出した。
【0619】
上記のように構成された画像フィルタ装置によれば、上記分類手段が、各単位領域の形状および大きさが、予め定められた複数のグループの何れに属するかに応じて、各単位領域を複数の単位領域グループの何れかに分類し、上記フィルタ手段が、上記出力画像における各画素の画素値を、該画素を含む単位領域が属する単位領域グループについて最適化されたフィルタ係数群を用いて算出するので、上記入力画像が、活性度によってフィルタ係数群を切り替えたとしても符号化効率が向上しない画像特性を有するものであっても、上記出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0620】
また、本発明に係る画像フィルタ装置は、複数の単位領域から構成される入力画像に作用するフィルタ手段と、各単位領域における上記入力画像の画像特性を示す特性値であって、互いに導出方法の異なる第1及び第2の特性値を算出する特性値算出手段と、上記第1及び第2の特性値によって張られる特性値領域を、特性値分割情報に従って複数の特性値部分領域に分割する特性値分割手段と、を備え、上記フィルタ手段は、各単位領域における出力画像の各画素値を、該単位領域について算出された第1及び第2の特性値の属する特性値部分領域について設定されたフィルタ係数を用いて算出する、ことを特徴としている。
【0621】
上記のように構成された本発明に係る画像フィルタ装置は、互いに導出方法の異なる第1及び第2の特性値によって張られる特性値領域を、特性値分割情報に従って複数の特性値部分領域に分割し、各特性値部分領域における入力画像に対して、該単位領域について算出された第1及び第2の特性値の属する特性値部分領域について設定されたフィルタ係数を用いて作用する。
【0622】
したがって、上記の構成によれば、単位領域毎に、第1及び第2の特性値に応じて設定されたフィルタ係数を用いたフィルタ処理を行うので、各単位領域における上記入力画像の第1及び第2の特性値にばらつきがある場合であっても、単位領域毎に適切なフィルタ係数を用いたフィルタ処理を行うことができる。また、上記のように構成された画像フィルタ装置の出力画像を参照して生成される予測画像の予測精度を向上させることができる。
【0623】
なお、上記第1及び第2の特性値は、互いに導出方法が異なっているため、それらによって、2次元の特性値領域が張られる。また、2次元の特性値領域を張ることのできる2つの特性値であれば、上記第1及び第2の特性値として用いることができる。
【0624】
また、上記単位領域とは、上記入力画像を構成する複数の重複しない領域の各々ことを表すものとする。上記画像フィルタ装置が、画像を符号化する符号化装置、および、符号化データから画像を復号する復号装置において用いられる場合には、上記単位領域を、例えば、予測画像を生成する単位である予測単位(パーティション)としてもよいし、周波数変換の単位である変換単位としてもよいし、符号化の単位としてもよいし、それら以外のものとしてもよい。
【0625】
また、上記特性値分割手段は、上記特性値領域を、第1の分割によって1または複数の特性値部分領域に分割したうえで、当該第1の分割によって得られた各特性値部分領域を、第2の分割によって1または複数の特性値部分領域に更に分割するものである、ことが好ましい。
【0626】
上記の構成によれば、上記特性値分割手段は、上記第1及び第2の分割によって、特性値領域を階層的に分割する。したがって、上記第1の分割によって得られた各特性値部分領域を、上記第2の分割によって更に細かく分割することができる。
【0627】
したがって、上記の構成によれば、より細かく分割された特性値部分領域の各々に対してフィルタ係数を設定することができるので、より適切なフィルタ処理を行うことができる。
【0628】
また、上記第1の分割は、上記第1の特性値に関するものであり、上記第2の分割は、上記第2の特性値に関するものである、ことが好ましい。
【0629】
上記の構成によれば、上記特性値分割手段は、上記第1の特性値に関する第1の分割を行い、当該第1の分割によって得られた特性値部分領域の各々について、上記第2の特性値に関する第2の分割を行う。
【0630】
したがって、上記の構成によれば、第1の特性値に関して分割された各特性値部分領域を、第2の特性値に関して更に分割することができるので、より適切なフィルタ処理を行うことができる。
【0631】
なお、上記第1の特性値として、上記第2の特性値よりも優先度の高いものを用いることも可能である。例えば、上記画像フィルタ装置の出力画像を参照して予測画像を生成する場合、上記第1の特性値として、上記第2の特性値よりも予測精度の向上が期待できる特性値、すなわち、上記第2特性値よりも優先度の高い特性値を用いることも可能である。このように、優先度の高い特性値を第1の特性値として用いることによって、処理量の増大を抑えつつ、より適切なフィルタ処理を行うことができる。
【0632】
また、上記第1の分割は、上記第1の特性値に関するものであり、上記第2の分割は、上記第1の特性値及び上記第2の特性値に関するものである、ことが好ましい。
【0633】
上記の構成によれば、上記特性値分割手段は、上記第1の特性値に関する第1の分割を行い、当該第1の分割によって得られた特性値部分領域の各々について、上記第1及び第2の特性値に関する第2の分割を行う。
【0634】
したがって、上記の構成によれば、第1の特性値に関して分割された各特性値部分領域を、第1及び第2の特性値に関して更に分割することができるので、より適切なフィルタ処理を行うことができる。
【0635】
なお、上記第1の特性値として、上記第2の特性値よりも優先度の高いものを用いることも可能である。例えば、上記画像フィルタ装置の出力画像を参照して予測画像を生成する場合、上記第1の特性値として、上記第2の特性値よりも予測精度の向上が期待できる特性値、すなわち、上記第2特性値よりも優先度の高い特性値を用いることも可能である。このように、優先度の高い特性値を第1の特性値として用いることによって、処理量の増大を抑えつつ、より適切なフィルタ処理を行うことができる。
【0636】
また、本発明に係る上記画像フィルタ装置は、外部から取得したタップ数指定情報に従って、上記フィルタ手段のタップ数を、上記第1の分割によって得られた特性値部分領域毎に設定するタップ数設定手段を更に備えている、ことが好ましい。
【0637】
上記の構成によれば、上記画像フィルタ装置は、上記フィルタ手段のタップ数を、上記第1の分割によって得られた特性値部分領域毎に設定する。したがって、上記の構成によれば、上記第1の分割によって得られた特性値部分領域毎に設定されたタップ数を用いてフィルタ処理を行うので、より適切なフィルタ処理を行うことができる。
【0638】
また、上記の構成によれば、上記第1の分割によって得られた特性値部分領域毎にタップ数を設定するので、上記第2の分割によって得られた特性値部分領域毎にタップ数を設定する場合に比べて、処理量の増大を抑制することができる。また、上記のように構成された画像フィルタ装置を、符号化データを復号する復号装置、または、符号化データを生成する符号化装置に用いる場合、符号量の増大を抑制しつつ、予測制度の向上を図ることができるので、符号化効率が向上する。
【0639】
また、本発明に係る上記画像フィルタ装置は、外部から取得したオンオフ指定情報に従って、上記フィルタ手段のオンオフを、上記第2の分割によって得られた特性値部分領域毎に制御するオンオフ制御手段を更に備えている、ことが好ましい。
【0640】
上記の構成によれば、上記画像フィルタ装置は、上記フィルタ手段のオンオフを、上記第2の分割によって得られた特性値部分領域毎に制御するので、フィルタ処理を行うことによってむしろ符号化効率が低下してしまう単位領域については、フィルタ処理を施すことがない。したがって、上記の構成によれば、より適切なフィルタ処理を行うことができる。
【0641】
また、上記第1の特性値は、各単位領域における上記入力画像の乱雑さを示すものである、ことが好ましい。
【0642】
発明者は、各単位領域における入力画像の第1の特性値として、画像の乱雑さを示す特性値を用い、各単位領域における入力画像の第2の特性値として、画像の乱雑さとは導出方法の異なる特性値を用いることによって、適切なフィルタ処理を行うことができることを見出した。
【0643】
したがって、上記の構成によれば、適切なフィルタ処理を行うことができる。また、上記のように構成された画像フィルタ装置を備える復号装置および符号化装置によれば、符号化効率を向上させることができる。
【0644】
なお、画像の乱雑さとは、例えば、画像の活性度を指標として検出することもできるし、画素値の分散を指標として検出することもできる。
【0645】
また、第2の特性値としては、画像の乱雑さとは導出方法の異なる特性値を用いればよい。例えば、第2の特性値として、画像の方向性、画素値の平均、および、対象となる単位領域のフレーム内座標などの何れかを用いることができる。
【0646】
また、本発明に係る復号装置は、符号化データを復号し、フィルタ後の復号画像を生成する復号装置であって、上記画像フィルタ装置と、各単位領域における予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、出力画像として上記フィルタ後の復号画像を生成するものである、ことを特徴としている。
【0647】
上記のように構成された本発明に係る復号装置によれば、当該復号装置の備える上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、上記符号化データから復号された残差画像とを加算することによって得られた復号画像を入力画像とし、各特性値部分領域における入力画像に対して、該単位領域について算出された第1及び第2の特性値の属する特性値部分領域について設定されたフィルタ係数を用いて作用することによって出力画像(フィルタ後の復号画像)を生成するので、各単位領域における上記入力画像の第1及び第2の特性値にばらつきがある場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。
【0648】
上記の構成に対応する構成を有する符号化装置によれば、各単位領域における符号化対象画像についての第1及び第2の特性値が単位領域毎に異なるような場合であっても、予測画像の予測精度を向上させることができるので、符号化効率の高い符号化データを生成することができる。また、上記の構成を有する復号装置によれば、そのような符号化効率の高い符号化データを適切に復号することができる。
【0649】
また、本発明に係る上記復号装置は、復号対象の特性値部分領域である対象特性値部分領域について設定されるフィルタ係数を、上記符号化データに含まれるフィルタ係数残差のうち、当該対象特性値部分領域についてのフィルタ係数残差と、当該対象特性値部分領域の周辺の特性値部分領域について復号済みのフィルタ係数とを加算することによって復号するフィルタ係数復号手段を更に備えている、ことが好ましい。
【0650】
上記の構成によれば、復号対象の特性値部分領域である対象特性値部分領域について設定されるフィルタ係数を、上記符号化データに含まれるフィルタ係数残差のうち、当該対象特性値部分領域についてのフィルタ係数残差と、当該対象特性値部分領域の周辺の特性値部分領域について復号済みのフィルタ係数とを加算することによって復号するので、少ない符号量のフィルタ係数残差を参照することによって、各特性値部分領域についてのフィルタ係数を復号することができる。したがって、上記の構成によれば、符号量を削減しつつ、適切なフィルタ処理を行うことができるので、符号化効率が向上する。
【0651】
また、本発明に係る符号化装置は、符号化対象画像と予測画像との残差画像を符号化することによって符号化データを生成する符号化装置であって、上記画像フィルタ装置と、各単位領域における上記予測画像を、上記画像フィルタ装置が生成した出力画像を参照して生成する予測画像生成手段と、を備え、上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と上記残差画像とを加算することによって得られる復号画像を入力画像とし、出力画像を生成するものである、ことを特徴としている。
【0652】
上記のように構成された本発明に係る符号化装置によれば、当該符号化装置の備える上記画像フィルタ装置は、上記予測画像生成手段によって生成された予測画像と、符号化対象画像と予測画像との残差画像を加算することによって得られる復号画像を入力画像とし、各特性値部分領域における入力画像に対して、該単位領域について算出された第1及び第2の特性値の属する特性値部分領域について設定されたフィルタ係数を用いて作用することによって出力画像(フィルタ後の復号画像)を生成するので、各単位領域における上記入力画像の第1及び第2の特性値にばらつきがある場合であっても、予測画像を生成するために参照される画像として好適な出力画像を生成することができる。したがって、上記の構成によれば、上記予測画像生成手段が生成する予測画像の予測精度を向上が向上する。また、予測精度が向上するため、上記符号化装置は、符号化効率の高い符号化データを生成することができる。
【0653】
また、本発明に係る上記符号化装置において、上記フィルタ手段によって用いられるフィルタ係数は、単位領域毎に、上記符号化対象画像と上記出力画像との相違がより小さくなるように定められたものである、ことが好ましい。
【0654】
上記の構成によれば、上記フィルタ手段によって用いられるフィルタ係数は、単位領域毎に、上記符号化対象画像と上記出力画像との相違がより小さくなるように定められたものであるため、符号化対象画像との相違がより小さい出力画像を参照して予測画像を生成することができるので、符号化効率が向上する。
【0655】
また、本発明に係る符号化データのデータ構造は、複数の単位領域から構成される入力画像の各単位領域における画像特性を示す特性値であって、互いに導出方法の異なる第1及び第2の特性値を算出する特性値算出手段と、当該第1及び第2の特性値によって張られる特性値領域を複数の特性値部分領域に分割する特性値分割手段と、各単位領域における出力画像の各画素値を、該単位領域について算出された第1及び第2の特性値の属する特性値部分領域について設定されたフィルタ係数群を用いて算出するフィルタ手段と、を備えている画像フィルタ装置によって参照される符号化データのデータ構造において、上記特性値分割手段によって参照される特性値分割情報であって、上記特性値領域の分割の仕方を指定する特性値分割情報と、上記フィルタ手段によって用いられるフィルタ係数であって、上記特性値部分領域の各々についてのフィルタ係数と、を含んでいることを特徴としている。
【0656】
上記のように構成された符号化データを参照する上記画像フィルタ装置は、上記符号化データに含まれる特性値分割情報に従って、上記第1及び第2の特性値によって張られる特性値領域を複数の特性値部分領域に分割すると共に、上記符号化データに含まれる、各特性値部分領域についてのフィルタ係数を用いて入力画像に対するフィルタ処理を施す。
【0657】
したがって、上記のように構成された符号化データを参照する画像フィルタ装置によれば、入力画像に対して、特性値部分領域毎に設定されたフィルタ係数を用いて適切なフィルタ処理を行うことができる。
【0658】
また、上記特性値分割手段は、上記特性値領域を、第1の分割によって複数の特性値部分領域に分割したうえで、当該第1の分割によって得られた各特性値部分領域を、第2の分割によって複数の特性値部分領域に更に分割するものであり、上記特性値分割情報は、上記第1の分割における分割点を指定する第1分割点指定情報と、上記第2の分割における分割点を指定する第2分割点指定情報と、を含んでいることが好ましい。
【0659】
上記のように構成された符号化データを参照する上記画像フィルタ装置は、上記第1分割点指定情報によって指定される分割点を用いて上記第1の分割を行い、上記第2分割点指定情報によって指定される分割点を用いて上記第2の分割を行うので、第1及び第2の特性値によって張られる特性値領域を適切に分割することができる。
【0660】
また、上記のように構成された符号化データを生成する符号化装置は、符号化効率が向上するように第1及び第2の分割における分割点を設定し、設定された分割点を示す情報を上記第1及び第2分割点指定情報として、上記符号化データに含めておくことができる。したがって、そのように構成された上記符号化データを参照する画像フィルタ装置は、符号化装置において符号化効率が向上するように設定された分割点を用いたフィルタ処理を行うことができる。
【0661】
また、本発明に係る符号化データは、上記フィルタ手段のタップ数を、上記第1の分割によって得られた特性値部分領域毎に指定するするタップ数指定情報を更に含んでいる、ことが好ましい。
【0662】
上記のように構成された符号化データを参照する画像フィルタ装置は、上記タップ数指定情報に従って、上記フィルタ手段のタップ数を、上記第1の分割によって得られた特性値部分領域毎に設定する。したがって、上記のように構成された符号化データを参照する画像フィルタ装置によれば、上記第1の分割によって得られた特性値部分領域毎に設定されたタップ数を用いてフィルタ処理を行うので、より適切なフィルタ処理を行うことができる。
【0663】
また、本発明に係る符号化データは、上記フィルタ手段のオンオフを、上記第2の分割によって得られた特性値部分領域毎に指定するオンオフ指定情報を更に含んでいる、ことが好ましい。
【0664】
上記のように構成された符号化データを参照する画像フィルタ装置は、上記オンオフ指定情報に従って、上記フィルタ手段のオンオフを、上記第2の分割によって得られた特性値部分領域毎に制御するので、フィルタ処理を行うことによってむしろ符号化効率が低下してしまう単位領域については、フィルタ処理を施すことがない。したがって、上記の構成によれば、より適切なフィルタ処理を行うことができる。
【0665】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。