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

基于ADI H.264編碼庫(kù)的視頻壓縮系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2010-04-12 00:00:00魏立峰王慶輝
現(xiàn)代電子技術(shù) 2010年4期

摘 要:基于H.264視頻編碼標(biāo)準(zhǔn)和ADSP-BF561雙核的結(jié)構(gòu)特點(diǎn),結(jié)合ADI公司提供的H.264編碼庫(kù),完成整個(gè)編碼系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)中圖像采集采用OV7660,并利用了ADI公司高效、完備的系統(tǒng)級(jí)編碼庫(kù)支持,充分考慮了雙核DSP 的BF561在圖像處理中的優(yōu)異性能進(jìn)行并行編碼。測(cè)試結(jié)果表明,在BF561上實(shí)現(xiàn)H.264視頻編碼,實(shí)現(xiàn)視頻流的高質(zhì)量壓縮是完全可行的。

關(guān)鍵詞:H.264;編碼庫(kù);圖像采集;BF561

中圖分類(lèi)號(hào):TN919.81文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1004-373X(2010)04-083-03

Design and Implementation of Video Compression System Based on

ADI H.264 Encoding Library

LIU Ling,WEI Lifeng,WANG Qinghui

(Shenyang Institute of Chemical Technology,Shenyang,110142,China)

Abstract:Based on H.264 video coding standard and ADSP-BF561 dual-core structural features,design of the entire coding system is completed combined with H.264 encodeng library provided by ADI.In this design,with the support of ADI′s highly efficient,complete system-level encoding library,video is captured by OV7660,meanwhile,excellent performances of the dual-core DSP BF561 is given full consideration in image processing for parallel code.The result shows that it is possible to implement H.264 video coding on BF561 and high quality compression of video flow.

Keywords:H.264;encoding library;image capturing;BF561

0 引 言

目前多媒體通信終端設(shè)備具有廣泛的應(yīng)用前景,可以應(yīng)用于視頻會(huì)議、可視電話(huà)、數(shù)字電視等各個(gè)領(lǐng)域,隨著視頻處理技術(shù)的不斷創(chuàng)新,多媒體領(lǐng)域已成為研究熱點(diǎn)。為了適應(yīng)圖像、視頻技術(shù)日益增加的應(yīng)用需求,高性能的DSP紛紛問(wèn)世,ADI公司的ADSP-BF561就是一款功能強(qiáng)大的雙核DSP芯片,靈活的高速緩存架構(gòu),以及增強(qiáng)的DMA子系統(tǒng),適合執(zhí)行復(fù)雜的控制和信號(hào)處理任務(wù),同時(shí)保持高速的數(shù)據(jù)吞吐率。隨著并行處理的優(yōu)勢(shì)越來(lái)越明顯,多核架構(gòu)已經(jīng)成為業(yè)界公認(rèn)的未來(lái)嵌入式處理器的主流,而B(niǎo)F561就是這樣的典范,該處理器目前已經(jīng)成為視頻監(jiān)控等中高端應(yīng)用的廣泛選擇。

H.264/AVC作為最新的第三代視頻編碼標(biāo)準(zhǔn),其制定的主要目的就是為了提供更高的編碼效率和更好的網(wǎng)絡(luò)適應(yīng)性[1]。在相同重構(gòu)圖像質(zhì)量下,與H.263和MPEG-4 ASP標(biāo)準(zhǔn)相比,能節(jié)約50%的碼流;H.264采用分層模式,定義了視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL),后者專(zhuān)為網(wǎng)絡(luò)傳輸設(shè)計(jì),能適應(yīng)不同網(wǎng)絡(luò)中的視頻傳輸,進(jìn)一步提高網(wǎng)絡(luò)的“親和性”。在此,基于ADI H.264 編碼庫(kù)進(jìn)行了視頻壓縮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在整個(gè)實(shí)現(xiàn)過(guò)程中,利用ADI公司高效、完備的系統(tǒng)級(jí)編碼庫(kù)支持,充分考慮雙核DSP 的BF561在圖像處理中的優(yōu)異性能進(jìn)行并行編碼,實(shí)現(xiàn)了視頻流的高質(zhì)量壓縮。

