YUV实际上是一个家族, 除了YUV色彩空间外还有其他色彩空间, 如YIQ, YCbCr , YDbDr (YDbDr主要用于模拟信号)等,都是用于描述灰度和色差概念的。由于这些色彩空间与YUV 色彩空间极为类似, 虽然各不相同, 但习惯上仍称为YUV。由于人眼对亮度差异的敏感程度大于颜色差异的视觉特性,可以实现对 YUV存储数据进行采样压缩, 从而方便传输和处理。主要的采样格式有YUV444、YUV422、YUV420和YUV411。本文主要从YUV色彩空间和采样格式详细论述。

  1. YUV色彩空间

YUV色彩空间是一种基本的色彩空间, 用于PAL制和SECAM彩色电视制式,Y是指明视度, 即亮度( 实际上代表灰度值), 而U 和V 则是指色调,即描述图像色彩饱和度的属性。

YIQ色彩空间是从YUV色彩空间衍生而来的, 被北美电视系统所采用, 被NTSC选作为复合色彩视频标准。Y也是指颜色的明视度,即灰度。而I代表In-Phase(同相),Q代表Quadrature(积分), 它们表示了一种传输色彩信息的调制方法, 实际上也指色调, 只是与YUV略有不同。

YCrCb色彩空间则是在世界数字组件视频标准研制过程中作为ITU一RBT.601建议的一部分, 其实是YUV经过缩放和偏移的翻版。其中Y与YUV 中的Y含义一致, CbCr 同样都指色彩, 只是在表示方法上不同而已。在YUV家族中,YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr

YDbDr色彩空间被用作SECAM复合色彩视频的标准。同样,Y指颜色的明视度即灰度, 而DbDr表示颜色信息。它主要用于模拟信号, 在表示方法上与YUV稍有不同。

  1. YUV与RGB空间的相互变换

YCrCb与RGB的彩色空间变换关系也有:

(9)

(10)

这个(9)(10)RGB分别在取值范围为[0,255]的时候,对应的YUV值域范围Y,U,V~[0,255]

(7)和(8)RGB分别在取值范围为[0,255]的时候,对应的YUV值域范围Y~[16,235],U ~[16-240],V~[16-240]。

(7)(8)与(9)(10)区别是:量化与非量化的区别。

为防止搬运出错,将其原文公式截图附在上面以供查阅,使用时候注意小数点。论文在下面。自行补上哈。。。

  1. YUV采样格式

YUV采样格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、 YUV444、YUV422、YUV420和YUV411等等。主要采样格式有:YUV444、YUV422、YUV420和YUV411。如何根据其采样格式从码流中还原每个像素点的YUV值,只有正确地还原了每个像素点的YUV值,才能通过YUV与RGB的转换公式提取出每个像素点的RGB值,然后显示出来。这边主要介绍主流的采样格式,简介如下。

(1) YUV 4:4:4采样,每一个Y对应一组UV分量。

(2) YUV 4:2:2采样,每两个Y共用一组UV分量。

(3) YUV 4:2:0采样,每四个Y共用一组UV分量。

(3) YUV 4:1:1采样,每四个Y共用一组UV分量。

格式

存放的码流为:

主流采样方式

YUV444

Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

YUV422

[Y0 U0 V0] [Y1 U1 V1]

YUV420

Y0 U0 Y1 Y2 U2 Y3

YUV411

Y0 U0 Y1 Y2 V2 Y3

  1. YUV码流的内存存储格式

YUV码流的存储格式其实与其采样的方式密切相关,YUV的内存存储格式通常有两大类:打包(Packed)格式和平面(Planar)格式。

对于Planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。

对于Packed的YUV格式,每个像素点的Y,U,V是连续交错存储的。

结合YUV采样格式对存储格式简单举例:

(1) YUVY 格式 (属于YUV422)

YUYV为YUV422采样的存储格式中的一种,相邻的两个Y共用其相邻的两个Cb、Cr,分析,对于像素点Y00、Y01 而言,其Cb、Cr的值均为 Cb00、Cr00,其他的像素点的YUV取值依次类推。

(2) UYVY 格式 (属于YUV422)

UYVY格式也是YUV422采样的存储格式中的一种,只不过与YUYV不同的是UV的排列顺序不一样而已,还原其每个像素点的YUV值的方法与上面一样。

(3) YUV422P(属于YUV422)

YUV422P也属于YUV422的一种,它是一种Plane模式,即平面模式,并不是将YUV数据交错存储,而是先存放所有的Y分量,然后存储所有的U(Cb)分量,最后存储所有的V(Cr)分量。其每一个像素点的YUV值提取方法也是遵循YUV422格式的最基本提取方法,即两个Y共用一个UV。比如,对于像素点Y'00、Y'01 而言,其Cb、Cr的值均为 Cb00、Cr00。

(4)YV12,YU12格式(属于YUV420)

YU12和YV12属于YUV420格式,也是一种Plane模式,将Y、U、V分量分别打包,依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分量共用一组UV。注意,上图中,Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00,其他依次类推。

(5)NV12、NV21(属于YUV420)

 NV12和NV21属于YUV420格式,是一种two-plane模式,即Y和UV分为两个Plane,但是UV(CbCr)为交错存储,而不是分为三个plane。其提取方式与上一种类似,即Y'00、Y'01、Y'10、Y'11共用Cr00、Cb00。

总结与思考

RGB转YUV: 通常是RGB转YCbCr这个公式。注意这里也有量化和非量化的区别

YUV转RGB: 通常是需要结合图像YUV码流的内存存储格式。不确定的是YUV码流的内存存储格式是根据什么确定下来的。

参考文献

