欢迎访问易龙三维科技官网,专注研发数码打印机20年!
全国咨询热线:400-8316492
联系我们
400-8316492

手机:13823737137

邮箱:3485053954@qq.com

QQ:3485053954

地址:深圳市龙岗区横坪公路89号数字硅谷E栋4楼

当前位置:首页 > 行业新闻 > 公司动态

YUV图像浅析(1)

时间:2025-01-13 09:32:04 作者:147小编 点击:

undefined
undefined
undefined
undefined
undefined

undefined

 

0.引言

本篇文案重点讲解YUV格式和内存摆列,看完本篇文案,能够快速对YUV格式有个更清楚的认识。

从下图就能够看出,YUV4:1:1,YUV4:2:0,就压缩的最厉害。一般在网络传输时,通常在送到编码之前,都转换作为这2种格式。

1.YUV简述

yuv是欧洲电视系统采用的颜色编码办法之一,包括一个亮度信号Y和两个色差信号U、V。yuv格式能够优化彩色视频信号数据的存储方式。与RGB格式相比,最大的优良在于只需占用极少的数据存储空间,使得数据传输更为简易。

yuv中,“Y”暗示亮度便是灰阶值;而“U”和“V”暗示的则是色度,色度的功效是记录图像色彩及饱和度“亮度”是透过输入信号来创立的,办法将信号的特定部分叠加到一块“色度”则定义了颜色的两个方面─色调与饱和度,分别用Cr和Cb来暗示。其中,Cr反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。而Cb反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

采用yuv色彩空间的重要性是它的亮度信号y和色度信号u、v是分离的。倘若仅有y信号分量而u、v分量,那样这般暗示的图像便是黑白灰度图像。彩色电视采用yuv空间正是为了用亮度信号y处理彩色电视机与黑白电视机的兼容问题,使黑白电视机能接收彩色电视信号。

2.YUV采样格式

重点的采样格式有YCbCr:4:4:4、YCbCr:4:2:2、YCbCr:4:2:0、以及YCbCr:4:2:1,举例说明中YCbCr:4:1:1为常用的采样格式,其含义为:每一个保留一个8bit的亮度值(便是Y值),每4个点保留一个Cr和Cb值,Cr和Cb像素点在肉眼中的感觉不会起太大的变化。因此,原来用RGB(R,G,B都是8bit unsigned)模型,即1个点需要24bits。如果按YCbCr:4:1:1采样后,平均每一个点仅需要8+8/4+8/4=12bits。这般就把图像的数据压缩了一半。下面对这几种格式做仔细介绍。

(1)YUV 4:4:4

YUV三个采样数据完整存储,不存在任何数据损失与压缩,当然数据存储体积不变,与格式相同。如下图:

每一个交叉暗示一个Y值数据,每一个圆圈暗示一个U值与V值数据,图中为每一个Y值对应一个U值与V值,整体为一个像素点,该像素点数据保留完整。

YUV 4:4:4图像

交错格式存储如下:

YUV数据在内存中的存储方式,每3个为一组,为方便32位计算机的按位直接读取,一般在每组YUV值后会填充一个A值,使得每次读取数值为32位,增多读取速度。

YUV 4:4:4内存存储方式

(2)YUV 4:2:2

灰度值数据Y完整读取,色度U与V仅保存本来的一半,取每行像素点的奇数位的UV值进行保留。此处UV数据压缩百分之五十,Y数据不变,压缩比为1-(4+2+2)/(4+4+4)*100%=33.33%)。因像素点在屏幕表示后,图像颜色的失真针对观察者来讲并不会影响图像的质量与观赏度,因此能够按此法进行压缩。如下图所示:

YUV 4:2:2图像

交错格式存储如下:

YUV 4:2:2 内存存储方式

