JP2007521695A - Dvメタデータの抽出 - Google Patents

Dvメタデータの抽出 Download PDF

Info

Publication number
JP2007521695A
JP2007521695A JP2005510196A JP2005510196A JP2007521695A JP 2007521695 A JP2007521695 A JP 2007521695A JP 2005510196 A JP2005510196 A JP 2005510196A JP 2005510196 A JP2005510196 A JP 2005510196A JP 2007521695 A JP2007521695 A JP 2007521695A
Authority
JP
Japan
Prior art keywords
pack
byte
field
data
unpacked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005510196A
Other languages
English (en)
Inventor
アラン ルドウィッグ チャールズ
エイチ.ドーリー ザ フォース ジェイムズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007521695A publication Critical patent/JP2007521695A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/107Programmed access in sequence to addressed parts of tracks of operating record carriers of operating tapes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/91Helical scan format, wherein tracks are slightly tilted with respect to tape direction, e.g. VHS, DAT, DVC, AIT or exabyte

Abstract

DVビデオ入力ソース(104)は、コンピュータ(102)にDVビデオコンテンツを転送できる任意のタイプの装置または通信ネットワーク、例えばポータブル記憶媒体(104)(1)(磁気ディスク、メディアカード、光ディスクなど)、DVビデオ録画装置(104)(2)(例えば、デジタルカムコーダ)、またはインターネット、企業ネットワーク、ホームネットワークなどのネットワーク(104)(3)などでよい。コンピュータ(102)は、一般に様々なソース(104)からビデオコンテンツを受信し、常駐するマルチメディアアーキテクチャを使用してそのビデオコンテンツを操作し、編集および再生できる様々なコンピューティング装置でよい。

Description

