JP4360093B2 - Image processing apparatus and encoding apparatus and methods thereof - Google Patents

Image processing apparatus and encoding apparatus and methods thereof Download PDF

Info

Publication number
JP4360093B2
JP4360093B2 JP2003027895A JP2003027895A JP4360093B2 JP 4360093 B2 JP4360093 B2 JP 4360093B2 JP 2003027895 A JP2003027895 A JP 2003027895A JP 2003027895 A JP2003027895 A JP 2003027895A JP 4360093 B2 JP4360093 B2 JP 4360093B2
Authority
JP
Japan
Prior art keywords
difference
image data
circuit
orthogonal transformation
motion vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003027895A
Other languages
Japanese (ja)
Other versions
JP2004241957A5 (en
JP2004241957A (en
Inventor
数史 佐藤
陽一 矢ケ崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003027895A priority Critical patent/JP4360093B2/en
Publication of JP2004241957A publication Critical patent/JP2004241957A/en
Publication of JP2004241957A5 publication Critical patent/JP2004241957A5/ja
Application granted granted Critical
Publication of JP4360093B2 publication Critical patent/JP4360093B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像データの量子化制御に特徴を有する画像処理装置および符号化装置と、それらの方法に関する。
【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規格の符号化装置では、高い圧縮効率を得るために、動き予測・補償が重要や役割を果たす。
MPEGおよびH.26Lを発展させたJVT(Joint Video Team)方式では、以下の3つの方式を導入して、高い圧縮効率を達成している。
第1の方式はマルチプル参照フレーム(Mlutiple Reference Frame)であり、第2の方式は可変動き予測・補償ブロックサイズであり、第3の方式はFIRフィルタを用いた1/4画素精度あるいは1/8画素精度の少数画素精度の動き補償である。
このようなJVT方式では、例えば、少数精度の動きベクトル探索において、処理対象となる現フレームの動き補償ブロック内の画素データと参照フレームの動き補償ブロック内の画素データとの差分(残差成分)の自乗和を示すSAD(Sum of Absolute Differenec)ではなく、上記差分に対して、垂直方向および水平方向のアダマール変換を施した値の絶対値和であるSATDを生成し、当該SATDを用いて規定される値Jを最小にする動きベクトルを探索する。
【0007】
【発明が解決しようとする課題】
しかしながら、上述したように動き探索において、上記差分に対して、垂直方向および水平方向のアダマール変換を施してSATDを生成するのでは、演算量が多くなり、処理負担が大きいという問題がある。
なお、動き補償における動き補償(MC)ブロックの予測方向の決定処理についても、同様な問題がある。
【0008】
本発明はかかる事情に鑑みてなされたものであり、動き補償に伴う演算量を削減できる画像処理装置、符号化装置およびそれらの方法を提供することを目的とする。
また、本発明は、予測符号化における予測方向の決定に伴う演算量を削減できる画像処理装置、符号化装置およびそれらの方法を提供することを目的とする。
【0009】
【課題を解決するための手段】
上記の目的を達成するため、第1の発明の画像処理装置は、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する差分生成と、前記差分生成が生成した前記差分に直交変換を施す直交変換と、前記直交変換で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する動きベクトル特定とを有し、前記直交変換部は、前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す。
【0010】
第1の発明の画像処理装置の作用は以下のようになる。
差分生成が、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する。
次に、直交変換が、前記差分生成が生成した前記差分に直交変換を施す。
次に、動きベクトル特定が、前記直交変換で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する。
【0011】
第2の発明の符号化装置は、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する差分生成と、前記差分生成が生成した前記差分に直交変換を施す直交変換と、前記直交変換で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する動きベクトル特定と、前記第2の画像データと前記第1の画像データとの差分、並びに前記動きベクトル特定が特定した前記動きベクトルを符号化する符号化とを有し、前記直交変換部は、前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す。
【0012】
第2の発明の符号化装置の作用は以下のようになる。
差分生成が、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する。
次に、直交変換が、前記差分生成が生成した前記差分に直交変換を施す。
次に、動きベクトル特定が、前記直交変換で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する。
次に、符号化が、前記第2の画像データと前記第1の画像データとの差分、並びに前記動きベクトル特定が特定した前記動きベクトルを符号化する。
【0022】
第3の発明の画像処理方法は、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する第1の工程と、前記第1の工程で生成した前記差分に直交変換を施す第2の工程と、前記第2の工程で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する第3の工程とを有し、前記第2の工程においては、前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
【0023】
第4の発明の符号化方法は、所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する第1の工程と、前記第1の工程で生成した前記差分に直交変換を施す第2の工程と、前記第2の工程で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する第3の工程と、前記第2の画像データと前記第1の画像データとの差分、並びに前記第3の工程で特定した前記動きベクトルを符号化する第4の工程とを有し、前記第2の工程においては、前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
【0026】
【発明の実施の形態】
〔本発明の関連技術〕
図1は、本発明の関連技術に係わる符号化装置500の機能ブロック図である。
図1に示す符号化装置500において、入力となる画像信号は、まず、A/D変換回路501においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP(Group of Pictures)構造に応じ、画面並べ替え回路502においてフレーム画像データの並べ替えが行われる。
そして、イントラ符号化が行われる画像に関しては、フレーム画像データの全体が直交変換回路504に入力され、直交変換回路504において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路504の出力となる変換係数は、量子化回路505において量子化処理される。
量子化回路505の出力となる、量子化された変換係数は、可逆符号化回路506に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ507に蓄積され、圧縮された画像データとして出力される。
【0027】
量子化回路505における量子化レートは、レート制御回路512によって制御される。
同時に、量子化回路505の出力となる、量子化された変換係数は、逆量子化回路508において逆量子化され、続いて逆直交変換回路509において逆直交変換処理が施され、デブロックフィルタ513においてブロック歪みが除去されて復号された参照フレーム画像データが得られる。当該参照フレーム画像データは、フレームメモリ510に蓄積される。
【0028】
一方、インター符号化が行われる画像に関しては、画面並べ替え回路502から出力されたフレーム画像データが、動き予測・補償回路511に入力される。同時に参照フレーム画像データがフレームメモリ510より読み出され、動き予測・補償回路511によって動きベクトルが生成され、当該動きベクトルおよび参照フレーム画像データを用いて予測フレーム画像データが生成される。予測フレーム画像データが演算回路503に出力され、演算回路503において、画面並べ替え回路502からのフレーム画像データと、動き予測・補償回路511からの予測フレーム画像データとの差分を示す画像データが生成され、当該画像データが直交変換回路504に出力される。
また、動き補償・予測回路511は、動きベクトルを可逆符号化回路506に出力し、可逆符号化回路506において、動きベクトルが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像信号のヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像信号と同様である。
【0029】
図2は、図1に示す符号化装置500に対応する復号回路499の機能ブロック図である。
図2に示す復号回路499では、入力となる画像データがバッファ613に格納された後、可逆復号回路614に出力される。そして、可逆復号回路614において、フレーム画像データのフォーマットに基づき、可変長復号化、算術復号化等の処理が行われる。同時に、当該フレーム画像データがインター符号化されたものである場合には、可逆復号回路614において、フレーム画像データのヘッダ部に格納された動きベクトルMVも復号され、その動きベクトルMVが動き予測・補償装置620に出力される。
【0030】
可逆復号回路614の出力となる、量子化された変換係数は、逆量子化回路615に入力され、ここで逆量子化される。当該逆量子化された変換係数には、逆直交変換回路616において、定められたフレーム画像データのフォーマットに基づき、逆離散コサイン変換や逆カルーネン・レーベ変換等の逆直交変換が施される。当該フレーム画像データがイントラ符号化されたものである場合には、逆直交変換処理が施されたフレーム画像データは、デブロックフィルタ621でブロック歪みが除去された後に画面並べ替えバッファ618に格納され、D/A変換回路619によるD/A変換処理を経て出力される。
【0031】
一方、当該フレームがインター符号化されたものである場合には、動き予測・補償回路620において、動きベクトルMV及びフレームメモリ650に格納された参照フレーム画像データを基に予測フレーム画像データが生成され、この予測フレーム画像データと、逆直交変換回路616から出力されたフレーム画像データとが加算器617において加算される。その他の処理はイントラ符号化されたフレーム画像データと同様である。
【0032】
ところで、図1に示す符号化装置500では、JVT方式により、例えば、少数精度の動きベクトル探索において、処理対象となる現フレームの動き補償ブロック内の画素データと参照フレームの動き補償ブロック内の画素データとの差分d(残差成分)の自乗和を示すSAD(Sum of Absolute Differenec)ではなく、上記差分dに対して、下記式(1)に示すように、垂直方向および水平方向のアダマール変換を施した値の絶対値和であるSATDを生成し、当該SATDを用いて規定される値Jを最小にする動きベクトルを探索する。
【0033】
【数1】

Figure 0004360093
【0034】
しかしながら、上述したように動き探索において、上記差分dに対して、下記式(1)に示す垂直方向および水平方向のアダマール変換を施してSATDを生成するのでは、演算量が多くなり、処理負担が大きいという問題がある。
なお、動き補償における動き補償(MC)ブロックの予測方向の決定処理、並びにマクロブロックモードの決定処理についても、同様な問題がある。
【0035】
以下、上述した問題を解決するための本実施形態の画像処理装置およびその方法と符号化装置について説明する。
第1実施形態
図3は、本実施形態の通信システム1の概念図である。
図3に示すように、通信システム1は、送信側に設けられた符号化装置2と、受信側に設けられた復号装置499とを有する。
符号化装置2が発明の符号化装置に対応している。
符号化装置2および復号装置499は、上述したJVT符号化方式に基づいて符号化および復号を行なう。
復号回路499は、図2を用いて前述したものと同じである。
【0036】
通信システム1では、送信側の符号化装置2において、離散コサイン変換やカルーネン・レーベ変換などの直交変換と動き補償によって圧縮したフレーム画像データ(ビットストリーム)を生成し、当該フレーム画像データを変調した後に、衛星放送波、ケーブルTV網、電話回線網、携帯電話回線網などの伝送媒体を介して送信する。
受信側では、受信した画像信号を復調した後に、上記変調時の直交変換の逆変換と動き補償によって伸張したフレーム画像データを生成して利用する。
なお、上記伝送媒体は、光ディスク、磁気ディスクおよび半導体メモリなどの記録媒体であってもよい。
【0037】
〔符号化装置2〕
図4は、図3に示す符号化装置2の全体構成図である。
図4に示すように、符号化装置2は、例えば、A/D変換回路22、画面並べ替えバッファ23、演算回路24、直交変換回路25、量子化回路26、可逆符号化回路27、バッファ28、逆量子化回路29、逆直交変換回路30、フレームメモリ31、レート制御回路32、動き予測・補償回路36、デブロックフィルタ37、モード判別回路40、簡易SATD算出回路41および簡易SATD算出回路42を有する。
ここで、簡易SATD算出回路42が第1の発明の差分生成手段おび直交変換手段に対応し、動き予測・補償回路36が第1の発明の動きベクトル特定手段に対応している。
また、可逆符号化回路27が本発明の符号化手段に対応している。
さらに、モード判別回路40が本発明の予測方向特定手段に対応し、動き予測・補償回路36が本発明の動きベクトル特定手段に対応している。
【0038】
符号化装置2では、例えば、少数精度の動きベクトル探索において、処理対象となる現フレームの動き補償ブロック内の画素データと参照フレームの動き補償ブロック内の画素データとの差分(残差成分)に対して、前述したアダマール変換に比べて演算量の少ない簡易的な直交変換(本発明の直交変換)を施した値の絶対値和である簡易SATDを簡易SATD算出回路41および簡易SATD算出回路42で生成することに特徴を有している。
モード判別回路40および動き予測・補償回路36は、このように同様に生成された簡易SATDを基に、それぞれモード判別および動きベクトルの探索を行う。
【0039】
以下、符号化装置2の構成要素について説明する。
〔A/D変換回路22〕
A/D変換回路22は、入力されたアナログの輝度信号Y、色差信号Pb,Prから構成される画像信号をデジタルの画像信号に変換し、これを画面並べ替えバッファ23に出力する。
【0040】
〔画面並べ替えバッファ23〕
画面並べ替えバッファ23は、A/D変換回路22から入力した画像信号内のフレーム画像信号を、そのピクチャタイプI,P,BからなるGOP(Group Of Pictures) 構造に応じて、符号化する順番に並べ替えたフレーム画像データS23をモード判別回路40に出力する。
【0041】
〔モード判別回路40〕
モード判別回路40は、動き予測・補償回路36における動き予測・補償において用いられる動き補償ブロックの予測方向(インター予測における順方向および逆方向)を決定する予測方向決定処理、並びにマクロブロックをイントラ/インターのどちらのモードで符号化するかを決定するモード決定処理を行う。
モード判別回路40は、例えば、Bフレームの動き補償ブロックの予測方向として、下記式(2)で定義される値J(本発明の累積値)を最小にする方向を選択する。
【0042】
【数2】
Figure 0004360093
【0043】
上記式(2)において、PDIRは、動き補償ブロックの予測方向を示し、sは符号化対象の画像データ(現フレームデータ)を示し、cは参照画像データ(参照フレームデータ)を示し、mは動きベクトルを示し、pは予測動きベクトルを示し、REFは参照画像データの識別番号を示し、Rは当該予測方向を選択した場合の動きベクトルの発生符号量を示し、lMOTIONは所定の係数を示している。
また、上記式(2)におけるSATDは、その引数に示される符号化対象の画像データのブロック内の画素データと、参照画像データのブロック内の画素データとの差分(残差成分)dに、所定の直交変換C(本発明の直交変換)を施した値の累積値(絶対値和)を示している。
【0044】
ここで、簡易SATD算出回路41がSATDの算出を行い、モード判別回路40は、簡易SATD算出回路41から入力したSATDを用いて、上記式(2)の値Jを算出する。
本実施形態では、上記差分dを下記式(3)のように定義する。
【0045】
【数3】
Figure 0004360093
【0046】
なお、モード判別回路40は、上記簡易SATDを基に、マクロブロックモードの決定を行ってもよい。
【0047】
〔簡易SATD算出回路41〕
図5は、簡易SATD算出回路41の機能ブロック図である。
図5に示すように、簡易SATD算出回路41は、例えば、差分算出回路61および直交変換回路62を有する。
ここで、差分算出回路61が本発明の差分生成手段に対応し、直交変換回路62が本発明の直交変換手段に対応している。
【0048】
差分算出回路61は、現フレームの所定のブロック内の画素データS90と参照フレームの所定のブロック内の画素データS91との差分(残差成分)dを生成する。
また、直交変換回路62は、以下に示す式(4)〜(11)の何れかを、直交変換Cとして上記差分dに施し、それによって得られた値の絶対値和を簡易SATDとする。
【0049】
すなわち、直交変換回路62は、上記式(3)に示す差分dに対して、下記式(4)に示すように、アダマール変換の水平方向のみの変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
【0050】
【数4】
Figure 0004360093
【0051】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(5)に示すように、アダマール変換の垂直方向のみの変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
【0052】
【数5】
Figure 0004360093
【0053】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(6)に示すように、アダマール変換により水平方向の低域成分および垂直方向の低域成分のみの残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
なお、本実施形態において、水平方向の低域成分とは差分dの最も低域の周波数成分から所定の範囲にある周波数成分(例えば、式(3)の左2行あるいは1行分の係数)を示し、水平方向の高域成分とは差分dの最も高域の成分から所定の範囲にある周波数成分(例えば、式(3)の右2行あるいは1行分の係数)を示し、水平方向の中域成分とは上記低域成分と上記高域成分との間の周波数成分を示す。
また、本実施形態において、垂直方向の低域成分とは差分dの最も低域の周波数成分から所定の範囲にある周波数成分(例えば、式(3)の上2行あるいは1行分の係数)を示し、垂直方向の高域成分とは差分dの最も高域の成分から所定の範囲にある周波数成分(例えば、式(3)の下2行あるいは1行分の係数)を示し、垂直方向の中域成分とは上記低域成分と上記高域成分との間の周波数成分を示す。
【0054】
【数6】
Figure 0004360093
【0055】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(7)に示すように、アダマール変換により水平方向の低域成分および垂直方向の全域成分を残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。この場合には、直交変換回路62は、垂直方向の変換に先立って水平方向の変換を行うことで、上記式(1)に示す演算に比べて演算量を削減できる。
【0056】
【数7】
Figure 0004360093
【0057】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(8)に示すように、アダマール変換により水平方向の全域成分および垂直方向の低域成分のみを残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。この場合には、直交変換回路62は、水平方向の変換に先立って垂直方向の変換を行うことで、上記式(1)に示す演算に比べて演算量を削減できる。
【0058】
【数8】
Figure 0004360093
【0059】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(9)に示すように、アダマール変換により水平方向の低域成分、並びに垂直方向の高域および低域成分のみを残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
【0060】
【数9】
Figure 0004360093
【0061】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(10)に示すように、アダマール変換により水平方向の低域および高域成分、並びに垂直方向の低域成分のみを残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
【0062】
【数10】
Figure 0004360093
【0063】
直交変換回路62は、上記式(3)に示す差分dに対して、下記式(11)に示すように、アダマール変換により水平方向の低域および高域成分、並びに垂直方向の低域および高域成分のみを残す変換を直交変換Cとして施し、それによって得られた値の絶対値和を上記簡易SATDとする。
【0064】
【数11】
Figure 0004360093
【0065】
直交変換回路62は、動き補償ブロックの種類に応じて、上述した式(4)〜(11)の何れかを、直交変換Cとして差分dに施し、それによって得られた値の絶対値和を上記簡易SATDとしてもよい。
例えば、直交変換回路62は、動き補償ブロックの種類が図7に示す16×8あるいは8×4である場合には、上記式(4),()あるいは(10)を直交変換Cとして用いる。
また、直交変換回路62は、動き補償ブロックの種類が図7に示す8×16あるいは4×8である場合には、上記式(5),(7)あるいは()を直交変換Cとして用いる。
また、直交変換回路62は、動き補償ブロックの種類が正方形状である場合には、下記式()、上記式(6)あるいは(11)を用いてもよい。また、この場合には、アダマール変換を行わず、SADを用いてもよい。
【0066】
〔演算回路24〕
演算回路24は、フレーム画像データS23がインター(Inter) 符号化される場合には、フレーム画像データS23と、動き予測・補償回路36から入力した予測フレーム画像データS36aとの差分を示す画像データS24を生成し、これを直交変換回路25に出力する。
また、演算回路24は、フレーム画像データS23がイントラ(Intra) 符号化される場合には、フレーム画像データS23を画像データS24として直交変換回路25に出力する。
【0067】
〔直交変換回路25〕
直交変換回路25は、画像データS24に離散コサイン変換やカルーネン・レーベ変換などの直交変換を施して画像データ(例えばDCT係数信号)S25を生成し、これを量子化回路26に出力する。
直交変換回路25は、例えば、4×4のブロックを単位として直交変換を行う。
【0068】
〔量子化回路26〕
量子化回路26は、レート制御回路32から入力した量子化スケールで、画像データS25を量子化して画像データS26を生成し、これを可逆符号化回路27および逆量子化回路29に出力する。
【0069】
〔可逆符号化回路27〕
可逆符号化回路27は、画像データS26を可変長符号化あるいは算術符号化し、符号化された画像データをバッファ28に格納する。
また、可逆符号化回路27は、動き予測・補償回路36から入力した動きベクトルMVあるいはその差分を符号化してヘッダデータに格納する。
バッファ28に格納された画像データは、変調等された後に送信される。
【0070】
〔逆量子化回路29および逆直交変換回路30〕
逆量子化回路29は、画像データS26を逆量子化したデータを生成し、これをデブロックフィルタ37に出力する。
逆直交変換回路30は、量子化され、デブロックフィルタ37でブロック歪みが除去された画像データに上記直交変換の逆変換を施して生成したフレーム画像データをフレームメモリ31に格納する。
【0071】
〔レート制御回路32〕
レート制御回路32は、バッファ28から読み出した画像データ、量子化パラメータQPを基に、量子化回路26における量子化の量子化スケールを生成し、これを量子化回路26に出力する。
【0072】
〔動き予測・補償回路36〕
動き予測・補償回路36は、フレームメモリ31からの画像データS31と、画面並べ替えバッファ23からの画像データとを基に動き予測・補償処理を行って、動きベクトルMVおよび参照画像データS36aを生成する。
動き予測・補償回路36は、動きベクトルMVを可逆符号化回路27に出力し、参照画像データS36aを演算回路24に出力する。
動き予測・補償回路36は、JVT方式により、図6に示すようにマルチプル参照フレームを用いると共に、図7に示すように複数の種類の動き補償ブロックを選択的に用いる。さらには、FIRフィルタを用いた1/4画素精度あるいは1/8画素精度の少数画素精度の動き補償を行う。
【0073】
図8は、動き予測・補償回路36の機能ブロック図である。
図8に示すように、動き予測・補償回路36は、例えば、整数精度MV探索回路51、SAD算出回路52、補間回路53、少数画素精度MV探索回路54および参照画像決定回路55を有する。
整数精度MV探索回路51は、モード判別回路40から入力した処理対象の画像データ(現フレームデータ)S23内の画素データと、フレームメモリ31から入力した参照画像データS31(参照フレームデータ)内の画素データと、候補となる動きベクトルMVをSAD算出回路52に出力する。
整数精度MV探索回路51は、SAD算出回路52から入力した後述するSADを基に、候補となる複数の動きベクトルのうち、下記式(12)で示される値Jを最小にする動きベクトルMV1を整数画素精度で探索(特定)する。
【0074】
【数12】
Figure 0004360093
【0075】
上記式(12)に示すλMODEとしては、IおよびPフレームに対しては下記式(13)で示されるλMODE,P(I) が用いられ、Bフレームに対しては下記式(14)で示されるλMODE,Bが用いられる。また、SADは、SAD算出回路52から入力したものを用いる。
【0076】
【数13】
Figure 0004360093
【0077】
【数14】
Figure 0004360093
【0078】
SAD算出回路52は、画像データ(現フレームデータ)S23の動き補償ブロックB内の画素データs(x,y)と、フレームメモリ31から入力した参照画像データS31(参照フレームデータ)の動き補償ブロックBに対応するブロック内の画素データc(x−mx ,y−my )とを用いて、下記式(15)によりSADを算出する。
【0079】
【数15】
Figure 0004360093
【0080】
補間回路53は、フレームメモリ31から入力した整数画素精度の参照画像データ(参照フレームデータ)S31をFIRフィルタ等を用いて補間処理して1/4画素あるいは1/8画素精度の少数画素精度の参照画像データを生成し、これを少数画素精度MV探索回路54に出力する。
【0081】
少数画素精度MV探索回路54は、例えば、フレームメモリ31からの整数画素精度の参照画像データS31と、補間回路53で得られた少数画素精度の参照画像データとを用いて、整数精度MV探索回路51で生成された動きベクトルMV1によって規定される検索範囲内で、少数画素精度で動きベクトルの探索を行う。
このとき、少数画素精度MV探索回路54は、簡易SATD算出回路42から入力した簡易SATDを用いて、下記式(16)に示される値Jを算出し、複数の候補動きベクトルのなかから、当該値Jを最小にする動きベクトルMVを探索する。
【0082】
【数16】
Figure 0004360093
【0083】
参照画像決定回路55は、少数画素精度MV探索回路54から入力した動きベクトルMVを基に参照画像データS36aを生成する。
【0084】
〔簡易SATD算出回路42〕
図9は、図4および図8に示す簡易SATD算出回路42の機能ブロック図である。
図9に示すように、簡易SATD算出回路42は、例えば、差分算出回路71および直交変換回路72を有している。
但し、簡易SATD算出回路42は、図8に示す画像データ23(現フレームデータ)の少数画素および整数画素の画素データS23aと、参照画像データS31(参照フレームデータ)内の少数画素および整数画素の画素データS31aとを用いて簡易SATDを算出する。
ここで、差分算出回路71が本発明の差分生成手段に対応し、直交変換回路72が本発明の直交変換手段に対応している。
【0085】
差分算出回路71は、各動き補償ブロック内の画素データS23aと、当該画素データS23aに対応する画素位置から候補動きベクトルによって指し示される画素位置に対応する参照画像データS31a内の画素データS31aとの差分(残差成分)dをそれぞれ算出する。
また、直交変換回路72は、前述した式(4)〜(11)の何れかを、直交変換Cとして、差分算出回路71が算出した上記差分dに施し、それによって得られた値の絶対値和を簡易SATDとする。
【0086】
直交変換回路72は、動き補償ブロックの種類に応じて、上述した式(4)〜(11)の何れかを、直交変換Cとして差分dに施し、それによって得られた値の絶対値和を上記簡易SATDとしてもよい。
例えば、直交変換回路72は、動き補償ブロックの種類が図7に示す16×8あるいは8×4である場合には、上記式(4),()あるいは(10)を直交変換Cとして用いる。
また、直交変換回路72は、動き補償ブロックの種類が図7に示す8×16あるいは4×8である場合には、上記式(5),(7)あるいは()を直交変換Cとして用いる。
また、直交変換回路72は、動き補償ブロックの種類が正方形状である場合には、下記式()、上記式(6)あるいは(11)を用いてもよい。また、この場合には、アダマール変換を行わず、SADを用いてもよい。
【0087】
次に、図4に示す符号化装置2の全体動作を説明する。
入力となる画像信号は、まず、A/D変換回路22においてデジタル信号に変換される。次に、出力となる画像圧縮情報のGOP構造に応じ、画面並べ替えバッファ23においてフレーム画像データの並べ替えが行われる。
そして、モード判別回路40において、簡易SATD算出回路41において簡易的に算出された簡易SATDを基に、動き予測・補償において用いられる動き補償ブロックの予測方向を決定する予測方向決定処理、並びにマクロブロックをイントラ/インターのどちらのモードで符号化するかを決定するモード決定処理が行われる。
【0088】
イントラ符号化が行われる画像データS23(フレームデータ)に関しては、フレームデータ全体の画像情報が直交変換回路25に入力され、直交変換回路25において離散コサイン変換やカルーネン・レーベ変換等の直交変換が施される。
直交変換回路25の出力となる変換係数は、量子化回路26において量子化処理される。
量子化回路26は、レート制御回路32からの制御に基づいて、量子化を行う。
【0089】
量子化回路26の出力となる、量子化された変換係数は、可逆変換回路27に入力され、ここで可変長符号化、算術符号化等の可逆符号化が施された後、バッファ28に蓄積され、圧縮された画像データとして出力される。
同時に、量子化回路26の出力となる、量子化された変換係数は、逆量子化回路29に入力され、さらに逆直交変換回路30において逆直交変換処理が施されて、復号された画像データ(フレームデータ)となり、その画像データがフレームメモリ31に蓄積される。
【0090】
一方、インター符号化が行われる画像に関しては、先ず、その画像データS23が動き予測・補償回路36に入力される。また、参照画像データS31がフレームメモリ31より読み出され、動き予測・補償回路36に出力される。
そして、動き予測・補償回路36において、参照画像の画像データS31を用いて、動きベクトルMVおよび予測画像データS36aが生成される。
【0091】
そして、演算回路24において、モード判別回路40からの画像データS23と、動き予測・補償回路36からの予測画像データS36aとの差分信号である画像データS24が生成され、当該画像データS24が直交変換回路25に出力される。
このとき、動き予測・補償回路36は、JVT方式により、マルチプル参照フレームを用いると共に、複数の種類の動き補償ブロックを選択的に用いる。さらには、FIRフィルタを用いた1/4画素精度あるいは1/8画素精度の少数画素精度の動き補償を行う。
当該動き補償において、動き予測・補償回路36は、前述したように、簡易SATD算出回路42から入力した簡易SATDを用いて、上記式(16)に示される値Jを算出し、複数の候補動きベクトルのなかから、当該値Jを最小にする動きベクトルMVを探索する。
【0092】
そして、可逆符号化回路27において、動きベクトルMVが可変長符号化あるいは算術符号化といった可逆符号化処理され、画像データのヘッダ部に挿入される。その他の処理はイントラ符号化を施される画像データと同様である。
【0093】
以上説明したように、符号化装置2によれば、簡易SATD算出回路41において、アダマール変換を簡易的にした上記式(4)〜(11)に示される直交変換Cを行って簡易SATDを算出し、当該簡易SATDを基に動き補償ブロックの予測方向を決定する。
そのため、アダマール変換を用いる場合に比べて動き予測・補償回路36の演算量を削減できると共に、直交変換を行わない場合に比べて適切な動きベクトルMVを得ることができ、演算回路24で生成される画像信号S24の情報量を削減できる(符号化効率を高められる)。
【0094】
本発明は上述した実施形態には限定されない。
例えば、上述した実施形態によれば、簡易SATD算出回路41および簡易SATD算出回路42において直交変換としてアダマール変換を用いる場合を例示したが、DCT(Discrete Cosine transform) などのその他の直交変換を用いてもよい。
なお、本実施形態において、JVT方式では、簡易SATD算出回路41および簡易SATD算出回路42における直交変換Cを4×4画素のブロックに対して行うが、本発明は、例えば、8×8画素などの4×4画素以外のブロックについて直交変換Cを施してもよい。
【0095】
【発明の効果】
以上説明したように、本発明によれば、動き補償に伴う演算量を削減できる画像処理装置、符号化装置およびそれらの方法を提供できる。
また、本発明によれば、予測符号化における予測方向の決定に伴う演算量を削減できる画像処理装置、符号化装置およびそれらの方法を提供できる。
【図面の簡単な説明】
【図1】図1は、本発明の関連技術に係わる符号化装置の機能ブロック図である。
【図2】図2は、本発明の関連技術に係わる復号装置の機能ブロック図である。
【図3】図3は、本発明の第1実施形態に係わる符号化装置を説明するための図である。
【図4】図4は、図3に示す符号化装置の機能ブロック図である。
【図5】図5は、図3に示すモード判別回路に対応する簡易SATD算出回路の機能ブロック図である。
【図6】図6は、図3に示す動き予測・補償回路によるマルチプル参照フレームを説明するための図である。
【図7】図7は、図3に示す動き予測・補償回路によって選択される複数の種類の動き補償ブロックを説明するための図である。
【図8】図8は、図3に示す動き予測・補償回路の機能ブロック図である。
【図9】図9は、図3に示す動き予測・補償回路に対応した簡易SATD算出回路の機能ブロック図である。
【符号の説明】
1…通信システム、2…符号化装置、22…A/D変換回路、23…画面並べ替えバッファ、24…演算回路、25…直交変換回路、26…量子化回路、27…可逆符号化回路、28…バッファ、29…逆量子化回路、30…逆直交変換回路、31…フレームメモリ、32…レート制御回路、36…動き予測・補償回路、41…簡易SATD算出回路、42…簡易SATD算出回路、61,71…差分算出回路、62,72…直交変換回路、51…整数精度MV探索回路、52…SAD算出回路、53…補間回路、54…少数画素精度MV探索回路、55…参照画像決定回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and an encoding apparatus characterized by quantization control of image data, and methods thereof.
[0002]
[Prior art]
In recent years, MPEG (Moving Picture) has been handled as image data, and is compressed by orthogonal transform such as discrete cosine transform and motion compensation using the redundancy unique to image information for the purpose of efficient transmission and storage of information. Devices conforming to a scheme such as Experts Group) are becoming widespread in both information distribution such as broadcasting stations and information reception in general households.
[0003]
In particular, MPEG2 (ISO / IEC13818-2) is defined as a general-purpose image coding system, and is a standard covering both interlaced scanning images and progressive scanning images, as well as standard resolution images and high-definition images. Currently widely used in a wide range of consumer applications.
By using the MPEG2 compression method, for example, a standard resolution interlaced scanning image having 720 × 480 pixels is 4 to 8 Mbps, and a high resolution interlaced scanning image having 1920 × 1088 pixels is 18 to 22 Mbps. (Bit rate) can be assigned to achieve a high compression rate and good image quality.
[0004]
MPEG2 was mainly intended for high-quality encoding suitable for broadcasting, but did not support encoding methods with a lower code amount (bit rate) than MPEG1, that is, a higher compression rate. With the widespread use of mobile terminals, the need for such an encoding system is expected to increase in the future, and the MPEG4 encoding system has been standardized in response to this need. Regarding the image coding system, the standard was approved as an international standard as ISO / IEC14496-2 in December 1998.
[0005]
Furthermore, in recent years, the standardization of a standard called H.26L (ITU-T Q6 / 16 VCEG) has been advanced for the purpose of image coding for an initial video conference. H. 26L is known to achieve higher encoding efficiency than the conventional encoding schemes such as MPEG2 and MPEG4, although a large amount of calculation is required for encoding and decoding. In addition, as part of MPEG4 activities, this H.264 Based on H.26L Standardization that incorporates functions not supported by the 26L standard and achieves higher coding efficiency is performed as Joint Model of Enhanced-Compression Video Coding.
[0006]
By the way, MPEG and H.264. In the encoding apparatus of the 26L standard, motion prediction / compensation plays an important role in order to obtain high compression efficiency.
MPEG and H.264 In the JVT (Joint Video Team) system, which is an extension of 26L, the following three systems are introduced to achieve high compression efficiency.
The first method is a multiple reference frame, the second method is a variable motion prediction / compensation block size, and the third method is 1/4 pixel accuracy using an FIR filter or 1/8. This is motion compensation with pixel accuracy and minority pixel accuracy.
In such a JVT method, for example, in a motion vector search with a small number of precision, a difference (residual component) between pixel data in a motion compensation block of a current frame to be processed and pixel data in a motion compensation block of a reference frame. Instead of SAD (Sum of Absolute Differenec) indicating the sum of squares of the above, a SATD that is the sum of absolute values of values obtained by performing vertical and horizontal Hadamard transforms on the difference is generated and specified using the SATD Search for a motion vector that minimizes the value J to be performed.
[0007]
[Problems to be solved by the invention]
However, as described above, if a SATD is generated by performing vertical and horizontal Hadamard transforms on the difference in motion search as described above, there is a problem that the amount of calculation increases and the processing load is large.
Note that there is a similar problem in the process of determining the prediction direction of the motion compensation (MC) block in motion compensation.
[0008]
The present invention has been made in view of such circumstances, and an object of the present invention is to provide an image processing apparatus, an encoding apparatus, and a method thereof that can reduce the amount of calculation associated with motion compensation.
It is another object of the present invention to provide an image processing apparatus, an encoding apparatus, and a method thereof that can reduce the amount of calculation associated with determination of a prediction direction in predictive encoding.
[0009]
[Means for Solving the Problems]
  In order to achieve the above object, an image processing apparatus according to a first invention provides:Within a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. Difference generation for generating a difference with each of a plurality of second pixel data corresponding to the position indicated by the motion vectorPartAnd the difference generationPartThe difference generated byDirectlyOrthogonal transformation with cross transformationPartAnd the orthogonal transformPartBased on the accumulated value of the difference subjected to the orthogonal transformation in, DynamicMotion vector identificationPartAnd have,in frontThe orthogonal transform unitWhen the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction In this case, the difference is subjected to orthogonal transformation defined in the vertical direction.
[0010]
  The operation of the image processing apparatus of the first invention is as follows.
  Difference generationPartBut,Within a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. Differences from the plurality of second pixel data corresponding to the position indicated by the motion vector are respectively generated.
  Next, orthogonal transformationPartIs the difference generationPartThe difference generated byDirectlyPerform cross conversion.
  Next, specify the motion vectorPartIs the orthogonal transformPartBased on the accumulated value of the difference subjected to the orthogonal transformation in, DynamicSpecify the vector.
[0011]
  The encoding device of the second invention isWithin a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. Difference generation for generating a difference with each of a plurality of second pixel data corresponding to the position indicated by the motion vectorPartAnd the difference generationPartThe difference generated byDirectlyOrthogonal transformation with cross transformationPartAnd the orthogonal transformPartBased on the accumulated value of the difference subjected to the orthogonal transformation in, DynamicMotion vector identificationPartThe difference between the second image data and the first image data, and the motion vector specificationPartEncoding the motion vector specified byPartAnd haveWhen the motion compensation block has a shape with a long side in the horizontal direction, the orthogonal transform unit performs the orthogonal transform defined for the horizontal direction on the difference, and the motion compensation block has a vertical direction. In the case of a shape having a long side, an orthogonal transformation defined for the vertical direction is applied to the difference.
[0012]
  The operation of the encoding device of the second invention is as follows.
  Difference generationPartBut,Within a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. Differences from the plurality of second pixel data corresponding to the position indicated by the motion vector are respectively generated.
  Next, orthogonal transformationPartIs the difference generationPartThe difference generated byDirectlyPerform cross conversion.
  Next, specify the motion vectorPartIs the orthogonal transformPartBased on the accumulated value of the difference subjected to the orthogonal transformation in, DynamicSpecify the vector.
  Then the encodingPartIs the difference between the second image data and the first image data, and the motion vector specificationPartThe motion vector specified by is encoded.
[0022]
  The image processing method of the third invention isWithin a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. A first step of generating a difference between each of the plurality of second pixel data corresponding to the position indicated by the motion vector, and a second step of performing orthogonal transformation on the difference generated in the first step; And a third step of specifying a motion vector based on the accumulated value of the difference subjected to the orthogonal transform in the second step.,in frontIn the second step,When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction Applies the orthogonal transform defined for the vertical direction to the difference.
[0023]
  The encoding method of the fourth invention isWithin a given motion compensation blockCandidates are selected from positions corresponding to the plurality of first pixel data in the plurality of first pixel data in the first image data and in the second image data correlated with the first image data. A first step of generating a difference between each of the plurality of second pixel data corresponding to the position indicated by the motion vector, and a second step of performing orthogonal transformation on the difference generated in the first step; A third step of specifying a motion vector based on the accumulated value of the difference subjected to the orthogonal transform in the second step, and a difference between the second image data and the first image data And a fourth step of encoding the motion vector specified in the third step, and in the second step,When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction Applies the orthogonal transform defined for the vertical direction to the difference.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
[Related art of the present invention]
FIG. 1 is a functional block diagram of an encoding apparatus 500 according to the related art of the present invention.
In the encoding apparatus 500 shown in FIG. 1, an input image signal is first converted into a digital signal by an A / D conversion circuit 501. Next, the screen rearrangement circuit 502 rearranges the frame image data in accordance with the GOP (Group of Pictures) structure of the image compression information to be output.
With respect to an image on which intra coding is performed, the entire frame image data is input to the orthogonal transformation circuit 504, and the orthogonal transformation circuit 504 performs orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation.
The transform coefficient that is the output of the orthogonal transform circuit 504 is quantized by the quantization circuit 505.
The quantized transform coefficient, which is the output of the quantization circuit 505, is input to the lossless encoding circuit 506, where it is subjected to lossless encoding such as variable length encoding and arithmetic encoding, and then to the buffer 507. Accumulated and output as compressed image data.
[0027]
The quantization rate in the quantization circuit 505 is controlled by the rate control circuit 512.
At the same time, the quantized transform coefficient that is the output of the quantization circuit 505 is inversely quantized by the inverse quantization circuit 508, and then subjected to inverse orthogonal transform processing by the inverse orthogonal transform circuit 509, and the deblock filter 513. The reference frame image data obtained by removing the block distortion and obtaining the reference frame image data is obtained. The reference frame image data is stored in the frame memory 510.
[0028]
On the other hand, for an image to be inter-coded, frame image data output from the screen rearrangement circuit 502 is input to the motion prediction / compensation circuit 511. At the same time, the reference frame image data is read from the frame memory 510, a motion vector is generated by the motion prediction / compensation circuit 511, and predicted frame image data is generated using the motion vector and the reference frame image data. Predicted frame image data is output to the arithmetic circuit 503, and the arithmetic circuit 503 generates image data indicating a difference between the frame image data from the screen rearrangement circuit 502 and the predicted frame image data from the motion prediction / compensation circuit 511. The image data is output to the orthogonal transform circuit 504.
Further, the motion compensation / prediction circuit 511 outputs the motion vector to the lossless encoding circuit 506, and the lossless encoding circuit 506 performs the lossless encoding process such as variable length encoding or arithmetic encoding on the motion vector. It is inserted in the header part. Other processes are the same as those of the image signal to be subjected to the intra coding.
[0029]
FIG. 2 is a functional block diagram of a decoding circuit 499 corresponding to the encoding device 500 shown in FIG.
In the decoding circuit 499 illustrated in FIG. 2, input image data is stored in the buffer 613 and then output to the lossless decoding circuit 614. The lossless decoding circuit 614 performs processing such as variable length decoding and arithmetic decoding based on the format of the frame image data. At the same time, when the frame image data is inter-coded, the lossless decoding circuit 614 also decodes the motion vector MV stored in the header portion of the frame image data, and the motion vector MV is subjected to motion prediction / It is output to the compensation device 620.
[0030]
The quantized transform coefficient that is the output of the lossless decoding circuit 614 is input to the inverse quantization circuit 615 where it is inversely quantized. The inversely quantized transform coefficient is subjected to inverse orthogonal transformation such as inverse discrete cosine transformation and inverse Karhunen-Labe transformation based on a predetermined format of frame image data in an inverse orthogonal transformation circuit 616. When the frame image data is intra-coded, the frame image data subjected to the inverse orthogonal transform process is stored in the screen rearrangement buffer 618 after block distortion is removed by the deblocking filter 621. The D / A conversion circuit 619 outputs the D / A conversion process.
[0031]
On the other hand, when the frame is inter-coded, predicted frame image data is generated in the motion prediction / compensation circuit 620 based on the motion vector MV and the reference frame image data stored in the frame memory 650. The predicted frame image data and the frame image data output from the inverse orthogonal transform circuit 616 are added by the adder 617. Other processes are the same as those of the frame image data that has been intra-encoded.
[0032]
By the way, in the encoding apparatus 500 shown in FIG. 1, the pixel data in the motion compensation block of the current frame and the pixels in the motion compensation block of the reference frame to be processed in the motion vector search with a small number of precision, for example, by JVT method Rather than SAD (Sum of Absolute Differenec) indicating the sum of squares of the difference d (residual component) from the data, the vertical and horizontal Hadamard transforms are applied to the difference d as shown in the following equation (1). SATD that is the sum of the absolute values of the values subjected to is generated, and a motion vector that minimizes the value J defined using the SATD is searched.
[0033]
[Expression 1]
Figure 0004360093
[0034]
However, as described above, in the motion search, if the difference d is subjected to vertical and horizontal Hadamard transformations shown in the following formula (1) to generate the SATD, the amount of calculation increases and the processing burden increases. There is a problem that is large.
Note that the same problem occurs in the determination process of the prediction direction of the motion compensation (MC) block and the determination process of the macroblock mode in the motion compensation.
[0035]
Hereinafter, an image processing apparatus, a method thereof, and an encoding apparatus according to this embodiment for solving the above-described problem will be described.
First embodiment
FIG. 3 is a conceptual diagram of the communication system 1 of the present embodiment.
As illustrated in FIG. 3, the communication system 1 includes an encoding device 2 provided on the transmission side and a decoding device 499 provided on the reception side.
The encoding device 2 corresponds to the encoding device of the invention.
The encoding device 2 and the decoding device 499 perform encoding and decoding based on the above-described JVT encoding method.
The decoding circuit 499 is the same as that described above with reference to FIG.
[0036]
In the communication system 1, the encoding device 2 on the transmission side generates frame image data (bit stream) compressed by orthogonal transformation such as discrete cosine transformation and Karhunen-Labe transformation and motion compensation, and modulates the frame image data. Later, it is transmitted via a transmission medium such as a satellite broadcast wave, a cable TV network, a telephone line network, or a mobile phone line network.
On the receiving side, after demodulating the received image signal, frame image data expanded by inverse transformation of orthogonal transformation and motion compensation at the time of modulation is generated and used.
The transmission medium may be a recording medium such as an optical disk, a magnetic disk, and a semiconductor memory.
[0037]
[Encoding device 2]
FIG. 4 is an overall configuration diagram of the encoding device 2 shown in FIG.
As illustrated in FIG. 4, the encoding device 2 includes, for example, an A / D conversion circuit 22, a screen rearrangement buffer 23, an arithmetic circuit 24, an orthogonal transformation circuit 25, a quantization circuit 26, a lossless encoding circuit 27, and a buffer 28. , Inverse quantization circuit 29, inverse orthogonal transform circuit 30, frame memory 31, rate control circuit 32, motion prediction / compensation circuit 36, deblock filter 37, mode discrimination circuit 40, simple SATD calculation circuit 41, and simple SATD calculation circuit 42 Have
Here, the simplified SATD calculation circuit 42 corresponds to the difference generation means and the orthogonal transformation means of the first invention, and the motion prediction / compensation circuit 36 corresponds to the motion vector identification means of the first invention.
The lossless encoding circuit 27 corresponds to the encoding means of the present invention.
Further, the mode discrimination circuit 40 corresponds to the prediction direction specifying means of the present invention, and the motion prediction / compensation circuit 36 corresponds to the motion vector specifying means of the present invention.
[0038]
In the encoding device 2, for example, in a motion vector search with a small number of precision, a difference (residual component) between pixel data in the motion compensation block of the current frame to be processed and pixel data in the motion compensation block of the reference frame is processed. On the other hand, a simple SATD, which is the sum of absolute values of values subjected to simple orthogonal transformation (orthogonal transformation of the present invention) with a smaller amount of computation than the Hadamard transformation described above, is used as a simple SATD calculation circuit 41 and a simple SATD calculation circuit 42. It has the feature in producing | generating with.
The mode discrimination circuit 40 and the motion prediction / compensation circuit 36 perform mode discrimination and motion vector search, respectively, based on the simple SATD generated in the same manner.
[0039]
Hereinafter, components of the encoding device 2 will be described.
[A / D conversion circuit 22]
The A / D conversion circuit 22 converts the input image signal composed of the analog luminance signal Y and the color difference signals Pb and Pr into a digital image signal, and outputs this to the screen rearrangement buffer 23.
[0040]
[Screen rearrangement buffer 23]
The screen rearrangement buffer 23 encodes the frame image signal in the image signal input from the A / D conversion circuit 22 in accordance with the GOP (Group Of Pictures) structure including the picture types I, P, and B. The frame image data S23 rearranged in (1) is output to the mode discrimination circuit 40.
[0041]
[Mode discrimination circuit 40]
The mode discriminating circuit 40 includes a prediction direction determination process for determining a prediction direction (forward direction and reverse direction in inter prediction) of a motion compensation block used in motion prediction / compensation in the motion prediction / compensation circuit 36, and a macroblock as an intra / A mode decision process for deciding which mode of the encoding is to be performed is performed.
For example, the mode determination circuit 40 selects a direction that minimizes the value J (accumulated value of the present invention) defined by the following equation (2) as the prediction direction of the motion compensation block of the B frame.
[0042]
[Expression 2]
Figure 0004360093
[0043]
In the above equation (2), PDIR indicates the prediction direction of the motion compensation block, s indicates image data to be encoded (current frame data), c indicates reference image data (reference frame data), and m indicates Indicates a motion vector, p indicates a prediction motion vector, REF indicates an identification number of reference image data, R indicates a generated code amount of a motion vector when the prediction direction is selected, and lMOTIONIndicates a predetermined coefficient.
Also, SATD in the above equation (2) is a difference (residual component) d between the pixel data in the block of the image data to be encoded and the pixel data in the block of the reference image data indicated by the argument. A cumulative value (absolute value sum) of values subjected to predetermined orthogonal transformation C (orthogonal transformation of the present invention) is shown.
[0044]
Here, the simple SATD calculation circuit 41 calculates the SATD, and the mode determination circuit 40 calculates the value J of the above formula (2) using the SATD input from the simple SATD calculation circuit 41.
In the present embodiment, the difference d is defined as the following formula (3).
[0045]
[Equation 3]
Figure 0004360093
[0046]
Note that the mode discrimination circuit 40 may determine the macroblock mode based on the simple SATD.
[0047]
[Simple SATD calculation circuit 41]
FIG. 5 is a functional block diagram of the simple SATD calculation circuit 41.
As illustrated in FIG. 5, the simple SATD calculation circuit 41 includes, for example, a difference calculation circuit 61 and an orthogonal transformation circuit 62.
Here, the difference calculation circuit 61 corresponds to the difference generation means of the present invention, and the orthogonal transformation circuit 62 corresponds to the orthogonal transformation means of the present invention.
[0048]
The difference calculation circuit 61 generates a difference (residual component) d between the pixel data S90 in the predetermined block of the current frame and the pixel data S91 in the predetermined block of the reference frame.
Further, the orthogonal transformation circuit 62 applies any one of the following formulas (4) to (11) to the difference d as the orthogonal transformation C, and sets the absolute value sum of the values obtained thereby as the simple SATD.
[0049]
That is, the orthogonal transformation circuit 62 performs the transformation only in the horizontal direction of the Hadamard transformation as the orthogonal transformation C as shown in the following equation (4) with respect to the difference d shown in the above equation (3), and is obtained thereby. The absolute value sum of the obtained values is defined as the simple SATD.
[0050]
[Expression 4]
Figure 0004360093
[0051]
The orthogonal transform circuit 62 performs a transform only in the vertical direction of the Hadamard transform as the orthogonal transform C on the difference d shown in the above formula (3) as shown in the following formula (5), and a value obtained thereby Is the simple SATD.
[0052]
[Equation 5]
Figure 0004360093
[0053]
  For the difference d shown in the above equation (3), the orthogonal transformation circuit 62 performs transformation that leaves only the low frequency component in the horizontal direction and the low frequency component in the vertical direction by Hadamard transformation, as shown in the following equation (6). The orthogonal transformation C is applied, and the sum of absolute values obtained thereby is defined as the simplified SATD.
  In the present embodiment, the horizontal low-frequency component is a frequency component within a predetermined range from the lowest frequency component of the difference d (for example, the coefficient for the left two rows or one row in Equation (3)). IndicateHorizontalThe high frequency component in the direction indicates a frequency component within a predetermined range from the highest frequency component of the difference d (for example, the coefficient for the right two rows or one row in the equation (3)),HorizontalThe middle frequency component in the direction indicates a frequency component between the low frequency component and the high frequency component.
  In the present embodiment, the low frequency component in the vertical direction is a frequency component within a predetermined range from the lowest frequency component of the difference d (for example, the coefficient for the upper two rows or one row of the equation (3)). The high-frequency component in the vertical direction is a frequency component within the predetermined range from the highest-frequency component of the difference d (for example, the coefficient for the last two rows or one row in Equation (3)), and the vertical direction The middle frequency component indicates a frequency component between the low frequency component and the high frequency component.
[0054]
[Formula 6]
Figure 0004360093
[0055]
The orthogonal transformation circuit 62 performs orthogonal transformation on the transformation that leaves the horizontal low-frequency component and the vertical global component by Hadamard transformation, as shown in the following equation (7), with respect to the difference d shown in the equation (3). C is applied, and the sum of absolute values obtained thereby is defined as the simple SATD. In this case, the orthogonal transformation circuit 62 can reduce the amount of computation compared to the computation shown in the above equation (1) by performing the transformation in the horizontal direction prior to the transformation in the vertical direction.
[0056]
[Expression 7]
Figure 0004360093
[0057]
The orthogonal transform circuit 62 orthogonally transforms the difference d shown in the above equation (3) by leaving only the horizontal region component in the horizontal direction and the low region component in the vertical direction by Hadamard transform as shown in the following equation (8). The conversion is performed as conversion C, and the sum of the absolute values obtained thereby is defined as the simplified SATD. In this case, the orthogonal transformation circuit 62 can reduce the amount of computation compared to the computation shown in the above equation (1) by performing the transformation in the vertical direction prior to the transformation in the horizontal direction.
[0058]
[Equation 8]
Figure 0004360093
[0059]
For the difference d shown in the above equation (3), the orthogonal transformation circuit 62 performs only the low frequency component in the horizontal direction and the high frequency and low frequency components in the vertical direction by Hadamard transform as shown in the following equation (9). Is applied as orthogonal transform C, and the absolute value sum of the values obtained thereby is defined as the simplified SATD.
[0060]
[Equation 9]
Figure 0004360093
[0061]
For the difference d shown in the above equation (3), the orthogonal transformation circuit 62 performs only the low and high frequency components in the horizontal direction and the low frequency component in the vertical direction by Hadamard transformation as shown in the following equation (10). Is applied as orthogonal transform C, and the absolute value sum of the values obtained thereby is defined as the simplified SATD.
[0062]
[Expression 10]
Figure 0004360093
[0063]
For the difference d shown in the above equation (3), the orthogonal transform circuit 62 uses a Hadamard transform to convert the low and high frequency components in the horizontal direction and the low and high frequencies in the vertical direction as shown in the following equation (11). The transformation that leaves only the band component is performed as the orthogonal transformation C, and the sum of the absolute values obtained thereby is defined as the simplified SATD.
[0064]
## EQU11 ##
Figure 0004360093
[0065]
  The orthogonal transform circuit 62 applies any one of the above-described equations (4) to (11) to the difference d as the orthogonal transform C according to the type of the motion compensation block, and calculates the absolute value sum of the values obtained thereby. The simple SATD may be used.
  For example, when the type of motion compensation block is 16 × 8 or 8 × 4 shown in FIG.8Or (10) Is used as the orthogonal transform C.
  Further, when the type of motion compensation block is 8 × 16 or 4 × 8 shown in FIG. 7, the orthogonal transform circuit 62 uses the above equations (5), (7) or (9) Is used as the orthogonal transform C.
  In addition, the orthogonal transformation circuit 62, when the type of motion compensation block is square,1), The above formula (6) or (11) may be used. In this case, SAD may be used without performing Hadamard transform.
