999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

視頻監控中的DVD視頻碼流研究及實現

2012-04-12 00:00:00吳冬梅等
現代電子技術 2012年1期

摘 要:傳統的視頻監控系統是將數據存儲在硬盤上,存在價格高、壽命短等缺點。為了用DVD光盤代替硬盤存儲數據,提出了將MPEG-2壓縮后的視頻數據生成DVD視頻數據的解決方案,并用C語言實現。分析所生成的文件數據,符合DVD Forum標準,使用該方法生成的文件在DVD播放機上播放,畫面質量良好,播放流暢。表明用該方法生成的DVD視頻碼流是成功的。

關鍵詞:視頻監控; DVD視頻數據; VOB; IFO

中圖分類號:TN919.8-34

文獻標識碼:A

文章編號:1004-373X(2012)01-0139-04

Research and realization of DVD video streaming for video monitoring system

WU Dong-mei1, HE Ce1, SHEN Yan2

(1.Department of Communication, Xi’an University of Science and Technology, Xi’an 710054, China;

2.Jiangsu Environmental Monitoring Center, Nanjing 210004, China)

Abstract:

The traditional video monitoring system stores data on hard disk, which has high price and short life span. In order to use DVD disk to replace hard disk storing data, a solution is presented which makes video data compressed by MPEG-2 generate DVD video data and is implemented by C language. By analyzing the data of the generated document and conforming to DVD Forum standard, using the method to generate document is played in DVD player, the video picture quality is good and fluency. It indicates that the DVD video stream generated by the method is successful.

Keywords: video monitoring; DVD video data; VOB; IFO

收稿日期:2011-08-01

基金項目:陜西省工業攻關計劃資助項目(2011K09-36)

0 引 言

當今視頻監控系統被廣泛應用于各個領域,成為金融、交通、住宅和社區等安全監控的重要手段。但是視頻監控系統數據量大,為了解決巨大的存儲開銷問題,需要開發存儲容量較大且價格便宜的存儲器。目前國內的視頻監控系統主要以嵌入式硬盤錄像機(DVR)為主,實現了數字化高保真存儲,并且存儲容量較大,但硬盤怕震動,散熱性差,保存數據缺乏穩定和可靠性,并且硬盤壽命短、價格較高。

DVD光盤也是一種普遍的存儲器,相對于硬盤而言,DVD光盤有著價格便宜,數據存儲穩定可靠,使用壽命長等優點。因此DVD光盤特別適用于儲存視頻、音頻等信息量特別巨大的數據,在多媒體數據處理領域應用前景十分廣泛。

因此,在視頻監控系統中用DVD光盤替代硬盤,符合市場發展的規律。如何將壓縮后的視頻數據生成DVD格式的視頻數據,是其中的關鍵技術,因此本文提出了將MPEG-2壓縮后的視頻數據生成DVD視頻數據的解決方案,并實現了視頻數據在DVD光盤上的存儲。

1 系統框架

在整個視頻監控系統中,原始視頻流生成DVD視頻碼流的整個過程框架如圖1所示。

圖1 方案系統框架

首先視頻監控系統中的攝像頭將采集到的視頻傳送給編碼器進行編碼,經過MPEG-2編碼后生成的碼流是基本流(ES流),ES流在服務器上進行打包生成基本流包(PES),然后將PES生成VOB文件,再根據VOB里面的信息生成相應的IFO文件,然后將VOB和IFO刻錄在光盤上。這樣就將監控到的視頻數據生成標準的DVD數據流存儲在DVD光盤中。如果將視頻數據在客戶端進行刻錄,則將壓縮后的視頻數據首先轉化為DVD數據,然后由服務器端通過網絡傳送到客戶端,就可以刻錄了。

2 DVD光盤文件及其結構分析

2.1 DVD光盤文件

在DVD視頻光盤中有兩個文件夾,分別是“AUDIO_TS”和“VIDEO_TS”,“AUDIO_TS”文件是為了DVD音頻光盤準備的;“VIDEO_TS”文件存儲DVD-VIDEO所有數據。一個標準的VIDEO-TS目錄中包含有3種類型的文件IFO,VOB,BUP[1]。

(1) IFO(InFOrmation):存放的導引信息可以讓DVD播放器通過這些信息找到相應的播放內容。該文件包含怎樣以及何時播放VOB文件中數據的控制信息,比如電影的一個章節在哪里開始,如何匹配音頻流、視頻流與字幕流等。

(2) VOB(Video OBject):存放的是影片播放數據。VOB主要包含播放數據和導航數據,其中導航數據包含播放控制信息(PCI)與數據索引信息(DSI)兩部分。

(3) BUP(BackUP):由于IFO文件對于光盤的正常播放起到非常重要的作用,因此對IFO文件建立一個副本,保存在BUP文件中,其內部數據與IFO文件完全一致。

