具有用于自適應(yīng)流送和故障轉(zhuǎn)移的支持的可縮放實時代碼轉(zhuǎn)換的制作方法
【專利摘要】在本文中公開了一種用于實時流送平臺的系統(tǒng)和方法,其能夠冗余地處理并行攝取管線中的輸入流??梢允褂迷诠芫€中的每個流中創(chuàng)建相同段的分段功能來將并行管線中的攝取的輸入流分段。如果發(fā)生錯誤或者在輸入流或管線中的一個或多個中存在中斷,則實時流送平臺可以確保段是可識別的,并且管線的不同部分可以在沒有中斷的情況下在不同的時間點加入主流。
【專利說明】具有用于自適應(yīng)流送和故障轉(zhuǎn)移的支持的可縮放實時代碼轉(zhuǎn)換
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2012年4月11日提交的題為“SCALABLE, LIVE TRANSCODING WITHSUPPORT FOR ADAPTIVE STREAMING AND FAILOVER” 的美國專利申請序號 13/444,787 的權(quán)益。其全部內(nèi)容通過引用被合并到本文中。
【技術(shù)領(lǐng)域】
[0003]本公開一般地涉及魯棒的可縮放實時流送,更具體地涉及無論其中流加入處理管線(pipeline)的點或冗余流中的間歇性破壞如何,都動態(tài)地生成一致的輸出流。
【發(fā)明內(nèi)容】
[0004]在因特網(wǎng)上對當(dāng)前事件的實時流送增加了對可靠流送基礎(chǔ)設(shè)施的需求。實時流送饋送一般地在諸如主要政治談話和事件、體育事件及其中廣大觀眾依賴于實時流送饋送適當(dāng)?shù)剡\行的其他文化事件之類的情況下使用。然而,由于此規(guī)模的任何處理和輸送系統(tǒng)的分布式性質(zhì),部件故障是不可避免的且可能中斷或影響輸出流的質(zhì)量。
[0005]當(dāng)前,web上的任務(wù)關(guān)鍵實時流送是通過以下這種構(gòu)建冗余的方式來實現(xiàn)的:使分立的硬件和/或軟件編碼器推送大致等價的流以被冗余地編碼。這種編碼是在產(chǎn)生分立的主要和輔助流的完全分立的編碼路徑中進行的。作為到冗余流的自動切換的故障轉(zhuǎn)移(failover)試圖使中斷最小化,但是由于其使用分離和/或多樣的部件,所以一般地難以實現(xiàn)無干擾的故障轉(zhuǎn)移。
[0006]下文提出了本公開的各個方面的簡化概要以便提供此類方面的基本理解。此概要不是所有預(yù)期方面的廣泛概述,并且既不意圖識別關(guān)鍵或重要元件也不描述此類方面的范圍。其目的是以簡化的形式提出本公開的某些概念作為稍后提出的更詳細描述的前奏。
[0007]本文公開的系統(tǒng)和方法涉及通過生成音頻和/或視頻數(shù)據(jù)的等效段(equivalentsegments),以不同的代碼轉(zhuǎn)換質(zhì)量來處理自適應(yīng)位速率流送。所公開的系統(tǒng)的示例包括存儲計算機可執(zhí)行部件的存儲器和執(zhí)行可執(zhí)行部件的處理器。該系統(tǒng)包括在用于多個代碼轉(zhuǎn)換管線的輸入流的間隔內(nèi)識別段邊界的段識別部件。代碼轉(zhuǎn)換部件對所述多個代碼轉(zhuǎn)換管線的輸入流進行代碼轉(zhuǎn)換。該系統(tǒng)包括分段部件,其基于所識別的段邊界將輸入流分段成等效塊,其中,輸入流包括不同的代碼轉(zhuǎn)換質(zhì)量。
[0008]在本文中還公開了一種方法,其包括使用處理器來執(zhí)行存儲在存儲器中的計算機可執(zhí)行指令以執(zhí)行該方法的動作。該動作包括在用于多個代碼轉(zhuǎn)換管線的輸入流的間隔內(nèi)識別輸入流的段邊界。所述多個代碼轉(zhuǎn)換管線的輸入流被代碼轉(zhuǎn)換。經(jīng)代碼轉(zhuǎn)換的輸入流基于所識別的段邊界而被分段成等效塊,其中經(jīng)代碼轉(zhuǎn)換的輸入流具有不同的代碼轉(zhuǎn)換質(zhì)量。
[0009]在本文中還公開了一種非臨時計算機可讀存儲介質(zhì),其包括響應(yīng)于執(zhí)行而促使計算系統(tǒng)執(zhí)行操作的計算機可執(zhí)行指令,該操作包括識別代碼轉(zhuǎn)換管線的第一冗余輸入流和第二冗余輸入數(shù)據(jù)流的段邊界。第一冗余輸入流和第二輸入數(shù)據(jù)流被并行地進行代碼轉(zhuǎn)換。第一冗余輸入流和第二冗余輸入流基于所識別的段邊界被進一步分段成等效塊。
[0010]以下描述和附圖詳細地闡述了本公開的某些說明性方面。然而,這些方面指示可用以采用本公開的原理的各種方式中的僅幾個。本公開意圖包括所有此類方面及其等價物。當(dāng)結(jié)合附圖來考慮時,根據(jù)本公開的以下詳細描述,本公開的其他優(yōu)點和不同特征將變得顯而易見。
【專利附圖】
【附圖說明】
[0011]圖1是圖示出根據(jù)本文所述的各個方面和實施方式的實時流送框架的示例性、非限制性實施例的框圖。
[0012]圖2是圖示出根據(jù)本文所述的各個方面和實施方式的具有并行攝取管線的冗余攝取系統(tǒng)的示例性、非限制性實施例的框圖。
[0013]圖3是圖示出根據(jù)本文所述的各個方面和實施方式的可以對流進行分段和代碼轉(zhuǎn)換的系統(tǒng)的示例性、非限制性實施例的框圖。
[0014]圖4是圖示出根據(jù)本文所述的各個方面和實施方式處理的各種代碼轉(zhuǎn)換流的示例性、非限制性實施例的時間順序圖。
[0015]圖5是圖示出根據(jù)本文所述的各個方面和實施方式的可以對輸入流進行代碼轉(zhuǎn)換的系統(tǒng)的示例性、非限制性實施例的框圖。
[0016]圖5是圖示出根據(jù)本文所述的各個方面和實施方式的用于處理代碼轉(zhuǎn)換流的示例性、非限制性實施例的圖。
[0017]圖7圖示出根據(jù)本文所述的各個方面和實施方式的用于對輸入流進行選擇、分段、標(biāo)記和同步的系統(tǒng)的示例性、非限制性實施例的框圖。
[0018]圖8圖示出根據(jù)本文所述的各個方面和實施方式的用于對輸入流進行識別、代碼轉(zhuǎn)換和分段的示例性、非限制性實施例的流程圖。
[0019]圖9是圖示出根據(jù)本文所述的各個方面和實施方式布置的示例性計算設(shè)備的框圖。
[0020]圖10是圖示出根據(jù)本公開的各個方面和實施方式的示例性聯(lián)網(wǎng)環(huán)境的框圖。
【具體實施方式】
[0021]概述
[0022]現(xiàn)在參考附圖來描述本公開的各個方面,其中相同的附圖標(biāo)記在通篇中用來指代相同的元件。在以下的描述中,出于說明的目的,闡述了許多特定細節(jié)以便提供一個或多個方面的透徹理解。然而,應(yīng)理解的是可在沒有這些特定細節(jié)的情況下或者用其他方面、部件、材料等來實施本公開的某些方面。在其他情況下,以框圖形式示出了眾所周知的結(jié)構(gòu)和設(shè)備以促進描述一個或多個方面。
[0023]應(yīng)認識到的是根據(jù)在本文中描述的一個或多個實施方式,用戶可以選擇退出提供與數(shù)據(jù)收集方面相關(guān)的個人信息、人口統(tǒng)計信息、位置信息、專有信息、敏感信息等。此外,本文所述的一個或多個實施方式可以提供使已收集、接收或發(fā)送的數(shù)據(jù)匿名。
[0024]可以在冗余實時代碼轉(zhuǎn)換管線中相干地處理實時流送輸入流以更好地處理故障轉(zhuǎn)移事件和自適應(yīng)位速率流送。針對實時代碼轉(zhuǎn)換,可以在故障的情況下以及為了支持不同的代碼轉(zhuǎn)換質(zhì)量(諸如多個分辨率/位速率)而提供冗余代碼轉(zhuǎn)換器,其中,多個實時代碼轉(zhuǎn)換器管線相互并行地操作。當(dāng)發(fā)布被代碼轉(zhuǎn)換的實時視頻流時,以規(guī)則間隔使不同的經(jīng)代碼轉(zhuǎn)換的流對準,其使得能夠?qū)崿F(xiàn)流之間的切換,以適應(yīng)位速率或者由于管線的故障,并且提供用戶觀看的無縫體驗。然而,視頻流處理管線的不同部分常常出故障且必須在任意時間點重新加入視頻流。為了進一步管理自適應(yīng)位速率流送,必須考慮并處理不同的代碼轉(zhuǎn)換質(zhì)量,其中,用音頻和/或視頻數(shù)據(jù)的等效段來生成系統(tǒng)的不同代碼轉(zhuǎn)換質(zhì)量。
[0025]在實施例中,實時流送平臺可以完全在‘云,環(huán)境內(nèi)操作,并且因此可以以對最終用戶不可見的方式提供系統(tǒng)。在云環(huán)境中提供實時流送平臺意味著攝取框架可以是服務(wù)器,其接收輸入多播實時流,處理該實時流,并向各種播放器輸送魯棒且穩(wěn)定的流,也基于向最終用戶輸送實時流的服務(wù)器。該最終用戶可以經(jīng)由web瀏覽器或輕量級應(yīng)用來訪問實時流??梢詮亩鄠€攝取路徑創(chuàng)建相干流,并且在流中的任何一個的任何部分出故障時,可以從該相干流重構(gòu)整個的單個流。
[0026]可以在并行攝取管線中處理輸入流的副本,并且可以在保存流的時間信息(時間戳)的同時將輸入流代碼轉(zhuǎn)換成期望的輸出流(以不同的位速率)。可以使用分段功能來將這些流相干地分段,該分段功能基于輸入流的位掩碼/模N流加入和分塊來識別段邊界,其中,N是用于一個塊的目標(biāo)長度。這可以例如通過跨所有子流在公共關(guān)鍵幀處將分段過程初始化來實現(xiàn),導(dǎo)致同樣分段的冗余輸入流。
[0027]在另一實施例中,塊代碼轉(zhuǎn)換系統(tǒng)生成等效段,無論兩個流在哪里加入,或者無論流在什么時間加入。段識別部件在用于多個代碼轉(zhuǎn)換管線的輸入流的間隔內(nèi)識別段邊界,并且分段部件基于所識別的段邊界而將輸入流分段成等效塊,其中,輸入流包括不同的代碼轉(zhuǎn)換質(zhì)量。組合部件將來自所述多個代碼轉(zhuǎn)換管線的輸入流組合成具有等效塊的單個流,該輸入流包括音頻流和視頻流。術(shù)語等效塊包括術(shù)語等效段,其被定義為大致相同長度的經(jīng)代碼轉(zhuǎn)換視頻的一小部分,其對應(yīng)于音頻和/或視頻數(shù)據(jù)的相同源。例如,相同長度可以是相同持續(xù)時間或時間長度。
[0028]現(xiàn)在參考附圖,圖1圖示出根據(jù)各個方面和實施方式的示例性實時流送系統(tǒng)100的框圖。可以提供實時流送框架102以攝取和/或處理實時媒體饋送并將其分發(fā)到媒體播放器112。媒體播放器112可以解釋視頻信號并使用每個目標(biāo)平臺的本原媒體堆棧來顯示輸出。播放器112還可以包括集成的貨幣化模塊。
[0029]實時流送基礎(chǔ)設(shè)施102可以包括攝取基礎(chǔ)設(shè)施104、源基礎(chǔ)設(shè)施106、內(nèi)容分發(fā)網(wǎng)絡(luò)108以及流/事件控制應(yīng)用編程接口(“API”)110。攝取基礎(chǔ)設(shè)施104可以接收輸入媒體饋送并冗余地處理分立管線中的實時饋送。源基礎(chǔ)設(shè)施106可以將實時媒體流保存到存儲器,并使實時流準備好輸送到內(nèi)容分發(fā)網(wǎng)絡(luò)108,其將實時媒體流輸送到媒體播放器112。流控制API 110可以為廣播伙伴提供開始和/或停止事件的能力,配置貨幣化設(shè)置,并且一般地管理廣播事件組及其生命周期。
[0030]現(xiàn)在轉(zhuǎn)到圖2,示出了圖示出根據(jù)各個方面和實施方式的具有并行攝取管線的冗余攝取系統(tǒng)200的示例性、非限制性實施例的框圖。在攝取基礎(chǔ)設(shè)施104中,在攝取輸入點202和212處接收冗余實時媒體流。一旦被接收,冗余實時媒體流被并行管線204、210、214和216攝取并處理且最后在經(jīng)由內(nèi)容分發(fā)網(wǎng)絡(luò)108分發(fā)之前被實時塊管理器(例如206)保存到源基礎(chǔ)設(shè)施106中的存儲器208。
[0031]攝取輸入點202和212可以接收通過與廣播發(fā)起者的直接對等獲取的多播信號或經(jīng)由通過攝取服務(wù)器的全球網(wǎng)獲取的實時消息發(fā)送協(xié)議(“RTMP”)信號。攝取輸入點202和212還可以經(jīng)由可恢復(fù)POST請求或作為預(yù)分段流(具有會話指示符的獨立POST)從基于超文本傳輸協(xié)議(“HTTP”)的攝取接收輸入流。攝取輸入點202和212還可以從共同地被用于輸送實時媒體饋送的其他源接收實時媒體流。一旦接收到冗余實時媒體流,則并行攝取管線204、210、214和216可以并行地攝取并處理冗余實時媒體流。應(yīng)認識到的是雖然圖2描述了管線204和214處理來自輸入點202的實時流,并且管線214和216正在處理來自輸入點212的實時流,可以存在管線與輸入點的任何組合。在某些實施例中,每個輸入點可以存在少于或多于兩個并行管線,并且在其他實施例中,可以存在多于或少于兩個輸入點。
[0032]攝取管線204、210、214和216可以處理實時流并使其準備好輸送到內(nèi)容分發(fā)網(wǎng)絡(luò)108。在攝取管線204、210、214和216中包括代碼轉(zhuǎn)換部件218,并且可以包括其他處理模塊,諸如分段識別部件218、緩沖部件(未示出)以及代碼轉(zhuǎn)換段。管線204、210、214和216還可以包括可以向?qū)崟r媒體流中插入可調(diào)整的延遲的延遲部件222。攝取管線還可以包括封裝器和/或加密部件以將流封裝成容器格式和/或?qū)⑵浼用堋?br>
[0033]管線204、210、214和216中的分段識別部件218可以識別攝取輸入流中的段邊界且分段部件可以基于段邊界而將輸入流分段。與被選擇用于與每個緩沖段的管線相關(guān)聯(lián)的實時塊管理器將段輸出到源基礎(chǔ)設(shè)施106中的下一步驟以便在輸送到內(nèi)容分發(fā)網(wǎng)絡(luò)108之前進行索引和存儲。并行攝取管線的此布置在所有層處對系統(tǒng)的魯棒性進行縮放,從源材料的攝取到編碼、存儲、到按需資產(chǎn)的轉(zhuǎn)換、發(fā)布以及流送。
[0034]進一步在這方面,提供相應(yīng)攝取管線的冗余代碼轉(zhuǎn)換器部件222以便支持多個分辨率和位速率,其導(dǎo)致多個實時代碼轉(zhuǎn)換器部件222并行地操作。代碼轉(zhuǎn)換器部件222的代碼轉(zhuǎn)換器部件在發(fā)布流時以規(guī)則間隔對準地操作,其確保流之間的切換,以適應(yīng)位速率或者由于任何一個特定管線的故障。
[0035]為了確保在不同的任意時間點的流的無縫加入,系統(tǒng)200生成等效段,無論任何兩個或更多流在哪里加入該過程。換言之,無論任何一個單獨代碼轉(zhuǎn)換器部件222在哪里讀取輸入流,其將忽視輸入字節(jié)直至代碼轉(zhuǎn)換器部件222根據(jù)下面進一步討論的一致的分塊規(guī)則來檢測一致的塊或分段間隔。
[0036]現(xiàn)在轉(zhuǎn)到圖3,圖示出系統(tǒng)300的框圖,其具有將視頻流分離成塊且并行地對這些塊進行代碼轉(zhuǎn)換(例如,MPEG-2傳輸流視頻流塊)的代碼轉(zhuǎn)換部件222。這些塊例如是等效塊,所述等效塊是作為等效段而生成的,無論這些流在哪里加入或這些流在什么時間被相應(yīng)處理管線的代碼轉(zhuǎn)換部件讀取。
[0037]代碼轉(zhuǎn)換器部件222包括分離部件304,其將輸入流302分離成音頻和視頻流(例如,解復(fù)用器或類似部件)。音頻流被發(fā)送到流送音頻代碼轉(zhuǎn)換器308,其將音頻流從一個或多個格式代碼轉(zhuǎn)換成另一個。視頻流被發(fā)送到流送視頻代碼轉(zhuǎn)換器310,其并行地或相互基本上同時地對視頻流進行代碼轉(zhuǎn)換,包括冗余視頻流和/或不同視頻流。例如,代碼轉(zhuǎn)換器部件222利用視頻流的等效塊或等效段并行地對視頻流進行代碼轉(zhuǎn)換。塊被沿著多個代碼轉(zhuǎn)換管線被并行地進行代碼轉(zhuǎn)換,其可以包括被操作地連接到流送視頻代碼轉(zhuǎn)換器310的各種從屬代碼轉(zhuǎn)換器。
[0038]代碼轉(zhuǎn)換部件222包括段識別部件306,其可以被容納在攝取管線內(nèi)、代碼轉(zhuǎn)換部件222內(nèi)或在別處。段識別部件306識別用于對視頻流部分進行代碼轉(zhuǎn)換的所述多個代碼轉(zhuǎn)換管線的輸入流間隔內(nèi)的段邊界。段識別部件306可以包括屬性或標(biāo)記部件,其將元數(shù)據(jù)歸屬于或標(biāo)記成包括等效塊數(shù)據(jù)的時間戳的輸入流。例如,可以通過附接到(例如,加標(biāo)簽)到等效塊來保持視頻流的開始時間和結(jié)束時間。替選地,可以通過生成對應(yīng)于所識別的等效視頻流塊的流的等效塊元數(shù)據(jù)來保持原始時間戳數(shù)據(jù)。
[0039]代碼轉(zhuǎn)換部件222包括聯(lián)合部件312,其生成代碼轉(zhuǎn)換流(例如HTTP實時流送(HLS)MPEGTS/H264/AAC)段或任何類似分段的實時自適應(yīng)流。聯(lián)合部件312將輸入流組合,使得來自所述多個代碼轉(zhuǎn)換管線的音頻和視頻流被結(jié)合成具有流數(shù)據(jù)的等效塊或段的單個流。
[0040]為了使得系統(tǒng)300能夠在操作上對并行視頻流進行代碼轉(zhuǎn)換且可適合于各種位速率,代碼轉(zhuǎn)換部件222進行操作以經(jīng)由段識別部件306以一致的間隔創(chuàng)建視頻流的等效塊,段識別部件306進一步一致地標(biāo)記這些間隔達相同的長度或持續(xù)時間。例如,段識別部件306發(fā)現(xiàn)可分塊邊界(用于流段的時間間隔),其可以例如對應(yīng)于用于H.264輸入的IDR幀。為了獲得一致性,采用輸入流的位掩碼/模N流加入和分塊,其中,N是用于塊/段的目標(biāo)長度,其中,該長度可以是指定時間或持續(xù)時間長度。例如,如果用于視頻分組的時間戳是t2、t3、...,則一致的可分塊邊界可以是(tk/N) ! = (tn/N)之后的第一可分塊邊界,其中,V’表示整數(shù)除法。
[0041]為了獲得一致性,可以由代碼轉(zhuǎn)換器部件222采用各種規(guī)則來對不同代碼轉(zhuǎn)換質(zhì)量的視頻流的等效塊或段進行代碼轉(zhuǎn)換。例如,所有音頻和/或視頻分組都被丟棄直至識別到可分塊邊界或所識別邊界,其使得能夠根據(jù)所識別的邊界在代碼轉(zhuǎn)換過程中將流無縫地結(jié)合。另外,根據(jù)一致的邊界將流分塊。換言之,將流一致地分塊成等效塊。
[0042]圖4圖示出包括時間戳跳躍和在不同的時間加入原始流的兩個代碼轉(zhuǎn)換流的原始流的示例。在沒有分塊并用時間戳屬性對塊進行標(biāo)記的一致方式的情況下,發(fā)布部件例如在能夠使接收到的不同流對準方面受到限制,這由于諸如具有時間戳跳躍和重置的MPEG2傳輸流(M2TS)之類的高質(zhì)量輸入流而變得復(fù)雜。因此,代碼轉(zhuǎn)換器部件不一定包含對應(yīng)于輸入流的原始時間戳的時間戳。
[0043]圖4中的時間戳例如在標(biāo)簽“時間戳跳躍”下面的原始流的時間8和14之間示出。由于原始流具有可分塊邊界(所識別的段邊界),所以可以在任何時間無縫地將并行的冗余或其他代碼轉(zhuǎn)換流結(jié)合,并且不同的位速率流在該過程中可以是可修改的。如所示,在如箭頭點所指定的不同時間將代碼轉(zhuǎn)換流txA和代碼轉(zhuǎn)換流txB與原始流結(jié)合。不一致地等效的塊的相應(yīng)流的一部分被丟棄或忽視。
[0044]參考圖5,圖示出將視頻流分離成塊、并行地對塊進行代碼轉(zhuǎn)換且可以將經(jīng)代碼轉(zhuǎn)換的視頻塊合并的代碼轉(zhuǎn)換部件的示例性實施例。流視頻代碼轉(zhuǎn)換部件222作為實時代碼轉(zhuǎn)換系統(tǒng)進行操作,其將視頻流劃分成塊,并且基于可用的從屬代碼轉(zhuǎn)換器時隙進行操作以提供用于目標(biāo)代碼轉(zhuǎn)換的可調(diào)整延遲,諸如用延遲部件220 (上文討論)。
[0045]在記錄視頻并作為輸入提供給代碼轉(zhuǎn)換部件222之后,例如,段識別部件306識別可分塊邊界,或者換言之,用于多個代碼轉(zhuǎn)換管線的輸入流的間隔內(nèi)的段邊界。視頻流代碼轉(zhuǎn)換器部件310接收視頻流中的所識別的邊界,其在流音頻代碼轉(zhuǎn)換器308中被與音頻流并行地(基本上同時地)處理。視頻流代碼轉(zhuǎn)換器部件310向從屬代碼轉(zhuǎn)換器時隙406分配代碼轉(zhuǎn)換流以用于并行處理,其中,故障和自適應(yīng)流送可以將流加入到在段部件402(例如,塊分離器)處正在被處理的原始流。合并器部件404將經(jīng)代碼轉(zhuǎn)換的視頻流合并并將其轉(zhuǎn)送到聯(lián)合部件312,其中,音頻和視頻流根據(jù)塊的段邊界被組合成具有段的單個流以在管線中生成等效段。
[0046]圖6圖示出根據(jù)輸入時間和顯示時間的塊的處理時間。示出了在記錄視頻的時間與顯示時間之間的延遲,使得在記錄之后,將視頻作為輸入提供給代碼轉(zhuǎn)換器,當(dāng)存在足夠的數(shù)據(jù)時,塊開始處理。該顯示時間因此對應(yīng)于塊的最壞情況處理時間加某個加法因數(shù)以考慮不確定性、合并/復(fù)用開銷以及系統(tǒng)內(nèi)的其他延遲。在一個實施例中,延遲可以是可針對具有不同代碼轉(zhuǎn)換質(zhì)量(位速率、格式等)的不同輸入流而調(diào)整的。根據(jù)代碼轉(zhuǎn)換管線內(nèi)的處理的等待時間(latency),該延遲例如是自適應(yīng)的。
[0047]現(xiàn)在參考圖7,示出了一種根據(jù)各種方面和實施方式的生成具有元數(shù)據(jù)的等效塊的系統(tǒng)。系統(tǒng)700可以包括具有段識別部件702、屬性或標(biāo)記部件704、分段部件706和同步部件708的攝取基礎(chǔ)設(shè)施104的一部分。在710、712和714處示出了處于處理的不同階段的具有實時媒體流的并行攝取管線。應(yīng)認識到的是雖然圖7示出了攝取基礎(chǔ)設(shè)施104中的一個分段部件702、一個屬性部件704、一個分段部件706以及一個同步部件708,但這是為了簡化而完成的,并且每個并行攝取管線可以包括這些部件。
[0048]分段識別部件702可以識別所攝取的輸入流中的段邊界,并且然后分段部件706基于段(可分塊)邊界而將輸入流分段。段識別部件702和段部件706也可以將每個管線中的每個并行攝取的輸入流分段,或者替選地分立部件可以識別分立輸入流并將其分段。
[0049]段識別部件702接收未分段的輸入流708并識別輸入流中的段。在某些實施例中,所識別的段邊界可以基于幀的數(shù)目(即每η個幀開始新的段)。替選地,在其他實施例中,段邊界可以基于幀的類型(即每個幀內(nèi)或幀間開始新的段)。其他分段功能可以基于輸入流的位掩碼/模N流加入和分塊來識別段邊界,其中,N是用于塊/段的目標(biāo)長度,其中,該長度可以是指定時間或持續(xù)時間長度。例如,如果用于視頻分組的時間戳是tpt2、t3、...,則一致的可成塊邊界可以是(tk/N) ! = (t^/N)之后的第一可成塊邊界,其中,‘/’表示整數(shù)除法。
[0050]在本公開的一方面,為了保持輸入流的并行性,段識別部件702用來識別段邊界的算法或函數(shù)可以在每個輸入流范圍內(nèi)是穩(wěn)定的,使得所識別并分段的段邊界對于每個輸入流而言是相同的。為此,在某些實施例中,分段識別部件702和/或每個單獨部件可以在公共關(guān)鍵幀開始尋找段邊界。在其他實施例中,段識別部件702和/或分段部件706可以在流的開頭開始。
[0051]在另一實施例中,段識別部件702和/或段部件706可以使用針對流不連續(xù)性魯棒的算法。因此,在輸入流故障或不連續(xù)的情況下,輸入流的分段的并行性將不會被中斷。
[0052]一旦段識別部件702識別到段,則可以將輸入流712分段,并且分段的輸入流714是分段的結(jié)果。每個時間段在每個輸入流中可以存在一個段。該時間段可以基于段的長度或者段的長度可以基于時間段的長度。
[0053]屬性部件704進行操作以將元數(shù)據(jù)歸屬于輸入流708以便保持屬性,諸如等效塊的原始時間戳數(shù)據(jù)。例如,屬性部件704將原始開始和結(jié)束時間戳附接或標(biāo)記于所識別或分段的每個等效塊。在一個實施例中,屬性部件704在處理管線中和不同配置中的任何地方結(jié)合分段識別部件702和分段部件706進行操作以便具有用數(shù)據(jù)/元數(shù)據(jù)流分組的段。因此,在下游的其他處理部件可以讀取視頻數(shù)據(jù)的等效段以及與之相對應(yīng)的元數(shù)據(jù)。
[0054]另外,同步部件708可操作用于使在所述多個代碼轉(zhuǎn)換管線的不同代碼轉(zhuǎn)換管線內(nèi)被處理的具有不同格式的輸入流同步。例如,同步部件708基于歸屬于輸入流的元數(shù)據(jù)而使輸入流同步。該流例如可以是在視頻流代碼轉(zhuǎn)換器中被并行地進行代碼轉(zhuǎn)換的視頻流,如上文所討論的,或者是例如來自不同攝取管線的經(jīng)代碼轉(zhuǎn)換的流。
[0055]圖8圖示出根據(jù)本公開的一方面的用于將輸入流分段和選擇段的方法的示例性非限制性實施例的示例性流程圖800。為了說明的簡化起見,描繪了該方法并描述為一系列動作。然而,根據(jù)本公開的動作可以按照各種順序和/或同時地以及與在本文中描述或未描述的其他動作一起發(fā)生。此外,可能并非所有所示動作都是實現(xiàn)根據(jù)公開主題的方法所需要的。另外,本領(lǐng)域的技術(shù)人員將理解和認識到的是可以經(jīng)由狀態(tài)圖或事件替選地將該方法表示為一系列互相關(guān)狀態(tài)。另外,應(yīng)認識到的是在本說明書中公開的方法能夠存儲在一件制品上以促進將此類方法傳送和傳輸?shù)接嬎阍O(shè)備。本文所使用的術(shù)語制品意圖涵蓋可從任何計算機可讀設(shè)備或存儲介質(zhì)(例如,非臨時存儲介質(zhì))訪問的計算機程序。
[0056]此外,上文已結(jié)合各系統(tǒng)圖詳細地描述了各個動作。應(yīng)認識到的是圖1-7中的此類動作的詳細描述可以是且意圖是可作為方法和/或根據(jù)以下描述方法而實現(xiàn)的。
[0057]在802處,識別攝取的輸入流中的段邊界(例如由段識別部件),以便將相同的長度分段成等效塊。可以識別多個輸入流的段邊界。可以基于幀數(shù)來識別段邊界(即每η個幀開始新的段)。替選地,在其他實施例中,段邊界可以基于幀的類型(即每個幀內(nèi)或幀間開始新的段)。為了確保輸入流被并行地處理,用來識別段邊界的算法或函數(shù)應(yīng)在每個輸入流范圍內(nèi)是穩(wěn)定的,使得所識別并分段的段邊界對于每個輸入流而言是相同的。為此,在本公開的某些方面,分段和識別過程可以跨所有輸入流在公共關(guān)鍵幀處發(fā)起。替選地,可以從流的開頭發(fā)起識別。
[0058]在804處,在多個代碼轉(zhuǎn)換管線中對用邊界識別的輸入流進行代碼轉(zhuǎn)換。例如,冗余并行代碼轉(zhuǎn)換管線對具有不同代碼轉(zhuǎn)換質(zhì)量的副本或不同流進行代碼轉(zhuǎn)換,諸如不同位速率、不同時間戳、不同開始時間、結(jié)束時間、格式等。因此,能夠?qū)⒚總€冗余流與在長度或持續(xù)時間方面等效的一致的數(shù)據(jù)塊合并。
[0059]一旦識別到段邊界,可以在806處基于邊界將流分段。每個時間段在每個輸入流中可以存在一個段。該時間段可以基于段的長度或者段的長度可以基于時間段的長度。每個時間段的每個段可以是可互換的,使得重構(gòu)的主流可以由每個時間段的輸入流中的任何段組成。
[0060]在方法800的一個示例中,代碼轉(zhuǎn)換部件可以生成等效段,無論不同的流在哪里加入。例如,具有高質(zhì)量格式(例如,M2TS)的第一代碼轉(zhuǎn)換管線流(例如txA)可以在時間戳24處加入,并且已生成具有以下開始和結(jié)束時間的段:(26-30)、(30-35)、(35-40)、(40-46)、(46-50)...。此外,具有不同或相同質(zhì)量格式的不同或第二代碼轉(zhuǎn)換管線流(例如txB)可以在時間戳33處加入已處理流且從txA的輸入流將不會觀察到輸入流的不同。將如下生成段:(35-40)、(40-46)...。無論單獨代碼轉(zhuǎn)換器部件在哪里開始讀取輸入流,代碼轉(zhuǎn)換器部件都將忽視或忽略輸入字節(jié)直至其發(fā)現(xiàn)由所識別的邊界定義的一致的可分塊間隔為止,如上文所討論的。然后并行地對這些塊進行代碼轉(zhuǎn)換以確保高質(zhì)量的代碼轉(zhuǎn)換,原始時間戳被保持在元數(shù)據(jù)中。
[0061]示例性計算設(shè)備
[0062]參考圖9,用于實現(xiàn)本公開的各個方面的適當(dāng)環(huán)境900包括計算設(shè)備912。應(yīng)認識到的是可以結(jié)合實現(xiàn)結(jié)合圖1-7所示和所述的系統(tǒng)或部件中的一個或多個來使用計算機912。計算設(shè)備912包括一個或多個處理單元914、系統(tǒng)存儲器916以及系統(tǒng)總線918。系統(tǒng)總線918將包括但不限于系統(tǒng)存儲器916的系統(tǒng)部件耦合到處理單元914。一個或多個處理單元914可以是各種可用處理器中的任何一個。還可以采用雙微處理器及其他多處理器架構(gòu)作為一個或多個處理單元914。
[0063]系統(tǒng)總線918可以是多個類型的總線結(jié)構(gòu)中的任何一個,包括存儲器總線或存儲器控制器、外圍總線或外部總線和/或使用任何種類的可用總線架構(gòu)的本地總線,包括但不限于工業(yè)標(biāo)準結(jié)構(gòu)(ISA)、微通道架構(gòu)(MSA)、擴展ISA(EISA)、智能驅(qū)動電子設(shè)備(IDE)、VESA本地總線(VLB)、外圍部件互連(PCI)、卡總線、通用串行總線(USB)、高級圖形端口(AGP)、個人計算機存儲器卡國際協(xié)會總線(PCMCIA)、火警線(IEEE 994)以及小型計算機系統(tǒng)接口(SCSI)。
[0064]本文所使用的術(shù)語“計算機可讀介質(zhì)”包括計算機可讀存儲介質(zhì)和通信介質(zhì)。計算機可讀存儲介質(zhì)包括用任何方法或技術(shù)實現(xiàn)以便存儲信息(諸如計算機可讀指令或其他數(shù)據(jù))的易失性和非易失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器916包括易失性存儲器920和非易失存儲器922?;据斎?輸出系統(tǒng)(B1S)被存儲在非易失存儲器922中,其包含用以諸如在啟動期間在計算設(shè)備912內(nèi)的元件之間傳輸信息的基本例程。以圖示而非限制的方式,非易失存儲器(例如922)可以包括只讀存儲器(ROM)、可編程序只讀存儲器(PROM)、電可編程序ROM(EPROM)、電可擦可編程ROM (EEPROM)、閃速存儲器或非易失性隨機存取存儲器(RAM)(例如鐵電RAM(FeRAM)。易失性存儲器(例如920)包括隨機存取存儲器(RAM),其充當(dāng)外部高速緩沖存儲器。以圖示而非限制的方式,RAM可以許多形式可用,諸如靜態(tài) RAM (SRAM)、動態(tài) RAM (DRAM)、同步 DRAM (SDRAM)、雙倍數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強 SDRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)、直接 Rambus RAM(DRRAM)、直接 Rambus 動態(tài)RAM(DRDRAM)以及Rambus動態(tài)RAM。另外,本文中的系統(tǒng)或方法的所公開的存儲器部件意圖包括但不限于包括這些和任何其他適當(dāng)類型的存儲器。
[0065]計算設(shè)備912還可以包括可移動/不可移動、易失性/非易失性計算機存儲介質(zhì)。圖9圖示出例如盤存儲924。盤存儲924包括但不限于類似于磁盤驅(qū)動器、閃速驅(qū)動器、軟盤驅(qū)動器、帶驅(qū)動器、Jaz驅(qū)動器、Zip驅(qū)動器、LS-100驅(qū)動器、閃速存儲卡或記憶棒之類的設(shè)備。盤存儲924還可以包括單獨地或與其他存儲介質(zhì)相組合的存儲介質(zhì),包括但不限于光盤驅(qū)動器,諸如壓縮盤ROM設(shè)備(⑶-ROM)、⑶可記錄驅(qū)動器(⑶-R驅(qū)動器)、⑶可重寫驅(qū)動器(⑶-RW驅(qū)動器)或數(shù)字多功能盤ROM驅(qū)動器(DVD-ROM)。為了促進磁盤存儲設(shè)備924到系統(tǒng)總線918的連接,通常使用可移動或不可移動接口,諸如接口 926。
[0066]圖9還描述了充當(dāng)用戶與在適當(dāng)操作環(huán)境900中描述的基本計算機資源之間的中間件的軟件。此類軟件包括例如操作系統(tǒng)928??梢源鎯υ诒P存儲924上的操作系統(tǒng)928用于控制和分配計算設(shè)備912的資源。系統(tǒng)應(yīng)用930通過例如存儲在系統(tǒng)存儲器916中或盤存儲924上的程序模塊932和程序數(shù)據(jù)934來利用操作系統(tǒng)928進行的資源管理。應(yīng)認識到的是可以用各種操作系統(tǒng)或操作系統(tǒng)的組合來實現(xiàn)本公開。
[0067]用戶通過一個或多個輸入設(shè)備936向計算設(shè)備912中輸入命令或信息。輸入設(shè)備936包括但不限于指示設(shè)備,諸如鼠標(biāo)、軌跡球、觸針、觸控板、鍵盤、麥克風(fēng)、操縱桿、游戲板、衛(wèi)星盤、掃描儀、TV調(diào)諧器卡、數(shù)字式相機、數(shù)字式視頻相機、web相機等。這些及其他輸入設(shè)備經(jīng)由一個或多個接口端口 938通過系統(tǒng)總線918連接到處理單元914。一個或多個接口端口 938包括例如串行端口、并行端口、游戲端口以及通用串行總線(USB)。一個或多個輸出設(shè)備940使用某些相同類型的端口作為一個或多個輸入設(shè)備936。因此,例如,可使用USB端口來向計算設(shè)備912提供輸入,并從計算設(shè)備912向輸出設(shè)備940輸出信息。提供了輸出適配器942以舉例說明除其他輸出設(shè)備940之外,還存在某些輸出設(shè)備940,例如監(jiān)視器、揚聲器以及打印機,其要求特殊適配器。以圖示而非限制的方式,輸出適配器942包括視頻和聲卡,其提供輸出設(shè)備940與系統(tǒng)總線918之間的連接手段。應(yīng)注意的是其他設(shè)備和/或設(shè)備的系統(tǒng)提供輸入和輸出能力兩者,諸如一個或多個遠程計算機944。
[0068]計算設(shè)備912可以使用到一個或多個遠程計算機、諸如一個或多個遠程計算機944的邏輯連接在聯(lián)網(wǎng)環(huán)境中進行操作。一個或多個遠程計算機944可以是個人計算機、月艮務(wù)器、路由器、網(wǎng)絡(luò)PC、工作站、基于微處理器的設(shè)備、對端設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點等,并且通常包括相對于計算設(shè)備912所述的許多或所有元件。出于簡潔的目的,僅用一個或多個遠程計算機944來舉例說明存儲器存儲設(shè)備946。一個或多個遠程計算機944通過網(wǎng)絡(luò)接口 948而被邏輯地連接到計算設(shè)備912且然后經(jīng)由通信連接950而被物理連接。網(wǎng)絡(luò)接口 948涵蓋有線和/或無線通信網(wǎng)絡(luò),諸如局部區(qū)域網(wǎng)絡(luò)(LAN)、廣域網(wǎng)(WAN)、蜂窩式網(wǎng)絡(luò)等。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅分布式數(shù)據(jù)接口(⑶DI)、以太網(wǎng)、令牌環(huán)等。WAN技術(shù)包括但不限于點到點鏈路、類似綜合服務(wù)數(shù)字網(wǎng)(ISDN)及其變體的電路交換網(wǎng)、分組交換網(wǎng)以及數(shù)字訂戶線(DSL)。
[0069]一個或多個通信連接950指的是用來將網(wǎng)絡(luò)接口 948連接到總線918的硬件/軟件。雖然在計算設(shè)備912內(nèi)部為了說明清楚而示出了通信連接950,但其還可以在計算設(shè)備912外部。僅僅出于示例性目的,連接到網(wǎng)絡(luò)接口 948所需的硬件/軟件包括內(nèi)部和外部技術(shù),諸如調(diào)制解調(diào)器,包括常規(guī)電話級調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器、ISDN適配器、以太網(wǎng)卡以及無線聯(lián)網(wǎng)卡。
[0070]根據(jù)各個方面和實施方式,可以使用計算設(shè)備912來將冗余輸入流分段并每個時間段從輸入流之中選擇主段。計算設(shè)備912還可以以變化的位速率和/或容器格式將輸入流代碼轉(zhuǎn)換成輸出流。如在本文中更全面地公開的,在某些實施方式中,計算設(shè)備912可以包括可以用來處理數(shù)據(jù)的一個或多個處理器(例如914),包括處理數(shù)據(jù)以執(zhí)行各種任務(wù)(例如,識別段邊界、基于段邊界將輸入流分段、緩存段并將緩存的段編索引且存儲在存儲器中,并且每個時間段從緩存的段之中選擇主緩存段等)。計算設(shè)備912可以包括可以與一個或多個處理器相關(guān)聯(lián)(例如,通信連接)的程序部件905。程序部件905可以包含例如分段部件、緩沖器部件、主選擇部件以及代碼轉(zhuǎn)換部件和/或其他部件,其可以分別地如本文更全面地公開的那樣運行,以促進本文所述公開的實施例。
[0071]示例性聯(lián)網(wǎng)和分布式環(huán)境
[0072]圖10是根據(jù)本公開的實施方式的示例性計算環(huán)境1000的示意性框圖。系統(tǒng)1000包括一個或多個客戶端1010。一個或多個客戶端1010可以是硬件和/或軟件(例如線程、進程、計算設(shè)備)。系統(tǒng)1000還包括一個或多個服務(wù)器1030。因此,除其他模型之外,系統(tǒng)1000還可以對應(yīng)于雙層客戶端服務(wù)器模型或多層模型(例如,客戶端、中間層服務(wù)器、數(shù)據(jù)服務(wù)器)。一個或多個服務(wù)器1030還可以是硬件和/或軟件(例如線程、進程、計算設(shè)備)。例如,服務(wù)器1030可以容納用于通過采用本公開來執(zhí)行變換的線程。客戶端1010與服務(wù)器1030之間的一個可能通信可以是在兩個或更多計算機進程之間發(fā)送的數(shù)據(jù)分組的形式。
[0073]系統(tǒng)1000包括通信框架1050,其可以用來促進一個或多個客戶端1010與一個或多個服務(wù)器1030之間的通信。一個或多個客戶端1010被操作連接到一個或多個客戶端數(shù)據(jù)庫1020,其可以用來存儲一個或多個客戶端1010本地的信息。同樣地,一個或多個服務(wù)器1030被操作連接到一個或多個服務(wù)器數(shù)據(jù)庫1040,其可以用來存儲服務(wù)器1030本地的信息。
[0074]應(yīng)認識到并理解的是如相對于特定系統(tǒng)和方法所述的部件可包括與如相對于本文公開的其他系統(tǒng)或方法所述的各部件(例如,分別地命名的部件或類似命名的部件)相同或類似的功能。
[0075]應(yīng)注意的是本公開的各方面或特征可與基本上任何無線電信或無線電技術(shù)一起使用,例如W1-Fi ;藍牙;全球互通微波接入(WiMAX);增強型通用分組無線電服務(wù)(增強型GPRS);第三代合作伙伴計劃(3GPP)長期演進(LTE);第三代合作伙伴計劃2 (3GPP2)超移動寬帶(UMB) ;3GPP通用移動電信系統(tǒng)(UMTS);高速分組接入(HSPA);高速下行鏈路分組接入(HSDPA);高速上行鏈路分組接入(HSUPA) ;GSM(全球移動通信系統(tǒng))EDGE(增強型數(shù)據(jù)速率GSM演進)無線電接入網(wǎng)(GERAN) ;UMTS陸地?zé)o線電接入網(wǎng)絡(luò)(UTRAN);高級LTE(LTE-A)等。另外,可以將本文所述的某些或所有方面與傳統(tǒng)電信技術(shù)一起使用,例如GSM。另外,可以將移動以及非移動網(wǎng)絡(luò)(例如,因特網(wǎng)、數(shù)據(jù)服務(wù)網(wǎng)絡(luò),諸如網(wǎng)際協(xié)議電視(IPTV)等)與本文所述的各方面或特征一起使用。
[0076]雖然上文已在運行于一個和/或多個計算機上的計算機程序的計算機可執(zhí)行指令的一般背景下描述了本主題,但本領(lǐng)域的技術(shù)人員將認識到的是還可以或可能結(jié)合其他程序模塊來實現(xiàn)本公開。一般地,程序模塊包括例程、程序、部件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定任務(wù)和/或特定抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員將認識到的是可用其他計算機系統(tǒng)配置來實施本發(fā)明方法,包括單處理器或多處理器計算機系統(tǒng)、小型計算設(shè)備、主計算機以及個人計算機、手持式計算設(shè)備(例如PDA、電話)、基于微處理器或可編程消費裝置或工業(yè)電子裝置等。還可在分布式計算環(huán)境中實施所示方面,其中,由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備來執(zhí)行任務(wù)。然而,可以在獨立計算機上實施本公開的某些(如果不是全部)方面。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設(shè)備兩者中。
[0077]在本說明書中所使用的術(shù)語“部件”、“系統(tǒng)”、“平臺”、“接口”等可以指的是和/或可以包括計算機相關(guān)實體或與具有一個或多個特定功能的操作機器有關(guān)的實體。本文公開的實體可以是硬件、硬件和軟件的組合、軟件或執(zhí)行中的軟件。例如,部件可以是但不限于是在處理器上運行的進程、處理器、對象、可執(zhí)行指令、執(zhí)行線程、程序和/或計算機。以舉例說明的方式,在服務(wù)器上運行的應(yīng)用和服務(wù)器兩者都可以是部件。一個或多個部件可以存在于進程和/或執(zhí)行線程內(nèi),并且可以將部件定位于一個計算機上和/或分布在兩個或更多計算機之間。
[0078]在另一示例中,各部件可以從具有存儲在其上面的各種數(shù)據(jù)結(jié)構(gòu)的各種計算機可讀存儲介質(zhì)執(zhí)行。該部件可經(jīng)由本地和/或遠程進程進行通信,諸如根據(jù)具有一個或多個數(shù)據(jù)分組的信號(例如,來自在本地系統(tǒng)、分布式系統(tǒng)中和/或經(jīng)由信號與其他系統(tǒng)跨網(wǎng)絡(luò)與另一部件相交互的一個部件的數(shù)據(jù),所述網(wǎng)絡(luò)諸如因特網(wǎng))。作為另一示例,部件可以是具有由電或電子電路操作的機械零件提供的特定功能的設(shè)備,所述電或電子電路由處理器所執(zhí)行的軟件或固件應(yīng)用操作。在這種情況下,處理器可以在設(shè)備內(nèi)部或外部,并且可以執(zhí)行軟件或固件應(yīng)用的至少一部分。作為另一示例,部件可以是在沒有機械零件的情況下通過電子部件來提供特定功能的設(shè)備,其中,該電子部件可以包括處理器或其他裝置以執(zhí)行至少部分地賦予電子部件的功能的軟件或固件。在一方面,部件可以例如在云計算系統(tǒng)內(nèi)經(jīng)由虛擬機來模擬電子部件。在云計算系統(tǒng)中,可以將計算作為服務(wù)而非產(chǎn)品來輸送。因此,可以通過網(wǎng)絡(luò)在計算機與服務(wù)器之間共享資源、軟件以及信息。最終用戶可以在商務(wù)軟件和數(shù)據(jù)被存儲于遠程位置處的服務(wù)器上的同時通過web瀏覽器或其他輕量級臺式計算機或移動應(yīng)用來訪問基于云的應(yīng)用。
[0079]另外,術(shù)語“或”意圖意指包括性“或”而非排他性“或”。也就是說,除非另外指明或從上下文顯而易見,“X采用A或B”意圖意指任何自然的包括性置換。也就是說,如果X采用A ;X采用B ;或者X采用A和B兩者,則根據(jù)任何前述情況滿足“X采用A或B”。此外,一般地應(yīng)將在主題說明書和附圖中所使用的冠詞“一”和“一個”理解成意指“一個或多個”,除非此外指定或從上下文顯而易見是針對單數(shù)形式。
[0080]本文所使用的術(shù)語“示例”和/或“示例性”用來意指充當(dāng)示例、實例或圖示。為了避免引起懷疑,本文公開的主題不受此類示例的限制。另外,在本文中被描述為“示例”和/或“示例性”的任何方面或設(shè)計不一定被理解為相比于其他方面或設(shè)計是優(yōu)選或有利的,其也不意圖排除本領(lǐng)域的技術(shù)人員已知的等效示例性結(jié)構(gòu)和技術(shù)。
[0081]遍及本說明書對“一個實施方式”或“實施方式”或“一個實施例”或“實施例”的引用意指結(jié)合該實施方式或?qū)嵤├枋龅奶囟ㄌ卣鳌⒔Y(jié)構(gòu)或特性被包括在至少一個實施方式或一個實施例中。因此,短語“在一個實施例中”或“在實施方式中”或“在一個實施例中”或“在實施例中”在遍及本說明書的不同位置上的出現(xiàn)可以但不一定引用同一實施方式或?qū)嵤├?,取決于環(huán)境。此外,可以在一個或多個實施方式或?qū)嵤├幸匀魏芜m當(dāng)方式將特定特征、結(jié)構(gòu)或特性組合。
[0082]可以使用標(biāo)準編程或工程技術(shù)將本文所述的各種方面或特征實現(xiàn)為方法、設(shè)備、系統(tǒng)或制品。另外,可以通過實現(xiàn)本文公開的方法中的至少一個或多個的程序模塊來實現(xiàn)在本公開中公開的各種方面或特征,該程序模塊被存儲在存儲器中且由至少處理器執(zhí)行。硬件和軟件或硬件和固件的其他組合可以使能或?qū)崿F(xiàn)本文所述的方面,包括一個或多個公開方法。本文所使用的術(shù)語“制品”可以涵蓋可從任何計算機可讀設(shè)備、載體或存儲介質(zhì)訪問的計算機程序。例如,計算機可讀存儲介質(zhì)可以包括但不限于磁存儲設(shè)備(例如,硬盤、軟盤、磁條)、光盤(例如,壓縮盤(CD)、數(shù)字多功能磁盤(DVD)、藍光盤(BD)...)、智能卡以及閃速存儲設(shè)備(例如,卡、棒、鍵驅(qū)動器)等。
[0083]如在主題說明書中所采用的術(shù)語“處理器”可以指的是基本上任何計算處理單元或設(shè)備,包括但不限于單核處理器;具有軟件多線程執(zhí)行能力的單處理器;多核處理器;具有軟件多線程執(zhí)行能力的多核處理器;具有硬件多線程技術(shù)的多核處理器;并行平臺;以及具有分布式共享存儲器的并行平臺。另外,處理器可以指的是集成電路、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或可編程序邏輯控制器(PLC)、復(fù)雜可編程邏輯器件(CPLD)、離散門或晶體管邏輯、離散硬件部件或其任何組合,其被設(shè)計成執(zhí)行本文所述功能。此外,處理器可以利用納米級架構(gòu),諸如但不限于基于分子或量子點的晶體管、開關(guān)或門,以便優(yōu)化空間使用或增強用戶設(shè)備的性能。還可將處理器實現(xiàn)為計算處理單元的組合。
[0084]在本公開中,利用諸如“庫”、“存儲”、“數(shù)據(jù)倉庫”、“數(shù)據(jù)存儲”、“數(shù)據(jù)庫”和關(guān)于部件的操作和功能的基本上任何其他信息存儲部件之類的術(shù)語來指代在“存儲器”或包括存儲器的部件中體現(xiàn)的“存儲器部件”實體。應(yīng)認識到的是本文所述的存儲器和/或存儲器部件可以是易失性存儲器或非易失存儲器,或者可以包括易失性和非易失存儲器。
[0085]上文已描述的內(nèi)容包括本公開的系統(tǒng)和方法的示例。當(dāng)然,不可能出于描述本公開的目的而描述部件或方法的每個可設(shè)想組合,但本領(lǐng)域的技術(shù)人員可以認識到可以有本公開的許多其他組合和置換。此外,在詳細描述、權(quán)利要求、附錄和附圖中使用術(shù)語“包括”、“具有”、“擁有”等的程度上,此類術(shù)語意圖以與當(dāng)在被用作權(quán)利要求中的過渡性詞語時將術(shù)語“包括”解釋為“包括”的類似方式是包括性的。
【權(quán)利要求】
1.一種系統(tǒng),包括: 存儲器,所述存儲器存儲計算機可執(zhí)行部件; 處理器,所述處理器執(zhí)行存儲于所述存儲器中的以下計算機可執(zhí)行部件; 段識別部件,所述段識別部件識別用于多個代碼轉(zhuǎn)換管線的輸入流的間隔內(nèi)的段邊界; 代碼轉(zhuǎn)換部件,所述代碼轉(zhuǎn)換部件對所述多個代碼轉(zhuǎn)換管線的所述輸入流進行代碼轉(zhuǎn)換;以及 分段部件,所述分段部件基于所識別的段邊界將所述輸入流分段成等效塊,其中所述輸入流包括不同的代碼轉(zhuǎn)換質(zhì)量。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),進一步包括: 聯(lián)合部件,所述聯(lián)合部件將來自所述多個代碼轉(zhuǎn)換管線的所述輸入流組合成具有所述等效塊的單個流,所述輸入流包括音頻流和視頻流。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中,所述代碼轉(zhuǎn)換部件將所述音頻流與所述視頻流分開地進行代碼轉(zhuǎn)換。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述代碼轉(zhuǎn)換部件以每個輸入流具有延遲的形式并行地對所述輸入流進行代碼轉(zhuǎn)換。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述代碼轉(zhuǎn)換部件調(diào)整用于不同輸入流的延遲。
6.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述延遲根據(jù)相應(yīng)代碼轉(zhuǎn)換管線中的處理的等待時間而是自適應(yīng)的。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),進一步包括: 屬性部件,所述屬性部件將分別地保持所述輸入流的屬性的元數(shù)據(jù)歸屬于所述輸入流,所述屬性分別地包括所述等效塊的原始時間戳。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述屬性部件將原始的起始和結(jié)束時間戳附接于每個所述等效塊。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),進一步包括: 同步部件,所述同步部件使在所述多個代碼轉(zhuǎn)換管線的不同代碼轉(zhuǎn)換管線內(nèi)處理的具有不同格式的輸入流同步,所述同步部件基于歸屬于所述輸入流的元數(shù)據(jù)使所述輸入流同止/J/ O
10.根據(jù)權(quán)利要求1所述的方法,其中,所述等效塊分別地包括來自同一個源的具有基本上相同的起始和結(jié)束時間的輸入流的段,所述同一個源是音頻源和視頻源、或者是該音頻源或該視頻源。
11.一種方法,包括: 使用處理器來執(zhí)行存儲于存儲器中的計算機可執(zhí)行指令以執(zhí)行以下動作: 識別用于多個代碼轉(zhuǎn)換管線的間隔內(nèi)的輸入流的段邊界; 對所述多個代碼轉(zhuǎn)換管線的輸入流進行代碼轉(zhuǎn)換; 基于所識別的段邊界將經(jīng)代碼轉(zhuǎn)換的輸入流分段成等效塊,所述經(jīng)代碼轉(zhuǎn)換的輸入流具有不同的代碼轉(zhuǎn)換質(zhì)量。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述代碼轉(zhuǎn)換質(zhì)量分別地包括所述輸入流的不同位速率和不同格式。
13.根據(jù)權(quán)利要求11所述的方法,進一步包括: 將所述輸入流組合成具有所述等效塊的單個流。
14.根據(jù)權(quán)利要求11所述的方法,進一步包括: 通過以所述多個代碼轉(zhuǎn)換管線中的每個代碼轉(zhuǎn)換管線具有延遲的形式并行地冗余處理所述輸入流,來對所述輸入流進行代碼轉(zhuǎn)換。
15.根據(jù)權(quán)利要求11所述的方法,進一步包括: 使分別地包括所述輸入流的屬性的元數(shù)據(jù)歸屬于所述輸入流。
16.根據(jù)權(quán)利要求15所述的方法,進一步包括: 基于所述輸入流的元數(shù)據(jù)來使所述輸入流同步。
17.根據(jù)權(quán)利要求11所述的方法,其中,所述輸入流包括輸入元數(shù)據(jù)流,所述輸入元數(shù)據(jù)流包括用于所述輸入流的代碼轉(zhuǎn)換質(zhì)量,所述代碼轉(zhuǎn)換質(zhì)量包括與每個輸入流相關(guān)聯(lián)的位速率和格式數(shù)據(jù)。
18.根據(jù)權(quán)利要求16所述的方法,其中,使所述輸入流同步包括基于所述元數(shù)據(jù)分別地使具有不同位速率和不同格式的輸入流同步,所述元數(shù)據(jù)包括分別地用于所述等效塊的原始的起始和結(jié)束時間戳。
19.根據(jù)權(quán)利要求11所述的方法,其中,對所述多個代碼轉(zhuǎn)換管線的輸入流進行代碼轉(zhuǎn)換包括對分立并行的代碼轉(zhuǎn)換管線中的冗余輸入流進行代碼轉(zhuǎn)換,所述輸入流包括第一格式的第一輸入流和第二不同格式的第二輸入流以及時間戳,其被組合并同步成具有所述等效塊的單個一致流。
20.一種非臨時計算機可讀存儲介質(zhì),包括響應(yīng)于執(zhí)行而促使計算系統(tǒng)執(zhí)行操作的計算機可執(zhí)行指令,所述操作包括: 識別代碼轉(zhuǎn)換管線中的第一冗余輸入流和第二冗余輸入數(shù)據(jù)流中的段邊界; 并行地對所述第一冗余輸入流和所述第二輸入數(shù)據(jù)流進行代碼轉(zhuǎn)換; 基于所識別的段邊界將所述第一冗余輸入流和所述第二冗余輸入流分段成等效塊。
21.根據(jù)權(quán)利要求20所述的非臨時計算機可讀存儲介質(zhì),進一步包括: 基于在并行的代碼轉(zhuǎn)換管線中的處理時間使不同的時間戳歸屬于所述第一冗余輸入流和所述第二冗余輸入流。
22.根據(jù)權(quán)利要求21所述的非臨時計算機可讀存儲介質(zhì),進一步包括: 使所述第一冗余輸入流和所述第二冗余輸入流同步成具有所述等效塊的單個一致流,所述第一冗余輸入流和所述第二冗余輸入流具有相互不同的位速率和格式。
【文檔編號】H04N21/845GK104380758SQ201380030433
【公開日】2015年2月25日 申請日期:2013年4月10日 優(yōu)先權(quán)日:2012年4月11日
【發(fā)明者】克里希南·埃斯瓦蘭, 蒂埃里·富屈, 孫杰, 克里希納·格拉德帕利, 維伊南·夏斯特里 申請人:谷歌公司