以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(IPCMモード対応の例)
4.第4の実施の形態(量子化行例対応の例)
5.第5の実施の形態(スキップモード対応の例)
6.第6の実施の形態(コンピュータ)
7.第7の実施の形態(応用例)
<1.第1の実施の形態>
[画像符号化装置の構成例]
図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置100は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))(以下H.264/AVCと称する)方式や、HEVC(High Efficiency Video Coding)方式などが用いられる。
図1の例において、画像符号化装置100は、A/D(Analog / Digital)変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、フレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、選択部116、およびレート制御部117を有する。
画像符号化装置100は、さらに、量子化パラメータ差分検出部121を有する。
A/D変換部101は、入力された画像データをA/D変換し、画面並べ替えバッファ102に出力し、記憶させる。
画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部114および動き予測・補償部115にも供給する。
演算部103は、画面並べ替えバッファ102から読み出された画像から、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、イントラ予測部114から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部115から供給される予測画像を減算する。
直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部105に供給する。
量子化部105は、直交変換部104が出力する変換係数を量子化する。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
可逆符号化部106は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
可逆符号化部106は、イントラ予測モードを示す情報などをイントラ予測部114から取得し、インター予測モードを示す情報や動きベクトル情報などを動き予測・補償部115から取得する。
可逆符号化部106は、量子化された変換係数を符号化するとともに、イントラ予測モード情報、インター予測モード情報、動きベクトル情報、および量子化パラメータなどの各種シンタクス要素を、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。また、可逆符号化部106は、シンタクス要素を、デブロックフィルタ111および量子化パラメータ差分検出部121に供給する。
例えば、可逆符号化部106においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。また、逆量子化部108は、逆量子化した際の量子化パラメータを、デブロックフィルタ111および量子化パラメータ差分検出部121に供給する。
逆直交変換部109は、供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
演算部110は、逆直交変換部109より供給された逆直交変換結果、すなわち、復元された差分情報に、選択部116を介してイントラ予測部114若しくは動き予測・補償部115から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部110は、その差分情報にイントラ予測部114から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部110は、その差分情報に動き予測・補償部115から供給される予測画像を加算する。
その加算結果は、デブロックフィルタ111およびフレームメモリ112に供給される。
デブロックフィルタ111は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。それに先立ち、デブロックフィルタ111は、量子化パラメータ差分検出部121からの制御信号に応じて、逆量子化部108からの量子化パラメータや、可逆符号化部106からのシンタクス要素を参照し、デブロックフィルタ処理のパラメータを調整する。デブロックフィルタ111は、そのフィルタ処理結果をフレームメモリ112に供給する。
フレームメモリ112は、所定のタイミングにおいて、蓄積されている参照画像を、選択部113を介してイントラ予測部114または動き予測・補償部115に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ112は、参照画像を、選択部113を介してイントラ予測部114に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ112は、参照画像を、選択部113を介して動き予測・補償部115に供給する。
選択部113は、フレームメモリ112から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部114に供給する。また、選択部113は、フレームメモリ112から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部115に供給する。
イントラ予測部114は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部114は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
イントラ予測部114は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部114は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、上述したように、イントラ予測部114は、採用したイントラ予測モードを示すイントラ予測モード情報等の情報を、適宜可逆符号化部106に供給する。
動き予測・補償部115は、インター符号化が行われる画像について、画面並べ替えバッファ102から供給される入力画像と、選択部113を介してフレームメモリ112から供給される参照画像とを用いて、動き予測を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き予測・補償部115は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部115は、生成された予測画像を、選択部116を介して演算部103や演算部110に供給する。
また、動き予測・補償部115は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報を可逆符号化部106に供給する。
選択部116は、イントラ符号化を行う画像の場合、イントラ予測部114の出力を演算部103や演算部110に供給し、インター符号化を行う画像の場合、動き予測・補償部115の出力を演算部103や演算部110に供給する。
レート制御部117は、蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
量子化パラメータ差分検出部121は、可逆符号化部106からのシンタクス要素を参照し、逆量子化部108からの量子化パラメータを用いて、注目領域と注目領域に隣接する隣接領域の量子化パラメータ差分値を生成する。量子化パラメータ差分検出部121は、生成した差分値と、所定の閾値とを比較し、比較結果に基づく制御信号を、デブロックフィルタ111に供給する。
[コーディングユニット]
H.264/AVC方式においては、1つのマクロブロックを、複数の動き補償ブロックに分割し、それぞれに対して異なる動き情報を持たせることが可能であった。すなわち、H.264/AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されているが、例えば、HEVC(High Efficiency Video Coding)方式においては、図2に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、H.264/AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図2の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、H.264/AVC方式におけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図2に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、H.264/AVC方式のマクロブロックより大きく設定されることが一般的である。
本開示は、H.264/AVC方式におけるマクロブロックを用いる符号化方式だけでなく、HEVC方式のようなCU、PU、およびTU等を用いる符号化方式にも適用することができる。すなわち、ブロックも、ユニットも、処理単位となる領域を示すものであるので、以下、適宜、どちらも含むように、処理単位の領域という文言を用いて説明する。
ただし、以下において、H.264/AVC方式と例として説明する場合には、ブロックを用いて説明するが、そのブロックは、処理単位となる領域を示すものであり、HEVC方式においてはユニットである。逆に、HEVC方式を例として説明する場合には、ユニットを用いて説明するが、そのユニットは、処理単位となる領域を示すものであり、H.264/AVC方式においてはブロックである。
[デブロックフィルタ]
次に、H.264/AVC方式におけるデブロックフィルタについて説明する。デブロックフィルタ111は、動き補償ループ内に含まれ、復号画像におけるブロック歪み、すなわち、処理単位の領域の歪みを除去する。これにより、動き補償処理により参照される画像へのブロック歪の伝播が抑制される。
デブロックフィルタの処理としては、符号化データに含まれる、Picture Parameter Set RBSP(Raw Byte Sequence Payload)に含まれるdeblocking_filter_control_present_flag、及び、スライスヘッダ(Slice Header)に含まれるdisable_deblocking_filter_idcという2つのパラメータによって、以下の(a)乃至(c)の3通りの方法が選択可能である。
(a)ブロック境界、及びマクロブロック境界に施す
(b)マクロブロック境界にのみ施す
(c)施さない
量子化パラメータQPについては、以下の処理を輝度信号に対して適用する場合は、QPYを、色差信号に対して適用する場合はQPCを用いる。また、動きベクトル符号化、イントラ予測、エントロピー符号化(CAVLC/CABAC)においては、異なるスライスに属する画素値は"not available"として処理するが、デブロックフィルタ処理においては、異なるスライスに属する画素値でも、同一のピクチャに属する場合は"available"であるとして処理を行う。
以下においては、図3に示されるように、デブロックフィルタ処理前の画素値をp0〜p3、q0〜q3とし、処理後の画素値をp0'〜p3'、q0'〜q3'とする。
まず、デブロックフィルタ処理に先立ち、図3におけるp及びqに対して、図4に示される表のように、ブロック境界強度データであるBs(Boundary Strength)が定義される。
図4に示すように、Bsは、画素pまたは画素qのいずれか一方がイントラ符号化されるマクロブロックに属し、且つ、当該画素がマクロブロックの境界に位置する場合に、最もフィルタ強度が高い「4」が割り当てられる。
Bsは、画素pまたは画素qのいずれか一方がイントラ符号化されるマクロブロックに属し、且つ、当該画素がマクロブロックの境界に位置しない場合に、「4」の次にフィルタ強度が高い「3」が割り当てられる。
Bsは、画素pおよび画素qの双方がイントラ符号化されるマクロブロックに属するものではなく、且つ、いずれかの画素が変換係数を持つ場合に、「3」の次にフィルタ強度が高い「2」が割り当てられる。
Bsは、画素pおよび画素qの双方がイントラ符号化されるマクロブロックに属するものではなく、且つ、いずれかの画素が変換係数を持たないという条件を場合に満たし、且つ、参照フレームが異なるか、参照フレームの枚数が異なるか、動きベクトルが異なるかのいずれかの条件を満たす場合に、「1」が割り当てられる。
Bsは、画素p,qの双方がイントラ符号化されるマクロブロックに属するものではなく、どちらの画素も変換係数を持たず、参照フレームおよび動きベクトルが同じ場合、「0」が割り当てられる。なお。「0」は、フィルタ処理を行わないことを意味する。
図3における(p2,p1,p0,q0,q1,q2)は、以下の式(1)および式(2)により示される条件が成立する場合のみ、デブロックフィルタ処理が施される。
Bs > 0 ・・・(1)
|p0-q0| < α; |p1-p0| < β; |q1-q1| < β ・・・(2)
式(2)のαおよびβは、デフォルトでは以下のようにQPに応じてその値が定められているが、符号化データの、スライスヘッダに含まれる、slice_alpha_c0_offset_div2及びslice_beta_offset_div2という2つのパラメータによって、グラフの矢印のように、ユーザがその強度を調整することが可能である。
なお、図5は、QPと閾値αの関係を示しており、QPにオフセット量を加えると、QPと閾値αの関係を示す曲線は矢印の方向に移動することから、フィルタ強度を調整することが明らかである。
また、閾値αは、隣接するブロックPとブロックQのそれぞれの量子化パラメータqPp,qPqを用いて、次の式(3)および(4)からindexAを算出することで、図6のAに示すテーブルから求められる。同様に、閾値βは、隣接するブロックPとブロックQのそれぞれの量子化パラメータqPp,qPqを用いて、式(3)および(5)からindexBを算出することで、図6のBに示すテーブルから求められる。このindexAおよびindexBは、以下の式(3)乃至式(5)のように定義される。
qPaν=(qPp+qPq+1)>>1 ・・・(3)
indexA=Clip3(0,51,qPaν+FilterOffsetA) ・・・(4)
indexB=Clip3(0,51,qPaν+FilterOffsetB) ・・・(5)
式(4)および式(5)において、FilterOffsetA及びFilterOffsetBが、ユーザによる調整分に相当する。
デブロックフィルタ処理は、以下に説明するように、Bs<4の場合と、Bs=4の場合とで、互いに異なる方法が定義されている。
まず、Bs<4の場合、デブロックフィルタ処理後の画素値p'0及びq'0が、以下の式(6)乃至式(8)のように求められる。
Δ=Clip3(−tc,tc((((q0−p0)<<2)+(p1−q1)+4)>>3))・・・(6)
p'0=Clip1(p0+Δ) ・・・(7)
q'0=Clip1(q0+Δ) ・・・(8)
ここで、tcは、以下の式(9)または式(10)ように算出される。すなわち、chromaEdgeFlagの値が「0」である場合、tcは以下の式(9)のように算出される。
tc=tc0+((ap<β)?1:0)+((aq<β)?1:0) ・・・(9)
また、chromaEdgeFlagの値が「0」以外である場合、tcは以下の式(10)のように算出される。
tc=tc0+1 ・・・(10)
tC0の値は、BsとindexAの値に応じて、図7のAおよび図7のBに示される表のように定義される。
また、式(9)のap及びaqの値は、以下の式(11)および(12)のように算出される。
ap=|p2−p0| ・・・(11)
aq=|q2−q0| ・・・(12)
デブロックフィルタ処理後の画素値p'1は以下のように求められる。すなわち、chromaEdgeFlagの値が「0」で、尚且つ、apの値がβ以下である場合、p'1は、以下の式(13)のように求められる。
p'1=p1+Clip3(−tc0,tc0,(p2+((p0+q0+1)>>1)−(p1<<1))>>1) ・・・(13)
また、式(13)が成り立たない場合、p'1は、以下の式(14)のように求められる。
p'1=p1 ・・・(14)
デブロックフィルタ処理後の画素値q'1は以下のように求められる。すなわち、chromaEdgeFlagの値が「0」で、尚且つ、aqの値がβ以下である場合、q'1は、以下の式(15)のように求められる。
q'1=q1+Clip3(−tc0,tc0,(q2+((p0+q0+1)>>1)−(q1<<1))>>1) ・・・(15)
また、式(15)が成り立たない場合、q'1は、以下の式(16)のように求められる。
q'1=q1 ・・・(16)
p'2及びq'2の値は、Filtering前の値p2及びq2と変わらない。すなわち、p'2は、以下の式(17)のように求められ、q'2は、以下の式(18)のように求められる。
p'2=p2 ・・・(17)
q'2=q2 ・・・(18)
次に、Bs=4の場合、デブロックフィルタ後の画素値p'i(i=0..2)は、以下のように求められる。chromaEdgeFlag の値が「0」であり、以下の式(19)に示される条件が成り立つ場合、p'0、p'1、及びp'2は、以下の式(20)乃至式(22)のように求められる。
ap<β&&|p0−q0|<((α>>2)+2) ・・・(19)
p'0=(p2+2×p1+2×p0+2×q0+q1+4)>>3 ・・・(20)
p'1=(p2+p1+p0+q0+2)>>2 ・・・(21)
p'2=(2×p3+3×p2+p1+p0+q0+4)>>3 ・・・(22)
また、式(19)に示される条件が成り立たない場合、p'0、p'1、及びp'2は、以下の式(23)乃至(25)のように求められる。
p'0=(2×p1+p0+q1+2)>>2 ・・・(23)
p'1=p1 ・・・(24)
p'2=p2 ・・・(25)
デブロックフィルタ処理後の画素値q'i(I=0..2)は、以下のように求められる。すなわち、chromaEdgeFlagの値が「0」であり、以下の式(26)に示される条件が成り立つ場合、q'0、q'1、及びq'2は、以下の式(27)乃至(29)のように求められる。
aq<β&&|p0−q0|<((α>>2)+2) ・・・(26)
q'0=(p1+2×p0+2×q0+2×q1+q2+4)>>3 ・・・(27)
q'1=(p0+q0+q1+q2+2)>>2 ・・・(28)
q'2=(2×q3+3×q2+q1+q0+p4+4)>>3 ・・・(29)
また、式(26)に示される条件が成り立たない場合、q'0、q'1、及びq'2は、以下の式(30)乃至(32)のように求められる。
q'0=(2×q1+q0+p1+2)>>2 ・・・(30)
q'1=q1 ・・・(31)
q'2=q2 ・・・(32)
[デブロックフィルタの調整処理]
以上のように、デブロックフィルタ処理が行われるが、そのデブロックフィルタ処理に先立ち、画像符号化装置100においては、隣接ブロック間の量子化パラメータの差分に応じて、デブロックフィルタ処理のパラメータが調整される。
図8は、注目領域と隣接領域を示す図である。図8において、各四角は、デブロックフィルタ処理の処理単位の領域を示し、QPcの四角は、注目領域Cを示し、QPcは、その注目領域Cの量子化パラメータを示す。同様に、QPNの四角は、注目領域の左に隣接する隣接領域Nを示し、QPNは、その隣接領域Nの量子化パラメータを示す。
量子化パラメータ差分検出部121は、注目領域Cの量子化パラメータQPcと、隣接領域Nの量子化パラメータQPNの差分値が、予め定められた閾値θについて、次の式(33)を満たすか否かを判定する。
| QPc − QPN | > θ ・・・(33)
ここで、閾値θは、入力となるシーケンスが、インターレースやサイドバイサイドのような場合には、水平方向と垂直方向で異なる値に設定されていてもよい。
また、領域の異なるサイズに対して、それぞれ異なる閾値が設定されてもよい。特に、より大きいサイズの領域に対するブロック歪みは人の目につきやすいため、より大きい領域サイズに対しては、より小さな閾値が設定される。
上述した式(33)が成り立つ場合、注目領域Cと隣接領域Nの間には、ブロック歪みがより生じやすいと考えられる。したがって、デブロックフィルタ111は、次のいずれかの方法を用いて、フィルタが強くかかるように、デブロックフィルタ処理の調整をする。すなわち、デブロックフィルタ111においては、フィルタ強度を高くする調整が行われる。
第1の方法として、デブロックフィルタ111は、上述した図4に示される表に定義されるBs値を常に4にする(Bs=4(Strong Filtering))。すなわち、最も強くフィルタがかかるようにBs値を固定する。あるいは、デブロックフィルタ111は、上述した図4に示される表により求められるBs値に対して、Bs+1をBs値の代わりに用いる。ただし、Bs+1の値が5になる場合、その値は、4にすることも可能である。
第2の方法として、デブロックフィルタ111は、上述した図6のAおよび図6のBに示される表のαおよびβに対応づける量子化パラメータとして、QPに代え、QP+Δ(Δ>0)を対応づける。
なお、第1の方法は、1度、量子化パラメータ差分値(式(33)の左辺)が閾値を超えてしまうと、以後のデブロックフィルタ処理に必要な分岐処理を行う必要がないので、ソフトウエアにより実現する場合にメリットがある。
一方、第2の方法は、QPに代え、QP+Δを入力可能であるようにすれば、追加の回路が必要ないので、ハードウエアにより実行する場合にメリットがある。
また、さらに、デブロックフィルタ111は、次の第3の方法を用いて、デブロックフィルタ処理の調整を行うこともできる。
デブロックフィルタ111は、第3の方法として、隣り合った領域の各量子化パラメータのうち、より大きな方を用いてデブロックフィルタ処理を行う。すなわち、上述した図8の例において、QPN=12だが、QPc=40であった場合、デブロックフィルタ111は、どちらの領域についても、QP=40をデブロックフィルタ処理のための量子化パラメータとして用いる。
すなわち、第1乃至第3の方法においては、デブロックフィルタが強くかかるように、フィルタパラメータのうちの所定のパラメータ(Bs、αおよびβ、量子化パラメータ)の値を調整している。
以上のような調整を行うことにより、注目領域と隣接領域の量子化パラメータの差が大きい場合、H.264/AVC方式において定められたものよりも強い度合いでフィルタがかかるようにすることができる。その結果、H.264/AVC方式において定められたものよりも適切なブロック歪みの除去を行うことが可能である。
ここで、デブロックフィルタ処理は、直交変換の処理単位の領域(HEVC方式の場合、TU)を処理単位としている。なお、H.264/AVC方式において、量子化パラメータはマクロブロックに対して設定することが可能であり、HEVC方式において、量子化パラメータは、所定の大きさ(MaxCuSizeDQP)より大きなCUに対してのみ設定することが可能である。
図9は、注目領域と4つの隣接領域を示す図である。図9において、各四角は、デブロックフィルタ処理の処理単位の領域(HEVC方式の場合、TU)を示しており、四角の中のQPは、各領域の量子化パラメータを示す。
すなわち、注目領域Cの量子化パラメータは、QPcである。注目領域Cに左に隣接する隣接領域N1の量子化パラメータは、QPaである。注目領域Cの上に隣接する隣接領域N2の量子化パラメータは、QPbである。
ここで、太線は、量子化パラメータを設定可能な領域M(HEVC方式の場合、CU)の境界を示している。注目領域Cの隣接領域のうち、隣接領域N1と隣接領域N2とは、注目領域Cが含まれている領域Mの境界に隣接している。これに対して、注目領域Cの隣接領域のうち、隣接領域N3と隣接領域N4とは、注目領域Cと同じ領域M内に含まれている。
すなわち、注目領域Cの右に隣接する隣接領域N3、および注目領域Cの下に隣接する隣接領域N4に量子化パラメータが示されていないのは、注目領域Cの量子化パラメータと、隣接領域N3および隣接領域N4の量子化パラメータは同じQPcだからである。
したがって、隣接領域のうち、デブロックフィルタ処理の調整が必要であるのは、太線矢印で示される注目領域Cと隣接領域N1、および注目領域Cと隣接領域N2だけである。点線矢印に示される注目領域Cと隣接領域N3、および注目領域Cと隣接領域N4に、デブロックフィルタ処理の調整は必要ない。
このように、本開示のデブロックフィルタ処理の調整は、量子化パラメータを設定可能な大きさの領域の境界のみに実行される。
[デブロックフィルタおよび量子化パラメータ差分検出部の構成例]
次に、画像符号化装置100の各部について説明する。図10は、デブロックフィルタ111および量子化パラメータ差分検出部121の構成例を示すブロック図である。
図10の例において、デブロックフィルタ111は、α/β決定部161、Bs決定部162、フィルタ決定部163、およびフィルタリング部164を含むように構成されている。
量子化パラメータ差分検出部121は、隣接量子化パラメータバッファ151、注目量子化パラメータバッファ152、差分生成部153、および閾値判定部154を含むように構成されている。
逆量子化部108からの隣接領域量子化パラメータは、隣接量子化パラメータバッファ151に供給される。逆量子化部108からの注目領域量子化パラメータは、注目量子化パラメータバッファ152およびα/β決定部161に供給される。また、可逆符号化部106からのシンタクス要素は、差分生成部153およびBs決定部162に供給される。
隣接量子化パラメータバッファ151は、逆量子化部108からの隣接領域量子化パラメータを蓄積する。注目量子化パラメータバッファ152は、逆量子化部108からの注目領域量子化パラメータを蓄積する。
差分生成部153は、可逆符号化部106からのシンタクス要素に基づいて、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であるか否かを判定する。差分生成部153は、量子化パラメータが設定できる大きさの領域の境界であると判定した場合、次の処理を行う。また、量子化パラメータが設定できる大きさの領域の境界ではないと判定された場合、次の処理は行われない。
差分生成部153は、隣接量子化パラメータバッファ151から隣接領域量子化パラメータを読み出し、注目量子化パラメータバッファ152から注目領域量子化パラメータを読み出す。差分生成部153は、読み出した量子化パラメータの差分値である、量子化パラメータ差分値(式(33)の左辺)を生成し、生成した差分値を、閾値判定部154に供給する。
閾値判定部154は、差分生成部153からの差分値と閾値とを比較し、差分値が閾値よりも大きいか否か、すなわち、よりブロック歪みが生じやすい境界であるか否かを示す制御信号を、α/β決定部161およびBs決定部162に供給する。
α/β決定部161は、逆量子化部108からの注目領域量子化パラメータに基づいて、フィルタパラメータの調整として、上述した式(2)のαおよびβの値を決定する。このとき、α/β決定部161は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、上述した図6のAおよび図6のBに示される表のαおよびβに対応づける量子化パラメータとして、QPに代え、QP+Δを対応づける。
α/β決定部161は、決定したαおよびβの値を、フィルタパラメータの1つとして、フィルタ決定部163に供給する。
Bs決定部162は、可逆符号化部106からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。このとき、Bs決定部162は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bsの代わりにBs+1を用いる。あるいは、Bs決定部162は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bs=4を用いる。
Bs決定部162は、決定したBsの値を、フィルタパラメータの1つとして、フィルタ決定部163に供給する。
フィルタ決定部163には、演算部110からデブロックフィルタ前の画素値が入力される。フィルタ決定部163は、α/β決定部161およびBs決定部162からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部163は、注目領域と隣接領域の境界に、強いフィルタを施すのか、弱いフィルタを施すのか、あるいは、フィルタを施さないのか、フィルタリングに用いるフィルタを決定する。
フィルタ決定部163は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部164に供給する。
フィルタリング部164は、フィルタ決定部163により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部164は、デブロックフィルタ後の画素値を、フレームメモリ112に出力する。
[符号化処理の流れ]
次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図11のフローチャートを参照して、符号化処理の流れの例を説明する。
ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
ステップS103において、演算部103は、ステップS102の処理により並び替えられた画像と、予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部115から、イントラ予測する場合はイントラ予測部114から、選択部116を介して演算部103に供給される。
差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS104において、直交変換部104は、ステップS103の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS105において、量子化部105は、ステップS104の処理により得られた直交変換係数を量子化する。
ステップS105の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS106において、逆量子化部108は、ステップS105の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。また、逆量子化部108は、逆量子化に用いた量子化パラメータを、デブロックフィルタ111および量子化パラメータ差分検出部121に供給する。
ステップS107において、逆直交変換部109は、ステップS106の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
ステップS108において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。
ステップS109において、デブロックフィルタ111は、ステップS108の処理により生成された画像に対して、デブロックフィルタ処理を行う。デブロックフィルタ処理の流れの詳細については、図12を参照して後述する。これによりブロック歪み(すなわち、処理単位の領域歪み)が除去される。
ステップS110において、フレームメモリ112は、ステップS109の処理によりブロック歪みが除去された画像を記憶する。なお、フレームメモリ112にはデブロックフィルタ111によりフィルタ処理されていない画像も演算部110から供給され、記憶される。
ステップS111において、イントラ予測部114は、イントラ予測モードのイントラ予測処理を行う。ステップS112において、動き予測・補償部115は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
ステップS113において、選択部116は、イントラ予測部114および動き予測・補償部115から出力された各コスト関数値に基づいて、最適予測モードを決定する。つまり、選択部116は、イントラ予測部114により生成された予測画像と、動き予測・補償部115により生成された予測画像のいずれか一方を選択する。
また、このいずれの予測画像が選択されたかを示す選択情報は、イントラ予測部114および動き予測・補償部115のうち、予測画像が選択された方に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部114は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部106に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部115は、最適インター予測モードを示す情報と、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部106に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報やフラグ情報、参照フレーム情報などがあげられる。
ステップS114において、可逆符号化部106は、ステップS105の処理により量子化された変換係数を符号化する。すなわち、差分画像(インターの場合、2次差分画像)に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
また、可逆符号化部106は、ステップS113の処理により選択された予測画像の予測モードに関する情報(シンタクス要素)を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部114から供給されるイントラ予測モード情報、または、動き予測・補償部115から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。また、可逆符号化部106は、このシンタクス要素を、デブロックフィルタ111および量子化パラメータ差分検出部121に供給する。
ステップS115において蓄積バッファ107は、可逆符号化部106から出力される符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路を介して復号側に伝送される。
ステップS116においてレート制御部117は、ステップS115の処理により蓄積バッファ107に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
ステップS116の処理が終了すると、符号化処理が終了される。
[デブロックフィルタ処理の流れ]
次に、図12のフローチャートを参照して、図10のステップS109において実行されるデブロックフィルタ処理の流れの例を説明する。
逆量子化部108から、注目領域量子化パラメータは、注目量子化パラメータバッファ152に蓄積され、隣接領域量子化パラメータは、隣接量子化パラメータバッファ151に蓄積される。
差分生成部153は、ステップS131において、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であるか否かを判定する。例えば、図9の注目領域Cと、右に隣接する隣接領域N2との境界は、量子化パラメータを設定可能な領域Mの境界である。したがって、この場合、ステップS131において、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であると判定され、処理は、ステップS132に進む。
ステップS132において、差分生成部153は、注目領域と隣接領域との量子化パラメータ差分値を生成する。生成された量子化パラメータ差分値は、閾値判定部154に供給される。
ステップS133において、閾値判定部154は、量子化パラメータの差分値が閾値より大きいか否かを判定する。ステップS133において、量子化パラメータの差分値が閾値より大きいと判定された場合、処理は、ステップS134に進む。このとき、閾値判定部154は、量子化パラメータの差分値が閾値より大きいことを示す制御信号を、α/β決定部161およびBs決定部162に供給する。
ステップS134において、α/β決定部161またはBs決定部162は、フィルタパラメータの調整を行う。
α/β決定部161は、フィルタパラメータの調整として、逆量子化部108からの注目領域量子化パラメータに基づいて、上述した式(2)のαおよびβの値を決定する。このとき、α/β決定部161は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、上述した図6のAおよび図6のBに示される表のαおよびβに対応づける量子化パラメータとして、QPに代え、QP+Δを対応づける。
または、Bs決定部162は、可逆符号化部106からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。このとき、Bs決定部162は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bsの代わりにBs+1を用いる。
α/β決定部161は、決定したαおよびβの値を、フィルタパラメータの1つとして、フィルタ決定部163に供給する。Bs決定部162は、決定したBsの値を、フィルタパラメータの1つとして、フィルタ決定部163に供給する。
なお、ステップS134におけるフィルタパラメータの調整処理は、α/β決定部161およびBs決定部162の両方で行われてもよいし、どちらか一方だけの処理であってもよい。どちらか一方の場合、他方は、調整なしの通常のフィルタパラメータを、フィルタ決定部163に供給する。
また、ステップS134においては、上述したように、隣り合った領域の各量子化パラメータのうち、より大きな方を、デブロックフィルタ処理のための量子化パラメータとして用いる処理が行われてもよい。
ステップS133において、量子化パラメータの差分値が閾値以下であると判定された場合、ステップS134の処理は、スキップされる。このとき、閾値判定部154は、量子化パラメータの差分値が閾値以下であることを示す制御信号を、α/β決定部161およびBs決定部162に供給する。α/β決定部161およびBs決定部162は、調整なしの通常のフィルタパラメータを、フィルタ決定部163に供給する。
すなわち、α/β決定部161は、逆量子化部108からの注目領域量子化パラメータに基づいて、フィルタパラメータの調整として、上述した式(2)のαおよびβの値を決定する。Bs決定部162は、可逆符号化部106からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。
一方、例えば、図9の注目領域Cと、左に隣接する隣接領域N3との境界は、量子化パラメータを設定可能な領域M内であり、境界ではない。したがって、この場合、ステップS131において、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界ではないと判定され、ステップS132乃至S134はスキップされ、処理は、ステップS135に進む。
すなわち、この場合、差分値も生成されず、制御信号もないので、α/β決定部161およびBs決定部162は、調整なしの通常のフィルタパラメータを、フィルタ決定部163に供給する。
ステップS135において、フィルタ決定部163は、α/β決定部161およびBs決定部162からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部163は、注目領域と隣接領域の境界に、強いフィルタを施すのか、弱いフィルタを施すのか、あるいは、フィルタを施さないのか、フィルタリングに用いるフィルタを決定する。
フィルタ決定部163は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部164に供給する。
ステップS136において、フィルタリング部164は、フィルタ決定部163により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値をフィルタリングする。フィルタリング部164は、デブロックフィルタ後の画素値を、フレームメモリ112に出力する。
以上のように、注目領域と隣接領域の量子化パラメータの差分値が大きい場合に、フィルタ強度を強く調整することにより、強いデブロックフィルタをかけることができる。これにより、適切なブロック歪みの除去を行うことができる。
<2.第2の実施の形態>
[画像復号装置]
図13は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図13に示される画像復号装置200は、図1の画像符号化装置100に対応する復号装置である。
画像符号化装置100より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置100に対応する画像復号装置200に伝送され、復号されるものとする。
図13に示されるように、画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、画面並べ替えバッファ207、およびD/A変換部208を有する。また、画像復号装置200は、フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213を有する。
さらに、画像復号装置200は、量子化パラメータ差分検出部221を有する。
蓄積バッファ201は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置100により符号化されたものである。可逆復号部202は、蓄積バッファ201から所定のタイミングで読み出された符号化データを、図1の可逆符号化部106の符号化方式に対応する方式で復号する。また、可逆復号部202は、復号されたシンタクス要素を、デブロックフィルタ206および量子化パラメータ差分検出部221に供給する。
逆量子化部203は、可逆復号部202により復号されて得られた係数データ(量子化係数)を、図1の量子化部105の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部203は、画像符号化装置100から供給された量子化パラメータを用いて、図1の逆量子化部108と同様の方法で量子化係数の逆量子化を行う。
逆量子化部203は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部204に供給する。また、逆量子化部203は、逆量子化した際の量子化パラメータを、デブロックフィルタ206および量子化パラメータ差分検出部221に供給する。逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部213を介して、イントラ予測部211若しくは動き予測・補償部212から予測画像が供給される。
演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
デブロックフィルタ206は、画像符号化装置100のデブロックフィルタ111と基本的に同様に構成される。デブロックフィルタ206は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。
それに先立ち、デブロックフィルタ206は、量子化パラメータ差分検出部221からの制御信号に応じて、逆量子化部203からの量子化パラメータや、可逆復号部202からのシンタクス要素を参照し、デブロックフィルタ処理のパラメータを調整する。デブロックフィルタ206は、そのフィルタ処理結果を、画面並べ替えバッファ207に供給する。
画面並べ替えバッファ207は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部208は、画面並べ替えバッファ207から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
デブロックフィルタ206の出力は、さらに、フレームメモリ209に供給される。
フレームメモリ209、選択部210、イントラ予測部211、動き予測・補償部212、および選択部213は、画像符号化装置100のフレームメモリ112、選択部113、イントラ予測部114、動き予測・補償部115、および選択部116にそれぞれ対応する。
選択部210は、インター処理される画像と参照される画像をフレームメモリ209から読み出し、動き予測・補償部212に供給する。また、選択部210は、イントラ予測に用いられる画像をフレームメモリ209から読み出し、イントラ予測部211に供給する。
イントラ予測部211には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部211は、この情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
動き予測・補償部212には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)を可逆復号部202から供給される。
動き予測・補償部212は、可逆復号部202から供給されるそれらの情報に基づいて、フレームメモリ209から取得した参照画像から予測画像を生成し、生成した予測画像を選択部213に供給する。
選択部213は、動き予測・補償部212またはイントラ予測部211により生成された予測画像を選択し、演算部205に供給する。
量子化パラメータ差分検出部221は、画像符号化装置100の量子化パラメータ差分検出部121と基本的に同様に構成される。量子化パラメータ差分検出部221は、可逆復号部202からのシンタクス要素を参照し、逆量子化部203からの量子化パラメータを用いて、注目領域と注目領域に隣接する隣接領域の量子化パラメータ差分値を生成する。量子化パラメータ差分検出部221は、生成した差分値と所定の閾値とを比較し、比較結果に基づく制御信号を、デブロックフィルタ206に供給する。
[デブロックフィルタおよび量子化パラメータ差分検出部の構成例]
次に、画像復号装置200の各部について説明する。図14は、デブロックフィルタ206および量子化パラメータ差分検出部221の構成例を示すブロック図である。
図14の例において、デブロックフィルタ206は、α/β決定部241、Bs決定部242、フィルタ決定部243、およびフィルタリング部244を含むように構成されている。
量子化パラメータ差分検出部221は、隣接量子化パラメータバッファ231、注目量子化パラメータバッファ232、差分生成部233、および閾値判定部234を含むように構成されている。
逆量子化部203からの隣接領域量子化パラメータは、隣接量子化パラメータバッファ231に供給される。逆量子化部203からの注目領域量子化パラメータは、注目量子化パラメータバッファ232およびα/β決定部241に供給される。また、可逆復号部202からのシンタクス要素は、差分生成部233およびBs決定部242に供給される。
隣接量子化パラメータバッファ231は、図10の隣接量子化パラメータバッファ151と基本的に同様に構成され、逆量子化部203からの隣接領域量子化パラメータを蓄積する。注目量子化パラメータバッファ232は、図10の注目量子化パラメータバッファ152と基本的に同様に構成され、逆量子化部203からの注目領域量子化パラメータを蓄積する。
差分生成部233は、図10の差分生成部153と基本的に同様に構成される。差分生成部233は、可逆復号部202からのシンタクス要素に基づいて、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であるか否かを判定する。差分生成部233は、量子化パラメータが設定できる大きさの領域の境界であると判定した場合、次の処理を行う。また、量子化パラメータが設定できる大きさの領域の境界ではないと判定された場合、次の処理は行われない。
差分生成部233は、隣接量子化パラメータバッファ231から隣接領域量子化パラメータを読み出し、注目量子化パラメータバッファ232から注目領域量子化パラメータを読み出す。差分生成部233は、読み出した量子化パラメータの差分値である、量子化パラメータ差分値(式(33)の左辺)を生成し、生成した差分値を、閾値判定部234に供給する。
閾値判定部234は、図10の閾値判定部154と基本的に同様に構成される。閾値判定部234は、差分生成部233からの差分値と閾値とを比較し、差分値が閾値よりも大きいか否か、すなわち、よりブロック歪みが生じやすい境界であるか否かを示す制御信号を、α/β決定部241およびBs決定部242に供給する。
α/β決定部241は、図10のα/β決定部161と基本的に同様に構成される。α/β決定部241は、逆量子化部203からの注目領域量子化パラメータに基づいて、フィルタパラメータの調整として、上述した式(2)のαおよびβの値を決定する。このとき、α/β決定部241は、閾値判定部234からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、上述した図6のAおよび図6のBに示される表のαおよびβに対応づける量子化パラメータとして、QPに代え、QP+Δを対応づける。
α/β決定部241は、決定したαおよびβの値を、フィルタパラメータの1つとして、フィルタ決定部243に供給する。
Bs決定部242は、図10のBs決定部162と基本的に同様に構成される。Bs決定部242は、可逆復号部202からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。このとき、Bs決定部242は、閾値判定部234からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bsの代わりにBs+1を用いる。あるいは、Bs決定部162は、閾値判定部154からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bs=4を用いる。
Bs決定部242は、決定したBsの値を、フィルタパラメータの1つとして、フィルタ決定部243に供給する。
フィルタ決定部243には、演算部110からデブロックフィルタ前の画素値が入力される。フィルタ決定部243は、図10のフィルタ決定部163と基本的に同様に構成される。フィルタ決定部243は、α/β決定部241およびBs決定部242からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部243は、注目領域と隣接領域の境界に、強いフィルタを施すのか、弱いフィルタを施すのか、あるいは、フィルタを施さないのか、フィルタリングに用いるフィルタを決定する。
フィルタ決定部243は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部244に供給する。
フィルタリング部244は、図10のフィルタリング部164と基本的に同様に構成される。フィルタリング部244は、フィルタ決定部243により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部244は、デブロックフィルタ後の画素値を、画面並べ替えバッファ207およびフレームメモリ209に出力する。
[復号処理の流れ]
次に、以上のような画像復号装置200により実行される各処理の流れについて説明する。最初に、図15のフローチャートを参照して、復号処理の流れの例を説明する。
復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきた符号化データを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給される符号化データを復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)、並びに、フラグや量子化パラメータ等のシンタクス要素の情報も復号される。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部211に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報は、動き予測・補償部212に供給される。また、シンタクス要素は、デブロックフィルタ206および量子化パラメータ差分検出部221に供給される。
ステップS203において、逆量子化部203は、可逆復号部202により復号されて得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は逆量子化部203により逆量子化されて得られた直交変換係数を、図1の直交変換部104に対応する方法で逆直交変換する。これにより図1の直交変換部104の入力(演算部103の出力)に対応する差分情報が復号されたことになる。
ステップS205において、演算部205は、ステップS204の処理により得られた差分情報に、予測画像を加算する。これにより元の画像データが復号される。
ステップS206において、デブロックフィルタ206は、ステップS205の処理により得られた復号画像を適宜フィルタリングする。デブロックフィルタ処理の流れの詳細については、図16を参照して後述する。これにより適宜復号画像からブロック歪みが除去される。
ステップS207において、フレームメモリ209は、フィルタリングされた復号画像を記憶する。
ステップS208において、イントラ予測部211、または動き予測・補償部212は、可逆復号部202から供給される予測モード情報に対応して、それぞれ画像の予測処理を行う。
すなわち、可逆復号部202からイントラ予測モード情報が供給された場合、イントラ予測部211は、イントラ予測モードのイントラ予測処理を行う。また、可逆復号部202からインター予測モード情報が供給された場合、動き予測・補償部212は、インター予測モードの動き予測処理を行う。
ステップS209において、選択部213は予測画像を選択する。すなわち、選択部213には、イントラ予測部211により生成された予測画像、若しくは、動き予測・補償部212により生成された予測画像が供給される。選択部213は、その予測画像が供給された側を選択し、その予測画像を演算部205に供給する。この予測画像は、ステップS205の処理により差分情報に加算される。
ステップS210において、画面並べ替えバッファ207は、復号画像データのフレームの並べ替えを行う。すなわち、復号画像データの、画像符号化装置100の画面並べ替えバッファ102(図1)により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS211において、D/A変換部208は、画面並べ替えバッファ207においてフレームが並べ替えられた復号画像データをD/A変換する。この復号画像データが図示せぬディスプレイに出力され、その画像が表示される。
[デブロックフィルタ処理の流れ]
次に、図16のフローチャートを参照して、図15のステップS206において実行されるデブロックフィルタ処理の流れの例を説明する。なお、図16のステップS231乃至S236は、図12のステップS131乃至S136と基本的に同様の処理である。
逆量子化部203から、注目領域量子化パラメータは、注目量子化パラメータバッファ232に蓄積され、隣接領域量子化パラメータは、隣接量子化パラメータバッファ231に蓄積される。
差分生成部233は、ステップS231において、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であるか否かを判定する。例えば、図9の注目領域Cと、右に隣接する隣接領域N2との境界は、量子化パラメータを設定可能な領域Mの境界である。したがって、この場合、ステップS231において、注目領域と隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界であると判定され、処理は、ステップS232に進む。
ステップS232において、差分生成部233は、注目領域と隣接領域との量子化パラメータ差分値を生成する。生成された量子化パラメータの差分値は、閾値判定部234に供給される。
ステップS233において、閾値判定部234は、量子化パラメータの差分値が閾値より大きいか否かを判定する。ステップS233において、量子化パラメータの差分値が閾値より大きいと判定された場合、処理は、ステップS234に進む。このとき、閾値判定部234は、量子化パラメータの差分値が閾値より大きいことを示す制御信号を、α/β決定部241およびBs決定部242に供給する。
ステップS234において、α/β決定部241またはBs決定部242は、フィルタパラメータの調整を行う。
α/β決定部241は、フィルタパラメータの調整として、逆量子化部203からの注目領域量子化パラメータに基づいて、上述した式(2)のαおよびβの値を決定する。このとき、α/β決定部241は、閾値判定部234からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、上述した図6のAおよび図6のBに示される表のαおよびβに対応づける量子化パラメータとして、QPに代え、QP+Δを対応づける。
または、Bs決定部242は、可逆復号部202からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。このとき、Bs決定部242は、閾値判定部234からの制御信号が、差分値が閾値よりも大きいと示すものであった場合、例えば、Bsの代わりにBs+1を用いる。
α/β決定部241は、決定したαおよびβの値を、フィルタパラメータの1つとして、フィルタ決定部243に供給する。Bs決定部242は、決定したBsの値を、フィルタパラメータの1つとして、フィルタ決定部243に供給する。
なお、ステップS234におけるフィルタパラメータの調整処理も、α/β決定部241およびBs決定部242の両方で行われてもよいし、どちらか一方だけの処理であってもよい。どちらか一方の場合、他方は、調整なしの通常のフィルタパラメータを、フィルタ決定部243に供給する。
また、ステップS234においては、上述したように、隣り合った領域の各量子化パラメータのうち、より大きな方を、デブロックフィルタ処理のための量子化パラメータとして用いる処理が行われてもよい。
ステップS233において、量子化パラメータの差分値が閾値以下であると判定された場合、ステップS234の処理は、スキップされる。このとき、閾値判定部234は、量子化パラメータの差分値が閾値以下であることを示す制御信号を、α/β決定部241およびBs決定部162に供給する。α/β決定部241およびBs決定部242は、調整なしの通常のフィルタパラメータを、フィルタ決定部243に供給する。
すなわち、α/β決定部241は、逆量子化部203からの注目領域量子化パラメータに基づいて、フィルタパラメータの調整として、上述した式(2)のαおよびβの値を決定する。Bs決定部242は、可逆復号部202からのシンタクス要素を参照して、フィルタパラメータの調整として、図4に示される表のように、Bsの値を決定する。
一方、例えば、図9の注目領域Cと、左に隣接する隣接領域N3との境界は、量子化パラメータを設定可能な領域M内であり、境界ではない。したがって、この場合、ステップS231において、注目領域と、隣接領域との境界が、量子化パラメータが設定できる大きさの領域の境界ではないと判定され、ステップS232乃至S234はスキップされ、処理は、ステップS235に進む。
すなわち、この場合、差分値も生成されず、制御信号もないので、α/β決定部241およびBs決定部242は、調整なしの通常のフィルタパラメータを、フィルタ決定部243に供給する。
ステップS235において、フィルタ決定部243は、α/β決定部241およびBs決定部242からフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部243は、注目領域と隣接領域の境界に、強いフィルタを施すのか、弱いフィルタを施すのか、あるいは、フィルタを施さないのか、フィルタリングに用いるフィルタを決定する。
フィルタ決定部243は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部244に供給する。
ステップS236において、フィルタリング部244は、フィルタ決定部163により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部244は、デブロックフィルタ後の画素値を、画面並べ替えバッファ207およびフレームメモリ209に出力する。
以上のように、注目領域と隣接領域の量子化パラメータの差分値が大きい場合に、フィルタを調整することにより、強いデブロックフィルタをかけることができる。これにより、適切なブロック歪みの除去を行うことができる。
<3.第3の実施の形態>
[IPCMモード対応の例]
次に、図17を参照して、注目領域または注目領域と境界を挟んで隣接する隣接領域にIPCMモードの領域がある場合の例について説明する。IPCMモードとは、非圧縮モードのことであり、例えば、特許第3992303号および特許第4687998号に記載されている。
例えば、領域Lと領域Rとは境界Bを挟んで隣接しており、領域Lは、IPCMモードのブロックであり、領域Rは、Non IPCMモードのブロックであるとする。
上述したように、H.264/AVC方式においては、境界Bを挟んで隣接する隣接領域の量子化パラメータの平均に基づいて境界Bに施されるフィルタの強度が決められていた。また、IPCMモードである領域の量子化パラメータは0とされる。
したがって、例えば、領域Rの量子化パラメータQP=38である場合、劣化が見えやすい領域であるにも拘らず、領域Lと領域Rの量子化パラメータQPの平均に基づいてフィルタの強度が決定されるため、境界Bには、弱いフィルタが施されていた。なお、境界Bといっても、領域LがIPCMモードであるため、境界Bの領域R側にしかフィルタはかからない。
そこで、デブロックフィルタ111は、領域Rについては、領域Rの量子化パラメータであるQP=38をデブロックフィルタ処理のための量子化パラメータとして用いる。すなわち、隣接する領域がIPCMモードである場合、上述した第3の方法の例が相当する。
具体的には、上述した図10の機能ブロックを用いて符号化側について説明すると、例えば、シンタクス要素(モード情報)が閾値判定部154にも供給される。閾値判定部154は、モード情報を参照して、領域Lまたは領域RがIPCMモードであるか否かを判定し、IPCMモードであるか否かを示す制御信号を、α/β決定部161に供給する。例えば、領域LがIPCMモードであり、制御信号がIPCMモードであることを示す場合、α/β決定部161は、領域Rの量子化パラメータを用いて、上述した式(2)のαおよびβの値を決定する。これにより、フィルタ決定部163は、境界Bに対して、H.264/AVC方式の場合よりも強いフィルタを決定することができる。
さらに、上述した図14の機能ブロックを用いて復号側について説明すると、例えば、シンタクス要素(モード情報)が閾値判定部234にも供給される。閾値判定部234は、モード情報を参照して、領域Lまたは領域RがIPCMモードであるか否かを判定し、IPCMモードであるか否かを示す制御信号を、α/β決定部241に供給する。例えば、領域LがIPCMモードであり、制御信号がIPCMモードであることを示す場合、α/β決定部241は、領域Rの量子化パラメータを用いて、上述した式(2)のαおよびβの値を決定する。これにより、フィルタ決定部243は、境界Bに対して、H.264/AVC方式の場合よりも強いフィルタを決定することができる。
なお、上記説明においては、領域LがIPCMモードである場合の例を説明したが、領域RがIPCMモードである場合には、領域Lの量子化パラメータを用いて、上述した式(2)のαおよびβの値が決定される。
以上のように、隣接する領域および注目領域のどちらか一方がIPCMモードである場合に、デブロックフィルタの入力となる境界QPを、他方の領域の量子化パラメータとするようにした。これにより、隣接する領域がIPCMモードであったとしても、注目領域に適した強度のデブロックフィルタを施すことができる。
なお、上記説明においては、H.264/AVC方式を例に説明してきたが、現在、H.264/AVCより更なる符号化効率の向上を目的として、HEVC (High Efficiency Video Coding) と呼ばれる符号化方式の標準化が進められている。次に、HEVC規格による符号化方式(以下、HEVC方式と称する)をベースとして説明していく。
例えば、HEVC方式においては、デブロックフィルタのフィルタ強度を決めるためのオフセット値(閾値)として、αおよびβと同様の機能を有するbetaおよびtcが用いられている。
<4.第4の実施の形態>
[量子化行列対応の例]
デブロックフィルタは、符号化側からの符号化データ(画像圧縮情報)中に伝送されている量子化パラメータQPをベースに実行される。再度、図8を用いて、具体的に説明する。
従来においては、パラメータbetaおよびtc(H.264/AVC方式のαおよびβ)を決めるための境界QPは、注目領域Cの量子化パラメータQPcと、注目領域Cに境界を挟んで隣接する隣接領域Nの量子化パラメータQPNを用いて、次の式(34)のように求められていた。
境界QP=(QPc+QPN+1)>>1 ・・・(34)
しかしながら、符号化データ中に量子化行列(スケーリングリスト(Scaling List)が伝送されている場合、実際に割り算される値は、そのスケーリングリストによって補正されてしまう。すなわち、式(34)で求められる境界QPは、スケーリングリストの影響が考慮されていなかった。
ブロック歪みに強く影響するのは、DC成分であり、ブロック歪みを検出するためには、このスケーリングリストのDC成分に関する情報が重要となる。そこで、図1の画像符号化装置100および図13の画像復号装置200は、伝送されているQPを、スケーリングリストにより補正し、補正されたQPを用いてフィルタの強度の決定に用いられる境界QPを求める。
このデブロックフィルタ処理について、図18のフローチャートを参照して説明する。まず、上述した図10の機能ブロックを例に符号化側の処理について説明する。また、上記説明においては、AVC方式の場合のデブロックフィルタのパラメータとして、α,βが用いられる例を説明した。これに対して、図18以降においては、HEVC方式の場合のデブロックフィルタのパラメータであるbeta,tcが用いられる例を説明する。
ステップS301において、Bs決定部162は、可逆符号化部106からのシンタクス要素であるモード情報、動きベクトル、参照フレーム情報を受信する(受け取る)。なお、このとき、差分生成部153も、可逆符号化部106からのシンタクス要素である、量子化行列(スケーリングリスト)を受信する。
ステップS302において、Bs決定部162は、TU及びPU境界を検出する。ステップS303において、Bs決定部162は、ステップS301で受け取った情報、およびステップS302で検出したTU及びPU境界に基づいて、Bs値を決定する。決定されたBs値は、フィルタパラメータとして、フィルタ決定部163に供給される。
ステップS304において、差分生成部153は、ステップS301で受け取った量子化行列から、境界ブロック(すなわち、境界を挟んで隣接する領域)に関する量子化行列DC成分(DC成分)を抽出する。
ステップS305において、差分生成部153は、抽出したDC成分を用いて、境界QPを算出する。
具体的には、差分生成部153は、次の式(35)により、注目領域Cの量子化パラメータQPcと、注目領域Cに境界を挟んで隣接領域Nの量子化パラメータQPNを補正した後、上述した式(34)を用いて、境界QPを算出する。
・・・(35)
ここで、QPtransおよびQStransは、ビットストリーム中のQPおよびそのQPに対応するQS(Quantization Scale)である。QPrealおよびQSrealは、スケーリングリストのDC成分により補正されるQPおよびそのQPに対応するQSである。DCは、スケーリングリストのDC成分(1乃至255)であり、16がデフォルトの値である。
なお、上述した式(35)の第2式の右辺の第2項(logの項)は、実際に算出する必要はなく、DC成分(1乃至255)毎の(logの項)を予め計算し、テーブル化して記憶しておき、それを用いるようにすることができる。
算出された境界QPは、α/β決定部161に供給される。
ステップS306において、α/β決定部161は、フィルタ強度を決定するためのオフセット値(閾値)であるbeta、tcを決定し、決定したbeta、tcを、フィルタパラメータとして、フィルタ決定部163に供給する。
フィルタ決定部163には、演算部110からデブロックフィルタ前の画素値が入力される。フィルタ決定部163は、ステップS307において、α/β決定部161およびBs決定部162からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部163は、注目領域と隣接領域の境界に、強いフィルタを施すのか(強)、弱いフィルタを施すのか(弱)、あるいは、フィルタを施さないのか(off)、フィルタリングに用いるフィルタを決定する。
フィルタ決定部163は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部164に供給する。
フィルタリング部164は、ステップS308において、フィルタ決定部163により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部164は、デブロックフィルタ後の画素値を、フレームメモリ112に出力する。
次に、再度、図18のフローチャートを参照して、復号側のデブロックフィルタ処理について説明する。なお、復号側については、上述した図14の機能ブロックを用いて説明する。
ステップS301において、Bs決定部242は、可逆復号部202からのシンタクス要素であるモード情報、動きベクトル、参照フレーム情報を受信する(受け取る)。なお、このとき、差分生成部233も、可逆復号部202からのシンタクス要素である、量子化行列(スケーリングリスト)を受信する。
ステップS302において、Bs決定部242は、TU及びPU境界を検出する。ステップS303において、Bs決定部242は、ステップS301で受け取った情報、およびステップS302で検出したTU及びPU境界に基づいて、Bs値を決定する。決定されたBs値は、フィルタパラメータとして、フィルタ決定部243に供給される。
ステップS304において、差分生成部233は、ステップS301で受け取った量子化行列から、境界ブロック(すなわち、境界を挟んで隣接する領域)に関する量子化行列DC成分(DC成分)を抽出する。
ステップS305において、差分生成部233は、抽出したDC成分を用いて、境界QPを算出する。
具体的には、差分生成部233は、差分生成部153と同様に、上述した式(35)により、注目領域Cの量子化パラメータQPcと、注目領域Cに境界を挟んで隣接領域Nの量子化パラメータQPNを補正した後、上述した式(34)を用いて、境界QPを算出する。算出された境界QPは、α/β決定部241に供給される。
ステップS306において、α/β決定部241は、フィルタ強度を決定するためのオフセット値(閾値)であるbeta、tcを決定し、決定したbeta、tcを、フィルタパラメータとして、フィルタ決定部243に供給する。
フィルタ決定部243には、演算部205からデブロックフィルタ前の画素値が入力される。フィルタ決定部243は、ステップS307において、α/β決定部241およびBs決定部242からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部243は、注目領域と隣接領域の境界に、強いフィルタを施すのか(強)、弱いフィルタを施すのか(弱)、あるいは、フィルタを施さないのか(off)、フィルタリングに用いるフィルタを決定する。
フィルタ決定部243は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部244に供給する。
フィルタリング部244は、ステップS308において、フィルタ決定部243により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部244は、デブロックフィルタ後の画素値を、フレームメモリ209および画面並べ替えバッファ207に出力する。
以上のように、量子化行列(スケーリングリスト)のDC成分を用いて量子化パラメータを補正してから、境界QPを算出するようにしたので、より適切にブロック歪みを抑制することができる。
<5.第5の実施の形態>
[スキップモード対応の例]
図8を再度用いて上述したが、従来において、パラメータbetaおよびtcを決めるための境界QPは、注目領域Cの量子化パラメータQPcと、注目領域Cに境界を挟んで隣接する隣接領域Nの量子化パラメータQPNを用いて、上述した式(34)で求められていた。
しかしながら、例えば、領域における処理単位がCUであれば、スキップCUである場合、または、領域における処理単位がTUであれば、CBF(coded_block_flag)=0である場合などのように、隣接領域Nが直交変換係数を持たない領域である場合、QPの値はあてにならない。
そこで、図1の画像符号化装置100および図13の画像復号装置200は、境界を挟んで隣接する領域の直交変換係数の有無に基づいて、パラメータbetaおよびtcを決めるために用いられる境界QPを算出する。
このデブロックフィルタ処理について、図19のフローチャートを参照して説明する。まず、上述した図10の機能ブロックを例に符号化側の処理について説明する。
ステップS351において、Bs決定部162は、可逆符号化部106からのシンタクス要素であるモード情報、動きベクトル、参照フレーム情報を受信する(受け取る)。なお、このとき、差分生成部153も、可逆符号化部106からのシンタクス要素である、モード情報やcoded_block_flagなどを受信する。
ステップS352において、Bs決定部162は、TU及びPU境界を検出する。ステップS353において、Bs決定部162は、ステップS351で受け取った情報、ステップS352で検出したTU及びPU境界に基づいて、Bs値を決定する。決定されたBs値は、フィルタパラメータとして、フィルタ決定部163に供給される。
ステップS354において、差分生成部153は、境界ブロック(すなわち、境界を挟んで隣接する領域)の直交変換係数の有無を検出する。例えば、領域がCUの場合、ステップS351で受け取ったモード情報に基づき、直交変換係数の有無が検出される。一方、領域がTUの場合、ステップS351で受け取ったcoded_block_flagに基づき、直交変換係数の有無が検出される。
ステップS305において、差分生成部153は、検出した境界ブロックの直交変換係数の有無に応じて、境界QPを算出する。
具体的には、図20を参照して説明する。図20の例においては、図8に示された領域Nと領域Cの直交変換係数の有無が丸バツで示されている。丸は、直交変換係数があることを示しており、バツは、直交変換係数がないことを示している。
まず、領域Nにも領域Cにも、直交変換係数がある場合、境界QPの算出方法は、上述した式(34)を用いて従来通りに行われる。
領域Nおよび領域Cのうちのどちらか一方に直交変換係数があるが、他方に直交変換係数がない場合、案1乃至案4として、次の式(36)乃至式(39)のいずれかの式が用いられて境界QPが算出される。
案1:境界QP = QPN ・・・(36)
案2:境界QP = (QPN+prevQPc+1)>>1 ・・・(37)
案3:境界QP = (QPN+predQPc+1)>>1 ・・・(38)
案4:境界QP = (QPN+sliceQPc+1)>>1 ・・・(39)
ここで、式(36)においては、QPc=0とされている。prevQPxは、領域xの直前の領域において用いられたQPを表している。predQPxは、領域xの直前の領域において用いられた予測QP(量子化パラメータの予測値)を表している。slicePxは、領域xの属するスライスに対するQPを表している。
領域Nおよび領域Cのどちらにも直交変換係数がない場合、案A乃至案Cとして、次の式(40)乃至式(42)のいずれかの式が用いられて境界QPが算出される。
案A:境界QP = (prevQPN+prevQPc+1)>>1 ・・・(40)
案B:境界QP = (predQPN+predQPc+1)>>1 ・・・(41)
案C:境界QP = (sliceQPN+sliceQPc+1)>>1 ・・・(42)
算出された境界QPは、α/β決定部161に供給される。
ステップS356において、α/β決定部161は、フィルタ強度を決定するためのオフセット値(閾値)であるbeta、tcを決定し、決定したbeta、tcを、フィルタパラメータとして、フィルタ決定部163に供給する。
フィルタ決定部163には、演算部110からデブロックフィルタ前の画素値が入力される。フィルタ決定部163は、ステップS357において、α/β決定部161およびBs決定部162からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部163は、注目領域と隣接領域の境界に、強いフィルタを施すのか(強)、弱いフィルタを施すのか(弱)、あるいは、フィルタを施さないのか(off)、フィルタリングに用いるフィルタを決定する。
フィルタ決定部163は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部164に供給する。
フィルタリング部164は、ステップS358において、フィルタ決定部163により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部164は、デブロックフィルタ後の画素値を、フレームメモリ112に出力する。
次に、再度、図19のフローチャートを参照して、復号側のデブロックフィルタ処理について説明する。なお、復号側については、上述した図14の機能ブロックを用いて説明する。
ステップS351において、Bs決定部242は、可逆復号部202からのシンタクス要素であるモード情報、動きベクトル、参照フレーム情報を受信する(受け取る)。なお、このとき、差分生成部233も、可逆復号部202からのシンタクス要素である、モード情報やcoded_block_flagなどを受信する。
ステップS352において、Bs決定部242は、TU及びPU境界を検出する。ステップS353において、Bs決定部242は、ステップS351で受け取った情報、ステップS352で検出したTU及びPU境界に基づいて、Bs値を決定する。決定されたBs値は、フィルタパラメータとして、フィルタ決定部243に供給される。
ステップS354において、差分生成部233は、境界ブロック(すなわち、境界を挟んで隣接する領域)の直交変換係数の有無を検出する。例えば、領域がCUの場合、ステップS351で受け取ったモード情報に基づき、直交変換係数の有無が検出される。一方、領域がTUの場合、ステップS351で受け取ったcoded_block_flagに基づき、直交変換係数の有無が検出される。
ステップS305において、差分生成部233は、検出した境界ブロックの直交変換係数の有無に応じて、境界QPを算出する。具体的には、図20を参照して上述した差分生成部153の処理と基本的に同様である。 すなわち、領域Nにも領域Cにも、直交変換係数がある場合、境界QPの算出方法は、上述した式(34)を用いて従来通りに行われる。
領域Nおよび領域Cのうちのどちらか一方に直交変換係数があるが、他方に直交変換係数がない場合、案1乃至案4として、上述した式(36)乃至式(39)のいずれかの式が用いられて境界QPが算出される。
領域Nおよび領域Cのどちらにも直交変換係数がない場合、案A乃至案Cとして、上述した式(40)乃至式(42)のいずれかの式が用いられて境界QPが算出される。算出された境界QPは、α/β決定部241に供給される。
ステップS356において、α/β決定部241は、フィルタ強度を決定するためのオフセット値(閾値)であるbeta、tcを決定し、決定したbeta、tcを、フィルタパラメータとして、フィルタ決定部243に供給する。
フィルタ決定部243には、演算部205からデブロックフィルタ前の画素値が入力される。フィルタ決定部243は、ステップS357において、α/β決定部241およびBs決定部242からのフィルタパラメータと、デブロックフィルタ前の画素値を用いて、フィルタを決定する。すなわち、フィルタ決定部243は、注目領域と隣接領域の境界に、強いフィルタを施すのか(強)、弱いフィルタを施すのか(弱)、あるいは、フィルタを施さないのか(off)、フィルタリングに用いるフィルタを決定する。
フィルタ決定部243は、決定したフィルタの制御情報と、デブロックフィルタ前の画素値とを、フィルタリング部244に供給する。
フィルタリング部244は、ステップS358において、フィルタ決定部243により決定されたフィルタの制御情報に基づいて、デブロックフィルタ前の画素値に対して、デブロックフィルタ処理を施す。フィルタリング部244は、デブロックフィルタ後の画素値を、フレームメモリ209および画面並べ替えバッファ207に出力する。
以上のように、直交変換係数がない領域の場合、そのQPの代わりに、直前の領域で用いられたQP、直後のフレームで用いられたQP、または、その領域が属するスライスに対するQPを用いて、境界QPを算出するようにした。これにより、より適切にブロック歪みを抑制することができる。
なお、HEVC方式においては、max_cu_qp_delta_depthが定められており、max_cu_qp_delta_depthには、どの粒度(深度)のCUにより量子化パラメータが伝送されるかが設定される。さらに、HEVC方式においては、max_cu_qp_delta_depthで指定されているサイズ以上のCUにおいては、そのCUの量子化パラメータとして、そのCUより小さい粒度で、最初のnon_skip_CUの量子化パラメータを送ることが規定されている。
すなわち、CUを構成する最初(左上)のCUがskipCUである場合、ラスタスキャン順に次のCUがnon_skipであれば、その量子化パラメータが送られる。
このような場合において、デブロックフィルタをCU単位で行おうとすると、最初のCUで量子パラメータが送られていないため、デブロックフィルタを行うことが困難であった。
これに対して、本技術においては、skipCUである場合に、そのCUのQPとして、直前の領域で用いられたQP、直後のフレームで用いられたQP、または、その領域が属するスライスに対するQPを用いて、境界QPを算出するようにした。
これにより、上述するような場合でも、CU単位でデブロックフィルタを行うことが可能となる。
なお、上記説明においては、例えば、図8などを用いて、図中左右に隣接する領域間の境界の例を説明したが、上下に隣接する領域間の境界も、左右に隣接する領域間の境界の場合と同様に処理される。
以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、本開示はこれに限らず、動き予測・補償ループ内にデブロックフィルタを含む、その他の符号化方式/復号方式(例えば、HEVC方式)を適用することができる。
なお、本開示は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本開示は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
<6.第6の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図21において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図21に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<7.第7の実施の形態>
[第1の応用例:テレビジョン受像機]
図22は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、ブロック歪みの除去をより適切に行い、復号画像における主観画質を向上させることができる。
[第2の応用例:携帯電話機]
図23は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、ブロック歪みの除去をより適切に行い、復号画像における主観画質を向上させることができる。
[第3の応用例:記録再生装置]
図24は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、ブロック歪みの除去をより適切に行い、復号画像における主観画質を向上させることができる。
[第4の応用例:撮像装置]
図25は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、ブロック歪みの除去をより適切に行い、復号画像における主観画質を向上させることができる。
なお、本明細書では、差分量子化パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 階層構造を有する単位で符号化されたビットストリームを復号して、画像を生成する復号部と、
前記復号部により生成された前記画像にフィルタ処理を施すフィルタ部と、
前記復号部により生成された前記画像の処理対象であるカレント領域の量子化パラメータと、前記カレント領域と境界を挟んで隣接する隣接領域の量子パラメータとの差分値が閾値よりも大きい場合、前記境界に対してのフィルタ処理が強くかかるように、前記フィルタ部のパラメータを調整するフィルタ調整部と
を備える画像処理装置。
(2) 前記フィルタ調整部は、予め設定された強フィルタ処理と予め設定された弱フィルタ処理とのうち、強フィルタ処理を選択するように、前記フィルタ部を制御する
前記(1)に記載の画像処理装置。
(3) 前記フィルタ調整部は、前記境界が量子化パラメータの設定可能な領域の境界である場合、前記フィルタ部のパラメータを調整する
前記(1)または(2)に記載の画像処理装置。
(4) 前記フィルタ部のパラメータは、Boundary Strengthの値であり、
前記フィルタ調整部は、前記Boundary Strengthの値に1を加算した値を、前記Boundary Strengthの値とする
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記フィルタ部のパラメータは、Boundary Strengthの値であり、
前記フィルタ調整部は、前記Boundary Strengthの値を4とする
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(6) 前記フィルタ部のパラメータは、閾値αと閾値βの値であり、
前記フィルタ調整部は、前記閾値αと閾値βに対応する量子化パラメータQPの代わりに、QP+Δ(Δ>0)を対応させる
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(7) 前記フィルタ部のパラメータは、量子化パラメータの値であり、
前記フィルタ調整部は、前記カレント領域の量子化パラメータと前記隣接領域の量子化パラメータのうちの値の大きい方を、前記フィルタ部のパラメータとして用いる
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(8) 前記フィルタ部のパラメータは、量子化パラメータの値であり、
前記フィルタ調整部は、前記カレント領域および前記隣接領域のどちらか一方の領域がIPCMモードである場合、他方の領域の量子化パラメータを、前記フィルタ部のパラメータとして用いる
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(9) 前記フィルタ部のパラメータは、量子化パラメータの値であり、
前記フィルタ調整部は、前記カレント領域および前記隣接領域の量子化パラメータを量子化行列のDC成分を用いて補正し、補正した量子化パラメータを用いて、前記フィルタ部のパラメータを求める
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(10) 前記フィルタ部のパラメータは、量子化パラメータの値であり、
前記フィルタ調整部は、前記カレント領域および前記隣接領域の少なくともどちらか一方の領域が直交変換係数を持たない場合、前記領域の量子化パラメータとして、0、前記領域の直前の領域において用いられた量子化パラメータ、前記領域の直前の領域に対する量子化パラメータの予測値、または、前記領域が属するスライスに対する量子化パラメータを用いて、前記フィルタ部のパラメータを求める
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(11) 前記閾値は、水平方向のフィルタ処理と垂直方向のフィルタ処理とで異なる値に設定されている
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記閾値は、前記カレント領域のサイズに応じて異なる値に設定されている
前記(1)乃至(11)のいずれかに記載の画像処理装置。
(13) 前記フィルタ調整部は、前記カレント領域のサイズが大きくなるに従って小さい値となるように設定されている
前記(1)乃至(12)のいずれかに記載の画像処理装置。
(14) 前記フィルタ調整部は、前記復号部により生成された前記画像の輝度成分にフィルタ処理を施すように、前記フィルタ部を制御する
前記(1)乃至(13)のいずれかに記載の画像処理装置。
(15) 前記カレント領域の量子化パラメータと、前記隣接領域の量子パラメータとの差分値を生成する差分値生成部
をさらに備える前記(1)乃至(14)のいずれかに記載の画像処理装置。
(16) 画像処理装置が、
画像を復号し、
階層構造を有する単位で符号化されたビットストリームを復号して、画像を生成し、
生成された前記画像の処理対象であるカレント領域の量子化パラメータと、前記カレント領域と境界を挟んで隣接する隣接領域の量子パラメータとの差分値が閾値よりも大きい場合、前記境界に対してのフィルタ処理が強くかかるように、フィルタのパラメータを調整し、
生成された前記画像に前記フィルタ処理を施す
画像処理方法。
(17) 画像を符号化する際に、ローカルデコードされた画像に対してフィルタ処理を施すフィルタ部と、
前記画像の処理対象であるカレント領域の量子化パラメータと、前記カレント領域と境界を挟んで隣接する隣接領域の量子化パラメータとの差分値が閾値よりも大きい場合、前記境界に対してのフィルタ処理が強くかかるように、前記フィルタ部のパラメータを調整するフィルタ調整部と、
前記フィルタ処理が施された前記画像を予測画像として用いて階層構造を有する単位で符号化する符号化部と
を備える画像処理装置。
(18) 画像処理装置が、
画像の処理対象であるカレント領域の量子化パラメータと、前記カレント領域と境界を挟んで隣接する隣接領域の量子化パラメータとの差分値が閾値よりも大きい場合、前記境界に対してのフィルタ処理が強くかかるように、フィルタのパラメータを調整し、
前記画像を符号化する際に、ローカルデコードされた画像に対してフィルタ処理を施し、
前記フィルタ処理が施された前記画像を予測画像として用いて階層構造を有する単位で符号化する
画像処理方法。