(57)【特許請求の範囲】
【請求項１】
入力順が先の始点画面中の第１の位置を始点とすると共に、入力順が後の終点画面中の第２の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルをブロック単位に検出する動きベクトル検出装置であって、
前記始点画面の画像データを記憶する始点画面記憶手段と、
前記終点画面の画像データを記憶する終点画面記憶手段と、
前記始点画面と終点画面の中間の入力順で入力された少なくとも１つの中間画面を記憶する少なくとも１つの中間画面記憶手段と、
前記始点画面から終点画面にいたる各画面につき、入力順が相前後して隣接する２つの画面間で、前記合成動きベクトルの構成要素となる要素動きベクトルをブロック単位に求めると共に、入力順が後の２つの画面間に係る要素動きベクトルほど先に求める逐次処理を行い、複数の要素動きベクトルについてベクトル合成を行うことで、前記合成動きベクトルを生成する予測演算手段と、
少なくとも画面間符号化又はコマ落としのいずれかの処理を選択して行う符号化手段と、
前記中間画面を当該コマ落としの対象となった画面とし、前記合成動きベクトルを用いて動き補償することで、当該符号化手段にコマ落とし直後の最初の画面間符号化を行わせる符号化制御手段とを備え、
前記予測演算手段は、
前記要素動きベクトルの候補として複数の候補動きベクトルを求める候補検出演算を、入力順が連続する複数画面の各画面間ごとに実行する候補動きベクトル検出手段と、
画面間毎の要素動きベクトルを求める逐次処理順の２番目以降の画面間については、先に求められた画面間の全候補動きベクトルのそれぞれに対し、その候補動きベクトルに連結する候補動きベクトルを１つずつ選択するベクトル選択手段とを備える
ことを特徴とする動きベクトル検出装置。
【請求項２】
請求項１の動きベクトル検出装置において、
前記予測演算手段は、
求めようとしている新たな要素動きベクトルの直前の要素動きベクトルの始点と同じ位置を基準として、当該始点の存在する画面より入力順が１つ先の画面上に探索範囲を設定する探索範囲変更手段を備えることを特徴とする動きベクトル検出装置。
【請求項３】
請求項１の動きベクトル検出装置において、
前記予測演算手段は、
前記始点画面から終点画面にいたる各画面の上下左右方向に対応して連続的に配列された画素の中から、上下左右方向に断続的に一部の画素を選択する画素選択手段を備え、
当該画素選択手段によって選択された画素に対し、前記検出演算を実行することで、前記要素動きベクトルを求めることを特徴とする動きベクトル検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は動きベクトル検出装置に関し、例えば動画像圧縮における動画像符号化時に使用して好適なものである。
【０００２】
【従来の技術】
従来のこの種の技術としては次の文献１に示されるものがある。
【０００３】
文献１：“映像機器におけるディジタル信号処理技術”（トリケップス、Ｐ．３５−Ｐ．３７）
伊東  晋、竹村  裕夫  監修
動画像は多くの情報からなり、そのデータを通信もしくは保存するためには圧縮する必要がある。動画像の圧縮方法として時間的に前の画像との相関を利用したフレーム間差分符号化方法、ブロックマッチングを使った動き補償などがある。上記文献１の中で示されているブロックマッチングを使った動き補償の方法を図２を用いて簡単に説明する。
【０００４】
図２は従来の符号化装置２０を示す図である。
【０００５】
図２において、符号化装置２０はカメラなどから取り込んだ画像データを入力する画像入力部１０１と、入力された画像信号と時間的に前に符号化した画像との差分をとる減算器１０２と、符号化するためのデータが元データか差分データかを選択するスイッチ１０３と、入力されたデータを符号化する符号化器１０４と、スイッチ１０３双び符号化器１０４を制御する符号化制御部１０５と、符号化したデータを出力する符号出力部１０６と、符号化したデータを復号する復号器１０７と、復号した差分データと参照画像とを加算する加算器１０８と、復号した画像を保存する再構成画像用メモリ１０９と、原画像を保存する原画像用メモリ１１１と、原画像用メモリ１１１と再構成画像用メモリ１０９の出力から動き補償する動き補償部２０１と、動き補償部２０１の出力を加算器１０８に出力するかを選択するスイッチ１１４とから成る。
【０００６】
つぎに符号化装置２０の動作を説明する。
【０００７】
まず画像入力部１０１にカメラなどの外部機器から取り込んだ画像データが入力されると、減算器１０２、原画像用メモリ１１１およびスイッチ１０３にデータが入力される。
【０００８】
減算器１０２に入力されたデータと時間的に前の画像との差分を計算した後、符号化制御部１０５は、差分データを符号化するか、元データを符号化するか、あるいはコマ落としするかを決める。
【０００９】
差分データの符号化はフレーム間符号化、元データの符号化はフレーム内符号化である。
【００１０】
フレーム間符号化、フレーム内符号化、コマ落としは、符号化制御部１０５からの指示を受けた符号化器１０４が実行する。
【００１１】
符号化器１０４に入力されたデータは、例えばＤＣＴのような変換や量子化などの処理を受ける。またレートコントロールなどのためにコマ落としなどを行うときは、入力データは何もせずに捨てることもある。
【００１２】
符号化器１０４で符号化されたデータは符号出力部１０６から外部に送出されると同時に復号器１０７に出力される。
【００１３】
復号器１０７に入力されたデータは例えば逆量子化、逆ＤＣＴなどの変換を受け、加算器１０８に出力される。
【００１４】
加算器１０８に入力されたデータがフレーム間符号化された差分データであれば、動き補償部２０１の出力がスイッチ１１４を介して加算器１０８に入力され、差分データと加算された後、再構成画像用メモリ１０９に出力される。フレーム内符号化の場合はそのまま再構成画像用メモリ１０９に出力される。
【００１５】
再構成画像用メモリ１０９に入力されたデータは保存され、動き補償部２０１の求めるタイミングに合わせてデータを出力する。
【００１６】
動き補償部２０１は再構成画像用メモリ１０９の出力と原画像用メモリ１１１の出力から動き補償を行い、その結果を減算器１０２およびスイッチ１１４に出力する。
【００１７】
次に動き補償部２０１の動作を図３を用いて説明する。
【００１８】
動き補償部２０１は原画像用メモリ１１１から入力された画像データと再構成画像用メモリ１０９から入力された復号データとからブロックマッチングを行い、例えば図３に示したように動きベクトル検出を行う。
【００１９】
図３の太い実線で示した外の四角ＱＥ０は動きベクトル探索範囲（前フレーム）を示し、太い実線で示した内の四角は動きベクトルを求めたいブロック（現フレーム、ここでは１６画素×１６画素のブロック）Ｑ１、点線の四角（前フレーム）は太い実線の四角ブロックと最も類似し、最も一致度が高かった前フレームのブロックＱ０である。
【００２０】
類似、すなわち一致度の評価方法には、例えば画素どうしの差分が最も小さいものをとるなどの方法がある。
【００２１】
この２つのブロック位置の差（Ｑ０を基準としたＱ１の位置ベクトル）が動きベクトルなり、これを用いて参照画像を作成し、減算器１０２およびスイッチ１１４に入力する。
【００２２】
【発明が解決しようとする課題】
しかしながら上記のように動き補償を行うと、コマ落とし時に探索範囲が拡大して演算総数が増加する問題がある。
【００２３】
普通ＴＶなどの動画像は３０Ｈｚで動作し、フレームの間隔は１／３０秒であるが、低レートで動画像伝送する場合は、コマ落としが必要な場合があり、例えば１０Ｈｚで動作をするとフレームの間隔は１／１０秒となる。これは前記１／３０秒の３倍に相当するフレーム間隔である。
【００２４】
フレーム間隔が広くなると、通常、フレーム画面中の像の移動距離も長くなるため、動きベクトル検出の範囲（探索範囲）を広げなければ像の動きを捕捉できず、動きベクトルの誤検出の可能性が高まり、十分な動き補償を行うことができない。
【００２５】
また、探索範囲を広げるということは演算回数が多くなることを意味し、ハードウエアならば消費電力アップや規模増大の要因となり、ソフトウエアならば処理能力に対する負荷を大きくする要因となる。
【００２６】
さらに、探索範囲を広げて演算数が増加すると動きベクトルを求めるための時間が長くなり、当該動きベクトルが求まるまで符号化器はフレーム間符号化を行うことができない。これは、不必要なコマ落としが起こり、フレームレートを落とす原因ともなる。
【００２７】
【課題を解決するための手段】
かかる課題を解決するために、本発明では、入力順が先の始点画面中の第１の位置を始点とすると共に、入力順が後の終点画面中の第２の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルをブロック単位に検出する動きベクトル検出装置であって、（１）前記始点画面の画像データを記憶する始点画面記憶手段と、（２）前記終点画面の画像データを記憶する終点画面記憶手段と、（３）前記始点画面と終点画面の中間の入力順で入力された少なくとも１つの中間画面を記憶する少なくとも１つの中間画面記憶手段と、（４）前記始点画面から終点画面にいたる各画面につき、入力順が相前後して隣接する２つの画面間で、前記合成動きベクトルの構成要素となる要素動きベクトルをブロック単位に求めると共に、入力順が後の２つの画面間に係る要素動きベクトルほど先に求める逐次処理を行い、複数の要素動きベクトルについてベクトル合成を行うことで、前記合成動きベクトルを生成する予測演算手段とを備えることを特徴とする。
【００２８】
【発明の実施の形態】
(Ａ）実施形態
第１〜第４の実施形態は、入力されても符号化されることなくデータを破棄されるフレームがある場合、すなわちコマ落としがある場合でも、動きベクトルを正確かつ効率的に求めることを特徴とする。
【００２９】
（Ａ−１）第１の実施形態の構成
図１は第１の実施形態の符号化装置１０を示すブロック図である。図２に示した従来の符号化装置２０の構成要素と同じ構成要素には同じ符号を付けている。図２の符号化装置２０と当該符号化装置１０とを比べた構成上の主要な相違点は、符号化装置２０では１つであった原画像用メモリの数が３つになった点と、動き補償部１１０の内部構成である。
【００３０】
図１において、符号化装置１０は画像入力部１０１と、減算器１０２と、スイッチ１０３と、符号化器１０４と、符号化制御部１０５と、符号出力部１０６と、復号器１０７と、加算器１０８と、復再構成画像用メモリ１０９と、原画像用メモリ１１１、１１２，１１３と、動き補償部１１０と、スイッチ１１４とを備えている。
【００３１】
このうち、図２と同じ符号１０１〜１０９および１１４を付した各構成要素は、その機能も符号化装置２０の対応する構成要素と同じなのでその詳しい説明は省略する。
【００３２】
動き補償部１１０の内部およびその周辺の構成を示した図４において、動き補償部１１０は第１の動き予測部４０１と、第２の動き予測部４０２と、第３の動き予測部４０３とを備えている。
【００３３】
第１の動き予測部４０１は２つの入力端子を備え、再構成画像用の入力端子には再構成画像用メモリ１０９の出力端子が接続され、原画像用の入力端子には原画像用メモリ１１３の出力端子が接続されている。
【００３４】
同様に、第２の動き予測部４０２は２つの入力端子を備え、動き予測部用の入力端子には第１の動き予測部４０１の出力端子が接続され、原画像用の入力端子には原画像用メモリ１１２の出力端子が接続されている。
【００３５】
さらに、第３の動き予測部４０３は２つの入力端子を備え、動き予測部用の入力端子には第２の動き予測部４０２の出力端子が接続され、原画像用の入力端子には原画像用メモリ１１１の出力端子が接続されている。
【００３６】
ただし、第３および第２の動き予測部４０３，４０２の動き予測部用の入力端子は、入力専用の端子ではなく、必要に応じて出力も行う入出力端子となっている。
【００３７】
結局、再構成画像用メモリ１１３と、第１の動き予測部４０１と、第２の動き予測部４０２と、第３の動き予測部４０３から構成される経路では、フレーム画面中の像の動きに関するデータが、逐次、処理されながら伝送されることになる。
【００３８】
そして、動き予測部４０１〜４０３の各部で逐次行われるこの処理のために、原画像用メモリ１１３〜１１１から供給される原画像のデータ（元データ）が使用される。
【００３９】
原画像用メモリ１１３〜１１１には、カメラなどから画像入力部１０１に連続して入力された３つのフレームのデータが格納される。３つのうちで入力順が最先の１フレームは原画像用メモリ１１３に格納され、入力順が２番目の１フレームは原画像用メモリ１１２に格納され、入力順が最後の１フレームは原画像用メモリ１１１に格納されることになる。
【００４０】
そしてこの状態で、画像入力部１０１に新たな１フレームが入力されると、その新たな１フレームは原画像用メモリ１１１に格納され、すでに原画像用メモリに格納されていた３つのフレームは、原画像用メモリ１１１から原画像用メモリ１１３に向かう方向に１メモリずつシフトしていく。
【００４１】
したがって１回のシフトで、前記最先のフレームは原画像用メモリ１１３から破棄され、前記２番目のフレームは原画像用メモリ１１２からシフトしてメモリ１１３に格納され、前記最後のフレームは原画像用メモリ１１１からシフトしてメモリ１１２に格納される。これにより、新たな最先、２番目、最後の連続３フレームが設定されることになる。
【００４２】
画像入力部１０１に１フレームが入力される間隔と符号化器１０４で１フレームの処理が行われる間隔とは一致している。
【００４３】
符号化器１０４における処理の種類は、フレーム内符号化、フレーム間符号化、いずれの符号化も行わない（コマ落とし）の３種類である。
【００４４】
ここでは、画像入力部１０１に入力されるフレームは平均１／３０秒間隔で供給され、符号出力部１０６から出力される１フレーム分の符号は、平均１／１０秒間隔で送出されるものとする。すなわち、任意の連続３フレームのうち、２フレームはコマ落ちして、符号化器１０４における符号化に用いられないケースである。
【００４５】
換言するなら、符号化装置１０の入力が３０Ｈｚであるとすると、出力は１０Ｈｚである（圧縮により、出力データレートは入力データレートの１／３よりも小さい）。
【００４６】
なお、符号化装置１０において、スイッチ１０３と１１４は連動していて、スイッチ１０３が減算器１０２側を選択しているときにはスイッチ１１４は下側の接点を選択し、動き補償部１１０の出力を加算器１０８に供給する。
【００４７】
反対に、スイッチ１０３が上側の接点を選択して元データ（画像入力部１０１に供給された状態の画像データ）を符号化器１０４に供給している場合には、スイッチ１１４は上側の接点を選択して動き補償部１１０の出力の加算器１０８への供給を停止する。
【００４８】
スイッチ１０３が上側の接点を選択するのは、符号化器１０４が（元データを用いて）フレーム内符号化を行う場合で、スイッチ１０３が減算器１０２側の接点を選択するのは符号化器１０４が（差分データを用いて）フレーム間符号化を行う場合である。
【００４９】
スイッチ１０３、１１４のこのような切替えは、符号化制御部１０５からの指示に基づいて行われる。符号化制御部１０５は通常、圧縮の効果が高まるように（符号化の効率が高まるように）フレーム内符号化とフレーム間符号化を選択し、レートコントロールを行う。
【００５０】
１つの通信の行われているあいだでも、例えば、像の動きが大きい期間やシーン切替えの時点では、フレーム内符号化のほうが選択され、像の動きが比較的少ない場合やシーン切替えが行われないときなどには、フレーム間符号化が行われるのが普通である。
【００５１】
フレーム内符号化は１フレーム内の連続した画素間にはほとんど変化のない場合が多いという特性を利用した符号化で、フレーム間符号化は連続する２フレームのあいだではフレーム画面中の同一位置の画素間にはほとんど変化のない場合が多いという特性を利用した符号化である。
【００５２】
一般に、フレーム内（予測）符号化では、高い圧縮率は望めないが受信側で高品質な画像を再現でき、フレーム間（予測）符号化は、高い圧縮率も達成可能である。
【００５３】
ただしフレーム間符号化では、フレーム画面内の像の動きが小さいときには高品質な画像を再現できるのであるが、像の動きが大きい場合、処理しなければならない情報量が増加して処理が遅れるためにレートコントロールが困難化し、再現画像の品質も劣化する可能性が高まるという性質がある。
【００５４】
そこで、符号化制御部１０５が、フレーム内符号化とフレーム間符号化につき上述した選択の切り替えを行う必要が生じるのである。
【００５５】
以下、上記のような構成を有する第１の実施形態の動作について説明する。
【００５６】
（Ａ−２）第１の実施形態の動作
まず画像入力部１０１にカメラなどから取り込んだ１フレーム（画像データ）が入力されると、この１フレームのデータは、減算器１０２、原画像用メモリ１１１およびスイッチ１０３に入力される。
【００５７】
減算器１０２では、このデータと、動き補償部１１０から供給される時間的に前の画像データとの差分が計算される。
【００５８】
減算器１０２からこの差分データを受け取った符号化器１０４は、符号化制御部１０５の制御に応じて前記フレーム間符号化を行うように動作する。
【００５９】
ただし、符号化制御部１０５からの制御は符号化器１０４に、フレーム間符号化を行わずにコマ落としすることを要求する場合もある。
【００６０】
フレーム間符号化、フレーム内符号化、コマ落としの３種類の制御は、上述したスイッチ１０３、１１４の切替えと連動して行われ、符号化装置１０全体が、フレーム内符号化用、フレーム間符号化用、またはコマ落とし用のいずれか１つに対応した状態（フレーム内符号化モード、フレーム間符号化モード、コマ落としモード）になる。
【００６１】
コマ落としは、フレーム間符号化モードでも、フレーム内符号化モードでも行われ得るが、いずれのモードでも、コマ落としがある場合とない場合の動作上の相違は、符号化器１０４が符号化を行わないか行うかという点だけである。
【００６２】
符号化する場合、符号化器１０４は、当該フレームに対し例えばＤＣＴ（離散的コサイン変換）のような変換や量子化などを行う。符号化器１０４で符号化されたデータは符号出力部１０６から外部へ送出されると同時に、復号器１０７に供給される。
【００６３】
復号器１０７に入力されたデータは例えば逆量子化、逆ＤＣＴなどの処理を受けて復号される。これらの処理は、符号化器１０４における符号化に対応した処理である。復号器１０７の出力は、加算器１０８の一方の入力端子に供給される。
【００６４】
当該データが符号化器１０４でフレーム間符号化された差分データである場合、符号化装置１０はフレーム間符号化モードとなっていてスイッチ１１４は下側の接点を選択している。このため、加算器１０８の他方の入力端子には動き補償部１１０の出力（参照画像情報）が供給される。
【００６５】
そしてこのとき、加算器１０８は両入力端子に供給されたデータを加算してその加算結果を再構成画像用メモリ１０９に供給する。
【００６６】
参照画像情報は、１フレーム画面分の画素値と、ブロックの位置と、動きベクトルの情報を備えた構成のデータである。
【００６７】
加算器１０８の一方の入力端子に供給される復号データ（差分データ）は、もともと減算器１０２で当該参照画像情報を減算されることによって得られたデータであるから、この参照画像情報を加えることによって、画像入力部１０１に入力された時点の状態（元データ）に復元される。
【００６８】
なお、フレーム内符号化モードの場合、スイッチ１１４が上側の接点を選択しているため、復号器１０７の出力は、加算器１０８での加算によって変化せず、そのまま再構成画像用メモリ１０９に出力される。
【００６９】
いずれにしても加算器１０８の出力データは再構成画像用メモリ１０９に入力されて保存され、動き補償部１１０の求めるタイミングに合わせて再構成画像用メモリ１０９から動き補償部１１０へと供給される。
【００７０】
一方、画像入力部１０１から順に入力された画像データは原画像用メモリ１１１に保存された後、上述したように順にシフトして原画像用メモリ１１２，１１３に保存される。
【００７１】
本実施形態では、原画像用メモリ１１１〜１１３は３つなので、過去３フレーム分の画像データを保存できる。
【００７２】
動き補償部１１０は再構成画像用メモリ１０９の出力と、原画像用メモリ１１１〜１１３の出力に基づいて動き補償を行い、その結果を減算器１０２およびスイッチ１１４に出力する。
【００７３】
動き補償とは動きベクトルを求める操作のことである。動きベクトルはフレーム画面内の像の動きの大きさや方向を示す位置ベクトルに対応する情報であり、通常、フレーム画面内の像の動きをブロックの平行移動とみなして求められる。
【００７４】
このような動きベクトルは、フレーム間符号化の符号化効率を高め、像の動きが大きい場合などでも、処理しなければならない情報量をできるだけ抑圧することによりレートコントロールを容易化するとともに、受信側での再現画像の品質を高めるために利用される。
【００７５】
したがって動きベクトルはフレーム間符号化モード以外では求める必要がないため、フレーム間符号化モード以外には動き補償部１１０は動作を停止していてよい。
【００７６】
ただし、フレーム内符号化モードからフレーム間符号化モードに切り替わったあとできるだけ早期に動きベクトルを求めるためには、再構成画像用メモリ１０９の格納内容や原画像用メモリ１１１〜１１３の格納内容は、フレーム内符号化モードでも、画像入力部１０１に新たなフレームが入力され、符号化器１０４で何らかの符号化が行われるたびに逐次、更新したほうがよい。
【００７７】
図４に示す第１の動き予測部４０１は原画像用メモリ１１３から入力された画像データと、再構成画像用メモリ１０９から入力された復号データと、第２の動き予測部４０２から供給される補償部内参照画像情報をもとに、ブロックマッチングを用いて例えば図５に示したように動きベクトルＶ１の検出を行う。
【００７８】
ブロックマッチング方式による動きベクトルの検出は、入力順があとの１フレーム内のブロックＢ１と入力順が先の１フレーム内の任意のブロックとを比較して、入力順が先の１フレームのなかに当該ブロックＢ１と最も一致するブロックＢ２を求める（探索する）ことによって行われる。
【００７９】
ブロックＢ１、Ｂ２などのブロックの大きさは、ここでは１６×１６画素程度であるものとする。もちろん、これよりも大きなブロックや小さなブロックを使用することは可能である。
【００８０】
１つの動きベクトルを求めるために必要な演算の総数は、ブロックの大きさが大きくなるほど増加する傾向がある。
【００８１】
また、最も一致するブロックを探索する範囲を、入力順が先の１フレーム全部とすると演算数が増え過ぎるため、通常は、１フレームの一部に探索範囲を設定し、当該探索範囲内にかぎって探索する。
【００８２】
１つの動きベクトルを求めるために必要な演算の総数はまた、この探索範囲の大きさが大きくなるほど増加する傾向がある。
【００８３】
例えばこの演算総数Ｌは、前記文献１に記載されている次の式（１）によって求めることができる。
【００８４】
Ｌ＝（２Ｊ＋１）×（２Ｋ＋１）×（Ｍ×Ｎ）×３  …(１）
ここで、Ｍ、Ｎはブロックサイズ（Ｍライン×Ｎ画素）を示し、Ｊ、Ｋは探索範囲（±Ｊライン／フレーム、±Ｋ画素／フレーム）に対応し、最後の３は、画素ごとの差分演算、差分結果の絶対値または自乗を求めるための変換演算、およびこの変換結果を累積するための累積演算の３種の演算に対応している。
【００８５】
一例として、Ｊ＝Ｋ＝Ｍ＝Ｎ＝８とすると、動きベクトルを求めるためのブロックあたりの演算総数は５５４８８回、１画素あたり８６７回の演算数を要することになる。
【００８６】
探索範囲は広げれば広げるほど像の大きな動きに対応でき、動き補償能力は向上するが、式(１）から明らかなように、演算数が膨大となる。
【００８７】
もっとも、この式（１）は、１つの探索範囲の内部での演算数を示しているに過ぎず、実際に動きベクトルを求めるためには、このような探索範囲を相互にオーバーラップするように前フレーム上の全面に多数設定する必要があり、その数だけ前記５５４８８回という値に乗じて得られる値が、通常、フレーム間のブロックマッチングで必要な演算数となる。
【００８８】
次に、図５〜図７を用いて本実施形態の動き補償部１１０の動作の説明をする。前提として、入力順が連続する３フレームが、入力順に原画像用メモリ１１３，１１２，１１１に格納されているのは上述した通りであるが、再構成画像用メモリ１０９に格納されている画像データは、原画像用メモリ１１３に格納されているフレームの画像データよりも入力順が１つ先のデータである。
【００８９】
これらの連続する４フレームを、入力順にＦ３、Ｆ２、Ｆ１、Ｆ０とする。現時点のフレームＦ０から入力順が遅い順に配列すると、Ｆ１、Ｆ２、Ｆ３と順次さかのぼっていく。
【００９０】
現時点で、符号化装置１０はフレーム間符号化モードになっていて、再構成画像用メモリ１０９にはフレームＦ３が格納され、原画像用メモリ１１３にはフレームＦ２が格納され、原画像用メモリ１１２にはフレームＦ１が格納され、原画像用メモリ１１１にはフレームＦ０が格納されている。
【００９１】
フレームＦ３は符号化器１０４が直前に符号化したフレームで、フレームＦ２、Ｆ１は符号化器１０４が符号化せずにコマ落とししたフレームであり、フレームＦ０はいま画像入力部１０１に供給されているフレームである。
【００９２】
符号化器１０４は当該フレームＦ０の差分データをフレーム間符号化しようとしているが、その符号化に先立って差分データを得るため、動き補償部１１０が出力する参照画像情報を用いて減算器１０２における減算を行わなければならない。
【００９３】
タイミング上、フレームＦ０の画像データは、少なくとも後述する第１〜第３の動き予測部４０１〜４０３における処理が行われている期間、カメラなどの外部機器によって画像入力部１０１に保持される必要がある。
【００９４】
また、前記第１の動き予測部４０１以外では、第２の動き予測部４０２には原画像用メモリ１１２からフレームＦ１の画像データが供給され、第３の動き予測部４０３には原画像用メモリ１１１からフレームＦ０の画像データが供給されている。
【００９５】
符号化制御部１０５は、符号化器１０４にフレーム間符号化を行わせようとしている今、動き補償部１１０に動きベクトルを求めさせるため、以下の動作を行わせる。
【００９６】
図５において、中央に位置した四角形Ｐ０はフレームＦ０の画面内のブロックであり、その左上の四角形Ｐ１はフレームＦ１の画面内のブロックである。
【００９７】
外側の大きな四角形ＳＥ１は、フレームＦ０上のブロックＰ０の位置を中心としてフレームＦ１上に設定した動きベクトル探索範囲である。このＳＥ１は図３のＱＥ０と同じ大きさであってよい。
【００９８】
図５の状態は、第２の動き予測部４０２からフレームＦ１の画像データを受け取り、原画像用メモリ１１１からフレームＦ０の画像データを受け取った第３の動き予測部４０３が、フレームＦ０内の任意のブロックを基準に、フレームＦ１内の探索範囲ＳＥ１を前記ブロックマッチング方式によって調べた結果、フレームＦ１内のブロックＰ１と、フレームＦ０内のブロックＰ０の一致度が最も高いことを検出した状態である。
【００９９】
これにより、ブロックＰ１からＰ０に向かう（Ｐ１を始点、Ｐ０を終点とする）動きベクトルＶ１が求められる。
【０１００】
この例では、検出された動きベクトルはＶ１だけであるが、フレーム画面内で複数の像が移動することなどもあり得るため、複数の動きベクトルが同時に検出されることもあり得る。
【０１０１】
なお、探索範囲ＳＥ１の大きさは、面積にして、例えばブロック（Ｐ０など）の数倍〜数十倍程度であってよい。
【０１０２】
第３の動き予測部４０３から第２の動き予測部４０２に供給される情報は、当該動きベクトルＶ１の情報と、当該ブロックＰ１の情報から構成される補償部内参照画像情報である。
【０１０３】
次に、原画像用メモリ１１２からフレームＦ１の画像データを受け取るとともに、この補償部内参照画像情報を受け取り、さらに第１の動き予測部４０１からフレームＦ２の画像データを受け取った第２の動き予測部４０２では、図６に示す動きベクトルＶ２を求める処理が行われる。
【０１０４】
第２の動き予測部４０２で行われるこの処理は、第３の動き予測部４０３における処理と同様に、フレームＦ１内の任意のブロック（前記Ｐ１を含む）を基準に、フレームＦ２内の探索範囲ＳＥ２をブロックマッチング方式によって調べた結果、フレームＦ２内のブロックＰ２と、フレームＦ１内のブロックＰ１の一致度が最も高いことを検出した状態である。
【０１０５】
これにより、ブロックＰ２からＰ１に向かう動きベクトルＶ２が求められる。
【０１０６】
なお、探索範囲ＳＥ２の大きさおよび位置は、前記探索範囲ＳＥ１と同じである。
【０１０７】
第２の動き予測部４０２から第１の動き予測部４０１に供給される補償部内参照画像情報は、動きベクトルＶ２の情報と、当該ブロックＰ２の情報から構成される。
【０１０８】
最後に、原画像用メモリ１１３からフレームＦ２の画像データを受け取るとともに、この補償部内参照画像情報を受け取り、さらに再構成画像用メモリ１０９からフレームＦ３の画像データを受け取った第３の動き予測部４０３では、図７に示す動きベクトルＶ３を求める処理が行われる。
【０１０９】
この処理は、第２の動き予測部４０２における処理と同様のブロックマッチングを利用した処理である。
【０１１０】
そしてこのブロックマッチングに対応する探索範囲ＳＥ３の大きさおよび位置は、前記ＳＥ１、ＳＥ２と同じである。
【０１１１】
第１の動き予測部４０１における処理が終わると、動きベクトルＶ３などの情報は第２の動き予測部４０２を介して第３の動き予測部４０３へ送られる。第３の動き予測部４０３はまた、適当なタイミングで、第２の動き予測部４０２からも動きベクトルＶ２などの情報を受け取っていて、図７に示すような、合成動きベクトルＶを生成する。
【０１１２】
この合成動きベクトルＶは、前記動きベクトルＶ１、Ｖ２、Ｖ３のベクトル和の結果として得られる動きベクトルである。この合成動きベクトルＶは、フレームＦ０からＦ３までの期間における画面内での像の動きを示している。
【０１１３】
第３の動き予測部４０３はこの合成動きベクトルＶの情報や、必要な画素値の情報を含む参照画像情報を構成して動き補償部１１０の外部へ出力する。出力されたこの参照画像情報は、減算器１０２およびスイッチ１１４に供給される。
【０１１４】
この参照画像情報を受け取った減算器１０２は、画像入力部１０１から供給されているフレームＦ０の元データからこの参照画像情報を減算し、その減算結果としての差分データを符号化器１０４に供給する。
【０１１５】
そして符号化器１０４が当該差分データに対してフレーム間符号化を施して、符号化結果を符号出力部１０６から外部に送出するとともに、復号器１０７に供給する。
【０１１６】
以上のように入力順が遅い順に、Ｆ０とＦ１のあいだ、Ｆ１とＦ２のあいだ、Ｆ２とＦ３のあいだで、それぞれブロックマッチングを行うことにより、動いた結果、新しいフレーム（Ｆ１に対してはＦ０、Ｆ２に対してはＦ１、Ｆ３に対してはＦ２）上に存在しなくなる像について動きベクトルを求めてしまう無駄を排除し、効率的な演算を行うことができる。
【０１１７】
図５〜図７の例では、コマ落としはＦ１、Ｆ２の連続する２フレームに対して行われたが、コマ落としが１フレームにだけ行われる場合、およびコマ落としが行われない場合について説明する。
【０１１８】
それまでコマ落としを行わずに、符号化器１０４が連続してフレームの符号化を行っている状況を想定すると、メモリ１１１〜１１３および１０９にはすべて、符号化されたフレームの画像データが格納されている。
【０１１９】
この状態で、画像入力部１０１に１フレームが入力され、この１フレームがコマ落としされるフレームであるとする。つづいて画像入力部１０１に入力されるフレームが、符号化器１０４においてフレーム間符号化されるフレームであるとすると、動き補償部１１０はこのフレーム間符号化のために動作する。
【０１２０】
このとき、メモリ１１１内のＦ０がこのフレーム、メモリ１１２内のＦ１がコマ落としされたフレーム、メモリ１１３内のＦ２およびメモリ１０９内のＦ３は符号化されたフレームである。
【０１２１】
このケースにおいては、動き補償部１１０の内部で、第１の動き予測部４０１の動作の一部と、第２の動き予測部４０２の動作と、第３の動き予測部４０３の動作だけが意味を持つ。Ｆ０とＦ１のあいだ、およびＦ１とＦ２のあいだで２つの動きベクトルが求められ、これらのベクトル和が、動き補償部１１０から出力される参照画像情報の構成要素となるからである。
【０１２２】
同様に、それまでコマ落としが全く行われてこなかったケースで、符号化器１０４が最新の入力フレームＦ３を処理（フレーム間符号化）する場合、第３の動き予測部４０３の動作と第２の動き補償部４０２の一部の動作だけが意味を持つ。この場合、本実施形態の符号化装置１０の機能は、実質的に、上述した従来の符号化装置２０の機能と同じとなる。
【０１２３】
本実施形態では、原画像用メモリ１１１〜１１３を３つ設けたため、最大で２つ連続するコマ落としにしか効率的に対応できないが、３つ以上連続するコマ落としに対しては、従来の符号化装置２０における２つ以上連続するコマ落としに対する処理と同じ方法で対応し得る。
【０１２４】
また、本実施形態において、原画像用メモリおよび動き補償部１１０内部の動き予測部の数を増加すれば、３つ以上の連続コマ落としにも効率的に対応することが可能となる。
【０１２５】
なお、上記の例では、合成された動きベクトルＶは、フレームＦ０上に終点を持ち、フレームＦ３上に始点を持っていたが、本実施形態で検出される動きベクトルはこのようなベクトルに限定されない。
【０１２６】
例えば、コマ落としされたフレームＦ２とＦ１のあいだでだけ動く像や、Ｆ１とＦ０のあいだでだけ動く像、Ｆ３とＦ２のあいだでだけ動く像、Ｆ２とＦ０のあいだでだけ動く像、Ｆ３とＦ１のあいだでだけ動く像などもあり得る。
【０１２７】
一例として、Ｆ２とＦ１のあいだでだけ動く像の動きベクトルは、第２の動き予測部４０２で求められた動きベクトルが唯一のベクトルで、それ以外に合成すべきベクトルを持たない。このような動きベクトルに関連する情報も、動き補償部１１０から出力される前記参照画像情報に含まれ得る。
【０１２８】
一方、前記連続２フレームコマ落としのケースで、もしも本実施形態のように、コマ落としされたフレームＦ１とＦ２を使用してＶ１、Ｖ２、Ｖ３を求めてからこれらを合成して最終的な動きベクトルＶを求めるのではなく、従来のようにフレームＦ３とＦ０のあいだのブロックマッチングだけで直接、動きベクトルＶを求めようとすると、探索範囲を相当に大きく設定しなければ動きベクトルＶを検出すること自体が困難になり、動き補償能力が低下する。
【０１２９】
しかし探索範囲を大きくすると上述したように演算の総数が増加し、レートコントロールが難しくなる。
【０１３０】
また、フレームＦ３とＦ０のあいだのブロックマッチングを行う場合は、コマ落としされたフレームＦ１、Ｆ２に相当する期間に、動きベクトルの始点ブロックと終点となるべきブロックのあいだの一致度が低下し、誤った動きベクトルを検出してしまう可能性も高まって、動き補償能力が損なわれる。
【０１３１】
具体的には、連続する２つのフレーム間（例えばＦ０、Ｆ１間）の時間に比べて、Ｆ２、Ｆ１がコマ落としされた場合のＦ０とＦ３の間の時間は３倍になるため、フレーム画面内の像の動きの大きさは、Ｆ０、Ｆ３間ではＦ０、Ｆ１間の３倍になる。
【０１３２】
従来の符号化装置２０でこの３倍の大きさの動きを捕捉するためには、探索範囲（前記ＱＥ０に相当）の面積を９（＝３２）倍にしなければならない。これに応じて演算数も、ほぼ９倍になる（式(１）参照）。
【０１３３】
これに対して本実施形態では、このＱＥ０と同じ探索範囲で３回演算を実行するだけでよいため、探索範囲の面積の合計はＱＥ０の３倍で足りる。
【０１３４】
この観点から、その他の条件が同じ場合、本実施形態の演算総数は、従来の１／３程度でよいことになる。
【０１３５】
（Ａ−３）第１の実施形態の効果
以上詳細に説明したように、本実施形態によれば、コマ落としがあったり、コマ落としフレームが連続する場合でも、演算総数の増加を抑えてレートコントロールを容易にし、正確な動きベクトルを検出して動き補償能力の低下を防ぐことができるため、符号化装置の信頼性を向上することが可能となる。
【０１３６】
また、演算総数を抑制できるということは、ハードウエア的には符号化装置のの消費電力を低減し、規模を縮小できることを意味し、ソフトウエア的には、処理能力に対する負荷を軽減できることを意味する。
【０１３７】
（Ｂ）第２の実施形態
本実施形態では、第１の実施形態の動き補償部の処理で一定であった探索範囲の位置を変化させ、大きさを小さくすることを特徴とする。
【０１３８】
（Ｂ−１）第２の実施形態の構成および動作
第１の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【０１３９】
図１において、本実施形態の動き補償部には、第１の実施形態の動き補償部１１０と区別するために符号１１０Ａを付する。同様に、本実施形態の符号化装置には、第１の実施形態の符号化装置１０と区別するために符号１０Ａを付する。
【０１４０】
以下では、第１の実施形態の構成、動作と異なる点についてのみ説明する。
【０１４１】
本実施形態の動き補償部１１０Ａの内部およびその周辺の構成を図８に示す。
【０１４２】
図８において、動き補償部１１０Ａは第１の動き予測部８０１と、第２の動き予測部８０２と、第３の動き予測部８０３と、探索範囲制御部８０４とから構成されている。
【０１４３】
第１の動き予測部８０１は前記第１の動き予測部４０１に対応し、第２の動き予測部８０２は前記第２の動き予測部４０２に対応し、第３の動き予測部８０３は前記第３の動き予測部４０３に対応するが、それぞれ探索範囲制御部８０４に関連する機能も備えている。
【０１４４】
すなわち、第１の動き予測部５０１は再構成画像用メモリ１０９からの信号を入力する部分と原画像用メモリ１１３からの信号を入力する部分と探索範囲制御部８０４からの制御信号を入力する部分を備え、第２の動き予測部８０２は原画像用メモリ１１２からの信号を入力する部分と探索範囲制御部８０４からの制御信号を入力する部分を備え、第３の動き予測部８０３は原画像用メモリ１１３からの信号を入力する部分と探索範囲制御部８０４からの制御信号を入力する部分を備えている。
【０１４５】
次に、第１の実施形態のＦ１、Ｆ２の２フレーム連続のコマ落としがある場合を例に、本実施形態の動作を説明する。
【０１４６】
まず第３の動き予測部８０１は、原画像用メモリ１１１から入力された画像データＦ０と、第２の動き予測部８０２から得たフレームＦ１の画像データのあいだで、ブロックマッチングを用いて動きベクトル検出を行う。
【０１４７】
このブロックマッチングに際して、探索範囲制御部８０４は動き予測部８０１に探索範囲を指示する。ここで指示された探索範囲が、図５に一点鎖線で示した探索範囲ＶＥ１である。探索範囲ＶＥ１は、フレームＦ０上のブロックＰ０の位置を中心としてフレームＦ１上に設定した探索範囲である。
【０１４８】
上述した２連続コマ落としのケースにおいて、従来は、フレームＦ３とＦ０のあいだで直接、探索（ブロックマッチング）し、動きベクトルＶを求める。この探索を±１５画素の探索範囲で行うものとすると、本実施形態では、±５画素の探索範囲で探索しても動き補償能力は従来よりも高い。
【０１４９】
なぜなら、フレームＦ１とＦ０のあいだの時間はフレームＦ３とＦ０のあいだの時間の１／３であるため、フレーム画面中で像が動く距離は１／３になるのに加えて、動きベクトルの始点ブロックと終点となるべきブロックのあいだの一致度は、経過時間の短いフレームＦ１、Ｆ０間のほうが、Ｆ３、Ｆ０間よりも高いのが普通だからである。
【０１５０】
例えばフレームＦ３とＦ０の時間間隔を１／３０秒とすると、フレームＦ１とＦ０の時間間隔はほぼ１／１００秒であるため、Ｆ１、Ｆ０間ではＦ３、Ｆ０間に比べて、フレーム画面中の像（被写体）の動く距離は短く、光学的な条件などの変化で当該像の同じ部位の画素値が変化してしまう程度や頻度も低い。
【０１５１】
さらに、始点ブロックと終点ブロックの一致度が高いということは、本来、動きベクトルでないものを動きベクトルとして誤って検出する可能性が低いことを意味する。
【０１５２】
次に、第２の動き予測部８０２において、第１の動き予測部８０１の処理で得られた動きベクトルをもとに動きベクトル検出を行う。その場合も同様に探索範囲制御部８０４が指示された探索範囲で検出を行う。この探索範囲は、図６に一点鎖線で示した探索範囲ＶＥ２である。
【０１５３】
探索範囲ＶＥ２は、フレームＦ１上のブロックＰ１の位置を中心としてフレームＦ２上に設定した探索範囲である。
【０１５４】
同様に、第１の動き予測部８０１は、画像用メモリ１１３から入力された画像データＦ２と再構成画像用メモリ１０９から入力された復号データＦ３とからブロックマッチングを用いて動きベクトル検出を行う。
【０１５５】
ここでのブロックマッチングも、第２の動き予測部８０２の処理で得られた動きベクトルをもとに行われ、動きベクトルが検出される。その場合も同様に探索範囲制御部８０４が指示した探索範囲ＶＥ３で検出を行う。
【０１５６】
探索範囲ＶＥ３は、フレームＦ２上のブロックＰ２の位置を中心としてフレームＦ３上に設定した探索範囲である。
【０１５７】
本実施形態では第１の実施形態の探索範囲と異なり、この±５画素という小さな探索範囲のフレーム画面中の位置は、図５〜図７に一点鎖線で示した探索範囲ＶＥ１、ＶＥ２、ＶＥ３のように変化していく。そしてこれらＶＥ１〜ＶＥ３の存在し得る領域は、第１の実施形態の前記ＳＥ１の範囲に限定しても、第１の実施形態と同等な動き補償能力が保たれる。
【０１５８】
本実施形態の探索範囲ＶＥ１などの面積は第１の実施形態の探索範囲ＳＥ１などの面積の１／９なので、その他の条件が同一ならば、本実施形態の演算数は第１の実施形態の演算数の１／９程度になる。
【０１５９】
最後に、第３の動き予測部８０３が、得られた各動きベクトルのベクトル和を用いて参照画像情報を作成し、減算器１０２およびスイッチ１１４に入力する点などは、第１の実施形態と同じである。
【０１６０】
（Ｂ−２）第２の実施形態の効果
本実施形態によれば、第１の実施形態の効果と同等な効果を得ることができる。
【０１６１】
加えて、本実施形態では、第１の実施形態に比べて演算総数はさらに減少することが可能である。
【０１６２】
例えば上下左右１５画素の探索範囲の全探索をして検出する場合、第１の実施形態の評価値演算の回数は、３１×３１＝９６１回（前記式(１）参照）であるが、本実施形態では１回毎に上下左右５画素の範囲を検出することで第１の実施形態と同じ範囲をカバーしているので、（１１×１１）×３＝３６３回である。よって演算数は、約６２％の削減が可能となる。
【０１６３】
なお、合成動きベクトルを求めるため第３〜第１の動き予測部で行われる３回のブロックマッチングのための演算数で比較すると、本実施形態の演算数は上述したように、第１の実施形態の演算数のほぼ１／９になる。
【０１６４】
反対に第１の実施形態と同じ程度の演算総数を許容するなら、本実施形態では、探索範囲を大きくしてフレーム画面内でのいっそう大きな像の動きに対応することができるので、動き補償能力が向上する。
【０１６５】
(Ｃ）第３の実施形態
第１および第２の実施形態では、フレーム画面内で上下左右に連続する画素すべてについて評価値演算を行っていたが、本実施形態は評価値演算の対象となる画素を断続的に設定することを特徴とする。
【０１６６】
（Ｃ−１）第３の実施形態の構成および動作
第１の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【０１６７】
図１において、本実施形態の動き補償部には、第１の実施形態の動き補償部１１０と区別するために符号１１０Ｂを付する。同様に、本実施形態の符号化装置には、第１の実施形態の符号化装置１０と区別するために符号１０Ｂを付する。
【０１６８】
以下では、第１の実施形態の構成、動作と異なる点についてのみ説明する。
【０１６９】
本実施形態の動き補償部１１０Ｂの内部およびその周辺の構成を図９に示す。
【０１７０】
図９において、動き補償部１１０Ｂは第１の動き予測部９０１と、第２の動き予測部９０２と、第３の動き予測部９０３と、評価値演算制御部９０４とから構成されている。
【０１７１】
第１の動き予測部９０１は前記第１の動き予測部４０１に対応し、第２の動き予測部９０２は前記第２の動き予測部４０２に対応し、第３の動き予測部９０３は前記第３の動き予測部４０３に対応するが、それぞれ評価値演算制御部９０４に関連する機能も備えている。
【０１７２】
すなわち、第１の動き予測部９０１は再構成画像用メモリ１０９からの信号を入力する部分と原画像用メモリ１１３からの信号を入力する部分と評価値演算制御部９０４からの制御信号を入力する部分を備え、第２の動き予測部９０２は原画像用メモリ１１２からの信号を入力する部分と評価値演算制御部９０４からの制御信号を入力する部分を備え、第３の動き予測部９０３は原画像用メモリ１１３からの信号を入力する部分と評価値演算制御部９０４からの制御信号を入力する部分を備えている。
【０１７３】
図１０は１６画素×１６画素（＝２５６画素）のブロックで、白い四角形も黒い四角形も当該ブロック内の各画素を示している。このブロックが動きベクトルを求める際の単位なので、第１および第２の実施形態では、白および黒の四角形すべて（２５６画素）について評価値演算を行っていたことになる。
【０１７４】
これに対し本実施形態では、例えば黒い四角形の１２８画素についてのみ評価値演算を行うことになる。
【０１７５】
そのため、本実施形態の動き補償部１１０Ｂは、以下のようになる。
【０１７６】
まず、第３の動き予測部９０３は画像用メモリ１１１から入力された画像データＦ０と第２の動き予測部９０２から供給される画像データＦ１とから、ブロックマッチングを用いて動きベクトル検出を行う。
【０１７７】
この際に、評価値演算制御部９０４が、評価値演算に用いる画素を例えば図１０の黒い部分に相当する画素のみとするように、第１の動き予測部９０１に指示する。
【０１７８】
次に第２の動き予測部９０２において、第３の動き予測部９０３における処理の結果得られた動きベクトルをもとに動きベクトル検出を行う。その場合、第２の動き予測部９０２も、第３の動き予測部９０３と同様に評価値演算制御部９０４が指示した方法で検出を行う。
【０１７９】
第１の動き予測部９０１が、第２の動き予測部９０２における処理の結果得られた動きベクトルをもとに動きベクトル検出を行う場合も、同様に評価値演算制御部９０４が指示した方法で検出を行う。
【０１８０】
第３の動き予測部得９０３は得られた各動きベクトルのベクトル和を用いて参照画像情報を作成し、減算器１０２およびスイッチ１１４に入力する。
【０１８１】
なお、本実施形態のように評価値演算に用いる画素の密度を減らすと、演算数が減少する一方で、一致度自体の精密さが低下して動きベクトルの誤検出が発生する可能性は高まると考えられるが、一致度の精密さの低下の影響が動きベクトルの誤検出をもたらさない範囲で画素の密度を減らすようにするとよい。
【０１８２】
（Ｃ−２）第３の実施形態の効果
本実施形態によれば、第１の実施形態の効果と同等な効果を得ることができる。
【０１８３】
加えて、本実施形態では、第１の実施形態に比べて演算総数はさらに減少することが可能である。
【０１８４】
例えば、上述したように１画素おきに（黒い四角形についてだけ）評価値演算を行う場合、すべての画素を用いて評価値演算した場合の半分の演算回数で評価値が求められる。
【０１８５】
反対に、本実施形態で第１の実施形態と同じ回数の演算を行う場合には、探索範囲を広げることができ、像の急激な動きにも対応してより正確に動きベクトルを検出することが可能で、動き補償能力が向上する。
【０１８６】
(Ｄ）第４の実施形態
第１〜第３の実施形態の動き補償部の処理では、動きベクトルは最初から一致度が最も高いブロック間に１つだけ検出し、その１つについて処理を進めたため、もしも第１〜第３の動き予測部の１つで求められた動きベクトルに誤りがあると、最終的に動き補償部から出力される動きベクトルの情報も誤ったものとなる。
【０１８７】
これに対し、本実施形態では、複数の候補ベクトルを求め、動き補償部における処理の過程で、複数の候補ベクトルのなかから１つの動きベクトルを選択することを特徴とする。
【０１８８】
（Ｄ−１）第４の実施形態の構成および動作
第１の実施形態と本実施形態の構成上、動作上の主要な相違点は、動き補償部に関する点にかぎられる。
【０１８９】
図１において、本実施形態の動き補償部には、第１の実施形態の動き補償部１１０と区別するために符号１１０Ｃを付する。同様に、本実施形態の符号化装置には、第１の実施形態の符号化装置１０と区別するために符号１０Ｃを付する。
【０１９０】
以下では、第１の実施形態の構成、動作と異なる点についてのみ説明する。
【０１９１】
本実施形態の動き補償部１１０Ｃの内部およびその周辺の構成を図１１に示す。
【０１９２】
図１１において、動き補償部１１０Ｃは第１の動き予測部１１０１と、第２の動き予測部１１０２と、第３の動き予測部１１０３と、評価値演算制御部１１０４と、候補ベクトル決定部１１０５と、動きベクトル決定部１１０６とから構成されている。
【０１９３】
なお、評価値演算制御部１１０４は、第３の実施形態における評価値演算制御部９０４の機能に加え、第２の実施形態の探索範囲制御部８０４の持つ機能をも装備している。
【０１９４】
第１の動き予測部１１０１は前記第１の動き予測部４０１に対応し、第２の動き予測部１１０２は前記第２の動き予測部４０２に対応し、第３の動き予測部１１０３は前記第３の動き予測部４０３に対応するが、それぞれ評価値演算制御部１１０４、候補ベクトル決定部１１０５、動きベクトル決定部１１０６に関連する機能も備えている。
【０１９５】
すなわち、第１の動き予測部１１０１は再構成画像用メモリ１０９からの信号を入力する部分と原画像用メモリ１１３からの信号を入力する部分と評価値演算制御部１１０４からの制御信号を入力する部分を備え、第２の動き予測部１１０２は原画像用メモリ１１２からの信号を入力する部分と第１の動き予測部１１０１からの信号を入力する部分と評価値演算制御部１１０４からの制御信号を入力する部分を備え、第３の動き予測部１１０３は原画像用メモリ１１３からの信号を入力する部分と候補ベクトル決定部１１０５からの信号を入力する部分と評価値演算制御部１１０４からの制御信号を入力する部分を備えている。
【０１９６】
次に、図１１〜１４を用いて動き補償部１１０Ｃの動作の説明をする。
【０１９７】
まず第３の動き予測部１１０３は原画像用メモリ１１１から入力された画像データＦ０と、候補ベクトル決定部１１０５を介して第２の動き予測部１１０２から供給される画像データＦ１とから、ブロックマッチングを用いて動きベクトルの検出を行う。その場合、評価値演算制御部１１０４は第３の動き予測部１１０３に対し、候補ベクトルとして例えば２本挙げるように指示する。
【０１９８】
第３の動き予測部１１０３は、例えば上述した一致度が高い順に、ブロックを２組選択することで、一例として、図１２に示した２本の候補ベクトルＶ１−１、Ｖ１−２を得るものとする。
【０１９９】
図１２は、フレームＦ１中のブロックのうちで、フレームＦ０中のブロックＰ０との一致度が最も高いブロックがＰ１−１であり、２番目に高いブロックがＰ１−２であり、Ｐ０、Ｐ１−１間、Ｐ０、Ｐ１−２間に動きベクトルの第１次候補ベクトルＶ１−１、Ｖ１−２が得られたケースである。ＦＶ１は、前記ＶＥ１と同様な探索範囲である。
【０２００】
次いで、第２の動き予測部１１０２は評価値演算制御部１１０４からの指示によって、１本の第１次候補ベクトルにつき２本ずつ、第２次の候補ベクトルを求める。
【０２０１】
第２次の候補ベクトルは、例えば図１３に示すＶ２−１、Ｖ２−２、Ｖ２−３、Ｖ２−４のような、４本のベクトルである。第１次の候補ベクトルと同様、第２次の候補ベクトルも一致度に応じて求めることができる。
【０２０２】
図１３中、ＦＶ２−１、ＦＶ２−２は、前記ＶＥ２と同様な探索範囲であるが、本実施形態では、２つの第１次の候補ベクトルについて処理するため、２つの探索範囲が設定されている。
【０２０３】
フレームＦ２上に設定された探索範囲ＦＶ２−１のなかのブロックのうちで、ブロックＰ１−１に対する一致度が最も高いブロックがＰ２−１で、２番目に高いブロックがＰ２−２であり、同様に、フレームＦ２上に設定された探索範囲ＦＶ２−２中のブロックのうちで、ブロックＰ１−２に対する一致度が最も高いブロックがＰ２−３で、２番目に高いブロックがＰ２−４であるものとする。
【０２０４】
本実施形態の補償部内参照画像情報は、上述した第１の実施形態の補償部内参照画像情報に加えて、これらの各次の候補ベクトルの情報やこれらの候補ベクトルに関する付帯情報を含んでいる。この付帯情報は、例えば第２次の各候補ベクトルの始点ブロックに対する終点ブロックの一致度の情報であってよい。
【０２０５】
第２の動き予測部１１０２は、補償部内参照画像情報を第１の動き予測部１１０１に供給する前に、候補ベクトル決定部１１０５の処理を受ける。
【０２０６】
この補償部内参照画像情報を受け取った候補ベクトル決定部１１０５は、Ｖ２−１とＶ２−２のなかから１つの候補ベクトルを選択するとともに、Ｖ２−３とＶ２−４のなかから１つの候補ベクトルを選択する。
【０２０７】
この選択には例えば、前記始点ブロックに対する終点ブロックの一致度を使用してもよい。
【０２０８】
ただし、第２の動き予測部１１０２で第２次の候補ベクトルを得る際にも一致度を使用したため、候補ベクトル決定部１１０５でも同じ一致度を使用して候補ベクトルを選択しては、最初から第２の候補ベクトルを第１次の候補ベクトル１つについて１つだけ求めても同じ結果となってしまう。
【０２０９】
したがって、候補ベクトル決定部１１０５が第２次の候補ベクトルを選択する際の基準と、第２の動き予測部１１０２が第２次の候補ベクトルを得る際の基準とは異なるほうが効果的である。
【０２１０】
例えば、候補ベクトル決定部１１０５の処理では、フレームＦ２内のブロックとフレームＦ１内のブロックとの一致度だけでなく、フレームＦ２内のブロックとフレームＦ０内のブロックとの一致度も加味して、第２次の候補ベクトルの選択を行うようにする方法などが考えられる。
【０２１１】
この場合、一例としては、ブロックＰ１−１に対する一致度はブロックＰ２−２のほうがブロックＰ２−１よりも高かったとしても、前記ブロックＰ０に対する一致度はブロックＰ２−１のほうがＰ２−２よりも高ければ、その程度にしたがい、ブロックＰ２−１、すなわち第２次の候補ベクトルＶ２−１のほうが選択されることもあり得る。
【０２１２】
ここでは、４つの第２次の候補ベクトルのうち、Ｖ２−１（終点ブロックＰ２−１）とＶ２−３（終点ブロックＰ２−３）とが候補ベクトル決定部１１０５で選択されたものと仮定する。
【０２１３】
選択された第２次候補ベクトルの情報を持つ補償部内参照画像情報は、第１の動き予測部１１０１に供給される。第１の動き予測部１１０１はこのほか、原画像用メモリ１１３から画像データＦ２を受け取り、再構成画像用メモリ１０９から復号データＦ３を受け取る。
【０２１４】
これらの情報を用いて第１の動き予測部１１０１は、一致度を基準に、第２の動き予測部１１０２と同様な動作を行い、図１４に示すように、新たに４つの第３次の候補ベクトルＶ３−１、Ｖ３−２、Ｖ３−３、Ｖ３−４を求める。ここで、ＦＶ３−１、ＦＶ３−２は、前記ＦＶ２−１、ＦＶ２−２と同様な探索範囲である。
【０２１５】
なお、図１２、図１３、図１４に示した大きな四角形Ｒは、大きさが第１の実施形態の探索範囲ＳＥ１などと同じ範囲であって、本実施形態の探索範囲ＦＶ２−１、ＦＶ２−２、ＦＶ３−１、ＦＶ３−２などが設定され得る最大限の領域を示している。
【０２１６】
第１の動き予測部１１０１における処理が終わると、選択された第２次候補ベクトルと、第３次候補ベクトルの情報を含む補償部内参照画像情報が、各部１１０２，１１０５，１１０３を介して動きベクトル決定部１１０６に供給される。
【０２１７】
当該補償部内参照画像情報を受け取った動きベクトル決定部１１０６は、これら４つの第３次の候補ベクトルから１つだけを選択することで最終的な動きベクトルを決定する。
【０２１８】
動きベクトル決定部１１０６におけるこの選択の基準と第１の動き予測部１１０１の第３次候補ベクトルを求める際の基準の関係については、前記候補ベクトル決定部１１０５の基準と、第２の動き予測部１１０２の基準の関係と同様で、相互に相違しているほうがよい。
【０２１９】
ただし動きベクトル決定部１１０６では、２つの候補ベクトルを選択した候補ベクトル決定部１１０５と異なり、最終的に１つの候補ベクトルを決定するため、いっそう包括的で信頼性の高い基準で選択することが求められる。
【０２２０】
一例としては、終点ブロックＰ３−１、Ｐ３−２、Ｐ３−３、Ｐ３−４のそれぞれと対応するブロックすべての一致度を、包括的に比較してもよい。
【０２２１】
すなわち、ブロックＰ３−１とＰ２−１の一致度だけでなく、Ｐ３−１とＰ１−１の一致度、Ｐ３−１とＰ０の一致度を加味した所定の計算式を設定して、その値を求める。同様に、ブロックＰ３−２、Ｐ３−３、Ｐ３−４についても同等な計算式に基づいてその値を求め、これら４つの値を比較することで第３次の候補ベクトルを１つだけ選択する
なお、動き補償部１１０Ｃで最終的に求められ外部へ出力される動きベクトルは、第３次よりも第２次、第２次よりも第１次と、早期の段階の候補ベクトルが誤っているほど、実際の像の動きに対応した真の動きベクトルから大きくかけ離れたものとなる可能性が高い。したがって、この計算式および動き補償部１１０Ｃは、第１の動き予測部１１０１などの誤りを、第３の動き予測部１１０３などの処理によって回復し、修正できるようにつくることが望ましい。
【０２２２】
図１４の例では、第３次候補ベクトルＶ３−１が選択されている。
【０２２３】
第３次の候補ベクトルＶ３−１が選択されると、対応する第２次、第１次の候補ベクトルとのベクトル和により、最終的な動きベクトルＶＣ（＝Ｖ１−１＋Ｖ２−１＋Ｖ３−１）が求められ、このＶＣの情報を含む参照画像情報が出力される。
【０２２４】
動き補償部１１０Ｃからスイッチ１１４や減算器１０２に出力されるこの参照画像情報は、本実施形態の場合も第１の実施形態と同じ構成であってよい。
【０２２５】
なお、本実施形態においては、第２の動き予測部１１０２と第３の動き予測部１１０３のあいだに設けた候補ベクトル決定部１１０５により、候補ベクトルの数が増加し過ぎることがなく、第３の動き予測部１１０３における演算数も多くない。
【０２２６】
もしも候補ベクトル決定部１１０５がなければ、上記の例で、Ｖ２−１などの第２次候補ベクトルはすべて第１の動き予測部１１０１に供給され、Ｖ３−１などの第３次候補ベクトルは８つになる。したがって探索範囲ＦＶ３−１、ＦＶ３−２の数を増やし、演算数を増加する必要が生じる。
【０２２７】
（Ｄ−２）第４の実施形態の効果
本実施形態によれば、第１の実施形態の効果と同等な効果を得ることができる。
【０２２８】
加えて、本実施形態では、複数の候補ベクトルを求めて選択する過程で動きベクトルの誤検出を修正し防ぐことが可能で、短い時間で複雑に動く物体にも対応することができる。これにより、動きベクトル検出の信頼性を向上することが可能である。
【０２２９】
(Ｅ）他の実施形態
第１〜第４の実施形態ではフレームレート１０Ｈｚ固定の場合、すなわち連続３フレームのうち、２フレームがこま落ちする場合を示しているが、本発明は、他のフレームレート、可変のフレームレートにも適応可能である。
【０２３０】
その場合、必要に応じて、原画像用メモリの数を４つ以上にすることになる。
【０２３１】
なお、第１〜第４の実施形態の場合も、１０Ｈｚ固定とはいえ、フレームレートの瞬時値は時々刻々と変化していて、例えば５Ｈｚになったり３０Ｈｚになったりし得る。
【０２３２】
このため、フレームレート１０Ｈｚ固定の場合でも、実際には、原画像メモリの数は４つ以上にしたほうが、動き補償能力の向上や処理の効率性の観点から好ましい。原画像用メモリが３つでは、最大２フレーム連続のコマ落としにしか対応できない。瞬間的に３フレーム以上の連続コマ落としが発生すると、探索範囲を拡大することが必要となり、発明が解決しようとする課題に記載した問題と同じ問題が発生することとなる。
【０２３３】
ただし本発明は、原画像用メモリの数が最低限２つであっても、１フレームのコマ落としには対応することができ、一定の効果を保有する。
【０２３４】
さらに、第１〜第４の実施形態などにおける「フレーム」は、いわゆるＮＴＳＣ信号などの場合、「フィールド」と置き換えてもよい。
【０２３５】
また、前記探索範囲制御、評価値演算制御も可変にすることはもちろん可能である。同様に候補ベクトルの数の増加や適時変更も可能である。
【０２３６】
なお、第４の実施形態の評価値演算制御部１１０４は、第３の実施形態における評価値演算制御部９０４の機能と、第２の実施形態の探索範囲制御部８０４の機能を兼ね備えていたが、第３の実施形態の評価値演算制御部９０４の機能だけを装備するようにしてもよい。
【０２３７】
同様に、第３の実施形態の評価値演算制御部９０４が第２の実施形態の探索範囲制御部８０４の機能も兼ね備えるようにしてもよい。
【０２３８】
要するに、本発明において、探索範囲制御機能と評価値演算制御機能とは、単独で装備することも併せて装備することも可能である。
【０２３９】
また、第１〜第４の実施形態も含め、通常、動きベクトルは符号化、すなわち動き補償符号化に利用されるものであるが、本発明の適用はこれに限定されない。
【０２４０】
たとえば符号化を伴わない場合であっても、３つ以上の連続フレームの画面における像の動きを効率的に求める目的で、本発明を利用することができる。
【０２４１】
すなわち、本発明は、入力順が先の始点画面中の第１の位置を始点とすると共に、入力順が後の終点画面中の第２の位置を終点とすることで、始点画面から終点画面にいたる期間内で画面中の像の動きを示す合成動きベクトルを検出する動きベクトル検出装置について、広く適用することができる。
【０２４２】
【発明の効果】
以上に説明したように、本発明によれば、演算数の増加を抑制しながら、動きベクトル検出の信頼性を向上することが可能である。
【図面の簡単な説明】
【図１】実施形態に係る符号化装置の構成を示すブロック図である。
【図２】従来の符号化装置の構成を示すブロック図である。
【図３】従来の符号化装置におけるブロックマッチング動作を説明する概略図である。
【図４】第１の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図５】第１および第２の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図６】第１および第２の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図７】第１および第２の実施形態の動き補償部のブロックマッチングを説明する概略図である。
【図８】第２の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図９】第３の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図１０】第３の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図１１】第４の実施形態に係る符号化装置の動き補償部の内部構成を示すブロック図である。
【図１２】第４の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図１３】第４の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【図１４】第４の実施形態に係る符号化装置の動き補償部の動作を示す概略図である。
【符号の説明】
１０、１０Ａ、１０Ｂ、１０Ｃ…符号化装置、１０４…符号化器、１０５…符号化制御部、１１０，１１０Ａ、１１０Ｂ、１１０Ｃ…動き補償部、１１１〜１１３…原画像用メモリ、４０１，８０１，９０１，１１０１…第１の動き予測部、４０２，８０２，９０２，１１０２…第２の動き予測部、４０３，８０３，９０３，１１０３…第３の動き予測部、８０４…探索範囲制御部、９０４、１１０４…評価値演算制御部、１１０５…候補ベクトル決定部、１１０６…動きベクトル決定部。
【図１】
0003982952.tif 000002
【図２】
0003982952.tif 000003
【図３】
0003982952.tif 000004
【図４】
0003982952.tif 000005
【図５】
0003982952.tif 000006
【図６】
0003982952.tif 000007
【図７】
0003982952.tif 000008
【図８】
0003982952.tif 000009
【図９】
0003982952.tif 000010
【図１０】
0003982952.tif 000011
【図１１】
0003982952.tif 000012
【図１２】
0003982952.tif 000013
【図１３】
0003982952.tif 000014
【図１４】
0003982952.tif 000015