(57)【要約】【課題】  ビデオカムコーダで撮影した動画のショットは、数秒から長いものは一時間に及び、ショットの長さの分散が大きい。また、ショットが長いため、カット点画像が、必ずしも、ショットを代表するに相応しい画像とは言えない場合がある。このため、商用動画のカットに相当するショットを単位として統合し一覧したのでは、ユーザが所望する動画部分を効率的に検索することはできない。【解決手段】  ショットの境界が定義された動画像をフレーム単位に供給し(S801)、供給されたフレームの相関に基づき、ショットから一つ以上の代表フレームを検出し、動画へのリンク情報を対応付けたインデックスを生成し(S803-S806)、動画像およびインデックスに関する情報を記録媒体に記録する(S808)。【選択図】    図6
2005286390.tif 000002
【特許請求の範囲】
【請求項１】
ショットの境界が定義された動画像をフレーム単位に供給する供給手段と、
供給されたフレームの相関に基づき、ショットから一つ以上の代表フレームを検出し、動画へのリンク情報を対応付けたインデックスを生成するインデックス生成手段と、
前記動画像および前記インデックスに関する情報を記録媒体に記録する記録手段とを有し、
前記インデックス生成手段は、前記フレームの相関を算出するために、第一の相関算出手段、並びに、前記第一の相関算出手段より算出処理コストが高く、相関の許容範囲が広い第二の相関算出手段を有し、前記第一の相関算出手段によって得られた相関値に基づき、前記第二の相関算出手段の処理を実行するか否かを判定し、前記フレームの相関値を算出することを特徴とする画像処理装置。
【請求項２】
前記第一の相関算出手段は、フレームを所定の領域に分割して各領域を代表する特徴量を求め、相関を求めるフレーム間で、対応する領域同士の特徴量の差分を求め、その差分の総和によって前記フレームの相関を算出することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記第二の相関算出手段は、フレームを所定の領域に分割して各領域を代表する特徴量を求め、相関を求めるフレーム間で、対応する領域と所定の範囲内の周辺領域との特徴量の差分を求め、さらに、前記周辺領域については前記対応領域からの距離に基づき前記特徴量の差分に距離ペナルティを与えた上で最小になる差分値で各領域間の相関を求め、領域間の相関の総和によって前記フレーム相関を算出することを特徴とする請求項1に記載された画像処理装置。
【請求項４】
前記第二の相関算出手段はDPマッチングによってフレーム相関を算出することを特徴とする請求項1から請求項3の何れかに記載された画像処理装置。
【請求項５】
前記特徴量は、平均色、減色を行った上での高頻度色、ヒストグラム、テクスチャの何れか、または、それらの組み合わせであることを特徴とする請求項2から請求項4の何れかに記載された画像処理装置。
【請求項６】
ショットの境界が定義された動画像をフレーム単位に供給し、
供給されたフレームの相関に基づき、ショットから一つ以上の代表フレームを検出し、動画へのリンク情報を対応付けたインデックスを生成し、
前記動画像および前記インデックスに関する情報を記録媒体に記録し、
前記インデックス生成は、前記フレームの相関を算出するために、第一の相関算出ステップ、並びに、前記第一の相関算出ステップより算出処理コストが高く、相関の許容範囲が広い第二の相関算出ステップを有し、前記第一の相関算出ステップによって得られた相関値に基づき、前記第二の相関算出ステップを実行するか否かを判定し、前記フレームの相関値を算出することを特徴とする画像処理方法。
【請求項７】
情報処理装置を制御して、請求項6に記載された画像処理を実行することを特徴とするプログラム。
【請求項８】
請求項7に記載されたプログラムが記録されたことを特徴とする記録媒体
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその方法に関し、例えば、動画像のインデックス（索引）を生成し記録して、それに従い、動画像を再生する画像処理に関する。
【背景技術】
【０００２】
近年、動画が撮影可能なディジタルカメラ、携帯電話、ディジタルビデオカムコーダ(DVC)などの普及により、個人でも大量の動画を撮影するようになった。一般に、映像データは、そのデータ量が膨大であるが、その内容の概略を知る場合、所望のシーンを探す場合など、従来は映像を早送り再生したり、巻き戻し再生を行った。
【０００３】
上記の早送りや巻き戻し再生は効率のよい方法とは言えず、効率よくするために、例えば特公平5-74273号公報に記載されたカット点の画像データを代表画面として検出し、インデックス画像を作成する方法が発明された。このカット点とは、一般に、編集された動画において素材の繋ぎ目になる点をいう。DVCで撮影した動画の場合、撮影ボタンを押し、録画を開始してから終了するまでの一連の動画の単位をショットと呼び、ショットの先頭がカット点になる。
【０００４】
また、ショットの先頭が必ずしも代表画面として相応しい画像ではないという経験則から、特開昭64-113483号公報に記載されたビデオプリンタのように、カット点から所定時間後のフレームを代表画面として検出し、紙にプリントする方法がある。
【０００５】
上記の技術は、カット点を基準にして代表画面を選び出すもので、単にカット点の直後またはカット点から所定時間後のフレームを代表画面とするというものである。そこで、特許2677224号のように、最後に検出した代表フレームとの変化の関係によって代表画面を検出することで、パン（カメラを横方向に振る操作）、チルト（カメラを縦方向に振る操作）、ズーミングなどのカメラ操作や、被写体などが映っているオブジェクトの変化によってショットの途中でフレームの内容が変化した時点のフレームを代表画面として検出する手法が発明された。
【０００６】
また、特許3194837号および特許2677224号は、フレームを方形状のブロックに分割し、各ブロックの平均色を求め、各ブロック間の色の距離を定義し、その総和によってフレーム間の差を求めている。差が少ないフレームは相関が高いといえる。
【０００７】
一方、オブジェクトの動きを相関値に反映させるには、オブジェクトの探索範囲分のマッチングを行う必要がある。
【０００８】
例えば特開平11-39309号公報に記載された画像検索装置は、二次元画像マッチングによって二つの画像間の距離を算出する。これは、DP (Dynamic Programing)マッチングをこれを二次元の画像データに応用したものである。DPマッチングは、一次元データの伸縮を考慮したマッチングを行うことができる。
【０００９】
DPマッチングを利用したフレーム間の距離の求め方の概略を説明する。距離を求める二つのフレームをm×n個のブロックに分割し、各ブロックの平均色を求め、この平均色を例えば256色の中で最も近い色に変換することで色数を減らす（例えば、RGB各8ビットで表される色をR3ビット、G3ビット、B2ビットの計8ビットの色にすること）。そして色数を減らした後の各色（例えば256色）にラベルを付与してm×nのラベル行列を生成する。そして、DPマッチングによって、特徴量が近い、行単位のラベル列同士を対応付けて行並びをつくり、類似度を求め二つの画像間の距離を算出する。勿論、距離が小さい方がフレーム間の相関が高い。
【００１０】
また、別の例として、Ashleyほか「QBICにおける画像注釈および検索の自動および半自動方法 (Automatic and semiautomatic methods for image annotation and retrieval in QBIC)」（SPIE Proc. Storage and Retrieval for Image and Video Databases, p.24-35, 1995）に開示されたマッチングアルゴリズムがある。これは、距離を求める二つのフレームをそれぞれm×n個のブロックに分割し、各ブロックの平均色、テクスチャ、ヒストグラム情報を特徴量として用いて、一対のブロックの特徴量の距離を、これら三種類の特徴量の距離の重み付け総和と定義し、フレーム画像の距離を対応するブロック間の距離の総和として算出する。なお、対応するブロックの周辺ブロックの特徴量との間でも、中心からの距離に応じた重み付けを行った上で特徴量の距離を求め、このうち最小の距離をブロック間の距離とする。つまり、ブロック間の距離の算出に、周辺ブロックを考慮することで、オブジェクトの動きを相関値に反映させている。
【００１１】
しかし、特許2677224号に開示された方法は、フレームに映っているオブジェクトが移動し、ブロックの境界を超えた時点で適切な差が得られなくなる。ここで仮に、一つのブロックの大きさを大きくすることを考えると、ブロックの平均色は幾つかの物体の色を混ぜたものになってブロックを代表する色として相応しいとはいえず、相関値の精度が低下する。従って、フレームをブロックに分割し、各ブロックの平均色を求め、各ブロック間の色の距離を定義し、その総和によってフレーム間の差を求める方法は、算出コストは比較的低いが、得られる相関の許容範囲が狭い（例えばパン、チルト、被写体の変化により、オブジェクトがブロック境界を跨いで動いた場合に相関がないと判定される）といえる。その結果、検出される代表フレームが非常に多くなり、検出量を抑えようとする場合の限界性能が悪いという傾向がある。
【００１２】
また、特開平11-39309号公報に開示された二次元DPマッチングやQBICシステムは、オブジェクトがブロックの境界を超えてもオブジェクトの移動量を相関値に反映させることができる。しかし、動画のインデックスを生成する場合は、動画を符号化する場合に比べて、相関を求めるフレームの間隔が長く、オブジェクトの移動範囲を広く想定しなければならないため、広い探索範囲についてマッチングを行う必要があり、計算コストが非常に高くなるという問題がある。
【００１３】
【特許文献１】特公平5-74273号公報
【特許文献２】特開昭64-113483号公報
【特許文献３】特許2677224号公報
【特許文献４】特許3194837号公報
【特許文献５】特許2677224号公報
【特許文献６】特開平11-39309号公報
【非特許文献１】SPIE Proc. Storage and Retrieval for Image and Video Databases, p.24-35, 1995
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、上述の問題を個々にまたはまとめて解決するもので、動画像の所望するシーンの検索を低コストかつ効率的に、検出頻度を抑えて行うことを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１６】
本発明にかかる画像処理装置は、ショットの境界が定義された動画像をフレーム単位に供給する供給手段と、供給されたフレームの相関に基づき、ショットから一つ以上の代表フレームを検出し、動画へのリンク情報を対応付けたインデックスを生成するインデックス生成手段と、前記動画像および前記インデックスに関する情報を記録媒体に記録する記録手段とを有し、前記インデックス生成手段は、前記フレームの相関を算出するために、第一の相関算出手段、並びに、前記第一の相関算出手段より算出処理コストが高く、相関の許容範囲が広い第二の相関算出手段を有し、前記第一の相関算出手段によって得られた相関値に基づき、前記第二の相関算出手段の処理を実行するか否かを判定し、前記フレームの相関値を算出することを特徴とする。
【００１７】
本発明にかかる画像処理方法は、ショットの境界が定義された動画像をフレーム単位に供給し、供給されたフレームの相関に基づき、ショットから一つ以上の代表フレームを検出し、動画へのリンク情報を対応付けたインデックスを生成し、前記動画像および前記インデックスに関する情報を記録媒体に記録し、前記インデックス生成は、前記フレームの相関を算出するために、第一の相関算出ステップ、並びに、前記第一の相関算出ステップより算出処理コストが高く、相関の許容範囲が広い第二の相関算出ステップを有し、前記第一の相関算出ステップによって得られた相関値に基づき、前記第二の相関算出ステップを実行するか否かを判定し、前記フレームの相関値を算出することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、低処理コストで相関の許容範囲が狭い第一の相関算出と、それよりも処理コストが高いが、許容範囲が広い第二の相関算出を組み合わせることで、動画像の所望するシーンの検索を低コストかつ効率的に、検出頻度を抑えて行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明にかかる一実施形態の画像処理装置を図面を参照して詳細に説明する。
【実施例１】
【００２０】
図1は実施例1の、リムーバブルな光磁気ディスク型の記録媒体を用いるディジタルカムコーダの構成例を示すブロック図である。
【００２１】
主制御部201は、CPU 202、ROM 203、RAM 204などを有し、CPU 202はROM 203に格納された制御プログラムなどを実行することで、以下に説明する各種処理を含む、ディジタルカムコーダにおける各種制御を実行する。ROM 203には、図2に示す各種処理を制御プログラムとして格納する。具体的には、ドライブユニット205を制御するためのドライブ制御部301、ドライブユニット205に装着された光磁気ディスク206に動画を記録し再生するための動画記録部302、光磁気ディスク206に格納された動画を時間管理するためのタイムコードを更新するタイムコードカウンタ303、撮影日時などを取得するための日時タイマ304、光磁気ディスク206に格納された動画のインデックスを生成するインデックス生成部305、第一フレーム相関算出部306、第二フレーム相関算出部307などを有する。
【００２２】
また、ドライブユニット205は、メカ機構、サーボ機構、光ピックアップなどから構成され、主制御部201によって制御される。
【００２３】
［初期化処理］
次に、ドライブユニット205に光磁気ディスク206が装着された際の初期化処理を説明する。
【００２４】
光磁気ディスク206の装着を検知したドライブ制御部301は、図3に示す光磁気ディスク206上の情報（メディア管理情報401、ショット管理情報402およびインデックス管理情報403）を不揮発性メモリ211に読み込む。
【００２５】
図4は光磁気ディスク206から情報401-403が読み込まれた後の不揮発性メモリ211の記憶状態を示す図である。カムコーダID 501は、個々のカムコーダを識別するための識別子で、九桁の数字で表現され、カムコーダの製造時に記録される。メディアカウンタ502は、カムコーダが扱った未使用のメディアの数をカウントアップするカウンタで、カムコーダの製造時は「0」が格納される。また、光磁気ディスク206から読み込まれるメディア管理情報401には、メディアID 503、最新更新日時504、最大タイムコード505、ショット数506およびインデックス数507などの情報が含まれる。
【００２６】
ドライブ制御部301は、メディア管理情報401を不揮発性メモリ211に読み込むと、装着された光磁気ディスク206が未使用か否かを判定する。光磁気ディスク206のメディアID 503は製造時に「0」に設定されるから、メディアID 503の値が「0」であれば、その光磁気ディスク206は未使用であると判定する。そして、未使用の光磁気ディスク206の場合は、最大タイムコード505、ショット数506およびインデックス数507にそれぞれ初期値「0」を代入し、続いて、メディアカウンタ702をインクリメントする。さらに、メディアを識別するためのIDを新たに生成して、生成したIDをメディアID 503に書き込む。生成するIDは、例えば、不揮発性メモリ211に記録されたカムコーダID（九桁）を上位九桁とし、メディアカウンタ502のカウント値（三桁）を下位三桁とする12桁の符号にする。なお、ID等の桁数に制限はない。また、光磁気ディスク206が未使用ではないと判定された場合、メディアカウンタ502およびメディアID 503の更新は行わない。
【００２７】
［動画の記録］
次に、動画の記録過程を説明する。
【００２８】
入力部212の撮影開始ボタンが押されると、光学系207を通して撮像素子208に投影される被写体の反射光は電気信号に変換される。撮像素子208から1フレームのすべての画素が順次走査で読み出され撮像系処理部209に入力される。撮像系処理部209は、ノイズ除去、自動ゲイン調整を行った後、A/D変換した、輝度信号Yと色差信号Pr、Pbに分離したYPrPbデータを生成する。このYPrPbデータは、バッファメモリ210に蓄積された後、動画記録部302により、離散コサイン変換(DCT)を用いる圧縮アルゴリズムによって圧縮され、最後に、同期符号やエラー訂正符号などが付加され、ドライブユニット205を介して、光磁気ディスク206上の動画記録領域404（図3参照）に記録される。このようにして、入力部212の撮影終了ボタンが押されるまで、動画の記録が続けられる。
【００２９】
一方、撮影開始ボタンが押され、サーボ機構が安定して、上述した動画の記録が開始されると、タイムコードカウンタ303はフレーム単位のカウントアップを開始し、インデックス生成部305はインデックスの生成を開始して、生成したインデックスを不揮発性メモリ211にインデックス管理情報403として記録する。このインデックスの生成および記録は後に詳しく説明する。
【００３０】
また、動画の記録が開始されると、ドライブ制御部301は、不揮発性メモリ211のショット数506をインクリメントし、ショット管理情報402の中の有効なショット情報の末尾に、新たに生成したショット情報を追加する。図5に示すように、ショット管理情報402は複数のショット情報から構成され、各ショット情報はショット番号、タイムコードおよび撮影日時を含む。生成されるショット情報は、ショット番号としてショット数506の値を、タイムコードとして最大タイムコード505の値を、撮影日時として撮影開始ボタンが押されたタイミングの日時タイマ304の値をもつ。
【００３１】
さらに、撮影終了ボタンによって動画の記録が終了すると、ドライブ制御部301は、タイムコードカウンタ303のカウントアップを停止し、その時点のタイムコードカウンタ303の値を最大タイムコード505として不揮発性メモリ211に格納する。さらに、日時タイマ304の値を最新更新日時504として不揮発性メモリ211に書き込んだ後、不揮発性メモリ211上のメディア管理情報401、ショット管理情報402およびインデックス管理情報403を光磁気ディスク206に書き込む。
【００３２】
［インデックスの記録］
図6はインデックス生成部305のインデックスの記録過程を説明するフローチャートである。
【００３３】
入力部212の撮影開始ボタンが押され、上述した動画記録が開始されると、バッファメモリ210に蓄積された動画の1フレーム分のYPrPbデータを取り出し(S801)、フレームの取り出しができたか否かを判定する(S802)。フレームを取り出すことができた場合は、取り出したフレームの画像データから第一の特徴量を抽出する(S803)。抽出する特徴量は、フレームを例えばN×M個のブロックに分割した各ブロックの平均色を、各ブロックの位置に対応付けたものとする。次に、画像データ、特徴量およびタイムコードを、図7に示すように、RAM 204に割り当てられたキャッシュバッファに格納する(S804)。
【００３４】
キャッシュバッファは、リングバッファで構成され、インデックス生成の開始時に初期化される。キャッシュバッファのサイズは、代表フレームの抽出処理における、後述する探索範囲または相関を求めるフレームを決定するのに必要な大きさの、どちらか大きな方のサイズである。
【００３５】
次に、キャッシュバッファに所定量のデータが溜まったか否かの判定により(S805)、データ量が所定量溜まるまで、ステップS801からS804の処理を繰り返す。
【００３６】
データ量が所定量溜まると、あるいは、撮影終了ボタンが押されてフレームを取り出すことができなかったと判定(S802)すると、代表フレームの抽出処理を行う(S806)。この処理の概要は、キャッシュバッファにバッファされた一つのフレームに注目して、注目フレームが代表フレームになり得るか否かを評価し、代表フレームになり得る場合は、その近傍のフレームを参照して、注目フレームが代表フレームに適するか否かを判断し、適すると判断した場合にはインデックスへ追加するものである。
【００３７】
次に、最後のフレームまで評価したか判定する(S807)。例えば、撮影終了ボタンが押されて録画が終了し、バッファメモリ210上に未処理のフレームがなければ、最後のフレームまで評価したと判定することができる。キャッシュバッファによって取り出すフレームと代表フレームとして評価するフレームに遅延が生じているので、先のS805でインデックス生成を開始してから一定時間代表フレームを評価していない分、フレームが取り出せなくなってからも同じ時間分の評価を行うものである。最後フレームまで処理していなかったらS801へ戻り、処理していたらS808に進む。
【００３８】
最後に、インデックス情報を不揮発性メモリ211のインデックス管理情報403に記録して(S808)、処理を終了する。
【００３９】
［代表フレームの抽出処理］
図8は代表フレームの抽出処理(S806)を説明するフローチャートである。
【００４０】
まず、相関を求めるフレームを決定する(S901)。相関を求めるフレームは、注目フレームと、次式によって求まるタイムコードtcのフレームである。
tc = tp + a + b(tn - tp)
ここで、tc ＜ tn
tnは注目フレームのタイムコード
tpは直前の代表フレームのタイムコード
a ≧ 0、0 ≦ b ≦ 1
【００４１】
なお、タイムコードtnは、インデックス生成の開始時に「0」に初期化され、本処理が呼び出される度に1フレーム分ずつ増加する。
【００４２】
また、aおよびbは、代表フレームの検出頻度を調整するパラメータである。例えば、a=3（秒）、b=0とすると、a=0、b=0の場合に比べて、動きの激しい区間において局所的に多くのフレームが検出されるのを防ぐことができる。また、a=0、b=0.5とすると、直前の代表フレームと注目フレームの中央を参照することになる。これによりa=0、b=0の場合に比べて、動きの少ない個所においても代表フレームの検出量を抑制することができる。aおよびbの両係数の値は、インデックス生成時に決定してもよいし、また、検出された代表フレームの頻度などによりインデックス生成中に制御してもよい。ただし、b=0とした場合のキャッシュバッファのサイズは、1フレーム分の特徴量を記憶できればよいが、例えばb=1とした場合は動画全体分の特徴量をキャッシュ可能なサイズが必要になる。
【００４３】
もし、キャッシュバッファとして充分なメモリサイズが確保できない場合は、次のような方法によって、容易に解決することができる。第一の方法は、代表フレームの間隔に最大値を設け、所定時間以上、代表フレームが検出されない場合は、最後の代表フレームから所定時間経過後のフレームを代表フレームとして出力する。また、第二の方法は、タイムコードtcの分解能を、1フレーム単位から、例えば5フレーム単位のように落として、特徴量を保存するフレームを五分の一に間引く。
【００４４】
次に、注目フレームがショットの先頭か否かを評価する(S902)。ショットの先頭フレームは、必ず、代表フレームとして採用するため、その場合は処理をステップS910へ進める。また、注目フレームがショットの先頭フレームでなければ、相関を求めるフレームが特定できない場合（例えばtc≧tnの場合）は処理を終了する(S903)。
【００４５】
相関を求めるフレームが特定された場合は、第一フレーム相関算出部306により相関判定処理を行う(S904)。具体的には、タイムコードtnおよびtcに相当するフレームの第一の特徴量をキャッシュバッファから取得して、次式により、N×M個のブロックの特徴量間の距離d1の総和を求める。
d1 = Σn=1NΣm=1M{w1×|Yi(n, m) - Yq(n, m)|
+ w2×|Pri(n, m) - Prq(n, m)|
+ w3×|Pbi(n, m) - Pbq(n, m)|}
ここで、n、mはブロックの水平、垂直方向のインデックス番号
Yi(n, m)はn×m番目のブロックの平均色の輝度
Pri(n, m)、Pbi(n, m)はn×m番目のブロックの平均色の色差
Yq(n, m)は抽出した特徴量中の第(n, m)ブロックの平均色の輝度
Prq(n, m)、Pbq(n, m)は上記第(n, m)ブロックの平均色の色差
w1、w2、w3はそれぞれ距離dを算出する際の重み
【００４６】
なお、重みw1、w2、w3は精度が向上するように値を調整するものとする。そして、距離d1が小さいほど、特徴量が類似し、フレームの相関が高いと判定する。
【００４７】
次に、距離d1と所定の閾値S1とを比較する(S905)。d1≦S1の場合、注目フレームと直前の代表フレームが類似しているので終了する。なお、閾値S1はインデックス生成時に決定してもよく、また、検出された代表フレームの頻度などによってインデックス生成中に閾値S1を制御するようにしてもよい。
【００４８】
また、d1＞S1の場合は、相関を求めるそれぞれのフレームから第二の特徴量を抽出する(S906)。第二の特徴量は、代表フレームを例えばN2×M2（ただし、N2≧N、M2≧M）のブロックに分割した各ブロックの平均色を各ブロックの位置に対応付けたものとする。ここで、高速化のために、RAM 204に割り当てられたキャッシュバッファに新たな項目を設け、前述したステップS804において、第二の特徴量に必要な情報を格納してもよい。例えば、（NとN2の最小公倍数）×（MとM2の最小公倍数）になるようにブロックを分割して、平均色を求めたものをキャッシュバッファに格納してもよい。このとき最小公倍数が低くなるようにブロック分割数を決めることで、複数の特徴量を生成するために必要な処理コストの増加を最小限にすることができる。また、N2＝NかつM2＝Mになるように分割数を決めれば、第二の特徴量は第一の特徴量と同一であり、本ステップの処理は省略することができる。
【００４９】
次に、第二フレーム相関算出部307により第二の相関判定処理を行う(S907)。具体的には、フレームに映っているオブジェクトがブロック境界を超えて移動しても、それを相関値として反映することができる判定処理を行って距離d2を求める。例えば、上述した二次元DPマッチングやQBICシステムにおける画像マッチングアルゴリズムを使用すればよい。
【００５０】
次に、距離d2と所定の閾値S2とを比較する(S908)。d2≦S2の場合、注目フレームと直前の代表フレームが類似しているので終了する。なお、閾値Sはインデックス生成時に決定してもよく、また、検出された代表フレームの頻度などによってインデックス生成中に閾値Sを制御するようにしてもよい。また、d＞Sの場合は、タイムコードtnの近隣で、より代表フレームとして適したフレームを探すため、後述する探索処理を行う(S909)。
【００５１】
次に、インデックス管理情報403の各項目に、検出した情報を設定し、キャッシュバッファ上の代表フレームの画像データから縮小画像（サムネイル画像）を作成して、図9に示すように、インデックス管理情報に追加し(S910)、処理を終了する。なお、縮小画像は、キャッシュバッファに画像データの登録する際に作成しておいてもよいが、そうすれば、全フレームに対して縮小画像を作ることになるので、縮小率、割当可能なメモリ量、特徴量を抽出する過程で生成されるデータの再利用性、縮小処理の処理コストなどを勘案して決定する。
【００５２】
次にステップS910に進み、インデックス情報の作成を行う。まず、キャッシュバッファ上の追加する代表フレームの画像データから縮小画像（サムネイル画像）を作成する。なお、キャッシュバッファ上の画像データは、キャッシュバッファに登録するときに縮小画像を作成してもよい。この場合、全フレームに対して縮小画像を作ることになるので、縮小率と割り当て可能なメモリ量、特徴量を抽出する過程で生成されるデータの再利用性、縮小処理のコストなどを勘案して決定すればよい。また、インデックス管理情報の各項目に検出した個所に関する情報を設定して処理を終了する。
【００５３】
［探索処理］
探索処理の目的は、前段の処理において代表フレームの候補として選ばれたフレームの近隣で、より代表フレームとして適したフレームを探索することである。そのために、本実施例における探索処理は所定の間隔で離れたフレームの相関を求めて、動きの少ない所、すなわち、ブレの少ない個所（フレーム）を選択する。
【００５４】
図10は探索処理の詳細を説明するフローチャートである。
【００５５】
まず、変数を初期する(S1001)。すなわち、基準になるフレーム位置を示す変数tにタイムコードtn、また、最も動きが少ない個所の距離を示す変数min_dに「∞」を設定する。
【００５６】
次に、ループを制御するための変数iに「0」を、変数kに探索範囲を示す値を代入し(S1002)、ループ終了判定を行い(S1003)、ループが終了した(i=k)場合は探索処理を終了して、探索結果を出力する。ここで、kは探索範囲の上限を示す所定の値である。
【００５７】
次に、前方探索を行うか否かを判定する(S1004)。この判定は、次に距離dを求めるべきフレームが前の代表フレームや、それよりも時間的に前の場合は探索は不要であること、また、ステップS901の処理における係数aの値によっては前方向のフレームは直前の代表フレームと相関が高くなるため、後方の探索範囲よりも前方の探索範囲を狭くしてもよいこと、を考慮したものである。その場合、変数iが探索範囲k未満の所定の閾値を超えた時点で探索不要と判定してもよい。そして、前方探索が不要の場合は処理をステップS1008へ進める。
【００５８】
前方探索が必要な場合は、タイムコード(t-i-n)と(t-i)のフレームの特徴量をキャッシュバッファから得て距離dを求める(S1005)。なお、距離dはステップS904と同様の方法で求める。ただし、nは零ではない所定の整数である。また、暗い場所の撮影時は、撮像素子から映像を取り出す間隔を拡げて明るさを確保する撮像系があるが、この場合、同じ内容のフレームが続いてしまうので、nを零近くに設定することは適さない。そして、求めた距離dと今までの距離の最低値min_dを比較し(S1006)、d＜min_dの場合は、今までの探索範囲の中で最も動画の動きが少ないと判断し、探索結果を更新する(S1007)。つまり、min_dにdを代入し、タイムコードt-iの位置のフレームを代表フレームの候補にする。
【００５９】
次に、後方探索を行うか否かを判定する(S1008)。この判定は、次に距離を求めるべきフレームが次のショットになる場合に探索は不要であることを考慮したものである。そして、後方探索が不要の場合は処理をステップS1012へ進める。
【００６０】
後方探索が必要な場合は、タイムコード(t+i-n)と(t+i)のフレームの特徴量をキャッシュバッファから得て距離dを求め(S1009)、求めた距離dと今までの距離の最低値min_dを比較し(S1010)、d＜min_dの場合は、今までの探索範囲の中で最も動画の動きが少ないと判断し、探索結果を更新する(S1011)。つまり、min_dにdを代入し、タイムコードt+iの位置のフレームを代表フレームの候補にする。
【００６１】
次に、変数iをインクリメントすることで探索範囲を1フレーム分拡げ(S1012)、処理をステップS1003に戻す。
【００６２】
図11はディジタルカムコーダ（またはディジタルカメラ）の他の構成例を示すブロック図である。記録媒体としてカード型の不揮発性メモリ（メモリカード）2301を使用する点、および、メカ部をもたないためドライブユニット205が省かれている点が実施例1と異なる部分である。基本動作は、可動部をもたない点を除き、実施例1と同じである。動画を扱う場合、実施例1における光磁気ディスク206の構成（図3参照）と同じ構成をメモリカード2301にもたせるだけで、実施例1と同様な処理を行うことができる。
【実施例２】
【００６３】
以下、本発明にかかる実施例2の画像処理を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６４】
図12は実施例2におけるコンピュータの構成例を示すブロック図で、光学系207、撮像素子208、撮像系処理部209、バッファメモリ210、不揮発性メモリ211が省かれ、代わりにハードディスク2502が接続されている点、並びに、通信インタフェイス(I/F) 214およびネットワーク2503を介して他のコンピュータ2504と接続可能な点で実施例1の構成と異なる。
【００６５】
実施例2の構成（コンピュータ）は、動画を直接撮影し記録する機能をもたないが、光磁気ディスク206に格納された動画、もしくは、他のコンピュータ2504に保存されている動画をネットワーク2503経由で、ハードディスク2502に格納することができる。また、実施例1において、光磁気ディスク206（もしくはメモリカード2301）に格納されていたメディア管理情報、ショット管理情報、インデックス管理情報は、ハードディスク2502に格納され、不揮発性メモリ211に読み込まれていたメディア管理情報、ショット管理情報、インデックス管理情報、グループ管理情報はRAM 204の所定領域に読み込まれる。
【００６６】
そして、ハードディスク2502に格納された動画に対して、インデックス生成部305において、実施例1と同様に、メディア管理情報、ショット管理情報、インデックス管理情報、グループ管理情報を作成、更新することが可能である。この処理は、ハードディスク2502に動画を格納するときに行ってもよい。
【００６７】
また、実施例2はコンピュータであるから、動画記録部302、インデックス生成部305における各処理プログラムを、予め光磁気ディスク206に記憶しておき、コンピュータの起動時にRAM 204へ読み込んで、RAM 204上の処理プログラムとして実行するようにしてもよい。
【００６８】
［変形例］
上記では、記録媒体上の開始位置または開始時間を表す情報としてタイムコードを用いる例を説明したが、その他の情報、例えば実時間（時計）であってもよい。あるいは、先頭からのフレーム番号であってもよい。
【００６９】
また、上記では、インデックスの生成方法や、インデックスの選択方法において、供給されたフレーム画像から特徴量を求める例を説明したが、フレーム画像に色変換やエッジの抽出、トリミング、マスキングなど、ある処理を加えて二次的に得られる画像を用いてもよい。また、近隣のフレームとの時間的に平均したものでもよい。時間的に平均することで、ノイズや不揮発性などで1フレームだけ前後のフレームと異なっていた場合にも、その影響を抑えた代表フレームの検出が可能になる。
【００７０】
相関を求める特徴量として、上記では、格子状のブロック分割を用いる例を説明したが、低処理コストで相関の許容範囲が狭い第一の相関算出方法と、それよりも処理コストが低いが、許容範囲が広い第二の相関算出方法を組み合わせるのであれば、相関算出方法、および、フレーム画像から得る特徴量は他の方法でもよい。例えば、ISO/IEC 15938-3に規定されている、色やテクスチャや形状などの画像の特徴記述子を用いてもよい。
【００７１】
また、上記では、インデックスの記録において、画像データは、縮小画像を記録する例を説明したが、ステップS801で取り出した画像データそのものでもよい。また、実施例2では、動画データ中の所望のタイムコードへのアクセスが短時間で可能になるため、動画から画像データを取得することができる。そのため、インデックス中の画像データは格納しなくてもよい。この場合はインデックス情報のデータ量を削減できる。
【００７２】
また、インデックス情報には代表フレームに関する付属情報を一緒に記録してもよい。付属情報は、例えば、代表フレームがショット先頭か否かを表す情報、音声情報、音声認識を行った結果の文字情報、フレーム内に映っているテロップなどの文字を文字認識した結果の文字情報、露出状態などのカメラの情報やパンやズームなどのカメラワーク情報などがある。これらの情報は代表フレームとともに表示、印刷する際に併記して出力することで、人が所望の代表フレームを見付け易くなる。また、文字情報は、代表フレームのキーワードによる検索処理に利用することができる。
【００７３】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００７４】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００７６】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７７】
【図１】実施例1の、リムーバブルな光磁気ディスク型の記録媒体を用いるディジタルカムコーダの構成例を示すブロック図、
【図２】ROMに格納された各種処理の制御プログラムを示す図、
【図３】光磁気ディスクに格納された各種情報を示す図、
【図４】光磁気ディスクから情報が読み込まれた後の不揮発性メモリの記憶状態を示す図、
【図５】ショット管理情報を説明する図、
【図６】インデックス生成部によるインデックスの記録過程を説明するフローチャート、
【図７】キャッシュバッファの格納状態を説明する図、
【図８】代表フレームの抽出処理を説明するフローチャート、
【図９】インデックス管理情報を説明する図、
【図１０】探索処理の詳細を説明するフローチャート、
【図１１】ディジタルカムコーダ（またはディジタルカメラ）の他の構成例を示すブロック図、
【図１２】実施例2におけるコンピュータの構成例を示すブロック図である。
【図１】
2005286390.tif 000003
【図２】
2005286390.tif 000004
【図３】
2005286390.tif 000005
【図４】
2005286390.tif 000006
【図５】
2005286390.tif 000007
【図６】
2005286390.tif 000008
【図７】
2005286390.tif 000009
【図８】
2005286390.tif 000010
【図９】
2005286390.tif 000011
【図１０】
2005286390.tif 000012
【図１１】
2005286390.tif 000013
【図１２】
2005286390.tif 000014