每一个交叉暗示一个Y值数据,每一个圆圈暗示一个U值与V值数据,图中为每两个Y值对应一个U值与V值,整体为两个像素点,两像素点共用一个相同的色度差,利用物体颜色在两个像素的距离内不会变化过大的原理,恰当压缩图像数据。

为YUV数据在内存中的存储方式,每4个为一组,其中奇数位为Y值,偶数位为U值与V值,32位计算机在读取时能够一次恰好读取一组YUV数据,其中包含两个Y值与其共用的一个U值与V值。

(3)YUV 4:1:1

灰度值数据Y依旧完整读取,而色度U与V仅保存本来的四分之一,取每两行像素点的左上位置的UV值进行保留。此处数据压缩百分之七十五,Y数据不变,压缩比为1-(4+1+1)/(4+4+4)*100%=50%)。一样利用因像素点在屏幕表示后,图像颜色的失真针对观察者来讲并不会影响图像的质量与观赏度,既然YUV4:2:2能够横向压缩,因此YUV 4:1:1能够增多纵向压缩,达到更加高的压缩比例,但需要付出数据较难处理的代价。如下图所示:

每一个交叉暗示一个Y值数据,每一个圆圈暗示一个U值与V值数据,图中为每四个Y值对应一个U值与V值,整体为四个像素点,四个像素点共用一个相同的色度差,一样利用物体颜色在两个像素的距离内不会变化过大的原理,恰当压缩图像数据。内存摆列如下图所示:

内存存储方式YUV 4:1:1内存存储方式

上图中,为YUV 4:1:1数据在内存中的存储方式,与YUV 4:4:4、YUV 4:2:2区别的是,虽然YUV 4:1:1压缩比最大,需要存储的数据最少,然则其存储方式是最为繁杂的,需要运用三个Buffer依次存取Y,U,V,三值,此存储方式节约了存储内存空间与数据进行传送时的网络传输带宽,增多了编程人员对数据还原表示处理的难度。

确定图像的存储方式关系到数据在内存中的存储方式,当进行图像合并时,需要对内存中的数据进行修改,以达到合并图像的效果,因此认识图像存储方式至关重要。

重视:尽管上面列举出了有些常用的格式,然则还是有非常多格式是有用到的,实质遇到采集与编码格式区别,或解码与播放格式区别,就需要进行格式转换。理解清楚这些格式转换就晓得怎么去转换了,当然倘若搞不清这种数据关系,有库能够用。

3.其它

如WebRTC库中源码针对图像类的命名为I420,初步猜测为YUV4:2:0格式。但在interface文件I420videoframe.h中观察创建图像的办法与其参数:

int CreateFrame(int size_y,const uint8_t & buffer_y,int size_U,const uint8_t & buffer_U, int size_V,const uint8_t & buffer_V,int width,intheigth,int stride_y,int stride_u,int stride_v)

推断其实质存储方式为YUV4:1:1,由于参数中包括三个Buffer,分别为bufferY,bufferU以及bufferV,以及她们对应的体积

事实上,WebRTC做为视频通话的研发库,其思虑最优先的必然是最大化压缩数据,减少需要网络传输的数据,减少视频通话与现实中的延迟,在使得视频通话顺畅的基本上,再进行画质的改善。因此呢WebRTC选取YUV4:1:1为恰当选取,但此图像格式处理的方式较为困难,后面文案再介绍下怎么转换的算法。

4.总结

本文用一篇非常简短的文案,再次讲述了YUV格式和内存摆列,后面有机会再继续讲讲一些转换算法和RGB格式。欢迎关注,保藏,转发,分享。

后期关于项目知识,会更新在微X公众号“记录世界 from antonio”,欢迎关注

  • 免责声明:部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真
  • 实性,如本站文章和转稿涉及版权等问题,请作者在及时联系本站,我们会尽快删除处理问答,若不联系则默认允许本站转载。
  • 上一篇:「刹那教程05」仔细过程教贴UV膜
  • 下一篇:改装的uv平板打印机真的物美价廉吗?