1 硬件的結(jié)構(gòu)和特點(diǎn)

該設(shè)計(jì)主要采用ADI公司的Blackfin561(以下簡(jiǎn)稱(chēng)BF561)媒體處理芯片,BF561具有對(duì)稱(chēng)的雙核結(jié)構(gòu),即一個(gè)BF561芯片內(nèi)部集成了兩個(gè)Blackfin內(nèi)核,兩個(gè)內(nèi)核主頻都可以高達(dá)600 MHz,支持并行處理[2]。ADSP-BF561采用低功耗和低電壓的設(shè)計(jì)方法,改進(jìn)的哈佛結(jié)構(gòu)和分級(jí)的存儲(chǔ)器結(jié)構(gòu),即Level1(L1)存儲(chǔ)器一般以全速運(yùn)行,沒(méi)有或僅有很少的延遲,并反復(fù)調(diào)用程序段和頻繁用到的數(shù)據(jù)段放在L1中,以提高雙核編碼速率[3]。Level2(L2)是另一級(jí)存儲(chǔ)器,分布在片內(nèi)或片外,對(duì)它的訪問(wèn)耗費(fèi)多個(gè)處理器周期。整個(gè)體系結(jié)構(gòu)包括豐富的視頻指令。提供適合DCT、哈弗曼編碼等視頻壓縮標(biāo)準(zhǔn)中常用的操作指令,這些視頻指令還消除了主處理器與一個(gè)獨(dú)立的視頻編解碼器之間復(fù)雜和易混等通信問(wèn)題。BF561集成更多的外圍設(shè)備,即提供豐富的外圍設(shè)備接口,例如串行外設(shè)SPI接口,通用異步收發(fā)器UART接口和并行外設(shè)PPI接口等[4]。BF561最突出的特點(diǎn)就是傳輸速度快,具有高達(dá)600 MHz的主頻雙核結(jié)構(gòu)。

2 基于ADI H.264編碼庫(kù)的視頻壓縮系統(tǒng)

整個(gè)視頻壓縮系統(tǒng)由視頻采集和H.264編碼兩部分組成。視頻采集部分負(fù)責(zé)捕獲圖像,并且將捕獲到的圖像通過(guò)PPI接口填充到指定的視頻幀緩沖區(qū)中。H.264編碼主要負(fù)責(zé)對(duì)采集到的數(shù)據(jù)進(jìn)行壓縮,并以壓縮比特流輸出。

2.1 視頻采集

視頻采集部分的任務(wù)是完成視頻數(shù)據(jù)的采樣,并轉(zhuǎn)換成適合編碼器編碼的數(shù)據(jù)流。具體流程圖如圖1所示。

圖1 圖像采樣流程圖

視頻采集是從輸入設(shè)備OV7660驅(qū)動(dòng)程序獲得視頻圖像,OV7660是美國(guó) OmniVision 公司開(kāi)發(fā)的一款CMOS彩色圖像傳感器芯片[5],支持VGA,QVGA,CIF等多種分辨率。視頻輸出格式有Raw RGB,GRB 4∶2∶2 和YUV/YCbCr(4∶2∶2)。在本設(shè)計(jì)中,選擇CIF YUV(4∶2∶2)格式,需要設(shè)置其相應(yīng)寄存器COM1=0X00,CLKRC=0X80,COM7=0X20,TSLB=0X05,而H.264視頻編碼算法對(duì)4∶2∶0格式的視頻數(shù)據(jù)進(jìn)行壓縮[6],所以需要重采樣的過(guò)程。

