JP3777998B2 - Global motion compensation method - Google Patents

Global motion compensation method Download PDF

Info

Publication number
JP3777998B2
JP3777998B2 JP2001104091A JP2001104091A JP3777998B2 JP 3777998 B2 JP3777998 B2 JP 3777998B2 JP 2001104091 A JP2001104091 A JP 2001104091A JP 2001104091 A JP2001104091 A JP 2001104091A JP 3777998 B2 JP3777998 B2 JP 3777998B2
Authority
JP
Japan
Prior art keywords
image
points
right triangle
motion compensation
integers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001104091A
Other languages
Japanese (ja)
Other versions
JP2001352549A (en
Inventor
雄一郎 中屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001104091A priority Critical patent/JP3777998B2/en
Publication of JP2001352549A publication Critical patent/JP2001352549A/en
Application granted granted Critical
Publication of JP3777998B2 publication Critical patent/JP3777998B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像全体に対して線形内・外挿または共1次内・外挿に基づくグローバル動き補償を適用する画像符号化および復号化方法に関するものである。
【0002】
【従来の技術】
動画像の高能率符号化において、時間的に近接するフレーム間の類似性を活用する動き補償は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるH.261,MPEG1,MPEG2に採用されているブロックマッチングである。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを求める。
【0003】
図1にH.261の符号化器の構成例100を示す。H.261は、符号化方式として、ブロックマッチングとDCT(離散コサイン変換)を組み合わせたハイブリッド符号化方式(フレーム間/フレーム内適応符号化方式)を採用している。減算器102は入力画像(現フレームの原画像)101とフレーム間/フレーム内符号化切り換えスイッチ119の出力画像113(後述)との差を計算し、誤差画像103を出力する。この誤差画像は、DCT変換器104でDCT係数に変換された後に量子化器105で量子化され、量子化DCT係数106となる。この量子化DCT計数は伝送情報として通信路に出力されると同時に、符号化器内でもフレーム間予測画像を合成するために使用される。以下に予測画像合成の手順を説明する。上述の量子化DCT係数106は、逆量子化器108と逆DCT変換器109を経て復号誤差画像110(受信側で再生される誤差画像と同じ画像)となる。これに、加算器111においてフレーム間/フレーム内符号化切り換えスイッチ119の出力画像113(後述)が加えられ、現フレームの復号画像112(受信側で再生される現フレームの復号画像と同じ画像)を得る。この画像は一旦フレームメモリ114に蓄えられ、1フレーム分の時間だけ遅延される。したがって、現時点では、フレームメモリ114は前フレームの復号画像115を出力している。この前フレームの復号画像と現フレームの入力画像101がブロックマッチング部116に入力され、ブロックマッチングの処理が行われる。ブロックマッチングでは、画像を複数のブロックに分割し、各ブロックごとに現フレームの原画像に最も似た部分を前フレームの復号画像から取り出すことにより、現フレームの予測画像117が合成される。このときに、各ブロックが前フレームと現フレームの間でどれだけ移動したかを検出する処理(動き推定処理)を行う必要がある。動き推定処理によって検出された各ブロックごとの動きベクトルは、動き情報120として受信側へ伝送される。受信側は、この動き情報と前フレームの復号画像から、独自に送信側で得られるものと同じ予測画像を合成することができる。予測画像117は、「0」信号118と共にフレーム間/フレーム内符号化切り換えスイッチ119に入力される。このスイッチは、両入力のいずれかを選択することにより、フレーム間符号化とフレーム内符号化を切り換える。予測画像117が選択された場合(図2はこの場合を表している)には、フレーム間符号化が行われる。一方、「0」信号が選択された場合には、入力画像がそのままDCT符号化されて通信路に出力されるため、フレーム内符号化が行われることになる。受信側が正しく復号化画像を得るためには、送信側でフレーム間符号化が行われたかフレーム内符号化が行われたかを知る必要がある。このため、識別フラグ121が通信路へ出力される。最終的なH.261符号化ビットストリーム123は多重化器122で量子化DCT係数,動きベクトル,フレーム内/フレーム間識別フラグの情報を多重化することによって得られる。
【0004】
図2に図1の符号化器が出力した符号化ビットストリームを受信する復号化器200の構成例を示す。受信したH.261ビットストリーム217は、分離器216で量子化DCT係数201,動きベクトル202,フレーム内/フレーム間識別フラグ203に分離される。量子化DCT係数201は逆量子化器204と逆DCT変換器205を経て復号化された誤差画像206となる。この誤差画像は加算器207でフレーム間/フレーム内符号化切り換えスイッチ214の出力画像215を加算され、復号化画像208として出力される。フレーム間/フレーム内符号化切り換えスイッチはフレーム間/フレーム内符号化識別フラグ203に従って、出力を切り換える。フレーム間符号化を行う場合に用いる予測画像212は、予測画像合成部211において合成される。ここでは、フレームメモリ209に蓄えられている前フレームの復号画像210に対して、受信した動きベクトル202に従ってブロックごとに位置を移動させる処理が行われる。一方フレーム内符号化の場合、フレーム間/フレーム内符号化切り換えスイッチは、「0」信号213をそのまま出力する。
【0005】
ブロックマッチングは現在最も広く利用されている動き補償方式であるが、画像全体が拡大・縮小・回転している場合には、すべてのブロックに対して動きベクトルを伝送しなければならず、符号化効率が悪くなる問題が発生する。この問題に対し、画像全体の動きベクトル場を少ないパラメータを用いて表現するグローバル動き補償(例えば、M.Hotter, &#34Differential estimation of the global motion parameters zoom and pan&#34, Signal Processing, vol. 16, no. 3, pp. 249-265, Mar. 1989)が提案されている。これは、画像内の画素(x,y)の動きベクトル(ug(x,y),vg(x,y))を、
【0006】
【数1】

Figure 0003777998
【0007】
や、
【0008】
【数2】
Figure 0003777998
【0009】
の形式で表し、この動きベクトルを利用して動き補償を行う方式である。ここでa0〜a5,b0〜b7 は動きパラメータである。動き補償を行う際には、送信側と受信側で同じ予測画像が得られなければならない。このために、送信側は受信側へ a0〜a5 または b0〜b7 の値を直接伝送しても良いが、代わりにいくつかの代表点の動きベクトルを伝送する方法もある。いま、画像の左上端,右上端,左下端,右下端の画素の座標がそれぞれ(0,0),(r,0),(0,s),(r,s)で表されるとする(ただし、rとsは正の整数)。このとき、代表点(0,0),(r,0),(0,s)の動きベクトルの水平,垂直成分をそれぞれ(ua,va),(ub,vb),(uc,vc)とすると、(数1) は
【0010】
【数3】
Figure 0003777998
【0011】
と書き換えることができる。このことは a0〜a5 を伝送する代わりに ua,va,ub,vb,uc,vc を伝送しても同様の機能が実現できることを意味する。この様子を図3に示す。現フレームの原画像302と参照画像301の間でグローバル動き補償が行われたとして、動きパラメータの代わりに代表点303,304,305の動きベクトル306,307,308(このとき、動きベクトルは現フレームの原画像の点を出発点として、参照画像内の対応する点を終点とするものとして定義する)を伝送しても良い。これと同じように、4個の代表点(0,0),(r,0),(0,s),(r,s)の動きベクトルの水平,垂直成分(ua,va),(ub,vb),(uc,vc),(ud,vd)を用いて (数2) は、
【0012】
【数4】
Figure 0003777998
【0013】
と書き換えることができる。したがって、b0〜b7 を伝送する代わりに ua,va,ub,vb,uc,vc,ud,vd を伝送しても同様の機能が実現できる。本明細書では (数1) を用いる方式を線形内・外挿に基づくグローバル動き補償,(数2) を用いる方式を共1次内・外挿に基づくグローバル動き補償とよぶこととする。
【0014】
代表点の動きベクトルを伝送する線形内・外挿に基づくグローバル動き補償方式を採用した画像符号化器の動き補償処理部401の構成例を図4に示す。図1と同じ番号は同じものを指すとする。図1のブロックマッチング部116をこの動き補償処理部401に入れ替えることにより、グローバル動き補償を行う画像符号化装置を構成することができる。グローバル動き補償部402で前フレームの復号画像115と現フレームの原画像101との間でグローバル動き補償に関する動き推定が行われ、上記 ua,va,ub,vb,uc,vc の値が推定される。これらの値に関する情報403は動き情報120の一部として伝送される。グローバル動き補償の予測画像404は数3を用いて合成され、ブロックマッチング部405に供給される。ここでは、グローバル動き補償の予測画像と現フレームの原画像との間でブロックマッチングによる動き補償が行われ、ブロックの動きベクトル情報406と最終的な予測画像117が得られる。この動きベクトル情報は動きパラメータ情報と多重化部407において多重化され、動き情報120として出力される。
【0015】
図4とは異なる動き補償処理部501の構成例を図5に示す。図1と同じ番号は同じものを指すとする。図1のブロックマッチング部116をこの動き補償処理部501に入れ替えることにより、グローバル動き補償を行う画像符号化装置を構成することができる。この例では、グローバル動き補償の予測画像にブロックマッチングを適用するのではなく、各ブロックに関してグローバル動き補償かブロックマッチングのいずれかが適用される。前フレームの復号画像115と現フレームの原画像101との間で、グローバル動き補償部502とブロックマッチング部505でそれぞれグローバル動き補償とブロックマッチングが並列に行われる。選択スイッチ508は、グローバル動き補償による予測画像503とブロックマッチングによる予測画像506の間でブロックごとに最適な方式を選択する。代表点の動きベクトル504,ブロックごとの動きベクトル507,グローバル動き補償/ブロックマッチングの選択情報509は多重化部510で多重化され、動き情報120として出力される。
【0016】
以上述べたグローバル動き補償を導入することにより、画像の大局的な動きを少ないパラメータを用いて表現することが可能となり、より高い情報圧縮率が実現できる。しかし、その一方で符号化および復号化における処理量は従来の方式と比較して増加する。特に (数3) および (数4) に見られる除算は、処理を複雑にする大きな要因となってしまう。
【0017】
【発明が解決しようとする課題】
画像全体の動きベクトル場を少ないパラメータによって近似するグローバル動き補償では、予測画像の合成のための処理量が多くなる問題が発生する。本発明の目的は、グローバル動き補償における除算の処理を2進数のシフト演算に置き換えることにより、演算量を減少させることにある。
【0018】
【課題を解決するための手段】
グローバル動き補償を行う際の代表点の座標をうまく選択することにより、除算処理をシフト演算で実現できるようにする。
【0019】
【発明の実施の形態】
以下の議論では、画素のサンプリング間隔を水平,垂直方向共に1とし、画像の左上端,右上端,左下端,右下端の画素の座標がそれぞれ(0,0),(r,0),(0,s),(r,s)で表されるとする(ただし、rとsは正の整数)。
【0020】
線形内・外挿(アフィン変換)または共1次内・外挿(共1次変換)を用いた動き補償を行う際には、画素ごとの動きベクトルに対して量子化を行うと、ミスマッチの防止や演算の簡略化などの効果を得ることができる(特願平06-193970)。以下では、画素の動きベクトルの水平成分と垂直成分が1/m(mは正の整数)の整数倍であるとする。また、「従来の技術」で説明した代表点の動きベクトルを用いるグローバル動き補償を行うと仮定し、各代表点の動きベクトルは1/k(kは正の整数)の整数倍であるとする。なお、本明細書では、「画素の動きベクトル」はグローバル動き補償を行う際に、実際に予測画像を合成するために用いる動きベクトルのことを指す。一方、「代表点の動きベクトル」は画素の動きベクトルを計算するために用いるパラメータを意味している。したがって、量子化ステップサイズの違いなどが原因で、同じ座標上に存在していても画素の動きベクトルと代表点の動きベクトルが一致しない場合も起こり得る。
【0021】
まず線形内・外挿を用いる場合について図6を用いて説明する。このとき、「従来の技術」で述べたように代表点を画像601の隅に位置する点とはせず、(i,j),(i+p,j),(i,j+q)に位置する点602,603,604とする(i,j,p,qは整数)。このとき、点602,603,604は画像の内部に存在していても外部に存在していても良い。代表点の動きベクトルの水平,垂直成分をk倍したものをそれぞれ(u0,v0),(u1,v1),(u2,v2)とすると(u0,v0,u1,v1,u2,v2 は整数)、画素(x,y)の動きベクトルの水平,垂直成分をm倍したもの(u(x,y),v(x,y))は以下の式で表すことができる(ただし、x,y,u(x,y),v(x,y)は整数)。
【0022】
【数5】
Figure 0003777998
【0023】
ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。演算誤差を小さくするためには、非整数値は最も近い整数に丸め込まれることが望ましい。このとき整数に1/2を加えた値の丸め込み方法は、
(1) 0に近づける方向に丸め込む、
(2) 0から遠ざける方向に丸め込む、
(3) 被除数が負の場合は0に近づける方向,正の場合は0から遠ざける方向に丸め込む(除数は常に正であるとする)、
(4) 被除数が負の場合は0から遠ざける方向,正の場合は0に近づける方向に丸め込む(除数は常に正であるとする)、
などが考えられる。これらの中で(3)と(4)は、被除数の正負に関わらず丸め込みの方向が変化しないため、正負判定が必要ない分だけ処理量の点で有利である。(3)を用いた高速処理は以下の式によって実現される。
【0024】
【数6】
Figure 0003777998
【0025】
ただし、「#」は小数点以下を0の方向に切り捨てる整数の除算であり、一般に計算機では最も実現しやすい形式の除算である。ここで、LとMは除算の被除数を常に正に保つための数で、十分に大きな正の整数である。また、(pqk#2)の項は、除算結果を最も近い整数に丸め込むために用いられる。
【0026】
処理を整数化することはそれ自体処理量の低減に貢献するが、ここで p,q,k をそれぞれ2の α,β,h0 乗(α,βは正の整数、h0は負ではない整数)とすると、(数5) の除算は α+β+h0 ビットのシフト演算で実現できるため、計算機や専用ハードウェアにおける処理量を大きく減らすことができる。さらにmを2のh1乗とすれば(h1は負ではない整数、h1<α+β+h0)、(数6) は、
【0027】
【数7】
Figure 0003777998
【0028】
と書き換えることができ(「x&#60&#60α」はxをαビット左にシフトして下位αビットに0を入れる、「x&#62&#62α」はxをαビット右にシフトして上位αビットに0または1を入れる(xが2の補数表現の場合、xの最上位ビットが1のときは1,0のときは0を入れる)ことを意味し、これらの演算子の優先順位は加減算と乗除算の中間であるとする)、さらに演算を簡略化することができる。
【0029】
線形内・外挿を用いた場合、さらに(i+p,j+q)に位置する代表点の動きベクトルの水平,垂直成分をk倍したものを(u3,v3)として、(数5) は(i,j),(i+p,j),(i+p,j+q)を代表点とすれば、
【0030】
【数8】
Figure 0003777998
【0031】
(i,j),(i,j+q),(i+p,j+q)を代表点とすれば、
【0032】
【数9】
Figure 0003777998
【0033】
(i+p,j),(i,j+q),(i+p,j+q)を代表点とすれば、
【0034】
【数10】
Figure 0003777998
【0035】
と書き換えられ、p,q,k,m の値を2の正の整数乗とすることによって同様に処理量を減らすことができる。
【0036】
共1次内・外挿を用いた場合には、代表点(i,j),(i+p,j),(i,j+q),(i+p,j+q)それぞれの動きベクトルの水平,垂直成分をk倍したものである(u0,v0),(u1,v1),(u2,v2),(u3,v3)を用いて(u(x,y),v(x,y))は以下の式で表すことができる。
【0037】
【数11】
Figure 0003777998
【0038】
この式も p,q,k,m の値をそれぞれ2の α,β,h0,h1 乗とすることによって、
【0039】
【数12】
Figure 0003777998
【0040】
と書き換えることができ、上と同様に処理量を減らすことができる。
【0041】
送信側と受信側で同じグローバル動き補償予測画像を得るためには、代表点の動きベクトルに関する情報を何らかの形で受信側に伝える必要がある。代表点の動きベクトルそのまま伝送する方法もあるが、画像の隅の点の動きベクトルを伝送し、この値から代表点の動きベクトルを計算する方法もある。この方法に関し、以下に説明する。
【0042】
まずは線形内・外挿が使用される場合について説明する。画像の隅の3個の点(0,0),(r,0),(0,s)の動きベクトルが1/n整数倍の値のみとれるとして、これらの水平,垂直成分をn倍した(u00,v00),(u01,v01),(u02,v02)が伝送されるとする。このとき、点(i,j),(i+p,j),(i,j+q),(i+p,j+q)それぞれの動きベクトルの水平,垂直成分をk倍したものである(u0,v0),(u1,v1),(u2,v2),(u3,v3)を、
【0043】
【数13】
Figure 0003777998
【0044】
と定義する。ただし、u'(x,y),v'(x,y)は、(数5) を変形して、
【0045】
【数14】
Figure 0003777998
【0046】
と定義する。このとき、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。(u0,v0),(u1,v1),(u2,v2),(u3,v3)の中から3点を選び、それらを代表点とするグローバル動き補償を行えば、(0,0),(r,0),(0,s)を代表点とするグローバル動き補償を近似することができる。もちろんこのときにpとqを2の正の整数乗とすれば、上で述べたように処理を簡略化することが可能となる。なお、演算誤差を小さくするためには、「///」は非整数値を最も近い整数に丸め込むことが望ましい。このとき整数に1/2を加えた値の丸め込み方法としては、上で述べた(1)〜(4)の方法が考えられる。ただし、(数5)(画素ごとに計算)の場合と比較して、(数14) (1枚の画像で3回のみ計算)は演算が実行される回数が少ないため、(1)または(2)の方法を選んだとしても全体の演算量に大きな影響は与えない。
【0047】
画像の隅の点として (数13) の例とは異なる3点が選ばれた場合も数8〜10を変形することによって同様の処理を実現することができる。上記の例に加え、さらに画像の隅の点(r,s)の動きベクトルの水平,垂直成分をn倍したものを(u03,v03)とすれば、(数14) は、(u00,v00),(u01,v01),(u03,v03)が伝送される場合には、
【0048】
【数15】
Figure 0003777998
【0049】
と、(u00,v00),(u02,v02),(u03,v03)が伝送される場合には、
【0050】
【数16】
Figure 0003777998
【0051】
と、(u01,v01),(u02,v02),(u03,v03)が伝送される場合には、
【0052】
【数17】
Figure 0003777998
【0053】
と書き換えられる。
【0054】
共1次内・外挿が行われる場合も同様である。上と同様に画像の隅の4個の代表点(0,0),(r,0),(0,s),(r,s)の動きベクトルが1/n整数倍の値のみとれるとして、これらの水平,垂直成分をn倍した(u00,v00),(u01,v01),(u02,v02),(u03,v03)が伝送されるとする。このときの代表点(i,j),(i+p,j),(i,j+q),(i+p,j+q)それぞれの動きベクトルの水平,垂直成分をk倍したものである(u0,v0),(u1,v1),(u2,v2),(u3,v3)は上と同様、(数13) で与えられる。ただし、u'(x,y),v'(x,y)は、(数11) を変形して、
【0055】
【数18】
Figure 0003777998
【0056】
と定義される。
【0057】
画像の隅の点の動きベクトルを伝送し、これに対して内・外挿を行うことによって代表点の動きベクトルを求める方式の長所は、画素ごとの動きベクトルの範囲を限定しやすい点である。例えば、(数4) で与えられる共1次内・外挿では、(x,y)が画像内の点であるとき、ug(x,y)の値は ua,ub,uc,ud の最大値を超えることも、最小値を下まわることもない。したがって、グローバル動き推定のときに ua,ub,uc,ud の値がある制限範囲内(例えば±32画素以内の範囲)に収まるような制約条件を加えれば、全ての画素に関して ug(x,y)の値を同じ制限範囲内入れておくことができる(もちろんこれは vg(x,y)に関しても成立する)。こうすると演算に必要な桁数を明確にすることができ、ソフトウェアまたはハードウェアを設計する上で便利である。ただし、以上の議論は計算がすべて浮動小数点演算で行われた場合の議論なので、実際の処理では注意が必要である。画像の隅の点の動きベクトルから代表点の動きベクトルを求める演算 (数18) には整数への丸め込みが存在するため、計算誤差の影響で (数12) で求まる動きベクトルが上で述べた制限範囲内から出る可能性を考慮する必要がある。特に代表点が画像の内側に位置するような場合には注意が必要である。これは、代表点が囲む長方形の外側に位置する画素に関しては外挿によって動きベクトルが求められるため、丸め込み誤差が増幅される可能性があるためである。外挿によって動きベクトルが求まる例を図7に示す。画像701に対し、代表点702,703,704,705を用いてグローバル動き補償を行うと、画像内の斜線で示された部分は外挿により動きベクトルが計算されることになる。これは、斜線部が代表点が囲む長方形706の外にあるためである。
【0058】
この問題への対策としては、4個の代表点を、代表点が囲む長方形が画像全体を含むように配置する方法が有効である。この例を図8に示す。代表点802,803,804,805が囲む長方形806は、画像801を含んでいる。こうすれば、全ての画素の動きベクトルは代表点からの内挿により求められるため、代表点における丸め込み誤差の影響は画像内では増幅されない。したがって、代表点の丸め込み誤差より大きな誤差が画像内で発生することはなく、誤差の上限が明確になる。ただし、代表点が囲む長方形を大きくし過ぎると、代表点の動きベクトルがとり得る値の範囲が広くなるため、演算に必要な桁数が増加し、実装する上では不利となる。
【0059】
以上の議論から、丸め込み誤差の影響を小さくするため、pの値はr以上であり、qの値はs以上であるが望ましい。p,q はそれぞれ r,s より小さい場合にも、なるべく大きな値をとることが望ましい。また、i,j の値は、画像内のできるだけ広い部分が代表点により囲まれる領域に入るような値とすることが望ましい。
【0060】
上で述べたように、グローバル動き補償に共1次内・外挿を用いた場合には、4個の代表点が囲む長方形に含まれる画素の動きベクトルの各成分は、代表点の動きベクトルの各成分の最大値と最小値の間の値しかとれないという性質がある。これに対し、線形内・外挿が使用された場合には、3個の代表点が囲む3角形内の画素の動きベクトルが同様の性質を持つ。したがって、線形内・外挿を用いるグローバル動き補償を行う場合には、画像の四隅の点の動きベクトルを伝送し、画像の対角線によって分割される2個の直角3角形に対してそれぞれ独立にグローバル動き補償を行う方法が有効である。こうすることにより、4隅の点に対する動きベクトルの範囲に関する制約が、そのまま画像内のすべての画素の動きベクトルに適用できる。このとき、i,j,p,q の値は、2個の直角3角形の間で異なっていても良い。また、演算誤差の観点から言えば、外挿によって画素の動きベクトルを計算するケースを避けるため、代表点の囲む3角形が、グローバル動き補償の対象となる直角3角形を含むことが望ましい。この例を図9に示す。画像901の4隅である点909,903,908,910の動きベクトルが伝送され、点909,903,910によって構成される直角3角形と、点909,910,908によって構成される直角3角形それぞれに対し、独立にグローバル動き補償が行われる。したがって、頂点の動きベクトルの範囲に関して制約を設ければ、画像内の全ての画素の動きベクトルもこの制約範囲内に入ることになる。点909,903,910によって構成される直角3角形は代表点として点902,903,904を使用し、点909,910,908によって構成される直角3角形は代表点として点906,907,908を使用する。代表点によって構成される3角形は、それぞれグローバル動き補償の対象となる直角3角形を中に含んでいる。このため、代表点の動きベクトルの丸め込み誤差の影響は、画像内の点において増幅されることはない。なお、この例では代表点が構成する2個の三角形は相似となっているが、必ずしもそうである必要はない。
【0061】
【発明の効果】
本発明により、グローバル動き補償の予測画像合成処理における除算の処理をシフト演算で代用することが可能となり、ソフトウェアや専用ハードウェアによる処理を簡略化することが可能となる。
【図面の簡単な説明】
【図1】H.261の画像符号化器の構成例を示した図である。
【図2】H.261の画像復号化器の構成例を示した図である。
【図3】代表点の動きベクトルを伝送するグローバル動き補償の例を示した図である。
【図4】グローバル動き補償の予測画像に対してブロックマッチングを行う画像符号化器の動き補償処理部を示した図である。
【図5】ブロックごとにグローバル動き補償とブロックマッチングを選択する画像符号化器の動き補償処理部を示した図である。
【図6】高速な処理を行うための代表点の配置の例を示した図である。
【図7】画像内において、外挿によって動きベクトルを求める領域を示した図である。
【図8】画像内のすべての画素の動きベクトルが、代表点の動きベクトルからの内挿によって求められる場合を示した図である。
【図9】画像を2個の直角3角形に分割し、それぞれに対して代表点の動きベクトルからの内挿によるグローバル動き補償を適用した例を示した図である。
【符号の説明】
100…画像符号化器、101…入力画像、102…減算器、103…誤差画像、104…DCT変換器、105…DCT係数量子化器、106,201…量子化DCT係数、108,204…DCT係数逆量子化器、109,205…逆DCT変換器、110,206…復号誤差画像、111,207…加算器、112…現フレームの復号画像、113,215…フレーム間/フレーム内符号化切り換えスイッチの出力画像、114,209…フレームメモリ、115,210…前フレームの復号画像、116,405,505…ブロックマッチング部、117,212…現フレームの予測画像、118,213…「0」信号、119,214…フレーム間/フレーム内符号化切り換えスイッチ、120,202,406,507…動きベクトル情報、121,203…フレーム間/フレーム内識別フラグ、122,407,510…多重化器、123…伝送ビットストリーム、200…画像復号化器、208…出力画像、211…予測画像合成部、216…分離器、301…参照画像、302…現フレームの原画像、303,304,305,602,603,604,702,703,704,705,802,803,804,805,902,904,906,907…代表点、306,307,308…代表点の動きベクトル、401,501…グローバル動き補償を行う動き補償処理部、402,502…グローバル動き補償部、403,504…動きパラメータ、404,503…グローバル動き補償の予測画像、506…ブロックマッチングによる予測画像、508…ブロックマッチング/グローバル動き補償切り換えスイッチ、509…ブロックマッチング/グローバル動き補償の選択情報、601,701,801,901…グローバル動き補償の対象となる画像、706…代表点が囲む長方形、903,908…画像の隅の点と代表点を兼用する点、909,910…画像の隅の点。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image encoding and decoding method that applies global motion compensation based on linear interpolation / extrapolation or bilinear interpolation / extrapolation to an entire image.
[0002]
[Prior art]
In high-efficiency coding of moving images, it is known that motion compensation that uses the similarity between temporally adjacent frames has a great effect on information compression. The motion compensation method which is the mainstream of the current image coding technology is block matching adopted in H.261, MPEG1 and MPEG2 which are international standards for moving image coding. In this method, an image to be encoded is divided into a large number of blocks, and a motion vector is obtained for each block.
[0003]
FIG. 1 shows a configuration example 100 of an H.261 encoder. H.261 employs a hybrid encoding scheme (interframe / intraframe adaptive encoding scheme) that combines block matching and DCT (discrete cosine transform) as an encoding scheme. The subtractor 102 calculates a difference between the input image (original image of the current frame) 101 and an output image 113 (described later) of the interframe / intraframe encoding changeover switch 119 and outputs an error image 103. This error image is converted into DCT coefficients by the DCT converter 104 and then quantized by the quantizer 105 to become quantized DCT coefficients 106. This quantized DCT count is output as transmission information to the communication path, and at the same time, used in the encoder to synthesize an inter-frame prediction image. The procedure for predictive image composition will be described below. The quantized DCT coefficient 106 described above becomes a decoded error image 110 (the same image as the error image reproduced on the receiving side) through the inverse quantizer 108 and the inverse DCT transformer 109. An adder 111 adds an output image 113 (described later) of the interframe / intraframe coding changeover switch 119 to the decoded image 112 of the current frame (the same image as the decoded image of the current frame reproduced on the receiving side). Get. This image is temporarily stored in the frame memory 114 and delayed by a time corresponding to one frame. Therefore, at present, the frame memory 114 outputs the decoded image 115 of the previous frame. The decoded image of the previous frame and the input image 101 of the current frame are input to the block matching unit 116, and block matching processing is performed. In block matching, an image is divided into a plurality of blocks, and the portion most similar to the original image of the current frame is extracted for each block from the decoded image of the previous frame, thereby synthesizing the predicted image 117 of the current frame. At this time, it is necessary to perform a process (motion estimation process) for detecting how much each block has moved between the previous frame and the current frame. The motion vector for each block detected by the motion estimation process is transmitted as motion information 120 to the receiving side. The receiving side can synthesize the same predicted image as obtained on the transmitting side independently from the motion information and the decoded image of the previous frame. The predicted image 117 is input to the interframe / intraframe coding changeover switch 119 together with the “0” signal 118. This switch switches between interframe coding and intraframe coding by selecting either of the two inputs. When the predicted image 117 is selected (FIG. 2 shows this case), interframe coding is performed. On the other hand, when the “0” signal is selected, the input image is directly DCT-encoded and output to the communication path, so that intraframe encoding is performed. In order for the receiving side to obtain a decoded image correctly, it is necessary to know whether inter-frame encoding or intra-frame encoding has been performed on the transmitting side. For this reason, the identification flag 121 is output to the communication path. The final H.261 encoded bit stream 123 is obtained by multiplexing information on quantized DCT coefficients, motion vectors, and intra-frame / inter-frame identification flags in a multiplexer 122.
[0004]
FIG. 2 shows a configuration example of a decoder 200 that receives the encoded bit stream output from the encoder of FIG. The received H.261 bit stream 217 is separated into a quantized DCT coefficient 201, a motion vector 202, and an intra-frame / inter-frame identification flag 203 by a separator 216. The quantized DCT coefficient 201 becomes an error image 206 decoded through the inverse quantizer 204 and the inverse DCT transformer 205. The error image is added to the output image 215 of the interframe / intraframe encoding changeover switch 214 by the adder 207 and output as a decoded image 208. The interframe / intraframe coding changeover switch switches the output according to the interframe / intraframe coding identification flag 203. The predicted image 212 used when performing interframe coding is synthesized in the predicted image synthesis unit 211. Here, a process of moving the position for each block according to the received motion vector 202 is performed on the decoded image 210 of the previous frame stored in the frame memory 209. On the other hand, in the case of intraframe coding, the interframe / intraframe coding changeover switch outputs the “0” signal 213 as it is.
[0005]
Block matching is currently the most widely used motion compensation method, but when the entire image is enlarged, reduced, or rotated, motion vectors must be transmitted to all blocks, and coding is performed. The problem of inefficiency occurs. To solve this problem, global motion compensation that represents the motion vector field of the entire image using a small number of parameters (for example, M. Hotter, &# 34 Differential estimation of the global motion parameters zoom and pan &# 34, Signal Processing, vol. 16 , no. 3, pp. 249-265, Mar. 1989). This is the motion vector (ug (x, y), vg (x, y)) of the pixel (x, y) in the image,
[0006]
[Expression 1]
Figure 0003777998
[0007]
Or
[0008]
[Expression 2]
Figure 0003777998
[0009]
This is a method of performing motion compensation using this motion vector. Here, a0 to a5 and b0 to b7 are motion parameters. When motion compensation is performed, the same predicted image must be obtained on the transmission side and the reception side. For this purpose, the transmitting side may directly transmit the values of a0 to a5 or b0 to b7 to the receiving side, but there is also a method of transmitting motion vectors of some representative points instead. Now, assume that the coordinates of the pixels at the upper left corner, upper right corner, lower left corner, and lower right corner of the image are represented by (0,0), (r, 0), (0, s), and (r, s), respectively. (Where r and s are positive integers). At this time, the horizontal and vertical components of the motion vectors of the representative points (0,0), (r, 0), (0, s) are (ua, va), (ub, vb), (uc, vc), respectively. Then, (Equation 1) is
[Equation 3]
Figure 0003777998
[0011]
Can be rewritten. This means that the same function can be realized by transmitting ua, va, ub, vb, uc, vc instead of transmitting a0 to a5. This is shown in FIG. Assuming that global motion compensation has been performed between the original image 302 of the current frame and the reference image 301, the motion vectors 306, 307, and 308 of the representative points 303, 304, and 305 instead of the motion parameters (the motion vectors are The point of the original image of the frame is defined as the starting point and the corresponding point in the reference image is defined as the ending point). Similarly, the horizontal and vertical components (ua, va), (ub) of the motion vectors of the four representative points (0,0), (r, 0), (0, s), (r, s) , vb), (uc, vc), (ud, vd), (Equation 2) becomes
[0012]
[Expression 4]
Figure 0003777998
[0013]
Can be rewritten. Therefore, the same function can be realized by transmitting ua, va, ub, vb, uc, vc, ud, vd instead of transmitting b0 to b7. In this specification, the method using (Equation 1) is called global motion compensation based on linear interpolation / extrapolation, and the method using (Equation 2) is called global motion compensation based on bilinear interpolation / extrapolation.
[0014]
FIG. 4 shows a configuration example of a motion compensation processing unit 401 of an image encoder that employs a global motion compensation method based on linear interpolation / extrapolation that transmits a motion vector of a representative point. The same numbers as those in FIG. 1 indicate the same items. By replacing the block matching unit 116 of FIG. 1 with the motion compensation processing unit 401, an image encoding device that performs global motion compensation can be configured. The global motion compensation unit 402 performs motion estimation regarding global motion compensation between the decoded image 115 of the previous frame and the original image 101 of the current frame, and estimates the values of ua, va, ub, vb, uc, vc. The Information 403 regarding these values is transmitted as part of the motion information 120. The global motion compensation predicted image 404 is synthesized using Equation 3 and supplied to the block matching unit 405. Here, motion compensation by block matching is performed between the predicted image of global motion compensation and the original image of the current frame, and block motion vector information 406 and a final predicted image 117 are obtained. This motion vector information is multiplexed in the motion parameter information and multiplexing section 407 and output as motion information 120.
[0015]
A configuration example of a motion compensation processing unit 501 different from that in FIG. 4 is shown in FIG. The same numbers as those in FIG. 1 indicate the same items. By replacing the block matching unit 116 in FIG. 1 with the motion compensation processing unit 501, an image encoding device that performs global motion compensation can be configured. In this example, block matching is not applied to the prediction image of global motion compensation, but either global motion compensation or block matching is applied to each block. The global motion compensation unit 502 and the block matching unit 505 perform global motion compensation and block matching in parallel between the decoded image 115 of the previous frame and the original image 101 of the current frame, respectively. The selection switch 508 selects an optimum method for each block between the predicted image 503 by global motion compensation and the predicted image 506 by block matching. The representative point motion vector 504, the motion vector 507 for each block, and the global motion compensation / block matching selection information 509 are multiplexed by the multiplexing unit 510 and output as motion information 120.
[0016]
By introducing the global motion compensation described above, it is possible to represent the global motion of an image using a small number of parameters, and a higher information compression rate can be realized. However, on the other hand, the amount of processing in encoding and decoding increases compared to the conventional method. In particular, the division found in (Equation 3) and (Equation 4) is a major factor that complicates the processing.
[0017]
[Problems to be solved by the invention]
In global motion compensation in which the motion vector field of the entire image is approximated with a small number of parameters, there is a problem that the amount of processing for synthesizing the predicted image increases. An object of the present invention is to reduce the amount of calculation by replacing the division processing in global motion compensation with a binary shift operation.
[0018]
[Means for Solving the Problems]
By appropriately selecting the coordinates of representative points when performing global motion compensation, division processing can be realized by shift operation.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
In the following discussion, the pixel sampling interval is set to 1 in both the horizontal and vertical directions, and the coordinates of the upper left, upper right, lower left, and lower right pixels of the image are (0, 0), (r, 0), ( 0, s) and (r, s) (where r and s are positive integers).
[0020]
When performing motion compensation using linear interpolation / extrapolation (affine transformation) or bilinear interpolation / extrapolation (bilinear transformation), if quantization is performed on the motion vector for each pixel, mismatching occurs. Effects such as prevention and calculation simplification can be obtained (Japanese Patent Application No. 06-193970). In the following, it is assumed that the horizontal and vertical components of the pixel motion vector are integer multiples of 1 / m (m is a positive integer). Further, it is assumed that global motion compensation using the motion vector of the representative point described in “Prior Art” is performed, and the motion vector of each representative point is an integral multiple of 1 / k (k is a positive integer). . In the present specification, “pixel motion vector” refers to a motion vector used for actually synthesizing a predicted image when performing global motion compensation. On the other hand, “representative point motion vector” means a parameter used to calculate a pixel motion vector. Therefore, the pixel motion vector and the representative point motion vector may not match even if they exist on the same coordinate due to a difference in quantization step size.
[0021]
First, the case of using linear interpolation / extrapolation will be described with reference to FIG. At this time, as described in “Prior Art”, the representative point is not a point positioned at the corner of the image 601 but (i, j), (i + p, j), (i, j + q). The points 602, 603, and 604 located at (i, j, p, q are integers). At this time, the points 602, 603, and 604 may exist inside or outside the image. (U0, v0), (u1, v1), (u2, v2) are obtained by multiplying the horizontal and vertical components of the motion vector of the representative point by k, and (u0, v0, u1, v1, u2, v2 are integers) ), And the horizontal and vertical components (u (x, y), v (x, y)) of the motion vector of the pixel (x, y) can be expressed by the following equations (where x, y, u (x, y), and v (x, y) are integers).
[0022]
[Equation 5]
Figure 0003777998
[0023]
However, “//” is a division that rounds a result obtained by normal division to a neighboring integer when the calculation result is not an integer, and the priority as an operator is equivalent to multiplication / division. In order to reduce the calculation error, it is desirable that the non-integer value is rounded to the nearest integer. At this time, the rounding method of the value obtained by adding 1/2 to the integer is:
(1) Round it up toward 0,
(2) Round away from 0,
(3) If the dividend is negative, round toward 0; if it is positive, round away from 0 (assuming that the divisor is always positive)
(4) If the dividend is negative, round away from 0; if the dividend is positive, round toward 0 (divisor is always positive)
And so on. Among these, (3) and (4) are advantageous in terms of throughput because the rounding direction does not change regardless of whether the dividend is positive or negative. High-speed processing using (3) is realized by the following equation.
[0024]
[Formula 6]
Figure 0003777998
[0025]
However, “#” is an integer division in which the fractional part is rounded down in the direction of 0, and is generally the most easily realized division in a computer. Here, L and M are numbers for keeping the dividend dividend always positive, and are sufficiently large positive integers. The term (pqk # 2) is used to round the division result to the nearest integer.
[0026]
Converting processing into integers itself contributes to reducing the amount of processing. Here, p, q, and k are respectively raised to the powers of α, β, and h0 (where α and β are positive integers and h0 is a non-negative integer). ), The division of (Equation 5) can be realized by a shift operation of α + β + h0 bits, so that the processing amount in a computer or dedicated hardware can be greatly reduced. Further, if m is 2 to the power of h1 (h1 is a non-negative integer, h1 <α + β + h0),
[0027]
[Expression 7]
Figure 0003777998
[0028]
("X &# 60 &#60α" shifts x to the left by α bits and puts 0 in the lower α bits. "X &# 62 &#62α" shifts x to the right by α bits and shifts the upper α Means 0 or 1 in the bit (when x is 2's complement expression, if the most significant bit of x is 1, put 0 if 0), the priority of these operators is Further, the calculation can be simplified.
[0029]
When linear interpolation / extrapolation is used, (u3, v3) is obtained by multiplying the horizontal and vertical components of the motion vector of the representative point located at (i + p, j + q) by k. If (i, j), (i + p, j), (i + p, j + q) are representative points,
[0030]
[Equation 8]
Figure 0003777998
[0031]
If (i, j), (i, j + q), (i + p, j + q) are representative points,
[0032]
[Equation 9]
Figure 0003777998
[0033]
If (i + p, j), (i, j + q), (i + p, j + q) are representative points,
[0034]
[Expression 10]
Figure 0003777998
[0035]
And the amount of processing can be similarly reduced by making the values of p, q, k, and m 2 positive positive integers.
[0036]
When bilinear interpolation / extrapolation is used, the movement of representative points (i, j), (i + p, j), (i, j + q), (i + p, j + q) (U (x, y), v (x) using (u0, v0), (u1, v1), (u2, v2), (u3, v3), which is the horizontal and vertical component of the vector multiplied by k. , y)) can be expressed by the following equation.
[0037]
## EQU11 ##
Figure 0003777998
[0038]
This formula also sets the values of p, q, k, m to 2 to the power of α, β, h0, h1, respectively.
[0039]
[Expression 12]
Figure 0003777998
[0040]
And the processing amount can be reduced in the same manner as above.
[0041]
In order to obtain the same global motion compensated prediction image on the transmission side and the reception side, it is necessary to transmit information on the motion vector of the representative point to the reception side in some form. There is a method of transmitting the motion vector of the representative point as it is, but there is also a method of transmitting the motion vector of the point at the corner of the image and calculating the motion vector of the representative point from this value. This method will be described below.
[0042]
First, the case where linear interpolation / extrapolation is used will be described. Assuming that the motion vectors of the three points (0,0), (r, 0), and (0, s) at the corners of the image can only take values of 1 / n integer multiples, these horizontal and vertical components are multiplied by n. Assume that (u00, v00), (u01, v01), (u02, v02) are transmitted. At this time, the horizontal and vertical components of the respective motion vectors at points (i, j), (i + p, j), (i, j + q), (i + p, j + q) are multiplied by k. (U0, v0), (u1, v1), (u2, v2), (u3, v3)
[0043]
[Formula 13]
Figure 0003777998
[0044]
It is defined as However, u ′ (x, y) and v ′ (x, y) are transformed from (Equation 5),
[0045]
[Expression 14]
Figure 0003777998
[0046]
It is defined as At this time, “///” is a division in which the result of the normal division is rounded to a neighboring integer when the result is not an integer, and the priority as an operator is equivalent to multiplication and division. If three points are selected from (u0, v0), (u1, v1), (u2, v2), (u3, v3) and global motion compensation is performed using them as representative points, (0, 0), Global motion compensation with (r, 0) and (0, s) as representative points can be approximated. Of course, if p and q are raised to a positive integer power of 2, the processing can be simplified as described above. In order to reduce the calculation error, “///” desirably rounds a non-integer value to the nearest integer. At this time, as the rounding method of the value obtained by adding 1/2 to the integer, the methods (1) to (4) described above can be considered. However, compared to the case of (Equation 5) (calculated for each pixel), (Equation 14) (calculated only 3 times for one image) has a smaller number of operations, so (1) or ( Even if the method of 2) is selected, the overall amount of computation is not greatly affected.
[0047]
Even when three points different from the example of (Expression 13) are selected as the corner points of the image, the same processing can be realized by modifying Expressions 8 to 10. In addition to the above example, if (u03, v03) is obtained by multiplying the horizontal and vertical components of the motion vector at the corner point (r, s) of the image by n, (Equation 14) becomes (u00, v00). ), (U01, v01), (u03, v03) are transmitted,
[0048]
[Expression 15]
Figure 0003777998
[0049]
And (u00, v00), (u02, v02), (u03, v03) are transmitted,
[0050]
[Expression 16]
Figure 0003777998
[0051]
And (u01, v01), (u02, v02), (u03, v03) are transmitted,
[0052]
[Expression 17]
Figure 0003777998
[0053]
It can be rewritten as
[0054]
The same applies when bilinear interpolation / extrapolation is performed. Similarly to the above, it is assumed that the motion vectors of the four representative points (0,0), (r, 0), (0, s), (r, s) at the corners of the image can only take values of 1 / n integer multiples. It is assumed that (u00, v00), (u01, v01), (u02, v02), (u03, v03) obtained by multiplying these horizontal and vertical components by n are transmitted. The horizontal and vertical components of the representative motion vectors (i, j), (i + p, j), (i, j + q), (i + p, j + q) at this time multiplied by k (U0, v0), (u1, v1), (u2, v2), and (u3, v3) are given by (Equation 13) in the same manner as above. However, u ′ (x, y) and v ′ (x, y) are transformed from (Equation 11),
[0055]
[Formula 18]
Figure 0003777998
[0056]
Is defined.
[0057]
The advantage of the method of obtaining the motion vector of the representative point by transmitting the motion vector of the corner point of the image and performing interpolation / extrapolation on this is that it is easy to limit the range of the motion vector for each pixel. . For example, in bilinear interpolation / extrapolation given by (Equation 4), when (x, y) is a point in the image, the value of ug (x, y) is the maximum of ua, ub, uc, ud. It does not exceed the value or fall below the minimum value. Therefore, if a constraint condition is set such that the values of ua, ub, uc, ud fall within a certain limited range (for example, a range within ± 32 pixels) during global motion estimation, ug (x, y ) Can be kept within the same limit range (of course, this also holds for vg (x, y)). In this way, the number of digits required for the calculation can be clarified, which is convenient for designing software or hardware. However, since the above discussion is a discussion when all calculations are performed by floating point arithmetic, care must be taken in actual processing. Since the calculation of the motion vector of the representative point from the motion vector of the corner point of the image (Equation 18) involves rounding to an integer, the motion vector obtained by (Equation 12) due to the influence of the calculation error is described above. It is necessary to consider the possibility of going out of the limit range. Care must be taken particularly when the representative point is located inside the image. This is because a rounding error may be amplified because a motion vector is obtained by extrapolation for pixels located outside the rectangle surrounded by the representative points. An example in which a motion vector is obtained by extrapolation is shown in FIG. When global motion compensation is performed on the image 701 using the representative points 702, 703, 704, and 705, a motion vector is calculated by extrapolation for the portion indicated by the oblique lines in the image. This is because the shaded portion is outside the rectangle 706 surrounded by the representative point.
[0058]
As a countermeasure to this problem, a method of arranging four representative points so that a rectangle surrounded by the representative points includes the entire image is effective. An example of this is shown in FIG. A rectangle 806 surrounded by representative points 802, 803, 804, 805 includes an image 801. In this way, since the motion vectors of all the pixels are obtained by interpolation from the representative point, the influence of the rounding error at the representative point is not amplified in the image. Therefore, an error larger than the rounding error of the representative point does not occur in the image, and the upper limit of the error becomes clear. However, if the rectangle surrounded by the representative points is made too large, the range of values that can be taken by the motion vectors of the representative points is widened, which increases the number of digits required for the calculation, which is disadvantageous in mounting.
[0059]
From the above discussion, in order to reduce the influence of rounding error, the value of p is preferably r or more, and the value of q is preferably s or more. It is desirable that p and q be as large as possible even when they are smaller than r and s, respectively. Further, it is desirable that the values of i and j are such that the widest possible portion in the image falls within the region surrounded by the representative points.
[0060]
As described above, when both linear interpolation and extrapolation are used for global motion compensation, each component of the motion vector of the pixel included in the rectangle surrounded by the four representative points is the motion vector of the representative point. There is a property that only a value between the maximum value and the minimum value of each component can be taken. On the other hand, when linear interpolation / extrapolation is used, the motion vectors of the pixels in the triangle surrounded by the three representative points have the same properties. Therefore, when performing global motion compensation using linear interpolation / extrapolation, the motion vectors of the four corner points of the image are transmitted, and the global vectors are independently obtained for the two right triangles divided by the diagonal lines of the image. A method of performing motion compensation is effective. In this way, the restriction on the motion vector range for the four corner points can be applied to the motion vectors of all the pixels in the image as they are. At this time, the values of i, j, p, and q may be different between the two right triangles. Further, from the viewpoint of calculation error, it is desirable that the triangle surrounded by the representative point includes a right triangle that is a target of global motion compensation in order to avoid a case of calculating a pixel motion vector by extrapolation. An example of this is shown in FIG. Motion vectors of points 909, 903, 908, and 910 which are the four corners of the image 901 are transmitted, and a right triangle formed by the points 909, 903 and 910 and a right triangle formed by the points 909, 910 and 908 are transmitted. Global motion compensation is performed independently for each. Therefore, if a constraint is provided regarding the range of motion vectors of vertices, the motion vectors of all pixels in the image will also fall within this constraint range. A right triangle formed by points 909, 903, and 910 uses points 902, 903, and 904 as representative points, and a right triangle formed by points 909, 910, and 908 has points 906, 907, and 908 as representative points. Is used. The triangle formed by the representative points includes a right triangle that is a target of global motion compensation. For this reason, the influence of the rounding error of the motion vector of the representative point is not amplified at the point in the image. In this example, the two triangles formed by the representative points are similar, but this is not necessarily the case.
[0061]
【The invention's effect】
According to the present invention, it is possible to substitute the division process in the prediction image synthesis process of the global motion compensation by a shift operation, and it is possible to simplify the process by software or dedicated hardware.
[Brief description of the drawings]
1 is a diagram illustrating a configuration example of an H.261 image encoder.
2 is a diagram illustrating a configuration example of an H.261 image decoder.
FIG. 3 is a diagram illustrating an example of global motion compensation for transmitting a motion vector of a representative point.
FIG. 4 is a diagram illustrating a motion compensation processing unit of an image encoder that performs block matching on a predicted image of global motion compensation.
FIG. 5 is a diagram illustrating a motion compensation processing unit of an image encoder that selects global motion compensation and block matching for each block.
FIG. 6 is a diagram illustrating an example of arrangement of representative points for performing high-speed processing.
FIG. 7 is a diagram showing a region for obtaining a motion vector by extrapolation in an image.
FIG. 8 is a diagram illustrating a case where motion vectors of all pixels in an image are obtained by interpolation from motion vectors of representative points.
FIG. 9 is a diagram illustrating an example in which an image is divided into two right triangles, and global motion compensation is applied to each by interpolation from motion vectors of representative points.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Image encoder, 101 ... Input image, 102 ... Subtractor, 103 ... Error image, 104 ... DCT converter, 105 ... DCT coefficient quantizer, 106, 201 ... Quantized DCT coefficient, 108, 204 ... DCT Coefficient inverse quantizer 109, 205 ... Inverse DCT converter, 110, 206 ... Decoded error image, 111, 207 ... Adder, 112 ... Decoded image of current frame, 113, 215 ... Inter-frame / intra-frame coding switching Switch output image, 114, 209 ... frame memory, 115, 210 ... decoded image of previous frame, 116, 405, 505 ... block matching unit, 117, 212 ... predicted image of current frame, 118, 213 ... "0" signal 119, 214... Interframe / intraframe coding changeover switch, 120, 202, 406, 507. Toll information, 121, 203 ... Inter-frame / intra-frame identification flag, 122, 407, 510 ... Multiplexer, 123 ... Transmission bit stream, 200 ... Image decoder, 208 ... Output image, 211 ... Predictive image synthesizer, 216: Separator, 301: Reference image, 302: Original image of current frame, 303, 304, 305, 602, 603, 604, 702, 703, 704, 705, 802, 803, 804, 805, 902, 904 906, 907: representative points, 306, 307, 308: motion vectors of representative points, 401, 501: motion compensation processing units for performing global motion compensation, 402, 502: global motion compensation units, 403, 504: motion parameters, 404 503: Predicted image of global motion compensation 506: Predicted image by block matching, 5 8: Block matching / global motion compensation changeover switch, 509: Block matching / global motion compensation selection information, 601, 701, 801, 901 ... Global motion compensation target image, 706: Rectangle surrounded by representative points, 903 908... Points that serve as corner points of the image and representative points, 909, 910... Points at the corners of the image.

Claims (2)

既に符号化されたフレームを復号化した復号化画像と現フレームの入力画像との間でグローバル動き補償による動き推定を行い、上記現フレームの予測画像を合成する画像符号化方法において、
上記予測画像の合成において、長方形である上記予測画像を対角線を用いて2個の直角三角形画像に分割し、それぞれの直角三角形画像に関し、3個の代表点における動きベクトルに対し、線形内・外挿を行うことによって直角三角形画像内のすべての画素に対する動きベクトルを計算する際に、
画素のサンプリング間隔が水平、垂直方向共に1であり、かつ、サンプリング点は座標の水平、垂直成分が共に整数である点の上に存在しているとして、
一方の直角三角形画像に対しては座標が(i,j)、(i+p,j)、(i,j+q)で表される3点を代表点として使用し(iとjは整数、pとqは整数)、
もう一方の直角三角形画像に対しては、座標が(i’,j’)、(i’−p,j’)、(i’,j’−q)で表される3点を代表点として使用し(i’とj’は整数)、
かつ、pとqがそれぞれ2のα乗と2のβ乗(α,βは正の整数)であること
を特徴とする画像符号化方法。
In an image encoding method for performing motion estimation by global motion compensation between a decoded image obtained by decoding an already encoded frame and an input image of the current frame, and synthesizing the predicted image of the current frame,
In the synthesis of the prediction image, the prediction image that is a rectangle is divided into two right triangle images using diagonal lines, and for each right triangle image, linear in / out of the motion vectors at three representative points. When calculating the motion vector for all pixels in a right triangle image by performing the interpolation,
The sampling interval of the pixel is 1 in both the horizontal and vertical directions, and the sampling point exists on a point where both the horizontal and vertical components of the coordinate are integers.
For one right triangle image, three points represented by coordinates (i, j), (i + p, j), (i, j + q) are used as representative points (i and j are integers, p and q Is an integer),
For the other right triangle image, three points whose coordinates are represented by (i ′, j ′), (i′−p, j ′), (i ′, j′−q) are represented as representative points. Use (i 'and j' are integers),
And p and q are respectively 2 to the power of α and 2 to the power of β (where α and β are positive integers).
既に符号化されたフレームを復号化した復号化画像と現フレームの入力画像との間でグローバル動き補償による動き推定を行い、上記現フレームの予測画像を合成する画像符号化方法において、
上記予測画像の合成において、長方形である上記予測画像を対角線を用いて2個の直角三角形画像に分割し、それぞれの直角三角形画像に関し、3個の代表点における動きベクトルに対し、線形内・外挿を行うことによって直角三角形画像内のすべての画素に対する動きベクトルを計算する際に、
画素のサンプリング間隔が水平、垂直方向共に1であり、かつ、サンプリング点は座標の水平、垂直成分が共に整数である点の上に存在しているとして、
一方の直角三角形画像に対しては座標が(i,j)、(i−p,j)、(i,j+q)で表される3点を代表点として使用し(iとjは整数、pとqは整数)、
もう一方の直角三角形画像に対しては、座標が(i’,j’)、(i’+p,j’)、(i’,j’−q)で表される3点を代表点として使用し(i’とj’は整数)、
かつ、pとqがそれぞれ2のα乗と2のβ乗(α,βは正の整数)であること
を特徴とする画像符号化方法。
In an image encoding method for performing motion estimation by global motion compensation between a decoded image obtained by decoding an already encoded frame and an input image of the current frame, and synthesizing the predicted image of the current frame,
In the synthesis of the predicted image, the rectangular predicted image is divided into two right triangle images using a diagonal line, and linear motion inside and outside the motion vectors at three representative points for each right triangle image. When calculating the motion vector for all pixels in a right triangle image by performing the interpolation,
The sampling interval of the pixel is 1 in both the horizontal and vertical directions, and the sampling point exists on a point where both the horizontal and vertical components of the coordinate are integers.
For one right triangle image, three points represented by coordinates (i, j), (i-p, j), (i, j + q) are used as representative points (i and j are integers, p And q are integers),
For the other right triangle image, three points whose coordinates are represented by (i ′, j ′), (i ′ + p, j ′), (i ′, j′−q) are used as representative points. (I 'and j' are integers)
And p and q are respectively 2 to the power of α and 2 to the power of β (where α and β are positive integers).
JP2001104091A 2001-04-03 2001-04-03 Global motion compensation method Expired - Fee Related JP3777998B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001104091A JP3777998B2 (en) 2001-04-03 2001-04-03 Global motion compensation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001104091A JP3777998B2 (en) 2001-04-03 2001-04-03 Global motion compensation method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000285235A Division JP3520846B2 (en) 2000-09-14 2000-09-14 Image decoding apparatus and image decoding method

Publications (2)

Publication Number Publication Date
JP2001352549A JP2001352549A (en) 2001-12-21
JP3777998B2 true JP3777998B2 (en) 2006-05-24

Family

ID=18957000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001104091A Expired - Fee Related JP3777998B2 (en) 2001-04-03 2001-04-03 Global motion compensation method

Country Status (1)

Country Link
JP (1) JP3777998B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007060572A2 (en) * 2005-11-24 2007-05-31 Philips Intellectual Property & Standards Gmbh Motion compensated ct reconstruction of high contrast objects
JP4915317B2 (en) * 2007-09-05 2012-04-11 ソニー株式会社 Image processing apparatus, image processing method, and computer program

Also Published As

Publication number Publication date
JP2001352549A (en) 2001-12-21

Similar Documents

Publication Publication Date Title
JP3183155B2 (en) Image decoding apparatus and image decoding method
US20090168889A1 (en) Inter-frame predicted image synthesizing method
JP3764488B2 (en) Image encoding and decoding method and apparatus
JP3777998B2 (en) Global motion compensation method
JP3520800B2 (en) Image decoding apparatus and image decoding method
JP3520845B2 (en) Image encoding apparatus and image encoding method
JP3520846B2 (en) Image decoding apparatus and image decoding method
JP3520858B2 (en) Image encoding apparatus and image encoding method
JP3183277B2 (en) Image encoding device and image encoding method
JPH0865675A (en) Image encoding device and image decoding device
JPH10150665A (en) Method for generating predictive image, and method and device for image encoding
JP3509610B2 (en) Image encoding method and image encoding device
JP3591483B2 (en) Image decoding method and image decoding device
JP3414304B2 (en) Image decoding method and decoding device
JP2008005546A (en) Method for producing predictive image, and method and device for image encoding

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20050607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060220

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090310

Year of fee payment: 3

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100310

Year of fee payment: 4

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110310

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110310

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120310

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130310

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130310

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140310

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees