iOS开发-YUV颜色格式

百度百科上面的介绍

YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的优点在于只需占用极少的频宽(RGB要求三个独立的视频信号同时传输)。
其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。
“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来表示。
Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

 RGB 《=》 YUV:

     Y   =   0.299   R     +   0.587   G   +   0.114   B  
    U   =   -   0.1687   R   -   0.3313   G   +     0.5   B   +   128  
    V   =   0.5   R       -   0.4187   G   -   0.0813   B   +   128  
   
    R   =   Y   +   1.402   (V   -   128)  
    G   =   Y   -   0.34414   (U   -   128)   -   0.71414   (V   -  128)  
    B   =   Y   +   1.772   (U   -   128)  

YUV 为 h264的颜色空间的一种。

当对RGB进行压缩时,显然利用不上人类视觉系统对亮度比色度更敏感的特性,所以需要进行RGB向YUV的转换。可以说RGB是用来在LCD、CRT上显示用的,而YUV更便于视频信号的压缩、传输和存储

参考

YUV数据格式

YUV解析

H264解码出YUV帧

iOS渲染YUV

OpenGL与YUV

原文地址:https://www.cnblogs.com/loying/p/5275160.html