(57)【特許請求の範囲】
【請求項１】
レイアウト領域上での表示のために複数の映像フレームを空間的に配置する方法をコンピュータに実行させるプログラムであって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
をコンピュータに実行させるプログラム。
【請求項２】
前記レイアウト領域において、前記レイアウトパスに沿った位置にアンカーポイントを決定する決定工程をさらに含み、
前記配置工程では、前記選択された複数の映像フレームのそれぞれに対して前記決定工程において決定されたアンカーポイントに、前記選択された複数の映像フレームのそれぞれを配置する、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記オブジェクトの前記動作の不規則性に応じて前記選択された映像フレームのそれぞれについてフレーム表示特性を決定する工程をさらにコンピュータに実行させる、ことを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記選択された複数の映像フレームは、前記決定されたフレーム表示特性に従って配置される、ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記フレーム表示特性は、フレームの相対サイズ、当該フレームの回転の角度、当該フレームの透明度、当該フレームの色相、当該フレームの彩度、当該フレームのレイアウトパスからのオフセット、当該フレームの歪み、当該フレームの切り出し、及び当該フレームのコントラストを含むグループのうちの１つ以上である、ことを特徴とする請求項３又は４に記載のプログラム。
【請求項６】
前記オブジェクトの動作パスを決定する工程をさらにコンピュータに実行させる、ことを特徴とする請求項１から５のいずれか１項に記載のプログラム。
【請求項７】
前記動作パスの形状は、前記レイアウトパスを生成するために、前記動作パスの形状特性に基づいて修正される、ことを特徴とする請求項６に記載のプログラム。
【請求項８】
前記映像フレームは、当該映像フレームにおける前記オブジェクトの相対動作に対して空間的に配置される、ことを特徴とする請求項１から７のいずれか１項に記載のプログラム。
【請求項９】
前記動作パスの重複する部分を空間的に分離する工程をさらにコンピュータに実行させる、ことを特徴とする請求項６に記載のプログラム。
【請求項１０】
方向における時間関数を追加することにより、前記動作パスの位置を当該方向において変更する工程をさらにコンピュータに実行させる、ことを特徴とする請求項６に記載のプログラム。
【請求項１１】
隣接する選択されたフレームの各ペア間の加速の方向にオフセットを含めるように、前記動作パスを修正することをさらに含む、ことを特徴とする請求項６に記載のプログラム。
【請求項１２】
前記配置される映像フレームのサイズと重複との少なくともいずれかが、前記オブジェクトの前記動作に基づいて判定される、ことを特徴とする請求項１から１１のいずれか１項に記載のプログラム。
【請求項１３】
前記オブジェクトの前記動作の不規則性に基づいて、１つ以上のフレーム表示特性を調整する工程をさらにコンピュータに実行させる、ことを特徴とする請求項１から１２のいずれか１項に記載のプログラム。
【請求項１４】
前記判定工程では、前記映像シーケンス内の映像フレームにおける前記オブジェクトの位置と、移動する前記オブジェクトと静止背景との間の相対位置との少なくともいずれかに基づいて、決定される、ことを特徴とする請求項１から１３のいずれか１項に記載のプログラム。
【請求項１５】
前記選択工程では、前記判定工程において判定された軌跡に基づいて、前記複数の映像フレームを選択する、ことを特徴とする請求項１から１４のいずれか１項に記載のプログラム。
【請求項１６】
前記選択工程では、前記オブジェクトの動作における突然の変化を判定することにより前記映像フレームが選択される、ことを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記選択工程では、前記オブジェクトのスピードにより、前記映像フレームが選択される、ことを特徴とする請求項１から１６のいずれか１項に記載のプログラム。
【請求項１８】
レイアウト領域上での表示のために複数の映像フレームを空間的に配置するシステムであって、
データ及びコンピュータプログラムを記憶するためのメモリと、
前記コンピュータプログラムを実行するための、前記メモリに接続されたプロセッサとを含み、
前記コンピュータプログラムは、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
をコンピュータに実行させるための命令を有する、ことを特徴とするシステム。
【請求項１９】
レイアウト領域上での表示のために複数の映像フレームを空間的に配置する装置であって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定手段と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択手段と、
前記選択手段によって選択された前記複数の映像フレームが、前記判定手段によって判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置手段と、
を有することを特徴とする装置。
【請求項２０】
レイアウト領域上での表示のために複数の映像フレームを空間的に配置する方法であって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト領域上での表示のために複数の映像フレームを空間的に配置するためのプログラム、システム、装置、及び方法に関する。
【背景技術】
【０００２】
カメラ、スマートフォン、ビデオカメラなどのデバイスを用いて結婚式や旅行などのイベントの映像が撮像されている。映像は、長さが様々であり、多くの場合、イベントの全てを物語るために組み合わせられる必要がある。時として、組み合わせられた映像は、長く、見るのに多大な時間を要しうる。イベントの短い概要または物語を提供する１つの方法は、映像から取り出されたフレームを用いてフォトブックを生成することである。しかしながら、フォトブックは、それが従来の方法を用いて行うために、特に複雑な動作を表すために、多くのフレームを必要とすることから、映像内に存在する動作の自然な感覚を一般に提供しない。
【０００３】
さらに、非常に多くのフレームが存在する場合、Ａ４ページなどのページ内にフレームを適合させることは困難である。したがって、ほとんどのレイアウトは、フォトブックの美的感覚を重視し、又は単純な動作のみを表現する。
【０００４】
ある従来方法では、所定のレイアウトを用いてフォトブック内に画像が配置され、その所定のレイアウトは、時間及び方向に基づき、レイアウトは、所定の配置点を有するパスによって特徴付けられる。また、配置点は時間または方向によって特徴付けられる。このフォトブックの方法において、画像から抽出された時間／方向情報を配置点に関連する時間／方向と整合させることによって、画像がパスに沿って配置される。しかしながら、このような方法では、レイアウトのパスが事前に定められる必要があることが不利である。また、本方法は、単純な動作を記述するためにのみ用いることができ、レイアウトがローカル動作特性に基づいて変化しない。
【０００５】
第２の従来方法では、１つ以上の動作主体の動作を表現する映像から視覚的な物語を生成するのに、モザイキングシステムが用いられる。この第２の既知の方法では、一連の時間と空間に関するマスクを用いて単一のパノラマ画像を生成するために、映像フレームの前景領域と背景領域が合成される。ユーザは、線形パノラマ画像を生成するためにフレームを選択する。しかしながら、この方法では、レイアウトパス上の画像が動作を示していても、パノラマ画像を生成するためのパスおよび画像をユーザが選択する必要があることが不利である。さらに、パノラマ画像は、線形であり、複雑な動作を表現するのに多くのフレームを必要とする。
【０００６】
第３の従来方法では、ページサイズ、決定的なフレーム（すなわち、突然の動作の変更によって特徴付けられる動作シーケンスにおいて際立ったフレーム）、及びその決定的なフレームの周辺のフレームを選択するためのグラフィカルユーザインタフェースが提供される。この第３の従来方法ではテンプレートが用いられ、フレームはそのテンプレートに適合するようにされる。しかしながら、この第３の方法は、上述の他の方法と同様に、レイアウトパスの選択が動的でないという不利点を有する。レイアウトパスへの画像の配置も動的ではない。レイアウトパスと画像特性は動作を表現しない。
【０００７】
映像の概要画像において、人物などの移動するオブジェクトの追跡を表そうとする際に、同様の問題が生じる。１つの方法では、移動するオブジェクト又はそのオブジェクトを表すブロッブの画像が、オブジェクト追跡上での変動する不透明部によって示される。不透明部は、移動または停止などのオブジェクトの動作に起因して混合しうる。変動する不透明部の方法は、レイアウトパスが動的であり、レイアウトパス上のブロッブが動作を示すという利点を有する。しかしながら、移動オブジェクト画像又はブロッブに代わって映像フレームを用いてこの変動する不透明部の方法をフォトブックに適用することは、単純な動作を示す単一の画像のみを生成するだろう。さらに、変動する不透明部の方法を用いて、単一画像において、各追跡位置におけるすべてのブロッブの特性を示すのは困難である。
【０００８】
このように、映像フレーム画像をレイアウトする際に、フォトブックのページレイアウト内で動作を表現するのは困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、既存の構成の１つ以上の不利点を実質的に解消する、又は少なくとも改善することである。
【課題を解決するための手段】
【００１０】
本開示の一態様によれば、レイアウト領域上での表示のために複数の映像フレームを空間的に配置する方法をコンピュータに実行させるプログラムであって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
をコンピュータに実行させるプログラムが提供される。
【００１１】
本開示の別の態様によれば、レイアウト領域上での表示のために複数の映像フレームを空間的に配置するシステムであって、
データ及びコンピュータプログラムを記憶するためのメモリと、
前記コンピュータプログラムを実行するための、前記メモリに接続されたプロセッサとを含み、
前記コンピュータプログラムは、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
をコンピュータに実行させるための命令を有する、ことを特徴とするシステムが提供される。
【００１２】
本開示のさらに別の態様によれば、レイアウト領域上での表示のために複数の映像フレームを空間的に配置する装置であって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定手段と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択手段と、
前記選択手段によって選択された前記複数の映像フレームが、前記判定手段によって判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置手段と、
を有することを特徴とする装置が提供される。
【００１３】
本開示の別の態様によれば、レイアウト領域上での表示のために複数の映像フレームを空間的に配置する方法であって、
映像シーケンスを解析することにより、前記映像シーケンスに含まれているオブジェクトの動作の軌跡を判定する判定工程と、
前記映像シーケンスから、前記オブジェクトを含む前記複数の映像フレームを選択する選択工程と、
前記選択工程において選択された前記複数の映像フレームが、前記判定工程において判定された軌跡に対応するレイアウトパスに沿って配置されるように、前記レイアウト領域に、前記選択された複数の映像フレームを空間的に配置する配置工程と、
を有することを特徴とする方法が提供される。
【００１５】
本発明の他の態様についても開示される。
【図面の簡単な説明】
【００１６】
ここで、本発明の１つ以上の実施形態について、以下の図面を参照して説明する。
【図１】説明される構成が実施されうる汎用コンピュータシステムの概略ブロック図である。
【図２】説明される構成が実施されうる汎用コンピュータシステムの概略ブロック図である。
【図３】レイアウト領域での表示のために、複数の映像フレームを空間的に配置する方法を示すフロー図である。
【図４】動作パスを決定する方法を示すフロー図である。
【図５】レイアウトパスを決定する方法を示すフロー図である。
【図６】アンカーポイントを決定する方法を示すフロー図である。
【図７】オフセット及びフレーム特性を決定する方法を示すフロー図である。
【図８Ａ】動作パスの例を示す図である。
【図８Ｂ】図８Ａの動作パスに対して決定されるレイアウトを示す図である。
【図９Ａ】Ｘ軸に時間、Ｙ軸にオフセットを有し、時間の関数としてオフセットを表現するグラフである。
【図９Ｂ】図９Ａに示される関数を用いて決定されるオフセットを動作パスに適用することにより生成されるレイアウトパスを示す図である。
【図１０Ａ】レイアウトパスに空間的に配置される映像フレームの例を示す図である。
【図１０Ｂ】フレームオフセット及びローテーションを含んだフレーム特性を用いて、レイアウトパス上に配置される映像フレームの例を示す図である。
【図１１Ａ】ダイビングシナリオに対するレイアウトの生成を示す図である。
【図１１Ｂ】ダイビングシナリオに対するレイアウトの生成を示す図である。
【図１２Ａ】Ｘ軸にエントロピー、Ｙ軸にオフセットを有し、エントロピーの関数としてオフセットを表現するグラフである。
【図１２Ｂ】修正レイアウトパスへ修正されるレイアウトパスを示す図である。
【発明を実施するための形態】
【００１７】
添付の図面の任意の１つ以上において同一の参照番号を有するステップと特徴との少なくともいずれかに参照がなされている場合は、反対の意思が現れていない限り、それらのステップと特徴との少なくともいずれかは、この説明の目的において、同一の機能又は動作を有する。
【００１８】
本開示は、映像内の動作を考慮することによってフォトブックのレイアウトを生成する方法を提供することに向けられている。以下詳細に説明するように、関係のある映像フレームが映像ストリームから抽出され、映像の時間的な側面を表現するために、フォトブックが抽出されたフレームから生成されるとともにレイアウトエリアにレイアウトされる。
【００１９】
フレーム領域は、映像のデコードされたフレームの一群である。デコードされたフレームは、映像からのフレームのすべて、又はその映像からのフレームのうちの一部でありうる。フレームの一部は、結婚式イベントなどのイベントの一部、誕生パーティにおいてキャンドルを吹き消すことなどの活動の一部、スキーなどの所定の動作パターンの一部でありうる。代わりに、フレームが、ショット限界により区切られた画像であってもよいし、フレームが、画像の品質について選択されたフレーム、例えばぼやけていないフレームであってもよい。別の例として、フレームは、所定の特性を有するフレーム（例えば所定の人々を含むフレーム、顔を伴うフレーム、微笑んでいるなどの所定の振る舞いを伴うフレーム）でありうる。
【００２０】
映像フレーム内のキーオブジェクトの動作パス又はグローバル動作パスは、シーンに関連して、映像フレーム内のそのオブジェクトの動作軌道の形状特性を表す。ローカル動作パスは、グローバル動作パスの一部であり、キーオブジェクトの動作の一部のみを記述する。
【００２１】
動作特性は、キーオブジェクトの動作（エントロピー）の速度、方向、及びランダム性などの特性である。グローバル動作特性は、動作パスの全体についての、キーオブジェクトの動作特性である。ローカル動作特性は、動作パスの一部のみ、一般には際立ったフレームの周囲について解析された、動作特性である。際立ったフレームは、動作の突然の変化や振る舞いの特徴（例えば人物が落下することや人物が微笑むこと）などの所定の特徴を有するフレームである。フレーム表示特性は、オブジェクトの動作の不規則性に依存しうる。
【００２２】
レイアウト領域は、Ａ４ページやページ内のエリアなどの、レイアウトパスおよび映像フレームがレイアウトされる領域である。
【００２３】
フレーム特性は、サイズ、回転の角度、及び色などのレイアウトされるフレームの属性である。
【００２４】
レイアウトパスは、フレームがレイアウトされるだろう位置を決定するために使用される幾何学的エンティティである。グローバルレイアウトパスは、レイアウト領域においてレイアウトされる全フレームについてのレイアウトパスである。グローバルレイアウトパスは、ローカルレイアウトパスからなる。レイアウトパスは、対応する動作パスから適合され、動作特定、レイアウト領域及びフレーム数に基づいて拡大され又は修正される。ローカルレイアウトパスは、ローカル動作パスおよびローカル動作特性に対応するグローバルレイアウトパスのセグメントである。
【００２５】
レイアウトは、レイアウト領域の範囲内のレイアウトパス上のフレームの最終レイアウト（すなわちフレーム特性を有する）である。
【００２６】
アンカーポイントは、単一のフレームのレイアウトを決定するのに用いられるレイアウトパス上の位置である。
【００２７】
図１および図２は、説明される様々な構成が実施されうる汎用コンピュータシステム１００を描画している。
【００２８】
図１から分かるように、コンピュータシステム１００は、コンピュータモジュール１０１、キーボード１０２などの入力デバイス、マウスポインタデバイス１０３、スキャナ１２６、カメラ１２７、及びマイク１８０、及びプリンタ１１５、表示デバイス１１４並びにスピーカ１１７を含んだ出力デバイス、を含む。外部の変調器−復調器（Ｍｏｄｅｍ）送受信機デバイス１１６は、コンピュータモジュール１０１によって、接続１２１を介して通信ネットワーク１２０へ又は通信ネットワーク１２０からの通信のために用いられうる。通信ネットワーク１２０は、インターネット、セルラ電気通信ネットワーク、又はプライベートＷＡＮなどのワイドエリアネットワーク（ＷＡＮ）でありうる。接続１２１が電話回線である場合、モデム１１６は従来の「ダイヤルアップ」モデムでありうる。また、接続１２１が大容量（例えばケーブル）接続である場合、モデム１１６はブロードバンドモデムでありうる。また、無線モデムが、通信ネットワーク１２０への無線接続のために用いられうる。
【００２９】
コンピュータモジュール１０１は、通常、少なくとも１つのプロセッサユニット１０５とメモリユニット１０６とを含む。例えば、メモリユニット１０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み出し専用メモリ（ＲＯＭ）を有しうる。また、コンピュータモジュール１０１は、映像ディスプレイ１１４、スピーカ１１７及びマイク１８０に接続するオーディオ−映像インタフェース１０７と、キーボード１０２、マウス１０３、スキャナ１２６、カメラ１２７及びオプションでジョイスティック又は他のヒューマンインタフェースデバイス（不図示）と接続するＩ／Ｏインタフェース１１３と、外部モデム１１６及びプリンタ１１５のためのインタフェース１０８とを含んだ、複数の入力／出力（Ｉ／Ｏ）インタフェースを含む。いくつかの実装において、モデム１１６は、コンピュータモジュール１０１の内部に、例えばインタフェース１０８の内部に組み込まれうる。また、コンピュータモジュール１０１は、接続１２３を介したコンピュータシステム１００の、ローカルエリアネットワーク（ＬＡＮ）として知られるローカルエリア通信ネットワーク１２２への接続を可能にする、ローカルネットワークインタフェース１１１を有する。図１に示されるように、ローカル通信ネットワーク１２２は、接続１２４を介して、いわゆる「ファイアウォール」デバイス又は同様の機能のデバイスを通常は含むであろうワイドネットワーク１２０へ接続してもよい。ローカルネットワークインタフェース１１１が、イーサネット（登録商標）回路カード、ブルートゥース（登録商標）無線構成、又はＩＥＥＥ８０２．１１無線構成を含みうるが、数多くの他の種類のインタフェースがインタフェース１１１のために実施されてもよい。
【００３０】
Ｉ／Ｏインタフェース１０８及び１１３は、直列と並列とのいずれかまたは両方を利用可能にしてもよく、前者は、通常、ユニバーサルシリアルバス（ＵＳＢ）標準に従って実装され、対応するＵＳＢコネクタ（不図示）を有する。ストレージデバイス１０９が提供され、通常、ハードディスクドライブ（ＨＤＤ）１１０を含む。フロッピーディスクドライブ及び磁気テープドライブ（不図示）などの他のストレージデバイスも用いられうる。光学ディスクドライブ１１２が、データの不揮発性のソースとして機能するために用いられる。例えば光学ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（商標））、ＵＳＢ−ＲＡＭ、可搬の、外部ハードディスクドライブ、及びフロッピーディスクなどの、可搬型メモリデバイスが、システム１００に対するデータの適切なソースとして用いられうる。
【００３１】
コンピュータモジュール１０１の要素１０５〜１１３は、相互接続バス１０４を介して、関連技術の当業者に知られたコンピュータシステム１００の動作の従来のモードを引き起こす方法で、通信する。例えば、プロセッサ１０５は、接続１１８を用いて、システムバス１０４に接続される。同様に、メモリ１０６及び光学ディスクドライブ１１２は、接続１１９によって、システムバス１０４に接続される。説明される構成が実施されうるコンピュータの例は、ＩＢＭ−ＰＣ及び互換機、サンのスパークステーション、アップルＭａｃ（商標）、又は同様のコンピュータシステムを含む。
【００３２】
以下に説明する方法は、コンピュータシステム１００を用いて実装されうる。ここで、これから説明される図３〜図１２の処理は、コンピュータシステム１００の内部で実行可能な１つ以上のソフトウェアアプリケーションプログラム１３３として実装されうる。具体的には、説明される方法のステップは、コンピュータシステム１００の内部で実行されるソフトウェア１３３の命令１３１（図２参照）によって達成される。ソフトウェア命令１３１は、それぞれが１つ以上の特定のタスクを実行するための１つ以上のコードモジュールとして形成されうる。ソフトウェアは、説明される方法を実行する第１の部分並びに対応するコードモジュール、及び、第１の部分とユーザとの間のユーザインタフェースを管理する第２の部分並びに対応するコードモジュールの、２つの分離した部分に分割されうる。
【００３３】
ソフトウェアは、例えば後述のストレージデバイスを含んだコンピュータ可読媒体に記憶されうる。ソフトウェア１３３は、通常、ＨＤＤ１１０又はメモリ１０６に記憶される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム１００にロードされ、コンピュータシステム１００によって実行される。このように、例えば、ソフトウェア１３３は、光学ディスクドライブ１１２によって読み出される光学的可読ディスク記憶媒体（例えばＣＤ−ＲＯＭ）１２５に記憶されうる。このようなコンピュータ可読媒体に記録されるソフトウェア又はコンピュータプログラムを有するコンピュータ可読媒体が、コンピュータプログラムプロダクトである。コンピュータシステム１００内のコンピュータプログラムプロダクトの使用は、望ましくは、説明される方法を実装するための有利な装置をもたらす。
【００３４】
いくつかの例において、アプリケーションプログラム１３３は、１つ以上のＣＤ−ＲＯＭ１２５において符号化されてユーザに供給され、対応するドライブ１１２を介して読み出さてもよく、又は、代わりに、ユーザによって、ネットワーク１２０若しくは１２２から読み出されてもよい。またさらに、ソフトウェアは、他のコンピュータ可読媒体から、コンピュータシステム１００にロードされてもよい。コンピュータ可読記憶媒体は、実行と処理との少なくともいずれかのために、コンピュータシステム１００へ、記録された命令とデータとの少なくともいずれかを提供する、任意の非一時的な有形記憶媒体を参照する。このような記憶媒体の例は、フロッピーディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ（商標）ディスク、ハードディスクドライブ、ＲＯＭもしくは集積回路、ＵＳＢメモリ、磁気光学ディスク、又は、ＰＣＭＣＩＡカードなどのようなコンピュータ可読カードを含み、いずれにせよ、このようなデバイスは、コンピュータモジュール１０１の内部又は外部にある。コンピュータモジュール１０１への、ソフトウェアと、アプリケーションプログラムと、命令と、データとの少なくともいずれかの供給に参与してもよい一時的又は非一時的コンピュータ可読伝送媒体の例は、他のコンピュータ又はネットワーク化されたデバイス、及び電子メール伝送及びウェブサイトに記録された情報などを含んだインターネット又はイントラネットへの無線又は赤外線伝送チャネルおよびネットワーク接続を含む。
【００３５】
上述の、アプリケーションプログラム１３３及び対応するコードモジュールの第２の部分は、ディスプレイ１１４上に描画され又は別の方法で表現される１つ以上のグラフィカルユーザインタフェース（ＧＵＩ）を実装するために実行されうる。通常のキーボード１０２及びマウス１０３の操作を通じて、コンピュータシステム１００のユーザ及びアプリケーションは、ＧＵＩに関連付けられたアプリケーションへ、制御コマンドと入力との少なくともいずれかを提供するように機能的に適合可能な方法で、インタフェースを操作しうる。スピーカ１１７を介した出力及びマイク１８０を介したユーザ音声コマンド入力を利用するオーディオインタフェースなどの、機能的に適合可能なユーザインタフェースの他の形式が実装されうる。
【００３６】
図２は、プロセッサ１０５及び「メモリ」１３４の詳細な概略ブロック図である。メモリ１３４は、図１のコンピュータモジュール１０１によってアクセスされうる（ＨＤＤ１０９及び半導体メモリ１０６を含んだ）メモリモジュールのすべての、論理的な集合を表す。
【００３７】
コンピュータモジュール１０１は、初期的に電源が入れられると、パワーオンセルフテスト（ＰＯＳＴ）プログラム１５０を実行する。ＰＯＳＴプログラム１５０は、通常、図１の半導体メモリ１０６のＲＯＭ１４９に記憶される。ソフトウェアを記憶するＲＯＭ１４９などのハードウェアデバイスは、ファームウェアと呼ばれる場合がある。ＰＯＳＴプログラム１５０は、適切に機能することを確実にするためにコンピュータモジュール１０１の内部のハードウェアを試験し、通常、プロセッサ１０５、メモリ１３４（１０９、１０６）、及びＲＯＭ１４９に通常は記憶される基本入出力システムソフトウェア（ＢＩＯＳ）モジュール１５１を、正確な動作のためにチェックする。ＰＯＳＴプログラム１５０が正常に動作すると、ＢＩＯＳ１５１は図１のハードディスクドライブ１１０を起動する。ハードディスクドライブ１１０の起動は、ハードディスクドライブ１１０に常駐しているブートストラップローダプログラム１５２を、プロセッサ１０５を介して、実行させる。これが、オペレーティングシステム１５３を、そこでオペレーティングシステム１５３が動作を開始するＲＡＭメモリ１０６へ、ロードする。オペレーティングシステム１５３は、プロセッサ管理、メモリ管理、デバイス管理、記憶管理、ソフトウェアアプリケーションインタフェース、及び包括的なユーザインタフェースを含んだ様々な高レベルの機能を果たすために、プロセッサ１０５によって実行可能なシステムレベルアプリケーションである。
【００３８】
オペレーティングシステム１５３は、コンピュータモジュール１０１で動作する各処理又はアプリケーションが、その中で他の処理に割り当てられたメモリと衝突することなく実行されるような十分なメモリを有することを確実にするために、メモリ１３４（１０９、１０６）を管理する。さらに、図１のシステム１００において利用可能な様々なタイプのメモリが、各処理が効果的に動作することができるように、適切に使用されなければならない。したがって、集約されたメモリ１３４は、（別の方法で言及されない限りは）どのようにメモリの特定のセグメントが割り当てられるかを説明することを意図しておらず、むしろ、コンピュータシステム１００によってアクセス可能なメモリの一般的なビュー及びこのようなものがどのように用いられるかを与えることを意図している。
【００３９】
図２に示すように、プロセッサ１０５は、制御部１３９、算術ロジックユニット（ＡＬＵ）１４０、及び、キャッシュメモリと呼ばれる場合があるローカル又は内部メモリ１４８を含んだ複数の機能モジュールを含む。キャッシュメモリ１４８は、レジスタセクションにおける複数の記憶レジスタ１４４〜１４６を含む。１つ以上の内部バス１４１は、これらの機能モジュールを機能的に相互接続する。プロセッサ１０５は、典型的には、接続１１８を用いて、システムバス１０４を介して外部デバイスと通信するための１つ以上のインタフェース１４２をも有する。メモリ１３４は、接続１１９を用いてバス１０４に接続される。
【００４０】
アプリケーションプログラム１３３は、従来の分岐及びループ命令を含みうる一連の命令１３１を含む。プログラム１３３は、プログラム１３３の実行において用いられるデータ１３２を含んでもよい。命令１３１およびデータ１３２は、それぞれ、メモリロケーション１２８、１２９、１３０及び１３５、１３６、１３７に記憶される。命令１３１とメモリロケーション１２８〜１３０との相対的サイズに応じて、特定の命令が、メモリロケーション１３０において示される命令によって描かれているように、単一のメモリロケーションに記憶されうる。また、メモリロケーション１２８及び１２９において示される命令セグメントによって描かれているように、命令が、それぞれが別個のメモリロケーションに記憶される複数の部分に分割されてもよい。
【００４１】
一般に、プロセッサ１０５には、そこにおいて実行される命令のセットが与えられる。プロセッサ１０５は、その後の入力を待機し、プロセッサ１０５は、別の命令のセットを実行することにより、その入力に反応する。各入力は、１つ以上の入力デバイス１０２、１０３によって生成されるデータ、ネットワーク１２０、１０２のうちのいずれかを通じて外部ソースから受信したデータ、記憶デバイス１０６、１０９のうちのいずれかから取得されたデータ、又は図１においてすべて描かれた対応するリーダ１１２に挿入された記憶媒体１２５から取得したデータを含んだ複数のソースのうちの１つ以上から提供されうる。命令のセットの実行は、いくつかの場合、データの出力をもたらしうる。実行は、メモリ１３４へ、データまたは変数を格納することを含んでもよい。
【００４２】
開示される構成は、対応するメモリロケーション１５５、１５６、１５７において、メモリ１３４に記憶される入力変数１５４を使用する。開示される構成は、対応するメモリロケーション１６２、１６３、１６４において、メモリ１３４に記憶される出力変数１６１を生成する。中間変数１５８は、メモリロケーション１５９、１６０、１６６、及び１６７に記憶されうる。
【００４３】
図２のプロセッサ１０５を参照すると、レジスタ１４４、１４５、１４６、算術ロジックユニット（ＡＬＵ）１４０及び制御部１３９は、プログラム１３３を構成する命令セット内の各命令に対して「フェッチ、デコード、及び実行」のサイクルを実行するのに必要とされるマイクロオペレーションのシーケンスを実行するように、協働する。フェッチ、デコード及び実行サイクルは、それぞれ、
メモリロケーション１２８、１２９、１３０から命令１３１をフェッチし又は読み出すフェッチオペレーション、
どの命令がフェッチされたかを制御部１３９が判定するデコードオペレーション、及び、
制御部１３９とＡＬＵ１４０との少なくともいずれかが命令を実行する実行オペレーション、を含む。
【００４４】
その後、次の命令のためのさらなるフェッチ、デコード及び実行サイクルが実行されうる。同様に、制御部１３９がメモリロケーション１３２に対して値を格納する又は書き込むことにより、記憶サイクルが実行されうる。
【００４５】
図３〜図１２の処理における各ステップ又はサブプロセスは、プログラム１３３の１つ以上のセグメントに関連付けられ、プログラム１３３の言及されるセグメントについての命令セット内の各命令に対するフェッチ、デコード及び実行サイクルを実行するために協働するプロセッサ１０５におけるレジスタセクション１４４、１４５、１４７、ＡＬＵ１４０、及び制御部１３９によって、実行される。
【００４６】
説明される方法は、代わりに、説明される方法の機能又はサブ機能を実行する１つ以上の集積回路などの、専用ハードウェアにおいて実装されてもよい。このような専用ハードウェアは、グラフィックプロセッサ、デジタルシグナルプロセッサ、又は１つ以上のマイクロプロセッサと、関連するメモリを含みうる。
【００４７】
図３は、レイアウト領域での表示のために複数の映像フレームを空間的に配置する方法３００を示すフロー図である。方法３００は、映像フレームからフォトブックのレイアウトを生成するのに用いられうる。
【００４８】
方法３００について、図８Ａ及び図８Ｂを参照する例を通じて説明する。
【００４９】
方法３００は、プロセッサ１０５によってその実行中に制御される、ハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして、実装されうる。方法３００への入力は、映像シーケンスを復号することから得られる映像フレームに対応する画像を含む。また、方法３００への入力は、画像がレイアウトされるべきレイアウト領域を含む。デコードされた映像フレームのそれぞれは、ＪＰＥＧ、ＴＩＦＦ又はＰＮＧなどのフォーマットの画像である。
【００５０】
方法３００は、前景の単数または複数のオブジェクトの動作パスがプロセッサ１０５の実行下で決定される、動作パス決定ステップ３０２において開始する。ステップ３０２で実行される動作パスの決定の方法４００については、図４を参照して詳細に後述する。決定された動作パスは、メモリ１０６に格納されうる。
【００５１】
ステップ３０２の出力は、前景の単数又は複数のオブジェクトの２次元パスである。例えば、図８Ａは、そのオブジェクトのグローバル及びローカル動作特性を表す前景オブジェクト８０３（すなわち、スケートボーダー）の動作パス８０１を示している。また、図８Ａは、パス８０１上の前景オブジェクト８０３の位置（８３０〜８３５）を示している。
【００５２】
方法３００は、レイアウトパスがプロセッサ１０５の実行下で決定される、レイアウトパス決定ステップ３０３で継続する。ステップ３０３で実行されるレイアウトパスの決定の方法５００については、図５を参照して詳細に後述する。決定されたレイアウトパスは、メモリ１０６に格納されうる。
【００５３】
ステップ３０３において、レイアウトパスは、ステップ３０２に決定された動作パスから生成される。動作パスの形状は、レイアウトパスを生成するために修正されてもよく、この修正は、動作パスの形状特性に基づく。
【００５４】
後述するように、レイアウトパスは、レイアウト領域とデコードされた映像フレームのうちの選択された複数の映像フレームに適合するように、さらに修正されてもよい。デコードされた映像シーケンスから入力映像フレームのサブセットを表す、レイアウトされるべき複数の映像フレームを選択するステップを実行するために、方法５００がステップ３０３において実行される。映像フレームは、映像シーケンスの範囲内の前景オブジェクトの動作の判定に基づいて選択される。レイアウトパスは、選択された映像フレームに対して決定される。
【００５５】
ステップ３０３の入力は、ステップ３０２によって出力された動作パス（例えば８０１）、動作特性、及びデコードされた映像シーケンスの映像フレームに対応する画像である。  また、ステップ３０３の入力は、レイアウトが生成されるべき幅（例えば２１０ｍｍ）及び高さ（例えば２９７ｍｍ）を含んだレイアウトページの寸法の形式で、レイアウト領域を含む。図８Ｂの例では、ステップ３０３の出力は、レイアウト領域８０２における２次元のレイアウトパス８１６と、画像８２０、８２１、８２２、８２３、８２４、及び８２５の形式の映像フレームのサブセットである。
【００５６】
方法３００は、ステップ３０３によって出力された選択された映像フレーム（例えば８２０、８２１、８２２、８２３、８２４、及び８２５）のそれぞれに対してのアンカーポイントの決定ステップ３０４で継続する。アンカーポイントは、各映像フレームにおいて描かれた前景オブジェクトの動作の判定に基づいて決定され、各アンカーポイントはレイアウトパスに関して選択された映像フレームを位置付ける。レイアウトパス（例えば８１６）上のアンカーポイントの位置は、動作特性、フレーム数、及びレイアウトパス（グローバル及びローカル）から、決定される。ステップ３０４で実行されるアンカーポイントを決定する方法６００については、図６を参照して詳細に後述する。ステップ３０４の出力は、決定されたアンカーポイントの位置である。決定された位置は、メモリ１０６に格納されうる。図８Ｂのレイアウトパス８１６は、アンカーポイント８１０〜８１５に従うパスを含む。
【００５７】
その後、オフセット決定ステップ３０５において、プロセッサ１０５の実行下でフレーム（例えば８２０、８２１並びに８２２、８２３、８２４及び８２５）のオフセット及びフレーム特性が決定されてメモリ１０６に格納される。ステップ３０５の入力は、映像フレーム（例えば８２０、８２１並びに８２２、８２３、８２４及び８２５）、アンカーポイント（例えばアンカーポイント８１０〜８１５）、グローバルレイアウトパス、ローカルレイアウトパス、及びレイアウト領域（例えば８０２）である。ステップ３０５において実行されるオフセット及びフレーム特性を決定する方法７００については、図７を参照して詳細に後述する。ステップ３０５において、フレームが配置されるべきアンカーポイントからのオフセットと、フレーム特性とが、動作特性、例えば動作の規則性から決定される。
方法３００は、レイアウト領域（例えば２０２）での表示のために選択された映像フレーム（例えば８２０、８２１並びに８２２、８２３、８２４及び８２５）を空間的に配置することによってフォトブックのレイアウトが生成される、レイアウト生成ステップ３０６で完結する。生成されたレイアウトは、レイアウトページ上で規定され、決定されたレイアウトパスを含む。選択された映像フレームは、決定されたアンカーポイントに従って、アンカーポイントからのオフセットで定義される映像フレームを用いて、決定したレイアウトパスに関連して配置される。また、レイアウトは、フレーム特性を含む。
【００５８】
後述するように、ステップ３０６で、選択された映像フレームが、決定されたフレーム表示特性に従って配置されうる。フレーム表示特性は、フレームの相対的サイズ、フレームの回転の角度、フレームの透明性、フレームの色相、フレームの彩度、フレームのレイアウトパスからのオフセット、フレームの歪み、フレームのクロッピング、フレームのコントラストを含んだグループのうちの１つ以上でありうる。映像フレームのそれぞれは、映像フレームにおけるオブジェクトの相対的動作に関して位置付けられうる。さらに、説明される方法は、オブジェクトの動作の不規則性に基づいて、１つ以上のフレーム表示特性を調整するように構成されうる。
【００５９】
図８Ｂは、ステップ３０６に従って生成されるレイアウトの例である。図８Ｂの例では、レイアウト領域８０２は、レイアウトパス８１６を有するレイアウト領域である。映像フレーム８２０〜８２５のそれぞれのサイズは、動作特性によって表されるオブジェクト（すなわちスケートボーダー８０３）の動作に基づいて修正される。例えば、フレーム８１３は、その時点でオブジェクト（すなわちスケートボーダー８０３）によって方向の突然の変化があったため、最大のサイズを有する。映像フレーム８２０〜８２５のすべてが、アンカーポイント８１０〜８１５に配置される。さらに、配置された映像フレーム間の重なりが、オブジェクトの動作に基づいて決定されうる。例えば、フレーム８１３は、その時点でのオブジェクト（すなわちスケートボーダー８０３）による方向の突然の変化によって最大のサイズを有するため、フレーム８２３が部分的にフレーム８２４にオーバーラップする。
【００６０】
ここで、ステップ３０２で実行される動作パスを決定する方法４００について、図４を参照して説明する。決定される動作パスは、映像における前景オブジェクトの２Ｄ軌道を表す。動作パスは、前景オブジェクトの軌道に基づいて決定される。
【００６１】
方法４００は、プロセッサ１０５によってその実行中に制御される、ハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして、実装されうる。
【００６２】
方法４００への入力は、映像をデコードすることから得られる映像フレームと、画像がレイアウトされるべきレイアウト領域である。
【００６３】
方法４００は、プロセッサ１０５の実行下で、入力映像フレームにおいて背景／前景の分離が実行される分離ステップ４０１で開始する。１つの実装において、シーンの変化に対してロバストな参照フレームが、入力映像フレームから決定され、オブジェクトを検出するために、現在のフレームが参照フレームから減じられる。別の実装では、各ピクセルがガウスの混合としてモデル化される、ガウスの混合方法が用いられる。背景／前景分離のためのモデルを更新するために、オンライン近似がその後用いられる。背景／前景分離の後に、オブジェクトに対する境界ボックスが定められる。ステップ４０１の出力は前景オブジェクトに対する境界ボックスである。
【００６４】
その後、キーオブジェクト選択ステップ４０２において、前景オブジェクトがキーオブジェクトとして選択される。１つの実装において、キーオブジェクトは、映像内でのそのオブジェクトの出現頻度をチェックすることによって選択される。例えば、より多い数のフレームにおいて存在するオブジェクトが、キーオブジェクトとして選択されうる。第２の実装において、ユーザは、キーオブジェクトの境界ボックスを選択することにより、キーオブジェクトを定めることができる。別の実装において、突然の方向の変化又は加速などの所定の動作特性を有するオブジェクトがキーオブジェクトとして選択される。動作特性は、移動するオブジェクトと静止した背景との間の相対的な動きに基づいて決定されうる。別の実装では、微笑んでいる、又は落下している、ダイビングしている、若しくはスケートボードをしている等の動作など、所定の振る舞いの特性がキーオブジェクトを選択するのに用いられる。
【００６５】
キーオブジェクトが特定されると、そのオブジェクトのパスが決定される。幾何学的トラッカーがキーオブジェクトを追跡するために用いられうる。
【００６６】
初期化ステップ４０３において、メモリ１０６内で構成されるフレームカウンタが、プロセッサ１０５の実行下で１に初期化される。
【００６７】
その後、選択ステップ４０４において、プロセッサ１０５の実行下で、映像フレームのうちの最初のフレームにおいてキーオブジェクトの位置が追跡される。幾何学的トラッカーは、オブジェクトの周囲の境界ボックスを追跡するのに用いられうる。
【００６８】
別の実装では、キーオブジェクトは、視覚特徴トラッカーを用いて追跡され、ここで、視覚特徴（visual signature）は、オブジェクトの外観のモデルであり、あるケースにおいてオブジェクトの色のヒストグラムである。Ｄ．Ｃｏｍａｎｉｃｉｕ、Ｖ．Ｒａｍｅｓｈ、Ｐ．Ｍｅｅｒのカーネルベースオブジェクトトラッキング（Ｋｅｒｎａｌ−ｂａｓｅｄ  ｏｂｊｅｃｔ  ｔｒａｃｋｉｎｇ）、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、Ｖｏｌ．２５、＃５、２００３年５月に説明されている、ミーンシフトトラッキングをステップ４０４において用いてもよい。
【００６９】
オブジェクトが追跡されるため、オブジェクトの２次元（２Ｄ）位置も複数のフレームを通して追跡される。１つの構成において、オブジェクトの重心が追跡される。別の構成では、境界ボックスの底辺の中点が追跡される。
【００７０】
ステップ４０４の出力は、追跡されたオブジェクトの２次元（２Ｄ）座標のアレイである。
【００７１】
方法４００は、映像フレームのうちの次のものがプロセッサ１０５の実行下でフェッチされてメモリ１０６に格納されうる次フレームフェッチステップ４０５で、継続する。
【００７２】
判断ステップ４０６において、現在のフレームが最終フレームである場合に、制御はステップ４０８及び４０７をパスする。そうでなければ、次のフレームが最終フレームでない場合、制御は処理を４０４へ戻し、次のフレームにおけるキーオブジェクトの追跡を継続する。
【００７３】
動作パス決定ステップ４０８では、グローバル動作パスが、プロセッサ１０５の実行下で決定される。ステップ４０４〜４０６で追跡されたキーオブジェクトの軌道である２次元（２Ｄ）の座標のアレイは、動作パスとして用いられうる。代わりに、軌道の最も適合したパス又は軌道の平滑化したパスが、動作パスとして用いられてもよい。動作パスの例を、スケートボードをしている人物８０３の動作パス８０１を示した図８Ａに示す。図１１は、ダイビング中の人物１１０２の動作パス１１０１を示している。動作パス１１０１は、映像内の全フレームを考慮して、グローバル動作パスとして得られる。
【００７４】
ステップ４０７では、プロセッサ１０５の実行下で、グローバル動作特性が決定される。１つの実装において、グローバル動作特性は、キーオブジェクトの平均速度、その位置、キーオブジェクトが方向を変えた回数、キーオブジェクトの動作のランダム性として決定される。グローバル動作特性は、メモリ１０６に格納されうる。
【００７５】
速度は、時間に対する２Ｄ座標及びフレームを用いることによって決定される。方向及びランダム性も、位置（キーオブジェクトの２Ｄ座標）によって決定されうる。１つの例において、ランダム性は、キーオブジェクトの速度のエントロピーである。
【００７６】
決定ステップ４０９では、ステップ４０８からのグローバル動作パスとステップ４０７からのグローバル特性とを用いて、ローカル動作パスが決定される。ローカル動作パスは、動作パスの（連続する）フレームの一部のみを考慮することによって得られる動作である（すなわち、ＬｏｃａｌＭｏｔｉｏｎＰａｔｈ＝Ｓｅｇｍｅｎｔ（ＧｌｏｂａｌＭｏｔｉｏｎＰａｔｈ））。ステップ４０９で決定されたローカル動作パスは、プロセッサ１０５の実行下で、メモリ１０６に格納されうる。
【００７７】
１つの実装において、グローバル動作パスが、ローカル動作パスである。グローバル動作パスは、キーオブジェクトの方向の変化を考慮することによって、ローカル動作パスに分割されうる。
【００７８】
別の実装では、キーオブジェクトが同じ方向に動いているグローバル動作パスの一部またはセクションが、ローカル動作パスである。または、グローバル動作パスは、キーオブジェクトの平均速度を考慮することによって、分割されてもよい。例えば、キーオブジェクトが同じ平均速度であるグローバル動作パスの一部またはセクションが、ローカル動作パスとして選択される。
【００７９】
１つの実装において、速度及び方向などの特徴の組み合わせが考慮される。例えば、図１１の例では、キーオブジェクト１１０２の進方向に基づいて生成される３つのローカル動作パスがある。ダイバーが１つの方向においてプラットフォームを走っている第１のローカル動作パスは、１１０９において終了し、第２のローカル動作パスは１１０９と１１１０との間であり、第３のローカルパスは１１１０と１１１１との間である。
ローカル動作パス１１０９に近い１１０４において、ダイバーはジャンプを開始し（すなわち、方向が変化し）、１１１０においてダイバーはサマーソルトを実行し（すなわち方向が変化し）、１１１１においてダイバーは水しぶきを立てて水の中に落ちている。
【００８０】
方法４００は、ステップ４０７と同様にしてローカル動作特性がローカル動作パスから決定される決定ステップ４１０で終了する。決定されたローカル動作特性は、プロセッサ１０５の実行下でメモリ１０６に格納されうる。
【００８１】
図４において説明された方法４００の別の選択肢においては、グローバル動作特性は、ステップ４０７においては決定されず、ステップ４０９及び４１０において決定されるローカル動作パス又はローカル動作特性を用いて後に決定される。例えば、グローバル動作パスのランダム性が、ローカル動作パスの数から、又は異なるローカル動作パス間で比較されるローカル動作特性の可変性から、決定される。
【００８２】
ここで、ステップ３０３で実行されるレイアウトパスを決定する方法５００について、図５を参照して説明する。方法５００は、方法４００に従って決定された動作パスからレイアウトパスを決定する。方法５００への入力は、レイアウト領域、映像フレーム、グローバル動作パス、ローカル動作パス、グローバル動作特性およびローカル動作パス特性を含んだ、方法４００の出力である。
方法５００は、プロセッサ１０５によってその実行中に制御される、ハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして、実装されうる。
【００８３】
方法５００は、プロセッサ１０５の実行下で、フォトブックについて映像を復号することによって得られる１つ以上の映像フレームを選択する選択ステップ５０１において開始する。選択された映像フレームは、プロセッサ１０５の実行下で、メモリ１０６に格納されうる。
【００８４】
１つの実装において、フレーム選択のためにグローバル及びローカル動作特性が考慮される。別の実装では、グローバル動作特性が低い動作ランダム性を示す場合、一定間隔におけるフレームが考慮される。例えば、キーオブジェクトの動作が速度及び方向の変化を示さない場合、以下に示す式（１）に従って、フレームカウントが判定されうる：
フレームカウント＝（グローバル動作パスの長さ）／間隔  （１）
ここで、間隔は、距離である（例えば１０ｃｍ）と共にユーザ定義され、グローバル動作パスの長さは別の距離である。フレームは、グローバル動作パスに沿って所与の間隔で選択される。フレーム間隔におけるフレームの品質が良好でない場合、ステップ５０１において、順に、次に良好なフレームが選択される。
【００８５】
別の実装では、グローバル動作特性が中程度のランダム性を示す場合、キーオブジェクトが方向、速度、加速又はエントロピー等の、動作における突然の変化を示す位置のフレームが、ステップ５０１での選択に対して考慮される。したがって、映像フレームの選択は、例えば、キーオブジェクトの速度によって決定されうる。
【００８６】
別の実装では、グローバル動作特性が高い動作のランダム性を示す場合、グローバル及びローカル動作特性の両方が、フレームの数を決定するのに用いられる。
【００８７】
ローカル動作パスは、方向の変化に数を考慮することにより、重みづけされうる。例えば、ローカル動作パスが方向において３回のキーオブジェクトの変化を有し、そして、別のローカル動作パスにおいてキーオブジェクトの方向が２回変化する場合、前者のローカル動作パスは、後者よりも大きく重みづけされる。
【００８８】
１つの実装において、ローカル動作パスは、動作タイプによって重みづけされうる。例えば、ローカル動作パスは、動作タイプが「王側道さ」である場合に、動作が「低速動作」である場合よりも大きく重みづけされる。
【００８９】
別の実装において、ローカル動作パスは、一様に重みづけされる（重みなし）。
【００９０】
ステップ５０１で選択されるフレームの間隔とフレームの数は、ローカル動作パスとの重みと、そのローカル動作パスのローカル動作特性とから、決定される。ローカル動作パスがより大きく重みづけされる場合であって、動作タイプが「高速動作」である場合、よりフレーム間が小さい間隔の、より多くのフレームがそのパスについて考慮される。ローカル動作パスがより小さく重みづけされる場合であって、動作タイプが「低速動作」である場合、よりフレーム間が大きい間隔の、より少ないフレームがそのパスにおいて考慮される。
【００９１】
別の実装では、ステップ５０１において、所定のイベントに属するフレームが選択される。例えば、結婚式イベントなどの所定のイベントに属するフレームを取得するために、フレームのイベント分割が用いられうる。
【００９２】
ステップ５０１で用いられうるイベント分割の例については、Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅに関するＩＥＥＥ論文集、２３、ｎｏ．８、（２００１年）、８７３−８８９、「Ｅｖｅｎｔ  ｄｅｔｅｃｔｉｏｎ  ａｎｄ  ａｎａｌｙｓｉｓ  ｆｒｏｍ  ｖｉｄｅｏ  ｓｔｒｅａｍｓ」と題された、Ｍｅｄｉｏｎｉ等による論文で説明されている。
【００９３】
別の実装では、誕生日パーティにおけるロウソクの吹き消しなどの所定の動作に属するフレームが、ステップ５０１で選択されうる。  ステップ５０１で用いられうる動作認識の例については、Ｃｏｍｐｕｔｅ  Ｖｉｓｉｏｎ  ａｎｄ  Ｉｍａｇｅ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ、１０４、ｎｏ．２、（２００６）、２３２−２４８、「Ａ  ｇｅｎｅｒａｌ  ｍｅｔｈｏｄ  ｏｆ  ｈｕｍａｎ  ａｃｔｉｖｉｔｙ  ｒｅｃｏｇｎｉｔｉｏｎ  ｉｎ  ｖｉｄｅｏ」と題された、Ｒｏｂｅｒｔｓｏｎ等による論文で説明されている。
【００９４】
別の実装では、所定の個人を含んだフレーム、又はその個人の顔が視認可能もしくは笑顔等の所定の特性を有しているフレームが、ステップ５０１で選択される。
【００９５】
また、所定の画像品質を有するフレーム（例えばぼやけておらず、不鮮明でないフレーム）がステップ５０１で選択される。
【００９６】
また別の実装では、キーオブジェクトとセカンダリオブジェクトの相互動作が、ステップ５０１でのフレーム選択のために考慮される。例えば、ウェディングダンスで、キーオブジェクト（例えば花嫁）とセカンダリオブジェクト（例えば花婿）が踊っているフレームが、ステップ５０１において選択される。
【００９７】
上述の実装方法のいずれかを用いて選択されるフレームの中から、突出したフレーム及びその突出したフレームの隣接フレームを含むフレームのセットが、ステップ５０１で選択される。隣接フレームは、突出する前のフレーム（すなわち、突出したフレームの前のフレーム）と、突出した後のフレーム（すなわち、突出したフレームの後のフレーム）を含む。
【００９８】
突出したフレームは、キーオブジェクトが動作のパターンにおいて突然の変化をした、キーオブジェクトが方向、速度、又は形状が変化（例えば人物の身体の形状における変化）した場合などの、フレームである。例えば、オブジェクトは加速しうる。したがって、突出したフレームは、オブジェクトの動きにおける突然の変化を判定することにより選択されうる。
【００９９】
例えば、図８Ｂにおいて、キーオブジェクト（すなわちスケートボーダー８０３）が動作パス８０１において示されるポイント８１３で方向が変化しているため、フレーム８２３が突出したフレームである。フレーム８２０、８２１及び８２２を含む、突出したフレーム８２３の前のフレームが突出する前のフレームであり、フレーム８２４及び８２５は突出する後のフレームである。突出したフレーム８２３の前のフレームと、突出したフレーム８２３の後のフレームが、動作パス８０１上の位置８３０、８３１、８３２、８３３、８３４、８３５にそれぞれ対応するアンカーポイント８１０、８１１、８１２、８１３、８１４、及び８１５において、レイアウトパス８１６上に存在する。１つの実装において、突出する前のフレーム及び突出した後のフレームは、ステップ５０１において、グローバル及びローカル動作特性と非動作特性を考慮することにより、選択されうる。
【０１００】
決定ステップ５０２では、プロセッサ１０５の動作中に、ステップ３０２で決定された動作パスからレイアウトパスが決定される。ステップ５０２への入力はグローバル動作パスである。その後、ローカル動作パスが、レイアウトパスへマッピングされる。ローカル動作パスに対応するレイアウトパス上の区間が、ローカルレイアウトパスである。レイアウトパスのローカルレイアウトパスへの再分割を説明する際に、全部の、分割されていないレイアウトパスを参照するために、用語「グローバルレイアウトパス」を用いる。
【０１０１】
１つの実装では、ステップ５０２で決定されたレイアウトパスは、動作パスに厳密に一致する。例えば、図１１の動作パス１１０１が、レイアウトパスとして直接用いられうる。
【０１０２】
別の実装では、レイアウトパスは、動作パスの一部である。例えば、動作パスが円である場合、レイアウトパスは、半円弧である。
【０１０３】
方法５００は、方法５００へ入力されるレイアウト領域（例えば８０２）とフレームの数とを適合させるために、プロセッサ１０５の実行下で、ステップ５０２で決定されたレイアウトパスが修正される修正ステップ５０３で継続する。修正レイアウトが、ステップ５０２で決定されたレイアウトパスを修正することによって決定される。レイアウトパスが修正される際に、ローカルレイアウトパスも修正される。ローカルレイアウトパスのローカル動作特性は、ローカル動作パスのローカル動作特性に対応する。
【０１０４】
１つの実装では、ステップ５０２で決定されたレイアウトパスは、レイアウト領域（例えば８０２）に合わせるために拡大又は縮小される。例えば、動作パスが１０ｃｍの全幅を有する２次元パスである場合であって、レイアウト領域が２０ｃｍの全幅を有する場合、レイアウトパスは、水平方向に２倍に伸ばされる。
【０１０５】
１つの実装において、ステップ５０２で決定されたレイアウトパスは、レイアウトパスをページの水平又は垂直軸で対称とするように調整されうる。さらに、レイアウトパスは、レイアウト領域とフレームの数に会うように伸ばされうる。
【０１０６】
別の代替の実装では、レイアウトパスの一部の角度が、レイアウトパスのその一部に関連付けられた動作パスの領域に対応するフレームのローカル動作特性に適合するように、修正される。フレーム内のキーオブジェクトのローカル動作特性は、パスの角度を変更するために用いられる。ローカル動作特性が高い加速又は方向エントロピーを有する場合、レイアウトパスの角度は、ローカル動作特性に応じて修正される。例えば、キーオブジェクトの速度のエントロピーがＥｖである場合に、角度は、シータが度数（例えば１０度）である場合のＥｖ＊シータである。
【０１０７】
さらに、ローカル動作特性、特に移動のローカルのランダム性又は特にローカルのエントロピーは、ステップ５０３においてレイアウトパスを修正するのに用いられる。例えば、踊っているカップルが、位置におけるエントロピーが非常に高い（すなわち、移動におけるランダム性が多い）ような方法で移動している場合、その点での移動のランダム性に応じて、レイアウトが伸ばされうる。
【０１０８】
１つの実装において、オフセットが、キーオブジェクトの速度のエントロピーを用いて修正されうる。例えば、図１２Ａは、Ｘ軸にエントロピーをＹ軸にオフセットを有するグラフを示している。エントロピーが増えると、オフセットも線形的に増える。図１２Ｂでは、レイアウトパス１２５０は、初期的には動作パスと同一である。図１２Ｂの例では、レイアウトパス１２５０は、修正レイアウトパス上の点１２８０を決定するために、点１２７０に対応するオフセット１２９０をオリジナルのレイアウトパスに適用することにより、レイアウトパス１２６０へ修正される。図１２Ｂの例では、リファレンス１２７５は低いエントロピーを示しており、リファレンス１２８５は高いエントロピーを示している。したがって、オフセット１２９０は、オフセット１２９１より小さい。
【０１０９】
別の実装では、ステップ５０２で決定されたレイアウトパスが、グローバル及びローカル動作特性に基づいて、ローパスフィルタを用いて、ステップ５０３で平滑化されうる。例えば、動作特性が高い不規則性を示す場合、レイアウトパスを規則的にするために、ローパスフィルタを用いて、不規則性が平滑化される。
【０１１０】
ステップ５０２で決定されたレイアウトパスを修正するために、事前に定められた見た目に美しいパスを有するテンプレートが、ステップ５０３で用いられうる。レイアウトは、テンプレートにおいて特定される事前に定められたパスに一致するように、ステップ５０３で修正されうる。
【０１１１】
１つの実装において、ステップ５０２で決定されたパスは、ステップ５０３において要素に分解されうる。例えば、ステップ５０２で決定されたパスは、水平及び垂直成分に分解されてもよく、レイアウト領域に一致するように、また、レイアウトの時間局面を際立たせるためにも、他の要素が時間に応じて進行して置き換えられる間にその要素の１つが用いられうる。
【０１１２】
１つの実装において、レイアウトパスは、動作パスの重複部分を空間的に分離することによって修正されうる。
【０１１３】
ある方向における時間のオフセット関数を追加することによって、その方向において動作パスの位置を変更することによって、レイアウトパスが修正されてもよい。１つの実装において、隣接する選択されたフレームの各ペアの間の加速の方向において動作パスに対してオフセットを適用することによって、レイアウトパスが決定されうる。隣接する選択されたフレームの各ペアの間の加速の方向にオフセット関数を含めるように、動作パスが修正される。図９Ａ及び図９Ｂは、１つの実装において、どのように時間と共にオフセットが修正されうるかの例を示している。図９Ａは、Ｘ軸に時間、そしてＹ軸にオフセットを有するグラフである。時間が増加すると、図９Ａ及び図９Ｂの実装では、オフセットも線形的に増加する。図９Ａ及び図９Ｂの例では、レイアウトパスは、初期的には動作パス９５０と同一である。オリジナルのレイアウトパス上のポイント９７０に対応するオフセット９９０を適用することによって、修正レイアウトパス上のポイント９８０を決定するために、初期レイアウトパス９５０は、レイアウトパス９６０へと修正される。
【０１１４】
１つの実装において、レイアウトパスは、動作を表現するために、レイアウト内の余白を分布させるように修正されうる。例えば、動作が高速で又は変わりにくい複数の領域内のフレーム間の間により多くの余白が存在し、動作が低速で又はとても変わりやすい場合により少ないスペースが存在するように、パスの形状が調整されうる。
【０１１５】
別の実装では、レイアウトパスは、距離を表現するために余白を用いるように修正されうる。例えば、アクティビティがカメラから遠く離れて生じている場合に、レイアウトパスの真下に余白を伴って、レイアウト領域においてより高くなるように、そのレイアウトパスが調整されうる。
【０１１６】
レイアウトパスは、余白が動作の非対称性を表現するように調整されうる。例えば、動作が非対称である場合、レイアウトパスは、そのレイアウトパスの片側により多くに余白があるように、位置付けられる。
【０１１７】
方法５００の別の実装では、レイアウトを修正するステップが、レイアウトパスを生成することと組み合わせられてもよい。修正レイアウトパスは、それをまず生成してその後に修正するという中間ステップを経ることなく、動作パスから直接生成されてもよい。
【０１１８】
ここで、ステップ３０４で実行されるアンカーポイントを決定する方法６００について、図６を参照して説明する。方法６００は、ステップ３０３で決定されたレイアウトパス上のアンカーポイントの位置を決定する。方法６００への入力は、方法４００からのグローバル動作特性とローカル動作特性である。また、入力は、方法５００からのローカルレイアウトパスとグローバルレイアウトパスとを含む。
【０１１９】
方法６００は、プロセッサ１０５によってその実行中に制御される、ハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして、実装されうる。
【０１２０】
方法６００は、プロセッサ１０５の実行下で、ステップ３０２で決定されたローカル及びグローバル動作特性及びステップ３０３で決定されたグローバルレイアウトパスおよびローカルレイアウトパスが（例えばメモリ１０６から）アクセスされる、解析ステップ６０１で開始する。キーオブジェクトのグローバル動作特性が動きにおいて高い度合いのランダム性（例えば高い動作速度のエントロピー（すなわち大きさ及び方向））を有する場合、制御は、初期化ステップ６０２へ流れる。
【０１２１】
ステップ６０２では、メモリ１０６の内部で設定される新しいアンカー「ｎｅｗ＿ｐｔ」ポイントが初期化される（すなわち、ｎｅｗ＿ｐｔ＝（ｘ，ｙ））。また、ステップ６０２では、ポイントアレイ「ｐｏｉｎｔ＿ａｒｒａｙ」がメモリ１０６内に設定され、アンカーポイントを記憶するために初期化される。
【０１２２】
方法６００は、取得ステップ６０３において継続し、次のローカルレイアウトパスがプロセッサ１０５の実行下で取得される（すなわち、ＬｏｃａｌＬａｙｏｕｔＰａｔｈ＝ｇｅｔＮｅｘｔＬｏｃａｔｉｏｎＭｏｔｉｏｎＳｅｇｍｅｎｔ（））。
【０１２３】
その後、判断ステップ６０４において、取得されたローカルレイアウトパスがヌルである（すなわち、ＬｏｃａｌＬａｙｏｕｔＰａｔｈ＝＝ｎｕｌｌ）と判定された場合、方法６００は終了する。それ以外の場合は、制御は、生成ステップ６０５へ流れる。
【０１２４】
生成ステップ６０５では、次のアンカーポイントまでの距離（「ｒａｎｄ＿ｄｉｓｔ」）が、ローカルレイアウトパスおよびキーオブジェクトの動作特性に基づいて生成される（すなわち、ｒａｎｄ＿ｄｉｓｔ＝ＤｉｓｔａｎｃｅＧｅｎｅｒａｔｏｒ（ＬｏｃａｌＬａｙｏｕｔＰａｔｈ，ｌｏｃａｌ  ｍｏｔｉｏｎ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ））。１つの実装において、ローカル動作特性およびローカルレイアウトパスをパラメータとして伴うＤｉｓｔａｎｃｅＧｅｎｅｒａｔｏｒと呼ばれる関数は、プロセッサ１０５の実行下で呼び出される。ランダム距離「ｒａｎｄ＿ｄｉｓｔ」は、ローカルレイアウトパスに対して一定であってもよい。
【０１２５】
別の実装において、「ｒａｎｄ＿ｄｉｓｔ」は、キーオブジェクトの平均速度に依存する。キーオブジェクトが、そのローカルパスにおいて高い平均速度を有する場合、アンカーポイント間の距離は近くなる。キーオブジェクトが低い平均速度を有する場合、アンカーポイント間の距離がより大きくなる。
【０１２６】
別の実装では、ランダム距離は、ローカルレイアウトパスのローカル動作特性のランダム性によって生成される。例えば、「ｒａｎｄ＿ｄｉｓｔ」がローカルレイアウトパスのローカル動作特性のエントロピーに基づく場合、「ｒａｎｄ＿ｄｉｓｔ」は時間ごとに異なり、アンカーポイントは、ランダムに配置されると共に等距離ではない。
【０１２７】
１つの実装において、ランダム距離生成器は、アンカーポイントでの、キーオブジェクトによる方向の変化を考慮する。方向の変化があった場合、ランダム距離は、方向の変化に応じて決定される。例えば、方向が３０度だけ変化した場合、距離は３ｃｍである。
【０１２８】
ステップ６０５の出力は、ローカル動作特性に基づいて生成される距離である。例えば、ローカルレイアウトパスが２０ｃｍ長である場合であって、平均速度が３０ｋｍ／ｈ（すなわち低い）の場合、アンカーポイントは１０ｃｍごとに配置される。その一方で、６０ｋｍ／ｈなど、平均速度がより速い場合は、アンカーポイントは５ｃｍごとに配置される。
【０１２９】
方法６００は、プロセッサ１０５の実行下で新しいアンカーポイントが生成される生成ステップ６０６で継続する。１つの実装において、ステップ６０５からの距離「ｒａｎｄ＿ｄｉｓｔ」が、先のアンカーポイント「ｎｅｗ＿ｐｔ」に加算される（すなわち、ｎｅｗ＿ｐｔ＝ｎｅｗ＿ｐｔ＋ｒａｎｄ＿ｄｉｓｔ）。新しいアンカーポイントは、メモリ１０６内部で設定されるアンカーポイントアレイに加算されうる（すなわち、Ａｄｄ  ｎｅｗ＿ｐｔ  ｔｏ  ｐｏｉｎｔ＿ａｒｒａｙ）。
【０１３０】
判断ステップ６０７において、新しいポイント（ｎｅｗ＿ｐｔ）がローカルレイアウトパス上にない場合、制御は、次のローカルレイアウトパスを取得するために、ステップ６０３に戻る。それ以外の場合、新しいポイントがローカルレイアウトパス上にある場合、制御は、アンカーポイントがメモリ１０６内で設定されるアレイに追加されるステップ６０８に流れる。制御は、ステップ６０８の後にステップ６０５に戻る。
【０１３１】
ステップ６０１において、キーオブジェクトのグローバル動作特性が低い程度の動作のランダム性を示す場合、制御は、初期化ステップ６１０に流れる。動作のランダム性が低いため、アンカーポイントは、等間隔で生成される。ステップ６１０では、新しいポイントｎｅｗ＿ｐｔが初期化される（すなわち、ｎｅｗ＿ｐｔ＝（ｘ，ｙ））。また、ステップ６１０では、ポイントアレイ「ｐｏｉｎｔ＿ａｒｒａｙ」がメモリ１０６内に設定され、アンカーポイントを記憶するために初期化される。距離は、ステップ６１０において、グローバル動作特性を考慮することにより生成される（すなわち、ｄｉｓｔａｎｃｅ＝ｕｎｉｆｏｒｍ＿ｄｉｓｔａｎｃｅ（ｇｌｏｂａｌＭｏｔｉｏｎ））。１つの実装において、キーオブジェクトのグローバル動作の平均速度が考慮され、距離はその平均速度に応じて生成される。例えば、平均速度が３０ｋｍ／ｈである場合、距離は３ｃｍであり、アンカーポイントは３ｃｍごとに生成される。制御は、その後、生成ステップ６１１に移動する。
【０１３２】
ステップ６１１において、距離を先のアンカーポイントに加算することによって、新しいアンカーポイントが生成される（すなわち、ｎｅｗ＿ｐｔ＝ｎｅｗ＿ｐｔ＋ｄｉｓｔａｎｃｅ）。１つの実装において、距離は、Ｘ座標のみを変更するために用いられうる。別の実装では、距離は、Ｙ座標のみを変更するために用いられる。さらに別の実装では、距離は、例えば、パスに沿ってその距離だけパスを横断することにより、そして、結果のポイントのＸ及びＹ座標を用いて、両方の座標を変更するために、用いられる。
【０１３３】
判断ステップ６１２において、新しい座標がレイアウトパス上にない場合、方法６００は終了する。その他の場合、方法は、ステップ６１１に戻る。
【０１３４】
ステップ３０５で実行される、オフセットとフレーム特性を決定する方法７００について、図７を参照して説明する。方法７００への入力は、方法４００に従ってステップ３０２で決定された、グローバル動作特性およびローカル動作特性を含む。また、方法７００への入力は、方法５００に従ってステップ３０３で決定された、レイアウトパス（グローバル及びローカル）を含む。また、方法７００への入力は、方法６００に従ってステップ３０４で決定されたアンカーポイントと、方法５００に従って決定されたステップ３０３からのフレーム（突出したフレーム、突出する前のフレーム、及び突出した後のフレーム）を含む。方法７００への入力は、方法３００へ入力されるレイアウト領域を含む。
【０１３５】
方法７００は、プロセッサ１０５によってその実行中に制御される、ハードディスクドライブ１１０に常駐するソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして、実装されうる。
【０１３６】
方法７００は、キーオブジェクトのグローバル動作特性を解析する解析ステップ７０１において開始する。最大許容絶対角度の分散ｔｈｅｔａ＿ｄｅｖ及び最大許容絶対サイズｓ＿ｄｅｖ、スケール係数ｍｉｎ＿ｓｉｚｅ及びｍａｘ＿ｓｉｚｅが、メモリ１０６内において、プロセッサ１０５の実行下で、初期化される。
【０１３７】
フレームのｍｉｎ＿ｓｉｚｅ及びｍａｘ＿ｓｉｚｅは、レイアウト領域及びフレーム数によって決定されうる。１つの実装において、ｍａｘ＿ｓｉｚｅは、以下の式（２）に従って、決定されうる。
ｍａｘ＿ｓｉｚｅ＝レイアウト領域の幅又は高さ／フレーム数−（フレーム×バッファの数）    （２）
ここで、バッファは整数（例えば１０）である。
【０１３８】
１つの実装におけるｍｉｎ＿ｓｉｚｅの幅及び高さは、以下の式（３）に従って、幅又は高さによって設定されうる。
ｍａｘ＿ｓｉｚｅ／フレーム数    （３）
【０１３９】
低い程度のキーオブジェクトのグローバル動作特性のランダム性がある場合（例えば、速度エントロピーが範囲０から１において０．５より小さい場合）、制御は、決定ステップ７０２へ流れる。ステップ７０２において、プロセッサの実行下で、アンカーポイントがオフセット分だけシフトされる。アンカーポイントからのオフセットは、ゼロ又はレイアウトパスより０．２だけ下又は上の定数に設定されるものである。
【０１４０】
高い程度のグローバル動作特性のランダム性がある場合、例えば、速度のエントロピーが範囲０から１において０．６より大きい場合、制御は、決定ステップ７０３に流れる。
【０１４１】
ステップ７０３では、突出したフレームの周囲のフレームのローカル動作特性からのオフセットは、プロセッサ１０５の実行下で決定される。１つの実装では、オフセットは、ランダム性の関数である。例えば、キーオブジェクトの速度エントロピーが高い場合、オフセットは０と１との間のランダムな数であり、アンカーポイントは、レイアウトパスの下又は上にランダムにオフセットぶんだけシフトされる。例えば、オフセットは１つのアンカーポイントからレイアウトパスの上に０．５であり、次のアンカーポイントについてレイアウトの下に０．２でありうる。
【０１４２】
決定ステップ７０４では、ランダム性が低い場合に、画像のサイズ及び回転の角度は、１つの実装に従って以下のように決定される。フレームシーケンス内の位置と突出したフレームの位置とに従って、各フレームに対して基礎サイズが決定される。
【０１４３】
突出したフレーム（ｉ＿ｋ）より小さい各フレーム（ｉ）及びフレームの総数Ｎに対して、フレームのサイズｂａｓｅｓｉｚｅ＿ｉが、以下の式（４）に従って決定される。
ｂａｓｅｓｉｚｅ＿ｉ＝ｓ＿ｍｉｎ×（ｉ＿ｋ−ｉ）／ｉ＿ｋ＋ｓ＿ｍａｘ×（ｉ／ｉ＿ｋ）    （４）
突出したフレーム（ｉ＿ｋ）より大きい各フレーム（ｉ）に対しては、フレームのサイズｂａｓｅｓｉｚｅ＿ｉが、以下の式（５）に従って決定され、
ｂａｓｅ＿ｓｉｚｅ＝ｓ＿ｍｉｎ×（ｉ−ｉ＿ｋ）／（Ｎ−ｉ＿ｋ）＋ｓ＿ｍａｘ×（Ｎ−ｉ）／（Ｎ−ｉ＿ｋ）    （５）
各フレーム（ｉ）に対して範囲［０，１］内のランダム数を返すｒａｎｄ（）を伴い、サイズ（ｓｉｚｅ＿ｉ）及びフレームの回転の角度（ａｎｇｌｅ＿ｉ）が、以下の式（６）及び（７）を用いて決定される。
ｓｉｚｅ＿ｉ＝ｂａｓｅｓｉｚｅ＿ｉ＋（ｂａｓｅｓｉｚｅ＿ｉ／ｓ＿ｍａｘ）×（ｒａｎｄ（）×２−１）×ｒ×ｓ＿ｄｅｖ    （６）
ａｎｇｌｅ＿ｉ＝（ｒａｎｄ（）×２−１）×ｒ×ｔｈｅｔａ＿ｄｅｖ    （７）
【０１４４】
上述のようにサイズに適合させるために、フレームは切り出され又は拡縮される。１つの実装において、フレームの回転はゼロである。別の実装において、フレームの回転は、キーオブジェクトの移動の方向におけるものである。
【０１４５】
ランダム性が高い場合、フレームのサイズは、ｓ＿ｍｉｎとｓ＿ｍａｘとの間で変動する。フレームの回転も、各フレームが先のものと異なる角度に回転される、ランダムである。
【０１４６】
別の実装では、フレームのサイズは、ランダム性に対して線形的に変動しうる。ランダム性、例えば、速度のエントロピー又は画像のエントロピーが増えると、サイズも増える。例えば、図１１Ａは、人物がダイビングしている動作パス１１０１を示している。動作のエントロピーは、位置１１１４において最も高く、１１０６において中間値であり、１１０２及び１１０４において低い。
【０１４７】
図１１Ｂは、レイアウトパス１１１６を有する最終的なレイアウト１１１５を示している。レイアウトパス１１１６における図１１Ｂに示されたフレーム１１２０、１１２１、１１３０及び１１４０は、図１１Ａの動作パス１１０１における１１０４、１１０５、１１０６及び１１１４と一致する。フレーム１１４０の位置において、フレーム１１４０に示された水しぶきのために、動作エントロピーと画像エントロピーが両方とも増えるため、フレーム１１４０のサイズは最大である。
【０１４８】
フレーム１１３０では、サマーソルトのためにエントロピーは中間値であり、他の全位置はエントロピーが低い。したがって、図１１Ｂの例では、フレーム１１２０、１１２１、及び１１２２のフレームサイズが徐々に増加している。
【０１４９】
図１０Ａ及び図１０Ｂは、レイアウトパス１０００及びレイアウトパス１０４０上に空間的に配置される映像フレーム（又は画像）の例を示している。レイアウトパス１０００及び１０４０は、動作パスから取得される修正レイアウトパスである。
【０１５０】
図１０Ａは、レイアウトパス１０００上に示される例示のアンカーポイント１０１０を示している。アンカーポイント１０１０は、レイアウトパス１０００上に配置される。フレーム１００１、１００２、１００３、１００４、及び１００５は、いずれも、ランダム性が低い場合に、上述のアルゴリズムの通りにサイズが増えるフレームであり、アンカーポイントは、オフセットがゼロで、互いに等距離である。
【０１５１】
図１０Ｂでは、ダンスの動作において高いランダム性があるため、フレーム１０５０、１０５１、１０５２、１０５３、１０５４、１０５５、及び１０５６は、サイズが変動し、回転が変動したフレームである。
【０１５２】
図１０Ｂから分かるように、アンカーポイント１０２１は、オリジナルのアンカーポイントであり、アンカーポイント１０２０はアンカーポイント１０２１からオフセットされた新しいアンカーポイントである。フレーム１０５１は、１０２０を中心として配置される。同様に、動作がランダムであるため、ローカル動作特性に基づいて、他のフレームオフセットがレイアウトパス１０００の上または下となる。例えば、フレーム１０５２はレイアウトパス１０００の上のオフセットを有し、フレーム１０５４はレイアウトパスの下である。
【０１５３】
別の実装では、フレームのサイズ及び角度を変動させるのに代えて、フレームの色が変動させられる。突出したフレームは、完全なオリジナルカラーで示されうる。突出する前のフレームは、突出したフレームに向けて増える彩度を以て示され、突出した後のフレームは、突出したフレームから離れるほど減る彩度を以て示されうる。
【０１５４】
１つの実装において、フレームのレイアウトを向上させるために、Ｚオーダーが用いられる。例えば、突出する前のフレーム及び突出した後のフレームが、突出したフレームより低いＺオーダー位置を有し、突出したフレームから離れるとＺオーダーの順序が降下する。
【０１５５】
別の実装では、突出したフレームが不透明であり、突出する前及び突出した後のフレームが突出したフレームから離れるほどに透明性を増すように、フレームの透明性が修正されうる。
【産業上の利用可能性】
【０１５６】
説明される構成は、コンピュータ及びデータ処理産業に、そして特に画像処理のために、適用可能である。
【０１５７】
上述の説明は、本発明のいくつかの実施形態のみについて説明しており、修正と変更との少なくともいずれかが、本発明の範囲及び精神から離れることなくそれに対してなされることができ、実施形態は、説明のためのものであって限定のためのものではない。
【０１５８】
本明細書の文脈において、用語「ｃｏｍｐｒｉｓｉｎｇ」は、「主として含んでいるが必ずしも専らは含まない（ｉｎｃｌｕｄｉｎｇ  ｐｒｉｎｃｉｐａｌｌｙ  ｂｕｔ  ｎｏｔ  ｎｅｃｅｓｓａｒｉｌｙ  ｓｏｌｅｌｙ）」又は「ｈａｖｉｎｇ」又は「ｉｎｃｌｕｄｉｎｇ」を意味し、「だけからなる（ｃｏｎｓｉｓｔｉｎｇ  ｏｎｌｙ  ｏｆ）」を意味しない。「ｃｏｎｐｒｉｓｅ」及び「ｃｏｍｐｒｉｓｅｓ」などの「ｃｏｍｐｒｉｓｉｎｇ」の用語の変化は、対応して、変更された意味を有する。
【図１】
0006298521.tif 000002
【図２】
0006298521.tif 000003
【図３】
0006298521.tif 000004
【図４】
0006298521.tif 000005
【図５】
0006298521.tif 000006
【図６】
0006298521.tif 000007
【図７】
0006298521.tif 000008
【図８Ａ】
0006298521.tif 000009
【図８Ｂ】
0006298521.tif 000010
【図９Ａ】
0006298521.tif 000011
【図９Ｂ】
0006298521.tif 000012
【図１０Ａ】
0006298521.tif 000013
【図１０Ｂ】
0006298521.tif 000014
【図１１Ａ】
0006298521.tif 000015
【図１１Ｂ】
0006298521.tif 000016
【図１２Ａ】
0006298521.tif 000017
【図１２Ｂ】
0006298521.tif 000018