當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]摘要:文章介紹了YCbCr色彩空間和RGB色彩空間之間的轉(zhuǎn)換的方法,實現(xiàn)了不同規(guī)模以及不同數(shù)據(jù)結(jié)構(gòu)的YCbCr到RGB的快速硬件轉(zhuǎn)換。采用數(shù)據(jù)重排列和數(shù)據(jù)分離等方法,不僅支持QCIF到HDTV多種分辨率的視頻轉(zhuǎn)換,而且支持YC

摘要:文章介紹了YCbCr色彩空間和RGB色彩空間之間的轉(zhuǎn)換的方法,實現(xiàn)了不同規(guī)模以及不同數(shù)據(jù)結(jié)構(gòu)的YCbCr到RGB的快速硬件轉(zhuǎn)換。采用數(shù)據(jù)重排列和數(shù)據(jù)分離等方法,不僅支持QCIF到HDTV多種分辨率的視頻轉(zhuǎn)換,而且支持YCbCr444、YCbCr422和YCbCr420等多種打包或平面YCbCr格式。本設(shè)計方案已用VerilogHDL語言實現(xiàn),并在FPGA平臺驗證通過,轉(zhuǎn)換后的RGB視頻可直接輸出到顯示器顯示,并能實現(xiàn)視頻控制,存儲,回放等功能。

0 引言

色彩空間是通過數(shù)值的形式來描述顏色,在數(shù)字電視和計算機(jī)領(lǐng)域最常用到的為RGB(Red,Green,Blue)色彩空間和YCbCr(Luminance,

Chroma Blue,Chroma Red)色彩空間。RGB是最常見的色彩空間,通過紅、綠、藍(lán)三種基色相互疊加從而產(chǎn)生其它顏色。由于其設(shè)備的獨立性,它被廣泛應(yīng)用于計算機(jī)圖形、成像系統(tǒng)和彩色電視之中,如現(xiàn)在普遍的計算機(jī)顯示器用的VGA接口所需要的數(shù)據(jù)類型就是RGB。YCbCr色彩空間則是灰度和色差的疊加,這種色彩空間因易于壓縮和處理,廣泛應(yīng)用于廣播、電視系統(tǒng)和圖像處理。

由于不同色彩空間在視頻設(shè)備的使用,使色彩空間的相互轉(zhuǎn)換成為必需。隨著計算機(jī)、互聯(lián)網(wǎng)和多媒體技術(shù)的飛速發(fā)展,對色彩空間轉(zhuǎn)換的要求也越來越高,這更突顯出色彩空間轉(zhuǎn)換的重要性。

色彩空間轉(zhuǎn)換的主要目的是令所有的輸入數(shù)據(jù)在進(jìn)行運算和處理或者顯示前都基于相同的色彩空間。對于YCbCr轉(zhuǎn)RGB而言,主要的問題在于兩個方面,一個是視頻格式的規(guī)模,也就是我們所說的分辨率,高的分辨率意味著需要更多的硬件資源和更快速的計算過程;另一個是YCbCr本身具有很多不同的格式,而目前的轉(zhuǎn)換器一般都是基于其中一種固定的格式,對于其他格式的YCbCr數(shù)據(jù)并不支持,所以為了支持多種YCbCr數(shù)據(jù)格式,必須把不同的YCbCr數(shù)據(jù)統(tǒng)一到一種格式來實現(xiàn)轉(zhuǎn)換。

1 YCbCr與RGB色彩空間

1.1 YCbCr色彩空間

在常見的消費類視頻產(chǎn)品中,常用的色彩空間是YCbCr。人眼對視頻的Y分量更敏感,因此可以在采樣時適當(dāng)減少Cb和Cr分量從而實現(xiàn)視頻的壓縮,因此YCbCr格式有三種不同格式:4:2:0、4:2:2和4:4:4。這三種格式又分為打包模式和平面模式兩大類,區(qū)別在于不同像素的Cb和Cr位于Y分量之間還是之后。

移動視頻設(shè)備是以YCbCr4:2:0的方式記錄,隨著H.264視頻解碼標(biāo)準(zhǔn)的推廣和良好的壓縮比率,YCbCr4:2:0應(yīng)用越來越多。4:2:0表示每4個像素有4個亮度分量,2個色彩分量,以8個像素點為例,數(shù)據(jù)格式如下:

4:2:2表示每4個像素有4個亮度分量,4個色彩分量,是數(shù)字電視、有線視頻傳輸設(shè)備的最常用格式。以8個像素點為例,數(shù)據(jù)格式如下:

4:4:4是最接近RGB的采用格式,每一個像素都有三個分量,應(yīng)用于需要高質(zhì)量視頻采集的專業(yè)視頻產(chǎn)品。以8個像素點為例,數(shù)據(jù)格式如下:

