專利名稱:用于處理多媒體流的方法
技術領域:
本發(fā)明涉及處理多媒體流。更具體地說,本發(fā)明涉及對處理多媒體流的算法程序的智能選擇。
背景技術:
在社會上,與多媒體流的交互,例如在音樂下載、視頻記錄以及電話交談的過程中非常普遍。用于發(fā)送和接收這些流的電子設備的類型隨這些流本身的格式不同而不同。如果一個電子設備的用戶向另一個電子設備的用戶發(fā)送信息,則其格式必須兼容,以便實現(xiàn)有效的通信。在許多情況下,兩個電子設備所使用的格式根本不兼容,因此必須采用使用一個中間設備來對這兩個設備間傳送的信息進行轉換。稱為轉碼器的設備將一種格式的流轉換為另一種格式的流,這樣人們就可以輕松地進行相互通信且仍然可以使用不同的設備和不同的多媒體流格式。轉碼目前用于各種不同的情況中,例如用于單向、雙向或多向流的情況中。
單向轉碼用于一個設備向第二個設備發(fā)送多媒體流的情況。視頻消息和視頻流是單向轉碼的示例。圖1A描述了一個可能需要對多媒體流進行單向轉碼的處理的示例。在這個示例中,一個視頻流100從第一計算機102向第二計算機104發(fā)送。來自第一計算機102的視頻被編碼成許多不同的可能格式之一,這些格式包括MPEG-2、MPEG-4、GSM(全球數(shù)字移動電話系統(tǒng))或者AMR(自適應多速率)。第二計算機104接收該流式視頻、將其解碼并顯示在一個視頻監(jiān)視器上。
單向轉碼的另一個示例是語音郵件。某人可能需要在他們的語音郵件系統(tǒng)中記錄消息,以便通知呼叫者他們不在辦公室。該人可能想要回放該消息以便確定他們是要保存該消息還是要再次錄制。這個人可能會通過G.711格式的電話講話并且語音郵件系統(tǒng)可能會把該消息記錄在WAV文件中。同樣,這需要轉碼步驟。
雙向轉碼用于兩個設備彼此發(fā)送流的時候,例如可能在視頻呼叫或者音頻(例如電話)呼叫過程中。圖1B描述了可能需要對多媒體進行雙向轉碼的雙向視頻呼叫的一個示例。在這個示例中,視頻流110從第一計算機112向第二計算機114發(fā)送,并且還從第二計算機114向第一計算機112發(fā)送。
多向轉碼用在兩個以上設備彼此發(fā)送流的時候,例如在三方視頻會議過程中。圖1C描述了可能需要多向轉碼的三方視頻會議的一個示例。在這個示例中,正如圖1B中的示例,多個計算機彼此之間發(fā)送并接收視頻流。在這個示例中,第一計算機122、第二計算機124以及一個手持移動計算機/蜂窩電話126彼此之間發(fā)送并接收流120。
在許多情況下,圖1A、1B和1C中所示出的每個計算機可以按照不同的格式對多媒體流進行編碼和解碼。例如,圖1C中的兩臺計算機(122和124)可以對一個MPEG-4格式的流進行編碼和解碼,而移動計算機/蜂窩電話126可能無法對MPEG-4格式的流進行編碼和解碼,而是只能對GSM格式的流進行編碼和解碼。在這種情況中,可以利用轉碼設備來截取來自三個設備中每一個的流并且將該流轉換為每個目的設備的本機格式。
視頻流只是許多可能需要轉碼器的可能示例之一。例如,如果正使用陸上線路電話的人打電話給其使用蜂窩電話的朋友,就必須執(zhí)行轉碼步驟。標準的陸上線路電話通常使用G.711格式工作。應答電話的朋友通常使用GSM、AMR或者其它蜂窩電話語音格式技術。因此,為了使兩個朋友彼此聽得到對方,在他們進行談話時將需要轉碼步驟。
這些轉碼示例中許多轉碼示例所需要的處理能力變化很大。在一些示例中,需要實時轉碼,而在其它示例中則不需要。“實時”指轉碼器以與未經轉碼的多媒體流到達轉碼器相同的速度對多媒體流進行轉碼并將其輸出所需要的近似速度。因此,對語音流進行實時轉碼將需要以與人說話的實際速度相同的速度對語音信息進行轉碼。因此,兩個正在通過陸上線路和蜂窩線路互相談話的朋友必須使格式經過實時轉碼,因為他們在彼此進行實時講話,音頻上的延遲可能是無法接受。三方視頻會議會需要更多處理能力,因為不僅需要對三個流進行實時轉碼,而且這些流中包含帶語音和視頻成分的數(shù)據(jù)包,其每個數(shù)據(jù)包與單純的語音成分數(shù)據(jù)包相比具有更多的信息。
當前,實時轉碼系統(tǒng)通常利用極其強大的處理器,諸如具有專用數(shù)字信號處理器的服務器,來確??梢詫?shù)據(jù)包中任何形式的信息進行實時轉碼。在許多時候,并不需要這樣的處理能力。一個人錄制不在辦公室的消息以及隨后檢查他們的錄音,這并非實時操作。人們對著電話講話時和他們在回放過程中聽到他們被錄制的聲音時,期間存在在幾秒鐘范圍內的延遲。
還存在以非實時的離線方式執(zhí)行轉碼的轉碼系統(tǒng)。個人計算機用戶可能將一個VHS錄像帶轉換為一個AVI文件以便記錄在一個DVD上。最后,還存在根本不進行任何轉碼操作的實現(xiàn)方式,例如,可以通過網(wǎng)絡傳送原始的視頻、語音或音頻格式的流。這種類型的流效率不高,因為原始格式的流未經壓縮并且需要大量網(wǎng)絡帶寬。
發(fā)明內容
本發(fā)明公開了一種方法,包括如下步驟確定組成多媒體流的一個或多個成分是否需要實時處理;如果至少一個或多個成分需要實時處理,則將需要實時處理的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
本發(fā)明進而公開了一種其中嵌入了在由機器運行時執(zhí)行上述方法的指令的機器可讀介質。
本發(fā)明還公開了一種系統(tǒng),該系統(tǒng)包括總線;連接至所述總線的處理器;連接至所述總線的網(wǎng)絡接口卡;連接至所述處理器的存儲器,該存儲器適用于存儲指令,所述指令在由所述處理器執(zhí)行時執(zhí)行上述方法。
本發(fā)明還公開了一種設備,其包括流分解單元,可用于將第一多媒體流分解成它的各個成分;進程分配單元,可用于將一個或多個成分分配給一個或多個進程;算法處理邏輯,可用于處理一個或多個單獨成分中的每一個;以及流打包單元,可用于將一個或多個經過處理的各個成分中的至少一個打包成第二多媒體流。
本發(fā)明通過示例的方式進行說明并且不受附圖限制,附圖中相同的附圖標記表示相同的要素,附圖中附圖1A描述了需要對多媒體流進行單向轉碼的處理的一個示例;附圖1B描述了需要對多媒體流進行雙向轉碼的雙向視頻通話的一個示例;附圖1C描述了需要對三方視頻會議進行多向轉碼的一個示例;附圖2是具有多媒體流處理管理系統(tǒng)(MSPMS)的計算機系統(tǒng)的一個實施例的框圖;附圖3描述了多媒體流處理管理系統(tǒng)(MSPMS)的一個實施例;附圖4描述了使用單一算法程序對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例;附圖5描述了使用多個算法程序對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例;附圖6描述了使用多個算法程序對多媒體流數(shù)據(jù)包進行轉碼的方法的另一個實施例;附圖7描述了使用一個算法程序和一個緩沖器對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例;附圖8描述了使用一個算法程序和多個緩沖器對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例;附圖9描述了使用多個算法程序和多個緩沖器對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例;附圖10描述了基于成分優(yōu)先級和處理能力限制忽略各成分的算法程序的一個實施例;附圖11是用于將多媒體流的成分分配給實時和非實時算法程序的方法的一個實施例的流程圖;附圖12是用于將多媒體流的成分分配給實時進程的方法的另一個實施例的流程圖;附圖13是用于在轉碼處理中忽略多媒體流的成分的方法的實施例的流程圖;附圖14是跳過對流的轉碼的方法的實施例的流程圖;附圖15是用于將不需要實時處理,但需要在確定的最大時延之前得到處理的多媒體流的成分分配給能夠在預定的最大時延之內進行處理的進程的方法的實施例的流程圖。
具體實施例方式
本說明書公開了處理多媒體流的有效方法的實施例。在如下描述中,提出了許多特定的細節(jié)。然而,應該理解,實施例可以無需這些特定細節(jié)來實施。在其它情況下,未對眾所周知的要素、應用及技術進行詳細討論,以免使本發(fā)明不夠清楚。
圖2是一個具有多媒體流處理管理系統(tǒng)(MSPMS)的計算機系統(tǒng)的實施例的框圖。該計算機系統(tǒng)包含處理器200、存儲控制中心(MCH)202以及I/O控制中心(ICH)210。MCH 202和ICH 210包含一個芯片組。處理器200通過主機總線連接至MCH 202。該MCH 202連接至系統(tǒng)存儲器204。在不同的實施例中,系統(tǒng)存儲器可以是同步動態(tài)隨機存儲器(SDRAM)、雙數(shù)據(jù)速率SDRAM(DDR-SDRAM)、存儲器總線DRAM(RDRAM),或者許多其它格式的主系統(tǒng)存儲器之一。
在一個實施例中,計算機系統(tǒng)包括存儲在系統(tǒng)存儲器204中并由處理器200操作/執(zhí)行的MSPMS 206。在不同的實施例中,MSPMS 206可以控制多個涉及處理多媒體流的管理決定,諸如處理需要的速度(例如實時的或者非實時的)、與組成流的不同成分相關的優(yōu)先級(例如音頻成分、語音成分、視頻成分、數(shù)據(jù)成分以及控制成分),以及分配實際上處理多媒體流的特定設備。在不同的實施例中,實際上處理多媒體流的設備可以是數(shù)字信號處理器、網(wǎng)絡服務器、遠程臺式計算機,或者是圖2中示出的計算機系統(tǒng)(包括處理器200)以及許多其它可能的處理設備。
MCH 202還連接至圖形模塊208。ICH 210連接至硬盤驅動器212和I/O總線214。I/O總線214連接至與網(wǎng)絡接口的網(wǎng)絡接口卡。在不同的實施例中,網(wǎng)絡可以是局域網(wǎng)、公共電話系統(tǒng)、因特網(wǎng)、廣域網(wǎng)、無線網(wǎng)絡,或者任何其它能夠在計算設備間傳遞數(shù)據(jù)的網(wǎng)絡。
圖3描述了多媒體流處理管理系統(tǒng)(MSPMS)的一個實施例。在這個實施例中,MSPMS的處理邏輯300位于多媒體流的源302和目的地318之間。源302產生多媒體流,并對其進行編碼,然后通過網(wǎng)絡向目的地設備318發(fā)送。該流由許多連續(xù)的數(shù)據(jù)包構成。
每個數(shù)據(jù)包包含若干成分。數(shù)據(jù)包的每個成分由有關流的一種類型的信息構成。例如,音頻/視頻流的數(shù)據(jù)包可以包含語音成分和分開的視頻成分。在不同的示例中,可能存在其它也構成多媒體流的成分,例如在流的內部發(fā)送指令的數(shù)據(jù)成分、包含音樂和背景噪聲信息的普通音頻成分(與特定的語音信息相對),以及包含安全信息、認證信息、服務質量(QoS)信息以及其它類型的控制信息的控制成分。數(shù)據(jù)包內每個成分包含用于該成分的預定數(shù)量的信息。每數(shù)據(jù)包每個成分的信息量通常以時間量度。例如,在多媒體流的一個單獨數(shù)據(jù)包內的語音成分可以由錄制的100毫秒的聲音構成。除了成分信息之外,每個數(shù)據(jù)包包含首部,該首部含有地址信息,以允許將數(shù)據(jù)包路由到正確的目的地。
回到圖3,例如,如果源302向要求MPEG-2格式的目的地318發(fā)送MPEG-4格式的視頻流,則該流在到達目的地318之前必須經過轉碼。在這個實施例中,MSPMS處理邏輯300截取該流。該流進入流分解單元304。該流分解單元304將流分解成各個成分。該流的各個成分被發(fā)送至進程分配單元306。在當前的示例中,視頻成分被分解并發(fā)送至進程分配單元306。在一個實施例中,首部地址信息從流分解單元304直接發(fā)送至流打包單元316。
進程分配單元306隨后將一個或多個流成分中的每一個分配至包含一個或多個算法進程(308、310、312、314)的處理邏輯。“算法進程”是能夠按照某種方式修改多媒體流的一個或多個成分的方法或進程。算法進程的示例包括用于對多媒體流的成分進行轉碼的方法、用于忽略多媒體流的某些成分的方法、用于延遲對多媒體流的成分的處理的方法、用于緩沖實時傳輸協(xié)議(RTP)流的方法以及其它的方法。
許多時候,為了完成某個任務,必須利用一個以上的算法進程。例如,一個用戶可能想要留下一個語音郵件。該用戶呼叫一個電話號碼,語音郵件系統(tǒng)則應答該呼叫。當用戶留下消息時,第一算法進程可以緩沖通過一個RTP流傳來的實際的語音數(shù)據(jù),第二算法進程可以監(jiān)視撥號音(雙音多頻信號(DTMF)檢測)以便檢測用戶留言過程中何時按了電話上的任意按鍵,并且第三算法進程可以將RTP流轉碼為更有利于存儲的格式。在這種情況下,RTP流緩沖器和DTMF檢測算法進程必須實時運行,以產生有效的用戶交互,否則語音郵件將沒有用處,而轉碼程序剛好能夠在一個可用的基礎上將信息從緩沖器中取出。因此,RTP和DTMF算法進程可具有比轉碼處理更高的優(yōu)先級并且這些處理由MSPMS進行相應地管理。
在一個實施例中,區(qū)分優(yōu)先級的算法進程可以基于涉及用戶知覺的成分的重要性來實現(xiàn)。在以上示例中,語音郵件用戶交互將較高優(yōu)先級賦予用于保持清楚地記錄用戶語音的功能。因此,緩沖RTP流顯然比將該流轉碼為不同的格式更為重要,因為忽略該RTP流的任何部分都將導致信息的丟失并且在消息的部分或全部中用戶的聲音都將不可聞。因此,在一個實施例中,存在N個算法進程,其中的每一個都將以不同的方式完成對流成分的處理。在一個實施例中,每一個算法進程根據(jù)每個成分的重要性來區(qū)分對發(fā)送給其的成分的處理的優(yōu)先級。因此,在此實施例中,如果進程分配單元306將兩個或者更多的成分分配給單個區(qū)分優(yōu)先級的算法進程,則兩個或者更多的成分將按照它們的優(yōu)先級順序被處理。在不同的實施例中,該優(yōu)先級可以基于一個算法來確定,該算法考慮如下因素網(wǎng)絡傳輸速率、不同成分對于流的用戶可理解度的相對重要性、該成分相對于其它成分的帶寬消耗或者任意數(shù)量的其它因素。
例如,在一個視頻會議中,如果視頻成分是不可用的,音頻通信仍然是一個可行的選擇,但是如果音頻成分不可用,則通信的效率將大大降低,下降到僅具有視頻內容饋送。在另一個示例中,多成分數(shù)據(jù)包的多媒體流中的視頻成分通常消耗大部分帶寬和計算能力,因此,算法進程僅能夠剛好實時地對視頻進行轉碼,或者能夠實時地對所有其它成分(可能有音頻、語音、數(shù)據(jù)和控制成分)進行轉碼,因此,四個成分具有超過剛好一個成分的優(yōu)先權。此外,如果得不到可用于以實時或甚至延遲的(非實時)方式對所有成分進行處理的資源,則另一個選擇是忽略一定百分比的較低優(yōu)先級的成分。因此,如果視頻成分具有最低優(yōu)先級,則可以由進程分配單元306作出決定以將成分分配給一個特定的算法進程,其只能每隔一個(或者每隔三個、四個,等等)地處理打包的成分,這將導致較低的幀速率。
在另一實施例中,N個算法進程中的兩個或更多個在一個單獨的計算機系統(tǒng)上運行。在這個實施例中,兩個或更多個成分中的每一個具有分配給它們的優(yōu)先級別。因此,在一個示例中,如果多媒體流具有視頻成分和語音成分,且每一個成分都由進程分配單元306分配了給一個單獨的算法程序算法進程,則在計算機系統(tǒng)中語音成分處理具有高于視頻成分處理的操作優(yōu)先級。在這種情況下,如果計算機系統(tǒng)沒有足夠的資源來同時運行所有的處理,則視頻成分處理將被延遲,而語音成分處理完成對一個或多個多媒體流的數(shù)據(jù)包內的語音成分的處理。在另一個實施例中,N個算法進程中的每一個都在本地計算機系統(tǒng)中運行其自己的線程。在這個實施例中,本地計算機系統(tǒng)可以為每個線程分配某個優(yōu)先級以與分配給每個處理線程的成分的優(yōu)先級相對應。
在又一個實施例中,N個算法進程中的兩個或更多個在兩個或更多個分開的計算機系統(tǒng)上運行。在這個實施例中,進程分配單元306可以利用運行在具有大多數(shù)可用資源的計算機系統(tǒng)上的算法進程中的一個或多個。在另一個實施例中,可以將一個成分分配給兩個或更多個算法進程。在此實施例中,進程分配單元306將流中的單個成分內的信息分成若干部分并且將每個部分分配給一個單獨的算法進程。在一個實施例中,進程分配單元306在逐個數(shù)據(jù)包的級別上在兩個算法進程之間交替發(fā)送成分信息(即,第一數(shù)據(jù)包的成分發(fā)送給算法進程一,而第二數(shù)據(jù)包的成分發(fā)送給算法進程二,第三數(shù)據(jù)包的成分發(fā)送給算法進程三,依此類推)。
在當前示例中,進程分配單元306將視頻成分分配給用于將MPEG-4轉碼為MPEG-2的算法進程。一旦每個數(shù)據(jù)包的視頻成分經過一個或多個算法進程處理,則該視頻成分(即新的MPEG-2格式的視頻流)被發(fā)送至流打包單元316。在一個實施例中,流打包單元316將各個成分重新封裝成已打包的格式發(fā)送到目的地。在一個實施例中,流打包單元316將直接從流分解單元304獲取諸如由流打包單元316作為一個或多個算法進程的輸出接收的每個成分的目的地地址的信息。在另一個實施例中,流打包單元316直接從進程分配單元306處接收諸如每個成分的優(yōu)先級信息以及每個成分的數(shù)據(jù)包合并信息的信息。每個成分的優(yōu)先級信息使得流打包單元316可以按照優(yōu)先級對來自一個或多個算法進程的不同成分的打包和發(fā)送。每個成分的包合并信息使流打包單元316可以將多個成分合并成一個數(shù)據(jù)包,或者可選地,允許出于諸如較高優(yōu)先級的原因將各個成分封裝到單獨的數(shù)據(jù)包中發(fā)送。
在當前的示例中,流打包單元316接收新轉碼的MPEG-2視頻成分并且使用目的地地址信息以及其它相關的信息將成分重新打包并將流發(fā)送到目的地318。
在一個實施例中,在決定將給的成分分配給哪一個算法進程時,進程分配單元306考慮下列信息運行算法進程的各個計算機系統(tǒng)的網(wǎng)絡連接和吞吐量、每個計算機系統(tǒng)可用的空閑資源的數(shù)量、每個算法進程在其相應的計算機系統(tǒng)上的優(yōu)先級以及其它信息。在這個實施例中,進程分配單元306接收來自有關運行算法進程的每個計算機系統(tǒng)的信息(如圖3中虛線箭頭所示)。利用與每個算法進程有關的計算機系統(tǒng)信息,進程分配單元306(一般和MSPMS)能夠確定如何盡可能地處理流中的每一個成分,以便最小化或消除任何可以感覺到的流的性能下降。因此,如以上所述,根據(jù)成分的優(yōu)先級及可用的系統(tǒng)資源,MSPMS能夠以實時、非實時的方式處理流成分,或者根本不對流充分進行處理。
圖4到圖9舉例說明了MSPMS處理邏輯判決的幾個示例,這些邏輯判決涉及對含視頻成分和語音成分的多媒體流的處理。在這些示例中,功能表明流中的每一個成分要求進行轉碼,雖然在不同的實施例中對于一些或全部視頻流而言,局部轉碼或者根本不轉碼是可以允許的。此外,對流的成分的處理可包括除了僅進行轉碼以外的許多其它功能,諸如緩沖RTP流、進行DTMF檢測,或是許多其它多媒體流處理功能中的任意一個功能。因此,在圖4至圖9中的轉碼示例僅用于舉例說明,它們可以替換為許多其它涉及多媒體流的處理。此外,雖然這些示例說明流中的單個數(shù)據(jù)包,但實施例包括對可能流中所有數(shù)據(jù)包重復所述處理。
圖4描述了使用單個算法進程來對多媒體流數(shù)據(jù)包進行轉碼的方法的一個實施例。在這個實施例中,源400通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包402。該數(shù)據(jù)包402包含首部404,該首部具有有關該數(shù)據(jù)包的目的地的所有路由和地址信息。在這個實施例中,該數(shù)據(jù)包還包含視頻成分406和語音成分408。在一個實施例中,該視頻成分包含一個視頻幀(即一個靜止圖像)并且該語音成分包含一個語音幀(即100毫秒的語音信息)。在一個實施例中,首部404被去除并且僅包含視頻和語音成分的數(shù)據(jù)包410被發(fā)送至算法進程412。該算法進程412對每個成分中的信息進行轉碼并輸出只包含經過轉碼的視頻和語音成分的新數(shù)據(jù)包。首部404繞過414算法進程并且可以重新附加到經過轉碼的數(shù)據(jù)包上,以便創(chuàng)建新的數(shù)據(jù)包416,該數(shù)據(jù)包416被發(fā)送至目的地418。在這個實施例中,單個算法進程412能夠(實時地)對具有視頻和語音成分的數(shù)據(jù)包的多媒體流進行轉碼。在一個實施例中,流打包單元(圖3中的316)根據(jù)由流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息修改首部404。在另一個實施例中,不將首部404從數(shù)據(jù)包中去除并且使首部404原樣隨數(shù)據(jù)包一起發(fā)送給算法進程。
圖5描述了使用多個算法進程對多媒體流數(shù)據(jù)包進行轉碼的方法的實施例。在這個實施例中,源500通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包502。該數(shù)據(jù)包502包含視頻成分和語音成分(如以上圖4中所描述)。在一個實施例中,去除首部并且分離數(shù)據(jù)包內的不同成分。視頻成分504發(fā)送至算法進程#1(508)以便進行視頻轉碼,而語音成分506發(fā)送至算法進程#2(510)以便進行語音轉碼。在不同的實施例中,算法進程#1(508)和2#(510)可以位于同一個計算設備上或者位于不同的計算設備上。當算法進程#1(508)和2#(510)完成對它們各自的視頻和語音成分的轉碼處理時,繞過了轉碼處理(512和514)的首部可以重新附加到分離的經過轉碼的視頻和語音成分數(shù)據(jù)包(516和518)上。視頻成分數(shù)據(jù)包516和語音成分數(shù)據(jù)包518分別到達目的地520。在一個實施例中,由流打包單元(圖3中的316)根據(jù)流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息加以修改。在另一個實施例中,首部不從數(shù)據(jù)包中去除并且完整地隨數(shù)據(jù)包一起發(fā)送給算法進程。因此,算法進程本身可以修改該首部。
圖6描述了使用多個算法進程來對多媒體流數(shù)據(jù)包進行轉碼的方法的另一個實施例。在這個實施例中,源600通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包602。該數(shù)據(jù)包602包含視頻成分和語音成分(如以上圖4中所描述)。首部被去除并且數(shù)據(jù)包內的不同成分被分離。視頻成分604發(fā)送至算法進程#1(608)以便進行視頻轉碼,而語音成分606發(fā)送至算法進程#2(610)以便進行語音轉碼。當算法進程#1(608)和2#(610)完成它們各自的視頻和語音成分轉碼時,它們將視頻成分和語音成分重新附加到一個多成分的數(shù)據(jù)包614上。繞過了轉碼處理的首部604可以重新附加到多成分的數(shù)據(jù)包614上,并且將該數(shù)據(jù)包614發(fā)送至目的地616。在這個實施例中,如果任一個成分經過轉碼處理的數(shù)據(jù)包必須花費超過預定長度的時間來等待來自另一個算法進程的對應數(shù)據(jù)包,則流打包單元(圖3中的316)將只包含一個成分的數(shù)據(jù)包614發(fā)送至目的地,以便使首先完成處理的算法進程中的任何瓶頸最小化。在一個實施例中,由流打包單元(圖3中的316)根據(jù)流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息對首部進行修改。在另一個實施例中,首部不從數(shù)據(jù)包中去除并且完整地隨數(shù)據(jù)包一起發(fā)送給算法進程。因此,算法進程本身可以修改首部。
圖7描述了使用一個算法進程和一個緩沖器來對多媒體流數(shù)據(jù)包進行轉碼的方法的實施例。在這個實施例中,源700通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包702。該數(shù)據(jù)包702包含視頻成分和語音成分(如以上圖4中所描述)。首部被去除并且數(shù)據(jù)包內的不同成分被分離。在這個實施例中,語音成分704具有高于視頻成分706的優(yōu)先級,因此語音成分704直接發(fā)送給算法進程710,而視頻成分706發(fā)送至緩沖器708,以等待算法進程710完成對語音成分704的轉碼處理。一旦對語音成分704的轉碼處理完成,則緩沖器708向算法進程710釋放存儲的視頻成分706以進行轉碼處理。一旦語音成分或者視頻成分已經完成轉碼,則經過轉碼的成分重新附加到首部(712或714)上并且單獨的視頻或語音成分數(shù)據(jù)包(716或718)發(fā)送至目的地720。在一個實施例中,流打包單元(圖3中的316)根據(jù)流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息對首部進行修改。在另一個實施例中,首部沒有從數(shù)據(jù)包中去除并且數(shù)據(jù)包和首部一起完整地發(fā)送給算法進程。因此,算法進程本身可以修改首部。
圖8描述了使用一個算法進程和多個緩沖器來對一個多媒體流數(shù)據(jù)包進行轉碼的方法的實施例。在這個實施例中,源800通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包802。該數(shù)據(jù)包802包含視頻成分和語音成分(如以上圖4中所描述)。首部被去除并且數(shù)據(jù)包內的不同成分分離。在這個實施例中,只有一個算法進程812。此外,成分的優(yōu)先級可以根據(jù)某些情況實時進行變更。在這種情況下,視頻成分的優(yōu)先級和語音成分的優(yōu)先級可以在轉碼操作中相對于彼此升高或降低。因此,利用了兩個緩沖器以便任一個成分能夠等待算法進程812完成對另一個成分的轉碼處理。
在這個實施例中,視頻成分804發(fā)送至緩沖器#1(808),而語音成分806發(fā)送至緩沖器#2(810)。在這個實施例中,算法進程812每次從緩沖器#1(808)或者緩沖器#2(810)中提取單個成分。從哪一個緩沖器中提取的決定取決于分配給正在緩沖器中等待的各成分的優(yōu)先級。一旦算法進程812完成了對一個成分的轉碼處理,則將該經過轉碼的成分重新附加到首部上(814或816),并且將單獨的視頻或語音成分數(shù)據(jù)包(818或820)發(fā)送至目的地822。
在一個實施例中,流打包單元(圖3中的316)根據(jù)流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息對首部進行修改。在另一個實施例中,首部不從數(shù)據(jù)包中去除并且完整地隨數(shù)據(jù)包一起發(fā)送給算法進程。因此,算法進程本身可以修改該首部。
圖9描述了使用多個算法進程和多個緩沖器來對多媒體流數(shù)據(jù)包進行轉碼的方法的實施例。在這個實施例中,源900通過網(wǎng)絡發(fā)送多媒體流數(shù)據(jù)包902。該數(shù)據(jù)包902包含視頻成分和語音成分(如以上在圖5中所描述)。首部被去除并且數(shù)據(jù)包內的不同成分被分離。在這個實施例中,有兩個算法進程(912和914)。此外,成分的優(yōu)先級可以根據(jù)某些情況實時加以變更。在一個實施例中,算法進程#1(912)和#2(914)位于同一個計算機系統(tǒng)上,但分別進行處理。在這種情況下,視頻轉碼處理的優(yōu)先級和語音轉碼處理的優(yōu)先級不僅可以相對于彼此,也可以相對于行在計算機系統(tǒng)上的其它進程來升高或降低。
例如,兩個算法進程均駐留其上的計算機系統(tǒng)收到一個來自因特網(wǎng)的蠕蟲病毒,運行防毒軟件程序的進程暫時取得高于視頻轉碼算法進程或語音算法進程的優(yōu)先級。因此,在這種情況下,每個算法進程都具有其自己的緩沖器,以便使兩個成分都能夠等待算法進程(912和914)重新獲得較高的系統(tǒng)優(yōu)先級。
在這個實施例中,視頻成分904發(fā)送至緩沖器#1(908),而語音成分906發(fā)送至緩沖器#2(910)。在這個實施例中,算法進程#1(912)從緩沖器#1(908)中提取單獨的視頻成分,而算法進程#2(914)從緩沖器#2(910)中提取單獨的語音成分。一旦任一算法進程完成對一個單獨成分的轉碼,則將該經過轉碼的成分重新附加到其首部(916或918)并且將單獨的視頻或語音成分數(shù)據(jù)包(920或922)發(fā)送至目的地924。
在一個實施例中,流打包單元(圖3中的316)根據(jù)由流分解單元(圖3中的304)和進程分配單元(圖3中的306)提供的信息對首部進行修改。在另一個實施例中,首部不從數(shù)據(jù)包中去除并完整地隨數(shù)據(jù)包一起發(fā)送給算法進程。因此,算法進程本身可以修改首部。
附圖10描述了基于成分優(yōu)先級和處理能力限制忽略各成分的算法進程的一個實施例。在這個實施例中,視頻成分(即視頻幀)的流和語音成分(即語音幀)的流輸入算法進程1004。因此,本實施例中的算法進程1004類似于圖8中描述的算法進程。在這個實施例中,算法進程1004沒有跟上每一個視頻幀和每一個語音幀的處理能力。因此,如果沒有其它具有能夠承擔一些轉碼工作的算法進程的系統(tǒng),則必須忽略某些幀以保持流的實時性。
在語音成分具有高于視頻成分的優(yōu)先級的情況下,必須忽略(即丟棄)某些視頻幀。因此,在一個實施例中,含四個視頻幀的流1000和含四個語音幀的流1002輸入算法進程1004。算法進程1004對所有語音幀進行轉碼處理并且將它們依次在語音輸出流1008中發(fā)送出去。算法進程1004還使用其剩余的處理能力來對盡可能多的視頻幀進行轉碼并依次將其在視頻輸出流中發(fā)送出去。在這種情況下,算法進程1004每隔一個地忽略視頻幀以便保持流的實時性。因此,語音流是清楚完整的,而視頻流幀速率則減半。
圖11是用于將多媒體流的成分分配給實時和非實時算法進程的方法的實施例的流程圖。該方法由處理邏輯執(zhí)行,所述處理邏輯可包含硬件(電路、專用邏輯電路等)、軟件(諸如運行在通用計算機系統(tǒng)或專用機器上的)或者二者的結合。參考圖11,該方法以處理邏輯確定構成多媒體流的一個或多個成分是否需要實時處理開始(塊1100)。如果處理邏輯確定需要實時處理(塊1102)則處理邏輯將需要實時處理的一個或多個成分分配給一個或多個實時算法進程(塊1104)。最后,處理邏輯將任何剩余成分分配給一個或多個非實時算法程序算法進程(塊1106),然后該方法結束。
圖12是用于將多媒體流的成分分配給實時進程的方法的另一個實施例的流程圖。該方法由處理邏輯執(zhí)行,所述處理邏輯可包含硬件(電路、專用邏輯電路等待)、軟件(諸如運行在通用計算機系統(tǒng)或專用機器上的)或者二者的結合。參考圖12,該方法以處理邏輯將數(shù)據(jù)包分解成它的一個或多個成分開始(塊1200)。接著,處理邏輯確定對每個數(shù)據(jù)包內一個或多個需要實時處理的成分中的每一個進行實時處理所需的處理量(塊1202)。最后,處理邏輯將數(shù)據(jù)包中需要實時處理的一個或多個成分中的每一個分配給一個單獨的實時進程(塊1204),然后該方法結束。
圖13是用于在轉碼處理中忽略多媒體流的成分的方法的實施例的流程圖。該方法由處理邏輯執(zhí)行,所述處理邏輯可包含硬件(電路、專用邏輯電路等)、軟件(諸如運行在通用計算機系統(tǒng)或專用機器上的)或二者的結合。參考圖13,該方法以處理邏輯將數(shù)據(jù)包分解成它的一個或多個成分開始(塊1300)。然后,處理邏輯確定是否可以對所分解的數(shù)據(jù)包的所有成分進行實時轉碼(塊1302)。如果對它們進行實轉碼,則該方法結束。否則,處理邏輯檢查第一成分(塊1304)。當對該成分進行檢查時,處理邏輯確定該成分能否被忽略(塊1306)。
對于一個成分能否被忽略的判斷是基于諸如成分的處理優(yōu)先級和已被忽略的連續(xù)成分幀的數(shù)量等若干因素作出的。例如,如圖10中所討論的,如果算法進程沒有實時處理所有成分的處理能力,就必須決定忽略哪一個成分以及何時忽略它們。通過每隔一個地忽略視頻幀而使視頻分量速率下降至標準幀速率的一半要比連續(xù)丟棄15個幀而后連續(xù)對15個幀進行轉碼好。最終結果是,對于兩種不同的選擇而言。幀數(shù)量相同,但觀看感受到的質量卻不同。
回到圖13,如果可以忽略成分,則處理邏輯會忽略該成分(塊1308)。接著,處理邏輯確定所有的成分是否都已經過檢查(塊1310)。如果是這樣,則該方法結束。否則,處理邏輯檢查下一個成分(塊1312)。最終,被分解的數(shù)據(jù)包的所有成分都將得到檢查,然后該方法結束。在另一個實施例中,確定是否忽略流的一個或多個成分可包括并非僅轉碼的有關多媒體流處理的決定。因此,轉碼僅用作一個示例,可以替換為一個或多個可以對多媒體流執(zhí)行的功能。
附圖14是用于跳過對流的轉碼處理的方法的實施例的流程圖。該方法由處理邏輯執(zhí)行,所述處理邏輯可以包含硬件(電路、專用邏輯電路等)、軟件(諸如運行在通用計算機系統(tǒng)或專用機器上的)或者二者的結合。參考圖14,該方法以處理邏輯確定源設備發(fā)送的流的格式開始(塊1400)。接著,處理邏輯確定目的地設備所需的流格式(塊1402)。接著,處理邏輯確定這兩種格式是否相同(塊1404)。如果這兩種格式不相同,則處理邏輯對該流進行轉碼(塊1406),然后該方法結束。否則,如果上述兩種格式是相同的,處理邏輯不對該流進行轉碼并且將該流直接從源發(fā)送至目的地(塊1408),然后該方法結束。
圖15是用于將不需要實時處理但卻需要在確定的最大時延之前得到處理的多媒體流的成分分配給能夠在預定的最大時延內進行處理的進程的方法的實施例的流程圖。該方法由處理邏輯執(zhí)行,所述處理邏輯可以包含硬件(電路、專用邏輯電路等)、軟件(諸如運行在通用計算機系統(tǒng)或專用機器上的)或者二者的結合。參考圖15,該方法以處理邏輯確定對不需要實時處理的數(shù)據(jù)包內的每一個成分而言可允許的最大時延開始(塊1500)。在不同的實施例中,確定可允許的最大處理時延是基于若干因素作出的,這些因素包括正使用多媒體流的事物的類型、傳輸介質的速度(例如處理附屬于電子郵件的語音郵件所需的速度受限于電子郵件固有的延遲)以及許多其它因素。接著,處理邏輯將每一個不需要實時處理的成分分配給單獨的進程,其中每一個進程至少提供在允許的延遲時間內處理各相應成分所需的處理量(塊1502),然后該方法結束。
在許多之前的示范性實施例中,數(shù)據(jù)包主要涉及視頻成分和語音成分。在其它實施例中,數(shù)據(jù)包包含視頻、音頻、語音、數(shù)據(jù)、控制或者任何其它可設想的數(shù)據(jù)包類型中的任何一種或多種。此外,該示范性實施例涉及僅包含兩個成分的數(shù)據(jù)包。在其它實施例中,數(shù)據(jù)包可以包含任何可設想數(shù)量的成分(即大于或等于一個成分)。最后,在許多示范性實施例中,單個算法進程負責處理所有單一類型的成分。在其它實施例中,可以將超過一個的算法進程分配給一個單一類型的成分。因此,在許多實施例中,兩個或更多個算法進程可以交替處理任務,并且每個算法進程能夠每隔一個(或者每隔三個、四個等)對單一類型的打包的成分進行處理。
至此,公開了用于處理多媒體流的有效方法的實施例。這些實施例已通過參照特定的示范性實施例作了描述。然而,在不脫離本文所述實施例的較寬的精神和范圍的情況下,可對這些實施例作各種修改和變化,這對得益于本公開的人而言是顯而易見的。因此,本說明書及其附圖應在說明性而非限制性的意義上加以理解。
權利要求
1.一種方法,包括確定組成多媒體流的一個或多個成分是否需要實時處理;如果至少一個或多個成分需要實時處理,則將需要實時處理的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
2.如權利要求1所述的方法,其中多媒體流包含多個數(shù)據(jù)包,每個數(shù)據(jù)包具有全部所述一個或多個成分中的包化的一部分。
3.如權利要求2所述的方法,其中所述一個或多個成分中的每一個包含一個或多個視頻信息、音頻信息、語音信息、數(shù)據(jù)信息和控制信息。
4.如權利要求2所述的方法,其中實時處理包含確定所述流的源設備發(fā)送數(shù)據(jù)包的速率;以及至少以流的源設備發(fā)送數(shù)據(jù)包的速率處理構成每一個數(shù)據(jù)包的一個或多個成分中的每一個。
5.如權利要求4所述的方法,其中將所述流的一個或多個需要實時處理的成分分配給一個或多個實時進程包括將所述流中的每一個數(shù)據(jù)包分解成它的一個或多個成分;確定對每個數(shù)據(jù)包內需要實時處理的一個或多個成分中的每一個進行實時處理所需的處理量;以及將每個數(shù)據(jù)包內需要實時處理的一個或多個成分中的每一個分配給單獨的進程。
6.如權利要求5所述的方法,其中進程包括在計算設備上的可執(zhí)行線程。
7.如權利要求5所述的方法,進一步包括將每個數(shù)據(jù)包內的一個或多個成分中的每一個分配給各計算設備上的進程。
8.如權利要求3所述的方法,進一步包括為成分分配優(yōu)先級級別,其中所述優(yōu)先級級別是基于成分的信息的重要性計算的。
9.如權利要求8所述的方法,其中將任何剩余成分分配給一個或多個非實時進程進一步包括確定對每個數(shù)據(jù)包內不需要實時處理的每個成分而言允許的最大時延;以及將每個數(shù)據(jù)包內不需要實時處理的每個成分分配給單獨的進程,其中每一個進程至少提供在允許的時延內處理各相應的成分所需的處理量。
10.如權利要求8所述的方法,進一步包括順序地處理一個數(shù)據(jù)包的多個成分,其中待處理成分的順序依照成分的優(yōu)先級的順序,最高優(yōu)先級的成分被首先處理,而最低優(yōu)先級的成分被最后處理。
11.如權利要求10所述的方法,進一步包括通過在數(shù)據(jù)包創(chuàng)建之后立即在存儲設備上實時地暫時存儲數(shù)據(jù)包流,以防止低優(yōu)先級的數(shù)據(jù)包的信息丟失。
12.如權利要求8所述的方法,進一步包括如果所述流的所有成分不能被實時地處理,則確定來自至少一個數(shù)據(jù)包的至少一個成分在處理時能否被忽略;如果至少一個成分能夠被忽略,則忽略該成分。
13.如權利要求12所述的方法,進一步包括忽略具有最低優(yōu)先權級別的成分。
14.如權利要求13所述的方法,進一步包括設置含有相同被忽略成分的連續(xù)的數(shù)據(jù)包的最大數(shù)量。
15.如權利要求1所述的方法,進一步包括確定從源設備發(fā)送的流的格式;確定目的地設備所需的流格式;如果源設備的流格式與目的地設備所需的流格式相同,則直接在源設備與目的地設備之間傳送該流而無需對該流進行處理。
16.如權利要求8所述的方法,進一步包括將兩個或更多個成分分配給同一個進程,每個成分的優(yōu)先級決定處理的順序。
17.如權利要求1所述的方法,進一步包括確定組成一個多媒體流的一個或多個成分是否需要實時轉碼;如果所述一個或多個成分中的至少一個需要實時轉碼,則將需要實時轉碼的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
18.一種其中嵌入了指令的機器可讀介質,當這些指令被機器執(zhí)行時,使機器執(zhí)行包括如下步驟的方法確定組成一個多媒體流的一個或多個成分是否需要實時處理;如果所述一個或多個成分中的至少一個需要實時處理,則將需要實時處理的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
19.如權利要求18所述的機器可讀介質,其中所述多媒體流包含多個數(shù)據(jù)包,每個數(shù)據(jù)包具有全部所述一個或多個成分中的包化的一部分。
20.如權利要求19所述的機器可讀介質,其中所述一個或多個成分中的每一個包含來自包括視頻信息、音頻信息、語音信息、數(shù)據(jù)信息和控制信息的列表的一類信息。
21.如權利要求19所述的機器可讀介質,其中實時處理包含確定流的源設備發(fā)送所述數(shù)據(jù)包的速率;以及至少以所述流源設備發(fā)送數(shù)據(jù)包的速率處理構成每一個數(shù)據(jù)包的一個或多個成分中的每一個。
22.如權利要求21所述的機器可讀介質,其中將所述流的一個或多個需要實時處理的成分分配給一個或多個實時進程包括將所述流中的每一個數(shù)據(jù)包分解成它的一個或多個成分;確定對每個數(shù)據(jù)包內需要實時處理的一個或多個成分中的每一個進行實時處理所需的處理量;以及將每個數(shù)據(jù)包內的一個或多個成分中的每一個分配給單獨的進程。
23.如權利要求20所述的機器可讀介質,進一步包括向一個成分分配優(yōu)先級級別,其中所述優(yōu)先級級別是基于該成分的信息的重要性來計算的。
24.如權利要求23所述的機器可讀介質,其中將任何剩余成分分配給一個或多個非實時進程進一步包括確定對每個數(shù)據(jù)包內不需要實時處理的每個成分而言允許的最大時延;以及將每個數(shù)據(jù)包內不需要實時處理的每個成分分配給單獨的進程,其中每一個進程至少提供用于在所述允許的時延內處理各相應成分所需的處理量。
25.如權利要求23所述的機器可讀介質,進一步包括順序地處理數(shù)據(jù)包的多個成分,其中待處理成分的順序依照成分的優(yōu)先級的順序,最高優(yōu)先級的成分被首先處理,而最低優(yōu)先級的成分被最后處理。
26.如權利要求23所述的機器可讀介質,進一步包括如果所述流的全部成分不能被實時地處理,則確定來自至少一個數(shù)據(jù)包的至少一個成分在被處理時能否被忽略;如果至少一個成分可以被忽略,則忽略該成分。
27.如權利要求26所述的機器可讀介質,進一步包括忽略具有最低優(yōu)先權級別的成分。
28.如權利要求27所述的機器可讀介質,進一步包括設置具有相同的被忽略成分的連續(xù)數(shù)據(jù)包的最大數(shù)量。
29.如權利要求18所述的機器可讀介質,進一步包括確定從源設備傳送的流的格式;確定目的地設備所需的流的格式;如果所述源設備的流的格式與目的地設備所需的流的格式相同,則直接在所述源設備與所述目的地設備之間傳送該流而無需對該流進行處理。
30.一個系統(tǒng),包括總線;連接至所述總線的處理器;連接至所述總線的網(wǎng)絡接口卡;連接至所述處理器的存儲器,該存儲器適用于存儲指令,所述指令在由所述處理器執(zhí)行時執(zhí)行如下步驟確定組成多媒體流的一個或多個成分是否需要實時處理;如果所述一個或多個成分中的至少一個需要實時處理,則將需要實時處理的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
31.如權利要求30所述的系統(tǒng),其中所述多媒體流包含多個數(shù)據(jù)包,每個數(shù)據(jù)包具有全部所述一個或多個成分中的包化的一部分。
32.如權利要求31所述的系統(tǒng),其中所述一個或多個成分中的每一個包含來自包括視頻信息、音頻信息、語音信息、數(shù)據(jù)信息和控制信息的列表的一類信息。
33.如權利要求32所述的系統(tǒng),其中實時處理包含確定流的源設備傳送所述數(shù)據(jù)包的速率;以及至少以所述流的源設備傳送數(shù)據(jù)包的速率處理構成每一個數(shù)據(jù)包的一個或多個成分中的每一個。
34.如權利要求33所述的系統(tǒng),其中將所述流的一個或多個需要實時處理的成分分配給一個或多個實時進程包括將所述流中的每一個數(shù)據(jù)包分解成它的一個或多個成分;確定對構成每個數(shù)據(jù)包的一個或多個成分中的每一個進行實時處理所需的處理量;以及將每個數(shù)據(jù)包內的一個或多個成分中的每一個分配給單獨的進程。
35.如權利要求34所述的系統(tǒng),其中進程包括在計算設備上的可執(zhí)行線程。
36.如權利要求34所述的系統(tǒng),進一步包括將每個數(shù)據(jù)包內的一個或多個成分中的每一個分配給在各計算設備上的進程。
37.如權利要求32所述的系統(tǒng),進一步包括向成分分配優(yōu)先級級別,其中所述優(yōu)先級級別是基于成分的信息的重要性來計算的。
38.如權利要求37所述的系統(tǒng),進一步包括順序地處理數(shù)據(jù)包的多個成分,其中待處理成分的順序依照成分的優(yōu)先級的順序,最高優(yōu)先級的成分被首先處理,而最低優(yōu)先級的成分被最后處理。
39.如權利要求38所述的系統(tǒng),進一步包括通過在創(chuàng)建數(shù)據(jù)包之后立即實時地在存儲設備上暫時存儲數(shù)據(jù)包的流,以防止低優(yōu)先級的數(shù)據(jù)包的信息丟失。
40.如權利要求38所述的系統(tǒng),進一步包括如果流的全部成分不能被實時地處理,則確定來自至少一個數(shù)據(jù)包的至少一個成分在被處理時能否被忽略;如果至少一個成分可以被忽略,則忽略該成分。
41.如權利要求40所述的系統(tǒng),進一步包括忽略具有最低優(yōu)先權級別的成分。
42.如權利要求41所述的系統(tǒng),進一步包括設置具有相同的被忽略成分的連續(xù)數(shù)據(jù)包的最大數(shù)量。
43.如權利要求30所述的系統(tǒng),進一步包括確定從源設備傳送的流的格式;確定目的地設備所需的流的格式;如果所述源設備的流的格式與所述目的地設備所需的流的格式相同,則直接在所述源設備與所述目的地設備之間傳送該流而無需對該流進行處理。
44.如權利要求34所述的系統(tǒng),其中將任何剩余成分分配給一個或多個非實時進程進一步包括確定對每個數(shù)據(jù)包內不需要實時處理的每個成分而言允許的最大時延;以及將每個數(shù)據(jù)包內不需要實時處理的每個成分分配給單獨的進程,每一個進程至少提供對所述允許的時延內處理各相應成分所需的處理量。
45.一種設備,包括流分解單元,可用于將第一多媒體流分解成它的各個成分;進程分配單元,可用于將一個或多個成分分配給一個或多個進程;算法處理邏輯,可用于處理一個或多個單獨成分中的每一個;以及流打包單元,可用于將一個或多個經過處理的各個成分中的至少一個打包成第二多媒體流。
46.如權利要求45所述的設備,其中所述進程分配單元還可用于確定每個成分的優(yōu)先級并且將具有最高優(yōu)先級的成分分配給最高優(yōu)先級的進程。
47.如權利要求45所述的設備,其中所述進程分配單元還可用于向所述流分解單元發(fā)送有關將一個或多個單獨成分中的每一個進行打包的優(yōu)先級的信息。
48.如權利要求45所述的設備,其中所述算法處理邏輯還可用于發(fā)送有關所述算法處理邏輯可用于處理所述一個或多個單獨成分中的每一個的資源的信息。
49.如權利要求47所述的設備,其中所述流打包單元還可用于依照所述各成分的優(yōu)先級對所述一個或多個單獨成分中的每一個進行打包處理。
50.如權利要求45所述的設備,其中所述流打包單元還可用于向目的地設備發(fā)送一個或多個經過打包的成分中的每一個。
全文摘要
公開了一種方法、機器可讀介質、系統(tǒng)以及設備。在一個實施例中,該方法包含如下步驟確定組成多媒體流的一個或多個成分是否需要實時處理,如果一個或多個成分中的至少一個需要實時處理,則將需要實時處理的一個或多個成分分配給一個或多個實時進程;以及將任何剩余成分分配給一個或多個非實時進程。
文檔編號H04N7/24GK1805427SQ20051011915
公開日2006年7月19日 申請日期2005年12月21日 優(yōu)先權日2004年12月22日
發(fā)明者M·庫納斯 申請人:英特爾公司