2.2 視頻對象集文件(VOB)的數據結構

VOB文件存儲的是一個MPEG-2 PS流。由于DVD扇區存儲數據是以2 048個字節為一包,所以每個PS包大小是固定的2 048 B。VOB文件可由一個或多個VOB組成。一個VOB由一個或多個節目單元(Cell)組成,Cell可以包含任意數目的VOBU。VOBU是比Cell更小的一個邏輯結構,VOBU包含視頻數據、音頻數據、字幕及導航數據。每個VOBU開始首先是導航包,緊跟著是視頻包、音頻包或者字幕包。視頻只能包含1個視頻流,音頻最多是8個音頻流,字幕最多是32個字幕流。一個VOBU其實包含的視頻數據是一個圖像組(GOP),圖像組以I幀開始,其次是P幀,最后是B幀。一個圖像組結束后,就是一個新的VOBU開始,一般來說一個圖像組包含12幀圖像[2]。VOB文件結構如圖2所示。

2.3 DVD視頻配置文件數據結構

IFO文件包含視頻管理信息(VMG IFO)和視頻標題集信息(VTS IFO)兩種文件,由于VMG IFO和VTS IFO結構類似,本文就只介紹視頻標題集信息。VMGI描述整張光盤中卷集的相關信息,而VTSI則描述卷內的多個或一個視頻標題和視頻標題集菜單(VTSM)的相關信息。每一個VTS都有與之對應的VTSI[3]。VTSI共9個表,分別是視頻標題集信息管理表、視頻標題集章節搜索指針表、視頻標題集節目鏈信息表、視頻標題集菜單節目鏈單元表、視頻標題集時間映射表、視頻標題集菜單節目單元地址表、視頻標題集菜單VOBU地址映射表、視頻標題集節目單元地址表、視頻標題集VOBU地址映射表。

圖2 VOB文件的結構圖

3 DVD視頻文件實時生成設計

3.1 ES流生成VOB

從MPEG-2的ES流中提取一幀圖像數據,從序列頭和圖像頭中判斷所獲得的幀類型,如果是I幀,則首先生成導航包,在DVD中,每包數據是2 048 B,接著在I幀數據上封裝PS頭和PES頭,組成一個視頻數據包。然后判斷剩余的I幀數據是否能夠和PS頭及PES頭組成一個視頻數據包,如果夠用,則再生成一個視頻數據包,再次判斷I幀數據,依次循環下去,如果最后剩余I幀不夠用,則可以后面用P幀的數據補上,這樣就可以生成一包完整的視頻文件了。如果是P幀或B幀,則不用生成導航包,直接在P幀或B幀數據上封裝上PS頭和PES頭,組成一個視頻數據包,P幀或B幀判斷剩余字節和I幀的方法一樣,惟一不同的地方是,在一個GOP中的最后一個P幀或B幀的剩余字節不夠時,用填充數據0xFF填充,組成一個視頻數據包。這樣就生成一個VOBU,其結構是導航包+I幀+P幀+B幀+B幀+…+音頻幀+P幀+B幀。生成VOB的流程如圖3所示。

每個VOBU是以一個導航包開始的,所以必須先生成一個導航包[4],導航包的結構定義如下:

struct NAVPACK

{ uint8_t PACK_HEADER[14];

uint8_t SYSTEM_HEADER[24];

uint8_t PCI_PACKET_HEADER[6];

uint8_t PCI_SUBSTREAMID;

uint8_t PCI_DATA[979];

uint8_t DSI_PACKET_HEADER[6];

uint8_t DSI_SUBSTREAMID;

uint8_t DSI_DATA[546];

uint8_t reserved[471];

};

生成導航包后,則開始封裝視頻數據,具體的封包函數是MakePSStream,其返回是一個整形,如果封包成功,則返回0,否則返回1。函數原型如下:

Static int MakePSStream(char*ESbuffer,int ESlenght,int FreameType, _int64 Pts, _int64 Dts, MAKEPACKETOOL*Mpt)

每當一個GOP封裝成一個VOBU后,在開始封裝下一個VOBU時,須將打包管理器Mpt中VOBU的起始地址設置為Mpt->StartAddress=Mpt->EndAddress,這樣生成的VOBU地址才連續,即后一個VOBU緊跟著前一個VOBU。

圖3 生成VOB的流程圖

3.2 VTS IFO的生成

根據生成的VOB,可以生成對應的VTS IFO文件。首先定義一個結構體workset,用來存儲VOB文件有關信息,為 workset結構體中的各個成員變量分配空間并初始化,打開一個VOB文件,從VOB文件中每次讀取2 048 B的數據存儲在buffer中,判斷前4個字節是否等于0x000001BA,如果是,則獲取MPEG-2頭中時間信息SCR。接著判斷buffer[14],buffer[15],buffer[16],buffer[17]是否等于0x000001E0,如果是,則獲取PES包頭中視頻時間信息PTS和DTS。如果buffer[14],buffer[15],buffer[16],buffer[17]等于0x000001BD,獲取PES包頭中的音頻時間信息PTS和DTS[5]。如果等于0x000001BB,表明讀取的數據是導航包,循環從VOB文件中讀取2 048 B數據,直到指針指到文件結尾,循環結束,即可知一個VOB文件中的VOBU數和每個VOBU的開始地址和結束地址等信息,具體實現函數是FindsVobus()。然后通過函數MarkChapters()獲得的PGC數和Cell ID 等信息,將這些信息存儲在結構體workset。

根據前面的VOB信息,生成IFO中的各個表,并將各表的數據寫入VTS IFO文件。首先創建一個VTS IFO文件并以讀寫方式打開,然后調用函數WriteIFO()生成VIS IFO。函數原型是WriteIFO(FILE *h,struct workset*ws)。

VMG IFO生成的方法和VTS IFO類似,本文不再詳細介紹。

3.3 音視頻同步算法的研究

3.3.1 視頻PES時間信息重建

在MPEG-2標準中,圖像解碼的幀順序和顯示的幀順序是不相同的。在PES分組中的時間同步信息是顯示時間(PTS)和解碼時間(DTS)。

由于MPEG-2標準中給出的PTS和DTS的計算公式非常復雜,而且不易理解,本文提出了一種計算PTS和DTS的新方法。

在圖像經過編碼后,編碼器已經在生成后的ES流中標上了與同步信息相關的幀速率、幀參考和幀類型等字段[6],因此可以通過這些信息計算出PTS和DTS。根據MPEG-2的時序模型,知道視頻的DTS值始終具有逐幀遞增的特點,而PTS和DTS之間具有恒定的差值關系[7],因此根據DTS確定PTS的值。對于一個GOP中每一幀的PTS/DTS值計算如下:

(1) 如果當前幀是I幀,并且是整個碼流的第一幀。

PTS=PtsIni

DTS=PtsIni-(temporal_reference+1)*frame_time

(2) 如果當前幀是I幀、P幀或者B幀,但不是第一幀。

DTS=PtsIni+frame_counter*frame_time

PTS=DTS+(temporal_reference+1-GopFrameOrder)*frame_time

其中,PtsIni是編碼時設定的PTS初始值;temporal_reference是解碼后的顯示順序;frame_time是一幀圖像的持續時間;frame_counter為從整個碼流的第一幀到當前幀之間的幀數;GopFrameOrder為在當前GOP中的視頻幀序號。

3.3.2 PS時間信息重建

在PS流中,SCR是指時間同步信息。SCR表示了系統的時間基準,其頻率是27 MHz。SCR編碼的時候被分成兩個部分,一部分以系統時鐘的1/300為單位,稱為SCR_Base;另一部分以系統時鐘為單位,稱為SCR_Ext[8]。SCR的計算方法如下:

t(i)=SCR(i′)sys_clock_frequency+i-i′propram_mux_rate*50

令i=0,即可以得到當前i′字節編碼的SCR值。

在DVD文件中,每包數據大小是2 048 B,因此將i′設置為2 048, program_mux_rate是固定值25 200[9],即可得SCR(i′),從而得到:

SCR_Base=SCR/300

SCR_Ext=SCR%300

將第一個PS包即導航包的SCR設為初值0,以后每個PS包的SCR值按SCR(i′)遞增。

4 測試結果及分析

本文是在VC++6.0平臺上,用C語言進行開發的,由于C語言具有很好的移值性,因此程序也可以移植在嵌入式Linux系統中運行。

4.1 VOB文件測試

服務器端將生成的VOB及相應的IFO刻錄在DVD光盤中,或者通過網絡傳輸到客戶端進行刻錄。首先測試一下VOB文件,將其用播放軟件或者DVD播放機進行播放,本文是用暴風影音播放,播放畫面如圖4所示。

圖4 VOB文件的播放畫面

從播放效果來看視頻播放流暢,質量良好,沒有馬賽克效應。再用VobEdit軟件分析一下VOB文件結構,其結構正確,符合DVD論壇的規定[10]。

4.2 IFO文件測試

由于IFO不是視頻文件,不能直接播放驗證其是否正確,但可以通過DVD播放機播放VOB文件,看IFO文件是否能正確引導播放機播放VOB文件,通過

驗證,生成的IFO是可以的。也可以由IfoEdit軟件對生成的VTS IFO進行分析,其結構正確,符合DVD論壇的規定。測試結果如圖5所示。

圖5 分析生成VTS IFO文件測試結果

5 結 論

