識別和處理數據流內數據的系統和方法
2023-05-10 12:56:56
專利名稱:識別和處理數據流內數據的系統和方法
技術領域:
本系統涉及編碼視頻數據,尤其是涉及提供一種識別和處理數據流內數據的裝置。
背景技術:
多媒體數據流是編碼視頻數據流,其能夠被傳輸而被播放器應用程式接收,一般為媒體播放器應用程式。在傳輸多媒體數據流以前,數據流分割成多個數據包,其包含表示編碼視頻數據的幀的一部分的數據。流本身和流的每個相應的數據包都包括首部,其為接收系統提供關於接收的流和/或數據包的代表流語法(syntax)的信息。現有系統以至少文本和二進位格式中的一種來編碼該信息。然而,這些格式有問題,因為其不容易升級且要求播放器以指令系統硬編碼,其能以編碼格式為流解碼。因此,減小了流的靈活性,因為必須更新用於解碼數據流的流代理伺服器(proxy)以運用任何更改的流語法,否則流代理伺服器將遭受失敗。
標記(markup)語言是廣泛使用的語言,其提供了一種描述與數據單元關聯的邏輯結構或語義學(semantics)的方式,並給系統提供了關於如何進行至少一個運用、處理和顯示接收的數據流的指令。標記語言的例子如超文本標記語言(HTML)、可擴展標記語言(XML)和標準通用標記語言(SGML)。標記語言提供了註解數據或數字數據集合的機制,以便說明文檔或數據文件的結構及其數據單元的內容。這些語言可以很容易擴展。然而,其通常與數據流關聯而且不隨之集成形成。
根據本發明原理的系統處理這些缺點和有關的問題。
發明內容
編碼視頻數據流的系統和方法。測定器確定與視頻數據流關聯的屬性。編碼器接收來自第一測定器的屬性並編碼識別流語法的流首部,流首部用標記語言編碼。多路復用器使編碼流首部和視頻數據流相結合。
用於解碼編碼的視頻數據流的系統。解析器分析所接收的數據流和流首部以確定用於識別所接收的數據流和數據流的幀的屬性的標記標籤的存在。解碼器解碼所接收的數據流和標記標籤。顯示發生器響應於所接收的數據流的識別的屬性而產生解碼的視頻數據流的顯示。
圖1是根據本發明原理包括多種類型首部的數據流;圖2是根據本發明原理編碼的首部的結構圖;圖3是根據本發明原理數據流編碼器的結構圖;圖4是詳述本發明編碼器工作的流程圖;圖5是根據本發明原理媒體播放器應用程式的結構圖;和圖6是根據本發明原理詳述媒體播放器應用程式工作的流程圖。
具體實施例方式
這裡使用的應用程式是可執行電腦程式或包含代碼或機器可讀指令的指令系統,以實現預定功能,包括作業系統、醫療信息系統或其它信息處理系統如響應用戶命令或輸入的功能。可執行程序是一段代碼(機器可讀指令)、子程序、或執行一個或更多個特殊處理的代碼的其它獨立段或可執行程序的一部分,可執行程序可以包括在接收的輸入參數上(或響應於接收的輸入參數)執行操作並提供作為結果的輸出參數。這裡使用的處理器是執行任務的機器可讀指令裝置和/或系統。處理器包括硬體、固件和/或軟體中的任何一個或其組合。處理器通過處理、分析、修改、轉換或傳輸信息以使可執行程序或信息設備使用信息,和/或通過將信息發送到輸出設備而作用於信息。例如,處理器可以使用或包括控制器或微處理器的性能。這裡使用的多媒體內容或內容流是任何編碼或未編碼的數據,其至少有視頻數據和音頻數據中的一個。這裡使用的幀表示應用程式數據的極小的單位,而幀組指一組幀。
可以使用多種不同的編碼方案來編碼和壓縮多媒體數據流。改變編碼方案的選擇取決於接收和處理視頻數據的應用程式。系統包括使用專用編碼格式編碼的多媒體數據流,從而視頻數據流被分割成單獨的幀組,其中每個單獨的幀組由多個單獨的視頻幀組成。根據使用的編碼方案來確定幀組的結構和形成組的幀。這裡使用的數據流被認為是系統流且圖1示出示意性的系統流20。
每個系統流20包括流首部22和多個幀組26、28。用標記語言如XML編碼流首部22。流首部22是標記語言編碼文檔,並描述至少一個與插入流首部的數據流有關的流屬性。在流首部22中描述的每個單獨的流屬性由標記語言標籤表示,且至少一個標籤識別表示單獨屬性的數據並提供關於處理表示單獨屬性的數據的指令。這些流屬性共同定義流語法,所述語法為媒體播放器應用程式可讀,並需要為媒體播放器應用程式提供關於如何處理接收的流數據的指令。例如流首部能提供信息以便為解碼接收的數據流而初始化正確的解碼器。沒有正確的指令或如果數據流包括媒體應用程式不可讀的首部,媒體播放器應用程式將失敗且數據流將不被解碼。因此,必須提供配有關於如何運用每個標記語言標籤的指令系統的媒體播放器應用程式。
使用標記語言來編碼流屬性數據是有利的。標記語言容易擴展以合併關於其表示的數據的新的特徵和功能。任何理想的流屬性可在流首部22內編碼。這有助於數據流格式將來的擴展和推廣應用。此外,在XML中提供流語法的系統流允許任何媒體播放器應用程式接收並解碼由已知標籤表示的信息而忽略由未知標籤表示的信息。因此,當試圖解碼與之有關的未知指令信息時,媒體播放器應用程式將不失敗。流屬性包括但不限於高度、寬度、比特率、流大小和流持續時間。
圖1示出的數據流包括兩個幀組,第一幀組26和第二幀組28。每個單獨的幀組26,28包括多個單獨的幀。第一幀組26包括三個幀26A、26B、26C而第二幀組28包括兩個幀28A、28B。這裡顯示的流只是為了舉例,而數據流20可包括由任何數量的單獨幀組成的任何數量的幀組,所述幀由用於編碼數據流20的編碼方案確定。每個單獨的幀組至少有一個與之關聯的幀組屬性。系統流20提供多個分段首部24,每個分段首部24在相應幀組的第一單獨幀的前面緊接著放置。類似於流首部22,分段首部24是包括符合至少一個流屬性的信息的標記語言編碼文檔。幀組屬性包括但不限於幀組類型,即關鍵(I)幀組或增量(P)幀組、組長和組序列號。
流首部22和分段首部24表示屬性信息。這些首部22、24不等同於單獨數據包或數據報首部,其包括關於單獨數據包或數據報的成幀和序列信息。相反,流首部22和數據包首部24與數據包或數據報分離而嵌入數據流20內,且為媒體播放器應用程式提供指示應用程式如何處理並使用數據流的信息。
每個數據流和幀組的屬性隨同幀數據一起通過應用程式接口。XML編碼器分析屬性並檢測這些屬性中的變化。當檢測到屬性中的變化時,編碼器或者編碼流首部22或者編碼分段首部24,並當檢測到有關的變化時插入相應的標記語言標籤。流的一些屬性由操作碼(operator)間接規定。例如,如果操作碼規定視頻以320×240像素編碼,這些參數將被編碼入流首部。任何流語法的升級將作為新標籤出現在首部內。
圖2是作為例證的流首部22。每個流首部22和分段首部24的格式是相同的且直接取決於在單獨的首部22、24內描述的屬性的數量,該屬性描述與之關聯的或者數據流或者幀組。流首部22包括開始欄位12,其包含識別被編碼為首部的文檔的標記語言標籤。流首部22進一步包括多個屬性欄位14,每個屬性欄位都有符合描述首部所嵌入的數據流的屬性的信息。第一屬性欄位14A包括第一標記語言標籤,其表示代表第一屬性的數據。第二屬性欄位14B、第三屬性欄位14C和第四屬性欄位14D中每一個都包括標記語言標籤,其表示代表圖1所示數據流20的附加屬性的數據。流首部22包括包含標記語言標籤的結束欄位16,該標籤表示首部22結束且沒有附加信息存在。
圖3是系統編碼器的結構圖。提供了用預定編碼方案編碼的源視頻數據30。為第一測定器34、第二測定器36和多路復用器42中的每一個提供編碼視頻數據。第一測定器34檢查編碼數據流,確定與視頻數據流關聯的屬性,並為第一首部編碼器38提供確定的屬性。第一首部編碼器38編碼流首部,其用標記語言並響應於確定的流屬性而規定流語法。第二測定器36分析形成數據流的幀組,並確定與數據流內每個單獨的幀組關聯的屬性。為第二首部編碼器40提供確定的幀組屬性,以編碼幀組首部,其用標記語言並響應確定的幀組屬性而規定幀組語法。第一首部編碼器38和第二首部編碼器40為將首部和視頻數據流結合在一起的多路復用器42提供編碼流和幀組首部。多路復用的視頻數據流提供到分割器44以將數據流分割成可傳輸的數據包。可傳輸的數據包提供到廣播裝置46以廣播其中的數據包48。
圖4是詳述由系統執行的編碼操作的流程圖。在步驟S400,為測定器提供視頻數據流。代表提供的數據流的屬性在測定器確定,如步驟S402所示。在步驟S404,編碼器響應確定的流屬性而編碼流首部。使用標記語言如XML來執行步驟S404。在步驟S404中編碼的流首部包括多個屬性欄位,其數量與從步驟S402確定的流屬性的數量直接有關。從視頻數據流進一步確定關於數據流內幀組的存在。如果不存在,那麼本方法繼續進行到下面將討論的步驟S412。如果幀內有幀組,則在步驟S408,第二測定器確定與流內每個單獨的幀組關聯的屬性。響應步驟S408中的確定,在步驟S410編碼每個單獨幀組的分段首部。與流首部類似,分段首部包括多個屬性欄位,其數量與從步驟S408確定的幀組屬性的數量直接有關。在步驟S412,如圖5和圖6中將要討論的,視頻數據流與每個流首部和單獨的分段首部結合,每個流首部和單獨的分段首部被處理並被傳輸以使媒體播放器應用程式接收。在步驟S412合併期間,流首部在任何單獨的幀組前插入,而每個分段首部在與之關聯的相應的幀組前緊接著插入。
圖5是接收多個數據包48的媒體播放器應用程式50的結構圖。媒體播放器應用程式50包括接收器52、編譯器、解析器54、第一解碼器56、第二解碼器58、標籤表55和顯示發生器60。接收器52接收由圖3所示廣播裝置廣播的數據包48的源。編譯器53編譯接收的數據包以形成包括多個幀的數據流。傳輸層在解碼之前將流首部和每個單獨的分段首部作為分離的幀來處理。解析器54解析接收的數據流並分析至少流首部和分段首部之一。此分析確定存在識別單獨的流屬性和幀組屬性的標記標籤。每個標籤的值儲存在標籤表55中。標籤表55中的值呈現給每個解碼器56、58。解碼器重新檢查首部內的標籤並審閱表中的條目以確定標籤是否包含啟動由解碼器56、58執行的功能的指令。當確定了與至少一個數據流或流內單獨幀組關聯的屬性時,啟動第一解碼器和第二解碼器的任何一個以解碼接收的數據流。為顯示發生器60提供解碼流以產生通過媒體播放器應用程式輸出數據流的顯示。顯示發生器60也可以與解析器54通信,並響應與流首部或分段首部內分別的標記標籤相關聯的數據而操作。
圖6是詳述圖5所示的媒體播放器應用程式的工作流程圖。在步驟S600,媒體播放器應用程式通過接收器接收多個形成解碼數據流的數據包。在步驟S602,解析數據流並分析每個流首部和單獨的分段首部。在步驟S604,解析器確定識別全部數據流屬性的任何標記標籤的存在,並在步驟S606為任何單獨組件提供關於數據流如何響應於存在的標記標籤而被解碼的指令。在步驟S608確定是否數據流包括任何幀組。如果不包括,則所述過程在下面討論的步驟S614繼續。如果數據流包括幀組,則解析器對分段首部作任何標記標籤方面的分析,該標籤代表與有關幀組相關聯的幀組屬性。為組件提供來自分段首部的指令以便利用在步驟S160中確定的標記標籤來解碼數據流的幀組。響應流和分別的幀組的解碼,為顯示發生器提供解碼流以使用媒體播放器應用程式產生解碼流的顯示。
到流版本格式的升級是顯而易見的且容易完成,因為不需要對多個媒體播放器應用程式的新的流解碼參數的任何顯著的配置。標記語言允許現有的媒體播放器解碼新的流版本,因為媒體播放器應用程式僅僅分析和利用其熟悉的標記語言標籤。因此,附加類型的數據如注釋、同步媒體事件數據或任何其它屬性可選擇性地加到流語法中而不會使先前配置的組件無效。
權利要求
1.一種用於編碼視頻數據流的系統,所述系統包括第一測定器,其用於確定與所述視頻數據流關聯的屬性;編碼器,其用於接收來自所述第一測定器的所述屬性並編碼識別流語法的流首部,所述流首部是用標記語言編碼的;和多路復用器,其用於結合所述編碼的流首部和所述視頻數據流。
2.如權利要求1所述的系統,進一步包括第二測定器,所述第二測定器用於確定與所述數據流內幀組關聯的屬性。
3.如權利要求2所述的系統,其中,所述編碼器編碼包括所述確定的屬性的分段首部,所述確定的屬性識別所述數據流的每個幀組在標記語言中的幀組語法。
4.如權利要求3所述的系統,其中,所述標記語言為XML。
5.如權利要求3所述的系統,其中,所述多路復用器在所述數據流的有效載荷之前放置所述編碼的流首部,其中所述有效載荷包括所有的所述幀組。
6.如權利要求5所述的系統,其中,所述多路復用器在各幀組之前定位所述數據流中的每個編碼的分段首部。
7.如權利要求1所述的系統,進一步包括分割器44,所述分割器用於將所述數據流分割成可傳輸的數據包。
8.如權利要求1所述的系統,其中,所述流首部包括多個欄位,每個欄位定義所述確定的流屬性中各一個。
9.如權利要求3所述的系統,其中,每個所述分段首部包括多個欄位,每個欄位定義所述確定的幀組屬性中各一個。
10.一種用於解碼編碼的視頻數據流的系統,所述系統包括編譯器,其用於編譯多個接收的數據包以形成包括多個幀的數據流;解析器,其用於分析所述數據流和流首部以確定存在識別所述接收的數據流和所述數據流的幀的屬性的標記標籤;解碼器,其用於解碼所述接收的數據流和標記標籤;顯示發生器,其用於響應於所述接收數據流的識別的屬性而產生所述解碼的視頻數據流的顯示。
11.如權利要求10所述的系統,其中,所述標記語言為XML。
12.一種編碼視頻數據流的方法,所述方法包括以下步驟確定與所述視頻數據流關聯的屬性;編碼流首部,所述流首部基於所述確定的流屬性識別流語法,所述流首部用標記語言編碼;和結合所述編碼的流首部和所述視頻數據流。
13.如權利要求12所述的方法,進一步包括以下步驟確定與所述數據流內每個幀組關聯的屬性;和為每個單獨的幀組編碼分段首部,每個分段首部定義所述單獨的幀組的幀組語法。
14.如權利要求12所述的方法,其中,所述標記語言為XML。
全文摘要
一種涉及編碼視頻數據流的系統。該系統包括確定與視頻數據流關聯的屬性的第一測定器和接收來自第一測定器的屬性並編碼識別流語法的流首部的編碼器。流首部用標記語言編碼。多路復用器使編碼的流首部和視頻數據流相結合。
文檔編號H04N7/167GK101069428SQ200580041448
公開日2007年11月7日 申請日期2005年10月5日 優先權日2004年10月5日
發明者喬恩·拉科沃斯克, 丹尼爾·維特 申請人:維克多曼克斯公司