TW201933878A - 處理國際標準化組織基礎媒體檔案格式網頁資源追蹤之動態網頁內容 - Google Patents
處理國際標準化組織基礎媒體檔案格式網頁資源追蹤之動態網頁內容 Download PDFInfo
- Publication number
- TW201933878A TW201933878A TW108102089A TW108102089A TW201933878A TW 201933878 A TW201933878 A TW 201933878A TW 108102089 A TW108102089 A TW 108102089A TW 108102089 A TW108102089 A TW 108102089A TW 201933878 A TW201933878 A TW 201933878A
- Authority
- TW
- Taiwan
- Prior art keywords
- html
- samples
- elements
- file
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
在一個實例中,一種用於擷取媒體資料之裝置包括:一記憶體,其經組態以儲存包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;以及一處理單元,其實施於電路中且經組態以:擷取該ISO BMFF檔案;自該檔案之該等樣本提取該等HTML元素;以及處理該等HTML元素以呈現該動態網頁內容。該等HTML元素可包括JavaScript元素。該處理單元亦可以與對應媒體資料同步之一方式呈現該動態網頁內容。
Description
本發明係關於經編碼媒體資料之儲存及輸送。
數位視訊能力可併入至廣泛範圍的裝置中,包括數位電視、數位直播系統、無線廣播系統、個人數位助理(PDA)、膝上型或桌上型電腦、數位攝影機、數位記錄裝置、數位媒體播放器、視訊遊戲裝置、視訊遊戲控制台、蜂巢式或衛星無線電電話、視訊電話會議裝置及類似者。數位視訊裝置實施視訊壓縮技術,諸如描述於由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分進階視訊寫碼(AVC)、ITU-T H.265 (亦被稱作高效率視訊寫碼(HEVC))及此類標準之擴展所定義的標準中之彼等技術,從而更高效地傳輸及接收數位視訊資訊。
視訊壓縮技術執行空間預測及/或時間預測以減少或移除視訊序列中所固有之冗餘。對於基於區塊之視訊寫碼,可將視訊訊框或片段分割成巨集區塊。可進一步分割每一巨集區塊。使用相對於相鄰巨集區塊之空間預測來編碼經框內寫碼(I)之訊框或片段中之巨集區塊。經框間寫碼(P或B)訊框或片段中之巨集區塊可使用相對於同一訊框或片段中之相鄰巨集區塊的空間預測或相對於其他參考訊框之時間預測。
在視訊資料已編碼之後,可將視訊資料封包化以用於傳輸或儲存。可將視訊資料組譯成符合多種標準中之任一者的視訊檔案,該等標準諸如國際標準化組織(ISO)基礎媒體檔案格式(BMFF)及其擴展,諸如AVC。
一般而言,本發明描述用於處理國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案或其他此類檔案之動態網頁內容之技術。特定而言,動態網頁內容可包括於ISO BMFF檔案之網頁資源追蹤中。動態網頁內容可由HTML元素(諸如JavaScript元素)定義。
在一個實例中,一種處理媒體資料之方法包括:擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;自該檔案之該等樣本提取該等HTML元素;以及處理該等HTML元素以呈現該動態網頁內容。
在另一實例中,一種用於處理媒體資料之裝置包括:一記憶體,其經組態以儲存包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;以及一處理單元,其實施於電路中且經組態以:擷取該ISO BMFF檔案;自該檔案之該等樣本提取該等HTML元素;以及處理該等HTML元素以呈現該動態網頁內容。
在另一實例中,一種用於處理媒體資料之裝置包括:用於擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案之構件,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;用於自該檔案之該等樣本提取該等HTML元素之構件;以及用於處理該等HTML元素以呈現該動態網頁內容之構件。
在另一實例中,提供一種其上儲存有指令之電腦可讀儲存媒體,該等指令在執行時使得一處理器進行以下操作:擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;自該檔案之該等樣本提取該等HTML元素;以及處理該等HTML元素以呈現該動態網頁內容。
在以下隨附圖式及描述中闡述一或多個實例之細節。其他特徵、目標及優點將自該描述及圖式以及申請專利範圍而顯而易見。
本申請案主張2018年1月19日提交的美國臨時申請案第62/619,641
號、2018年2月28日提交的美國臨時申請案第62/636,701
號以及2018年4月26日提交的美國臨時申請案第62/663,112
號之權益,該等申請案特此以全文引用之方式併入。
一般而言,本發明描述用於構建及使用包括用於攜載媒體資料及網頁內容兩者之一或多個追蹤之檔案(例如,符合ISO基礎媒體檔案格式(ISO BMFF)或類似格式)之技術。更特定而言,檔案格式處理器(例如,檔案囊封器或解囊封器)可處理包括用於攜載網頁資源(包括動態網頁資料)之追蹤。
mpeg.chiariglione.org/standards/mpeg-4/iso-base-media-file-format/text-isoiec-14496-12-5th-edition可獲得的2015年2月20日之ISO/IEC 14496-12「ISO Base Media File Format」指定諸如媒體串流及資源之計時資源之儲存之格式,其中不存在計時串流結構或不需要暴露計時串流結構。
2017年10月之Stockhammer及Concolato,「WD on Carriage of Web Resource in ISOBMFF (ISO/IEC 23001-15)」ISO/IEC JTC1/SC29/WG11,文件N17242 (「N17242」)提出追蹤類型及處理模型以支援網頁資源之攜載。本發明描述可用於可使用N17242之追蹤來將動態網頁遞送至用戶端側裝置之特定使用情況的技術。追蹤格式及基本處理模型遵循N17242中呈現之理念。將N17242附加至申請專利範圍之後的此臨時申請案,如附件A。
本發明描述此格式可如何用於儲存網頁資源及定義相關聯名稱的技術。本發明亦規定如何處理此等網頁資源與攜載其之ISO BMFF檔案之參考。以此方式,本發明描述啟用由ISO/IEC 14496-12支援之同步媒體及網頁資源之遞送用於文檔下載、漸進式檔案下載、串流、廣播或類似者之技術。假定ISO BMFF檔案含有足夠資訊以使得ISO BMFF檔案可在常規瀏覽器中播放。未定義網頁資料之呈現處理模型,且呈現可為網頁瀏覽器所擁有。
本發明亦描述用於傳信所需網頁能力以處理此ISO BMFF檔案之技術。此等技術可以可在專用方塊(box) (例如,MIME方塊)中傳信由其他組織定義之網頁設定檔之方式來執行,類似於mpeg.chiariglione.org/standards/mpeg-4/timed-text-and-other-visual-overlays-iso-base-media-file-format/isoiec-14496-30可獲得的2012年10月之Singer等人,「Timed Text and other visual overlays in ISO Base Media File Format」ISO/IEC 14496-30。
可在無特殊網頁設定檔之情況下實踐本發明之技術。
當需要計時解碼及呈現時,可使用追蹤來完成網頁資源(HTML、JavaScript…)之儲存,包括諸如搜尋、快速傳遞、特技播放等之操作。在此情況下,假定樣本中攜載之網頁資源將在樣本呈現時間由網頁資源處理器(例如,網頁瀏覽器)處理(例如,解析及解譯)。此允許網頁處理(例如,顯現或JavaScript執行)與諸如音訊/視訊/副標題追蹤之其他追蹤同步。參看圖5之實例假設處理模型給出此等追蹤之處理之更多細節,如下文更詳細地論述。
若干類型之追蹤可用於不同目的。首先,追蹤遞送可在播放其他媒體追蹤時被用作疊加且可隨時間變化之HTML內容。此類追蹤不應參考其他媒體追蹤(音訊、視訊)。攜載之HTML內容可轉而參考其他媒體追蹤(音訊、視訊…)。此類型之追蹤亦可用於僅提供進階影像疊加。
第二種類型之追蹤為遞送JavaScript代碼之追蹤。可在HTML文件之上下文中評估此代碼,其先前藉由ISO BMFF檔案之加載之前的應用、藉由來自先前類型之追蹤之樣本之加載或藉由項目之加載來加載。
第三種類型之追蹤為將由內部頁碼JavaScript代碼使用的如HTML中所指定遞送後設資料之追蹤,其先前藉由ISOBMFF檔案之加載之前的應用、或藉由來自先前類型之追蹤之樣本之加載或藉由項目之加載來加載。
第四種類型之追蹤為是以上第一、第二及/或第三類型之追蹤的追蹤,可能地亦允許HTML-5追蹤控制媒體串流,例如用於成框、子母畫面等。
根據本發明之技術可使用用於追蹤之間的相關性的兩個模型。在一個模型中,追蹤為獨立的,且不從屬於任何父代HTML。舉例而言,追蹤可為自行顯現的HTML追蹤,或其為不分派任何事件但執行代碼之JavaScript追蹤。舉例而言,若JavaSscript代碼使用Canvas API產生疊加並且若其不採用任何特定HTML (而是僅空HTML <html><body></body></html>)並產生所有HTML元素時,可能出現此情況。在此情況下,不需要HTML進入點。
另一模型為追蹤從屬於某一執行上下文。舉例而言,追蹤可為JavaScript追蹤且僅含有別處所定義功能之調用。可替代地,追蹤可為網頁視訊文字追蹤(WebVTT)格式追蹤,且相關聯之處理可包含於JavaScript檔案中。在彼情況下,可在無上下文環境、HTML及JavaScript之情況下使用追蹤。因此,HTML/JS進入點為必需的且應在同一ISO BMFF檔案中。
單個檔案可含有多個基於網頁之追蹤。一些追蹤(例如,JavaScript)之處理可為一些其他追蹤(例如,HTML追蹤)所要求的。將播放哪組獨立追蹤之選擇為特定實現。其可基於檔案中給出的後設資料(設定檔能力、語言資訊)或基於使用者輸入(例如,經由GUI)實現。
網頁資料可為常見的。舉例而言,網頁資料可包括幾乎所有樣本之更新。可替代地,網頁資料可為非常稀少的。本發明解決網頁計時資料之定義及檔案格式中之追蹤格式之表示。若網頁資料之定義稀少,則可考慮替代方案,且藉由此約束,(例如)若輸送不允許使用多個追蹤,則作為追蹤之表示導致其他問題。
在後一種情況下,可考慮稀少的網頁資料追蹤可經映射至不同結構以實現此多工。實例為使用電影片段中之MetaBoxes或使用EventMessageBoxes。此方法亦可解決分段追蹤在較長時段沒有樣本之問題或在下一樣本處於任意更遲時間時樣本持續時間待定之問題,在串流直播應用中發生時尚未知曉。
如ISO/IEC 14496-30中所指定,除非藉由嵌入環境(例如,藉由帶外(out-of-band)遞送或帶內(in-band)遞送且經識別為檔案進入點之HTML頁面)所指定,否則使用不同追蹤之TrackHeaderBox來指定包括疊加HTML追蹤及影像之追蹤之佈局。
在一些實例中,名稱「htmt」用於傳信追蹤(例如,疊加HTML追蹤)之存在,約束如下:
● 追蹤處理常式類型應為「text」
● 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「text/html」或「application/xhtml+xml」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
● 每一樣本含有HTML代碼,且可經標記為以下中之一者:
○ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
○ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
● 追蹤處理常式類型應為「text」
● 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「text/html」或「application/xhtml+xml」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
● 每一樣本含有HTML代碼,且可經標記為以下中之一者:
○ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
○ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
加載HTML樣本可等效於導覽新樣本中包含的文件。處理瀏覽器中之此類資訊可為特定實現,但應避免視資訊為使用者導航,例如捕獲瀏覽器歷史中之資訊。在特定呈現時間搜尋樣本可等效於搜尋樣本之開端,亦即,未預期處理。
在一些實例中,名稱「hjst」用於傳信追蹤(例如,JavaScript追蹤)之存在,約束如下:
● 追蹤處理常式類型應為「meta」
● 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「application/javascript」或「text/javascript」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
● 每個樣本含有JavaScript代碼且應經標記為以下中之一者:
○ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
○ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
● 追蹤處理常式類型應為「meta」
● 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「application/javascript」或「text/javascript」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
● 每個樣本含有JavaScript代碼且應經標記為以下中之一者:
○ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
○ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
在一些實例中,名稱「hvtt」用於傳信追蹤(例如,WebVTT後設資料追蹤)之存在,約束如下:
● 追蹤處理常式類型應為「meta」
● 樣本條目格式應為「wvtt」,如ISO/IEC 14496-30中所指定且:
○ 其組態值應為「WEBVTT\r\n」
● 組態應含有標頭「類型:後設資料(kind: metadata)」。在此情況下
○ KindBox應呈現在TrackBox中之UserDataBox中,其值如下:
▪ schemeURI: about:html-kind,如HTML中所指定
▪ 值:後設資料(value: metadata),如HTML中所指定
○ 每個樣本應含有文字提示且應經標記為以下中之一者:
▪ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
▪ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
● 追蹤處理常式類型應為「meta」
● 樣本條目格式應為「wvtt」,如ISO/IEC 14496-30中所指定且:
○ 其組態值應為「WEBVTT\r\n」
● 組態應含有標頭「類型:後設資料(kind: metadata)」。在此情況下
○ KindBox應呈現在TrackBox中之UserDataBox中,其值如下:
▪ schemeURI: about:html-kind,如HTML中所指定
▪ 值:後設資料(value: metadata),如HTML中所指定
○ 每個樣本應含有文字提示且應經標記為以下中之一者:
▪ 作為同步樣本(使用「stss」方塊或使用設定為2的sample_depends_on旗標)
▪ 作為冗餘同步樣本,其中sample_has_redundancy旗標設定為1
影像為重要網頁資源。如ISO/IEC 14496-12或ISO/IEC 23008-12中所指定之影像追蹤可用於提供影像疊加。當HTML內容參考影像(在追蹤中或作為項目)時,如所指定的疊加HTML追蹤亦可在無互動性之情況下用於提供進階影像疊加。
當沒有特定時間與彼資源(進入點CSS、HTML、JS)之加載相關時,網頁資源可經儲存為項目。可宣佈項目在可置放在電影標頭中之MetaBox中。MetaBox可在電影標頭中或在電影片段標頭中使用。
在一些實例中,名稱「htmi」可用於傳信MetaBox之使用,約束如下:
● 其應在檔案層級呈現
● 其應使用HandlerBox,其中handler_type設定為「html」
● 其應含有PrimaryItemBox,其宣佈初級項目為類型「text/html」或「application/xhtml+xml」之資源,
● 其不應使用DataInformationBox、ItemProtectionBox或IPMPControlBox
● 其應使用ItemInformationBox,約束如下:
○ 其版本為0或1
○ 每個項目藉由ItemInfoEntry來描述,約束如下:
▪ 其版本設定為0
▪ 其item_protection_index設定為0
▪ 若項目參考另一項目之內容中之URL,則其item_name等於彼URL。
● 其應使用ItemLocationBox,約束如下:
○ 其版本設定為1或2
○ 每個項目藉由條目來描述,且值0、1或2可用於建構方法。
● 其可使用上文未明確排除的任何其他方塊(諸如ItemReferenceBox)。
● 其應在檔案層級呈現
● 其應使用HandlerBox,其中handler_type設定為「html」
● 其應含有PrimaryItemBox,其宣佈初級項目為類型「text/html」或「application/xhtml+xml」之資源,
● 其不應使用DataInformationBox、ItemProtectionBox或IPMPControlBox
● 其應使用ItemInformationBox,約束如下:
○ 其版本為0或1
○ 每個項目藉由ItemInfoEntry來描述,約束如下:
▪ 其版本設定為0
▪ 其item_protection_index設定為0
▪ 若項目參考另一項目之內容中之URL,則其item_name等於彼URL。
● 其應使用ItemLocationBox,約束如下:
○ 其版本設定為1或2
○ 每個項目藉由條目來描述,且值0、1或2可用於建構方法。
● 其可使用上文未明確排除的任何其他方塊(諸如ItemReferenceBox)。
若網頁資源嵌入ISO/IEC 14496-12檔案中(如上文所描述在追蹤樣本或項目中),且若此等資源中之任一者含有亦嵌入同一ISO BMFF檔案中之URL至其他資源(包括至ISO BMFF檔案自身(例如,在視訊標籤中)),則以下約束可應用於檔案:
● MetaBox應在檔案層級呈現,約束如下
○ 針對每一URL至嵌入ISOBMFF檔案中之資源,對應於彼資源之項目之item_name應設定為彼URL
○ 可使用絕對URL
○ 可使用相對URL若使用相對URL,則包括資源的基礎URL定義基礎URL。應使用遵循RFC 3986之參考解析度。
○ 若嵌入ISOBMFF檔案中之資源使用至彼同一ISOBMFF檔案之URL,則應添加額外項目,其item_name設定為彼URL且項目位置描述整個檔案(偏移:0,整個長度)
● MetaBox應在檔案層級呈現,約束如下
○ 針對每一URL至嵌入ISOBMFF檔案中之資源,對應於彼資源之項目之item_name應設定為彼URL
○ 可使用絕對URL
○ 可使用相對URL若使用相對URL,則包括資源的基礎URL定義基礎URL。應使用遵循RFC 3986之參考解析度。
○ 若嵌入ISOBMFF檔案中之資源使用至彼同一ISOBMFF檔案之URL,則應添加額外項目,其item_name設定為彼URL且項目位置描述整個檔案(偏移:0,整個長度)
本發明之技術可應用於符合根據以下之任一者囊封之視訊資料的視訊檔案:ISO BMFF、可調式視訊寫碼(SVC)檔案格式、進階視訊寫碼(AVC)檔案格式、第三代合作夥伴計劃(3GPP)檔案格式及/或多視圖視訊寫碼(MVC)檔案格式或其他類似視訊檔案格式。
本發明之技術解決與處理檔案(例如,ISO BMFF檔案)之網頁資源追蹤中包括的動態網頁內容相關的某些問題。舉例而言,本發明描述網頁資源追蹤之樣本資料以使得網頁資源追蹤可攜載分段ISO BMFF檔案中之網頁資料。為實現此目的,本發明描述攜載什麼資料的實例說明。舉例而言,共同資料追蹤可經攜載於電影及追蹤標頭中作為同步樣本,且影響文件目標模型(DOM)之資料在同步樣本之間作為非同步樣本。作為另一實例,共同資料追蹤可經攜載於電影及追蹤標頭中,且影響DOM之資料可經攜載為(潛在地冗餘)同步樣本及/或非同步樣本。本發明亦描述與用戶端裝置之網頁資源解碼功能可如何在不同樣本類型之間區分且因此正確處理各種類型之樣本及/或利用複數種不同類型之資訊(例如,上述三種類型)中之適當一者相關的用於用戶端裝置側技術之處理模型。
值(有時被稱作「名稱」)「dhtm」可用於傳信追蹤(諸如動態HTML或HTML5追蹤)之存在,在一個實例中約束如下:
• 追蹤處理常式類型應為「text」
• 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「text/html」或「application/xhtml+xml」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
初始「moov」方塊下方之「meta」資訊方塊應含有應利用追蹤中之樣本的符合HTML文件。
• 追蹤處理常式類型應為「text」
• 樣本條目格式應為「stxt」且:
○ 其mime_format欄位應設定為「text/html」或「application/xhtml+xml」,
○ 其content_encoding欄位應含有HTTP之內容編碼標頭中允許的空串或值
初始「moov」方塊下方之「meta」資訊方塊應含有應利用追蹤中之樣本的符合HTML文件。
HTML文件通常含有通常與相同檔案中之其他媒體同步地根據追蹤之解碼時間使用樣本的JavaScript部分。兩種實例方式界定於樣本可如何由網頁存取:經由自本地快取提取之XMLHttpRequest (XHR)或經由本地網路套接字通信。XHR為允許資料在網頁瀏覽器與伺服器(其可為本地代理伺服器)之間傳送的API。
將使用XHR自本地快取提取之樣本可不遲於在樣本解碼時間使可用請求使用者代理或網頁。在初始播放、搜尋或調入等動作時,若初始網頁邏輯需要使用XHR來提取樣本資料,則可使用如下文所指定的URL模板資訊來重構樣本之URL。在一些實例中,若播放開始於冗餘同步樣本,則將冗餘同步樣本置放在快取記憶體中僅存取一次。
在一些實例中,網頁資源追蹤攜載樣本名稱及位置資訊。此資訊可呈樣本之URL之形式。歸因於安全考慮,名稱及位置可相對於初始網頁或初始檔案之完全合格的主機名稱。可存在攜載名稱及位置資訊之若干種方法。追蹤標頭可攜載樣本資料之類型及如何產生URL。三個實例選項呈現如下,且針對每一個,追蹤標頭可指示使用哪一個:
1) 在一個實例中,每個樣本之相對URL攜載於攜載樣本自身的每個電影片段中之方塊中。在下文中指定用於遞送此資訊之方塊結構之語法及語義之實例。可替代地,樣本自身可為包括實體標頭以及實體本體兩者之HTTP實體。在後一種情況下,追蹤標頭包括每個樣本為HTTP實體(其中HTTP標頭攜載於內部)之資訊。
2) 在另一實例中,追蹤標頭包括實現樣本編號取代為模板以創建樣本URL之模板URL。在下文中指定用於遞送基於編號之模板資訊之方塊結構之實例語法及語義。在此情況下,$編號$ ($number$)將由開始於0且針對每個以下樣本遞增1的編號取代。另外,若sample_max_num存在,則增量為模數sample_max_num。若sample_max_num存在,則置放在快取記憶體中之樣本之總持續時間不應超過最終sample_max_num樣本之持續時間,以避免快取樣本之環繞覆寫。
3) 在另一實例中,追蹤標頭含有基於時間之URL模板,從而藉由取代模板中之樣本之解碼時間來重構樣本之URL及名稱。在此情況下,追蹤標頭包括實現向模板增加解碼時間以創建統一URL之模板URL。在下文中指定用於遞送此資訊之方塊結構之語法及語義。在此情況下,$時間$ ($time$)將由樣本之解碼時間取代。
1) 在一個實例中,每個樣本之相對URL攜載於攜載樣本自身的每個電影片段中之方塊中。在下文中指定用於遞送此資訊之方塊結構之語法及語義之實例。可替代地,樣本自身可為包括實體標頭以及實體本體兩者之HTTP實體。在後一種情況下,追蹤標頭包括每個樣本為HTTP實體(其中HTTP標頭攜載於內部)之資訊。
2) 在另一實例中,追蹤標頭包括實現樣本編號取代為模板以創建樣本URL之模板URL。在下文中指定用於遞送基於編號之模板資訊之方塊結構之實例語法及語義。在此情況下,$編號$ ($number$)將由開始於0且針對每個以下樣本遞增1的編號取代。另外,若sample_max_num存在,則增量為模數sample_max_num。若sample_max_num存在,則置放在快取記憶體中之樣本之總持續時間不應超過最終sample_max_num樣本之持續時間,以避免快取樣本之環繞覆寫。
3) 在另一實例中,追蹤標頭含有基於時間之URL模板,從而藉由取代模板中之樣本之解碼時間來重構樣本之URL及名稱。在此情況下,追蹤標頭包括實現向模板增加解碼時間以創建統一URL之模板URL。在下文中指定用於遞送此資訊之方塊結構之語法及語義。在此情況下,$時間$ ($time$)將由樣本之解碼時間取代。
若網頁資源追蹤攜載將使用網路套接字推送至使用者代理以用於包括於初始網頁中的資料,則網路套接字位址可由網頁資源追蹤標頭攜載。舉例而言,網路套接字位址可攜載於電影方塊下方之方塊中或作為媒體資訊之部分,如下文所指定。
實例樣本URL方塊語法及語義經提供如下:
定義:
方塊類型:「surl」
箱:追蹤片斷方塊(「traf」)
必選:否
數量:零或大於零
樣本URL方塊針對追蹤片斷中之樣本攜載所需的ISO BMFFrelative URL。
方塊類型:「surl」
箱:追蹤片斷方塊(「traf」)
必選:否
數量:零或大於零
樣本URL方塊針對追蹤片斷中之樣本攜載所需的ISO BMFFrelative URL。
語法:
aligned(8) class SampleURLBox
extends FullBox('surl', version = 0) {
unsigned int(32) sample_count;
{
string sample_url;
}[ sample_count ]
}
aligned(8) class SampleURLBox
extends FullBox('surl', version = 0) {
unsigned int(32) sample_count;
{
string sample_url;
}[ sample_count ]
}
語義:
sample_url:樣本之相對URL。
sample_url:樣本之相對URL。
網頁資源媒體標頭之實例語法及語義經提供如下:
定義:
方塊類型:「wmhd」
箱:媒體資訊方塊(「minf」)
必選:是
數量:僅一個
網頁資源追蹤媒體資訊方塊層次中之WebMediaHeaderbox攜載之資訊之使用。網頁媒體標頭含有使解碼器重構樣本之相對URL及初始網頁接收樣本資料之網路套接字之語義及/或URL之資訊。
定義以下旗標:
0x000001 sample-url-template-present.
0x000002 sample-max-num-present
0x000004 web-socket-present.
方塊類型:「wmhd」
箱:媒體資訊方塊(「minf」)
必選:是
數量:僅一個
網頁資源追蹤媒體資訊方塊層次中之WebMediaHeaderbox攜載之資訊之使用。網頁媒體標頭含有使解碼器重構樣本之相對URL及初始網頁接收樣本資料之網路套接字之語義及/或URL之資訊。
定義以下旗標:
0x000001 sample-url-template-present.
0x000002 sample-max-num-present
0x000004 web-socket-present.
語法:
aligned(8) class WebMediaHeaderBox
extends FullBox('wmhd', version = 0, flags) {
if (sample-url-template-present)
{
string sample_url_template;
}
if (sample-max-num-present)
{
uint(32) sample_max_num;
}
If (web-socket-present)
{
string web_socket;
}
}
aligned(8) class WebMediaHeaderBox
extends FullBox('wmhd', version = 0, flags) {
if (sample-url-template-present)
{
string sample_url_template;
}
if (sample-max-num-present)
{
uint(32) sample_max_num;
}
If (web-socket-present)
{
string web_socket;
}
}
語義:
redundant_sync_url為追蹤中之任何冗餘同步之相對URL。
sample_url_template攜載追蹤之同步及非同步樣本之URL模板。此串應含有$編號$或$時間$。
sample_max_num攜載編號模數,若經傳信,$編號$自0遞增。
web_socket攜載網頁套接字URL以發送樣本資料。
redundant_sync_url為追蹤中之任何冗餘同步之相對URL。
sample_url_template攜載追蹤之同步及非同步樣本之URL模板。此串應含有$編號$或$時間$。
sample_max_num攜載編號模數,若經傳信,$編號$自0遞增。
web_socket攜載網頁套接字URL以發送樣本資料。
為了理解網頁資源之不同樣本追蹤什麼,理解用戶端側動態網頁(在用戶端側動態變化的網頁)如何動作係相關的。此類網頁之最公知的認識為使用JavaScript更新的HTML內容。此網頁之非常簡單的實例(來自en.wikipedia.org/wiki/Dynamic_HTML#Example:_Displaying_an_ additional_block_of_text)如下:
<!doctype html>
<meta charset="utf-8">
<title>Using a DOM function</title>
<style>
a { background-color:#eee; }
a:hover { background:#ff0; }
#toggleMe { background:#cfc; display:none; margin:30px 0; padding:1em; }
</style>
<h1>Using a DOM function</h1>
<h2><a id="showhide" href="#">Show paragraph</a></h2>
<p id="toggleMe">This is the paragraph that is only displayed on request.
<p>The general flow of the document continues.
<script>
function changeDisplayState(id) {
var d = document.getElementById('showhide'),
e = document.getElementById(id);
if (e.style.display === 'none' || e.style.display === '') {
e.style.display = 'block';
d.innerHTML = 'Hide paragraph';
} else {
e.style.display = 'none';
d.innerHTML = 'Show paragraph';
}
}
document.getElementById('showhide').addEventListener('click', function (e) {
e.preventDefault();
changeDisplayState('toggleMe');
});
</script>
<!doctype html>
<meta charset="utf-8">
<title>Using a DOM function</title>
<style>
a { background-color:#eee; }
a:hover { background:#ff0; }
#toggleMe { background:#cfc; display:none; margin:30px 0; padding:1em; }
</style>
<h1>Using a DOM function</h1>
<h2><a id="showhide" href="#">Show paragraph</a></h2>
<p id="toggleMe">This is the paragraph that is only displayed on request.
<p>The general flow of the document continues.
<script>
function changeDisplayState(id) {
var d = document.getElementById('showhide'),
e = document.getElementById(id);
if (e.style.display === 'none' || e.style.display === '') {
e.style.display = 'block';
d.innerHTML = 'Hide paragraph';
} else {
e.style.display = 'none';
d.innerHTML = 'Show paragraph';
}
}
document.getElementById('showhide').addEventListener('click', function (e) {
e.preventDefault();
changeDisplayState('toggleMe');
});
</script>
藉由將實例插入www.w3schools.com/html/tryit.asp? filename=tryhtml_intro的w3schools Tryit編輯器中,吾人可見此實例在操作中。此處,JavaScript可用於向現有網頁更新及增加某些元素。
在HTTP串流中,頻繁使用之操作包括HEAD、GET及部分GET。HEAD操作擷取與給定的統一資源定位符(URL)或統一資源名稱(URN)相關聯的檔案之標頭,但不擷取與URL或URN相關聯的有效負載。GET操作擷取與給定URL或URN相關聯的整個檔案。部分GET操作接收位元組範圍作為輸入參數且擷取檔案之連續數目個位元組,其中位元組之數目對應於所接收位元組範圍。因此,可提供電影片段以用於HTTP串流,此係因為部分GET操作可得到一或多個單獨的電影片段。在電影片段中,能夠存在不同追蹤之若干追蹤片段。在HTTP串流中,媒體呈現可為用戶端可存取之資料之結構化集合。用戶端可請求且下載媒體資料資訊以向使用者呈現串流服務。
在使用HTTP串流來串流3GPP資料之實例中,可能存在針對多媒體內容之視訊及/或音訊資料的多個表示。如下文所解釋,不同表示可對應於不同寫碼特性(例如,視訊寫碼標準之不同設定檔或層級)、不同寫碼標準或寫碼標準之擴展(諸如多視圖及/或可縮放擴展)或不同位元速率。此等表示之資訊清單可在媒體呈現描述(MPD)資料結構中定義。媒體呈現可對應於HTTP串流用戶端裝置可存取的資料之結構化集合。HTTP串流用戶端裝置可請求且下載媒體資料資訊以向用戶端裝置之使用者呈現串流服務。媒體呈現可在MPD資料結構中描述,MPD資料結構可包括MPD之更新。
媒體呈現可含有一或多個週期(Period)之序列。每一週期可延伸直至下一週期(Period)開始為止,或在最末週期的情況下,直至媒體呈現結束為止。每一週期可含有針對同一媒體內容之一或多個表示。表示可為音訊、視訊、計時文字或其他此類資料之數個替代性經編碼版本中之一者。表示可因編碼類型而異(例如,對於視訊資料,因位元速率、解析度及/或編碼解碼器而異,對於音訊資料,則因位元速率、語言及/或編碼解碼器而異)。術語表示可用以指代經編碼音訊或視訊資料的對應於多媒體內容之特定週期且以特定方式編碼之部分。
特定週期之表示可指派給由MPD中之屬性指示之群組,該屬性指示表示所屬之調適集。同一調適集合中之表示通常被視為彼此之替代,此係因為用戶端裝置可在此等表示之間動態地且順暢地切換,例如執行頻寬調適。舉例而言,特定週期之視訊資料之每一表示可指派至同一調適集,以使得可選擇該等表示中之任一者進行解碼以呈現對應週期之多媒體內容的媒體資料(諸如視訊資料或音訊資料)。在一些實例中,一個週期內之媒體內容可由來自群組0 (若存在)之一個表示來表示,抑或由來自每一非零群組的至多一個表示之組合來表示。週期之每一表示之時序資料可相對於該週期之開始時間來表達。
一表示可包括一或多個區段。每一表示可包括初始化區段,或表示之每一區段可自初始化。當存在時,初始化區段可含有用於存取表示之初始化資訊。一般而言,初始化區段不含有媒體資料。區段可由識別符唯一地參考,諸如統一資源定位符(URL)、統一資源名稱(URN)或統一資源識別符(URI)。MPD可為每一區段提供識別符。在一些實例中,MPD亦可提供呈範圍屬性之形式的位元組範圍,該等範圍屬性可對應於可由URL、URN或URI存取之檔案內之區段的資料。
可選擇不同表示以用於大體上同時擷取不同類型之媒體資料。舉例而言,用戶端裝置可選擇音訊表示、視訊表示及計時文字表示,自該等表示擷取區段。在一些實例中,用戶端裝置可選擇特定調適集以用於執行頻寬調適。亦即,用戶端裝置可選擇包括視訊表示之調適集、包括音訊表示之調適集及/或包括計時文字之調適集。替代地,用戶端裝置可選擇某些類型媒體(例如,視訊)之調適集,且直接選擇其他類型媒體(例如,音訊及/或計時文字)之表示。
圖1為說明實施用於經由網路串流傳輸媒體資料之技術之實例系統10的方塊圖。在此實例中,系統10包括內容準備裝置20、伺服器裝置60及用戶端裝置40。用戶端裝置40及伺服器裝置60藉由網路74以通信方式耦接,該網路可包含網際網路。在一些實例中,內容準備裝置20與伺服器裝置60亦可藉由網路74或另一網路耦接,或可直接以通信方式耦接。在一些實例中,內容準備裝置20及伺服器裝置60可包含同一裝置。
在圖1之實例中,內容準備裝置20包含音訊源22及視訊源24。音訊源22可包含(例如)產生表示待由音訊編碼器26編碼之所捕獲音訊資料之電信號的麥克風。替代地,音訊源22可包含儲存先前記錄之音訊資料之儲存媒體、諸如電腦化之合成器之音訊資料產生器或音訊資料之任何其他來源。視訊源24可包含:視訊攝影機,其產生待藉由視訊編碼器28編碼之視訊資料;儲存媒體,其編碼有先前記錄之視訊資料;視訊資料產生單元,諸如電腦圖形源;或任何其他視訊資料源。內容準備裝置20未必在所有實例中均以通信方式耦合至伺服器裝置60,但可將多媒體內容儲存至由伺服器裝置60讀取之單獨媒體。
原始音訊及視訊資料可包含類比或數位資料。類比資料可在由音訊編碼器26及/或視訊編碼器28編碼前經數位化。音訊源22可在說話參與者正在說話時自說話參與者獲得音訊資料,且視訊源24可同時獲得該說話參與者之視訊資料。在其他實例中,音訊源22可包含包含所儲存之音訊資料的電腦可讀儲存媒體,且視訊源24可包含包含所儲存之視訊資料的電腦可讀儲存媒體。以此方式,本發明中所描述之技術可應用於實況、串流、即時音訊及視訊資料或所存檔的、預先記錄的音訊及視訊資料。
對應於視訊訊框之音訊訊框通常為含有藉由音訊源22俘獲(或產生)之音訊資料的音訊訊框,音訊資料同時伴隨含於視訊訊框內的藉由視訊源24俘獲(或產生)之視訊資料。舉例而言,當說話參與者通常藉由說話而產生音訊資料時,音訊源22俘獲音訊資料,且視訊源24同時,亦即在音訊源22正俘獲音訊資料的同時俘獲說話參與者之視訊資料。因此,音訊訊框在時間上可對應於一或多個特定視訊訊框。因此,對應於視訊訊框之音訊訊框大體上對應於同時俘獲到的音訊資料及視訊資料且音訊訊框及視訊訊框分別包含同時俘獲到的音訊資料及視訊資料的情形。
在一些實例中,音訊編碼器26可對每一經編碼音訊訊框中表示記錄經編碼音訊訊框的音訊資料之時間的時戳進行編碼,且類似地,視訊編碼器28可對每一經編碼視訊訊框中表示記錄經編碼視訊訊框的視訊資料之時間的時戳進行編碼。在此等實例中,對應於視訊訊框之音訊訊框可包含:包含時戳之音訊訊框及包含相同時戳之視訊訊框。內容準備裝置20可包括內部時脈,音訊編碼器26及/或視訊編碼器28可根據該內部時脈產生時戳,或音訊源22及訊訊源24可使用該內部時脈以分別使音訊資料及視訊資料與時戳相關聯。
在一些實例中,音訊源22可向音訊編碼器26發送對應於記錄音訊資料之時間的資料,且視訊源24可向視訊編碼器28發送對應於記錄視訊資料之時間的資料。在一些實例中,音訊編碼器26可對經編碼音訊資料中的序列識別符進行編碼以指示經編碼音訊資料之相對時間排序,但未必指示記錄音訊資料之絕對時間,且類似地,視訊編碼器28亦可使用序列識別符來指示經編碼視訊資料之相對時間排序。類似地,在一些實例中,序列識別符可經映射或以其他方式與時戳相關。
音訊編碼器26通常產生經編碼音訊資料之串流,而視訊編碼器28產生經編碼視訊資料之串流。每一個別資料串流(不論音訊或視訊)可被稱作基本串流。基本串流為表示之單個的經數位寫碼(可能經壓縮)之分量。舉例而言,表示之經寫碼視訊或音訊部分可為基本串流。基本串流可在被囊封於視訊檔案內之前被轉換成封包化基本串流(PES)。在相同表示內,可使用串流ID來區分屬於一個基本串流之PES封包與其他PES封包。基本串流之資料之基本單元為封包化基本串流(PES)封包。因此,經寫碼視訊資料大體對應於基本視訊串流。類似地,音訊資料對應於一或多個各別基本串流。
許多視訊寫碼標準(諸如,ITU-T H.264/AVC及即將來臨的高效視訊寫碼(HEVC)標準)界定無誤差位元串流之語法、語義及解碼過程,該等無誤差位元串流中之任一者符合特定設定檔或層級。視訊寫碼標準通常並不指定編碼器,但編碼器具有保證所產生之位元流對於解碼器而言係標準相容之任務。在視訊寫碼標準之上下文中,「設定檔」對應於演算法、特徵或工具及施加至演算法、特徵或工具之約束的子集。如由例如H.264標準所定義,「設定檔」為由H.264標準指定的完整位元串流語法之子集。「層級」對應於解碼器資源消耗,諸如(例如),解碼器記憶體及計算之限制,該等限制係關於圖像解析度、位元速率及區塊處理速率。設定檔可用profile_idc (設定檔指示符)值傳信,而層級可用level_idc (層級指示符)值傳信。
舉例而言,H.264標準認為,在由給定設定檔之語法所強加的界限內,仍然可能要求編碼器及解碼器之效能有較大變化,此取決於位元串流中之語法元素(諸如,經解碼圖像之指定大小)所取的值。H.264標準進一步認為,在許多應用中,實施能夠處理特定設定檔內之語法之所有假設使用的解碼器既不實際又不經濟。因此,H.264標準將「層級」定義為強加於位元流中之語法元素之值的約束之指定集。此等約束可為對值的簡單限制。替代地,此等約束條件可呈對值之算術組合(例如,圖像寬度乘以圖像高度乘以每秒解碼的圖像數目)之約束的形式。H.264標準進一步規定,個別實施對於每一所支援設定檔可支援不同層級。
符合設定檔之解碼器一般支援設定檔中所定義之所有特徵。舉例而言,作為寫碼特徵,B圖像寫碼在H.264/AVC之基線設定檔不被支援,但在H.264/AVC之其他設定檔中被支援。符合一層級之解碼器應能夠解碼不需要超出該層級中所定義之限制的資源之任何位元串流。設定檔及層級之定義可有助於解譯。舉例而言,在視訊傳輸期間,可針對整個傳輸工作階段協商及同意一對設定檔定義及層級定義。更具體言之,在H.264/AVC中,層級可定義對於需要處理之巨集區塊的數目、經解碼圖像緩衝器(DPB)大小、經寫碼圖像緩衝器(CPB)大小、垂直運動向量範圍、每兩個連續MB的運動向量之最大數目及B區塊是否可具有小於8×8像素之子巨集區塊分區的限制。以此方式,解碼器可判定解碼器是否能夠適當地對位元流進行解碼。
在圖1之實例中,內容準備裝置20之囊封單元30接收包含來自視訊編碼器28之經寫碼視訊資料的基本串流及包含來自音訊編碼器26之經寫碼音訊資料的基本串流。在一些實例中,視訊編碼器28及音訊編碼器26可各自包含用於自經編碼資料形成PES封包之封包化器。在其他實例中,視訊編碼器28及音訊編碼器26可各自與用於自經編碼資料形成PES封包之各別封包化器介接。在另外其他實例中,囊封單元30可包括用於自經編碼音訊及視訊資料形成PES封包之封包化器。
視訊編碼器28可用多種方式編碼多媒體內容之視訊資料,以產生多媒體內容之各種位元速率且具有各種特性的不同表示,該等特性諸如像素解析度、訊框速率、對各種寫碼標準之符合、對各種寫碼標準之各種設定檔及/或設定檔層級之符合、具有一個或多個視圖之表示(例如,對於二維或三維播放)或其他此類特性。如本發明中所使用,表示可包含音訊資料、視訊資料、文字資料(例如,用於封閉字幕)或其他此資料中之一者。表示可包括諸如音訊基本串流或視訊基本串流之基本串流。每一PES封包可包括stream_id,其識別PES封包所屬之基本串流。囊封單元30負責將基本串流組譯成各種表示之視訊檔案(例如,區段)。
囊封單元30自音訊編碼器26及視訊編碼器28接收表示之基本串流的PES封包且自該等PES封包形成對應的網路抽象層(NAL)單元。寫碼視訊區段可經組織成NAL單元,其提供「網路友好」視訊表示定址應用程式,諸如視訊電話、儲存器、廣播或串流。NAL單元可分類為視訊寫碼層(VCL) NAL單元及非VCL NAL單元。VCL單元可含有核心壓縮引擎,且可包括區塊、巨集區塊及/或圖塊層級資料。其他NAL單元可為非VCL NAL單元。在一些實例中,一個時間執行個體中之經寫碼圖像(通常呈現為初級經寫碼圖像)可含於存取單元中,該存取單元可包括一或多個NAL單元。
非VCL NAL單元可尤其包括參數集NAL單元及SEI NAL單元。參數集可含有序列層級標頭資訊(在序列參數集(SPS)中)及不頻繁改變的圖像層級標頭資訊(在圖像參數集(PPS)中)。對於參數集(例如,PPS及SPS),不頻繁改變的資訊不需要針對每一序列或圖像重複,因此可改良寫碼效率。此外,使用參數集可實現重要標頭資訊之頻帶外傳輸,從而避免需要冗餘傳輸以用於錯誤恢復。在帶外傳輸實例中,參數集NAL單元可在與其他NAL單元(諸如,SEI NAL單元)不同之頻道上傳輸。
補充增強資訊(SEI)可含有對於對來自VCL NAL單元之經寫碼圖像樣本進行解碼並非必需的資訊,但可輔助與解碼、顯示、抗誤碼及其他目的相關的過程。SEI訊息可含於非VCL NAL單元中。SEI訊息係一些標準規格之標準化部分,且因此對於符合標準之解碼器實施並非始終係必選的。SEI訊息可為序列層級SEI訊息或圖像層級SEI訊息。某一序列層級資訊可含於SEI訊息中,諸如SVC之實例中的可縮放性資訊SEI訊息,及MVC中的視圖可縮放性資訊SEI訊息。此等實例SEI訊息可傳達關於(例如)操作點之提取及操作點之特性的資訊。此外,囊封單元30可形成資訊清單檔案,諸如描述表示之特性的媒體呈現描述符(MPD)。囊封單元30可根據可延伸標記語言(XML)來格式化MPD。
囊封單元30可向輸出介面32提供多媒體內容之一或多個表示的資料以及資訊清單檔案(例如,MPD)。輸出介面32可包含網路介面或用於對儲存媒體進行寫入之介面,諸如通用串流匯流排(USB)介面、CD或DVD寫入器或燒錄器、至磁性或快閃儲存媒體之介面,或用於儲存或傳輸媒體資料之其他介面。囊封單元30可將多媒體內容之表示中之每一者的資料提供至輸出介面32,該輸出介面可經由網路傳輸或儲存媒體將該資料發送至伺服器裝置60。在圖1之實例中,伺服器裝置60包括儲存各種多媒體內容64之儲存媒體62,每一多媒體內容64包括各別資訊清單檔案66及一或多個表示68A至68N (表示68)。在一些實例中,輸出介面32亦可將資料直接發送至網路74。
在一些實例中,表示68可分成若干調適集。亦即,表示68之各種子集可包括:各別共同特性集,諸如編解碼器、設定檔及層級、解析度、視圖數目、區段之檔案格式;文字類型資訊,其可識別待使用表示來顯示的語言或文字之其他特性及/或待解碼及例如由說話者呈現之音訊資料;攝影機視角資訊,其可描述用於調適集中之表示的攝影機視角或場景之現實世界攝影機視角;分級資訊,其描述特定觀眾之內容適合性;或類似者。
資訊清單檔案66可包括指示對應於特定調適集之表示68之子集以及該等調適集之共同特性的資料。資訊清單檔案66亦可包括表示調適集之個別表示的個別特性(諸如位元速率)之資料。以此方式,調適集可提供簡化的網路頻寬調適。調適集中之表示可使用資訊清單檔案66之調適集元素的子代元素來指示。
伺服器裝置60包括請求處理單元70及網路介面72。在一些實例中,伺服器裝置60可包括複數個網路介面。此外,伺服器裝置60之特徵中之任一者或全部可在內容遞送網路之其他裝置,諸如,路由器、橋接器、代理裝置、交換器或其他裝置上實施。在一些實例中,內容遞送網路之中間裝置可快取多媒體內容64之資料,且包括大體上與伺服器裝置60之組件一致的組件。一般而言,網路介面72經組態以經由網路74發送及接收資料。
請求處理單元70經組態以接收來自用戶端裝置(諸如,用戶端裝置40)對儲存媒體62之資料的網路請求。舉例而言,請求處理單元70可實施超文字傳送協定(HTTP)版本1.1,如在R. Fielding等人之RFC 2616,「超文字傳送協定- HTTP/1.1」(網路工作群,IETF,1999年6月)中所描述。亦即,請求處理單元70可經組態以接收HTTP GET或部分GET請求,且回應於該等請求提供多媒體內容64之資料。請求可指定表示68中之一者的區段,例如使用區段之URL。在一些實例中,該等請求亦可指定區段之一或多個位元組範圍,因此包含部分GET請求。請求處理單元70可經進一步組態以服務HTTP HEAD請求以提供表示68中之一者之一區段之標頭資料。在任何情況下,請求處理單元70可經組態以處理該等請求以將請求之資料提供至諸如用戶端裝置40之請求裝置。
另外或可替代地,請求處理單元70可經組態以經由諸如eMBMS之廣播或多播協定而遞送媒體資料。內容準備裝置20可用與所描述大體上相同的方式產生DASH區段及/或子區段,但伺服器裝置60可使用eMBMS或另一廣播或多播網路傳送協定來遞送此等區段或子區段。舉例而言,請求處理單元70可經組態以接收來自用戶端裝置40之多播群組加入請求。即,伺服器裝置60可對與特定媒體內容(例如,實況事件之廣播)相關聯之用戶端裝置(包括用戶端裝置40)通告與多播群組相關聯的網際網路協定(IP)位址。用戶端裝置40又可提交加入多播群組之請求。此請求可遍及網路74,例如,構成網路74之路由器傳播,以使得致使該等路由器將去往與多播群組相關聯之IP位址的訊務導向至訂用的用戶端裝置,諸如用戶端裝置40。
如圖1之實例中所說明,多媒體內容64包括資訊清單檔案66,該資訊清單檔案66可對應於媒體呈現描述(MPD)。資訊清單檔案66可含有不同替代性表示68 (例如,具有不同品質之視訊服務)的描述,且該描述可包括(例如)編解碼器資訊、設定檔值、層級值、位元率及表示68之其他描述性特性。用戶端裝置40可擷取媒體呈現之MPD以判定如何存取表示68之區段。
詳言之,擷取單元52可擷取用戶端裝置40之組態資料(未圖示)以判定視訊解碼器48之解碼能力及視訊輸出端44之顯現能力。該組態資料亦可包括由用戶端裝置40之使用者選擇的任何或所有語言偏好、對應於由用戶端裝置40之使用者設定之深度偏好的一或多個攝影機視角及/或由用戶端裝置40之使用者選擇的分級偏好。擷取單元52可包含(例如)經組態以提交HTTP GET及部分GET請求之網頁瀏覽器或媒體用戶端。擷取單元52可對應於由用戶端裝置40之一或多個處理器或處理單元(未圖示)執行的軟體指令。在一些實例中,關於擷取單元52描述的所有或部分功能性可以硬體或硬體、軟體及/或韌體之組合來實施,其中可提供必需的硬體以執行用於軟體或韌體之指令。
擷取單元52可比較用戶端裝置40之解碼及顯現能力與由資訊清單檔案66之資訊指示的表示68之特性。擷取單元52可一開始擷取資訊清單檔案66之至少一部分以判定表示68之特性。舉例而言,擷取單元52可請求描述一或多個調適集之特性的資訊清單檔案66之一部分。擷取單元52可選擇表示68中具有可由用戶端裝置40之寫碼及顯現能力滿足之特性的子集(例如,調適集)。擷取單元52可接著判定用於調適集中之表示的位元速率,判定網路頻寬之當前可用量,及自表示中具有可由網路頻寬滿足之位元速率之一者擷取區段。
一般而言,較高位元速率表示可產生較高品質之視訊播放,而較低位元速率表示可在可用網路頻寬減少時提供足夠品質之視訊播放。因此,當可用網路頻寬相對高時,擷取單元52可自相對高位元速率之表示擷取資料,而當可用網路頻寬較低時,擷取單元52可自相對低位元速率之表示擷取資料。以此方式,用戶端裝置40可經由網路74串流傳輸多媒體資料,同時亦調適網路74之改變的網路頻寬可用性。
另外或可替代地,擷取單元52可經組態以根據諸如eMBMS或IP多播之廣播或多播網路協定來接收資料。在此等實例中,擷取單元52可提交加入與特定媒體內容相關聯之多播網路群組的請求。在加入多播群組後,擷取單元52可接收多播群組之資料,而無發出至伺服器裝置60或內容準備裝置20之進一步請求。擷取單元52可提交當不再需要多播群組之資料時離開多播群組之請求,例如,以停止播放或將頻道改變至不同多播群組。
網路介面54可接收並提供選定表示之區段之資料至擷取單元52,擷取單元52又可將該等區段提供至解囊封單元50。解囊封單元50可將視訊檔案之元素解囊封成構成之PES串流,解封包化該等PES串流以擷取經編碼資料,且將經編碼資料發送至音訊解碼器46或視訊解碼器48,此取決於經編碼資料為音訊還是視訊串流之部分,例如,如由該串流之PES封包標頭指示。音訊解碼器46對經編碼音訊資料進行解碼,且向音訊輸出端42發送經解碼音訊資料;而視訊解碼器48對經編碼視訊資料進行解碼,且向視訊輸出端44發送經解碼視訊資料,該經解碼視訊資料可包括串流之複數個視圖。
視訊編碼器28、視訊解碼器48、音訊編碼器26、音訊解碼器46、囊封單元30、擷取單元52及解囊封單元50各自可實施為適用的多種合適處理電路系統中之任一者,合適處理電路系統諸如一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、離散邏輯電路系統、軟體、硬體、韌體或其任何組合。視訊編碼器28及視訊解碼器48中之每一者可包括在一或多個編碼器或解碼器中,編碼器或解碼器中之任一者可整合為組合式編碼器/解碼器(編解碼器(CODEC))之部分。同樣地,音訊編碼器26及音訊解碼器46中之每一者可包括於一或多個編碼器或解碼器中,編碼器或解碼器中之任一者可經整合為組合式CODEC之部分。包括視訊編碼器28、視訊解碼器48、音訊編碼器26、音訊解碼器46、囊封單元30、擷取單元52及/或解囊封單元50的設備可包含積體電路、微處理器及/或無線通信裝置,諸如蜂巢式電話。
用戶端裝置40、伺服器裝置60及/或內容準備裝置20可經組態以根據本發明之技術操作。出於實例之目的,本發明描述關於用戶端裝置40及伺服器裝置60之此等技術。然而,應理解,替代伺服器裝置60 (或除了伺服器裝置60之外),內容準備裝置20可經組態以執行此等技術。
囊封單元30可形成NAL單元,該等NAL單元包含識別NAL單元所屬之程序的標頭,以及有效負載,例如音訊資料、視訊資料或描述NAL單元所對應的傳送或程序串流的資料。舉例而言,在H.264/AVC中,NAL單元包括1位元組標頭及不同大小之有效負載。在其有效負載中包括視訊資料之NAL單元可包含各種粒度層級之視訊資料。舉例而言,NAL單元可包含視訊資料區塊、複數個區塊、視訊資料之圖塊或視訊資料之整個圖像。囊封單元30可自視訊編碼器28接收呈基本串流之PES封包之形式的經編碼視訊資料。囊封單元30可使每一基本串流與對應程序相關聯。
囊封單元30亦可組譯來自複數個NAL單元之存取單元。一般而言,存取單元可包含用於表示視訊資料之訊框以及對應於該訊框之音訊資料(當此音訊資料可用時)的一或多個NAL單元。存取單元通常包括一個輸出時間執行個體之所有NAL單元,例如一個時間執行個體之所有音訊及視訊資料。舉例而言,若每一視圖具有20訊框每秒(fps)之訊框速率,則每一時間執行個體可對應於0.05秒之時間間隔。在此時間間隔期間,可同時呈現相同存取單元(相同時間執行個體)之所有視圖的特定訊框。在一個實例中,存取單元可包含一個時間執行個體中之經寫碼圖像,其可呈現為初級經寫碼圖像。
因此,存取單元可包含共同時間執行個體之所有音訊訊框及視訊訊框,例如對應於時間X
之所有視圖。本發明亦將特定視圖之經編碼圖像稱作「視圖分量」。亦即,視圖分量可包含在特定時間針對特定視圖的經編碼圖像(或訊框)。因此,存取單元可定義為包含共同時間執行個體之所有視圖分量。存取單元之解碼次序未必與輸出或顯示次序相同。
媒體呈現可包括媒體呈現描述(MPD),該媒體呈現描述可含有不同替代表示(例如,具有不同品質之視訊服務)的描述,且該描述可包括例如編碼解碼器資訊、設定檔值及層級值。MPD為資訊清單檔案(諸如,資訊清單檔案66)之一個實例。用戶端裝置40可擷取媒體呈現之MPD以判定如何存取各種呈現之電影片段。電影片段可位於視訊檔案之電影片段方塊(moof方塊)中。
資訊清單檔案66 (其可包含例如MPD)可通告表示68之區段之可用性。亦即,MPD可包括指示表示68中之一者之第一片段變得可用之掛鐘時間的資訊,以及指示表示68內的區段之持續時間的資訊。以此方式,用戶端裝置40之擷取單元52可基於在一特定區段前的區段之開始時間以及持續時間來判定每一區段可用之時間。
在囊封單元30已基於所接收之資料將NAL單元及/或存取單元組譯成視訊檔案之後,囊封單元30將視訊檔案傳遞至輸出介面32以用於輸出。在一些實例中,囊封單元30可將視訊檔案儲存在本端,或經由輸出介面32而將視訊檔案發送至遠端伺服器,而非將視訊檔案直接發送至用戶端裝置40。輸出介面32可包含例如傳輸器、收發器、用於將資料寫入至電腦可讀媒體之裝置,諸如光碟機、磁性媒體驅動器(例如,軟碟機)、通用串列匯流排(USB)埠、網路介面或其他輸出介面。輸出介面32將視訊檔案輸出至電腦可讀媒體,諸如傳輸信號、磁性媒體、光學媒體、記憶體、隨身碟或其他電腦可讀媒體。
網路介面54可經由網路74接收NAL單元或存取單元並經由擷取單元52將NAL單元或存取單元提供至解囊封單元50。解囊封單元50可將視訊檔案之元素解囊封成構成之PES串流,解封包化該等PES串流以擷取經編碼資料,且將經編碼資料發送至音訊解碼器46或視訊解碼器48,此取決於經編碼資料為音訊還是視訊串流之部分,例如,如由該串流之PES封包標頭指示。音訊解碼器46對經編碼音訊資料進行解碼,且向音訊輸出端42發送經解碼音訊資料;而視訊解碼器48對經編碼視訊資料進行解碼,且向視訊輸出端44發送經解碼視訊資料,該經解碼視訊資料可包括串流之複數個視圖。
根據本發明之技術,解囊封單元50可經組態以在音訊、視訊及包括動態網頁內容之網頁內容(例如,HTML)之間進行區分。此外,解囊封單元50可提取初始化資訊及樣本類型。解囊封單元50可經組態以提取分段ISO BMFF檔案(或多個檔案)中封裝之動態網頁資料。特定而言,動態網頁資料可以網頁資源追蹤之形式封裝,如下:
1. 不意欲針對追蹤變化的html文件之任何部分應包括於初始「moov」方塊下方的「meta」資訊方塊中。
2. 同步樣本為HTML元素。其標識符(id)設定為「urn:mpeg:webresource:sync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:sync:」應在使用此元素之前由用戶端應用程式自id移除。
a. 若相同類型之元素存在於文件目標模型(DOM)中,則此元素替換現有元素。
b. 若此類型之多個元素存在於DOM中,則:
i.此元素替換具有相同<id>之DOM中之元素。
ii.若此元素不含有<id>,則所有相同類型之元素用此元素來替換。
3. 非同步樣本為添加至HTML本體之HTML元素。其id設定為「urn:mpeg:webresource:nonsync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:nonsync:」應在使用此元素之前由用戶端應用程式自id移除。
1. 不意欲針對追蹤變化的html文件之任何部分應包括於初始「moov」方塊下方的「meta」資訊方塊中。
2. 同步樣本為HTML元素。其標識符(id)設定為「urn:mpeg:webresource:sync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:sync:」應在使用此元素之前由用戶端應用程式自id移除。
a. 若相同類型之元素存在於文件目標模型(DOM)中,則此元素替換現有元素。
b. 若此類型之多個元素存在於DOM中,則:
i.此元素替換具有相同<id>之DOM中之元素。
ii.若此元素不含有<id>,則所有相同類型之元素用此元素來替換。
3. 非同步樣本為添加至HTML本體之HTML元素。其id設定為「urn:mpeg:webresource:nonsync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:nonsync:」應在使用此元素之前由用戶端應用程式自id移除。
因此,解囊封單元50可判定初始「moov」方塊下方的「meta」資訊方塊之HTML資料不發生變化。解囊封單元50亦可使用樣本之id值來區分同步樣本與非同步樣本。亦即,解囊封單元50可判定id在「urn:mpeg:webresource:sync:」之前的樣本為同步樣本,且id在「urn:mpeg:webresource:nonsync:」之前的樣本為非同步樣本。同樣地,解囊封單元50可在使用對應元素之前自id遙控此等前述元素(「urn:mpeg:webresource:sync:」及「urn:mpeg:webresource:nonsync:」)。可替代地,單獨單元(例如,軟體應用程式,諸如網頁用戶端或其他應用程式)可經組態以自id移除前述元素。
藉由使非改變資料在「meta」資訊方塊中,收集不意欲在初始電影方塊中改變的網頁資料避免共同資料之再傳輸。因此,此等技術可減少處理要求且避免可能由再傳輸導致的網路頻寬浪費。此外,根據本發明之技術,HTML頁面之任何元素(標籤)可經發送為同步樣本,其允許替換相同類型之一或多個元素。此允許使用一或多個同步樣本來改變網頁之部分或全部網頁。此外,根據本發明之技術,藉由使用非同步樣本,可將更多元素添加至網頁。藉由使用腳本元素作為非同步樣本將JavaScript添加至網頁可能為適用的。
在一些實例中,在初始電影方塊中收集不意欲變化的網頁資料可避免共同資料之再傳輸。在一些實例中,單個符合HTML文件充當用於追蹤之任何存取之共同起始點。因此,初始播放、搜尋或其他此類操作不需要HTML「頁面刷新」。替代地,後續同步及非同步樣本中包含之額外資訊可漸進地堆積初始頁面。
網頁資源解碼區塊可使用以上樣本之id屬性之首碼(其中首碼為例如「urn:mpeg:webresource:sync:」或「urn:mpeg:webresource: nonsync:」)以在同步樣本與非同步樣本之間進行區分。因此,網頁資源解碼區塊可移除首碼,而非解囊封單元50。
本發明之技術亦基於網頁資源追蹤及初始條目介面支持應用程式之創建。基於網頁之條目介面可形成應用程式之部分,其中使用者選擇播放交互式串流。介面可含有JavaScript服務人員,其負責使用如其角色所定義之樣本,如上文所論述。
本發明之技術亦允許網頁相關檔案之帶內遞送。亦即,此等技術可允許網頁資源追蹤之樣本提供用於顯現網頁的側資料(圖標、影像、CSS等),且特定而言,在內容提供商期望時允許此側資料帶內遞送。根據本發明之技術,可藉由直接嵌入網頁之HTML中的網頁之相關資料(影像、CSS等)來實現網頁相關檔案之帶內遞送。舉例而言,影像可直接嵌入HTML中。此嵌入可不利地影響壓縮效率,但考慮到交互式網頁之通常大小並非在很大程度上影響。舉例而言,嵌入HTML中之JPEG壓縮影像之六十四進制(base64)表示可大於初始JPEG檔案。然而,更多測試及評估可基於目標使用案例提供決定性答案。此外,藉由以此方式嵌入相關資料,不需要解析相關聯資源之相對路徑(不需要解析相對文件夾,等)。因此,此等嵌入技術可減少處理要求且減少輸送網頁資料之潛時。
圖2為更詳細地說明圖1之擷取單元52之實例組件集合之方塊圖。在此實例中,擷取單元52包括eMBMS中間軟體單元100、DASH用戶端110及媒體應用程式112。
在此實例中,eMBMS中間軟體單元100進一步包括eMBMS接收單元106、快取記憶體104及代理伺服器單元102。在此實例中,eMBMS接收單元106經組態以經由eMBMS接收資料,例如根據http://tools.ietf.org/html/rfc6726可獲得的2012年11月T. Paila等人,「FLUTE-File Delivery over Unidirectional Transport」網路工作小組,RFC 6726中所描述之經由單向輸送之檔案遞送(File Delivery over Unidirectional Transport (FLUTE) )。亦即,eMBMS接收單元106可經由來自例如伺服器裝置60之廣播接收檔案,伺服器裝置60可充當廣播/多播服務中心(BM-SC)。
在eMBMS中間軟體單元100接收檔案之資料時,eMBMS中間軟體單元可將所接收之資料儲存於快取記憶體104中。快取記憶體104可包含電腦可讀儲存媒體,諸如快閃記憶體、硬碟、RAM或任何其他合適的儲存媒體。
代理伺服單元102可充當用於DASH用戶端110之伺服器。舉例而言,代理伺服單元102可將MPD檔案或其他資訊清單檔案提供至DASH用戶端110。代理伺服單元102可通告用於MPD檔案中之區段的可用性時間,以及可擷取區段之超鏈接。此等超鏈接可包括對應於用戶端裝置40之本端主機位址首碼(例如,IPv4之127.0.0.1)。以此方式,DASH用戶端110可使用HTTP GET或部分GET請求自代理伺服器單元102請求區段。舉例而言,對於可自鏈接http://127.0.0.1/rep1/seg3獲得之區段,DASH用戶端110可建構包括針對http://127.0.0.1/rep1/seg3之請求的HTTP GET請求,且將請求提交至代理伺服器單元102。代理伺服器單元102可自快取記憶體104擷取所請求之資料且回應於此等請求而將資料提供至DASH用戶端110。
圖3為說明實例多媒體內容120之元素的概念圖。多媒體內容120可對應於多媒體內容64 (圖1),或對應於儲存於儲存媒體62中之另一多媒體內容。在圖3之實例中,多媒體內容120包括媒體呈現描述(MPD) 122及複數個表示124A至124N (表示124)。表示124A包括可選標頭資料126及區段128A至128N (區段128),而表示124N則包括可選標頭資料130及區段132A至132N (區段132)。為了方便起見,使用字母N來指定表示124中之每一者中的最後一個電影片段。在一些實例中,表示124之間可存在不同數目之電影片段。
MPD 122可包含與表示124分開之資料結構。MPD 122可對應於圖1之資訊清單檔案66。同樣地,表示124可對應於圖1之表示68。一般而言,MPD 122可包括大體描述表示124之特性的資料,諸如,寫碼及顯現特性、調適集、MPD 122對應之設定檔、文字類型資訊、攝影機角度資訊、分級資訊、特技模式資訊(例如,指示包括時間子序列之表示的資訊)及/或用於擷取遠端週期(例如,用於在播放期間至媒體內容內的目標化之廣告插入)之資訊。
標頭資料126 (當存在時)可描述區段128之特性,例如,隨機存取點(RAP,其亦被稱作串流存取點(SAP))之時間位置、區段128中之哪一者包括隨機存取點、與區段128內之隨機存取點之位元組偏移、區段128之統一資源定位符(URL),或區段128之其他態樣。標頭資料130 (當存在時)可描述區段132之相似特性。另外或可替代地,此等特性可完全包括於MPD 122內。
區段128、132包括一或多個經寫碼視訊樣本,其中之每一者可包括視訊資料之訊框或圖塊。區段128之經寫碼視訊樣本中之每一者可具有類似特性,例如,高度、寬度及頻寬要求。此類特性可藉由MPD 122之資料來描述,儘管此資料在圖3之實例中未說明。MPD 122可包括如3GPP規範所描述之特性,同時添加了本發明中所描述的發信資訊中之任一者或全部。
區段128、132中之每一者可與唯一的統一資源定位符(URL)相關聯。因此,區段128、132中之每一者可使用串流網路協定(諸如DASH)來獨立地擷取。以此方式,諸如用戶端裝置40之目的地裝置可使用HTTP GET請求來擷取區段128或132。在一些實例中,用戶端裝置40可使用HTTP部分GET請求來擷取區段128或132之特定位元組範圍。
圖4為說明實例視訊檔案150之元素的方塊圖,該實例視訊檔案可對應於表示之區段,諸如,圖3之區段114、124中之一者。區段128、132中之每一者可包括實質上符合圖4之實例中所說明之資料之佈置的資料。視訊檔案150可稱為囊封區段。如上所述,根據ISO基礎媒體檔案格式及其擴展的視訊檔案將資料儲存於一系列對象(稱為「方塊」)中。在圖4之實例中,視訊檔案150包括檔案類型(FTYP)方塊152、電影(MOOV)方塊154、區段索引(sidx)方塊162、電影片段(MOOF)方塊164及電影片段隨機存取(MFRA)方塊166。雖然圖4表示視訊檔案之一實例,但應理解,根據ISO基礎媒體檔案格式及其擴展,其他媒體檔案可包括類似於視訊檔案150之資料結構化的其他類型之媒體資料(例如,音訊資料、計時文字資料或類似者)。
檔案類型(FTYP)方塊152大體描述用於視訊檔案150之檔案類型。檔案類型方塊152可包括識別描述用於視訊檔案150之最佳用途的規範之資料。在各種實例中,檔案類型方塊152可置放於MOOV方塊154、電影片段方塊164及/或MFRA方塊166前。
在一些實例中,諸如視訊檔案150之區段可包括在FTYP方塊152前之MPD更新方塊(未圖示)。MPD更新方塊可包括指示待更新對應於包括視訊檔案150之表示的MPD之資訊,連同用於更新該MPD之資訊。舉例而言,MPD更新方塊可提供待用以更新MPD之資源的URI或URL。作為另一實例,MPD更新方塊可包括用於更新MPD之資料。在一些實例中,MPD更新方塊可緊接在視訊檔案150之區段類型(STYP)方塊(未圖示)之後,其中STYP方塊可定義視訊檔案150之區段類型。
在圖4之實例中,MOOV方塊154包括電影標頭(MVHD)方塊156、追蹤(TRAK)方塊158及一或多個電影擴展(MVEX)方塊160。一般而言,MVHD方塊156可描述視訊檔案150之一般特性。舉例而言,MVHD方塊156可包括描述以下之資料:原先創造視訊檔案150之時間、最後修改視訊檔案150之時間、用於視訊檔案150之時間標度、用於視訊檔案150之播放持續時間或大體描述視訊檔案150之其他資料。
儘管圖4中未示出,但MOOV方塊154可進一步包括「meta」資訊方塊。根據本發明之技術,「meta」資訊方塊可包括不意欲針對追蹤改變的HTML文件之任何部分。因此,用戶端裝置40可判定「meta」資訊方塊中包括之任何網頁內容將不針對視訊檔案150之對應追蹤而改變(例如,為不可變的)。同樣地,內容準備裝置20可建構視訊檔案150以包括用於「meta」資訊方塊中之追蹤之非改變(不可變)網頁內容。
TRAK方塊158可包括用於視訊檔案150之追蹤之資料。TRAK方塊158可包括描述對應於TRAK方塊158之追蹤的特性之追蹤標頭(TKHD)方塊。在一些實例中,TRAK方塊158可包括經寫碼視訊圖像,而在其他實例中,該追蹤之經寫碼視訊圖像可包括於電影片段164中,電影片段可由TRAK方塊158及/或sidx方塊162之資料參考。
在一些實例中,視訊檔案150可包括一個以上追蹤。因此,MOOV方塊154可包括等於視訊檔案150中的追蹤之數目的數個TRAK方塊。TRAK方塊158可描述視訊檔案150之對應追蹤之特性。舉例而言,TRAK方塊158可描述用於對應追蹤之時間及/或空間資訊。當囊封單元30 (圖3)包括視訊檔案(諸如,視訊檔案150)中之參數集追蹤時,類似於MOOV方塊154之TRAK方塊158的TRAK方塊可描述參數集追蹤之特性。囊封單元30可在描述參數集追蹤之TRAK方塊內傳信序列層級SEI訊息存在於參數集追蹤中。
MVEX方塊160可描述對應電影片段164之特性,例如,發信視訊檔案150除包括MOOV方塊154 (若存在)內之視訊資料之外亦包括電影片段164。在串流傳輸視訊資料之上下文中,經寫碼視訊圖像可包括於電影片段164中,而非在MOOV方塊154中。因此,所有經寫碼視訊樣本可包括於電影片段164中,而非在MOOV方塊154中。
MOOV方塊154可包括等於視訊檔案150中的電影片段164之數目的數個MVEX方塊160。MVEX方塊160中之每一者可描述電影片段164中之一對應者的特性。舉例而言,每一MVEX方塊可包括描述用於電影片段164中之該對應者的時距之電影擴展標頭方塊(MEHD)方塊。
如上文所提到,囊封單元30可儲存視訊樣本中之序列資料集,其並不包括實際經寫碼視訊資料。視訊樣本可大體上對應於存取單元,其為特定時間執行個體下之經寫碼圖像之表示。在AVC之上下文中,經寫碼圖像包括一或多個VCL NAL單元,其含有用以建構存取單元之所有像素的資訊,及其他相關聯的非VCL NAL單元(諸如SEI訊息)。因此,囊封單元30可在電影片段164中之一者中包括序列資料集,其可包括序列層級SEI訊息。囊封單元30可進一步將序列資料集及/或序列層級SEI訊息之存在發信號為存在於MVEX方塊160中之對應於電影片段164中之一者的一者內的電影片段164中之一者中。
SIDX方塊162為視訊檔案150之可選元素。亦即,符合3GPP檔案格式之視訊檔案或其他此等檔案格式未必包括SIDX方塊162。根據3GPP檔案格式之實例,SIDX方塊可用以識別一區段(例如,視訊檔案150內含有之一區段)之子區段。3GPP檔案格式將子區段定義為「具有一或多個對應媒體資料方塊及含有藉由電影片段方塊引用之資料的媒體資料方塊的一或多個連續電影片段方塊之自含式集合,必須跟在電影片段方塊之後,並在含有關於同一軌道之資訊的下一個電影片段方塊之前」。3GPP檔案格式亦指示SIDX方塊「含有對由方塊記錄之(子)區段之子區段參考的序列。所參考之子區段在呈現時間上連續。相似地,由區段索引方塊參考之位元組始終在區段內連續。所參考大小給出所參考材料中之位元組之數目的計數」。
SIDX方塊162大體提供表示視訊檔案150中包括的區段之一或多個子區段之資訊。舉例而言,此類資訊可包括子區段開始及/或結束之播放時間、子區段之位元組偏移、該等子區段是否包括(例如,開始於)串流存取點(SAP)、SAP之類型(例如,SAP為瞬時解碼器再新(IDR)圖像、清潔隨機存取(CRA)圖像、斷鏈存取(BLA)圖像還是類似者)、子區段中的SAP (就播放時間及/或位元組偏移而言)之位置及類似者。
電影片段164可包括一或多個經寫碼視訊圖像。在一些實例中,電影片段164可包括一或多個圖像群組(GOP),其中之每一者可包括數個經寫碼視訊圖像,例如訊框或圖像。另外,如上文所描述,在一些實例中,電影片段164可包括序列資料集。電影片段164中之每一者可包括電影片段標頭方塊(MFHD,圖4中未展示)。MFHD方塊可描述對應電影片段之特性,諸如電影片段之序號。電影片段164可按序列號次序包括於視訊檔案150中。
MFRA方塊166可描述在視訊檔案150之電影片段164內的隨機存取點。此可輔助執行特技模式,諸如,執行對在由視訊檔案150囊封之區段內的特定時間位置(亦即,播放時間)之搜尋。在一些實例中,MFRA方塊166通常可選,且不需要包括於視訊檔案中。同樣地,諸如用戶端裝置40之用戶端裝置未必需要參考MFRA方塊166來正確地解碼及顯示視訊檔案150之視訊資料。MFRA方塊166可包括等於視訊檔案150之追蹤之數目或在一些實例中等於視訊檔案150之媒體追蹤(例如,非提示追蹤)之數目的數個追蹤片段隨機存取(TFRA)方塊(未圖示)。
在一些實例中,電影片段164可包括一或多個串流存取點(SAP),諸如IDR圖像。同樣地,MFRA方塊166可提供對SAP在視訊檔案150內之位置的指示。因此,視訊檔案150之時間子序列可由視訊檔案150之SAP形成。時間子序列亦可包括其他圖像,諸如依賴於SAP之P訊框及/或B訊框。時間子序列之訊框及/或圖塊可配置於區段內,以使得時間子序列的取決於子序列之其他訊框/圖塊之訊框/圖塊可被恰當地解碼。舉例而言,在資料之階層式配置中,用於其他資料之預測的資料亦可包括於時間子序列中。
圖5為說明網頁資源之實例通用假設處理模型180的概念圖。當媒體播放器(諸如圖1之用戶端裝置40之媒體播放器,其可包括擷取單元52、解囊封單元50、音訊解碼器46及視訊解碼器48之部分)與網頁引擎(圖1中未示出)整合時,圖5之處理模型180可適用。在彼情況下,媒體播放器處理ISO BMFF檔案、提取串流樣本及項目且同步地處理串流樣本。媒體播放器可具現化網頁引擎以處理網頁追蹤。媒體播放器可隨後在訊框精確顯現之情況下合併經解碼視訊資料及顯現的網頁引擎資料以用於最終顯示。
處理模型180之另一版本可在起始時藉由加載一些網頁內容(例如,HTML頁面)且在彼頁面加載時藉由媒體內容(例如,使用視訊及/或音訊標籤)而適用。
圖5之處理模型180包括媒體播放器182,媒體播放器182接收ISO BMFF檔案200以及音訊輸出端196及視訊輸出端198。媒體播放器182包括檔案/片段解囊封單元184、音訊解碼單元186、視訊解碼單元188、網頁資源解碼單元190、音訊顯現單元192及視訊顯現單元194。檔案/片段解囊封單元184解封裝ISO BMFF 檔案200,且將經編碼音訊資料202分配給音訊解碼單元186,將經編碼視訊資料204分配給視訊解碼單元188以及將經編碼網頁資源資料206分配給網頁資源解碼單元190。音訊解碼單元186將經解碼音訊資料202'傳遞給音訊顯現單元192。視訊解碼單元188將經解碼視訊資料204'傳遞至視訊顯現單元194。網頁資源解碼單元190將經解碼網頁資源資料206'傳遞至視訊顯現單元194。
音訊顯現單元192顯現經解碼音訊資料202',且將經顯現音訊資料202"傳遞至音訊輸出端196,音訊輸出端196可對應於說話者(例如,揚聲器及/或頭戴式耳機,或其他音訊呈現裝置)。視訊顯現單元194同時顯現經解碼音訊資料204'及經解碼網頁資源資料206',且將經顯現視訊及網頁內容208傳遞至視訊輸出端198,視訊輸出端198可對應於顯示器。媒體播放器182亦可經由一或多個使用者介面裝置(例如,包括交互式觸控式螢幕顯示器,諸如視訊輸出端210,或其他裝置,諸如鍵盤、滑鼠或類似者)接收定義與網頁內容之互動的互動性資料210,並將此資料提供給網頁資源解碼單元190。
圖5之元件可通常對應於用戶端裝置40之元件(圖1)。舉例而言,檔案/片段解囊封單元184可對應於解囊封單元50,音訊解碼單元186可對應於音訊解碼器46,視訊解碼單元188及網頁資源解碼單元190可對應於視訊解碼器48,音訊顯現單元192可對應於音訊輸出端42之元件,且視訊顯現單元194可對應於視訊輸出端44之元件(或圖1中未示出的用戶端裝置40之其他單元)。可替代地,網頁資源解碼單元190可對應於圖1中未示出的用戶端裝置40之網頁資源解碼器。
概念地,在一些實例中,檔案解囊封單元184可提取儲存為ISO BMFF檔案200中之項目的所有資源,且將此等項目置放在網頁資源解碼單元190之快取記憶體中,使用item_name作為對應項目之URL。此等資源隨後可用於由網頁引擎起始之下載(諸如使用XmlHttpRequest或Fetch APIs)。當藉由將MetaBoxes放入片段中漸進地遞送項目時,此可適用於即使在使用ISO BMFF片段串流之情況。
相同內容可使用上文所述之兩個實例處理模型中之任一個。應注意,在彼樣本之呈現時間可獲得JavaScript追蹤之樣本中包含的JavaScript代碼之執行結果,且類似地,在彼樣本之呈現時間完成HTML疊加追蹤樣本中包含的HTML之顯現。具體實施可考慮處理延遲以實現同步,且可預取未嵌入檔案中的資源。
作為一實例,ISO BMFF檔案可包括用於播放視訊內容的嵌入HTML進入點。對於此實例,假定網頁內容由以下HTML文件組成(嵌入ISOBMFF檔案內部):
<!DOCTYPE html>
<html>
<head>
<script id="initScript">
//The following script is the entry point script.
//A simple example with 2 samples, the first one is a sync sample and the second one non-sync sample
sampleCount = 2;
sampleDelta = 3000;
//Does 2 things: starts a "processing" method that contains the logic to update the page based on data from sync and non-sync samples.
function init()
{
process();
function process()
{
//The logic to update the page based on data from sync and non-sync samples.
updatePageUsingSampleData();
//Some example logic to call sample logic, application dependent
setTimeout(function(){sample0()}, 0);
}
document.getElementById("heading").innerHTML="Initialized";
}
</script>
</head>
<body onload="init()">
<h1 id="heading">Test Page</h1>
</body>
<!DOCTYPE html>
<html>
<head>
<script id="initScript">
//The following script is the entry point script.
//A simple example with 2 samples, the first one is a sync sample and the second one non-sync sample
sampleCount = 2;
sampleDelta = 3000;
//Does 2 things: starts a "processing" method that contains the logic to update the page based on data from sync and non-sync samples.
function init()
{
process();
function process()
{
//The logic to update the page based on data from sync and non-sync samples.
updatePageUsingSampleData();
//Some example logic to call sample logic, application dependent
setTimeout(function(){sample0()}, 0);
}
document.getElementById("heading").innerHTML="Initialized";
}
</script>
</head>
<body onload="init()">
<h1 id="heading">Test Page</h1>
</body>
圖6為說明根據本發明之技術的實例動態HTML資料及資料模型220之程序描述的概念圖。特定而言,圖6描繪包含於電影及追蹤標頭(在「moov」方塊222下方)中且作為同步樣本224及非同步樣本226之資料之各種片段的資料模型之實例。擷取單元52之網頁瀏覽器(未示出)可加載初始HTML符合性網頁。初始HTML符合頁面可含有處理邏輯以利用同步樣本、冗餘同步樣本及非同步樣本中包含的資料,除攜載用於追蹤之共同資料。
圖7為說明實例網頁資源程序模型230的流程圖。特定而言,圖7之程序模型230可與圖6之資料模型220一起使用。此簡圖省去對應的多媒體(音訊及視訊)追蹤處理,但預期顯現與媒體同步。由於此程序模型之許多另外變化是可能的,因此省去此等細節(例如,其中視聽追蹤資料處理亦可由互動性追蹤中攜載之內容/邏輯處置)。
在此實例中,在終端(例如,圖1之用戶端裝置40)執行兩個動作以開始處理。首先,動態HTML5追蹤處理常式234自網頁資源追蹤232之初始「moov」/「meta」方塊提取初始HTML文件(初始網頁),並將初始HTML文件置放在裝置內部網頁伺服器236 (例如,圖2之代理伺服器102)或快取記憶體(例如,圖2之快取記憶體104)上。隨後,網頁引擎(例如,圖2之DASH用戶端110或另一網頁瀏覽器(圖2中未示出))接收指向此頁面之資料。以上兩個步驟可由另一邏輯(未由有關的網頁資源追蹤攜載)在終端處執行。此可(例如)為讓使用者選擇播放內容的主要應用程式或網頁。在此情況下,有關的內容含有上述網頁資源追蹤,其可藉由使用例如I訊框嵌入主要網頁中。
在網頁引擎接收裝置內部網頁伺服器236中指向網頁238之資料之後,處理之其餘部分可經由網頁資源追蹤樣本攜載之邏輯自動化。由網頁資源追蹤攜載之樣本可由初始HTML網頁使用XHR 240提取及/或使用網路套接字242推送至HTML網頁238,如圖7中所示。此邏輯可含有將樣本自內部網頁伺服器236 (使用XHR)及/或自網路套接字242加載至初始DOM中及使用如上文指定之位置資訊合適地利用資料的功能。在一些實例中,此邏輯亦可含有在終端處執行額外功能的其他邏輯。
(潛在地冗餘)同步及非同步樣本之內容可為JavaScript代碼之片段。在一個實例中,樣本類型之間的區別為可將來自非同步樣本之資料添加至DOM,而同步樣本中之資料可替換DOM中之對應資料。下文展示此可如何實現之實例:
1. 同步樣本為意欲替換相同類型(亦即,具有共同類型)且具有相同id之現有HTML元素之HTML元素。其id設定為「urn:mpeg:webresource:sync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:sync:」應在使用此元素之前由用戶端應用程式自id移除。
a. 若相同類型之元素存在於DOM中,則此元素替換現有元素。
b. 若此類型之多個元素存在於DOM中,則
i.此元素替換具有相同<id>之DOM中之元素。
ii.若此元素不含有<id>,則所有相同類型之元素用此元素來替換。
2. 非同步樣本為添加至HTML本體之HTML元素。其id設定為「urn:mpeg:webresource:nonsync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:nonsync:」應在使用此元素之前由用戶端應用程式自id移除。
1. 同步樣本為意欲替換相同類型(亦即,具有共同類型)且具有相同id之現有HTML元素之HTML元素。其id設定為「urn:mpeg:webresource:sync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:sync:」應在使用此元素之前由用戶端應用程式自id移除。
a. 若相同類型之元素存在於DOM中,則此元素替換現有元素。
b. 若此類型之多個元素存在於DOM中,則
i.此元素替換具有相同<id>之DOM中之元素。
ii.若此元素不含有<id>,則所有相同類型之元素用此元素來替換。
2. 非同步樣本為添加至HTML本體之HTML元素。其id設定為「urn:mpeg:webresource:nonsync:<id>」,其中<id>為視情況增加之字串。字串首碼「urn:mpeg:webresource:nonsync:」應在使用此元素之前由用戶端應用程式自id移除。
在另一實例中,若藉由初始網頁在初始播出時(例如,作為搜尋/播放/調入之結果)使用同步樣本,則應僅加載單個此樣本。應考慮幾個實施態樣。
針對使用輪詢機制經由XHR提取,JavaScript樣本可攜載樣本帶內持續時間作為處理邏輯將使用的輪詢持續時間,而不管更多的技術,如HTTP 2.0伺服器端推之使用。
下文給出HTML代碼實例,其中針對單個同步及非同步樣本嵌入樣本代碼。為簡單起見,其不含有加載樣本之所需處理邏輯。
<!DOCTYPE html>
<html>
<head>
<script id="initScript">
//The following script is the entry point script.
//A simple example with 2 samples, the first one is a sync sample and the second one non-sync sample
//This data is for the "process" module, not being fully used right now. Rather the methods are called synchronously.
sampleCount = 2;
sampleDelta = 3000;
//Does 2 simple things: starts a "processing" method that contains the logic to update the page based on data from sync and non-sync samples.
function init()
{
process();
function process()
{
//To do: Required: the logic to update the page based on data from sync and non-sync samples.
//Some example logic to call sample logic, application dependent
setTimeout(function(){sample0()}, 0);
}
document.getElementById("heading").innerHTML="Initialized";
}
</script>
<script id="sample0">
//Simply display text and trigger the second sample with a timeout.
function sample0()
{
document.getElementById("heading").innerHTML="Sync Sample";
setTimeout(function(){sample1()}, sampleDelta);
}
</script>
<script id="sample1">
//Non-sync sample, change the text.
function sample1()
{
document.getElementById("heading").innerHTML="Updated";
console.log("Done");
}
</script>
</head>
<body onload="init()">
<h1 id="heading">Test Page</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<script id="initScript">
//The following script is the entry point script.
//A simple example with 2 samples, the first one is a sync sample and the second one non-sync sample
//This data is for the "process" module, not being fully used right now. Rather the methods are called synchronously.
sampleCount = 2;
sampleDelta = 3000;
//Does 2 simple things: starts a "processing" method that contains the logic to update the page based on data from sync and non-sync samples.
function init()
{
process();
function process()
{
//To do: Required: the logic to update the page based on data from sync and non-sync samples.
//Some example logic to call sample logic, application dependent
setTimeout(function(){sample0()}, 0);
}
document.getElementById("heading").innerHTML="Initialized";
}
</script>
<script id="sample0">
//Simply display text and trigger the second sample with a timeout.
function sample0()
{
document.getElementById("heading").innerHTML="Sync Sample";
setTimeout(function(){sample1()}, sampleDelta);
}
</script>
<script id="sample1">
//Non-sync sample, change the text.
function sample1()
{
document.getElementById("heading").innerHTML="Updated";
console.log("Done");
}
</script>
</head>
<body onload="init()">
<h1 id="heading">Test Page</h1>
</body>
</html>
圖8為說明用於執行本發明之技術之實例方法的流程圖。參照根據圖5之資料模型180組態的裝置來解釋圖8之方法,然而應理解,其他裝置可經組態以執行此方法或類似方法。舉例而言,圖1之用戶端裝置40可經組態以執行此等技術。
初始地,包括媒體播放器182之裝置擷取ISO BMFF檔案(300)。ISO BMFF檔案包括一或多個樣本,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素。HTML元素可包括(例如) JavaScript元素,其可更新HTML內容以供顯示。
另外,裝置擷取媒體資料(302),諸如音訊及視訊資料。在一些實例中,媒體資料可包括在包括HTML元素之ISO BMFF檔案中,以使得擷取ISO BMFF檔案包括擷取HTML元素及媒體資料兩者。在其他實例中,媒體資料可包括在一或多個檔案中,該一或多個檔案與包括HTML元素之ISO BMFF檔案不同。
檔案解囊封單元184可隨後自ISO BMFF檔案提取HTML元素(304)。在ISO BMFF檔案包括媒體資料(例如,音訊及/或視訊資料)之實例中,檔案解囊封單元184亦可自ISO BMFF檔案提取媒體資料。檔案解囊封單元184可向各別解碼器提供該媒體資料。舉例而言,檔案解囊封單元184可向音訊解碼單元186提供經編碼音訊資料202,向視訊解碼單元188提供經編碼視訊資料204以及向網頁資源解碼單元190提供經編碼網頁資源資料206。各種解碼單元可隨後解碼經編碼資料,並將經解碼資料傳遞至各別顯現單元。舉例而言,音訊解碼單元186可將經解碼音訊資料202'傳遞至音訊顯現單元192,視訊解碼單元188可將經解碼視訊資料204'傳遞至視訊顯現單元194,且網頁資源解碼單元190可將經解碼網頁資源資料206'傳遞至視訊顯現單元194。
視訊顯現單元194可隨後顯現(經解碼網頁資源資料206'之)網頁內容及與網頁內容對應的視訊資料(308)。舉例而言,視訊顯現單元194可判定與對應視訊資料一起呈現的網頁內容(例如)作為視訊資料之一或多個訊框之部分,且顯現包括視訊資料及對應網頁內容之圖像。另外,音訊顯現單元192可顯現經解碼音訊資料202'。視訊顯現單元194向視訊輸出端198提供經顯現視訊及網頁內容208,而音訊顯現單元192向音訊輸出端196提供經顯現音訊資料。
最後,視訊輸出端198可呈現經同步顯現的視訊資料及網頁內容208 (310)。亦即,由於由(例如)視訊顯現單元194同步執行,視訊資料及網頁內容可同步。
以此方式,圖8之方法表示方法之實例,該方法包括:擷取包括一或多個樣本之ISO基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;自該檔案之樣本提取HTML元素;以及處理該等HTML元素以呈現動態網頁內容。
在一或多個實例中,所描述功能可以硬體、軟體、韌體或其任何組合來實施。若以軟體實施,則該等功能可作為一或多個指令或程式碼而儲存於電腦可讀媒體上或經由電腦可讀媒體進行傳輸,且藉由基於硬體之處理單元執行。電腦可讀媒體可包括電腦可讀儲存媒體(其對應於諸如資料儲存媒體之有形媒體)或通信媒體,該通信媒體包括(例如)根據通信協定促進電腦程式自一處傳送至另一處的任何媒體。以此方式,電腦可讀媒體通常可對應於(1)非暫時性之有形電腦可讀儲存媒體,或(2)諸如信號或載波之通信媒體。資料儲存媒體可為可由一或多個電腦或一或多個處理器存取以擷取用於實施本發明中所描述之技術之指令、程式碼及/或資料結構的任何可用媒體。電腦程式產品可包括電腦可讀媒體。
作為實例而非限制,此類電腦可讀儲存媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置、快閃記憶體或可用以儲存呈指令或資料結構形式之所要程式碼且可由電腦存取的任何其他媒體。又,任何連接被適當地稱為電腦可讀媒體。舉例而言,若使用同軸纜線、光纜、雙絞線、數位用戶線(DSL)或無線技術(諸如紅外線、無線電及微波)自網站、伺服器或其他遠端源傳輸指令,則同軸纜線、光纜、雙絞線、DSL或無線技術(諸如紅外線、無線電及微波)包括於媒體之定義中。然而,應理解,電腦可讀儲存媒體及資料儲存媒體不包括連接、載波、信號或其他暫時性媒體,而實情為關於非暫時性有形儲存媒體。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位多功能光碟(DVD)、軟性磁碟及藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟用雷射以光學方式再現資料。以上各者之組合亦應包括於電腦可讀媒體之範疇內。
可藉由諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式化邏輯陣列(FPGA)或其他等效積體或離散邏輯電路之一或多個處理器來執行指令。因此,如本文所用之術語「處理器」可指代前述結構或適用於實施本文中所描述之技術的任何其他結構中之任一者。此外,在一些態樣中,本文中所描述之功能可設置於經組態用於編碼及解碼或併入經合併之編解碼器之專用硬體及/或軟體模組內。此外,該等技術可完全實施於一或多個電路或邏輯元件中。
本發明之技術可實施於廣泛多種裝置或設備中,包括無線手持機、積體電路(IC)或IC集合(例如,晶片集合)。在本發明中描述各種組件、模組或單元以強調經組態以執行所揭示技術之裝置的功能態樣,但未必需要藉由不同硬體單元來實現。確切地說,如上文所描述,可將各種單元組合於編解碼器硬體單元中,或藉由互操作性硬體單元(包括如上文所描述之一或多個處理器)之集合而結合合適軟體及/或韌體來提供該等單元。
各種實例已予以描述。此等及其他實例在以下申請專利範圍之範疇內。
10‧‧‧實例系統
20‧‧‧內容準備裝置
22‧‧‧音訊源
24‧‧‧視訊源
26‧‧‧音訊編碼器
28‧‧‧視訊編碼器
30‧‧‧囊封單元
32‧‧‧輸出介面
40‧‧‧用戶端裝置
42‧‧‧音訊輸出端
44‧‧‧視訊輸出端
46‧‧‧音訊解碼器
48‧‧‧視訊解碼器
50‧‧‧解囊封單元
52‧‧‧擷取單元
54‧‧‧網路介面
60‧‧‧伺服器裝置
62‧‧‧儲存媒體
64‧‧‧多媒體內容
66‧‧‧資訊清單檔案
68A‧‧‧表示
68N‧‧‧表示
70‧‧‧請求處理單元
72‧‧‧網路介面
74‧‧‧網路
100‧‧‧eMBMS中間軟體單元
102‧‧‧代理伺服器單元
104‧‧‧快取記憶體
106‧‧‧eMBMS接收單元
110‧‧‧DASH用戶端
112‧‧‧媒體應用程式
120‧‧‧多媒體內容
122‧‧‧媒體呈現描述
124A‧‧‧表示
124N‧‧‧表示
126‧‧‧標頭資料
128A‧‧‧區段
128B‧‧‧區段
128N‧‧‧區段
132A‧‧‧區段
132B‧‧‧區段
132N‧‧‧區段
150‧‧‧視訊檔案
152‧‧‧檔案類型方塊
154‧‧‧電影方塊
156‧‧‧電影標頭方塊
158‧‧‧TRAK方塊
160‧‧‧MVEX方塊
162‧‧‧區段索引方塊
164‧‧‧電影片段方塊
166‧‧‧電影片段隨機存取方塊
180‧‧‧處理模型
182‧‧‧媒體播放器
184‧‧‧檔案/片段解囊封單元
186‧‧‧音訊解碼單元
188‧‧‧視訊解碼單元
190‧‧‧網頁資源解碼單元
192‧‧‧音訊顯現單元
194‧‧‧視訊顯現單元
196‧‧‧音訊輸出端
198‧‧‧視訊輸出端
200‧‧‧ISO BMFF檔案
202‧‧‧經編碼音訊資料
202'‧‧‧經解碼音訊資料
202"‧‧‧經顯現音訊資料
204‧‧‧經編碼視訊資料
204'‧‧‧經解碼視訊資料
206‧‧‧經編碼網頁資源資料
206'‧‧‧經解碼網頁資源資料
208‧‧‧經顯現視訊及網頁內容
210‧‧‧視訊輸出端
220‧‧‧資料模型
222‧‧‧moov方塊
224‧‧‧同步樣本
226‧‧‧非同步樣本
230‧‧‧程序模型
232‧‧‧網頁資源追蹤
234‧‧‧動態HTML5追蹤處理常式
236‧‧‧裝置內部網頁伺服器
238‧‧‧HTML網頁
240‧‧‧XHR
242‧‧‧網路套接字
300‧‧‧步驟
302‧‧‧步驟
304‧‧‧步驟
306‧‧‧步驟
308‧‧‧步驟
310‧‧‧步驟
圖1為說明實施用於經由網路串流傳輸媒體資料之技術之實例系統的方塊圖。
圖2為更詳細地說明圖1之組件之實例集合的方塊圖。
圖3為說明實例多媒體內容之元素的概念圖。
圖4為說明實例視訊檔案之元素的方塊圖,該實例視訊檔案可對應於表示之區段。
圖5為說明網頁資源之實例通用假設處理模型的概念圖。
圖6為說明根據本發明之技術的實例動態HTML資料及程序模型描述的概念圖。
圖7為說明實例網頁資源程序模型的流程圖。
圖8為說明用於執行本發明之技術之實例方法的流程圖。
Claims (50)
- 一種處理媒體資料之方法,該方法包含: 擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素; 自該檔案之該等樣本提取該等HTML元素;以及 處理該等HTML元素以呈現該動態網頁內容。
- 如請求項1之方法,其中該等HTML元素包含用於更新該等HTML元素之HTML內容的JavaScript元素。
- 如請求項1之方法,其中該檔案包含包括一網頁資源追蹤之一分段ISO BMFF檔案,該網頁資源追蹤包括該等HTML元素。
- 如請求項1之方法,其中呈現該媒體資料包含回應於該等HTML元素之HTML內容之更新來更新該等HTML元素之一呈現。
- 如請求項1之方法,其進一步包含: 自該檔案之一初始電影(MOOV)方塊之一後設資訊方塊提取HTML內容;以及 回應於自該後設資訊方塊提取該HTML內容來判定該提取的HTML內容為不可變的。
- 如請求項1之方法,其進一步包含:當該樣本之一標識符之前為「urn:mpeg:webresource:sync:」時,判定該等HTML元素之一樣本為一同步樣本。
- 如請求項6之方法,其進一步包含自該標識符移除「urn:mpeg:webresource:sync:」。
- 如請求項6之方法,其中該樣本具有一類型,且其中該樣本包含一新元素,該方法進一步包含: 判定該類型之一現有元素存在於該檔案之一文件目標模型(DOM)中;以及 回應於該判定,使用該DOM中之該新元素來替換該現有元素。
- 如請求項6之方法,其中該樣本具有一類型,且其中該樣本包含一新元素,該方法進一步包含: 判定該類型之複數個現有元素存在於該檔案之一文件目標模型(DOM)中;以及 回應於該判定: 判定該等現有元素中之一者之一標識符等於該新元素之該標識符;以及 使用該DOM中之該新元素來替換該等現有元素中之該一者。
- 如請求項6之方法,其中該樣本具有一類型,且其中該樣本包含一新元素,該方法進一步包含: 判定該類型之複數個現有元素存在於該檔案之一文件目標模型(DOM)中;以及 回應於該判定: 判定該新元素之該標識符不包括繼「urn:mpeg:webresource:sync:」之後之任何資料;以及 回應於該判定,使用該DOM中之該新元素來替換該類型之該等現有元素中之每一者。
- 如請求項6之方法,其中呈現包含使用該樣本來更新該動態網頁內容之一網頁之至少一部分。
- 如請求項1之方法,其進一步包含:當該樣本之一標識符之前為「urn:mpeg:webresource:nonsync:」時,判定該等HTML元素之一樣本為一非同步樣本。
- 如請求項12之方法,其進一步包含自該標識符移除「urn:mpeg:webresource:nonsync:」。
- 如請求項12之方法,其中呈現包含將額外內容自該非同步樣本添加至該等HTML元素之一網頁。
- 如請求項1之方法,其中呈現包含: 判定該等HTML元素之樣本是同步樣本抑或非同步樣本;以及 將指示該等樣本是同步樣本抑或非同步樣本的該等樣本及資料轉發至一媒體呈現應用之一JavaScript服務人員。
- 如請求項1之方法,其進一步包含: 判定該等HTML元素參考用於顯現該等HTML元素之一網頁的一或多個側資料元素;以及 自該等HTML元素之HTML資料提取該等側資料元素,其中該等側資料元素與該等HTML元素經帶內提供。
- 如請求項16之方法,其中該等側資料元素包括一影像,且其中提取包含自該等HTML元素之該HTML資料提取該影像之一六十四進制(base64)表示。
- 如請求項1之方法,其中該檔案包括一動態HTML5追蹤,該動態HTML5追蹤包括該等HTML元素。
- 如請求項1之方法,其中該檔案包括「dhtm」之一值以傳信一或多個追蹤之存在,其約束包括該等追蹤之一追蹤處理常式為「text」,該等追蹤之一樣本項格式為「stxt」,一mime_format欄位經設定為「text/html」或「application/xhtml+xml」,且一content_encoding欄位含有根據HTTP之內容編碼標頭允許的一空串或一值。
- 如請求項1之方法,其中該檔案包括一初始HTML符合頁面、一或多個同步樣本及一或多個非同步樣本。
- 如請求項20之方法,其中該檔案包括該檔案之一電影「MOOV」方塊中之該初始HTML符合頁面。
- 如請求項20之方法,其中該初始HTML符合頁面包括用於存取該等同步樣本及非同步樣本之一init()功能。
- 如請求項20之方法,其中該方法由一用戶端裝置執行,該方法進一步包含: 由該用戶端裝置自該檔案提取該初始HTML符合頁面; 由該用戶端裝置將該初始HTML符合頁面儲存至該用戶端裝置外部的一網頁伺服器;以及 由該用戶端裝置將指向該初始HTML符合頁面的資料發送至由該用戶端裝置執行的一網頁引擎。
- 如請求項20之方法,其中該等同步及非同步樣本各自包括JavaScript代碼之各別片斷。
- 如請求項20之方法,其中該等同步樣本包含替換一共同類型之現有HTML元素之HTML元素以及標識符,該標識符係根據「urn:mpeg:webresource:sync:<id>」形成的,其中該「<id>」值為視情況選用的,該方法進一步包含在使用該等HTML元素之前自該標識符移除首碼「urn:mpeg:webresource:sync:」。
- 如請求項25之方法,其進一步包含,當一文件目標模型(DOM)包括與該等同步樣本中之一者相同類型之一單個元素時,使用該等同步樣本中之該一者之該元素來替換該DOM中之該元素。
- 如請求項25之方法,其進一步包含,當一文件目標模型(DOM)包括與該等同步樣本中之一者相同類型之多個元素時: 使用具有相同標識符「<id>」之該同步樣本來替換該DOM中之該元素,或 當該元素不具有該視情況選用之「<id>」值時,使用該等同步樣本中之該一者之該元素來替換相同類型之該DOM中之該多個元素中之每一者。
- 如請求項20之方法,其中該等非同步樣本包含添加至一HTML本體之HTML元素,該方法進一步包含: 判定該等HTML元素之標識符為「urn:mpeg:webresource:nonsync:<id>」,其中該「<id>」值為視情況選用的;以及 在使用該等非同步樣本之該等HTML元素之前自該等標識符移除該首碼「urn:mpeg:webresource:nonsync:」。
- 如請求項1之方法,其進一步包含由一用戶端裝置之一網頁瀏覽器自該用戶端裝置之一本地快取或一代理伺服器擷取該等HTML元素之樣本,該網頁瀏覽器由電路中實施之一處理器執行。
- 如請求項29之方法,其中擷取包含經由XMLHttpRequest (XHR)擷取該等樣本。
- 如請求項29之方法,其中擷取包含經由網路套接字(WebSocket)擷取該等樣本。
- 如請求項29之方法,其中該等樣本不遲於在各別樣本解碼時間處可供該網頁瀏覽器使用。
- 如請求項29之方法,其中擷取包含自攜載該等樣本之電影片段中之一或多個檔案格式方塊中包括的資料判定該等樣本之相對URL。
- 如請求項33之方法,其中該等檔案格式方塊包含包括該等對應樣本之相對URL的樣本URL方塊。
- 如請求項29之方法,其中擷取包含使用一模板來請求該等樣本中之一或多者。
- 如請求項35之方法,其中包括該等樣本之一追蹤之一追蹤標頭包括定義待使用一樣本編號取代的一欄位的一模板URL以創建該等樣本之URL,其中擷取包含: 判定待擷取之該等樣本中之一者之一樣本編號; 取代該模板URL之該欄位中之該樣本編號以構建該等樣本中之該一者之一URL;以及 提交指定該經構建URL之一請求以擷取該等樣本中之該一者。
- 如請求項36之方法,其中該追蹤標頭指定一最大樣本編號值,且其中判定該樣本編號包含: 將一先前樣本編號增加至一新樣本編號;以及 計算該樣本編號作為該新樣本編號取模該最大樣本編號值。
- 如請求項36之方法,其中該欄位包含$編號$ ($number$)。
- 如請求項35之方法,其中包括該等樣本之一追蹤之一追蹤標頭包括定義待使用一對應樣本之一解碼時間取代的一欄位的一模板URL以創建該等樣本之URL,其中擷取包含: 判定待擷取之該等樣本中之一者之一解碼時間; 取代該模板URL之該欄位中之該解碼時間以構建該等樣本中之該一者之一URL;以及 提交指定該經構建URL之一請求以擷取該等樣本中之該一者。
- 如請求項39之方法,其中該欄位包含$時間$ ($time$)。
- 如請求項1之方法,其進一步包含自包括該等HTML元素之一檔案之一追蹤之一網頁資源追蹤標頭判定一網路套接字位址。
- 一種用於處理媒體資料之裝置,該裝置包含: 一記憶體,其經組態以儲存包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素;以及 一處理單元,其實施於電路中且經組態以: 擷取該ISO BMFF檔案; 自該檔案之該等樣本提取該等HTML元素;以及 處理該等HTML元素以呈現該動態網頁內容。
- 如請求項42之裝置,其中該等HTML元素包含用於更新該等HTML元素之HTML內容的JavaScript元素。
- 如請求項42之裝置,其中該檔案包含包括一網頁資源追蹤之一分段ISO BMFF檔案,該網頁資源追蹤包括該等HTML元素。
- 一種用於處理媒體資料之裝置,該裝置包含: 用於擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案之構件,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素; 用於自該檔案之該等樣本提取該等HTML元素之構件;以及 用於處理該等HTML元素以呈現該動態網頁內容之構件。
- 如請求項45之裝置,其中該等HTML元素包含用於更新該等HTML元素之HTML內容的JavaScript元素。
- 如請求項45之裝置,其中該檔案包含包括一網頁資源追蹤之一分段ISO BMFF檔案,該網頁資源追蹤包括該等HTML元素。
- 一種其上儲存有指令之電腦可讀儲存媒體,該等指令在執行時使得一處理器進行以下操作: 擷取包括一或多個樣本之一國際標準化組織基礎媒體檔案格式(ISO BMFF)檔案,該一或多個樣本包括定義動態網頁內容之超文字標記語言(HTML)元素; 自該檔案之該等樣本提取該等HTML元素;以及 處理該等HTML元素以呈現該動態網頁內容。
- 如請求項48之電腦可讀儲存媒體,其中該等HTML元素包含用於更新該等HTML元素之HTML內容的JavaScript元素。
- 如請求項48之電腦可讀儲存媒體,其中該檔案包含包括一網頁資源追蹤之一分段ISO BMFF檔案,該網頁資源追蹤包括該等HTML元素。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862619641P | 2018-01-19 | 2018-01-19 | |
US62/619,641 | 2018-01-19 | ||
US201862636701P | 2018-02-28 | 2018-02-28 | |
US62/636,701 | 2018-02-28 | ||
US201862663112P | 2018-04-26 | 2018-04-26 | |
US62/663,112 | 2018-04-26 | ||
US16/250,776 | 2019-01-17 | ||
US16/250,776 US11321516B2 (en) | 2018-01-19 | 2019-01-17 | Processing dynamic web content of an ISO BMFF web resource track |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201933878A true TW201933878A (zh) | 2019-08-16 |
Family
ID=65366002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108102089A TW201933878A (zh) | 2018-01-19 | 2019-01-18 | 處理國際標準化組織基礎媒體檔案格式網頁資源追蹤之動態網頁內容 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11321516B2 (zh) |
EP (1) | EP3741132A1 (zh) |
CN (1) | CN111602406B (zh) |
BR (1) | BR112020014495A2 (zh) |
SG (1) | SG11202006022QA (zh) |
TW (1) | TW201933878A (zh) |
WO (1) | WO2019143938A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11012657B2 (en) * | 2018-06-08 | 2021-05-18 | Lg Electronics Inc. | Method for processing overlay in 360-degree video system and apparatus for the same |
US11301539B2 (en) * | 2019-02-21 | 2022-04-12 | Bank Of America Corporation | Just-in-time front end template generation using logical document object models |
KR102622252B1 (ko) * | 2019-05-27 | 2024-01-08 | 삼성에스디에스 주식회사 | 콘텐츠 전송 장치 및 방법 |
AU2020354368A1 (en) | 2019-09-24 | 2022-04-14 | Huawei Technologies Co., Ltd. | Temporal identifier constraints for SEI messages |
US11303688B2 (en) * | 2019-09-30 | 2022-04-12 | Tencent America LLC | Methods and apparatuses for dynamic adaptive streaming over HTTP |
US11546406B2 (en) * | 2020-04-13 | 2023-01-03 | Tencent America LLC | Media systems and methods including mixed event message tracks |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040106414A (ko) | 2002-04-29 | 2004-12-17 | 소니 일렉트로닉스 인코포레이티드 | 미디어 파일에서 진보된 코딩 포맷의 지원 |
US10382514B2 (en) | 2007-03-20 | 2019-08-13 | Apple Inc. | Presentation of media in an application |
CN101593184B (zh) | 2008-05-29 | 2013-05-15 | 国际商业机器公司 | 自适应地定位动态网页元素的系统和方法 |
WO2014172654A1 (en) | 2013-04-19 | 2014-10-23 | Huawei Technologies Co., Ltd. | Media quality information signaling in dynamic adaptive video streaming over hypertext transfer protocol |
CN105532013B (zh) * | 2013-07-12 | 2018-12-28 | 佳能株式会社 | 利用推送消息控制的自适应数据流传输方法 |
EP2866436A1 (en) | 2013-10-23 | 2015-04-29 | Thomson Licensing | Method and apparatus for transmission and reception of media data |
US9930086B2 (en) | 2013-10-28 | 2018-03-27 | Samsung Electronics Co., Ltd. | Content presentation for MPEG media transport |
US20160337424A1 (en) * | 2015-05-13 | 2016-11-17 | Qualcomm Incorporated | Transferring media data using a websocket subprotocol |
GB2538998A (en) * | 2015-06-03 | 2016-12-07 | Nokia Technologies Oy | A method, an apparatus, a computer program for video coding |
US20160373498A1 (en) * | 2015-06-18 | 2016-12-22 | Qualcomm Incorporated | Media-timed web interactions |
CN105100869B (zh) | 2015-07-13 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 弹幕显示方法及装置 |
US10693936B2 (en) * | 2015-08-25 | 2020-06-23 | Qualcomm Incorporated | Transporting coded audio data |
US10972519B2 (en) | 2015-09-24 | 2021-04-06 | Flir Commercial Systems, Inc. | Real-time video streaming to client video element |
US9854375B2 (en) * | 2015-12-01 | 2017-12-26 | Qualcomm Incorporated | Selection of coded next generation audio data for transport |
CN109076261A (zh) | 2016-02-16 | 2018-12-21 | 诺基亚技术有限公司 | 媒体封装和解封装 |
GB2554877B (en) * | 2016-10-10 | 2021-03-31 | Canon Kk | Methods, devices, and computer programs for improving rendering display during streaming of timed media data |
US20180213294A1 (en) | 2017-01-23 | 2018-07-26 | Ramp Holdings, Inc. | Recovering from gaps in video transmission for web browser-based players |
US10887645B2 (en) | 2017-07-13 | 2021-01-05 | Qualcomm Incorporated | Processing media data using file tracks for web content |
-
2019
- 2019-01-17 US US16/250,776 patent/US11321516B2/en active Active
- 2019-01-18 CN CN201980008526.5A patent/CN111602406B/zh active Active
- 2019-01-18 TW TW108102089A patent/TW201933878A/zh unknown
- 2019-01-18 EP EP19704692.3A patent/EP3741132A1/en active Pending
- 2019-01-18 WO PCT/US2019/014196 patent/WO2019143938A1/en unknown
- 2019-01-18 BR BR112020014495-9A patent/BR112020014495A2/pt not_active Application Discontinuation
- 2019-01-18 SG SG11202006022QA patent/SG11202006022QA/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2019143938A1 (en) | 2019-07-25 |
EP3741132A1 (en) | 2020-11-25 |
CN111602406A (zh) | 2020-08-28 |
SG11202006022QA (en) | 2020-08-28 |
CN111602406B (zh) | 2022-08-19 |
US11321516B2 (en) | 2022-05-03 |
BR112020014495A2 (pt) | 2020-12-01 |
US20190243881A1 (en) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI774744B (zh) | 在使用mime類型參數之網路視頻串流中發信重要視頻資訊 | |
TWI729997B (zh) | 傳輸經寫碼音訊資料 | |
KR102125162B1 (ko) | 미디어 캡슐화 및 캡슐 해제 기법 | |
TWI727186B (zh) | 使用網路內容之檔案軌處理媒體資料 | |
RU2571375C2 (ru) | Режимы быстрого доступа к произвольной точке для сетевой потоковой передачи кодированных видеоданных | |
JP6285608B2 (ja) | ネットワークを介して交換されたファイルのためのエラー処理 | |
CN111602406B (zh) | 一种处理媒体数据的方法、装置和计算机可读存储媒体 | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
TW201842785A (zh) | 作為分隔符及可定址之資源識別符之區段類型 | |
TW201830974A (zh) | 對於用於串流媒體資料之預取支持之資料發信 | |
CN110832872B (zh) | 使用用于文件格式方框的通用描述符处理媒体数据 | |
TW202037177A (zh) | 用於串流媒體資料之服務描述 | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
TW201947938A (zh) | 用於在一片段中之網路串流之媒體資料之發信丟失區段 | |
TW201742463A (zh) | 樣本條目及隨機存取 | |
TW202130189A (zh) | 在基於http的動態自適應串流(dash)片段之重新同步點之隨機存取 | |
TW201743614A (zh) | 樣本條目及隨機存取 | |
TWI820227B (zh) | 用於媒體資料之網路串流之初始化集合 | |
TW201909624A (zh) | 使用全向媒體格式處理媒體資料 | |
TW202243451A (zh) | 經由即時傳輸協定傳輸經heif格式化的圖像 |