以下、本発明の実施例を、図面を参照して説明する。
図5はH.264/AVC規格による画面間予測処理の動作について概念的に示したものである。H.264/AVC規格では、符号化対象画像に対してラスタースキャンの順序に従ってブロック単位による符号化を行う。画面間予測を行う際には、符号化対象画像(503)と同じ映像(501)に含まれる符号化済みの画像の復号画像を参照画像(502)とし、対象画像中の対象ブロック(504)と相関の高いブロック(予測画像)(505)を参照画像中から探索する。このとき、両ブロックの差分として計算される予測差分に加えて、両ブロックの座標値の差分を動きベクトル(506)として符号化する。一方復号化の際には上記の逆の手順を行えばよく、復号化された予測差分を参照画像中のブロック(予測画像)(505)に加えることにより、復号化画像を取得できる。
H.264/AVC規格では、以上で説明した動きベクトルによる符号量のオーバーヘッドを低減するために、動きベクトルに対する予測技術を導入している。すなわち、動きベクトルを符号化する際には、対象ブロックの周辺に位置する符号化済みのブロックを利用して対象ブロックの動きベクトルを予測し、予測ベクトルと動きベクトルの差分(差分ベクトル)を符号化する。このとき、差分ベクトルの大きさは統計的には、ほぼ0に集中するため、これを可変長符号化することにより符号量を削減できる。図6は予測ベクトルを算出する方法について概念的に示したものである。対象ブロック(601)の左側、上側、右上側に隣接する符号化済みのブロックをそれぞれブロックA(602)、ブロックB(603)、ブロックC(604)とし、各ブロックにおける動きベクトルをMVA、MVB、MVCとする。
このとき、H.264/AVC規格では、予測ベクトルはMVA、MVB、MVCの中央値として算出する。すなわち、予測ベクトルPMVは、引数として指定されたベクトルの各成分に対して中央値を返す関数Medianを用いて、(605)のように算出される。さらに、差分ベクトルDMVを対象ブロックの動きベクトルMVと予測ベクトルPMV(予測ベクトル)の差分(606)として算出し、続いてDMV(差分ベクトル)を可変長符号化する。復号化の際には上記の逆の手順を行えばよく、復号化されたDMV(差分ベクトル)を上記と同様の手順によって算出したPMV(予測ベクトル)に加算することにより、動きベクトルMVを復号化する。
以上のように、H.264/AVC規格では、動きベクトルに対する予測技術を導入することにより、動きベクトルに必要な符号量を大幅に削減することが可能になった。しかし、複数の動物体が近接している場合や、対象領域の近傍に動物体の境界部分が存在する場合など、動きベクトルを正確に予測することが難しい場合には、H.264/AVC規格による動きベクトルの予測精度は十分であるとは言えず、依然として動きベクトルに多くの符号量が必要であった。この原因としては以下のようなことが考えられる。すなわち、上記のような動きが複雑な状況下では、対象領域の近傍における動きベクトルの相関性は著しく低下し、予測ベクトルの候補となるベクトル間の差が大きくなる。すなわち、上記のような動きが複雑な状況下では、対象領域の近傍における動きベクトルの相関性は著しく低下し、予測ベクトルの候補となるベクトル間の差が大きくなる。そのため、予測ベクトルの選択を誤ってしまうと、正しい予測ベクトルを選択した場合と比べて差分ベクトルが大きくなり、その結果、符号量も著しく増大してしまう。
本発明の一実施の形態では、予測ベクトルの候補となるベクトル値の分布に応じて予測ベクトルの決定方法を切り替える。候補ベクトルの分布範囲が狭い場合は予測ベクトルの選択を誤ったときのリスクは小さいと判断し、従来通りの予測方法を実施する。一方、候補ベクトルの分布範囲が広い場合には、どの候補ベクトルを予測ベクトルとして利用するかを表すビット(以下、付加ビット)を追加して差分ベクトルを最小化する候補ベクトルを指定する。
このとき、さらに、予測ベクトルの候補となるベクトルの種類を候補ベクトル値の分布に応じて動的に切り替えるようにすれば、付加ビットによる符号量の増加を抑制することができる。これにより、符号量の増加を抑制しながら動きベクトルに対する予測精度を向上できるようになる。
また、一般的に動きが複雑な状況下では動きベクトルの予測精度が低下するため、最適な予測ベクトルが選択されたとしても差分ベクトルは小さくならない。そのため、符号量を削減するためには、動きが複雑でない場合と、動きが複雑である場合に対して、差分ベクトルの符号化方法を変更することが効果的である。
例えば参考文献1では、対象ブロックの周辺領域における動きベクトルの分散の大きさによって動きが複雑であるか否かを判定し、その判定結果に基づいて差分ベクトルを符号化する際の可変長符号表を切り替えている。この方法によれば、動きが複雑であるか否かについて大まかな判定はできるものの、画像の性質を反映した符号表の細かな切り替えはできなかった。また、この方法による符号表の切り替えは、対象ブロックの周辺領域における動きベクトルに基づいているため、対象領域の動きが周辺領域と異なる場合には適切に符号表を選択することができなかった。
本発明の一実施の形態では、では、前述した付加ビットによる最適ベクトルの選択方法において、どの候補ベクトルが選択されたかを調べることによって対象領域における動きの性質を詳細に推定することができ、この推定情報に基づいて符号表を切り替えることにより、より詳細な符号表の切り替えが可能になり、その結果さらなる符号量の削減を可能にした。
[参考文献1]特開2006−271001
以下、本発明による動きベクトルの符号化手順および復号化手順について述べる。その中で、予測ベクトルPMV(予測ベクトル)の算出手順は符号化側と復号化側で同一であり、符号化側では動きベクトルMVとPMV(予測ベクトル)の差分DMVを算出してこれを符号化する処理行われる。これに対し、復号化側では復号化されたDMV(差分ベクトル)にPMV(予測ベクトル)を加算して動きベクトルMVを復号化する処理がそれぞれ行われる。
図7は、本実施例による予測ベクトル算出方法の一例について概念的に示している。ここでは、予測ベクトルの候補となるベクトルを、対象ブロックの左側、上側、右上側にそれぞれ隣接するブロックA、ブロックB、ブロックCの3種類とする。このとき、各ブロックにおける動きベクトルをMVA、MVB、MVCとする。
まず、動きベクトルMVA、MVB、MVCのx、y各成分に対して整列を行い、閾値Thre1を利用してその分布を調べ、CASE1〜CASE4の4種類に場合分けを行う。本図において、矢印方向が動きベクトルの各成分の値が大きい方向である。よって、X印により示されるMVA、MVB、MVCのx、y各成分のうち最も矢印方向に位置するものが最大値であり、最も矢印方向と反対方向に位置するものが最小値である。さらに、両者の間に位置するものが中間値である。
ここで、すべての値の間隔がThre1よりも小さければ(CASE1)、どの値が選ばれても差分ベクトルの大きさに大差はないため、H.264/AVC規格と同様に候補値の中央値(a)を予測ベクトルPMVとして選択する。このとき、付加ビットは発生することはない。この場合、特に中央値でなくても、例えば平均値、最大値、最小値など、どのような計算方法を用いて予測ベクトルを選択してもよいし、例えば対象ブロックの右上に隣接するブロックや、時間的に1つ前のフレームの中の対象ブロックと同じ位置にあるブロックなど、ブロックA、ブロックB、ブロックC以外のブロックにおける動きベクトルを利用して予測ベクトルを決定しても良い。
一方、候補値の中で最も大きな値と中央値の差がThre1以上であり、中央値と最小値の差がThre1よりも小さい場合には(CASE2)、例えば予測ベクトルとして最小値が選ばれるのが最適である場面において中央値が選ばれてしまっても差分ベクトルの大きさに大差はないが、中央値が選ばれるべき場面において最大値が選ばれてしまうと差分ベクトルの大きさが著しく増大する。そのため、この場合、予測値の選択肢を最大値(b)と中央値(c)の2種類とし、このうち差分ベクトルがより小さくなる方を予測ベクトルPMVとして選択して1ビットの情報により表現する。復号化側では、この1ビットによる情報を基に予測ベクトルを特定し、差分ベクトルに加算することにより動きベクトルを復号化する。
同様に、最小値と中央値の差がThre1以上であり、中央値と最大値の差がThre1よりも小さければ(CASE3)、中央値(d)と最小値(e)のうち差分ベクトルがより小さくなる方を予測ベクトルPMVとして選択し、1ビットの情報を追加する。
また、すべての値の間隔がThre1以上であれば(CASE4)、最大値(f)、中央値(g)、最小値(h)の3種類の候補値の中から差分ベクトルが最も小さくなるものを予測ベクトルPMVとして選択し、1ビット、もしくは2ビットの情報を付加する。
上記予測ベクトルの選択肢の設定方法は特に問わない。例えば、上記の例ではCASE4において選択肢数を3としているため追加ビットが2ビット必要である場合が存在するが、例えば選択肢をMVA、MVBの2種類に限定することにより、追加ビットを常に1ビットに抑えることができる。
以上の方法によれば、予測精度が低下する可能性の高い場面においてのみ最低限の付加ビット量にて予測ベクトルを表現できるようになり、符号量の増加を抑えながら動きベクトルの予測精度を向上できる。
また、上記の方法は、図8に説明する方法と併用すればさらに予測精度が高まる。ここでは、Thre1よりも大きな値として設定される別の閾値Thre2を利用し、CASE1〜CASE4に加えてさらにCASE5〜CASE7の3種類の場合分けを行う。
すなわち、CASE2において、bとcの差がThre2以上であれば(CASE5)、bとcの中間値(i)を選択肢に追加し、bとcとiの中から差分ベクトルが最も小さくなるものを予測ベクトルPMVとして選択し、1ビット、もしくは2ビットの情報を追加する。
同様に、CASE3において、dとeの差がThre2以上であれば(CASE6)、dとeの中間値(j)を選択肢に追加し、dとeとjの中から差分ベクトルが最も小さくなるものを予測ベクトルPMVとして選択し、1ビット、もしくは2ビットの情報を追加する。
また、CASE4において、fとgの差、およびgとhの差がThre2以上であれば(CASE7)、fとgの中間値(k)とgとhの中間値(l)を選択肢に追加し、fとgとhとkとlの中から差分ベクトルが最も小さくなるものを予測ベクトルPMVとして選択し、2ビット、もしくは3ビットの情報を付加する。
以上のように、候補値の間隔が大きい場合には差分ベクトルが増大する可能性が高いため、それらの中間値を新たな選択肢に加えることにより予測が当たりやすくなり、予測ベクトルと実ベクトルの差分が小さくなるため、符号量を削減することができる。
上記の例では、2種類の候補値の中間値を新たな選択肢に追加しているが、例えば複数の候補値を用いた重み付き平均など、候補値を用いた計算方法ならどのようなものを利用しても良い。また、予測ベクトルの選択肢の追加方法は特に問わない。さらに、上記の例では図7で説明した方法と図8で説明した方法を組み合わせて利用しているが、それぞれ単体で利用しても良い。
図9は、上記予測ベクトルの符号化方法について示している。ここでは、選択肢の数が2、3、5となる代表例として、それぞれCASE2、CASE4、CASE5においてそれぞれの値を符号化する際の可変長符号表を示している。ただし、この表は一例であり、符号表の作成方法は特に問わない。
また、閾値Thre1とThre2の設定方法も特に問わない。それぞれ固定値でも良いが、例えば図10のように、量子化パラメータなどに基づいて動的に決定するとさらに効果的である。この例では、量子化パラメータの値が大きくなるほど、これらの閾値が大きくなるように設定している。これは、量子化パラメータが大きくなればビットレートが小さくなり、付加ビットによる影響が大きくなるため、これらの閾値を大きくすることにより付加ビットが発生しにくくなり効果的であるためである。
さらに本発明の一実施の形態では、候補ベクトルの選択情報に基づいて差分ベクトルの符号化方法を切り替えることにより、さらなる符号量の削減を実現する。図11に、候補ベクトルの選択情報から画像の性質を推定する方法について示す。例えば、対象ブロックにおいて予測ベクトルを符号化・復号化する際に、候補ベクトルの成分a、c、dのいずれかが選択された場合には、対象領域における動きベクトルが周辺ベクトルに似通っていることが分かり、対象領域が大きな物体の内側に存在することが推定される。また、候補ベクトルの成分b、eのどちらかが選択された場合には、対象領域の周辺には2種類の動きが存在することが分かり、対象領域が大きな物体の境界部分に存在することが推定される。一方、候補ベクトルの成分f、g、h、i、j、k、lのいずれかが選択された場合には、対象領域の周辺における動きベクトルの相関が低く、例えば対象領域が小さな物体が多数集まっているような無相関領域に存在することが推定される。
図12は、上記のような画像の性質の推定情報(候補ベクトルの選択情報)に基づいて差分ベクトルの可変長符号表を切り替える方法を示している。一般的に動きが複雑な状況下では動きベクトルの予測精度が低下する。上記の例では、「物体の内部領域」、「物体の境界領域」、「無相関領域」の順に予測精度が低くなり、差分ベクトルが大きくなる(1201)。本発明では、複数の可変長符号表(テーブルA(1202)、テーブルB(1203)、テーブルC(1204))を用意し、その性質に応じて切り替える(1205)。例えばテーブルAには、差分ベクトルの値が小さい間は符号長が短いが、差分値が大きくなると、符号長が急激に長くなるようなテーブルを用いる。一方、テーブルCには、差分ベクトルの値が小さい間は符号長が長いが、差分値が大きくなっても符号長の増加は比較的なだらかであるようなテーブルを用いる。なお、テーブルBには、テーブルAとテーブルCの中間的な性質を持つようなテーブルを用いる。
この場合、物体の内部領域と推定された場合(予測ベクトルを符号化・復号化する際に、候補ベクトルの成分a、c、dのいずれかが選択された場合)には、差分値が小さい場合に有利なテーブルAを利用して差分ベクトルを符号化する。一方、無相関領域と推定された場合(予測ベクトルを符号化・復号化する際に、候補ベクトルの成分f、g、h、i、j、k、lのいずれかが選択された場合)には、差分値が大きい場合に有利なテーブルCを利用する。また、物体の境界領域と推定された場合(予測ベクトルを符号化・復号化する際に、候補ベクトルの成分b、eのいずれかが選択された場合)は、それらの中間的な性質を有するテーブルBを利用する。上記の方法によれば、対象画像の性質を考慮した精密な符号表の切り替えが可能になり、差分ベクトルに必要な符号量を大幅に削減することができる。
可変長符号化表はどのようなものを利用しても良いが、例えば図13に示すテーブルA(1301)、テーブルB(1302)、テーブルC(1303)を利用すると効果的である。
このように、テーブルA、テーブルB、テーブルCをそれぞれ固定テーブルとしてあらかじめ定義しておいても良いが、例えば図14のように、複数のテーブル(テーブル1〜テーブル5)をあらかじめ用意しておき(1402)、何らかのパラメータに基づいてテーブルを動的に選択するとさらに効果的である。ここでは、テーブルA、テーブルB、テーブルCに割り当てるテーブル番号の組み合わせをテーブルセット(a〜c)として定義しておき(1401)、対象画像の直前に符号化・復号化されたフレームにおける付加ビットの累計(PrevAddBits)の値に応じて利用するテーブルセットを切り替える(1403)。これは、対象フレームの動きが激しい場合、テーブルA、テーブルB、テーブルCの符号長の偏りを大きくすると特に符号量の削減効果が高まるため、直前フレームにおける動きの大きさを反映するパラメータ(PrevAddBits)に基づいてテーブルを切り替えている。ここでは、切り替えの判定を行うために定数による閾値(Thre3、Thre4)を設定しているが、判定方法は特に問わない。また、上記の例では、切り替えを行うためのパラメータとしてPrevAddBitsを利用しているが、例えば動きベクトルの平均値や分散値、予測誤差の統計量など、フレーム内の動き量を反映するものならどのようなパラメータを利用しても良い。
図1は本実施例における動画像符号化装置の一例を示したものである。動画像符号化装置は、入力された原画像(101)を保持する入力画像メモリ(102)と、入力画像を小領域に分割するブロック分割部(103)と、ブロック単位で画面内予測を行う画面内予測部(105)と、動き探索部(104)にて検出された動き量を基にブロック単位で画面間予測を行う画面間予測部(106)と、画像の性質に合った予測符号化手段(予測方法およびブロックサイズ)を決定するモード選択部(107)と、予測差分を生成するための減算部(108)と、予測差分に対して符号化を行う周波数変換部(109)および量子化部(110)と、記号の発生確率に応じた符号化を行うための可変長符号化部(111)と、一度符号化した予測差分を復号化するための逆量子化処理部(112)および逆周波数変換部(113)と、復号化された予測差分を用いて復号化画像を生成するための加算部(114)と、復号化画像を保持して後の予測に活用するための参照画像メモリ(115)を有する。
入力画像メモリ(102)は原画像(101)の中から一枚の画像を符号化対象画像として保持し、これをブロック分割部(103)にて細かなブロックに分割し、動き探索部(104)、画面内予測部(105)、および画面間予測部(107)に渡す。動き探索部(104)では、参照画像メモリ(117)に格納されている復号化済み画像を用いて該当ブロックの動き量を計算し、動きベクトルを画面間予測部(106)に渡す。画面内予測部(105)および画面間予測部(106)では画面内予測処理および画面間予測処理をいくつかの大きさのブロック単位で実行し、モード選択部(107)にてどちらか最適な予測方法を選ぶ。続いて減算部(108)では最適な予測符号化手段による予測差分を生成し、周波数変換部(109)に渡す。周波数変換部(109)および量子化処理部(110)では、送られてきた予測差分に対して指定された大きさのブロック単位でそれぞれDCT(Discrete Cosine Transformation:離散コサイン変換)などの周波数変換および量子化処理を行い、可変長符号化処理部(111)および逆量子化処理部(112)に渡す。さらに可変長符号化処理部(111)では、周波数変換係数によって表される予測差分情報と、例えば画面内予測を行う際に利用した予測方向や画面間予測を行う際に利用した動きベクトルなど、復号化に必要な情報を、記号の発生確率に基づいて可変長符号化を行って符号化ストリームを生成する。可変長符号化処理部(111)における可変長符号化処理においては、例えば、図9、図11、図12、図13、図14に示した可変長符号表およびその切替処理を行う。また、逆量子化処理部(112)および逆周波数変換部(113)では、量子化後の周波数変換係数に対して、それぞれ逆量子化およびIDCT(Inverse DCT:逆DCT)などの逆周波数変換を施し、予測差分を取得して加算部(114)に送る。続いて加算部(114)により復号化画像を生成して参照画像メモリ(115)に格納する。
図2は画面間予測部(106)の詳細について、その一例を示したものである。画面間予測部は、既符号化領域の動きベクトルを記憶するための動きベクトル記憶メモリ(201)と、既符号化領域の動きベクトルを利用して予測ベクトルを算出する予測ベクトル算出部(202)と、動きベクトルと予測ベクトルの差を計算して差分ベクトルを算出する減算器(203)と、予測画像を生成する予測画像生成部(204)と、予測ベクトルの選択情報に基づいて最適な可変長符号表を選択する符号表切り替え部(205)を有する。
予測ベクトル算出部(202)は動きベクトル記憶メモリ(201)に記憶されている既符号化領域の動きベクトルに基づいて対象ブロックの予測ベクトルを算出する。当該予測ベクトルの算出処理は、図7および図8の説明にて既に説明したとおりである。減算器(203)では、動き探索部(104)で算出された動きベクトルと予測ベクトルの差分を計算して差分ベクトル(207)を算出する。また、符号表切り替え部(205)では、最適な可変長符号表を選択してその符号表番号(206)を出力し、可変長符号化部(111)に渡す。予測画像生成部(205)では動きベクトルと参照画像から予測画像(208)を生成する。そして、動きベクトルを動きベクトル記憶メモリ(201)に記憶する。
図3は本実施例による動画像復号化装置の一例を示したものである。動画像復号化装置は、例えば図1に示す動画像符号化装置によって生成された符号化ストリーム(301)に対して可変長符号化の逆の手順を踏む可変長復号化部(302)と、予測差分を復号化するための逆量子化処理部(303)および逆周波数変換部(304)と、画面間予測を行う画面間予測部(305)と、画面内予測を行う画面内予測部(306)と、復号化画像を取得するための加算部(307)と、復号化画像を一時的に記憶しておくための参照画像メモリ(308)を有する。
可変長復号化部(302)では、符号化ストリーム(301)を可変長復号化し、予測差分の周波数変換係数成分と、ブロックサイズや動きベクトルなど予測処理に必要な情報を取得する。
ここで、当該可変長復号化処理においては、可変長復号化部(302)は、後述する画面間予測部(305)の動きベクトル記憶メモリ(401)から、既に復号された周辺ブロックの動きベクトルを取得し、図7〜図8に示した候補ベクトルの整列を行う。ここで、各候補ベクトル間の差を算出し、候補ベクトルの分布状況(CASE1〜CASE7)を判別する。当該分布状況(CASE1〜CASE7)の判別結果に基づいて、図9の可変長符号表を選択する。図9の符号表を用いて、符号化ストリームに含まれる付加ビットが示す選択肢を判別する。当該付加ビットが示す選択肢を用いて、図12、図13、図14に示す可変長符号表を選択する。さらに、当該選択した可変長符号表を用いて差分ベクトルの可変長復号化処理を行う。
次に、前者の予測差分情報に対しては逆量子化処理部(303)に、後者の予測処理に必要な情報に対しては、画面間予測部(305)、または画面内予測部(306)に送られる。続いて、逆量子化処理部(303)および逆周波数変換部(304)では、予測差分情報に対してそれぞれ逆量子化と逆周波数変換を施して復号化を行う。続いて画面間予測部(305)または画面内予測部(306)では、可変長復号化部(302)から送られてきた情報を基に参照画像メモリ(308)を参照して予測処理を実行し、加算部(307)にて復号化画像を生成するとともに、復号化画像を参照画像メモリ(308)に格納する。
図4は画面間予測部(305)の詳細について、その一例を示したものである。画面間予測部は、既復号化領域の動きベクトルを記憶するための動きベクトル記憶メモリ(401)と、既復号化領域の動きベクトルを利用して予測ベクトルを算出する予測ベクトル算出部(402)と、差分ベクトルと予測ベクトルの和を計算して動きベクトルを算出する加算器(403)と、予測画像を生成する予測画像生成部(404)を有する。
予測ベクトル算出部(402)は動きベクトル記憶メモリ(401)に記憶されている既復号化領域の動きベクトルに基づいて対象ブロックの予測ベクトルを算出する。当該予測ベクトルの算出処理は、図7、図8の説明にて既に説明したとおりである。加算部(403)では、可変長復号化部にて復号化された差分ベクトルと予測ベクトルの和を計算して動きベクトルを復号化する。そして、復号化された動きベクトルを動きベクトル記憶メモリ(401)に記憶する一方で、予測画像生成部(404)では動きベクトルと参照画像から予測画像(405)を生成する。
図16は、本実施例における1フレームの符号化処理手順について示している。まず、符号化対象となるフレーム内に存在するすべてのブロックに対して(1601)、以下の処理を行う。すなわち、該当ブロックに対して一度すべての符号化モード(予測方法とブロックサイズの組み合わせ)に対して(1602)、予測を実行する。ここでは、予測の方法に応じて(1603)、画面内予測(1604)、または画面間予測(1605)を行い、予測差分(差分画像)の計算を行う。さらに、画面間予測を行う際には、予測差分(差分画像)の他に動きベクトルを符号化する。ここでは、図7および図8に示す方法にて計算されたPMV(予測ベクトル)に基づいてDMV(差分ベクトル)を計算する(1606)。続いて、予測差分に対して周波数変換処理(1607)、量子化処理(1608)を行う。さらに図9、図11、図12、図13、図14に示した可変長符号表およびその切替処理用いた可変長符号化処理(1609)を行い、各符号化モードの画質歪と符号量を計算する。以上の処理をすべての符号化モードに対して終了すれば、以上の結果に基づいて最も符号化効率の良いモードを選択する(1610)。なお、多数の符号化モードの中から最も符号化効率の高いものを選択する際には、例えば画質歪みと符号量の関係から最適な符号化モードを決定するRD-Optimization方式を利用することによって、効率良く符号化できる。RD-Optimization方式の詳細については参考文献2を参照のこと。
[参考文献2]G. Sullivan and T.Wiegand : “Rate-Distortion Optimization for Video Compression”, IEEE Signal Processing Magazine, vol.15, no.6, pp.74-90, 1998.
続いて、選択された符号化モードに対して、量子化済みの周波数変換係数に逆量子化処理(1611)と逆周波数変換処理(1612)を施して予測差分を復号化し、復号化画像を生成して参照画像メモリに格納する(1613)。以上の処理をすべてのブロックに対して完了すれば、画像1フレーム分の符号化は終了する(1614)。
図17は、図16におけるDMV(差分ベクトル)計算処理(1606)の詳細な処理手順について示している。まず、対象ブロックの周辺ブロックにおけるベクトル(候補ベクトル)を整列する(1701)。ここで、本実施例において「整列」とは、複数の候補ベクトルの所定の方向の成分の値のうち、どの候補ベクトルの値が最大値、中央値、最小値となるかを計算し、最大値ベクトル、中央値ベクトル、最小値ベクトルをそれぞれ決定することである。以下に記載される「整列」も同様の意味である。次に、複数の候補ベクトルの所定の方向の成分の値にThre1以上の間隔があるかどうかを調べる(1702)。Thre1以上の間隔がなければ、従来方式と同様に候補ベクトルの中央値によるPMV(予測ベクトル)計算を行う(1703)。一方、Thre1以上の間隔があれば、続いてThre2以上の間隔があるかどうかを調べる(1704)。Thre2以上の間隔がなければ、選択肢となる候補値の中から、差分ベクトルを最小化するものをPMV(予測ベクトル)として選択し(1705)、選択情報を付加ビットとして追加する(1706)。一方、Thre2以上の間隔があれば、候補値の中間値を計算してさらなる予測値の選択肢を生成する(1707)。続いて、選択肢となる候補値の中から、差分ベクトルを最小化するものをPMV(予測ベクトル)として選択し(1705)、選択情報を付加ビットとして追加する(1706)。以上の手続きによりPMV(予測ベクトル)を計算した後、動きベクトルMVとPMV(予測ベクトル)の差分を計算してDMV(差分ベクトル)とし(1710)、PMV(予測ベクトル)の選択状況に応じてDMV(差分ベクトル)の符号表を選択する(1710)。以上の処理が終了すれば、DMV(差分ベクトル)計算が終了する(1711)。なお、上記の処理のうち、予測ベクトルの算出処理は、図7および図8に示す予測ベクトルの算出処理に対応する処理である。
図18は、本実施例における1フレームの復号化処理手順について示している。まず、1フレーム内のすべてのブロックに対して、以下の処理を行う(1801)。すなわち、入力ストリームに対して可変長復号化処理を施し、予測差分の周波数変換係数成分や差分ベクトルの復号化を行う(1802)。
ここで、当該可変長復号化処理においては、既に復号された周辺ブロックの動きベクトルを取得し、図7〜図8に示した候補ベクトルの整列を行う。ここで、各候補ベクトル間の差を算出し、候補ベクトルの分布状況(CASE1〜CASE7)を判別する。当該分布状況(CASE1〜CASE7)の判別結果に基づいて、図9の可変長符号表を選択する。図9の符号表を用いて、符号化ストリームに含まれる付加ビットが示す選択肢を判別する。当該付加ビットが示す選択肢を用いて、図12、図13、図14に示す可変長符号表を選択する。さらに、当該選択した可変長符号表を用いて差分ベクトルの可変長復号化処理を行う。
次に、可変長復号化処理において取得した予測差分の周波数変換係数成分に対して逆量子化処理(1803)および逆周波数変換処理(1804)を施して予測差分(差分画像)を復号化する。続いて、予測の方法に応じて(1805)、画面内予測処理(1806)および画面間予測処理(1808)を行う。なお、画面間予測を行う際には画面間予測処理より先に動きベクトルMVの復号化を行う。差分ベクトルDMVは先に可変長復号化処理(1802)において復号しておき、ここでは、図7〜図8に示す方法にて計算されたPMV(予測ベクトル)と差分ベクトルDMVを加算し、MVを算出する(1807)。算出したMVを用いて面間予測処理(1808)が行われる。以上の処理をフレーム中のすべてのブロックに対して完了すれば、画像1フレーム分の復号化が終了する(1809)。
図19は、図18におけるMV計算(1807)の詳細な処理手順について示している。まず、対象ブロックの周辺ブロックにおけるベクトル(候補ベクトル)を整列し(1901)、それらの値にThre1以上の間隔があるかどうかを調べる(1902)。Thre1以上の間隔がなければ、従来方式と同様に候補ベクトルの中央値によるPMV(予測ベクトル)計算を行う(1903)。一方、Thre1以上の間隔があれば、続いてThre2以上の間隔があるかどうかを調べる(1904)。Thre2以上の間隔がなければ、付加ビットを読み込んでPMV(予測ベクトル)として選択されている値を特定し、PMV(予測ベクトル)を復号する(1905)。一方、Thre2以上の間隔があれば、候補値の中間値を計算してさらなる予測値の選択肢を生成し(1906)、続いて、付加ビットを読み込んでPMV(予測ベクトル)として選択されている値を特定してPMV(予測ベクトル)を復号する (1907)。以上の手続きによりPMV(予測ベクトル)を計算した後、PMV(予測ベクトル)と差分ベクトルDMVの和を計算してMVとし(1908)、MV計算を終了する(1909)。
本実施例では、予測ベクトルの算出をブロック単位で行っているが、それ以外にも例えば画像の背景から分離したオブジェクト単位で算出しても良い。また、周波数変換の一例としてDCTを挙げているが、DST(Discrete Sine Transformation:離散サイン変換)、WT(Wavelet Transformation:ウェーブレット変換)、DFT(Discrete Fourier Transformation:離散フーリエ変換)、KLT(Karhunen-Loeve Transformation:カルーネン-レーブ変換)など、画素間相関除去に利用する直交変換ならどのようなものでも構わないし、特に周波数変換を施さずに予測差分そのものに対して符号化を行っても構わない。さらに、可変長符号化も特に行わなくて良い。
なお、実施例1では、対象ロックにおける予測ベクトルの候補値として3種類の周辺ベクトルを利用する例にについて説明したが、特に候補値の数は限定しないものとする。すなわち3種類より多くの周辺ベクトルを候補としても良い。
以上説明した本発明の実施例1に係る動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法によれば、動きベクトルの符号量を減少して圧縮効率を向上した動画像符号化方法および動画像復号化方法を実現することが可能となる。
次に、本発明の実施例2について説明する。
実施例1では、予測ベクトルの候補となるベクトルの数を3とした。これに対し、実施例2では、より単純な方法として、その数を2とする。
実施例2の動画像符号化装置は、図1、図2に示す実施例1の動画像符号化装置において、予測ベクトルPMVの算出方法が異なるのみである。よって、その他の構成、動作の詳細については、既に説明したため、説明を省略する。
また、実施例2の動画像復号化装置は、図3、図4に示す実施例1の動画像復号化装置において、予測ベクトルPMVの算出方法が異なるのみである。よって、その他の構成、動作の詳細については、既に説明したため、説明を省略する。
また、実施例2の動画像符号化方法は、図16に示す実施例1の動画像符号化方法において、差分ベクトルDMVの算出方法が異なるのみである。よって、その他の処理の詳細については、既に説明したため、説明を省略する。
また、実施例2の動画像復号化方法は、図18に示す実施例1の動画像復号化方法において、動きベクトルMVの算出方法が異なるのみである。よって、その他の処理の詳細については、既に説明したため、説明を省略する。
以下、図15を用いて、実施例2における予測ベクトルPMVの算出方法について説明する。図15は、本実施例による予測ベクトルPMVの算出方法の一例について概念的に示している。ここでは、予測ベクトルの候補となるベクトルを、対象ブロックの左側、上側にそれぞれ隣接するブロックA、ブロックBの2種類とする。このとき、各ブロックにおける動きベクトルをMVA、MVBとする。ただし、予測ベクトルを算出する際に、例えば対象ブロックの右上に隣接するブロックC(動きベクトルMVC)など、その他のブロックを利用しても良い。
まず、動きベクトルMVA、MVBのx、y各成分についてそれぞれ比較を行い、その差が閾値Thre1以下であれば、どちらの値が選ばれても差分ベクトルの大きさに大差はないとみなし、H.264/AVC規格と同様にMVA、MVB、MVcの中央値を予測ベクトルPMVとして選択する(1501)。このとき、付加ビットは発生することはない。この場合、特に中央値でなくても、例えば平均値、最大値、最小値など、どのような計算方法でも良いし、例えば対象ブロックの右上に隣接するブロックや、時間的に1つ前のフレーム中の対象ブロックと同じ位置にあるブロックなど、ブロックA、ブロックB、ブロックC以外のブロックにおける動きベクトルを利用しても良い。
一方、その差がThred1とThred2の間であれば、予測値の選択肢をMVAとMVBの2種類とし、このうち差分ベクトルがより小さくなる方を予測ベクトルPMVとして選択して1ビットの情報を付加する。また、その差がThred2以上であれば、予測値の選択肢をMVA、MVB、(MVA+MVB)/2の3種類とし、これらの中で差分ベクトルが最も小さくなるものを予測ベクトルPMVとして選択して1ビットもしくは2ビットの情報を付加する。
実施例2の動画像符号化装置および動画像符号化方法では、画面間予測により算出した動きベクトルMVと上記のように算出した予測ベクトルPMVとの差から差分ベクトルDMVを算出して動画像符号化処理を行う。
実施例2の動画像復号化装置および動画像復号化方法では、算出した予測ベクトルPMVに符号化ストリームから復号した差分ベクトルDMVを加算して動きベクトルMV算出して画面間予測処理を行い動画像復号化処理を行う。
本実施例では、予測ベクトルの算出をブロック単位で行っているが、それ以外にも例えば画像の背景から分離したオブジェクト単位で算出しても良い。また、周波数変換の一例としてDCTを挙げているが、DST(Discrete Sine Transformation:離散サイン変換)、WT(Wavelet Transformation:ウェーブレット変換)、DFT(Discrete Fourier Transformation:離散フーリエ変換)、KLT(Karhunen-Loeve Transformation:カルーネン-レーブ変換)など、画素間相関除去に利用する直交変換ならどのようなものでも構わないし、特に周波数変換を施さずに予測差分そのものに対して符号化を行っても構わない。さらに、可変長符号化も特に行わなくて良い。
以上説明した本発明の実施例2に係る動画像符号化装置、動画像符号化方法、動画像復号化装置および動画像復号化方法によれば、実施例1の効果に加えて、より処理を単純化して処理量を低減することが可能となる。