(57)【要約】【課題】１画素データを８ビットで演算する回路に小規模の変更を加えるだけで、１画素データを８ビットとそれ以上のビットの両方で演算でき、低コストで開発できる動きベクトル検出装置を提供することを目的とする。【解決手段】画像を複数ブロックに分割し予測残差から動きベクトルを検出する動きベクトル検出装置であって、画像の画素データのうち上位ビットデータを記憶する上位データ用フレームメモリと、画像の画素データのうち下位ビットデータを記憶する下位データ用フレームメモリと、上位データ用フレームメモリから取出した画像から上位ビットの画素データの予測残差を算出する動きベクトル探索部と、上位ビットの画素データの予測残差に基づき下位ビット画素データを用い予測残差の演算を行う追加演算部とを備え、追加演算部で算出した予測残差に基づき動きベクトルを検出することを特徴とする。【選択図】  図２
2012054750.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象画像を複数のブロックに分割し、該ブロック毎に符号化対象画像と参照画像とから算出した予測残差に基づいて動きベクトルを検出する動きベクトル検出装置であって、
符号化対象画像及び参照画像の画素データのうち上位ビットのデータを記憶する上位データ用フレームメモリと、
符号化対象画像及び参照画像の画素データのうち下位ビットのデータを記憶する下位データ用フレームメモリと、
前記上位データ用フレームメモリから取り出した前記符号化対象画像と前記参照画像とから上位ビットの画素データの予測残差を算出する動きベクトル探索部と、
前記上位ビットの画素データの予測残差に基づき前記下位ビットの画素データを用いて予測残差の演算を行う追加演算部とを備え、
前記追加演算部で算出した予測残差の結果に基づいて動きベクトルを検出することを特徴とする動きベクトル検出装置。
【請求項２】
前記追加演算部は、
前記動きベクトル探索部で算出された上位ビットの画素データの予測残差が前記動きベクトル探索部ですでに算出された予測残差のうち最小の予測残差と同値であれば、前記下位データ用フレームメモリから取り出した前記符号化対象画像と前記参照画像とから下位ビットの画素データの予測残差を算出することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記追加演算部は、
前記動きベクトル探索部で算出した前記上位ビットの画素データによる予測残差に基づいて検出された動きベクトルの周囲の領域について、前記上位ビットと前記下位ビットとを合わせた全ビットの画素データの予測残差を算出することを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項４】
前記上位ビットは８ビットであることを特徴とする請求項１〜３のいずれかに記載の動きベクトル検出装置。
【請求項５】
符号化対象画像を複数のブロックに分割し、該ブロック毎に符号化対象画像と参照画像とから算出した予測残差に基づいて動きベクトルを検出する動きベクトル検出方法であって、
符号化対象画像の各画素データと参照画像の各画素データとをそれぞれ上位ビットのデータと下位ビットのデータとに分けて記憶する画素データ記憶ステップと、
前記上位ビットの画素データの予測残差を算出する上位データ予測残差算出ステップと、
前記上位データ予測残差算出ステップで算出した予測残差に基き前記下位ビットの画素データを用いて予測残差の演算を行う追加演算ステップとを有し、
前記追加演算ステップで算出された予測残差の結果に基づいて動きベクトルを検出することを特徴とする動きベクトル検出方法。
【請求項６】
前記追加演算ステップは、
前記上位ビットの画素データの予測残差が前記動きベクトル探索部ですでに算出された予測残差のうち最小の予測残差と同値であれば、下位ビットの画素データによる予測残差を算出することを特徴とする請求項５に記載の動きベクトル検出方法。
【請求項７】
前記追加演算ステップは、
前記上位ビットの画素データによる予測残差に基づいて検出された動きベクトルの周囲の領域について、前記上位ビットと前記下位ビットとを合わせた全ビットの画素データの予測残差を算出することを特徴とする請求項５に記載の動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、動画像を高能率符号化してディジタル伝送するシステムなどに適用され、所定の水平画増と所定の垂直ライン数に分割されている動画像の各マクロブロック毎に、動きベクトルを検出する動きベクトル検出装置及び動きベクトル検出方法に関するものである。
【背景技術】
【０００２】
動画像を圧縮して伝送する技術として動き補償予測を用いるものがあり、動き補償予測を行うためには、動きベクトルの検出が必要となる。動きベクトルを検出する代表的な方法としては、例えば、ブロックマッチング法と呼ばれる方法がある。ブロックマッチング法は、例えば、現画像をブロック（１６画素×１６ライン、１６画素×８ライン等）に分割し、差分絶対値総和等の予測誤差評価基準を用いて、当該ブロックに対して、予測誤差評価基準値が最も小さくなるブロックを参照画像から求めることで、当該ブロックの動きベクトルを算出する方法である。
【０００３】
図１を用いてブロックマッチング法を用いた動きベクトル算出方法の概要について説明する。図１は、現画像フレーム１００におけるマクロブロック１０１と、参照画像フレーム１０２における探索範囲について図示している。なお、現画像フレーム１００と参照画像フレーム１０２との間は、例えば1/30秒の時間差があるとしている。マクロブロック１０１は、現画像フレーム１００を複数のブロックに分割したうちの１つを表し、探索点１０３は、参照画像フレーム１０２の探索範囲内における動きベクトル探索点に該当する位置を表し、マクロブロック１０１のサイズと同一である。探索範囲内において探索点１０３を画素単位で移動させ、順次マクロブロック１０１と探索点１０３の類似度を表す予測残差を演算し、このような演算処理を全探索範囲内において実施し、最も予測残差が小さくなった探索点の位置から動きベクトルが求まる。
【０００４】
上記したブロックマッチング法等を用いた動きベクトル探索においては、演算を行う際には、フレームメモリに画素データを１画素単位に格納しておき、これを順次読み出すということが一般的である。例えば下記特許文献１においては、シンクロナスダイナミックメモリ（ＳＤＲＡＭ）の別バンクに水平方向の隣接画素同士でインターリーブを掛けて格納する方法が開示されており、１画素データは、１アドレスに格納されている。
【０００５】
このように、１画素データは８ビットで表されることが多いことと、メモリデバイスのワード構成が８ビットの倍数とされる場合が多いことから、既存の回路の多くは１画素データを８ビットで扱うよう構成されていることが多かった。しかし、近年ではデバイスの高性能化に伴い１画素を８ビットよりも多くのビットで表現することも増えてきており、その場合においても、例えば１画素が１０ビットであれば、例えば１６ビット幅のＳＤＲＡＭを使用する場合、連続する８画素を１０ビットと８画素を掛けた８０ビットとしてパッキングし、これをＳＤＲＡＭの５アドレス（１６ビットと５アドレスを掛けた８０ビット）に格納するような方法で拡張している。
【０００６】
また、下記特許文献２では、画像復号方法において８ビットから１０ビットへの拡張を行う例が記載されており、この例では、１画素データを上位の８ビットと下位の２ビットに分けてフレームメモリに別々に格納しているが、１画素の１０ビット化を行うのは直交逆変換処理と逆量子化処理においてであり、動き補償処理は上位側８ビットのみを用いて行っている。このように、従来の符号化における１画素８ビット以上の拡張処理については、そのほとんどが直交変換処理と量子化処理を対象としており、動き補償は８ビットで行うか、もしくは、フレームメモリへの格納から演算まで１０ビット単位で行うことのみを前提にして構成するかのどちらかであった。なお、上記した８ビット、１０ビットというビット数は一例であり、このビット数に限定されるものではない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許３１１９９９４号公報
【特許文献２】特開平２００９−１７１１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記したように、近年では、高性能品向けの、１画素データを８ビットよりも多くのビットで演算する回路に対する需要が高まってきている。その一方で、低価格品向けの、従来の８ビットで演算する回路についても需要はある。しかしながら、これら回路を別々に作るとコストが掛かってしまうという問題があった。
【０００９】
本発明は、上記のような問題点を解決するためになされたもので、従来の１画素データを８ビットで演算する回路に小規模の変更を加えるだけで、１画素データを８ビットとそれよりも多くのビットの両方で演算できる動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る動きベクトル検出装置は、符号化対象画像を複数のブロックに分割し、該ブロック毎に符号化対象画像と参照画像とから算出した予測残差に基づいて動きベクトルを検出する動きベクトル検出装置であって、符号化対象画像及び参照画像の画素データのうち上位ビットのデータを記憶する上位データ用フレームメモリと、符号化対象画像及び参照画像の画素データのうち下位ビットのデータを記憶する下位データ用フレームメモリと、前記上位データ用フレームメモリから取り出した前記符号化対象画像と前記参照画像とから上位ビットの画素データの予測残差を算出する動きベクトル探索部と、前記上位ビットの画素データの予測残差に基づき前記下位ビットの画素データを用いて予測残差の演算を行う追加演算部とを備え、前記追加演算部で算出した予測残差の結果に基づいて動きベクトルを検出することを特徴とする。
【発明の効果】
【００１１】
本発明の動きベクトル検出装置によれば、既存回路としての上位側回路に、下位側回路を追加することにより、容易な構成で、画素データのビット数を拡張した動きベクトル検出を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】マクロブロックと探索範囲の画面イメージ図を示す。
【図２】本発明の実施の形態１に係る動きベクトル検出装置の構成図を示す。
【図３】フレームメモリへの画素データ格納の例を示す。
【図４】本発明の実施の形態１に係る動きベクトル検出のフローチャートを示す。
【図５】本発明の実施の形態２に係る動きベクトル検出装置の構成図を示す。
【図６】近傍画素領域の一例を示す。
【図７】本発明の実施の形態２に係る動きベクトル検出のフローチャートを示す。
【発明を実施するための形態】
【００１３】
実施の形態１．
本発明の実施の形態１に係る動きベクトル検出装置の構成図を図１に示す。なお、以下説明を簡単にするために、１画素データを１０ビットとし、上位ビットを８ビット、下位ビットを２ビットとして説明を行うが、これに限定されるものではない。
【００１４】
実施の形態１に係る動きベクトル検出装置は、１画素データの上位８ビットについての処理を行う上位側回路２００と、下位２ビットについての処理を行う下位側回路２０１とで構成されている。上位側回路２００は、上位データ用フレームメモリ１と、フレームメモリI/F３と、動きベクトル探索部６と、上位データ用セレクタ７と、動きベクトル記憶部８と、選択信号生成部９と、上位データ用予測残差比較部１０と、上位データ用予測残差同値判定部１１とを備える構成となっている。
【００１５】
下位側回路２０１は、フレームメモリI/F３と、下位データ用予測残差演算部１４と、下位データ用セレクタ１５と、予測残差記憶部１６と、下位データ用予測残差比較部１７と、下位データ用予測残差同値判定部１８とを備える構成となっている。なお、下位データ用予測残差演算部１４と後記する近傍点動きベクトル探索部２４とを追加演算部としてもよい。
【００１６】
上位データ用フレームメモリ１には、符号化対象画像と参照画像の画素データのうち上位８ビットのデータ（上位データ）が格納されている。また、下位データ用フレームメモリ２には、符号化対象画像と参照画像の画素データのうち下位２ビットのデータ（下位データ）が格納されている。
【００１７】
図３に、上位データ用フレームメモリ１と下位データ用フレームメモリ２とに画素データが格納された例を示す。上位データ用フレームメモリ１の上位８ビット格納プレーンには１アドレスに８ビットの１画素データが記憶されており、下位データ用フレームメモリ２の下位２ビット格納プレーンには、１アドレスに２ビットの１画素データが記憶されている。なお、Ｖ[9:2]は上位８ビットを、Ｖ[1:0]は下位ビットをそれぞれ表記している。
【００１８】
上位側回路２００についてまず説明する。フレームメモリI/F３は、上位データ用フレームメモリ１から、上位データについて、符号化対象画像からマクロブロックデータ４に切り出して読み出し、参照画像から探索範囲内の各動きベクトル探索点に該当する位置データ５を切り出して読み出し、動きベクトル探索部６に出力する。なお、フレームメモリI/F３は、上位ビット側のデータと下位ビット側のデータとを個別に管理する。
【００１９】
動きベクトル探索部６は、マクロブロックデータ４と探索点データ５とのマッチングにより上位データの予測残差を算出する。なお、予測残差は差分絶対値総和等を計算することにより算出することができる。そして、動きベクトル探索部６は、算出した予測残差の値とその予測残差に対応する動きベクトルを、後記する上位データ用予測残差比較部１０、上位データ用予測残差同値判定部１１、上位データ用セレクタ７に出力する。なお、上位データ用予測残差比較部１０と上位データ用予測残差同値判定部１１とに対しては、予測残差の値のみ出力するとしてもよい。
【００２０】
上位データ用セレクタ７は、後記する選択信号生成部９の選択信号に基づいて、動きベクトル探索部６から出力される上位データの予測残差及び動きベクトルと、後記する動きベクトル記憶部８に記憶される上位データの予測残差及び動きベクトルとのいずれか一方を選択して動きベクトル記憶部８に新たに記憶する。
【００２１】
上位データ用予測残差比較部１０は、動きベクトル探索部６で算出された上位データの予測残差と、動きベクトル記憶部８に記憶されている上位データの予測残差との比較を行う。新たに算出された上位データの予測残差が、既に記憶されている上位データの予測残差よりも小さい場合、上位ビット用予測残差比較部１０は選択信号生成部９に対し、新たに算出された上位データの予測残差及び動きベクトルを選択するよう指示する信号を出力する。そして、信号を受けた選択信号生成部１５は、上位データ用セレクタ７に対し選択信号を出力し、上位データ用セレクタ７はその信号に基づき動きベクトル探索部６からの出力である上位データの予測残差及び動きベクトルを選択して動きベクトル記憶部８に記憶する。つまり、予測残差及び動きベクトルの更新を行う。
【００２２】
新たに算出された上位データの予測残差が、既に記憶されている上位データの予測残差と同じ場合又は既に記憶されている上位データの予測残差よりも大きい場合は、上位データ選択信号生成部９はすぐに選択信号を出力せず、上位データ用予測残差同値判定部１１からの出力結果により処理が分岐することとなる。
【００２３】
上位データ用予測残差同値判定部１１は、動きベクトル探索部６で算出された上位データの予測残差と、動きベクトル記憶部８に記憶されている上位データの予測残差とが同一の値か否かを判定する。新たに算出された予測残差と既に記憶されている予測残差との値が同一であった場合、下位側回路２０１における演算結果に基づいて上位データ用セレクタ７の選択処理を行うように、上位データ用予測残差同値判定部１１は選択信号生成部９に指示信号を出力する。
【００２４】
また、上位データ用予測残差同値判定部１１は、フレームメモリI/F３に対し、下位データ用フレームメモリ２から下位２ビットのマクロブロックデータ１２と探索点データ１３とを読み出し、下位データ用予測残差演算部１４に送るよう指示信号を出力する。
【００２５】
さらに、上位データ用予測残差同値判定部１１は、下位データ用予測残差演算部１４に対し、下位ビットのマクロブロックデータ１２と探索点データ１３のマッチングを行い下位データの予測残差を算出するよう指示信号を出力する。
【００２６】
下位側回路２０１における下位データによる予測残差の演算処理を行わない場合、すなわち上位８ビットデータにより動きベクトルを算出する場合は、予測残差同値判定部１１は、フレームメモリI/F３に対して、下位データ用フレームメモリ２からデータを読み出すよう指示する信号は送らず、次の探索点に移って上位８ビットデータによる予測残差の計算を繰り返し行うよう指示する。この場合、上位８ビットデータによる動きベクトルを最終ベクトルとして動きベクトル検出処理を終了する。なお、下位側回路２０１における処理を実行しないという判断は、予測残差同値判定部１１以外の例えばフレームメモリI/F３等で行うこととしてもよい。
【００２７】
上位データ用予測残差同値判定部１１において、新たに算出された上位データの予測残差と既に記憶されている上位データの予測残差との値が同一でなかった場合、選択信号生成部９は、上位データ用予測残差比較部１０の出力に基づいて選択信号を上位データ用セレクタ７に出力する。新たに算出された上位データの予測残差が既に記憶されている上位データの予測残差よりも小さい場合は、上位データ用セレクタ７は、上述したように、新たに算出された上位データの予測残差及び動きベクトルを選択する。一方、算出された予測算差が既に記憶されている予測残差よりも大きい場合は、上位データ用セレクタ７は、既に記憶されている上位データの予測残差及び動きベクトルを選択する。
【００２８】
次に、下位側回路２０１について説明する。下位データ用予測残差演算部１４は、上位データ用予測残差同値判定部１１からの指示により送られてきた、下位データについての、マクロブロックデータ１２と探索点データ１３のマッチングにより下位データの予測残差を算出する。そして、新たに算出した下位データの予測残差を、後記する下位データ用セレクタ１５と下位データ用予測残差比較部１７と下位データ用予測残差同値判定部１８とに出力する。
【００２９】
下位データ用セレクタ１５は、下位データ用予測残差比較部１７からの信号に基づいて、下位データ用予測残差演算部１４から出力される下位データの予測残差と、予測残差記憶部１６に記憶される下位データの予測残差とのいずれか一方を選択して予測残差記憶部１６に新たに記憶する。
【００３０】
下位データ用予測残差比較部１７は、下位データ用予測残差演算部１４で算出された下位データの予測残差と、予測残差記憶部１６に記憶されている下位データの予測残差との比較を行う。新たに算出された下位データの予測残差が、既に記憶されている下位データの予測残差よりも小さい場合、下位データ用予測残差比較部１７は、下位データ用セレクタ１５に対し、新たに算出された予測残差及び動きベクトルを選択するよう指示する信号を出力する。そして、信号を受けた下位データ用セレクタ１５は、新たに算出された予測残差を予測残差記憶部１６に記憶し、下位データの予測残差の更新を行う。
【００３１】
また、下位データ用予測残差比較部１７は、選択信号生成部９に対し、動きベクトル探索部６で新たに算出された上位データの予測残差及び動きベクトルを選択して動きベクトル記憶部８に記憶するよう信号を出力する。
【００３２】
すなわち、上位側回路２００において、動きベクトル探索部６で算出された予測残差と動きベクトル記憶部８で記憶された予測残差とが同値で、かつ、下位データ用予測残差演算部１４で算出された予測残差が予測残差記憶部１６で記憶されている予測残差よりも小さい場合、動きベクトル探索部６で新たに算出された上位データの予測残差及び動きベクトルが動きベクトル記憶部８に記憶されることとなる。
【００３３】
新たに算出された下位データの予測残差が、既に記憶されている下位データの予測残差と同じ場合又は既に記憶されている予測残差よりも大きい場合は、下位データ用予測残差演算部１８はすぐに信号を下位データ用セレクタ１５に出力せず、下位データ用予測残差同値判定部１８からの出力結果により処理が分岐することとなる。
【００３４】
下位データ用予測残差同値判定部１８は、下位データ用予測残差演算部１４で算出された予測残差と、予測残差記憶部１６に既に記憶されている予測残差とが同一の値か否かを判定する。
【００３５】
新たに算出された下位データの予測残差と既に記憶されている下位データの予測残差との値が同一であった場合、下位データ用予測残差同値判定部１８は、選択信号生成部９に対して、上位データ用セレクタ７が動きベクトル記憶部８に既に記憶された上位データの予測残差及び動きベクトルを記憶するよう指示する信号を出力する。また、下位データ用セレクタ１５に対しては、予測残差記憶部１６に既に記憶されている予測残差を選択するよう指示する信号を出力するようにしてもよい。
【００３６】
新たに算出された下位データの予測残差と既に記憶されている下位データの予測残差との値が同一でなかった場合、選択信号生成部９は、下位データ用予測残差比較部１７の出力に基づいて選択信号を上位データ用セレクタ７に出力する。下位データ用予測残差演算部１４で新たに算出された下位データの予測残差が予測残差記憶部１６で既に記憶されている下位データの予測残差よりも小さい場合は、上位データ用セレクタ７は、上述したように、動きベクトル探索部６で新たに算出された上位データの予測残差及び動きベクトルを選択する。
【００３７】
下位データ用予測残差演算部１４で新たに算出された下位データの予測算差が予測残差記憶部１６で既に記憶されている下位データの予測残差よりも大きい場合は、上位データ用セレクタ７は、動きベクトル記憶部８で既に記憶されている上位データの予測残差及び動きベクトルを選択する。
【００３８】
次に、動きベクトル検出の方法について説明する。図３は、本発明の実施の形態１に係る動きベクトル検出のフローチャートを示す。まず、動きベクトル探索部６において、探索範囲内の探索点における上位８ビットデータによる動きベクトル探索の予測残差を演算する（ステップＳＴ１０１）。
【００３９】
そして、動きベクトル探索部６で算出された上位データの予測残差を、動きベクトル記憶部８に記憶されている上位データの予測残差と比較する（ステップＳＴ１０２）。
【００４０】
ステップＳＴ１０２における比較の結果、新たに算出された上位データの予測残差と、既に記憶されている上位データの予測残差とが同値であるかを判定し、同値である場合（ステップＳＴ１０３−Ｙｅｓ）、下位ビット用予測残差演算部１４は、下位２ビットデータによる動きベクトル探索の予測残差を演算する（ステップＳＴ１０５）。
【００４１】
下位ビット用予測残差演算部１４で新たに算出された下位データの予測残差と予測残差記憶部１６に記憶されている下位データの予測残差とを比較し、新たに算出した予測残差が既に記憶されている予測残差よりも小さければ、新たに算出した予測残差及び動きベクトルを動きベクトル記憶部８に記憶し、値を更新する（ステップＳＴ１０６）。なお、新たに算出された予測残差が既に記憶されている予測残差よりも大きい場合又は同値である場合は、既に記憶されている値のままとし、更新を行わない。
【００４２】
ステップＳＴ１０２における比較の結果、新たに算出された上位データの予測残差と、既に記憶されている上位データの予測残差とが同値でない場合（ステップＳＴ１０３−Ｎｏ）、動きベクトル探索部６で新たに算出された上位８ビットデータによる動きベクトル探索の予測残差が、動きベクトル記憶部８で記憶されている予測残差よりも小さければ、既に記憶済みの上位８ビットデータによる予測残差及び動きベクトルを更新する（ステップＳＴ１０４）。なお、新たに算出された予測残差が既に記憶されている予測残差よりも大きい場合は既に記憶されている値のままとし、更新を行わない。
【００４３】
そして、探索範囲内の探索点を全て処理したかどうかを判定し、全て処理済みであれば（ステップＳＴ１０７−Ｙｅｓ）、処理を終了する。全ての処理が済んでいなければ（ステップＳＴ１０７−Ｎｏ）、次の探索点に移ってステップＳＴ１０１より処理を繰り返す。
【００４４】
以上のように、本発明の実施の形態１によれば、既存回路としての上位側回路に、下位側回路を追加することにより、容易な構成で、画素データのビット数を拡張した動きベクトル検出装置を実現することが可能となる。
【００４５】
そのため、本実施の形態に係る動きベクトル検出装置においては、１つの装置で、従来どおり１画素データを８ビットで演算することができるとともに、８ビット以上、例えば１０ビットでも演算することができるので、８ビット用装置と１０ビット用装置を別々に作るコストを削減することが可能となり、従来品と高性能品のいずれの需要者の要望にも応えることが可能となる。
【００４６】
また、本実施の形態１における動きベクトル検出をソフトウエアのような装置以外の手段で実現する場合にも、既存手段としての上位データ演算手段に加えて下位データ演算手段を行うことによって、容易に画素データのビット数を拡張した動きベクトル検出が可能となる。
【００４７】
実施の形態２．
本発明の実施の形態２に係る動きベクトル検出装置の構成図を図５に示す。なお、以下説明を簡単にするために、１画素データを１０ビットとし、上位ビットを８ビット、下位ビットを２ビットとして説明を行うが、実施の形態１と同様、これに限定されるものではない。
【００４８】
上位側回路２０２は、上位データ用フレームメモリ１と、フレームメモリI/F１９と、動きベクトル探索部６と、上位データ用セレクタ７と、動きベクトル記憶部８と、上位データ用予測残差比較部１０とを備え、実施の形態１と比べて、選択信号生成部９と、上位データ用予測残差同値判定部１１とを備えていない構成となっている。
【００４９】
近傍点用回路２０３は、下位データ用フレームメモリ２と、フレームメモリI/F１９と、近傍点動きベクトル探索部２４と、全データ用セレクタ２５と、全データ用動きベクトル記憶部２６と、全データ用予測残差比較部２７とを備える構成となっている。
【００５０】
上位データ用フレームメモリ１と下位データ用フレームメモリ２には、実施の形態１と同様のデータが格納されているため、その説明については省略する。
【００５１】
上位側回路２０２についてまず説明する。フレームメモリI/F１９は、上位データ用フレームメモリ１から、符号化対象画像からマクロブロックデータ４に切り出して読み出し、参照画像から探索範囲内の各動きベクトル探索点に該当する位置データ５を切り出して読み出し、動きベクトル探索部１２に出力する。なお、フレームメモリI/F１９は、上位ビット側のデータと下位ビット側のデータとを個別に管理する。
【００５２】
動きベクトル探索部６は、マクロブロックデータ４と探索点データ５とのマッチングにより上位データの予測残差を算出し、算出した予測残差と対応する動きベクトルを、上位データ用予測残差比較部７、上位データ用セレクタ７に出力する。なお、上位データ用予測残差比較部７に対しては、予測残差の値のみ出力するとしてもよい。
【００５３】
上位データ用セレクタ７は、上位データ用予測残差比較部１０からの信号に基づいて、動きベクトル探索部６で新たに算出された上位データの予測残差及び動きベクトルと、動きベクトル記憶部８に記憶される上位データの予測残差及び動きベクトルとのいずれか一方を選択して動きベクトル記憶部８に新たに記憶する。
【００５４】
上位データ用予測残差比較部１０は、動きベクトル探索部６で新たに算出された上位データの予測残差と、動きベクトル記憶部８に記憶されている上位データの予測残差との比較を行い、新たに算出された予測残差が、既に記憶されている予測残差よりも小さい場合、上位データ用予測残差比較部１０は上位ビット用セレクタ７に対し、新たに算出された上位データの予測残差及び動きベクトルを選択するよう指示する信号を出力する。そして、上位データ用セレクタ７はその信号に基づき動きベクトル探索部６で新たに算出された上位データの予測残差及び動きベクトルを選択して動きベクトル記憶部８に記憶する。つまり、上位データの予測残差及び動きベクトルの更新を行う。それ以外の場合は、既に記憶された予測残差及び動きベクトルを選択し、更新を行わない。
【００５５】
上位側回路２０２において探索範囲内の全探索点における上位データの予測残差の計算と記憶の更新が完了すると、近傍点用回路２０３において、上位側回路２０２での探索結果の動きベクトルが指し示す画素位置を中心とした近傍点の探索が行われる。近傍画素データの例を図６に示す。図６では、上位側回路での探索結果の動きベクトルが指し示す画素位置を網掛けで示し、その周囲８隣接画素を近傍点（近傍画素データ）としている。
【００５６】
フレームメモリI/F１９は、上位側回路２０２において探索範囲内の全探索点における上位データの予測残差の計算と記憶の更新が完了すると、上位データ用フレームメモリ１から、上位側回路２０２における探索結果の動きベクトルが指し示す画素位置のマクロブロックデータ２０とその近傍画素に限定した近傍点探索領域データ２１を読み出し、また、下位データ用フレームメモリ２から、マクロブロックデータ２０に対応したサイズのマクロブロックデータ２２とその近傍画素に限定した近傍点探索領域データ２３とを読み出す。そして、これらデータを近傍点用回路２０３内の近傍点動きベクトル探索部２４に送る。
【００５７】
近傍点用回路２０３において、上位側回路２０２での探索結果の動きベクトルが指し示す画素位置を中心とした近傍点の探索を行わない場合、フレームメモリI/F１９は上位データ用フレームメモリ１と下位データ用フレームメモリ２からデータを読み取らず、近傍点用回路２０３における処理を行わずに終了する。この場合、上位８ビットデータによる動きベクトルを最終ベクトルとして動きベクトル検出処理を終了する。なお、近傍点用回路２０３における処理を実行しないという判断は、フレームメモリI/F１９以外で行うこととしてもよい。
【００５８】
近傍点動きベクトル探索部２４は、上位ビット用フレームメモリ１から読み出したマクロブロックデータ２０及びその近傍点探索領域データ２１と、下位ビット用フレームメモリ２から読み出したマクロブロックデータ２２及びその近傍点探索領域データ２３とから、動きベクトル探索点を上位側回路２０２における探索結果の動きベクトルが指し示す画素位置の近傍画素に限定して、上位データと下位データとを合わせた全データの予測残差の計算を行い、対応する動きベクトルの探索を行う。本実施の形態における例では、合計９点の予測残差の計算を行うことになる。また、例えば、上位データが８ビットデータで、下位データが２ビットデータであれば、全データは１０ビットデータとなる。
【００５９】
そして、近傍点動きベクトル探索部２４は、算出した全データの予測残差とその予測残差に対応する動きベクトルとを、後記する全データ用セレクタ２５と全データ用予測残差比較部２７とに出力する。
【００６０】
全データ用セレクタ２５は、全データ用予測残差比較部２７からの信号に基づいて、近傍点動きベクトル探索部２４で算出された全データの予測残差及び動きベクトルと、後記する全ビット用動きベクトル記憶部２６に既に記憶されている全データの予測残差及び動きベクトルとのいずれか一方を選択して全データ用動きベクトル記憶部２６に記憶する。
【００６１】
全データ用予測残差比較部２７は、近傍点動きベクトル探索部２４で算出された全データの予測残差と、全データ用動きベクトル記憶部２６で既に記憶されている全データの予測残差とを比較する。そして、新たに算出された全データの予測残差の方が既に記憶されている全データの予測残差よりも小さい場合、全データ用セレクタ２５に対し、新たに算出された全データの予測残差及び動きベクトルを選択するよう指示する信号を出力する。
【００６２】
以上の動作を繰り返し行い、最終動きベクトルを求める。
【００６３】
次に、動きベクトル検出の方法について説明する。図７は、本発明の実施の形態２に係る動きベクトル検出のフローチャートを示す。まず、動きベクトル探索部６において、探索範囲内の探索点における上位８ビットデータによる動きベクトル探索の予測残差を演算する（ステップＳＴ２０１）。
【００６４】
そして、動きベクトル探索部６で算出された上位データの予測残差を、動きベクトル記憶部８に記憶されている上位データの予測残差と比較する（ステップＳＴ２０２）。
【００６５】
ステップＳＴ２０２における比較の結果、新たに算出された上位データの予測残差が既に記憶されている上位データの予測残差よりも小さければ、新たに算出された予測残差及び動きベクトルを動きベクトル記憶部８に記憶し、値を更新する（ステップＳＴ２０３）。なお、それ以外の場合は更新を行わない。
【００６６】
探索範囲内の探索点を全て処理したかどうかを判定し、全ての処理が終了した場合（ステップＳＴ２０４−Ｙｅｓ）、上位データによる動きベクトル探索による動きベクトルを中心とした近傍画素領域が設定される。そして、近傍点動きベクトル探索部２４が、近傍画素領域における上位８ビットデータと下位２ビットデータとを合わせた全１０ビットデータによる動きベクトル探索の予測残差を計算する（ステップＳＴ２０５）。
【００６７】
探索範囲内の探索点の処理が全て終了していない場合（ステップＳＴ２０４−Ｎｏ）、今回予測残差の計算を行った探索点の次の探索点に移ってステップＳＴ２０１からの処理を繰り返し行う。
【００６８】
次に、全データ用予測残差比較部２７において、近傍点動きベクトル探索部２４で計算された全データの予測残差と、全データ用動きベクトル記憶部２６に既に記憶されている全データの予測残差とが比較される（ステップＳＴ２０６）
【００６９】
ステップＳＴ２０６における比較の結果、新たに算出され全データの予測残差が既に記憶されている全データの予測残差よりも小さければ、既に記憶済みの全データによる予測残差及び動きベクトルを更新する（ステップＳＴ２０７）。なお、それ以外の場合は更新を行わない。
【００７０】
そして、近傍画素領域の探索点を全て処理したかどうかを判定し、全ての処理が終了した場合（ステップＳＴ２０８−Ｙｅｓ）、動きベクトル検出の処理を終了する。全ての処理が終了していない場合（ステップＳＴ２０８−Ｎｏ）、次の近傍画素領域内の探索点に移ってステップＳＴ２０５からの処理を繰り返し行う。
【００７１】
以上のように、本発明の実施の形態２によれば、実施の形態１の効果を有し、さらに実施の形態１よりも上位側回路の変更をさらに小規模に抑えることができるので、より容易な構成で、画素データのビット数を拡張した動きベクトル検出装置を実現することが可能となる。
【符号の説明】
【００７２】
１                上位データ用フレームメモリ
２                下位データ用フレームメモリ
３                フレームメモリI/F
４                上位データ用フレームメモリ１から取出したマクロブロックデータ
５                上位データ用フレームメモリ１から取出した探索点データ
６                動きベクトル探索部
７                上位データ用セレクタ
８                動きベクトル記憶部
９                選択信号生成部
１０              上位データ用予測残差比較部
１１              上位データ用予測残差同値判定部
１２              下位データ用フレームメモリ２から取出したマクロブロックデータ
１３              下位データ用フレームメモリ２から取出した探索点データ
１４              下位データ用予測残差演算部
１５              下位データ用セレクタ
１６              予測残差記憶部
１７              下位データ用予測残差比較部
１８              下位データ用予測残差同値判定部
１９              フレームメモリI/F
２０              上位データ用フレームメモリ１から取出したマクロブロックデータ
２１              上位データ用フレームメモリ１から取出した近傍点探索領域データ
２２              下位データ用フレームメモリ２から取出したマクロブロックデータ
２３              下位データ用フレームメモリ２から取出した近傍点探索領域データ
２４              近傍点動きベクトル探索部
２５              全データ用セレクタ
２６              全データ用動きベクトル記憶部
２７              全データ用予測残差比較部
１００            現画像フレーム
１０１            マクロブロック
１０２            参照画像フレーム
１０３            探索点
【図１】
2012054750.tif 000003
【図２】
2012054750.tif 000004
【図３】
2012054750.tif 000005
【図４】
2012054750.tif 000006
【図５】
2012054750.tif 000007
【図６】
2012054750.tif 000008
【図７】
2012054750.tif 000009