[0066]
[Arithmetic circuit 24]
When the frame image data S23 is inter-coded, the arithmetic circuit 24 displays image data S24 indicating a difference between the frame image data S23 and the predicted frame image data S36a input from the motion prediction / compensation circuit 36. Is output to the orthogonal transform circuit 25.
In addition, when the frame image data S23 is intra-coded, the arithmetic circuit 24 outputs the frame image data S23 to the orthogonal transform circuit 25 as the image data S24.
[0067]
[Orthogonal transformation circuit 25]
The orthogonal transform circuit 25 subjects the image data S24 to orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform to generate image data (for example, DCT coefficient signal) S25, and outputs this to the quantization circuit 26.
For example, the orthogonal transform circuit 25 performs orthogonal transform in units of 4 × 4 blocks.
[0068]
[Quantization circuit 26]
The quantization circuit 26 quantizes the image data S25 with the quantization scale input from the rate control circuit 32 to generate image data S26, and outputs this to the lossless encoding circuit 27 and the inverse quantization circuit 29.
[0069]
[Reversible encoding circuit 27]
The lossless encoding circuit 27 performs variable-length encoding or arithmetic encoding on the image data S26 and stores the encoded image data in the buffer 28.
Further, the lossless encoding circuit 27 encodes the motion vector MV input from the motion prediction / compensation circuit 36 or a difference thereof, and stores it in the header data.
The image data stored in the buffer 28 is transmitted after being modulated or the like.
[0070]
[Inverse quantization circuit 29 and inverse orthogonal transform circuit 30]
The inverse quantization circuit 29 generates data obtained by inversely quantizing the image data S26 and outputs this to the deblock filter 37.
The inverse orthogonal transform circuit 30 stores in the frame memory 31 frame image data generated by performing inverse transform of the orthogonal transform on the image data that has been quantized and from which the block distortion has been removed by the deblocking filter 37.
[0071]
[Rate control circuit 32]
The rate control circuit 32 generates a quantization scale for quantization in the quantization circuit 26 based on the image data read from the buffer 28 and the quantization parameter QP, and outputs this to the quantization circuit 26.
[0072]
[Motion prediction / compensation circuit 36]
The motion prediction / compensation circuit 36 performs motion prediction / compensation processing based on the image data S31 from the frame memory 31 and the image data from the screen rearrangement buffer 23, and generates a motion vector MV and reference image data S36a. To do.
The motion prediction / compensation circuit 36 outputs the motion vector MV to the lossless encoding circuit 27 and outputs the reference image data S36a to the arithmetic circuit 24.
The motion prediction / compensation circuit 36 uses multiple reference frames as shown in FIG. 6 and selectively uses a plurality of types of motion compensation blocks as shown in FIG. 7 according to the JVT method. Furthermore, motion compensation is performed with a ¼ pixel accuracy or a 8 pixel accuracy with a minority pixel accuracy using an FIR filter.
[0073]
FIG. 8 is a functional block diagram of the motion prediction / compensation circuit 36.
As shown in FIG. 8, the motion prediction / compensation circuit 36 includes, for example, an integer precision MV search circuit 51, a SAD calculation circuit 52, an interpolation circuit 53, a minority pixel precision MV search circuit 54, and a reference image determination circuit 55.
The integer precision MV search circuit 51 includes pixel data in the processing target image data (current frame data) S23 input from the mode determination circuit 40 and pixels in the reference image data S31 (reference frame data) input from the frame memory 31. The data and the candidate motion vector MV are output to the SAD calculation circuit 52.
The integer precision MV search circuit 51 determines a motion vector MV1 that minimizes a value J represented by the following equation (12) among a plurality of candidate motion vectors based on SAD described later input from the SAD calculation circuit 52. Search (specify) with integer pixel accuracy.
[0074]
[Expression 12]
Figure 0004360093
[0075]
Λ shown in the above equation (12)MODEAs for I and P frames, λ shown in the following equation (13)MODE, P (I) And for the B frame, λ shown by the following equation (14):MODE, BIs used. The SAD is input from the SAD calculation circuit 52.
[0076]
[Formula 13]
Figure 0004360093
[0077]
[Expression 14]
Figure 0004360093
[0078]
The SAD calculation circuit 52 is a motion compensation block of the pixel data s (x, y) in the motion compensation block B of the image data (current frame data) S23 and the reference image data S31 (reference frame data) input from the frame memory 31. Pixel data c (x−m) in the block corresponding to Bx , Ymy ) And SAD is calculated by the following equation (15).
[0079]
[Expression 15]
Figure 0004360093
[0080]
The interpolating circuit 53 interpolates the reference image data (reference frame data) S31 with integer pixel accuracy input from the frame memory 31 by using an FIR filter or the like, and has a minority pixel accuracy with 1/4 or 1/8 pixel accuracy. Reference image data is generated and output to the minority pixel accuracy MV search circuit 54.
[0081]
The minority pixel accuracy MV search circuit 54 uses, for example, the integer pixel accuracy reference image data S31 from the frame memory 31 and the minority pixel accuracy reference image data obtained by the interpolation circuit 53 to use the integer accuracy MV search circuit. Within the search range defined by the motion vector MV1 generated in 51, the motion vector is searched with a small pixel accuracy.
At this time, the minority pixel accuracy MV search circuit 54 uses the simple SATD input from the simple SATD calculation circuit 42 to calculate the value J shown in the following equation (16), and from among a plurality of candidate motion vectors, A motion vector MV that minimizes the value J is searched.
[0082]
[Expression 16]
Figure 0004360093
[0083]
The reference image determination circuit 55 generates reference image data S36a based on the motion vector MV input from the minority pixel accuracy MV search circuit 54.
[0084]
[Simple SATD calculation circuit 42]
FIG. 9 is a functional block diagram of the simplified SATD calculation circuit 42 shown in FIGS.
As illustrated in FIG. 9, the simple SATD calculation circuit 42 includes, for example, a difference calculation circuit 71 and an orthogonal transformation circuit 72.
However, the simplified SATD calculation circuit 42 includes the pixel data S23a of the minority pixels and integer pixels of the image data 23 (current frame data) shown in FIG. 8, and the minority pixels and integer pixels of the reference image data S31 (reference frame data). A simple SATD is calculated using the pixel data S31a.
Here, the difference calculation circuit 71 corresponds to the difference generation means of the present invention, and the orthogonal transformation circuit 72 corresponds to the orthogonal transformation means of the present invention.
[0085]
The difference calculation circuit 71 includes the pixel data S23a in each motion compensation block and the pixel data S31a in the reference image data S31a corresponding to the pixel position indicated by the candidate motion vector from the pixel position corresponding to the pixel data S23a. The difference (residual component) d is calculated respectively.
Further, the orthogonal transform circuit 72 applies any one of the above-described formulas (4) to (11) as the orthogonal transform C to the difference d calculated by the difference calculation circuit 71, and the absolute value of the value obtained thereby. Let the sum be a simple SATD.
[0086]
  The orthogonal transform circuit 72 applies any one of the above-described equations (4) to (11) to the difference d as the orthogonal transform C according to the type of the motion compensation block, and calculates the absolute value sum of the values obtained thereby. The simple SATD may be used.
  For example, when the type of motion compensation block is 16 × 8 or 8 × 4 shown in FIG.8Or (10) Is used as the orthogonal transform C.
  Further, when the type of motion compensation block is 8 × 16 or 4 × 8 shown in FIG. 7, the orthogonal transform circuit 72 uses the above equations (5), (7) or (9) Is used as the orthogonal transform C.
  Further, the orthogonal transformation circuit 72, when the type of motion compensation block is square,1), The above formula (6) or (11) may be used. In this case, SAD may be used without performing Hadamard transform.
