本申請(qǐng)根據(jù)35U.S.C.§119(e)要求于2014年3月26日提交的臨時(shí)申請(qǐng)?zhí)?1/970894和于2014年4月3日提交的臨時(shí)申請(qǐng)?zhí)?1/975001的權(quán)益,這些申請(qǐng)的全部內(nèi)容通過引用的方式結(jié)合于此,就像這些全部內(nèi)容在文中充分闡述。
技術(shù)領(lǐng)域
實(shí)施方案總體上涉及通過媒體設(shè)備處理媒體內(nèi)容。
背景技術(shù):
本部分描述的方法是可以執(zhí)行的方法,但并不必要是之前已經(jīng)想到或執(zhí)行的方法。因此,除非另有說明,否則不應(yīng)該僅憑它們被包含在本部分中就認(rèn)為本部分中描述的任何方法是現(xiàn)有技術(shù)。
媒體設(shè)備,例如數(shù)字視頻錄像機(jī)(VDR)、機(jī)頂盒(STB)、便攜式媒體設(shè)備等,從無線廣播、衛(wèi)星廣播、有線頻道等接收多種類型的媒體內(nèi)容,并且使得用戶能夠播放、記錄媒體內(nèi)容并且以另外的方式與媒體內(nèi)容進(jìn)行交互。在一些安排中,“主機(jī)”媒體設(shè)備可以被配置成從一個(gè)或多個(gè)內(nèi)容源接收內(nèi)容并將內(nèi)容流傳輸?shù)揭粋€(gè)或多個(gè)“客戶端”媒體設(shè)備。例如,主機(jī)媒體設(shè)備可以是用戶客廳中的DVR,而客戶端媒體設(shè)備可以包括安置在用戶房屋的其它地方或別處的其它DVR、媒體服務(wù)器、移動(dòng)設(shè)備等。
目前的媒體內(nèi)容流系統(tǒng)通常包括主機(jī)媒體設(shè)備,其從內(nèi)容源接收可流媒體內(nèi)容,將該媒體內(nèi)容存儲(chǔ)在本地硬盤或其它輔助存儲(chǔ)設(shè)備上,并且將該媒體內(nèi)容從存儲(chǔ)設(shè)備流傳輸?shù)揭粋€(gè)或多個(gè)客戶端設(shè)備。因?yàn)樵谶@些系統(tǒng)中媒體內(nèi)容從輔助存儲(chǔ)設(shè)備流傳輸?shù)娇蛻舳嗽O(shè)備,因此主機(jī)媒體設(shè)備將媒體內(nèi)容流寫入輔助存儲(chǔ)器花的時(shí)間越少,內(nèi)容能夠越早用于流傳輸?shù)娇蛻舳嗽O(shè)備。因此,主機(jī)媒體設(shè)備接收媒體內(nèi)容和將媒體內(nèi)容存儲(chǔ)到磁盤所花的時(shí)間的延遲可能導(dǎo)致客戶端設(shè)備處的從主機(jī)媒體設(shè)備流傳輸媒體內(nèi)容的差強(qiáng)人意的用戶體驗(yàn)。
附圖說明
所附附圖的圖中以示例而非限制的方式示出本發(fā)明,圖中相似的附圖標(biāo)記指示相似的元件,其中圖中:
圖1是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于通過媒體設(shè)備處理媒體內(nèi)容的示例系統(tǒng)的框圖;
圖2A是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例媒體設(shè)備的框圖;
圖2B是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例流媒體設(shè)備的框圖;
圖3是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例媒體內(nèi)容流水線的框圖;
圖4示出根據(jù)一個(gè)或多個(gè)實(shí)施例用于使用媒體內(nèi)容流水線來處理媒體內(nèi)容的示例處理流程;
圖5示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的用于將媒體內(nèi)容流傳輸?shù)揭粋€(gè)或多個(gè)客戶端設(shè)備的示例處理流程;以及
圖6是實(shí)施本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)的框圖。
具體實(shí)施方式
以下描述中,出于解釋的目的,闡述了許多具體的細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。然而,顯而易見地,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施。在其它實(shí)例中,以框圖的形式示出了公知的結(jié)構(gòu)和設(shè)備,以避免不必要地模糊本發(fā)明。
這里將依照以下提綱描述實(shí)施例:
1.0總體概述
2.0.結(jié)構(gòu)概述
3.0.示例媒體設(shè)備
4.0.示例媒體內(nèi)容流水線架構(gòu)
5.0.實(shí)施示例
5.1.媒體內(nèi)容處理
5.2.在媒體設(shè)備上播放媒體內(nèi)容
5.3.媒體內(nèi)容流
6.0.實(shí)施機(jī)構(gòu)—硬件概述
7.0.擴(kuò)展和替代
1.0總體概述
公開了用于通過媒體設(shè)備處理的媒體內(nèi)容的方法、技術(shù)、和機(jī)構(gòu)。根據(jù)多種實(shí)施例,描述了一種媒體內(nèi)容流水線架構(gòu),其使媒體設(shè)備能夠有效地接收、存儲(chǔ)、播放、以及流傳輸媒體內(nèi)容??偟膩碚f,如本文所述的媒體內(nèi)容流水線被配置成從一個(gè)或多個(gè)輸入源接收媒體內(nèi)容流,分段媒體內(nèi)容流并將媒體內(nèi)容流存儲(chǔ)在固定大小或可變大小的數(shù)據(jù)緩沖區(qū)中,加密存儲(chǔ)在緩沖區(qū)中的數(shù)據(jù),和將加密的數(shù)據(jù)存儲(chǔ)在內(nèi)存緩沖區(qū)緩存中以便進(jìn)一步處理。媒體內(nèi)容流水線可以被進(jìn)一步配置為響應(yīng)于一個(gè)或多個(gè)定義的操作條件的發(fā)生而將存儲(chǔ)在內(nèi)存緩沖區(qū)高速緩沖中的加密緩沖區(qū)寫入輔助存儲(chǔ)設(shè)備(例如,硬盤)。
根據(jù)文中描述的方法,媒體內(nèi)容流水線被配置成提高主機(jī)媒體設(shè)備將由主機(jī)媒體設(shè)備接收到的媒體內(nèi)容流傳輸?shù)狡渌蛻舳嗣襟w設(shè)備的能力。在一些實(shí)施中,在主機(jī)媒體設(shè)備將媒體內(nèi)容流傳輸?shù)娇蛻舳嗽O(shè)備之前,主機(jī)設(shè)備接收、處理媒體內(nèi)容,并在接收到媒體內(nèi)容時(shí)將該媒體內(nèi)容存儲(chǔ)到輔助存儲(chǔ)設(shè)備。然后媒體內(nèi)容從輔助存儲(chǔ)設(shè)備被讀取和發(fā)送到請(qǐng)求客戶端端設(shè)備。因此,用于提高主機(jī)媒體設(shè)備將媒體內(nèi)容迅速流傳輸至客戶端設(shè)備的能力的一個(gè)選擇是主機(jī)媒體設(shè)備更頻繁地將進(jìn)入媒體內(nèi)容流的部分寫入媒體設(shè)備的本地存儲(chǔ)器。例如,通過增加進(jìn)入媒體內(nèi)容流的部分被寫入本地存儲(chǔ)器的頻率,媒體內(nèi)容流的那些部分能夠更早地用于流傳輸?shù)娇蛻舳嗽O(shè)備。然而,將媒體內(nèi)容流的部分寫入存儲(chǔ)器是一個(gè)相對(duì)昂貴的操作,無論是在完成每次寫操作的時(shí)間還是存儲(chǔ)設(shè)備上的物理磨損方面。此外,主機(jī)媒體設(shè)備可以同時(shí)接收若干媒體內(nèi)容流,因此,媒體內(nèi)容流的部分被寫入存儲(chǔ)設(shè)備的頻率的任何增加可以隨著時(shí)間的推移顯著增加寫操作的總數(shù)量。
公開了一種用于通過主機(jī)設(shè)備將媒體內(nèi)容流傳輸?shù)狡渌蛻舳嗽O(shè)備以被客戶端設(shè)備回放的方法和計(jì)算機(jī)裝置??偟膩碚f,如文中所述的媒體內(nèi)容流水線架構(gòu)有效地處理和管理進(jìn)入媒體內(nèi)容流,以使內(nèi)容流能迅速用于流傳輸,同時(shí)減少寫入輔助存儲(chǔ)器的寫操作的頻率。根據(jù)一個(gè)實(shí)施例,媒體設(shè)備接收多個(gè)媒體內(nèi)容數(shù)據(jù)流。多個(gè)媒體內(nèi)容數(shù)據(jù)流中的特定媒體內(nèi)容流的至少一部分被存儲(chǔ)在一個(gè)或多個(gè)內(nèi)存緩沖區(qū)中,并且一個(gè)或多個(gè)內(nèi)存緩沖區(qū)被加密。對(duì)特定媒體內(nèi)容流的請(qǐng)求從客戶端設(shè)備被接收到,該請(qǐng)求指示該特定媒體內(nèi)容流內(nèi)的位置。響應(yīng)于確定媒體內(nèi)容流內(nèi)的位置對(duì)應(yīng)于一個(gè)或多個(gè)內(nèi)存數(shù)據(jù)緩沖區(qū)的特定緩沖區(qū),該特定緩沖區(qū)被發(fā)送到客戶端設(shè)備。通過使媒體設(shè)備管理在加密內(nèi)存緩沖區(qū)的緩存中的媒體內(nèi)容流的部分并響應(yīng)于來自客戶端設(shè)備的流請(qǐng)求而提供來自緩存的緩沖區(qū),將緩沖區(qū)寫入輔助存儲(chǔ)器的頻率可降低。
在一個(gè)實(shí)施例中,在對(duì)一個(gè)或多個(gè)內(nèi)存緩沖區(qū)進(jìn)行加密之后,一個(gè)或多個(gè)內(nèi)存緩沖區(qū)被存儲(chǔ)到輔助存儲(chǔ)設(shè)備。
在一個(gè)實(shí)施例中,響應(yīng)于確定一個(gè)或多個(gè)未加密內(nèi)存緩沖區(qū)已經(jīng)達(dá)到加密限制而對(duì)內(nèi)存緩沖區(qū)進(jìn)行加密,其中加密限制是時(shí)限和當(dāng)前存儲(chǔ)的未加密內(nèi)存緩沖區(qū)的數(shù)量中的一個(gè)或多個(gè)。
在一個(gè)實(shí)施例中,其中響應(yīng)于確定已經(jīng)達(dá)到寫限制而將一個(gè)或多個(gè)內(nèi)存緩沖區(qū)存儲(chǔ)在輔助存儲(chǔ)設(shè)備中,其中寫期滿限制是時(shí)限和當(dāng)期存儲(chǔ)的加密內(nèi)存數(shù)據(jù)緩沖區(qū)的數(shù)量中的一個(gè)或多個(gè)。
在一個(gè)實(shí)施例中,其中特定媒體內(nèi)容流內(nèi)的位置由時(shí)間戳或緩沖區(qū)序號(hào)指示。
在一個(gè)實(shí)施例中,其中一個(gè)或多個(gè)內(nèi)存緩沖區(qū)的大小相同。
在一個(gè)實(shí)施例中,其中一個(gè)或多個(gè)內(nèi)存緩沖區(qū)中的至少一個(gè)緩沖區(qū)用非媒體內(nèi)容數(shù)據(jù)填補(bǔ)。
在其它方面,本發(fā)明囊括被配置成執(zhí)行前述步驟的計(jì)算機(jī)裝置和計(jì)算機(jī)可讀介質(zhì)。
2.0.結(jié)構(gòu)概述
圖1是根據(jù)一個(gè)實(shí)施例的文中描述的技術(shù)在其中被實(shí)施的示例系統(tǒng)100的多個(gè)方面的說明性視圖。系統(tǒng)100包含一個(gè)或多個(gè)計(jì)算設(shè)備。這些一個(gè)或多個(gè)計(jì)算設(shè)備包含硬件和被配置成實(shí)施文中所描述的各種邏輯組件的軟件的任意組合。例如,該一個(gè)或多個(gè)計(jì)算設(shè)備可以包括一個(gè)或多個(gè)內(nèi)存、一個(gè)或多個(gè)硬件處理器、和多種數(shù)據(jù)存儲(chǔ)庫。內(nèi)存存儲(chǔ)用于實(shí)施文中描述的多種組件的指令,硬件處理器被配置成執(zhí)行存儲(chǔ)在一個(gè)或多個(gè)內(nèi)存中的指令,數(shù)據(jù)存儲(chǔ)庫在一個(gè)或多個(gè)內(nèi)存中用于存儲(chǔ)被多種組件利用和操縱的數(shù)據(jù)結(jié)構(gòu)。雖然描述了具體的系統(tǒng),但是其它實(shí)施例也可應(yīng)用到能夠用來執(zhí)行文中描述的功能的任何系統(tǒng)。
在一個(gè)實(shí)施例中,系統(tǒng)100包括一個(gè)或多個(gè)媒體設(shè)備(例如,媒體設(shè)備102),一個(gè)或多個(gè)客戶端設(shè)備(例如,客戶端設(shè)備104),一個(gè)或多個(gè)內(nèi)容源(例如,內(nèi)容源106),以及一個(gè)或多個(gè)服務(wù)提供者(例如,服務(wù)提供者108)。系統(tǒng)100的組件可以經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)連接(例如,網(wǎng)絡(luò)110A,110B)。網(wǎng)絡(luò)110A,110B可通過用于系統(tǒng)100的組件之間的數(shù)據(jù)交換的任何介質(zhì)或機(jī)構(gòu)來實(shí)現(xiàn)。網(wǎng)絡(luò)110A、110B的示例包括但不限于諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、無線網(wǎng)絡(luò)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)等的網(wǎng)絡(luò)。系統(tǒng)100內(nèi)的任何數(shù)量的設(shè)備可以通過有線或無線通信段直接連接到彼此。
在一個(gè)實(shí)施例中,媒體設(shè)備102一般可以指任何類型的計(jì)算設(shè)備,其能夠從電纜信號(hào)、地面信號(hào)、數(shù)字基于網(wǎng)絡(luò)數(shù)據(jù)等接收媒體內(nèi)容項(xiàng),例如電視節(jié)目、電影、視頻點(diǎn)播(VOD)內(nèi)容等等。媒體設(shè)備102的示例包括,但不限于,數(shù)字視頻錄像機(jī)(DVR)、媒體服務(wù)器、機(jī)頂盒、數(shù)字媒體接收器等。
媒體設(shè)備102一般可以包括被配置成從多種內(nèi)容源106接收媒體內(nèi)容的一個(gè)或多個(gè)調(diào)諧器。調(diào)諧器可以指,但不限于,任何的:視頻調(diào)諧器、音頻調(diào)諧器、視聽調(diào)諧器、有線卡、系統(tǒng)資源單元、系統(tǒng)組件、信號(hào)處理部等,它們都可以(例如,在需要時(shí),提前等)被媒體設(shè)備102供應(yīng)、調(diào)諧、分配、指定、使用等,以接收來自內(nèi)容源106的媒體內(nèi)容。例如,一個(gè)內(nèi)容源106可以包括電視直播饋送。其它示例內(nèi)容源106包括但不限于,視頻點(diǎn)播(VOD)庫、第三方內(nèi)容提供者(例如,的或Amazon)和基于網(wǎng)絡(luò)的媒體內(nèi)容。
在一個(gè)實(shí)施例中,客戶端設(shè)備104一般表示能夠播放媒體內(nèi)容的任何設(shè)備??蛻舳嗽O(shè)備104的示例包括但不限于,數(shù)字視頻錄像機(jī)(DVR)、平板計(jì)算機(jī)、手持設(shè)備(例如,蜂窩電話等)、筆記本電腦、電子書閱讀器、個(gè)人計(jì)算設(shè)備、游戲設(shè)備等??偟膩碚f,客戶端設(shè)備104可以指任何類型的計(jì)算裝置,其能夠通過一個(gè)或多個(gè)數(shù)字網(wǎng)絡(luò)110,例如公共因特網(wǎng)接收媒體內(nèi)容,但是其可以或可以不包括TV調(diào)諧器輸入。用戶通??赡軗碛锌梢晕挥谟脩舻姆课莺蛣e處的多個(gè)位置處的數(shù)個(gè)媒體設(shè)備102和客戶端設(shè)備104。
在一些實(shí)施例中,媒體設(shè)備102和多個(gè)客戶端設(shè)備104可以位于建筑物(例如房屋)的多個(gè)房間中,并連接到一個(gè)或多個(gè)局域網(wǎng)(LAN)(例如,網(wǎng)絡(luò)110B)。例如,一種媒體設(shè)備102可以位于用戶的客廳,客戶端設(shè)備104可以位于用戶房屋的另一個(gè)房間中。作為一個(gè)示例,客戶端設(shè)備104可以少調(diào)諧器流設(shè)備,其被配置為通過一個(gè)或多個(gè)網(wǎng)絡(luò)110B從媒體設(shè)備102流傳輸媒體內(nèi)容并在連接到客戶端設(shè)備104的輸出設(shè)備(例如,TV)上播放被流傳輸?shù)拿襟w內(nèi)容。媒體設(shè)備102可以接收從一個(gè)或多個(gè)媒體內(nèi)容源106流傳輸?shù)娇蛻舳嗽O(shè)備104的媒體內(nèi)容。
在一個(gè)實(shí)施例中,媒體設(shè)備102可以支持一個(gè)或多個(gè)流協(xié)議,流協(xié)議允許客戶端設(shè)備104通過一個(gè)或多個(gè)網(wǎng)絡(luò)110B訪問媒體內(nèi)容。例如流協(xié)議包括但不限于,TiVo多房間流(MRS)協(xié)議、HTTP實(shí)時(shí)流(HLS)協(xié)議、其它標(biāo)準(zhǔn)或?qū)S辛鲄f(xié)議等。
在一個(gè)實(shí)施例中,媒體設(shè)備102和客戶端設(shè)備104可以經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)110A、110B與一個(gè)或多個(gè)服務(wù)提供者108進(jìn)行通信。服務(wù)提供者108可通常承載并以其它方式提供對(duì)信息的訪問,如節(jié)目指南數(shù)據(jù)、圖形資源(例如字體,圖片等)、服務(wù)信息、軟件、廣告、和使媒體設(shè)備102和/或客戶端設(shè)備104能夠滿足對(duì)媒體內(nèi)容項(xiàng)的用戶的搜索請(qǐng)求,生成并顯示圖形用戶界面,并執(zhí)行其它操作的其它數(shù)據(jù)。
系統(tǒng)100只示出了配置成提供文中描述的功能的組件的許多可能安排中的一個(gè)。其它安排可包括更少、附加或不同的組件,并且組件之間的分工可以根據(jù)安排而變化。系統(tǒng)100的每個(gè)組件可以設(shè)有開放端口,API或其它合適的通信接口,組件可以根據(jù)需要通過開放端口通信地耦接到系統(tǒng)100的其它組件以完成文中描述的系統(tǒng)100的任何功能。
3.0示例媒體設(shè)備
圖2A是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的媒體設(shè)備的內(nèi)部結(jié)構(gòu)和操作的示例的框圖。諸如數(shù)字視頻錄像機(jī)(DVR)的媒體設(shè)備的內(nèi)部結(jié)構(gòu)和操作的示例進(jìn)一步在本申請(qǐng)人所有的美國專利號(hào)6233389中描述,其通過引用的方式并入,就像在本文中原始公開一樣。
圖2A中示出的媒體設(shè)備包含輸入模塊202、媒體交換機(jī)204、輸出模塊206、和流模塊214。輸入模塊202經(jīng)由一個(gè)或多個(gè)輸入調(diào)諧器接收任意的各種的形式的電視(TV)和其它媒體內(nèi)容輸入流。在一個(gè)實(shí)施例中,由輸入模塊202接收到的模擬TV輸入流可以采取依從國家電視標(biāo)準(zhǔn)委員會(huì)(NTSC)的信號(hào)或者PAL兼容廣播信號(hào)的形式。在另一個(gè)實(shí)施例中,由輸入模塊202接收的數(shù)字廣播輸入流可以采取數(shù)字形式,數(shù)字形式包括但不限于任何的:MPEG2,MPEG4等,該數(shù)字廣播輸入流從源接收,源包括但不限于任何:有線卡、衛(wèi)星、地面等。在一個(gè)實(shí)施例中,輸入模塊202接收模擬媒體內(nèi)容輸入流,并且產(chǎn)生MPEG格式的流。在一個(gè)實(shí)施例中,輸入模塊202接收數(shù)字媒體內(nèi)流,并將數(shù)字媒體內(nèi)容流的代碼轉(zhuǎn)換至另一數(shù)字格式。在另一個(gè)實(shí)施例中,輸入模塊202產(chǎn)生使用不同編解碼器編碼的流。
MPEG傳輸多路復(fù)用支持在可包括多個(gè)視頻和音頻饋送和私有數(shù)據(jù)的同一廣播頻道中的多個(gè)節(jié)目。輸入模塊202將頻道調(diào)諧到特定節(jié)目,從頻道提取指定的MPEG流,并且將MPEG流饋送到系統(tǒng)的其余部分。使用視頻和音頻編碼器將模擬TV信號(hào)編碼成類似MPEG格式,以使得該系統(tǒng)的其余部分不知道信號(hào)是如何獲得的。可以以一些標(biāo)準(zhǔn)方式將信息調(diào)制到模擬TV信號(hào)的垂直消隱間隔(VBI);例如,北美廣播圖文電視標(biāo)準(zhǔn)(NABTS)可以用于將信息調(diào)制到NTSC信號(hào)的某些線路上,其中針對(duì)隱藏字幕(CC)和擴(kuò)展數(shù)據(jù)服務(wù)(EDS),F(xiàn)CC授權(quán)某一其它線路的使用。這樣的信號(hào)由輸入模塊202解碼并傳遞到其它模塊,就像信號(hào)已經(jīng)通過MPEG私有數(shù)據(jù)信道傳送。
輸入模塊202還可以從諸如本地或遠(yuǎn)程N(yùn)AS存儲(chǔ)設(shè)備、因特網(wǎng)內(nèi)容提供者、本地或遠(yuǎn)程媒體設(shè)備等的網(wǎng)絡(luò)源接收流內(nèi)容。接收到的內(nèi)容流可能會(huì)有許多不同格式,如MPEG、MPEG 2、MPEG 4、WMV、AVCHD、MOV、H.264、MKV等。輸入模塊202可以產(chǎn)生對(duì)應(yīng)于所接收到的內(nèi)容流的MPEG流。
在一個(gè)實(shí)施例中,媒體設(shè)備可以容納多個(gè)輸入模塊202(例如,調(diào)諧器),每一個(gè)都可以被調(diào)諧到不同類型的輸入。例如,一個(gè)調(diào)諧器可以在另一調(diào)諧器從因特網(wǎng)源接收數(shù)字輸入的同時(shí)接收模擬TV信號(hào)。類似地,媒體設(shè)備可以容納多個(gè)輸出模塊206(例如,解碼器)。多個(gè)解碼器可以用來例如將相同或不同的內(nèi)容同時(shí)輸出到多個(gè)顯示設(shè)備或用來實(shí)現(xiàn)各種特殊效果,例如畫中畫(PiP)。
在一個(gè)實(shí)施例中,媒體交換機(jī)204管理微處理器CPU 208、存儲(chǔ)器210、和內(nèi)存212之間的數(shù)據(jù)傳送。內(nèi)存212一般表示媒體設(shè)備102的主內(nèi)存,主內(nèi)存可以被CPU 208和媒體設(shè)備102的其它組件直接訪問。存儲(chǔ)器210一般表示媒體設(shè)備102的輔助存儲(chǔ)設(shè)備,輔助存儲(chǔ)設(shè)備通常不由CPU 208直接訪問。存儲(chǔ)器210的示例包括但不限于硬盤、閃存等。
在一個(gè)實(shí)施例中,媒體交換機(jī)204可以把時(shí)間序列信息嵌入進(jìn)入內(nèi)容流或以其它方式將時(shí)間序列信息與進(jìn)入內(nèi)容流相關(guān)聯(lián)。時(shí)間序列信息可以作為一系列時(shí)間戳與流一起存儲(chǔ)。這些時(shí)間戳例如可以單調(diào)遞增并在系統(tǒng)每次啟動(dòng)時(shí)以零開始。這允許該系統(tǒng)的其它組件更容易地找到內(nèi)容流中的特定位置。例如,如果系統(tǒng)接收到讀進(jìn)入內(nèi)容流五秒的請(qǐng)求,那么系統(tǒng)可以在流中簡單地開始向前讀并定位相應(yīng)的時(shí)間戳。
在一個(gè)實(shí)施例中,在系統(tǒng)處理內(nèi)容流時(shí)可以創(chuàng)建索引。例如,索引可以跟蹤存儲(chǔ)的內(nèi)容流中的I幀(用于MPEG流),這使系統(tǒng)能快速地執(zhí)行特技播放功能,例如快進(jìn),倒退,可變速率快進(jìn),可變速率倒退,幀步進(jìn)等。例如,如果用戶期望在處于媒體內(nèi)容流的中間的播放位置開始回放,則該系統(tǒng)可以使用索引找到最接近內(nèi)容流的中間點(diǎn)的I幀,并從該I幀開始顯示內(nèi)容流,從而用最少信息量獲得所期望的結(jié)果。
在一個(gè)實(shí)施例中,輸入模塊202將輸入流轉(zhuǎn)換成MPEG流并將該MPEG流發(fā)送到媒體交換機(jī)204以用于進(jìn)一步處理??偟膩碚f,媒體交換機(jī)204可以同時(shí)執(zhí)行涉及由媒體設(shè)備接收到的輸入流的一個(gè)或多個(gè)操作。例如,如果媒體設(shè)備的用戶正在觀看直播電視節(jié)目,則媒體交換機(jī)204可以處理和發(fā)送媒體內(nèi)容流到輸出模塊206,同時(shí)引起媒體內(nèi)容流被寫入存儲(chǔ)器210。
在一個(gè)實(shí)施例中,輸出模塊206接收媒體內(nèi)容流作為輸入,并產(chǎn)生輸出顯示信號(hào),輸出顯示信號(hào)可以包括與多種設(shè)備兼容的任何數(shù)字或模擬格式,設(shè)備包括但不限于任何的:數(shù)字監(jiān)視器、數(shù)字電視、模擬電視、計(jì)算機(jī)、智能手機(jī)、平板電腦等。輸出模塊206可包含MPEG解碼器、屏幕顯示(OSD)發(fā)生器、數(shù)字或模擬顯示信號(hào)編碼器和音頻邏輯。OSD發(fā)生器允許程序邏輯提供可覆蓋在所得輸出顯示信號(hào)上面上的圖像。此外,輸出模塊206可將由程序邏輯提供的信息調(diào)制成一些標(biāo)準(zhǔn)格式(包括NABTS、CC和EDS)的輸出信號(hào)的VBI(針對(duì)模擬設(shè)備)。
在一個(gè)實(shí)施例中,流模塊214從客戶端設(shè)備接收對(duì)特定媒體內(nèi)容流的請(qǐng)求,從存儲(chǔ)器210和/或內(nèi)存212取回用于請(qǐng)求的媒體內(nèi)容的數(shù)據(jù),并發(fā)送該媒體內(nèi)容流至請(qǐng)求客戶端設(shè)備。例如,流模塊214可通過一個(gè)或多個(gè)有線或無線網(wǎng)絡(luò)鏈路接收來自客戶端設(shè)備的請(qǐng)求并將媒體內(nèi)容流發(fā)送至客戶端設(shè)備。在一個(gè)實(shí)施例中,流模塊214的網(wǎng)絡(luò)接口可以被配置為使用直接內(nèi)存存取(DMA)直接從內(nèi)存212訪問媒體內(nèi)容數(shù)據(jù)。
圖2B是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的流媒體設(shè)備的內(nèi)部結(jié)構(gòu)和操作的示例的框圖。示例流媒體設(shè)備可類似于在圖2A中示出的媒體設(shè)備,除了圖2A中的媒體設(shè)備的一些組件(例如,輸出模塊206和存儲(chǔ)器210)可以減少或不存在之外。如圖2B所示,示例流媒體設(shè)備可以包含輸入模塊202、媒體交換機(jī)204、CPU 208、內(nèi)存212、和流模塊214。通過減少如圖2B所示的流媒體設(shè)備中存在的組件數(shù)量,例如,可以生產(chǎn)較低成本的專注于將媒體內(nèi)容流傳輸?shù)狡渌蛻舳嗽O(shè)備的設(shè)備。
在一個(gè)實(shí)施例中,流媒體設(shè)備的輸入模塊202可以從包括模擬TV輸入流、數(shù)字廣播輸入流、和網(wǎng)絡(luò)源的任何數(shù)量的源接收輸入。作為另一示例,流媒體設(shè)備可以從其它媒體設(shè)備例如圖2A中示出的媒體設(shè)備接收輸入。采用這種安排,流媒體設(shè)備可以單獨(dú)于另一媒體設(shè)備操作以將媒體內(nèi)容從媒體設(shè)備流傳輸?shù)狡渌蛻舳嗽O(shè)備。
4.0示例媒體內(nèi)容流水線架構(gòu)
圖3是示出根據(jù)一個(gè)或多個(gè)實(shí)施例的示例媒體內(nèi)容流水線的框圖。在圖3中,媒體內(nèi)容流水線300被表示為一系列數(shù)據(jù)處理模塊,這些數(shù)據(jù)處理模塊被共同配置成從一個(gè)或多個(gè)輸入模塊202接收、緩沖、緩存、加密和存儲(chǔ)媒體內(nèi)容流,等等。在一個(gè)實(shí)施例中,媒體內(nèi)容流水線300包含處理模塊,處理模塊包括源312,磁盤大小調(diào)整器302、變換器304、片段緩存306、片段文件308和片段寫緩存310。從概念上講,這些處理模塊中的每一個(gè)握手通過媒體內(nèi)容流水線300從一個(gè)或多個(gè)輸入模塊202接收到的媒體內(nèi)容流緩沖區(qū)。
在一個(gè)實(shí)施例中,源312代表配置為從數(shù)據(jù)源取回?cái)?shù)據(jù),并且將數(shù)據(jù)發(fā)送到媒體內(nèi)容流水線300的其余部分進(jìn)行處理的程序邏輯,數(shù)據(jù)源可以包括但不限于調(diào)諧器、流內(nèi)容服務(wù)器、URL,網(wǎng)絡(luò)訪問存儲(chǔ)器(NAS)、機(jī)頂盒、媒體設(shè)備、視頻服務(wù)器、付費(fèi)觀看源、視頻點(diǎn)播源等中的任何一個(gè)。在一個(gè)實(shí)施例中,源312將從數(shù)據(jù)源取回的數(shù)據(jù)發(fā)送到磁盤大小調(diào)整器302,磁盤大小調(diào)整器302將數(shù)據(jù)分配到緩沖區(qū)中,如下文所述。
在一個(gè)實(shí)施例中,磁盤大小調(diào)整器302從源312接收媒體內(nèi)容數(shù)據(jù)并將媒體內(nèi)容數(shù)據(jù)分段到分開的數(shù)據(jù)緩沖區(qū)。在這種情況下,緩沖區(qū)通常表示來自內(nèi)存池的能夠暫時(shí)存儲(chǔ)進(jìn)入媒體內(nèi)容流的部分的內(nèi)存區(qū)域。存儲(chǔ)在緩沖區(qū)中的數(shù)據(jù)可以隨后經(jīng)歷由媒體內(nèi)容流水線300的其它組件執(zhí)行的多種處理步驟。每個(gè)緩沖區(qū)可以例如存儲(chǔ)近似相同量的媒體內(nèi)容數(shù)據(jù)(例如,64KB、128KB或1MB),其中該緩沖區(qū)大小可被選擇以方便存儲(chǔ)在輔助存儲(chǔ)設(shè)備上和/或用于媒體內(nèi)容流水線300的其它處理步驟。
在一個(gè)實(shí)施例中,磁盤大小調(diào)整器302從變換器304請(qǐng)求空緩沖區(qū),以用從源312接收到的媒體內(nèi)容數(shù)據(jù)的部分填充。例如,如果變換器304被配置成將緩沖區(qū)分配為128KB的塊,然后磁盤大小調(diào)整器302可以將從源312接收到的媒體內(nèi)容數(shù)據(jù)流分段成128KB的段,從變換器304請(qǐng)求一個(gè)或多個(gè)空的緩沖區(qū),并且將128KB的段存儲(chǔ)在空緩沖區(qū)中。通過將媒體內(nèi)容流水線300配置成對(duì)作為存儲(chǔ)在數(shù)據(jù)緩沖區(qū)中的一批相同大小的段的媒體內(nèi)容流進(jìn)行操作,流的下游處理可以更加有效。在其它示例中,可取決于存儲(chǔ)優(yōu)化和媒體內(nèi)容數(shù)據(jù)的比特率而將緩沖區(qū)分配成可變大小。
在一個(gè)實(shí)施例中,如果磁盤大小調(diào)整器302尚不可使用當(dāng)前緩沖區(qū)來存儲(chǔ)從源312接收到的媒體內(nèi)容流,那么磁盤大小調(diào)整器302請(qǐng)求變換器304從存儲(chǔ)在內(nèi)存212中的緩沖內(nèi)存池分配新的緩沖區(qū)。在一個(gè)實(shí)施例中,媒體設(shè)備的每一個(gè)調(diào)諧器可以與單獨(dú)的媒體內(nèi)容流水線相關(guān)聯(lián),并且內(nèi)存池可以用每個(gè)流水線可用的內(nèi)存的特定量配置。變換器304可以例如通過調(diào)用從內(nèi)存池中的可用空間創(chuàng)建緩沖區(qū)的系統(tǒng)功能來創(chuàng)建新緩沖區(qū),供相關(guān)聯(lián)的媒體內(nèi)容流水線300使用。當(dāng)磁盤大小調(diào)整器302從源312接收媒體內(nèi)容數(shù)據(jù)時(shí),磁盤大小調(diào)整器302將數(shù)據(jù)的部分以及任何元數(shù)據(jù)一起存儲(chǔ)在當(dāng)前緩沖區(qū)中,其中元數(shù)據(jù)提供關(guān)于存儲(chǔ)在緩沖區(qū)中的媒體內(nèi)容的描述性信息。
總的來說,磁盤大小調(diào)整器302將從源312接收到的媒體內(nèi)容數(shù)據(jù)存儲(chǔ)在當(dāng)前緩沖區(qū)中,直到當(dāng)前緩沖區(qū)“裝滿”為止(例如,如果緩沖區(qū)被創(chuàng)建以存儲(chǔ)128KB的數(shù)據(jù),那么當(dāng)磁盤大小調(diào)整302已經(jīng)將近似128KB的媒體內(nèi)容數(shù)據(jù)和其它元數(shù)據(jù)存儲(chǔ)在當(dāng)前緩沖區(qū)中時(shí),該緩沖區(qū)被裝滿)。在一個(gè)實(shí)施例中,在當(dāng)前緩沖區(qū)裝滿時(shí),磁盤大小調(diào)整器302將裝滿的緩沖區(qū)發(fā)送到片段緩存306用于進(jìn)一步處理。
取決于分配給每個(gè)緩沖區(qū)的空間量,在磁盤大小調(diào)整器302能夠存儲(chǔ)足夠的數(shù)據(jù)來裝滿當(dāng)前的緩沖區(qū)之前,可能會(huì)逝去顯著量的時(shí)間,特別是對(duì)于低比特率的媒體內(nèi)容流(例如,無線電轉(zhuǎn)播)。因?yàn)槊襟w內(nèi)容流水線300的其它處理元件可以等待從磁盤大小調(diào)整器302接收裝滿的緩沖區(qū)用于進(jìn)一步處理(例如,為了將緩沖區(qū)存儲(chǔ)到磁盤或?qū)⒕彌_區(qū)流傳輸?shù)娇蛻舳嗽O(shè)備),因此在低比特率流下裝滿緩沖區(qū)的時(shí)間量可能會(huì)導(dǎo)致不希望的處理延遲。
在一個(gè)實(shí)施例中,為了確保被磁盤大小調(diào)整器302使用的緩沖區(qū)被及時(shí)推到媒體內(nèi)容流水線300的其余部分,可以允許非裝滿緩沖區(qū)。例如,如果媒體內(nèi)容流水線300中的每個(gè)緩沖區(qū)的固定大小為128KB,那么磁盤大小調(diào)整器302能夠用小于128KB的媒體內(nèi)容數(shù)據(jù)填充一個(gè)或多個(gè)緩沖區(qū),并且如果一個(gè)或多個(gè)條件達(dá)到就用“填料”填充剩余空間。在這種情況下,填料一般指的是用于占據(jù)緩沖區(qū)中的空間從而使得緩沖器被填充成固定數(shù)據(jù)大小的任何非媒體內(nèi)容數(shù)據(jù)。被檢查以確定磁盤大小調(diào)整器302是否填補(bǔ)緩沖區(qū)的條件的一個(gè)示例可以包括達(dá)到閾值時(shí)限(例如,100毫秒)。例如,磁盤大小調(diào)整器302可以跟蹤填充每個(gè)特定緩沖區(qū)所花的時(shí)間量,并且如果當(dāng)前緩沖區(qū)未在閾值時(shí)限內(nèi)被裝滿,則磁盤大小調(diào)整器302可以用填料來填補(bǔ)緩沖區(qū)并將被填補(bǔ)的緩沖區(qū)發(fā)送到系統(tǒng)的其余部分進(jìn)行處理。
如上所述,媒體設(shè)備102可以同時(shí)接收多個(gè)媒體內(nèi)容流用于處理。例如,媒體設(shè)備102可以包括能夠同時(shí)接收單獨(dú)的媒體內(nèi)容輸入流的多個(gè)調(diào)諧器。在一個(gè)實(shí)施例中,媒體設(shè)備102可以從輸入模塊202同時(shí)接收多個(gè)媒體內(nèi)容流并且作為一個(gè)單獨(dú)的流水線處理各該多個(gè)媒體內(nèi)容流中的每個(gè)。例如,當(dāng)接收到單獨(dú)的媒體內(nèi)容輸入流時(shí),磁盤大小調(diào)整器302可以從相同或單獨(dú)的內(nèi)存池創(chuàng)建用于單獨(dú)的媒體內(nèi)容輸入流中的每一個(gè)的單獨(dú)一組緩沖區(qū)。
片段緩存306從磁盤大小調(diào)整器302接收裝滿的緩沖區(qū),并保持裝滿的緩沖區(qū)成成隊(duì)列。通過片段緩存306管理的緩沖區(qū)的隊(duì)列可以被例如作為存儲(chǔ)介質(zhì)(諸如內(nèi)存212)上的緩存文件被保持。
在一個(gè)實(shí)施例中,在隊(duì)列中的緩沖區(qū)排隊(duì)等待加密。緩沖區(qū)被加密的原因可以有許多,包括由媒體設(shè)備接收的受版權(quán)保護(hù)的媒體內(nèi)容的安全性。例如,內(nèi)容所有者經(jīng)常關(guān)注媒體內(nèi)容的未經(jīng)授權(quán)的復(fù)制,因此,媒體內(nèi)容的流水線可以加密媒體內(nèi)容,使更難將受版權(quán)保護(hù)的媒體內(nèi)容非法從一個(gè)媒體設(shè)備傳送到另一個(gè)媒體設(shè)備。任何數(shù)量的安全系統(tǒng)和加密方案可以被用于加密由媒體設(shè)備102接收的媒體內(nèi)容,并確保媒體設(shè)備102能夠?qū)⑹馨鏅?quán)保護(hù)的內(nèi)容僅傳送到其它授權(quán)的設(shè)備??捎糜诎踩鎯?chǔ)和/或傳送媒體內(nèi)容的安全系統(tǒng)的示例在本申請(qǐng)人所有的美國申請(qǐng)序列號(hào)10741596中進(jìn)一步描述,其通過引用并入,就像本文原始公開一樣。
在一個(gè)實(shí)施例中,片段緩存306將未加密緩沖區(qū)列隊(duì)以加密,直到確定在隊(duì)列中的一個(gè)或多個(gè)緩沖區(qū)已達(dá)到“加密限制”為止。加密限制通常可以指可配置條件或閾值,當(dāng)被觸發(fā)時(shí),其引起由片段緩存306列隊(duì)的未加密的緩沖區(qū)被加密。例如,一個(gè)加密限制可以被配置成當(dāng)每次從磁盤大小調(diào)整器302接收到新的未加密的緩沖區(qū)時(shí)使得未加密的緩沖區(qū)被加密。然而,由于加密緩沖區(qū)的過程可包括設(shè)置加密密鑰,使用密鑰來加密數(shù)據(jù)等,因此分別加密從磁盤大小調(diào)整器302接收到的每個(gè)新緩沖區(qū)可能會(huì)顯著降低媒體設(shè)備的性能,特別是對(duì)于高比特率流下的媒體內(nèi)容。
作為另一示例,加密限制可以基于時(shí)限,其中片段緩存306列隊(duì)從磁盤大小調(diào)整器302接收到的未加密的緩沖區(qū),并且按周期時(shí)刻表例如每100毫秒一次或基于任何其它時(shí)間增量,發(fā)送用于加密的一個(gè)或多個(gè)列隊(duì)緩沖區(qū)。通過使用基于周期時(shí)間表的加密限制,即使媒體內(nèi)容流的比特率非常高,媒體內(nèi)容流水線300也可以在給定的時(shí)間范圍內(nèi)執(zhí)行大致相同數(shù)量的加密。
作為又一示例,片段緩存306可以被配置成具有基于當(dāng)前由片段緩存306列隊(duì)以加密的未加密緩沖區(qū)的特定數(shù)量的加密限制。例如,片段緩存306可以只被分配足夠在任何給定的時(shí)間列隊(duì)某一數(shù)量的未加密的緩沖區(qū)的內(nèi)存空間。因此,片段緩存306可從磁盤大小調(diào)整器302接收未加密的緩沖區(qū),直到提供給片段緩存306的緩沖區(qū)的數(shù)量滿了為止,此時(shí)片段緩存306將緩沖區(qū)發(fā)送到片段文件308以待被加密。
在一個(gè)實(shí)施例中,片段文件308從片段緩存306接收未加密的緩沖區(qū)作為輸入,使得未加密的緩沖區(qū)被加密(例如,通過發(fā)送緩沖區(qū)到加密引擎),并發(fā)送加密的緩沖區(qū)到片段寫緩區(qū)310。各種各樣的加密技術(shù)或安全方案可以被用來加密緩沖區(qū),加密技術(shù)或安全方案包括但不限于:數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)、高級(jí)加密標(biāo)準(zhǔn)(AES)、加密散列函數(shù)(例如MD5、SHA-1、SHA-2、SHA-3)、私人和公共密鑰等。如本文所述的加密技術(shù)可以在硬件、軟件、或兩者的組合中實(shí)施。
在一個(gè)實(shí)施例中,片段緩存306中的一些或全部緩沖區(qū)可以不被片段文件308加密,并且代替地片段緩存306可以發(fā)送緩沖區(qū)到片段寫緩存310而不加密數(shù)據(jù)。例如,一些緩沖區(qū)可以不在加密狀態(tài)下被存儲(chǔ)在輔助存儲(chǔ)器中,因?yàn)閷?duì)于特定內(nèi)容復(fù)制保護(hù)是不必要。作為另一示例,由片段文件308接收到的一些媒體內(nèi)容可能事先被內(nèi)容源或其它中介加密,因此,片段緩存306可以發(fā)送預(yù)先加密的緩沖區(qū)數(shù)據(jù)到片段寫緩存310而不加密數(shù)據(jù)。
在一個(gè)實(shí)施例中,片段寫緩存310從片段文件308接收加密的緩沖區(qū)并保持緩沖區(qū)在加密緩沖緩存中。加密的緩沖區(qū)緩存通常表示存儲(chǔ)在媒體設(shè)備的主內(nèi)存中的、一組排隊(duì)等待寫入媒體設(shè)備的輔助存儲(chǔ)器的加密緩沖區(qū)。加密緩沖區(qū)緩存也可以用于滿足在當(dāng)前存儲(chǔ)在加密緩沖區(qū)緩存中的媒體內(nèi)容流中的任何播放位置處播放或流傳輸媒體內(nèi)容流的請(qǐng)求。例如,因?yàn)榧用芫彌_區(qū)緩存在將媒體內(nèi)容數(shù)據(jù)寫入磁盤之前存儲(chǔ)最近從輸入模塊202接收的加密媒體內(nèi)容數(shù)據(jù),所以如果所請(qǐng)求的播放點(diǎn)在直播點(diǎn)或附近,那么媒體設(shè)備可以播放來自加密的緩沖區(qū)緩存的加密的緩沖區(qū)或?qū)⑵淞鱾鬏數(shù)秸?qǐng)求客戶端設(shè)備。如本文中所使用的,直播點(diǎn)指的是在媒體內(nèi)容流的最當(dāng)前點(diǎn)。例如,現(xiàn)場(chǎng)廣播的直播點(diǎn)通常指的是流的最近廣播的部分。通過在可能時(shí)從加密的緩沖區(qū)緩存滿足來自媒體設(shè)備來自和/或客戶端設(shè)備的請(qǐng)求,媒體內(nèi)容流水線300可以不那么頻繁地將加密緩沖區(qū)寫入存儲(chǔ)器210而不會(huì)妨礙對(duì)存儲(chǔ)在緩沖區(qū)中的數(shù)據(jù)的訪問。在一個(gè)實(shí)施例中,片段寫緩存310將加密的緩沖區(qū)保持在加密的緩沖區(qū)緩存中,直到緩沖區(qū)被寫入磁盤并且已超過規(guī)定的將緩沖區(qū)中保持在緩存中的時(shí)間閾值。
在一個(gè)實(shí)施例中,過程定期檢查存儲(chǔ)在加密的緩沖區(qū)緩存中的尚未被寫入磁盤的加密緩沖區(qū)并且如果滿足一個(gè)或多個(gè)閾值就將緩沖區(qū)寫入磁盤。用于將加密緩沖區(qū)寫入磁盤的示例閾值可以包括當(dāng)前存儲(chǔ)在緩存中的未寫入緩沖區(qū)的數(shù)量限制,和一個(gè)或多個(gè)未寫入緩沖區(qū)已經(jīng)存儲(chǔ)在緩存中的時(shí)間長度。如果過程檢測(cè)到達(dá)到閾值,則過程取回尚未寫入到輔助存儲(chǔ)器的加密的緩沖區(qū),并將其寫入到輔助存儲(chǔ)器。
在一個(gè)實(shí)施例中,已寫入到輔助存儲(chǔ)器的加密的緩沖區(qū)在緩存中被標(biāo)記以指示該緩沖區(qū)已經(jīng)存儲(chǔ);但是,存儲(chǔ)的緩沖區(qū)可以在分配給緩沖區(qū)的空間被釋放并可供其它流水線組件使用之前保持在加密緩沖區(qū)緩存一段時(shí)間。在此期間,該緩沖區(qū)可以保持可用以直接從加密緩沖區(qū)緩存滿足對(duì)緩沖區(qū)的進(jìn)入請(qǐng)求(例如,來自媒體設(shè)備或流客戶端),直到緩沖區(qū)“期滿”。在實(shí)施例中,片段寫緩存310可能會(huì)導(dǎo)致已被寫入磁盤的緩沖區(qū)在某段時(shí)間已經(jīng)過去之后,或基于任何其它條件“期滿”,緩沖區(qū)是不再使用。一旦緩沖區(qū)已期滿,分配給緩沖區(qū)的空間可以被釋放并返回到相關(guān)聯(lián)的內(nèi)存池。例如,該釋放的空間可以返回到與片段寫緩存310相關(guān)聯(lián),并用于存儲(chǔ)來自片段文件308的其它進(jìn)入數(shù)據(jù)的內(nèi)存池。作為另一示例,釋放的緩沖區(qū)空間可供由變換器304使用的內(nèi)存池用來分配緩沖區(qū)。
在一個(gè)實(shí)施例中,片段寫緩存310可以被單獨(dú)的轉(zhuǎn)碼流水線用來將媒體內(nèi)容有效地流傳輸至客戶端設(shè)備。例如,將HLS流傳遞給客戶端設(shè)備的轉(zhuǎn)碼流水線可以訪問存儲(chǔ)在片段寫緩存310中的緩沖區(qū),轉(zhuǎn)換緩沖區(qū)的代碼,并將代碼轉(zhuǎn)換的媒體內(nèi)容發(fā)送到客戶端設(shè)備,而不是等待轉(zhuǎn)換來自輔助存儲(chǔ)器的直播點(diǎn)附近的媒體內(nèi)容的代碼。
5.0實(shí)施示例
5.1媒體內(nèi)容處理
圖4示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于使用媒體內(nèi)容流水線處理媒體內(nèi)容的示例處理流程。流程200的各種元件可以在各種系統(tǒng),包括諸如上面描述的系統(tǒng)100的系統(tǒng)中執(zhí)行。在一個(gè)實(shí)施例中,結(jié)合下面描述的功能塊描述的每個(gè)過程的實(shí)施可以使用任何通用計(jì)算機(jī)或特殊用途計(jì)算機(jī)中的一個(gè)或多個(gè)計(jì)算機(jī)程序、其它軟件元件、和/或數(shù)字邏輯,同時(shí)執(zhí)行涉及與計(jì)算機(jī)的內(nèi)存的物理狀態(tài)交互和變換的數(shù)據(jù)取回、變換、和存儲(chǔ)操作。圖4中示出的步驟可以重新安排或省略。此外,未在圖4中示出的附加步驟可以根據(jù)一個(gè)或多個(gè)實(shí)施例來執(zhí)行。因此,在圖4中示出的步驟的選擇或安排不應(yīng)該被解釋為限制。
在框402處,一個(gè)或多個(gè)媒體內(nèi)容數(shù)據(jù)流由媒體設(shè)備接收。例如,媒體設(shè)備102可以利用媒體設(shè)備的一個(gè)或多個(gè)調(diào)諧器從內(nèi)容源106接收一個(gè)或多個(gè)媒體內(nèi)容數(shù)據(jù)流。媒體設(shè)備102可以接收單個(gè)媒體內(nèi)容數(shù)據(jù)流或同時(shí)接收多個(gè)媒體內(nèi)容數(shù)據(jù)流。例如,媒體設(shè)備102的用戶可以同時(shí)播放和/或記錄多個(gè)節(jié)目。作為另一示例,媒體設(shè)備102可以正接收多個(gè)內(nèi)容流用于流傳輸?shù)揭粋€(gè)或多個(gè)客戶端設(shè)備104。
在框404中,媒體內(nèi)容數(shù)據(jù)流的至少一部分被存儲(chǔ)在一個(gè)或多個(gè)內(nèi)存緩沖區(qū)中。例如,對(duì)于由媒體設(shè)備102接收的每個(gè)媒體內(nèi)容數(shù)據(jù)流,媒體設(shè)備102可以將媒體內(nèi)容流的部分存儲(chǔ)在存儲(chǔ)于內(nèi)存212中的一個(gè)或多個(gè)緩沖區(qū)中。在一個(gè)實(shí)施例中,由媒體設(shè)備102創(chuàng)建用于存儲(chǔ)媒體內(nèi)容數(shù)據(jù)流的部分的緩沖區(qū)可以被列隊(duì)以被媒體設(shè)備102進(jìn)一步處理。
在框406中,確定一個(gè)或多個(gè)內(nèi)存緩沖區(qū)是否達(dá)到加密限制。如參照?qǐng)D3中示出的示例媒體內(nèi)容流水線而在上面描述的,媒體內(nèi)容流數(shù)據(jù)可以由媒體設(shè)備102接收并最初分段并存儲(chǔ)在一個(gè)或多個(gè)未加密的緩沖區(qū)中。出于安全和其它原因,媒體設(shè)備102可以在將緩沖區(qū)存儲(chǔ)在存儲(chǔ)器210或?qū)⒚襟w內(nèi)容數(shù)據(jù)發(fā)送到客戶端設(shè)備104之前加密緩沖區(qū)。在一個(gè)實(shí)施例中,確定一個(gè)或多個(gè)內(nèi)存緩沖區(qū)是否達(dá)到加密限制可以包括:確定已經(jīng)達(dá)到特定的時(shí)限,或一定數(shù)量的未加密緩沖區(qū)當(dāng)前排隊(duì)等待加密。
在框408,媒體設(shè)備對(duì)一個(gè)或多個(gè)內(nèi)存緩沖區(qū)進(jìn)行加密,并將加密的緩沖區(qū)存儲(chǔ)在緩沖區(qū)緩存中。例如,媒體設(shè)備102可以使用由硬件、軟件、或其組合實(shí)現(xiàn)的任何數(shù)量的加密技術(shù)來加密緩沖區(qū)。媒體設(shè)備102可以將加密的緩沖區(qū)存儲(chǔ)在片段寫緩存310中,片段寫緩存310隊(duì)列加密的緩沖區(qū),以便進(jìn)一步處理,包括將加密緩沖區(qū)寫入存儲(chǔ)器210中。在一個(gè)實(shí)施例中,片段寫緩存310中的加密緩沖區(qū)還可供輸出模塊206和/或流模塊214讀取。
在框410,媒體設(shè)備確定存儲(chǔ)在加密緩沖區(qū)緩存中的一個(gè)或多個(gè)緩沖區(qū)是否已經(jīng)達(dá)寫限制。例如,確定存儲(chǔ)在加密緩沖區(qū)緩存中的一個(gè)或多個(gè)緩沖區(qū)是否達(dá)到寫限制包括:確定是否已經(jīng)達(dá)到特定的時(shí)限,或某一數(shù)量的加密緩沖區(qū)當(dāng)前已經(jīng)存儲(chǔ)在加密緩沖區(qū)緩存中以并且尚未寫入存儲(chǔ)器。
如果,在框410中,媒體設(shè)備確定未達(dá)到寫限制,則在框408中,媒體設(shè)備可以繼續(xù)新接收、加密緩沖區(qū),并將新加密的存儲(chǔ)在加密緩沖區(qū)緩存中。
如果,在框410,媒體設(shè)備確定存儲(chǔ)在加密緩沖區(qū)緩存中的一個(gè)或多個(gè)加密緩沖區(qū)達(dá)到寫限制,則在框412該媒體設(shè)備將存儲(chǔ)在緩沖區(qū)緩存中的一個(gè)或多個(gè)加密緩沖區(qū)寫入存儲(chǔ)器。例如,媒體設(shè)備102可以將緩沖區(qū)寫入存儲(chǔ)器210。在一個(gè)實(shí)施例中,將緩沖區(qū)寫入存儲(chǔ)210可以包括修改與存儲(chǔ)在內(nèi)存212中的緩沖區(qū)相關(guān)聯(lián)的值以指示該緩沖區(qū)已寫入存儲(chǔ)器210。
5.2在媒體設(shè)備播放媒體內(nèi)容
除其它特性之外,媒體設(shè)備102被配置成接收和處理播放媒體內(nèi)容的請(qǐng)求。例如,用戶可請(qǐng)求使媒體設(shè)備102播放特定媒體內(nèi)容,該特定媒體內(nèi)容是由媒體設(shè)備使用媒體設(shè)備的一個(gè)或多個(gè)調(diào)諧器從內(nèi)容源106接收的。作為另一示例,單獨(dú)的客戶端設(shè)備可以請(qǐng)求播放可從單獨(dú)的媒體設(shè)備102流傳輸?shù)膬?nèi)容。在一個(gè)實(shí)施例中,請(qǐng)求的媒體內(nèi)容流可被媒體設(shè)備使用媒體內(nèi)容流水線(例如上述的媒體內(nèi)容流水線300)接收和處理。
概念上,用戶可請(qǐng)求在相對(duì)于作為整體的媒體內(nèi)容流的三個(gè)時(shí)間段中的一個(gè)處播放媒體內(nèi)容流:(1)在流中的直播點(diǎn)或最當(dāng)前播放點(diǎn)處;(2)在直播點(diǎn)后面但仍是其附近的播放點(diǎn)處(例如,其中用于播放點(diǎn)的緩沖區(qū)仍然存儲(chǔ)在由媒體內(nèi)容流水線管理的緩存中);以及(3)在不在直播點(diǎn)附近的播放點(diǎn)處(例如,其中用于播放點(diǎn)的緩沖區(qū)已經(jīng)被媒體內(nèi)容流水線處理,寫入磁盤,并且不再存儲(chǔ)在由媒體內(nèi)容流水線保持的緩存中)。在一個(gè)實(shí)施例中,媒體內(nèi)容流水線可將數(shù)據(jù)提供給輸出模塊206和/或流模塊214,以取決于用戶請(qǐng)求播放的媒體內(nèi)容流在內(nèi)容流的位置而在媒體設(shè)備播放來自不同源的媒體內(nèi)容流。
在一個(gè)實(shí)施例中,如果用戶請(qǐng)求在媒體內(nèi)容流的直播點(diǎn)處或附近播放媒體內(nèi)容流,那么媒體設(shè)備可以在許多不同模式中的任一模式中訪問用于媒體內(nèi)容流的數(shù)據(jù),其中每一種模式均可以或可以不繞過本文所描述通過媒體內(nèi)容流水線處理媒體內(nèi)容流。
作為一個(gè)示例,當(dāng)在直播點(diǎn)或附近播放時(shí),輸出模塊206可以直接讀取由輸入模塊202接收的數(shù)據(jù)。由輸入模塊202接收的數(shù)據(jù)可以如上所述仍然可以由媒體內(nèi)容流水線的組件進(jìn)行處理和以其它方式管理,然而,輸出模塊206可以從輸入模塊202直接訪問數(shù)據(jù),而不是從片段寫緩存310或流水線的其它組件。然而,因?yàn)檩斎肽K202在可用來存儲(chǔ)進(jìn)入數(shù)據(jù)流的空間量方面是有限的,因此從輸入模塊202直接取回用于媒體內(nèi)容流的數(shù)據(jù)的能力可能只對(duì)在直播點(diǎn)或附近播放媒體內(nèi)容流的請(qǐng)求起作用。此外,如果媒體設(shè)備不被允許從輸入模塊直接訪問數(shù)據(jù),那么為輸入模塊預(yù)留的內(nèi)存尺寸可以減少并且用于系統(tǒng)的其它部分。
作為另一示例,輸入模塊202可從內(nèi)容源接收媒體內(nèi)容并編碼媒體內(nèi)容,并且將已編碼的媒體內(nèi)容數(shù)據(jù)存儲(chǔ)在內(nèi)存為輸入模塊202預(yù)留的部分中。此外,內(nèi)存為輸入模塊202預(yù)留的部分可以通過使用DMA或其它技術(shù)而被輸出模塊206直接訪問。在此示例中,來自輸入模塊202的由輸出模塊206讀取的數(shù)據(jù)可以完全繞過媒體內(nèi)容流水線。在一些情況下,這個(gè)過程可以被稱作媒體內(nèi)容數(shù)據(jù)的“現(xiàn)場(chǎng)解碼”。
作為又一個(gè)示例,輸出模塊206可以從由片段寫緩存310管理的內(nèi)存緩沖區(qū)讀取直播點(diǎn)處或附近的數(shù)據(jù)??偟膩碚f,可使用讀取和播放直播點(diǎn)或附近的媒體內(nèi)容的一個(gè)或多個(gè)模式中的任一個(gè),例如,這取決于當(dāng)前播放點(diǎn)離直播點(diǎn)確切多遠(yuǎn)。此外,模式的各種組合可在特定實(shí)施方案中使用,并且在同一實(shí)施方案中可以共存。
如上所述,由媒體設(shè)備接收到的在媒體內(nèi)容流的直播點(diǎn)或附近播放媒體內(nèi)容的請(qǐng)求反而可以至少部分地由存儲(chǔ)在由媒體內(nèi)容流水線管理的緩存中的一個(gè)或多個(gè)緩沖區(qū)中的數(shù)據(jù)來滿足。例如,媒體設(shè)備的程序邏輯可以被配置為取決于所請(qǐng)求的播放點(diǎn)在媒體內(nèi)容流中后退多遠(yuǎn)以及當(dāng)前存儲(chǔ)在緩存中的是媒體內(nèi)容流哪個(gè)部分而從緩存或從磁盤取回用于回放的數(shù)據(jù)。
在一個(gè)實(shí)施例中,對(duì)于媒體內(nèi)容流內(nèi)的播放點(diǎn)的請(qǐng)求可以由媒體內(nèi)容流水線的控制對(duì)象接收,該控制對(duì)象調(diào)用一個(gè)返回存儲(chǔ)用于所請(qǐng)求的播放點(diǎn)的數(shù)據(jù)的一個(gè)或多個(gè)緩沖區(qū)的函數(shù)。該函數(shù)可以首先檢查存儲(chǔ)用于所請(qǐng)求的播放點(diǎn)中的數(shù)據(jù)的緩沖區(qū)在由媒體內(nèi)容流的媒體內(nèi)容流水線保持的加密緩沖區(qū)的列表中(例如,在片段寫緩存310中)是否可用。例如,該功能可以利用時(shí)間戳或與該請(qǐng)求相關(guān)聯(lián)的緩沖區(qū)序號(hào)檢查播放點(diǎn)在緩沖區(qū)的列表中是否可用。如果所請(qǐng)求的一個(gè)或多個(gè)緩沖區(qū)在加密緩沖區(qū)的列表中可用,那么緩沖區(qū)可以從內(nèi)存被解密并作為解密緩沖區(qū)返回到輸出模塊用于解碼和顯示。
如果用于所請(qǐng)求的播放點(diǎn)的緩沖區(qū)在加密緩沖區(qū)的列表中不可用(例如,因?yàn)樵摼彌_區(qū)已經(jīng)寫入磁盤并且已經(jīng)從緩沖區(qū)的緩存列表期滿),則函數(shù)可替代地從磁盤存儲(chǔ)器取回緩沖區(qū)。因?yàn)槊襟w內(nèi)容流水線處理緩沖區(qū)并將其作為相同大小的緩沖區(qū)存儲(chǔ)在加密緩沖區(qū)緩存中并且存儲(chǔ)在磁盤上,所以從緩存或磁盤返回的緩沖區(qū)可被輸出模塊類似地處理以顯示內(nèi)容。
總的來說,從一個(gè)源到另一個(gè)的過渡播放內(nèi)容(例如,從輔助存儲(chǔ)器到內(nèi)存緩存,或從內(nèi)存緩存到DMA)是無縫的并且可不被觀看媒體內(nèi)容的用戶發(fā)覺(例如,播放給用戶的內(nèi)容沒有中斷或突變)。
5.3媒體內(nèi)容流
圖5示出根據(jù)一個(gè)或多個(gè)實(shí)施例的用于將媒體內(nèi)容從媒體設(shè)備流傳輸?shù)揭粋€(gè)或多個(gè)客戶端設(shè)備的流程圖。圖5中示出的步驟可以重新安排或省略。此外,圖5中未示出的附加步驟可以根據(jù)一個(gè)或多個(gè)實(shí)施例來執(zhí)行。因此,圖5中示出的步驟的選擇或安排不應(yīng)該被解釋為限制。在一個(gè)實(shí)施例中,圖5中示出的一個(gè)或多個(gè)步驟可以與圖4中示出的示例流程圖的步驟同時(shí)進(jìn)行。例如,媒體設(shè)備可以接收、加密、并且存儲(chǔ)一個(gè)或多個(gè)媒體內(nèi)容數(shù)據(jù)流,如圖4的示例流程圖所示,并且同時(shí)接收來自一個(gè)或多個(gè)客戶端設(shè)備的將媒體內(nèi)容數(shù)據(jù)流發(fā)送到客戶端設(shè)備的請(qǐng)求。
在框502,媒體設(shè)備從客戶端設(shè)備接收針對(duì)媒體內(nèi)容流的請(qǐng)求。例如,客戶端設(shè)備104可被配置成提供屏幕顯示并從用戶接收選擇在客戶端設(shè)備播放的特定媒體內(nèi)容項(xiàng)的用戶命令。例如,用戶可以導(dǎo)航屏幕顯示,以獲取關(guān)于用戶感興趣的媒體內(nèi)容項(xiàng)的信息,并播放所選擇的媒體內(nèi)容項(xiàng)。關(guān)于可用媒體內(nèi)容項(xiàng)的信息可能由客戶端設(shè)備104從媒體設(shè)備102和/或服務(wù)提供者108獲得。
關(guān)于可用媒體內(nèi)容項(xiàng)的信息可以包括地址(例如,信道、統(tǒng)一資源定位符、文件名、媒體數(shù)據(jù)數(shù)據(jù)庫、媒體服務(wù)器、媒體分發(fā)系統(tǒng)等),媒體內(nèi)容項(xiàng)可以從地址流傳輸或以其它方式訪問。如本文所描述可用編程信息可以包括可經(jīng)由媒體設(shè)備102接收的媒體節(jié)目的可用性信息。例如,客戶端設(shè)備104可以請(qǐng)求可能沒有被存儲(chǔ)在媒體設(shè)備102上,但是媒體設(shè)備102可以通過媒體設(shè)備的調(diào)諧器接收的直播電視廣播。為了接收所請(qǐng)求的廣播,媒體設(shè)備102可以分配一個(gè)或多個(gè)調(diào)諧器中的一個(gè)來接收直播廣播,處理接收到的媒體內(nèi)容(例如,如以上參考圖4描述),并將內(nèi)容流傳輸?shù)秸?qǐng)求的客戶端設(shè)備104。在一些實(shí)施例中,多個(gè)媒體內(nèi)容流可以由媒體設(shè)備102同時(shí)流傳輸?shù)揭粋€(gè)或多個(gè)不同的客戶端設(shè)備104。
在一個(gè)實(shí)施例中,請(qǐng)求可以由客戶端設(shè)備104產(chǎn)生,并被媒體設(shè)備102的協(xié)調(diào)訪問所請(qǐng)求的媒體內(nèi)容流的流模塊214接收。該請(qǐng)求可以指定媒體內(nèi)容流內(nèi)的位置,這可以部分取決于在客戶端設(shè)備接收到的用戶輸入。例如,客戶端設(shè)備104的用戶可以操縱菜單,并選擇特定的信道用于在直播點(diǎn)播放。在這個(gè)示例中,客戶端設(shè)備104將用于選擇信道的媒體內(nèi)容流,并且指示媒體內(nèi)容流中的當(dāng)前直播點(diǎn)作為流中的請(qǐng)求位置的請(qǐng)求發(fā)送到媒體設(shè)備102。作為另一個(gè)示例,在用戶選擇用于觀看的特定信道之后,客戶端設(shè)備104的用戶可以在客戶端設(shè)備104提供輸入以倒退、暫?;蛟诓煌谥辈c(diǎn)的播放點(diǎn)處播放選擇的媒體內(nèi)容。在這個(gè)示例中,指定的位置可以是媒體內(nèi)容流內(nèi)的直播點(diǎn)之前的一些點(diǎn)。在一個(gè)實(shí)施例中,媒體內(nèi)容流內(nèi)的位置可以通過時(shí)間戳、緩沖區(qū)排序值或指示媒體內(nèi)容流內(nèi)的位置的任何其它值進(jìn)行指定。
在框504中,媒體設(shè)備確定對(duì)應(yīng)于媒體內(nèi)容流中的指定位置的媒體內(nèi)容流的緩沖區(qū)當(dāng)前是否存儲(chǔ)在內(nèi)存緩沖區(qū)緩存中。確定媒體內(nèi)容流中的指定位置當(dāng)前是否被存儲(chǔ)在緩沖區(qū)緩存中可以包括將表示指定的位置的值與元數(shù)據(jù)或與存儲(chǔ)的與緩沖區(qū)緩存中的緩沖區(qū)相關(guān)聯(lián)的其它信息相比較。
如果,在框504,媒體設(shè)備確定對(duì)應(yīng)于所請(qǐng)求的位置的緩沖區(qū)當(dāng)前被存儲(chǔ)在緩沖區(qū)緩存中,則媒體設(shè)備從緩沖區(qū)緩存取回緩沖區(qū),以及可能的一個(gè)或多個(gè)周圍緩沖區(qū)。如果,在框504,媒體設(shè)備確定對(duì)應(yīng)于所請(qǐng)求的位置的緩沖區(qū)沒有存儲(chǔ)在緩沖區(qū)緩存中,則媒體設(shè)備從存儲(chǔ)器取回緩沖區(qū)和可能的一個(gè)或多個(gè)周圍緩沖區(qū)。例如,媒體設(shè)備102可能已經(jīng)將對(duì)應(yīng)于指定位置的緩沖區(qū)寫入存儲(chǔ)器210,并從內(nèi)存212釋放緩沖區(qū)。在這種情況下,媒體設(shè)備102可以從存儲(chǔ)器210而不是內(nèi)存212取回緩沖區(qū)。
在框510,媒體設(shè)備發(fā)送一個(gè)或多個(gè)緩沖區(qū)到客戶端設(shè)備。例如,媒體設(shè)備102的流模塊214可以經(jīng)由一個(gè)或多個(gè)有線或無線網(wǎng)絡(luò)鏈路從媒體內(nèi)容流水線300接收一個(gè)或多個(gè)緩沖區(qū)并且將一個(gè)或多個(gè)緩沖區(qū)發(fā)送到客戶端設(shè)備104。媒體設(shè)備102可以將一個(gè)或多個(gè)緩沖區(qū)直接發(fā)送到請(qǐng)求客戶端設(shè)備104,或者一個(gè)或多個(gè)緩沖區(qū)可經(jīng)由一個(gè)或多個(gè)中間設(shè)備被傳遞到客戶端設(shè)備104。
圖4和圖5的示例處理流程示出使用媒體內(nèi)容流水線在媒體設(shè)備播放媒體內(nèi)容項(xiàng)和/或?qū)⒚襟w內(nèi)容項(xiàng)流傳輸?shù)娇蛻舳嗽O(shè)備。在一個(gè)實(shí)施例中,任何數(shù)量的媒體設(shè)備和/或客戶端設(shè)備可以同時(shí)播放和/或流傳輸相同的媒體內(nèi)容項(xiàng),并且每個(gè)設(shè)備可以從不同的播放點(diǎn)播放或流傳輸媒體內(nèi)容項(xiàng)。例如,媒體設(shè)備可以使用本文描述的媒體內(nèi)容流水線接收并處理媒體內(nèi)容流,并且從存儲(chǔ)在內(nèi)存緩存中的緩沖區(qū)同時(shí)播放媒體內(nèi)容流到輸出設(shè)備。同時(shí),第一客戶端設(shè)備可以從相同的播放點(diǎn)播放相同的媒體內(nèi)容流并且從相同點(diǎn)流傳輸作為媒體設(shè)備的內(nèi)存緩存中的媒體內(nèi)容。此外,第二客戶端設(shè)備可以從不同的播放點(diǎn)(例如,媒體設(shè)備和第一客戶端設(shè)備的播放點(diǎn)之后10分鐘)同時(shí)播放相同的媒體內(nèi)容流并從不同的播放點(diǎn)流傳輸媒體內(nèi)容,無論是從內(nèi)存緩存的不同部分或從輔助存儲(chǔ)器。
在一個(gè)實(shí)施例中,主機(jī)媒體設(shè)備可以通過保持從相同媒體內(nèi)容流播放的每個(gè)媒體設(shè)備和客戶端設(shè)備的“讀取環(huán)境”來管理針對(duì)單獨(dú)的設(shè)備的許多不同的播放點(diǎn)。例如,對(duì)于從主機(jī)媒體設(shè)備流傳輸特定的媒體內(nèi)容流的每個(gè)客戶端設(shè)備,主機(jī)媒體設(shè)備可以跟蹤該客戶端設(shè)備的當(dāng)前讀取位置,其可包括對(duì)內(nèi)存緩存中的緩沖區(qū)或輔助存儲(chǔ)器中的位置的引用。主機(jī)媒體設(shè)備還可以存儲(chǔ)指示哪些緩沖區(qū)當(dāng)前由特定的客戶端設(shè)備使用的信息和其它狀態(tài)信息。
在一個(gè)實(shí)施例中,響應(yīng)于客戶端設(shè)備訪問存儲(chǔ)在緩沖區(qū)緩存中的緩沖區(qū),媒體設(shè)備可以“保留”緩沖區(qū),并等到確定任何和所有媒體設(shè)備/客戶端設(shè)備已停止訪問緩沖區(qū)時(shí)從內(nèi)存緩存釋放緩沖區(qū)。例如,如果媒體設(shè)備和從媒體設(shè)備流傳輸媒體內(nèi)容的客戶端設(shè)備目前正在訪問相同的緩沖區(qū),那么媒體設(shè)備可以存儲(chǔ)“引用計(jì)數(shù)”或指示兩個(gè)設(shè)備當(dāng)前正訪問緩沖區(qū)的其它值。當(dāng)每個(gè)設(shè)備停止訪問緩沖區(qū)時(shí),引用計(jì)數(shù)可以減少,直到?jīng)]有設(shè)備當(dāng)前正訪問緩沖區(qū),此時(shí)媒體設(shè)備可以從內(nèi)存緩存釋放緩沖區(qū)。以這種方式,當(dāng)多個(gè)設(shè)備訪問內(nèi)存緩存中的相同緩沖區(qū)時(shí),一般只有緩沖區(qū)的一個(gè)副本存在于緩存中,并可堅(jiān)持在緩存中直到所有設(shè)備已停止訪問緩沖區(qū)之后的某個(gè)時(shí)間。
實(shí)施例包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)儲(chǔ)存軟件指令,當(dāng)被一個(gè)或多個(gè)處理器執(zhí)行時(shí)軟件指令施行前述任何一種方法。
實(shí)施例包括一種裝置,其包含處理器并被配置成施行前述方法的任何一個(gè)。
需要注意的是,盡管單獨(dú)的實(shí)施例在本文中被討論,但是本文所討論的實(shí)施例和/或部分實(shí)施例的任何組合可以被組合以形成更多的實(shí)施例。
6.0實(shí)施機(jī)構(gòu)-硬件概述
根據(jù)一個(gè)實(shí)施例,本文描述的技術(shù)通過一個(gè)或多個(gè)專用計(jì)算設(shè)備實(shí)施。專用計(jì)算設(shè)備可以被硬連線以執(zhí)行技術(shù),或者可以包括數(shù)字電子設(shè)備,例如一個(gè)或多個(gè)專用集成電路(ASIC)或被持續(xù)編程以執(zhí)行技術(shù)的現(xiàn)場(chǎng)可編程門陣列(FPGA),或者可以包括被編程以根據(jù)在固件、內(nèi)存、其它存儲(chǔ)器、或組合中的程序指令執(zhí)行技術(shù)的一個(gè)或多個(gè)通用硬件處理器。這種專用計(jì)算設(shè)備還可以將硬連線邏輯、ASIC、FPGA與自定義編程結(jié)合以實(shí)現(xiàn)技術(shù)。專用計(jì)算設(shè)備可以是臺(tái)式計(jì)算機(jī)系統(tǒng)、便攜式計(jì)算機(jī)系統(tǒng)、手持設(shè)備、網(wǎng)絡(luò)設(shè)備、或并入硬連線和/或程序邏輯以實(shí)施技術(shù)的任何其它設(shè)備。
例如,圖6是示出了可在其上實(shí)施本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)600的框圖。計(jì)算機(jī)系統(tǒng)600包括總線602或用于信息通信的其它通信機(jī)構(gòu)、以及與總線602耦接并用于處理信息的硬件處理器604。硬件處理器604可以是,例如,通用微處理器。
計(jì)算機(jī)系統(tǒng)600還包括主內(nèi)存606,諸如隨機(jī)存取內(nèi)存(RAM)或其它動(dòng)態(tài)存儲(chǔ)設(shè)備,其耦接到總線602用于存儲(chǔ)將被處理器604執(zhí)行的信息和指令。主內(nèi)存606也可用于存儲(chǔ)在處理器604執(zhí)行待被執(zhí)行的指令期間的臨時(shí)變量或其它中間信息。這樣的指令,當(dāng)存儲(chǔ)在處理器604可訪問的永久存儲(chǔ)介質(zhì)中時(shí),使計(jì)算機(jī)系統(tǒng)600成為被定制以執(zhí)行指令中所指定的操作的專用機(jī)器。
計(jì)算機(jī)系統(tǒng)600還包括只讀內(nèi)存(ROM)608或其它靜態(tài)存儲(chǔ)設(shè)備,其耦接至總線602,用于存儲(chǔ)用于處理器604的靜態(tài)信息和指令。存儲(chǔ)設(shè)備610,如磁盤、光盤、閃存盤等,被提供并耦接到總線602用于存儲(chǔ)信息和指令。
計(jì)算機(jī)系統(tǒng)600可以經(jīng)由總線602耦接到顯示器612,諸如陰極射線管(CRT),用于向計(jì)算機(jī)用戶顯示信息。包括字母數(shù)字和其它鍵的輸入設(shè)備614耦接至總線602,用于將信息和命令選擇傳送到處理器604。用戶輸入設(shè)備的另一種類型是光標(biāo)控制裝置616,諸如鼠標(biāo)、跟蹤球、或光標(biāo)方向鍵,用于將方向信息和命令選擇傳送到處理器604并控制顯示器612上的光標(biāo)移動(dòng)。這個(gè)輸入設(shè)備通常具有在兩個(gè)軸線(第一軸線(例如x)和第二軸線(例如y))上的兩個(gè)自由度,允許設(shè)備指定平面中的位置。
計(jì)算機(jī)系統(tǒng)600可以使用與計(jì)算機(jī)系統(tǒng)組合而導(dǎo)致或編程計(jì)算機(jī)系統(tǒng)600成為專用機(jī)器的定制硬連線邏輯、一個(gè)或多個(gè)ASIC或FPGA、固件和/或程序邏輯來實(shí)施文中描述的技術(shù)。根據(jù)一個(gè)實(shí)施例,計(jì)算機(jī)系統(tǒng)600響應(yīng)于處理器604執(zhí)行包含在主內(nèi)存606中的一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列而執(zhí)行文中的技術(shù)。這類指令可從另一個(gè)存儲(chǔ)介質(zhì)(例如存儲(chǔ)設(shè)備610)讀入到主內(nèi)存606。包含在主內(nèi)存606中指令序列的執(zhí)行使得處理器604執(zhí)行文中描述的處理步驟。在替代實(shí)施例中,硬連線電路可以代替或者與軟件指令組合使用。
如本文所用的術(shù)語“存儲(chǔ)媒介”指的是存儲(chǔ)導(dǎo)致機(jī)器以特定方式操作的數(shù)據(jù)和/或指令的任何永久媒介。這類存儲(chǔ)媒介可以包含非易失性媒介和/或易失性媒介。非易失性媒介包括例如光盤或磁盤,如存儲(chǔ)設(shè)備610。易失性媒介包括動(dòng)態(tài)存儲(chǔ)器,諸如主內(nèi)存606。存儲(chǔ)媒介的常見形式包括,例如,軟盤、柔性盤、硬盤、固態(tài)驅(qū)動(dòng)器、磁帶、或任何其它磁性數(shù)據(jù)存儲(chǔ)介質(zhì)、CD-ROM、任何其它光學(xué)數(shù)據(jù)存儲(chǔ)介質(zhì)、任何具有孔圖案的實(shí)體介質(zhì)、RAM、PROM和EPROM、快擦編程只讀內(nèi)存、NVRAM、任何其它內(nèi)存芯片或膠卷盒。
存儲(chǔ)媒介與傳輸媒介不同但可以與傳輸媒介結(jié)合使用。傳輸媒介參與存儲(chǔ)媒介之間的信息傳送。例如,傳輸媒介包括同軸電纜、銅線和光纖,包括包含總線602的電線。傳輸媒介還可以采取聲波或光波的形式,如在無線電波和紅外線數(shù)據(jù)通信中產(chǎn)生的那些聲波或光波。
媒介的各種形式可以涉及攜帶一個(gè)或多個(gè)指令的一個(gè)或多個(gè)序列到處理器604以供執(zhí)行。例如,指令最初可以攜帶在遠(yuǎn)程計(jì)算機(jī)的磁盤或在固態(tài)驅(qū)動(dòng)器上。遠(yuǎn)程計(jì)算機(jī)可以將指令加載到其動(dòng)態(tài)內(nèi)存中并且使用調(diào)制解調(diào)器通過電話線發(fā)送指令。計(jì)算機(jī)系統(tǒng)600的本地調(diào)制解調(diào)器可以接收電話線上的數(shù)據(jù)并使用紅外發(fā)射器將數(shù)據(jù)轉(zhuǎn)換為紅外信號(hào)。紅外線檢測(cè)器可以接收紅外信號(hào)攜帶的數(shù)據(jù)并且適當(dāng)?shù)碾娐纺軌驅(qū)?shù)據(jù)放置在總線602上??偩€602將數(shù)據(jù)攜帶到主內(nèi)存606,處理器604從主內(nèi)存606取回并執(zhí)行指令。由主內(nèi)存606接收的指令可在被處理器604執(zhí)行之前或之后存儲(chǔ)選擇地存儲(chǔ)在存儲(chǔ)設(shè)備610上。
計(jì)算機(jī)系統(tǒng)600還包括耦接到總線602的通信接口618。通信接口618提供雙向數(shù)據(jù)通信,雙向數(shù)據(jù)通信耦接到連接到本地網(wǎng)絡(luò)622的網(wǎng)絡(luò)鏈路620。例如,通信接口618可以是綜合服務(wù)數(shù)字網(wǎng)(ISDN)卡、電纜調(diào)制解調(diào)器、衛(wèi)星調(diào)制解調(diào)器或調(diào)制解調(diào)器,以向相應(yīng)類型的電話線提供數(shù)據(jù)通信連接。作為另一示例,通信接口618可以是局域網(wǎng)(LAN)卡,以向兼容LAN提供數(shù)據(jù)通信連接。無線鏈路也可以被實(shí)施。在任何這種實(shí)施方案中,通信接口618發(fā)送和接收攜帶表示各種類型的信息的數(shù)字?jǐn)?shù)據(jù)流的電信號(hào)、電磁信號(hào)或光信號(hào)。
網(wǎng)絡(luò)鏈路620通常通過一個(gè)或多個(gè)網(wǎng)絡(luò)向其它數(shù)據(jù)設(shè)備提供數(shù)據(jù)通信。例如,網(wǎng)絡(luò)鏈路620可以通過本地網(wǎng)絡(luò)622向主機(jī)計(jì)算機(jī)624或由因特網(wǎng)服務(wù)提供者(ISP)626操作的數(shù)據(jù)設(shè)備提供連接。ISP 626轉(zhuǎn)而通過現(xiàn)在通常被稱為“互聯(lián)網(wǎng)”628的全球分組數(shù)據(jù)通信網(wǎng)絡(luò)提供數(shù)據(jù)通信服務(wù)。本地網(wǎng)絡(luò)622和因特網(wǎng)628都使用攜帶數(shù)字?jǐn)?shù)據(jù)流的電信號(hào)、電磁信號(hào)或光信號(hào)。通過各種網(wǎng)絡(luò)的信號(hào)、在網(wǎng)絡(luò)鏈路620上和通過將數(shù)字?jǐn)?shù)據(jù)帶入和帶出計(jì)算機(jī)系統(tǒng)600的通信接口618的信號(hào),都是傳輸媒介的示例形式。
計(jì)算機(jī)系統(tǒng)600可以通過(多個(gè))網(wǎng)絡(luò)、網(wǎng)絡(luò)鏈路620和通信接口618發(fā)送消息和接收包括程序代碼的數(shù)據(jù)。在因特網(wǎng)示例中,服務(wù)器630可以通過因特網(wǎng)628,ISP 626、本地網(wǎng)絡(luò)622和通信接口618發(fā)射所請(qǐng)求的應(yīng)用程序的代碼。
接收的代碼可在被接收時(shí)由處理器604執(zhí)行,和/或存儲(chǔ)在存儲(chǔ)設(shè)備610或其它非易失性存儲(chǔ)器,用于之后執(zhí)行。
在一個(gè)實(shí)施例中,文中描述的一些或所有系統(tǒng)可以是或包含服務(wù)器計(jì)算機(jī)系統(tǒng),其包括共同實(shí)施作為一組服務(wù)器側(cè)過程的系統(tǒng)的各種組件的一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)設(shè)備。服務(wù)器計(jì)算機(jī)系統(tǒng)可以包括web服務(wù)器、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器、和/或所描繪的組件用來提供所描述的功能的其它常規(guī)服務(wù)器組件。服務(wù)器計(jì)算機(jī)系統(tǒng)可以接收包含來自任何多種源的輸入數(shù)據(jù)的基于網(wǎng)絡(luò)的通信,源包括但不限于用戶可操作的客戶端計(jì)算設(shè)備,諸如臺(tái)式計(jì)算機(jī)、平板電腦或智能手機(jī)、遙感設(shè)備、和/或其它服務(wù)器計(jì)算機(jī)系統(tǒng)。
在一個(gè)實(shí)施例中,某些服務(wù)器組件可以全部或部分地使用通過一個(gè)或多個(gè)網(wǎng)絡(luò)(例如因特網(wǎng))耦接到系統(tǒng)的基于“云”的組件來實(shí)施。基于云的組件可以暴露接口,它們通過接口向系統(tǒng)的其它組件提供處理、存儲(chǔ)、軟件、和/或其它資源。在一個(gè)實(shí)施例中,基于云的組件可以被第三第三方實(shí)體實(shí)施,第三方實(shí)體代表組件為之部署的另一個(gè)實(shí)體。在其它實(shí)施方案中,然而,所描述的系統(tǒng)可以完全由單一實(shí)體所擁有和操作的計(jì)算機(jī)系統(tǒng)來實(shí)現(xiàn)。
7.0擴(kuò)展和替換
本文所用的術(shù)語“第一”、“第二”、“某些”和“特定的”被用作命名約定以將問題、計(jì)劃、表示、步驟、對(duì)象、設(shè)備或其它項(xiàng)目彼此區(qū)分,從而使得在引入這些項(xiàng)目后可以引用這些項(xiàng)目。除非本文另有說明,這些術(shù)語的使用并不意味著是所引用的項(xiàng)目的排序、定時(shí)、或任何其它特性。
在前述的說明書中,已經(jīng)參照根據(jù)不同實(shí)施方案而改變的許多具體的細(xì)節(jié)描述了本發(fā)明的實(shí)施例。因此,關(guān)于本發(fā)明是什么以及申請(qǐng)人意欲本發(fā)明是什么的唯一和獨(dú)有的指示,是本申請(qǐng)發(fā)布的權(quán)利要求組,在本申請(qǐng)中這樣的權(quán)利要求采用特定形式發(fā)布,包括任何后續(xù)修正。對(duì)此,盡管本申請(qǐng)的權(quán)利要求中提出了具體權(quán)利要求從屬關(guān)系,但是應(yīng)注意的是,本申請(qǐng)的從屬權(quán)利要求的特征可以與其它從屬權(quán)利要求的特征以及本申請(qǐng)的獨(dú)立權(quán)利要求的特征適當(dāng)組合,而不僅僅根據(jù)權(quán)利要求組中記載的具體從屬關(guān)系。
對(duì)包含在這樣的權(quán)利要求中的術(shù)語所明確作出的任何解釋應(yīng)規(guī)定如在權(quán)利要求中使用的這類術(shù)語的含義。因此,未在權(quán)利要求中明確記載的限定、元素、性質(zhì)、特征、優(yōu)點(diǎn)或特性不應(yīng)以任何方式限制這類權(quán)利要求的范圍。說明書和附圖相應(yīng)地被認(rèn)為是說明性的而非限制性的。