你的位置:首頁(yè) > 電路保護(hù) > 正文

串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

發(fā)布時(shí)間:2023-07-10 責(zé)任編輯:lina

【導(dǎo)讀】串行器可以連接并控制攝像頭IC,ADI的這類器件包括MAX9257 (帶有半雙工UART/I2C控制通道)、MAX9259和MAX9263 (兩款均帶有全雙工同步控制通道),MAX9263還支持寬帶數(shù)字內(nèi)容保護(hù)(HDCP)。本應(yīng)用筆記介紹如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成標(biāo)準(zhǔn)顯示器接受的RGB數(shù)據(jù)。


串行器可以連接并控制攝像頭IC,ADI的這類器件包括MAX9257 (帶有半雙工UART/I2C控制通道)、MAX9259和MAX9263 (兩款均帶有全雙工同步控制通道),MAX9263還支持寬帶數(shù)字內(nèi)容保護(hù)(HDCP)。本應(yīng)用筆記介紹如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成標(biāo)準(zhǔn)顯示器接受的RGB數(shù)據(jù)。


攝像頭輸出數(shù)據(jù)格式

攝像頭芯片,例如OmniVision? OV10630,可通過串行器連接。OV10630的接口引腳包括:像素時(shí)鐘、PCLK、行有效、HREF、幀同步、VSYNC和并行數(shù)據(jù)位D[9:0],數(shù)據(jù)位在時(shí)鐘的上升沿保持穩(wěn)定。
YUV和原始RGB數(shù)據(jù)格式

CMOS攝像頭傳感器包括數(shù)百萬(wàn)光敏單元,每個(gè)單元可響應(yīng)整個(gè)波長(zhǎng)的光信號(hào)。利用濾光膜使特定傳感器僅響應(yīng)紅光、綠光或藍(lán)光信號(hào)。相鄰的光敏單元通常以拜耳結(jié)構(gòu)的濾色規(guī)律排列,綠色濾色片的數(shù)量是紅色或藍(lán)色濾色片數(shù)量的兩倍。這種方式用于模擬人眼的感光特性。從左至右、從上至下讀取傳感器單元輸出,原始的RGB數(shù)據(jù)序列為藍(lán)、綠...藍(lán)、綠 (首行末尾),綠、紅...綠、紅(第二行末尾),依次類推,如圖1所示。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖1. 原始RGB數(shù)據(jù)排列


通過相鄰單元內(nèi)插生成與傳感器單元密度相同的RGB數(shù)據(jù)。另外,利用相鄰單元的顏色,按照特定的規(guī)則可以恢復(fù)圖像。構(gòu)成每個(gè)像素RGB數(shù)據(jù)組的規(guī)則之一是:使用同一行的相鄰單元,再加上下一行(或上一行)的綠色相鄰單元。內(nèi)插后的RGB數(shù)據(jù)序列為...、紅(i-1)、綠(i-1)、藍(lán)(i-1)、紅(i)、綠(i)、藍(lán)(i)、紅(i+1)、綠(i+1)、藍(lán)(i+1)、...如圖2所示。每個(gè)像素需要一組RGB數(shù)據(jù),驅(qū)動(dòng)彩色顯示器并保持?jǐn)z像頭傳感器的最高分辨率。內(nèi)插RGB數(shù)據(jù)的亮度分辨率接近于傳感器單元的分辨率,但色度分辨率較差。由于人眼對(duì)每個(gè)像素的灰度要比對(duì)像素的色彩分量更為敏感,所以感覺到的分辨率基本與傳感器單元分辨率相同。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖2. RGB數(shù)據(jù)排列


然而,這種RGB數(shù)據(jù)的內(nèi)插算法使得數(shù)據(jù)速率增至三倍。為了降低數(shù)據(jù)速率,尤其是需要圖像傳輸?shù)膱?chǎng)合,可采用YUV彩色空間(將模擬彩色電視信號(hào)壓縮到模擬黑白電視的頻帶)。在下式中,亮度以Y表示,藍(lán)色和亮度之間的色差以U表示,紅色和亮度之間的色差以V表示,


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


式中,典型的色彩加權(quán)為:WR = 0.299,WB = 0.114,WG = 1 - WR - WB = 0.587,歸一化值為UMAX,VMAX = 0.615。


對(duì)于采用拜耳濾色鏡的攝像頭傳感器,相鄰像素的U或V數(shù)據(jù)大致相同,取決于行索引i和像素索引j (如果采用的規(guī)則為相鄰顏色)。利用本指南,可根據(jù)下式利用RGB數(shù)據(jù)直接生成YUV數(shù)據(jù)。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


>偶數(shù)行索引i和偶數(shù)像素索引j。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。

串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?


對(duì)于奇數(shù)行索引i和偶數(shù)像素索引j。

