TWI443582B - 用於數位媒體處理介面之電腦可讀取媒體 - Google Patents

用於數位媒體處理介面之電腦可讀取媒體 Download PDF

Info

Publication number
TWI443582B
TWI443582B TW097123953A TW97123953A TWI443582B TW I443582 B TWI443582 B TW I443582B TW 097123953 A TW097123953 A TW 097123953A TW 97123953 A TW97123953 A TW 97123953A TW I443582 B TWI443582 B TW I443582B
Authority
TW
Taiwan
Prior art keywords
media
media content
memory
presentation
readable medium
Prior art date
Application number
TW097123953A
Other languages
English (en)
Other versions
TW200910209A (en
Inventor
Rajasekaran Rangarajan
Martin Regen
Richard W Russell
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200910209A publication Critical patent/TW200910209A/zh
Application granted granted Critical
Publication of TWI443582B publication Critical patent/TWI443582B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10935Digital recording or reproducing wherein a time constraint must be met
    • G11B2020/10944Real-time recording or reproducing, e.g. for ensuring seamless playback of AV data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Photographic Processing Devices Using Wet Methods (AREA)

Description

用於數位媒體處理介面之電腦可讀取媒體
本發明是有關用於數位媒體處理之介面。
數位媒體呈現是由像是視訊、音訊、影像、文字及/或圖形的循序媒體內容集合所組成。當媒體內容播放器向使用者顯示及/或呈現此等循序媒體內容集合時,會將該等稱為媒體內容串流。有些媒體內容播放器係經組態設定以同時地顯示且呈現不僅單一個獨立受控的媒體內容串流(例如一主電影並連同於多項像是導演評論、演員傳記或廣告播出的特輯)。此等媒體內容播放亦能夠與一或多的媒體內容串流同步地顯示並呈現使用者可選擇的可見或可聽物件(例如各種選單、遊戲、特殊效果或其他選項)。
一媒體內容播放器可為具有任何類型而按軟體、硬體、韌體或是其任何組合。像是光學媒體播放(例如DVD播放器)、電腦之裝置,以及其他可供存取大量相對價廉、可攜或其他可存取資料儲存裝置的電子裝置,會特別適用於滿足消費者對於具有顯著播放時段之數位媒體呈現的需求。
常見許多廠商機構供應不同的媒體內容播放軟體及硬體組件,並且此等組件被預期為能夠在具備有限處理及記憶體資源的環境之中成功地相互運作。因此,會希望能夠提供一些技術,該等可用以在所有類型之媒體內容播放器 及其架構上確保具備資訊效率性、相對無瑕疵的數位媒體呈現播放,而這包含可同時呈現之媒體內容串流進行正確同步化。
本揭所討論之數位媒體處理技術及介面(像是應用程式設計介面(「API」))可促進在與一媒體內容播放器相關聯之媒體處理管線的硬體與軟體組件間之具有效率性、一致性的相互運作作業。
一般說來,媒體處理管線負責自像是光碟、硬碟、網路位置以及其他可能來源的媒體來源接收媒體內容集合,並且執行處理任務將諸如一電影、電視節目、音訊節目或者其他呈現之類的數位媒體呈現作為一或多媒體內容串流,來備製該等媒體內容集合並呈現予使用者。該等媒體內容集合稱為訊段(「Clip」),而通常是自一媒體來源接收到一訊段。自一特定媒體來源所讀取到之訊段的離散局部在此稱為媒體內容單元,而通常會對該等進行解多工、解壓縮、解碼及/或解密處理。在進行解多工之後,此等媒體內容單元在此稱為媒體樣本。然將能暸解本揭所使用的命名傳統僅為說明之目的,並可運用任何所欲之命名傳統。
一媒體處理管線包含像是媒體來源讀取器、解多工器、解碼器、解密器等等的組件,而該等可在硬體或軟體或是其等之組合中實作。可運用一像是MicrosoftDirectShowTM 多媒體框架的框架以實作一媒體處理管線。 然將能暸解確能運用任何目前已知或未來開發之框架以實作一媒體處理管線。
可在一媒體處理管線中之軟體組件與硬體組件間的邊界處交換資訊(像是有關該媒體內容本身及/或該媒體內容對一使用者之呈現的資訊)。在一資訊交換情境裡,由一軟體組件所使用之記憶體(該詞彙「記憶體」可涵蓋任何類型的電腦可讀取儲存媒體)內的資訊可由一硬體組件加以運用。而在另一資訊交換情境裡,一硬體組件是根據由一軟體組件所確定之資訊來修改其操作,反之亦然。
本揭所討論之一示範性技術及介面-為討論目的而參照於「PhysMemDataStructure」介面-係經組態設定為在一媒體處理管線內之一軟體組件與一硬體組件間邊界處的操作,藉此協助該硬體組件可直接自一由該軟體組件所使用的記憶體進行資訊存取,而非利用指令/處理器週期來拷貝該資訊。該PhysMemDataStructure介面向該硬體組件曝露出與儲存在一由該軟體組件所使用之記憶體內(而待由該硬體組件加以處理)的媒體內容單元之資料結構相關聯的一或多欄位。該等資料結構之欄位存放有關於個別媒體內容單元所位處之記憶體的實體性質之資訊。此等實體性質之範例包含記憶體類型、記憶體區塊大小、指向記憶體位置之讀/寫指標位置以及媒體內容單元相對於此等記憶體指標的位移位置,然不限於此。為進一步有效率地使用記憶體資源,該軟體組件可使用一環狀緩衝器來儲存媒體內容單元。為更進一步地獲致記憶體及處理效率性,可 利用虛擬記憶體以在該環狀緩衝器之實體記憶體的終點局部處複製該環狀緩衝器的起點局部。
本揭所討論之其他示範性技術及介面-為討論目的而參照於「SyncHelper」介面-係經組態設定俾協助硬體組件與軟體組件之間的資訊交換,而這可用以對時序(例如用以維持兩個媒體內容串流之間的所感知同步性)或是該等硬體或軟體組件的其他特點進行調整。本揭所討論之一SyncHelper介面-稱為「GetDecodeTimes」介面-可提供有關於由一硬體組件(像是一解多工器、解碼器或呈現器)在一特定時間點處所呈現之特定媒體內容單元或媒體樣本的資訊。所提供之資訊包含該數位媒體呈現在該特定時間點處的播放時段行經時間量,以及可自訊段而導出該媒體樣本之該訊段的播放時段行經時間量。另一SyncHelper介面-稱為「SyncToSTC」介面-則有助於各種可同時呈現之媒體內容串流的同步化作業。在一示範性情境裡,該SyncToSTC介面確定(亦即請求/接收或計算)由該GetDecodeTimes介面所回傳之數位媒體呈現的兩個播放時段行經時間量數值間之差值,並且指示一或多硬體組件以根據所確定之差值來調整時序(例如調整一時序信號的速率或調整將哪一媒體樣本加以解碼,或是此二者)。
本「發明內容」係提供以按一簡化形式介紹各種所選概念。在「實施方式」乙節中將進一步討論該等概念。亦可採行除在「概要」中所說明之外的構件或步驟,同時無一構件或步驟為決然必要者。本「發明內容」並非要識別 所主張之標的的各項關鍵特點或基本特性,亦非用來作為決定所主張之標的的範圍之輔助。所主張之標的並不限於能夠解決在本揭示任何部分處所標註之任何或所有缺點的實作。
數位媒體呈現之可預測及相對無瑕疵播放作業通常會依據該媒體內容播放器之有限計算資源,尤其是記憶體和處理器資源的使用效率性而定。瑕疵及無效率性可能會在各種情況下出現,而特別是當於一媒體處理管線的硬體組件與軟體組件之間進行資訊傳送時尤甚。在一情境裡,當在一由一軟體組件所使用之記憶體與一由一硬體組件所使用之記憶體間進行資訊傳送時即可能出現無效率性-會希望能夠將在記憶體存取交易中所使用到的處理及/或記憶體資源最小化。在另一情境裡,當由複數個別的硬體組件備製多個媒體內容串流以同時呈現予一使用者,而且該等硬體組件並無法獲用適當的資訊來確保操作同步化時,即可能會出現(多個)媒體內容串流之播放作業中的瑕疵及/或使用者感知的同步喪失-故希望能夠對該等硬體組件提供資訊用以調整在執行一些處理任務上的時序。
本揭討論各種技術及應用程式設計介面(「API」),此等係運作於一軟體組件與一硬體組件之間的邊界處,以曝露出可由該硬體組件所使用之資訊,藉此強化在一媒體內容播放器內之媒體處理管線中運作的各項組件之效率性、 正確性及可相互運作性。
現參照該等圖式,其中類似編號特定相仿組件,而第1圖係一呈現媒體內容之示範性媒體內容播放器100(後文中稱其為「呈現系統」100)的簡化功能區塊圖。媒體內容是由視訊、音訊、影像、文字及/或圖形的序列(一般說來為依時排序)所組成。該「呈現系統」可為任何進行媒體內容呈現的系統,這些包含一光學媒體播放器、一計算裝置或其作業系統、一音訊播放器、一機頂盒、一電信裝置、一個人數位助理、一影像或視訊捕捉裝置等等,然不限於此。為討論之目的,茲假設該「呈現系統」係一互動式多媒體呈現系統,其可用以與使用者可選擇之可見或可聽互動物件(例如選單、進戲、特殊效果或其他選項)同步地播放出像是電影或者其他類型之呈現的媒體內容。
如圖示,該「呈現系統」100包含一媒體內容管理器102、一互動式內容(「“interactive content”,IC」)管理器104、一呈現管理器106、一時序信號管理區塊108及一混合器/呈現器110。一般說來,是依設計選擇以指定如何實作出該「呈現系統」100的特定功能。可利用硬體、軟體或韌體,或是其組合,以實作該等功能。
操作上,該「呈現系統」100對該互動式多媒體呈現內容(「呈現內容」)120進行處置。該「呈現內容」120含有一媒體內容成份(「媒體成份」)122,以及一互動式內容成份(「IC成份」)124。該媒體成份122及該IC成份124通常是個別的資料串流而分別由該媒體內容管理器 102及該IC管理器104處置,然此非必要者。
該「呈現系統」100亦可有助於將「呈現內容」120如所播放的呈現127來呈現給一使用者(未示出)。該所播放的呈現127代表與該「呈現內容」120相關聯的可見及/或可聽資訊,這是由該混合器/呈現器110所產生,並可由該使用者透過像是顯示器或喇叭(未示出)的裝置而接收得。為討論之目的,茲假定該「呈現內容」120以及該所播放的呈現127是代表按任意格式的高解析度DVD電影內容。然將能瞭解該「呈現內容」120及該所播放的呈現127可經組態設定以呈現現今已知或是未來所開發的任意類型媒體內容呈現。
該媒體成份122代表可按該所播放的呈現127中之媒體內容串流(媒體內容串流208及228,後文中將參照第2圖所示並且進一步討論),呈現視訊、音訊、影像、文字及/或圖形之一或多序列(一般說來係依時排序)予使用者。可同時地呈現一個以上的獨立受控媒體內容串流(例如一主電影並連同於多項像是導演評論、演員傳記或廣告播出的特輯)。
一電影通常具有一或多的版本(例如一成年觀眾版本以及一青少年觀眾版本);一或多的標題131,而具有關聯於各標題的一或多章節(未示出)(後文中將關聯於該呈現管理器106以進一步討論此標題);一或多的音軌(例如像是該電影可以一或多語言播放,且具有字幕或無字);以及額外特性,像是導演評論、額外影鏡片段、演員傳記、廣 告播出、預告片等等。將能瞭解於標題與章節間之區別僅為邏輯性的區別。例如,單一個可感知媒體節段可為一單一標題/章節的一部份,或可為由多個標題/章節所組成。是由內容撰寫來源來決定可適用的邏輯區別。
構成該媒體成份122之特點的視訊、音訊、影像、文字及/或圖形序列集合通常稱為訊段123(該等訊段123係顯示為位在該媒體成份122及該播放列表128之內,並亦於第2圖中所參照且在後文中進一步討論)。然應瞭解構成該媒體成份122的資料序列集合可按任何所欲方式進行群組化及/或指派,並且實際資料可為按任何單位,例如位元、訊框、樣本、資料封包、圖片群組、強化視訊物件單元等等,來進行配置和呈現。一特定資料單元之數位內容(以及資料單元的大小)可根據多項因素而定,像是含有該單元之視訊、音訊或資料內容的特徵,或是一或多與媒體來源(自其可導出樣本)相關聯的參數(例如媒體來源識別資料及/或位置、編碼器/解碼器參數或設定值,或是加密參數或設定值)。後文中將併同於第2圖以進一步討論媒體來源。
該媒體資料132係關聯於該媒體成份122的資料,此資料既經備製以供由該媒體內容管理器102呈現,並傳送至該混合器/呈現器110。該媒體資料132通常針對各個有效訊段123包含有該訊段之一局部的呈現結果。
現再度參照於該「呈現內容」120,該IC成份124含有互動式物件125,此等係可由使用者選擇之可見或可聽 物件,可視需要與包含任何用以呈現該等可見或可聽物件的指令(其顯示如應用程式155)的媒體成份122同時地呈現。除其他項目以外,互動式物件的範例包含視訊樣本或訊段、音訊樣本或訊段、影像、圖形、文字以及其等之組合。
應用程式155提供一該「呈現系統」100可藉以向一使用者呈現互動式物件125的機制。該等應用程式155代表對資料所進行之電子控制預定操作的任何信號處理方法或(多項)所存指令。
該IC管理器104含有一或多的指令處置引擎181,其可接收、解譯並配置與該等應用程式155之命令相關聯的執行作業。當該等應用程式155的執行作業正在進行並且收到使用者輸入150時,即可觸發該所播放的呈現127中的行為。執行該應用程式155的一些指令,如標註為「來自ICM之輸入(input from ICM)」190者,可有助於與該「呈現系統」100內之其他功能性或組件的通訊或互相運作性。如圖示,該輸入190是由該媒體內容管理器102所接收(後文中參照於第2圖所進一步討論),然該「呈現系統」100內的其他組件或功能亦可對該輸入190作出回應。
互動式內容資料(「IC資料」)134係與該IC成份124之資料相關聯,其既經備製以供由該IC管理器104呈現並已傳送至該混合器/呈現器110。
時序信號管理區塊108(後文中將參照於第3圖以進一步討論)產生各式時序信號158,這些信號可用來控制分 別由該媒體內容管理器102及該IC管理器104所進行之媒體資料132及IC資料134之備製和產生作業的時序。例如,該時序信號管理區塊108通常是負責決定對一使用者呈現該媒體資料132的速率(第3圖中所顯示且討論之「媒體資料呈現速率307」)及呈現該IC資料134的速率。在另一範例裡,可利用該等時序信號158以達成該媒體資料132及/或該IC資料134的近似同步結果(例如以每一訊框為基礎或以另一時間為基礎的時序/同步)。
該混合器/呈現器在一視訊平面裡(未示出)呈現該媒體資料132,並且在一圖形平面裡(未示出)呈現該IC資料134。該圖形平面係疊置於該視訊平面上以對該使用者產生該所播放的呈現127,然此非必要者。
該呈現管理器106係經組態設定以與該IC內容管理器104、該IC管理器102、該混合器/呈現器110和該時序信號管理區塊108進行通訊,並可有助於處置該「呈現內容」120以及對該使用者呈現該所播放的呈現127。該呈現管理器106可存取一播放列表128。該播放列表128包含一序列的經時間排序之訊段123和應用程式155(包含互動式物件125),該等可呈現予一使用者。可將該等訊段123及應用程式155/互動式物件125加以配置以構成一或多的標題131。如前述,可對一使用者同時地播放一個以上的獨立受控標題/媒體內容串流。此等同時播放的串流可指示於該播放列表128上,或者無可預期性的使用者輸入可造成同時地播放媒體內容串流。
該呈現管理器106利用該播放列表128以確定一特定媒體呈現的呈現時間線130(這在一電影的情況下為一標題131),其通常具有一表示特定時間量的預定播放時段,於該特定時間量內可呈現該標題予一使用者。該播放時段內之特定行經時間量的表示通常稱為「標題時間」。由於可一次以上地播放標題(例如以一迴圈方式),因此可根據該標題的單一重覆(iteration)來決定該播放時段。在概念上,該呈現時間線130表示可對一使用者呈現該等特定訊段123及應用程式155的標題時間(然如所示,使用者何時可能輸入命令以開始及結束播放部分特定訊段通常並非已知)。特定訊段123通常亦具有預設播放時段,其代表呈現該訊段之特定時間量。該訊段播放時段內之特定行經時間量的表示通常稱為「呈現時間」。一訊段的各個獨立可呈現局部(為討論之目的而稱為「媒體樣本」,然而可使用任何所欲之命名傳統)在該訊段之播放時段裡具有一相關、預設定的呈現時間。為避免在該媒體內容之呈現出現使用者可感知瑕疵,會在排程/預定的呈現時間之前事先備製一或多的屆臨媒體樣本以供呈現。
為更佳地說明一特定訊段之播放作業以及與其相關聯的時序/時間,可利用該播放列表128及/或該時間線130以確定一或多的媒體內容時間線(「媒體時間線」)142。現續參照第1及2圖,第3圖係一針於一特定訊段123的示範性媒體時間線142。該媒體時間線142上表註有各種媒體樣本呈現時間202。該等媒體樣本呈現時間202代表 在一特定訊段之播放時段內將一或多媒體樣本呈現為媒體資料132的各個時間。如圖示,該等媒體樣本呈現時間202係按一速率出現,此速率係依據一預定媒體資料呈現速率207,呈現速率207可依每一訊段作改變。注意到該媒體資料呈現速率207無須與編碼一特定訊段123的速率相同,然該媒體資料呈現速率可根據對於一特定訊段的編碼速率而改變。有些使用者輸入150也會影響到自媒體來源擷取媒體樣本的速度,並因此影響到該等媒體樣本呈現時間202出現的速率。例如,該所播放的呈現127可按一正常速度往一向前方向進行,並且亦可依比起該正常速度為較快或較慢之速度向前及向後兩者方向進行。將能瞭解該正常速度係一相對詞彙,並且該正常速度可隨每個呈現且隨每個訊段而改變。在快速向後及快速向前的操作過程中,經常會略過播放某些媒體內容(如圖示之媒體樣本230)。其他的使用者輸入可造成略過播放某些內容,像是當該使用者從該電影的某一部分跳躍至另一部分時。
該媒體時間線142上顯示有一目前行經播放時間209(亦即與該訊段相關聯之數位媒體呈現的標題時間)。在該目前行經播放時間209處對一使用者呈現該媒體樣本250。如圖示,該目前行經播放時間209重合於一特定媒體樣本呈現時間202,然此重合並非必要。亦顯示有一次一可呈現媒體樣本呈現時間214。可利用次一可呈現媒體樣本呈現時間314來決定次一媒體樣本及/或次一媒體樣本呈現時間,其應為備製的次一樣本以呈現予使用者(即如圖 示,應備製該次一可處理媒體樣本270以供呈現)。將能瞭解該次一可呈現媒體樣本/呈現時間可為根據該播放列表128的次一連續媒體樣本/呈現時間,或者可為一與目前行經播放時間209相關聯之媒體樣本/呈現時間相距一或多媒體樣本/呈現時間202的媒體樣本/呈現時間。可有各種方式以確定該次一可呈現媒體樣本/媒體樣本呈現時間,然在此不予詳細討論。不過,通常會確定一所預測之行經播放時間220(亦即該數位媒體呈現之播放時段的所預測標題時間)以及相對應的次一可呈現媒體樣本/呈現時間。可利用像是播放速度、媒體訊框速率207之資訊以及其他資訊來決定該特定媒體樣本呈現時間/媒體樣本的所預測行經播放時間及/或位置。
現參照第1圖,操作上,該呈現管理器106將包含關於該呈現時間線130及/或該媒體時間線142在內之資訊(然不限於此)提供至該媒體內容管理器102及該IC管理器104。根據來自於該呈現管理器106的輸入,該IC管理器104備製IC資料134以供呈現,並且該媒體內容管理器102備製媒體資料132以供呈現。
現續參照第1及2圖,第3圖係一簡化功能區塊圖,其中進一步詳細說明該媒體內容管理器102的特點。該媒體內容管理器102含有一或多的媒體處理管線。其中顯示有兩條媒體處理管線,該媒體處理管線1 302及該媒體處理管線2 320,然可有任意數量的媒體處理管線。一般說來,可利用該媒體處理管線1 302及該媒體處理管線2 320 分別地備製獨立受控之媒體內客串流308及328以供呈現予一使用者。一媒體處理管線通常是負責參照於一第一時序信號350以備製一主要媒體內容串流,像是一電影,而其他的媒體處理管線則是參照於一第二時序信號370以負責備製一或多的次要媒體內容串流,像是導演評論、演員傳記、廣告播出等等。該等時序信號代表自媒體來源擷取出媒體內容之樣本之速率及/或備製媒體內容之樣本之速率,以供呈現予一使用者(然此(等)速率可為根據使用者輸入、編碼/加密/壓縮格式及其他因素而動態地改變),並且通常是自時脈來源(未示出),像是與該「呈現系統」100及/或諸如該等媒體處理管線內之硬體組件之類的特殊目的裝置相關聯之時脈來源,所導算出。
該媒體內容管理器102負責備製訊段的屆臨個別可呈現局部,像是第2圖所示之(多個)次一可處理媒體樣本270,以供呈現。此備製經常會牽涉到多項步驟,這些包含(然不限於此)自一特定媒體來源(如所示之媒體來源304及324,該等可為任何裝置、位置或資料且可自其導出或獲得媒體內容)讀取該訊段的屆臨局部,並且利用硬體及軟體式媒體處理組件(所示為媒體處理組件306及326,並於後文中關聯於第4圖以進一步詳細討論),像是讀取器、解多工器、呈現器及/或解密器,藉以從讀取自該(等)媒體來源的資訊獲得可播放媒體內容串流308、328。
將能瞭解該媒體內容管理器102可具有一動態處理負載,其係根據含有該媒體成份122及/或該IC成份124之 各種訊段123的識別資料及排程(經預定或者基於無可預期性的使用者輸入150)而定。一般說來,希望能達成媒體處理管線不會耗用超過該「呈現系統」100之10-15%的處理資源(例如CPU週期)之效果。
當利用像是記憶體對記憶體拷貝之傳統拷貝交易以在多個記憶體位置之間進行資訊傳送時,可能會耗佔大量的處理資源,並且將處理資源過度地使用於拷貝交易會有在播放數位媒體呈現之過程中造成瑕疵的潛在性。然而經常又會希望在由媒體處理管線之不同組件所使用的記憶體間,尤其是在由軟體組件所使用之記憶體與由硬體組件所使用之記憶體間,進行資訊傳送。基於諸多原因,會使用硬體組件以加速媒體內容處理。
同時地進行備製兩個以上訊段的屆臨局部以供呈現,亦可能以一不易預測之方式而耗用大量的計算資源,像是記憶體及處理器週期,並且可能進一步地劣化數位媒體內容播放過程中之瑕疵的潛在性。此外,為備製一訊段之特定局部以供呈現所必要的記憶體及/或處理資源(並因而對於此一備製作業的時間)並非總是每一樣本或每一訊段皆固定相同。有些會對所需資源及備製時間造成影響的因素,係與該媒體內容本身相關聯(包含像是媒體單元/樣本大小、媒體來源/位置、編碼或解碼參數以及加密參數之因素,然不限於此)。其他會對所需資源造成影響之因素係關聯於媒體內容播放器(例如媒體處理管線架構、動態處理負載以及媒體播放器架構的其他特性),而其他會對所需資源 造成影響之因素則係關聯使用者輸入(例如使用者所選定的媒體內容、內容格式或者播放速度)。
現繼續參照於第1-3圖,第4圖係一簡化功能區塊圖,其中進一步詳細說明該等媒體處理組件區塊306及326的架構及操作特點。在一可能實作裡,利用MicrosoftDirectShowTM 多媒體框架以將媒體處理任務劃分成多個稱為過濾器的步驟群組,而各個過濾器具有將多個過濾器連接合一的數個輸入腳針及數個輸出腳針。然將能暸解確能運用任何目前已知或未來開發之框架以實作一媒體處理管線。
如圖示,由一虛線表註軟體-硬體邊界403-在該邊界403左側上的組件主要為軟體式組件(或是利用軟體所實作之組件的局部),而在該邊界403右側上的組件主要為硬體式組件(或是利用硬體或軔體或其一組合所實作之組件的局部)。一示範性架構含有一軟體式媒體來源讀取器402,其可存取一第一記憶體430,而一硬體式組件可直接地讀取記憶體430;一硬體式解多工器(「Demux」)404,其一般可存取一或多記憶體區塊(為討論之目的顯示如一第二記憶體433);一或多硬體式解碼器/呈現器490,其一般亦可存取一或多的記憶體區塊(為討論之目的顯示如該第二記憶體433);一應用程式設計介面408,其包含PhysMemDataStructure API 410、Sniffer/Callback APIs 422以及含有GetDecodeTimes API 418及SyncToSTC API 420的SyncHelper APIs 416。
該媒體來源讀取器402負責自一特定媒體來源接收(透過資料推送或拉取技術)訊段的個別可呈現局部(為討論之目的稱為媒體單元407),將該等所收媒體單元407儲存在記憶體460內,並且下行串流傳送關於該等所存媒體單元407的資料(例如傳至該解多工器404或該等解碼器/呈現器490)。在一可能實作裡,可利用資料結構以將資料下行串流傳送至該解多工器404。例如,在一MicrosoftDirectShowTM 框架之情境裡,該等媒體單元407係裹裝於稱為IMediaSample物件的資料結構內(IMediaSample係參照於一該等物件所實作的介面,而該等物件可稱為「媒體樣本」)。IMediaSample物件通常係受限於在初始化時間點之固定大小的配置,並且根據媒體內容單元的大小而定,可能不會被運用到其完整範圍。依後文所述利用一環狀緩衝器420可供更有效率地利用記憶體。
記憶體430代表任何能夠透過該「呈現系統」100之作業系統所存取的電腦可讀取媒體(後文中將關聯於第7圖以進一步討論電腦可讀取媒體),這些電腦可讀取媒體包含實體鄰接且散置匯集記憶體、虛擬快取及非快取之記憶體、實體鎖定及未鎖定記憶體(適於散置匯集類型者),以及經最佳化以由一環狀緩衝器420運用的虛擬記憶體對映(後文中加以詳述),然不限於此。硬體配置之記憶體區塊432係該記憶體430之一區域或量值的抽象表現,該者可被視為是具有可透過該媒體來源讀取器402而被獨立配置的區塊,以供該解多工器404(或是該媒體處理管線302 或320的其他組件)依據一些演算法(後文中將關聯於第5圖以顯示並討論一示範性演算法),並且透過利用一些像是PhysMemDataStructure API 410的API 408進行存取。在一示範性實作裡,該硬體配置之記憶體區塊432係一環狀緩衝器420,其具有多個區塊,而其中可儲存獲自於該媒體來源讀取器402的個別媒體內容單元407。利用該環狀緩衝器420的一項優點為,有些電腦可讀取媒體在當透過碟軌以讀取資料時,尤其是在當該環狀緩衝器420並未對讀取操作施加任何封包限項時(例如自一光學裝置),可被更有效率地讀取。利用該環狀緩衝器420的另一項優點則為用於竅門模式(Trick Mode),此時會較平常更快速地讀取資料(例如自一光學裝置)。可藉由內建於該環狀緩衝讀取器內之分塊機制以更簡易地達到跳略對於執行一完整解碼並非必要的部分媒體內容單元。後文中將關聯於第5圖以進一步討論該環狀緩衝器420的其他細節和益處以及其操作。
該解多工器404回應自該媒體來源讀取器402之輸出腳針401而在輸入腳針411處接收媒體單元407(如第2圖所示之(多個)次一可處理媒體樣本270)及/或關聯於該等媒體單元407的資料結構,並且將先前被一相容多工器所合併的兩個以上信號加以劃分(像是成為已進行解碼的媒體內容串流)。該(等)記憶體433代表一或多的電腦可讀取媒體(後文中將參照於第7圖以進一步討論該電腦可讀取媒體),像是緩衝器或暫存器,而可由該解多工器404 或其他硬體組件加以使用。該解多工器404可在該輸出腳針421上將與個別媒體內容串流(像是媒體內容串流308或328)相關聯之已進行解多工之媒體樣本409提供至該等解碼器/呈現器490的一輸入腳針491。
該等解碼器/呈現器490負責接收已進行解多工之媒體單元,此等係依討論之目的而稱為媒體樣本409(例如MPEG-2樣本),並且負責利用一般為大眾所知之技術以將該已進行多工之媒體樣本加以解擾碼/解密,藉此產生與一特定媒體內容串流308、328相關聯的媒體資料132。雖顯示出在該等媒體來源、解多工器及解碼器/呈現器之間的一對一關係,然將能瞭解可有任意數量且以任何配置方式的該等組件(連同額外的組件),並且可在該媒體處理管線1 302與該媒體處理管線2 320之間共享此等組件。
該等API 408係提供來強化一媒體處理管線內之軟體組件及硬體組件的相互操作性,並可促進有效率地使用該「呈現系統」100的記憶體及處理資源。在一可能實作裡,該等API 408為許多電腦可執行指令集合,此等係經編碼於電腦可讀取儲存媒體上,並可在該「呈現系統」100之操作過程中執行及/或對於該等媒體處理管線306及326而由該等指令的作者存取。一般說來,該等API 408係經組態設定以執行該(等)如後文中關聯第5及6圖所進一步顯示且討論之方法的特點。
該PhysMemDataStructure API 410係經組態設定以將可由像是該等解多工器404及解碼器/呈現器490之硬體組 件直接耗用的記憶體430之支援予以一般化。在一可能實作裡(例如在一具有DirectShowTM 框架之媒體處理管線的情境裡),該等經裹裝於IMediaSample物件內的媒體單元407係經配置(藉由一IMemAllocator物件之實作,例如利用該解多工器404的輸入腳針411-輸出腳針401會詢查該輸入腳針411,因此該解多工器404可向記憶體提供該硬體可使用或所需要的性質)至該硬體配置之記憶體區塊432內的儲存位置,並且可將有關於此等儲存位置的資訊(像是記憶體類型;記憶體區塊的大小;指向該記憶體之一指標的位置;以及一特定媒體單元之儲存位置相對於一指向該記憶體之指標的位移位置)由該PhysMemDataStructureAPI 410曝露於像是該等解多工器404及解碼器/呈現器490的硬體組件。藉此,硬體組件即能直接地存取/擷取該硬體配置之記憶體區塊432內的資訊(例如經由直接記憶體存取技術),而無須利用指令及處理器週期來拷貝該資訊。
底下顯示出可在該等媒體處理管線302、322及/或媒體處理組件306、326之情境裡用於實作PhysMemDataStructureAPI 410的示範性虛擬程式碼。
該等Sniffer/Callback API 422係用以提供該「呈現系統」100的軟體式構件能夠存取一些已經由該解多工器404所剖析的媒體樣本409(例如在一高解析度DVD節目串流中經多工處理的「HLI」、「ADV」及「NAV」封包),及/或已經由該等解碼器/呈現器490所解碼/呈現的媒體資料132。在一可能實作裡,一DirectShowTM 框架過濾器係連接至該解多工器404的輸出腳針421或該等解碼器/呈現器490的輸出腳針(未示出),同時此過濾器是用來支援該等Sniffer/Callback API 422。
底下顯示出用以實作一Sniffer/Callback API,而能在該等媒體處理管線302、322及/或媒體處理組件306、326之情境裡偵測出一些類型的媒體樣本409或媒體資料132之示範性虛擬程式碼。
作為回報,該回呼呈現器(callback renderer)會呼叫
該等SyncHelper API 416係經組態設定以有助於資訊交換,這可用於維護該等媒體內容串流308與328之間的所感知同步化。該GetDecodeTimes API 418係經組態設定以提供關於一些時間(像是標題時間209及媒體樣本呈現時間202)的狀態通知,而該等時間係關聯於某些時間點,在該等時間點上媒體樣本(例如被視為次一可處理媒體樣本270之媒體單元407或媒體樣本409)係由一硬體組件(像是解多工器404或一或多解碼器/呈現器490)備製以供呈現。可利用透過該SyncToSTC API 420所提供的資訊,根據來自處理可同步呈現媒體樣本之不同解碼器/呈現器(或其他硬體組件)由該GetDecodeTimes API 418所回傳之標題時間209間的差值,來調整時序信號350及/或370。
如下顯示可用以實作該等SyncHelper API 416的示範 性虛擬程式碼。
現續參照第1-4圖,第5及6圖為用以備製媒體內容(像是一或多訊段123的局部),並藉由利用一或多API 408所提供之功能性,而由一或多媒體處理管線(像是該媒體處理管線1 302或該媒體處理管線2 320)加以呈現之方法的流程圖。第5圖中所顯示之方法可用於當在一由一軟體組件(像是該媒體來源讀取器402或另一軟體組件)所使用的記憶體(像是記憶體430)與一由一硬體組件(像是該解多工器404或解碼器/呈現器490或是其他硬體組件)所使用的記憶體(像是記憶體433)之間進行傳送資訊時,將所使用的處理及/或記憶體資源予以最小化。第6圖所示方法則可用於當備製多個可同時播放媒體內容串流之局部而由個別硬體組件加以呈現時,維護所感知的同步化情況。
可在一或多一般性、多重目的或單一目的處理器中,像是如後文中關聯於第7圖所討論的處理器702,實作第5 及6圖所述之處理程序。除另特定說明,本文所述之方法並不受限於一特定次序或序列。此外,部份所述方法或其構件可同時地出現或執行。
現參照第5圖流程圖所示之方法,該方法開始於區塊500並且繼續於區塊502,其中一第一記憶體的一局部,像是該硬體配置之記憶體區塊432,係經識別用以儲存像是一訊段123之個別可播放局部(即如自一特定媒體來源304所收到之媒體單元407)的媒體內容單元。分別在區塊504及506,識別出一特定媒體內容單元以及一在該第一記憶體內該媒體內容單元的儲存位置。
分別在該等媒體處理管線302、320之媒體處理組件306、326的情境裡,可將該硬體配置之記憶體區塊432實作為環狀緩衝器420,藉以強化記憶體及處理資源的使用效率性。可將該環狀緩衝器420視為是具有多個可透過媒體資源讀取器402(或該等媒體處理管線302或320的其他組件)被個別配置以儲存媒體單元407的區塊。各個儲存在該環狀緩衝器420內之媒體單元407的位移為已知,並且可表述為相對於指向該環狀緩衝器420內之位置的一或多指標之數值,像是記憶體起點(“beginning of memory”,「BOM」)指標435、記憶體終點(“end of memory”,「EOM」)指標437、所用記憶體指標起點指標(“beginning of used memory pointer”,「BUMP」)453及/或所用記憶體指標終點指標(“end of used memory pointer”,「EUMP」)455。當該解多工器404或另一硬體組件自該環狀緩衝器420獲得 媒體單元407之呈現時,即可據此來移動該BUMP 453及/或該EUMP 455。由於可不照順序獲得且釋放媒體單元407,因此可維護媒體單元407在該環狀緩衝器420內的一位移列表,藉以確保不會准允該BUMP 453及該EUMP 455越過彼此。
為進一步強化記憶體使用度及處理效率性,可利用虛擬記憶體以在該環狀緩衝器420之終點處複製自該環狀緩衝器420的起點開始的的一或多的記憶體區塊。如圖示,可利用虛擬記憶體以實作該BOM區塊450的複製(其係記憶體起點「BOM」區塊450的複製),並且在邏輯上是位於該記憶體終點「EOM」區塊441之後。這種利用虛擬記憶體的方式稱為「自動裹裝」(“auto-wrap”)功能,原因在於這會特別地適用在當破解一較大記憶體區塊以藉由讀取及寫入指標而按一環狀緩衝器方式加以運用時。該自動裹裝功能的運用係選擇性-通常該解多工器404的供應商可選擇提供並不執行兩次對映的記憶體,並且該媒體處理管線仍將能運作,然而可能會較無效率地使用記憶體。在此一環狀緩衝器實作裡有一特殊情況,即可能需要對「裹裝」於該緩衝器之起點的記憶體片段進行特殊處置。例如,拷貝或獲得在裹裝於附近之記憶體局部內的資訊可能需要兩次交易-一次交易是為擷取在該緩衝器終點處之資訊,並且另一次交易是為擷取在該緩衝器起點處之資訊。因此,經常是難以完全利用該環狀緩衝器的大小。利用如前述之虛擬記憶體,可在當該資訊大小過大而無法配合該環狀緩 衝器的終點時,避免配置額外記憶體或是跳略至該環狀緩衝器之終點處(此兩者皆會導致無效率的記憶體使用)的需要。
底下顯示示範性程式碼(針對於MicrosoftWindows CE 6.0作業系統,但亦能使用任何運用虛擬記憶體的作業系統),用以實作的「自動裹裝」特性,其將一實體記憶體片段對映兩次至一雙倍大小之虛擬記憶體範圍。
現再度參照於第5圖流程圖,區塊508說明構成一與 該特定媒體內容單元相關聯之資料結構的步驟,該資料結構具備一用以將有關該媒體內容單元之儲存位置的資訊儲存在該第一記憶體內之欄位。其次,在區塊510,該資料結構曝露於一具備一第二記憶體的硬體組件(像是該解多工器404或解碼器/呈現器490)。在區塊512,可觀察到該硬體組件可利用在該資料結構裡有關於該媒體內容單元之儲存位置的資訊,藉以將該媒體內容單元自該第一記憶體直接地傳送至該第二記憶體,而無須使用中央處理單元。
在利用DirectShowTM 框架所實作之媒體處理組件306、326的情境裡,該媒體來源讀取器402可利用像是IMediaSampleObjects之資料結構以供將所有或部分的下列資訊下行串流傳送至硬體組件:指向記憶體430及/或硬體配置之記憶體區塊432的指標;記憶體430及/或硬體配置之記憶體區塊432的大小;媒體單元407的開始及結束時間;(多個)旗標;以及任何其他所欲資訊。可有利地透過PhysMemDataStructure API 410,曝露出有關由該媒體來源讀取器402所配置以供該解多工器404(及其他硬體組件)存取之環狀緩衝器420記憶體區塊的性質之資訊,其亦可由一像是IMediaSampleObject的資料結構(或其欄位)所提供。可利用由該解多工器404及其他硬體組件自該PhysMemDataStructure API 410所獲取的實體記憶體資訊,以直接地存取在該環狀緩衝器420內的個別媒體內容單元407儲存位置,大幅地降低對於像是「memcopy」交易之處理器密集性拷貝交易的需要。關於該硬體配置記憶 體區塊432之性質的資訊,其係透過PhysMemDataStructure API 410而曝露出,包含(然不限於此):該記憶體432的類型、該記憶體之記憶體區塊的大小、指向該記憶體之一或多指標437、435、453或455的位置、以及一特定媒體單元407相對於一或多指向該記憶體之指標的位移位置。
現參照第6圖流程圖所示之方法,該方法開始於區塊600並繼續於區塊602及604,其分別識別出一多媒體呈現之播放時段,並且識別出兩個可如個別媒體內容串流所播放的訊段(各者具有其本身的播放時段),像是媒體內容串流308及媒體內容串流328。其次,分別在區塊606及608識別出兩個可同步呈現的媒體樣本,一者來自該第一訊段而一者則來自該第二訊段。
一般說來,該「呈現系統」之軟體式組件(像是該表現管理器106的特點)知悉目前可播放訊段123。而分別在該等媒體處理管線302、320之媒體處理組件306、326的情境裡,可利用該等Sniffer/Callback API 422以識別出由該解多工器404及/或解碼器/呈現器490所處理的特定媒體單元407及/或媒體樣本409。
如區塊610所表示,在一第一時間處確定一些資訊-而該第一時間係關聯於何時備製來自該第一訊段之媒體樣本,藉以由一媒體處理管線1 302內之諸如解多工器404及/或解碼器/呈現器490之類的第一硬體組件進行呈現。在區塊610確定下列資訊:該數位媒體呈現之播放時段的 行經時間量,以及該第一訊段之播放時段的行經時間量。
如區塊612所表,在一第二時間處確定一些資訊-而該第二時間係關聯於何時備製來自該第二訊段之媒體樣本,藉以由一該媒體處理管線2 322內之諸如解多工器404及/或解碼器/呈現器490之類的第二硬體組件進行呈現。在區塊612確定下列資訊:該數位媒體呈現之播放時段的行經時間量,以及該第二訊段之播放時段的行經時間量。
如前文中關聯於第2圖所示之媒體示範性媒體時間線所述,該播放時段之行經時間量通常稱為標題時間(或整體系統時間),並且該特定訊段之播放時段的行經時間量通常是對應於一與一特定媒體樣本相關聯的特定預定媒體樣本呈現時間202。該GetDecodeTimes API 418係經組態設定以檢視該等第一及第二訊段二者的樣本及/或媒體時間線142,並且回傳在區塊610及612所表述的資訊。
在區塊614,確定於區塊610所估計之數位媒體呈現的播放時段行經時間量與在區塊612所估計之數位媒體呈現的播放時段行經時間量二者間之差值,並如區塊616所示基於該差值來調整硬體組件的時序以供進行媒體樣本備製及/或呈現。
分別在該媒體處理管線302、320之媒體處理組件306、326的情境裡,該SyncToSTC API 420係經組態設定以藉由將差異值(根據區塊614所確定之播放時段行經時間量間的差值)施加於處理時間及/或時序信號(像是時序信號350及370),利用透過GetDecodeTimesAPI 418所獲 之資訊而將來自於不同硬體組件的各種媒體內容串流加以同步化。將能瞭解該SyncToSTC API 420亦可用以將媒體內容串流同步化於其他的播放限項。
現繼續參照於第1-6圖,第7圖係一操作環境700之示範性組態區塊圖,其中可實作或者運用所有或部份的「呈現系統」100。該操作環境700概略表示各種的一般目的性或特殊目的性計算環境。該操作環境700僅係一適當操作環境之單一範例,並非為意指任何對於有關本揭系統及方法之使用範圍或功能方面的限制。例如,該操作環境700可為某一類型的電腦,像是一個人電腦、一工作站、一伺服器、一可攜式裝置、一膝上型電腦、一平板型電腦,或是任何其他類型的電子裝置,像是一光學媒體播放器,或者是目前已知或未來開發之其他類型的媒體播放器,或為該等的任何特點。該操作環境700亦可例如為一分散式計算網路或一網頁服務。該操作環境700的一特定範例係一環境,像是DVD播放器或一與其相關聯的作業系統,而其可有助於播放高解析度DVD電影。
如圖示,該操作環境700含有或可存取一計算單元的多個組件,其中含有一或多的處理器702、電腦可讀取媒體704及電腦程式706。該(等)處理器702可回應電腦可讀取媒體704及電腦程式706。該(等)處理器702可為實體或虛擬處理器,並且可執行按組合、編譯或機器層級之指令以執行一特定處理程序。可利用原始程式碼或是任何其他的已知電腦程式設計工具以建立此等指令。
該電腦可讀取媒體704代表任意數量、任意形式、目前已知或未來開發的本地或遠端裝置及其組合,其能夠記錄、儲存或傳送電腦可讀取資料,像是可由該處理器702執行的指令。尤其是,該電腦可讀取媒體704可為,或可包含,一半導體記憶體(例如像是一唯讀記憶體(「ROM」)、任意類型之可程式化ROM(「PROM」)、一隨機存取記憶體(「RAM」),或一快閃記憶體);一磁性儲存裝置(像是一軟碟機、一硬碟機、一磁鼓、一磁帶或一磁性光學碟片);一光學儲存裝置(像是任意類型之CD或DVD);一磁泡記憶體;一快取記憶體;一核芯記憶體;一全像式記憶體;一記憶棒;一紙帶;一打孔卡;或其任意組合。該電腦可讀取媒體704亦可包含傳輸媒體,以及與其相關的資料。傳輸媒體/資料的範例包含,然不限於此,按線路或無線傳輸之任意形式所嵌入的資料,像是由一經調變載波信號所載荷的封包式或非封包式資料。
該等電腦程式706代表對資料所進行之電子控制預定操作的任何信號處理方法或所存指令。一般說來,該等電腦程式706係根據對於組件式軟體開發之眾知實作而按如軟體組件所實作的電腦可執行指令,並經編碼於電腦可讀取媒體(像是電腦可讀取媒體704)之內。電腦程式可按各種方式所合併或散置。
該儲存裝置714含有特定地關聯於該操作環境700的額外或不同電腦可讀取媒體,像是一光碟或是其他的可攜式裝置(光碟是由選擇性的光碟機716所處置)。可利用眾 知且廣泛獲用構件的一或多內部匯流排720,藉以在該操作環境700或其構件之內、前往、自此而載荷資料、位址、控制信號及其他資訊。
(多個)輸入介面708可提供對該操作環境700的輸入。可利用任意類型的目前已知或未來開發之介面,像是一使用者介面,以收集各項輸入。使用者介面可為觸控輸入裝置,像是遙控器、顯示器、滑鼠、點筆、光筆、軌跡球、鍵盤、麥克風、掃描裝置,以及各種用以輸入資料的裝置。
(多個)輸出介面710可提供來自該操作環境700的輸出。該(等)輸出介面710的範例包含顯示器、印表機、喇叭、碟機(像是光碟機716和其他碟機或儲存媒體)等等。
可獲用(多個)外部通訊介面712,藉以強化該操作環境700能夠透過一像是一頻道信號、一資料信號之通訊媒體或是一電腦可讀取媒體自另一個體接收資訊,或對其傳送資訊,的能力。該(等)外部通訊介面712可為,或可含有,多項構件,像是纜線數據機、資料終端設備、媒體播放器、資料儲存裝置、個人數位助理,或者是任何其他裝置或其等之組件/組合,並連同於相關的網路支援裝置及/或軟體或介面。
第8圖係一客戶端-伺服器架構800的簡化功能圖,其中該「呈現系統」100或該操作環境700可關聯於該者而運用。該「呈現系統」100及/或該操作環境700的一或多特點可表現在該架構800之客戶端側802上或在該架構 800之一伺服器側804上。如圖示,該通訊框架803(其可為具任意類型之任何公共或私有網路,例如有線或無線者)可協助進行該客戶端側802與該伺服器側804之間的通訊。
在該客戶端側802上,一或多的客戶端806可為按硬體、軟體、韌體或其等之任何組合所實作,並可對客戶端資料儲存裝置808產生回應。該等客戶端資料儲存裝置808可為電腦可讀取媒體704,經運用以將資訊儲存在該等客戶端806本地。而在該伺服器側810上,一或多的伺服器812可對伺服器資料儲存裝置812產生回應。類似於該等客戶端資料儲存808,該等伺服器資料儲存裝置812可含有一或多的電腦可讀取媒體704,並經運用以將資訊儲存在該等伺服器810本地。
現已說明一種與媒體內容同步來對一使用者呈現互動式內容之呈現系統的各式特點。然將能瞭解,並不需亦不必運用該呈現系統的全部所述組件,而當使用時該等組件時,亦不需亦不必同時地出現。在該呈現系統100之情境裡按如電腦程式所描述的功能/組件並不受限於任何特定電腦程式具體實施例的實作。相反地,該等功能係載荷或轉換資料的處理程序,並且可概為由按硬體、軟體、韌體或其等的任意組合所實作或執行。
在此雖已按照特定於結構特性及/或方法動作之語言來描述標的,然亦應瞭解在後載申請專利範圍中所定義標的並不必然地受限於前述各項特定特性或動作。相反地,上述各項特定特性及動作係按如實作該申請專利範圍之範 例形式所揭示。
將進一步瞭解當一構件經表註為回應於另一構件時,該等構件可為直接地或間接地耦接。在此所描述之連接在實作上可為邏輯或實體連接,藉以獲致該等構件之間的耦接或傳通介面。除其他方式外,可將連接實作為在多個軟體處理程序之中的處理程序間通訊,或是在多個網接電腦之中的機器間通訊。
在此所使用之詞彙「示範性」係用作為一範例、實例或說明。在此所描述如「示範性」之實作或其特點並不必然地需被詮釋為佳於或優於其他實作或其特點。
應瞭解確可設計出除前述特定具體實施例以外的具體實施例,而不致悖離後載申請專利範圍的精神與範圍,其目的係本揭之標的的範圍將為由後述的申請專利範圍所定。
100‧‧‧呈現系統
102‧‧‧媒體內容管理器
104‧‧‧互動式內容(IC)管理器
106‧‧‧呈現管理器
108‧‧‧時序信號管理區塊
110‧‧‧混合器/呈現器
120‧‧‧呈現內容
120‧‧‧媒體內容成份(媒體成份)
123‧‧‧訊段
124‧‧‧互動式內容成份(IC成份)
125‧‧‧互動式物件
127‧‧‧所播放呈現
128‧‧‧播放列表
130‧‧‧呈現時間線
131‧‧‧標題
132‧‧‧媒體資料
134‧‧‧互動式內容資料(IC資料)
142‧‧‧媒體內容時間線(媒體時間線)
150‧‧‧使用者輸入
155‧‧‧應用程式
158‧‧‧時序信號
181‧‧‧指令處置引擎
190‧‧‧指令輸入
202‧‧‧媒體樣本呈現時間
207‧‧‧媒體資料呈現速率
209‧‧‧目前行經播放時間
214‧‧‧次一可呈現媒體樣本呈現時間
220‧‧‧所預測的行經播放時間
230‧‧‧媒體樣本
250‧‧‧目前所呈現媒體樣本
270‧‧‧次一可處理媒體樣本
302‧‧‧媒體處理管線1
304‧‧‧媒體來源1
306‧‧‧媒體處理組件
308‧‧‧媒體內容串流
320‧‧‧媒體處理管線2
324‧‧‧媒體來源2
326‧‧‧媒體處理組件
328‧‧‧媒體內容串流
350‧‧‧第一時序信號
370‧‧‧第二時序信號
401‧‧‧輸出腳針
402‧‧‧軟體式媒體來源讀取器
403‧‧‧軟體-硬體邊界
404‧‧‧硬體式解多工器(Demux)
407‧‧‧媒體單元
408‧‧‧應用程式設計介面
409‧‧‧媒體樣本
410‧‧‧PhysMemDataStructure API
411‧‧‧輸入腳針
416‧‧‧SyncHelper API
418‧‧‧GetDecodeTimes API
420‧‧‧SyncToSTC API/環狀緩衝器(圖號重複?)
421‧‧‧輸出腳針
422‧‧‧Sniffer/Callback API
430‧‧‧第一記憶體
432‧‧‧硬體配置之記憶體區塊
433‧‧‧第二記憶體
435‧‧‧記憶體起點(BOM)指標
437‧‧‧記憶體終點(EOM)指標
439‧‧‧BOM區塊
441‧‧‧記憶體終點區塊(EDM)
450‧‧‧複製BOM區塊
453‧‧‧所用記憶體指標起點指標(BUMP)
455‧‧‧所用記憶體指標終點指標(EUMP)
490‧‧‧解碼器/呈現器
491‧‧‧輸入腳針
700‧‧‧操作環境
702‧‧‧(多個)處理器
704‧‧‧電腦可讀取媒體
706‧‧‧電腦程式
708‧‧‧(多個)輸入介面
710‧‧‧(多個)輸出介面
712‧‧‧(多個)通訊介面
714‧‧‧儲存裝置
716‧‧‧光碟機
720‧‧‧內部匯流排
800‧‧‧客戶端-伺服器架構
802‧‧‧客戶端側
803‧‧‧通訊框架
804‧‧‧伺服器側
806‧‧‧(多個)客戶端
808‧‧‧(多個)客戶端資料儲存裝置
810‧‧‧(多個)伺服器
812‧‧‧(多個)伺服器資料儲存裝置
第1圖係一示範性媒體內容播放器的簡化功能區塊圖。
第2圖係一略圖,其中進一步詳細說明第1圖的(多條)示範性媒體時間線。
第3圖係一簡化功能區塊圖,其中進一步詳細說明第1圖之媒體內容管理器區塊的特點。
第4圖係一簡化功能區塊圖,其中說明一用於第3圖所示媒體處理管線之特點的示範性架構。
第5圖係一流程圖,其中說明一利用第1圖所示媒體內容播放器、第3圖所示媒體處理管線及/或第4圖所示架構之特點來備製媒體內容以供呈現的方法。
第6圖係一流程圖,其中說明一利用第1圖所示媒體內容播放器、第3圖所示(多條)媒體處理管線及/或第4圖所示架構之特點來備製兩個媒體內容訊段的局部以供同步呈現之方法。
第7圖係一操作環境之示範性組態的簡化功能區塊圖,其中可實作或運用第1圖所示之媒體內容播放器或是第5或6圖所示之方法的全部或局部。
第8圖係一客戶端-伺服器架構的簡化區塊圖,其中可實作或運用第7圖所示之操作環境的特點。
100‧‧‧呈現系統
102‧‧‧媒體內容管理器
104‧‧‧互動式內容(IC)管理器
106‧‧‧呈現管理器
108‧‧‧時序信號管理區塊
110‧‧‧混合器/呈現器
120‧‧‧呈現內容
122‧‧‧媒體內容成份
123‧‧‧訊段
124‧‧‧互動式內容成份
125‧‧‧互動式物件
127‧‧‧所播放呈現
128‧‧‧播放列表
130‧‧‧呈現時間線
131‧‧‧標題
132‧‧‧媒體資料
134‧‧‧互動式內容資料
142‧‧‧媒體內容時間線
150‧‧‧使用者輸入
155‧‧‧應用程式
158‧‧‧時序信號
181‧‧‧指令處置引擎
190‧‧‧指令輸入

Claims (14)

  1. 一種電腦可讀取媒體,該電腦可讀取媒體不由傳播資料訊號組成,係以電腦可執行指令進行編碼,當該等指令由一處理器執行時,可執行用以備製媒體內容為一軟體式媒體播放器之一媒體呈現的一方法,該軟體式媒體播放器包括一解碼器/呈現器(renderer),該媒體內容係以複數個媒體內容單元形式自一媒體來源接收而得,該方法包含以下步驟:識別具有區塊之一第一記憶體之一局部,該等區塊係經組態以單獨配置,該局部經配置以儲存接收自該媒體來源的媒體內容單元,該等媒體內容單元包含可獨立呈現之訊段局部,該等可獨立呈現之訊段局部經多工至一單一程式串流,該單一程式串流包含在一硬體部件處接收之該媒體呈現,該硬體部件回應於一時序信號提供排程資訊至該解碼器/呈現器,以啟動該等可獨立呈現之訊段局部之時間式同步化;其中將經配置以儲存接收自該媒體來源的媒體內容單元之該第一記憶體之該局部經佈置為一環狀緩衝器,該環狀緩衝器具有一記憶體起點區塊與一記憶體終點區塊,以及其中該環狀緩衝器係使用一起點指標與一終點指標來實施,該起點指標用於參照該環狀緩衝器中之已使用記憶體之該起點,該終點指標用於參照該環狀緩衝器中之 已使用記憶體之該終點,且其中識別該第一記憶體經配置之該局部中之複數個媒體內容單元之每一者之儲存位置之步驟包含識別該環狀緩衝器中之該第一媒體內容單元之一位移,該位移特定相應於該起點指標或該終點指標或二者;識別接收自該媒體來源之複數個媒體內容單元;識別該環狀緩衝器中之儲存位置與位移,其中該等複數個媒體內容單元之每一者已儲存在該第一記憶體經配置之該局部中;構成與該等複數個媒體內容單元之每一者相關聯之資料結構,該等資料結構之每一者具有用以儲存關於一特定媒體內容單元之該儲存位置之資訊的一欄位;進行佈置以將該等資料結構曝露於具有一第二記憶體的一硬體組件,該硬體組件使用取自該等資料結構之關於該等特定媒體內容單元之該等儲存位置之該資訊,以直接從該第一記憶體存取該特定媒體內容單元,而不需使用一中央處理單元;以及在一特定媒體內容單元已存取之後,藉由移動該起點指標或該終點指標或二者,自該儲存位置釋放該特定媒體內容單元。
  2. 如申請專利範圍第1項所述之電腦可讀取媒體,其中經配置以儲存接收自該媒體來源之媒體內容單元之該第一記憶體之該局部係由以下項目所構成之群組中選定:一連 續實體記憶體、一鎖定散置匯集實體記憶體、一未鎖定散置匯集實體記憶體、一快取虛擬記憶體及一非快取虛擬記憶體,並且其中由該第一資料結構所曝露出的關於該第一儲存位置之該資訊,係由以下項目所構成之群組中選定:該第一記憶體之一類型、該第一記憶體之一記憶體區塊的大小、指向該第一記憶體之一指標的一位置、以及該第一儲存位置相對於指向該第一記憶體之一指標的一位移位置。
  3. 如申請專利範圍第1項所述之電腦可讀取媒體,其中該起點記憶體區塊係利用虛擬記憶體複製於該終點記憶體區塊之後。
  4. 如申請專利範圍第3項所述之電腦可讀取媒體,其中該方法進一步包含以下步驟:當該第一儲存位置會包含該起點記憶體區塊及該終點記憶體區塊時,將該第一媒體內容單元之一第一局部儲存於該終點記憶體區塊內,而將該第一媒體內容單元之一第二局部儲存在利用虛擬記憶體所複製的起點記憶體區塊內。
  5. 如申請專利範圍第1項所述之電腦可讀取媒體,該方法進一步包含以下步驟: 在已傳送該第一媒體內容單元之後,藉由移動該起點指標或該終點指標或二者,自該第一儲存位置釋放該第一媒體內容單元。
  6. 如申請專利範圍第1項所述之電腦可讀取媒體,進一步包含以下步驟:維護一位移位置列表,該位移位置列表包括儲存在該環狀緩衝器內之所有媒體內容單元的儲存位置;以及利用該位移位置列表以確保當自該等儲存位置釋放該等媒體內容單元時,該起點指標及該終點指標不會越過(bypass)彼此。
  7. 如申請專利範圍第1項所述之電腦可讀取媒體,其中該方法係在包含一過濾器圖形的一媒體處理管線之內執行,該過濾器圖形具有複數個過濾器,每一過濾器具備一或更多輸入腳針及一或更多輸出腳針。
  8. 如申請專利範圍第7項所述之電腦可讀取媒體,其中該硬體組件包含該等複數個過濾器中之一者,並且其中該硬體組件係由以下項目所構成之群組中選定:一解多工器、一解碼器及一呈現器。
  9. 如申請專利範圍第7項所述之電腦可讀取媒體,其中 該方法是由包含該等複數個過濾器中之一者之一軟體組件執行,該軟體元件具有一輸入腳針,該輸入腳針係經組態設定以接收媒體內容單元,以及具有一輸出腳針,該輸出腳針係經組態設定以與該硬體組件相通訊。
  10. 一種電腦可讀取媒體,該電腦可讀取媒體不由傳播資料訊號組成,係以電腦可執行指令進行編碼,當該等指令由一處理器執行時,可執行用以備製媒體內容為一軟體式媒體播放器之一媒體呈現的一方法,該軟體式媒體播放器包括一解碼器/呈現器,該媒體內容係以複數個媒體內容單元形式自一媒體來源接收而得,該方法包含以下步驟:識別具有區塊之一第一記憶體之一局部,該等區塊係經組態以單獨配置,該局部經配置以儲存接收自該媒體來源的媒體內容單元,該等媒體內容單元包含可獨立呈現之訊段局部,該等可獨立呈現之訊段局部經多工至一單一程式串流,該單一程式串流包含在一硬體部件處接收之該媒體呈現,該硬體部件回應於一時序信號提供排程資訊至該解碼器/呈現器,以啟動該等可獨立呈現之訊段局部之時間式同步化;識別接收自該媒體來源之一第一媒體內容單元;識別一第一儲存位置,其中該第一媒體內容單元已儲存在該第一記憶體經配置之該局部中;構成與該第一媒體內容單元相關聯之一第一資料結 構,該第一資料結構具有用以儲存關於該第一儲存位置之資訊的一欄位;進行佈置以將該第一資料結構曝露於具有一第二記憶體的該硬體組件;該硬體組件使用取自該第一資料結構之該第一儲存位置之該資訊,以直接從該第一記憶體存取該第一媒體內容單元,而不需使用一中央處理單元;其中該方法係在包含一過濾器圖形的一媒體處理管線之內執行,該過濾器圖形具有複數個過濾器,每一過濾器具備一或更多輸入腳針及一或更多輸出腳針;其中該方法是由包含該等複數個過濾器中之一者之一軟體組件執行,該軟體元件具有一輸入腳針,該輸入腳針係經組態設定以接收媒體內容單元,以及具有一輸出腳針,該輸出腳針係經組態設定以與該硬體組件相通訊;以及其中構成與該第一媒體內容單元相關聯之一第一資料結構的該方法步驟包含以下步驟,其中該第一資料結構具有用以儲存關於該第一儲存位置之資訊的一欄位:由該軟體組件發出對一應用程式設計介面(「API」)之一呼叫,該應用程式設計介面係經組態設定以接收關於該第一儲存位置的資訊,並且將關於該第一儲存位置的該資訊置入該第一資料結構之該欄位中;以及由該軟體組件從該應用程式設計介面接收一回 應,該回應曝露具有關於該第一儲存位置的該資訊之該第一資料結構之該欄位。
  11. 如申請專利範圍第10項所述之電腦可讀取媒體,其中該進行佈置以將該第一資料結構曝露於一硬體組件之該步驟包含以下步驟:在經組態設定以與該硬體組件相通訊之該輸出腳針上,傳送具有被曝露之該第一資料結構的該欄位的該第一資料結構。
  12. 一種電腦可讀取媒體,該電腦可讀取媒體不由傳播資料訊號組成,係以電腦可執行指令進行編碼,當該等指令由一處理器執行時,可執行用以播放具有一播放時段及一媒體內容成份之一數位媒體呈現的一方法,該媒體內容成份包含:一第一訊段,該第一訊段係佈置成一第一複數個媒體樣本,以在一多工媒體內容串流中呈現,該第一訊段具有一第一播放時段,並且可由一解碼器/呈現器播放;以及一第二訊段,該第二訊段係經佈置成第二複數個媒體樣本,以在該多工媒體內容串流中呈現,該第二訊段具有一第二播放時段,並且可由該解碼器/呈現器播放,該方法包含以下步驟:自該第一訊段上識別一第一媒體樣本;自該第二訊段上識別一第二媒體樣本,而該第二媒體 樣本可與該第一媒體樣本進行同步播放;在關聯於備製該第一媒體樣本以供呈現之一第一時間點,以基於一第一時序信號的一速率來利用一第一硬體組件,確定該數位媒體呈現之該播放時段的一第一行經時間量,以及確定該第一播放時段的一行經時間量;在關聯於備製該第二媒體樣本以供呈現之一第二時間點,以基於一第二時序信號的一速率來利用一第二硬體組件,確定該數位媒體呈現之該播放時段的一第二行經時間量,以及確定該第二播放時段的一行經時間量;確定該數位媒體呈現之該播放時段的該第一行經時間量與該數位媒體呈現之該播放時段的該第二行經時間量間之一差值,該確定步驟利用該第一或第二硬體組件中之一者回應於接收之一時序信號,在播放該媒體呈現之期間提供排程資訊至該解碼器/呈現器,以啟動該多工媒體內容串流中之該第一與第二訊段之時間式同步化;以及基於該差值,調整該第一時間或第二時間或二者;其中確定該數位媒體呈現之該播放時段的該第一行經時間量與該第一播放時段的該行經時間量之該步驟進一步包含以下步驟: 發出對一第一應用程式設計介面(「API」)之一第一呼叫,該第一呼叫包括關於該第一媒體樣本之資訊;以及基於該第一呼叫,從該第一API接收一第一回應,該第一回應包括關於該數位媒體呈現之該播放時段的該第一行經時間量與該第一播放時段的該行經時間量之資訊,以及其中確定該數位媒體呈現之該播放時段的該第二行經時間量與該第二播放時段的該行經時間量之該步驟進一步包含以下步驟:發出對該第一API之一第二呼叫,該第二呼叫包括關於該第二媒體樣本之資訊;以及基於該第二呼叫,從該第一API接收一第二回應,該第二回應包括關於該數位媒體呈現之該播放時段的該第二行經時間量與該第二播放時段的該行經時間量之資訊。
  13. 如申請專利範圍第12項所述之電腦可讀取媒體,其中該第一及該第二硬體組件係由以下項目所構成之群組中選定:解多工器;解碼器;及呈現器。
  14. 如申請專利範圍第12項所述之電腦可讀取媒體,其中該調整該第一時間或該第二時間或二者的步驟進一步包含 以下步驟:對一第二API發出一呼叫,該呼叫包含由以下項目所構成之群組中選定的資訊:該第一回應、該第二回應、以及該數位媒體呈現之該播放時段的該第一行經時間量與該數位媒體呈現之該播放時段的該第二行經時間量間之該差值;基於對該第二API的該呼叫,從該第二API接收一回應;以及基於來自該第二API的該回應,調整以下項目所構成之群組中一或更多者:該第一播放時段之該行經時間量、該第二播放時段之行經時間量、該第一時序信號、以及該第二時序信號。
TW097123953A 2007-06-30 2008-06-26 用於數位媒體處理介面之電腦可讀取媒體 TWI443582B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/824,720 US8612643B2 (en) 2007-06-30 2007-06-30 Interfaces for digital media processing

Publications (2)

Publication Number Publication Date
TW200910209A TW200910209A (en) 2009-03-01
TWI443582B true TWI443582B (zh) 2014-07-01

Family

ID=40162404

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097123953A TWI443582B (zh) 2007-06-30 2008-06-26 用於數位媒體處理介面之電腦可讀取媒體

Country Status (13)

Country Link
US (3) US8612643B2 (zh)
EP (1) EP2162827B1 (zh)
JP (1) JP5394375B2 (zh)
KR (1) KR101530101B1 (zh)
CN (2) CN101689170B (zh)
AU (1) AU2008270705A1 (zh)
BR (1) BRPI0812130A2 (zh)
CA (1) CA2687762A1 (zh)
IL (1) IL201952A (zh)
MX (1) MX2009013685A (zh)
RU (1) RU2453908C2 (zh)
TW (1) TWI443582B (zh)
WO (1) WO2009006107A2 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051090B2 (en) * 2007-12-28 2011-11-01 Realtek Semiconductor Corp. File management method of a ring buffer and related file management apparatus
US9667365B2 (en) 2008-10-24 2017-05-30 The Nielsen Company (Us), Llc Methods and apparatus to perform audio watermarking and watermark detection and extraction
US8359205B2 (en) 2008-10-24 2013-01-22 The Nielsen Company (Us), Llc Methods and apparatus to perform audio watermarking and watermark detection and extraction
CA2760677C (en) 2009-05-01 2018-07-24 David Henry Harkness Methods, apparatus and articles of manufacture to provide secondary content in association with primary broadcast media content
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
JP5310456B2 (ja) * 2009-10-05 2013-10-09 ソニー株式会社 情報処理装置、情報処理方法および情報処理システム
WO2011073947A1 (en) * 2009-12-18 2011-06-23 Nokia Corporation Method and apparatus for projecting a user interface via partition streaming
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
US8643696B2 (en) * 2011-01-19 2014-02-04 Broadcom Corporation Synchronizing media streams using time signal(s) from an independent time source
US8838680B1 (en) * 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
KR101051182B1 (ko) * 2011-03-10 2011-07-22 주식회사 다이나믹앤라이브 다이렉트쇼 필터그래프 기반 멀티미디어 스트림 결합분배 장치
US8804819B1 (en) 2011-04-19 2014-08-12 Google Inc. Method and apparatus for encoding video using data frequency
US8681866B1 (en) 2011-04-28 2014-03-25 Google Inc. Method and apparatus for encoding video by downsampling frame resolution
US9106787B1 (en) 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
US8856624B1 (en) 2011-10-27 2014-10-07 Google Inc. Method and apparatus for dynamically generating error correction
CN103186359B (zh) * 2011-12-30 2018-08-28 南京中兴软件有限责任公司 硬件抽象数据结构、数据处理方法及系统
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9754105B1 (en) * 2012-09-25 2017-09-05 Malwarebytes Corporation Preventing the successful exploitation of software application vulnerability for malicious purposes
US9172740B1 (en) 2013-01-15 2015-10-27 Google Inc. Adjustable buffer remote access
US9311692B1 (en) 2013-01-25 2016-04-12 Google Inc. Scalable buffer remote access
US9225979B1 (en) 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US20150032238A1 (en) * 2013-07-23 2015-01-29 Motorola Mobility Llc Method and Device for Audio Input Routing
US20150039321A1 (en) * 2013-07-31 2015-02-05 Arbitron Inc. Apparatus, System and Method for Reading Codes From Digital Audio on a Processing Device
US9711152B2 (en) 2013-07-31 2017-07-18 The Nielsen Company (Us), Llc Systems apparatus and methods for encoding/decoding persistent universal media codes to encoded audio
US9602498B2 (en) * 2013-10-17 2017-03-21 Fortinet, Inc. Inline inspection of security protocols
US20150379118A1 (en) * 2014-06-27 2015-12-31 United Video Properties, Inc. Methods and systems for generating playlists based on activities being performed by a user
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
KR102529711B1 (ko) * 2014-10-20 2023-05-09 소니그룹주식회사 수신 장치, 송신 장치, 및 데이터 처리 방법
US9805036B2 (en) * 2015-06-05 2017-10-31 Disney Enterprises, Inc. Script-based multimedia presentation
KR20210078109A (ko) 2019-12-18 2021-06-28 삼성전자주식회사 스토리지 장치 및 이를 포함하는 시스템
CN113538030B (zh) * 2020-10-21 2024-03-26 腾讯科技(深圳)有限公司 一种内容推送方法、装置及计算机存储介质

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864713A (en) * 1996-02-12 1999-01-26 Hewlett-Packard Company Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer
JPH09261457A (ja) * 1996-03-19 1997-10-03 Canon Inc 印刷制御装置並びに印刷制御装置のデータ処理方法およびコンピュータで読み出し可能なプログラムを格納した記憶媒体
US6262777B1 (en) * 1996-11-15 2001-07-17 Futuretel, Inc. Method and apparatus for synchronizing edited audiovisual files
US6105119A (en) * 1997-04-04 2000-08-15 Texas Instruments Incorporated Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems
KR100265231B1 (ko) * 1997-07-03 2000-09-15 윤종용 방송방식이 서로 다른 복수화면의 동시시청 가능한 tv수신장치
US6134602A (en) * 1997-09-24 2000-10-17 Microsoft Corporation Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
US7085710B1 (en) * 1998-01-07 2006-08-01 Microsoft Corporation Vehicle computer system audio entertainment system
US6654428B1 (en) * 1998-01-13 2003-11-25 Massachusetts Institute Of Technology Systems and methods for wireless communications
JPH11261986A (ja) * 1998-03-13 1999-09-24 Fujitsu Ltd デジタル多重伝送装置
US6715126B1 (en) * 1998-09-16 2004-03-30 International Business Machines Corporation Efficient streaming of synchronized web content from multiple sources
US6816909B1 (en) * 1998-09-16 2004-11-09 International Business Machines Corporation Streaming media player with synchronous events from multiple sources
AU3694300A (en) * 1999-02-01 2000-08-18 Ibm Multimedia archive description scheme
JP4362906B2 (ja) * 1999-09-21 2009-11-11 ソニー株式会社 情報処理装置および方法、並びに記録媒体
TWI224316B (en) 2001-06-14 2004-11-21 Samsung Electronics Co Ltd Information storage medium containing preload information, apparatus and method for reproducing therefor
US7897865B2 (en) * 2002-01-15 2011-03-01 Yamaha Corporation Multimedia platform for recording and/or reproducing music synchronously with visual images
US7013468B2 (en) * 2002-02-26 2006-03-14 Parametric Technology Corporation Method and apparatus for design and manufacturing application associative interoperability
CA2439737A1 (en) * 2002-10-07 2004-04-07 Microsoft Corporation Extented time-code for multimedia presentations
US7120626B2 (en) * 2002-11-15 2006-10-10 Koninklijke Philips Electronics N.V. Content retrieval based on semantic association
JP2005018842A (ja) 2003-06-24 2005-01-20 Sony Corp 再生装置および方法
JP2005032379A (ja) 2003-07-10 2005-02-03 Sony Corp 記録装置および方法
US7444389B2 (en) 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
US7627227B2 (en) * 2004-05-17 2009-12-01 Microsoft Corporation Reverse presentation of digital media streams
US7856537B2 (en) 2004-09-30 2010-12-21 Intel Corporation Hybrid hardware and software implementation of transactional memory access
JP4562505B2 (ja) 2004-12-02 2010-10-13 ソニー株式会社 多重化分離装置および多重化分離方法
US7590777B2 (en) 2004-12-10 2009-09-15 International Business Machines Corporation Transferring data between system and storage in a shared buffer
KR100677597B1 (ko) 2005-01-12 2007-02-02 삼성전자주식회사 저장 매체에 기록된 데이터와 다운로드된 데이터를 함께재생하는 재생 방법 및 그 재생 장치
US7694008B2 (en) * 2005-05-04 2010-04-06 Venturi Wireless Method and apparatus for increasing performance of HTTP over long-latency links

Also Published As

Publication number Publication date
EP2162827B1 (en) 2020-04-08
US20150271238A1 (en) 2015-09-24
BRPI0812130A2 (pt) 2014-11-18
CN101689170A (zh) 2010-03-31
RU2453908C2 (ru) 2012-06-20
US20090007159A1 (en) 2009-01-01
CN102568517B (zh) 2015-03-25
WO2009006107A2 (en) 2009-01-08
KR101530101B1 (ko) 2015-06-18
US20140281054A1 (en) 2014-09-18
US8612643B2 (en) 2013-12-17
CN102568517A (zh) 2012-07-11
MX2009013685A (es) 2010-01-20
JP5394375B2 (ja) 2014-01-22
US9043504B2 (en) 2015-05-26
TW200910209A (en) 2009-03-01
EP2162827A4 (en) 2011-05-11
RU2009149495A (ru) 2011-07-10
IL201952A0 (en) 2010-06-16
AU2008270705A1 (en) 2009-01-08
WO2009006107A3 (en) 2009-03-05
KR20100035690A (ko) 2010-04-06
EP2162827A2 (en) 2010-03-17
CN101689170B (zh) 2013-01-23
CA2687762A1 (en) 2009-01-08
IL201952A (en) 2014-11-30
JP2010532536A (ja) 2010-10-07

Similar Documents

Publication Publication Date Title
TWI443582B (zh) 用於數位媒體處理介面之電腦可讀取媒體
KR101365829B1 (ko) 대화형 멀티미디어 프리젠테이션을 재생하는 방법을 수행하는 컴퓨터 실행가능 명령어들이 인코딩된 컴퓨터 판독가능 매체, 및 대화형 멀티미디어 프리젠테이션을 재생하는 프리젠테이션 시스템 및 장치
KR101122860B1 (ko) 미디어 기반 미디어 프로세서
DK2603986T3 (en) SYSTEM AND PROCEDURE FOR SYNCHRONIZED PLAYING OF DIGITAL CONTENT STREAMING
JP4703767B2 (ja) メディア状態ユーザーインターフェース
JP5513381B2 (ja) 共有メモリー・プールを利用したデジタル・データ管理
WO2007005268A2 (en) Synchronization aspects of interactive multimedia presentation management
JP2009529250A (ja) スライドショーの静止画像を複数のビデオフレーム画像に変換
US20130151972A1 (en) Media processing comparison system and techniques

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees