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