(57)【特許請求の範囲】
【請求項１】
動画像符号化又は復号化において、
ブロック毎に動きベクトルを有する格子点が４個存在するように、画像を横ｎ個、縦ｍ個（ｎ、ｍは正の整数）の正方形または長方形のブロックに分割し、
前記ブロック内に存在する格子点が有する４個の動きベクトルの少なくとも１個を用いた動き補償により該ブロック内の動き補償予測画像を合成し、
動き補償予測画像の合成方法は、前記ブロック毎に２通り以上の候補の中から選択され、
前記候補は、前記ブロック毎に異なる２通りの合成方法よって生成された前記ブロック内の予測画像２枚の平均を前記ブロック内の予測画像とする方法を含むことを特徴とする動き補償方法。
【請求項２】
前記候補は、前記ブロック内のすべての画素が前記４個の動きベクトルの中の１の動きベクトルに従うようにする方法を含むことを特徴とする請求項１に記載の動き補償方法。
【請求項３】
前記候補は、前記ブロック内のすべての画素が前記４個の動きベクトルの平均値に従うようにする方法を含むことを特徴とする請求項１に記載の動き補償方法。
【請求項４】
前記候補は、前記ブロックを２個以上の部分に分割し、該部分内の画素が該部分に存在する前記格子点の動きベクトルの中の１個に従うようにする方法を含むことを特徴とする請求項１に記載の動き補償方法。
【請求項５】
前記分割は４個の部分に分割するものであることを特徴とする請求項４に記載の動き補償方法。
【請求項６】
前記候補は、前記ブロックを対角線で２個の直角３角形に分割し、該直角３角形に存在する前記格子点の動きベクトルの中から３個を選択し、該選択された３個の動きベクトルによって決定されるアフィン変換によって前記直角３角形内の動きベクトルを求める方法を含むことを特徴とする請求項１に記載の動き補償方法。
【請求項７】
前記候補は、前記４個の動きベクトルによって決定される共１次変換によって前記ブロック内の動きベクトルを求める方法を含むことを特徴とする請求項１に記載の動き補償方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像符号化における動き補償方法に関するものである。
【０００２】
【従来の技術】
動画像の高能率符号化において、時間的に近接するフレーム間の類似性を活用する動き補償は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるＭＰＥＧ１およびＭＰＥＧ２にも採用されている半画素精度のブロックマッチングである。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを水平・垂直方向に隣接画素間距離の半分の長さを最小単位として求める。この処理を数式を用いて表現すると以下のようになる。符号化しようとするフレーム（現フレーム）の予測画像をＰ(ｘ, ｙ)、参照画像（Ｐと時間的に近接しており、既に符号化が完了しているフレームの復号画像）をＲ(ｘ, ｙ)とする。また、ｘとｙは整数であるとして、ＰとＲでは座標値が整数である点に画素が存在すると仮定する。このとき、ＰとＲの関係は、
【０００３】
【数１】
0003700230.tif 000002
【０００４】
で表される。ただし、画像はｎ個のブロックに分割されるとして、Ｂiは画像のｉ番目のブロックに含まれる画素、(ｕi, ｖi)はｉ番目のブロックの動きベクトルを表している。
【０００５】
半画素精度のブロックマッチングでは、ｕiとｖiはそれぞれ画素間距離の半分、つまりこの場合は１／２を最小単位として求められることになる。したがって、座標値が整数ではなく、参照画像において実際には画素が存在しない点（以後、このような点を内挿点とよぶ）の輝度値を求めることが必要となる。この際の処理としては、周辺４画素を用いた共１次内挿が使われることが多い。この内挿方式を数式で記述すると、座標値の小数成分をαとβ（０≦α, β＜１）として、参照画像の内挿点(ｘ＋α, ｙ＋β)における輝度値Ｒ(ｘ＋α, ｙ＋β)は、
【０００６】
【数２】
0003700230.tif 000003
【０００７】
で表される。
【０００８】
半画素精度のブロックマッチングは上で述べた通り、現在広く用いられているが、ＭＰＥＧ１やＭＰＥＧ２より高い情報圧縮率が必要となるアプリケーションではさらに高度な動き補償方式が要求される。ブロックマッチングの欠点はブロック内のすべての画素が同一の動きベクトルを持たなければならない点にある。そこでこの問題を解決するために、隣接する画素が異なる動きベクトルを持つことを許容する動き補償方式が最近提案されている。以下にこの方式の一例である空間変換に基づく動き補償に関して簡単に説明する。
【０００９】
空間変換に基づく動き補償では、予測画像Ｐと参照画像Ｒの関係は、
【００１０】
【数３】
0003700230.tif 000004
【００１１】
で表される。ただし、画像はｎ個の小領域（パッチ）に分割されるとして、Ｐiは画像のｉ番目のパッチに含まれる画素を表している。また、変換関数ｆi(ｘ, ｙ)とｇi(ｘ, ｙ)は現フレームの画像と参照画像との間の空間的な対応を表現している。このとき、Ｐi内の画素(ｘ, ｙ)の動きベクトルは、(ｘ−ｆi(ｘ, ｙ),ｙ−ｇi(ｘ, ｙ))で表すことができる。ところで、ブロックマッチングは変換関数が定数である方式として、空間変換に基づく動き補償の特殊な例として解釈することもできる。しかし、本明細書で空間変換に基づく動き補償という言葉を用いるときには、ブロックマッチングはその中に含まないこととする。
【００１２】
変換関数の形としては、アフィン変換
【００１３】
【数４】
0003700230.tif 000005
【００１４】
を用いた例（中屋他、「３角形パッチに基づく動き補償の基礎検討」、電子情報通信学会技術報告、IE90-106、平2-03参照）、共１次変換
【００１５】
【数５】
0003700230.tif 000006
【００１６】
を用いた例（ G. J. Sullivan and R. L. Baker, "Motion compensation for video compression using control grid interpolation", Proc. ICASSP '91 , M9.1, pp.2713-2716, 1991-05）
などが報告されている。ここでａij、ｂijはパッチごとに推定される動きパラメータである。実際の画像符号化を行う場合には、ａij、ｂijを直接伝送するのではなく、パッチの頂点の動きベクトルが伝送される。例えば変換関数としてアフィン変換を採用し、３角形のパッチを用いればパッチの３個の頂点の動きベクトルから動きパラメータａijを計算することができる。したがって、受信側では受信した頂点の動きベクトルから送信側と同じ変換関数を構成することが可能となる。一方、変換関数として共１次変換を用いた場合には、長方形のパッチを用いてそのパッチの４個の頂点の動きベクトルを伝送すれば同様の処理を実現することができる。以下では、変換関数にアフィン変換を用いた場合に関して説明するが、この説明は共１次変換を用いた場合についても、ほぼそのまま適用することができる。
【００１７】
変換関数が確定しても空間変換に基づく動き補償には様々なバリエーションを考えることができるが、その一例を図１に示す。この例では、パッチの境界において動きベクトルが連続的に変化するように制約されている。以下では、参照画像１０１を用いて現フレームの原画像１０２の予測画像を合成することを考える。このために、まず現フレームは複数の多角形のパッチに分割され、パッチ分割された画像１０８となる。パッチの頂点は格子点とよばれ、各格子点は複数のパッチに共有される。例えば、パッチ１０９は、格子点１１０、１１１、１１２から構成され、これらの格子点は他のパッチの頂点を兼ねている。こうして画像を複数のパッチに分割した後に、動き推定が行なわれる。ここに示す例では、動き推定は各格子点を対象として参照画像との間で行なわれる。この結果、動き推定後の参照画像１０３で各パッチは変形されたものとなる。例えば、パッチ１０９は、変形されたパッチ１０４に対応している。これは、動き推定の結果、格子点１０５、１０６、１０７がそれぞれ１１０、１１１、１１２に移動したと推定されたためである。予測画像はパッチ内の各画素に関して変換関数を計算し、数３にしたがって参照画像の中から対応する点の輝度値を求めることにより合成される。このように一方の画像の一部に変形操作を加えて他の画像に貼り付ける処理のことをテキスチャマッピング、またはイメージワーピングとよぶ。これは、上で述べた通り３個の頂点の動きベクトルから数４の６個の動きパラメータを計算し、画素ごとに数４を計算することにより実現することができる。
【００１８】
空間変換に基づく動き補償は、回転や拡大など、ブロックマッチングでは対応できない動きパターンにも対応出来ることに特徴がある。その一方で処理の演算量が多いという問題があるが、これを簡略化する方法として特願平06-193971で示されている方法などが考案されている。
【００１９】
図１で示した空間変換に基づく動き補償方式のもう一つの欠点として、動きベクトルの不連続に対応できないことが挙げられる。一般的に動画像においては動物体と静止物体の境界部分等において動きベクトルの不連続が発生する。しかし、図１で示した方式では動きベクトルの連続性（パッチ内はもちろん、パッチの境界においても動きベクトルは連続的に変化すること）が仮定されているため、復号化後の再生画像内において動物体と静止物体の境界部分で不自然な歪みが発生するなどの問題が発生する。
【００２０】
【発明が解決しようとする課題】
ブロックマッチングでは単純な平行移動に基づく動きモデルが用いられているため、十分に画像内の物体の動きを近似することができない。一方空間変換に基づく動き補償では動きベクトルの連続性が仮定されているため、再生画像の動物体と静止物体の境界部分等で不自然な歪みを発生する問題が生じる。
【００２１】
【課題を解決するための手段】
画像をブロックに分割し、それぞれのブロックに複数の動きベクトルが関与するようにする。そして、これらの動きベクトルを使用して、複数の候補の中で最適な動き補償方式を選択できるようにする。
【００２２】
【発明の実施の形態】
図２に画像を横ｎ個、縦ｍ個（ｎ、ｍは正の整数）のブロックに分割し、１個または複数のブロックの頂点が重なる位置に（ｎ＋１）×（ｍ＋１）個の格子点と呼ばれる点を配置した様子を示す。例えば２０１、２０２はブロック、２０３、２０４、２０５、２０６は格子点である。なお、格子点は必ずしもブロックの頂点の上に存在しているとしなくても良いが、本明細書では図２に示した位置に存在しているとする。
【００２３】
各格子点は動きベクトルを持つことができるとする。この動きベクトルの推定方法としては、中心に格子点を持つブロックによってブロックマッチングを行うなどの方法を考えることができる。各ブロック内の予測画像は、そのブロックの頂点に位置する４個の格子点の動きベクトルを用いて合成されるとする。例えばブロック２０１を考えた場合、格子点２０３、２０４、２０５、２０６の４個の格子点の動きベクトルが使用される。このように、画像内のすべてのブロックには４個の格子点が関与するようにすることができる。
【００２４】
４個の格子点を用いて動き補償を行う方法は複数考えられる。その１つとして、４個の格子点の中から１個を選択し、その格子点の動きベクトルをブロック全体の動きベクトルとする方法が挙げられる。例えば図２のブロック２０１では、格子点２０３、２０４、２０５、２０６の中から最適な動きベクトルを持つ格子点を選択することができる。また、４個の格子点の動きベクトルの平均値をブロックの動きベクトルとしても良い。さらに、１個または２個の格子点の動きベクトルが他と大きく異なるような場合には、４個の動きベクトルの水平、垂直成分それぞれの中から最大値と最小値を除外してから平均を求める方法も考えることができる。この予測画像の合成方法はブロックマッチングと同じであり、単純な演算で良好な予測特性を得ることができる。しかし、物体の回転、拡大・縮小や同一ブロック内に異なる方向に動く複数の物体が存在する場合には、十分な特性が得られない。
【００２５】
図３には画像を複数の直角３角形に分割した例を示す。ブロック３０１の例では格子点３０３、３０５、３０４によって構成される３角形と格子点３０４、３０５、３０６によって構成される３角形に分割される。ブロック３０２の例では、格子点３０７、３１０、３０８によって構成される３角形と格子点３０７、３０９、３１０によって構成される３角形に分割される。このような分割を行った場合の予測画像の合成方法として、まずそれぞれの部分に、ブロックに関与している４個の動きベクトルの中から１個ずつの動きベクトルを割り当てる方法が考えられる。例えばブロック３０１の例では格子点３０３、３０５、３０４によって構成される３角形に対しては格子点３０３の動きベクトルを、格子点３０４、３０５、３０６によって構成される３角形に対しては格子点３０６の動きベクトルを割り当てることができる。この方法は上で述べた、ブロック全体に１個の動きベクトルを割り当てる方式と比較して処理がやや複雑であるが、その分対応できる動きの範囲が広くなっている。例えば３０１のブロック分割において動物体と静止物体の境界が格子点３０４と３０５を結ぶ対角線上に位置しているような場合には、高い予測特性を示すことが予想できる。また、ブロック分割の方法としてブロック３０１に示した例とブロック３０２に示した例の両方の中から一方を選択できるようにすれば、対応できる動きのパターンの範囲をさらに広げることができる。なお、ブロックを２個の部分に分割する方法として、図３で示した方法以外にも手段があることは明らかである。図３の方式以外の分割においてもそれぞれの部分に４個の動きベクトルの中から１個を割り当てれば同様の処理を実現することができる。
【００２６】
図３の分割を用いたもう１つの予測画像の合成方法として、数４で示したアフィン変換を用いた方法を考えることができる。例えばブロック３０１の例では、格子点３０３、３０５、３０４の動きベクトルを用いることによって、これらの格子点によって構成される３角形に対してアフィン変換に基づく予測画像の合成を行うことができる。また、同様の処理は格子点３０５、３０６、３０４によって構成される３角形に対しても行うことができる。ここでは、「従来の技術」の中で説明した空間変換に基づく動き補償と共通の技術が使用されている。この方法は上で述べた方法と比べてさらに処理が複雑となるが、物体の回転、拡大・縮小に対応できる重要な特徴を持っている。ただ、ブロック内で動きベクトルは連続となるので、ブロック内に異なる動きをする複数の物体が存在するような場合には良い特性は得られない。また、この方法においてもブロックの分割に関して２通りの方法が選択できるようにすることによって、予測特性をさらに改善することができる。
【００２７】
アフィン変換を用いた例と良く似た予測画像の合成方法として数５で示した共１次変換を用いた方法がある。例えば、図２のブロック２０１の場合、格子点２０３、２０４、２０５、２０６の４個の動きベクトルを用いることによって数５でｂijによって表される８個のパラメータを決定することができる。こうしてパッチ内の画素に対して空間変換に基づく動き補償と共通の技術を用いて予測画像の合成を行えばよい。この共１次変換を用いた方法はアフィン変換を用いた方法と良く似た特性を示すが、処理がやや複雑である。しかし、動きのパターンによってはアフィン変換を用いた場合より良い特性を示すことがあるため、予測画像の合成方法の選択肢の中に入れておくと便利である。
【００２８】
図４はブロックを４個の部分に分割する予測画像の合成方法を示した例である。格子点４０２、４０３、４０４、４０５によって構成される４角形のブロック４０１は４個の小ブロック４０６、４０７、４０８、４０９に分割される。そして、例えば小ブロック４０６には格子点４０２の動きベクトル、小ブロック４０７には格子点４０４の動きベクトル、小ブロック４０８には格子点４０３の動きベクトル、小ブロック４０９には格子点４０５の動きベクトルを割り当てることによって４個の小ブロックによるブロックマッチングを実現できる。この方法はブロックを４個の部分に分割するため、上で述べた方法と比較してより多くの異なる動きをする物体が存在するような場合にも対応することができる。ただし、物体の回転、拡大・縮小には十分に対応することができない。なお、ブロックを４個の部分に分割する方法として、図４で示した方法以外にも手段があることは明らかである。図４の方式以外の分割においてもそれぞれの部分に４個の動きベクトルの中から１個を割り当てれば同様の処理を実現することができる。
【００２９】
以上述べてきたように、ここでとりあげたブロック内の予測画像の合成方式は、それぞれに長所と欠点を持ち合わせている。動画像は、一般的に画像内の領域ごとに動きのパターンが大きく異なるという特徴を持っている。例えば静止領域、平行移動する領域、回転する領域、動領域と静止領域の境界などでは全く動きのパターンが異なっている。したがって画像をブロックに分割して領域ごとの局所的な対応ができるようにしたとしても、予測画像の合成方法が１通りしかない（＝従来のブロックマッチングなど）では十分な予測特性を得ることができない。そこで、上で挙げた多数の予測画像の合成方法の中からブロックごとに最適な方法を選択することができるようにすることによって、予測特性を向上させることが可能となる。予測画像の誤差のみを考えるのであれば、異なる特徴を持った予測画像の合成方法をより多数持った方が特性を上げる上で有利となる。
【００３０】
予測画像の合成方法はブロックごとに必ずしも１個のみを選ぶ必要はない。２個の合成方法を選択し（例えばアフィン変換とブロック４分割）、両者の間で輝度値の平均値をとったものをブロック内の予測画像とすることによって、さらに予測特性を向上させることも可能である。一般に異なる予測画像を平均化することによってノイズ除去とローパスフィルタの効果が得られ、予測特性が改善されることが知られている。ＭＰＥＧ１やＭＰＥＧ２などの標準動画像符号化方式において、２つの方向（正方向と逆方法）から予測した画像を平均化する操作を行うこと（＝両方向予測）ができるようになっているのはこのためである。なお、本明細書に記載した発明が、この両方向予測にも適用できることは明らかである。
【００３１】
【発明の効果】
本発明により、動画像符号化の動き補償処理における予測特性を向上させることができる。
【図面の簡単な説明】
【図１】空間変換に基づく動き補償の処理の例を示した図である。
【図２】ブロックと格子点の配置の例を示した図である。
【図３】ブロックを２個の直角３角形に分割して動き補償を行う方式の例を示した図である。
【図４】ブロックを４個の小ブロックに分割して動き補償を行う方式の例を示した図である。
【符号の説明】
１０１…参照画像、１０２…現フレームの原画像、１０３…動き推定後の参照画像のパッチと格子点、１０４、１０９…パッチ、１０５〜１０７、１１０〜１１２、２０３〜２０６、３０３〜３１０、４０２〜４０５…格子点、２０１、２０２、３０１、３０２、４０１…ブロック、４０６〜４０９…小ブロック。
【図１】
0003700230.tif 000007
【図２】
0003700230.tif 000008
【図３】
0003700230.tif 000009
【図４】
0003700230.tif 000010