[1]   向方明,朱遵义,许敬,崔业兵.YUV到RGB颜色空间转换算法研究[J].现代电子技术,2012,35(22):65-68.

[2]   刘云粼,王树东.基于SSE2的YUV与RGB色彩空间转换[J].中国图象图形学报,2010,15(01):45-49.

[3]   邵丹,韩家伟.YUV与RGB之间的转换[J].长春大学学报,2004(04):51-53.

[4]   沈俊,葛燧和.计算机系统中的YUV[J].计算机工程,2000(01):94-96.

YUV色彩空间变换与采样格式相关推荐

  1. 音视频编解码: YUV采样格式中的YUV444,YUV422,YUV420理解

    YUV各种采样格式的说明 通常我们用RGB表示一种彩色.计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色. 而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像 ...

  2. 视音频学习基础篇(一)----YUV采样格式和存储格式

    先给自己打个广告,本人的微信公众号:嵌入式Linux江湖,主要关注嵌入式软件开发,股票基金定投,足球等等,希望大家多多关注,有问题可以直接留言给我,一定尽心尽力回答大家的问题. 本系列主要介绍视频中的 ...

  3. yuv色彩空间和色彩范围

    1.yuv色彩空间和色彩范围 色彩空间定义了视频采样中颜色的表示方式.常用的色彩空间包括 RGB 和 YUV,其中 YUV 更常用,因为它对人类视觉系统的特性更加符合.在 YUV 中,Y 表示亮度(l ...

  4. 【FFmpeg】ffmpeg 命令查询二 ( 比特流过滤器 | 可用协议 | 过滤器 | 像素格式 | 标准声道布局 | 音频采样格式 | 颜色名称 )

    FFmpeg 系列文章目录 [FFmpeg]Windows 搭建 FFmpeg 命令行运行环境 [FFmpeg]FFmpeg 相关术语简介 ( 容器 | 媒体流 | 数据帧 | 数据包 | 编解码器 ...

  5. 【Android 高性能音频】OboeTester 音频性能测试应用 ( Oboe 输出测试参数 | API 选择 | 音频输出设备选择 | 采样率 | 通道 | 采样格式 | 播放偏好 )

    文章目录 一.Oboe 输出测试参数面板 二.Oboe 输出测试参数 API 及 设备选择 三.Oboe 输出测试参数 音频参数 四.Oboe 输出测试参数 播放偏好 五.Oboe 输出测试参数 ( ...

  6. HM-16.0编码过程:将YUV文件编码成HEVC格式的码流

    HM-16.0编码:将YUV文件编码成HEVC格式的码流 注: 1   为了快速优化运行(不调程序的时候),可以将程序的版本设为"release",否则还是设为"debu ...

  7. ffmpeg中支持的音频互相转换的采样格式和声道分布

    音频互相转换的采样格式 enum AVSampleFormat {AV_SAMPLE_FMT_NONE = -1,AV_SAMPLE_FMT_U8, ///< unsigned 8 bitsAV ...

  8. Hopf-Cole 变换与高阶差分格式(Burgers方程)

    非线性发展方程的有限差分方法 1.41.41.4 Hopf-Cole 变换与高阶差分格式 1.4.11.4.11.4.1 Hopf-Cole 变换 令 u(x,t)=−2νwx(x,t)w(x,t)( ...

  9. hsv空间阈值检测matlab,基于HSV色彩空间变换的阴影检测算法——MATLAB实现

    图像在不同的色彩空间可以表现出不同的光谱特性,从而适用于不同的应用场合.在 HSV 色彩空间中,阴影在色度和饱和度通道中都与非阴影区域有明显的区别.根据阴影的这种特性,利用连续两次的 HSV 彩色空间 ...

最新文章

  1. 聪明的程序员用Delphi,真正的程序员用C++,偷懒的程序员用PowerShell
  2. vuex结合php,vuex中store的使用介绍(附实例)
  3. oracle 更改用户状态,密码
  4. C# Azure 存储-分布式缓存Redis的新建配置查看
  5. 发起http请求_关于HTTP请求发起和响应你了解多少
  6. 要来了!国内安卓统一推送标准将于3月开启测试
  7. IDEA登录Github账号失败的解决办法
  8. 怀黄佩紫的拼音及解释
  9. visio 2010图形安装包
  10. 简单两个矩阵如何用计算机运算,教你使用excel做矩阵运算
  11. Android 垃圾分类APP(三)垃圾分类之语音输入
  12. 小程序调用服务器图片错误,微信小程序列表图片加载错误处理
  13. Jboot通过redis实现每日登录失败次数限制的问题
  14. getpixel() java_android – 使用getPixel()方法提取的巨大负值
  15. 【Unity】入门学习笔记180605——游戏动画设计(4)——游戏角色动画基础
  16. K8s 初学者入门教程
  17. 马云:未必每个企业都要转型,但每个企业都要升级 | 杭州启用全国首个基于人工智能的数据资源平台
  18. DirectShow介绍和使用
  19. python什么意思d_python里d是什么意思
  20. Maya export/inport error----Invalid file type specified

热门文章

  1. Gradle Windows安装
  2. 反人类的施工作业,早应该被“干掉”
  3. Oracle有自增id的数据去重,一道经典的oracle去重sql语句
  4. 1997-2018年各省互联网普及率
  5. Python射击小游戏
  6. 如何设计文化衫中考计算机试题,初中文化衫图片 初中科技主题涂鸦文化衫图案设计...
  7. 中国剩余定理_解一次同余方程组
  8. 1.MNIST(简介可视化)
  9. java堆栈区别_JAVA堆栈的区别
  10. DPDK :原理概述