JP5785582B2 - メディアデータ送信方法及び装置 - Google Patents

メディアデータ送信方法及び装置 Download PDF

Info

Publication number
JP5785582B2
JP5785582B2 JP2013100553A JP2013100553A JP5785582B2 JP 5785582 B2 JP5785582 B2 JP 5785582B2 JP 2013100553 A JP2013100553 A JP 2013100553A JP 2013100553 A JP2013100553 A JP 2013100553A JP 5785582 B2 JP5785582 B2 JP 5785582B2
Authority
JP
Japan
Prior art keywords
data
track
video
media
extractor
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.)
Active
Application number
JP2013100553A
Other languages
English (en)
Other versions
JP2013201763A (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 JP2013201763A publication Critical patent/JP2013201763A/ja
Application granted granted Critical
Publication of JP5785582B2 publication Critical patent/JP5785582B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • 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
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2368Multiplexing of audio and video streams
    • 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/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/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

(関連出願)
本出願人は、2005年7月19日に出願した先の同時係属仮出願第60/700,908号の優先権に対する利益を主張する。
本発明は、送信用メディアデータの時間関連シーケンスを作成する方法及び装置に関し、更に詳細には、このようなメディアデータのパケット送信に関する。
時間ベースメディアを記憶するために、AIFFなどのオーディオフォーマット、AVIなどのビデオフォーマット、及びRealMediaなどのストリーミングフォーマットなど、様々な異なるファイル構造が今日使用されている。このようなファイル構造が異なっている1つの理由は、対象及び適用性が異なるためである。これらのフォーマットの一部は、比較的十分に広く受け入れられており、用途が広く、実装が幾らか容易であり、従って、コンテンツ配信用としてだけでなく、交換フォーマットとして使用することができる。これらの汎用フォーマットの最先端のものがQuickTimeファイルフォーマットである。このフォーマットは、時間ベースデータをサービスするウェブサイトの大部分、すなわち専門的なものを含めたオーサリング環境の大部分及びマルチメディアCDROMタイトルの大部分で今日使用されている。
QuickTimeメディア層は、時間ベース素材(ビデオ、オーディオ、その他)に重点を置いて汎用マルチメディアデータの効率的な表示及び管理をサポートしている。メディア層は、メディア情報の記憶及び交換フォーマットとしてQuickTimeファイルフォーマットを使用する。メディア層のアーキテクチャ能力は、一般的に、既存の実施よりも広く、ファイルフォーマットは、既存のQuickTime実施が現在求める情報よりも多くの情報を表すことができる。
一般的に同期メディアのローカルランダムアクセスをサポートするように設計されたAVIなどのフォーマットとは対照的に、QuickTimeは、システムが汎用マルチメディアプレゼンテーションのデータ、関連性、及びタイミングを管理することを可能にする。詳細には、QuickTimeファイルフォーマットは、汎用時間ベースストリーミングの一時的な動作、ネットワークパケットの時間ベース放出を対象とする概念、並びにマルチメディアデータの時間ベースローカルプレゼンテーションを表現する構造を有する。
既存のQuickTimeファイルフォーマットは、Apple Computerにより1996年5月ファイルフォーマット仕様書において正式に記載されており、これは、QuickTimeサイト<http://.www.apple.com/quicktime>にて見ることができる。
QuickTimeファイルフォーマットの1つの態様は、メディアデータの物理的構造(ディスクレコードにおけるレイアウト)がファイルの論理構造から独立しており且つ該ファイル論理構造によって記述される概念である。ファイルは、「ムービー」メタデータのセットによって完全に記述される。このメタデータは、実際のメディアデータに関する宣言的、構造的、及び時間情報を提供する。
メディアデータは、記述データ(「ムービー」メタデータ)と同じファイル又は他のファイル内に存在することができる。1つのファイルに構造化されたムービーは、一般に「フラット」と呼ばれ、自己完結型のものである。非フラットムービーは、他のファイル内のメディアデータの一部又は全てを参照するように構造化することができる。
従って、フォーマットは、一般に、異なる用途における最適化に適している。例えば、編集(構成)時には、エディットが適用されてメディアが再度順序付けされるので、データを書き換える必要がなく、メタデータファイルは、拡張されて一時的なマッピング情報を調整することができる。エディットが完了すると、関連のメディアデータ及びメタデータは、ローカル又はネットワークアクセス用の単一のインターリーブされた最適化ファイルに書き換えることができる。構造的ファイル及び最適化ファイルの両方は有効なQuickTimeファイルであり、両方とも検査、再生、及び再加工を行うことができる。
構造化(「非フラット」)ファイルを使用すると、同じ基本的なメディアデータを幾つかのプレゼンテーションにおいて使用及び再使用することが可能となる。この同じ利点は、以下でわかるようにサービス提供時にも当てはまる。
編集及びサービス提供の両方においてはまた、これによって、メディアデータをコピーすることなく幾つかの他のファイルをムービーの一部として処理することもできる。従って、編集及びサービス提供は、Sun Microsystemの「au」オーディオフォーマット又はAVIビデオフォーマットのようなファイルから直接行うことができ、これらのフォーマットの有用性が大幅に拡張される。
QuickTimeファイルは、アトムと呼ばれるオブジェクトのセットに分割される。各オブジェクトは、アトムヘッダで始まり、該アトムヘッダは、サイズ及び形式を宣言するものである。
すなわち、

Figure 0005785582
サイズは、サイズ及びタイプヘッダフィールドを含めバイト単位である。タイプフィールドは、文書化及び識別を容易にすることがきるように、4文字(通常印刷可能文字)である。タイプフィールドの後のオブジェクト内のデータは、フィールド、内包オブジェクトのシーケンス、又はその両方とすることができる。
従って、ファイルは単にオブジェクトのシーケンスである。
Figure 0005785582
2つの重要な最上位オブジェクトは、メディアデータ(mdat)及びメタデータ(moov)である。
メタデータオブジェクトは、実際のメディア(例えば、音声サンプルのシーケンス)を含む。メディアのフォーマットは、ファイルフォーマットによって制約されず、通常はオブジェクトではない。メディアのフォーマットは、メタデータで記述され、メディアと物理的に連続したいずれかの宣言部によるものではない。よって、例えば、モーションJPEGのみから成るムービーにおいては、JPEGフレームは、仲介する余剰なヘッダなしでメディアデータ内に連続して記憶される。メディアデータオブジェクト内のメディアデータは、論理的にチャンクに分割されるが、メディアデータ内には明示的なチャンクマーカーは存在しない。
QuickTimeファイルが他のファイル内のメディアデータを参照する場合、当該メディアデータファイルはあたかもメディアオブジェクトのコンテンツであるかのようにフォーマットすることができるので、これらの「2次」ファイルをQuickTime仕様書に従ってフォーマットすることは必要ではない。QuickTimeフォームは、必ずしもヘッダ又はメディアデータと物理的に連続する他の情報は必要ではないので、メディアデータが「外部」のヘッダ(例えば、UNIX(登録商標)「.au」ファイル又はAVIファイル)を含むファイルであり、QuickTimeメディアデータが適切な宣言情報を含み「外部」ファイル内のメディアデータを参照することが可能である。このようにして、QuickTimeファイルフォーマットを使用して、異種のフォーマット内の既存の素材の本体をコピーすることなく更新することができる。QuickTimeファイルフォーマットは、確立されたフォーマットであると共に、他の確立されたフォーマットと協働し且つ該フォーマットを含み、これによって他の確立されたフォーマットを進めることができる。
自由空間(例えば、編集作業によって削除されたもの)をオブジェクトで記述することもできる。自由空間オブジェクトを含むフィールドを読み取るソフトウェアは、このような自由空間オブジェクト、並びにソフトウェアが理解できないあらゆるレベルにあるオブジェクトを無視するはずである。これによって、新しいオブジェクトを導入することによって実質的にあらゆるレベルのファイルを拡張することが可能となる。
一次メタデータは、ムービーオブジェクトである。QuickTimeファイルは、ロケーションを容易にすることができるように通常はファイルの初め又は終わりにある1つのムービーオブジェクトを正確に有する。
Figure 0005785582
ムービーヘッダは、プレゼンテーション全体に関する基本的な情報(作成日、全体的な時間スケール、その他)を提供する。内包オブジェクトのシーケンスにおいては、通常、一時的に呈示されたデータを記述する少なくとも1つのトラックがある。
Figure 0005785582
トラックヘッダは、トラックに関する比較的基本的な情報(ID、時間スケール、その他)を提供する。トラック内に内包されるオブジェクトは、他のトラック(例えば、複雑な構成用)又はエディットリストに対する参照事項とすることができる。内包オブジェクトのこのシーケンスにおいては、トラック再生時に呈示されるメディアを記述するメディアオブジェクトが存在することができる。
メディアオブジェクトは、トラックによって必要とされるプレゼンテーションに関する宣言(例えば、サンプリングオーディオ、又はMIDI又は3Dscneの方位情報)を含む。このタイプのトラックは、ハンドラによって宣言される。
Figure 0005785582
メディア情報内には、同様に、データハンドラ(メディアデータをフェッチする)のハンドラ宣言、及びどのファイルが関連のトラックに関するメディアデータを含むかを定義するデータ情報宣言がある。この宣言を用いることによって、幾つかのファイルにわたるムービーを構築することができる。
最低レベルでは、トラックの時間相をファイル内に記憶されたデータに関連付けるサンプルテーブルが使用される。
Figure 0005785582
サンプル記述は、メディアに関する情報(例えば、ビデオで使用される圧縮フォーマット)を含む。時間対サンプルのテーブルは、トラックの時間をその時間に表示されるべきサンプル(インデックスによって)に関連付ける。syncサンプルテーブルは、これらのうちのどれがsync(キー)サンプルであるか、すなわち他のサンプルに依存していないかを宣言する。
サンプル対チャンクのオブジェクトは、所与のサンプルについてのメディアデータを見つける方法及びそのインデックスが与えられる記述を宣言する。
Figure 0005785582
サンプルサイズテーブルは、各サンプルのサイズを示す。チャンクオフセットテーブルは、各チャンクの初めの内包ファイルへのオフセットを示す。
上述の構造を検討して所与の時間に表示するための適切なデータを見つけることは、かなり容易なことであり、一般に、インデックス作成及び追加を伴う。syncテーブルを使用すると、前のsyncサンプルをバックアップし、「静かに」蓄積しているデルタを所望の開始地点にロールフォワードさせることも可能である。
図1は、1つのトラックを有する単純なムービーの構造を示す。同様の図は、様々なオブジェクトのフィールドの詳細な説明と共にQuickTimeファイルフォーマット文書中に見ることができる。QuickTimeアトム(オブジェクト)が灰色ボックス内のタイプ及び上記の記述名と共にここに図示される。このムービーは、単一のビデオトラックを含む。ビデオのフレームは、データの単一のチャンク内の同じファイル内にある。
「チャンク」は、論理的構造にすぎず、すなわちオブジェクトではない点に留意されたい。チャンクの内部には、通常はネイティブフォーマットで記憶されたビデオフレームがある。ビデオフレーム内には所要のヘッダ又はフィールドは存在しない。
図2は、オーディオ及びビデオトラックの両方を有する自己完結型ファイルの図である。簡潔にするために、ここでは少数のアトムが図示されており、トラックからメディアデータへのポインタは、勿論、タイミング情報を含む一般的なサンプルテーブル宣言である。
QuickTimeファイルフォーマットは、以下を含む幾つかの利点を有する。
1)サイズ及びビットレートのスケーラビリティ。メタデータは柔軟性があり、しかもコンパクトである。これによって、小さなダウンロードムービー(例えば、インターネット上で)並びに幾つかのハイエンド編集システムのベースを提供するのに好適になる。
2)物理的構造は、論理的及び時間的構造から独立したものである。これによって、ファイルを有する用途に応じて、物理的構造を異なる方法で最適化することが可能になる。詳細には、単一のファイルフォーマットは、オーサリング及び編集;CD−ROM上でのダウンロード又は設定;及びストリーミング用に好適であることを意味する。
3)ファイルフォーマットは、フォーマットが設計された時点では知られていない多くの形式を含め、極めて多様なコーデックタイプ及びトラックタイプを扱えることが証明されている。上位互換性のある様態で発展するこの証明済みの能力は、ストレージフォーマットの成功にとって重要なことである。
スケーラブルな又は階層化されたコーデックは、QuickTimeファイルフォーマットで幾つかの方法で扱うことができる。スケーラビリティをサポートするストリーミングプロトコルの場合、サンプルには、そのサンプルを送信する上で満たすべき層又は帯域幅閾値をタグ付けすることができる。
代替形態のセットを形成するトラック(例えば、異なる自然言語音声トラック)は、再生用に1つのトラックのみが選択されるようにタグ付けすることができる。同じ構造を使用してストリーミング用の代替形態(例えば、言語選択用に)を選択することができる。この能力については、QuickTimeファイルフォーマットにおいて更に詳細に説明されている。
QuickTimeがムービー又はトラックを表示する場合、適切なメディアハンドラが特定の時間のメディアデータにアクセスする。メディアハンドラは、データストリーミングを正確に解釈して要求されたデータを取り出さなければならない。例えば、ビデオメディアに関しては、メディアハンドラは通常、幾つかのアトムを横断して所与のメディア時間用のサンプルのロケーション及びサイズを見つける。メディアハンドラは、以下のことを行なうことができる。
1.メディア時間座標系を決定する。
2.時間対サンプルアトムを調べて、所定時間のデータを含むサンプル番号を決定する。
3.サンプル対チャンクアトムをスキャンして、どのチャンクが問題のサンプルを含むかを発見する。
4.チャンクオフセットアトムからチャンクへのオフセットを抽出する。
5.サンプルサイズアトムを使用してチャンク内のオフセット及びサンプルのサイズを見つける。
QuickTimeファイル又は他のタイプのメディアデータの時間関連シーケンスは、コンピュータネットワーク(例えば、インターネット)と関連付けることができるデータ通信媒体を介して送信されるのが望ましいことが多い。多くのコンピュータネットワークにおいては、ネットワーク内に送信されるデータは、一般に、パケット形式であるはずである。通常、メディアデータの時間関連シーケンスは、ネットワーク上での送信用に適切なパケット化フォーマットではない。例えば、QuickTimeフォーマットでのメディアデータファイルは、パケット化フォーマットではない。従って、ストリーミングデータと呼ばれることもあるデータを収集してネットワーク上で送信するためにパケット化する必要がある。
ネットワークを介してメディアデータの時間関連シーケンスを送信することに関する問題に対処する従来技術の1つの方法は、ハイパーテキスト転送プロトコル(HTTP)などのネットワーク又は送信プロトコルを使用して、ネットワーク経由でメディアファイルを送ることである。従って、メディアファイル自体は、1つのコンピュータシステムからネットワーク経由で別のコンピュータシステムに送られる。しかしながら、受信側コンピュータシステムでメディアファイルを保持する要求がない場合がある。すなわち、例えば、受信側コンピュータシステムが記憶容量の少ないネットワークコンピュータ又はコンピュータである場合、メディアファイルが受信側コンピュータシステムで受信、閲覧、又は聴取されるときには、その受信側コンピュータシステムのユーザによるファイルのコピーを記憶したいという要求がない可能性がある。
ネットワークを介したパケットによる送信用にデータを収集する方法に関する問題を解決する別の代替手法は、特定の送信プロトコル用ファイルにおいてネットワークプロトコルデータユニットを含むファイルを作成することである。ある意味では、このようなファイルは、特定の送信プロトコルに従って送信されるのと本質的に同じフォーマットで記憶されたパケット化ファイルと考えることができる。この作業の実施には通常、特定のデータ送信レート及び特定のメディアファイルフォーマットでの特定のネットワークプロトコル用にパケット化フォーマットのファイルを記憶することを伴う。従って、特定のデータ送信レートでの各異なる送信プロトコルについて、ファイルは本質的にパケット形式で複製されることになる。このようなファイルの固定形式は、ファイルの適用性/互換性を制限し、このようなファイルをローカルで閲覧することを困難にする可能性がある。従って、このような手法では、様々な送信プロトコルでの様々な異なるデータ送信レートでファイルを供給しようとする際に必要な記憶容量が大幅に増大する可能性がある。更に、この代替の従来的手法に従って生成された各パケットファイルは、一般的に特定のメディアファイルフォーマットに限定され、従って、同じメディアオブジェクト(例えばデジタルムービー)用の他のメディアファイルフォーマットは通常、パケット化されて送信側コンピュータシステム上に記憶される。
メディアデータの時間関連シーケンスをストリーミングする方法に関する問題を解決する更に別の手法は、要求された特定の送信プロトコルに従って送信側システム上で必要とされるときにメディアデータのパケット化を実施するものである。多くの場合、この処理には比較的かなりの時間量を必要とし、その結果、送信側システムの性能を低下させる可能性がある。
従って、メディアデータの時間関連シーケンスを送信するための改良された方法及び装置を提供することが望ましい。
本発明は、スケーラブルなコンテンツの複数のスケールでプレゼンテーションを提示するためのサンプルを含むデータの第1のセット内に記憶された読取り可能コンテンツを処理する方法及び装置を提供する。1つの実施形態において、第1のストリームは記憶され、第2のストリームは、第1のストリームから導出され、第2のストリームは、スケーラブルなコンテンツ内の動作点に対して、第1のストリームからデータを選択する際に使用される第1のストリームへの参照を含む。本発明の1つの態様によれば、記憶された第2のストリームに含まれる参照にアクセスされて、第1のストリームからデータを送信又は記憶する。多数の他の方法及び装置についても記載される。
従来技術における1つのトラックを備えた単純なムービーの構造の実施例の図である。 従来技術の自己完結型ムービーファイルの実施例の図である。 本発明による方法の1つの実施例を示すフローチャートである。 本発明のヒントトラックの実施例の図である。 本発明のヒントトラックの別の実施例の図である。 本発明の1つの実施形態による、媒体データを交換又は処理することができるコンピュータシステムのネットワークの図である。 本発明の1つの実施形態に従って使用することができるデジタル処理システムのブロック図である。 本発明の1つの実施形態による、ヒントを利用してメディアデータを転送するシステムのブロック図である。 発明の1つの実施形態による、ヒントを利用してメディアデータを転送するシステムのブロック図である。 本発明の1つの実施形態による、メディアデータ送信を可能にするヒントを生成するための方法を示すフロー図である。 本発明の1つの実施形態による、ヒントに従って受信側システムにより受信されたメディアデータを処理する方法を示すフロー図である。 本発明の1つの実施形態による、ジェネレータなどのデジタル処理システムがアクセス可能な機械可読記憶媒体の実施例の図である。 本発明の1つの実施形態による、サーバなどのデジタル処理システムがアクセス可能な機械可読記憶媒体の実施例の図である。 本発明の1つの実施形態による、受信側システムなどのデジタル処理システム又は他のデジタル処理システムがアクセス可能な機械可読記憶媒体の実施例の図である。 本発明の1つの実施形態による、メディア及びヒント情報が記憶/転送されたデータ記憶媒体及び/又は通信媒体の図である。 SVCコード化ビデオベーストラックの1つの実施形態の図である。 可変ビデオ解像度の1つの実施形態を示すブロック図である。 アグリゲータネットワーク抽象化層ユニットを利用するSVCコード化ビデオベーストラックの1つの実施形態を示す図である。 ビデオストリームをSVCコード化ベーストラックから抽出するのに使用されるエクストラクタ・トラックの1つの実施形態を示すブロック図である。 アグリゲータネットワーク抽象化層ユニットを含むSVCコード化ベーストラックからビデオストリームを抽出するのに使用されるエクストラクタ・トラックの1つの実施形態を示すブロック図である。 エクストラクタ・トラックを組み込んだビデオファイルの1つの実施形態を示すブロック図である。 エクストラクタ・トラックを生成してSVCベーストラックと共に使用するシステムの1つの実施形態を示すブロック図である。 SVCベーストラックからSVCエクストラクタ・トラックを生成する方法2000の1つの実施形態のフローチャートである。 対応するエクストラクタ・トラックを使用してSVCベーストラックからビデオストリームを取り出す方法2100の1つの実施形態のフローチャートである。 リモートクライアント向けに送信サーバによってSVCベースからメディアストリームを取り出す方法2200の1つの実施形態のフローチャートである。 リモートクライアントがエクストラクタ・トラックを使用してメディアストリームを要求する場合における、リモートクライアント向けに送信サーバによってSVCベーストラックからメディアストリームを取り出す方法2300の1つの実施形態のフローチャートである。 SVCベーストラックから抽出されたSVC専用コンテンツを保存する方法2400の1つの実施形態のフローチャートである。
本発明は、コンピュータネットワークなどにおいて、通信媒体を介して、例えば、ビデオ、オーディオ、ビデオ及びオーディオ、その他を含むことができるメディアデータの時間関連シーケンスの送信、特にパケット送信を可能にする方法及び装置を提供する。
本発明の1つの実施形態において、デジタル処理システムは、送信プロトコルに従ってメディアデータの時間関連シーケンスを送信する方法を示すデータセットを作成する。通常、このデータセットは、デジタル処理システムに結合された記憶装置上に記憶される。更に、このデータセットは、メディアデータの時間関連シーケンスに関連付けられたデータの時間関連シーケンスである。
本発明は、コンピュータ可読媒体上に記憶された実行可能なコンピュータプログラム命令で全体的に実施することができ、又は、ソフトウェア及びハードウェアの組み合わせで、或いは特定の実施形態においては完全にハードウェア内で実施することができる。通常、ネットワークに結合されたサーバコンピュータシステムは、ヒントトラックと呼ぶことができるデータセットを作成し、このヒントトラックをサーバコンピュータシステムに結合される記憶装置内に記憶することになる。クライアントコンピュータシステムがメディアデータファイルのプレゼンテーション(例えば、閲覧又は聴取或いは閲覧及び聴取)を要求すると、サーバシステムは、ヒントトラックを使用して、クライアントコンピュータシステムへの送信用にメディアデータをパケット化する方法を決定する。本発明は、一般的にメディアデータの時間関連シーケンスに適用可能であり、QuickTimeは、本明細書ではこの一般的な適用性の1つの実施例として示されている点は理解されるであろう。従って、本発明は、必ずしもQuickTimeに限定される必要はない。
図3は、本発明による方法の1つの実施例を示す。図3に示す方法300は、段階301で始まり、ここでは送信されるべき特定のメディアデータのメディアファイルフォーマットが判断される。段階303において、使用されるべき1つ又は複数の特定の送信プロトコルも決定される。しかしながら、段階301及び303は、例えば、同じメディアファイルフォーマットが常に同じ送信プロトコルを使用して送信される場合には任意選択可能である。
段階305において、サーバコンピュータシステムなどのデジタル処理システムは、メディアファイルにおいてメディアデータの時間関連シーケンスをパケット化するためのヒントを作成し記憶する。或いは、1つのコンピュータシステムは、ヒントを作成し、サーバコンピュータシステムなど別のシステムに供給することができ、該サーバコンピュータシステムは、送信プロセスにおいてヒントを後で使用するために記憶する。パケット化によって、段階303で決定された所要の送信プロトコルに従ったネットワーク又は通信媒体を介した送信が可能になる。本発明の1つの実施形態において、ヒントは、メディアデータの他のトラックを参照するが、1つの実施形態においてはメディアデータの他のトラックとは別個のものであるヒントの時間関連シーケンスのトラックとして記憶される。ヒントのトラックは、本発明の1つの実施形態において、ヒットが参照するメディアデータとは別個に記憶することができる。従って、ヒントのトラックは、該ヒントのトラックが参照するメディアデータを含む別のファイルとは異なるファイル内に記憶することができ、又は、ヒントのトラックは、実際のメディアデータを含むデータ区域とは分離され且つ異なるメディアデータを含むファイル内のヒント区域に記憶することができる。本発明の1つの実施形態において、ヒントトラック又はその一部は、サーバによる実行可能命令と解釈することができ、この実行可能命令により、サーバは、一般的には時間ベースメディアデータであるが必ずしもそうとは限らないデータの時間関連シーケンスをパケット化する。本発明の1つの実施形態において、ヒントは、送信側デジタル処理システムに結合された記憶装置上に記憶される。
段階307においては、ヒントに従ってパケット化されるデータがサーバコンピュータシステムなどの送信システムから受信側システムに送信される。このメディアデータは、ヒントに従ってメディアデータにパケット化することによって送信される。本発明の1つの代替の実施形態において、サーバコンピュータシステムは、ヒントの使用、及び代替パケット化プロセスによるメディアデータの送信を行わないことを決定することができる。
段階309において、受信側システムは、メディアデータによって表されるメディアオブジェクトを提示する。通常、このプレゼンテーション(メディアオブジェクトの閲覧及び聴取、或いはメディアオブジェクトの単なる閲覧又は単なる聴取とすることができる)は、パケットデータが受信側システムで受け取られるときに実施される。パケットデータは、本発明の1つの実施形態において、必須ではないが、受信側システム上に記憶することができる。従って、データのプレゼンテーションは、プレゼンテーションが終わると受信側システムにはローカルコピーは存在しないという意味で一時性のものである。別の実施形態において、メディアオブジェクトのプレゼンテーションは、メディアオブジェクトを表すメディアデータのヒントを作成した後にサーバシステム上で行なうことができる。本発明の1つの実施形態において、メディアデータは、ヒントに従うパケットに対して必ずしもフォーマット、コピー、その他が行われるとは限らない。
段階311において、受信側システムは、任意選択的に、受信されたメディアファイルが既に受信側システム上に記憶されている場合には、メディアファイルを再アセンブルすることができる。図3に示す方法の様々な段階は、図示され上述された順番とは異なる順番で行うことができ、及び/又は段階の一部を同時に実行することができる点は理解されるであろう。例えば、1つの実施形態において、段階309及び311は並行して実行される。
次に、本発明の1つの実施形態によるQuickTimeでの特定の実施を説明する。本発明の1つの実施形態において、ファイルにローカル(例えばサーバ、ジェネレータ、その他)で閲覧し且つQuickTimeムービー内のネットワークを介してストリーミングすることができるプレゼンテーションが提供される。一般に、ストリーミングサーバ(又は別のシステム)は、ストリーミングするデータユニット、これらの構成、及びタイミングに関する情報を有するはずである。このような情報は通常時間情報であるので、トラックにおいて説明することができる。サーバは、例えばプレゼンテーションを閲覧するのに使用されるのと同じインデックス作成操作を利用することによって、パケット化を実施してプロトコル情報を決定することができる。
サーバ用の命令を含むトラックは、パケットの形成及び送信のプロセスにおいてサーバに指示するデータセットを表すので、該トラックは、「ヒント」トラックと呼ばれる場合がある。QuickTimeファイルフォーマットは、ネットワーク上でのメディアデータのストリーミング並びにローカル再生をサポートする。プロトコルデータユニットの送信プロセスは時間ベースであり、従って、時間ベースデータの表示と同様に時間ベースフォーマットにより適切に記述される。ストリーミングをサポートするQuickTimeファイル又は「ムービー」は、ストリーミングするデータユニットに関する情報を含む。この情報は、「ヒント」トラックと呼ばれるファイルの更なるトラック内に含まれる。
ヒントトラックは、パケット形成を支援するストリーミングサーバ(又は他のデータ処理システム)向けの命令を含む。これらの命令は、サーバが送る即時データ(例えば、ヘッダ情報)又はメディアデータの参照セグメントを含むことができる。本発明の1つの実施形態において、命令は、編集又はプレゼンテーション情報がローカル再生用QuickTimeファイルで符号化される同じ方法でQuickTimeファイルにおいて符号化される。編集又はプレゼンテーション情報の代わりに、サーバが特定のネットワーク転送を使用してストリーミングに適切な方法でメディアデータをパケット化することができる情報を提供することができる。
本発明の1つの実施形態において、同じメディアデータは、ローカル再生用か又は幾つかの異なる転送タイプを介したストリーミング用であるかを問わず、ヒントを含むQuickTimeファイルにおいて使用される。異なる転送タイプ向けの別個の「ヒント」トラックは、同じファイル内に含むことができ、メディアは、メディア自体の何らかの追加のコピーを行うことなく、全てこうした転送タイプで再生することができる。更に、既存のメディアは、特定の転送用の適切なヒットトラックを追加することによってストリーミング可能にすることができる。本発明の1つの態様によれば、メディアデータ自体は、改変又は再フォーマットする必要はない。
従って、ヒントトラック内のサンプルは、一般に、パケットを形成する命令を含む。これらの命令は、サーバが送信する即時データ(例えば、ヘッダ情報)又は別のトラック内のメディアデータの参照セグメントを含むことができる。
本発明の1つの実施形態において、3つのレベルのデザインが以下であるように利用される。
1)メディアデータは、通常通り再生、編集、その他を行うことができるネットワークから独立したトラックのセットとして表される。
2)サーバヒットトラック用の共通の宣言及びベース構造がある。この共通フォーマットは、プロトコルに依存しないものであるが、どのプロトコルがサーバトラック内で記述されているかについての宣言部を含む。
3)送信することができる各プロトコルついてのサーバヒントトラックの特定のデザインがあり、全てのこれらのデザインは同じ基本構造を用いる。例えば、RTP(インターネット用)及びMPEG−2転送(ブロードキャスト用)、又は新しい標準プロトコル又はベンダー専用プロトコルについてのデザインが存在することができる。
本発明の1つの実施形態において、ヒントトラックの指示に基づいてサーバによって送られる結果として得られたストリームは通常のストリームであり、必ずしもQuickTime情報のトレースを含むとは限らない。本発明のこの実施形態では、QuickTime又はその構造又は宣言スタイルは必ずしも送信媒体上のデータ(例えば、ネットワークケーブル)内又は復号局内にある必要はない。例えば、RTPに基づいてストリーミングされるH.261ビデオ及びDVIオーディオを用いたファイルでは、本発明の1つの実施形態において、当該コーディングをRTPにパックするIETF仕様に完全に準拠したパケットストリームを得ることができる。
本発明の1つの実施形態において、ヒントトラックは、プレゼンテーションがローカルで閲覧されるときにヒントトラックが本質的に受信側システムによって無視されるように、構築及びフラグが立てられる。
1つの実施形態において、例えばビデオ、オーディオ、その他を含むことができるメディアデータの時間関連シーケンスは、デジタル処理システムによりパケット化され、次いで、同じデジタル処理システム上に提示することができる。更に、パケット化は、一時性のものとすることができ、その結果、提示、記憶、読み取り、その他がなされる時間関連シーケンスはまた、「オンザフライ」でパケット化される。1つの実施形態において、ヒントは、コピー、フォーマット、その他が行われていないメディアデータを参照することができ、例えば、ヒットが参照するメディアデータは、読み出し専用メモリ上などに元のフォーマットで記憶することができる。
1つの実施形態において、パケット化を行う同じヒンティングルーチンはまた、パケット化が行われるときにメディアを提示する。本発明の代替の実施形態において、時間関連メディアデータのパケットファイルをヒントトラックに従って生成し、例えば後で送信するために記憶することができる。
図4は、本発明の1つの実施形態によるメディアデータを転送するためのヒントトラックの利用を示している。図4において、メディアトラック用のヒントトラック401が示されている。RTPパケットを形成する方法を記述するヒントトラックサンプル405などの各ヒントトラックサンプルはヘッダを含むことができ、関連のメディアトラック(この場合はビデオトラック403)からの一部のデータを参照することができる。図4に示す実施形態において、メディアデータ(ビデオフレーム)及びRTPヒントは、関連のメディアファイルを比較的容易に読み取ることができるようにインターリーブされている。この実施例において、各フレームは、単一のRTPパケットに適合するように示されている。言うまでもなく、必要に応じてフレームを幾つかのパケットに分割することが可能である。逆に、所望があれば、複数のフレームを単一のパケットに入れることができ、これはオーディオデータに対して一般的に行われている。
上で検討したように、上述の論理構造は、物理的構造を意味する必要はない。メタデータはメモリにキャッシュすることができ、ヒントトラックサンプルは、ヒントトラックサンプルが参照するメディアサンプルと物理的にインターリーブされる(図4に示すように)。
或いは、ヒントトラックを含むメタデータ及びメディアデータの新規のセットを書き込むことが可能であり、該セットは、既存のプレゼンテーションにおいてメタデータ及びメディアデータを参照し増補する。図5は、本発明の1つの実施形態による、別個のファイルのメディアデータを参照するためのヒントトラックの利用を示している。図5において、2つのムービーファイル502及び504が示され、各々が固有のメタデータを備える。第1のムービーファイル502はビデオトラックを含む。第2のムービーファイル504は、ビデオトラック及びヒントトラックの両方を含むが、メタデータは、ビデオトラックのメディアデータがムービーファイル502内にあると宣言している。従って、ムービーファイル504に関連するヒントはまた、ムービーファイル502のメディアデータを指す。
本発明の1つの実施形態において、メディアファイルは、複数のプロトコル用のパケット化ヒントトラックを含むことができる。従って、各トラックは、ヒントトラックが適切となるプロトコル(及び適切な場合にプロトコルパラメータ)の宣言部を含むことができる。勿論、これらのトラックは全て、ファイル内のベースメディアトラックからのメディアデータを参照することができる。プロトコルの非依存性及び拡張性に対する要望は、説明された方法で満たすことができる。
本発明の1つの実施形態において、ヒントトラックは、メディアトラック内の全てのデータを使用する必要はない。ヒントトラックは、帯域幅閾値を達成するため、或いは他の理由のためデータのサブセット(例えば、一部のビデオフレームを省略することによって)を使用することができる。同じプロトコル用に複数のヒントトラックを提供することができるので、同じベースメディア情報の異なるサブセットを異なるレートで提供することができる。従って、本発明は、従来の方法及び装置よりも優れたスケーラビリティを提供することができる。
ヒントトラック自体及びQuickTimeメタデータは、1つの実施形態においてQuickTimeファイル内にあるはずであるが、ベースメディアは、QuickTimeがインポートし所定位置で参照することができるあらゆるファイルタイプに残すことができる点を強調すべきである。本発明の1つの実施形態において、ムービーファイル内のメタデータは、メディアデータが別のファイル内にあることを宣言するデータ参照を含むことができる。従って、サンプルテーブルオフセット及びポインタは、この「外部」ファイル内のデータを参照することができる。このように、本発明の1つの実施形態によれば、「au」オーディオファイル、「AVI」オーディオ/ビデオファイル、及びMIDIファイルなどの既存のレガシーフォーマットは、ベースメディアデータのコピー及び再フォーマットを必要とすることなくストリーミングすることができる。ベースメディアデータは、別個のファイル内のQuickTime宣言部及びヒント情報に書き込まれずに、単にこれらによって増補されるだけであるので、ベースメディアデータは、CD−ROMなどの読み取り専用機械可読媒体上に備えることができる。
本発明の1つの実施形態において、ヒントトラックは、オフライン計算結果を具現化し、通常は、パケット化、及び必要に応じて多重化をサポートする情報をサーバに供給するように最適化される。
例として、RTP(IETF標準規格リアルタイムプロトコル)及びMPEG−2転送用の例示的なヒントを付属書A〜Cに示している。
本発明の1つの実施形態において、単一のファイルは、必要以上のスペースオーバーヘッドを有することなく、複数のプロトコル又は同じプロトコルの複数の異なるパラメータ化のヒントトラックをサポートすることができる。新しいプロトコル及び関連するヒントトラックは、既存のプロトコルに依存するシステムを混乱させることなく設計することができる。従って、本発明は、少なくとも1つの実施形態においてはプロトコル中立である。
QuickTimeファイルフォーマットにおいて、トラックは、メタデータを更新、コピー、及び増補することによってムービーに追加することができる。メディアデータがメタデータとは別個のファイル内にあるか、又は最適化されたインターリーブが不要である場合、これは、比較的簡単且つ効率的な操作となる可能性がある。
本発明の1つの実施形態において、トラックは、1つのトラックのみを含み、所望であればオリジナルでメディアデータを参照することができるムービーメタデータの新しいセットを構築することによって抽出することができる。
例えば、本発明の1つの実施形態において、他のオーディオトラックのセットに対する代替としてマークされる新しいオーディオトラックを追加することができる。新しいオーディオトラックが言語コード(例えば、フランス語又はタガログ語)でマークされている場合、プレゼンテーション時間に適切なトラックを選択することができる。
SMPTEタイムコードトラックは、本発明の1つの実施形態による、必要が生じたときに提示、追加、又は除去することができるエレメンタリ・ストリームの実施例である。
本発明の1つの態様によれば、ヒントトラックは、既存のサーバ又はローカルでの再生において互換性の問題を引き起こすことなく、新しいプロトコルのための新しいフォーマットの開発を可能にすることができる。更に、新しいメディアトラックは、後方互換性を維持しながらファイルフォーマットの有効期間にわたって追加することができる。
本発明の1つの実施形態において、拡張性の領域は、以下を含む。
a)現在のQuickTimeファイルフォーマットによりカバーされないメディアタイプ(例えば、実験室機器読取り)について定義することができる新しいトラックタイプ。
b)定義することができる既存のトラックについての新しいコーディングタイプ(例えば、ビデオ又はオーディオコーデック)。これらのコーデック専用初期化情報についての明示的な規定がある。
c)新しいプロトコルについて定義することができる新しいヒントトラックタイプ、及びメディアデータ自体についてスペースオーバーヘッドを発生することなく2つ以上のプロトコルに関するヒント情報を含むことができるファイル。
読み取り専用媒体上の既存のコンテンツ(例えば、CD−ROM、DVD、その他上の予めパッケージされたムービー)は、本発明と共に使用することができる。
更に、本発明の1つの態様によれば、様々な「外部」ファイルフォーマットを使用することができる。本発明の1つの実施形態において、例えば、既存のコンテンツがQuickTimeフォーマットであるか、又はインポートすることができる場合には、コピー又は再フォーマットを必要とせずに、編集及びストリーミングすることができる。
本発明の1つの実施形態において、帯域幅のスケーラビリティを達成するためにコーデックがメディアデータのストラピングをサポートする場合、これらのストラピングされた帯域幅は、複数のストリームトラックを使用して表すことができる。各トラックは異なる帯域幅を表すことができる。トラックは、ベースメディアの選択されたサブセット内で共にグループ化することができる。
本発明の1つの実施形態において、プロトコルが帯域幅のスケーラビリティをサポートする場合、ヒントトラック自体は、各プロトコルデータユニット(ヒントトラック内のサンプル)についての情報を含むことができる。情報は、プロトコルデータユニットをネットワークに配信する必要のある帯域幅閾値を含むことができる。従って、ヒントトラックは、有効帯域幅を高、低、その他として示し、及び/又はデータ送信用の帯域幅に関係する他の情報を表示することができる。
本発明の1つの実施形態において、プロトコルが多重化プロトコル(例えば、MPEG−2転送)である場合、異なるデータ転送速度を達成するためにエレメンタリ・ストリームトラックの異なるサブセットを使用する異なるヒントトラックを構築することができる。従って、ビットレートの低い送信では一部のトラックを完全に省く場合がある。
本発明の1つの実施形態において、異なるコーデックを使用してベースデータを記録することが望ましい場合には、当該トラックを代替形態のグループに形成して、1つだけをプレゼンテーション用に選択することができる。プレゼンテーション用にどのトラックを使用するかに関する選択は、通常はプロトコルに依存し、本明細書で説明するヒントトラック手法を用いて達成することができる。
本発明の1つの実施形態において、暗号化をメディアファイルに予め適用することもできる。この場合、暗号化データは、(a)元のメディアデータにリンクされた新しいエレメンタリ・ストリーム(新しいトラック)(すなわち、不要となった場合には元のメディアデータを除去することができる)、又は(b)ヒントトラック自体に記憶することができる。ケース(b)において、ヒントトラックは、オンザフライで暗号化されていないエレメンタリ・ストリームからデータを抽出しないことも可能である。従って、メディアデータは暗号化によって変形される可能性があるので、メディアデータの全ては、ヒントトラック並びにストリーミングパケットプロトコルデータユニット情報内にあるものとすることができる。
埋め込みオブジェクトコンテンツ情報の実施例として、ムービー全体及び個々のトラックについてのIETFセッション記述情報をRTPヒントトラック用メタデータ内にユーザアトムとして記憶することができる。
本発明の1つの実施形態において、ファイルフォーマットは通常、再生可能フォーマットのメディアデータとストリーミング情報との両方を含む。1つの実施形態において、メディア非依存、プロトコル非依存、及びメディアをローカルに提示する能力を保持しながら、比較的低いオーバーヘッドでこのフォーマットから直接ストリーミングすることができる。
本発明の1つの態様によれば、ヒントトラックは、コーデック、タイミング及びパケット化の詳細な知識をオフライン作成プロセスに抽象化することができる。従って、ヒントトラックを辿りデータストリームを生成することは、比較的簡単であり、ストリーミングされているメディアの特殊な知識は不要とすることができる。従って、本発明の1つの態様によれば、例えばデータコンテンツの詳細からサーバを切り離すことができる。
本発明の1つの実施形態において、ヒントトラックのセットを使用して、例えば、ネットワークPDUが送信すべき時系列において、ディスク上で論理ディスク境界にネットワークPDUをレイアウトすることによってストリーミング用に直接最適化されるファイルを構築することができる。このようなファイルは、もはや一般的なプレゼンテーションとなることはできないが、ストリーミングすることはできる。1つの実施形態において、ヒントトラックを用いて作成されたパケット化ファイルを記憶し、例えば、ストリーミング用に後で最適化することができる。
本発明の1つの実施形態において、外部ファイルフォーマットをカプセル化することによって、メディアデータを他のフォーマットで保存しながら、それでもQuickTimeで公開することができる。例えば、既存のフォーマットは、適切なラッパを適用することによって新しいメディアデータファイル内に直接カプセル化することができ、或いは、そのまま残して、ヒントトラックによってセグメントで又は全体として参照し、レガシー形式をコピーせずにストリーミング可能にすることができる。単一のムービーは、複数のレガシーフォーマットから選択された要素を含むことができる。本発明は、ベースメディアフォーマットを制約しない。
一般に、取り込み、オーサリング及び編集、ダウンロード並びにストリーミングに及ぶ共通のフォーマットは、一般的にフレキシビリティを提供する。素材は、コピー又は再フォーマットせずに、使用後に再加工するか、又は複数の方法で使用することができる。本発明の1つの実施形態において、標準的なエディタを使用してヒントトラックを除去し、次いで編集が完了した後に再度ヒンティングすることによって、ヒントされた素材を再加工及び再使用することができる。
ローカルで閲覧するためにメディアファイルをダウンロードすることが望ましい場合、その目的のために最適化されたインターリーブファイルを構築することができ、別個の宣言ファイル内のストリーミングメタデーは、同じベースメディアデータを参照する。従って、このダウンロードは、ストリーミング情報を含まない場合があり、更に、メディアデータは、ストリーミングサーバに一度しか存在することができない。
論理構造を物理的構造から分離することによって、ファイルの物理的構造をアプリケーション(例えば、編集、ローカル閲覧、ストリーミング)に応じて異なるように最適化することができる。
各メディアトラックについて複数のヒントトラックの存在を許容することによって、本発明の1つの実施形態において、ファイルは、メディアの複数のコピーを必要とせずに複数のプロトコルを介してストリーミングすることによって公開することができる。
図6は、本発明の1つの実施形態による、メディアデータを処理することができるコンピュータシステムのネットワークを示す図である。図6に示すように、幾つかのクライアントコンピュータシステムは、インターネット622を介して互いに結合されており、その1つ又はそれ以上は、図3を参照しながら上述された受信側システムの1つの実施を表す。用語「インターネット」とは、複数のネットワークのうちのあるネットワークを指すことは理解されるであろう。このようなネットワークでは、情報交換にTCP/IP、ATM、SNA、SDI、その他のような様々なプロトコルを使用することができる。インターネットの物理的接続並びにインターネットのプロトコル及び通信手順は当業者には周知である。インターネット103へのアクセスは通常、ISP624及びISP626などのインターネットサービスプロバイダ(ISP)によって提供される。クライアントコンピュータシステム602、604、618、620などのクライアントシステム上のユーザは、一般に、ISP624及び626などのインターネットサービスプロバイダを介してインターネットにアクセスする。インターネットへのアクセスは、クライアントコンピュータシステム602、604、618、620、及び/又はウェブサーバシステム628などの2つ又はそれ以上のデジタル処理システム間での情報の転送(例えば、電子メール、テキストファイル、メディアファイル、その他)を容易にすることができる。例えば、クライアントコンピュータシステム602、604、618、620、及び/又はウェブサーバ628のうちの1つ又はそれ以上は、クライアントコンピュータシステム602、604、618、620、及び/又はウェブサーバ628のうちの別の1つ又はそれ以上にメディアデータ(例えば、ビデオ及びオーディオ、又はビデオもしくはオーディオ)を提供することができる。これは要求に応答して行うことができる。本明細書で説明するように、このようなメディアデータは、システム600内でヒントに従って転送することができる。このようなヒントは、本発明の1つの実施形態において、メディアデータの特定のフォーマット及び/又は特定のデータ通信(例えば、ネットワーク)プロトコルに従って作成することができる。
ウェブサーバ628は通常、World Wide Webのプロトコルのような1つ又はそれ以上のデータ通信プロトコルで動作する少なくとも1つのコンピュータシステムから構成され、従って、通常はインターネット622に結合される。任意選択的に、ウェブサーバ628は、クライアントコンピュータシステムにインターネット及び/又は他のネットワークへのアクセスを提供することができるISPの一部とすることができる。クライアントコンピュータシステム602、604、618及び620は各々、適切なウェブブラウジングソフトウェアによりHTML文書(例えば、ウェブページ)など、ウェブサーバ628が提供することができるデータにアクセスすることができる。このようなデータは、QuickTimeムービーなど、クライアントコンピュータシステム602、604、618及び620が提示することができるメディアを提供することができる。
ISP624は、クライアントコンピュータシステム602の一部とみなすことができるモデムインタフェース606を介して、クライアントコンピュータシステム602とのインターネット接続性を提供する。クライアントコンピュータシステムは、Macintoshコンピュータ、「ネットワーク」コンピュータ、ハンドヘルド/携帯型コンピュータ、ウェブTVシステム、又は他のタイプのデジタル処理システム(例えば、デジタル処理能力を有する携帯電話)など、従来のコンピュータシステムとすることができる。同様に、ISP626は、クライアントコンピュータシステム602、604、618及び620についてインターネット接続性を提供するが、図6に示すように、このような接続性は、クライアントコンピュータシステム602、604、618及び620など、様々なクライアントコンピュータシステム間で変わる可能性がある。例えば、図6に示すように、クライアントコンピュータシステム604は、モデムインタフェース608を介してISP626に結合されており、一方、クライアントコンピュータシステム618及び620は、ローカルエリアネットワーク(LAN)の一部である。図6で、それぞれモデム606及び608として示すインタフェース606及び608は、アナログモデム、ISDNモデム、ケーブルモデム、衛星伝送インタフェース(例えば、「Direct PC」)、無線インタフェース、又はクライアントコンピュータシステムのようなデジタル処理システムを別のデジタル処理システムに結合する他のインタフェースとすることができる。クライアントコンピュータシステム618及び620は、それぞれネットワークインタフェース614及び161を介してLANバス612に結合されている。ネットワークインタフェース614及び616は、イーサネット(登録商標)タイプ、非同期転送モード(ATM)又は他のタイプのネットワークインタフェースとすることができる。LANバスは、LANに対しファイアウォール及び他のインターネット関連サービスを提供することができるゲートウェイデジタル処理システム610にも結合されている。ゲートウェイデジタル処理システム610は、ISP626に結合され、クライアントコンピュータシステム618及び620とのインターネット接続性を提供する。ゲートウェイデジタル処理システム610は、例えば従来のサーバコンピュータシステムを含むことができる。同様に、ウェブサーバ628は、例えば従来のサーバコンピュータシステムを含むことができる。
システム600は、クライアントコンピュータシステム602、604、618及び620及び/又はウェブサーバ628のうちの1つ又はそれ以上が、クライアントコンピュータシステム602、604、618及び620及び/又はウェブサーバ628のうちの別の1つ又はそれ以上にメディアデータ(例えば、ビデオ及びオーディオ、又はビデオ、又はオーディオ)を提供することを可能にする。このようなデータは、例えば、受信側システムによる要求に応答して供給することができ、受信側システムは、例えば、クライアントコンピュータシステム602、604、618及び620の1つ又はそれ以上とすることができる。本明細書で説明するように、このようなメディアデータは、ヒント又はヒントトラックに従ってシステム600において転送することができる。当該ヒントは、本発明の1つの実施形態において、メディアデータの特定のフォーマット及び/又は特定のデータ通信(例えば、ネットワーク)プロトコルに従って作成し、本発明の1つの態様によれば、メディアデータのパケット化を可能にすることができる。
図7は、本発明の1つの実施形態に従って使用することができるデータ処理システムのブロック図である。例えば、図7に示すデジタル処理システム650は、クライアントコンピュータシステム、ウェブサーバシステム、従来のサーバシステム、その他として使用することができる。更に、デジタル処理システム650を使用して、ISP624又は624など、インターネットサービスプロバイダの1つ又はそれ以上の機能を実行することができる。デジタル処理システム650は、モデム又はネットワークインタフェース668を介して外部システムにインタフェース接続することができる。モデム又はネットワークインタフェース668は、デジタル処理システム650の一部とみなすことができる点は理解されるであろう。モデム又はネットワークインタフェース668は、アナログモデム、ISDNモデム、ケーブルモデム、トークンリングインタフェース、衛星伝送インタフェース、無線インタフェース、又は2つ又はそれ以上のデジタル処理システム間のデータ通信リンクを実現する他のインタフェースとすることができる。
デジタル処理システム650はプロセッサ652を含み、1つ又はそれ以上のプロセッサを表すことができ、Motorola PowerPCプロセッサ、Intel Penttium(又はx86)プロセッサといった、1つ又はそれ以上の従来のタイプのこうしたプロセッサを含むことができる。メモリ155は、バス656によってプロセッサ652に結合される。メモリ155は、ダイナミックランダムアクセスメモリ(DRAM)とすることができ、及び/又は、スタティックRAM(SRAM)を含むことができる。このプロセッサはまた、メモリ155の一部又はメモリ155と別個のものとみなすことができる他のタイプの記憶領域/メモリ(例えば、キャッシュ、フラッシュメモリ、ディスク、その他)にも結合することができる。
バス656は更に、プロセッサ652をディスプレイ制御装置658、大容量メモリ662、モデム又はネットワークインタフェース668、及び入力/出力(I/O)制御装置664に結合する。大容量メモリ662は、情報を記憶するための磁気、光学、電磁光学、テープ、及び/又は他のタイプの機械可読媒体/デバイスを表すことができる。例えば、大容量メモリ662は、ハードディスク、読み取り専用又は書き込み可能光学CD、その他を表すことができる。ディスプレイ制御装置658は、従来の方法で、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ、又は他のタイプのディスプレイ装置を表すことができるディスプレイ660を制御する。I/O制御装置664は、I/Oデバイス666を制御し、該デバイスは、1つ又はそれ以上のキーボード、マウス/トラックボール、他のポインティングデバイス、磁気及び/又は光学ディスクドライブ、プリンタ、スキャナ、デジタルカメラ、マイク、その他を含むことができる。
デジタル処理システム650は、多くの異なる構成及びアーキテクチャを有することができ、本発明と共に利用することができるシステムの1つの実施例を表すことは理解されるであろう。例えば、Macintosh及びIntelシステムは、周辺バス、専用キャッシュバス、その他のような複数のバスを有することが多い。一方、本発明のデジタル処理デバイスとして使用することができるネットワークコンピュータは、例えば、ハードディスク又は他の大容量記憶装置を含まない場合があるが、モデム又はインタフェース668など、プロセッサ652によって処理されるネットワーク接続部からのルーチン及び/又はデータを受信することができる。同様に、当技術分野で公知であるウェブTVシステムは、本発明のデジタル処理システムとみなすことができるが、このようなシステムは、I/Oデバイス666を参照しながら上述されたような、1つ又はそれ以上のI/Oデバイスを含まない場合がある。更に、携帯電話能力及び/又はページング能力を利用することができる携帯型通信及びデータ処理システムは、本発明と共に使用することができるデジタル処理システムとみなすことができる。
図7に示すシステム650において、大容量メモリ662(及び/又はメモリ654)は、本発明に従って(例えば、ヒントによって)処理することができるメディア(例えば、ビデオ、オーディオ、ムービーなど)を記憶することができる。或いは、メディアデータは、例えば、モデム又はネットワークインタフェース668を介してデジタル処理システム650が受信して記憶し、及び/又はディスプレイ660及び/又はI/Oデバイス666によって提示することができる。1つの実施形態において、パケット化メディアデータは、ヒントトラックに従ってLAN及び/又はインターネットなどのデータ通信ネットワークにわたって送信することができる。一方、プロセッサ652は、1つ又はそれ以上のルーチンを実行して、1つ又はそれ以上のヒントトラックを有するファイルを使用するか、或いは1つ又はそれ以上のヒントトラックを作成し、ヒントトラックに従ってプレゼンテーション又はパケット化のためにメディア(例えば、予めパッケージされたムービー、オーディオファイル、ビデオファイルなど)を処理することができる。このようなルーチンは、大容量メモリ662、メモリ664、及び/又は、デジタル処理システム650がアクセス可能な別の機械可読媒体に記憶することができる。1つの実施形態において、デジタル処理システム650は、ヒントトラックが埋め込まれたメディアデータを処理することができる。同様に、このような埋め込まれたメディアデータは、大容量メモリ662、メモリ664、及び/又はデジタル処理システム650がアクセス可能な機械可読媒体内に記憶することができる。
図8は、本発明の1つの実施形態による、ヒントを利用してメディアデータを転送するシステムのブロック図である。図8に示すシステム680は、データ通信リンク686を介してサーバ694に結合されたクライアントデジタル処理システム682として示される受信側システムを含む。サーバ694及び/又はクライアントデジタル処理システムは、例えば、図6及び図7を参照しながら説明されたデバイス/システムの1つ又はその組み合わせを表すことができる。
サーバ694は、ヒット生成及び処理ユニット688、メディア処理ユニット690及びデータ通信ユニット692を含み、これらの各々が、ハードワイヤード回路又は機械実行可能命令、或いはこれらの組み合わせを含むことができる。更に、このようなハードワイヤード回路及び/又は機械実行可能命令の少なくとも一部は、ヒット生成及び処理ユニット688、メディア処理ユニット690、並びにデータ通信ユニット692の組み合わせの間で共有することができる。1つの実施形態において、少なくとも1つのプロセッサに結合された、適切なルーチン及び/又はデータが記憶された少なくとも1つの記憶領域/メモリ(例えば、機械可読媒体)を利用して、少なくとも部分的には、ヒット生成及び処理ユニット688、メディア処理ユニット690及びデータ通信ユニット692の1つ又はその組み合わせを実装する。
1つの実施形態において、ヒット生成及び処理ユニット688は、メディア処理ユニット690によって処理されたメディアデータのパケット化のためのヒントを作成し記憶する。上述したように、ヒントは、メディアファイルに対して別個のファイルとして生成し記憶することができ、或いはメディアデータに埋め込むことができる。2つ以上のメディアフォーマットが処理されることになる場合、ヒット生成及び処理ユニット688が適切なフォーマットを考慮して、ヒントを生成することができる。メディアフォーマットに関する情報は、メディアデータ(例えば、ビデオ、又はビデオ及びオーディオのメディアファイル)を提供することができるメディア処理ユニット690により与えられることができる。同様に、データ通信ユニット692は、データ通信リンク686を介して、ヒントに従ってパケット化されたこのようなメディアデータを交換するため1つ又はそれ以上のデータ通信(例えば、ネットワーク)プロトコルを提供することができる。従って、ヒント生成及び処理ユニットは、メディア処理ユニット690により提供されたメディアフォーマット情報、及びデータ通信ユニット692により提供されたプロトコル情報に基づいて、クライアントデジタル処理システム682のような受信側デジタル処理システムに転送するための適切なヒントと、メディア及び/又はヒントのパケット化とを求めることができる。1つの実施形態において、メディア及びヒントのストリーミングは、QuickTimeフォーマットに従って行われる。
データ通信リンク686を介して受信されたメディアデータ及びヒントパケットに応答して、クライアントデジタル処理システム682は、メディアデータによって表されたメディアオブジェクトを提示することができる。このようなプレゼンテーションは、上述のように一時的に行うことができる。本発明の1つの実施形態において、メディアデータは、任意選択的に、クライアントデジタル処理システム682が記憶し、例えば、その後のクライアントデジタル処理システム682によるプレゼンテーション及び/又は送信のために再アセンブルすることができる。
図9は、本発明の1つの実施形態による、ヒントを利用してメディアデータを転送するシステムのブロック図である。詳細には、図9は、ジェネレータと呼ばれる別個のデジタル処理システムがヒント(又は、ヒントトラック)を生成して、クライアントコンピュータシステムなどの別のシステムに転送するために該ヒントを使用してメディアデータをパケット化するサーバのような別のシステムに提供することができる、本発明の実施形態を示している。データ通信リンク686を介してクライアントデジタル処理システム682とデータを交換することができるサーバ700を含むシステム696が図9に示されている。しかしながら、図9に示す実施形態において、サーバ700はヒントを生成しない。むしろ、データ通信リンク708によってサーバ700に結合されたジェネレータ710が、メディアデータをパケット化するのに使用されるヒントを生成するヒント生成ユニット712を含む。
1つの実施形態において、システム696の動作は、以下の通りである。すなわち、サーバ700は、メディアデータを含む1つ又はそれ以上のメディアファイルのヒントを生成するようジェネレータ710に要求する。例えば、メディアファイルは、サーバ700内の機械可読媒体上に記憶することができる。要求は、メディアファイルのフォーマット及び/又はメディアデータ及び/又は他のデータを送信するためのデータ通信プロトコルを示す情報を含むことができる。データ通信プロトコルは、データ通信リンク686に関連付けることができ、データ通信リンク686は、本発明の1つの実施形態において、サーバ700とクライアントデジタル処理システム682との間でのメディア及び/又は他のデータの交換を容易にするために、特定の物理的及び論理的特性を有するネットワーク接続と関連付けることができる。要求に応答して、ヒント生成ユニット712は、時間関連ヒントトラックに関連付けることができる適切なヒントを生成し、該ヒントをサーバ700に提供する。データ通信リンク708を介してジェネレータ710から受信されたヒントに応答して、サーバ700、及び詳細にはヒント処理装置702は、ヒントを使用してクライアントデジタル処理システム682に送信するためにメディアデータをパケット化する。
データ通信リンク686を介して受信されたメディアデータ及びヒントパケットに応答して、クライアントデジタル処理システム682は、メディアデータによって表されたメディアオブジェクトを提示することができる。このようなプレゼンテーションは、上述したように一時的に行うことができる。本発明の1つの実施形態において、メディアデータは、任意選択的に、クライアントデジタル処理システム682が記憶し、例えば、その後のクライアントデジタル処理システム682によるプレゼンテーション及び/又は送信のために再アセンブルすることができる。
図10は、本発明の1つの実施形態による、メディアデータ送信を行うヒントを生成する方法を示すフローチャートである。段階720において、2つ以上のフォーマットが使用されることになる場合、送信されるメディアデータについてのメディアフォーマットが決定される。1つのフォーマットのみが使用される場合、720は実行されなくてもよい。段階722において、同様に2つ以上の(プロトコル)を使用することができると仮定して、適切なデータ通信プロトコルを決定する。段階724において、メディアフォーマット及びデータ通信プロトコル(その一方又は両方が選択/構成されている可能性がある)に基づいて、メディアデータ送信に関係するヒント(例えば、ヒントトラック)を作成し記憶する。
任意選択である段階726において、ヒントを別のデジタル処理システムに送信することができる。本発明の1つの実施形態において、例えば、図10の方法は、少なくとも部分的には、1つのデジタル処理システム(例えば、サーバ)が単独で実行することができる。代替の実施形態において、図10の方法は、少なくとも部分的には、2つ又はそれ以上のデジタル処理システムが実行してもよい。例えば、メディアデータの属性は、サーバ又は他のシステムがジェネレータなどの別のデジタル処理システムに提供することができる。これに応答して、ジェネレータは、その属性に基づいて、サーバで記憶することができる適切なメディアフォーマット、データ通信プロトコル、及びメディアデータパケット化のためのヒントを決定することができる。或いは、サーバは、適切なメディアフォーマット及びプロトコルをジェネレータに提供することができ、該ジェネレータは、次にヒントを生成することができる。ジェネレータは、ヒントをサーバ又は他のデジタル処理システムに送信することができ、サーバ又は他のデジタル処理システムは、ヒントに従ってメディアデータをパケット化することができる。
図11は、本発明の1つの実施形態による、ヒントに従って受信側システムによって受信されたメディアデータを処理する方法を示すフローチャートである。段階730において、ヒント又はヒントトラックに従って受信側システムによって送信されるメディアデータが受信側システムにより受信される。1つの実施形態において、受信側システムは、パケット化メディアデータ並びにパケット化ヒントトラックを受信することができる。ヒントトラックは、本発明の1つの実施形態において、メディアデータの少なくとも一部と関連付けることができる。このようなデータは、受信側システムが行なうことができる要求に応答して、受信側システムが受信することができる。例えば、1つの実施形態において、受信側システムは、クライアントコンピュータシステムとすることができ、メディアデータを求めてサーバ又は他のデジタル処理システムに対して要求を行うことができる。これに応答して、サーバは、メディアデータをパケット化するヒントを生成(又は別個のデジタル処理システムによってサーバのために生成される)して、ヒントを含むことができるパケット化メディアデータを受信側システムに送信することができる。
段階732において、受信側システムによって受信されたメディアデータが表すメディアオブジェクトが受信側システムで提示される。例えば、メディアデータは、受信側システムによって、例えばディスプレイ及びスピーカにより「提示」されるビデオ、オーディオ、又はその組み合わせを含むことができる。上述したように、メディアデータは、QuickTimeムービーに関連付けることができる。
任意選択的に、段階734において、ヒントを含むことができるメディアデータをメディアファイルとして受信側システムが記憶することができる。従って、本発明の代替の実施形態において、段階732は、メディアデータが受信されるときには実行しなくともよく、或いは、段階734の前、後、又は段階734と並行して実行することができる。
段階734において、記憶されたメディアファイルは、任意選択的に再アセンブル及び/又は提示することができる。従って、段階732は、段階734の後に実行することができる。
図12は、本発明の1つの実施形態による、ジェネレータなどのデジタル処理システムがアクセスすることができる機械可読記憶媒体の実施例である。図12に示され且つ図12を参照しながら以下で説明する要素を記憶する実際のメモリは、1つ又はそれ以上のディスク(例えば、磁気、光学、磁気光学、その他とすることができる)、図7を参照して上述したメモリ654及び/又は大容量メモリ662など、1つ又は複数の要素とすることができることは理解されるであろう。更に、図12に示す機械可読記憶媒体が関連付けられるジェネレータがネットワークコンピュータである1つの実施形態において、機械可読記憶媒体の要素の1つ又はそれ以上は別のデジタル処理システムに記憶し、ジェネレータにダウンロードすることができる。更に、機械可読記憶媒体に関連して説明した要素は、ある時点で、不揮発性大容量メモリ(例えば、ハードディスク)に記憶することができる。逆に、他の時点では、機械記憶媒体の要素は、DRAM、SRAM、ディスク、その他などの異なる記憶領域間に分散させることができる。
図12は、機械可読記憶媒体740を示している。1つの実施形態において、この機械可読記憶媒体は、本発明の1つ又はそれ以上の方法に従ってヒント又はヒントトラックを生成するデジタル処理システム、すなわちジェネレータによって少なくとも部分的に利用される。図8を参照して説明されたジェネレータは、ヒントトラックに従ってメディアデータを送信するデジタル処理システムに一体化することができ、或いは、図9を参照して説明したように、ヒントを作成し、該ヒントを利用してメディアデータをパケット化し送信するサーバなどの別のデジタル処理システムに該ヒントを提供するデジタル処理システムとすることができる。
図12に示すように、機械可読記憶媒体740は通常、幾つかの要素を含む。例えば、機械可読記憶媒体740は、サーバオペレーティングシステム(OS)742によって示されるように、ジェネレータにオペレーティングシステムの機能を提供するソフトウェアを含む。ネットワーク伝送ルーチン748は、ルーチン、プロトコル、その他など、ジェネレータがデータ通信リンクを介してデータを送受信することを可能にするデータ通信機能を提供する。
加えて、機械可読記憶媒体740は、メディア送信に関連したヒントを作成するためのルーチン及びデータを含む。従って、機械可読記憶媒体740は、任意選択的に、ヒット作成ルーチン744によるヒントの作成に必要とすることができる1つ又はそれ以上のデータ通信プロトコル及びメディアフォーマットに関係する情報を提供することができる情報750を含むことができる。例えば、情報750は、QuickTimeムービー、RTP、MPEG、その他に関係する情報を含むことができる。しかしながら、このような情報は、少なくとも部分的に、ヒット作成ルーチン744に一体化し、及び/又はリモートデジタル処理システムによってジェネレータに提供することができる。
ヒット作成ルーチン744によって作成されたヒントは、作成ヒントとして記憶され、及び/又は他の場所(例えば、サーバとすることができるリモートデジタル処理装置)に記憶/送信することができる。ヒントは、やはり時間に関連する(例えば、ビデオ、オーディオ、ビデオ及びオーディオなど)メディアデータのパケット化及び送信のための時間に関連したヒントトラックである。
機械可読記憶媒体740についてジェネレータに関連して説明したが、媒体740は、少なくとも部分的には、幾つかのタイプのデジタル処理システム、データ記憶媒体、その他の一部とすることができる。例えば、機械可読記憶媒体740は、少なくとも部分的には、サーバ又は他のデジタル処理システムの一部として含めることができる。更に、機械可読記憶媒体740は、少なくとも部分的には、1つ又はそれ以上のディスク又は他の機械可読媒体上のソフトウェアユーティリティの一部として含めることができる。
図13は、本発明の1つの実施形態による、サーバなどのデジタル処理システムによってアクセスすることができる機械可読記憶媒体の実施例である。図13に図示され且つ参照しながら以下で説明される要素を記憶する実際のメモリは、1つ又はそれ以上のディスク(例えば、磁気、光学、磁気光学、その他とすることができる)、図7を参照しながら上述されたメモリ654及び/又は大容量メモリ662など、1つ又は複数の要素とすることができる点は理解されるであろう。更に、図13に示す機械可読記憶媒体が関連付けられるサーバがネットワークコンピュータである1つの実施形態において、機械可読記憶媒体の要素の1つ又はそれ以上は、別のデジタル処理システムに記憶され、サーバにダウンロードすることができる。更に、機械可読記憶媒体に関連して説明された要素は、ある時点で、不揮発性大容量メモリ(例えば、ハードディスク)に記憶することができる。逆に、他の時点で、機械記憶媒体の要素は、DRAM、SRAM、ディスク、その他などの異なる記憶領域間に分散させることができる。
図13は、機械可読記憶媒体760を示している。1つの実施形態において、この機械可読記憶媒体は、本発明の1つ又はそれ以上の方法に従ってデータ通信リンク上で送信するためにメディアデータをパケット化するのに少なくとも部分的に利用される。機械可読記憶媒体760は、図8を参照して説明されるサーバ694のようなサーバに関連付けられ、ヒントトラックを作成して該ヒントトラックに従ってメディアデータを送信するためのルーチンを含めることができる。別の実施形態において、機械可読記憶媒体760は、図9を参照して説明されたサーバ700のようなデジタル処理システムに関連付けることができ、ジェネレータなどのデジタル処理システムは、ヒントを作成するためのルーチンを含み、サーバは、機械可読記憶媒体760によって提供されるルーチンによって処理されるヒントを使用して、メディアデータをパケット化して送信することができる。
機械可読記憶媒体760は幾つかの要素を含む。例えば、機械可読記憶媒体760は、サーバオペレーティングシステム(OS)762によって示されるように、サーバにオペレーティングシステム機能を提供するソフトウェアを含む。ネットワーク通信ルーチン768は、サーバがデータ通信リンクを介してデータを送受信できるように、ルーチン、プロトコル、その他などデータ通信機能を提供する。
加えて、機械可読記憶媒体760は、メディアデータをパケット化するメディアパケット化ルーチン770を含み、該ルーチンは、時間に関連し、ヒントに基づき、更にパケット化することもできる。従って、機械可読記憶媒体760は、メディアデータ記憶領域764及びヒント記憶領域766を含み、メディアデータ(例えば、QuickTimeムービー又は他のメディアトラックとすることができる)及びヒント(例えば、ヒントトラック)をそれぞれ記憶する。ヒントは、メディアデータのパケット化及び送信のための時間に関連するヒントトラックを含み、メディアデータもまた通常は時間に関連する(例えば、ビデオ、オーディオ、ビデオ及びオーディオ)。1つの実施形態において、ヒントトラックは、メディアデータパケットとは別個にパケット化される。1つの実施形態において、ヒントは、別個のメディアファイル内に存在することがあるメディアデータ(例えば、特定のパケット)を識別するポインタ情報を含む。
図14は、本発明の1つの実施形態による、受信側システム又は他のデジタル処理システムのような、デジタル処理システムがアクセスできる機械可読記憶媒体の実施例である。図14に示され且つ図14を参照して以下で説明される要素を記憶する実際のメモリは、1つ又はそれ以上のディスク(例えば、磁気、光学、磁気光学、その他とすることができる)、図7を参照して上述したメモリ654及び/又は大容量メモリ662といった、1つ又は複数の要素とすることができる点は理解されるであろう。更に、図14に示す機械可読記憶媒体が関連付けられる受信側システムがネットワークコンピュータである1つの実施形態において、機械可読記憶媒体の要素の1つ又はそれ以上は、別のデジタル処理システムに記憶されて、受信側システムにダウンロードすることができる。更に、機械可読記憶媒体に関連して説明された要素は、ある時点では、不揮発性大容量メモリ(例えば、ハードディスク)に記憶することができる。逆に、他の時点では、機械記憶媒体の要素は、DRAM、SRAM、ディスク、その他などの異なる記憶領域間に分散させることができる。
図14は、機械可読記憶媒体780を示している。1つの実施形態において、この機械可読記憶媒体は、本発明の1つ又はそれ以上の方法に従ってパケット化されたメディアデータを処理するために、少なくとも部分的に利用される。機械可読記憶媒体780は、図8及び図9を参照して説明されるクライアントデジタル処理システム682などの受信側システムに関連付けられ、ヒントに従って送信/受信されたメディアデータを提示するためのルーチンを含むことができる。或いは、機械可読記憶媒体780は、ヒント(例えば、ヒントトラック)が埋め込まれたメディアデータを含むことができる。このような埋め込まれたメディアデータは、機械可読記憶媒体780のような機械可読記憶媒体上に記憶されたルーチンによって予めパッケージ化し、又は生成することができる。
機械可読記憶媒体780は、幾つかの要素を含むことができる。例えば、機械可読記憶媒体780は、サーバオペレーティングシステム(OS)772によって示されるように、受信側システムにオペレーティングシステム機能を提供するソフトウェアを含む。ネットワーク通信ルーチン782は、サーバがデータ通信リンクを介してデータを送受信できるように、ルーチン、プロトコル、その他のようなデータ通信機能を提供する。
加えて、機械可読記憶媒体780は、ヒントに従ってパケット化されたメディアデータを提示するメディアプレゼンテーションルーチン778を含む。従って、機械可読記憶媒体780、及び詳細にはメディアプレゼンテーションルーチン778は、オーディオ及び/又はビデオデータの圧縮解除、ビデオの表示、及び/又はオーディオの再生、その他を行うためのルーチンを含むことができる。更に、メディアプレゼンテーションルーチン778は通常、メディアデータに関連するヒントの処理を行う。1つの実施形態において、ヒントは、メディアが提示されるときに単純に無視される。
任意選択的に、機械可読記憶媒体780は、ヒントに従ってパケットされたメディアデータをメディアデータ774として記憶し、記憶されたメディアデータに(例えば、提示、送信、その他のために)再アセンブルするためのメディアデータ再アセンブルルーチン776を含むことができる。
図15は、本発明の1つの実施形態による、メディア及びヒント情報が記憶/転送されたデータ記憶及び/又は通信媒体の図である。様々なタイプの転送及び/又は記憶媒体を表すデータ記憶及び/又は通信媒体800が示されており、これらは本発明に従ってパケット化されたメディアデータパケット804及びヒントパケット806を記憶又は転送することができる。例えば、媒体800は、図7を参照して説明された大容量メモリ662及び/又はメモリ654を表すことができる。媒体800は、図6に示すLANバス612又はメディア及び/又は他の情報を表すデータ/信号を転送するためのデータ通信リンク686のような通信媒体も表すことができる。
ヒントパケット806及びメディアパケット804は、図15に示すように、1つのパケット内に一体化するか、或いは別個に記憶又は転送することができる。更に、ヒントパケット806及びメディアパケット804は、本明細書で説明されたフォーマット、又は他のメディアフォーマット、ネットワークプロトコル、及び/又はデジタル処理デバイスアーキテクチャと関連付けられたフォーマットのような、幾つかのタイプのフォーマットを具現化することができる。
エクストラクタ・トラック
ヒントトラックは、パケット構築命令を含むことに加えて、スケーラブルなコード化されたメディアで利用可能な複数のメディアストリームを示すのに使用することができる。スケーラブルなコード化されたメディアは、同じビデオコンテンツの複数のバージョンを記憶するメディアである。例えば、スケーラブルなコード化されたメディアは、ハンドヘルドデバイス、コンピュータ、標準精細度デバイス、高精細度デバイス、その他に好適なビデオストリームを記憶することができる。スケーラブルなコード化されたメディアの1つの実施例は、図16Aに示すように、H.264/MPEG−4 AVCビデオコーデックと共に使用されるスケーラブルビデオコーディングである。SVC(スケーラブルビデオコンテンツ)は、単一のSVCベースビデオトラックにコード化された複数のビデオストリームを示すのに使用される。SVCは、本明細書では、スケーラブルなメディアコンテンツ又はスケーラブルコンテンツを表し且つその実施例となるように使用される。SVCベースビデオトラックから利用可能な各ビデオストリームは、ビデオ動作点に対応する。1つの実施形態において、ビデオ動作点は、時間属性(例えば、フレーム数/秒(fps))、空間属性(例えば、水平方向及び垂直方向の画素数)及び品質ビデオ属性(例えば、異なる信号対雑音比)に対応するが、ビデオ動作点の代替の実施形態は、より多くの、又はより少ない、及び/又は異なるビデオ属性(例えば、ビット深度、彩度サブサンプリング周波数、その他)を有することができる。時間ビデオ属性は、ビデオフレームレート(例えば、15フレーム/秒(fps)、24fps、30fps、その他)を含む。一方、空間ビデオ属性は、ストリームのビデオ解像度を記述するものである。例えば例証として、ビデオストリームは、sub−quarter common intermediate format(SQCIF、解像度128x96画素)、quarterCIF(QCIF、解像度176x144画素)、CIF(解像度352x288画素)、その他とすることができる。空間ビデオ属性は、以下の図16Bで更に説明する。加えて、ビデオ品質属性は、信号対雑音比として品質ビデオを記述するものである。例えば、所与の解像度及びフレームレートのビデオは、異なる信号対雑音比に対応する可変ビットレート(例えば、128kpbs、192kbpsなど)で送ることができる。
図16Aは、SVCコード化ビデオベーストラックの1つの実施形態を示す。図16Aにおいて、SVCベーストラック1600は、別個のフレーム1602A−Dに細分化される。各1602A−Dは、1つ又はそれ以上のネットワーク抽象化層(NAL)ユニット1604A−D、1606A−D、1608A−Dを含む。NALユニットは、様々な通信チャンネル及び/又は記憶媒体に適切なユニットにするビデオベーストラックのパーティションである。NALユニット1604A−D、1606A−D、1608A−Dの各セットは、解像度の異なるビデオストリームに使用することができる。例えば例証として、NALユニット1604A−Dは、SQCIFのような低解像度メディアストリームを含む。低解像度ビデオストリームは、図16Bに示すように、小さなスクリーン及び/又は限られたリソース(メモリ、その他)を備えたデバイスに使用されるビデオストリームである。図16Bは、様々なビデオ解像度の1つの実施形態を示すブロック図である。図16Bでは、3つのビデオ解像度、すなわち第1のビデオ解像度1650、第2のビデオ解像度1652、及び第3のビデオ解像度1654が示されている。例えば例証として、低解像度ビデオストリームは、第1のビデオ解像度ビデオ1650である。
図16Aに戻り、NALユニット1604A−D及び1606A−Dを組み合わせると、第2の解像度ビデオの別のビデオストリーム(例えば、QCIFビデオストリーム)が得られる。図16Bに示すように、第2の解像度ビデオ1652は、より高解像度のビデオ、すなわちより大きな画面表示又はより多くのリソースを備えたデバイスに好適なビデオのビデオストリームである。
図16Aに戻り、更にNALユニット1604A−D、1606A−D、1608A−Dの3つのセットを使用すると、第3のより高解像度のビデオストリーム(例えば、全CIFビデオストリーム)が得られる。図16Bに示すように、NALユニット1604A−D、1606A−D、1608A−Dからのビデオストリームでは、第3の解像度ビデオ1654が得られる。第1の解像度ビデオ1650及び第2の解像度ビデオ1652と比較すると、第3の解像度ビデオ1654はより大きな解像度を有する。例えば例証として、第3の解像度ビデオは、CIFフォーマットビデオ(352x288画素)である。
従って、SVCベーストラック1600では、単一のビデオベーストラックから少なくとも3つの別個のビデオストリームが得られる。これによって、1つのベースコード化ビデオトラックを異なるターゲットデバイス又は動作点に使用することが可能となる。例えば例証として、第1の解像度ビデオ1650は、ビデオを携帯電話にストリーミングするのに使用することができ、第2の解像度ビデオ1652は、ビデオを携帯ビューアにストリーミングするのに使用することができ、第3の解像度ビデオ1654は、ビデオを標準的テレビにストリーミングするのに使用されることになる。
SVCコード化ベーストラックは、時間ビデオ属性、空間ビデオ属性、及び品質ビデオ属性の複数の組み合わせに対するビデオストリームを含むので、各ビデオストリームのトラックは、1つのトラック又は別個のトラックとして記憶することができる。別個のトラックの場合、潜在的に多数の別個のトラックを管理することに関するオーバーヘッドが管理不能になる。例えば例証として、L個の時間属性、M個の空間属性、及びN個の異なる品質のビデオ属性がある場合、単一のSVCベーストラック内には最大L*M*N個までの異なるビデオストリームが存在する可能性がある。ビデオ復号器を供給するためにストリームをアセンブルすることは、サンプル当たりのL*M*N回の論理付加演算を意味する。一方、図16Aに示すように、複数のビデオストリームが単一のベーストラック内に保持されている場合、ビデオストリームのサブセットを抽出するためには、SVCコード化ベーストラック内の各ビデオストリームを検討して、特定のビデオストリームサブセットの関連データを見つけなければならない。これは、特定のビデオストリームサブセットを求めるためには、L*M*N個のビデオストリームの全データにアクセスしなければならないことを意味する。更に、SVCコード化ベーストラックは通常、ISOファイル内に記憶されるので、1つのビデオSVCベーストラックのデータは、フレーム内に近接して記憶される。従って、SVCベーストラックのフレームは、全てのデータを含み、復号器は、全てのデータを読み取って使用しないデータを破棄しなければならない。
全てを考慮すると、単一のSVCベーストラック(又は、各々がスケーラブルなコンテンツを含むSVCベーストラックの少なくとも1つのセット)を使用することは、ビデオ復号器がL*M*N個のビデオストリームを処理しなくて済むので好ましいことである。しかしながら、ビデオストリームの1つを別個の近接ストリームとして利用可能であることが有益となるときもある。必要とされるのは、SVCベーストラック全体を検討することなく、SVCベーストラックから利用可能なビデオストリームを抽出する機構である。ある形態のヒントトラック(例えば、エクストラクタ・トラック)を使用して、単一のSVCベーストラックで利用可能な複数のビデオストリームを抽出することができる。各エクストラクタ・トラックは、提案された動作点(例えば、品質、時間スケール及び/又は空間サイズの固有の組み合わせ)を表し、SVCベーストラック内の残りのデータを無視しながら、SVCベーストラックからその動作点に必要とされるデータ(例えば、結果として得られるビデオストリーム)をアセンブルする方法に関する情報を含む。詳細には、エクストラクタ・トラックは、品質、時間スケール及び/又は空間サイズのビデオ属性のうちの2つ又はそれ以上の固有の組み合わせに使用することができる。例示的な実施形態において、エクストラクタ・トラックは、スケーラブルなコード化ビデオ(所定回数にある時間期間にわたって所定シーケンスで提示される一連の関連画像など)に使用されるが、代替の実施形態では、他の形態のスケーラブルなメディア(例えば、オーディオ、シーン、その他)に対してエクストラクタ・トラックを使用することができる。特定の実施形態において、エクストラクタ・トラックは、エクストラクタ・トラックによって参照されるベーストラックとは別個で且つ異なるデータ構造体とすることができ、他の実施形態では、エクストラクタ・トラックは、ベーストラック内にインターリーブすることができ、或いは、ベーストラックからのメディアデータのサンプルを含むこともできる。
図16Cは、アグリゲータNALユニット1660A−Bを利用するSVCコード化ビデオベーストラックの1つの実施形態を示す。図16Cにおいては、図16Aと同様に、SVCベーストラック1660は、別個のフレーム1602A−Dに細分化される。各フレーム1602A−Dは、1つ又はそれ以上のNALユニット1604A−D、1606A−D、1608A−Dを含む。NALユニットは、様々な通信チャンネル及び/又は記憶媒体に適切なユニットにするビデオベーストラックのパーティションである。NALユニット1604A−D、1606A−D、1608A−Dの各セットは、異なるビデオストリームに使用することができる。ビデオストリームは、解像度、品質、ビットレート、その他が異なる可能性がある。コンテンツのスケールは、解像度、品質、ビットレート(例えばデータ送信の)、その他が異なる可能性がある。例えば例証として、NALユニット1604−Dは、SQCIF、QCIF、CIF、その他のような低解像度メディアストリームを含む。しかしながら、図16Aとは異なり、図16Cでは、NALユニット1604A−D、1606A−D、1608A−Dの一部は、アグリゲータNALユニット1662A−Bを使用して編成される。アグリゲータNALユニット1662A−Bは、NALユニットをNALユニットのグループに編成するのに使用される。
1つの実施形態において、アグリゲータNALユニットは、1つ又はそれ以上のNALユニット、長さ、タイプ、及び余剰なバイトを含む。長さとは、初期NALユニットの長さである。タイプとは、NALユニットのタイプである。余剰なバイトとは、初期NALユニットの後の余剰なバイトを表し、アグリゲータNALユニットにおける追加のNALユニットに対するオフセットとして使用される。
1つの実施形態において、アグリゲータNALユニット1662Aは、NALユニット1604A及び1606Aを含む。この実施形態において、アグリゲータは、ビデオフレーム1602Aの一部を含み、第1及び第2の解像度ビデオの抽出をサポートする。或いは、別の実施形態において、アグリゲータNALユニット1662Bは、フレーム全体のNALユニット、すなわちNALユニット1604B、1606B、1608Bを含む。この代替の実施形態において、アグリゲータNALユニット1662Bは、第1、第2及び第3の解像度ビデオをサポートする。
図17Aは、SVCコード化ベーストラックからビデオストリームを抽出するのに使用されるエクストラクタ・トラックの1つの実施形態を示すブロック図である。図17Aにおいて、SVCベーストラック1600は、ビデオフレーム1602A−Bを含み、各ビデオフレーム1602A−Bは、異なるビデオストリームに使用することができるNALユニットNALユニット1604A−B、1606A−B、1608A−Bを含む。図16Aと同様に、第1の解像度ビデオストリーム(例えば、SQCIFビデオストリームは、NALユニット1604A−Bからアセンブルされ、第2の解像度ビデオストリーム(例えば、QCIFビデオストリーム)は、NALユニット1604A−Bからアセンブルされ、一方、第3のビデオストリーム(例えば、CIFビデオストリーム)は、NALユニット1604A−B、1606A−B、1608A−Bからアセンブルすることができる。図16Aとは異なり、エクストラクタ・トラック1700及び1710は、SVCベーストラック1600内で利用可能な異なるビデオストリームを抽出するのに使用される。エクストラクタ・トラック1700は、エクストラクタ・トラック1700が一連のNALユニットであるので、AVC及びSVCベーストラックと同様に構造化される。エクストラクタ・トラックNALユニットは、他のNALユニットと合わせることができる。更に、エクストラクタ・トラック1700は、エクストラクタ・トラック1700をSVCベーストラック1600にリンクするトラック参照「scal」を有する。加えて、エクストラクタ・トラックは、SVCベーストラック1600と同じトラックタイプを有する。
例えば例証として、エクストラクタ・トラック1700は、SVCベーストラック1600において、NALユニットNALユニット1604A−B、1606A−Bをそれぞれ参照するNALユニット1704A−B、1706A−Bを含む。NALユニット1704A−B、1706A−Bは、SVCベーストラック1600内で時間的に整合されたNALユニットを見つけて、細粒度スケーラビリティ(FGS)NALユニットの一部などとして、そのNALユニットの全て又は一部を抽出するようにビデオ復号器に指示する。例えば例証として、NALユニット1704Aは、NALユニット1604Aを見つけて、NALユニット1604Aの一部又は全てを抽出するように復号器に指示する。NALユニット1704Aが、NALユニット1604Aの一部を抽出するように復号器に指示する場合、NALユニット1704Aは、取り出すバイトの数及びNALユニット1604Aへのオフセットに関する命令を含む。SVCベーストラックNALユニットの一部のみを取り出すことは、SVCベーストラック1600から様々なレベルのビデオ品質を抽出する1つの実施形態である。1つの実施形態において、部分的なNALユニットの抽出は、FGSスライスなどの漸進的な改善スライスを含むNALユニットと共に行われる。
更に、一定レベルの品質を維持するために、エクストラクタ・トラック1700NALユニットは、異なる量のベーストラックNALユニットを抽出することができる。例示的な実施形態において、エクストラクタ・トラックは、一定のビデオ品質を維持するために正しいカットポイントを算出する。例えば例証として、NALユニット1704Aは、NALユニット1604Aからより多く抽出するように復号器に指示することができ、一方、NALユニット1704Bは、全体的なビデオ品質を維持するためにNALユニット1604Bからより少ない抽出を指示することができる。エクストラクタ・トラック1700はNALユニット1604A−B、1606A−Bを参照するので、エクストラクタ・トラック1700は、第2の解像度ビデオストリームを表す。従って、ビデオ復号器は、SVCベーストラック1600全体を処理する必要がなく、エクストラクタ・トラック1700を読み取ることによって第2の解像度ビデオストリームを抽出することができる。
エクストラクタ・トラック1700と同様に、エクストラクタ・トラック1710は、NALユニット1714A−Bを含む。しかしながら、NALユニット1714A−BがSVCベーストラック1600内の対応するNALユニットを参照するのではなく、NALユニット1714A−Bは、NALユニット1604A−Bの少なくとも一部のコピーである。従って、エクストラクタ・トラック1710は、このビデオストリームに必要とされるNALユニットを含むことによって第1のビデオ解像度ストリームを表す。更に、エクストラクタ・トラック200、210は、ビデオファイル内の他のトラックと同様にヒントすることができる。しかしながら、参照エクストラクタNALユニットを含むヒントトラックは、参照NALユニットに含まれるバイトを抽出する必要がある。例えば例証として、参照エクストラクタNALユニット1704A−Bを含むヒントトラックは、参照ベースNALユニット1604A−Bからバイトを抽出する必要がある。
更に、1つの実施形態において、エクストラクタ・トラック1700、1710は更に、NAL参照ユニットでもなくベーストラックからのNALユニットのコピーでもないNALユニットを含むことができる。この実施形態において、これらのNALユニットは、SVCベーストラック1600とは異なるビデオベーストラックのパーティションである。この実施形態を使用して、SVCベーストラック1600からの抽出NALユニットを異なるNALユニットと組み合わせて第2のビデオストリームを形成することができる。例えば例証として、1つのエクストラクタ・トラックは、低解像度の15フレーム/秒(fps)SVCベーストラックから抽出されたトラックを追加のNALユニットと組み合わせて、15fps高解像度ビデオストリームを表す。従って、エクストラクタ・トラックを使用して、低品質ビデオストリームから高品質ビデオストリームを構築することができる。加えて、別の抽出トラックは、低解像度15fpsSVCベーストラックからの抽出トラックを追加のNALユニットと組み合わせて、30fps高解像度ビデオストリームを表す。この実施例は、エクストラクタ・トラックを使用して低フレーム率ビデオストリームから高フレーム率ビデオストリームを構築することを示している。従って、エクストラクタ・トラックを使用して高品質ビデオストリームから低品質ビデオストリームを抽出するか、又は、低品質なビデオストリームから高品質ビデオストリームを構築することができる。より低品質なビデオを作成するためにエクストラクタ・トラック又は他のデータセットを使用することは、ある時間期間後に記憶されたビデオをシニングする(例えば、ある時間期間後に記憶された監視ビデオをシニングする)際に特に有用とすることができる。この場合、エクストラクタ・トラック自体の中にビデオデータを含めることが有用とすることができる。
図17Bは、アグリゲータネットワーク抽象化層ユニットを含むSVCコード化ベーストラックからビデオストリームを抽出するのに使用されるエクストラクタ・トラックの1つの実施形態を示すブロック図である。図17Aと同様に、SVCベーストラック1660は、ビデオフレーム1602A−Bを含み、各ビデオフレーム1604A−Bは、異なるビデオストリームに使用することができるNALユニット1604A−B、1606A−B、1608A−Bを含む。SVCベーストラック1660は更に、アグリゲータNALユニット1660A−Bを含む。アグリゲータNALユニット1660Aは、NALユニット1604A、1606Aをグループ化し、アグリゲータNALユニット1660Bは、NALユニット1604B、1606Bをグループ化する。図16Aと同様に、第1の解像度ビデオストリームは、NALユニット1604A−B(例えば、SQCIFビデオストリーム)からアセンブルされ、第2の解像度ビデオストリームは、NALユニット1604A−B及び1606A−B(例えば、QCIFビデオストリーム)からアセンブルされ、一方、第3のビデオストリームは、NALユニット1604A−B、1606A−B、1608A−B(例えばCIFビデオストリーム)からアセンブルすることができる。図17Aと同様に、抽出トラック1700及び1760は、SVCベーストラック1660で利用可能な異なるビデオストリームを抽出するのに使用される。エクストラクタ・トラック1750は、一連のNALユニットであるので、エクストラクタ・トラック1750はAVC及びSVCベーストラックと同様に構造化される。エクストラクタ・トラックNALユニットは、他のNALユニットと合わせることができる。更に、エクストラクタ・トラック1700は、エクストラクタ・トラック1750をSVCベーストラック1660にリンクするトラック参照「seal」を有する。加えて、エクストラクタ・トラックは、SVCベーストラック1600と同じトラックタイプを有する。加えて、エクストラクタ・トラックは、アグリゲータNALユニットを参照するか、又はアグリゲータNALユニットからコピーすることができる。
1つの実施形態において、抽出トラック1750は、NALユニット1754A−B、1756A−Bを使用してアグリゲータNALユニット1660A−Bを参照する。アグリゲータNALユニット1660A−Bを参照することによって、抽出トラック1750は、アグリゲータNALユニットを含む全てのNALユニットを参照する。別の実施形態(図示せず)においては、抽出トラック1750の一部であるNALユニットは、集約NALユニット内の特定のNALユニットを参照することができる。特定のユニットを参照することによって、参照側NALユニットは、特定のNALユニットを参照し、アグリゲータNALユニットの一部である他のNALユニットは参照しない。図17Aと同様に、NALユニット1754A−Bは、単一のNALユニットを参照するNALユニットに対する類似の特性を有する。例えば例証として、抽出トラック1750は、SVCベーストラック1660内のアグリゲータNALユニット1660A−Bを参照するNALユニット1754A−B、1756A−Bを含む。NALユニット1754A−Bは、アグリゲータNALユニット1660Aにおいて時間的に整合されたNALユニットを見つけ、集約されたNALユニットの全部又は一部を抽出するようにビデオ復号器に指示する。例えば例証として、NALユニット1754Aは、アグリゲータNALユニット1660Aを見つけ、アグリゲータNALユニット1660Aを含むNALユニットの一部又は全てを抽出するように復号器に指示する。NALユニット1754Aが、アグリゲータNALユニット1660Aの一部を抽出するように復号器に指示した場合、NALユニット1754Aは、取り出すバイトの数及びアグリゲータNALユニット1660Aに対するオフセットに関する命令を含む。SVCベーストラックNALユニットの一部だけを取り出すことは、SVCベーストラック1660から様々なレベルのビデオ品質を抽出する1つの実施形態である。更に、一定レベルの品質を維持するために、エクストラクタ・トラック1750NALユニットは、異なる量のベーストラックNALユニットを抽出することができる。例示的な実施形態において、エクストラクタ・トラックは、一定のビデオ品質を維持するために正しいカットポイントを算出する。
抽出トラック1750と同様に、抽出トラック1760は、NALユニット1764A−Bを含む。しかしながら、NALユニット1764A−BがSVCベーストラック1600内の対応するアグリゲータNALユニットを参照するのではなく、NALユニット1764A−Bは、NALユニット1604A−Bの少なくとも一部のコピーである。更に、エクストラクタ・トラック1750、1760は、ビデオファイル内の他のトラックと同様にヒントすることができる。
図18は、エクストラクタ・トラックを組み込んだビデオファイルの1つの実施形態を示すブロック図である。図18においては、ビデオファイル1800は、ムービーヘッダ1802、ビデオメタデータ1804−1810及びデータ1812を含む。ビデオメタデータ1804−1810は、オーディオトラック1804及びビデオトラック1806−1810を含む。トラック1804−1810の各々は、どのビデオ/オーディオトラックがビデオファイル1800において利用可能であるかを記述するものである。例えば、3つのタイプのビデオ、すなわちSQCIF AVCビデオトラック1806、QCIF SVCビデオトラック1808及びSQCIF SVCビデオトラック1810がビデオファイル1800内で利用可能である。ビデオ復号器は、どのタイプのビデオ/オーディオストリームがビデオファイル1800内で利用可能であるかを判断するためにメタデータ1804−1810に問合わせることができる。データ1812は、ビデオフレーム(例えば、図16Aに示すようなNALユニット1604A−D、その他)、オーディオフレーム、及びエクストラクタ・トラックを含む。
図19は、エクストラクタ・トラックを生成してSVCベーストラックと共に使用するシステムの1つの実施形態を示すブロック図である。図19においては、ベーストラック作成器1902は、SVCベーストラックを含むメディアを作成する。ベーストラックは、記憶装置1910内に記憶される。加えて、SVCエクストラクタ・トラック作成器1916は、ベーストラック作成器1902からのベーストラックを使用して、各動作点に対してエクストラクタ・トラックを作成する。各動作点のエクストラクタ・トラックは通常、対応するベーストラックから導出される。動作点は、時間ビデオ属性、空間ビデオ属性、及び品質ビデオ属性のビデオスケーラビリティの固有の組み合わせである。例えば例証として、SVCエクストラクタ・トラック作成器1916は、低品質8fpsSQCIFビデオストリーム、24fps中品質QCIFビデオストリーム、高品質30fpsCIFビデオストリーム、その他であるビデオストリームのエクストラクタ・トラックを作成することができる。一般に、SVCエクストラクタ・トラック作成器1916は、入力SVCベーストラックによってサポートされるあらゆるビデオストリーム用のエクストラクタ・トラックを作成することができる。1つの実施形態において、作成SVCエクストラクタ・トラックは、記憶装置1910内に記憶されるが、代替の実施形態において、エクストラクタ・トラックは、対応するSVCベーストラックから別個に記憶することができる。エクストラクタ・トラックは、全ての可能な動作点に対してではなく、動作点の適切なサブセットに対してのみ存在し、ユーザ(例えば、クライアントシステム)は、このサブセットから使用可能な動作点を選択することができる点は理解されるであろう。或いは、SVCエクストラクタ・トラック1916は、ビデオストリームの不要な又は冗長な部分を除去しながら、2つ又はそれ以上のビデオストリームから単一のSVCトラックを形成することができる。例えば例証として、SVCエクストラクタ・トラック1916は、24fps中品質QCIFビデオストリーム及び高品質30fpsCIFビデオストリームからSVCベーストラックを含むSVCメディアを作成することができる。SVCエクストラクタ・トラック1916は、2つのビデオストリームをCIFベーストラック及びQCIFビデオストリーム用エクストラクタ・トラックに処理する。
作成されたSVCベーストラック及びエクストラクタ・トラックは、様々な方法で使用することができる。1つの実施形態において、ローカルクライアント1904は、記憶装置1910からSVCベーストラック及びエクストラクタ・トラックを読み込んで、どのビデオストリームがSVCベーストラック及びエクストラクタ・トラック内で利用可能であるかを判断する。利用可能なビデオストリームに基づいて、ローカルクライアントは、対応するエクストラクタ・トラックを使用して、SVCベーストラックから所望のビデオストリームを抽出する。1つの実施形態において、ローカルクライアントは、ベーストラック及びエクストラクタ・トラックを読み取り処理することができる記憶装置1910に対しローカルのマシン上で実行するプログラムの単一のインスタンスであるが、代替の実施形態において、ローカルクライアントは、同じタイプのプログラムの2つ以上のインスタンスとすることができる。以下では、ローカルクライアントによるSVCベーストラック及びエクストラクタ・トラックの処理について図21で更に説明する。
代替の実施形態において、送信サーバ1906は、リモートクライアント1908A−B用にSVCベーストラック及びエクストラクタ・トラックを処理する。このクライアント−サーバ構成においては、リモートクライアント1908A−Bは、SVCベーストラック及びエクストラクタ・トラックから利用可能なビデオに対する要求を送信サーバ1906に送信する。クライアント−サーバの実施形態の1つにおいて、リモートクライアント1908A−Bは、送信サーバ1906に直接ビデオストリームを要求することによってビデオを要求する。これに応答して、送信サーバ1906は、対応するエクストラクタ・トラックにアクセスして、エクストラクタ・トラックを使用して要求されたビデオストリームをSVCベーストラックから取り出す。送信サーバ1906は、ビデオストリームをアセンブルして、ビデオストリームを要求側リモートクライアントに送る。このクライアント−サーバの実施形態は、図22において以下に更に説明される。この手法において、送信サーバ1906は、エクストラクタ・トラックを使用して、SVCベーストラック全体を解析するのではなく、要求側リモートクライアント408A−Bによって使用されている動作点の一部であるベーストラックの部分だけを取り出して送信する。
クライアント−サーバの代替の実施形態において、リモートクライアント1908A−Bは、利用可能なビデオストリームを送信サーバ1906に要求する。これに応答して、送信サーバ1906は、利用可能なビデオストリームのリストを要求中のリモートクライアント1908A−Bに返す。1つの実施形態において、送信サーバ1906は、メタデータ1804−1810をリモートクライアント1908A−Bに返送し、代替の実施形態では、送信サーバ1906は、他の手段(例えば、単純なリスト、そのリストを含む共通ゲートウェイインタフェース(CGI)形式、その他)で利用可能なビデオストリームのリストを返送する。リモートクライアント1908A−Bは、送信サーバ1906に対して所望のビデオストリームを要求し、送信サーバは、要求されたビデオストリームを送る。例示的な実施形態において、リモートクライアント1908A−Bは、所望のビデオストリームに対応するエクストラクタ・トラックを送信サーバ1906に要求する。エクストラクタ・トラックの受信に応答して、リモートクライアント1908A−Bは、適切な指令を送信サーバ1906に送ることによって、ビデオストリームを要求する(例えば、リモートクライアント1908A−Bは、HTTPバイト要求などを使用して、ビデオストリーム1602A−BをSVCベーストラックに要求する)。このクライアント−サーバの実施形態について、以下において図23で更に説明する。
SVCベーストラック及びエクストラクタ・トラックは、ローカル1904及びリモートクライアント1908A−Bによって使用されることに加えて、AVC専用コンテンツジェネレータ1912が処理することができる。AVC専用コンテンツジェネレータ1912は、SVCエクストラクタ・トラックにアクセスしてエクストラクタ・トラックを使用してAVC専用コンテンツを対応するSVCベーストラックからアセンブルすることによって、AVC専用コンテンツ(例えば、特定の動作点でのH.264/AVCビデオコンテンツ)を作成する。AVC専用コンテンツジェネレータ1912は、AVC専用コンテンツを記憶装置1914に記憶する。リモートクライアント1908A−Bは、記憶装置1914からAVC専用コンテンツ(例えば、特定の動作点でのH.264/AVCビデオコンテンツ)にアクセスすることができる。
図20は、SVCベーストラックからSVCエクストラクタ・トラックを生成する方法2000の1つの実施形態のフローチャートである。ブロック2002で、方法2000は、生成される動作点の数を決定する。上述のように、各動作点は、動作点に関連したビデオ属性に基づいて1つのビデオストリームを記述するものである。1つの実施形態において、各動作点は、時間ビデオ属性、空間ビデオ属性、及び品質ビデオ属性の固有の組み合わせであるが、代替の実施形態は、より多い、又はより少ない、及び/又は異なるビデオ属性(例えば、ビット深度、彩度サブサンプリング周波数、その他)を含む動作点を有することができる。例えば例証として、時間ビデオ属性は、ビデオストリームフレームレート(例えば、8、15、30fps、その他)を記述するものであり、空間ビデオ属性は、ビデオストリーム解像度(例えば、SQCIF、QCIF、CIF、その他)を記述するものであり、品質ビデオ属性は、通常は信号対雑音比で記述されるビデオストリーム品質を記述するものである。
ブロック2004で、方法2000は、動作点の少なくともサブセットに対してSVCベーストラックに対応するエクストラクタ・トラックをコード化する。方法2000は、サブセット内の動作点に対して1つのエクストラクタ・トラックを作成する。上述のように、エクストラクタ・トラックは、SVCベーストラック内のNALユニットに対する参照であるか、又はベーストラック内のNALユニットのコピーであるNALユニットを含む。ブロック2006で、方法2000は、エクストラクタ・トラックを記憶する。加えて、方法2000は、ビデオファイル300を再レイアウトすることによって記憶エクストラクタ・トラックを含むビデオファイル300の一部を最適化することができる。これは、詳細には、NALユニットのコピーを含むエクストラクタ・トラックに有用である。
図21は、対応するエクストラクタ・トラックを使用してSVCベーストラックからビデオストリームを取り出す方法2100の1つの実施形態のフローチャートである。ブロック2102で、方法2100は、クライアント能力を判断する。クライアント能力は、限定ではないが、ディスプレイサイズ、ディスプレイグラフィックス能力、メモリ、ビデオバッファ、処理能力、その他に依存する。例えば例証として、小型ディスプレイ及び低電力CPUを有するハンドヘルドデバイスは、15fpsSQCIFビデオストリームを処理できる場合があり、一方、より優れたCPU及びグラフィックス能力を有するデスクトップコンピュータは、30fpsCIFビデオストリームを扱う必要がある場合がある。
ブロック2104で、方法2100は、どの動作点が判断されたクライアント能力及び利用可能なエクストラクタ・トラックに適合するかを示すメディアエクストラクタ・トラック(又は他のデータ)に問合わせることによって、利用可能なメディアストリームを判断する。1つの実施形態において、方法2100は、適合性を判断するために利用可能なメディアエクストラクタ・トラックに問合わせを行うが、代替の実施形態において、方法2100は、異なる手段(例えば、メディアメタデータ1804−1810に問合わせる、その他)で適合性を判断することができる。例えば例証として、ターゲットデバイスがハンドヘルドデバイスである場合、方法2100は、低解像度低ビットレートメディアストリーム(例えば、15fpsSQCIFビデオストリーム)が利用可能であるかどうかを判断する。
ブロック2106で、方法2100は、クライアント能力に適合する適切なエクストラクタ・トラックを選択する。例えば例証として、クライアントがデスクトップコンピュータである場合、方法2100は、解像度又はfpsが低いビデオストリームに優る30fpsCIFビデオストリームを選び出すことになる。ブロック2108で、方法2100は、選択したメディアストリームに関連したエクストラクタ・トラックにアクセスする。
ブロック2110で、方法2100は、エクストラクタ・トラックを使用してエクストラクタ・トラックに関連したビデオストリームを取り出す。方法2100は、エクストラクタ・トラックを使用して、(i)エクストラクタ・トラックがビデオデータをベーストラックNALユニットからエクストラクタNALユニットにコピーした場合にはNALユニット内のデータを読み取るか、又は(ii)SVCベーストラック内に含まれたビデオストリーム用データの参照としてエクストラクタ・トラックNALユニットを使用することによってビデオストリームを取り出す。これらのタイプのエクストラクタ・トラックのいずれかによって、方法2100は、SVCコード化ベーストラックからビデオストリームを取り出すことが可能となる。例えば例証として、参照側エクストラクタ・トラックNALユニットは、方法2100が(i)SVCベーストラック内の適切なNALユニットの位置、(ii)被参照NALユニットからのオフセット、及び(iii)被参照NALユニットからコピーするバイト数を求めるための情報を含む。
図22は、リモートクライアントに対して送信サーバがSVCベースからメディアストリームを取り出す方法2200の1つの実施形態のフローチャートである。ブロック2202で、方法2200は、メディアストリーム要求を受信する。1つの実施形態において、メディアストリーム要求は、HTTPプロトコルによるものとすることができるが、代替の実施形態では、当技術分野で公知の異なるプロトコル(例えば、RTP、RTSPなど)を使用することができる。ブロック2204で、方法2200は、要求されたメディアストリームに対応するエクストラクタ・トラックを選択する。例えば例証として、リモートクライアントが30fpsCIFビデオストリームを要求した場合、方法2200は、そのメディアストリームに対応するエクストラクタ・トラックを選択する。
ブロック2206で、方法2300は、選択したエクストラクタ・トラックに基づいてメディアストリームを送信する。例えば例証として、方法2200は、ブロック2110で説明したようにエクストラクタを使用してメディアストリームをアセンブルし、結果として得られるビデオストリームを送信する。
図23は、エクストラクタ・トラックを使用してメディアストリームを要求するリモートクライアントに関して、リモートクライアントに対して送信サーバがSVCベーストラックからメディアストリームを取り出す方法2300の1つの実施形態のフローチャートである。方法2300は、ビデオストリームを記述する詳細情報が、送信サーバでなくリモートクライアントによって処理される点で方法2200と異なる。図23においては、リモートクライアントは、エクストラクタ・トラックを使用してSVCベーストラックからビデオストリームを抽出する。ブロック2302で、方法2300は、SVCベーストラックから利用可能なビデオストリームに対する要求を受信する。これに応答してブロック2304で、方法2300は、SVCベーストラックビデオメタデータを送信する。1つの実施形態において、方法2300は、図18に示すようにビデオメタデータ1804−1810を送信するが、代替の実施形態では、SVCベーストラック内でコード化された利用可能なビデオストリームを記述する他のデータを送信する(例えば、ビデオストリームリストなどを送る)ことができる。
ブロック2306で、方法2300は、エクストラクタ・トラックに対する要求を受信する。これに応答してブロック2308で、方法2300は、要求されたエクストラクタ・トラックを要求側リモートクライアントに送信する。リモートクライアントは、エクストラクタ・トラックを使用して、エクストラクタ・トラックが参照側NALユニットを含む場合、ビデオフレーム(例えば、ベーストラックからのNALユニット)を抽出する。或いは、エクストラクタ・トラックがNALユニットのコピーを含む場合、リモートクライアントは、ビデオストリームを有し、必要に応じてビデオストリームを処理することができる。
ブロック2310で、方法2300は、送信されたエクストラクタ・トラックに基づいてビデオストリームフレーム要求を受信する。これに応答してブロック2312で、方法2300は、要求されたビデオフレームを送信する。
図24は、SVCベーストラックから抽出されたSVC専用コンテンツを保存する方法2400の1つの実施形態のフローチャートである。SVC専用コンテンツは、SVC専用コンテンツが1つのビデオストリームを含み、SVCベーストラックが複数のビデオストリームを含むことができるという点でSVCベーストラックとは異なる。ブロック2402で、方法2400は、利用可能なビデオストリームのどれをSVC専用コンテンツとして保存すべきかを判断する。選択したビデオストリームに基づいて、方法2400は、選択したビデオストリームに関連するエクストラタを決定する。ブロック2406で、方法2400は、関連するエクストラクタ・トラックを使用してビデオストリームを抽出する。例えば例証として、方法2400は、ブロック2110と同様にビデオストリームを抽出する。ビデオストリームを抽出した後、方法2400は、ビデオストリームをSVC専用コンテンツとして記憶する。
ヒントのある例示的なフォーマットを以下に提供する。しかしながら、本発明は、様々なタイプのネットワークプロトコル、デジタル処理システムアーキテクチャ、メディアフォーマット、その他と共に利用して時間ベースデータの送信を行うことができる点は理解されるであろう。
代替の実施形態
本発明を幾つかの実施形態及び例示的な図に関して説明したが、当業者であれば、本発明が記載された実施形態又は図に限定されないことを理解するであろう。詳細には、本発明は、時間関連メディアデータのパケット化を可能にする幾つかの代替の実施形態において実施することができる。
従って、本発明の方法及び装置は、添付の特許請求の範囲の精神及び範囲内で修正及び改変を行い実施することができる点を理解されたい。従って、本明細書は、本発明を限定するものではなく、例示するものとみなすべきである。
付録A−パケット化ヒントサンプル記述
本発明の1つの実施形態において、各ヒントトラックは、サンプル記述のテーブルを有する。ヒントトラックは通常、1つのサンプル記述を有する。本発明の1つの実施形態による、ヒントトラックについての各サンプル記述エントリのフォーマットを以下のテーブル1に記載する。
テーブル1:ヒントトラックサンプル記述フォーマット
Figure 0005785582
パケット化ヒットヘッダアトムは、以下のデータ要素を含む。
フィールド記述
サンプル記述サイズ:サンプル記述内でのバイト数を指定する32ビット整数
データフォーマット:サンプルデータ内に記憶されるヒントのフォーマットを示す32ビット整数。ヒント形式が異なれば、異なるフォーマットを定義することができる。以下のテーブルには、定義されたフォーマットを列挙する。
予約:0にセットされる6バイト。
データ参照:このサンプル記述を使用するサンプルに関連したデータインデックスのインデックスを含む16ビット整数。データ参照は、データ参照アトム内に記憶される。
最大パケットサイズ:このトラック内で算出されたパケットの最大サイズを示す32ビット整数。
追加データテーブル:トラック当たりに必要とされる追加情報を含むテーブル。値は、タグ付きのエントリである。必要なエントリはない。エントリがテーブル中にない場合、適切なデフォルトを使用することができる。
追加データテーブルエントリの構造をテーブル2に示す。
テーブル2:追加データテーブルフォーマット
Figure 0005785582
追加データテーブルエントリは、以下のデータ要素を含む。
フィールド記述
エントリ長:エントリ全体の長さ(長さフィールド及びタイプフィールド用8バイトを含む)をバイト単位で示す32ビット整数。
データ形式:エントリ内のデータの意味を示す32ビット整数。
データ:このエントリについてのデータ。データ長は、テーブルのデータ長フィールドによって示される。
以下のデータタグは、幾つかの様々なタイプのデータフォーマットタイプについて定義することができる。必要に応じて他のタグを作成することもできる。
Figure 0005785582
以下のデータフォーマットタイプが定義される。新しいタイプを必要に応じて定義することができる。
Figure 0005785582
以下のデータタグは「rtp」データの1つの実施形態において利用される。
Figure 0005785582
以下のデータタグは「rtp」データについて任意選択である。
Figure 0005785582
付録B−RTPについての例示的ヒントトラック
このセクションでは、QuickTimeムービーからRTPをストリーミングするためのヒントトラックフォーマットの1つの実施例を提示する。
標準RTPにおいて、各メディアストリームは通常、別個のRTPストリームとして送信される。多重化は、一般に、複数のストリームから単一のRTPセッションにデータをインターリーブすることによってではなく、IPポートレベル多重化を用いて達成される。従って、ムービー内の各メディアトラックは、関連のRTPヒントトラックを有するべきである。本発明の1つの実施形態において、各ヒントトラックは、ストリーミングしているメディアトラックに戻るトラック参照を含む。
この実施例において、パケットサイズは、ヒントトラックが作成される時点で決定される。従って、ヒントトラックのサンプル記述(この場合はプロトコルである、「コード化」に固有のフィールドを含むことができるデータ構造)において、選ばれたパケットサイズが表示される。本発明の1つの実施例において、異なるパケットサイズの選択を可能にするように、各メディアトラックについて幾つかのRTPヒントトラックが提供される。他のプロトコルをパラメータ化することもできる。同様に、RTPクロック用の適切なタイムスケールが以下のサンプル記述で提供される。
ヒントトラックは、単一のトラック参照宣言によってそのベースメディアトラックと関連付けられる(RTPは、単一のRTPストリーミング内のメディアの多重化を可能にするものではない)。RTP用サンプル記述では、このヒントトラックが生成することになる最大パケットサイズが宣言される。セッション記述(SAP/SDP)情報は、トラック内のユーザデータアトムに記憶される。
RTPヒントトラック内の各サンプルは、所与の時間に放出されなければならないパケットのセットを送出する命令を含む。ヒントトラック内の時間は、放出時間であり、必ずしも、関連メディアのメディア時間であるとは限らない。
以下の記述においては、オブジェクトとして構造化する必要のない、この実施例の用語においてメタデータではなくメディアデータであるサンプルの内部構造を記載する。
この実施例において、各サンプルは、2つの領域、すなわちパケットを構成する命令と、これらのパケットを送るときに必要とされるあらゆる余剰データ(例えば、メディアデータの暗号化されたバージョン)とを含む。
Figure 0005785582
各RTPヒントパケットは、単一のパケットを送るための情報を含む。1つの実施形態において、メディア時間を放出時間から分離するために、RTPタイムスタンプが、RTPヘッダを形成するのに必要されるデータと共に特に含まれる。しかしながら、代替の実施形態において、これは当てはまらない。他のヘッダ情報が通常は供給される。構造エントリのテーブルは、以下のように構築される。
Figure 0005785582
様々な形態の構成子がある。各構成子は16バイトであり、これは、反復を比較的簡単なものにすることができる。第1のバイトは、合併ディスクリミネータである。
Figure 0005785582
即値モードでは、ペイロードに特有のヘッダ(例えばRTP H.261ヘッダ)の挿入が可能である。メディアが「平文で」送られるヒントトラックについては、メディアサンプルエントリは、サンプル番号、データオフセット、及びコピーする長さを与えることによって、メディアトラックからコピーするバイトを指定することができる。比較的複雑な場合(例えば、暗号化又は順方向誤り訂正)には、変形データをヒントサンプル中に置くことができ、次いで、RTPサンプル自体中のエキストラデータフィールドから提供されることになるヒントサンプルモードを使用することができる。
本発明の1つの実施例において、連続したパケットがメディアストリームから連続したバイトを送信する必要はない。例えば、H.261のRTP標準のパッキングに準拠するために、本発明の1つの実施例において、バイトは、1つのパケットの終わりと次のパケットの初めに送信することができる(マクロブロックの境界がバイト内にあるとき)。
付録C−データフォーマット「rtp」についてパケット化ヒントサンプルデータ
この付録においては、本発明の1つの実施形態による、「rtp」フォーマットについてのサンプルデータの記述を行う。「rtp」フォーマットは、サーバがReal Time Transport Protocol(RTP)を使用してデータを送信していると仮定している。このフォーマットでは、サーバがRTPヘッダについて認知しているものと仮定するが、サーバが様々なIETF起案中で定義されたメディアヘッダを含む特定のメディアヘッダについて何かを認知していることは必要ではない。
本発明の1つの実施形態において、ヒントトラック中の各サンプルは、1つ又はそれ以上のRTPパケットを生成することになる。ヒントトラックサンプル内のサンプルデータテーブル中の各エントリは、単一のRTPパケットに対応する。ヒントトラック中のサンプルは、メディアトラック中のサンプルと正確に対応することも、対応しないこともある。本発明の1つの実施形態において、ヒントトラックサンプル中のデータは、32ビット整合ではなく、バイト整合である。
フィールド記述
Figure 0005785582

テーブル3−追加データ
Figure 0005785582
1つの実施形態において、パケットエントリは、以下のデータ要素を含む。
フィールド記述
Figure 0005785582
RTPヘッダ情報は、以下の要素を含む。
Figure 0005785582
RTPヘッダ情報フィールドは、以下の要素を含む。
Figure 0005785582

全ての未定義ビット(0から1及び4から7)は、予約されており、0にセットされる。定義されたビットの位置は、RTPヘッダ内と同じビット位置である。
Figure 0005785582
テーブル4 データテーブル
Figure 0005785582
エントリテーブルのデータソースフィールドは、他の15バイトのエントリをどのように解釈すべきかを示している。値0から4が定義される。様々なデータテーブルフォーマットを以下で定義する。様々な方式があるが、様々な方式のエントリは通常、16バイト長である。
No−Opデータモード
データテーブルエントリは、no−opモードについて以下のフォーマットを有する。
フィールド記述
Figure 0005785582
即値データモード
データテーブルエントリは、即値モードにおいて以下のフォーマットを有する。
フィールド記述
Figure 0005785582

サンプルモード
データテーブルエントリは、サンプルモードについて以下のフォーマットを有する。
フィールド記述

Figure 0005785582
圧縮ブロック当たりのバイト及び/又は圧縮ブロック当たりのサンプルが1よりも大きい場合、この比率を使用して、サンプル番号を実際のバイトオフセットに変換する。この比率モードは通常、以下のように、QuickTimeムービー内の圧縮オーディオトラック用に使用される。
CB=NS*BPCB/SPCB
ここで、
CB=圧縮バイト、
NS=サンプル数、
BPCB=圧縮ブロック当たりのバイト、
SPCB=圧縮ブロック当たりのサンプル
である。
例えば、GSM圧縮ブロックは通常、33バイトにパックされた160個のサンプルである。従って、BPCB=33、及び、SPCB=160である。ヒントサンプルは、161番目のメディアサンプルから始まる33バイトのデータを要求する。第1のQuickTimeチャンクは少なくとも320個のサンプルを含むものと想定し、よって、このデータがチャンク1からのものであること、及びチャンク1がどこから開始するかを判断した後で、この比率を利用して、要求されたサンプルが見つけられるファイルへのオフセットを調節する。
Figure 0005785582
サンプル記述モード
データテーブルエントリは、サンプル記述モードについて以下のフォーマットを有する。
フィールド記述
Figure 0005785582
付録D−MPEG−2転送に関する例示的なヒントトラックフォーマット
このセクションでは、エレメンタリ・ストリームを保持するQuickTimeムービーからのMPEG−2転送をストリーミングする単純なトラックフォーマットの1つの実施例を示す。
MPEG−2転送ストリームは、1つ又はそれ以上のエレメンタリ・ストリームの多重に関連する。このような理由から、MPEG−2転送のヒントトラックは、1つ又はそれ以上のメディアトラックからのこうした多重を構築する方法を記述するものである。メディアトラックとMPEG−2転送のヒントトラックとの間は、必ずしも1対1の関係であるわけではない。各ヒントトラックは、ヒントトラックが表すエレメンタリ・ストリームに対する参照を含むことができる。本発明の1つの実施例において、QuickTimeファイルは、様々な多重を記述する複数のこのようなヒントトラックを含むことができる。
全てのMPEG−2転送パケットサイズは188バイトであるので、パケットのサイズは一般には問題にならない。本発明の1つの実施例において、各転送パケット(MPEG−2転送プロトコル)は、1つのメディアトラックからのペイロードデータを含む。これは、各転送パケットについての比較的簡単なヒント記述を可能にする。本発明の1つの実施例において、このような各ヒントは、どのヘッダデータが各転送パケット上に現れるかを記述し、次いで、転送パケットについて適切なメディアトラック内のペイロードを示す。PSIパケットなど、メディアトラックと対応しないパケットについては、ヒントは、188バイトのヘッダデータを記述することができ、あらゆるメディアトラック参照は、無関係のものとみなすことができる。メディアトラックに対応するパケットについては、ヘッダデータは、転送ヘッダ、可能な適合ヘッダ、PESパケットを開始する転送パケットに関するPESヘッダなどの情報を考慮することができる。
(タイプ「stsd」の)サンプル記述アトム内のMPEG−2転送のヒントトラックを参照する。このアトムは、サンプル記述テーブルを含み、このテーブルのエントリは、メディアタイプに基づいて異なる。本発明の1つの実施例において、ヒントトラックは、テーブル1に示す構造から始まる。追加データテーブルは、テーブル2に示す構造を有するエントリを保持することができる。
本発明の1つの実施例において、ヒントトラックがMPEG−2転送ヒントトラックである場合、ヒントトラックサンプル記述エントリ内のデータフォーマットは、「m2t」となり、最大パケットサイズは、常に188バイトとなる。このような記述エントリでは、以下のテーブル5から7に示すタイプを追加データテーブルで見つけることができる。

テーブル5−追加データテーブルエントリ
Figure 0005785582
テーブル6−追加データテーブル内の「otpy」
Figure 0005785582

テーブル7−「tmap」追加データ内のエントリのフォーマット
Figure 0005785582
本発明の1つの実施例において、各ヒントサンプルは、1つの転送パケットを記述する。各転送パケットは、ある量のヘッダデータ、次に、1つのメディアトラックからのある量のペイロードとして記述することができる。MPEG−2転送パケットは比較的小さいので、多数のヒントサンプルを生成することができ、従って、これらのサンプルは、できるだけ小さいことが好ましい。上記の追加データテーブルの幾つかのエントリを使用して、サンプルのサイズを最小限に抑えることができるが、このようなファクタは、サンプルエントリ内のフィールドの一部を可変のサイズとすることができる。
ペイロードデータがメディアサンプルに関して記述されることを示す、データテーブルの「otyp」エントリが値0を有する場合、ヒントサンプルは、テーブル8に示す以下の形態のものとすることができる。

テーブル8−メディアサンプル参照を使用したヒントサンプルフォーマット
Figure 0005785582
本発明の1つの実施例において、パケットについてのペイロードデータの長さは、MPEG−2では188からパケットのヘッダデータサイズを差し引いたものに等しいので、この長さを示す必要はない。
ペイロードデータがファイルオフセットに関して記述されることを示す、データテーブルの「otyp」エントリの値が1である場合、ヒントサンプルは、テーブル9に示される以下の形態とすることができる。

テーブル9
Figure 0005785582
本発明の1つの実施例において、ヒントサンプルは、これらのオフセットをメディアサンプルに関して、又はファイルオフセットに関して記述することができる。これらの各々には利点と欠点がある。ヒントサンプルがメディアサンプルに関してペイロードを指定する場合には、メディアトラックを含むファイルの追加編集に対してより弾力的であることができるが、配信には追加の処理が必要になる場合がある。ヒントサンプルがファイルオフセットに関してペイロードを指定する場合、ペイロードデータには相対的に迅速にアクセスすることができるが、メディアトラックを含むファイルを何か編集することで、ヒントが無効になることがある。
付録E−例示的なファイル
本発明の1つの実施形態による比較的短い(6フレーム)サンプルファイルを以下に提供する。ここでは、比較的重要度の低いフィールド及びオブジェクトの一部が省略され(ここでは省略記号「...」でマークされる)、RTPを介したストリーミングに備えたファイルの全体的構造を幾つかの架空番号で示している。メディアデータは省略され、メタデータのみが示されている。
Figure 0005785582

Figure 0005785582


Figure 0005785582

Figure 0005785582

Figure 0005785582

Figure 0005785582

Figure 0005785582

Figure 0005785582
401 メディアトラック用のヒントトラック
403 ビデオトラック
405 ヒントトラックサンプル

Claims (24)

  1. スケーラブルなコンテンツを処理する方法であって、
    複数の動作点で前記スケーラブルなコンテンツを提示するためのサンプルを含むデータの第1のセットを記憶する段階と、
    それぞれが前記複数の動作点の1つに対応する複数のエクストラクタトラックを導出する段階と、
    前記複数の動作点に対応する利用可能なビデオストリームのリストの要求を受信する段階と、
    前記複数の動作点に対応する利用可能なビデオストリームの前記リストを送信する段階と、
    利用可能なビデオストリームの前記リストに基づいて前記複数のエクストラクタトラックの少なくとも1つの要求を受信する段階と、
    前記複数のエクストラクタトラックの前記少なくとも1つを、前記データの第1のセットと別に送信する段階であって、前記複数のエクストラクタトラックの前記少なくとも1つは前記データの第1のセットから導出されたデータの第2のセットを含み、前記データの第2のセットは前記複数の動作点の内の第1の動作点のための第1の動作点データのビデオフレームへの参照の順序付けされたリストを含み、前記第1の動作点データは前記データの第1のセットのサブセットである段階と、
    前記少なくとも1つのエクストラクタトラックにおいて識別された前記第1の動作点データの前記ビデオフレームの要求を受信する段階と、
    前記第1の動作点データの前記要求されたビデオフレームを送信する段階と、
    を含む、
    ことを特徴とする方法。
  2. 前記少なくとも1つのエクストラクタトラックは、前記少なくとも1つのエクストラクタトラックの前記要求に応じて送信される、ことを特徴とする請求項1に記載の方法。
  3. 前記第1の動作点データの前記ビデオフレームを送信する段階は、前記第1の動作点データの前記ビデオフレームの前記要求に応答するものである、請求項2に記載の方法。
  4. 前記少なくとも1つのエクストラクタトラック及び前記第1の動作点データの前記ビデオフレームの前記要求は、リモートクライアントからメディアサーバで受信される、請求項3に記載の方法。
  5. 前記複数の動作点は、前記スケーラブルなコンテンツの複数の空間解像度、または前記スケーラブルなコンテンツの複数の品質レベル、の少なくとも1つを含む、請求項1に記載の方法。
  6. 前記スケーラブルなコンテンツはオーディオコンテンツ又はビデオコンテンツの少なくとも1つを含む、請求項1に記載の方法。
  7. スケーラブルなコンテンツを処理する装置であって、
    複数の動作点で前記スケーラブルなコンテンツを提示するためのサンプルを含むデータの第1のセットを記憶する手段と、
    それぞれが前記複数の動作点の1つに対応する複数のエクストラクタトラックを導出する手段と、
    前記複数の動作点に対応する利用可能なビデオストリームのリストの要求を受信する手段と、
    前記複数の動作点に対応する利用可能なビデオストリームの前記リストを送信する手段と、
    利用可能なビデオストリームの前記リストに基づいて前記複数のエクストラクタトラックの少なくとも1つの要求を受信する手段と、
    前記複数のエクストラクタトラックの前記少なくとも1つを、前記データの第1のセットと別に送信する手段であって、前記複数のエクストラクタトラックの前記少なくとも1つは前記データの第1のセットから導出されたデータの第2のセットを含み、前記データの第2のセットは前記複数の動作点の内の第1の動作点のための第1の動作点データのビデオフレームへの参照の順序付けされたリストを含み、前記第1の動作点データは前記データの第1のセットのサブセットである手段と、
    前記少なくとも1つのエクストラクタトラックにおいて識別された前記第1の動作点データの前記ビデオフレームの要求を受信する手段と、
    前記第1の動作点データの前記要求されたビデオフレームを送信する手段と、
    を含む、
    ことを特徴とする装置。
  8. 前記少なくとも1つのエクストラクタトラックは、前記少なくとも1つのエクストラクタトラックの前記要求に応じて送信される、ことを特徴とする請求項7に記載の装置。
  9. 前記第1の動作点データの前記ビデオフレームを送信する手段は、前記第1の動作点データの前記ビデオフレームの前記要求に応答するものである、請求項8に記載の装置。
  10. 前記少なくとも1つのエクストラクタトラック及び前記第1の動作点データの前記要求は、リモートクライアントからメディアサーバで受信される、請求項9に記載の装置。
  11. 前記複数の動作点は、前記スケーラブルなコンテンツの複数の空間解像度、または前記スケーラブルなコンテンツの複数の品質レベル、の少なくとも1つを含む、請求項7に記載の装置。
  12. 前記スケーラブルなコンテンツはオーディオコンテンツ又はビデオコンテンツの少なくとも1つを含む、請求項7に記載の装置。
  13. スケーラブルなコンテンツを処理する方法であって、
    データの第1のセットの複数の動作点に対応する利用可能なビデオストリームのリストを要求する段階と、
    前記複数の動作点に対応する利用可能なビデオストリームの前記リストを受信する段階と、
    利用可能なビデオストリームの少なくとも1つに対応する複数のエクストラクタトラックの少なくとも1つを要求する段階と、
    複数の前記エクストラクタトラックの前記少なくとも1つを、データの第1のセットとは別に受信する段階であって、前記データの第1のセットは前記複数の動作点で前記スケーラブルなコンテンツを提示するためのサンプルを有し、前記受信されたエクストラクタトラックはデータの第1のセットから導出されたデータの第2のセットを含み、前記データの第2のセットは前記複数の動作点の内の第1の動作点のための第1の動作点データのビデオフレームへの参照の順序付けされたリストを含み、前記複数のエクストラクタトラックのそれぞれは前記スケーラブルなコンテンツ内の前記複数の動作点の1つに対応するものである段階と、
    前記複数の動作点の第1の動作点のための第1の動作点データであって、前記データの第1のセットのサブセットである第1の動作点データの前記ビデオフレームを、前記データの第2のセット内の参照を使用して要求する段階と、
    前記第1の動作点データの前記要求されたビデオフレームを受信する段階と、
    を含む、
    ことを特徴とする方法。
  14. 前記少なくとも1つのエクストラクタトラックは、前記少なくとも1つのエクストラクタトラックの前記要求に応じて受信される、ことを特徴とする請求項1に記載の方法。
  15. 利用可能なエクストラクタトラックを記述するメタデータを要求する段階、をさらに含む、
    請求項13に記載の方法。
  16. 前記少なくとも1つのエクストラクタトラック及び前記第1の動作点データの前記ビデオフレームは、メディアサーバからリモートクライアントで受信される、請求項13に記載の方法。
  17. 前記複数の動作点は、前記スケーラブルなコンテンツの複数の空間解像度、または前記スケーラブルなコンテンツの複数の品質レベル、の少なくとも1つを含む、請求項13に記載の方法。
  18. 前記スケーラブルなコンテンツはオーディオコンテンツ又はビデオコンテンツの少なくとも1つを含む、請求項13に記載の方法。
  19. スケーラブルなコンテンツを処理する装置であって、
    データの第1のセットの複数の動作点に対応する利用可能なビデオストリームのリストを要求する手段と、
    前記複数の動作点に対応する利用可能なビデオストリームの前記リストを受信する手段と、
    利用可能なビデオストリームの少なくとも1つに対応する複数のエクストラクタトラックの少なくとも1つを要求する手段と、
    複数の前記エクストラクタトラックの前記少なくとも1つを、データの第1のセットとは別に受信する手段であって、前記データの第1のセットは前記複数の動作点で前記スケーラブルなコンテンツを提示するためのサンプルを有し、前記受信されたエクストラクタトラックはデータの第1のセットから導出されたデータの第2のセットを含み、前記データの第2のセットは前記複数の動作点の内の第1の動作点のための第1の動作点データのビデオフレームへの参照の順序付けされたリストを含み、前記複数のエクストラクタトラックのそれぞれは前記スケーラブルなコンテンツ内の前記複数の動作点の1つに対応するものである手段と、
    前記複数の動作点の第1の動作点のための第1の動作点データであって、前記データの第1のセットのサブセットである第1の動作点データの前記ビデオフレームを、前記データの第2のセット内の参照を使用して要求する手段と、
    前記第1の動作点データの前記要求されたビデオフレームを受信する手段と、
    を含む、
    ことを特徴とする方法。
  20. 前記少なくとも1つのエクストラクタトラックは、前記少なくとも1つのエクストラクタトラックの前記要求に応じて受信される、ことを特徴とする請求項19に記載の装置。
  21. 利用可能なエクストラクタトラックを記述するメタデータを要求する手段、をさらに含む、
    請求項19に記載の装置。
  22. 前記少なくとも1つのエクストラクタトラック及び前記第1の動作点データの前記ビデオフレームは、メディアサーバからリモートクライアントで受信される、請求項19に記載の装置。
  23. 前記複数の動作点は、前記スケーラブルなコンテンツの複数の空間解像度、または前記スケーラブルなコンテンツの複数の品質レベル、の少なくとも1つを含む、請求項19に記載の装置。
  24. 前記スケーラブルなコンテンツはオーディオ又はビデオコンテンツの少なくとも1つを含む、請求項19に記載の装置。
JP2013100553A 2005-07-19 2013-05-10 メディアデータ送信方法及び装置 Active JP5785582B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US70090805P 2005-07-19 2005-07-19
US60/700,908 2005-07-19
US11/489,113 US20070022215A1 (en) 2005-07-19 2006-07-18 Method and apparatus for media data transmission
US11/489,113 2006-07-18

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2008522978A Division JP5363809B2 (ja) 2005-07-19 2006-07-19 メディアデータ送信方法及び装置

Publications (2)

Publication Number Publication Date
JP2013201763A JP2013201763A (ja) 2013-10-03
JP5785582B2 true JP5785582B2 (ja) 2015-09-30

Family

ID=37410753

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008522978A Active JP5363809B2 (ja) 2005-07-19 2006-07-19 メディアデータ送信方法及び装置
JP2013100553A Active JP5785582B2 (ja) 2005-07-19 2013-05-10 メディアデータ送信方法及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008522978A Active JP5363809B2 (ja) 2005-07-19 2006-07-19 メディアデータ送信方法及び装置

Country Status (8)

Country Link
US (1) US20070022215A1 (ja)
EP (2) EP1907954A1 (ja)
JP (2) JP5363809B2 (ja)
KR (2) KR101454031B1 (ja)
CN (2) CN101283351B (ja)
AU (1) AU2006269848B2 (ja)
HK (2) HK1125205A1 (ja)
WO (1) WO2007012062A1 (ja)

Families Citing this family (94)

* 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
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2004034589A2 (en) * 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN101834610B (zh) * 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
AU2005223652B2 (en) 2004-03-18 2011-01-27 Andrew Peter Liebman A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems
KR101161193B1 (ko) * 2004-05-07 2012-07-02 디지털 파운튼, 인크. 파일 다운로드 및 스트리밍 시스템
JP5550834B2 (ja) * 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7962933B2 (en) * 2006-04-06 2011-06-14 Velti USA, Inc. Mid-roll insertion of digital media
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9178535B2 (en) * 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
WO2008048068A1 (en) * 2006-10-19 2008-04-24 Lg Electronics Inc. Encoding method and apparatus and decoding method and apparatus
US10382514B2 (en) 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
US20080294691A1 (en) * 2007-05-22 2008-11-27 Sunplus Technology Co., Ltd. Methods for generating and playing multimedia file and recording medium storing multimedia file
WO2009003684A1 (en) 2007-07-02 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for storing and reading a file having a media data container and a metadata container
US9237101B2 (en) * 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US20090119594A1 (en) * 2007-10-29 2009-05-07 Nokia Corporation Fast and editing-friendly sample association method for multimedia file formats
CN102084338B (zh) * 2008-04-14 2016-01-20 安德鲁·利布曼 用于多平台非线性视频编辑系统的新型媒体文件
EP2319223A1 (en) * 2008-04-24 2011-05-11 SK Telecom Co., Ltd. Scalable video providing and reproducing system and methods thereof
CA2722204C (en) * 2008-04-25 2016-08-09 Thomas Schierl Flexible sub-stream referencing within a transport data stream
EP2310958B1 (en) * 2008-06-19 2015-02-25 Andrew Liebman A novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing systems
JP5155449B2 (ja) * 2008-07-26 2013-03-06 トムソン ライセンシング スケーラブルビデオコーディング(svc)を使用する高速チャネル変更アプリケーションのためのリアルタイムトランスポートプロトコル(rtp)パケット化方法
KR101547557B1 (ko) * 2008-11-14 2015-08-26 삼성전자주식회사 컨텐츠 재생 장치 선정 방법 및 그 장치
WO2010060442A1 (en) * 2008-11-26 2010-06-03 Telefonaktiebolaget Lm Ericsson (Publ) Technique for handling media content to be accessible via multiple media tracks
US8380790B2 (en) * 2008-12-15 2013-02-19 Microsoft Corporation Video conference rate matching
US20100149301A1 (en) * 2008-12-15 2010-06-17 Microsoft Corporation Video Conferencing Subscription Using Multiple Bit Rate Streams
US20100161779A1 (en) * 2008-12-24 2010-06-24 Verizon Services Organization Inc System and method for providing quality-referenced multimedia
WO2010085470A1 (en) * 2009-01-20 2010-07-29 Ripcode, Inc. System and method for splicing media files
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9485299B2 (en) * 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
US9197677B2 (en) * 2009-03-09 2015-11-24 Arris Canada, Inc. Multi-tiered scalable media streaming systems and methods
US20100262708A1 (en) * 2009-04-08 2010-10-14 Nokia Corporation Method and apparatus for delivery of scalable media data
US8625837B2 (en) 2009-05-29 2014-01-07 Microsoft Corporation Protocol and format for communicating an image from a camera to a computing environment
US8566393B2 (en) * 2009-08-10 2013-10-22 Seawell Networks Inc. Methods and systems for scalable video chunking
US9537967B2 (en) * 2009-08-17 2017-01-03 Akamai Technologies, Inc. Method and system for HTTP-based stream delivery
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
JP5591932B2 (ja) * 2009-09-22 2014-09-17 クゥアルコム・インコーポレイテッド ファイルフォーマットトラック選択のためのメディアエクストラクタトラック
JP2011087103A (ja) * 2009-10-15 2011-04-28 Sony Corp コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供
US9124642B2 (en) 2009-10-16 2015-09-01 Qualcomm Incorporated Adaptively streaming multimedia
US8601153B2 (en) * 2009-10-16 2013-12-03 Qualcomm Incorporated System and method for optimizing media playback quality for a wireless handheld computing device
KR101628432B1 (ko) * 2010-02-19 2016-06-21 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 레프리젠테이션 스위칭을 위한 방법 및 장치
JP5592960B2 (ja) * 2010-03-03 2014-09-17 サムスン エレクトロニクス カンパニー リミテッド メディアファイルの記録及び再生に係る装置及び方法とその記録媒体
EP2580920A1 (en) * 2010-06-14 2013-04-17 Thomson Licensing Method and apparatus for encapsulating coded multi-component video
CN103098485A (zh) * 2010-06-14 2013-05-08 汤姆森特许公司 封装编码的多组成视频的方法和装置
US8947492B2 (en) 2010-06-18 2015-02-03 Microsoft Corporation Combining multiple bit rate and scalable video coding
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
EP2596633B1 (en) * 2010-07-20 2016-11-23 Nokia Technologies Oy A media streaming apparatus
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8190677B2 (en) 2010-07-23 2012-05-29 Seawell Networks Inc. Methods and systems for scalable video delivery
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
CN101984619A (zh) * 2010-10-12 2011-03-09 中兴通讯股份有限公司 一种流媒体业务的实现方法及系统
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
US20120265853A1 (en) * 2010-12-17 2012-10-18 Akamai Technologies, Inc. Format-agnostic streaming architecture using an http network for streaming
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
ES2772224T3 (es) 2011-04-08 2020-07-07 Andrew Liebman Sistemas, medios de almacenamiento legibles por ordenador y métodos implementados por ordenador para compartir proyectos
US9219945B1 (en) * 2011-06-16 2015-12-22 Amazon Technologies, Inc. Embedding content of personal media in a portion of a frame of streaming media indicated by a frame identifier
US9342598B1 (en) * 2011-06-21 2016-05-17 Intellectual Ventures Fund 79 Llc Methods, devices, and mediums associated with collaborative research
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US9712887B2 (en) 2012-04-12 2017-07-18 Arris Canada, Inc. Methods and systems for real-time transmuxing of streaming media content
DK3481068T3 (da) 2012-04-13 2020-11-16 Ge Video Compression Llc Billedkodning med lav forsinkelse
KR20140002447A (ko) * 2012-06-29 2014-01-08 삼성전자주식회사 멀티미디어 시스템에서 적응적 미디어 구조 송수신 방법 및 장치
KR102162119B1 (ko) 2012-06-29 2020-10-06 지이 비디오 컴프레션, 엘엘씨 비디오 데이터 스트림 개념
CN109618185A (zh) * 2012-07-10 2019-04-12 Vid拓展公司 由wtru执行的方法、wtru及编码设备
CN109618235B (zh) * 2013-01-18 2021-03-16 佳能株式会社 生成设备和方法、处理设备和方法以及存储介质
US10034010B2 (en) * 2015-10-14 2018-07-24 Qualcomm Incorporated Alignment of operation point sample group in multi-layer bitstreams file format
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
US10706604B2 (en) 2016-06-03 2020-07-07 Apple Inc. Controlling display performance using display system hints
US11197040B2 (en) * 2016-10-17 2021-12-07 Mediatek Inc. Deriving and signaling a region or viewport in streaming media
WO2018182161A1 (ko) * 2017-03-28 2018-10-04 삼성전자 주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
US10791316B2 (en) 2017-03-28 2020-09-29 Samsung Electronics Co., Ltd. Method for transmitting data about three-dimensional image
KR102331041B1 (ko) * 2017-03-28 2021-11-29 삼성전자주식회사 3차원 이미지에 관한 데이터를 전송하기 위한 방법
US10225621B1 (en) 2017-12-20 2019-03-05 Dish Network L.L.C. Eyes free entertainment
KR102338900B1 (ko) 2018-02-13 2021-12-13 삼성전자주식회사 전자 장치 및 그 동작 방법
CN111818295B (zh) * 2019-04-10 2022-02-01 杭州海康威视数字技术股份有限公司 一种图像获取方法及装置
GB2587364B (en) * 2019-09-24 2023-11-15 Canon Kk Method, device, and computer program for encapsulating media data into a media file
CN110943977B (zh) * 2019-11-11 2022-10-14 普联技术有限公司 多媒体业务数据传输方法、服务端、设备及存储介质
US11589032B2 (en) * 2020-01-07 2023-02-21 Mediatek Singapore Pte. Ltd. Methods and apparatus for using track derivations to generate new tracks for network based media processing applications
US20230388508A1 (en) * 2020-09-29 2023-11-30 Lg Electronics Inc. Method and device for generating media file

Family Cites Families (58)

* 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
US4907224A (en) * 1986-10-17 1990-03-06 Bydatel Corporation Method for transmitting data in multiple access data communications networks
DE4102408A1 (de) * 1991-01-28 1992-08-06 Grundig Emv Verfahren zur sender- bzw. regionalkennung in gleichwellennetzen
US5289276A (en) * 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
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
DE69319931T2 (de) * 1993-09-10 1998-12-10 Rca Thomson Licensing Corp Realzeitkodierer für digitaltonpakete
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
EP0674414B1 (en) * 1994-03-21 2002-02-27 Avid Technology, Inc. Apparatus and computer-implemented process for providing real-time multimedia data transport in a distributed computing system
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
BR9508902A (pt) * 1994-09-08 1998-01-13 Virtex Communications Inc Método e aparelho para distribuição eletrônica de informaç o digital de multimeios
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
US5621660A (en) * 1995-04-18 1997-04-15 Sun Microsystems, Inc. Software-based encoder for a software-implemented end-to-end scalable video delivery system
US5969539A (en) * 1995-05-26 1999-10-19 Xilinx, Inc. Product term exporting mechanism and method improvement in an EPLD having high speed product term allocation structure
US5818441A (en) * 1995-06-15 1998-10-06 Intel Corporation System and method for simulating two-way connectivity for one way data streams
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US6138147A (en) * 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US6112226A (en) * 1995-07-14 2000-08-29 Oracle Corporation Method and apparatus for concurrently encoding and tagging digital information for allowing non-sequential access during playback
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
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
US6745226B1 (en) * 1997-05-02 2004-06-01 Roxio, Inc. Method and system for progressive encoding in an active desktop environment
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
US6175872B1 (en) * 1997-12-12 2001-01-16 Gte Internetworking Incorporated Collaborative environment for syncronizing audio from remote devices
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6453355B1 (en) * 1998-01-15 2002-09-17 Apple Computer, Inc. Method and apparatus for media data transmission
JP2003525199A (ja) * 1998-01-29 2003-08-26 ブリストル−マイヤーズ スクイブ カンパニー ジアリール1,3,4−オキサジアゾロンアミノ酸誘導体
US6135243A (en) * 1998-09-02 2000-10-24 Cybo Robots, Inc. Braking apparatus
US6372418B1 (en) * 2000-07-18 2002-04-16 Eastman Kodak Company Color motion picture print film with improved tonescale
KR20020064904A (ko) * 2000-09-22 2002-08-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 파인-입상 스케일러빌리티의 바람직한 전송/스트리밍 오더
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US7751628B1 (en) * 2001-12-26 2010-07-06 Reisman Richard R Method and apparatus for progressively deleting media objects from storage
US20030140149A1 (en) * 2002-01-14 2003-07-24 Richard Marejka Communication protocol for use in controlling communications in a monitoring service system
JP3843101B2 (ja) * 2002-03-04 2006-11-08 富士通株式会社 階層符号化データ配信装置および方法
KR100912984B1 (ko) * 2002-04-12 2009-08-20 미쓰비시덴키 가부시키가이샤 메타데이터 편집 장치, 메타데이터 재생 장치, 메타데이터 배신 장치, 메타데이터 검색 장치, 메타데이터 재생성 조건 설정 장치, 콘텐츠 배신 장치, 메타데이터 배신 방법, 메타데이터 재생성 장치, 메타데이터 재생성 방법
JP3852761B2 (ja) * 2002-05-14 2006-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、コンテンツ提供システム、端末装置及びコンテンツ送信方法並びにプログラム
KR100486713B1 (ko) * 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
WO2004036916A1 (en) * 2002-10-15 2004-04-29 Koninklijke Philips Electronics N.V. System and method for transmitting scalable coded video over an ip network
US7161957B2 (en) * 2003-02-10 2007-01-09 Thomson Licensing Video packets over a wireless link under varying delay and bandwidth conditions
US7283589B2 (en) * 2003-03-10 2007-10-16 Microsoft Corporation Packetization of FGS/PFGS video bitstreams
KR100586883B1 (ko) * 2004-03-04 2006-06-08 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법
KR100596705B1 (ko) * 2004-03-04 2006-07-04 삼성전자주식회사 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템
US20060156363A1 (en) * 2005-01-07 2006-07-13 Microsoft Corporation File storage for scalable media
DE102005001287A1 (de) * 2005-01-11 2006-07-20 Siemens Ag Verfahren und Vorrichtung zur Verarbeitung von skalierbaren Daten
US7725593B2 (en) * 2005-07-15 2010-05-25 Sony Corporation Scalable video coding (SVC) file format

Also Published As

Publication number Publication date
WO2007012062A1 (en) 2007-01-25
JP2013201763A (ja) 2013-10-03
EP2270681A1 (en) 2011-01-05
CN101283351B (zh) 2013-03-27
KR101454031B1 (ko) 2014-10-27
AU2006269848A1 (en) 2007-01-25
EP1907954A1 (en) 2008-04-09
AU2006269848B2 (en) 2012-04-05
KR20080041204A (ko) 2008-05-09
HK1152775A1 (zh) 2012-03-09
KR20120080646A (ko) 2012-07-17
EP2270681B1 (en) 2016-08-17
CN103309933A (zh) 2013-09-18
CN101283351A (zh) 2008-10-08
KR101311015B1 (ko) 2013-09-24
CN103309933B (zh) 2016-08-03
JP2009503950A (ja) 2009-01-29
HK1125205A1 (en) 2009-07-31
JP5363809B2 (ja) 2013-12-11
US20070022215A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
JP5785582B2 (ja) メディアデータ送信方法及び装置
JP4891364B2 (ja) メディア・データ伝送のための方法および装置
JP4282232B2 (ja) メディア・データ伝送のための方法および装置
CA2758846C (en) Method and apparatus for media data transmission
US7366788B2 (en) Method and apparatus for media data transmission
GB2469563A (en) A method system and apparatuses for processing readable content stored in a stream of data
EP1051008A2 (en) Method and apparatus for media data transmission
JP2001197120A (ja) メディア・データ伝送のための方法および装置
AU2012203922A1 (en) Method and apparatus for media data transmission
AU2003204872B2 (en) Method and apparatus for media data transmission
AU755830B2 (en) Method and apparatus for media data transmission

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140224

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140526

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150623

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: 20150713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150724

R150 Certificate of patent or registration of utility model

Ref document number: 5785582

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250