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

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
Google Online Security Blog
Google Online Security Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
T
Threat Research - Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
L
Lohrmann on Cybersecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
Schneier on Security
Schneier on Security
S
Schneier on Security
T
Tor Project blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
WordPress大学
WordPress大学
The Hacker News
The Hacker News
Hacker News - Newest:
Hacker News - Newest: "LLM"
罗磊的独立博客
Application and Cybersecurity Blog
Application and Cybersecurity Blog
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
雷峰网
雷峰网
S
Security @ Cisco Blogs
PCI Perspectives
PCI Perspectives
Spread Privacy
Spread Privacy
W
WeLiveSecurity
SecWiki News
SecWiki News
A
About on SuperTechFans
H
Help Net Security
博客园 - 司徒正美
Recent Commits to openclaw:main
Recent Commits to openclaw:main
爱范儿
爱范儿
S
Securelist
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
月光博客
月光博客
Jina AI
Jina AI
博客园 - 叶小钗
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
Recent Announcements
Recent Announcements
S
Secure Thoughts
The Cloudflare Blog
美团技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - PKICA

编译配置解答 git实用命令 rust底层设计理念值得注意的几个地方总结 rust可变引用作为函数参数的机理详解 Rust内存重解释transmute C与Rust类型映射 Rust FFI 安全抽象范式 rust延迟初始化原语 rust重借用机制与原理 rust参数传递模型 汇编语言语法详解 gdb汇编调试 gdb-pwndbg的安装与使用指南 gdb调试插件gef C语言thread_local linux系统readelf命令使用指南 gcore转储进程内存 gdb查看命令 Rust原子类型 C++ STL求两个集合交集差集 gdb调试集锦 ubuntu24.0.4使用root用户登录 ubuntu24.0.4输入密码后跳回登录界面 AI内存压缩技术TurboQuant及存疑 ubuntu切换到指定内核版本 在没有顶级科技大佬直接背书的情况下deepseek为啥能够异军突起? HuggingFace和deepseek的关系 当前主流AI大模型 Rust写时克隆Cow系列2
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 及其内存排列方式)。