(57)【要約】【課題】  リアルタイムに画像データの転送が可能な装置を提供する。【解決手段】  ＵＳＢを経由して外部機器との間で画像データの送受信を行う装置であって、前記画像データの転送用の第一の転送パイプと、システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプにより前記画像データを転送時しながら、前記第二のパイプで前記第一のパイプにて転送中の画像データのシステムクロックに関する情報を転送する。【選択図】  図４
2005328280.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢを経由して外部機器との間で画像データの送受信を行う装置であって、
前記画像データの転送用の第一の転送パイプと、システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプにより前記画像データを転送時しながら、前記第二のパイプで前記第一のパイプにて転送中の画像データのシステムクロックに関する情報を転送することを特徴とするデータ処理装置。
【請求項２】
アイソクロナス転送により前記システムクロックに関する情報を転送することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記第二の転送パイプにより転送するシステムクロックに関する情報が、第一の転送パイプにより転送する画像データのフレーム周波数を示す情報であることを特徴とする請求項１または２記載のデータ処理装置。
【請求項４】
前記ＵＳＢを介した前記外部機器との接続のネゴシエーション時に、前記第一の転送パイプにより転送する画像データの１フレームにおける最大ビット長を含む情報を転送することを特徴とする請求項３記載のデータ処理装置。
【請求項５】
ＵＳＢを経由してホスト機器とスレイブ機器との間で画像データの転送を行うシステムであって、
前記画像データの転送用の第一の転送パイプと、前記システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプによる画像データの転送時に、前記第二のパイプで前記スレイブ機器のシステムクロックに関する情報を前記マスタ機器に転送することを特徴とするデータ転送システム。
【請求項６】
アイソクロナス転送により前記システムクロックに関する情報を転送することを特徴とする請求項５記載のデータ転送システム。
【請求項７】
前記第二の転送パイプにより転送するシステムクロックに関する情報が、第一の転送パイプにより転送する画像データのフレーム周波数を示す情報であることを特徴とする請求項５または６記載のデータ転送システム。
【請求項８】
前記スレイブ機器は前記画像データを符号化して送信すると共に、前記ホスト機器は受信した画像データを復号する復号手段を有し、前記第一の転送パイプにより前記スレイブ機器から前記ホスト機器へ前記画像データを転送する際に、前記第二の転送パイプにより転送されるフレーム周波数の情報により、前記スレイブ機器における前記画像データの符号化処理と、前記ホスト機器の復号処理の同期をとることを特徴とする請求項７記載のデータ転送システム。
【請求項９】
前記ホスト機器は前記復号した画像データを表示する表示手段を有し、第二の転送パイプにより転送されるフレーム周波数の情報により、前記スレイブ機器における符号化処理と前記ホスト機器における表示手段の同期をとることを特徴とする請求項８記載のデータ転送システム。
【請求項１０】
前記ホスト機器は前記画像データを符号化して送信すると共に、前記スレイブ機器は受信した画像データを復号する復号手段を有し、前記第一の転送パイプにより前記ホスト機器から前記スレイブ機器へ前記画像データを転送する際に、前記第二の転送パイプにより転送されるフレーム周波数の情報により、前記ホスト機器における前記画像データの符号化処理と、前記スレイブ機器の復号処理の同期をとることを特徴とする請求項７記載のデータ転送システム。
【請求項１１】
前記ＵＳＢ接続のネゴシエーション時に、前記第一の転送パイプにより転送する画像データの１フレームにおける最大ビット長を含む情報を送受信することを特徴とする請求項５記載のデータ転送システム。
【請求項１２】
前記ネゴシエーション時に送受信した１フレームにおける最大ビット長に関する情報から、前記第一の転送パイプに用いるバッファサイズ及び、伸長開始のタイミングを取得することを特徴とする請求項１１記載のデータ転送システム。
【請求項１３】
伝送路を介して外部機器との間で画像データの送受信を行う装置であって、
前記画像データの転送用の第一の転送パイプと、システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプにより前記画像データを転送時しながら、前記第二のパイプで前記第一のパイプにて転送中の画像データのシステムクロックに関する情報を転送することを特徴とするデータ処理装置。
【請求項１４】
前記伝送路はデジタルデータをシリアル通信により伝送することを特徴とする請求項１３記載のデータ処理装置。
【請求項１５】
伝送路を経由してホスト機器とスレイブ機器との間で画像データの転送を行うシステムであって、
前記画像データの転送用の第一の転送パイプと、前記システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプによる画像データの転送時に、前記第二のパイプで前記スレイブ機器のシステムクロックに関する情報を前記マスタ機器に転送することを特徴とするデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に外部機器との間でデータの送受信を行う装置に関する。
【背景技術】
【０００２】
異なるシステムクロックに基づくサンプリングレートに従った、異なるメディア間のデータ送受信において、マスタのクロックと、受信するパケットタイムスタンプに基づいてスレイブのクロックの差を算出し、算出値を転送レート変更用データとして格納した転送レート変更メッセージを生成して、スレイブに送信し、スレイブはメッセージに従って転送レートを変更することで、マスタとスレイブ間のクロック差を吸収し、バッファのオーバーラン、アンダーランを回避するデータ通信システムがある。（例えば特許文献１参照）
【特許文献１】特開２００３−１７９６６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら従来技術では、ＵＳＢのようにマスタからの転送要求に対してスレイブが応答し、またパケットサイズをパケット毎に自由に再設定できないような転送インターフェースでは、バッファのオーバーラン、アンダーランを根本的に解決させることができない。
【０００４】
本発明はこの様な問題を解決し、ＵＳＢ接続時における転送データのバッファアンダーラン、オーバーランを容易に回避し、リアルタイムに画像データの転送が可能な装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明においては、ＵＳＢを経由して外部機器との間で画像データの送受信を行う装置であって、前記画像データの転送用の第一の転送パイプと、システムクロックに関する情報の転送用の第二の転送パイプを有し、前記第一のパイプにより前記画像データを転送時しながら、前記第二のパイプで前記第一のパイプにて転送中の画像データのシステムクロックに関する情報を転送する構成とした。
【発明の効果】
【０００６】
本発明によれば、ストリーミングのリアルタイム性を向上させることができる。
【発明を実施するための最良の形態】
【０００７】
第１の実施形態におけるデジタルビデオカメラは、ＣＣＤからの入力画像及びマイクからの入力音声をパソコンに転送してストリーミング再生を行う機能を備えた複合装置である。
【０００８】
図１は、第１の実施の形態に係るパソコンとデジタルビデオカメラとを接続したシステムの構成を示すブロック図である。図１において、１００はパソコンを示し、ＵＳＢホストとして機能している。１０１はＵＳＢケーブルである。１０２はＵＳＢポートを備えたＵＳＢデバイスであるデジタルビデオカメラ（ＤＶＣ）である。このシステムでは、パソコン１００とデジタルビデオカメラ１０２とがＵＳＢケーブル１０１により直接接続され、デジタルビデオカメラ１０２で撮影中の動画像及び音声がストリーム再生用データとしてパソコンに転送される。
【０００９】
また、データの転送方向は、デジタルビデオカメラ１０２からパソコン１００への方向をＵｐ  Ｓｔｒｅａｍと呼び、パソコン１００からデジタルビデオカメラ１０２への方向をＤｏｗｎ  Ｓｔｒｅａｍと呼ぶこととし、第一の実施形態におけるデジタルビデオカメラではＵｐ  Ｓｔｒｅａｍのストリーミング機能を有するものとし、これについて説明する。
【００１０】
図２は、第１の実施形態に係るデジタルビデオカメラ１０２の構成を示すブロック図である。図２において、２００は被写体からの光を通すレンズ、２０１は撮像素子（ＣＣＤ）で、この撮像面上にレンズ２００からの光が結像され、その結像した画像に応じた電気信号を出力する。２０２はカメラ信号処理部で、撮像素子２０１からの光電変換画像を標準的な画像信号になるように信号処理を行う。２０３は画像圧縮伸長部で、画像信号をＭＰＥＧ２等により符号化して圧縮し、また符号化時１フレームの最大ビット長が設定である。２０４は音声圧縮伸長部で、マイクロフォン２０６から発生される音声信号を、例えばＡＣ３符号化等により圧縮して音声処理を行う。２０５は多重化処理部で、画像圧縮伸長部２０３及び音声圧縮伸長部２０４で圧縮された画像データ及び音声データを、例えばＭＰＥＧ２−ＴＳ（Ｔｒａｎｓｆｅｒ  Ｓｔｒｅａｍ）フォーマットに多重化を行う。マイクロフォン２０６は、音声を取得するために使用される。２０７は音声信号処理部で、マイクロフォン２０６からの音声信号を標準的な音声信号になるように信号処理を行う。２０８はＣＰＵで、メモリ２０９に記憶された制御プログラムに従って、このデジタルビデオカメラ全体の動作を制御している。メモリ２０９はまた、一時的に画像データや音声データを蓄積するメモリとしても使用される。２１０はＵＳＢコントローラである。２１１はＵＳＢケーブルを着脱するためのコネクタである。
【００１１】
図３は、第１の実施の形態に係るデジタルビデオカメラ１０２におけるＵＳＢコントローラ２１０のエンドポイント（ＵＳＢの転送用ＦｉＦｏ）の構成である。エンドポイント０は、ＵＳＢのデフォルトのコントロールエンドポイントであり、このエンドポイント０を用いてＵＳＢが接続された際のネゴシエーション動作及び、ストリーミング開始命令等を送受信する為に用いられる。エンドポイント１はストリーミング用ＭＰＥＧ２−ＴＳを転送する為のアイソクロナスエンドポイントである。エンドポイント２は、デジタルビデオカメラ１０２のフレーム周波数をパソコン１００へ送る為のアイソクロナスエンドポイントである。
【００１２】
図４は、デジタルビデオカメラ１０２のストリーミング時における処理の流れを説明するフローチャートである。以下、図２のブロック図及び図４のフローチャートを参照して動作を説明する。また、起動時には、図示しないフラッシュメモリに圧縮されて記憶されているプログラムが、メモリ２０９に解凍／展開される。そしてＣＰＵ２０８が、このメモリ２０９に格納されたプログラムに従って動作するものとする。
【００１３】
まず図４のステップＳ４００において、ＵＳＢケーブル１０１がＵＳＢコネクタ２１１に挿入されるとステップＳ４０１に進み、ＵＳＢコントローラ２１０は、このケーブル１０１が挿入されたことを検知し、ＣＰＵ２０８にケーブルが挿入された旨を通知する。これによりＣＰＵ２０８は、ＵＳＢコントローラ２１２に必要な初期化を行い、この初期化の終了後、ＵＳＢコントローラ２１０を制御して接続用のＰｕｌｌ−Ｕｐを行う。
【００１４】
これにより、ＵＳＢデバイスであるデジタルビデオカメラ１０２からＰｕｌｌ−Ｕｐを受けたＵＳＢホストであるパソコン１００は、そのＵＳＢデバイス１０２に対するネゴシエーション動作に入る。ネゴシエーション要求を受けたデジタルビデオカメラ１０２は、ステップＳ４０２において、図３に示す接続モードに合わせたディスクリプタ情報（ＵＳＢ接続情報）を、メモリ２０９上に作成し、パソコン１００のネゴシエーション要求に応じて転送する。このネゴシエーション動作において、ＵＳＢデバイスであるデジタルビデオカメラ１０２は、ホストであるパソコン１００に対して、パソコンが持つ図示しないデコーダに必要なバッファサイズを通知する。バッファサイズの計算方法は以下の通りである。
・ストリームデータが、Ｉｎｔｒａ−Ｆｒａｍｅ（以下Ｉフレーム）とＰｒｅｄｉｃｔｉｖｅ−Ｆｒａｍｅ（以下Ｐフレーム）から成る場合
バッファサイズ＝１フレームの最大ビット長×１
・ストリームデータが、ＩフレームとＰフレームとＢｉｄｉｒｅｃｔｉｏｎａｌｌｙ−Ｐｒｅｄｉｃｔｉｖｅ−Ｆｒａｍｅ（以下Ｂフレーム）から成る場合
バッファサイズ＝１フレームの最大ビット長×（Ｂフレームの連続発生数＋１）
ステップＳ４０３において、パソコン１００はストリーミング開始時にＳｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドを発行してＡｌｔｅｒｎａｔｅ設定を変更し、デジタルビデオカメラ１０２にストリーミング開始を告げる。ストリーミング開始を告げられたデジタルビデオカメラ１０２は、ステップＳ４０４〜Ｓ４０６に示す、フレーム周波数に応じた符号化処理と、ステップＳ４０７〜Ｓ４１５に示す、ＵＳＢアイソクロナス転送の周波数に応じた転送処理を並列で行い、パソコン１００から再びＳｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドによってストリーミング終了が告げられるまでこれを繰り返す。
【００１５】
まず、フレーム周波数で処理するステップＳ４０４〜Ｓ４０７について説明する。
【００１６】
ステップＳ４０４においてフレームの開始タイミングであった場合、ステップＳ４０５において、レンズ２００により得られた被写体象は、撮像素子２０１により光電変化され、この電気信号はカメラ信号処理部２０２に入力される。このカメラ信号処理部２０２は、光電変換画像を標準的な画像信号に変換してメモリ２０９に一時的に保管され、その後、画像圧縮伸長部２０３において、ＭＰＥＧ用に画像圧縮符号化処理を行い、メモリ２０９の、先程とは異なったエリアに一時的に保管される。一方、マイクロフォン２０６から得られた音声信号は、音声信号処理部２０７により標準的な音声信号に変換され、メモリ２０９の標準画像信号を保管するエリアへ一時的に保管し、その後、音声圧縮伸長部２０４において、ＡＣ３用に音声圧縮符号化処理を行い、メモリ２０９の、先程とは異なったエリアに一時的に保管される。その後、多重化処理部２０５は符号化した画像データ及び音声データを多重化してＭＰＥＧ２−ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ）パケットをメモリ２０９上で生成する。さらにステップＳ４０６において、ＣＰＵ２０８は、メモリ２０９上のＭＰＥＧ２−ＰＥＳパケットを１８８バイトの固定長に分割し、ＭＰＥＧ２−ＴＳパケットをメモリ２０９上に生成する。これを繰り返すことで、メモリ２０９上にストリーミング用のＭＰＥＧ２−ＴＳパケットを順次生成可能となる。
【００１７】
次に、ＵＳＢアイソクロナス転送の周波数で処理するステップＳ４０７〜Ｓ４１５について説明する。
【００１８】
ステップＳ０４０３においてストリーミングが開始されると、パソコン１００は、デジタルビデオカメラ１０２に対してＳｅｔ  Ｉｎｔｅｒｆａｃｅコマンドを発行後、Ｕｐ  Ｓｔｒｅａｍデータ転送用エンドポイント１と、フレーム周波数転送用エンドポイント２に対してＩＮトークン（データ転送命令）を発行し始める。ステップＳ４０７において、エンドポイント１に対するＩＮトークンを受理すると、ＣＰＵ２０８はステップＳ４０６で生成した生成可能なＭＰＥＧ２−ＴＳパケットがメモリ２０９上に存在するかを確認する。存在しない場合、ＣＰＵ２０８はＵＳＢコントローラ２１０によりパソコン１００へＮｕｌｌパケットを送信する。これとは逆に存在する場合、ＣＰＵ２０８はメモリ２０８上でＭＰＥＧ２−ＴＳパケットに所定の処理を加え、ＵＳＢパケット化しステップＳ４１１において、作成したＵＳＢパケットをＵＳＢコントローラ２１０により転送する。次に、ステップＳ４１２においてパソコン１００がエンドポイント２に対しＩＮトークンを投げてきた場合、ＣＰＵ２０８はステップＳ４１３によって、ステップＳ４０４のフレーム開始タイミング直後のＩＮトークンであるかを判断する。直後でなければステップＳ４１４において、ＣＰＵ２０８はＵＳＢコントローラ２１０によりＮｕｌｌパケットを送信し、これとは逆に直後であれば、ステップＳ４１５においてデジタルビデオカメラ１０２の符号化開始タイミングであることを示すフラグを送信する。これを順次繰り返すことでストリーミングデータの転送と、デジタルビデオカメラ１０２のフレーム周波数をパソコン１００へ送ることが出来る。
【００１９】
次に、ＵＳＢホストであるパソコン１００の動作について説明する。
【００２０】
図５は、パソコン１００のストリーミング時における処理の流れを説明するフローチャートである。以下、図５のフローチャートを参照して動作を説明する。
【００２１】
図５のステップＳ５００において、ＵＳＢケーブル１０１が接続されると、パソコン１００はケーブル上のＶＢＵＳに電圧を印加する。このＶＢＵＳ印加を検知したデジタルビデオカメラ１０２が、Ｐｕｌｌ−Ｕｐ動作を行ってくる為、ステップＳ５０１において、所定のネゴシエーション動作を行う。ここで、パソコン１００は、デジタルビデオカメラ１０２から１フレームの最大ビット長とＢフレームの連続発生数を取得し、これに合わせたバッファサイズを図示しないメモリ上に確保する。
【００２２】
ステップＳ５０２において図示しないアプリケーションからストリーミング起動要求をうけると、デジタルビデオカメラ１０２に対し、Ｓｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドを投げストリーミング開始を告げる。ストリーミングを開始したパソコン１００はＵＳＢアイソクロナス転送周波数に合わせたステップＳ５０３〜Ｓ５０７のストリーミングデータ取得処理と、ステップＳ５０８〜Ｓ５１２のストリーミングデータ伸長・表示処理を並列で行い、図示しないアプリケーションから終了要求を受けるまでこれを繰り返す。
【００２３】
まず、ＵＳＢアイソクロナス転送周波数で動作するステップＳ５０３〜Ｓ５０７について説明する。ストリーミング再生を開始されると、ステップＳ５０３において、Ｅｎｄｐｏｉｎｔ１に対するＩＮトークンを発行し、デジタルビデオカメラ１０２からストリーミングデータの取得を試み、ステップＳ５０４において、デジタルビデオカメラ１０２からＵＳＢパケットの形式でストリーミングデータを取得する。同様にステップＳ５０５において、パソコンはＥｎｄｐｏｉｎｔ２へＩＮトークンを投げ、ステップＳ５０６において取得データがＮｕｌｌであるか否かを判定することで、ステップＳ５０７においてデジタルビデオカメラ１０２のフレーム周波数を得る。これを順次繰り返すことで、パソコン１００はデジタルビデオカメラ１０２からストリーミング用のデータと、デジタルビデオカメラ１０２のフレーム周波数を得ることが出来る。
【００２４】
次に、デジタルビデオカメラ１０２のフレーム周波数で動作するステップＳ５０８〜Ｓ５１２について説明する。まず、ステップＳ５０８において、ステップＳ５０７から得た情報を元に、デジタルビデオカメラ１０２のフレーム周波数を得る。このフレーム周波数において、フレーム開始時、ステップＳ５０９において図示しないパソコン上のメモリに、ストリーミング再生が開始できる分のデータが貯まっているかを判定する。この判定には、ネゴシエーション時で得られた必要なバッファリング量を元に行い、一旦ストリーミングが開始されれば、ステップＳ５０９の判定はスキップとなる。ステップＳ５０９でストリーミング開始が判定されれば、ステップＳ５１０において、１フレーム分の伸長を行う。次にステップＳ５１１において、ステップＳ５１０により伸長された１フレーム分のデータが得られれば、ステップ５１２において、そのフレームを図示しないディスプレイ上にストリーミング画像として表示する。これを順次繰り返すことで、デジタルビデオカメラ１０２のフレーム周波数にほぼ一致したタイミングでパソコン１００はストリーミングデータを伸長・表示が可能となる。
【００２５】
オーディオデータの再生に関しては、Ｅｎｄｐｏｉｎｔ２で受け取ったデジタルビデオカメラ１０２のフレーム周波数を元にパソコン１００でＰＬＬをかけ再生してもよいし、ＭＰＥＧのヘッダからビデオの再生タイミングとオーディオの再生タイミングを取得し、その情報を元に、ビデオに合わせて再生してもよい。
【００２６】
図６は、Ｉフレーム及びＰフレームからなるストリーミング再生と、上記の方式で行った場合の、デジタルビデオカメラ１０２の入力画像タイミング及びエンコードタイミング、ＵＳＢの転送タイミング、パソコン１００のデコードタイミング及び表示タイミングを示した図である。
【００２７】
次に、第２の実施形態を説明する。
【００２８】
第１の実施形態ではＵｐ  Ｓｔｒｅａｍによるストリーミングについて述べたが、第２の実施形態では、Ｄｏｗｎ  Ｓｔｒｅａｍによるストリーミングについて述べる。
【００２９】
図７は、第２の実施形態に係るデジタルビデオカメラ１０２の構成を示すブロック図である。図７において、７００は画像圧縮伸長部で、ＭＰＥＧ２を画像信号に伸長可能である。７０１は音声圧縮伸長部で、例えばＡＣ３符号化等で圧縮された音声データを伸長可能である。７０２は多重化処理部であり、例えばＭＰＥＧ２−ＴＳパケットに多重化されたデータを画像・音声のストリームへ分解可能である。７０３はＣＰＵで、メモリ７０４に記憶された制御プログラムに従って、このデジタルビデオカメラ全体の動作を制御している。メモリ７０４はまた、一時的に画像データや音声データを蓄積するメモリとしても使用される。７０５はＵＳＢコントローラである。７０６はＵＳＢケーブルを着脱するためのコネクタである。７０７は画像信号を表示する為のＬＣＤである。７０８は音声信号を再生する為のスピーカである。
【００３０】
図８は、第２の実施の形態に係るデジタルビデオカメラ１０２におけるＵＳＢコントローラ７０５のエンドポイント（ＵＳＢの転送用ＦｉＦｏ）の構成である。エンドポイント０は、ＵＳＢのデフォルトのコントロールエンドポイントであり、このエンドポイント０を用いてＵＳＢが接続された際のネゴシエーション動作及び、ストリーミング開始命令等を送受信する為に用いられる。エンドポイント１はストリーミング用ＭＰＥＧ２−ＴＳを受信する為のアイソクロナスエンドポイントである。エンドポイント２は、ＤＶＣ１０２のフレーム周波数をパソコン１００へ送る為のアイソクロナスエンドポイントである。
【００３１】
図９は、デジタルビデオカメラ１０２のストリーミング時における処理の流れを説明するフローチャートである。以下、図７のブロック図及び図９のフローチャートを参照して動作を説明する。また、起動時には、図示しないフラッシュメモリに圧縮されて記憶されているプログラムが、メモリ７０４に解凍／展開される。そしてＣＰＵ７０３が、このメモリ７０４に格納されたプログラムに従って動作するものとする。
【００３２】
まず図９のステップＳ９００において、ＵＳＢケーブル１０１がＵＳＢコネクタ７０６に挿入されるとステップＳ９０１に進み、ＵＳＢコントローラ７０５は、このケーブル１０１が挿入されたことを検知し、ＣＰＵ７０３にケーブルが挿入された旨を通知する。これによりＣＰＵ７０３は、ＵＳＢコントローラ７０５に必要な初期化を行い、この初期化の終了後、ＵＳＢコントローラ７０５を制御して接続用のＰｕｌｌ−Ｕｐを行う。
【００３３】
これにより、ＵＳＢデバイスであるデジタルビデオカメラ１０２からＰｕｌｌ−Ｕｐを受けたＵＳＢホストであるパソコン１００は、そのＵＳＢデバイス１０２に対するネゴシエーション動作に入る。ネゴシエーション要求を受けたデジタルビデオカメラ１０２は、図８に示す接続モードに合わせたディスクリプタ情報（ＵＳＢ接続情報）を、メモリ７０４上に作成し、パソコン１００のネゴシエーション要求に応じて転送する。このネゴシエーション動作において、ＵＳＢデバイスであるデジタルビデオカメラ１０２は、ホストであるパソコン１００に対して、デジタルビデオカメラ１０２がメモリ７０４上に確保可能なストリーミング用のバッファサイズを通知する。このバッファサイズは第１の実施例と同様のサイズが必要である。
【００３４】
ステップＳ９０３において、パソコン１００はストリーミング開始時にＳｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドを発行してＡｌｔｅｒｎａｔｅ設定を変更し、デジタルビデオカメラ１０２にストリーミング開始を告げる。ストリーミング開始を告げられたデジタルビデオカメラ１０２は、ステップＳ９０４〜Ｓ９０９に示す、ＵＳＢアイソクロナス転送の周波数に応じた転送処理と、ステップＳ９１０〜Ｓ９１４に示す、フレーム周波数に応じた伸長・表示処理を並列で行い、パソコン１００から再びＳｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドによってストリーミング終了が告げられるまでこれを繰り返す。
【００３５】
まず、ＵＳＢアイソクロナス転送周波数で動作するステップＳ９０３〜Ｓ９０９について説明する。ストリーミング再生を開始されると、ステップＳ９０４において、Ｅｎｄｐｏｉｎｔ１に対するＯＵＴトークンを発行し、デジタルビデオカメラ１０２へのストリーミングデータの転送を試み、ステップＳ９０５において、デジタルビデオカメラ１０２へＵＳＢパケットの形式でストリーミングデータを取得する。また、ステップＳ９０６において、Ｅｎｄｐｏｉｎｔ２へのＩＮトークンを受理し、ステップＳ９０７において、ステップステップＳ９１０のフレーム開始タイミング直後のＩＮトークンであるかを判断する。直後でなければステップＳ９０８において、ＣＰＵ２０８はＵＳＢコントローラ２１０によりＮｕｌｌパケットを送信し、これとは逆に直後であれば、ステップＳ９０９においてデジタルビデオカメラ１０２の伸長・表示開始タイミングであることを示すフラグを送信する。
【００３６】
次に、デジタルビデオカメラ１０２のフレーム周波数で動作するステップＳ９１０〜Ｓ９１４について説明する。まず、ステップＳ９１０においてデジタルビデオカメラ１０２のフレームの開始であるか否かを得る。フレーム開始時である場合、ステップＳ９１１においてのメモリ７０４上に、ストリーミング再生が開始できる分のデータが貯まっているかを判定する。この判定には、ネゴシエーション時に送信する必要なバッファリング量を元に行い、一旦ストリーミングが開始されれば、ステップＳ９１１の判定はスキップとなる。ステップＳ９１１でストリーミング開始が判定されれば、ステップＳ９１２において、多重化処理部７０２において、多重化ストリームから、画像・音声の各ストリームを生成し、生成した画像ストリームから画像圧縮伸長部７００を用いて１フレーム分の伸長を行う。次にステップＳ９１３において、ステップＳ９１２により伸長された１フレーム分のデータが得られれば、ステップ９１４において、そのフレームをＬＣＤ７０７にストリーミング画像として表示する。同様にオーディオは、自身のフレーム周波数を元に音声圧縮伸長部を用いて伸長し、スピーカ７０８から出力する。
【００３７】
以上を繰り返し実行することで、Ｄｏｗｎ  Ｓｔｒｅａｍをデジタルビデオカメラ１０２でストリーミング再生が可能となる。
【００３８】
次に、ＵＳＢホストであるパソコン１００の動作について説明する。
【００３９】
図１０は、パソコン１００のストリーミング時における処理の流れを説明するフローチャートである。以下、図５のフローチャートを参照して動作を説明する。
【００４０】
図１０のステップＳ１０００において、ＵＳＢケーブル１０１が接続されると、パソコン１００はケーブル上のＶＢＵＳに電圧を印加する。このＶＢＵＳ印加を検知したデジタルビデオカメラ１０２が、Ｐｕｌｌ−Ｕｐ動作を行ってくる為、ステップＳ１００１において、所定のネゴシエーション動作を行う。ここで、パソコン１００は、デジタルビデオカメラ１０２に対しストリームするデータの、１フレームの最大ビット長とＢフレームの連続発生数を渡し、デジタルビデオカメラ１０２は、これに合わせたバッファサイズをメモリ７０４上に確保する。
【００４１】
ステップＳ１００２において図示しないアプリケーションからストリーミング起動要求をうけると、デジタルビデオカメラ１０２に対し、Ｓｅｔ＿Ｉｎｔｅｒｆａｃｅコマンドを投げストリーミング開始を告げる。ストリーミングを開始したパソコン１００はＵＳＢアイソクロナス転送周波数に合わせたステップＳ１００３〜Ｓ１００７のストリーミングデータ取得処理と、ステップＳ１００８〜Ｓ１０１０のストリーミングデータ生成処理を並列で行い、図示しないアプリケーションから終了要求を受けるまでこれを繰り返す。
【００４２】
まず、ＵＳＢアイソクロナス転送周波数で動作するステップＳ１００３〜Ｓ１００７について説明する。ストリーミング再生を開始されると、ステップＳ１００３において、Ｅｎｄｐｏｉｎｔ１に対するＯＵＴトークンを発行し、デジタルビデオカメラ１０２からストリーミングデータの送信を試み、ステップＳ１００４において、デジタルビデオカメラ１０２へＵＳＢパケットの形式でストリーミングデータを送出する。同様にステップＳ１００５において、パソコンはＥｎｄｐｏｉｎｔ２へＩＮトークンを投げ、ステップＳ１００６において取得データがＮｕｌｌであるか否かを判定することで、ステップＳ５０７においてデジタルビデオカメラ１０２のフレーム周波数を得る。これを順次繰り返すことで、パソコン１００はデジタルビデオカメラ１０２からストリーミング用のデータの送出、デジタルビデオカメラ１０２のフレーム周波数の取得が出来る。
【００４３】
次に、デジタルビデオカメラ１０２のフレーム周波数で動作するステップＳ１００８〜Ｓ１０１０について説明する。まず、ステップＳ１００８において、ステップＳ１００７から得た情報を元に、デジタルビデオカメラ１０２のフレーム周波数を得る。このフレーム周波数において、フレーム開始時、ステップＳ１００９において図示しないパソコン上のメモリ上にあるストリーミングデータを取得し、ステップＳ１０１０において、前述のメモリ上のストリームデータからＭＰＥＧ２−ＴＳパケットを生成する。これを順次繰り返すことで、デジタルビデオカメラ１０２のフレーム周波数にほぼ一致したタイミングでパソコン１００はストリーミングデータを送出可能となる。
【００４４】
オーディオデータの転送に関しては、パソコン１００が、Ｅｎｄｐｏｉｎｔ２で受け取ったデジタルビデオカメラ１０２のフレーム周波数を元にパソコン１００でＰＬＬをかけ送出してもよいし、デジタルビデオカメラ１０２がＭＰＥＧのヘッダからビデオの再生タイミングとオーディオの再生タイミングを取得し、その情報を元に、ビデオに合わせて再生してもよい。
【００４５】
尚、本実施の形態では、ＭＰＥＧ２−ＴＳフォーマットを例に説明したが、本発明はこれに限定するものではなく、ＭＰＥＧ１フォーマット、ＭＰＥＧ２−ＰＳフォーマット、ＤＶ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ）フォーマット、ＭＰＥＧ４フォーマット、Ｍｏｔｉｏｎ−ＪＰＥＧフォーマットなど、他の画像フォーマットであっても構わない。これは、動画像データの転送元と転送先で、フレーム周波数さえ一致すれば、画像符号化フォーマットによらず、バッファのオーバーラン、アンダーランを回避できるためであり、本実施の形態で記載したＥｎｄｐｏｉｎｔ２におけるフレーム周波数、または、それに類するクロックの授受が行えれば、転送元と転送先のフレーム周波数を、ほぼ一致させることができ、バッファのオーバーラン、アンダーランは回避可能である。
【００４６】
また、本実施の形態では、画像データ及び音声データから成るＭＰＥＧ２−ＴＳフォーマットで説明したが、画像のみ、または、音声のみの転送であっても良い。音声のみの場合は、本実施の形態で示したフレーム周波数ではなく、音声のサンプリング周波数等を同様に転送することで、両者のサンプリングクロックを一致させることができ、どうようの効果が得られる。
【００４７】
また、本実施の形態では、デジタルビデオカメラを例に説明したが本発明はこれに限定されるものでなく、ＵＳＢもしくは、これに類するインターフェースにより接続可能な電子機器であれば良い。
【００４８】
また、本実施の形態では、デジタルビデオカメラとパソコン間のＵＳＢによるデータ転送について説明したが、ＵＳＢもしくは、これに類するインターフェースによるデータ転送方式であれば良い。
【図面の簡単な説明】
【００４９】
【図１】第１、第２の実施形態に係るデジタルビデオカメラとパソコンとを接続したイメージ図である。
【図２】第１の実施形態に係るデジタルビデオカメラの構成を示すブロック図である。
【図３】第１の実施形態に係るデジタルビデオカメラのエンドポイント構成を示す図である。
【図４】第１の実施形態に係るデジタルビデオカメラの動作を説明するフローチャートである。
【図５】第１の実施形態に係るパソコンの動作を説明するフローチャートである。
【図６】第１の実施形態に係るデジタルビデオカメラ及びパソコンの動作タイミング及び、ＵＳＢの転送タイミングを説明する図である。
【図７】第２の実施形態に係るデジタルビデオカメラの構成を示すブロック図である。
【図８】第２の実施形態に係るデジタルビデオカメラのエンドポイント構成を示す図である。
【図９】第２の実施形態に係るデジタルビデオカメラの動作を説明するフローチャートである。
【図１０】第２の実施形態にかかるパソコンの動作を説明するフローチャートである。
【図１】
2005328280.tif 000003
【図２】
2005328280.tif 000004
【図３】
2005328280.tif 000005
【図４】
2005328280.tif 000006
【図５】
2005328280.tif 000007
【図６】
2005328280.tif 000008
【図７】
2005328280.tif 000009
【図８】
2005328280.tif 000010
【図９】
2005328280.tif 000011
【図１０】
2005328280.tif 000012