博客
关于我
音视频基础知识---像素格式YUV(转)
阅读量:441 次
发布时间:2019-03-06

本文共 1286 字,大约阅读时间需要 4 分钟。

YUV 格式详解

一、YUV 概述

YUV(Yieldable Universal Vision)是一种广泛应用于图像处理和编码的色彩空间表示方法。与 RGB(红、绿、蓝)色彩模型不同,YUV 更注重压缩和传输效率,能够在保持图像质量的同时降低带宽占用。

YUV 的三个分量

  • Y(Luminance 或 Luma):表示明亮度,即灰度值,是信号中携带最多信息的分量。
  • U(Cb)和 V(Cr):表示色度和浓度,分别对应蓝色/红色的成分。
  • YUV 通常用于压缩图像,通过降低色度信息的分辨率来减少数据量。例如,仅含 Y 分量的图像为灰度图像,而完整的 YUV 数据则可以还原出色彩信息。

    YUV 的采样格式

    YUV 采样格式根据数据压缩程度的不同分为多种形式,主要包括以下几种:

    1. YUV 4:4:4

    特点:每个像素同时包含完整的 Y、U 和 V 信息,采样比为 4:4:4。

    • 存储方式:每个像素点独立存储 Y、U、V 三个分量。
    • 优点:与 RGB 格式存储空间相同,直接可用于图像处理。

    2. YUV 4:2:2

    特点:Y 分量与 U 和 V 分量采样比例为 2:1,U 和 V 分量水平间隔采样一像素。

    • 存储方式:每行像素点中包含完整的 Y 分量,以及 U 和 V 分量的交错采样。
    • 优点:存储空间与 YUV 4:4:4 相比减少三分之一,适合网络传输。

    3. YUV 4:2:0

    特点:U 和 V 分量的采样与 Y 分量相比为 2:1,但 U 和 V 分量的行间采样方式不同。

    • 存储方式:每行包含完整的 Y 分量,U 和 V 分量按行间交替采样。
    • 优点:存储空间与 YUV 4:4:4 相比减少一半,是主流采样格式。

    二、YUV 存储格式

    YUV 存储格式分为两种主要形式:平面格式(Planar)和打包格式(Packed)。

    1. 平面格式

    • 特点:将 Y、U 和 V 分量分别存储在不同的数据块中。
      • 例如,YUV420 的存储顺序为:所有 Y 分量 → 所有 U 分量 → 所有 V 分量。
    • 优点:数据结构清晰,便于解码和处理。

    2. 打包格式

    • 特点:将 Y、U 和 V 分量按顺序打包存储,例如 YUYV 格式。
      • 例如,Y0 U0 V0 Y1 U1 V1 Y2 U2 V2... 的顺序。
    • 优点:存储空间利用率高,适合快速处理和传输。

    三、常见 YUV 格式

    1. YUYV

    • 特点:打包格式,每个像素点依次存储 Y、U、V 三个分量。
    • 存储方式:Y0 U0 Y1 V0 Y2 U1 Y3 V1...

    2. UYVY

    • 特点:与 YUYV 相反,首先存储 U 和 V 分量,再存储 Y 分量。
    • 存储方式:U0 Y0 V0 Y1 U1 Y2 V1 Y3...

    3. YUV 422P

    • 特点:平面格式,先存储所有 Y 分量,再存储 U 和 V 分量。
    • 存储方式:Y0 Y1 Y2 Y3 U0 U1 V0 V1...

    通过以上内容可以看出,YUV 格式为图像压缩和传输提供了灵活的解决方案。根据具体需求选择合适的 YUV 格式可以在保证图像质量的同时优化存储和传输效率。

    转载地址:http://hgsyz.baihongyu.com/

    你可能感兴趣的文章
    Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
    查看>>
    Python 从数据库中存储和检索密码的最安全方法
    查看>>
    Python语言及其应用 - 知识点遍历
    查看>>
    Python 优化提速的 8 个小技巧
    查看>>
    Python 余弦相似度与皮尔逊相关系数 计算
    查看>>
    python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
    查看>>
    python 使用filetype校验文件
    查看>>
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>
    python 使用in判断不准确,in不好使
    查看>>
    Python 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 八大排序算法合集
    查看>>