4∶2∶2格式圖像一個(gè)宏像素中有4個(gè)Y分量,2個(gè)U分量和2個(gè)V分量[7]。4∶2∶0格式圖像一個(gè)宏像素中有4個(gè)Y分量,1個(gè)U分量和1個(gè)V分量。其中,Y,U和V的存儲(chǔ)區(qū)是分開(kāi)的,Y在前,然后是U,最后是V,所以把4∶2∶2格式轉(zhuǎn)換成4∶2∶0格式,要保留所有的Y,并取第偶數(shù)行的U和第奇數(shù)行的V。攝像頭配置完后,打開(kāi)PPI0將視頻數(shù)據(jù)填充到Blackfin處理器的視頻幀緩沖區(qū)中,數(shù)據(jù)將傳輸?shù)絻?nèi)部L1數(shù)據(jù)存儲(chǔ)器中,這樣處理器內(nèi)核用一個(gè)時(shí)鐘周期的延遲就可以訪問(wèn)到數(shù)據(jù),一個(gè)視頻幀圖像傳輸完后產(chǎn)生中斷,在中斷處理子程序中啟動(dòng)MDMA,即需要三對(duì)描述符source_y,dest_y,source_u,dest_u,source_v,dest_v,形成源和目的兩個(gè)描述符鏈表,進(jìn)行Y,U和V從交織的4∶2∶2格式的源數(shù)據(jù)區(qū)到Y(jié),U和V分離的目的數(shù)據(jù)區(qū)的搬移,分離亮度值和色度值[8],然后交給H.264編碼器進(jìn)行編碼。

2.2 視頻編碼

視頻編碼主要采用ADI封裝的編碼庫(kù),把關(guān)于編碼器配置參數(shù)的初始化、編碼器存儲(chǔ)空間的分配以及視頻的壓縮編碼算法等封裝在編碼庫(kù)里,生成.ldr鏈接文件。這樣在編碼程序運(yùn)行時(shí)直接調(diào)用編碼庫(kù)即可,節(jié)省了運(yùn)行周期,達(dá)到快速開(kāi)發(fā)的目的。

在編碼庫(kù)中宏塊是基本的處理單元。每個(gè)宏塊都由一個(gè)16×16 的亮度塊和兩個(gè)8×8的色度塊組成。處理圖像是按照從左至右,再?gòu)纳系较碌墓鈻艗呙璐涡蜻M(jìn)行的,共掃描16×16個(gè)元素。每個(gè)宏塊都可能按照幀內(nèi)或幀間模式進(jìn)行編碼。宏塊可以使用時(shí)間或者空間上的殘差預(yù)測(cè)。時(shí)間殘差預(yù)測(cè)宏塊稱(chēng)為幀間宏塊預(yù)測(cè),而空間殘差預(yù)測(cè)宏塊稱(chēng)為幀內(nèi)宏塊預(yù)測(cè)。編碼器對(duì)于預(yù)測(cè)模式的選擇主要是以最少殘差能量為依據(jù)的。編碼器以固定比特頻率編碼一個(gè)完整的幀間宏塊幀或者當(dāng)一個(gè)場(chǎng)景切換在視頻輸入源中被檢測(cè)到。那么這個(gè)完整的幀間宏塊幀就叫做I幀,編碼方式基本上就是JPEG的格式。P幀則是前向預(yù)測(cè)幀,編碼方式是使用運(yùn)動(dòng)檢測(cè)誤差編碼。

編碼器的核心處理已經(jīng)經(jīng)過(guò)優(yōu)化并從Blackfin的內(nèi)部L1存儲(chǔ)器運(yùn)行。這是編解碼器的重要過(guò)程。視頻圖像數(shù)據(jù)是通過(guò)MEMDMA從外部的L3存儲(chǔ)器到L1存儲(chǔ)器轉(zhuǎn)移的,編碼器一直流水線(xiàn)執(zhí)行,以達(dá)到最佳的性能[9]。

其中,API的函數(shù)使用尤為重要,主要有“h264_encode_init”, “h264_encode”,“h264_encode_close”,“h264_encode_init_me_subpel1/subpel2”模塊是獲取編碼視頻數(shù)據(jù)的命令。快速開(kāi)發(fā)的流程如圖2所示。

