什么是YUV、RGB?

简介: 介绍什么是YUV
  • 由来

    • 通常我们用RGB表示一种彩色。计算机系统里的LCD显示的数据就是RGB来表示每个像素的颜色。而在我们生活里,有黑白电视机与彩色电视机两种,拍摄节目源时不可以用两种不同的摄像机来存放两种图像数据。所以为了兼容两种电视机,专家就引入YUV格式代替RGB,其中Y表示亮度, U和V表示色差。 黑白电视机只用Y信号, 而彩色电视机可由YUV转换成RGB再显示颜色。通常我们所用的YUV格式是 ITU-R 的标准 , 也叫YCbCr.
  • YUV与RGB的换算规则

    Y     Y = 0.299 x R + 0.587 x G + 0.114 x B + 0 
    U    Cb = -0.169 x R - 0.331 x G + 0.499 x B + 128 
    V    Cr = 0.499 x R - 0.418 x G - 0.0813 x B + 128 
    
  • YUV4:4:4

    • 其实就是YUV的数据各占用8位, 每个像素都由YUV组成
    • 同一行的相邻4个像素数据:

               Y0U0V0    Y1U1V1   Y2U2V2  Y3U3V3

      存储时: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3

即每个像素YUV的数据都会存放起来,为什么叫4:4:4? 意思就是4个像素里的数据有4个Y, 4个U, 4个V

  • YUV4:2:2

    • 其实绝大部分相邻的两个像素,数据差异应不大。所以为了节省空间便于存储,丢失每个像素的部分数据。专家研究表 明我们人对亮度比较敏感,而对色彩不怎么敏感。所以每个像素的亮度Y数据是绝对不动的,而色差数据可以进行丢弃。
      同一行的相邻4个像素数据: Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3

         存储时:    Y0 U0  Y1 V1 Y2 U2 Y3 V3,每两个相邻的像素, 一个丢弃V数据,一个丢弃U数据

      为什么叫4:2:2?意思就是相邻的4个像素里有4个Y, 2个U, 2个V。 按上面存储的顺序也叫YUYV。但还原成RGB数据必须需要YUV, 像第一个像素只有Y0U0是没法还原的,这时只能用下一像素的V1数据。还原时的YUV: [Y0U0V1] [Y1U0V1] [Y2U2V3] [Y3U2V3],这样还原理论上会对图像的质量有影响的,但我们看不出来的.

  • YUV4:2:0

    • 专家们进一步研究表示,每一行的相邻两个像素与下一行同位置的两个像素数据差异不大,可以进一步的丢数据。如两行的像素数据:

          Y00U00V00   Y01U01V01   Y02U02V02   Y03U03V03  ....  
          Y88U88V88   Y89U89V89   Y90U90V90   Y91U91V91  ....

      存储时:Y00U00 Y01 Y02U02 Y03 ,每个像素的Y数据保留, 两个像素数据只保留一个U数据。这一行不保留V数据(YUV: 420),Y88V88 Y89 Y90V90 Y91,两个像素数据只保留一个V数据, 这行不保留U数据(YUV: 402),还原时只能相同位置的上下两行4个像素结合还原:

        Y00U00V88  Y01U00V88  Y02U02V90  Y03U02V90
        Y88U00V88  Y89U00V88  Y90U02V90  Y91U02V90

下一节介绍YUV数据两种存储方式(平面、打包)

相关文章
|
设计模式 机器学习/深度学习 SQL
软考高级系统架构设计师通关经验分享
为什么考系统架构设计师是国家设立的计算机技术与软件专业技术资格考试(简称软考)中的一个高级科目,属于工程师高级职称系列,具有一定含金量。浙江省每年通过软考高级的人数约为1000+人,其中系统架构设计师科目的通过人数约为200+人。从学习角度来说,通过准备系统架构设计师的考试的过程,可以查漏补缺,并且了解一些系统架构设计相关的基础知识,实现一定程度上的自我提升;从目的性的角度来说,通过考试,可以在一
14970 4
软考高级系统架构设计师通关经验分享
|
运维 监控 Serverless
利用Serverless架构优化成本和可伸缩性
【10月更文挑战第13天】Serverless架构让开发者无需管理服务器即可构建和运行应用,实现成本优化与自动扩展。本文介绍其工作原理、核心优势及实施步骤,探讨在Web应用后端、数据处理等领域的应用,并分享实战技巧。
|
传感器 存储 安全
智能包装:食品保鲜与追踪的创新
【10月更文挑战第20天】智能包装通过传感器、微电子和物联网技术,实现实时监测和调节食品环境条件,延长食品保鲜期,确保食品安全。本文探讨其基本原理、技术创新、实际应用及未来趋势,展示其在食品行业中的革命性变化。
|
Java 关系型数据库 Linux
在Linux中,操作系统的主要组成部分有哪些?
在Linux中,操作系统的主要组成部分有哪些?
|
JavaScript Java 关系型数据库
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
这篇文章介绍了一个使用SpringBoot + Vue + Mybatis + Mysql技术栈开发的美妆商城系统,包括系统功能划分、部分页面截图和前后端源码示例,并提供了GitHub上的源码链接。
美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】
|
消息中间件 缓存 负载均衡
这些年背过的面试题——分布式篇
本文是技术人面试系列分布式篇,面试中关于分布式都需要了解哪些基础?一文带你详细了解,欢迎收藏!
这些年背过的面试题——分布式篇
|
网络安全
openstack 使用ssh远程管理云主机
在阿里云平台上,为云主机分配和配置浮动IP涉及以下步骤:首先,在“网络”部分分配一个公共IP,并将其关联到已创建的云主机。接着,在“浮动IP”页面确认绑定成功。然后,进入安全组,为默认安全组添加允许ping和SSH的新规则。通过控制台ping浮动IP以测试连通性。最后,从宿主机修改云主机的hostname并使用SSH登录。至此,SSH登录设置完成。
379 2
openstack 使用ssh远程管理云主机
|
Java 编译器 Maven
一文解读|Java编译期注解处理器AbstractProcessor
本文围绕编译器注解都是如何运行的呢? 又是怎么自动生成代码的呢?做出了详细介绍。
|
前端开发 大数据 数据库
临时抱佛脚必看|一个月速通高级系统架构设计师!(低分飘过版)
本文写给已决定报考高级软件架构设计师的同学,从软考报名到正式考试,有40天时间,本文纯应试备考经验,一个月速成,仅供参考。