(57)【要約】【課題】デジタルカメラなどのストリーミングに非対応の画像処理装置から、ＰＣなどの情報処理装置に画像ファイルを転送しながら情報処理装置で再生することができる映像システムを提供する。【解決手段】情報処理装置は、画像処理装置から動画ファイルに含まれるフレームデータを記述したインディクスデータを受信し、フレームデータを画像処理装置に順次要求する。この際、再生からの経過時間とフレームデータの転送に要する時間とに基づき、要求するフレームデータを決定する。【選択図】図２
2008270908.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に通信回線を介して接続され、前記画像処理装置に記録された動画ファイルを前記通信回線を介して受信して再生する情報処理装置であって、
前記画像処理装置に記録された動画ファイルに含まれるフレームデータのインディクス情報を受信するインディクス受信手段と、
前記画像処理装置から前記フレームデータが転送される速度を計測する計測手段と、
前記転送の速度とフレームデータの再生開始からの経過時間と前記インディクス情報とに基づき、次に取得するフレームデータを決定する決定手段と、
前記決定手段により決定されたフレームデータの取得要求を前記画像処理装置に送信するフレーム要求手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記画像処理装置から受信した前記フレームデータを表示部に順次表示させることで動画を再生する再生手段と、
前記フレームデータを記憶部に記憶する記憶手段とを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記動画ファイルのフレームデータを前記画像処理装置から受信したか否かを、フレームデータごとに管理するフレーム管理手段を備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記動画の再生の停止または一時停止の指示を受けた場合に、前記フレーム要求手段は、前記フレーム管理手段により管理されたフレームデータのうち、まだ受信していないフレームデータを前記画像処理装置に対して要求することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記記憶手段は、前記画像処理装置から受信したフレームデータを、１フレームごとまたは連続したフレームデータごとに分割ファイルとして記憶し、
前記情報処理装置は、前記動画ファイルに含まれるすべてのフレームデータの転送が完了した場合に、前記分割ファイルから１つの動画ファイルを生成する生成手段を備えることを特徴とする請求項２乃至４に記載の情報処理装置。
【請求項６】
前記動画の停止または一時停止の指示を受けた場合に、前記画像処理装置に対して前記表示部に表示されているフレームデータの番号を通知する通知手段を備えることを特徴とする請求項２乃至５に記載の情報処理装置。
【請求項７】
前記動画を一時停止した後で該動画の再生を再開した場合に、前記動画の再生に必要なフレームデータが既に前記記憶部により記憶されているか否かを判断する判断手段を備え、
前記動画の再生に必要なフレームデータが前記記憶部に記憶されている場合と判断された場合には、前記再生手段は、前記記憶部から読み出したフレームデータを前記表示部に表示することを特徴とする請求項２乃至７に記載の情報処理装置。
【請求項８】
画像処理装置に通信回線を介して接続され、前記画像処理装置に記録された動画ファイルを前記通信回線を介して受信して再生する情報処理装置の制御方法であって、
前記画像処理装置に記録された動画ファイルに含まれるフレームデータのインディクス情報を受信するインディクス受信ステップと、
前記画像処理装置から前記フレームデータが転送される速度を計測する計測ステップと、
前記転送の速度とフレームデータの再生開始からの経過時間と前記インディクス情報とに基づき、次に取得するフレームデータを決定する決定ステップと、
前記決定ステップにより決定されたフレームデータの取得要求を前記画像処理装置に送信するフレーム要求ステップと、を備えることを特徴とする情報処理装置の制御方法。
【請求項９】
画像処理装置に通信回線を介して接続され、前記画像処理装置に記録された動画ファイルを前記通信回線を介して受信して再生する情報処理装置に実行させるプログラムであって、
前記画像処理装置に記録された動画ファイルに含まれるフレームデータのインディクス情報を受信するインディクス受信ステップと、
前記画像処理装置から前記フレームデータが転送される速度を計測する計測ステップと、
前記転送の速度とフレームデータの再生開始からの経過時間と前記インディクス情報とに基づき、次に取得するフレームデータを決定する決定ステップと、
前記決定ステップにより決定されたフレームデータの取得要求を前記画像処理装置に送信するフレーム要求ステップと、を前記情報処理装置に実行させることを特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムを格納した、ことを特徴とするコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、パーソナルコンピュータなどの情報処理装置と画像処理装置とを接続し、動画を転送するシステムに関する。
【背景技術】
【０００２】
デジタルカメラとパーソナルコンピュータ（以下、ＰＣという）等の情報処理装置とをケーブル等の通信回線で接続し、デジタルカメラ側に記録された画像データ等の情報をＰＣに転送するシステムがある。
【０００３】
デジタルカメラは、静止画の他に動画も撮影可能なものが多く、動画データはデジタルカメラ内では１つのファイルとして記録される。その記録方式は種々の方式があるが、その１つに、ＡＶＩファイルフォーマットにモーションＪＰＥＧというエンコード形式で記録する方式がある。
【０００４】
この方式では、動画のフレーム間での相関はパラメータとして用いないため、ファイルサイズ自体は大きくなる傾向にある。しかし、１つ１つのフレームデータは静止画で利用されているＪＰＥＧフォーマットと同等の画質を有し、画質優れている。
【０００５】
デジタルカメラで撮影された静止画ファイルおよび動画ファイルは、一般にはＰＣ等に転送されて、ＰＣ内の記録媒体に記録される。ＰＣとデジタルカメラとの間でのデータ転送には、ＵＳＢ（ユニバーサルシリアルバス）等の有線ケーブルで両者を接続し通信を行うのが一般的である。
【０００６】
ＰＣとデジタルカメラとのデータ交換するためのプロトコルは複数存在する。例えば、ＵＳＢのStill Imaging Device Classで規定されているＰＴＰ（Picture Transfer Protocol）がある。また、Ｍａｓｓストレージデバイスクラスで定義されているプロトコルもある。
【０００７】
ＰＴＰはオブジェクトベースのプロトコルであり、デジタルカメラ内に存在するデータの塊を１つのオブジェクトと呼ばれる単位で管理する。例えば、静止画ファイルは１つのオブジェクトであり、動画ファイルも１つのオブジェクトである。そして、そのオブジェクト単位でデータの転送を行う。
【０００８】
一方で、動画等のコンテンツはインターネットを介して配布されたり配信されたりしており、その場合には、所謂ストリーミング配信等が多く用いられている。ストリーミング配信は、サーバなどから転送された大きな動画データを、クライアント端末側が順次受信しながら、受信が完了したデータから再生（ストリーミング再生）する仕組みである。
【０００９】
従って、ストリーミング配信・再生は転送データが大きくなることが多い動画データの転送方法として有益である。しかしながら、ストリーミング配信を実現するためには、データやサーバ、クライアント端末がストリーミング配信システムに対応するための特別な仕組みを備えることが必要になる。
【００１０】
上記のような特別な仕組みを備えずにストリーミング配信システムを実現する手段として、ストリーミング配信に対応していないサーバをストリーミング配信に対応したサーバとしてシミュレートする技術が提案されている（特許文献１）。
【００１１】
この提案では、動画データなどを複数のセグメントに分割して別々のＵＲＬに配置し、各ＵＲＬのリストをヘッダーから取得する。ヘッダーには、ストリーミング再生するか、手動でインタラクションするかを示す情報があり、この情報を参照して動作を変える。ＵＲＬの移動タイミングはブラウザで計って実行することにより、ストリーミング配信をシミュレートする。
【特許文献１】特開平１１−３２８０７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
現在、デジタルカメラ等の小型の撮像装置においては、モーションＪＰＥＧのＡＶＩファイルに対応している場合が多い。ＡＶＩファイルの動画データはＰＣでは汎用的に利用されている上に、画質の面で優れている。
【００１３】
しかし、現在のデジタルカメラには、ＲＯＭ（Read Only Memory）等のリソースの制約もあり、前述したストリーミング配信に対応した仕組みは実装されていない。
【００１４】
そのため、ＡＶＩファイルをデジタルカメラからＰＣに転送して表示する場合、まず、１つのファイルとしてすべての動画データをＰＣに転送する。そして、すべての動画データが転送された後、ＰＣが動画ファイルを再生する。この方法は、単純で簡素であるが、動画のデータサイズが大きく、１つの動画ファイルを転送し終わるまで再生できない。したがって、再生が開始されるまでユーザはかなり待たされることになる。
【００１５】
例えば、ＵＳＢ２．０のバスを利用した場合、デジタルカメラ内の内部メモリの読み出し速度等も影響し、実行転送速度は５ＭＢ／ｓ程度である。その一方で、動画ファイルは、数分間の動画であってもそのサイズは５００ＭＢ程度となる場合もある。そうすると、すべての動画データの転送が完了し再生が開始されるまで約２分待たされることになる。動画がＨＤ（High Definition）になれば、さらにデータサイズは増大し、この傾向は大きくなる。
【００１６】
そこで本発明は、撮像装置などの画像処理装置からＰＣなどの情報処理装置に送信された動画ファイルを受信しながら、その受信データを再生することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記目的を達成するために、本発明の情報処理装置は、画像処理装置に通信回線を介して接続され、前記画像処理装置に記録された動画ファイルを前記通信回線を介して受信して再生する情報処理装置であって、前記画像処理装置に記録された動画ファイルに含まれるフレームデータのインディクス情報を受信するインディクス受信手段と、前記画像処理装置から前記フレームデータが転送される速度を計測する計測手段と、前記転送の速度とフレームデータの再生開始からの経過時間と前記インディクス情報とに基づき、次に取得するフレームデータを決定する決定手段と、前記決定手段により決定されたフレームデータの取得要求を前記画像処理装置に送信するフレーム要求手段とを備えることを特徴とする。
【００１８】
本発明の情報処理装置の制御方法は、画像処理装置に通信回線を介して接続され、前記画像処理装置に記録された動画ファイルを前記通信回線を介して受信して再生する情報処理装置の制御方法であって、前記画像処理装置に記録された動画ファイルに含まれるフレームデータのインディクス情報を受信するインディクス受信ステップと、前記画像処理装置から前記フレームデータが転送される速度を計測する計測ステップと、前記転送の速度とフレームデータの再生開始からの経過時間と前記インディクス情報とに基づき、次に取得するフレームデータを決定する決定ステップと、前記決定ステップにより決定されたフレームデータの取得要求を前記画像処理装置に送信するフレーム要求ステップと、を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、撮像装置などの画像処理装置からＰＣなどの情報処理装置に送信された動画ファイルを受信しながら、その受信データを再生することができる。したがって、情報処理装置のユーザは動画ファイルの転送が完了することを待つことなく、動画ファイルを閲覧することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態の一例を図を参照して説明する。
【００２１】
図１は、本発明の実施の形態の一例である映像システムを説明するためのブロック図である。図１に示すように、この映像システムは、画像処理装置、特に撮像装置の一種であるデジタルカメラ１００と、情報処理装置の一種であるＰＣ１０１とが通信回線１１２を介して接続されている。通信回線はＵＳＢケーブルなどを用いることができるが、有線の回線に限らず、例えば無線ＬＡＮなどの無線の回線を用いることも可能である。
【００２２】
ＰＣ１０１は、図示は省略するが、演算処理装置（ＣＰＵ）といった制御部、１次記憶装置（ＲＡＭ）、２次記憶装置（ハードディスク）といった記憶部、操作部（キーボード、マウス）、および表示部（ディスプレイ）等を備える。
【００２３】
デジタルカメラ１００は、レンズ、ＣＣＤ、駆動回路等を含む光学ユニット１０５、画像データ等を処理する信号処理装置１０４、ＣＰＵ等の演算装置１０３を備える。さらに、ＤＲＡＭ等の１次記憶装置１０６、内蔵フラッシュＲＯＭ等の２次記憶装置１０７といった記憶部を備える。
【００２４】
また、デジタルカメラ１００は、操作部材１０８、ＬＣＤ等の表示部１０９、プログラム格納等に使用されるＲＯＭ等の読み出し専用メモリ１１０、ＣＦカード等の着脱可能な記録媒体１１１、およびＰＣ１０１の接続を管理する通信制御装置１０２を備える。
【００２５】
通信制御装置１０２は、ＵＳＢ等の有線接続、ワイヤレスＬＡＮ等の無線接続の通信形態に対応できる。ＵＳＢの場合には、ＵＳＢデバイスコントローラ等が通信制御装置１０２に内蔵され、ワイヤレスＬＡＮの場合には、無線通信モジュールなどが通信制御装置１０２に包含される。なお、デジタルカメラの種類によっては、記録媒体１１１および２次記憶装置１０７のいずれか一方を備えていてもよい。
【００２６】
次に、図２を参照して、映像システムの動作モデルについて説明する。
【００２７】
ＰＣ１０１で動作するアプリケーションには、再生画像を表示する表示領域２０２、再生開始ボタン２０４、逆再生開始ボタン２０３、再生停止ボタン２０５、再生一時停止ボタン２０６、コマ戻しボタン２０７、コマ送りボタン２０８が配置されている。
【００２８】
ＰＣ１０１に接続されたデジタルカメラ１００には、表示領域２１０、光学ファインダ２１１、逆再生開始ボタン２１２、再生開始ボタン２１３、一時停止ボタン２１４、こま戻しボタン２１５、コマ送りボタン２１７、停止ボタン２１６等が配置されている。
【００２９】
なお、各ボタンは機器を操作するための操作部として機能するが、物理的な操作部材を用いてもよいし、表示領域２０２や表示領域２１０に表示させたアイコンなどをポインティングデバイスで操作するようにしてもよい。
【００３０】
本実施形態では、デジタルカメラ１００内に記憶された動画ファイルをＰＣ１０１に送信する場合について考える。ＰＣ１０１上はこのとき、アプリケーションを用いて、デジタルカメラ１００から送信された動画ファイルを受信しながら、表示領域２０２に受信した画像を表示する。さらに表示を行いながらＰＣ１０１側のＨＤＤ（ハードディスク装置）等に受信した画像を記憶する。
【００３１】
なお、ユーザが動画の再生や停止などを指示する操作を行う場合、デジタルカメラ１００に設置されている各種ボタン類を操作する。また、ユーザはＰＣ１０１側に表示されているコントロール（ボタン）類を操作してもよい。
【００３２】
ここで、図４を参照して、本実施形態におけるＰＣ１０１側の表示領域２０２、デジタルカメラ１００側の表示領域２１０の画面遷移の概要を説明する。
【００３３】
まず、状態４０１は静止状態である。この状態では動画は停止している。この静止状態のときは、ＰＣ１０１の表示領域２０２側にもデジタルカメラ１００側の表示領域２１０にも、同一のフレーム画像が表示されている。静止状態４０１において、ユーザから動画の再生指示があると動画再生状態４０２に移行する。動画再生状態４０２では、ＰＣ１０１側の表示領域２０２で動画が再生される。動画再生状態４０２では、ＰＣ１０１側の表示領域２０２のみで動画再生を行う。デジタルカメラ１００側の表示領域２１０には、ＰＣ１０１側で動画が再生中であることをユーザに認識させるため、予め定められた文字列やアイコンの表示を行う。
【００３４】
動画再生状態４０２でもデジタルカメラ１００側の表示領域２１０で動画を再生することは可能である。しかし、表示領域２０２と表示領域２１０との動画を同期して再生することは非常に困難である。したがって、２つの動画の画像及び音声が少しずれて再生されることとなり、好ましくない。そこで、表示領域２０２では動画を表示していない。
【００３５】
動画再生状態４０２において、ユーザがデジタルカメラ１００かＰＣ１０１を操作して、動画再生を一時停止もしくは停止させる指示が行われた場合には、一時停止状態４０３に移行する。一時停止状態４０３では、ＰＣ１０１側の表示領域２０２ に表示されているフレームと同じフレーム画像がデジタルカメラ１００の表示領域２１０にも表示される。これにより、動画再生を止めたときのフレームについては、ＰＣ１０１側とデジタルカメラ１００側とで同期がとれるようになっている。
【００３６】
この状態から、ユーザがデジタルカメラ１００かＰＣ１０１を操作して、動画のコマ送りをが指示された場合には、コマ送り状態４０４に移行する。コマ送り状態４０４では、フレームコマ数を合わせる制御がなされＰＣ１０１、デジタルカメラ１００双方でコマ送りが行われる。したがって、コマ送り操作中は表示領域２０２及び表示領域２１０には同じ画面が静止画として表示される。
【００３７】
次に、図３を参照して、ＰＣ１０１側の動画転送に関するモジュール構成を説明する。
【００３８】
なお、本実施形態ではＰＣのＨＤＤなどに記憶されたプログラムや入力信号にしたがい、ＣＰＵなどのハードウエアが各部を制御することにより、各モジュールに定められた機能を果たすことになる。
【００３９】
フレーム転送モジュール３０１は、動画のフレームを転送するために動作するものである。デジタルカメラ１００とデータをやり取りするため、ＰＣ１０１に搭載されているＵＳＢコントローラなどに接続されている。通信制御モジュール３０２は、動画フレームデータ以外のコマンドやデータの交換をデジタルカメラ１００と行うため、ＰＣ１０１に搭載されているＵＳＢコントローラなどに接続されている。表示モジュール３０４は動画および静止画を表示するためモジュールである。保存モジュール３０５は転送された動画フレームデータをＰＣ１０１上のＨＤＤに記録するためのモジュールである。
【００４０】
そして、これらのモジュール群を制御するのが転送フレーム管理モジュール３０３である。このモジュールが、後述する取得フレームの計算やコマ落ちフレームの管理、バックグラウンド転送などを行う。
【００４１】
次に、図５を参照して、動画ファイルの形式であるＡＶＩファイルの形態について説明する。
【００４２】
ＡＶＩファイルは、ビデオ情報を含むビデオストリームヘッダー５０２とオーディオ情報を含むオーディオストリームヘッダー５０３とを包含するメインヘッダー５０１がファイル先頭に配置されている。そして、ファイルの最後尾に各ビデオ、オーディオデータへのオフセット値を持たせたインディクステーブル５０８を含むインディクスチャンク５０５が配置されている。
【００４３】
メインヘッダー５０１とインディクスチャンク５０５との間には、インディクステーブル５０８に格納されたオフセットどおりに各本体データが格納されて、１つのファイルとして構成されている。このインディクステーブル５０８を参照することで、デジタルカメラ１００やＰＣ１０１は、特定のフレーム番号のデータをランダムに読み出すことが可能となる。なお、本実施の形態では、ＡＶＩファイルを例に説明したが、特定のフレームデータをランダムに読み出せるフォーマットであればＡＶＩファイルに限定されない。
【００４４】
次に、図７を参照して、図３で説明した各モジュール間の動作例を説明する。前述したようにユーザはデジタルカメラ１００を操作することでも、ＰＣ１０１を操作することでも動画の再生・停止などを指示できるが、ここではデジタルカメラ１００を操作するものとする。
【００４５】
まず、デジタルカメラ１００のユーザの操作に応じて、デジタルカメラ１００は動画再生スタートの要求をＰＣ１０１に送信する。この際、再生する動画を特定する情報、例えばファイル名やファイルのＩＤ（ＵＵＩＤ）を送信する。ＰＣ１０１が動画再生スタートの要求を受信すると、通信制御モジュール３０２にイベントとして通知される（Ｔ７０１）。
【００４６】
通知を受けると、通信制御モジュール３０２はデジタルカメラ１００に対し、動画ファイルのヘッダー部分の取得要求を送信する（Ｔ７０２）。
【００４７】
デジタルカメラ１００からヘッダー情報を受信すると（Ｔ７０３）、通信制御モジュール３０２は、受信したヘッダー情報を参照してフレームレートやトータルフレーム数などの情報を取得する。通信制御モジュール３０２は、取得した情報を転送フレーム管理モジュール３０３に渡す（Ｔ７０４）。
【００４８】
その後、通信制御モジュール３０２はデジタルカメラ１００に対して動画ファイルのインディクスチャンクの取得要求を送信する（Ｔ７０５）。そしてデジタルカメラ１００から送信されたインディクステーブルのデータ（インディクス情報）を受信し（Ｔ７０６）（インディクス受信手段）、転送フレーム管理モジュール３０３へと渡す（Ｔ７０７）。
【００４９】
ここで、転送フレーム管理モジュール３０３は、再生データ情報及びインディクステーブルに基づき、図６で示すようなフレーム・表示時間管理テーブルを作成する。
【００５０】
フレーム・表示時間管理テーブルのうち、６０１は表示開始からの時間を示すタイムスケールである。６０２はタイムスケール６０１の時点でのフレーム番号である。６０３はインディクステーブルから導き出したデータへのオフセットアドレスである。６０４は転送が完了したかどうかを示す読み込みフラグである。ＰＣ１０１は、再生データ情報及びインディクステーブルを参照することで、再生するために取得すべきフレームと読み込みの有無を知ることができる。
【００５１】
また、転送フレーム管理モジュール３０３は、再生データ情報及びインディクステーブルを保存モジュール３０５に渡す（Ｔ７４１）。保存モジュール３０５は、再生データ情報及びインディクステーブルをＲＡＭまたはＨＤＤに記憶する。
【００５２】
引き続き、図７を用いて説明にする。通信制御モジュール３０２は、転送フレーム管理モジュール３０３に対して再生スタートの命令を発行する（Ｔ７０８）。再生スタートの命令の命令を受けた転送フレーム管理モジュール３０３は、まず、最初のフレームを読み取るようにフレーム転送モジュール３０１に指示する（Ｔ７０９）。
【００５３】
フレーム転送モジュール３０１は、第一フレームの取得をデジタルカメラ１００に対して行う（Ｔ７１０）。この際、フレーム転送モジュール３０１は転送データの転送における転送速度を計測する（Ｔ７１２）。
【００５４】
フレーム転送モジュール３０１は、第一フレームのデータを受信する（Ｔ７１１）。そして受信した第一フレームのデータを転送フレーム管理モジュール３０３に渡す（Ｔ７１４）と共に、計測した転送速度を転送フレーム管理モジュール３０３に通知する（Ｔ７１３）。転送フレーム管理モジュール３０３は、第一フレームデータを表示モジュール３０４に渡して（Ｔ７１７）、表示用タイマーをスタートさせる（Ｔ７１５）。
【００５５】
また、転送フレーム管理モジュール３０３は、第一フレームのデータを保存モジュール３０５にも渡す（Ｔ７１８）。保存モジュール３０５は、渡されたデータを後述する分割一次ファイルとしてＲＡＭまたはＨＤＤに記憶する。
【００５６】
ここで、転送フレーム管理モジュール３０３は、取得フレーム算出処理を行い、次にどのフレームデータをデジタルカメラ１００から取得するかを決定する（Ｔ７１６）（フレーム要求手段）。
【００５７】
ここで取得フレーム算出処理における、取得フレームの算出方法について説明する。図８に、取得フレーム算出処理のフローを示す。
【００５８】
まず、ステップＳ８０１で、転送フレーム管理モジュール３０３は、Ｔ７１５でスタートさせた表示用タイマーの値を参照し、再生スタートからの経過時間を読み出す。
【００５９】
次にステップＳ８０２で、転送フレーム管理モジュール３０３は、あらかじめ記憶されている各処理にかかわるオーバーヘッドの時間をステップＳ８０１で読み出した経過時間に加算する。
【００６０】
次にステップＳ８０３で、転送フレーム管理モジュール３０３は、Ｔ７１２で計測された転送速度とフレームデータのサイズとから、転送にかかる時間を算出し、ステップＳ８０２で求めた時間に加算する。この転送時間を加算することで、次に再生できるタイムスケールがわかる。
【００６１】
次にステップＳ８０４では、転送フレーム管理モジュール３０３は、図６のフレーム・表示時間管理テーブルを参照し、ステップＳ８０３で求めたタイムスケールから割り出されたフレーム番号（仮に第ｎフレームとする）のデータをオフセットアドレスに変換する。
【００６２】
このように、次に取得するアドレスは、再生開始からの時間と、各処理のオーバーヘッドの時間と、フレームデータの転送に要する時間に基づき求められる。つまり、ＰＣ１０１は単純にインディクスの先頭から順にフレームデータを要求せず、表示までの遅延時間を算出し、遅延した分のフレームの取得をスキップして、さらに先のフレームを要求する。
【００６３】
以上が取得フレーム算出処理である。以下、図７を用いた説明に戻る。
【００６４】
転送フレーム管理モジュール３０３は、オフセットアドレスを基にフレーム転送モジュール３０１に転送要求を出す（Ｔ７１９）。また、それと並行して転送フレーム管理モジュール３０３は、別スレッドで未転送管理スレッドを立ててフレーム・表示時間管理テーブルの読み込みフラグ６０４の監視を開始する。
【００６５】
フレーム転送モジュール３０１は、第ｎフレームの取得要求をデジタルカメラ１００に送信する（Ｔ７２０）。そしてデジタルカメラ１００から送信された第ｎフレームのデータを受信すると（Ｔ７２１）、転送フレーム管理モジュール３０３に渡す（Ｔ７２２）。
転送フレーム管理モジュール３０３は第ｎフレームのデータを表示モジュール３０４に渡し（Ｔ７２３）、表示モジュール３０４は第ｎフレームのデータを表示する。また、転送フレーム管理モジュール３０３は第ｎフレームのデータを保存モジュール３０５に渡し（Ｔ７２４）、保存モジュールは第ｎフレームのデータをＲＡＭまたはＨＤＤに記憶する。この時点で転送フレーム管理モジュール３０３は別スレッドで動作している未転送管理スレッドの処理を行う。すなわち、フレーム・表示時間管理テーブルのうち、第ｎフレームの読み込みフラグ６０４をＯＮにする。
【００６６】
動画再生の停止などのイベントが発生しなければ、以上のシーケンスを繰り返し（Ｔ７２５〜Ｔ７３１）、受信したフレームを順次表示することで動画ファイルが再生される。
【００６７】
以下、途中で動画再生の停止要求または一時停止要求が発生した場合について説明する。ここでは一例として、停止要求が発生した場合について説明する。デジタルカメラ１００のユーザの操作により動画の停止が指示されると、デジタルカメラ１００は動画の停止要求をＰＣ１０１に送信する。停止要求は通信制御モジュール３０２に通知される（Ｔ７３２）。通信制御モジュール３０２は転送フレーム管理モジュール３０３に動画を停止することを通知する（Ｔ７３３）。それを受けて転送フレーム管理モジュール３０３は、停止した時点で再生していたフレーム番号を通信制御モジュール３０２に返信する（Ｔ７３４）。本実施形態における、停止した時点で再生していたフレーム番号とは、停止の直前に転送フレーム管理モジュール３０３が表示モジュール３０４に渡したフレームデータの番号である。通信制御モジュール３０２は、デジタルカメラ１００に対して停止したフレーム番号を送信する（Ｔ７３５）。
【００６８】
Ｔ７３５にてＰＣ１０１から送信されたフレーム番号をデジタルカメラ１００が受信すると、デジタルカメラ１００は受信したフレーム番号に対応するフレームデータをデジタルカメラ１００の表示領域２１０に表示する。これの処理により、ＰＣ１０１側の表示領域２０２に表示される静止画面と、デジタルカメラ１００側の表示領域２１０に表示される静止画面とが同期して同じ画像となる。
【００６９】
動画の再生が停止または一時停止すると、デジタルカメラ１００からＰＣ１０１へのフレームデータの転送が止まる。このとき、転送フレーム管理モジュール３０３は立ち上げている未転送管理スレッドにて、未転送のフレームデータを取得する処理を行う。
【００７０】
転送フレーム管理モジュール３０３、フレーム・表示時間管理テーブルの読み込みフラグ６０４を参照し、未転送のフレームデータ、すなわちフラグがＯｆｆになっているフレームのフレーム番号（ここではｎ＋１番目とする）を読み出す（Ｔ７４２）。
【００７１】
そして、読み出したフレーム番号をデジタルカメラ１００から読み出すようフレーム転送モジュール３０１に要求する（Ｔ７３６）。もしｎ番目のフレームまですべてのフラグがＯｎであれば、転送フレーム管理モジュール３０３は順次ｎ＋１番目のフレーム、ｎ＋２番目のフレーム・・・と残りのフレームを順番に要求する。しかし、取得をスキップしたフレームがある場合には、スキップしたフレームも要求する。フレーム転送モジュール３０１は、デジタルカメラ１００に対してｎ＋1番目のフレームデータの取得要求を送信する（Ｔ７３７）。そして、デジタルカメラ１００から送信されたフレームデータを受信する（Ｔ７３８）。そして、フレーム転送モジュール３０１は、受信したフレームデータを転送フレーム管理モジュール３０３に渡す（Ｔ７３９）。転送フレーム管理モジュール３０３は、保存モジュール３０５にフレームデータを渡す（Ｔ７４０）。保存モジュール３０５は、フレームデータを後述する分割一次ファイル（分割ファイル）としてＲＡＭまたはＨＤＤに記憶する。
【００７２】
この処理を該当する動画ファイルの全てのフレームが転送完了するまで繰り返す。この処理により、動画の表示を停止している間に、未転送のフレームデータを受信することができる。したがって、動画の再生を再開した場合に、データの転送を効率よく行うことが可能となる。このとき、動画の停止中にデータ転送が行われていることをユーザに知らせるための表示を行ってもよい。
【００７３】
図１１に、動画の停止中にデータ転送が行われていることをユーザに知らせるための表示の一例を示す。
【００７４】
図１１は一時停止状態のＰＣ１０１側の表示画面を示している。図２と同様のボタン及び表示領域に加えて、プログレスバー１１０９が表示される。プログレスバー１１０９は、動画ファイル全体のうち、どのくらいの割合のデータがＰＣ１０１に転送されたかを示すものである。動画の再生を開始する指示を受けると、データの転送が開始され、プログレスバー１１０９も動き出し、データ転送の進捗を表示する。そして途中で再生を停止した場合であっても、前述したように未転送フレームの転送処理を行うため、プログレスバー１１０９は動き続ける。そして、動画ファイルの転動が完全に終わるまで、すなわちすべてのフレームが転送された時点でプログレスバー１１０９は止まる。
【００７５】
このような表示を行うことで、ユーザは動画の再生を停止した後でもデータの転送が行われていることを容易に把握することができる。したがって、動画の再生を停止したユーザが、未転送フレームが残った状態でデジタルカメラ１００とＰＣ１０１の接続を切断してしまう事態を防ぐことができる。
【００７６】
次に、保存モジュール３０５の動作について説明する。本実施形態におけるＰＣ１０１は、フレームデータをフレーム番号通りに受信しない。したがって、受信したフレームデータを正しいフレームの順序に直し、動画ファイルを復元する処理を行う必要がある。以下、受信したフレームデータから動画ファイルを復元する処理について説明する。
【００７７】
前述したように、保存モジュール３０５は、Ｔ７４０で転送フレーム管理モジュール３０３から渡されるフレームデータを分割一次ファイルとして保存する。
【００７８】
保存モジュール３０５は、分割一次ファイルのファイル名を、元の動画ファイルを特定できる識別情報（以下、「ＵＵＩＤ」）とフレーム番号とから生成する。デジタルカメラ１００で撮影された動画ファイルにはＵＵＩＤが付されていることが多いため、このＵＵＩＤを用いることができる。例えば、ＵＵＩＤが仮に０１１、フレーム番号が１２８番だとすると、分割一次ファイルのファイル名は０１１-１２８となる。このようにファイル名を付与することにより、ファイル名からそのファイルがどの動画ファイルの一部、何フレーム目のデータであるかが特定できる。
【００７９】
そして、デジタルカメラ１００からＰＣ１０１に、すべてのフレームデータが読み込まれたとき、分割一次ファイルは元の１つの動画ファイルとして保存モジュール３０５により復元される。その概要を図９に示す。
【００８０】
デジタルカメラ１００には、複数のフレームデータがまとめられた１つの動画ファイル９０１が記憶されている。ＰＣ１０１はこのデータを図７に示す処理により１フレームづつ受信する。保存モジュール３０５は、受信したフレームデータをフレームごとに分割一次ファイル９０２〜９０６として記憶する。そして保存モジュール３０５は、これら分割一次ファイル９０２〜９０６のうち、特定の動画ファイルの一部であったフレームを抽出し、さらに、フレーム番号順にソートする。これは前述した分割一次ファイルのファイル名を参照することにより可能である。そして記憶した再生データ情報、インディクステーブル、ソートした分割一次ファイルに基づき、動画ファイル９０７を復元する。
【００８１】
また、他の例として、ＰＣ１０１は分割一次ファイルを１フレームごとではなく、連続して読み込んだフレーム単位で分割して記憶してもよい。通信速度が動画のフレーム転送に対して比較的高速な場合には、連続して表示しながらフレームを連続して受信できる場合がある。この場合には、図１０に示すように、連続したフレーム分を１つのファイル１００２、１００３とする。こうすることで、オーバーヘッドのファイル数を軽減できる。
【００８２】
また、この場合にも分割一次ファイルのファイル名は上述した方法で生成するが、フレーム番号の部分は連続する最初のフレーム番号とする。フレーム番号は不連続になるが、ソートの際には番号の大きい順または小さい順にソートをすることで復元が可能となる。
【００８３】
以上が復元処理である。なお、復元処理とは、デジタルカメラ１００と同様の動画を再生するための動画ファイルを情報処理装置１０１側で再生成する処理であり、必ずしもデジタルカメラ１００に記憶されていた動画ファイルと完全に同一である必要はない。
【００８４】
次に、ユーザ操作などが原因で動画ファイルの転送を途中が中止されてしまい、動画ファイルのフレームデータが最後まで転送されなかった場合について説明する。
【００８５】
この場合、すべてのフレームデータが転送されていないため、保存モジュール３０５はファイルの復元を行うことができず、分割一次ファイルのみが記憶された状態となる。このような場合、同一の動画であっても、既にＰＣ１０１に転送されたフレームとデジタルカメラ１００にしか記憶されていないフレームが混在することになる。このような状態において、デジタルカメラ１００とＰＣ１０１とが接続された場合について説明する。
【００８６】
ＰＣ１０１が未転送のフレームを管理するためのテーブルを図１３に示す。
【００８７】
この管理テーブルは、図６で説明したフレーム・表示時間管理テーブルを元の動画ファイルのＵＵＩＤごとに関連付けたものである。
【００８８】
デジタルカメラ１００とＰＣ１０１とが再度接続され、再度同一の動画ファイルの再生要求がきたとする。この場合、まずデジタルカメラ１００からＵＵＩＤが送信される。ＰＣ１０１は受信したＵＵＩＤと図１３のテーブルのＵＵＩＤ部１３０１と照合し、参照するフレーム・表示時間管理テーブル１３０２を決定する。
【００８９】
再生時の基本的なシーケンスは図７で説明したものと同じであるが、ＰＣ１０１は、図８のフローに従い取得フレームを算出した後、図１２のフローに従った処理を実行する。
【００９０】
以下、図１２の処理について説明する。ステップＳ１２０１で、転送フレーム管理モジュール３０３は、図１３の管理テーブルを参照して、ステップＳ８０４で算出したフレームがすでにＰＣ１０１に転送されているかどうかを判断する。転送済みか否かは、読み込みフラグ６０４がＯｎかＯｆｆかを判断する。もし転送済みであれば、保存モジュール３０５に対し、算出したフレーム番号に対応する分割一次ファイルを読み出すよう要求する（ステップＳ１２０３）。転送フレーム管理モジュール３０３は、保存モジュールか３０５から読み出された分割一次ファイルから得られたフレームデータを表示モジュール３０４に渡し、表示させる。ステップＳ１２０１で未転送であると判断された場合は、デジタルカメラ１００から取得する通常のシーケンスで転送処理が実行される（ステップＳ１２０２）。
【００９１】
以上説明したように、この実施の形態では、ストリーミング対応していないデジタルカメラ１００から通常利用されている動画ファイルであるＡＶＩファイルをＰＣ１０１に転送しながらユーザを待たせることなく動画再生と保存を同時に実行することができる。
【００９２】
また、ユーザが動画再生を途中で停止、又は終了した場合にもそれまでに転送されたデータはその後継続されて転送されるため有効に利用することができる。その結果、ユーザは動画ファイルの転送を気にすることなく、動画ファイルをＰＣ１０１で再生しているか、もしくは再生を停止していても、大きなファイルを効率的にＰＣ１０１に保存することが可能となる。
【００９３】
さらに、ＰＣ１０１上での動画再生停止画像とデジタルカメラ１００の表示画面上での動画停止画像とをフレーム単位で合わせることができる。その結果、デジタルカメラ１００の操作でＰＣ１０１の動画再生を制御するような場合に、ユーザにわかりやすい操作を提供できるようになる。
【００９４】
さらに、ＰＣ１０１での動画再生が停止もしくは終了してもバックグラウンドで転送が進行していることをユーザに知らせることができるので、転送が完了するまで接続を維持することが可能になる。
【００９５】
さらに、途中でＰＣ１０１での動画再生を停止し、全データがＰＣ１０１に転送される前に通信が切断されたとしても、次回再生時にはすでに転送済みのデータは有効に利用され、さらに継続して転送が行われるため効率的な動画ファイルの保存が可能になる。
【００９６】
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【００９７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９８】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１００】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【図面の簡単な説明】
【０１０１】
【図１】本発明の実施の形態の一例である映像システムを説明するためのブロック図である。
【図２】本発明の実施の形態の一例である映像システムを説明するための概念図である。
【図３】ＰＣ側の動画転送サブシステムを説明するためのブロック図である。
【図４】ＰＣ側、デジタルカメラ側の画面遷移を説明するための説明図である。
【図５】動画ファイルの形態を説明するための図である。
【図６】未転送管理テーブルを説明するための図である。
【図７】本発明の実施の形態の一例である映像システムの動作例を説明するためのシーケンス図である。
【図８】取得フレーム算出方法を説明するためのフローチャート図である。
【図９】動画ファイルの分割保存を説明するための概念図である。
【図１０】動画ファイルの分割保存の他の例を説明するための概念図である。
【図１１】バックグラウンドでの転送表示例を説明するための図である。
【図１２】動画再読み込み時の動作例を説明するためのフローチャート図である。
【図１３】保存モジュールの利用するファイル別未転送管理テーブルの一例を示す図である。
【符号の説明】
【０１０２】
１００    デジタルカメラ
１０１    ＰＣ
１０２    通信制御装置
１０３    演算装置
１０４    信号処理装置
１０５    光学ユニット
１０６    １次記憶装置
１０７    ２次記憶装置
１０８    操作部
１０９    表示部
１１０    読み出し専用メモリ
１１１    着脱可能記録媒体
３０１    フレーム転送モジュール
３０２    通信制御モジュール
３０３    転送フレーム管理モジュール
３０４    表示モジュール
３０５    保存モジュール
【図１】
2008270908.tif 000003
【図２】
2008270908.tif 000004
【図３】
2008270908.tif 000005
【図４】
2008270908.tif 000006
【図５】
2008270908.tif 000007
【図６】
2008270908.tif 000008
【図７】
2008270908.tif 000009
【図８】
2008270908.tif 000010
【図９】
2008270908.tif 000011
【図１０】
2008270908.tif 000012
【図１１】
2008270908.tif 000013
【図１２】
2008270908.tif 000014
【図１３】
2008270908.tif 000015