以下、図を参照して本発明の実施の形態について説明する。
[画像符号化装置の構成例]
図5は、本発明を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図5の画像符号化装置101は、A/D変換部11、画面並べ替えバッファ12、演算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、逆量子化部18、逆直交変換部19、演算部20、デブロックフィルタ21、フレームメモリ22、スイッチ23、イントラ予測部24、動き予測・補償部25、予測画像選択部26、およびレート制御部27を備える点で、図1の画像符号化装置1と共通している。
また、図5の画像符号化装置101は、適応ループフィルタ111およびエッジ検出部112が追加された点で、図1の画像符号化装置1と異なっている。
すなわち、適応ループフィルタ111とエッジ検出部112は、デブロックフィルタ21の後、フレームメモリ22の前に設けられている。すなわち、適応ループフィルタ111とエッジ検出部112は、演算部13、直交変換部14、量子化部15、逆量子化部18、逆直交変換部19、演算部20、デブロックフィルタ21、フレームメモリ22、スイッチ23、イントラ予測部24または動き予測・補償部25、および予測画像選択部26からなる動き補償ループ内に設けられている。すなわち、動き補償ループ内では、画像がループして用いられている。
適応ループフィルタ111は、デブロックフィルタ21からの復号画像(ローカルデコード後のベースバンド情報)を、そのベースバンド情報に応じたクラスに分類する。具体的には、デブロックフィルタ21からの復号画像は、そのベースバンド情報として、ベースバンド情報から得られる情報、すなわち、エッジ検出部112により検出されるエッジ情報に応じたクラスに分類される。
適応ループフィルタ111は、分類されたクラス毎に、画面並べ替えバッファ12からの原画像とデブロックフィルタ21からの画像との残差を最小とするよう、フィルタ係数の算出を行う。適応ループフィルタ111は、分類されたクラス毎に、算出されたフィルタ係数を用いて、フィルタ処理を行い、フィルタ処理後の画像を、フレームメモリ22に出力する。このフィルタとして、例えば、ウィナーフィルタ(Wiener Filter)が用いられる。
また、適応ループフィルタ111は、算出したフィルタ係数を、可逆符号化部16に送る。なお、このとき、可逆符号化部16は、図3の場合のように、適応ループフィルタ111により算出されたフィルタ係数も、符号化し、圧縮画像のスライスヘッダ部またはピクチャパラメータセットに挿入する。
エッジ検出部112は、デブロックフィルタ21からの復号画像(すなわち、ローカルデコード後のベースバンド情報)から、エッジを検出し、エッジを検出した結果であるエッジ情報を、適応ループフィルタ111に供給する。
なお、図5の例においては、デブロックフィルタ21からの復号画像が直接エッジ検出部112に入力される例が示されているが、デブロックフィルタ21からの復号画像を一旦フレームメモリ22に格納して、それがエッジ検出部112に入力されるように構成することも可能である。
[デブロックフィルタ]
次に、上述した各処理の詳細について説明する。まず、デブロックフィルタについて説明する。デブロックフィルタ21は、動き補償ループ内に含まれ、復号画像におけるブロック歪を除去する。これにより、動き補償処理により参照される画像へのブロック歪の伝播が抑制される。
デブロックフィルタの処理としては、符号化データに含まれる、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"であるとして処理を行う。
以下においては、図6に示されるように、デブロックフィルタ処理前の画素値をp0〜p3、q0〜q3とし、処理後の画素値をp0'〜p3'、q0'〜q3'とする。
まず、デブロックフィルタ処理に先立ち、図6におけるp及びqに対して、図7に示される表のように、Bs(Boundary Strength)が定義される。
図6における(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つのパラメータによって、図8に示されるグラフの矢印のように、ユーザがその強度を調整することが可能である。
図9に示される表のように、αはindexAから求められる。同様に、βはindexBから求められる。この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の値に応じて、図10Aおよび図10Bに示される表のように定義される。
また、式(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)
[拡張マクロブロックの例]
また、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。画像符号化装置101においては、図11に示されるように、マクロブロックサイズを、例えば、32画素×32画素、64×64画素といった大きさにすることが採用される場合がある。
図11は、非特許文献2で提案されているブロックサイズの例を示す図である。非特許文献2では、マクロブロックサイズが32×32画素に拡張されている。
図11の上段には、左から、32×32画素、32×16画素、16×32画素、および16×16画素のブロック(パーティション)に分割された32×32画素で構成されるマクロブロックが順に示されている。図11の中段には、左から、16×16画素、16×8画素、8×16画素、および8×8画素のブロックに分割された16×16画素で構成されるブロックが順に示されている。また、図11の下段には、左から、8×8画素、8×4画素、4×8画素、および4×4画素のブロックに分割された8×8画素のブロックが順に示されている。
すなわち、32×32画素のマクロブロックは、図11の上段に示される32×32画素、32×16画素、16×32画素、および16×16画素のブロックでの処理が可能である。
上段の右側に示される16×16画素のブロックは、H.264/AVC方式と同様に、中段に示される16×16画素、16×8画素、8×16画素、および8×8画素のブロックでの処理が可能である。
中段の右側に示される8×8画素のブロックは、H.264/AVC方式と同様に、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックでの処理が可能である。
これらのブロックは、以下の3階層に分類することができる。すなわち、図11の上段に示される32×32画素、32×16画素、および16×32画素のブロックを第1階層と呼ぶ。上段の右側に示される16×16画素のブロック、並びに、中段に示される16×16画素、16×8画素、および8×16画素のブロックを、第2階層と呼ぶ。中段の右側に示される8×8画素のブロック、並びに、下段に示される8×8画素、8×4画素、4×8画素、および4×4画素のブロックを、第3階層と呼ぶ。
図11のような、階層構造を採用することにより、16×16画素ブロック以下に関しては、現在のAVCにおけるマクロブロックと互換性を保ちながら、そのスーパーセットとして、より大きなブロックが定義されている。
[予測モードの選択]
さらに、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。画像符号化装置101においては、例えば、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択する方法が考えられる。この方法の場合、どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数値は、以下の式(33)のように求めることができる。
Cost(Mode∈Ω)=D+λ×R ・・・(33)
式(33)において、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合である。また、Dは、当該予測モードModeで符号化した場合の、復号画像と入力画像の差分エネルギーである。さらに、λは、量子化パラメータの関数として与えられるLagrange未定乗数である。また、Rは、直交変換係数を含んだ、当該モードModeで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行なうには、上記パラメータD及びRを算出するため、全ての候補モードModeにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
これに対してLow Complexity Modeにおけるコスト関数値は、以下の式(34)のように求めることができる。
Cost(Mode∈Ω)=D+QP2Quant(QP)×HeaderBit ・・・(34)
となる。式(34)において、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。また、QP2Quant(QP)は、量子化パラメータQPの関数として与えられる。さらに、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードModeに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
High Profileにおいては、例えば、4×4直交変換と、8×8直交変換との選択も、上述のHigh Complexity Mode若しくはLow Complexity Modeのいずれかに基づき行なわれる。
[詳細な構成例]
以上の画像符号化装置101においては、画像符号化処理に、適応ループフィルタ処理を適用する。画像符号化装置101は、動き予測・補償ループ内に適応ループフィルタ111を有し、ローカルデコードされた画像を、その画像のベースバンド情報に応じてクラス分類し、クラス分類されたそれぞれのクラスに対して、最適フィルタ係数の算出およびフィルタ処理を行う。
例えば、ベースバンド情報として、動き予測・補償ループ内に適応ループフィルタ111とともに設けられたエッジ検出部112によりローカルデコードされた画像から得られるエッジ情報が用いられる。
以下に、適応ループフィルタ111とエッジ検出部112の構成の詳細について説明する。適応ループフィルタ111においては、非特許文献1において提案されている方法に準じて、動き補償ループ内で適応フィルタ処理を行う。
ただし、非特許文献1においては、画面全体を1つのクラスとして、ウィナーフィルタにより劣化を最小限にする処理が行われる。
これに対して、適応ループフィルタ111においては、画面全体を、平坦部を含む平坦領域のクラスと、エッジまたはテクスチャを含む、エッジ・テクスチャ領域のクラスにクラス分類が行われる。そして、それぞれのクラスに対して、ウィナーフィルタにより劣化を最小限にする処理が行われる。
すなわち、復号処理(ローカルデコード処理)がなされ、デブロックフィルタ処理がなされた復号画像は、適応ループフィルタ111だけでなく、エッジ検出部112にも入力される。
エッジ検出部112においては、例えば、次の式(35)に示されるSobel Operatorが、復号画像のそれぞれの画素に対して施される。
そして、式(35)の結果を合計したものが、それぞれg
HSとg
VSとして、次の式(36)のように、それぞれの画素におけるエッジの強さをそれぞれの画素に対して算出される。
式(36)により算出された各画素のエッジの強さを、当該ブロックまたは当該マクロブロックで合計したものが、当該ブロックまたは当該マクロブロックにおけるエッジ強度edge_strengthとする。
そして、適応ループフィルタ111においては、このエッジ強度edge_strengthと、予め定められた閾値Θが比較されて、次の式(37)が成り立つならば、当該ブロックまたは当該マクロブロックは、エッジ・テクスチャ領域であると判定される。式(37)が成り立たないならば、当該ブロックまたは当該マクロブロックは、平坦領域であると判定される。
edge_strength > Θ ・・・(37)
すなわち、エッジ強度が閾値Θよりも大きい場合には、当該ブロックまたは当該マクロブロックは、エッジ・テクスチャ領域であると判定され、エッジ強度が閾値Θより以下である場合には、当該ブロックまたは当該マクロブロックは、平坦領域であると判定される。
適応ループフィルタ111は、以上のようにして分類された平坦領域クラスと、エッジ・テクスチャ領域クラスの各クラスに対して、適応フィルタ係数の算出およびフィルタ処理を行う。
なお、閾値Θは、当該マクロブロックに対する量子化パラメータQPの関数として与えられてもよい。すなわち、ビットレートが低いとき、つまり、量子化パラメータが高いときは、量子化歪みのため、また、デブロックフィルタがよりかかりやすくなるため、入力画像の持つ高域成分(エッジ情報)が失われやすい。より高いQPに対して、より低い閾値Θを設定することにより、この高域成分喪失を回避、抑制することが可能である。
また、H.264/AVC方式においては、デブロックフィルタをかける、またはかけないの制御を、図示せぬ操作入力部などを操作することでユーザが設定することが可能であるが、閾値Θの値を、デブロックフィルタの有無(かける、かけない)に応じて設定してもよい。すなわち、デブロックフィルタをかけない場合に比して、かける場合の方が、当該フレームのそれぞれに対してローパスフィルタ処理が行われている可能性がより高くなるため、エッジ情報も、より失われている可能性が高い。このため、前者の場合に比して、後者の場合、より小さな値を閾値Θとして設定する必要がある。
画面内のフラットな領域(平坦部の領域)に対しては、ブロック歪みが生じやすく、エッジやテクスチャを含む領域に対しては、モスキート歪みが生じやすい。しかしながら、非特許文献1に提案された方法では、画像全体の劣化を最小にすることはできても、平坦領域およびエッジ・テクスチャ領域のそれぞれにおける特有な画質劣化を改善することが困難であった。
そこで、適応ループフィルタ111においては、復号画像(ベースバンド情報)に応じてクラス分類が行われ、それぞれのクラスに対してフィルタ係数の算出、適応フィルタ処理が行われる。
すなわち、画面内を平坦領域と、エッジ・テクスチャ領域とのクラスに分け、それぞれに対して、適応フィルタ処理が行われる。
これにより、平坦領域およびエッジ・テクスチャ領域のそれぞれにおける特有な画質劣化の改善を実現することが可能になる。
なお、平坦領域のブロック歪みとエッジ、テクスチャ領域のモスキート歪みが低減されるので、結果的に、画面全体の歪みが低減され、デブロックフィルタ21の処理を不要にすることも可能である。
また、上述したエッジ検出は、後述する画像復号装置201においても同様の動作を行うことが可能である。すなわち、クラス分類のためのフラグ情報(すなわち、どのクラスであるかということを識別するための情報)を復号側に送る必要がない。したがって、フラグ情報のオーバーヘッドにより符号化効率を低下させることがない。
さらに、また、モスキートノイズが生じるのは、単に、エッジまたはテクスチャが含まれるというだけでなく、エッジまたはテクスチャが含まれる部分の、特に高域成分に対して、量子化誤差が生じた場合である。単に、入力画像でエッジを検出して、クラス分類を行い、ブロックもしくはマクロブロック毎にフラグ情報を送るだけでは、モスキートノイズの除去がまだまだ足りない。
上述した画像符号化装置101のように、復号画像を用い、さらに、閾値の設定にも、量子化パラメータや、デブロックフィルタを施したか否かの符号化情報を用いることで、モスキートノイズをより良好に除去することが可能になる。
なお、上記説明においては、クラス分類に、ベースバンド情報として、エッジ情報を用いる例を説明したが、エッジ情報に限定されない。例えば、復号画像を構成するそれぞれのブロックまたはマクロブロック毎に、画素値の分散値(アクティビティ)を算出して、それに応じてクラス分類を行うようにしてもよい。すなわち、クラス分類に、ベースバンド情報として、ベースバンド情報から得られる画素値の分散値を用いることもできる。
この場合も、画素値の分散値が所定の閾値よりも大きい場合には、当該ブロックまたは当該マクロブロックは、エッジ・テクスチャ領域であると判定され、画素値の分散値が所定の閾値より以下である場合には、当該ブロックまたは当該マクロブロックは、平坦領域であると判定される。分散値の場合も所定の閾値は、エッジ情報の場合と同様に、量子化パラメータやデブロックフィルタのオン、オフにより設定される。
また、上記説明においては、エッジ検出の方法として、Sobel Operatorを用いたエッジ検出方法を説明したが、それに限定されず、他のエッジ検出方法を用いるようにしてもよい。
[適応ループフィルタの構成例]
図12は、適応ループフィルタ111の構成例を示すブロック図である。
図12の例において、適応ループフィルタ111は、クラス分類部131、フィルタ係数算出部132−1および132−2、並びにフィルタ処理部133−1および133−2により構成されている。
デブロックフィルタ21からのデブロックフィルタ処理後の画素値が、クラス分類部131とエッジ検出部112に供給される。また、そのデブロックフィルタ処理後の画素値を用いて検出されたエッジ検出の結果であるエッジ情報が、エッジ検出部112からクラス分類部131に供給される。
クラス分類部131は、エッジ検出部112からのエッジ情報に応じて、デブロックフィルタ処理後の各マクロブロック(またはブロック)の画素値を、平坦領域クラスに属するものと、エッジ・テクスチャ領域クラスに属するものに分類する。そして、クラス分類部232は、分類したクラスの画素値を、それぞれ、フィルタ係数算出部132−1および132−2に供給する。
画面並べ替えバッファ12から、入力画像画素値が、フィルタ係数算出部132−1および132−2に供給される。フィルタ係数算出部132−1および132−2は、それぞれ、平坦領域クラスおよびエッジ・テクスチャ領域クラスに対する適応フィルタ係数を算出する。
フィルタ係数算出部132−1により算出された平坦領域クラスに対する適応フィルタ係数は、平坦領域クラスのデブロックフィルタ処理後の画素値とともに、フィルタ処理部133−1に供給される。フィルタ係数算出部132−2により算出されたエッジ・テクスチャ領域クラスに対する適応フィルタ係数は、エッジ・テクスチャ領域クラスのデブロックフィルタ処理後の画素値とともに、フィルタ処理部133−2に供給される。また、算出された各クラスに対する適応フィルタ係数は、可逆符号化部16にも供給される。
フィルタ処理部133−1は、平坦領域クラスのデブロックフィルタ処理後の画素値に対して、平坦領域クラスに対する適応フィルタ係数を用いてフィルタ処理を行う。フィルタ処理部133−2は、エッジ・テクスチャ領域クラスのデブロックフィルタ処理後の画素値に対して、エッジ・テクスチャ領域クラスに対する適応フィルタ係数を用いてフィルタ処理を行う。適応フィルタ処理後の画素値は、それぞれ、フレームメモリ22に出力される。
[画像符号化装置の符号化処理の説明]
次に、図13のフローチャートを参照して、図5の画像符号化装置101の符号化処理について説明する。
ステップS11において、A/D変換部11は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ12は、A/D変換部11より供給された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
画面並べ替えバッファ12から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ22から読み出され、スイッチ23を介してイントラ予測部24に供給される。
これらの画像に基づいて、ステップS13において、イントラ予測部24は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロックフィルタ21と適応ループフィルタ111によりフィルタリングされていない画素が用いられる。
ステップS13におけるイントラ予測処理の詳細は、図14を参照して後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部26に供給される。
画面並べ替えバッファ12から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ22から読み出され、スイッチ23を介して動き予測・補償部25に供給される。これらの画像に基づいて、ステップS14において、動き予測・補償部25は、動き予測・補償処理を行う。
ステップS14における動き予測・補償処理の詳細は、図15を参照して後述する。この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部26に供給される。
ステップS15において、予測画像選択部26は、イントラ予測部24および動き予測・補償部25より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部26は、決定した最適予測モードの予測画像を選択し、演算部13,20に供給する。この予測画像は、後述するステップS16,S21の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部24または動き予測・補償部25に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部24は、最適イントラ予測モードを示す情報(すなわち、イントラ予測モード情報)を、可逆符号化部16に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部25は、最適インター予測モードを示す情報と、さらに、必要に応じて、最適インター予測モードに応じた情報を可逆符号化部16に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
ステップS16において、演算部13は、ステップS12で並び替えられた画像と、ステップS15で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部25から、イントラ予測する場合はイントラ予測部24から、それぞれ予測画像選択部26を介して演算部13に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS17において、直交変換部14は演算部13から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS18において、量子化部15は変換係数を量子化する。この量子化に際しては、後述するステップS28の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS19において、逆量子化部18は量子化部15により量子化された変換係数を量子化部15の特性に対応する特性で逆量子化する。ステップS20において、逆直交変換部19は逆量子化部18により逆量子化された変換係数を直交変換部14の特性に対応する特性で逆直交変換する。
ステップS21において、演算部20は、予測画像選択部26を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部13への入力に対応する画像)を生成する。
ステップS22においてデブロックフィルタ21は、演算部20より出力された画像に対して、デブロックフィルタ処理を行う。これによりブロック歪みが除去される。デブロックフィルタ21からの復号画像は、適応ループフィルタ111およびエッジ検出部112に出力される。
ステップS23において、適応ループフィルタ111は、クラス分類係数算出処理を行う。このクラス分類係数算出処理の詳細は、図16を参照して後述される。なお、この場合の適応ループフィルタ111は、図12に示したように構成される。
ステップS23の処理により、復号画像のベースバンド情報、すなわち、ベースバンド情報から得られるエッジ情報に応じてクラス分類が行われ、各クラスに対して適応フィルタ係数が算出される。そして、算出された適応フィルタ係数が、各クラスに分類されたデブロックフィルタ処理後の画素値とともに、対応するフィルタ処理部133−1および133−2に供給される。
なお、ステップS23で算出された適応フィルタ係数の情報は、可逆符号化部16に供給され、後述するステップS26において、可逆符号化部16により符号化されて、圧縮画像のピクチャパラメータセットまたはスライスヘッダに付加される。
ステップS24において、適応ループフィルタ111は、算出された適応フィルタ係数を用いて、デブロックフィルタ処理後の画素値に対して、適応ループフィルタ処理を行う。適応フィルタ処理後の画素値は、フレームメモリ22に出力される。
すなわち、フィルタ処理部133−1は、平坦領域クラスのデブロックフィルタ処理後の画素値に対して、平坦領域クラスに対する適応フィルタ係数を用いてフィルタ処理を行う。フィルタ処理部133−2は、エッジ・テクスチャ領域クラスのデブロックフィルタ処理後の画素値に対して、エッジ・テクスチャ領域クラスに対する適応フィルタ係数を用いてフィルタ処理を行う。
ステップS25においてフレームメモリ22は、フィルタリングされた画像を記憶する。なお、フレームメモリ22にはデブロックフィルタ21と適応ループフィルタ111によりフィルタ処理されていない画像も演算部20から供給され、記憶される。
一方、上述したステップS18において量子化された変換係数は、可逆符号化部16にも供給される。ステップS26において、可逆符号化部16は量子化部15より出力された量子化された変換係数を符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。
また、このとき、上述したステップS24において可逆符号化部16に入力された適応フィルタ係数、並びに、上述したステップS15において可逆符号化部16に入力された、イントラ予測部24からのイントラ予測モード情報、または、動き予測・補償部25からの最適インター予測モードに応じた情報なども符号化され、ヘッダ情報に付加される。
例えば、インター予測モードを示す情報は、マクロブロック毎に符号化される。動きベクトル情報や参照フレーム情報は、対象となるブロック毎に符号化される。フィルタ係数は、スライス毎あるいはピクチャパラメータセット毎に符号化される。
ステップS27において蓄積バッファ17は差分画像を圧縮画像として蓄積する。蓄積バッファ17に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS28においてレート制御部27は、蓄積バッファ17に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部15の量子化動作のレートを制御する。
[イントラ予測処理の説明]
次に、図14のフローチャートを参照して、図13のステップS13におけるイントラ予測処理を説明する。なお、図14の例においては、輝度信号の場合を例として説明する。
イントラ予測部24は、ステップS41において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対してイントラ予測を行う。
輝度信号のイントラ予測モードには、9種類の4×4画素および8×8画素のブロック単位、並びに4種類の16×16画素のマクロブロック単位の予測モードがあり、色差信号のイントラ予測モードには、4種類の8×8画素のブロック単位の予測モードがある。色差信号のイントラ予測モードは、輝度信号のイントラ予測モードと独立に設定が可能である。輝度信号の4×4画素および8×8画素のイントラ予測モードについては、4×4画素および8×8画素の輝度信号のブロック毎に1つのイントラ予測モードが定義される。輝度信号の16×16画素のイントラ予測モードと色差信号のイントラ予測モードについては、1つのマクロブロックに対して1つの予測モードが定義される。
具体的には、イントラ予測部24は、処理対象のブロックの画素を、フレームメモリ22から読み出され、スイッチ23を介して供給される復号済みの画像を参照して、イントラ予測する。このイントラ予測処理が、各イントラ予測モードで行われることで、各イントラ予測モードでの予測画像が生成される。なお、参照される復号済みの画素としては、デブロックフィルタ21と適応ループフィルタ111によりフィルタリングされていない画素が用いられる。
イントラ予測部24は、ステップS42において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対するコスト関数値を算出する。ここで、コスト関数値を求めるためのコスト関数としては、式(33)または式(34)のコスト関数が用いられる。
イントラ予測部24は、ステップS43において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して、それぞれ最適モードを決定する。すなわち、上述したように、イントラ4×4予測モードおよびイントラ8×8予測モードの場合には、予測モードの種類が9種類あり、イントラ16×16予測モードの場合には、予測モードの種類が4種類ある。したがって、イントラ予測部24は、ステップS42において算出されたコスト関数値に基づいて、それらの中から、最適イントラ4×4予測モード、最適イントラ8×8予測モード、最適イントラ16×16予測モードを決定する。
イントラ予測部24は、ステップS44において、4×4画素、8×8画素、および16×16画素の各イントラ予測モードに対して決定された各最適モードの中から、ステップS42において算出されたコスト関数値に基づいて、最適イントラ予測モードを選択する。すなわち、4×4画素、8×8画素、および16×16画素に対して決定された各最適モードの中から、コスト関数値が最小値であるモードを、最適イントラ予測モードとして選択する。そして、イントラ予測部24は、最適イントラ予測モードで生成された予測画像とそのコスト関数値とを、予測画像選択部26に供給する。
[動き予測・補償処理の説明]
次に、図15のフローチャートを参照して、図13のステップS14の動き予測・補償処理について説明する。
動き予測・補償部25は、ステップS61において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、各インター予測モードの処理対象のブロックについて、動きベクトルと参照画像がそれぞれ決定される。
動き予測・補償部25は、ステップS62において、16×16画素乃至4×4画素からなる8種類の各インター予測モードについて、ステップS61で決定された動きベクトルに基づいて、参照画像に動き予測と補償処理を行う。この動き予測と補償処理により、各インター予測モードでの予測画像が生成される。
動き予測・補償部25は、ステップS63において、16×16画素乃至4×4画素からなる8種類の各インター予測モードに対して、上述した式(33)または式(34)で示されるコスト関数値を算出する。
ステップS64において、動き予測・補償部25は、ステップS63において算出されたインター予測モードに対してのコスト関数値を比較し、最小値を与える予測モードを、最適インター予測モードとして決定する。そして、動き予測・補償部25は、最適インター予測モードで生成された予測画像とそのコスト関数値を、予測画像選択部26に供給する。
[クラス分類係数算出処理の説明]
次に、図16のフローチャートを参照して、図13のステップS23のクラス分類係数算出処理について説明する。
デブロックフィルタ21からのデブロックフィルタ処理後の画素値がクラス分類部131およびエッジ検出部112に供給される。
エッジ検出部112は、ステップS81において、デブロックフィルタ処理後の画素値(すなわち、ベースバンド情報)に対して、エッジ検出を行う。具体的には、エッジ検出部112は、例えば、式(36)および式(35)を参照して上述したように、復号画像を構成する当該ブロックまたはマクロブロックにおけるエッジ強度を算出する。そして、エッジ検出部112は、算出したエッジ強度情報を、エッジ検出の結果として、クラス分類部131に供給する。
クラス分類部131は、ステップS82において、エッジ検出部112からのエッジ検出の結果と所定の閾値Θを比較することで、1つのブロック(マクロブロック)がエッジ、テクスチャを含むブロック(マクロブロック)であるか否かを判定する。
上述した式(37)が成り立つ場合、ステップS82において、そのブロック(マクロブロック)が、エッジ、テクスチャを含むブロック(マクロブロック)であると判定され、処理は、ステップS83に進む。ステップS83において、クラス分類部131は、そのブロック(マクロブロック)を、エッジ・テクスチャ領域クラスに分類する。
上述した式(37)が成り立たない場合、ステップS82において、そのブロック(マクロブロック)が、エッジ、テクスチャを含むブロック(マクロブロック)ではないと判定され、処理は、ステップS84に進む。ステップS84において、クラス分類部131は、そのブロック(マクロブロック)を、平坦領域クラスに分類する。
ステップS83またはS84の後、処理は、ステップS85に進む。ステップS85において、クラス分類部131は、画面を構成するすべてのブロック(マクロブロック)に対する処理が終了したか否かを判定する。ステップS85において、終了していないと判定された場合、ステップS82に戻り、それ以降の処理が繰り返される。
ステップS85において、すべてのブロック(マクロブロック)に対する処理が終了したと判定された場合、クラス分類部131は、各クラスに分類されたブロック(マクロブロック)の画素値を、各フィルタ係数算出部132−1および132−2に供給する。
すなわち、クラス分類部131は、平坦領域クラスに分類されたブロック(マクロブロック)の画素値を、フィルタ係数算出部132−1に供給する。エッジ・テクスチャ領域クラスに分類されたブロック(マクロブロック)の画素値を、フィルタ係数算出部132−2に供給する。その後、処理は、ステップS86に進む。
ステップS86において、フィルタ係数算出部132−1および132−2は、平坦領域クラスおよびエッジ・テクスチャ領域クラスに対する適応フィルタ係数を算出する。
すなわち、フィルタ係数算出部132−1は、画面並べ替えバッファ12からの入力画像画素値と、平坦領域クラスのデブロックフィルタ処理後の画素値との残差を最小とするよう、平坦領域クラスに対する適応フィルタ係数を算出する。算出された平坦領域クラスに対する適応フィルタ係数は、平坦領域クラスのデブロックフィルタ処理後の画素値とともに、フィルタ処理部133−1に供給される。
また、フィルタ係数算出部132−2は、画面並べ替えバッファ12からの入力画像画素値と、エッジ・テクスチャ領域クラスのデブロックフィルタ処理後の画素値との残差を最小とするよう、エッジ・テクスチャ領域クラスに対する適応フィルタ係数を算出する。算出されたエッジ・テクスチャ領域クラスに対する適応フィルタ係数は、エッジ・テクスチャ領域クラスのデブロックフィルタ処理後の画素値とともに、フィルタ処理部133−2に供給される。各クラスの適応フィルタ係数は、さらに、可逆符号化部16にも供給される。
以上のように、ローカルデコードされた画素を、そのベースバンド情報に応じて、平坦領域のマクロブロックのクラスと、エッジまたはテクスチャが含まれる領域のマクロブロックのクラスとに分類し、クラス毎に適応ループフィルタ処理を行うようにした。
これにより、画面内のローカルな歪みを低減することが可能になる。すなわち、平坦領域およびエッジ・テクスチャ領域のそれぞれにおける特有な画質劣化の改善を実現することが可能になる。
また、クラス分類のためのフラグ情報(すなわち、どのクラスであるかということを識別するための情報)を復号側に送る必要がないので、フラグ情報のオーバーヘッドにより符号化効率を低下させることがない。
符号化された圧縮画像は、所定の伝送路を介して伝送され、画像復号装置により復号される。
[画像復号装置の構成例]
図17は、本発明を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。
図17の画像復号装置201は、蓄積バッファ41、可逆復号部42、逆量子化部43、逆直交変換部44、演算部45、デブロックフィルタ46、画面並べ替えバッファ47、D/A変換部48、フレームメモリ49、スイッチ50、イントラ予測部51、動き補償部52、およびスイッチ53を備える点で、図2の画像復号装置31と共通している。
また、図11の画像復号装置201は、適応ループフィルタ211およびエッジ検出部212が追加された点で、図2の画像復号装置31と異なっている。
すなわち、可逆復号部42は、図2の可逆復号部42と同様に、蓄積バッファ41より供給された、図5の可逆符号化部16により符号化された情報を、可逆符号化部16の符号化方式に対応する方式で復号する。このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)、平坦領域クラスおよびエッジ・テクスチャ領域クラスの適応フィルタ係数なども復号される。
動きベクトル情報および参照フレーム情報は、ブロック毎に動き補償部52に供給される。予測モード情報は、マクロブロック毎にイントラ予測部51および動き補償部52の対応する部に供給される。各クラスの適応フィルタ係数は、スライス毎またはピクチャパラメータセット毎に適応ループフィルタ211に供給される。
適応ループフィルタ211およびエッジ検出部212は、デブロックフィルタ46の後、フレームメモリ49の前に設けられている。すなわち、適応ループフィルタ211およびエッジ検出部212は、演算部45、デブロックフィルタ46、フレームメモリ49、スイッチ50、動き補償部52、およびスイッチ53からなる動き補償ループ内に設けられている。すなわち、動き補償ループ内では、画像がループして用いられている。
適応ループフィルタ211は、可逆復号部42から供給された適応フィルタ係数を用いて、デブロックフィルタ46からの復号画像にフィルタ処理を行う。このフィルタとして、例えば、ウィナーフィルタ(Wiener Filter)が用いられる。
ただし、適応ループフィルタ211は、図5の適応ループフィルタ111と同様に、デブロックフィルタ46からの復号画像(ローカルデコード後のベースバンド情報)を、そのベースバンド情報に応じたクラスに分類する。具体的には、デブロックフィルタ46からの復号画像は、そのベースバンド情報として、ベースバンド情報から得られる情報、すなわち、エッジ検出部212により検出されるエッジ情報に応じたクラスに分類される。
適応ループフィルタ211は、分類されたクラス毎に、可逆復号部42から供給された適応フィルタ係数を用いて、フィルタ処理をそれぞれ行い、フィルタ処理後の画像を、画面並べ替えバッファ47およびフレームメモリ49に出力する。
エッジ検出部212は、デブロックフィルタ46からの復号画像(すなわち、ローカルデコード後のベースバンド情報)から、図5のエッジ検出部112と同様にしてエッジを検出し、エッジを検出した結果であるエッジ情報を、適応ループフィルタ211に供給する。
なお、図17の例においても、デブロックフィルタ46からの復号画像が直接エッジ検出部212に入力される例が示されているが、デブロックフィルタ46からの復号画像を一旦フレームメモリ49に格納して、それがエッジ検出部212に入力されるように構成することも可能である。
なお、図5の適応ループフィルタ111においては、各クラスの画素値が用いられて適応フィルタ係数が算出され、算出されたフィルタ係数が用いられて、各クラスの画素値に対してフィルタ処理が行われる。これに対して、図17の適応ループフィルタ211においては、圧縮画像のヘッダからスライス毎またはピクチャパラメータセット毎に取得されるフィルタ係数が用いられて、各クラスの画素値に対してフィルタ処理が行われる。
[適応ループフィルタの構成例]
図18は、適応ループフィルタ211の構成例を示すブロック図である。
図18の例において、適応ループフィルタ211は、フィルタ係数バッファ231、クラス分類部232、並びにフィルタ処理部233−1および233−2により構成されている。
可逆復号部42は、ピクチャパラメータセットまたはスライスヘッダから得られる、平坦領域クラスおよびエッジ・テクスチャ領域クラスに対する適応フィルタ係数を、フィルタ係数バッファ231に供給してくる。
フィルタ係数バッファ231は、平坦領域クラスに対する適応フィルタ係数とエッジ・テクスチャ領域クラスに対する適応フィルタ係数を蓄積する。そして、フィルタ係数バッファ231は、平坦領域クラスに対する適応フィルタ係数を、フィルタ処理部233−1に供給し、エッジ・テクスチャクラスに対する適応フィルタ係数を蓄積し、フィルタ処理部233−2に供給する。
デブロックフィルタ46からのデブロックフィルタ処理後の画素値が、クラス分類部232とエッジ検出部112に供給される。また、そのデブロックフィルタ処理後の画素値を用いて検出されたエッジ検出の結果であるエッジ情報が、エッジ検出部212からクラス分類部232に供給される。
クラス分類部232は、エッジ検出部212からのエッジ情報に応じて、デブロックフィルタ処理後の各マクロブロック(またはブロック)の画素値を、平坦領域クラスに属するものと、エッジ・テクスチャ領域クラスに属するものに分類する。そして、クラス分類部232は、分類したクラスの画素値を、それぞれ、フィルタ処理部233−1および233−2に供給する。
フィルタ処理部233−1は、フィルタ係数バッファ231からの平坦領域クラスに対する適応フィルタ係数を用いて、平坦領域クラスに分類された画素値に対して、フィルタ処理を行う。フィルタ処理部233−2は、フィルタ係数バッファ231からのエッジ・テクスチャ領域クラスに対する適応フィルタ係数を用いて、エッジ・テクスチャ領域クラスに分類された画素値に対して、フィルタ処理を行う。
適応フィルタ処理後の各画素値は、画面並べ替えバッファ47およびフレームメモリ49に出力される。
[画像復号装置の復号処理の説明]
次に、図19のフローチャートを参照して、画像復号装置201が実行する復号処理について説明する。
ステップS131において、蓄積バッファ41は伝送されてきた画像を蓄積する。ステップS132において、可逆復号部42は、蓄積バッファ41から供給される圧縮画像を復号する。すなわち、図5の可逆符号化部16により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
このとき、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モードを示す情報)、各クラスに対する適応フィルタ係数なども復号される。
すなわち、予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部51に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報および参照フレーム情報は、動き補償部52に供給される。各クラスに対する適応フィルタ係数は、スライスまたはピクチャパラメータセット毎に復号され、適応ループフィルタ211に供給される。
ステップS133において、イントラ予測部51または動き補償部52は、可逆復号部42から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。
すなわち、可逆復号部42からイントラ予測モード情報が供給された場合、イントラ予測部51は、イントラ予測モードのイントラ予測処理を行い、イントラ予測画像を生成する。可逆復号部42からインター予測モード情報が供給された場合、動き補償部52は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。
ステップS133における予測画像生成処理の詳細は、図20を参照して後述するが、この処理により、イントラ予測部51により生成された予測画像(イントラ予測画像)、または動き補償部52により生成された予測画像(インター予測画像)がスイッチ53に供給される。
ステップS134において、スイッチ53は予測画像を選択する。すなわち、イントラ予測部51により生成された予測画像、または動き補償部52により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部45に供給され、後述するステップS137において逆直交変換部44の出力と加算される。
上述したステップS132において、可逆復号部42により復号された変換係数は、逆量子化部43にも供給される。ステップS135において、逆量子化部43は可逆復号部42により復号された変換係数を、図5の量子化部15の特性に対応する特性で逆量子化する。
ステップS136において逆直交変換部44は、逆量子化部43により逆量子化された変換係数を、図5の直交変換部14の特性に対応する特性で逆直交変換する。これにより図5の直交変換部14の入力(演算部13の出力)に対応する差分情報が復号されたことになる。
ステップS137において、演算部45は、上述したステップS134の処理で選択され、スイッチ53を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。ステップS138においてデブロックフィルタ46は、演算部45より出力された画像に対して、デブロックフィルタ処理を行う。これにより、画面全体におけるブロック歪みが除去される。
ステップS139において、適応ループフィルタ111は、クラス分類フィルタ処理を行う。このクラス分類フィルタ処理の詳細は、図21を参照して後述される。なお、この場合の適応ループフィルタ211は、図18に示したように構成される。
ステップS139の処理により、復号画像のベースバンド情報、すなわち、ベースバンド情報から得られるエッジ情報に応じてクラス分類が行われ、各クラスに対して適応フィルタ処理が行われる。適応フィルタ処理後の画素値は、画面並べ替えバッファ47およびフレームメモリ49に出力される。
ステップS140においてフレームメモリ49は、適応フィルタリングされた画像を記憶する。
ステップS141において、画面並べ替えバッファ47は、適応ループフィルタ211後の画像の並べ替えを行う。すなわち画像符号化装置101の画面並べ替えバッファ12により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS142において、D/A変換部48は、画面並べ替えバッファ47からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
[画像復号装置の予測画像生成処理の説明]
次に、図20のフローチャートを参照して、図19のステップS133の予測画像生成処理を説明する。
イントラ予測部51は、ステップS171において、対象ブロックがイントラ符号化されているか否かを判定する。可逆復号部42からイントラ予測モード情報がイントラ予測部51に供給されると、イントラ予測部51は、ステップS171において、対象ブロックがイントラ符号化されていると判定し、処理は、ステップS172に進む。このとき、イントラ予測部51は、このイントラ予測モード情報を、エッジ検出部212に供給する。
イントラ予測部51は、ステップS172において、イントラ予測モード情報を取得し、ステップS173において、イントラ予測を行い、イントラ予測画像を生成する。
すなわち、処理対象の画像がイントラ処理される画像である場合、必要な画像がフレームメモリ49から読み出され、スイッチ50を介してイントラ予測部51に供給される。ステップS173において、イントラ予測部51は、ステップS172で取得したイントラ予測モード情報に従ってイントラ予測し、予測画像を生成する。生成した予測画像は、スイッチ53に出力される。
一方、ステップS171において、イントラ符号化されていないと判定された場合、処理は、ステップS174に進む。
処理対象の画像がインター処理される画像である場合、可逆復号部42からインター予測モード情報、参照フレーム情報、動きベクトル情報が動き補償部52に供給される。
ステップS174において、動き補償部52は、可逆復号部42からの予測モード情報などを取得する。すなわち、動き(インター)予測モード情報、参照フレーム情報、動きベクトル情報が取得される。
ステップS175において、動き補償部52は、動きベクトル情報を用いて、フレームメモリ49からの参照画像に補償を行い、インター予測画像を生成する。生成された予測画像は、スイッチ53を介して、演算部45に供給され、図19のステップS137において逆直交変換部44の出力と加算される。
[画像復号装置のクラス分類フィルタ処理の説明]
次に、図21のフローチャートを参照して、図19のステップS139のクラス分類フィルタ処理について説明する。
可逆復号部42は、ピクチャパラメータセットまたはスライスヘッダから得られる、平坦領域クラスおよびエッジ・テクスチャ領域クラスに対する適応フィルタ係数を、フィルタ係数バッファ231にそれぞれ供給してくる。
フィルタ係数バッファ231は、平坦領域クラスおよびエッジ・テクスチャ領域クラスに対する適応フィルタ係数を蓄積し、平坦領域クラスに対する適応フィルタ係数を、フィルタ処理部233−1に供給する。また、フィルタ係数バッファ231は、エッジ・テクスチャ領域クラスに対する適応フィルタ係数を、フィルタ処理部233−2に供給する。
ステップS191において、フィルタ処理部233−1および233−2は、フィルタ係数バッファ231からのそれぞれのクラスに対する適応フィルタ係数をそれぞれ受け取る。
デブロックフィルタ46からのデブロックフィルタ処理後の画素値がクラス分類部232およびエッジ検出部212に供給される。
エッジ検出部212は、ステップS192において、デブロックフィルタ処理後の画素値(すなわち、ベースバンド情報)に対して、エッジ検出を行う。具体的には、エッジ検出部212は、例えば、式(36)および式(35)を参照して上述したように、復号画像を構成する当該ブロックまたはマクロブロックにおけるエッジ強度を算出する。そして、エッジ検出部212は、算出したエッジ強度情報を、エッジ検出の結果として、クラス分類部232に供給する。
クラス分類部232は、ステップS193において、エッジ検出部212からのエッジ検出の結果と所定の閾値Θを比較することで、処理対象のブロック(マクロブロック)がエッジ、テクスチャを含むブロック(マクロブロック)であるか否かを判定する。
上述した式(37)が成り立つ場合、ステップS193において、そのブロック(マクロブロック)が、エッジ、テクスチャを含むブロック(マクロブロック)であると判定され、処理は、ステップS194に進む。ステップS194において、クラス分類部231は、そのブロック(マクロブロック)を、エッジ・テクスチャ領域クラスに分類する。
クラス分類部232は、エッジ・テクスチャ領域クラスに分類したマクロブロックの画素値を、フィルタ処理部233−2に供給する。
ステップS195において、フィルタ処理部233−2は、エッジ・テクスチャ領域クラスについて適応フィルタ処理を行う。すなわち、フィルタ処理部233−2は、クラス分類部232によりエッジ・テクスチャ領域クラスに分類されたマクロブロックの画素値に対して、フィルタ係数バッファ231からのエッジ・テクスチャ領域クラスに対する適応フィルタ係数を用いて、フィルタ処理を行う。この適応フィルタ処理後の画素値は、画面並べ替えバッファ47およびフレームメモリ49に供給される。
一方、上述した式(37)が成り立たない場合、ステップS193において、そのブロック(マクロブロック)が、エッジ、テクスチャを含むブロック(マクロブロック)ではないと判定され、処理は、ステップS196に進む。ステップS196において、クラス分類部232は、そのブロック(マクロブロック)を、平坦領域クラスに分類する。
クラス分類部232は、平坦領域クラスに分類したマクロブロックの画素値を、フィルタ処理部233−1に供給する。
ステップS197において、フィルタ処理部233−1は、平坦領域クラスについて適応フィルタ処理を行う。すなわち、フィルタ処理部233−1は、クラス分類部232により平坦領域クラスに分類されたマクロブロックの画素値に対して、フィルタ係数バッファ231からの平坦領域クラスに対する適応フィルタ係数を用いて、フィルタ処理を行う。この適応フィルタ処理後の画素値は、画面並べ替えバッファ47およびフレームメモリ49に供給される。
以上のように、画像符号化装置101および画像復号装置201においては、復号画像が、そのベースバンド情報から得られるエッジ情報に応じたクラスに分類され、クラス毎に、適応ループフィルタ処理が行われる。
これにより、画面全体における画質劣化を最小限にするとともに、画面の平坦部、およびテクスチャなどを含む領域のそれぞれで生じてしまうローカルな画質劣化も改善することができる。すなわち、平坦領域およびエッジ・テクスチャ領域のそれぞれにおける特有な画質劣化の改善を実現することが可能になり、この結果、符号化効率が向上し、復号画像における主観画質を向上することができる。
なお、上記説明においては、画像復号装置201においては、画像符号化装置101により算出されたフィルタ係数を用いた適応フィルタ処理後の画素値を、フレームメモリ49だけでなく、画面並べ替えバッファ47にも出力するようにした。これに限らず、例えば、画面並べ替えバッファ47へ出力する適応フィルタについては、復号画像のベースバンド情報から得られるエッジ情報に応じて分類されたクラス毎にフィルタ係数を算出して、算出したフィルタ係数を用いて行うようにしてもよい。
これにより、復号画像における主観画質をさらに向上させることができる。
以上においては、符号化方式としてH.264/AVC方式をベースに用いるようにしたが、本発明はこれに限らず、動き予測・補償ループ内に適応フィルタを含む、その他の符号化方式/復号方式を適用することができる。
なお、本発明は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本発明は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本発明は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータの構成例]
図22は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)251、ROM(Read Only Memory)252、RAM(Random Access Memory)253は、バス254により相互に接続されている。
バス254には、さらに、入出力インタフェース255が接続されている。入出力インタフェース255には、入力部256、出力部257、記憶部258、通信部259、およびドライブ260が接続されている。
入力部256は、キーボード、マウス、マイクロホンなどよりなる。出力部257は、ディスプレイ、スピーカなどよりなる。記憶部258は、ハードディスクや不揮発性のメモリなどよりなる。通信部259は、ネットワークインタフェースなどよりなる。ドライブ260は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア261を駆動する。
以上のように構成されるコンピュータでは、CPU251が、例えば、記憶部258に記憶されているプログラムを入出力インタフェース255及びバス254を介してRAM253にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU251)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア261に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア261をドライブ260に装着することにより、入出力インタフェース255を介して、記憶部258にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部259で受信し、記憶部258にインストールすることができる。その他、プログラムは、ROM252や記憶部258に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した画像符号化装置101や画像復号装置201は、任意の電子機器に適用することができる。以下にその例について説明する。
[テレビジョン受像機の構成例]
図23は、本発明を適用した画像復号装置を用いるテレビジョン受像機の主な構成例を示すブロック図である。
図23に示されるテレビジョン受像機300は、地上波チューナ313、ビデオデコーダ315、映像信号処理回路318、グラフィック生成回路319、パネル駆動回路320、および表示パネル321を有する。
地上波チューナ313は、地上アナログ放送の放送波信号を、アンテナを介して受信し、復調し、映像信号を取得し、それをビデオデコーダ315に供給する。ビデオデコーダ315は、地上波チューナ313から供給された映像信号に対してデコード処理を施し、得られたデジタルのコンポーネント信号を映像信号処理回路318に供給する。
映像信号処理回路318は、ビデオデコーダ315から供給された映像データに対してノイズ除去などの所定の処理を施し、得られた映像データをグラフィック生成回路319に供給する。
グラフィック生成回路319は、表示パネル321に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成し、生成した映像データや画像データをパネル駆動回路320に供給する。また、グラフィック生成回路319は、項目の選択などにユーザにより利用される画面を表示するための映像データ(グラフィック)を生成し、それを番組の映像データに重畳したりすることによって得られた映像データをパネル駆動回路320に供給するといった処理も適宜行う。
パネル駆動回路320は、グラフィック生成回路319から供給されたデータに基づいて表示パネル321を駆動し、番組の映像や上述した各種の画面を表示パネル321に表示させる。
表示パネル321はLCD(Liquid Crystal Display)などよりなり、パネル駆動回路320による制御に従って番組の映像などを表示させる。
また、テレビジョン受像機300は、音声A/D(Analog/Digital)変換回路314、音声信号処理回路322、エコーキャンセル/音声合成回路323、音声増幅回路324、およびスピーカ325も有する。
地上波チューナ313は、受信した放送波信号を復調することにより、映像信号だけでなく音声信号も取得する。地上波チューナ313は、取得した音声信号を音声A/D変換回路314に供給する。
音声A/D変換回路314は、地上波チューナ313から供給された音声信号に対してA/D変換処理を施し、得られたデジタルの音声信号を音声信号処理回路322に供給する。
音声信号処理回路322は、音声A/D変換回路314から供給された音声データに対してノイズ除去などの所定の処理を施し、得られた音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声信号処理回路322から供給された音声データを音声増幅回路324に供給する。
音声増幅回路324は、エコーキャンセル/音声合成回路323から供給された音声データに対してD/A変換処理、増幅処理を施し、所定の音量に調整した後、音声をスピーカ325から出力させる。
さらに、テレビジョン受像機300は、デジタルチューナ316およびMPEGデコーダ317も有する。
デジタルチューナ316は、デジタル放送(地上デジタル放送、BS(Broadcasting Satellite)/CS(Communications Satellite)デジタル放送)の放送波信号を、アンテナを介して受信し、復調し、MPEG-TS(Moving Picture Experts Group-Transport Stream)を取得し、それをMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSに施されているスクランブルを解除し、再生対象(視聴対象)になっている番組のデータを含むストリームを抽出する。MPEGデコーダ317は、抽出したストリームを構成する音声パケットをデコードし、得られた音声データを音声信号処理回路322に供給するとともに、ストリームを構成する映像パケットをデコードし、得られた映像データを映像信号処理回路318に供給する。また、MPEGデコーダ317は、MPEG-TSから抽出したEPG(Electronic Program Guide)データを図示せぬ経路を介してCPU332に供給する。
テレビジョン受像機300は、このように映像パケットをデコードするMPEGデコーダ317として、上述した画像復号装置201を用いる。したがって、MPEGデコーダ317は、画像復号装置201の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
MPEGデコーダ317から供給された映像データは、ビデオデコーダ315から供給された映像データの場合と同様に、映像信号処理回路318において所定の処理が施される。そして、所定の処理が施された映像データは、グラフィック生成回路319において、生成された映像データ等が適宜重畳され、パネル駆動回路320を介して表示パネル321に供給され、その画像が表示される。
MPEGデコーダ317から供給された音声データは、音声A/D変換回路314から供給された音声データの場合と同様に、音声信号処理回路322において所定の処理が施される。そして、所定の処理が施された音声データは、エコーキャンセル/音声合成回路323を介して音声増幅回路324に供給され、D/A変換処理や増幅処理が施される。その結果、所定の音量に調整された音声がスピーカ325から出力される。
また、テレビジョン受像機300は、マイクロホン326、およびA/D変換回路327も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、テレビジョン受像機300のユーザ(ユーザA)の音声のデータがA/D変換回路327から供給されている場合、ユーザAの音声データを対象としてエコーキャンセルを行う。そして、エコーキャンセル/音声合成回路323は、エコーキャンセルの後、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
さらに、テレビジョン受像機300は、音声コーデック328、内部バス329、SDRAM(Synchronous Dynamic Random Access Memory)330、フラッシュメモリ331、CPU332、USB(Universal Serial Bus) I/F333、およびネットワークI/F334も有する。
A/D変換回路327は、音声会話用のものとしてテレビジョン受像機300に設けられるマイクロホン326により取り込まれたユーザの音声の信号を受信する。A/D変換回路327は、受信した音声信号に対してA/D変換処理を施し、得られたデジタルの音声データを音声コーデック328に供給する。
音声コーデック328は、A/D変換回路327から供給された音声データを、ネットワーク経由で送信するための所定のフォーマットのデータに変換し、内部バス329を介してネットワークI/F334に供給する。
ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続される。ネットワークI/F334は、例えば、そのネットワークに接続される他の装置に対して、音声コーデック328から供給された音声データを送信する。また、ネットワークI/F334は、例えば、ネットワークを介して接続される他の装置から送信される音声データを、ネットワーク端子335を介して受信し、それを、内部バス329を介して音声コーデック328に供給する。
音声コーデック328は、ネットワークI/F334から供給された音声データを所定のフォーマットのデータに変換し、それをエコーキャンセル/音声合成回路323に供給する。
エコーキャンセル/音声合成回路323は、音声コーデック328から供給される音声データを対象としてエコーキャンセルを行い、他の音声データと合成するなどして得られた音声のデータを、音声増幅回路324を介してスピーカ325より出力させる。
SDRAM330は、CPU332が処理を行う上で必要な各種のデータを記憶する。
フラッシュメモリ331は、CPU332により実行されるプログラムを記憶する。フラッシュメモリ331に記憶されているプログラムは、テレビジョン受像機300の起動時などの所定のタイミングでCPU332により読み出される。フラッシュメモリ331には、デジタル放送を介して取得されたEPGデータ、ネットワークを介して所定のサーバから取得されたデータなども記憶される。
例えば、フラッシュメモリ331には、CPU332の制御によりネットワークを介して所定のサーバから取得されたコンテンツデータを含むMPEG-TSが記憶される。フラッシュメモリ331は、例えばCPU332の制御により、そのMPEG-TSを、内部バス329を介してMPEGデコーダ317に供給する。
MPEGデコーダ317は、デジタルチューナ316から供給されたMPEG-TSの場合と同様に、そのMPEG-TSを処理する。このようにテレビジョン受像機300は、映像や音声等よりなるコンテンツデータを、ネットワークを介して受信し、MPEGデコーダ317を用いてデコードし、その映像を表示させたり、音声を出力させたりすることができる。
また、テレビジョン受像機300は、リモートコントローラ351から送信される赤外線信号を受光する受光部337も有する。
受光部337は、リモートコントローラ351からの赤外線を受光し、復調して得られたユーザ操作の内容を表す制御コードをCPU332に出力する。
CPU332は、フラッシュメモリ331に記憶されているプログラムを実行し、受光部337から供給される制御コードなどに応じてテレビジョン受像機300の全体の動作を制御する。CPU332とテレビジョン受像機300の各部は、図示せぬ経路を介して接続されている。
USB I/F333は、USB端子336に装着されたUSBケーブルを介して接続される、テレビジョン受像機300の外部の機器との間でデータの送受信を行う。ネットワークI/F334は、ネットワーク端子335に装着されたケーブルを介してネットワークに接続し、ネットワークに接続される各種の装置と音声データ以外のデータの送受信も行う。
テレビジョン受像機300は、MPEGデコーダ317として画像復号装置201を用いることにより、符号化効率を向上することができる。その結果として、テレビジョン受像機300は、アンテナを介して受信した放送波信号や、ネットワークを介して取得したコンテンツデータから、より高精細な復号画像を得て、表示することができる。
[携帯電話機の構成例]
図24は、本発明を適用した画像符号化装置および画像復号装置を用いる携帯電話機の主な構成例を示すブロック図である。
図24に示される携帯電話機400は、各部を統括的に制御するようになされた主制御部450、電源回路部451、操作入力制御部452、画像エンコーダ453、カメラI/F部454、LCD制御部455、画像デコーダ456、多重分離部457、記録再生部462、変復調回路部458、および音声コーデック459を有する。これらは、バス460を介して互いに接続されている。
また、携帯電話機400は、操作キー419、CCD(Charge Coupled Devices)カメラ416、液晶ディスプレイ418、記憶部423、送受信回路部463、アンテナ414、マイクロホン(マイク)421、およびスピーカ417を有する。
電源回路部451は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話機400を動作可能な状態に起動する。
携帯電話機400は、CPU、ROMおよびRAM等でなる主制御部450の制御に基づいて、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
例えば、音声通話モードにおいて、携帯電話機400は、マイクロホン(マイク)421で集音した音声信号を、音声コーデック459によってデジタル音声データに変換し、これを変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(音声信号)は、公衆電話回線網を介して通話相手の携帯電話機に供給される。
また、例えば、音声通話モードにおいて、携帯電話機400は、アンテナ414で受信した受信信号を送受信回路部463で増幅し、さらに周波数変換処理およびアナログデジタル変換処理し、変復調回路部458でスペクトラム逆拡散処理し、音声コーデック459によってアナログ音声信号に変換する。携帯電話機400は、その変換して得られたアナログ音声信号をスピーカ417から出力する。
更に、例えば、データ通信モードにおいて電子メールを送信する場合、携帯電話機400は、操作キー419の操作によって入力された電子メールのテキストデータを、操作入力制御部452において受け付ける。携帯電話機400は、そのテキストデータを主制御部450において処理し、LCD制御部455を介して、画像として液晶ディスプレイ418に表示させる。
また、携帯電話機400は、主制御部450において、操作入力制御部452が受け付けたテキストデータやユーザ指示等に基づいて電子メールデータを生成する。携帯電話機400は、その電子メールデータを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(電子メール)は、ネットワークおよびメールサーバ等を介して、所定のあて先に供給される。
また、例えば、データ通信モードにおいて電子メールを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の電子メールデータを復元する。携帯電話機400は、復元された電子メールデータを、LCD制御部455を介して液晶ディスプレイ418に表示する。
なお、携帯電話機400は、受信した電子メールデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
この記憶部423は、書き換え可能な任意の記憶媒体である。記憶部423は、例えば、RAMや内蔵型フラッシュメモリ等の半導体メモリであってもよいし、ハードディスクであってもよいし、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアであってもよい。もちろん、これら以外のものであってもよい。
さらに、例えば、データ通信モードにおいて画像データを送信する場合、携帯電話機400は、撮像によりCCDカメラ416で画像データを生成する。CCDカメラ416は、レンズや絞り等の光学デバイスと光電変換素子としてのCCDを有し、被写体を撮像し、受光した光の強度を電気信号に変換し、被写体の画像の画像データを生成する。その画像データを、カメラI/F部454を介して、画像エンコーダ453で、例えばMPEG2やMPEG4等の所定の符号化方式によって圧縮符号化することにより符号化画像データに変換する。
携帯電話機400は、このような処理を行う画像エンコーダ453として、上述した画像符号化装置101を用いる。したがって、画像エンコーダ453は、画像符号化装置101の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
なお、携帯電話機400は、このとき同時に、CCDカメラ416で撮像中にマイクロホン(マイク)421で集音した音声を、音声コーデック459においてアナログデジタル変換し、さらに符号化する。
携帯電話機400は、多重分離部457において、画像エンコーダ453から供給された符号化画像データと、音声コーデック459から供給されたデジタル音声データとを、所定の方式で多重化する。携帯電話機400は、その結果得られる多重化データを、変復調回路部458でスペクトラム拡散処理し、送受信回路部463でデジタルアナログ変換処理および周波数変換処理する。携帯電話機400は、その変換処理により得られた送信用信号を、アンテナ414を介して図示しない基地局へ送信する。基地局へ伝送された送信用信号(画像データ)は、ネットワーク等を介して、通信相手に供給される。
なお、画像データを送信しない場合、携帯電話機400は、CCDカメラ416で生成した画像データを、画像エンコーダ453を介さずに、LCD制御部455を介して液晶ディスプレイ418に表示させることもできる。
また、例えば、データ通信モードにおいて、簡易ホームページ等にリンクされた動画像ファイルのデータを受信する場合、携帯電話機400は、基地局から送信された信号を、アンテナ414を介して送受信回路部463で受信し、増幅し、さらに周波数変換処理およびアナログデジタル変換処理する。携帯電話機400は、その受信信号を変復調回路部458でスペクトラム逆拡散処理して元の多重化データを復元する。携帯電話機400は、多重分離部457において、その多重化データを分離して、符号化画像データと音声データとに分ける。
携帯電話機400は、画像デコーダ456において、符号化画像データを、MPEG2やMPEG4等の所定の符号化方式に対応した復号方式でデコードすることにより、再生動画像データを生成し、これを、LCD制御部455を介して液晶ディスプレイ418に表示させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる動画データが液晶ディスプレイ418に表示される。
携帯電話機400は、このような処理を行う画像デコーダ456として、上述した画像復号装置201を用いる。したがって、画像デコーダ456は、画像復号装置201の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
このとき、携帯電話機400は、同時に、音声コーデック459において、デジタルの音声データをアナログ音声信号に変換し、これをスピーカ417より出力させる。これにより、例えば、簡易ホームページにリンクされた動画像ファイルに含まれる音声データが再生される。
なお、電子メールの場合と同様に、携帯電話機400は、受信した簡易ホームページ等にリンクされたデータを、記録再生部462を介して、記憶部423に記録する(記憶させる)ことも可能である。
また、携帯電話機400は、主制御部450において、撮像されてCCDカメラ416で得られた2次元コードを解析し、2次元コードに記録された情報を取得することができる。
さらに、携帯電話機400は、赤外線通信部481で赤外線により外部の機器と通信することができる。
携帯電話機400は、画像エンコーダ453として画像符号化装置101を用いることにより、符号化効率を向上させることができる。結果として、携帯電話機400は、符号化効率のよい符号化データ(画像データ)を、他の装置に提供することができる。
また、携帯電話機400は、画像デコーダ456として画像復号装置201を用いることにより、符号化効率を向上させることができる。その結果として、携帯電話機400は、例えば、簡易ホームページにリンクされた動画像ファイルから、より高精細な復号画像を得て、表示することができる。
なお、以上において、携帯電話機400が、CCDカメラ416を用いるように説明したが、このCCDカメラ416の代わりに、CMOS(Complementary Metal Oxide Semiconductor)を用いたイメージセンサ(CMOSイメージセンサ)を用いるようにしてもよい。この場合も、携帯電話機400は、CCDカメラ416を用いる場合と同様に、被写体を撮像し、被写体の画像の画像データを生成することができる。
また、以上においては携帯電話機400として説明したが、例えば、PDA(Personal Digital Assistants)、スマートフォン、UMPC(Ultra Mobile Personal Computer)、ネットブック、ノート型パーソナルコンピュータ等、この携帯電話機400と同様の撮像機能や通信機能を有する装置であれば、どのような装置であっても携帯電話機400の場合と同様に、画像符号化装置101および画像復号装置201を適用することができる。
[ハードディスクレコーダの構成例]
図25は、本発明を適用した画像符号化装置および画像復号装置を用いるハードディスクレコーダの主な構成例を示すブロック図である。
図25に示されるハードディスクレコーダ(HDDレコーダ)500は、チューナにより受信された、衛星や地上のアンテナ等より送信される放送波信号(テレビジョン信号)に含まれる放送番組のオーディオデータとビデオデータを、内蔵するハードディスクに保存し、その保存したデータをユーザの指示に応じたタイミングでユーザに提供する装置である。
ハードディスクレコーダ500は、例えば、放送波信号よりオーディオデータとビデオデータを抽出し、それらを適宜復号し、内蔵するハードディスクに記憶させることができる。また、ハードディスクレコーダ500は、例えば、ネットワークを介して他の装置からオーディオデータやビデオデータを取得し、それらを適宜復号し、内蔵するハードディスクに記憶させることもできる。
さらに、ハードディスクレコーダ500は、例えば、内蔵するハードディスクに記録されているオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることができる。
ハードディスクレコーダ500は、例えば、チューナを介して取得された放送波信号より抽出されたオーディオデータとビデオデータ、または、ネットワークを介して他の装置から取得したオーディオデータやビデオデータを復号してモニタ560に供給し、モニタ560の画面にその画像を表示させる。また、ハードディスクレコーダ500は、モニタ560のスピーカよりその音声を出力させることもできる。
もちろん、この他の動作も可能である。
図25に示されるように、ハードディスクレコーダ500は、受信部521、復調部522、デマルチプレクサ523、オーディオデコーダ524、ビデオデコーダ525、およびレコーダ制御部526を有する。ハードディスクレコーダ500は、さらに、EPGデータメモリ527、プログラムメモリ528、ワークメモリ529、ディスプレイコンバータ530、OSD(On Screen Display)制御部531、ディスプレイ制御部532、記録再生部533、D/Aコンバータ534、および通信部535を有する。
また、ディスプレイコンバータ530は、ビデオエンコーダ541を有する。記録再生部533は、エンコーダ551およびデコーダ552を有する。
受信部521は、リモートコントローラ(図示せず)からの赤外線信号を受信し、電気信号に変換してレコーダ制御部526に出力する。レコーダ制御部526は、例えば、マイクロプロセッサなどにより構成され、プログラムメモリ528に記憶されているプログラムに従って、各種の処理を実行する。レコーダ制御部526は、このとき、ワークメモリ529を必要に応じて使用する。
通信部535は、ネットワークに接続され、ネットワークを介して他の装置との通信処理を行う。例えば、通信部535は、レコーダ制御部526により制御され、チューナ(図示せず)と通信し、主にチューナに対して選局制御信号を出力する。
復調部522は、チューナより供給された信号を、復調し、デマルチプレクサ523に出力する。デマルチプレクサ523は、復調部522より供給されたデータを、オーディオデータ、ビデオデータ、およびEPGデータに分離し、それぞれ、オーディオデコーダ524、ビデオデコーダ525、またはレコーダ制御部526に出力する。
オーディオデコーダ524は、入力されたオーディオデータを、例えばMPEG方式でデコードし、記録再生部533に出力する。ビデオデコーダ525は、入力されたビデオデータを、例えばMPEG方式でデコードし、ディスプレイコンバータ530に出力する。レコーダ制御部526は、入力されたEPGデータをEPGデータメモリ527に供給し、記憶させる。
ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されたビデオデータを、ビデオエンコーダ541により、例えばNTSC(National Television Standards Committee)方式のビデオデータにエンコードし、記録再生部533に出力する。また、ディスプレイコンバータ530は、ビデオデコーダ525またはレコーダ制御部526より供給されるビデオデータの画面のサイズを、モニタ560のサイズに対応するサイズに変換する。ディスプレイコンバータ530は、画面のサイズが変換されたビデオデータを、さらに、ビデオエンコーダ541によってNTSC方式のビデオデータに変換し、アナログ信号に変換し、ディスプレイ制御部532に出力する。
ディスプレイ制御部532は、レコーダ制御部526の制御のもと、OSD(On Screen Display)制御部531が出力したOSD信号を、ディスプレイコンバータ530より入力されたビデオ信号に重畳し、モニタ560のディスプレイに出力し、表示させる。
モニタ560にはまた、オーディオデコーダ524が出力したオーディオデータが、D/Aコンバータ534によりアナログ信号に変換されて供給されている。モニタ560は、このオーディオ信号を内蔵するスピーカから出力する。
記録再生部533は、ビデオデータやオーディオデータ等を記録する記憶媒体としてハードディスクを有する。
記録再生部533は、例えば、オーディオデコーダ524より供給されるオーディオデータを、エンコーダ551によりMPEG方式でエンコードする。また、記録再生部533は、ディスプレイコンバータ530のビデオエンコーダ541より供給されるビデオデータを、エンコーダ551によりMPEG方式でエンコードする。記録再生部533は、そのオーディオデータの符号化データとビデオデータの符号化データとをマルチプレクサにより合成する。記録再生部533は、その合成データをチャネルコーディングして増幅し、そのデータを、記録ヘッドを介してハードディスクに書き込む。
記録再生部533は、再生ヘッドを介してハードディスクに記録されているデータを再生し、増幅し、デマルチプレクサによりオーディオデータとビデオデータに分離する。記録再生部533は、デコーダ552によりオーディオデータおよびビデオデータをMPEG方式でデコードする。記録再生部533は、復号したオーディオデータをD/A変換し、モニタ560のスピーカに出力する。また、記録再生部533は、復号したビデオデータをD/A変換し、モニタ560のディスプレイに出力する。
レコーダ制御部526は、受信部521を介して受信されるリモートコントローラからの赤外線信号により示されるユーザ指示に基づいて、EPGデータメモリ527から最新のEPGデータを読み出し、それをOSD制御部531に供給する。OSD制御部531は、入力されたEPGデータに対応する画像データを発生し、ディスプレイ制御部532に出力する。ディスプレイ制御部532は、OSD制御部531より入力されたビデオデータをモニタ560のディスプレイに出力し、表示させる。これにより、モニタ560のディスプレイには、EPG(電子番組ガイド)が表示される。
また、ハードディスクレコーダ500は、インターネット等のネットワークを介して他の装置から供給されるビデオデータ、オーディオデータ、またはEPGデータ等の各種データを取得することができる。
通信部535は、レコーダ制御部526に制御され、ネットワークを介して他の装置から送信されるビデオデータ、オーディオデータ、およびEPGデータ等の符号化データを取得し、それをレコーダ制御部526に供給する。レコーダ制御部526は、例えば、取得したビデオデータやオーディオデータの符号化データを記録再生部533に供給し、ハードディスクに記憶させる。このとき、レコーダ制御部526および記録再生部533が、必要に応じて再エンコード等の処理を行うようにしてもよい。
また、レコーダ制御部526は、取得したビデオデータやオーディオデータの符号化データを復号し、得られるビデオデータをディスプレイコンバータ530に供給する。ディスプレイコンバータ530は、ビデオデコーダ525から供給されるビデオデータと同様に、レコーダ制御部526から供給されるビデオデータを処理し、ディスプレイ制御部532を介してモニタ560に供給し、その画像を表示させる。
また、この画像表示に合わせて、レコーダ制御部526が、復号したオーディオデータを、D/Aコンバータ534を介してモニタ560に供給し、その音声をスピーカから出力させるようにしてもよい。
さらに、レコーダ制御部526は、取得したEPGデータの符号化データを復号し、復号したEPGデータをEPGデータメモリ527に供給する。
以上のようなハードディスクレコーダ500は、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダとして画像復号装置201を用いる。したがって、ビデオデコーダ525、デコーダ552、およびレコーダ制御部526に内蔵されるデコーダは、画像復号装置201の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
したがって、ハードディスクレコーダ500は、処理の高速化を実現するとともに、精度の高い予測画像を生成することができる。その結果として、ハードディスクレコーダ500は、例えば、チューナを介して受信されたビデオデータの符号化データや、記録再生部533のハードディスクから読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高精細な復号画像を得て、モニタ560に表示させることができる。
また、ハードディスクレコーダ500は、エンコーダ551として画像符号化装置101を用いる。したがって、エンコーダ551は、画像符号化装置101の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
したがって、ハードディスクレコーダ500は、例えば、処理の高速化を実現するとともに、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、ハードディスクレコーダ500は、ハードディスクの記憶領域をより効率よく使用することができる。
なお、以上においては、ビデオデータやオーディオデータをハードディスクに記録するハードディスクレコーダ500について説明したが、もちろん、記録媒体はどのようなものであってもよい。例えばフラッシュメモリ、光ディスク、またはビデオテープ等、ハードディスク以外の記録媒体を適用するレコーダであっても、上述したハードディスクレコーダ500の場合と同様に、画像符号化装置101および画像復号装置201を適用することができる。
[カメラの構成例]
図26は、本発明を適用した画像復号装置および画像符号化装置を用いるカメラの主な構成例を示すブロック図である。
図26に示されるカメラ600は、被写体を撮像し、被写体の画像をLCD616に表示させたり、それを画像データとして、記録メディア633に記録したりする。
レンズブロック611は、光(すなわち、被写体の映像)を、CCD/CMOS612に入射させる。CCD/CMOS612は、CCDまたはCMOSを用いたイメージセンサであり、受光した光の強度を電気信号に変換し、カメラ信号処理部613に供給する。
カメラ信号処理部613は、CCD/CMOS612から供給された電気信号を、Y,Cr,Cbの色差信号に変換し、画像信号処理部614に供給する。画像信号処理部614は、コントローラ621の制御の下、カメラ信号処理部613から供給された画像信号に対して所定の画像処理を施したり、その画像信号をエンコーダ641で例えばMPEG方式により符号化したりする。画像信号処理部614は、画像信号を符号化して生成した符号化データを、デコーダ615に供給する。さらに、画像信号処理部614は、オンスクリーンディスプレイ(OSD)620において生成された表示用データを取得し、それをデコーダ615に供給する。
以上の処理において、カメラ信号処理部613は、バス617を介して接続されるDRAM(Dynamic Random Access Memory)618を適宜利用し、必要に応じて画像データや、その画像データが符号化された符号化データ等をそのDRAM618に保持させる。
デコーダ615は、画像信号処理部614から供給された符号化データを復号し、得られた画像データ(復号画像データ)をLCD616に供給する。また、デコーダ615は、画像信号処理部614から供給された表示用データをLCD616に供給する。LCD616は、デコーダ615から供給された復号画像データの画像と表示用データの画像を適宜合成し、その合成画像を表示する。
オンスクリーンディスプレイ620は、コントローラ621の制御の下、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを、バス617を介して画像信号処理部614に出力する。
コントローラ621は、ユーザが操作部622を用いて指令した内容を示す信号に基づいて、各種処理を実行するとともに、バス617を介して、画像信号処理部614、DRAM618、外部インタフェース619、オンスクリーンディスプレイ620、およびメディアドライブ623等を制御する。FLASH ROM624には、コントローラ621が各種処理を実行する上で必要なプログラムやデータ等が格納される。
例えば、コントローラ621は、画像信号処理部614やデコーダ615に代わって、DRAM618に記憶されている画像データを符号化したり、DRAM618に記憶されている符号化データを復号したりすることができる。このとき、コントローラ621は、画像信号処理部614やデコーダ615の符号化・復号方式と同様の方式によって符号化・復号処理を行うようにしてもよいし、画像信号処理部614やデコーダ615が対応していない方式により符号化・復号処理を行うようにしてもよい。
また、例えば、操作部622から画像印刷の開始が指示された場合、コントローラ621は、DRAM618から画像データを読み出し、それを、バス617を介して外部インタフェース619に接続されるプリンタ634に供給して印刷させる。
さらに、例えば、操作部622から画像記録が指示された場合、コントローラ621は、DRAM618から符号化データを読み出し、それを、バス617を介してメディアドライブ623に装着される記録メディア633に供給して記憶させる。
記録メディア633は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアである。記録メディア633は、もちろん、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であっても良い。
また、メディアドライブ623と記録メディア633を一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
外部インタフェース619は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタ634と接続される。また、外部インタフェース619には、必要に応じてドライブ631が接続され、磁気ディスク、光ディスク、あるいは光磁気ディスクなどのリムーバブルメディア632が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、FLASH ROM624にインストールされる。
さらに、外部インタフェース619は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。コントローラ621は、例えば、操作部622からの指示に従って、DRAM618から符号化データを読み出し、それを外部インタフェース619から、ネットワークを介して接続される他の装置に供給させることができる。また、コントローラ621は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース619を介して取得し、それをDRAM618に保持させたり、画像信号処理部614に供給したりすることができる。
以上のようなカメラ600は、デコーダ615として画像復号装置201を用いる。したがって、デコーダ615は、画像復号装置201の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
したがって、カメラ600は、精度の高い予測画像を生成することができる。その結果として、カメラ600は、例えば、CCD/CMOS612において生成された画像データや、DRAM618または記録メディア633から読み出されたビデオデータの符号化データや、ネットワークを介して取得したビデオデータの符号化データから、より高速に、より高精細な復号画像を得て、LCD616に表示させることができる。
また、カメラ600は、エンコーダ641として画像符号化装置101を用いる。したがって、エンコーダ641は、画像符号化装置101の場合と同様に、符号化効率を向上させ、復号画像における主観画質を向上させることができる。
したがって、カメラ600は、例えば、ハードディスクに記録する符号化データの符号化効率を向上させることができる。その結果として、カメラ600は、より高速に、DRAM618や記録メディア633の記憶領域をより効率よく使用することができる。
なお、コントローラ621が行う復号処理に画像復号装置201の復号方法を適用するようにしてもよい。同様に、コントローラ621が行う符号化処理に画像符号化装置101の符号化方法を適用するようにしてもよい。
また、カメラ600が撮像する画像データは動画像であってもよいし、静止画像であってもよい。
もちろん、画像符号化装置101および画像復号装置201は、上述した装置以外の装置やシステムにも適用可能である。