JP4282232B2 - メディア・データ伝送のための方法および装置 - Google Patents

メディア・データ伝送のための方法および装置 Download PDF

Info

Publication number
JP4282232B2
JP4282232B2 JP2000540645A JP2000540645A JP4282232B2 JP 4282232 B2 JP4282232 B2 JP 4282232B2 JP 2000540645 A JP2000540645 A JP 2000540645A JP 2000540645 A JP2000540645 A JP 2000540645A JP 4282232 B2 JP4282232 B2 JP 4282232B2
Authority
JP
Japan
Prior art keywords
data
data sequence
media
related data
time related
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.)
Expired - Lifetime
Application number
JP2000540645A
Other languages
English (en)
Other versions
JP2003526227A (ja
JP2003526227A5 (ja
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2003526227A publication Critical patent/JP2003526227A/ja
Publication of JP2003526227A5 publication Critical patent/JP2003526227A5/ja
Application granted granted Critical
Publication of JP4282232B2 publication Critical patent/JP4282232B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/4143Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4381Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

【0001】
(発明の分野)
本発明は、メディア・データの時間に関係したシーケンスを伝送のために準備する方法および装置に関し、さらに詳細には、このようなメディア・データのパケット化伝送に関する。
【0002】
(導入および背景)
AIFFなどのオーディオ形式、AVIなどのビデオ形式、およびRealMediaなどのストリーミング形式といった多種多様なファイル構造が、時間ベースのメディアを記憶するために現在使用されている。このようにファイル構造が様々である1つの理由は、それらの対象および適用性が様々であるからである。これらの形式のいくつかは、十分に比較的広く受け入れられ、適用分野が広く、ある程度実装が簡単であり、したがって、コンテンツの送達のためだけでなく、交換形式として使用することができる。こうした一般的な形式の中で第一に挙げられるのは、QuickTimeファイル形式である。これは現在、時間ベースのデータを供給するウェブ・サイトの大部分、プロフェッショナル環境も含めたオーサリング環境の大部分、およびマルチメディアCDROMタイトルの大部分で使用されている。
【0003】
QuickTimeのメディア層は、時間ベースのマテリアル(ビデオやオーディオなど)を中心とする一般的なマルチメディア・データの効率的な表示および管理をサポートする。このメディア層では、メディア情報の記憶および交換の形式として、QuickTimeファイル形式を使用している。この層のアーキテクチャ能力は、一般に現行の実施態様より広範であり、このファイル形式は、現行のQuickTimeの実施態様が現在必要としているより多くの情報を表現することができる。
【0004】
一般に同期メディアのローカルなランダム・アクセスをサポートするように設計されるAVIなどの形式とは異なり、QuickTimeは、データ、関係、および一般的なマルチメディアの提示のタイミングをシステムが管理することができるようにする。詳細には、QuickTimeファイル形式は、一般的な時間ベースのストリームの時間的な挙動を表すための構造、つまりネットワーク・パケットの時間ベースの放出、ならびにマルチメディア・データの時間ベースのローカルな提示をカバーする概念を有する。
【0005】
現行のQuickTimeファイル形式は、Apple Computer社によって1996年5月のファイル形式仕様に公に記載されており、これはQuickTimeのサイト<http://www.apple.com/quicktime>で見ることができる。
【0006】
QuickTimeファイル形式の1つの側面として、メディア・データの物理構造(ディスク・レコード中のレイアウト)が、そのファイルについての論理構造から独立しており、かつそれによって記述されるという概念がある。このファイルは、「ムービー」メタ・データのセットによって完全に記述される。このメタ・データは、実際のメディア・データについての宣言的、構造的、および時間的な情報を提供する。
【0007】
メディア・データは、記述データ(「ムービー」メタ・データ)と同じファイル中にあることも、その他の1つまたは複数のファイル中にあることもある。1つのファイルに構造化されたムービーは一般に「フラット」と呼ばれ、独立型である。非フラット・ムービーを構造化して、その他のファイル中のメディア・データの一部または全てを参照することもできる。
【0008】
したがって、この形式は一般に、様々な応用分野での最適化に適している。例えば、編集(合成)するときには、編集が適用され、メディアが再度順序づけされるにつれてデータを再度書込みする必要がなく、メタ・データ・ファイルを拡張し、時間的マッピング情報を調整することができる。編集が完了すると、ローカルまたはネットワーク・アクセスのために、関連するメディア・データおよびメタ・データを単一のインタリーブ型の最適化されたファイル中に再度書込みすることができる。この構造化ファイルおよび最適化されたファイルはともに有効なQuickTimeファイルであり、どちらも検査、再生、および再加工することができる。
【0009】
構造化(「非フラットの」)ファイルを使用することにより、同じ基本メディア・データを任意回数の提示で使用および再使用することが可能となる。以下で分かるように、供給するときにもこれと同じ利点がある。
【0010】
編集および供給のいずれにおいても、これによって、その他のいくつかのファイルをメディア・データをコピーせずにムービーの一部分として扱うことが可能となる。したがって、編集および供給を、Sun Microsystemの「au」オーディオ形式やAVIビデオ形式などのファイルから直接行うことができ、これらの形式の可用性が大幅に拡大される。
【0011】
QuickTimeファイルは、アトムと呼ばれるオブジェクトのセットに分割される。各オブジェクトはアトム・ヘッダから開始し、これは下記のようにそのサイズおよびタイプを宣言する。
class Atom {
int(32) size;
char type[4];
byte contents[];
}
【0012】
サイズは、サイズおよびタイプのヘッダ・フィールドを含めて、バイトで表される。タイプ・フィールドは4つの文字(通常は印刷可能)であり、容易なドキュメンテーションおよび識別を可能にする。タイプ・フィールドの後のオブジェクト中のデータは、フィールド、または含まれるオブジェクトのシーケンス、あるいはその両方になることがある。
【0013】
したがって、ファイルは、下記のように単純にオブジェクトのシーケンスである。
class File {
Atom[];
}
【0014】
2つの重要な最上位のオブジェクトは、メディア・データ(mdat)およびメタ・データ(moov)である。
【0015】
メディア・データ・オブジェクトは、実際のメディア(例えば音声サンプルのシーケンス)を含む。それらの形式はファイル形式によって制約されず、それらは通常はオブジェクトではない。それらの形式はメタ・データ中に記述され、物理的にそれらと隣接するいかなる宣言によっても記述されない。したがって、例えばモーションJPEGのみからなるムービーでは、JPEGフレームは、余分なヘッダを介在させずに連続的にメディア・データ中に記憶される。メディア・データ・オブジェクト内のメディア・データは、複数のチャンクに論理的に分割されるが、メディア・データ内に明示的なチャンク・マーカは存在しない。
【0016】
QuickTimeファイルがその他のファイル中のメディア・データを参照するときには、このようなメディア・データ・ファイルはメディア・オブジェクトのコンテンツのようにフォーマットすることができるので、これらの「2次」ファイルをQuickTime仕様に従ってフォーマットする必要はない。QuickTime形式は、メディア・データと物理的に隣接する任意のヘッダまたはその他の情報を必ずしも必要としないので、メディア・データを「外部」ヘッダを含むファイル(例えばUNIX「au」ファイルやAVIファイル)にすること、およびQuickTimeのメタ・データが適当な宣言情報を含み、「外部」ファイル中のメディア・データを参照することが可能である。このようにして、QuickTimeファイル形式を使用して、異種形式の現行のマテリアルの本体をコピーせずに更新することができる。QuickTimeファイル形式は、既成の形式であり、またその他の既成の形式とともに動作し、その他の既成の形式を含み、その他の既成の形式を提示する(bring forward)こともできる。
【0017】
空きスペース(例えば編集操作によって削除された)も、オブジェクトによって記述することができる。空きスペース・オブジェクトを含むファイルを読み取るソフトウェアは、このような空きスペース・オブジェクト、ならびにそれが理解できない任意レベルのオブジェクトを無視しなければならない。これにより、新しいオブジェクトを導入することによって、実質的に任意のレベルでファイルの拡張が可能となる。
【0018】
主要なメタ・データはムービー・オブジェクトである。QuickTimeファイルは、下記のような、容易に位置決定することができるように通常はそのファイルの冒頭または末端にあるムービー・オブジェクトを正確に1つ有する。
class Movie {
int(32) size;
char type[4] = 'moov';
MovieHeader mh;
contents Atom[];
}
【0019】
ムービー・ヘッダは、提示全体についての基本情報(その作成日付や、全体のタイムスケールなど)を提供する。含まれるオブジェクトのシーケンス中には、通常は、下記のような、時間的に提示されるデータを記述するトラックが少なくとも1つある。
class Track {
int(32) size;
char type[4] = 'trak';
TrackHeader th;
contents Atom[];
}
【0020】
トラック・ヘッダは、そのトラックについての比較的基本的な情報(そのIDやタイムスケールなど)を提供する。トラックに含まれるオブジェクトは、その他のトラックへの参照(例えば複雑な合成のため)、または編集リストとなることもある。この含まれるオブジェクトのシーケンス中には、トラックが再生されるときに提示されるメディアを記述するメディア・オブジェクトがあることがある。
【0021】
メディア・オブジェクトは、トラックが必要とする提示に関する宣言(例えば、それがサンプル・オーディオ、またはMIDI、あるいは3Dシーンについての配向情報である)を含む。このトラックのタイプは、下記のようなそのハンドラによって宣言される。
class handler {
int(32) size;
char type[4] = 'hdlr';
int(8) version;
bit(24) flags;
char handlertype[4]; --mhlr for media handlers
char handlersubtype[4] --vide for video, soun for
audio
char manufacturer[4];
bit(32) handlerflags;
bit(32) handlerflagsmask;
string componentname;
}
【0022】
メディア情報内にも同様に、(メディア・データをフェッチする)データ・ハンドラについてのハンドラ宣言、およびどのファイルが関連するトラックについてのメディア・データを含むかを定義するデータ情報宣言がある。この宣言を使用することにより、複数のファイルにまたがるムービーを構築することができる。
【0023】
最低レベルでは、下記のような、トラックの時間的アスペクトをファイルに記憶されたデータと関係づけるサンプル・テーブルが使用される。
class sampletable {
int(32) size;
char type[4] = 'stbl';
sampledescription sd;
timetosample tts;
syncsampletable syncs;
sampletochunk stoc;
samplesize ssize;
chunkoffset coffset;
shadowsync ssync;
}
【0024】
このサンプル記述は、メディアについての情報(例えばビデオで使用される圧縮形式)を含む。時間/サンプル・テーブルは、トラック中の時間を、その時間に表示すべきサンプルと(索引によって)関係づける。同期サンプル・テーブルは、これらのうちのどれがその他のサンプルに依存しない同期(キー)サンプルであるかを宣言する。
【0025】
サンプル/チャンク・オブジェクトは、下記のように、所与のサンプルについてのメディア・データ、およびその索引が与えられたその記述をどのようにして発見するかを宣言する。
class sampletochunk {
int(32) size;
char type[4] = 'stsc';
int(8) virsion;
bits(24) flags;
int(32) entrycount;
for (int i=0; i<entrycount; i++) {
int(32) firstchunk;
int(32) samplesperchunk;
int(32) sampledescriptionindex;
}
}
【0026】
サンプル・サイズ・テーブルは、各サンプルのサイズを示す。チャンクオフセット・テーブルは、各チャンクの冒頭の、その包含するファイル中へのオフセットを示す。
【0027】
上述の構造をたどって所与の時間表示するための適当なデータを発見することはかなり簡単であり、一般に索引付けおよび追加(adding)を必要とする。同期テーブルを使用すると、その前の同期サンプルにバックアップすること、および「静かに」累算したデルタを所望の始点にロール・フォワードすることも可能である。
【0028】
図1は、1つのトラックを有する単純なムービーの構造を示している。同様の図は、様々なオブジェクトのフィールドについての詳細な記述とともに、QuickTimeファイル形式の文書に見ることができる。QuickTimeのアトム(オブジェクト)は、ここでは灰色のボックス中のそれらの活字、およびその上の記述名で示してある。このムービーは、単一のビデオ・トラックを含む。ビデオの諸フレームは、同じファイル中にあり、単一のデータのチャンク中にある。「チャンク」は単なる論理上の構成体であり、オブジェクトではないことに留意されたい。チャンク内には、通常はそれら本来の形態で記憶されるビデオのフレームがある。ビデオ・フレーム自体の中には、ヘッダまたはフィールドは必要ない。
【0029】
図2は、オーディオ・トラックおよびビデオ・トラックを両方とも備えた独立型ファイルを示す図である。分かりやすくするために、ここではより少数のアトムを示してあり、トラックからメディア・データ中に向かうポインタは、言うまでもなく、タイミング情報を含む通常のサンプル・テーブル宣言である。
【0030】
QuickTimeファイル形式は、下記を含めたいくつかの利点を有する。
1)サイズおよびビット・レートについてのスケーラビリティ。メタ・データがフレキシブルだが小型である。これにより、(例えばインターネット上の)小さなダウンロード・ムービー、ならびにいくつかのハイエンド編集システムについての基礎の提供に適するようになる。
2)物理構造が論理的および時間的構造から独立していること。これにより、そのファイルが有することになる用途に応じて様々に物理構造を最適化することが可能となる。詳細には、これは、単一のファイル形式で、オーサリングおよび編集、ダウンロードまたはCDROMへの配置、ならびにストリーミングに適することを意味する。
3)ファイル形式が、その形式が設計された時点では未知であった多くのタイプも含めて、非常に幅広い種類のコーデック・タイプおよびトラック・タイプを扱うことができることが分かっていること。上向き互換性がある形で発展することができるというこの分かっている能力は、記憶形式の成功に必須である。
【0031】
QuickTimeファイル形式では、スケーラブルな、または階層化されたコーデックをいくつかの方法で扱うことができる。スケーラビリティをサポートするストリーミング・プロトコルでは、層または帯域幅のしきい値をサンプルにタグ付けし、それらのサンプルの伝送に適するようにすることができる。
【0032】
選択肢(alternative)(例えば様々な自然言語音声トラック)のセットを形成するトラックには、1つだけが再生のために選択されるようにタグ付けすることができる。同じ構造を使用して、ストリーミングのための選択肢を選択する(例えば言語選択)ことができる。この能力については、QuickTimeファイル形式にさらに詳細に記述されている。
【0033】
QuickTimeがムービーまたはトラックを表示するときには、適当なメディア・ハンドラが特定の時間についてのメディア・データにアクセスする。メディア・ハンドラは、要求されたデータを取り出すために、データ・ストリームを正しく解釈しなければならない。例えば、ビデオ・メディアに関しては、メディア・ハンドラは、通常はいくつかのアトムを横断して、所与のメディア時間についてのサンプルの位置およびサイズを発見する。メディア・ハンドラは、
1.メディア時間座標系中の時間を決定すること、
2.時間/サンプル・アトムを検査して、指定された時間についてのデータを含むサンプルの番号を決定すること、
3.サンプル/チャンク・アトムを走査して、どのチャンクが当該のサンプルを含むかを発見すること、
4.そのチャンクへのオフセットを、チャンク・オフセット・アトムから抽出すること、ならびに
5.サンプル・サイズ・アトムを使用して、そのチャンク内のオフセットおよびサンプルのサイズを発見すること
を実行することができる。
【0034】
QuickTimeファイルまたはその他のタイプの時間に関係したメディア・データのシーケンスを、コンピュータ・ネットワーク(例えばインターネット)と関連づけることができるデータ通信媒体を介して伝送することがしばしば望ましい。多くのコンピュータ・ネットワークでは、ネットワーク中に伝送されるデータは、一般にパケット形態をとらなければならない。通常は、時間に関係したメディア・データのシーケンスは、ネットワークを介した伝送に適したパケット化形式にはなっていない。例えば、QuickTime形式のメディア・データ・ファイルはパケット化形式ではない。したがって、ストリーミング・データと呼ばれることもあるデータを収集して、ネットワークを介して伝送するためのパケットにする必要がある。
【0035】
時間に関係したメディア・データのシーケンスをネットワークを介して伝送する問題に対処する従来の1つの手法は、ハイパーテキスト転送プロトコル(HTTP)などのネットワーク・プロトコルまたは伝送プロトコルを使用して、ネットワークを介してメディア・ファイルを送信するものである。したがって、メディア・ファイル自体が、1つのコンピュータ・システムから別のコンピュータ・システムにネットワークを介して送信される。しかし、受信側コンピュータ・システムでメディア・ファイルを保存したいという要望がないこともある。すなわち、例えば受信側コンピュータ・システムがネットワーク・コンピュータ、または記憶容量の少ないコンピュータである場合には、受信側コンピュータ・システムでメディア・ファイルが受信され、視聴されたときに、その受信側コンピュータ・システムのユーザが、そのファイルのコピーを記憶することを望まないこともある。
【0036】
ネットワークを介してパケットで伝送するためにどのようにしてデータを収集するかという問題を解決するもう1つの代替手法は、ある特定の伝送プロトコルについてネットワーク・プロトコル・データ・ユニットをそのファイル中に含むファイルを準備するものである。ある意味では、このようなファイルは、その特定の伝送プロトコルに従って伝送されることになるのと基本的に同じ形式で記憶されたパケット化ファイルであると考えることができる。この操作を実行するには、一般に、特定のデータ伝送速度の特定のネットワーク・プロトコルおよび特定のメディア・ファイル形式についてのパケット化形態で、ファイルを記憶することが必要である。したがって、特定のデータ伝送速度の様々な伝送プロトコルそれぞれについて、ファイルは本質的にそのパケット化形態で複製されることになる。こうしたファイルの形態が固定されると、それらの適用性/互換性が制限され、それらのファイルをローカルに見ることが困難になることがある。したがって、このような手法は、様々に異なるデータ伝送速度の様々な伝送プロトコルでファイルを提供しようと試みる際の記憶要件を大幅に増加させることがある。さらに、この代替の従来の手法に従って生成された各パケット化ファイルは、一般に特定のメディア・ファイル形式に限定され、したがって、同じメディア・オブジェクト(例えばデジタル・ムービー)についてのその他のメディア・ファイル形式は、通常は送信側コンピュータ・システム上でパケット化され、記憶される。
【0037】
時間に関係したメディア・データのシーケンスをどのようにしてストリーミングするかという問題を解決するさらに別の手法は、伝送側システムで必要となったときに、望ましい特定の伝送プロトコルに従ってメディア・データのパケット化を実行するものである。この処理は、多くの場合に、比較的長い時間を必要とし、したがって伝送側システムの性能を低下させることがある。
【0038】
したがって、時間に関係したメディア・データのシーケンスを伝送するための改良された方法および装置が実現されることが望ましい。
【0039】
(発明の概要)
本発明は、時間に関係したデータのデータ通信媒体を介した伝送を可能にする情報に関するものである。一実施態様では、データのセットは、時間に関係したメディア・データのシーケンスを表すパケットのセットをデジタル処理システムに生成させる少なくとも1つの命令を含む。このパケットのセットは、伝送プロトコルに関連する。このデータのセットは、時間に関係したメディア・データのシーケンスに関連する、時間に関係したデータのシーケンスを含む。
【0040】
(詳細な説明)
本発明は、例えばビデオ、オーディオ、及びビデオとオーディオなどを含む時間に関係したメディア・データのシーケンスの、コンピュータ・ネットワーク中など通信メディアを介した伝送、特にそのパケット化伝送を可能にする方法および装置を提供するものである。
【0041】
本発明の一実施形態では、デジタル処理システムは、時間に関係したメディア・データのシーケンスをある伝送プロトコルに従ってどのようにして伝送するかを示すデータのセットを作成する。通常は、このデータのセットは、デジタル処理システムに結合された記憶デバイスに記憶される。さらに、このデータのセットは、時間に関係したメディア・データのシーケンスに関連する、時間に関係したデータのシーケンスである。
【0042】
本発明は、コンピュータ可読媒体に記憶される実行可能コンピュータ・プログラム命令として完全に実装することも、ソフトウェアとハードウェアの組合せとして実装することも、あるいはいくつかの実施形態では完全にハードウェアとして実装することもできる。通常は、ネットワークに結合されたサーバ・コンピュータ・システムが、ヒント・トラックと呼ばれることがあるデータのセットを作成し、このヒント・トラックをそのサーバ・コンピュータ・システムに結合された記憶デバイスに記憶することになる。クライアント・コンピュータ・システムがメディア・データ・ファイルの提示(例えばそれらを見るまたは聞くこと、あるいは視聴すること)を要求すると、サーバ・システムは、ヒント・トラックを使用して、クライアント・コンピュータ・システムに伝送するためにメディア・データをどのようにしてパケット化するかを決定する。本発明は時間に関係したメディア・データのシーケンス全般に適用可能であり、QuickTimeは、この全般的な適用可能性の一例として本明細書に表したものであることを理解されたい。したがって、本発明は必ずしもQuickTimeに限定されるわけではないものとする。
【0043】
図3は、本発明による方法の一例を示す図である。図3に示す方法300は、伝送することが望ましい特定のメディア・データについてのメディア・ファイル形式を決定するステップ301から開始する。ステップ303で、使用することが望ましい1つまたは複数の特定の伝送プロトコルも決定される。ただし、ステップ301および303は、例えば常に同じメディア・ファイル形式が同じ伝送プロトコルを使用して伝送される場合には省略可能である。
【0044】
ステップ305で、サーバ・コンピュータ・システムなどのデジタル処理システムが、メディア・ファイル中の時間に関係したメディア・データのシーケンスをパケット化するためのヒントを作成し、記憶する。別法として、1つのコンピュータ・システムがヒントを作成し、後に伝送プロセスで使用するためにそれらを記憶する別のシステム(サーバ・コンピュータ・システムなど)に提供することもできる。パケット化により、ステップ301で決定された所望の伝送プロトコルに従うネットワークまたは通信媒体を介した伝送が可能となる。本発明の一実施形態では、ヒントは、その他のトラックのメディア・データを参照するが一実施形態ではそれとは別個の、時間に関係したヒントのシーケンスのトラックとして記憶される。本発明の一実施形態では、ヒントのトラックは、それが参照するメディア・データとは別に記憶することができる。したがって、ヒントのトラックは、ヒントのトラックが参照するメディア・データを含むもう1つのファイルとは別個のファイルに記憶することも、そのメディア・データを含むファイル中の、実際のメディア・データを含むデータ領域から分離した別個のヒント領域に記憶することもできる。本発明の一実施形態では、ヒント・トラックまたはその一部分は、サーバが実行可能命令として解釈することがあり、この実行可能命令によって、サーバは、通常は時間ベースのメディア・データである(必ずしもそうであるわけではない)時間に関係したデータのシーケンスをパケット化する。本発明の一実施形態では、ヒントは、伝送側デジタル処理システムに結合された記憶デバイスに記憶される。
【0045】
ステップ307で、ヒントに従ってパケット化されたデータが、サーバ・コンピュータ・システムなどの伝送側システムから受信側システムに伝送される。このメディア・データは、そのメディア・データをヒントに従ってパケット化することによって伝送される。本発明の代替の一実施形態では、サーバ・コンピュータ・システムは、ヒントを使用せず、代替のパケット化プロセスによってメディア・データを送信することにすることもできる。
【0046】
ステップ309で、受信側システムが、メディア・データによって表されるメディア・オブジェクトを提示する。通常は、この提示(メディア・オブジェクトの視聴であることも、単にメディア・オブジェクトを見るだけ、または聞くだけであることもある)は、パケット化されたデータが受信側システムで受信されるにつれて実行される。パケット化されたデータは、本発明の一実施形態では受信側システムに記憶することができる(必ずしもそのようにする必要はない)。したがって、提示が終了した後で受信側システムにローカル・コピーが存在しないという点で、データの提示は短命(ephemeral)である。別の実施形態では、メディア・オブジェクトの提示は、そのメディア・オブジェクトを表すメディア・データについてのヒントを作成した後で、サーバ・システム上で行うことができる。本発明の一実施形態では、メディア・データは、ヒントに従ってパケット化するために、必ずしも(再)フォーマットやコピーなどが行われるわけではない。
【0047】
ステップ311で、受信されたメディア・ファイルが受信側システムに記憶されている場合には、受信側システムは、任意選択でそのメディア・ファイルを再アセンブルすることができる。図3に示す方法の様々なステップは、上記で図示および記述した順序とは異なる順序で実行することも、それらのステップの一部を同時に実行することも、あるいはその両方を合わせて行うこともできることを理解されたい。例えば、一実施形態ではステップ309およびステップ311は、並行して行われる。
【0048】
本発明の一実施形態による、QuickTimeを用いた特定の実施態様について次に述べる。本発明の一実施形態では、そのファイルにローカルに(例えばサーバやジェネレータなどで)見ることも、QuickTimeムービー内でネットワークを介してストリーミングすることもできる提示が行われる。一般に、ストリーミング・サーバ(または別のシステム)は、ストリーミングするデータ・ユニット、それらの組成およびタイミングについての情報を有さなければならない。このような情報は通常は時間的なものであるので、トラック中に記述することができる。サーバは、例えば提示を見るために使用されることになるのと同じ索引付け操作を使用することによって、パケット化を実行し、プロトコル情報を決定することができる。
【0049】
サーバに対する命令を含むトラックは、パケットを形成および伝送するプロセス中にサーバに指示を出すデータのセットを表すので、「ヒント」トラックと呼ばれることがある。QuickTimeファイル形式は、ネットワークを介したメディア・データのストリーミング、ならびにローカルな再生をサポートする。プロトコル・データ・ユニットを送信するプロセスは、時間ベースのデータの表示と同様に時間ベースであり、したがって時間ベースの形式で適切に記述される。ストリーミングをサポートするQuickTimeファイルまたは「ムービー」は、ストリーミングするデータ・ユニットについての情報を含む。この情報は、「ヒント」トラックと呼ばれるファイルの追加トラックに含まれる。
【0050】
ヒント・トラックは、パケットの形成を助ける、ストリーミング・サーバ(またはその他のデジタル処理システム)に対する命令を含む。これらの命令は、サーバが(例えばヘッダ情報を)送信する、またはメディア・データのセグメントを参照するための即値データを含むことができる。本発明の一実施形態では、編集または提示情報がローカルな再生のためにQuickTimeファイル中でコード化されるのと同じ方法で、命令がQuickTimeファイル中でコード化される。編集または提示情報の代わりに、特定のネットワーク・トランスポートを使用したストリーミングに適した方法でサーバがメディア・データをパケット化できるようにすることができる情報を提供することができる。
【0051】
本発明の一実施形態では、ローカルに再生されるか、いくつかの異なるトランスポート・タイプを介してストリーミングされるかに関わらず、同じメディア・データが、ヒントを含むQuickTimeファイル中で使用される。異なるトランスポート・タイプについての別個の「ヒント」トラックを同じファイル内に含むことができ、メディア自体の追加コピーを作成せずに、こうしたトランスポート・タイプの全てを介してメディアを再生することができる。さらに、特定のトランスポートについての適当なヒント・トラックを追加することによって、現行のメディアをストリーミングできるようにする。本発明の一態様によれば、メディア・データ自体を再キャストまたは再フォーマットする必要はない。
【0052】
したがって、ヒント・トラック中のサンプルは一般に、パケットを形成するための命令を含む。これらの命令は、サーバが(例えばヘッダ情報を)送信する、または別のトラック中のメディア・データのセグメントを参照するための即値データを含むことができる。
【0053】
本発明の一実施形態では、3レベル設計を利用し、下記のようになる。
1)メディア・データは、通常通りに再生や編集などを行うことができるネットワーク独立トラックのセットとして表される。
2)サーバ・ヒント・トラックについての共通の宣言および基礎構造がある。この共通の形式はプロトコル独立型であるが、どのプロトコルがサーバ・トラック中に記述されるかという宣言を含む。
3)伝送することができる各プロトコルについて、特定のサーバ・ヒント・トラックの設計がある。これらの設計は全て、同じ基本構造を使用する。例えば、RTP(インターネット用)およびMPEG−2トランスポート(同報通信用)、あるいは新しい標準の、またはベンダに特定のプロトコルについての設計がある。
【0054】
本発明の一実施形態では、ヒント・トラックの指示でサーバから送信される結果生じるストリームは通常のストリームであり、必ずしもQuickTime情報のトレースを含まない。本発明のこの実施形態では、QuickTime、あるいはその構造または宣言スタイルが、必ずしも伝送媒体(例えばネットワーク・ケーブル)上のデータ、または復号側ステーション中にある必要はない。例えば、RTP下でストリーミングされたH.261のビデオおよびDVIオーディオを使用したファイルは、本発明の一実施形態では、それらのコーディングをRTP中にパックするためのIETF仕様に完全に準拠したパケット・ストリームを生じることができる。
【0055】
本発明の一実施形態では、ヒント・トラックは、提示がローカルに見られる時にヒント・トラックが基本的に受信側システムに無視されるように構築され、フラグを立てられる。
【0056】
一実施形態では、例えばビデオやオーディオなどを含むことができる時間に関係したメディア・データのシーケンスを、デジタル処理システムによってパケット化し、その後、同じデジタル処理システム上で提示することができる。さらに、パケット化を短命にし、提示、記憶、読取りなどが行われている時間に関係したシーケンスも「実行中(on the fly)」にパケット化されるようにすることもできる。一実施形態では、ヒントは、コピーやフォーマットなどが行われていないメディア・データを参照することができる。例えば、ヒントが参照するメディア・データは、オリジナルの形式で読取り専用メモリなどに記憶することができる。
【0057】
一実施形態では、パケット化を実現する同一のヒント・ルーチンが、パケット化を実行するにつれてメディアも提示する。本発明の代替実施形態では、時間に関係したメディアのパケット化ファイルは、ヒント・トラックに従って生成し、例えば後に伝送するために記憶することができる。
【0058】
図4は、本発明の一実施形態による、メディア・データをトランスポートするためのヒント・トラックの利用方法を示している。図4では、ヒント・トラック401は、メディア・トラック403に対して示してある。どのようにしてRTPパケットを形成するかを記述するヒント・トラック・サンプル405などの各ヒント・トラック・サンプルはヘッダを含むことができ、関連するメディア・トラック、この場合はビデオ・トラック403から、いくつかのデータを参照することができる。図4に示す実施形態では、メディア・データ(ビデオ・フレーム)およびRTPヒントはインタリーブされており、関連するメディア・ファイルを比較的容易に読み取ることができるようになっている。この例では、各フレームは単一のRTPパケットに組み込まれるものとして示してある。言うまでもなく、必要なときには、フレームをいくつかのパケットに分割することもできる。逆に、望ましい場合には、複数のフレームを単一のパケット中に置くこともでき、これは一般にオーディオ・データについて実行される。
【0059】
上記で論じたように、上述の論理構造が物理構造を暗黙に定義する必要はない。メタ・データはメモリにキャッシュすることができ、ヒント・トラック・サンプルは、(図4に示すように)それらが参照するメディア・サンプルと物理的にインタリーブすることができる。
【0060】
別法として、現行の提示中のメタ・データおよびメディア・データを参照および増補する、ヒント・トラックを含むメタ・データおよびメディア・データの新しいセットを書き込むこともできる。図5は、本発明の一実施形態による、別個のファイル中のメディア・データを参照するためのヒント・トラックの利用方法を示している。図5には、それ自体のメタ・データをそれぞれ備えた2つのムービー・ファイル502および504が示してある。第1のムービー・ファイル502はビデオ・トラックを含む。第2のムービー・ファイル504は、ビデオ・トラックおよびヒント・トラックを両方とも含むが、そのメタ・データは、そのビデオ・トラックについてのメディア・データが第1のムービー・ファイル502中にあることを宣言している。したがって、ムービー・ファイル504に関連するヒントも、第1のムービー502中のメディア・データを指している。
【0061】
本発明の一実施形態では、メディア・ファイルは、複数のプロトコルについてのパケット化ヒント・トラックを含むことができる。したがって、各トラックは、ヒント・トラックが適しているプロトコルの宣言(および適当である場合にはプロトコルのパラメータ)を含むことができる。言うまでもなく、これらのトラックは全て、ファイル中の基本メディア・トラックからメディア・データを参照することができる。プロトコル独立性および拡張可能性を求める要望は、記載の方法で満たすことができる。
【0062】
本発明の一実施形態では、ヒント・トラックは、メディア・トラック中の全てのデータを使用する必要はない。ヒント・トラックは、帯域幅のしきい値に達するため、またはその他の理由のために、(例えば一部のビデオ・フレームを省略することによって)データのサブセットを使用すればよい。同じプロトコルについて複数のヒント・トラックを設けることができるので、同じ基本メディア情報の様々な速度の異なるサブセットを提供することができる。したがって、本発明は、従来の方法および装置に優る改善されたスケーラビリティをもたらすことができる。
【0063】
ヒント・トラック自体およびQuickTimeメタ・データは、一実施形態ではQuickTimeファイル中になければならないが、基本メディアは、QuickTimeが適切にインポートおよび参照することができる任意のファイル・タイプ中に残ることができることを強調しておく。本発明の一実施形態では、ムービー・ファイル中のメタ・データは、メディア・データが別のファイル中にあることを宣言するデータ参照を含むことができる。したがって、サンプル・テーブルのオフセットおよびポインタが、この「外部」ファイル中のデータを指示することもある。したがって、本発明の一実施形態によれば、「au」オーディオ・ファイルや「AVI」オーディオ/ビデオ・ファイル、MIDIファイルなど、現行のレガシー形式を、基本メディア・データをコピーまたは再フォーマットする必要なく、ストリーミングすることができる。基本メディア・データが書き込まれず、単に別個のファイル中のQuickTime宣言およびヒント情報で増補されるだけであるので、基本メディア・データを、CDROMなど読取り専用機械可読媒体上に与えることもできる。
【0064】
本発明の一実施形態では、ヒント・トラックは、オフライン計算の結果を具現化し、通常は、パケット化、および必要なら多重化をサポートするための情報をサーバに提供するように最適化される。
【0065】
例えばRTP(IETF標準の実時間プロトコル)およびMPEG−2トランスポートについてのヒントの例を、付録A〜Cに示す。
【0066】
本発明の一実施形態では、単一のファイルで、過度なスペースのオーバヘッドなしで、複数のプロトコル、またはそれらのプロトコルの複数の異なるパラメータ化についてのヒント・トラックをサポートすることができる。新しいプロトコルおよびそれらに関連するヒント・トラックは、現行のプロトコルに依拠するシステムを混乱させることなく、設計することができる。したがって、本発明は、少なくとも一実施形態では、プロトコル中立的(protocol−neutral)である。
【0067】
QuickTimeファイル形式では、メタ・データを更新またはコピーおよび増補することによって、トラックをムービーに追加することができる。メディア・データがメタ・データとは別のファイル中にある、または最適化されたインタリーブが不要である場合には、これは比較的簡単かつ効率的な操作となることができる。
【0068】
本発明の一実施形態では、トラックを1つしか含まず、望ましい場合にはオリジナル中のメディア・データを参照することができる新しいムービー・メタ・データのセットを構築することによって、トラックを抽出することができる。
【0069】
例えば、本発明の一実施形態では、その他のオーディオ・トラックのセットの代替としてマークされた新しいオーディオ・トラックを追加することができる。それが言語コード(例えばフランス語やタガログ語)でもマークされている場合には、提示時に適当なトラックを選択することができる。
【0070】
SMPTE時間コード・トラックは、本発明の一実施形態による、必要が生じたときに提示、追加、または除去することができるエレメンタリ・ストリームの一例である。
【0071】
本発明の一態様によれば、ヒント・トラックは、現行のサーバまたはローカルな再生についての互換性の問題を引き起こすことなく、新しいプロトコルのための新しい形式の開発を可能にすることができる。さらに、そのファイル形式の寿命にわたって、後方互換性を維持しながら、新しいメディア・トラックを追加することもできる。
【0072】
本発明の一実施形態では、拡張可能性の領域としては下記が含まれる。
a)現在のQuickTimeファイル形式によってカバーされないメディア・タイプ(例えば実験室の機器の読み)について規定することができる新しいトラック・タイプ。
b)規定することができる現行のトラックについての新しい符号化タイプ(例えばビデオまたはオーディオのコーデック)。コーデックに特定の初期化情報についての明確な備えがある。
c)新しいプロトコルについて規定することができる新しいヒント・トラック・タイプ、およびメディア・データ自体についてスペースのオーバヘッドを招くことなく複数のプロトコルについてのヒント情報を含むことができるファイル。
【0073】
読取り専用媒体上の現行のコンテンツ(例えばCDROMやDVDなどに予めパッケージ化されたムービー)は、本発明とともに使用することができる。
【0074】
さらに、本発明の一態様によれば、様々な「外部」ファイル形式を使用することができる。例えば、本発明の一実施形態では、現行のコンテンツがQuickTime形式である、またはインポートすることができる場合には、コピーまたは再フォーマットする必要なく、それを編集およびストリーミングすることができる。
【0075】
本発明の一実施形態では、帯域幅のスケーラビリティを達成するためにコーデックがメディア・データのストライピングをサポートする場合には、これらのストライピングされた帯域幅は、複数のストリーム・トラックを使用して表すことができる。各トラックが異なる帯域幅を表すことができる。これらのトラックは、基本メディアの選択したサブセット中にグループ化することができる。
【0076】
本発明の一実施形態では、プロトコルが帯域幅のスケーラビリティをサポートする場合には、ヒント・トラック自体が、各プロトコル・データ・ユニット(ヒント・トラック中のサンプル)についての情報を含むことができる。情報は、それを超えるとプロトコル・データ・ユニットをネットワークに送達しなければならない帯域幅のしきい値を含むことができる。したがって、ヒント・トラックは、利用可能な帯域幅を高いまたは低いなどとして示し、かつ/あるいはデータ伝送の帯域幅に関する情報を示すことができる。
【0077】
本発明の一実施形態では、プロトコルが多重化プロトコル(例えばMPEG−2トランスポート)である場合には、異なるデータ・レートを達成するために異なるエレメンタリ・ストリーム・トラックのサブセットを使用する、異なるヒント・トラックを構築することができる。したがって、ビット・レートの低い伝送では、一部のトラックが完全に省略されることもある。
【0078】
本発明の一実施形態では、様々なコーデックを使用してベース・データを記録することが望ましい場合には、それらのトラックを選択肢のグループの形に形成し、1つだけを提示用に選択することができる。どのトラックを提示に使用するかを選ぶ選択は、通常はプロトコルに依存し、本明細書に記載のヒント・トラック手法を使用して達成することができる。
【0079】
本発明の一実施形態では、暗号化をメディア・ファイルに事前に適用することもできる。この場合には、暗号化されたデータは、(a)オリジナルのメディア・データにリンクされた新しいエレメンタリ・ストリーム(新しいトラック)(すなわちオリジナルのメディア・データは、不要となった場合に除去することができる)、あるいは(b)ヒント・トラック自体に記憶することができる。(b)の場合には、実行中に、ヒント・トラックが暗号化されていないエレメンタリ・ストリームからいかなるデータも抽出しないことが可能である。このように、暗号化によってメディア・データを変形することができるので、全てのメディア・データが、ヒント・トラックならびにストリーミング・パケット・プロトコル・データ・ユニット情報中にあることもある。
【0080】
組込み型オブジェクト・コンテンツ情報の一例として、ムービー全体および個々のトラックについてのIETFセッション記述情報を、RTPヒント・トラックについてのメタ・データ中に、ユーザ・アトムとして記憶することができる。
【0081】
本発明の一実施形態では、ファイル形式は、通常は、再生可能な形式のメディア・データ、およびストリーミング情報を両方とも含む。一実施形態では、メディア独立性、プロトコル独立性、およびメディアをローカルに提示する能力を保持しながら、比較的低いオーバヘッドでこの形式から直接ストリーミングすることができる。
【0082】
本発明の一態様によれば、ヒント・トラックは、コーデック、タイミング、およびパケット化についての詳細な知識を要約して、オフライン準備プロセスにすることができる。したがって、ヒント・トラックをたどってデータ・ストリームを生成することは比較的簡単であり、ストリーミングされているメディアについての特殊な知識は必要ない。したがって、本発明の一態様によれば、例えばデータ・コンテンツの詳細からサーバを切り離すことができる。
【0083】
本発明の一実施形態では、ヒント・トラックのセットを使用して、例えばネットワークPDUを、それらを送信すべき時系列中にディスク上の論理ディスク境界にレイアウトすることによってストリーミングのために直接最適化されたファイルを構築することができる。このようなファイルは、もはや一般的な提示となることはできないが、ストリーミングすることはできる。一実施形態では、ヒント・トラックを用いて作成されたパケット化ファイルを記憶し、例えば後にストリーミングのために最適化することができる。
【0084】
本発明の一実施形態では、外部ファイル形式をカプセル化することにより、メディア・データをその他の形式で保存しながら、依然としてQuickTimeで発行することができる。例えば、現行の形式は、適当なラッパを適用することによって新しいメディア・データ・ファイル中に直接カプセル化することも、そのまま残して、ヒント・トラックによってセグメントで、または全体として参照し、レガシー形式をコピーせずにストリーミングできるようにすることもできる。単一のムービーは、複数のレガシー形式から選択した断片(piece)を含むことができる。本発明は、ベース・メディア形式を制約しない。
【0085】
一般的に、取込み、オーサリングおよび編集、ダウンロードおよびストリーミングに及ぶ共通の形式は、一般にフレキシビリティを有する。マテリアルは、コピーまたは再フォーマットせずに、使用後に再加工する、または複数の方法で使用することができる。本発明の一実施形態では、標準的なエディタを使用してヒント・トラックを除去し、次いで編集が完了した後で再度ヒントを付ける(re-hinting)ことによって、ヒントの付いた(hinted)マテリアルを再加工および再使用することができる。
【0086】
ローカルに見るためにメディア・ファイルをダウンロードすることが望ましい場合には、その目的のために最適化されたインタリーブ型ファイルを構築することができ、別個の宣言ファイル中のストリーミング・メタ・データが、同じベース・メディア・データを参照する。したがって、このダウンロードはストリーミング情報を含まないことがあり、さらにメディア・データはストリーミング・サーバに一度しか存在することができない。
【0087】
論理構造を物理構造から分離することにより、ファイルの物理構造をアプリケーション(例えば編集する、ローカルに見る、ストリーミングする)に応じて様々に最適化することができる。
【0088】
各メディア・トラックについて複数のヒント・トラックが存在できるようにすることによって、本発明の一実施形態では、ファイルを、メディアの複数のコピーを必要とせずに、複数のプロトコルを介してストリーミングすることによって発行することができる。
【0089】
図6は、本発明の一実施形態による、メディア・データを処理することができるコンピュータ・システムのネットワークを示す図である。図6に示すように、いくつかのクライアント・コンピュータ・システムがインターネット622を介して互いに結合されており、そのうちの1つまたは複数が、図3に関連して上述した一実施態様の受信側システムを表す。「インターネット」という用語は、諸ネットワークのうちのあるネットワークを指すことを理解されたい。このようなネットワークでは、情報を交換するために、TCP/IPやATM、SNA、SDIなど、様々なプロトコルを使用することができる。インターネットの物理的接続、ならびにインターネットのプロトコルおよび通信手続きは、当業者には周知である。インターネット622へのアクセスは、通常は、ISP624やISP626などのインターネット・サービス・プロバイダ(ISP)によって提供される。クライアント・コンピュータ・システム602、604、618、620などのクライアント・システム上のユーザは、一般に、ISP624や626などのインターネット・サービス・プロバイダを介してインターネットへのアクセス権を得る。インターネットにアクセスすると、クライアント・コンピュータ・システム602、604、618、620、および/またはウェブ・サーバ・システム628などの複数のデジタル処理システム間での情報(例えば電子メール、テキスト・ファイル、メディア・ファイルなど)の転送を容易にすることができる。例えば、クライアント・コンピュータ・システム602、604、618、620、および/またはウェブ・サーバ628のうちの1つあるいは複数が、クライアント・コンピュータ・システム602、604、618、620、および/またはウェブ・サーバ628のうちの別の1つあるいは複数に、メディア・データ(例えばビデオおよびオーディオ、あるいはビデオまたはオーディオ)を提供することができる。これは、要求に応答して実現することができる。本明細書に記述するように、このようなメディア・データは、システム600中でヒントに従って転送することができる。このようなヒントは、本発明の一実施形態では、特定のメディア・データの形式および/または特定のデータ通信(例えばネットワーク)プロトコルに従って作成することができる。
【0090】
ウェブ・サーバ628は、通常は、World Wide Webのプロトコルなど、1つまたは複数のデータ通信プロトコルで動作するための少なくとも1つのコンピュータ・システムからなり、したがって、通常はインターネット622に結合される。任意選択で、ウェブ・サーバ628は、インターネットおよび/またはその他のネットワークへのアクセス権をクライアント・コンピュータ・システムに提供することができるISPの一部となることもある。クライアント・コンピュータ・システム602、604、618、および620はそれぞれ、適当なウェブ・ブライジング・ソフトウェアを用いて、HTMLドキュメント(例えばウェブ・ページ)など、ウェブ・サーバ628が提供することができるデータにアクセスすることができる。このようなデータは、QuickTimeムービーなど、クライアント・コンピュータ・システム602、604、618、および620が提示できるメディアを提供することができる。
【0091】
ISP624は、クライアント・コンピュータ・システム602の一部分とみなすこともできるモデム・インタフェース606を介して、クライアント・コンピュータ・システム602にインターネット接続性を与える。クライアント・コンピュータ・システムは、Macintoshコンピュータ、「ネットワーク」コンピュータ、ハンドヘルド/ポータブル・コンピュータ、WebTVシステム、またはその他のタイプのデジタル処理システム(例えばデジタル処理能力を有するセルラ電話)など、従来のコンピュータ・システムでよい。同様に、ISP626も、クライアント・コンピュータ・システム604、618、および620にインターネット接続性を提供するが、図6に示すように、この接続性は、クライアント・コンピュータ・システム602、604、618、および620などの様々なクライアント・コンピュータ・システム間で様々となることがある。例えば、図6に示すように、クライアント・コンピュータ・システム604はモデム・インタフェース608を介してISP626に結合されるが、クライアント・コンピュータ・システム618および620はローカル・エリア・ネットワーク(LAN)の一部分である。図6ではそれぞれモデム606および608として示すインタフェース606および608は、アナログ・モデム、ISDNモデム、ケーブル・モデム、衛星伝送インタフェース(例えば「DirectPC」)、無線インタフェース、またはその他の、クライアント・コンピュータ・システムなどのデジタル処理システムを別のデジタル処理システムに結合するためのインタフェースにすることができる。クライアント・コンピュータ・システム618および620は、それぞれネットワーク・インタフェース614および616を介してLANバス612に結合される。ネットワーク・インタフェース614および616は、イーサネット・タイプ、非同期転送モード(ATM)、またはその他のタイプのネットワーク・インタフェースにすることができる。LANバスは、ファイアウォールその他のインターネットに関係したサービスをLANに提供することができるゲートウェイ・デジタル処理システム610にも結合される。ゲートウェイ・デジタル処理システム610がISP626に結合され、クライアント・コンピュータ・システム618および620にインターネット接続性を与える。ゲートウェイ・デジタル処理システム610は、例えば、従来のサーバ・コンピュータ・システムを含むことができる。同様に、ウェブ・サーバ628も、例えば、従来のサーバ・コンピュータ・システムを含むことができる。
【0092】
システム600により、クライアント・コンピュータ・システム602、604、618、620、および/またはウェブ・サーバ628のうちの1つあるいは複数が、クライアント・コンピュータ・システム602、604、618、620、および/またはウェブ・サーバ628のうちの別の1つあるいは複数に、メディア・データ(例えばビデオとオーディオ、あるいはビデオまたはオーディオ)を提供することができる。このようなデータは、例えば、クライアント・コンピュータ・システム602、604、618、および620のうちの1つまたは複数とすることができる受信側システムからの要求に応答して提供することができる。本明細書に記述するように、このようなメディア・データは、システム600中でヒントまたはヒント・トラックに従って転送することができる。このようなヒントを、本発明の一実施形態では特定のメディア・データの形式および/または特定のデータ通信(例えばネットワーク)プロトコルに従って作成し、本発明の一態様によればメディア・データのパケット化を可能にすることができる。
【0093】
図7は、本発明の一実施形態に従って使用することができるデジタル処理システムを示すブロック図である。例えば、図7に示すデジタル処理システム650は、クライアント・コンピュータ・システム、ウェブ・サーバ・システム、従来のサーバ・システムなどとして使用することができる。さらに、デジタル処理システム650を使用して、ISP624や626などのインターネット・サービス・プロバイダの1つまたは複数の機能を実行することができる。デジタル処理システム650は、モデムまたはネットワーク・インタフェース668を介して外部システムとインタフェースをとられることができる。モデムまたはネットワーク・インタフェース668は、デジタル処理システム650の一部分とみることができることを理解されたい。モデムまたはネットワーク・インタフェース668は、アナログ・モデム、ISDNモデム、ケーブル・モデム、トークン・リング・インタフェース、衛星伝送インタフェース、無線インタフェース、またはその他の、複数のデジタル処理システム間にデータ通信リンクをもたらすインタフェースにすることができる。
【0094】
デジタル処理システム650はプロセッサ652を含み、これは、1つまたは複数のプロセッサを表すことができ、Motorola powerPCプロセッサやIntel Pentium(またはx86)プロセッサなど、1つまたは複数の従来タイプのこのようなプロセッサを含むことができる。メモリ654は、バス656を介してプロセッサ652に結合される。メモリ155は、ダイナミック・ランダム・アクセス・メモリ(DRAM)となる、かつ/またはスタティックRAM(SRAM)を含むことができる。プロセッサは、メモリ654の一部分とみることも、メモリ654から分離しているとみなすこともできるその他のタイプの記憶領域/メモリ(例えばキャッシュ、フラッシュ・メモリ、ディスクなど)に結合することもできる。
【0095】
バス656はさらに、プロセッサ652を、ディスプレイ制御装置658、マス・メモリ662、モデムまたはネットワーク・インタフェース668、および入出力(I/O)制御装置664に結合する。マス・メモリ662は、磁気式、光学式、光磁気式、テープ、および/またはその他のタイプの、情報を記憶するための機械可読媒体/デバイスを表すことができる。例えば、マス・メモリ662は、ハードディスク、読取り専用または書込み可能の光学CDなどを表すことができる。ディスプレイ制御装置658は、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、またはその他のタイプのディスプレイ・デバイスを表すことができるディスプレイ660を、従来の方法で制御する。I/O制御装置664は、1つまたは複数のキーボード、マウス/トラックボールその他のポインティング・デバイス、磁気ディスク・ドライブおよび/または光ディスク・ドライブ、プリンタ、スキャナ、デジタル・カメラ、マイクロフォンなどを表すことができるI/Oデバイス666を制御する。
【0096】
デジタル処理システム650は、システムの単なる一例を表すものであり、多数の様々な構成およびアーキテクチャを有することができ、本発明とともに利用することができることを理解されたい。例えば、MacintoshおよびIntelのシステムは、周辺バスや専用キャッシュ・バスなど、複数のバスをしばしば有する。一方、本発明のデジタル処理システムとして使用することができるネットワーク・コンピュータは、例えば、ハード・ディスクその他の大容量記憶デバイス含まないことがあるが、モデムまたはインタフェース668などのネットワーク接続から、プロセッサ652で処理すべきルーチンおよび/またはデータを受信することができる。同様に、当技術分野で既知のWebTVシステムは、本発明のデジタル処理システムとみることができるが、このシステムはI/Oデバイス666に関連して上述したデバイスなどの、1つまたは複数のI/Oデバイスを含まないことがある。さらに、セルラ電話および/またはページングの能力を利用することができる携帯用の通信およびデータ処理システムが、本発明とともに使用することができるデジタル処理システムとみることができる。
【0097】
図7に示すシステム650では、マス・メモリ662(および/またはメモリ654)は、本発明に従って(例えばヒントを介して)処理することができるメディア(例えばビデオ、オーディオ、ムービーなど)を記憶することができる。別法として、メディア・データは、例えばモデムまたはネットワーク・インタフェース668を介してデジタル処理システム650によって受信し、ディスプレイ660および/またはI/Oデバイス666によって記憶および/または提示することこともできる。一実施形態では、パケット化されたメディア・データを、LANおよび/またはインターネットなどのデータ通信ネットワークを介してヒント・トラックに従って伝送することができる。一方、プロセッサ652は、1つまたは複数のルーチンを実行して、1つまたは複数のヒント・トラックを有するファイルを使用する、あるいは別法として、1つまたは複数のヒント・トラックを作成し、ヒント・トラックに従って提示またはパケット化するためにメディア(例えば事前にパッケージ化されたムービー、オーディオ・ファイル、ビデオ・ファイルなど)を処理することができる。このようなルーチンは、マス・メモリ662、メモリ664、および/またはデジタル処理システム650がアクセスできる別の機械可読媒体に記憶することができる。一実施形態では、デジタル処理システム650は、ヒント・トラックが組み込まれたメディア・データを処理することができる。同様に、このような組込み型メディア・データは、マス・メモリ662、メモリ664、および/またはデジタル処理システム650がアクセスできる別の機械可読媒体に記憶することができる。
【0098】
図8は、本発明の一実施形態による、ヒントを利用してメディア・データを転送するシステムを示すブロック図である。図8に示すシステム680は、データ通信リンク686を介してサーバ694に結合されたクライアント・データ処理システム682として示される受信側システムを含む。サーバ694および/またはクライアント・データ処理システムは、例えば図6および7に関連して述べたデバイス/システムの一方またはその組合せを表すことができる。
【0099】
サーバ694は、ヒント生成および処理ユニット688と、メディア処理ユニット690と、データ通信ユニット692とを含み、これらはそれぞれ、ハードワイヤド回路または機械実行可能命令、あるいはそれらの組合せを含むことができる。さらに、このようなハードワイヤド回路および/または機械実行可能命令の少なくとも一部分は、ヒント生成および処理ユニット688、メディア処理ユニット690、ならびにデータ通信ユニット692の組合せの間で共用することができる。一実施形態では、少なくとも1つのプロセッサに結合された、適当なルーチンおよび/またはデータをその中に記憶した少なくとも1つの記憶領域/メモリ(例えば機械可読媒体)を利用して、少なくとも部分的には、ヒント生成および処理ユニット688、メディア処理ユニット690、ならびにデータ通信ユニット692の1つまたはその組合せを実装する。
【0100】
一実施形態では、ヒント生成および処理ユニット688は、メディア処理ユニット690によって処理されるメディア・データをパケット化するためのヒントを作成し、記憶する。上述のように、ヒントは、メディア・ファイルに関連する別個のファイルとして生成および記憶することも、メディア・データに組み込むこともできる。複数のメディア形式が処理される場合には、ヒント生成および処理ユニット688は適当な形式を考慮してヒントを生成することができる。メディア形式についての情報は、メディア・データ(例えばビデオ、オーディオ、またはビデオおよびオーディオのメディア・ファイルなど)も与えることができるメディア処理ユニット690が提供することができる。同様に、データ通信ユニット692は、ヒントに従ってパケット化されたこのようなメディア・データをデータ通信リンク686を介して交換するための1つまたは複数のデータ通信(例えばネットワーク)プロトコルを提供することができる。したがって、ヒント生成および処理ユニットは、メディア処理ユニット690から提供されたメディア形式情報、およびデータ通信ユニット692から提供されたデータ通信プロトコル情報に基づいて、クライアント・データ処理システム682などの受信側デジタル処理システムに転送するための、適当なヒントと、メディアおよび/またはヒントのパケット化とを決定することができる。一実施形態では、メディアおよびヒントのストリーミングは、QuickTime形式に従って行われる。
【0101】
データ通信リンク686を介してメディア・データおよびヒント・パケットを受信したのに応答して、クライアント・データ処理システム682は、そのメディア・データによって表されるメディア・オブジェクトを提示することができる。このような提示は、上述のように短命に実行することができる。本発明の一実施形態では、メディア・データは、任意選択で、クライアント・データ処理システム682が記憶し、後に例えば提示および/または伝送のためにクライアント・データ処理システム682が再アセンブルすることができる。
【0102】
図9は、本発明の一実施形態による、ヒントを利用してメディア・データを転送するシステムを示すブロック図である。詳細には、図9は、ジェネレータと呼ばれる別個のデジタル処理システムがヒント(またはヒント・トラック)を生成し、クライアント・コンピュータ・システムなど別のシステムに転送するためにヒントを使用してメディア・データをパケット化するサーバなど別のシステムに提供することができる、本発明の一実施形態を示している。データ通信リンク686を介してクライアント・データ処理システム682とデータを交換することができるサーバ700を含むシステム696が示してある。ただし、図9に示す実施形態では、サーバ700はヒントを生成しない。そうではなく、データ通信リンク708を介してサーバ700に結合されたジェネレータ710が、ヒント生成ユニット712を含み、メディア・データをパケット化するために使用されるヒントを生成する。
【0103】
一実施形態では、システム696の動作は以下のようになる。サーバ700が、メディア・データを含む1つまたは複数のメディア・ファイルについてのヒントを生成するようジェネレータ710に要求する。例えば、メディア・ファイルは、サーバ700中の機械可読媒体上に記憶することができる。この要求は、メディア・ファイルの形式、ならびに/あるいはメディア・データおよび/またはその他のデータを伝送するためのデータ通信プロトコルを示す情報を含むことができる。データ通信プロトコルは、データ通信リンク686と関連づけることができ、データ通信リンクは、本発明の一実施形態では、サーバ700とクライアント・データ処理システム682の間でのメディア・データおよび/またはその他のデータの交換を容易にするように、特定の物理的および論理的特性を有するネットワーク接続と関連づけることができる。要求に応答して、ヒント生成ユニット712は、時間に関係したヒント・トラックと関連づけることができる適当なヒントを生成し、そのヒントをサーバ700に提供する。データ通信リンク708を介してジェネレータ700からヒントを受信したのに応答して、サーバ700、および詳細にはヒント処理ユニット702は、ヒントを使用して、クライアント・データ処理システム682に伝送するためにメディア・データをパケット化する。
【0104】
メディア・データおよびヒント・パケットをデータ通信リンク686を介して受信したのに応答して、クライアント・データ処理システム682は、メディア・データによって表されるメディア・オブジェクトを提示することができる。このような提示は、上述のように短命に実行することができる。本発明の一実施形態では、メディア・データは、任意選択でクライアント・データ処理システム682が記憶し、後に例えば提示および/または伝送のためにクライアント・データ処理システム682が再アセンブルすることができる。
【0105】
図10は、本発明の一実施形態による、メディア・データ伝送を実現するためのヒントを生成する方法を示す流れ図である。ステップ720で、複数の形式が使用される場合には、伝送すべきメディア・データのメディア形式を決定する。形式が1つしか使用されない場合には、720は実行しなくてもよい。ステップ722で、やはり複数のプロトコルを使用することができるものと仮定して、適当なデータ通信プロトコルを決定する。ステップ724で、メディア形式およびデータ通信プロトコル(その一方または両方が選択/構成されている可能性がある)に基づいて、メディア・データ伝送に関係するヒント(例えばヒント・トラック)を作成し、記憶する。
【0106】
任意選択のステップ726で、別のデジタル処理システムにヒントを伝送することができる。本発明の一実施形態では、例えば、図10の方法は、少なくとも部分的には、1つのデジタル処理システム(例えばサーバ)によって独占的に実行することができる。代替実施形態では、図10の方法は、少なくとも部分的には、2つ以上のデジタル処理システムによって実行することができる。例えば、メディア・データの属性は、サーバまたはその他のシステムから、ジェネレータなど別のデジタル処理システムに提供することができる。これに応答して、ジェネレータは、その属性に基づいて、適当なメディア形式、データ通信プロトコル、およびメディア・データをパケット化するためのヒントを決定することができ、これらはサーバに記憶することができる。別法として、サーバは、適当なメディア形式およびプロトコルをジェネレータに提供することができ、次いでジェネレータがヒントを生成することもできる。ジェネレータは、サーバまたはその他のデジタル処理システムにヒントを伝送することができ、デジタル処理システムはそれらのヒントに従ってメディアをパケット化することができる。
【0107】
図11は、本発明の一実施形態による、受信側システムが受信したメディア・データをヒントに従って処理する方法を示す流れ図である。ステップ730で、ヒントまたはヒント・トラックに従って受信側システムに伝送されたメディア・データを、受信側システムが受信する。一実施形態では、受信側システムは、パケット化されたメディア・データ、ならびにパケット化されたヒント・トラックを受信することができる。ヒント・トラックは、本発明の一実施形態では、メディア・データの少なくとも一部分と関連づけることができる。このようなデータは、受信側システムが行うことができる要求に応答して、受信側システムが受信することができる。例えば、一実施形態では、受信側システムは、クライアント・コンピュータ・システムであることがあり、メディア・データを求める要求はサーバまたはその他のデジタル処理システムに対して行われることがある。これに応答して、サーバは、メディア・データをパケット化するためのヒントを生成し(またはサーバの代わりに別のデジタル処理システムによって生成されていることもある)、ヒントを含むことができるパケット化されたメディア・データを受信側システムに伝送することができる。
【0108】
ステップ732で、受信側システムで受信されたメディア・データが表すメディア・オブジェクトが、受信側システムで提示される。例えば、メディア・データは、受信側システムで例えばディスプレイおよびスピーカによって「提示」されるビデオ、オーディオ、またはそれらの組合せを含むことができる。上述のように、メディア・データは、QuickTimeムービーと関連することもある。
【0109】
任意選択で、ステップ734で、ヒントを含むことができるメディア・データは、メディア・ファイルとして受信側システムが記憶することができる。したがって、本発明の代替実施形態では、ステップ732は、メディア・データを受信するにつれて実行しなくてもよい、あるいはステップ734の前後に、またはそれと平行して実行することができる。
【0110】
ステップ734で、記憶されたメディア・ファイルを、任意選択で再アセンブルおよび/または提示することができる。したがって、ステップ732は、ステップ734の後で実行することができる。
【0111】
図12は、本発明の一実施形態による、ジェネレータなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例である。図12に示し、また図12に関連して後述するエレメントを記憶する実際のメモリは、1つまたは複数のディスク(例えば磁気、光、光磁気など)、図7に関連して上述したメモリ654および/またはマス・メモリ662など、1つまたは複数のエレメントとなることがあることを理解されたい。さらに、図12に示す機械可読記憶媒体と関連づけられたジェネレータがネットワーク・コンピュータである一実施形態では、機械可読記憶媒体のエレメントの1つまたは複数は、別のデジタル処理システムに記憶し、ジェネレータにダウンロードすることができる。さらに、機械可読記憶媒体に関連して述べるエレメントは、いずれかの時点で、不揮発性マス・メモリ(例えばハード・ディスク)に記憶することができる。逆に、その他の時点で、機械記憶媒体のエレメントは、DRAMやSRAM、ディスクなど様々な記憶領域の間で分配することもできる。
【0112】
図12は、機械可読記憶媒体740を示している。一実施形態では、機械可読記憶媒体は、本発明の1つまたは複数の方法に従って、ヒントまたはヒント・トラックを生成するデジタル処理システム、すなわちジェネレータによって少なくとも部分的に利用される。ジェネレータは、図8に関連して述べたように、ヒント・トラックに従ってメディア・データを伝送するデジタル処理システム中に一体化することも、図9に関連して述べたように、ヒントを作成し、サーバなどヒントを利用してメディア・データをパケット化および伝送する別のデジタル処理システムに提供するデジタル処理システムであることもできる。
【0113】
図12に示すように、機械可読記憶媒体740は、通常はいくつかのエレメントを含む。例えば、機械可読記憶媒体740は、ジェネレータ・オペレーティング・システム(OS)742で示すように、オペレーティング・システムの機能をジェネレータに提供するソフトウェアを含む。ネットワーク伝送ルーチン748は、ルーチンやプロトコルなど、ジェネレータがデータ通信リンクを介してデータを伝送および受信することができるようにするデータ通信機能を提供する。
【0114】
さらに、機械可読記憶媒体740は、メディア伝送に関連したヒントを作成するためのルーチンおよびデータを含む。したがって、機械可読記憶媒体740は、任意選択で、ヒント作成ルーチン744がヒントを作成するために必要となることがある1つまたは複数のデータ通信プロトコルおよびメディア形式に関係する情報を提供することができる情報750を含むことができる。例えば、情報750は、QuickTimeムービー、RTP、MPEGなどに関係する情報を含むことができる。ただし、このような情報は、少なくとも部分的にヒント作成ルーチン744に一体化する、かつ/または遠隔のデジタル処理システムからジェネレータに提供することができる。
【0115】
ヒント作成ルーチン744によって作成されたヒントは、作成されたヒント746として記憶し、かつ/または他の箇所(例えばサーバであることもある遠隔のデジタル処理デバイス)に記憶/伝送することができる。ヒントは、やはり時間に関係したメディア・データ(例えばビデオ、オーディオ、ビデオとオーディオなど)をパケット化および伝送するための、時間に関係したヒント・トラックである。
【0116】
ジェネレータに関連して機械可読記憶媒体740について述べたが、媒体740は、少なくとも部分的には、いくつかのタイプのデジタル処理システムやデータ記憶媒体などの一部とすることもできる。例えば、機械可読記憶媒体740は、少なくとも部分的に、サーバまたはその他のデジタル処理システムの一部分として含まれることもある。さらに、機械可読記憶媒体740は、少なくとも部分的に、1つまたは複数のディスクその他の機械可読媒体上のソフトウェア・ユーティリティの一部分として含まれることもある。
【0117】
図13は、本発明の一実施形態による、サーバなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例である。図13に示し、また図12に関連して後述するエレメントを記憶する実際のメモリは、1つまたは複数のディスク(例えば磁気、光、光磁気など)、図7に関連して上述したメモリ654および/またはマス・メモリ662など、1つまたは複数のエレメントとなることがあることを理解されたい。さらに、図13に示す機械可読記憶媒体と関連づけられたサーバがネットワーク・コンピュータである一実施形態では、機械可読記憶媒体のエレメントの1つまたは複数は、別のデジタル処理システムに記憶し、ジェネレータにダウンロードすることができる。さらに、機械可読記憶媒体に関連して述べるエレメントは、いずれかの時点で、不揮発性マス・メモリ(例えばハード・ディスク)に記憶することができる。逆に、その他の時点で、機械記憶媒体のエレメントは、DRAMやSRAM、ディスクなど様々な記憶領域の間で分配することもできる。
【0118】
図13は、機械可読記憶媒体760を示している。一実施形態では、機械可読記憶媒体は、本発明の1つまたは複数の方法に従って、データ通信陸上を伝送するためにメディア・データをパケット化するために少なくとも部分的に利用される。機械可読記憶媒体760は、図8に関連して述べたサーバ694などのサーバと関連し、ヒント・トラックに従ってヒント・トラックを作成し、メディア・データを伝送するためのルーチンを含むことができる。別の実施形態では、機械可読記憶媒体760は、図9に関連して述べたサーバ700などのデジタル処理システムと関連することができ、ジェネレータなどのデジタル処理システムがヒントを作成するためのルーチンを含み、サーバは、機械可読記憶媒体760から提供されたルーチンによって処理されたヒントを使用して、メディア・データをパケット化し、伝送することができる。
【0119】
機械可読記憶媒体760は、いくつかのエレメントを含む。例えば、機械可読記憶媒体760は、サーバ・オペレーティング・システム(OS)762で示すように、オペレーティング・システムの機能をサーバに提供するソフトウェアを含む。ネットワーク伝送ルーチン768は、ルーチンやプロトコルなど、サーバがデータ通信リンクを介してデータを伝送および受信することができるようにするデータ通信機能を提供する。
【0120】
さらに、機械可読記憶媒体760は、メディア・データをパケット化するメディア・パケット化ルーチン770を含み、これは時間に関係し、ヒントに基づいており、やはりパケット化することができる。したがって、機械可読記憶媒体760は、メディア・データ(例えばQuickTimeムービーやその他のメディア・トラックとなることがある)およびヒント(例えばヒント・トラック)をそれぞれ記憶するために、メディア・データ記憶領域764およびヒント記憶領域766を含む。ヒントは、通常はやはり時間に関係しているメディア・データ(例えばビデオ、オーディオ、ビデオおよびオーディオ)をパケット化および伝送するための時間に関係したヒント・トラックを含むことができる。一実施形態では、ヒント・トラックは、メディア・データ・パケットとは別個にパケット化される。一実施形態では、ヒントは、別個のメディア・ファイル中にあることもあるメディア・データ(例えば特定のパケット)を識別するポインタ情報を含む。
【0121】
図14は、本発明の一実施形態による、受信側システムやその他のデジタル処理システムなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例である。図14に示し、また図14に関連して後述するエレメントを記憶する実際のメモリは、1つまたは複数のディスク(例えば磁気、光、光磁気など)、図7に関連して上述したメモリ654および/またはマス・メモリ662など、1つまたは複数のエレメントとなることがあることを理解されたい。さらに、図14に示す機械可読記憶媒体と関連づけられた受信側システムがネットワーク・コンピュータである一実施形態では、機械可読記憶媒体のエレメントの1つまたは複数は、別のデジタル処理システムに記憶し、受信側システムにダウンロードすることができる。さらに、機械可読記憶媒体に関連して述べるエレメントは、いずれかの時点で、不揮発性マス・メモリ(例えばハード・ディスク)に記憶することができる。逆に、その他の時点で、機械記憶媒体のエレメントは、DRAMやSRAM、ディスクなど様々な記憶領域の間で分配することもできる。
【0122】
図14は、機械可読記憶媒体780を示している。一実施形態では、この機械可読記憶媒体は、本発明の1つまたは複数の方法に従ってパケット化されたメディア・データを処理するために少なくとも部分的には利用される。機械可読記憶媒体780は、図8および9に関連して述べたクライアント・データ処理システム682などの受信側システムと関連し、ヒントに従って伝送/受信されたメディア・データを提示するルーチンを含むことができる。別法として、機械可読記憶媒体780は、そこに組み込まれたヒント(例えばヒント・トラック)を有するメディア・データを含むことができる。このような組込み型のメディア・データは、機械可読記憶媒体780などの機械可読記憶媒体上に記憶されたルーチンによって事前にパッケージ化または生成することができる。
【0123】
機械可読記憶媒体780は、いくつかのエレメントを含むことができる。例えば、機械可読記憶媒体780は、サーバ・オペレーティング・システム(OS)772で示すように、オペレーティング・システムの機能を受信側システムに提供するソフトウェアを含む。ネットワーク伝送ルーチン782は、ルーチンやプロトコルなど、サーバがデータ通信リンクを介してデータを伝送および受信することができるようにするデータ通信機能を提供する。
【0124】
さらに、機械可読記憶媒体780は、ヒントに従ってパケット化されたメディア・データを提示するためのメディア提示ルーチン778を含む。したがって、機械可読記憶媒体780、および詳細にはメディア提示ルーチン778は、オーディオおよび/またはビデオ・データの圧縮解除、ビデオの表示、ならびに/あるいはオーディオの再生などのためのルーチンを含むことができる。さらに、メディア提示ルーチン778は、通常は、メディア・データに関連するヒントの処理を実現する。一実施形態では、ヒントは、メディアが提示される際に単純に無視される。
【0125】
任意選択で、機械可読記憶媒体780は、ヒントに従ってパケット化されているメディア・データをメディア・データ774として記憶し、記憶したメディア・データを(例えば提示または伝送するために)再アセンブルするためのメディア・データ再アセンブリ・ルーチン776を含むことができる。
【0126】
図15は、本発明の一実施形態による、メディアおよびヒント情報が記憶/トランスポートされたデータ記憶および/または通信媒体を示す図である。本発明に従ってパケット化されたメディア・データ・パケット804およびヒント・パケット806を記憶およびトランスポートすることができる様々なタイプのトランスポートおよび/または記憶媒体を表す、データ記憶および/または通信媒体(媒体)800が示してある。例えば、媒体800は、図7に関連して上述したマス・メモリ662および/またはメモリ654を表すことができる。媒体800は、図6に示すLANバス612や、メディアおよび/またはその他の情報を表すデータ/信号をトランスポートするためのデータ通信リンク686などの通信媒体を表すこともできる。
【0127】
ヒント・パケット806およびメディア・パケット804は、1つのパケットに一体化することも、図15に示すように別々に記憶および/またはトランスポートすることもできる。さらに、ヒント・パケット806およびメディア・パケット804は、本明細書に記載の形式や、その他のメディア形式、ネットワーク・プロトコル、および/またはデジタル処理デバイスのアーキテクチャに関連する形式など、いくつかのタイプの形式を具現化することができる。
【0128】
以下に、いくつかのヒントの形式の例を与える。ただし、本発明は、時間に関係したデータの電送を実現するために、様々なタイプのネットワーク・プロトコル、デジタル処理システム・アーキテクチャ、メディア形式などとともに利用することができることを理解されたい。
【0129】
(代替実施形態)
いくつかの実施形態およびそれを図示する図に関連して本発明について述べたが、本発明は記載の実施形態または図に限定されないことを当業者なら理解されたい。詳細には、本発明は、時間に関係したメディア・データのパケット化を実現するいくつかの代替実施形態で実施することができる。
【0130】
したがって、本発明の方法および装置は、添付の特許請求の範囲の趣旨および範囲内で修正および改変を加えて実施することができることを理解されたい。したがって、本記述は、本発明を限定するものではなく、例示するものとしてみなすべきものである。
【0131】
付録A−パケット化ヒントのサンプル記述
本発明の一実施形態では、各ヒント・トラックは、サンプル記述のテーブルを有する。ヒント・トラックは、通常は1つのサンプル記述を有する。本発明の一実施形態による、あるヒント・トラックについてのサンプル記述エントリそれぞれについての形式を、以下のテーブル1に記載する。
【表1】
Figure 0004282232
【0132】
パケット化ヒント・ヘッダ・アトムは、以下のデータ・エレメントを含む。
フィールド記述;
サンプル記述サイズ:サンプル記述中のバイト数を指定する32ビット整数。
データ形式:サンプル・データ中に記憶されたヒントの形式を指示する32ビット整数。異なるヒント・タイプには異なる形式を定義することができる。以下のテーブルに定義された形式を列挙する。
予約:0にセットされる6バイト。
データ参照:このアンプル記述を使用するサンプルに関連するデータ索引の索引を含む16ビット整数。データ参照はデータ参照アトムに記憶される。
最大パケット・サイズ:このトラック中で計算されるパケットの最大サイズを示す32ビット整数。
追加データ・テーブル:トラックごとに必要とされる追加情報を含むテーブル。その値は、タグ付きのエントリである。必要なエントリはない。このテーブル中にエントリが存在しない場合には、妥当なデフォルトを使用することができる。
【0133】
追加データ・テーブルの構造をテーブル2に示す。
【表2】
Figure 0004282232
【0134】
追加データ・テーブルのエントリは、以下のデータ・エレメントを含む。
Figure 0004282232
【0135】
以下のデータ・タグは、いくつかの様々なタイプのデータ形式について定義することができる。必要に応じてその他のタグを作成することもできる。
Figure 0004282232
【0136】
以下のデータ形式タイプが定義される。必要に応じて、新しいタイプを定義することができる。
Figure 0004282232
【0137】
「rtp」データについての一実施例では、以下のデータ・タグが利用される。
Figure 0004282232
【0138】
以下のデータ・タグは「rtp」データについて任意選択である。
Figure 0004282232
【0139】
付録B−RTPについてのヒント・トラックの例
この節では、QuickTimeムービーからRTPをストリーミングするためのヒント・トラック形式の一例を与える。
【0140】
標準的なRTPでは、各メディア・ストリームは、通常は別個のRTPストリームとして送信される。多重化は、一般に、複数のストリームからのデータを単一のRTPセッション中にインタリーブするのではなく、IPのポート・レベルの多重化を使用することによって達成される。したがって、ムービー中の各メディア・トラックは、関連するRTPヒント・トラックを有さなければならない。本発明の一実施例では、各ヒント・トラックは、それがストリーミングしているメディア・トラックへのトラック参照を含む。
【0141】
この例では、パケット・サイズは、ヒント・トラックが作成された時点で決定される。したがって、ヒント・トラック(「coding」に特有のフィールドを含むことができるデータ構造、この場合はプロトコル)についてのサンプル記述中に、選択されたパケット・サイズが示されている。本発明の一例では、様々なパケット・サイズを選択できるようにするために、各メディア・トラックごとにいくつかのRTPヒント・トラックが提供される。その他のプロトコルも同様にパラメータ化することができる。同様に、RTPクロックについての適当なタイム・スケールが以下のサンプル記述中に設けられる。
【0142】
ヒント・トラックは、単一のトラック参照宣言によってそのベース・メディア・トラックと関係づけられる。(RTPでは、単一のRTPストリーム内でのメディアの多重化を行うことができない。)RTPについてのサンプル記述は、このヒント・トラックが生成することになる最大パケット・サイズを宣言する。セッション記述(SAP/SDP)情報は、トラック中のユーザ・データ・アトム中に記憶される。
【0143】
RTPヒント・トラック中の各サンプルは、所与の時間に発信しなければならないパケットのセットを送信する命令を含む。ヒント・トラック中のこの時間は発信時間であり、必ずしも関連するメディアのメディア時間ではない。
【0144】
以下の記述では、オブジェクトとして構造化する必要のない、この例の用語で言うとメタ・データではなくメディア・データであるサンプルの内部構造について述べる。
【0145】
この例では、各サンプルは2つの領域、すなわちパケットを合成するための命令、およびこれらのパケットを送信するときに必要となる任意のエキストラ・データ(例えば暗号化したバージョンのメディア・データ)を含む。
struct RTPsample {
int(16) packetcount;
RTPpacket packets[packetcount];
byte[] extradata;
}
【0146】
各RTPヒント・パケットは、単一のパケットを送信するための情報を含む。一実施形態では、メディア時間を発信時間から分離するために、特にRTPタイム・スタンプが、RTPヘッダを形成するために必要なデータとともに含まれる。ただし、代替実施形態では、このようにならない。その他のヘッダ情報が通常は供給される。構成体エントリのテーブルは以下のように構成される。
struct RTPpacket {
int(32) RTPtime;
int(16) partialRTPheader;
int(16) RTPsequenceseed;
int(16) entrycount;
dataentry constructors[entrycount];
}
【0147】
様々な形態の構成要素がある。各構成要素は16バイトであり、これにより繰返しを比較的簡単にすることができる。第1のバイトは下記のような合併ディスクリミネータ(union discriminator)である。
struct dataentry {
int(8) entrytype;
switch entrytype {
case immediate:
int(8) bytecount;
int(8) bytestocopy[bytecount];
case mediasample:
int(8) reserved[5];
int(16) length;
int(32) mediasamplenumber;
int(32) mediasampleoffset;
case hintsample:
int(8) reserved[5];
int(16) length;
int(32) hintsamplenumber;
int(32) hintsampleoffset;
}
}
【0148】
即値モードでは、ペイロードに特有のヘッダ(例えばRTP H.261ヘッダ)の挿入が可能である。メディアが「明文で(in the clear)」送信されるヒント・トラックについては、メディアサンプル・エントリは、サンプル番号、データ・オフセット、およびコピーする長さを与えることによって、メディア・トラックからコピーするバイトを指定することができる。比較的複雑な場合(例えば暗号化または順方向誤り修正)には、その変形済みのデータをヒント・サンプル中に置くことができ、次いで、RTPサンプル自体の中のエキストラデータ・フィールドから提供されることになるヒントサンプル・モードを使用することができる
【0149】
本発明の一例では、連続したパケットがメディア・ストリームから連続したバイトを伝送する必要はない。例えば、H.261のRTP標準のパッキングに準拠するために、本発明の一例では、(マクロブロックの境界がバイト内にあるときには)、バイトは、1つのパケットの末端および次のパケットの冒頭で送信することができる。
【0150】
付録C−データ形式「rtp」についてのパケット化ヒントのサンプル・データ
この付録では、本発明の一実施形態による、「rtp」形式についてのサンプル・データの記述を与える。「rtp」形式は、サーバがReal Time Transport Protocol(RTP)を使用してデータを送信していることを前提とする。この形式は、サーバがRTPヘッダについて知っているものと仮定するが、サーバが、様々なIETFドラフト中で定義されたメディア・ヘッダを含めた特定のメディア・ヘッダについて知っていることは必要としない。
【0151】
本発明の一実施形態では、ヒント・トラック中の各サンプルは、1つまたは複数のRTPパケットを生成することになる。ヒント・トラック・サンプル中のサンプル・データ・テーブル中の各エントリは、単一のRTPパケットに対応する。ヒント・トラック中のサンプルは、メディア・トラック中のサンプルと正確に対応することも、対応しないこともある。本発明の一実施形態では、ヒント・トラック・サンプル中のデータは、32ビット整合ではなく、バイト整合である。
Figure 0004282232
【0152】
【表3】
Figure 0004282232
【0153】
一実施形態では、パケット・エントリは下記のデータ・エレメントを含む。
Figure 0004282232
Figure 0004282232
Figure 0004282232
【0154】
【表4】
Figure 0004282232
【0155】
エントリ・テーブルのデータ・ソース・フィールドは、その他15バイトのエントリがどのように解釈されるかを示す。値0から4を定義する。様々なデータ・テーブル形式を以下に定義する。様々な方式があるが、それらの様々な方式中のエントリは、通常は16バイトの長さである。
【0156】
No−Opデータ・モード
データ・テーブル・エントリは、no−opモードについて以下の形式を有する。
Figure 0004282232
【0157】
即値データ・モード
データ・テーブル・エントリは即値モードについて以下の形式を有する。
Figure 0004282232
【0158】
サンプル・モード
データ・テーブル・エントリは、サンプル・モードについて以下の形式を有する。
Figure 0004282232
【0159】
圧縮ブロック当たりのバイトおよび/または圧縮ブロック当たりのサンプルが1より大きい場合には、この比率を使用して、サンプル番号を実際のバイト・オフセットに変換する。この比率モードは、通常は、
CB=NS*BPCB/SPCB
のようにQuickTimeムービー中の圧縮オーディオ・トラックについて使用され、ここで
CB=圧縮バイト、
NS=サンプル数、
BPCB=圧縮ブロック当たりのバイト、
SPCB=圧縮ブロック当たりのサンプルである。
例えば、GSM圧縮ブロックは、通常は33バイトにパックされた160個のサンプルである。したがって、BPCB=33、およびSPCB=160である。ヒント・サンプルは、161番目のメディア・サンプルから始まる33バイトのデータを要求する。第1のQuickTimeチャンクが少なくとも320個のサンプルを含むものと仮定し、このデータがチャンク1からのものであること、およびチャンク1がどこから開始するかを決定した後で、この比率を利用して、要求されたサンプルが発見されることになるファイル中へのオフセットを調節する。
チャンク番号=1;/*サンプル/チャンク・アトムをたどることによって計算される*
このチャンク中の第1のサンプル=1;/*やはりそのアトムから計算される*
チャンク・オフセット=チャンク・オフセット[チャンク番号];/*stcoアトムから*
データ・オフセット=(サンプル番号−このチャンク中の第1のサンプル)*BPP/ファイルから読み取ったSPP(チャンク・オフセット+データ・オフセット、長さ);/*読出しデータ*
【0160】
サンプル記述モード
データ・テーブル・エントリは、サンプル記述モードについて以下の形式を有する。
Figure 0004282232
【0161】
付録D−MPEG−2トランスポートについてのヒント・トラック形式の例
この節では、エレメンタリ・ストリームを保持するQuickTimeムービーからのMPEG−2トランスポートをストリーミングするための簡単なトラック形式の一例を与える。
【0162】
MPEG−2トランスポート・ストリームは、1つまたは複数のエレメンタリ・ストリームの多重化に関連する。このため、MPEG−2トランスポートのヒント・トラックは、このような1つまたは複数のメディア・トラックからの多重化をどのようにして構築するかをを記述する。メディア・トラックとMPEG−2トランスポートのヒント・トラックの間には、必ずしも1対1の関係があるわけではない。各ヒント・トラックは、それが表すエレメンタリ・ストリームへの参照を含むことができる。本発明の一例では、QuickTimeファイルは、様々な多重化を記述するこのようなヒント・トラックを複数含むことができる。
【0163】
全てのMPEG−2トランスポート・パケットのサイズは188バイトであるので、パケット・サイズは一般に問題にならない。本発明の一例では、各トランスポート・パケット(MPEG−2トランスポート・プロトコル)は、1つのメディア・トラックからのペイロード・データを含む。これにより、各トランスポート・パケットについて比較的簡単なヒント記述が可能となる。本発明の一例では、このような各ヒントは、各トランスポート・パケット上にどのヘッダ・データが現れるかを記述し、次いでそのトランスポート・パケットについて適当なメディア・トラック中のペイロードを指示する。PSIパケットなど、メディア・トラックと対応しないパケットについては、ヒントは、188バイトのヘッダ・データを記述することができ、任意のメディア・トラック参照は無関係とみなすことができる。メディア・トラックと対応するパケットについては、ヘッダ・データは、トランスポート・ヘッダ、可能な適合ヘッダ(possible adaptation header)、PESパケットを開始するトランスポート・パケットについてのPESヘッダなどの情報を反映することができる。
【0164】
(タイプ「stsd」の)サンプル記述アトム中のMPEG−2トランスポートのヒント・トラックを参照する。このアトムは、サンプル記述テーブルを含み、このテーブル中のエントリは、メディア・タイプに基づいて様々である。本発明の一例では、ヒント・トラックはテーブル1に示す構造から始まる。追加データ・テーブルは、テーブル2に示す構造を有するエントリを保持することができる。
【0165】
本発明の一例では、ヒント・トラックがMPEG−2トランスポートのヒント・トラックである場合には、ヒント・トラックのサンプル記述エントリ中のデータ形式は「m2t」となり、最大パケット・サイズは常に188バイトとなる。このような記述エントリでは、以下のテーブル5〜7に示すタイプを、追加データ・テーブル中に見ることができる。
【表5】
Figure 0004282232
【表6】
Figure 0004282232
【表7】
Figure 0004282232
【0166】
本発明の一例では、各ヒント・サンプルは、1つのトランスポート・パケットを記述する。各トランスポート・パケットは、1つのメディア・トラックからのある量のヘッダ・データとそれに続くある量のペイロードとして記述することができる。MPEG−2トランスポート・パケットは比較的小さいので、多数のヒント・サンプルを生成することができ、したがってこれらのサンプルは可能な限り小さくすることが好ましい。上記の追加データ・テーブル中のいくつかのエントリを使用してサンプルのサイズを最小限に抑えることができるが、このようなファクタにより、サンプル・エントリ中のフィールドのいくつかのサイズが可変となることがある。
【0167】
データ・テーブル中の「otyp」エントリが値0を有する場合(ペイロード・データがメディア・サンプルに関連して記述されることを示す)には、ヒント・サンプルは、テーブル8に示す以下の形態となることができる。
【表8】
Figure 0004282232
【0168】
本発明の一例では、パケットについてのペイロード・データの長さは、MPEG−2では188からパケットのヘッダ・データのサイズを引いたものに等しいので、この長さを示す必要はない。
【0169】
データ・テーブル中の「otyp」エントリが値1を有する場合(ペイロード・データがファイル・オフセットに関連して記述されることを示す)には、ヒント・サンプルは、テーブル9に示す以下の形態となることができる。
【表9】
Figure 0004282232
【0170】
本発明の一例では、ヒント・サンプルはそれらのオフセットをメディア・サンプルまたはファイル・オフセットに関連して記述することができる。これらにはそれぞれ利点および欠点がある。ヒント・サンプルは、メディア・サンプルに関連してペイロードを指定する場合には、メディア・トラックを含むファイルの追加編集に対してより弾性的(resilient)になるが、送達のための追加処理を必要とすることがある。ヒント・サンプルは、ファイル・オフセットに関連してペイロードを指定する場合には、比較的迅速にペイロード・データにアクセスすることができるが、メディア・トラックを含むファイルを編集することでヒントが無効になることがある。
【0171】
付録D−ファイルの例
以下に、本発明の一実施形態による、比較的重要性の低いフィールドおよびオブジェクトの一部は省略し(ここでは省略記号“”でマークする)、またいくつかの架空の番号でRTPを介したストリーミングに備えたファイルの全体的な構造を示す、比較的短い(6フレーム)サンプル・ファイルを与える。メディア・データは省略し、メタ・データのみを示す。
【0172】
【付表】
Figure 0004282232
Figure 0004282232
Figure 0004282232
Figure 0004282232
Figure 0004282232
Figure 0004282232

【図面の簡単な説明】
【図1】 従来技術の1つのトラックを有する単純なムービーの構造の一例を示す図である。
【図2】 従来技術の独立型ムービーの一例を示す図である。
【図3】 本発明による方法の一例を示す流れ図である。
【図4】 本発明のヒント・トラックの一例を示す図である。
【図5】 本発明のヒント・トラックのもう1つの例を示す図である。
【図6】 本発明の一実施形態による、メディア・データを交換および/または処理することができるコンピュータ・システムのネットワークを示す図である。
【図7】 本発明の一実施形態に従って使用することができるデジタル処理システムを示すブロック図である。
【図8】 本発明の一実施形態による、ヒントを利用してメディア・データを転送するシステムを示すブロック図である。
【図9】 本発明の一実施形態による、ヒントを利用してメディア・データを転送するシステムを示すブロック図である。
【図10】 本発明の一実施形態による、メディア・データ伝送を実現するためにヒントを生成する方法を示す流れ図である。
【図11】 本発明の一実施形態による、ヒントに従って受信側システムが受信したメディア・データを処理する方法を示す流れ図である。
【図12】 本発明の一実施形態による、ジェネレータなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例を示す図である。
【図13】 本発明の一実施形態による、サーバなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例を示す図である。
【図14】 本発明の一実施形態による、受信側システムやその他のデジタル処理システムなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の一例を示す図である。
【図15】 本発明の一実施形態による、メディアおよびヒント情報を記憶/トランスポートするデータ記憶および/または通信媒体を示す図である。

Claims (17)

  1. 実行可能なコンピュータ・プログラム命令を有するコンピュータ可読記憶媒体であって、該プログラム命令が第1のデジタル処理システム上で実行されたときに当該第1のデジタル処理システムに、
    所定のパケット化特性に従って伝送すべき第1の時間に関係したデータ・シーケンスをどのようにしてパケット化するかを示す第2の時間に関係するデータ・シーケンス中において、前記第1の時間に関係するデータ・シーケンスを論理的に参照することを含む方法を
    実行させるコンピュータ可読記憶媒体であって、さらに、
    前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係するデータ・シーケンスへの論理リンクと前記第1の時間に関係するデータ・シーケンスをパケット化するための命令とを含むコンピュータ可読記憶媒体。
  2. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスをパケット・セットとして伝送するタイミング・パラメータを含む請求項1に記載の媒体。
  3. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスのパケット・セットへの多重化を提供する命令を含む請求項1に記載の媒体。
  4. 前記パケット化特性が「特定のネットワークの伝送プロトコル」、「ネットワーク帯域幅」及び「転送レート」の少なくとも一つを含む請求項1に記載の媒体。
  5. 前記第1、第2のシーケンスが互いに別途に記憶される請求項1に記載の媒体。
  6. 1つのデジタル処理システムから他のデジタル処理システムに伝送されるメディア・データの生成方法であって、
    所定のパケット化特性に従って伝送すべき第1の時間に関係したデータ・シーケンスをどのようにしてパケット化するかを示す第2の時間に関係するデータ・シーケンス中において、該第1の時間に関係するデータ・シーケンスを論理的に参照することを含み、さらに、
    前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係するデータ・シーケンスへの論理リンクと前記第1の時間に関係するデータ・シーケンスをパケット化するための命令とを含む方法。
  7. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスをパケット・セットとして伝送するタイミング・パラメータを含む請求項6に記載の方法。
  8. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスのパケット・セットへの多重化を提供する命令を含む請求項6に記載の方法。
  9. 前記パケット化特性が「特定のネットワークの伝送プロトコル」、「ネットワーク帯域幅」及び「転送レート」の少なくとも一つを含む請求項6に記載の方法。
  10. 1つのデジタル処理システムから他のデジタル処理システムに伝送されるメディア・データの生成装置であって、
    所定のパケット化特性に従って伝送すべき第1の時間に関係したデータ・シーケンスをどのようにしてパケット化するかを示す第2の時間に関係するデータ・シーケンス中において、前記第1の時間に関係するデータ・シーケンスを論理的に参照する手段を含み、さらに、
    前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係するデータ・シーケンスへの論理リンクと前記第1の時間に関係するデータ・シーケンスとを含む装置。
  11. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスをパケット・セットとして伝送するタイミング・パラメータを含む請求項10に記載の装置。
  12. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスのパケット・セットへの多重化を提供する命令を含む請求項10に記載の装置。
  13. 前記パケット化特性が「特定のネットワークの伝送プロトコル」、「ネットワーク帯域幅」及び「転送レート」の少なくとも一つを含む請求項10に記載の装置。
  14. 1つのデジタル処理システムから他のデジタル処理システムに伝送されるメディア・データを生成するコンピュータ・システムであって、
    所定のパケット化特性に従って、伝送すべき第1の時間に関係したデータ・シーケンスをどのようにしてパケット化するかを示す第2の時間に関係するデータ・シーケンス中において、前記第1の時間に関係するデータ・シーケンスを論理的に参照する命令を実行する処理ユニットと、
    前記処理ユニットに結合して、前記第1、第2の時間に関係するデータ・シーケンスを提供するポートとを含み、さらに
    前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係するデータ・シーケンスへの論理リンクと前記第1の時間に関係するデータ・シーケンスをパケット化するための命令とを含むコンピュータ・システム。
  15. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスをパケット・セットとして伝送するタイミング・パラメータを示す請求項14に記載のコンピュータ・システム。
  16. 前記第2の時間に関係したデータ・シーケンスが、前記第1の時間に関係したデータ・シーケンスのパケット・セットへの多重化を提供する命令を含む請求項14に記載のコンピュータ・システム。
  17. 前記パケット化特性が「特定のネットワークの伝送プロトコル」、「ネットワーク帯域幅」及び「転送レート」の少なくとも一つを含む請求項14に記載のコンピュータ・システム。
JP2000540645A 1998-01-15 1999-01-13 メディア・データ伝送のための方法および装置 Expired - Lifetime JP4282232B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7156698P 1998-01-15 1998-01-15
US60/071,566 1998-01-15
US09/139,196 US6744763B1 (en) 1998-01-15 1998-08-25 Method and apparatus for media data transmission
US09/139,196 1998-08-25
PCT/US1999/000953 WO1999037056A2 (en) 1998-01-15 1999-01-13 Method and apparatus for media data transmission

Publications (3)

Publication Number Publication Date
JP2003526227A JP2003526227A (ja) 2003-09-02
JP2003526227A5 JP2003526227A5 (ja) 2006-03-02
JP4282232B2 true JP4282232B2 (ja) 2009-06-17

Family

ID=26752378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000540645A Expired - Lifetime JP4282232B2 (ja) 1998-01-15 1999-01-13 メディア・データ伝送のための方法および装置

Country Status (9)

Country Link
US (1) US6744763B1 (ja)
EP (1) EP1048156B1 (ja)
JP (1) JP4282232B2 (ja)
KR (1) KR100607784B1 (ja)
CN (1) CN1166143C (ja)
CA (1) CA2316852C (ja)
DE (1) DE69936570T2 (ja)
HK (1) HK1035278A1 (ja)
WO (1) WO1999037056A2 (ja)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6438140B1 (en) * 1998-11-19 2002-08-20 Diva Systems Corporation Data structure, method and apparatus providing efficient retrieval of data from a segmented information stream
US20020013852A1 (en) 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
US7468934B1 (en) 1999-07-12 2008-12-23 Ez4Media, Inc. Clock with link to the internet
JP4211153B2 (ja) 1999-09-17 2009-01-21 ソニー株式会社 記録装置および方法
EP1089572B1 (en) 1999-09-30 2011-09-21 Sony Corporation Recording apparatus, recording method, and record medium
EP1273152B1 (en) * 2000-04-08 2006-08-02 Sun Microsystems, Inc. Method of streaming a single media track to multiple clients
US20020003886A1 (en) * 2000-04-28 2002-01-10 Hillegass James C. Method and system for storing multiple media tracks in a single, multiply encrypted computer file
US7142934B2 (en) 2000-09-01 2006-11-28 Universal Electronics Inc. Audio converter device and method for using the same
US20060031550A1 (en) * 2000-09-05 2006-02-09 Universal Electronics Inc. Webpad adapted to communicate using wide area and local area communication channels
US20020065927A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US20020065902A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
FR2814027B1 (fr) * 2000-09-14 2003-01-31 Cit Alcatel Procede de synchronisation d'un fichier multimedia
US7200357B2 (en) 2000-10-20 2007-04-03 Universal Electronics Inc. Automotive storage and playback device and method for using the same
FR2818066B1 (fr) * 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
EP1348287B1 (en) * 2000-12-18 2006-06-07 Koninklijke Philips Electronics N.V. Pointers to encrypted data in rtp header
US7054911B1 (en) 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
US7155531B1 (en) 2001-06-12 2006-12-26 Network Appliance Inc. Storage methods and apparatus for streaming media data
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7478164B1 (en) * 2001-06-12 2009-01-13 Netapp, Inc. Methods and apparatus for pacing delivery of streaming media data
US7076560B1 (en) 2001-06-12 2006-07-11 Network Appliance, Inc. Methods and apparatus for storing and serving streaming media data
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US6941516B2 (en) * 2001-08-06 2005-09-06 Apple Computer, Inc. Object movie exporter
US7281052B2 (en) * 2001-12-14 2007-10-09 International Business Machines Corporation Data tracing identifiers
US7412531B1 (en) 2002-01-29 2008-08-12 Blue Coat Systems, Inc. Live stream archiving method and apparatus
US7386627B1 (en) 2002-01-29 2008-06-10 Network Appliance, Inc. Methods and apparatus for precomputing checksums for streaming media
JP3843101B2 (ja) * 2002-03-04 2006-11-08 富士通株式会社 階層符号化データ配信装置および方法
US7657644B1 (en) 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US7120751B1 (en) 2002-08-09 2006-10-10 Networks Appliance, Inc. Dynamic streaming buffer cache algorithm selection
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
US7768234B2 (en) * 2004-02-28 2010-08-03 Janik Craig M System and method for automatically synchronizing and acquiring content for battery powered devices
US9274576B2 (en) * 2003-03-17 2016-03-01 Callahan Cellular L.L.C. System and method for activation of portable and mobile media player devices for wireless LAN services
US20060291456A1 (en) 2003-09-09 2006-12-28 Koninklijke Philips Electronics N.V. Control interface selection
US7652844B2 (en) * 2003-12-24 2010-01-26 Bruce Edwards System and method for protecting removeable media playback devices
WO2005088894A1 (en) * 2004-03-11 2005-09-22 Universal Electronics Inc. Syncronizing device-specific encrypted data to and from mobile devices using detachable storage media
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
CA2489256A1 (en) * 2004-12-06 2006-06-06 Christoph Both System and method for video assisted music instrument collaboration over distance
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US8135839B1 (en) 2008-05-30 2012-03-13 Adobe Systems Incorporated System and method for locking exclusive access to a divided resource
US8620923B1 (en) * 2008-05-30 2013-12-31 Adobe Systems Incorporated System and method for storing meta-data indexes within a computer storage system
US8468426B2 (en) * 2008-07-02 2013-06-18 Apple Inc. Multimedia-aware quality-of-service and error correction provisioning
US20100279418A1 (en) * 2009-05-04 2010-11-04 Loren Robert Larson Glucose meter adaptable for use with handheld devices, and associated communication network
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
US8166191B1 (en) * 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US20110066843A1 (en) * 2009-09-16 2011-03-17 Brent Newman Mobile media play system and method
JP2011082666A (ja) * 2009-10-05 2011-04-21 Sony Corp 信号伝送方法、信号送信装置及び信号受信装置
US20110321110A1 (en) * 2010-06-24 2011-12-29 Worldplay (Barbados) Inc. Systems and methods for adapting video data transmissions to communication network bandwidth variations
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
WO2015093856A1 (en) * 2013-12-19 2015-06-25 Lg Electronics Inc. Broadcast transmitting device and operating method thereof, and broadcast receiving device and operating method thereof

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3873777A (en) * 1972-05-23 1975-03-25 Japan Broadcasting Corp Signal transmission system for transmitting a plurality of series of signals
JPS5141287B2 (ja) * 1972-09-04 1976-11-09
US4688214A (en) 1986-03-12 1987-08-18 American Telephone And Telegraph Company, At&T Laboratories Switching system control arrangements
DE4102408A1 (de) 1991-01-28 1992-08-06 Grundig Emv Verfahren zur sender- bzw. regionalkennung in gleichwellennetzen
JPH04245818A (ja) 1991-01-31 1992-09-02 Pioneer Electron Corp 情報伝送システム
US5319707A (en) * 1992-11-02 1994-06-07 Scientific Atlanta System and method for multiplexing a plurality of digital program services for transmission to remote locations
CA2173355A1 (en) 1993-06-09 1994-12-22 Andreas Richter Method and apparatus for multiple media digital communication system
EP0717892B1 (en) * 1993-09-10 1998-07-22 Rca Thomson Licensing Corporation Real-time audio packet layer encoder
US5689641A (en) 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
DE69525556T2 (de) * 1994-03-21 2002-09-12 Avid Technology Inc Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung
US5497373A (en) 1994-03-22 1996-03-05 Ericsson Messaging Systems Inc. Multi-media interface
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal
EP0702309A1 (en) 1994-06-24 1996-03-20 Aarhuus Stiftsbogtrykkerie S.M.B.A. A computerized image displaying system, a data carrying medium for use in a computerized displaying system, and a method of displaying images
CA2199360C (en) * 1994-09-08 2001-06-26 Laurence Fish Method and apparatus for electronic distribution of digital multi-media information
US5625818A (en) 1994-09-30 1997-04-29 Apple Computer, Inc. System for managing local database updates published to different online information services in different formats from a central platform
WO1996017313A1 (en) * 1994-11-18 1996-06-06 Oracle Corporation Method and apparatus for indexing multimedia information streams
EP0716370A3 (en) 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
GB2298951B (en) 1995-03-17 1999-10-27 Olivetti Res Ltd Addition of time information
US5818441A (en) 1995-06-15 1998-10-06 Intel Corporation System and method for simulating two-way connectivity for one way data streams
US5966120A (en) 1995-11-21 1999-10-12 Imedia Corporation Method and apparatus for combining and distributing data with pre-formatted real-time video
US5859660A (en) * 1996-02-29 1999-01-12 Perkins; Michael G. Non-seamless splicing of audio-video transport streams
US6157674A (en) 1996-03-21 2000-12-05 Sony Corporation Audio and video data transmitting apparatus, system, and method thereof
US5778187A (en) 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5838678A (en) * 1996-07-24 1998-11-17 Davis; Joseph W. Method and device for preprocessing streams of encoded data to facilitate decoding streams back-to back
US5956729A (en) * 1996-09-06 1999-09-21 Motorola, Inc. Multimedia file, supporting multiple instances of media types, and method for forming same
US5928330A (en) * 1996-09-06 1999-07-27 Motorola, Inc. System, device, and method for streaming a multimedia file
US5774666A (en) * 1996-10-18 1998-06-30 Silicon Graphics, Inc. System and method for displaying uniform network resource locators embedded in time-based medium
US6064771A (en) 1997-06-23 2000-05-16 Real-Time Geometry Corp. System and method for asynchronous, adaptive moving picture compression, and decompression
US6175871B1 (en) 1997-10-01 2001-01-16 3Com Corporation Method and apparatus for real time communication over packet networks
US6327418B1 (en) 1997-10-10 2001-12-04 Tivo Inc. Method and apparatus implementing random access and time-based functions on a continuous stream of formatted digital data
US6175872B1 (en) * 1997-12-12 2001-01-16 Gte Internetworking Incorporated Collaborative environment for syncronizing audio from remote devices
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6134243A (en) 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission

Also Published As

Publication number Publication date
DE69936570D1 (de) 2007-08-30
WO1999037056A3 (en) 1999-09-30
WO1999037056A2 (en) 1999-07-22
CN1290445A (zh) 2001-04-04
JP2003526227A (ja) 2003-09-02
EP1048156A2 (en) 2000-11-02
US6744763B1 (en) 2004-06-01
KR20010052145A (ko) 2001-06-25
EP1048156B1 (en) 2007-07-18
WO1999037056A9 (en) 1999-11-04
CN1166143C (zh) 2004-09-08
HK1035278A1 (en) 2001-11-16
DE69936570T2 (de) 2008-04-10
CA2316852C (en) 2014-01-07
CA2316852A1 (en) 1999-07-22
KR100607784B1 (ko) 2006-08-03

Similar Documents

Publication Publication Date Title
JP4282232B2 (ja) メディア・データ伝送のための方法および装置
JP4891364B2 (ja) メディア・データ伝送のための方法および装置
US7366788B2 (en) Method and apparatus for media data transmission
EP1051008A2 (en) Method and apparatus for media data transmission
JP2001197120A (ja) メディア・データ伝送のための方法および装置
EP1819128B1 (en) Method and apparatus for media data transmission
AU755830B2 (en) Method and apparatus for media data transmission
AU2003204871B2 (en) Method and apparatus for media data transmission

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060105

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080820

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080922

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090217

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090317

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term