(57)【要約】【課題】  本発明の目的は、動画像を高速、高画質に符号化できる動画像符号化方法および動画像符号化装置を提供することにある。【解決手段】  動画像符号化装置は、第１算出部と第２算出部と探索範囲決定部とを具備し、動画像を動き補償予測符号化する動画像符号化装置である。第１算出部は、第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する。第２算出部は、前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する。探索範囲決定部は、前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する。【選択図】  図１
2005244542.tif 000002
【特許請求の範囲】
【請求項１】
動画像を動き補償予測符号化する動画像符号化装置であって、
第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する第１算出部と、
前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する第２算出部と、
前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する探索範囲決定部と
を具備する動画像符号化装置。
【請求項２】
前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項１に記載の動画像符号化装置。
【請求項３】
前記探索範囲決定部は、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する請求項１または請求項２に記載の動画像符号化装置。
【請求項４】
前記探索範囲決定部は、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する請求項１または請求項２に記載の動画像符号化装置。
【請求項５】
前記探索範囲決定部は、前記動きベクトル合計値が予め定められた閾値を超えたときに前記探索範囲を決定する請求項１または請求項２に記載の動画像符号化装置。
【請求項６】
前記第１画像データは、Ｎフレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項１に記載の動画像符号化装置。
【請求項７】
前記探索範囲決定部が前記探索範囲を決定しないフレームの前記探索範囲は、前記探索範囲決定部が決定した最後の前記探索範囲が用いられる請求項４から請求項６のいずれかに記載の動画像符号化装置。
【請求項８】
前記探索範囲決定部は、予め定められた複数種類の探索範囲の中から選択して決定する請求項１から請求項７のいずれかに記載の動画像符号化装置。
【請求項９】
前記動きベクトル合計値は、前記第１画像データと前記第２画像データに基づいて求められる前記動きベクトルの絶対値の合計である請求項１から請求項８のいずれかに記載の動画像符号化装置。
【請求項１０】
前記誤差合計値は、第３画像データと前記第２画像データとの差分として算出される予測誤差の１フレーム分の合計値である請求項１から請求項９のいずれかに記載の動画像符号化装置。
【請求項１１】
前記探索範囲決定部が前記探索範囲を決定したフレームの第２画像データに前記探索範囲を用いて再度前記動きベクトルを生成する請求項１から請求項１０のいずれかに記載の動画像符号化装置。
【請求項１２】
動画像を動き補償予測符号化する動画像符号化方法であって、
第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する第１算出ステップと、
前記動きベクトルと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する第２算出ステップと、
前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する探索範囲決定ステップと
を具備する動画像符号化方法。
【請求項１３】
前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項１２に記載の動画像符号化方法。
【請求項１４】
前記探索範囲決定ステップは、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する請求項１２または請求項１３に記載の動画像符号化方法。
【請求項１５】
前記探索範囲決定ステップは、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する請求項１２または請求項１３に記載の動画像符号化方法。
【請求項１６】
前記探索範囲決定ステップは、前記動きベクトル合計値が予め定められた閾値を超えたときに前記探索範囲を決定する請求項１２または請求項１３に記載の動画像符号化方法。
【請求項１７】
前記第１画像データは、Ｎフレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項１２に記載の動画像符号化方法。
【請求項１８】
前記探索範囲決定ステップが前記探索範囲を決定しないフレームの前記探索範囲は、前記探索範囲決定ステップが決定した最後の前記探索範囲が用いられる請求項１５から請求項１７のいずれかに記載の動画像符号化方法。
【請求項１９】
前記探索範囲決定ステップは、予め定められた複数種類の探索範囲の中から選択して決定する請求項１２から請求項１８のいずれかに記載の動画像符号化方法。
【請求項２０】
前記動きベクトル合計値は、前記第１画像データと前記第２画像データに基づいて求められる前記動きベクトルの絶対値の合計である請求項１２から請求項１９のいずれかに記載の動画像符号化方法。
【請求項２１】
前記誤差合計値は、第３画像データと前記第２画像データとの差分として算出される予測誤差の１フレーム分の合計値である請求項１２から請求項２０のいずれかに記載の動画像符号化方法。
【請求項２２】
前記探索範囲決定ステップが前記探索範囲を決定したフレームの第２画像データに前記探索範囲を用いて再度前記動きベクトルを生成する請求項１２から請求項２１のいずれかに記載の動画像符号化方法。
【請求項２３】
第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する第１算出部と、
前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する第２算出部と、
前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する探索範囲決定部と
を具備し、
決定された前記探索範囲に基づいて動きベクトルを探索する動きベクトル探索装置。
【請求項２４】
前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項２３に記載の動きベクトル探索装置。
【請求項２５】
前記探索範囲決定部は、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する請求項２３または請求項２４に記載の動きベクトル探索装置。
【請求項２６】
前記探索範囲決定部は、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する請求項２３または請求項２４に記載の動きベクトル探索装置。
【請求項２７】
動画像を動き補償予測符号化するプログラムであって、
第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する第１算出処理モジュールと、
前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する第２算出処理モジュールと、
前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する探索範囲決定処理モジュールと
を具備する動画像符号化プログラム。
【請求項２８】
前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データであり、
前記第２画像データは、符号化する画像の画素データであり、
前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである
請求項２７に記載の動画像符号化プログラム。
【請求項２９】
前記探索範囲決定処理モジュールは、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する請求項２７または請求項２８に記載の動画像符号化モジュール。
【請求項３０】
前記探索範囲決定処理モジュールは、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する請求項２７または請求項２８に記載の動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化に係り、特に動き補償予測符号化技術に関する。
【背景技術】
【０００２】
動画像信号を記録、あるいは伝送する際の圧縮符号化では、符号化効率を高めるために画像フレーム間の相関を利用した符号化方法が用いられる。画像フレーム間の相関を利用する符号化方式は動き補償予測符号化と呼ばれ、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などで採用されている。
【０００３】
動き補償予測符号化では、フレーム間における映像の動きの情報（動きベクトル）と、動きベクトルによって生成される予測画像と符号化中のフレームとの差分画像（予測誤差）を符号化する。画像フレーム間の相関が大きければ、予測誤差が小さくなり、符号化する情報量を小さくでき、圧縮率を向上させることができる。
【０００４】
動き補償予測符号化では、一般に、フレームを１６×１６画素などの一定サイズのブロックに分割し、分割したブロックごとに動きベクトルを算出し、割り当てる。即ち、すでに符号化が完了しているフレーム（参照フレーム）の中から、符号化中のフレームのブロックごとに相関が最も大きくなる場所を探し、そのブロック間の差分を求め、符号化する。
【０００５】
相関が大きくなる場所を探す処理を動きベクトル探索という。相関の大小は、参照フレームと符号化中フレームとのそれぞれのブロック内の各画素の差異を総和することで評価できる。
【０００６】
動きベクトル探索の処理において、フレームのどの領域を探索するかは任意である。狭い範囲を探索すれば探索に要する演算量は少なくすむが、動きの大きな映像が入力された場合に適切な動きベクトルが検出できなくなり、符号化効率が低下してしまう。一方、広い範囲を探索すれば、動きの大きな映像に対して適切な動き補償予測が可能になり、符号化効率は向上する。しかし、広い範囲のデータを演算しなければならず、演算量が膨大になってしまう。また、動きが小さい映像において、広い探索範囲で探索した場合、誤って実際の動きとは異なる大きな動きベクトルが検出される可能性がある。大きな動きベクトルを誤検出すると符号化効率の低下を招く。従って、映像中の動きの大きさに応じて適応的に探索範囲を切替えることが望ましい。
【０００７】
動きベクトル探索における探索範囲を適応的に切替える技術について、次のような技術が知られる。特開平８−３２９６９号公報によれば、参照フレームの処理ブロック位置近傍の検索領域に対する動きベクトルを検出する動きベクトル検出装置に関する技術が知られる。動きベクトル検出装置は、同位置相関評価手段と検索範囲制御手段と動き検索手段とを備える。同位置相関評価手段は、参照フレームにおける処理ブロック位置のブロック・パターンと処理ブロックとの相関を評価し、相関の度合いを示す相関評価値を算出して出力する。検索範囲制御手段は、同位置相関評価手段から出力される相関評価値に基づき、動きベクトル検索の対象となる参照フレーム検索領域の大きさを制御する。動き検索手段は、処理ブロックと検索範囲制御手段とにより決定された検索領域内の各ブロック・パターンとの相関を評価し、最も相関が大きくなるブロック・パターンに対応するベクトルを動きベクトルとして出力する。この動きベクトル探索装置は、ゼロベクトル位置での予測誤差の大小により探索範囲の大きさを決定している。この技術を用いた場合、ゼロベクトルの位置での予測誤差のみを用いて探索範囲が決定されてしまうため、探索範囲の大きさが映像中の実際の動きの大きさと一致しない可能性がある。
【０００８】
特開平１０−４５５４によれば、符号化対象フレームを所定のブロックに分割し、各ブロックに対して前フレームの中から最も差分が小さくなる位置を検出する動きベクトル検出装置に関する技術が知られる。この動きベクトル検出装置は、動き情報入力手段と探索範囲決定手段と動きベクトル検出手段とを備える。動き情報入力手段は、予め予測される動きの大きさを入力する。探索範囲決定手段は、動き情報入力手段により入力された動きの大きさに基づいて動きベクトル探索範囲及び候補ベクトル数を決定する。動きベクトル検出手段は、探索範囲決定手段により決定された探索範囲に基づいて簡略化した手段でベクトル探索を行い複数の候補ベクトルを求めるとともに、更に探索範囲決定手段で決定された数の候補ベクトルについて簡略化しない手段でベクトル評価を行って動きベクトルを検出する。この動きベクトル探索装置は、過去に検出した動きベクトルをもとにブロックごとに探索範囲を切り替えている。この技術では、動きベクトルの大きさのみから探索範囲が決定される。そのため、動きベクトルが映像中の実際の動きを表していない場合、つまり動きベクトルが誤検出された場合に、適切な探索範囲が設定されない。また、ブロックごとに探索範囲の切替えを行うため、探索範囲選択のための演算量が大きくなる。
【０００９】
また、特開２００２−２８１５０８号公報によれば、スキップ領域検出型動画像符号化装置に関する技術が知られる。スキップ領域検出型動画像符号化装置は、情報的に符号化の必要が無いスキップ領域を検出し、その領域に対して割り当てる符号化情報量を最小とする動画像のスキップ領域検出型の動画像符号化装置である。比較する第１の手段は、複数の画素から構成される小ブロック毎に、前フレームとの予測誤差の総計を求め、予め定められた第１の閾値Ｔｈ１と比較する。比較する手段は、前記小ブロック内の分散を求め、予め定められた第２の閾値Ｔｈ２と比較する。前フレームとの予測誤差の総計が第１の閾値Ｔｈ１以下で、かつ分散が第２の閾値Ｔｈ２以下である時、小ブロックは背景領域に属すると判定する。
【００１０】
特開平１０−１０８１９３号公報によれば、第１および第２のフィールドで構成される入力画面上の部分領域が参照画面上のどの部分領域から動いたかを示す動きベクトル情報を検出する動きベクトル検出方法に関する技術が知られる。この動きベクトル検出方法は、第１の動きベクトルを検出するステップと、第２の動きベクトルを検出するステップと、第３の動きベクトルを検出するステップと、最適な動きベクトルを検出するステップとを有する。第１の動きベクトルを検出するステップは、入力画面の第１のフィールド中の部分領域に対する動きベクトル探索範囲を参照画面上に設定し、探索範囲内の各動きベクトル候補を用いた場合の第１の予測誤差を算出して第１の予測誤差が最小となる第１の動きベクトルを検出する。第２の動きベクトルを検出するステップは、この第１の動きベクトルに基づいて、入力画面の第２のフィールド中の部分領域に対する動きベクトル探索範囲を参照画面上に設定し、探索範囲内の各動きベクトル侯補を用いた場合の第２の予測誤差を算出して第２の予測誤差が最小となる第２の動きベクトルを検出する。第３の動きベクトルを検出するステップは、２つの参照フィールドを合わせたフレームで構成される領域を探索範囲とした動きベクトル侯補に対する第３の予測誤差を第１および第２の予測誤差の和で算出し、第３の予測誤差が最小となる第３の動きベクトルを検出する。最適な動きベクトルを検出するステップは、第１、第２および第３の動きベクトルから最適な動きベクトルを検出する。
【００１１】
また、特開平１１−２１５５１０号公報によれば、動き補償予測方式を用いて作成された圧縮画像ストリームを入力として画像を選択的に復号する動画像復号装置に関する技術が知られる。この動画像復号装置は、動き補償手段と、第１の蓄積手段と、復号手段とを有する。動き補償手段は、復号を省略する画像の予測誤差信号情報と動きベクトル情報とを入力とし、予測誤差信号に動き補償処理を実施する。第１の蓄積手段は、動き補償処理が実施された予測誤差信号を蓄積する。復号手段は、蓄積結果および復号対象となる画像のデータを入力として、復号対象となる画像の動き補償処理を実施して表示画像を復号する。
【００１２】
特表２００２−５４３７１４号公報によれば、Ｂマイクロブロックのエンコーディングにおける３つの可能性のある予測モードの中から予測モードを選択する戦略を定めることによってピクチャ・シーケンスをエンコーディングする方法に関する技術が知られる。このピクチャ・シーケンスをエンコーディングする方法は、グループ・オブ・ピクチャ群に分割する工程と、ピクセル・ブロックに分割する工程と、独立的にエンコーディングする工程と、Ｐブロックに基づいて導く工程と、前方動作ベクトルを導く工程と、後方動作ベクトルを導く工程と、予測モードを選択する工程と、予測的にエンコーディングする工程と、ＳＡＤｂｉｄｉｒを導く工程と、ＳＡＤｂを導く工程と、予測的にエンコーディングすることを選択する工程Ａと、予測的にエンコーディングすることを選択する工程Ｂとを有する。グループ・オブ・ピクチャ群に分割する工程は、ソース・シーケンスを、それぞれが少なくとも一対のフレーム（以下、ＰＢフレームという）に後続される第一フレーム（以下、Ｉフレームという）を有するグループ・オブ・ピクチャ群に分割する。ピクセル・ブロックに分割する工程は、各Ｉフレーム及びＰＢフレームを空間的に重ならないピクセル・ブロックに分割する。独立的にエンコーディングする工程は、Ｉフレームからのブロック（以下、Ｉブロックという）をグループ・オブ・ピクチャにおける別のフレームから独立的にエンコーディングする。Ｐブロックに基づいて導く工程は、ＰＢフレームの一時的な第二フレームからのブロック（以下、Ｐブロックという）に対する動作ベクトル及び対応する予測器を前のＩフレームにおけるＩブロック若しくは前のＰＢフレームにおけるＰブロックに基づいて導く。前方動作ベクトルを導く工程は、前のＩフレームにおける関連付けられたＩブロック（以下、Ｉｆブロックという）若しくは前のＰＢフレームにおける関連付けられたＰブロック（以下、Ｐｆブロックという）を各Ｂブロックに対して得られるように、ＰＢフレームの第一フレームからの各ブロック（以下、Ｂブロックという）に対して、同じ場所のＰブロックの動作ベクトルからの前方動作ベクトルを導く。後方動作ベクトルを導く工程は、ＰＢフレームのＰフレームにおける関連付けられたＰブロック（以下、Ｐｂブロックという）を各Ｂブロックに対して得られるように、ＰＢフレームの第一フレームからの各Ｂブロックに対して、同じ場所のＰブロックの動作ベクトルからの後方動作ベクトルを導く。予測モードを選択する工程は、各Ｂブロックのエンコーディングのための予測モードを選択する。予測的にエンコーディングする工程は、前のＩフレームにおけるＩブロック若しくは前のＰＢフレームにおけるＰブロックに基づいてＰＢフレームの第二フレームのＰブロックを予測的にエンコーディングする。ＳＡＤｂｉｄｉｒを導く工程は、選択された予測モードに従ってＢブロックを予測的にエンコーディングする工程とを有するピクチャ・ソース・シーケンスのエンコーディング方法であって、各Ｂブロックのエンコーディングのための予測モードの選択は、各Ｂブロックに対して連続的に実行される、Ｂブロックと、ＰｂブロックとＰｆブロック若しくはＩｆブロックとのピクセル値の中間のピクセル値を有するブロックと、の間の差分の絶対値の合計（以下、ＳＡＤｂｉｄｉｒという）を導く。ＳＡＤｂを導く工程は、Ｂブロックと、Ｂブロックと同じ場所のＰｂフレームの第二フレームにおけるＰブロックと、の間の差分の絶対値の合計（以下、ＳＡＤｂという）を導く。予測的にエンコーディングすることを選択する工程Ａは、ＳＡＤｂがＳＡＤｂｉｄｉｒより大きい場合に、Ｂブロックと同じ場所の前記Ｐブロックに基づいてＢブロックを予測的にエンコーディングすることを選択する。予測的にエンコーディングすることを選択する工程Ｂは、ＳＡＤｂがＳＡＤｂｉｄｉｒより小さい場合に、動作ベクトルと、Ｂブロックと同じ場所のＰＢフレームのＰフレームにおけるＰブロックの予測器と、の間の差を導き、この得られた差が所定の閾値より小さい場合には、ＰＢフレームの第二フレームのＰブロックと前のＰＢフレームのＩブロック若しくはＰブロックとに基づいてＢブロックを予測的にエンコーディングすることを選択し、上記得られた差が所定の閾値より大きい場合には、前のＰＢフレームにおけるＩフレーム若しくはＰブロックに基づいてＢブロックに対する差の絶対値の合計の最小値を導き、前のＰＢフレームにおけるＩブロック若しくはＰブロックに基づいてＢブロックを予測的にエンコーディングすることを選択する。
【００１３】
【特許文献１】特開平８-３２９６９号公報
【特許文献２】特開平１０-４５５４号公報
【特許文献３】特開２００２−２８１５０８号公報
【特許文献４】特開平１０−１０８１９３号公報
【特許文献５】特開平１１−２１５５１０号公報
【特許文献６】特表２００２−５４３７１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、動画像を高速に符号化できる動画像符号化方法および動画像符号化装置を提供することにある。
【００１５】
本発明の他の目的は、動画像を高画質で符号化できる動画像符号化方法および動画像符号化装置を提供することにある。
【００１６】
また、本発明の他の目的は、符号化効率の高い動画像符号化方法および動画像符号化装置を提供することにある。
【課題を解決するための手段】
【００１７】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１８】
本発明の観点では、動画像符号化装置は、第１算出部（１０４、４０４）と第２算出部（１０５、４０５）と探索範囲決定部（１０６、４０６）とを具備し、動画像を動き補償予測符号化する動画像符号化装置である。第１算出部（１０４、４０４）は、第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する。第２算出部（１０５、４０５）は、前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する。探索範囲決定部は、前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する
本発明の前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、１フレーム前の第３画像データである。第１画像データは、参照フレームバッファ（１０２、４０２）に格納される。前記第２画像データは、符号化する画像の画素データであり、現フレームバッファ（１０１、４０１）に格納される。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００１９】
本発明の前記探索範囲決定部（１０６、４０６）は、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する。
【００２０】
本発明の前記探索範囲決定部（１０６、４０６）は、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する。
【００２１】
本発明の前記探索範囲決定部（１０６、４０６）は、前記動きベクトル合計値が予め定められた閾値を超えたときに前記探索範囲を決定する。
【００２２】
本発明の前記第１画像データは、Ｎフレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、Ｎフレーム前の第３画像データである。前記第２画像データは、符号化する画像の画素データである。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００２３】
本発明の前記探索範囲決定部（１０６、４０６）が前記探索範囲を決定しないフレームの前記探索範囲は、前記探索範囲決定部（１０６、４０６）が決定した最後の前記探索範囲が用いられる。
【００２４】
本発明の前記探索範囲決定部（１０６、４０６）は、予め定められた複数種類の探索範囲の中から選択して決定する。
【００２５】
本発明の前記動きベクトル合計値は、前記第１画像データと前記第２画像データに基づいて求められる前記動きベクトルの絶対値の合計である。
【００２６】
本発明の前記誤差合計値は、第３画像データと前記第２画像データとの差分として算出される予測誤差の１フレーム分の合計値である。
【００２７】
本発明の動画像符号化装置は、前記探索範囲決定部（１０６、４０６）が前記探索範囲を決定したフレームの第２画像データに前記探索範囲を用いて再度前記動きベクトルを生成する。
【００２８】
本発明の他の観点では、動画像符号化方法は、第１算出ステップと第２算出ステップと探索範囲決定ステップとを具備し、動画像を動き補償予測符号化する動画像符号化方法である。第１算出ステップは、第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する。第２算出ステップは、前記動きベクトルと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する。探索範囲決定ステップは、前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する。
【００２９】
本発明の前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、１フレーム前の第３画像データである。第１画像データは、参照フレームバッファ（１０２、４０２）に格納される。前記第２画像データは、符号化する画像の画素データであり、現フレームバッファ（１０１、４０１）に格納される。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００３０】
本発明の前記探索範囲決定ステップは、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する。
【００３１】
本発明の前記探索範囲決定ステップは、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する。
【００３２】
本発明の前記探索範囲決定ステップは、前記動きベクトル合計値が予め定められた閾値を超えたときに前記探索範囲を決定する。
【００３３】
本発明の前記第１画像データは、Ｎフレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、Ｎフレーム前の第３画像データである。前記第２画像データは、符号化する画像の画素データである。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００３４】
本発明の前記探索範囲決定ステップが前記探索範囲を決定しないフレームの前記探索範囲は、前記探索範囲決定ステップが決定した最後の前記探索範囲が用いられる。
【００３５】
本発明の前記探索範囲決定ステップは、予め定められた複数種類の探索範囲の中から選択して決定する。
【００３６】
本発明の前記動きベクトル合計値は、前記第１画像データと前記第２画像データに基づいて求められる前記動きベクトルの絶対値の合計である。
【００３７】
本発明の前記誤差合計値は、第３画像データと前記第２画像データとの差分として算出される予測誤差の１フレーム分の合計値である。
【００３８】
本発明の動画像符号化方法は、前記探索範囲決定ステップが前記探索範囲を決定したフレームの第２画像データに前記探索範囲を用いて再度前記動きベクトルを生成する。
【００３９】
本発明の他の観点では、動きベクトル探索装置は、第１算出部（１０４、４０４）と第２算出部（１０５、４０５）と探索範囲決定部（１０６、４０６）とを具備し、探索範囲決定部（１０６、４０６）で決定された前記探索範囲に基づいて動きベクトルを探索する。第１算出部（１０４、４０４）は、第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する。第２算出部（１０５、４０５）は、前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する。探索範囲決定部（１０６、４０６）は、前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する。
【００４０】
本発明の前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、１フレーム前の第３画像データである。第１画像データは、参照フレームバッファ（１０２、４０２）に格納される。前記第２画像データは、符号化する画像の画素データであり、現フレームバッファ（１０１、４０１）に格納される。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００４１】
本発明の前記探索範囲決定部（１０６、４０６）は、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する。
【００４２】
本発明の前記探索範囲決定部（１０６、４０６）は、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する。
【００４３】
本発明の他の観点では、動画像符号化プログラムは、第１算出処理モジュールと第２算出処理モジュールと探索範囲決定処理モジュールとを具備し、動画像を動き補償予測符号化するプログラムである。第１算出処理モジュールは、第１画像データと第２画像データに基づいて求められる動きベクトルの大きさを示す動きベクトル合計値を算出する。第２算出処理モジュールは、前記動きベクトルと前記第１画像データに基づいて求められる第３画像データと前記第２画像データとの誤差の大きさを示す誤差合計値を算出する。探索範囲決定処理モジュールは、前記動きベクトル合計値と前記誤差合計値とに基づいて前記動きベクトルの探索範囲を決定する。
【００４４】
本発明の前記第１画像データは、１フレーム前の画像に基づいて、前記動きベクトルにより動き補償された画像の画素データである。即ち、１フレーム前の第３画像データである。前記第２画像データは、符号化する画像の画素データである。前記第３画像データは、前記第１画像データに基づいて、前記動きベクトルにより動き補償される予測画像の画素データである。
【００４５】
本発明の前記探索範囲決定処理モジュールは、前記第２画像データが入力される１フレーム毎に前記探索範囲を決定する。
【００４６】
前記探索範囲決定処理モジュールは、前記第２画像データが入力されるＮフレーム毎に前記探索範囲を決定する。
【発明の効果】
【００４７】
本発明によれば、動画像を高速に符号化できる動画像符号化方法および動画像符号化装置を提供することができる。
【００４８】
また、本発明によれば、動画像を高画質で符号化できる動画像符号化方法および動画像符号化装置を提供することができる。
【００４９】
さらに、本発明によれば、符号化効率の高い動画像符号化方法および動画像符号化装置を提供することができる。
【発明を実施するための最良の形態】
【００５０】
動画像の符号化の方式として、ＭＰＥＧ符号化方式について説明する。ＭＰＥＧ符号化方式は、フレーム間予測符号化方式であり、画像データの時間的変化や画像データ間の相関性に着目し冗長度を削減するものである。即ち、前の画像データから得られる参照画像データを用いて予測画像データを作成し、これと現在の画面の画像データとの差分（予測誤差）をとり符号化する。
【００５１】
ＭＰＥＧ符号化方式は、図９に示されるように、動き補償フレーム間予測処理１１２、ＤＣＴ（離散余弦変換）処理１１４、ＶＬＣ（可変長符号化）処理１１６、多重化処理１３５で構成される。
【００５２】
入力画像は、現フレームバッファ１０１に格納された後、動き補償フレーム間予測処理１１２に入力され、動きベクトル検出部１１０で動きベクトルが検出される。前画像データは、動きベクトルにより動き補償部１２８で動き補償され、予測画像が生成される。現画像データと動き補償された前画像データ（予測画像）との差分が取られ、予測誤差が作られる。
【００５３】
その予測誤差は、ＤＣＴ（離散余弦変換）部１２１にて離散余弦変換され、量子化部１２２で量子化される。量子化された予測誤差は、ＶＬＣ（可変長符号化）部１３１にて２次元ハフマン符号が割り当てられる。動きベクトルのデータもＶＬＣ部１３２でハフマン符号が割り当てられる。符号化された両データは、多重化処理１３５にて多重化されて出力される。
【００５４】
一方、量子化された予測誤差データは、逆量子化部１２５、逆ＤＣＴ部１２６により差分データが復元される。復元された差分データと予測画像との和により新しい参照画像が生成され、参照バッファ１０２に格納される。新しい参照画像は、次のフレームの予測符号化に用いられる。
【００５５】
動きベクトルを見つける方法は、符号器の問題であり、ＭＰＥＧの規定には含まれない。しかし、動きベクトルを求める空間領域の大きさは決められており、マクロブロック（１６×１６画素の正方領域）に対して動きベクトルが与えられる。
【００５６】
このような動画像の符号化において、動きベクトルの情報量は、動き処理技術が高度になるにつれて増加し、符号化効率が悪くなる傾向にある。本発明は、この動きベクトルの検出に関する。
【００５７】
図１、図２、図６を参照して、本発明の第１の実施の形態を説明する。動画像符号化装置の動きベクトル探索部は、図１に示されるように、現フレームバッファ１０１、参照フレームバッファ１０２、動き探索処理部１０３、動きベクトル合計値算出処理部１０４、予測誤差合計値算出処理部１０５、探索範囲決定処理部１０６を備える。
【００５８】
現フレームバッファ１０１、参照フレームバッファ１０２に格納される画像データは、動き探索処理部１０３に送られる。動き探索処理部１０３は、探索範囲決定処理部１０６から出力される探索範囲に基づいて動きベクトルを探索し、出力する。出力された動きベクトルは、動きベクトル合計値算出処理部１０４、予測誤差合計値算出処理部１０５に入力される。動きベクトル合計値算出処理部１０４の出力と予測誤差合計値算出処理部１０５の出力は、探索範囲決定処理部１０６に入力される。
【００５９】
現フレームバッファ１０１は、現画像のデータ、即ち符号化中のフレームの画素データを格納する。参照フレームバッファ１０２は、予測画像データと差分データから生成された参照フレームの画素データを格納する。動き探索処理部１０３は、探索範囲決定処理部１０６で決定された探索範囲に基づいて現フレームバッファ１０１の画素データと参照フレームバッファ１０２の画素データとをブロックに分割して、ブロック毎の相関が最も大きくなる場所を探す動きベクトル探索処理を行う。動きベクトル合計値算出処理部１０４は、動き探索処理部１０３が出力する１フレーム分の動きベクトルの絶対値の合計を計算する。予測誤差合計値算出処理部１０５は、予測誤差の合計値を求める。予測誤差は、動き探索処理部１０３が出力する動きベクトルから生成される予測画像と現フレームの画像との差分として得られる。探索範囲決定処理部１０６は、動き探索処理部１０３が動きベクトルを算出するための探索範囲を決定する。
【００６０】
本実施の形態では、図６に示されるように、１フレーム分の動きベクトルの絶対値の合計と、１フレームの予測誤差の合計とに基づいて次フレームの探索範囲を決定し、この探索範囲を用いて次のフレームの動きベクトル探索処理を行う。
【００６１】
図２のフローチャートを参照して動作を説明する。水平方向の探索範囲をＸ、垂直方向の探索範囲をＹとすると、動きベクトルの探索は、水平方向に−Ｘから＋Ｘ（またはＸ−１）画素、垂直方向に−Ｙから＋Ｙ（またはＹ−１）画素の範囲内でずらして、最も差分が小さくなる位置を求めることになる。したがって、このような探索範囲を（±Ｘ、±Ｙ）と表わす。
【００６２】
探索範囲は、（±Ｘ１、±Ｙ１）、（±Ｘ２、±Ｙ２）、（±Ｘ３、±Ｙ３）の３種類とし、この中から１つが選択されるものとする。ここで、Ｘ１＜Ｘ２＜Ｘ３、かつ、Ｙ１＜Ｙ２＜Ｙ３とする。つまり、（±Ｘ１、±Ｙ１）は狭い探索範囲、（±Ｘ３、±Ｙ３）は広い探索範囲、（±Ｘ２、±Ｙ２）はその中間の探索範囲を表すことになる。
【００６３】
また、探索範囲を決定するための閾値のうち、動きベクトルの合計値と比較するための閾値をＭＶＴｈ１、ＭＶＴｈ２（ＭＶＴｈ２＜ＭＶＴｈ１）とする。予測誤差合計値と比較するための閾値をＳＡＤＴｈ１、ＳＡＤＴｈ２（ＳＡＤＴｈ２＜ＳＡＤＴｈ１）とする。
【００６４】
まず、探索範囲の初期値を設定する。水平方向の初期値をＸ０、垂直方向の初期値をＹ０、即ち探索範囲（±Ｘ０、±Ｙ０）を初期値とする（ステップＡ１）。初期値Ｘ０とＹ０はあらかじめ設定されているものとする。
【００６５】
次に、現フレームバッファ１０１の先頭のブロックにポインタを合わせる（ステップＡ２）。
【００６６】
動きベクトルの絶対値の合計値と予測誤差の合計値を求めるため、合計値を格納する変数を初期化する。即ち、動きベクトルの絶対値の合計値を格納する変数ＳｕｍＭＶと予測誤差の合計値を格納する変数ＳｕｍＳＡＤにゼロを代入する（ステップＡ３）。
【００６７】
次に、探索範囲を（±Ｘ、±Ｙ）画素として動きベクトル探索をおこなう（ステップＡ４）。即ち、参照フレームバッファ１０２に格納されるマクロブロック単位のデータを探索範囲内でずらして、最も差分が小さくなる位置を求める。
【００６８】
ステップＡ４で得られた動きベクトルの水平方向成分ＭＶｘ、垂直方向成分ＭＶｙの絶対値を動きベクトル絶対値合計値ＳｕｍＭＶに加算する（ステップＡ５）。また、動きベクトルから生成される予測画像と現フレームの画像との差分として得られる予測誤差の絶対値和ＳＡＤを予測誤差合計値ＳｕｍＳＡＤに加算する（ステップＡ６）。
【００６９】
フレーム内のすべてのブロックについて動きベクトル探索処理が完了したかを調べる（ステップＡ７）。
【００７０】
まだ動きベクトル探索をおこなっていないブロックがある場合（ステップＡ７−ＮＯ）、次のブロックにポインタを移動させ（ステップＡ８）、ステップＡ４にもどり動きベクトル探索処理を継続する。
【００７１】
すべてのブロックの処理が完了していれば（ステップＡ７−ＹＥＳ）、そのフレームの動きベクトル探索処理は終了となり、映像の最後のフレームまで処理が完了したかを調べる（ステップＡ９）。
【００７２】
映像の最後まで処理が完了していたら（ステップＡ９−ＹＥＳ）、動作は終了となる。映像がまだ有る場合は（ステップＡ９−ＮＯ）、次フレームの映像の探索範囲決定の処理を行う。即ち、探索結果をもとに次フレームの動きベクトル探索のための探索範囲を決定する。
【００７３】
予測誤差合計値ＳｕｍＳＡＤと閾値ＳＡＤＴｈ１とを比較する（ステップＡ１０）。予測誤差合計値ＳｕｍＳＡＤのほうが大きい場合（ステップＡ１０−ＹＥＳ）、現在の探索範囲では正しい動きベクトルが検出できていない可能性が高いので広い探索範囲を選択する（ステップＡ１１）。即ち、Ｘ＝Ｘ３、Ｙ＝Ｙ３とする。
【００７４】
予測誤差合計値ＳｕｍＳＡＤが閾値ＳＡＤＴｈ１より大きくない場合（ステップＡ１０−ＮＯ）、予測誤差合計値ＳｕｍＳＡＤと閾値ＳＡＤＴｈ２とを比較し、同時に動きベクトル絶対値合計値ＳｕｍＭＶと閾値ＭＶＴｈ２とを比較する（ステップＡ１２）。
【００７５】
ＳｕｍＳＡＤ＜ＳＡＤＴｈ２、かつ、ＳｕｍＭＶ＜ＭＶＴｈ２である場合（ステップＡ１２−ＹＥＳ）、映像中の動きが小さく、かつ正しい動きベクトルが検出できている可能性が高いので狭い探索範囲を選択する（ステップＡ１３）。即ち、Ｘ＝Ｘ１、Ｙ＝Ｙ１とする。
【００７６】
この条件にあてはまらない場合（ステップＡ１２−ＮＯ）、現在狭い探索範囲が選択されていて、かつ予測誤差合計値ＳｕｍＳＡＤが２閾値間にあるか判定を行う（ステップＡ１４）。
【００７７】
現在狭い探索範囲が選択されていて、かつ、ＳＡＤＴｈ２＜ＳｕｍＳＡＤ＜ＳＡＤＴｈ１である場合（ステップＡ１４−ＹＥＳ）、狭い探索範囲では正しい動きベクトルが検出できない可能性が高いので、中くらいの探索範囲を選択する（ステップＡ１５）。即ち、Ｘ＝Ｘ２、Ｙ＝Ｙ２とする。
【００７８】
この条件にあてはまらない場合（ステップＡ１４−ＮＯ）、現在広い探索範囲が選択されていて、かつ予測誤差合計ＳｕｍＳＡＤが２閾値間にあり、かつ動きベクトル絶対値合計値ＳｕｍＭＶが閾値ＭＶＴｈ１より小さいか判定をおこなう（ステップＡ１６）。
【００７９】
現在広い探索範囲が選択されていて、かつ、ＳＡＤＴｈ２＜ＳｕｍＳＡＤ＜ＳＡＤＴｈ１、かつ、ＳｕｍＭＶ＜ＭＶＴｈ１である場合（ステップＡ１６−ＹＥＳ）、広い探索範囲でなくても正しい動きベクトルが検出できる可能性が高いが、映像の動きがやや大きいと判断できるので、このときも中くらいの探索範囲を選択する。即ち、Ｘ＝Ｘ２、Ｙ＝Ｙ２とする（ステップＡ１５）。
【００８０】
上記のいずれの条件にも当てはまらない場合（ステップＡ１６−ＮＯ）、探索範囲の変更をせずに、現在選択されている探索範囲をそのまま使用する。
【００８１】
探索範囲が選択されると（ステップＡ１１、ステップＡ１３、ステップＡ１５）、次の映像フレームの処理を行うため、ステップＡ２に戻る。
【００８２】
具体的な数値を用いて説明する。あらかじめ用意された探索範囲を大（±６４、±６４）、中（±３２、±３２）、小（±１６、±１６）とする。予測誤差用の閾値をＳＡＤＴｈ１＝２００００００、ＳＡＤＴｈ２＝１００００００とする。動きベクトル用の閾値をＭＶＴｈ１＝１５００００、ＭＶＴｈ２＝１０００００とする。
【００８３】
ある１フレームの動きベクトル探索が終了した時点で、予測誤差の合計値予測誤差合計値ＳｕｍＳＡＤが２５０００００であった場合、図２のフローチャートに示した判定基準から、次のフレームの探索範囲は（±６４、±６４）が選択されることになる。
【００８４】
予測誤差の合計値予測誤差合計値ＳｕｍＳＡＤが５０００００で動きベクトル絶対値の合計値動きベクトル絶対値合計値ＳｕｍＭＶが８００００であった場合は、次のフレームの探索範囲は（±１６、±１６）が選択されることになる。１フレーム分の予測誤差の合計値と動きベクトル絶対値の合計値から、適切な探索範囲が決定される。
【００８５】
このようにして、順次動きベクトル絶対値合計値と予測誤差合計値とに基づいて次のフレームの動きベクトルの探索範囲を決定していく。探索範囲がその時点付近の映像の動きに適するように決定されるため、高画質で動画の符号化が可能となる。また、不必要な探索範囲を狭めるため、探索処理の演算量を大幅に削減でき、処理は高速化される。
【００８６】
図２に示される動作は、処理中のフレームの探索範囲を考慮した処理を行っているが、動きベクトル絶対値合計値と予測誤差合計値のみで探索範囲を決定してもよい。動きベクトル絶対値合計値ＳｕｍＭＶは、そのフレーム映像の全体の動きを表わすものとすると、閾値ＭＶＴｈ１を超える大きな値のとき、映像の広い範囲が動いている。そのため、広い探索範囲を選択する。閾値ＭＶＴｈ２に満たないときは、映像がそれほど動いていないとみることができ、狭い探索範囲を選択する。また、予測誤差合計値ＳｕｍＳＡＤは、正しい動きベクトルが検出できているかを表わすものとすると、閾値ＳＡＤＴｈ１を超える大きな値のとき、正しい動きベクトルが探索できていないとみることができ、広い探索範囲を選択する。閾値ＳＡＤＴｈ２に満たない場合は、正しい動きベクトルが検出できているとして探索範囲を変えないか、あるいは狭い探索範囲にする。その他の場合は、探索範囲を変えない。このように判定することもできる。
【００８７】
また、本実施の形態では、大中小３種類の探索範囲を用意し、そのうちの一つを選択して動きベクトル探索を行っているが、あらかじめ用意する探索範囲の種類は任意である。探索範囲の種類が３種類以外の場合は、探索範囲の種類に応じて予測誤差の合計値用、動きベクトルの合計値用の閾値の種類も変わることになる。
【００８８】
このように、本実施の形態では、映像に含まれる動きの大きさに応じて適応的に探索範囲の大きさを変えて動きベクトル探索を実行できる。動きの小さい映像では狭い探索範囲で動きベクトル探索をおこなうことにより、実際の動きとは異なる大きなベクトルを検出する確率が下がり、動きベクトルの符号化効率が向上する。また、狭い探索範囲を採用することにより、より少ない演算量で動きベクトル探索を実行できる。
【００８９】
一方、動きの大きい映像については広い探索範囲で動きベクトル探索がおこなわれるため、正しい動きベクトルが検出されるので符号化効率が向上し、符号化された映像の画質が向上する。
【００９０】
次に、図３、図７を参照して第２の実施の形態を説明する。第２の実施の形態では図７に示されるように、１フレーム分の動きベクトルの絶対値の合計と、１フレームの予測誤差の合計をもとに任意のフレーム分離れたフレームの探索範囲を決定する。即ち、探索範囲の更新が任意のフレームおきに行われる。そのフレームまでの間は現在の探索範囲をそのまま用いて動きベクトル探索処理をおこなう。
【００９１】
本実施の形態においても３種類の探索範囲から１つが選択されるものとする。探索範囲は、（±Ｘ１、±Ｙ１）、（±Ｘ２、±Ｙ２）、（±Ｘ３、±Ｙ３）とし、Ｘ１＜Ｘ２＜Ｘ３かつＹ１＜Ｙ２＜Ｙ３とする。つまり、（±Ｘ１、±Ｙ１）は狭い探索範囲、（±Ｘ３、±Ｙ３）は広い探索範囲、（±Ｘ２、±Ｙ２）はその中間の探索範囲を表すことになる。
【００９２】
また、探索範囲を決定するための閾値のうち、動きベクトルの合計値と比較するための閾値をＭＶＴｈ１、ＭＶＴｈ２（ＭＶＴｈ２＜ＭＶＴｈ１）とする。予測誤差合計値と比較するための閾値をＳＡＤＴｈ１、ＳＡＤＴｈ２（ＳＡＤＴｈ２＜ＳＡＤＴｈ１）とする。
【００９３】
まず、探索範囲の初期値を設定する。水平方向の初期値をＸ０、垂直方向の初期値をＹ０、即ち探索範囲（±Ｘ０、±Ｙ０）を初期値とする（ステップＢ１）。初期値Ｘ０とＹ０はあらかじめ設定されているものとする。
【００９４】
次に、現フレームバッファ２０１の先頭のブロックにポインタを合わせる（ステップＢ２）。
【００９５】
動きベクトルの絶対値の合計値と予測誤差の合計値を求めるため、合計値を格納する変数を初期化する。即ち、動きベクトルの絶対値の合計を格納する変数ＳｕｍＭＶと予測誤差の合計値を格納する変数ＳｕｍＳＡＤにゼロを代入する（ステップＢ３）。
【００９６】
次に、探索範囲を（±Ｘ、±Ｙ）画素として動きベクトル探索をおこなう（ステップＢ４）。即ち、参照フレームバッファ１０２に格納されるマクロブロック単位のデータを探索範囲内でずらして、最も差分が小さくなる位置を求める。
【００９７】
ステップＢ４で得られた動きベクトルの水平方向成分ＭＶｘ、垂直方向成分ＭＶｙの絶対値を動きベクトル絶対値合計値ＳｕｍＭＶに加算する（ステップＢ５）。また、動きベクトルから生成される予測画像と現フレームの画像との差分として得られる予測誤差の絶対値和ＳＡＤを予測誤差合計値ＳｕｍＳＡＤに加算する（ステップＢ６）。
【００９８】
フレーム内のすべてのブロックについて動きベクトル探索処理が完了したかを調べる（ステップＢ７）。
【００９９】
まだ動きベクトル探索をおこなっていないブロックがある場合（ステップＢ７−ＮＯ）、次のブロックにポインタを移動させ（ステップＢ８）、ステップＢ４にもどり動きベクトル探索処理を継続する。
【０１００】
すべてのブロックの処理が完了していれば（ステップＢ７−ＹＥＳ）、そのフレームの動きベクトル探索処理は終了となり、映像の最後のフレームまで処理が完了したかを調べる（ステップＢ９）。
【０１０１】
映像の最後まで処理が完了していたら（ステップＢ９−ＹＥＳ）、動作は終了となる。映像がまだ有る場合は（ステップＢ９−ＮＯ）、ステップＢ１０に進む。
【０１０２】
次に前回探索範囲の見直しをおこなったフレームと、現在のフレームの間隔を調べる（ステップＢ１０）。フレーム間隔がＮフレームであれば、探索範囲の更新をおこなうためにステップＢ１１に進む。フレーム間隔がＮフレームに満たない場合は、探索範囲の更新はせずに次のフレームの動きベクトル探索をおこなうためにステップＢ２に進む。ここでＮはあらかじめ定められた定数であるとする。
【０１０３】
ステップＢ１１以降で、探索結果をもとに次のフレームの探索のための探索範囲を決定する。
【０１０４】
予測誤差合計値ＳｕｍＳＡＤと閾値ＳＡＤＴｈ１とを比較する（ステップＢ１１）。予測誤差合計値ＳｕｍＳＡＤのほうが大きい場合（ステップＢ１１−ＹＥＳ）、現在の探索範囲では正しい動きベクトルが検出できていない可能性が高いので広い探索範囲を選択する（ステップＢ１２）。即ち、Ｘ＝Ｘ３、Ｙ＝Ｙ３とする。
【０１０５】
予測誤差合計値ＳｕｍＳＡＤが閾値ＳＡＤＴｈ１より大きくない場合（ステップＢ１１−ＮＯ）、予測誤差合計値ＳｕｍＳＡＤと閾値ＳＡＤＴｈ２とを比較し、同時に動きベクトル絶対値合計値ＳｕｍＭＶと閾値ＭＶＴｈ２とを比較する（ステップＢ１３）。
【０１０６】
ＳｕｍＳＡＤ＜ＳＡＤＴｈ２、かつ、ＳｕｍＭＶ＜ＭＶＴｈ２である場合（ステップＢ１３−ＹＥＳ）、映像中の動きが小さく、かつ正しい動きベクトルが検出できている可能性が高いので狭い探索範囲を選択する（ステップＢ１４）。即ち、Ｘ＝Ｘ１、Ｙ＝Ｙ１とする。
【０１０７】
この条件にあてはまらない場合（ステップＢ１３−ＮＯ）、現在狭い探索範囲が選択されていて、かつ予測誤差合計値ＳｕｍＳＡＤが２閾値間にあるか判定を行う（ステップＢ１５）。
【０１０８】
現在狭い探索範囲が選択されていて、かつＳＡＤＴｈ２＜ＳｕｍＳＡＤ＜ＳＡＤＴｈ１である場合（ステップＢ１５−ＹＥＳ）、狭い探索範囲では正しい動きベクトルが検出できない可能性が高いので、中くらいの探索範囲を選択する（ステップＢ１６）。即ち、Ｘ＝Ｘ２、Ｙ＝Ｙ２とする。
【０１０９】
この条件にあてはまらない場合（ステップＢ１５−ＮＯ）、現在広い探索範囲が選択されていて、かつ予測誤差合計ＳｕｍＳＡＤが２閾値間にあり、かつ動きベクトル絶対値合計値ＳｕｍＭＶが閾値ＭＶＴｈ１より小さいかの判定をおこなう（ステップＢ１７）。
【０１１０】
現在広い探索範囲が選択されていて、かつ、ＳＡＤＴｈ２＜ＳｕｍＳＡＤ＜ＳＡＤＴｈ１、かつ、ＳｕｍＭＶ＜ＭＶＴｈ１である場合（ステップＢ１７−ＹＥＳ）、広い探索範囲でなくても正しい動きベクトルが検出できる可能性が高いが、映像の動きがやや大きいと判断できるので、このときも中くらいの探索範囲を選択する。即ち、Ｘ＝Ｘ２、Ｙ＝Ｙ２とする（ステップＢ１６）。
【０１１１】
上記いずれの条件にも当てはまらない場合（ステップＢ１７−ＮＯ）は、探索範囲の変更をせずに、現在選択されている探索範囲をそのまま使用する。
【０１１２】
探索範囲が選択されると（ステップＢ１２、ステップＢ１４、ステップＢ１６）、次の映像フレームの動きベクトル探索を継続するためにステップＢ２に戻る。
【０１１３】
このようにして、順次動きベクトル絶対値合計値と予測誤差合計値とに基づいてＮフレーム先の動きベクトルの探索範囲を決定していく。
【０１１４】
上記で示された動作は、処理中のフレームの探索範囲を考慮した処理を行っているが、第１の実施の形態で示したように、動きベクトル絶対値合計値と予測誤差合計値のみで探索範囲を決定してもよい。
【０１１５】
また、本実施の形態では、大中小３種類の探索範囲を用意して、そのうちの一つを選択して動きベクトル探索を行っているが、あらかじめ用意する探索範囲の種類は任意である。探索範囲の種類が３種類以外の場合は、探索範囲の種類に応じて予測誤差の合計値用、動きベクトルの合計値用の閾値の種類も変わることになる。
【０１１６】
このように、本実施の形態では、探索範囲の選択をＮフレームごとに行う。一般に隣接するフレーム間においては動きの大小に関して高い相関があることが知られている。そのためＮフレームごとに探索範囲の選択をおこなっても、Ｎがある程度小さい値、即ち時間的に近い映像であれば、動きベクトル探索の探索精度低下は発生しない。このように１フレームごとではなく、Ｎフレームごとに探索範囲の選択を行うことにより、より少ない演算量で適切な探索範囲を選択することが可能となる。
【０１１７】
次に、本発明の第３の実施の形態について、図４、図８を参照して説明する。第３の実施の形態では、図８に示すように、１フレーム分の動きベクトルの絶対値の合計と、１フレームの予測誤差の合計をもとに探索範囲を決定し、この探索範囲を用いて、現在処理をおこなったフレームの動きベクトル探索を再度実行する。
【０１１８】
図４に第３の実施の形態の動画像符号化装置の動きベクトル探索部の構成を示す。動きベクトル探索部は、現フレームバッファ４０１と、参照フレームバッファ４０２と、動き探索処理部４０３と、動きベクトル合計値算出処理部４０４と、予測誤差合計値算出処理部４０５と、探索範囲決定処理部４０６と、探索範囲格納メモリ４０７と、映像符号化処理部４０８を備える。
【０１１９】
現フレームバッファ４０１は、符号化中のフレームのデータを格納する。参照フレームバッファ４０２は、参照フレームを格納する。動き探索処理部４０３は、動きベクトル探索処理をおこなう。動きベクトル合計値算出処理部４０４は、１フレーム分の動きベクトルの絶対値合計を計算する。予測誤差合計値算出処理部４０５は、求めた動きベクトルから生成される予測画像と現フレームの画像との差分として得られる予測誤差の１フレーム分の合計値を求める。探索範囲決定処理部４０６は、探索範囲を決定する。探索範囲格納メモリ４０７は、決定した探索範囲を記憶する。映像符号化処理部４０８は、決定した探索範囲を用いて動きベクトル探索および映像符号化を行う。
【０１２０】
本実施の形態では、決定した各フレームにおける探索範囲をすべて記憶しておき、改めてこの探索範囲を用いて各フレームの動きベクトル探索および符号化をおこなう。本実施の形態は、探索範囲のみを求める１回目の動きベクトル探索処理と、実際に符号化をおこなう２回目の動きベクトル探索処理との２段階の処理から実現される。また、各フレームの探索範囲を求めるごとに、その都度そのフレームを再度動き探索および符号化することでも同様の処理が実現できる。
【０１２１】
本実施の形態では、あるフレームの動きの大きさに基づいて求めた探索範囲を、そのフレーム自体の動きベクトル探索のために用いるので、フレーム間に動きの相関が小さい場合でも精度の高い動きベクトル探索が実現できる。
【０１２２】
第４の実施の形態では、上述した第１の実施の形態から第３の実施の形態に示される動きベクトル探索装置をコンピュータシステムにより実行する。図５は、第４の実施の形態におけるコンピュータシステムを示すブロック図である。
【０１２３】
このコンピュータシステムには、プログラム制御プロセッサ５０１が装備されている。プログラム制御プロセッサ５０１には、現フレームバッファ５１１および参照フレームバッファ５１２の他に、必要なプログラムを格納したプログラムメモリ５０２と探索範囲格納メモリ５１３が接続されている。
【０１２４】
プログラムメモリ５０２に格納されるプログラムモジュールは、メインプログラムの他に、動き探索処理５１４、探索範囲決定処理５１５、動きベクトル合計値算出処理５１６、予測誤差合計値算出処理５１７で構成される。メインプログラムは、動きベクトル探索を実行する主プログラムである。動き探索処理５１４、探索範囲決定処理５１５、動きベクトル合計値算出処理５１６、予測誤差合計値算出処理５１７のプログラムモジュールは、上述した動き探索処理部、探索範囲決定処理部、動きベクトル合計値算出処理部、予測誤差合計値算出処理部をそれぞれ機能的に実現する。メインプログラムおよび各機能モジュールをプログラム制御プロセッサ５０１で実行することで、本発明による動きベクトル探索が実行される。
【０１２５】
本発明の動きベクトル探索の方法は、符号化装置に適用する以外に、映像中のあるフレーム中の任意の画素群が他のフレーム中のどの部分に存在するかを調べるといった用途にも適用できる。
【０１２６】
このように、動きの小さな映像では狭い探索範囲で探索を行うため、少ない演算量で動きベクトル探索が実行できる。また、フレームごとに探索範囲の決定をおこなうので、探索範囲決定に要する演算量が少なくなり、高速に動きベクトル探索ができる。
【０１２７】
また、動きが大きい映像では広い探索範囲で探索を行うため、正しい動きベクトルを検出することが可能となり、符号化効率が向上する。動きベクトルを誤検出しにくいため、高画質に符号化ができる。
【０１２８】
さらに、最適な探索範囲で動きベクトル探索が実行されるため、実際の映像の動きと異なる動きベクトルが検出される確率が小さくなる。動きベクトルの符号化効率が向上する。
【０１２９】
以上実施の形態を説明したが、この動きベクトル検出方法を例えばＭＰＥＧアルゴリズムに基づく動画像圧縮装置に適用してもよいが、勿論これには限定されない。動き補償を用いるものであれば全ての装置に適用可能であることは言うまでもない。
【０１３０】
また、上記動きベクトルを検出する装置を構成する回路や部材の数、種類などは前述した実施形態に限られないことは言うまでもなく、ソフトウェア（例えば、Ｃ言語）により実現するようにしてもよい。
【図面の簡単な説明】
【０１３１】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示すフローチャートである。
【図３】本発明の第２の実施の形態の動作を示すフローチャートである。
【図４】本発明の第３の実施の形態の構成を示すブロック図である。
【図５】本発明による動きベクトル探索を実行するコンピュータシステムを示すブロック図である。
【図６】本発明の第１の発明の形態の動作を説明する図である。
【図７】本発明の第２の発明の形態の動作を説明する図である。
【図８】本発明の第３の発明の形態の動作を説明する図である。
【図９】ＭＰＥＧ符号化方式の処理構成を示す図である。
【符号の説明】
【０１３２】
１０１  現フレームバッファ
１０２  参照フレームバッファ
１０３  動き探索処理部
１０４  動きベクトル合計値算出処理部
１０５  予測誤差合計値算出処理部
１０６  探索範囲決定処理部
１１０  動きベクトル検出部
１１２  動き補償フレーム間予測処理
１１４  ＤＣＴ（離散余弦変換）処理
１１６  ＶＬＣ（可変長符号化）処理
１２１  ＤＣＴ部
１２２  量子化部
１２５  逆量子化部
１２６  逆ＤＣＴ部
１２８  動き補償部
１３１  ＶＬＣ部
１３２  ＶＬＣ部
１３５  多重化処理
４０１  現フレームバッファ
４０２  参照フレームバッファ
４０３  動き探索処理部
４０４  動きベクトル合計値算出処理部
４０５  予測誤差合計値算出処理部
４０６  探索範囲決定処理部
４０７  探索範囲格納メモリ
４０８  映像符号化処理部
５０１  プログラム制御プロセッサ
５０２  プログラムメモリ
５１１  現フレームバッファ
５１２  参照フレームバッファ
５１３  探索範囲格納メモリ
５１４  動き探索処理
５１５  探索範囲決定処理
５１６  動きベクトル合計値算出処理
５１７  予測誤差合計値算出処理
【図１】
2005244542.tif 000003
【図２】
2005244542.tif 000004
【図３】
2005244542.tif 000005
【図４】
2005244542.tif 000006
【図５】
2005244542.tif 000007
【図６】
2005244542.tif 000008
【図７】
2005244542.tif 000009
【図８】
2005244542.tif 000010
【図９】
2005244542.tif 000011