為了降低數(shù)據(jù)速率,利用偶數(shù)像素索引的U數(shù)據(jù)和奇數(shù)像素索引的V數(shù)據(jù),以及偶數(shù)和奇數(shù)像素索引的Y數(shù)據(jù)。壓縮后的YUV數(shù)據(jù)按照?qǐng)D3所示排列發(fā)送,即:Y1、U0和V1為像素1的數(shù)據(jù);Y2、U2和V1為像素2的數(shù)據(jù)等。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖3. YUV422數(shù)據(jù)排列


422表示Y:U:V的采樣比,4:x:x標(biāo)準(zhǔn)為早期彩色NTSC標(biāo)準(zhǔn),按照4:1:1色度再次采樣,所以,圖像的色彩分辨率僅為亮度分辨率的四分之一。目前,只有處理非壓縮信號(hào)的高端設(shè)備才會(huì)采用4:4:4彩色再采樣,亮度和彩色信息的分辨率完全相同。

串行器輸入格式


ADI串行器的并行接口設(shè)計(jì)用于24位RGB數(shù)據(jù),特別是MAX9259,具有像素時(shí)鐘位(PCLK)和29個(gè)數(shù)據(jù)位,用于24位RGB以及行同步、場(chǎng)同步和3個(gè)控制位。除并行數(shù)據(jù)接口外,需要把DRS和BWS引腳設(shè)置成高電平或低電平,分別選擇數(shù)據(jù)速率和總線寬度。
ADI串行器/解串器


MAX9257和MAX9258串行器/解串器(SerDes)具有18位并行輸入/輸出,適用于YUV數(shù)據(jù)傳輸;MAX9259/MAX9260芯片組具有28位并行輸入/輸出,適用于RGB數(shù)據(jù)傳輸;MAX9263/MAX9264 SerDes具有28位并行輸入/輸出,增加了HDCP功能。此外,MAX9265和MAX9268 28位SerDes帶有攝像鏈路,代替并行輸入/輸出接口。所有28位ADI串行器和解串器具有相同的并/串?dāng)?shù)據(jù)映射,可互換使用。例如,MAX9259串行器可配合MAX9268解串器使用,傳輸RGB數(shù)據(jù)(借助于FPGA)。數(shù)據(jù)從CMOS攝像頭通過串行鏈路發(fā)送至攝像鏈路接口的顯示器。
串行器映射


為匹配MAX9268解串器攝像鏈路的輸出接口,并行RGB數(shù)據(jù)應(yīng)按照以下信號(hào)圖映射。圖4所示為MAX9268并行位與其攝像鏈路輸出之間的映射,圖5所示為相機(jī)鏈路的RGB數(shù)據(jù)映射。表1所示為MAX9259串行器的對(duì)應(yīng)內(nèi)容映射。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖4. MAX9268內(nèi)部并行至輸出映射


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖5. 攝像鏈路內(nèi)容映射


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

表1. MAX9259串行器RGB內(nèi)容位映射


色彩轉(zhuǎn)換:YUV至RGB


FPGA芯片可將壓縮(降低數(shù)據(jù)速率)后的攝像頭數(shù)據(jù)YUV轉(zhuǎn)換成RGB數(shù)據(jù),用于MAX9259串行器。采用8位定點(diǎn)運(yùn)算時(shí),色彩空間轉(zhuǎn)換的公式如下,式2和式3中,Dn和En的n為偶數(shù)。


Cn = Yn - 16

Dn = Dn + 1 = Un - 128

En = En + 1 = Vn + 1 - 128

Rn = clip((298 × Cn + 409 × En + 128) >> 8)

Gn = clip((298 × Cn - 100 × Dn - 208 × En + 128) >> 8)

Bn = clip((298 × Cn × 516 × Dn + 128) >> 8)

式中,>> 8表示“向右移8位”,clip表示“只取最低8位”。


FPGA方案

輸入緩沖


輸入緩沖電路包括計(jì)數(shù)器、三個(gè)寄存器和組合邏輯,將單字節(jié)時(shí)鐘輸入轉(zhuǎn)換成三字節(jié)時(shí)鐘輸出,輸出時(shí)鐘速率為輸入的一半。組合邏輯僅用于分別使能Y、U和V字節(jié)的對(duì)應(yīng)寄存器。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖6. 輸入緩沖電路


時(shí)鐘開關(guān)


