專利名稱:將視頻數(shù)據(jù)轉(zhuǎn)換成視頻流的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信裝置,例如,涉及用于視頻點(diǎn)播服務(wù)的視頻服務(wù)器。
背景技術(shù):
用于為許多客戶端提供服務(wù)的視頻點(diǎn)播(VoD)系統(tǒng)需要大量的處理能力并因此一般由視頻服務(wù)器陣列來(lái)實(shí)現(xiàn)。在一種架構(gòu)中,每個(gè)VoD服務(wù)器具有其自己的存儲(chǔ)單元,稱為具有內(nèi)部存儲(chǔ)器或直接附加存儲(chǔ)器(DAS)的視頻服務(wù)器。然而,這需要為每個(gè)服務(wù)器復(fù)制視頻文件或?qū)?duì)視頻數(shù)據(jù)的每個(gè)請(qǐng)求導(dǎo)向具有所需數(shù)據(jù)的特定服務(wù)器以處理該請(qǐng)求。因此,在某些情況下,用通過(guò)網(wǎng)絡(luò)連接在稱為網(wǎng)絡(luò)附加存儲(chǔ)器(NAS)的一個(gè)或多個(gè)存儲(chǔ)單元來(lái)實(shí)現(xiàn)VoD服務(wù)器陣列。在其它情況下,使用存儲(chǔ)區(qū)域網(wǎng)絡(luò)SAN。 在使用中,為了將NAS存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)換成視頻流,從用戶接收對(duì)視頻的請(qǐng)求并進(jìn)行處理以識(shí)別內(nèi)容被以何種方式存儲(chǔ)/存儲(chǔ)在何處。與所識(shí)別的內(nèi)容相關(guān)的視頻服務(wù)器使用諸如CIFS和NFS等文件存儲(chǔ)協(xié)議從存儲(chǔ)器中檢索視頻內(nèi)容,從視頻文件提取視頻數(shù)據(jù),將視頻數(shù)據(jù)轉(zhuǎn)換成流視頻(streaming video)并通常使用緩沖來(lái)將其分配以便在客戶端上觀看。這種轉(zhuǎn)換處理需要大量的計(jì)算資源并且對(duì)于大型VOD部署而言價(jià)格昂貴。
發(fā)明內(nèi)容
本發(fā)明的某個(gè)實(shí)施例的一方面涉及在沒(méi)有(或以減少的)例如處理開(kāi)銷(xiāo)等文件系統(tǒng)提取層的開(kāi)銷(xiāo)的情況下由存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù)生成例如音頻或視頻等流數(shù)據(jù)。在本發(fā)明的某些實(shí)施例中,流媒體數(shù)據(jù)的特征在于包括專用于期望傳輸位速率的定時(shí)信息。傳輸速率通常保持在10 % 、 1 %或更好的精確度內(nèi),音頻要求常常大于視頻要求,因?yàn)槎虝旱募傩盘?hào)(glitch)在視頻中可能比在音頻中更可接受。這些數(shù)據(jù)中的某些、特別是與視頻應(yīng)用層級(jí)有關(guān)的數(shù)據(jù)在本文中稱為"元數(shù)據(jù)",特別是文件系統(tǒng)元數(shù)據(jù),該文件系統(tǒng)元數(shù)據(jù)指的是描述文件在物理上被存儲(chǔ)在何處和以何種方式存儲(chǔ)的元數(shù)據(jù)。其它元數(shù)據(jù)包括視頻內(nèi)容的標(biāo)識(shí)。 在本發(fā)明的示例性實(shí)施例中,通過(guò)將視頻服務(wù)器分割成數(shù)據(jù)處理路徑(pathway)
和數(shù)據(jù)管理路徑來(lái)(在邏輯上和/或物理上)減少開(kāi)銷(xiāo)。潛在地,這種分離允許使用優(yōu)化
的架構(gòu)使用復(fù)雜通用計(jì)算機(jī)的數(shù)據(jù)管理和/或使用專用架構(gòu)的數(shù)據(jù)處理。 在本發(fā)明的示例性實(shí)施例中,作為兩種單獨(dú)類型的數(shù)據(jù)來(lái)訪問(wèn)數(shù)據(jù)視頻(或其
它內(nèi)容)和元數(shù)據(jù)。通過(guò)使用較低靈活性的處理器(視頻流處理器)將存儲(chǔ)分組轉(zhuǎn)換成視
頻分組來(lái)將視頻數(shù)據(jù)處理成視頻流。在本發(fā)明的示例實(shí)施例中,所述轉(zhuǎn)換是基于"分組轉(zhuǎn)
換",在分組轉(zhuǎn)換中,從存儲(chǔ)器獲取一個(gè)或多個(gè)數(shù)據(jù)分組并將其存儲(chǔ)在視頻流處理器存儲(chǔ)器中;從存儲(chǔ)器讀取數(shù)據(jù)并使用"零拷貝過(guò)程"將其轉(zhuǎn)換成流分組。在本發(fā)明的示例性實(shí)施例 中,處理文件系統(tǒng)元數(shù)據(jù)以便在不同的較高靈活性的處理器(控制器)中作出判定。在本 發(fā)明的示例性實(shí)施例中,基于分組而不是文件或塊來(lái)處理數(shù)據(jù),然而,例如,根據(jù)內(nèi)部分組 尺寸、壓縮、或其它因素,可以將其作為分組的群組來(lái)處理。可選地,以與網(wǎng)絡(luò)和/或數(shù)據(jù)源 所支持的大小相匹配的分組大小來(lái)處理數(shù)據(jù)(并進(jìn)行處理器設(shè)計(jì))。可選地,為分組處理優(yōu) 化較低靈活性的處理器,例如包括具有高速共享內(nèi)部總線的多核處理器。
在本發(fā)明的示例性實(shí)施例中,可選地使用諸如TCP等可靠傳輸機(jī)制并在沒(méi)有閉環(huán) 文件管理的情況下將視頻數(shù)據(jù)作為分組直接發(fā)送到視頻流發(fā)生器。作為替代,由控制器使 用文件系統(tǒng)元數(shù)據(jù)來(lái)確定應(yīng)讀取哪些數(shù)據(jù)。在接到命令時(shí),由存儲(chǔ)器將此數(shù)據(jù)作為分組發(fā) 送到視頻流處理器,而視頻流處理器不在文件系統(tǒng)層級(jí)(level)處理元數(shù)據(jù)、確認(rèn)或握手 (handshaking)??蛇x地,由控制器來(lái)執(zhí)行文件系統(tǒng)元數(shù)據(jù)的任何處理、握手、監(jiān)控或其它高 級(jí)功能,可選地使用來(lái)自視頻流處理器的信號(hào)來(lái)確定數(shù)據(jù)分組的到達(dá)??蛇x地,控制器控制 多個(gè)存儲(chǔ)系統(tǒng),以便按照期望順序和/或同步地從多個(gè)存儲(chǔ)系統(tǒng)提供數(shù)據(jù)。
在本發(fā)明的示例性實(shí)施例中,使用將來(lái)自存儲(chǔ)器(例如磁盤(pán))的原始數(shù)據(jù)直接轉(zhuǎn) 換成IP分組的分組器(packetizer)將來(lái)自存儲(chǔ)器的視頻數(shù)據(jù)作為IP數(shù)據(jù)提供??蛇x地, 由可選地在控制器的控制下的交換機(jī)(switch)將分組切換到適當(dāng)?shù)囊曨l流處理器。
在本發(fā)明的示例性實(shí)施例中,視頻流處理器是由優(yōu)化構(gòu)件(building block)組成 的分組處理硬件,所述優(yōu)化構(gòu)件用于例如基于網(wǎng)絡(luò)處理器芯片來(lái)快速且經(jīng)濟(jì)地處理分組, 所述網(wǎng)絡(luò)處理器芯片可選地由多個(gè)自主的低成本/低功率處理核心和在路由器技術(shù)中使 用的硬件加速器組成。 在本發(fā)明的示例性實(shí)施例中,視頻流系統(tǒng)包括k個(gè)控制器、m個(gè)分組流處理器和n 個(gè)存儲(chǔ)設(shè)備。在本發(fā)明的示例性實(shí)施例中,k < m < n。例如,對(duì)于1個(gè)控制器,提供2至20 個(gè)流處理器和1至100個(gè)存儲(chǔ)設(shè)備。 在本發(fā)明的示例性實(shí)施例中,通過(guò)將文件系統(tǒng)元數(shù)據(jù)的處理與視頻數(shù)據(jù)的處理分 離,可以提供低成本和/或復(fù)雜性的服務(wù)器,因?yàn)椴淮嬖趯?duì)同一硬件來(lái)處理大量數(shù)據(jù)的要 求,所述同一硬件對(duì)數(shù)據(jù)的布置進(jìn)行判定。 在本發(fā)明的某些實(shí)施例中,將存儲(chǔ)系統(tǒng)和/或視頻流處理器與現(xiàn)有視頻服務(wù)器系 統(tǒng)集成,可選地共享控制器。 替換地或除使用上述方法將數(shù)據(jù)轉(zhuǎn)換成視頻流之外,還可以將其用于將視頻流轉(zhuǎn) 換成數(shù)據(jù)。 在本發(fā)明的示例性實(shí)施例中,使用諸如用于路由器的分組處理技術(shù)實(shí)時(shí)地或近實(shí)
時(shí)地處理視頻數(shù)據(jù)??蛇x地,視頻流包括壓縮視頻流,例如MPEG-4分組流。 在本發(fā)明的示例性實(shí)施例中,所述處理包括由數(shù)據(jù)分組生成視頻流分組,例如從
存儲(chǔ)器檢索1, 500字節(jié)的IP數(shù)據(jù)分組并將其轉(zhuǎn)換成188字節(jié)的MPEG2-TS分組,然后將若干
MPEG2-TS分組整理成將作為視頻流等時(shí)地發(fā)送的單個(gè)IP分組(例如精確定時(shí)、符合MPEG2
傳輸?shù)姆纸M間隙)??蛇x地,選擇分組生成以便與例如機(jī)頂盒等特定目標(biāo)設(shè)備匹配。 可選地,所述處理包括將例如廣告等第一視頻流接合到第二視頻流中。 可選地,所述處理包括生成由兩個(gè)(或更多)視頻流或諸如畫(huà)中畫(huà)、馬賽克、或標(biāo)
語(yǔ)之類的其它數(shù)據(jù)和流組合成的流。
因此依照本發(fā)明的示例性實(shí)施例提供了數(shù)據(jù)流服務(wù)器(datastreaming server), 包括 (a)至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備; (b)至少一個(gè)控制器,其被配置為控制向所述設(shè)備發(fā)送數(shù)據(jù)和從所述設(shè)備接收數(shù) 據(jù)中的至少一項(xiàng);以及 (c)至少一個(gè)分組處理器,其適合于處理流數(shù)據(jù)并在不通過(guò)所述控制器、但同時(shí)使 用所述控制器的所述控制的情況下與所述數(shù)據(jù)存儲(chǔ)設(shè)備交換數(shù)據(jù)。 在本發(fā)明的示例性實(shí)施例中,所述控制器被配置為生成對(duì)來(lái)自所述設(shè)備的數(shù)據(jù)的 請(qǐng)求,以便用于由所述分組處理器處理??蛇x地,所述分組處理器是具有以非分組處理為代 價(jià)的特別適合于分組處理的架構(gòu)的專用分組處理器。 在本發(fā)明的示例性實(shí)施例中,所述分組處理器在通信方案的傳輸層級(jí)(transport level)以上的層級(jí)不與所述存儲(chǔ)設(shè)備相交互以確認(rèn)遞送。 在本發(fā)明的示例性實(shí)施例中,所述分組處理器被配置為從所述設(shè)備接收數(shù)據(jù)作為 具有報(bào)頭的分組并去除所述報(bào)頭。替換地或另外,所述分組處理器包括適合于控制流分組 的遞送的定時(shí)的分組組裝器(assembler)。 在本發(fā)明的示例性實(shí)施例中,所述分組處理器包括被配置為處理所述數(shù)據(jù)的數(shù)據(jù)
處理器,所述處理包括將兩個(gè)數(shù)據(jù)流組合或?qū)蓚€(gè)流結(jié)合(join)兩者中的至少一個(gè)。 在本發(fā)明的示例性實(shí)施例中,所述分組處理器將所述流定址到用戶。 在本發(fā)明的示例性實(shí)施例中,所述服務(wù)器包括用于將來(lái)自所述存儲(chǔ)設(shè)備的數(shù)據(jù)輸
送到所述分組處理器的交換機(jī)??蛇x地,所述交換機(jī)用于將來(lái)自所述分組處理器的數(shù)據(jù)流
輸送到接收者。 在本發(fā)明的示例性實(shí)施例中,所述存儲(chǔ)設(shè)備被配置為從一個(gè)物理實(shí)體接收數(shù)據(jù)請(qǐng) 求并將該數(shù)據(jù)發(fā)送到第二物理實(shí)體。 在本發(fā)明的示例性實(shí)施例中,所述存儲(chǔ)設(shè)備被配置為將數(shù)據(jù)作為IP分組發(fā)送到 所述分組處理器。 在本發(fā)明的示例性實(shí)施例中,所述控制器包括通用控制器。 在本發(fā)明的示例性實(shí)施例中,所述控制器具有到所述設(shè)備外部的小于所述分組處 理器的帶寬的1/4的帶寬。 在本發(fā)明的示例性實(shí)施例中,所述控制器管理用戶請(qǐng)求。 在本發(fā)明的示例性實(shí)施例中,所述控制器被配置為接收對(duì)流的請(qǐng)求并獲得應(yīng)答所 述請(qǐng)求的數(shù)據(jù)的物理存儲(chǔ)位置。 在本發(fā)明的示例性實(shí)施例中,所述服務(wù)器包括至少一個(gè)元數(shù)據(jù)服務(wù)器,該元數(shù)據(jù) 服務(wù)器存儲(chǔ)被存儲(chǔ)在所述至少一個(gè)存儲(chǔ)設(shè)備上的數(shù)據(jù)的物理存儲(chǔ)位置。 在本發(fā)明的示例性實(shí)施例中,所述控制器被配置為在多個(gè)存儲(chǔ)設(shè)備之間進(jìn)行選擇 并向其發(fā)送數(shù)據(jù)檢索指令。 在本發(fā)明的示例性實(shí)施例,所述控制器被配置為處理所述存儲(chǔ)設(shè)備與所述分組處 理器之間的流量控制(flow control)。 在本發(fā)明的示例性實(shí)施例中,所述控制器被配置為在多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備與多個(gè)分 組處理器之間進(jìn)行協(xié)調(diào)。
在本發(fā)明的示例性實(shí)施例中,所述數(shù)據(jù)包括視頻數(shù)據(jù)。替換地或另外,所述數(shù)據(jù)包 括音頻數(shù)據(jù)。替換地或另外,所述數(shù)據(jù)包括經(jīng)復(fù)用的音頻和視頻數(shù)據(jù)。 在本發(fā)明的示例性實(shí)施例中,所述服務(wù)器包括由所述控制器控制的多個(gè)數(shù)據(jù)存儲(chǔ) 設(shè)備。 在本發(fā)明的示例性實(shí)施例中,所述服務(wù)器包括由所述控制器控制的多個(gè)處理器。
在本發(fā)明的示例性實(shí)施例中,所述控制器適合于接收數(shù)據(jù)存儲(chǔ)請(qǐng)求并作為其響應(yīng) 而控制所述分組處理器生成存儲(chǔ)分組且控制所述存儲(chǔ)設(shè)備將所述分組存儲(chǔ)在由所述控制 器設(shè)定的位置處。 在本發(fā)明的示例性實(shí)施例中,所述服務(wù)器包括與所述控制器相關(guān)聯(lián)的附加數(shù)據(jù)存 儲(chǔ)器,其中,所述控制器適合于經(jīng)由所述控制器從所述附加存儲(chǔ)器向所述處理器發(fā)送數(shù)據(jù)。
依照本發(fā)明的示例性實(shí)施例還提供了一種生成數(shù)據(jù)流的方法,包括
(a)接收對(duì)數(shù)據(jù)的請(qǐng)求; (b)由通用處理器來(lái)確定所述數(shù)據(jù)的源位置; (c)指示所述存儲(chǔ)位置在不通過(guò)所述通用處理器的情況下向分組處理器發(fā)送數(shù) 據(jù);以及 (d)根據(jù)所述請(qǐng)求,由所述發(fā)送的數(shù)據(jù)生成流。
現(xiàn)在將在本發(fā)明的示例性實(shí)施例的以下具體介紹中參照附圖來(lái)詳細(xì)描述本發(fā)明,
在附圖中,對(duì)于每個(gè)元件,在圖中自始至終保持相同或類似的數(shù)字標(biāo)號(hào),并且在附圖中,圖
中所示的組件和特征的尺寸是為了陳述的方便和明了起見(jiàn)而選擇的且不一定按比例顯示。
通常,在圖中只示出與討論密切相關(guān)的結(jié)構(gòu)、元件或部分。附圖在下面列出。
圖1是依照本發(fā)明的示例性實(shí)施例的視頻流系統(tǒng)的示意性方框圖; 圖2是依照本發(fā)明的示例性實(shí)施例的數(shù)據(jù)檢索方法的流程圖; 圖3是依照本發(fā)明的示例性實(shí)施例的專用分組處理器中的分組處理的方法的流 程圖; 圖4是依照本發(fā)明的示例性實(shí)施例的數(shù)據(jù)檢索控制的方法的流程圖; 圖5是依照本發(fā)明的示例性實(shí)施例的數(shù)據(jù)存儲(chǔ)方法的流程圖;以及 圖6是將現(xiàn)有服務(wù)器技術(shù)與依照本發(fā)明的示例性實(shí)施例的服務(wù)器結(jié)合的視頻流
服務(wù)器的示意性方框圖。
具體實(shí)施例方式
示例性系統(tǒng)概述 圖1是依照本發(fā)明的示例性實(shí)施例的視頻流系統(tǒng)100的示意性方框圖,其中分別 地處理視頻數(shù)據(jù)和文件系統(tǒng)元數(shù)據(jù)。 視頻、音頻和/或其它媒體數(shù)據(jù)(例如包括視頻和嵌入圖形和/或應(yīng)用程序兩者 的MPEG-2傳輸數(shù)據(jù))被存儲(chǔ)在存儲(chǔ)系統(tǒng)102上。描述數(shù)據(jù)的布置的文件系統(tǒng)元數(shù)據(jù)可選 地被存儲(chǔ)在同一個(gè)存儲(chǔ)系統(tǒng)上或分別進(jìn)行存儲(chǔ)并由元數(shù)據(jù)服務(wù)器104來(lái)提供。在某些實(shí)施 例中,將元數(shù)據(jù)存儲(chǔ)在其它位置和/或控制器106上(下文)。
7
控制器106使用來(lái)自元數(shù)據(jù)服務(wù)器104的文件系統(tǒng)元數(shù)據(jù)請(qǐng)求來(lái)自存儲(chǔ)系統(tǒng)102
的特定數(shù)據(jù)。在某些實(shí)施例中,元數(shù)據(jù)服務(wù)器104可以將對(duì)文件系統(tǒng)元數(shù)據(jù)的請(qǐng)求轉(zhuǎn)換成
對(duì)數(shù)據(jù)的實(shí)際請(qǐng)求并執(zhí)行該請(qǐng)求和/或?qū)?zhǔn)備好的請(qǐng)求發(fā)送到控制器106。 來(lái)自存儲(chǔ)器102的特定數(shù)據(jù)被導(dǎo)向分組處理器108,可選地是經(jīng)修改的路由器。在
本發(fā)明的示例性實(shí)施例中,使用交換機(jī)110將數(shù)據(jù)導(dǎo)向特定的分組處理器。 處理器108生成被輸送到(可選地經(jīng)由諸如因特網(wǎng)等WAN 112)例如具有機(jī)頂盒
116的電視機(jī)114等客戶端的流。沿相反方向,可以由客戶端視頻源118使用客戶端單元
120將流視頻返回給分組處理器108并隨后提供給存儲(chǔ)器102。 實(shí)際系統(tǒng)可以包括多于一個(gè)的每種單元型號(hào)。特別地,由于期望分組處理器的成 本相對(duì)較低,單個(gè)控制器106可以支持多個(gè)分組處理器108。同樣地,單個(gè)元數(shù)據(jù)服務(wù)器104 可以支持多個(gè)存儲(chǔ)系統(tǒng)102(例如102'和102")?;蛘撸峁┒鄠€(gè)控制器和/或元數(shù)據(jù)服 務(wù)器。 另外,雖然將系統(tǒng)IOO描述為使用交換機(jī)而互連,但可以使用其它互連方法,例 如使用路由器。例如,可以通過(guò)WAN 112或其它非局域聯(lián)網(wǎng)方法提供一個(gè)或多個(gè)數(shù)據(jù)源 102"'。 在本發(fā)明的示例性實(shí)施例中,將系統(tǒng)IOO提供為為例如電纜網(wǎng)的分支等地點(diǎn) (locality)提供服務(wù)的本地系統(tǒng),例如,其專用于為特定人群或地理區(qū)域提供服務(wù),可選地 具有給定尺寸。 在本發(fā)明的示例性實(shí)施例中,分組處理器具有多個(gè)輸入端,例如4個(gè)、8個(gè)、16個(gè), 且每個(gè)輸入端具有與之相關(guān)聯(lián)的有保證(不堵塞)處理路徑。在本發(fā)明的示例性實(shí)施例中, 分組處理器包括多個(gè)核,例如16個(gè)??蛇x地,使用本地硬件來(lái)確定核之間的負(fù)載分布。
在本發(fā)明的示例性實(shí)施例中,將核設(shè)計(jì)為使得可以在不訪問(wèn)外部存儲(chǔ)器的情況下 在核內(nèi)執(zhí)行對(duì)分組的操作。 在本發(fā)明的示例性實(shí)施例中,所述分組處理器具有有限的指令集(例如沒(méi)有 浮點(diǎn)支持)和/或?qū)Ψ纸M可用指令的硬件支持,例如"存儲(chǔ)器非對(duì)齊負(fù)載(memory load unaligned)"、諸如位替換之類的位操作、字節(jié)交換、和/或CRC和/或其它校驗(yàn)和生成中的 一個(gè)或多個(gè)。可選地所述指令包括存儲(chǔ)器存儲(chǔ)指令,例如用于指示分組的哪一部分將本地 存儲(chǔ)在核上。所述分組處理器可以被優(yōu)化至一種或多種分組大小,例如存儲(chǔ)分組大小、MPEG 分組大小和/或IP分組大小。 在本發(fā)明的示例性實(shí)施例中,針對(duì)傳遞分組使內(nèi)部總線(或多個(gè)總線,如果提供 了若干總線)被優(yōu)化,例如具有降低的對(duì)中斷的支持或傳遞單個(gè)字。 在本發(fā)明的示例性實(shí)施例中,控制器106包括多種類型的外圍連接裝置,包括例 如以太網(wǎng)、USB、 SCSI、防火墻和并行鏈路中的兩個(gè)或更多。然而,在本發(fā)明的示例性實(shí)施例 中,由控制器處理的帶寬小于由分組處理器處理的帶寬的1/2、1/10、1/100??蛇x地,對(duì)于
給定流,數(shù)據(jù)處理的比甚至更大,例如i : io、i : ioou : iooou : ioooo或更大或在中間。 在本發(fā)明的示例性實(shí)施例中,每個(gè)數(shù)據(jù)存儲(chǔ)單元102包括例如四個(gè)的多個(gè)磁盤(pán)和
一個(gè)外部IP鏈路??蛇x地,出自存儲(chǔ)器的鏈路的數(shù)目約等于到分組處理器的輸入鏈路。可 選地,單個(gè)控制器控制幾十個(gè)或幾百個(gè)分組處理器和/或存儲(chǔ)系統(tǒng)。
在本發(fā)明的示例性實(shí)施例中,系統(tǒng)100是電纜TV系統(tǒng)或其它媒體遞送系統(tǒng)的一部 分??蛇x地,控制器106提供文件名翻譯并查找其它電纜系統(tǒng)。可選地,控制器106將視頻 服務(wù)器模擬成此類系統(tǒng)的后臺(tái)服務(wù)器組件??蛇x地,例如在交換機(jī)110與WAN 112之間提 供加密服務(wù)器以保證到達(dá)客戶端的數(shù)據(jù)被加密??蛇x地,由分組處理器108來(lái)提供加密或 者將數(shù)據(jù)加密存儲(chǔ)??蛇x地,在WAN 112的下游提供IP至RF轉(zhuǎn)換器以便以適合于用戶的
形式來(lái)向用戶提供數(shù)據(jù)??蛇x地,同樣在下游提供抖動(dòng)去除元件。
,隨漁^t誠(chéng) 圖2是依照本發(fā)明的示例性實(shí)施例的系統(tǒng)100中的數(shù)據(jù)檢索方法200的流程圖。
在202,用戶請(qǐng)求特定內(nèi)容,例如點(diǎn)播視頻電影或所存儲(chǔ)的電視頻道。此請(qǐng)求被轉(zhuǎn) 換(204)成其余遞送系統(tǒng)可理解的請(qǐng)求??蛇x地,單獨(dú)的服務(wù)器(未示出)將該請(qǐng)求翻譯 成用于控制器106的命令,從而創(chuàng)建STB 116到控制器106之間的通信信道??蛇x地,控制 器106還用于處理人機(jī)界面,例如確定哪些內(nèi)容是允許用戶接收的和/或處理結(jié)賬和/或 支付問(wèn)題。 在206,控制器106請(qǐng)求來(lái)自與該請(qǐng)求有關(guān)的元數(shù)據(jù)服務(wù)器104(或來(lái)自本地存儲(chǔ) 器)的文件元數(shù)據(jù)。此數(shù)據(jù)可以包括例如與該請(qǐng)求中所指示的內(nèi)容相關(guān)的元數(shù)據(jù)服務(wù)器。 在某些情況下??赡苄枰嘤谝粋€(gè)的元數(shù)據(jù)服務(wù)器來(lái)響應(yīng)請(qǐng)求。 在208,控制器106將請(qǐng)求映射到特定的存儲(chǔ)系統(tǒng)。應(yīng)注意的是可以在多個(gè)存儲(chǔ)系 統(tǒng)和/或物理地點(diǎn)之間分布所請(qǐng)求的數(shù)據(jù)。 在210,元數(shù)據(jù)服務(wù)器104提供指示物理存儲(chǔ)細(xì)節(jié)的文件系統(tǒng)級(jí)信息。例如,此數(shù) 據(jù)可以包括磁盤(pán)上地址(例如柱面、塊號(hào)碼)。 在212,分組處理器108被可選地設(shè)定為處理請(qǐng)求,例如,可以對(duì)該請(qǐng)求賦予ID和 /或可以提供將由分組處理器108執(zhí)行的處理的定義。分組處理器108可選地生成用于數(shù) 據(jù)的內(nèi)部流動(dòng)路徑??蛇x地,通過(guò)控制器106向分組處理器108發(fā)送適當(dāng)指令來(lái)提供設(shè)定。
在214,從存儲(chǔ)節(jié)點(diǎn)102(和/或可選地并行的102' 、102〃 、102"')將數(shù)據(jù)取 到分組處理器108。可選地,使用交換機(jī)110來(lái)輸送數(shù)據(jù),交換機(jī)110還可以將附加數(shù)據(jù)源 與分組處理器互連??蛇x地,交換機(jī)110還將數(shù)據(jù)輸送到客戶端??蛇x地,交換機(jī)110用來(lái) 將來(lái)自一個(gè)分組處理器的內(nèi)容流傳遞到另一分組處理器。 在本發(fā)明的示例性實(shí)施例中,數(shù)據(jù)流式傳輸包括在存儲(chǔ)處理器126的監(jiān)督下從一 個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)122 (可選地,具有RAID控制器124的RAID陣列)檢索數(shù)據(jù),存儲(chǔ)處理器 126依照元數(shù)據(jù)來(lái)接收指令。此檢索數(shù)據(jù)隨后被例如NIC 128可選地轉(zhuǎn)換成分組,NIC 128 僅將數(shù)據(jù)拆分成分組大小的元素并添加適當(dāng)?shù)腎P報(bào)頭。例如,可以使用TCP或UDP協(xié)議。 可選地,如果使用可靠協(xié)議,則分組處理器108將使用確認(rèn)分組等在該協(xié)議上進(jìn)行響應(yīng)?;?者,甚至由控制器106來(lái)進(jìn)行此類確認(rèn)。 在本發(fā)明的示例性實(shí)施例中,存儲(chǔ)處理器126被簡(jiǎn)化,因?yàn)橹恍枰涮幚頂?shù)據(jù)轉(zhuǎn) 發(fā)而不需要管理和/或優(yōu)化文件系統(tǒng)。 在其它實(shí)施例中,使用非RAID陣列來(lái)提供作為可選地直接連接到NIC 128的一個(gè) 或多個(gè)磁盤(pán)子系統(tǒng)而實(shí)現(xiàn)的存儲(chǔ)節(jié)點(diǎn)122??蛇x地,磁盤(pán)子系統(tǒng)被直接連接到控制器106和 /或處理器108。 在本發(fā)明的示例性實(shí)施例中,當(dāng)分組處理器108接收到數(shù)據(jù)時(shí),向控制器106提供存儲(chǔ)報(bào)頭信息,控制器106向存儲(chǔ)處理器126進(jìn)行接收確認(rèn)??蛇x地,控制器106跟蹤缺失 數(shù)據(jù)或帶外數(shù)據(jù)。 在本發(fā)明的示例性實(shí)施例中,當(dāng)處理器126生成數(shù)據(jù)時(shí),在每個(gè)數(shù)據(jù)鏈(data train)的結(jié)尾處,在報(bào)頭中切換一個(gè)位。當(dāng)分組處理器108檢測(cè)到此位時(shí),其將報(bào)頭和/或 位和/或分組發(fā)送到控制器106,控制器106將該位解釋為數(shù)據(jù)請(qǐng)求已完成的證據(jù)。可選 地,將每個(gè)位值發(fā)送到控制器,該控制器可選地計(jì)算接收到的位的數(shù)目和/或檢測(cè)特殊的 "鏈尾"值本身。 在216,可選地由分組處理器108來(lái)處理內(nèi)容。可選地,所述處理包括至少去除存 儲(chǔ)報(bào)頭并在諸如位速率轉(zhuǎn)換或流注釋等進(jìn)一步的可選處理之前將接收到的IP分組分解成 視頻大小的分組。 在218,創(chuàng)建流分組并確定其地址,所述流分組例如為可以包括多個(gè)(例如7個(gè)) MPEG2-TS分組的標(biāo)準(zhǔn)大小的IP分組。在本發(fā)明的示例性實(shí)施例中,當(dāng)生成分組時(shí),控制器 106得到通知,且作為響應(yīng),其可以請(qǐng)求來(lái)自存儲(chǔ)系統(tǒng)102的更多數(shù)據(jù)和/或指示發(fā)送該流 分組,從而根據(jù)MPEG2傳輸報(bào)頭中可用的定時(shí)信息來(lái)保持期望的分組速率和/或分組間延 遲。可選地,在控制器提供諸如"將幀X處的速率變?yōu)樗俾蔣"等一般性指令的情況下由分 組處理器來(lái)精細(xì)地控制定時(shí)。 在220,由客戶端來(lái)接收流分組、將其解碼并顯示給用戶。 在本發(fā)明的示例性實(shí)施例中,由使地址與用戶相關(guān)聯(lián)的系統(tǒng)的后臺(tái)組件來(lái)識(shí)別用 戶。此地址被傳遞到控制器106,控制器106將其作為請(qǐng)求設(shè)定的一部分發(fā)送到處理器108。
在某些情況下,可以將單個(gè)請(qǐng)求的數(shù)據(jù)存儲(chǔ)在多個(gè)位置102處。在本發(fā)明的示例 性實(shí)施例中,控制器106協(xié)調(diào)數(shù)據(jù)的收集。在一個(gè)示例中,向多個(gè)源并行地請(qǐng)求數(shù)據(jù)并將其 緩存在分組處理器處,分組處理器將數(shù)據(jù)組合成單個(gè)流??蛇x地,控制器106根據(jù)何時(shí)需要 的估計(jì)和/或基于從分組處理器108接收到數(shù)據(jù)的確認(rèn)調(diào)節(jié)對(duì)每個(gè)源102的數(shù)據(jù)請(qǐng)求的時(shí) 間,以減少或消除對(duì)在分組處理器108處進(jìn)行緩存的需要??蛇x地,少量的緩沖存儲(chǔ)器在分 組處理器處可用并由控制器106來(lái)管理。 在某些情況下,由控制器106向多個(gè)位置以多拷貝的方式(inmultiple copies) (由控制器106)請(qǐng)求相同的數(shù)據(jù),例如以便保證及時(shí)遞送??蛇x地,分組處理器108基于例 如先到原則來(lái)選擇要使用的數(shù)據(jù)。
示例性分組處理 圖3是依照本發(fā)明的示例性實(shí)施方式的專用分組處理器108中的分組處理300的 方法的流程圖。應(yīng)認(rèn)識(shí)到雖然將專用分組處理器108描述為一系列模塊,但情況不一定如 此且可以有其它實(shí)施方式。然而,在本發(fā)明的示例性實(shí)施例中,使得功能元件對(duì)應(yīng)于現(xiàn)有分 組處理器的模塊和/或功能單元,以便降低成本。 在301,在接收任何內(nèi)容之前,分組處理器108(可選地,其CPU132)從控制器106 接收關(guān)于預(yù)期流生成的先行(advance)指令??蛇x地,這些先行指令包括以下各項(xiàng)中的一 個(gè)或多個(gè)路由表,其使一個(gè)或多個(gè)源(存儲(chǔ)器)地址與一個(gè)或多個(gè)目標(biāo)(用戶)地址相匹 配;要應(yīng)用的運(yùn)算符(operator)(可選)及因此的參數(shù);流的大??;MTU和/或其它性質(zhì), 諸如優(yōu)先級(jí)或哪個(gè)處理器組件(如果存在多個(gè))將用于處理流。在本發(fā)明的示例性實(shí)施例 中,將處理器108設(shè)定為包括被選擇以匹配特定請(qǐng)求的處理需要的處理流。可選地,由控制器106來(lái)管理處理器內(nèi)部的工作負(fù)載,條件是這超出了處理器硬件的能力??蛇x地,控制器
106對(duì)于每個(gè)請(qǐng)求向處理器108提供微碼和/或其它固件更新和/或不與任何特定請(qǐng)求同
止 少。 在本發(fā)明的示例性實(shí)施例中,在控制器106與分組處理器108 (和/或系統(tǒng)100的 其它組件)之間經(jīng)由IP連接進(jìn)行通信,然而,可以使用其它連接方法,例如USB,可選地使用 低延遲且可靠的鏈接方法。 在302,在報(bào)頭提取器134處,去除接收到的IP分組(或使用另一協(xié)議發(fā)送的分 組)的傳輸和/或存儲(chǔ)報(bào)頭。 在本發(fā)明的示例性實(shí)施例中,報(bào)頭提取器134在數(shù)據(jù)塊完整地到達(dá)時(shí)向控制器 106報(bào)告,以便進(jìn)行流量控制管理。替換地或另外,在本發(fā)明的示例性實(shí)施例中,將去除的報(bào) 頭發(fā)送(304)到控制器106或首先分析并向控制器106發(fā)送指示,以便能夠進(jìn)行接收內(nèi)容 的確定。 應(yīng)注意的是,通過(guò)控制器106處理該接收,在分組處理器108中將控制流量簡(jiǎn)化, 以可能地只傳輸流量控制??蛇x地,使用路由表來(lái)確定將把分組發(fā)送到若干處理器108的 哪個(gè)電路塊。 在306,視頻劃分器(fragmenter) 136將接收到的分組分(如果需要)成視頻分 組(或其它內(nèi)容分組)。不同的內(nèi)容類型可以具有不同的分組大小,例如,MPEG2-TS每個(gè)分 組是188字節(jié)。不同的MPEG可以具有不同的報(bào)頭和/或定時(shí)信息,另外,可以使諸如用于 MPEG的音頻、視頻和數(shù)據(jù)等不同的分組類型交錯(cuò)(interleave)(但不以交錯(cuò)的方式處理)。
在308,由運(yùn)算符單元138可選地處理視頻分組,運(yùn)算符單元138可以根據(jù)期望的 處理和/或可用架構(gòu)包括將被串行地和/或并行地應(yīng)用的一個(gè)或多個(gè)運(yùn)算符。
示例性運(yùn)算符包括單流運(yùn)算符(single stream operator),諸如通過(guò)降低位速率 來(lái)壓縮流的"壓縮"(未示出)、不做任何事的"無(wú)效(皿ll) " (146)、和向流添加標(biāo)識(shí)的"添 加標(biāo)識(shí)(logo)"(未示出)和多流運(yùn)算符,諸如將兩個(gè)流(諸如主流和廣告流)接合在一 起的"接合/結(jié)合"(148),將兩個(gè)或更多流組合成諸如畫(huà)中畫(huà)等單個(gè)流的"組合"(144)和 /或向流上添加語(yǔ)音注釋或文本副標(biāo)題注釋的"副標(biāo)題"(未示出),該副標(biāo)題可以作為單獨(dú) 的流而提供。運(yùn)算符的另一示例是將用一個(gè)流的音頻替換另一個(gè)的"音頻交換"。
在本發(fā)明的示例性實(shí)施例中,如下執(zhí)行結(jié)合運(yùn)算路由表包括兩個(gè)條目,該條目具 有不同的源地址,但具有相同的目的地。當(dāng)路由生效時(shí),該表還可以包括指示(例如分組號(hào) 碼、幀號(hào)碼、字節(jié)計(jì)數(shù))。替換地或另外,控制器106實(shí)時(shí)地決定制定路由表。在兩個(gè)流中, 將數(shù)據(jù)、視頻、音頻這些不同的分組類型可選地解復(fù)用。當(dāng)結(jié)合被激活時(shí),分組處理器將開(kāi) 始將第二源流式傳輸至目的地,同時(shí)將報(bào)頭更新為包括與第一源的編號(hào)匹配的編號(hào)。如果 需要,控制器106可選地更新整形器(sh即er)單元(140,下文)以便以新的速率發(fā)送數(shù)據(jù)。 替換地或另外,由控制器106來(lái)協(xié)調(diào)和/或提供用于使過(guò)渡平滑的其它活動(dòng),例如音量調(diào)整 (例如控制器106指示處理器108選擇適當(dāng)?shù)囊袅糠纸M或處理該分組以指示降低的音量或 添加報(bào)頭信息以控制重放音量)。當(dāng)重新開(kāi)始第一流時(shí),報(bào)頭計(jì)數(shù)更新可以繼續(xù)??蛇x地, 由控制器106在適當(dāng)時(shí)使計(jì)數(shù)復(fù)位。 在畫(huà)中畫(huà)應(yīng)用中,由存儲(chǔ)系統(tǒng)102來(lái)提供兩個(gè)流,一個(gè)包括大畫(huà)面(例如顯示器的 3/4),且一個(gè)包括小畫(huà)面(例如顯示器的1/4)。分組處理器使分組交錯(cuò)以生成包括兩個(gè)畫(huà)面部分的組合流。 在310,在整形器單元140處就定時(shí)要求來(lái)控制內(nèi)容分組。例如,單元140可以構(gòu)
建由包含在MPEG2-TS報(bào)頭信息內(nèi)的定時(shí)信息導(dǎo)出的分組間間隙。可選地,整形器單元140
將分組的退出通知給控制器106,以便可以確定從存儲(chǔ)器獲得更多內(nèi)容的時(shí)刻。替換地或另
外,控制器106基于分組處理器108接收到數(shù)據(jù)來(lái)預(yù)測(cè)對(duì)新分組的需要。 在本發(fā)明的示例性實(shí)施例中,整形器單元140包括緩沖器以允許分組處理器108
相比于對(duì)勻速(uniform)傳輸?shù)囊髞?lái)補(bǔ)償數(shù)據(jù)的非勻速到達(dá)。替換地或另外,提供單獨(dú)
的緩沖器。 在本發(fā)明的某些實(shí)施例中,除了將系統(tǒng)100用于同步媒體之外或作為替代,還將 其用于其中定時(shí)可能精度較低(例如30%、50%或以上)的媒體,例如HTTP和FTP QOS推 送(push)。 在312,由分組組裝器142來(lái)組裝傳輸分組(例如IP)以便在傳輸介質(zhì)上傳輸(例 如WAN或?qū)S灭佀推?,諸如用于廣播或單播,例如RF或光纖)。
示例件握手控制 圖4示出依照本發(fā)明的示例性實(shí)施例的數(shù)據(jù)檢索控制400的方法的流程圖。本發(fā) 明的某些實(shí)施例的特定特征是由控制器106盡可能地處理控制過(guò)程以便降低其它系統(tǒng)元 件的復(fù)雜性并使得能夠使用更簡(jiǎn)單且更快速的專用硬件。例如,針對(duì)組處理優(yōu)化分組處理 器108,而不是如通常的通用CPU—樣用于流量控制。替換地或另外,交換機(jī)IIO用于切換 數(shù)據(jù)而替代控制器106內(nèi)部的多用總線。在本發(fā)明的示例性實(shí)施例中,存儲(chǔ)器102由于其 不需要管理文件系統(tǒng)、將數(shù)據(jù)封裝在多個(gè)報(bào)頭中和/或優(yōu)化磁盤(pán)訪問(wèn)請(qǐng)求而被簡(jiǎn)化。應(yīng)注 意的是處理器106 —般涉及同時(shí)處理多個(gè)(例如> 10、>50)流,因此不一定以嚴(yán)格的線性 方式來(lái)應(yīng)用該過(guò)程。 在本發(fā)明的某些實(shí)施例中,由單獨(dú)的處理器來(lái)執(zhí)行某些握手和/或控制或?qū)⑵浒?括在系統(tǒng)組件而不是控制器中。 在402,控制器106確定所請(qǐng)求的內(nèi)容的本體(identity)及其在存儲(chǔ)系統(tǒng)102上 的位置。 在404,控制器106可選地在確定哪個(gè)分組處理器將接收并處理數(shù)據(jù)之后生成檢 索內(nèi)容的指令。在某些情況下,例如,如果所得到的流是包括諸如兩個(gè)TV頻道或電影和廣 告(可選地使用本領(lǐng)域中已知的方法選擇和/或?yàn)橛脩魝€(gè)性化)之類的兩個(gè)單獨(dú)內(nèi)容的組 合流,則使用兩個(gè)或更多分組處理器來(lái)生成單個(gè)流。 可選地,控制器106負(fù)責(zé)存儲(chǔ)系統(tǒng)和/或分組處理器之間的負(fù)載平衡并能夠基于 即時(shí)或預(yù)期負(fù)載來(lái)改變數(shù)據(jù)的源和/或處理器。替換地或另外,控制器106設(shè)置用于不同 流和/或系統(tǒng)組件的優(yōu)先級(jí)??蛇x地,控制器106協(xié)調(diào)系統(tǒng)組件之間的優(yōu)先級(jí),以便在一個(gè) 系統(tǒng)組件處接收高優(yōu)先級(jí)的流在另一系統(tǒng)組件處不會(huì)被阻塞。 在本發(fā)明的示例性實(shí)施例中,負(fù)載均衡是基于比較不同處理器和/或數(shù)據(jù)源的位 速率吞吐量。替換地或另外,控制器106通過(guò)重新排列請(qǐng)求和/或請(qǐng)求優(yōu)先級(jí)和/或時(shí)間 來(lái)優(yōu)化磁盤(pán)訪問(wèn)以滿足請(qǐng)求。替換地或另外,控制器106通過(guò)將對(duì)多個(gè)用戶同時(shí)請(qǐng)求的那 些流的請(qǐng)求組合來(lái)優(yōu)化訪問(wèn)??蛇x地,源102在數(shù)據(jù)的報(bào)頭中標(biāo)記多用數(shù)據(jù)。替換地或另 外,分組處理器108多播或多重單播(multiple-unicast)此類數(shù)據(jù)??蛇x地,控制器106指示數(shù)據(jù)源102預(yù)取數(shù)據(jù)并將其存儲(chǔ)在本地RAM中。替換地或另外,如果可用,則控制器106管理其它高速緩存機(jī)構(gòu)(例如獨(dú)立高速緩存)。 在406,控制器106從分組處理器108接收其實(shí)際上接收到被認(rèn)為向其發(fā)送的數(shù)據(jù)的確認(rèn)。如果尚未接收到數(shù)據(jù),則分組處理器108將向控制器106發(fā)送失敗確認(rèn)(和/或控制器106可以可選地用暫停(time-out)來(lái)等待肯定確認(rèn))??刂破?06可以再次請(qǐng)求數(shù)據(jù)(404)或者可以生成替代請(qǐng)求(402)。例如,如果存儲(chǔ)系統(tǒng)中的磁盤(pán)失敗且處理器108未能接收到數(shù)據(jù),則106將生成對(duì)新的源的新請(qǐng)求。然后可以為處理器108定義新的源。在另一示例中,為了防止內(nèi)容流中的延遲,如果由于某種原因沒(méi)有較高質(zhì)量的數(shù)據(jù)即將到來(lái)(或估計(jì)其不可用),則可以訪問(wèn)較低質(zhì)量的數(shù)據(jù)。 在408,控制器106接收分組處理器108處理數(shù)據(jù)的確認(rèn)。作為響應(yīng),控制器106可以請(qǐng)求發(fā)送更多的數(shù)據(jù)(404)。替換地或另外,控制器106可以預(yù)測(cè)對(duì)更多數(shù)據(jù)的需要且請(qǐng)求適合于發(fā)送的此類數(shù)據(jù)直至分組處理器108指示其已過(guò)載。某些數(shù)據(jù)可能被分組處理器拒絕并在控制器106的監(jiān)督下被重新檢索。在410,由控制器106來(lái)控制輸出分組的定時(shí),例如以便保證期望的傳輸速率。此
類控制的一個(gè)示例是當(dāng)不同位速率的兩個(gè)流被結(jié)合時(shí)。另一示例是當(dāng)諸如機(jī)頂盒或傳輸網(wǎng)絡(luò)等客戶端提供其已過(guò)載或負(fù)載不足的反饋并請(qǐng)求位速率變化時(shí)。在本發(fā)明的示例性實(shí)施
例中,此類請(qǐng)求可以直接前進(jìn)到控制器106或間接地經(jīng)由后臺(tái)服務(wù)器,并且控制器106控制
系統(tǒng)100的各種組件以實(shí)現(xiàn)期望的效果。 在412,例如,通過(guò)就系統(tǒng)100內(nèi)和系統(tǒng)100外的數(shù)據(jù)傳輸向交換機(jī)110提供優(yōu)先級(jí)來(lái)可選地確定輸出分組的遞送(例如到最終用戶)。 在414,由控制器106可選地接收用戶反饋,例如,對(duì)更好質(zhì)量或?qū)μ^(guò)內(nèi)容的請(qǐng)求。這些請(qǐng)求可選地修改內(nèi)容檢索、處理和/或流式傳輸??梢杂煽刂破?06來(lái)處理通常由后臺(tái)服務(wù)器執(zhí)行的其它功能。 在本發(fā)明的其它實(shí)施例中,由諸如后臺(tái)服務(wù)器等控制系統(tǒng)100的外部組件來(lái)提供用戶反饋和跟蹤??刂破?06可選地將標(biāo)準(zhǔn)視頻服務(wù)器模擬成此類后臺(tái)服務(wù)器。
示例件數(shù)據(jù)存儲(chǔ) 圖5是依照本發(fā)明的示例性實(shí)施例的數(shù)據(jù)存儲(chǔ)方法500的流程圖。通常,此方法除沿相反方向之外,可以類似于方法200地進(jìn)行在處理器106的控制器的控制下,從用戶向分組處理器108提供數(shù)據(jù)并隨后發(fā)送數(shù)據(jù)以便存儲(chǔ)在存儲(chǔ)系統(tǒng)102處。
在502,用戶請(qǐng)求存儲(chǔ)內(nèi)容。此內(nèi)容可以由例如用戶TV接收機(jī)或用戶VCR或照相機(jī)等本地視頻源來(lái)提供。替換地或另外,所述內(nèi)容實(shí)際上是由系統(tǒng)ioo提供的內(nèi)容,諸如存儲(chǔ)的程序和/或由衛(wèi)星饋送器(satellite feed)等遠(yuǎn)程和/或現(xiàn)場(chǎng)源提供的內(nèi)容。
在504,控制器106確定數(shù)據(jù)的期望源,例如傳輸信息或替代源(例如用于本地生成或可用的內(nèi)容或使用本地TV調(diào)諧器或衛(wèi)星饋送器或媒體流,諸如現(xiàn)場(chǎng)音樂(lè)會(huì))。替換地或另外,控制器106確定哪個(gè)分組處理器將接收內(nèi)容。 在506,控制器106例如基于可用性、要求帶寬和/或音量來(lái)選擇內(nèi)容的存儲(chǔ)位置。應(yīng)注意的是在存儲(chǔ)過(guò)程期間,控制器106可選地跟蹤可用存儲(chǔ)量和/或數(shù)據(jù)提供速率對(duì)比存儲(chǔ)速率,并可以作為響應(yīng)而賦予附加和/或替代存儲(chǔ)位置(多個(gè))。實(shí)際存儲(chǔ)位置被可選地存儲(chǔ)為元數(shù)據(jù)。
在508,向分組處理器108發(fā)送存儲(chǔ)信息的指示。可選地,由控制器106來(lái)直接提供此指示。替換地,由用戶來(lái)提供存儲(chǔ)位置或其指示??蛇x地,用戶選擇存儲(chǔ)位置,并且隨后控制器106將此位置翻譯成物理存儲(chǔ)信息。 在510,內(nèi)容被交換機(jī)110接收并傳遞到分組處理器108。 在512,可選地處理數(shù)據(jù),例如,譯碼成不同的視頻格式,轉(zhuǎn)換成不同的位速率,添加水印(或其它CRM方法)以防止未授權(quán)復(fù)制??蛇x地,首先由劃分器136將數(shù)據(jù)分解成媒體分組,條件是要執(zhí)行此類處理的話。 在514,由可選報(bào)頭插入單元150使用存儲(chǔ)信息來(lái)定址接收到的內(nèi)容。 在516,可選地將多個(gè)分組組裝成(例如通過(guò)組裝器142)較大存儲(chǔ)分組,例如可以
將多個(gè)1, 316字節(jié)MTU分組組裝成9KB巨型IP幀以便存儲(chǔ)??蛇x地,在此類組裝之后添加
存儲(chǔ)信息。 在518,將存儲(chǔ)分組轉(zhuǎn)發(fā)到存儲(chǔ)系統(tǒng)102并存儲(chǔ)。如前所述,控制器106可選地管理握手等并保證用戶所發(fā)送的數(shù)據(jù)被實(shí)際接收到和/或存儲(chǔ)。 在本發(fā)明的示例性實(shí)施例,通過(guò)將數(shù)據(jù)存儲(chǔ)到系統(tǒng)100并隨后立即檢索數(shù)據(jù)來(lái)將系統(tǒng)100用作緩沖器。可選地,這是用于使TV頻道、重放和/或其它時(shí)間操作特征暫停。可選地,例如,如果視頻流已準(zhǔn)備好且隨后并未立即需要,則系統(tǒng)100的組件也使用此功能。
儲(chǔ)《籠剤諸 某些在先系統(tǒng)的一個(gè)缺點(diǎn)是由于共享數(shù)據(jù)方面的困難,以多拷貝的方式存儲(chǔ)可以被多個(gè)視頻服務(wù)器訪問(wèn)的數(shù)據(jù),每個(gè)服務(wù)器一個(gè)。在本發(fā)明的示例性實(shí)施例中,將數(shù)據(jù)存儲(chǔ)與處理分離,以便在理論上可以僅僅存儲(chǔ)數(shù)據(jù)一次并訪問(wèn)多次。然而,出于各種原因,可能需要多存儲(chǔ)。第一個(gè)原因是提高訪問(wèn)速度(并行化),這一般在存儲(chǔ)系統(tǒng)內(nèi)實(shí)施。附加原因包括負(fù)載平衡、可靠性、存儲(chǔ)器虛擬化、失敗接替、和以下能力定位并共享網(wǎng)絡(luò)的不同部分內(nèi)的存儲(chǔ)島(例如頭端、集線器)以節(jié)約網(wǎng)絡(luò)帶寬、存儲(chǔ)器、諸如占用空間、冷卻和功率等的其它資源。 在本發(fā)明的示例性實(shí)施例中,將數(shù)據(jù)存儲(chǔ)在多個(gè)位置上(使用元數(shù)據(jù)注明)且控制器106基于諸如擁擠和可用帶寬等可用性和/或網(wǎng)絡(luò)屬性來(lái)確定從哪里檢索數(shù)據(jù)??蛇x地,還將分組處理器可選地分布在除數(shù)據(jù)源和/或元數(shù)據(jù)服務(wù)器的位置之外的位置??蛇x地,控制器106 (可以提供多于一個(gè))基于網(wǎng)絡(luò)條件和/或節(jié)點(diǎn)可用性來(lái)選擇哪些數(shù)據(jù)源連接到哪些處理器。 在本發(fā)明的示例性實(shí)施例中,根據(jù)需要實(shí)時(shí)地將數(shù)據(jù)定址到分組處理器。在某些情況下,可以檢索相同的數(shù)據(jù)兩次或更多次,例如,以便加強(qiáng)概率系統(tǒng)中的準(zhǔn)時(shí)遞送。可選地,例如出于失敗接替的目的,由控制器106來(lái)指示相關(guān)分組處理器例如使用多播來(lái)降低(drop)復(fù)制數(shù)據(jù)。
示例性混合系統(tǒng) 圖6是將現(xiàn)有服務(wù)器技術(shù)與依照本發(fā)明的示例性實(shí)施例的服務(wù)器結(jié)合的視頻流服務(wù)器系統(tǒng)600的示意性方框圖。 在本發(fā)明的示例性實(shí)施例中,包括內(nèi)容存儲(chǔ)器604的現(xiàn)有技術(shù)視頻服務(wù)器602使用交換機(jī)110 (或其它裝置)連接到WAN 112。在本發(fā)明的示例性實(shí)施例中,視頻服務(wù)器602還用于控制一個(gè)或多個(gè)存儲(chǔ)系統(tǒng)102和/或分組處理器108,如上文對(duì)于控制器106所述,或者可以提供單獨(dú)的控制器106。在本發(fā)明的示例性實(shí)施例中,將元數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器604中或單獨(dú)的位置上。 如圖所示,根據(jù)實(shí)施方式,可以經(jīng)由交換機(jī)110和/或經(jīng)由專用線來(lái)進(jìn)行數(shù)據(jù)和/或控制連接。 在本發(fā)明的示例性實(shí)施例中,可選地用逐漸且用戶透明的轉(zhuǎn)接(changeover)來(lái)與現(xiàn)有系統(tǒng)并行地提供系統(tǒng)100。 在本發(fā)明的示例性實(shí)施例中,提供了更新存儲(chǔ)器102的方法,其中當(dāng)由現(xiàn)有服務(wù)器602生成流時(shí),并行地向用戶和系統(tǒng)100發(fā)送流,作為要存儲(chǔ)的流(例如圖5)??蛇x地,系統(tǒng)100將機(jī)頂盒模擬成服務(wù)器602,或者使用其它裝置、例如使用分組復(fù)制器或通過(guò)竊聽(tīng)來(lái)獲得要發(fā)送到遠(yuǎn)程機(jī)頂盒的流的拷貝。 在本發(fā)明的示例性實(shí)施例中,將系統(tǒng)100用作用于服務(wù)器602的高速緩存并且還同時(shí)更新。在本實(shí)施例中,由后臺(tái)服務(wù)器向控制器106轉(zhuǎn)發(fā)請(qǐng)求。如果數(shù)據(jù)未被存儲(chǔ)在系統(tǒng)100中,控制器106可選地通過(guò)模擬機(jī)頂盒或其它客戶端來(lái)請(qǐng)求來(lái)自視頻服務(wù)器602的
數(shù)據(jù)并存儲(chǔ)且轉(zhuǎn)發(fā)該數(shù)據(jù)。
雖然以上說(shuō)明已集中于視頻數(shù)據(jù),但作為替代或者除其它內(nèi)容類型之外可以應(yīng)用所述系統(tǒng)和方法,例如流式傳輸音頻。另外,實(shí)施方式可以包括軟件、硬件、固件和/或其它類型的電路中的一個(gè)或多個(gè)。與可編程裝置相結(jié)合的具有用于執(zhí)行本文所述方法的指令的計(jì)算機(jī)可讀介質(zhì)也包括本發(fā)明的范圍內(nèi)。 應(yīng)認(rèn)識(shí)到可以以許多方式來(lái)修改上述裝置,包括改變所使用的布局、材料、元件和結(jié)構(gòu)。還應(yīng)認(rèn)識(shí)到應(yīng)將方法和裝置的以上詳細(xì)說(shuō)明解釋為包括用于執(zhí)行所述方法的裝置和使用所述裝置的方法。 已使用通過(guò)舉例提供的本發(fā)明的實(shí)施例的非限制性詳細(xì)說(shuō)明描述了本發(fā)明,且并不意圖限制本發(fā)明的范圍。應(yīng)理解的是相對(duì)于一個(gè)實(shí)施例描述的特征和/或步驟可以用于其它實(shí)施例且并不是本發(fā)明的所有實(shí)施例都具有特定附圖所示或就實(shí)施例之一描述的所有特征和/或步驟。本領(lǐng)域的技術(shù)人員將想到所述實(shí)施例的變體。 應(yīng)注意的是某些上述實(shí)施例可以描述發(fā)明人預(yù)期的最佳方式,并因此包括對(duì)于本發(fā)明可能不是必不可少且被描述為示例的結(jié)構(gòu)、行為或結(jié)構(gòu)和行為的細(xì)節(jié)。如本領(lǐng)域所已知的那樣,本文所述的結(jié)構(gòu)和行為可被執(zhí)行相同功能的等價(jià)物替換,即使所述結(jié)構(gòu)或行為是不同的。因此,本發(fā)明的范圍僅僅受限于權(quán)利要求中所使用的元素和限制。當(dāng)在以下權(quán)利要求中使用時(shí),術(shù)語(yǔ)"包括"、"包含"、"具有"及其同根變形詞意指"包括但不限于"。
權(quán)利要求
一種數(shù)據(jù)流服務(wù)器,包括(a)至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備;(b)至少一個(gè)控制器,被配置為控制向所述設(shè)備發(fā)送數(shù)據(jù)和從所述設(shè)備接收數(shù)據(jù)中的至少一個(gè);以及(c)至少一個(gè)分組處理器,適合于處理流數(shù)據(jù)并在不使所述數(shù)據(jù)通過(guò)所述控制器、但同時(shí)使用所述控制器的所述控制的情況下與所述數(shù)據(jù)存儲(chǔ)設(shè)備交換數(shù)據(jù)。
2. 如權(quán)利要求1所述的服務(wù)器,其中,所述服務(wù)器被配置為生成對(duì)來(lái)自所述設(shè)備的所 述數(shù)據(jù)的請(qǐng)求以便由所述分組處理器來(lái)處理。
3. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器是具有以非分組 處理為代價(jià)的特別適合于分組處理的架構(gòu)的專用分組處理器。
4. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器在通信方案的傳 輸層級(jí)以上的層級(jí)不與所述存儲(chǔ)設(shè)備相交互以確認(rèn)遞送。
5.如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器被配置為從所述 設(shè)備接收所述數(shù)據(jù)作為具有報(bào)頭的分組并去除所述報(bào)頭。
6. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器包括適合于控制 所述數(shù)據(jù)的遞送的定時(shí)的分組組裝器。
7. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器包括被配置為處 理所述數(shù)據(jù)的數(shù)據(jù)處理器,所述處理包括將兩個(gè)數(shù)據(jù)流組合和將兩個(gè)數(shù)據(jù)流結(jié)合兩者中的 至少一個(gè)。
8. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述分組處理器將所述數(shù)據(jù)定址 到用戶。
9. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,包括交換機(jī),該交換機(jī)用于將來(lái)自所述 存儲(chǔ)設(shè)備的所述數(shù)據(jù)輸送到所述分組處理器。
10. 如權(quán)利要求9所述的服務(wù)器,其中,所述交換機(jī)用于將來(lái)自所述分組處理器的數(shù)據(jù) 流輸送到接收者。
11. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中 理實(shí)體接收數(shù)據(jù)請(qǐng)求并將該數(shù)據(jù)發(fā)送到第二物理實(shí)體。
12. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中 據(jù)作為IP分組發(fā)送到所述分組處理器。
13. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中
14. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中 的小于所述分組處理器的帶寬的1/4的帶寬。
15. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中
16. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中 流的請(qǐng)求并獲得應(yīng)答所述請(qǐng)求的數(shù)據(jù)的物理存儲(chǔ)位置。
17. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,包括至少一個(gè)元數(shù)據(jù)服務(wù)器,該元數(shù)據(jù) 服務(wù)器存儲(chǔ)被存儲(chǔ)在所述至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備上的數(shù)據(jù)的物理存儲(chǔ)位置。
18. 如權(quán)利要求16所述的服務(wù)器,其中,所述控制器被配置為在多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備之 間進(jìn)行選擇并向其發(fā)送數(shù)據(jù)檢索指令。
,所述存儲(chǔ)設(shè)備被配置為從一個(gè)物,所述存儲(chǔ)設(shè)備被配置為將所述數(shù),所述控制器包括通用控制器。 ,所述控制器具有到所述設(shè)備外部,所述控制器管理用戶請(qǐng)求。,所述控制器被配置為接收對(duì)數(shù)據(jù)
19.如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述控制器被配置為處理所述數(shù)據(jù)存儲(chǔ)設(shè)備與所述分組處理器之間的流量控制。
20. 如前述權(quán)利要求中任何一項(xiàng)多個(gè)的服務(wù)器,其中:存儲(chǔ)設(shè)備與多個(gè)分組處理器之間進(jìn)行協(xié)調(diào)。
21. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中: 如前述權(quán)利要求中任何-如前述權(quán)利要求中任何-所述控制器被配置為在多個(gè)數(shù)據(jù)-項(xiàng)所述的服務(wù)器,其中 ^項(xiàng)所述的服務(wù)器,其中所述數(shù)據(jù)包括視頻數(shù)據(jù)。 所述數(shù)據(jù)包括音頻數(shù)據(jù)。 所述數(shù)據(jù)包括經(jīng)復(fù)用的音頻和視
22.
23.頻數(shù)據(jù)。
24. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述服務(wù)器包括由所述控制器控 制的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備。
25. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述服務(wù)器包括由所述控制器控 制的多個(gè)處理器。
26. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,其中,所述控制器適合于接收數(shù)據(jù)存儲(chǔ) 請(qǐng)求并作為其響應(yīng)而控制所述分組處理器生成存儲(chǔ)分組且控制所述存儲(chǔ)設(shè)備將所述存儲(chǔ) 分組存儲(chǔ)在由所述控制器設(shè)定的位置處。
27. 如前述權(quán)利要求中任何一項(xiàng)所述的服務(wù)器,包括與所述控制器相關(guān)聯(lián)的附加數(shù)據(jù) 存儲(chǔ)器,其中,所述控制器適合于經(jīng)由所述控制器從所述附加存儲(chǔ)器向所述處理器發(fā)送數(shù)及
28. —種生成數(shù)據(jù)流的方法,包括(a) 接收對(duì)數(shù)據(jù)的請(qǐng)求;(b) 由通用處理器來(lái)確定所述數(shù)據(jù)的源位置;(c) 指示所述存儲(chǔ)位置在不通過(guò)所述通用處理器的情況下向分組處理器發(fā)送數(shù)據(jù);以(d)根據(jù)所述請(qǐng)求,由所述發(fā)送的數(shù)據(jù)生成沒(méi)右
全文摘要
一種數(shù)據(jù)流服務(wù)器,包括至少一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備;被配置為控制向所述設(shè)備發(fā)送數(shù)據(jù)和從所述設(shè)備接收數(shù)據(jù)中的至少一項(xiàng)的至少一個(gè)控制器;以及至少一個(gè)分組處理器,該分組處理器適合于處理流數(shù)據(jù)并在不使該數(shù)據(jù)通過(guò)控制器、但同時(shí)使用控制器進(jìn)行的控制的情況下與數(shù)據(jù)存儲(chǔ)設(shè)備交換數(shù)據(jù)。還描述了相關(guān)裝置和方法。
文檔編號(hào)H04N7/173GK101720554SQ200880016337
公開(kāi)日2010年6月2日 申請(qǐng)日期2008年3月3日 優(yōu)先權(quán)日2007年3月15日
發(fā)明者N·德蘭格, R·本-亞基爾 申請(qǐng)人:法布里克斯電視有限公司