基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子_第1頁(yè)
基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子_第2頁(yè)
基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子_第3頁(yè)
基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子_第4頁(yè)
基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

精品文檔-下載后可編輯基于FPGA的RGB到Y(jié)CrCb顏色空間轉(zhuǎn)換-基礎(chǔ)電子0引言

隨著多媒體和通信技術(shù)的發(fā)展,視頻圖像處理的實(shí)時(shí)性成為人們關(guān)注的熱點(diǎn)。視頻圖像處理一般都是用數(shù)字信號(hào)處理器(digitalsignalprocessor,DSP)來(lái)完成的。為了滿足實(shí)時(shí)性要求,往往采用多DSP或DSP陣列的方法,使系統(tǒng)在成本、重量、功耗等方面都會(huì)快速升高?,F(xiàn)場(chǎng)可編程門陣列(FPGA)運(yùn)算的并行性和內(nèi)嵌DSP核等特點(diǎn),能夠提高運(yùn)算速度滿足視頻處理的實(shí)時(shí)性要求。在視頻圖像顯示、處理時(shí),采用的顏色空間主要有RGB,YCrCb兩種。RGB基于三基色原理,顏色實(shí)現(xiàn)簡(jiǎn)單,在計(jì)算機(jī)、電視機(jī)顯示系統(tǒng)中應(yīng)用廣泛,YCrCb將顏色的亮度信號(hào)與色度信號(hào)分離,易于實(shí)現(xiàn)壓縮,方便傳輸和處理。在視頻壓縮、傳輸?shù)葢?yīng)用中經(jīng)常需要實(shí)現(xiàn)RGB與YCbCr顏色空間的相互變換。這里推導(dǎo)出一種適合在FPGA上實(shí)現(xiàn)從RGB到Y(jié)CbCr。顏色空間變換的新算法,采用單片F(xiàn)PGA完成電路設(shè)計(jì),利用FPGA內(nèi)嵌DSP核實(shí)現(xiàn)乘法運(yùn)算,提高了轉(zhuǎn)換算法的運(yùn)行速度。

1顏色空間

在RGB顏色空間中,自然界所有顏色都可以用紅(R)、綠(G)、藍(lán)(B)三種顏色的不同強(qiáng)度組合而重現(xiàn)。RGB的取值范圍分別為0~255,表1列出了幾種顏色對(duì)應(yīng)的R,G,B取值。

RGB生成顏色容易實(shí)現(xiàn),被廣泛應(yīng)用在計(jì)算機(jī)、彩色電視機(jī)的顯示系統(tǒng)中。但是RGB表示顏色的效率并不是很高,3個(gè)顏色分量同等重要,而且亮度信息存在于所有顏色分量中,當(dāng)需要對(duì)像素點(diǎn)的亮度或者色度值進(jìn)行修改時(shí),必須同時(shí)改變RGB三者的值。

YCrCb顏色空間是在開(kāi)發(fā)世界范圍數(shù)字分量食品標(biāo)準(zhǔn)過(guò)程中作為ITU-RBT.601標(biāo)準(zhǔn)的一部分而開(kāi)發(fā)出來(lái)的。在YCRCb顏色空間中,Y表示亮度信號(hào),取值范圍為16~235;Cr,Cb表示色度信號(hào),取值范圍為16~240,亮度信號(hào)與色度信號(hào)相互獨(dú)立。這種顏色表示方法可以利用人眼的特性降低數(shù)字彩色圖像的存儲(chǔ)空間。人眼視覺(jué)系統(tǒng)(HVS)對(duì)亮度細(xì)節(jié)的敏感度高于顏色細(xì)節(jié),適當(dāng)減少色度分辨率不會(huì)明顯影響圖像的畫(huà)質(zhì),易于實(shí)現(xiàn)數(shù)據(jù)壓縮。

2RGB到Y(jié)CrCb的轉(zhuǎn)換

在ITU-RBT.601標(biāo)準(zhǔn)中給出了RGB與YCrCb的轉(zhuǎn)換關(guān)系式如下:

式中:R’,G’,B’表示Garoma校正后的R,G,B值。該轉(zhuǎn)換關(guān)系式是一個(gè)3×3乘法矩陣,電路實(shí)現(xiàn)時(shí)需要9個(gè)乘法器和9個(gè)加法器,在FPGA中直接實(shí)現(xiàn)時(shí)將會(huì)占用較多邏輯資源。

為了減少邏輯資源的使用,需要對(duì)該算法做進(jìn)一步改進(jìn),簡(jiǎn)化運(yùn)算過(guò)程,從而以較少的邏輯資源實(shí)現(xiàn)轉(zhuǎn)換電路。首先對(duì)Cb,Cr做如下化簡(jiǎn):

Cb=0.1482(B’-R’)+0.2910(B’-G’)+128

Cr=0.3678(R’-G’)-0.0714(B’-R’)+128

對(duì)y的計(jì)算公式進(jìn)行化簡(jiǎn)時(shí),令Y’=0.2568R’+0.5014G’+0.0979B’,Cb’=-0.1482R’-0.2910G’+0.4392B’,有0.5772Y’+Cb’=0.4957B’。為了計(jì)算方便,近似值為0.5B’。此時(shí),有Y’=1.7325(0.5B’-Cb’),與原式誤差為△Y’=0.0074B’,其范圍為0~1.887。當(dāng)以Y’表示Y時(shí),需要對(duì)誤差作補(bǔ)償。計(jì)算公式可表示為:

Y=1.7325(0.5B’-Cb’)+offset

式中:offset=16-0.0074B’,化簡(jiǎn)后的轉(zhuǎn)換公式如下:

Y=1.7325(0.5B’-Cb’)+offset

Cb=0.1482(B’-R’)+0.2910(B’-G’)+128(2)

