浅谈YUV444、YUV422、YUV420

news/2024/11/7 16:40:43/

本期将会给大家介绍YUV相关基础知识,同时也介绍威创网络分布式系统的卓越色彩处理技术。

    1.什么是YUV色彩空间

    2.YUV采样格式

    3.YUV不同采样格式对图像画质的影响分析

一、什么是YUV色彩空间?

        YUV是视频、图片、相机等应用中常常使用的一类图像格式,是所有“YUV”像素格式共有的颜色空间的名称。与RGB格式(红-绿-蓝)不同,YUV格式用一个称为Y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为U(蓝色投影)和V(红色投影)。对于同一个观测像素点,在RGB空间和YUV空间可进行了不同角度的表示,两者满足单射线性变换,两者可以通过线性变换公式进行转换,如图1所示。

图1 RGB空间与YUV空间

YUV也可以称为YCbCr,虽然这些术语定义略有不同,但它们往往会混淆并可互换使用。

    Y表示亮度分量:如果只显示Y的话,图像看起来会是一张黑白照。

    U(Cb)表示色度分量:B-Y,图像蓝色部分去掉亮度,反映了RGB输入信号蓝色部分与RGB信号亮度值之间的差异。

    V(Cr)表示色度分量:R-Y,图像红色部分去掉亮度,反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。

    二、YUV采样格式

    从前述定义中,可以了解YUV空间描述RGB空间的像素颜色按“亮度”分量和两个“色度”分量进行了表示。这种编码表示也更加适应于人眼,据研究表明,人眼对亮度信息比色彩信息更加敏感。而YUV下采样就是根据人眼的特点,将人眼相对不敏感的色彩信息进行压缩采样,得到相对小的文件进行播放和传输。

    1)YUV444

    色度信号分辨率最高的格式是YUV4:4:4,每4点Y采样,就有相对应的4点U和4点V。换句话说,每个Y值对应一个U和一个V值。在这种格式中,色度信号的分辨率和亮度信号的分辨率是相同的。这种格式主要应用在视频处理设备内部,避免画面质量在处理过程中降低。

图2 YUV444采样格式

    一种简单的YUV444区分方法:如图2所示,4个Y值,第1行获得4组UV色度值(如像素1、2、3、4均可独立表示),第2行也获得4组UV色度值(如像素5、6、7、8均可独立表示)。

 

 2)YUV422

    色度信号分辨率格式YUV4:2:2,每4点Y采样,就有相对应的2点U和2点V。可以看到在水平方向上的色度表示进行了2倍下采样,因此YUV422色度信号分辨率是亮度信号分辨率的一半。

    图3 YUV422采样格式

    一种简单的YUV422区分方法:如图3所示,4个Y值,第1行获得2组UV色度值(其中像素1、2合并为1组UV值表示,3、4合并为1组),第2行获得2组UV色度值(其中像素5、6合并为1组,7、8合并为1组)。

    3)YUV420

    色度信号分辨率格式YUV4:2:0,每4点Y采样,就有相对应的1点U和1点V。YUV420色度信号分辨率是亮度信号分辨率的1/4。

    图4 YUV420采样格式

    一种简单的YUV420区分方法:如图4所示,4个Y值,第1行获得2组UV色度值(其中1、2合并为1组,3、4合并为1组),第2行获得0组UV色度值(5-8像素的色度值全丢弃)。即在水平方向压缩的基础上,再在垂直方向上再进行了压缩。

    三、YUV不同采样格式对图像画质的影响分析

    根据前述的YUV采样格式分析,这里我们分析一下对图像画质的影响。我们将一个原始图像为8*8像素的红蓝相间的图案,分别按YUV444、YUV422、YUV420不同的采用格式采样,然后再还原输出。

    图5(a):我们可以看到YUV444的色度信号的分辨率和亮度信号的分辨率无损失,我们获得了与原始图案一致的还原画面图案。

    图5(b):YUV422获得还原图案在水平方向上,已经出现了丢失,从绿色所框选的像素来看,YUV422在水平方向上丢失了另一个像素点的色彩值,故在画面还原时仅是对前一个像素值简单的复制重构。

    图5(c):YUV420获得还原图案在水平方向以及垂直方向上,均出现了丢失,获得的还原图像与原始图像出现很大的失真。

图5 YUV不同采样格式对图像画质

    由图5所示的直观观测,对图像高频细节的图像表达上,YUV444优于YUV422,YUV422优于YUV420。

    在信号传输带宽的节省上,YUV420效率优于YUV444,YUV422优于YUV444。因此在普通的视频编解码算法上,为节省传输带宽开销,普遍采用YUV420或者YUV422的采样格式。

 


http://www.ppmy.cn/news/77999.html

相关文章

6-索引

目录 1.什么是索引? PS:数据库引擎简介(InnoDB VS MyISAM) 2.为什么需要索引? PS:存储数据模组 PS:查询数据存储的目录: 3.索引的作用 PS:索引 VS 书的目录 4.索…

debian11更新glibc

更新 GLIBC 2.33 和 2.34 版本: 添加 Debian Sid 软件源首先需要将 Debian Sid 软件源添加到 /etc/apt/sources.list 文件中,以便获取 GLIBC 2.33 和 2.34 版本的包。 打开终端并运行以下命令: sudo echo “deb http://deb.debian.org/deb…

论文阅读笔记(三)——有监督解耦+信息瓶颈

论文信息 《Disentangled Information Bottleneck》 论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/17120 代码地址:GitHub - PanZiqiAI/disentangled-information-bottleneck inproceedings{pan2021disentangled, title{Disentangled in…

fNIRS最新研究 | 脑间和脑内耦合对运动同步的差异贡献

导读 人类大脑支持行为的一个基本特征是它在脑区之间建立连接的能力。一种有前景的方法认为,在社交行为中,大脑区域不仅与大脑内的其他脑区建立连接,而且还与互动伙伴的其他脑区协调活动。本文探索脑间和脑内耦合是否对运动同步有不同的贡献…

测试分析流程及输出项

测试分析 一、确认测试范围 根据测试项目的不同需求,有大致几类测试项目类型:商户平台功能测试、支付方式接入测试、架构调整类测试、后台优化测试、性能测试、基本功能自动化测试。 测试项目需要按照文档要求进行测试需求分析,并给出对应…

【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

文章目录 一、ViewModel LiveData DataBinding 核心要点1、ViewModel 使用要点2、LiveData 使用要点3、DataBinding 使用要点 二、ViewModel LiveData DataBinding 代码示例1、ViewModel LiveData 代码2、build.gradle 构建脚本 - 启用 DataBinding3、DataBinding 布局文件…

前端实用工具

刚刚开始学习前端的时候,改怎么样选择一个比较好的开发工具?常常有人会来问我这样的问题,我现在用的是Visual Studio Code,然后其他的前端开发工具也会配合着使用,因为都比较不错,选择了前端最受欢迎的6个开…

目标检测YOLO实战应用案例100讲-复杂背景下的红外弱小目标检测方法研究

目录 复杂背景下的弱小红外目标检测 基于单帧和基于多帧检测方法的比较 ​编辑