本文研究了DVD光盤中的文件結構,然后在VC++6.0平臺上用C語言編寫程序,成功將視頻監控的MPEG-2壓縮碼流封裝成VOB和IFO文件,并在電腦上用播放軟件播放和DVD播放機中播放,畫面質量良好,播放流暢。同時提出一種新的音視頻同步的算法。本文研究的成果已經應用在視頻監控系統中,用DVD光盤替代了硬盤存儲數據,為用戶節省了成本。

參 考 文 獻

[1]王復春.DVD視頻光盤的文件系統[J].記錄媒體技術,2008(5):32-34.

[2]張曉民,劉黎明,王水.DVD私有流分析及其應用研究[J].現代電子技術,2009,32(6):81-85.

[3]DVD Forum. DVD specification for read-only disc, version1.1 [R]. [S.l.]: DVD Forum, 1997.

[4]何韶煒.音/視頻實時DVD錄影系統的軟件實現[D].廣州:華南理工大學,2005.

[5]張莉,王保保.DVD光盤刻錄機的軟件系統實現[J].現代電子技術,2005,28(6):55-56.

[6]李宏.MPEG Ⅱ壓縮標準及其在DVD/DVB視頻信號處理中的應用[D].西安:西北工業大學,2007.

[7]洪波,鄒志永,王匡.數字電視廣播中的編解碼器的同步機制[J].中國有線電視,2003(11):27-30.

[8]ISO. ISO/IEC 13818-1 coding of moving pictures and associated audio Part1:system [S]. [S.l.]: ISO, 1996.

[9]ISO. ISO/IEC 13818-2 coding of moving pictures and associated audio Part2:video [S]. [S.l.]: ISO, 1996.

[10]DVD Forum. DVD-video recording for rewritable and recordable discs-part 3 video recording1.0 [R]. [S.l.]: DVD Forum, 1999.

作者簡介:

吳冬梅 女,1964年出生,浙江義烏人,碩士,教授。主要研究方向為小波分析、圖像壓縮及圖像識別等。

何 策 男,1985年出生,陜西咸陽人,在讀碩士研究生。主要研究方向為圖像處理。



主站蜘蛛池模板: 在线欧美日韩| 69av在线| 58av国产精品| 欧美一区二区精品久久久| 欧美一区二区三区不卡免费| 精品少妇人妻无码久久| 2020亚洲精品无码| 国产成人免费| 国产综合精品日本亚洲777| 久热这里只有精品6| 日韩AV手机在线观看蜜芽| 性视频久久| 久久精品国产91久久综合麻豆自制| 99青青青精品视频在线| 国产v欧美v日韩v综合精品| 色天天综合| 88av在线| 国产精品极品美女自在线网站| 色婷婷在线播放| 亚洲制服丝袜第一页| 风韵丰满熟妇啪啪区老熟熟女| 亚洲va在线∨a天堂va欧美va| 国产女人在线观看| 波多野结衣在线一区二区| 色噜噜狠狠狠综合曰曰曰| 四虎永久在线视频| 欧美日韩国产成人在线观看| 亚洲视频二| 亚洲精品国产乱码不卡| 在线国产91| 18禁高潮出水呻吟娇喘蜜芽| 欧美中文字幕在线播放| 日韩欧美在线观看| 国产99在线观看| 狠狠操夜夜爽| 77777亚洲午夜久久多人| 狠狠色丁婷婷综合久久| 亚洲免费福利视频| 国产在线小视频| 亚洲色图欧美一区| 青草国产在线视频| 亚洲福利视频一区二区| 国产成人啪视频一区二区三区| 国产精品无码影视久久久久久久| 国产一二视频| 91美女视频在线观看| 日本亚洲欧美在线| 亚洲精品国产成人7777| 久操线在视频在线观看| 欧美综合激情| 国产成人精品亚洲77美色| 国产精品不卡永久免费| 国产高清自拍视频| 9久久伊人精品综合| 欧美精品在线看| 天天综合网在线| 国产在线精品99一区不卡| 亚洲av无码片一区二区三区| 日韩视频精品在线| 国产毛片片精品天天看视频| 青青青国产免费线在| 久久久久无码国产精品不卡| 国产性生大片免费观看性欧美| 国产Av无码精品色午夜| 国产精品欧美亚洲韩国日本不卡| 四虎永久免费在线| 精品国产免费人成在线观看| 一级毛片免费的| 亚洲天堂精品视频| 久草青青在线视频| 欧洲日本亚洲中文字幕| 国产一区二区三区夜色| 国产亚洲高清视频| 国产美女精品在线| 狠狠干综合| 91视频区| 久久精品国产999大香线焦| 亚洲区一区| 亚洲第一网站男人都懂| 色妺妺在线视频喷水| 欧美日韩v| 国产精品lululu在线观看|