Maxim串行器可以連接和控制相機IC。本文介紹如何將相機的原始 RGB 或 YUV 輸出轉換為適合與標準顯示器一起使用的 RGB 數據。
介紹
Maxim串行器可以連接和控制相機IC。這些器件包括MAX9257,具有半雙工UART/I2C控制通道,以及MAX9259和MAX9263,均具有全雙工同步控制通道。MAX9263還支持高帶寬數字內容保護(HDCP)。本應用筆記介紹了如何將相機的原始RGB或YUV輸出轉換為適合與標準顯示器配合使用的RGB數據。
相機輸出格式
相機芯片,如豪威OV10630,可以通過串行器連接。OV10630的接口引腳包括像素時鐘、PCLK、線路有效、HREF、幀同步、VSYNC和并行數據位D[9:0]。數據位穩定在時鐘的上升沿。
YUV 和原始 RGB 格式的說明
CMOS相機傳感器由數百萬個光敏單元組成。每個細胞本身對所有波長的光做出反應。光學濾光片涂層用于使特定傳感器僅對紅色、綠色或藍色波長的光做出反應。相鄰的細胞通常涂有拜耳排列的顏色,其中兩倍的細胞涂有綠色,而不是紅色或藍色。這模仿了人眼的生理學。從左到右和從上到下獲取傳感器單元輸出,原始 RGB 數據按藍色、綠色...藍色,綠色(第一行末尾),綠色,紅色,...綠色、紅色(第二行末尾)等,如圖 1 所示。
圖1.原始 RGB 數據字節序列。
通過插值相鄰像元的所需顏色,可以生成與傳感器像元密度相同的 RGB 數據。或者,這可以通過使用相鄰單元格的顏色來實現,符合某些規則。為每個像素位置形成 RGB 集的一個這樣的規則是在同一行上使用一對相鄰的單元格,以及綠色旁邊的下一行(或上一行)中的單元格。插值的RGB數據被排序為...,紅色(i-1),綠色(i-1),藍色(i-1),紅色(i),綠色(i),藍色(i),紅色(i+1),綠色(i+1),藍色(i+1),...如圖2所示。每個像素都需要一組RGB數據來驅動彩色顯示器,同時保持相機傳感器的最大可能分辨率。這種插值RGB數據的亮度分辨率接近傳感器單元的亮度分辨率,而色度分辨率較差。感知分辨率可以與傳感器單元一樣高,因為人眼對每個像素的強度比對像素的顏色分量更敏感。
圖2.RGB 數據字節序列。
但是,這種插值RGB數據的數據速率是其三倍。為了降低數據速率,特別是傳輸速率,可以使用YUV色彩空間(將模擬彩色電視信號放入模擬黑白電視的頻段中)。在下面的等式中,亮度用Y表示,藍色和亮度之間的色差為U,紅色和亮度之間的色差為V,
其中典型的顏色權重值為 WR= 0.299, WB= 0.114,WG= 1 - WR- WB= 0.587,歸一化值為 U.MAX和 V.MAX= 0.615。
對于帶有拜耳圖案顏色濾光片的相機傳感器,相鄰像素的U或V數據大致相同,具體取決于線索引i和像素索引j(如果使用相鄰顏色的規則)。使用此準則,可以根據以下表達式直接從原始 RGB 數據生成 YUV 數據。
對于偶數線索引 i 和偶數像素索引 j。
對于偶數線索引 i 和奇數像素索引 j。
對于奇數線索引 i 和偶數像素索引 j。
對于奇數線索引 i 和奇數像素索引 j。
對于偶數線索引 i 和偶數像素索引 j。
對于偶數線索引 i 和奇數像素索引 j。
對于奇數線索引 i 和偶數像素索引 j。
對于奇數線索引 i 和奇數像素索引 j。
對于偶數線索引 i 和偶數像素索引 j。
對于偶數線索引 i 和奇數像素索引 j。
對于奇數線索引 i 和偶數像素索引 j。
對于奇數線索引 i 和奇數像素索引 j。
為了降低數據速率,使用偶數像素索引 U 數據和奇數像素索引 V 數據,以及偶數和奇數像素索引 Y 數據。這種數據速率降低的YUV數據按如圖3所示的順序傳輸。換句話說,Y1/ 60和 V1是像素 1 的數據;Y2/ 62和 V1是像素 2 等的數據。
圖3.YUV422 數據字節序列。
422 表示 Y:U:V 的采樣比。采用4:x:x標準是因為最早的顏色NTSC標準,該標準使用4:1:1的色度子采樣,因此圖像的彩色分辨率僅為亮度的四分之一。如今,只有處理未壓縮信號的高端設備才使用4:4:4的色度子采樣,亮度和顏色信息具有相同的分辨率。
序列化程序輸入格式
Maxim串行器的并行接口設計用于24位RGB數據。具體而言,MAX9259具有像素時鐘位(PCLK)和29個數據位,可用于24 RGB位以及水平同步、垂直同步和3個控制位。除數據并行接口外,DRS和BWS引腳需要分別設置為高或低,以便選擇數據速率和總線寬度。
美信串行器/解串器
MAX9257和MAX9258串行器/解串器(SerDes)對具有多達18個并行輸入/輸出位,適合發送YUV數據,而MAX9259/MAX9260芯片組具有28個并行輸入/輸出位,適用于傳輸RGB數據。另一對SerDes,MAX9263/MAX9264,具有28位,具有額外的HDCP功能。此外,MAX9265和MAX9268是一對28位SerDes,具有攝像頭鏈路,而不是并行輸入/輸出接口。所有28位Maxim串行器和解串器具有相同的并行-串行數據映射,可互換使用。例如,MAX9259串行器可與MAX9268解串器配合使用,以發送RGB數據(借助FPGA)。該數據通過串行鏈路從CMOS相機發送到相機鏈接接口的顯示設備。
序列化程序的映射
為了匹配MAX9268解串器的相機鏈路輸出接口,應根據以下信號圖映射并行RGB位。圖4所示為MAX9268中間并行位與其相機鏈路輸出之間的映射。圖 5 顯示了相機鏈路的 RGB 內容位映射。表1給出了MAX9259串行器的相應內容映射。
圖4.MAX9268內部并行至輸出映射。
圖5.相機鏈接內容映射。
DIN0 | DIN1 | DIN2 | DIN3 | DIN4 | DIN5 | DIN6 | DIN7 | DIN8 | DIN9 |
R0 | R1 | R2 | R3 | R4 | R5 | G0 | G1 | G2 | G3 |
DIN10 | DIN11 | DIN12 | DIN13 | DIN14 | DIN15 | DIN16 | DIN17 | DIN18 | DIN19 |
G4 | G5 | B0 | B1 | B2 | B3 | B4 | B5 | HREF | VSYNC |
DIN20 | DIN21 | DIN22 | DIN23 | DIN24 | DIN25 | DIN26 | DIN27 | DIN28 | |
R6 | R7 | G6 | G7 | B6 | B7 |
顏色轉換:YUV 到 RGB
FPGA芯片可以將來自相機的數據速率降低的YUV數據轉換為MAX9259串行器的RGB數據。當在 8 位定點數學運算中實現時,這種顏色空間轉換的公式可以用以下表達式來描述。n 是 D 的偶數n和 En在 2德·和 3RD方程。
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 位”。
FPGA 解決方案
輸入緩沖
輸入緩沖電路由一個計數器、三個寄存器和一些組合邏輯組成,用于以輸入時鐘速率的一半將單字節時鐘輸入轉換為三字節時鐘輸出。組合邏輯用于分別為每個 Y、U 和 V 字節啟用相應的寄存器。
圖6.輸入緩沖電路。
時鐘開關
FPGA輸出像素時鐘是相機像素時鐘速率的一半,驅動串行器像素時鐘輸入。但是,相機在初始化之前不會輸出像素時鐘。解決方案是在FPGA內部實現2:1時鐘多路復用器(mux)和時鐘信號檢波器。多路復用器由時鐘信號檢測器控制。多路復用器的上電默認時鐘輸入來自相機的時鐘振蕩器,這使得SerDes芯片組提供控制通道來初始化相機。時鐘信號檢波器對垂直同步信號脈沖進行計數。經過幾次垂直同步脈沖后,多路復用器切換到相機像素時鐘的半速率。使用像OV10630這樣的高清攝像頭傳感器,一個垂直同步脈沖的每個周期包含超過100k像素的時鐘。幾個垂直同步脈沖的時間足以穩定相機的內部鎖相環(PLL)。計數垂直同步比計算像素時鐘效率高得多,并為實現節省了FPGA邏輯元件。
中間緩沖
轉換表達式不描述硬件電路實現的延遲。要從 YUV 輸入生成 RGB 數據,需要兩到三次乘法和三到四次加法。雖然FPGA邏輯元件(門)只產生幾納秒的延遲,但載波、加法器和乘法器移位輸入的傳播會導致廣泛的延遲和延遲擴展。為了最小化延遲,每個常數乘法器由兩個移位輸入的加法器近似,代表常數的 2 個非零最高有效位 (MSB)。在大約100MHz的輸入YUV字節速率下,延遲擴展可能會跨越相鄰像素的時序邊界,從而導致視頻噪聲。在每個乘法器之后放置中間寄存器以消除延遲擴展。
前面提到的YUV到RGB色彩空間轉換已經在Actel? ProASIC3 A3PN125Z FPGA器件中實現。圖 7 顯示了該 FPGA 實現方案的示意圖。
更詳細的圖像。(PDF, 172kB) | 更詳細的圖像。(PDF, 180kB) |
圖7.YUV 至 RGB 轉換器的 FPGA 實現。
應用電路
相機芯片可以由其供應商在子PCB上提供。圖8顯示了相機子模塊的功能框圖。輸入為電源、PWR 和晶體時鐘 (XCLK)。輸出信號為并行數據位(D0.D9)、I2C總線(SDA、SCL)、視頻同步(HREF、VSYNC)和像素時鐘(PCLK)。
圖8.攝像頭模塊功能框圖。
圖9顯示了FPGA和串行器芯片的原理圖,以完成應用電路。該電路通過由兩對雙絞線組成的串行電纜供電,一對用于串行信號,另一根用于電源。串行器和FPGA器件使用單獨的LDO電源IC。旁路電容器用于攝像頭模塊,該模塊具有自己的LDO電源芯片,以進一步減少潛在的干擾。阻尼電阻用于FPGA和串行器器件之間的數據鏈路。
更詳細的圖像 (PDF, 1.6MB)
圖 9a. 應用電路的 FPGA 部分。
更詳細的圖像 (PDF, 1.6MB)
圖 9b.應用電路的串行器部分。
MAX9259還能夠直接連接到攝像頭傳感器,如OV10630,以構建更小的攝像頭。色彩空間轉換FPGA可以在解串器之后使用。由于該應用需要攝像頭鏈路輸出,可由MAX9268直接驅動,因此色彩空間轉換FPGA位于攝像頭傳感器和串行器(MAX9259)之間。
視頻捕獲示例
圖10顯示了相機應用電路的實現方式,也是使用這些相機應用電路捕獲的。
圖 10.相機應用電路的實現。
總結和未來方向
本應用筆記介紹了將Maxim相機串行器IC與FPGA結合使用的典型方法。應用原理圖和FPGA代碼可作為原樣設計參考。RAW RGB至24位RGB FPGA轉換器的實現將在本應用筆記的未來更新中提供。
審核編輯:郭婷
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753080 -
顯示器
+關注
關注
21文章
4970瀏覽量
139926 -
串行器
+關注
關注
0文章
115瀏覽量
14403
發布評論請先 登錄
相關推薦
評論