新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 自適應(yīng)實(shí)時(shí)視頻采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

自適應(yīng)實(shí)時(shí)視頻采集處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

——
作者:王琦 王永生 王珺 西北工業(yè)大學(xué)電子信息學(xué)院 時(shí)間:2007-01-26 來(lái)源:《電子元器件應(yīng)用》 收藏

引言

本文引用地址:http://butianyuan.cn/article/21007.htm

在信息技術(shù)和計(jì)算機(jī)互聯(lián)網(wǎng)飛速發(fā)展的大背景下,數(shù)字視頻的需求與日俱增。視頻監(jiān)控、視頻會(huì)議及各類(lèi)便攜式、手持式pda等都需要實(shí)時(shí)的視頻采集和處理,與此同時(shí),也伴隨著海量數(shù)據(jù)的產(chǎn)生,這就對(duì)視頻采集系統(tǒng)的處理能力、并行速度提出了更高的要求。而dsp以其高精度、快速度、小功耗、高并行性、易于集成等優(yōu)點(diǎn)很好的滿足了這一要求,同時(shí)也越來(lái)越廣泛地應(yīng)用于各類(lèi)實(shí)時(shí)視頻和嵌入式系統(tǒng)。

本文給出了一個(gè)基于ti高端dsp芯片tms320c6211的自適應(yīng)實(shí)時(shí)視頻采集處理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方法,利用該方法可自適應(yīng)接收ntsc或pal視頻,并自動(dòng)進(jìn)行50/60hz場(chǎng)頻的檢測(cè),以將其解碼為數(shù)字視頻,然后通過(guò)軟件設(shè)置所需的輸出格式與分辨率,來(lái)完成實(shí)時(shí)的視頻采集與處理。

系統(tǒng)概述

本視頻采集處理系統(tǒng)的總體結(jié)構(gòu)如圖1所示。該系統(tǒng)主要由攝像頭、專用視頻a/d轉(zhuǎn)換器saa7114h、視頻緩存單元、核心處理器tms320c6211單元和輸出接口構(gòu)成。其中攝像頭采集的ntsc/pal模擬視頻信號(hào)通過(guò)saa7114h視頻專用解碼芯片來(lái)實(shí)時(shí)接收且完成a/d和格式轉(zhuǎn)換,并送入同步fifo芯片sn74v215進(jìn)行緩沖存儲(chǔ)。fifo半滿時(shí),可向tms320c6211申請(qǐng)中斷以請(qǐng)求讀入數(shù)據(jù)。tms320c6211啟動(dòng)edma以完成數(shù)字視頻的轉(zhuǎn)存,dsp外圍sdram和flash用來(lái)存儲(chǔ)對(duì)數(shù)字視頻所做的后期處理的(例如mpeg-4、h.264壓縮)數(shù)據(jù)與程序。cpld isplsi1032e用來(lái)產(chǎn)生系統(tǒng)中所需的邏輯控制信號(hào)、讀寫(xiě)控制信號(hào)、同步信號(hào)和dsp中斷請(qǐng)求信號(hào),輸出接口依據(jù)應(yīng)用場(chǎng)合可以選擇10 mb/l00mb自適應(yīng)以太網(wǎng)接口或pci接口來(lái)完成處理后數(shù)字視頻信號(hào)的輸出。

系統(tǒng)電路設(shè)計(jì)及工作原理

◇電路設(shè)計(jì)

視頻采集處理系統(tǒng)以tms320c6211 dsp和視頻解碼芯片saa7114h為核心。tms320c6211是ti定點(diǎn)dsp家族的高端產(chǎn)品,采用最先進(jìn)的vliw硬件結(jié)構(gòu),在167 mhz在時(shí)鐘下,可達(dá)133mips,本文采用的tms320c6211的外部輸入時(shí)鐘頻率為25 mhz,倍頻后處理器主頻為150 mhz。視頻解碼芯片saa7114h是philips公司的主流視頻處理芯片,具有6個(gè)模擬信號(hào)輸入端,2個(gè)模擬信號(hào)處理通道和2個(gè)模擬反混疊濾波器,可采樣支持4:2:2、4:2:0、4:1:1和4:1:0格式,a/d采樣轉(zhuǎn)換精度可達(dá)到9bit。該芯片的控制接口是i2c接口。saa7114h與同步fifo及tms320c6211的連接電路見(jiàn)圖2所示(cpld及其它部分略去)。

