基于FPGA的RGB到YCrCb顏色空間轉換
隨著(zhù)多媒體和通信技術(shù)的發(fā)展,視頻圖像處理的實(shí)時(shí)性成為人們關(guān)注的熱點(diǎn)。視頻圖像處理一般都是用數字信號處理器(digital signal processor,DSP)來(lái)完成的。為了滿(mǎn)足實(shí)時(shí)性要求,往往采用多DSP或DSP陣列的方法,使系統在成本、重量、功耗等方面都會(huì )快速升高?,F場(chǎng)可編程門(mén)陣列(FPGA)運算的并行性和內嵌DSP核等特點(diǎn),能夠提高運算速度滿(mǎn)足視頻處理的實(shí)時(shí)性要求。在視頻圖像顯示、處理時(shí),采用的顏色空間主要有RGB,YCrCb兩種。RGB基于三基色原理,顏色實(shí)現簡(jiǎn)單,在計算機、電視機顯示系統中應用廣泛,YCrCb將顏色的亮度信號與色度信號分離,易于實(shí)現壓縮,方便傳輸和處理。在視頻壓縮、傳輸等應用中經(jīng)常需要實(shí)現RGB與YCbCr顏色空間的相互變換。這里推導出一種適合在FPGA上實(shí)現從RGB到YCbCr顏色空間變換的新算法,采用單片FPGA完成電路設計,利用FPGA內嵌DSP核實(shí)現乘法運算,提高了轉換算法的運行速度。
l 顏色空間
在RGB顏色空間中,自然界所有顏色都可以用紅(R)、綠(G)、藍(B)三種顏色的不同強度組合而重現。RGB的取值范圍分別為0~255,表1列出了幾種顏色對應的R,G,B取值。
RGB生成顏色容易實(shí)現,被廣泛應用在計算機、彩色電視機的顯示系統中。但是RGB表示顏色的效率并不是很高,3個(gè)顏色分量同等重要,而且亮度信息存在于所有顏色分量中,當需要對像素點(diǎn)的亮度或者色度值進(jìn)行修改時(shí),必須同時(shí)改變RGB三者的值。
YCrCb顏色空間是在開(kāi)發(fā)世界范圍數字分量食品標準過(guò)程中作為ITU-R BT.601標準的一部分而開(kāi)發(fā)出來(lái)的。在YCRCb顏色空間中,Y表示亮度信號,取值范圍為16~235;Cr,Cb表示色度信號,取值范圍為16~240,亮度信號與色度信號相互獨立。這種顏色表示方法可以利用人眼的特性降低數字彩色圖像的存儲空間。人眼視覺(jué)系統(HVS)對亮度細節的敏感度高于顏色細節,適當減少色度分辨率不會(huì )明顯影響圖像的
畫(huà)質(zhì),易于實(shí)現數據壓縮。
2 RGB到YCrCb的轉換
在ITU-R BT.601標準中給出了RGB與YCrCb的轉換關(guān)系式如下:
式中:R’,G’,B’表示Gamma校正后的R,G,B值。該轉換關(guān)系式是一個(gè)3×3乘法矩陣,電路實(shí)現時(shí)需要9個(gè)乘法器和9個(gè)加法器,在FPGA中直接實(shí)現時(shí)將會(huì )占用較多邏輯資源。
為了減少邏輯資源的使用,需要對該算法做進(jìn)一步改進(jìn),簡(jiǎn)化運算過(guò)程,從而以較少的邏輯資源實(shí)現轉換電路。首先對Cb,Cr做如下化簡(jiǎn):
評論