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