由這三種數(shù)據(jù)格式分析可知,他們僅在采樣點和采樣點分布上有所不同,Y分量是每個像素都需要采樣的,而Cr、Cb分量可以根據(jù)對數(shù)據(jù)格式和視頻質(zhì)量要求的不同而自主選擇。這三種數(shù)據(jù)格式因為排列順序不同又叮分為不同的類型,所以實現(xiàn)可變規(guī)模的多格式轉(zhuǎn)換首先要把不同的YCbCr格式轉(zhuǎn)換成一個易于統(tǒng)一的格式,三個數(shù)據(jù)格式的對比如表1所示。

綜上所述,YCbCr的采樣格式將直接影響到圖像數(shù)據(jù)存取空間大小,以及讀取和存儲圖像的速率。要實現(xiàn)YCbCr4:2:0,YCbCr4:2:2與YCbCr4:4:4三種格式都能夠成功地轉(zhuǎn)換為RGB信號,就必須把這三種格式轉(zhuǎn)換為同一種格式,然后再轉(zhuǎn)換為RGB信號的格式。為最大限度保留各種圖像質(zhì)量,選用YCbCr4:4:4平面格式為統(tǒng)一格式。通過邏輯排列電路把不同格式的YCbCr序列轉(zhuǎn)換成YCbCr4:4:4序列,并把YCbCr信號分別存在三個不同的FIFO中,再由YCbCr—RGB轉(zhuǎn)換模塊讀取三個并行FIFO中的序列進(jìn)行轉(zhuǎn)換。實現(xiàn)邏輯結(jié)構(gòu)如圖4所示。

1.2 YCrCb到RGB色彩空間變換原理

YCrCb色彩空間與RGB色彩空間的對應(yīng)關(guān)系如下:

人眼能夠分辨的顏色數(shù)量遠(yuǎn)小于256,所以一般都使用8bit的位寬來描述顏色,其中R、G、B、Y、Cr、Cb都為0~255的整數(shù)。為最大程度減少變換過程產(chǎn)生的誤差,轉(zhuǎn)化成公式(2)計算。

R=1.164(Y-16)+1.596(Cr-128)

G=1.164(Y-16)-0.813(Cr-128)-0.392(Cb-128) (2)

B=1.164(Y-16)+2.017(Cr-128)

注意到等式中包含的7個因式,其中有3個是相同的,該因式只需計算1次,送到相應(yīng)的加法器進(jìn)行之后的運算。

由于在硬件實現(xiàn)時,計算過程不支持浮點計算,所以要把計算過程進(jìn)行取整,如式(3)。

R=1.164Y+1.596Cr-223

G=1.164Y-0.813Cr-0.392Cb-173 (3)

B=1.164Y+2.017Cb-277

硬件實現(xiàn)框圖如圖5所示。

2 YCrCb到RGB變換的FPGA實現(xiàn)

2.1 硬件實現(xiàn)方法和優(yōu)化

根據(jù)視頻格式轉(zhuǎn)換的特點和需求,本文采用FPGA硬件系統(tǒng)來實現(xiàn)多種視頻格式的YCbCr格式轉(zhuǎn)換和RGB顯示。在FPGA設(shè)計中由色彩空間YCrCb到RGB的轉(zhuǎn)換有三種方法。第一種是利用嵌入式處理器,采用軟件的辦法實現(xiàn)轉(zhuǎn)換,這樣做一來硬件消耗大,另一方面在FPGA上處理器的運算速度達(dá)不到大數(shù)據(jù)實時顯示的要求。第二種是用Verilog代碼來表達(dá)轉(zhuǎn)換公式,這種方法需用到5個乘法器,而且YCbCr到RGB的轉(zhuǎn)化均是通過大量的浮點運算來實現(xiàn)的,每個像素點都要進(jìn)行一次計算,所以如果是高清視頻,用100MHz時鐘每幀圖像的轉(zhuǎn)換將為此耗費近54ms的時間,而如果要達(dá)到30f/m的顯示要求,這個時間不能超過33ms。第三種方法是利用查找表法,把乘法結(jié)果用查找表的形式取得。這種方法不僅減小了浮點運算的誤差,也使得計算速度比前兩種方法快了一個數(shù)量級,并且YCbCr的值都在0~255之間,所以每個查找表項目都只有256項,并不會過多地占用硬件資源。

查找表中預(yù)存的數(shù)值是各個因式的值,為提高的內(nèi)部計算精度,又不占用過多的RAM資源,綜合考慮可將各個因式數(shù)值擴(kuò)大2倍進(jìn)行存儲,RAM的數(shù)據(jù)寬度可設(shè)定為9位。由查找表讀出的數(shù)值經(jīng)過加減運算后再右移一位的簡單運算就可以把數(shù)值縮小到原先的位數(shù),再經(jīng)過鉗位運算限制在0~255之間,計算公式如下:

R=(2.328Y+3.192Cr-446)>>1

G=(2.328Y-1.626Cr-0.784Cb+346)>>1 (4)

B=(2.328Y+4.034Cr-554)>>1

用查表法實現(xiàn)轉(zhuǎn)換中的乘法計算,在硬件實現(xiàn)YCbCr轉(zhuǎn)RGB的實時視頻顯示有著重要的意義,表2是YCbCr轉(zhuǎn)RGB不同方法的實驗數(shù)據(jù),本文用于驗證該模塊的器件是Altera公司的Cvclone2-EP2C70F896C6。占用的綜合工具為Design Compiler,通過時序約束最快時鐘頻率可以達(dá)到102MHZ。

