MIPI中的像素格式

我们知道图像传输的时候有各种各样的格式,典型的可以分成YUV和RGB两种色彩空间,我们常用的也是比较容易理解的是三色RGB色彩空间,而YUV实际上只是另一种颜色表示方法,我们来看看百度百科上的解释:

YUV是编译true-color颜色空间(color space)的种类,YUV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

也就是YUV不是按照颜色区分,而是按照亮度,灰度和饱和度对颜色进行分解,这种格式的发明起源于黑白电视到彩色电视的过渡,虽然年代稍微久远,但是现在应用还是非常广泛,因为在很多场合我们可能只需要提取灰度信息,这个时候我们只需要直接提取其中的灰度分量就可以了,而不用从RGB中三个分量转换。

似乎扯得有点远,我们先来看看MIPI中常用的一些数据格式和他们的传输方式:

格式 类型 数据传输方式 PHY输出
Legacy YUV420 8bit 0x18
0x1C
odd:2 Pixel 2 Bytes 16 Bits
even:2 Pixel 4 Bytes 32 Bits
even:
[7:0]U1 [15:8]Y1
[7:0]V1 [15:8]Y2
odd:
[7:0]Y1 [15:8]Y2
[7:0]Y3 [15:8]Y4
YUV420 10bit 0x19
0x1D
odd:4 Pixel 5 Bytes 40 Bits
even:4 Pixel 10 Bytes 80 Bits
even:
[9:0]U1 [19:10]Y1
[9:0]V1 [19:10]Y2
odd:
[9:0]Y1 [19:10]Y2
[9:0]Y3 [19:10]Y4
YUV422 8bit 0x1E 2 Pixel 4 Bytes 32 Bits [7:0]U1 [15:8]Y1
[7:0]V1 [15:8]Y2
YUV422 10bit 0x1F 2 Pixel 5 Bytes 40 Bits [9:0]U1 [19:10]Y1
[9:0]V1 [19:10]Y2
RGB888 0x24 1 Pixel 3 Bytes 24 Bits [7:0] Blue
[15:8] Green
[23:16]Red
RGB666 0x23 4 Pixel 9 Bytes 72 Bits [5:0] Blue
[11:6] Green
[17:12]Red
RGB565 0x22 1 Pixel 2 Bytes 16 Bits [4:0] Blue
[10:5] Green
[15:11]Red
RGB555 0x21 [4:0] Blue
[9:5] Green
[14:10]Red
RGB444 0x20 [3:0] Blue
[7:4] Green
[11:8]Red
RAW8 0x2A Data on [7:0]

上述表格PHY的输出是参考i.MX上MIPI-CSI的配置给出来的。

从表格中可以看出,不同的数据格式最终数据的码率是不尽相同的,所以当选择了一种格式之后,相应的MIPI时钟应该也是需要重新配置的,这里面牵扯的东西就比较复杂了。不过好歹数据格式这里是有些眉目了。

你可能感兴趣的:(MCU,嵌入式)