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

推荐订阅源

Security Archives - TechRepublic
Security Archives - TechRepublic
Project Zero
Project Zero
K
Kaspersky official blog
G
Google Developers Blog
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Recorded Future
Recorded Future
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
Latest news
Latest news
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
S
Schneier on Security
P
Palo Alto Networks Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
N
Netflix TechBlog - Medium
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
SecWiki News
SecWiki News
Cloudbric
Cloudbric
TaoSecurity Blog
TaoSecurity Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The Hacker News
The Hacker News
C
Check Point Blog
L
LangChain Blog
腾讯CDC
小众软件
小众软件
T
Tenable Blog
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
L
LINUX DO - 最新话题
A
About on SuperTechFans
Google Online Security Blog
Google Online Security Blog
C
Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Vercel News
Vercel News
雷峰网
雷峰网
美团技术团队
D
DataBreaches.Net
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
博客园_首页

博客园 - 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 及其内存排列方式)。