浮點乘法是影響轉(zhuǎn)換效率的關(guān)鍵,而使用查找表法避免了浮點乘法的運算,使轉(zhuǎn)換效率提高了1個數(shù)量級。要支持高清格式30f/s實時轉(zhuǎn)換,轉(zhuǎn)換時間要低于33ms,加之?dāng)?shù)據(jù)存儲的延時,用查找表構(gòu)造轉(zhuǎn)換模塊是必要的。用查找表法實現(xiàn)的模塊結(jié)構(gòu)如圖6所示。

通過構(gòu)造RAM1~RAM5五個查找表映射單元,把輸入的信號分別按式(4)的方式計算出RGB相應(yīng)的結(jié)果,直接送給顯示緩存寄存器。本文用的測試平臺是Altera DE2-70開發(fā)板,系統(tǒng)結(jié)構(gòu)如圖7所示,內(nèi)部主要分為數(shù)據(jù)重組模塊、查找表模塊、控制模塊和顯示模塊。數(shù)據(jù)重組模塊能通過設(shè)置不同的分辨率和YCbCr格式把YCbCr數(shù)據(jù)分別提取儲存在三個FIFO中,查找表模塊負(fù)責(zé)通過FIFO中Y、Cr、Cb的值輸出浮點乘法的運算結(jié)果,再加減運算后輸出轉(zhuǎn)換后RGB24位的值??刂颇K負(fù)責(zé)控制碼流的播放、暫停和存儲回放等擴(kuò)展功能。顯示模塊負(fù)責(zé)驅(qū)動碼流到VGA顯示。

2.2 系統(tǒng)驗證

2.2.1 數(shù)據(jù)驗證

系統(tǒng)驗證包含兩個部分,首先要驗證不同格式的YCbCr轉(zhuǎn)換為YCbCr444的碼流是正確的,這部分可以先用ModelSim把轉(zhuǎn)換邏輯進(jìn)行仿真,分別把Y、Cb、Cr三個數(shù)據(jù)按順序存在對應(yīng)的三個FIFO中。

之后通過MATLAB的數(shù)據(jù)比較命令strcmp,將FIFO中的YCbCr444數(shù)據(jù)與MATLAB轉(zhuǎn)換的數(shù)據(jù)進(jìn)行比較。分別使用QCIF、CIF、HDTV三種分辨率進(jìn)行隨機(jī)一幀碼流的驗證,返回值都為1,證明轉(zhuǎn)換系統(tǒng)可靠。

系統(tǒng)整體通過ModelSim仿真結(jié)果如圖8所示。

在圖8中,adr_y、adr_u、adr_v,為數(shù)據(jù)重組后的YCbCr地址,y_in、Cb_in、cr_in分別為待轉(zhuǎn)換的數(shù)據(jù),R_out、G_out、B_out為轉(zhuǎn)換后的輸出結(jié)果。ena_in和ena_out為輸入使能和輸出使能信號,這兩個信號可以控制視頻轉(zhuǎn)換的啟動和停止,在2個時鐘周期之后就可以有顯示結(jié)果出現(xiàn),這僅僅需要6 μs,人眼根本感覺不到延遲,可以用在對轉(zhuǎn)換速度要求較高的系統(tǒng)上。像素計數(shù)器為cn,在一幀圖像完全轉(zhuǎn)換后幀計數(shù)器counter會計數(shù)一次,通過這個可以提取完整的一幀圖像進(jìn)行檢驗。

2.2.2 FPGA系統(tǒng)驗證

將整個系統(tǒng)燒錄到FPGA中進(jìn)行硬件驗證,輸入的視頻編碼通過SD卡讀入系統(tǒng),進(jìn)行YCbCr格式的重組,這里選用了三種格式三種分辨率的視頻編碼,如圖9所示分別為YCbCr420格式OCIF分辨率、YCbCr422格式CIF分辨率和YCbCr444采樣格式HDTV分辨率通過YCbCr-RGB轉(zhuǎn)換后某一幀圖像的顯示結(jié)果。顯示結(jié)果表明該方法可以正確實現(xiàn)30f/s的不同規(guī)模和不同格式的YCbCr-RGB實時轉(zhuǎn)換。

3 結(jié)語

本文基于FPGA構(gòu)建硬件平臺,實現(xiàn)不同分辨率和不同格式的YCbCr視頻數(shù)據(jù)的存儲、處理和VGA輸出,具有結(jié)構(gòu)緊湊、功能完善、配置靈活、系統(tǒng)穩(wěn)定的特點。視頻格式轉(zhuǎn)換方法適用于大部分視頻圖像處理的通用平臺,滿足視頻圖像高精度快速實吋轉(zhuǎn)換和顯示的要求??蓱?yīng)用于多種制式視頻采樣數(shù)據(jù)與輸出接口數(shù)據(jù)格式不匹配的場合,具有一定的應(yīng)用價值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