(57)【特許請求の範囲】
【請求項１】
画像データの、第１フィールドと第２フィールドで構成されるフレームに対応するタイムコードであって、前記画像データを再生する装置から出力されるタイムコードを検出する情報処理装置において、
前記タイムコードをフレーム周期より、若干短い周期、または、若干長い周期で検出する第1の検出手段と、
前記第1の検出手段により同じ値の前記タイムコードが連続して検出された場合または前記タイムコードの値が飛ばされて検出された場合、同じ値の前記タイムコードが連続して検出された第１の位置もしくは前記タイムコードの値が飛ばされて検出された第２の位置、前記タイムコードが変化する位置から前記第２フィールドの先頭までの時間であるマージン時間、および、前記タイムコードを検出する周期と前記フレーム周期の差に基づいて、前記第２フィールドの先頭位置を計算する計算手段と、
前記計算手段により計算された先頭位置から、前記フレーム周期で、前記タイムコードを検出する第２の検出手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記計算手段は、前記マージン時間に前記周期の差の半分の時間を足した時間を、前記第１の位置から前記第２フィールドの先頭位置までの時間として計算し、前記マージン時間から前記周期の差の半分の時間を引いた時間を、前記第２の位置から前記第２フィールドの先頭位置までの時間として計算する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
画像データの、第１フィールドと第２フィールドで構成されるフレームに対応するタイムコードであって、前記画像データを再生する装置から出力されるタイムコードを検出する情報処理方法において、
前記タイムコードをフレーム周期より、若干短い周期、または、若干長い周期で検出する第1の検出ステップと、
前記第1の検出ステップの処理により同じ値の前記タイムコードが連続して検出された場合または前記タイムコードの値が飛ばされて検出された場合、同じ値の前記タイムコードが連続して検出された第１の位置もしくは前記タイムコードの値が飛ばされて検出された第２の位置、前記タイムコードが変化する位置から前記第２フィールドの先頭までの時間であるマージン時間、および、前記タイムコードを検出する周期と前記フレーム周期の差に基づいて、前記第２フィールドの先頭位置を計算する計算ステップと、
前記計算ステップの処理で計算された先頭位置から、前記フレーム周期で、前記タイムコードを検出する第２の検出ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
画像データの、第１フィールドと第２フィールドで構成されるフレームに対応するタイムコードであって、前記画像データを再生する装置から出力されるタイムコードを検出する情報処理装置を制御するプログラムであって、
前記タイムコードをフレーム周期より、若干短い周期、または、若干長い周期での検出を制御する第1の検出制御ステップと、
前記第1の検出制御ステップの処理により同じ値の前記タイムコードが連続して検出された場合または前記タイムコードの値が飛ばされて検出された場合、同じ値の前記タイムコードが連続して検出された第１の位置もしくは前記タイムコードの値が飛ばされて検出された第２の位置、前記タイムコードが変化する位置から前記第２フィールドの先頭までの時間であるマージン時間、および、前記タイムコードを検出する周期と前記フレーム周期の差に基づいて、前記第２フィールドの先頭位置の計算を制御する計算制御ステップと、
前記計算制御ステップの処理で計算された先頭位置から、前記フレーム周期で、前記タイムコードの検出を制御する第２の検出制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びに記録媒体に関し、特に、パーソナルコンピュータがVTR（Video Tape Recorder）を制御するとき、そのパーソナルコンピュータが、VTRにより磁気テープから再生された画像データのカレントタイムコード（Current TC）を精度良く検出できるようにした情報処理装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
パーソナルコンピュータが、VTRを制御し、磁気テープに記録された画像データを再生させ、これを読み取ってHDD（Hard Disk Drive）にダウンロードした後、ダウンロードした画像データを編集し、再び、VTRを制御して、磁気テープに記録させる技術が一般に普及しつつある。
【０００３】
従来、パーソナルコンピュータが、VTRを制御する場合、VTRは、RS422A（Recommended Standard 422 version A）の規格によるコントロールポートが装着されているため、パーソナルコンピュータは、COM（Component Object Model） Port（RS232C（Recommended Standard 232 version C） Port（制御電圧±１２V））の規格の制御信号を、RS422A Port（制御電圧０V乃至５V）の制御信号に変換して送ることで、VTRを制御し、Capture Card（画像データを授受する専用のカード）を介して、画像データを授受していた。
【０００４】
ところで、VTRのCPUは、磁気テープに記録された画像データを再生する場合、磁気テープから読み込んだ画像データには、各フレーム毎にタイムコード（TC）が対応されているので、どこのフレームを再生しているかを示すカレントタイムコード（Current TC）を検出し、外部装置（例えば、パーソナルコンピュータ）に出力（通知）する。図１は、VTRが、カレントタイムコードを検出するときのタイミングチャートである。
【０００５】
図１に示すように、カレントタイムコードは、第1フィールド（奇数フィールド）と第２フィールド（偶数フィールド）で構成される各フレームの第１フィールドの途中で変化している。例えば、フレームF1のタイムコードTC1は、フレームF1の第１フィールドの途中でTC1に変化し、フレームF2のタイムコードTC2は、フレームF2の第１フィールドの途中で変化する。これは、VTRのCPUが、第１フィールドの先頭を検出した後、VTRのハードウェアにカレントタイムコードを問い合わせ、その結果に基づいてカレントタイムコードを更新するためである。すなわち、結果的に、カレントタイムコードの変化タイミングは、各フレームの実際の第１フィールドの開始タイミングより若干遅れている。
【０００６】
そこで、カレントタイムコードの検出は、通常第２フィールドで行われる。換言すれば、VTRは、画像再生中に、サーボロックしているReference（リファレンス）信号に基づいて、Field O/E（Odd/Even）信号を発生させているので、このField O/E信号のうち、第２フィールド中の期間が、カレントタイムコードの検出ゾーン（TC Sense Zone）とされている。
【０００７】
例えば、上記のように、パーソナルコンピュータが、VTRを制御して、画像データを再生させ、その再生された画像データをパーソナルコンピュータのハードディスクに記録させる場合、パーソナルコンピュータのアプリケーションソフトウェアは、リファレンス信号（フィールドの変化）を検出できないので、VTRに磁気テープを所望の位置より若干前の位置から再生させ、VTRからカレントタイムコードを読み込み、所定のタイムコードが検出されたとき、キャプチャカードに画像データの取り込みを指令する。キャプチャカードは、この指令を受けた直後のフレームの先頭（第1フィールド）から画像データの取り込みを開始する。
【０００８】
【発明が解決しようとする課題】
ところで、従来、アプリケーションは、画像データのカレントタイムコードを図２に示されるように、10 ms間隔で検出していた。図２の例の場合、時刻ｔ1およびｔ2で、カレントタイムコードが検出されると、その結果は、ｎ−１となり、時刻ｔ3乃至ｔ5の結果は、ｎとなる。一般的に、５２５モード（NTSC方式）のフレーム周期は、33.36 msなので、10 ms間隔でカレントタイムコードを検出すると、1フレームの間に、同一のカレントタイムコードが3回検出されることになる。そこで、アプリケーションは、同一の値のタイムコードが検出された後、次の10 ms後の検出タイミングにおいて、異なる値のタイムコードが検出されたとき、3回検出されたタイムコードが正しいタイムコードであるとして取り込むようになっている。すなわち、図２の例では、カレントタイムコード（ｎ−１）は、時刻ｔ2ではなく時刻ｔ3において取り込まれる。
【０００９】
アプリケーションが、時刻ｔ3において、画像データの読み込み開始を指令すると、キャプチャカードは、その指令が出された直後のフレームの先頭から読み込みを開始しようとする。キャプチャカードは、読み込み開始処理の準備のため、画像データの読み込みが指令されたタイミングから、次のフレームの先頭位置のタイミングまでの時間Tsetupとして、所定の時間を必要とする。このTsetupは、以下の式（１）により求められる。
Ｔsetup＝Ｔframe/2＋Ｔ2ndfield_margin−10（ms）・・・（１）
【００１０】
ここで、Ｔframeはフレーム周期、Ｔ2ndfield_marginはカレントタイムコードの先頭（変化）位置から第２フィールドの先頭までの時間を表している。
【００１１】
ところで、Ｔ2ndfield_margin=0であった場合（すなわち、カレントタイムコードのｎ−１からｎへの変化のタイミングと、第２フィールドの開始のタイミングが一致する場合）、例えば５２５モードの画像データのとき、Ｔframe＝33.36 msなので、Ｔsetup＝33.36/2＋0−10＝6.68(ms)となり、Ｔsetupが、必要とされる時間以上確保することができないことがある。このとき、キャプチャカードは、指定された最初のフレームを読み込むことができないという課題があった。
【００１２】
本発明はこのような状況に鑑みてなされたものであり、タイムコードの検出周期をフレーム周期よりも若干短く、または、若干長くすることにより、タイムコードの切り替わりのタイミングを求め、読み取りを開始するフレームの先頭位置を予測することにより、確実に最初のフレームから画像データを読み込めるようにするものである。
【００１３】
【課題を解決するための手段】
本発明の情報処理装置は、タイムコードをフレーム周期より、若干短い周期、または、若干長い周期で検出する第1の検出手段と、第1の検出手段により同じ値のタイムコードが連続して検出された場合またはタイムコードの値が飛ばされて検出された場合、同じ値のタイムコードが連続して検出された第１の位置もしくはタイムコードの値が飛ばされて検出された第２の位置、タイムコードが変化する位置から第２フィールドの先頭までの時間であるマージン時間、および、タイムコードを検出する周期とフレーム周期の差に基づいて、第２フィールドの先頭位置を計算する計算手段と、計算手段により計算された先頭位置から、フレーム周期で、タイムコードを検出する第２の検出手段とを備えることを特徴とする。
【００１４】
本発明の情報処理方法は、タイムコードをフレーム周期より、若干短い周期、または、若干長い周期で検出する第1の検出ステップと、第1の検出ステップの処理により同じ値のタイムコードが連続して検出された場合またはタイムコードの値が飛ばされて検出された場合、同じ値のタイムコードが連続して検出された第１の位置もしくはタイムコードの値が飛ばされて検出された第２の位置、タイムコードが変化する位置から第２フィールドの先頭までの時間であるマージン時間、および、タイムコードを検出する周期とフレーム周期の差に基づいて、第２フィールドの先頭位置を計算する計算ステップと、計算ステップの処理で計算された先頭位置から、フレーム周期で、タイムコードを検出する第２の検出ステップとを含むことを特徴とする。
【００１５】
本発明の記録媒体のプログラムは、タイムコードをフレーム周期より、若干短い周期、または、若干長い周期での検出を制御する第1の検出制御ステップと、第1の検出制御ステップの処理により同じ値のタイムコードが連続して検出された場合またはタイムコードの値が飛ばされて検出された場合、同じ値のタイムコードが連続して検出された第１の位置もしくはタイムコードの値が飛ばされて検出された第２の位置、タイムコードが変化する位置から第２フィールドの先頭までの時間であるマージン時間、および、タイムコードを検出する周期とフレーム周期の差に基づいて、第２フィールドの先頭位置の計算を制御する計算制御ステップと、計算制御ステップの処理で計算された先頭位置から、フレーム周期で、タイムコードの検出を制御する第２の検出制御ステップとを含むことを特徴とする。
【００１６】
本発明の情報処理装置および情報処理方法、並びに、記録媒体のプログラムにおいては、タイムコードがフレーム周期より、若干短い周期、または、若干長い周期で検出され、同じ値のタイムコードが連続して検出された場合またはタイムコードの値が飛ばされて検出された場合、同じ値のタイムコードが連続して検出された第１の位置もしくはタイムコードの値が飛ばされて検出された第２の位置、タイムコードが変化する位置から第２フィールドの先頭までの時間であるマージン時間、および、タイムコードを検出する周期とフレーム周期の差に基づいて、第２フィールドの先頭位置が計算され、計算された先頭位置から、フレーム周期で、タイムコードが検出される。
【００１７】
【発明の実施の形態】
図３は、本発明を適用したパーソナルコンピュータ（PC）１の一実施の形態の構成を示したブロック図である。PC１のCPU１１は、PC１の全体の動作を制御しており、各種のプログラムをHDD１６のみならず、ドライブ１０１を介して、磁気ディスク１１１（フロッピーディスクを含む）、光ディスク１１２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク１１３（MD（Mini-Disk）を含む）、もしくは半導体メモリ１１４などから読み込み、RAM（Random-Access Memory）１７にロードして実行させる。また、CPU１１は、起動時には、ROM（Read Only Memory）１８に記憶されている基本プログラムを実行して、PC１を制御する。
【００１８】
RS232C Port１２は、CPU１１からの指令に基づいて、PC１とVTR２のインターフェースとして機能し、PC１からのVTR２を制御する制御信号を、必要に応じてRS422Aの制御信号に変換して送信する。また、CPU１１は、PCI（Peripheral Components Interconnect）バス１３を介して、SCSI（Small Computer System Interface）カード１４およびCaptureカード１５を制御し、画像データの授受を制御する。
【００１９】
SCSIカード１４は、PC１と外部のHDD（Hard Disk Drive）３とのインターフェースとして機能する。Captureカード１５は、CPU１１により制御され、VTR２からの画像データをPC１のCPU１１で処理できる所定のフォーマットに変換すると共に、PC１から画像データを送信する際には、VTR２で認識できる画像データに戻して、出力する。
【００２０】
HDD１６は、PC１の基本アプリケーションであるＯＳ（Operating System）の他、画像データ編集用のアプリケーションプログラム３１（図４）、VTR Library３２（図４）、VTR Port Driver３３（図４）、High Level API（Application Program Interface）３４（図４）、Capture Hardware API３５（図４）、およびCapture hardware Driver３６（図４）が記憶されており、CPU１１に適宜読み出され、RAM１７にロードされて実行される。尚、各種のプログラムについは、後述する。
【００２１】
入力装置１９は、マウスやキーボードから構成され、各種の処理をPC１に実行させるとき、ユーザにより操作される。
【００２２】
次に、図４を参照して、PC１のCPU１１が実行する各種のプログラムについて説明する。Capture Application Program（キャプチャアプリケーションプログラム）３１は、PC１に接続されたVTR２を制御し、再生した画像データを編集するアプリケーションである。このキャプチャアプリケーションプログラム３１は、画像データの様々な編集をするためのアプリケーションであり、ユーザは、入力装置１９を操作することにより、VTR２の磁気テープに記録されている画像データをHDD３に読み込ませ、そのHDD３に読み込ませた画像データの再生順序の編集や、画像データに特殊効果などを施すことができ、さらに、編集後には、VTR２に再び編集した画像データを記録させるなどの処理をすることができる。
【００２３】
VTR Library（VTRライブラリ）３２は、キャプチャアプリケーションプログラム３１の指令に基づいて、VTR Port Driver（VTRポートドライバ）３３を介してVTR２の動作を指令すると共に、VTR２から読み込まれる画像データの情報をキャプチャアプリケーションプログラム３１に伝達する。さらに、VTRライブラリ３２は、キャプチャアプリケーションプログラム３１からの指令に基づいて、画像データの再生開始をVTRポートドライバ３３に指令する。VTRポートドライバ３３は、VTRライブラリ３２を介して入力されたキャプチャアプリケーションプログラム３１からの指令を、VTR２が認識可能な信号に変換し、VTR２に出力し、制御する。
【００２４】
High Level API（ハイレベルAPI）３４は、VTRライブラリ３２からの再生開始信号を受けて、キャプチャアプリケーションプログラム３１からの指令をCapture Hardware API（キャプチャハードウェアAPI）３５に伝達する。キャプチャハードウェアAPI３５は、上位のAPIであるハイレベルAPI３４からの指令に基づいて、Capture Hardware Driver（キャプチャハードウェアドライバ）３６に指令を出す。キャプチャハードウェアドライバ３６は、キャプチャハードウェアAPI３５からの指令に基づいて、Capture（キャプチャ）カード１５にVTR２からの画像データの読み込み、または、読み出しの開始、停止を指令する。
【００２５】
キャプチャカード１５は、キャプチャアプリケーションプログラム３１からの指令を、ハイレベルAPI３４、キャプチャハードウェアAPI３５、および、キャプチャハードウェアドライバ３６を介して受け取り、これに基づいて、VTR２からの画像データを取り込み、SCSIカード１４（図１）を介してHDD３に供給し、記録させると共に、HDD３から供給される再生画像データをSCSIカード１４（図１）を介して受け取り、VTR２に供給する。
【００２６】
次に、図５のタイミングチャートを参照して、図３のPC１が、図４の各種のプログラム（アプリケーション、各種API、および、ドライバ）を実行させて、VTR２に装着された磁気テープに記録されている画像データをHDD３に記録させるときの処理について説明する。
【００２７】
本発明では、フレーム周期に対して、若干短い周期で、周期的に、タイムコードが検出される。フレーム周期よりも若干短いタイミングでタイムコードが検出されると、周期的に同一の値のタイムコードが連続して検出されるタイミングが発生することになる。すなわち、例えば、フレーム周期の（１−ｓ）（0<ｓ<１）倍の周期でタイムコードが検出される場合、タイムコードを基準とすると、（１／ｓ−１）フレーム毎に１回（タイムコードの検出を基準にすると（１／ｓ＋１）回毎に１回）という周期で、同一の値のタイムコードが検出されることになる。
【００２８】
検出したタイムコードが前回と同じ値である場合、図５に示すように、その時の第１フィールドの開始タイミングをｔ=0、タイムコードが変化するタイミングをttc_altとすれば、タイムコードの検出タイミングｔsenseは、カレントタイムコードが変化するタイミングttc_altから、フレーム周期×ｓを引いたタイミング（ttc_alt−Tframe×ｓ）と、タイムコードが変化するタイミングttc_altの間に存在することが予想される。
【００２９】
このとき、以下の式（２）の関係が満たされる。
ttc_alt−Tframe×ｓ≦ｔsense≦ttc_alt・・・（２）
【００３０】
式（２）の関係を、ttc_altを中心とした式に変形すると、以下の式（３）のようになる。
ｔsense≦ttc_alt≦ｔsense＋Tframe×ｓ・・・（３）
【００３１】
式（３）の関係から、ttc_altの平均位置（タイミング）ttc_alt-は、以下の式（４）で示される。
ttc_alt-＝ｔsense＋Tframe×ｓ／２・・・（４）
【００３２】
式（４）に示すように、平均したタイムコードの変化タイミングは、タイムコードが検出された時刻ｔsenseからフレーム周期の半分の周期を加えた時刻となる。一方、タイムコードの変化タイミングから第２フィールドの先頭位置までの時間T2ndfield_marginは、VTRの機種毎に固有のものであり、第２フィールドの先頭位置t2ndfieldとの関係は、以下の式（５）に示すようになる。
t2ndfield＝ttc_alt＋T2ndfield_margin・・・（５）
【００３３】
従って、式（５）から、第２フィールドの先頭位置（タイミング）t2ndfieldの平均t2ndfield-は、以下の式（６）の関係を満たすことになる。
t2ndfield-＝T2ndfield_margin＋ｔsense＋Tframe×ｓ／２・・・（６）
【００３４】
連続して同一の値のタイムコードが検出された場合、上記の式（６）に従って、そのタイムコードを検出したタイミングｔsenseから、第２フィールドの先頭位置t2ndfield-が予想できる。
【００３５】
そこで、PC１は、VTR２に、画像データの読み取り開始フレームより前の所定の位置から再生を開始させ、少なくとも1回、連続して同一の値のタイムコードを検出し、第２フィールドの先頭位置を予想する。
【００３６】
上記の所定の位置として、例えば、図６のｔ23で示すTiming A（タイミングA）なるタイミングを考える。すなわち、カレントタイムコードが、フレーム周期の（１−ｓ）倍の周期で検出される場合、（１／ｓ−１）フレーム毎に、同一の値のタイムコードが連続して検出されることになるので、このタイミングＡは、画像データの取り込み（記録）開始フレーム値（タイミング）である時刻ｔ24から（１／ｓ−１）フレームを引いたフレーム値よりも前のフレーム値であれば良いことになる。
【００３７】
このようなタイミングＡを設定することにより、画像取り込み開始点となるフレームが、時刻ｔ24である場合、時刻ｔ21の位置から予備再生（プリロール）させ、時刻ｔ22において、VTR２がサーボロック状態にさせた後、時刻ｔ23に設定されたタイミングＡから画像読み込み開始点となる時刻ｔ24までに、少なくとも１回は連続して同一の値のタイムコードがカレントタイムコードとして検出されることになる。
【００３８】
図７は、図６の時刻ｔ23乃至ｔ24において、フレームｎの同一の値のタイムコードｎが、検出された状態を示したものである。カレントタイムコードｎが、時刻ｔ31，ｔ32で連続して検出されたとすると、上記の式（６）から以下の式（７）により、時刻ｔ32から第２フィールドの開始時刻ｔ41までの時間Time_dを予測することができる。
Time_d＝ｔ2ndfield -−ｔsense＝T2ndfield_margin＋Tframe×ｓ／２・・・（７）
【００３９】
尚、図７の例において、画像データは、５２５モード、フレーム周期は、33.36 ms、タイムコードの検出周期は、30 ms、ｓは、0.100899215としている。また、タイミングAのフレーム位置は、ｓ≒0.1となるので、読み込み開始フレーム位置より９（＝1/0.1−１）フレーム以上前のフレーム位置となる。
【００４０】
２回連続して同一の値のタイムコードｎが検出された時刻ｔ32からTime_dだけ経過した時刻ｔ41が、第２フィールドの先頭位置のタイミングとなる。そこで本発明では、第２フィールドの先頭位置（タイミング）を基準にして、以後、一定のフレーム周期33.36 msで、タイムコードが、さらに、検出される。その結果、例えば、時刻ｔ41からフレーム周期33.36 msだけ経過した時刻ｔ33においては、カレントタイムコードとしてｎ＋２が、さらに、フレーム周期33.36 msだけ後の時刻ｔ34においては、カレントタイムコードとしてｎ＋３が、それぞれ検出される。図７に示されるように、このとき、遅延は、発生していない。これにより、画像データの読み込み開始フレームが、正確、かつ、次のフレームの先頭まで余裕を持たせて（１フィールド前に）検出されることになる。
【００４１】
尚、今の場合、VTRライブラリ３２は、カレントタイムコードｎ＋１を検出していない（タイムコードｎの次に、タイムコード（ｎ＋２）を検出している）。これは、時刻ｔ32において、CPU１１が、式（７）の演算処理を実行した後、さらに、カレントタイムコードの検出周期を変更するなどの処理を伴う為、この処理に余裕を持って実行できるようにするためである。従って、CPU１１の処理に余裕がああるのであれば、時刻ｔ41において、VTRライブラリ３２が、カレントタイムコードｎ＋１を検出するようにしても良い。
【００４２】
次に、図８のフローチャートを参照して、PC１が、VTR２から画像データを読み込んで、HDD３に記録するときの処理について説明する。
【００４３】
ステップＳ１において、アプリケーションプログラム３１は、VTRライブラリ３２に対して、ユーザが入力装置１９を操作して、指定した画像データの読み込みを指令する。このとき、アプリケーションプログラム３１は、画像データの読み込み開始フレーム（タイムコード）もVTRライブラリ３２に指示する。
【００４４】
ステップＳ２において、VTRライブラリ３２は、VTRポートドライバ３３を介してVTR２に磁気テープのプリロールを指令する。このとき、VTR２は、指定されたタイムコードより所定の時間（例えば、５秒）だけ前のタイムコードの位置まで、磁気テープを、巻き戻させ、その位置から再生を開始させる。
【００４５】
ステップＳ３において、VTRライブラリ３２は、VTR２を制御し、アプリケーションプログラム３１からの指令に基づいて、フレーム周期よりも若干短い周期でカレントタイムコードを検出する。VTRライブラリ３２は、画像データが、５２５モード（NTSC方式の画像データ）である場合、フレーム周期は、33.36 msなので、それより若干短い、例えば、30 ms周期で、VTRポートドライバ３３を介して、カレントタイムコードを検出する。
【００４６】
ステップＳ４において、VTRライブラリ３２は、カレントタイムコードが、タイミングＡを越えたか否かを判定する。すなわち、今の場合、ｓ≒0.1なので、図６で示したように、タイミングAは、画像読み取り開始時刻ｔ24のフレーム値より９（＝1／0.1−1）フレーム以上前のフレーム値として設定される。そして、VTRライブラリ３２は、検出されたカレントタイムコードが、このタイミングAの時刻ｔ23を超えたか否かを判定し、タイミングＡを越えていないと判定した場合、ステップＳ３の処理に戻り、タイミングＡを越えるまで30 ms間隔でカレントタイムコードを検出し続ける。
【００４７】
ステップＳ４において、検出したカレントタイムコードがタイミングAを越えたと判定された場合、ステップＳ５において、VTRライブラリ３２は、同一の値のタイムコードが２回連続して検出されたか否かを判定する。例えば、図９に示すタイムチャートのように、カレントタイムコードが検出された場合、時刻ｔ51乃至ｔ55では、２回連続して同じカレントタイムコードが検出されていないので、その処理は、ステップＳ６に進み、再び30 msの周期で、カレントタイムコードの検出処理が実行される。その後、処理は、ステップＳ５に戻る。
【００４８】
ステップＳ５において、例えば、図９の時刻ｔ56で、VTRライブラリ３２は、時刻ｔ55と同一の値のタイムコードである「６」を連続して検出するので、その処理は、ステップＳ７の処理に進む。
【００４９】
ステップＳ７において、VTRライブラリ３２は、上記の式（７）に基づいて、Time_dを計算し、さらに、フレーム周期である33.36 msにTime_dを加算した時刻ｔ57から、フレーム周期で、周期的にカレントタイムコードを検出する。すなわち、VTRライブラリ３２は、時刻ｔ57において、カレントタイムコード「８」を検出する。
【００５０】
ステップＳ８において、VTRライブラリ３２は、画像データの取り込みを開始させるフレームの先頭を検出したか否かを判定する。今の場合、例えば、図９のカレントタイムコード「１０」のフレームで取り込みを開始するものとすると、時刻ｔ57のとき、カレントタイムコードは、「８」であるので、取り込み開始フレームの先頭を検出していないことになる。そこで、処理は、ステップＳ７の処理に戻る。ステップＳ７では、２回目以降の処理であるので、そこから33.36 msの間隔で、次のカレントタイムコードが検出される。
【００５１】
ステップＳ８において、時刻ｔ58のタイミングで、VTRライブラリ３２は、カレントタイムコードとして「９」を検出するので、そのフレーム周期の半周期後から、取り込み開始フレームであるタイムコードが「１０」のフレームの先頭を検出することになるので、その処理は、ステップＳ９に進む。
【００５２】
ステップＳ９において、VTRライブラリ３２は、取り込み開始フレームを検出したことを、キャプチャアプリケーションプログラム３１に通知し、この通知に基づいて、キャプチャアプリケーションプログラム３１は、VTRライブラリ３２に取り込み開始を指令し、これを受けて、VTRライブラリ３２は、ハイレベルAPI３４に、取り込み開始の指令を送る。さらに、ハイレベルAPI３４は、キャプチャハードウェア３５、キャプチャハードウェアドライブ３５を介して、キャプチャカード１５に、時刻ｔ61からVTR２から供給される画像データを取り込んで、HDD３に供給し、記録する指令を出す。キャプチャカード１５は、この指令に基づいて、次のフレーム（タイムコード「１０」のフレーム）の先頭から画像データを取り込み、HDD３に供給し、記録させる。
【００５３】
以上においては、初期のカレントタイムコードの検出周期をフレーム周期よりも若干短くする例について説明してきたが、初期のカレントタイムコードの検出周期を、フレーム周期より若干長くするようにしてもよい。この場合、カレントタイムコードが、不連続に検出されたとき（１つ飛ばして検出されたとき）、Time_dを以下の式（９）に示されるように算出し、さらに、それ以降のカレントタイムコードの検出周期をフレーム周期とすればよいことになる。すなわち、フレーム周期の（１＋ｓ）（0<ｓ<１）倍の周期でカレントタイムコードが検出されるとカレントタイムコードを基準にすると、（１／ｓ＋１）フレーム毎に（タイムコードの検出を基準にすると、（１／ｓ＋１）回に１回）、カレントタイムコードが不連続に検出されることになる。そこで、上記のタイミングAは、取り込み開始フレーム値より（１／ｓ＋１）フレーム以上前に設定され、これ以降で、最初に不連続にカレントタイムコードが検出されたタイミングをTsenseとすれば、第２フィールドの先頭位置の平均的な位置は、以下の式（８）のように示される。
t2ndfield-＝T2ndfield_margin＋ｔsense−Tframe×ｓ／２・・・（８）
【００５４】
従って、式（８）から、以下の式（９）によりTime_dが求められ、カレントタイムコードの検出タイミングをフレーム周期より短くする場合と同様の処理により取り込み開始フレームの位置を検出することができる。
Time_d＝ｔ2ndfield -−ｔsense＝T2ndfield_margin−Tframe×ｓ／２・・・（９）
【００５５】
また、以上においては、VTR２に装着された磁気テープをプリロールさせ、予備的に画像データを読み込むことにより、その間に、フレーム周期より若干短め、または、若干長めの周期で、カレントタイムコードを検出し、第２フィールドの先頭位置を検出した後、フレーム周期でカレントタイムコードを検出することについて説明してきたが、例えば、VTR２内のカレントタイムコードジェネレータから発生されたカレントタイムコードを検出し、実際に磁気テープをプリロールさせたときと同様の処理をするようにしても良い。
【００５６】
このようにすると、その処理は、上記のｓの値を小さくして第２フィールドの先頭位置の検出精度を高めるための計算に適したものとなる。すなわち、実際にプリロールさせて、連続した同一の値のタイムコードを検出する場合、または、不連続なタイムコードを検出する場合、ｓが小さすぎると、連続した同一のタイムコード、または、不連続なタイムコードの検出に時間がかかる（検出周期が長くなる）ので、予め設定されたプリロール期間中に、連続した同一のタイムコード、または、不連続なタイムコードを検出できなくなることがある。このため、実際にプリロールを実施せず、タイムコードジェネレータから発生されるカレントタイムコードを検出するようにすると、プリロールの長さを気にすることなく、連続した同一のタイムコードの検出、または、不連続なタイムコードの検出が可能となり、ｓを小さくして、第2フィールドの先頭位置を正確に求めることが可能となる。
【００５７】
但し、この場合、キャプチャアプリケーションプログラム３１は、PC１のCPU１１で発生するタイマによって、長時間にわたってタイムコードを検出する必要があるため、そのタイマの精度を向上させる工夫が必要となる（通常、PC１のOSに使用されるタイマの精度は、10 ms程度である）。
【００５８】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【００５９】
この記録媒体は、図３に示すようにPC１に予め組み込まれた状態でユーザに提供される、プログラムが記録されているHDD１６だけではなく、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク１１１（フロッピーディスクを含む）、光ディスク１１２（CD-ROM(Compact Disk-Read Only Memory)，DVD（Digital Versatile Disk）を含む）、光磁気ディスク１１３（MD（Mini-Disk）を含む）、もしくは半導体メモリ１１４などよりなるパッケージメディアにより構成される。
【００６０】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【００６１】
【発明の効果】
本発明の情報処理装置および情報処理方法、並びに、記録媒体のプログラムによれば、タイムコードをフレーム周期より、若干短い周期、または、若干長い周期で検出し、同じ値のタイムコードが連続して検出された場合またはタイムコードの値が飛ばされて検出された場合、同じ値のタイムコードが連続して検出された第１の位置もしくはタイムコードの値が飛ばされて検出された第２の位置、タイムコードが変化する位置から第２フィールドの先頭までの時間であるマージン時間、および、タイムコードを検出する周期とフレーム周期の差に基づいて、第２フィールドの先頭位置を計算し、計算した先頭位置から、フレーム周期で、タイムコードを検出するようにしたので、アプリケーションソフトウェアでも、確実に最初のフレームから画像データを読み込むことが可能となる。
【図面の簡単な説明】
【図１】  VTRが画像データのカレントタイムコードを検出するときのタイミングチャートである。
【図２】従来のアプリケーションが、画像データのカレントタイムコードを検出するときのタイミングチャートである。
【図３】本発明を適用したPCの構成を説明するブロック図である。
【図４】図３のPC上で動作するプログラムの構成を示す図である。
【図５】図４のPCが、画像データのカレントタイムコードを検出するときのタイミングを説明する図である。
【図６】予備回転期間のタイミングAの位置を説明する図である。
【図７】同じカレントタイムコードを連続して検出するときの前後のカレントタイムコードを検出するタイミングチャートである。
【図８】図４のPCが、画像データをVTRから読み込んでHDDに記録させる処理を説明するフローチャートである。
【図９】画像データを読み込ませるタイミングチャートである。
【符号の説明】
１  パーソナルコンピュータ，  ２  VTR，  ３  HDD，  １１  CPU，  １２  RS232C Port，  １３  PCI Bus，  １４  SCSIカード，  １５  Captureカード，  １６  HDD，  １７  RAM，  １８  ROM，  １９  入力装置，  ３１  Capture Application Program，  ３２  VTR Library，  ３３  VTR Port Driver，３４  High Level API，  ３５  Capture Hardware API，  ３６  Capture Hardware Driver
【図１】
0004337208.tif 000002
【図２】
0004337208.tif 000003
【図３】
0004337208.tif 000004
【図４】
0004337208.tif 000005
【図５】
0004337208.tif 000006
【図６】
0004337208.tif 000007
【図７】
0004337208.tif 000008
【図８】
0004337208.tif 000009
【図９】
0004337208.tif 000010