[0087]
Next, the overall operation of the encoding device 2 shown in FIG. 4 will be described.
The input image signal is first converted into a digital signal by the A / D conversion circuit 22. Next, the frame image data is rearranged in the screen rearrangement buffer 23 in accordance with the GOP structure of the image compression information to be output.
Then, in the mode discrimination circuit 40, based on the simple SATD calculated simply by the simple SATD calculation circuit 41, a prediction direction determination process for determining a prediction direction of a motion compensation block used in motion prediction / compensation, and a macroblock A mode determination process for determining which of the intra and inter modes is to be encoded is performed.
[0088]
For image data S23 (frame data) to be subjected to intra coding, image information of the entire frame data is input to the orthogonal transformation circuit 25, and orthogonal transformation such as discrete cosine transformation or Karhunen-Labe transformation is performed in the orthogonal transformation circuit 25. Is done.
The transform coefficient that is the output of the orthogonal transform circuit 25 is quantized by the quantization circuit 26.
The quantization circuit 26 performs quantization based on the control from the rate control circuit 32.
[0089]
The quantized transform coefficient, which is the output of the quantization circuit 26, is input to the lossless transformation circuit 27, where lossless coding such as variable length coding and arithmetic coding is performed, and then stored in the buffer 28. And output as compressed image data.
At the same time, the quantized transform coefficient, which is the output of the quantization circuit 26, is input to the inverse quantization circuit 29, and further subjected to inverse orthogonal transform processing in the inverse orthogonal transform circuit 30, and decoded image data ( Frame data), and the image data is stored in the frame memory 31.
[0090]
On the other hand, for an image to be inter-coded, first, the image data S23 is input to the motion prediction / compensation circuit 36. Further, the reference image data S31 is read from the frame memory 31 and output to the motion prediction / compensation circuit 36.
Then, in the motion prediction / compensation circuit 36, the motion vector MV and the predicted image data S36a are generated using the image data S31 of the reference image.
[0091]
Then, the arithmetic circuit 24 generates image data S24 that is a difference signal between the image data S23 from the mode determination circuit 40 and the predicted image data S36a from the motion prediction / compensation circuit 36, and the image data S24 is orthogonally transformed. It is output to the circuit 25.
At this time, the motion prediction / compensation circuit 36 uses multiple reference frames and selectively uses a plurality of types of motion compensation blocks according to the JVT method. Furthermore, motion compensation is performed with a ¼ pixel accuracy or a 8 pixel accuracy with a minority pixel accuracy using an FIR filter.
In the motion compensation, as described above, the motion prediction / compensation circuit 36 uses the simple SATD input from the simple SATD calculation circuit 42 to calculate the value J shown in the above equation (16), and a plurality of candidate motions. A motion vector MV that minimizes the value J is searched from the vectors.
[0092]
Then, in the lossless encoding circuit 27, the motion vector MV is subjected to lossless encoding processing such as variable length encoding or arithmetic encoding, and is inserted into the header portion of the image data. Other processing is the same as that of the image data to be subjected to intra coding.
[0093]
As described above, according to the encoding device 2, the simplified SATD calculation circuit 41 calculates the simplified SATD by performing the orthogonal transformation C shown in the above equations (4) to (11) in which the Hadamard transformation is simplified. Then, the prediction direction of the motion compensation block is determined based on the simple SATD.
Therefore, the calculation amount of the motion prediction / compensation circuit 36 can be reduced as compared with the case where Hadamard transform is used, and an appropriate motion vector MV can be obtained as compared with the case where orthogonal transformation is not performed. The amount of information of the image signal S24 can be reduced (encoding efficiency can be increased).
[0094]
The present invention is not limited to the embodiment described above.
For example, according to the above-described embodiment, the simple SATD calculation circuit 41 and the simple SATD calculation circuit 42 exemplify the case where the Hadamard transform is used as the orthogonal transform, but other orthogonal transforms such as DCT (Discrete Cosine transform) are used. Also good.
In the present embodiment, in the JVT method, the orthogonal transformation C in the simple SATD calculation circuit 41 and the simple SATD calculation circuit 42 is performed on a 4 × 4 pixel block. The orthogonal transformation C may be applied to blocks other than 4 × 4 pixels.
[0095]
【The invention's effect】
As described above, according to the present invention, it is possible to provide an image processing apparatus, an encoding apparatus, and a method thereof that can reduce the amount of calculation associated with motion compensation.
Furthermore, according to the present invention, it is possible to provide an image processing apparatus, an encoding apparatus, and methods thereof that can reduce the amount of calculation associated with determination of a prediction direction in predictive encoding.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of an encoding apparatus according to a related technique of the present invention.
FIG. 2 is a functional block diagram of a decoding device according to a related technique of the present invention.
FIG. 3 is a diagram for explaining an encoding apparatus according to the first embodiment of the present invention.
4 is a functional block diagram of the encoding apparatus shown in FIG. 3. FIG.
FIG. 5 is a functional block diagram of a simple SATD calculation circuit corresponding to the mode determination circuit shown in FIG. 3;
6 is a diagram for explaining multiple reference frames by the motion prediction / compensation circuit shown in FIG. 3. FIG.
FIG. 7 is a diagram for explaining a plurality of types of motion compensation blocks selected by the motion prediction / compensation circuit shown in FIG. 3;
FIG. 8 is a functional block diagram of the motion prediction / compensation circuit shown in FIG. 3;
FIG. 9 is a functional block diagram of a simple SATD calculation circuit corresponding to the motion prediction / compensation circuit shown in FIG. 3;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Communication system, 2 ... Encoding apparatus, 22 ... A / D conversion circuit, 23 ... Screen rearrangement buffer, 24 ... Operation circuit, 25 ... Orthogonal transformation circuit, 26 ... Quantization circuit, 27 ... Lossless encoding circuit, DESCRIPTION OF SYMBOLS 28 ... Buffer, 29 ... Inverse quantization circuit, 30 ... Inverse orthogonal transformation circuit, 31 ... Frame memory, 32 ... Rate control circuit, 36 ... Motion prediction / compensation circuit, 41 ... Simple SATD calculation circuit, 42 ... Simple SATD calculation circuit 61, 71 ... difference calculation circuit, 62, 72 ... orthogonal transformation circuit, 51 ... integer precision MV search circuit, 52 ... SAD calculation circuit, 53 ... interpolation circuit, 54 ... minority pixel precision MV search circuit, 55 ... reference image determination circuit

Claims (5)

所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する差分生成部と、
前記差分生成部が生成した前記差分に直交変換を施す直交変換部と、
前記直交変換部で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する動きベクトル特定部とを有し
記直交変換部は、
前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
画像処理装置。
The plurality of first pixel data in the plurality of first pixel data in the first image data in the predetermined motion compensation block and the second image data correlated with the first image data. A difference generation unit that generates a difference from each of a plurality of second pixel data corresponding to a position indicated by a candidate motion vector from a corresponding position;
An orthogonal transformation unit that performs orthogonal transformation on the difference generated by the difference generation unit;
A motion vector specifying unit that specifies a motion vector based on a cumulative value of the difference subjected to the orthogonal transform by the orthogonal transform unit ;
Before Symbol orthogonal transform unit,
When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction An image processing apparatus that applies orthogonal transformation defined in the vertical direction to the difference .
前記直交変換部は、前記動き補償ブロックが正方形状である場合には、前記水平方向および前記垂直方向について規定された2次元の直交変換を前記差分に施す
請求項に記載の画像処理装置。
The image processing apparatus according to claim 1 , wherein the orthogonal transform unit performs a two-dimensional orthogonal transform defined for the horizontal direction and the vertical direction on the difference when the motion compensation block has a square shape.
所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する差分生成部と、
前記差分生成部が生成した前記差分に直交変換を施す直交変換部と、
前記直交変換部で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する動きベクトル特定部と、
前記第2の画像データと前記第1の画像データとの差分、並びに前記動きベクトル特定部が特定した前記動きベクトルを符号化する符号化部と
を有し
記直交変換部は、
前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
符号化装置。
The plurality of first pixel data in the plurality of first pixel data in the first image data in the predetermined motion compensation block and the second image data correlated with the first image data. A difference generation unit that generates a difference from each of a plurality of second pixel data corresponding to a position indicated by a candidate motion vector from a corresponding position;
An orthogonal transformation unit that performs orthogonal transformation on the difference generated by the difference generation unit;
A motion vector specifying unit for specifying a motion vector based on a cumulative value of the difference subjected to the orthogonal transform in the orthogonal transform unit;
A difference between the second image data and the first image data, and an encoding unit that encodes the motion vector specified by the motion vector specifying unit ;
Before Symbol orthogonal transform unit,
When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction The encoding apparatus performs orthogonal transformation defined for the vertical direction on the difference .
所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する第1の工程と、
前記第1の工程で生成した前記差分に直交変換を施す第2の工程と、
前記第2の工程で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する第3の工程と
を有し
記第2の工程においては、
前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
画像処理方法。
The plurality of first pixel data in the plurality of first pixel data in the first image data in the predetermined motion compensation block and the second image data correlated with the first image data. A first step of generating a difference from each of a plurality of second pixel data corresponding to a position indicated by a candidate motion vector from a corresponding position;
A second step of performing orthogonal transformation on the difference generated in the first step;
A third step of specifying a motion vector based on the accumulated value of the difference subjected to the orthogonal transformation in the second step ,
In the prior SL second step,
When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction The image processing method of performing orthogonal transformation prescribed | regulated about the said vertical direction to the said difference .
所定の動き補償ブロック内の第1の画像データ内の複数の第1の画素データと、前記第1の画像データと相関を有する第2の画像データ内における、前記複数の第1の画素データに対応する位置から候補となる動きベクトルによって指し示される位置に対応する複数の第2の画素データとの差分をそれぞれ生成する第1の工程と、
前記第1の工程で生成した前記差分に直交変換を施す第2の工程と、
前記第2の工程で前記直交変換が施された前記差分の累積値を基に、動きベクトルを特定する第3の工程と、
前記第2の画像データと前記第1の画像データとの差分、並びに前記第3の工程で特定した前記動きベクトルを符号化する第4の工程と
を有し
記第2の工程においては、
前記動き補償ブロックが水平方向を長辺とする形状である場合には、前記水平方向について規定された直交変換を前記差分に施し、前記動き補償ブロックが垂直方向を長辺とする形状である場合には、前記垂直方向について規定された直交変換を前記差分に施す
符号化方法。
The plurality of first pixel data in the plurality of first pixel data in the first image data in the predetermined motion compensation block and the second image data correlated with the first image data. A first step of generating a difference from each of a plurality of second pixel data corresponding to a position indicated by a candidate motion vector from a corresponding position;
A second step of performing orthogonal transformation on the difference generated in the first step;
A third step of specifying a motion vector based on the accumulated value of the difference subjected to the orthogonal transformation in the second step;
A difference between the second image data and the first image data, and a fourth step of encoding the motion vector specified in the third step ,
In the prior SL second step,
When the motion compensation block has a shape with a long side in the horizontal direction, an orthogonal transformation defined for the horizontal direction is applied to the difference, and the motion compensation block has a shape with a long side in the vertical direction The encoding method of performing orthogonal transformation defined in the vertical direction on the difference .
JP2003027895A 2003-02-05 2003-02-05 Image processing apparatus and encoding apparatus and methods thereof Expired - Fee Related JP4360093B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003027895A JP4360093B2 (en) 2003-02-05 2003-02-05 Image processing apparatus and encoding apparatus and methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003027895A JP4360093B2 (en) 2003-02-05 2003-02-05 Image processing apparatus and encoding apparatus and methods thereof

