(57)【要約】【課題】  メモリから参照画像を読み出す量を抑えることを可能とした動き検出装置及び動き検出方法を提供する。【解決手段】  参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、このブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、このブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、このブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定する。【選択図】  図２
2007228093.tif 000002
【特許請求の範囲】
【請求項１】
動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在し、かつ動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置。
【請求項２】
動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置。
【請求項３】
動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置。
【請求項４】
動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックのさらに上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置。
【請求項５】
動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置。
【請求項６】
動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在し、かつ動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法。
【請求項７】
動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法。
【請求項８】
動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法。
【請求項９】
動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックのさらに上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法。
【請求項１０】
動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き検出装置及び動き検出方法に関する。
【背景技術】
【０００２】
動画像符号化では、時間方向の冗長性を削減するために、画像間の予測を用いて符号化を行う。このとき、画像間の動き情報を示すのが、動きベクトルである。
【０００３】
一般的には、符号化を行う対象となる画像のブロックと参照画像のブロックとのブロックマッチングを行った結果、最も類似度が高くなるブロック位置を示すための情報を動きベクトルとして決定する。
【０００４】
この動き検出処理を行う場合、メモリから動き検出器へ符号化対象画像と参照画像を読み込む量が膨大になる。特に参照画像を読み込む量は、画像サイズの数倍になり非常に大きい。そこで、特許文献１には、このような膨大な画像データを取り扱うために、メモリから動き検出器に符号化対象画像を読み込むためのバスと参照画像を読み込むためのバスを分離した方法が記載されている
【特許文献１】特開２０００−２８７２１４公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された方法では、複数のバスを用意しメモリの枚数を増やす必要があり、コストが増大する問題や設計が複雑になるという問題を招いてしまう。また、メモリから参照画像を読み出す量自体は変わらず扱う情報量は依然として大きいという問題がある。
【０００６】
本発明は、上記問題に鑑みてなされたもので、メモリから参照画像を読み出す量を抑えることを可能とした動き検出装置及び動き検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記問題を解決するために、本発明は、動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在し、かつ動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置を提供する。
【０００８】
また、本発明は、動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置を提供する。
【０００９】
また、本発明は、動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置を提供する。
【００１０】
また、本発明は、動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックのさらに上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置を提供する。
【００１１】
また、本発明は、動き検出の対象となるブロックを保持する動き検出対象ブロック用ローカルメモリと、
前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持する参照ブロック用ローカルメモリと、
前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行うブロックマッチング手段と、
前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定する動きベクトル決定手段と、
前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する動き検出対象ブロック決定手段とを具備し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出装置を提供する。
【００１２】
また、本発明は、動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、
前記参照ブロック用ローカルメモリへ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在し、かつ動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法を提供する。
【００１３】
また、本発明は、動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法を提供する。
【００１４】
また、本発明は、動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上下に連続する２行のうち上の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上下に連続する２行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法を提供する。
【００１５】
また、本発明は、動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右上のブロックのさらに上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法を提供する。
【００１６】
また、本発明は、動き検出対象ブロック用ローカルメモリに、動き検出の対象となるブロックを保持し、
参照ブロック用ローカルメモリに、前記動き検出対象ブロックに対する動き検出処理に参照用として、前記動き検出対象ブロックがあるフレームとは異なるフレームのなかの前記動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持し、
ブロックマッチング手段を用いて、前記動き検出対象ブロック用ローカルメモリから供給される動き検出対象ブロック及び前記参照ブロック用ローカルメモリから供給される前記複数の参照ブロックとの間でそれぞれブロックマッチングを行い、
動きベクトル決定手段を用いて、前記ブロックマッチング手段から供給されるブロックマッチングの結果から、前記動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、
動き検出対象ブロック決定手段を用いて、前記動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定し、
前記動き検出対象ブロック決定手段は、前記動き検出対象ブロックが、上中下に連続する３行のうち上の行或いは中の行に位置する場合は、前記動き検出対象ブロックの左下のブロックを次の動き検出の対象となるブロックとして決定し、
前記動き検出対象ブロックが、上中下に連続する３行のうち下の行に位置する場合は、前記動き検出対象ブロックの右のブロックのさらに右上のブロックのさらに右上のブロックを次の動き検出の対象となるブロックとして決定することを特徴とする動き検出方法を提供する。
【発明の効果】
【００１７】
本発明は、動き検出処理の対象となるブロックの順序を、最適に決定することで、動き検出精度を維持しつつ、メモリから動き検出器へ参照画像の読み込み量を削減し、メモリバンド幅を低減するとことを可能とする。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して発明の詳細な実施形態について説明する。なお、本発明は以下に説明する実施形態に限定されることはなくその趣旨を逸脱しない範囲で種々工夫して用いることができる。
【００１９】
第１の実施形態
図１は、本発明の第１の実施形態に関わる動き検出装置を有する動画像符号化装置のブロック図である。
【００２０】
図１に示すように、この動画像符号化装置１００は、メモリ１０２と、動き検出装置１０３と、符号化部１０４とを備えている。
【００２１】
メモリ１０２は、外部から入力される入力画像１０１を格納する。この入力画像１０１は符号化の対象となる。動き検出装置１０３は、メモリ１０２に格納されている符号化の対象となる入力画像１０１と符号化するときに参照するための参照画像を用いて動き検出処理を行い動きベクトルを決定する。符号化部１０４は、動き検出装置１０３から動き検出処理の結果得られた動きベクトル、メモリ１０２から符号化の対象となる画像を入力として符号化処理を行う。
【００２２】
符号化処理は、一般的な動画像符号化において行われる処理であり、例えば、動きベクトルを用いた予測誤差信号生成、および予測誤差信号に対する直交変換、および変換係数の量子化、および変換係数や動きベクトル情報などのエントロピー符号化、および符号列生成がある。
【００２３】
図２に、本発明に関わる動き検出装置１０３のブロック図を詳細に示す。また、図３に、本発明に関わる動き検出装置のフローチャートを示す。
【００２４】
図２に示すように、この動き検出装置１０３は、参照ブロック用ローカルメモリ２０１と、動き検出対象ブロック用ローカルメモリ２０２と、ブロックマッチング部２０３と、動き検出処理適用ブロック制御部２０４を備えている。
【００２５】
動き検出対象ブロック用ローカルメモリ２０２は、動き検出の対象となるブロックを保持するために用いられるメモリである。また、参照ブロック用ローカルメモリ２０１は、動き検出対象ブロックに対する動き検出処理に参照用として、動き検出対象ブロックがあるフレームとは異なるフレームのなかの動き検出対象ブロックが対応する位置の周辺領域にある複数のブロックを保持するために用いるメモリである。また、ブロックマッチング部２０３は、動き検出対象ブロック用ローカルメモリ２０２から供給される動き検出対象ブロック及び参照ブロック用ローカルメモリ２０１から供給される複数の参照ブロックとの間でそれぞれブロックマッチングを行う。
【００２６】
動き検出対象ブロック制御部２０４は、ブロックマッチング部２０３から供給されるブロックマッチングの結果から、動き検出対象ブロックとの類似度が、他の参照ブロックと比較して高い少なくとも１つの参照ブロックの動きベクトルを決定し、そして動き検出対象ブロックの動き検出処理が終了した後に、次の動き検出処理の対象となるブロックを決定する制御を行う。
【００２７】
また、動き検出対象ブロック制御部２０４は、参照ブロック用ローカルメモリ２０１へ新たに参照ブロックを読み込む必要がないように次の動き検出の対象となるブロックを決定し、参照ブロック用ローカルメモリ２０１へ新たに参照ブロックを読み込む必要がないブロックが存在しない場合は、参照ブロックの読み込み量が最も小さくなるように次の動き検出の対象となるブロックを決定し、参照ブロック用ローカルメモリ２０１へ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックを次の動き検出の対象となるブロックとして決定し、参照ブロック用ローカルメモリ２０１へ新たに参照ブロックを読み込む必要がないブロックが存在せず、かつ参照ブロックの読み込み量が最も小さくなるようなブロックが複数存在し、かつ動き検出処理が未実施のブロックのうち画像中でもっとも上に位置するブロックが複数存在する場合は、動き検出処理が未実施のブロックのうち画像中で最も左に位置するブロックを次の動き検出の対象となるブロックとして決定するように制御する。
【００２８】
次に、図３のフローチャートを用いて、この動き検出装置２０３の動作について説明する。
【００２９】
先ず、初期動き検出ブロックを設定する（Ｓ１００１）。初期動き検出ブロックは、フレーム内の画面左上のブロックを決定する。
【００３０】
次に、参照ブロックをメモリ１０２から参照ブロック用ローカルメモリ２０１に読み込む（Ｓ１００２）。次に、動き検出の対象となるブロックをメモリ１０２から動き検出対象ブロック用ローカルメモリ２０２に読み込む（Ｓ１００３）。
【００３１】
次に、ブロックマッチング部２０３が、動き検出対象ブロックと参照ブロック（動き検出対象ブロックの周辺に位置する複数のブロック、ただし異なるフレーム）間でブロックマッチング処理を行う（Ｓ１００４）。ブロックマッチング処理を行った後、動き検出対象ブロックと類似度の高い参照ブロックの位置を示す動きベクトルを決定する（Ｓ１００５）。
【００３２】
動き検出の対象となるブロックと参照ブロック間の類似度の評価式としては、一般的に次式を用いる。
【００３３】
MECOST = SAD＋動きベクトルコスト＋参照画像コスト    (数式７)
SAD（Sum of Absolute Differences）とは、動き検出対象ブロックと参照ブロック間の画素の差分絶対値和である。動きベクトルコストとは、動きベクトルの符号量を見積もったものである。参照画像コストとは、参照画像を識別するための値の符号量を見積もったものである。
【００３４】
この後、符号化部１０４は、決定した動きベクトルを入力として動き検出の対象となるブロックを符号化する。
【００３５】
動き検出処理適用ブロック制御部２０４は、動き検出の対象となるブロックに対するブロックマッチング処理を完了し動きベクトルを決定したのち、次に動き検出の対象となるブロックを決定する（Ｓ１００６）。
【００３６】
このとき、動き検出の対象となる画像（１フレーム）の全ブロックに対して動きベクトルを決定していれば、この画像に対する動き検出処理は完了である（Ｓ１００７）。
【００３７】
全ブロックに対して動きベクトルを決定していなければ、動き検出の対象となったブロックの隣接ブロックの内、参照ブロック用ローカルメモリ２０１へ新たな参照ブロックを読み込む必要がなければ、そのブロックを次に動き検出の対象となるブロックとし、動き検出対象ブロックの読み込みステップ（Ｓ１００３）に移行する。このとき、動き検出の対象となったブロックの隣接ブロックとは、動き検出の対象となったブロックに対して縦横もしくは斜めの関係に位置するブロックのことをいう。
【００３８】
また、動き検出の対象となったブロックの隣接ブロックの内、参照ブロック用ローカルメモリ２０１へ新たな参照ブロックを読む必要があれば、参照画像の読み込み量がもっとも少なくなるようなブロックを、次に動き検出の対象となるブロックとし、参照画像読み込みのステップ（Ｓ１００２）に移行する。
【００３９】
参照ブロックの読み込みは、縦長矩形領域の読み込みを行う。隣接ブロックの中に、参照画像の読み込み量がもっとも少なくなるようなブロックが複数存在する場合は、最もＹ座標が小さい場所に位置するブロックを次に動き検出の対象となるブロックに決定する。さらにＹ座標が同じであれば、Ｘ座標が小さい場所に位置するブロックを次に動き検出の対象となるブロックに決定する。
【００４０】
ここでブロックの座標は、水平方向をＸ座標、垂直方向をＹ座標とし、画像の左上を（０，０）とし、画像の右に行くほどＸが増加し、画像の下に行くほどＹが増加するものとする。
【００４１】
本発明によると、一枚（１フレーム）の動き検出の対象となる画像と一枚（別フレーム）の参照画像とで動き検出処理を行う場合、動き検出の対象となるブロックのうち、新たにメモリに参照画像を読み込む必要がないブロックが存在する。このため、メモリから参照画像を読み込む量を削減することができる。
【００４２】
比較例１
ここで通常の動き検出方法について、図６、図７を参照して説明する。
【００４３】
図６は、動き検出の対象となる画像（１フレーム）を左上から横方向に右下までラスタスキャンしながらブロックを選択する様子を示した図である。
【００４４】
図６に示すように、動き検出の対象となるブロックは左上から右下まで０、１、２・・・と、ラスタスキャンした順に選択される。
【００４５】
図７は、参照画像上に動き検出の対象となるブロックの位置（実際は参照画像とは別のフレームに位置している）周辺に探索領域を設定した図である。
【００４６】
図７に示すように、探索領域の水平幅をＸｓ、垂直幅をＹｓとし、参照画像の探索領域に位置するブロックはマッチングのつど読み出す場合を仮定する。この場合、動き検出の対象となる画像１枚（１フレーム）と参照画像１枚（１フレーム）をマッチングする際、メモリからの参照画像の読み出し量は、
（Xs×Yｓ）×当該画像のブロック数  Byte              （数式１）
となる。一画素当り１Byteとする。Ｘｓ、Ｙｓの具体値は、画像のサイズによって異なる。画像が大きければＸｓ、Ｙｓを大きく設定する必要があり、画像が小さければＸｓ、Ｙｓの値は小さくても良い。
【００４７】
ハイビジョンのＨＤサイズの動画を符号化する場合を例にあげると、Ｘｓ＝９６×２＋１６＝２０８、Ｙｓ＝６４×２＋１６＝１４４程度が妥当である。このときの探索範囲は、探索中心点から（±９６, ±６４）の範囲となる。探索中心点には、動き検出の対象となるブロックと同位置や、周囲ブロックのもつ動きベクトルの中央値などが利用される。また当該画像のブロック数は、（１９２０×１０８８）÷（１６×１６）＝８１６０となる。ここで、ブロックは１６×１６のマクロブロックを仮定した。このとき参照画像一枚分の読み出し量は、
（２０８×１４４）×８１６０≒２３３MB      （数式２）
３０フレーム／秒の動画像を参照画像３枚で符号化する場合、参照画像の読み込み量のみで、
２３３×３×３０≒２０．５GB/sec                （数式３）
となり、非常に大きい。
【００４８】
比較例２
次に、動き検出装置にローカルメモリを持つことでメモリバンド幅を削減した方法を、図８を用いて説明する。
【００４９】
図８は、動き検出の対象となるブロックが左から右に順にラスタスキャンされ、その動きに合わせて、参照画像の探索領域が右にシフトする様子を示した図である。
【００５０】
先ず、この方法は、図６に示したラスタスキャンと同様に、左上から右下に順次スキャンされていく。
【００５１】
このとき図８に示すように、動き検出の対象となるブロックが位置する周辺の参照画像（探索領域）をローカルメモリに保持しておき、次に、動き検出の対象となるブロックのマッチングを行う際は、必要になる探索領域の右端の外側の領域をメモリからローカルメモリに読み込んでくる。次の動き検出の対象となるブロックのマッチングで参照される探索領域のブロックのうち、ローカルメモリ上に存在するものは再利用し、マッチングに用いない探索領域の左端のブロックは捨てる。
【００５２】
この方法において、探索領域の水平幅をＸｓ、垂直幅をＹｓとし、動き検出の対象となる画像１枚（１フレーム）と参照画像１枚（別のフレーム）をマッチングする際、メモリからの参照画像の読み出し量は、
Ys×１６×当該画像のブロック数    Byte          （数式４）
となる。比較例１と同様に（±９６, ±６４）の探索範囲を設定する場合、参照画像一枚分の読み出し量は
１４４×１６×８１６０≒１７．９MB    （数式５）
３０フレーム／秒の動画像を参照画像３枚で符号化する場合、参照画像の読み込み量は、
１７．９×３×３０＝１．６GB/sec                      （数式６）
となる。（数式３）に対して大幅にバンド幅が削減するものの、依然として高いメモリバンド幅を必要とすることがわかる。このように高いメモリハンド幅は、外部メモリのピン数や個数或いは動作周波数のなどの増加を必要とするため、動き検出装置のコスト増を招いてしまう。
【００５３】
第２の実施形態
次に、本発明の第２の実施形態について説明する。
【００５４】
第２の実施形態による動き検出装置は、図１、図２、図３で説明した第１の実施形態のものと基本的な構成は同じであり、同一部分はその詳しい説明を省略する。
【００５５】
この動き検出装置は、図３のステップＳ１００６で説明したように、動き検出処理適用ブロック制御部２０４が、動き検出の対象となるブロックに対するブロックマッチング処理を完了し動きベクトルを決定したのち、次に動き検出処理を適用するブロックを決定する。
【００５６】
このとき、動き検出の対象となる画像の全ブロックに対して動きベクトルを決定していれば、動き検出の対象となる画像に対する動き検出処理は完了である（Ｓ１００７）。
【００５７】
図４は、動き検出の対象となるブロックは左上から下にいき、右上に上がってまた下にいき、を順に繰り返すスキャンをしながらブロックを選択する様子を示した図である。
【００５８】
また、図９は、動き検出の対象となるブロックが図４に示すようにスキャンされ、その動きに合わせて、参照画像の探索領域が右にシフトする様子を示した図である。
【００５９】
このように動き検出の対象となるブロックが連続する２行の上の行にする場合は、次に動き検出を適用するブロックは、動き検出対象ブロックの下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない。また、動き検出の対象となるブロックが連続する２行の下の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの右のブロックの上のブロックとする。このときは、探索領域の右端の外側に位置するブロックが新たに読み込みの対象となる。このときの読み込み量は（Ｙｓ＋１６）×１６となる。
【００６０】
一枚（１フレーム）の動き検出の対象となる画像と一枚（別のフレーム）の参照画像とで動き検出処理を行う場合、２つのブロックの動き検出を行う毎に参照ブロックの読み込みが発生する。このときの参照画像読み込み量は
（Ｙｓ＋１６）×１６×（８１６０÷２）  Ｂｙｔｅ            （数式８）
となる。比較例２と同様に、Ｙｓ＝１４４とすると、参照画像の読み込み量は、
（１４４＋１６）×１６×（８１６０÷２）  Ｂｙｔｅ  ≒  ９．９６ＭＢ    （数式９）
となり、数式（５）と比較して大きく削減できている。
【００６１】
第３の実施形態
次に、本発明の第３の実施形態について説明する。
【００６２】
第３の実施形態による動き検出装置は、図１、図２、図３で説明した第１の実施形態のものと基本的な構成は同じであり、同一部分はその詳しい説明を省略する。
【００６３】
この動き検出装置は、図３のステップＳ１００６で説明したように、動き検出処理適用ブロック制御部２０４が、動き検出の対象となるブロックに対するブロックマッチング処理を完了し動きベクトルを決定したのち、次に動き検出の対象となるブロックを決定する。
【００６４】
このとき、動き検出の対象となる画像の全ブロックに対して動きベクトルを決定していれば、動き検出の対象となる画像に対する動き検出処理は完了である（Ｓ１００７）。
【００６５】
図５は、動き検出の対象となるブロックは、先ず左上から右に行く。そして次の動き検出の対象となるブロックは左下のブロック、次の動き検出の対象となるブロックは、右の右上のブロックとなり、これを繰り返すスキャンをしながらブロックを選択する様子を示した図である。
【００６６】
また、図１０は、動き検出の対象となるブロックが図５に示すようにスキャンされ、その動きに合わせて、参照画像の探索領域が右にシフトする様子を示した図である。
【００６７】
このように動き検出の対象となるブロックが連続する２行の上の行にする場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの左下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない。また、動き検出の対象となるブロックが連続する２行の下の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの右のブロックの右上のブロックとする。このときは、探索領域の右の外側に位置するブロックが新たに読み込みの対象となる。このときの読み込み量は（Ｙｓ＋１６）×１６となる。
【００６８】
このように、ジグザグ順序で動き検出を適用する理由は、動きベクトルの符号量見積もりをより正確にするためである。
【００６９】
ＭＰＥＧ−４やＨ.２６４等の国際標準の動画像符号化において、動きベクトルを符号化する際、周囲のブロックの符号化モード（イントラ符号化、インター符号化など）や、動きベクトルを利用する。このときの周囲のブロックとは、符号化の対象となるブロックの上のブロック、右上のブロック及び左のブロックが一般的である。動きベクトルは、これらの周囲のブロックの情報からつくる予測ベクトルとの差分値を符号化する。
【００７０】
図１１に、予測ベクトルの例を示す。
【００７１】
図１１に示すように、動き検出の対象となるブロックの左横、上、右上のブロックが対象となるメディアン予測である。
【００７２】
本発明の第２の実施例では、連続する２行のうち下の行に位置するブロックに対しては、右上のブロックの動きベクトルが決定しておらず、予測ベクトルを正確に決定できない。このため動きベクトルの符号量を正確に推定できず動き検出の精度の低下を招く。しかしながら、第３の実施例で説明した動き検出装置では、連続する２行のうち下の行に位置するブロックの右上のブロックに関しても動きベクトルを決定しているため、より正確な予測ベクトルが推定でき動き検出の精度があがる。
【００７３】
次に、参照画像の読み込み量を示す。一枚（１フレーム）の動き検出の対象となる画像と一枚（別のフレーム）の参照画像とで動き検出処理を行う場合、２つのブロックに関して動き検出を行うごとに参照画像の読み込みが発生するので
（Ｙｓ＋１６）×（８１６０÷２）  Ｂｙｔｅ              （数式１０）
となる。比較例２と同様にＹｓ＝１４４とすると、参照画像の読み込み量は、
（１４４＋１６）×（８１６０÷２）  Ｂｙｔｅ  ≒  ９．９６ＭＢ      （数式１１）
となり、数式（５）と比較して大きく削減できていることがわかる。
【００７４】
このように、本発明の第３の実施形態で説明した動き検出方法では、動きベクトルの符号量推定が正確になることによる動き検出精度の改善効果と、参照画像の読み込み量を削減する効果がある。
【００７５】
第４の実施形態
第４の実施形態による動き検出装置は、図１、図２、図３で説明した第１の実施形態のものと基本的な構成は同じであり、同一部分はその詳しい説明を省略する。
【００７６】
この動き検出装置は、図３のステップＳ１００６で説明したように、動き検出処理適用ブロック制御部２０４が、動き検出の対象となるブロックに対するブロックマッチング処理を完了し動きベクトルを決定したのち、次に動き検出の対象となるブロックを決定する。
【００７７】
このとき、動き検出の対象となる画像の全ブロックに対して動きベクトルを決定していれば、動き検出の対象となる画像に対する動き検出処理は完了である（Ｓ１００７）。
【００７８】
図１２は、動き検出の対象となるブロックは、先ず左上から下に行き、次の動き検出の対象となるブロックは下のブロックである。そして次の動き検出の対象となるブロックは右上の上のブロックであり、これを繰り返すスキャンをしながらブロックを選択する様子を示した図である。
【００７９】
このようにスキャンされ、その動きに合わせて、参照画像の探索領域が右にシフトする。
【００８０】
このように動き検出の対象となるブロックが連続する上中下の３行の上の行にする場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない。また、動き検出の対象となるブロックが連続する上中下の３行の中の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない、また、動き検出の対象となるブロックが連続する上中下の３行の下の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの右上のブロックの上のブロックとする。このときは、探索領域の右の外側に位置するブロックが新たに読み込みの対象となる。このときの読み込み量は（Ｙｓ＋３２）×１６となる。
【００８１】
一枚（１フレーム）の動き検出の対象となる画像と一枚（別のフレーム）の参照画像とで動き検出を行う場合、２つのブロックの動き検出を行う毎に参照画像の読み込みが発生する。このときの参照画像読み込み量は
（Ｙｓ＋３２）×１６×（８１６０÷３）  Ｂｙｔｅ            （数式１２）
となる。比較例２と同様に、Ｙｓ＝１４４とすると、参照画像の読み込み量は、
（１４４＋３２）×１６×（８１６０÷３）  Ｂｙｔｅ  ≒  ７．３ＭＢ    （数式１３）
となり、数式（５）と比較して大きく削減できている。
【００８２】
第５の実施形態
第５の実施形態による動き検出装置は、図１、図２、図３で説明した第１の実施形態のものと基本的な構成は同じであり、同一部分はその詳しい説明を省略する。
【００８３】
この動き検出装置は、図３のステップＳ１００６で説明したように、動き検出処理適用ブロック制御部２０４が、動き検出の対象となるブロックに対するブロックマッチング処理を完了し動きベクトルを決定したのち、次に動き検出の対象となるブロックを決定する。
【００８４】
このとき、動き検出の対象となる画像の全ブロックに対して動きベクトルを決定していれば、動き検出の対象となる画像に対する動き検出処理は完了である（Ｓ１００７）。
【００８５】
図１３は、動き検出の対象となるブロックは、先ず左上から右に行き、次の動き検出の対象となるブロックは左下のブロックである。そして次の動き検出の対象となるブロックは右の右上のブロックである。これを繰り返すスキャンをしながらブロックを選択する様子を示した図である。
【００８６】
このようにスキャンされ、その動きに合わせて、参照画像の探索領域が右にシフトする。
【００８７】
このように動き検出の対象となるブロックが連続する上中下の３行の上の行にする場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの左下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない。また、動き検出の対象となるブロックが連続する上中下の３行の中の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの左下のブロックとする。このとき、探索領域は下にシフトせずメモリから新たに参照ブロックを読み込む必要がない、また、動き検出の対象となるブロックが連続する上中下の３行の下の行に位置する場合は、次に動き検出の対象となるブロックは、動き検出対象ブロックの右のブロックの右上のブロックの右上のブロックとする。このときは、探索領域の右の外側に位置するブロックが新たに読み込みの対象となる。このときの読み込み量は（Ｙｓ＋３２）×１６となる。このように、ジグザグ順序で動き検出を適用する理由は、動きベクトルの符号量見積もりをより正確にするためである。
【００８８】
ＭＰＥＧ-４、やＨ.２６４等の国際標準の動画像符号化において、動きベクトルを符号化する際、周囲のブロックの符号化モード（イントラ符号化、インター符号化など）や、動きベクトルを利用する。このときの周囲のブロックとは、符号化の対象となるブロックの上のブロック、右上のブロック及び左のブロックが一般的である。動きベクトルは、これらの周囲のブロックの情報からつくる予測ベクトルとの差分値を符号化する。予測ベクトルの例としては、図１１に示すようなメディアン予測によるものがある。
【００８９】
本発明の第４の実施の形態では、連続する上中下の３行のうち上、中の行に動き検出対象ブロックが位置する場合、右上のブロックの動きベクトルが決定しておらず、予測ベクトルを正確に決定できないため、動きベクトルの符号量を正確に推定できず動き検出の精度の低下を招く。
【００９０】
しかしながら、この第５の実施形態では、連続する上中下の３行のうち上、中の行に動き検出対象ブロックが位置する場合、動きベクトルが決定しているため、より正確な予測ベクトルが推定でき動き検出の精度があがる。
【００９１】
次に、参照画像の読み込み量を示す。一枚（１フレーム）の動き検出の対象となる画像と一枚（別のフレーム）の参照画像とで動き検出処理を行う場合、２つのブロックに関して動き検出を行うごとに参照画像の読み込みが発生するので
（Ｙｓ＋３２）×（８１６０÷３）  Ｂｙｔｅ              （数式１４）
となる。比較例２と同様にＹｓ＝１４４とすると、参照画像の読み込み量は、
（１４４＋３２）×（８１６０÷２）  Ｂｙｔｅ  ≒  ７．３ＭＢ      （数式１５）
となり、数式（５）と比較して大きく削減できていることがわかる。
【００９２】
このように、本実施形態では、動きベクトルの符号量推定が正確になることによる動き検出精度の改善効果と、参照画像読み込み量の削減効果がある。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施形態に関わる動き検出装置およびメモリおよび符号化部の構成を示すブロック図である。
【図２】本発明の実施形態に関わる動き検出装置の構成を示すブロック図である。
【図３】本発明の実施形態に関わる動き検出部のフローチャートである。
【図４】本発明の第２の実施形態に関わる動き検出適用順序を示す図である。
【図５】本発明の第３の実施形態に関わる動き検出適用順序を示す図である。
【図６】比較例によるラスタスキャン順の動き検出順序を示す図である。
【図７】比較例１を説明するための図である。
【図８】比較例２を説明するための図である。
【図９】本発明の第２の実施形態における動作を示す図である。
【図１０】本発明の第３の実施形態における動作を示す図である。
【図１１】動画像符号化規格における予測ベクトルの例を説明する図である。
【図１２】本発明の第４の実施形態に関わる動き検出適用順序を示す図である。
【図１３】本発明の第５の実施形態に関わる動き検出適用順序を示す図である。
【符号の説明】
【００９４】
１００・・・動画像符号化装置
１０１・・・入力画像
１０２・・・メモリ
１０３・・・動き検出装置
１０４・・・符号化部
２０１・・・参照画像用ローカルメモリ
２０２・・・当該ブロック用ローカルメモリ
２０３・・・ブロックマッチング部
２０４・・・動き検出処理適用ブロック制御部
【図１】
2007228093.tif 000003
【図２】
2007228093.tif 000004
【図３】
2007228093.tif 000005
【図４】
2007228093.tif 000006
【図５】
2007228093.tif 000007
【図６】
2007228093.tif 000008
【図７】
2007228093.tif 000009
【図８】
2007228093.tif 000010
【図９】
2007228093.tif 000011
【図１０】
2007228093.tif 000012
【図１１】
2007228093.tif 000013
【図１２】
2007228093.tif 000014
【図１３】
2007228093.tif 000015