亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ADI H.264編碼庫的視頻壓縮系統(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編碼庫,完成整個(gè)編碼系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)中圖像采集采用OV7660,并利用了ADI公司高效、完備的系統(tǒng)級編碼庫支持,充分考慮了雙核DSP 的BF561在圖像處理中的優(yōu)異性能進(jìn)行并行編碼。測試結(jié)果表明,在BF561上實(shí)現(xiàn)H.264視頻編碼,實(shí)現(xiàn)視頻流的高質(zhì)量壓縮是完全可行的。

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

        中圖分類號:TN919.81文獻(xiàn)標(biāo)識碼:A

        文章編號: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)用于視頻會議、可視電話、數(shù)字電視等各個(gè)領(lǐng)域,隨著視頻處理技術(shù)的不斷創(chuàng)新,多媒體領(lǐng)域已成為研究熱點(diǎn)。為了適應(yīng)圖像、視頻技術(shù)日益增加的應(yīng)用需求,高性能的DSP紛紛問世,ADI公司的ADSP-BF561就是一款功能強(qiáng)大的雙核DSP芯片,靈活的高速緩存架構(gòu),以及增強(qiáng)的DMA子系統(tǒng),適合執(zhí)行復(fù)雜的控制和信號處理任務(wù),同時(shí)保持高速的數(shù)據(jù)吞吐率。隨著并行處理的優(yōu)勢越來越明顯,多核架構(gòu)已經(jīng)成為業(yè)界公認(rèn)的未來嵌入式處理器的主流,而BF561就是這樣的典范,該處理器目前已經(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),后者專為網(wǎng)絡(luò)傳輸設(shè)計(jì),能適應(yīng)不同網(wǎng)絡(luò)中的視頻傳輸,進(jìn)一步提高網(wǎng)絡(luò)的“親和性”。在此,基于ADI H.264 編碼庫進(jìn)行了視頻壓縮系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),在整個(gè)實(shí)現(xiàn)過程中,利用ADI公司高效、完備的系統(tǒng)級編碼庫支持,充分考慮雙核DSP 的BF561在圖像處理中的優(yōu)異性能進(jìn)行并行編碼,實(shí)現(xiàn)了視頻流的高質(zhì)量壓縮。

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

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

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

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

        2.1 視頻采集

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

        圖1 圖像采樣流程圖

        視頻采集是從輸入設(shè)備OV7660驅(qū)動程序獲得視頻圖像,OV7660是美國 OmniVision 公司開發(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視頻編碼算法對4∶2∶0格式的視頻數(shù)據(jù)進(jìn)行壓縮[6],所以需要重采樣的過程。

        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的存儲區(qū)是分開的,Y在前,然后是U,最后是V,所以把4∶2∶2格式轉(zhuǎn)換成4∶2∶0格式,要保留所有的Y,并取第偶數(shù)行的U和第奇數(shù)行的V。攝像頭配置完后,打開PPI0將視頻數(shù)據(jù)填充到Blackfin處理器的視頻幀緩沖區(qū)中,數(shù)據(jù)將傳輸?shù)絻?nèi)部L1數(shù)據(jù)存儲器中,這樣處理器內(nèi)核用一個(gè)時(shí)鐘周期的延遲就可以訪問到數(shù)據(jù),一個(gè)視頻幀圖像傳輸完后產(chǎn)生中斷,在中斷處理子程序中啟動MDMA,即需要三對描述符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封裝的編碼庫,把關(guān)于編碼器配置參數(shù)的初始化、編碼器存儲空間的分配以及視頻的壓縮編碼算法等封裝在編碼庫里,生成.ldr鏈接文件。這樣在編碼程序運(yùn)行時(shí)直接調(diào)用編碼庫即可,節(jié)省了運(yùn)行周期,達(dá)到快速開發(fā)的目的。

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

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

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

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

        (1) 聲明video_codec_objects的類型vidcodec_t;

        (2) 給比特流緩沖器、L3狀態(tài)寄存器和編碼庫的暫存分配內(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) 啟動功能塊h.264_encode_init_me_subspel1是為了使能算法,達(dá)到子塊的運(yùn)動搜索,需要特別注意h.264_encode_init_me_subspel1是與相應(yīng)算法一一對應(yīng)的,只有與通過它的API口去使能與算法相對應(yīng)的代碼才能被鏈接到最后的執(zhí)行過程中;

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

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

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

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

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

        4 結(jié) 語

        在此結(jié)合H.264視頻編碼標(biāo)準(zhǔn)的特點(diǎn)及ADI公司的BF561處理器結(jié)構(gòu)和特點(diǎn),完成基于ADI H.264編碼庫的視頻壓縮系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。由于本文在代碼移植和改進(jìn)中尚未對代碼進(jìn)行優(yōu)化處理,對DSP的內(nè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ù)及國際標(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.

        伊人加勒比在线观看视频| 久草热这里只有精品在线| 蜜桃视频中文字幕一区二区三区| 手机免费高清在线观看av| 国产成人av乱码在线观看| 2019最新国产不卡a| 亚洲色图综合免费视频| 国产精品三级在线不卡| 精品无码人妻夜人多侵犯18 | 2021国内精品久久久久精免费| 色婷婷亚洲一区二区在线| 日韩女优av一区二区| 无码不卡av东京热毛片| 国产99久久无码精品| 中文字幕亚洲乱码熟女在线| 男女射黄视频网站在线免费观看 | 丰满少妇人妻久久久久久| 久久久久99精品成人片试看| 午夜精品久视频在线观看| 亚洲综合久久精品少妇av| 伊甸园亚洲av久久精品| 蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 免费人成黄页在线观看国产| 国产自国产自愉自愉免费24区 | 亚洲av香蕉一区区二区三区| 久久精品国产亚洲av高清漫画| 久久久高清免费视频| 美腿丝袜日韩在线观看| 国产一区内射最近更新| 日本VA欧美VA精品发布| 黄网站a毛片免费观看久久| 丰满少妇按摩被扣逼高潮| 日本不卡一区二区三区在线| 91亚洲精品福利在线播放| 亚洲高清一区二区精品| 一本色道久久88亚洲精品综合| 精品久久久久久久久久久aⅴ| 久久99热精品免费观看麻豆| 久草青青91在线播放| 999国内精品永久免费视频| 国内精品视频成人一区二区|