(57)【特許請求の範囲】
【請求項１】
現フレームの時間的位置に対して前若しくは後ろの位置となる参照フレーム内における、上記現フレーム内の注目ブロックの位置に対応して、上記注目ブロックの内容に一致する参照ブロックを探索するための第１の探索エリアを設定する、第１の探索エリア設定ステップと、
上記現フレーム内の注目ブロックの内容と、上記参照フレームの上記第１の探索エリア内の参照ブロックの内容の一致性を検出して第１の動きベクトルデータを得る第１の一致検出ステップと、
上記第１の一致検出ステップにおいて求められた第１の動きベクトルデータと大きさが同一で、方向が逆の第２の動きベクトルデータに基いて、上記現フレーム内の注目ブロックの１フレーム後の位置を予測する第１の位置予測ステップと、
上記第１の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第１の注目ブロック位置情報検出ステップと、
上記第１の一致検出ステップにおいて得られた第１の動きベクトルデータを、上記現フレーム内の注目ブロックの登録動きベクトルデータとしてテーブルに登録すると共に、上記第１の注目ブロック位置情報検出ステップにおいて求められた注目ブロックの位置情報を、上記第１の一致検出ステップにおいて処理対象とされている注目ブロックに関連させてテーブルに登録するテーブル登録ステップと、
上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第１の判断ステップと、
上記第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理が終了したことが判断された場合に、上記現フレームの内容を、上記現フレームの内容の時間的位置よりも後ろ若しくは前の時間的位置の内容に更新し、更に上記参照フレームの内容を、少なくとも上記現フレームの内容に更新する画像更新ステップと、
上記画像更新ステップによって更新された、上記現フレーム内の処理対象の注目ブロックに関連する、上記テーブルに登録されている登録動きベクトルデータを、上記テーブルから、候補動きベクトルデータとして読み出し、該候補動きベクトルデータから最も最適な動きベクトルデータを選択する動きベクトル選択ステップと、
上記動きベクトル選択ステップにおいて選択された候補動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致検出ステップと、
上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータに基いて、次に上記第２の一致検出ステップにおける上記第２の探索エリアの設定で用いる上記包括領域内の注目ブロックの位置情報を求め、該位置情報を上記テーブルに登録することにより、上記テーブルの内容を更新し、上記テーブルの内容に基づいて設定される第２の探索エリアを用いて参照ブロックとの一致性の検出が行われるようにするテーブル内容更新ステップとを含む画像情報の動き検出方法。
【請求項２】
上記第２の一致検出ステップは、
上記動きベクトル選択ステップにおいて選択された、上記登録動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定する第２の探索エリア設定ステップと、
上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致性検出ステップとを含む請求項１記載の画像情報の動き検出方法。
【請求項３】
上記テーブル内容更新ステップは、
上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータと、大きさが同一で、方向が逆の逆動きベクトルデータに基いて、上記注目ブロックの１フレーム後の位置を予測する第２の位置予測ステップと、
上記第２の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第２の注目ブロック位置情報検出ステップと、
上記第２の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させて上記テーブルに登録することによりテーブルの内容を更新するテーブル内容更新ステップと、
上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第２の判断ステップとを含む請求項１記載の画像情報の動き検出方法。
【請求項４】
上記テーブル内容更新ステップは、
上記第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したものと判断した場合に、現フレームの画像と、次に上記画像更新ステップにおいて画像の更新処理がなされることにより、現フレームとされる新たな入力画像との、変化の度合いの大きい、シーンチェンジが有るか否かを判断し、シーンチェンジが有るものと判断された場合に、上記第１の探索エリア設定ステップに移行する、シーンチェンジ判断手段を更に含む請求項３記載の画像情報の動き検出方法。
【請求項５】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータの内、処理対象の注目ブロックの回りの複数の注目ブロックの各登録動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項６】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータの内、全注目ブロックについて夫々テーブルに登録されている、登録動きベクトルデータに最も多く含まれる候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項７】
上記テーブル登録ステップは、上記テーブルに、上記注目ブロックの各候補動きベクトルデータをも登録し、
上記動きベクトル選択ステップは、
現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、少なくとも、現時点よりも２ステップ前の、上記テーブルに登録された候補動きベクトルデータに最も近似する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項８】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータを用いて、夫々順次参照フレーム内に上記第２の探索エリアを設定し、現フレーム内の注目ブロックと、上記参照フレーム内に設定した第２の探索エリア内の参照ブロックとで順次一致性を検出し、この検出の結果を比較し、最も誤差の少ない結果を得ることのできた候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項９】
上記動きベクトル選択ステップは、
上記テーブルに登録されている全登録動きベクトルデータの平均値であるところの平均動きベクトルデータを得る平均動きベクトルデータ取得ステップを含み、
上記候補動きベクトルデータの内、上記平均動きベクトルデータ取得ステップにおいて取得された平均動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項１０】
上記テーブル登録ステップは、
上記テーブルに、上記第１の一致検出ステップにおける、上記参照ブロックと上記注目ブロックとの内容の一致性の高低を示す一致性情報も登録し、
上記動きベクトル選択ステップは、
現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、上記テーブルに登録されている最も一致性の高いことを示す一致性情報に対応する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１記載の画像情報の動き検出方法。
【請求項１１】
現フレームのフレーム画像データを記憶する現フレームメモリと、
上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを記憶する参照フレームメモリと、
上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を得る差分絶対値和演算手段と、
上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを検出する最小値検出手段と、
上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを得る動きベクトル検出手段と、
上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御する制御手段とを有し、
上記制御手段は、
上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、
処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御する現及び参照フレームメモリ制御手段と、
上記現フレームメモリ内の注目ブロックを識別するための識別情報、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持する保持手段と、上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、
上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスを算出するアドレス算出手段と、
上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御を行うテーブル制御手段と、
上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断する判断手段と、
上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている全ての注目ブロックの各登録動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した登録動きベクトルデータを選択するベクトル選択手段とを有する画像情報の動き検出装置。
【請求項１２】
上記テーブルは、
少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、
上記各種情報は、
注目ブロックを示す注目ブロック番号データと、
上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、
上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、
上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成される請求項１１記載の画像情報の動き検出装置。
【請求項１３】
符号化すべき現フレームの時間的位置に対して前若しくは後ろの位置となる参照フレーム内における、上記現フレーム内の注目ブロックの位置に対応して、上記注目ブロックの内容に一致する参照ブロックを探索するための第１の探索エリアを設定する、第１の探索エリア設定ステップと、
上記符号化すべき現フレーム内の注目ブロックの内容と、上記参照フレームの上記第１の探索エリア内の参照ブロックの内容の一致性を検出するための第１の一致検出ステップと、
上記第１の一致検出ステップにおいて求められた第１の動きベクトルデータと大きさが同一で、方向が逆の第２の動きベクトルデータに基いて、上記現フレーム内の注目ブロックの１フレーム後の位置を予測する第１の位置予測ステップと、
上記第１の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第１の注目ブロック位置情報検出ステップと、
上記第１の一致検出ステップにおいて得られた第１の動きベクトルデータを、上記現フレーム内の注目ブロックの登録動きベクトルデータとしてテーブルに登録すると共に、上記第１の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記第１の一致検出ステップにおいて処理対象とされている注目ブロックに関連させてテーブルに登録するテーブル登録ステップと、
上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第１の判断ステップと、
上記第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理が終了したことが判断された場合に、上記現フレームの内容を、上記現フレームの内容の時間的位置よりも後ろ若しくは前の時間的位置の内容に更新し、更に上記参照フレームの内容を、少なくとも上記現フレームの内容に更新する画像更新ステップと、
上記画像更新ステップによって更新された、次に符号化すべき現フレーム内の処理対象の注目ブロックに関連する、上記テーブルに登録されている登録動きベクトルデータを、上記テーブルから、候補動きベクトルデータとして読み出し、該候補動きベクトルデータから最も最適な動きベクトルデータを選択する動きベクトル選択ステップと、
上記動きベクトル選択ステップにおいて選択された候補動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致検出ステップと、
上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータに基いて、次に上記第２の一致検出ステップにおける上記第２の探索エリアの設定で用いる上記包括領域内の注目ブロックの位置情報を求め、該位置情報を上記テーブルに登録することにより、上記テーブルの内容を更新するテーブル内容更新ステップと、
上記第１若しくは第３の一致検出ステップにおいて得られた上記第１若しくは第３の動きベクトルデータに基いて、上記参照フレーム内の参照ブロックを抽出し、該抽出した参照ブロックと、上記符号化すべき注目ブロックとの差分を得る差分取得ステップと、
上記差分取得ステップにおいて取得された差分データを符号化する符号化ステップとを含む画像情報の符号化方法。
【請求項１４】
上記第２の一致検出ステップは、
上記動きベクトル選択ステップにおいて選択された、上記登録動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定する第２の探索エリア設定ステップと、
上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致性検出ステップとを含む請求項１３記載の画像情報の符号化方法。
【請求項１５】
上記テーブル内容更新ステップは、
上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータと、大きさが同一で、方向が逆の逆動きベクトルデータに基いて、上記注目ブロックの１フレーム後の位置を予測する第２の位置予測ステップと、
上記第２の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第２の注目ブロック位置情報検出ステップと、
上記第２の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させて上記テーブルに登録することによりテーブルの内容を更新するテーブル内容更新ステップと、
上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第２の判断ステップとを含む請求項１３記載の画像情報の符号化方法。
【請求項１６】
上記テーブル内容更新ステップは、
上記第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したものと判断した場合に、現フレームの画像と、次に上記画像更新ステップにおいて画像の更新処理がなされることにより、現フレームとされる新たな入力画像との、変化の度合いの大きい、シーンチェンジが有るか否かを判断し、シーンチェンジが有るものと判断された場合に、上記第１の探索エリア設定ステップに移行する、シーンチェンジ判断手段を更に含む請求項１５記載の画像情報の符号化方法。
【請求項１７】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータの内、処理対象の注目ブロックの回りの複数の注目ブロックの各登録動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項１８】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータの内、全注目ブロックについて夫々テーブルに登録されている、登録動きベクトルデータに最も多く含まれる候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項１９】
上記テーブル登録ステップは、上記テーブルに、上記注目ブロックの各候補動きベクトルデータをも登録し、
上記動きベクトル選択ステップは、
現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、少なくとも、現時点よりも２ステップ前の、上記テーブルに登録された候補動きベクトルデータに最も近似する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項２０】
上記動きベクトル選択ステップは、
上記候補動きベクトルデータを用いて、夫々順次参照フレーム内に上記第２の探索エリアを設定し、現フレーム内の注目ブロックと、上記参照フレーム内に設定した第２の探索エリア内の参照ブロックとで順次一致性を検出し、この検出の結果を比較し、最も誤差の少ない結果を得ることのできた候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項２１】
上記動きベクトル選択ステップは、
上記テーブルに登録されている全登録動きベクトルデータの平均値であるところの平均動きベクトルデータを得る平均動きベクトルデータ取得ステップを含み、上記候補動きベクトルデータの内、上記平均動きベクトルデータ取得ステップにおいて取得された平均動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項２２】
上記テーブル登録ステップは、上記テーブルに、上記第１の一致検出ステップにおける、上記参照ブロックと上記注目ブロックとの内容の一致性の高低を示す一致性情報も登録し、
上記動きベクトル選択ステップは、
現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、上記テーブルに登録されている最も一致性の高いことを示す一致性情報に対応する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する請求項１３記載の画像情報の符号化方法。
【請求項２３】
符号化すべき現フレームのフレーム画像データを記憶する現フレームメモリと、
上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを記憶する参照フレームメモリと、
上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を得る差分絶対値和演算手段と、
上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを検出する最小値検出手段と、
上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを得る動きベクトル検出手段と、
上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御する制御手段とを有し、
上記制御手段は、
上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、
処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御する現及び参照フレームメモリ制御手段と、
上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持する保持手段と、
上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、
上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスを算出するアドレス算出手段と、
上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御を行うテーブル制御手段と、
上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断する判断手段と、
上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として登録されている、全ての注目ブロックの登録動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータを選択するベクトル選択手段と、
上記動き検出によって得られた動きベクトルデータに基いて、上記参照フレームメモリ内の参照ブロックを抽出し、該抽出した参照ブロックと、上記符号化すべき注目ブロックとの差分を得る加算回路と、
上記加算回路からの差分データを符号化する符号化回路とを有する画像情報の符号化装置。
【請求項２４】
上記テーブルは、
少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、
上記各種情報は、
注目ブロックを示す注目ブロック番号データと、
上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、
上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、
上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成される請求項２３記載の画像情報の符号化装置。
【請求項２５】
符号化すべき現フレームのフレーム画像データを記憶する現フレームメモリと、
上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを記憶する参照フレームメモリと、
上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を得る差分絶対値和演算手段と、
上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを検出する最小値検出手段と、
上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを得る動きベクトル検出手段と、
上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御する制御手段とを有し、
上記制御手段は、
上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、
処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御する現及び参照フレームメモリ制御手段と、
上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持する保持手段と、
上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、
上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスを算出するアドレス算出手段と、
上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御を行うテーブル制御手段と、
上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断する判断手段と、
上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている、全注目ブロックの登録動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータを選択するベクトル選択手段と、
上記動き検出によって得られた動きベクトルデータに基いて、上記参照フレームメモリ内の参照ブロックを抽出し、該抽出した参照ブロックと、上記符号化すべき注目ブロックとの差分を得る加算回路と、
上記加算回路からの差分データを符号化する符号化回路と、
上記符号化回路からの符号化出力を伝送する伝送手段とを有する画像情報伝送システム。
【請求項２６】
上記テーブルは、
少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、
上記各種情報は、
注目ブロックを示す注目ブロック番号データと、
上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、
上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、
上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成される請求項２５記載の画像情報伝送システム。
【請求項２７】
符号化すべき現フレームのフレーム画像データを記憶する現フレームメモリと、
上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを記憶する参照フレームメモリと、
上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を得る差分絶対値和演算手段と、
上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを検出する最小値検出手段と、
上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを得る動きベクトル検出手段と、
上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御する制御手段とを有し、
上記制御手段は、
上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、
処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御する現及び参照フレームメモリ制御手段と、
上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持する保持手段と、
上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、
上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスを算出するアドレス算出手段と、
上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御を行うテーブル制御手段と、
上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断する判断手段と、
上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている、全ての注目ブロックの動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータを選択するベクトル選択手段と、
上記動き検出によって得られた動きベクトルデータに基いて、上記参照フレームメモリ内の参照ブロックを抽出し、該抽出した参照ブロックと、上記符号化すべき注目ブロックとの差分を得る加算回路と、
上記加算回路からの差分データを符号化する符号化回路と、
上記符号化回路からの符号化出力を記録媒体に記録する記録手段とを有する画像情報記録システム。
【請求項２８】
上記テーブルは、
少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、
上記各種情報は、
注目ブロックを示す注目ブロック番号データと、
上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、
上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、
上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成される請求項２７記載の画像情報記録システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばディスク、磁気テープ等の記録媒体に記録された画像情報を再生する記録・再生装置や、情報伝送システム等に適用して好適な画像情報の動き検出方法及びその装置、画像情報の符号化方法及びその装置、画像情報伝送システム、画像情報記録システム並びに記録媒体に関する。
【０００２】
【従来の技術】
従来、例えば情報伝送装置の送信側や、ディスクや磁気テープを媒体とする記録再生装置の記録側においては、図４１に示すような動きエンコーダが用いられ、再生側においては、図４５に示すような動きデコーダが用いられている。この図４１に示す動きエンコーダや図４５に示す動きデコーダは、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｉｍａｇｅ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）により進められた標準化作業に基いて規格化された蓄積用動画像符号化標準に対応するものである。
【０００３】
〔動きエンコーダの接続及び構成〕
この図４１に示す動きエンコーダは、入力端子２００を介して供給される画像データを順次蓄積するためのフレームメモリ２０１、２０２及び２０３、これらフレームメモリ２０１、２０２及び２０３からの各出力を、システムコントローラ２２６からの制御信号により選択的に出力するセレクタ２０４、動き検出を行って動きベクトルデータを得る動き検出ブロックと、この動き検出ブロックにおいて求められた動きベクトルデータに基いて動き補償処理を行う動き補償ブロックと、上記セレクタ２０４からの１６ライン×１６画素の大きさのマクロブロックデータと、上記動き補償ブロックからの動き補償処理後の１６ライン×１６画素の大きさのマクロブロックデータとの差分を得る加算回路２０７と、上記セレクタ２０４からのマクロブロックデータ若しくは上記加算回路２０７からの差分データを選択するインター／イントラ判定回路２０８と、このインター／イントラ判定回路２０８の制御により、上記セレクタ２０４からのマクロブロックデータ若しくは上記加算回路２０７からの差分データを選択するスイッチ２０９と、このスイッチ２０９からの出力を圧縮符号化する圧縮符号化ブロックと、上記各各構成要素を夫々制御するシステムコントローラ２２６とで構成される。
【０００４】
ここで、上記入力端子２００に順次画像データを入力し、その入力画像データを順次フレームメモリ２０１に記憶し、次の１フレーム期間にフレームメモリ２０１から読み出した画像データを順次フレームメモリ２０２に記憶し、次の１フレーム期間にフレームメモリ２０２から読み出した画像データを順次フレームメモリ２０３に記憶すると、３フレーム分の時間の経過の後、フレームメモリ２０３には第１フレームの画像データが、フレームメモリ２０２には第２フレームの画像データが、フレームメモリ２０１には第３フレームの画像データが夫々記憶される。従って、フレームメモリ２０２の出力を、現フレームの画像データとすると、フレームメモリ２０１の出力は未来のフレームの画像データ、フレームメモリ２０３の出力は過去のフレームの画像データということになる。以下、上記フレームメモリ２０１のマクロブロック単位の出力を、後フレームのマクロブロックデータと呼び、上記フレームメモリ２０２のマクロブロック単位の出力を、現フレームのマクロブロックデータと呼び、上記フレームメモリ２０３のマクロブロック単位の出力を、前フレームのマクロブロックデータと呼ぶ。
【０００５】
圧縮符号化ブロックは、スイッチ２０９からのマクロブロックデータ若しくは差分データを、８ライン×８画素のブロック単位で直流成分から高次交流成分の係数データに変換するＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：離散的コサイン変換）回路２１０、このＤＣＴ回路２１０からの係数データを、所定の量子化ステップサイズで量子化する量子化回路２１１、この量子化回路２１１からの係数データを、ランレングスやハフマン等の方法により可変長符号化するＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ：可変長符号）エンコーダ２１２、このＶＬＣエンコーダ２１２からの可変長符号化されたデータを、記録若しくは伝送のためにインナーパリティ及びアウターパリティを付加して積符号形式にする符号化回路２１３で構成される。
動き検出ブロックは、上記フレームメモリ２０１からの後フレームのマクロブロックデータと、上記フレームメモリ２０２からの現フレームのマクロブロックデータとで動き検出を行って動きベクトルデータを得る動き検出回路２０５、上記フレームメモリ２０３からの前フレームのマクロブロックデータと、上記フレームメモリ２０２からの現フレームのマクロブロックデータとで動き検出を行って動きベクトルデータを得る動き検出回路２０６とで構成される。
【０００６】
動き補償ブロックは、量子化回路２１１からの係数データを逆量子化してＤＣＴ回路２１０による係数データを得る逆量子化回路２１５、この逆量子化回路２１５からの係数データを元のマクロブロックデータ若しくは差分データに変換するＩＤＣＴ（Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：逆離散的コサイン変換）回路２１６、このＩＤＣＴ回路２１６からの出力と動き補償済みのマクロブロックデータを加算する加算回路２１７、この加算回路２１７の出力とＩＤＣＴ回路２１６の出力を、インター／イントラ判定回路２０８からのスイッチング制御信号に基いてフレームメモリ２１９に供給するスイッチ２１８、このスイッチ２１８からの出力を記憶領域に記憶するフレームメモリ２１９及びこのフレームメモリ２１９から読み出されたマクロブロックデータを順次記憶するフレームメモリ２２１、上記動き検出回路２０５からの動きベクトルデータに基いて、フレームメモリ２１９に記憶されているフレームデータから適切なマクロブロックデータを選択し、この選択したマクロブロックデータを、動き補償済みのマクロブロックデータとして出力する動き補償回路２２０、上記動き検出回路２０６からの動きベクトルデータに基いて、フレームメモリ２２１に記憶されているフレームデータから適切なマクロブロックデータを選択し、この選択したマクロブロックデータを、動き補償済みのマクロブロックデータとして出力する動き補償回路２２２、上記動き補償回路２２０及び２２２の各動き補償済みのマクロブロックデータに、夫々現フレームとの時間的距離に応じた重み付けを行う重み付け回路２２３、この重み付け回路２２３により重み付けされた２つのマクロブロックデータを合成する合成回路２２４、並びに上記動き補償回路２２０からの動き補償済みのマクロブロックデータ、上記動き補償回路２２２からの動き補償済みのマクロブロックデータ、上記合成回路２２４からの合成マクロブロックデータを、システムコントローラ２２６からのスイッチング制御信号により選択的に出力するスイッチ２２５とで構成される。
【０００７】
ここで、上記インター／イントラ判定回路２０３は、セレクタ２０４からのマクロブロックデータ及び加算回路２０７からの差分データの分散値等を比較し、その分散値の小さい方を選択するよう制御する。
また、上記動き補償回路２２０は、セレクタ２０４から出力されるフレームのマクロブロックよりも、時間的に後（未来）のフレームのマクロブロックデータに対して動き補償処理を施すものである。また、上記動き補償回路２２２は、セレクタ２０４から出力されるフレームのマクロブロックよりも、時間的に前（過去）のフレームのマクロブロックデータに対して動き補償処理を施すものである。また、上記重み付け回路２２３及び合成回路２２４は、上記動き補償回路２２０及び２２２からの補償後の２つのマクロブロックデータに重み付けをし、合成することにより、セレクタ２０４から出力されるフレームのマクロブロックよりも、時間的に後及び前のマクロブロックデータに対して夫々動き補償処理を施し、補償処理を施した２つのマクロブロックデータの合成マクロブロックデータを得ることと等価な処理を行うものである。
【０００８】
上記セレクタ２０４から順次出力されるフレームのマクロブロックデータは、加算回路２０７において、上記３つの系の何れかの出力、即ち、補償処理済みのマクロブロックデータと差分がとられることによって符号化される。加算回路２０７からの差分データは、フレーム間の差分であり、このフレーム間の差分データが符号化されるので、これをフレーム間符号化（インター符号化）と呼び、また、セレクタ２０４からの出力は、そのまま符号化されるので、これをフレーム内符号化（イントラ符号化）と呼ぶ。
【０００９】
セレクタ２０４から出力され、符号化される各フレームの画像データは、その符号化形態に応じて、一般にＩピクチャ、Ｂピクチャ、Ｐピクチャと称される。
Ｉピクチャは、セレクタ２０４から出力される現フレームのマクロブロックデータをフレーム内符号化したデータからなる１フレーム分の符号化後の画像データである。ここでいう符号化とは、上記ＤＣＴ回路２１０、量子化回路２１１及びＶＬＣエンコーダ２１２による符号化のことである。従って、Ｉピクチャの場合には、上記インター／イントラ判定回路２０８の制御により、必ず上記スイッチ２０９及び２１８の各可動接点ｃは、各固定接点ａに夫々接続される。尚、ここで言う「現フレーム」とは、セレクタ２０４から出力され、そのまま符号化（フレーム内符号化）されるか、差分がとられて符号化（フレーム間符号化）されるフレームのマクロブロックデータを意味する。
Ｐピクチャは、セレクタ２０４から出力される現フレームのマクロブロックデータと、現フレームのマクロブロックデータに対し、時間的に前のフレームとなる、Ｉ若しくはＰピクチャの動き補償済みのマクロブロックデータとの差分データを符号化（フレーム間符号化）したデータや、現フレームのマクロブロックデータをフレーム内符号化したデータからなる１フレーム分の符号化後の画像データである。但し、Ｐピクチャを生成するときに、Ｉピクチャとしての画像データに対して動き補償を行うための動きベクトルデータは、動きエンコーダに入力された順序で見て、Ｐピクチャとして符号化すべき画像データと、この画像データの１つ前の画像データとで求められたものとなる。
Ｂピクチャは、セレクタ２０４から出力される現フレームのマクロブロックデータと、次に示す６種類のマクロブロックデータとの差分データを、符号化（フレーム間符号化）したデータである。
【００１０】
上記６種類のマクロブロックデータの内の２種類のマクロブロックデータは、セレクタ２０４から出力される現フレームのマクロブロックデータと、現フレームのマクロブロックデータに対し、時間的に前のフレームとなる、Ｉ若しくはＰピクチャの動き補償済みのマクロブロックデータである。また、残りの４種類のマクロブロックデータの内の２種類のマクロブロックデータは、セレクタ２０４から出力される現フレームのマクロブロックデータと、現フレームのマクロブロックデータに対し、時間的に後のフレームとなる、Ｉ若しくはＰピクチャの動き補償済みのマクロブロックデータである。残りの２種類のマクロブロックデータは、セレクタ２０４から出力される現フレームのマクロブロックデータに対し、時間的に前のフレームとなるＩピクチャと、時間的に後のフレームとなるＰピクチャとから生成される補間マクロブロックデータと、セレクタ２０４から出力される現フレームのマクロブロックデータに対し、時間的に前のフレームとなるＰピクチャと、時間的に後のフレームとなるＰピクチャとから生成される補間マクロブロックデータである。
【００１１】
以上の説明から分かるように、Ｐピクチャは、現フレーム以外の画像データが用いられて符号化されたデータ、即ち、フレーム間符号化されたデータを含み、また、Ｂピクチャは、フレーム間符号化されたデータのみで構成されるものであるから、単独では復号化することができない。そこで、周知なように、関連する複数のピクチャを１つのＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）とし、このＧＯＰを単位として処理するよう規定されている。
通常、ＧＯＰは、１または複数枚のＩピクチャと、零または複数枚の非Ｉピクチャとで構成される。以下の例では、説明の便宜上、１つのＧＯＰが、Ｉピクチャ、Ｐピクチャ及び２つのＢピクチャで構成されているものとする。
【００１２】
また、以下の説明においては、ＢピクチャはこのＢピクチャの前後の画像データでとの差分がとられることによって得られ、ＰピクチャはＩピクチャから得られるものとして説明する。実際は、エンコード時には、上述した前方向動き補償、補間動き補償、後方向動き補償において補償された補償マクロブロックデータの内、最も符号化効率の良いマクロブロックデータが選択され、デコード時には、エンコード時の補償と同じ補償がマクロブロック単位で行われる。つまり、１つのＢピクチャ内の差分データは、前方向動き補償、補間動き補償、後方動き補償の何れかの動き補償により補償された補償マクロブロックデータが、符号化すべきマクロブロックデータから減算されたデータとなり、１つのＰピクチャ内の差分データは、前方動き補償若しくは後方動き補償の何れかの動き補償により補償された補償マクロブロックデータが、符号化すべきマクロブロックデータから減算されたデータとなる。従って、以下の説明においては、元のフレーム毎の画像データについて「画像データ」という以外は、この「画像データ」は、「マクロブロック毎の画像データ」と読み換えるものとする。
【００１３】
〔エンコード時の動作〕
次に、図４１に示した動きエンコーダの動作について説明する。
【００１４】
入力端子２００に供給される画像データは、フレームメモリ２０１、２０２及び２０３に順次記憶される。動き検出回路２０５は、フレームメモリ２０１からの後フレームマクロブロックデータと、フレームメモリ２０２からの現フレームマクロブロックデータとに基いて動き検出を行い、その結果得られた動きベクトルデータを、動き補償回路２２０に供給する。一方、動き検出回路２０６は、フレームメモリ２０３からの前フレームマクロブロックデータと、フレームメモリ２０２からの現フレームマクロブロックデータとに基いて動き検出を行い、その結果得られた動きベクトルデータを、動き補償回路２２２に供給する。以上のよにして、各動き検出回路２０５及び２０６において、マクロブロックデータ毎に動きベクトルデータが得られる。
現フレームの全てのマクロブロックデータと、後フレームの全てのマクロブロックデータとの間の動きベクトルを示す動きベクトルデータ、現フレームの全てのマクロブロックデータと、前フレームの全てのマクロブロックデータとの間の動きベクトルを示す動きベクトルデータが得られると、符号化処理に入る。
【００１５】
ここで図４６Ａ及びＢをも参照してセレクタ２０４から出力されたマクロブロックデータが、どのようにして符号化されるかについて説明する。
図４６Ａは、入力端子２００に供給されるフレーム毎の画像データ、図４６Ｂは、セレクタ２０４から出力される出力され、符号化される順序を示し、各フレームとしての図形内に示す符号の内、数字は、入力されるフレームの順序を示し、英文字は、そのフレームの画像データが、「Ｂ」ならば符号化されてＢピクチャとなり、「Ｉ」ならば符号化されてＩピクチャとなり、「Ｐ」ならば符号化されてＰピクチャとなることを意味する。
【００１６】
ここで、矢印で示す画像データは、符号化される画像データを示し、矢印の根元の画像データは、上記符号化される画像データの符号化時に用いられる画像データを示す。つまり、図４６Ａ中に示す矢印は、各矢印で示される各フレームの画像データが符号化される際に、どのフレームの画像データが予測画像として用いられるのかを示している。例えば、符号化されてＢピクチャとなる第３フレームの画像データは、符号化されてＩピクチャとなる第２フレームの画像データと、符号化されてＰピクチャとなる第４フレームの画像データの片方、若しくはこれら２つの画像データの合成画像データと差分がとられて符号化される。尚、Ｐピクチャについては、予測画像として用いられるフレームを示すための矢印を省略する。
【００１７】
さて、図４６Ａ及びＢの内、ＧＯＰ２内のフレームを例にとり説明するが、前提として、図４１に示したフレームメモリ２２１には、図４６Ａに示す画像データＢ５の予測画像として用いられる画像データＰ４が記憶されているものとし、更に、説明の便宜上、符号化してＢピクチャを得る場合は、常に、合成回路２２４からの予測画像データが用いられるものとする。
図４６Ｂに示すように、画像データＩ６は、マクロブロックデータ毎に、順次セレクタ２０４から出力される。このとき、スイッチ２０９及び２１８の各可動接点ｃは、イントラ側の固定接点ｂに夫々接続されている。従って、画像データＩ６のマクロブロックデータは、スイッチ２０９を通過した後、ＤＣＴ回路２１０、量子化回路２１１、ＶＬＣエンコーダ２１２及び符号化回路２１３において順次処理された後、出力端子２１４を介して出力される。
【００１８】
一方、量子化回路２１１において量子化された画像データＩ６の係数データは、逆量子化回路２１５及びＩＤＣＴ回路２１６によって、元の８ライン×８画素の大きさのマクロブロックデータに戻された後、スイッチ２１８を介してフレームメモリ２１９に供給され、このフレームメモリ２１９に順次記憶される。
フレームメモリ２２１に画像データＰ４が記憶され、フレームメモリ２１９に画像データＩ６が記憶された後は、セレクタ２０４から出力される画像データＢ５から、合成回路２２４からの予測画像データが、加算回路２０７において減算され、この結果得られた差分データが符号化される。従って、セレクタ２０４から画像データＢ５が出力される前の段階においては、フレームメモリ２０１には画像データＩ６が記憶され、フレームメモリ２０２には画像データＢ５が記憶され、フレームメモリ２０３には画像データＰ４が記憶されている。
【００１９】
この場合、動き検出回路２０５においては、フレームメモリ２０２に記憶されている画像データＢ５の各マクロブロックと、フレームメモリ２０１に記憶されている画像データＩ６の各マクロブロックとで動き検出が行われ、画像データＢ５の各マクロブロックが、夫々画像データＩ６のどの部分（マクロブロックデータ）に一致するのかを示す動きベクトルデータが得られる。これらのマクロブロック毎の動きベクトルデータは、動き補償回路２２０において、フレームメモリ２１９に記憶される画像データＩ６の内の対応するマクロブロックデータを順次読み出す、つまり、動き補償を行うために用いられる。
【００２０】
一方、動き検出回路２０６においては、フレームメモリ２０２に記憶されている画像データＢ５の各マクロブロックと、フレームメモリ２０３に記憶されている画像データＰ４の各マクロブロックとで動き検出が行われ、画像データＢ５の各マクロブロックが、夫々画像データＰ４のどの部分（マクロブロックデータ）に一致するのかを示す動きベクトルデータが得られる。これらのマクロブロック毎の動きベクトルデータは、動き補償回路２２２において、フレームメモリ２２１に記憶される画像データＰ４の内の対応するマクロブロックデータを順次読み出す、つまり、動き補償を行うために用いられる。
【００２１】
さて、セレクタ２０４から画像データＢ５のマクロブロックデータが出力されるのに伴い、合成回路２２４から、動き補償回路２２０からの動き補償済みの画像データＩ６のマクロブロックデータと、動き補償回路２２２からの動き補償済みの画像データＰ４のマクロブロックデータとの合成マクロブロックデータが出力され、この合成マクロブロックデータが、スイッチ２２５を介して加算回路２０７に供給される。従って、加算回路２０７においては、画像データＢ５のマクロブロックデータから、合成マクロブロックデータが減算される。この減算によって得られた差分データは後段の各回路によって符号化される。以上の処理は、画像データＢ５の全マクロブロックデータに対して行われる。
【００２２】
次に符号化されるのは、画像データＰ８である。セレクタ２０４から画像データＰ８が出力される前の段階においては、フレームメモリ２０１には画像データＰ８が記憶され、フレームメモリ２０２には画像データＢ７が記憶され、フレームメモリ２０３には画像データＩ６が記憶されている。
この場合、動き検出回路２０５においては、フレームメモリ２０２に記憶されている画像データＢ７の各マクロブロックと、フレームメモリ２０１に記憶されている画像データＰ８の各マクロブロックとで動き検出が行われ、画像データＢ７の各マクロブロックが、夫々画像データＰ８のどの部分（マクロブロックデータ）に一致するのかを示す動きベクトルデータが得られる。これらのマクロブロック毎の動きベクトルデータは、動き補償回路２２０において、フレームメモリ２２１に記憶されている画像データＩ６の内の対応するマクロブロックデータを順次読み出す、つまり、動き補償を行うために用いられる。ここで注意すべきことは、画像データＰ８とＢ７で得られた動きベクトルデータに基いて、画像データＩ６のマクロブロックデータが補償されることである。
【００２３】
さて、セレクタ２０４から画像データＰ８のマクロブロックデータが出力されるのに伴い、動き補償回路２２０から、画像データＩ６の動き補償済みのマクロブロックデータが、スイッチ２２５を介して加算回路２０７に供給される。従って、加算回路２０７においては、画像データＰ８のマクロブロックデータから、画像データＩ６の動き補償済みのマクロブロックデータが減算される。この減算によって得られた差分データは、後段の各回路によって符号化された後に出力端子２１４を介して出力される。以上の処理は、画像データＰ８の全マクロブロックデータに対して行われる。尚、この画像データＰ８に対して符号化処理が行われた後、フレームメモリ２１９に記憶されている画像データＩ６は、フレームメモリ２２１に記憶される。
以上の処理の間、量子化回路２１１からの符号化後の差分データは、逆量子化回路２１５及びＩＤＣＴ回路２１６において元の差分データに戻された後に、加算回路２１７に供給され、この加算回路２１７において、動き補償回路２２０からスイッチ２２５を介して供給される動き補償済みのマクロブロックデータと加算されることにより、画像データＰ８のマクロブロックデータに変換される。この画像データＰ８のマクロブロックデータは、スイッチ２１８を介してフレームメモリ２１９に供給される。以上の処理は、画像データＰ８をフレームメモリ２１９に対する記憶が終了するまで行われる。
【００２４】
次に符号化されるのは、画像データＢ７である。セレクタ２０４から画像データＢ７が出力される前の段階においては、フレームメモリ２０１には画像データＰ８が記憶され、フレームメモリ２０２には画像データＢ７が記憶され、フレームメモリ２０３には画像データＩ６が記憶されている。
そして、動き検出回路２０５においては、フレームメモリ２０２に記憶されている画像データＢ７の各マクロブロックと、フレームメモリ２０１に記憶されている画像データＰ８の各マクロブロックとで動き検出が行われ、画像データＢ７の各マクロブロックが、夫々画像データＰ８のどの部分（マクロブロックデータ）に一致するのかを示す動きベクトルデータが得られる。これらのマクロブロック毎の動きベクトルデータは、動き補償回路２２０において、フレームメモリ２１９に記憶されている画像データＰ８の内の対応するマクロブロックデータを順次読み出す、つまり、動き補償するために用いられる。
【００２５】
一方、動き検出回路２０６においては、フレームメモリ２０２に記憶されている画像データＢ７の各マクロブロックと、フレームメモリ２０３に記憶されている画像データＩ６の各マクロブロックとで動き検出が行われ、画像データＢ７の各マクロブロックが、夫々画像データＩ６のどの部分（マクロブロックデータ）に一致するのかを示す動きベクトルデータが得られる。これらのマクロブロック毎の動きベクトルデータは、動き補償回路２２２において、フレームメモリ２２１に記憶されている画像データＩ６の内の対応するマクロブロックデータを順次読み出す、つまり、動き補償するために用いられる。
さて、セレクタ２０４から画像データＢ７のマクロブロックデータが出力されるのに伴い、合成回路２２４から、動き補償回路２２０からの動き補償済みの画像データＰ８のマクロブロックデータと、動き補償回路２２２からの動き補償済みの画像データＩ６のマクロブロックデータとの合成マクロブロックデータが出力され、この合成マクロブロックデータが、スイッチ２２５を介して加算回路２０７に供給される。従って、加算回路２０７においては、画像データＢ７のマクロブロックデータから、合成マクロブロックデータが減算される。この減算によって得られた差分データは後段の各回路によって符号化され、出力端子２１４を介して出力される。以上の処理は、画像データＢ７の全マクロブロックデータに対して行われる。尚、この画像データＢ７に対して符号化処理が行われた後、フレームメモリ２１９に記憶されている画像データＰ８は、フレームメモリ２２１に記憶される。
【００２６】
以上のようにして、ＧＯＰ２の各フレームの画像データが符号化される。尚、他のＧＯＰも同様にして符号化される。尚、システムコントローラ２２６は、動き検出回路２２０及び２２２からの動きベクトルデータ、動き補償のタイプを示すデータ（或いは符号化時に減算されたデータを示すデータ等）やピクチャタイプを示すデータを、符号化回路２１３に供給される圧縮差分データに付加し、更に、ＧＯＰ毎にＧＯＰの先頭を示すデータや、符号化順序を示すデータを付加する。これらのデータが付加された圧縮差分データは、上述したように、符号化回路２１３において積符号形式にされた後に出力端子２１４を介して出力され、記録若しくは伝送される。
【００２７】
図４２は、図４１に示した動き検出回路２０５及び２０６で行われる動き検出の基本について説明するための説明図である。
【００２８】
図４２Ａでは、移動体が紙飛行機の場合の現及び参照フレーム画像と、これらの画像の差分画像を示し、図４２Ｂでは、動きベクトルデータを、可変長符号化してビットストリームとして出力する様子を示し、図４２Ｃでは、参照フレーム画像と現フレーム画像の差分の画像を、可変長符号化してビットストリームとして出力する様子を示している。尚、説明を分かり易くするために、動き検出の単位を移動体を囲むエリアとする。
図４２Ａにおいて、時間軸方向を実線の矢印で示すように、参照フレーム画像Ｖ（ｆ−１）が過去の画像、現フレーム画像Ｖ（ｆ）が現在の画像であるものとすると、時刻ｔ１における参照フレーム画像Ｖ（ｆ−１）の紙飛行機ＯＢ（ｆ−１）は、時刻ｔ２における現フレーム画像Ｖ（ｆ）内においては、その速度と、方向に応じた位置となり、現フレーム画像Ｖ（ｆ）内に示す紙飛行機ＯＢ（ｆ）の位置となる。これらの画像間においては、参照フレーム画像Ｖ（ｆ−１）の背景であるところの山ＢＧ（ｆ−１）及び現フレーム画像Ｖ（ｆ）の背景であるところの山ＢＧ（ｆ）の位置は同一である。これらの画像を撮影によって取得したビデオカメラそのものが動かないことを前提とした場合、これらは移動体ではないからである。
【００２９】
図４１を参照して説明した動き検出回路２０５及び２０６を用いた処理は、上記現フレーム画像Ｖ（ｆ）の紙飛行機ＯＢ（ｆ）が、上記参照フレーム画像Ｖ（ｆ−１）のどの位置にあるのかを検出し、その結果、現フレームＶ（ｆ）の紙飛行機ＯＢ（ｆ）を、この紙飛行機ＯＢ（ｆ）の位置を基準にして、どの方向にどのくらい移動させれば、参照フレーム画像Ｖ（ｆ−１）の紙飛行機ＯＢ（ｆ−１）の位置と同じ位置になるのかを検出するために行われる。そして、上記方向及び移動量を示すデータが、動きベクトルデータＭＶである。
例えば、現フレーム画像Ｖ（ｆ）の破線のブロックで示すエリアＡｒ（ｆ）の右角部分を、上記エリアＡｒ（ｆ）の代表点とする。この場合、動きベクトルデータＭＶは、現フレーム画像Ｖ（ｆ）のエリアＡｒ（ｆ）の右角と、参照フレーム画像Ｖ（ｆ−１）のエリアＡｒ（ｆ−１）の２点とを夫々結ぶ２つの一点鎖線の、参照フレーム画像Ｖ（ｆ−１）における距離を示す情報と、参照フレーム画像Ｖ（ｆ−１）中に、現フレーム画像Ｖ（ｆ）のエリアＡｒ（ｆ）の対応位置として示す、破線のブロックのエリアＡｒ（ｆ）の右角を起点とし、参照フレーム画像Ｖ（ｆ−１）のエリアＡｒ（ｆ−１）の右角の位置を示す太い実線の矢印、即ち、方向を示す情報とから成る。
【００３０】
上記現フレーム画像Ｖ（ｆ）から、上記参照フレーム画像Ｖ（ｆ−１）を単純に減じた結果得られる差分画像Ｖ（ｆ）−Ｖ（ｆ−１）の情報量は、移動体ではない山ＢＧ（ｆ）及びＢＧ（ｆ−１）の情報がなくなる分だけ大幅に少なくなる。この差分画像Ｖ（ｆ）−Ｖ（ｆ−１）を、図４２Ｂに示すように、可変長符号化し、ビットストリームとして伝送若しくは記録する場合は、図４２Ｃに示すように、上記動きベクトルデータＭＶも、可変用符号化し、ビットストリームとして伝送若しくは記録すれば良い。受信側若しくは再生側では、上記差分画像Ｖ（ｆ）−Ｖ（ｆ−１）と、上記動きベクトルデータＭＶとに基いて、元の参照フレーム画像Ｖ（ｆ−１）及び現フレーム画像Ｖ（ｆ）を復元することができるからである。
しかしながら、上記方法では、参照フレーム画像Ｖ（ｆ−１）の紙飛行機ＯＢ（ｆ−１）と、現フレーム画像Ｖ（ｆ）の紙飛行機ＯＢ（ｆ）とが同じものであるのにもかかわらず、画像としては同じものを２つ伝送若しくは記録しなければならない。つまり、各フレームにおける位置が異なるだけで、全く同じ画像を２つ分伝送若しくは記録することは、伝送効率の面からも、単位情報あたりの記録媒体上における記録面積の面からも見て、十分とはいえず、更なる圧縮効率の改善が求められた。
そこで、ブロックマッチング処理を用いた動き検出が提案されたのである。
【００３１】
図４３は、ブロックマッチング処理の概念を説明するための説明図である。この図４３Ａに示すように、ブロックマッチング処理においては、現フレーム画像Ｖ（ｆ）のマクロブロックＭＢ（ｆ）について、参照フレーム画像Ｖ（ｆ−１）内に所定の広さを有するサーチエリアＳＡ（ｆ−１）を設定し、現フレーム画像Ｖ（ｆ）のマクロブロックＭＢ（ｆ）内の画素データと、サーチエリアＳＡ（ｆ−１）内の多数のマクロブロックＭＢ（ｆ−１）内の画素データとで、差分絶対値和演算を行い、サーチエリアＳＡ（ｆ−１）内のマクロブロックＭＢ（ｆ−１）の個数分だけの差分絶対値和データを得る。
そして、上記多数の差分絶対値和データの内で最も値の小さい差分絶対値和データ、即ち、図４３Ａに示す移動体ＯＢ（ｆ）の画像データを含むマクロブロックＭＢ（ｆ）と同じ移動体の画像データの含みかたをしている、参照フレーム画像Ｖ（ｆ−１）内のマクロブロックＭＢ（ｆ−１）を検出する。つまり、図４３Ｂに示すように、現フレーム画像Ｖ（ｆ）のマクロブロックＭＢ（ｆ）の画像データと同じ内容の画像データを有する、参照フレーム画像Ｖ（ｆ−１）のマクロブロックＭＢ（ｆ−１）を探すのである。そして、上記差分絶対値和データを、上記現フレーム画像Ｖ（ｆ）内のマクロブロックＭＢ（ｆ）を起点として、どの方向に、どのくらい移動することによって、参照フレーム画像Ｖ（ｆ−１）のマクロブロックＭＢ（ｆ−１）の位置となるのかを示す動きベクトルデータＭＶ（Δｘ、Δｙ）に変換する。尚、移動量及び方向は、平面内においては、ｘ軸における距離とｙ軸における距離で表すことができる。
【００３２】
図４３Ａの例では、現フレーム画像Ｖ（ｆ）のマクロブロックＭＢ（ｆ）の画像データは、この位置と同じ位置の、参照フレーム画像Ｖ（ｆ−１）において太い実線で示すマクロブロックを、ｘ軸方向にΔｘ移動させ、更にｙ軸方向にΔｙだけ移動させた位置のマクロブロックＭＢ（ｆ−１）の画像データとなる。単純に言えば、現フレーム画像Ｖ（ｆ）のマクロブロックＭＢ（ｆ）内の画像データは、１フレーム前の参照フレーム画像Ｖ（ｆ−１）において、マクロブロックＭＢ（ｆ−１）の位置にあるということになる。このことを示す情報が、上記動きベクトルＭＶ（Δｘ、Δｙ）である。
この動きベクトルでーたＭＶ（Δｘ、Δｙ）を得るための差分絶対値和データを、「残差」と称する。この残差値Ｅ（Δｘ、Δｙ）は、次の式（１）で表すことができる。
【００３３】
0003800640.tif 000002
【００３４】
一般的使用される、サーチアルゴリズムでは、参照フレーム画像Ｖ（ｆ−１）に設定されるサーチエリアＳＡ（ｆ−１）の領域内で、上述した差分絶対値和演算によって得られた多数の差分絶対値和データの中から、最も小さい値の差分絶対値和データを選択し、その差分絶対値和データを得ることのできた参照フレームＶ（ｆ−１）のマクロブロックＭＢ（ｆ−１）のアドレスと、現フレームＶ（ｆ）のマクロブロックＭＢ（ｆ）のアドレスとから、動きベクトルＭＶ（Δｘ、Δｙ）を得、この動きベクトルデータＭＶ（Δｘ、Δｙ）を最適な動きベクトルとしている。
【００３５】
〔図４１に示した動き検出回路の一例〕
【００３６】
次に、図４４を参照して、図４１に示した動き検出回路２０５及び２０６の一例について説明する。図４４に示す動き検出回路は、ブロックマッチングと称される方法により動き検出を行うものである。
尚、図４１に示した動きエンコーダにおいては、フレームメモリ２０２を現フレーム画像のフレームメモリとし、フレームメモリ２０１を未来のフレームのフレーム画像のフレームメモリとし、フレームメモリ２０３を過去のフレームのフレーム画像のフレームメモリとした。
【００３７】
この場合、フレームメモリ２０１に保持されている未来のフレームのフレーム画像データと、フレームメモリ２０２に保持されている現在のフレームのフレーム画像データとで動き検出を行う場合においては、フレームメモリ２０２に保持されているフレーム画像データが参照フレームのフレーム画像データ、フレームメモリ２０１に保持されているフレーム画像データが現フレームのフレーム画像データとされ、フレームメモリ２０２に保持されている現在のフレームのフレーム画像データと、フレームメモリ２０３に保持されている過去のフレームのフレーム画像データとで動き検出を行う場合においては、フレームメモリ２０３に保持されているフレーム画像データが、参照フレームのフレーム画像データとされ、フレームメモリ２０２に保持されているフレーム画像データが、現フレームのフレーム画像データとされる。
従って、ｎ番目のフレームのフレーム画像データと、ｎ−１番目のフレームのフレーム画像データとで動き検出を行う場合においては、図４４に示す現フレームメモリ３２１は、図４１に示した動きエンコーダのフレームメモリ２０２に対応し、図４４に示す参照フレームメモリ３２３は、図４１に示した動きエンコーダのフレームメモリ２０３に対応する。そして、ｎ番目のフレーム画像データと、ｎ＋１番目のフレーム画像データとで動き検出を行う場合においては、図４４に示す現フレームメモリ３２１は、図４１に示した動きエンコーダのフレームメモリ２０１に対応し、図４４に示す参照フレームメモリ３２３は、図４１に示した動きエンコーダのフレームメモリ２０２に対応する。
【００３８】
〔動き検出回路の接続及び構成〕
この図４４に示す動き検出回路は、現フレームの画像データを記憶するための現フレームメモリ３２１と、後若しくは前のフレーム（参照フレーム）の画像データを記憶するための参照フレームメモリ３２３と、参照フレームメモリ３２３に順次異なるアドレスデータを供給するアドレス発生回路３３３と、現フレームメモリ３２１からの現フレームの注目マクロブロックの画素データから、参照フレームメモリ３２３からの参照マクロブロックの画素データを減算する加算回路３２４と、この加算回路３２４からの減算結果の差分絶対値を得る絶対値回路３２５と、この絶対値回路３２５からの絶対値データを保持するラッチ回路３２７と、絶対値回路３２５からの出力とラッチ回路３２７からのラッチ出力を加算して各参照マクロブロック毎の差分絶対値和データを得るための加算回路３２６と、この加算回路３２６からの差分絶対値和データを記憶するメモリ３２８と、このメモリ３２８に記憶された差分絶対値和データの内の最小値を検出する最小値検出回路３２９と、この最小値検出回路３２９からの最小の差分絶対値和データによって１つの注目マクロブロックに対応する１つの動きベクトルデータを得、この動きベクトルデータを、コントローラ３３２及び図４１に示したシステムコントローラ２２６に夫々供給する動きベクトル検出回路３３０と、最小値検出回路３２９からの最小の差分絶対値和データと、動きベクトル検出回路３３０からの動きベクトルデータに基いてアドレス発生回路３３３を制御すると共に、現フレームメモリ３２１に対する画像データの書き込みや、記憶されている画像データの読み出しの制御を行うためのコントローラ３３２で構成される。
ここで、上記動きベクトル検出回路３３０は、例えば入力される差分絶対値和データを得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとから、動きベクトルデータ、例えば縦方向及び横方向の移動量データを得る。
【００３９】
〔動き検出回路の動作〕
コントローラ３３２の制御により、現フレームメモリ３２１から注目ブロックとしてのマクロブロック（８×８画素、或いは１６×１６画素）の画素データが順次繰り返し読み出される。一方、コントローラ３３２の制御により、アドレス発生回路３３３が、参照フレームメモリ３２３の記憶空間上にサーチエリアを設定し、更にそのサーチエリア内において上記マクロブロックと同じ大きさの参照ブロックを設定し、その参照ブロック内の画素データを順次読み出すためのアドレスデータを順次参照フレームメモリ３２３に供給する。そして、設定した参照ブロック内の画素データの読み出しが全て終了すると、アドレス発生回路３３３は、参照フレームメモリ３２３に対してアドレスデータを供給することにより、その参照ブロックの位置をサーチエリア内において１画素分ずらし、続いて順次アドレスデータを参照フレームメモリ３２３に供給することにより、１画素分ずらした参照ブロック内の画素データの読み出しを行う。
加算回路３２４においては、現フレームメモリ３２１から読み出された注目ブロック内の画素データから、参照フレームメモリ３２３から読み出された参照ブロック内の画素データが減算される。この減算結果は絶対値回路３２５に供給されて絶対値データにされた後、加算回路３２６を介してラッチ回路３２７に供給される。ラッチ回路３２７には順次加算回路３２６からの加算結果、即ち、差分絶対値和データが保持され、これによって、現フレームメモリ３２１内の注目ブロックと、参照フレームメモリ３２３内の１つの参照ブロックとの差分絶対値和データが、順次メモリ３２８に記憶される。そして、最終的にメモリ３２８内には、サーチエリア内に順次１画素分ずつずらされて設定される多数の参照ブロックの数だけ差分絶対値和データが記憶される。
【００４０】
１つの注目マクロブロックの画素データと、１つのサーチエリア内における複数の参照マクロブロックの画素データとの演算が全て終了すると、最小値検出回路３２９は、メモリ３２８内の全差分絶対値和データ中から最も値の小さい差分絶対値和データを選択し、その差分絶対値和データと、その差分絶対値和データを得ることのできた参照マクロブロックのアドレス、注目マクロブロックのアドレスを、動きベクトル検出回路３３０に供給すると共に、コントローラ３３２に次の注目マクロブロックについて処理を開始させるための制御信号を供給する。
最小値検出回路３２９からの差分絶対値和データは、動きベクトル検出回路３３０に供給される。動きベクトル検出回路３３０は、最小値検出回路３２９からの差分絶対値和データと、その差分絶対値和データを得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとから、動きベクトルデータを得る。動きベクトル検出回路３３０において得られた動きベクトルデータは、出力端子３３１を介して図４１に示した動き補償回路２２０、２２２及びシステムコントローラ２２６に夫々供給される。そしてコントローラ３３２は、上述と同様の手順により、サーチエリアを設定した後に、再び次の注目マクロブロック内の画素データと、参照ブロック内の画素データとで演算処理を行うべく、アドレス発生回路３３３及び現フレームメモリ３２１を制御する。
尚、上記ブロックマッチングに関する技術については、米国特許第４８９７７２０号に記載されている。
【００４１】
次に、図４５を参照して、図４１に示した動きエンコーダによって符号化されたデータ列を、復号化する動きデコーダについて説明する。
【００４２】
〔動きデコーダの接続及び構成〕
図４５示す動きデコーダは、圧縮されたデータ列を伸長するための伸長ブロックと、動き補償ブロックと、上記伸長ブロックからの出力と、上記補償ブロックからの出力を加算する加算回路４１３と、上記伸長ブロックからの出力と上記加算回路４１３からの出力を選択的に出力及び上記動き補償ブロックに供給するスイッチ４０５と、上記伸長ブロック及び動き補償ブロックを制御すると共に、上記スイッチ４０５にスイッチング制御信号を供給して上記スイッチ４０５を制御するシステムコントローラ４１４とで構成される。
伸長ブロックは、入力端子４００を介して供給される圧縮データに対し、インナーパリティ及びアウターパリティを用いてエラー訂正処理を施すと共に、エンコード時に付加された動きベクトルデータ、動き補償のタイプを示すデータ、ピクチャタイプを示すデータ、ＧＯＰの先頭を示すデータ、符号化順序を示すデータ等を抽出し、抽出したこれらのデータをシステムコントローラ４１４に供給する復号化回路４０１、この復号化回路４０１からの可変長符号化されている出力を元の量子化後の係数データに戻すＶＬＣデコーダ４０２、このＶＬＣデコーダ４０２からの係数データを再量子化してＤＣＴ後の係数データに戻す再量子化回路４０３、この再量子化回路４０３からの係数データを元のデータに戻すＩＤＣＴ回路４０４で構成される。
【００４３】
動き補償ブロックは、ＩＤＣＴ回路４０４からスイッチ４０５を介して供給される復号化後のフレーム内符号化されたデータ、若しくは加算回路４１３からスイッチ４０５を介して供給される加算出力を、システムコントローラ４１４からの書き込み／読み出し制御信号により順次記憶するフレームメモリ４０７、このフレームメモリ４０７から読み出されたデータを、システムコントローラ４１４からの書き込み／読み出し制御信号により順次記憶するフレームメモリ４０８、システムコントローラ４１４からの動きベクトルデータが示す、フレームメモリ４０７のマクロブロックデータを読み出し、読み出したマクロブロックデータを、動き補償処理済みのマクロブロックデータとしてスイッチ４１２に供給する前方向動き補償回路４０９、システムコントローラ４１４からの２つの動きベクトルデータが示す、フレームメモリ４０７及び４０８の各マクロブロックデータを夫々読み出し、読み出した各マクロブロックデータに対して重み付けを行い、重み付けを行った２つのマクロブロックデータを合成して１つの合成マクロブロックデータを得、この合成マクロブロックデータを、動き補償処理済みのマクロブロックデータとしてスイッチ４１２に供給する両方向動き補償回路４１０、システムコントローラ４１４からの動きベクトルデータが示す、フレームメモリ４０８のマクロブロックデータを読み出し、読み出したマクロブロックデータを、動き補償処理済みのマクロブロックデータとしてスイッチ４１２に供給する後方向動き補償回路４１１、上記前方向動き補償回路４０９、上記両方向動き補償回路４１０、上記後方向動き補償回路４１１からの各出力を、システムコントローラ４１４からのスイッチング制御信号に基いて選択的に出力するスイッチ４１２で構成される。
【００４４】
〔デコード時の動作〕
次に、図４５に示した動きデコーダの動作について説明する。
【００４５】
再生若しくは伝送された圧縮データは、入力端子４００を介してこの動きデコーダに供給され、復号化回路４０１、ＶＬＣデコーダ４０２、再量子化回路４０３、ＩＤＣＴ回路４０４によって順次復号化される。このとき、復号化回路４０１においては、上述した動きベクトルデータ、動き補償のタイプを示すデータ、ピクチャタイプを示すデータ、ＧＯＰの先頭を示すデータ、符号化順序を示すデータ等が抽出され、抽出されたこれらのデータは、システムコントローラ４１４に供給される。
ここで再び図４６をも参照して、上記伸長ブロックにおいて伸長されたデータが、どのようにして動き補償ブロック、加算回路４１３、スイッチ４０５及びシステムコントローラ４１４によって、どのように復号化されるかについて説明する。図４６の各符号の意味については、既に動きエンコーダの動作説明において説明しているので、ここではその説明を省略する。
以下の説明では、符号化時の説明において例として用いたＧＯＰ２を復号化する場合について説明する。また、前提として、ＧＯＰ１の画像データＰ１２が、フレームメモリ４０８に記憶されているものとする。
【００４６】
入力端子４００に供給される順序は、図４６Ｂに示すようになる。先ず、ＩＤＣＴ回路４０４からは、フレーム内符号化された画像データＩ６のマクロブロックデータが出力される。システムコントローラ４１４は、スイッチ４０５にスイッチング制御信号を供給し、スイッチ４０５の可動接点ｃを、イントラ側の固定接点ａに接続させている。従って、ＩＤＣＴ回路４０４から出力された画像データＩ６のマクロブロックデータは、出力端子４０６を介して出力されると共に、フレームメモリ４０７に供給され、システムコントローラ４１４からの書き込み／読み出し制御信号によって記憶される。
画像データＩ６のマクロブロックデータがフレームメモリ４０７に記憶されると、次に画像データＢ５の差分データがＩＤＣＴ回路４０４から出力される。システムコントローラ４１４は、スイッチ４０５にスイッチング制御信号を供給し、スイッチ４０５の可動接点ｃを、インター側の固定接点ｂに接続させている。また、システムコントローラ４１４は、スイッチ４１２にスイッチング制御信号を供給し、スイッチ４１２の可動接点ｄを、固定接点ｂに接続させる。一方、両方向動き補償回路４１０は、システムコントローラ４１４から順次２つずつ供給される動きベクトルデータにより、フレームメモリ４０７から対応する画像データＩ６のマクロブロックデータを、フレームメモリ４０８から対応する画像データＰ４のマクロブロックデータを夫々読み出し、読み出した２つのマクロブロックデータに重み付けをして合成して１つの合成マクロブロックデータを得る処理を順次行っている。
【００４７】
従って、画像データＢ５の差分データがＩＤＣＴ回路４０４から出力され、加算回路４１３に供給される時点には、両方向動き補償回路４１０からの動き補償済みのマクロブロックデータ（合成マクロブロックデータ）が、スイッチ４１２を介して加算回路４１３に供給される。よって、この加算回路４１３においては、画像データＢ５の差分データと、画像データＩ６及び画像データＰ４のマクロブロックデータが合成されて得られた合成マクロブロックデータとが加算され、その結果、画像データＢ５のマクロブロックデータが復号化される。つまり、図４６Ｃにおいて矢印で示すように、画像データＰ４と画像データＩ６によって画像データＢ５が復号化される。
既に動きエンコーダの動作説明において説明したように、画像データＢ５のマクロブロックデータの符号化は、画像データＰ４のマクロブロックデータと画像データＩ６のマクロブロックデータとを合成して得た合成マクロブロックデータを、画像データＢ５のマクロブロックデータから減算して行われているので、復号化して画像データＢ５のマクロブロックデータを得るためには、伸長された画像データＢ５の差分データに、画像データＰ４のマクロブロックデータと画像データＩ６のマクロブロックデータとを合成して得られる合成マクロブロックデータを加算すれば良い。
【００４８】
画像データＢ５のマクロブロックデータが全て復号化されると、システムコントローラ４１４からの書き込み／読み出し制御信号により、フレームメモリ４０７に記憶されている画像データＩ６が、フレームメモリ４０８に記憶される。
画像データＩ６のマクロブロックデータがフレームメモリ４０８に記憶されると、次に画像データＰ８の差分データがＩＤＣＴ回路４０４から出力される。システムコントローラ４１４は、スイッチ４０５にスイッチング制御信号を供給し、スイッチ４０５の可動接点ｃを、インター側の固定接点ｂに接続させている。また、システムコントローラ４１４は、スイッチ４１２にスイッチング制御信号を供給し、スイッチ４１２の可動接点ｄを、固定接点ｃに接続させる。一方、後方向動き補償回路４１１は、システムコントローラ４１４から順次供給される動きベクトルデータにより、フレームメモリ４０８から対応する画像データＩ６のマクロブロックデータを読み出している。
【００４９】
従って、画像データＰ８の差分データがＩＤＣＴ回路４０４から出力され、加算回路４１３に供給される時点には、後方向動き補償回路４１１からの動き補償済みのマクロブロックデータが、スイッチ４１２を介して加算回路４１３に供給される。よって、この加算回路４１３においては、画像データＰ８の差分データと、画像データＩ６から得られる動き補償済みのマクロブロックデータとが加算され、その結果、画像データＰ８のマクロブロックデータが復号化される。つまり、画像データＩ６によって画像データＰ８が復号化される。尚、図４６において、Ｐピクチャの復号元を示す矢印は省略している。
既に動きエンコーダの動作説明において説明したように、画像データＰ８のマクロブロックデータの符号化は、画像データＩ６の動き補償済みのマクロブロックデータを、画像データＰ８のマクロブロックデータから減算して行われているので、復号化して画像データＰ８のマクロブロックデータを得るためには、伸長された画像データＰ８の差分データに、画像データＩ６の動き補償済みのマクロブロックデータを加算すれば良い。
【００５０】
復号化された画像データＰ８のマクロブロックデータは、出力端子４０６を介して出力されると共に、フレームメモリ４０７に供給され、システムコントローラ４１４からの書き込み／読み出し制御信号により、フレームメモリ４０７に記憶される。従って、画像データＰ８の復号化が終了した時点においては、フレームメモリ４０７には画像データＰ８が、フレームメモリ４０８には画像データＩ６が記憶されている。
次に画像データＢ７の差分データがＩＤＣＴ回路４０４から出力される。システムコントローラ４１４は、スイッチ４０５にスイッチング制御信号を供給し、スイッチ４０５の可動接点ｃを、インター側の固定接点ｂに接続させている。また、システムコントローラ４１４は、スイッチ４１２にスイッチング制御信号を供給し、スイッチ４１２の可動接点ｄを、固定接点ｂに接続させる。一方、両方向動き補償回路４１０は、システムコントローラ４１４から順次２つずつ供給される動きベクトルデータにより、フレームメモリ４０７から対応する画像データＰ８のマクロブロックデータを、フレームメモリ４０８から対応する画像データＩ６のマクロブロックデータを夫々読み出し、読み出した２つのマクロブロックデータに重み付けをして合成して１つの合成マクロブロックデータを得る処理を順次行っている。
【００５１】
従って、画像データＢ７の差分データがＩＤＣＴ回路４０４から出力され、加算回路４１３に供給される時点には、両方向動き補償回路４１２からの動き補償済みのマクロブロックデータ（合成マクロブロックデータ）が、スイッチ４１２を介して加算回路４１３に供給される。よって、この加算回路４１３においては、画像データＢ７の差分データと、画像データＰ８及び画像データＩ６のマクロブロックデータが合成されて得られた合成マクロブロックデータとが加算され、その結果、画像データＢ７のマクロブロックデータが復号化される。つまり、図４６Ｃにおいて矢印で示すように、画像データＰ８と画像データＩ６によって画像データＢ７が復号化される。
既に動きエンコーダの動作説明において説明したように、画像データＢ７のマクロブロックデータの符号化は、画像データＰ８のマクロブロックデータと画像データＩ６のマクロブロックデータとを合成して得た合成マクロブロックデータを、画像データＢ７のマクロブロックデータから減算して行われているので、復号化して画像データＢ７のマクロブロックデータを得るためには、伸長された画像データＢ７の差分データに、画像データＰ８のマクロブロックデータと画像データＩ６のマクロブロックデータとを合成して得られる合成マクロブロックデータを加算すれば良い。
【００５２】
以上のようにして、順次、各ＧＯＰのフレームの画像データが復号化される。復号化された各ＧＯＰのフレームの画像データは、図４２の例では、Ｂ１、Ｉ２、Ｂ３、Ｐ４、Ｂ５、Ｉ６、Ｂ７、Ｐ８、Ｂ９、Ｉ１０、Ｂ１１、Ｐ１２の順序で読み出されることにより、ＧＯＰ内の画像データの並び変えが行われる。ここで注意すべきことは、ＧＯＰの順序はそのままであるが、各ＧＯＰ内の画像データは、符号化前の真のフレームの順序に並び変えられることである。
【００５３】
【発明が解決しようとする課題】
上述したブロックマッチング処理による動き検出においては、問題点がある。以下、この問題点について、図４７及び図４８を参照して説明する。
【００５４】
図４７Ａは、上述したブロックマッチング処理における注目マクロブロックＭＢ（ｆ）と、この注目マクロブロックＭＢ（ｆ）に対応して設定されるサーチエリアＳＡと、上記注目マクロブロックＭＢ（ｆ）とサーチエリアＳＡ内の参照マクロブロックとで差分絶対値和演算が行われ、その結果得られた多数の差分絶対値和データ、即ち、残差値の内で、最も値の小され残差値と、その残差値を得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとに基いて得られた動きベクトルデータＭＶが、上記注目マクロブロックＭＢ（ｆ）の画像データが、１フレーム分前のフレーム画像データ上においてどの位置にあったかを表している。太い破線で示すブロックＭＢ’（ｆ）は、上述した参照フレーム内の参照マクロブロックを示している。
図４７Ｂは、１つの注目マクロブロックＭＢ（ｆ）と差分絶対値和演算が行われる、サーチエリアＳＡ内の参照マクロブロックの位置と、最も値の小さい残差値と、この残差値を得ることのできた参照マクロブロックデータのアドレスと、注目マクロブロックデータのアドレスとから得られる動きベクトルデータＭＶの関係を示す説明図であり、図に示すように、縦軸はｙ、横軸はｘであり、これらの軸上に夫々示す“●”は、夫々参照マクロブロックの位置を示している。つまり、サーチエリアＳＡ内には、この“●”で示すｘ方向の位置と、“●”で示すｙ方向の位置とで表すことができる位置に対応する数だけの参照マクロブロックが存在する。
【００５５】
図４７Ｂは、図４７Ａに示す状態、即ち、サーチエリアＳＡの中心に位置する注目マクロブロックＭＢ（ｆ）、この注目マクロブロックＭＢ（ｆ）とサーチエリアＳＡ内の多数の参照マクロブロックとで差分絶対値和演算を行って得られた多数の残差値の内で選択された最小の残差値、この残差値を得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスとから得られた動きベクトルデータＭＶ、及びこの動きベクトルデータＭＶによってこの注目マクロブロックＭＢ（ｆ）の１フレーム前の位置のブロックＭＢ’（ｆ）が示されている状態を、疑似的なグラフ上で表した図である。この図４７Ｂから分かるように、ｘ及びｙ方向の中心から、矢印で表す動きベクトルデータＭＶが示す位置にある“●”が、最小の残差値Ｅとなる。
【００５６】
ところで、移動体の真の動きに即した、より正確な動きベクトルを得るためには、上記サーチエリアＳＡの領域を大きくする必要がある。サーチエリアＳＡの領域を大きくすることによって、移動速度の早い移動体のベクトルを、上記サーチアルゴリズムによって検出することができるからである。図４７Ｂの例でいえば、上記ｘ軸及びｙ軸を夫々の方向に延長し、求めることのできる残差値の範囲を増加させることである。
図４８は、何故、移動体の真の動きに即したより正確な動きベクトルを得るためにサーチエリアＳＡの領域を大きくする必要があるのか説明するのには最も適した図である。この図４８においては、注目マクロブロックＭＢ（ｆ）の位置が、ｘ軸とｙ軸の中心とした場合における、注目マクロブロックＭＢ（ｆ）の１フレーム前の位置を求める場合に、小さなサーチエリアｓａを用いて動き検出を行った結果得られる動きベクトルデータＭＶ１と、大きなサーチエリアＳＡを用いて動き検出を行った結果得られる動きベクトルデータＭＶ２とでどれだけ差がでるかを、１フレーム前の新の位置を示す最小残差Ｅｍｉｎを頂上とした、残差Ｅ（Δｘ、Δｙ）の等高線Ｌ１、Ｌ２及びＬ３を用いて示している。
【００５７】
等高線Ｌ３と等高線Ｌ２との間は、山の裾部分に相当し、最も誤差のある残差を含む領域である。等高線Ｌ２と等高線Ｌ１との間は、山の中腹部分に相当し、等高線Ｌ３と等高線Ｌ２との間よりも誤差の少ない残差を含む領域である。等高線Ｌ１内は、山の頂上部分に相当し、誤差の最も少ない残差を含む領域である。そして、“●”で示す部分が頂上であり、この部分が誤差のない残差、即ち、最小残差Ｅｍｉｎを示している。つまり、この図４８では、等高線を用いることによって、山の各部分の高さを、残差の正確さに擬制している。
【００５８】
さて、破線で示すブロックの内、最も広い空間であるところの残差空間ＺＡは、例えば１フレーム全体を示している。そしてこの残差空間ＺＡ内に示す、小さいサーチエリアｓａを用いて動き検出を行った場合、求められた動きベクトルデータＭＶ１は、移動体の真の位置であるところの“●”の位置を示すことはできず、図に示されているように、小さなサーチエリアｓａの右角であり、等高線Ｌ１とＬ２の間である。つまり、残差値に誤差を含んでいるので、移動体の真の動きを検出していない。
一方、大きいサーチエリアＳＡを用いて動き検出を行った場合、求められた動きベクトルデータＭＶ２は、移動体の真の位置であるところの“●”の位置、即ち、頂上を示すことができる。つまり、残差値に誤差を含んでいないので、移動体の真の動きを検出している。
【００５９】
以上の説明から明かなように、移動体の移動速度が遅い場合には、現フレームにおける移動体の位置と、参照フレームにおける移動体の位置との距離が短くなるので、動き検出を行う際に設定するサーチエリアＳＡは小さくても良いが、移動体の移動速度が速い場合には、現フレームにおける移動体の位置と、参照フレームにおける移動体の位置との距離が長くなるので、動き検出を行う際に設定するサーチエリアＳＡは大きくなければならない。従って、移動体の移動速度が速い場合には、サーチエリアＳＡを大きくすれば良い。
しかしながら、サーチエリアＳＡを大きくすると、移動体の移動速度が速くても対応することができるといった利点が得られる反面、サーチエリアＳＡが大きいので、その分、ブロックマッチングを行う参照マクロブロックの個数が増加し、よって差分絶対値和演算の計算量が膨大なものとなってしまうというといった不都合が生じる。
【００６０】
この不都合を解消するためには、やはり、サーチエリアＳＡを小さくしなければならないが、サーチエリアＳＡを小さくすると、移動体の移動速度が速い場合には、上述したように、残差値に誤差を含むので、移動体の真の動きを示す動きベクトルデータＭＶを得ることができない。動画像の符号化においては、通常、動きベクトルを伝送する際、直前に伝送した動きベクトルとの差分のみを可変長符号化処理するので、誤差のある動きベクトルデータの差分を取ることになるので、伝送する動きベクトルデータのビット数が増大するといった不都合が生じる。また、このように、誤差のある動きベクトルデータを用いて動き補償を行った場合、動き補償されたマクロブロックは、正確なマクロブロックではないので、符号化するマクロブロックとの差分をとって伝送する場合に、伝送するビット数が増大してしまうといった不都合が生じる。
【００６１】
本発明はこのような点を考慮してなされたもので、正確な動きベクトルデータを短時間に得ることにより、符号化効率を向上させることのできる画像情報の動き検出方法その装置、画像情報の符号化方法及びその装置、画像情報伝送システム、並びに画像情報記録システムを提案しようとするものである。
【００６２】
【課題を解決するための手段】
本発明は、現フレームの時間的位置に対して前若しくは後ろの位置となる参照フレーム内における、上記現フレーム内の注目ブロックの位置に対応して、上記注目ブロックの内容に一致する参照ブロックを探索するための第１の探索エリアを設定する、第１の探索エリア設定ステップと、上記現フレーム内の注目ブロックの内容と、上記参照フレームの上記第１の探索エリア内の参照ブロックの内容の一致性を検出するための第１の一致検出ステップと、上記第１の一致検出ステップにおいて求められた第１の動きベクトルデータと大きさが同一で、方向が逆の第２の動きベクトルデータに基いて、上記現フレーム内の注目ブロックの１フレーム後の位置を予測する第１の位置予測ステップと、上記第１の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第１の注目ブロック位置情報検出ステップと、上記第１の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させてテーブルに登録するテーブル登録ステップと、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第１の判断ステップと、上記第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理が終了したことが判断された場合に、上記現フレームの内容を、上記現フレームの内容の時間的位置よりも後ろ若しくは前の時間的位置の内容に更新し、更に上記参照フレームの内容を、少なくとも上記現フレームの内容に更新する画像更新ステップと、上記画像更新ステップによって更新された、上記現フレーム内の処理対象の注目ブロックに関連する、上記テーブルに登録されている登録動きベクトルデータを、上記テーブルから、候補動きベクトルデータとして読み出し、該候補動きベクトルデータから最も最適な動きベクトルデータを選択する動きベクトル選択ステップと、上記動きベクトル選択ステップにおいて選択された候補動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致検出ステップと、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータに基いて、次に上記第２の一致検出ステップにおける上記第２の探索エリアの設定で用いる上記包括領域内の注目ブロックの位置情報を求め、該位置情報を上記テーブルに登録することにより、上記テーブルの内容を更新するテーブル内容更新ステップとを含むものである。
【００６３】
上述せる本発明によれば、現フレームの時間的位置に対して前若しくは後ろの位置となる参照フレーム内における、上記現フレーム内の注目ブロックの位置に対応して、上記注目ブロックの内容に一致する参照ブロックを探索するための第１の探索エリアを第１の探索エリア設定ステップにより設定し、第１の一致検出ステップにおいて、上記現フレーム内の注目ブロックの内容と、上記参照フレームの上記第１の探索エリア内の参照ブロックの内容の一致性を検出し、第１の位置予測ステップにおいて、上記第１の一致検出ステップにおいて求められた第１の動きベクトルデータと大きさが同一で、方向が逆の第２の動きベクトルデータに基いて、上記現フレーム内の注目ブロックの１フレーム後の位置を予測し、第１の注目ブロック位置情報検出ステップにより、上記第１の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出し、テーブル登録ステップにおいて、上記第１の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させてテーブルに登録し、第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断し、上記第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理が終了したことが判断された場合に、画像更新ステップにおいて、上記現フレームの内容を、上記現フレームの内容の時間的位置よりも後ろ若しくは前の時間的位置の内容に更新し、更に上記参照フレームの内容を、少なくとも上記現フレームの内容に更新し、動きベクトル選択ステップにより、上記画像更新ステップによって更新された、上記現フレーム内の処理対象の注目ブロックに関連する、上記テーブルに登録されている登録動きベクトルデータを、上記テーブルから、候補動きベクトルデータとして読み出し、該候補動きベクトルデータから最も最適な動きベクトルデータを選択し、第２の一致検出ステップにより、上記選択された動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得、テーブル内容更新ステップにおいて、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータに基いて、次に上記第２の一致検出ステップにおける上記第２の探索エリアの設定で用いる上記包括領域内の注目ブロックの位置情報を求め、該位置情報を上記テーブルに登録することにより、上記テーブルの内容を更新する。これによって、最初は第１の探索エリアを用いて一致性の検出が行われ、以降、上記テーブルの内容に基いて第２の探索エリアが設定され、その第２の探索エリアが用いられて一致性の検出が行われる。
【００６４】
また、上記第２の一致検出ステップは、上記動きベクトル選択ステップにおいて選択された、上記登録動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定する第２の探索エリア設定ステップと、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る第２の一致性検出ステップとを含むものである。
【００６５】
また、上記第２の一致検出ステップにおいては、第２の探索エリア設定ステップにより、上記動きベクトル選択ステップにおいて選択された、上記登録動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、第２の一致性検出ステップにより、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得る。これによって、適切に設定された第２の探索エリアを用いて一致性を検出することができる。
【００６６】
また、上記テーブル内容更新ステップは、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータと、大きさが同一で、方向が逆の逆動きベクトルデータに基いて、上記注目ブロックの１フレーム後の位置を予測する第２の位置予測ステップと、上記第２の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出する第２の注目ブロック位置情報検出ステップと、上記第２の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させて上記テーブルに登録することによりテーブルの内容を更新するテーブル内容更新ステップと、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する第２の判断ステップとを含むものである。
【００６７】
また、上記テーブル内容更新ステップにおいては、第２の位置予測ステップにおいて、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータと、大きさが同一で、方向が逆の逆動きベクトルデータに基いて、上記注目ブロックの１フレーム後の位置を予測し、第２の注目ブロック位置情報検出ステップにおいて、上記第２の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出し、テーブル内容更新ステップにおいて、上記第２の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させて上記テーブルに登録することによりテーブルの内容を更新し、第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断する。これによって、次の一致性検出に用いる情報を参照して正確な第２の探索エリアを設定することができる。
【００６８】
また、上記テーブル内容更新ステップは、上記第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したものと判断した場合に、現フレームの画像と、次に上記画像更新ステップにおいて画像の更新処理がなされることにより、現フレームとされる新たな入力画像との、変化の度合いの大きい、シーンチェンジが有るか否かを判断し、シーンチェンジが有るものと判断された場合に、上記第１の探索エリア設定ステップに移行する、シーンチェンジ判断手段を更に含むものである。
【００６９】
また、上記テーブル内容更新ステップは、シーンチェンジ判断ステップにより、上記第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したものと判断した場合に、現フレームの画像と、次に上記画像更新ステップにおいて画像の更新処理がなされることにより、現フレームとされる新たな入力画像との、変化の度合いの大きい、シーンチェンジが有るか否かを判断し、シーンチェンジが有るものと判断された場合に、上記第１の探索エリア設定ステップに移行する。これによって、シーンチェンジがない場合には、第２の探索エリアを用いた処理が行われ、シーンチェンジがあった場合には、第２の探索エリアよりも広い第１の探索エリアを用いた処理が行われる。
【００７０】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータの内、処理対象の注目ブロックの回りの複数の注目ブロックの各登録動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００７１】
また、上記動きベクトル選択ステップは、候補動きベクトルデータの内、処理対象の注目ブロックの回りの複数の注目ブロックの各登録動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、回りの注目ブロックに関連性の高い動きベクトルデータを選択することができる。
【００７２】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータの内、全注目ブロックについて夫々テーブルに登録されている、登録動きベクトルデータに最も多く含まれる候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００７３】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータの内、全注目ブロックについて夫々テーブルに登録されている、登録動きベクトルデータに最も多く含まれる候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができる。
【００７４】
また、上記テーブル登録ステップは、上記テーブルに、上記注目ブロックの各候補動きベクトルデータをも登録し、上記動きベクトル選択ステップは、現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、少なくとも、現時点よりも２ステップ前の、上記テーブルに登録された候補動きベクトルデータに最も近似する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００７５】
また、上記テーブル登録ステップは、上記テーブルに、上記注目ブロックの各候補動きベクトルデータをも登録し、上記動きベクトル選択ステップは、上記候現フレームの処理対象の候補動きベクトルデータの内、少なくとも、現時点よりも２ステップ前の、上記テーブルに登録された候補動きベクトルデータに最も近似する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、過去の全登録動きベクトルデータに関連性の高い動きベクトルデータを得ることができる。
【００７６】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータを用いて、夫々順次参照フレーム内に上記第２の探索エリアを設定し、現フレーム内の注目ブロックと、上記参照フレーム内に設定した第２の探索エリア内の参照ブロックとで順次一致性を検出し、この検出の結果を比較し、最も誤差の少ない結果を得ることのできた候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００７７】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータを用いて、夫々順次参照フレーム内に上記第２の探索エリアを設定し、現フレーム内の注目ブロックと、上記参照フレーム内に設定した第２の探索エリア内の参照ブロックとで順次一致性を検出し、この検出の結果を比較し、最も誤差の少ない結果を得ることのできた候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、第２の探索エリア内の注目ブロックの動きベクトルデータに関連性の高い動きベクトルデータを得ることができる。
【００７８】
また、上記動きベクトル選択ステップは、上記テーブルに登録されている全登録動きベクトルデータの平均値であるところの平均動きベクトルデータを得る平均動きベクトルデータ取得ステップを含み、上記候補動きベクトルデータの内、上記平均動きベクトルデータ取得ステップにおいて取得された平均動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００７９】
また、上記動きベクトル選択ステップは、上記テーブルに登録されている全登録動きベクトルデータの平均値であるところの平均動きベクトルデータを得る平均動きベクトルデータ取得ステップを含み、上記候補動きベクトルデータの内、上記平均動きベクトルデータ取得ステップにおいて取得された平均動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができる。
【００８０】
また、上記テーブル登録ステップは、上記テーブルに、上記第１の一致検出ステップにおける、上記参照ブロックと上記注目ブロックとの内容の一致性の高低を示す一致性情報も登録し、上記動きベクトル選択ステップは、現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、上記テーブルに登録されている最も一致性の高いことを示す一致性情報に対応する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するものである。
【００８１】
また、上記テーブル登録ステップは、上記テーブルに、上記第１の一致検出ステップにおける、上記参照ブロックと上記注目ブロックとの内容の一致性の高低を示す一致性情報も登録し、上記動きベクトル選択ステップは、現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、上記テーブルに登録されている最も一致性の高いことを示す一致性情報に対応する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択する。これによって、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができる。
【００８２】
また本発明は、現フレームのフレーム画像データを記憶する現フレームメモリと、上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを記憶する参照フレームメモリと、上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を得る差分絶対値和演算手段と、上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを検出する最小値検出手段と、上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを得る動きベクトル検出手段と、上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御する制御手段とを有し、上記制御手段は、上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御する現及び参照フレームメモリ制御手段と、上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持する保持手段と、上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスを算出するアドレス算出手段と、上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御を行うテーブル制御手段と、上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断する判断手段と、上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている、全ての注目ブロックの動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータを選択するベクトル選択手段とを有するものである。
【００８３】
また上述せる本発明によれば、現フレームのフレーム画像データを現フレームメモリに記憶し、上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを参照フレームメモリに記憶し、上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を差分絶対値和演算手段で得、上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを最小値検出手段で得、上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを動きベクトル検出手段で得、上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御手段で制御し、現及び参照フレームメモリ制御手段により、上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持手段により保持し、上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスをアドレス算出手段により算出し、上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御をテーブル制御手段で行い、上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断手段で判断し、上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている、全注目ブロックの動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータをベクトル選択手段で選択する。これによって、最初は第１の探索エリアを用いて一致性の検出が行われ、以降、上記テーブルの内容に基いて第２の探索エリアが設定され、その第２の探索エリアが用いられて一致性の検出が行われる。
【００８４】
また、上記テーブルは、少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、上記各種情報は、注目ブロックを示す注目ブロック番号データと、上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成されるものである。
【００８５】
また、上記テーブルは、少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、上記各種情報は、注目ブロックを示す注目ブロック番号データと、上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成される。これによって、一致性の検出時に行われる第２の探索エリアの設定において、上記各情報が読み出され、上記各情報によって第２の探索エリアが設定される。
【００８６】
【発明の実施の形態】
以下、図１〜図４０を順次参照して本発明の実施の形態について詳細に説明する。
【００８７】
本発明の実施の形態の説明は、次に示す項目説明を各項目の先頭に記載し、各項目について次に示す順序で説明する。
【００８８】
＊本発明の前提となる技術
Ａ．テレスコピックサーチの説明（図３９参照）
Ｂ．テレスコピックサーチにおける不都合の説明（図４０参照）
＊実施の形態の概要説明
Ｃ．着目点の説明（図１参照）
Ｄ．図１に示した例でのブロック毎の予測処理の説明（図２参照）
Ｅ．実施の形態における処理の概要説明（図３参照）
Ｆ．図３に示した残差処理ステップにおいてテレスコピックサーチを用いた場合の概要説明（図４参照）
＊第１の実施の形態
Ｇ．動き検出回路の構成及び動作説明（図５参照）
Ｈ．図４に示したテーブルデータＴＢＬの説明（図６参照）
Ｉ．図５に示した動き検出回路のメインルーチンによる制御動作の説明（図７参照）
Ｊ．図７に示した現及び参照フレームデータセット処理ルーチンによる制御動作の説明（図８及び図９参照）
Ｋ．図７に示したフルサーチブロックマッチング処理ルーチンによる制御動作の説明（図１０及び図１１参照）
Ｌ．逆領域におけるマクロブロックの配置パターンの一例の説明（図１２参照）  Ｍ．図７に示した残差処理用データ生成処理ルーチンによる制御動作の説明（図１３及び図１４参照）
Ｎ．図７に示した残差処理ルーチンによる制御動作の説明（図１５〜図１７参照）
Ｏ．図１５に示した動きベクトルデータサーチルーチンによる制御動作の説明（図１８及び図１９参照）
Ｐ．図１５〜図１７に示した動きベクトルデータ選択ルーチンによる制御動作の説明（図１９〜図２１参照）
Ｑ．テレスコピックサーチエリアにおけるテレスコピックマクロブロックのパターンと、テレスコピックマクロブロックテーブルの説明（図２２参照）
Ｒ．図１７に示したテレスコピックサーチエリア設定処理ルーチンによる制御動作の説明（図２３及び図２４参照）
Ｓ．図１７に示したテレスコピックサーチ処理ルーチンによる制御動作の説明（図２５及び図２６参照）
＊第２の実施の形態
Ｔ．図１７に示した動きベクトルデータ選択ルーチンによる制御動作の説明（図２７及び図２８参照）
＊第３の実施の形態
Ｕ．図７に示した残差処理ルーチンによる制御動作の概念の説明（図２９参照）
Ｖ．図７に示した残差処理ルーチンによる制御動作の説明（図３０〜図３２参照）
＊第４の実施の形態
Ｗ．図７に示した残差処理ルーチンによる制御動作の説明（図３３及び図３４参照）
＊第５の実施の形態
Ｘ．図７に示した残差処理ルーチンによる制御動作の説明（図３５及び図３６参照）
Ｙ．図３５に示した平均動きベクトルデータ取得ルーチンによる制御動作の説明（図３７参照）
＊第６の実施の形態
Ｚ．図７に示した残差処理ルーチンによる制御動作の説明（図３８参照）
【００８９】
［本発明の前提となる技術］
【００９０】
Ａ．テレスコピックサーチの説明（図３９参照）
【００９１】
図３９は、本発明の前提となる、テレスコピックサーチによる動き検出処理を説明するための説明図である。この図３９の左側には、フレーム画像データの遷移の例として、山の見える所で飛行している紙飛行機を、ビデオカメラで撮影して映像データを得、その映像データの任意のフレームの位置から、連続して３つのフレーム画像データを抽出した場合の各フレーム画像データＶ（ｆ−１）（図３９Ａ）、フレーム画像データＶ（ｆ）（図３９Ｂ）、フレーム画像データＶ（ｆ＋１）（図３９Ｃ）を夫々示している。これらの図の左側には、実線の矢印で、時刻の移り変わりを示している。
【００９２】
また、この図３９の右側には、上記フレーム画像データＶ（ｆ−１）、Ｖ（ｆ）、Ｖ（ｆ＋１）に対する処理の流れを示している。処理の流れの順序は、図に示すように、▲１▼、▲２▼、▲３▼の順序となる。図３９Ｅは、図３９Ａに示すフレーム画像データＶ（ｆ−１）を示し、図３９Ｄ及び図３９Ｇは、夫々図３９Ｂに示すフレーム画像データＶ（ｆ）を示し、図３９Ｆは、図３９Ｃに示すフレーム画像データＶ（ｆ＋１）を示す。尚、図３９Ａに示すフレーム画像データＶ（ｆ−１）と図３９Ｅに示すフレーム画像データＶ（ｆ−１）との対応、図３９Ｂに示すフレーム画像データＶ（ｆ）と、図３９Ｄ及び図３９Ｇに夫々示すフレーム画像データＶ（ｆ）との対応、並びに、図３９Ｃに示すフレーム画像データＶ（ｆ＋１）と、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）との対応を、より明確にするために、破線によって、水平方向を分割している。
【００９３】
ビデオカメラで撮影された紙飛行機の映像データを、図３９Ａに示すフレーム画像データＶ（ｆ−１）、図３９Ｂに示すフレーム画像データＶ（ｆ）、図３９Ｃに示すフレーム画像データＶ（ｆ＋１）の順序で見た場合、紙飛行機の各画像上における位置は、時刻に対応して、図３９Ａに示すフレーム画像データＶ（ｆ−１）における位置Ｏ１、図３９Ｂに示すフレーム画像データＶ（ｆ）における位置Ｏ２、フレーム画像データＶ（ｆ＋１）における位置Ｏ３の順に遷移する。この紙飛行機の動きを、既に図４４を参照して説明したブロックマッチングによって検出する場合について説明する。以下、図３９の右側、即ち、処理の流れに対応する図３９Ｄ〜図３９Ｇを参照して説明する。
【００９４】
先ず、実線の矢印▲１▼で示すように、図３９Ｄに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）と、図３９Ｅに示すフレーム画像データＶ（ｆ−１）のサーチエリアＳＡ内の注目マクロブロックＭＢ（ｆ−１）とで動き検出が行われる。この場合、図３９Ｄに示すフレーム画像データＶ（ｆ）は、現フレームのフレーム画像データ、図３９Ｅに示すフレーム画像データＶ（ｆ−１）は、前フレームの画像データとなる。図３９Ｅに示すフレーム画像データＶ（ｆ−１）の任意の注目マクロブロックＭＢ（ｆ−１）については、次のように動き検出が行われる。
即ち、図３９Ｄに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）に対応して、図３９Ｅに示すフレーム画像データＶ（ｆ−１）内に、サーチエリアＳＡが設定される。そして、上記注目マクロブロックＭＢ（ｆ）内の画素データと、サーチエリアＳＡ内の参照マクロブロックＭＢ（ｆ−１）内の画素データとで順次差分絶対値和演算が行われ、その結果得られたサーチエリアＳＡ内の全参照マクロブロックＭＢ（ｆ−１）分の差分絶対値和の内、最も値の小さい差分絶対値和データが選択され、選択された最も値の小さい差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスとから動きベクトルデータＭＶ１が得られる。
【００９５】
図３９Ｅに示す太い実線の矢印は、上記動きベクトルデータＭＶ１を示すものである。この図３９Ｅにおいては、図３９Ｄに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）を、便宜上示している。この図３９Ｅから分かるように、フレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）の画像データは、フレーム画像データＶ（ｆ−１）上においては、動きベクトルデータＭＶ１によって示されるマクロブロックＭＢ（ｆ−１）の位置にある。つまり、上記動きベクトルデータＭＶ１は、図３９Ｄに示すフレーム画像データＶ（ｆ）に示す紙飛行機の画像データが、１つ前のフレームである、フレーム画像データＶ（ｆ−１）上においては、図３９Ｅに示す紙飛行機の位置Ｏ１にあったことを表している。言い換えれば、図３９Ｅに示す紙飛行機は、図３９Ｄに示す１フレーム先のフレーム画像データＶ（ｆ）上では、位置Ｏ２に存在する。
次に、動き検出を行うべきフレーム画像データの対は、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）と、図３９Ｄに示すフレーム画像データＶ（ｆ）である。この場合、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）は、現フレームのフレーム画像データ、図３９Ｄに示すフレーム画像データＶ（ｆ）は、前フレームの画像データとなる。
【００９６】
ところで、紙飛行機が、同一方向に等速度で移動しているものと仮定した場合、図３９Ｅに示すフレーム画像データＶ（ｆ−１）の参照マクロブロックＭＢ（ｆ−１）と、図３９Ｄに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）とで動き検出を行って得られた動きベクトルデータＭＶ１は、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）を現フレームとした場合に、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）の画像上における、図３９Ｄに示すフレーム画像データＶ（ｆ）の注目動きベクトルデータＭＶの位置と同じ位置の、注目マクロブロックＭＢ（ｆ＋１）を処理対象として動き検出を行って得ることのできる、動きベクトルデータＭＶ１’と同じものとなる。
言い換えれば、紙飛行機が同一方向に等速度で移動しているならば、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）と、図３９Ｄに示すフレーム画像データＶ（ｆ）とで動き検出を行って得られた動きベクトルデータＭＶ１’は、図３９Ｄに示すフレーム画像データＶ（ｆ）と、図３９Ｅに示すフレーム画像データＶ（ｆ−１）とで動き検出を行って得られた動きベクトルデータＭＶ１と同一方向、且つ、同じ大きさとなる。
【００９７】
つまり、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）を現フレームのフレーム画像データ、図３９Ｇに示すフレーム画像データＶ（ｆ）を前フレームの画像データとし、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）と、図３９Ｇに示すフレーム画像データＶ（ｆ）とで動き検出を行う場合、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ＋１）を起点とした、上記動きベクトルデータＭＶ１’が示す位置の近傍をサーチすれば、正確な動き検出を行える可能性が非常に高く、また、正確な動き検出を行える可能性が高いことから、図３９Ｅに示したサーチエリアＳＡの大きさも小さくすることができる。
従って、図３９Ｇに示すフレーム画像データＶ（ｆ）にサーチエリアＳＡを設定する際、上記動きベクトルデータＭＶ１と等しい、動きベクトルデータＭＶ１’を用い、この動きベクトルデータが示す位置を包括する微小なサーチエリアＴＳＡを設定する。そして、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ）と、図３９Ｇに示すフレーム画像データＶ（ｆ）の微小なサーチエリアＴＳＡ内の参照マクロブロックＭＢ（ｆ＋１）とで差分絶対値和演算を行い、その結果得られたいくつかの残差値から、最も値の小さい残差値を選択し、その残差値と、この残差値を得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスに基いて、動きベクトルデータＭＶ２を得るようにする。これがテレスコピックサーチである。以下、上記微小なサーチエリアＴＳＡを、テレスコピックサーチエリアＴＳＡと称することとする。このテレスコピックサーチ処理を行うことにより、正確な動き検出を短時間に行うことができる。
【００９８】
Ｂ．テレスコピックサーチにおける不都合の説明（図４０参照）
【００９９】
図４０は、図３９を参照して説明したテレスコピックサーチ処理における不都合を説明するための説明図である。この図４０において、図３９と対応する部分には同一符号を付し、その詳細説明を省略する。また、この図４０における図の構成は、図３９と同様である。図３９と図４０の違いは、図４０に示す紙飛行機ＯＢの大きさが、図３９に示す紙飛行既ＯＢの１／２以下と、小さくなっていることである。参考として、図４０においては、図３９に示した紙飛行機ＯＢとの差分を破線で示している。また、図３９Ｇに示すフレーム画像データＶ（ｆ）上には、このフレーム画像データＶ（ｆ）の参照マクロブロックＭＢ（ｆ）の他に、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）と、図３９Ｇに示すフレーム画像データＶ（ｆ）とで動き検出を行う場合について説明するために、便宜上、図３９Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ＋１）をも示している。同様に、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）上には、このフレーム画像データＶ（ｆ＋１）の注目マクロブロックの他に、上述と同様の理由により、便宜上、図４０Ｇに示すフレーム画像データの参照マクロブロックＭＢ（ｆ）をも示している。
【０１００】
図３５と同様に、図４０Ｅに示すフレーム画像データＶ（ｆ−１）の参照マクロブロックＭＢ（ｆ−１）と、図４０Ｄに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）とで動き検出を行って得られた動きベクトルデータＭＶ１は、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）を現フレームとした場合に、フレーム画像データＶ（ｆ＋１）の画像上における、図４０Ｇに示すフレーム画像データＶ（ｆ）の注目動きベクトルデータＭＶの位置と同じ位置の、注目マクロブロックＭＢ（ｆ＋１）について動き検出を行った結果得られる動きベクトルデータＭＶ１’と同じものとなる。
従って、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）と、図４０Ｇに示すフレーム画像データＶ（ｆ）とで動き検出を行う際、図４０Ｇに示すフレーム画像データＶ（ｆ）にサーチエリアＳＡを設定する場合、上記動きベクトルデータＭＶ１と等しい、動きベクトルデータＭＶ１’を用い、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ＋１）を起点とした、動きベクトルデータが示す、図４０Ｇに示すフレーム画像データＶ（ｆ）上の参照マクロブロックＭＢ（ｆ）を包括する、微小なサーチエリアＴＳＡを設定する。そして、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ）と、図４０Ｇに示すフレーム画像データＶ（ｆ）の微小なサーチエリアＴＳＡ内の参照マクロブロックＭＢ（ｆ＋１）とで差分絶対値和演算を行い、その結果得られたいくつかの残差値から、最も値の小さい残差値を選択し、その残差値、この残差値を得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスとから、動きベクトルデータＭＶ２を得るようにすれば良い。
【０１０１】
しかしながら、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）の画像上における、図４０Ｇに示すフレーム画像データＶ（ｆ）の注目マクロブロックＭＢ（ｆ）の位置と同じ位置の、注目マクロブロックＭＢ（ｆ）内には、もはや、紙飛行機の画像データは存在しない。これは、紙飛行機の大きさが図３５に示した紙飛行機の大きさと比較して小さいからである。
従って、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ＋１）と、図４０Ｇに示すフレーム画像データＶ（ｆ）の参照マクロブロックＭＢ（ｆ）とで動き検出を行う場合に、紙飛行機の画像データの含まれない注目マクロブロックＭＢ（ｆ）を起点として、上記動きベクトルデータＭＶ１と同じ動きベクトルデータＭＶ１’を用いて、図４０Ｇに示すフレーム画像データＶ（ｆ）上にテレスコピックサーチエリアＴＳＡを設定したところで、このテレスコピックサーチエリアＴＳＡ内には、図４０Ｇに示すように、紙飛行機の画像データは存在しない。
よって、図４０Ｆに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢ（ｆ＋１）と、図４０Ｇに示すフレーム画像データＶ（ｆ）のテレスコピックサーチエリアＴＳＡ内の参照マクロブロックＭＢ（ｆ）とで動き検出を行ったところで、紙飛行機の動きを検出することができない。移動体の含まれていない注目マクロブロックＭＢ（ｆ＋１）内の画像データと、移動体の含まれていない参照マクロブロックＭＢ（ｆ）内の画像データとでブロックマッチングを行ったところで、移動体の動きを検出できないことは、当然のことである。
以上説明したように、単純に設定したテレスコピックサーチエリアＴＳＡを用いて動き検出を行っても、正確に動き検出を行えない場合が生じる。そこで、上記前提技術における欠点を補うべく、テレスコピックサーチについて検討を重ね、その結果、以下に説明するように、１つの着目点から、本発明を導きだした。以下、着目点、処理概要、実施の形態の順に本発明について説明する。
【０１０２】
［実施の形態の概要説明］
【０１０３】
Ｃ．着目点の説明（図１参照）
【０１０４】
図１は、本発明の着目点の１つを説明するための説明図であり、この図１では、図３９及び図４０と同様に、山の見える所で飛行している紙飛行機を、ビデオカメラで撮影して映像データを得、その映像データの任意のフレームの位置から、連続して３つのフレーム画像データを抽出した場合の各フレーム画像データを示している。
図１Ａは、ｆを任意の時点のフレームとしたときの１つ前のフレームのフレーム画像データＶ（ｆ−１）を示し、図１Ｂは、任意の時点のフレームのフレーム画像データＶ（ｆ）を示し、図１Ｃは、説明の便宜上用いられるものであり、図１Ｂと同じフレームのフレーム画像データＶ（ｆ）を示し、図１Ｄは、１つ先のフレームのフレーム画像データＶ（ｆ＋１）を示す。
【０１０５】
ビデオカメラで撮影された紙飛行機の映像データを、その任意の位置からフレーム毎に見た場合、紙飛行機の位置は、図１Ａに示すフレーム画像データＶ（ｆ−１）における位置Ｏ１、図１Ｂに示すフレーム画像データＶ（ｆ）における位置Ｏ２、図１Ｄに示すフレーム画像データＶ（ｆ＋１）の位置Ｏ３の順に、順次遷移する。
この紙飛行機の動きを、既に図３２を参照して説明したブロックマッチングによって検出する場合について説明する。先ず、フレーム画像データＶ（ｆ）とフレーム画像データＶ（ｆ１）とで動き検出が行われる。この場合、フレーム画像データＶ（ｆ）は、現フレームのフレーム画像データ、フレーム画像データＶ（ｆ−１）は、前フレームの画像データとなる。フレーム画像データＶ（ｆ−１）の任意の注目マクロブロックＭＢ１については、次のように動き検出が行われる。
即ち、フレーム画像データＶ（ｆ）の注目マクロブロックＭＢ１に対応して、フレーム画像データＶ（ｆ−１）内に、サーチエリアＳＡを設定する。そして、そのサーチエリアＳＡ内の参照マクロブロックの画素データと、上記注目マクロブロック内の画素データとで順次差分絶対値和演算が行われ、その結果得られたサーチエリアＳＡ内の全マクロブロック分の差分絶対値和の内、最も値の小さい差分絶対値和データが選択され、選択された最も値の小さい差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスとから、動きベクトルデータが得られる。
【０１０６】
図１Ａに示す太い実線の矢印は、上記動きベクトルデータＭＶを示すものである。フレーム画像データＶ（ｆ）の注目マクロブロックＭＢ１の位置を、フレーム画像データＶ（ｆ−１）上においても示している。この図１Ａから分かるように、フレーム画像データＶ（ｆ）の注目マクロブロックＭＢ１の画像データは、フレーム画像データＶ（ｆ−１）上においては、動きベクトルデータＭＶによって示されるマクロブロックＭＢ０の位置にある。つまり、上記動きベクトルデータＭＶは、図１Ａに示す位置Ｏ１の紙飛行機が、図１Ｂに示す位置Ｏ２に移動したことを表している。
【０１０７】
次に、フレーム画像データＶ（ｆ）とフレーム画像データＶ（ｆ＋１）とで動き検出が行われる。この場合、フレーム画像データＶ（ｆ＋１）は、現フレームのフレーム画像データ、フレーム画像データＶ（ｆ）は、前フレームの画像データとなる。図１Ｄに示すフレーム画像データＶ（ｆ＋１）の任意の注目マクロブロックＭＢ２についてテレスコピックサーチによる動き検出が行われるが、その際、次のような点に着目し、その着目点から導き出した新たな動き検出を行うことにより、従来の技術による効果と比較して、より正確、より符号化ビット発生量の少ない動きベクトルデータを、極めて短時間に得るといったことを実現可能とした。この着目点と、これから導き出した新たな動き検出について説明する。
【０１０８】
紙飛行機が加速せずに、等速度で移動を続けるものとすると、図１Ｄに示すフレーム画像Ｖ（ｆ＋１）に示す紙飛行機の位置Ｏ３は、図１Ｃに示すフレーム画像Ｖ（ｆ）における紙飛行機の位置Ｏ２を基準として、図１Ａに示すフレーム画像Ｖ（ｆ−１）と図１Ｂに示すフレーム画像Ｖ（ｆ）とで動き検出を行って得られた動きベクトルＭＶと同一の大きさで方向が反対のベクトル、即ち、負の動きベクトル−ＭＶで示される位置と一致する。つまり、図１Ｃに示すフレーム画像Ｖ（ｆ）のマクロブロックＭＢ１内の画像データの位置を、動きベクトル−ＭＶの値分だけ移動すると、ブロックＢ２の位置になる。ここで注意すべきことは、フレーム画像Ｖ（ｆ）におけるマクロブロックＭＢ１は、図１Ｃに示すように、フレーム画像Ｖ（ｆ）を、均等に分割して得られるマクロブロックの内の１つであり、よってその下方に示される４つの破線のブロックも、フレーム画像Ｖ（ｆ）を、均等に分割して得られるマクロブロックの内の４つであるということである。尚、ブロックＢ２は、マクロブロックＭＢ１内の画素データが、動きベクトルＭＶだけ移動した位置のブロックであるから、マクロブロックとはいわずに、単にブロックという。
従って、図１Ｄに示すフレーム画像データＶ（ｆ＋１）を現フレームとし、図１Ｃに示すフレーム画像データＶ（ｆ）を前フレームとし、フレーム画像データＶ（ｆ＋１）のブロックＢ２について動き検出を行う場合、図１Ｃに示すように、ブロックＢ２の位置を基準として、動きベクトル−ＭＶの逆の動きベクトルＭＶで示される位置に予測すべきマクロブロックＭＢ１が存在することになる。
【０１０９】
言い換えれば、マクロブロックＭＢ１の位置に予測ベクトルがあり、その位置は動きベクトルデータＭＶの値が示す位置付近であるということがいえる。従って、図１Ｄに示すフレーム画像データＶ（ｆ＋１）を現フレームとし、図１Ｃに示すフレーム画像データＶ（ｆ）を前フレームとし、フレーム画像データＶ（ｆ＋１）のブロックＢ２について動き検出を行う場合には、このブロックＢ２の画素データと、このブロックＢ２を基準とした、動きベクトルデータＭＶの値が示す位置のマクロブロックデータＭＢ１の画素データとで差分絶対値和演算を行い、この演算によって得られた差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックＭＢ（ｆ−１）のアドレス及び注目マクロブロックＭＢ（ｆ）のアドレスとから動きベクトルデータを求めれば良い。
しかしながら、図１Ｄにおいて破線で示すように、ブロックＢ２は、この図１Ｄに示すフレーム画像Ｖ（ｆ＋１）を、均等に分割して得られるマクロブロックの内の１つではない。言い換えると、注目ブロックとすることのできないマクロブロック、ということになる。このブロックＢ２と、このフレーム画像データＶ（ｆ＋１）を均等に分割して得られるマクロブロックとの関係は、破線で示す通りである。つまり、ブロックＢ２は、このフレーム画像データＶ（ｆ＋１）を、均等に分割した得られたブロックの内の４つのマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ及びＭＢｄの各一部の画素データから構成されるものである。よって、図１Ｄに示すフレーム画像データＶ（ｆ＋１）と、図１Ｃに示すフレーム画像データＶ（ｆ）とで動き検出を行う場合、上記ブロックＢ２は、注目マクロブロックとはなり得ない。
【０１１０】
そこで、上記４つのマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ及びＭＢｄから、夫々上記動きベクトルＭＶの値だけ移動した位置付近に、夫々予測すべきマクロブロックがあるものとする。即ち、図１Ｄに示すフレーム画像データＶ（ｆ＋１）を現フレーム、図１Ｃに示すフレーム画像データＶ（ｆ）を前フレームとして、これら間で動き検出を行う際、上記マクロブロックＭＢａを注目マクロブロックとした場合には、図１Ｃのフレーム画像データＶ（ｆ）に、上記注目マクロブロックＭＢａから上記動きベクトルデータＭＶが示す値だけ移動した位置のマクロブロックを包括する微小エリアを設定し、上記注目マクロブロックＭＢａ内の画像データと、上記微小エリア内の多数のマクロブロック内の画像データとで動き検出を行い、その結果得られた多数の動きベクトルデータから、その注目マクロブロックＭＢａの動きベクトルデータを選択する。
尚、他のマクロブロックＭＢｂ、ＭＢｃ及びＭＢｄについても同様である。以下、上記「微小エリア」を、「テレスコピックサーチエリア」、上記動きベクトル−ＭＶで示される４つのマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ及びＭＢｄを包括する領域を「逆領域」、この「逆領域」内の４つのマクロブロックＭＢａ、ＭＢｂ、ＭＢｃ及びＭＢｄを、「逆領域内注目マクロブロック」と夫々称することとする。
【０１１１】
Ｄ．図１に示した例でのブロック毎の予測処理の説明（図２参照）
【０１１２】
図２は、図１に示したマクロブロックＭＢｂとＭＢｃを例にとり、どのようにしてマクロブロックＭＢｂ、ＭＢｃを注目マクロブロックとして動き検出のためのテレスコピックサーチエリアＴＳＡを、前フレームのフレーム画像データ中に設定するのかについて説明するための説明図であり、図２Ａ及びＢは、夫々注目マクロブロックを、マクロブロックＭＢｂとした場合のテレスコピックサーチエリアＴＳＡの設定を説明するための説明図、図２Ｃ及びＤは、夫々注目マクロブロックを、マクロブロックＭＢｃとした場合のテレスコピックサーチエリアＴＳＡの設定を説明するための説明図である。
【０１１３】
先ず、マクロブロックＭＢｂを、注目マクロブロックとして動き検出を行う場合について説明する。図１Ｂに示すフレーム画像データＶ（ｆ＋１）のマクロブロックＭＢｂを注目マクロブロックとして動き検出を行う場合、図２Ａに示すフレーム画像データＶ（ｆ）と、このフレーム画像データＶ（ｆ）よりも時間的に１つ前のフレームのフレーム画像データＶ（ｆ−１）（図１Ａ参照）とで動き検出を行って得られた動きベクトルデータＭＶを用いる。
即ち、図２Ａに示すフレーム画像データＶ（ｆ）において、図２Ｂに示すマクロブロックＭＢｂと同じ位置のマクロブロックＭＢｂ’から、上記動きベクトルデータＭＶの値が示す位置のブロックＢｂを包括するテレスコピックサーチエリアＴＳＡを設定する。そして、図２Ｂに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢｂと、図２Ａに示すフレーム画像データＶ（ｆ）のテレスコピックサーチエリアＴＳＡ内の全参照マクロブロックとで動き検出を行い、その結果得られた複数の動きベクトルデータから、上記注目マクロブロックＭＢｂの動きベクトルデータを選択する。
【０１１４】
次に、マクロブロックＭＢｃを、注目マクロブロックとして動き検出を行う場合について説明する。図１Ｂに示すフレーム画像データＶ（ｆ＋１）のマクロブロックＭＢｃを注目マクロブロックとして動き検出を行う場合、図２Ａに示すフレーム画像データＶ（ｆ）と、このフレーム画像データＶ（ｆ）よりも時間的に１つ前のフレームのフレーム画像データＶ（ｆ−１）（図１Ａ参照）とで動き検出を行って得られた動きベクトルデータＭＶを用いる。
即ち、図２Ｃに示すフレーム画像データＶ（ｆ）において、図２Ｃに示すマクロブロックＭＢｃと同じ位置のマクロブロックＭＢｃ’から、上記動きベクトルデータＭＶの値が示す位置のブロックＢｃを包括するテレスコピックサーチエリアＴＳＡを設定する。そして、図２Ｄに示すフレーム画像データＶ（ｆ＋１）の注目マクロブロックＭＢｃと、図２Ｃに示すフレーム画像データＶ（ｆ）のテレスコピックサーチエリアＴＳＡ内の全参照マクロブロックとで動き検出を行い、その結果得られた複数の動きベクトルデータから、上記注目マクロブロックＭＢｃの動きベクトルデータを選択する。
【０１１５】
Ｅ．実施の形態における処理の概要説明（図３参照）
【０１１６】
図３は、上記図１及び図２において説明した概念に基づく実施の形態における処理の概要を説明するための説明図である。この図３において、破線の矢印はデータの使用若しくは転送を示し、細い実線の矢印はデータの取得を示し、太い実線の矢印は処理の流れを示し、破線のブロックは動きベクトルデータ若しくはテーブルデータを示す。また、実線で示すブロックは処理ステップを示し、各処理ステップには、夫々符号ＳＴａ〜ＳＴｇを付している。また、紙面の都合上、処理等を示す図を、紙面において左側と右側に分けており、処理の順序は、左上から左下、右上から右下となる。
【０１１７】
先ず、処理ステップＳＴａにおいては、フレーム画像データＶ（ｆ）が現フレーム、フレーム画像データＶ（ｆ−１）が参照フレームとされる。そして、例えばフレーム画像データＶ（ｆ）の斜線で示す注目マクロブロックに対応して、フレーム画像データＶ（ｆ−１）上に一点鎖線で示すサーチエリアＳＡが設定される。そして、処理ステップＳＴａ１では、フレーム画像データＶ（ｆ）のマクロブロックの画素データと、フレーム画像データＶ（ｆ−１）のサーチエリアＳＡ内の各マクロブロックの画素データとで差分絶対値和演算が行われる、次に処理ステップＳＴａ２では、処理ステップＳＴａ１において得られたサーチエリアＳＡ内の参照マクロブロックと同数の差分絶対値和データの内、最も値の小さい差分絶対値和データが選択される。処理ステップＳＴａ３では、処理ステップＳＴａ２において得られた最小の差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックのアドレス及び注目マクロブロックのアドレスとから、動きベクトルデータＭＶｎ（ｘ、ｙ）（図中、破線のブロックで示す）が得られる。この動きベクトルデータＭＶｎ（ｘ、ｙ）は、処理ステップＳＴｂにおける逆領域サーチ処理で用いられる。
【０１１８】
逆領域サーチ処理を行う処理ステップＳＴｂにおいては、注目マクロブロックの位置から、上記代表の動きベクトルデータＭＶ（ｘ、ｙ）の値が示す分だけ逆方向に移動させた位置のブロックのアドレスを含む逆領域のアドレスが得られる。図に示すように、例えば斜線で示すフレーム画像データＶ（ｆ）の注目マクロブロックの１つ前のフレーム画像データＶ（ｆ−１）における位置が、ドットで示すマクロブロックの位置の場合には、動き検出が行われることによって、注目マクロブロックと同じ位置であるところのフレーム画像データＶ（ｆ−１）内の白抜きのマクロブロックを基準として、ドットで示す参照マクロブロックの位置を示す動きベクトルデータＭＶｎ（ｘ、ｙ）が得られる。
そして、フレーム画像データＶ（ｆ）の斜線で示す注目マクロブロックの位置を基準として、上記動きベクトルデータＭＶｎ（ｘ、ｙ）と同じ大きさで方向が逆の動きベクトルデータ−ＭＶｎ（ｘ、ｙ）で示されるブロックの位置が得られる。図に破線で示すように、フレーム画像データＶ（ｆ）内において斜線で示す注目マクロブロックを、上記動きベクトルデータ−ＭＶｎ（ｘ、ｙ）の値の分だけ移動させると、上記注目マクロブロックの位置は、白抜きで示すブロックの位置となる。そして、この白抜きのブロックは、破線で示すように、逆領域内の４つの逆領域内注目マクロブロックに重なる。続いて、上記白抜きのブロックのアドレスに基いて、逆領域の先頭のアドレスが得られる。
紙面において右上に示されている処理ステップＳＴｃにおいては、上記逆領域の先頭のアドレスに基いて、この逆領域内に属する４つの逆領域内注目マクロブロックの先頭アドレスデータが求められる。
【０１１９】
処理ステップＳＴｄにおいては、残差処理用データテーブルＴＢＬ１に対する残差処理用データの登録が行われる。ここで、残差処理用データは、現フレームとされるフレーム画像データの注目マクロブロック番号データ、この注目マクロブロック番号データが示す注目マクロブロックの先頭アドレスデータ、この注目マクロブロック番号データが示す注目マクロブロックについて求められた動きベクトルデータ、並びに４つの逆領域内マクロブロックの各先頭アドレスデータを意味し、上記残差処理用データテーブルＴＢＬ１には、１つのフレーム画像データ内の各注目マクロブロック毎に得られた上記残差処理用データが登録される。
処理ステップＳＴｅにおいては、１画面分の処理が終了したか否かの判断、つまり、フレーム画像データＶ（ｆ）の全注目マクロブロックについて、上述した処理が行われたか否かが判断され、終了していない場合には、再びフルサーチブロックマッチング処理を行う処理ステップＳＴａに移行し、終了している場合には、処理ステップＳＴｆに移行する。
【０１２０】
処理ステップＳＴｆにおいては、画面の更新がなされる。この処理ステップＳＴｆを示す実線のブロックの左斜め下及び右斜め下に示されているように、フレーム画像データＶ（ｆ）の次のフレームのフレーム画像データＶ（ｆ＋１）が、現フレームの画像データとされ、フレーム画像データＶ（ｆ）が、前フレームの画像データとされる。
処理ステップＳＴｇにおいては、残差処理が行われ、処理ステップＳＴｈにおいては、残差処理用データ生成処理が行われる。
【０１２１】
以上、図３に示した概要説明は、後に説明する第１の実施の形態〜第６の実施の形態までの各実施の形態を包括するものである。後に説明する第１の実施の形態〜第６の実施の形態の違いは、上記残差処理を行う処理ステップＳＴｇと残差処理用データ生成処理を行う処理ステップＳＴｈである。これらの処理ステップＳＴｇ及びＳＴｈについては、図４を参照して説明する。
【０１２２】
Ｆ．図３に示した残差処理ステップにおいてテレスコピックサーチを用いた場合の概要説明（図４参照）
【０１２３】
図４は、図３に示した処理ステップＳＴｇ及びＳＴｈのより詳しい概要説明を行うための説明図であり、後に説明する第１の実施の形態の概要説明である。
【０１２４】
画面が更新されると、処理ステップＳＴｇ１において、動きベクトルデータの選択処理が行われる。選択処理は、現フレームとされたフレーム画像データＶ（ｆ＋１）の注目マクロブロック毎に行われる。即ち、処理対象であるところの注目マクロブロックの注目マクロブロック番号データと同じ番号データが、逆領域内の逆領域内注目マクロブロック番号データとして登録されている、他の注目マクロブロックがサーチされる。そして、サーチされた注目マクロブロックに対して登録されている動きベクトルデータが夫々読み出される。上述の例では、読み出される動きベクトルデータの数は、当然不定である。そして、図において破線のブロックで示すように、読み出された動きベクトルデータＭＶ１（ｘ、ｙ）〜ＭＶｎ（ｘ、ｙ）（但しｎは整数）の内で、最も適切な動きベクトルデータＭＶ（ｘ、ｙ）が選択される。
【０１２５】
以下、処理対象であるところの注目マクロブロックの注目マクロブロック番号データと同じ番号データが、逆領域内の逆領域内注目マクロブロック番号データとして登録されている、他の注目マクロブロックがサーチされる。そして、サーチされた注目マクロブロックに対して登録されている動きベクトル動きベクトルデータを、「候補動きベクトルデータ」と称することとする。
【０１２６】
処理ステップＳＴｇ２においては、エリア設定処理が行われる。この処理ステップＳＴｇ２の左右に示されているように、フレーム画像データＶ（ｆ）において、フレーム画像データＶ（ｆ＋１）における、処理対象であるところの注目マクロブロックの位置と同じ位置から、上記動きベクトルデータＭＶ（ｘ、ｙ）の値が示す位置の参照マクロブロックを含む微小領域（テレスコピックサーチエリアと称する）を設定する。
処理ステップＳＴｇ３においては、フルサーチブロックマッチング処理が行われる。つまり、上記フレーム画像データＶ（ｆ＋１）内の注目マクロブロック内の画素データと、上記テレスコピックサーチエリアＴＳＡ内の参照マクロブロック内の画素データとで差分絶対値和演算が行われる。１つの注目マクロブロックと、上記テレスコピックサーチエリアＴＳＡ内の全参照マクロブロックとの演算が全て終了すると、上記テレスコピックサーチエリアＴＳＡ内の全参照マクロブロックの数と同数の差分絶対値和データが得られる。
【０１２７】
この差分絶対値和データの内で、その値が最も小さい差分絶対値和データが得られ、その選択された差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックのアドレス及び注目マクロブロックのアドレスとから動きベクトルデータＭＶ（ｘ、ｙ）が得られる。以上のブロックマッチングの処理そのものは、図３において説明したフルサーチブロックマッチング処理を行う処理ステップＳＴａと同様である。
【０１２８】
処理ステップＳＴｈ１においては、この処理ステップＳＴｈ１を示す実線のブロックの左右に示されているように、逆領域のサーチが行われ、続いて処理ステップＳＴｆ２においては、逆領域内の全マクロブロックのアドレスが計算され、続いてステップＳＴｈ３においては、残差処理用データが、残差処理用データテーブルＴＢＬ１に登録される。以上の処理ステップＳＴｈ１、ＳＴｈ２及びＳＴｈ３は、夫々、図３に示した処理ステップＳＴｂ、ＳＴｃ及びＳＴｄと同じである。
処理ステップＳＴｈ４においては、１画面分の処理が終了したか否かが判断され、終了していないものと判断された場合には、再び処理ステップＳＴｇ１に移行し、終了しているものと判断された場合には、処理ステップＳＴｈ５に移行うる。この処理ステップＳＴｈ５は、図３に示した処理ステップＳＴｅと同じ判断である。
【０１２９】
処理ステップＳＴｈ５においては、シーンチェンジか否かが判断され、シーンチェンジであることが判断された場合には、図３に示した処理ステップＳＴａに再度移行し、シーンチェンジではないことが判断された場合には、処理ステップＳＴｈ６に移行する。シーンチェンジは、シーンチェンジする前と、シーンチェンジした後のフレーム画像データの内容が大きく異なる可能性が高いので、この場合には、最初からフルサーチブロックマッチング処理を行う必要があるからである。つまり、関連性のあるフレーム画像データが続いている間は、図３に示した処理ステップＳＴａ〜ＳＴｆにおける処理を行う必要がない。
処理ステップＳＴｈ６においては、処理が終了か否かが判断され、終了であることが判断された場合には、全ての処理が終了され、終了ではないものと判断された場合には、図３に示した処理ステップＳＴｆに移行し、画面更新が行われる。
【０１３０】
〔実施の形態毎に異なる部分〕
第１の実施の形態では、上記処理ステップＳＴｇ１において、処理すべき注目マクロブロックの周囲の注目マクロブロックの動きベクトルデータに近い動きベクトルデータが、候補動きベクトルデータから選択される。
第２の実施の形態では、上記処理ステップＳＴｇ１において、逆領域において包括されている割合の大きい注目マクロブロックの動きベクトルデータが、候補動きベクトルデータから選択される。
第３の実施の形態では、上記残差処理用データテーブルＴＢＬ１に対し、候補動きベクトルデータをも登録しておき、この残差処理用データテーブルＴＢＬ１の内容がフレーム毎に保持され、処理を行うステップよりも２つ前のステップの残差処理用データテーブルＴＢＬ１における候補動きベクトルデータを参考に、動きベクトルデータが選択される。例えば、上記残差処理用データテーブルＴＢＬ１の内容が、フレーム毎に保持され、現フレームとされているフレーム画像データの注目マクロブロックの位置と同じ、１つ前のフレーム画像データの注目マクロブロックに対応して登録されている候補動きベクトルデータに近い動きベクトルデータが選択される。
【０１３１】
第４の実施の形態では、図４に示した動きベクトルデータを選択する処理を行う処理ステップＳＴｇ１を、フルサーチブロックマッチング処理を行う処理ステップＳＴｇ３の後に配置させる。そして、処理ステップＳＴｇ３においては、処理対象であるところの注目マクロブロックと同じ注目マクロブロック番号データが、逆領域内の逆領域内注目マクロブロック番号データとして登録されている注目マクロブロックを、残差処理用データテーブルＴＢＬ１からサーチし、サーチして得られた全ての注目マクロブロックの注目マクロブロック番号データについて夫々登録されている動きベクトルデータを用いて、夫々テレスコピックサーチエリアＴＳＡを設定し、注目マクロブロックと、設定された全てのテレスコピックサーチエリアＴＳＡ内の参照マクロブロックとで動き検出を行う。そして、全てのテレスコピックサーチエリアＴＳＡについて夫々最小の差分絶対値和データを求め、その最小の差分絶対値和データに応じて夫々動きベクトルデータを得る。処理ステップＳＴｇ１では、上記全てのテレスコピックサーチエリアＴＳＡについて夫々求められた動きベクトルデータの内で、差分絶対値和の最も小さい動きベクトルデータが選択される。
第５の実施の形態では、残差処理用データテーブルＴＢＬ１内の全注目マクロブロックについて夫々登録されている動きベクトルデータの平均であるところの、平均動きベクトルデータが得られる。そして、上記処理ステップＳＴｇ１において、上記平均動きベクトルデータに最も近い動きベクトルデータが、候補動きベクトルデータから選択される。
第６の実施の形態では、残差処理用データテーブルＴＢＬ１にフルサーチブロックマッチング処理によって得られた動きベクトルデータを登録する際に、その動きベクトルデータを得られたときの最小の差分絶対値和データであるところの残差値をも登録しておく。そして、処理対象であるところの注目マクロブロックと同じ注目マクロブロック番号データが、逆領域内の逆領域内注目マクロブロック番号データとして登録されている注目マクロブロックを、残差処理用データテーブルＴＢＬ１から全てサーチし、サーチして得られた全ての注目マクロブロックの注目マクロブロック番号データについて夫々登録されている動きベクトルデータを候補動きベクトルデータとする。そして、上記処理ステップＳＴｇ１において、上記候補動きベクトルデータの内、最も残差値の小さい動きベクトルデータが選択される。
【０１３２】
〔効果〕
以上説明したように、フレーム画像データＶ（ｆ−１）、Ｖ（ｆ）、Ｖ（ｆ＋１）の順に、フレーム画像データを処理する際、フレーム画像データＶ（ｆ）を現フレームとし、フレーム画像データＶ（ｆ−１）を前フレームとし、フレーム画像データＶ（ｆ−１）内に大きなサーチエリアＳＡを設定し、フレーム画像データＶ（ｆ）の注目マクロブロック内の画素データと、上記フレーム画像データＶ（ｆ−１）のサーチエリアＳＡ内の多数の参照マクロブロック内の画素データとで差分絶対値和演算を行い、得られた多数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを選択し、その差分絶対値和データ、その差分絶対値和データを得ることのできた参照マクロブロックのアドレス並びに注目マクロブロックのアドレスに基いて動きベクトルデータを得る。
【０１３３】
次に、動きベクトルデータと同じ大きさで向きが逆の動きベクトルデータの値が示す逆領域を探し、その逆領域内の逆領域内注目マクロブロックの先頭アドレスを求め、このアドレスに基いて逆領域内注目マクロブロック番号データを得、上記動きベクトルデータを得た注目マクロブロックの注目マクロブロック番号データの登録データとして、上記注目マクロブロックの先頭アドレスデータ、上記逆領域内の逆領域内注目マクロブロック番号データ、並びに上記動きベクトルデータを残差処理用データテーブルＴＢＬ１に登録する。以上の処理は、現フレームとされているフレーム画像データＶ（ｆ）の全注目マクロブロックについて行われる。
【０１３４】
次に、画像の更新を行い、フレーム画像データＶ（ｆ＋１）を現フレームとし、フレーム画像データＶ（ｆ）を前フレームとする。そして、フレーム画像データＶ（ｆ＋１）の注目マクロブロックと同じ注目マクロブロック番号データが、逆領域内の逆領域内注目マクロブロック番号データとして登録されている、注目マクロブロックの注目マクロブロック番号データを、残差処理用データテーブルＴＢＬ１からサーチし、サーチにより得られた注目マクロブロックの注目マクロブロック番号データについて、夫々、残差処理用データテーブルＴＢＬ１に登録されている動きベクトルデータの内、１つの動きベクトルデータを選択し、その動きベクトルデータが示す位置にある参照マクロブロックを包括する微小なテレスコピックサーチエリアＴＳＡを、フレーム画像データＶ（ｆ）内に設定し、フレーム画像データＶ（ｆ＋１）内の注目マクロブロックの画素データと、上記テレスコピックサーチエリアＴＳＡ内の参照マクロブロックの画素データとでブロックマッチング処理を行い、その結果得られた動きベクトルデータを動き補償用の動きベクトルデータにすると共に、その動きベクトルデータと同じ大きさで方向が逆の動きベクトルデータの値が示す位置のブロックを包括する逆領域内の注目マクロブロックの先頭アドレスを求め、上述と同様に残差処理用データテーブルＴＢＬ１に登録する。
【０１３５】
以上の処理を行うことによって、１つ前のフレームにおいて１つの注目マクロブロックについて夫々求められた動きベクトルデータと逆の方向の動きベクトルデータによって現在のフレームにおける上記注目マクロブロック内の画素データの位置を予測し、その位置に存在するであろうブロックを包括する逆領域内の逆領域内注目マクロブロック番号データを求める。そして、現在のフレームの注目マクロブロックについて処理を行うときに、上記注目マクロブロックの注目マクロブロック番号データが、上記逆領域内の逆領域内注目マクロブロック番号データとして登録されている注目マクロブロックの動きベクトルデータから、最も最適な動きベクトルデータを選択し、この選択した動きベクトルデータを用いて、１つ前のフレームに現在の注目マクロブロックの処理に使用する微小なテレスコピックサーチエリアＴＳＡを設定することができる。よって、動き検出処理に費やされる時間を大幅に短縮することができると共に、正確な動きベクトルデータを得ることができる。正確な動きベクトルデータを得ることができるということは、動き補償をより正確に行うことができるので、符号化すべき画像データと、上記動きベクトルデータによって補償された画像データとの差分値に誤差が含まれる確率を大幅に抑制し、結果的に差分値を小さくすることができ、符号化効率を高め、伝送効率を大幅に向上させることができる。
【０１３６】
〔概要におけるステップと、第１〜第６の実施の形態のフローチャートとの対応〕
【０１３７】
＊第１の実施の形態
図３及び図４は、図７に対応し、図３に示すステップＳＴａのフルサーチブロックマッチング処理は、図１０及び図１１に示すフローチャートによるフルサーチブロックマッチング処理ルーチンにおける処理に対応する。
図３に示すステップＳＴｂの逆領域サーチ処理は、図１３及び図１４に示すフローチャートの残差処理用データ生成処理ルーチンにおける処理に対応する。
図３に示すステップＳＴｃの逆領域内の全逆領域内マクロブロックのアドレス計算処理は、図１４に示すフローチャートの残差処理用データ生成処理ルーチンにおける処理に対応する。
図３に示すステップＳＴｄの残差処理用データの登録処理は、図１４に示すフローチャートの残差処理用データ生成処理ルーチンにおける処理に対応する。
図３に示すステップＳＴｅの判断処理は、図７に示すフローチャートのステップＳ１９８に対応する。
図３に示したステップＳＴｆの画面更新処理は、図８及び図９に示すフローチャートの現及び参照フレームデータセット処理ルーチンにおける処理に対応する。
図３に示したステップＳＴｇの残差処理は、図７に示すフローチャートのステップＳ３００に対応する。
図３に示したステップＳＴｈの残差処理用データ生成処理は、図７に示すフローチャートのステップＳ３００に対応する。
図４に示したステップＳＴｇ１の動きベクトルデータ選択処理は、図１５〜図１７に夫々示すステップＳ３５０の動きベクトル選択ルーチンによる処理に対応し、このステップＳ３５０の動きベクトル選択ルーチンによる処理は、図２０及び図２１のフローチャートの動きベクトル選択ルーチンにおける処理に対応する。
図４に示したステップＳＴｇ２のエリア設定処理は、図１７のステップ４００のテレスコピックサーチエリア設定処理に対応し、このステップＳ４００におけるテレスコピックサーチエリア設定処理は、図２３及び図２４に示すフローチャートのテレスコピックエリア設定処理ルーチンにおける処理に対応する。
図４に示したステップＳＴｇ３のフルサーチブロックマッチング処理は、図１７に示すステップＳ４５０のテレスコピックサーチ処理に対応し、このステップＳ４５０におけるテレスコピックサーチ処理は、図２５及び図２６に示すフローチャートのテレスコピックサーチ処理ルーチンにおける処理に対応する。
図４に示したステップＳＴｈ１の逆領域サーチ処理、ステップＳＴｈ２の逆領域内の全マクロブロックのアドレス計算処理、ステップＳＴｈ３の残差処理用データの登録処理は、図１７に示すステップＳ５００のテレスコピックサーチ処理用データ生成処理に対応し、このステップＳ５００のテレスコピックサーチ処理用データ生成処理は、図７に示したフローチャートのステップＳ１５０と処理内容が同じである。
図４に示したステップＳＴｈ４の１画面終了判断は、図７に示したステップＳ５９９に対応し、図４に示したステップＳＴｈ５は、図７に示したステップＳ６００に対応し、図４に示したステップＳＴｈ６は、図７に示したステップＳ６０２に対応する。
【０１３８】
＊第２の実施の形態
第１の実施の形態と異なる点は、残差処理とこの残差処理における動きベクトルデータの選択の仕方である。図３に示したステップＳＴｇにおける残差処理は、図２７及び図２８に示すフローチャートの残差処理に対応する。よって、第２の実施の形態においては、第１の実施の形態の説明に用いた図７〜図２６のフローチャートの内、図１５〜図１７並びに図２０〜図２１のフローチャートに代わって、図２７〜図２８のフローチャートを用い、他の処理については、第１の実施の形態において用いたフローチャートと共通となる。
【０１３９】
＊第３の実施の形態
第１の実施の形態と異なる点は、残差処理とこの残差処理における動きベクトルデータの選択の仕方である。図３に示したステップＳＴｇにおける残差処理は、図３０〜図３２に示すフローチャートの残差処理に対応する。よって、第３の実施の形態においては、第１の実施の形態の説明に用いた図７〜図２６のフローチャートの内、図１５〜図１７並びに図２０〜図２１のフローチャートに代わって、図３０〜図３２のフローチャートを用い、他の処理については、第１の実施の形態において用いたフローチャートと共通となる。尚、第３の実施の形態についてのみ、図２９に概念を示す。
【０１４０】
＊第４の実施の形態
第１の実施の形態と異なる点は、動きベクトルデータの選択を行わないで、全てについて残差処理を行い、その内で最も残差処理結果の値の小さい動きベクトルデータを選択することである。図３に示したステップＳＴｇにおける残差処理は、図３３及び図３４に示すフローチャートの残差処理に対応する。よって、第４の実施の形態においては、第１の実施の形態の説明に用いた図７〜図２６のフローチャートの内、図１５〜図１７並びに図２０〜図２１のフローチャートに代わって、図３３及び図３４のフローチャートを用い、他の処理については、第１の実施の形態において用いたフローチャートと共通となる。
【０１４１】
＊第５の実施の形態
第１の実施の形態と異なる点は、残差処理用データテーブルＴＢＬ１に登録されている各注目マクロブロックの動きベクトルデータの平均を得、候補動きベクトルデータから、上記平均動きベクトルデータに最も近い動きベクトルデータを選択することである。図３に示したステップＳＴｇにおける残差処理は、図３５及び図３６に示すフローチャートの残差処理に対応する。よって、第５の実施の形態においては、第１の実施の形態の説明に用いた図７〜図２６のフローチャートの内、図１５〜図１７並びに図２０〜図２１のフローチャートに代わって、図３５及び図３６のフローチャートを用い、他の処理については、第１の実施の形態において用いたフローチャートと共通となる。尚、上記平均値を得るための平均動きベクトル取得ルーチンのより詳細なフローチャートは、図３７に示されている。
【０１４２】
＊第６の実施の形態
第１の実施の形態と異なる点は、動き検出を行って、各注目マクロブロックについて夫々動きベクトルデータを得たときに、その動きベクトルデータを得ることのできた残差値をも残差処理用データテーブルＴＢＬ１に登録しておき、候補動きベクトルデータから、１つの動きベクトルデータを選択する際、残差処理用データテーブルＴＢＬ１に登録されている残差値が最も小さい候補動きベクトルデータをテレスコピックサーチエリア設定用の動きベクトルデータとして選択することである。図３に示したステップＳＴｇにおける残差処理は、図３８に示すフローチャートの残差処理に対応する。よって、第６の実施の形態においては、第１の実施の形態の説明に用いた図７〜図２６のフローチャートの内、図１５〜図１７並びに図２０〜図２１のフローチャートに代わって、図３８のフローチャートを用い、他の処理については、第１の実施の形態において用いたフローチャートと共通となる。
【０１４３】
以下、より具体的な例であるところの、第１の実施の形態〜第６の実施の形態について順次説明する。
【０１４４】
［第１の実施の形態］
【０１４５】
Ｇ．動き検出回路の構成及び動作説明（図５参照）
【０１４６】
図５は、ブロックマッチング処理を行うための動き検出回路の構成例を示す構成図である。この図５において、図４４と対応する部分には同一符号を付し、その詳細説明を省略する。この図５に示す動き検出回路は、図４１に示した動きエンコーダに登載する場合においては、図４１に示した動きエンコーダの動き検出回路２０５及び２０６となる。
【０１４７】
また、図４１に示した動きエンコーダにおいては、フレームメモリ２０２を現フレーム画像のフレームメモリとし、フレームメモリ２０１を過去のフレームのフレーム画像のフレームメモリとし、フレームメモリ２０３を未来のフレームのフレーム画像のフレームメモリとした。
【０１４８】
この場合、フレームメモリ２０１に保持されている過去のフレームのフレーム画像データと、フレームメモリ２０２に保持されている現在のフレームのフレーム画像データとで動き検出を行う場合においては、フレームメモリ２０１に保持されているフレーム画像データが参照フレームのフレーム画像データ、フレームメモリ２０２に保持されているフレーム画像データが現フレームのフレーム画像データとされ、フレームメモリ２０２に保持されている現在のフレームのフレーム画像データと、フレームメモリ２０３に保持されている未来のフレームのフレーム画像データとで動き検出を行う場合においては、フレームメモリ２０２に保持されているフレーム画像データが、参照フレームのフレーム画像データとされ、フレームメモリ２０３に保持されているフレーム画像データが、現フレームのフレーム画像データとされる。
【０１４９】
従って、ｎ番目のフレームのフレーム画像データと、ｎ−１番目のフレームのフレーム画像データとで動き検出を行う場合においては、図５に示す現フレームメモリ３２１は、図４１に示した動きエンコーダのフレームメモリ２０２に対応し、図５に示す参照フレームメモリ３２３は、図４１に示した動きエンコーダのフレームメモリ２０１に対応する。そして、ｎ番目のフレーム画像データと、ｎ＋１番目のフレーム画像データとで動き検出を行う場合においては、図５に示す現フレームメモリ３２１は、図４１に示した動きエンコーダのフレームメモリ２０３に対応し、図５に示す参照フレームメモリ３２３は、図４１に示した動きエンコーダのフレームメモリ２０２に対応する。
【０１５０】
〔接続及び構成〕
この図５において、図４４と異なる部分は、コントローラ１の内部構成である。この図５に示すコントローラ１は、ＣＰＵ２にアドレス、データ及びコントロールバスからなるバス３が接続され、このバス３に、プログラムデータＰＲＧ、プログラムを実行するための各種パラメータデータＰＡＬ及びテーブルデータＴＢＬが記憶されたＲＯＭ４、上記プログラムデータＰＲＧによるワーキング用、上記テーブルデータＴＢＬの保持用としてのＲＡＭ５、並びに入出力ポート６が夫々接続された構成される。
【０１５１】
ここで、上記テーブルデータは、実施の形態の概要で説明した残差処理用データテーブルＴＢＬ１であり、ＲＯＭ４に記憶されている状態では、注目マクロブロック番号データ及び注目マクロブロックの先頭アドレスデータのみから構成されており、ＲＡＭ５に保持され、動き検出処理が開始されると、逆領域内の注目マクロブロックの先頭アドレスや動きベクトルデータが順次登録される。
【０１５２】
また、上記パラメータデータは、例えば１つのフレームメモリ内における注目マクロブロックの個数等、判断を行う際に基準とするデータであり、電源投入時にＲＯＭ９から読み出されてＲＡＭ８の所定エリアに保持される。パラメータデータＰＡＬは、次の通りである。
【０１５３】
〔パラメータデータＰＡＬ〕
１．フレームメモリの水平アドレス初期値データ・・・・・ＡＤＨ（ｆ）
２．フレームメモリの垂直アドレス初期値データ・・・・・ＡＤＶ（ｆ）
３．注目マクロブロックの個数の最大値データ・・・・・・Ｍ（ｆ）ｍａｘ
４．注目マクロブロック番号の最大値データ・・・・・・・ＭＮＯｍａｘ
５．水平方向の最大値データ・・・・・・・・・・・・・・Ｈｍａｘ
６．垂直方向の最大値データ・・・・・・・・・・・・・・Ｖｍａｘ
７．マクロブロックの縦若しくは横の大きさ・・・・・・・“１６”
８．参照マクロブロック番号の最大値データ・・・・・・ＳＭＮＯｍａｘ
９．全候補動きベクトルデータの数・・・・・・・・Ｐｍａｘ
１０．テレスコピックマクロブロック番号の最大値データ・ＴＭＮＯｍａｘ
１１．マクロブロックの左右の境界から夫々テレスコピックサーチエリアの境界までの画素を単位とした水平方向の距離・・・・・・・Ｔｘ
１２．マクロブロックの上下の境界から夫々テレスコピックサーチエリアの境界までの画素を単位とした垂直方向の距離・・・・・・・Ｔｙ
１３．ＲＡＭのアクセスエリアを示すメモリポインタ・・・ＭＰ（第２の実施の形態でのみ使用される）
図５に示す動き検出回路に電源が投入されると、上記ＲＯＭ４に記憶されているパラメータデータＰＡＬは、後述するＲＯＭ制御手段９により読み出され、ＲＡＭ制御手段８により、ＲＡＭ５の記憶空間上の所定エリアに夫々記憶される。以下、説明の便宜上、上記動作説明を省略する。
【０１５４】
また、この図５に示す動き検出回路に電源が投入されると、上記ＲＯＭ４に記憶されているプログラムデータＰＲＧは、後述するＲＯＭ制御手段９により読み出され、ＣＰＵ２のメインメモリに供給され、このメインメモリに常駐する。これによって、上記ＣＰＵ２は、図中、破線内に示す多くの機能を持つ。この機能について説明する。
【０１５５】
タイミング制御手段７は、図示しないクリスタルオシレータ等からの基準クロック信号に基いて、処理タイミングを決定する各種タイミング信号を得、これらのタイミング信号を、入出力ポート６を介してアドレス発生回路３３３、加算回路３２４及び３２６、絶対値回路３２５、ラッチ回路３２７、最小値検出回路３２９及び動きベクトル検出回路３３０に供給して各部のタイミングを調整する。また、このタイミング制御手段７において生成されるタイミング信号は、他の機能における処理タイミングの調整を行うためのいわゆるタイマの役割を有する。
【０１５６】
ＲＡＭ制御手段８は、図５に示すＲＡＭ５に対して書き込み／読み出し制御信号を供給する機能を有する。ＲＯＭ制御手段９は、図５に示すＲＯＭ４に対して書き込み／読み出し制御信号を供給する機能を有する。メモリ制御手段１０は、図５に示すメモリ３２８に書き込み／読み出し制御信号を供給する機能を有する。
【０１５７】
アドレス発生制御手段１１は、図５に示すアドレス発生回路３３３に対して、参照マクロブロック若しくはテレスコピックマクロブロックの先頭アドレスデータを供給する機能を有する。尚、「テレスコピックマクロブロック」は、「参照マクロブロック」と同じものであるが、便宜上異なる名称を用いているだけである。
【０１５８】
テーブル制御手段手段１２は、図５に示すＲＯＭ４から読み出されてＲＡＭ５に保持された各種テーブルＴＢＬにデータを登録したり、或いは、各種テーブルに登録されているデータを読み出したりするための制御をＲＡＭ制御手段８に対して行うと共に、各種テーブルＴＢＬに登録されているデータをサーチする機能を有する。
【０１５９】
アドレス算出手段１３は、図５に示す現フレームメモリ３２１や参照フレームメモリ３２３におけるサーチエリアＳＡ、後述するテレスコピックサーチエリアＴＳＡ、逆領域のアドレスや、これらの領域内に含まれるマクロブロックの先頭アドレスを算出する機能を有する。
【０１６０】
ベクトル算出手段１４は、１つの注目マクロブロックと、上記サーチエリアＳＡ内の多数の参照マクロブロックやテレスコピックサーチエリアＴＳＡ内の多数のテレスコピックマクロブロックとで動き検出を行った結果得られた動きベクトルデータと、その方向が逆で大きさが同一の動きベクトルデータを算出する機能を有する。
【０１６１】
エリア設定手段１５は、動き検出の結果得られた動きベクトルデータに基いて、図５に示す現フレームメモリ３２１や参照フレームメモリ３２３の記憶空間上において、サーチエリアＳＡや後述するテレスコピックサーチエリアＴＳＡを設定する機能を有する。具体的には、これらのエリアの上記現フレームメモリ３２１や参照フレームメモリ３２３の記憶空間上におけるアドレスを算出する。
【０１６２】
ベクトル選択手段１６は、処理対象の注目マクロブロックの注目マクロブロック番号データと同じ番号データが、逆領域内注目マクロブロック番号データとして登録されている全ての注目マクロブロックについて登録されている動きベクトルデータ、即ち、候補動きベクトルデータから、最も最適な動きベクトルデータを、後述するいくつかの方法によって選択する機能を有する。
【０１６３】
判断手段１７は、上記各手段による各種処理において、値の大小、処理の終了等を判断する機能を有する。
【０１６４】
シーン判断手段１８は、入力フレーム画像データにシーンチェンジが有るか否かを判断する機能を有する。即ち、このシーン判断手段１８は、例えば、Ｐピクチャの全てのマクロブロックの残差の和を常に監視し、現在のＰピクチャの残差の和が、１つ前のＰピクチャの残差の和に対して、２倍以上の値となったときに、その２枚のＰピクチャの間のフレームでシーンチェンジがあったものと見なす。シーンチェンジが起こると、その前後でフレームの相関がなくなるため、シーンチェンジ前のフレームを参照することになる、シーンチェンジ後のＰピクチャの画像の画質が悪くなる、即ち、残差の和が大きくなるからである。
【０１６５】
〔動作〕
図５に示す動き検出に電源が投入されると、ＲＯＭ４に記憶されているプログラムデータＰＲＧが読み出される。ＲＯＭ４から読み出されたプログラムデータＰＲＧは、ＣＰＵ２のメインメモリ上に常駐する。これによって、ＣＰＵ２は、破線内に示すように、タイミング制御手段７、ＲＡＭ制御手段８、ＲＯＭ制御手段９、メモリ制御手段１０、アドレス発生制御手段１１、テーブル制御手段１２、アドレス算出手段１３、ベクトル算出手段１４、エリア設定手段１５、ベクトル選択手段１６、判断手段１７及びシーン判断手段１８としての機能を有する。
【０１６６】
そして、これらの機能により、動き検出が開始されると、エリア設定手段１５により、参照フレームメモリ３２３の記憶空間上にサーチエリアＳＡが設定され、現フレームメモリ３２１の注目マクロブロックの画素データと、上記サーチエリアＳＡ内の参照マクロブロックの各画素データとで動き検出処理が行われる。最初の動き検出処理は、現フレームメモリ３２１の全注目マクロブロックの各画素データと、この全注目マクロブロックに対応して参照フレームメモリ３２３に夫々設定されるサーチエリアＳＡ内の全参照マクロブロックの各画素データとでフルサーチブロックマッチングが行われる。
【０１６７】
このブロックマッチングによって、１つの注目マクロブロックとサーチエリアＳＡ内の全参照マクロブロックとで多数の差分絶対値和データが得られる。これらの差分絶対値和データは、コントローラ１からの制御により、メモリ３２８に記憶される。１つの注目マクロブロックについて動き検出処理が終了すると、コントローラ１の制御により、メモリ３２８から１つの注目マクロブロックについて求められた多数の差分絶対値和データが読み出される。
【０１６８】
メモリ３２８から読み出された多数の差分絶対値和データは、最小値検出回路３２９に供給される。最小値検出回路３２９においては、多数の差分絶対値和データの内で、最も値の小さい差分絶対値和データが選択される。最小値検出回路３２９において選択された最小の差分絶対値和データは、動きベクトル検出回路３３０に供給される。動きベクトル検出回路３３０においては、供給された差分絶対値和データを得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとに基いて、動きベクトルデータが得られる。この動きベクトルデータは、出力端子３３１を介して図示しない動き補償回路に供給され、動き補償用に用いられると共に、入出力ポート６及びバス３を介してＲＡＭ５に供給され、テーブル制御手段１２の制御の元にＲＡＭ制御手段８から供給される書き込み／読み出し制御信号により、ＲＡＭ５の記憶空間上に保持されているテーブルＴＢＬに登録される。
【０１６９】
以上のようにして、現フレームメモリ３２１内の１つの注目マクロブロックについて、参照フレームメモリ３２３の記憶空間上に設定されたサーチエリアＳＡ内の全参照マクロブロックとの差分絶対値和データが得られ、その内で最も値の小さい差分絶対値和データを得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスから動きベクトルデータが得られることにより、最終的に、現フレームメモリ３２１内の全ての注目マクロブロックに対して夫々１つの動きベクトルデータが求められる。尚、広いサーチエリアＳＡを用いて動き検出を行うフルサーチブロックマッチング処理は、電源投入時直後に最初に動き検出を行うときと、関連性のない２つのフレーム画像データの間で動き検出を行うときのみである。
【０１７０】
「関連性のない２つのフレーム画像データの間で動き検出を行うとき」とは、シーンがチェンジされたときに相当する。シーンチェンジの場合には、チェンジする直前のフレーム画像データと、チェンジした直後のフレーム画像データとの関連性は低いからである。シーンチェンジがない限りは、２番目以降の動き検出では、参照フレームメモリ３２３の記憶空間上には、比較的領域の大きさが狭いテレスコピックサーチエリアＴＳＡが設定され、現フレームメモリ３２１の注目マクロブロックの画素データと、参照フレームメモリ３２３の記憶空間上に設定テレスコピックサーチエリアＴＳＡ内の全参照マクロブロックの画素データとで動き検出が行われる。但し、本例においては、概要の欄で説明したように、参照フレームメモリ３２３の記憶空間上に、テレスコピックサーチエリアＴＳＡを設定するにあたり、動き検出の速度や検出精度を向上するための特殊な処理を行っている。
【０１７１】
尚、この動作説明の目的は、図５に示す構成による全体のおおまかな動作を理解するためであるので、ＣＰＵ２が有する機能を主体にした細かい動作説明や、上記特殊な処理については後に詳述する。尚、この特殊な処理については、概要の欄でそのおおすじを説明している。
【０１７２】
続いて、現フレームメモリ３２１に記憶されているフレーム画像データが、参照フレームメモリ３２３に供給されてこの参照フレームメモリ３２３に記憶され、入力端子３１０を介して次のフレームのフレーム画像データが、現フレームメモリ３２１に供給されてこの現フレームメモリ３２１に記憶される。
【０１７３】
上述した特殊な処理により、エリア設定手段１５によって、参照フレームメモリ３２３の記憶空間上にテレスコピックサーチエリアＴＳＡが設定される。そして、現フレームメモリ３２１に記憶されているフレーム画像データの注目マクロブロック内の画素データと、参照フレームメモリ３２３の記憶空間上に設定されたテレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロック内の画素データとで動き検出処理が行われる。
【０１７４】
動き検出によって得られた多数の差分絶対値和データは、上述と同様に最小値検出回路３２９に供給され、この最小値検出回路３２９において最も小さい差分絶対値和データが選択される。最小値検出回路３２９からの差分絶対値和データは、動きベクトル検出回路３３０に供給される。この動きベクトル検出回路３３０においては、入力された最小の差分絶対値和を得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとから動きベクトルデータを得る。この動きベクトルデータは、出力端子３３１を介して図示しない動き補償回路に動き補償用のデータとして供給されると共に、入出力ポート６及びバス３を介してＲＡＭ５に供給され、テーブル制御手段１２の制御の元にＲＡＭ制御手段８から供給される書き込み／読み出し制御信号により、ＲＡＭ５の記憶空間上に保持されているテーブルＴＢＬに登録される。
【０１７５】
以上のようにして、現フレームメモリ３２１内の１つの注目マクロブロックについて、参照フレームメモリ３２３の記憶空間上に設定されたテレスコピックサーチエリアＴＳＡ内の全参照マクロブロックとの差分絶対値和データが得られ、その内で最も値の小さい差分絶対値和データ、この差分絶対値和データを得ることのできた参照マクロブロックのアドレス、及び注目マクロブロックのアドレスに基いて動きベクトルデータが得られることにより、最終的に、現フレームメモリ３２１内の全ての注目マクロブロックに対して夫々１つの動きベクトルデータが求められる。
【０１７６】
尚、図５に示す各機能を制御の主体としたより詳しい動作説明及び上記特殊な処理は、上述したように後に詳述する。
【０１７７】
Ｈ．図５に示したテーブルデータＴＢＬの説明（図６参照）
【０１７８】
図６は、図５に示したテーブルデータＴＢＬの一例を示す説明図である。本例においては、少なくとも残差処理用データテーブルＴＢＬ１と、参照マクロブロックテーブルＴＢＬ２と、テレスコピックマクロブロックテーブルＴＢＬ３の３つのテーブルを用いる。残差処理用データテーブルＴＢＬ１は、既に実施の形態の概要の欄において説明した残差処理用データテーブルＴＢＬ１である。参照マクロブロックテーブルは、参照フレームメモリ３２３の記憶空間上に設定されるサーチエリアＳＡ内の、全参照マクロブロックの参照マクロブロック番号と、この参照マクロブロックの先頭アドレスからなるテーブルである。
【０１７９】
また、テレスコピックマクロブロックテーブルＴＢＬ３は、参照フレームメモリ３２３の記憶空間上に設定されるテレスコピックサーチエリアＴＳＡ内の、全テレスコピックマクロブロックのテレスコピックマクロブロック番号ＴＭＮＯと、このテレスコピックマクロブロックの先頭アドレスＴＡＤ（ｘ、ｙ）からなるテーブルである。説明の便宜上、テレスコピックマクロブロックテーブルＴＢＬ３のみ、図２２に示し、図６においては、残差処理用データテーブルＴＢＬ１と、参照マクロブロックテーブルＴＢＬ２についてのみ説明する。
【０１８０】
図６Ａは、上記残差処理用データテーブルの一例を示し、図６Ｂは、残差処理用データテーブルに登録する残差処理用データを、どのようにして得るのかを説明するためのフレームの構成の一例を示す図であり、図６Ｃは、１つのマクロブロックの大きさの一例を示す図である。また、図６Ｄは、上記参照マクロブロックテーブルの一例を示す図である。先ず、残差処理用データテーブルについて説明する。
【０１８１】
〔残差処理用データテーブル〕
図６Ａに示すように、残差処理用データテーブルは、注目マクロブロック番号データＭＮＯ、注目マクロブロック番号データＭＮＯの値が示す注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）、当該注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データＭＮＯ、注目マクロブロックについて求められる逆領域内の逆領域内注目マクロブロック番号データＭＮＯ及び注目マクロブロックについて求められた動きベクトルデータＭＶ（ｘ、ｙ）からなる。
【０１８２】
ここで、上記注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データＭＮＯは、当該注目マクロブロックの左上、真上、右上、左、右、左下、真下及び右下に位置する注目マクロブロックの各注目マクロブロック番号データＭＮＯとなる。尚、値が“０”の場合には、当該注目マクロブロックはそのフレーム画像データ内には存在しないことを意味する。例えば、値が“０１”の注目マクロブロック番号データＭＮＯに対応する注目マクロブロックは、フレーム画像データ内においても最も左上であるから、当該注目マクロブロックの左上、真上、右上、左、左下には注目マクロブロックが存在しない。従って、対応する回りの注目マクロブロック番号の欄を見ると分かるように、値は“０”（左上）、“０”（真上）、“０”（右上）、“０”（左）、“００２”（右）、“０”（左下）、“０３３”（真下）、“０３４”（右下）となる。
【０１８３】
ここで、図６Ｂに示すような大きさのフレーム画像データの各注目マクロブロックについて動き検出を行った場合に、どのようにして上記残差処理用データが得られるかについてできるだけ具体的に説明する。
【０１８４】
図６Ｂに示すフレーム画像データは、横方向が５１２画素、縦方向が２８８画素の大きさである。そして、このフレーム画像データ内のマクロブロックは、図６Ｃに示すように、横及び縦方向が何れも１６画素となっている。また、図６Ｂに示すフレーム画像データの内部に示す数字“００１”、“０３２”、“１１０”及び“５７６”は、何れも注目マクロブロックの注目マクロブロック番号ＭＮＯである。注目マクロブロック番号データＭＮＯは、実線の矢印で示されているように、水平方向に順次インクリメントされた番号となる。図においては、数字“００１”、“０３２”、“１１０”及び“５７６”以外の数字は省略しているが、このフレーム画像データを、均等に１６画素×１６画素の大きさの注目マクロブロックデータに分割し、分割した注目マクロブロックに対して上記注目マクロブロック番号データＭＮＯを付した場合、用いられる注目マクロブロック番号データＭＮＯは、“００１”から“５７６”までの番号となる。
【０１８５】
図６Ｂにおいて、フレーム画像データの外側に夫々括弧が付けられて示されている数字（０、０）、（２０８、４８）及び（５０７、２８３）は、夫々このフレーム画像データの記憶される、現フレームメモリ３２１や参照フレームメモリ３２３の記憶空間上での各注目マクロブロックの先頭のアドレスデータである。
【０１８６】
以上のようなフレーム画像データを例にとり、図６Ａに示す残差処理用データテーブルＴＢＬ１に残差処理用データを登録する過程について説明する。
【０１８７】
図５に示したＲＯＭ４に記憶されているエディタとしての残差処理用データテーブルデータは、ＲＡＭ５に記憶される。このとき、既に説明したように、注目マクロブロック番号データＭＮＯと、この注目マクロブロック番号データＭＮＯの示す注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）と、当該注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データＭＮＯは、ＲＯＭ４に記憶される時点において既に登録されている。ＲＡＭ４上においては、注目マクロブロック番号データＭＮＯの示す注目マクロブロックに対応して、逆領域内の逆領域内注目マクロブロック番号データＭＮＯ及び動きベクトルデータＭＶｎ（ｘ、ｙ）が記憶される。
【０１８８】
例として、注目マクロブロック番号データＭＮＯが“１１０”の注目マクロブロックに対応する逆領域内の逆領域内注目マクロブロック番号データＭＮＯが登録される場合について説明する。
【０１８９】
注目マクロブロック番号データＭＮＯが“１１０”の注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）は、図６Ａに示すように、“（２０８、４８）”となっている。これは、図６Ｂに示すフレーム画像データのＲＡＭ上における先頭アドレス“（２０８、４８）”に対応する。この注目マクロブロック番号データＭＮＯが“１１０”の注目マクロブロックと、１つ前のフレーム画像データに設定されたサーチエリアＳＡ内の多数の参照マクロブロックとで動き検出を行った結果得られた動きベクトルデータＭＶ１１０（図６Ｂ参照）が、図６Ａに示す動きベクトルデータＭＶ１１０（−１８、２０）である。この動きベクトルデータＭＶ１１０と同じ大きさで逆方向の動きベクトルデータＭＶ１１０’（図６Ｂ参照）が示す位置のブロックを包括する、逆領域内の逆領域内注目マクロブロックの逆領域内注目マクロブロック番号データＭＮＯは、図６Ａに示すように、“１４３”、“１４４”、“１７５”及び“１７６”となる。尚、この４つの逆領域内注目マクロブロック番号データＭＮＯは、一例にすぎない。以上のようにして、順次残差処理用データテーブルＴＢＬ１内の逆領域内注目マクロブロック番号データＭＮＯの記憶エリア及び動きベクトルデータＭＶ（ｘ、ｙ）の記憶エリアに、データが書き込まれる。
【０１９０】
既に概要で説明したが、確認のため、ここでもう１度、この残差処理用データテーブルＴＢＬ１の用いられ方について説明する。
【０１９１】
最初のフルサーチブロックマッチング処理によって、図６Ａに示すように、残差処理用データテーブルＴＢＬ１に、フレーム画像データの全注目マクロブロック分の残差処理用データが登録される。そして、画面が更新されると、新しいフレーム画像データの注目マクロブロックと、前のフレームのフレーム画像データとでテレスコピックサーチを行うためのテレスコピックサーチエリアＴＳＡの設定が行われる。例として、注目マクロブロック番号データＭＮＯが“１１０”の注目マクロブロックについてテレスコピックサーチが行われる場合について説明する。
【０１９２】
注目マクロブロック番号データＭＮＯが“１１０”の注目マクロブロックの場合、図６Ａに示す残差処理用データテーブルＴＢＬ１の全注目マクロブロック番号データＭＮＯに対応する、逆領域内の逆領域内注目マクロブロック番号データＭＮＯの記憶エリアが参照される。この例では、逆領域内の逆領域内注目マクロブロック番号データＭＮＯの記憶エリアに“１１０”が記憶されている注目マクロブロック番号データＭＮＯは、“０７５”と“０７６”である（であるものとする）。
【０１９３】
図６Ａに示すように、注目マクロブロック番号データＭＮＯが、“０７５”の注目マクロブロックについて登録されている、逆領域内の逆領域内注目マクロブロック番号データは、“１０９”、“１１０”、“１４１”、“１４２”であり、注目マクロブロック番号データＭＮＯが、“０７６”の注目マクロブロックについて登録されている、逆領域内の逆領域内注目マクロブロック番号データは、“１１０”、“１１１”、“１４２”、“１４３”である。
【０１９４】
つまり、これら２つの注目マクロブロックに対し、処理対象であるところの注目マクロブロックの注目マクロブロック番号データＭＮＯと同じ値である、“１１０”が、逆領域内の逆領域内注目マクロブロック番号データとして登録されている。よって、これら注目マクロブロック番号データＭＮＯが、“０７５”と、“０７６”の注目マクロブロックについて夫々登録されている動きベクトルデータＭＶ７５（ｘ、ｙ）と、ＭＶ７６（ｘ、ｙ）が夫々候補動きベクトルデータとして読み出される。
【０１９５】
そして、読み出された２つの注目マクロブロック番号データＭＮＯが示す注目マクロブロックの動きベクトルデータＭＶ７５（ｘ、ｙ）、ＭＶ７６（ｘ、ｙ）の内１つが選択される。
【０１９６】
そして、上記注目マクロブロック番号データＭＮＯの値が“１１０”の注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）の位置を基準として、上記選択された動きベクトルデータＭＶ７５（ｘ、ｙ）若しくはＭＶ７６（ｘ、ｙ）の値が示す位置を、参照フレームとされているフレーム画像データ上でサーチし、その位置の参照マクロブロックデータを包括する微小なテレスコピックサーチエリアＴＳＡを、参照フレームとされているフレーム画像データ上に設定する。
【０１９７】
そして、上記値が“１１０”の注目マクロブロックデータと、上記参照フレームとされたフレーム画像データ上に設定されたテレスコピックサーチエリアＴＳＡ内の全参照マクロブロックとで動き検出が行われ、その結果、１つの動きベクトルデータＭＶ（ｘ、ｙ）が得られる。この動きベクトルデータＭＶ（ｘ、ｙ）は、動き補償において用いられると共に、この動きベクトルデータＭＶ（ｘ、ｙ）と大きさが同じで方向が逆の動きベクトルデータにより、再び、上述したように、逆領域が求められ、この逆領域内の全注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）が求められる。
【０１９８】
これらの先頭アドレスデータＡＤ（ｘ、ｙ）は、上記動き検出処理において対象となった注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する逆領域内の注目マクロブロック番号データＭＮＯの記憶エリアに記憶される。また、動き検出において求められた動きベクトルデータＭＶ（ｘ、ｙ）も、上記動き検出処理において対象となった注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する動きベクトルデータＭＶ（ｘ、ｙ）の記憶エリアに記憶される。
【０１９９】
〔参照マクロブロックテーブル〕
図６Ｄに示すように、参照マクロブロックテーブルＴＢＬ２は、参照マクロブロック番号データＳＭＮＯ及び参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）からなり、動き検出において、差分絶対値和演算を行うときのアドレス発生回路３３３のアドレス制御に用いられるテーブルである。尚、参照マクロブロック番号データＳＭＮＯは、エディタとしての参照マクロブロックテーブルＴＢＬ２がＲＯＭ４に記憶される時点において、既に、参照マクロブロックテーブルＴＢＬ２に記憶されている。サーチエリアＳＡ内の参照マクロブロックの数は予め分かっているからである。
【０２００】
この参照マクロブロックテーブルＴＢＬ２は、図５に示したＲＯＭ４にエディタとして記憶されており、電源投入時に、ＲＯＭ４から読み出されてＲＡＭ５に記憶される。ＲＡＭ５に記憶された参照マクロブロックテーブルＴＢＬ２の参照マクロブロック番号データＳＭＮＯの記憶エリアには、参照フレームとされたフレーム画像データ上に設定されるサーチエリアＳＡ内において付与される参照マクロブロック番号データＳＭＮＯが記憶され、参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）の記憶エリアには、その参照マクロブロック番号データＳＭＮＯの値が示す参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）が記憶される。サーチエリアＳＡは、処理対象の注目マクロブロックが変わる都度、変更されるので、上記参照マクロブロックテーブルＴＢＬ２の内容は、その都度変更される。
【０２０１】
Ｉ．図５に示した動き検出回路のメインルーチンによる制御動作の説明（図７参照）
【０２０２】
図７は、図５に示した動き検出回路におけるメインルーチンによる動作を説明するためのフローチャートである。
【０２０３】
ステップＳ５０では、図５に示したＣＰＵ２が、現及び参照フレームデータセット処理ルーチンによる処理を行う。そしてステップＳ９９に移行する。この処理は、図５に示したメモリ制御回路１０が現フレームメモリ３２１に対し、書き込み／読み出し制御信号を供給し、アドレス発生制御回路１１が、参照フレームメモリ３２３に対し、参照マクロブロックの先頭アドレスデータを供給することによって行われる処理である。
【０２０４】
この処理によって行われることは、簡単にいえばフレーム画像データの更新である。つまり、現フレームメモリ３２１には、次のフレーム画像データが、上記メモリ制御手段１０の制御によって記憶される。参照フレームメモリ３２３には、現フレームメモリ３２１に記憶する次のフレームのフレーム画像データよりも１フレーム分前、即ち、現フレームメモリ３２１に更新前に記憶されていたフレーム画像データと同じ内容のフレーム画像データが記憶される。参照フレームメモリ３２３に対する書き込みの制御は次のようにして行われる。即ち、上記アドレス発生制御手段１１から、参照マクロブロックの先頭アドレスデータが、アドレス発生回路３３３にロードされると、アドレス発生回路３３３は、ロードされた上記先頭アドレスデータから順次ｘ及びｙ方向へのインクリメント処理を行い、上記参照マクロブロック内の画素データを示すアドレスデータを順次生成し、そのアドレスデータを、上記参照フレームメモリ３２３に供給する。
【０２０５】
ステップＳ９９では、図５に示した判断手段１７が、値が“１”の注目マクロブロックの個数データＭ（ｆ）を、ＲＡＭ５に供給する。この値が“１”の注目マクロブロックの個数データＭ（ｆ）は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の記憶空間上の注目マクロブロックの個数データＭ（ｆ）の記憶用の領域に記憶される。そしてステップＳ１００に移行する。ここで、「Ｍ（ｆ）」のｆは、「現フレーム」であることを示す。
【０２０６】
ステップＳ１００では、図５に示したＣＰＵ２が、フルサーチブロックマッチング処理ルーチンによる処理を行う。そしてステップＳ１５０に移行する。このフルサーチブロックマッチング処理ルーチンにより行われるフルサーチブロックマッチング処理は、最初に動き検出を行うとき、若しくは上述したシーンチェンジのときである。
【０２０７】
ステップＳ１５０では、図５に示したＣＰＵ２が、残差処理用データ生成処理ルーチンによる処理を行う。そしてステップＳ１９８に移行する。この残差処理用データ生成処理ルーチンにおいては、ステップＳ１００におけるフルサーチブロックマッチング処理において得られた、現フレームメモリ３２１内の全注目マクロブロックについて夫々得られた動きベクトルデータや、これらの動きベクトルデータに基いて夫々得られた逆領域内の注目マクロブロックの先頭アドレスデータが、残差処理用データテーブルＴＢＬ１に記憶される。
【０２０８】
ステップＳ１９８では、図５に示したＲＡＭ制御手段８の制御により、注目マクロブロックの個数データＭ（ｆ）、及び１つのフレーム内の注目マクロブロックの個数データＭ（ｆ）ｍａｘが、ＲＡＭ５から読み出され、判断手段１７が、上記注目マクロブロックの個数データＭ（ｆ）が、上記１つのフレーム内の注目マクロブロックの個数データＭ（ｆ）ｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ２００に移行し、「ＮＯ」であればステップＳ１９９に移行する。
【０２０９】
ステップＳ１９９では、上記判断手段１７が、上記注目マクロブロックの個数データＭ（ｆ）に“１”を加算し、ＲＡＭ５に供給する。ＲＡＭ５に供給された注目マクロブロックの個数データＭ（ｆ）は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、再びＲＡＭ５の記憶空間上の元の位置に記憶される。そして再びステップＳ１００に移行する。
【０２１０】
ステップＳ２００では、図５に示したＣＰＵ２が、現及び参照フレームデータセット処理ルーチンによる処理を行う。そしてステップＳ２０１に移行する。この処理は、図５に示したメモリ制御回路１０が現フレームメモリ３２１に対し、書き込み／読み出し制御信号を供給し、アドレス発生制御回路１１が、参照フレームメモリ３２３に対し、テレスコピックマクロブロックの先頭アドレスデータを供給することによって行われる処理である。
【０２１１】
尚、処理の内容そのものは、ステップＳ５０において現及び参照フレームデータセットルーチンによる処理と同様であり、対象となるマクロブロックのエリアの大きさが異なるだけである。本例においては、大きなサーチエリアを単にサーチエリアＳＡと称し、特殊な処理によって設定される小さなサーチエリアをテレスコピックサーチエリアＴＳＡと称しており、上記サーチエリアＳＡ内のマクロブロックを、便宜上、参照マクロブロックと称し、上記テレスコピックサーチエリアＴＳＡ内のマクロブロックを、便宜上、テレスコピックマクロブロックと称する。
【０２１２】
この処理によって行われることは、簡単にいえばフレーム画像データの更新である。つまり、現フレームメモリ３２１には、次のフレーム画像データが、上記メモリ制御手段１０の制御によって記憶される。参照フレームメモリ３２３には、現フレームメモリ３２１に記憶する次のフレームのフレーム画像データよりも１フレーム分前、即ち、現フレームメモリ３２１に更新前に記憶されていたフレーム画像データと同じ内容のフレーム画像データが記憶される。
【０２１３】
参照フレームメモリ３２３に対する書き込みの制御は次のようにして行われる。即ち、上記アドレス発生制御手段１１から、テレスコピックマクロブロックの先頭アドレスデータが、アドレス発生回路３３３にロードされると、アドレス発生回路３３３は、ロードされた上記先頭アドレスデータから順次ｘ及びｙ方向へのインクリメント処理を行い、上記参照マクロブロック内の画素データを示すアドレスデータを順次生成し、そのアドレスデータを、上記参照フレームメモリ３２３に供給する。
【０２１４】
ステップＳ３００では、ＣＰＵ２が、残差処理ルーチンによる処理、即ち、上記概要の欄で説明したテレスコピックサーチ処理を行う。そしてステップＳ５９９に移行する。
【０２１５】
ステップＳ５９９では、図５に示したＲＡＭ制御手段８の制御により、注目マクロブロック番号データＭＮＯ、及び注目マクロブロック番号の最大値データＭＮＯｍａｘがＲＡＭ５から読み出され、判断手段１７が、上記注目マクロブロック番号データＭＮＯが、上記注目マクロブロック番号の最大値データＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ６００に移行し、「ＮＯ」であればステップＳ６０１に移行する。
【０２１６】
ステップＳ６０１では、上記判断手段１７が、上記注目マクロブロック番号データＭＮＯに“１”を加算し、その結果得られた新たな注目マクロブロック番号データＭＮＯを、ＲＡＭ５に供給する。ＲＡＭ５に供給された注目マクロブロック番号データＭＮＯは、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、再びＲＡＭ５の記憶空間上の元の位置に記憶される。そして再びステップＳ３００に移行する。
【０２１７】
ステップＳ６００では、図５に示したシーン判断手段１８が、シーンチェンジか否かを判断し、「ＹＥＳ」であればステップＳ６０２に移行し、「ＮＯ」であれば再びステップＳ５０に移行する。
【０２１８】
ステップＳ６０２では、図５に示した判断手段１７が、終了か否かを判断し、「ＹＥＳ」であれば終了し、「ＮＯ」であれば再びステップＳ２００に移行する。
【０２１９】
Ｊ．図７に示した現及び参照フレームデータセット処理ルーチンによる制御動作の説明（図８及び図９参照）
【０２２０】
図８及び図９は、図７に示したメインルーチンのフローチャートのステップＳ５０及びＳ２００の現及び参照フレームデータセット処理ルーチンによる制御動作を説明するためのフローチャートである。
【０２２１】
ステップＳ５１では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、現フレームメモリ３２１若しくは参照フレームメモリ３２３の先頭アドレスであるところの、水平及び垂直アドレスデータＡＤＨ（ｆ）及びＡＤＶ（ｆ）を読み出す。そして、ステップＳ５２に移行する。
【０２２２】
ステップＳ５２では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの内容が、ＲＡＭ５から読み出された水平アドレスデータＡＤＨ（ｆ）となる。そしてステップＳ５３に移行する。
【０２２３】
ステップＳ５３では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の垂直アドレスデータＶＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の垂直アドレスデータＶＡＤの内容が、ＲＡＭ５から読み出された垂直アドレスデータＡＤＶ（ｆ）となる。そしてステップＳ５４に移行する。
【０２２４】
ステップＳ５４では、図５に示したアドレス発生制御手段１１の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に上記水平及び垂直アドレスデータＨＡＤ及びＶＡＤ並びに全データの更新を示す情報を含む制御信号を供給する。ＲＡＭ５から読み出された水平及び垂直アドレスデータＨＡＤ及びＶＡＤ、並びに上記アドレス発生制御手段１１から出力された全データの更新を示す情報を含む制御信号は、バス３及び入出力ポート６を介してアドレス発生回路３３３に供給される。アドレス発生回路３３３は、コントローラ１からの上記制御信号中の、水平及び垂直アドレスデータから順次インクリメントを行って、水平及び垂直アドレスデータを歩進させ、この水平及び垂直アドレスデータを、参照フレームメモリ３２３に供給する。上述したように、アドレス発生回路３３３には、全データの更新を示す情報を含む制御信号が供給されているので、ロードされた先頭の水平及び垂直アドレスデータから、水平及び垂直アドレスデータの歩進を行い、参照フレームメモリ３２３の全記憶空間に対して順次アドレッシングを行う。
【０２２５】
ステップＳ５５では、図５に示したメモリ制御手段１０が、入出力ポート６を介して現フレームメモリ３２１にリードイネーブル信号を供給する。そしてステップＳ５６に移行する。
【０２２６】
ステップＳ５６では、図５に示したメモリ制御手段１０が、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを、入出力ポート６を介して現フレームメモリ３２１に供給する。そしてステップＳ５６に移行する。以上の処理により、現フレームメモリ３２１から読み出された画素データは、参照フレームメモリ３２３に供給され、参照フレームメモリ３２３に記憶される。
【０２２７】
ステップＳ５７では、図５に示したメモリ制御手段１０が、水平アドレスデータＨＡＤに“１”を加算する。そしてステップＳ５８に移行する。
【０２２８】
ステップＳ５８では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、水平方向の最大値データＨｍａｘを読み出す。読み出された水平方向の最大値データＨｍａｘは、判断手段１７に供給される。判断手段１７は、水平アドレスデータＨＡＤが、水平方向の最大値データＨｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ５９に移行し、「ＮＯ」であれば再びステップＳ５６に移行する。
【０２２９】
ステップＳ５９では、図５に示したメモリ制御手段１０が、垂直アドレスデータＶＡＤに“１”を加算する。そしてステップＳ６０に移行する。
【０２３０】
ステップＳ６０では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、垂直方向の最大値データＶｍａｘを読み出す。読み出された垂直方向の最大値データＶｍａｘは、判断手段１７に供給される。判断手段１７は、垂直アドレスデータＶＡＤが、垂直方向の最大値データＶｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であれば図９に示すフローチャートのステップＳ６１に移行し、「ＮＯ」であれば再びステップＳ５６に移行する。
【０２３１】
ステップＳ６１では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、現フレームメモリ３２１若しくは参照フレームメモリ３２３の先頭アドレスであるところの、水平及び垂直アドレスデータＡＤＨ（ｆ）及びＡＤＶ（ｆ）を読み出す。そして、メモリ制御手段１０が、上記水平及び垂直アドレスデータＡＤＨ（ｆ）及びＡＤＶ（ｆ）を、ＲＡＭ５に供給する。そしてステップＳ６２に移行する。
【０２３２】
ステップＳ６２では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の、水平アドレスデータＨＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの内容が、ＲＡＭ５から読み出された水平アドレスデータＡＤＨ（ｆ）となる。そしてステップＳ６３に移行する。
【０２３３】
ステップＳ６３では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の、垂直アドレスデータＶＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の垂直アドレスデータＶＡＤの内容が、ＲＡＭ５から読み出された垂直アドレスデータＡＤＶ（ｆ）となる。そしてステップＳ６４に移行する。
【０２３４】
ステップＳ６４では、図５に示したメモリ制御手段１０が、入出力ポート６を介して現フレームメモリ３２１にライトイネーブル信号を供給する。そしてステップＳ６５に移行する。
【０２３５】
ステップＳ６５では、図５に示したメモリ制御手段１０が、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを、入出力ポート６を介して現フレームメモリ３２１に供給する。そしてステップＳ６６に移行する。以上の処理により、入力端子３１０を介して現フレームメモリ３２１に供給される、次のフレームのフレーム画像データは、現フレームメモリ３２１に記憶される。
【０２３６】
ステップＳ６６では、図５に示したメモリ制御手段１０が、水平アドレスデータＨＡＤに“１”を加算する。そしてステップＳ６７に移行する。
【０２３７】
ステップＳ６７では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、水平方向の最大値データＨｍａｘを読み出す。読み出された水平方向最大値データＨｍａｘは、判断手段１７に供給される。判断手段１７は、水平アドレスデータＨＡＤが、水平方向最大値データＨｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ６８に移行し、「ＮＯ」であれば再びステップＳ６５に移行する。
【０２３８】
ステップＳ６８では、図５に示したメモリ制御手段１０が、垂直アドレスデータＶＡＤに“１”を加算する。そしてステップＳ６９に移行する。
【０２３９】
ステップＳ６９では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に記憶されている、垂直方向の最大値データＶｍａｘを読み出す。読み出された垂直方向の最大値データＶｍａｘは、判断手段１７に供給される。判断手段１７は、垂直アドレスデータＶＡＤが、垂直方向の最大値データＶｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればこの現及び参照フレームデータセットルーチンを抜けて、再び図７に示したメインルーチンのフローチャートのステップＳ９９に移行する。
【０２４０】
Ｋ．図７に示したフルサーチブロックマッチング処理ルーチンによる制御動作の説明（図１０及び図１１参照）
【０２４１】
図１０及び図１１は、図７に示したメインルーチンのフローチャートのステップＳ１００のフルサーチブロックマッチング処理ルーチンによる制御動作を説明するためのフローチャートである。
【０２４２】
ステップＳ１０１では、図５に示した判断手段１７が、値が“１”の参照マクロブロック番号データＳＭＮＯを、ＲＡＭ５に供給する。この値が“１”の参照マクロブロック番号データＳＭＮＯは、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の記憶空間上の参照マクロブロック番号データＳＭＮＯの記憶用の領域に記憶される。そしてステップＳ１０２に移行する。
【０２４３】
ステップＳ１０２では、図５に示したテーブル制御回路１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロックの個数データＭ（ｆ）を読み出し、その値と同じ注目マクロブロック番号データＭＮＯに対応する、現フレームメモリ３２１内の注目マクロブロックの先頭の水平及び垂直アドレスデータＡＤ（ｘ、ｙ）を、ＲＡＭ５に保持されている残差処理用データテーブルＴＢＬ１から読み出す。残差処理用データテーブルＴＢＬ１から読み出された水平及び垂直アドレスデータＡＤ（ｘ、ｙ）は、エリア設定手段１５に供給される。そしてステップＳ１０３に移行する。
【０２４４】
ステップＳ１０３では、図５に示したエリア設定手段１５が、参照フレームメモリ３２３の記憶空間上に設定すべき、サーチエリアＳＡの先頭の水平及び垂直アドレスデータＳＳＡｄＨ及びＳＳＡｄＶ、並びに最後尾の水平及び垂直アドレスデータＳＥＡｄＨ及びＳＥＡｄＶを算出する。算出された参照フレームメモリ３２３の記憶空間上におけるサーチエリアＳＡの先頭の水平及び垂直アドレスデータＳＳｄＨ及びＳＳＡｄＶ、並びに最後尾の水平及び垂直アドレスデータＳＥＡｄＨ及びＳＥＡｄＶは、図５に示したアドレス算出手段１３に供給される。そしてステップＳ１０４に移行する。
【０２４５】
ステップＳ１０４では、図５に示したアドレス算出手段１３が、エリア設定手段１５から供給された参照フレームメモリ３２３の記憶空間上におけるサーチエリアＳＡの先頭の水平及び垂直アドレスデータＳＳｄＨ及びＳＳＡｄＶ、並びに最後尾の水平及び垂直アドレスデータＳＥＡｄＨ及びＳＥＡｄＶに基いて、このサーチエリアＳＡ内の全参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）を算出する。算出されたサーチエリアＳＡ内の全参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）は、ＲＡＭ５に供給される。ＲＡＭ制御手段８は、ＲＡＭ５に対し、上述した参照マクロブロックテーブルＴＢＬ２の記憶エリアを示すアドレスデータを供給する。これによって、ＲＡＭ５に保持されている参照マクロブロックテーブルＴＢＬ２に、上記サーチエリアＳＡ内の参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）が順次登録される。そしてステップＳ１０５に移行する。
【０２４６】
ステップＳ１０５では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の水平及び垂直アドレスデータＨＡＤ及びＶＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤ及びＶＡＤの内容が、ＲＡＭ５から読み出された水平アドレスデータＡＤ（ｘ、ｙ）となる。そしてステップＳ１０６に移行する。
【０２４７】
ステップＳ１０６では、図５に示したアドレス発生制御手段１１の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の参照マクロブロックテーブルＴＢＬ２に登録されている、参照マクロブロック番号データＳＭＮＯに対応する、参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）を読み出す。そしてステップＳ１０７に移行する。
【０２４８】
ステップＳ１０７では、図５に示したメモリ制御手段１０が、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを、入出力ポート６を介して現フレームメモリ３２１に供給する。そしてステップＳ１０８に移行する。
【０２４９】
ステップＳ１０８では、図５に示したメモリ制御手段１０の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に保持されている参照マクロブロックテーブルから、参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）を、読み出す。読み出された参照マクロブロックの先頭アドレスデータａｄ（ｘ、ｙ）は、入出力ポート６を介してアドレス発生回路３３３に供給される。
【０２５０】
アドレス発生回路３３３においては、ロードされた水平及び垂直アドレスデータａｄ（ｘ、ｙ）から順次水平及び垂直アドレスデータを発生し、発生した水平及び垂直アドレスデータを、参照フレームメモリ３２３に供給する。これによって、参照フレームメモリ３２３から、参照マクロブロックの画素データが、順次読み出される。アドレス発生回路３３３においては、次のようにして水平及び垂直アドレスデータが生成される。
【０２５１】
即ち、アドレス発生回路３３３は、ロードされた水平アドレスデータを、“１”ずつ歩進させ、歩進した数が“１５”になると、再び水平アドレスデータを、ロードされた水平アドレスデータに戻し、且つ、垂直アドレスデータを、“１”だけ歩進させる。上記垂直アドレスデータも、水平アドレスデータが水平方向に“１６”歩進される都度、インクリメントされ、最終的に“１５”だけ歩進される。以上の処理により、参照フレームメモリ３２３に対し、１６ライン×１６画素の大きさの参照マクロブロック単位でアドレッシングを行うことができる。
【０２５２】
ステップＳ１０９では、図５に示したメモリ制御手段１０が、水平アドレスデータＨＡＤに“１”を加算する。そしてステップＳ１１０に移行する。
【０２５３】
ステップＳ１１０では、図５に示した判断回路１７が、水平アドレスデータＨＡＤが“１６”よりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１１１に移行し、「ＮＯ」であればステップＳ１１５に移行する。
【０２５４】
ステップＳ１１１では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの内容が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から読み出された水平アドレスデータＡＤｘとなる。そしてステップＳ１１２に移行する。
【０２５５】
ステップＳ１１２では、図５に示したメモリ制御手段１０が、垂直アドレスデータＶＡＤに“１”を加算する。そしてステップＳ１１３に移行する。
【０２５６】
ステップＳ１１３では、図５に示した判断回路１７が、垂直アドレスデータＶＡＤが“１６”よりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１１４に移行し、「ＮＯ」であればステップＳ１１５に移行する。
【０２５７】
ステップＳ１１４では、図５に示した判断手段１７が、ＲＡＭ制御手段８によってＲＡＭ５から読み出された参照マクロブロック番号データＳＭＮＯに、“１”を加算する。この“１”が加算された参照マクロブロック番号データＳＭＮＯは、ＲＡＭ５に供給され、ＲＡＭ制御手段８からの書き込み／読み出し制御信号によって再びＲＡＭ５に記憶される。そしてステップＳ１１６に移行する。
【０２５８】
ステップＳ１１５では、図５に示したメモリ制御手段１０が、入出力ポート６を介して現フレームメモリ３２１に、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを供給する。そして再びステップＳ１０９に移行する。
【０２５９】
ステップＳ１１６では、図５に示した判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、参照マクロブロック番号データＳＭＮＯ及び参照マクロブロック番号の最大値データＳＭＮＯｍａｘの記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５からは、参照マクロブロック番号データＳＭＮＯと、参照マクロブロック番号の最大値データＳＭＮＯｍａｘが読み出される。判断手段１７は、参照マクロブロック番号データＳＭＮＯが、参照マクロブロック番号の最大値データＳＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればこのフルサーチブロックマッチング処理ルーチンを抜け、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンに移行し、「ＮＯ」であれば再び図１０に示すフローチャートのステップＳ１０６に移行する。
【０２６０】
以上の説明から分かるように、以上の処理が繰り返されることによって、１つの注目マクロブロック内の画素データから、この注目マクロブロックに対応する参照フレームメモリ３２３のサーチエリアＳＡの１つの参照マクロブロック内の画素データが、順次、図５に示した加算回路３２４において減算され、この減算出力が、絶対値回路３２５で絶対値化され、この絶対値化された差分データが、加算回路３２６及びラッチ回路３２７において累積され、その結果差分絶対値和データとしてメモリ３２８に記憶される。この処理は、１つの注目マクロブロックについて、参照フレームメモリ３２１のサーチエリアＳＡの全参照マクロブロックについて行われる。そして、最小値検出回路３２９により、メモリ３２８に蓄えられたサーチエリアＳＡ内の全参照マクロブロックに対応する差分絶対値和データの内で、最も値の小さい差分絶対値和データが選択され、選択された差分絶対値和データが、動きベクトル検出回路３３０において動きベクトルデータに変換される。
【０２６１】
ここで、図１０及び図１１に示すフルサーチブロックマッチング処理ルーチンは、図７に示したフローチャートを見ると分かるように、ステップ１９８において、注目マクロブロックの個数データが、注目マクロブロックの個数の最大値データＭ（ｆ）ｍａｘよりも大きくない間は、ステップＳ１９９に示すように、注目マクロブロックの個数データＭ（ｆ）に“１”が加算された後に、再びステップＳ１００、即ち、図１０及び図１１に示すフルサーチブロックマッチング処理ルーチンに移行する。つまり、現フレームメモリ３２１の全ての注目マクロブロックについて、フルサーチブロックマッチングにより動き検出が行われる。
【０２６２】
Ｌ．逆領域のパターンと動きベクトルデータの選択時のＲＡＭの内容の説明（図１２参照）
【０２６３】
図１２は、概要の欄で説明した逆領域におけるマクロブロックのの配置パターンの一例を示す説明図である。項目Ｍにおいて説明する残差処理用データ生成処理ルーチンによる制御動作の理解を容易にするために、上記事項について説明するものである。
【０２６４】
この図１２は、現フレームメモリ３２１の記憶空間の一部を示している。図中、細い線で区切られて形成されているブロックは、夫々注目マクロブロック、太い実線で示すブロックは逆領域である。
【０２６５】
既に概要の欄で説明したように、フルサーチブロックマッチング処理によって１つの注目マクロブロックについて１つの動きベクトルデータを得、この動きベクトルデータと大きさが同じで方向が逆の動きベクトルデータを求め、上記注目マクロブロックを、上記逆動きベクトルデータの値が示す分だけ移動させると、物体が等速度で同一方向に移動している場合には、現フレームの次のフレームにおける上記注目マクロブロックの位置を予測することができる。ここで言う「予測」は、動き検出において用いられる「予測誤差」の予測とは異なり、真に「予測」の意味を持つ。既に、図６において説明したように、動き検出を行って処理対象である注目マクロブロックについて１つの動きベクトルデータを求めた後は、この動きベクトルデータと逆の動きベクトルデータが示す位置のマクロブロックを含む、逆領域内の４つの注目マクロブロックの注目マクロブロック番号データを求めなければならない。
【０２６６】
次の新たなフレーム画像データの注目マクロブロックについて処理を行うにあたり、その注目マクロブロックの注目マクロブロック番号データと同じ番号の逆領域内注目マクロブロック番号データが登録されている、注目マクロブロックの注目マクロブロック番号データについて登録されている動きベクトルデータを用いるからである。
【０２６７】
図１２において斜線で示す４つのマクロブロックは、上記逆動きベクトルデータによって得られる位置を示している。この場合、上記逆動きベクトルデータが示す位置にあると考えられるマクロブロックは、フレーム画像データを均等に分割することにより得られる逆領域内注目マクロブロックと一致しない場合が殆どであり、その発生し得るパターンは、図に示すように、Ｐａ１、Ｐａ２、Ｐａ３及びＰａ４の４つのパターンである。
【０２６８】
パターンＰａ１は、逆動きベクトルデータによって予測されるマクロブロックが、４つの逆領域内注目マクロブロック全てに重なる場合を示し、パターンＰａ２は、逆動きベクトルデータによって予測されるマクロブロックが、上下２つの逆領域内注目マクロブロックに重なる場合を示し、パターンＰａ３は、逆動きベクトルデータによって予測されるマクロブロックが、左右２つの逆領域内注目マクロブロックに重なる場合を示し、パターンＰａ４は、逆動きベクトルデータによって予測されるマクロブロックが、逆領域内の１つの逆領域内注目マクロブロックと完全に重なる場合を示している。
【０２６９】
本例においては、逆領域の設定は次のようにして行う。パターンＰａ１の場合では、斜線で示すマクロブロックと重なる４つの逆領域内注目マクロブロックで構成されるよう設定する。
パターンＰａ２の場合では、斜線で示すマクロブロックと重なる２つの逆領域内注目マクロブロックと、この２つの逆領域内注目マクロブロックに対し夫々右側に隣接する２つの逆領域内注目マクロブロックとで構成されるよう設定する。パターンＰａ３の場合では、斜線で示すマクロブロックと重なる２つの逆領域内注目マクロブロックと、この２つの逆領域内注目マクロブロックに対し夫々下側に隣接する２つの逆領域内注目マクロブロックとで構成されるよう設定する。
パターンＰａ４の場合では、斜線で示すマクロブロックと重なる１つの逆領域内注目マクロブロックと、この１つの逆領域内注目マクロブロックに対し右上、左下及び右下の３つの逆領域内注目マクロブロックとで構成されるよう設定する
。
【０２７０】
勿論、このような設定は実施の形態を説明するために一例として便宜上決めているだけであり、隣接する逆領域内注目マクロブロックは、パターンＰａ２については左側でも良く、また、パターンＰａ３については上側でも良く、また、パターンＰａ４については、斜線で示すマクロブロックが、逆領域内のどこに配置されるように逆領域を設定しても良い。
【０２７１】
逆領域の設定後には、その逆領域内の４つの逆領域内注目マクロブロックの先頭アドレスデータを求める必要があり、そのためには、先ず、各パターンＰａ１〜Ｐａ４の逆領域の左角に黒い丸で示されている、逆領域の先頭アドレスデータＡＤ（ｘ、ｙ）を求めなければならない。そこで、この逆領域の先頭アドレスデータＡＤ（ｘ、ｙ）を求めるためには、各パターンＰａ１〜Ｐａ４の各斜線で示すマクロブロックの左角に黒い三角で示されている、マクロブロックの先頭アドレスＩＶ（ｘ、ｙ）を基準とし、斜線で示すマクロブロックの先頭アドレスＩＶ（ｘ、ｙ）から最も近い逆領域内注目マクロブロックの先頭アドレスを求めれば良い。尚、パターンＰａ４では、斜線で示すマクロブロックの先頭アドレスＩＶ（ｘ、ｙ）は、逆領域の左角の先頭アドレスと同じである。
【０２７２】
逆領域の左角のアドレスの値は、その領域内の左上の逆領域内注目マクロブロックの左角のアドレスの値と同じだからである。逆領域の左角のアドレスが求まれば、この左角のアドレスは、逆領域内の左上の逆領域内注目マクロブロックの先頭アドレスと同じであるから、後は、逆領域内の右上、左下及び右下の逆領域内注目マクロブロックの各先頭アドレスを求めれば良い。以上説明した逆領域内の逆領域内注目マクロブロックの先頭アドレスの求め方は、項目Ｍにおいてより詳細に説明する。
【０２７３】
以上のようにして、フルサーチブロックマッチング処理によって得られた、対象とする注目マクロブロックから、得られた動きベクトルデータと逆の動きベクトルデータによって示されるマクロブロックを含む、逆領域内の４つの逆領域内注目マクロブロックの各先頭アドレスデータが求められる。そして、４つの逆領域内注目マクロブロックの各先頭アドレスデータに基いて、残差処理用データテーブルＴＢＬ１を参照することにより、上記４つの逆領域内注目マクロブロックの各逆領域内注目マクロブロック番号データを求めることができる。これら４つの逆領域内注目マクロブロック番号データは、既に説明したように、処理対象とされている注目マクロブロックの注目マクロブロック番号データに対応するところの、残差処理用データテーブルＴＢＬ１の対応エリアに登録される。
【０２７４】
上記４つの逆領域内注目マクロブロックの逆領域内注目マクロブロック番号データは、フレーム画像データが更新されて現フレームとしての新たなフレーム画像データの各注目マクロブロックについて動き検出を行う際に用いられる。つまり、新たなフレーム画像データの注目マクロブロックについて動き検出を行うにあたり、処理対象の注目マクロブロックの注目マクロブロック番号データと同じ値の逆領域内注目マクロブロック番号データが登録されている、注目マクロブロックの注目マクロブロック番号データについて登録されている動きベクトルデータは、残差処理用データテーブルＴＢＬ１から順次読み出すためのインデックスとして用いられる。そして、読み出された候補動きベクトルデータから最も最適な動きベクトルデータが選択され、その動きベクトルデータが示す位置の参照マクロブロックを含む、微小なテレスコピックサーチエリアＴＳＡが設定される。
【０２７５】
ここで、確認のために、再度図６を参照して説明する。図６Ａに示すように、“００１”〜“５７６”までの各注目マクロブロック番号データＭＮＯに対応して、夫々その注目マクロブロック番号に対応する、（０、０）〜（５０７、２０３）までの注目マクロブロックの先頭アドレスＡＤ（ｘ、ｙ）、回りの注目マクロブロックの注目マクロブロック番号ＭＮＯ、逆領域内の４つの逆領域内注目マクロブロック番号データＭＮＯ並びに注目マクロブロック番号データＭＮＯに対応する注目マクロブロックについて求められた、ＭＶ１（ｘ、ｙ）〜ＭＶ５７６（ｘ、ｙ）までの動きベクトルデータＭＶ（ｘ、ｙ）が登録されている。
【０２７６】
従って、例えば“１１０”の注目マクロブロック番号データＭＮＯに対応する注目マクロブロックの処理を行うにあたって行われる、候補動きベクトルデータからの１つの動きベクトルデータの選択は、上記“１１０”の注目マクロブロック番号データＭＮＯと同じ値の逆領域内注目マクロブロック番号データＭＮＯが登録されている、“０７５”、“０７６”の注目マクロブロック番号データＭＮＯが夫々読み出され、これら“０７５”、“０７６”の注目マクロブロック番号データＭＮＯに夫々対応する動きベクトルデータＭＶ７５（ｘ、ｙ）、ＭＶ７６（ｘ、ｙ）が夫々残差処理用データテーブルＴＢＬ１から候補動きベクトルデータとして読み出され、その２つの候補動きベクトルデータの内どの動きベクトルデータがテレスコピックサーチエリアＴＳＡを設定するのに最適か否かが判断されて行われる。
【０２７７】
以上の説明をまとめると次のようになる。即ち、電源投入時、若しくはシーンチェンジのときだけ通常の広さのサーチエリアＳＡが用いられてフルサーチブロックマッチング処理が行われる。この後、上記１つの注目マクロブロックの注目マクロブロック番号データと同じ値の逆領域内注目マクロブロック番号データが登録されている、注目マクロブロックの注目マクロブロック番号データについて登録されている、全候補動きベクトルデータから最適な動きベクトルデータが選択される。そして、選択された最適な動きベクトルデータにより設定された微小なテレスコピックサーチエリアＴＳＡが用いられてフルサーチブロックマッチング処理が行われる。
【０２７８】
Ｍ．図７に示した残差処理用データ生成処理ルーチンによる制御動作の説明（図１３及び図１４参照）
【０２７９】
図１３及び図１４は、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンによる制御動作を説明するためのフローチャートである。ここでいう残差処理用データとは、図６に示した残差処理用データテーブルＴＢＬ１に登録されるデータであり、注目マクロブロック毎に得られる動きベクトルデータと、この動きベクトルデータと同じ大きさで逆方向の動きベクトルデータによって得られたマクロブロックを包括する逆領域内の４つの逆領域内注目マクロブロック番号データである。
【０２８０】
ステップＳ１５１では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロック番号データＭＮＯを読み出す。ＲＡＭ５から読み出された注目マクロブロック番号データＭＮＯは、テーブル制御手段１２に供給される。テーブル制御手段１２は、ＲＡＭ５から供給された注目マクロブロック番号データＭＮＯに基いて、注目マクロブロック番号データＭＮＯを得、この注目マクロブロック番号データＭＮＯの値を、ＭＮＯ１として保持する。そしてステップＳ１５１に移行する。
【０２８１】
ステップＳ１５２では、図５に示したテーブル制御手段１２が、注目マクロブロック番号データＭＮＯを、ＲＡＭ制御手段８に供給する。ＲＡＭ制御手段８は、注目マクロブロック番号データＭＮＯに対応する動きベクトルデータを、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から読み出す。ＲＡＭ５から読み出された動きベクトルデータは、ベクトル算出手段１４に供給される。そしてステップＳ１５３に移行する。
【０２８２】
ステップＳ１５３では、図５に示したベクトル算出手段１４が、ＲＡＭ５から供給された動きベクトルデータに基いて、この動きベクトルデータと大きさが同じで方向が逆の動きベクトルデータを算出し、算出した逆動きベクトルデータを、アドレス算出手段１３に供給する。そしてステップＳ１５４に移行する。
【０２８３】
逆方向の動きベクトルデータの算出は簡単である。例えば、読み出された動きベクトルデータが、ｘ方向に“１”、ｙ方向に“−２”の場合には、逆動きベクトルデータは、ｘ方向に“−１”、ｙ方向に“２”となる。単にｘ方向の値の極性とｙ方向の値の極性を夫々逆にするだけである。
【０２８４】
ステップＳ１５４では、図５に示したアドレス算出手段１３が、ベクトル算出手段１４から供給された逆動きベクトルデータが示す位置である、現フレームメモリ３２１の記憶空間上におけるアドレスＩＶ（ｘ、ｙ）を算出する。そしてステップＳ１５５に移行する。
【０２８５】
上記アドレスＩＶ（ｘ、ｙ）の算出は簡単である。例えば現在処理している注目マクロブロックの注目マクロブロック番号データに対応するアドレスＡＤ（ｘ、ｙ）が、（２０、３０）のときに、逆動きベクトルデータＭＶ（ｘ、ｙ）が、（−１、２）の場合には、上記アドレスＩＶｘは、上記アドレスＡＤｘから負方向に１画素分進んだアドレスであるから、“１９”となり、上記アドレスＩＶｙは、上記アドレスＡＤｙから正方向に２画素進んだアドレスであるから、“３２”となる。
【０２８６】
演算式で表すと、次のようになる。
ＩＶ（ｘ、ｙ）＝｛ＩＶｘ＋（ＭＶｘ）、ＩＶｙ＋（ＭＶｙ）｝・・・（式１）
【０２８７】
ステップＳ１５５では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、注目マクロブロック番号データＭＮＯに対応する、注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を読み出す。ＲＡＭ５から読み出された先頭アドレスデータＡＤ（ｘ、ｙ）は、アドレス算出手段１３に供給される。
【０２８８】
ステップＳ１５６では、アドレス算出手段１３が、アドレスＩＶｘから、ＲＡＭ５から供給された注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を、減算し、減算結果Ｄｘを得る。この減算結果Ｄｘは、判断手段１７に供給される。そしてステップＳ１５７に移行する。
【０２８９】
ステップＳ１５７では、判断手段１７が、減算結果Ｄｘが、“０”以上、且つ、“１６”未満か否かを判断し、「ＹＥＳ」であればステップＳ１５８に移行し、「ＮＯ」であればステップＳ１６０に移行する。
【０２９０】
ステップＳ１５８では、アドレス算出手段１３が、ＲＡＭ５から供給された注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）から、アドレスＩＶｙを、減算し、減算結果Ｄｙを得る。この減算結果Ｄｙは、判断手段１７に供給される。そしてステップＳ１５９に移行する。
【０２９１】
ステップＳ１５９では、判断手段１７が、減算結果Ｄｙが、“０”以上、且つ、“１６”未満か否かを判断し、「ＹＥＳ」であれば図１４に示すフローチャートのステップＳ１６１に移行し、「ＮＯ」であればステップＳ１６０に移行する。
【０２９２】
ステップＳ１６０では、図５に示したテーブル制御手段１２が、注目マクロブロック番号データＭＮＯに“１”を加算する。そして再びステップＳ１５５に移行する。
【０２９３】
ここで、上記ステップＳ１５５〜Ｓ１６０において何を行っているかについて説明する。ステップＳ１５５では、ステップＳ１６０により順次インクリメントされた注目マクロブロック番号データＭＮＯに対応する、注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を、残差処理用データテーブルＴＢＬ１から読み出している。そして、ステップＳ１５６では、アドレスＩＶｘと上記先頭アドレスデータＡＤ（ｘ、ｙ）のｘ方向のアドレスＡＤｘとの差分がとられ、更にステップＳ１５７では、その差分が、“０”以上、且つ、“１６”未満か否かについて判断される。つまり、アドレスＩＶｘが示す位置に最も近い注目マクロブロックのｘ方向のアドレスか否かを見ているのである。
【０２９４】
また、上記ステップＳ１５７において「ＯＫ」、即ち、ｘ方向の先頭アドレスデータＡＤｘが、アドレスＩＶｘに最も近いと判断された場合には、ステップＳ１５８において、アドレスＩＶｙと上記先頭アドレスデータＡＤ（ｘ、ｙ）のｙ方向のアドレスＡＤｙとの差分がとられ、更にステップＳ１５９では、その差分が、“０”以上、且つ、“１６”未満か否かについて判断される。つまり、アドレスＩＶｙが示す位置に最も近い注目マクロブロックのｙ方向のアドレスか否かを見ているのである。以上の処理により、アドレスＩＶ（ｘ、ｙ）に最も近い注目マクロブロックの先頭アドレスＡＤ（ｘ、ｙ）が得られる。
【０２９５】
確認のために、図１２を再度参照して説明する。図１２に示した４つのパターンＰａ１〜Ｐａ４から分かるように、斜線で示すマクロブロックの左角のアドレスＩＶ（ｘ、ｙ）と、このアドレスＩＶ（ｘ、ｙ）から最も近い注目マクロブロックの左角の先頭アドレスＡＤ（ｘ、ｙ）との距離の最小値は、ｘ及びｙ方向の何れでも“０”、距離の最大値は、ｘ及びｙ方向の何れの方向でも“１５”である。従って、残差処理用データテーブルＴＢＬ１から順次読み出した注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）と、アドレスＩＶ（ｘ、ｙ）を比較すれば良い。また、この処理を行うことによって、逆領域を設定していることになる。
【０２９６】
ステップＳ１６１では、図５に示したアドレス算出手段１３が、ステップＳ１５５において供給された注目マクロブロック番号ＭＮＯに対応する先頭アドレスデータＡＤ（ｘ、ｙ）を、逆領域の左上の逆領域内注目マクロブロックの先頭アドレスであるものと判断し、この先頭アドレスデータＡＤ（ｘ、ｙ）を、テーブル制御手段１２及びＲＡＭ５に夫々供給する。ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、アドレス算出手段１３からの逆領域の左上の逆領域内注目マクロブロックの先頭アドレスＡＤ（ｘ、ｙ）は、ＲＡＭ５の所定エリアに、アドレスデータＡＤ１（ｘ、ｙ）として記憶される。そしてステップＳ１６２に移行する。
【０２９７】
ステップＳ１６２では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理データテーブルＴＢＬ１から、注目マクロブロック番号データＭＮＯ及びこの注目マクロブロック番号データＭＮＯに対応する注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を読み出す。これらのデータは、テーブル制御手段１２に供給される。テーブル制御手段１２は、上記アドレスデータＡＤ１（ｘ、ｙ）と、上記注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を比較し、一致した場合に、そのときに供給された注目マクロブロック番号データＭＮＯを保持する。そしてステップＳ１６３に移行する。
【０２９８】
ステップＳ１６３では、図５に示したアドレス算出手段１３が、ステップＳ１５５において供給された注目マクロブロック番号ＭＮＯに対応する先頭アドレスデータＡＤ（ｘ、ｙ＋１５）を、逆領域の左下の逆領域内注目マクロブロックの先頭アドレスであるものと判断し、この先頭アドレスデータＡＤ（ｘ、ｙ＋１５）を、テーブル制御手段１２及びＲＡＭ５に夫々供給する。ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、アドレス算出手段１３からの逆領域の左下の逆領域内注目マクロブロックの先頭アドレスＡＤ（ｘ、ｙ＋１５）は、ＲＡＭ５の所定エリアに、アドレスデータＡＤ２（ｘ、ｙ＋１５）として記憶される。そしてステップＳ１６４に移行する。
【０２９９】
ステップＳ１６４では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理データテーブルＴＢＬ１から、注目マクロブロック番号データＭＮＯ及びこの注目マクロブロック番号データＭＮＯに対応する注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を読み出す。これらのデータは、テーブル制御手段１２に供給される。テーブル制御手段１２は、上記アドレスデータＡＤ２（ｘ、ｙ＋１５）と、上記注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を比較し、一致した場合に、そのときに供給された注目マクロブロック番号データＭＮＯを保持する。そしてステップＳ１６５に移行する。
【０３００】
ステップＳ１６５では、図５に示したアドレス算出手段１３が、ステップＳ１５５において供給された注目マクロブロック番号ＭＮＯに対応する先頭アドレスデータＡＤ（ｘ＋１５、ｙ）を、逆領域の右上の逆領域内注目マクロブロックの先頭アドレスであるものと判断し、この先頭アドレスデータＡＤ（ｘ＋１５、ｙ）を、テーブル制御手段１２及びＲＡＭ５に夫々供給する。ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、アドレス算出手段１３からの逆領域の右上の逆領域内注目マクロブロックの先頭アドレスＡＤ（ｘ＋１５、ｙ）は、ＲＡＭ５の所定エリアに、アドレスデータＡＤ３（ｘ＋１５、ｙ）として記憶される。そしてステップＳ１６６に移行する。
【０３０１】
ステップＳ１６６では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理データテーブルＴＢＬ１から、注目マクロブロック番号データＭＮＯ及びこの注目マクロブロック番号データＭＮＯに対応する注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を読み出す。これらのデータは、テーブル制御手段１２に供給される。テーブル制御手段１２は、上記アドレスデータＡＤ３（ｘ＋１５、ｙ）と、上記注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を比較し、一致した場合に、そのときに供給された注目マクロブロック番号データＭＮＯを保持する。そしてステップＳ１６７に移行する。
【０３０２】
ステップＳ１６７では、図５に示したアドレス算出手段１３が、ステップＳ１５５において供給された注目マクロブロック番号ＭＮＯに対応する先頭アドレスデータＡＤ（ｘ＋１５、ｙ＋１５）を、逆領域の右下の逆領域内注目マクロブロックの先頭アドレスであるものと判断し、この先頭アドレスデータＡＤ（ｘ＋１５、ｙ＋１５）を、テーブル制御手段１２及びＲＡＭ５に夫々供給する。ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、アドレス算出手段１３からの逆領域の右下の逆領域内注目マクロブロックの先頭アドレスＡＤ（ｘ＋１５、ｙ＋１５）は、ＲＡＭ５の所定エリアに、アドレスデータＡＤ４（ｘ＋１５、ｙ＋１５）として記憶される。そしてステップＳ１６８に移行する。
【０３０３】
ステップＳ１６８では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理データテーブルＴＢＬ１から、注目マクロブロック番号データＭＮＯ及びこの注目マクロブロック番号データＭＮＯに対応する注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を読み出す。これらのデータは、テーブル制御手段１２に供給される。テーブル制御手段１２は、上記アドレスデータＡＤ４（ｘ＋１５、ｙ＋１５）と、上記注目マクロブロックの先頭アドレスデータＡＤ（ｘ、ｙ）を比較し、一致した場合に、そのときに供給された注目マクロブロック番号データＭＮＯを保持する。そしてステップＳ１６９に移行する。
【０３０４】
ステップＳ１６９では、図５に示したテーブル制御手段１２が、上記４つの逆領域内注目マクロブロック番号データＭＮＯを、ＲＡＭ５に供給する。ＲＡＭ制御手段８は、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、上記４つの逆領域内注目マクロブロック番号データＭＮＯが、ＲＡＭ５に記憶される。そしてステップＳ１７０に移行する。
【０３０５】
ステップＳ１７０では、図５に示したテーブル制御手段１２が、保持していた注目マクロブロック番号データＭＮＯ１を、ＲＡＭ５に供給する。ＲＡＭ制御手段８は、テーブル制御手段１２の制御の元に、ＲＡＭ５に対し、注目マクロブロック番号データＭＮＯを記憶すべきエリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されている注目マクロブロック番号データＭＮＯは、このルーチンにより処理が開始される時点の注目マクロブロック番号データＭＮＯ１の内容となる。そしてこの残差処理用データ生成処理ルーチンを抜け、図７に示したメインルーチンのフローチャートのステップＳ１９８に移行する。
【０３０６】
尚、このルーチンによる処理が開始された時点に、注目マクロブロック番号データＭＮＯを、注目マクロブロック番号データＭＮＯ１として保持しておき、このルーチンによる処理が終了する時点に、処理で用いた注目マクロブロック番号データＭＮＯを、保持していた注目マクロブロック番号データＭＮＯ１に置き換えるのは、図７に示したメインルーチンの処理ループにおいても注目マクロブロック番号データＭＮＯを用いるので、この残差処理用データ生成処理ルーチンにおいて値が変更された注目マクロブロック番号データＭＮＯを、再びこの残差処理用データ生成処理ルーチンによる処理が開始される前の値に戻すためである。
【０３０７】
以上説明した残差処理用データ生成ルーチンによる制御動作が終了すると、図７に示したメインルーチンのステップＳ１９８に移行し、ここで、図５に示した判断手段１７が、現フレームの全マクロブロックについて処理が終了しているものと判断した場合には、ステップＳ２００に移行し、このステップＳ２００において、現及び参照フレームデータセットルーチンによる制御動作を行う。つまり、図５に示したメモリ制御手段１０の制御により、今まで図５に示した現フレームメモリ３２１に記憶されていたフレーム画像データを、参照フレームメモリ３２３に移し、新しいフレーム画像データを、現フレームメモリ３２１に記憶する。このステップＳ２００の処理内容は、ステップＳ５０と同様である。
【０３０８】
Ｎ．図７に示した残差処理ルーチンによる制御動作の説明（図１５〜図１７参照）
【０３０９】
図１５〜図１７は、図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【０３１０】
ステップＳ３３０では、動きベクトルデータサーチルーチンによる処理を行う。そしてステップＳ３０１に移行する。
【０３１１】
ステップＳ３０１では、図５に示したベクトル選択手段１６が、値の近い動きベクトルデータの数Ｖｅｑを“０”にする。そしてステップＳ３０２に移行する。ここでいう「値の近い」とは、処理対象の注目マクロブロックの注目マクロブロック番号データと同じ値の逆領域内注目マクロブロック番号データが登録されている、注目マクロブロックの注目マクロブロック番号データについて登録されている動きベクトルデータの値と、処理対象の注目マクロブロックの回りの注目マクロブロックについて夫々残差処理用データテーブルＴＢＬ１に登録されている動きベクトルデータの値との差が少ないことを意味する。
【０３１２】
ステップＳ３０２では、図５に示したベクトル選択手段１６が、値“１”の動きベクトルデータを示すポインタＰ１を、ＲＡＭ５に供給する。このポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ３０３に移行する。ここで、このポインタＰ１は、動きベクトルデータサーチルーチンであるところのステップＳ３３０において、サーチされた全候補動きベクトルデータを読み出すためのポインタである。
【０３１３】
ステップＳ３０３では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、現フレームの処理対象の注目マクロブロックの注目マクロブロック番号データＭＮＯについて、動きベクトルデータサーチルーチンにおいてサーチされた注目マクロブロックの注目マクロブロック番号データについて、残差処理用データテーブルＴＢＬ１に登録されている動きベクトルデータ、上記現フレームの処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データを全て読み出す。読み出されたこれらのデータは、ベクトル選択手段１６に供給される。そしてステップＳ３０４に移行する。
【０３１４】
ステップＳ３０４では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、左上に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３０５に移行し、「ＮＯ」であればステップＳ３０６に移行する。ここで、左上の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３１５】
ステップＳ３０５では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、左上の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３１６】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３０６に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３０５で読み取られた左上の注目マクロブロックの動きベクトルデータである。
【０３１７】
ステップＳ３０６では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、真上に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３０７に移行し、「ＮＯ」であればステップＳ３０８に移行する。ここで、真上の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３１８】
ステップＳ３０７では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、真上の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３１９】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そして図１６に示すフローチャートのステップＳ３０８に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３０７で読み取られた真上の注目マクロブロックの動きベクトルデータである。
【０３２０】
ステップＳ３０８では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、右上に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３０９に移行し、「ＮＯ」であれば図１６のフローチャートのステップＳ３１０に移行する。ここで、右上の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３２１】
ステップＳ３０９では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、右上の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３２２】
図１６に示すステップＳ３０９の次のステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３１０に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３０９で読み取られた右上の注目マクロブロックの動きベクトルデータである。
【０３２３】
ステップＳ３１０では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、左に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３１１に移行し、「ＮＯ」であればステップＳ３１２に移行する。ここで、左の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３２４】
ステップＳ３１１では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、左の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３２５】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３１２に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３１１で読み取られた左の注目マクロブロックの動きベクトルデータである。
【０３２６】
ステップＳ３１２では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、右に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３１３に移行し、「ＮＯ」であればステップＳ３１４に移行する。ここで、右の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３２７】
ステップＳ３１３では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、右の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３２８】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３１４に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３１３で読み取られた右の注目マクロブロックの動きベクトルデータである。
【０３２９】
ステップＳ３１４では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、左下に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３１５に移行し、「ＮＯ」であればステップＳ３１６に移行する。ここで、左下の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３３０】
ステップＳ３１５では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、左下の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３３１】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３１６に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３１５で読み取られた左下の注目マクロブロックの動きベクトルデータである。
【０３３２】
ステップＳ３１６では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、真下に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３１７に移行し、「ＮＯ」であれば図１７のフローチャートのステップＳ３１８に移行する。ここで、真下の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３３３】
ステップＳ３１７では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、真下の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３３４】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３１８に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３１７で読み取られた真下の注目マクロブロックの動きベクトルデータである。
【０３３５】
ステップＳ３１８では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された回りの注目ブロックの注目マクロブロック番号データＭＮＯの内、右下に対応する注目マクロブロック番号データＭＮＯが有るか否かを判断し、「ＹＥＳ」であればステップＳ３１９に移行し、「ＮＯ」であればステップＳ３２０に移行する。ここで、右下の注目マクロブロックの注目マクロブロック番号データＭＮＯは、その番号が存在する場合にはその値となり、存在しない場合には、“０”となる。これについては、既に図６Ａを参照して説明している。
【０３３６】
ステップＳ３１９では、図５に示した動きベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、右下の注目マクロブロックの注目マクロブロック番号データＭＮＯに対応する、動きベクトルデータを読み出す。読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。そしてステップＳ３５０に移行する。
【０３３７】
ステップＳ３５０では、動きベクトルデータ選択ルーチンによる、動きベクトルデータの選択処理が行われる。そしてステップＳ３２０に移行する。ここで用いられる動きベクトルデータは、上記ポインタＰ１が示す動きベクトルデータと、ステップＳ３１９で読み取られた右下の注目マクロブロックの動きベクトルデータである。
【０３３８】
ステップＳ３２０では、図５に示したベクトル選択手段１６が、動きベクトルデータを示すポインタＰ１に“１”を加算し、“１”が加算された新たなポインタデータＰ１を、ＲＡＭ５に供給する。ＲＡＭ５に供給されたポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ３２１に移行する。
【０３３９】
ステップＳ３２１では、判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、動きベクトルデータを示すポインタデータＰ１を読み出す。読み出されたポインタデータＰ１は、判断手段１７に供給される。判断手段１７は、ＲＡＭ５から供給されたポインタデータＰ１が、“４”より大きいか否かを判断し、「ＹＥＳ」であればステップＳ３２２に移行し、「ＮＯ」であれば再び図１５に示したフローチャートのステップＳ３０３に移行する。
【０３４０】
ステップＳ３２２では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、４つの動きベクトルデータについて夫々求められた、一致した動きベクトルデータの数を示す一致数データＶｅｑを夫々読み出す。読み出された４つの一致数データＶｅｑは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から供給された４つの一致数データＶｅｑの内で、最も値の大きい一致数データＶｅｑを選択し、選択した一致数データＶｅｑを、判断手段１７に供給する。そしてステップＳ３２３に移行する。
【０３４１】
ステップＳ３２３では、図５に示した判断手段１７が、ベクトル選択手段１６からの一致数データＶｅｑが２以上あるか否かを判断し、「ＹＥＳ」であればステップＳ３２５に移行し、「ＮＯ」であればステップＳ３２４に移行する。
【０３４２】
ステップＳ３２４では、図５に示したベクトル選択手段１６が、ステップＳ３２２において選択した、最も値の大きい一致数データＶｅｑに対応する動きベクトルデータを選択する。そしてステップＳ４００に移行する。
【０３４３】
ステップＳ３２５では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、上記一致数データＶｅｑに対応する、差分合計値データＴＶを読み出す。読み出された２つ以上の差分合計値データＴＶは、動きベクトル選択手段１６に供給される。動きベクトル選択手段１６は、ＲＡＭ５から供給された２つ以上の差分合計値データＴＶの内で最も値の小さい差分合計値データＴＶを選択し、選択した差分合計値データＴＶに対応する一致数データＶｅｑを選択し、その一致数データＶｅｑに対応する動きベクトルデータを選択する。そして、ベクトル選択手段１６は、選択した動きベクトルデータを、アドレス算出手段１３に供給する。以上の処理が済むと、ステップＳ４００に移行する。
【０３４４】
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
【０３４５】
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。
【０３４６】
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。尚、このステップＳ５００においては、対象とする参照フレームメモリ３２３内のエリアが、テレスコピックサーチエリアＴＳＡではあるが、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンの処理内容とその処理内容が同じなので、このテレスコピックサーチ処理用データ生成処理ルーチンについての図示及びその説明は、図１３及び図１４に示した残差処理用データ生成処理ルーチンのフローチャート及びその説明で置き換えるものとする。
【０３４７】
Ｏ．図１５に示した動きベクトルデータサーチルーチンによる制御動作の説明（図１８及び図１９参照）
【０３４８】
図１８は、図１５に示したステップＳ３３０の動きベクトルデータサーチルーチンを示すフローチャートである。
【０３４９】
ステップＳ３３１では、図５に示したベクトル選択手段１６が、値“０”の動きベクトルデータを示すポインタＰ１を、ＲＡＭ５に供給する。このポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ３３２に移行する。
【０３５０】
ステップＳ３３２では、図５に示したベクトル選択手段１６が、値“１”のサーチ対象注目マクロブロック番号データｍｎｏを、ＲＡＭ５に供給する。このサーチ対象注目マクロブロック番号データｍｎｏは、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ３３３に移行する。
【０３５１】
ステップＳ３３３では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の所定エリアに記憶されている注目マクロブロック番号データＭＮＯを、ＲＡＭ５の別のエリアに確保されている処理対象注目マクロブロックデータＭＮＯのエリアにコピーする。そしてステップＳ３３４に移行する。
【０３５２】
ステップＳ３３４では、図５に示したベクトル選択手段１６が、値“１”の、逆領域内注目マクロブロックの逆領域内注目マクロブロック番号データを示すポインタＰＰを、ＲＡＭ５に供給する。このポインタデータＰＰは、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ３３５に移行する。
【０３５３】
ステップＳ３３５では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に記憶されているサーチ対象注目マクロブロック番号データｍｎｏ及びポインタデータＰＰを夫々読み出す。読み出されたサーチ対象注目マクロブロック番号データｍｎｏ及びポインタデータＰＰは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から供給されたサーチ対象注目マクロブロック番号データｍｎｏ及びポインタデータＰＰの内容を認識すると、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、上記サーチ対象注目マクロブロック番号データｍｎｏの値と同じ値の注目マクロブロック番号データについて、残差処理用データテーブルＴＢＬ１に登録されている、逆領域内注目マクロブロック番号データの内、ポインタデータＰＰに対応する逆領域内注目マクロブロック番号データを読み出し、この逆領域内注目マクロブロック番号データを、ＲＡＭ５の逆領域内注目マクロブロック番号データＭＮＯ２の記憶エリアに記憶する。そしてステップＳ３３６に移行する。
【０３５４】
ステップＳ３３６では、図５に示したベクトル選択手段１６の制御の元に、ＡＭ制御手段８が、ＲＡＭ５に記憶されている処理対象注目マクロブロック番号データＭＮＯ及び逆領域内注目マクロブロック番号データＭＮＯ２を読み出す。これらのデータは、判断手段１７に供給される。判断手段１７は、上記処理対象注目マクロブロック番号データＭＮＯと、上記逆領域内注目マクロブロック番号データＭＮＯ２とが等しいか否かを判断し、「ＹＥＳ」であればステップＳ３３７に移行し、「ＮＯ」であればステップＳ３３９に移行する。
【０３５５】
ここで、「ＹＥＳ」と判断するということは、処理対象となっている注目マクロブロックの注目マクロブロック番号データの値と同じ値の、逆領域内注目マクロブロック番号データが登録されているので、その逆領域内注目マクロブロック番号データの登録されている注目マクロブロックの注目マクロブロック番号データについて登録されている動きベクトルデータを、テレスコピックサーチエリアを設定する際の候補動きベクトルデータとして用いることができるということである。
【０３５６】
ステップＳ３３７では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、動きベクトルデータを示すポインタデータＰ１を読み出す。ＲＡＭ５から読み出されたポインタデータＰ１は、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ポインタデータＰ１に“１”を加算し、“１”を加算したポインタデータＰ１を、ＲＡＭ５に供給する。そして、同時に、ベクトル選択手段１６は、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給し、ベクトル選択手段１６からのポインタデータＰ１を、ＲＡＭ５のポインタデータＰ１の記憶エリア、並びに、最大ポインタデータＰｍａｘの記憶エリアに夫々記憶する。そしてステップＳ３３８に移行する。
【０３５７】
尚、ＲＡＭ５の記憶エリア上のＰｍａｘの記憶エリアにＰ１の値を記憶するのは、図１７のステップＳ３２１等において、全ての候補動きベクトルデータについて処理を終了したか否かを判断するためである。
【０３５８】
ステップＳ３３８では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、上記サーチ対象注目マクロブロック番号データｍｎｏの値と同じ値の注目マクロブロック番号データについて、残差処理用データテーブルＴＢＬ１に登録されている、動きベクトルデータを読み出し、この動きベクトルデータを、ＲＡＭ５のベクトル選択処理に用いるエリアに記憶する。そしてステップＳ３３９に移行する。
【０３５９】
ステップＳ３３９では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に記憶されているポインタデータＰＰを読み出す。ＲＡＭ５から読み出されたポインタデータＰＰは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から読み出されたポインタデータＰＰに“１”を加算し、“１”を加算したポインタデータＰＰを、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、読み出し／書き込み制御信号を供給し、ベクトル選択手段１６からのポインタデータＰＰを、ＲＡＭ５のポインタデータＰＰの記憶エリアに記憶する。そしてステップＳ３４０に移行する。
【０３６０】
ステップＳ３４０では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に記憶されているポインタデータＰＰを読み出す。ＲＡＭ５から読み出されたポインタデータＰＰは、判断手段１７に供給される。判断手段１７は、ＲＡＭ５から読み出されたポインタデータＰＰが、“４”より大きいか否かを判断し、「ＹＥＳ」であればステップＳ３４１に移行し、「ＮＯ」であれば再びステップＳ３３５に移行する。既に説明したように、１つの注目マクロブロックの注目マクロブロック番号データについて登録されている、逆領域内注目マクロブロック番号データは、４つである。よって、上記判断は、１つの注目マクロブロックの注目マクロブロック番号データについて、ＲＡＭ５の残差処理用データテーブルＴＢＬ１に登録されている、逆領域内注目マクロブロック番号データを全て処理するためのものである。
【０３６１】
ステップＳ３４１では、図５に示したベクトル選択手段１６の制御の元に、らＭ制御手段８は、ＲＡＭ５に記憶されているサーチ対象注目マクロブロック番号データｍｎｏを読み出す。ＲＡＭ５から読み出されたサーチ対象注目マクロブロック番号データｍｎｏは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から読み出されたサーチ対象注目マクロブロック番号データｍｎｏに“１”を加算し、この“１”を加算したサーチ対象注目マクロブロック番号データｍｎｏを、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対して、読み出し／書き込み制御信号を供給し、ベクトル選択手段１６からのサーチ対象注目マクロブロック番号データｍｎｏを、ＲＡＭ５の対応エリアに記憶する。そしてステップＳ３４２に移行する。
【０３６２】
ステップＳ３４２では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に記憶されているサーチ対象注目マクロブロック番号データｍｎｏ及び注目マクロブロック番号データの最大値データＭＮＯｍａｘを読み出す。これらのデータは、判断手段１７に供給される。判断手段１７は、ＲＡＭ５から読み出された上記サーチ対象注目マクロブロック番号データｍｎｏが、注目マクロブロック番号データの最大値データＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればこの動きベクトル選択ルーチンを抜け、図１５に示した残差処理ルーチンのステップＳ３０１に移行し、「ＮＯ」であれば再びステップＳ３３４に移行する。
【０３６３】
図１９は、以上説明した動きベクトルデータサーチルーチンにより得られ、ＲＡＭ５にテーブル形式で記憶される動きベクトルデータの例を示している。この図１９に示す全ての動きベクトルデータの内から１つの動きベクトルデータが、図１７に示したフローチャートのステップＳ３２２〜Ｓ３２５において選択される。
【０３６４】
この図１９において、ＭＶｘ（ｘ、ｙ）・・・・は、上記動きベクトルデータサーチルーチンによる処理によってサーチされた候補動きベクトルデータである。以下、上記テーブルに保持されている動きベクトルデータを、「候補動きベクトルデータ」と称する。
【０３６５】
ＴＶｘ・・・・は、上記動きベクトルデータＭＶｘ（ｘ、ｙ）と、上記処理対象の注目マクロブロック番号データが示す注目マクロブロックを夫々囲む回りの注目マクロブロックの注目マクロブロック番号データに対応して、残差処理用データテーブルに登録されている、動きベクトルデータとの差分の合計値である。
【０３６６】
Ｖｅｑｘ・・・・は、上記動きベクトルデータＭＶ１ｘ（ｘ、ｙ）４と、上記処理対象の注目マクロブロック番号データが示す注目マクロブロックを夫々囲む回りの注目マクロブロックの注目マクロブロック番号データに対応して、残差処理用データテーブルに登録されている、動きベクトルデータとの差分の少ない差分合計値データＴＶｘの数、即ち、上述した一致数データである。
【０３６７】
本例においては、上記動きベクトルデータサーチルーチンによりサーチした全ての動きベクトルデータから１つの動きベクトルデータを選択するにあたり、上記動きベクトルデータが選択された注目マクロブロック番号データが示す注目マクロブロックと、この注目マクロブロックの回りの多数の注目マクロブロックとの一致性を夫々評価する。この評価は、上記動きベクトルデータの登録されている注目マクロブロックについて全て行う。そして、上記動きベクトルデータについて、夫々評価値を得、これらの評価値の内で最も評価の良い、即ち、最も回りの注目マクロブロックの動きベクトルデータに最も一致する動きベクトルデータを選択する。そして、この動きベクトルデータを、上述したように、微小なテレスコピックサーチエリアＴＳＡの設定に用いるのである。この動きベクトル選択処理については、動きベクトルデータ選択ルーチンのフローチャートを用いて後に詳述する。
【０３６８】
Ｐ．図１５〜図１７に示した動きベクトルデータ選択ルーチンによる制御動作の説明（図１９〜図２１参照）
【０３６９】
図１９〜図２１は、図１５〜図１７に夫々示した残差処理ルーチンのステップＳ３５０の動きベクトルデータ選択ルーチンによる制御動作を説明するためのフローチャートである。説明の便宜上、このルーチンを動きベクトルデータ選択ルーチンと称しているが、最終的な動きベクトルデータの選択は、既に説明した図１７のフローチャートのステップＳ３２２〜Ｓ３２５において行われる。上記ステップＳ３２２〜Ｓ３２５においては、以下に説明するＲＡＭの内容に基いて説明しなかったが、これは、図１５〜図１７においてフローチャートとして示した残差処理ルーチンが、これから説明する動きベクトルデータ選択ルーチンよりも階層が上だからである。
【０３７０】
以下に説明する動きベクトルデータ選択ルーチンにおいては、図１７のフローチャートのステップＳ３２２〜Ｓ３２５において動きベクトルデータを選択ためのデータが生成される。また、図１５〜図１７においては、上記動きベクトルデータ選択ルーチンとしてのステップＳ３５０が多数示されているが、処理内容は同じであり、単に、比較対象であるところの回りの注目マクロブロックが異なるだけである。
【０３７１】
ステップＳ３５１では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５上に形成されたテーブル上に登録されている候補動きベクトルデータの内、ポインタＰ１に対応する動きベクトルデータＭＶ（ｘ、ｙ）を、読み出す。ＲＡＭ５から読み出された動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ３５２に移行する。
【０３７２】
ステップＳ３５２では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｘを、水平動きベクトルデータＭＶｈ１として保持する。そしてステップＳ３５３に移行する。
【０３７３】
ステップＳ３５３では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｙを、垂直動きベクトルデータＭＶｖ１として保持する。そしてステップＳ３５４に移行する。
【０３７４】
ステップＳ３５４では、図５に示したベクトル選択手段１６が、図１５〜図１７に示したフローチャートのステップＳ３０５、Ｓ３０７、Ｓ３０９、Ｓ３１１、Ｓ３１３、Ｓ３１５、Ｓ３１７若しくはＳ３１９において既に読み取っている、当該注目マクロブロックの左上、真上、右上、左、右、左下、真下若しくは右下の注目マクロブロックの動きベクトルデータＭＶｘを、水平方向動きベクトルデータＭＶｈ２として保持する。そしてステップＳ３５５に移行する。
【０３７５】
ステップＳ３５５では、図５に示したベクトル選択手段１６が、図１５〜図１７に示したフローチャートのステップＳ３０５、Ｓ３０７、Ｓ３０９、Ｓ３１１、Ｓ３１３、Ｓ３１５、Ｓ３１７若しくはＳ３１９において既に読み取っている、処理対象の注目マクロブロックの左上、真上、右上、左、右、左下、真下若しくは右上の注目マクロブロックの動きベクトルデータＭＶｙを、垂直方向動きベクトルデータＭＶｖ２として保持する。そしてステップＳ３５６に移行する。
【０３７６】
ステップＳ３５６では、図５に示したベクトル選択手段１６が、動きベクトルデータＭＶｈ２から動きベクトルデータＭＶｈ１を減算し、その減算結果を絶対値化し、水平方向動きベクトル差分データＨＶを得る。そしてステップＳ３５６に移行する。
【０３７７】
ステップＳ３５７では、図５に示したベクトル選択手段１６が、動きベクトルデータＭＶｖ２から動きベクトルデータＭＶｖ１を減算し、その減算結果を絶対値化し、垂直方向動きベクトル差分データＶＶを得る。そして図２０に示すフローチャートのステップＳ３５８に移行する。
【０３７８】
ステップＳ３５８では、図５に示したベクトル選択手段１６が、ステップＳ３５６において求めた水平方向動きベクトル差分データＨＶと、ステップＳ５７において求めた垂直方向動きベクトル差分データＶＶとを加算し、差分合計値データＴＶを得、この差分合計値データＴＶを、図５に示した判断手段１７に供給する。そしてステップＳ３５９に移行する。
【０３７９】
ステップＳ３５９では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“０”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６０に移行する。
【０３８０】
ステップＳ３６０では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“１”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６１に移行する。
【０３８１】
ステップＳ３６１では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“２”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６２に移行する。
【０３８２】
ステップＳ３６２では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“３”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６３に移行する。
【０３８３】
ステップＳ３６３では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“４”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６４に移行する。
【０３８４】
ステップＳ３６４では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“５”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６５に移行する。
【０３８５】
ステップＳ３６５では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“６”か否かを判断し、「ＹＥＳ」であれば図２１に示すフローチャートのステップＳ３６８に移行し、「ＮＯ」であれば図２１に示すフローチャートのステップＳ３６６に移行する。
【０３８６】
ステップＳ３６６では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“７”か否かを判断し、「ＹＥＳ」であればステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６７に移行する。
【０３８７】
ステップＳ３６７では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“８”か否かを判断し、「ＹＥＳ」であればステップＳ３６８に移行し、「ＮＯ」であればステップＳ３６９に移行する。
【０３８８】
ステップ３６８では、図５に示した判断手段１７が、差分合計値データＴＶの値が、“０”から“８”の範囲であることを示すデータを供給する。これにより、ベクトル選択手段１６は、一致数データＶｅｑに“１”を加算する。そしてステップＳ３６９に移行する。
【０３８９】
ステップＳ３６９では、図５に示したベクトル選択手段１６が、ステップＳ３６８において得た一致数データＶｅｑ及びステップＳ３５８において得た差分合計値データＴＶを、ポインタＰ１が示す動きベクトルデータＭＶ（ｘ、ｙ）と共に、ＲＡＭ５に供給する。また、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、上記一致数データＶｅｑ、差分合計値データＴＶ及び動きベクトルデータＭＶ（ｘ、ｙ）は、ＲＡＭ５の上記テーブルの記憶エリアに記憶される。そしてこの動きベクトル選択ルーチンを抜け、図１５から図１７に示したフローチャートの各ステップＳ３０６、Ｓ３０８、Ｓ３１０、Ｓ３１２、Ｓ３１４、Ｓ３１６、Ｓ３１８若しくはＳ３２０に移行する。
【０３９０】
説明が前後するが、ＲＡＭ５のテーブルに登録された候補動きベクトルデータは、図１５〜図１７に示したフローチャートの、ステップＳ３０４〜Ｓ３２０までの一連の処理により、処理対象の注目マクロブロックの回りの注目マクロブロックの動きベクトルデータと比較され、回りの動きベクトルデータとの一致性が評価される。この評価の結果が、図１９に示したＲＡＭの内容である。
【０３９１】
つまり、図１７に示したフローチャートのステップＳ３２１において「ＹＥＳ」と判断されたときは、候補動きベクトルデータと、処理対象の注目マクロブロックの回りの注目マクロブロックの動きベクトルデータとの比較による評価が終了している。よって、図１９に示すように、ＲＡＭ５には、候補動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・、これらの候補動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・に夫々対応する差分合計値データＴＶｎ、・・・・及び一致数データＶｅｑｎ、・・・・が夫々記憶される。
【０３９２】
既に説明したように、ベクトル選択手段１６は、このＲＡＭ５に記憶されている一致数データＶｅｑｎ、・・・・の内、最も値の大きい一致数データＶｅｑｎ、・・・・を選択し、選択した一致数データＶｅｑｎ、・・・・に対応する動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・を選択する。
【０３９３】
このとき、最も値の大きい一致数データＶｅｑが２以上あった場合には、ベクトル選択手段１６は、差分合計値データＴＶ１〜ＴＶ４の内、最も値の小さい差分合計値データＴＶを選択し、その差分合計値データＴＶに対応する動きベクトルデータＭＶ（ｘ、ｙ）を選択する。
【０３９４】
以上説明した処理により、処理しようとしている注目マクロブロックに対応するテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータが得られた後は、テレスコピックサーチエリアＴＳＡの設定処理が行われる。
【０３９５】
Ｑ．テレスコピックサーチエリアＴＳＡにおけるテレスコピックマクロブロックのパターンと、テレスコピックマクロブロックテーブルの説明（図２２参照）
【０３９６】
図２２Ａは、上記動きベクトル選択ルーチンにおいて選択された動きベクトルを用いて、どのようにしてテレスコピックサーチエリアＴＳＡを設定するのかを説明するための説明図、図２２Ｂは、設定されたテレスコピックサーチエリアＴＳＡ内の全テレスコピックマクロブロックのテレスコピックマクロブロック番号データＴＭＮＯ、このテレスコピックマクロブロック番号データＴＭＮＯに対応するテレスコピックマクロブロックの先頭アドレスデータＴａｄ（ｘ、ｙ）からなるテレスコピックマクロブロックデータテーブルＴＢＬ３の一例を示す説明図である。
【０３９７】
図２２Ａから説明する。上記動きベクトル選択ルーチンにおいて動きベクトルデータが選択された注目マクロブロックと同じ位置の、参照フレームメモリ３２１における参照マクロブロックの左上角を起点とし、選択された動きベクトルデータが示す位置のアドレスを得、そのアドレスを、参照マクロブロックの左上角のアドレスとする。この参照マクロブロックが、図２２Ａにおいて斜線で示すマクロブロックである。この参照フレームメモリ３２１上の斜線で示す参照マクロブロックが、テレスコピックサーチエリアＴＳＡの中心となるように、テレスコピックサーチエリアＴＳＡを設定する。設定したテレスコピックサーチエリアＴＳＡ内にテレスコピックマクロブロックを順次設定する場合、垂直方向においては、破線のブロックＢＶ１で示す位置が、テレスコピックマクロブロックの設定の境界となり、水平方向においては、破線のブロックＢＨ１で示す位置が、テレスコピックマクロブロックの設定の境界となる。テレスコピックサーチエリアＴＳＡの設定については、項目Ｒにおいてより詳細に説明する。
【０３９８】
次に図２２Ｂを参照して、上述のように設定されたテレスコピックサーチエリアＴＳＡ内に順次設定される、テレスコピックマクロブロックのテレスコピックマクロブロック番号データＴＭＮＯと、テレスコピックマクロブロックの先頭アドレスデータＴＡＤ（ｘ、ｙ）からなる、テレスコピックマクロブロックテーブルについて説明する。
【０３９９】
図２２Ｂに示すように、テレスコピックマクロブロックテーブルＴＢＬ３は、テレスコピックマクロブロック番号データ及びテレスコピックマクロブロックの先頭アドレスデータＴＡＤ（ｘ、ｙ）からなり、動き検出において、差分絶対値和演算を行うときの、アドレス発生回路３３３のアドレス制御に用いられるテーブルである。尚、テレスコピックマクロブロック番号データＴＭＮＯは、エディタとしてのテレスコピックマクロブロックテーブルＴＢＬ３が、ＲＯＭ４に記憶される時点において、既に、テレスコピックマクロブロックテーブルＴＢＬ３に記憶されている。テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックの数は、予め分かっているからである。
【０４００】
このテレスコピックマクロブロックテーブルＴＢＬ３は、図５に示したＲＯＭ４にエディタとして記憶されており、電源投入時に、ＲＯＭ４から読み出されてＲＡＭ５に記憶される。ＲＡＭ５に記憶されたテレスコピックマクロブロックテーブルＴＢＬ３のテレスコピックマクロブロック番号データＴＭＮＯの記憶エリアには、参照フレームとされたフレーム画像データ上に設定されるテレスコピックサーチエリアＴＳＡ内において付与される、テレスコピックマクロブロック番号データＴＭＮＯが記憶され、テレスコピックマクロブロックの先頭アドレスデータＴＡＤ（ｘ、ｙ）の記憶エリアには、そのテレスコピックマクロブロック番号データＴＭＮＯの値が示す、テレスコピックマクロブロックの先頭アドレスデータＴＡＤ（ｘ、ｙ）が記憶される。テレスコピックサーチエリアＴＳＡは、処理対象の注目マクロブロックが変わる都度、変更されるので、上記テレスコピックマクロブロックテーブルＴＢＬ３の内容は、その都度変更される。
【０４０１】
Ｒ．図１７に示したテレスコピックサーチエリア設定処理ルーチンによる制御動作の説明（図２３及び図２４参照）
【０４０２】
図２３及び図２４は、図１７に示したフローチャートのステップＳ４００のテレスコピックサーチエリア設定処理ルーチンによる制御動作を説明するためのフローチャートである。
【０４０３】
ステップＳ４０１では、図５に示したアドレス算出手段１３が、ベクトル算出手段１４から供給された動きベクトルデータが示す位置のマクロブロックのアドレスデータａｄ（ｘ、ｙ）を求める。そしてステップＳ４０２に移行する。
【０４０４】
ステップＳ４０２では、図５に示したアドレス算出手段１３の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から水平方向の距離データＴｘを読み出す。ＲＡＭ５から読み出された水平方向の距離データＴｘは、アドレス算出手段１３に供給される。アドレス算出手段１３は、上記マクロブロックの水平方向のアドレスデータａｄｘから上記水平方向の距離データＴｙを減算し、テレスコピックサーチエリアＴＳＡの左上角の水平アドレスデータＴａｄｈ１を求める。そしてステップＳ４０３に移行する。
【０４０５】
ステップＳ４０３では、図５に示したアドレス算出手段１３の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から垂直方向の距離データＴｙを読み出す。ＲＡＭ５から読み出された垂直方向の距離データＴｙは、アドレス算出手段１３に供給される。アドレス算出手段１３は、上記マクロブロックの垂直方向のアドレスデータａｄｙから上記垂直方向の距離データＴｙを減算し、テレスコピックサーチエリアＴＳＡの左上角の垂直アドレスデータＴａｄｖ１を求める。そしてステップＳ４０４に移行する。
【０４０６】
ここで、上記距離データＴｘは、既に説明したように、マクロブロックの左右の境界から夫々テレスコピックサーチエリアＴＳＡの境界までの画素を単位とした水平方向の距離であり、距離データＴｙは、既に説明したように、マクロブロックの上下の境界から夫々テレスコピックサーチエリアＴＳＡの境界までの画素を単位とした垂直方向の距離である。
【０４０７】
ステップＳ４０４では、図５に示したアドレス算出手段１３が、上記マクロブロックの水平方向のアドレスデータａｄｘに上記水平方向の距離データＴｙの２倍の値を加算し、テレスコピックサーチエリアＴＳＡの右上角の水平アドレスデータＴａｄｈ２を求め、この水平アドレスデータＴａｄｈ２を、判断手段１７に供給する。そしてステップＳ４０５に移行する。
【０４０８】
ステップＳ４０５では、図５に示したアドレス算出手段１３が、ステップＳ４０３において得られた垂直アドレスデータＴａｄｖ１を、テレスコピックサーチエリアＴＳＡの右上角の垂直アドレスデータＴａｄｖ２とすることにより、テレスコピックサーチエリアＴＳＡの右上角の垂直アドレスデータＴａｄｖ２を求める。そしてステップＳ４０６に移行する。
【０４０９】
ステップＳ４０６では、図５に示したアドレス算出手段１３が、ステップＳ４０２において得られた水平アドレスデータＴａｄｈ１を、テレスコピックサーチエリアＴＳＡの左下角の水平アドレスデータＴａｄｈ３とすることにより、テレスコピックサーチエリアＴＳＡの左下角の水平アドレスデータＴａｄｈ３を求める。そしてステップＳ４０７に移行する。
【０４１０】
ステップＳ４０７では、図５に示したアドレス算出手段１３が、上記マクロブロックの垂直方向のアドレスデータａｄｙに上記垂直方向の距離データＴｙの２倍の値を加算し、テレスコピックサーチエリアＴＳＡの左下角の垂直アドレスデータＴａｄｖ３を求め、この垂直アドレスデータＴａｄｖ３を、判断手段１７に供給する。そしてステップＳ４０８に移行する。
【０４１１】
ステップＳ４０８では、図５に示したアドレス算出手段１３が、ステップＳ４０４において得られた水平アドレスデータＴａｄｈ２を、テレスコピックサーチエリアＴＳＡの右下角の水平アドレスデータＴａｄｈ４とすることにより、テレスコピックサーチエリアＴＳＡの右下角の水平アドレスデータＴａｄｈ４を求める。そしてステップＳ４０９に移行する。
【０４１２】
ステップＳ４０９では、図５に示したアドレス算出手段１３が、ステップＳ４０７において得られた垂直アドレスデータＴａｄｖ３を、テレスコピックサーチエリアＴＳＡの右下角の垂直アドレスデータＴａｄｖ４とすることにより、テレスコピックサーチエリアＴＳＡの右下角の垂直アドレスデータＴａｄｖ４を求める。そしてステップＳ４１０に移行する。
【０４１３】
ステップＳ４１０では、図５に示したアドレス算出手段１３が、上記テレスコピックサーチエリアＴＳＡの左上角の水平及び垂直アドレスＴａｄｈ１及びＴａｄｖ１を、テレスコピックサーチエリアＴＳＡの先頭アドレスデータＴＳＳａｄ（ｘ、ｙ）として、また、上記テレスコピックサーチエリアＴＳＡの右下角の水平及び垂直アドレスデータＴａｄｈ４及びＴａｄｖ４を、テレスコピックサーチエリアＴＳＡの最後尾アドレスデータＴＳＥａｄ（ｘ、ｙ）として、夫々ＲＡＭ５に供給する。そして、ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、上記テレスコピックサーチエリアＴＳＡの先頭アドレスデータＴＳＳａｄ（ｘ、ｙ）及び最後尾アドレスデータＴＳＥａｄ（ｘ、ｙ）は、ＲＡＭ５の所定のエリアに記憶される。そしてステップＳ４１１に移行する。
【０４１４】
ステップＳ４１１では、図５に示したアドレス算出手段１３が、テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックの水平アドレスデータＴａｄｘを、上記テレスコピックサーチエリアＴＳＡの左上角の水平アドレスデータＴａｄｈ１とする。そしてステップＳ４１１に移行する。
【０４１５】
ステップＳ４１２では、図５に示したアドレス算出手段１３が、テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックの垂直アドレスデータＴａｄｙを、上記テレスコピックサーチエリアＴＳＡの左上角の垂直アドレスデータＴａｄｖ１とする。そしてステップＳ４１３に移行する。
【０４１６】
ステップＳ４１３では、図５に示したアドレス算出手段１３が、ステップＳ４１１及びＳ４１２において得られた、テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックの水平及び垂直アドレスデータＴａｄ（ｘ、ｙ）をＲＡＭ５に供給する。ＲＡＭ制御手段８は、アドレス算出手段１３の制御の元に、ＲＡＭ５に、テレスコピックマクロブロックテーブルＴＢＬ３の記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、アドレス算出手段１３からのテレスコピックマクロブロックの水平及び垂直アドレスデータＴａｄ（ｘ、ｙ）は、ＲＡＭ５のテレスコピックマクロブロックテーブルＴＢＬ３に登録される。そしてステップＳ４１４に移行する。
【０４１７】
ステップＳ４１４では、図５に示したアドレス算出手段１３が、テレスコピックマクロブロックの水平アドレスデータＴａｄｘに“１”を加算し、その結果得られた新たな水平アドレスデータＴａｄｘを、判断手段１７に供給する。そしてステップＳ４１５に移行する。この処理は、水平アドレスの歩進である。
【０４１８】
ステップＳ４１５では、図５に示した判断手段１７が、アドレス算出手段１３から予め供給されていた水平アドレスデータＴａｄｈ２から“３２”を減算し、アドレス算出手段１３からの水平アドレスデータＴａｄｘが、上記減算結果よりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ４１６に移行し、「ＮＯ」であれば再びステップＳ４１３に移行する。このステップＳ４１５においては、テレスコピックサーチエリアＴＳＡ内に設定するテレスコピックマクロブロックが、図２２に示した水平方向の境界ＢＨ１を越えないようにするための処理が行われる。
【０４１９】
ステップＳ４１６では、図５に示したアドレス算出手段１３が、テレスコピックマクロブロックの水平アドレスデータＴａｄｘを、テレスコピックサーチエリアＴＳＡの左上角の水平アドレスデータＴａｄｈ１とする。そしてステップＳ４１７に移行する。
【０４２０】
ステップＳ４１７では、図５に示したアドレス算出手段１３が、テレスコピックマクロブロックの垂直アドレスデータＴａｄｙに“１”を加算し、その結果得られた新たな水平アドレスデータＴａｄｙを、判断手段１７に供給する。そしてステップＳ４１８に移行する。この処理は、垂直アドレスの歩進である。
【０４２１】
ステップＳ４１８では、図５に示した判断手段１７が、アドレス算出手段１３から予め供給されていた垂直アドレスデータＴａｄｖ３から“３２”を減算し、アドレス算出手段１３からの垂直アドレスデータＴａｄｙが、上記減算結果よりも大きいか否かを判断し、「ＹＥＳ」であればこのテレスコピックサーチエリア設定処理ルーチンを抜け、図１７に示したテレスコピックサーチ処理ルーチンとしてのステップＳ４５０に移行し、「ＮＯ」であれば再びステップＳ４１３に移行する。このステップＳ４１８においては、テレスコピックサーチエリアＴＳＡ内に設定するテレスコピックマクロブロックが、図２２に示した垂直方向の境界ＢＶ１を越えないようにするための処理が行われる。
【０４２２】
以上説明したテレスコピックサーチエリア設定処理ルーチンによる処理が済むと、ＲＡＭ５のテレスコピックマクロブロックテーブルＴＢＬ３には、参照フレームメモリ３２３内に設定されたテレスコピックサーチエリアＴＳＡ内の全テレスコピックマクロブロックの先頭アドレスが登録される。
【０４２３】
Ｓ．図１７に示したテレスコピックサーチ処理ルーチンによる制御動作の説明（図２５及び図２６参照）
【０４２４】
図２５及び図２６は、図１７に示した残差処理ルーチンのフローチャートのステップＳ４５０のテレスコピックサーチ処理ルーチンによる制御動作を説明するためのフローチャートである。
【０４２５】
ステップＳ４５１では、図５に示した判断手段１７が、値が“１”のテレスコピックマクロブロック番号データＴＭＮＯを、ＲＡＭ５に供給する。この値が“１”のテレスコピックマクロブロック番号データＴＭＮＯは、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の記憶空間上のテレスコピックマクロブロック番号データＴＭＮＯの記憶用の領域に記憶される。そしてステップＳ４５２に移行する。
【０４２６】
ステップＳ４５２では、図５に示したテーブル制御回路１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロックの個数データＭ（ｆ）を読み出し、その値と同じ注目マクロブロック番号データＭＮＯに対応する、現フレームメモリ３２１内の注目マクロブロックの先頭の水平及び垂直アドレスデータＡＤ（ｘ、ｙ）を、ＲＡＭ５に保持されている残差処理用データテーブルＴＢＬ１から読み出す。残差処理用データテーブルＴＢＬ１から読み出された水平及び垂直アドレスデータＡＤ（ｘ、ｙ）は、エリア設定手段１５に供給される。そしてステップＳ４５３に移行する。
【０４２７】
ステップＳ４５３では、図５に示したエリア設定手段１５が、参照フレームメモリ３２３の記憶空間上に設定すべき、テレスコピックサーチエリアＴＳＡの先頭の水平及び垂直アドレスデータＴＳＳａｄ（ｘ、ｙ）、並びに最後尾の水平及び垂直アドレスデータＳＥａｄ（ｘ、ｙ）を算出する。算出された参照フレームメモリ３２３の記憶空間上におけるテレスコピックサーチエリアＴＳＡの先頭の水平及び垂直アドレスデータＴＳＳａｄ（ｘ、ｙ）、並びに最後尾の水平及び垂直アドレスデータＴＳＥａｄ（ｘ、ｙ）は、図５に示したアドレス算出手段１３に供給される。そしてステップＳ４５４に移行する。
【０４２８】
ステップＳ４５４では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の水平及び垂直アドレスデータＨＡＤ及びＶＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤ及びＶＡＤの内容が、ＲＡＭ５から読み出された水平アドレスデータＡＤ（ｘ、ｙ）となる。そしてステップＳ４５５に移行する。
【０４２９】
ステップＳ４５５では、図５に示したアドレス算出手段１３が、エリア設定手段１５から供給された、参照フレームメモリ３２３の記憶空間上におけるテレスコピックサーチエリアＴＳＡの先頭の水平及び垂直アドレスデータＴＳＳａｄ（ｘ、ｙ）、並びに最後尾の水平及び垂直アドレスデータＴＳＥａｄ（ｘ、ｙ）に基いて、このテレスコピックサーチエリアＴＳＡ内の全テレスコピックマクロブロックの先頭アドレスデータＴａｄ（ｘ、ｙ）を算出する。算出されたテレスコピックサーチエリアＴＳＡ内の全テレスコピックマクロブロックＴＳＡの先頭アドレスデータＴａｄ（ｘ、ｙ）は、ＲＡＭ５に供給される。ＲＡＭ制御手段８は、ＲＡＭ５に対し、上述したテレスコピックマクロブロックテーブルＴＢＬ３の記憶エリアを示すアドレスデータを供給する。これによって、ＲＡＭ５に保持されているテレスコピックマクロブロックテーブルＴＢＬ３に、上記テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックの先頭アドレスデータＴａｄ（ｘ、ｙ）が順次登録される。そしてステップＳ４５６に移行する。
【０４３０】
ステップＳ４５６では、図５に示したメモリ制御手段１０が、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを、入出力ポート６を介して現フレームメモリ３２１に供給する。そして図２６に示すフローチャートのステップＳ４５７に移行する。
【０４３１】
ステップＳ４５７では、図５に示したアドレス発生制御手段１１の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５のテレスコピックマクロブロックテーブルＴＢＬ３に登録されている、テレスコピックマクロブロック番号データＴＭＮＯに対応する、テレスコピックマクロブロックの先頭アドレスデータＴａｄ（ｘ、ｙ）を読み出す。ＲＡＭ５から読み出されたテレスコピックマクロブロックの先頭アドレスデータＴａｄ（ｘ、ｙ）は、入出力ポート６を介してアドレス発生回路３３に供給される。そしてステップＳ４５８に移行する。
【０４３２】
アドレス発生回路３３３においては、ロードされた水平及び垂直アドレスデータＴａｄ（ｘ、ｙ）から順次水平及び垂直アドレスデータを発生し、発生した水平及び垂直アドレスデータを、参照フレームメモリ３２３に供給する。これによって、参照フレームメモリ３２３から、テレスコピックマクロブロックの画素データが、順次読み出される。アドレス発生回路３３３における水平及び垂直アドレスデータの生成は、図１０及び図１１に示したフローチャートを参照して説明している。
【０４３３】
ステップＳ４５８では、図５に示したメモリ制御手段１０が、水平アドレスデータＨＡＤに“１”を加算する。そしてステップＳ４５９に移行する。
【０４３４】
ステップＳ４５９では、図５に示した判断回路１７が、水平アドレスデータＨＡＤが“１６”よりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ４６０に移行し、「ＮＯ」であればステップＳ４６４に移行する。
【０４３５】
ステップＳ４６０では、図５に示したＲＡＭ制御手段８が、ＲＡＭ５に対し、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの保持位置を示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５の記憶空間上の水平アドレスデータＨＡＤの内容が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から読み出された水平アドレスデータＡＤｘとなる。そしてステップＳ４６１に移行する。
【０４３６】
ステップＳ４６１では、図５に示したメモリ制御手段１０が、垂直アドレスデータＶＡＤに“１”を加算する。そしてステップＳ４６２に移行する。
【０４３７】
ステップＳ４６２では、図５に示した判断回路１７が、垂直アドレスデータＶＡＤが“１６”よりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ４６３に移行し、「ＮＯ」であればステップＳ４６４に移行する。
【０４３８】
ステップＳ４６３では、図５に示した判断手段１７が、ＲＡＭ制御手段８によってＲＡＭ５から読み出されたテレスコピックマクロブロック番号データＴＭＮＯに、“１”を加算する。この“１”が加算されたテレスコピックマクロブロック番号データＴＭＮＯは、ＲＡＭ５に供給され、ＲＡＭ制御手段８からの書き込み／読み出し制御信号によって再びＲＡＭ５に記憶される。そしてステップＳ５６５に移行する。
【０４３９】
ステップＳ４６４では、図５に示したメモリ制御手段１０が、入出力ポート６を介して現フレームメモリ３２１に、水平及び垂直アドレスデータＨＡＤ及びＶＡＤを供給する。そして再びステップＳ４５８に移行する。
【０４４０】
ステップＳ４６５では、図５に示した判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、テレスコピックマクロブロック番号データＴＭＮＯ及びその最大値データＴＭＮＯｍａｘの記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５からは、テレスコピックマクロブロック番号データＴＭＮＯと、テレスコピックマクロブロック番号の最大値データＴＭＮＯｍａｘが読み出される。判断手段１７は、テレスコピックマクロブロック番号データＴＭＮＯが、テレスコピックマクロブロック番号の最大値データＴＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればこのテレスコピックサーチルーチンを抜け、図１７に示した残差処理ルーチンのフローチャートのステップＳ５００のテレスコピックサーチ処理用データ生成処理ルーチンに移行し、「ＮＯ」であれば再び図２５に示すフローチャートのステップＳ４５５に移行する。
【０４４１】
以上の説明から分かるように、以上の処理が繰り返されることによって、１つの注目マクロブロック内の画素データから、この注目マクロブロックに対応する参照フレームメモリ３２３のテレスコピックサーチエリアＴＳＡの、１つのテレスコピックマクロブロック内の画素データが、順次、図５に示した加算回路３２４において減算され、この減算出力が、絶対値回路３２５で絶対値化され、この絶対値化された差分データが、加算回路３２６及びラッチ回路３２７において累積され、その結果差分絶対値和データとしてメモリ３２８に記憶される。この処理は、１つの注目マクロブロックについて、参照フレームメモリ３２１のテレスコピックサーチエリアＴＳＡの全テレスコピックマクロブロックについて行われる。そして、最小値検出回路３２９により、メモリ３２８に蓄えられたテレスコピックサーチエリアＴＳＡ内の全テレスコピックマクロブロックに対応する差分絶対値和データの内で、最も値の小さい差分絶対値和データが選択される。そして、動きベクトル検出回路３３０においては、選択された差分絶対値和データと、この差分絶対値和データを得ることのできたテレスコピックマクロブロックのアドレスと、注目マクロブロックのアドレスとに基いて動きベクトルデータが得られる。
【０４４２】
ここで、図２５及び図２６に示すテレスコピックサーチ処理ルーチンは、図７に示したフローチャートを見ると分かるように、ステップ５９９において、注目マクロブロック番号データＭＮＯが、注目マクロブロック番号データの最大値ＭＮＯｍａｘよりも大きくない間は、ステップＳ６０１に示すように、注目マクロブロック番号データＭＮＯに“１”が加算された後に、再びステップＳ３００、即ち、図２５及び図２６に示すテレスコピックサーチ処理ルーチンに移行する。つまり、現フレームメモリ３２１の全ての注目マクロブロックについて、テレスコピックサーチ処理により動き検出が行われる。
【０４４３】
以上の処理が済むと、図１７に示すテレスコピックサーチ処理用データ生成処理ルーチンＳ５００に移行し、ここで、次に画面更新を行ったときに用いるテレスコピックサーチ処理用データが生成される。ルーチンの名称は異なるものの、このテレスコピックサーチ用データ生成処理ルーチンによる処理内容は、図７に示したフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンにおける処理内容と同じで、しかも、使用するテーブルは、図７に示した残差処理用データ生成処理ルーチンの処理で用いられた残差処理テーブルＴＢＬ１である。従って、詳しいフローチャートの内容については、図１３〜図１５と同じものであるとし、その説明を省略する。
【０４４４】
〔第１の実施の形態における効果〕
以上説明したように、本形態においては、処理の開始時若しくはシーンチェンジの際は、現フレームメモリ３２１の全注目マクロブロックと、参照フレームメモリ３２３に設定した比較的広い領域のサーチエリアＳＡ内の全参照マクロブロックとでフルサーチブロックマッチング処理による動き検出を行い、各注目マクロブロックの位置を起点とし、各注目マクロブロックについて求められた動きベクトルデータＭＶ（ｘ、ｙ）と大きさが同じで方向が逆の動きベクトルデータの示す位置のマクロブロックを包括する逆領域を求め、この逆領域内に含まれる４つの注目マクロブロックの注目マクロブロック番号データＭＮＯを、上記各注目マクロブロックの対応データとして、残差処理用データテーブルＴＢＬ１に登録しておき、画面が更新され、次の処理が開始されると、処理対象の注目マクロブロックの注目マクロブロック番号データと同じ値の逆領域内注目マクロブロック番号データが、上記残差処理用データテーブルＴＢＬ１に登録されている、注目マクロブロックの注目マクロブロック番号データＭＮＯについて登録されている動きベクトルデータを残差処理用データテーブルＴＢＬ１から、候補動きベクトルデータとして全て読み出し、読み出した候補動きベクトルデータから、最も最適な動きベクトルデータを選択し、参照フレームメモリ３２３内に、上記選択した動きベクトルデータが示す参照フレームメモリ３２３内の位置のマクロブロックを含む微小なテレスコピックサーチエリアＴＳＡを設定し、この後、処理対象である注目マクロブロックと、上記参照フレームメモリ３２３内のテレスコピックサーチエリアＴＳＡ内全のテレスコピックマクロブロックとで動き検出を行うようにした。
【０４４５】
よって、物体が等速度で直線状に移動している場合においては、次のフレーム画像データについて動き検出を行う前に、次のフレーム画像データにおける物体の位置を予測しておき、その予測に基いて選んだ微小なテレスコピックサーチエリアを用いて次のフレーム画像データについて動き検出処理を行うことにより、広いサーチエリアを連続的に用いて行う従来の動き検出と比較し、フレーム単位のデータの処理時間を大幅に短縮できると共に、予測位置に微小なテレスコピックサーチエリアを設定して処理を行うことができるので、より正確な動き検出を行うことができ、よって、現フレームのマクロブロックデータと、前フレームのマクロブロックデータとで差分をとって符号化する場合においては、前フレーム内から最も正しい予測マクロブロックを動き補償により抽出することができるので、符号量をも減らし、効率の良いデータの伝送や記録を行うことができるといった絶大なる効果を得ることができる。
【０４４６】
また、本形態においては、候補動きベクトルデータから１つの動きベクトルデータを選択する場合には、上記候補動きベクトルデータと、処理対象であるところの注目マクロブロックの回りの注目マクロブロックの動きベクトルデータとを比較し、最も回りの動きベクトルデータに値の近い候補動きベクトルデータを選択するので、処理対象の注目マクロブロックに対する処理を、回りの注目マクロブロックの動きベクトルデータを参考にして行うことができ、よって、より精度の高い動き検出を行うことができる。
【０４４７】
［第２の実施の形態］
【０４４８】
Ｔ．図１７に示した動きベクトルデータ選択ルーチンによる制御動作の説明（図２７及び図２８参照）
【０４４９】
図２７及び図２８は、図７に示した残差処理ルーチン３５０による制御動作の他の例（第２の実施の形態）を説明するためのフローチャートである。第１の実施の形態と第２の実施の形態においては、この残差処理ルーチンによる制御動作が異なる。第２の実施の形態においては、候補動きベクトルデータからテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータを選択する際、各候補動きベクトルデータの値と同じ値の動きベクトルデータが、残差処理用データテーブルＴＢＬにどのくらい登録されているかを夫々検出し、最も多く登録されている候補動きベクトルデータを選択する。
【０４５０】
尚、この第２の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データの登録は必要がない。これらのデータはこの第２の実施の形態においては使用されないからである。
【０４５１】
ステップＳ３００では、動きベクトルデータサーチルーチンによる処理を行う。そしてステップＳ１０００に移行する。このステップＳ３００の動きベクトルデータサーチルーチンは、図１８に示した動きベクトルデータサーチルーチンと同じものである。
【０４５２】
ステップＳ１０００では、図５に示したベクトル選択手段１６が、値“０”のデータをＲＡＭ５に供給する。そして、ベクトル選択手段１６のの制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、一致した動きベクトルの数を示す一致数データＶｅｑの記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されている一致数データＶｅｑの値が、“０”にされる。そしてステップＳ１００１に移行する。
【０４５３】
ステップＳ１００１では、図５に示したベクトル選択手段１６が、値“１”のデータをＲＡＭ５に供給する。そして、ベクトル選択手段１６のの制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５のテーブルに登録されている、候補動きベクトルデータを示すポインタＰ１の記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されているポインタＰ１の値が、“１”にされる。そしてステップＳ１００２に移行する。
【０４５４】
ステップＳ１００２では、図５に示したベクトル選択手段１６が、値“１”のデータをＲＡＭ５に供給する。そして、ベクトル選択手段１６のの制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、残差処理用データテーブルのアドレスポインタＰ２の記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されているポインタＰ２の値が、“１”にされる。そしてステップＳ１００３に移行する。
【０４５５】
ステップＳ１００３では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、ポインタＰ１に対応する動きベクトルデータＭＶ（ｘ、ｙ）を、読み出す。ＲＡＭ５から読み出された動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ１００４に移行する。
【０４５６】
ステップＳ１００４では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｘを、水平動きベクトルデータＭＶｈ１として保持する。そしてステップＳ１００５に移行する。
【０４５７】
ステップＳ１００５では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｙを、垂直動きベクトルデータＭＶｖ１として保持する。そしてステップＳ１００６に移行する。
【０４５８】
ステップＳ１００６では、図５に示したテーブル制御手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、ポインタＰ２に対応する動きベクトルデータＭＶ（ｘ、ｙ）を、読み出す。ＲＡＭ５から読み出された動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ１００７に移行する。
【０４５９】
ステップＳ１００７では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｘを、水平動きベクトルデータＭＶｈ２として保持する。そしてステップＳ１００８に移行する。
【０４６０】
ステップＳ１００８では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｙを、垂直動きベクトルデータＭＶｖ２として保持する。そしてステップＳ１００９に移行する。
【０４６１】
ステップＳ１００９では、図５に示したベクトル選択手段１６が、動きベクトルデータＭＶｈ２から動きベクトルデータＭＶｈ１を減算し、その減算結果を絶対値化し、水平方向動きベクトル差分データＨＶを得る。そしてステップＳ１０１０に移行する。
【０４６２】
ステップＳ１０１０では、図５に示したベクトル選択手段１６が、動きベクトルデータＭＶｖ２から動きベクトルデータＭＶｖ１を減算し、その減算結果を絶対値化し、垂直方向動きベクトル差分データＶＶを得る。そしてステップＳ１０１１に移行する。
【０４６３】
ステップＳ１０１１では、図５に示したベクトル選択手段１６が、ステップＳ１００９において求めた水平方向動きベクトル差分データＨＶと、ステップＳ１０１０において求めた垂直方向動きベクトル差分データＶＶとを加算し、差分合計値データＴＶを得、この差分合計値データＴＶを、図５に示した判断手段１７に供給する。そしてステップＳ１０１２に移行する。
【０４６４】
ステップＳ１０１２では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“０”か否かを判断し、「ＹＥＳ」であれば図２８に示すフローチャートのステップＳ１０１３に移行し、「ＮＯ」であれば図２８に示すフローチャートのステップＳ１０１４に移行する。
【０４６５】
ステップ１０１３では、図５に示した判断手段１７が、差分合計値データＴＶの値が、“０”であることを示すデータを供給する。これにより、ベクトル選択手段１６は、一致数データＶｅｑに“１”を加算する。そしてステップＳ１０１４に移行する。
【０４６６】
ステップＳ１０１４では、図５に示したベクトル選択手段１６が、残差処理用データテーブルＴＢＬ１のアドレスポインタＰ２に“１”を加算し、その結果得られたアドレスポインタＰ２を、判断手段１７に供給する。そしてステップＳ１０１５に移行する。
【０４６７】
ステップＳ１０１５では、図５に示した判断手段１７が、ベクトル選択手段１６からのアドレスポインタデータＰ２が、アドレスポインタの最大値データＰ２ｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１０１６に移行し、「ＮＯ」であれば再び図２７に示したフローチャートのステップＳ１００６に移行する。
【０４６８】
ステップＳ１０１６では、図５に示したベクトル選択手段１６が、ステップＳ１０１３において得た一致数データＶｅｑ及びステップＳ１０１１において得た差分合計値データＴＶを、ポインタＰ１が示す動きベクトルデータＭＶ（ｘ、ｙ）と共に、ＲＡＭ５に供給する。また、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、上記一致数データＶｅｑ、差分合計値データＴＶ及び動きベクトルデータＭＶ（ｘ、ｙ）は、ＲＡＭ５の所定のエリアに記憶される。そしてステップｓ１０１７に移行する。
【０４６９】
ステップＳ１０１７では、図５に示したベクトル選択手段１６が、ポインタＰ１に“１”を加算し、その結果得られたアドレスポインタＰ１を、判断手段１７に供給する。そしてステップＳ１０１８に移行する。
【０４７０】
ステップＳ１０１８では、図５に示した判断手段１７が、ベクトル選択手段１６からのポインタデータＰ１が、ポインタの最大値データＰｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１０１９に移行し、「ＮＯ」であれば再び図２７に示したフローチャートのステップＳ１００２に移行する。
【０４７１】
ステップＳ１０１９では、図５に示した判断手段１７が、ベクトル選択手段１６からの一致数データＶｅｑが２以上あるか否かを判断し、「ＹＥＳ」であればステップＳ１０２０に移行し、「ＮＯ」であればステップＳ１０２１に移行する。
【０４７２】
ステップＳ１０２０では、図５に示したベクトル選択手段１６が、最も値の大きい一致数データＶｅｑに対応する動きベクトルデータを選択する。そしてステップＳ４００に移行する。
【０４７３】
ステップＳ１０２１では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、上記一致数データＶｅｑに対応する、差分合計値データＴＶを読み出す。読み出された２つ以上の差分合計値データＴＶは、動きベクトル選択手段１６に供給される。動きベクトル選択手段１６は、ＲＡＭ５から供給された２つ以上の差分合計値データＴＶの内で最も値の小さい差分合計値データＴＶを選択し、選択した差分合計値データＴＶに対応する一致数データＶｅｑを選択し、その一致数データＶｅｑに対応する動きベクトルデータを選択する。そして、ベクトル選択手段１６は、選択した動きベクトルデータを、アドレス算出手段１３に供給する。以上の処理が済むと、ステップＳ４００に移行する。
【０４７４】
ステップＳ４００では、テレスコピックサーチエリア設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。このステップＳ４００のテレスコピックサーチエリア設定処理ルーチンは、図２３及び図２４に示したテレスコピックサーチエリア設定処理ルーチンと同じものである。
【０４７５】
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。このステップＳ４５０のテレスコピックサーチ処理ルーチンは、図２５及び図２６に示したテレスコピックサーチ処理ルーチンと同じものである。
【０４７６】
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。尚、このステップＳ５００においては、対象とする参照フレームメモリ３２３内のエリアが、テレスコピックサーチエリアＴＳＡではあるが、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンの処理内容とその処理内容が同じなので、このテレスコピックサーチ処理用データ生成処理ルーチンについての図示及びその説明は、図１３及び図１４に示した残差処理用データ生成処理ルーチンのフローチャート及びその説明で置き換えるものとする。
【０４７７】
説明が前後するが、候補動きベクトルデータは、図２７及び図２８に示したフローチャートの、ステップＳ１００２〜Ｓ１０２１までの一連の処理により、全注目マクロブロックの動きベクトルデータ中にどのくらい同じ値の動きベクトルデータがあるか否かが検出され、当該動きベクトルデータの、フレーム内における一致性が評価される。この評価の結果が、図１９に示したＲＡＭの内容である。
【０４７８】
つまり、図１７に示したフローチャートのステップＳ１０１８において「ＹＥＳ」と判断されたときは、候補動きベクトルデータと、当該フレーム内の全注目マクロブロックの動きベクトルデータとの比較による評価が終了している。よって、図１９に示すように、ＲＡＭ５には、候補動きベクトルデータＭＶｎ、・・・・、これらの候補動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・に夫々対応する差分合計値データＴＶｎ、・・・・及び一致数データＶｅｑｎ、・・・・が夫々記憶される。
【０４７９】
既に説明したように、ベクトル選択手段１６は、このＲＡＭ５に記憶されている一致数データＶｅｑｎ、・・・・の内、最も値の大きい一致数データＶｅｑｎ、・・・・を選択し、選択した一致数データＶｅｑｎ、・・・・に対応する動きベクトルデータＭＶｎ、・・・・を選択する。
【０４８０】
このとき、最も値の大きい一致数データＶｅｑが２以上あった場合には、ベクトル選択手段１６は、差分合計値データＴＶの内、最も値の小さい差分合計値データＴＶを選択し、その差分合計値データＴＶに対応する動きベクトルデータＭＶ（ｘ、ｙ）を選択する。
【０４８１】
以上説明した処理により、処理しようとしている注目マクロブロックに対応するテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータが得られた後は、テレスコピックサーチエリアＴＳＡの設定処理が行われる。
【０４８２】
〔第２の実施の形態における効果〕
以上説明したように、本形態においては、候補動きベクトルデータから１つの動きベクトルデータを選択する際、各動きベクトルデータが、フレーム内の全注目マクロブロックの動きベクトルデータといくつ一致するかを検出し、フレーム内に同じ値の動きベクトルデータが最も多く含まれる動きベクトルデータを選択するので、フレーム内の他の注目マクロブロックの動きベクトルデータと最も関連性の高い動きベクトルデータを選ぶことができる。よって、このように選択した動きベクトルデータを用いてテレスコピックサーチエリアＴＳＡを設定し、このテレスコピックサーチエリアＴＳＡを用いて動き検出処理を行って得られた動きベクトルデータは、非常に正確なものとなり、この動きベクトルデータを用いて動き補償を行い、動き補償を行ったマクロブロックと、符号化すべきマクロブロックとで差分を得た場合、そのデータ量を最も少なくすることができ、符号化効率を大幅に向上させることができるといった絶大なる効果がある。以上の効果は、第１の実施の形態における動きベクトル選択に関する効果以外の効果に加えて得られることのできる効果である。
【０４８３】
［第３の実施の形態］
【０４８４】
Ｕ．図７に示した残差処理ルーチンによる制御動作の概念の説明（図２９参照）
【０４８５】
図２９は、図７に示した残差処理ルーチンの他の例（第３の実施の形態）による制御動作の概念を説明するための説明図である。この第３の実施の形態においては、１つの注目マクロブロックについてサーチされた候補動きベクトルから、テレスコピックサーチエリアＴＳＡを設定するのに最も最適な動きベクトルデータを選択する際、これから行う動き検出処理をｎステップとしたときに、ｎ−２ステップにおいて生成された残差処理用データテーブルＴＢＬ１に登録されている、同じ注目マクロブロック番号データＭＮＯについてサーチされた候補動きベクトルデータを用いる。ここで、「用いる」とは、選択のために過去の動きベクトルデータに基いて、候補動きベクトルデータから、テレスコピックサーチエリアＴＳＡを選択するのに最適なものを選択することを意味する。過去の動きベクトルデータを参照するためには、既に説明した動きベクトルデータサーチルーチンによる処理によってサーチされた、全候補動きベクトルデータをも、残差処理用データテーブルＴＢＬ１に登録し、残差処理用データテーブルＴＢＬ１をバッファリングしなければならない。
尚、この第３の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データの登録は必要がない。これらのデータはこの第３の実施の形態においては使用されないからである。
図２９においては、動き検出の処理と、この処理によって残差処理用データテーブルＴＢＬ１を生成する処理と、その残差処理用データテーブルＴＢＬ１をバッファリングする処理と、過去にバッファリングされた残差処理用データテーブルＴＢＬ１を用いて動きベクトルデータを選択する処理の概要について示している。バッファリングされた過去の残差処理用データテーブルＴＢＬ１をどのように用いて、どのように動きベクトルデータを選択するのかについては、項目Ｖにおいて、図３０〜図３２に示すフローチャートを用いて後に詳述する。
【０４８６】
また、この第３の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データを登録する必要がない。
【０４８７】
図２９Ａは、時間軸上に並んでいる処理対象としてのフレーム画像データｎ−１、ｎ、ｎ＋１、ｎ＋２、ｎ＋３を示している。フレーム画像データｎを現フレームとした場合、ｎ−１は１フレーム後の過去、ｎ＋１は１フレーム後の未来、ｎ＋２は２フレーム後の未来、ｎ＋３は３フレーム後の未来の画像となる。
【０４８８】
図２９Ｂは、上記図２９Ａに示すフレーム画像データｎ−１〜ｎ＋３を用いた動き検出処理を示している。
【０４８９】
図２９Ｃは、上記図２９Ｂに示す動き検出処理において得られる（若しくは更新される）残差処理用データテーブルＴＢＬ１を示し、同じＲＡＭ５の同じエリアに記憶されるものであるが、時間軸上においてその内容が更新される。従って、フレーム画像データｎ−１及びｎとで動き検出処理が行われた結果得られる残差処理用データテーブルＴＢＬ１には、符号Ｔ１を付し、フレーム画像データｎ及びｎ＋１とで動き検出処理が行われた結果得られる残差処理用データテーブルＴＢＬ１には、符号Ｔ２を付し、フレーム画像データｎ＋１及びｎ＋２とで動き検出処理が行われた結果得られる残差処理用データテーブルＴＢＬ１には、符号Ｔ３を付し、フレーム画像データｎ＋２及びｎ＋３とで動き検出処理が行われた結果得られる残差処理用データテーブルＴＢＬ１には、符号Ｔ４を付す。尚、上記符号Ｔ１〜Ｔ４に夫々添えられている括弧内の符号は、図５に示したＲＡＭ５内のエリアを示す。
【０４９０】
つまり、動き検出において得られた残差処理用データテーブルＴＢＬは、どの時点で得られたものであっても、必ずＲＡＭ５のエリアＡｒ１に記憶される。以下の説明では、これらの残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）を、説明の便宜上、「メイン残差処理用データテーブル」と称することとする。
【０４９１】
尚、この図２９Ｃの各メイン残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）を示す実線のブロックを起点として、夫々図２９Ｂの各動き検出処理を示す破線の楕円を実線の矢印で示されているように、各動き検出処理において得られたメイン残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ４）は、夫々次の動き検出処理においてテレスコピックサーチエリアＴＳＡを設定するために用いられる。
【０４９２】
図２９Ｄは、図２９Ｃに示す残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）の生成後に行われるバッファリング処理を示している。このバッファリング処理により、各処理において生成された残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）が、図５に示したＲＡＭ５に記憶される。
【０４９３】
図２９Ｅは、図２９Ｄに示すバッファリング処理により、ＲＡＭ５に記憶された残差処理用データテーブルを夫々示す。残差処理用データテーブルＢＴ１（Ａｒ２）は、図２９Ｃに示す残差処理用データテーブルＴ１（Ａｒ１）が、バッファリング処理により、ＲＡＭ５に記憶されたものであり、符号ＢＴ１に添えられた括弧内の符号Ａｒ２は、ＲＡＭ５におけるエリアを示す。この残差処理用データテーブルＴＢ１（Ａｒ２）は、図中、太い破線の矢印で示すように、フレーム画像データｎ＋１及びｎ＋２とで動き検出を行う際、テレスコピックサーチエリアＴＳＡを設定する動きベクトルデータを選択するために参照される。
【０４９４】
残差処理用データテーブルＢＴ２（Ａｒ３）は、図２９Ｃに示す残差処理用データテーブルＴ２（Ａｒ１）が、バッファリング処理により、ＲＡＭ５に記憶されたものであり、符号ＢＴ２に添えられた括弧内の符号Ａｒ３は、ＲＡＭ５におけるエリアを示す。この残差処理用データテーブルＴＢ２（Ａｒ３）は、図中、太い破線の矢印で示すように、フレーム画像データｎ＋２及びｎ＋３とで動き検出を行う際、テレスコピックサーチエリアＴＳＡを設定する動きベクトルデータを選択するために参照される。
【０４９５】
残差処理用データテーブルＢＴ３（Ａｒ２）は、図２９Ｃに示す残差処理用データテーブルＴ３（Ａｒ１）が、バッファリング処理により、ＲＡＭ５に記憶されたものであり、符号ＢＴ３に添えられた括弧内の符号Ａｒ２は、ＲＡＭ５におけるエリアを示す。この残差処理用データテーブルＴＢ３（Ａｒ２）は、図示せずも、フレーム画像データｎ＋３及びｎ＋４とで動き検出を行う際、テレスコピックサーチエリアＴＳＡを設定する動きベクトルデータを選択するために参照される。
【０４９６】
残差処理用データテーブルＢＴ４（Ａｒ３）は、図２９Ｃに示す残差処理用データテーブルＴ４（Ａｒ１）が、バッファリング処理により、ＲＡＭ５に記憶されたものであり、符号ＢＴ４に添えられた括弧内の符号Ａｒ３は、ＲＡＭ５におけるエリアを示す。この残差処理用データテーブルＴＢ４（Ａｒ３）は、図示せずも、フレーム画像データｎ＋４及びｎ＋５とで動き検出を行う際、テレスコピックサーチエリアＴＳＡを設定する動きベクトルデータを選択するために参照される。
【０４９７】
以下の説明では、これらの残差処理用データテーブルＴＢ１（Ａｒ２）、ＴＢ２（Ａｒ３）、ＴＢ３（Ａｒ２）、ＴＢ４（Ａｒ３）を、説明の便宜上、「バッファリング残差処理用データテーブル」と称することとする。
【０４９８】
以上の説明から明かなように、メイン残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）は、動き検出処理において用いるテレスコピックサーチエリアＴＳＡの設定で用いる候補となる、候補動きベクトルデータを参照するためのものであり、上記バッファリング残差処理用データテーブルＴＢ１（Ａｒ２）、ＴＢ２（Ａｒ３）、ＴＢ３（Ａｒ２）、ＴＢ４（Ａｒ３）は、上記候補動きベクトルデータを選択するため、処理対象となっている注目マクロブロックの注目マクロブロック番号データＭＮＯと同じ番号の注目マクロブロック番号データに対応して登録されている、候補動きベクトルデータを参照するためのものである。
【０４９９】
また、上記メイン残差処理用データテーブルＴ１（Ａｒ１）〜Ｔ４（Ａｒ１）は、ＲＡＭ５のエリアＡｒ１に常に記憶されるが、上記バッファリング残差処理用データテーブルＴＢ１（Ａｒ２）、ＴＢ２（Ａｒ３）、ＴＢ３（Ａｒ２）、ＴＢ４（Ａｒ３）は、ＲＡＭ５のエリアＡｒ２及びＡｒ３に交互に記憶される。図５に示したＲＡＭ制御手段８は、ＲＡＭ５の上記エリアＡｒ２及びＡｒ３の内、何れか一方のエリアＡｒ２若しくはＡｒ３をアクセスしなければならない。そこで、ＲＡＭ制御手段８が、どのエリアＡｒ２若しくはＡｒ３をアクセスしなければならないかを示すメモリポインタデータＭＰを用いる。このメモリポインタデータＭＰは、既に説明したように、ＲＯＭ４にパラメータデータＰＡＬとして記憶され、電源投入時にＲＡＭ５の所定エリアにロードされるデータである。このメモリポインタデータＭＰを用いた処理は、次の項目Ｖにおいて説明する。
【０５００】
以下、どのようにして選択処理が行われるかについて、項目Ｖにおいて詳細に説明する。
【０５０１】
Ｖ．図７に示した残差処理ルーチンによる制御動作の説明（図３０〜図３２参照）
【０５０２】
図３０〜図３２は、図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作の他の例（第３の実施の形態）を説明するためのフローチャートである。即ち、図３０〜図３２は、図２９を参照して説明した動きベクトル選択処理において、どのようにしてバッファリング残差処理用データテーブルＴＢ１（Ａｒ２）、ＴＢ２（Ａｒ３）、ＴＢ３（Ａｒ２）、ＴＢ４（Ａｒ３）が用いられるかについてより詳細に説明するためのフローチャートである。以下の説明では、説明の便宜上、メイン残差処理用データテーブルに符号ＴＢＬ１を付し、バッファリング残差処理用データテーブルに符号ＴＢＬ２を付す。
【０５０３】
ステップＳ１１００では、動きベクトルデータサーチルーチンによる処理が行われる。そしてステップＳ１１０１に移行する。このステップＳ１１００の動きベクトルデータサーチルーチンは、図１８に示した動きベクトルデータサーチルーチンと同じものである。
【０５０４】
ステップＳ１１０１では、図５に示したベクトル選択手段１６が、値の近い動きベクトルデータの数Ｖｅｑを“０”にする。そしてステップＳ３０２に移行する。ここでいう「値の近い」とは、処理対象の注目マクロブロックについてメイン残差処理用データテーブルＴＢＬ１に登録されている、候補動きベクトルデータの値と、処理対象の注目マクロブロックの回りの注目マクロブロックについて夫々残差処理用データテーブルＴＢＬ１に登録されている動きベクトルデータの値との差が少ないことを意味する。
【０５０５】
ステップＳ１１０２では、図５に示したベクトル選択手段１６が、値“１”の動きベクトルデータを示すポインタＰ１を、ＲＡＭ５に供給する。このポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１１０２に移行する。ここで、このポインタＰ１は、メイン残差処理用データテーブルＴＢＬ１において、１つの注目マクロブロック番号データＭＮＯについて夫々候補動きベクトルデータを読み出すためのポインタである。
【０５０６】
ステップＳ１１０３では、図５に示したベクトル選択手段１６が、値“１”の動きベクトルデータを示すポインタＰ３を、ＲＡＭ５に供給する。このポインタデータＰ３は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１１０４に移行する。ここで、このポインタＰ３は、バッファリング残差処理用データテーブルＴＢＬ２において、１つの注目マクロブロック番号データＭＮＯについて夫々４つずつ登録されている、候補動きベクトルデータを読み出すためのポインタである。
【０５０７】
ステップＳ１１０４では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、メモリエリアポインタデータＭＰを読み出す。ＲＡＭ５から読み出されたメモリエリアポインタデータＭＰは、ＲＡＭ制御手段８に供給される。そしてステップＳ１１０５に移行する。
【０５０８】
ステップＳ１１０５では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、現フレームの注目マクロブロックの注目マクロブロック番号データＭＮＯと同じ番号の注目マクロブロックに対応する動きベクトルデータを、メイン残差処理用データテーブルＴＢＬ１から読み出す。読み出されたこれらのデータは、ベクトル選択手段１６に供給される。そしてステップＳ１１０６に移行する。
【０５０９】
ステップＳ１１０６では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、現フレームの注目マクロブロックの注目マクロブロック番号データＭＮＯと同じ番号の注目マクロブロックに対応する、動きベクトルデータを、バッファリング残差処理用データテーブルＴＢＬ２から読み出す。読み出されたこれらのデータは、ベクトル選択手段１６に供給される。そしてステップＳ１１０７に移行する。
【０５１０】
ステップＳ１１０７では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、ポインタＰ１に対応する動きベクトルデータＭＶ（ｘ、ｙ）を、メイン残差処理用データテーブルＴＢＬ１から読み出し、更に、ポインタＰ３に対応する動きベクトルデータＭＶ（ｘ、ｙ）を、バッファリング残差処理用データテーブルＴＢＬ２から読み出す。ＲＡＭ５から読み出された２つの動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ１１０８に移行する。
【０５１１】
以下、説明を分かり易くするために、ＲＡＭ５のメイン残差処理用データテーブルＴＢＬ１から読み出された動きベクトルデータＭＶ（ｘ、ｙ）を、「メイン側動きベクトルデータ」と称し、ＲＡＭ５のバッファリング残差処理用データテーブルＴＢＬ２から読み出された動きベクトルデータＭＶ（ｘ、ｙ）を、「バッファリング側動きベクトルデータ」と称することとする。
【０５１２】
また、既に図２９を参照して説明したように、バッファリング残差処理用データテーブルＴＢＬ２は、これから行われる動き検出処理よりも１ステップ前のものと、２ステップ前のものとがあり、これら２つのバッファリング残差処理用データテーブルＴＢＬ２は、ＲＡＭ５の２つのエリアに交互に記憶されるので、ＲＡＭ制御手段８は、これから行う動きベクトル選択処理で２つのバッファリング残差処理用データテーブルＴＢＬ２の内、どちらのバッファリング残差処理用データテーブルＴＢＬ２を用いるかを選択しなければならない。その選択のために用いられるデータが、ステップＳ１１０４においてテーブル制御手段１２が、ＲＡＭ制御手段８に読み取らせたメモリポインタデータＭＰである。このメモリポインタデータＭＰは、後に説明するステップＳ１１２４において内容が書き換えられる。
【０５１３】
ステップＳ１１０８では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給されたメイン側動きベクトルデータＭＶｘを、水平方向のメイン側動きベクトルデータＭＶｈ１として保持する。そしてステップＳ１１０９に移行する。
【０５１４】
ステップＳ１１０９では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給されたメイン側動きベクトルデータＭＶｙを、垂直方向のメイン側動きベクトルデータＭＶｖ１として保持する。そしてステップＳ１１１０に移行する。
【０５１５】
ステップＳ１１１０では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給されたバッファリング側動きベクトルデータＭＶｘを、水平方向のバッファリング側動きベクトルデータＭＶｈ２として保持する。そしてステップＳ１１１１に移行する。
【０５１６】
ステップＳ１１１１では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給されたバッファリング側動きベクトルデータＭＶｙを、垂直方向のバッファリング側動きベクトルデータＭＶｖ２として保持する。そしてステップＳ１１１２に移行する。
【０５１７】
ステップＳ１１１２では、図５に示したベクトル選択手段１６が、バッファリング側動きベクトルデータＭＶｈ２から、メイン側動きベクトルデータＭＶｈ１を減算し、その減算結果を絶対値化し、水平方向動きベクトル差分データＨＶを得る。そしてステップＳ１１１３に移行する。
【０５１８】
ステップＳ１１１３では、図５に示したベクトル選択手段１６が、バッファリング側動きベクトルデータＭＶｖ２から、メイン側動きベクトルデータＭＶｖ１を減算し、その減算結果を絶対値化し、垂直方向動きベクトル差分データＶＶを得る。そしてステップＳ１１１４に移行する。
【０５１９】
ステップＳ１１１４では、図５に示したベクトル選択手段１６が、ステップＳ１１１２において求めた水平方向動きベクトル差分データＨＶと、ステップＳ１１１３において求めた垂直方向動きベクトル差分データＶＶとを加算し、差分合計値データＴＶを得、この差分合計値データＴＶを、図５に示した判断手段１７に供給する。そしてステップＳ１１１５に移行する。
【０５２０】
ステップＳ１１１５では、図５に示した判断手段１７が、ベクトル選択手段１６から供給された差分合計値データＴＶが、“０”か否かを判断し、「ＹＥＳ」であればステップＳ１１１６に移行し、「ＮＯ」であればステップＳ１１１７に移行する。
【０５２１】
ステップ１１１６では、図５に示した判断手段１７が、差分合計値データＴＶの値が、“０”であることを示すデータを供給する。これにより、ベクトル選択手段１６は、一致数データＶｅｑに“１”を加算する。そしてステップＳ１１１７に移行する。
【０５２２】
ステップＳ１１１７では、図５に示したベクトル選択手段１６が、ステップＳ１１１６において得た一致数データＶｅｑ及びステップＳ１１１４において得た差分合計値データＴＶを、ポインタＰ１が示すメイン側動きベクトルデータＭＶ（ｘ、ｙ）と共に、ＲＡＭ５に供給する。また、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これにより、上記一致数データＶｅｑ、差分合計値データＴＶ及びメイン側動きベクトルデータＭＶ（ｘ、ｙ）は、ＲＡＭ５の所定のエリアに記憶される。
【０５２３】
ステップＳ１１１８では、図５に示したベクトル選択手段１６が、メイン側動きベクトルデータを示すポインタＰ１に“１”を加算し、“１”が加算された新たなポインタデータＰ１を、ＲＡＭ５に供給する。ＲＡＭ５に供給されたポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１１１９に移行する。
【０５２４】
ステップＳ１１１９では、図５に示したベクトル選択手段１６が、バッファリング側動きベクトルデータを示すポインタＰ３に“１”を加算し、“１”が加算された新たなポインタデータＰ３を、ＲＡＭ５に供給する。ＲＡＭ５に供給されたポインタデータＰ３は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１１２０に移行する。
【０５２５】
ステップＳ１１２０では、図５に示した判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、メイン側動きベクトルデータを示すポインタデータＰ１及びバッファリング側動きベクトルデータを示すポインタデータＰ３を夫々読み出す。読み出されたポインタデータＰ１及びＰ３は、夫々判断手段１７に供給される。判断手段１７は、ＲＡＭ５から供給されたポインタデータＰ１及びＰ３が、何れも“４”より大きいか否かを判断し、「ＹＥＳ」であればステップＳ１１２２に移行し、「ＮＯ」であれば再び図３０に示したフローチャートのステップＳ１１０４に移行する。
【０５２６】
ステップＳ１１２１では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、候補動きベクトルデータについて夫々求められた、一致した動きベクトルデータの数を示す一致数データＶｅｑを夫々読み出す。読み出された一致数データＶｅｑは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から供給された一致数データＶｅｑの内で、最も値の大きい一致数データＶｅｑを選択し、選択した一致数データＶｅｑを、判断手段１７に供給する。そしてステップＳ１１２２に移行する。
【０５２７】
ステップＳ１１２２では、図５に示した判断手段１７が、ベクトル選択手段１６からの一致数データＶｅｑが２以上あるか否かを判断し、「ＹＥＳ」であればステップＳ１１２３に移行し、「ＮＯ」であればステップＳ１１２４に移行する。
【０５２８】
ステップＳ１１２３では、図５に示したベクトル選択手段１６が、ステップＳ１１２２において選択した、最も値の大きい一致数データＶｅｑに対応するメイン側動きベクトルデータを選択する。そしてステップＳ４００に移行する。
【０５２９】
ステップＳ１１２４では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、上記一致数データＶｅｑに対応する、差分合計値データＴＶを読み出す。読み出された２つ以上の差分合計値データＴＶは、動きベクトル選択手段１６に供給される。動きベクトル選択手段１６は、ＲＡＭ５から供給された２つ以上の差分合計値データＴＶの内で最も値の小さい差分合計値データＴＶを選択し、選択した差分合計値データＴＶに対応する一致数データＶｅｑを選択し、その一致数データＶｅｑに対応するメイン側動きベクトルデータを選択する。そして、ベクトル選択手段１６は、選択したメイン側動きベクトルデータを、アドレス算出手段１３に供給する。以上の処理が済むと、ステップＳ４００に移行する。
【０５３０】
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
【０５３１】
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。
【０５３２】
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。
【０５３３】
説明が前後するが、候補動きベクトルデータとしてサーチされた、各メイン側動きベクトルデータは、図３０〜図３２に示したフローチャートの各ステップの一連の処理により、過去のバッファリング残差処理用データテーブルＴＢＬ２の、注目マクロブロックについて登録されている、候補動きベクトルデータとしてサーチされた、バッファリング側動きベクトルデータと比較され、過去の注目マクロブロックのバッファリング側動きベクトルデータとの一致性が評価される。この評価の結果が、図１９に示したＲＡＭの内容である。
【０５３４】
つまり、図３２に示したフローチャートのステップＳ１１２０において「ＹＥＳ」と判断されたときは、候補動きベクトルデータとしてサーチされた、メイン側動きベクトルデータと、候補動きベクトルデータとしてサーチされた、バッファリング残差処理用データテーブルＴＢＬ２の注目マクロブロックの、バッファリング側動きベクトルデータとの比較による評価が終了している。よって、図１９に示すように、ＲＡＭ５には、候補動きベクトルデータとしての、メイン側動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・、これらのメイン側動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・に夫々対応する差分合計値データＴＶｎ、・・・・及び一致数データＶｅｑｎ、・・・・が夫々記憶される。尚、最大の一致数データＶｅｑが２以上あった場合等の説明は、図１７のフローチャートを参照して説明しているので、その説明を省略する。但し、その説明を本例の説明に置き換える場合には、「動きベクトルデータ」を、「メイン側動きベクトルデータ」に読み換えるものとする。
【０５３５】
以上説明した処理により、処理しようとしている注目マクロブロックに対応するテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータが得られた後は、テレスコピックサーチエリアＴＳＡの設定処理が行われる。
【０５３６】
〔第３の実施の形態における効果〕
以上説明したように、本形態においては、候補動きベクトルデータから１つの動きベクトルデータを選択する際、各候補動きベクトルデータが、過去の残差処理用データテーブルＴＢＬ２に登録されている候補動きベクトルデータといくつ一致するかを検出し、その結果、最も一致性の高い候補動きベクトルデータを選択するので、過去のフレーム内における移動体の移動状態に関連性の高い動きベクトルデータを選ぶことができる。よって、このように選択した動きベクトルデータを用いてテレスコピックサーチエリアＴＳＡを設定し、このテレスコピックサーチエリアＴＳＡを用いて動き検出処理を行って得られた動きベクトルデータは、非常に正確なものとなり、この動きベクトルデータを用いて動き補償を行い、動き補償を行ったマクロブロックと、符号化すべきマクロブロックとで差分を得た場合、そのデータ量を最も少なくすることができ、符号化効率を大幅に向上させることができるといった絶大なる効果がある。以上の効果は、第１の実施の形態における動きベクトル選択に関する効果以外の効果に加えて得られることのできる効果である。
【０５３７】
尚、第２の実施の形態における効果と、第３の実施の形態における効果の違いは次の通りである。第２の実施の形態においては、１ステップ前の動き検出処理によって得られた残差処理用データテーブルＴＢＬ１の全注目マクロブロックの動きベクトルデータが用いられているので、２フレーム間の検出と言える。一方、第３の実施の形態においては、図２９から明かなように、２ステップ前の候補動きベクトルデータが用いられている。従って、候補動きベクトルデータから１つの動きベクトルデータを選択するために、２ステップ前の残差処理用データテーブルＴＢＬ１に登録されている候補動きベクトルデータと比較するので、処理ステップ数が、第２の実施の形態よりも第３の実施の形態の方が少なく、時間的に有利である。
【０５３８】
但し、第２の実施の形態では、候補動きベクトルデータから１つの動きベクトルデータを選択するために、上記候補動きベクトルデータと、残差処理用データテーブルＴＢＬ１内の全注目マクロブロックの動きベクトルデータと比較するので、２フレーム間に限った検出精度から考えると、第２の実施の形態の方が精度的に有利となる。
【０５３９】
一方、第３の実施の形態では、候補動きベクトルデータから１つの動きベクトルデータを選択するために、上記動きベクトルデータと、２ステップ前の動き検出において得られた残差処理用データテーブルＴＢＬ１に登録されている候補動きベクトルデータと比較するので、３フレーム間に限った検出精度から考えると、第３の実施の形態の方が精度的に有利となる。
【０５４０】
［第４の実施の形態］
【０５４１】
Ｗ．図７に示した残差処理ルーチンによる制御動作の説明（図３３及び図３４参照）
【０５４２】
図３３及び図３４は、図１５〜図１７に夫々示した残差処理ルーチンによる制御動作の他の例（第４の実施の形態）を説明するためのフローチャートである。第１の実施の形態と第４の実施の形態においては、この残差処理ルーチンによる制御動作が異なる。第１の実施の形態から第３の実施の形態までは、候補動きベクトルデータからテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータを、候補動きベクトルデータについて各種評価を行った結果に基いて選択していた。しかしながら、この第４の実施の形態においては、候補動きベクトルデータに基いて順次テレスコピックサーチエリアを設定し、設定したテレスコピックサーチエリアを順次用いて動き検出処理を行う。そして、テレスコピックサーチエリアを用いて行ったＮ回にわたる動き検出処理で得られたＮ個の最小の差分絶対値和データの内で、最も値の小さい差分絶対値和データと、この差分絶対値データを得ることのできたテレスコピックマクロブロックのアドレスと、注目マクロブロックのアドレスとに基いて、動きベクトル検出回路３３０が得た動きベクトルデータを選択する。
尚、この第４の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データの登録は必要がない。また、この第４の実施の形態においては、図１９に示したテーブルに対し、一致数データＶｅｑや差分合計値データＴＶを登録する必要がない。これらのデータはこの第６の実施の形態においては使用されないからである。
【０５４３】
ステップＳ３３０では、動きベクトルデータサーチルーチンによる処理を行う。そしてステップＳ１２００に移行する。このステップＳ３３０の動きベクトルデータサーチルーチンは、図１８に示した動きベクトルデータサーチルーチンと同じものである。
ステップＳ１２００では、図５に示したベクトル選択手段１６が、値“１”の動きベクトルデータを示すポインタＰ１を、ＲＡＭ５に供給する。このポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１２０１に移行する。ここで、このポインタＰ１は、上記動きベクトルデータサーチルーチンによりサーチされた候補動きベクトルデータを読み出すためのポインタである。
【０５４４】
ステップＳ１２０１では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロック番号データＭＮＯを読み出す。ＲＡＭ５から読み出された注目マクロブロック番号データＭＮＯは、テーブル制御手段１２に供給される。テーブル制御手段１２は、ＲＡＭ５から供給された注目マクロブロック番号データＭＮＯに基いて、注目マクロブロック番号データＭＮＯを得、この注目マクロブロック番号データＭＮＯの値を、ＭＮＯ１として保持する。そしてステップＳ１２０２に移行する。
ステップＳ１２０２では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ポインタＰ１が示す候補動きベクトルデータを読み出す。読み出された候補動きベクトルデータは、選択された動きベクトルデータとして、アドレス算出手段１３に供給される。そしてステップＳ４００に移行する。
【０５４５】
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ１２０３に移行する。
ステップＳ１２０３では、図５に示したテーブル制御手段１２が、注目マクロブロック番号データＭＮＯに“１”を加算する。そしてステップＳ１２０４に移行する。
【０５４６】
ステップＳ１２０４では、図５に示した判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、注目マクロブロック番号データＭＮＯ及び注目マクロブロック番号の最大値データＭＮＯｍａｘの記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５からは、注目マクロブロック番号データＭＮＯと、注目マクロブロック番号の最大値データＭＮＯｍａｘが読み出される。判断手段１７は、注目マクロブロック番号データＭＮＯが、注目マクロブロック番号の最大値データＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１２０５に移行し、「ＮＯ」であれば再びステップＳ１２０２に移行する。
【０５４７】
ステップＳ１２０５では、図５に示したベクトル選択手段１６の制御の元に、最小値検出手段３２９が、最小の差分絶対値和データを、入出力ポート６及びバス３を介してＲＡＭ５に供給する。一方、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５に供給された最小の差分絶対値和データは、ＲＡＭ５の所定エリアに記憶される。また、図５に示したベクトル選択手段１６の制御の元に、動きベクトル検出手段３３０が、上記最小の差分絶対値和データ、この差分絶対値和データを得ることのできたテレスコピックマクロブロックのアドレス及び注目マクロブロックのアドレスに基いた動きベクトルデータを、入出力ポート６及びバス３を介してＲＡＭ５に供給する。
一方、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に書き込み／読み出し制御信号を供給する。これによって、ＲＡＭ５に供給された動きベクトルデータは、ＲＡＭ５の所定エリアに記憶される。尚、上記動きベクトルデータは、動きベクトル選択手段１６の制御により、出力端子３３１から出力されない。そしてステップＳ１２０６に移行する。ここで得られる動きベクトルデータは、候補動きベクトルデータから、１つの動きベクトルデータを得るためのものだからである。
【０５４８】
ステップＳ１２０６では、図５に示したベクトル選択手段１６が、動きベクトルデータを示すポインタＰ１に“１”を加算し、“１”が加算された新たなポインタデータＰ１を、ＲＡＭ５に供給する。ＲＡＭ５に供給されたポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１２０７に移行する。
ステップＳ１２０７では、判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、動きベクトルデータを示すポインタデータＰ１を読み出す。読み出されたポインタデータＰ１は、判断手段１７に供給される。判断手段１７は、ＲＡＭ５から供給されたポインタデータＰ１が、Ｐｍａｘより大きいか否かを判断し、「ＹＥＳ」であれば図３４に示すフローチャートのステップＳ１２０７に移行し、「ＮＯ」であればステップＳ１２０１に移行する。
【０５４９】
このステップＳ１２０７の説明から分かるように、この残差処理ルーチンにおいては、図１９に示した候補動きベクトルデータを用いて夫々テレスコピックサーチエリアＴＳＡを、参照フレームメモリ３２３に設定し、現フレームメモリ３２１の注目マクロブロックと、上記Ｎ個のテレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックとで順次動き検出を行い、Ｎ個の最小の差分絶対値和データとこのＮ個の最小の差分絶対値和データに対応する、Ｎ個の動きベクトルデータを得る。
【０５５０】
ステップＳ１２０８では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、Ｎ個の最小の差分絶対値和データ及びこのＮ個差分絶対値和データに夫々対応するＮ個の動きベクトルデータを読み出す。ＲＡＭ５から読み出されたＮ個の最小の差分絶対値和データ及びこのＮ個の差分絶対値和データに夫々対応するＮ個の動きベクトルデータは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から供給されたＮ個の最小の差分絶対値和データの内で、最も値の小さい差分絶対値和データを選択し、選択した最小の差分絶対値和データを保持する。そしてステップＳ１２０９に移行する。
ステップＳ１２０９では、図５に示したベクトル選択手段１６が、ステップＳ１２０８において選択した、最も値の小さい差分絶対値和データ、この差分絶対値和データを得ることのできたテレスコピックマクロブロックのアドレス、及び注目マクロブロックのアドレスに基いた動きベクトルデータを選択する。そして、ベクトル選択手段１６は、選択した動きベクトルデータを、アドレス算出手段１３に供給する。そして、ステップＳ１２１０に移行する。
【０５５１】
ステップＳ１２１０では、図５に示したテーブル制御手段１２が、保持していた注目マクロブロック番号データＭＮＯ１を、ＲＡＭ５に供給する。ＲＡＭ制御手段８は、テーブル制御手段１２の制御の元に、ＲＡＭ５に対し、注目マクロブロック番号データＭＮＯを記憶すべきエリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されている注目マクロブロック番号データＭＮＯは、このルーチンにより処理が開始される時点の注目マクロブロック番号データＭＮＯ１の内容となる。以上の処理が済むと、ステップＳ４００に移行する。ここで、上記注目マクロブロック番号データＭＮＯ１の値を注目マクロブロック番号データＭＮＯとする理由は、図１３及び図１４のフローチャートの残差処理用データ生成処理ルーチンにおける理由と同様である。
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
【０５５２】
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。尚、このステップＳ５００においては、対象とする参照フレームメモリ３２３内のエリアが、テレスコピックサーチエリアＴＳＡではあるが、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンの処理内容とその処理内容が同じなので、このテレスコピックサーチ処理用データ生成処理ルーチンについての図示及びその説明は、図１３及び図１４に示した残差処理用データ生成処理ルーチンのフローチャート及びその説明で置き換えるものとする。
【０５５３】
〔第４の実施の形態における効果〕
以上説明したように、本形態においては、図１９に示した候補動きベクトルデータを用いて夫々テレスコピックサーチエリアＴＳＡを、参照フレームメモリ３２３に設定し、現フレームメモリ３２１の注目マクロブロックと、Ｎ個のテレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックとで順次動き検出を行い、Ｎ個の最小の差分絶対値和データとこのＮ個の最小の差分絶対値和データに対応する、Ｎ個の動きベクトルデータを得、Ｎ個の最小の差分絶対値和データの内で、最も値の小さい差分絶対値和データを選択し、選択した差分絶対値和データ、この差分絶対値和データを得ることのできたテレスコピックマクロブロックのアドレス、及び注目マクロブロックのアドレスに基いた動きベクトルデータを選択するので、残差の少ない動きベクトルデータを確実に選択することができる。
【０５５４】
よって、このように選択した動きベクトルデータを用いてテレスコピックサーチエリアＴＳＡを設定し、このテレスコピックサーチエリアＴＳＡを用いて動き検出処理を行って得られた動きベクトルデータは、第１、第２及び第３の実施の形態における処理と比較して、より正確なものとなり、この動きベクトルデータを用いて動き補償を行い、動き補償を行ったマクロブロックと、符号化すべきマクロブロックとで差分を得た場合、そのデータ量を最も少なくすることができ、符号化効率を大幅に向上させることができるといった絶大なる効果がある。以上の効果は、第１の実施の形態における動きベクトル選択に関する効果以外の効果に加えて得られることのできる効果である。
尚、本形態においては、逆領域内の注目マクロブロックの各動きベクトルデータを用いて、合計Ｎ回のテレスコピックサーチ処理による動き検出を行うので、第３の実施の形態による処理の方が時間的に有利であるが、その分、最も残差の少ない動きベクトルデータを確実に選択し、精度の高い動き検出を行うことができるといった利点を有する。
【０５５５】
［第５の実施の形態］
【０５５６】
Ｘ．図７に示した残差処理ルーチンによる制御動作の説明（図３５及び図３６参照）
【０５５７】
図３５及び図３６は、図７に示した残差処理ルーチンの他の例（第５の実施の形態）による制御動作を説明するためのフローチャートである。この第５の実施の形態においては、残差処理用データテーブルＴＢＬ１に登録されている全注目マクロブロックの動きベクトルデータの平均、即ち、方向及び移動量の平均であるところの平均動きベクトルデータを得、候補動きベクトルデータから、上記平均動きベクトルデータに最も近いものを選択する。
尚、この第５の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データの登録は必要がない。また、この第５の実施の形態においては、図１９に示したテーブルに対し、差分合計値データＴＶを登録する必要がない。これらのデータはこの第５の実施の形態においては使用されないからである。
【０５５８】
ステップＳ１３００においては、平均動きベクトルデータ取得ルーチンによる処理を行う。そしてステップＳ３３０に移行する。この平均動きベクトルデータ取得ルーチンは、後に図３７を参照して詳述する。
ステップＳ３３０では、動きベクトルデータサーチルーチンによる処理を行う。そしてステップＳ１３５０に移行する。このステップＳ３３０の動きベクトルデータサーチルーチンは、図１８に示した動きベクトルデータサーチルーチンと同じものである。
【０５５９】
ステップＳ１３５０では、図５に示したベクトル選択手段１６が、値“０”のデータをＲＡＭ５に供給する。そして、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、差分合計値データＴＶの全記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されている全差分合計値データＴＶの値が、“０”にされる。そしてステップＳ１３５１に移行する。尚、この差分合計値データＴＶの記憶エリアは、候補動きベクトルデータの数であるところのＰｍａｘ分だけ用意される。このステップＳ１３５０の処理は、差分合計値データＴＶの記憶エリアの初期化である。
ステップＳ１３５１では、図５に示したベクトル選択手段１６が、値“１”のデータをＲＡＭ５に供給する。そして、ベクトル選択手段１６のの制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５に、残差処理用データテーブルのアドレスポインタＰ１の記憶エリアを示すアドレスデータを含む、書き込み／読み出し制御信号を供給する。これにより、ＲＡＭ５に記憶されているポインタＰ１の値が、“１”にされる。そしてステップＳ１３５２に移行する。
【０５６０】
ステップＳ１３５２では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５のテーブルに登録されている候補動きベクトルデーＴの内、ポインタＰ１に対応する動きベクトルデータＭＶ（ｘ、ｙ）を読み出す。ＲＡＭ５から読み出された動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ１３５３に移行する。
ステップＳ１３５３では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｘを、水平動きベクトルデータＭＶｈ１として保持する。そしてステップＳ１３５４に移行する。
【０５６１】
ステップＳ１３５４では、図５に示したベクトル選択手段１６が、ＲＡＭ５から供給された動きベクトルデータＭＶｙを、垂直動きベクトルデータＭＶｖ１として保持する。そしてステップＳ１３５５に移行する。
ステップＳ１３５５では、図５に示したベクトル選択手段１６が、平均動きベクトルデータＭＶｈ２から動きベクトルデータＭＶｈ１を減算し、その減算結果を絶対値化し、水平方向動きベクトル差分データＨＶを得る。そして図３６に示すフローチャートのステップＳ１３５６に移行する。
【０５６２】
ステップＳ１３５６では、図５に示したベクトル選択手段１６が、平均動きベクトルデータＭＶｖ２から動きベクトルデータＭＶｖ１を減算し、その減算結果を絶対値化し、垂直方向動きベクトル差分データＶＶを得る。そしてステップＳ１３５７に移行する。
ステップＳ１３５７では、図５に示したベクトル選択手段１６が、ステップＳ１３５５において求めた水平方向動きベクトル差分データＨＶと、ステップＳ１３５６において求めた垂直方向動きベクトル差分データＶＶとを加算し、差分合計値データＴＶを得、この差分合計値データＴＶを、図５に示した判断手段１７に供給する。そしてステップＳ１３５８に移行する。
【０５６３】
ステップＳ１３５８では、図５に示したベクトル選択手段１６が、動きベクトルデータを示すポインタＰ１に“１”を加算し、“１”が加算された新たなポインタデータＰ１を、ＲＡＭ５に供給する。ＲＡＭ５に供給されたポインタデータＰ１は、ＲＡＭ制御手段８からの書き込み／読み出し制御信号により、ＲＡＭ５の所定エリアに記憶される。そしてステップＳ１３５９に移行する。
ステップＳ１３５９では、判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、動きベクトルデータを示すポインタデータＰ１を読み出す。読み出されたポインタデータＰ１は、判断手段１７に供給される。判断手段１７は、ＲＡＭ５から供給されたポインタデータＰ１が、Ｐｍａｘより大きいか否かを判断し、「ＹＥＳ」であればステップＳ１３６０に移行し、「ＮＯ」であれば再び図３５に示したフローチャートのステップＳ１３５２に移行する。
【０５６４】
このステップＳ１３６２の説明から分かるように、この残差処理ルーチンにおいては、Ｐｍａｘ分の候補動きベクトルデータについて、平均動きベクトルデータとの差分合計値を夫々得、最も差分合計値の少なかった候補動きベクトルデータを選択する。そして、選択した動きベクトルデータを用いて、テレスコピックサーチエリアＴＳＡを、参照フレームメモリ３２３に設定し、現フレームメモリ３２１の注目マクロブロックと、テレスコピックサーチエリアＴＳＡ内のテレスコピックマクロブロックとで順次動き検出を行い、その結果に基いて動きベクトルデータを得る。
【０５６５】
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。
【０５６６】
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。尚、このステップＳ５００においては、対象とする参照フレームメモリ３２３内のエリアが、テレスコピックサーチエリアＴＳＡではあるが、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンの処理内容とその処理内容が同じなので、このテレスコピックサーチ処理用データ生成処理ルーチンについての図示及びその説明は、図１３及び図１４に示した残差処理用データ生成処理ルーチンのフローチャート及びその説明で置き換えるものとする。
【０５６７】
説明が前後するが、候補動きベクトルデータは、上記ステップＳ１３５１〜Ｓ１３６０までの一連の処理により、候補動きベクトルデータの内、最も平均動きベクトルデータに近い動きベクトルデータが検出され、結果として、当該動きベクトルデータのフレーム内における一致性が評価される。この評価の結果が、図１９に示したＲＡＭの内容である。但し、この第５の実施の形態においては、一致数データＶｅｑは用いない。差分合計値データＴＶのみである。
つまり、図３６に示したフローチャートのステップＳ１３５９において「ＹＥＳ」と判断されたときは、候補動きベクトルデータと、平均動きベクトルデータとの比較による評価が終了している。よって、図１９に示すように、ＲＡＭ５には、候補動きベクトルデータＭＶｎ、・・・・、これらの候補動きベクトルデータＭＶｎ（ｘ、ｙ）、・・・・に夫々対応する差分合計値データＴＶｎ、・・・・夫々記憶される。
既に説明したように、ベクトル選択手段１６は、このＲＡＭ５に記憶されている差分合計値データＴＶｎ、・・・・の内、最も値の大きい差分合計値データＴＶｎ、・・・・を選択し、選択した差分合計値データＴＶｎ、・・・・に対応する動きベクトルデータＭＶｎ、・・・・を選択する。
【０５６８】
以上説明した処理により、処理しようとしている注目マクロブロックに対応するテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータが得られた後は、テレスコピックサーチエリアＴＳＡの設定処理が行われる。
【０５６９】
Ｙ．図３５に示した平均動きベクトルデータ取得ルーチンによる制御動作の説明（図３７参照）
【０５７０】
図３７は、図３５に示したフローチャートのステップＳ１３００の平均動きベクトルデータ取得ルーチンによる動作を説明するためのフローチャートである。
【０５７１】
ステップＳ１３０１では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロック番号データＭＮＯを読み出す。ＲＡＭ５から読み出された注目マクロブロック番号データＭＮＯは、テーブル制御手段１２に供給される。テーブル制御手段１２は、ＲＡＭ５から供給された注目マクロブロック番号データＭＮＯに基いて、注目マクロブロック番号データＭＮＯを得、この注目マクロブロック番号データＭＮＯの値を、ＭＮＯ１として保持する。そしてステップＳ１３０２に移行する。
ステップＳ１３０２では、図５に示したベクトル選択手段１６がＲＡＭ５に対し、“１”を示すデータを供給する。そして、ＲＡＭ制御手段８が、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、注目マクロブロック番号データＭＮＯの記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これにより、ＲＡＭ５には値“１”の注目マクロブロック番号データＭＮＯが記憶される。そしてステップＳ１３０３に移行する。
【０５７２】
ステップＳ１３０３では、図５に示したベクトル選択手段１６が、ＲＡＭ５に対し、“０”を示すデータを供給する。そして、ＲＡＭ制御手段８が、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、水平動きベクトルデータＭＶｈ及び垂直動きベクトルデータＭＶｖの記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これにより、ＲＡＭ５の上記水平及び垂直動きベクトルデータＭＶｈ及びＭＶｖの記憶エリアに“０”が記憶される。そしてステップＳ１３０４に移行する。
ステップＳ１３０４では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロック番号データＭＮＯを読み出す。ＲＡＭ５から読み出された注目マクロブロック番号データＭＮＯは、テーブル制御手段１２に供給される。テーブル制御手段１２は、ＲＡＭ５から供給された注目マクロブロック番号データＭＮＯを認識すると、ＲＡＭ制御手段８を制御して、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、上記注目マクロブロック番号データＭＮＯについて登録されている動きベクトルデータＭＶ（ｘ、ｙ）を読み出させる。ＲＡＭ５から読み出された動きベクトルデータＭＶ（ｘ、ｙ）は、ベクトル選択手段１６に供給される。そしてステップＳ１３０５に移行する。
【０５７３】
ステップＳ１３０５では、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、水平方向動きベクトルデータＭＶｈを読み出す。読み出された水平方向動きベクトルデータＭＶｈは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、水平方向動きベクトルデータＭＶｈと、上記動きベクトルデータＭＶｘを加算し、その加算結果を、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、水平方向動きベクトルデータＭＶｈの記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これによって、ベクトル選択手段１６からの水平方向動きベクトルデータＭＶｈは、ＲＡＭ５に記憶される。そしてステップＳ１３０６に移行する。
ステップＳ１３０６では、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、垂直方向動きベクトルデータＭＶｖを読み出す。読み出された垂直方向動きベクトルデータＭＶｖは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、垂直方向動きベクトルデータＭＶｖと、上記動きベクトルデータＭＶｙを加算し、その加算結果を、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、垂直方向動きベクトルデータＭＶｖの記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これによって、ベクトル選択手段１６からの垂直方向動きベクトルデータＭＶｖは、ＲＡＭ５に記憶される。そしてステップＳ１３０７に移行する。
【０５７４】
ステップＳ１３０７では、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、注目マクロブロック番号データＭＮＯを読み出す。読み出された注目マクロブロック番号データＭＮＯは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、注目マクロブロック番号データＭＮＯに“１”を加算し、“１”を加算した注目マクロブロック番号データＭＮＯを、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、注目マクロブロック番号データＭＮＯの記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これによって、ベクトル選択手段１６からの注目マクロブロック番号データＭＮＯは、ＲＡＭ５に記憶される。そしてステップＳ１３０８に移行する。
ステップＳ１３０８では、判断手段１７の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から注目マクロブロック番号データＭＮＯを読み出す。ＲＡＭ５から読み出された注目マクロブロック番号データＭＮＯは、判断手段１７に供給される。判断手段１７は、ＲＡＭから供給された注目マクロブロック番号データＭＮＯが、注目マクロブロック番号データの最大値データＭＮＯｍａｘよりも大きいか否かを判断し、「ＹＥＳ」であればステップＳ１３０９に移行し、「ＮＯ」であれば再びステップＳ１３０４に移行する。
【０５７５】
ステップＳ１３０９では、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、水平方向動きベクトルデータＭＶｈを読み出す。読み出された水平方向動きベクトルデータＭＶｈは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５からの水平方向動きベクトルデータＭＶｈに対し、１／注目マクロブロック番号データの最大値データＭＮＯｍａｘを乗じることにより、水平方向動きベクトルデータＭＶｈの平均値を得、この平均値データＭＶｈを、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、水平方向動きベクトルデータＭＶｈ２の記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これによって、水平方向動きベクトルデータＭＶｈは、水平方向動きベクトルデータＭＶｈ２としてＲＡＭ５に記憶される。そしてステップＳ１３１０に移行する。
ステップＳ１３０９では、ベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５から、垂直方向動きベクトルデータＭＶｖを読み出す。読み出された垂直方向動きベクトルデータＭＶｖは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５からの垂直方向動きベクトルデータＭＶｖに対し、１／注目マクロブロック番号データの最大値データＭＮＯｍａｘを乗じることにより、垂直方向動きベクトルデータＭＶｖの平均値を得、この平均値データＭＶｖを、ＲＡＭ５に供給すると共に、ＲＡＭ制御手段８を制御する。ＲＡＭ制御手段８は、ベクトル選択手段１６の制御の元に、ＲＡＭ５に対し、垂直方向動きベクトルデータＭＶｖ２の記憶エリアを示すアドレスデータを含む、読み出し／書き込み制御信号を供給する。これによって、垂直方向動きベクトルデータＭＶｖは、垂直方向動きベクトルデータＭＶｖ２としてＲＡＭ５に記憶される。そしてステップＳ１３１１に移行する。
【０５７６】
ステップＳ１３１１では、図５に示したテーブル制御手段１２が、注目マクロブロック番号データＭＮＯに“１”を加算する。そしてこの平均動きベクトルデータ取得ルーチンを抜け、図３５に示したフローチャートのステップＳ３３０に移行する。
【０５７７】
以上説明した残差処理用データ生成ルーチンによる制御動作が終了すると、図７に示したメインルーチンのステップＳ１９８に移行し、ここで、図５に示した判断手段１７が、現フレームの全マクロブロックについて処理が終了しているものと判断した場合には、ステップＳ２００に移行し、このステップＳ２００において、現及び参照フレームデータセットルーチンによる制御動作を行う。つまり、図５に示したメモリ制御手段１０の制御により、今まで図５に示した現フレームメモリ３２１に記憶されていたフレーム画像データを、参照フレームメモリ３２３に移し、新しいフレーム画像データを、現フレームメモリ３２１に記憶する。このステップＳ２００の処理内容は、ステップＳ５０と同様である。
【０５７８】
〔第５の実施の形態における効果〕
以上説明したように、本形態においては、候補動きベクトルデータから１つの動きベクトルデータを選択する際、各動きベクトルデータと、平均動きベクトルデータとの差分合計値ＴＶを得、最も差分合計値の小さい動きベクトルデータを選択するので、フレーム内の他の注目マクロブロックの動きベクトルデータと最も関連性の高い動きベクトルデータを選ぶことができる。よって、このように選択した動きベクトルデータを用いてテレスコピックサーチエリアＴＳＡを設定し、このテレスコピックサーチエリアＴＳＡを用いて動き検出処理を行って得られた動きベクトルデータは、非常に正確なものとなり、この動きベクトルデータを用いて動き補償を行い、動き補償を行ったマクロブロックと、符号化すべきマクロブロックとで差分を得た場合、そのデータ量を最も少なくすることができ、符号化効率を大幅に向上させることができるといった絶大なる効果がある。以上の効果は、第１の実施の形態における動きベクトル選択に関する効果以外の効果に加えて得られることのできる効果である。
【０５７９】
［第６の実施の形態］
【０５８０】
Ｚ．図７に示した残差処理ルーチンによる制御動作の説明（図３８参照）
【０５８１】
図３８は、図７に示した残差処理ルーチンの他の例（第６の実施の形態）による制御動作を説明するためのフローチャートである。この第６の実施の形態においては、注目マクロブロックについて最小残差値を求め、その最小残差値を得ることのできた参照マクロブロックのアドレスと、注目マクロブロックのアドレスとに基いて動きベクトルデータを得、この動きベクトルデータを、残差処理用データテーブルＴＢＬ１に登録する際、上記最小残差値をも登録しておき、動きベクトルデータサーチルーチンによって得られた全候補動きベクトルデータから、最も小さい残差値の登録されている動きベクトルデータを選択する。
尚、この第６の実施の形態においては、残差処理用データテーブルＴＢＬ１に対し、処理対象の注目マクロブロックの回りの注目マクロブロックの注目マクロブロック番号データの登録は必要がない。また、この第６の実施の形態においては、図１９に示したテーブルに対し、一致数データＶｅｑや差分合計値データＴＶを登録する必要がない。これらのデータはこの第６の実施の形態においては使用されないからである。
【０５８２】
ステップＳ３３０では、動きベクトルデータサーチルーチンによる処理を行う。そしてステップＳ１４００に移行する。
ステップＳ１４００では、図５に示したテーブル制御手段１２の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５の残差処理用データテーブルＴＢＬ１から、登録されている動きベクトルデータが、候補動きベクトルデータとされた注目マクロブロックの注目マクロブロック番号データについて登録されている、残差値データを読み出し、この残差値データを、ＲＡＭ５のテーブル（図１９参照）の、対応する候補動きベクトルデータの記憶エリアに記憶する。そしてステップＳ１４０１に移行する。
【０５８３】
ステップＳ１４０１では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５のテーブルから、残差値データを順次読み出す。ＲＡＭ５から順次読み出された残差値データは、ベクトル選択手段１６に順次供給される。ベクトル選択手段１６は、ＲＡＭ５から供給される最初の残差値データと、次に供給される残差値データとを比較し、その値の小さい方を選択し、この選択した残差値データと、次にＲＡＭ５から供給される残差値データとを比較し、その値の小さい方を選択するといった処理を、候補動きベクトルデータの数を示すＰｍａｘ分だけ行い、最終的に１つの残差値データを選択する。そしてステップＳ１４０２に移行する。
ステップ１４０２では、図５に示したベクトル選択手段１６の制御の元に、ＲＡＭ制御手段８が、ＲＡＭ５のテーブルから、ステップＳ１４０２においてベクトル選択手段１６により選択された残差値データに対応する動きベクトルデータを読み出す。ＲＡＭ５から読み出された動きベクトルデータは、ベクトル選択手段１６に供給される。ベクトル選択手段１６は、ＲＡＭ５から供給された動きベクトルデータを、アドレス算出手段１３に供給する。そしてステップＳ４００に移行する。
【０５８４】
ステップＳ４００では、テレスコピックサーチエリアＴＳＡ設定処理ルーチンによる、テレスコピックサーチエリアＴＳＡの設定が行われる。そしてステップＳ４５０に移行する。
ステップＳ４５０では、テレスコピックサーチ処理ルーチンによる、テレスコピックサーチ処理が行われる。そしてステップＳ５００に移行する。
【０５８５】
ステップＳ５００では、テレスコピックサーチ処理用データ生成処理ルーチンによる、テレスコピックサーチ処理用データの生成処理が行われる。そして図７に示したメインルーチンのフローチャートのステップＳ５９９に移行する。尚、このステップＳ５００においては、対象とする参照フレームメモリ３２３内のエリアが、テレスコピックサーチエリアＴＳＡではあるが、図７に示したメインルーチンのフローチャートのステップＳ１５０の残差処理用データ生成処理ルーチンの処理内容とその処理内容が同じなので、このテレスコピックサーチ処理用データ生成処理ルーチンについての図示及びその説明は、図１３及び図１４に示した残差処理用データ生成処理ルーチンのフローチャート及びその説明で置き換えるものとする。
説明が前後するが、候補動きベクトルデータは、上記ステップＳ１４０１〜Ｓ１４０２までの一連の処理により、候補動きベクトルデータの内、最も残差値データの小さかった動きベクトルデータが検出され、結果として、当該動きベクトルデータのフレーム内における一致性が評価される。この評価の結果が、図１９に示したＲＡＭの内容である。但し、この第６の実施の形態においては、一致数データＶｅｑ及び差分合計値データＴＶは用いない。これらの代わりに上記残差値データを、候補動きベクトルデータに対応させて登録して用いるからである。
【０５８６】
以上説明した処理により、処理しようとしている注目マクロブロックに対応するテレスコピックサーチエリアＴＳＡを設定するのに最適な動きベクトルデータが得られた後は、テレスコピックサーチエリアＴＳＡの設定処理が行われる。
【０５８７】
〔第６の実施の形態における効果〕
以上説明したように、本形態においては、候補動きベクトルデータから１つの動きベクトルデータを選択する際、各動きベクトルデータの内で最も残差値データの小さい動きベクトルデータを選択するので、フレーム内の他の注目マクロブロックの動きベクトルデータと最も関連性の高い動きベクトルデータを選ぶことができる。よって、このように選択した動きベクトルデータを用いてテレスコピックサーチエリアＴＳＡを設定し、このテレスコピックサーチエリアＴＳＡを用いて動き検出処理を行って得られた動きベクトルデータは、非常に正確なものとなり、この動きベクトルデータを用いて動き補償を行い、動き補償を行ったマクロブロックと、符号化すべきマクロブロックとで差分を得た場合、そのデータ量を最も少なくすることができ、符号化効率を大幅に向上させることができるといった絶大なる効果がある。そして、更に、ブロックマッチング処理によって得られた残差値データを比較するといった単純な処理だけで動きベクトルデータを選択するので、第１の実施の形態〜第５の実施の形態における処理速度よりも、より高速な処理を行うことができるという効果もある。以上の効果は、第１の実施の形態における動きベクトル選択に関する効果以外の効果に加えて得られることのできる効果である。
【０５８８】
〔形態の変形例１〕
上記第１〜第６の実施の形態においては、逆領域の大きさが４個の注目マクロブロックで構成される場合について説明したが、この個数は移動体の大きさ等によって適宜変更できることはいうまでもない。この個数を変更する場合には、第１〜第４の実施の形態において用いたフローチャートにおける数値パラメータＰｍａｘ（Ｐ１の比較で用いられている）を、変更した数値にし、ＲＡＭ５の容量を対応できる容量にすれば良い。勿論、この場合には、残差処理用データテーブルＴＢＬ１やＴＢＬ２に登録される注目マクロブロック番号データＭＮＯの個数は、上記数値となることはいうまでもない。
逆領域の注目マクロブロックの個数を、移動体の大きさに対応して可変することが可能であるので、常に移動体の大きさに基いて最も適した動き検出を行うことができるといった効果がある。
【０５８９】
〔形態の変形例２〕
上記第１〜第６の実施の形態に示した各種処理を全て行えるようにし、外部からのモード選択信号等により、適宜切り換えるようにしても良い。その場合、メインルーチンのフローチャートにおいて、外部からのモード選択信号の内容を判断し、その判断によって適宜処理内容を切り換える判断ルーチン等を設けることになる。このようにした場合には、ユーザ、若しくは決定されるフォーマット、例えば記録フォーマットや通信フォーマット等に基いて、最も適した処理を行うことができ、モードの拡張性を装置に持たせることができるといった効果がある。つまり、第１の実施の形態から第６の実施の形態における効果の説明にあるように、各処理は、夫々精度、処理時間等におけるメリットが夫々異なる。よって、１つの装置に登載する動き検出を用いた符号化装置に、上記処理を適応的に切り換えることができる機能を持たせた場合には、上述したように、ユーザの要望や、フォーマットの決定事項に対応することができるのである。
【０５９０】
〔本形態による動き検出回路を登載した動きエンコーダを登載可能な機器〕
図４１に示した動きエンコーダに、図５に示した動き検出回路を登載し、この図５に示す動き検出回路を登載した動きエンコーダを登載することの可能な機器は、例えば、ディジタルＶＴＲの記録側、例えばテレビ会議システムやテレビ電話システム等のデータ伝送システムにおけるデータの送信側、光磁気ディスクドライブの記録側、シリコンディスクドライブの記録側、ＣＤ−Ｒディスクドライブの記録側、ハードディスクドライブの記録側、ＣＤ−ＲＯＭの製造システム（スタンパ製造機等）の他、パーソナルコンピュータやワークステーション等がある。
【０５９１】
登載の形態としては、上記動きエンコーダを集積化し、１チップのエンコーダとすることが好ましい。このようにすれば、上述した何れの機器に登載する場合においても小型化、軽量化を実現できる他、基板上にマウントした場合と比較して、機器におけるスペース保持を考慮する必要がなくなる。
パーソナルコンピュータやワークステーションに上記動きエンコーダを登載する形態としては、上記１チップのエンコーダとして、ハード的に、例えばＣＰＵボード上にマウントすることができるが、近年、パーソナルコンピュータやワークステーションに登載されてきているＣＰＵの動作クロックの高速化や、ＯＳ（オペレーティング・システム）のマルチタスク化（ワークステーションは既にマルチタスク化されているが）が進んで来ていることを考慮し、図５に示した機能ブロック部分をソフトウエアで実現し、他のハード的部分を、ボード上にマウントし、このボードを、パーソナルコンピュータやワークステーションの拡張スロットに装着することも考えられる。その際、一般にビデオキャプチャーボードと称される、映像の取り込み用のボード上に上記ハード部分をマウントすることが好ましい。
【０５９２】
〔留意事項〕
尚、着目点の欄においては、「移動体が等速度で同一方向に移動した場合」が最も簡単に説明できるので、前提として説明したが、第１〜第６の実施の形態において夫々説明したように、逆領域を４つの逆領域内注目マクロブロックで構成していること、その４つの逆領域内注目マクロブロックの逆領域内注目マクロブロック番号データの内少なくとも１つが、処理対象の注目マクロブロックの注目マクロブロック番号データと同じ値となっている、全ての注目マクロブロックの各注目マクロブロック番号データについて夫々登録されている、動きベクトルデータを候補動きベクトルデータとし、この候補動きベクトルデータから最適な動きベクトルデータを選択することから、「移動体が等速度で同一方向に移動した場合」しか対応できないものではないことは容易に理解できよう。もしも、移動体の移動速度や方向がフレーム毎に可変するのであれば、逆領域内の注目マクロブロックの数を増やしたり、或いは、第３の実施の形態において説明した、過去のバッファリング残差処理用データテーブルＴＢＬ２を、更に過去のものに置き換えたり、第１〜第６の実施の形態における処理を組み合わせることにより、容易に対応できることは言うまでもない。以上の点につき留意すべきである。
【０５９３】
【効果】
上述せる本発明によれば、現フレームの時間的位置に対して前若しくは後ろの位置となる参照フレーム内における、上記現フレーム内の注目ブロックの位置に対応して、上記注目ブロックの内容に一致する参照ブロックを探索するための第１の探索エリアを第１の探索エリア設定ステップにより設定し、第１の一致検出ステップにおいて、上記現フレーム内の注目ブロックの内容と、上記参照フレームの上記第１の探索エリア内の参照ブロックの内容の一致性を検出し、第１の位置予測ステップにおいて、上記第１の一致検出ステップにおいて求められた第１の動きベクトルデータと大きさが同一で、方向が逆の第２の動きベクトルデータに基いて、上記現フレーム内の注目ブロックの１フレーム後の位置を予測し、第１の注目ブロック位置情報検出ステップにより、上記第１の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出し、テーブル登録ステップにおいて、上記第１の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させてテーブルに登録し、第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断し、上記第１の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理が終了したことが判断された場合に、画像更新ステップにおいて、上記現フレームの内容を、上記現フレームの内容の時間的位置よりも後ろ若しくは前の時間的位置の内容に更新し、更に上記参照フレームの内容を、少なくとも上記現フレームの内容に更新し、動きベクトル選択ステップにより、上記画像更新ステップによって更新された、上記現フレーム内の処理対象の注目ブロックに関連する、上記テーブルに登録されている登録動きベクトルデータを、上記テーブルから、候補動きベクトルデータとして読み出し、該候補動きベクトルデータから最も最適な動きベクトルデータを選択し、第２の一致検出ステップにより、上記動きベクトル選択ステップにおいて選択された候補動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得、テーブル内容更新ステップにおいて、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータに基いて、次に上記第２の一致検出ステップにおける上記第２の探索エリアの設定で用いる上記包括領域内の注目ブロックの位置情報を求め、該位置情報を上記テーブルに登録することにより、上記テーブルの内容を更新するようにしたので、最初は第１の探索エリアを用いて一致性の検出が行われ、以降、上記テーブルの内容に基いて第２の探索エリアが設定され、その第２の探索エリアが用いられて一致性の検出が行われ、これによって、正確な一致性の検出を短時間で行うことができ、よって、符号化効率を大幅に向上させることができるという効果がある。
【０５９４】
また、上記第２の一致検出ステップにおいては、第２の探索エリア設定ステップにより、上記動きベクトル選択ステップにおいて選択された、上記登録動きベクトルデータに基いて、上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを、上記画像更新ステップによって更新された上記参照フレーム内に設定し、第２の一致性検出ステップにより、上記現フレーム内の注目ブロックと、上記参照フレームの上記第２の探索エリア内の参照ブロックとの一致性を検出して第３の動きベクトルデータを得るようにしたので、適切に設定された第２の探索エリアを用いて一致性を検出することができ、これによって、正確な一致性の検出を行うことができるといった効果がある。
【０５９５】
また、上記テーブル内容更新ステップにおいては、第２の位置予測ステップにおいて、上記第２の一致検出ステップにおいて検出された第３の動きベクトルデータと、大きさが同一で、方向が逆の逆動きベクトルデータに基いて、上記注目ブロックの１フレーム後の位置を予測し、第２の注目ブロック位置情報検出ステップにおいて、上記第２の位置予測ステップにおいて予測した位置のブロックを包括する包括領域内の注目ブロックの位置情報を検出し、テーブル内容更新ステップにおいて、上記第２の注目ブロック位置情報検出ステップにおいて求められた、注目ブロックの位置情報を、上記処理対象とされている注目ブロックの情報に関連させて上記テーブルに登録することによりテーブルの内容を更新し、第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したか否かを判断するようにしたので、次の一致性検出に用いる情報を参照して正確な第２の探索エリアを設定することができ、これによって、短時間で一致性の検出が行えるといった効果がある。
【０５９６】
また、上記テーブル内容更新ステップは、シーンチェンジ判断ステップにより、上記第２の判断ステップにおいて、上記現フレーム内の全ての注目ブロックについて第１の動きベクトルデータを求める処理を終了したものと判断した場合に、現フレームの画像と、次に上記画像更新ステップにおいて画像の更新処理がなされることにより、現フレームとされる新たな入力画像との、変化の度合いの大きい、シーンチェンジが有るか否かを判断し、シーンチェンジが有るものと判断された場合に、上記第１の探索エリア設定ステップに移行するようにしたので、シーンチェンジがない場合には、第２の探索エリアを用いた処理が行われ、シーンチェンジがあった場合には、第２の探索エリアよりも広い第１の探索エリアを用いた処理が行われ、これによって、シーンチェンジしないときには最適な最小エリアで検出を行うことができ、検出効率を大幅に向上させることができるという効果がある。
【０５９７】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータの内、処理対象の注目ブロックの回りの複数の注目ブロックの各登録動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、回りの注目ブロックに関連性の高い動きベクトルデータを選択することができ、これによって、より正確な検出を高速に行うことができるといった効果がある。
【０５９８】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータの内、全注目ブロックについて夫々テーブルに登録されている、登録動きベクトルデータに最も多く含まれる候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができ、これによって、より正確な検出を高速に行うことができるという効果がある。
【０５９９】
また、上記テーブル登録ステップは、上記テーブルに、上記注目ブロックの各候補動きベクトルデータをも登録し、上記動きベクトル選択ステップは、現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、少なくとも、現時点よりも２ステップ前に、上記テーブルに登録された候補動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、過去の全登録動きベクトルデータに関連性の高い動きベクトルデータを得ることができ、これによって、過去との関連性の高い検出を高速に行うことができるという効果がある。
【０６００】
また、上記動きベクトル選択ステップは、上記候補動きベクトルデータを用いて、夫々順次参照フレーム内に上記第２の探索エリアを設定し、現フレーム内の注目ブロックと、上記参照フレーム内に設定した第２の探索エリア内の参照ブロックとで順次一致性を検出し、この検出の結果を比較し、最も誤差の少ない結果を得ることのできた候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、第２の探索エリア内の注目ブロックの動きベクトルデータに関連性の高い動きベクトルデータを得ることができ、これによって、探索エリア内との関連性の高い検出を高速に行うことができるという効果がある。
【０６０１】
また、上記動きベクトル選択ステップは、上記テーブルに登録されている全登録動きベクトルデータの平均値であるところの平均動きベクトルデータを得る平均動きベクトルデータ取得ステップを含み、上記候補動きベクトルデータの内、上記平均動きベクトルデータ取得ステップにおいて取得された平均動きベクトルデータに最も近似した候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができ、これによって、より正確な検出を高速に行うことができるという効果がある。
【０６０２】
また、上記テーブル登録ステップは、上記テーブルに、上記第１の一致検出ステップにおける、上記参照ブロックと上記注目ブロックとの内容の一致性の高低を示す一致性情報も登録し、上記動きベクトル選択ステップは、現フレームの処理対象の注目ブロックの候補動きベクトルデータの内、上記テーブルに登録されている最も一致性の高いことを示す一致性情報に対応する候補動きベクトルデータを検出し、該候補動きベクトルデータを、上記第２の探索エリア設定ステップにおいて用いる動きベクトルデータとして選択するようにしたので、登録されている全動きベクトルデータに近い動きベクトルデータを選択することができ、これによって、より正確な検出を高速に行うことができるという効果がある。
【０６０３】
また上述せる本発明によれば、現フレームのフレーム画像データを現フレームメモリに記憶し、上記現フレームの時間的位置よりも前若しくは後ろの位置の参照フレームメモリを参照フレームメモリに記憶し、上記現フレームメモリ内の注目ブロックの画素データと、上記参照フレームメモリの第１の探索エリア若しくは該第１の探索エリアよりもその大きさの小さい第２の探索エリア内の参照ブロックの画素データとの差分絶対値和を差分絶対値和演算手段で得、上記差分絶対値和演算手段によって得られた、上記第１若しくは第２の探索エリア内の参照ブロックの数に対応する複数の差分絶対値和データの内で、最も値の小さい差分絶対値和データを最小値検出手段で得、上記最小値検出手段からの最小の差分絶対値和データに基いて動きベクトルデータを動きベクトル検出手段で得、上記現フレームメモリ、上記参照フレームメモリ、上記差分絶対値和演算手段、上記最小値検出手段、上記動きベクトル検出手段を制御手段で制御し、現及び参照フレームメモリ制御手段により、上記現フレームメモリに保持されているフレーム画像データの内の注目ブロックに対応して、上記参照フレームメモリ内に、第１の探索エリア若しくは上記第１の探索エリアよりもその大きさの小さい第２の探索エリアを設定するエリア設定手段と、処理開始時点においては、上記注目ブロックと、上記参照フレームメモリ内に設定された第１の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記処理の後は、更新後の上記注目ブロックと、上記参照フレームメモリ内に設定された第２の探索エリア内の参照ブロックとで動き検出を行うために、上記現フレームメモリ及び上記参照フレームメモリを制御し、上記現フレームメモリ内の注目ブロックを識別するための識別情報と、上記動き検出の結果得られた動きベクトルデータをテーブルとして保持手段により保持し、上記動き検出の結果得られた動きベクトルデータと同一の大きさで、方向が逆の逆動きベクトルデータを得るベクトル算出手段と、上記注目ブロックの位置を起点として、上記ベクトル算出手段によって得られた上記逆動きベクトルデータが示す位置のブロックを包括する、包括領域のアドレスを算出し、更にこの包括領域内に含まれる複数の注目ブロックのアドレスをアドレス算出手段により算出し、上記アドレス算出手段によって算出された、上記包括領域内に含まれる複数の注目ブロックのアドレスに対応する上記識別情報を、上記テーブルに登録すると共に、上記テーブルに登録されている各種情報の入出力制御をテーブル制御手段で行い、上記動き検出による処理が、フレーム内の全ての注目ブロックについて行われたか否かを判断手段で判断し、上記判断手段により、フレーム内の全ての注目ブロックについて、上記動き検出による処理が終了したことが判断され、上記現フレームメモリ及び上記参照フレームメモリの内容が更新された後、上記エリア設定手段が、上記現フレームメモリ内の注目ブロックに対応して、上記参照フレームメモリに上記第２の探索エリアを設定する際、上記注目ブロックを示す識別情報と同じ識別情報が、上記包括領域内の注目ブロックの識別情報として上記テーブルに登録されている、全ての注目ブロックの動きベクトルデータの内、上記第２の探索エリアを設定するのに最も適した動きベクトルデータをベクトル選択手段で選択するようにしたので、最初は第１の探索エリアを用いて一致性の検出が行われ、以降、上記テーブルの内容に基いて第２の探索エリアが設定され、その第２の探索エリアが用いられて一致性の検出が行われ、これによって、正確な一致性の検出を行うことができるといった効果がある。
【０６０４】
また、上記テーブルは、少なくとも１フレーム内の全注目ブロックについて夫々登録される各種情報で構成され、上記各種情報は、注目ブロックを示す注目ブロック番号データと、上記注目ブロックの上記現フレームメモリ内におけるアドレスデータと、上記注目ブロックについて動き検出を行って得られた動きベクトルデータと同じ大きさで、方向が逆の、逆動きベクトルデータが示す位置のブロックを含む、包括領域内に含まれる複数の注目ブロックを示す注目ブロック番号データと、上記注目ブロックについて動き検出を行った結果得られた動きベクトルデータとで構成されるので、一致性の検出時に行われる第２の探索エリアの設定において、上記各情報が読み出され、上記各情報によって第２の探索エリアが設定され、これによって、確実、且つ、高速に検出を行うことができるという効果がある。
【図面の簡単な説明】
【図１】実施の形態の概要説明に供する着目点を説明するための３フレームにわたる移動体の移動の様子と、前後のフレームにおける移動体の位置関係を示す説明図である。
〔図１Ａ〕  フレーム画像データＶ（ｆ−１）を示す説明図である。
〔図１Ｂ〕  フレーム画像データＶ（ｆ）を示す説明図である。
〔図１Ｃ〕  フレーム画像データＶ（ｆ）を示す説明図である。
〔図１Ｄ〕  フレーム画像データＶ（ｆ＋１）を示す説明図である。
【図２】図１を参照して説明した着目点からなし得るブロック毎の予測処理を説明するための説明図である。
〔図２Ａ〕  フレーム画像データＶ（ｆ−１）を示す説明図である。
〔図２Ｂ〕  フレーム画像データＶ（ｆ）を示す説明図である。
〔図２Ｃ〕  フレーム画像データＶ（ｆ）を示す説明図である。
〔図２Ｄ〕  フレーム画像データＶ（ｆ＋１）を示す説明図である。
【図３】図１において説明した着目点からなし得る、図２に示したブロック毎の予測処理を実現した場合の処理の概要を説明するための説明図である。
【図４】図３に示した残差処理ステップにおいてテレスコピックサーチを用いた場合の概要を説明するための説明図である。
【図５】第１〜第４の実施の形態において用いる動き検出回路の構成例を示す構成図である。
【図６】図５に示したテーブルデータＴＢＬの内、残差処理用データテーブルと、参照マクロブロックテーブル、並びにフレーム画像データ及びこのフレーム画像データを構成するマクロブロックの一例を夫々示す説明図である。
〔図６Ａ〕  残差処理用データテーブルを示す説明図である。
〔図６Ｂ〕  フレーム画像データの一例を示す説明図である。
〔図６Ｃ〕  マクロブロックの一例を示す説明図である。
〔図６Ｄ〕  参照マクロブロックテーブルの一例を示す説明図である。
【図７】図５に示した動き検出回路のメインルーチンによる制御動作を説明するためのフローチャートである。
【図８】図７に示したメインルーチンのフローチャートのステップＳ５０及びＳ２００の、現及び参照フレームデータ設定処理ルーチンによる制御動作を説明するためのフローチャートである。
【図９】図７に示したメインルーチンのフローチャートのステップＳ５０及びＳ２００の、現及び参照フレームデータ設定処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１０】図７に示したメインルーチンのフローチャートのステップＳ１００の、フルサーチブロックマッチング処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１１】図７に示したメインルーチンのフローチャートのステップＳ１００の、フルサーチブロックマッチング処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１２】逆領域におけるマクロブロックの配置パターンの一例を説明するための説明図である。
【図１３】図７に示したメインルーチンのフローチャートのステップＳ１５０の、残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１４】図７に示したメインルーチンのフローチャートのステップＳ１５０の、残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１５】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１６】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１７】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである。
【図１８】図１５に示した残差処理ルーチンのフローチャートのステップＳ３３０の動きベクトルデータサーチルーチンによる制御動作を説明するためのフローチャートである。
【図１９】動きベクトル選択時におけるＲＡＭ５の内容の一例を説明するための説明図である。
【図２０】図１５〜図１７に示したフローチャートのステップＳ３５０の動きベクトル選択ルーチンによる制御動作を説明するためのフローチャートである。
【図２１】図１５〜図１７に示したフローチャートのステップＳ３５０の動きベクトル選択ルーチンによる制御動作を説明するためのフローチャートである。
【図２２】テレスコピックサーチエリアにおけるテレスコピックマクロブロックのパターンと、テレスコピックマクロブロックテーブルの一例を説明するための説明図である。
〔図２２Ａ〕  テレスコピックサーチエリアと、マクロブロックとの関係の一例を示す説明図である。
〔図２２Ｂ〕  テレスコピックマクロブロックテーブルの一例を示す説明図である。
【図２３】図１７に示したフローチャートのステップＳ４００のテレスコピックサーチエリア設定処理ルーチンによる制御動作を説明するためのフローチャートである。
【図２４】図１７に示したフローチャートのステップＳ４００のテレスコピックサーチエリア設定処理ルーチンによる制御動作を説明するためのフローチャートである。
【図２５】図１７に示したフローチャートのステップＳ４５０のテレスコピックサーチ処理ルーチンによる制御動作を説明するためのフローチャートである。
【図２６】図１７に示したフローチャートのステップＳ４５０のテレスコピックサーチ処理ルーチンによる制御動作を説明するためのフローチャートである。
【図２７】図１７に示した動きベクトルデータ選択ルーチンによる制御動作を説明するためのフローチャートである（第２の実施の形態）。
【図２８】図１７に示した動きベクトルデータ選択ルーチンによる制御動作を説明するためのフローチャートである（第２の実施の形態）。
【図２９】図７に示したメインルーチンのフローチャートのステップ３００の残差処理ルーチンによる制御動作の概念を説明するための説明図である（第３の実施の形態）。
〔図２９Ａ〕  時間軸上に並ぶフレーム画像データの一例を示す説明図である。
〔図２９Ｂ〕  時間軸上に並ぶ動き検出処理を示す説明図である。
〔図２９Ｃ〕  時間軸方向に順次生成（若しくは更新）されるメイン残差処理用データテーブルの一例を示す説明図である。
〔図２９Ｄ〕  時間軸上に並ぶバッファリング処理を示す説明図である。
〔図２９Ｅ〕  図２９Ｄに示すバッファリング処理によりバッファリングされるバッファリング残差処理用データテーブルの一例を示す説明図である。
【図３０】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第３の実施の形態）。
【図３１】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第３の実施の形態）。
【図３２】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第３の実施の形態）。
【図３３】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第４の実施の形態）。
【図３４】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第４の実施の形態）。
【図３５】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第５の実施の形態）。
【図３６】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第５の実施の形態）。
【図３７】図３５に示した残差処理ルーチンのフローチャートのステップＳ１３００の平均動きベクトルデータ取得ルーチンによる制御動作を説明するためのフローチャートである（第５の実施の形態）。
【図３８】図７に示したメインルーチンのフローチャートのステップＳ３００の残差処理ルーチンによる制御動作を説明するためのフローチャートである（第６の実施の形態）。
【図３９】本願発明の前提となる技術であるところの、テレスコピックサーチ処理を説明するための説明図である。
【図４０】図３５を参照して説明したテレスコピックサーチにおける不都合を説明するための説明図である。
【図４１】従来の情報伝送装置や記録再生装置で用いられる動きエンコーダの一例を示す構成図である。
【図４２】ブロックマッチングを用いた符号化処理を説明するための説明図である。
〔図４２Ａ〕  現フレーム画像、参照フレーム画像、並びに現フレーム画像と参照フレーム画像との差分画像を示す説明図である。
〔図４２Ｂ〕  ブロックマッチング処理により得られた動きベクトルデータがビットスストリームに変換される様子を示す説明図である。
〔図４２Ｃ〕  ブロックマッチング処理により得られた動きベクトルデータによって得られた差分画像データがビットストリームに変換される様子を示す説明図である。
【図４３】ブロックマッチングによる動きベクトル候補の算出を説明するための説明図である。
【図４４】図４１に示した動き検出回路の内部構成例を示す構成図である。
【図４５】従来の情報伝送装置や記録再生装置において用いられる復号化装置の一例を示す構成図である。
【図４６】従来の情報伝送装置や記録再生装置における予測方向と正方向再生を説明するための説明図である。
【図４７】サーチエリア内のマクロブロックと残差値との関係を説明するための説明図である。
〔図４７Ａ〕  サーチエリア内の現フレームにおける注目マクロブロックの位置の画像データの、１フレーム前における位置を示す説明図である。
〔図４７Ｂ〕  サーチエリア内の残差値を示す説明図である。
【図４８】残差空間における狭いサーチエリアと、広いサーチエリアを比較するために、等高線を用いた説明図である。
【符号の説明】
１  コントローラ
２  ＣＰＵ
３  バス
４  ＲＯＭ
ＰＲＧ  プログラムデータ
ＰＡＬ  パラメータデータ
ＴＢＬ  テーブルデータ
５  ＲＡＭ
６  入出力ポート
７  タイミング制御手段
８  ＲＡＭ制御手段
９  ＲＯＭ制御手段
１０  メモリ制御手段
１１  アドレス発生制御手段
１２  テーブル制御手段
１３  アドレス算出手段
１４  ベクトル算出手段
１５  エリア設定手段
１６  ベクトル選択手段
１７  判断手段
１８  シーン判断手段
３２１  現フレームメモリ
３２３  参照フレームメモリ
３２４  加算回路
３２５  絶対値回路
３２６  加算回路
３２７  ラッチ回路
３２８  メモリ
３２９  最小値検出回路
３３０  動きベクトル検出回路
３３３  アドレス発生回路
【図１】
0003800640.tif 000003
【図２】
0003800640.tif 000004
【図３】
0003800640.tif 000005
【図４】
0003800640.tif 000006
【図５】
0003800640.tif 000007
【図６】
0003800640.tif 000008
【図７】
0003800640.tif 000009
【図８】
0003800640.tif 000010
【図９】
0003800640.tif 000011
【図１０】
0003800640.tif 000012
【図１１】
0003800640.tif 000013
【図１２】
0003800640.tif 000014
【図１３】
0003800640.tif 000015
【図１４】
0003800640.tif 000016
【図１５】
0003800640.tif 000017
【図１６】
0003800640.tif 000018
【図１７】
0003800640.tif 000019
【図１８】
0003800640.tif 000020
【図１９】
0003800640.tif 000021
【図２０】
0003800640.tif 000022
【図２１】
0003800640.tif 000023
【図２２】
0003800640.tif 000024
【図２３】
0003800640.tif 000025
【図２４】
0003800640.tif 000026
【図２５】
0003800640.tif 000027
【図２６】
0003800640.tif 000028
【図２７】
0003800640.tif 000029
【図２８】
0003800640.tif 000030
【図２９】
0003800640.tif 000031
【図３０】
0003800640.tif 000032
【図３１】
0003800640.tif 000033
【図３２】
0003800640.tif 000034
【図３３】
0003800640.tif 000035
【図３４】
0003800640.tif 000036
【図３５】
0003800640.tif 000037
【図３６】
0003800640.tif 000038
【図３７】
0003800640.tif 000039
【図３８】
0003800640.tif 000040
【図３９】
0003800640.tif 000041
【図４０】
0003800640.tif 000042
【図４１】
0003800640.tif 000043
【図４２】
0003800640.tif 000044
【図４３】
0003800640.tif 000045
【図４４】
0003800640.tif 000046
【図４５】
0003800640.tif 000047
【図４６】
0003800640.tif 000048
【図４７】
0003800640.tif 000049
【図４８】
0003800640.tif 000050