saa7114h的工作主頻為24.576mhz,dsp可通過(guò)i2c總線與其接口,視頻圖像經(jīng)saa7114h第20管腳ai11輸人采樣后,可從i port和h port以16位寬度的數(shù)字圖像格式輸出,同時(shí)輸出同步信號(hào)igpv、igph、idq、fid,iclk以分別表示行、場(chǎng)同步、有效標(biāo)志、輸出幀同步和像素同步信號(hào),其時(shí)序見(jiàn)圖3所示。這些同步信號(hào)接入cpld后,結(jié)合dsp便可完成對(duì)視頻采集和同步的控制。

saa7114h輸出的16位數(shù)字視頻信號(hào)會(huì)先后進(jìn)入兩片512×18 bit(最高2 bit未使用)同步fifo sn74v215進(jìn)行緩存,再經(jīng)控制邏輯將fifo輸出的兩個(gè)16位數(shù)據(jù)合并為32位數(shù)據(jù),dsp通過(guò)edma從數(shù)據(jù)總線ed0~ed31一次讀取。fif0由dsp mcbsp1接口輸出使能信號(hào)fen,而復(fù)位信號(hào)rs則結(jié)合cpld產(chǎn)生的讀寫(xiě)使能nwen、nren等信號(hào)進(jìn)行控制。

◇系統(tǒng)工作原理

dsp配置mcbsp1接口的4個(gè)管腳clkr1、clkx1、fsr1、fsx1均為通用i\o信號(hào),可分別用來(lái)模擬i2c總線以完成對(duì)sa7114h的配置,同時(shí)完成對(duì)fifo的控制。數(shù)字視頻數(shù)據(jù)的傳輸是通過(guò)edma完成的。此視頻系統(tǒng)包括視頻同步采集和差錯(cuò)控制兩個(gè)過(guò)程,其采集過(guò)程如下:

1)系統(tǒng)復(fù)位后,mcbsp1接口fen和rs均保持低電平,即fifo處于復(fù)位態(tài),不允許寫(xiě)入。

2)采集開(kāi)始時(shí),dsp將rs置1,fifo脫離復(fù)位態(tài),然后置fen為1,并通過(guò)cpld從saa7114h輸出的視頻幀同步信號(hào)fid來(lái)鎖存fen,同時(shí)開(kāi)始視頻采集。

3)fifo采集1行視頻數(shù)據(jù)后,控制邏輯將產(chǎn)生信號(hào)ext_int4以通知dsp,dsp通過(guò)edma響應(yīng)ext_int4中斷,同時(shí)將fifo中的1行視頻數(shù)據(jù)讀入片內(nèi)sram中。edma傳輸完1行數(shù)據(jù)后,再次提出中斷請(qǐng)求,dsp響應(yīng)此中斷后,啟動(dòng)2個(gè)edma傳輸,并分離視頻數(shù)據(jù)中的y、ch、cr分量。此后,dsp讀出整行數(shù)據(jù)后清除ext_int4中斷。

如將數(shù)字圖像以y-cr-cb表示,y表示圖像亮度分量,cr,cb分別為色差分量。那么,本系統(tǒng)中的設(shè)計(jì)數(shù)字視頻輸出或存貯格式如下:

1)視頻解碼器saa7114h輸出的視頻格式為:(cb0 y0)、(cr0 y1)、(cb2 y3)……

2)同步fifo中存儲(chǔ)的視頻格式為:(cbo yo cro y1)、(cb2 y2 cr2 y3)……

