JP3764488B2 - 画像符号化及び復号化方法及び装置 - Google Patents
画像符号化及び復号化方法及び装置 Download PDFInfo
- Publication number
- JP3764488B2 JP3764488B2 JP50205299A JP50205299A JP3764488B2 JP 3764488 B2 JP3764488 B2 JP 3764488B2 JP 50205299 A JP50205299 A JP 50205299A JP 50205299 A JP50205299 A JP 50205299A JP 3764488 B2 JP3764488 B2 JP 3764488B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- inter
- motion vector
- frame prediction
- coordinates
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/527—Global motion vector estimation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/223—Analysis of motion using block-matching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Description
本発明は、画像符号化及び復号化方法及び装置、さらに詳しく言えば、動画像を含む画像信号の符号化、復号化の処理において、代表点の動きベクトルに対して内・外挿処理を行うことにより画像内の画素の動きベクトルを計算するフレーム間予測画像の合成処理を含む画像符号化及び復号化方法及び装置に関するものである。
発明の背景
動画像の高能率符号化において、異なる時間に発生したフレーム間の類似性を活用するフレーム間予測(動き補償)は情報圧縮に大きな効果を示すことが知られている。現在の画像符号化技術の主流となっている動き補償方式は、動画像符号化方式の国際標準であるH.261、MPEG1、MPEG2に採用されているブロックマッチング方式である。この方式では、符号化しようとする画像を多数のブロックに分割し、ブロックごとにその動きベクトルを求める。
ブロックマッチングは現在最も広く利用されている動き補償方式であるが、画像全体が拡大・縮小・回転している場合には、全てのブロックに対して動きベクトルを伝送しなければならず、符号化効率が悪くなる問題がある。この問題に対し、画像全体の動きベクトル場を少ないパラメータを用いて表現するグローバル動き補償(例えば、M.Hotter,"Differential estimation of the global motion parameters zoom and pan", Signal Processing, vol. 16, no. 3, pp. 249-265, Mar. 1989)が提案されている。これは、画像内の画素(x,y)の動きベクトル(ug(x,y),vg(x,y))を、
の形式で表し、この動きベクトルを利用して動き補償を行う方式である。ここで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)は
となる。このことはa0〜a5を伝送する代わりにua、va、ub、vb、uc、vcを伝送しても同様の機能が実現できることを意味する。これと同じように、4個の代表点(0,0)、(r,0)、(0,s)、(r,s)の動きベクトルの水平・垂直成分(ua,va)、(ub,vb)、(uc,vc)、(ud,vd)を用いて式(2)は、
と書き換えることができる。従って、b0〜b7を伝送する代わりにua、va、ub、vb、uc、vc、ud、vdを伝送しても同様の機能が実現できる。この様子を第1図に示す。現フレームの原画像102と参照画像101の間でグローバル動き補償が行われたとして、動きパラメータの代わりに代表点103、104、105、106の動きベクトル107、108、109、110(このとき、動きベクトルは現フレームの原画像の点を出発点として、参照画像内の対応する点を終点とするものとして定義する)を伝送しても良い。本明細書では式(1)を用いる方式を線形内・外挿に基づくグローバル動き補償、式(2)を用いる方式を共1次内・外挿に基づくグローバル動き補償とよぶ。
このグローバル動き補償の処理を、画像内のより小さい領域に適用するのがワーピング予測である。第2図に共一次内・外挿を用いるワーピング予測の例を示す。この図は、参照画像201を用いて現フレームの原画像202の予測画像を合成する処理を示したものである。まず現フレームは複数の多角形のパッチに分割され、パッチ分割された画像209となる。パッチの頂点は格子点とよばれ、各格子点は複数のパッチに共有される。例えば、パッチ210は、格子点211、212、213、214から構成され、これらの格子点は他のパッチの頂点を兼ねている。このように画像を複数のパッチに分割した後に、動き推定が行なわれる。ここに示す例では、動き推定は各格子点を対象として参照画像との間で行なわれる。この結果、動き推定後の参照画像203で各パッチは変形されたものとなる。例えば、パッチ210は、変形されたパッチ204に対応している。これは、動き推定の結果、格子点205、206、207、208がそれぞれ211、212、213、214に対応していると推定されたためである。このようにして格子点の動きベクトルを求め、共1次内挿によってパッチ内の各画素の動きベクトルを計算することにより、フレーム間予測画像が合成される。このワーピング予測の処理は基本的に第1図に示したグローバル動き補償と同じ処理であり、「画像の隅の点の動きベクトル」が「格子点の動きベクトル」に変えられているだけである。また、長方形の代わりに3角形のパッチを使用すれば、線形内・外挿によるワーピング予測も実現することができる。
なお、画像全体の動きベクトル場を少ないパラメータを用いて表現するグローバル動き補償の処理を簡易にした符号化及び復号方法に関して本願出願人による発明「画像符号化方法および復号化方法」(特願平8-60572号)及び「フレーム間予測画像の合成方法」(特願平8-249601号)がある。
上述のグローバル動き補償やワーピング予測を導入することにより、画像の動きを少ないパラメータを用いて正確に表現することが可能となり、より高い情報圧縮率が実現できる。しかし、その一方で符号化及び復号化における処理量は従来の方式と比較して増加する。特に式(3)及び式(4)の除算は、処理を複雑にする大きな要因となってしまう。すなわち、グローバル動き補償やワーピング予測では、予測画像の合成のための処理量が多くなる問題が発生する。
発明の開示
発明の目的は、これらの動き補償方式における除算の処理をビット数の少ないレジスタを用いた2進数のシフト演算に置き換えることにより、演算量を減少させることにある。
上記目的を達成するため、本発明は、グローバル動き補償やワーピング予測によってフレーム間予測画像の合成処理を行う画像符号化及び復号化において、空間的な間隔が特徴を持つ複数の代表点の動きベクトルに対し、2段階の内・外挿入処理を行うことにより動きベクトルを求める。さらに詳しく言えば、フレーム間予測画像の合成処理において、
画素のサンプリング間隔を水平、垂直方向共に1として、サンプリング点が座標の水平、垂直成分が、共に整数にwを加えた数である点の上に存在している画像を対象として(ただし、w=wn/wd、かつwnは負ではない整数、かつwdは2のhw乗、かつhwは負ではない整数、かつwn<wd)、4個の代表点における動きベクトルに対し、共1次内・外挿を行うことによって画素の動きベクトルを計算する場合に、座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に(i、j、p、qは整数)に代表点が存在し、かつ代表点の動きベクトルの水平・垂直成分が1/kの整数倍の値をとり(ただし、kは2のhk乗、かつhkは負ではない整数)、かつ座標(x+w,y+w)に位置する画素の動きベクトルを求めるときに、座標(i,j)と(i,j+q)[又は(i+p,j)]に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標(i,y+w)[又は(x+w,j)]に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として(ただし、zは2のhz乗、かつhzは負ではない整数)求め、さらに座標(i+p,j)[又は(i,j+q)]と(i+p,j+q)に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標(i+p,y+w)[又は(x+w,j+q)]に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として求めた後に、(i,y+w)[又は(x+w,j)]と(i+p,y+w)[又は(x+w,j+p)]に位置する上記2個の動きベクトルに対して線形内・外挿を行うことにより、座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれ1/mの整数倍をとる数値として(ただし、mは2のhm乗、かつhmは負ではない整数)求める。
本発明は、代表点の座標を巧みに選択することによって除算処理をシフト演算で実現できるようにし、さらにシフト演算においてシフトされるビット数を少なくすることにより、ビット数の少ないレジスタによって上記動き補償方式の演算が実現できる。
【図面の簡単な説明】
第1図は、代表点の動きベクトルを伝送するグローバル動き補償の例を示した図である。
第2図は、ワーピング予測の処理例を示した図である。
第3図は、高速な処理を行うための代表点の配置の例を示した図である。
第4図は、本発明のソフトウェア画像符号化装置の構成例を示した図である。
第5図は、本発明のソフトウェア画像復号化装置の構成例を示した図である。
第6図は、本発明による画像符号化装置の構成例を示した図である。
第7図は、本発明による画像復号化装置の構成例を示した図である。
第8図は、第6図の動き補償処理部616の構成例を示した図である。
第9図は、第6図の動き補償処理部616の他の構成例を示した図である。
第10図は、第7図の予測画像合成部711の構成例を示した図である。
第11図は、第9図の予測画像合成部1103の構成例を示した図である。
第12図は、グローバル動き補償予測画像合成部の構成例を示した図である。
第13図は、ソフトウェア画像符号化装置における処理のフローチャートの例を示した図である。
第14図は、ソフトウェア画像符号化装置における動き補償処理のフローチャートの例を示した図である。
第15図は、ソフトウェア画像復号化装置における処理のフローチャートの例を示した図である。
第16図は、ソフトウェア画像復号化装置における予測画像合成処理のフローチャートの例を示した図である
第17図は、2段階の処理によりグローバル動き補償予測画像を合成する画像符号化・復号化を使用する装置の具体例を示した図である。
発明を実施するための最良の形態
本発明の理解を容易にするため、グローバル動き補償及びワーピング予測における演算の高速化方法に関する本出願人が先に出願した発明(特願平08-060572及び特願平08-249601)を説明する。また、以下では本発明をグローバル動き補償に適用した場合に関して説明するが、本発明はグローバル動き補償と同様の処理を行うワーピング予測にも応用することが可能である。
以下の説明では、画素のサンプリング間隔が水平・垂直方向共に1であるとして、座標の水平・垂直成分が共に整数にwを加えた値である点(ただし、w=wn/wd、かつwnは負ではない整数、かつwdは正の整数、かつwn<wd)に画素が存在しているとする。wはグローバル動き補償における代表点の座標と画素の座標の位相のずれを表しており、典型的な値としては0、1/2、1/4などが挙げられる。また、画像の水平方向と垂直方向の画素数はそれぞれrとsであり(ただし、rとsは正の整数)、かつ画像の画素は水平座標が0以上r未満、垂直座標が0以上s未満の範囲に存在しているとする。
線形内・外挿(アフィン変換)又は共1次内・外挿(共1次変換)を用いた動き補償を行う際には、画素ごとの動きベクトルに対して量子化を行うと、ミスマッチの防止や演算の簡略化などの効果を得ることができる(特願平06-193970)。以下では、画素の動きベクトルの水平成分と垂直成分が1/m(mは正の整数)の整数倍であるとする。また、「従来の技術」で説明した代表点の動きベクトルを用いるグローバル動き補償を行うと仮定し、各代表点の動きベクトルは1/k(kは正の整数)の整数倍であるとする。なお、本明細書では、「画素の動きベクトル」はグローバル動き補償を行う際に、実際に予測画像を合成するために用いる動きベクトルのことを指す。一方、「代表点の動きベクトル」は画素の動きベクトルを計算するために用いるパラメータを意味している。従って、量子化ステップサイズの違いなどが原因で、同じ座標上に存在していても画素の動きベクトルと代表点の動きベクトルが一致しない場合も起こり得る。
まず、共1次内・外挿を用いるグローバル動き補償について第3図を用いて説明する。この例では、第1図に示したように、代表点を画像301の隅に位置する点とはせず、(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に位置する点302、303、304、305として一般化している(i、j、p、qは整数)。このとき、点302、303、304、305は画像の内部に存在していても外部に存在していても良い。代表点の動きベクトルの水平・垂直成分をk倍したものをそれぞれ(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)とすると(u0、v0、u1、v1、u2、v2、u3、v3は整数)、(x+w、y+w)に位置する画素の動きベクトルの水平・垂直成分をm倍したもの(u(x+w,y+w),v(x+w,y+w))は、w=0のときは以下の式で表すことができる(ただし、x、y、u(x,y)、v(x,y)は整数)。
ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。演算誤差を小さくするためには、非整数値は最も近い整数に丸め込まれることが望ましい。このとき整数に1/2を加えた値の丸め込み方法は、
(1)0に近づける方向に丸め込む、
(2)0から遠ざける方向に丸め込む、
(3)被除数が負の場合は0に近づける方向、正の場合は0から遠ざける方向に丸め込む(除数は常に正であるとする)、
(4)被除数が負の場合は0から遠ざける方向、正の場合は0に近づける方向に丸め込む(除数は常に正であるとする)、
などが考えられる。これらの中で(3)と(4)は、被除数の正負に関わらず丸め込みの方向が変化しないため、正負判定が必要ない分だけ処理量の点で有利である。(3)を用いた高速処理は、例えば以下の式によって実現することができる。
ただし、「#」は小数点以下を0の方向に切り捨てる整数の除算であり、演算の優先順位は乗除算と同じであるとする。これは、一般に計算機では最も実現しやすい形式の除算である。ここで、LとMは除算の被除数を常に正に保つための数で、十分に大きな正の整数である。また、(pqk#2)の項は、除算結果を最も近い整数に丸め込むために用いられる。
処理を整数化することはそれ自体処理量の低減に貢献するが、ここでp、q、kをそれぞれ2のα、β、hk乗(α、β、hkは負ではない整数)とすると、数5の除算はα+β+hkビットのシフト演算で実現できるため、計算機や専用ハードウェアにおける処理量を大きく減らすことができる。さらにmを2のhm乗とすれば(hmは負ではない整数、hm<α+β+hk)、式(6)は、
と書き換えることができ(「x<<α」はxをαビット左にシフトして下位αビットに0を入れる、「x>>α」はxをαビット右にシフトして上位αビットに0を入れることを意味し、これらの演算子の優先順位は加減算と乗除算の中間であるとする)、シフトされるビット数をα+β+hk−hmとすることができる。
wが0ではないときには、w=wn/wdの定義にしたがい、式(5)は以下のように書き換えることができる。
このとき、Wdが2のhw乗であり、かつhwは負ではない整数であるとすれば、(p・q・k・wd・wd)による除算はα+β+hk+2hwビットのシフト演算となり、w=0の場合と同様に除算をシフト演算に置換することが可能となる。また、式(7)の場合と同様に、hm<α+β+hk+2hwであれば、分母、分子の両方をmで割ることによってシフトされるビット数をα+β+hk+2hw−hmビットに減らすことが可能となる。このように、wdが2のhw乗であれば、w=0の場合の処理とw≠0の場合の処理は本質的に同じである。以下本明細書では、数式が多少複雑となるが、w≠0の場合について検討を行う。w=0の場合の計算結果を求めるためには、wn=0、wd=1、hw=0を代入すれば良い。
送信側と受信側で同じグローバル動き補償予測画像を得るためには、代表点の動きベクトルに関する情報を何らかの形で受信側に伝える必要がある。代表点の動きベクトルそのまま伝送する方法もあるが、画像の隅の点の動きベクトルを伝送し、この値から代表点の動きベクトルを計算する方法もある。この方法に関し、以下に説明する。
画像の隅の4個の点(−c,−c)、(r−c,−c)、(−c,s−c)、(r−c,s−c)の動きベクトルが1/n整数倍の値のみとれるとして(nは正の整数、c=cn/cd、かつcnは負ではない整数、かつcdは正の整数、かつcn<cd)、これらの水平・垂直成分をn倍した(u00、v00)、(u01,v01)、(u02,v02)、(u03,v03)がグローバル動きパラメータとして伝送されるとする。cは画像の隅の点と代表点の間の位相のずれを表している。このcの典型的な値としては0、1/2、1/4などが挙げられる。このとき、点(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)は、式(5)を変形して、
と定義する。このとき、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である。こうして(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を計算し、(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)を代表点とするグローバル動き補償を行えば、(−c,−c)、(r−c,−c)、(−c,s−c)、(r−c,s−c)を代表点とするグローバル動き補償を近似することができる。このときに、上で述べたようにpとqを2の負ではない整数乗とすれば、処理を簡略化することが可能となる。一般的に、式(5)に示したような計算によって画像内の画素の動きベクトルを求めるときには、外挿の処理を行わないようにすることが望ましい。これは、外挿処理によって代表点の動きベクトルの量子化誤差を増幅しないようにするためである。以上の理由から、代表点は画像内の画素をすべて囲むような形に配置することが望ましい。従って、i=j=c=0の場合などはpとqはrとsとほぼ同じか、やや大きめの値をとするのが適当である。しかし、pとqの値をあまり大きくし過ぎると演算に必要なビット数が増加してしまうので注意が必要である。
式(9)、式(10)の処理において演算誤差を小さくするためには、「///」は非整数値を最も近い整数に丸め込むことが望ましい。このとき整数に1/2を加えた値の丸め込み方法としては、上で述べた(1)〜(4)の方法が考えられる。ただし、式(5)(画素ごとに計算)の場合と比較して、式(14)(1枚の画像で4回のみ計算)は演算が実行される回数が少ないため、式(1)又は(2)の方法を選んだとしても全体の演算量に大きな影響は与えない。
上述の例のように、pとqの値が2の負ではない整数乗となるようにすれば、グローバル動き補償におけるフレーム間予測画像の合成処理は大幅に簡略化することができる。しかし、ここでもう1つの問題が発生する。例えば、画像符号化における典型的なパラメータとしてp=512、q=512、k=32、m=16、wd=2、wn=1(w=0.5)である場合を考えると、α+β+hk+2hw−hm=21となる。このことは、u(x+w,y+w)が2進数で12ビット以上を必要とする値である場合には、式(8の演算を高速に実行するために33ビット以上のレジスタが必要になることを意味している。m=16である場合などには、u(x+w,y+w)は実際の動きベクトルの水平成分に16を掛けた値となるため、これが2進数で12ビット以上必要な値となるケースは十分にあり得る。しかし、その一方で33ビット以上の整数を格納できるレジスタを持つプロセッサは現時点では少なく、かつ将来的にも高価となることが予想される。また、一般的にプロセッサの回路規模が大きくなれば、その分だけ消費電力も多くなるため、大きなレジスタを要求するアルゴリズムは消費電力の観点からも不利となる。従って、除算をシフト演算に置換できた場合でも、シフトされるビット数はできるだけ少ないことが望ましい。
この問題を解決するため本発明では、以下に説明する2段階の処理によるアルゴリズムをとる。(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に位置する代表点の動きベクトルを用いて(x+w、y+w)に位置する画素の動きベクトルを計算する前に、まず(i,y+w)と(i+p,y+w)に存在する仮代表点の動きベクトルを、水平・垂直成分が1/zの整数倍(zは正の整数)となるように求める。上の例と同様に代表点(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)の動きベクトルの水平・垂直成分をk倍したものをそれぞれ(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)とする(u0、v0、u1、v1、u2、v2、u3、v3は整数)。このとき、(i,y+w)と(i+p,y+w)に仮代表点を配置し、これらの仮代表点の動きベクトルの水平・垂直成分をz倍したものである(uL(y+w),vL(y+w))と(uR(y+w),vR(y+w))を、以下のように定義する。
このとき、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等である(この「////」には、上で説明した「///」と同様の機能が要求される)。(i,y+w)は(i,j)と(i,j+q)を結んだ線上に存在しているため(uL(y+w),vL(y+w))は、(u0,v0)と(u2,v2)を用いた1次元の線形内・外挿で容易に求めることができる。また、同様に(i+p,y+w)は(i+p,j)と(i+p,j+q)を結んだ線上に存在しているため、同じように1次元の線形内・外挿で求めることができる。
このようにして求めた仮代表点の動きベクトル(uL(y+w),vL(y+w))と(uR(y+w),vR(y+w))に対して1次元の線形内・外挿を行うことにより、(x+w、y+w)に存在する画素の動きベクトルの水平・垂直成分をm倍したものである(u(x+w、y+w),v(x+w、y+w))を求める。この処理は、以下の式(12)に従って行われる。
ここでも上と同様にpを2のα乗、mを2のhm乗、zを2のhz乗、wdを2のhw乗(α、hm、hz、wdは負ではない整数)とすれば、式(12におけるp・z・wdによる除算は、α+hz+hw−hmビットの右シフト(ただし、hm<α+hz+hwの場合)に置換することができる。しかも、z=16(hz=4)とした上で、上で述べた典型的なパラメータp=512、q=512、k=32、m=16、wd=2、wn=1(w=0.5)を使用した場合、シフトされるビット数は10ビットとなり、演算に用いるレジスタに必要なビット数を大幅に抑えることが可能となる。なお、上の例では、まず代表点の動きベクトルに対して垂直方向の1次元線形内・外挿を行って仮代表点の動きベクトルを求め、この仮代表点の動きベクトルに対して水平方向の1次元線形内・外挿を行って画素の動きベクトルを求めている。これとは逆に、仮代表点の動きベクトルを求める際には水平方向、画素の動きベクトルを求める際には垂直方向の1次元線形内・外挿を行っても同様の機能を実現することができる。
この方式では、画素の動きベクトルを求める際に式(11)と式(12)の2段階の処理が必要となるため、一見演算量が多くなるように思われる。しかし、一旦仮代表点の動きベクトルを求めてしまえば、これが垂直座標y+wに存在しているライン上のr個の画素すべてに対して使用できるため、全体の処理量の中に占める式(11)の処理量はきわめて少なくなる。従って、シフトされるビット数の削減によって得られる利益(=より小さいレジスタの活用)の影響の方が、式(11)の計算を実行する分の演算量の増加による悪影響より大きくなる。
上記処理により(u(x+w、y+w),v(x+w、y+w))の値が得られた後には、以下の処理によって(u(x+w、y+w),v(x+w、y+w))を整数部(uI(x+w、y+w)、vI(x+w、y+w))と小数部(uF(x+w、y+w),vF(x+w、y+w))に分けることができる。
ただし、uI(x+w、y+w)とvI(x+w、y+w)は整数であり、画素の動きベクトルの整数部を表している。一方、uF(x+w、y+w)とvF(x+w、y+w)はそれぞれ0以上m未満の値を持つ整数であり、画素の動きベクトルの小数部をm倍したものである。なお、上の例と同様にmは2のhm乗であり(hmは負ではない整数)、LとMはシフトされる値を負の値ではなくするための十分に大きな整数である。
輝度値の内挿方式として共1次内挿が用いられる場合には、さらに以下の処理によってフレーム間予測画像内の画素の輝度値が求められる。x’=x+w+uI(x+w、y+w)、y’=y+w+vI(x+w、y+w)として、参照画像の(x’,y’)、(x’+1,y’)、(x’,y’+1)、(x’+1,y’+1)に位置する画素の輝度値をそれぞれYa、Yb、Yc、Ydとすれば、フレーム間予測画像において(x+w,y+w)に位置する画素の輝度値Y(x+w、y+w)は、
によって求められる。ただし、uF、vFはそれぞれuF(x+w,y+w)、vF(x+w,y+w)の略号である。
式(12)と式(13)では、それぞれα+hz+hw−hmビットとhmビットの右シフトが行われる。このことは、式(10)の計算の際に(α+hz+hw−hm)+hm=α+hz+hwビットのシフトを行えば一気にuI(x+w、y+w)とvI(x+w、y+w)を求めることができることを意味する。このとき、α+hz+hwを8の整数倍とすると、実装上便利である。一般的にプロセッサのレジスタは8ビット単位の大きさを持っており、8ビットのレジスタを2個(上位ビットのレジスタと下位ビットのレジスタ)つなげて16ビットのレジスタとして使用したり、8ビットのレジスタを4個、又は16ビットのレジスタを2個つなげて32ビットのレジスタとして使用することができるようになっている場合が多い。ここで例えば16ビットのシフト演算によってuI(x+w、y+w)とvI(x+w、y+w)の値が計算されるのであれば、わざわざシフト演算を行う必要はなくなる。つまり、シフトされる前の値を32ビットのレジスタに格納しておき、その上位16ビットを独立したレジスタとして使用すれば、その16ビットレジスタにuI(x+w、y+w)又はvI(x+w、y+w)の値が格納されていることになる。
もちろん、シフトされるビット数を8の整数倍とすることは、式(10)の処理だけでなく本明細書でこれまで述べてきたあらゆるシフト演算に対し、実装を容易にする効果を持つ。しかし、特に実行される回数の多いシフト演算(例えば画素ごとに実行されるシフト演算)に対して実装を容易にすることは重要である。また、シフトされるビット数が8の整数倍ではない場合でも、分母と分子に事前に同じビット数だけの左シフトを加えておくことにより、除算による右シフトを増やすことは可能である。例えば、6ビットの右シフトによって実現される演算があった場合に、シフトされる数値にあらかじめ4を掛けておく(これは2ビットの左シフトを行ったことに相当する)ことにより、同じ演算を8ビットの右シフトとして実現することが可能となる式(5のu(x+w,y+w)に関する式を例にとれば、あらかじめu0、u1、u2、u3を4倍しておくことにより、この処理を実現することが可能となる)。ただし、このような処理を行う際には、シフトされる数に関してオーバーフローが発生しないように注意する必要がある。
画像符号化装置及び画像復号化装置には、複数の画像サイズに対応できるようになっているものが多い。この場合、例えば式(12、13、14を用いたグローバル動き補償を実行したときには、画像サイズの変化に応じてシフトされるビット数が変化する現象が起こり、シフトされるビット数を8の整数倍に固定しておくことができなくなる。このような場合、次に述べるような対処法がある。例えば、上の例のようにuI(x+w、y+w)とvI(x+w、y+w)を求めるためにα+hz+hwビットの右シフトが必要であり、αが7〜11の値をとり得る場合を考える。このとき、αが10より小さいときはhz=5、hw=1、α=11のときはhz=4、hw=1とすれば、シフトされるビット数を常に16以下とすることができる。上で述べたように、シフトされるビット数が16より小さい場合には、あらかじめシフトされる数に定数を掛けておくことにより、シフトされるビット数を擬似的に16ビットとすることが可能である。このように、画像サイズが変化したときに他のパラメータ(例えば動きベクトルの量子化ステップサイズ)もこれに合わせて変化させることにより、シフトされるビット数が都合の良い値となるように制御することができる。しかし、上記の方法を使う場合には、復号画像の画質に著しい劣化を生じさせるほど、動きベクトルの量子化ステップサイズを大きくしてしまわないように注意する必要がある。
一般的なグローバル動き補償に本明細書で示したアルゴリズムを適用した場合には、まず1/n画素精度の画像の隅の点の動きベクトルを用いて代表点の動きベクトルを1/k画素精度で求め、続いて代表点の動きベクトルを用いて仮代表点の動きベクトルを1/z画素精度で求めた後に、この仮代表点の動きベクトルを用いて画素の動きベクトルが1/m画素精度で求められる。画像の隅の点の動きベクトルが動きパラメータとして伝送される場合には、このパラメータによる共1次内・外挿を正確に近似するという意味で、kをできるだけ大きな値にすることが望ましい。しかし、いずれにせよ代表点の動きベクトルの水平・垂直成分には、量子化の影響で1/(2k)以下の絶対値をもつ誤差が含まれることになる。近似を正確にするという意味からは、仮代表点の動きベクトルも、なるべく精度を高くすることが望ましい。しかし、仮代表点の動きベクトルは代表点の動きベクトルを用いて求められるため、代表点の動きベクトル以上の精度を持たせて計算してもあまり意味がない。従って、演算に必要なビット数を抑える意味でz≦kとすることが望ましい。また、同様の理由により、m≦zとすることが望ましい。
これまで共一次内・外挿を用いたグローバル動き補償に関して説明してきたが、線形内・外挿を用いた場合も同様の処理を導入することによって、シフトされるビット数を制御することができる。例えば、(i,j)、(i+p,j)、(i,j+q)に存在する(i、j、p、qは整数)代表点の動きベクトルの水平・垂直成分をk倍したものをそれぞれ(u0,v0)、(u1,v1)、(u2,v2)とする(u0、v0、u1、v1、u2、v2は整数)。このとき、画素(x+w,y+w)の動きベクトルの水平・垂直成分をm倍したもの(u(x+w,y+w),v(x+w,y+w))は以下の式(16)で表すことができる(ただし、x、y、u(x+w,y+w)、v(x+w,y+w)は整数、wの定義は上と同じ)。
この場合もp、q、k、m、wdがそれぞれ2のα乗、β乗、hk乗、hm乗、hw乗であり(α、β、hk、hm、hwは負ではない整数)、さらにα≧βであるとすれば、この式は
と書き換えることができ、共1次内・外挿を用いた場合と同様に、α+hk+hwビットの右シフトにより(x+w,y+w)に存在する画素の動きベクトルの整数部を求めることができる。従って、α+hk+hwが8の整数倍となるようにすれば、上と同様の理由により実装を行いやすくすることができる。なお、α<βの場合には、シフトされるビット数はβ+hk+hwビットとなる。
以下、上記フレーム間予測画像の合成処理を採用する本発明の符号化方法及び復号化方法を実施する画像符号化装置、復号化装置の構成について述べる。
第6図は、本発明によるに画像符号化装置の一実施形態の構成を示す。同図において、動き補償処理部616を除いては、従来知られている画像符号化装置と実質的に同じである。
減算器602は入力画像(符号化しようとする現フレームの原画像)601とフレーム間/フレーム内符号化切り換えスイッチ619の出力画像613(フレーム間予測画像)との差を計算し、誤差画像603を出力する。この誤差画像は、DCT変換器604でDCT係数に変換された後に量子化器605で量子化され、量子化DCT係数606となる。この量子化DCT係数は伝送情報として通信路に出力されると同時に、符号化器内でもフレーム間予測画像を合成するために使用される。
以下にフレーム予測画像合成の手順を説明する。量子化DCT係数606は、逆量子化器608と逆DCT変換器609を経て復号誤差画像610(受信側で再生される誤差画像と同じ画像)となる。これに、加算器611においてフレーム間/フレーム内符号化切り換えスイッチ619の出力画像613(後述)が加えられ、現フレームの復号画像612(受信側で再生される現フレームの復号画像と同じ画像)を得る。この画像は一旦フレームメモリ614に蓄えられ、1フレームの時間だけ遅延される。従って、現時点では、フレームメモリ614は前フレームの復号画像615を出力している。この前フレームの復号画像と現フレームの入力画像601が動き補償処理部616に入力される。動き補償処理部616は前述のフレーム間予測画像の合成を行う。その構成については後で述べる。
予測画像617は、「0」信号618と共にフレーム間/フレーム内符号化切り換えスイッチ619に入力される。このスイッチは、両入力のいずれかを選択することにより、フレーム間符号化とフレーム内符号化を切り換える。予測画像617が選択された場合(第6図はこの場合を表している)には、フレーム間符号化が行われる。一方、「0」信号が選択された場合には、入力画像がそのままDCT符号化されて通信路に出力されるため、フレーム内符号化が行われる。受信側が正しく復号化画像を得るためには、送信側でフレーム間符合化が行われたかフレーム内符号化が行われたかを知る必要がある。このため、識別フラグ621が通信路へ出力される。最終的なH.261符号化ビットストリーム623は多重化器622で量子化DCT係数、動きベクトル、フレーム内/フレーム間識別フラグの情報を多重化することによって得られる。
第7図は、第6図の符号化器が出力した符号化ビットストリームを受信する復号化器700の構成例を示す。受信したビットストリーム717は、分離器716で量子化DCT係数701、動きベクトル702、フレーム内/フレーム間識別フラグ703に分離される。量子化DCT係数701は逆量子化器704と逆DCT変換器705を経て復号化された誤差画像706となる。この誤差画像は加算器707でフレーム間/フレーム内符号化切り換えスイッチ714の出力画像715を加算され、復号化画像708として出力される。フレーム間/フレーム内符号化切り換えスイッチはフレーム間/フレーム内符号化識別フラグ703に従って、出力を切り換える。フレーム間符号化を行う場合に用いる予測画像712は、予測画像合成部711において合成される。ここでは、フレームメモリ709に蓄えられている前フレームの復号画像710に対して、受信した動きベクトル702に従って位置を移動させる処理が行われる。一方フレーム内符号化の場合、フレーム間/フレーム内符号化切り換えスイッチは、「0」信号713をそのまま出力する。
第8図は、代表点の動きベクトルを伝送する線形内・外挿に基づくグローバル動き補償方式を採用した画像符号化器の動き補償処理部616の構成例を示す。第6図と同じ番号は同じものを指す。グローバル動き推定部802で前フレームの復号画像615と現フレームの原画像601との間でグローバル動き補償に関する動き推定が行われ、グローバル動き補償のパラメータ(例えば、上記ua、va、ub、vb、uc、vc、ud、udの値)が推定される。これらの値に関する情報803は動き情報620の一部として伝送される。グローバル動き補償の予測画像804は式(3)を用いてグローバル動き補償予測画像合成部808で合成され、ブロックマッチング部805に供給される。ここでは、グローバル動き補償の予測画像と現フレームの原画像との間でブロックマッチングによる動き補償(動き推定と予測画像合成)が行われ、ブロックの動きベクトル情報806と最終的な予測画像617が得られる。この動きベクトル情報は動きパラメータ情報と多重化部807において多重化され、動き情報620として出力される。
第10図は、第7図の予測画像合成部711の構成例を示す。他の図と同じ番号は同じものを指す。前フレームの復号画像710に対し、動き情報702から分割部1002において抽出されたグローバル動き補償パラメータ803を用いて、グローバル動き補償予測画像合成部808においてグローバル動き補償の予測画像804が合成される。画像804はブロックマッチング予測画像合成部1001に供給され、動き情報702から抽出されたブロックマッチングの動きベクトル情報806を用いて最終的な予測画像712が合成される。
第9図は、動き補償処理部616の他の構成例をに示す。第6図と同じ番号は同じものを指す。この例では、各ブロックに関してグローバル動き補償かブロックマッチングのいずれかが適用される。前フレームの復号画像615と現フレームの原画像601との間で、グローバル動き推定部902、グローバル動き補償予測画像合成部911ではグローバル動き補償、ブロックマッチング部905ではブロックマッチングにより、それぞれ独立に動き補償の処理が行われる。選択スイッチ908は、グローバル動き補償による予測画像903とブロックマッチングによる予測画像906の間でブロックごとに最適な方式を選択する。グローバル動き補償パラメータ904、ブロックごとの動きベクトル907、グローバル動き補償/ブロックマッチングの選択情報909は多重化部910で多重化され、動き情報620として出力される。
第11図は、動き補償処理部901を用いる画像符号化器が生成するビットストリームを復号化する復号化器の、予測画像合成部1103の構成例を示す。他の図と同じ番号は同じものを指す。前フレームの復号画像710に対し、動き情報702から分割部1102において抽出されたグローバル動き補償パラメータ904を用いて、グローバル動き補償予測画像合成部911においてグローバル動き補償の予測画像903が合成される。また、これとは独立に前フレームの復号画像710に対し、動き情報702から抽出されたブロックマッチングの動きベクトル情報907を用いてブロックマッチング予測画像合成部1101においてブロックマッチングの予測画像906が合成される。選択スイッチ1104は、グローバル動き補償による予測画像903とブロックマッチングによる予測画像906の間で、動き情報702から抽出された選択情報909に基づいて、ブロックごとに一方の方式を選択する。このブロックごとの選択処理を経て、最終的な予測画像712が合成される。
第12図は、上述の本発明によるグローバル動き補償予測画像合成部の機能的構成を示す。グローバル動き補償パラメータとして、画像の隅の点の動きベクトルが伝送されるとする。この画像の隅の点の動きベクトルに関する情報1204を用いて演算処理部1205において式(9)、(10)を用いて代表点の動きベクトルが計算される。この代表点の動きベクトルに関する情報1206を用いて演算処理部1207では、式(11)を用いてライン(垂直座標が共通の値である画素)ごとに仮代表点の動きベクトルが計算される。さらにこの仮代表点の動きベクトルに関する情報1208を活用して演算処理部1209では画素ごとの動きベクトルが式(12)により計算される。一方、処理部1211では、この画素ごとの動きベクトルに関する情報1210と、前フレームの復号画像1202を用いてグローバル動き補償の予測画像1203が合成、出力される。
本発明は、専用回路・専用チップを用いる画像符号化装置、画像復号化装置の他に、汎用プロセッサを用いるソフトウェア画像符号化装置、ソフトウェア画像復号化装置にも適用することができる。
図4及び図5は、それぞれソフトウェア画像符号化装置400とソフトウェア画像復号化装置500の例を示す。ソフトウェア符号化装置400では、入力画像401は、入力フレームメモリ402に蓄えられ、汎用プロセッサ403は入力フレームメモリ402から情報を読み込んで符号化の処理を行う。汎用プロセッサ403を駆動するためのプログラムはハードディスクやフロッピーディスクなどによる蓄積デバイス408から読み出されてプログラム用メモリ404に蓄えられる。また、汎用プロセッサ403は、処理用メモリ405を活用して符号化の処理を行う。汎用プロセッサ403が出力する符号化情報は、一旦出力バッファ406に蓄えられた後に符号化ビットストリーム407として出力される。
図13は、図4に示したソフトウェア符号化器上で動作する符号化ソフトウェアのフローチャートを示す。まずステップ1301で画像符号化処理が開始され、ステップ1302で変数Nに0が代入される。続いてステップ1303、ステップ1304でNの値が100である場合には、0が代入される。Nはフレーム数のカウンタであり、1枚のフレームの処理が終了する度に1が加算され、符号化を行う際には0〜99の値をとることが許される。Nの値が0であるときには符号化中のフレームはIフレーム(動き補償は行わず、全てのブロックでフレーム内符号化が行われるフレーム)であり、それ以外のときはPフレーム(動き補償を行うブロックの存在するフレーム)となる。Nの値が100であることは、Pフレームが99枚符号化された後にIフレームが1枚符号化されることを意味している。Nの最適な値は符号化器の性能や符号化器が使用される環境により変化する。この例では100という値を使用したが、これはNの値が必ず100でなければならいことを意味しているわけではない。フレームタイプ(I又はP)の決定と出力はステップ1305で行われる。Nの値が0である場合にはフレームタイプの識別情報として’I’が出力バッファに出力され、これから符号化処理を行うフレームはIフレームとなる。なお、ここで「出力バッファに出力される」とは、出力バッファ(第4図の406)に蓄えられた後に符号化ビットストリームの一部として符号化装置から外部に出力される。Nが0ではない場合には、フレームタイプの識別情報として’P’が出力バッファに出力され、これから符号化処理を行うフレームはPフレームとなる。ステップ1306では入力画像はフレームメモリAに蓄えられる。なお、ここで述べたフレームメモリAとは、ソフトウェア符号化器のメモリ領域(例えば、第4図のメモリ405内にこのメモリ領域が確保される)の一部を意味している。ステップ1307では、現在符号化中のフレームがIフレームであるか否かが判定される。そして、Iフレームではない場合にはステップ1308で動き推定・動き補償処理が行われる。このステップ1308における処理の詳細を表すフローチャートの例を第14図に示す。まず、ステップ1401でフレームメモリAとB(フレームメモリBには前フレームの復号画像が格納されている)に蓄えられた画像の間でグローバル動き推定が行われ、グローバル動きパラメータとして、画像の隅の点の動きベクトルが出力バッファに出力される。ステップ1402では、この画像の隅の点の動きベクトルを用いて式(9)、(10)により代表点の動きベクトルが計算される。続いてステップ1403では、変数Mに0が代入される。Mは画像内のラインの番号を表し、Mが0であることは、画像の最も上のラインを処理中であることを意味し、Mが画像のライン数から1を引いた値であるときには、画像の最も下のラインを処理中であることを意味する。ステップ1402で計算された代表点の動きベクトルを用いて、ステップ1404では式(11)により第Mラインの仮代表点の動きベクトルが計算される。そしてこの仮代表点の動きベクトルを活用してステップ1405では第Mラインに含まれる画素全ての動きベクトルが式(12)により計算され、求められた動きベクトルに従って、フレームメモリBに格納されている前フレームの復号画像を用いてグローバル動き補償予測画像の第Mラインが合成され、フレームメモリFに蓄えられる。ステップ1406ではMの値に1が加えられ、ステップ1407ではMの値が画像のライン数に等しければステップ1408へ、等しく無ければステップ1404に移動する。ステップ1408の処理が開始される時点では、フレームメモリDには、グローバル動き補償による予測画像が蓄えられている。ステップ1408以降では、ブロックマッチングの処理が行われる。まずステップ1408では、フレームメモリFとフレームメモリA(入力画像)との間でブロックごとに動き推定の処理が行われ、各ブロックの動きベクトルが求められ、その動きベクトルは出力バッファに出力される。続いてこの動きベクトルと、フレームメモリFに蓄えられた画像を用いてステップ1409ではブロックマッチングによる予測画像が合成され、これが最終的な予測画像となってフレームメモリCに蓄えられる。そしてステップ1410ではフレームメモリAとCの差分画像が求められ、これがフレームメモリAに蓄えられる。
ここで第13図に戻る。ステップ1308における処理が開始される直前、フレームメモリAには、現フレームがIフレームである場合には入力画像が、現フレームがPフレームである場合には入力画像と予測画像の差分画像が蓄えられている。ステップ1308では、このフレームメモリAに蓄えられた画像に対してDCTが適用され、ここで計算されたDCT係数は量子化された後に出力バッファに出力される。さらにステップ1310で、この量子化DCT係数には逆量子化され、逆DCTが適用され、この結果得られた画像はフレームメモリBに格納される。続いてステップ1311では、再び現フレームがIフレームであるか否かが判定され、Iフレームではない場合にはステップ1312でフレームメモリBとCの画像が加算され、この結果がフレームメモリBに格納される。ここで、1フレーム分の符号化処理が終了することになる。そして、ステップ1313の処理が行われる直前にフレームメモリBに格納されている画像は、符号化処理が終了したばかりのフレームの再生画像(復号側で得られるものと同じ)である。ステップ1313では、符号化が終了したフレームが最後のフレームであるか否かが判定され、最後のフレームであれば、符号化処理が終了する。最後のフレームではない場合には、ステップ1314でNに1が加算され、再びステップ1303に戻って次のフレームの符号化処理が開始される。なお、ここで説明したフローチャートはグローバル動き補償を行なった結果合成されたグローバル動き補償予測画像に対してブロックマッチングを適用する方法(第8図の動き補償処理部801を使用する装置に対応する方法)に関するものであるが、グローバル動き補償とブロックマッチングを並列に行う方法(第9図の動き補償処理部901を使用する装置に対応する方法)に関するフローチャートもわずかの変更を加えるのみで作成できることは明らかである。
一方、ソフトウェア復号化装置500では、入力された符号化ビットストリーム501は、一旦入力バッファ502に蓄えられた後に、汎用プロセッサ503に読み込まれる。汎用プロセッサ503はハードディスクやフロッピーディスクなどによる蓄積デバイス508から読み出されたプログラムを蓄えるプログラム用メモリ504および処理用メモリ505を活用して復号化処理を行う。この結果得られた復号化画像は、一旦出力フレームメモリ506に蓄えられた後に、出力画像507として出力される。
第15図は、第5図に示したソフトウェア復号化装置上で動作する復号化ソフトウェアのフローチャートを示す。1501で処理が開始され、まずステップ1502で入力情報があるか否かが判定される。ここで入力情報が無ければステップ1503で復号化の処理を終了する。入力情報がある場合には、まず、ステップ1504でフレームタイプ情報が入力される。なお、この「入力される」とは、入力バッファ502に蓄えられた情報を読み込むことを意味している。ステップ1505では、読み込んだフレームタイプ情報が’I’であるか否かが判定される。そして、’I’ではない場合には、ステップ1506で予測画像合成処理が行われる。このステップ1506で行われる処理の詳細をフローチャートを第16図に示す。
まず、ステップ1601で画像の隅の点の動きベクトルが入力される。ステップ1602では、この画像の隅の点の動きベクトルを用いて式(9)、(10)により代表点の動きベクトルが計算される。続いてステップ1603では、変数Mに0が代入される。Mは画像内のラインの番号を表し、Mが0であることは、画像の最も上のラインを処理中であることを意味し、Mが画像のライン数から1を引いた値であるときには、画像の最も下のラインを処理中であることを意味する。ステップ1602で計算された代表点の動きベクトルを用いて、ステップ1604では式(11)により第Mラインの仮代表点の動きベクトルが計算される。そしてこの仮代表点の動きベクトルを活用してステップ1605では第Mラインに含まれる画素すべての動きベクトルが式(12)により計算され、求められた動きベクトルに従って、フレームメモリEに格納されている前フレームの復号画像を用いてグローバル動き補償予測画像の第Mラインが合成され、フレームメモリGに蓄えられる。なお、ここで述べたフレームメモリGとは、ソフトウェア復号化器のメモリ505の領域の一部を意味している。ステップ1606ではMの値に1が加えられ、ステップ1607ではMの値が画像のライン数に等しければステップ1608へ、等しく無ければステップ1604に移動する。ステップ1608の処理が開始される時点では、フレームメモリGには、グローバル動き補償による予測画像が蓄えられている。ステップ1608では、ブロックマッチングの処理が行われる。ブロックごとの動きベクトル情報が入力され、この動きベクトルとフレームメモリGに格納された画像を用いてブロックマッチングによる予測画像が合成され、この予測画像はフレームメモリDに格納される。
ここで第15図に戻る。ステップ1507では量子化DCT係数が入力され、これに逆量子化、逆DCTを適用して得られた画像がフレームメモリEに格納される。ステップ1508では、再び現在復号化中のフレームがIフレームであるか否かが判定される。そして、Iフレームではない場合には、ステップ1509でフレームメモリDとEに格納された画像が加算され、この結果の画像がフレームメモリEに格納される。ステップ1510の処理を行う直前にフレームメモリEに格納されている画像が、再生画像となる。ステップ1510では、このフレームメモリEに格納された画像が出力フレームメモリ506に出力され、そのまま出力画像として復号化器から出力される。こうして1フレーム分の復号化処理が終了し、処理は再びステップ1502に戻る。
第4図と第5図に示したソフトウェア画像符号化装置、ソフトウェア画像復号化装置に本明細書で示したフレーム間予測画像の合成方法を実行するプログラムを実行させると、グローバル動き補償やワーピング予測の処理をより少ない演算量で実現することが可能となる。このため、本発明を用いない場合と比較して、消費電力の低減、装置の低価格化、より大きな画像を実時間で処理できるようになる、画像符号化・復号化以外の処理を含む同時並列処理を行うことが可能となる、等の効果を期待することができる。また、本明細書で示したアルゴリズムを用いることにより、従来の画像復号化装置では演算能力の限界から実時間で再生できなかったような圧縮画像データを、実時間で再生することが可能となる。
以上本発明の実施形態について述べたが、以下のような実施形態も本発明に含まれる。
(1)従来型の画像符号化方法では、フレーム間予測を行った後に離散コサイン変換などによる誤差符号化が行われるが、フレーム間予測画像をそのまま再生画像として使用する画像符号化方法・復号化方法に対しても、本発明は有効である。
(2)本明細書では、画像の形状は長方形であることを仮定したが、長方形以外の任意の形状を持つ画像にも、本発明は適用可能である。この場合、まず任意形状の画像を囲む長方形に対して本発明の処理を適用し、任意形状画像に含まれる画素に対してのみ動きベクトルを求める演算を行えば良い。
(3)本明細書では、p又はqの値が2の負ではない整数乗であることを前提として2段階の処理による動きベクトルの内・外挿アルゴリズムを示した。しかし、p及びqが2の負ではない整数乗ではない場合でも、この2段階処理アルゴリズムは除算における分母の値を小さくするという効果を持っており、レジスタのオーバーフローを防ぐ意味で有効である。
産業上の利用可能性
図17に、本明細書で示した予測画像合成方法を用いる符号化・復号化装置の具体例を示す。(a)は、パソコン1701に画像符号化・復号化用のソフトウェアを組み込むことにより、画像符号化・復号化装置として活用する場合を示す。このソフトウェアは何らかの蓄積メディア(CD−ROM、フロッピーディスク、ハードディスクなど)に記録されており、これをパソコンが読み込んで使用する。また、さらに何らかの通信回線にこのパソコンを接続することにより、映像通信端末として活用することも可能となる。
(b)は本発明による符号化方法による動画像情報を蓄積メディア1702に記録した符号化ビットストリームを読み取り、本発明による装置を持つ再生装置1703で再生し、再生された映像信号をテレビモニタ1704に表示する場合を示す。再生装置1703は符号化ビットストリームを読み取るだけであり、テレビモニタ1704内に復号化装置が組み込まれている場合もある。
(c)は、ディジタル放送用のテレビ受信機1705に本発明の復号化装置を組み込んだ場合を示す。また、(d)は、ケーブルテレビ用のケーブル1708又は衛星/地上波放送のアンテナに接続されたセットトップボックス1709内に復号化装置を実装し、これをテレビモニタ1710で再生する場合を示す。このとき、(b)の1704と同様に、セットトップボックスではなく、テレビモニタ内に符号化装置を組み込んでも良い。
(e)は、ディジタル携帯端末1706に本発明の符号化器、復号化器を組み込んだ場合を示す。ディジタル携帯端末の場合、符号器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の3通りの実装形式のいずれでもよい。
(f)は、動画像撮影用のカメラ1707の中に符号化装置を組み込む場合を示す。また、カメラ1707は映像信号を取り込むのみであり、これを専用の符号化装置1711に組み込む構成でもよい。この図に示したいずれの装置・システムに関しても、本明細書に示した方法を実装することにより、従来の技術を活用した場合と比較して、装置を簡略化することが可能となる。
Claims (26)
- 動画像の符号化又は復号化のために、参照画像から現フレームのフレーム間予測画像を合成する方法において、
上記フレーム間予測画像の座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)(i、j、p、qは整数)に位置する4つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル(該動きベクトルの水平・垂直成分が1/kの整数倍の値をとり、kは2のhk乗、かつhkは負ではない整数)を求める第1ステップと、
画素のサンプリング間隔を水平、垂直方向共に1として、サンプリング点の座標の水平、垂直成分が、共に整数にwを加えた数である点の上に存在している画素を対象として(ただし、w=wn/wd、かつwnは負ではない整数、かつwdは2のhw乗、かつhwは負ではない整数、かつwn<wd)、上記4個の代表点における動きベクトルに対し、共1次内・外挿を行うことによって、上記フレーム間予測画像の座標(x+w,y+w)に位置する画素の動きベクトルを計算する第2ステップと、上記フレーム間予測画像の座標(x+w、y+w)の画素値を上記フレーム間予測画像の座標(x+w、y+w)における動きベクトルと上記参照画像とを用いて計算する第3ステップとを有し、
上記第2ステップが、上記フレーム間予測画像の座標(i,j)と(i,j+q)に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として(ただし、zは2のhz乗、かつhzは負ではない整数)求め、さらに座標(i+p,j)と(i+p,j+q)に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として求めるステップと、
その後に、座標(i,y+w)と(i+p,y+w)に位置する上記2個の動きベクトルに対して線形内・外挿を行うことにより、座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれ1/mの整数倍をとる数値として(ただし、mは2のhm乗、かつhmは負ではない整数)求めるステップを有することを特徴とするフレーム間予測画像の合成方法。 - 上記座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に位置する代表点の動きベクトルの水平・垂直成分をk倍したものである(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を用いて座標(x+w,y+w)に位置する画素の動きベクトルを求めるときに、
上記座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uL(y+w),vL(y+w))を、
uL(y+w)=(((q・wd−(y−j)・wd−wn)u0+((y−j)・wd+wn)u2)z)////(q・k・wd),
vL(y+w)=(((q・wd−(y−j)・wd−wn)v0+((y−j)・wd+wn)v2)z)////(q・k・wd)を計算することにより(ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求め、
更に上記座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uR(y+w),vR(y+w))を、
uR(y+w)=(((q・wd−(y−j)・wd−wn)u1+((y−j)・wd+wn)u3)z)////(q・k・wd)、
vR(y+w)=(((q・wd−(y−j)・wd−wn)v1+((y−j)・wd+wn)v3)z)////(q・k・wd)、
を計算することにより求め、
上記座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれm倍したものである(u(x+w,y+w),v(x+w,y+w))を
u(x+w,y+w)=(((p・wd−(x−i)・wd−wn)uL(y+w)+((x−i)・wd+wn)uR(y+w))m)//(p・z・wd)
v(x+w,y+w)=(((p・wd−(x−i)・wd−wn)vL(y+w)+((x−i)・wd+wn)vR(y+w))m)//(p・z・wd)
を計算することによって(ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求めることを特徴とする請求項1に記載のフレーム間予測画像の合成方法。 - 上記pの絶対値が2のα乗(αは負ではない整数)であることを特徴とする請求項1又は2に記載のフレーム間予測画像の合成方法。
- 上記pと上記qの絶対値がそれぞれ2のα乗とβ乗(α、βは負ではない整数)であることを特徴とする請求項1又は2に記載のフレーム間予測画像の合成方法。
- 上記zとmは、z≧mの関係であることを特徴とする請求項1ないし4の何れかに記載のフレーム間予測画像の合成方法。
- 上記k≧zであることを特徴とする請求項1ないし4の何れかに記載のフレーム間予測画像の合成方法。
- 上記pと上記qの絶対値がそれぞれ上記フレーム間予測画像の水平と垂直の画素数と異なることを特徴とする請求項1ないし6の何れかに記載のフレーム間予測画像の合成方法。
- rを上記フレーム間予測画像の水平方向の画素数、sを上記フレーム間予測画像の垂直方向の画素数として(ただし、rとsは正の整数)、
上記pの絶対値を1/2倍した値は上記rより小さく、かつ、上記pの絶対値は上記r以上で、かつ上記qの絶対値を1/2倍した値は上記sより小さく、かつ上記qの絶対値は上記s以上であることを特徴とする請求項1ないし7の何れかに記載のフレーム間予測画像の合成方法。 - rを上記フレーム間予測画像の水平方向の画素数、sを上記フレーム間予測画像の垂直方向の画素数として(ただし、rとsは正の整数)、
上記pの絶対値は上記r以下であり、かつ上記pの絶対値を2倍した値は上記rより大きく、かつ上記qの絶対値は上記s以下であり、かつ上記qの絶対値を2倍した値は上記sより大きいことを特徴とする請求項1ないし7の何れかに記載のフレーム間予測画像の合成方法。 - 上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれrとsであり(ただし、rとsは正の整数)、かつ上記フレーム間予測画像の画素が水平座標が0以上、上記r未満、垂直座標が0以上、上記s未満の範囲に存在しているときに、座標(−c,−c)、(r−c,−c)、(−c,s−c)、(r−c,s−c)に位置する上記フレーム間予測画像の隅の点上に存在し(ただし、c=cn/cd、かつcnは負ではない整数、かつcdは正の整数、かつcn<cd)、水平・垂直成分が1/nの整数倍の値をとる動きベクトル(ただし、nは正の整数)をn倍したものである(u00,v00)、(u01,v01)、(u02,v02)、(u03,v03)(ただし、u00、v00、u01、v01、u02、v02、u03、v03は整数)を用いて、
u'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)u00+(x・cd+cn)u01+(y・cd+cn)((r・cd−cn−x・cd)u02+(x・cd−cn)u03))k)///(r・s・n・cd2),
v'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)v00+(x・cd+cn)v01)+(y・cd+cn)((r・cd−cn−x・cd)v02+(x・cd+cn)v03))k)///(r・s・n・cd2),
u0=u'(i,j),
v0=v'(i,j),
u1=u'(i+p,j),
v1=v'(i+p,j),
u2=u'(i,j+q),
v2=v'(i,j+q),
u3=u'(i+p,j+q),
v3=v'(i+p,j+q),
で表される(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を(ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)、上記代表点(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)の動きベクトルの水平・垂直成分をk倍したものとして使用することを特徴とする請求項1ないし9の何れかに記載のフレーム間予測画像の合成方法。 - 上記参照画像と符号化しようとする上記現フレームの原画像を用いた動き補償により、上記フレーム間予測画像を合成し、
上記フレーム間予測画像と上記現フレームの上記原画像との差を誤差画像として出力し、上記誤差画像を信号変換し、変換信号を得てそれを符号化し、上記変換信号を逆変換して上記誤差画像の復号誤差画像を作り、
上記復号誤差画像と上記フレーム間予測画像を用いて上記現フレームの復号画像を生成し、
上記フレーム間予測画像の合成は請求項1ないし10のいずれかに記載のフレーム間予測画像の合成方法を用いることを特徴とする画像符号化方法。 - 上記フレーム間予測画像の合成は、上記代表点の動きベクトルに関する情報を抽出し符号化するステップを有することを特徴とする請求項11記載の画像の符号化方法。
- 上記参照画像と符号化しようとする上記現フレームの原画像を用いた動き補償により、上記フレーム間予測画像を合成し、
上記フレーム間予想画像と上記現フレームの原画像との差を誤差画像として出力し、
上記誤差画像を信号変換し、変換信号を得てそれを符号化し、
上記変換信号を逆変換して上記誤差画像の復号誤差画像を作り、
上記復号誤差画像と上記フレーム間予測画像を用いて上記現フレームの復号画像を生成し、
上記フレーム間予測画像の合成は請求項10に記載のフレーム間予測画像の合成方法を用い、上記フレーム間予測画像の隅の点の動きベクトルに関する情報を抽出し符号化するステップを有することを特徴とする画像符号化方法。 - 復号しようとする上記現フレームの誤差画像の変換信号の情報と該現フレームの動きベクトルの情報と入力し、
上記誤差画像の変換信号の情報を復号誤差画像に変換し、
上記参照画像と上記動きベクトルの情報から上記フレーム間予測画像を合成し、
上記復号誤差画像と上記フレーム間予測画像とを加算して、上記現フレームの復号画像を得、
上記フレーム間予測画像の合成は請求項1ないし10のいずれかに記載のフレーム間予測画像の合成方法を用いることを特徴とする画像復号化方法。 - 上記動きベクトルの情報が上記代表点の動きベクトルを含むことを特徴とする請求項14に記載の画像の復号化方法。
- 復号しようする上記現フレームの誤差画像の変換信号の情報と上記現フレームの動きベクトルの情報と入力し、
上記誤差画像の変換信号の情報を復号誤差画像に変換し、
上記参照画像と上記動きベクトルの情報からフレーム間予測画像を合成し、
上記復号誤差画像と上記フレーム間予測画像の信号とを加算して、上記現フレームの復号画像を得、
上記動きベクトルの情報は、上記フレーム間予測画像の隅の点の動きベクトルの情報を含み、上記フレーム間予測画像の合成は請求項10に記載のフレーム間予測画像の合成方法で行うことを特徴とする画像復号化方法。 - 参照画像と符号化しようとする現フレームの原画像を用いた動き補償によってフレーム間予測画像の合成を行う動き補償処理部と、
上記現フレームの原画像と上記フレーム間予測画像との差を誤差画像として出力する減算器と、
上記誤差画像を信号変換して、変換信号を出力する第1変換部と、
該第1変換部の出力の一部を符号化する符号化器と、
上記第1変換部の出力の一部を逆変換して上記現フレームの復号誤差画像を得る第2変換部と、
上記復号誤差画像と上記フレーム間予測画像とから上記現フレームの復号画像を得る加算器とを有し、
上記動き補償処理部において行われる上記フレーム間予測画像の合成処理は上記フレーム間予測画像の座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)(i、j、p、qは整数)に位置する4つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル(該動きベクトルの水平・垂直成分が1/kの整数倍の値をとり、kは2のhk乗、かつhkは負ではない整数)を求める第1の処理と、画素のサンプリング間隔を水平、垂直方向共に1として、サンプリング点の座標の水平、垂直成分が、共に整数にwを加えた数である点の上に存在している画素を対象として(ただし、w=wn/wd、かつwnは負ではない整数、かつwdは2のhw乗、かつhwは負ではない整数、かつwn<wd)、上記4個の代表点における動きベクトルに対し、共1次内・外挿を行うことによって、上記フレーム間予測画像の座標(x+w,y+w)に位置する画素の動きベクトルを計算する第2の処理と、上記フレーム間予測画像の座標(x+w、y+w)の画素値を上記フレーム間予測画像の座標(x+w、y+w)における動きベクトルと上記参照画像とを用いて計算する第3の処理を含み、
上記第2の処理が、上記フレーム間予測画像の座標(i,j)と(i,j+q)に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として(ただし、zは2のhz乗、かつhzは負ではない整数)求め、さらに座標(i+p,j)と(i+p,j+q)に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として求める処理と、
その後に、座標(i,y+w)と(i+p,y+w)に位置する上記2個の動きベクトルに対して線形内・外挿を行うことにより、座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれ1/mの整数倍をとる数値として(ただし、mは2のhm乗、かつhmは負ではない整数)求める処理を含むことを特徴とする画像符号化装置。 - 上記座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に位置する代表点の動きベクトルの水平・垂直成分をk倍したものである(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を用いて座標(x+w,y+w)に位置する画素の動きベクトルを求めるときに、
上記座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uL(y+w),vL(y+w))を、
uL(y+w)=(((q・wd−(y−j)・wd−wn)u0+((y−j)・wd+wn)u2)z)////(q・k・wd),
vL(y+w)=(((q・wd−(y−j)・wd−wn)v0+((y−j)・wd+wn)v2)z)////(q・k・wd)を計算することにより(ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求め、
更に上記座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uR(y+w),vR(y+w))を、
uR(y+w)=(((q・wd−(y−j)・wd−wn)u1+((y−j)・wd+wn)u3)z)////(q・k・wd)、
vR(y+w)=(((q・wd−(y−j)・wd−wn)v1+((y−j)・wd+wn)v3)z)////(q・k・wd)、
を計算することにより求め、
上記座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれm倍したものである(u(x+w,y+w),v(x+w,y+w))を
u(x+w,y+w)=(((p・wd−(x−i)・wd−wn)uL(y+w)+((x−i)・wd+wn)uR(y+w))m)//(p・z・wd)
v(x+w,y+w)=(((p・wd−(x−i)・wd−wn)vL(y+w)+((x−i)・wd+wn)vR(y+w))m)//(p・z・wd)
を計算することによって(ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求めることを特徴とする請求項17に記載の画像符号化装置。 - rを上記フレーム間予測画像の水平方向の画素数、sを上記フレーム間予測画像の垂直方向の画素数として(ただし、rとsは正の整数)、上記pの絶対値を1/2倍した値は上記rより小さく、かつ上記pの絶対値は上記r以上で、かつ上記qの絶対値を1/2倍した値は上記sより小さく、かつ上記qの絶対値は上記s以上であることを特徴とする請求項17又は18の何れかに記載の画像符号化装置。
- 上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれrとsであり(ただし、rとsは正の整数)、かつ上記フレーム間予測画像の画素が水平座標が0以上、上記r未満、垂直座標が0以上、上記s未満の範囲に存在しているときに、座標(−c,−c)、(r−c,−c)、(−c,s−c)、(r−c,s−c)に位置する上記フレーム間予測画像の隅の点上に存在し(ただし、c=cn/cd、かつcnは負ではない整数、かつcdは正の整数、かつcn<cd)、水平・垂直成分が1/nの整数倍の値をとる動きベクトル(ただし、nは正の整数)をn倍したものである(u00,v00)、(u01,v01)、(u02,v02)、(u03,v03)(ただし、u00、v00、u01、v01、u02、v02、u03、v03は整数)を用いて、
u'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)u00+(x・cd+cn)u01+(y・cd+cn)((r・cd−cn−x・cd)u02+(x・cd−cn)u03))k)///(r・s・n・cd2),
v'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)v00+(x・cd+cn)v01)+(y・cd+cn)((r・cd−cn−x・cd)v02+(x・cd+cn)v03))k)///(r・s・n・cd2),
u0=u'(i,j),
v0=v'(i,j),
u1=u'(i+p,j),
v1=v'(i+p,j),
u2=u'(i,j+q),
v2=v'(i,j+q),
u3=u'(i+p,j+q),
v3=v'(i+p,j+q),
で表される(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を(ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)、上記代表点(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)の動きベクトルの水平・垂直成分をk倍したものとして使用することを特徴とする請求項17ないし19の何れかに記載の画像符号化装置。 - 上記動き補償処理部は、上記フレーム間予測画像の隅の動きベクトルに関する情報を抽出して符号化することを特徴とする請求項20に記載の画像符号化装置。
- 復号化しようとする現フレームの誤差画像の変換信号の情報と動きベクトルの情報を入力する入力部と、
上記誤差画像の変換信号の情報を復号化して誤差画像の信号に変換する変換部と、
上記参照画像と上記動きベクトルの情報とから上記フレーム間予測画像を合成する予測画像合成部と、
上記フレーム間予測画像と上記誤差画像を加算して上記現フレームの復号画像を作る加算部とを有し、
上記予測画像合成部において行われる上記フレーム間予測画像の合成処理部は、上記フレーム間予測画像の座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)(i、j、p、qは整数)に位置する4つの代表点における、上記フレーム間予測画像と上記参照画像の間の動きベクトル(該動きベクトルの水平・垂直成分が1/kの整数倍の値をとり、kは2のhk乗、かつhkは負ではない整数)を求める第1の処理と、画素のサンプリング間隔を水平、垂直方向共に1として、サンプリング点の座標の水平、垂直成分が、共に整数にwを加えた数である点の上に存在している画素を対象として(ただし、w=wn/wd、かつwnは負ではない整数、かつwdは2のhw乗、かつhwは負ではない整数、かつwn<wd)、上記4個の代表点における動きベクトルに対し、共1次内・外挿を行うことによって、上記フレーム間予測画像の座標(x+w,y+w)に位置する画素の動きベクトルを計算する第2の処理と、上記フレーム間予測画像の座標(x+w、y+w)の画素値を上記フレーム間予測画像の座標(x+w、y+w)における動きベクトルと上記参照画像とを用いて計算する第3の処理を含み、
上記第2の処理が、上記フレーム間予測画像の座標(i,j)と(i,j+q)に位置する代表点の上記動きベクトルに対して線形内・外挿を行うことにより、座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として(ただし、zは2のhz乗、かつhzは負ではない整数)求め、さらに座標(i+p,j)と(i+p,j+q)に位置する代表点の動きベクトルに対して線形内・外挿を行うことにより、座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれ1/zの整数倍をとる数値として求める処理と、
その後に、座標(i,y+w)と(i+p,y+w)に位置する上記2個の動きベクトルに対して線形内・外挿を行うことにより、座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれ1/mの整数倍をとる数値として(ただし、mは2のhm乗、かつhmは負ではない整数)求める処理を含むことを特徴とする画像復号化装置。 - 上記座標(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)に位置する代表点の動きベクトルの水平・垂直成分をk倍したものである(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を用いて座標(x+w,y+w)に位置する画素の動きベクトルを求めるときに、
上記座標(i,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uL(y+w),vL(y+w))を、
uL(y+w)=(((q・wd−(y−j)・wd−wn)u0+((y−j)・wd+wn)u2)z)////(q・k・wd),
vL(y+w)=(((q・wd−(y−j)・wd−wn)v0+((y−j)・wd+wn)v2)z)////(q・k・wd)を計算することにより(ただし、「////」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求め、
更に上記座標(i+p,y+w)に位置する点の動きベクトルの水平・垂直成分をそれぞれz倍したものである(uR(y+w),vR(y+w))を、
uR(y+w)=(((q・wd−(y−j)・wd−wn)u1+((y−j)・wd+wn)u3)z)////(q・k・wd)、
vR(y+w)=(((q・wd−(y−j)・wd−wn)v1+((y−j)・wd+wn)v3)z)////(q・k・wd)、
を計算することにより求め、
上記座標(x+w,y+w)に位置する画素の動きベクトルの水平・垂直成分をそれぞれm倍したものである(u(x+w,y+w),v(x+w,y+w))を
u(x+w,y+w)=(((p・wd−(x−i)・wd−wn)uL(y+w)+((x−i)・wd+wn)uR(y+w))m)//(p・z・wd)
v(x+w,y+w)=(((p・wd−(x−i)・wd−wn)vL(y+w)+((x−i)・wd+wn)vR(y+w))m)//(p・z・wd)
を計算することによって(ただし、「//」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)求める処理を行うことを特徴とする請求項22に記載の画像復号化装置。 - rを上記フレーム間予測画像の水平方向の画素数、sを上記フレーム間予測画像の垂直方向の画素数として(ただし、rとsは正の整数)、上記pの絶対値を1/2倍した値は上記rより小さく、かつ上記pの絶対値は上記r以上で、かつ上記qの絶対値を1/2倍した値は上記sより小さく、かつ上記qの絶対値は上記s以上であることを特徴とする請求項22又は23の何れかに記載の画像復号化装置。
- 上記フレーム間予測画像の水平方向と垂直方向の画素数がそれぞれrとsであり(ただし、rとsは正の整数)、かつ上記フレーム間予測画像の画素が水平座標が0以上、上記r未満、垂直座標が0以上、上記s未満の範囲に存在しているときに、座標(−c,−c)、(r−c,−c)、(−c,s−c)、(r−c,s−c)に位置する上記フレーム間予測画像の隅の点上に存在し(ただし、c=cn/cd、かつcnは負ではない整数、かつcdは正の整数、かつcn<cd)、水平・垂直成分が1/nの整数倍の値をとる動きベクトル(ただし、nは正の整数)をn倍したものである(u00,v00)、(u01,v01)、(u02,v02)、(u03,v03)(ただし、u00、v00、u01、v01、u02、v02、u03、v03は整数)を用いて、
u'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)u00+(x・cd+cn)u01+(y・cd+cn)((r・cd−cn−x・cd)u02+(x・cd−cn)u03))k)///(r・s・n・cd2),
v'(x,y)=(((s・cd−cn−y・cd)((r・cd−cn−x・cd)v00+(x・cd+cn)v01)+(y・cd+cn)((r・cd−cn−x・cd)v02+(x・cd+cn)v03))k)///(r・s・n・cd2),
u0=u'(i,j),
v0=v'(i,j),
u1=u'(i+p,j),
v1=v'(i+p,j),
u2=u'(i,j+q),
v2=v'(i,j+q),
u3=u'(i+p,j+q),
v3=v'(i+p,j+q),
で表される(u0,v0)、(u1,v1)、(u2,v2)、(u3,v3)を(ただし、「///」は通常の除算による演算結果が整数ではない場合にこれを近隣の整数に丸め込む除算で、演算子としての優先順位は乗除算と同等)、上記代表点(i,j)、(i+p,j)、(i,j+q)、(i+p,j+q)の動きベクトルの水平・垂直成分をk倍したものとして使用することを特徴とする請求項22ないし24の何れかに記載の画像復号化装置。 - 上記動きベクトルの情報は、上記フレーム間予測画像の隅の点の動きベクトルの情報を含むことを特徴とする請求項22に記載の画像復号化装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14491697 | 1997-06-03 | ||
PCT/JP1998/002435 WO1998056185A1 (en) | 1997-06-03 | 1998-06-02 | Image encoding and decoding method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3764488B2 true JP3764488B2 (ja) | 2006-04-05 |
Family
ID=15373238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50205299A Expired - Fee Related JP3764488B2 (ja) | 1997-06-03 | 1998-06-02 | 画像符号化及び復号化方法及び装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7006571B1 (ja) |
EP (1) | EP0987898B1 (ja) |
JP (1) | JP3764488B2 (ja) |
KR (1) | KR100511810B1 (ja) |
DE (1) | DE69835431T2 (ja) |
MY (1) | MY132917A (ja) |
TW (1) | TW406513B (ja) |
WO (1) | WO1998056185A1 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007058B1 (en) | 2001-07-06 | 2006-02-28 | Mercury Computer Systems, Inc. | Methods and apparatus for binary division using look-up table |
US7809203B2 (en) * | 2001-11-27 | 2010-10-05 | Samsung Electronics Co., Ltd. | Apparatus for encoding and decoding key data and key value data of coordinate interpolator and recording medium containing bitstream into which coordinate interpolator is encoded |
US7602848B2 (en) * | 2002-03-26 | 2009-10-13 | General Instrument Corporation | Methods and apparatus for efficient global motion compensation encoding and associated decoding |
US7809204B2 (en) * | 2002-10-18 | 2010-10-05 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding key value data of coordinate interpolator |
US20050105621A1 (en) * | 2003-11-04 | 2005-05-19 | Ju Chi-Cheng | Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof |
JP4145275B2 (ja) * | 2004-07-27 | 2008-09-03 | 富士通株式会社 | 動きベクトル検出・補償装置 |
KR100943580B1 (ko) * | 2005-07-29 | 2010-02-23 | 삼성전자주식회사 | 제곱근 계산 장치 및 방법 |
WO2007102511A1 (ja) * | 2006-03-09 | 2007-09-13 | Pioneer Corporation | 画像処理装置、画像処理方法、および画像処理プログラム |
EP2153660A4 (en) * | 2007-04-09 | 2013-01-23 | Lg Electronics Inc | METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL |
HUE064092T2 (hu) * | 2011-06-24 | 2024-02-28 | Ntt Docomo Inc | Eljárás mozgáskompenzált predikcióhoz |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI97008C (fi) * | 1993-06-02 | 1996-09-25 | Nokia Oy Ab | Menetelmä videokuvan ennustamiseksi käsittelyjärjestyksessä edellisen kuvan perusteella |
JP3218874B2 (ja) | 1994-08-18 | 2001-10-15 | 株式会社日立製作所 | 画像符号化装置及び画像符号化方法 |
JP3183155B2 (ja) * | 1996-03-18 | 2001-07-03 | 株式会社日立製作所 | 画像復号化装置、及び、画像復号化方法 |
-
1998
- 1998-06-02 JP JP50205299A patent/JP3764488B2/ja not_active Expired - Fee Related
- 1998-06-02 WO PCT/JP1998/002435 patent/WO1998056185A1/ja active IP Right Grant
- 1998-06-02 EP EP98923086A patent/EP0987898B1/en not_active Expired - Lifetime
- 1998-06-02 KR KR10-1999-7011229A patent/KR100511810B1/ko not_active IP Right Cessation
- 1998-06-02 US US09/445,088 patent/US7006571B1/en not_active Expired - Fee Related
- 1998-06-02 DE DE69835431T patent/DE69835431T2/de not_active Expired - Fee Related
- 1998-06-03 TW TW87108731A patent/TW406513B/zh not_active IP Right Cessation
- 1998-06-03 MY MYPI9802482 patent/MY132917A/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP0987898A1 (en) | 2000-03-22 |
TW406513B (en) | 2000-09-21 |
DE69835431D1 (de) | 2006-09-14 |
EP0987898A4 (en) | 2000-09-13 |
EP0987898B1 (en) | 2006-08-02 |
US7006571B1 (en) | 2006-02-28 |
KR20010013238A (ko) | 2001-02-26 |
MY132917A (en) | 2007-10-31 |
DE69835431T2 (de) | 2007-06-06 |
KR100511810B1 (ko) | 2005-09-05 |
WO1998056185A1 (en) | 1998-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100412622B1 (ko) | 화상복호화장치및화상복호화방법 | |
TWI572196B (zh) | 用於次世代視訊編碼之投射式內插預測產生之技術 | |
US20060239356A1 (en) | Inter-frame predicted image synthesizing method | |
JP3764488B2 (ja) | 画像符号化及び復号化方法及び装置 | |
KR100810391B1 (ko) | 움직임 보간을 이용한 프레임 레이트 변환 방법 | |
JP3777998B2 (ja) | グローバル動き補償方法 | |
JPH0865675A (ja) | 画像符号化装置および画像復号化装置 | |
JP3520800B2 (ja) | 画像復号化装置及び画像復号化方法 | |
JP3520858B2 (ja) | 画像符号化装置及び画像符号化方法 | |
JP3520845B2 (ja) | 画像符号化装置及び画像符号化方法 | |
JP3520846B2 (ja) | 画像復号化装置および画像復号化方法 | |
JP2002247588A (ja) | 動きベクトル変換方法及び変換装置 | |
JP2003204557A (ja) | 画像符号化・復号化方法及び画像符号復号装置 | |
JPH11266461A (ja) | 画像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050712 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050912 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051129 |
|
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: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060120 |
|
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: 20090127 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100127 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100127 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110127 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120127 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130127 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |