(57)【特許請求の範囲】
【請求項１】
所定サイズにブロック化された１フレーム又は１フィールドの入力画像に対してブロック単位で、動き補償を用いた符号化処理を行って出力する符号化装置であって、
上記入力画像データの最外周に位置するブロックについて動きベクトルを検索する第１の検索手段と、
上記第１の検索手段にて検索された各ブロックの動きベクトルから、上記入力画像全体の動きを表す第１の動きベクトルを生成する第１の生成手段と、
上記入力画像データの中央近傍に位置するブロックについて動きベクトルを検索する第２の検索手段と、
上記第２の検索手段にて検索された各ブロックの動きベクトルから、上記第１の動きベクトルに対する参照用の第２の動きベクトルを生成する第２の生成手段と、
上記第１の生成手段にて生成された第１の動きベクトルと上記第２の生成手段にて生成された第２の動きベクトルとの差分ベクトルが、所定の閾値以下である場合、上記入力画像データの全ブロックの動きベクトルを上記第２の動きベクトルに設定して符号化処理を実行する符号化手段とを備えることを特徴とする符号化装置。
【請求項２】
上記符号化手段は、上記差分ベクトルが、所定の閾値以上である場合、上記入力画像データの全ブロックの動きベクトルと、上記第１の動きベクトルとの差分値を比較した結果に基づいて、量子化係数を変更することを特徴とする請求項１記載の符号化装置。
【請求項３】
入力画像に対して所定の画像処理を行う画像処理装置であって、請求項１又は２記載の符号化装置の機能と、該機能により符号化された上記入力画像を復号化する機能とを備えることを特徴とする画像処理装置。
【請求項４】
所定サイズにブロック化された１フレーム又は１フィールドの入力画像に対してブロック単位で、動き補償を用いた符号化処理を行って出力する符号化方法であって、
上記入力画像データの最外周に位置するブロックについて動きベクトルを検索する第１の検索ステップと、
上記第１の検索ステップにて検索された各ブロックの動きベクトルから、上記入力画像全体の動きを表す第１の動きベクトルを生成する第１の生成ステップと、
上記入力画像データの中央近傍に位置するブロックについて動きベクトルを検索する第２の検索ステップと、
上記第２の検索ステップにて検索された各ブロックの動きベクトルから、上記第１の動きベクトルに対する参照用の第２の動きベクトルを生成する第２の生成ステップと、
上記第１の生成ステップにて生成された第１の動きベクトルと上記第２の生成ステップにて生成された第２の動きベクトルとの差分ベクトルが、所定の閾値以下である場合、上記入力画像データの全ブロックの動きベクトルを上記第２の動きベクトルに設定して符号化処理を実行する符号化ステップとを備えることを特徴とする符号化方法。
【請求項５】
請求項４に記載の符号化方法の処理ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル画像データを符号化する技術に関し、例えば、カメラ付きビデオレコーダ（カムコーダ）等に適用される符号化装置、画像処理装置、符号化方法、及び記録媒体に関するものである。
【０００２】
【従来の技術】
例えば、ＭＰＥＧに代表される動き補償を用いたフレーム又はフィールド間符号化（ここでは「フレーム間符号化」とする）において、動きベクトルの検出（検索）は、マクロブロック又は８×８画素のブロックの単位（ここでは「マクロブロック単位」とする）で、符号化の対象となっているフレームを中心に、前方、後方のフレームに対して行われる。
このとき、実際のマクロブロック内の画像データに関するフレーム間の動き量とは全く無関係に、対象フレーム内に存在する全マクロブロックに対して一律に、動きベクトルの検索がなされる。或いは、動きベクトルの探索範囲が、符号化及び復号化のリアルタイム動作の要求から、符号化の対象となっているマクロブロックを中心とする一定の範囲に限定され、その範囲にて動きベクトルの検索がなされる。このときの動きベクトルの探索範囲についても、各マクロブロックの画像データの実際の動き量とは無関係に、ハード及びソフト的な処理時間の制約から決められることが多い。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来では、ある一定の範囲に限定された検索範囲にて動きベクトルを検索して動き補償を行う場合、上述したように、その検索範囲は、各マクロブロックの画像データの実際の動き量とは無関係に決められていたため、例えば、実際の動きベクトルが該探索範囲を越えていたとすると、動き補償を用いたフレーム間符号化のメリットである、フレーム間の画像データの冗長性を削減して符号量を削減する、という目的が達成されない可能性があった。
【０００４】
また、ＭＰＥＧ等で行われる画像データ圧縮方法での処理過程の１つである、直交変換（２次元離散コサイン変換：ＤＣＴ等）された画像データを周波数によって重み付けした量子化係数で除算するという作業において、該量子化係数についても、符号化の対象となっているマクロブロック内の画像データの動き量とは無関係に、最終的な発生符号量に基づいて決定されていた。このため、動き量に応じて量子化係数を補正することができず、この結果、画質劣化伴う危険性があった。
【０００５】
そこで、本発明は、上記の欠点を除去するために成されたもので、画像データの符号化を効率的に行うことが可能であると共に、画質を向上させることが可能な、符号化装置、画像処理装置、符号化方法、及び記録媒体を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の符号化装置は、所定サイズにブロック化された１フレーム又は１フィールドの入力画像に対してブロック単位で、動き補償を用いた符号化処理を行って出力する符号化装置であって、上記入力画像データの最外周に位置するブロックについて動きベクトルを検索する第１の検索手段と、上記第１の検索手段にて検索された各ブロックの動きベクトルから、上記入力画像全体の動きを表す第１の動きベクトルを生成する第１の生成手段と、上記入力画像データの中央近傍に位置するブロックについて動きベクトルを検索する第２の検索手段と、上記第２の検索手段にて検索された各ブロックの動きベクトルから、上記第１の動きベクトルに対する参照用の第２の動きベクトルを生成する第２の生成手段と、上記第１の生成手段にて生成された第１の動きベクトルと上記第２の生成手段にて生成された第２の動きベクトルとの差分ベクトルが、所定の閾値以下である場合、上記入力画像データの全ブロックの動きベクトルを上記第２の動きベクトルに設定して符号化処理を実行する符号化手段とを備えることを特徴とする。
【０００７】
また、本発明の符号化方法は、所定サイズにブロック化された１フレーム又は１フィールドの入力画像に対してブロック単位で、動き補償を用いた符号化処理を行って出力する符号化方法であって、上記入力画像データの最外周に位置するブロックについて動きベクトルを検索する第１の検索ステップと、上記第１の検索ステップにて検索された各ブロックの動きベクトルから、上記入力画像全体の動きを表す第１の動きベクトルを生成する第１の生成ステップと、上記入力画像データの中央近傍に位置するブロックについて動きベクトルを検索する第２の検索ステップと、上記第２の検索ステップにて検索された各ブロックの動きベクトルから、上記第１の動きベクトルに対する参照用の第２の動きベクトルを生成する第２の生成ステップと、上記第１の生成ステップにて生成された第１の動きベクトルと上記第２の生成ステップにて生成された第２の動きベクトルとの差分ベクトルが、所定の閾値以下である場合、上記入力画像データの全ブロックの動きベクトルを上記第２の動きベクトルに設定して符号化処理を実行する符号化ステップとを備えることを特徴とする。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２４】
（第１の実施の形態）
まず、本発明を適用した符号化方法における、符号化の対象となっているフレーム又はフィールド（ここでは「フレーム」とする）全体の動きを表す動きベクトル（グローバル動きベクトル、以下、「ＧＭＶ」と言う）の生成から、該ＧＭＶの大きさに基づいて符号化モードを決定するまでの処理過程について説明する。
【００２５】
例えば、図１に示すように、符号化の対象となる１枚のフレーム１０１の画像データが、ｎ×ｎ画素（ｎ：整数）という大きさのブロック又はマクロブロック（ここでは「ブロック」とする）で分割されている。この図１において、塗り潰し部分で示すそれぞれのブロック１０２（１），１０２（２），・・・は、ＧＭＶ１０３を定義するために、最優先で動きベクトルが探索（検出）されるブロックである。
【００２６】
そこで、ＧＭＶ１０３を生成するために、先ず、上記図１の”１０４”で示すように、フレーム１０１の画像の最外周に位置する全てのブロック１０２（１），１０２（２），・・・，１０２（ｘ），・・・について、前方又は後方の動きベクトルを探索する。
尚、ここでの動きベクトルの探索方法は限られず、従来から用いられているような任意の方法でよい。また、フレーム１０１の最外周に位置するブロック１０２（１），１０２（２），・・・，１０２（ｘ），・・・において、最優先で動きベクトルを求めるブロックを、例えば、図２に示すように、所定間隔に位置するブロック１０２（１），１０２（６），１０２（１１），・・・としてもよい。
【００２７】
次に、ブロック１０２（１），１０２（２），・・・，１０２（ｘ），・・・のそれぞれの動きベクトルの平均値を求め、その平均値をＧＭＶ１０３として定義する。
【００２８】
次に、上述のように定義されたＧＭＶ１０３を、予め定義された複数の閾値と比較して、現フレーム１０１全体の動きを判定し、その判定された動きの大きさに応じて、現フレーム１０１の符号化モード（例えば、フレーム内符号化、前方予測フレーム間符号化、双方向フレーム間符号化等）を選択することで、画質と符号量のバランスを維持する。
尚、ここでのＧＭＶ１０３の大きさに対する符号化モードの判定基準は、符号化器の設計意図等により決定される任意の基準でよい。
【００２９】
そして、上述のようにして定義された符号化モードにてフレーム１０１に対する動き補償を用いた符号化を実施するにあたり、該動き補償のための動きベクトルの検索を次のようにして行う。
すなわち、最優先で動きベクトルを探索されなかった残りの全ブロック（フレーム１０１の最外周に位置するブロック１０２（１），１０２（２），・・・以外のブロック）について動きベクトルの探索を行うときの探索範囲として、予め定義された探索範囲に対してＧＭＶ１０３相当分オフセットした探索範囲を設定し、その検索範囲内のブロックに対して動きベクトルの探索を行う。
【００３０】
（第２の実施の形態）
本実施の形態では、符号化の対象となっているフレーム１０１内の最優先で動きベクトルを求めるブロックを、上記図２に示したように、フレーム１０１の最外周に位置するブロック１０２（１），１０２（２），・・・のうちの一部のブロック１０２（１），１０２（６），１０２（１１），・・・とする。
【００３１】
そこで、先ず、第１の実施の形態と同様にして、上記図２の”１１１”で示すように、ブロック１０２（１），１０２（６），１０２（１１），・・・のそれぞれの動きベクトルを探索し、求めた動きベクトルの平均値をＧＭＶ１０３として定義する。
【００３２】
次に、図３の”１１２”に示すように、フレーム１０１の中央近傍に位置するブロック（斜線部分）を複数個選択し、それらのブロックの動きベクトルを探索し、その平均値を求める。そして、この平均値を参照ベクトル（以下、「ＲＭＶ」と言う）１１３として定義する。
【００３３】
そして、上述のようにして定義したＧＭＶ１０３とＲＭＶ１１３を用いて、動き補償のための動きベクトルの検索を次のようにして行う。
【００３４】
すなわち、ＧＭＶ１０３とＲＭＶ１１３を比較することで、現フレーム１０１の画像が、図４に示すように、時間的に前後するフレームの画像に対して全体的に動いているものであるか（カメラ等の移動によるフレーミングの移動があるか）、それとも図５に示すように、フレーム内の画像の一部（ここでは”鳥”）が移動（変化）しているのかを判定する。
具体的には、ＧＭＶ１０３とＲＭＶ１１３とを比較し、図６の（ａ）や（ｂ）に示すように、両者の差分ベクトルが所定の閾値Ｔｈ以下である場合、上記図４に示したようなフレーム全体が動いている画像と判定する。また、上記図６の（ｃ）や（ｄ）に示すように、両者の差分ベクトルが所定の閾値Ｔｈを越える場合には、上記図５に示したようなフレーム内の画像の一部が移動している、或いはシーンチェンジ（急に場面が変わった画像）等の上記図４に示した状態を除く画像であると判定する。
尚、上記図４及び図５のそれぞれに示した３枚の画像は、時間的に左から右に進んだ状態を示したものである。例えば、上記図４の画像は、カメラを水平移動（左から右へ）させながら景色を撮影して得られたものであり、上記図５の画像は、カメラを固定して撮影している時に、フレームの左から右に被写体の一部（ここでは”鳥”）が移動したときを撮影して得られたものである。
【００３５】
上述のような判定の結果、現フレーム１０１の画像が全体的に動いているものであった場合（上記図４参照）、動きベクトルの検索を行っていないブロックを含むフレーム１０１内の全ブロックの動きベクトルを、ＲＭＶ１１３で置き換える。そして、現フレーム１０１の動きベクトルの探索を終了して、次の直交変換や量子化等の圧縮処理へと移行する。
【００３６】
一方、現フレーム１０１の画像の一部が移動しているものであった場合（上記図５参照）、ＧＭＶ１０３とフレーム１０１内の各ブロックの動きベクトルを比較し、その比較結果に基づいて、量子化係数に対する重み付けの調整等の処理を行って、設計意図に従った符号量や画質の最適化を行う。
具体的には、まず一般に、カット＆ディゾルブ等の絵柄がフレーム全体で大きく変化するシーンチェンジを除けば、動画像のフレーム（又はフィールド）間の相関性は高いと考えられる。そこで、ＧＭＶ１０３とフレーム１０１内の各ブロックの動きベクトル（前方及び後方）を比較して、その比較結果を各ブロックの動きの大きさに反映する。例えば、ＧＭＶ１０３との差分値が所定の閾値以上であるブロックは、動きが大きいと判定して、量子化係数を変更又は調整する。逆に、ＧＭＶ１０３との差分値が所定の閾値以下であるブロックは、動きが小さいと判定して、量子化係数を変更又は調整する。その一例として、動きのある部分の画質重視であれば、動きの大きいブロックに対しては量子化係数を小さくする方向に、動きの小さいブロックに対しては量子化係数を大きくする方向に調整して画質調整を行う。もちろんこの逆も可能である。このようなＧＭＶ１０３との差分値の評価結果に対する処理は、符号化器の設計意図によって変えてよい。
【００３７】
尚、第１及び第２の実施の形態において、ＧＭＶ１０３の定義のために、ここでは、フレーム１０１の最外周に位置するブロック１０２（１），１０２（２），・・・、又はその一部のブロック１０２（１），１０２（６），１０２（１１），・・・のそれぞれの動きベクトルの平均値を用いるようにしたが、これに限られることはなく、例えば、取り扱う画像の性質に合わせて、ブロックの位置をパラメータとしての重み付けや、平均値以外の関数を用いるようにしてもよい。また、ＧＭＶ１０３の定義についても同様に、それぞれのブロックの動きベクトルの平均値に限られることはなく、任意の演算処理の結果を用いるようにしてよい。
また、ＧＭＶ１０３を定義するための最優先で動きベクトルを求めるブロックや、ＲＭＶ１１３を定義するためのフレーム１０１の中央近傍のブロックの位置と数の選択についても、上記図１〜図３に示した方法に限定されることはない。例えば、図７に示すように、第２の実施の形態において、フレーム１０１の最外周に位置するブロック１０２（１），１０２（２），・・・の動きベクトルからＧＭＶ１０３を定義し、フレーム１０１の中央の４ブロックの動きベクトルからＲＭＶ１１３を定義するようにしてもよい。
【００３８】
（第３の実施の形態）
本発明は、例えば、図８に示すような符号化装置２００に適用され、この符号化装置２００は、カメラ付きビデオレコーダ（カムコーダ）等の装置内に設けられる。
尚、上記図８の符号化装置２００の構成は、上述した第１の実施の形態の符号化方法の機能を実現するハードウェア構成の一例でもある。
【００３９】
符号化装置２００は、入力画像データを動き補償を用いて符号化するものであり、上記図８に示すように、入力画像データｄ２０９を所定のサイズのブロックに分割するブロック化処理部２０１と、ブロック化処理部２０１を介した入力画像データｄ２０９を蓄積するためのフレームメモリ２０２と、動き予測（補償）処理及び圧縮処理等を行う符号化処理部２０３、符号化処理部２０３から出力される符号（符号化画像データ）に可変長符号を付与する可変長符号化処理部２０４と、符号化処理部２０３から出力される符号（符号化画像データ）を復号する復号化処理部２０６と、復号化処理部２０６から出力される局部復号化画像データを記憶するためのバッファメモリ２０８と、フレームメモリ２０２から出力される画像（入力画像データｄ２１５）とバッファメモリ２０８から出力される画像（局部復号化画像データｄ２１３）から動きベクトル（ＧＭＶ）を生成する動き検出部２０７と、動き検出部２０７の出力に従ってフレームメモリ２０２及びバッファメモリ２０８の読出書込アドレスを制御するアドレスコントローラ２０５とを含んでなる。
【００４０】
また、動き検出部２０７は、例えば、図９に示すように、フレームメモリ２０２から出力される画像（入力画像データｄ２１５）とバッファメモリ２０８から出力される画像（局部復号化画像データｄ２１３）の差分を検出するための減算器３０１と、減算器３０１での減算結果（差分値）の大きさを評価する動きベクトル検索部（動き評価部）３０２と、動きベクトル検索部３０２の出力に従ってＧＭＶの評価方法を平均値又は重み付け累積加算等の演算による複数の方法（ここでは「平均値による評価方法」と「重み付け累積加算による評価方法」の２つとする）の中から選択するためのセレクタ３０３と、セレクタ３０３の出力に従って動作する平均値演算部３０４及び動きベクトル累積加算部３０５と、平均値演算部３０４又は動きベクトル累積加算部３０５の出力からＧＭＶを決定するＧＭＶ評価部３０６とを含んでなる。そして、動きベクトル検索部３０２の出力がアドレスコントローラ２０５に供給され、ＧＭＶ評価部３０６の出力が符号化処理部２０３に供給されるようになされている（上記図１参照）。
【００４１】
上述のような符号化装置２００において、先ず、入力画像データｄ２０９は、ブロック化処理部２０１に入力される。ブロック化処理部２０１は、入力画像データｄ２０９を所定サイズのブロックに分割して、それをフレームメモリ２０２に一旦格納する。
フレームメモリ２０２に格納されたブロック化画像データは順次、アドレスコントローラｄ２０５から出力されるフレームメモリ用の読出アドレス信号ｄ２１４に従って、符号化処理部２０３及び動き検出部２０７に対して入力される。
【００４２】
符号化処理部２０３は、フレームメモリ２０２からのブロック化画像データに対してブロック単位で、後述する動き検出部２０７からのＧＭＶｄ２１６に基づいた動き補償処理を行った後、それにより得られた予測誤差信号に対してＤＣＴ（直交変換）や量子化等の圧縮処理を行い、これらの処理を行ったブロック化画像データを符号化画像データとして可変長符号化処理部２０４及び復号化処理部２０６へ供給する。
尚、符号化処理部２０３での動き補償のための動きベクトルの検索については後述する。
【００４３】
可変長符号化処理部２０４は、符号化処理部２０３からの符号化画像データに可変長符号（ＶＬＣ）を付与した後、それを符号化装置２００の出力ｄ２１０とする。
【００４４】
一方、復号化処理部２０６は、符号化処理部２０３からの符号化画像データに対して復号化処理を行い、それにより得た復号化画像データ（局部復号化画像データ）をバッファメモリ２０８に格納する。
バッファメモリ２０８に格納された局部復号化画像データは、アドレスコントローラｄ２０５から出力されるバッファメモリ用の読出アドレス信号ｄ２１２に従って、動き検出部２０７に対して入力される。
【００４５】
このとき動き検出部２０７には、フレームメモリ２０２からの入力画像データｄ２１５と、バッファメモリ２０８からの局部復号化画像データｄ２１３と、外部からの動き補償モード選択信号ｄ２１１が供給されている。
【００４６】
そこで、先ず、動き検出部２０７は、上記図１の塗り潰し部分に示したようなＧＭＶ検出用に選択されたブロックの参照画像データ（入力画像データｄ２１５）、及び上記ＧＭＶ検出過程において比較対象となる局部復号された画像データ（局部復号化画像データｄ２１３）をフレームメモリ２０２及びバッファメモリ２０８から得るための読出アドレスの生成をアドレスコントローラ２０５に要求する。これを受けたアドレスコントローラは、フレームメモリ２０２及びバッファメモリ２０８のそれぞれに対して、上記の各データに対応する読出アドレス信号ｄ２１４及びｄ２１２を出力する。これにより、動き検出部２０７には、フレームメモリ２０２から読出アドレス信号ｄ２１４に従って読み出されたＧＭＶ検出用に選択された参照ブロックの入力画像データｄ２１５と、バッファメモリ２０８から読出アドレス信号ｄ２１２に従って読み出された入力画像データｄ２１５の比較対象となる局部復号化データｄ２１３とが入力されることになる。
【００４７】
次に、動き検出部２０７は、以下に説明するように動作する。これについては上記図９を用いて説明する。
フレームメモリ２０２からの入力画像データｄ２１５（参照画像データ）、及びバッファメモリ２０８からの局部復号化画像データｄ２１３（比較用画像データ）は、減算器３０１に供給される。減算器３０１は、供給されたそれぞれのデータの差分値を求めて出力する。
動きベクトル検索部３０２は、減算器３０１から出力された差分値の大きさを評価（動き評価）する。ここで、動き評価を行うブロックは、上記図１や図２の斜線部分に示したようなブロックであり、また、各ブロックの動き探索範囲は任意とする。したがって、動きベクトル検索部３０２は、動き評価の対象ブロックのそれぞれに対して、減算器３０１にて得られた差分値が最小となるブロックの座標を、それぞれの対象ブロックの動きベクトルとして決定する。
セレクタ３０３は、外部から入力される動き補償モード選択信号（評価モード選択信号）ｄ２１１に基づいて、ＧＭＶｄ２１６の評価方法（決定方法）を平均値による方法又は重み付け累積加算による方法の何れかを選択し、それに従った選択信号（動きベクトル検索部３０２にて得られた動きベクトルを含む）を、平均値演算部３０４又は動きベクトル累積加算部３０５に供給する。
平均値演算部３０４は、セレクタ３０３からの選択信号に従って、動きベクトル検索部３０２にて得られた動きベクトルの平均値を求める。
また、動きベクトル累積加算部３０５も、セレクタ３０３からの選択信号に従って、動きベクトル検索部３０２にて得られた動きベクトルに重み付けを施した累積値を求める。  そして、ＧＭＶ評価部３０６は、平均値演算部３０４にて得られた動きベクトルの平均値、又は動きベクトル累積加算部３０５にて得られた動きベクトルの累積値から、画像（フレーム又はフィールド、ここでは「フレーム」）全体の動きベクトル、すなわちＧＭＶｄ２１６を決定して出力する。この出力されたＧＭＶｄ２１６は、符号化処理部２０３（上記図１参照）に供給される。
【００４８】
したがって、符号化処理部２０３は、動き補償のための動きベクトルの検索範囲を、動きベクトル探索対象ブロックの座標位置から、上述のような動き検出部２０７からのＧＭＶｄ２１６相当分だけオフセットした点を動きベクトル検索開始点とした検索範囲として、動き補償処理を行うことになる。
このように、符号化処理部２０３では、動き検出部１０７からのＧＭＶｄ２１６によって、動き補償処理における動きベクトルの探索時間（実質的な探索範囲）を縮小できるため、全体処理時間の短縮を図ることができる。
【００４９】
（第４の実施の形態）
本実施の形態では、上記図８の符号化装置２００の内部構成を、例えば、図１０に示すような構成とする。
尚、上記図１０の符号化装置２００の構成は、上述した第２の実施の形態の符号化方法の機能を実現するハードウェア構成の一例でもある。また、ここでは、上述した第３の実施の形態と異なる構成についてのみ、具体的に説明するものとする。
【００５０】
すなわち、ここでの符号化装置２００では、上記図１０に示すように、アドレスコントローラ２０５には外部からの動きベクトル検索範囲指定情報ｄ４０１が供給され、動き検出部２０７から符号化処理部２０３に対しては上述したＧＭＶｄ２１６に加えてＲＭＶ（参照ベクトル）ｄ４０２をも供給されるようになされている（上記図１０の二重線で示す）。
このため、図１１に示すように、動き検出部２０７において、ＧＭＶ評価部３０６は、ＧＭＶｄ２１６を決定して出力すると共に、ＲＭＶｄ４０２をも決定して出力するようになされている。
【００５１】
そこで、先ず、上述したようにして、入力画像データｄ２０９は、ブロック化処理部２０１にてブロック化され、フレームメモリ２０２に一旦格納される。フレームメモリ２０２に格納されたブロック化画像データは、符号化処理部２０３に対して順次読み出され、符号化処理部２０３において、動き検出部２０７からのＧＭＶｄ２１６に基づいた動き補償処理が行われた後、その結果得られた予測誤差信号に対して、例えば、直交変換（ＤＣＴ等）や量子化等の圧縮処理が行われる。これにより得られた符号化画像データは、可変長符号化処理部２０４にて可変長符号が付与された後、本装置から送出される。
これと同時に、符号化処理部２０３にて得られた符号化画像データは、復号化処理部２０６にて復号化処理が行われ、バッファメモリ２０８に格納される。
【００５２】
また、動き検出部２０７（ＧＭＶ／ＲＭＶ検出ブロック）は、ＧＭＶｄ２１６又はＲＭＶｄ４０２の検出用に選択された入力画像データｄ２０９の参照ブロック（上記図１や図２の塗り潰し部分にて示したブロック、上記図３や図７の斜線部分にて示したブロック）と、ＧＭＶｄ２１６又はＲＭＶｄ４０２の検出過程において比較対象となる局部復号した画像データ（局部復号化画像データｄ２１３）との読出アドレスの生成をアドレスコントローラ２０５に要求する。これを受けたアドレスコントローラ２０５は、フレームメモリ２０２及びバッファメモリ２０８のそれぞれに対して読出アドレス信号ｄ２１４及びｄ２１２を出力し、対応する画像データｄ２１５及びｄ２１３を動き検出部２０７に入力させる。
このとき、アドレスコントローラ２０５が生成する、フレームメモリ２０２及びバッファメモリ２０８のそれぞれに対する読出アドレス信号ｄ２１４及びｄ２１２は、外部からの動きベクトル検索範囲指定情報ｄ４０１にて指定される、ＧＭＶｄ２１６及びＲＭＶｄ４０２のそれぞれの探索対象となっているブロックのアドレスである。
上記のブロックのアドレスとは、ここでは、ＧＭＶｄ２１６に関しては上記図１や図２の塗り潰し部分にて示したようなブロックのアドレスであり、ＲＭＶｄ４０２に関しては上記図３や図７の斜線部分にて示したようなブロックのアドレスである。
【００５３】
その後、動き検出部２０７は、以下に説明するように動作する。これについては上記図１１を用いて説明する。
先ず、上述したように、減算器３０１では、フレームメモリ２０２からの入力画像データｄ２１５（参照画像データ）と、及びバッファメモリ２０８からの局部復号化画像データｄ２１３（比較用画像データ）との差分値がとられる。この差分値は、動きベクトル検索部３０２にてその大きさが評価される。ここでの動き評価を行うブロックは、ＧＭＶｄ２１６に関しては上記図１や図２の塗り潰し部分で示した各ブロックであり、ＲＭＶｄ４０２に関しては上記図３や図７の斜線部分で示した各ブロックである。また、ＧＭＶｄ２１６及びＲＭＶｄ４０２に対する動き探索範囲は任意であり、それぞれの動き評価対象ブロックに対し、上記の差分値が最小となるポイントの座標を、動き評価対象ブロックの動きベクトルとして決定する。
次に、セレクタ３０３により、外部からの動き補償モード選択信号ｄ２１１に従って、平均値演算部３０４又は動きベクトル累積加算部３０５による評価方法が選択される。
そして、平均値演算部３０４又は動きベクトル累積加算部３０５での演算結果を用いて、ＧＭＶ／ＲＭＶ評価部３０６では、フレーム１０１の画像全体の動きベクトル（ＧＭＶｄ２１６）、又はフレーム１０１内の注目部分（フレーム１０１内の主たる絵柄が存在する部分等）の動きを表すＲＭＶｄ４０２が決定される。これらの決定されたＧＭＶｄ２１６とＲＭＶｄ４０２が符号化処理部２０３に供給される。
【００５４】
符号化処理部２０３は、例えば、図１２に示すように、フレームメモリ２０２からの入力画像データ（ブロック化画像データ）ｄ２１５とバッファメモリ２０８からの局部復号化画像データｄ２１７の差分をとる減算器５０１と、動き検出部２０７からのＧＭＶｄ２１６及びＲＭＶｄ４０２を用いて動き補償処理を行う動き補償処理部５０２と、動き補償処理部５０２の出力に対して直交変換や量子化等の処理を行う符号化器５０３と、符号化器５０３での量子化係数に対する画像の動きに応じた重み付けを行うために動きベクトル検索部５０２の出力をクラス分けするクラス判定部５０４とを含んでなる。
【００５５】
フレームメモリ２０２からの入力画像データｄ２１５と、バッファメモリ２０８からの局部復号化画像データｄ２１７とは、減算器５０１に供給され、これらのデータの差分値（予測誤差信号）が減算器５０１にて求められる。
【００５６】
動き補償処理部５０２は、減算器５０１にて求められた予測誤差信号に対して動き補償を行って出力するが、このときの動きベクトルの検察を次のようにして行う。
すなわち、動き検出部２０７からのＧＭＶｄ２１６とＲＭＶｄ４０２の差分値を求め、その差分値と予め設定された所定の閾値と比較する。この比較の結果、差分値が閾値以下である場合には、フレーム内の全ブロックの動きベクトルをＲＭＶｄ４０２で置き換え、該差分値が該閾値を越える場合には、フレーム内の全ブロックの動きベクトルをＲＭＶｄ４０２で置き換え、差分値が閾値を越える場合には、通常どおり動きベクトル探索対象ブロックの座標位置からＧＭＶｄ２１６相当分だけオフセットした点を動きベクトル探索開始点（原点）とする検索範囲にて、動きベクトルの探索を実行する。
【００５７】
符号化器５０３は、上述のような動き補償処理部５０２にて動き補償が行われた予測誤差信号ｄ５１０に対して、直交変換処理（ここでは「ＤＣＴ」）を行い、それにより得られた変換係数を、周波数帯域に応じた任意の重み付けを施した量子化係数にて量子化（圧縮）する。この結果得られた符号化画像データが、可変長符号化処理部２０４へ供給され、ここにて可変長符号が付与された後、伝送、或いは任意のメディアに蓄積されることになる。
【００５８】
このとき、クラス判定部５０４は、動き補償処理部５０２にて求められた各ブロックの動きベクトルの大きさをパラメータとして、該動きベクトルを複数のクラスに分割し、そのクラス分けした結果を、符号化器５０３及び動き補償処理部５０２にそれぞれ供給する。
これにより、動き補償処理部５０２は、上述した動きベクトルの検索の際に、動きベクトルの大きさが最小クラスに分類され、且つ所定の閾値以下である場合、全ブロックの動きベクトルに関して、その大きさをゼロに置換する。また、符号化器５０３は、上記の場合以外の場合、各クラス毎に量子化係数に対する任意の重み付け（重みづけの度合いは任意）を行い、その量子化係数によって上述した量子化を行う。
このように、クラス判定部５０４のクラス分けの結果に基づいて、動き補償処理部５０２での動きベクトルの検索、及び符号化器５０３での量子化係数に対する重み付けを行うことで、符号量制御や画質制御を行う。
【００５９】
尚、本発明の目的は、上述した各実施の形態のホスト及び端末の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が各実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することとなる。
プログラムコードを供給するための記憶媒体としては、ＲＯＭ、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等を用いることができる。
また、コンピュータが読みだしたプログラムコードを実行することにより、各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって各実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって各実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００６０】
【発明の効果】
以上説明したように本発明では、符号化対象であるフレーム又はフィールドの入力画像において、それを構成するブロックの中で、第１の所定位置（最外周の位置等）に存在するブロックの動きベクトルを検索し、その結果得られた各ブロックの動きベクトルの平均値をとる等して、フレーム又はフィールド全体の動きを表す第１の動きベクトル（グローバル動きベクトル：ＧＭＶ）を求める。また、第２の所定位置（中央付近の位置）に存在するブロックの動きベクトルを検索し、その結果得られた各ブロックの動きベクトルの平均値をとる等して、第１の動きベクトルに対する参照用の第２の動きベクトル（参照動きベクトル：ＲＭＶ）を生成する。このようにして得られた第１の動きベクトルや第２の動きベクトルに基づいて、実行する符号化処理（符号化モード）や、動き補償の際の動きベクトルを検索する範囲、量子化係数等といった符号化処理を実行するための符号化パラメータを決定する。
【００６１】
具体的には例えば、符号化対象であるフレーム（又はフィールド）において、フレーム（又はフィールド）内の一部領域又は一部のマクロブロックに限定して、前方／後方の動きベクトル（ＧＭＶ、ＲＭＶ）の探索を行い、符号化対象フレーム（又はフィールド）と時間的に前後関係にあるフレーム（又はフィールド）との関係から、フレーム（又はフィールド）全体が動いているのか、又はフレーム（又はフィールド）内の一部分が動いているのかを判定し、この判定の結果に基づいて、動きベクトル未探索のマクロフロックの動きベクトル探索を行うか否か、符号化対象フレーム（又はフィールド）の符号化モード、符号化対象フレーム（又はフィールド）内のマクロブロック（又はブロック）の符号化モードを決定する。
このように構成することによって、常時符号化対象フレーム（又はフィールド）内の全領域に対して、動きベクトルを探索する必要がなくなり、時間的符号化効率を向上させることができる。
また、上記の判定に基づいて、フレーム（又はフィールド）単位、又はマクロブロック（又はブロック）単位で、符号化モードや、量子化係数の変更や補正を行うように構成すれば、動き量に応じた符号化が可能となり、符号量配分が適切にできる。これにより、同一の符号量に対して画質を向上させることが可能となる。
【００６２】
したがって、本発明によれば、動き補償のための動きベクトルの検索の前に、フレーム単位で見た時の全体の動きベクトルを推定できるので、カメラのパン画像のようにフレーム全体が直線的に移動するような画像に対して、動きベクトルをフレーム内の全ブロックで検索することなくフレーム内の全ブロックの動きベクトルを定義することができる。これにより、動きベクトルの検索時間を短縮することができ、この結果、符号化処理全体の処理時間の短縮を図ることができる。
また、第１の動きベクトル（ＧＭＶ）や第２の動きベクトル（ＲＭＶ）を所定の閾値と比較する等して、それらの動きベクトルの評価を行うことで、フレーム単位又はブロック単位で、符号化モードの選択や量子化係数の調整を行うことが可能になる。このため、上述したようなフレーム全体が動く画像や、背景が静止状態であるがフレーム内の一部分が動いているような出現頻度の高い性質の画像について、ブロック内の画像の性質に適合した符号化処理や量子化係数等が選択可能となり、符号量重視や画質重視等の設計意図に応じた制御が可能となる。特に、動画領域と静止画領域を判別して、符号化や量子化を制御できる。
【図面の簡単な説明】
【図１】第１の実施の形態での本発明を適用した符号化方法において、符号化対象フレームの全体の動きを表す動きベクトル（グローバル動きベクトル：ＧＭＶ）の生成処理を説明するための図である。
【図２】上記ＧＭＶの生成の際の、動きベクトルを最優先で検索するブロックの他の例を説明するための図である。
【図３】第２の実施の形態での本発明を適用した符号化方法において、符号化対象フレームの全体の動きを表す動きベクトル（グローバル動きベクトル：ＧＭＶ）及び参照動きベクトル（ＲＭＶ）の生成処理を説明するための図である。
【図４】上記ＧＭＶ及びＲＭＶにより、現フレームの画像が時間的に前後するフレームの画像に対して全体的に動いている画像であると判定される場合の該画像を説明するための図である。
【図５】上記ＧＭＶ及びＲＭＶにより、現フレームの画像の一部が移動（変化）している判定される場合の該画像を説明するための図である。
【図６】上記ＧＭＶ及びＲＭＶの判定の基準を説明するための図である。
【図７】上記ＧＭＶ及びＲＭＶの生成の際の、動きベクトルを最優先で検索するブロックの他の例を説明するための図である。
【図８】第３の実施の形態において、本発明を適用した符号化装置の構成を示すブロック図である。
【図９】上記符号化装置の動き検出部の構成を示すブロック図である。
【図１０】第４の実施の形態において、本発明を適用した符号化装置の構成を示すブロック図である。
【図１１】上記符号化装置の動き検出部の構成を示すブロック図である。
【図１２】上記符号化装置の符号化処理部の構成を示すブロック図である。
【符号の説明】
２００  符号化装置
２０１  ブロック化処理部
２０２  フレームメモリ
２０３  符号化処理部
２０４  可変長符号化処理部
２０５  アドレスコントローラ
２０６  復号化処理部
２０７  動き検出部
２０８  バッファメモリ
ｄ２０９  入力画像データ
ｄ２１０  符号化画像データ
ｄ２１１  動き補償モード選択信号
ｄ２１２  バッファメモリ用Ｒ／Ｗアドレス
ｄ２１３  局部復号化画像データ
ｄ２１４  フレームメモリ用Ｒ／Ｗアドレス
ｄ２１５  ブロック化画像データ
ｄ２１６  ＧＭＶ
【図１】
0004280353.tif 000002
【図２】
0004280353.tif 000003
【図３】
0004280353.tif 000004
【図４】
0004280353.tif 000005
【図５】
0004280353.tif 000006
【図６】
0004280353.tif 000007
【図７】
0004280353.tif 000008
【図８】
0004280353.tif 000009
【図９】
0004280353.tif 000010
【図１０】
0004280353.tif 000011
【図１１】
0004280353.tif 000012
【図１２】
0004280353.tif 000013