午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

視頻優(yōu)化媒體流部件的數(shù)據(jù)流結(jié)構(gòu)的制作方法

文檔序號(hào):6410116閱讀:333來(lái)源:國(guó)知局
專利名稱:視頻優(yōu)化媒體流部件的數(shù)據(jù)流結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于傳送多媒體數(shù)據(jù)的系統(tǒng),特別是涉及一種用最小緩沖區(qū)同時(shí)為多個(gè)終端提供視頻的交互式視頻服務(wù)器系統(tǒng)。
目前播放電影與電視所使用的技術(shù)還相當(dāng)落后。主要的存儲(chǔ)介質(zhì)是諸如VHS錄像/放像機(jī)的模擬帶,并且發(fā)展到電視播放和廣播中使用的高質(zhì)量、高成本D1VTR帶。該項(xiàng)技術(shù)中存在許多問(wèn)題。這樣的問(wèn)題包括需要人工裝帶;損壞機(jī)械部件、磁頭、及磁帶本身;而且費(fèi)用較高。一個(gè)非常重要的困撓廣播站的問(wèn)題是VTR只能順序地在一個(gè)時(shí)刻完成一項(xiàng)功能。每一磁帶設(shè)備要花費(fèi)7萬(wàn)5千至15萬(wàn)美元。
電視臺(tái)想通過(guò)廣告增加其收入。這只不過(guò)是將特殊的廣告(一些短電影)加到標(biāo)準(zhǔn)的節(jié)目中,從而將每一城市看作一獨(dú)立的市場(chǎng)。但是用磁帶技術(shù)來(lái)實(shí)現(xiàn)上述目標(biāo)的話,即使是非常昂貴的數(shù)字D1帶系統(tǒng)或磁帶自動(dòng)機(jī)來(lái)說(shuō)都是困難的。
用于將多媒體數(shù)據(jù)傳送到最終用戶的傳統(tǒng)方法可分為兩種。一種是廣播工業(yè)方法,另一種是計(jì)算機(jī)工業(yè)方法。廣播方法(包括動(dòng)畫、有線電視、電視網(wǎng)絡(luò)和錄像工業(yè))一般用模機(jī)或數(shù)字式錄像帶進(jìn)行存儲(chǔ)。播放帶時(shí)會(huì)產(chǎn)生等時(shí)數(shù)據(jù)流,然后這種等時(shí)數(shù)據(jù)流會(huì)通過(guò)廣播工業(yè)設(shè)備傳送給最終用戶。計(jì)算機(jī)方法一般用磁盤或者有磁帶輔助的磁盤進(jìn)行存儲(chǔ),并且以經(jīng)壓縮的數(shù)字格式例如DVI,JPEG與MPEG來(lái)記錄數(shù)據(jù)。計(jì)算機(jī)根據(jù)要求將非等時(shí)數(shù)據(jù)流傳送給最終用戶,其中硬件緩存和特殊的應(yīng)用代碼使數(shù)據(jù)流平滑,從而提供連續(xù)的視聽(tīng)。
由于存儲(chǔ)介質(zhì)的費(fèi)用問(wèn)題,一直認(rèn)為視頻磁帶子系統(tǒng)同計(jì)算機(jī)磁盤子系統(tǒng)相比具有費(fèi)用上的優(yōu)勢(shì)。但是,視頻磁帶子系統(tǒng)具有磁帶管理、訪問(wèn)等待和可靠性相對(duì)較低等缺點(diǎn)。隨著計(jì)算機(jī)存儲(chǔ)器價(jià)格降低,以及實(shí)時(shí)數(shù)字壓縮/解壓縮技術(shù)的發(fā)展,視頻磁帶子系統(tǒng)的缺點(diǎn)日益突出。
雖然計(jì)算機(jī)子系統(tǒng)的復(fù)合價(jià)格/性能比已有所改進(jìn),但是,人們一般仍不把其視為“視頻友好(Video friendly)”。計(jì)算機(jī)主要與工作站和其它具有接口和被稱之為“非等時(shí)”協(xié)議的計(jì)算機(jī)終端相接。為了確保把平滑(等時(shí))的多媒體數(shù)據(jù)傳送到最終用戶,計(jì)算機(jī)系統(tǒng)需要特殊的應(yīng)用代碼和較大的緩存,以克服傳統(tǒng)通信方法所固有的缺點(diǎn)。另外,計(jì)算機(jī)不具備視頻友好特性,這表現(xiàn)在它們?nèi)狈εc多媒體工業(yè)中處理等時(shí)數(shù)據(jù)流和以高的精度在數(shù)據(jù)流之間進(jìn)行切換的設(shè)備相兼容的接口。
隨著使用計(jì)算機(jī)對(duì)視頻資料按數(shù)字格式進(jìn)行壓縮和存儲(chǔ)的出現(xiàn),在一些諸如電視廣播、室內(nèi)電影制作、通過(guò)電話“點(diǎn)播電視”和旅館中的按次付費(fèi)(pay-per-View)電影等主要行業(yè)中已開(kāi)始出現(xiàn)變革。壓縮技術(shù)已發(fā)展到能使壓縮比率達(dá)到100倍至180倍。這樣的壓縮比率使得可以用隨機(jī)訪問(wèn)磁盤技術(shù)替代現(xiàn)有的磁帶系統(tǒng)。
隨著有能力隨機(jī)訪問(wèn)數(shù)字磁盤數(shù)據(jù)及磁盤系統(tǒng)具有較高的帶寬,磁盤技術(shù)的性能、硬件造價(jià)、和可擴(kuò)充性可以滿足系統(tǒng)在功能與性能上的需求。在過(guò)去,由于存儲(chǔ)器的價(jià)格問(wèn)題,使用磁盤文件存儲(chǔ)視頻和電影被認(rèn)為是不可行的。近來(lái),價(jià)格已有較大幅度的下降。
由于許多使用MPEG標(biāo)準(zhǔn)壓縮視頻數(shù)據(jù)的新興市場(chǎng)的出現(xiàn),有了一些具有好的性能價(jià)格比的存儲(chǔ)視頻數(shù)據(jù)的方法。本發(fā)明提出一種可滿足多種不同需求的分級(jí)方案,并產(chǎn)生一種能夠客戶化以滿足市場(chǎng)需要的模塊化系統(tǒng)方法。
本發(fā)明提供一種“視頻友好”的計(jì)算機(jī)子系統(tǒng),它能夠在多媒體環(huán)境下通過(guò)該工業(yè)中傳統(tǒng)的接口傳送等時(shí)數(shù)據(jù)流。根據(jù)本發(fā)明的一媒體流部件(steamer)以最優(yōu)方式傳送等時(shí)數(shù)據(jù)流,并且用異步傳輸方式(ATM)技術(shù)將數(shù)據(jù)送到新的計(jì)算機(jī)網(wǎng)絡(luò)中。本發(fā)明在提供用于系統(tǒng)控制的磁帶錄像機(jī)(VTR)隱喻時(shí)可消除錄像帶的缺點(diǎn)。根據(jù)本發(fā)明的系統(tǒng)具有下述特性按比例將1-1000秒的獨(dú)立的受控?cái)?shù)據(jù)流傳送到最終用戶;能夠傳送許多來(lái)自一個(gè)數(shù)據(jù)備份的等時(shí)數(shù)據(jù)流;混合型輸出接口;混合型數(shù)據(jù)速率;一簡(jiǎn)單的“開(kāi)放式系統(tǒng)”控制接口;自動(dòng)控制支持,存儲(chǔ)分級(jí)支持以及傳送每一數(shù)據(jù)流的低成本。
根據(jù)本發(fā)明一個(gè)方面的媒體流部件包括至少一個(gè)由海量存儲(chǔ)器構(gòu)成的存儲(chǔ)節(jié)點(diǎn),該海量存儲(chǔ)器用于存儲(chǔ)至少一個(gè)視頻圖像的數(shù)字化表示。該媒體流部件還包括多個(gè)通信節(jié)點(diǎn),每一節(jié)點(diǎn)至少有一輸入端口耦合到至少一個(gè)存儲(chǔ)節(jié)點(diǎn)的輸出端,以接收該存儲(chǔ)節(jié)點(diǎn)上視頻圖像的數(shù)字化表示。多個(gè)通信節(jié)點(diǎn)的每一個(gè)進(jìn)一步包括多個(gè)輸出端口,多個(gè)輸出端口的每一個(gè)都能將數(shù)字化表示以數(shù)據(jù)流方式發(fā)送給該數(shù)字化表示的用戶。單個(gè)輸出端口都有一相關(guān)數(shù)據(jù)緩存,用于在發(fā)送數(shù)字化表示之前緩存部分?jǐn)?shù)字化表示。
多個(gè)通信節(jié)點(diǎn)的每一個(gè)進(jìn)一步包括一調(diào)度器,為單個(gè)數(shù)據(jù)緩存向至少一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)出讀請(qǐng)求,以在單個(gè)數(shù)據(jù)緩存中存儲(chǔ)下一順序部分?jǐn)?shù)字表示。每一個(gè)特定的數(shù)據(jù)緩存的讀請(qǐng)求都被安排在一預(yù)定時(shí)間,以使數(shù)字化表示的下一個(gè)被請(qǐng)求的順序部分在被要求從被安排了讀請(qǐng)求的數(shù)據(jù)緩存的相關(guān)輸出端口發(fā)送之前可用于一請(qǐng)求通信節(jié)點(diǎn)。
至少有一個(gè)存儲(chǔ)節(jié)點(diǎn)還包括一用于向海量存儲(chǔ)器發(fā)出讀請(qǐng)求的調(diào)度器。對(duì)該讀請(qǐng)求的調(diào)度使數(shù)字化表示的下一順序部分在至少一個(gè)存儲(chǔ)節(jié)點(diǎn)從所述通信節(jié)點(diǎn)上接收到讀該部分的請(qǐng)求之前可用于輸出。
單個(gè)通信節(jié)點(diǎn)的調(diào)度器調(diào)度讀請(qǐng)求,以使在任意一給定時(shí)刻,在至少一個(gè)存儲(chǔ)節(jié)點(diǎn)上只有一個(gè)來(lái)自單個(gè)通信節(jié)點(diǎn)的讀請(qǐng)求未決。
本發(fā)明還披露了將用于發(fā)送和接收視頻數(shù)據(jù)的盤存儲(chǔ)單元優(yōu)化的技術(shù)。