3)片內(nèi)sram中的存儲(chǔ)格式為:(cb0 y0 cr0 y1)、(cb2 y2 cr2 y3)……

4)片外sdram中的存儲(chǔ)格式為:y0 y1 y2 y3…、cbo cb2……、cr0 cr2……

saa7114視頻數(shù)據(jù)采用隔行方式輸出,最終的sdram視頻數(shù)據(jù)則以逐行方式存儲(chǔ),以便于直接對(duì)視頻序列進(jìn)行mpeg、h.264壓縮或進(jìn)行其它處理。系統(tǒng)差錯(cuò)控制通過(guò)檢測(cè)fifo滿標(biāo)志位來(lái)實(shí)現(xiàn)。每當(dāng)采集完1行數(shù)字視頻數(shù)據(jù)后,dsp便自動(dòng)取走此行數(shù)據(jù),當(dāng)視頻掃描到下1行時(shí),硬件邏輯將繼續(xù)向fifo寫(xiě)入數(shù)據(jù),若dsp讀fifo的速率小于硬件邏輯寫(xiě)速率,則fifo將出現(xiàn)寫(xiě)溢出,從而導(dǎo)致數(shù)字視頻行數(shù)據(jù)丟失,此時(shí)cpld將啟動(dòng)ext_int5中斷,以表示fifo溢出錯(cuò)誤。而此時(shí)dsp將復(fù)位fifo,只有frs信號(hào)置1后才能撤銷(xiāo)ext_int5,以重新開(kāi)始視頻圖像的采集。

系統(tǒng)軟件設(shè)計(jì)

◇軟件流程

自適應(yīng)實(shí)時(shí)視頻采集處理系統(tǒng)軟件主要包括dsp系統(tǒng)配置、saa7114h配置和edma視頻處理程序,本文主要介紹saa7114h配置及視頻數(shù)據(jù)的讀取處理程序,其系統(tǒng)軟件流程見(jiàn)圖4所示。

◇核心控制軟件設(shè)計(jì)

圖4中,系統(tǒng)的初始化包括以下操作:

1)初試化csl庫(kù),csl_init();

2)初試化中斷,包括中斷向量重定位、開(kāi)全局中斷、使能nmi(非屏蔽中斷)、中斷事件映射、使能可屏蔽中斷等。

irq_resetall();

edma_resetall();

init_interrupts();

3)初始化mcbsp1,nit_mcbsp1();

4)初始化saa7114h,并通過(guò)主函數(shù)調(diào)用子函數(shù)saa7114_init()。

saa7114h的配置是通過(guò)dsp模擬i2c總線來(lái)配置芯片內(nèi)部各寄存器的,主要配置代碼如下:

for(i=0;saa7114_defregs[i].nsubaddr?。?xff;i++)

err|=iic_writereg(slaveaddr,saa7114_defregs[i].nsubaddr,

saa7114_defregs[i].nvalue);/*向saa7114h所用寄存器寫(xiě)入配置信息*/

saa7114h的配置包括對(duì)輸入輸出視頻分辨率、飽和度、色度、輸出視頻格式等相關(guān)信息的設(shè)置,其重要寄存器的設(shè)置代碼如下:

{ahorzinputstart, oxoo},

{ahorzinputstartmsb, 0xoo},

/*0xoooo=輸入水平起始于0象素*/

{ahorzinputlength, oxdo},

{ahorzinputlengthmsb,ox02},

/*0x02d0=輸入水平長(zhǎng)度720象素*/

{avertinputstart,0x15},

/*0x0015=輸入垂直起始于23行(pal制)*/

{avertinputlength,0x22},

{avertinputlengthmsb,0x01},

/*0x0122=輸入垂直長(zhǎng)度288+2行pal制)*/

{ahorzoutputlength,0x60},

{ahorzoutputlengthmsb,0x01},/*0x0160=輸出水平長(zhǎng)度352象素*/

{avertoutputlength,0x90},

