免责声明:
本文所提供的信息和内容仅供参考。作者对本文内容的准确性、完整性、及时性或适用性不作任何明示或暗示的保证。在任何情况下,作者不对因使用本文内容而导致的任何直接或间接损失承担责任,包括但不限于数据丢失、业务中断或其他经济损失。
读者在使用本文信息时,应自行验证其准确性和适用性,并对其使用结果负责。本文内容不构成专业技术咨询或建议,具体的技术实现和应用应根据实际情况和需要进行详细分析和验证。
本文所涉及的任何商标、版权或其他知识产权均属于其各自的所有者。若本文中引用了第三方的资料或信息,引用仅为学术交流目的,不构成对第三方内容的认可或保证。
若有任何疑问或需进一步信息,请联系本文作者或相关专业人士。
Color Space Conversion and Correction
1. 颜色再现的挑战
在图像系统中,准确地再现颜色可能会受到多种因素的影响,这些因素会导致图像颜色与实际场景的颜色不一致:
-
光学系统的光谱特性:
- 镜头和滤镜的光谱响应:镜头和光学滤镜对不同波长的光有不同的响应,这可能会导致某些颜色在图像中被强调或抑制。例如,镜头可能对红色光线更敏感,而对蓝色光线较不敏感,从而影响图像中的颜色平衡。
-
光源变化:
- 不同光源的色温:光源的类型(如日光、荧光灯、钨丝灯)影响场景的色温。不同光源发出的光的色温不同,这会导致图像颜色偏向某种色调。例如,白色光源(如日光)和黄色光源(如钨丝灯)的颜色温度不同,因此拍摄的图像可能会有色彩偏差。
-
传感器的颜色滤镜特性:
- 传感器中的颜色滤镜:传感器使用颜色滤镜(如红、绿、蓝滤镜)来捕捉不同颜色的光线。滤镜的特性和均匀性可能会影响颜色的捕捉。例如,某些滤镜可能对某些颜色的灵敏度较低,导致图像中某些颜色的细节丢失。
2. 颜色空间转换/校正功能
为了纠正这些颜色偏差,图像系统中通常会使用颜色空间转换和校正功能:
-
颜色空间转换:
- 目的:将图像数据从一种颜色空间转换到另一种颜色空间。例如,将 RGB 颜色空间转换为 YUV 颜色空间。这有助于在不同的显示设备或处理环境中保持颜色的一致性,因为不同的设备可能使用不同的颜色空间。
- 操作:这个过程可以调整图像数据,使其适应目标颜色空间的特性,从而减少颜色失真。
-
颜色校正:
- 目的:修正由光学系统、光源和传感器特性导致的颜色偏差。通过对图像数据进行调整,校正功能可以弥补由于上述因素造成的色彩失真。
- 操作:调整图像的色彩值,使其更接近实际场景的颜色。校正可能包括调整色温、补偿光源色差、修正传感器滤镜的特性等。
3.处理蓝色通道的过程
-
光源到图像的处理:
- 原始蓝色光子:从场景中射出的蓝色光子。
- 蓝色滤镜的响应:传感器中的蓝色滤镜对蓝色光子的响应。滤镜可能会根据不同波长的光有所不同的透过率。
- 硅的响应:传感器中的硅对蓝色光子的响应。硅的响应可能与人眼对蓝色的感知不同。
结合这三者(蓝色光子、蓝色滤镜响应、硅的响应),传感器捕捉到的蓝色值(B)与人眼的蓝色感知可能存在差异。为了使捕捉到的蓝色更符合人眼的感知,需要对蓝色通道进行校正。
-
颜色空间转换/校正功能:
- 目的:通过调整像素值,使处理后的颜色更接近人眼的感知。例如,校正蓝色通道以匹配人眼对蓝色的感知。
- 操作:通过以下步骤实现校正:
- 应用增益:将蓝色通道的像素值乘以一个系数,以增强或减弱蓝色的强度。这是通过调整增益来实现的。
- 混合其他颜色:在蓝色通道中添加绿色或红色的混合,使最终的蓝色值更符合预期的颜色。
-
数学表达:
To express this processing mathematically, the new blue (Bc) is related to the old blue (B), red (R), and green (G) according to:
where K1, K2, and K3 are the weights for each of the mix of red, green, and blue to the new blue.
4.颜色校正矩阵
扩展这个概念,一个标准的3 × 3矩阵乘法可以同时并行应用于每个颜色通道。这是一个矩阵操作,其中权重定义了一个颜色校正矩阵。在典型应用中,色彩校正还包含偏移补偿,以确保达到黑色[0,0,0]级别。下面的矩阵操作也可以用于色彩校正:
Matrix Operation: The 3x3 Matrix (and offsets) can be used to perform color space conversion
between RGB and YUV 4:4:4:
5.Features
色彩空间转换和校正功能为各种色彩校正应用提供了3 × 3矩阵乘法。系数矩阵是完全可编程的,包括偏移补偿,并且输出的裁剪和夹紧也是可定义的。
偏移量(Offsets)
-
宽度: 偏移量的位宽为数据宽度加1位。例如,如果数据宽度为 8 位,则偏移量的位宽为 9 位。
-
数值范围: 偏移量是一个带符号整数,具体范围由以下公式给出:
6.Color Mode
7.Frame Size
列数必须是每个时钟的样本数的倍数。如果视频格式为4:2:2或4:2:0,则列数必须为偶数。如果视频格式为4:2:0,则行数必须为偶数。
8.Window
Linux驱动不支持window函数。如果在硬件中没有启用Window特性,那么以下寄存器将不存在:
• HwReg.ColStart
• HwReg.ColEnd
• HwReg.RowStart
• HwReg.RowEnd
• HwReg.K11_2
• HwReg.K12_2
• HwReg.K13_2
• HwReg.K21_2
• HwReg.K22_2
• HwReg.K23_2
• HwReg.K31_2
• HwReg.K32_2
• HwReg.K33_2
• HwReg.ROffset_2
• HwReg.GOffset_2
• HwReg.BOffset_2
• HwReg.ClampMin_2
• HwReg.ClipMax_2
Chroma Resampling
1. 人眼对亮度和色度的敏感度
-
亮度(Luminance): 代表图像的亮度信息,对应于人眼对光强的感知。
-
色度(Chrominance): 包含色彩信息,通常分为两个色差信号 U 和 V。人眼对色度的细节敏感度较低。
2. 颜色空间转换(Color-Space Conversion)
-
在视频处理中,RGB 颜色空间可以转换为 YUV 颜色空间。Y 表示亮度信息,U 和 V 是色差信号。
-
通过降低对 U 和 V 信号的采样率,可以实现简单有效的视频压缩,从而减少存储和传输的成本。这种压缩通常不会影响视觉质量,因为人眼对色度变化不敏感。
3. 色度重采样(Chroma Resampling)
-
色度重采样功能: 用于在不同的色度子采样格式之间进行转换,如 4:4:4、4:2:2 和 4:2:0。
-
4:4:4: 每个像素都有完整的 Y、U、V 数据。
-
4:2:2: U 和 V 信号的水平分辨率减半,每两个像素共享一组 U、V 数据。
-
4:2:0: U 和 V 信号的水平和垂直分辨率都减半,每四个像素共享一组 U、V 数据。
-
-
转换方法: 转换通过有限脉冲响应(FIR)滤波器实现,一些转换仅需要在水平或垂直维度进行滤波,而另一些则需要在两个维度进行滤波。
-
插值操作: 使用两相的多相 FIR 滤波器实现,用于从低分辨率上采样到高分辨率。
-
抽取操作: 使用低通两相多相 FIR 滤波器实现,用于从高分辨率下采样到低分辨率,抑制色度混叠现象。
-
4.Features
色度重采样器功能用于在不同的色度子采样格式之间进行转换。支持的格式包括 4:4:4、4:2:2 和 4:2:0。为了适应不同的应用场景,色度重采样器提供了三种不同的插值和抽取选项:
- 高性能应用: 允许定义一个可配置的滤波器,并提供可编程的滤波器系数。
- 低资源占用应用: 使用预定义的静态滤波器,该滤波器具有 2 的幂系数,适用于资源有限的应用场景。
- 最小资源占用应用: 通过简单地复制或丢弃像素来实现色度重采样,占用最少的资源。
5.Sub-sampled Video Formats
6.Chroma Resampling Configuration
Convert 4:2:2 to 4:4:4: This conversion is a 1:2 horizontal interpolation operation,
implemented using a two-phase polyphase FIR filter. One of the two output pixels is co-sited
with one of the input sample. The ideal output is achieved simply by replicating this input
sample
Convert 4:4:4 to 4:2:2: This conversion is a horizontal 2:1 decimation operation, implemented
using a low-pass FIR filter to suppress chroma aliasing. In order to evaluate output pixel ox, y,
the FIR filter in the core convolves COEFk_HPHASE0, where k is the coefficient index, ix,y are
pixels from the input image, and [ ]Mm represents rounding with clipping at M, and clamping at
m. DW is the Data Width or number of bits per video component. Ntaps is the number of filter
taps.
7.Resampling Filters:
在重采样滤波过程中,进行色度格式转换时的上采样和下采样是通过低通滤波器来实现的,分别用于插值(上采样)和抗混叠(下采样)。
滤波器配置:
- 水平滤波器:最多可以有10个抽头(taps)和两个相位(phases)。
- 垂直滤波器:同样最多支持10个抽头和两个相位。
- 2D分离滤波器:对于同时需要在水平方向和垂直方向上进行上/下采样的转换,提供二维分离滤波器。
在选择滤波器抽头数量时,必须选择偶数抽头,支持的选项包括4、6、8或10个抽头。根据具体的转换类型和滤波器的尺寸,某些系数可能不会被使用,此时可以将这些不需要的系数设置为零。
系数格式:
- 每个系数占16位,采用二进制补码(2's complement)表示。
- 该格式包含4个整数位(包括1个符号位)和12个小数位。符号位是最高有效位(MSB)。
- 例如,值为1的系数可以表示为
0001 0000 0000 0000
。
重要注意事项:
- 所有系数的和应精确为1,以实现单位增益。如果系数之和小于1,则会出现动态范围损失。
8. Computation Bit Width Growth:
Full precision (DATA_WIDTH+16+log2(NTaps) bits) is
maintained during the horizontal and/ or vertical FIR convolution operation.
FIR filter outputs are rounded to DATA_WIDTH bits by adding half an output LSB in the full
precision domain prior to truncation. Clipping and clamping of the output data prevents
overflows and underflows. Data is clipped and clamped at 2DATA_WIDTH-1 and 0.
9. Edge Padding:
The edge pixels of images are replicated prior to filtering to avoid image
artifacts.