圖2 快速開(kāi)發(fā)的流程圖

(1) 聲明video_codec_objects的類(lèi)型vidcodec_t;

(2) 給比特流緩沖器、L3狀態(tài)寄存器和編碼庫(kù)的暫存分配內(nèi)存;

(3) 初始化video_codec_object的API變量;

(4) 使能功能塊h.264_encode_init去初始化編碼目標(biāo)。這個(gè)應(yīng)用需要傳輸指針到video_codec_object結(jié)構(gòu)中,分配記憶宏塊,比特流緩沖器存址并輸出nal list指針;

(5) 啟動(dòng)功能塊h.264_encode_init_me_subspel1是為了使能算法,達(dá)到子塊的運(yùn)動(dòng)搜索,需要特別注意h.264_encode_init_me_subspel1是與相應(yīng)算法一一對(duì)應(yīng)的,只有與通過(guò)它的API口去使能與算法相對(duì)應(yīng)的代碼才能被鏈接到最后的執(zhí)行過(guò)程中;

(6) 編碼器此時(shí)準(zhǔn)備編碼視頻模塊。在一個(gè)視頻模塊被采集后開(kāi)始編碼,啟動(dòng)功能塊h.264_encode編碼。在成功連續(xù)編碼過(guò)程中,編碼器將返回輸入模塊指針到caller,否則返回0;

(7) 使用輸出指針pnals->nallist壓縮數(shù)據(jù)以輸出,通過(guò)編碼器產(chǎn)生的壓縮碼流被釋放作為NAL單元,在那里編碼庫(kù)創(chuàng)建一個(gè)naltable,以描述在碼流緩沖器中NAL單元的位置以及NAL單元的長(zhǎng)度。系統(tǒng)層可以用這個(gè)信息去重新獲得NAL單元;

(8) 當(dāng)編碼結(jié)束繼續(xù)編碼時(shí),啟動(dòng)功能塊h.264_encode_close釋放系統(tǒng)資源,編碼完成。

3 實(shí)驗(yàn)結(jié)果

在該實(shí)驗(yàn)中,首先選擇好要連接的目標(biāo)板類(lèi)型,并在DOS窗口中找到可執(zhí)行目標(biāo)文件hostapp.exe –u,以測(cè)試USB口是否接通。此時(shí),調(diào)試板上的發(fā)光二極管15,16點(diǎn)亮, USB連接成功,在編碼的過(guò)程中發(fā)光二極管18和19不停閃爍, BF561的A核和B核正在完成編碼的工作,最后將壓縮碼流以文件的形式通過(guò)USB保存在本地存儲(chǔ)器中。編碼結(jié)束后,用H.264的解碼器對(duì)壓縮碼流解碼,用YUVviewerPlus.exe播放解碼后的視頻文件。解碼后的圖像清晰度與在Visual DSP++5.0中用Image Viewer查看的相比[10],圖像質(zhì)量基本相同,圖像清晰。

4 結(jié) 語(yǔ)

在此結(jié)合H.264視頻編碼標(biāo)準(zhǔn)的特點(diǎn)及ADI公司的BF561處理器結(jié)構(gòu)和特點(diǎn),完成基于ADI H.264編碼庫(kù)的視頻壓縮系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。由于本文在代碼移植和改進(jìn)中尚未對(duì)代碼進(jìn)行優(yōu)化處理,對(duì)DSP的內(nèi)部資源利用也沒(méi)有達(dá)到最佳,從實(shí)驗(yàn)結(jié)果看,編碼時(shí)可達(dá)到每秒鐘編碼20幀圖像的速度,而OV7660采集圖像的速度是每秒鐘30幀,并未達(dá)到實(shí)時(shí)編碼的性能,這將在后續(xù)工作中重點(diǎn)實(shí)現(xiàn)。

參考文獻(xiàn)