/*0x0090=輸出垂直長(zhǎng)度144行(單場(chǎng))*/

{chromacontrol1,ox09},/*飽和度控制01h:for pal;o9h:for ntsc*/

{luminancebrightness,0x80},

/*亮度設(shè)置itu level*/

完成系統(tǒng)初始化和saa7114h配置后,即可打開(kāi)視頻采集通道,以開(kāi)始視頻采集,包括初始化視頻捕捉emda通道和使能視頻捕捉edma傳輸,其代碼如下:

init_edma_ext_int4(); init_edma_tcc8();

init_edma_tcc9();

edma_enable channel(hedma_ext_int4);

edma_enable chaining(hedma_tcc8);

edma_enable chaining(hedma_tcc9);

使能視頻捕捉代碼如下:

mcbsp_setpin(hmcbsp1,rs);/*rs="1"撤銷(xiāo)fifo復(fù)位信號(hào)*/

mcbsp_setpin(hmcbsp1,fen);/*fen="1"使能fifo數(shù)據(jù)采集*/

當(dāng)采集到1行數(shù)據(jù)后,便可產(chǎn)生ext_int4中斷,以將fifo中的這行視頻數(shù)據(jù)讀入片內(nèi)sram,同時(shí)從片內(nèi)sram緩沖區(qū)的1行視頻數(shù)據(jù)中分別提取y、cb、cr分量。存入片外sdram緩沖區(qū)中的操作可采用edma設(shè)計(jì),其首個(gè)edma操作如下:

hedma_ext_int4=edma_open(edma_cha_extint4,

edma_open_rest);/*edma通道鏈接到ext_int4事件上*/

edma_configargs

(hedma_ext_int4,edma_opt_rmk(edma_opt_pri_high,/*edma優(yōu)先權(quán)設(shè)為"高"*/

edma_opt_esize_32bit,/*32bits數(shù)據(jù)*/

edma_opt_2ds_no,/*源一維傳輸*/

edma_opt_sum_none,/*源地址保護(hù)不變*/

edma_opt_2dd_yes,/*目的二維傳輸*/

edma_opt_dum_inc,/*目的地址根據(jù)索引值修改*/

edma_opt_tcint_yes,/*使能傳輸完成中斷*/

edma_opt_tcc_of(edma_cha_extint4),/*設(shè)置傳輸結(jié)束碼*/

edma_opt_link_no,/*禁止重新裝載*/

edma_opt_fs_no,)/*每次ext_int4,edma傳輸1行視頻數(shù)據(jù)*/

edma_src_rmk(video_port),/*源地址為視頻數(shù)據(jù)端口*/

edma_cnt_rmk(edma_cnt_frmcnt_of(0xo),/*塊中數(shù)組長(zhǎng)度為1行視頻數(shù)據(jù)*/

edma_cnt_elecnt_of(xd.para/2)),/*數(shù)據(jù)元長(zhǎng)度為1行視頻象素÷ 2*/

eedma_dst_rmk(line_buff),/*目的地址為片內(nèi)視頻緩沖器line_buff*/

edma_idx_rmk(edma_idx_frmidx_of(0x0),/*edma傳輸完成后目的地址不變*/eedma_rld_rmk

(edma_rld_elerld_of(xd.para/2),

0));}/*結(jié)束*/

結(jié)束語(yǔ)

本文給出了基于tms320c6211的自適應(yīng)實(shí)時(shí)視頻采集處理系統(tǒng)的設(shè)計(jì)方法,該系統(tǒng)可自適應(yīng)接受ntsc或pal視頻,并以標(biāo)準(zhǔn)yuv格式存貯。同時(shí),本系統(tǒng)還自帶flash及10m以太網(wǎng)接口,可與mpeg-4、h.264等視頻壓縮算法接口,可廣泛應(yīng)用于實(shí)時(shí)視頻采集、視頻監(jiān)控或其他嵌入式視頻處理系統(tǒng)之中。




關(guān)鍵詞:

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