光盤AVI視頻流的實(shí)時(shí)錄制
摘要: 本文討論了AVI文件格式及典型的實(shí)時(shí)錄制,提出一種在可寫式光盤上視頻流錄制的實(shí)用方案,并且獲得了驗(yàn)證。
關(guān)鍵詞: AVI;實(shí)時(shí)錄制;DVD錄像機(jī)
引言
近20年來(lái),電子設(shè)計(jì)數(shù)字化推動(dòng)多媒體的迅猛發(fā)展,聲音、動(dòng)畫、視頻等的采集、創(chuàng)建、傳輸和欣賞等方式都經(jīng)歷著巨大的變革。與此同時(shí),在數(shù)字化音頻和視頻的壓縮、物理存儲(chǔ)和傳播方面也提出了多種國(guó)際標(biāo)準(zhǔn)。隨著計(jì)算機(jī)的普及,有更多關(guān)于文件格式和文件系統(tǒng)的標(biāo)準(zhǔn)被提出。把多媒體格式引進(jìn)個(gè)人計(jì)算機(jī)(PC)也導(dǎo)致了PC和消費(fèi)電子技術(shù)的相互滲透和融合。
現(xiàn)有的大部分光盤錄像機(jī)只支持MPEG-2編碼的DVD格式。然而,對(duì)于壓縮比更高、更為先進(jìn)的MPEG-4編碼來(lái)說(shuō),目前兼容的文件格式是AVI。在對(duì)光盤特性和AVI文件格式進(jìn)行深入研究的基礎(chǔ)上,本文將提出一種實(shí)用的方法,用它在光盤上實(shí)時(shí)錄制包含有數(shù)字音頻、視頻和數(shù)據(jù)流的AVI文件。
AVI文件格式
AVI(Audio Video Interlace,音頻視頻交錯(cuò)),是微軟公司在1992年推出的一種數(shù)字音頻視頻格式,它符合RIFF(Resource Interchange File Format,資源互換文件格式)規(guī)范,作為管理Windows環(huán)境的多媒體數(shù)據(jù),例如波形音頻WAVE、MIDI和數(shù)字視頻AVI都采用這種存儲(chǔ)格式。構(gòu)造RIFF文件的基本單元是數(shù)據(jù)塊(Chunk),每個(gè)數(shù)據(jù)塊包含3個(gè)部分:4字符標(biāo)志符、數(shù)據(jù)大小和數(shù)據(jù)內(nèi)容(見圖1),值得注意的是,數(shù)據(jù)大小是指數(shù)據(jù)內(nèi)容的大小而不是整個(gè)數(shù)據(jù)塊的大小,即不包括數(shù)據(jù)塊的前面8個(gè)字節(jié)。
圖1 數(shù)據(jù)塊組成
AVI文件由多個(gè)數(shù)據(jù)塊組成,當(dāng)然,數(shù)據(jù)塊內(nèi)還可以包含其它的數(shù)據(jù)塊。通常來(lái)說(shuō),AVI文件由三大部分組成:信息區(qū)、數(shù)據(jù)區(qū)、索引區(qū)(可缺省),如圖2所示。
圖2 AVI文件組成
AVI文件的RIFF格式如圖3所示,這是當(dāng)前流行的DivX的AVI基本文件格式。其中“LIST’hdrl’”和“LIST’INFO’”是信息區(qū)的內(nèi)容,如寬度、高度、比特率、音頻編碼格式等等。“JUNK”是個(gè)填充區(qū),它的作用是使信息區(qū)的數(shù)據(jù)對(duì)齊,如32KB的整數(shù)?!癓IST’movi’”是數(shù)據(jù)區(qū),包含有交織的音頻和視頻數(shù)據(jù)幀。“LIST’idx1’”是索引區(qū),記錄各個(gè)音視頻數(shù)據(jù)幀的起始位置、大小和是否關(guān)鍵幀的信息。
光盤實(shí)時(shí)錄制系統(tǒng)
實(shí)時(shí)錄制系統(tǒng)方案
圖4是一個(gè)典型的實(shí)時(shí)音視頻錄制系統(tǒng),展示了實(shí)時(shí)錄制系統(tǒng)的各個(gè)主要組成部分。圖中的“音頻、視頻源”可來(lái)自無(wú)線系統(tǒng)的模擬電視信號(hào),或者是來(lái)自數(shù)字廣播系統(tǒng)的數(shù)字源。如果是模擬信號(hào),信息會(huì)被預(yù)處理、數(shù)字化、并被壓縮成音頻和視頻的單元流。音頻和視頻的單元流經(jīng)過(guò)“AVI復(fù)合器”轉(zhuǎn)換成符合AVI格式的數(shù)據(jù),然后把這些數(shù)據(jù)實(shí)時(shí)錄制在光盤上。
圖3 AVI文件的RIFF格式
值得注意的是,實(shí)時(shí)錄制中的“實(shí)時(shí)”要求是指,刻錄在光盤等介質(zhì)的速度要等于或者大于采集音視頻數(shù)據(jù)流的速度,否則就會(huì)出現(xiàn)數(shù)據(jù)瓶頸。具體來(lái)說(shuō),數(shù)據(jù)刻錄到光盤的速度是有限的,不能高于一定的閥值,這個(gè)閥值取決于光盤的特性。通常我們是以恒定的速率刻錄光盤,然而,從音視頻源采集數(shù)據(jù)的速度是不恒定的,場(chǎng)景快速變化所包含的數(shù)據(jù)流速度比較大,相反場(chǎng)景平緩變化的數(shù)據(jù)流速度比較小,當(dāng)然采樣精度也是影響數(shù)據(jù)流速度的一個(gè)重要因素。因此,我們必須在兩者之間加入緩存,如圖4所示。
圖4 典型的實(shí)時(shí)錄制系統(tǒng)
實(shí)時(shí)錄制難點(diǎn)
對(duì)于AVI文件來(lái)說(shuō),信息區(qū)里的內(nèi)容最為重要。如果信息區(qū)里的數(shù)據(jù)不正確,解碼器就無(wú)法準(zhǔn)確解碼整個(gè)文件。信息區(qū)是數(shù)據(jù)區(qū)的總結(jié),在數(shù)據(jù)區(qū)沒有完成錄制時(shí),無(wú)法得到有效的信息區(qū)數(shù)據(jù)。然而,從文件的排列結(jié)構(gòu)來(lái)看,AVI的信息區(qū)在文件頭,數(shù)據(jù)區(qū)在文件中間,最后是索引區(qū)。
如果在可重寫光盤上(CD-RW, DVD+RW, DVD-RW)錄制AVI,可以先在信息區(qū)的位置預(yù)先寫點(diǎn)無(wú)用的數(shù)據(jù),等到錄制完成之后再把正確的數(shù)據(jù)覆蓋寫到這個(gè)區(qū)域上。
然而在一次性可寫式光盤(CD-R, DVD+R, DVD-R)上進(jìn)行實(shí)時(shí)錄制時(shí),就無(wú)法用以上方法了,因?yàn)閿?shù)據(jù)一旦寫上去就無(wú)法改寫了;另外,在一個(gè)光軌里必須順序?qū)懭耄磸倪@個(gè)光軌的起始?jí)K地址寫到結(jié)束的塊地址??蓪懯焦獗P的這些特性是我們整個(gè)錄制過(guò)程中最大的技術(shù)難點(diǎn)。下面就重點(diǎn)介紹在可寫式光盤上解決實(shí)時(shí)錄制難題的方案。
在可寫式光盤上實(shí)時(shí)錄制
可寫式光盤各個(gè)可寫的數(shù)據(jù)區(qū)域是以光軌的形式排列在光盤上的。光軌通常也是一個(gè)挨著一個(gè)順序排列,但是在一些限制前提下,可以預(yù)留一個(gè)光軌來(lái)改變各個(gè)連續(xù)的數(shù)據(jù)區(qū)域?qū)懺诠獗P上的順序。限制前提如下:
* 預(yù)留光軌的長(zhǎng)度必須符合光盤糾錯(cuò)的要求;
* 光軌之間必須有一定的空隙,空隙里的內(nèi)容取決于刻錄機(jī);
* 最多預(yù)留2個(gè)光軌。
針對(duì)可寫式光盤的特點(diǎn),實(shí)時(shí)錄制要分為幾個(gè)步驟進(jìn)行,如圖5所示。
1) 預(yù)留一定大小的光軌,這個(gè)光軌將用來(lái)存儲(chǔ)信息區(qū)的內(nèi)容;
2) 開始實(shí)時(shí)錄制時(shí),把音頻視頻源采集的數(shù)據(jù)處理、編碼、交織形成音頻和視頻數(shù)據(jù)塊。然后把這些數(shù)據(jù)塊的數(shù)據(jù)放在緩存里。接下來(lái)系統(tǒng)把緩存的數(shù)據(jù)通過(guò)刻錄機(jī)寫到光盤上,完成實(shí)際的錄制;
3) 在錄制過(guò)程中,數(shù)據(jù)區(qū)中movi數(shù)據(jù)塊的大小可以通過(guò)音頻數(shù)據(jù)塊、視頻數(shù)據(jù)塊、填充數(shù)據(jù)塊的大小總合來(lái)計(jì)算;
4) movi數(shù)據(jù)塊的結(jié)尾填充一個(gè)數(shù)據(jù)塊來(lái)保證movi數(shù)據(jù)塊為32KB的整數(shù)倍。這個(gè)數(shù)據(jù)塊可以是JUNK的形式,并作為movi數(shù)據(jù)庫(kù)的字?jǐn)?shù)據(jù)塊;
5) 寫索引區(qū)數(shù)據(jù)塊,記錄movi區(qū)里音頻、視頻的索引信息;
6) 寫預(yù)留的光軌,包含信息區(qū)的內(nèi)容、RIFF文件頭,還有兩個(gè)光軌之間的空隙信息。
圖5 實(shí)時(shí)錄制流程
錄制結(jié)果
選取了幾種有代表性的平臺(tái)來(lái)測(cè)試錄制出來(lái)的AVI文件。測(cè)試平臺(tái)是
* Sony公司的DVP-NS930V DVD播放機(jī);
* Microsoft公司的Windows Media Player9.0播放器;
* DivX Networks公司的DivX6.0播放器。
播放測(cè)試矩陣如表1。
測(cè)試結(jié)果表明,在幾種主流的播放器上都能夠流暢播放,證實(shí)了這種方法兼容性良好。
結(jié)語(yǔ)
本文介紹了一種在光盤上錄制AVI文件的方法,這種方法也非常適用于一次性寫入的介質(zhì)。在基于LSI Logic公司的DMN-8603芯片的DVD錄像機(jī)解決方案中,采用了本文所述的方法來(lái)錄制AVI文件。
市面上現(xiàn)有的DVD光盤錄像機(jī)產(chǎn)品大多只支持錄制成DVD文件格式,而不支持錄制成AVI文件格式,而且更少有直接支持從音視頻源錄制到光盤上的文件格式。DVD文件格式只支持MPEG-2壓縮標(biāo)準(zhǔn),與之相比,AVI文件格式可以兼容更高壓縮標(biāo)準(zhǔn)的MPEG-4,這樣在一張DVD盤上可以儲(chǔ)存更長(zhǎng)時(shí)間的視頻數(shù)據(jù)。
參考文獻(xiàn):
1. Microsoft, "AVI RIFF File Reference", http://www.microsoft.com.
2. 鄂大偉, 多媒體技術(shù)基礎(chǔ)與應(yīng)用。北京:高等教育出版社,2003。
3. Hirow Marumon, "A Real Time Recording System for a camcorder by DVD Video Format”, June 2003, “Digital Object Identifier” 10.1109/ICCE.2003.1218853
評(píng)論