(57)【特許請求の範囲】
【請求項１】
カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１の初期DR(Dynamic Range)タップを抽出する第１の初期DRタップ抽出手段と、
前記第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、
前記第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、前記第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される前記第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記第１のDRコードを算出する前記第１の演算により、前記第１の初期DRタップのダイナミックレンジから、前記第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、
前記第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、
前記第１のクラスタップを構成する画素の画素値を、前記第１のDRタップのダイナミックレンジを用いたADRC(Adaptive Dynamic Range Coding)により量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、
前記第１の量子化コードに対応させて前記第１の注目画素の画素位置を、データベースに記憶する記憶手段と、
前記カレントフレームを構成する各画素を第２の注目画素に決定し、前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、
前記第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、
前記第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、前記第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される前記第２の初期DRタップのダイナミックレンジを含む、前記第１の区分よりも狭い第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジから、同一の前記第２のDRコードを算出する前記第２の演算により、前記第２の初期DRタップのダイナミックレンジから、前記第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、
前記第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、
前記第２のクラスタップを構成する画素の画素値を、前記第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、
前記第２の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第２の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
を備える画像処理装置。
【請求項２】
検出された前記参照フレーム中の画素の前記画素位置、及び前記カレントフレーム中の前記第２の注目画素の画素位置のいずれか一方を始点とし、他方を終点とする動きベクトルを生成する動きベクトル生成手段をさらに備える
請求項１に記載の画像処理装置。
【請求項３】
前記第１のDRクラスコード算出手段は、
同一のDRコードAが算出される前記第１の初期DRタップのダイナミックレンジを含む区分を前記第１の区分とし、前記第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記DRコードAを算出するとともに、
同一のDRコードAが算出される前記第１の初期DRタップのダイナミックレンジを含む区分とは異なる、同一のDRコードBが算出される前記第１の初期DRタップのダイナミックレンジを含む区分を、前記第１の区分とし、前記第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記DRコードBを算出する
前記第１の演算により、前記第１の初期DRタップのダイナミックレンジから、前記DRコードA及び前記DRコードBを、２種類の前記第１のDRコードとして算出し、
前記第１のDRタップ抽出手段は、２種類の前記第１のDRコードそれぞれに対応付けられているDRタップパターンにより、２種類の前記第１のDRタップを抽出し、
前記第１のDR検出手段は、２種類の前記第１のDRタップそれぞれのダイナミックレンジを検出し、
前記第１の量子化コード生成手段は、前記第１のクラスタップを、２種類の前記第１のDRタップそれぞれのダイナミックレンジを用いたADRCにより量子化し、２種類の前記第１の量子化コードを生成する
請求項１に記載の画像処理装置。
【請求項４】
前記第２のDRクラスコード算出手段は、同一のDRコードCが算出される前記第２の初期DRタップのダイナミックレンジを含む区分を前記第２の区分とし、前記第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジから、同一の前記DRコードCを算出する前記第２の演算により、前記第２の初期DRタップのダイナミックレンジから、前記DRコードCを、前記第２のDRコードとして算出し、
前記第２のDRタップ抽出手段は、前記第２のDRコードに対応付けられている前記第２のDRタップのDRタップパターンにより、前記第２のDRタップを抽出する
請求項３に記載の画像処理装置。
【請求項５】
前記第２のDRクラスコード算出手段は、前記第２の演算により、前記第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジの上位Ａビットから、同一の前記第２のDRコードを算出し、
前記第１のDRクラスコード算出手段は、前記第１の演算により、前記第２の区分どうしの境界から、所定のビットだけシフトした位置を境界とする前記第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジの上位（Ａ−１）ビットから、同一の前記第１のDRコードを算出する
請求項４に記載の画像処理装置。
【請求項６】
前記第１のDRタップ抽出手段は、
前記第１の初期DRタップのダイナミックレンジが、前記第２の区分どうしの境界付近である場合、２種類の前記第１のDRコードそれぞれに対応付けられているDRタップパターンにより、２種類の前記第１のDRタップを抽出し、
前記第１の初期DRタップのダイナミックレンジが、前記第２の区分どうしの境界付近でない場合、２種類の前記第１の前記DRコードそれぞれに対応付けられているDRタップパターンのいずれか一方により、１種類の前記第１のDRタップを抽出し、
前記第１のDR検出手段は、抽出された前記第１のDRタップのダイナミックレンジを検出する
請求項４に記載の画像処理装置。
【請求項７】
前記第１のDRタップと前記第１のクラスタップは、同一であり、このとき同時に、前記第２のDRタップと前記第２のクラスタップも、同一である
請求項１に記載の画像処理装置。
【請求項８】
カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出ステップと、
前記第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出ステップと、
前記第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、前記第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される前記第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記第１のDRコードを算出する前記第１の演算により、前記第１の初期DRタップのダイナミックレンジから、前記第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出ステップと、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出ステップと、
前記第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１のDRタップのダイナミックレンジを検出する第１のDR検出ステップと、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出ステップと、
前記第１のクラスタップを構成する画素の画素値を、前記第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成ステップと、
前記第１の量子化コードに対応させて前記第１の注目画素の画素位置を、データベースに記憶する記憶ステップと、
前記カレントフレームを構成する各画素を第２の注目画素に決定し、前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出ステップと、
前記第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出ステップと、
前記第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、前記第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される前記第２の初期DRタップのダイナミックレンジを含む、前記第１の区分よりも狭い第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジから、同一の前記第２のDRコードを算出する前記第２の演算により、前記第２の初期DRタップのダイナミックレンジから、前記第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出ステップと、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出ステップと、
前記第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２のDRタップのダイナミックレンジを検出する第２のDR検出ステップと、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出ステップと、
前記第２のクラスタップを構成する画素の画素値を、前記第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成ステップと、
前記第２の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出しステップと、
読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第２の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出ステップと
を含む画像処理方法。
【請求項９】
コンピュータを、
カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出手段と、
前記第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、
前記第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、前記第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される前記第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記第１のDRコードを算出する前記第１の演算により、前記第１の初期DRタップのダイナミックレンジから、前記第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、
前記第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、
前記第１のクラスタップを構成する画素の画素値を、前記第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、
前記第１の量子化コードに対応させて前記第１の注目画素の画素位置を、データベースに記憶する記憶手段と、
前記カレントフレームを構成する各画素を第２の注目画素に決定し、前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、
前記第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、
前記第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、前記第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される前記第２の初期DRタップのダイナミックレンジを含む、前記第１の区分よりも狭い第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジから、同一の前記第２のDRコードを算出する前記第２の演算により、前記第２の初期DRタップのダイナミックレンジから、前記第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、
前記第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、
前記第２のクラスタップを構成する画素の画素値を、前記第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、
前記第２の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第２の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
して機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
コンピュータを、
カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出手段と、
前記第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、
前記第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、前記第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される前記第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、前記第１の初期DRタップのダイナミックレンジの区分範囲のうち、前記第１の区分に含まれる前記第１の初期DRタップのダイナミックレンジから、同一の前記第１のDRコードを算出する前記第１の演算により、前記第１の初期DRタップのダイナミックレンジから、前記第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、
前記第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、
前記参照フレーム中の前記第１の注目画素と、前記第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、
前記第１のクラスタップを構成する画素の画素値を、前記第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、
前記第１の量子化コードに対応させて前記第１の注目画素の画素位置を、データベースに記憶する記憶手段と、
前記カレントフレームを構成する各画素を第２の注目画素に決定し、前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、
前記第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、
前記第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、前記第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される前記第２の初期DRタップのダイナミックレンジを含む、前記第１の区分よりも狭い第２の区分毎に区切られた、前記第２の初期DRタップのダイナミックレンジの区分範囲のうち、前記第２の区分に含まれる前記第２の初期DRタップのダイナミックレンジから、同一の前記第２のDRコードを算出する前記第２の演算により、前記第２の初期DRタップのダイナミックレンジから、前記第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、前記第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、
前記第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、前記第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、
前記カレントフレーム中の前記第２の注目画素と、前記第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、
前記第２のクラスタップを構成する画素の画素値を、前記第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、
前記第２の量子化コードに対応する、前記参照フレーム中の画素の前記画素位置を、前記データベースから読み出す読出し手段と、
読み出された前記参照フレーム中の画素の前記画素位置のうち、前記カレントフレーム中の前記第２の注目画素の画素位置との距離が最小となる前記画素位置を検出する画素位置検出手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、より正確に動きベクトルを検出できるようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
画像の動きを示す動きベクトルを求め、この動きベクトルに基づいて効率よく動画像を圧縮する技術がある。
【０００３】
この動画像圧縮技術における上述の動きベクトルを求める手法としては、いくつか提案されているが、代表的な手法としてブロックマッチングアルゴリズムと呼ばれる手法がある。
【０００４】
図１は、ブロックマッチングアルゴリズムを採用した従来の画像処理装置の動き検出部１の構成を示している。
【０００５】
動き検出部１のフレームメモリ１１は、例えば、時刻ｔ１において、入力端子Tinから画像信号が入力されると、1フレーム分の情報を格納する。さらに、フレームメモリ１１は、次のタイミングとなる時刻ｔ２において、入力端子Tinから次のフレームの画像信号が入力されると、時刻ｔ１において、格納した1フレーム分の画像情報をフレームメモリ１２に出力した後、新たに入力された1フレーム分の画像情報を格納する。
【０００６】
また、フレームメモリ１２は、時刻ｔ２のタイミングで、フレームメモリ１１から入力されてくる時刻ｔ１のタイミングで入力端子Tinから入力されてきた1フレーム分の画像情報を格納する。
【０００７】
すなわち、フレームメモリ１１が、上述の時刻ｔ２のタイミングで入力される（今現在の）1フレーム分の画像情報を格納するとき、フレームメモリ１２は、時刻ｔ１のタイミングで入力された（１タイミング過去の）1フレーム分の画像情報を格納していることになる。尚、以下において、フレームメモリ１１に格納される画像情報をカレントフレームＦｃ、フレームメモリ１２に格納される画像情報を参照フレームＦｒと称するものとする。
【０００８】
動きベクトル検出部１３は、フレームメモリ１１，１２に格納されているカレントフレームＦｃと参照フレームＦｒをそれぞれから読出し、このカレントフレームＦｃと参照フレームＦｒに基づいて、ブロックマッチングアルゴリズムにより動きベクトルを検出し、出力端子Toutから出力する。
【０００９】
ここで、ブロックマッチングアルゴリズムについて説明する。例えば、図２で示すように、カレントフレームＦｃ内の注目画素Ｐ（ｉ，ｊ）に対応する動きベクトルを求める場合、まず、カレントフレームＦｃ上に注目画素Ｐ（ｉ，ｊ）を中心としたＬ（画素数）×Ｌ（画素数）からなる基準ブロックＢｂ（ｉ，ｊ）、参照フレームＦｒ上に、注目画素Ｐ（ｉ，ｊ）の位置に対応するサーチエリアＳＲ、そして、そのサーチエリアＳＲ内に、Ｌ（画素数）×Ｌ（画素数）の画素からなる参照ブロックＢｒｎ（ｉ，ｊ）がそれぞれ設定される。
【００１０】
次に、この基準ブロックＢｂ（ｉ，ｊ）と、参照ブロックＢｒｎ（ｉ，ｊ）の各画素間の差分の絶対値の和を求める処理が、参照ブロックＢｒｎ（ｉ，ｊ）をサーチエリアＳＲ内の全域で水平方向、または、垂直方向に１画素分ずつ移動させながら、図２中のＢｒ１（ｉ，ｊ）からＢｒｍ（ｉ，ｊ）（参照ブロックＢｒｎ（ｉ，ｊ）が、サーチエリアＳＲ内にｍ個設定できるものとする）まで繰り返される。
【００１１】
このようにして求められた基準ブロックＢｂ（ｉ，ｊ）と、参照ブロックＢｒｎ（ｉ，ｊ）の各画素間の差分絶対値和のうち、差分絶対値和が最小となる参照ブロックＢｒｎ（ｉ，ｊ）を求めることにより、基準ブロックＢｂ（ｉ，ｊ）に最も近い（類似している）参照ブロックＢｒｎ（ｉ，ｊ）を構成するＬ×Ｌ個の画素の中心となる参照画素Ｐｎ（ｉ，ｊ）が求められる。
【００１２】
そして、このカレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の画素Ｐ’（ｉ，ｊ）を始点とし、参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルが、注目画素Ｐ（ｉ，ｊ）の動きベクトル（Ｖｘ，Ｖｙ）として出力される。ここで、例えば、Ｐ（ｉ，ｊ）＝（ａ，ｂ）、および、Ｐｎ（ｉ，ｊ）＝（ｃ，ｄ）である場合、（Ｖｘ，Ｖｙ）は、（Ｖｘ，Ｖｙ）＝（ｃ−ａ，ｄ−ｂ）となる。
【００１３】
すなわち、注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の参照画素Ｐ’（ｉ，ｊ）を始点とし、基準ブロックＢｂ（ｉ，ｊ）に最も近い（類似している）参照ブロックＢｒｎ（ｉ，ｊ）を構成するＬ×Ｌ個の画素の中心となる参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルが動きベクトルとして求められる。
【００１４】
次に、図３のフローチャートを参照して、図１の動き検出部１の動き検出処理について説明する。
【００１５】
ステップＳ１において、動きベクトル検出部１３は、フレームメモリ１１に格納されているカレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）の画素位置に応じて、サーチエリアＳＲを設定する。
【００１６】
ステップＳ２において、動きベクトル検出部１３は、上述のように、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和の最小値を設定する変数Minを、画素の階調数に基準ブロックＢｂ（ｉ，ｊ）を構成する画素数を乗じた値に設定することにより初期化する。すなわち、例えば、１画素が８ビットのデータであった場合、１画素の階調数は、２の８乗となるため２５６階調（２５６色）となる。また、基準ブロックＢｂ（ｉ，ｊ）がＬ画素×Ｌ画素＝３画素×３画素から構成される場合、その画素数は、９個となる。結果として、変数Minは、２３０４（＝２５６（階調数）×９（画素数））に初期化される。
【００１７】
ステップＳ３において、動きベクトル検出部１３は、参照ブロックＢｒｎ（ｉ，ｊ）をカウントするカウンタ変数ｎを１に初期化する。
【００１８】
ステップＳ４において、動きベクトル検出部１３は、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和を代入するために用いる変数Sumを０に初期化する。
【００１９】
ステップＳ５において、動きベクトル検出部１３は、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和（＝Sum）を求める。すなわち、基準ブロックＢｂ（ｉ，ｊ）の各画素がＰ_Ｂｂ（ｉ，ｊ）、基準ブロックＢｒｎ（ｉ，ｊ）の各画素がＰ_Ｂｒｎ（ｉ，ｊ）としてそれぞれ示される場合、動きベクトル検出部１３は、以下の式（１）で示される演算を実行して、基準ブロックＢｂ（ｉ，ｊ）と参照ブロックＢｒｎ（ｉ，ｊ）の画素間の差分絶対値和を求める。
【００２０】
【数１】
0004239556.tif 000002
【００２１】
ステップＳ６において、動きベクトル検出部１３は、変数Minが変数Sumよりも大きいか否かを判定し、例えば、変数Minが変数Sumよりも大きいと判定する場合、ステップＳ７において、変数Minを変数Sumに更新し、その時点でのカウンタｎの値を動きベクトル番号として登録する。すなわち、今求めた差分絶対値和を示す変数Sumが、最小値を示す変数Minよりも小さいと言うことは、これまで演算したどの参照ブロックよりも、今演算している参照ブロックＢｒｎ（ｉ，ｊ）が基準ブロックＢｂ（ｉ，ｊ）により類似したものであるとみなすことができるので、動きベクトルを求める際の候補とするため、その時点でのカウンタｎが動きベクトル番号として登録される。また、ステップＳ６において、変数Minが変数Sumよりも大きくないと判定された場合、ステップＳ７の処理がスキップされる。
【００２２】
ステップＳ８において、動きベクトル検出部１３は、カウンタ変数ｎがサーチエリアＳＲの参照ブロックＢｒｎ（ｉ，ｊ）の総数ｍであるか否か、すなわち、今の参照ブロックＢｒｎ（ｉ，ｊ）がＢｒｎ（ｉ，ｊ）＝Ｂｒｍ（ｉ，ｊ）であるか否かを判定し、例えば、総数ｍではないと判定した場合、ステップＳ９において、カウンタ変数ｎを１インクリメントし、その処理は、ステップＳ４に戻る。
【００２３】
ステップＳ８において、カウンタ変数ｎがサーチエリア内の参照ブロックＢｒｎ（ｉ，ｊ）の総数ｍである、すなわち、今の参照ブロックＢｒｎ（ｉ，ｊ）がＢｒｎ（ｉ，ｊ）＝Ｂｒｍ（ｉ，ｊ）であると判定された場合、ステップＳ１０において、動きベクトル検出部１３は、登録されている動きベクトル番号に基づいて動きベクトルを出力する。すなわち、ステップＳ４乃至Ｓ９が繰り返されることにより、差分絶対値和が最小となる参照ブロックＢｒｎ（ｉ，ｊ）に対応するカウンタ変数ｎが動きベクトル番号として登録されることになるので、動きベクトル検出部１３は、この動きベクトル番号に対応する参照ブロックＢｒｎ（ｉ，ｊ）のＬ×Ｌ個の画素のうち、その中心となる参照画素Ｐｎ（ｉ，ｊ）を求め、カレントフレームＦｃ上の注目画素Ｐ（ｉ，ｊ）に対応する参照フレームＦｒ上の画素Ｐ’（ｉ，ｊ）を始点とし、参照画素Ｐｎ（ｉ，ｊ）を終点とするベクトルを、注目画素Ｐ（ｉ，ｊ）の動きベクトル（Ｖｘ，Ｖｙ）として求めて出力する。
【００２４】
また、ブロックマッチング法により動きベクトルを検出する時に、定常成分および過渡成分の絶対値差分を累算した値の加重平均から得られる評価値に基づいて動きベクトルを検出することにより、演算量を低減させるようにするものがある（例えば、特許文献１参照）。
【００２５】
さらに、参照ブロックおよび探索範囲内の画素値を符号化してコード値に基づいてマッチング演算を行い、演算結果に基づいて第１の動きベクトルを算出し、第１の動きベクトルに応じた動き補償を行った後に第１の動きベクトルに係る候補ブロックを１画素を単位としてずらすことで得られる新たな探索範囲について、画素値の差分に基づくブロックマッチングを行うことにより、第２の動きベクトルを算出して、第１の動きベクトルと第２の動きベクトルの和として最終的な動きベクトルを算出することで、演算を簡素化するものがある（例えば、特許文献２参照）。
【００２６】
【特許文献１】
特開平０７−０８７４９４号公報
【特許文献２】
特開２０００−２７８６９１号公報
【００２７】
【発明が解決しようとする課題】
しかしながら、上述したブロックマッチングアルゴリズムは、式（１）の演算量が非常に膨大なものとなるため、MPEG（Moving Picture Experts Group）等の画像圧縮処理においては、大半の時間がこの処理に費やされてしまうという課題があった。
【００２８】
また、カレントフレームＦｃ、または、参照フレームＦｒの動きベクトルの始点、または、終点付近でノイズが含まれた場合、ブロックマッチングでは基準ブロックに類似する参照ブロックを検出することができず、正確な動きベクトルを検出することができないという課題があった。
【００２９】
本発明はこのような状況に鑑みてなされたものであり、正確に動きベクトルを生成することができるようにするものである。
【００３０】
【課題を解決するための手段】
本発明の画像処理装置は、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１の初期DR(Dynamic Range)タップを抽出する第１の初期DRタップ抽出手段と、第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一の第１のDRコードを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、第１のクラスタップを構成する画素の画素値を、第１のDRタップのダイナミックレンジを用いたADRC(Adaptive Dynamic Range Coding)により量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、第１の量子化コードに対応させて第１の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第２の注目画素に決定し、第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される第２の初期DRタップのダイナミックレンジを含む、第１の区分よりも狭い第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一の第２のDRコードを算出する第２の演算により、第２の初期DRタップのダイナミックレンジから、第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とか���なる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、第２のクラスタップを構成する画素の画素値を、第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、第２の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第２の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段とを備える。
【００３１】
検出された参照フレーム中の画素の画素位置、及びカレントフレーム中の第２の注目画素の画素位置のいずれか一方を始点とし、他方を終点とする動きベクトルを生成する動きベクトル生成手段をさらに設けるようにさせることができる。
【００３２】
第１のDRクラスコード算出手段には、同一のDRコードAが算出される第１の初期DRタップのダイナミックレンジを含む区分を第１の区分とし、第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一のDRコードAを算出するとともに、同一のDRコードAが算出される第１の初期DRタップのダイナミックレンジを含む区分とは異なる、同一のDRコードBが算出される第１の初期DRタップのダイナミックレンジを含む区分を、第１の区分とし、第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一のDRコードBを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、DRコードA及びDRコードBを、２種類の第１のDRコードとして算出させるようにすることができ、第１のDRタップ抽出手段には、２種類の第１のDRコードそれぞれに対応付けられているDRタップパターンにより、２種類の第１のDRタップを抽出させるようにすることができ、第１のDR検出手段には、２種類の第１のDRタップそれぞれのダイナミックレンジを検出させるようにすることができ、第１の量子化コード生成手段には、第１のクラスタップを、２種類の第１のDRタップそれぞれのダイナミックレンジを用いたADRCにより量子化し、２種類の第１の量子化コードを生成させるようにすることができる。
【００３３】
第２のDRクラスコード算出手段には、同一のDRコードCが算出される第２の初期DRタップのダイナミックレンジを含む区分を第２の区分とし、第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一のDRコードCを算出する第２の演算により、、第２の初期DRタップのダイナミックレンジから、DRコードCを、第２のDRコードとして算出させるようにすることができ、第２のDRタップ抽出手段には、第２のDRコードに対応付けられている第２のDRタップのDRタップパターンにより、第２のDRタップを抽出させるようにすることができる。
【００３４】
第２のDRクラスコード算出手段には、第２の演算により、第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジの上位Ａビットから、同一の第２のDRコードを算出させるようにすることができ、第１のDRクラスコード算出手段には、第１の演算により、第２の区分どうしの境界から、所定のビットだけシフトした位置を境界とする第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジの上位（Ａ−１）ビットから、同一の第１のDRコードを算出させるようにすることができる。
【００３５】
第１のDRタップ抽出手段には、第１の初期DRタップのダイナミックレンジが、第２の区分どうしの境界付近である場合、２種類の第１のDRコードそれぞれに対応付けられているDRタップパターンにより、２種類の第１のDRタップを抽出させるようにすることができ、第１の初期DRタップのダイナミックレンジが、第２の区分どうしの境界付近でない場合、２種類の第１のDRコードそれぞれに対応付けられているDRタップパターンのいずれか一方により、１種類の第１のDRタップを抽出させるようにすることができ、第１のDR検出手段には、抽出された第１のDRタップのダイナミックレンジを検出させるようにすることができる。
【００３６】
第１のDRタップと第１のクラスタップは、同一であり、このとき同時に、第２のDRタップと第２のクラスタップも、同一であるものとすることができる。
【００３７】
本発明の画像処理方法は、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出ステップと、第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出ステップと、第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一の第１のDRコードを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出ステップと、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出ステップと、第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１のDRタップのダイナミックレンジを検出する第１のDR検出ステップと、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出ステップと、第１のクラスタップを構成する画素の画素値を、第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成ステップと、第１の量子化コードに対応させて第１の注目画素の画素位置を、データベースに記憶する記憶ステップと、カレントフレームを構成する各画素を第２の注目画素に決定し、第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出ステップと、第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出ステップと、第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される第２の初期DRタップのダイナミックレンジを含む、第１の区分よりも狭い第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一の第２のDRコードを算出する第２の演算により、第２の初期DRタップのダイナミックレンジから、第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出ステップと、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存��する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出ステップと、第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２のDRタップのダイナミックレンジを検出する第２のDR検出ステップと、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出ステップと、第２のクラスタップを構成する画素の画素値を、第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成ステップと、第２の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出しステップと、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第２の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出ステップとを含む。
【００３８】
本発明の記録媒体のプログラムは、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出手段と、第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一の第１のDRコードを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、第１のクラスタップを構成する画素の画素値を、第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、第１の量子化コードに対応させて第１の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第２の注目画素に決定し、第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される第２の初期DRタップのダイナミックレンジを含む、第１の区分よりも狭い第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一の第２のDRコードを算出する第２の演算により、第２の初期DRタップのダイナミックレンジから、第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、第２のクラスタップを構成する画素の画素値を、第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、第２の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第２の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段として機能させるためのプログラムである。
【００３９】
本発明のプログラムは、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素を第１の注目画素に決定し、第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップを抽出する第１の初期DRタップ抽出手段と、第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１の初期DRタップのダイナミックレンジを検出する第１の初期DR検出手段と、第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一の第１のDRコードを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、第１の注目画素に対応する第１のDRコードを算出する第１のDRクラスコード算出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第１のDRコードに対応付けられているDRタップパターンにしたがって抽出する第１のDRタップ抽出手段と、第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１のDRタップのダイナミックレンジを検出する第１のDR検出手段と、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のクラスタップを抽出する第１のクラスタップ抽出手段と、第１のクラスタップを構成する画素の画素値を、第１のDRタップのダイナミックレンジを用いたADRCにより量子化し、第１の量子化コードを生成する第１の量子化コード生成手段と、第１の量子化コードに対応させて第１の注目画素の画素位置を、データベースに記憶する記憶手段と、カレントフレームを構成する各画素を第２の注目画素に決定し、第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップを抽出する第２の初期DRタップ抽出手段と、第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２の初期DRタップのダイナミックレンジを検出する第２の初期DR検出手段と、第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される第２の初期DRタップのダイナミックレンジを含む、第１の区分よりも狭い第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一の第２のDRコードを算出する第２の演算により、第２の初期DRタップのダイナミックレンジから、第２の注目画素に対応する第２のDRコードを算出する第２のDRクラスコード算出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のDRタップを、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第２のDRコードに対応付けられているDRタップパターンにしたがって抽出する第２のDRタップ抽出手段と、第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２のDRタップのダイナミックレンジを検出する第２のDR検出手段と、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のクラスタップを抽出する第２のクラスタップ抽出手段と、第２のクラスタップを構成する画素の画素値を、第２のDRタップのダイナミックレンジを用いたADRCにより量子化し、第２の量子化コードを生成する第２の量子化コード生成手段と、第２の量子化コードに対応する、参照フレーム中の画素の画素位置を、データベースから読み出す読出し手段と、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第２の注目画素の画素位置との距離が最小となる画素位置を検出する画素位置検出手段として機能させるためのプログラムである。
【００４０】
本発明の画像処理装置および方法、並びにプログラムにおいては、カレントフレームよりも、時間的に過去の参照フレームを構成する各画素が第１の注目画素に決定され、第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１の初期DRタップが抽出され、第１の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１の初期DRタップのダイナミックレンジが検出され、第１の初期DRタップのダイナミックレンジに基づいて、複数の第１のDRコードのうち、第１の注目画素に対応する第１のDRコードを算出する第１の演算であって、同一の第１のDRコードが算出される第１の初期DRタップのダイナミックレンジを含む第１の区分毎に区切られた、第１の初期DRタップのダイナミックレンジの区分範囲のうち、第１の区分に含まれる第１の初期DRタップのダイナミックレンジから、同一の第１のDRコードを算出する第１の演算により、第１の初期DRタップのダイナミックレンジから、第１の注目画素に対応する第１のDRコードが算出され、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のDRタップが、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第１のDRコードに対応付けられているDRタップパターンにしたがって抽出され、第１のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第１のDRタップのダイナミックレンジが検出され、参照フレーム中の第１の注目画素と、第１の注目画素の周辺に存在する画素とからなる第１のクラスタップが抽出され、第１のクラスタップを構成する画素の画素値が、第１のDRタップのダイナミックレンジを用いたADRCにより量子化されて、第１の量子化コードが生成され、第１の量子化コードに対応させて第１の注目画素の画素位置が、データベースに記憶され、カレントフレームを構成する各画素が第２の注目画素に決定され、第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２の初期DRタップが抽出され、第２の初期DRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２の初期DRタップのダイナミックレンジが検出され、第２の初期DRタップのダイナミックレンジに基づいて、複数の第２のDRコードのうち、第２の注目画素に対応する第２のDRコードを算出する第２の演算であって、同一の第２のDRコードが算出される第２の初期DRタップのダイナミックレンジを含む、第１の区分よりも狭い第２の区分毎に区切られた、第２の初期DRタップのダイナミックレンジの区分範囲のうち、第２の区分に含まれる第２の初期DRタップのダイナミックレンジから、同一の第２のDRコードを算出する第２の演算により、第２の初期DRタップのダイナミックレンジから、第２の注目画素に対応する第２のDRコードが算出され、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のDRタップが、予め、複数のDRコードそれぞれに対応付けられているDRタップパターンのうち、第２のDRコードに対応付けられているDRタップパターンにしたがって抽出され、第２のDRタップを構成する複数の画素の画素値のうち、最大値から最小値を差し引いた値である、第２のDRタップのダイナミックレンジが検出され、カレントフレーム中の第２の注目画素と、第２の注目画素の周辺に存在する画素とからなる第２のクラスタップが抽出され、第２のクラスタップを構成する画素の画素値が、第２のDRタップのダイナミックレンジを用いたADRCにより量子化されて、第２の量子化コードが生成され、第２の量子化コードに対応する、参照フレーム中の画素の画素位置が、データベースから読み出され、読み出された参照フレーム中の画素の画素位置のうち、カレントフレーム中の第２の注目画素の画素位置との距離が最小となる画素位置が検出される。
【００４１】
【発明の実施の形態】
図４は、本発明を適用した画像処理装置の動き検出部２１の構成を示すブロック図である。
【００４２】
動き検出部２１は、フレームメモリ３１，３２、参照フレーム特徴量抽出部３３、データベース制御部３４、カレントフレーム特徴量抽出部３５、および、動きベクトル検出部３６で構成されている。
【００４３】
フレームメモリ３１は、入力端子Ｔｉｎから入力された画像信号の１画面（１フレーム）の情報を格納し、フレームメモリ３２、および、カレントフレーム特徴量抽出部３５に供給する。フレームメモリ３２は、フレームメモリ３１から１フレーム分の情報が入力されると、それまでに記憶していた１フレーム分の情報を参照フレーム特徴量抽出部３３に出力する。すなわち、フレームメモリ３１から１フレーム分の情報がカレントフレーム特徴量抽出部３５に出力されるとき、そのタイミングより、１フレーム前の情報がフレームメモリ３２から参照フレーム特徴量抽出部３３に出力される。尚、以下の説明において、フレームメモリ３１からカレントフレーム特徴量抽出部３５に出力されるフレームの情報をカレントフレームＦｃの情報と称すると共に、フレームメモリ３２から参照フレーム特徴量抽出部３３に出力されるフレームの情報を参照フレームＦｒの情報と称する（上述の図２を参照して説明したカレントフレームＦｃと参照フレームＦｒの関係と同様である）。
【００４４】
参照フレーム特徴量抽出部３３は、フレームメモリ３２から供給された画面情報、すなわち参照フレームＦｃの情報を基に、参照フレーム上に存在する全ての画素の特徴量を抽出する。
【００４５】
参照フレーム特徴量抽出部３３は、注目画素毎に初期DR（Dynamic Range）タップを抽出し、初期DRタップのDRを求め、求められたDRから２種類のDRクラスを決定する。そして、参照フレーム特徴量抽出部３３は、２種類のDRクラスに基づいた２種類のDRタップに基づいて、参照フレームＦｒ中の注目画素の量子化コード（ADRC（Adaptive Dynamic Range Coding）コード）を求めるための２種類のDR、および、最小値をそれぞれ求める。さらに、参照フレーム特徴量抽出部３３は、注目画素に対応するクラスタップを抽出し、上述の２種類のDR、および、最小値から２種類の量子化コードを参照フレームＦｒの特徴量情報として生成して、データベース制御部３４に出力する。尚、参照フレーム特徴量抽出部３３の処理については、詳細を後述する。
【００４６】
データベース制御部３４は、参照フレーム特徴量抽出部３３から入力される参照フレームＦｒの特徴量情報に基づいて、特徴量をアドレスとして画素の位置情報をデータベース４１に格納することにより、参照フレーム情報を生成する。データベース制御部３４は、内部に、処理済の画素数をカウントするためのカウンタを有している。
【００４７】
次に、図５を参照して、データベース４１に格納される参照フレーム情報の構成について説明する。
【００４８】
データベース４１は、特徴量アドレス０乃至ａと、フラグアドレス０乃至ｂによって示されるａ×ｂ個のセルにより構成されている。データベース制御部３４は、画素の特徴量を特徴量アドレスに対応付けて、特徴量毎にその特徴量を持つ画素位置の情報を、データベース４１の、特徴量アドレスに対応するフラグアドレス１乃至ｂに順次格納する。そして、フラグアドレス０には、現在、その特徴量アドレスに格納されている画素位置の情報の数が、順次、インクリメントされて格納される。具体的には、特徴量アドレス１に、１つの画素位置の情報がセル（１，１）に格納されている場合、セル（１，０）には、格納されている画素位置の情報の数として、１が格納される。そして、次の注目画素の特徴量が、特徴量アドレス１に対応するものであった場合、セル（１，０）に格納されている値は、インクリメントされて２となり、注目画素の位置情報が、セル（１，２）に格納される。
【００４９】
再び、図４に戻り、動き検出部２１の構成について説明する。
【００５０】
カレントフレーム特徴量抽出部３５は、カレントフレームの注目画素毎に初期DRタップを抽出し、初期DRタップのDRを求め、求められたDRからDRクラスを決定する。そして、カレントフレーム特徴量抽出部３３は、DRクラスに基づいたDRタップに基づいて、カレントフレームＦｃ中の注目画素の量子化コード（ADRCコード）を求めるためのDR、および、最小値をそれぞれ求める。さらに、カレントフレーム特徴量抽出部３３は、注目画素に対応するクラスタップを抽出し、上述のDR、および、最小値から量子化コードをカレントフレームＦｃの特徴量情報として生成して、動きベクトル検出部３６に出力する。尚、カレントフレーム特徴量抽出部３５の処理については、詳細を後述する。
【００５１】
動きベクトル検出部３６は、カレントフレーム特徴量抽出部３５から供給されたカレントフレームＦｃの特徴量情報と、データベース制御部３４のデータベース４１に記憶されている情報とのマッチング処理を実行して、動きベクトルを検出する。動きベクトル検出部３６は、具体的には、カレントフレームＦｃの注目画素の特徴量に対応する、データベース４１の特徴量アドレスに記載されている、複数の候補それぞれの画素位置と注目画素の距離を演算し、算出された距離が最小である画素位置の情報に基づいて、差分座標を注目画素の動きベクトル（Ｖｘ，Ｖｙ）として検出する。
【００５２】
動きベクトル検出部３６は、検出した動きベクトルＭの値が想定される動きベクトルの最大値M_Maxより小さいときは（規定範囲内にあるとき）、正しい動きベクトルとして判定し、端子Ｔoutから出力する。また、動きベクトル検出部３６は、検出した動きベクトルＭの値が想定される動きベクトルの最大値M_Maxより大きいときは（規定範囲外にあるとき（等しい場合も含む））、対応していない位置の動きベクトルと判定し、カレントフレーム内の画素とデータベース４１で近い特徴量のアドレスを生成して、近傍の特徴量のアドレスに属する画素位置の情報に基づいて再度マッチング処理を行う。なお、動きベクトル検出部３６は、たとえば近傍の特徴量の選択においてビット反転を行うが、このとき注目画素のパターンに応じてビット反転の形態を変更する。
【００５３】
次に、図６のフローチャートを参照して、参照フレーム情報生成処理について説明する。
【００５４】
ステップＳ３１において、データベース制御部３４は、データベース４１に登録されている参照フレーム情報を初期化する。すなわち、データベース制御部３４は、全ての特徴量アドレスに対応するフラグアドレス０のセルに０を書き込み、フラグアドレス１乃至ｂに格納されている画素位置の情報を削除する。
【００５５】
ステップＳ３２において、データベース制御部３４は、フレームメモリ３１内の画素をカウントするカウンタのカウンタ変数ｎを０に初期化する。
【００５６】
ステップＳ３３において、参照フレーム特徴量抽出部３３は、フレームメモリ３２に記憶されている画像情報（参照フレームＦｃ）の各画素に対応する２種類の量子化コード（ADRCコード）を参照フレームＦｒの特徴量情報として生成して、データベース制御部３４に出力する。尚、参照フレーム特徴量算出処理については、図１６のフローチャートを参照して後述する。
【００５７】
ステップＳ３４において、データベース制御部３４は、参照フレーム特徴量抽出部３３において抽出された参照フレームＦｒの注目画素の２種類の特徴量（後述するコードＡおよびコードＢ）を読出し、データベース４１から、２種類のそれぞれの特徴量に対応する特徴量アドレスの、フラグアドレス０に記載されている値Ｋを読み込む。上述したように、１つの注目画素に対して、２種類の特徴量が決定されるので、２箇所の特徴量アドレスに対応する値Ｋが読み出される。
【００５８】
ステップＳ３５において、データベース制御部３４は、ステップＳ３５において読み出した値Ｋを、それぞれ１だけインクリメントして（K=K＋１として）、データベース４１の対応する特徴量アドレスの、フラグアドレス０に書き込む。
【００５９】
ステップＳ３６において、データベース制御部３４は、参照フレーム特徴量抽出部３３より入力された参照フレームＦｒの情報から、注目画素の位置情報を読み出し、データベース４１の対応する特徴量アドレスのフラグアドレスＫ＋１に、注目画素の位置情報を書き込む。
【００６０】
ステップＳ３７において、データベース制御部３４は、カウンタ変数ｎをインクリメントして、ｎ＝ｎ＋１とする。
【００６１】
ステップＳ３８において、データベース制御部３４は、カウンタ変数ｎ＝1フレームの画素数であるか否かを判定する。ステップＳ３８において、カウンタ変数ｎ＝１フレームの画素数ではないと判定された場合、処理は、ステップＳ３３に戻り、それ以降の処理が繰り返される。ステップＳ３８において、カウンタ変数ｎ＝１フレームの画素数であると判定された場合、処理は、終了される。
【００６２】
次に、図７，図８のフローチャートを参照して、図４の動き検出部２１による動きベクトル検出処理について説明する。
【００６３】
ステップＳ５１において、動きベクトル検出部３６は、１フレームの画素数をカウントするカウント変数ｓを０に初期化する。
【００６４】
ステップＳ５２において、カレントフレーム特徴量抽出部３５は、フレームメモリ３１に記憶されているカレントフレームＦｃに基づいて、カレントフレーム特徴量抽出処理を実行して、カレントフレームＦｃの注目画素Ｐｎの特徴量情報を動きベクトル検出部３６に出力する。尚、カレントフレーム特徴量抽出処理については、図２０のフローチャートを参照して後述する。
【００６５】
ステップＳ５３において、動きベクトル検出部３６は、カレントフレーム特徴量抽出部３５より入力された特徴量の特徴量アドレスに対応する、データベース４１上のセル（特徴量アドレス，０）に記録されている値を読み込み、同じ特徴量に分類される画素数（候補数：画素位置の情報の数）を変数ｔｓに代入する。また、動きベクトル検出部３６は、候補数カウンタを示すカウンタ変数ｔを１に、距離の最小値を示す変数Minを∞に、距離を示すカウンタ変数Ｌを０にそれぞれ初期化する。
【００６６】
ステップＳ５４において、動きベクトル検出部３６は、カレントフレームＦｃ内の注目画素Ｐｎとデータベース制御部３５から読み込んだデータベース４１上の（特徴量アドレス，ｔ）に記録されている画素位置の情報との距離を演算して、変数Ｌに代入する。
【００６７】
ステップＳ５５において、動きベクトル検出部３６は、ステップＳ５４の処理で求められた距離Ｌが最小値を示す変数Minよりも小さいか否かを判定し、例えば、変数Min＞距離Ｌであると判定した場合、ステップＳ５６において、変数Minを距離Lに更新し、そのときの変数ｔを動きベクトル番号として登録する。また、変数Min≦距離Ｌであると判定された場合、ステップＳ５６の処理はスキップされる。
【００６８】
ステップＳ５７において、動きベクトル検出部３６は、候補カウンタ変数ｔが候補数の変数ｔｓ以上であるか否かを判定し、候補カウンタ変数ｔが候補数の変数ｔｓ以上ではないと判定した場合、すなわち、候補となる未処理の画素が存在する場合、ステップＳ５８において、変数ｔを１インクリメントして、その処理は、ステップＳ５４に戻る。
【００６９】
すなわち、候補カウンタ変数ｔが候補数の変数ｔｓ以上ではないということは、データベース４１上に記録されている、注目画素の特徴量と同一の特徴量に分類された画素位置の情報のうち、ステップＳ５４乃至Ｓ５６の処理がなされていない画素位置の情報が存在することになるので、候補となる全ての画素位置の情報について、ステップＳ５４乃至Ｓ５７の処理が施されるまで、その処理が繰り返される。
【００７０】
ステップＳ５７において、変数ｔが変数ｔｓ以上であると判定された場合、すなわち、注目画素の特徴量と同一の特徴量を有する全ての画素の画素位置と注目画素との距離が比較されたと判定された場合、ステップＳ５９において、動きベクトル検出部３６は、ステップＳ５６の処理で登録した動きベクトル番号に対応する画素位置を始点とし、注目画素位置を終点とする動きベクトルＭを求める。
【００７１】
ステップＳ６０において、動きベクトル検出部３６は、求められた動きベクトルＭの絶対値と、動きベクトルＭの想定される最大値M_Maxとを比較し、動きベクトルＭの絶対値が最大値M_Maxよりも小さいか否かを判定し、例えば、動きベクトルＭの絶対値が最大値M_Maxよりも小さいと判定した場合、その処理は、ステップＳ６１に進む。
【００７２】
ステップＳ６１において、動きベクトル検出部３６は、ステップＳ５９の処理で求められた動きベクトルＭを出力端子Toutから出力し、ステップＳ６２において、変数ｓを１インクリメントする。
【００７３】
ステップＳ６３において、動きベクトル検出部３６は、変数ｓがフレーム内の画素数と一致するか否かを判定し、例えば、変数ｓがフレーム内の画素数と一致しないと判定した場合、すなわち、まだ、処理すべき画素が存在すると判定する場合、その処理は、ステップＳ５２に戻り、例えば、変数ｓがフレーム内の画素数と一致すると判定した場合、すなわち、全ての画素について処理がなされたと判定された場合、その処理は終了する。
【００７４】
ステップＳ６０において、動きベクトルＭの絶対値が最大値M_Maxよりも小さくないと判定された場合、すなわち、注目画素と同じ特徴量を有する参照フレームの画素のうち、注目画素と最も近い位置に存在する画素との距離が想定していた距離M_Maxよりも離れていた（大きかった）場合、その処理は、ステップＳ６４（図８）に進む。
【００７５】
ステップＳ６４（図８）において、動きベクトル検出部３６は、反転ビット数を示す変数ｕを１に初期化する。
【００７６】
ステップＳ６５において、動きベクトル検出部３６は、注目画素の特徴量を示す量子化コードのうちｕビットを反転させる。すなわち、最初の処理では注目画素の特徴量を示す量子化コードを構成する複数ビットのうちのいずれか１ビットが反転される。
【００７７】
ステップＳ６６において、動きベクトル検出部３６は、ｕビットだけ反転した特徴量を特徴量アドレスに対応する、データベース４１上の（特徴量アドレス，０）に記録されている値を読み込み、同じ特徴量に分類される画素数（候補数：画素位置の情報の数）を変数ｔｓに代入する。また、動きベクトル検出部３６は、候補数カウンタを示すカウンタ変数ｔを１に、距離の最小値を意味する変数Minを∞に、距離を示すカウンタ変数Ｌを０にそれぞれ初期化する。
【００７８】
ステップＳ６７において、動きベクトル検出部３６は、カレントフレームＦｃ内の注目画素Ｐｎと、データベース制御部３５から読み込んだデータベース４１上の（特徴量アドレス，ｔ）に記録されている画素位置との距離を演算して、変数Ｌに代入する。
【００７９】
ステップＳ６８において、動きベクトル検出部３６は、ステップＳ６７の処理で求められた距離Ｌが距離の最小値の変数Minよりも小さいか否かを判定し、例えば、変数Min＞距離Ｌであると判定した場合、ステップＳ６９において、最小値の変数Minを距離Lに更新し、そのときの変数ｔを動きベクトル番号として登録する。また、変数Min≦距離Ｌであると判定された場合、ステップＳ６９の処理はスキップされる。
【００８０】
ステップＳ７０において、動きベクトル検出部３６は、候補カウンタ変数ｔが候補数の変数ｔｓ以上であるか否かを判定し、候補カウンタ変数ｔが候補数の変数ｔｓ以上ではないと判定した場合、すなわち、候補となる未処理の画素が存在するとみなし、ステップＳ７１において、変数ｔを１インクリメントして、その処理は、ステップＳ６７に戻る。
【００８１】
すなわち、候補カウンタ変数ｔが候補数の変数ｔｓ以上ではないということは、データベース４１上に記録されている、注目画素の特徴量がｕビット反転された特徴量と同一の特徴量に分類された画素位置の情報のうち、ステップＳ６７乃至Ｓ６９の処理がなされていない画素が存在することになるので、候補となる全ての画素について、ステップＳ６７乃至Ｓ６９の処理が施されるまで、その処理が繰り返される。
【００８２】
ステップＳ７０において、変数ｔが変数ｔｓ以上であると判定された場合、すなわち、注目画素の特徴量のうちｕビット反転された特徴量と同一の特徴量を有する全ての画素の画素位置と注目画素との距離が比較されたと判定された場合、ステップＳ７２において、注目画素の特徴量のうち反転させていないビットの組み合わせがあるか否かを判定し、まだ、反転させていないビットが、または、反転させていないビットの組み合わせがあると判定した場合、その処理は、ステップＳ６５に戻る。
【００８３】
ステップＳ７２において、反転させていないビットが存在しないと判定された場合、ステップＳ７３において、動きベクトル検出部３６は、ステップＳ６９の処理で登録した動きベクトル番号に対応する画素位置を始点とし、注目画素位置を終点とする動きベクトルＭを求める。
【００８４】
ステップＳ７４において、動きベクトル検出部３６は、求められた動きベクトルＭの大きさの絶対値と、動きベクトルＭの大きさとして想定される最大値M_Maxとを比較し、動きベクトルＭの絶対値が最大値M_Maxよりも小さいか否かを判定し、例えば、動きベクトルＭの絶対値が最大値M_Maxよりも小さいと判定した場合、その処理は、ステップＳ６１に戻る。
【００８５】
ステップＳ７４において、動きベクトルＭの絶対値が最大値M_Maxよりも小さくないと判定された場合、すなわち、注目画素の特徴量のうちｕビット反転された特徴量と同じ特徴量を有する参照フレームの画素のうち、注目画素と最も近い位置に存在する画素との距離が想定していた距離よりも離れていた場合、ステップＳ７５において、変数ｕを１インクリメントして、その処理は、ステップＳ６５に戻る。
【００８６】
すなわち、ステップＳ５１乃至Ｓ６３の処理により、注目画素Ｐｎの特徴量と同一の特徴量として分類されている画素と、注目画素との距離を順次演算し、最小となる画素を求め、その求められた画素位置の情報と注目画素Ｐｎの画素位置の情報から動きベクトルを生成して、出力する。
【００８７】
ただし、ステップＳ６０において、生成された動きベクトルMの絶対値が、最大値M_Maxよりも大きい場合、正しく求められた動きベクトルではないと判定され、ステップＳ６４乃至Ｓ７５の処理により、注目画素Ｐｎの特徴量に類似した近傍の特徴量に属する（分類される）画素と、注目画素Ｐｎとの距離を順次求めて、その距離が最小となる画素を求め、動きベクトルを求める。
【００８８】
すなわち、動き物体のある部分の特徴量が隣接フレームで少量変化することがありうる。
【００８９】
特徴量空間の各要素間は直交の関係にあるため、ある特徴量は図８のｄ−ａ１のように要素の個数を軸とした特徴量空間で定義される。すなわち、ｄ−ａ１で示す座標に特徴量を抽出した画素の空間座標をリンクさせる。
【００９０】
ある特徴量に対して近傍の特徴量（ある特徴量に対して類似する特徴量）は、図８中ｄ−ａ２で示すように、各特徴量空間内の軸ｘ，ｙ，ｚの値に対してある範囲の振れ幅を許容する領域として定義される。特徴量抽出部３２から出力される特徴量は、量子化コードであり、例えば、３ビットの量子化コードとして「０００」が出力される場合、最も近傍の特徴量は、ハミング距離が１となる「００１」、「０１０」、および「１００」となる。結果として、図８において、注目画素の特徴量が「０００」である場合、図中ｄ−ａ２で定義される範囲に含まれる特徴量（類似する特徴量）は、「００１」、「０１０」、および「１００」となる。
【００９１】
そこで、ステップＳ６５乃至Ｓ７２の処理においては、上述したようにいずれかｕビットのデータを反転させた（０ならば１に、１ならば０に反転させた）ときに求められる特徴量に属する画素と注目画素との距離を求めて最小となる画素と注目画素の画素位置の情報から動きベクトルＭを生成し、大きさが最大値M_Max以下となる動きベクトルＭが生成されるまで、反転させるビット数ｕを大きくしながらその処理を繰り返す。すなわち、注目画素の特徴量を示す量子化コードとのハミング距離を徐々に大きくしながら、注目画素との距離が最小となる画素を求める処理を繰り返す。
【００９２】
この場合、演算内容はアドレス参照と差分演算と分岐のみなので、演算量が大幅に増大することはない。
【００９３】
画素値としては、たとえば１画素＝８ビットとした場合、コンピュータグラフィックス（ＣＧ）のような画像はフルビット（８ビット）情報でマッチング処理を行うことができるが、自然画像の場合は、フレーム毎にバラツキを含むので、複数ビットのうち所定ビットを除いて、マッチング処理を行うことが望ましい。具体的には、下位数ビットをマスクして使用してもよいし、ビット数を少なくして再量子化しても良い。つまり、非線形／線形な量子化におけるビット数を削減する（量子化ビット数を少なくする）ことが望ましい。
【００９４】
次に、参照フレーム特徴量抽出部３３について詳細を説明する。
【００９５】
図１０は、参照フレーム特徴量抽出部３３の構成例を示したブロック図である。
【００９６】
DRタップ抽出部５１は、入力された画像情報のうち、特徴量の抽出に必要な注目画素に対応する周辺画素のDRを求めるためのタップ（初期DRタップ）を抽出する。初期DRタップは、例えば、図１１で示すように、注目画素を中心とした３画素×３画素の合計９画素などから構成するようにしてもよい。尚、図１１において、黒丸は、注目画素を示す。また、以降においても、同様に示す。
【００９７】
また、DRタップ抽出部５１は、初期DRタップのDRに基づいて、DRクラス演算部５４から入力されたDRクラスと、対応するDRタップパターンの関係を示すテーブルからなるDRタップテーブル５１ａを有しており、DRクラス演算部５４から入力された２種類のDRクラスに対応する２種類のパターンでDRタップを抽出し、DR演算部５２に出力する。
【００９８】
従って、DRタップ抽出部５１は、１つの注目画素について、初期DRタップ、および、DRタップのDRに基づいた２種類のDRクラスに対応するDRタップの合計３種類のDRタップを抽出して、合計３回の処理でDR演算部５２に出力する。
【００９９】
DR（ダイナミックレンジ）演算部５２は、DRタップ抽出部５１より入力される初期DRタップの情報（画素値）からDRを求め、求めたDRをDRクラス演算部５４に出力する。また、DR演算部５２は、DRタップ抽出部５１から入力される２種類のDRタップ（初期DRタップにより設定された２種類のDRクラスに対応するタップ）の情報から２種類のDRを求め、ADRC（Adaptive Dynamic Range Coding）コード生成部５３に出力すると共に、DRを求める際に得られる最小値の情報をADRCコード生成部５３に出力する。従って、DRタップ演算部５２は、初期DRタップが入力された場合、DRを求めて、DRクラス演算部５４に出力し、そのDRにより決定された２種類のDRクラスに基づいて設定された２種類のDRタップについて、２種類のDRと最小値をADRCコード生成部５３に出力する。
【０１００】
例えば、DRタップ（または、初期DRタップ）が、画素Ｃ１，Ｃ２，Ｃ３，Ｃ４の４画素であった場合、各DRタップＣ１乃至Ｃ４の情報（画素値レベル）が、（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝（６０，９０，５１，１００）であるとき、その関係は、図１２で示すようになる。このような場合、ダイナミックレンジは、画素値レベルの最小値と最大値の差として定義され、その値は、以下の式（２）で定義される。
DR＝Max−Min＋１・・・（２）
【０１０１】
ここで、Maxは、DRタップの情報である画素値レベルの最大値であり、Minは、DRタップの画素値レベルの最小値を示す。ここで、１を加算するのは、クラスを定義するためである（例えば、０，１で示されるクラスを設定する場合、両者の差分は１であるが、クラスとしては２クラスとなるため、差分に１を加算する）。従って、図１２の場合、DRタップＣ３の画素値レベル１００が最大値であり、DRタップＣ１の画素値レベル５１が最小値となるので、DRは、５０（＝１００−５１＋１）となる。
【０１０２】
このように、DR演算部５２は、DRを演算するにあたり、DRタップの画素値レベルのうちの最小値と最大値を検出することになるので、初期DRタップのDRに基づいて、設定された２種類のDRタップの最小値（または最大値：最小値は、最大値とDRから求めることができる）をDRと共にADRCコード生成部５３に出力することができる。
【０１０３】
DRクラス演算部５４は、DR演算部５２より入力される初期DRタップのDRの値に基づいて、２種類のDRクラスをコードＡ，Ｂとして求め、DRクラスタップ抽出部５１に出力する。より詳細には、例えば、画素値が８ビットに量子化されていた場合、DRクラス演算部５４は、コードＡ，Ｂとして、８ビットのDRの上位３ビットを用いて、コード化を実行する。すなわち、８ビットで示されるDR０乃至２＾８−１（「＾」はべき乗を示す）が、２＾３種類のコードで示されるのであるが、ここでは、２種類のコードを算出する。従って、算出されるコードの種類の総数は、２＾３×２種類（２＾４種類）となる。具体的には、次の式（３）および式（４）により、コードＡ（ｃｏｄｅＡ）およびコードＢ（ｃｏｄｅＢ）が算出される。
ｃｏｄｅＡ＝Round（｛DR（ｘ，ｙ）＋８｝／３２）×２・・・（３）
ｃｏｄｅＢ＝Round（｛DR（ｘ，ｙ）−８｝／３２）×２＋１・・・（４）
【０１０４】
ここで、DR（ｘ，ｙ）は、注目画素（ｘ，ｙ）に対応する初期DRタップのDRを示し、Roundは（）内の計算値の小数点以下を切り捨てることを示すものである。
【０１０５】
クラスタップ抽出部５５は、入力された画像情報のうち、特徴量（ADRCコード）の抽出に必要な注目画素に対応する周辺画素（クラスタップ）の情報（画素値）を抽出しADRCコード生成部５３に出力する。クラスタップは、例えば、図１１で示すように、注目画素を中心とした３画素×３画素の合計９画素などから構成するようにしてもよい（すなわち、初期DRタップと同様のものでもよい）し、それ以外のパターン、または、それ以外の個数のタップであってもよい。
【０１０６】
ADRCコード生成部５３は、DR演算部５２より入力されたDRの値および最小値Min、並びに、クラスタップ抽出部５５から入力されたクラスタップの各画素値レベルに基づいて、ADRCコードからなる量子化コードを生成して出力する。
より詳細には、ADRCコードは、クラスタップの各画素値レベルを以下の式（５）に代入することにより求められる。
Ｑ＝Round（（Ｌ−Min＋０．５）×（２＾ｎ）／DR）・・・（５）
【０１０７】
ここで、Round（）は小数点以下の切り捨てを、Lは画素値レベルを、ｎは割り当てビット数を、（２＾ｎ）は２のｎ乗を、それぞれ示している。
【０１０８】
従って、例えば、割り当てビット数ｎが１であった場合、各クラスタップの画素値レベルは、以下の式（６）で示される閾値ｔｈ以上であれば１であり、閾値ｔｈより小さければ０とされる。
ｔｈ＝DR／２−０．５＋Min・・・（６）
【０１０９】
結果として、割り当てビット数ｎが１である場合、クラスタップが図１２で示すようなDRタップと同様の場合、閾値ｔｈは、７５．５（＝５０／２−０．５＋５１）となるので、ADRCコードは、ADRC（Ｃ１，Ｃ２，Ｃ３，Ｃ４）＝０１０１となる。
【０１１０】
また、ADRCコード生成部５３には、上述のようにコードＡ，Ｂに対応する２種類のDRと最小値が入力される。そこで、ADRCコード生成部５３は、順次入力されるコードＡ，Ｂに対応するADRCコードの何れか一方生成された後、自らのバッファ５３ａに記憶し、さらに、残された他方のコードＡ，Ｂのいずれかに対応するADRCコードが生成されると、バッファ５３ａに記憶されたADRCコードと共に出力する。すなわち、ADRCコード生成部５３は、２種類のADRCコードが生成された時点で、２種類のADRCコードを同じタイミングで出力する。
【０１１１】
次に、図１３を参照して、カレントフレーム特徴量抽出部３５の構成について説明する。カレントフレーム特徴量抽出部３５は、基本的に参照フレーム特徴量抽出部３３と同様の機能を有するものである。すなわち、カレントフレーム特徴量抽出部３５のDRタップ抽出部７１、DR演算部７２、ADRCコード生成部７３、クラス演算部７４、および、クラスタップ抽出部７５は、参照フレーム特徴量抽出部３３のDRタップ抽出部５１、DR演算部５２、ADRCコード生成部５３、クラス演算部５４、および、クラスタップ抽出部５５に対応するものであるが、DRクラス演算部７４は、1種類のDRクラス（後述するコードＣ）のみが入力されることになるので、DRタップ抽出部７１は、初期DRタップを抽出して、DR演算部７２に出力すると共に、DRクラス演算部７４より入力されるDRクラス（コードＣ）に対応するパターンをDRタップテーブル７１ａより読出し、読み出したパターンのDRタップを抽出し、DR演算部７２に出力する。すなわち、DRタップ抽出部７１からは、初期DRタップと、そのDRタップのDRに基づいて決定されたDRクラスの情報に対応するDRタップの２種類のDRタップを抽出してDR演算部７２に出力する。
【０１１２】
また、DRクラス演算部７４は、DR演算部５２より入力される初期DRタップのDRに基づいて、１種類のDRクラスをコードＣとして求め、DRクラスタップ抽出部７１に出力する。より詳細には、例えば、画素値が８ビットに量子化されていた場合、DRクラス演算部７４は、コードＣとして、８ビットのDRの上位４ビットを用いて、コード化を実行する。すなわち、８ビットで示されるDR０乃至２＾８−１が、２＾４種類のコードで示されるのであるが、上述のように、参照フレーム特徴量抽出部３５のDRクラス演算部５４により算出される２種類のコードの種類の総数は、２＾３×２種類（２＾４種類）となり、同数となっている。具体的には、次の式（７）により、コードＣ（ｃｏｄｅＣ）が算出される。
ｃｏｄｅＣ＝Round（DR（ｘ，ｙ）／１６）・・・（７）
【０１１３】
このようにDR演算部７２よりADRCコード生成部７３に出力されるDR、および、最小値は、１種類であるので、ADRCコード生成部７３から出力されるADRCコードは、１個の注目画素について１個となり、このため、ADRCコード生成部７３には、ADRCコード生成部５３に設けられていたバッファは設けられていない。尚、クラスタップ抽出部７５は、クラスタップ抽出部５５と全く同様のものであり、注目画素に対応するADRCコードを生成するためのクラスタップを抽出し、ADRCコード生成部７３に出力する。
【０１１４】
次に、DRクラス演算部５４，７４より出力されるDRクラスに対応する、DRタップ抽出部５１，７１のタップテーブル５１ａ，７１ａに記録されているテーブルの構成について説明する。
【０１１５】
DRクラスは、DRの大きさに比例して設定される値であり、DRが小さければ小さいほど小さなクラスとなる。すなわち、例えば、画素値が８ビットで示される場合、上位４ビットからなる２＾４のクラスに設定される。そして、DRタップ抽出部５１，７１のDRタップテーブル５１ａ，７１ａは、図１４で示すような構造となっている。すなわち、図中左側に示すように、DRクラスに応じて、DRタップパターンを示すコードが予め設定されており、図１４の場合、DRクラスが０のとき、DRタップパターンはＴＡＰ−０、DRクラスが１のとき、DRタップパターンはＴＡＰ−１、DRクラスが２のとき、DRタップパターンはＴＡＰ−２、DRクラスが３のとき、DRタップパターンはＴＡＰ−３、DRクラスが４のとき、DRタップパターンはＴＡＰ−４、DRクラスが５以上のとき、DRタップパターンはＴＡＰ−４にそれぞれ設定されている。
【０１１６】
ここで、ＴＡＰ−０乃至ＴＡＰ−４のコードで設定されるDRタップは、例えば、図１５で示すような関係となる。すなわち、図１５の場合、ＴＡＰ−０のコードで示すDRタップは、注目画素を中心とした１１画素×１１画素、ＴＡＰ−１のコードで示すDRタップは、注目画素を中心とした９画素×９画素、ＴＡＰ−２のコードで示すDRタップは、注目画素を中心とした７画素×７画素、ＴＡＰ−３のコードで示すDRタップは、注目画素を中心とした５画素×５画素、ＴＡＰ−４のコードで示すDRタップは、注目画素を中心とした３画素×３画素となる。
【０１１７】
すなわち、図１４，図１５の関係から、DRの大きさに比例して、DRタップが減少するように設定されており、DRが所定の大きさ以上になった場合（図１４，図１５の場合、DRクラスが４以上となるDRとなった場合）、３画素×３画素の合計９画素より小さくならない。
【０１１８】
DRタップがこのように構成されているのは、以下のような理由からである。すなわち、例えば、横軸をDRタップの位置を示す番号とし、縦軸を各DRタップのレベル（画素値）として示す場合、図１６で示すように分布したとき（図中のDRタップのＸ１乃至Ｘ２の範囲で、本来変化の無い部分に、ノイズのような変化があったとき）、DRタップのＸ１乃至Ｘ２の範囲を拡大したとき、図１７で示す分布であったものとする。
【０１１９】
図１７において、範囲Ｘ１乃至Ｘ２において、DRタップＣ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６，Ｃ１７は、（Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６，Ｃ１７）＝（１０，１１，１０，１１，１０，１０，１１）であることから、最小値は１０、最大値は１１となるから、その差、すなわち、DRは、２（＝１１−１０＋１）となる。このDRタップとクラスタップが同一であった場合、クラスタップＣ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６，Ｃ１７のADRCコードは、０１０１００１となる。本来、クラスタップＣ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５，Ｃ１６，Ｃ１７は、図１６で示すようにノイズにより発生した波形の乱れであるので、ADRCコードは、０００００００となるべきであるにもかかわらず、この範囲Ｘ１乃至Ｘ２におけるクラスタップは、各ビットのコードにばらつきが発生することになる（アクティビティの高いコードとなってしまう）。
【０１２０】
結果として、参照フレームを生成する処理では、データベース４１に記録されるべき画素位置の情報が、本来の特徴量アドレスに記録されないことにより、動きベクトル検出処理では、正確に参照フレームの画素位置を読み出せない恐れがある。
【０１２１】
そこで、図１７で示すように、DRタップＣ１１乃至Ｃ１７に加えて、例えば、DRタップＣ２１，Ｃ２２を追加して、DRタップを増やすようにすると、DRタップの最大値は１６となり、最小値は１０となる。このため、DRは７（＝１６−１０＋１）となる。
【０１２２】
この結果、クラスタップＣ１１乃至Ｃ１７のADRCコードは、０００００００となる。このように、DRが小さい場合に、DRタップの個数を増やすことにより、DRを大きくするため、まず、初期DRタップによりDRを求め、そのDRの大きさに対応して、DRクラスを設定し、そのDRクラスに応じたDRタップのパターンが設定されている。このような理由から、DRタップ抽出部５１，７１のDRタップテーブル５１ａ，７１ａには、初期DRタップのDRが小さいほど（DRクラスが小さいほど）、DRタップ数が多くなるように設定され、DRが大きくなるにつれて、DRタップ数が減少するように設定されている。さらに、DRが所定数以上に大きくなった場合、各タップのレベルはノイズによる影響を受けにくくなるため、一定の（少ない）DRタップ数が設定される。尚、DRタップのパターンは、図１５で示したパターンに限るものではなく、DRクラス（DR）が小さくなるに連れて、タップ数が増大するように、DRクラス（DR）が大きくなるに連れてタップ数が減少するように設定されていればよい。
【０１２３】
このように初期DRタップのDRクラス（DR）の値に対応して、DRタップのパターンを設定することにより、ADRCコードを生成する際に必要となるDRを適正に設定することが可能となり、結果として、ノイズにより本来のADRCコードが得られないといったことが抑制される。
【０１２４】
次に、図１８を参照して、DRコード演算部５４により決定されるコードＡ，Ｂと、DRコード演算部７４により演算されるコードＣの関係について説明する。尚、以下の説明においては、画素値が８ビットで表現されるものとする。従って、DRも８ビットで表現されることになる。
【０１２５】
このとき、コードＡ，Ｂは、上述のように上位３ビットの値を用いてコード化されているのに対し、コードＣが、上位４ビットの値を用いてコード化されているため、同一コードに含まれる画素範囲は、コードＡ，Ｂにおいては３２ステップ（ここでいうステップとは、DRの１０進表示の間隔である）であり（ただし、コードＡ＝０は例外である）、コードＣにおいては、コードＡ，Ｂにおける場合の１／２倍の１６ステップとなる。そして、コードＡのコードの境界は、コードＣの境界と比較して、マイナス側に３ビットシフトされ、コードＢのコードの境界は、コードＣの境界と比較して、プラス側に３ビットシフトされている。
【０１２６】
ノイズなどの影響により、参照フレームＦｒとカレントフレームFｃとにおいて画素の特徴量が変化した場合、最も誤検知を起こしやすいのは、コードの境界部分である。従って、この部分を誤検知しないように、参照フレームＦｒのコードＡ，Ｂが、それぞれ、コードＣの境界部分を含んで、同じ画素値範囲でオーバーラップするように設定される。
【０１２７】
図１８に示されるように、上述した式（３）および式（４）によって生成されるコードＡまたはコードＢは、それぞれ、コードＣ＝Ｘ（Ｘは、０乃至１４）と、コードＣ＝Ｘ＋１との境界部分の画素値を含む。そして、コードＣ＝Ｘと、コードＣ＝Ｘ＋１との境界部分となる画素値において、コードＡ＝Ｘとなり、コードＢ＝Ｘ＋１となる。
【０１２８】
次に、図１９のフローチャートを参照して、参照フレーム特徴量抽出処理について説明する。
【０１２９】
ステップＳ１０１において、DRタップ抽出部５１は、DRタップテーブル５１ａに記憶されている初期DRタップのパターンを読出し、対応するタップの情報（画素値）をフレームメモリ３２に記憶されている参照フレームＦｒより抽出し、DR演算部５２に出力する。
【０１３０】
ステップＳ１０２において、DR演算部５２は、DRタップ抽出部５１より入力されてくる初期DRタップのDRを演算し、DRクラス演算部５４に出力する。
【０１３１】
ステップＳ１０３において、DRクラス演算部５４は、DRの値に対応するDRクラスを上述の式（３），式（４）を演算してコードＡ，Ｂとして求める。
【０１３２】
ステップＳ１０４において、DRクラス演算部５４は、演算したDRクラスのうち、コードＡをDRタップ抽出部５１に出力する。
【０１３３】
ステップＳ１０５において、DRタップ抽出部５１は、DRクラス演算部５４より入力されたコードＡのDRクラスに基づいて、DRタップテーブル５１ａを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部５２に出力する。
【０１３４】
ステップＳ１０６において、DR演算部５２は、DRタップ抽出部５１より入力されたコードＡに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部５３に出力する。
【０１３５】
ステップＳ１０７において、クラスタップ抽出部５５は、フレームメモリ３２に記憶されている参照フレームＦｒよりクラスタップを抽出し、ADRCコード生成部５３に出力する。
【０１３６】
ステップＳ１０８において、ADRCコード生成部５３は、DR演算部５２より入力されたDRと最小値を用いて、クラスタップ抽出部５５より入力されたクラスタップの情報（各画素の画素値）からコードＡに対応するADRCコードを生成し、バッファ５３ａに記憶させる。
【０１３７】
ステップＳ１０９において、DRクラス演算部５４は、演算したDRクラスのうち、コードＢをDRタップ抽出部５１に出力する。
【０１３８】
ステップＳ１１０において、DRタップ抽出部５１は、DRクラス演算部５４より入力されたコードＢのDRクラスに基づいて、DRタップテーブル５１ａを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部５２に出力する。
【０１３９】
ステップＳ１１１において、DR演算部５２は、DRタップ抽出部５１より入力されたコードＢに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部５３に出力する。
【０１４０】
ステップＳ１１２において、クラスタップ抽出部５５は、フレームメモリ３２に記憶されている参照フレームＦｒよりクラスタップを抽出し、ADRCコード生成部５３に出力する。
【０１４１】
ステップＳ１１３において、ADRCコード生成部５３は、DR演算部５２より入力されたDRと最小値を用いて、クラスタップ抽出部５５より入力されたクラスタップの情報（各画素の画素値）からコードＢに対応するADRCコードを生成し、バッファ５３ａに記憶させる。
【０１４２】
ステップＳ１１４において、ADRCコード生成部５３は、バッファ５３ａに記憶されているコードＡ，Ｂに対応する２種類のADRCコードに、クラスタップを構成する注目画素の画素位置の情報と共にデータベース制御部３４に出力する。
【０１４３】
すなわち、以上の処理により、ステップＳ１０１乃至Ｓ１０３の処理により、初期DRタップのDRを演算し、そのDRに対応するコードＡ，Ｂに対応するDRクラスを求める。次に、ステップＳ１０４乃至Ｓ１０８の処理により、注目画素についてコードＡに対応するADRCコードを生成し、ステップＳ１０９乃至Ｓ１１３の処理により、注目画素についてコードＢに対応するADRCコードを生成する。最終的に、ステップＳ１１４の処理により、１個の注目画素について同一のクラスタップから、コードＡ，Ｂからなる２種類のDRクラス（DRクラスタップ）の２種類のDRと最小値により、２種類のADRCコードが出力される。従って、データベース４１には、２つのADRCアドレスに、同一の画素位置の情報が記録されることになる。
【０１４４】
次に、図２０のフローチャートを参照して、カレントフレーム特徴量抽出処理について説明する。
【０１４５】
ステップＳ１３１において、DRタップ抽出部７１は、DRタップテーブル７１ａに記憶されている初期DRタップのパターンを読出し、対応するタップの情報（画素値）をフレームメモリ３１に記憶されているカレントフレームＦｃより抽出し、DR演算部７２に出力する。
【０１４６】
ステップＳ１３２において、DR演算部７２は、DRタップ抽出部７１より入力されてくる初期DRタップのDRを演算し、DRクラス演算部７４に出力する。
【０１４７】
ステップＳ１３３において、DRクラス演算部７４は、DRの値に対応するDRクラスを上述の式（７）を演算してコードＣとして求める。
【０１４８】
ステップＳ１３４において、DRクラス演算部７４は、演算したDRクラスとしてのコードＣをDRタップ抽出部７１に出力する。
【０１４９】
ステップＳ１３５において、DRタップ抽出部７１は、DRクラス演算部７４より入力されたコードＣのDRクラスに基づいて、DRタップテーブル７１ａを参照し、対応するDRタップのパターンを読み出し、そのパターンでDRタップを抽出して、DR演算部７２に出力する。
【０１５０】
ステップＳ１３６において、DR演算部７２は、DRタップ抽出部７１より入力されたコードＣに対応するDRタップに基づいて、DRと最小値を求めてADRCコード生成部７３に出力する。
【０１５１】
ステップＳ１３７において、クラスタップ抽出部７５は、フレームメモリ３１に記憶されているカレントフレームＦｃよりクラスタップを抽出し、ADRCコード生成部７３に出力する。
【０１５２】
ステップＳ１３８において、ADRCコード生成部７３は、DR演算部７２より入力されたDRと最小値を用いて、クラスタップ抽出部７５より入力されたクラスタップの情報（各画素の画素値）からコードＣに対応するADRCコードを生成し動きベクトル検出部３６に出力する。
【０１５３】
以上のような処理により、カレントフレームの注目画素に対応するADRCコードが演算される。結果として、コードＣに対応するDRクラスに対応するDRタップから得られるDRと最小値によるADRCコードがノイズにより多少変化していても、データベース４１上には対応するコードＡ，ＢのDRクラスに対応したDRタップにより得られたDRと最小値により得られた２種類のADRCコードに対応したADRCアドレスに同一の画素位置の情報が記録されているので、動きベクトルを求める際に必要となる参照画素を正確に求めることが可能となる。
【０１５４】
より具体的には、図１８で示すように、例えば、注目画素の初期DRタップにより得られるDRが６３である場合、カレントフレームＦｃにおいては、コードＣがコードＣ＝３となり、参照フレームＦｒにおいて、コードＡがコードＡ＝４、かつ、コードＢがコードＢ＝３となる。また、注目画素の初期DRタップにより得られるDRが６４である場合、カレントフレームＦｃにおいて、コードＣはコードＣ＝４となり、参照フレームＦｒにおいて、コードＡがコードＡ＝４、かつ、コードＢがコードＢ＝３となる。
【０１５５】
従って、カレントフレームFｃ上の注目画素の初期DRタップのDRが６３と６４で変化してしまった場合においても、コードＡかコードＢのいずれかにおいて、コードＣと同一のDRクラスを得ることができ、結果として、同一のDRタップから得られるDRと最小値により得られるADRCコードを取得することが可能となる。上述した式（３）および式（４）によってコードＡおよびコードＢが生成された場合、コードＡまたはコードＢは、コードＣの対応する境界を挟んで、３ビット（DRで８ステップ）ずつずれているので、参照フレームＦｒとカレントフレームFｃとにおいての画素の特徴量の変動が３ビット（DRで８ステップ）以内であれば、コードＡかコードＢのいずれかにおいて、正しい検出結果を得ることが可能となる。
【０１５６】
ここでは、コードＡ，Ｂを検出するために用いる情報のビット数を上位３ビットとし、コードＣを検出するために用いる情報のビット数を上位４ビットとして説明したが、特徴量としてのコードの検出方法はこの限りではない。例えば、コードＣを検出するために用いる情報のビット数を上位５ビットとし、コードＡおよびコードＢを検出するために用いる情報のビット数を上位４ビットとしてもよい。
【０１５７】
ところで、上述の処理においては、コードＣに対応するDRクラスの境界に付近のDRとなった場合に、ノイズなどにより初期DRタップのDRが変化することにより、境界付近のいずれのDRクラスをとっても、最適な候補となる画素位置の情報が検出できるように、オーバーラップしてコードＡ，Ｂの２種類のDRコードを設定するようにしている。従って、図１８で示す場合、DRが８，２４，４０，５６，７２，８８，１０２，１２０の近傍付近であったとき、DRの値は、コードＣに対応するDRクラスにおける各ステップの中央値をとなるため、ノイズにより多少DRが変化してもDRクラスが変更する可能性は低いものと考えることができる。
【０１５８】
そこで、図２１で示すように、DRの値が、コードＣに対するDRクラスの境界付近となる場合にのみクラスＡ，Ｂの２種類のDRクラスを設定するようにして、DRがそれ以外の値をとる場合（特にDRクラスの中央値となる場合）は、コードＣと同様のDRクラスとなるようにしてもよい。
【０１５９】
図２２は、上述のように、境界付近でのみ２種類のDRクラスを設定するようにした参照フレーム特徴量抽出部３３の構成を示している。
【０１６０】
なお、図１０における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図２２の参照フレーム特徴量抽出部３３は、DR演算部５４に代えて、DRクラス演算部９１を備えられている以外は、基本的に、図１０を用いて説明した参照フレーム特徴量抽出部３３と同様の構成を有するものである。
【０１６１】
DRクラス演算部９１の機能は、基本的にDRクラス演算部５４と同様のものであるが、DR演算部５２より入力されるDRの値に応じて、コードＡのみをDRタップ抽出部５１に供給する場合、コードＢのみをDRタップ抽出部５１に供給する場合、または、コードＡ，Ｂの両方を供給する場合の３パターンのうちのいずれかの動作を実行する。すなわち、図２１の場合、コードＡまたはコードＢは、コードＣの対応する境界を挟んで、２ビット（DRで４ステップ）ずつずれているので、コードＣの各DRクラスの中央値の前後２ビットは、コードＡまたはＢのいずれかのコードのみとなる。尚、図２１中の斜線部分が、コードが存在しないDRの範囲を示す。従って、図２１においては、コードＡでは、20≦DR＜28，52≦DR＜60，84≦DR＜92，116≦DR＜124の範囲において、コードＡをDRタップ抽出部５１に供給する必要が無く、コードＢは、0≦DR＜12，36≦DR＜44，68≦DR＜76，100≦DR＜108の範囲において、コードＢをDRタップ抽出部５１に供給する必要が無くなる。
【０１６２】
そこで、DRクラス演算部９１は、初期DRタップのDRの値に応じて、コードＡ，Ｂのそれぞれを供給する必要があるか否かを判断し、上述の３つのモードのいずれかの動作を実行する。
【０１６３】
次に、図２３のフローチャートを参照して、図２２の参照フレーム特徴量抽出部３３による参照フレーム特徴量抽出処理について説明する。尚、図２３のフローチャートのステップＳ１５１乃至Ｓ１５３，Ｓ１５５乃至Ｓ１５９，Ｓ１６１乃至Ｓ１６５の処理は、図１９のフローチャートにおけるステップＳ１０１乃至Ｓ１１３の処理と同様であるので、その処理の説明は、省略する。
【０１６４】
ステップＳ１５４において、DRクラス演算部９１は、初期DRタップのDRに基づいて、コードＡの値をDRタップ抽出部５１に供給する必要があるか否かを判定し、必要があると判定した場合、すなわち、図２１において、DRが、例えば、0≦DR＜20，28≦DR＜52，60≦DR＜84，92≦DR＜116の範囲であった場合、コードＡは必要であると判定し、その処理は、ステップＳ１５５に進む。また、ステップＳ１５４において、コードＡの値がDRタップ抽出部５１に供給される必要がないと判定された場合、すなわち、DRが、例えば、0≦DR＜20，28≦DR＜52，60≦DR＜84，92≦DR＜116の範囲ではなかった場合、ステップＳ１５５乃至Ｓ１５９の処理はスキップされて、その処理は、ステップＳ１６０に進む。
【０１６５】
ステップＳ１６０において、DRクラス演算部９１は、初期DRタップのDRに基づいて、コードＢの値をDRタップ抽出部５１に供給する必要があるか否かを判定し、必要があると判定した場合、すなわち、図２１において、例えば、DRが、12≦DR＜36，44≦DR＜68，76≦DR＜100の範囲であった場合、コードＢは必要であると判定し、その処理は、ステップＳ１６１に進む。また、ステップＳ１６０において、コードＢの値がDRタップ抽出部５１に供給される必要がないと判定された場合、すなわち、DRが、例えば、12≦DR＜36，44≦DR＜68，76≦DR＜100の範囲ではなかった場合、ステップＳ１６１乃至Ｓ１６５の処理はスキップされて、その処理は、ステップＳ１６６に進む。
【０１６６】
ステップＳ１６６において、ADRCコード生成部５３は、バッファ５３ａに記憶されているコードＡまたはＢのいずれかに対応する１種類、または、コードＡ，Ｂ２の２種類のADRCコードに、クラスタップを構成する注目画素の画素位置の情報と共にデータベース制御部３４に出力する。
【０１６７】
すなわち、ステップＳ１５４，Ｓ１６０の判定により、コードＡのみ、コードＢのみ、または、コードＡ，Ｂの両方に対応するADRCコードが出力されることになる。尚、図２２の参照フレーム特徴量抽出部３３による参照フレーム特徴量抽出処理により、図６のフローチャートにおけるステップＳ３４の処理においては、データベース制御部３４は、参照フレーム特徴量抽出部３３において抽出された参照フレームＦｒの注目画素に対する１種類、または、２種類の特徴量（後述するコードＡおよびコードＢ）を読出し、データベース４１から、１種類、または、２種類の特徴量に対応する特徴量アドレスの、フラグアドレス０に記載されている値Ｋを読み込むことになる。この結果、１つの注目画素に対して、初期DRタップのDRが、コードＣの境界付近（図２１においては、境界値に対して正方向乃至負方向に２ビットの範囲であるが、それに限られるものではない）である場合にのみ、２種類の特徴量が決定され、２箇所の特徴量アドレスに画素位置の情報が記憶され、それ以外については１箇所の特徴量アドレスの画素位置の情報が記憶される。結果として、コードＣの境界付近でのコードＣの変化にも対応できる上、境界付近以外のDRでは、１箇所の特徴量アドレスにのみ画素位置の情報を記録することになるので、データベース４１の容量を節約することが可能となる。
【０１６８】
また、以上の例においては、参照フレーム特徴量抽出処理、および、カレントフレーム特徴量抽出処理のいずれにおいても、初期DRタップにより求められるDRにより設定されたDRタップにより、ADRCコードの生成に使用するDRと最小値を求め、このDRタップとは別にクラスタップを抽出して、ADRCコードを生成する例について説明してきたが、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップを、そのままクラスタップとして使用するようにしてもよい。
【０１６９】
図２４は、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとして使用するようにした参照フレーム特徴量抽出部３３を示しており、図２５は、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとして使用するようにしたカレントフレーム特徴量抽出部３５を示している。
【０１７０】
図２４，図２５においては、図１０，図１３における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。すなわち、図２４の参照フレーム特徴量抽出部３３は、DRタップ抽出部５１に代えて、DRタップ抽出部１０１を備え、クラスタップ抽出部５５が削除されている以外は、基本的に、図１０を用いて説明した参照フレーム特徴量抽出部３３と同様の構成を有するものである。また、図２５のカレントフレーム特徴量抽出部３５は、DRタップ抽出部７１に代えて、DRタップ抽出部１１１を備え、クラスタップ抽出部７５が削除されている以外は、基本的に、図１３を用いて説明したカレントフレーム特徴量抽出部３５と同様の構成を有するものである。
【０１７１】
参照フレーム特徴量抽出部３３およびカレントフレーム特徴量抽出部３５のいずれにおいても、DRタップ抽出部１０１，１１１（DRタップテーブル１０１ａ，１１１ａを含む）は、いずれも、基本的にDRタップ抽出部５１，７１と同様の機能を有するものであるが、さらに、ADRCコードの生成に使用するDRと最小値を求めるためのDRタップをクラスタップとしてADRCコード生成部５３，７３に供給する。
【０１７２】
次に、図２６のフローチャートを参照して、図２４の参照フレーム特徴量抽出部３３による参照フレーム特徴量抽出処理について説明する。尚、図２６のフローチャートにおけるステップＳ１８１乃至Ｓ１８６，Ｓ１８９乃至Ｓ１９１，Ｓ１９４の処理は、図１９のフローチャートを参照して説明したステップＳ１０１乃至Ｓ１０６，Ｓ１０９乃至Ｓ１１１，Ｓ１１３，Ｓ１１４の処理と同様であるので、その説明は省略する。
【０１７３】
ステップＳ１８７において、DRタップ抽出部１０１は、フレームメモリ３２に記憶されている参照フレームＦｒよりステップＳ１８５の処理で抽出したDRタップをコードＡに対応するADRCコードのクラスタップとして、ADRCコード生成部５３に出力する。
【０１７４】
従って、ステップＳ１８８において、ADRCコード生成部５３は、DR演算部５２より入力されたDRと最小値、さらには、DRタップ抽出部１０１より入力されたクラスタップを用いて、コードＡに対応するADRCコードを生成し、バッファ５３ａに記憶させることになる。
【０１７５】
ステップＳ１９２において、DRタップ抽出部１０１は、フレームメモリ３２に記憶されている参照フレームＦｒよりステップＳ１９０の処理で抽出したDRタップをコードＢに対応するADRCコードのクラスタップとして、ADRCコード生成部５３に出力する。
【０１７６】
従って、ステップＳ１９３において、ADRCコード生成部５３は、DR演算部５２より入力されたDRと最小値、さらには、DRタップ抽出部１０１より入力されたクラスタップを用いて、コードＢに対応するADRCコードを生成し、バッファ５３ａに記憶させることになる。
【０１７７】
次に、図２７のフローチャートを参照して、図２５のカレントフレーム特徴量抽出部３５によるカレントフレーム特徴量抽出処理について説明する。
【０１７８】
尚、図２７のフローチャートのステップＳ２１１乃至Ｓ２１６の処理は、図２０のフローチャートを参照して、説明したステップＳ１３１乃至Ｓ１３６の処理と同様であるのでその説明は省略する。
【０１７９】
ステップＳ２１７において、DRタップ抽出部１１１は、フレームメモリ３１に記憶されているカレントフレームＦｃよりステップＳ２１５の処理で抽出したDRタップをコードＣに対応するADRCコードのクラスタップとして、ADRCコード生成部７３に出力する。
【０１８０】
従って、ステップＳ２１８において、ADRCコード生成部７３は、DR演算部７２より入力されたDRと最小値に加えて、DRタップ抽出部１１１より入力されたクラスタップを用いて、コードＣに対応するADRCコードを生成し動きベクトル検出部３６に出力する。
【０１８１】
以上の処理により、より多くのADRCコードが生成されることになるので、データベース４１上の同一のADRCアドレスに記録される画素位置の情報が少なくなるので、ブロックマッチング処理を高速にすることが可能となる。
【０１８２】
以上によれば、注目画素について設定される初期DRタップにより求められるDRの値に応じて、ADRCコードを生成する際の、DRを得るためのDRタップを設定するようにしたので、DRの小さいノイズの影響を受けにくいADRCコードを生成することができ、結果として、正確に動きベクトルを求めることが可能となる。
【０１８３】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０１８４】
図２８は、動き検出部２１をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU２０１は、パーソナルコンピュータの動作の全体を制御する。また、CPU２０１は、バス２０４および入出力インタフェース２０５を介してユーザからキーボードやマウスなどからなる入力部２０６から指令が入力されると、それに対応してROM(Read Only Memory)２０２に格納されているプログラムを実行する。あるいはまた、CPU２０１は、ドライブ２１０に接続された磁気ディスク２１１、光ディスク２１２、光磁気ディスク２１３、または半導体メモリ２１４から読み出され、記憶部２０８にインストールされたプログラムを、RAM(Random Access Memory)２０３にロードして実行し、出力部２０７が実行結果を出力する。さらに、CPU２０１は、通信部２０９を制御して、外部と通信し、データの授受を実行する。
【０１８５】
プログラムが記録されている記録媒体は、図２８に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２１１（フレキシブルディスクを含む）、光ディスク２１２（CDROM(Compact Disc-Read Only Memory)，DVD（Digital Versatile Disc）を含む）、光磁気ディスク２１３（MD（Mini-Disc）を含む）、もしくは半導体メモリ２１４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM２０２や、記憶部２０８に含まれるハードディスクなどで構成される。
【０１８６】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０１８７】
【発明の効果】
本発明によれば、動きベクトルを正確に求めることが可能となる。
【図面の簡単な説明】
【図１】従来の動き検出部の構成を示すブロック図である。
【図２】動きベクトルの検出方法を説明する図である。
【図３】図１の動き検出部による動き検出処理を説明するフローチャートである。
【図４】本発明を適用した動き検出部の一実施の形態の構成を説明するブロック図である。
【図５】図４のデータベースの構造を説明する図である。
【図６】図４の動き検出部による参照フレーム情報生成処理を説明するフローチャートである。
【図７】図４の動き検出部による動きベクトル検出処理を説明するフローチャートである。
【図８】図４の動き検出部による動きベクトル検出処理を説明するフローチャートである。
【図９】注目画素の特徴量の近傍の特徴量を説明する図である。
【図１０】図４の参照フレーム特徴量抽出部の一実施の形態の構成を説明するブロック図である。
【図１１】初期DRタップを説明する図である。
【図１２】  ADRCコードを説明する図である。
【図１３】図４のカレントフレーム特徴量抽出部の一実施の形態の構成を説明するブロック図である。
【図１４】  DRタップテーブルを説明する図である。
【図１５】  DRタップを説明する図である。
【図１６】  DRタップとADRCコードの関係を説明する図である。
【図１７】  DRタップとADRCコードの関係を説明する図である。
【図１８】図１０の参照フレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスと、図１３のカレントフレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスの関係を説明する図である。
【図１９】図１０の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図２０】図１３のカレントフレーム特徴量抽出部によるカレントフレーム特徴量算出処理を説明するフローチャートである。
【図２１】図２２の参照フレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスと、図１３カレントフレーム特徴量抽出部のDRクラス演算部により演算されるDRクラスの関係を説明する図である。
【図２２】参照フレーム特徴量抽出部の他の構成を説明するブロック図である。
【図２３】図２２の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図２４】参照フレーム特徴量抽出部の他の構成を説明するブロック図である。
【図２５】カレントフレーム特徴量抽出部の他の構成を説明するブロック図である。
【図２６】図２４の参照フレーム特徴量抽出部による参照フレーム特徴量算出処理を説明するフローチャートである。
【図２７】図２５のカレントフレーム特徴量抽出部によるカレントフレーム特徴量算出処理を説明するフローチャートである。
【図２８】媒体を説明する図である。
【符号の説明】
３１，３２  フレームメモリ，  ３３  参照フレーム特徴量抽出部，  ３４  データベース制御部，  ３５  カレントフレーム特徴量抽出部，  ３６  動きベクトル検出部，  ４１  データベース，  ５１  DRタップ抽出部，  ５１ａ  DRタップテーブル，  ５２  DR演算部，  ５３  ADRCコード生成部，  ５４  DRクラス演算部，  ５５  クラスタップ抽出部，  ７１  DRタップ抽出部，  ７１ａ  DRタップテーブル，  ７２  DR演算部，  ７３  ADRCコード生成部，  ７４  DRクラス演算部，  ７５  クラスタップ抽出部，  ９１  DRクラス演算部，１０１  DRタップ抽出部，  １０１ａ  DRタップテーブル，１１１  DRタップ抽出部，  １１１ａ  DRタップテーブル
【図１】
0004239556.tif 000003
【図２】
0004239556.tif 000004
【図３】
0004239556.tif 000005
【図４】
0004239556.tif 000006
【図５】
0004239556.tif 000007
【図６】
0004239556.tif 000008
【図７】
0004239556.tif 000009
【図８】
0004239556.tif 000010
【図９】
0004239556.tif 000011
【図１０】
0004239556.tif 000012
【図１１】
0004239556.tif 000013
【図１２】
0004239556.tif 000014
【図１３】
0004239556.tif 000015
【図１４】
0004239556.tif 000016
【図１５】
0004239556.tif 000017
【図１６】
0004239556.tif 000018
【図１７】
0004239556.tif 000019
【図１８】
0004239556.tif 000020
【図１９】
0004239556.tif 000021
【図２０】
0004239556.tif 000022
【図２１】
0004239556.tif 000023
【図２２】
0004239556.tif 000024
【図２３】
0004239556.tif 000025
【図２４】
0004239556.tif 000026
【図２５】
0004239556.tif 000027
【図２６】
0004239556.tif 000028
【図２７】
0004239556.tif 000029
【図２８】
0004239556.tif 000030