本公開的技術(shù)一般涉及視頻流源的組播流,尤其涉及消除組播流環(huán)境中視頻流之間的切換延遲。
背景技術(shù):
本部分中所論述的主題不應(yīng)僅因其在本部分中提及而被假定為是現(xiàn)有技術(shù)。同理,在本部分中提及的或者與提供為背景技術(shù)的主題相關(guān)聯(lián)的問題,不應(yīng)視為已在現(xiàn)有技術(shù)中預(yù)先認(rèn)知。本部分中的主題僅代表不同的解決途徑,其本身也可以對應(yīng)于所要求保護(hù)技術(shù)的實(shí)施。
組播流技術(shù)涉及向多個(gè)獨(dú)立客戶發(fā)送多個(gè)視頻/音頻流。每個(gè)這樣的流可以產(chǎn)生于不同的視頻/音頻源,并且可以采用諸如因特網(wǎng)、以太網(wǎng)、幀中繼、光纖等的不同網(wǎng)絡(luò)技術(shù)來進(jìn)行傳送。此類系統(tǒng)的主要缺點(diǎn)是延遲,即所需帶寬與視頻/音頻源流的數(shù)量成正比。因此,需要高帶寬來執(zhí)行高質(zhì)量的視頻/音頻流。
在需要在不同的壓縮的視頻/音頻流之間即時(shí)切換的組播流環(huán)境中,延遲的問題更加嚴(yán)重。已經(jīng)提出了各種解決方案來縮短壓縮的視頻/音頻流之間的切換延遲。但是,這些解決方案尚不完全湊效,這是由于這些解決方案要么向客戶提出了額外的不期望的計(jì)算要求,要么局限于在產(chǎn)生自同一源的流之間切換。因此,需要新的技術(shù)方案來克服現(xiàn)有技術(shù)中的局限性。
產(chǎn)生在組播流環(huán)境中的多個(gè)壓縮視頻/音頻源之間進(jìn)行平滑轉(zhuǎn)換,既無需額外帶寬也不會加重客戶計(jì)算資源的負(fù)擔(dān)的機(jī)會??梢栽鰪?qiáng)用戶體驗(yàn)和滿意度。
技術(shù)實(shí)現(xiàn)要素:
本公開的技術(shù)涉及能夠在壓縮視頻流之間平滑轉(zhuǎn)換。尤其涉及計(jì)劃要在顯示的區(qū)域中示出的壓縮視頻流之間的轉(zhuǎn)換,使得在對第一視頻流解碼、解壓縮并緩沖以便顯示的同時(shí),在按計(jì)劃示出第二視頻流前的預(yù)定時(shí)間開始解碼、解壓縮并緩沖第二視頻流。本公開的技術(shù)還涉及在按計(jì)劃示出第二視頻流時(shí),在針對所述第一視頻流與所述第二視頻流的緩沖器之間切換,從而所述第二視頻流無延遲地即時(shí)顯示。
在一個(gè)實(shí)施方式中,在針對第一視頻流和第二視頻流的緩沖器之間切換還包括:修改對應(yīng)于第一視頻流和第二視頻流的顯示層的z順序,從而圖形卡組成使得第二視頻流而非第一視頻流可見的顯示。
在另一個(gè)實(shí)施方式中,在針對所述第一視頻流與所述第二視頻流的緩沖器之間切換還包括:所述第一視頻流和所述第二視頻流的輸送的層2切換,以輸送所述第二視頻流而非第一視頻流用于顯示。
在又一個(gè)實(shí)施方式中,在針對第一視頻流與所述第二視頻流的緩沖器之間切換還包括:更新視頻切換矩陣,以將所述第二視頻流而非所述第一視頻流結(jié)合到所述顯示。
本公開的技術(shù)的另一個(gè)特征是評價(jià)所述第二視頻流中關(guān)鍵幀之間的時(shí)間間隔并且至少部分地基于所述時(shí)間間隔來選擇所述預(yù)定時(shí)間。
在多對第一視頻流和第二視頻流的情況下,本公開的技術(shù)還包括:對計(jì)劃的所述第一視頻流與所述第二視頻流之間的轉(zhuǎn)換排序,以減少在所述第一視頻流的解碼與所述第二視頻流的解碼之間同時(shí)轉(zhuǎn)換的視頻流的數(shù)量。
通過后續(xù)附圖、具體實(shí)施方式和權(quán)利要求能夠獲悉本發(fā)明的其它方面和優(yōu)點(diǎn)。
附圖說明
在附圖中,相同的附圖標(biāo)記在整個(gè)不同的圖中表示相同的部分。而且,附圖不是必須按比例繪制,而是通常將重點(diǎn)放在闡明公開的技術(shù)的原理上。在以下說明中,參照以下附圖對公開的技術(shù)的各種實(shí)施方式進(jìn)行描述,其中:
圖1例示了示例性組播流環(huán)境。
圖2例示了可以應(yīng)用本文所公開的技術(shù)的示例工作流的框圖。
圖3示出了在時(shí)移模式中對當(dāng)前和后續(xù)視頻流進(jìn)行偽同時(shí)處理以使得壓縮視頻流之間進(jìn)行平滑轉(zhuǎn)換(smooth transitioning)的一個(gè)實(shí)施方式。
圖4例示了評價(jià)關(guān)鍵幀之間的時(shí)間間隔并且基于評價(jià)的時(shí)間間隔來計(jì)劃切換的一個(gè)實(shí)施方式。
圖5是修改組播流環(huán)境中不同的壓縮視頻流的z順序以便能夠在壓縮視頻流之間進(jìn)行即時(shí)切換的一個(gè)實(shí)施方式。
圖6是在壓縮視頻流之間平滑地轉(zhuǎn)換的典型方法。
圖7是在壓縮視頻流之間平滑地轉(zhuǎn)換的示例計(jì)算機(jī)系統(tǒng)的框圖。
具體實(shí)施方式
下面參照附圖進(jìn)行詳細(xì)描述。示例實(shí)施方式被描述以例示所公開的技術(shù),而非限制本公開的范圍,本公開的范圍由權(quán)利要求限定。本技術(shù)領(lǐng)域的普通技術(shù)人員將辯出關(guān)于以下描述的各種等同變化。
術(shù)語
本文所使用的“第二”或“后續(xù)”視頻流指的是跟在在前的“第一”或“當(dāng)前”視頻流之后的已知數(shù)據(jù)、反饋、信號、事件或值,所述在前的“第一”或“當(dāng)前”視頻流可以是數(shù)據(jù)、反饋、信號、事件或值。在一個(gè)實(shí)施方式中,在“第一”或“當(dāng)前”視頻流之后對“第二”或“后續(xù)”視頻流進(jìn)行處理。在另一個(gè)實(shí)施方式中,“第二”或“后續(xù)”視頻流與“第一”或“當(dāng)前”視頻流同時(shí)被處理。在又一個(gè)實(shí)施方式中,“第二”或“后續(xù)”視頻流與“第一”或“當(dāng)前”視頻流被偽同時(shí)或偽并行處理,使得在相對于開始處理“第一”或“當(dāng)前”視頻流的預(yù)定時(shí)間延遲后開始處理“第二”或“后續(xù)”視頻流,其中術(shù)語“處理”包括特定視頻流的顯示。在偽同時(shí)模式下,“第一”或“當(dāng)前”視頻流的解碼、解壓縮、緩沖或顯示與“第二”或“后續(xù)”視頻流的解碼、解壓縮、緩沖或顯示之間存在時(shí)間重疊,其中“第二”或“后續(xù)”視頻流的解碼、解壓縮及緩沖是在顯示“第二”或“后續(xù)”視頻流的切換命令被接收之前完成的。
本文所使用的已知信號、事件或值是“基于”受已知信號、事件或值影響的在前信號、事件或值的在前信號、事件或值。如果有介于中間的處理要素、步驟或時(shí)期,已知信號、事件或值仍然可以“基于”在前信號、事件或值。如果介于中間的處理要素或步驟結(jié)合多于一個(gè)信號、事件或值,該處理要素或步驟的信號輸出被認(rèn)為是“基于”該信號、事件或值的輸入的各個(gè)。如果已知信號、事件或值與在前信號、事件或值一樣,這僅僅是一種退化情況,在該情況下,已知信號、事件或值仍然被認(rèn)為是“基于”或“取決于”在前信號、事件或值。以類似方式來定義已知信號、事件或值對另一信號、事件或值的“響應(yīng)性”。
簡介
現(xiàn)有的組播媒體流解決方案以各種方式來解決切換延遲的技術(shù)問題。例如,為了將在使用H.264壓縮的視頻流時(shí)的中斷最小化,可以減小生成I幀的最大間隔。采用這種方法,如果至少每秒一次生成I幀,則開始示出新的視頻流所需的時(shí)間量略多于一秒,平均時(shí)間是半秒。采用這種方法的問題是,頻繁發(fā)送I幀降低了視頻流的壓縮量,這會增加發(fā)送視頻流所需的帶寬量。在另一個(gè)示例中,一些視頻流源支持強(qiáng)制傳送關(guān)鍵幀的請求。然而,只有少數(shù)視頻流源支持這種強(qiáng)制性請求。
本公開的技術(shù)解決了在巡演布置中在壓縮視頻流之間切換時(shí)視頻墻控制系統(tǒng)上看到的可見中斷的技術(shù)問題。諸如Jupiter Systems的Canvas系統(tǒng)的視頻墻控制系統(tǒng)提供了在同一視頻顯示窗口中示出來自一系列輸入的輸出的能力。這種能力被稱為“巡演(touring)”。在歷史上,這類系統(tǒng)往往采用直接的未壓縮的視頻輸入,但是正逐漸轉(zhuǎn)變?yōu)榻?jīng)由網(wǎng)絡(luò)發(fā)送的諸如H.264的視頻格式的壓縮輸入。在巡演系統(tǒng)中,在直接連接的未壓縮的輸入之間進(jìn)行切換典型地只需要幾幀、即1秒的1/10級別,如同變換電視頻道。
當(dāng)使用經(jīng)由網(wǎng)絡(luò)發(fā)送的壓縮輸入時(shí),在輸入之間進(jìn)行切換典型地會造成視頻流的中斷(達(dá)數(shù)秒),導(dǎo)致系統(tǒng)在開始解碼新流時(shí)白屏或凍屏。該中斷的原因是,視頻壓縮技術(shù)涉及頻繁發(fā)送全視頻幀(“I幀”或“關(guān)鍵幀”)然后僅發(fā)送“delta”信息(“P幀”或“B幀”),該“delta”信息僅用最近發(fā)送的I幀就可以被重構(gòu)成全幀。當(dāng)切換到新流時(shí),顯示輸出因此無法繼續(xù)直到在新流中接收到I幀為止,即使那樣也需再多幾幀以便解碼器邏輯能夠生成平滑的視頻輸出。顯示白屏或凍屏?xí)@著降低用戶體驗(yàn)。
本文中提出的技術(shù)方案包括采用額外一組解碼邏輯和工作存儲器以影響在組播流環(huán)境中從一個(gè)視頻流至另一個(gè)視頻流的即時(shí)切換。特別地,該技術(shù)方案包括應(yīng)用處理-起始時(shí)間延遲,以偽同時(shí)或偽并行或同時(shí)或并行使用多個(gè)解碼邏輯和工作存儲單元來處理針對同一顯示的當(dāng)前和后續(xù)視頻流,使得后續(xù)視頻流的解碼在按計(jì)劃發(fā)生切換之前就已開始。
在一個(gè)實(shí)施方式中,為視頻墻控制系統(tǒng)設(shè)置巡回計(jì)劃,使得替代簡單地在時(shí)間T停止當(dāng)前流Sc的處理并開始后續(xù)視頻流Ss的處理,本公開的技術(shù)在更早的時(shí)間T-t開始后續(xù)視頻流Ss的后臺處理,然后在時(shí)間T將顯示從當(dāng)前流Sc切換到后續(xù)視頻流Ss。
后續(xù)視頻流的后臺處理包括對后續(xù)視頻流分配特定流處理資源,所述特定流處理資源對后續(xù)視頻流解碼以及解壓縮、并將處理過的后續(xù)視頻流存儲在特定流緩沖器中以便于在切換期間后續(xù)視頻流的即時(shí)調(diào)度。在一個(gè)實(shí)施方式中,這是通過以下操作來實(shí)現(xiàn)的:利用圖形處理單元(GPU)的圖形命令來定義針對組播流環(huán)境中的不同視頻流的窗口層的順序。該順序被稱為“z順序”,其將顯示后續(xù)視頻流的第二窗口布置在顯示當(dāng)前流的第一窗口之后。這樣的布置準(zhǔn)備了無需中斷當(dāng)前流的顯示而進(jìn)行即時(shí)切換的組播流環(huán)境。
在當(dāng)前流的顯示期間對后續(xù)視頻流處理并存儲在其特定流緩沖器中之后,可以以最小甚至零切換延遲無縫地執(zhí)行從當(dāng)前流到后續(xù)視頻流的切換。在一個(gè)實(shí)施方式中,這是通過更改第二窗口的z順序使得第二窗口在顯示當(dāng)前流的第一窗口的前面來實(shí)現(xiàn)的。此外,本公開的技術(shù)從在前的當(dāng)前流解除分配任何處理資源,并刪除顯示在前的當(dāng)前流的第一窗口。
因此,本公開的技術(shù)是對在巡回布置中的視頻流之間進(jìn)行切換的當(dāng)前方法的改進(jìn),這是因?yàn)槠湎嗽诟囊曨l流時(shí)的可見中斷,對所有的視頻流資源都起作用,并且無需頻繁傳送I幀。
本公開的技術(shù)能夠方便地應(yīng)用在諸如網(wǎng)絡(luò)運(yùn)行中心(NOC)、公用設(shè)施控制中心、智能交通管理中心、程序控制、民用和軍事監(jiān)控系統(tǒng)、呼叫中心、財(cái)務(wù)管理控制室、會議室和可視電話會議室之類的設(shè)施。
本公開的技術(shù)能夠以多種方式來實(shí)現(xiàn),包括實(shí)現(xiàn)為過程、裝置、系統(tǒng)、設(shè)備、方法、諸如包含計(jì)算機(jī)可讀指令或計(jì)算機(jī)程序代碼的計(jì)算機(jī)可讀存儲介質(zhì)的計(jì)算機(jī)可讀介質(zhì),或者實(shí)現(xiàn)為包括具有體現(xiàn)在其中的計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可用介質(zhì)的計(jì)算機(jī)程序產(chǎn)品。
參照圖1至圖7對本公開的技術(shù)的實(shí)施方式進(jìn)行詳細(xì)的描述。
組播流環(huán)境
描述了用于在壓縮視頻流之間平滑地轉(zhuǎn)換的系統(tǒng)和各種實(shí)施。將參照圖1對系統(tǒng)和處理進(jìn)行描述。圖1示出了根據(jù)一個(gè)實(shí)施方式的系統(tǒng)的示意性架構(gòu)層級。由于圖1是架構(gòu)圖,故某些細(xì)節(jié)被省略,以使得描述更加清楚。對圖1的詳述將組織如下:首先,將對圖中的要素進(jìn)行說明,然后將說明其互連關(guān)系。接著,將更詳細(xì)地描述系統(tǒng)中要素的使用。
圖1包括組播流環(huán)境100。組播流環(huán)境100包括用戶計(jì)算設(shè)備102a至102n、網(wǎng)絡(luò)接口104和顯示墻106。圖1還示出了轉(zhuǎn)換器112、網(wǎng)絡(luò)115、正交解碼器(quad decoder)116、解壓縮器126和視頻流源132a至132n。緩沖器122a至122n存儲其它資源中的來自不同視頻流源132a至132n的處理過的流并且專用于個(gè)別的視頻流源,使得例如將緩沖器122a指定給視頻源132a而將緩沖器122b指定給視頻源132b。
在其它實(shí)施方式中,組播流環(huán)境100可以不具有和如上所列相同的要素或組件并且/或者可以具有代替如上所列或除如上所列之外的其它/不同的要素或組件,比如按需數(shù)據(jù)庫服務(wù)、當(dāng)前模塊或應(yīng)用平臺。不同的要素或組件可以組合成單個(gè)軟件模塊,并且多個(gè)軟件模塊可以在同一硬件上運(yùn)行。
現(xiàn)在將描述組播流環(huán)境100的要素的互連。網(wǎng)絡(luò)115結(jié)合(couple)用戶計(jì)算設(shè)備102a至102n、顯示墻106、網(wǎng)絡(luò)接口104和視頻流源132a至132n以進(jìn)行通信(用雙箭頭表示)。實(shí)際通信路徑可以是經(jīng)由公共和/或私有網(wǎng)絡(luò)的點(diǎn)對點(diǎn)通信路徑。諸如AppWrapper(未示出)的一些項(xiàng)目可能例如通過應(yīng)用商店(未示出)來間接輸送。所有的通信可以經(jīng)由各種網(wǎng)絡(luò)發(fā)生,例如私有網(wǎng)絡(luò)、VPN、MPLS電路或者因特網(wǎng),并且可以采用適當(dāng)?shù)腁PI和數(shù)據(jù)交換格式,例如REST、JSON、XML、SOAP和/或JMS。所有的通信是可以加密的。這種通信通常通過諸如EDGE、3G、4G LTE、Wi-Fi和WiMAX的協(xié)議經(jīng)由如下網(wǎng)絡(luò)發(fā)生,例如LAN(局域網(wǎng))、WAN(廣域網(wǎng))、電話網(wǎng)絡(luò)(公共交換電話網(wǎng)絡(luò)(PSTN))、會話初始化協(xié)議(SIP)、無線網(wǎng)絡(luò)、點(diǎn)到點(diǎn)網(wǎng)絡(luò)、星形網(wǎng)絡(luò)、令牌環(huán)網(wǎng)絡(luò)、樞紐網(wǎng)絡(luò)以及包括移動互聯(lián)網(wǎng)在內(nèi)的因特網(wǎng)。此外,可以使用各種授權(quán)和身份驗(yàn)證技術(shù)-例如用戶名/密碼、OAuth、Kerberos、SecureID、數(shù)字證書等-來保護(hù)通信。
網(wǎng)絡(luò)接口104、轉(zhuǎn)換器112、正交解碼器116、解壓縮器126和緩沖器122a至122n可以包括結(jié)合以彼此進(jìn)行通信的一個(gè)或多個(gè)計(jì)算機(jī)和計(jì)算機(jī)系統(tǒng)。它們也可以是一種或多種虛擬的計(jì)算和/或存儲資源。例如,轉(zhuǎn)換器112可以是一個(gè)或多個(gè)亞馬遜EC2實(shí)例,并且緩沖器122a至122n可以是亞馬遜S3存儲器??梢圆捎弥T如來自Salesforce的Force.com、Rackspace或Heroku的其它計(jì)算即服務(wù)平臺,而不是在直接物理計(jì)算機(jī)或傳統(tǒng)虛擬機(jī)上實(shí)施上面認(rèn)定的組件。此外,上面認(rèn)定的組件可以被實(shí)現(xiàn)為引擎。引擎可以是不同類型的,包括圖形處理單元(GPU)、工作站、服務(wù)器、計(jì)算集群、刀片服務(wù)器、服務(wù)器農(nóng)場或任何其它數(shù)據(jù)處理系統(tǒng)或計(jì)算設(shè)備。
用戶計(jì)算設(shè)備102a至102n可以是臺式個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、平板計(jì)算機(jī)、智能手機(jī)、個(gè)人數(shù)字助理(PDA)、數(shù)字圖象采集設(shè)備、手機(jī)或使設(shè)備或任何無線接入?yún)f(xié)議(WAP)使能設(shè)備或能夠直接或間接接入因特網(wǎng)或其它網(wǎng)絡(luò)連接的任何其它計(jì)算設(shè)備。用戶計(jì)算設(shè)備102a至102n可以運(yùn)行HTTP客戶端,例如瀏覽程序,比如微軟的Internet Explorer瀏覽器、Mozilla的火狐瀏覽器、歐朋瀏覽器、谷歌瀏覽器或針對手機(jī)、PDA或其它無線設(shè)備等支持WAP的瀏覽器,其允許視頻會議的參與者通過網(wǎng)絡(luò)115從組播流環(huán)境100接入、處理并查看信息、頁以及可獲得該信息、頁的應(yīng)用。
用戶計(jì)算設(shè)備102a至102n還包括諸如鍵盤、鼠標(biāo)、軌跡球、觸摸板、觸摸屏、觸筆等的一個(gè)或多個(gè)用戶接口設(shè)備,以便結(jié)合網(wǎng)頁、表格、應(yīng)用以及由組播流環(huán)境100或其它系統(tǒng)或服務(wù)器提供的其它信息與視頻會議界面進(jìn)行交互。例如,用戶計(jì)算設(shè)備102a至102n可以用于安排轉(zhuǎn)換、會議、執(zhí)行選擇、訪問組播流環(huán)境100涉及的數(shù)據(jù)和應(yīng)用,并且用于搜索存儲數(shù)據(jù)或者允許視頻會議參與者與各種視頻接口頁面進(jìn)行交互。
當(dāng)在組播流環(huán)境100中運(yùn)行時(shí),攝像機(jī)132a至132n可以從不同地點(diǎn)和/或用戶提供實(shí)況視頻饋送(即,音頻和圖像信息)。在一些實(shí)施方式中,攝像機(jī)132a至132n可以是任何類型的攝像機(jī),包括對整個(gè)可見光譜敏感的攝像機(jī),或者更典型地,對有限波段(例如,紅外(IR)波段或紫外波段)高度敏感的攝像機(jī)。更普遍地,此處的術(shù)語“攝像機(jī)”指的是能夠拍攝目標(biāo)的圖像并且以數(shù)字?jǐn)?shù)據(jù)的形式表現(xiàn)該圖像的任何設(shè)備(或設(shè)備組合)。例如,攝像機(jī)132a至132n可以是監(jiān)視攝像機(jī)或安裝在諸如建筑物或電線桿之類的結(jié)構(gòu)上的私人攝像機(jī)。在另一個(gè)示例中,攝像機(jī)132a至132n可以嵌入在上述用戶計(jì)算設(shè)備102a至102n,或者可以是能夠在電視會議期間傳輸視頻流的外圍設(shè)備。
在一些實(shí)施方式中,用戶計(jì)算設(shè)備102a至102n和攝像機(jī)132a至132n可以采用TCP/IP(傳送控制協(xié)議和互聯(lián)網(wǎng)協(xié)議)網(wǎng)絡(luò)與不同的服務(wù)器和處理器(104、112、116和126)進(jìn)行通信,并且在更高的網(wǎng)絡(luò)層級采用諸如HTTP、FTP、AFS和WAP等的其它公共互聯(lián)網(wǎng)協(xié)議來進(jìn)行通信。
在一個(gè)示例中采用的是HTTP,在組播流環(huán)境100中,用戶計(jì)算設(shè)備102a至102n和攝像機(jī)132a至132n可以包括用于發(fā)送/接收HTTP消息到/從HTTP服務(wù)器的HTTP客戶端。這樣的HTTP服務(wù)器可以實(shí)現(xiàn)為不同服務(wù)器和處理器與網(wǎng)絡(luò)115之間的唯一網(wǎng)絡(luò)接口,但是也可以采用其它技術(shù)。在一些實(shí)施方式中,不同服務(wù)器和處理器與網(wǎng)絡(luò)115之間的接口包括負(fù)載共享功能,例如在多個(gè)服務(wù)器上均勻地均衡負(fù)載并分配進(jìn)入的HTTP請求的循環(huán)HTTP請求分配器。
組播流環(huán)境100還實(shí)現(xiàn)諸如Jupiter Systems的Fusion Catalyst的顯示墻108,其由諸如Jupiter Systems的Fusion Catalyst的視頻切換矩陣來控制。顯示墻108促進(jìn)視頻會議的參與者之間的端對端會議討論,使得遠(yuǎn)程參與者可以從顯示墻108上廣播的多個(gè)視頻流(攝像機(jī)132a至132n)分享作為源和目的地的流。
在一個(gè)實(shí)施方式中,分組交換技術(shù)可以用來在顯示墻108上-例如跨越顯示墻108中多畫面的單一窗口或者在顯示墻108中分別呈現(xiàn)為不同畫面的獨(dú)立窗口-顯示任何信息源。在一個(gè)實(shí)施方式中,視頻切換矩陣支持客戶端軟件應(yīng)用并提供相關(guān)數(shù)據(jù)、代碼、表格、網(wǎng)頁和其它信息到/從用戶計(jì)算設(shè)備102a至102n以及攝像機(jī)132a至132n。
正交解碼器116被配置為基于與視頻流相關(guān)的編碼解碼程式接收并解碼壓縮的視頻流。這里所使用的術(shù)語“編碼解碼程式”指的是用來編碼(例如壓縮)或解碼(例如解壓縮)視頻幀的算法。在一個(gè)實(shí)施方式中,正交解碼器116可以是Jupiter Systems的Quad HD Decoder Card,其特征是具有四個(gè)獨(dú)立的解碼器,每一個(gè)解碼器可以處理各種格式和源類型的視頻流。在一個(gè)實(shí)施方式中,正交解碼器116可以支持MPEG-2、MPEG-4和H.264中的流,并且可以解碼并顯示來自網(wǎng)絡(luò)攝像機(jī)、NVR、桌面編碼器和視頻管理系統(tǒng)的流。在另一個(gè)實(shí)施方式中,正交解碼器116可以支持將源分辨率范圍從NTSC和PAL制式提高為全高清1080p。每一個(gè)解碼器可以具有其自己的千兆以太網(wǎng)連接,以確保每一個(gè)解碼器具有足夠帶寬來輕松處理帶寬高達(dá)20Mbps的任何流。此外,每一個(gè)解碼器可以支持所有的流格式和協(xié)議,自動適應(yīng)具體的流類型。
解壓縮器126根據(jù)解碼后的視頻流生成解壓縮后的視頻流。解壓縮后的視頻流可以存儲在提供給用于顯示等的輸出設(shè)備或其任何組合的特定流緩沖器中。
組播流環(huán)境100還包括用于分別地臨時(shí)存儲來自視頻流源132a至132n的每一個(gè)視頻流的多個(gè)特定流緩沖器122a至122n。參照圖2可以最好地理解緩沖器的運(yùn)行。圖2示意性地例示了緩沖器122a、122b、…122n及其來自視頻流源緩沖器132a、132b、…132n的相關(guān)聯(lián)的視頻流。在其它實(shí)施方式中,特定流緩沖器122a至122n用作接收并存儲通過視頻流通信的視頻幀的存儲器結(jié)構(gòu),諸如先入先出(FIFO)緩沖器。特別地,特定流緩沖器122a至122n存儲像素信息、運(yùn)動矢量信息以及表示一組用于顯示的視頻圖像的其它信息。在一個(gè)實(shí)施方式中,特定流緩沖器122a至122n可以存儲通過視頻流接收到的壓縮后的視頻幀以及已經(jīng)由正交解碼器116解碼的視頻幀。
在組播流環(huán)境100中,轉(zhuǎn)換器112提供額外的解碼、解壓縮和緩沖資源,以便在解碼、解壓縮和緩沖當(dāng)前視頻流時(shí)對后續(xù)視頻流進(jìn)行偽同時(shí)處理。轉(zhuǎn)換器112可以利用最先進(jìn)的圖形GPU架構(gòu),該GPU架構(gòu)包括能夠驅(qū)動高達(dá)2560×1600(雙鏈結(jié)DVI)分辨率的多個(gè)數(shù)字顯示或高達(dá)2048×1536分辨率的多個(gè)模擬顯示的輸出卡。在一個(gè)實(shí)施方式中,轉(zhuǎn)換器112可以具有11GB/s的內(nèi)部帶寬和每張卡256MB的GDDR3存儲器,以便在同時(shí)顯示多個(gè)視頻或計(jì)算機(jī)輸入時(shí)繪制復(fù)雜的應(yīng)用數(shù)據(jù)。在其它實(shí)施方式中,轉(zhuǎn)換器112可以是具有英特爾CPU和微軟Windows操作系統(tǒng)的PC,其具有兩個(gè)四核Xeon CPU和高達(dá)64GB的RAM。
在運(yùn)行期間,轉(zhuǎn)換器112使得當(dāng)在按計(jì)劃示出后續(xù)視頻流時(shí)通過切換對應(yīng)于當(dāng)前和后續(xù)視頻流的特定流緩沖器而在當(dāng)前視頻流和后續(xù)視頻流之間轉(zhuǎn)換時(shí),能夠即時(shí)顯示后續(xù)視頻流。在一個(gè)實(shí)施方式中,這是轉(zhuǎn)換器112通過修改對應(yīng)于當(dāng)前和后續(xù)視頻流的顯示層的z順序來實(shí)現(xiàn)的。在另一個(gè)實(shí)施方式中,這是轉(zhuǎn)換器112通過執(zhí)行當(dāng)前和后續(xù)視頻流的傳送的層2切換以傳送后續(xù)視頻流而非當(dāng)前視頻流用于顯示來實(shí)現(xiàn)的。在又一個(gè)實(shí)施方式中,這是轉(zhuǎn)換器112通過更新視頻切換矩陣以將后續(xù)視頻流而非當(dāng)前視頻流結(jié)合到顯示來實(shí)現(xiàn)的。
組播流工作流
圖2例示了可以應(yīng)用本文所公開的技術(shù)的示例工作流200的框圖。多個(gè)視頻流132a至132n通過網(wǎng)絡(luò)115傳送到網(wǎng)絡(luò)接口104,網(wǎng)絡(luò)接口104將這多個(gè)視頻流呈給正交解碼器116和解壓縮器126。在對壓縮的視頻流進(jìn)行解碼和解壓縮后,未壓縮的視頻幀被發(fā)送到各個(gè)特定流緩沖器122a至122n以進(jìn)一步處理,包括經(jīng)由轉(zhuǎn)換器112、通過顯示墻106的不同顯示(例如,顯示1-顯示8)傳輸這不同的視頻流132a至132n。顯示墻106將在控制室環(huán)境中發(fā)現(xiàn)的所有可視數(shù)據(jù)源合并,并將其顯示在虛擬顯示器上的可移動、可伸縮窗口中,該虛擬顯示器由多個(gè)輸出設(shè)備組成,即:監(jiān)視器、LCD平板、等離子體面板、投影立方體或背投系統(tǒng)。數(shù)據(jù)源可以包括本地應(yīng)用、遠(yuǎn)程網(wǎng)絡(luò)應(yīng)用、遠(yuǎn)程網(wǎng)絡(luò)RGB流、壓縮的網(wǎng)絡(luò)視頻流、直接連接的SD和HD視頻、VGA以及DVI輸入。
在其它實(shí)施方式中,不同的視頻流132a至132n被傳輸?shù)街T如計(jì)算機(jī)顯示器的顯示設(shè)備,各自顯示在顯示面上自己的窗口中。在又一個(gè)實(shí)施方式中,壓縮的幀無需顯示,但是可以被發(fā)送以例如在安全系統(tǒng)中進(jìn)一步處理,其中所述處理將包括出于身份鑒定目的而進(jìn)行面部識別。
雖然本示例包括六個(gè)視頻流,但是本公開的技術(shù)被設(shè)計(jì)為對于任何數(shù)量的視頻流都起作用,典型地,能夠保持多于當(dāng)前可得到的解壓縮資源。在某些情況下,實(shí)際可以使用多達(dá)50個(gè)甚至100個(gè)視頻流。在其他情況下,只可能處理少至2個(gè)或3個(gè)視頻流,并且如果諸如通用CPU的解壓縮資源被無關(guān)的工作負(fù)載共享,則僅可能處理1個(gè)視頻流。該范圍考慮到可利用的資源以及施加的負(fù)載。第一,解壓縮資源可以包括小至一臺個(gè)人計(jì)算機(jī)或者大至具有專用硬件的高性能商業(yè)服務(wù)器。第二,進(jìn)入的視頻流所施加的負(fù)載在正常使用過程中可以徹底變化,這取決于有多少視頻流源是流媒體圖像、所述圖像的復(fù)雜度及其變化速率。第三,解壓縮資源可以包括正在運(yùn)行與視頻處理無關(guān)的其它處理的諸如便攜式或臺式計(jì)算機(jī)的通用計(jì)算機(jī),可以使用計(jì)算機(jī)的廣泛變化數(shù)量的處理能力來進(jìn)行視頻處理。
在通過本公開的技術(shù)來解決的環(huán)境中,對于總的可利用解壓縮資源是有限制的。例如,復(fù)雜度不斷增大的視頻流-諸如具有增大的比特率或分辨率的視頻流-以及視頻流的增加將增大解壓縮負(fù)載。因此,隨著負(fù)載的增大,可用于每個(gè)流的解壓縮資源將變少。在某些時(shí)候,解壓縮資源可能變得超負(fù)荷,并且一個(gè)或多個(gè)視頻流將沒有足夠的解壓縮資源來解壓縮所有輸入幀。如果是基于FIFO來處理幀,則解壓縮幀相對于其對應(yīng)的顯示時(shí)間滯后。在某些情況下,最終圖像(比如顯示器上的圖像)可能出現(xiàn)像素化、可能不定期地顯示并且可能偶爾出現(xiàn)凍結(jié)現(xiàn)象。通過檢測解壓縮資源變得超負(fù)荷這一情況并且通過丟幀來減輕這種情況,可以避免或者至少在某種程度上緩解上述問題。
偽同時(shí)處理
圖3至圖5突出了所公開的利用專用處理資源的視頻流的偽同時(shí)處理不同于減少切換延遲的現(xiàn)有方案。
圖3示出了在使得壓縮視頻流之間的平滑轉(zhuǎn)換的時(shí)移模式中對當(dāng)前和后續(xù)視頻流的偽同時(shí)處理300的一個(gè)實(shí)施方式。特別地,圖3例示了通過兩種圖形處理單元301和303分別對兩個(gè)不同的視頻流、即當(dāng)前視頻流132a和后續(xù)視頻流132b的視頻流處理。在其它實(shí)施方式中,視頻流132a和132b可以由同一GPU來處理。
在其它實(shí)施方式中,處理300可以不具有與如上所列相同的操作、要素或組件并且/或者可以具有代替如上所列或除如上所列之外的其它/不同的操作、要素或組件。不同的操作、要素或組件可以組合成單個(gè)軟件模塊,并且多個(gè)軟件模塊可以在同一硬件上運(yùn)行。
在時(shí)間t1和操作302,由GPU 301對當(dāng)前視頻流132a進(jìn)行解碼。
在稍后的時(shí)間t1+x和操作312,由GPU 303對后續(xù)視頻流132b進(jìn)行解碼?!皒”指的是相對于當(dāng)前視頻流132a的解碼的開始或完成的處理起始延遲。處理起始延遲表示后續(xù)視頻流的觸發(fā)處理相對于當(dāng)前流的觸發(fā)處理的延遲。雖然,根據(jù)一個(gè)實(shí)施方式,在某些時(shí)候,后續(xù)視頻流是與當(dāng)前視頻流偽同時(shí)處理的。此處,x可以是能夠采用任何合適的單位-比如秒、微秒等-來測量的任何時(shí)間值。在其它實(shí)施方式中,在開始或完成當(dāng)前視頻流132a的解壓縮、緩沖或顯示后,后續(xù)視頻流132b的解碼開始時(shí)移。
在時(shí)間t2和操作304,由GPU 301對當(dāng)前視頻流132a進(jìn)行解壓縮。
在稍后的時(shí)間t2+x和操作314,由GPU 303對后續(xù)視頻流132b進(jìn)行解壓縮?!皒”指相對于當(dāng)前視頻流132a的解壓縮的開始或完成的處理-起始延遲。在其它實(shí)施方式中,在開始或完成當(dāng)前視頻流132a的解碼、緩沖或顯示后,后續(xù)視頻流132b的解壓縮開始時(shí)移。
在時(shí)間t3和操作306,由GPU 301對當(dāng)前視頻流132a進(jìn)行緩沖。
在稍后的時(shí)間t3+x和操作316,由GPU 303對后續(xù)視頻流132b進(jìn)行緩沖?!皒”指相對于當(dāng)前視頻流132a的緩沖的開始或完成的處理-起始延遲。在其它實(shí)施方式中,在開始或完成當(dāng)前視頻流132a的解碼、解壓縮或顯示后,后續(xù)視頻流132b的緩沖開始時(shí)移。
在時(shí)間t3和操作306,由GPU 301對當(dāng)前視頻流132a進(jìn)行緩沖。
在稍后的時(shí)間t3+x和操作316,由GPU 303對后續(xù)視頻流132b進(jìn)行緩沖?!皒”指相對于當(dāng)前視頻流132a的緩沖的開始或完成的處理-起始延遲。在其它實(shí)施方式中,在開始或完成當(dāng)前視頻流132a的解碼、解壓縮或顯示后,后續(xù)視頻流132b的緩沖開始時(shí)移。
在時(shí)間t4和操作308,由GPU 301通過特定界面對當(dāng)前視頻流132a進(jìn)行顯示。
在稍后的時(shí)間t4+y和操作318,由GPU 303響應(yīng)于切換命令通過同一特定界面對后續(xù)視頻流132b進(jìn)行顯示?!皔”指相對于通過特定界面顯示當(dāng)前視頻流132a的顯示延遲。在一個(gè)實(shí)施方式中,處理-起始延遲x和顯示延遲y之間的差別在于處理-起始延遲x取決于后續(xù)視頻流132b的關(guān)鍵幀之間的時(shí)間間隔,如在以下對圖4的討論中所描述。
在一個(gè)實(shí)施方式中,本公開的技術(shù)使得:當(dāng)檢測到視頻流的關(guān)鍵幀時(shí),通過執(zhí)行切換,壓縮視頻流在組播流環(huán)境中能夠平滑地轉(zhuǎn)換,而不會降低視頻質(zhì)量。在這樣的實(shí)施方式中,由于客戶端不需要正確的基礎(chǔ)樣本來顯示該樣本,所以客戶端就不會發(fā)生視頻質(zhì)量損失。然而,等待關(guān)鍵幀會導(dǎo)致切換延遲,使得切換不即時(shí)。例如,每八幀具有一個(gè)關(guān)鍵幀的視頻幀的最大延遲大約是三分之一秒。本公開的技術(shù)通過在利用額外的處理資源進(jìn)行切換之前預(yù)加載或預(yù)緩沖視頻流,使得后續(xù)視頻流的關(guān)鍵幀在切換時(shí)可得,并且不會由于等待關(guān)鍵幀而產(chǎn)生切換延遲,從而解決了這一問題。
圖4例示了評價(jià)(400)關(guān)鍵幀之間的時(shí)間間隔并且基于評價(jià)的時(shí)間間隔來計(jì)劃切換的一個(gè)實(shí)施方式。特別地,當(dāng)遇到后續(xù)視頻流的關(guān)鍵幀時(shí),轉(zhuǎn)換器112在當(dāng)前視頻流132a和后續(xù)視頻流132b之間進(jìn)行切換。如圖4所示,后續(xù)視頻流132b包括兩個(gè)關(guān)鍵幀和多個(gè)中間幀。來自關(guān)鍵幀的數(shù)據(jù)被預(yù)緩沖在上述的特定流緩沖器122a至122n的一個(gè)之中。特定流緩沖器122a至122n的每一個(gè)存儲有來自關(guān)鍵幀的關(guān)鍵幀數(shù)據(jù)以及來自中間幀的中間幀數(shù)據(jù)。
在其它實(shí)施方式中,評價(jià)400可以不具有和如上所列相同的操作、要素或組件并且/或者可以具有代替如上所列或除如上所列之外的其它/不同的操作、要素或組件。不同的操作、要素或組件可以組合成單個(gè)軟件模塊,并且多個(gè)軟件模塊可以在同一硬件上運(yùn)行。
圖4例示了后續(xù)視頻流132b中的關(guān)鍵幀之間的時(shí)間間隔是10秒鐘。因此,在操作402對當(dāng)前視頻流132a的處理與在操作404對后續(xù)視頻流132b的處理之間的處理-起始延遲x應(yīng)該至少是10秒鐘或者更多,以便能夠檢測后續(xù)視頻流132b的至少一個(gè)關(guān)鍵幀。這樣的時(shí)控預(yù)加載或預(yù)緩沖方法允許在任何時(shí)間而不是僅僅在遇到后續(xù)視頻流的關(guān)鍵幀時(shí)在當(dāng)前視頻流132a和后續(xù)視頻流132b之間進(jìn)行平滑轉(zhuǎn)換。
圖5是修改(500)組播流環(huán)境中的不同壓縮視頻流的z順序以能夠在壓縮視頻流之間進(jìn)行即時(shí)切換的一個(gè)實(shí)施方式。特別地,圖5示出了組播流環(huán)境100的三種狀態(tài)502、504和506。在穩(wěn)定狀態(tài)502,來自三個(gè)不同的視頻流源132a、132b和132c的視頻流被正交解碼器解碼并且被布置為三個(gè)通過可視散列(visual hashing)區(qū)分的不同窗口層。然后視頻切換矩陣將窗口層傳送到一個(gè)或多個(gè)雙DVI輸出端口,并將其轉(zhuǎn)發(fā)到顯示墻106。顯示墻106通過界面D1、D2和D3分別顯示三個(gè)視頻流132a、132b和132c。
在其它實(shí)施方式中,修改(500)可以不具有和如上所列相同的狀態(tài)、順序、操作、要素或組件并且/或者可以具有代替如上所列或除如上所列之外的其它/不同的狀態(tài)、順序、操作、要素或組件。不同的狀態(tài)、順序、操作、要素或組件可以組合成單個(gè)軟件模塊,并且多個(gè)軟件模塊可以在同一硬件上運(yùn)行。
DVI輸出端口上的窗口層的順序決定了哪些視頻流顯示在顯示墻106的哪些界面。這種順序被稱為“z順序”,其可以被修改以改變DVI輸出端口上的窗口層的布置,并且反過來根據(jù)需要使得在視頻流132a、132b、132c和132d之間進(jìn)行平滑轉(zhuǎn)換。這種平滑轉(zhuǎn)換是在切換準(zhǔn)備狀態(tài)504開始的,在切換準(zhǔn)備狀態(tài)504中,第四視頻流132d被加入到組播流環(huán)境100。當(dāng)其它視頻流132a、132b和132c通過顯示墻106顯示時(shí),對第四視頻流132d進(jìn)行偽同時(shí)處理。對第四視頻流132d進(jìn)行偽同時(shí)后臺處理生成了第四視頻流132d的窗口層,該窗口層置于待替換的視頻流、即圖5中的第三視頻流132c的當(dāng)前顯示的窗口層的后面,該第三視頻流132c饋入界面D3。在切換準(zhǔn)備狀態(tài)504期間,由于在雙DVI輸出端口處的窗口層的z順序保持不變,所以第四視頻流132d的新放置的窗口層尚未通過界面D3顯示。
在切換狀態(tài)506,在雙DVI輸出端口處的窗口層的z順序被修改,使得第三視頻流132c的窗口層被替換為第四視頻流132d的窗口層。因此,第四視頻流132d通過界面D3被即時(shí)顯示,這是由于在組播流環(huán)境100進(jìn)入切換狀態(tài)506之前足以生成第四視頻流132d的窗口層。此后,刪除第三視頻流132c的在前顯示的窗口層。
流程圖
圖6是在壓縮視頻流之間平滑地轉(zhuǎn)換的一種典型方法600。流程圖600可以利用計(jì)算機(jī)或其它數(shù)據(jù)處理系統(tǒng)來被至少部分地實(shí)現(xiàn),例如,通過被構(gòu)造為接收或檢索信息、處理信息、存儲結(jié)果并傳送所述結(jié)果的一個(gè)或多個(gè)處理器來實(shí)現(xiàn)。其它實(shí)施方式可以以不同順序并且/或者以比起圖6中所例示的實(shí)施方式不同的、較少的或額外的操作來執(zhí)行操作。在一些實(shí)施方式中可以合并多個(gè)操作。為方便起見,參照執(zhí)行方法的系統(tǒng)來對該流程圖進(jìn)行描述。系統(tǒng)并不一定是方法的部分。
在本部分和本公開技術(shù)的其它部分中所描述的方法可以包括一個(gè)或多個(gè)以下特征和/或結(jié)合公開的附加方法所描述的特征。為了簡明起見,對于在本申請中公開的特征的組合,既不分別枚舉,也不對每一個(gè)基本的特征集進(jìn)行重復(fù)描述。讀者將理解,如何容易地將在該方法中識別的特征與識別為例如組播流環(huán)境、組播流工作流、偽同時(shí)處理或計(jì)算機(jī)系統(tǒng)的實(shí)施方式的基本特征集結(jié)合。
在操作602,計(jì)劃壓縮視頻流之間的轉(zhuǎn)換以在顯示的區(qū)域中示出。在一個(gè)實(shí)施方式中,由管理員使用如上所述的用戶計(jì)算設(shè)備來計(jì)劃轉(zhuǎn)換。
在操作612,在解碼、解壓縮并緩沖第一視頻流以便顯示的同時(shí),在按計(jì)劃示出第二視頻流前的預(yù)定時(shí)間開始解碼、解壓縮并緩沖第二視頻流。這是通過采用另外一組解碼邏輯和工作存儲器以影響從第一視頻流至第二視頻流的即時(shí)切換來實(shí)現(xiàn)的。這包括應(yīng)用處理時(shí)間延遲,以偽同時(shí)或同時(shí)使用多個(gè)解碼邏輯和工作存儲單元來處理針對同一顯示的第一視頻流和第二視頻流,使得在按計(jì)劃發(fā)生切換前開始解碼第二視頻流。
在操作622,在按計(jì)劃示出第二視頻流時(shí)在顯示第一視頻流與顯示第二視頻流的緩沖器之間切換,從而使第二視頻流無需延遲而即時(shí)顯示。在一個(gè)實(shí)施方式中,在針對第一視頻流與第二視頻流的緩沖器之間切換還包括:修改對應(yīng)于第一視頻流和第二視頻流的顯示層的z順序,從而圖形卡組成使得第二視頻流而非第一視頻流可見的顯示。
在另一個(gè)實(shí)施方式中,在針對第一視頻流與第二視頻流的緩沖器之間切換還包括:第一視頻流和第二視頻流的輸送的層2切換,以輸送第二視頻流而非第一視頻流用于顯示。在又一個(gè)實(shí)施方式中,在針對第一視頻流與第二視頻流的緩沖器之間切換還包括:更新視頻切換矩陣,以將第二視頻流而非第一視頻流結(jié)合到顯示。
方法600還包括:評價(jià)第二視頻流中關(guān)鍵幀之間的時(shí)間間隔并且至少部分地基于時(shí)間間隔來選擇預(yù)定時(shí)間。
在多對第一視頻流和第二視頻流的情況下,方法600還包括:對計(jì)劃的第一視頻流與第二視頻流之間的轉(zhuǎn)換排序,以減少在第一視頻流的解碼與第二視頻流的解碼之間同時(shí)轉(zhuǎn)換的視頻流的數(shù)量。
本部分中描述的方法的其他實(shí)施方式可以包括存儲有用以執(zhí)行上述任何方法的處理器可執(zhí)行指令的非暫時(shí)性計(jì)算機(jī)可讀存儲介質(zhì)。本部分中描述的方法的又一個(gè)實(shí)施方式可以包括系統(tǒng),該系統(tǒng)包括存儲器以及可操作以執(zhí)行存儲在存儲器中的用以執(zhí)行上述任何方法的指令的一個(gè)或多個(gè)處理器。
計(jì)算機(jī)系統(tǒng)
圖7是在壓縮視頻流之間平滑地轉(zhuǎn)換的一種示例計(jì)算機(jī)系統(tǒng)700的框圖。計(jì)算機(jī)系統(tǒng)700通常包括經(jīng)由總線子系統(tǒng)712與多個(gè)外圍設(shè)備進(jìn)行通信的至少一個(gè)處理器714。這些外圍設(shè)備可以包括存儲子系統(tǒng)724、用戶接口輸入設(shè)備722、用戶接口輸出設(shè)備718以及網(wǎng)絡(luò)接口子系統(tǒng)104,所述存儲子系統(tǒng)724包括例如存儲設(shè)備和文件存儲子系統(tǒng)。輸入和輸出設(shè)備允許與計(jì)算機(jī)系統(tǒng)700的用戶交互。網(wǎng)絡(luò)接口子系統(tǒng)104為外部網(wǎng)絡(luò)提供接口,包括其它計(jì)算機(jī)系統(tǒng)中對應(yīng)接口設(shè)備的接口。應(yīng)用服務(wù)器720可以是允許計(jì)算機(jī)系統(tǒng)700的諸如硬件和/或軟件(例如操作系統(tǒng))的應(yīng)用運(yùn)行的架構(gòu)。
用戶接口輸入設(shè)備722可以包括鍵盤;諸如鼠標(biāo)、軌跡球、觸摸板或圖形板的指針設(shè)備;掃描儀;并入顯示器中的觸摸屏;諸如語音識別系統(tǒng)和麥克風(fēng)的音頻輸入設(shè)備;以及其它類型的輸入設(shè)備。通常,使用術(shù)語“輸入設(shè)備”意在包括將信息輸入到計(jì)算機(jī)系統(tǒng)700的所有可能類型的設(shè)備和方法。
用戶接口輸出設(shè)備718可以包括顯示子系統(tǒng)、打印機(jī)、傳真機(jī)或諸如音頻輸出設(shè)備的非可視顯示器。顯示子系統(tǒng)可以包括陰極射線管(CRT)、諸如液晶顯示器(LCD)之類的平板設(shè)備、投影設(shè)備或用來生成可見圖像的一些其它機(jī)構(gòu)。顯示子系統(tǒng)還可以提供諸如音頻輸出設(shè)備之類的非可視顯示器。通常,使用術(shù)語“輸出設(shè)備”意在包括將信息從計(jì)算機(jī)系統(tǒng)700輸出給用戶或另一個(gè)機(jī)器或計(jì)算機(jī)系統(tǒng)的所有可能類型的設(shè)備和方法。
存儲子系統(tǒng)724存儲有可編程數(shù)據(jù)結(jié)構(gòu),其提供本文所描述的一些或所有模塊和方法的功能。這些軟件模塊通常由處理器714單獨(dú)執(zhí)行或結(jié)合其它處理器來執(zhí)行。
存儲子系統(tǒng)中所用的存儲器子系統(tǒng)726可以包括多個(gè)存儲器,其包括用于在程序執(zhí)行期間存儲指令和數(shù)據(jù)的主要隨機(jī)存取存儲器(RAM)734以及存儲有固定指令的只讀存儲器(ROM)732。文件存儲子系統(tǒng)728可以對程序和數(shù)據(jù)文件進(jìn)行永久存儲,并且可以包括硬盤驅(qū)動器、連同相關(guān)可移除介質(zhì)的軟盤驅(qū)動器、CD-ROM驅(qū)動器、光盤驅(qū)動器或可移除介質(zhì)盒。實(shí)現(xiàn)特定實(shí)施方式的功能的模塊可被文件存儲子系統(tǒng)728存儲在存儲子系統(tǒng)724或者處理器可訪問的其它機(jī)器中。
總線子系統(tǒng)712提供允許計(jì)算機(jī)系統(tǒng)700的各個(gè)組件和子系統(tǒng)如期望那樣彼此通信的機(jī)構(gòu)。雖然總線子系統(tǒng)712示意性地示出為單根總線,但是總線子系統(tǒng)的替代實(shí)施方式可以采用多根總線。
計(jì)算機(jī)系統(tǒng)700可以是不同類型的計(jì)算機(jī)系統(tǒng),包括工作站、服務(wù)器、計(jì)算集群、刀片式服務(wù)器、服務(wù)器農(nóng)場或任何其它數(shù)據(jù)處理系統(tǒng)或計(jì)算設(shè)備。由于計(jì)算機(jī)和網(wǎng)絡(luò)不斷變化的性質(zhì),在圖7中對計(jì)算機(jī)系統(tǒng)700的描述僅用于一個(gè)示例。計(jì)算機(jī)系統(tǒng)700的許多其它配置可能具有比圖7中所描述的計(jì)算機(jī)系統(tǒng)更多或者更少的組件。
本文所采用的術(shù)語和表達(dá)是用作描述性的術(shù)語和表達(dá)而不是限制性的,而且,在應(yīng)用這些術(shù)語和表達(dá)時(shí)并沒有要排除示出或描述的特征的任何等同特征(或因此的部分)的意圖。此外,已經(jīng)描述了本公開的技術(shù)的某些實(shí)施方式,對本技術(shù)領(lǐng)域的普通技術(shù)人員而言顯而易見的是,在不偏離本公開的技術(shù)的精神和范圍的情況下,可以采用合并了本文所公開的概念的其它實(shí)施方式。因此,所描述的實(shí)施方式在各方面都被認(rèn)為僅是說明性的而非限制性的。