YUV基础知识,一文读懂 YUV 是什么!

YUV 是一个颜色模型,通常用作彩色图像管道的一部分。它对彩色图像或视频进行编码时考虑到了人类的感知,与“直接”的 RGB 表示相比,允许减少色度分量的带宽。历史上,术语 YUV 和 Y’UV 用于电视系统中颜色信息的特定模拟编码。今天,YUV 这个术语在计算机行业通常用来描述使用 YCbCr 编码的色彩空间。 YUV 模型定义了一个亮度分量(Y),表示物理线性空间亮度,以及两个色度分量,分别称为 U(蓝色投影)和 V(红色投影)。它可以用于 RGB 模型和不同颜色空间之间的转换。 密切相关的 Y’UV 模型使用亮度分量(Y’)—— 非线性感知亮度,素数符号(‘)表示伽马校正。Y’UV 用于 PAL 模拟彩电标准(不包括 PAL-n)。之前的黑白系统只使用亮度(Y’)信息。彩色信息( U 和 V)通过子载波分别添加,使黑白接收机仍然能够接收和显示接收端原生黑白格式的彩色图像传输,而不需要额外的传输带宽。 至于 Y、Y’、U 和 V 均不是缩写。用字母 Y 表示亮度可以追溯到 XYZ 三原色的选择。这很自然地使得 luma(Y’) 中使用相同的字母,这近似于感知上均匀的亮度相关。同样,选择 U 和 V 是为了将 U 和 V 轴与其他空间(如 x 和 y 色度空间)区分开来。 伽马校正 实际上,研究表明,人类视觉系统是以对数函数的方式来感知光亮度。这意味着,人眼会提高暗部的敏感度,降低高光部分的敏感度。 从数学角度看,感知光强度和测量光强度之间存在一个近似的平方关系,具体如下式所示。 由于人类视觉感知系统不是以线性方式工作的,因此必须使用非线性曲线来对线性数据进行变换,从而使得拍摄的图像色调与我们的视觉系统的工作方式相匹配。这个过程也就是我们所说的伽马校正。 因此,在从线性 RGB 空间转换到非线性...

MIPI扫盲——CSI-2介绍(四)

CSI-2协议支持三种常用的数据格式:YUV(即YCbCr),RGB和RAW(即Bayer)。 其中YUV支持Lagacy YUV420 8bit、YUV420 8bit、YUV420 10bit、YUV422 8bit和YUV422 10bit,下面将简单地介绍一下常用的Lagacy YUV420 8bit和YUV422 8bit。 YUV444,即每一个Y对应一组UV分量;YUV 422,即每两个Y共用一组UV分量;YUV 420,即每四个Y共用一组UV分量。 Lagacy YUV420 8bit格式 YUV422 8bit格式 而RGB格式则支持RGB888,RGB666,RGB565,RGB555,RGB444等,下面分别介绍一下常用的RGB888和RGB565. RGB888格式: RGB565格式: RAW格式则支持RAW6,RAW7,RAW8,RAW10,RAW12和RAW14。这里就不详细介绍了,有兴趣的可以直接查阅MIPI CSI-2的协议规范文档。

MIPI扫盲——CSI-2介绍(三)

MIPI CSI-2的Low Level Protocol主要有一下特征: Transport of arbitrary data (Payload independent) 8-bit word sizeSupport for up to four interleaved virtual channels on the same linkSpecial packets for frame start, frame end, line start and line end informationDescriptor for the type, pixel depth and format of the Application Specific Payload data16-bit Checksum Code for...

MIPI扫盲——CSI-2介绍(二)