FPGA輸出像素時(shí)鐘速率為攝像頭像素時(shí)鐘的一半,用于驅(qū)動(dòng)串行器像素時(shí)鐘輸入。但是,攝像頭在初始化之前不會(huì)輸出像素時(shí)鐘。解決方案是在FPGA內(nèi)部采用2:1時(shí)鐘復(fù)用器(mux)和時(shí)鐘信號(hào)檢測(cè)器,mux由時(shí)鐘信號(hào)檢測(cè)器控制。上電時(shí),mux的默認(rèn)時(shí)鐘來自攝像頭的時(shí)鐘振蕩器,使SerDes芯片組提供啟動(dòng)攝像頭的控制通道。時(shí)鐘信號(hào)檢測(cè)器對(duì)場(chǎng)同步信號(hào)脈沖進(jìn)行計(jì)數(shù),經(jīng)過幾個(gè)場(chǎng)同步脈沖后,mux切換到攝像頭像素時(shí)鐘速率的一半。采用高清攝像頭傳感器時(shí),例如OV10630,每個(gè)場(chǎng)同步周期包含100k以上的像素時(shí)鐘。幾個(gè)場(chǎng)同步周期足以使攝像頭的鎖相環(huán)(PLL)達(dá)到穩(wěn)定。場(chǎng)同步計(jì)數(shù)比像素時(shí)鐘計(jì)數(shù)的效率高得多,并可節(jié)省FPGA邏輯單元的資源。


中間緩沖


格式轉(zhuǎn)換表達(dá)式中沒有體現(xiàn)硬件電路的延遲。為了從YUV輸入生成RGB數(shù)據(jù),需要兩到三次乘法運(yùn)算和三到四次加法運(yùn)算。盡管FPGA邏輯電路(門電路) 的延時(shí)只有幾個(gè)納秒,但載波傳輸、加法器、移位乘法器都會(huì)導(dǎo)致不同程度的延時(shí),使整體延時(shí)增大。為了使延遲最小化,每個(gè)常數(shù)乘法器均由兩個(gè)移位輸入(代表常數(shù)的2個(gè)非零最高有效位MSB)的加法器近似。輸入的YUV字節(jié)速率大約為100MHz時(shí),延遲會(huì)跨越相鄰像素的定時(shí)邊界,增大圖像噪聲。在每個(gè)乘法器之后通過中間寄存器來消除擴(kuò)展延時(shí)。

以上提及的YUV至RGB彩色轉(zhuǎn)換已用于Actel? ProASIC3 A3PN125Z FPGA,圖7所示為實(shí)現(xiàn)這一FPGA的原理圖。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖7. YUV至RGB轉(zhuǎn)換器的FPGA實(shí)現(xiàn)


應(yīng)用電路

廠家提供的攝像頭芯片可能位于PCB子板,圖8所示為攝像頭子板模塊的功能框圖。輸入包括電源、PWR和晶振時(shí)鐘(XCLK)。輸出信號(hào)包含并行數(shù)據(jù)位(D0..D9)、I2C總線(SDA、SCL)、視頻同步(HREF、VSYNC)和像素時(shí)鐘(PCLK)。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖8. 攝像頭模塊功能框圖


圖9所示為應(yīng)用電路的FPGA和串行器芯片的原理圖。電路通過兩對(duì)雙絞線組成的串行電纜供電,一對(duì)用于傳輸串行信號(hào),另一對(duì)用于供電。獨(dú)立的LDO電源IC用于串行器和FPGA器件。攝像頭模塊采用旁路電容,自帶LDO電源芯片,進(jìn)一步降低潛在干擾。FPGA和串行器之間的數(shù)據(jù)鏈路采用阻尼電阻。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

3-22.png

圖9a. 應(yīng)用電路的FPGA部分


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖9b. 應(yīng)用電路的串行器部分


MAX9259也能夠直接連接至攝像頭傳感器,例如OV10630,以構(gòu)建更小的攝像頭。彩色空間轉(zhuǎn)換FPGA可置于解串器之后。由于這種應(yīng)用需要攝像鏈路輸出,可直接由MAX9268驅(qū)動(dòng),所以彩色轉(zhuǎn)換FPGA置于攝像頭傳感器和串行器(MAX9259)之間。


視頻采集示例


圖10所示攝像頭應(yīng)用電路也是利用這些攝像頭電路搭建的。


串行器應(yīng)用之如何將攝像頭的RGB或YUV輸出轉(zhuǎn)換成RGB數(shù)據(jù)?

圖10. 攝像頭應(yīng)用電路


免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請(qǐng)聯(lián)系小編進(jìn)行處理。


推薦閱讀:

ADC噪聲:從何而來?

真雙極性輸入、全差分輸出ADC驅(qū)動(dòng)器設(shè)計(jì)

“國(guó)產(chǎn)芯片”瑞森半導(dǎo)體(REASUNOS)將亮相2023慕尼黑上海電子展

利用分布式天線系統(tǒng)解決方案改進(jìn)蜂窩網(wǎng)絡(luò)覆蓋性能

什么是半波整流器?半波整流器的工作原理

特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