Cr=0.3678(R’-G’)-0.0714(B’-R’)+128

式中:Cb’=0.1482(B’-R’)+0.2910(B’-G’),

ffset=16-0.0074B’。

根據(jù)B’的取值不同,offset的取值取整后為14,15,16。在計(jì)算過(guò)程中,可以用一個(gè)數(shù)據(jù)選擇器根據(jù)B’值的不同選擇offset的值。0.5B’的計(jì)算可以用移位實(shí)現(xiàn)?;?jiǎn)后的轉(zhuǎn)換算法,對(duì)Y,Cb,Cr的計(jì)算將比原來(lái)節(jié)省4個(gè)乘法器。在FPGA中,加法器、數(shù)據(jù)選擇器和移位算法的實(shí)現(xiàn)比乘法器簡(jiǎn)單,該化簡(jiǎn)將利于減少邏輯資源的應(yīng)用,簡(jiǎn)化實(shí)現(xiàn)電路,提高運(yùn)算速度。

轉(zhuǎn)換電路結(jié)構(gòu)如圖1所示。

3基于FPGA的實(shí)現(xiàn)

在FPGA中,對(duì)乘法的實(shí)現(xiàn)比較復(fù)雜,可以采用如下幾種方法:

(1)直接用編程語(yǔ)言描述乘法運(yùn)算,由綜合工具自動(dòng)實(shí)現(xiàn),用該方法描述,實(shí)現(xiàn)簡(jiǎn)單,但是耗用比較多的邏輯資源。

(2)利用查找表的方式實(shí)現(xiàn)乘法運(yùn)算,事先把要相乘數(shù)據(jù)的所有結(jié)果算出來(lái)存到ROM中,根據(jù)輸入數(shù)據(jù)的值讀取相應(yīng)的結(jié)果,當(dāng)用該方法相乘數(shù)據(jù)位數(shù)比較多時(shí),會(huì)占用大量的存儲(chǔ)空間。

(3)用FPGA中內(nèi)嵌的乘法器實(shí)現(xiàn),該方法實(shí)現(xiàn)簡(jiǎn)單,當(dāng)用VHDL語(yǔ)言實(shí)現(xiàn)時(shí),調(diào)用相應(yīng)的乘法模塊即可。

本文采用第三種方法,用專用乘法器來(lái)實(shí)現(xiàn)轉(zhuǎn)換公式中的乘法運(yùn)算。Xilinx的Virtex4系列FPGA芯片內(nèi)嵌的乘法器為XtremeDSPTMSlice-DSP48Slice其工作頻率高達(dá)500MHz,支持多種獨(dú)立的功能,包括乘法器、乘累加器(MAC)、后接加法器的乘法器、三輸入加法器、桶形移位寄存器、寬路線多路復(fù)用器、大小及比較器或?qū)捰?jì)數(shù)器。本文將運(yùn)用DSP48Slice模塊實(shí)現(xiàn)乘加運(yùn)算,在電路結(jié)構(gòu)圖的虛線框中,乘法和加法的運(yùn)算將用單個(gè)DSP48Slice模塊實(shí)現(xiàn)。這樣將會(huì)減少轉(zhuǎn)換關(guān)系式中加法器的數(shù)量,節(jié)約邏輯資源,在程序中可以用元件例化語(yǔ)句調(diào)用DSP48Slice模塊,實(shí)現(xiàn)方法簡(jiǎn)單,程序簡(jiǎn)潔。為了滿足浮點(diǎn)數(shù)和運(yùn)算精度的要求,適合在FPGA中實(shí)現(xiàn),將式(2)改寫(xiě)為:

式中的除法運(yùn)算可以通過(guò)截?cái)嗟臀粩?shù)據(jù)的方法實(shí)現(xiàn),在截?cái)鄶?shù)據(jù)時(shí),對(duì)截去小數(shù)部分判斷,采用4舍5人的方法,當(dāng)截去部分的位是1時(shí),有進(jìn)位,位是0時(shí),直接舍去。用VHDL語(yǔ)言描述式(3)的轉(zhuǎn)換算法,輸入R’,G’,B’是8位無(wú)符號(hào)二進(jìn)制數(shù),進(jìn)行加減運(yùn)算時(shí),需要做符號(hào)位補(bǔ)位。

在每個(gè)運(yùn)算部件(包括乘法和加減法器)的輸出以及系統(tǒng)的輸入/輸出之間加上緩存寄存器,實(shí)現(xiàn)流水線設(shè)計(jì),能提高資源利用率,加快運(yùn)算速度,寄存器級(jí)數(shù)由運(yùn)算延時(shí)大小決定。在輸出端用計(jì)數(shù)器控制運(yùn)算開(kāi)始時(shí)的噪音輸出。箝位電路控制輸出數(shù)據(jù)范圍滿足顏色空間的要求。

4仿真結(jié)果

在Xilinx的Virtex4-FX平臺(tái)實(shí)現(xiàn)現(xiàn)圖1的電路結(jié)構(gòu),用ISE軟件仿真。資源使用情況如下:

時(shí)序仿真結(jié)果如圖2所示。

通過(guò)圖2可以驗(yàn)證轉(zhuǎn)換算法的正確性。在使能信號(hào)en有效后,經(jīng)過(guò)6個(gè)時(shí)鐘的運(yùn)算時(shí)延,輸出端有轉(zhuǎn)換結(jié)果輸出,輸出結(jié)果四舍五入,誤差0.5,比以往算法提高了變換結(jié)果的精度。

5結(jié)語(yǔ)

通過(guò)對(duì)轉(zhuǎn)換算法的研究,推導(dǎo)出適合在FPGA上實(shí)現(xiàn)的新算法,算法優(yōu)點(diǎn)突出。算

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論