惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
J
Java Code Geeks
有赞技术团队
有赞技术团队
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
G
Google Developers Blog
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
腾讯CDC
V
Visual Studio Blog
博客园 - 【当耐特】
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
L
LangChain Blog

博客园 - PKICA

单片机 MCU,嵌入式,MPU,DSP,FPGA,PLC 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 博文阅读密码验证 - 博客园 rust线程-std::thread::park和unpark 配合Builder实现轻量级的线程挂起与唤醒 rust自定义线程属性std::thread::Builder rust线程 rust关联函数 rust高并发设计实践进阶 rust高并发设计实践 rust性能优化与安全边界 联合体union在rust和C语言中有什么区别 rust并发与异步编程 如何预防rust不良的代码设计总结 rust类型系统与零成本抽象 rust内存模型 告别大显存依赖!用 Rust 新一代深度学习框架 Burn 打造纯 CPU 文本分类推理引擎 rust类型系统标记 编译配置解答 git实用命令 rust底层设计理念值得注意的几个地方总结
RGB与YUV颜色编码的区别
PKICA · 2026-04-10 · via 博客园 - PKICA

RGB 与 YUV 是两种截然不同的颜色编码标准,它们的主要区别在于设计目的、数据存储效率以及应用场景。

简单来说:RGB 是为了让机器(显示器)“显示”图像,而 YUV 是为了让机器(带宽/存储)更高效地“传输”图像。

以下是详细对比:

1. 核心差异对比表

特性RGB (Red, Green, Blue)YUV (Luminance, Chrominance)
基本原理 加色法模型:模拟光的混合。通过红、绿、蓝三原色叠加产生颜色。 人眼感知模型:将“亮度”(Y) 与“色度”(UV) 分离,利用人眼对亮度敏感、对色彩迟钝的特性。
数据相关性 强相关:R、G、B 三个通道通常都包含亮度信息,难以独立压缩。 去相关:Y 通道包含所有细节轮廓,UV 通道只包含颜色,彼此独立。
数据量 (带宽) 大:每个像素必须有 R、G、B 三个完整数值(通常 24-bit)。 可变(较小):可以通过色度采样(如 YUV 4:2:0)大幅减少数据量,通常可节省 50% 带宽。
兼容性 不兼容黑白设备。 向下兼容:只取 Y 信号即为完美的黑白图像(这是彩色电视兼容黑白电视的基础)。
主要应用 采集与显示:相机传感器 (RAW/RGB)、电脑屏幕、手机显示屏、图片编辑 (Photoshop)。 编码与传输:视频压缩 (H.264/HEVC)、流媒体传输 (YouTube/Netflix)、电视广播。

2. 深度解析:为什么视频要用 YUV?

RGB 虽然直观,但在存储和传输视频时效率极低。YUV 的出现解决了两个关键问题:

  • 利用人眼生理特性(压缩数据)
    人眼的视网膜杆细胞(感知明暗)多于锥细胞(感知色彩),因此人眼对亮度 (Y) 的变化非常敏感,但对色度 (UV) 的细节变化很不敏感。
    • RGB: 必须保留所有细节,无法在不明显降低画质的情况下删减数据。
    • YUV: 可以保留完整的 Y 信息,但丢弃大量的 UV 信息。例如 YUV 4:2:0 格式,每 4 个像素共用一组 UV 色度值,肉眼几乎看不出区别,但数据量直接减少一半。
  • 历史兼容性
    在彩色电视刚出现时,为了让旧的黑白电视也能接收信号,工程师设计了 YUV:
    • 黑白电视只接收 Y (亮度) 信号。
    • 彩色电视接收 Y + UV 信号。
    • 如果使用 RGB,黑白电视将无法解析信号。

3. 转换关系

两者可以通过数学公式相互转换(标准如 BT.601, BT.709, BT.2020)。
典型的转换逻辑如下(简化版):

  • $Y \approx 0.3R + 0.6G + 0.1B$ (绿色对亮度贡献最大)
  • $U \approx B - Y$ (蓝色分量与亮度的差)
  • $V \approx R - Y$ (红色分量与亮度的差)

总结: 如果你在做图像处理或UI开发,请使用 RGB;如果你在做视频编解码、推流或摄像头驱动开发,请务必精通 YUV(尤其是 YUV 4:2:0 及其内存排列方式)。