串行器应用之如何将摄像头的RGB或YUV输出转换成RGB数据?
【导读】串行器可以连接并控制摄像头IC,ADI的这类器件包括MAX9257 (带有半双工UART/I2C控制通道)、MAX9259和MAX9263 (两款均带有全双工同步控制通道),MAX9263还支持宽带数字内容保护(HDCP)。本应用笔记介绍如何将摄像头的RGB或YUV输出转换成标准显示器接受的RGB数据。
串行器可以连接并控制摄像头IC,ADI的这类器件包括MAX9257 (带有半双工UART/I2C控制通道)、MAX9259和MAX9263 (两款均带有全双工同步控制通道),MAX9263还支持宽带数字内容保护(HDCP)。本应用笔记介绍如何将摄像头的RGB或YUV输出转换成标准显示器接受的RGB数据。
CMOS摄像头传感器包括数百万光敏单元,每个单元可响应整个波长的光信号。利用滤光膜使特定传感器仅响应红光、绿光或蓝光信号。相邻的光敏单元通常以拜耳结构的滤色规律排列,绿色滤色片的数量是红色或蓝色滤色片数量的两倍。这种方式用于模拟人眼的感光特性。从左至右、从上至下读取传感器单元输出,原始的RGB数据序列为蓝、绿...蓝、绿 (首行末尾),绿、红...绿、红(第二行末尾),依次类推,如图1所示。
图1. 原始RGB数据排列
图2. RGB数据排列
然而,这种RGB数据的内插算法使得数据速率增至三倍。为了降低数据速率,尤其是需要图像传输的场合,可采用YUV彩色空间(将模拟彩色电视信号压缩到模拟黑白电视的频带)。在下式中,亮度以Y表示,蓝色和亮度之间的色差以U表示,红色和亮度之间的色差以V表示,
式中,典型的色彩加权为:WR= 0.299,WB= 0.114,WG= 1 - WR- WB= 0.587,归一化值为UMAX,VMAX= 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。
为了降低数据速率,利用偶数像素索引的U数据和奇数像素索引的V数据,以及偶数和奇数像素索引的Y数据。压缩后的YUV数据按照图3所示排列发送,即:Y1、U0和V1为像素1的数据;Y2、U2和V1为像素2的数据等。
图3. YUV422数据排列
422表示Y:U:V的采样比,4:x:x标准为早期彩色NTSC标准,按照4:1:1色度再次采样,所以,图像的色彩分辨率仅为亮度分辨率的四分之一。目前,只有处理非压缩信号的高端设备才会采用4:4:4彩色再采样,亮度和彩色信息的分辨率完全相同。
为匹配MAX9268解串器摄像链路的输出接口,并行RGB数据应按照以下信号图映射。图4所示为MAX9268并行位与其摄像链路输出之间的映射,图5所示为相机链路的RGB数据映射。表1所示为MAX9259串行器的对应内容映射。
图4. MAX9268内部并行至输出映射
图5. 摄像链路内容映射
表1. MAX9259串行器RGB内容位映射
FPGA芯片可将压缩(降低数据速率)后的摄像头数据YUV转换成RGB数据,用于MAX9259串行器。采用8位定点运算时,色彩空间转换的公式如下,式2和式3中,Dn和En的n为偶数。
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位”。
输入缓冲
输入缓冲电路包括计数器、三个寄存器和组合逻辑,将单字节时钟输入转换成三字节时钟输出,输出时钟速率为输入的一半。组合逻辑仅用于分别使能Y、U和V字节的对应寄存器。
图6. 输入缓冲电路
时钟开关
FPGA输出像素时钟速率为摄像头像素时钟的一半,用于驱动串行器像素时钟输入。但是,摄像头在初始化之前不会输出像素时钟。解决方案是在FPGA内部采用2:1时钟复用器(mux)和时钟信号检测器,mux由时钟信号检测器控制。上电时,mux的默认时钟来自摄像头的时钟振荡器,使SerDes芯片组提供启动摄像头的控制通道。时钟信号检测器对场同步信号脉冲进行计数,经过几个场同步脉冲后,mux切换到摄像头像素时钟速率的一半。采用高清摄像头传感器时,例如OV10630,每个场同步周期包含100k以上的像素时钟。几个场同步周期足以使摄像头的锁相环(PLL)达到稳定。场同步计数比像素时钟计数的效率高得多,并可节省FPGA逻辑单元的资源。
中间缓冲
以上提及的YUV至RGB彩色转换已用于Actel?ProASIC3 A3PN125Z FPGA,图7所示为实现这一FPGA的原理图。
图7. YUV至RGB转换器的FPGA实现
应用电路
厂家提供的摄像头芯片可能位于PCB子板,图8所示为摄像头子板模块的功能框图。输入包括电源、PWR和晶振时钟(XCLK)。输出信号包含并行数据位(D0..D9)、I2C总线(SDA、SCL)、视频同步(HREF、VSYNC)和像素时钟(PCLK)。
图8. 摄像头模块功能框图
图9所示为应用电路的FPGA和串行器芯片的原理图。电路通过两对双绞线组成的串行电缆供电,一对用于传输串行信号,另一对用于供电。独立的LDO电源IC用于串行器和FPGA器件。摄像头模块采用旁路电容,自带LDO电源芯片,进一步降低潜在干扰。FPGA和串行器之间的数据链路采用阻尼电阻。
图9a. 应用电路的FPGA部分
图9b. 应用电路的串行器部分
MAX9259也能够直接连接至摄像头传感器,例如OV10630,以构建更小的摄像头。彩色空间转换FPGA可置于解串器之后。由于这种应用需要摄像链路输出,可直接由MAX9268驱动,所以彩色转换FPGA置于摄像头传感器和串行器(MAX9259)之间。
视频采集示例
图10所示摄像头应用电路也是利用这些摄像头电路搭建的。
图10. 摄像头应用电路
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理。
推荐阅读:
ADC噪声:从何而来?
真双极性输入、全差分输出ADC驱动器设计
“国产芯片”瑞森半导体(REASUNOS)将亮相2023慕尼黑上海电子展
利用分布式天线系统解决方案改进蜂窝网络覆盖性能
什么是半波整流器?半波整流器的工作原理