在前面的文章中介绍过D-PHY的分层结构图,而基于D-PHY的CSI-2协议主要定义的是Lane Management Layer、Low Level Protocol和像素与字节格式转换(Pixel to Byte和Byte to Pixel)部分。严格来说,可以将像素与字节转换层划分到应用层中去,但是考虑到MIPI CSI-2的应用场合相对固定,很多情况下像素与字节转换层都是由硬件来实现的(以获得更高的效率)。至于Lane Management Layer和Low Level Protocol则是DSI和CSI-2所共有的特性(基本上是一致的),所以也有的MIPI参考资料将这两层放在了D-PHY那部分进行了介绍。 一个简化的CSI-2的接口模型如下图所示: 可以发现,CSI-2无论是Data Lane还是Clock Lane都是非双向的(Unidirectional),同时CSI-2协议还囊括了CCI(Camera Control Interface)协议。不过这也很容易理解,CSI-2定义的是摄像头和图像处理器或者应用处理器之间的接口协议,此时摄像头为Transmitter,而应用处理器为Receiver,只需要进行单向的图像数据传输即可了,而应用处理器可以通过CCI接口来对摄像头进行配置。为什么要用CCI呢?主要是为了保持良好的兼容性,因为CCI已经被行业所认可和接受,并被广泛应用于多家公司的产品中。 那么CCI又是什么鬼呢?你可以这么理解,它就是I2C的一个变种,或者说CCI是I2C协议的一个子集。因此,使用I2C接口就可以直接与CCI接口互联,以实现通信。 需要注意的是,在MIPI CSI-2的协议规范中明确的对摄像头的CCI地址做出了规定,具体如下: 对于那些只支持RAW Bayer输出格式的摄像头,其CCI地址必须为011011xb(x=0,1);对于其他的摄像头,其CCI地址必须为011110xb。 对于CCI协议的具体内容,这里就不详细介绍了,大家可以去参考I2C协议规范或者CSI-2协议规范的对应章节就可以了。 在前面介绍D-PHY的文章中有提到过,当系统进入LP模式时,Clock Lane上的差分时钟可以设置为关闭,或者继续运行。对于那些在LP模式下(换一种说法就是,在两次HS模式之间),差分时钟信号仍然有效的系统,称之为持续时钟行为(Continuous Clock Behavior);而对于那些在LP模式下,将差分时钟信号切断的系统,则称之为非持续时钟行为(Non-Continuous Clock Behavior)。 MIPI CSI-2协议支持多种Lane的配置方式,最小仅仅需要一个Clock Lane和一个Data Lane,而最大则支持一个Clock Lane和多大4个Data Lane。其中,4个Data Lane由Clock Lane进行同步传输数据,显然,这需要在传输数据之前对数据进行分配(或者合并),具体如下图所示: 显然CSI-2每个Data Lane的最小传输内容为一个字节。同时,这会带来一个问题(以2个Data Lane)为例,当所传送字节数为偶数时,Lane1和Lane2可以同时结束,当所传送的字节数为奇数时,Lane1和Lane2将不再是同时结束了!具体如下图所示: 对于3个Lane,也有类似的情况: 4个Lane的情况也是类似的,这里就不详细描述了。综上所述,不管是何种情况(Lane的配置方式),每个Lane都同时开始SoT,并开始发送第一个字节,但是每个Lane的结束时间可能会相差一个字节的传输时间。

MIPI扫盲——CSI-2介绍(一)

CSI旨在为高清摄像头和应用处理器之间提供一个高速的串行接口,举例来说,在目前的智能手机中的摄像头和CPU之间采用的就是CSI协议。目前来说,广泛使用的是其第二个版本CSI-2,最新的版本则是CSI-3。置于CSI-1是否存在,亦或是曾经是否存在暂时无从考证,至少在MIPI的官网是找不到CSI-1的身影了。 CSI-2协议既可以使用与DSI一致的D-PHY物理层协议,也可以使用C-PHY作为物理层协议。而CSI-3则只能使用M-PHY作为物理层协议,也就是说CSI-2和CSI-3之间是不兼容的!具体如下图: 需要注意的是,C-PHY和D-PHY在物理连接上存在多处不同,因此必须保证主机和从机同时使用C-PHY和D-PHY之间的一种作为物理层才能进行有效地通信。具体的差别,参见下图: 差别主要体现在时钟机制上。 显然,采用C-PHY可以获得更高的速率,这也是C-PHY的优势。但是,换一个角度思考,C-PHY只支持CSI-2,而D-PHY同时支持CSI-2和DSI,因此,从设备兼容性,硬件设计成本和灵活性等多个角度来看的话,D-PHY还是具有相当大的优势的。所以目前来说,D-PHY要用的更多一点。 举例来说,Lattice的CrossLink系列器件内部集成了两个D-PHY Harden Core,可以根据实际的需求灵活配置为CSI-2或者DSI,同时也可以使用LUT设计一个Soft Core的D-PHY。从而轻松的完成视频桥接、视频拼接等功能。具体如下: 基于D-PHY v1.1版本的CSI-2不同版本的性能差别如下: