关于YUV420

关于YUV和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。RGB是使用红绿蓝三原色来描述色彩的模型。YUV使用亮度和色度来描述色彩的模型。CMYK是使用青色Cyan、品红色Magenta、黄色Yellow来描述色彩的模型。Y:表示的是亮度。UV是色差。YUV又称YCbCr,Cb代表蓝色差量(U),Cr代表红色分量(V),Y不仅有绿分量,还叠加了亮度信息。

大家好,又见面了,我是你们的朋友全栈君。

关于YUV

和RGB色彩模型一样,YUV也是被发明来描述色彩的模型。类似的还有CMYK等。

RGB 是使用红绿蓝三原色来描述色彩的模型。
YUV 使用亮度和色度来描述色彩的模型。
CMYK 是使用青色Cyan、品红色Magenta、黄色Yellow 来描述色彩的模型。

Y:表示的是亮度。UV是色差。YUV又称YCbCr,Cb代表蓝色差量(U),Cr代表红色分量(V),Y不仅有绿分量,还叠加了亮度信息。

YUV的出现解决了黑白电视机和彩色电视机显示的问题。

关于YUV420

YUV主流的采样方式包括:YUV444,YUV422,YUV420.
YUV 4:4:4采样,每一个Y对应一组UV分量。
YUV 4:2:2采样,每两个Y共用一组UV分量。
YUV 4:2:0采样,每四个Y共用一组UV分量。

对于YUV420编码来说,一副RGB图片有多少个像素点就有多少个Y,然后U分量是四分之一个像素点,V分量也是四分之一个像素点。

YUV420表示的是 2:1 的水平下采样,2:1 的垂直下采样

也就是YUV420对RGB格式图片采样如下:
1. 每个像素点采样一个Y
2. 奇数行采样U并且是隔一个像素点采样一次。
3. 偶数行采样V并且是隔一个像素点采样一次。

所以对于800×600的RGB图像,
RGB格式占用:800x600x3字节
YUV格式占用:800x600x1 + 800x600x1/4 + 800x600x1/4 = (800×600)x1.5 字节
也就是说YUV格式减少了一半的存储空间。

YUV420对RGB采样时如下:
每个像素点都采样Y,奇数行采样1/2个U(width、height都减半),不采样V,偶数行采样1/2个V(width、height都减半),不采样U。

YUV420的存储

YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。对于前者称为YUV420p,后者称为YUV420sp。

以YUV420p为例,对于4个像素点的图像在内存中存储如下:
Y1,Y2,Y3,Y4,U1,V1

相关资料:

数字图像处理 颜色空间RGB、HSI、CMYK、YUV的相互转换
YUV格式分析详解
YUV内存里的存放顺序
详解YUV420数据格式
YUV原理、采样及格式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127103.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • memorycleaner汉化版(v4l2 userptr)

    本文链接:https://blog.csdn.net/coroutines/article/details/70141086可参考:http://www.it610.com/article/4522348.htm//v4l2官方翻译基于V4L2的应用,通常面临着大块数据的读取与拷贝等问题。尤其在嵌入式系统中,对于实时性能要求较高的应用,拷贝会花上几十个ms…

    2022年4月16日
    131
  • Mybatis原理解析之一 SqlSessionFactory生产(源码解析)

    Mybatis原理解析之一 SqlSessionFactory生产(源码解析)缘起:笔者从业一年有余(此处撸撸胡须,摸摸自己半秃的头发)不经发出感叹:天天写ssm框架搭建下的业务框架,对于数据库操作也使用mybatis。但是扪心自问对于mybatis的使用只是停留在表层,从来没有研究过其原理,于是本着只有变秃才能变强的原则,于是准备研究一下mybatis的框架并再次做出记录。这里笔者对于mybatis的源码分析是在spring环境下进行的。这是笔者第一个研究的框架源…

    2022年6月3日
    69
  • 用CA给证书签名「建议收藏」

    用CA给证书签名「建议收藏」本文原创自http://blog.csdn.net/voipmaker 转载注明出处。本系列文章分为三篇,主要介绍构建自己的证书颁发服务,生成证书请求,以及通过自己构建的CA给生成的证书请求签名并最终应用到服务。本文是最后一篇,结合前面的两篇文章,可以通过自己构建的CA给自己的应用签名。本文假设你已经参照签名两篇文章流程,CA key在目录 /home/cg/myc

    2022年6月3日
    46
  • redis可视化客户端工具TreeNMS

    redis可视化客户端工具TreeNMS

    2021年11月3日
    53
  • IP地址划分[通俗易懂]

    IP地址划分[通俗易懂]IP地址划分1IP地址分类(1)A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围:1.0.0.1——126.255.255.254二进制表示为:00000001000000000000000000000001——01111110111111111111111111111110可用的A类网络有126个,每个网络能容纳…

    2022年6月11日
    49
  • ntp 校时 linux 带源码

    ntp 校时 linux 带源码最近做个项目,想通过公司上的NTP服务器给板子校时,但是板子里没有ntpdate这个命令,下面是2个解决方法,1,找到ntpdate源代码,重新编译之后,手动运行,这个方法我上网上查了,比较复杂,据说NTP还与SSL有关,编译的时候必须把SSL也包含进去,于是就迟迟没有动工。2,突然有一天看到rtthread里也提供一个ntp的客户端,比较简单,就一个文件,也没几行,于是想着把这个.c文件移植到linux下,但我仔细研究了一下,发现这个文件的原始作者就是在linux下设计的。原始文件更简单.

    2022年6月18日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号