Publications (3)

Publication Number Publication Date
JP2004241957A JP2004241957A (en) 2004-08-26
JP2004241957A5 JP2004241957A5 (en) 2006-03-23
JP4360093B2 true JP4360093B2 (en) 2009-11-11

Family

ID=32955496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003027895A Expired - Fee Related JP4360093B2 (en) 2003-02-05 2003-02-05 Image processing apparatus and encoding apparatus and methods thereof

Country Status (1)

Country Link
JP (1) JP4360093B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020156545A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
US11228775B2 (en) 2019-02-02 2022-01-18 Beijing Bytedance Network Technology Co., Ltd. Data storage in buffers for intra block copy in video coding
US11523107B2 (en) 2019-07-11 2022-12-06 Beijing Bytedance Network Technology Co., Ltd. Bitstream conformance constraints for intra block copy in video coding
US11528476B2 (en) 2019-07-10 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11546581B2 (en) 2019-03-04 2023-01-03 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
US11575888B2 (en) 2019-07-06 2023-02-07 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006100871A (en) * 2004-09-28 2006-04-13 Sony Corp Coder, coding method, program of coding method, and recording medium with the program recorded thereon
WO2006070614A1 (en) * 2004-12-28 2006-07-06 Nec Corporation Image encoding apparatus, image encoding method and program thereof
TWI271106B (en) 2005-10-25 2007-01-11 Novatek Microelectronics Corp Apparatus and method for motion estimation supporting multiple video compression standards
US8494052B2 (en) * 2006-04-07 2013-07-23 Microsoft Corporation Dynamic selection of motion estimation search ranges and extended motion vector ranges
JP2010028221A (en) 2008-07-15 2010-02-04 Sony Corp Motion vector detecting device, motion vector detecting method, image encoding device, and program
JP2010028220A (en) 2008-07-15 2010-02-04 Sony Corp Motion vector detecting device, motion vector detecting method, image encoding device, and program
JP5328629B2 (en) 2009-12-17 2013-10-30 株式会社メガチップス Encoder and image conversion apparatus
CN106488236B (en) * 2015-09-01 2019-07-12 北京君正集成电路股份有限公司 The calculation method and device of absolute transformed error sum in a kind of Video coding
CN112584234B (en) * 2020-12-09 2023-06-16 广州虎牙科技有限公司 Frame supplementing method and related device for video image

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228775B2 (en) 2019-02-02 2022-01-18 Beijing Bytedance Network Technology Co., Ltd. Data storage in buffers for intra block copy in video coding
US11375217B2 (en) 2019-02-02 2022-06-28 Beijing Bytedance Network Technology Co., Ltd. Buffer management for intra block copy in video coding
US11438613B2 (en) 2019-02-02 2022-09-06 Beijing Bytedance Network Technology Co., Ltd. Buffer initialization for intra block copy in video coding
US12003745B2 (en) 2019-02-02 2024-06-04 Beijing Bytedance Network Technology Co., Ltd Buffer updating for intra block copy in video coding
WO2020156545A1 (en) * 2019-02-02 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Prediction using intra-buffer samples for intra block copy in video coding
US11882287B2 (en) 2019-03-01 2024-01-23 Beijing Bytedance Network Technology Co., Ltd Direction-based prediction for intra block copy in video coding
US11956438B2 (en) 2019-03-01 2024-04-09 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
US11546581B2 (en) 2019-03-04 2023-01-03 Beijing Bytedance Network Technology Co., Ltd. Implementation aspects in intra block copy in video coding
US11985308B2 (en) 2019-03-04 2024-05-14 Beijing Bytedance Network Technology Co., Ltd Implementation aspects in intra block copy in video coding
US11575888B2 (en) 2019-07-06 2023-02-07 Beijing Bytedance Network Technology Co., Ltd. Virtual prediction buffer for intra block copy in video coding
US11936852B2 (en) 2019-07-10 2024-03-19 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11528476B2 (en) 2019-07-10 2022-12-13 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
US11523107B2 (en) 2019-07-11 2022-12-06 Beijing Bytedance Network Technology Co., Ltd. Bitstream conformance constraints for intra block copy in video coding

