RGB与YUV

简介:

RGB:
      红绿蓝(RGB)是计算机显示的基色,RGB565支持的色深可编程至高达每像素16位,
即 RGB565(红色5位,绿色6位,蓝色5位)。
YUV:
     视频编解码器功能 
视频编码器要求YUV4:2:0格式的视频输入,因此可能根据应用需要进行视频输入的预处 理,即对YUV4:2:2隔行扫描(例如从摄像机)到YUV 4:2:0非隔行扫描转换,仅抽取但不过滤UV分。对视频解码器而言,还需要进行后处理,以将解码的YUV 4:2:0数据转换为RGB进行显示,包括:YUV 4:2:0到RGB转换;16位或12位RGB显示格式;0到90度旋转,实现横向或纵向显示。此外,视频编解码器通常还要求具有以下功能和特性: 
支持MPEG-4简单类 0、1 与 2 级; 
兼容H.263与 MPEG-4 编解码标准; 
MPEG-4视频解码器支持的可选项有:AC/DC预测、可逆可变长度编码(RVLC)、再同步标志(RM)、数据分割(DP)、错误隐藏专利技术、支持每个宏块4个运动矢量(4MV)、自由运动补偿、解码VOS层; 
MPEG-4视频编码器选项有:RVLC、RM、DP、支持每个宏块4个运动矢量(4MV)、报头扩展码、支持编码期间码率改变、支持编码期间编码帧率改变、插入或不插入可视对象序列起始码; 
支持编码期间序列中插入I帧; 
支持编码器自适应帧内刷新(AIR); 
支持多编解码器,可用相同代码运行多个编解码器实例。


         计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G (Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方 法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。
根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。
F = r [ R ] + g [ G ] + b [ B ]
其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。
那么YUV又从何而来呢?在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄像机 进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即 V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。

YUV与RGB相互转换的公式如下(RGB取值范围均为0-255):
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

YUV转换为RGB的公式
第一个公式是YUV转换RGB(范围0-255)时用的,第二个公式是用在YUV(601)也成为YCbCr转换RGB(范围0-255)时用的。 
1.Y =  0.299R + 0.587G + 0.114B
 U = -0.147R - 0.289G + 0.436B
 V =  0.615R - 0.515G - 0.100B
 R = Y + 1.14V
 G = Y - 0.39U - 0.58V
 B = Y + 2.03U
2.

 B= 1.164 * (Y - 16) + 2.018 * (U - 128)
 G= 1.164 * (Y - 16) -   0.38 * (U - 128) - 0.813 * (V - 128)
 R= 1.164 * (Y - 16)  + 1.159 * (V - 128)

YUV 覆盖(Overlay)

       多媒体领域中,尤其在涉及到 MPEG 播放时,通常使用 YUV 颜色空间来表示颜色,如果要在屏幕上显示一副 MPEG 解压之后的图片,则需要进行 YUV 颜色空间到 RGB 颜色空间的转换。YUV 覆盖最初来自一些显示芯片的加速功能。
这种显示芯片能够在硬件基础上完成 YUV 到 RGB 的转换,免去软件转换带来的
性能损失。在这种显示芯片上建立了 YUV 覆盖之后,可以直接将 YUV 信息写入
缓冲区,硬件能够自动完成 YUV 到 RGB 的转换,从而在 RGB 显示器上显示出来
。在不支持 YUV 覆盖的显示芯片上,MiniGUI 也能够通过软件实现 YUV 覆盖,
这时,需要调用 DisplayYUVOverlay 函数将 YUV 信息转换并缩放显示在建立
YUV 覆盖的 DC 设备上。

reference from:http://6xudonghai.blog.163.com/blog/static/336406292009728052275/





     本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/860229,如需转载请自行联系原作者


相关文章
|
1月前
|
存储 编解码 监控
RGB 和 YUV 区别
【10月更文挑战第26天】RGB和YUV在色彩表示原理、数据存储方式、应用场景以及转换关系等方面都存在着明显的区别,它们各自在不同的领域发挥着重要的作用。
|
7月前
|
计算机视觉
RGB色彩空间
【5月更文挑战第11天】RGB色彩空间。
58 3
|
存储 编解码 Android开发
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。
219 0
|
存储 数据挖掘
YUV色彩空间
本文介绍 YUV存储格式,什么是色调?什么是色饱和度?人类视觉系统是如何感知YUV的?YUV比RGB好在哪里
270 0
|
7月前
|
存储 编解码 算法
关于YUV视频
关于YUV视频
150 0
|
容器
yuv色彩空间和色彩范围
yuv色彩空间和色彩范围
291 0
Fffmpeg:从AVFrame中由YUV获取RGB
Fffmpeg:从AVFrame中由YUV获取RGB
176 0
YUV 与 RGB的转换
RGB 转换成 YUV Y = (0.257 * R) + (0.504 * G) + (0.
5542 0
|
编解码
理解 RGB & YUV 颜色编码
理解 RGB & YUV 颜色编码
511 0
理解 RGB & YUV 颜色编码