蘭浩 王湘慧
摘要:研究了H.264編解碼算法在DM6467上的應(yīng)用,重點(diǎn)分析了圖像數(shù)據(jù)流通過(guò)網(wǎng)絡(luò)在IDE硬盤上的存儲(chǔ)和讀取的過(guò)程。實(shí)現(xiàn)了基于UDP協(xié)議的網(wǎng)絡(luò)攝像機(jī)的功能,獲得了良好的效果。
關(guān)鍵詞:H.264;存儲(chǔ);讀??;DM6467
中圖分類號(hào):TN919 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)34-8251-03
H.264[1]是一種高性能的視頻編解碼技術(shù),由ITU-T和ISO兩個(gè)國(guó)際標(biāo)準(zhǔn)化組織聯(lián)合制定一個(gè)新的視頻編碼標(biāo)準(zhǔn),以實(shí)現(xiàn)視頻的高壓縮比、高圖像質(zhì)量、良好的網(wǎng)絡(luò)適應(yīng)性等目標(biāo)。H.264已成為視頻圖像壓縮的最佳標(biāo)準(zhǔn),采用H.264能將視頻信號(hào)壓縮成高壓縮比的視頻數(shù)據(jù)流,實(shí)現(xiàn)在網(wǎng)絡(luò)遠(yuǎn)端視頻數(shù)據(jù)存儲(chǔ)和讀出的功能。
H.264標(biāo)準(zhǔn)壓縮系統(tǒng)[2-6]由視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NetworkAbstractionLayer,NAL)兩部分組成。VCL中包括VCL編碼器與VCL解碼器,主要功能是視頻數(shù)據(jù)壓縮編碼和解碼,它包括運(yùn)動(dòng)補(bǔ)償、變換編碼、熵編碼等壓縮單元。
1網(wǎng)絡(luò)攝像機(jī)存儲(chǔ)回放系統(tǒng)構(gòu)成
系統(tǒng)采用DM6467DSP來(lái)實(shí)現(xiàn)遠(yuǎn)程視頻圖像的采集、編碼,解碼顯示及本地存儲(chǔ),也可通過(guò)UDP協(xié)議[7]傳輸?shù)骄W(wǎng)絡(luò)遠(yuǎn)端的DSP存儲(chǔ)和讀取等功能。系統(tǒng)框架圖如圖1所示。
工作原理:CCD攝像機(jī)捕捉到模擬圖像信號(hào)傳送至視頻信號(hào)模數(shù)轉(zhuǎn)換芯片TVP7002轉(zhuǎn)換成連續(xù)的視頻數(shù)據(jù)流,傳輸至DM6467來(lái)處理。DSP芯片完成對(duì)視頻的采集處理,建立捕捉線程,并從視頻前端的設(shè)備驅(qū)動(dòng)程序取得720P@60Hz最新圖像。同時(shí)還建立視頻壓縮線程,與編解碼引擎通信,將最新圖像編碼后,提交給寫文件函數(shù)將其寫入文件。調(diào)用UDP協(xié)議傳輸,將壓縮后的視頻流通過(guò)Internet或者Intranet傳輸至網(wǎng)絡(luò)遠(yuǎn)端的DSP,遠(yuǎn)端的DM6467中ARM處理器調(diào)用存儲(chǔ)進(jìn)程,完成視頻數(shù)據(jù)流在IDE硬盤上的存儲(chǔ)工作。如果要將硬盤中的視頻數(shù)據(jù)流回放,也是調(diào)用讀取進(jìn)程,在DSP端建立顯示線程,與Linux的視頻后端驅(qū)動(dòng)程序通信,將最新圖像提交顯示。
2ICETEK-DM6467-EVM簡(jiǎn)介
ICETEK-DM6467-EVM[8-9]可以廣泛用于視頻安全監(jiān)控系統(tǒng)、IP機(jī)頂盒、視頻會(huì)議、車載信息娛樂(lè)系統(tǒng)、便攜式媒體以及數(shù)碼像機(jī)等數(shù)字視頻流的編碼和解碼等硬件處理系統(tǒng)。ICETEK-DM6467-EVM框架圖如圖2所示。
ICETEK-DM6467-EVM是一款多功能的平臺(tái),擴(kuò)展了TMS320DM6467幾乎所有可擴(kuò)展的外設(shè)和接口,而且將關(guān)鍵接口單獨(dú)引出,為用戶自定義擴(kuò)展的接口。適用于具體產(chǎn)品應(yīng)用、軟硬件研發(fā)、嵌入式系統(tǒng)設(shè)計(jì)和評(píng)估、嵌入式教學(xué)實(shí)驗(yàn)、多媒體應(yīng)用系統(tǒng)組建等。
ICETEK-DM6467-EVM采用TI最新的應(yīng)用于數(shù)字視頻處理的片上系統(tǒng)芯片TMS320DM6467處理器,針對(duì)高端視頻多媒體系統(tǒng)的需求而設(shè)計(jì)。該處理器為ARM+DSP的雙核架構(gòu)處理器兼具DSP和RISC技術(shù)的優(yōu)勢(shì),集成了時(shí)鐘頻率高達(dá)594MHz的C64x+DSP內(nèi)核和297MHz的ARM926EJ-S內(nèi)核。TMS320DM6467包含一個(gè)高清視頻/影像協(xié)處理器(HDVICP)和視頻數(shù)據(jù)轉(zhuǎn)換引擎(VDCE),用于減輕相關(guān)算法的DSP內(nèi)核繁重的視頻與影像處理負(fù)擔(dān),使更多的DSPMIPS能用于視頻后處理或者其他并行任務(wù)。
ICETEK-DM6467-EVM板上存儲(chǔ)器由256MB的DDRDRAM、128MBNANDFlash多種類型的存儲(chǔ)器組成。DDR存儲(chǔ)器主要用于程序和內(nèi)核的運(yùn)行,NADNFlash主要用于內(nèi)核的存儲(chǔ)。
3網(wǎng)絡(luò)攝像機(jī)存儲(chǔ)回放流程
網(wǎng)絡(luò)攝像機(jī)存儲(chǔ)和回放是使用DM6467上297MHz的ARM926EJ-S內(nèi)核在Linux環(huán)境下完成。
視頻數(shù)據(jù)流存儲(chǔ)的工作原理如下:等待獲得硬件的幀同步信號(hào),直到獲得otherthread信號(hào),然后從videothread中獲取encodedbuffer;并判斷是否正確獲取了數(shù)據(jù),如果沒(méi)有獲得數(shù)據(jù),則顯示數(shù)據(jù)獲取失敗,調(diào)用cleanup函數(shù)清除緩沖區(qū)并回到等待otherthread信號(hào)狀態(tài);如果獲得正確數(shù)據(jù)則判斷從videothread獲取的數(shù)據(jù)是否溢出,如果沒(méi)溢出,則判斷緩沖區(qū)中的數(shù)據(jù)是否可以被存儲(chǔ),如果不能被存儲(chǔ),則顯示存儲(chǔ)失敗并調(diào)用cleanup函數(shù)清除緩沖區(qū),返回等待otherthread信號(hào)狀態(tài);如果可以被存儲(chǔ),則顯示存儲(chǔ)了0btye并再次的從videothread中獲取encodedbuffer數(shù)據(jù);如果videothread從中獲取的數(shù)據(jù)溢出了,則將encodedbuffer中的數(shù)據(jù)存儲(chǔ)到硬盤上,并調(diào)用cleanup函數(shù)顯示存儲(chǔ)成功,并在此從videothread中獲取數(shù)據(jù)。其流程圖如圖3所示。
從存儲(chǔ)設(shè)備中讀取圖像再回放的工作原理如下:打開編碼輸出文件,并判斷文件是否為空,如果為空則調(diào)用cleanup函數(shù)清除緩沖區(qū)并重新打開編碼輸出文件;若不為空則創(chuàng)建videothread的緩沖區(qū)。如果創(chuàng)建失敗則調(diào)用cleanup函數(shù)清除緩沖區(qū)并重新打開編碼輸出文件;創(chuàng)建成功則向緩沖區(qū)中填充編碼了的數(shù)據(jù),如果沒(méi)有正常填充,則顯示編碼數(shù)據(jù)填充失敗并調(diào)用cleanup函數(shù)清除緩沖區(qū),重新打開編碼輸出文件;如果填充正常則等待填充完成,完成后等待overthread信號(hào)。其流程如圖4所示。
4H.264解碼算法消耗
H.264BPEncoder(v1.10.00)onDM6467是由TI提供的運(yùn)行在DM6467處理器上的視頻編解碼標(biāo)準(zhǔn)算法。測(cè)試中消耗指令周期:采用CodeGenerationTools版本6.0.3,程序、堆棧和輸入輸出緩沖區(qū)均位于擴(kuò)展存儲(chǔ)器,32k字節(jié)1級(jí)程序高速緩存,64k字節(jié)1級(jí)數(shù)據(jù)高速緩存的存儲(chǔ)器映射。平均值為30fps時(shí)的每幀用時(shí)平均計(jì)算結(jié)果,最大值為在30fps時(shí)最壞情況下的計(jì)時(shí),如表1所示。
5結(jié)論
通過(guò)測(cè)試H.264算法的編解碼性能,完成了基于UDP協(xié)議的網(wǎng)絡(luò)碼流傳輸壓縮后的視頻數(shù)據(jù)流,并實(shí)現(xiàn)在IDE硬盤上的存取和讀取功能。編解碼設(shè)計(jì)很多的復(fù)雜的數(shù)學(xué)運(yùn)算,在DSP端可以對(duì)圖像編解碼做進(jìn)一步的算法優(yōu)化,更好的利用DSP片內(nèi)資源,提高編碼速度,在廣播電視、視頻存儲(chǔ)和回放、視頻會(huì)議等領(lǐng)域具有廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1]沈蘭蓀,卓力.小波編碼與網(wǎng)絡(luò)視頻傳輸[M].北京:科學(xué)出版社,2005.
[2]ITU-TReeonunendation.H.263,“VideoCodingforLowbitrateCommunication”[S].Version1,1995;Version2,1998;Version3,2000.
[3]余兆明.圖像編碼標(biāo)準(zhǔn)H.264計(jì)數(shù)[M].北京:人民郵電出版社,2005.
[4]呂明洲,陳耀武.基于異構(gòu)多核處理器的H.264并行編碼算法[J].計(jì)算機(jī)工程,2012,16(38):35-39.
[5]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)——H.264/AVC[M].北京:人民郵電出版社,2005.
[6]張彤宇,蘇睿,劉寶蘭.H.264/AVC視頻編碼器在DM642平臺(tái)上的實(shí)現(xiàn)與優(yōu)化[J].微電子學(xué)與計(jì)算機(jī),2005,22(12):165-168.
[7]蘭浩,徐瑤,李仲陽(yáng),等.基于H.264編解碼UDP協(xié)議網(wǎng)絡(luò)攝像機(jī)的實(shí)現(xiàn)[J].湖南師范大學(xué)自然科學(xué)學(xué)報(bào),2008,31(3):42-46.
[8]林李松,陳耀武.基于TMS320DM6467的H.264自適應(yīng)錯(cuò)誤掩蓋并行解碼算法[J].計(jì)算機(jī)工程與應(yīng)用.2012.48(8):172-175.
[9]劉根林,陳健.基于TMS320C6416芯片的H.264編碼器的設(shè)計(jì)和實(shí)現(xiàn)[J].數(shù)字電視與數(shù)字視頻,2004,10:23-25.