Also Published As

Publication number Publication date
JP2004241957A (en) 2004-08-26

Similar Documents

Publication Publication Date Title
US11107251B2 (en) Image processing device and method
JP5018085B2 (en) Motion prediction compensation method and motion prediction compensation device
US20110176614A1 (en) Image processing device and method, and program
JP4650173B2 (en) Encoding apparatus, encoding method, encoding method program, and recording medium recording the encoding method program
WO2010137323A1 (en) Video encoder, video decoder, video encoding method, and video decoding method
US20110103486A1 (en) Image processing apparatus and image processing method
JP4360093B2 (en) Image processing apparatus and encoding apparatus and methods thereof
CN102077595A (en) Image processing device and method
JP2011045128A (en) Video encoding/decoding motion compensation apparatus and method thereof
US20120147960A1 (en) Image Processing Apparatus and Method
JP2005510150A (en) Video decoding with reduced complexity using larger pixel grid motion compensation
US20090092189A1 (en) Movement prediction method and movement prediction apparatus
JP2002125236A (en) Motion vector conversion method and converter
JP2001145113A (en) Device and method for image information conversion
WO2011155332A1 (en) Image decoder apparatus, image encoder apparatus and methods and programs thereof
KR20070057212A (en) Encoder, encoding method, program of encoding method and recording medium wherein program of encoding method is recorded
WO2010035732A1 (en) Image processing apparatus and image processing method
US20110229049A1 (en) Image processing apparatus, image processing method, and program
US20110255602A1 (en) Image processing apparatus, image processing method, and program
JP2005110083A (en) Data processing apparatus and method, and coding apparatus
JP4214771B2 (en) Image processing apparatus and method and encoding apparatus
JP4349109B2 (en) Image data processing apparatus, method thereof, and encoding apparatus
US20060146183A1 (en) Image processing apparatus, encoding device, and methods of same
JP2006025033A (en) Device and method for image processing
JP2003348595A (en) Image processor and image processing method, recording medium and program

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090612

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: 20090721

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090803

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

Free format text: PAYMENT UNTIL: 20120821

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees