JP2004173130A - Method, device and program for encoding image, method, device and program for decoding image, and recording medium with the programs recorded thereon - Google Patents
Method, device and program for encoding image, method, device and program for decoding image, and recording medium with the programs recorded thereon Download PDFInfo
- Publication number
- JP2004173130A JP2004173130A JP2002338867A JP2002338867A JP2004173130A JP 2004173130 A JP2004173130 A JP 2004173130A JP 2002338867 A JP2002338867 A JP 2002338867A JP 2002338867 A JP2002338867 A JP 2002338867A JP 2004173130 A JP2004173130 A JP 2004173130A
- Authority
- JP
- Japan
- Prior art keywords
- image
- motion vector
- decoding
- prediction
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は,動画像符号化の技術に関し,特にフレーム間予測符号化方法を用いる画像符号化および画像復号の際のワーピング用動きベクトル算出処理における演算処理負荷を軽減することを可能とした画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラム,画像復号プログラムおよびそれらのプログラムを記録した記録媒体に関するものである。
【0002】
【従来の技術】
画面全体の動きベクトル(グローバル動きベクトルと呼ぶ)を使ってフレーム間予測符号化をするグローバル動き補償符号化方法がある。マクロブロック毎の動きベクトルを使う通常の動き補償符号化方法に対して,この方法では,パンやズームといったカメラパラメータをグローバル動きベクトルで表現できるため,カメラパラメータのある動画像を符号化する際に,マクロブロック毎の動きベクトルをまとめてグローバル動きベクトルとして符号化でき,符号化効率を向上できる。
【0003】
グローバル動きベクトルとしては,例えば画面の四頂点の動きベクトルを符号化する方法や,下記の非特許文献1に記載されるようなカメラパラメータ(x,y,z)を符号化する方法が挙げられる。
【0004】
画面の四頂点の動きベクトルを符号化する方法では,画面全体が一様に横方向にパンする画像の場合,四頂点の動きベクトルを画面が横方向にパンするように符号化すればよい。画面全体で動きベクトルをまとめて符号化するため,マクロブロック毎の動きベクトルは0ベクトルとなり動きベクトルを符号化しない。
【0005】
図9に,グローバル動きベクトルから動きベクトルを算出する例を示す。動きベクトルは,画素毎あるいは複数の画素で構成されるブロック毎にグローバル動きベクトルから求めることができる。ブロック毎に求める場合には,例えばブロック左上の画素の動きベクトルをグローバル動きベクトルから算出し,ブロック内のすべての画素の動きベクトルを,算出した左上の画素と同じものにする。画面四隅のグローバル動きベクトル((x1,y1),(x2,y2),(x3,y3),(x4,y4))から各画素の動きベクトル(X,Y)は,以下の式(1)に従って求めることができる。MおよびNは,画面横および縦方向の画素数を示す。(p,q)は画素の画面左上からの横方向,縦方向の位置を示す。
【0006】
【数1】
【0007】
このように各画素の動きベクトルを,その画素を含む領域のグローバルな動きベクトルから算出する手法をワーピングと呼ぶ。
【0008】
MPEG−4part2に採用されているグローバル動き補償符号化方法では,図10に示されるように,横と縦がMとNを超える2のべき乗で計算される枠を想定し,その枠に対応したグローバル動きベクトルから各画素の動きベクトルを求める。
【0009】
まず,四隅のグローバル動きベクトル((x1,y1),(x2,y2),(x3,y3),(x4,y4))から,下記の式(2)によって計算されるグローバル動きベクトル((vx1,vy1),(vx2,vy2),(vx3,vy3),(vx4,vy4))を使って,各画素の動きベクトル(X,Y)を式(3)によって計算する。
【0010】
【数2】
【0011】
【数3】
【0012】
式(3)において,「A>>B」は,Aの値をBビット右へシフトする演算を表している。この方法では,上記の式(1)で使用する割り算をビットシフト演算で実行することができ,グローバル動きベクトルから画素の動きベクトルを計算する処理を高速で実行でき,処埋量を削減することができる。
【0013】
ここでワーピングの動きモデルにより,(vx2,vy2)または(vx3,vy3)または(vx4,vy4)の値を予め0に設定する手法もある。(vx2,vy2),(vx3,vy3),(vx4,vy4)のすべてを0にすると,(vx1,vy1)で示される平行移動を表す。(vx3,vy3)と(vx4,vy4)を0にすると,(vx1,vy1)と(vx2,vy2)で示される平行移動と横方向の拡大縮小を表す。(vx2,vy2)と(vx4,vy4)を0にすると,(vx1,vy1)と(vx3,vy3)で示される平行移動と縦方向の拡大縮小を表す。(vx4,vy4)を0にすると,(vx1,vy1)と(vx2,vy2)と(vx3,vy3)で示される平行移動と回転と拡大縮小を表す。このように予め0に設定することにより,動きベクトル符号量の削減を行うことができる。
【0014】
また,カメラパラメータを求める方法として,撮影時のカメラの状態を使う方法もあるが,動画像の画像情報から求める方法もある。例えば,まず全マクロブロックの動きベクトルを求め,画面全体で最も多い動きベクトルをグローバル動きベクトルとする方法もある。マクロブロックの動きベクトルを求める方法としては,マクロブロック内画素と参照画像画素との絶対値差分和が最小となる位置を動きベクトルとする方法などが挙げられる。
【0015】
グローバル動き補償符号化方法では,さらにマクロブロック毎にグローバル動きベクトルを使って符号化するかどうかを選択することが可能である。これは,画面内に異なる動きを持つ背景と前景がある場合に有効である,例えば,背景領域のマクロブロックはグローバル動きベクトルを使い,前景領域のマクロブロックはグローバル動きベクトルを使わずにマクロブロックの動きベクトルを使うことができる。
【0016】
また,画素やブロックの動きベクトルに,グローバル動きベクトルから求められる値をそのまま使うのではなく,グローバル動きベクトルから得られる値に,さらに補正値を加算して動きベクトルを求める方法もある。この方法では,一旦グローバル動き補償により作成した予測画像内を再探索して,より予測誤差や予測誤差の変化の少ない動きベクトルを求める。この動きベクトルによって予測画像を作成する方法をグローバル動き再補償方法と呼ぶこととする。この方法を使う場合の各画素の動きベクトルは,式(4)によって計算される。(mvx,mvy)は,再探索によって求めた動きベクトルである。rまたはsは,式(4−3)または式(4−4)で計算される。
【0017】
【数4】
【0018】
MPEG−4part2と同様に割り算をビットシフト演算で行う場合には,式(4)の代わりに,式(5)によって計算する。
【0019】
【数5】
【0020】
このように補正を加えることにより,グローバル動き補償だけでは予測誤差が多く発生する場合に,より予測誤差を低減することが可能である。また,この場合,グローバル動き補償によって拡大や回転された画像内を探索するため,通常の動き補償方式のように平行移動によって作成される予測画像よりも,予測誤差の少ない予測画像を作成することが可能である。この方法は,撮影時のカメラパラメータが得られず正確なグローバル動きベクトルが得られない場合に,より予測誤差の少ない探索位置を求めることができ,符号化効率を向上させることができる。なお,式(5)に従って動きベクトルを求めるのではなく,参照画像から一旦グローバル動き補償した画像を作り,その画像上で動きベクトル(mvx,mvy)が示す画像情報を予測画像に使う方法もある,
グローバル動き補償に関しては,MPEG−4文書の他に,下記の非特許文献1にも記載されているが,いずれも画像内画素数以上での割算を行う必要がある。また,下記の特許文献1において,3個または4個の代表点からの内挿と外挿に関する記述があるが,画面全体に対して1組のグローバル動きベクトルを符号化する仕組みのみ記述されており,本発明のように,本質的に限られたビット数で動きベクトルを計算することはできない。
【0021】
【非特許文献1】
上倉,渡辺著「動画像符号化におけるグローバル動き補償法」信学論(B−I), Vol.J76−B−I, No.12, pp.944−952(1993)
【特許文献1】
特開2001−352548
【0022】
【発明が解決しようとする課題】
式(3)または式(5)によってグローバル動きベクトルから画素の動きベクトルを計算する場合には,分子または分母が画面の画素数以上の値となる。そのため,数値を表現するレジスタのビット数が少ないシステム上では,画素数が多い場合に分子または分母の値を表現できない場合がある。例えば縦横256画素の画面の場合には,分子または分母の値が16ビットで表現できないため,数値を16ビットで表現する演算処理では計算を実行することができない。符号化側では,処理を必ずしも実時間で行う必要はないため,例えば数値を16ビットレジスタ2個で表現するなどにより,処理を行うことは可能である。しかし,復号側では符号化データを実時間で復号し出力し続ける必要があるため,このようなレジスタ数を増やす処理は大きな処理負荷となる。
【0023】
本発明は上記問題点の解決を図り,フレーム間予測符号化方法を用いる画像符号化および画像復号の際のワーピング用動きベクトル算出処理における演算処理負荷を軽減することを目的とする。
【0024】
【課題を解決するための手段】
以上の課題を解決するため,本発明は以下の方法を用いる。
【0025】
第1の発明は,入力画像を矩形領域に分割し,フレーム間予測符号化方法を使って符号化する動画像符号化方法において,領域Aの予測画像を,2つ以上の動きベクトルと領域Aの横画素数Mと縦画素数Nとを使って求め,フレーム間予測符号化を行う基準ワーピング予測符号化ステップと,領域Bの予測画像を,前記領域Aの動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップとを実行することを特徴とする。
【0026】
第2の発明は,前記第1の発明に対して,n個の複数の領域Ai(i=1,2,…,n)において基準ワーピング予測符号化ステップを実行し,領域Bの予測画像を,前記複数の領域Aiに対する基準ワーピング予測符号化ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップを実行することを特徴とする。
【0027】
第3の発明は,前記第2の発明に対して,n個の複数の領域Ai(i=1,2,…,n)において基準ワーピング予測符号化ステップを実行し,領域Bの予測画像を,前記複数の領域Aiのうち,1つ以上の特定の領域に対する基準ワーピング予測符号化ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップを実行することを特徴とする。
【0028】
第4の発明は,前記画像を分割した領域毎の符号化データをフレーム間予測符号化方法を使って復号する動画像復号方法において,領域Aの予測画像を,2つ以上の動きベクトルと領域Aの横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う基準ワーピング予測復号ステップと,領域Bの予測画像を,前記領域Aの動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測復号ステップとを実行することを特徴とする。
【0029】
第5の発明は,前記第4の発明に対して,n個の複数の領域Ai(i=1,2,…,n)において基準ワーピング予測復号ステップを実行し,領域Bの予測画像を,前記複数の領域Aiに対する基準ワーピング予測復号ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う参照ワーピング予測復号ステップを実行することを特徴とする。
【0030】
第6の発明は,前記第5の発明に対して,n個の複数の領域Ai(i=1,2,…,n)において基準ワーピング予測復号ステップを実行し,領域Bの予測画像を,前記複数の領域Aiのうち,1つ以上の特定の領域に対する基準ワーピング予測復号ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う参照ワーピング予測復号ステップを実行することを特徴とする。
【0031】
本発明の作用は以下のとおりである。第1の発明と第4の発明によれば,他の領域の動きベクトを外挿して,現領域の動きベクトルを求めることができる。
【0032】
例えば縦横16画素のマクロブロックAでは基準ワーピング予測符号化ステップで予測画像を求め,その右に隣接するマクロブロックBでは参照ワーピング予測符号化ステップで予測画像を求める場合には,次のように符号化する。
【0033】
図1に,基準ワーピング予測符号化ステップで使用する動きベクトル位置の例を示す。マクロブロックAの動きベクトルとして(x1,y1),(x2,y2),(x3,y3),(x4,y4)の4つの動きベクトルが与えられているものとする。(x1,y1)は左上の画素の動きベクトルであり,(x2,y2)は右上の画素から1画素右に移動した位置における動きベクトルであり,(x3,y3)は左下の画素から1画素下に移動した位置における動きベクトルであり,(x4,y4)は右下の画素から1画素右1画素下に移動した位置における動きベクトルであるとする。(x1,y1),(x2,y2),(x3,y3),(x4,y4)の位置関係は,図1に示すとおりである。
【0034】
マクロブロックAでは,基準ワーピング予測符号化ステップにて,これらの動きベクトルと縦画素数16と横画素数16とから,式(3)を使って各画素の動きベクトルを算出する。ここで,式(3)においてm=4,n=4であるため,16ビットのレジスタを持つ演算器であれば,式(3)の計算は可能である。
【0035】
次にマクロブロックAの右隣のマクロブロックBでは,参照ワーピング予測符号化ステップにて,上記の動きベクトルと縦画素数16と横画素数16とから,式(3)を使って各画素の動きベクトルを算出する。ここで,式(3)においてpとqの値は,マクロブロックAの左上の画素位置から測定した値を設定する。また,式(3)において,動きベクトルを算出する画素の横方向の位置が,動きベクトル蓄積部に蓄積されているワーピング用動きベクトルの画素位置よりも左にある場合には,式(3)のpの値は,そのワーピング用動きベクトルの画素位置を原点としたマイナスの値を設定するものとする。
【0036】
ここで領域を縦横16画素のマクロブロックとしたが,これよりも小さいブロックを単位にしてもよい。ブロックのサイズが小さいほど,シフトするビット数が小さくなり,よりビット数の少ないレジスタで計算することが可能となる。
【0037】
式(3)におけるpとqの値は,マクロブロックAの左上の画素位置から測定した値を設定するため,現マクロブロックとマクロブロックAの間の画素数が大きくなると,式(3)におけるシフトする対象の数値も大きくなる。従って,予め設定したビット数のレジスタで計算を行うためには,適当な頻度で基準ワーピング予測符号化ステップを実行し,参照ワーピング予測符号化ステップでの式(3)の計算におけるpとqの値を小さく設定する必要がある。
【0038】
また,マクロブロックAの動きベクトルとしてワーピング動き補償用の(x1,y1),(x2,y2),(x3,y3),(x4,y4)の4つの動きベクトルと,さらにワーピングした画像からの補正値を示す(x5,y5)の1つの動きベクトルが与えられている場合もある。この場合には,マクロブロックBの動きベクトルを求める参照ワーピング予測符号化ステップでは,ワーピング用の動きベクトル(x1,y1),(x2,y2),(x3,y3),(x4,y4)のみ使用する。
【0039】
また,ワーピング用の動きベクトルとしては,(x1,y1),(x2,y2),(x3,y3),(x4,y4)の代わりに,式(2)によって計算されるグローバル動きベクトル((vx1,vy1),(vx2,vy2),(vx3,vy3),(vx4,vy4))を使う方法もある。これによれば,(vx2,vy2)または(vx3,vy3)または(vx4,vy4)を予め0に設定することによって,動きベクトル符号量の削減を行うことができる。
【0040】
このマクロブロックAの4つの動きベクトルを求める方法としては,画面全体のグローバル動きベクトルを求めておき,グローバル動きベクトルから式(1)または式(3)を使って求める方法も好適である。
【0041】
以上のように復号側でシフトするビット数を減らした符号化データを,動画像符号化方法で作成し,動画像復号方法で復号することができる。
【0042】
第2の発明と第5の発明によれば,前記第1の発明および第4の発明に対して,複数の領域の動きベクトルの外挿値を平均することにより,参照ワーピング予測符号化ステップにて求める動きベクトルを求めることが可能である。
【0043】
例えば画面左端の縦横16画素のマクロブロックAでは基準ワーピング予測符号化ステップで予測画像を求め,同じ列の画面右端のマクロブロックBでも基準ワーピング予測符号化ステップで予測画像を求め,マクロブロックAの下の列で,画面横方向の中間に位置するマクロブロックCでは参照ワーピング予測符号化ステップで予測画像を求める場合には,次のように符号化する。
【0044】
第1の発明と同様に,マクロブロックAとマクロブロックBでは,基準ワーピング予測符号化ステップで予測画像を作成し符号化する。各マクロブロック符号化の際に使用した動きベクトルを記憶しておく。続いてマクロブロックCでは,まずマクロブロックAの動きベクトルと縦画素数16と横画素数16とから,式(3)を使って各画素の動きベクトルを算出する。これを(mva_x,mva_y)とする。そして,マクロブロックBの動きベクトルと縦画素数16と横画素数16とから,式(3)を使って各画素の動きベクトルを算出する。これを(mvb_x,mvb_y)とする。そして,(mva_x,mva_y)と(mvb_x,mvb_y)から,式(6)に従って最終的な動きベクトル(mvt_x,mvt_y)を求める。
【0045】
【数6】
【0046】
このように,位置の離れた複数のマクロブロックから外挿した動きベクトルを平均することにより,中間位置のマクロブロックの動きベクトルを求めることができる。この方法によれば,1つのマクロブロックから外挿して得られる動きベクトルの予測効率がよくない場合に,複数のマクロブロックからの平均値を使うことができるため,予測効率を向上することができる。
【0047】
第3の発明と第6の発明によれば,前記第2の発明と第5の発明に対して,複数の領域の動きベクトルの外挿値を平均する際に,使用する動きベクトルを選択することができる。
【0048】
例えば画面左端の縦横16画素のマクロブロックAでは基準ワーピング予測符号化ステップで予測画像を求め,同じ列の画面右端のマクロブロックBでも基準ワーピング予測符号化ステップで予測画像を求め,マクロブロックAの下の列で,画面左端に位置するマクロブロックCでは参照ワーピング予測符号化ステップで予測画像を求める場合には,次のように符号化する。
【0049】
第1の発明と同様に,マクロブロックAとマクロブロックBでは,基準ワーピング予測符号化ステップで予測画像を作成し符号化する。各マクロブロック符号化の際に使用した動きベクトルを記憶しておく。
【0050】
続いてマクロブロックCでは,マクロブロックCとマクロブロックAの間の距離と,マクロブロックCとマクロブロックBの間の距離を計算し,距離の近い方の動きベクトルを参照ワーピング予測符号化ステップにて使用するように選択する。距離はマクロブロック左上の画素の間の画素数で計算することにする。この例ではマクロブロックCはマクロブロックAの方が近いので,マクロブロックAの動きベクトルと縦画素数16と横画素数16とから,式(3)を使って各画素の動きベクトルを算出し予測画像を作成する。
【0051】
このように,より距離の近い方のマクロブロックの動きベクトルを外挿することができる。この方法によれば,距離の遠いマクロブロックから外挿して得られる動きベクトルの予測効率がよくない場合に,近い方のマクロブロックからのみ外挿するため,複数のマクロブロックからの動きベクトルを平均するよりも,予測効率を向上することができる。
【0052】
ここで,マクロブロックCが,マクロブロックAからの外挿を選択するのか,マクロブロックBからの外挿を選択するのか,あるいは両方の平均を選択するのかを示す,動きべクトル選択情報を符号化する方法も好適である。これにより,どちらを使うのかを復号側に明示的に示すことができるため,より符号化効率が高い動きベクトルを選択することができる。
【0053】
【発明の実施の形態】
以下,図面を用いて本発明の実施の形態を説明する。マクロブロック単位に予測画像を,基準ワーピング予測画像作成部で行うのか,参照ワーピング予測画像作成部で行うのか,通常の平行移動のみによる動き補償によるのかを選択するものとする。
【0054】
〔第1の実施の形態〕
第1の実施の形態では,参照ワーピング予測画像作成部で動きベクトルを算出する際には,動きベクトル蓄積部で蓄積されている動きベクトルをすべて使用する場合の動作例を示す。まず,画像符号化装置の説明を行う。
【0055】
図2に,本発明の第1の実施の形態に係る画像符号化装置の概要を示す。現フレームの画像を入力する画像入力部101と,マクロブロックについて4つのワーピング用動きベクトルを探索するワーピング動き探索部102と,2つ以上の動きベクトルと領域の横画素数Mと縦画素数Nを使って予測画像を求める基準ワーピング予測画像作成部103と,基準ワーピング予測画像作成部103で使用した動きベクトルを蓄積する動きベクトル蓄積部108と,動きベクトル蓄積部108に蓄積された動きベクトルと領域の横画素数Mと縦画素数Nを使って予測画像を求める参照ワーピング予測画像作成部104と,予測画像を使ってフレーム間予測符号化を行う予測誤差符号化部110と,基準ワーピング予測画像作成部103で使用した動きベクトルを符号化する動きベクトル符号化部109と,予測誤差符号化データを復号する復号部112と,復号画像を蓄積する参照画像メモリ113と,マクロブロック単位に平行移動量を探索する動き探索部105と,動き探索部105で得られる動きベクトルを使って動き補償を行い予測誤差を作成する動き補償部106と,動き補償部106で作成した予測画像を使用して符号化するのか,基準ワーピング予測画像作成部103で作成した予測画像を使用して符号化するのか,参照ワーピング予測画像作成部104で作成した予測画像を使用して符号化するのかを決定する予測方法決定部107と,予測画像を動き補償部106で作成したのか基準ワーピング予測画像作成部103で作成したのか参照ワーピング予測画像作成部104で作成したのかを示す符号化モードを符号化する符号化モード符号化部111とを備える。
【0056】
ワーピング動き探索部102では,一旦画面全体のグローバル動き探索を行った後,現マクロブロックについて,基準ワーピング予測画像作成部103で使用するためのワーピング用動きべクトルを算出する。動き探索部105では,ブロックマッチング方法を使って動きベクトルを求めるものとする。
【0057】
予測方法決定部107では,絶対値差分コストWが最も小さくなる予測方法を選択するものとする。各予測方式における絶対値差分コストW1,W2,W3は,式(7)に従って計算する。W1は,基準ワーピング予測画像作成部103で作成した予測画像による絶対値差分コストを示し,W2は,参照ワーピング予測画像作成部104で作成した予測画像による絶対値差分コストを示し,W3は,動き補償部106で作成した予測画像による絶対値差分コストを示す。ここで,f(i,j,t)は,時刻tにおけるマクロブロック内位置(i,j)の画素の画像情報を示し,X,Yは,式(3)でm=n=4とした値を示す。Nmv(x1,y1,x2,y2,x3,y3,x4,y4)は,ワーピング用動きべクトル(x1,y1,x2,y2,x3,y3,x4,y4)を符号化するために必要な符号量を示す。同様に,Nmv(x,y)は,通常の動きベクトル(x,y)を符号化するために必要な符号量を示す。
【0058】
【数7】
【0059】
動きベクトル符号化部109は,図3に示すルックアップテーブルを使って動きベクトル情報を可変長符号化し,符号化モード符号化部111は,図4に示すルックアップテーブルを使って動きべクトル情報を可変長符号化する。なお,動きベクトル符号化部109は,ワーピング用動きベクトルの他にも,動き補償部106で作成された予測画像が選択される場合には,動き補償部106で使われる動きベクトルも符号化する。
【0060】
このような前提で現フレームは,次のように符号化される。まず,ワーピング動き探索部102は,画面全体に対してグローバル動き探索を行い,画面四隅の位置に動きベクトルを想定するグローバル動きベクトルを求める。
【0061】
続いてマクロブロック毎に,次のように符号化される。まず,最初のマクロブロックについて説明する,ワーピング動き探索部102は,グローバル動きベクトルから,符号化対象マクロブロックのワーピング用動きベクトルを算出する。ワーピング用動きベクトルは,図1に示した位置の動きベクトルであり,グローバル動きベクトルから式(3)に従って求める。
【0062】
基準ワーピング予測画像作成部103では,ワーピング用動きベクトルからマクロブロック内の各画素の動きベクトルを算出し,予測画像を作成する。参照ワーピング予測画像作成部104は,動きベクトル蓄積部108にワーピング用動きベクトルが蓄積されていないため何も行わない。動き探索部105は,動き探索を行い動きベクトルを求め,動き補償部106は,求められた動きベクトルを使い,予測画像を作成する。
【0063】
予測方法決定部107では,式(7)に従って絶対値差分和W1とW3を計算して,その大小を比較する。W1の方が小さい場合には,予測方法を基準ワーピング予測と決定し,W3の方が小さい場合には,予測方法を動き補償と決定する。予測誤差符号化部110は,決定された予測方法による予測画像を使って予測誤差を求め,その予測誤差を符号化する。符号化モード符号化部111は,予測方法決定部107によって決定された予測方法に従って,符号化モードを可変長符号化する。
【0064】
動きベクトル符号化部109は,予測方法が基準ワーピング予測の場合には4つのワーピング用動きベクトルを符号化し,予測方法が動き補償の場合には1つの動きベクトルを符号化する。予測方法が基準ワーピング予測の場合には4つのワーピング用動きベクトルを動きベクトル蓄積部108に蓄積する。復号部112は,予測誤差符号化データを復号して復号画像を作成し,参照画像メモリ113に蓄積する。
【0065】
次に,2番目以後のマクロブロックについて説明する。ワーピング動き探索部102は,グローバル動きベクトルから,符号化対象マクロブロックのワーピング用動きベクトルを算出する。基準ワーピング予測画像作成部103では,ワーピング用動きベクトルからマクロブロック内の各画素の動きベクトルを算出し,予測画像を作成する。参照ワーピング予測画像作成部104は,動きベクトル蓄積部108にワーピング用動きベクトルが蓄積されている場合には,その動きベクトルを使い,式(3)に従って各画素の動きベクトルを算出し,予測画像を作成する。動き探索部105は,動き探索を行って動きベクトルを求め,動き補償部106は,求められた動きベクトルを使い予測画像を作成する。
【0066】
予測方法決定部107では,式(7)に従って絶対値差分和W1とW2とW3を計算して大小を比較する。W1が最も小さい場合には,予測方法を基準ワーピング予測と決定し,W2が最も小さい場合には,予測方法を参照ワーピング予測と決定し,W3が最も小さい場合には,予測方法を動き補償と決定する。予測誤差符号化部110は,予測方法決定部107によって決定された予測方法による予測画像を使って予測誤差を求めて,予測誤差を符号化する。符号化モード符号化部111は,予測方法決定部107によって決定された予測方法に従って符号化モードを可変長符号化する。
【0067】
動きベクトル符号化部109は,予測方法が基準ワーピング予測の場合には,4つのワーピング用動きベクトルを符号化し,予測方法が動き補償の場合には,1つの動きベクトルを符号化する。予測方法が基準ワーピング予測の場合には,4つのワーピング用動きベクトルを動きベクトル蓄積部108に蓄積する。復号部112は,予測誤差符号化データを復号して復号画像を作成し,参照画像メモリ113に蓄積する。
【0068】
以上の手順をすべてのマクロブロックに対して繰り返し処埋する。
【0069】
次に復号装置の説明を行う。図5に,本発明の第1の実施の形態に係る画像復号装置の概要を示す。画像復号装置200は,動きベクトルを復号する動きベクトル復号部201と,予測誤差符号化データを復号し復号画像を作成する予測誤差復号部207と,符号化モードが動き補償を示す場合に予測画像を作成する動き補償部204と,4つのワーピング用動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を作成する基準ワーピング予測画像作成部205と,基準ワーピング予測画像作成部205で使用した動きベクトルを蓄積する動きベクトル蓄積部202と,動きベクトル蓄積部202に蓄積された動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を作成する参照ワーピング予測画像作成部206と,動き補償部204で作成する復号画像を出力するのか基準ワーピング予測画像作成部205で作成する復号画像を出力するのか参照ワーピング予測画像作成部206で作成する復号画像を出力するのかを示す符号化モードを復号する符号化モード復号部203と,復号画像を蓄積する参照画像メモリ208とを備える。
【0070】
図2で説明した画像符号化装置100で得られた符号化データを,図5に示す画像復号装置200によって復号する手順を示す。
【0071】
符号化データは,マクロブロック毎に次のように復号される。まず,符号化モード復号部203は,符号化モードを復号する。続いて符号化モードに従って予測画像を作成するが,以下に3例の復号手順を示す。
(1)符号化モードが動き補償を示す場合
動きベクトル復号部201は,1つの動きベクトルを復号して,動き補償部204は,予測画像を作成する。
(2)符号化モードが基準ワーピング予測を示す場合
動きベクトル復号部201は,4つのワーピング用動きベクトルを復号して,基準ワーピング予測画像作成部205は,予測画像を作成する。ワーピング用動きベクトルは,動きベクトル蓄積部202に蓄積する。
(3)符号化モードが参照ワーピング予測を示す場合
参照ワーピング予測画像作成部206は,動きベクトル蓄積部202に蓄積されている4つのワーピング用動きベクトルを使い,予測画像を作成する。
【0072】
以上により予測画像を作成した後,予測画像復号部207は,予測誤差符号化データを復号して復号画像を作成する。復号画像は,参照画像メモリ208に蓄積する。以上の手順をすべてのマクロブロックに対して繰り返し処理する。
【0073】
なお,ワーピング用動きベクトルを複数マクロブロック分蓄積し,参照ワーピング予測画像作成部206は,これらのワーピング用動きベクトルを使い予測画像を作成する方法も好適である。この場合には,まず基準ワーピング予測を行った各マクロブロック位置からの動きベクトルを算出した後に,これらの動きベクトルを平均して最終的な動きベクトルを得る。
【0074】
このように本実施の形態によれば,他のマクロブロックのワーピング用動きベクトルを外挿して,現マクロブロックのワーピング用動きベクトルを求めることができる。したがって,従来のグローバル動き補償に比べて,動きベクトル算出に必要な数値演算における数値を少ないビット数で表現することができる。
【0075】
〔第2の実施の形態〕
第2の実施の形態では,参照ワーピング予測画像作成部で動きベクトルを算出する際に,動きベクトル蓄積部で蓄積されている動きベクトルの中から使用する動きベクトルを選択する場合の例を示す。
【0076】
まず,画像符号化装置の説明を行う。図6に,本発明の第2の実施の形態に係る画像符号化装置の概要を示す。第2の実施の形態では,第1の実施の形態における装置構成の他に,参照ワーピング予測画像作成部304で使用する動きベクトルとして,動きベクトル蓄積部308に蓄積された複数の動きベクトルのうち,1つ以上の特定の領域の動きベクトルを選択する動きベクトル選択部314と,動きベクトル選択部314で選択した動きベクトルを指定する動きベクトル選択情報を符号化する動きベクトル選択情報符号化部315とを備える。
【0077】
ワーピング動き探索部302,動き探索部305,動きベクトル符号化部309,符号化モード符号化部311の動作は,第1の実施の形態と同じである。動きベクトル選択部314は,動きベクトル蓄積部308に蓄積されているワーピング用動きベクトルを順次,参照ワーピング予測画像作成部304で使用するワーピング用動きベクトルに設定する。
【0078】
予測方法決定部307では,まず参照ワーピング予測画像作成部304で使用するワーピング用動きベクトルを変更しながら,絶対値差分和W2の値が最も小さくなる場合のワーピング用動きベクトルを求める。その後,基準ワーピング予測画像作成部303と動き補償部306で作成される予測画像に対する絶対値差分和W1とW3を求めて,絶対値差分和W1とW2とW3とを比較する。
【0079】
動きベクトル選択情報符号化部315は,絶対値差分和W2の値が最も小さくなる場合のワーピング用動きベクトルを指定する動きベクトル選択情報を符号化する。動きベクトル選択情報は,画面内で間近に符号化されたワーピング用動きベクトルほど値が小さくなるように設定した正の整数で表される。動きベクトル選択情報符号化部315は,図7に示したルックアップテープルを使用して動きベクトル選択情報を符号化する。絶対値差分和W2の計算は,式(8)に従う。ここでNselは動きベクトル選択情報の符号量を示す。
【0080】
【数8】
このような前提で現フレームは,次のように符号化される。まず,ワーピング動き探索部302は,画面全体に対してグローバル動き探索を行い,画面四隅の位置に動きベクトルを想定するグローバル動きベクトルを求める。
【0081】
続いてマクロブロック毎に次のように符号化される。最初のマクロブロックについては,第1の実施の形態と同様である。2番目以後のマクロブロックについて説明する。
【0082】
ワーピング動き探索部302は,グローバル動きベクトルから,符号化対象マクロブロックのワーピング用動きベクトルを算出する。動きベクトル選択部314は,動きベクトル蓄積部308にワーピング用動きベクトルが蓄積されている場合には,ワーピング用動きベクトルを動きベクトル選択情報の値の小さいほうから順次選択し,参照ワーピング予測画像作成部304は,その動きベクトルを使い,式(3)に従って各画素の動きベクトルを算出し予測画像を作成する。
【0083】
予測方法決定部307では,式(8)に従って,各ワーピング用動きベクトルに対して,絶対値差分和W2を計算し,W2の値が最も小さい場合のワーピング用動きベクトルを求める。この場合のW2の値をW2sと書くことにする。
【0084】
次に,基準ワーピング予測画像作成部303では,ワーピング用動きベクトルからマクロブロック内の各画素の動きベクトルを算出し,予測画像を作成する。動き探索部305は,動き探索を行い動きベクトルを求め,動き補償部306は,求められた動きベクトルを使い,予測画像を作成する。
【0085】
予測方法決定部307では,式(7)に従って絶対値差分和W1とW3を計算して,W1とW3と,既に求めたW2sの値の大小を比較する。W1が最も小さい場合には,予測方法を基準ワーピング予測と決定し,W2sが最も小さい場合には,予測方法を参照ワーピング予測と決定し,W3が最も小さい場合には予測方法を動き補償と決定する。予測誤差符号化部310は,決定された予測方法による予測画像を使って予測誤差を求めて予測誤差を符号化する。符号化モード符号化部311は,決定された予測方法に従って符号化モードを可変長符号化する。
【0086】
動きベクトル符号化部309は,予測方法が基準ワーピング予測の場合には,4つのワーピング用動きベクトルを符号化し,予測方法が動き補償の場合には,1つの動きベクトルを符号化する。予測方法が参照ワーピング予測の場合には,動きベクトル選択情報符号化部315は,W2sの値が得られたワーピング用動きベクトルを指定する動きベクトル選択情報を符号化する。予測方法が基準ワーピング予測の場合には,4つのワーピング用動きベクトルを動きベクトル蓄積部308に蓄積する。復号部312は,予測誤差符号化データを復号して復号画像を作成し,参照画像メモリ313に蓄積する。
【0087】
以上の手順をすべてのマクロブロックに対して繰り返し処理する。
【0088】
次に,復号装置の説明を行う。図8に,本発明の第2の実施の形態に係る画像符号化装置の概要を示す。第2の実施の形態では,第1の実施の形態における装置構成の他に,参照ワーピング予測画像作成部406で使用する動きベクトルとして,動きベクトル蓄積部402に蓄積された複数の動きベクトルのうち,どの動きベクトルを選択するのかを示す動きべクトル選択情報を復号する動きベクトル選択情報復号部409を備える。図6で説明した画像符号化装置300で得られた符号化データを復号する手順を示す。
【0089】
画像符号化装置300が符号化した符号化データは,画像復号装置400によってマクロブロック毎に次のように復号される。まず,符号化モード復号部403は,符号化モードを復号する。続いて符号化モードに従って予測画像を作成するが,以下に3例の復号手順を示す。
(1)符号化モードが動き補償を示す場合
動きベクトル復号部401は,1つの動きベクトルを復号して,動き補償部404は,予測画像を作成する。
(2)符号化モードが基準ワーピング予測を示す場合
動きベクトル復号部401は,4つのワーピング用動きベクトルを復号して,基準ワーピング予測画像作成部405は,予測画像を作成する。ワーピング用動きベクトルは,動きベクトル蓄積部402に蓄積する。
(3)符号化モードが参照ワーピング予測を示す場合
動きベクトル選択情報復号部409は,動きベクトル選択情報を復号する。参照ワーピング予測画像作成部406は,動きベクトル蓄積部402に蓄積されているワーピング用動きベクトルのうち,動きベクトル選択情報によって指定されるワーピング用動きベクトルを使い予測画像を作成する。
【0090】
以上により予測画像を作成した後,予測誤差復号部407は,予測誤差符号化データを復号して復号画像を作成する。復号画像は,参照画像メモリ408に蓄積する。以上の手順をすべてのマクロブロックに対して繰り返し処理する。
【0091】
なお,動きベクトル蓄積部402からワーピング用動きベクトルを選択する方法が,画像符号化装置300と画像復号装置400の間で予め同じになるように設定しておくことも可能である。例えば元々基準ワーピング予測を行ったマクロブロックとの距離が近い方を選択することも可能である。この場合には,画像符号化装置300に動きベクトル選択情報符号化部315を備える必要はなく,画像復号装置400に動きベクトル選択情報復号部409を備える必要はない。
【0092】
このように本実施の形態によれば,他のマクロブロックのワーピング用動きベクトルを外挿して,現マクロブロックのワーピング用動きベクトルを求める際に,より符号化効率のよいワーピング用動きベクトルを選択することができる。したがって,直前に算出したワーピング用動きベクトルを使う場合よりも,符号化効率を向上することができる。
【0093】
なお,上記第1および第2の実施の形態では,基準ワーピング予測と参照ワーピング予測の際に,画素単位に動きベクトルを算出したが,縦横8画素のブロック毎に動きベクトルを算出してもよい。この場合には,動きベクトルを計算するための演算処理量を削減することができる。また,基準ワーピング予測と参照ワーピング予測の際に,4つのワーピング用動きベクトルではなく,2つまたは3つのワーピング用動きベクトルを使ってもよい。この場合には,ワーピング用動きベクトルとして,式(2)で計算される(vx1,vy1)の他に(vx2,vy2)または(vx3,vy3)または(vx4,vy4)を使用して,各画素の動きベクトルを算出する。また,基準ワーピング予測の際に,ワーピング用動きベクトルにさらに1つの動きベクトルを使用してもよい。この場合には,基準ワーピング予測画像作成部では,式(3)の代わりに式(5)を使用する。参照ワーピング予測画像作成部では,式(3)を使用する。
【0094】
また,上記第1および第2の実施の形態における動き補償部では,平行移動だけではなく,回転や拡大を行うことも好適である。例えば文献「石川他,“マルチパラメータ動き補償を用いた動画像の3D/2Dハイブリッド符号化”,信学技報IE2001−76,pp.15−22,2001」では,回転運動に対して回転角度を示す情報によって予測画像を作成して回転角度情報を符号化する方法や,拡大運動に対して拡大率を示す情報によって予測画像を作成して拡大率情報を符号化する方法を用いている。
【0095】
以上の動画像符号化および復号の処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
【0096】
本発明による効果を,従来技術と比較して説明する。従来技術では,式(3)に示すとおり,画面内画素数に依存して必要ビット数が変化する。例えば,縦352画素横288画素の画面の場合,式(3)におけるm,nは,m=9,n=9となり,動きべクトルが8ビットで表現される場合には,ビットシフトする対象として少なくとも26ビット必要になる。すなわち,26ビット以上のレジスタが必要となる。
【0097】
また,縦横16画素のマクロブロックの動きベクトルを外挿する方式を適用すると,外挿の基点となる画素位置からの距離に応じて必要なビット数が増加するため,画面内で1組のグローバル動きベクトルを符号化する仕組みではレジスタの必要ビット数が増加する問題がある(特許文献1「特開2001−352548」を参照)。
【0098】
本発明による方法では,例えば縦横16画素のマクロブロック単位にワーピング動きベクトルを計算するとなると,式(3)におけるm,nは,m=4,n=4となり,動きベクトルが8ビットで表現される場合には,ビットシフトする対象として16ビット必要である。すなわち,16ビットのシフトレジスタのみでよい。従来方法でも,最小マクロブロックサイズの画面が必要となるため,本発明による方法では,常に従来方法よりも少ないビット数で計算することが可能である。
【0099】
また,特許文献1のものに比べて,本発明による方法では,ワーピング動きベクトルを随時更新することができるため,動きベクトル演算に必要なビット数を限られた範囲内に限定することができる。
【0100】
【発明の効果】
以上説明したように,本発明によれば,他の領域のワーピング用動きベクトルを外挿して,現領域のワーピング用動きベクトルを求めることができる。したがって,従来のグローバル動き補償に比べて,動きベクトル算出に必要な数値演算における数値を少ないビット数で表現することができ,演算処理負荷を軽減することができる。
【0101】
具体的には,例えば動きベクトルが8ビットで表現される場合に,従来技術では,少なくとも26ビットのレジスタが必要であったのに対し,本発明を用いることにより,16ビットのシフトレジスタのみで動きベクトル演算を実現できるようになる。
【図面の簡単な説明】
【図1】基準ワーピング予測符号化ステップで使用する動きベクトル位置の例を示す図である。
【図2】第1の実施の形態における画像符号化装置の構成図である。
【図3】動きベクトルの可変長符号の例を示す図である。
【図4】符号化モードの可変長符号の例を示す図である。
【図5】第1の実施の形態における画像復号装置の構成図である。
【図6】第2の実施の形態における画像符号化装置の構成図である。
【図7】動きベクトル選択情報の可変長符号の例を示す図である。
【図8】第2の実施の形態における画像復号装置の構成図である。
【図9】グローバル動きベクトルから動きベクトルを算出する例を示す図である。
【図10】2のべき乗の位置のグローバル動きベクトルから動きベクトルを算出する例を示す図である。
【符号の説明】
100,300 画像符号化装置
101,301 画像入力部
102,302 ワーピング動き探索部
103,303 基準ワーピング予測画像作成部
104,304 参照ワーピング予測画像作成部
105,305 動き探索部
106,306 動き補償部
107,307 予測方法決定部
108,308 動きベクトル蓄積部
109,309 動きベクトル符号化部
110,310 予測誤差符号化部
111,311 符号化モード符号化部
112,312 復号部
113,313 参照画像メモリ
314 動きベクトル選択部
315 動きベクトル選択情報符号化部
200,400 画像復号装置
201,401 動きベクトル復号部
202,402 動きベクトル蓄積部
203,403 符号化モード復号部
204,404 動き補償部
205,405 基準ワーピング予測画像作成部
206,406 参照ワーピング予測画像作成部
207,407 予測誤差復号部
208,408 参照画像メモリ
409 動きベクトル選択情報復号部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a moving image coding technique, and more particularly to an image coding method capable of reducing an arithmetic processing load in a warping motion vector calculation process in image coding and image decoding using an inter-frame predictive coding method. The present invention relates to an encoding method, an image decoding method, an image encoding device, an image decoding device, an image encoding program, an image decoding program, and a recording medium on which those programs are recorded.
[0002]
[Prior art]
There is a global motion compensation coding method for performing inter-frame predictive coding using a motion vector of the entire screen (referred to as a global motion vector). In contrast to the normal motion compensation coding method that uses a motion vector for each macroblock, this method can express camera parameters such as pan and zoom with global motion vectors. , The motion vectors for each macroblock can be collectively encoded as a global motion vector, and the encoding efficiency can be improved.
[0003]
Examples of the global motion vector include a method of encoding motion vectors at four vertices of a screen and a method of encoding camera parameters (x, y, z) as described in Non-Patent
[0004]
In the method of encoding the motion vectors of the four vertices of the screen, if the entire screen is an image that pans uniformly in the horizontal direction, the motion vectors of the four vertices may be encoded so that the screen pans in the horizontal direction. Since the motion vectors are collectively encoded in the entire screen, the motion vector for each macroblock is 0, and the motion vector is not encoded.
[0005]
FIG. 9 shows an example of calculating a motion vector from a global motion vector. The motion vector can be obtained from the global motion vector for each pixel or for each block composed of a plurality of pixels. When obtaining for each block, for example, the motion vector of the upper left pixel of the block is calculated from the global motion vector, and the motion vectors of all the pixels in the block are made the same as the calculated upper left pixel. From the global motion vectors ((x1, y1), (x2, y2), (x3, y3), (x4, y4)) at the four corners of the screen, the motion vector (X, Y) of each pixel is given by the following equation (1). Can be determined according to M and N indicate the number of pixels in the horizontal and vertical directions of the screen. (P, q) indicates the horizontal and vertical positions of the pixel from the upper left of the screen.
[0006]
(Equation 1)
[0007]
The method of calculating the motion vector of each pixel from the global motion vector of a region including the pixel in this manner is called warping.
[0008]
In the global motion compensation coding method adopted in MPEG-4
[0009]
First, global motion vectors ((vx1) calculated from the following four equations from the four corner global motion vectors ((x1, y1), (x2, y2), (x3, y3), (x4, y4)). , Vy1), (vx2, vy2), (vx3, vy3), (vx4, vy4)), the motion vector (X, Y) of each pixel is calculated by equation (3).
[0010]
(Equation 2)
[0011]
[Equation 3]
[0012]
In equation (3), “A >> B” represents an operation of shifting the value of A to the right by B bits. In this method, the division used in the above equation (1) can be executed by a bit shift operation, and the process of calculating a pixel motion vector from a global motion vector can be executed at high speed, thereby reducing the amount of processing. Can be.
[0013]
Here, there is a method in which the value of (vx2, vy2), (vx3, vy3), or (vx4, vy4) is set to 0 in advance according to the warping motion model. When all of (vx2, vy2), (vx3, vy3), and (vx4, vy4) are set to 0, the translation represented by (vx1, vy1) is represented. When (vx3, vy3) and (vx4, vy4) are set to 0, the translation represented by (vx1, vy1) and (vx2, vy2) and the enlargement / reduction in the horizontal direction are represented. When (vx2, vy2) and (vx4, vy4) are set to 0, the translation and vertical scaling represented by (vx1, vy1) and (vx3, vy3) are represented. When (vx4, vy4) is set to 0, it represents the translation, rotation, and enlargement / reduction indicated by (vx1, vy1), (vx2, vy2), and (vx3, vy3). By setting the value to 0 in advance, the amount of motion vector code can be reduced.
[0014]
As a method for obtaining camera parameters, there is a method of using the state of the camera at the time of shooting, but also a method of obtaining camera parameters from image information of a moving image. For example, there is a method in which the motion vectors of all macroblocks are obtained first, and the largest motion vector in the entire screen is set as a global motion vector. As a method of obtaining a motion vector of a macroblock, there is a method of setting a position at which the sum of absolute difference between a pixel in a macroblock and a reference image pixel is minimum as a motion vector.
[0015]
In the global motion compensation coding method, it is possible to select whether to perform coding using a global motion vector for each macroblock. This is useful when there are backgrounds and foregrounds with different motions on the screen, for example, macroblocks in the background area use global motion vectors, and macroblocks in the foreground area use macroblocks without global motion vectors. Motion vector can be used.
[0016]
There is also a method of obtaining a motion vector by adding a correction value to a value obtained from a global motion vector instead of using a value obtained from a global motion vector as a motion vector of a pixel or a block as it is. In this method, a prediction image once created by global motion compensation is re-searched to obtain a prediction error and a motion vector with less change in the prediction error. A method of creating a predicted image using this motion vector is referred to as a global motion recompensation method. The motion vector of each pixel when using this method is calculated by Expression (4). (Mvx, mvy) is a motion vector obtained by a re-search. r or s is calculated by Expression (4-3) or Expression (4-4).
[0017]
(Equation 4)
[0018]
When division is performed by a bit shift operation in the same manner as MPEG-4part2, the calculation is performed by Expression (5) instead of Expression (4).
[0019]
(Equation 5)
[0020]
By performing the correction in this way, it is possible to further reduce the prediction error when a large number of prediction errors occur only by global motion compensation. Also, in this case, a search is performed within the image that has been enlarged or rotated by global motion compensation, so that a predicted image having a smaller prediction error than a predicted image created by parallel movement as in a normal motion compensation method is created. Is possible. According to this method, when a camera parameter at the time of shooting cannot be obtained and an accurate global motion vector cannot be obtained, a search position with a smaller prediction error can be obtained, and coding efficiency can be improved. Instead of obtaining a motion vector according to the equation (5), there is also a method in which an image temporarily subjected to global motion compensation is created from a reference image, and image information indicated by the motion vector (mvx, mvy) is used as a predicted image on the image. ,
Global motion compensation is described in
[0021]
[Non-patent document 1]
Uekura, Watanabe, "Global motion compensation method in video coding", IEICE (B-I), Vol. J76-BI, No. 12, pp. 944-952 (1993)
[Patent Document 1]
JP 2001-352548 A
[0022]
[Problems to be solved by the invention]
When calculating the motion vector of a pixel from the global motion vector according to Expression (3) or Expression (5), the numerator or denominator is a value equal to or larger than the number of pixels on the screen. Therefore, on a system in which the number of bits of a register that represents a numerical value is small, the value of the numerator or denominator may not be able to be represented when the number of pixels is large. For example, in the case of a screen with 256 pixels vertically and horizontally, the value of the numerator or denominator cannot be represented by 16 bits, so that the calculation cannot be executed by the arithmetic processing of expressing the numerical value by 16 bits. On the encoding side, it is not always necessary to perform the processing in real time, so it is possible to perform the processing, for example, by expressing a numerical value with two 16-bit registers. However, on the decoding side, it is necessary to continue to decode and output the encoded data in real time, and such a process of increasing the number of registers imposes a large processing load.
[0023]
SUMMARY OF THE INVENTION It is an object of the present invention to solve the above problems and to reduce the processing load in a motion vector calculation process for warping at the time of image encoding and image decoding using an inter-frame predictive encoding method.
[0024]
[Means for Solving the Problems]
In order to solve the above problems, the present invention uses the following method.
[0025]
According to a first aspect of the present invention, there is provided a moving image encoding method in which an input image is divided into rectangular regions and encoded using an inter-frame predictive encoding method. A reference warping prediction coding step of performing inter-frame prediction coding, which is obtained by using the number of horizontal pixels M and the number of vertical pixels N, and the predicted image of the area B is calculated by using the motion vector of the area A and the number of horizontal pixels M And a reference warping predictive encoding step of performing inter-frame predictive encoding by using the number N of vertical pixels.
[0026]
The second invention is different from the first invention in that a reference warping predictive coding step is performed on n plurality of regions Ai (i = 1, 2,..., N), and a predicted image of a region B is formed. And performing a reference warping predictive encoding step of performing inter-frame predictive encoding by using the motion vector, the number of horizontal pixels M, and the number of vertical pixels N used in the reference warping predictive encoding step for the plurality of areas Ai. It is characterized by.
[0027]
The third invention is different from the second invention in that a reference warping predictive encoding step is performed on n plurality of regions Ai (i = 1, 2,..., N), and a predicted image of a region B is formed. , Using the motion vector, the number of horizontal pixels M, and the number of vertical pixels N used in the reference warping predictive coding step for one or more specific regions among the plurality of regions Ai, and performing inter-frame predictive coding. A reference warping prediction encoding step is performed.
[0028]
A fourth invention is a video decoding method for decoding coded data for each area obtained by dividing the image by using an inter-frame predictive coding method. A reference warping predictive decoding step of performing inter-frame predictive decoding obtained using the number M of horizontal pixels and the number N of vertical pixels of A; And a reference warping predictive decoding step of performing inter-frame predictive coding by using the number N.
[0029]
The fifth invention is different from the fourth invention in that a reference warping predictive decoding step is performed on n areas Ai (i = 1, 2,..., N), and a predicted image of the area B is And performing a reference warping prediction decoding step of obtaining the motion vector, the number of horizontal pixels M and the number of vertical pixels N used in the reference warping prediction decoding step for the plurality of areas Ai, and performing inter-frame prediction decoding. .
[0030]
The sixth invention is different from the fifth invention in that a reference warping predictive decoding step is performed on n plurality of regions Ai (i = 1, 2,..., N), and a predicted image of the region B is A reference warping prediction that is obtained by using the motion vector and the number of horizontal pixels M and the number of vertical pixels N used in the reference warping prediction decoding step for one or more specific regions among the plurality of regions Ai and performs inter-frame prediction decoding A decoding step is performed.
[0031]
The operation of the present invention is as follows. According to the first invention and the fourth invention, a motion vector of the current area can be obtained by extrapolating a motion vector of another area.
[0032]
For example, in a macroblock A of 16 pixels in length and width, a predicted image is obtained in the reference warping prediction coding step, and in a macroblock B adjacent to the right thereof, a predicted image is obtained in the reference warping prediction coding step. Become
[0033]
FIG. 1 shows an example of a motion vector position used in the reference warping prediction encoding step. It is assumed that four motion vectors of (x1, y1), (x2, y2), (x3, y3), and (x4, y4) are given as the motion vectors of the macroblock A. (X1, y1) is the motion vector of the upper left pixel, (x2, y2) is the motion vector at the position shifted one pixel to the right from the upper right pixel, and (x3, y3) is one pixel from the lower left pixel. It is assumed that the motion vector is a motion vector at a position moved downward, and (x4, y4) is a motion vector at a position moved one pixel to the right and one pixel below the lower right pixel. The positional relationship between (x1, y1), (x2, y2), (x3, y3) and (x4, y4) is as shown in FIG.
[0034]
In the macroblock A, a motion vector of each pixel is calculated from these motion vectors, the number of vertical pixels 16 and the number of horizontal pixels 16 using the equation (3) in the reference warping prediction coding step. Here, since m = 4 and n = 4 in the equation (3), the equation (3) can be calculated by using an arithmetic unit having a 16-bit register.
[0035]
Next, in the macroblock B on the right side of the macroblock A, in the reference warping prediction coding step, each pixel of each pixel is obtained from the above motion vector, the number of vertical pixels 16 and the number of horizontal pixels 16 using Expression (3). Calculate the motion vector. Here, in Equation (3), the values of p and q are set to values measured from the upper left pixel position of the macroblock A. In the equation (3), when the horizontal position of the pixel for calculating the motion vector is located to the left of the pixel position of the warping motion vector stored in the motion vector storage unit, the equation (3) is used. Is set to a negative value with the pixel position of the warping motion vector as the origin.
[0036]
Here, the area is a macroblock of 16 pixels in length and width, but a block smaller than this may be used as a unit. The smaller the size of the block, the smaller the number of bits to be shifted, and the calculation can be performed with a register having a smaller number of bits.
[0037]
Since the values of p and q in equation (3) are set to values measured from the upper left pixel position of macroblock A, when the number of pixels between the current macroblock and macroblock A increases, equation (3) The numerical value of the object to be shifted also increases. Therefore, in order to perform calculation using a register having a preset number of bits, the reference warping prediction encoding step is executed at an appropriate frequency, and p and q in the calculation of equation (3) in the reference warping prediction encoding step are calculated. You need to set a small value.
[0038]
Further, four motion vectors of (x1, y1), (x2, y2), (x3, y3), (x4, y4) for warping motion compensation as the motion vectors of the macroblock A, and the In some cases, one motion vector (x5, y5) indicating the correction value is given. In this case, in the reference warping predictive coding step for obtaining the motion vector of the macroblock B, only the warping motion vectors (x1, y1), (x2, y2), (x3, y3), and (x4, y4). use.
[0039]
Also, as the motion vector for warping, instead of (x1, y1), (x2, y2), (x3, y3), (x4, y4), a global motion vector (( vx1, vy1), (vx2, vy2), (vx3, vy3), (vx4, vy4)). According to this, the motion vector code amount can be reduced by setting (vx2, vy2), (vx3, vy3), or (vx4, vy4) to 0 in advance.
[0040]
As a method of obtaining the four motion vectors of the macro block A, a method of obtaining a global motion vector of the entire screen in advance and obtaining the global motion vector using Expression (1) or Expression (3) is also suitable.
[0041]
As described above, encoded data in which the number of bits shifted on the decoding side is reduced can be created by the moving picture encoding method and decoded by the moving picture decoding method.
[0042]
According to the second invention and the fifth invention, the reference warping prediction coding step is performed by averaging the extrapolated values of the motion vectors of a plurality of regions with respect to the first invention and the fourth invention. It is possible to obtain the motion vector to be obtained.
[0043]
For example, in the macroblock A of 16 pixels in the vertical and horizontal directions at the left end of the screen, a predicted image is obtained in the reference warping prediction encoding step, and in the macroblock B of the same column on the right end of the screen, the predicted image is obtained in the reference warping prediction encoding step. In the lower row, the macroblock C located at the middle in the horizontal direction of the screen is encoded as follows when a predicted image is obtained in the reference warping prediction encoding step.
[0044]
As in the first embodiment, in the macroblock A and the macroblock B, a predicted image is created and encoded in the reference warping prediction encoding step. The motion vector used at the time of encoding each macroblock is stored. Subsequently, in the macroblock C, first, a motion vector of each pixel is calculated from the motion vector of the macroblock A, the number of vertical pixels 16 and the number of horizontal pixels 16 using Expression (3). This is defined as (mva_x, mva_y). Then, a motion vector of each pixel is calculated from the motion vector of the macro block B, the number of vertical pixels 16 and the number of horizontal pixels 16 using Expression (3). This is defined as (mvb_x, mvb_y). Then, from (mva_x, mva_y) and (mvb_x, mvb_y), a final motion vector (mvt_x, mvt_y) is obtained according to equation (6).
[0045]
(Equation 6)
[0046]
In this way, by averaging the motion vectors extrapolated from a plurality of macroblocks at distant positions, the motion vector of the macroblock at the intermediate position can be obtained. According to this method, when the prediction efficiency of a motion vector obtained by extrapolating from one macroblock is not good, an average value from a plurality of macroblocks can be used, so that the prediction efficiency can be improved. .
[0047]
According to the third and sixth aspects of the present invention, a motion vector to be used is selected when averaging the extrapolated values of the motion vectors of a plurality of regions, as compared with the second and fifth aspects of the invention. be able to.
[0048]
For example, in the macroblock A of 16 pixels in the vertical and horizontal directions at the left end of the screen, a predicted image is obtained in the reference warping prediction encoding step, and in the macroblock B of the same column on the right end of the screen, the predicted image is obtained in the reference warping prediction encoding step. In the lower column, the macroblock C located at the left end of the screen is encoded as follows when a predicted image is obtained in the reference warping prediction encoding step.
[0049]
As in the first embodiment, in the macroblock A and the macroblock B, a predicted image is created and encoded in the reference warping prediction encoding step. The motion vector used at the time of encoding each macroblock is stored.
[0050]
Subsequently, in the macroblock C, the distance between the macroblock C and the macroblock A and the distance between the macroblock C and the macroblock B are calculated, and the motion vector having the shorter distance is used in the reference warping prediction coding step. To use. The distance is calculated based on the number of pixels between the upper left pixels of the macro block. In this example, since the macroblock C is closer to the macroblock A, the motion vector of each pixel is calculated using the equation (3) from the motion vector of the macroblock A, the number of vertical pixels 16 and the number of horizontal pixels 16. Create a prediction image.
[0051]
In this way, it is possible to extrapolate the motion vector of the closer macroblock. According to this method, when the prediction efficiency of a motion vector obtained by extrapolating from a macroblock that is far away is not good, extrapolation is performed only from a macroblock that is closer, so that motion vectors from multiple macroblocks are averaged. Rather than improving the prediction efficiency.
[0052]
Here, motion vector selection information indicating whether macroblock C selects extrapolation from macroblock A, extrapolation from macroblock B, or an average of both is selected. The method of forming the surface is also suitable. This makes it possible to explicitly indicate to the decoding side which one to use, so that a motion vector with higher encoding efficiency can be selected.
[0053]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. It is assumed that whether the prediction image is to be performed by the reference warping prediction image generation unit, the reference warping prediction image generation unit, or the motion compensation based on only normal parallel movement is performed for each macroblock.
[0054]
[First Embodiment]
In the first embodiment, an operation example in the case where all the motion vectors stored in the motion vector storage unit are used when calculating the motion vector in the reference warping predicted image generation unit will be described. First, the image encoding device will be described.
[0055]
FIG. 2 shows an outline of an image encoding device according to the first embodiment of the present invention. An
[0056]
The warping motion search unit 102 once performs a global motion search for the entire screen, and then calculates a warping motion vector for the current macroblock to be used by the reference warping prediction image creation unit 103. The
[0057]
The prediction
[0058]
(Equation 7)
[0059]
The motion
[0060]
Under such a premise, the current frame is encoded as follows. First, the warping motion search unit 102 performs a global motion search on the entire screen, and obtains global motion vectors that assume motion vectors at four corners of the screen.
[0061]
Subsequently, each macro block is encoded as follows. First, the warping motion search unit 102, which describes the first macroblock, calculates a warping motion vector of the current macroblock from the global motion vector. The warping motion vector is the motion vector at the position shown in FIG. 1, and is obtained from the global motion vector according to equation (3).
[0062]
The reference warping predicted image creation unit 103 calculates a motion vector of each pixel in the macroblock from the warping motion vector, and creates a predicted image. The reference warping predicted
[0063]
The prediction
[0064]
The motion
[0065]
Next, the second and subsequent macroblocks will be described. The warping motion search unit 102 calculates a motion vector for warping of the current macroblock from the global motion vector. The reference warping predicted image creation unit 103 calculates a motion vector of each pixel in the macroblock from the warping motion vector, and creates a predicted image. When a motion vector for warping is stored in the motion
[0066]
The prediction
[0067]
The motion
[0068]
The above procedure is repeated for all macroblocks.
[0069]
Next, the decoding device will be described. FIG. 5 shows an outline of the image decoding apparatus according to the first embodiment of the present invention. The
[0070]
5 shows a procedure for decoding encoded data obtained by the
[0071]
The encoded data is decoded for each macroblock as follows. First, the encoding
(1) When the coding mode indicates motion compensation
The motion
(2) When the encoding mode indicates the reference warping prediction
The motion
(3) When the encoding mode indicates the reference warping prediction
The reference warping predicted
[0072]
After creating a predicted image as described above, the predicted
[0073]
It is also preferable that the warping motion vector is accumulated for a plurality of macroblocks, and the reference warping predicted
[0074]
As described above, according to the present embodiment, the warping motion vector of the current macroblock can be obtained by extrapolating the warping motion vector of another macroblock. Therefore, a numerical value in a numerical operation required for calculating a motion vector can be represented by a smaller number of bits as compared with the conventional global motion compensation.
[0075]
[Second embodiment]
In the second embodiment, an example in which a motion vector to be used is selected from the motion vectors stored in the motion vector storage unit when calculating a motion vector in the reference warping predicted image generation unit will be described.
[0076]
First, the image encoding device will be described. FIG. 6 shows an outline of an image encoding device according to the second embodiment of the present invention. In the second embodiment, in addition to the device configuration in the first embodiment, as a motion vector used in the reference warping prediction
[0077]
The operations of the warping
[0078]
The prediction
[0079]
The motion vector selection
[0080]
(Equation 8)
Under such a premise, the current frame is encoded as follows. First, the warping
[0081]
Subsequently, encoding is performed for each macroblock as follows. The first macro block is the same as in the first embodiment. The second and subsequent macro blocks will be described.
[0082]
The warping
[0083]
The prediction
[0084]
Next, the reference warping predicted
[0085]
The prediction
[0086]
The motion
[0087]
The above procedure is repeated for all macroblocks.
[0088]
Next, the decoding device will be described. FIG. 8 shows an outline of an image encoding device according to the second embodiment of the present invention. In the second embodiment, in addition to the device configuration in the first embodiment, as a motion vector used in the reference warping prediction
[0089]
The encoded data encoded by the
(1) When the coding mode indicates motion compensation
The motion
(2) When the encoding mode indicates the reference warping prediction
The motion
(3) When the encoding mode indicates the reference warping prediction
The motion vector selection
[0090]
After creating a prediction image as described above, the prediction
[0091]
It should be noted that the method of selecting a warping motion vector from the motion
[0092]
As described above, according to the present embodiment, when extrapolating a warping motion vector of another macroblock to obtain a warping motion vector of the current macroblock, a warping motion vector with higher encoding efficiency is selected. can do. Therefore, the coding efficiency can be improved as compared with the case where the warping motion vector calculated immediately before is used.
[0093]
In the first and second embodiments, the motion vector is calculated for each pixel at the time of the reference warping prediction and the reference warping prediction. However, the motion vector may be calculated for each block of 8 pixels vertically and horizontally. . In this case, the amount of calculation processing for calculating the motion vector can be reduced. Further, at the time of the reference warping prediction and the reference warping prediction, two or three warping motion vectors may be used instead of four warping motion vectors. In this case, in addition to (vx1, vy1) calculated by Expression (2), (vx2, vy2) or (vx3, vy3) or (vx4, vy4) is used as the warping motion vector. Calculate the motion vector of the pixel. Further, at the time of the reference warping prediction, one more motion vector may be used as the warping motion vector. In this case, the reference warping prediction image creating unit uses Expression (5) instead of Expression (3). The reference warping prediction image creation unit uses equation (3).
[0094]
Further, in the motion compensator in the first and second embodiments, it is preferable to perform not only translation but also rotation and enlargement. For example, in the document “Ishikawa et al.,“ 3D / 2D Hybrid Coding of Video Using Multi-Parameter Motion Compensation ”, IEICE Technical Report IE 2001-76, pp. 15-22, 2001”, the rotation angle is defined by the rotation angle. A method of creating a predicted image based on information indicating the enlargement and encoding the rotation angle information, or a method of creating a predicted image based on information indicating the enlargement ratio for the enlargement motion and encoding the enlargement ratio information is used.
[0095]
The above-described moving image encoding and decoding processing can be realized by a computer and a software program, and the program can be recorded on a computer-readable recording medium or can be provided through a network.
[0096]
The effect of the present invention will be described in comparison with the related art. In the related art, the required number of bits changes depending on the number of pixels in the screen as shown in Expression (3). For example, in the case of a screen having 352 pixels vertically and 288 pixels horizontally, m and n in the equation (3) are m = 9 and n = 9, and when the motion vector is represented by 8 bits, the bit shift target is obtained. Requires at least 26 bits. That is, a register of 26 bits or more is required.
[0097]
When a method of extrapolating a motion vector of a macroblock of 16 pixels in length and width is applied, the number of necessary bits increases according to a distance from a pixel position serving as a base point of extrapolation. The mechanism for encoding a motion vector has a problem in that the number of required bits of a register increases (see Japanese Patent Application Laid-Open No. 2001-352548).
[0098]
In the method according to the present invention, for example, if a warping motion vector is calculated in units of a macroblock of 16 pixels vertically and horizontally, m and n in Expression (3) are m = 4 and n = 4, and the motion vector is represented by 8 bits. In this case, 16 bits are required as a bit shift target. That is, only a 16-bit shift register is required. Even in the conventional method, since a screen having the minimum macroblock size is required, the method according to the present invention can always calculate with a smaller number of bits than the conventional method.
[0099]
Further, as compared with the method disclosed in
[0100]
【The invention's effect】
As described above, according to the present invention, a warping motion vector of the current area can be obtained by extrapolating a warping motion vector of another area. Therefore, as compared with the conventional global motion compensation, a numerical value in a numerical operation required for calculating a motion vector can be expressed with a smaller number of bits, and the calculation processing load can be reduced.
[0101]
Specifically, for example, when a motion vector is represented by 8 bits, in the related art, at least a 26-bit register is required, but by using the present invention, only a 16-bit shift register is used. The motion vector calculation can be realized.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a motion vector position used in a reference warping prediction encoding step.
FIG. 2 is a configuration diagram of an image encoding device according to the first embodiment.
FIG. 3 is a diagram illustrating an example of a variable length code of a motion vector.
FIG. 4 is a diagram illustrating an example of a variable length code in an encoding mode.
FIG. 5 is a configuration diagram of an image decoding device according to the first embodiment.
FIG. 6 is a configuration diagram of an image encoding device according to a second embodiment.
FIG. 7 is a diagram illustrating an example of a variable length code of motion vector selection information.
FIG. 8 is a configuration diagram of an image decoding device according to a second embodiment.
FIG. 9 is a diagram illustrating an example of calculating a motion vector from a global motion vector.
FIG. 10 is a diagram illustrating an example of calculating a motion vector from a global motion vector at a power of 2 position.
[Explanation of symbols]
100,300 image coding device
101, 301 Image input unit
102,302 Warping motion search unit
103,303 Reference warping prediction image creation unit
104, 304 Reference warping prediction image creation unit
105, 305 motion search unit
106,306 Motion compensation unit
107,307 prediction method determination unit
108,308 Motion vector storage unit
109,309 Motion vector coding unit
110,310 prediction error encoding unit
111, 311 coding mode coding unit
112, 312 decoding unit
113,313 Reference image memory
314 Motion vector selector
315 Motion vector selection information encoding unit
200,400 image decoding device
201, 401 motion vector decoding unit
202, 402 motion vector storage unit
203,403 Encoding mode decoding unit
204,404 motion compensator
205,405 Reference warping prediction image creation unit
206, 406 Reference warping prediction image creation unit
207, 407 Prediction error decoding unit
208, 408 Reference image memory
409 Motion vector selection information decoding unit
Claims (16)
領域Aの予測画像を,2つ以上の動きベクトルと領域Aの横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う基準ワーピング予測符号化ステップと,
前記領域Aとは異なる領域Bの予測画像を,前記領域Aの動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップとを有する
ことを特徴とする画像符号化方法。In an image encoding method in which an input image is divided into rectangular regions and encoded using an inter-frame prediction encoding method,
A reference warping prediction coding step of obtaining a predicted image of the region A using two or more motion vectors, the number M of horizontal pixels and the number N of vertical pixels of the region A, and performing inter-frame predictive coding;
A reference warping prediction encoding step of obtaining a predicted image of an area B different from the area A using the motion vector of the area A, the number M of horizontal pixels, and the number N of vertical pixels, and performing inter-frame prediction encoding. An image coding method characterized by the above-mentioned.
n個の複数の領域Ai(i=1,2,…,n)の各予測画像を,2つ以上の動きベクトルと領域Aiの横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う基準ワーピング予測符号化ステップと,
前記領域Aiとは異なる領域Bの予測画像を,前記複数の領域Aiに対する基準ワーピング予測符号化ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップとを有する
ことを待徴とする画像符号化方法。In an image encoding method in which an input image is divided into rectangular regions and encoded using an inter-frame prediction encoding method,
The predicted images of the n regions Ai (i = 1, 2,..., n) are obtained using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the region Ai. A reference warping predictive coding step for performing predictive coding;
A prediction image of a region B different from the region Ai is obtained using the motion vector, the number of horizontal pixels M, and the number of vertical pixels N used in the reference warping prediction encoding step for the plurality of regions Ai, and the inter-frame prediction encoding is performed. And a reference warping predictive coding step for performing the following.
n個の複数の領域Ai(i=1,2,…,n)の各予測画像を,2つ以上の動きベクトルと領域Aiの横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う基準ワーピング予測符号化ステップと,
前記領域Aiとは異なる領域Bの予測画像を,前記複数の領域Aiのうち,1つ以上の特定の領域に対する基準ワーピング予測符号化ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測符号化ステップとを有する
ことを特徴とする画像符号化方法。In an image encoding method in which an input image is divided into rectangular regions and encoded using an inter-frame prediction encoding method,
The predicted images of the n regions Ai (i = 1, 2,..., n) are obtained using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the region Ai. A reference warping predictive coding step for performing predictive coding;
A predicted image of an area B different from the area Ai is obtained by using the motion vector, the number of horizontal pixels M, and the number of vertical pixels N used in the reference warping prediction coding step for one or more specific areas among the plurality of areas Ai. And a reference warping predictive coding step for performing inter-frame predictive coding using the following method.
領域Aの予測画像を,2つ以上の動きベクトルと領域Aの横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う基準ワーピング予測復号ステップと,
前記領域Aとは異なる領域Bの予測画像を,前記領域Aの動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測符号化を行う参照ワーピング予測復号ステップとを有する
ことを特徴とする画像復号方法。In an image decoding method for decoding coded data for each area obtained by dividing an image of a current frame using an inter-frame prediction coding method,
A reference warping prediction decoding step of obtaining a predicted image of the area A using two or more motion vectors and the number of horizontal pixels M and the number of vertical pixels N of the area A and performing inter-frame predictive decoding;
A reference warping prediction decoding step of obtaining a predicted image of a region B different from the region A using the motion vector of the region A, the number of horizontal pixels M and the number of vertical pixels N, and performing inter-frame predictive coding. An image decoding method characterized by the following.
n個の複数の領域Ai(i=1,2,…,n)の各予測画像を,2つ以上の動きベクトルと領域Aiの横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う基準ワーピング予測復号ステップと,
前記領域Aとは異なる領域Bの予測画像を,前記複数の領域Aiに対する基準ワーピング予測復号ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う参照ワーピング予測復号ステップとを有する
ことを特徴とする画像復号方法。In an image decoding method for decoding coded data for each area obtained by dividing an image of a current frame using an inter-frame prediction coding method,
The predicted images of the n regions Ai (i = 1, 2,..., n) are obtained using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the region Ai. A reference warping predictive decoding step for performing predictive decoding;
A predicted image of a region B different from the region A is obtained using the motion vector, the number of horizontal pixels M and the number of vertical pixels N used in the reference warping prediction decoding step for the plurality of regions Ai, and inter-frame prediction decoding is performed. A reference warping predictive decoding step.
n個の複数の領域Ai(i=1,2,…,n)の各予測画像を,2つ以上の動きベクトルと領域Aiの横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う基準ワーピング予測復号ステップと,
前記領域Aとは異なる領域Bの予測画像を,前記複数の領域Aiのうち,1つ以上の特定の領域に対する基準ワーピング予測復号ステップで使用した動きベクトルと横画素数Mと縦画素数Nを使って求め,フレーム間予測復号を行う参照ワーピング予測復号ステップとを有する
ことを特徴とする画像復号方法。In an image decoding method for decoding coded data for each area obtained by dividing an image of a current frame using an inter-frame prediction coding method,
The predicted images of the n regions Ai (i = 1, 2,..., n) are obtained using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the region Ai. A reference warping predictive decoding step for performing predictive decoding;
A predicted image of an area B different from the area A is obtained by calculating a motion vector, a horizontal pixel number M, and a vertical pixel number N used in a reference warping prediction decoding step for one or more specific areas of the plurality of areas Ai. A reference warping predictive decoding step of performing inter-frame predictive decoding using the reference decoding method.
現フレームの画像を入力する画像入力部と,
領域の2つ以上の動きベクトルを探索するワーピング動き探索部と,
領域の予測画像を,2つ以上の動きベクトルと領域の横画素数Mと縦画素数Nを使って求める基準ワーピング予測画像作成部と,
前記基準ワーピング予測画像作成部で使用した動きベクトルを蓄積する動きベクトル蓄積部と,
領域の予測画像を,前記動きベクトル蓄積部に蓄積された動きベクトルと領域の横画素数Mと縦画素数Nを使って求める参照ワーピング予測画像作成部と,
予測画像を使ってフレーム間予測符号化を行う予測誤差符号化部と,
前記基準ワーピング予測画像作成部で作成した予測画像を使うのか前記参照ワーピング予測画像作成部で作成した予測画像を使うのかを示す符号化モードを符号化する符号化モード符号化部と,
前記基準ワーピング予測画像作成部で使用した動きベクトルを符号化する動きベクトル符号化部と,
予測誤差符号化データを復号する復号部と,
復号画像を蓄積する参照画像メモリとを備える
ことを特徴とする画像符号化装置。In an image encoding device that divides an input image into rectangular regions and encodes using an inter-frame predictive encoding method,
An image input unit for inputting an image of the current frame;
A warping motion search unit for searching for two or more motion vectors of the region;
A reference warping predicted image creating unit for obtaining a predicted image of the area using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the area;
A motion vector storage unit that stores the motion vector used in the reference warping prediction image generation unit;
A reference warping predicted image creating unit for obtaining a predicted image of the area using the motion vector stored in the motion vector storage unit and the number M of horizontal pixels and the number N of vertical pixels of the area;
A prediction error encoding unit that performs inter-frame prediction encoding using the predicted image;
An encoding mode encoding unit that encodes an encoding mode indicating whether to use the prediction image created by the reference warping prediction image creation unit or to use the prediction image created by the reference warping prediction image creation unit;
A motion vector encoding unit that encodes the motion vector used in the reference warping prediction image creation unit;
A decoding unit for decoding the prediction error encoded data,
An image encoding device, comprising: a reference image memory for storing a decoded image.
前記動きベクトル蓄積部に複数領域分の動きベクトルを蓄積しておき,
前記参照ワーピング予測画像作成部が,前記動きベクトル蓄積部に蓄積された複数の動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求める
ことを特徴とする画像符号化装置。The image encoding device according to claim 7,
The motion vectors for a plurality of areas are stored in the motion vector storage unit,
The image, wherein the reference warping predicted image creating unit obtains a predicted image of an area using the plurality of motion vectors stored in the motion vector storage unit and the number M of horizontal pixels and the number N of vertical pixels of the area. Encoding device.
前記参照ワーピング予測画像作成部で使用する動きベクトルとして,前記動きベクトル蓄積部に蓄積された複数の動きベクトルのうち,1つ以上の特定の領域の動きベクトルを選択する動きベクトル選択部と,
前記動きベクトル選択部で選択した動きベクトルを指定する動きベクトル選択情報を符号化する動きベクトル選択情報符号化部とを備え,
前記参照ワーピング予測画像作成部が,前記動きベクトル選択部で選択した動きベクトルと,領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求める
ことを特徴とする画像符号化装置。The image encoding device according to claim 8,
A motion vector selection unit that selects a motion vector of one or more specific regions among a plurality of motion vectors stored in the motion vector storage unit as a motion vector used in the reference warping prediction image generation unit;
A motion vector selection information encoding unit that encodes motion vector selection information that specifies the motion vector selected by the motion vector selection unit;
An image coding method, wherein the reference warping predicted image creation section obtains a predicted image of an area using the motion vector selected by the motion vector selection section and the number M of horizontal pixels and the number N of vertical pixels of the area. apparatus.
動きベクトルを復号する動きベクトル復号部と,
予測誤差符号化データを復号し復号画像を作成する予測誤差復号部と,
2つ以上の動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求め,フレーム間予測復号を行う基準ワーピング予測復号部と,
前記基準ワーピング予測復号部で使用した動きベクトルを蓄積する動きベクトル蓄積部と,
前記動きベクトル蓄積部に蓄積された動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求め,フレーム間予測復号を行う参照ワーピング予測復号部と,
前記基準ワーピング予測復号部で作成する復号画像を出力するのか前記参照ワーピング予測復号部で作成する復号画像を出力するのかを示す符号化モードを復号する符号化モード復号部と,
復号画像を蓄積する参照画像メモリとを備える
ことを特徴とする画像復号装置。An image decoding apparatus that decodes encoded data of each region obtained by dividing an image of a current frame using an inter-frame prediction encoding method,
A motion vector decoding unit for decoding a motion vector,
A prediction error decoding unit that decodes the prediction error encoded data and creates a decoded image;
A reference warping predictive decoding unit that obtains a predicted image of the region using two or more motion vectors and the number M of horizontal pixels and the number N of vertical pixels of the region, and performs inter-frame predictive decoding;
A motion vector storage unit that stores the motion vector used in the reference warping prediction decoding unit;
A reference warping prediction decoding unit that obtains a predicted image of the region using the motion vectors stored in the motion vector storage unit and the number M of horizontal pixels and the number N of vertical pixels of the region and performs inter-frame prediction decoding;
An encoding mode decoding unit for decoding an encoding mode indicating whether to output a decoded image created by the reference warping prediction decoding unit or to output a decoded image created by the reference warping prediction decoding unit;
An image decoding apparatus, comprising: a reference image memory for storing a decoded image.
前記動きベクトル蓄積部に複数領域分の動きベクトルを蓄積しておき,
前記参照ワーピング予測復号部が,前記動きベクトル蓄積部に蓄積された複数の動きベクトルと領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求め,フレーム間予測復号を行う
ことを特徴とする画像復号装置。The image decoding device according to claim 10,
The motion vectors for a plurality of areas are stored in the motion vector storage unit,
The reference warping prediction decoding unit obtains a predicted image of the area using the plurality of motion vectors stored in the motion vector storage unit and the number M of horizontal pixels and the number N of vertical pixels of the area, and performs inter-frame predictive decoding. An image decoding device characterized by the above-mentioned.
前記参照ワーピング予測復号部で使用する動きベクトルとして,前記動きベクトル蓄積部に蓄積された複数の動きベクトルのうち,どの領域の動きベクトルを選択するのかを示す動きベクトル選択情報を復号する動きベクトル選択情報復号部を備え,
前記参照ワーピング予測復号部が,動きベクトル選択情報で指定された動きベクトルと,領域の横画素数Mと縦画素数Nを使って,領域の予測画像を求め,フレーム間予測復号を行う
ことを特徴とする画像復号装置。The image decoding device according to claim 11,
A motion vector selection unit that decodes motion vector selection information indicating which region a motion vector is to be selected from among a plurality of motion vectors stored in the motion vector storage unit as a motion vector used in the reference warping prediction decoding unit. Equipped with an information decoding unit,
The reference warping predictive decoding unit obtains a predicted image of an area using the motion vector specified by the motion vector selection information and the number M of horizontal pixels and the number N of vertical pixels of the area, and performs inter-frame predictive decoding. An image decoding device characterized by the following.
ことを特徴とする画像符号化プログラムの記録媒体。A recording medium for storing an image encoding program, wherein a program for causing a computer to execute the image encoding method according to claim 1 is recorded.
ことを特徴とする画像復号プログラムの記録媒体。7. A recording medium for an image decoding program, wherein a program for causing a computer to execute the image decoding method according to claim 4, 5 or 6 is recorded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002338867A JP4015537B2 (en) | 2002-11-22 | 2002-11-22 | Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program, and recording medium recording these programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002338867A JP4015537B2 (en) | 2002-11-22 | 2002-11-22 | Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program, and recording medium recording these programs |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007197059A Division JP2007312425A (en) | 2007-07-30 | 2007-07-30 | Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus, image encoding program, image decoding program and recording medium with the programs recorded thereon |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004173130A true JP2004173130A (en) | 2004-06-17 |
JP4015537B2 JP4015537B2 (en) | 2007-11-28 |
Family
ID=32701960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002338867A Expired - Fee Related JP4015537B2 (en) | 2002-11-22 | 2002-11-22 | Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program, and recording medium recording these programs |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4015537B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009200985A (en) * | 2008-02-25 | 2009-09-03 | Hitachi Ltd | Video processing apparatus |
US8340185B2 (en) | 2006-06-27 | 2012-12-25 | Marvell World Trade Ltd. | Systems and methods for a motion compensated picture rate converter |
-
2002
- 2002-11-22 JP JP2002338867A patent/JP4015537B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8340185B2 (en) | 2006-06-27 | 2012-12-25 | Marvell World Trade Ltd. | Systems and methods for a motion compensated picture rate converter |
JP2009200985A (en) * | 2008-02-25 | 2009-09-03 | Hitachi Ltd | Video processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP4015537B2 (en) | 2007-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111385569B (en) | Coding and decoding method and equipment thereof | |
JP5992070B2 (en) | Image decoding apparatus, image decoding method, image encoding apparatus, image encoding method, and data structure of encoded data | |
JP6267287B2 (en) | Moving picture coding apparatus, moving picture decoding apparatus, moving picture coding method, moving picture coding method, and program | |
JP5310614B2 (en) | Moving picture coding apparatus, moving picture coding method, moving picture decoding apparatus, and moving picture decoding method | |
KR20180019688A (en) | Picture prediction method and picture prediction apparatus | |
JP5115498B2 (en) | Image coding apparatus, image coding control method, and program | |
CN101326550A (en) | Motion estimation using prediction guided decimated search | |
JP2012138932A (en) | Moving image encoder | |
JP2008048200A (en) | Inter-frame pridiction processing apparatus, image prediction method, inter-frame encoder and image decoder | |
JPH09172644A (en) | Moving image coding/decoding device using moving compensation inter-frame prediction system employing affine transformation | |
KR100994773B1 (en) | Method and Apparatus for generating motion vector in hierarchical motion estimation | |
CN112292861B (en) | Sub-pixel accurate correction method based on error surface for decoding end motion vector correction | |
JP2004328633A (en) | Motion predicting and compensating apparatus and method thereof | |
CN113810687A (en) | Encoding and decoding method, device and equipment | |
CN110719489B (en) | Motion vector correction method, motion vector prediction method, motion vector encoding device, and storage device | |
KR101380460B1 (en) | Image processing apparatus and image processing method | |
JPH1093975A (en) | Motion compensation inter-frame predicting method in moving image encoder | |
JP4257789B2 (en) | Video encoding device | |
CN112004091B (en) | Inter-frame prediction method and related device thereof | |
JP2007312425A (en) | Image encoding method, image decoding method, image encoding apparatus, image decoding apparatus, image encoding program, image decoding program and recording medium with the programs recorded thereon | |
JP4015532B2 (en) | Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program, and recording medium recording the program | |
JP4015537B2 (en) | Image encoding method, image decoding method, image encoding device, image decoding device, image encoding program, image decoding program, and recording medium recording these programs | |
WO2021013153A1 (en) | Encoding and decoding method and device and apparatus therefor | |
US10448047B2 (en) | Encoder circuit and encoding method | |
JP2007181226A (en) | Moving image decoding apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070730 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20070730 |
|
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: 20070911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070913 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100921 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110921 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120921 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130921 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |