(57)【特許請求の範囲】
【請求項１】
動画像データを保持する動画像データ保持手段と、
前記動画像データに基づく動画像を表示する表示手段と、
前記動画像データのフレーム中から動体部分の画像データである動体領域を抽出する動体領域抽出手段と、
前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データとして、所定数の色彩を基準に前記動体領域を分割して１つ以上の色領域とし、前記色領域の大きさ及び色彩を抽出する特徴量データ抽出手段と、
前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する特徴量データベース手段と、
検索対象の動画像データの前記特徴量データとして、検索対象の大きさ及び色彩を入力するための特徴量データ入力手段と、
前記特徴量データ入力手段によって入力された前記特徴量データである検索対象の大きさ及び色彩に基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る特徴量データベース検索手段と、
前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる制御手段と、
を備えたことを特徴とする動画像検索システム。
【請求項２】
前記特徴量データ抽出手段は、前記色領域の大きさ及び色彩に加えて、前記動体領域の移動方向ベクトルを前記特徴量データとするものであり、
前記特徴量入力手段は、検索対象の大きさ、色彩及び移動方向ベクトルを入力するものであり、
前記特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された検索対象の大きさ、色彩及び移動方向ベクトルによって前記特徴量データベース手段を検索するものである
ことを特徴とする請求項１に記載の動画像検索システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画像データ中から所望のフレームを検索する動画像検索システムに関するものである。
【０００２】
【従来の技術】
従来、ユーザが動画像データ中から所望のフレームを検索するため、キーワード検索が行われていた。このような、従来のキーワード検索について説明する。まず、オペレータが、フレームやフレームを含むショットを特徴づけるようなキーワードを予めフレームやショットに付与しておく。そして、ユーザから検索のためのキーワードが入力されると、当該キーワードと一致するようなキーワードが付与されたフレームやショットを検索する。
【０００３】
このキーワード検索では、動画像のデータ量が膨大であるためキーワードをフレームやショットに付与する手間が膨大となっていた。また、オペレータがキーワードを付与するため、同一の動画像に付与されるキーワードが、オペレータによって異なってしまっていた。更に、動画像が含む全ての情報をキーワードによって表現することは、不可能であった。
【０００４】
キーワード検索には上述のような欠点があるため、静止画像検索を動画像検索に応用した動画像検索システムも、用いられている。このような、動画像検索システムについて説明する。まず、動画像を構成する各フレーム中の色彩のヒストグラム，直線・円等の形状，テクスチャ等を特徴量として抽出し、各フレームに対応させておく。そして、ユーザから検索のための特徴量が入力されると、当該特徴量と一致するような特徴量を対応させたフレームを検索する。
【０００５】
【発明が解決しようとする課題】
しかし、このような従来の動画像検索システムでは、以下のような欠点があった。即ち、従来の動画像検索システムにおいては、各フレームの画像全体から特徴量を抽出していた。従って、背景がフレームの大部分を占めているような場合には、付与される特徴量は殆ど背景に関するものとなる。そのため、ユーザが各フレーム中の物体を検索しようとして当該物体の特徴量を入力しても、満足な検索結果を得られない場合があった。
【０００６】
本発明の課題は、このような従来技術の問題点に鑑み、各フレーム中の物体のみの特徴量に基づいて動画像検索を行うことができる動画像検索システムを提供することである。
【０００７】
【課題を解決するための手段】
本発明は前記課題を解決するために、以下の手段を採用した。
本願の第１の発明は、上述した課題を解決するため、動画像データを保持する動画像データ保持手段と、前記動画像データに基づく動画像を表示する表示手段と、前記動画像データのフレーム中から動体部分の画像データである動体領域を抽出する動体領域抽出手段と、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する特徴量データ抽出手段と、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する特徴量データベース手段と、検索対象の動画像データの前記特徴量データを入力するための特徴量データ入力手段と、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る特徴量データベース検索手段と、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる制御手段とを備えたことを特徴とする（請求項１に対応）。
【０００８】
ここで、動画像データ保持手段，特徴量データベース手段とはハードディスク等であり、表示手段とはＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）等であり、動体領域抽出手段，特徴量データ抽出手段，特徴量データベース検索手段，制御手段とはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ），ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等であり、特徴量データ入力手段とはマウス，キーボード等である。
【０００９】
本願の第１の発明によれば、動画像データ保持手段は、動画像データを保持する。表示手段は、前記動画像データに基づく動画像を表示する。動体領域抽出手段は、前記動画像データのフレーム中から動体部分の画像データである動体領域を抽出する。特徴量データ抽出手段は、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する。特徴量データベース手段は、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する。特徴量データ入力手段によって、検索対象の動画像データの前記特徴量データが入力される。特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る。制御手段は、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる。
【００１０】
このように、動画像データから動体領域を特徴づける特徴量データが抽出され、当該特徴量データに基づいて動画像検索がなされるので、動体領域以外の背景の影響を受けることがない。
【００１１】
また、本願の第２の発明は、上述した課題を解決するため、前記動画像データはＭＰＥＧデータであり、前記動体領域抽出手段は、ＭＰＥＧデータ中の動ベクトルの長さが所定の閾値以上であるマクロブロックが連接した領域を前記動体領域として抽出することとして、請求項１記載の発明を特定したものである（請求項２に対応）。
【００１２】
また、本願の第３の発明は、上述した課題を解決するため、前記動画像データはＭＰＥＧデータであり、前記動体領域抽出手段は、ＭＰＥＧデータ中の動ベクトルの長さが所定の閾値以上であるマクロブロックが連接した領域と、ＭＰＥＧデータ中のＰフレーム及びＢフレーム内のＩｎｔｒａ−ｃｏｄｅｄマクロブロックが連接した領域とを、前記動体領域として抽出することとして、請求項１記載の発明を特定したものである（請求項３に対応）。
【００１３】
また、本願の第４の発明は、上述した課題を解決するため、動画像データを保持する動画像データ保持手段と、前記動画像データに基づく動画像を表示する表示手段と、前記動画像データ中のある時点における画像データを背景データとして保持する背景データ保持手段と、前記時点以降のフレーム中の領域であって前記背景データとの色彩の差が所定の閾値以上である領域を動体領域として抽出する動体領域抽出手段と、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する特徴量データ抽出手段と、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する特徴量データベース手段と、検索対象の動画像データの前記特徴量データを入力するための特徴量データ入力手段と、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る特徴量データベース検索手段と、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる制御手段とを備えたことを特徴とする（請求項４に対応）。
【００１４】
ここで、動画像データ保持手段，特徴量データベース手段，背景データ保持手段とはハードディスク等であり、表示手段とはＣＲＴ等であり、動体領域抽出手段，特徴量データ抽出手段，特徴量データベース検索手段，制御手段とはＣＰＵ，ＤＳＰ等であり、特徴量データ入力手段とはマウス，キーボード等である。
【００１５】
本願の第４の発明によれば、動画像データ保持手段は、動画像データを保持する。表示手段は、前記動画像データに基づく動画像を表示する。背景データ保持手段は、前記動画像データ中のある時点における画像データを背景データとして保持する。動体領域抽出手段は、前記時点以降の前記動画像データ中の領域であって前記背景データとの色彩の差が所定の閾値以上である領域を動体領域として抽出する。特徴量データ抽出手段は、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する。特徴量データベース手段は、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する。特徴量データ入力手段によって、検索対象の動画像データの前記特徴量データが入力される。特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る。制御手段は、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる。
【００１６】
このように、動画像データから動体領域を特徴づける特徴量データが抽出され、当該特徴量データに基づいて動画像検索がなされるので、動体領域以外の背景の影響を受けることがない。
【００１７】
また、本願の第５の発明は、上述した課題を解決するため、前記動画像データはＭＰＥＧデータであり、前記背景データ保持手段は、ＭＰＥＧデータ中の各ショット内における最初のＩフレーム中のマクロブロックのＤＣ成分のデータを前記背景データとして保持するものであり、前記動体領域抽出手段は、前記背景データ保持手段に保持された前記Ｉフレーム以降の各Ｉフレーム中のマクロブロックのＤＣ成分と前記背景データ中のデータであって前記マクロブロックの位置に対応する位置のデータとの差を算出しその差が所定の閾値以上である前記マクロブロックが連接する領域を前記動体領域として抽出するものであることとして、請求項４記載の発明を特定したものである（請求項５に対応）。
【００１８】
また、本願の第６の発明は、上述した課題を解決するため、ＭＰＥＧデータを保持する動画像データ保持手段と、ＭＰＥＧデータに基づく動画像を表示する表示手段と、ＭＰＥＧデータ中の各ショット内における最初のＩフレーム中のマクロブロックのＤＣ成分のデータを背景データとして保持する背景データ保持手段と、前記背景データ保持手段に保持された前記Ｉフレーム以降の各Ｉフレーム中のマクロブロックのＤＣ成分と前記背景データ中のデータであって前記マクロブロックの位置に対応する位置のデータとの差を算出しその差が所定の閾値以上である前記マクロブロックが連接する領域を前記動体領域として抽出するとともに、前記背景データ保持手段に保持された前記Ｉフレーム以降の各Ｐフレーム及びＢフレーム中の動ベクトルの長さが所定の閾値以上であるマクロブロック及びＩｎｔｒａ−ｃｏｄｅｄマクロブロックが連接した領域を前記動体領域として抽出する動体領域抽出手段と、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する特徴量データ抽出手段と、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する特徴量データベース手段と、検索対象の動画像データの前記特徴量データを入力するための特徴量データ入力手段と、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る特徴量データベース検索手段と、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる制御手段とを備えたことを特徴とする（請求項６に対応）。
【００１９】
ここで、動画像データ保持手段，特徴量データベース手段，背景データ保持手段とはハードディスク等であり、表示手段とはＣＲＴ等であり、動体領域抽出手段，特徴量データ抽出手段，特徴量データベース検索手段，制御手段とはＣＰＵ，ＤＳＰ等であり、特徴量データ入力手段とはマウス，キーボード等である。
【００２０】
本願の第６の発明によれば、動画像データ保持手段は、ＭＰＥＧデータを保持する。表示手段は、ＭＰＥＧデータに基づく動画像を表示する。背景データ保持手段は、ＭＰＥＧデータ中の各ショット内における最初のＩフレーム中のマクロブロックのＤＣ成分のデータを背景データとして保持する。動体領域抽出手段は、前記背景データ保持手段に保持された前記Ｉフレーム以降の各Ｉフレーム中のマクロブロックのＤＣ成分と前記背景データ中のデータであって前記マクロブロックの位置に対応する位置のデータとの差を算出しその差が所定の閾値以上である前記マクロブロックが連接する領域を前記動体領域として抽出するとともに、前記背景データ保持手段に保持された前記Ｉフレーム以降の各Ｐフレーム及びＢフレーム中の動ベクトルの長さが所定の閾値以上であるマクロブロック及びＩｎｔｒａ−ｃｏｄｅｄマクロブロックが連接した領域を前記動体領域として抽出する。特徴量データ抽出手段は、前記動体領域抽出手段によって抽出された動体領域を特徴づける特徴量データを抽出する。特徴量データベースは、前記特徴量データに対応させて前記動体領域を含むフレームを特定するフレーム特定データを保持する。特徴量データ入力手段によって、検索対象の動画像データの前記特徴量データが入力される。特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された前記特徴量データに基づいて前記特徴量データベース手段を検索して前記フレーム特定データを得る。制御手段は、前記特徴量データベース検索手段によって得られた前記フレーム特定データによって特定されるフレームを前記動画像データ保持手段から読み出して前記表示手段に表示させる。
【００２１】
このように、ＭＰＥＧデータから動体領域を特徴づける特徴量データが抽出され、当該特徴量データに基づいて動画像検索がなされるので、動体領域以外の背景の影響を受けることがない。
【００２２】
また、本願の第７の発明は、上述した課題を解決するため、前記特徴量データ抽出手段は、所定数の色彩を基準に前記動体領域を分割して１つ以上の色領域とし、前記色領域の大きさ及び色彩を前記特徴量データとするものであり、前記特徴量データ入力手段は、検索対象の大きさ及び色彩を入力するものであり、前記特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された検索対象の大きさ及び色彩によって前記特徴量データベース手段を検索するものであることとして、請求項１乃至６の何れかに記載の発明を特定したものである（請求項７に対応）。
【００２３】
また、本願の第８の発明は、上述した課題を解決するため、前記特徴量データ抽出手段は、前記色領域の大きさ及び色彩に加えて、前記動体領域の移動方向ベクトルを前記特徴量データとするものであり、前記特徴量データ入力手段は、検索対象の大きさ，色彩及び移動方向ベクトルを入力するものであり、前記特徴量データベース検索手段は、前記特徴量データ入力手段によって入力された検索対象の大きさ，色彩及び移動方向ベクトルによって前記特徴量データベース手段を検索するものであることとして、請求項７記載の発明を特定したものである（請求項８に対応）。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を図１乃至図４３の図面に基いて説明する。
【００２５】
【第１実施形態】
図１は本発明の実施形態による動画像検索システム１０の回路構成を示したものである。図１において、本実施形態による動画像検索システム１０は、マウス１１、キーボード１２、表示装置１３、コンピュータ本体２０から、構成されている。またコンピュータ本体２０は、バスＢによって相互に接続されたマウスインタフェース２１、キーボードインタフェース２２、表示装置インタフェース２３、画像インタフェース２４、記憶装置インタフェース２６、メモリ２７、制御部２８と、記憶装置インタフェース２６を介してバスＢと接続された記憶装置２５とから、構成されている。マウス１１はマウスインタフェース２１を介して、キーボード１２はキーボードインタフェース２２を介して、表示装置１３は表示装置インタフェース２３を介して、それぞれバスＢと接続されている。
【００２６】
マウス１１は、ユーザがデータを入力するための装置である。
キーボード１２は、ユーザが文字等のデータを入力するための入力装置である。このマウス１１及びキーボード１２が、特徴量データ入力手段に相当する。
【００２７】
表示装置１３は、キーボード１２から入力されたデータの文字，画像等を表示するための装置である。この表示装置１３が、表示手段に相当する。
コンピュータ本体２０は、プログラムの実行等を行うための装置である。
【００２８】
マウスインタフェース２１は、ユーザから入力されたデータをマウス１１から受け取ってバスＢへ伝達する装置である。
キーボードインタフェース２２は、キーボード１２から入力データを受け取ってバスＢへ伝達する装置である。
【００２９】
表示装置インタフェース２３は、文字，画像等のデータを表示装置１３に表示させるための装置である。
画像インタフェース２４は、画像伝送路Ｃを介してＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）データの受信を行う装置である。
【００３０】
記憶装置２５は、ＭＰＥＧデータ，制御部２８が処理するプログラム，特徴量データベース，カット情報データベース等を記憶するハードディスク装置である。ここで、特徴量データベースとは、ＭＰＥＧデータのフレーム中の動体部分の画像データの移動方向ベクトル，色彩，大きさ（面積），及び重心座標からなる特徴量データに対応させて、ＭＰＥＧデータ中の当該動体領域を含むフレーム番号を記憶するデータベースである。また、カット情報データベースとは、ＭＰＥＧデータ中のカット番号に対応させて、ＭＰＥＧデータ中のカット位置のフレーム番号を記憶するデータベースである。この記憶装置２５が、動画像データ保持手段，及び特徴量データベース手段に相当する。
【００３１】
記憶装置インタフェース２６は、記憶装置２５へのデータの書き込みや、記憶装置２５からのデータの読み出しを行う装置である。
メモリ２７は、ＲＡＭ等で構成され、制御部２８の作業用に用いられるメモリである。このメモリ２７が、背景データ保持手段に相当する。
【００３２】
制御部２８は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ），ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等で構成され、表示装置インタフェース２３に対して、画面表示指示を行う。また、制御部２８は、記憶装置インタフェース２６に対して、記憶装置２５へのデータ書き込み指示、記憶装置２５からのデータ読み出し指示を行う。更に、制御部２８は、マウスインタフェース２１を介してマウス１１から入力データを受け取り、キーボードインタフェース２２を介してキーボード１２から入力データを受け取り、画像インタフェース２４を介してＭＰＥＧ画像データを受け取る。また、制御部２８は、マウス１１及びキーボード１２から入力された文字等のデータの処理、表示装置１３に表示する画面データの処理を行う。この制御部２８が、動体領域抽出手段，特徴量データ抽出手段，特徴量データベース検索手段，及び制御手段に相当する。
＜第１実施形態の動作の説明＞
次に、記憶装置２５に格納されているとともに制御部２８で実行される動画像検索プログラムの内容を、図２乃至図１７のフローチャートによって説明する。＜ＭＰＥＧデータの取り込み及び特徴量データ抽出処理＞
動画像検索システム１０の制御部２８は、オペレータによってキーボード１２から画像データ取り込み指示データが入力されると、図２乃至図１３の処理を実行する。
【００３３】
図２乃至図１３の処理を開始すると、最初のＳ００１では、動画像検索システム１０の制御部２８は、画像インタフェース２４を介してＭＰＥＧデータを受け取り、記憶装置２５に書き込む。
【００３４】
次のＳ００２では、制御部２８は、Ｓ００１で受け取ったＭＰＥＧデータ中の全てのカット位置を検出し、記憶装置２５中のカット情報データベースに書き込む。
【００３５】
次のＳ００３では、制御部２８は、Ｓ００２で検出したカット位置のデータからショット数を求め、変数Ｓｎｕｍに代入する。
次のＳ００４では、制御部２８は、各フレーム中のマクロブロックの数を求め、変数ＭＢｎｕｍに代入する。
【００３６】
次のＳ００５では、制御部２８は、変数ｓ，ｆを０に初期化する。
次に処理は、Ｓ００６乃至Ｓ０９９のループに入る。
このループに入って最初のＳ００６では、制御部２８は、ｓを１つインクリメントする。
【００３７】
次のＳ００７では、制御部２８は、第ｓショット中のフレーム数を求め、変数Ｆｎｕｍに代入する。
次のＳ００８では、制御部２８は、配列型変数ｐｖｘ［１．．ＭＢｎｕｍ］，ｐｖｙ［１．．ＭＢｎｕｍ］を０に初期化する。このｐｖｘは、各マクロブロックの予測動ベクトルのｘ成分を保持する変数である。同様に、ｐｖｙは、各マクロブロックの予測動ベクトルのｙ成分を保持する変数である。
【００３８】
次に処理は、Ｓ００９乃至Ｓ０９８のループに入る。
このループに入って最初のＳ００９では、制御部２８は、ｆを１つインクリメントする。
【００３９】
次のＳ０１０では、制御部２８は、記憶装置２５から第ｓショットの第ｆフレーム中の各マクロブロックの動ベクトルを読み出し、そのｘ成分を配列型変数ｖｘ［１．．ＭＢｎｕｍ］に、ｙ成分をｖｙ［１．．ＭＢｎｕｍ］に夫々代入する。
【００４０】
次のＳ０１１では、制御部２８は、第ｆフレームがＩ（Ｉｎｔｒａ）フレームであるか否かをチェックする。そして、もしＩフレームであれば処理をＳ０１２へ移し、そうでなければ（即ちＰ（Ｐｒｅｄｉｃｔｉｖｅ）フレーム又はＢ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ  ｐｒｅｄｉｃｔｉｖｅ）フレームであれば）処理をＳ０１３へ移す。
【００４１】
Ｓ０１２では、制御部２８は、動ベクトルに代えて予測動ベクトルを使用するべく、配列型変数ｐｖｘの各要素の値をｖｘの各要素に、ｐｖｙの各要素の値をｖｙの各要素に夫々代入する。
【００４２】
Ｓ０１３では、制御部２８は、配列型変数ｒｋ［１．．ＭＢｎｕｍ］を０に初期化する。この配列型変数ｒｋは、各マクロブロックが表す画像が動体の画像であるか否かを示す変数である。即ち、あるマクロブロックが表す画像が動体の画像である場合には、当該マクロブロックの番号を添字とするｒｋの要素に１が書き込まれる。また、あるマクロブロックが表す画像が動体の画像でない場合には、当該マクロブロックの番号を添字とするｒｋの要素に０が書き込まれる。
【００４３】
次に処理は、Ｓ０１４乃至Ｓ０１９のループに入る。
このループに入って最初のＳ０１４では、制御部２８は、ｍを１つインクリメントする。
【００４４】
次のＳ０１５では、制御部２８は、第ｓショットの第ｆフレーム中の第ｍマクロブロックがＩｎｔｒａ−ｃｏｄｅｄマクロブロックであるか否かをチェックする。そして、もしＩｎｔｒａ−ｃｏｄｅｄマクロブロックであれば処理をＳ０１８へ移し、そうでなければ処理をＳ０１６へ移す。
【００４５】
Ｓ０１６では、制御部２８は、ｖｘ［ｍ］及びｖｙ［ｍ］のデータからベクトル長を算出する。
次のＳ０１７では、制御部２８は、Ｓ０１６で算出したベクトル長が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ０１８へ移し、そうでなければ処理をＳ０１９へ移す。
【００４６】
Ｓ０１５にて第ｍマクロブロックがＩｎｔｒａ−ｃｏｄｅｄマクロブロックであると判断した場合又はＳ０１７にてベクトル長が閾値以上であると判断した場合には、次のＳ０１８において、制御部２８は、ｒｋ［ｍ］に１を代入する。その後、処理はＳ０１９へ進む。
【００４７】
Ｓ０１９では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０１４へ戻す。
以上説明したＳ０１４乃至Ｓ０１９のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ０１９からこのループを抜けて、Ｓ０２０に進む。
【００４８】
次のＳ０２０では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ０２１乃至Ｓ０２６のループに入る。
このループに入って最初のＳ０２１では、制御部２８は、ｍを１つインクリメントする。
【００４９】
次のＳ０２２では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１であれば処理をＳ０２３へ移し、そうでなければ処理をＳ０２６へ移す。
【００５０】
Ｓ０２３では、制御部２８は、第ｍマクロブロックを囲む８個のマクロブロックを求める。
次のＳ０２４では、制御部２８は、配列型変数ｒｋの要素のうちＳ０２３で求めた８個のマクロブロックに対応する要素の値が全て０であるか否かを、チェックする。そして、もし全て０であれば処理をＳ０２５へ移し、そうでなければ処理をＳ０２６へ移す。
【００５１】
Ｓ０２５では、制御部２８は、ｒｋ［ｍ］に０を代入する。その後、処理はＳ０２６へ進む。
Ｓ０２６では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０２１へ戻す。
【００５２】
以上説明したＳ０２１乃至Ｓ０２６のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ０２６からこのループを抜けて、Ｓ０２７に進む。
【００５３】
次のＳ０２７では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ０２８乃至Ｓ０３３のループに入る。
このループに入って最初のＳ０２８では、制御部２８は、ｍを１つインクリメントする。
【００５４】
次のＳ０２９では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１でなければ処理をＳ０３０へ移し、そうでなければ処理をＳ０３３へ移す。
【００５５】
Ｓ０３０では、制御部２８は、配列型変数ｒｋの要素であって画面上第ｍマクロブロックの左上，上，及び右上に位置する３個のマクロブロックに対応するもののうち２つ以上が１であり、且つ、ｒｋの要素であって画面上第ｍマクロブロックの左下，下，及び右下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であるか否かをチェックする。そして、もし以上の条件を満たさない場合には処理をＳ０３１へ移し、満たす場合には処理をＳ０３２へ移す。
【００５６】
Ｓ０３１では、制御部２８は、配列型変数ｒｋの要素であって画面上第ｍマクロブロックの左上，左，及び左下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であり、且つ、ｒｋの要素であって画面上第ｍマクロブロックの右上，右，及び右下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であるか否かをチェックする。そして、もし以上の条件を満たす場合には処理をＳ０３２へ移し、満たさない場合には処理をＳ０３３へ移す。
【００５７】
Ｓ０３２では、制御部２８は、ｒｋ［ｍ］に１を代入する。その後、処理はＳ０３３へ進む。
次のＳ０３３では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０２８へ戻す。
【００５８】
以上説明したＳ０２８乃至Ｓ０３３のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ０３３からこのループを抜けて、Ｓ０３４に進む。
【００５９】
次のＳ０３４では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ０３５乃至Ｓ０４１のループに入る。
このループに入って最初のＳ０３５では、制御部２８は、ｍを１つインクリメントする。
【００６０】
次のＳ０３６では、制御部２８は、第ｆフレーム中の第ｍマクロブロックの画面上のｘ座標を変数ｍｘに、ｙ座標を変数ｍｙに夫々代入する。
次のＳ０３７では、制御部２８は、マクロブロックの幅を変数ｍｗに代入する。
【００６１】
次のＳ０３８では、制御部２８は、ｘ座標がｍｘ＋ｖｘ［ｍ］／ｍｗ、ｙ座標がｍｙ＋ｖｙ［ｍ］／ｍｗであるマクロブロックを第ｆフレーム中から抽出する。
【００６２】
次のＳ０３９では、制御部２８は、Ｓ０３８で抽出したマクロブロックの番号を変数ｎに代入する。
次のＳ０４０では、制御部２８は、ｖｘ［ｎ］＋ｖｘ［ｍ］／ＤＡＭＰを計算して予測動ベクトルのｘ成分とし、ｐｖｘ［ｎ］に代入する。同様に、ｖｙ［ｎ］＋ｖｙ［ｍ］／ＤＡＭＰを計算して予測動ベクトルのｙ成分とし、ｐｖｙ［ｎ］に代入する。ここでＤＡＭＰは、所定の定数である。
【００６３】
次のＳ０４１では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０３５へ戻す。
以上説明したＳ０３５乃至Ｓ０４１のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ０４１からこのループを抜けて、Ｓ０４２に進む。
【００６４】
次のＳ０４２では、制御部２８は、配列型変数ｒｋの要素の値が１であるものに対応するマクロブロックが連接する領域を動体領域候補として検出し、夫々に仮のラベル番号を付与する。
【００６５】
次のＳ０４３では、制御部２８は、Ｓ０４２で検出した動体領域候補の数を変数ＤＲＫｎｕｍに代入する。
次のＳ０４４では、制御部２８は、ｎを０に初期化する。
【００６６】
次に処理は、Ｓ０４５乃至Ｓ０５７のループに入る。
このループに入って最初のＳ０４５では、制御部２８は、ｎを１つインクリメントする。
【００６７】
次のＳ０４６では、制御部２８は、第ｎ動体領域候補中のマクロブロックの数を変数ＭＢＤＲＫｎｕｍに代入する。
次のＳ０４７では、制御部２８は、ＭＢＤＲＫｎｕｍの値が所定の閾値以下であるか否かをチェックする。そして、閾値以下であれば処理をＳ０４８に移し、そうでなければ処理をＳ０４９に移す。
【００６８】
Ｓ０４８では、制御部２８は、第ｎ動体領域候補を構成する各マクロブロックに対応するｒｋの要素に０を代入する。そして、処理はその後Ｓ０５７に進む。これに対し、Ｓ０４７にてＭＢＤＲＫｎｕｍの値が所定の閾値以下でないと判断した場合には、次のＳ０４９において、制御部２８は、第ｆフレーム中において第ｎ動体領域候補が占める範囲に相当する第（ｆ−１）フレーム中の範囲に、動体領域があるか否かをチェックする。そして、もしそのような動体領域がなければ処理をＳ０５０へ移し、そのような動体領域があれば処理をＳ０５１へ移す。
【００６９】
Ｓ０５０では、制御部２８は、第ｎ動体領域候補に新たなラベル番号を付与する。そして、そのラベル番号を確定したラベル番号とする。その後、処理はＳ０５２へ進む。
【００７０】
これに対し、Ｓ０４９にて動体領域があると判断した場合には、次のＳ０５１において、制御部２８は、Ｓ０４９で見つけ出した動体領域のうち第ｎ動体領域候補が占める範囲に相当する範囲に最も重なっている動体領域を選択する。そして、当該動体領域に付与されたラベル番号を第ｎ動体領域候補に付与し、確定したラベル番号とする。その後、処理はＳ０５２へ進む。
【００７１】
次のＳ０５２では、制御部２８は、変数ａｘ，ａｙ，ｃ，ｍを０に初期化する。
次に処理は、Ｓ０５３乃至Ｓ０５５のループに入る。
【００７２】
このループに入って最初のＳ０５３では、制御部２８は、ｍを１つインクリメントする。
次のＳ０５４では、制御部２８は、ａｘにｖｘ［ｍ］を加算し、ａｙにｖｙ［ｍ］を加算する。更に、ｃをインクリメントする。
【００７３】
次のＳ０５５では、制御部２８は、ｍがＭＢＤＲＫｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０５３へ戻す。
以上説明したＳ０５３乃至Ｓ０５５のループを繰り返した結果、ｍがＭＢＤＲＫｎｕｍと等しくなった場合には処理はＳ０５５からこのループを抜けて、Ｓ０５６に進む。
【００７４】
次のＳ０５６では、制御部２８は、第ｎ動体領域候補の移動方向のｘ成分をａｘ／ｃ、ｙ成分をａｙ／ｃとして算出する。そして、このように算出されたａｘ／ｃ及びａｙ／ｃの値を、Ｓ０５０又はＳ０５１で第ｎ動体領域候補に付与されたラベル番号に対応させて、記憶装置２５中の特徴量データベースに書き込む。
【００７５】
次のＳ０５７では、制御部２８は、ｎがＤＲＫｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０４５へ戻す。
以上説明したＳ０４５乃至Ｓ０５７のループを繰り返した結果、ｎがＤＲＫｎｕｍと等しくなった場合には、処理はＳ０５７からこのループを抜けてＳ０５８に進む。
【００７６】
次のＳ０５８では、制御部２８は、第ｆフレームのデータをＹＣｂＣｒ表色系の画像データに復号化する。
次のＳ０５９では、制御部２８は、Ｓ０５８で得たＹＣｂＣｒ表色系画像データをＬ＊ａ＊ｂ＊表色系に基づく画像データに変換する。
次のＳ０６０では、制御部２８は、ｒｋの要素の値が１であるものに対応するマクロブロックが連接する領域を動体領域として検出し、その数を変数Ｒｎｕｍに代入する。
【００７７】
次のＳ０６１では、制御部２８は、ｎを０に初期化する。
次に、処理は、Ｓ０６２乃至Ｓ０９７のループに入る。
このループに入って最初のＳ０６２では、制御部２８は、ｎをインクリメントする。
【００７８】
次のＳ０６３では、制御部２８は、所定数（Ｃ個）のＬ＊ａ＊ｂ＊表色系に基づく代表色の初期値を乱数によって夫々生成する。そして、これらの代表色のＬ＊を配列型変数ｌ［１．．Ｃ］に、ａ＊をａ［１．．Ｃ］に、ｂ＊をｂ［１．．Ｃ］に夫々代入する。
【００７９】
次のＳ０６４では、制御部２８は、変数ｉを０に初期化する。
次に、処理は、Ｓ０６５乃至Ｓ０８３のループに入る。
このループに入って最初のＳ０６５では、制御部２８は、ｉをインクリメントする。
【００８０】
次のＳ０６６では、制御部２８は、第ｎ動体領域内の画素の数を変数Ｇｎｕｍに代入する。
次のＳ０６７では、制御部２８は、変数ｇを０に初期化する。
【００８１】
次に、処理は、Ｓ０６８乃至Ｓ０７０のループに入る。
このループに入って最初のＳ０６８では、制御部２８は、ｇをインクリメントする。
【００８２】
次のＳ０６９では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その番号を配列型変数ｄｓ［ｇ］に代入する。尚、色の近さは、Ｌ＊，ａ＊，及びｂ＊の値によって張られる３次元空間におけるユークリッド距離の大小によって判断する。以下において色の近さを判断するときも、同様とする。
【００８３】
次のＳ０７０では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０６８に戻す。
以上説明したＳ０６８乃至Ｓ０７０のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ０７０からこのループを抜けてＳ０７１に進む。
【００８４】
次のＳ０７１では、制御部２８は、変数ｃを０に初期化する。
次に、処理は、Ｓ０７２乃至Ｓ０８０のループに入る。
このループに入って最初のＳ０７２では、制御部２８は、ｃをインクリメントする。
【００８５】
次のＳ０７３では、制御部２８は、変数ｇ，ｃｌ，ｃａ，ｃｂ，ｃｈを０に初期化する。
次に、処理は、Ｓ０７４乃至Ｓ０７８のループに入る。
【００８６】
このループに入って最初のＳ０７４では、制御部２８は、ｇをインクリメントする。
次のＳ０７５では、制御部２８は、ｄｓ［ｇ］の値がｃと等しいか否かをチェックする。そして、もし等しければ処理をＳ０７６へ移し、そうでなければ処理をＳ０７８へ移す。
【００８７】
Ｓ０７６では、制御部２８は、第ｇ画素のａ＊を変数ｇａに、ｂ＊をｇｂに、Ｌ＊をｇｌに夫々代入する。
次のＳ０７７では、制御部２８は、ｃｌにｇｌを加算し、ｃａにｇａを加算し、ｃｂにｇｂを加算する。更に、ｃｈをインクリメントする。
【００８８】
次のＳ０７８では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０７４に戻す。
以上説明したＳ０７４乃至Ｓ０７８のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ０７８からこのループを抜けてＳ０７９に進む。
【００８９】
次のＳ０７９では、制御部２８は、ｃｌ／ｃｈを算出してｌ［ｃ］に代入し、ｃａ／ｃｈを算出してａ［ｃ］に代入し、ｃｂ／ｃｈを算出してｂ［ｃ］に代入する。更に、ｈ［ｃ］にｃｈを代入する。
【００９０】
次のＳ０８０では、制御部２８は、ｃがＣと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０７２に戻す。
以上説明したＳ０７２乃至Ｓ０８０のループを繰り返した結果、ｃがＣと等しくなった場合には、処理はＳ０８０からこのループを抜けてＳ０８１に進む。
【００９１】
次のＳ０８１では、制御部２８は、ｉが所定の繰り返し回数の値に達したか否かをチェックする。そして、もし達していなければ処理をＳ０８２へ移し、達していればＳ０６５乃至Ｓ０８１のループを抜けて処理をＳ０８４へ移す。
【００９２】
Ｓ０８２では、制御部２８は、配列型変数ｈの要素の最大値の添字を変数ｍａｘに代入する。また、最小値の添字を変数ｍｉｎに代入する。
次のＳ０８３では、制御部２８は、ｌ［ｍａｘ］の値に乱数を加算した値をｌ［ｍｉｎ］に代入する。同様に、ａ［ｍａｘ］の値に乱数を加算した値をａ［ｍｉｎ］に、ｂ［ｍａｘ］の値に乱数を加算した値をｂ［ｍｉｎ］に夫々代入する。尚、乱数の値は、ｌ［ｍａｘ］，ａ［ｍａｘ］，及びｂ［ｍａｘ］の値に比して小さな値とする。その後、処理はＳ０６５へ戻る。
【００９３】
一方、Ｓ０８１にてｉが所定の繰り返し回数の値に達したと判断した場合、次のＳ０８４において、制御部２８は、変数ｇを０に初期化する。
次に、処理は、Ｓ０８５乃至Ｓ０８７のループに入る。
【００９４】
このループに入って最初のＳ０８５では、制御部２８は、ｇをインクリメントする。
次のＳ０８６では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その代表色の番号を配列型変数ｄｓ［ｇ］に代入する。
【００９５】
次のＳ０８７では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０８５に戻す。
以上説明したＳ０８５乃至Ｓ０８７のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ０８７からこのループを抜けてＳ０８８に進む。
【００９６】
次のＳ０８８では、制御部２８は、配列型変数ｄｓの値が等しい要素に対応するマクロブロックが連接する領域を、色領域として検出する。
次のＳ０８９では、制御部２８は、Ｓ０８８で検出した色領域の数を変数ＩＲｎｕｍに代入する。
【００９７】
次のＳ０９０では、制御部２８は、変数ｋを０に初期化する。
次に、処理は、Ｓ０９１乃至Ｓ０９６のループに入る。
このループに入って最初のＳ０９１では、制御部２８は、ｋをインクリメントする。
【００９８】
次のＳ０９２では、制御部２８は、ノイズのカット等のため、第ｋ色領域を縮小する。
次のＳ０９３では、制御部２８は、第ｋ色領域を拡大する。
【００９９】
次のＳ０９４では、制御部２８は、第ｋ色領域を構成する画素数が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ０９５へ移し、そうでなければ処理をＳ０９６へ移す。
【０１００】
Ｓ０９５では、制御部２８は、第ｋ色領域の色に最も近い代表色の番号，第ｋ色領域の画素数，及び第ｋ色領域の重心座標を、第ｎ動体領域のラベル番号であるｎに対応させて、記憶装置２５中の特徴量データベースに書き込む。
【０１０１】
次のＳ０９６では、制御部２８は、ｋがＩＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０９１に戻す。
以上説明したＳ０９１乃至Ｓ０９６のループを繰り返した結果、ｋがＩＲｎｕｍと等しくなった場合には、処理はＳ０９６からこのループを抜けてＳ０９７に進む。
【０１０２】
次のＳ０９７では、制御部２８は、ｎがＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ０６２に戻す。
以上説明したＳ０６２乃至Ｓ０９７のループを繰り返した結果、ｎがＲｎｕｍと等しくなった場合には、処理はＳ０９７からこのループを抜けてＳ０９８に進む。
【０１０３】
次のＳ０９８では、制御部２８は、ｆがＦｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ００９に戻す。
以上説明したＳ００９乃至Ｓ０９８のループを繰り返した結果、ｆがＦｎｕｍと等しくなった場合には、処理はＳ０９８からこのループを抜けてＳ０９９に進む。
【０１０４】
次のＳ０９９では、制御部２８は、ｓがＳｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ００６に戻す。
以上説明したＳ００６乃至Ｓ０９９のループを繰り返した結果、ｓがＳｎｕｍと等しくなった場合には、処理はＳ０９９からこのループを抜けて処理を終了する。
【０１０５】
以上のようにして、制御部２８は、ＭＰＥＧデータ中から、動体領域を抽出するとともに、各動体領域の移動方向ベクトルを算出することができる。また、各動体領域中の色領域を抽出するとともに、各色領域の色に最も近い代表色番号，各色領域の画素数，及び各色領域の重心座標を検出することができる。
＜検索データの入力処理及び検索処理＞
次に、検索のための特徴量データの入力処理及び当該特徴量データに基づく検索処理について、図１４乃至図１７のフローチャートに基づいて説明する。
【０１０６】
動画像検索システム１０の制御部２８は、オペレータによってキーボード１２から検索データ入力開始指示データが入力されると、図１４乃至図１７の処理を実行する。
【０１０７】
図１４乃至図１７の処理を開始すると、最初のＳ１０１では、動画像検索システム１０の制御部２８は、入力された検索データをマウス１１及びキーボード１２から受け取る。ここで、検索データは、大きさ（画素数）のデータ及びＬ＊ａ＊ｂ＊表色系による色のデータからなる１つ以上の検索色領域データと、各色領域データにオプションとして付加される検索移動方向データとから、構成される。
【０１０８】
次のＳ１０２では、制御部２８は、Ｓ１０１で受け取った検索データ中の各色領域データをその画素数の多い順にソートする。
次のＳ１０３では、制御部２８は、Ｓ１０２でソートした検索色領域データの中から、上位Ｎ個を選択する。
【０１０９】
次のＳ１０４では、制御部２８は、記憶装置２５中の特徴量データベースに保持されている特徴量データの個数を変数Ｋに代入する。
次のＳ１０５では、制御部２８は、配列型変数ｓｍｉｎ［１．．Ｋ］，及び変数ｋを０に初期化する。
【０１１０】
次に、処理は、Ｓ１０６乃至Ｓ１２８のループに入る。
このループに入って最初のＳ１０６では、制御部２８は、ｋをインクリメントする。
【０１１１】
次のＳ１０７では、制御部２８は、第ｋ特徴量データを記憶装置２５中の特徴量データベースから読み出す。
次のＳ１０８では、制御部２８は、Ｓ１０１にて受け取った検索データに検索移動方向データが含まれているか否かをチェックする。そして、もし含まれていれば処理をＳ１０９へ移し、そうでなければ処理をＳ１１１へ移す。
【０１１２】
Ｓ１０９では、制御部２８は、第ｋ特徴量データ中の移動方向データによって定まる移動方向が検索移動方向データによって定まる移動方向の±Ｄ度以内であるか否かをチェックする。そして、もし±Ｄ度以内でなければ処理をＳ１１０へ移し、±Ｄ度以内であれば処理をＳ１１１へ移す。
【０１１３】
Ｓ１１０では、制御部２８は、ｓｍｉｎ［ｋ］に、ｓｍｉｎ［ｋ］が採り得る最大値を代入する。その後処理は、Ｓ１２８に移る。
これに対し、Ｓ１０９にて±Ｄ度以内であると判断した場合又はＳ１０８にて検索データに検索移動方向データが含まれていないと判断した場合には、次のＳ１１１において、制御部２８は、第ｋ特徴量データ中の色領域データを、その画素数の大きい順にソートする。
【０１１４】
次のＳ１１２では、制御部２８は、Ｓ１１１にてソートした色領域データの中から、上位Ｎ個を選択する。
次のＳ１１３では、制御部２８は、検索データ中に検索色領域データが１つだけ含まれているか否かをチェックする。そして、もし１つだけであれば処理をＳ１１４へ移し、そうでなければ処理をＳ１１５へ移す。
【０１１５】
Ｓ１１４では、制御部２８は、検索色領域データ中の色データによって定まる色と、第ｋ特徴量データに含まれる全ての色領域データ中の色データによって定まる色との間の色差を夫々算出する。色差は、Ｌ＊，ａ＊，及びｂ＊によって張られる３次元空間におけるユークリッド距離によって算出する。そして、算出された値の中の最小値をｓｍｉｎ［ｋ］に代入する。その後、処理は、Ｓ１２８へ進む。
【０１１６】
Ｓ１１５では、制御部２８は、変数ｉを０に初期化する。
次に、処理は、Ｓ１１６乃至Ｓ１２６のループに入る。
このループに入って最初のＳ１１６では、制御部２８は、ｉをインクリメントする。
【０１１７】
次のＳ１１７では、制御部２８は、第ｋ特徴量データ中の第ｉ色領域データによって定まる色と、第１検索色領域データによって定まる色との間の色差を算出し、ｓ［ｉ］に代入する。
【０１１８】
次のＳ１１８では、制御部２８は、変数ｎを０に初期化する。
次に、処理は、Ｓ１１９至Ｓ１２５のループに入る。
このループに入って最初のＳ１１９では、制御部２８は、ｎをインクリメントする。
【０１１９】
次のＳ１２０では、制御部２８は、第１検索色領域データによって定まる領域の重心から第ｎ色領域データ中の重心データによって定まる重心を見た時の、所定の基準方向に対する角度を算出し、変数ｏａに代入する。
【０１２０】
次のＳ１２１では、制御部２８は、第ｋ特徴量データに含まれる第ｉ色領域データによって定まる領域の重心からｏａ±Ｄ度の角度範囲内にある色領域データを抽出する。
【０１２１】
次のＳ１２２では、制御部２８は、Ｓ１２１にて色領域データが抽出されたか否かをチェックする。そして、もし抽出されていれば処理をＳ１２３へ移し、そうでなければ処理をＳ１２４へ移す。
【０１２２】
Ｓ１２３では、制御部２８は、Ｓ１２１にて抽出された色領域データであってその色が第ｎ検索色領域データによって定まる色と最も近い色領域データを、選択する。そして、このようにして選択された色領域データによって定まる色と第ｎ検索色領域データによって定まる色との色差を算出し、ｓ［ｉ］に加算する。その後、処理はＳ１２５へ進む。
【０１２３】
これに対し、Ｓ１２２にて色領域データが抽出されなかったと判断した場合には、次のＳ１２４において、制御部２８は、ｓ［ｉ］に、ｓ［ｉ］が採りうる最大値を代入する。その後処理は、Ｓ１２５に進む。
【０１２４】
Ｓ１２５では、制御部２８は、ｎがＮと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ１１９へ戻す。
以上説明したＳ１１９乃至Ｓ１２５のループを繰り返した結果、ｎがＮと等しくなった場合には処理はＳ１２５からこのループを抜けて、Ｓ１２６に進む。
【０１２５】
Ｓ１２６では、制御部２８は、ｉがＮと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ１１６へ戻す。
以上説明したＳ１１６乃至Ｓ１２６のループを繰り返した結果、ｉがＮと等しくなった場合には処理はＳ１２６からこのループを抜けて、Ｓ１２７に進む。
【０１２６】
次のＳ１２７では、制御部２８は、ｓ［１．．Ｎ］の要素の中の最小値をｓｍｉｎ［ｋ］に代入する。
次のＳ１２８では、制御部２８は、ｋがＫと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ１０６へ戻す。
【０１２７】
以上説明したＳ１０６乃至Ｓ１２８のループを繰り返した結果、ｋがＫと等しくなった場合には処理はＳ１２８からこのループを抜けて、Ｓ１２９に進む。
Ｓ１２９では、制御部２８は、ｓｍｉｎ［１．．Ｋ］を値の小さい順にソートする。
【０１２８】
次のＳ１３０では、制御部２８は、Ｓ１２９でソートされた要素の中から上位Ｍ個を選択する。
次のＳ１３１では、制御部２８は、変数ｍを０に初期化する。
【０１２９】
次に、処理は、Ｓ１３２至Ｓ１３４のループに入る。
このループに入って最初のＳ１３２では、制御部２８は、ｍをインクリメントする。
【０１３０】
次のＳ１３３では、制御部２８は、第ｍ特徴量データによって特定される動体を含むフレームを、記憶装置２５に記憶されたＭＰＥＧデータ中から抽出する。そして、当該フレームに基づく画像を表示装置１３に表示させるように、表示装置コントローラ２３に指示する。
【０１３１】
次のＳ１３４では、制御部２８は、ｍがＭと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ１３２へ戻す。
以上説明したＳ１３２乃至Ｓ１３４のループを繰り返した結果、ｍがＭと等しくなった場合には処理はＳ１３４からこのループを抜けて、処理を終了する。
【０１３２】
以上のように、制御部２８は、オペレータから入力された検索データに基づいて特徴量データベースを検索し、検索対象の動体を含むフレームの画像を表示装置１３に表示させることができる。
【０１３３】
【第２実施形態】
次に、本発明の第２の実施形態について説明する。
第２の実施形態の回路構成は、先に説明した第１の実施形態と同様であり、図１によって示される。
【０１３４】
次に、第２の実施形態の動作について、図１８乃至図２７のフローチャートによって説明する。
＜ＭＰＥＧデータの取り込み及び特徴量データ抽出処理＞
動画像検索システム１０の制御部２８は、オペレータによってキーボード１２からＭＰＥＧデータ取り込み指示データが入力されると、図１８乃至図２７の処理を実行する。
【０１３５】
図１８乃至図２７の処理を開始すると、最初のＳ２０１では、動画像検索システム１０の制御部２８は、画像インタフェース２４を介してＭＰＥＧデータを受け取り、記憶装置２５に書き込む。
【０１３６】
次のＳ２０２では、制御部２８は、Ｓ２０１で受け取ったＭＰＥＧデータ中の全てのカット位置を検出し、記憶装置２５中のカット情報データベースに書き込む。
【０１３７】
次のＳ２０３では、制御部２８は、Ｓ２０２で検出したカット位置のデータからショット数を求め、変数Ｓｎｕｍに代入する。
次のＳ２０４では、制御部２８は、各フレーム中のマクロブロックの数を変数ＭＢｎｕｍに、ブロックの数を変数Ｂｎｕｍに夫々代入する。
【０１３８】
次のＳ２０５では、制御部２８は、変数ｓ，ｆを０に初期化する。
次に処理は、Ｓ２０６乃至Ｓ２８４のループに入る。
このループに入って最初のＳ２０６では、制御部２８は、ｓを１つインクリメントする。
【０１３９】
次のＳ２０７では、制御部２８は、第ｓショット中のフレーム数を求め、変数Ｆｎｕｍに代入する。
次に処理は、Ｓ２０８乃至Ｓ２８３のループに入る。
【０１４０】
このループに入って最初のＳ２０８では、制御部２８は、ｆを１つインクリメントする。
次のＳ２０９では、制御部２８は、第ｆフレームがＩ（Ｉｎｔｒａ）フレームであるか否かをチェックする。そして、もしＩフレームであれば処理をＳ２１０へ移し、そうでなければ処理をＳ２８３へ移す。
【０１４１】
Ｓ２１０では、制御部２８は、第ｆフレームが第ｓショットにおける最初のＩフレームであるか否かをチェックする。そして、もし最初のＩフレームであれば処理をＳ２１１へ移し、そうでなければ処理をＳ２１３へ移す。
【０１４２】
Ｓ２１１では、制御部２８は、第ｆフレーム中の各マクロブロックのＤＣ成分データを読み出す。尚、各マクロブロック中には、Ｙ（輝度信号）成分のためのブロックが４個ある。従って、Ｙ成分のＤＣ成分も４個あるので、４個の算術平均をＹ成分のＤＣ成分とする。Ｃｂ及びＣｒ（色相信号）成分のためのブロックは夫々１個であるので、夫々のＤＣ成分をそのまま読み出す。
【０１４３】
次のＳ２１２では、制御部２８は、Ｓ２１１で読み出したＤＣ成分データをＬ＊ａ＊ｂ＊表色系に変換し、ｄｃｌ［１．．ＭＢｎｕｍ］，ｄｃａ［１．．ＭＢｎｕｍ］，及びｄｃｂ［１．．ＭＢｎｕｍ］に夫々代入する。
【０１４４】
次のＳ２１３では、制御部２８は、配列型変数ｒｋ［１．．ＭＢｎｕｍ］を０に初期化する。
次のＳ２１４では、制御部２８は、変数ｍを０に初期化する。
【０１４５】
次に処理は、Ｓ２１５乃至Ｓ２２０のループに入る。
このループに入って最初のＳ２１５では、制御部２８は、ｍを１つインクリメントする。
【０１４６】
次のＳ２１６では、制御部２８は、第ｆフレーム中の第ｍマクロブロックのＤＣ成分を読み出してＬ＊ａ＊ｂ＊表色系に変換し、その値をｍｌ，ｍａ，及びｍｂに夫々代入する。
【０１４７】
次のＳ２１７では、制御部２８は、ｍｌ，ｍａ，及びｍｂで定まる色とｄｃｌ［ｍ］，ｄｃａ［ｍ］，及びｄｃｂ［ｍ］で定まる色との色差を算出する。
次のＳ２１８では、制御部２８は、Ｓ２１７で算出した色差が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ２１９へ移し、そうでなければ処理をＳ２２０へ移す。
【０１４８】
Ｓ２１９では、制御部２８は、ｒｋ［ｍ］に１を代入する。
Ｓ２２０では、制御部２８は、ｍがＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２１５へ戻す。
【０１４９】
以上説明したＳ２１５乃至Ｓ２２０のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ２２０からこのループを抜けて、Ｓ２２１に進む。
【０１５０】
次のＳ２２１では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ２２２乃至Ｓ２２７のループに入る。
このループに入って最初のＳ２２２では、制御部２８は、ｍを１つインクリメントする。
【０１５１】
次のＳ２２３では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１であれば処理をＳ２２７へ移し、そうでなければ処理をＳ２２４へ移す。
【０１５２】
Ｓ２２４では、制御部２８は、第ｍマクロブロックを囲む８個のマクロブロックを求める。
次のＳ２２５では、制御部２８は、配列型変数ｒｋの要素のうちＳ２２４で求めた８個のマクロブロックに対応するものの値が全て０であるか否かをチェックする。そして、もし全て０であれば処理をＳ２２６へ移し、そうでなければ処理をＳ２２７へ移す。
【０１５３】
Ｓ２２６では、制御部２８は、｛ｄｃｌ［ｍ］＊（Ｎ−１）＋ｍｌ｝／Ｎを算出してｄｃｌ［ｍ］に代入する。同様に、｛ｄｃａ［ｍ］＊（Ｎ−１）＋ｍａ｝／Ｎを算出してｄｃａ［ｍ］に代入し、｛ｄｃｂ［ｍ］＊（Ｎ−１）＋ｍｂ｝／Ｎを算出してｄｃｂ［ｍ］に代入する。尚、第ｓショットの処理を開始してから現れたＩフレームが未だＮ個に満たない場合には、上式のＮをＩフレームが現れた数によって置き換えて算出する。
【０１５４】
次のＳ２２７では、制御部２８は、ｍがＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２２２へ戻す。
以上説明したＳ２２２乃至Ｓ２２７のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ２２７からこのループを抜けて、Ｓ２２８に進む。
【０１５５】
次のＳ２２８では、制御部２８は、配列型変数ｒｋの要素のうち値が１であるものに対応するマクロブロックが連接する領域を動体領域候補として検出し、夫々に仮のラベル番号を付与する。
【０１５６】
次のＳ２２９では、制御部２８は、Ｓ２２８にて検出した動体領域候補の数を変数ＤＲＫｎｕｍに代入する。
次のＳ２３０では、制御部２８は、変数ｎを０に初期化する。
【０１５７】
次に処理は、Ｓ２３１乃至Ｓ２４２のループに入る。
このループに入って最初のＳ２３１では、制御部２８は、ｎを１つインクリメントする。
【０１５８】
次のＳ２３２では、制御部２８は、第ｎ動体領域候補中のマクロブロックの数を変数ＭＢＤＲＫｎｕｍに代入する。
次のＳ２３３では、制御部２８は、ＭＢＤＲＫｎｕｍの値が所定の閾値以下であるか否かをチェックする。そして、もし閾値以下であれば処理をＳ２３４へ移し、そうでなければ処理をＳ２３５へ移す。
【０１５９】
Ｓ２３４では、制御部２８は、第ｎ動体領域候補を構成する各マクロブロックに対応するｒｋの要素に０を代入する。その後、処理はＳ２４２へ進む。
これに対し、Ｓ２３３にてＭＢＤＲＫｎｕｍの値が所定の閾値以上であると判断した場合、次のＳ２３５において、制御部２８は、第ｎ動体領域候補の重心を算出する。そして、その重心のｘ座標を変数ｘnに、ｙ座標をｙnに夫々代入する。
【０１６０】
次のＳ２３６では、制御部２８は、第ｆフレームより１つ前のＩフレーム中の範囲であって第ｆフレームにおける第ｎ動体領域候補が占める範囲に相当する範囲に動体領域があるか否かをチェックする。そして、もしそのような動体領域がなければ処理をＳ２３７へ移し、あれば処理をＳ２３９へ移す。
【０１６１】
Ｓ２３７では、制御部２８は、第ｎ動体領域候補に新しいラベル番号を付与する。そして、制御部２８は、当該番号を第ｎ動体領域候補の確定したラベル番号とする。
【０１６２】
次のＳ２３８では、制御部２８は、変数ｘn-1にｘnの値を代入し、変数ｙn-1にｙnの値を代入する。その後処理は、Ｓ２４１へ進む。
これに対し、Ｓ２３６にて動体領域があると判断した場合、次のＳ２３９にて、制御部２８は、Ｓ２３５にて検出した動体領域のうち第ｎ動体領域候補が占める範囲に相当する範囲に重なるマクロブロック数が最も多い動体領域を選択する。そして、制御部２８は、当該動体領域に付与されたマクロブロック番号を、第ｎ動体領域候補に付与する。更に、制御部２８は、当該番号を第ｎ動体領域候補の確定したラベル番号とする。
【０１６３】
次のＳ２４０では、制御部２８は、Ｓ２３９にて選択した動体領域の重心座標を特徴量データベースから読み出す。そして、制御部２８は、読み出した重心座標のｘ座標を変数ｘn-1に、ｙ座標を変数ｙn-1に夫々代入する。その後、処理はＳ２４１に進む。
【０１６４】
Ｓ２４１では、制御部２８は、第ｎ動体領域候補の移動方向のｘ成分をｘn−ｘn-1によって算出し、ｙ成分をｙn−ｙn-1によって算出する。そして、第ｎ動体領域候補のラベル番号であるｎに対応させて、記憶装置２５中の特徴量データベースに書き込む。動体領域候補は、このように特徴量データベースに書き込まれた時点で、動体領域となる。
【０１６５】
次のＳ２４２では、制御部２８は、ｎがＲｎｕｍと等しいか否かをチェックする。そして、等しくなければ処理をＳ２３１へ戻す。
以上説明したＳ２３１乃至Ｓ２４２のループを繰り返した結果、ｎがＲｎｕｍと等しくなった場合には処理はＳ２４２からこのループを抜けて、Ｓ２４３に進む。
【０１６６】
次のＳ２４３では、制御部２８は、第ｆフレームのデータを画像データに復号化する。
次のＳ２４４では、制御部２８は、Ｓ２４３で得た画像データをＬ＊ａ＊ｂ＊表色系に基づく画像データに変換する。
【０１６７】
次のＳ２４５では、制御部２８は、配列型変数ｒｋの要素のうち値が１であるものに対応するマクロブロックが連接する動体領域を検出し、その数を変数Ｒｎｕｍに代入する。
【０１６８】
次のＳ２４６では、制御部２８は、変数ｎを０に初期化する。
次に処理は、Ｓ２４７乃至Ｓ２８２のループに入る。
このループに入って最初のＳ２４７では、制御部２８は、ｎを１つインクリメントする。
【０１６９】
次のＳ２４８では、制御部２８は、所定数（Ｃ個）のＬ＊ａ＊ｂ＊表色系に基づく代表色の初期値を乱数によって夫々生成する。そして、これらの代表色のＬ＊を配列型変数ｌ［１．．Ｃ］に、ａ＊をａ［１．．Ｃ］に、ｂ＊をｂ［１．．Ｃ］に夫々代入する。
【０１７０】
次のＳ２４９では、制御部２８は、変数ｉを０に初期化する。
次に、処理は、Ｓ２５０乃至Ｓ２６８のループに入る。
このループに入って最初のＳ２５０では、制御部２８は、ｉをインクリメントする。
【０１７１】
次のＳ２５１では、制御部２８は、第ｎ動体領域内の画素の数を変数Ｇｎｕｍに代入する。
次のＳ２５２では、制御部２８は、変数ｇを０に初期化する。
【０１７２】
次に、処理は、Ｓ２５３乃至Ｓ２５５のループに入る。
このループに入って最初のＳ２５３では、制御部２８は、ｇをインクリメントする。
【０１７３】
次のＳ２５４では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その番号を配列型変数ｄｓ［ｇ］に代入する。尚、色の近さは、Ｌ＊，ａ＊，及びｂ＊の値によって張られる３次元空間におけるユークリッド距離の大小によって判断する。以下において色の近さを判断するときも、同様とする。
【０１７４】
次のＳ２５５では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２５３に戻す。
以上説明したＳ２５３乃至Ｓ２５５のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ２５５からこのループを抜けてＳ２５６に進む。
【０１７５】
次のＳ２５６では、制御部２８は、変数ｃを０に初期化する。
次に、処理は、Ｓ２５７乃至Ｓ２６５のループに入る。
このループに入って最初のＳ２５７では、制御部２８は、ｃをインクリメントする。
【０１７６】
次のＳ２５８では、制御部２８は、変数ｇ，ｃｌ，ｃａ，ｃｂ，ｃｈを０に初期化する。
次に、処理は、Ｓ２５９乃至Ｓ２６３のループに入る。
【０１７７】
このループに入って最初のＳ２５９では、制御部２８は、ｇをインクリメントする。
次のＳ２６０では、制御部２８は、ｄｓ［ｇ］がｃと等しいか否かをチェックする。そして、もし等しければ処理をＳ２６１へ移し、等しくなければ処理をＳ２６３へ移す。
【０１７８】
次のＳ２６１では、制御部２８は、第ｇ画素のａ＊を変数ｇａに、ｂ＊をｇｂに、Ｌ＊をｇｌに夫々代入する。
次のＳ２６２では、制御部２８は、ｃｌにｇｌを加算し、ｃａにｇａを加算し、ｃｂにｇｂを加算する。更に、ｃｈをインクリメントする。
【０１７９】
次のＳ２６３では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２５９に戻す。
以上説明したＳ２５９乃至Ｓ２６３のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ２６３からこのループを抜けてＳ２６４に進む。
【０１８０】
次のＳ２６４では、制御部２８は、ｃｌ／ｃｈを算出してｌ［ｃ］に代入し、ｃａ／ｃｈを算出してａ［ｃ］に代入し、ｃｂ／ｃｈを算出してｂ［ｃ］に代入する。更に、ｈ［ｃ］にｃｈを代入する。
【０１８１】
次のＳ２６５では、制御部２８は、ｃがＣと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２５７に戻す。
以上説明したＳ２５７乃至Ｓ２６５のループを繰り返した結果、ｃがＣと等しくなった場合には、処理はＳ２６５からこのループを抜けてＳ２６６に進む。
【０１８２】
次のＳ２６６では、制御部２８は、ｉが所定の繰り返し回数の値に達したか否かをチェックする。そして、もし達していなければ処理をＳ２６７へ移し、そうでなければＳ２５０乃至Ｓ２６８のループを抜けて処理をＳ２６９へ移す。
【０１８３】
Ｓ２６７では、制御部２８は、配列型変数ｈの要素の最大値の添字を変数ｍａｘに代入する。また、最小値の添字を変数ｍｉｎに代入する。
次のＳ２６８では、制御部２８は、ｌ［ｍａｘ］の値に乱数を加算した値をｌ［ｍｉｎ］に代入する。同様に、ａ［ｍａｘ］の値に乱数を加算した値をａ［ｍｉｎ］に、ｂ［ｍａｘ］の値に乱数を加算した値をｂ［ｍｉｎ］に夫々代入する。尚、乱数の値は、ｌ［ｍａｘ］，ａ［ｍａｘ］，及びｂ［ｍａｘ］の値に比して小さな値とする。その後、処理はＳ２５０へ戻る。
【０１８４】
これに対し、Ｓ２６６にて所定の繰り返し回数に達したと判断した場合、次のＳ２６９において、制御部２８は、変数ｇを０に初期化する。
次に、処理は、Ｓ２７０乃至Ｓ２７２のループに入る。
【０１８５】
このループに入って最初のＳ２７０では、制御部２８は、ｇをインクリメントする。
次のＳ２７１では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その代表色の番号を配列型変数ｄｓ［ｇ］に代入する。
【０１８６】
次のＳ２７２では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２７０に戻す。
以上説明したＳ２７０乃至Ｓ２７２のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ２７２からこのループを抜けてＳ２７３に進む。
【０１８７】
次のＳ２７３では、制御部２８は、配列型変数ｄｓの値が等しい要素に対応するマクロブロックが連接する領域を、色領域として検出する。
次のＳ２７４では、制御部２８は、Ｓ２７２で検出した色領域の数を変数ＩＲｎｕｍに代入する。
【０１８８】
次のＳ２７５では、制御部２８は、変数ｋを０に初期化する。
次に、処理は、Ｓ２７６乃至Ｓ２８１のループに入る。
このループに入って最初のＳ２７６では、制御部２８は、ｋをインクリメントする。
【０１８９】
次のＳ２７７では、制御部２８は、ノイズのカット等のため、第ｋ色領域を縮小する。
次のＳ２７８では、制御部２８は、第ｋ色領域を拡大する。
【０１９０】
次のＳ２７９では、制御部２８は、第ｋ色領域を構成する画素数が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ２８０へ移し、そうでなければ処理をＳ２８１へ移す。
【０１９１】
Ｓ２８０では、制御部２８は、第ｋ色領域の色に最も近い代表色の番号，第ｋ色領域の画素数，及び第ｋ色領域の重心座標を、第ｎ動体領域のラベル番号であるｎに対応させて、記憶装置２５中の特徴量データベースに書き込む。
【０１９２】
次のＳ２８１では、制御部２８は、ｋがＩＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２７６に戻す。
以上説明したＳ２７６乃至Ｓ２８１のループを繰り返した結果、ｋがＩＲｎｕｍと等しくなった場合には、処理はＳ２８１からこのループを抜けてＳ２８２に進む。
【０１９３】
次のＳ２８２では、制御部２８は、ｎがＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２４７に戻す。
以上説明したＳ２４７乃至Ｓ２８２のループを繰り返した結果、ｎがＲｎｕｍと等しくなった場合には、処理はＳ２８２からこのループを抜けてＳ２８３に進む。
【０１９４】
次のＳ２８３では、制御部２８は、ｆがＦｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２０８に戻す。
以上説明したＳ２０８乃至Ｓ２８３のループを繰り返した結果、ｆがＦｎｕｍと等しくなった場合には、処理はＳ２８３からこのループを抜けてＳ２８４に進む。
【０１９５】
次のＳ２８４では、制御部２８は、ｓがＳｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ２０６に戻す。
以上説明したＳ２０６乃至Ｓ２８４のループを繰り返した結果、ｓがＳｎｕｍと等しくなった場合には、処理はＳ２８４からこのループを抜けて処理を終了する。
【０１９６】
以上のようにして、制御部２８は、ＭＰＥＧデータ中から、動体領域を抽出するとともに、各動体領域の移動方向ベクトルを算出することができる。また、各動体領域中の色領域を抽出するとともに、各色領域の色に最も近い代表色番号，各色領域の画素数，及び各色領域の重心座標を検出することができる。
＜特徴量データの入力処理及び検索処理＞
本第２実施形態の検索データの入力処理及び当該検索データに基づく検索処理は、先述した第１実施形態と同様であるので、その説明を省略する。
【０１９７】
【第３実施形態】
次に、本発明の第３の実施形態について説明する。
第３の実施形態の回路構成は、先に説明した第１の実施形態と同様であり、図１によって示される。
【０１９８】
次に、第３の実施形態の動作について、図２８乃至図４３のフローチャートによって説明する。
＜ＭＰＥＧデータの取り込み及び特徴量データ抽出処理＞
動画像検索システム１０の制御部２８は、オペレータによってキーボード１２からＭＰＥＧデータ取り込み指示データが入力されると、図２８乃至図４３の処理を実行する。
【０１９９】
図２８乃至図４３の処理を開始すると、最初のＳ４０１では、動画像検索システム１０の制御部２８は、画像インタフェース２４を介してＭＰＥＧデータを受け取り、記憶装置２５に書き込む。
【０２００】
次のＳ４０２では、制御部２８は、Ｓ４０１で受け取ったＭＰＥＧデータ中の全てのカット位置を検出し、記憶装置２５中のカット情報データベースに書き込む。
【０２０１】
次のＳ４０３では、制御部２８は、Ｓ４０２で検出したカット位置のデータからショット数を求め、変数Ｓｎｕｍに代入する。
次のＳ４０４では、制御部２８は、各フレーム中のマクロブロックの数を変数ＭＢｎｕｍに、ブロックの数を変数Ｂｎｕｍに夫々代入する。
【０２０２】
次のＳ４０５では、制御部２８は、変数ｓ，ｆを０に初期化する。
次に処理は、Ｓ４０６乃至Ｓ５１７のループに入る。
このループに入って最初のＳ４０６では、制御部２８は、ｓを１つインクリメントする。
【０２０３】
次のＳ４０７では、制御部２８は、第ｓショット中のフレーム数を求め、変数Ｆｎｕｍに代入する。
次のＳ４０８では、制御部２８は、配列型変数ｐｖｘ［１．．ＭＢｎｕｍ］，ｐｖｙ［１．．ＭＢｎｕｍ］を０に初期化する。このｐｖｘは、各マクロブロックの予測動ベクトルのｘ成分を保持する変数である。同様に、ｐｖｙは、各マクロブロックの予測動ベクトルのｙ成分を保持する変数である。
【０２０４】
次に処理は、Ｓ４０９乃至Ｓ５１６のループに入る。
このループに入って最初のＳ４０９では、制御部２８は、ｆを１つインクリメントする。
【０２０５】
次のＳ４１０では、制御部２８は、記憶装置２５から第ｓショットの第ｆフレーム中の各マクロブロックの動ベクトルを読み出し、そのｘ成分を配列型変数ｖｘ［１．．ＭＢｎｕｍ］に、ｙ成分をｖｙ［１．．ＭＢｎｕｍ］に夫々代入する。
【０２０６】
次のＳ４１１では、制御部２８は、第ｆフレームがＩ（Ｉｎｔｒａ）フレームであるか否かをチェックする。そして、もしＩフレームであれば処理をＳ４１２へ移し、そうでなければ処理をＳ４３１へ移す。
【０２０７】
Ｓ４１２では、制御部２８は、動ベクトルに代えて予測動ベクトルを使用するべく、配列型変数ｐｖｘの各要素の値をｖｘの各要素に、ｐｖｙの各要素の値をｖｙの各要素に夫々代入する。
【０２０８】
Ｓ４１３では、制御部２８は、第ｆフレームが第ｓショットにおける最初のＩフレームであるか否かをチェックする。そして、もし最初のＩフレームであれば処理をＳ４１４へ移し、そうでなければ処理をＳ４１６へ移す。
【０２０９】
Ｓ４１４では、制御部２８は、第ｆフレーム中の各マクロブロックのＤＣ成分データを読み出す。尚、各マクロブロック中には、Ｙ（輝度信号）成分のためのブロックが４個ある。従って、Ｙ成分のＤＣ成分も４個あるので、４個の算術平均をＹ成分のＤＣ成分とする。Ｃｂ及びＣｒ（色相信号）成分のためのブロックは夫々１個であるので、夫々のＤＣ成分をそのまま読み出す。
【０２１０】
次のＳ４１５では、制御部２８は、Ｓ４１４で読み出したＤＣ成分データをＬ＊ａ＊ｂ＊表色系に変換し、ｄｃｌ［１．．ＭＢｎｕｍ］，ｄｃａ［１．．ＭＢｎｕｍ］，及びｄｃｂ［１．．ＭＢｎｕｍ］に夫々代入する。
【０２１１】
次のＳ４１６では、制御部２８は、配列型変数ｒｋ［１．．ＭＢｎｕｍ］を０に初期化する。
次のＳ４１７では、制御部２８は、変数ｍを０に初期化する。
【０２１２】
次に処理は、Ｓ４１８乃至Ｓ４２３のループに入る。
このループに入って最初のＳ４１８では、制御部２８は、ｍを１つインクリメントする。
【０２１３】
次のＳ４１９では、制御部２８は、第ｆフレーム中の第ｍマクロブロックのＤＣ成分を読み出してＬ＊ａ＊ｂ＊表色系に変換し、その値をｍｌ，ｍａ，及びｍｂに夫々代入する。
【０２１４】
次のＳ４２０では、制御部２８は、ｍｌ，ｍａ，及びｍｂで定まる色とｄｃｌ［ｍ］，ｄｃａ［ｍ］，及びｄｃｂ［ｍ］で定まる色との色差を算出する。
次のＳ４２１では、制御部２８は、Ｓ４２２で算出した色差が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ２１９へ移し、そうでなければ処理をＳ４２３へ移す。
【０２１５】
Ｓ４２２では、制御部２８は、ｒｋ［ｍ］に１を代入する。
Ｓ４２３では、制御部２８は、ｍがＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４１８へ戻す。
【０２１６】
以上説明したＳ４１８乃至Ｓ４２３のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４２３からこのループを抜けて、Ｓ４２４に進む。
【０２１７】
次のＳ４２４では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ４２５乃至Ｓ４３０のループに入る。
このループに入って最初のＳ４２５では、制御部２８は、ｍを１つインクリメントする。
【０２１８】
次のＳ４２６では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１であれば処理をＳ４３０へ移し、そうでなければ処理をＳ４２７へ移す。
【０２１９】
Ｓ４２７では、制御部２８は、第ｍマクロブロックを囲む８個のマクロブロックを求める。
次のＳ４２８では、制御部２８は、配列型変数ｒｋの要素のうちＳ４２７で求めた８個のマクロブロックに対応するものの値が全て０であるか否かをチェックする。そして、もし全て０であれば処理をＳ４２９へ移し、そうでなければ処理をＳ４３０へ移す。
【０２２０】
Ｓ４２９では、制御部２８は、｛ｄｃｌ［ｍ］＊（Ｎ−１）＋ｍｌ｝／Ｎを算出してｄｃｌ［ｍ］に代入する。同様に、｛ｄｃａ［ｍ］＊（Ｎ−１）＋ｍａ｝／Ｎを算出してｄｃａ［ｍ］に代入し、｛ｄｃｂ［ｍ］＊（Ｎ−１）＋ｍｂ｝／Ｎを算出してｄｃｂ［ｍ］に代入する。尚、第ｓショットの処理を開始してから現れたＩフレームが未だＮ個に満たない場合には、上式のＮをＩフレームが現れた数によって置き換えて算出する。
【０２２１】
次のＳ４３０では、制御部２８は、ｍがＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４２５へ戻す。
以上説明したＳ４２５乃至Ｓ４３０のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４３０からこのループを抜けて、Ｓ４６０に進む。
【０２２２】
これに対し、Ｓ４１１にてＩフレームでないと判断した場合、次のＳ４３１において、制御部２８は、配列型変数ｒｋ［１．．ＭＢｎｕｍ］及び変数ｍを０に初期化する。
【０２２３】
次に処理は、Ｓ４３２乃至Ｓ４３７のループに入る。
このループに入って最初のＳ４３２では、制御部２８は、ｍを１つインクリメントする。
【０２２４】
次のＳ４３３では、制御部２８は、第ｓショットの第ｆフレーム中の第ｍマクロブロックがＩｎｔｒａ−ｃｏｄｅｄマクロブロックであるか否かをチェックする。そして、もしＩｎｔｒａ−ｃｏｄｅｄマクロブロックであれば処理をＳ４３６へ移し、そうでなければ処理をＳ４３４へ移す。
【０２２５】
Ｓ４３４では、制御部２８は、ｖｘ［ｍ］及びｖｙ［ｍ］のデータからベクトル長を算出する。
次のＳ４３５では、制御部２８は、Ｓ４３５で算出したベクトル長が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ４３６へ移し、そうでなければ処理をＳ４３７へ移す。
【０２２６】
Ｓ４３３にて第ｍマクロブロックがＩｎｔｒａ−ｃｏｄｅｄマクロブロックであると判断した場合又はＳ４３５にてベクトル長が閾値以上であると判断した場合には、次のＳ４３６において、制御部２８は、ｒｋ［ｍ］に１を代入する。その後、処理はＳ４３７へ進む。
【０２２７】
Ｓ４３７では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４３２へ戻す。
以上説明したＳ４３２乃至Ｓ４３７のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４３７からこのループを抜けて、Ｓ４３８に進む。
【０２２８】
次のＳ４３８では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ４３９乃至Ｓ４４４のループに入る。
このループに入って最初のＳ４３９では、制御部２８は、ｍを１つインクリメントする。
【０２２９】
次のＳ４４０では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１であれば処理をＳ４４１へ移し、そうでなければ処理をＳ４４４へ移す。
【０２３０】
Ｓ４４１では、制御部２８は、第ｍマクロブロックを囲む８個のマクロブロックを求める。
次のＳ４４２では、制御部２８は、配列型変数ｒｋの要素のうちＳ４４１で求めた８個のマクロブロックに対応する要素の値が全て０であるか否かを、チェックする。そして、もし全て０であれば処理をＳ４４３へ移し、そうでなければ処理をＳ４４４へ移す。
【０２３１】
Ｓ４４３では、制御部２８は、ｒｋ［ｍ］に０を代入する。その後、処理はＳ４４４へ進む。
Ｓ４４４では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４３９へ戻す。
【０２３２】
以上説明したＳ４３９乃至Ｓ４４４のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４４４からこのループを抜けて、Ｓ４４５に進む。
【０２３３】
次のＳ４４５では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ４４６乃至Ｓ４５１のループに入る。
このループに入って最初のＳ４４６では、制御部２８は、ｍを１つインクリメントする。
【０２３４】
次のＳ４４７では、制御部２８は、ｒｋ［ｍ］が１であるか否かをチェックする。そして、もし１でなければ処理をＳ４４８へ移し、そうでなければ処理をＳ４５１へ移す。
【０２３５】
Ｓ４４８では、制御部２８は、配列型変数ｒｋの要素であって画面上第ｍマクロブロックの左上，上，及び右上に位置する３個のマクロブロックに対応するもののうち２つ以上が１であり、且つ、ｒｋの要素であって画面上第ｍマクロブロックの左下，下，及び右下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であるか否かをチェックする。そして、もし以上の条件を満たさない場合には処理をＳ４４９へ移し、満たす場合には処理をＳ４５０へ移す。
【０２３６】
Ｓ４４９では、制御部２８は、配列型変数ｒｋの要素であって画面上第ｍマクロブロックの左上，左，及び左下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であり、且つ、ｒｋの要素であって画面上第ｍマクロブロックの右上，右，及び右下に位置する３個のマクロブロックに対応するもののうち２つ以上が１であるか否かをチェックする。そして、もし以上の条件を満たす場合には処理をＳ４５０へ移し、満たさない場合には処理をＳ４５１へ移す。
【０２３７】
Ｓ４５０では、制御部２８は、ｒｋ［ｍ］に１を代入する。その後、処理はＳ４５１へ進む。
次のＳ４５１では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４４６へ戻す。
【０２３８】
以上説明したＳ４４６乃至Ｓ４５１のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４５１からこのループを抜けて、Ｓ４５２に進む。
【０２３９】
次のＳ４５２では、制御部２８は、変数ｍを０に初期化する。
次に処理は、Ｓ４５３乃至Ｓ４５９のループに入る。
このループに入って最初のＳ４５３では、制御部２８は、ｍを１つインクリメントする。
【０２４０】
次のＳ４５４では、制御部２８は、第ｆフレーム中の第ｍマクロブロックの画面上のｘ座標を変数ｍｘに、ｙ座標を変数ｍｙに夫々代入する。
次のＳ４５５では、制御部２８は、マクロブロックの幅を変数ｍｗに代入する。
【０２４１】
次のＳ４５６では、制御部２８は、ｘ座標がｍｘ＋ｖｘ［ｍ］／ｍｗ、ｙ座標がｍｙ＋ｖｙ［ｍ］／ｍｗであるマクロブロックを第ｆフレーム中から抽出する。
【０２４２】
次のＳ４５７では、制御部２８は、Ｓ４５６で抽出したマクロブロックの番号を変数ｎに代入する。
次のＳ４５８では、制御部２８は、ｖｘ［ｎ］＋ｖｘ［ｍ］／ＤＡＭＰを計算して予測動ベクトルのｘ成分とし、ｐｖｘ［ｎ］に代入する。同様に、ｖｙ［ｎ］＋ｖｙ［ｍ］／ＤＡＭＰを計算して予測動ベクトルのｙ成分とし、ｐｖｙ［ｎ］に代入する。ここでＤＡＭＰは、所定の定数である。
【０２４３】
次のＳ４５９では、制御部２８は、ｍの値がＭＢｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４５３へ戻す。
以上説明したＳ４５３乃至Ｓ４５９のループを繰り返した結果、ｍがＭＢｎｕｍと等しくなった場合には処理はＳ４５９からこのループを抜けて、Ｓ４６０に進む。
【０２４４】
次のＳ４６０では、制御部２８は、配列型変数ｒｋの要素の値が１であるものに対応するマクロブロックが連接する領域を動体領域候補として検出し、夫々に仮のラベル番号を付与する。
【０２４５】
次のＳ４６１では、制御部２８は、Ｓ４６０で検出した動体領域候補の数を変数ＤＲＫｎｕｍに代入する。
次のＳ４６２では、制御部２８は、ｎを０に初期化する。
【０２４６】
次に処理は、Ｓ４６３乃至Ｓ４７５のループに入る。
このループに入って最初のＳ４６３では、制御部２８は、ｎを１つインクリメントする。
【０２４７】
次のＳ４６４では、制御部２８は、第ｎ動体領域候補中のマクロブロックの数を変数ＭＢＤＲＫｎｕｍに代入する。
次のＳ４６５では、制御部２８は、ＭＢＤＲＫｎｕｍの値が所定の閾値以下であるか否かをチェックする。そして、閾値以下であれば処理をＳ４６６に移し、そうでなければ処理をＳ４６７に移す。
【０２４８】
Ｓ４６６では、制御部２８は、第ｎ動体領域候補を構成する各マクロブロックに対応するｒｋの要素に０を代入する。そして、処理はその後Ｓ４７５に進む。これに対し、Ｓ４６５にてＭＢＤＲＫｎｕｍの値が所定の閾値以下でないと判断した場合には、次のＳ４６７において、制御部２８は、第ｆフレーム中において第ｎ動体領域候補が占める範囲に相当する第（ｆ−１）フレーム中の範囲に、動体領域があるか否かをチェックする。そして、もしそのような動体領域があれば処理をＳ４６９へ移し、動体領域がなければ処理をＳ４６８へ移す。
【０２４９】
Ｓ４６８では、制御部２８は、第ｎ動体領域候補に新たなラベル番号を付与する。そして、そのラベル番号を確定したラベル番号とする。その後、処理はＳ４７０へ進む。
【０２５０】
これに対し、Ｓ４６７にて動体領域があると判断した場合には、次のＳ４６９において、制御部２８は、Ｓ４６７で見つけ出した動体領域のうち第ｎ動体領域候補が占める範囲に相当する範囲に最も重なっている動体領域を選択する。そして、当該動体領域に付与されたラベル番号を第ｎ動体領域候補に付与し、確定したラベル番号とする。その後、処理はＳ４７０へ進む。
【０２５１】
次のＳ４７０では、制御部２８は、変数ａｘ，ａｙ，ｃ，ｍを０に初期化する。
次に処理は、Ｓ４７１乃至Ｓ４７３のループに入る。
【０２５２】
このループに入って最初のＳ４７１では、制御部２８は、ｍを１つインクリメントする。
次のＳ４７２では、制御部２８は、ａｘにｖｘ［ｍ］を加算し、ａｙにｖｙ［ｍ］を加算する。更に、ｃをインクリメントする。
【０２５３】
次のＳ４７３では、制御部２８は、ｍがＭＢＤＲＫｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４７１へ戻す。
以上説明したＳ４７１乃至Ｓ４７３のループを繰り返した結果、ｍがＭＢＤＲＫｎｕｍと等しくなった場合には処理はＳ４７３からこのループを抜けて、Ｓ４７４に進む。
【０２５４】
次のＳ４７４では、制御部２８は、第ｎ動体領域候補の移動方向ベクトルのｘ成分をａｘ／ｃ、ｙ成分をａｙ／ｃとして算出する。そして、このように算出されたａｘ／ｃ及びａｙ／ｃの値を、Ｓ４６８又はＳ４６９で第ｎ動体領域候補に付与されたラベル番号に対応させて、記憶装置２５中の特徴量データベースに書き込む。
【０２５５】
次のＳ４７５では、制御部２８は、ｎがＤＲＫｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４６３へ戻す。
以上説明したＳ４６３乃至Ｓ４７５のループを繰り返した結果、ｎがＤＲＫｎｕｍと等しくなった場合には、処理はＳ４７５からこのループを抜けてＳ４７６に進む。
【０２５６】
次のＳ４７６では、制御部２８は、第ｆフレームのデータを画像データに復号化する。
次のＳ４７７では、制御部２８は、Ｓ４７６で得た画像データをＬ＊ａ＊ｂ＊表色系に基づく画像データに変換する。
【０２５７】
次のＳ４７８では、制御部２８は、配列型変数ｒｋの要素のうち値が１であるものに対応するマクロブロックが連接する動体領域を検出し、その数を変数Ｒｎｕｍに代入する。
【０２５８】
次のＳ４７９では、制御部２８は、変数ｎを０に初期化する。
次に処理は、Ｓ４８０乃至Ｓ５１５のループに入る。
このループに入って最初のＳ４８０では、制御部２８は、ｎを１つインクリメントする。
【０２５９】
次のＳ４８１では、制御部２８は、所定数（Ｃ個）のＬ＊ａ＊ｂ＊表色系に基づく代表色の初期値を乱数によって夫々生成する。そして、これらの代表色のＬ＊を配列型変数ｌ［１．．Ｃ］に、ａ＊をａ［１．．Ｃ］に、ｂ＊をｂ［１．．Ｃ］に夫々代入する。
【０２６０】
次のＳ４８２では、制御部２８は、変数ｉを０に初期化する。
次に、処理は、Ｓ４８３乃至Ｓ５０１のループに入る。
このループに入って最初のＳ４８３では、制御部２８は、ｉをインクリメントする。
【０２６１】
次のＳ４８４では、制御部２８は、第ｎ動体領域内の画素の数を変数Ｇｎｕｍに代入する。
次のＳ４８５では、制御部２８は、変数ｇを０に初期化する。
【０２６２】
次に、処理は、Ｓ４８６乃至Ｓ４８８のループに入る。
このループに入って最初のＳ４８６では、制御部２８は、ｇをインクリメントする。
【０２６３】
次のＳ４８７では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その番号を配列型変数ｄｓ［ｇ］に代入する。尚、色の近さは、Ｌ＊，ａ＊，及びｂ＊の値によって張られる３次元空間におけるユークリッド距離の大小によって判断する。以下において色の近さを判断するときも、同様とする。
【０２６４】
次のＳ４８８では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４８６に戻す。
以上説明したＳ４８６乃至Ｓ４８８のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ４８８からこのループを抜けてＳ４８９に進む。
【０２６５】
次のＳ４８９では、制御部２８は、変数ｃを０に初期化する。
次に、処理は、Ｓ４９０乃至Ｓ４９８のループに入る。
このループに入って最初のＳ４９０では、制御部２８は、ｃをインクリメントする。
【０２６６】
次のＳ４９１では、制御部２８は、変数ｇ，ｃｌ，ｃａ，ｃｂ，ｃｈを０に初期化する。
次に、処理は、Ｓ４９２乃至Ｓ４９６のループに入る。
【０２６７】
このループに入って最初のＳ４９２では、制御部２８は、ｇをインクリメントする。
次のＳ４９３では、制御部２８は、ｄｓ［ｇ］がｃと等しいか否かをチェックする。そして、もし等しければ処理をＳ４９４へ移し、そうでなければ処理をＳ４９６へ移す。
【０２６８】
次のＳ４９４では、制御部２８は、第ｇ画素のａ＊を変数ｇａに、ｂ＊をｇｂに、Ｌ＊をｇｌに夫々代入する。
次のＳ４９５では、制御部２８は、ｃｌにｇｌを加算し、ｃａにｇａを加算し、ｃｂにｇｂを加算する。更に、ｃｈをインクリメントする。
【０２６９】
次のＳ４９６では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４９２に戻す。
以上説明したＳ４９２乃至Ｓ４９６のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ４９６からこのループを抜けてＳ４９７に進む。
【０２７０】
次のＳ４９７では、制御部２８は、ｃｌ／ｃｈを算出してｌ［ｃ］に代入し、ｃａ／ｃｈを算出してａ［ｃ］に代入し、ｃｂ／ｃｈを算出してｂ［ｃ］に代入する。更に、ｈ［ｃ］にｃｈを代入する。
【０２７１】
次のＳ４９８では、制御部２８は、ｃがＣと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４９０に戻す。
以上説明したＳ４９０乃至Ｓ４９８のループを繰り返した結果、ｃがＣと等しくなった場合には、処理はＳ４９８からこのループを抜けてＳ４９９に進む。
【０２７２】
次のＳ４９９では、制御部２８は、ｉが所定の繰り返し回数の値に達したか否かをチェックする。そして、もし達していなければ処理をＳ５００に移し、達していればＳ４８３乃至Ｓ５０１のループを抜けて処理をＳ５０２へ移す。
【０２７３】
Ｓ５００では、制御部２８は、配列型変数ｈの要素の最大値の添字を変数ｍａｘに代入する。また、最小値の添字を変数ｍｉｎに代入する。
次のＳ５０１では、制御部２８は、ｌ［ｍａｘ］の値に乱数を加算した値をｌ［ｍｉｎ］に代入する。同様に、ａ［ｍａｘ］の値に乱数を加算した値をａ［ｍｉｎ］に、ｂ［ｍａｘ］の値に乱数を加算した値をｂ［ｍｉｎ］に夫々代入する。尚、乱数の値は、ｌ［ｍａｘ］，ａ［ｍａｘ］，及びｂ［ｍａｘ］の値に比して小さな値とする。その後、処理はＳ４８３へ戻る。
【０２７４】
これに対し、Ｓ４９９にて、ｉが所定の繰り返し回数の値に達したと判断した場合、次のＳ５０２において、制御部２８は、変数ｇを０に初期化する。
次に、処理は、Ｓ５０３乃至Ｓ５０５のループに入る。
【０２７５】
このループに入って最初のＳ５０３では、制御部２８は、ｇをインクリメントする。
次のＳ５０４では、制御部２８は、第ｇ画素の色に最も近い色をＣ個の代表色の中から選択し、その代表色の番号を配列型変数ｄｓ［ｇ］に代入する。
【０２７６】
次のＳ５０５では、制御部２８は、ｇがＧｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ５０３に戻す。
以上説明したＳ５０３乃至Ｓ５０５のループを繰り返した結果、ｇがＧｎｕｍと等しくなった場合には、処理はＳ５０５からこのループを抜けてＳ５０６に進む。
【０２７７】
次のＳ５０６では、制御部２８は、配列型変数ｄｓの値が等しい要素に対応するマクロブロックが連接する領域を、色領域として検出する。
次のＳ５０７では、制御部２８は、Ｓ５０６で検出した色領域の数を変数ＩＲｎｕｍに代入する。
【０２７８】
次のＳ５０８では、制御部２８は、変数ｋを０に初期化する。
次に、処理は、Ｓ５０９乃至Ｓ５１４のループに入る。
このループに入って最初のＳ５０９では、制御部２８は、ｋをインクリメントする。
【０２７９】
次のＳ５１０では、制御部２８は、ノイズのカット等のため、第ｋ色領域を縮小する。
次のＳ５１１では、制御部２８は、第ｋ色領域を拡大する。
【０２８０】
次のＳ５１２では、制御部２８は、第ｋ色領域を構成する画素数が所定の閾値以上であるか否かをチェックする。そして、もし閾値以上であれば処理をＳ５１３へ移し、そうでなければ処理をＳ５１４へ移す。
【０２８１】
Ｓ５１３では、制御部２８は、第ｋ色領域の色に最も近い代表色の番号，第ｋ色領域の画素数，及び第ｋ色領域の重心座標を、第ｎ動体領域のラベル番号であるｎに対応させて、記憶装置２５中の特徴量データベースに書き込む。
【０２８２】
次のＳ５１４では、制御部２８は、ｋがＩＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ５０９に戻す。
以上説明したＳ５０９乃至Ｓ５１４のループを繰り返した結果、ｋがＩＲｎｕｍと等しくなった場合には、処理はＳ５１４からこのループを抜けてＳ５１５に進む。
【０２８３】
次のＳ５１５では、制御部２８は、ｎがＲｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４８０に戻す。
以上説明したＳ４８０乃至Ｓ５１５のループを繰り返した結果、ｎがＲｎｕｍと等しくなった場合には、処理はＳ５１５からこのループを抜けてＳ５１６に進む。
【０２８４】
次のＳ５１６では、制御部２８は、ｆがＦｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４０９に戻す。
以上説明したＳ４０９乃至Ｓ５１６のループを繰り返した結果、ｆがＦｎｕｍと等しくなった場合には、処理はＳ５１６からこのループを抜けてＳ５１７に進む。
【０２８５】
次のＳ５１７では、制御部２８は、ｓがＳｎｕｍと等しいか否かをチェックする。そして、もし等しくなければ処理をＳ４０６に戻す。
以上説明したＳ４０６乃至Ｓ５１７のループを繰り返した結果、ｓがＳｎｕｍと等しくなった場合には、処理はＳ５１６からこのループを抜けて処理を終了する。
【０２８６】
以上のようにして、制御部２８は、ＭＰＥＧデータ中から、動体領域を抽出するとともに、各動体領域の移動方向ベクトルを算出することができる。また、各動体領域中の色領域を抽出するとともに、各色領域の色に最も近い代表色番号，各色領域の画素数，及び各色領域の重心座標を検出することができる。
＜特徴量データの入力処理及び検索処理＞
本第３実施形態の検索データの入力処理及び当該検索データに基づく検索処理は、先述した第１実施形態と同様であるので、その説明を省略する。
【０２８７】
【発明の効果】
以上説明したように、本発明によれば、動画像データから動体領域を抽出するとともに、各動体領域の移動方向ベクトルを算出することができる。また、各動体領域中の色領域を抽出するとともに、各色領域の色に最も近い代表色番号，各色領域の画素数，及び各色領域の重心座標を検出することができる。このようにして抽出された特徴量データに基づいて動画像検索が行われるので、動体領域以外の背景の影響を受けることなく動画像検索を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態による動画像検索システムの構成を示すブロック図
【図２】図１の制御部において実行される制御処理を示すフローチャート
【図３】図１の制御部において実行される制御処理を示すフローチャート
【図４】図１の制御部において実行される制御処理を示すフローチャート
【図５】図１の制御部において実行される制御処理を示すフローチャート
【図６】図１の制御部において実行される制御処理を示すフローチャート
【図７】図１の制御部において実行される制御処理を示すフローチャート
【図８】図１の制御部において実行される制御処理を示すフローチャート
【図９】図１の制御部において実行される制御処理を示すフローチャート
【図１０】図１の制御部において実行される制御処理を示すフローチャート
【図１１】図１の制御部において実行される制御処理を示すフローチャート
【図１２】図１の制御部において実行される制御処理を示すフローチャート
【図１３】図１の制御部において実行される制御処理を示すフローチャート
【図１４】図１の制御部において実行される制御処理を示すフローチャート
【図１５】図１の制御部において実行される制御処理を示すフローチャート
【図１６】図１の制御部において実行される制御処理を示すフローチャート
【図１７】図１の制御部において実行される制御処理を示すフローチャート
【図１８】図１の制御部において実行される制御処理を示すフローチャート
【図１９】図１の制御部において実行される制御処理を示すフローチャート
【図２０】図１の制御部において実行される制御処理を示すフローチャート
【図２１】図１の制御部において実行される制御処理を示すフローチャート
【図２２】図１の制御部において実行される制御処理を示すフローチャート
【図２３】図１の制御部において実行される制御処理を示すフローチャート
【図２４】図１の制御部において実行される制御処理を示すフローチャート
【図２５】図１の制御部において実行される制御処理を示すフローチャート
【図２６】図１の制御部において実行される制御処理を示すフローチャート
【図２７】図１の制御部において実行される制御処理を示すフローチャート
【図２８】図１の制御部において実行される制御処理を示すフローチャート
【図２９】図１の制御部において実行される制御処理を示すフローチャート
【図３０】図１の制御部において実行される制御処理を示すフローチャート
【図３１】図１の制御部において実行される制御処理を示すフローチャート
【図３２】図１の制御部において実行される制御処理を示すフローチャート
【図３３】図１の制御部において実行される制御処理を示すフローチャート
【図３４】図１の制御部において実行される制御処理を示すフローチャート
【図３５】図１の制御部において実行される制御処理を示すフローチャート
【図３６】図１の制御部において実行される制御処理を示すフローチャート
【図３７】図１の制御部において実行される制御処理を示すフローチャート
【図３８】図１の制御部において実行される制御処理を示すフローチャート
【図３９】図１の制御部において実行される制御処理を示すフローチャート
【図４０】図１の制御部において実行される制御処理を示すフローチャート
【図４１】図１の制御部において実行される制御処理を示すフローチャート
【図４２】図１の制御部において実行される制御処理を示すフローチャート
【図４３】図１の制御部において実行される制御処理を示すフローチャート
【符号の説明】
１０  動画像検索システム
１１  マウス
１２  キーボード
１３  表示装置
２０  コンピュータ本体
２１  マウスインタフェース
２２  キーボードインタフェース
２３  表示装置インタフェース
２４  画像インタフェース
２５  記憶装置
２６  記憶装置インタフェース
２７  メモリ
２８  制御部
【図１】
0003808153.tif 000002
【図２】
0003808153.tif 000003
【図３】
0003808153.tif 000004
【図４】
0003808153.tif 000005
【図５】
0003808153.tif 000006
【図６】
0003808153.tif 000007
【図７】
0003808153.tif 000008
【図８】
0003808153.tif 000009
【図９】
0003808153.tif 000010
【図１０】
0003808153.tif 000011
【図１１】
0003808153.tif 000012
【図１２】
0003808153.tif 000013
【図１３】
0003808153.tif 000014
【図１４】
0003808153.tif 000015
【図１５】
0003808153.tif 000016
【図１６】
0003808153.tif 000017
【図１７】
0003808153.tif 000018
【図１８】
0003808153.tif 000019
【図１９】
0003808153.tif 000020
【図２０】
0003808153.tif 000021
【図２１】
0003808153.tif 000022
【図２２】
0003808153.tif 000023
【図２３】
0003808153.tif 000024
【図２４】
0003808153.tif 000025
【図２５】
0003808153.tif 000026
【図２６】
0003808153.tif 000027
【図２７】
0003808153.tif 000028
【図２８】
0003808153.tif 000029
【図２９】
0003808153.tif 000030
【図３０】
0003808153.tif 000031
【図３１】
0003808153.tif 000032
【図３２】
0003808153.tif 000033
【図３３】
0003808153.tif 000034
【図３４】
0003808153.tif 000035
【図３５】
0003808153.tif 000036
【図３６】
0003808153.tif 000037
【図３７】
0003808153.tif 000038
【図３８】
0003808153.tif 000039
【図３９】
0003808153.tif 000040
【図４０】
0003808153.tif 000041
【図４１】
0003808153.tif 000042
【図４２】
0003808153.tif 000043
【図４３】
0003808153.tif 000044