JP2004165816A - 画像処理装置、符号化装置およびそれらの方法 - Google Patents
画像処理装置、符号化装置およびそれらの方法 Download PDFInfo
- Publication number
- JP2004165816A JP2004165816A JP2002327046A JP2002327046A JP2004165816A JP 2004165816 A JP2004165816 A JP 2004165816A JP 2002327046 A JP2002327046 A JP 2002327046A JP 2002327046 A JP2002327046 A JP 2002327046A JP 2004165816 A JP2004165816 A JP 2004165816A
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- image data
- pixel
- processing
- pixel position
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【解決手段】動きベクトル生成回路34は、処理対象のブロック内の複数の画素位置についての画像データS23の画素データと、候補動きベクトルを用いて得られる画素位置に対応する画像データS31の画素データとの差分に応じた差分値を生成し、複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行って候補動きベクトルを選択する。残差演算制御回路35は、第1の処理を実行中に得られた複数の画素位置のうち一部の画素位置についての差分値を累積した結果が、他の候補動きベクトルを用いた第1の処理によって既に得られている最小の累積値より大きいと判断した場合に第1の処理を終了させる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、画像データの動きベクトルを生成する画像処理装置、当該画像処理装置を用いた符号化装置、並びにそれらの方法に関する。
【0002】
【従来の技術】
近年、画像データとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMEPG(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
【0003】
特に、MPEG2(ISO/IEC13818−2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマー用途の広範なアプリケーションに現在広く用いられている。
MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4〜8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18〜22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
【0004】
MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC14496−2としてその規格が国際標準に承認された。
【0005】
さらに、近年、当初テレビ会議用の画像符号化を目的として、H. 26L(ITU−T Q6/16 VCEG)という標準の規格化が進んでいる。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26L規格ではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced−Compression Video Codingとして行われている。
【0006】
このようなMPEGおよびH.26L規格の符号化装置および復号装置などの画像処理装置では、高い符号化効率を得るために、種々の演算により動きベクトルを生成している。
当該動きベクトルの生成は、例えば、フレーム画像データのマクロブロック内の画素位置について、当該画素位置の画素データと、当該画素位置と候補動きベクトルとによって得られる参照画像のフレーム画像データ内の画素位置の画素データとの差分の二乗和を累積した累積値を最小とする候補動きベクトルを、参照画像内で検索して行われる。
【0007】
【発明が解決しようとする課題】
しかしながら、上述した従来の画像処理装置では、上述した動きベクトルの生成に伴い、全ての候補動きベクトルについて、上記マクロブロック内の全ての画素位置について前記累積値を生成するため、演算量が膨大になり、動きベクトルの生成に伴う処理負担が大きいという問題がある。
【0008】
本発明はかかる事情に鑑みてなされたものであり、従来に比べて少ない演算量で、動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記の目的を達成するため、第1の発明の画像処理装置は、第1の画像データの動きベクトルを、前記第1の画素データと相関を有する第2の画像データを基に生成する画像処理装置において、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行い、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる制御手段とを有する。
【0010】
第1の発明の画像処理装置の作用は以下のようになる。
動きベクトル生成手段が、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う。
そして、動きベクトル生成手段が、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する。
上述した前記動きベクトル生成手段による前記第1の処理の過程で、制御手段が、前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる。
【0011】
また、第1の発明の画像処理装置は、好ましくは、前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、前記動きベクトル生成手段は、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第1の処理を行う。
【0012】
第2の発明の符号化装置は、第1の画像データを、前記第1の画素データと相関を有する第2の画像データを基に符号化する符号化装置であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行い、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる制御手段と、前記動きベクトル生成手段が生成した前記動きベクトルと前記第2の画像データとを用いて第3の画像データを生成する画像生成手段と、前記第1の画像データと、前記画像生成手段が生成した前記第3の画像データとの差分を示す第4の画像データを符号化する符号化手段とを有する。
【0013】
第2の発明の符号化装置の作用は以下のようになる。
動きベクトル生成手段が、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う。
そして、動きベクトル生成手段が、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する。
そして、画像生成手段が、前記動きベクトル生成手段が生成した前記動きベクトルと前記第2の画像データとを用いて第3の画像データを生成する。
そして、符号化手段が、前記第1の画像データと、前記画像生成手段が生成した前記第3の画像データとの差分を示す第4の画像データを符号化する。
上述した前記動きベクトル生成手段による前記第1の処理の過程で、制御手段が、前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる。
【0014】
第3の発明の画像処理方法は、第1の画像データの動きベクトルを、前記第1の画素データと相関を有する第2の画像データを基に生成する画像処理方法であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う第1の工程と、複数の前記候補動きベクトルのうち、前記第1の工程の前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第2の工程と、前記第1の工程の前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる第3の工程とを有する。
【0015】
第4の発明の符号化方法は、第1の画像データを、前記第1の画素データと相関を有する第2の画像データを基に符号化する符号化方法であって、処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う第1の工程と、複数の前記候補動きベクトルのうち、前記第1の工程の第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第2の工程と、前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる第3の工程と、前記第2の工程で選択した前記動きベクトルと前記第2の画像データとを用いて第3の画像データを生成する第4の工程と、前記第1の画像データと、前記第4の工程で生成した前記第3の画像データとの差分を示す第4の画像データを符号化する第5の工程とを有する。
【0016】
【発明の実施の形態】
〔本発明の関連技術〕
図1は、本発明の関連技術に係わる符号化装置500の機能ブロック図である。
図1に示す符号化装置500において、入力となる画像信号は、まず、A/D変換回路501においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP(Group of Pictures)構造に応じ、画面並べ替え回路502においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われる画像に関しては、フレーム画像データの全体が直交変換回路504に入力され、直交変換回路504において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路504の出力となる変換係数は、量子化回路505において量子化処理される。
量子化回路505の出力となる、量子化された変換係数は、可逆符号化回路506に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ507に蓄積され、圧縮された画像データとして出力される。
量子化回路505における量子化レートは、レート制御回路512によって制御される。同時に、量子化回路505の出力となる、量子化された変換係数は、逆量子化回路508に入力され、さらに逆直交変換回路509において逆直交変換処理が施されて、復号された参照フレーム画像データとなり、その参照フレーム画像データがフレームメモリ510に蓄積される。
【0017】
一方、インター符号化が行われる画像に関しては、画面並べ替え回路502から出力されたフレーム画像データが、動き予測・補償回路511に入力される。同時に参照フレーム画像データがフレームメモリ510より読み出され、動き予測・補償回路511によって動きベクトルが生成され、当該動きベクトルおよび参照フレーム画像データを用いて予測フレーム画像データが生成される。予測フレーム画像データが演算回路503に出力され、演算回路503において、画面並べ替え回路502からのフレーム画像データと、動き予測・補償回路511からの予測フレーム画像データとの差分を示す画像データが生成され、当該画像データが直交変換回路504に出力される。
また、動き補償・予測回路511は、動きベクトルを可逆符号化回路506に出力し、可逆符号化回路506において、動きベクトルが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像信号のヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像信号と同様である。
【0018】
上述した動き補償・予測回路511における動きベクトルの生成は、例えば、下記式(1)で示される。
【0019】
【数1】
【0020】
上記式(1)において、sはマクロブロックMB内の画素位置を示す。
F_CUR(s)は動きベクトルの生成対象となるフレーム画像データの画素位置sの画素データ(画素値)を示し、F_REF(s)は参照フレーム画像データの画素位置sの画素データを示している。また、MV(s)は、フレーム画像データの画素位置sの動きベクトルを示している。
【0021】
動きベクトルの生成方法としては、様々なものが提案されているが、現在、最も広範に用いられているのが、ブロックマッチング(Block Matching Algorithm、以下、BMA方式と呼ぶ)である。
BMAは、例えば、下記式(2)に示すように、フレーム画像データについて画像処理の単位として規定された16×16画素のマクロブロックMB内の所定の画素位置s1の動きベクトルMVを、当該マクロブロックMB内のその他の画素位置の動きベクトルとして用いる。すなわち、マクロブロックMB内の全ての画素位置で同じ動きベクトルMVを用いる。
【0022】
【数2】
【0023】
BMA方式においては、各マクロブロックMBにおける動きベクトル情報は、隣接するマクロブロックMBの動きベクトルMVには影響を及ぼさないため、収束演算を必要とせず、その演算量は限られている。
しかし、BMAでは、拡大、回転といった動きをうまく表現することができず、図1に示された符号化装置500で、その出力となる符号化された画像データ内にブロック歪が生じてしまうという問題がある。
【0024】
かかる問題を解決するため、“Motion Compensation
for Video Compression Using Control
Grid Interpolation”,(G.L.Sullivan andR.L.Baker, IEEE Conf. on Acoustic Speech and Signal Proc. pp2713−2716,1991)には、いわゆるCGI(Control Grid Interpolation)方式と呼ばれる動きベクトル生成手法が提案されている。
CGI方式は、図2に示すように、マクロブロックMBの全ての画素位置sの動きベクトルMV(s)を、下記式(3)を基に、当該マクロブロックMBに隣接するマクロブロックMBの代表画素位置s(s1,s2,s3,s4)の動きベクトルMV(MV(s1),MV(s2),MV(s3),MV(s4))を用いて収束演算を行って生成する。
【0025】
【数3】
【0026】
ところで、図3に示すように、MB4を動きベクトル生成の対象となるマクロブロックとし、MB2,MB3,MB4をMB1に隣接するマクロブロックとした場合を考える。
また、MV(s1)、MV(s2),MV(s3)、MV(s4)を、それぞれMB1〜MB4に対するCGI動きベクトルとする。
ここで、探索対象はMV(s4)であるが、MV(s4)が変化することで、MB4のみならず、MB1〜MB3の残差エネルギも変化する。
従って、CGI方式では、下記式(4)に示すように、MB1〜MB4の残差エネルギε1,ε2,ε3,ε4の総残差エネルギεを最小にするMV(s4)を探索する。
【0027】
【数4】
【0028】
各マクロブロックMBの残差エネルギεは、フレーム画像データ内のマクロブロックMB_Oと、参照画像データ内のマクロブロックMB_R内の16×16の画素位置を図4に示すように規定すると、下記式(5)で示される。
【0029】
【数5】
【0030】
しかしながら、上述したCGI方式では、4つのマクロブロックについての上記式(5)に示す演算を、総残差エネルギεを最小にするMV(s4)を探索するまで繰り返し行うため、演算量が膨大になり、動きベクトル生成に伴う処理負担が大きいという問題がある。
【0031】
また、上述したCGI方式において各マクロブロックMBに対する最適な動きベクトルを求める手法として、CPMV(Control Point MotionVector)が提案されている。
【0032】
上述したCGI方式およびCPMV方式を用いれば、拡大や回転を含むシーケンスに関しては、前述したBMA方式に比べ、高い符号化効率を実現できる。
しかしながら、平行移動を含むシーケンスに関しては、BMA方式を上回る符号化効率を実現することが出来ないという問題を有する。
【0033】
かかる問題を解決するため、“On Spatial Adaptationof Motion Field Smoothness”,(P.Ishwar and Pierre Moulin, IEEE Trans. on Circuit and Systems for Video Tech.,pp980−989, Sept 2000)には、SCGI(SwitchedControl−Grid Interpolation)方式が提案されている。
SCGI方式では、各マクロブロックMBに対し、BMA方式とCGI方式との両手法で、動きベクトルを生成し、より高い符号化効率を実現可能な動きベクトルを選択する。
SCGI方式によれば、平行移動を含むシーケンス、及び、拡大、回転等の動きを含むシーケンスの双方で、先述のBMA,CGIより高い符号化効率を実現することが可能となる。
また、SCGI方式では、1ビットの識別データ(label)により、BMAとCGIのどちらが選択されたかに関する情報を、符号化データに埋め込む。図5は、BMA方式,CGI方式,SCGI方式による動きモデルの違いを1次元で表した図である。
【0034】
ところで、上述したように、CGI方式およびSCGI方式では、マクロブロックMB内の全ての画素位置の動きベクトルを、当該マクロブロックMBに隣接する3つのマクロブロックMBの所定の画素位置の動きベクトルを用いて所定の演算を行って生成する。そして、この演算過程において、マクロブロック内の全ての画素位置について、上記式(5)を基に差分の二乗を算出し、これを累積して残差エネルギεを算出する。
従って、動きベクトルの生成に伴う演算量が大きく、負荷が大きいという問題がある。
後述する実施形態は、かかる事情に鑑みてなされたものであり、上述した従来の手法に比べて、少ない演算量で、比較的高い符号化効率を提供する動きベクトルを生成できる画像処理装置およびその方法に関するものである。
【0035】
図6は、図1に示す符号化装置500に対応する復号回路499の機能ブロック図である。
図6に示す復号回路499では、入力となる画像データがバッファ613に格納された後、可逆復号回路614に出力される。そして、可逆復号回路614において、フレーム画像データのフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレーム画像データがインター符号化されたものである場合には、可逆復号回路614において、フレーム画像データのヘッダ部に格納された動きベクトルMVも復号され、その動きベクトルMVが動き予測・補償装置620に出力される。
【0036】
可逆復号回路614の出力となる、量子化された変換係数は、逆量子化回路615に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路616において、定められたフレーム画像データのフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替えバッファ618に格納され、D/A変換回路619によるD/A変換処理を経て出力される。
【0037】
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路620において動きベクトルMV、及びフレームメモリ621に格納された参照フレーム画像データを基に予測フレーム画像データが生成され、この予測フレーム画像データと、逆直交変換回路616から出力されたフレーム画像データとが加算器617において加算される。その他の処理はイントラ符号化されたフレーム画像データと同様である。
【0038】
動き予測・補償装置の用途は、上述の画像圧縮に限らない。
例えば、図7に示すように、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置は、動き予測回路722、フレームメモリ723、補間画像生成装置724、遅延バッファ725およびセレクタ726を有する。
動き予測回路722は、入力となるn[ Hz] の画像データの構成要素であるフレーム画像データと、それより時間的に前にフレームメモリ23に蓄積された参照フレーム画像データとを用いて、動きベクトルの探索および生成を行う。
図8に示す例では、フレームメモリ723に蓄積された、時刻tにおけるフレーム画像データFLAME1、及び時刻t+2δtにおけるフレーム画像データFLAME2との間で動きベクトルMVの探索が行われる。
そして、補間画像生成回路724において、この動きベクトル情報MVを用いて、時刻t+δtにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データFLAME_INTERと、フレーム画像データFLMAE1を、一定のタイミングでセレクタ726で選択して、m〔Hz〕(m>n)となるような出力画像を生成する。図8は、m=2の例である。
【0039】
以下、上述した問題を解決するための本実施形態の画像処理装置、符号化装置、復号装置、およびそれらの方法について説明する。
第1実施形態
図9は、本実施形態の通信システム1の概念図である。
図9に示すように、通信システム1は、送信側に設けられた符号化装置2と、受信側に設けられた復号装置3とを有する。
通信システム1では、送信側の符号化装置2において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ(ビットストリーム)を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルTV網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
なお、本実施形態では、符号化装置2における動きベクトルMVの生成、並びに復号装置3における動きベクトルMVおよび参照フレーム画像データを用いたフレーム画像データの生成に特徴を有している。
【0040】
〔符号化装置2〕
符号化装置2は、前述したCGI方式で動きベクトルの生成を行う。
図10は、図9に示す符号化装置2の全体構成図である。
図10に示すように、符号化装置2は、例えば、A/D変換回路22、画面並べ替え回路23、演算回路24、直交変換回路25、量子化回路26、可逆符号化回路27、バッファ28、逆量子化回路29、逆直交変換回路30、フレームメモリ31、レート制御回路32、動きベクトル生成回路34、残差演算制御回路35および動き予測・補償回路36を有する。
ここで、動きベクトル生成回路34が本発明の動きベクトル生成手段に対応し、残差演算制御回路35が本発明の制御手段に対応している。
また、動き予測・補償回路36が本発明の画像生成手段に対応し、可逆符号化回路27が本発明の符号化手段に対応している。
【0041】
以下、符号化装置2の構成要素について説明する。
A/D変換回路22は、入力されたアナログの輝度信号Y、色差信号Pb,Prから構成される画像信号をデジタルの画像信号に変換し、これを画面並べ替え回路23に出力する。
画面並べ替え回路23は、A/D変換回路22から入力した画像信号内のフレーム画像信号を、そのピクチャタイプI,P,BからなるGOP(Group Of Pictures) 構造に応じて、符号化する順番に並べ替えたフレーム画像データS23を演算回路24および動き予測・補償回路36に出力する。
【0042】
演算回路24は、フレーム画像データS23がインター(Inter) 符号化される場合には、フレーム画像データS23と、動き予測・補償回路36から入力した予測フレーム画像データS36aとの差分を示す画像データS24を生成し、これを直交変換回路25に出力する。
また、演算回路24は、フレーム画像データS23がイントラ(Intra) 符号化される場合には、フレーム画像データS23を画像データS24として直交変換回路25に出力する。
直交変換回路25は、画像データS24に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ(例えばDCT係数信号)S25を生成し、これを量子化回路26に出力する。
量子化回路26は、レート制御回路32から入力した量子化スケールで、画像データS25を量子化して画像データS26を生成し、これを可逆符号化回路27および逆量子化回路29に出力する。
【0043】
可逆符号化回路27は、画像データS26を可変長符号化あるいは算術符号化した画像データをバッファ28に格納する。
このとき、可逆符号化回路27は、動き予測・補償回路36から入力した動きベクトルMVあるいはその差分を符号化してヘッダデータに格納する。
バッファ28に格納された画像データは、変調等された後に送信される。
逆量子化回路29は、画像データS26を逆量子化した信号を生成し、これを逆直交変換回路30に出力する。
逆直交変換回路30は、逆量子化回路29から入力した画像データに、上記直交変換を逆変換を施して生成したフレーム画像データをフレームメモリ31に格納する。
レート制御回路32は、バッファ23から読み出した画像データを基に量子化スケールを生成し、これを量子化回路26に出力する。
【0044】
動きベクトル生成回路34は、図11に示すように、動き予測・補償回路36を介して入力したフレーム画像データS23(本発明の第1の画像データ)の各画素位置の動きベクトルMVを、マクロブロックを単位として、参照画像のフレーム画像データS31(本発明の第2の画像データ)内の所定の検索範囲を探索して生成し、これを可逆符号化回路27に出力する。ここで、フレーム画像データS23とS31とは相関性を有している。
具体的には、動きベクトル生成回路34は、処理対象のマクロブロック内の複数の画素位置について、当該画素位置に対応するフレーム画像データS23の画素データと、当該画素位置と当該画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応するフレーム画像データS31の画素データとの差分に応じた差分値を生成し、上記複数の画素位置について得られた差分値を累積して累積値を生成する第1の処理を行う。
そして、動きベクトル生成回路34は、複数の上記候補動きベクトルのうち、上記第1の処理によって生成された累積値が最小の前記候補動きベクトルを選択(検索)する。
このとき、動きベクトル生成回路34は、残差演算制御回路35からの制御信号REが上記第1の処理の停止を示す場合に、当該第1の処理を停止して、新たな候補動きベクトルを用いて上記第1の処理を行う。
【0045】
本実施形態では、前述したCGI方式を採用しており、処理対象のマクロブロック内の画素位置の動きベクトルを基に、当該処理対象のマクロブロックに隣接する他のマクロブロック内の画素位置の動きベクトルが規定される。
従って、動きベクトル生成回路34は、処理対象のマクロブロック、並びに上記他のブロック内の画素位置について上記前記第1の処理を行い、当該第1の処理によって得られた累積値が最小の候補動きベクトルを選択(検索)する。
【0046】
動きベクトル生成回路34は、図12に示すように、処理対象のマクロブロック、並びに当該処理対象のマクロブロックに隣接するマクロブロックについて、マクロブロックを単位として当該マクロブロック内の前記画素位置をラインに沿って走査して前記累積値を順に生成する。
なお、動きベクトル生成回路34は、図13に示すように、上記処理対象のマクロブロック、並びに当該処理対象のマクロブロックに隣接するマクロブロックについて、複数のマクロブロックに跨がって規定されたラインに沿って走査を行って上記累積値を順に生成してもよい。
【0047】
残差演算制御回路35は、動きベクトル生成回路34が上記第1の処理を行う過程で、図14に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果(中間残差エネルギε_temp)が、他の候補動きベクトルを用いて既に終了した上記第1の処理によって得られた暫定的に最小の上記累積値(残差エネルギε_min)より大きいと判断した場合に、上記第1の処理を停止することを示す制御信号REを動きベクトル生成回路34に出力する。
具体的には、処理対象のマクロブロック内の画素位置の動きベクトルを基に、処理対象のマクロブロックに隣接する他のマクロブロック内の画素位置の動きベクトルが規定される場合、すなわちCGI方式を採用した場合には以下のようになる。
すなわち、残差演算制御回路35は、動きベクトル生成回路34が処理対象となるマクロブロックおよびそれに隣接するマクロブロックの全体について上記累積値を算出する過程で生成した中間値が、既に終了した他の候補動きベクトルを用いた上記第1の処理によって得られた最小の累積値より大きいと判断した場合に、上記第1の処理を停止することを示す制御信号REを動きベクトル生成回路34に出力する。
この場合に、残差演算制御回路35は、上述したように動きベクトル生成回路34が生成した1ライン分の走査によって得られた累積値を用いて、上記判断を行う。
【0048】
以下、動きベクトル生成回路34による動きベクトルMVの生成処理を説明する。
CGIでは、図11および図15に示すように、フレーム画像データS23内のマクロブロックMBの全ての画素位置sの動きベクトルMV(s)を、下記式(6)を基に、当該マクロブロックMBに隣接するマクロブロックMBの代表画素位置s(s1,s2,s3,s4)の動きベクトルMV(MV(s1),MV(s2),MV(s3),MV(s4))を用いて収束演算を行って生成する。
【0049】
【数6】
【0050】
上記式(6)におけるwを画素位置を引数とする双1次関数である重み付け関数としている。
ここで、重み付け関数wは、マクロブロックMBのサイズを2m ×2n (m,nは整数)とした場合に、その値はk/2l (k,lは整数)となり、除算を行うことなく、シフト演算によって実現される。
【0051】
ところで、図11および図15に示すように、フレーム画像データS23についてのMB4を動きベクトル生成の対象となる(処理対象の)マクロブロックとし、MB1,MB2,MB3をMB4に隣接するマクロブロックとした場合を考える。
また、MV(s1)、MV(s2),MV(s3)、MV(s4)を、それぞれMB1〜MB4に対するCGI動きベクトルとする。
ここで、探索対象はMV(s4)であるが、MV(s4)が変化することで、MB4の残差エネルギのみならず、MB1〜MB3の残差エネルギも変化する。従って、動きベクトル生成回路34は、下記式(7)に示すように、MB1〜MB4の残差エネルギε1,ε2,ε3,ε4の総和の残差エネルギε(本発明の累積値)を最小にするMV(s4)を探索する。
【0052】
【数7】
【0053】
各マクロブロックMBの残差エネルギεは、フレーム画像データS23内のマクロブロックMB_Oと、参照画像のフレーム画像データS31内のマクロブロックMB_R内の16×16の画素位置を前述した図14に示すように規定すると、下記式(8)で示される。
【0054】
【数8】
【0055】
上述したCGI方式では、上記4つのマクロブロックについての上記式(8)に示す演算を、残差エネルギεを最小にするMV(s4)を探索するまで繰り返し行う。
【0056】
以下、動きベクトル生成回路34が、フレーム画像データS23内の全てのマクロブロックMB(i,j)の代表画素位置(s1,s2,s3,s4)の動きベクトルMV(i,j)を生成する手順を説明する。
図16は、当該手順を説明するためのフローチャートである。
ステップST1:
動きベクトル生成回路34は、動き予測・補償回路36から入力したフレーム画像データS23内のマクロブロックMB(i,j)の代表画素位置の動きベクトルMV(i,j)を0に初期化する。
また、動きベクトル生成回路34は、動きベクトルMV(i,j)の収束の有無を示す変数local_opt(i,j)、並びに動きベクトルの生成処理の繰り返し回数を示す変数itrを0に初期化する。
【0057】
ステップST2:
動きベクトル生成回路34は、変数itrをインクリメントする。
また、動きベクトル生成回路34は、全てのマクロブロックMB(i,j)の変数local_opt(i,j)が1を示し、全ての動きベクトルMV(i,j)が収束したかを判断する指標となる変数cout_checkを0に初期化する。
【0058】
動きベクトル生成回路34は、以下に示すステップST3〜S9の処理を、全てのマクロブロックMB(i,j)について行う。
【0059】
ステップST3:
動きベクトル生成回路34は、変数local_opt(i,j)が0を示すか否かを判断し、0を示すと判断した場合にはステップST4の処理に進み、そうでない場合(1を示す場合)には、次のマクロブロックMB(i,j)についてステップST3の処理を行う。
ステップST4:
動きベクトル生成回路34は、変数count_checkをインクリメントする。
ステップST5:
動きベクトル生成回路34は、動きベクトルMV_oldに、動きベクトルMV(i,j)を代入する。
ステップST6:
動きベクトル生成回路34は、図11〜図15を用いて前述したCGI方式で、当該マクロブロックMB(i,j)の代表画素データの動きベクトルMV(i,j)を検索する。
この場合に、動きベクトル生成回路34は、上述した式(7)で示される残差エネルギεを演算し、当該残差エネルギεを最小にする動きベクトルを探索結果として選択する。
動きベクトル生成回路34による残差エネルギεを生成する演算は、前述したように、残差演算制御回路35からの制御信号REを基に停止する。
ステップST6の処理手順については、後に詳細に説明する。
【0060】
ステップST7:
動きベクトル生成回路34は、動きベクトルMV_oldと、ステップST6で検索した動きベクトルMV(i,j)とが一致するか否かを判断し、一致すると判断した場合にはステップST8の処理に進み、一致しないと判断した場合にはステップST9の処理に進む。
【0061】
ステップST8:
動きベクトル生成回路34は、変数local_opt(i,j)に1を設定する。
ステップST9:
動きベクトル生成回路34は、処理対象のマクロブロックMB(i,j)の周辺のマクロブロックMBの変数local_opt(i,j)に0を設定する。図15に示す例では、マクロブロックMB4の動きベクトルMV(s4)を生成している場合には、動きベクトル生成回路34は、マクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3の変数local_opt(i,j)に0を設定する。
【0062】
ステップST10:
動きベクトル生成回路34は、全てのマクロブロックMB(i,j)について前述したステップST3〜ST9の処理が終了した後に、変数check_countが0であるか否かを判断し、0でないと判断した場合にはステップST11の処理に進み、0であると判断した場合には処理を終了する。
ステップST11:
動きベクトル生成回路34は、変数itrが所定の回数max_itrに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップST2の処理に戻る。
【0063】
以下、図16に示すステップST6の処理を詳細に説明する。
図17は、図16に示すステップST6の手順を説明するためのフローチャートである。
ステップST21:
動きベクトル生成回路34は、フレーム画像データS23内の処理対象のマクロブロックの代表画素位置s4と、参照画像のフレーム画像データS31内の検索範囲内に位置する複数のマクロブロック内の対応する画素位置との間の複数の候補動きベクトルのうち、未処理の候補動きベクトルを選択する。
【0064】
ステップST22:
動きベクトル生成回路34は、上記式(6)の動きベクトルMV(s4)としてステップST21で選択した候補動きベクトルを用いて上記式(7)に示す残差エネルギεを演算する過程で、図12および図13を用いて説明した1ライン分の画素位置について、フレーム画像データS23内の対応する画素位置の画素データと、フレーム画像データS31内の当該画素位置と上記動きベクトルとによって規定される画素位置の画像データとの差分の二乗和を算出し、これを上記残差エネルギεの演算過程で前回得られた中間残差エネルギε_temp(中間値)に加算し、これを新たな中間残差エネルギε_tempとする。
動きベクトル生成回路34は、上記新たな中間残差エネルギε_tempを、残差演算制御回路35に出力する。
【0065】
ステップST23:
残差演算制御回路35は、動きベクトル生成回路34が動きベクトル生成回路34から入力した中間残差エネルギε_tempが、他の候補動きベクトルを用いて既に得られた暫定的に最小の残差エネルギε_minより大きい否かを判断する。
そして、残差演算制御回路35は、中間残差エネルギε_tempが最小の残差エネルギε_minより大きいと判断した場合に、当該候補動きベクトルを基にした残差エネルギの演算処理(第1の処理)を停止することを示す制御信号REを動きベクトル生成回路34に出力し、そうでない場合にはステップST24の処理に進む。
動きベクトル生成回路34は、第1の処理を停止することを示す制御信号REを基に実行中の第1の処理を終了してステップST21の処理に戻る。
【0066】
ステップST24:
動きベクトル生成回路34は、処理対象のマクロブロックの全てのラインについて、上記ステップST22の処理を終了したか否かを判断し、終了したと判断した場合にはステップST25の処理に進み、そうでない場合には、未処理のラインについてステップST22の処理を行う。
【0067】
ステップST25:
動きベクトル生成回路34は、ステップST22で得られた中間残差エネルギε_tempを、暫定的に最小の残差エネルギε_minとする。
そして、動きベクトル生成回路34は、処理対象とするマクロブロックについて、参照画像のフレーム画像データS31内の検索範囲内に位置する複数のマクロブロック内に対応する全ての候補動きベクトルについて、ステップST22〜ST24の処理を行ったか否かを判断し、行ったと判断した場合にはステップST26の処理に進み、行っていないと判断した場合にはステップST21の処理に戻る。
【0068】
ステップST26:
動きベクトル生成回路34は、暫定的に最小の残差エネルギε_minを生成するのに用いた候補動きベクトルを、動きベクトルとして選択する。
【0069】
動き予測・補償回路36は、参照画像のフレーム画像データS31と、動きベクトルMVとを用いて、動き予測された予測フレーム画像データS36aを生成し、これを演算回路24に出力する。
そして、動き予測・補償回路36は、予測フレーム画像データS36aを演算回路24に出力する。
また、動き予測・補償回路36は、動きベクトル生成回路34から入力した動きベクトルMVを可逆符号化回路27に出力する。
【0070】
次に、図10に示す符号化装置2の全体動作を説明する。
入力となる画像信号は、まず、A/D変換回路22においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP構造に応じ、画面並べ替え回路23においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われるフレーム画像データに関しては、フレーム画像データ全体の画像情報が直交変換回路25に入力され、直交変換回路25において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路25の出力となる変換係数は、量子化回路26において量子化処理される。
量子化回路26の出力となる、量子化された変換係数は、可逆変換回路27に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ28に蓄積され、圧縮された画像データとして出力される。
量子化回路26における量子化レートは、レート制御回路32によって制御される。同時に、量子化回路26の出力となる、量子化された変換係数は、逆量子化回路29に入力され、さらに逆直交変換回路30において逆直交変換処理が施されて、復号されたフレーム画像データとなり、そのフレーム画像データがフレームメモリ31に蓄積される。
【0071】
一方、インター符号化が行われる画像に関しては、先ず、そのフレーム画像データS23が動き予測・補償回路36に入力される。また、参照画像のフレーム画像データS31がフレームメモリ31より読み出され、動き予測・補償回路36に出力される。
そして、動き予測・補償回路36から動きベクトル生成回路34に、フレーム画像データS23および参照画像のフレーム画像データS31が出力される。
そして、動きベクトル生成回路34において、前述したように、CGI方式で動きベクトルMVが生成され。これが可逆符号化回路27に出力される。
この過程で、前述したように、残差演算制御回路35が、動きベクトル生成回路34から入力した中間残差エネルギε_tempが、暫定的な残差エネルギε_minより大きい場合に、制御信号REを動きベクトル生成回路34に出力して、選択した候補動きベクトルを用いた残差エネルギεの演算を中止させる。
【0072】
そして、動き予測・補償回路36において、参照画像のフレーム画像データS31および動きベクトルMVを用いて、予測フレーム画像データS36aが生成される。
動き予測・補償回路36は、予測フレーム画像データS36aを演算回路24に出力する。
【0073】
そして、演算回路24において、画面並べ替え回路23からのフレーム画像データと、動き予測・補償回路36からの予測フレーム画像データS36aとの差分信号である画像データS24が生成され、当該画像データS24が直交変換回路25に出力される。
そして、可逆符号化回路27において、動きベクトルMVが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像データのヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像データと同様である。
【0074】
以上説明したように、符号化装置2では、残差演算制御回路35が、動きベクトル生成回路34が上記第1の処理を行う過程で、図14に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果(中間残差エネルギε_temp)が、他の候補動きベクトルを用いて既に終了した上記第1の処理によって得られた暫定的に最小の上記累積値(残差エネルギε_min)より大きいと判断した場合に、動きベクトル生成回路34による上記第1の処理を停止させる。
そのため、符号化装置2によれば、従来に比べて、動きベクトル生成回路34の演算量を削減でき、その処理負担を軽減できる。
【0075】
〔復号装置3〕
図18は、復号装置3の機能ブロック図である。
図18に示すように、復号装置3は、例えば、蓄積バッファ71、可逆復号化回路72、逆量子化回路73、逆直交変換回路74、演算回路75、画面並べ替え回路76、D/A変換回路77、フレームメモリ78および動き予測・補償回路81を有する。
【0076】
蓄積バッファ71は、図10に示す符号化装置2で符号化され、続いて変調されて送信された画像信号が受信され、当該画像信号が復調されると、当該復調によって得られたフレーム画像データを記憶する。
可逆復号化回路72は、蓄積バッファ71から入力したフレーム画像データに対して、可逆符号化回路27の符号化処理に対応する復号処理を行い、それによって得られた画像データを逆量子化回路73に出力し、当該復号処理で得られた動きベクトルMVを動き予測・補償回路81に出力する。
【0077】
逆量子化回路73は、可逆復号化回路72から入力した画像データを逆量子化して逆直交変換回路74に出力する。
逆直交変換回路74は、逆量子化回路73から入力した画像データに、図10に示す直交変換回路25の直交変換処理に対応する逆直交変換処理を施し、それによって得られたフレーム画像データS74を演算回路75に出力する。
【0078】
演算回路75は、逆直交変換回路74からのフレーム画像データS74と、動き予測・補償回路81からの予測フレーム画像データS81とを加算してフレーム画像データS75を生成し、これを画面並べ替え回路76およびフレームメモリ78に出力する。
画面並べ替え回路76は、フレーム画像データS75を表示順に並べ替えてD/A変換回路77に出力する。
D/A変換回路77は、画面並べ替え回路76から入力したデジタルのフレーム画像データをアナログの画像信号に変換して出力する。
【0079】
フレームメモリ78は、フレーム画像データS75を参照フレーム画像データとして記憶する。
【0080】
動き予測・補償回路81は、フレームメモリ78から読み出されたフレーム画像データS23と、可逆復号化回路72から入力した動きベクトルMVとを用いて、予測フレーム画像データS81を生成し、これを演算回路75に出力する。
【0081】
以下、復号装置3の全体動作例を説明する。
復号装置3では、入力となる画像データがバッファ71に格納された後、可逆復号回路72に出力される。
そして、可逆復号化回路72において、定められた画像圧縮情報のフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレームがインター符号化されたものである場合には、可逆復号化回路72において、画像信号のヘッダ部に格納された動きベクトルMVも復号され、その動きベクトルMVが動き予測・補償装置81に出力される。
【0082】
可逆復号化回路72の出力となる、量子化された変換係数は、逆量子化回路73に入力され、ここで変換係数が生成される。当該変換係数には、逆直交変換回路74において、定められた画像圧縮情報のフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは画面並べ替え回路76に格納され、D/A変換回路77によるD/A変換処理を経て出力される。
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路81からサブブロック分割回路79に、参照フレーム画像データS78および動きベクトルMVが出力される。
【0083】
そして、動き予測・補償回路81が、フレームメモリ78から読み出された参照フレーム画像データS78と、可逆復号化回路72から入力した動きベクトルMVとを用いて、予測フレーム画像データS81を生成し、これを演算回路75に出力する。
【0084】
以上説明したように、復号装置3によれば、符号化装置2によって符号化されたフレーム画像データを適切に復号することができる。
【0085】
第2実施形態
上述した実施形態では、符号化装置2の動きベクトル生成回路34がフレーム画像データS23および参照画像のフレーム画像データS31をそのまま用いて、動きベクトルMVの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図19は、当該実施形態における動きベクトル生成回路34の動きベクトルMVの探索方法を説明するための図である。
動きベクトル生成回路34は、フレーム画像データS23および参照画像のフーム画像データS31の各々を、水平方向および垂直方法のそれぞれに対して1/2に画素データをダウンサンプリング(間引き処理)してフレーム画像データFLS23_1および参照画像のフレーム画像データS31_1を生成する。
また、動きベクトル生成回路34は、フレーム画像データS23_1および参照画像のフレーム画像データS31_1の各々を、水平方向および垂直方法のそれぞれに対して1/2に画素データをダウンサンプリングしてフレーム画像データS23_2および参照画像のフレーム画像データS31_2を生成する。
【0086】
そして、動きベクトル生成回路34は、フレーム画像データS23_2および参照画像のフレーム画像データS31_2を用いて第1実施形態で説明した第1の手法で各マクロブロックMBの代表画素位置の動きベクトルMV_2の第1の検索を行う。
そして、動きベクトル生成回路34は、フレーム画像データS23_1および参照フレーム画像データS31_1を用いて、フレーム画像データS23_1内の画素データのうち、上記第1の検索によって得られた動きベクトルMV_2によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし動きベクトルMV_1の第2の検索を行う。
そして、フレーム画像データS23および参照フレーム画像データS31を用いて、フレーム画像データS23内の画素データのうち、上記第2の検索によって得られた動きベクトルMV_1によって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし動きベクトルMVの第3の検索を行う。
【0087】
上述したように、動きベクトル生成回路34において、動きベクトルMVの検索を階層的に行うことで、動きベクトルMVの検索範囲を小さくでき、動きベクトルMVの検索を少ない演算量で高精度に行うことができる。
【0088】
上述した実施形態では、動きベクトルMVを3階層で行う場合を例示したが、2階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ1/2に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【0089】
第3実施形態
上述した第1実施形態では、図10に示す動きベクトル生成回路34が、マクロブロックMB内の代表画素位置の動きベクトルMVの生成を図16および図17に示すステップST6のようにCGI方式で行う場合を例示した。
本実施形態では、動きベクトル生成回路が、第1実施形態で説明したCGI方式とBMA方式とを選択的に使用して各マクロブロックの動きベクトルを生成する場合を説明する。
図20は、本実施形態の符号化装置102の機能ブロック図である。
図20において、図10と同じ符号を付した構成要素は第1実施形態で説明したものと同じである。
符号化装置102は、前述したSCGI方式で動きベクトルの生成を行う。
符号化装置102では、図20に示す動きベクトル生成回路134が、第1実施形態で説明したCGI方式と、BMA方式とによって得られた動きベクトルMVのうち、フレーム画像データS23の符号化効率をより高くできる動きベクトルMVを選択する。
【0090】
BMA方式は、前述したように、いわゆるブロックマッチング法であり、例えば、上記式(1),(2)に示すように、フレーム画像データについて画像処理の単位として規定された16×16画素のマクロブロックMB内の所定の画素位置s1の動きベクトルMVを、当該マクロブロックMB内のその他の画素位置の動きベクトルとして用いる。すなわち、マクロブロックMB内の全ての画素位置で同じ動きベクトルMVを用いる。
BMA方式においては、各マクロブロックMBにおける動きベクトル情報は、隣接するマクロブロックMBの動きベクトルMVには影響を及ぼさないため、収束演算を必要とせず、その演算量は限られている。
【0091】
動きベクトル生成回路134は、第1実施形態で説明した上記式(7)を基に、処理対象のマクロブロックMB4、並びに当該マクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3の残差エネルギε1〜ε4を算出する場合に、BMA方式を基に動きベクトルを生成したマクロブロックMB1〜MB3については残差エネルギε1〜ε3を算出しない。
例えば、図21に示すように、処理対象のマクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3のうち、マクロブロックMB1,MB3はCGI方式で動きベクトルが生成され、マクロブロックMB2がBMA方式で動きベクトルが生成されている場合に、動きベクトル生成回路134は、下記式(9)に示すように、残差エネルギεを生成する。すなわち、マクロブロックMB2の残差エネルギε2は加算しない。
【0092】
【数9】
【0093】
また、図22に示すように、処理対象のマクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3のうち、マクロブロックMB1,MB2はCGI方式で動きベクトルが生成され、マクロブロックMB3がBMA方式で動きベクトルが生成されている場合に、動きベクトル生成回路134は、下記式(10)に示すように、残差エネルギεを生成する。すなわち、マクロブロックMB3の残差エネルギε3は加算しない。
【0094】
【数10】
【0095】
また、図23に示すように、横方向に隣接するマクロブロックに跨がって走査を行って残差エネルギεを生成する場合に、CGI方式のマクロブロックMB1,MB2については、図13を用いて前述した方法で残差エネルギε1,ε2を生成し、CGI方式のいマクロブロックMB4については図12を用いて前述した方法で残差エネルギε4を生成し、上記式(10)を基に残差エネルギεを生成する。
【0096】
図24および図25は、図20に示す符号化装置102の動きベクトル生成回路134における代表画素位置の動きベクトルMVの生成処理を説明するためのフローチャートである。
ここで、動きベクトルMV_CGI(i,j)は上記CGI方式で検索した代表画素位置の動きベクトルMVである。
動きベクトルMV_BMA(i,j)は上記BMA方式で検索した代表画素位置の動きベクトルMVである。
【0097】
ステップST31:
動きベクトル生成回路134は、動き予測・補償回路36から入力したフレーム画像データS23のマクロブロックMB(i,j)の代表画素位置の動きベクトルMV_BMA(i,j),MV_CGI(i,j)を0に初期化する。
また、動きベクトル生成回路134は、代表画素位置の動きベクトルMVがCGI方式およびBMA方式の何れの手法で検索されたかを示す識別データlabel(i,j)を1に初期化する。
また、動きベクトル生成回路134は、動きベクトルMV(i,j)の収束の有無を示す変数local_opt(i,j)、並びに動きベクトルの生成処理の繰り返し回数を示す変数itrを0に初期化する。
【0098】
ステップST32:
動きベクトル生成回路134は、変数itrをインクリメントする。
また、動きベクトル生成回路134は、全てのマクロブロックMB(i,j)の変数local_opt(i,j)が1を示し、全ての動きベクトルMV(i,j)が収束したかを判断する指標となる変数cout_checkを0に初期化する。
【0099】
動きベクトル生成回路134は、以下に示すステップST33〜ST41の処理を、全てのマクロブロックMB(i,j)について行う。
【0100】
ステップST33:
動きベクトル生成回路134は、変数local_opt(i,j)が0を示すか否かを判断し、0を示すと判断した場合にはステップST34の処理に進み、そうでない場合(1を示す場合)には、次のマクロブロックMB(i,j)についてステップST33の処理を行う。
ステップST34:
動きベクトル生成回路134は、変数count_checkをインクリメントする。
ステップST35:
動きベクトル生成回路134は、処理対象のマクロブロックMB(i,j)について、当該マクロブロックMB(i,j)の代表画素位置の動きベクトルMV(i,j)の検索を、前述したCGI方式および第BMA方式の双方で行う。
動きベクトル生成回路134は、CGI方式で動きベクトルMV(i,j)を生成(検索)する処理は、基本的に図17を用いて説明したステップST6の場合と同様であるが、第1実施形態で説明した上記式(7)を基に、図21〜図23を用いて説明したよう、処理対象のマクロブロックMB4、並びに当該マクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3の残差エネルギε1〜ε4を算出する場合に、BMA方式を基に動きベクトルを生成したマクロブロックMB1〜MB3については残差エネルギε1〜ε3を算出しない。すなわち、当該マクロブロックMB4に隣接するマクロブロックMB1,MB2,MB3のうち、CGI方式を基に動きベクトルを生成したマクロブロックを選択し、当該選択したマクロブロックについての残差エネルギε1〜ε3を加算して残差エネルギεを生成する。
また、動きベクトル生成回路134は、第1実施形態と同様に、残差演算制御回路35からの制御信号REを基に、図14を用いて説明したように、処理中の候補動きベクトルを用いた残差エネルギεの演算を停止し、新たな候補動きベクトルを用いた残差エネルギεを行う。
【0101】
そして、動きベクトル生成回路134は、CGI方式で検索した動きベクトルMV_CGIを用いた場合のフレーム画像データS23の当該マクロブロックMBの符号化効率CGI_DIFを求める。
動きベクトル生成回路134は、BMA方式で検索した動きベクトルMV_BMAを用いた場合のフレーム画像データS23の当該マクロブロックMBの符号化効率BMA_DIFを求める。
【0102】
ステップST36:
動きベクトル生成回路134は、ステップST35で求めた符号化効率CGI_IFが、BMA_DIFより大きいか否かを判断し、大きいと判断した場合にはステップST37の処理に進み、そうでない場合にはステップST38の処理に進む。
ステップST37:
動きベクトル生成回路134は、動きベクトルMV(i,j)としてBMA方式で検索した動きベクトルMV_BMA(i,j)を設定する。
また、当該マクロブロックMB(i,j)の識別データ(i,j)に0を設定する。
ステップST38:
動きベクトル生成回路134は、動きベクトルMV(i,j)としてCGI方式で検索した動きベクトルMV_CGI(i,j)を設定する。
また、当該マクロブロックMB(i,j)の識別データlabel(i,j)に1を設定する。
【0103】
ステップST39:
動きベクトル生成回路134は、ステップST37あるいはST38で設定した動きベクトルMV(i,j)および識別データlabel(i,j)が共に前回の設定値と同じであるか否かを判断し、同じであると判断した場合にはステップST30の処理に進み、異なると判断した場合にはステップST31の処理に進む。
ステップST40:
動きベクトル生成回路134は、変数local_opt(i,j)に1を設定する。
ステップST41:
動きベクトル生成回路134は、処理対象のマクロブロックMB(i,j)の周辺のマクロブロックMBの変数local_opt(i,j)に0を設定する。
ステップST42:
動きベクトル生成回路134は、全てのマクロブロックMB(i,j)について前述したステップST33〜ST41の処理が終了した後に、変数check_countが0であるか否かを判断し、0でないと判断した場合にはステップST43の処理に進み、0であると判断した場合には処理を終了する。
ステップST43:
動きベクトル生成回路134は、変数itrが所定の回数max_itrに達したか否かを判断し、達したと判断した場合には処理を終了し、そうでない場合にはステップST32の処理に戻る。
【0104】
図20に示す符号化装置102は、動きベクトル生成回路134において生成された識別データlabel(i,j)が、動き予測・補償回路36を介して可逆符号化回路27に出力され、フレーム画像データのヘッダデータなどに格納される。
【0105】
以上説明したように、符号化装置102では、残差演算制御回路35が、動きベクトル生成回路134が上記第1の処理を行う過程で、図14に示すように、処理対象のマクロブロック内の一部の画素位置についての上記差分値を累積した結果(中間残差エネルギε_temp)が、他の候補動きベクトルを用いて既に終了した上記第1の処理によって得られた暫定的に最小の上記累積値(残差エネルギε_min)より大きいと判断した場合に、動きベクトル生成回路134による上記第1の処理を停止させる。
そのため、符号化装置102によれば、従来に比べて、動きベクトル生成回路134の演算量を削減でき、その処理負担を軽減できる。
符号化装置102によれば、図21〜図23を用いて説明したように、処理対象のマクロブロックに隣接するマクロブロックのうち、BMA方式で動きベクトルが生成されたマクロブロックについては、残差エネルギを加算しないため、最適な動きベクトルを生成できる。
【0106】
図26は、図20に示す符号化装置102で符号化されたフレーム画像データを復号する復号装置103の機能ブロック図である。
図26において、図18と同じ符号を付した構成要素は第1実施形態で説明したものと同じである。
すなわち、復号装置103は、動き予測・補償回路181に特徴を有している。
復号装置103は、可逆復号化回路72において、フレーム画像データ、並びに当該フレーム画像データのヘッダデータに格納された代表画素位置の動きベクトルMV、並びに識別データlabel(i,j)が復号されて動き予測・補償回路181に出力される。
動き予測・補償回路181は、識別データlabel(i,j)に基づいて、処理対象のマクロブロックMBの動きベクトルMVがCGI方式を用いて生成された場合に、上記式(6)に基づいて、代表画素位置の動きベクトルMVを用いて、当該マクロブロックMB内のその他の画素位置の動きベクトルMVを生成する。
また、動き予測・補償回路181は、識別データlabel(i,j)に基づいて、処理対象のマクロブロックMBの動きベクトルMVがBMA方式を用いて生成された場合に、代表画素位置の動きベクトルMVを、当該マクロブロックMB内のその他の画素位置の動きベクトルMVとする。
【0107】
以上説明したように、符号化装置102によれば、CGI方式およびBMA方式で生成した動きベクトルMVのうち、より高い符号化効率を実現する動きベクトルMVを選択するため、例えば、画像に回転や拡大がない場合などに、比較的少ない演算で、第1実施形態の符号化装置2よりも高い符号化効率を実現できる。
また、復号装置103によれば、符号化装置102によって符号化されたフレーム画像データを適切に復号することができる。
【0108】
第4実施形態
上述した第3実施形態では、符号化装置102の動きベクトル生成回路134がフレーム画像データS23および参照フレーム画像データS31をそのまま用いて、マクロブロックMB内の代表画素位置の動きベクトルMVの検索を行う場合を説明したが、本実施形態では、その他の検索方法を説明する。
図27は、当該実施形態における動きベクトル生成回路134の動きベクトルMVの探索方法を説明するための図である。
動きベクトル生成回路134は、フレーム画像データS23および参照画像のフレーム画像データS31の各々を、水平方向および垂直方法のそれぞれに対して1/2に画素データをダウンサンプリング(間引き処理)してフレーム画像データFLS23_1および参照フレーム画像データS31_1を生成する。
また、動きベクトル生成回路34は、フレーム画像データS23_1および参照フレーム画像データS31_1の各々を、水平方向および垂直方法のそれぞれに対して1/2に画素データをダウンサンプリングしてフレーム画像データS23_2および参照フレーム画像データS31_2を生成する。
【0109】
そして、動きベクトル生成回路134は、フレーム画像データS23_2および参照フレーム画像データS31_2を用いてCGI方式で各マクロブロックMBの代表画素位置の動きベクトルMV_2_CGIの第1の検索を行う。
また、動きベクトル生成回路134は、フレーム画像データS23_2および参照フレーム画像データS31_2を用いてBMA方式で各マクロブロックMBの第1の代表画素位置の動きベクトルMV_2_BMAの第1の検索を行う。
【0110】
そして、動きベクトル生成回路134は、フレーム画像データS23_1および参照フレーム画像データS31_1を用いて、フレーム画像データS23_1内の画素データのうち、上記第1の検索によって得られた動きベクトルMV_2_CGIによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象としてCGI方式で動きベクトルMV_1_CGIの第2の検索を行う。
また、動きベクトル生成回路134は、フレーム画像データS23_1および参照フレーム画像データS31_1を用いて、フレーム画像データS23_1内の画素データのうち、上記第1の検索によって得られた動きベクトルMV_2_BMAによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象として上記BMA方式で動きベクトルMV_1_BMAの第2の検索を行う。
【0111】
動きベクトル生成回路134は、フレーム画像データS23および参照フレーム画像データS31を用いて、フレーム画像データS23内の画素データのうち、上記第2の検索によって得られた動きベクトルMV_1_CGI,MV_1_BMAによって規定される範囲、並びにその周辺数画素位置の範囲内の画素データを対象とし、それぞれCGI,BMA方式で動きベクトルMVの第3の検索を行う。
【0112】
上述したように、動きベクトル生成回路134において、動きベクトルMVの検索を階層的に行うことで、動きベクトルMVの検索範囲を小さくでき、動きベクトルMVの検索を少ない演算量で高精度に行うことができる。
【0113】
上述した実施形態では、動きベクトルMVを3階層で行う場合を例示したが、2階層以上であれば、その他の階層数を用いてもよい。
また、上述した実施形態では、間引き処理において、水平方向および垂直方向にそれぞれ1/2に画素データを間引く場合を例示したが、その他の間引き率を用いてもよい。
【0114】
第5実施形態
上述した実施形態では、動きベクトル生成の対象となるマクロブロックMBおよびそれに隣接するマクロブロックMBの残差エネルギを、マクロブロックMBの全ての画素位置の画素データを対象として算出する場合を例示した。
本実施形態では、“New Fast Algorithms for theEstimation of Block Motion Vectors”(B.Liu and A.Zaccarin,IEEE Trans. onCircuit and Systems for Video Tech.vol 3, No.2, April 1993)に基づいて、第2の手法で、動きベクトルMVの探索の動きベクトル情報を探索する際に、マクロブロックMB内全ての画素位置の画素データではなく、図28に示すように、半分の画素を用いて残差エネルギの算出を行ってもよい。
【0115】
第6実施形態
上述した本実施形態の動きベクトルMVの検索および生成方法を、動き予測・補償を用いたフレームレートアップコンバート装置などの画像補間装置に適用してもよい。
図29は、本実施形態の画像補間装置201の機能ブロック図である。
図29に示すように、画像補間装置201は、例えば、動きベクトル生成回路34、残差演算制御回路35、動き予測回路253、フレームメモリ231、補間画像生成回路250、遅延バッファ251およびセレクタ252を有する。
動きベクトル生成回路34および残差演算制御回路35は、例えば、第1実施形態で説明したものと同じである。
動きベクトル生成回路34は、動き予測回路253を介して入力したフレーム画像データS251の動きベクトルを、フレームメモリ231に蓄積された参照画像のフレーム画像データS231を用いて、前述したいずれかの実施形態で説明した方法で動きベクトルMVの探索および生成し、これを動き予測回路253に出力する。
動き予測回路253は、動きベクトル生成回路34から入力した動きベクトルMVを補間画像生成回路250に出力する。
また、動き予測回路253は、フレーム画像データS251(FLAME1)をフレームメモリ231およびセレクタ252に出力する。
前述した図8に示す例では、フレームメモリ231に蓄積された、時刻tにおけるフレーム画像データFLAME1、及び時刻t+2δtにおけるフレーム画像データFLAME2との間で動きベクトルMVの探索が行われる。
そして、補間画像生成回路250において、動きベクトル生成回路34から入力した動きベクトルMV、並びにフレーム画像データS231を用いて、時刻t+δtにおける補間フレーム画像データの生成が行われる。このように生成された補間フレーム画像データFLAME_INTERは、遅延バッファ251に蓄積される。
セレクタ252は、フレーム画像データFLAME1と補間フレーム画像データFLAME_INTERとを、一定のタイミングでセレクタ252で選択して、m[ Hz] (m>n)の画像信号を出力する。
【0116】
なお、当該実施形態では、入力したフレーム画像データ間に時間的に位置する1個の補間フレーム画像データを生成および配置する場合を例示したが、当該間に2個以上の補間フレーム画像データを生成および配置してもよい。
【0117】
【発明の効果】
本発明によれば、従来に比べて少ない演算量で、動きベクトルを生成できる画像処理装置、符号化装置およびそれらの方法を提供することができる。
【図面の簡単な説明】
【図1】図1は、本発明の関連技術に係わる符号化装置の機能ブロック図である。
【図2】図2は、図1に示す動き予測・補償回路のおける動きベクトルの生成処理を説明するための図である。
【図3】図3は、図2に示す動きベクトル生成処理に用いられる種々の手法を説明するための図である。
【図4】図4は、図2に示す動きベクトル生成処理に用いられる残差エネルギの生成方法を説明するための図である。
【図5】図5は、BMA,CGI,SCGIのアルゴリズムを比較して説明するための図である。
【図6】図6は、本発明の関連技術に係わる復号装置の機能ブロック図である。
【図7】図7は、本発明の関連技術に係わる画像補間装置の機能ブロック図である。
【図8】図8は、図7に示す画像補間装置の処理を説明するための図である。
【図9】図9は、本発明の第1実施形態の通信システムの概念図である。
【図10】図10は、本発明の第1実施形態に係わる符号化装置の機能ブロック図である。
【図11】図11は、図10に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図12】図12は、図10に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図13】図13は、図10に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図14】図14は、図10に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図15】図15は、図10に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図16】図16は、図10に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図17】図17は、図16に示すステップST6の処理を説明するためのフローチャートである。
【図18】図18は、図9に示す復号装置の機能ブロック図である。
【図19】図19は、本発明の第2実施形態の符号化装置における動きベクトル生成処理を説明するための図である。
【図20】図20は、本発明の第3実施形態に係わる符号化装置の機能ブロック図である。
【図21】図21は、図20に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図22】図22は、図20に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図23】図23は、図20に示す動きベクトル生成回路における動きベクトルの生成処理を説明するための図である。
【図24】図24は、図20に示す動きベクトル生成回路における動きベクトルの生成処理のフローチャートである。
【図25】図25は、図20に示す動きベクトル生成回路における動きベクトルの生成処理の図24の続きのフローチャートである。
【図26】図26は、本発明の第3実施形態の復号装置の機能ブロック図である。
【図27】図27は、本発明の第4実施形態の符号化装置を説明するための図である。
【図28】図28は、本発明の第5実施形態を説明するための図である。
【図29】図29は、本発明の第6実施形態を説明するための図である。
【符号の説明】
1…通信システム、2…符号化装置、3…復号装置、22…A/D変換回路、23…画面並べ替え回路、24…演算回路、25…直交変換回路、26…量子化回路、27…可逆符号化回路、28…バッファ、29…逆量子化回路、30…逆直交変換回路、31…フレームメモリ、32…レート制御回路、34,134…動きベクトル生成回路、36…動き予測・補償回路、71…バッファ、72…可逆復号化回路、73…逆量子化回路、74…逆直交変換回路、75…演算回路、76…画像並べ替え回路、77…D/A変換回路、78…フレームメモリ、201…画像補間装置、231…フレームメモリ、250…補間画像生成回路、251…遅延バッファ、252…セレクタ、253…動き予測回路
Claims (10)
- 第1の画像データの動きベクトルを、前記第1の画素データと相関を有する第2の画像データを基に生成する画像処理装置において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行い、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、
前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる制御手段と
を有する画像処理装置。 - 前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、
前記動きベクトル生成手段は、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第1の処理を行う
請求項1に記載の画像処理装置。 - 前記動きベクトル生成手段は、前記ブロック、並びに当該ブロックに隣接するブロックについて、前記ブロックを単位として当該ブロック内の前記画素位置をラインに沿って走査し、前記走査した画素位置について得られた前記差分値を累積して前記累積値を生成し、
前記制御手段は、1ライン分の前記走査によって得られた前記累積値を用いて、前記判断を行う
請求項2に記載の画像処理装置。 - 前記動きベクトル生成手段は、前記ブロック、並びに当該ブロックに隣接するブロックについて、複数の前記ブロックに跨がって規定されたラインに沿って走査し、前記走査した画素位置について得られた前記差分値を累積して前記累積値を生成し、
前記制御手段は、1ライン分の前記走査によって得られた前記累積値を用いて、前記判断を行う
請求項2に記載の画像処理装置。 - 前記動きベクトル生成手段は、前記ブロックに隣接する複数のブロックのうち、前記ブロック内の画素位置の動きベクトルを基に当該ブロック内の画素位置の動きベクトルが規定されるブロックを選択し、前記ブロック、並びに前記選択したブロック内の画素位置について得られた前記差分値を累積して前記累積値を生成する前記第1の処理を行う
請求項2に記載の画像処理装置。 - 前記動きベクトル生成手段は、前記差分の二乗和を示す前記差分値を生成する
請求項1に記載の画像処理装置。 - 第1の画像データを、前記第1の画素データと相関を有する第2の画像データを基に符号化する符号化装置において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行い、複数の前記候補動きベクトルのうち、前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する動きベクトル生成手段と、
前記動きベクトル生成手段が前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記動きベクトル生成手段に対して前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる制御手段と、
前記動きベクトル生成手段が生成した前記動きベクトルと前記第2の画像データとを用いて第3の画像データを生成する画像生成手段と、
前記第1の画像データと、前記画像生成手段が生成した前記第3の画像データとの差分を示す第4の画像データを符号化する符号化手段と
を有する符号化装置。 - 第1の画像データの動きベクトルを、前記第1の画素データと相関を有する第2の画像データを基に生成する画像処理方法において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う第1の工程と、
複数の前記候補動きベクトルのうち、前記第1の工程の前記第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第2の工程と、
前記第1の工程の前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる第3の工程と
を有する画像処理方法。 - 前記処理対象のブロック内の画素位置の動きベクトルを基に、前記処理対象のブロックに隣接する他の前記ブロック内の画素位置の動きベクトルが規定される場合に、
前記第1の工程において、前記処理対象のブロック、並びに前記他のブロック内の画素位置について得られた前記差分値を累積して累積値を生成する前記第1の処理を行う
請求項8に記載の画像処理方法。 - 第1の画像データを、前記第1の画素データと相関を有する第2の画像データを基に符号化する符号化方法において、
処理対象のブロック内の複数の画素位置について、前記画素位置に対応する前記第1の画像データの画素データと、前記画素位置と前記画素位置の動きベクトルの候補となる候補動きベクトルとを用いて得られる画素位置に対応する前記第2の画像データの画素データとの差分に応じた差分値を生成し、前記複数の画素位置について得られた前記差分値を累積して累積値を生成する第1の処理を行う第1の工程と、
複数の前記候補動きベクトルのうち、前記第1の工程の第1の処理によって生成された前記累積値が最小の前記候補動きベクトルを選択する第2の工程と、
前記第1の処理を実行中に得られた前記複数の画素位置のうち一部の画素位置についての前記差分値を累積した結果が、他の前記候補動きベクトルを用いた前記第1の処理によって既に得られている最小の前記累積値より大きいと判断した場合に、前記実行中の第1の処理を終了させ、新たな前記候補動きベクトルを用いて前記第1の処理を行わせる第3の工程と、
前記第2の工程で選択した前記動きベクトルと前記第2の画像データとを用いて第3の画像データを生成する第4の工程と、
前記第1の画像データと、前記第4の工程で生成した前記第3の画像データとの差分を示す第4の画像データを符号化する第5の工程と
を有する符号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327046A JP2004165816A (ja) | 2002-11-11 | 2002-11-11 | 画像処理装置、符号化装置およびそれらの方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002327046A JP2004165816A (ja) | 2002-11-11 | 2002-11-11 | 画像処理装置、符号化装置およびそれらの方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004165816A true JP2004165816A (ja) | 2004-06-10 |
Family
ID=32805820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002327046A Pending JP2004165816A (ja) | 2002-11-11 | 2002-11-11 | 画像処理装置、符号化装置およびそれらの方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004165816A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010081635A (ja) * | 2009-11-20 | 2010-04-08 | Casio Computer Co Ltd | 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム |
-
2002
- 2002-11-11 JP JP2002327046A patent/JP2004165816A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010081635A (ja) * | 2009-11-20 | 2010-04-08 | Casio Computer Co Ltd | 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100955152B1 (ko) | 비디오 인코딩을 위한 다차원 인접 블록 예측 | |
KR100703760B1 (ko) | 시간적 레벨간 모션 벡터 예측을 이용한 비디오인코딩/디코딩 방법 및 장치 | |
JP4470431B2 (ja) | データ処理装置およびその方法 | |
KR100597397B1 (ko) | 고속 움직임추정 알고리즘을 갖는 동영상 코딩방법 및 장치 | |
JP4360093B2 (ja) | 画像処理装置および符号化装置とそれらの方法 | |
JP4289126B2 (ja) | データ処理装置およびその方法と符号化装置 | |
KR100961760B1 (ko) | 이산코사인변환 계수를 참조하는 움직임 추정 방법 및 장치 | |
JP2005348093A (ja) | 画像処理装置、そのプログラムおよびその方法 | |
JPH0974569A (ja) | 最適動きベクトル決定方法及び装置 | |
JP4747494B2 (ja) | データ処理装置およびその方法と符号化装置 | |
JP4349109B2 (ja) | 画像データ処理装置、その方法、および、符号化装置 | |
JP4039221B2 (ja) | 画像処理装置、符号化装置、復号装置およびそれらの方法 | |
JP2006025033A (ja) | 画像処理装置および画像処理方法 | |
JP2004165816A (ja) | 画像処理装置、符号化装置およびそれらの方法 | |
KR100602148B1 (ko) | 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법 | |
JP4277793B2 (ja) | 画像処理装置、符号化装置およびそれらの方法 | |
KR100351568B1 (ko) | 움직임 보상 예측 블록의 경계 방향성을 고려한 고압축장치 및 그 방법 | |
JP4423968B2 (ja) | 符号化装置 | |
JP4100067B2 (ja) | 画像情報変換方法及び画像情報変換装置 | |
JP3166835B2 (ja) | 動画像の高能率符号化方法及び装置 | |
JP2005136941A (ja) | データ処理装置およびその方法と符号化装置 | |
JP2005151152A (ja) | データ処理装置およびその方法と符号化装置 | |
KR100207397B1 (ko) | 영상 부호화 시스템의 움직임 예측장치 및 방법 | |
JP3237029B2 (ja) | 動画像圧縮装置 | |
KR100238891B1 (ko) | 개선된 움직임 추정 장치 및 그 추정 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080603 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090127 |