本開示は、一般にマルチメディアデータの処理に関し、より詳細にはDVフォーマットのマルチメディアデータからメタデータを抽出する方法に関する。
DVは、デジタルビデオカメラ用に世界中で使用されているデジタルビデオフォーマットである。DVフォーマットは、一般にDVコンソーシアム(DV consortium)と呼ばれる企業共同体によって作成された国際的な標準である。DVは、初めはDVC(Digital Video Cassette)と呼ばれており、メタル蒸着テープを使用して非常に高品質のデジタルビデオを録画する。DVビデオ仕様IEC 61834では、デジタルテープ上にらせん状のレコードを構成するデータブロックの内容、フォーマット、および録画方法を規定している。IEC 61834では、6.35 mm(1/4インチ)の磁気テープを使用したデジタルビデオカセット録画システムに関するカセットの一般的な仕様、変調方法、磁化および基本的なシステムデータと、録画されたカセットの互換性を提供する装置の電気的および機械的特性についても説明している。
DVビデオ情報は、データストリームによって毎秒約29メガビット(3.7 MByte/sec)の速度で伝達される。DVビデオフレームには、一般に10個のDIFシーケンスが含まれており、各シーケンスはそれぞれ80バイトのデータを含む150のDIFブロックで構成される。ビデオデータとオーディオデータの他に、各DVビデオフレームにはビデオデータとオーディオデータに関連付けられたDVメタデータと呼ばれる特別なデータが含まれる。
DVメタデータには、DVフレーム内のビデオデータに関連する様々なデータが含まれていてもよい。例えば、DVメタデータには、ビデオが録画された時刻と日付、ビデオが録画された時刻のカムコーダに関する様々な設定などが含まれていてもよい。IEC 61834−4によると、DVメタデータは256の別々の「パック」に分割される。DVメタデータ用に256のパックが予約されているが、多くのパックは未定義である。各パックは5バイトで構成されている。各DVメタデータパックの最初のバイトはパックIDであり、次の4バイトは2進のフィールドで構成される。
DVフォーマットによって、個々のDVビデオフレームは前後のフレームのいかなるデータにも依存せずに独立することができる。例えば、同じメタデータがDVフレーム内で何度も繰り返される。個々のDVフレームに構築された冗長性とDVフォーマットに固有の豊富な追加データ(すなわちメタデータ)によって、DVビデオは編集するために理想的なフォーマットとなる。しかし、DVビデオはその独自の機能によって理想的な編集フォーマットとなっているが、様々な問題によって、現在のDV編集アプリケーションはこうした機能を十分に活用できない。
通常のDVシナリオにおいて、ビデオはカムコーダで録画され、デジタル形式に変換される。デジタルテープ上のビデオデータは、カムコーダのドライブなどのデジタルテープドライブ、DVCR、スタンドアロンの装置などで再生できる。DVデータは、ファイヤワイヤ(firewire)を介してコンピュータのハードディスクに転送できる。転送のプロセスは、通常はデスクトップパーソナルコンピュータなどのコンピュータ上で動作するキャプチャドライバ、スタンドアロンのユーティリティ、または編集アプリケーションのコンポーネントによって実行される。転送プロセスの間に、DVデータはWindows(登録商標)のAVIやMacのQuicktimeなど、コンピュータで一般的に理解されるファイル形式に「ラップ(wrapped)」される。したがって、転送プロセスが終了すると、コンピュータのハードドライブ上にあるDVデータは標準的な編集アプリケーションが処理できるファイル形式にラップされる。Adobe(登録商標)Premiere(登録商標)Proなどの様々な編集アプリケーションによって、リアルタイムのビデオおよびオーディオ編集ツールを使用した非線形のビデオ編集が可能になる。
ただし、DVビデオフォーマットは豊富な情報を提供することによって理想的な編集フォーマットとなっているが、前述のように現在のDV編集アプリケーションではこうした情報をほとんどあるいはまったく活用していない。この主な原因は、DVビデオフレーム内からDVメタデータを抽出するのが困難なことである。DVメタデータを抽出するには、現在はアプリケーション開発者が個々に必要なメタデータを抽出する専用のカスタムコードを記述する必要がある。さらに、DV編集アプリケーションで実行する抽出プロセスは、プロセッサ資源を集中的に使用するので、アプリケーションの他の編集機能のパフォーマンスに悪影響を及ぼす。こうした問題の1つの結果として、一般にDVメタデータはほとんどのDV編集アプリケーションで利用されていない。
したがって、DVデータストリームからDVメタデータを抽出する方法が必要とされている。
本明細書では、DVデータストリームからDVメタデータを抽出する方法について説明する。
1つの実装により、DVデータストリームから抽出する追加のフレームあたりのDVメタデータを指定する命令を受け取る。DVデータストリームのDVフレームからメタデータが抽出される。
別の実装により、メタデータがコンテナに格納され、このコンテナがDVフレームのDVサンプルに添付される。コンテナは、追加のDVメタデータ構造体をコンテナに格納したり、コンテナに格納されたメタデータ項目を取得したり、容易に処理できる。
さらに別の実装により、DVメタデータ構造体がコンテナに格納される。DVメタデータ構造体は、DVメタデータパックをアンパック(unpacked)したものである。DVメタデータ構造体には、DVメタデータパックをアンパックして得られた2進の値と2進の値のそれぞれに関連付けられた個別の変数名が含まれている。
すべての図面を通して、同類のコンポーネントや機能を参照する場合は同じ参照番号を使用する。
以下の説明は、DVメタデータ抽出ツールを表すインターフェース、データ構造体、およびイベントの集合を対象としている。DVメタデータ抽出ツールには、DVデータストリームから抽出されたDVメタデータパックを説明するためのAPI(アプリケーションプログラミングインターフェース:application programming interface)が含まれている。抽出APIは、IMFExtractDVMetadataと呼ばれており、DVフレームから抽出するDVメタデータパックを指定するメソッドと、削除するメソッドをサポートしている。抽出APIは、抽出リスト内のDVメタデータパックの数を決定するメソッドと、抽出リスト内の指定されたインデックスにあるDVメタデータパックのIDを決定するメソッドもサポートしている。
DVメタデータ抽出ツールには、DVメタデータがDVフレームから抽出された後にDVメタデータを保持するコンテナを説明するAPIも含まれている。コンテナAPIは、IMFDVMetadataContainerと呼ばれており、DV構造体をコンテナに追加するメソッドと削除するメソッド、コンテナからデータを取り出すメソッド、およびコンテナを介して繰り返すメソッドをサポートしている。DVメタデータ抽出ツールには、アンパックされたDVメタデータパックを表現するより高レベルの構造体の集まりも含まれている。
DVメタデータ抽出ツールは、Microsoft(登録商標)CorporationのMedia Foundationアーキテクチャのコンテキストで一般的に説明されている。ただし、本明細書においてDVメタデータ抽出ツールは任意の適切なマルチメディアアーキテクチャ内で使用できるように設計され、説明されていることに留意されたい。
例示的な環境
図1は、DVメタデータの抽出に適した例示的な環境100を示している。図1の例示的な環境100には、コンピュータ102と1つまたは複数のDVビデオ入力ソース104が含まれている。
DVビデオ入力ソース104は、コンピュータ102にDVビデオコンテンツを転送できる任意のタイプの装置または通信ネットワークでよい。例えば、ポータブル記憶媒体104(1)(磁気ディスク、メディアカード、光ディスクなど)、DVビデオ録画装置104(2)(デジタルカムコーダなど)、またはインターネット、企業ネットワーク、ホームネットワークなどのネットワーク104(3)が含まれる。
ビデオ録画装置104(2)は、ライブモーション(live−motion)のビデオと音声をDVフォーマットで(デジタルテープに)録画でき、例えばDVCR、カムコーダ、またはコンピュータ102などのパーソナルコンピュータのデジタルテープドライブから後で再生できる様々なデジタル録画装置のいずれでもよい。ビデオ録画装置104(2)は、通常はi.LINK(IEEE 1394)またはFireWireデジタルインターフェースを使用してコンピュータ102に直接接続できるので、DVビデオコンテンツはコンピュータ102上で直接編集できる。
コンピュータ102は、一般的に様々なソース104からビデオコンテンツを受け取り、例えばMicrosoft CorporationのMedia Foundationアーキテクチャのように常駐するマルチメディアアーキテクチャを使用してそのビデオコンテンツを操作して編集および再生できる様々なコンピューティング装置として実装できる。コンピュータ102は、それ以外に通常は電子メール、カレンダー、作業編成(task organization)、ワードプロセッサ、Webブラウザなどの一般的なコンピューティング機能を実行できる。ここで説明する実施形態において、コンピュータ102ではMicrosoft(登録商標)のWindows(登録商標)ブランドのオペレーティングシステムのようなオープンプラットフォームオペレーティングシステムが動作している。コンピュータ102は、例えばデスクトップコンピュータ、サーバコンピュータ、ラップトップコンピュータ、または他の形のパーソナルコンピュータ(PC:personal computer)として実装できる。コンピュータ102の1つの例示的な実装について、図8を参照しながら以下でさらに詳しく説明する。
以下で例示的な実施形態を参照しながらさらに詳しく説明するように、コンピュータ102は一般にDVデータからDVメタデータを抽出できるDVメタデータ抽出ツールを含むマルチメディアアーキテクチャを伴って構成されている。
例示的な実施形態
図2は、DVデータストリームからDVメタデータを抽出するのに適したコンピュータ102の例示的な実施形態を示している。DVメタデータの抽出を実行できるマルチメディアアーキテクチャと関連のコンポーネントについて、本開示全体を通じて、パーソナルコンピュータで実行されるプログラムモジュールのようなコンピュータ/プロセッサ実行可能命令という一般的なコンテキストで説明する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などがあり、特定のタスクを実行するものや、特定の抽象データ型を実装するものが含まれる。さらに、こうしたプログラムモジュールが、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含むその他のコンピュータシステム構成でも実装できることは当業者には言うまでもない。さらに、こうしたプログラムモジュールは、通信ネットワークを介してリンクするリモート処理装置でタスクを実行する分散コンピューティング環境でも実施できる。分散コンピューティング環境では、プログラムモジュールをローカルとリモートの両方のメモリ記憶装置内に配置してもよい。図2の現在のコンピューティング環境において、コンピュータ102はローカルメモリ(図示せず)内にプログラムモジュールを配置するものとして一般的に示されている。前述のように、コンピュータ102の1つの例示的な実装について図8を参照しながら以下でさらに詳しく説明する。
図2に示すDVメタデータ抽出ツール200は、MicrosoftのMedia Foundationなどのマルチメディアアーキテクチャ202のコンテキスト内で動作できる。しかし、DVメタデータ抽出ツール200は、アーキテクチャ202などにおける動作に限定はされない。したがって、DVメタデータ抽出ツール200は、例えばスタンドアロンコンポーネントとして、あるいは別のアプリケーションプログラムのサブコンポーネントとして実装してもよい。DVメタデータ抽出ツール200について説明する前に、図2を参照しながら、マルチメディアアーキテクチャ202について簡単に説明する。
図2に示すように、マルチメディアアーキテクチャ202には様々なコンポーネントレイヤーが含まれている。さらに、マルチメディアアーキテクチャ202には、一般的にサポート対象または関連のメディアアプリケーション204も含まれる。このようなアプリケーション204は、図2ではマルチメディアアーキテクチャ202とは別に示されているが、アーキテクチャ202の一部として示されてもよい。マルチメディアアーキテクチャ202のコンポーネントレイヤーには、制御コンポーネントレイヤー206、コアコンポーネントレイヤー208、基本コンポーネントレイヤー210、開発プラットフォームレイヤー212、および定義レイヤー214が含まれている。
制御コンポーネントレイヤー208のコンポーネントには、メディアプロセッサ234、基本エディタ218、基本エンコーダ220、メディアセッション222、トポロジローダ224、メディアエンジン226、およびソースリゾルバ228が含まれている。これらのコンポーネントは、一般に完全な管理対象でも管理対象外でもよいタスク指向のAPI(アプリケーションプログラミングインターフェース)を構成する。制御コンポーネント206は、一般的にメディアを処理するために適切なコアレイヤーコンポーネント208をリンクするといったタスクを実行する管理機能を提供する。例えば、トポロジローダ224は入力されるメディアファイルのマルチメディアデータタイプを確認し、データタイプを適切にレンダリングするためにはコアレイヤーコンポーネント208にあるどの処理コンポーネント(すなわち230、232、234、236、238)をリンクして処理チェインを構成すればよいかを決定する。本開示の目的では、メディアデータタイプはDVデータであることに留意されたい。制御レイヤー206のメディアエンジンコンポーネント226は、トポロジローダ224によって組み立てられた処理コンポーネント(すなわち230、232、234、236、238)のチェインを使用してデータの処理を管理する。例えば、メディアエンジン226は、いつ再生を停止し、再生を開始し、逆方向に再生し、特定の時間にジャンプするかを制御しながら、処理チェインを経由してデータをプッシュする。
コアレイヤーコンポーネント208には、メディアソース230、メタデータの読み出し/書き込み232、MUX/Dmux 234、トランスフォーム(transforms)236およびメディアシンク(media sinks)238が含まれる。メディアソース230は、一般的で明確なインターフェースを経由してマルチメディアデータを提供する。メディアソース230は、アクセスするビデオデータストリームを含む表現(presentation)を説明する。様々なマルチメディアファイルタイプまたは装置からマルチメディアデータを提供するために、メディアソースの多くの実装が存在する。しかし、本開示ではDVフォーマットのマルチメディアを対象とする。
コアレイヤー208のトランスフォーム236は、それぞれ一般的で明確なインターフェースを経由して、いくつかのタイプのマルチメディアデータの変換操作を実行する。トランスフォームの例には、コーデック(codecs)、DSP、ビデオリサイザー(video resizers)、オーディオリサンプラー(audio resamplers)、統計プロセッサ(statistical processors)、カラーリサンプラー(color resamplers)などが含まれる。MUX/Dmux 234(以下Dmux 234と呼ぶ)はコアレイヤー208内で独立して示されているが、これは入力としてインターリーブされたマルチメディアデータを取得し、データを個々に有用なマルチメディアデータのメディアストリームに分離するトランスフォーム236の1つの表現である。したがって、本開示のコンテキストにおいて、Dmux 234はDV Dmux 234であり、特に、DVメディアソース230からDVフレームまたはサンプルのビデオコンポーネントとオーディオコンポーネントを分離する。
Dmux 234は、図2のマルチメディアアーキテクチャ202内にあり、DVメタデータ抽出ツール200を含むように図示されている。以下でさらに詳しく説明するが、Dmux 234はDVメタデータ抽出ツール200を使用したDVメタデータの抽出をサポートする。DVメタデータ抽出ツール200を使用すると、ユーザは一般的にDVデータストリームから抽出するDVメタデータパックの抽出リストを作成し、管理することができる。DVメタデータパックIDが抽出リストに追加されると、DV Dmux 234はDVフレームからビデオとオーディオコンポーネントを分離するので、各DVフレームから関連のDVメタデータパックを抽出する。DV Dmux 234は、DVメタデータパックをコンテナに格納し、コンテナを拡張属性として出力のビデオサンプルに添付する。DVメタデータ抽出ツール200は、本明細書においてDmux 234と組み合わせて、またはDmux 234の一部として説明しているが、コアレイヤー208内またはそれ以外でDVメタデータ抽出ツール200を実装できる場所についての制限を意図するものではない。DVメタデータ抽出ツール200をDmux 234内に実装するのは、Dmux 234の分割機能によって効率が向上するので、好ましい実施形態である。したがって、DVメタデータ抽出ツール200は、単にDVデータストリームにアクセスできるメディアソース230、DMO(DirectX Media Object)、またはその他の場所にあるスタンドアロンのソフトウェアコンポーネントの一部でもよい。DVメタデータ抽出プロセスについては、後続の図を参照しながら以下でさらに詳しく説明する。
メディアシンク(シンク)238もコアレイヤー208の処理コンポーネントに含まれている。シンク238は、一般的に汎用の明確なインターフェースを経由してマルチメディアデータを入力として受け取る。マルチメディアデータに関する様々な機能(例えば、マルチメディアデータを所定のファイルタイプやネットワークに書き込む機能や、ビデオカードを使用してビデオモニタ上にマルチメディアデータを表示する機能)を実行するメディアシンクには、多くの実装が存在する。
マルチメディアアーキテクチャ202の基本コンポーネント210と開発プラットフォーム212は、一般にはほとんど管理対象外のAPIで構成されている。基本コンポーネント210には、メディアコンテナ240、ネットワーキング242、DRM 244、MPEGフォーマットサポート246およびオーディオ/ビデオエンジン248が含まれる。これらのコンポーネントは、一般にマルチメディアアーキテクチャ202をサポートする個別の機能を実行する。開発プラットフォーム212には、一般にリソース管理インフラストラクチャとサンプル、クロック、イベント、バッファといった一般的なプリミティブタイプ(primitive types)が含まれる。マルチメディアアーキテクチャ202の定義レイヤーには、スキーマ、プロトコル、およびフォーマット(例えばメタデータ、装置モデル、タイプなど)に関する定義とポリシーが含まれる。
図3は、上で簡単に説明したDmux 234内のDVメタデータ抽出ツール200を含むコアレイヤー208の様々な処理コンポーネントを経由して処理されるDVデータの例を示している。DVデータサンプル(DVフレーム)300はDmux 234に入り、ここでビデオサンプル302とオーディオサンプル304に分離される。ビデオサンプル302は、処理チェインを経由してビデオコーデック308およびビデオレンダラー(renderer)310などの様々な処理コンポーネントに進み、その後ビデオディスプレイ312上に表示される。オーディオサンプル304は、処理チェインを経由してオーディオレンダラー314などの様々な処理コンポーネントに進み、その後でオーディオスピーカー316によって再生される。Dmux 234は、DVサンプル300を分離するときに、抽出リスト(図4を参照)のDVメタデータパックID(DVPackID)に従ってDVサンプル300内に配置されているDVメタデータパックも抽出する。抽出リスト内にDVPackIDがあるDVメタデータパックを検索すると、Dmux 234はDVメタデータパックを抽出し、それをコンテナ306に格納し、コンテナ306を対応する出力ビデオサンプル302に拡張属性として添付する。
特定のDVメタデータパックのサブセットでは、DVメタデータ抽出ツール200は、DV_METADETA構造体(図5を参照)と呼ばれるDVパックに固有のデータ構造体の拡張サポートも提供する。このような拡張サポートパックでは、コンテナ306にDVメタデータパックを格納するだけでなく、Dmux 234はアンパックされたDV_METADETA構造体もコンテナ306に格納する。したがって、特定の拡張サポートDVメタデータパックについて、DVメタデータ抽出ツール200はパックされたデータを利用可能なDVパックに固有のデータ構造体すなわちDV_METADATA構造体に分解する。図5は、1つまたは複数のDVメタデータパック500と、DVメタデータパック500に対応する1つまたは複数のアンパックされたDV_METADATA構造体502を備えるコンテナ306を示している。
IEC 61834−4によると、DVフォーマットには256のDVメタデータパックが存在する。256のDVメタデータパックについては、本開示において参考のために示す「インターフェース定義言語(Interface Definition Language)」というタイトルのセクションで後述する。DVメタデータ用に256のパックが予約されているが、多くのパックは未定義である。様々なDVメタデータパックの2進のパックレイアウトは、参考としての「インターフェース定義言語」のセクションに示されている。含まれるDVメタデータパックの2進のレイアウトは、アンパックされたDVパックに固有のデータ構造体(すなわち、DV_METADATA構造体)として明確にサポートされているDVメタデータパックのレイアウトである。したがって、「インターフェース定義言語」のセクションには、明確にサポートされているDVメタデータパックのアンパックされたDV_METADATA構造体も含まれている。一般に、各DVメタデータパックはその2進のレイアウトにおいて5バイトで構成されている。各DVメタデータパックの最初のバイトはDVPackIDであり、次の4バイトは2進のフィールドで構成されている。
図3と4をもう一度参照すると、DVメタデータ抽出ツール200は、様々なメソッドで抽出リスト404を保守する抽出API 400(アプリケーションプログラミングインターフェース)をサポートしている。DVメタデータ抽出ツール200は、以下で説明するコンテナAPI 402もサポートする。図4は、DVメタデータ抽出ツール200とサポートする抽出API 400およびコンテナAPI 402を示している。図4には、様々なDVPackIDを含む抽出リスト404も示されている。抽出API 400はIMFExtractDVMetadata APIと呼ばれており、サポートするメソッドには、AddPack、RemovePack、RemoveAllpacks、GetCount、およびGetPackが含まれる。
AddPackメソッドは、次の構文に従って、各DVフレーム300上で抽出されるDVパックの抽出リスト404に指定されたパックを追加する。
Figure 2007521695
DVPackIDは、入力パラメータであり、DVメタデータパックのPackIDを指定する。これは、DVPACKID enumのメンバーである。結果として得られるDV_METADETA構造体において、PackIDはDvMetadata.Pack[0]にある。抽出リスト404に追加できない唯一のパックは、DVPAC_NO_INFO(0xFF)である(「インターフェース定義言語」のセクションを参照)。
AddPackメソッドが正常に実行された場合は、S_OKが返される。しかし、DVPackIDがDVPACK_NO_INFOの場合はE_INVALIDARGが返される。他のエラーが返される場合もある。
例えば、編集アプリケーション204からのAddPack呼び出しによって、DVPackIDが抽出リスト404に追加される。この機能は、パック(すなわちDVPackID)が既に追加されていた場合でも正常に実行される。パックは参照カウントを保持されないので、2度追加された場合でも一度削除するだけでよい。
RemovePackメソッドは、次の構文に従って、指定されたパックを各DVフレーム300から抽出されるパックの抽出リスト404から削除する。
Figure 2007521695
DVPackIDは、入力パラメータであり、DVメタデータパックのPackIDを指定する。これは、DVPACKID enumのメンバーである。結果として得られるDV_METADETA構造体において、PackIDはDvMetadata.Pack[0]にある。
RemovePackメソッドが正常に実行された場合は、S_OKが返される。パックが抽出リスト404内に存在しない場合は、この関数からE_ITEM_NOT_FOUNDが返される。他のエラーコードが返される場合もある。
例えば、編集アプリケーション204からのRemovePack呼び出しにより、指定したパックが抽出リスト404から削除される。
RemoveAllPacksメソッドは、次の構文に従って、Dmux 234が抽出するDVパックの抽出リスト404をクリアする。
Figure 2007521695
RemoveAllPackメソッドには、入力パラメータはない。このメソッドが正常に実行された場合は、S_OKが返される。他のエラーコードが返される場合もある。例えば、編集アプリケーション204からのRemoveAllPack呼び出しにより、抽出リスト404全体がクリアされる。
GetCountメソッドは、次の構文に従って抽出リスト404にあるDVパックの数を返す。
Figure 2007521695
pCountパラメータは出力パラメータであり、抽出リスト404内のパックの数を示している。このメソッドが正常に実行された場合は、S_OKが返される。GetCountの呼び出しにより、抽出リスト404内の項目(すなわちDVPackID)の数が取得される。
GetPackIDメソッドは、次の構文に従って抽出リスト404内の指定されたインデックスにあるパックのDVPackIDを返す。
Figure 2007521695
Indexパラメータは入力パラメータであり、目的とするDVPackIDの抽出リスト404内のインデックスである。pDVPackIDは出力パラメータであり、指定されたインデックスで検出された項目のDVPackIDをオブジェクトがコピーするバイトへのポインタである。
GetPackIDメソッドが正常に実行された場合は、S_OKが返される。Indexが範囲外である場合に、このメソッドはエラーコード、MF_E_INVALIDINDEXを返す。エラーが返された場合に、pDVPackIDの値はDVPACK_NO_INFO(0xFF)である。
GetPackIDメソッドにより、呼び出し元(例えばアプリケーション204)は、E_INVALIDARGが返されるまでインデックスを増分しながら繰り返しGetPackIDメソッドを呼び出すことで、抽出される項目の全リストを取得できる。
前述のように、DVメタデータ抽出ツール200はコンテナAPI 402(図4を参照)もサポートする。コンテナ306(図3)は、Dmux 234によって分離されたビデオサンプル302上のサンプル属性として配置されている。コンテナAPI 400は、IMFDVMetadataContainer APIと呼ばれており、サポートするメソッドには、Add、Remove、RemoveAll、GetCount、Lock、Unlock、GetFirst、およびGetNextが含まれる。一般に、IMFDVMetadataContainer APIはリストに属性を追加する、リストから属性を削除する、コンテナ306をクリアする、およびコンテナ306を介して繰り返すという一般的なメカニズムを提供する。
Addメソッドは、次の構文に従って、DVパックに固有のデータ構造体すなわちDV_METADATA構造体をコンテナ306に追加する。
Figure 2007521695
pMetadataパラメータは入力パラメータであり、DV_METADATA構造体への定数ポインタ(constant pointer)である。pMetadata−>cbSizeは、コンテナ306でメモリを割り当てるために使用され、DV_METADATA構造体全体のコピーが新しく割り当てられたメモリ内に配置される。
utIndexは出力パラメータであり、新しく追加されたDV_METADATA構造体のインデックスを返す。インデックスは、コンテナ306に別の構造体が追加されたり削除されたりした場合に変わる可能性がある。
Addメソッドが正常に実行された場合は、S_OKが返される。新しい項目に十分な領域を割り当てることができなかった場合は、E_OUTOFMEMORYが返される。この操作は一定の時間0(k)内に完了する。他のスレッドがコンテナをロックしている場合に、この操作はロックが解除されるまでブロックされる(後述のLockメソッドとUnlockメソッドを参照)。
Removeメソッドは、次の構文に従ってDVパックに固有のデータ構造体すなわちDV_METADATA構造体をコンテナ306から削除する。
Figure 2007521695
uIndexパラメータは入力パラメータであり、コンテナ306から削除する項目のインデックスを示す。コンテナ306から項目が削除されると、コンテナ306内に残っている項目のインデックスが変化する場合がある。
このメソッドが正常に実行された場合は、S_OKが返される。また、インデックスに対応する項目が見つからない場合は、E_INVALIDARGが返される。これにはコンテナ306が空の場合も含まれる。この操作は、線形の時間0(n)で完了する。ただし、nはリストに格納されている項目の数である。他のスレッドがコンテナをロックしている場合に、この操作はロックが解除されるまでブロックされる(後述のLockメソッドおよびUnlockメソッドを参照)。
RemoveAllメソッドは、次の構文に従ってコンテナ306からすべての項目(すなわちDVメタデータパックおよびDVパックに固有のデータ構造体)をクリアする。
Figure 2007521695
RemoveAllメソッドに入力するパラメータはない。このメソッドが正常に実行された場合はS_OKが返され、コンテナ306には項目が存在しなくなる。ただし、これに続いて必ずしもメモリが解放されるわけではない。コンテナ306には、小規模な割り当ての繰り返しを避けるために、プールスキーマ(pooling scheme)を実装してもよい。この操作は、線形の時間0(n)で完了する。ただし、nはコンテナ306内の項目の数である。他のスレッドがロックを取得している場合に、この操作はロックが解除されるまでブロックされる(後述のLockメソッドおよびUnlockメソッドを参照)。
GetCountメソッドは、以下の構文に従ってコンテナ306内の項目の数を返す。
Figure 2007521695
puCountパラメータは、出力パラメータであり、現在コンテナ306に含まれている項目の数を返す。このメソッドが正常に実行された場合は、S_OKが返される。
この操作は一定の時間0(k)内に完了する。返された数は呼び出しが行われた時点でのみ有効である。オブジェクトは、他のスレッドによって追加または削除される可能性がある。オブジェクトをロックすることで、ロックを解除するまで他のスレッドが項目を追加および削除するのを防ぐことができる(後述のLockメソッドとUnlockメソッドを参照)。
Lockメソッドは、コンテナ306をロックして排他的にアクセスする場合に使用する。このメソッドを使用すると、ロックの所有者が項目を追加または削除しない限り、コンテナ306を繰り返し処理でき、返されたDV_METADATA構造体へのポインタが有効であることが保証される。このメソッドの構文は以下のとおりである。
Figure 2007521695
Lockメソッドには入力パラメータはない。このメソッドが正常に実行された場合は、S_OKが返される。他のエラーコードが返される場合もある。Lockが利用できない場合、ロックを取得できるまで呼び出しがブロックされる。
Unlockメソッドは、次の構文に従ってLockメソッドで取得したロックを解除する。
Figure 2007521695
UnLockメソッドには入力パラメータはない。このメソッドが正常に実行された場合は、S_OKが返される。他のエラーコードが返される場合もある。
GetFirstメソッドは、次の構文に従ってコンテナ306の先頭から繰り返しを開始する。
Figure 2007521695
puIndexパラメータは出力パラメータであり、コンテナ306から取り出す項目のインデックスを指定する。ppMetadataパラメータは、出力パラメータであり、メタデータを含むオブジェクトの内部データ構造体へのポインタを指定する。項目がコンテナ306に追加またはコンテナから削除された場合に、このポインタは無効になる場合がある。
このメソッドが正常に実行された場合は、S_OKが返される。インデックスが範囲外であるかまたは最後のGetFirst()の呼び出しの後、項目がコンテナ306に追加またはコンテナから削除された場合に、メソッドはE_INVALIDARGを返すこともある。オブジェクトがロックされていない場合に、メソッドはMF_E_INVALIDREQUESTを返す。Lockメソッドを呼び出すことにより、リストを繰り返し処理する間に、他のスレッドによって項目がコンテナ306に追加されないまたはコンテナから削除されないことが保証される。
GetNextメソッドは、次の構文に従ってコンテナ306の各項目について繰り返しを行う。
Figure 2007521695
puIndexパラメータは出力パラメータであり、コンテナ306から取り出す項目のインデックスを指定する。ppMetadataパラメータは、出力パラメータであり、メタデータを含むオブジェクトの内部データ構造体へのポインタを指定する。項目がコンテナ306に追加またはコンテナから削除された場合に、このポインタは無効になる場合がある。
このメソッドが正常に実行された場合は、S_OKが返される。インデックスが範囲外であるかまたは最後のGetFirst()の呼び出しの後で項目が306に追加またはコンテナから削除された場合に、メソッドはE_INVALIDARGを返すことがある。オブジェクトがロックされていない場合に、メソッドはMF_E_INVALIDREQUESTを返す。Lockメソッドを呼び出すことにより、リストを繰り返し処理する間に他のスレッドによって項目がコンテナ306に追加されないまたはコンテナから削除されないことが保証される。
例示的な方法
ここで、DVデータストリームからDVメタデータを抽出する例示的な方法について、基本的に図6〜7の流れ図を参照しながら説明する。本方法は、一般に図2〜5に関連して前述した例示的な実施形態に適用される。ここで説明する方法のエレメントは、例えばASIC上のハードウェア論理ブロックやプロセッサ読取可能媒体上で定義されたプロセッサ読取可能命令を含む適切な手段のいずれによっても実行できる。
本明細書で使用する「プロセッサ読取可能媒体」は、プロセッサによって使用または実行する命令を保存、格納、通信、伝搬、転送できる任意の手段でよい。プロセッサ読取可能媒体は、例えば電子、磁気、光、電磁気、赤外線、または半導体によるシステム、装置、装置または伝搬媒体でもよいが、これに限定はされない。プロセッサ読取可能媒体のより具体的な例には、特に、1つまたは複数のワイヤを伴う電気接続(電子)、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(磁気)、読み出し専用メモリ(ROM)(磁気)、消去可能なプログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ(光)、書き換え可能なコンパクトディスク(CD−RW:rewritable compact disc)(光)、ポータブルコンパクトディスク読み出し専用メモリ(CDROM:compact disc read−only memory)(光)などが含まれる。
図6は、DVデータストリームからDVメタデータを抽出する1つの例示的な方法600を示している。ブロック602で、DVデータストリームから抽出する追加のフレームあたりのDVメタデータを指定する命令を受け取る。この命令は、DVメタデータ抽出ツール200(コンピュータ102上のマルチメディアアーキテクチャ202の一部でもよい)が受け取る。この命令は、一般的にはコンピュータ102上で実行されるDV編集アプリケーションなどのアプリケーション204から受け取る。この命令は、DVメタデータ抽出ツール200の抽出インターフェース400に対して、抽出インターフェース400がサポートするメソッド呼び出しの形で指示される。この命令は、メソッド呼び出しの中に含まれるDVPackIDによってDVメタデータを識別する。抽出インターフェース400によってサポートされるメソッド呼び出しには、DVメタデータ抽出リスト404にDVPackIDを追加するAddPackメソッド呼び出し、抽出リスト404からDVPackIDを削除するRemovePackメソッド呼び出し、および抽出リスト404からすべてのDVPackIDを削除するRemoveAllPacksメソッド呼び出しが含まれる。抽出インターフェース400によってサポートされるその他のメソッド呼び出しには、抽出リスト404内に存在するDVPackIDの量を示す数値を返すGetCountメソッド呼び出しと、抽出リスト404内の指定されたインデックスにあるDVPackIDを返すGetPackIDメソッド呼び出しが含まれる。
ブロック604で、命令で指定されたDVメタデータがDVデータストリームのDVフレームから抽出される。1つの実装において、マルチメディアアーキテクチャ202のコアレイヤー208内にあるDmux 234はDVフレーム300をビデオ302サンプルおよびオーディオ304サンプルのコンポーネントに分離するときに指定されたDVメタデータを抽出する。抽出には、DVメタデータ抽出リスト404を調査してどのDVメタデータを抽出するかを決定するDmux 234が含まれる。ブロック606で、DVメタデータがコンテナ306に格納される。ブロック608で、コンテナはDmux 234によってDVフレーム300から分離されたビデオサンプル302に添付される。
ブロック610で、コンテナはDVメタデータ抽出ツール200によって管理される。DVメタデータ抽出ツール200には、アプリケーション204がコンテナ306内のデータにアクセスし、データを管理することができるメソッドをサポートするコンテナインターフェース402が含まれる。コンテナインターフェース402によってサポートされるメソッド呼び出しは、コンテナにDV_METADATA構造体を追加するAddメソッド呼び出し、コンテナからDV_METADATA構造体を削除するRemoveメソッド呼び出し、コンテナからすべての項目を削除するRemoveAllメソッド呼び出し、コンテナ内に存在する項目の量を示す数値を返すGetCountメソッド呼び出し、コンテナをロックして排他的にアクセスするLockメソッド呼び出し、コンテナのロックを解除するUnlockメソッド呼び出し、コンテナの最初のインデックスにある項目をコンテナから取り出すGetFirstメソッド呼び出し、およびコンテナの次のインデックスにある項目をコンテナから取り出すGetNextメソッド呼び出しである。
図7は、DVデータストリームからDVメタデータを抽出する別の例示的なメソッド700を示している。ブロック702で、DVメタデータ抽出リスト404が管理される。抽出リスト404は、DVメタデータ抽出ツール200によって管理される。DVメタデータ抽出ツール200は、様々なメソッドを使用して抽出リストを管理するための抽出インターフェース400をサポートする。抽出インターフェース400によってサポートされるメソッドには、DVメタデータ抽出リスト404にDVPackIDを追加するAddPackメソッド呼び出し、抽出リスト404からDVPackIDを削除するRemovePackメソッド呼び出し、および抽出リスト404からすべてのDVPackIDを削除するRemoveAllPacksメソッド呼び出しが含まれる。抽出インターフェース400によってサポートされるその他のメソッドには、抽出リスト404内に存在するDVPackIDの量を示す数値を返すGetCountメソッド呼び出しと、抽出リスト404の指定したインデックスにあるDVPackIDを返すGetPackIDメソッド呼び出しが含まれる。
ブロック704で、DVメタデータパックは抽出リスト404内のDVPackIDに基づいてDVフレーム300から抽出される。1つの実装において、マルチメディアアーキテクチャ202のコアレイヤー208内にあるDmux 234は、DVフレーム300をビデオ302およびオーディオ304サンプルのコンポーネントに分離するときに指定されたDVメタデータパックを抽出する。抽出には、DVメタデータ抽出リスト404を調査してどのDVメタデータを抽出するかを決定するDmux 234が含まれる。ブロック706で、DVメタデータパックがIMFDVMetadataContainer 306に格納される。
ブロック708で、DVメタデータパックはDVパックに固有のデータ構造体にアンパックされる。DVパックに固有のデータ構造体は、DVメタデータパックからパックされた2進のデータを取り出し、2進の値を対応する変数名に割り当て、アプリケーションプログラム204がDVメタデータパックのデータを使いやすくする。ブロック710でDVパックに固有のデータ構造体がIMFDVMetadataContainer 306に格納され、ブロック712でIMFDVMetadataContainer 306がDmux 234によってDVフレーム300から分離されたDVビデオサンプル302に添付される。
ブロック714で、IMFDVMetadataContainer 306はDVメタデータ抽出ツール200によって管理される。DVメタデータ抽出ツール200には、アプリケーション204がコンテナ306内のデータにアクセスでき、そのデータを管理できるメソッドをサポートするコンテナインターフェース402が含まれる。コンテナインターフェース402によってサポートされるメソッド呼び出しは、コンテナにDVパックに固有のデータ構造体(DV_METADATA構造体と呼ばれる)を追加するAddメソッド呼び出し、コンテナからDV_METADATA構造体を削除するRemoveメソッド呼び出し、コンテナからすべての項目を削除するRemoveAllメソッド呼び出し、コンテナ内に存在する項目の量を示す数値を返すGetCountメソッド呼び出し、コンテナをロックして排他的にアクセスするLockメソッド呼び出し、コンテナのロックを解除するUnlockメソッド呼び出し、コンテナの最初のインデックスにある項目をコンテナから取り出すGetFirstメソッド呼び出し、およびコンテナの次のインデックスにある項目をコンテナから取り出すGetNextメソッド呼び出しである。
1つまたは複数のメソッドが流れ図と流れ図の各ブロックに関する説明によって開示されているが、各ブロックは必ずしも示されている順序で実行する必要はなく、代わりの順序で実行しても同様の効果が得られるのは言うまでもない。さらに、こうしたメソッドは排他的ではなく、単独でも相互に組み合わせても実行できる。
例示的なコンピュータ
図8は、コンピュータ102を実装するのに適した例示的なコンピューティング環境800を示している。1つの具体的な構成が示されているが、クライアントコンピュータ102は他のコンピューティング構成で実装してもよい。
コンピューティング環境800には、汎用コンピューティングシステムがコンピュータ802の形で含まれる。コンピュータ802のコンポーネントには、1つまたは複数のプロセッサまたは処理装置804、システムメモリ806、プロセッサ804を含む様々なシステムコンポーネントをシステムメモリ806に接続するシステムバス808などが含まれるが、それらに限定はされない。
システムバス808は、メモリバスまたはメモリコントローラ、周辺バス、アクセラレータグラフィックポート、様々なバスアーキテクチャのいずれかを用いたプロセッサバスまたはローカルバスを含む各種バス構造の任意の1つまたは複数を表している。システムバス808の例には、PCI(Peripheral Component Interconnects)バス(メザニン(Mezzanine)バスとも呼ばれる)がある。
コンピュータ802には、通常は様々なコンピュータ読取可能媒体が含まれる。このような媒体は、コンピュータ802からアクセスできる任意の使用可能な媒体でよい。また、揮発性と不揮発性の両方、および取り外し可能と不可能の両方の媒体が含まれる。システムメモリ806には、ランダムアクセスメモリ(RAM:random access memory)810などの揮発性メモリ、および/または読み取り専用メモリ(ROM:read only memory)812などの不揮発性メモリの形をとるコンピュータ読取可能媒体が含まれる。起動時などにコンピュータ802内のエレメント間の情報転送を支援する基本ルーチンを含む基本入出力システム(BIOS:basic input/output system)814は、ROM 812に格納される。RAM 810には、通常は処理装置804から直ちにアクセスでき、かつ/または処理装置804で現在動作しているデータおよび/またはプログラムモジュールが格納される。
コンピュータ802には、その他の取り外し可能/不可能、揮発性/不揮発性のコンピュータ記憶媒体を含めてもよい。例として、図8に取り外し不可能な不揮発性の磁気媒体(図示せず)の読み出しおよび書き込みを行うハードディスクドライブ816、取り外し可能な不揮発性の磁気ディスク820(例えば「フロッピー(登録商標)ディスク」)の読み出しおよび書き込みを行う磁気ディスクドライブ818、CD−ROM、DVD−ROM、あるいは他の光媒体のような取り外し可能な不揮発性の光ディスク824の読み出しまたは書き込みを行う光ディスクドライブ822を示す。ハードディスクドライブ816、磁気ディスクドライブ818、および光ディスクドライブ822は、それぞれ1つまたは複数のデータメディアインターフェース826によってシステムバス808に接続する。あるいは、ハードディスクドライブ816、磁気ディスクドライブ818、および光ディスクドライブ822は、それぞれSCSIインターフェース(図示せず)によってシステムバス808に接続できる。
ディスクドライブと各ドライブに関連するコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールなど、コンピュータ802のデータを格納する不揮発性ストレージとして利用できる。この例には、ハードディスク816、取り外し可能な磁気ディスク820、取り外し可能な光ディスク824を示すが、磁気カセットなどの磁気記憶装置、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD:digital versatile disks)などの光記憶装置、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM:electrically erasable programmable read-only memory)など、コンピュータからアクセス可能なデータを保存できる他のタイプのコンピュータ読取可能媒体も例示的なコンピューティングシステムおよび環境に利用できることは言うまでもない。
例としてオペレーティングシステム826、1つまたは複数のアプリケーションプログラム828、その他のプログラムモジュール830、およびプログラムデータ832を含む任意の数のプログラムモジュールは、ハードディスク816、磁気ディスク820、光ディスク824、ROM 812、および/またはRAM 810に保存できる。こうしたオペレーティングシステム826、1つまたは複数のアプリケーションプログラム828、その他のプログラムモジュール830、およびプログラムデータ832(またはそのいくつかの組合せ)にはそれぞれ、ユーザネットワークアクセス情報を得るためのキャッシングスキーマの実施形態を含めてもよい。
コンピュータ802には、通信媒体として識別される様々なコンピュータ/プロセッサ読取可能媒体を含めてもよい。通信媒体は搬送波やその他の搬送メカニズムのような変調データ信号に含まれるコンピュータ読取可能命令、データ構造体、プログラムモジュール、またはその他のデータなどを具体化しており、通信媒体には任意の情報伝達媒体が含まれる。「変調データ信号」という用語は、信号内で情報を符号化するように1つまたは複数の特性を設定または変更された信号を意味する。例として、通信媒体には、有線ネットワークや直接ワイヤ接続などの有線媒体と、音、RF、赤外線などの無線媒体が含まれるが、これらに限定はされない。上記の任意の組合せも、コンピュータ読取可能媒体の範囲内に含まれる。
ユーザは、キーボード834やポインティングデバイス836(例えば「マウス」)などの入力装置を使用してコンピュータシステム802にコマンドや情報を入力できる。その他の入力装置838(個々には図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナなどを含めてもよい。これらの入力装置および他の入力装置は、システムバス808に接続された入力/出力インターフェース840を介して処理装置804に接続するが、パラレルポート、ゲームポート、USB(universal serial bus)のような他のインターフェースやバス構造によって接続してもよい。
モニター842または他のタイプの表示装置も、ビデオアダプタ844のようなインターフェースを介してシステムバス808に接続できる。モニター842以外に、他の出力周辺装置には、スピーカー(図示せず)やプリンタ846のように入力/出力インターフェース840を介してコンピュータ802に接続できるコンポーネントを含めてもよい。
コンピュータ802は、リモートコンピューティング装置848のような1台または複数台のリモートコンピュータへの論理接続を使用してネットワーク環境で動作できる。例として、リモートコンピューティング装置848は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置、その他の一般的なネットワークノードなどでよい。リモートコンピューティング装置848は、コンピュータシステム802に関連して本明細書で説明するエレメントおよび機能の多くまたはすべてを含むことができるポータブルコンピュータとして示されている。
コンピュータ802とリモートコンピュータ848との論理接続は、ローカルエリアネットワーク(LAN:local area network)850と一般的なワイドエリアネットワーク(WAN:wide area network)852として示されている。このようなネットワーキング環境は、職場、企業規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。LANネットワーキング環境で実装する場合に、コンピュータ802はネットワークインターフェースまたはアダプタ854を介してローカルネットワーク850に接続する。WANネットワーキング環境で実装する場合、コンピュータ802は一般に広域ネットワーク852を介して通信を確立するためのモデム856またはその他の手段を備えている。コンピュータ802のモデム856(内蔵または外付け)は、入力/出力インターフェース840または他の適切なメカニズムを使用してシステムバス808に接続できる。図示されたネットワーク接続が例示的なものであり、コンピュータ802および848間の通信リンク(1つまたは複数)を確立するその他の手段を使用してもよいことは言うまでもない。
コンピューティング環境800に図示するようなネットワーク環境では、コンピュータ802に関連して示したプログラムモジュールまたはその一部をリモートメモリ記憶装置に格納できる。例として、リモートアプリケーションプログラム858はリモートコンピュータ848のメモリ装置に格納されている。説明のために、アプリケーションプログラム、およびオペレーティングシステムなど、その他の実行可能プログラムコンポーネントは、本明細書では個々のブロックとして示されているが、こうしたプログラムおよびコンポーネントは様々なタイミングでコンピューティングシステム802の様々なストレージコンポーネントに格納され、コンピュータのデータプロセッサ(1つまたは複数)によって実行されることがわかっている。
インターフェース定義言語
前述のように、このIDL(Interface Definition Language:インターフェース定義言語)のセクションでは、256のDVメタデータパックに加えて、DVメタデータ抽出ツール200によってDVパックに固有のデータ構造体(すなわちDV_METADATA構造体)として拡張された方法で個々にサポートされている様々なパックの2進のパックレイアウトもリストアップする。このセクションには、サポートされるDV_METADATA構造体のアンパックされたDVメタデータパックの固有のレイアウトも含まれる。拡張されたサポートを伴うDVメタデータパックを次の表に特定する。
Figure 2007521695
DVメタデータ抽出ツール200による拡張されたサポートを伴うDVパックに固有のデータ構造体(すなわちDV_METADATA構造体)は、それぞれsizeおよびDV Packで開始される。sizeメンバーには、DV_METADATA構造体全体のサイズが格納される。DVPack(5バイトの配列)は、生のDVメタデータである。各パックは5バイトで構成されている。最初のバイトは、上の表1のパックIDである。次の4バイトには、データを格納するビットフィールドが含まれる。拡張されたサポートパックは、それぞれビットフィールドがアンパックされ、より使いやすい形に簡単に処理された関連の構造体を備えている。DV Packの詳細な定義は、IEC 61834−4に記載されている。
256のDVメタデータパックおよびDVメタデータ抽出ツール200によってサポートされるDVパックに固有のデータ構造体(すなわちDV_METADATA構造体)は、次のとおりである。
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
Figure 2007521695
結論
本発明について、構造上の機能および/または方法論的な動作に固有の言語で説明したが、添付の特許請求の範囲が必ずしも前述の特定の機能や動作に限定されないことを理解されたい。むしろ、特定の機能や動作は、特許請求の範囲に記載された本発明の例示的な実施形態として開示されている。
DVメタデータの抽出に適した例示的な環境を示す図である。 DVデータストリームからDVメタデータを抽出するのに適したコンピュータの例示的な実施形態を示す図である。 様々な処理コンポーネントを使用して処理されるDVデータの例を示す図である。 DVメタデータ抽出ツールのコンポーネントを示す図である。 1つまたは複数のDVメタデータパックと1つまたは複数のアンパックされたDV_METADATA構造体とを備えるコンテナを示す図である。 DVデータストリームからDVメタデータを抽出する1つの例示的な方法を示すブロック図である。 DVデータストリームからDVメタデータを抽出する別の例示的な方法を示すブロック図である。 図2に示すようなコンピュータを実装するのに適した例示的なコンピューティング環境を示す図である。

Claims (54)

  1. DVデータストリームから抽出する追加のフレームあたりのDVメタデータを指定する命令を受け取るステップと、
    前記命令に応答して前記DVデータストリームのDVフレームから前記メタデータを抽出するステップと
    を実行するように構成されたプロセッサ実行可能命令を備えることを特徴とするプロセッサ読取可能媒体。
  2. 前記メタデータをコンテナに格納するステップと、
    前記コンテナを前記DVフレームのビデオサンプルに添付するステップと
    を実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項1に記載のプロセッサ読取可能媒体。
  3. 前記命令を受け取るステップは、
    抽出リストにDVPackIDを追加するAddPack呼び出しを受け取るステップと、
    前記抽出リストからDVPackIDを削除するRemovePack呼び出しを受け取るステップと、
    前記抽出リストからすべてのDVPackIDを削除するRemoveAllPacks呼び出しを受け取るステップとを備えることを特徴とする請求項1に記載のプロセッサ読取可能媒体。
  4. GetCount呼び出しに応答して前記抽出リスト内に存在するDVPackIDの量を示す数値を返すステップと、
    インデックスを指定するGetPackID呼び出しに応答して前記抽出リスト内の前記インデックスにあるDVPackIDを返すステップと
    を実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項3に記載のプロセッサ読取可能媒体。
  5. 前記抽出するステップは、
    抽出リストのDVPackIDを決定するステップと、
    前記DVPackIDに基づいて前記DVフレーム内の前記メタデータを識別するステップとを備えることを特徴とする請求項1に記載のプロセッサ読取可能媒体。
  6. 前記コンテナを管理するステップを実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項2に記載のプロセッサ読取可能媒体。
  7. 前記コンテナを管理するステップは、
    Add呼び出しに応答して前記コンテナにDV_METADATA構造体を追加するステップと、
    Remove呼び出しに応答して前記コンテナからDV_METADATA構造体を削除するステップと、
    RemoveAll呼び出しに応答して前記コンテナからすべての項目を削除するステップと、
    GetCount呼び出しに応答して前記コンテナ内に存在する項目の量を示す数値を返すステップと、
    Lock呼び出しに応答して前記コンテナをロックして排他的にアクセスするステップと、
    Unlock呼び出しに応答して前記コンテナのロックを解除するステップと、
    GetFirst呼び出しに応答して前記コンテナの最初のインデックスにある項目を前記コンテナから取り出すステップと、
    GetNext呼び出しに応答して前記コンテナの次のインデックスにある項目を前記コンテナから取り出すステップとを備えることを特徴とする請求項6に記載のプロセッサ読取可能媒体。
  8. 前記DV_METADATA構造体は、アンパックされた形のDVメタデータパックを備えることを特徴とする請求項7に記載のプロセッサ読取可能媒体。
  9. 前記DV_METADATA構造体は、
    前記DVメタデータパックからアンパックされた2進の値と、
    各2進の値に関連付けられた別々の変数名とを備えることを特徴とする請求項8に記載のプロセッサ読取可能媒体。
  10. 前記DVフレームを多重分離して前記ビデオサンプルとオーディオサンプルを生成するステップ
    を実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項2に記載のプロセッサ読取可能媒体。
  11. 請求項1に記載のプロセッサ読取可能媒体を備えることを特徴とするコンピュータ。
  12. DVメタデータ抽出リストを管理するステップと、
    前記抽出リスト内のDVPackIDに基づいてDVフレームからDVメタデータを抽出するステップと
    を実行するように構成されたプロセッサ実行可能命令を備えることを特徴とするプロセッサ読取可能媒体。
  13. 前記DVメタデータパックをIMFDVMetadataContainerに格納するステップを実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項12に記載のプロセッサ読取可能媒体。
  14. 前記IMFDVMetadataContainerを前記DVフレームのDVサンプルに添付するステップを実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項13に記載のプロセッサ読取可能媒体。
  15. 前記DVメタデータパックをDVパックに固有のデータ構造体にアンパックするステップを実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項13に記載のプロセッサ読取可能媒体。
  16. 前記DVパックに固有のデータ構造体を前記IMFDVMetadataContainerに格納するステップを実行するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項15に記載のプロセッサ読取可能媒体。
  17. 前記DVパックに固有のデータ構造体は、
    前記DVメタデータパックからアンパックされた2進の値と、
    各2進の値に関連付けられた別々の変数名とを備えることを特徴とする請求項15に記載のプロセッサ読取可能媒体。
  18. 前記管理するステップは、
    AddPack呼び出しに応答して前記抽出リストにDVPackIDを追加するステップと、
    RemovePack呼び出しに応答して前記抽出リストからDVPackIDを削除するステップと、
    RemoveAllPacks呼び出しに応答して前記抽出リストからすべてのDVPackIDを削除するステップと、
    GetCount呼び出しに応答して前記抽出リスト内に存在するDVPackIDの量を示す数値を返すステップと、
    インデックスを指定するGetPackID呼び出しに応答して前記抽出リスト内の前記インデックスにあるDVPackIDを返すステップとを備えることを特徴とする請求項12に記載のプロセッサ読取可能媒体。
  19. 前記抽出するステップは、
    前記DVPackIDを含む前記DVメタデータパック内のヘッダーを介して前記DVフレーム内の前記DVメタデータパックを識別するステップと、
    前記DVフレームから前記DVメタデータパックを抽出(pull)するステップとを備えることを特徴とする請求項12に記載のプロセッサ読取可能媒体。
  20. 前記IMFDVMetadataContainerを管理するように構成されたプロセッサ実行可能命令をさらに備えることを特徴とする請求項13に記載のプロセッサ読取可能媒体。
  21. 前記IMFDVMetadataContainerを管理するステップは、
    Add呼び出しに応答して前記IMFDVMetadataContainerにDV_METADATA構造体を追加するステップと、
    Remove呼び出しに応答して前記IMFDVMetadataContainerからDV_METADATA構造体を削除するステップと、
    RemoveAll呼び出しに応答して前記IMFDVMetadataContainerからすべての項目を削除するステップと、
    GetCount呼び出しに応答して前記IMFDVMetadataContainer内に存在する項目の量を示す数値を返すステップと、
    Lock呼び出しに応答して前記IMFDVMetadataContainerをロックして排他的にアクセスするステップと、
    Unlock呼び出しに応答して前記IMFDVMetadataContainerのロックを解除するステップと、
    GetFirst呼び出しに応答して前記IMFDVMetadataContainerの最初のインデックスにある項目を前記IMFDVMetadataContainerから取り出すステップと、
    GetNext呼び出しに応答して前記IMFDVMetadataContainerの次のインデックスにある項目を前記IMFDVMetadataContainerから取り出すステップとを備えることを特徴とする請求項20に記載のプロセッサ読取可能媒体。
  22. 請求項12に記載のプロセッサ読取可能媒体を備えることを特徴とするコンピュータ。
  23. DVデータストリームからDVメタデータを抽出する命令を受け取るステップと、
    前記命令に応答して前記DVデータストリームから前記メタデータを抽出するステップと、
    前記メタデータをコンテナに格納するステップと、
    前記コンテナを前記DVデータストリームのビデオサンプルに添付するステップと
    を備えることを特徴とする方法。
  24. コンテナAPI(アプリケーションプログラミングインターフェース)上のメソッド呼び出しに従って前記コンテナへのアクセスを管理するステップをさらに備えることを特徴とする請求項23に記載の方法。
  25. メタデータ抽出API(アプリケーションプログラミングインターフェース)上のメソッド呼び出しに基づいてDVメタデータ抽出リスト内のDVPackIDを管理するステップと、
    前記抽出リスト内のDVPackIDに基づいてDVフレームからDVメタデータパックを抽出するステップと
    を備えることを特徴とする方法。
  26. 前記DVメタデータパックをDVパックに固有のデータ構造体にアンパックするステップと、
    前記DVメタデータパックおよび前記DVパックに固有のデータ構造体をコンテナに格納するステップと
    をさらに備えることを特徴とする請求項25に記載の方法。
  27. 前記コンテナを前記DVフレームのビデオサンプルに添付するステップをさらに備えることを特徴とする請求項26に記載の方法。
  28. コンテナAPIへのメソッド呼び出しに基づいて前記コンテナへのアクセスを管理するステップをさらに備えることを特徴とする請求項27に記載の方法。
  29. DVフレームからメタデータを抽出し、前記メタデータへのアクセスを可能にするように構成されたDVメタデータ抽出ツールを備えることを特徴とするコンピュータ。
  30. 前記DVメタデータ抽出ツールは、
    アプリケーションからのメソッド呼び出しに応答してDVPackIDの抽出リストを保守し、前記DVPackIDの抽出リストに基づいてDVパックをコンテナに格納するように構成された抽出インターフェースと、
    DVパックに固有の構造体を前記コンテナに格納し、前記アプリケーションからのメソッド呼び出しに応答してDVパックおよびDVパックに固有の構造体へのアクセスを管理するように構成されたコンテナインターフェースとを備えることを特徴とする請求項29に記載のコンピュータ。
  31. 前記DVメタデータ抽出ツールを含むマルチメディアアーキテクチャをさらに備えることを特徴とする請求項29に記載のコンピュータ。
  32. DVメタデータ抽出リストを管理する手段と、
    前記抽出リスト内のDVPackIDに基づいてDVフレームからDVメタデータを抽出する手段と
    を備えることを特徴とするコンピュータ。
  33. 前記DVメタデータパックをIMFDVMetadataContainerに格納する手段をさらに備えることを特徴とする請求項32に記載のコンピュータ。
  34. 前記IMFDVMetadataContainerを前記DVフレームのDVサンプルに添付する手段をさらに備えることを特徴とする請求項33に記載のコンピュータ。
  35. 前記DVメタデータパックをDVパックに固有のデータ構造体にアンパックする手段と、
    前記DVパックに固有のデータ構造体を前記IMFDVMetadataContainerに格納する手段とをさらに備えることを特徴とする請求項33に記載のコンピュータ。
  36. 5バイトのDV_METADATA_CONTROL_CASSETTE_IDパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるMicErrorフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるMultiBytesフィールドと、
    前記パックの第2のバイトからアンパックされたデータを備えるMemoryTypeフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるMemorySizeOfSpaceOフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるMemorySizeOfLastBlanklnSpacelフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるMemoryBankNumberOfSpacelフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTapeThicknessフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  37. 5バイトのDV_METADATA_CONTROL_TAPE_LENGTHパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2〜4のバイトからアンパックされたデータを備えるTapeLengthフィールドを備えることを特徴とするプロセッサ読取可能媒体。
  38. 5バイトのDV_METADATA_TEXT_HEADERパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2と第3のバイトからアンパックされたデータを備えるTotalTextDataフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるTextTypeフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるOptionNumberフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるTextCodeフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるAreaNumberフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるTopicTagフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  39. 5バイトのDV_METADATA_TAGパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2、第3、および第4のバイトからアンパックされたデータを備えるAbsoluteTrackNumberフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるBlankFlagフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTextFlagフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるTemporaryTrueフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるHoldFlagフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるTagIDフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  40. 5バイトのDV_METADATA_TITLE_TIME_CODEパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるBlank Flagフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるTens of Framesフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるUnits of Framesフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるTens of Secondsフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるUnits of Secondsフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるTens of Minutesフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるUnits of Minutesフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTens of Hoursフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるUnits of Hoursフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  41. 5バイトのパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるBinaryGroup2フィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるBinaryGrouplフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるBinaryGroup4フィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるBinaryGroup3フィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるBinaryGroup6フィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるBinaryGroup5フィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるBinaryGroup8フィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるBinaryGroup7フィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  42. 5バイトのDV_METADATA_PROGRAM_REC_DTIMEパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるRecordingModeフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるMinutesフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるWeekフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるHoursフィールドと、
    前記パックの第4と第5のバイトからアンパックされたデータを備えるYearフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるDayフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるMonthフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  43. 5バイトのDV_METADATA_AAUX_SOURCEパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるLockedFlagフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるAudioFrameSizeフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるStereoModeフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるChannelフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるPairBitフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるAudioModeフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるMultiLanguageフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるFiftySixtyフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるSystemTypeフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるEmphasisフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるTimeConstantフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるSamplingFrequencyフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるQuantizationフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  44. 5バイトのDV_METADATA_AAUX_SOURCE_CONTROLパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるCopyGenerationManagementSystemフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるInputSourceフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるCompressionフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるSourceSituationフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるRecordingStartフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるRecordingEndフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるRecordModeフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるInsertChannelフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるDirectionFlagフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるPlaybackSpeedフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるGenreCategoryフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  45. 5バイトのパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるDaylightSavingsTimeフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるThirtyMinutesFiagフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるTens of Time Zoneフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるUnits of Time Zoneフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるTens of Dayフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるUnits of Dayフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるWeekフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるTens of Monthフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるUnits of Monthフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTens of Yearフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるUnits of Yearフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  46. 5バイトのパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるTens of Framesフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるUnits of Framesフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるTens of Secondsフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるUnits of Secondsフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるTens of Minutesフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるUnits of Minutesフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTens of Hoursフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるUnits of Hoursフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  47. 5バイトのDV_METADATA_AAUX_CLOSED_CAPTIONパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるMainAudioLanguageフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるMainAudioTypeフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるSecondAudioLanguageフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるSecondAudioTypeフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  48. 5バイトのパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2〜5のバイトからアンパックされたデータを備えるDataフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるDataTypeフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  49. 5バイトのDV_METADATA_VAUX_SOURCEパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるTens of TV Channelフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるUnits of TV Channelフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるB/Wフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるEnable Colorフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるColor Frames Identificationフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるHundreds of TV Channelフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるSource Codeフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備える50/60フィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるSignal Typeフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるTuner Categoryフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  50. 5バイトのDV_METADATA_VAUX_SOURCE_CONTROLパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるCopyGenerationManagementSystemフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるJustPreviouslnputフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるCompressionフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるSourceSituationフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるRecordStartフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるRecordModeフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるDisplaySelectフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるFrameFieldフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるFirstSecondフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるFrameChangeフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるInterlaceフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるStillFieldフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるStillCameraフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるBroadcastSystemフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるGenreCategoryフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  51. 5バイトのDV_METADATA_VAUX_CLOSED_CAPTIONパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるFirstFieldFirstByteフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるFirstFieldSecondByteフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるSecondFieldFirstByteフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるSecondeFieldSecondByteフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  52. 5バイトDV_METADATA_CAMERA_CONSUMER_CAMERA_lパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるIrisフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるAEModeフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるAGCフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるWBModeフィールドと、
    前記パックの前記第4のバイトからアンパックされたデータを備えるWhiteBalanceフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるFocusModeフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるFocusPositionフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  53. 5バイトのDV_METADATA_CAMERA_CONSUMER_CAMERA_2パックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第2のバイトからアンパックされたデータを備えるVerticalPanningDirectionフィールドと、
    前記パックの前記第2のバイトからアンパックされたデータを備えるVerticalPanningSpeedフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるImageStabilizerフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるHorizontalPanningDirectionフィールドと、
    前記パックの前記第3のバイトからアンパックされたデータを備えるHorizontaPanningSpeedフィールドと、
    前記パックの第4のバイトからアンパックされたデータを備えるFocalLengthフィールドと、
    前記パックの第5のバイトからアンパックされたデータを備えるZoomEnableフィールドと、
    前記パックの前記第5のバイトからアンパックされたデータを備えるElectricZoomフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
  54. 5バイトのDV_METADATA_CAMERA_SHUTTERパックを表現するデータ構造体を格納したプロセッサ読取可能媒体であって、前記データ構造体は、
    前記パックの第4と第5のバイトからアンパックされたデータを備えるShutterSpeedフィールドと、
    前記パックの第2のバイトからアンパックされたデータを備えるUpperLineSpeedフィールドと、
    前記パックの第3のバイトからアンパックされたデータを備えるLowerLinerSpeedフィールドとを備えることを特徴とするプロセッサ読取可能媒体。
JP2005510196A 2003-10-01 2003-10-02 Dvメタデータの抽出 Pending JP2007521695A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/676,979 US8165449B2 (en) 2003-10-01 2003-10-01 DV metadata extraction
PCT/US2003/031763 WO2005043263A1 (en) 2003-10-01 2003-10-02 Dv metadata extraction

Publications (1)

Publication Number Publication Date
JP2007521695A true JP2007521695A (ja) 2007-08-02

Family

ID=34393647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005510196A Pending JP2007521695A (ja) 2003-10-01 2003-10-02 Dvメタデータの抽出

Country Status (7)

Country Link
US (1) US8165449B2 (ja)
EP (1) EP1668434A1 (ja)
JP (1) JP2007521695A (ja)
KR (1) KR20060073921A (ja)
CN (1) CN100517151C (ja)
AU (1) AU2003279867A1 (ja)
WO (1) WO2005043263A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792806B2 (en) * 2003-06-27 2010-09-07 Microsoft Corporation Rate change
US8064752B1 (en) 2003-12-09 2011-11-22 Apple Inc. Video encoding
US8041186B1 (en) 2003-12-09 2011-10-18 Apple Inc. Propagating metadata associated with digital video
US8135261B1 (en) 2003-12-09 2012-03-13 Apple Inc. Insertion and usage of metadata in digital video
WO2005074629A2 (en) * 2004-01-30 2005-08-18 Adgiants, Llc Web-based marketing management system
US8271507B2 (en) 2004-01-30 2012-09-18 Adgiants, Llc Web-based marketing management system
US20050188135A1 (en) * 2004-02-02 2005-08-25 University Of South Florida High performance serial bus data recorder
CN1790419A (zh) * 2005-10-21 2006-06-21 曲建明 一种将医疗数字图像信息按所需格式标准化的方法及应用
US20080215169A1 (en) * 2007-03-02 2008-09-04 Lisa Debettencourt Audio System
CN101542450B (zh) * 2007-05-28 2012-05-23 松下电器产业株式会社 元数据记录装置以及元数据记录方法
US20090132462A1 (en) * 2007-11-19 2009-05-21 Sony Corporation Distributed metadata extraction
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
US8789168B2 (en) * 2008-05-12 2014-07-22 Microsoft Corporation Media streams from containers processed by hosted code
US7949775B2 (en) * 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
US8265140B2 (en) * 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
FR2948792B1 (fr) * 2009-07-30 2011-08-26 Oberthur Technologies Procede de traitement de donnees protege contre les attaques par faute et dispositif associe
IL219499B (en) 2012-04-30 2019-02-28 Verint Systems Ltd A system and method for detecting malicious software
IL226057A (en) * 2013-04-28 2017-07-31 Verint Systems Ltd System and method for automatic configuration of intrusion detection systems
IL226747B (en) 2013-06-04 2019-01-31 Verint Systems Ltd A system and method for studying malware detection
US9684594B2 (en) 2014-07-16 2017-06-20 ClearSky Data Write back coordination node for cache latency correction
US9652389B2 (en) 2014-07-16 2017-05-16 ClearSky Data Hash discriminator process for hierarchical cache system
US9430387B2 (en) 2014-07-16 2016-08-30 ClearSky Data Decoupling data and metadata in hierarchical cache system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001291323A (ja) * 2000-03-31 2001-10-19 Sony Corp 記録装置及び方法、再生装置及び方法並びに情報処理装置及び方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570728B2 (en) * 1992-12-28 2003-05-27 Sony Corporation Tape cassette including memory unit storing reproduction control instructions
EP0635976B1 (en) * 1993-02-04 1999-09-08 Sony Corporation Magnetic recording/reproducing apparatus which records transmitted character signals
US5646796A (en) * 1993-05-10 1997-07-08 Sony Corporation Apparatus and method for recording and reproducing topic data with digital video and audio data
JP3561930B2 (ja) * 1993-08-14 2004-09-08 ソニー株式会社 画像検索用id信号の記録方法、画像検索方法、及び記録画像再生装置
KR0165712B1 (ko) * 1993-09-30 1999-03-20 오오가 노리오 디지탈 기록 재생 장치 및 인덱스 기록 방법
JP3577733B2 (ja) * 1994-02-15 2004-10-13 ソニー株式会社 画像記録装置
JP3477818B2 (ja) * 1994-05-12 2003-12-10 ソニー株式会社 ディジタルオーディオ信号伝送装置
MY114287A (en) * 1994-12-26 2002-09-30 Sony Corp Digital video recorder
JP3674095B2 (ja) * 1995-08-31 2005-07-20 ソニー株式会社 カメラ設定データの記録再生方法及び記録再生装置
WO1998002881A1 (fr) * 1996-07-15 1998-01-22 Kabushiki Kaisha Toshiba Appareil comportant une interface numerique, systeme de reseau mettant en oeuvre cet appareil et procede de protection contre la copie
US6130726A (en) * 1997-03-24 2000-10-10 Evolve Products, Inc. Program guide on a remote control display
US6061692A (en) 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6351471B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
US6516029B1 (en) * 1998-03-06 2003-02-04 Divio, Inc. Method and apparatus for adaptive video encoding
US6611812B2 (en) 1998-08-13 2003-08-26 International Business Machines Corporation Secure electronic content distribution on CDS and DVDs
US6833865B1 (en) * 1998-09-01 2004-12-21 Virage, Inc. Embedded metadata engines in digital capture devices
JP3252282B2 (ja) * 1998-12-17 2002-02-04 松下電器産業株式会社 シーンを検索する方法及びその装置
AU4521201A (en) * 1999-12-10 2001-06-25 Jerry W. Lennon Customer image capture and use thereof in a retailing system
EP1177691B1 (en) 2000-03-13 2011-01-26 Sony Corporation Method and apparatus for generating compact transcoding hints metadata
US6611845B1 (en) 2000-07-21 2003-08-26 International Business Machines Corporation Method and system for storing and managing sets of objects
GB0029880D0 (en) * 2000-12-07 2001-01-24 Sony Uk Ltd Video and audio information processing
US7295755B2 (en) 2001-06-22 2007-11-13 Thomson Licensing Method and apparatus for simplifying the access of metadata
US7882510B2 (en) * 2003-08-06 2011-02-01 Microsoft Corporation Demultiplexer application programming interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001291323A (ja) * 2000-03-31 2001-10-19 Sony Corp 記録装置及び方法、再生装置及び方法並びに情報処理装置及び方法

Also Published As

Publication number Publication date
KR20060073921A (ko) 2006-06-29
AU2003279867A1 (en) 2005-05-19
WO2005043263A1 (en) 2005-05-12
US8165449B2 (en) 2012-04-24
CN1826566A (zh) 2006-08-30
US20050076039A1 (en) 2005-04-07
CN100517151C (zh) 2009-07-22
EP1668434A1 (en) 2006-06-14

Similar Documents

Publication Publication Date Title
JP2007521695A (ja) Dvメタデータの抽出
US7937487B2 (en) Media scrubbing using a media processor
US7743037B2 (en) Information processing apparatus and method and program
CN102084338B (zh) 用于多平台非线性视频编辑系统的新型媒体文件
US7783686B2 (en) Application program interface to manage media files
US20050246375A1 (en) System and method for encapsulation of representative sample of media object
JP2001306581A (ja) ミドルウェアおよびミドルウェアを用いたメディアデータ視聴機器
JP2002351878A (ja) デジタルコンテンツ再生装置、データ取得システム、デジタルコンテンツ再生方法、メタデータ管理方法、電子透かし埋め込み方法、プログラム及び記録媒体
CN101154427B (zh) 记录和再现装置及记录和再现方法
US20170084309A1 (en) Video file creation device and video file creation method
KR20080019013A (ko) 저속 검색 저장 장치로부터의 그래픽 검색
Hunter et al. Implementing preservation strategies for complex multimedia objects
JP2006163604A (ja) 記憶装置およびコンピュータ読取り可能な記録媒体
CN100545842C (zh) 服务器设备、数据处理方法、程序、及通信方法
CN106790558B (zh) 一种影片多版本整合存储和提取系统
US8046341B2 (en) Information processing apparatus for reproducing metadata and method, program, and recording medium
JP2004334992A (ja) 記録装置及び再生装置
US8014883B2 (en) Templates and style sheets for audio broadcasts
WO2004112032A1 (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2006202301A (ja) 記憶装置およびコンピュータ読取り可能な記録媒体
RU2351002C2 (ru) Программный интерфейс приложения демультиплексора
KR20050038451A (ko) 대화형 광디스크의 부가 오디오 파일 관리 및 재생방법
JP2006079133A (ja) 情報処理装置および方法、プログラム格納媒体、並びにプログラム
JP3833192B2 (ja) 情報作成装置および方法、並びにプログラム
de Moura Gomes Media asset management in broadcasting: New approaches to enable the effective management of physical resources and media objects

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100608