圖1是根據(jù)本發(fā)明的一媒體流部件的框圖,圖1A是進(jìn)一步描述圖1中所示的一線路轉(zhuǎn)接器的框圖;圖1B是進(jìn)一步描述圖1中所示的一磁帶存儲(chǔ)節(jié)點(diǎn)細(xì)節(jié)的框圖;圖1C是進(jìn)一步描述圖1中所示的一磁盤存儲(chǔ)節(jié)點(diǎn)細(xì)節(jié)的框圖;圖1D是進(jìn)一步描述圖1中所示的一通信節(jié)點(diǎn)細(xì)節(jié)的框圖2給出了以高優(yōu)先級(jí)執(zhí)行的視頻流輸出控制命令表和另一個(gè)以低優(yōu)先級(jí)執(zhí)行的數(shù)據(jù)管理命令表;圖3是描述通信節(jié)點(diǎn)數(shù)據(jù)流的框圖圖4是描述磁盤存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)流的框圖;圖5描述了用于完成連接的控制信息流;圖6描述了用于開(kāi)始播放的控制信息流;圖7描述了媒體流部件與客戶控制系統(tǒng)之間接口,圖8描述了一顯示屏,用于顯示操作媒體流部件的多個(gè)“軟”鍵;圖9描述一裝入選擇屏,當(dāng)選擇了圖8中的裝入軟鍵,顯示該屏;圖10描述一批處理選擇屏,當(dāng)選擇圖8中的批處理鍵,顯示該屏;圖11描述了一客戶控制系統(tǒng)與媒體流部件之間存在的一些客戶/服務(wù)關(guān)系;圖12描述了用于訪問(wèn)視頻數(shù)據(jù)并將其饋送到一個(gè)或多個(gè)輸出端口的現(xiàn)有技術(shù);圖13是一用于顯示多個(gè)視頻端口如何訪問(wèn)包含在一通信節(jié)點(diǎn)高速緩存中的單個(gè)視頻段的框圖;圖14是用于描述多個(gè)視頻端口如何直接訪問(wèn)包含在磁盤存儲(chǔ)節(jié)點(diǎn)上高速緩存中一視頻段的框圖;圖15描述了本發(fā)明所使用的一存儲(chǔ)分配模式;圖16描述了視頻1的分段邏輯文件;圖17描述了視頻1的各個(gè)段如何經(jīng)過(guò)多個(gè)磁盤驅(qū)動(dòng)器被分割或線程;圖18描述了在一存儲(chǔ)節(jié)點(diǎn)與一交叉型轉(zhuǎn)接器之間的一現(xiàn)有技術(shù)接口;圖19描述了圖18所示的先有技術(shù)轉(zhuǎn)接器接口是如何被修改以便為存儲(chǔ)節(jié)點(diǎn)提供擴(kuò)展輸出帶寬的;圖20描述了用于保證向一視頻輸出總線上輸出恒定視頻的過(guò)程;圖21是用于描述用于將數(shù)字視頻數(shù)據(jù)轉(zhuǎn)換成模擬視頻數(shù)據(jù)的一視頻適配器的框圖;圖22是用于表示可以用SCSI總線命令控制圖21中所示視頻適配卡的控制模塊的框圖。
在以下說(shuō)明中使用的一些術(shù)語(yǔ)解釋如下AAL-5異步傳輸方式適應(yīng)層一5(ATM ADAPTATIONLAYER-5)指一適合數(shù)據(jù)傳送的ATM服務(wù)的多級(jí)。
ATM異步傳輸方式(ASYNCRONOUS TRAWSFERMODE)一種在局域網(wǎng)或廣域的(或同時(shí)兩種網(wǎng)中使用的高速轉(zhuǎn)接與傳送技術(shù)。它既可以傳送數(shù)據(jù)也可以傳送視頻/音頻。
Betacam一種專業(yè)質(zhì)量的模擬視頻格式。
CCIR601一種用于數(shù)字電視的標(biāo)準(zhǔn)分辨率。720×840(如NTSC)或720×576(如PAL)亮度,水平色度二次采樣2∶1。
CPU中央處理單元(CENTRAL PROCESSING UNIT)在計(jì)算機(jī)結(jié)構(gòu)中,處理計(jì)算機(jī)指令的主使。
CRC循環(huán)冗余校驗(yàn)(CYCLIC REDUNDANCY CHECK)。一種數(shù)據(jù)錯(cuò)誤檢測(cè)模式。
D1符合CCIR601的數(shù)字視頻記錄格式,在19mm視頻帶上記錄。
D2符合SMPTE244M的數(shù)字視頻記錄格式,在19mm視頻帶上記錄。
D3符合SMPTE 244m的數(shù)字視頻記錄格式。在1/2“視頻帶上記錄。
DASD直接存取存儲(chǔ)設(shè)備(DIRECT ACCESS STORAGEDEVICE)任何可編址的聯(lián)機(jī)數(shù)據(jù)存儲(chǔ)設(shè)備或CD-ROM播放器都可以是一DASD。可以與磁盤驅(qū)動(dòng)器同義使用。
DMA直接存儲(chǔ)器存取(DIRECT MEMORY ACCESS)一種在計(jì)算機(jī)結(jié)構(gòu)中傳送數(shù)據(jù)的方法,它不需要CPU來(lái)傳送數(shù)據(jù)。
DVI一種相對(duì)低質(zhì)量的數(shù)字視頻壓縮格式,通常用于將CD-ROM盤的視頻播放到計(jì)算機(jī)屏幕上。
E1相當(dāng)于T1的歐洲標(biāo)準(zhǔn)。
F1F0先進(jìn)先出(FIRSTIN FIRST OUT)一種按先進(jìn)先服務(wù)原則處理的隊(duì)列處理方法。
Genlock指與另一視頻信號(hào)同步的過(guò)程。在計(jì)算機(jī)捕捉視頻以使數(shù)字化處理與視頻信號(hào)掃描參數(shù)相同步時(shí)需要它。
I/O輸入/輸出(INPUT/OUTPUT)Isochronans用于描述時(shí)間敏感并且不間斷地發(fā)送的信息,實(shí)時(shí)發(fā)送的視頻與音頻都是等時(shí)的。
JPEG照像專家聯(lián)合組(JOINT PHOTOGRAPHICEXPERT GROUP)由國(guó)際標(biāo)準(zhǔn)化組織主辦的一工作委員會(huì),提出一用于計(jì)算機(jī)系統(tǒng)中靜止圖像數(shù)字壓縮的建議性通用標(biāo)準(zhǔn)。
KB千字節(jié)(KILO BYTES)1024個(gè)字節(jié)。
LAN局域網(wǎng)(LOCAL AREA NETWORK)將一英里或一英里內(nèi)的終端、計(jì)算機(jī)和外設(shè)用雙絞線、同軸電纜或光纖電纜連接,并在其上能夠高速傳送數(shù)據(jù)。
LRU最近最少使用(LEAST RECENTLY USED)。
MPEG活動(dòng)圖像專家組(NOVING PCTURE EXPERTSGROUP)由目標(biāo)標(biāo)準(zhǔn)化組織主辦的一個(gè)工作團(tuán)體,定義動(dòng)畫視頻/音頻的數(shù)字壓縮/解壓縮標(biāo)準(zhǔn)。MPEG-1是最初的并且正在使用的標(biāo)準(zhǔn)。MPEG-2將是下一個(gè)支持?jǐn)?shù)字化,靈活的和按比例視頻傳送的標(biāo)準(zhǔn)。它將覆蓋多分辨率、多位速率(比特率)和多種傳送機(jī)制。
MEPG-1,MEPG2參見(jiàn)MEPGMRU最近最多使用(MOST RECENTLY USED)。
MTNU下次使用前最長(zhǎng)時(shí)間(MOST TIME TO NEXTUSE。
NTSC format國(guó)家電視標(biāo)準(zhǔn)組織(NATIONALTELEVISION STRNDARDS COMMITTEE)在美國(guó)和日本所使用的彩色電視格式標(biāo)準(zhǔn)。
PAL format逐行倒相制(PHASE ALTE RNATTONLINE)在歐洲除法國(guó)以外所有國(guó)家所使用的彩色電視格式標(biāo)準(zhǔn)。
PC個(gè)人計(jì)算機(jī)(PERSONAL COMPUTER)一種可在家庭或公司中使用的、價(jià)格相比較低的計(jì)算機(jī)。
RAID廉價(jià)盤冗余陣列(REDUNDANT ARRAY OFINEXPENSIVE DISKS)一種存儲(chǔ)排列方式,它使幾個(gè)磁盤或光盤按串連方式工作,從而增加帶寬輸出,并且提供冗余備份。
SCSI小型計(jì)算機(jī)系統(tǒng)接口(SMALL COMPUTERSYSTEM INTERFACE)一種將外設(shè)和其控制器連到計(jì)算機(jī)上的工業(yè)標(biāo)準(zhǔn)。
SIF源輸入格式(SOURCE INPUT FORMAT)CCIR601分辨率的四分之一。
SMPTE動(dòng)畫圖像與電視工程師協(xié)會(huì)(SOCIETY OFMOTION PICTURE&TELEVISIOW ENGINEERS)。
SSA串行存儲(chǔ)器結(jié)構(gòu)(SERIAL STORAGEARCHITECTORE)一種將外設(shè)和其控制器連到計(jì)算機(jī)的標(biāo)準(zhǔn)??赡芴娲鶶CSI。
T1比特率為1.544兆位/秒的與電話網(wǎng)絡(luò)的數(shù)字接口。
TCP/IP發(fā)送控制協(xié)議/網(wǎng)間程序(TRANSMISSIOWCONTROL PROTOCOL/INTERNET PROGRAM)由美國(guó)國(guó)防部提出的一組用于通過(guò)網(wǎng)絡(luò)連接不相似的計(jì)算機(jī)的協(xié)議。
VHS垂直螺旋式掃描(VERTICAL HELICAL SCAN)一種用于在磁帶上記錄模擬視頻的通用格式。
VTR磁帶錄像機(jī)(VIDEO TAPE RECORDER)一種在磁帶上記錄視頻的設(shè)備。
VCR盒式錄像機(jī)(VIDEO CASSETTE RECOROER)同VTR。
A.總結(jié)構(gòu)圖1給出了一視頻優(yōu)化流服務(wù)器系統(tǒng)10(以下稱之為媒體流部件),該系統(tǒng)包括四個(gè)能夠提供可測(cè)性、高適用性和配置靈活性的結(jié)構(gòu)上分離的部件。其主要部件如下1)低等待轉(zhuǎn)接器12一個(gè)硬件/微代碼部件,其基本任務(wù)是在通信節(jié)點(diǎn)14、一個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)16、17以及一個(gè)或多個(gè)控制節(jié)點(diǎn)18之間傳送數(shù)據(jù)與控制信息。
2)通信節(jié)點(diǎn)14一個(gè)硬件/微代碼部件,其基本任務(wù)是通過(guò)外部定義的、通常為廣播業(yè)所熟知的NTSC、PAL、D1、D2等接口“播放”(等時(shí)地發(fā)送數(shù)據(jù))或“記錄”(等時(shí)地接收數(shù)據(jù))。與每個(gè)通信節(jié)點(diǎn)14的輸出端相連接的多個(gè)視頻端口15中包含有視頻卡、在該視頻卡中裝有數(shù)字—視頻接口。
3)存儲(chǔ)節(jié)點(diǎn)16、17一硬件/微代碼部件,其基本任務(wù)是管理存儲(chǔ)介質(zhì)如盤和有關(guān)可選擇的存儲(chǔ)器。
4)控制節(jié)點(diǎn)18一硬件/微處理部件,其基本任務(wù)是接收與執(zhí)行來(lái)自一個(gè)計(jì)算機(jī)業(yè)所熟知的外部定義子系統(tǒng)接口的控制命令。
一個(gè)典型的具有64個(gè)節(jié)點(diǎn)的媒體流部件可能包含31個(gè)通信節(jié)點(diǎn),31個(gè)存儲(chǔ)節(jié)點(diǎn)和2個(gè)與低等待轉(zhuǎn)接器12相互連的控制節(jié)點(diǎn)。一個(gè)小型系統(tǒng)可能不包含轉(zhuǎn)接器并且只包含一個(gè)支持通信、存儲(chǔ)與控制命令的硬件節(jié)點(diǎn)。媒體流部件10的設(shè)計(jì)允許一個(gè)小型系統(tǒng)在客戶安裝中升級(jí)為一個(gè)大型系統(tǒng)。在所有配置中,除了傳送的流的數(shù)量和存儲(chǔ)的多媒體小時(shí)的數(shù)量不同外,媒體流部件10能保持其它功能一樣。
圖1A進(jìn)一步描述了低等待轉(zhuǎn)接器12。在交叉型轉(zhuǎn)接器卡20上有多個(gè)互連的電路轉(zhuǎn)接器芯片(圖中未給出),這些交叉型卡20通過(guò)一平面板互連圖中未示意性地示出這種互連。平面與一單個(gè)卡20構(gòu)成一帶有16個(gè)節(jié)點(diǎn)端口的低等待交叉型轉(zhuǎn)接器??梢酝ㄟ^(guò)增加輔加卡20構(gòu)成輔加節(jié)點(diǎn)端口,并且如果需要的話,還可以配置高適應(yīng)性的活動(dòng)冗余節(jié)點(diǎn)端口。低等待傳接器12的每一端口可以成為一個(gè)每秒25MB全雙工通信信道。
信息按包通過(guò)轉(zhuǎn)接器12傳送。每一包包含一頭部,用于控制每一交換芯片中單個(gè)交叉型轉(zhuǎn)接點(diǎn)的轉(zhuǎn)接狀態(tài)。控制節(jié)點(diǎn)18為其它節(jié)點(diǎn)(存儲(chǔ)節(jié)點(diǎn)16、17和通信節(jié)點(diǎn)14)提供通過(guò)低等待轉(zhuǎn)接器12進(jìn)行同層對(duì)等操作所需的信息。
圖1B描述了一磁帶存儲(chǔ)節(jié)點(diǎn)17內(nèi)部結(jié)構(gòu)。稍后會(huì)清楚看到,磁帶存儲(chǔ)節(jié)點(diǎn)17為存儲(chǔ)視頻圖像的數(shù)字表示提供大容量存儲(chǔ)能力。
所述的視頻圖像可以包括一個(gè)或多個(gè)適于顯示和/或處理的圖像。一視頻圖像可以包括一音頻部分。一個(gè)或多個(gè)圖像可以是邏輯上相關(guān)連的,例如可以是一膠片、影片或動(dòng)畫片的順序幀。最初的圖像可以由攝像機(jī)、數(shù)字計(jì)算機(jī)或攝像機(jī)與數(shù)字計(jì)算機(jī)共同產(chǎn)生。音頻部分可以與連續(xù)顯示的圖像同步。所述的視頻圖像的數(shù)據(jù)表示可以是任何適合表示一個(gè)或多個(gè)圖像和音頻的數(shù)字化數(shù)據(jù)格式??梢詫?duì)數(shù)字?jǐn)?shù)據(jù)編碼與/或壓縮。
再次參見(jiàn)圖1B,一磁帶存儲(chǔ)點(diǎn)節(jié)17包括一可以訪問(wèn)包含在一磁帶庫(kù)26中的多個(gè)磁帶記錄的磁帶庫(kù)控制器接口24。另一接口28可以通過(guò)一SCSI總線互連訪問(wèn)其它磁帶庫(kù)。一內(nèi)部系統(tǒng)存儲(chǔ)器30可以用來(lái)緩存來(lái)自接口24或28中任意一個(gè)接口或經(jīng)過(guò)DMA數(shù)據(jù)傳送路徑32的視頻數(shù)據(jù)。系統(tǒng)存儲(chǔ)塊30可以是一包含有用于磁帶庫(kù)和文件管理功能的軟件36的PC機(jī)34的一部分。一轉(zhuǎn)接器接口與緩存模塊38(也用于盤式存儲(chǔ)節(jié)點(diǎn)16,通信節(jié)點(diǎn)14和控制節(jié)點(diǎn)18)可用于連接帶式存儲(chǔ)節(jié)點(diǎn)17與低等待轉(zhuǎn)接器12。也即模塊38負(fù)責(zé)將數(shù)據(jù)傳送到包,并且給每一包加上轉(zhuǎn)接器12為包選擇路由時(shí)使用的頭部分。當(dāng)從轉(zhuǎn)接器12接收一包時(shí),模塊38負(fù)責(zé)在局部緩存或處理所接收數(shù)據(jù)之前去掉頭部。
來(lái)自磁帶庫(kù)26的視頻數(shù)據(jù)可在一個(gè)第一緩沖動(dòng)作中進(jìn)入系統(tǒng)存儲(chǔ)器30。接著,響應(yīng)于控制節(jié)點(diǎn)18的初始方向,通過(guò)低等待轉(zhuǎn)接器20將視頻數(shù)據(jù)發(fā)送到一盤存儲(chǔ)節(jié)點(diǎn)16,以便在需要時(shí)間可以立即存取。
圖1C表示了一盤存儲(chǔ)節(jié)點(diǎn)16的內(nèi)部詳細(xì)結(jié)構(gòu)。每個(gè)盤存儲(chǔ)節(jié)點(diǎn)16包括一個(gè)轉(zhuǎn)接器接口與緩沖模塊40,它可以將數(shù)據(jù)傳送自/至-RAID視頻高速緩存與存儲(chǔ)接口模塊42。接口42將所接收的視頻數(shù)據(jù)傳送給多個(gè)盤45,以準(zhǔn)RAID方式在盤間分布數(shù)據(jù)?,F(xiàn)有技術(shù)中已有關(guān)于RAID的存儲(chǔ)技術(shù),在Acm SIGMODEConference,Chicago IL,June 1-3,1988第109-116頁(yè)披露了Patterson的“一個(gè)廉價(jià)盤冗余陣列的例子”盤存儲(chǔ)節(jié)點(diǎn)16進(jìn)一步包括一內(nèi)部PC機(jī)44,該P(yáng)C機(jī)44包括的軟件模塊46和48分別用于控制存儲(chǔ)節(jié)點(diǎn),控制視頻文件與盤,以及為存儲(chǔ)在盤45上的數(shù)據(jù)提供RAID映像。實(shí)質(zhì)上,每個(gè)盤存儲(chǔ)節(jié)點(diǎn)16提供一個(gè)比帶存儲(chǔ)節(jié)點(diǎn)17更直接的視頻數(shù)據(jù)適用級(jí)。每個(gè)盤存儲(chǔ)節(jié)點(diǎn)16進(jìn)一步可以在轉(zhuǎn)接器接口與緩沖模塊40的半導(dǎo)體存儲(chǔ)器中緩沖存儲(chǔ)(按高速緩存方式)視頻數(shù)據(jù),從而在接收到一個(gè)請(qǐng)求時(shí)能夠更快地提供可用的視頻數(shù)據(jù)。
一般地說(shuō),一存儲(chǔ)節(jié)點(diǎn)包括一海量存儲(chǔ)單元(或一海量存儲(chǔ)單元的接口)并且能夠局部緩存從海量存儲(chǔ)器中讀出或向其中寫入的數(shù)據(jù)。存儲(chǔ)節(jié)點(diǎn)可以包括一個(gè)或幾個(gè)磁帶機(jī)和/或磁盤機(jī)等順序存取的海量存儲(chǔ)器,也可以包括一個(gè)或更多可以隨機(jī)存取方式訪問(wèn)的隨機(jī)存取存儲(chǔ)器和/或半導(dǎo)體存儲(chǔ)器。
圖1D是一表示通信節(jié)點(diǎn)14的內(nèi)部部件的框圖。與上述節(jié)點(diǎn)相似,通信節(jié)點(diǎn)14包括一轉(zhuǎn)接器接口和緩沖模塊50,它可以按前述方式通過(guò)低等待轉(zhuǎn)接器12通信。視頻數(shù)據(jù)可以直接在轉(zhuǎn)接器接口與緩沖模塊50之間進(jìn)行傳送,并進(jìn)一步送到流緩存與通信接口52中以送到一用戶終端(未在圖中表示)。PC機(jī)54包括軟件模塊56和58,它們分別提供通信節(jié)點(diǎn)控制(即流開(kāi)始/停止動(dòng)作),并允許隨后產(chǎn)生一等時(shí)數(shù)據(jù)流。流緩沖器與通信接口52的一輔加輸入60使輸出數(shù)據(jù)幀同步。從自動(dòng)控制設(shè)備62中接收數(shù)據(jù),而自動(dòng)控制設(shè)備62又受一控制整個(gè)流服務(wù)器10(參見(jiàn)圖1)的系統(tǒng)控制器64的控制。系統(tǒng)控制器64根據(jù)來(lái)自用戶控制機(jī)頂盒(set topboxes)65的輸入,產(chǎn)生允許媒體流部件10訪問(wèn)一所請(qǐng)求的視頻表示的命令。系統(tǒng)控制器64還提供一用戶接口與顯示部件66,用戶可以通過(guò)使用硬鍵或軟鍵輸入命令和其它數(shù)據(jù)以識(shí)別視頻圖像、調(diào)度視頻圖像并控制視頻圖像的整個(gè)播放過(guò)程。
每個(gè)控制節(jié)點(diǎn)18配置一臺(tái)PC機(jī),并且包括一個(gè)與低等待轉(zhuǎn)接器12相接的轉(zhuǎn)接器接口模塊。每個(gè)控制節(jié)點(diǎn)18根據(jù)來(lái)自系統(tǒng)控制器64的輸入為通信節(jié)點(diǎn)14與存儲(chǔ)節(jié)點(diǎn)16,17提供信息,以便通過(guò)低等待轉(zhuǎn)接器12產(chǎn)生所希望的連接。此外,控制節(jié)點(diǎn)18還包括能對(duì)來(lái)自一個(gè)或多個(gè)磁盤存儲(chǔ)節(jié)點(diǎn)16的被請(qǐng)求的視頻數(shù)據(jù)進(jìn)行分級(jí)的軟件,該軟件還可以通過(guò)一個(gè)流傳送接口將視頻數(shù)據(jù)傳送給一用戶顯示終端。控制節(jié)點(diǎn)18進(jìn)一步通過(guò)來(lái)自低等待轉(zhuǎn)接器12的命令控制磁盤與磁帶存儲(chǔ)帶節(jié)16與17。
如圖1所示媒體流部件有三個(gè)結(jié)構(gòu)化的外部接口。這些接口是1)控制接口一執(zhí)行TCP/IP協(xié)議(以太網(wǎng)局域網(wǎng)、令牌環(huán)局域網(wǎng),串行端口,調(diào)制解調(diào)器等的開(kāi)放式系統(tǒng)接口。
2)流傳送接口設(shè)計(jì)用于傳送數(shù)據(jù)流的工業(yè)標(biāo)準(zhǔn)接口(NTSC,D1,等)之一。
3)自動(dòng)控制接口一組用于使流輸出精確同步的工業(yè)標(biāo)準(zhǔn)控制接口(如Genlock,BlackBurst.SMPTE Clock等)。
應(yīng)用程序命令通過(guò)控制接口送到媒體流部件10。當(dāng)發(fā)出的是數(shù)據(jù)裝入命令時(shí),控制節(jié)點(diǎn)將到來(lái)的數(shù)據(jù)文件分段(即數(shù)據(jù)塊)并將其分布到一個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)上。數(shù)據(jù)資料的密度及數(shù)據(jù)的同時(shí)用戶的數(shù)量影響存儲(chǔ)節(jié)點(diǎn)16和17上數(shù)據(jù)的布局。增加密度和/或同時(shí)用戶數(shù)意謂著使用更多的存儲(chǔ)節(jié)點(diǎn)以提高容量及帶寬。
當(dāng)通過(guò)控制接口發(fā)出打開(kāi)通向一最終用戶的數(shù)據(jù)流命令時(shí),控制節(jié)點(diǎn)18選擇并激活一合適的通信節(jié)點(diǎn)14并將控制信息傳送給它,指示出在存儲(chǔ)節(jié)點(diǎn)16,17上數(shù)據(jù)文件段的位置。通信節(jié)點(diǎn)激活有關(guān)的存儲(chǔ)節(jié)點(diǎn)16,17并通過(guò)低等待轉(zhuǎn)接器12發(fā)送的命令包與這些節(jié)點(diǎn)通信,以開(kāi)始傳送數(shù)據(jù)。
數(shù)據(jù)通過(guò)低等待轉(zhuǎn)接器12與“準(zhǔn)時(shí)”(just in time)調(diào)度算法在磁盤存儲(chǔ)節(jié)點(diǎn)16與17間傳送。下面描述一下調(diào)度和數(shù)據(jù)流控制的技術(shù)。從通信節(jié)點(diǎn)14發(fā)出的數(shù)據(jù)流被多路傳送至/自磁盤存儲(chǔ)節(jié)點(diǎn)16,以使單個(gè)通信節(jié)點(diǎn)流只使用每一磁盤存儲(chǔ)節(jié)點(diǎn)16的一部分容量和帶寬。這樣,多個(gè)通信節(jié)點(diǎn)14就可以將對(duì)磁盤存儲(chǔ)節(jié)點(diǎn)16上相同或不同數(shù)據(jù)的訪問(wèn)加以多路轉(zhuǎn)換。例如,媒體流部件10可以提供1500個(gè)來(lái)自通信節(jié)點(diǎn)14的動(dòng)態(tài)存儲(chǔ)區(qū)的受控終端用戶流,每一個(gè)都多路訪問(wèn)一個(gè)分布在磁盤節(jié)點(diǎn)16上的多媒體文件。這種能力被稱之為“單備份多流”。
通過(guò)控制接口接收的命令被以兩類獨(dú)特方式執(zhí)行。那些用于管理數(shù)據(jù)并且與數(shù)據(jù)流控制無(wú)直接關(guān)系的命令按“低優(yōu)先級(jí)”執(zhí)行。這樣一裝入新數(shù)據(jù)到媒體流部件的申請(qǐng)就不會(huì)影響向終端用戶傳送數(shù)據(jù)流。那些影響流傳送(即輸出)的命令按“高優(yōu)選級(jí)”執(zhí)行。
圖2給出了控制接口命令。用于在媒體流部件10中裝入和管理數(shù)據(jù)的低優(yōu)先級(jí)數(shù)據(jù)管理命令包括VS-CREATE,VS-OPEN,VS-READ,VS-WRITE,VS-GET-POSITION,VS-SET-POSITION,VS-CLOSE,VS-RENAME,VS-DELETE,GET-ATTRIBUTES,與VS-GET-NAME。
用于啟動(dòng)與管理流輸出的高優(yōu)先級(jí)流控制命令包括VS-CONNECT,VS-PLAV,VS-RECORD,VS-SEEK,VS-PAUSE,VS-STOP和VS-DISCONNECT??刂平Y(jié)點(diǎn)18監(jiān)視流控制命令以確保請(qǐng)求能被執(zhí)行。當(dāng)超出媒體流部件10的能力時(shí),控制節(jié)點(diǎn)18中的“容許控制(admission control)”部件駁回一啟動(dòng)流的請(qǐng)求。這可能出現(xiàn)在以下情形中1)當(dāng)系統(tǒng)中一些部件失效,阻礙最大限度的運(yùn)行時(shí);2)當(dāng)訪問(wèn)一數(shù)據(jù)文件的同時(shí)流的數(shù)量超出一特定值(例如由VS-CREATE命令的參數(shù)所指定)時(shí),與;3)當(dāng)來(lái)自系統(tǒng)的同時(shí)流的數(shù)量超出一特定值時(shí)。該值可由安裝配置程序指定。
通信節(jié)點(diǎn)14可以按多相群方式管理,每一個(gè)都具有潛在的不同的帶寬(流)能力和物理定義。VS-CONNECT命令指示媒體流部件10分配一通信節(jié)點(diǎn)14和一些或所有與之相關(guān)的帶寬以保證等時(shí)數(shù)據(jù)流的傳送。例如媒體流部件10能夠通過(guò)通信節(jié)點(diǎn)14以比特率為270兆位/秒的速度播放壓縮數(shù)據(jù)流,同時(shí)在其它通信節(jié)點(diǎn)14上以較低的數(shù)據(jù)率(通常是1-16兆位/秒)播放壓縮數(shù)據(jù)流。
存儲(chǔ)節(jié)點(diǎn)16、17按多相群方式管理,每一個(gè)都具有潛在的不同的帶寬(流)能力和物理定義。VS-CREATE命令指示媒體流部件10為一個(gè)多媒體文件和相應(yīng)的元數(shù)據(jù)在一個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)上分配存儲(chǔ)器。VS-CREATE命令要同時(shí)指定用戶希望的流密度和最大所需同時(shí)用戶數(shù)量。
三個(gè)輔加命令用于支持廣播業(yè)中的自動(dòng)控制系統(tǒng),它們是VS-CONNECT-LIST,VS-PLAY-AT-SIGNAL與VS-RECORD-AT-SIGNAL。VS-CONNECT-LIST允許應(yīng)用程序在一單個(gè)命令中為子系統(tǒng)指定一系列播放命令。除了在兩流之間無(wú)縫傳送時(shí),媒體流部件10將執(zhí)行每一個(gè)播放命令時(shí),就好象它是通過(guò)控制接口發(fā)出的一樣。一個(gè)樣本序列如下1)控制節(jié)點(diǎn)18接收一帶有播放命令的VS-COWWECT-LIST命令,子命令指示按順序播放全部或部分FILE1、FILE2和FILE3。控制節(jié)點(diǎn)18確定一通信節(jié)點(diǎn)14上文件的最大數(shù)據(jù)速率并分配資源。被分配的通信節(jié)點(diǎn)14收到詳細(xì)的播放清單并且啟動(dòng)等時(shí)流的傳送。
2)在FILE1的傳送將要結(jié)束時(shí),通信節(jié)點(diǎn)14啟動(dòng)FILE2的傳送,但并不將它送到節(jié)點(diǎn)的輸出端口。當(dāng)FILE1播完或出現(xiàn)了來(lái)自自動(dòng)控制接口的信號(hào)時(shí),通信節(jié)點(diǎn)14將輸出端口從第一流換接到第二流。這種換接可在1/30秒內(nèi),或在標(biāo)準(zhǔn)的視頻幀時(shí)間內(nèi)完成。
3)通信節(jié)點(diǎn)14釋放與FILE1有關(guān)的資源。
VS-PLAY-AT-SIGNAL與VS-RECORD-AT-SIGNAL允許來(lái)自外部自動(dòng)控制接口的信號(hào)將用于播放和記錄的數(shù)據(jù)準(zhǔn)確地傳送到一視頻幀邊界。在前一例子中,包含有PLAY-AT-SIGNAL子命令的VS-CONNECT-LIST可根據(jù)外部自動(dòng)控制接口信號(hào)完成從FILE1到FILE2的切換。如果子命令是VS-PLAY,只有當(dāng)FILE1傳送完成時(shí),才進(jìn)行切換。
媒體流部件10的其它命令具有管理存儲(chǔ)器分級(jí)體系的能力。它們是VS-DUMP,VS-RESTORE,VS-SEND,VS-RECEIVE和VS-RECEIVE-AND-PLAY。每一命令都可以使一個(gè)或多個(gè)多媒體文件在存儲(chǔ)節(jié)點(diǎn)16和兩個(gè)外部定義的分級(jí)實(shí)體之間被傳送。
1)VS-DUMP和VS-RESTORE可以使數(shù)據(jù)在控制節(jié)點(diǎn)18可訪問(wèn)到的磁盤存儲(chǔ)節(jié)點(diǎn)16和磁帶存儲(chǔ)節(jié)點(diǎn)17之間被傳送。數(shù)據(jù)傳送可由控制用應(yīng)用程序啟動(dòng),或由控制節(jié)點(diǎn)18自動(dòng)啟動(dòng)。
2)VS-SEND和VS-RECEIVE提供一種將一多媒體文件發(fā)送給另外一個(gè)媒體流部件的方法。負(fù)責(zé)接收的媒體流部件可以有選擇地在一預(yù)先分配好的通信節(jié)點(diǎn)上立即播放到來(lái)的文件,而不必等整個(gè)文件全部達(dá)到。
媒體流部件的體系結(jié)構(gòu)除了采用模塊化設(shè)計(jì)和定義一組功能外,用于等時(shí)數(shù)據(jù)傳送的數(shù)據(jù)流進(jìn)行優(yōu)化以便顯著地降低費(fèi)用。具體是1)低等待轉(zhuǎn)接器的帶寬超出了所接節(jié)點(diǎn)的帶寬;節(jié)點(diǎn)間的通信近似于不被封鎖。
2)避免將數(shù)據(jù)送到處理器的存儲(chǔ)器中,提供更高的帶寬;3)不必處理數(shù)據(jù),省去昂貴的處理單元;和4)有效地調(diào)度數(shù)據(jù)的傳送,從而避免使用大的數(shù)據(jù)高速緩存。
按傳統(tǒng)的計(jì)算機(jī)術(shù)語(yǔ)來(lái)說(shuō),媒體流部件10用作一互連的適配器系統(tǒng),它可以通過(guò)低待轉(zhuǎn)接器僅在適配器之間進(jìn)行同級(jí)對(duì)等的數(shù)據(jù)傳送。低等待轉(zhuǎn)接器12訪問(wèn)數(shù)據(jù)存儲(chǔ)器并且在沒(méi)有“主機(jī)”干預(yù)的情況下將數(shù)據(jù)段從一適配器的存儲(chǔ)器中傳送到另一適配器的存儲(chǔ)器中。
B.用于等時(shí)傳送的數(shù)字壓縮視頻數(shù)據(jù)的分級(jí)管理媒體流部件10提供分級(jí)存儲(chǔ)單元。其設(shè)計(jì)方案可以從一個(gè)非常小的視頻系統(tǒng)到一個(gè)大的視頻系統(tǒng)。它還提供一種靈活的存儲(chǔ)管理方式,以滿足點(diǎn)播電視、準(zhǔn)點(diǎn)播電視、廣告播入、高質(zhì)量非壓縮視頻存儲(chǔ)和跟蹤與重播的不同需要。
B1.磁帶存儲(chǔ)在媒體流部件10中,將視頻圖像從高性能的數(shù)字帶傳送到盤上,以按終端用戶的要求,用低得多的數(shù)據(jù)速率播放。按照這種方式,只有一最少的視頻時(shí)間被儲(chǔ)存在磁盤子系統(tǒng)中。如果系統(tǒng)是一“準(zhǔn)點(diǎn)播電視”,那么在任一時(shí)刻,每個(gè)影片只有例如5分鐘的部分需要存在磁盤上。對(duì)于每個(gè)通常是2小時(shí)的電影片來(lái)說(shuō),只需22段每段5分鐘。由于在任一時(shí)刻并不是將所有的視頻圖像保存在磁盤文件中,這樣視頻圖像所需的總的磁盤存儲(chǔ)空間就降低了。只需將正在播放的圖像部分放在磁盤文件中。
換句話說(shuō),如果一視頻圖像需要時(shí)間T來(lái)播放其全部,并且用有N個(gè)數(shù)據(jù)塊的數(shù)字表示來(lái)存儲(chǔ),那么每一數(shù)據(jù)塊存儲(chǔ)視頻圖像的大約T/N周期那部分。N個(gè)數(shù)據(jù)塊中的最后一塊存儲(chǔ)的視頻圖像可能少于T/N周期。
隨著對(duì)系統(tǒng)的要求的增高和流的數(shù)量的增加,統(tǒng)計(jì)表明,除了在不同的亞秒時(shí)間間隔之外,平均大約有25%的視頻流請(qǐng)求是對(duì)同一影片的,并且圖像的分布可以使這些亞秒要求的大于50%的部分落在一組15個(gè)影片段中。
本發(fā)明的一個(gè)方面是使用最合適的技術(shù)滿足這種要求。一隨機(jī)存取盒式裝入器(例如IBM公司生產(chǎn)的)是一種每個(gè)帶具有高存儲(chǔ)容量,每個(gè)抽屜中可以自動(dòng)機(jī)械地裝入100個(gè)磁帶并且每一抽屜最多有兩個(gè)磁帶驅(qū)動(dòng)器的數(shù)字磁帶系統(tǒng)。這樣就可以為點(diǎn)播電視系統(tǒng)提供有效的磁帶庫(kù)。本發(fā)明還可以用低成本的數(shù)字磁帶存儲(chǔ)庫(kù)系統(tǒng)提供影片的海量存儲(chǔ),還可使那些點(diǎn)播率較低的影片直接從磁帶轉(zhuǎn)到速度匹配的緩存中,然后轉(zhuǎn)到解壓與分配信道上直接播放。
在視頻系統(tǒng)中加入分級(jí)帶存儲(chǔ)的另外一個(gè)優(yōu)點(diǎn)是在磁盤不工作時(shí),將磁盤上的任何影片快速備份。典型系統(tǒng)中一般保留一“備用”磁盤,這樣如果某一盤壞了,影片可從帶上重新裝入。這通常與RAID或類似RAID的系統(tǒng)相結(jié)合。
B2.磁盤存儲(chǔ)系統(tǒng)當(dāng)對(duì)視頻流的要求達(dá)到一較高層次時(shí),更有效的方法是將整個(gè)影片存儲(chǔ)在磁盤上并且能夠免除系統(tǒng)用于持續(xù)從帶到盤上傳送視頻數(shù)據(jù)的性能開(kāi)銷。由于磁帶庫(kù)中通常影片的數(shù)量一般是10x-100x,大于任一時(shí)刻播放的數(shù)量,所以典型的系統(tǒng)仍保留一存儲(chǔ)在帶上的影片庫(kù)。當(dāng)用戶請(qǐng)求播放一特定影片時(shí),該影片的各段被裝到一磁盤存儲(chǔ)節(jié)點(diǎn)16并且從那開(kāi)始播放。
當(dāng)許多用戶想看同一影片時(shí),最好是將影片保留在磁盤上。這些影片一般是本星期內(nèi)的熱門影片;并且在高峰收看時(shí)間之前把它們從帶裝到盤上。這可以減小系統(tǒng)在高峰期的負(fù)載。
B3.高速緩存的影片輸出。
隨著對(duì)熱門影片的要求增高,媒體流部件10根據(jù)基于MRU算法決定將關(guān)鍵影片傳送到高速緩存中。這需要較大的高速緩存,但就價(jià)格/活動(dòng)流數(shù)比率來(lái)說(shuō),高速緩存有高輸出降低了媒體流部件10的整體成本。
由于視頻數(shù)據(jù)的屬性,以及系統(tǒng)總是預(yù)先就已知道要播放哪些視頻,下次需要哪些數(shù)據(jù)以及使用多長(zhǎng)時(shí)間,所以可以采用各種方法使高速緩存、內(nèi)部緩存、磁盤存儲(chǔ)器、磁帶裝入器和總線性能等的使用達(dá)到最優(yōu)化。
在各個(gè)存儲(chǔ)介質(zhì)間放置和分配數(shù)據(jù)的算法使等時(shí)數(shù)據(jù)的傳送滿足一個(gè)很寬的帶寬要求。由于等時(shí)數(shù)據(jù)的傳送實(shí)際上是100%可預(yù)測(cè)的,所以它的算法與用于計(jì)算機(jī)業(yè)其它段的傳統(tǒng)算法完全不同,其中用戶對(duì)高速緩存數(shù)據(jù)的訪問(wèn)并不都能預(yù)測(cè)。
C.媒體流部件中數(shù)據(jù)流結(jié)構(gòu)如上所述,媒體流部件10可以通過(guò)網(wǎng)絡(luò)(如局域網(wǎng)、異步傳輸方式等)將視頻流傳送給各種與網(wǎng)相連的輸出端如電視機(jī)和機(jī)頂盒。為了滿足對(duì)存儲(chǔ)容量和同時(shí)流數(shù)量的要求,發(fā)明人一種包含多個(gè)存儲(chǔ)與通信節(jié)點(diǎn)的分布式結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)在存儲(chǔ)節(jié)點(diǎn)16、17上并且通過(guò)通信節(jié)點(diǎn)進(jìn)行傳送。一通信節(jié)點(diǎn)14從合適的存儲(chǔ)節(jié)點(diǎn)16、17中獲得數(shù)據(jù)。控制節(jié)點(diǎn)18將一單個(gè)系統(tǒng)圖像提供給外界。節(jié)點(diǎn)通過(guò)交叉相連的低等待轉(zhuǎn)接器12相聯(lián)。
對(duì)于每個(gè)流來(lái)說(shuō),數(shù)據(jù)的速率與待傳送的數(shù)據(jù)都是可預(yù)測(cè)的。本發(fā)明利用這種可預(yù)測(cè)性構(gòu)造一種可以充分利用資源并能確保每一流的數(shù)據(jù)在每一階段需要時(shí)都已準(zhǔn)備好的數(shù)據(jù)流結(jié)構(gòu)。
存儲(chǔ)節(jié)點(diǎn)16、17與通信節(jié)點(diǎn)14之間的數(shù)據(jù)流可以用一些不同的方式建立。
通信節(jié)點(diǎn)14一般用于傳送多個(gè)流。它可能有對(duì)于每個(gè)流的未完成的數(shù)據(jù)請(qǐng)求,并且所需數(shù)據(jù)可能來(lái)自不同存儲(chǔ)節(jié)點(diǎn)16、17。如果不同存儲(chǔ)節(jié)點(diǎn)同時(shí)準(zhǔn)備向同一通信節(jié)點(diǎn)發(fā)送數(shù)據(jù),那么只有一個(gè)存儲(chǔ)節(jié)點(diǎn)能夠發(fā)送數(shù)據(jù),而其它存儲(chǔ)節(jié)點(diǎn)將被封鎖。封鎖將促使這些存儲(chǔ)節(jié)點(diǎn)重試發(fā)送數(shù)據(jù),并且降低了交換的使用,同時(shí)不能立即響應(yīng)存儲(chǔ)節(jié)點(diǎn)向通信節(jié)點(diǎn)發(fā)送數(shù)據(jù)的請(qǐng)求。在本發(fā)明中,不會(huì)出現(xiàn)不同存儲(chǔ)節(jié)點(diǎn)爭(zhēng)用一個(gè)通信節(jié)點(diǎn)14的一個(gè)輸入端口的情況。
所需緩存的容量可用以下方法確定通信節(jié)點(diǎn)14確定發(fā)送一請(qǐng)求至存儲(chǔ)節(jié)點(diǎn)16,17和接收到該數(shù)據(jù)所需的平均時(shí)間。為確定該時(shí)間,可將向存儲(chǔ)節(jié)點(diǎn)發(fā)送一請(qǐng)求的時(shí)間、接收到響應(yīng)的時(shí)間與到存儲(chǔ)節(jié)點(diǎn)處理該請(qǐng)求所需的時(shí)間相加。然后存儲(chǔ)節(jié)點(diǎn)通過(guò)將從磁盤中讀取數(shù)據(jù)所需的平均時(shí)間與處理清求時(shí)發(fā)生的任何延遲相加來(lái)確定處理請(qǐng)求的平均時(shí)間。這是處理請(qǐng)求中的等待。所需緩存容量是按流數(shù)據(jù)速率覆蓋等待所需的存儲(chǔ)器容量。以下描述的方案在媒體流部環(huán)境下具有減少等待,從而降低對(duì)資源要求等待特殊條件的優(yōu)點(diǎn)。通過(guò)在數(shù)據(jù)的每一級(jí)(即在通信節(jié)點(diǎn)與存儲(chǔ)節(jié)點(diǎn)之間)使用一正好準(zhǔn)時(shí)(just-in-time)調(diào)度算法與預(yù)測(cè)來(lái)自前一級(jí)的數(shù)據(jù)請(qǐng)求來(lái)減少等待。
通過(guò)使用以下兩個(gè)準(zhǔn)則消除存儲(chǔ)節(jié)點(diǎn)16、17對(duì)一通信節(jié)點(diǎn)14的輸入端口的爭(zhēng)用1)存儲(chǔ)節(jié)點(diǎn)16,17只有在收到一特定請(qǐng)求時(shí)才向一通信節(jié)點(diǎn)14發(fā)送數(shù)據(jù)。
2)一指定的通信節(jié)點(diǎn)14將所有準(zhǔn)備從存儲(chǔ)節(jié)點(diǎn)中讀取數(shù)據(jù)的請(qǐng)求排序,這樣在任意時(shí)刻都只有一個(gè)從通信節(jié)點(diǎn)14接收數(shù)據(jù)的請(qǐng)求是未決的,與通信節(jié)點(diǎn)14正在傳送的流的數(shù)量無(wú)關(guān)。
如上所述,等待的減少與每一級(jí)的“正好準(zhǔn)時(shí)”調(diào)度算法有關(guān)。基本原則是在一個(gè)流(stream)的數(shù)據(jù)流每一級(jí)中,當(dāng)對(duì)該數(shù)據(jù)的請(qǐng)求到來(lái)時(shí),數(shù)據(jù)就可以用。這可以減少發(fā)送請(qǐng)求和完成任何數(shù)據(jù)傳送所需時(shí)間上的等待。于是,當(dāng)控制節(jié)點(diǎn)18向存儲(chǔ)節(jié)點(diǎn)16發(fā)出對(duì)一特定流的數(shù)據(jù)請(qǐng)求時(shí),存儲(chǔ)節(jié)點(diǎn)16幾乎能立即向應(yīng)該請(qǐng)求。該特性對(duì)于解決前述的爭(zhēng)用問(wèn)題是非常重要的。
由于在媒體流部件環(huán)境下,對(duì)數(shù)據(jù)的訪問(wèn)是順序的,并且一流的數(shù)據(jù)速率是可預(yù)測(cè)的,所以存儲(chǔ)節(jié)點(diǎn)16可以預(yù)測(cè)對(duì)于一特定流的下一數(shù)據(jù)請(qǐng)求什么時(shí)刻到來(lái)。根據(jù)請(qǐng)求對(duì)數(shù)據(jù)加什么標(biāo)識(shí)也是已知的,存儲(chǔ)節(jié)點(diǎn)16也知道數(shù)據(jù)存放在什么地方,以及期待的對(duì)其它流的請(qǐng)求。在給出這些信息和處理從一盤上讀清求的期待時(shí)間后,存儲(chǔ)節(jié)點(diǎn)16調(diào)度讀操作,以使數(shù)據(jù)正好在清求從通信節(jié)點(diǎn)14到來(lái)之前可以使用。例如,如果流數(shù)據(jù)速率是250KB/秒,存儲(chǔ)節(jié)點(diǎn)16包含一視頻的每個(gè)第四段,那么,對(duì)該流的數(shù)據(jù)請(qǐng)求每隔4秒將到達(dá)。如果處理一讀請(qǐng)求的時(shí)間是500微秒(確信讀請(qǐng)求將在500微秒內(nèi)完成),那么,在收到預(yù)測(cè)的來(lái)自通信節(jié)點(diǎn)14的請(qǐng)求之前,該請(qǐng)求至少被安排500微秒。
C1.控制節(jié)點(diǎn)18的函數(shù)控制節(jié)點(diǎn)18的函數(shù)是在媒體流部件10與外界之間提供一個(gè)用于控制流的接口。即使媒體流部件10本身成為一分布式系統(tǒng),對(duì)外界來(lái)說(shuō)它也表示一單個(gè)系統(tǒng)圖像??刂乒?jié)點(diǎn)函數(shù)可以通過(guò)一已定義的應(yīng)用程序界面(API)實(shí)現(xiàn)。API提供在媒體流部件10中產(chǎn)生視頻內(nèi)容的函數(shù),以及諸如播放/記錄視頻數(shù)據(jù)等一些實(shí)時(shí)函數(shù)。控制節(jié)點(diǎn)18將播放或停止播放視頻的實(shí)時(shí)清求傳送給通信節(jié)點(diǎn)。
C2.通信節(jié)點(diǎn)14通信節(jié)點(diǎn)14具有下述用于處理一實(shí)時(shí)視頻接口的調(diào)度組(同一過(guò)程中)一處理聯(lián)接/斷開(kāi)請(qǐng)求的調(diào)度組,一處理播放/停止播放和暫停/重新開(kāi)始請(qǐng)求的調(diào)度組和一處理轉(zhuǎn)移請(qǐng)求(向前找或向后找)的調(diào)度組。此外,它還具有為一流從存儲(chǔ)節(jié)點(diǎn)16讀數(shù)據(jù)的輸入調(diào)度組和將數(shù)據(jù)寫到輸出端口的一輸出調(diào)度組。
圖3描述了在播放一視頻期間在通信節(jié)點(diǎn)14上用于處理數(shù)據(jù)的一數(shù)據(jù)流結(jié)構(gòu)。數(shù)據(jù)流結(jié)構(gòu)包括從一存儲(chǔ)節(jié)點(diǎn)16獲取數(shù)據(jù)的一輸入調(diào)度組100。輸入調(diào)度組100將接收來(lái)自存儲(chǔ)節(jié)點(diǎn)數(shù)據(jù)的操作排隊(duì),以便在任意一時(shí)刻只有一存儲(chǔ)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。輸入調(diào)度組100要保證當(dāng)一輸出調(diào)度組102需要對(duì)一流從緩存進(jìn)行寫出操作時(shí),該緩存中已裝有數(shù)據(jù)。此外,還有一用于對(duì)流進(jìn)行輸入與輸出調(diào)度的調(diào)度功能104,該功能同時(shí)被輸入與輸出調(diào)度組100和102使用。
每一調(diào)度組清除一請(qǐng)求隊(duì)列。用于輸出調(diào)度組102的請(qǐng)求隊(duì)列106包含識(shí)別流和指出需要清空的相關(guān)緩存的請(qǐng)求,這些請(qǐng)求按需要寫到視頻輸出接口的時(shí)間排序。當(dāng)輸出調(diào)度組102清空一緩存時(shí),將其標(biāo)志為空并且喚醒調(diào)度函數(shù)104,對(duì)用于輸入調(diào)度組(用于將被填充的緩存)的一輸入隊(duì)列108中的請(qǐng)求排隊(duì)。輸入調(diào)度組100的隊(duì)列108并按緩存將被填充的時(shí)間順序排列。
輸入調(diào)度組100也負(fù)責(zé)清除按請(qǐng)求時(shí)間排列的請(qǐng)求隊(duì)列108,其任務(wù)是從一存儲(chǔ)節(jié)點(diǎn)16填充緩存。對(duì)于隊(duì)列中每個(gè)請(qǐng)求,輸入調(diào)度組100采取下述行動(dòng)。輸入調(diào)度組100確定具有流數(shù)據(jù)(在多個(gè)存儲(chǔ)節(jié)點(diǎn)上將視頻流數(shù)據(jù)分割成線程下一段的存儲(chǔ)節(jié)點(diǎn)16。輸入調(diào)度組100然后向該確定的存儲(chǔ)節(jié)點(diǎn)發(fā)出一請(qǐng)求(使用通過(guò)轉(zhuǎn)接器12的信息)請(qǐng)求流數(shù)據(jù),然后等待數(shù)據(jù)到來(lái)。
本協(xié)議保證在任一時(shí)刻只有一存儲(chǔ)節(jié)點(diǎn)16將向一特定通信節(jié)點(diǎn)14發(fā)送數(shù)據(jù),即消除了多個(gè)存儲(chǔ)節(jié)點(diǎn)以異步方式向一通信節(jié)點(diǎn)14發(fā)送數(shù)據(jù)所引發(fā)的沖突。當(dāng)從存儲(chǔ)節(jié)點(diǎn)16接收到被請(qǐng)求的數(shù)據(jù)時(shí),輸入調(diào)度組100特緩存標(biāo)志為滿并且喚醒調(diào)度程序104將一請(qǐng)求(根據(jù)流的數(shù)據(jù)速率)緩存到輸出調(diào)度組102,以清空該緩沖器。
C3.存儲(chǔ)節(jié)點(diǎn)16圖4描述了存儲(chǔ)節(jié)點(diǎn)16用于支持一流播放的數(shù)據(jù)流結(jié)構(gòu)。存儲(chǔ)節(jié)點(diǎn)16有一包含視頻數(shù)據(jù)的動(dòng)態(tài)存儲(chǔ)區(qū)。它還有一個(gè)用于每一邏輯盤驅(qū)動(dòng)器的一輸入調(diào)度組110和通過(guò)轉(zhuǎn)接器將數(shù)據(jù)寫到通信節(jié)點(diǎn)14的一輸出調(diào)度組112。它還有一個(gè)被輸入與輸出調(diào)度組110、112使用調(diào)度功能114,調(diào)度各種操作。它還有一處理來(lái)自請(qǐng)求數(shù)據(jù)的通信節(jié)點(diǎn)14的請(qǐng)求的報(bào)文調(diào)度組116。
當(dāng)從一請(qǐng)求數(shù)據(jù)的通信節(jié)點(diǎn)14接收到一報(bào)文時(shí),正常情況下,報(bào)文調(diào)組116將發(fā)現(xiàn)所請(qǐng)求的數(shù)據(jù)已在緩存中,并將該請(qǐng)求送到輸出調(diào)度組的隊(duì)列(隊(duì)列118),將請(qǐng)求按時(shí)間順序排列。輸出調(diào)度組112將清空緩存并將它加到一空閑緩存表中。每個(gè)輸入調(diào)度組110有自己的請(qǐng)求隊(duì)列。對(duì)于每一在相關(guān)盤驅(qū)動(dòng)器上有視頻數(shù)據(jù)的活動(dòng)流,都保持一個(gè)按填充下一緩存的請(qǐng)求時(shí)間(基于數(shù)據(jù)速率,線程等級(jí))排序的隊(duì)列120。該調(diào)度組從隊(duì)列120中取出第一請(qǐng)求,分配一空閑緩存并且發(fā)出一用盤中數(shù)據(jù)填充緩存的I/O請(qǐng)求。當(dāng)緩存滿時(shí),將其加入到滿載緩存表中。報(bào)文調(diào)度組116接收到有關(guān)流的數(shù)據(jù)請(qǐng)求時(shí),檢查該滿載緩存表。當(dāng)從一通信節(jié)點(diǎn)14收到一數(shù)據(jù)報(bào)文并且所需緩存不滿時(shí),這種情況被認(rèn)為是一漏極限。
C4.“正好準(zhǔn)時(shí)”調(diào)度一種“正好準(zhǔn)時(shí)”調(diào)度技術(shù)被用在通信節(jié)點(diǎn)14和存儲(chǔ)節(jié)點(diǎn)16上。該技術(shù)使用下列參數(shù)bc=通信節(jié)點(diǎn)14的緩存大小;bs=存儲(chǔ)節(jié)點(diǎn)16的緩存大?。籸=視頻流數(shù)據(jù)速率;n=包含視頻流數(shù)據(jù)視頻的線程數(shù);Sr=線程數(shù)據(jù)速率;和Sr=r/n使用的算法如下(1)sfc=在通信節(jié)點(diǎn)上對(duì)一個(gè)流的請(qǐng)求頻率=r/bc;和
(2)dfc=在存儲(chǔ)節(jié)點(diǎn)上磁盤讀請(qǐng)求的頻率=sr/bs。
在H節(jié)將詳細(xì)描述視頻數(shù)據(jù)的“線程”。
根據(jù)以上公式確定的頻率對(duì)請(qǐng)求進(jìn)行調(diào)度,以便在需要數(shù)據(jù)之前即已完成請(qǐng)求。這可以通過(guò)在播放一視頻流開(kāi)始時(shí)用數(shù)據(jù)注入數(shù)據(jù)管道來(lái)實(shí)現(xiàn)。
在連接時(shí)刻計(jì)算在播放流的通信節(jié)點(diǎn)14與包含視頻數(shù)據(jù)的存儲(chǔ)節(jié)點(diǎn)16上的sfc與dfc。頻率(或其倒數(shù),即周期)被用于調(diào)度來(lái)自存儲(chǔ)節(jié)點(diǎn)16(參見(jiàn)圖4)盤的輸入和調(diào)度通信節(jié)點(diǎn)14(參見(jiàn)圖3)端口的輸出(以及來(lái)自存儲(chǔ)節(jié)點(diǎn)的輸入)。
正好準(zhǔn)時(shí)調(diào)度的例子是以2.0兆位/秒(250,000字節(jié)/秒)播放按線程分割在四個(gè)存府節(jié)點(diǎn)上的一視頻流。并假設(shè)通信節(jié)點(diǎn)上的緩沖區(qū)大小是50,000個(gè)字節(jié)、盤節(jié)點(diǎn)上的緩沖區(qū)大小是250,000個(gè)字節(jié),同時(shí)假設(shè)按250,000字節(jié)/秒的段將數(shù)據(jù)分割成線程。
“正好準(zhǔn)時(shí)”算法由各參數(shù)的值如下bc=250,00字節(jié)(通信節(jié)點(diǎn)14的緩沖區(qū)大小);bs=250,000字節(jié)(存儲(chǔ)節(jié)點(diǎn)16的緩沖區(qū)大小);r=250,000字節(jié)/秒(流數(shù)據(jù)速率);n=4(視頻流被分割成線程的數(shù));Sr=r/n=6250字節(jié)/秒或250,000/4秒,即每4秒250,000字節(jié);sfc=r/bc=1/秒,(通信節(jié)點(diǎn)14上的請(qǐng)求頻率);和dfc=r/bs=1秒,(存儲(chǔ)節(jié)點(diǎn)16上的請(qǐng)求頻率)。
負(fù)責(zé)播放流的通信節(jié)點(diǎn)14的按每秒1次的頻率或1.0秒間隔對(duì)輸入和輸出請(qǐng)求進(jìn)行調(diào)度。假定通信節(jié)點(diǎn)14有兩個(gè)用于該流的緩存,通信節(jié)點(diǎn)14要保證在開(kāi)始輸出視頻流之前,將兩個(gè)緩存裝滿。
在連接時(shí)刻,通信節(jié)點(diǎn)14將已把報(bào)文發(fā)送到四個(gè)包含一個(gè)視頻數(shù)據(jù)線程的存儲(chǔ)節(jié)點(diǎn)16上。前兩個(gè)存儲(chǔ)節(jié)點(diǎn)將能預(yù)測(cè)到對(duì)線程第一段的請(qǐng)求并且調(diào)度盤請(qǐng)求來(lái)填充緩存。通信節(jié)點(diǎn)14將調(diào)度輸入請(qǐng)求(參見(jiàn)圖3)將前兩段讀進(jìn)緩存中,每個(gè)緩存大小都是250,000字節(jié)。當(dāng)一播放請(qǐng)求到來(lái)時(shí),通信節(jié)點(diǎn)14將首先保證這兩個(gè)緩存是滿的,然后通知所有的存儲(chǔ)節(jié)點(diǎn)16播放將開(kāi)始。之后,它開(kāi)始播放該流。當(dāng)?shù)谝痪彺嬉呀?jīng)開(kāi)始輸出時(shí)(按2兆位/秒或250,000字節(jié)/秒的速率,將需要1秒),通信節(jié)點(diǎn)14請(qǐng)求來(lái)自一存儲(chǔ)節(jié)點(diǎn)16的數(shù)據(jù)。然后,通信節(jié)點(diǎn)14按順序每隔1秒請(qǐng)求來(lái)自每一存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù),即它將每隔四秒請(qǐng)求來(lái)自一特定存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)。它每次都請(qǐng)求250,000個(gè)字節(jié)。通信節(jié)點(diǎn)14在聯(lián)接時(shí)刻計(jì)算通信節(jié)點(diǎn)請(qǐng)求來(lái)自存儲(chǔ)存節(jié)16的數(shù)據(jù)的頻率。
存儲(chǔ)節(jié)節(jié)16按以下方式預(yù)測(cè)對(duì)流數(shù)據(jù)的請(qǐng)求。包含線程3的存儲(chǔ)節(jié)點(diǎn)16(參見(jiàn)H節(jié))在播放開(kāi)始后一秒能夠預(yù)測(cè)對(duì)下一250,000字節(jié)段的請(qǐng)求以及每隔4秒進(jìn)行一次。包含線程4的存儲(chǔ)節(jié)點(diǎn)16能夠在播放開(kāi)始2秒后預(yù)測(cè)一請(qǐng)求并且每隔4秒進(jìn)行一次。也即每個(gè)存儲(chǔ)節(jié)點(diǎn)16從開(kāi)始時(shí)刻起以每隔4秒250,000個(gè)字節(jié)的頻率對(duì)來(lái)自盤的輸入進(jìn)行調(diào)度。在接收到一播放命令之后以及一流的緩存已被輸出之后,在存儲(chǔ)節(jié)點(diǎn)16上的調(diào)度完成。計(jì)算請(qǐng)求的頻率是在接收到聯(lián)接請(qǐng)求時(shí)進(jìn)行的。
在通信節(jié)點(diǎn)14和存儲(chǔ)節(jié)點(diǎn)16上也可以使用不同大小的緩存。例如,通信節(jié)點(diǎn)14的緩存可以是50,000字節(jié),而存儲(chǔ)節(jié)點(diǎn)16的緩存是250,000字節(jié)。在這種情況下,通信節(jié)點(diǎn)14的請(qǐng)求頻率將是(250,000/50,000)5次/秒或每隔0.2秒一次,而存儲(chǔ)節(jié)點(diǎn)16的請(qǐng)求頻率仍是1次/秒。通信節(jié)點(diǎn)14從包含第一線程的存儲(chǔ)節(jié)點(diǎn)中讀前兩個(gè)緩存(100,000字節(jié))(注意段的大小是250,000字節(jié)并且包含第一段的存儲(chǔ)節(jié)點(diǎn)16將在聯(lián)接時(shí)刻對(duì)來(lái)自盤的輸入進(jìn)行調(diào)度)。當(dāng)播放開(kāi)始時(shí),通信節(jié)點(diǎn)14通知該存儲(chǔ)節(jié)點(diǎn)16并且將其第一緩存中數(shù)據(jù)輸出。當(dāng)緩存為空時(shí),通信節(jié)點(diǎn)14調(diào)度下一輸入。緩存將每隔0.2秒就空,并且通信節(jié)點(diǎn)按此頻率請(qǐng)求來(lái)自存儲(chǔ)節(jié)點(diǎn)16的輸入,同時(shí)也按此頻率調(diào)度輸出。
在本例中,存儲(chǔ)節(jié)點(diǎn)16能夠預(yù)測(cè)即將在0.2秒間隔里到來(lái)的5個(gè)請(qǐng)求(除了第一段的100,000字節(jié)已讀到外,在播放開(kāi)始后,每隔4秒前三個(gè)請(qǐng)求將到達(dá),即在前一序列的最后一清求的四秒之后,下一組五個(gè)請(qǐng)求(每個(gè)為50,000字節(jié))序列將到達(dá))。由于存儲(chǔ)節(jié)點(diǎn)的緩存大小是250,000字節(jié),存儲(chǔ)節(jié)點(diǎn)16將每隔4秒鐘調(diào)度來(lái)自盤的輸入(和上述例子相同)。
C5.播放動(dòng)作的細(xì)節(jié)按下列步驟跟蹤用于一流播放動(dòng)作的控制流與數(shù)據(jù)流。圖5描述了用于啟動(dòng)一視頻播放的步驟。步驟是按時(shí)間排序的。
1)用戶發(fā)出一命令,配置已裝入特定視頻的端口。該請(qǐng)求被發(fā)送到控制節(jié)點(diǎn)18。
2)控制節(jié)點(diǎn)18的一調(diào)度組接收該請(qǐng)求和一VS-CONNECT函數(shù)。
3)控制節(jié)點(diǎn)的調(diào)度組打開(kāi)一視頻會(huì)話入口,并且建立一個(gè)用于具有被分割成線程的文件信息的視頻的存儲(chǔ)描述符。
4)控制節(jié)點(diǎn)18分配一用于請(qǐng)求的通信節(jié)點(diǎn)14和該節(jié)點(diǎn)上的一輸出端口。
5)通信節(jié)點(diǎn)18將一報(bào)文發(fā)送到分配的通信節(jié)點(diǎn)14上。
6)通信節(jié)點(diǎn)14的一調(diào)度組從控制節(jié)點(diǎn)18中接收該報(bào)文。
7)通信節(jié)點(diǎn)調(diào)度組向包含線程文件的存儲(chǔ)節(jié)點(diǎn)16發(fā)送一打開(kāi)請(qǐng)求。
8),9)被發(fā)送打開(kāi)請(qǐng)求的每一存儲(chǔ)節(jié)點(diǎn)16的調(diào)度組接收該請(qǐng)求,并且打開(kāi)被請(qǐng)求的線程文件,分配所需資源,并對(duì)來(lái)自盤的輸入進(jìn)行調(diào)度(如果線程文件包含第一不足段)。
10)存儲(chǔ)節(jié)點(diǎn)的調(diào)度組向具有線程文件標(biāo)識(shí)的通信節(jié)點(diǎn)14發(fā)回一應(yīng)答。
11)通信節(jié)點(diǎn)14的調(diào)度組等待來(lái)自所有相關(guān)的存儲(chǔ)節(jié)點(diǎn)的回答,并在接收成功應(yīng)答時(shí),為流分配源,包括設(shè)置輸出端口。
12)通信節(jié)點(diǎn)14接著調(diào)度輸入,以建立視頻數(shù)據(jù)流水線。
13)通信節(jié)點(diǎn)14然后向控制節(jié)點(diǎn)18發(fā)回一應(yīng)答。
14)控制節(jié)點(diǎn)調(diào)度組在接收到來(lái)自通信節(jié)點(diǎn)14的成功回答后,給用戶返回一流標(biāo)識(shí),可用于與本例子中的流有關(guān)的后續(xù)請(qǐng)求。
在一視頻流已被成功建立之后,采取以下按時(shí)間排序的步驟接收播放請(qǐng)求。圖6描述了這些步驟。
1)用戶發(fā)出播放命令。
2)控制節(jié)點(diǎn)18的一調(diào)度組接收該請(qǐng)求。
3)控制節(jié)點(diǎn)18的調(diào)度組確認(rèn)該請(qǐng)求是針對(duì)一已建立的流,然后將播放請(qǐng)求發(fā)送到已分配的通信節(jié)點(diǎn)14上。
4)通信節(jié)點(diǎn)14的一調(diào)度組接收該播放請(qǐng)求。
5)通信節(jié)點(diǎn)14向所有有關(guān)的存儲(chǔ)節(jié)點(diǎn)16發(fā)送該播放請(qǐng)求,這樣它們就能根據(jù)對(duì)該流后續(xù)請(qǐng)求的預(yù)測(cè)調(diào)度自己的操作?!坝嘘P(guān)”的存儲(chǔ)節(jié)點(diǎn)是指那些至少存儲(chǔ)了一個(gè)有用的視頻圖像的線程的存儲(chǔ)節(jié)點(diǎn)。
6)每一有關(guān)存儲(chǔ)點(diǎn)16的一調(diào)度組接收該請(qǐng)求并且為即將到來(lái)的流請(qǐng)求建立調(diào)度。每一有關(guān)存儲(chǔ)節(jié)點(diǎn)16向通信節(jié)點(diǎn)14發(fā)回一應(yīng)答。
7)通信節(jié)點(diǎn)的調(diào)度組要保證流水線已建立好(預(yù)裝視頻數(shù)據(jù))并且允許流輸出。
8)通信節(jié)點(diǎn)然后向控制節(jié)點(diǎn)18發(fā)回一應(yīng)答。
9)控制結(jié)點(diǎn)18結(jié)用戶發(fā)回一流正在播放的應(yīng)答。
輸入與輸出調(diào)度組繼續(xù)向特定端口傳送該視頻圖像,直到接收到一停止/暫停命令或視頻播完。
D.媒體流部件與用戶和應(yīng)用程序的接口媒體流部件10是一被動(dòng)型服務(wù)器,它只有在接收到來(lái)自一外部控制系統(tǒng)的控制命令時(shí)才進(jìn)行視頻服務(wù)操作。圖7描述了媒體流部件10的應(yīng)用程序的系統(tǒng)配置及該系統(tǒng)提供的接口。
媒體流部件10為用戶和應(yīng)用程序提供兩級(jí)接口,以控制其操作—用戶接口(圖7的(A));和—應(yīng)用程序接口(圖7中的(B))。
兩級(jí)接口都提供在客戶控制系統(tǒng)上,它們可以通過(guò)一遠(yuǎn)程程序調(diào)用(RPC)機(jī)制與媒體流部體10通信。通過(guò)在客戶控制系統(tǒng)上而不是在媒體流部件10上提供接口,可使應(yīng)用軟件與媒體流部件分離。這便于媒體流部件10的升級(jí)與更換,因?yàn)椴恍枰淖兓蛱鎿Q客戶控制系統(tǒng)上的應(yīng)用軟件。
D1.用戶通信媒體流部件提供兩類用戶接口—命令行接口;和—圖形用戶接口。
D1.1.命令行接口命令行接口在用戶控制臺(tái)或接口(圖1中的65、66)上顯示一提示符。在命令提示符之后,用戶可以輸入一以命令關(guān)鍵詞開(kāi)始、后面跟著參數(shù)的命令。在執(zhí)行完命令之后,接口又顯示一提示符并且等待下一命令的輸入。媒體流部件命令行接口特別適用于下列兩種操作批處理控制批處理控制用于開(kāi)始執(zhí)行一包含一系列視頻控制命令的命令串。例如.在廣播業(yè)中,可以提前將命令串準(zhǔn)備好,包括可用在一較長(zhǎng)時(shí)間周期里的預(yù)先錄制的并已排定的節(jié)目。在排定的開(kāi)始時(shí)刻,通過(guò)一單個(gè)批命令執(zhí)行該命令串,開(kāi)始播送而無(wú)需人工干預(yù)。
自動(dòng)控制自動(dòng)控制用于執(zhí)行由一程序產(chǎn)生的一命令表,以更新/播放存儲(chǔ)在媒體流部件10中的資料。例如,一新聞社可能每天都將新的資料裝到媒體流件10。管理這些新資料的一應(yīng)用控制程序可以產(chǎn)生用新資料更新媒體流部件的媒體流部件命令(例如裝入、刪除、轉(zhuǎn)儲(chǔ))。可將這些命令送到命令行接口立即執(zhí)行。
D1.2.圖形用戶接口圖8是媒體流部件圖形用戶接口的一個(gè)例子。該接口模擬一視頻帶式錄像機(jī)的控制板,它擁有諸如播放、暫停、例帶及停止等控制按鈕。此外,當(dāng)一操作需用戶進(jìn)行選擇時(shí),它還提供選擇板(例如;“裝入”需用戶選擇欲裝入的視頻圖像)。圖形用戶接口非常適用于直接的用戶交互。
在圖形用戶接口中還包括一“批處理”按鈕130和一“轉(zhuǎn)入/轉(zhuǎn)出”按鈕132。將在后面描述它們的功能。
D2.用戶函數(shù)媒體流部件10提供三類通用型用戶函數(shù)轉(zhuǎn)入/轉(zhuǎn)出;類似VCR的播放控制;和高級(jí)用戶控制。
D2.1轉(zhuǎn)入/轉(zhuǎn)出轉(zhuǎn)入/轉(zhuǎn)出函數(shù)被用于將視頻數(shù)據(jù)傳送到媒體流部件10中和從媒體流部件10傳送出視頻數(shù)據(jù)。當(dāng)將一視頻從客戶控制系統(tǒng)傳送到媒體流部件10中(轉(zhuǎn)入)時(shí),可以將一文件或客戶控制系統(tǒng)的一設(shè)備指定為視頻數(shù)據(jù)源。在媒體流部件10中用一唯一的名字指定視頻數(shù)據(jù)的目標(biāo)。當(dāng)將一視頻從媒體流部件10中傳出(轉(zhuǎn)出)送到一客戶控制系統(tǒng)時(shí),那么在媒體流部件內(nèi)用其自己名字作為視頻數(shù)據(jù)源,并且將視頻數(shù)據(jù)的目標(biāo)指定為一文件或客戶控制系統(tǒng)的一設(shè)備。
在轉(zhuǎn)入/轉(zhuǎn)出類用戶函數(shù)中,媒體流部件10還提供一用于去掉一視頻的“刪除”函數(shù)和一用于獲得有關(guān)存儲(chǔ)的視頻的信息(如名字、數(shù)據(jù)速率獲得屬性(get attributes)”函數(shù)。
為了通過(guò)圖形用戶接口調(diào)用轉(zhuǎn)入/轉(zhuǎn)出函數(shù),用戶可以按“轉(zhuǎn)入/轉(zhuǎn)出”軟鍵132(圖8)。這樣可以調(diào)出一新的包含“轉(zhuǎn)入”、“轉(zhuǎn)出”、刪除”、獲得屬性”等按鈕的屏,從而可以調(diào)用各個(gè)函數(shù)。
D2.2類似VCR的播放控制媒體流10提供一組類似VCR的播放控制。圖8中的媒體流部件圖形用戶接口表示出下列可以使用的函數(shù)裝入、彈出、播放、慢速、暫停、停止、例帶、快速向前和無(wú)聲??梢酝ㄟ^(guò)按圖形用戶接口上的相應(yīng)軟鍵激活這些函數(shù)。媒體流部件命令行接口提供一組類似的函數(shù)建立(setup)-為一特定輸出端口建立一視頻。類似于將視頻帶裝入一VCR。
播放—啟動(dòng)播放一已建立的視頻或重新播發(fā)一已暫停的視頻。
暫停—暫停播放一視頻。
卸掉—模擬從-VCR中彈出一視頻帶。
狀態(tài)—顯示諸如正在播放哪一視頻,已用了多少播放時(shí)間等端口狀態(tài)。
D2.3高級(jí)用戶控制為了支持特定應(yīng)用程序例如廣播業(yè)中的需要,本發(fā)明提供了一些用戶控制播放表(play list)-在一端口上建立多個(gè)待播放的視頻及其隊(duì)列。
播放長(zhǎng)度(play length)-限制將要播放的視頻的時(shí)間。
批操作(Batch operation)-完成儲(chǔ)存在一命令文件中的一系列操作。
可以通過(guò)圖形用戶接口上的“裝入”按鈕134來(lái)完成播放表和播放長(zhǎng)度的控制。每個(gè)“建立”命令將指定一將加入到用于一特定端口的播放表中的視頻。該命令還為待播放的視頻指定一時(shí)間限制。圖9表示出在圖形用戶接口上按“裝入”軟鍵之后出現(xiàn)的屏幕,可用于選擇一將加入到播放表中的視頻和指定播放該視頻的時(shí)間限制。當(dāng)用戶在“文件”框136中選一文件名,該文件名將進(jìn)入“文件名”框138。當(dāng)用戶按下“加”按鈕140,在“文件名”框138中的文件名及其時(shí)間限制將附加到“播放表”框142中,并且顯示當(dāng)前的播放表(以及播放表中每個(gè)視頻的時(shí)間限制)。
通過(guò)使用圖形用戶接口(參見(jiàn)圖8)上的一“批處理”軟鍵,可完成批處理操作。
當(dāng)“批處理”按鈕130被激活時(shí),將出現(xiàn)一個(gè)用戶可以選擇或輸入命令文件名的批處理選擇屏(參見(jiàn)圖10)。按下該批處理選擇屏上的一“執(zhí)行”按鈕144,開(kāi)始執(zhí)行所選命令文件中的命令。圖10是圖形用戶接口上“批處理”與“執(zhí)行”操作的一個(gè)例子。例如,首先用戶已在C/batchcmd目錄下建立了一個(gè)包含一命令串的文件“batch2”。然后用戶在圖8所示的圖形用戶接口上按下“批處理”按鈕130,出現(xiàn)批處理選擇屏。之后,用戶在批處理選擇屏的“目錄”框中選中“C/batchcmd”,這樣就在“文件”框148中顯示文件清單。在“文件”框148中選中“batch2”,將其送到“文件名”框150中。最后,用戶接下“執(zhí)行”按鈕144,從而順序執(zhí)行存儲(chǔ)在batch2”文件中的命令。
D3.應(yīng)用程序接口媒體流部件10提供以上所述的應(yīng)用程序接口(API),從而使應(yīng)用控制程序能夠與媒體流部件10相互作用并且控制其操作(可再參見(jiàn)圖7)。
API由一些基于遠(yuǎn)程過(guò)程調(diào)用(PRC)的過(guò)程組成。應(yīng)用控制程序通過(guò)過(guò)程調(diào)用激活A(yù)PI函數(shù)。過(guò)程調(diào)用的參數(shù)用于指定欲執(zhí)行的函數(shù)。應(yīng)用控制程序在調(diào)用API函數(shù)時(shí)無(wú)需考慮媒體流部件10的邏輯與物理位置。提供視頻服務(wù)的一媒體流部件10的標(biāo)識(shí)既可以在客戶控制系統(tǒng)啟動(dòng)時(shí),也可以在應(yīng)用控制程序初始化時(shí)建立。一旦媒體流部件10的標(biāo)識(shí)被建立,過(guò)程調(diào)用即被送到正確的媒體流部件10提供服務(wù)。
除了以下指出的之外,API函數(shù)是按同步方式處理的,即一旦一函數(shù)調(diào)用返回到調(diào)用者,那么該函數(shù)已完成并且在媒體流部件10中不需要輔加處理。通過(guò)將API函數(shù)設(shè)置為同步操作,就可以免除用于文本交換、異步信令和反饋的輔加處理開(kāi)銷。由于對(duì)實(shí)時(shí)的嚴(yán)格要求,這種性能對(duì)于視頻服務(wù)器應(yīng)用是非常重要的。
對(duì)API函數(shù)的處理是按接收請(qǐng)求的順序進(jìn)行的。這樣就可以保證按正確的順序處理用戶操作。例如,一視頻在被播放之前應(yīng)先聯(lián)接(建立)。另一例子是如果將一后面跟著“暫停”請(qǐng)求的“播放”請(qǐng)求的順序改變了,那么,對(duì)用戶來(lái)說(shuō)將產(chǎn)生完全不同的結(jié)果。
VS-PLAY函數(shù)啟動(dòng)視頻的播放并且立即將控制返回給調(diào)用者(不需等待視頻播放完)。這種結(jié)構(gòu)的合理之處在于通常播放一視頻的所需的時(shí)間都很長(zhǎng)(幾分鐘至幾小時(shí))并且無(wú)法預(yù)測(cè)(有可能有暫停或停止命令),所以通過(guò)按異步方式執(zhí)行,VS-PLAY函數(shù)可以使它盡快釋放資源,否則的話無(wú)法對(duì)這些資源進(jìn)行預(yù)測(cè),它們將被長(zhǎng)時(shí)間地占用。
在視頻播放完成時(shí),媒體流部件10向由應(yīng)用控制程序指定的一系統(tǒng)/端口地址發(fā)出一異步調(diào)用,通知應(yīng)用控制程序視頻播完。應(yīng)用控制程序在調(diào)用API的VS-CONNECT函數(shù)聯(lián)接視頻時(shí)指定系統(tǒng)/端口地址。應(yīng)注意,VS-PLAY的調(diào)用返回系統(tǒng)/端口地址是在各個(gè)視頻級(jí)上指定的。這意謂著應(yīng)用控制程序可自由地特視頻完成報(bào)文發(fā)送給任意一控制點(diǎn)。例如,某一應(yīng)用程序可能希望使用一個(gè)中央系統(tǒng)/端口很多或所有的客戶控制系統(tǒng)處理視頻完成報(bào)文。而在另一應(yīng)用程序中,可能使用幾個(gè)不同的系統(tǒng)/端口地址為一個(gè)客戶控制系統(tǒng)處理視頻完成報(bào)文。
API的這種結(jié)構(gòu)可以使媒體流部件10能夠支持多個(gè)并行的具有異型硬件和軟件平臺(tái)的客戶控制系統(tǒng),能有效地同時(shí)處理同步與異步操作,同時(shí)還能保證操作請(qǐng)求的正確順序。例如,媒體流部件10可以使用運(yùn)行在PS/2系統(tǒng)上的IBM OS/2操作系統(tǒng),而客戶控制系統(tǒng)使用的是運(yùn)行在RS/6000系統(tǒng)上的IBM AIX操作系統(tǒng)(IBM,OS/2、PS/2,AIX和RS/6000都是國(guó)際商業(yè)機(jī)械公司的商標(biāo))。
D4.客戶/媒體流部件間的通信可以通過(guò),例如,已知的遠(yuǎn)程過(guò)程調(diào)用(PRC)機(jī)制來(lái)進(jìn)行一客戶控制系統(tǒng)與媒體流部件間的通信,圖11給出了用于一客戶控制系統(tǒng)11與媒體流部件10之間通信的PRC結(jié)構(gòu)。在調(diào)用媒體流部件函數(shù)中,客戶控制系統(tǒng)11作為PRC客戶,而媒體流部件10則作為PRC服務(wù)器。這在圖11中表示為(A)。然而,諸如VS-PLAY等異步函數(shù)的完成會(huì)使媒體流部件10產(chǎn)生一個(gè)對(duì)客戶控制系統(tǒng)11的調(diào)用。在這種情況下,客戶控制系統(tǒng)11作為PRC服務(wù)器,而媒體流部件10是PRC客戶。這在圖11中表示為(B)。
D4.1客戶控制系統(tǒng)11在客戶控制系統(tǒng)11中,用戶命令行接口由三個(gè)內(nèi)部并行處理的進(jìn)程(調(diào)度組)組成。第一進(jìn)程對(duì)一用戶命令行輸入進(jìn)行語(yǔ)言分析并且通過(guò)調(diào)用API函數(shù)完成所請(qǐng)求的操作,其中調(diào)用API函數(shù)會(huì)導(dǎo)致對(duì)媒體流部件10的PRC調(diào)用(圖11中的(A))。該進(jìn)程還可以跟蹤各輸出端口上正在建立和播放的視頻的狀態(tài)。第二進(jìn)程周期地對(duì)照指定的時(shí)間期限檢驗(yàn)每一視頻已用的播放時(shí)間。如果一視頻已達(dá)到其時(shí)間期限,該視頻將被停止和斷開(kāi),并且開(kāi)始播放該輸出端口等待隊(duì)列中的下一視頻(如果有的話)??蛻艨刂葡到y(tǒng)11中的第三進(jìn)程作為一PRC服務(wù)器接收來(lái)自媒體流部件10的VS-PLAY異步中斷通知(圖11中的(B))。
D4.媒體流部件10在媒體流部件10啟動(dòng)期間,有兩個(gè)并行進(jìn)程(調(diào)度組)被喚醒以支持客戶控制系統(tǒng)11與媒體體流部件10之間的RPC。第一進(jìn)程作為一PRC服務(wù)器(圖11中的(A))。用于來(lái)自客戶控制系統(tǒng)11的API函數(shù)調(diào)用的該第一進(jìn)程接收PRC調(diào)用并且調(diào)度合適的過(guò)程完成所請(qǐng)求的函數(shù)(如VS-CONNECT,VS-PLAYVS-DISCONNECT)。第二進(jìn)程作為一PRC客戶,用于調(diào)用合適的客戶控制系統(tǒng)地址用異步結(jié)束事件通知應(yīng)用控制程序。該進(jìn)程將其自己封鎖在一內(nèi)部管道上等待,該管道由其它處理視頻播放的進(jìn)程寫入。當(dāng)視頻播完或出現(xiàn)一非正常終止?fàn)顟B(tài)時(shí),處理視頻播放的進(jìn)程;向該管道中寫入一報(bào)文。被鎖住的進(jìn)程讀該報(bào)文并將一PRC調(diào)用(圖11中的(B))送到合適的客戶控制系統(tǒng)11的端口地址上,從而使客戶控制系統(tǒng)能夠更新其狀態(tài)并采取相應(yīng)的動(dòng)作。
E.用于視頻傳送的媒體流部件的存儲(chǔ)管理及優(yōu)化本發(fā)明的一個(gè)方面是提供能夠在視頻傳送環(huán)境里融入高速緩存管理與相關(guān)I/O操作的集成機(jī)制。下面對(duì)本發(fā)明的這方面進(jìn)行詳細(xì)描述。
在高速緩存控制器和操作系統(tǒng)的文件子系統(tǒng)中都加入了用于高速緩存管理的現(xiàn)有技術(shù)機(jī)制,它們適用于一般目的,但無(wú)法滿足視頻傳送的需要。
圖12描述了一種把傳統(tǒng)的高速緩存管理機(jī)制用于視頻傳送的方法。該技術(shù)使用了一被分割成兩個(gè)磁盤文件160,162(因?yàn)閷?duì)于一個(gè)文件來(lái)說(shuō)太大)的視頻和一包含一文件系統(tǒng)164、一媒體流服務(wù)器168和一視頻驅(qū)動(dòng)器170的處理器。它還描述兩個(gè)用于兩視頻流的適配器端口172,174。圖12還描述了將盤文件160的一段讀到主存儲(chǔ)器并接著將其寫入第一視頻端口172的數(shù)據(jù)流,以讀相同的段并將其寫入一第二視頻端口174的數(shù)據(jù)流。圖12用于描述現(xiàn)有技術(shù)中存在的而本發(fā)明的媒體流體件10可解決或克服的問(wèn)題。
圖12中步驟A1-A12的描述A1.媒體服務(wù)器168調(diào)和文件系統(tǒng)166將段SK讀進(jìn)視頻驅(qū)動(dòng)器170中的一緩存。
A2.文件系統(tǒng)166將SK的一部分讀進(jìn)文件系統(tǒng)166中的一高速緩存。
A3.文件系統(tǒng)166將高速緩存?zhèn)浞莸揭曨l驅(qū)動(dòng)器170中的一緩存。
步驟A2、A3被重復(fù)多次。
A4、文件系統(tǒng)166調(diào)用視頻驅(qū)動(dòng)器170將SK寫到視頻端口1(176)。
A5.視頻驅(qū)動(dòng)器170將SK部分備份到視頻驅(qū)動(dòng)器170的一緩存中。
A6視頻驅(qū)動(dòng)器170將緩存的內(nèi)容寫到視頻端口1(176)。
步驟A5和A6重復(fù)多次。
步驟A7-A12作用與以上相類似,只不過(guò)將端口1改成端口2。當(dāng)需要用于端口2的SK的一部分時(shí),它正好存在文件系統(tǒng)166的高速緩存中,則可以跳過(guò)步驟A8。
正如人們已認(rèn)識(shí)到的,視頻傳送涉及海量數(shù)據(jù)的多數(shù)據(jù)流傳送。兩種傳統(tǒng)用于優(yōu)化高速緩存的模式(隨機(jī)與順序)都不適用于這種綜合使用模式。如果選擇隨機(jī)模式,那么大多數(shù)高速緩存內(nèi)包含的將是最近被讀過(guò)的視頻段數(shù)據(jù),但在它們期滿之前,線上將無(wú)視頻流讀它們。如果選擇順序模式,那么最近一次被使用的高速緩存將首先被再次使用,所以能在文件系統(tǒng)高速緩存中找到需要段部分的幾率非常小。正如前面描述的那樣,視頻傳送的一個(gè)非常重要問(wèn)題是等時(shí)地傳送數(shù)據(jù)流,即不間斷,否則用戶將提出異議。如以上所述的,現(xiàn)有技術(shù)的高速緩存機(jī)制不能保證將一視頻數(shù)據(jù)流等時(shí)地傳送到用戶。
圖12中還敘述以下問(wèn)題a.磁盤和視頻輸入/輸出端口都是按相對(duì)較小段配置的,以滿足一般的文件系統(tǒng)的需要。這將比按視頻段大小來(lái)設(shè)計(jì)花費(fèi)更多的處理時(shí)間、盤查找開(kāi)銷及總線開(kāi)銷。
b.在文件系統(tǒng)高速緩存與媒體服務(wù)器緩存之間及在媒體服務(wù)器緩存與視頻驅(qū)動(dòng)器緩存之間備份數(shù)據(jù)所需的處理時(shí)間是一不希望出現(xiàn)的開(kāi)銷,應(yīng)消除它。
c.如使用兩個(gè)視頻緩存(即172、174)在相同時(shí)刻包含相同視頻段的備份),則沒(méi)有充份利用主存儲(chǔ)器。當(dāng)同樣數(shù)據(jù)既存儲(chǔ)在文件系統(tǒng)高速緩存中也存儲(chǔ)也視頻驅(qū)動(dòng)器的緩存中時(shí)會(huì)更浪費(fèi)。
E2.視頻優(yōu)化高速緩存的管理根據(jù)本發(fā)明的高速緩存的管理主要分三個(gè)方面通過(guò)流共享段長(zhǎng)度的高速緩存;預(yù)測(cè)的高速緩存;同步以優(yōu)化高速緩存。
E2.1通過(guò)流共享段長(zhǎng)度的高速緩存按固定大小段存儲(chǔ)與管理視頻。將段按順序編號(hào),這樣,例如段5與段6相比,段5更靠近一視頻的開(kāi)始部分。對(duì)段的大小進(jìn)行選擇以優(yōu)化盤的I/O、視頻的I/O、總線的使用和處理器的使用。一個(gè)視頻段具有固定的內(nèi)容,它只與視頻名稱與段的序號(hào)有關(guān)。所有到盤上和視頻輸出端的I/O,以及所有高速緩存操作都根據(jù)段界對(duì)齊。
本發(fā)明的這一方面根據(jù)底層硬件是否支持同層對(duì)等操作采取兩種模式,其中同層對(duì)等操作是指能在一通信節(jié)點(diǎn)14中,直接在盤與視頻輸出卡之間傳送數(shù)據(jù),而無(wú)須經(jīng)過(guò)通信節(jié)點(diǎn)中的高速緩存。對(duì)于同層對(duì)等操作,高速緩存在磁盤存儲(chǔ)單元16中。對(duì)于不支持同層對(duì)等操作的硬件,直接將數(shù)據(jù)按段大小設(shè)計(jì)的塊讀進(jìn)按頁(yè)對(duì)齊連續(xù)的高速緩存中(在通信節(jié)點(diǎn)14中),以使I/O操作和數(shù)據(jù)移動(dòng)最小。(參見(jiàn)以下的視頻優(yōu)化數(shù)字存儲(chǔ)分配)。
數(shù)據(jù)一直保留在同一地址上,并且直接從該地址寫,直到不再需要該視頻段為止。當(dāng)視頻段存在高速緩存中時(shí),所有需要輸出視頻段的視頻流訪問(wèn)相同的高速緩沖。于是,許多用戶只使用一單個(gè)視頻段的拷貝,從而避免使用用于讀相同視頻段拷貝的額外I/O,處理器和緩沖存儲(chǔ)器。對(duì)于同層對(duì)等操作,在通信節(jié)點(diǎn)14上可省去一半的I/O及幾乎所有的處理器和主存儲(chǔ)器。
圖13描述了本發(fā)明的一個(gè)實(shí)施例,用于不具有同層對(duì)等操作的系統(tǒng)。將視頻數(shù)據(jù)在磁盤存儲(chǔ)節(jié)點(diǎn)16上分割成線程,從而將偶數(shù)段分在第一般存儲(chǔ)節(jié)點(diǎn)180上,奇數(shù)段分配至第二盤存儲(chǔ)節(jié)點(diǎn)182上(參見(jiàn)H節(jié))。
圖13亦描述了這種配置的數(shù)據(jù)流。正如能見(jiàn)到的,將段SK從盤182中讀出,送到通信節(jié)點(diǎn)186的一高速緩沖中,然后再將其寫到視頻輸出端口1和2。通過(guò)一I/O操作將視頻數(shù)據(jù)段SK直接讀入高速緩存184,然后寫進(jìn)端口1。接著通過(guò)I/O操作將視頻數(shù)據(jù)段SK從高速緩存184寫到端口2。
可以看出,圖13描述的系統(tǒng)可完全克服圖12描述的傳統(tǒng)方式帶來(lái)的問(wèn)題。
圖14描述一用于包含支持一盤存儲(chǔ)節(jié)點(diǎn)和一視頻輸出卡之間同層對(duì)等操作的配置的數(shù)據(jù)流。一對(duì)盤驅(qū)動(dòng)器190、192包含一被分割成線程的視頻圖像,可以不通過(guò)一插入的通信節(jié)點(diǎn)14的主存儲(chǔ)器而直接將其直接饋送到一對(duì)視頻端口194、196中。
這種配置的數(shù)據(jù)流是直接從盤192中將段SK經(jīng)過(guò)盤高速緩存198讀到端口1(一個(gè)I/O操作)。
如果接著是一將段SK讀到端口2的調(diào)用,那么,段SK將直接從盤高速緩存198被讀到端口2(一個(gè)I/O操作)。
當(dāng)用于端口1的被讀進(jìn)盤高速緩存器198的數(shù)據(jù)仍存在供寫至端口2時(shí),使用存儲(chǔ)器,總線和處理器等資源的最佳方法是將視頻段傳送到端口1和端口2。
可以將同層對(duì)等操作和主存儲(chǔ)器高速緩存機(jī)制結(jié)合起來(lái),例如,對(duì)于只在通信節(jié)點(diǎn)14一端口上播放的視頻圖像使用同層對(duì)等操作,而對(duì)在通信節(jié)點(diǎn)14多端口上播放的視頻圖像使用通信節(jié)點(diǎn)14的高速緩存。
一種在盤存儲(chǔ)節(jié)點(diǎn)與通信節(jié)點(diǎn)之間分配高速緩存的策略是使一給定硬件配置所支持的視頻流的數(shù)量達(dá)到最大。如果支持的視頻流數(shù)已知,那么就可以確定高速緩存的大小與布局。
E2.2可預(yù)測(cè)的高速緩存。
一種可預(yù)測(cè)的高速緩存機(jī)制可以滿足視頻傳送的需要。視頻圖一般來(lái)說(shuō)是可預(yù)測(cè)的。通常是從開(kāi)始部分開(kāi)始播放,按一固定速率在一預(yù)定期間內(nèi)播放,只有到達(dá)結(jié)束部分才停下來(lái)。媒體流部件10的高速緩存策略利用這種可預(yù)測(cè)性使在任一時(shí)刻高速緩存的視頻段組達(dá)到最優(yōu)。
這種可預(yù)測(cè)性既可用來(lái)調(diào)度一讀操作以填充一高速緩存,也可以驅(qū)動(dòng)用于重新由請(qǐng)高速緩存的算法。那些其存儲(chǔ)內(nèi)容無(wú)法預(yù)測(cè)的緩存在其期滿之前將被立即重新申請(qǐng),釋放空間以用于較高優(yōu)先級(jí)。那些其存儲(chǔ)內(nèi)容在一合理時(shí)間內(nèi)正在線上使用的緩存將不被重新申請(qǐng),即使其最后一次使用是在很長(zhǎng)時(shí)間之前也不重新申請(qǐng)。
更具體說(shuō),給定視頻V1,V2……,與播放這些視頻的流S1,S2……每個(gè)流sj播放一視頻V(sj)并且寫V(sj)的R-th段的預(yù)定時(shí)間是一線性函數(shù)
t(sj,k)=a(sj)+r(sj)k,其中a(sj)與開(kāi)始時(shí)間和開(kāi)始段號(hào)有關(guān),r(sj)是播放一段所需的恒定時(shí)間,并且t(sj,k)是播放流sj的k-th段的預(yù)定時(shí)間。
這些信息被用于調(diào)度一讀操作以填充一高速緩存和驅(qū)動(dòng)高速緩存再使用算法。一些管理高速緩存操作的算法的例子如下例子A在重新使用任何其播放是可預(yù)測(cè)的緩存之前,重新使用包含一無(wú)法預(yù)測(cè)其播放的視頻段的高速緩存。滿足這個(gè)限制之后,播放視頻的頻率和段號(hào)被用于確定保持視頻段被高速緩沖存儲(chǔ)的優(yōu)先級(jí)。將組內(nèi)的最高保留優(yōu)先級(jí)分配給在一頻率播放視頻中最早出現(xiàn)的視頻段。
例子B.
對(duì)于包含一可預(yù)測(cè)其播放的視頻段的高速緩沖,預(yù)測(cè)的下一播放時(shí)間和該視頻還剩下的未播放的流的數(shù)量被用于確定保持視頻段被高速緩存的優(yōu)先級(jí)。這種確定優(yōu)先級(jí)的標(biāo)準(zhǔn)可以使一高速緩存的保留優(yōu)級(jí)被設(shè)置或重新使用的高速緩存緩沖器I/O預(yù)測(cè)數(shù)與其保留的預(yù)測(cè)數(shù)之間的差。
例如,如果V5正在S7上播放V8正在S2和S3上播放,S2比S3滯后5秒鐘,和V4正在流S12至S20上播放,每一流比后一流滯后30秒鐘,那么已被S7使用,包含V5數(shù)據(jù)的緩存將首先被重新使用,接著是已被S2使用的包含V8數(shù)據(jù)的緩存,
在這之后是已被S12使用的包含V4數(shù)據(jù)的緩存,最后是具有最低保留優(yōu)先級(jí)的其它緩存。
高速緩存管理算法為各種特殊例子提供不同方案,這些特殊例子如聯(lián)接操作(可以預(yù)測(cè)在最近將被播放的一視頻段,但不能預(yù)測(cè)準(zhǔn)確時(shí)間)和停止操作(當(dāng)先前預(yù)測(cè)必須被修改時(shí))。
E2.3使流同步以優(yōu)化高速緩存希望將所有請(qǐng)求一特定視頻段的流聚類,以使該段保留在高速緩存的時(shí)間最小,從而為其它視頻流留下更多的系統(tǒng)容量。對(duì)于視頻播放來(lái)說(shuō),段播放的速率通常是固定的。然而,在一些視頻傳送應(yīng)用中,播放的速率是可變的(即可以將視頻和音頻輕微地加速與減速,而不會(huì)對(duì)人們?cè)斐捎绊?。此外,傳送的視頻可能不是為了人們立即觀看。當(dāng)速率上的變化是允許的時(shí)候,以最小允許的速率播放前邊的流,并以最大允許的速率播放后邊的流,以消除流之間的間隙并減少段保留在緩存中的時(shí)間。
在聯(lián)接和播放操作期間也考慮將使用同一視頻表示的流聚類。例如,VS-PLAY-AT-SIGNAL可被用于在同一時(shí)刻在多個(gè)流上開(kāi)始播放一視頻。這可以改進(jìn)聚類,留給其它視頻流更多的系統(tǒng)資源并提高系統(tǒng)的有效容量。更具體地講,通過(guò)將一流延遲一段時(shí)間以使其在時(shí)間上和一第二流重合,這樣的聚類操作可以使高速緩存中段的一個(gè)備份被兩個(gè)流使用,從而節(jié)省處理用的資源。
F.視頻優(yōu)化數(shù)字存儲(chǔ)器的分配數(shù)字視頻數(shù)據(jù)具有與正常數(shù)據(jù)處理的數(shù)據(jù)不同的屬性,它是非隨機(jī)的,順序的、大量的并且在時(shí)間上比內(nèi)容上更嚴(yán)格。多數(shù)據(jù)流必須按高比特率傳送,并將數(shù)據(jù)路徑上所有非必要開(kāi)銷減到最小。需要采用好的緩存管理方法,以使媒體流部件10的效率和容量最大。存儲(chǔ)器分配、釋放和訪問(wèn)是這種處理中的關(guān)鍵因素,不正確的使用會(huì)使存儲(chǔ)器分成小的碎片,降低效率,延遲或損壞視頻數(shù)據(jù)。
本發(fā)明的媒體流部件10使用了一種存儲(chǔ)分配過(guò)程,它可以使高層應(yīng)用程序?yàn)閿?shù)字視頻數(shù)據(jù)分配和釋放不可交換的、頁(yè)面對(duì)齊、連續(xù)的存儲(chǔ)段(塊)。該過(guò)程為視頻傳送應(yīng)用程序提供一簡(jiǎn)單的、高層接口,并且使用低層操作系統(tǒng)模塊與低碼段按要求大小分配存儲(chǔ)塊。在物理存儲(chǔ)器上這些存儲(chǔ)塊是連續(xù)的和固定的,可以消除虛擬存儲(chǔ)中交換或分頁(yè)帶來(lái)的延遲與損壞,并能消除在數(shù)據(jù)傳送軟件中不得不使用聚焦/分散程序而帶來(lái)的復(fù)雜性。
該高層接口還送回各種有關(guān)被請(qǐng)求存儲(chǔ)塊的編址方式值,從而不需要成本較高的動(dòng)態(tài)地址轉(zhuǎn)換以適應(yīng)媒體流環(huán)境中各種同時(shí)運(yùn)行著的存儲(chǔ)模塊的需要。其它設(shè)備驅(qū)動(dòng)器(如一硬盤驅(qū)動(dòng)器)可以直接訪問(wèn)其物理地址、以及由各種應(yīng)用程序使用的進(jìn)程線性地址與進(jìn)程分段地址。一釋放程序可以將一存儲(chǔ)塊返回給系統(tǒng),這樣由于整個(gè)存儲(chǔ)器是作為一單個(gè)塊返回的,就消除了存儲(chǔ)碎片問(wèn)題。
H.用于存儲(chǔ)分配的命令1.分配物理存儲(chǔ)器按請(qǐng)求大小分配存儲(chǔ)塊,返回一具有存儲(chǔ)區(qū)的各個(gè)存儲(chǔ)模塊地址以及塊的長(zhǎng)度的控制塊。
2.釋放物理存儲(chǔ)器將存儲(chǔ)塊返回給操作系統(tǒng)并釋放相關(guān)的存儲(chǔ)器指針。
F2應(yīng)用程序接口在系統(tǒng)配置文件中定義一設(shè)備驅(qū)動(dòng)器并在系統(tǒng)啟動(dòng)時(shí)自動(dòng)將其初始化。一應(yīng)用程序然后打開(kāi)該設(shè)備驅(qū)動(dòng)器,將其作為一偽設(shè)備,并獲取其標(biāo)記,接著使用接口以傳送命令與參數(shù)。所支持的命令是分配存儲(chǔ)器和釋放存儲(chǔ)器,參數(shù)是存儲(chǔ)器大小及邏輯存儲(chǔ)器的地址指針。這些地址在分配存儲(chǔ)器的物理塊時(shí)被指定并將物理地址轉(zhuǎn)化成邏輯地址。如果分配失敗,則返回零值。
圖15表示一組使用本過(guò)程的應(yīng)用程序。一32位應(yīng)用程序向緩存1發(fā)出數(shù)據(jù)請(qǐng)求,將數(shù)據(jù)修改之后放到緩存2中。一個(gè)使用分段地址的16位應(yīng)用程序或一物理設(shè)備(例如一硬盤驅(qū)動(dòng)器),可以直接使用該緩存。通過(guò)使用這種分配模式預(yù)分配固定的、物理的和連續(xù)的緩存,每個(gè)應(yīng)用程序可以使用其自己的直接地址訪問(wèn)數(shù)據(jù),而不需要地址轉(zhuǎn)換并消除由動(dòng)態(tài)存儲(chǔ)分配所引起的延遲。一視頻應(yīng)用程序可以使用這種方法,通過(guò)從物理盤中直接將視頻數(shù)據(jù)放到緩存中,然后直接將其傳送到輸出設(shè)備,不需要在處理中多次移動(dòng),從而使數(shù)據(jù)移動(dòng)減至最小。
G.用于視頻應(yīng)用的盤驅(qū)動(dòng)最優(yōu)化將視頻流等時(shí)地傳送到其目的地是非常重要的,即不帶有任何人眼能感覺(jué)到的圖象移動(dòng)不連續(xù)和人耳能感覺(jué)到的聲音的間斷。當(dāng)前的盤技術(shù)涉及周期性行為,例如運(yùn)行可在數(shù)據(jù)訪問(wèn)中引起延遲的可預(yù)測(cè)錯(cuò)誤分析。盡管大多數(shù)I/O操作能在100微秒內(nèi)完成,100微秒的周期性延遲是常見(jiàn)的并且可能發(fā)生整整3秒的延遲。
媒體流部件10能夠有效地維持高數(shù)據(jù)傳送速率。如果一用于常規(guī)數(shù)據(jù)存儲(chǔ)與檢索的盤驅(qū)動(dòng)器沒(méi)有為視頻服務(wù)器應(yīng)用程序優(yōu)化,那么對(duì)于存儲(chǔ)器盤緩存,SCSI總線及盤容量的使用上都不夠有效。
根據(jù)本發(fā)明一個(gè)方面的盤驅(qū)動(dòng)器能夠通過(guò)優(yōu)化盤參數(shù)平滑、等時(shí)地傳送大量數(shù)據(jù)。這些參數(shù)可以在制造專用于視頻服務(wù)器的盤驅(qū)動(dòng)器時(shí)加入,或者它們是可以通過(guò)一命令機(jī)制設(shè)置的變量。
設(shè)置控制周期性動(dòng)作的參數(shù)以消除延遲或使延遲最小。設(shè)置影響緩存使用的參數(shù)以在一單個(gè)讀或?qū)懖僮髦袀魉痛罅康臄?shù)據(jù)。調(diào)整影響一SCSI總線與一處理器總線之間速度匹配的參數(shù)以使數(shù)據(jù)傳送既不太快也不太慢。磁盤媒體本身按一扇區(qū)大小格式化以使有效容量與帶寬最大。
為了完成最優(yōu)化按最大物理扇區(qū)大小格式化物理盤媒體。這種格式化方式可以使在扇區(qū)之間的間隙中所浪費(fèi)的空間最小,并且使設(shè)備的容量和脈沖串?dāng)?shù)據(jù)速率最大,一最佳方案是744字節(jié)的扇區(qū)。
磁盤可以有一相關(guān)聯(lián)的緩存。該緩存被用于從磁盤媒體中讀數(shù)據(jù),并將其異步地送到總線上用于數(shù)據(jù)傳送的。同樣,該緩存還被用于保存來(lái)自于總線的數(shù)據(jù),并將其異步地送到盤媒體中。該緩存可被分成一些段,而段的數(shù)量是由一參數(shù)控制的。如果分的段數(shù)太多,那么每一段太小無(wú)法容納在單個(gè)傳送中所請(qǐng)求的數(shù)據(jù)量。當(dāng)緩存滿時(shí),設(shè)備必須啟動(dòng)再聯(lián)接并且開(kāi)始傳送,如果總線/設(shè)備在該時(shí)刻沒(méi)有準(zhǔn)備好,將循環(huán)等待。在最佳實(shí)施例中,設(shè)定該值,以使每一緩存段至少與數(shù)據(jù)傳送大小一樣,即設(shè)定成1。
在讀操作中,當(dāng)一緩存段開(kāi)始填充時(shí),盤試圖與總線再聯(lián)接,以將數(shù)據(jù)傳送到主機(jī)。盤試圖再聯(lián)接的時(shí)刻影響總線使用的效率。總線與盤的相對(duì)速度確定了在填充操作期間開(kāi)始向主機(jī)傳送數(shù)據(jù)的最佳時(shí)刻。同樣,在寫操作時(shí),緩存將被來(lái)自于主機(jī)的數(shù)據(jù)填充,在填充過(guò)程的某一時(shí)刻,盤應(yīng)試圖與總線再聯(lián)接。準(zhǔn)確的速度匹配可以減少在SCSI總線的斷開(kāi)/再選擇循環(huán)次數(shù),從而產(chǎn)生較高的吞吐量。
控制試圖再聯(lián)接的時(shí)刻的參數(shù)被稱之為“讀緩存滿率”與“寫緩存空率”,對(duì)于視頻數(shù)據(jù)來(lái)說(shuō),用于計(jì)算這些值的較佳算法是256×(瞬時(shí)SCSI數(shù)據(jù)傳送率—持續(xù)磁盤數(shù)據(jù)傳送率)/瞬時(shí)SCSI數(shù)據(jù)傳送率。目前用于緩存滿率和緩存空率的較佳值是204。
一些磁盤驅(qū)動(dòng)器的設(shè)計(jì)需要隨溫度變化周期地重新標(biāo)定磁頭位置。對(duì)一些類型磁盤還可以進(jìn)一步控制是在同一時(shí)間對(duì)在一個(gè)裝配中的所有磁頭做熱補(bǔ)償,還是在一時(shí)刻只對(duì)一磁頭做熱補(bǔ)償。如果在同一時(shí)間對(duì)所有磁頭做熱補(bǔ)償,則在視頻數(shù)據(jù)讀操作過(guò)程中會(huì)出現(xiàn)幾百毫秒的延遲。讀數(shù)據(jù)操作期間的較長(zhǎng)延遲會(huì)需求較大的主存儲(chǔ)器緩存,以使數(shù)據(jù)流平滑及消除多媒體圖像中的人工痕跡。將磁頭熱補(bǔ)償控制函數(shù)編程的較好方法是同一時(shí)刻對(duì)一個(gè)頭補(bǔ)償。
錯(cuò)誤日志的保存及可預(yù)測(cè)故障的分析都需幾秒鐘才能完成。如果沒(méi)有較大的主存儲(chǔ)器緩存平滑數(shù)據(jù)、消除多媒體圖像中的人工痕跡,則視頻服務(wù)器應(yīng)用將無(wú)法忍受這種延遲??臻e時(shí)間限制函數(shù)的參數(shù)可被用于阻止錯(cuò)誤日志的保存和空閑時(shí)間函數(shù)的運(yùn)行。最佳實(shí)施例設(shè)置了一參數(shù)來(lái)限制這些函數(shù)。
H.用于視頻數(shù)據(jù)的數(shù)據(jù)線程在視頻應(yīng)用程序中,有必要傳送來(lái)自相同數(shù)據(jù)(例如影片)的多個(gè)流。這種需要可以轉(zhuǎn)化成需要以高的數(shù)據(jù)速率讀數(shù)據(jù);該數(shù)據(jù)速率等于傳送一個(gè)流所需的數(shù)據(jù)速率和以同時(shí)訪問(wèn)相同數(shù)據(jù)的流數(shù)。通??梢酝ㄟ^(guò)保存數(shù)據(jù)的多個(gè)備份來(lái)解決這個(gè)問(wèn)題,但這會(huì)增加系統(tǒng)的額外費(fèi)用。本發(fā)明的媒體流部件10使用一種可服多于來(lái)自一單個(gè)數(shù)據(jù)備份的多個(gè)同時(shí)流的技術(shù)。該項(xiàng)技術(shù)考慮了一單個(gè)流的數(shù)據(jù)速率以及可能同時(shí)訪問(wèn)數(shù)據(jù)的流的數(shù)量。
上述數(shù)據(jù)線程涉及一邏輯文件的概念。邏輯文件的數(shù)據(jù)被分塊存儲(chǔ)在多個(gè)文件部分,稱之為線程。每一線程可以存在不同的磁盤卷上,所以允許邏輯文件跨過(guò)多個(gè)物理盤。盤既可以是本地的,也可以是遠(yuǎn)程的。
當(dāng)數(shù)據(jù)被寫到邏輯文件時(shí),它被分解成邏輯長(zhǎng)度(即,段)并順序地放置到線程中。圖16描述了一個(gè)用于視頻1的邏輯文件,它被分成m段或塊,每一段的大小是一特定值,例如是256KB。最后一段可能只填有部分?jǐn)?shù)據(jù)。將一數(shù)據(jù)段放置到第一線程中,并將在該數(shù)據(jù)段之后的下一段放置到第二線程中,等等。當(dāng)每一線程中都已有一數(shù)據(jù)段時(shí),則將下一段寫到第一線程中。于是,如果一個(gè)文件被分割成N個(gè)線程,那么線程1將包含段1,N+1,2*N+1,等,線程2將包含段2,N+2,2*N+2,等,以此類推。
已知在數(shù)據(jù)處理RAID排列中使用類似的數(shù)據(jù)線程分割,其中線程分割的目的是在盤上數(shù)據(jù)丟失時(shí)保證數(shù)據(jù)的完整性,一個(gè)這樣的RAID存儲(chǔ)器系統(tǒng),指定N個(gè)盤中的一個(gè)存儲(chǔ)數(shù)據(jù)恢復(fù)用的奇偶校驗(yàn)數(shù)據(jù)。媒體流部件10的盤存儲(chǔ)節(jié)點(diǎn)16被構(gòu)造成一RAID結(jié)構(gòu),但不需要奇偶校驗(yàn)數(shù)據(jù)(因?yàn)橐曨l數(shù)據(jù)的備份可以來(lái)自于磁帶存儲(chǔ))。
圖17描述了這種數(shù)據(jù)排列的第一重要的方面,即將每一視頻圖像分解成分布在各個(gè)可用盤驅(qū)動(dòng)器上的數(shù)據(jù)塊或段,以保證能同時(shí)從多個(gè)驅(qū)動(dòng)器中訪問(wèn)每個(gè)視頻圖像,而不必需要多個(gè)備份。于是線程概念不是為了數(shù)據(jù)整體性和性能方面的原因,而是為了并行性和帶寬。于是媒體流部件10通過(guò)播放段而不是字節(jié)塊等將視頻圖像分割成線程。
如圖17所示,一視頻數(shù)據(jù)文件1被分成m段和4個(gè)線程,線程1是一包含視頻文件1的段1,5,9等的文件;線程2是一包含視頻文件1的2,6,10段、等的文件;線程3是一包含視頻文件1的3,7,11段等的文件并且線程4是一包含視頻文件1的4,8,12段,等的文件,直到視頻文件1的所有m段都被包含在4個(gè)線程文件之一。
下面給出所描述的線程分割策略以及參數(shù)的計(jì)算,從而使每個(gè)視頻的線程分割得以完善。
首先,選擇段的大小,以從盤上獲得一合理有效的數(shù)據(jù)速率。但它不能太大,反過(guò)來(lái)影響等時(shí)性。此外,它應(yīng)足夠小,以便能緩存/高速緩存在存儲(chǔ)器中。一個(gè)較佳段的大小是256KB,并且當(dāng)視頻圖像數(shù)據(jù)速率變化范圍從128KB/秒至512KB/秒時(shí)是恒定的。如果視頻數(shù)據(jù)速率較高,最好使用較大的段。段的大小與用于存儲(chǔ)在相同媒體上的視頻圖像區(qū)的I/O操作的基本單位有關(guān)。所用原則是使用一包含大約0.5-2秒的視頻數(shù)據(jù)的段。
接著,確定線程數(shù),即在其上分布著視頻數(shù)據(jù)的盤的個(gè)數(shù)。該值應(yīng)足夠大,以維持所需要的總的數(shù)據(jù)速率??梢愿鶕?jù)一預(yù)定的使用速率分別為每個(gè)視頻圖像計(jì)算該值。此外,每一盤有一與之相關(guān)的邏輯卷。將每個(gè)視頻圖像分解成一些組成文件,組成文件數(shù)與所需的線程數(shù)相等。每個(gè)組成文件被存儲(chǔ)在不同的邏輯卷上。例如,如果必須按每流250KB/秒的數(shù)據(jù)速率傳送視頻數(shù)據(jù),并且該視頻有30個(gè)同時(shí)流,例如每隔15秒開(kāi)始,那么可以獲得一個(gè)至少是7.5MB/秒的總的數(shù)據(jù)速率。如果,一盤驅(qū)動(dòng)器平均能支持3MB/SEC,那么視頻圖像至少需要3個(gè)線程。
從盤中讀數(shù)據(jù)的有效速率受到讀操作大小的影響。例如,如果從盤中按4KB塊讀數(shù)據(jù)(在盤上的一隨機(jī)位置),有效數(shù)據(jù)速率可能是1MB/秒,而如按256KB塊讀數(shù)據(jù),數(shù)據(jù)速率將是3MB/秒。但是,如果按非常大的塊讀數(shù)據(jù),所需的緩存也將增大,并且因?yàn)樵跀?shù)據(jù)被訪問(wèn)之前讀操作必須完成,所以會(huì)增加等待與延遲。于是在選擇數(shù)據(jù)傳送的大小時(shí)存在一折衷。要根據(jù)設(shè)備的屬性及存儲(chǔ)器的配置選擇傳送的大小。最好,將數(shù)據(jù)傳送的大小等于所選段的大小。對(duì)于一給定段的大小,設(shè)備的有效數(shù)據(jù)速率是確定的。例如,對(duì)于一些盤設(shè)備,一大小為256KB的段是有效使用盤驅(qū)動(dòng)器(有效數(shù)據(jù)速率3MB/秒)和緩存大小(256MB)的好的均衡值。
如果不使用線程,所能支持的最大流數(shù)將受到盤的有效數(shù)據(jù)速率的限制,例如,如果有效數(shù)據(jù)速率是3MB/秒并且—流的數(shù)據(jù)速率是200KB/秒,那么從盤中來(lái)的流最多不能超過(guò)15個(gè)。例如如果需要同一視頻的60個(gè)流,那么必須將數(shù)據(jù)復(fù)制在4個(gè)盤上。然而,如果使用根據(jù)本發(fā)明的線程,只需使用1/4容量的4個(gè)盤。在總共來(lái)自視頻數(shù)據(jù)一單個(gè)備份的60個(gè)流中,可以同時(shí)播放來(lái)自4個(gè)線程的每一個(gè)的15個(gè)流,錯(cuò)開(kāi)流的開(kāi)播時(shí)間以保證對(duì)60個(gè)流的請(qǐng)求能被均勻地分布在線程上。如果流開(kāi)播的時(shí)間彼此相近,可以使用高速緩存中的視頻數(shù)據(jù)以降低對(duì)I/O的需要。
對(duì)于一給定視頻,線程數(shù)受兩個(gè)因素影響;第一因素是在任意一時(shí)刻需要提供的來(lái)自視頻的最大流數(shù),另一個(gè)因素是在任意一時(shí)刻需要提供的來(lái)自所有作為視頻被存在相同盤上的視頻的總的流數(shù)。
可以按以下方式確定一視頻的線程數(shù)S=maximum(r*n/d,r*m/d),其中r=流播放的額定數(shù)據(jù)速率;n=在額定速率下,來(lái)自于該視頻圖像的同時(shí)流的最大數(shù)量;d=來(lái)自盤的有效數(shù)據(jù)速率;(注意盤的有效數(shù)據(jù)速率受段的大小影響)m=在額定速率下,來(lái)自的所有包含該視頻表示的任何部分的盤的同時(shí)流的最大數(shù)量;和S=一個(gè)視頻圖像的線程數(shù)。
其上一個(gè)視頻圖像數(shù)據(jù)被線程分割的盤可作為一組進(jìn)行管理,并且可以將其視為一很大的物理盤。線程可以使一視頻文件的大小超出一系統(tǒng)的物理文件系統(tǒng)所能允許的最大文件一般來(lái)說(shuō),視頻數(shù)據(jù)所需的盤空間在組內(nèi)所有盤上并不完相同。為了均衡使用磁盤,在對(duì)一視頻進(jìn)行線程分割時(shí),線程分割應(yīng)從有最大的空閑空間的盤開(kāi)始。
可以參照這樣一個(gè)例子一視頻圖形需要用2兆位/秒(250,000字節(jié)/秒)的速率播放,即r等于250,000字節(jié)/秒,并假設(shè)需要從該視頻最多同時(shí)傳送30個(gè)流,即n等于30。在該例子中還假設(shè)m亦等于30,即從所有盤上傳送的總流數(shù)是30。此外,還假設(shè)按250,000字節(jié)段大小分割數(shù)據(jù),并且對(duì)于給定段的大小(250,000個(gè)字節(jié))來(lái)自一盤的有效數(shù)據(jù)速率是3,000,000字節(jié)/秒。則所需m線程數(shù)n等于(250,000×30//3,000,000),取整為3(S=最大值(r*n/d))。
例如,如果來(lái)自所有包含該數(shù)據(jù)的盤的最大流數(shù)是45,那么需要250,000*45/3,000,000或3,75個(gè)線程,取整是4。
即使將該視頻分割成3個(gè)線程也可以滿足傳送來(lái)自視頻的單個(gè)備份的0個(gè)流的需要,如果包含該視頻的盤還包含其它內(nèi)容,并且所支持來(lái)自該視頻的總流數(shù)是45,那么需要4個(gè)盤驅(qū)動(dòng)器(線程分割4級(jí))。
按如下方式在媒體流部件10中使用該算法。將存儲(chǔ)器(盤驅(qū)動(dòng)器數(shù))劃分成磁盤組。每組具有一定存儲(chǔ)容量與存儲(chǔ)能力,用以傳送一給定數(shù)量的同時(shí)流(按基于一預(yù)定段的大小的每盤有效數(shù)據(jù)速率)。每組段的大小是恒定的。不同組可以選擇不同的段大小(于是具有不同的有效數(shù)據(jù)速率)。當(dāng)對(duì)一視頻圖像進(jìn)行線程分割時(shí),首先使用下述準(zhǔn)則選擇一組。
段的大小與視頻的數(shù)據(jù)速率相一致,即如果流的數(shù)據(jù)速率是250,000字節(jié)/秒,段的大小應(yīng)在125KB至500KB之間。下一準(zhǔn)則是要保證組內(nèi)的盤數(shù)應(yīng)足以支持最大同時(shí)流數(shù),即流數(shù)據(jù)速率是“r”,最大的同時(shí)流數(shù)是“n”,組中一盤的有效數(shù)據(jù)速率是“d”的組中的盤數(shù)。最后要保證盤組中所支持的來(lái)自于所有視頻的同時(shí)流數(shù)量的總和不能超過(guò)盤組的容量。即如果“m”是組的容量,則“m-n”應(yīng)大于或等于能被同時(shí)播放的來(lái)自己存儲(chǔ)在組中的視頻的所有流數(shù)的總和。
在將視頻數(shù)據(jù)裝入到媒體流部件10時(shí),在控制節(jié)點(diǎn)18中進(jìn)行以上計(jì)算。最簡(jiǎn)單的情況是所有盤在一單個(gè)動(dòng)態(tài)存儲(chǔ)區(qū)中,該動(dòng)態(tài)存儲(chǔ)區(qū)限定了媒體流部件10總的容量,即用于存儲(chǔ)和所支持的流數(shù)。在本例中,可以從公式m*r/d中計(jì)算出用于支持一給定的同時(shí)流數(shù)的盤數(shù),其中m是流數(shù),r是流的數(shù)據(jù)速率,d是一般的有效數(shù)據(jù)速率。注意,如果流的數(shù)據(jù)速率不同,則上述公式中的m*r應(yīng)由所有同時(shí)流的數(shù)據(jù)速率之和的最大值來(lái)代替。
使用該項(xiàng)用于寫數(shù)據(jù)的技術(shù)可以使數(shù)據(jù)能夠被讀出,以用于按一定速率傳送的多個(gè)流,而不需要視頻圖像數(shù)字表示的多個(gè)備份。通過(guò)在多個(gè)盤卷上將數(shù)據(jù)分割成線程,可以使對(duì)用于傳送一個(gè)流的文件的一部分的讀操作不干擾對(duì)用于傳送另一個(gè)流的文件的其它部分的讀操作。
I.媒體流部件的數(shù)據(jù)傳送與轉(zhuǎn)過(guò)程I1用于向轉(zhuǎn)接器8進(jìn)行視頻傳送的動(dòng)態(tài)帶寬的分配通常視頻服務(wù)器只能滿足兩個(gè)方面中的一個(gè)。它們或者使用PC技術(shù)建立一低費(fèi)用(但也低帶寬)的視頻服務(wù)器,或者使用超計(jì)算技術(shù)建立一高帶寬(也昂貴)的視頻服務(wù)器。本發(fā)明的目的是以高帶寬傳送視頻,但不需要超計(jì)算技術(shù)那么高的費(fèi)用。
一種以低成本獲得高帶帶的較佳方式是使用低等待轉(zhuǎn)接器(交叉型電路轉(zhuǎn)接矩陣)18將低成本PC點(diǎn)互聯(lián)成一視頻服務(wù)器(如圖1所示)。媒體流部件結(jié)構(gòu)的一個(gè)重要方面是有效使用每一存儲(chǔ)節(jié)點(diǎn)16及通信節(jié)點(diǎn)14的可用的視頻流帶寬。通過(guò)將視頻數(shù)據(jù)的特殊屬性(一次寫、多次讀)與一低成本轉(zhuǎn)接技術(shù)的動(dòng)態(tài)的、實(shí)時(shí)帶寬分配能力相結(jié)合使帶寬達(dá)到最大值。
圖18表示了在一轉(zhuǎn)接器接口與一存儲(chǔ)節(jié)點(diǎn)之間的一種傳統(tǒng)的邏輯聯(lián)接。轉(zhuǎn)接器接口必須是全雙工的(即信息可以在任一方向上同時(shí)發(fā)送)以使視頻(及控制信息)即可以傳送到存儲(chǔ)節(jié)點(diǎn),亦可從存儲(chǔ)節(jié)點(diǎn)中傳送出。因?yàn)橐曨l內(nèi)容是被一次寫到存儲(chǔ)節(jié)點(diǎn),然后多次被讀出,所以存儲(chǔ)節(jié)點(diǎn)所需的大多數(shù)帶寬是在朝著轉(zhuǎn)接器方向上的。在一典型的轉(zhuǎn)接器接口例子中,存儲(chǔ)節(jié)點(diǎn)的帶寬處于低使用狀態(tài),因?yàn)橐话胗糜趯懙膸捄苌偈褂谩?br> 圖19表示了一個(gè)根據(jù)本發(fā)明的轉(zhuǎn)接器接口。該接口動(dòng)態(tài)而實(shí)時(shí)地將總的帶寬分配給轉(zhuǎn)接器18的進(jìn)方向或者出方向,以滿足節(jié)點(diǎn)的當(dāng)前需要。(將存儲(chǔ)節(jié)點(diǎn)16用作一例子)。通信節(jié)點(diǎn)14有類似的需求,但它們帶寬的大部分是在轉(zhuǎn)接器18的出口方向上。
通過(guò)使用合適的用于轉(zhuǎn)接器18的路由標(biāo)題將兩個(gè)或多個(gè)物理轉(zhuǎn)接器接口組合為一個(gè)邏輯轉(zhuǎn)接器接口18a,以達(dá)到動(dòng)態(tài)分配的目的。然后在兩個(gè)物理接口之間分割視頻數(shù)據(jù)(例如,在一讀操作作時(shí))??梢酝ㄟ^(guò)按前述的方法在多個(gè)存儲(chǔ)設(shè)備上將數(shù)據(jù)分割成線段,以使其更容易實(shí)現(xiàn)。接收節(jié)點(diǎn)將視頻數(shù)據(jù)組合回來(lái)成一單個(gè)邏輯流。
例如,將圖18中的轉(zhuǎn)接器接口速率定為2XMB/秒全雙工,即每一方向上XMB/秒。但是視頻數(shù)據(jù)通常只在一個(gè)方向上發(fā)送(以存儲(chǔ)節(jié)點(diǎn)到轉(zhuǎn)接器)。于是,即使節(jié)點(diǎn)有雙倍的容量(2X)的視頻帶寬用于從存儲(chǔ)節(jié)點(diǎn)傳送數(shù)據(jù)。存儲(chǔ)節(jié)點(diǎn)處于低使用狀態(tài)。圖19的轉(zhuǎn)接器接口動(dòng)態(tài)地分配整個(gè)2×MB/秒帶寬,用以從存儲(chǔ)節(jié)點(diǎn)向轉(zhuǎn)接器發(fā)送視頻。這樣可以增加來(lái)自節(jié)點(diǎn)的帶寬,來(lái)自視頻服務(wù)器的帶寬并能降低每一視頻流的貴用。
J.使用通信適配器的等時(shí)視頻數(shù)據(jù)的傳送數(shù)字視頻數(shù)據(jù)具有順序性、連續(xù)性及量大等特點(diǎn),同時(shí)在時(shí)間上的要求比內(nèi)容上的要求嚴(yán)格。必須以較高的比特率等時(shí)地傳送視頻據(jù)流,要求將數(shù)據(jù)路徑上所有不必要的開(kāi)銷減到最小。通常用于接收的硬件是一視頻機(jī)頂盒或一些其它合適的視頻數(shù)據(jù)接收器。標(biāo)準(zhǔn)的串行通信協(xié)議通常在硬件級(jí)將數(shù)據(jù)的輔加位或字節(jié)插到流中,以用于同步和數(shù)據(jù)檢驗(yàn)。如果接收器不能透明地從輔加數(shù)據(jù)移去,這會(huì)損壞視頻數(shù)據(jù)流。由這些位或字節(jié)帶來(lái)的額外開(kāi)銷會(huì)降低有效數(shù)據(jù)速率,產(chǎn)生視頻解壓和轉(zhuǎn)換錯(cuò)誤。
人們已認(rèn)識(shí)到,如果通過(guò)標(biāo)準(zhǔn)通信適配器傳送視頻數(shù)據(jù),為了保證將其等時(shí)地傳送到用戶,則需要禁止大多數(shù)的標(biāo)準(zhǔn)的串行通信信協(xié)議的屬性。達(dá)到此目的的方法與所使用的通信適配器有關(guān),但下面描述一下基本概念。在圖20中,一通信節(jié)點(diǎn)14上的一串行通信芯片200禁止格式化和完整性信息,如奇偶校驗(yàn)、開(kāi)始與結(jié)束位、循環(huán)冗余校驗(yàn)代碼與同步字節(jié),并阻止空閑字符的產(chǎn)生。FIFO輸入緩存202,204,206等被用于保證在允許總線的裝入數(shù)據(jù)塊周期的同時(shí)視頻流能恒定(等時(shí))地輸出。一個(gè)1000字節(jié)的FIFO緩存208可以簡(jiǎn)化CPU與總線裝入邏輯。
如果通信輸出芯片200不允許禁止一初始同步字節(jié)的產(chǎn)生,則應(yīng)通過(guò)程序?qū)⑼阶止?jié)的值變成每一數(shù)據(jù)塊的第一字節(jié)值(并且將數(shù)據(jù)塊指針加1指向第二個(gè)字節(jié))。必須使用字節(jié)對(duì)齊管理真實(shí)數(shù)據(jù),因?yàn)槿魏我r墊位如果不是實(shí)際壓縮的視頻數(shù)據(jù),它們會(huì)損壞數(shù)據(jù)流。
為了達(dá)到高質(zhì)量的壓縮視頻數(shù)據(jù)所需要的恒定,高速串行數(shù)據(jù)輸出,應(yīng)或者使用一環(huán)形緩存或多個(gè)大容量緩存(例如,202,204,206)。這對(duì)于在從一先前裝滿數(shù)據(jù)的緩存中輸出數(shù)據(jù)時(shí),以便有充分的時(shí)間填充一輸入緩存是非常必要的。除非在視頻數(shù)據(jù)流路徑上早些進(jìn)行緩存打包,否則,視頻結(jié)束狀態(tài)會(huì)產(chǎn)生一非常小的緩存,它將在下一緩存?zhèn)魉屯瓿芍氨惠敵?,這樣將產(chǎn)生一數(shù)據(jù)負(fù)載運(yùn)行。這最少需要三個(gè)大的、獨(dú)立的緩存。在雙重方式存儲(chǔ)器中的一環(huán)形緩存(讀時(shí)也可以寫)也是一合適的實(shí)施例。
J1將視頻圖像或影片從MPEG-1,1+或MPEG-2數(shù)字?jǐn)?shù)據(jù)壓縮格式轉(zhuǎn)換成工業(yè)標(biāo)準(zhǔn)電視格式(NTSC或PAL)正如以上所述,可以將數(shù)字視頻數(shù)據(jù)從盤中移到緩沖存儲(chǔ)器中。一旦緩沖存儲(chǔ)器中的數(shù)據(jù)足夠,則將它們從存儲(chǔ)器移到一通信節(jié)點(diǎn)的一接口適配器中。使用的接口是SCSI 20MB/秒快/寬接口或SSA串行SCSI接口。可以將SCSI接口擴(kuò)展成能處理15個(gè)地址,而SSA結(jié)構(gòu)支持最多256。其它適用的是RS422、V、35、V、36,但不只是這些。
正如圖21所示,來(lái)自接口中的視頻數(shù)據(jù)從一通信節(jié)點(diǎn)14經(jīng)過(guò)一通信總線210被傳送到NTSC適配器212(也參見(jiàn)圖20),在此數(shù)據(jù)被緩存。適配器212從一本地緩存214從取數(shù)據(jù),在本地緩存中存儲(chǔ)多個(gè)數(shù)據(jù)塊,以使總線性能最佳。適配器212的根本目的是維持一個(gè)從存儲(chǔ)器212到MPEG芯片216、218再到NTSC芯片及D/H222的等時(shí)數(shù)據(jù)流,以保證視頻或/與音頻的不間斷傳送。
MPEG邏輯模塊216,218將數(shù)字(壓縮)視頻數(shù)據(jù)轉(zhuǎn)化成元素級(jí)的視頻與音頻。一個(gè)NTSC編碼器220將信號(hào)轉(zhuǎn)化成NTSC基帶模擬信號(hào)。MPEG音頻解碼器216將數(shù)字音頻轉(zhuǎn)換成并行數(shù)字?jǐn)?shù)據(jù),該數(shù)據(jù)然后通過(guò)一數(shù)字/模擬轉(zhuǎn)換器222傳送與濾波以產(chǎn)生音頻左和右輸出。
產(chǎn)生一解決速度匹配與等時(shí)傳送問(wèn)題的方案的目的不只為了使系統(tǒng)傳送帶寬最大,亦為了使對(duì)系統(tǒng)性能限制最小。
應(yīng)用程序開(kāi)發(fā)人員通常使用諸如SSA和SCSI等總線結(jié)構(gòu)在處理器與機(jī)械存儲(chǔ)設(shè)備(例如磁盤元件,磁帶元件,光存儲(chǔ)部件等)之間控制和傳送數(shù)據(jù)。如果采取一些措施控制速度與視頻數(shù)據(jù)的等時(shí)傳送,這兩種總線包含一些適用于視頻數(shù)據(jù)交帶寬傳送的屬性。
SCSI總線允許以20M字節(jié)/秒速率成組發(fā)送數(shù)據(jù),這可以使任何視頻信號(hào)從緩沖存儲(chǔ)器到一特定NTSC適配器的傳送時(shí)間最少。適配卡212包含一大的緩存214,它具有以高的峰值速率將數(shù)據(jù)從總線210成組發(fā)送到存儲(chǔ)器和以非常低的傳送速率將數(shù)據(jù)從緩存214傳送到NTSC釋碼芯片216,218中。進(jìn)一步將緩存214按段劃分成較小的緩存并通過(guò)軟件控制其連接,以形成一個(gè)按環(huán)形方式連接的多個(gè)緩存。
這樣,系統(tǒng)就能將可變數(shù)據(jù)塊大小的數(shù)據(jù)分別傳送到緩存并控制播出的順序。該方法的優(yōu)點(diǎn)是能夠在任何需要視頻數(shù)據(jù)之前,釋放系統(tǒng)軟件并以很高的傳送速率傳送視頻數(shù)據(jù)塊。這可以使媒體流部件10能夠根據(jù)動(dòng)態(tài)輸出要求管理許多視頻流。當(dāng)一通信節(jié)點(diǎn)上的一處理器有時(shí)間時(shí),它能傳送將按順序播放的幾個(gè)大數(shù)據(jù)塊。一旦完成這點(diǎn),該處理器可自由地控制其它流而不需立即將低速連續(xù)、等時(shí)數(shù)據(jù)傳送到每一端口。
為了進(jìn)一步改進(jìn)譯碼器系統(tǒng)的性能/價(jià)格比,將一小的FIFO存儲(chǔ)器224安插在大的譯碼器緩存214與MPEG譯碼器216,218之間。FIFO存儲(chǔ)器224能夠使控制器226將較小的塊,通常是512字節(jié)的數(shù)據(jù),從緩存214傳送到FIFO存儲(chǔ)器224中,接著,F(xiàn)IFO224將數(shù)據(jù)轉(zhuǎn)換成串行位流以便傳送到MPEG譯碼器216,218。音頻與視頻譯碼芯片218,216兩者都能從相同的串行數(shù)據(jù)流中獲得輸入,也能在內(nèi)部對(duì)所需數(shù)據(jù)進(jìn)行分解與譯碼。對(duì)來(lái)自FIFO存儲(chǔ)器224輸出端數(shù)據(jù)的傳送是按等時(shí)方式或基本上等時(shí)方式進(jìn)行的,以保證將不間斷的視頻圖像傳送給視頻圖像的用戶或消費(fèi)者。
K.數(shù)字視頻到SCSI設(shè)備的傳送如圖22所示,設(shè)備級(jí)軟件將來(lái)自緩沖存儲(chǔ)器的壓縮數(shù)字視頻數(shù)據(jù)與命令流轉(zhuǎn)換成SCSI命令與數(shù)據(jù)流,并將其按SCSI II快速數(shù)據(jù)速率通過(guò)SCSI總線210發(fā)送給一目標(biāo)適配器212。然后,將該數(shù)據(jù)緩沖存儲(chǔ)并按要求內(nèi)容輸出速率將其饋送到MPEG邏輯,以便解壓并轉(zhuǎn)換成模擬視頻與音頻數(shù)據(jù)。通過(guò)SCSI總線210提供與數(shù)據(jù)流同步并保證恰當(dāng)管理緩存的反饋。
SCSI NTSC/PAL適配器212提供一個(gè)與SCSI總線210的高級(jí)接口,支持標(biāo)準(zhǔn)SCSI協(xié)議的一個(gè)子集。正常工作方式是打開(kāi)適配器212,向其寫數(shù)據(jù)(視頻與音頻)流并且只在完成時(shí)才關(guān)閉適配器212。為了保證其緩存滿,適配器212以盡可能快的速率提取數(shù)據(jù),而由通信節(jié)點(diǎn)14與存儲(chǔ)節(jié)點(diǎn)16提供數(shù)據(jù)塊,其中數(shù)據(jù)塊的大小應(yīng)使總線數(shù)據(jù)傳送最優(yōu)并使總線開(kāi)銷最小。
如果需要的話,可以使用一SCSI的選擇方式命令通過(guò)控制包改寫系統(tǒng)糝數(shù)。視頻/音頻同步是在適配器212內(nèi)部進(jìn)行的,不需要外部控制。通過(guò)自動(dòng)再同步與持續(xù)音頻/視頻輸出使錯(cuò)誤減至最少。
K1 SCSI級(jí)命令說(shuō)明使用一組混合的直接存取設(shè)備與順序設(shè)備命令以及標(biāo)準(zhǔn)通用命令來(lái)滿足SCSI視頻輸出適配器的功能要求。所有SCSI命令在每條命令執(zhí)行完之后返回一有效狀態(tài)字節(jié),并且如果返回一校驗(yàn)狀態(tài),檢測(cè)數(shù)據(jù)區(qū)中裝有錯(cuò)誤狀態(tài)。使用的標(biāo)準(zhǔn)SCSI命令包括RESET,INQUIRY,REQUEST,SENSE,MODE SELECT,MOOE SENSE,READ,WRITE,RESETVE,RELEASE,TESTUNIT READ1/。
視頻命令視頻控制命令是用戶級(jí)視頻輸出控制命令并且是上面所列出的標(biāo)準(zhǔn)命令的擴(kuò)展。它們提供一簡(jiǎn)單的低級(jí)操作系統(tǒng)或SCSI命令的用戶級(jí)前端,其中SCSI命令直接與SCSI視頻輸出適配器212接口。每一命令通過(guò)使用微碼模擬必要的視頻設(shè)備函數(shù)來(lái)實(shí)現(xiàn),并且避免了由無(wú)效控制狀態(tài)引起的音頻與視頻異常??梢允褂靡粏蝹€(gè)SCSI命令,START/STOP UNIT為目標(biāo)SCSI視頻輸出適配器翻譯視頻控制命令以及隨該命令傳送的必要的參數(shù)。這既能簡(jiǎn)化用戶應(yīng)用程序接口,也能簡(jiǎn)化適配卡212的微代碼。使用下列命令停止(SCSI START/STOP1-參數(shù)=方式)如果MPEG芯片組(216,218)的數(shù)據(jù)輸入暫停,則音頻無(wú)聲,視頻空白。參數(shù)域選擇停止方式。正常方式使緩存與位置指針保留當(dāng)前狀態(tài),以使播放能在視頻流的相同位置上繼續(xù)進(jìn)行。第二(影片結(jié)束或放棄)方式為緩存設(shè)置一指針,指向下一緩存起始點(diǎn)并釋放當(dāng)前是緩存。第三方式也是用于影片結(jié)束狀態(tài),但停止(無(wú)聲與空白)一直延遲至數(shù)據(jù)緩存空時(shí)止。可以使用一第四方式和某些MPEG譯碼工具為一延遲的停止提供音頻,但當(dāng)數(shù)據(jù)溢出時(shí)為上一個(gè)有效幀保持幀。在每一例子中,視頻適配器212微碼確定結(jié)束點(diǎn),以使視頻與音頻的輸出暫停在合適的邊界上,以便有一純凈的再啟動(dòng)。
暫停(SCSI START/STOP2-無(wú)參數(shù))如果MPEG芯片組(216,218)的數(shù)據(jù)輸入被暫停,則音頻無(wú)聲,但視頻不空白。這可以使MPEG視頻芯片組(216,218)保持上一個(gè)好幀的一幀。這樣可以避免視頻燒壞顯像管。停止命令最好是由控制節(jié)點(diǎn)18發(fā)出,但是如果在5分鐘內(nèi)設(shè)有接收到命令,視頻輸出應(yīng)自動(dòng)變成空白。適配器212微代碼維持緩存位置及譯碼器狀態(tài),以保證一平滑回到播放狀態(tài)。
空白—無(wú)聲(SCSI START/STOP3-參數(shù)=方式)該命令使視頻輸出空白,但不影響音頻輸出;或音頻輸出無(wú)聲,但不影響視頻;或兩者都受影響??梢酝ㄟ^(guò)使用一帶方式參數(shù)的命令禁止同時(shí)無(wú)聲與空白,這樣就可以得到一平滑的轉(zhuǎn)換并能降低命令開(kāi)銷??梢栽诮鈮翰⑥D(zhuǎn)換成模擬信號(hào)之后,在視頻適配器212上通過(guò)硬件控制實(shí)現(xiàn)以上操作,以保證一正向平滑的轉(zhuǎn)移。
慢速播放(SCSI START/STOP4-參數(shù)=速率)該命令可以降低MPEG芯片組(216,218)的數(shù)據(jù)輸入速率,使數(shù)據(jù)間歇地保持幀,模擬VCR上的一慢速播放功能。使音頻無(wú)聲,以防止數(shù)字錯(cuò)誤噪聲。參數(shù)字段所指定的一相對(duì)速度可以是0-100。另一方案是禁止釋譯器芯片組(216,218)進(jìn)行錯(cuò)誤處理,然后將進(jìn)入譯碼器芯片組的數(shù)據(jù)時(shí)鐘速度修改或希望的播放速度。這決定于視頻適配器的時(shí)鐘結(jié)構(gòu)的靈活性。
播放(SCSI START/STOP5-參數(shù)=緩存)該命令啟動(dòng)一向MPEG芯片組(216,218)饋送數(shù)據(jù)的過(guò)程,允許視頻與音頻輸出。傳送一選擇的緩存序號(hào),以決定從哪個(gè)緩存開(kāi)始播放;如果序號(hào)為零值,則應(yīng)使用當(dāng)前的播放緩存(典型操作)。如果適配器212處于STOPPED模式,則只接收非零值;如果適配器212處于PAUSED模式,則不考慮緩存序號(hào)這一參數(shù),而選擇當(dāng)前的緩存及其位置重新開(kāi)始播放。
當(dāng)正在播放時(shí),控制器226順序地循環(huán)通過(guò)各緩存以維持一進(jìn)入到MPEG芯片組(216,218)的穩(wěn)定的數(shù)據(jù)流。以合適的速率將數(shù)據(jù)以緩存讀到MPEG總線,從地址需開(kāi)始直到將N個(gè)字節(jié)讀完,然后控制器226轉(zhuǎn)到下一緩存并繼續(xù)讀數(shù)據(jù)。適配器總線與微代碼既可以為SCSI到適配器緩存214的快速數(shù)據(jù)傳送提供充足的帶寬,也能為穩(wěn)定地將數(shù)據(jù)裝到輸出FIFO224提供充足的帶寬,其中輸出FIFO224將數(shù)據(jù)饋送到MPEG解壓芯片(216,218)。
快進(jìn)(SCSI START/STOP6-參數(shù)=速率)該命令用于模擬VCR上的快進(jìn)功能。速率參數(shù)可以定義兩種操作模式。速率零表示快進(jìn)過(guò)程中視頻與音頻都應(yīng)空白并無(wú)聲,緩存充滿,并且在從視頻流向前的一新位置上接收到數(shù)據(jù)時(shí),執(zhí)行一隱含播放。1-10的整數(shù)表示輸入流正在快進(jìn)的速率。通過(guò)跳過(guò)幾個(gè)數(shù)據(jù)塊對(duì)視頻“采樣”以達(dá)到指定的平均數(shù)據(jù)速率。適配器212接近正常的速率播放數(shù)據(jù)的一部分,向前跳躍,然后播放下一部分,從而模擬快速向前動(dòng)作。
倒帶(SCSI START/STOP 7-參數(shù)=緩存)該命令用于模擬VCR上的倒帶功能。速率參數(shù)可以定義兩種操作模式。速率零表示在快速倒帶過(guò)程中視頻與音頻應(yīng)空白與無(wú)聲,緩存充滿,并且在從視頻流向前的一新位置上接收到數(shù)據(jù)時(shí),執(zhí)行一隱含播放。個(gè)1-10之間的整數(shù)表示輸入流正在回卷的速率。通過(guò)跳過(guò)幾個(gè)數(shù)據(jù)塊對(duì)視頻“采樣”以達(dá)到指定的平均數(shù)據(jù)速率。通過(guò)對(duì)一些小數(shù)據(jù)塊組合形成倒帶數(shù)據(jù)流,其中對(duì)小的數(shù)據(jù)塊采樣是在視頻流連續(xù)較早位置上進(jìn)行的。適配卡212平滑地處理轉(zhuǎn)換與同步,以按正常速率播放,向后跳到下一采樣位置以模擬倒帶掃描。
K2.緩存的管理數(shù)字視頻服務(wù)器為許多并行輸出設(shè)備提供數(shù)據(jù),但數(shù)字視頻數(shù)據(jù)解壓與轉(zhuǎn)換需要一恒定的數(shù)據(jù)流。使用數(shù)據(jù)緩沖技術(shù)可以吸取SCSI數(shù)據(jù)成組發(fā)送模式發(fā)送的優(yōu)點(diǎn),同時(shí)還避免數(shù)據(jù)負(fù)載或緩存過(guò)載,并能使媒體流部件10在很小干預(yù)情況下將數(shù)據(jù)發(fā)送給許多流。SCSI視頻適配卡212(圖21、22)包括一個(gè)用于視頻數(shù)據(jù)的大緩存214,以更充分地利用SCSI成組發(fā)送模式數(shù)據(jù)傳送過(guò)程。在示意性配置中,緩存214的大小是768K,一局部邏輯將其處理成一環(huán)繞式環(huán)形緩存。在傳送數(shù)字視頻數(shù)據(jù)時(shí),環(huán)形緩存適于管理可變長(zhǎng)數(shù)據(jù)塊,而不適用于管理固定長(zhǎng)緩存。無(wú)論從管理開(kāi)銷,還是從存儲(chǔ)開(kāi)銷上考慮,固定長(zhǎng)緩沖器都不夠有效。
視頻適配卡212的微碼支持一些緩存指針,指向上一個(gè)頂端數(shù)據(jù)以及當(dāng)前長(zhǎng)度和頂端數(shù)據(jù)。這樣就可將失敗的發(fā)送重寫,或者在需要的情況下,將指針指向當(dāng)前緩存的字節(jié)位置。(也就是使中間邏輯按長(zhǎng)字對(duì)齊,位或字特定為偶數(shù))以保證到譯碼芯片組(216,218)的有效數(shù)據(jù)傳送。該方法可以使穩(wěn)定狀態(tài)操作的開(kāi)銷最小,同時(shí)還可以靈活數(shù)據(jù)緩存。
K2.1緩存選擇與定位假設(shè)需要多組,并且有多個(gè)指針可用于所有與緩有關(guān)的操作。例如,可以使用一組來(lái)選擇播放緩存以及該緩存的當(dāng)前位置;使用一第二組選擇寫緩存以及該緩存的一用于數(shù)據(jù)預(yù)裝入操作位置(通常是零)。因?yàn)橐仓С挚勺冮L(zhǎng)度數(shù)據(jù)塊,應(yīng)保接收的每一數(shù)據(jù)塊的當(dāng)前長(zhǎng)度與最大長(zhǎng)度值。
K2.2自動(dòng)方式緩存的操作可由視頻適配器的控制器226來(lái)管理,將N個(gè)字節(jié)的數(shù)據(jù)放到起始地址為零的下一個(gè)可用的緩存中??刂破?26保持跟蹤每一緩存中數(shù)據(jù)的長(zhǎng)度以及數(shù)據(jù)是否已被“播放”。只要有足夠緩存空間,該卡就接收下一個(gè)寫命令和將DMA的數(shù)據(jù)送到空間緩存中。如果沒(méi)有足夠的空閑空間接收整個(gè)數(shù)據(jù)塊(通常是一慢速播放或暫停狀態(tài)),則不接收寫命令并且返回一緩存滿的返回代碼。
K2.3手工方式使用一“定位”命令為每一緩存訪問(wèn)命令(寫,刪等)選擇一“當(dāng)前”寫緩存及在該緩沖器中的位置(通常是零)。緩存的位置與被成功發(fā)送的上一數(shù)據(jù)塊的起始位置有關(guān)。這樣做有助于視頻流轉(zhuǎn)換的管理,并且能很快地激活自動(dòng)方式以使系統(tǒng)中的命令開(kāi)銷最小。
K2.4錯(cuò)誤的管理數(shù)字視頻據(jù)發(fā)送對(duì)錯(cuò)誤管理的要求與隨機(jī)數(shù)據(jù)訪問(wèn)不同,在隨機(jī)數(shù)據(jù)訪問(wèn)中,SCSI正常地用在數(shù)據(jù)處理應(yīng)用程序中。小的數(shù)據(jù)丟失沒(méi)有發(fā)送間斷那么重要。正常的SCSI錯(cuò)誤處理過(guò)程在每個(gè)命令完成的狀態(tài)階段返回狀態(tài)字節(jié)。如果一錯(cuò)誤已經(jīng)發(fā)出,目標(biāo)SCSI芯片227不能接收一命令或一檢驗(yàn)狀態(tài),則狀態(tài)字節(jié)或處于“好”(00)狀態(tài),或“忙”(8h)狀態(tài)。
K2.5錯(cuò)誤恢復(fù)SCSI視頻適配器212的控制器226根據(jù)一對(duì)裝入錯(cuò)誤與狀態(tài)信息的檢驗(yàn)狀態(tài)應(yīng)答自動(dòng)產(chǎn)生一請(qǐng)求檢測(cè)命令,并確定是否可能進(jìn)行一恢復(fù)過(guò)程。正常的恢復(fù)過(guò)程是清除錯(cuò)誤狀態(tài),除去任何損壞的數(shù)據(jù)并盡快重新開(kāi)始播放。在最壞情況下,適配器212可能要重新啟動(dòng),并且在重新播放之前,重新裝入數(shù)據(jù)。在下一個(gè)查詢或請(qǐng)求檢測(cè)的SCSI操作中記錄錯(cuò)誤并報(bào)告給主機(jī)系統(tǒng)。
K26自動(dòng)重試在緩存滿或設(shè)備忙條件下,要自動(dòng)重試最多X次,其中X與流數(shù)據(jù)速率有關(guān)。這只允許在下一數(shù)據(jù)緩存到達(dá)時(shí)刻之前對(duì)該點(diǎn)進(jìn)行。在該點(diǎn),如果狀態(tài)是非預(yù)料的(即緩存滿,但又不是處于暫?;蚵俨シ拍J?,則記錄錯(cuò)誤,并且可能需要重新啟動(dòng)或清除設(shè)備以恢復(fù)并繼續(xù)播放視頻。
盡管在前面的說(shuō)明書中已描述了將一視頻圖像傳送給一用戶,應(yīng)該認(rèn)識(shí)到的是,可以使用雙向視頻適配器接一視頻圖像,并將視頻圖像數(shù)字化成一數(shù)字表示,并通過(guò)總線210將數(shù)據(jù)表示發(fā)送給一通信節(jié)點(diǎn)14,然后經(jīng)過(guò)低等待轉(zhuǎn)接器18存儲(chǔ)在由控制節(jié)點(diǎn)18指定的一存儲(chǔ)節(jié)點(diǎn)或多個(gè)存儲(chǔ)節(jié)點(diǎn)16、17中。
應(yīng)認(rèn)識(shí)到前述說(shuō)明只是本發(fā)明的一個(gè)描述。本領(lǐng)域的技術(shù)人員在不偏離本發(fā)明的條件下可以進(jìn)行各種替換和修改。因此,本發(fā)明將包括所有包含在所附權(quán)利要求書范圍內(nèi)的各種替換、修改和變化。
權(quán)利要求
1.一種媒體流部件,包括至少一個(gè)包含用于存儲(chǔ)至少一個(gè)視頻圖像的一數(shù)字化表示的海量存儲(chǔ)器的存儲(chǔ)節(jié)點(diǎn);和多個(gè)通信節(jié)點(diǎn),其中每一個(gè)有至少一個(gè)耦合到所述至少一個(gè)存儲(chǔ)節(jié)點(diǎn)的一輸出端的輸入端口,用于接收來(lái)自所述輸出端的一視頻圖像的一數(shù)字化表示,所述多個(gè)通信節(jié)點(diǎn)中每一個(gè)進(jìn)一步包括多個(gè)輸出端口,每個(gè)所述多個(gè)輸出端口可用于把一數(shù)字化表示作為一數(shù)據(jù)流發(fā)送給視頻圖像的一使用者,每個(gè)所述多個(gè)輸出端口有一個(gè)用于在傳送一數(shù)字化表示之前緩沖存儲(chǔ)所述數(shù)字化表示的相關(guān)的數(shù)據(jù)緩存;其特征在于所述的多個(gè)通信節(jié)點(diǎn)的每一個(gè)進(jìn)一步包括一個(gè)為每個(gè)所述數(shù)據(jù)緩存調(diào)度讀請(qǐng)求的調(diào)度器,所述讀請(qǐng)求是為了在每個(gè)所述數(shù)據(jù)緩存內(nèi)存儲(chǔ)數(shù)字化表示的下一個(gè)順序部分向所述至少一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)出的,每個(gè)用于所述數(shù)據(jù)緩存中特定單個(gè)緩存的讀請(qǐng)求被安排在一預(yù)定時(shí)刻,從而在數(shù)字化表示的下一個(gè)所請(qǐng)求的順序部分需從安排了讀請(qǐng)求的數(shù)據(jù)緩存的相關(guān)輸出端口發(fā)送之前可供一請(qǐng)求通信節(jié)點(diǎn)使用;和所述的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)進(jìn)一步包括一個(gè)用于調(diào)度向海量存儲(chǔ)器發(fā)出的讀請(qǐng)求的調(diào)度器,從而在所述至少一個(gè)存儲(chǔ)節(jié)點(diǎn)從所述通信節(jié)點(diǎn)的一個(gè)節(jié)點(diǎn)中接收到對(duì)數(shù)字化表示的下一順序部分的讀請(qǐng)求之前可將所述下一順序部分用于輸出。
2.如權(quán)利要求1所述的媒體流部件,其特征在于單個(gè)所述通信節(jié)點(diǎn)的所述調(diào)度器對(duì)讀請(qǐng)求進(jìn)行調(diào)度,以使在任意一時(shí)刻,在所述的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)上只有一個(gè)來(lái)自單個(gè)通信節(jié)點(diǎn)的讀請(qǐng)求未決。
3.如權(quán)利要求2所述的媒體流部件,其特征在于單個(gè)所述通信節(jié)點(diǎn)的所述調(diào)度器按一頻率調(diào)度用于一特定輸出端口的讀請(qǐng)求,其中所述一定頻率等于所述特定輸出端口輸出一數(shù)據(jù)流的數(shù)據(jù)速率除以與所述特定輸出端口相關(guān)的數(shù)據(jù)緩沖器的存儲(chǔ)容量。
4.如權(quán)利要求1所提出的媒體流部件,其特征在于所述海量存儲(chǔ)器由多個(gè)盤設(shè)備組成,其中單個(gè)數(shù)字表示的順序部分作為一組線程被存儲(chǔ)在所述多個(gè)盤設(shè)備的至少幾個(gè)不同盤設(shè)備上,其中所述存儲(chǔ)節(jié)點(diǎn)包括一個(gè)與一組線程有關(guān)的數(shù)據(jù)緩存,并且其中所述的至少一個(gè)存儲(chǔ)節(jié)點(diǎn)的所述調(diào)度器按一定頻率為所述數(shù)字化表示中的特定一個(gè)調(diào)度讀請(qǐng)求,其中所述一定頻率等于從一相應(yīng)線程組中讀數(shù)據(jù)的速率除以與線程組有關(guān)的數(shù)據(jù)緩存的存儲(chǔ)容量。
5.一媒體流部件,包括至少一個(gè)包括用于存儲(chǔ)至少一個(gè)視頻圖像的一數(shù)字化表示的至少一個(gè)盤設(shè)備的存儲(chǔ)節(jié)點(diǎn),所述的至少一個(gè)盤設(shè)備有一個(gè)用于至少存儲(chǔ)自所述盤設(shè)備讀出的數(shù)據(jù)的相關(guān)數(shù)據(jù)緩存;和多個(gè)通信節(jié)點(diǎn),其中每一個(gè)有至少一個(gè)耦合到所述的至少一個(gè)輸入端口,用于接收來(lái)自所述輸出端的一視頻圖像的一數(shù)字化表示的一順序部分,所述的多個(gè)通信節(jié)點(diǎn)中的每一個(gè)進(jìn)一步具有多個(gè)輸出端口,每個(gè)所述的多個(gè)輸出端口可用于把一數(shù)字化表示作為一數(shù)據(jù)流發(fā)送給數(shù)據(jù)流的使用者,每個(gè)所述輸出端口有一個(gè)用于在傳送一數(shù)字化表示的至少一個(gè)所述順序部分之前對(duì)其進(jìn)行緩沖存儲(chǔ)的一相關(guān)端口緩存;和一個(gè)用于控制所述至少一個(gè)存儲(chǔ)節(jié)點(diǎn)與所述多個(gè)通信節(jié)點(diǎn)的輸入端互連的線路轉(zhuǎn)接器,其特征在于所述至少一個(gè)盤存儲(chǔ)設(shè)備配置成能保證從所述多個(gè)輸出端口的每一個(gè)端口發(fā)送所述數(shù)字化表示,以便從所發(fā)送的數(shù)字表示的每一個(gè)中產(chǎn)生一基本上等時(shí)的數(shù)據(jù)流。
6.如權(quán)利要求5所提出的媒體流部件,其中,對(duì)所述至少一盤存儲(chǔ)設(shè)備進(jìn)行配置以使所述的至少一盤存儲(chǔ)設(shè)備被格式化成具有一最大可用扇區(qū);所述相關(guān)數(shù)據(jù)緩存被劃分成段,所述段的每一個(gè)的存儲(chǔ)容量至少等于所述數(shù)字化表示的一單個(gè)所述部分的大??;和所述相關(guān)數(shù)據(jù)緩存被編程試圖通過(guò)所述線路轉(zhuǎn)接器在一定條件下與所述多個(gè)通信節(jié)點(diǎn)之一的一輸入端口相連,所述一定條件中所述相關(guān)數(shù)據(jù)緩存的一段已存儲(chǔ)一預(yù)定數(shù)量的,從所述盤存儲(chǔ)設(shè)備中讀出的一數(shù)字化表示的一部分,所述預(yù)定數(shù)量是與通信節(jié)點(diǎn)輸入端口相關(guān)的所述通信節(jié)點(diǎn)輸出端口的瞬時(shí)傳送數(shù)據(jù)速率的函數(shù),同時(shí)也是將數(shù)據(jù)從所述盤存儲(chǔ)設(shè)備讀到所述段的一持續(xù)傳送數(shù)速率的函數(shù)。
7.如權(quán)利要求6所提出的媒體流部件,其特征在于所述至少一個(gè)盤存儲(chǔ)設(shè)備進(jìn)一步設(shè)置成使任何熱相關(guān)盤存儲(chǔ)設(shè)備的讀/寫頭補(bǔ)償每次只用于一個(gè)讀/寫頭。
全文摘要
本發(fā)明為一種媒體流部件,包括至少一個(gè)包含用于存儲(chǔ)至少一個(gè)視頻圖像的一數(shù)字化表示的海量存儲(chǔ)器的存儲(chǔ)節(jié)點(diǎn);和這些節(jié)點(diǎn)的每一個(gè)進(jìn)一步包括一個(gè)為每個(gè)所述數(shù)據(jù)緩存調(diào)度讀請(qǐng)求的調(diào)度器,所述讀請(qǐng)求是為了在單個(gè)所述數(shù)據(jù)緩存內(nèi)儲(chǔ)數(shù)字化表示的下一個(gè)順序部分向所述至少一個(gè)存儲(chǔ)節(jié)點(diǎn)發(fā)出的,上述存儲(chǔ)節(jié)點(diǎn)進(jìn)一步包括一個(gè)用于調(diào)度向海量存儲(chǔ)器發(fā)出的讀請(qǐng)求的調(diào)度器。
文檔編號(hào)G06F17/30GK1156304SQ9610135
公開(kāi)日1997年8月6日 申請(qǐng)日期1996年2月1日 優(yōu)先權(quán)日1996年2月1日
發(fā)明者馬薩·R·亨利, 詹姆斯·克里斯托弗·威利, 阿紹克·拉伊·薩克塞納 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1