[1]Thomas Wiegand,Gary J Sullivan.Overview of the H.264/AVC Video Coding Standard[J].IEEE Trans.on Circuits and Systems for Video Technology,2003,7(13):560-576.

[2]H.264/MPEG-4 Part 10 White Paper[EB/OL].http://www.vcdex.com.

[3]Analog Devices.ADSP-BF561 Blackfin Processor Hardware Reference[EB/OL].http://www.ana-log.com.

[4]Analog Devices.Blackfin?Embedded Symmetric Multi-Processor[P].

[5]OV7660/OV7161 CMOS VGA (640×480) CameraChip Implementation Guide[Z].Rev.1,2004.

[6]畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)H.264/AVC[M].北京:人民郵電出版社,2005.

[7]劉峰.視頻圖像編碼技術(shù)及國(guó)際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.

[8]Analog Devices Inc..Video Framework Considerations for Image Processing on Blackfin Processors (EE-276) [Z].Rev.1,2005.

[9]Analog Devices Inc..H.264 BP Encoder Developer′s Guide Blackfin ADSP-BF5xx Processors[Z].Rev.2.1.0,2008.

[10]Analog Devices Inc..VisualDsp++5.0 Device Drivers and System Services Manual for Blackfin? Processors[Z].Rev.3.0,2007.

主站蜘蛛池模板: 成人毛片免费在线观看| 精品三级在线| 国产青榴视频在线观看网站| 国产办公室秘书无码精品| 国产精品欧美日本韩免费一区二区三区不卡 | 中文字幕2区| 国产成人亚洲精品色欲AV | 米奇精品一区二区三区| 青青热久免费精品视频6| 日韩精品高清自在线| 国产美女精品一区二区| 无码精品福利一区二区三区| 99成人在线观看| 亚洲第一综合天堂另类专| 黄色一及毛片| 日韩一区精品视频一区二区| 久久亚洲精少妇毛片午夜无码| 国产99视频在线| 久久这里只有精品66| 青青操国产| 久草国产在线观看| 无码久看视频| 欧美一区中文字幕| 91精品国产自产91精品资源| 在线播放真实国产乱子伦| 婷婷综合在线观看丁香| 在线无码av一区二区三区| 日韩在线视频网站| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲精品国产日韩无码AV永久免费网| 在线日本国产成人免费的| 亚洲欧美精品日韩欧美| 免费Aⅴ片在线观看蜜芽Tⅴ | 精品伊人久久久香线蕉 | 88国产经典欧美一区二区三区| 亚洲经典在线中文字幕| 一本色道久久88综合日韩精品| 久久中文电影| 国产精品极品美女自在线看免费一区二区| 亚洲天堂日韩在线| 99久久无色码中文字幕| 日本www在线视频| 精品91在线| 国产亚洲日韩av在线| 亚洲日韩第九十九页| 亚洲精品制服丝袜二区| 日韩av无码精品专区| 精品无码视频在线观看| 久久大香伊蕉在人线观看热2| 秋霞国产在线| 久久久久免费看成人影片 | 刘亦菲一区二区在线观看| 91成人在线免费视频| 亚洲一区二区三区中文字幕5566| 亚洲视频在线网| 毛片在线区| 亚洲精品国产首次亮相| 久久a毛片| 97国产在线观看| 亚洲有无码中文网| 女人爽到高潮免费视频大全| 伊人色在线视频| 国产理论最新国产精品视频| 亚洲伊人久久精品影院| 久久99久久无码毛片一区二区| 国产超碰在线观看| 日韩精品久久久久久久电影蜜臀 | 五月婷婷激情四射| 亚洲人成影视在线观看| 91蝌蚪视频在线观看| 欧美成人免费午夜全| 午夜免费视频网站| 一级看片免费视频| 成人精品在线观看| 欧美另类第一页| 黄色片中文字幕| 亚洲91在线精品| 97se亚洲综合在线天天| 免费黄色国产视频| 欧美精品H在线播放| 亚洲午夜综合网| 2020亚洲精品无码|