
YUV是一种颜色编码系统将**亮度(Y)和色度(U、V)**分离存储广泛应用于视频编解码、流媒体等领域。与 RGB 不同YUV 将亮度信息Luminance和色度信息Chrominance分离这使得它在压缩和带宽优化方面具有巨大优势。• Y (Luminance/Luma): 亮度分量。代表图像的灰度信息。人眼对亮度非常敏感。• U (Cb - Chroma Blue): 蓝色色度分量。表示颜色相对于灰色的蓝色偏移量。• V (Cr - Chroma Red): 红色色度分量。表示颜色相对于灰色的红色偏移量。为什么使用 YUV1. 兼容性: Y 分量可以直接用于黑白电视显示。2. 压缩效率: 人眼对色度的敏感度远低于对亮度的敏感度。因此我们可以保留完整的 Y 数据但降低 U 和 V 的分辨率即色度 subsampling/下采样从而大幅减少数据量而不明显影响视觉质量。一、YUV格式分类1.1 色度采样基础定义1.1.1 YUV 4:4:4每 1 个 Y 对应 1 个 U、1 个 V无压缩画质无损像素块2×24Y 4U 4V1.1.2 YUV 4:2:2水平方向色度减半垂直完整像素块2×12Y 1U 1V1.1.3 YUV 4:2:0最常用视频、直播、H.264/H.265水平 垂直色度各减半压缩比最高像素块2×24Y 1U 1V1.1.4 YUV 4:1:1水平色度 1/4垂直完整极少使用1.2存储格式分类1.2.1 平面格式Planar数据按通道分离存储每个通道占据独立的内存区域格式布局子采样每像素比特场景YUV420 PlanarI420标准 YUV420PYYYY UU VV4:2:012 bppFFmpeg、播放器、通用图像处理YV12YYYY VV UU4:2:012 bppWindows 老式摄像头、DirectShow 常用YUV422 PlanarI422YUV422PY U V分三块4:2:216 bppYV16Y V U分三块YUV444 PlanarI444/YUV444PY U V独立平面4:4:424 bpp无损剪辑、调色专用I400仅Y-8 bpp灰度1.2.2 双平面格式(BiplanarY平面独立UV交织存储格式UV 平面排布使用场景NV124:2:0 UV交错PC 硬解、Windows/Mac/Intel/NVIDIA 通用最主流双平面NV214:2:0 VU交错Android Camera 原生输出NV164:2:2 UV交错高帧率采集卡、部分 ARM 硬件NV614:2:2 VU交错NV244:4:4 UV交错专业采集卡使用NV424:4:4 VU交错1.3 打包格式Packed1.3.14:2:2 Packed2 像素共用 1 组 CbCr格式字节顺序子采样应用场景YUY2/ YUYVY0 U0 Y1 V0 Y2 U1 Y3 V1...4:2:2Windows 摄像头、DirectShow 默认输出格式。UYVYU0 Y0 V0 Y1 U1 Y2 V1 Y3...4:2:2专业 SDI 采集卡、Linux v4l2 常用带宽和 YUY2 完全一致。专业剪辑、调色硬件链路首选VYUYV Y U YYVYUY0 V0 Y1 U04:2:2UV 顺序颠倒小众采集设备专用。1.3.2 4:4:4 PackedUYVA / YUVA4:4:4 带 Alpha 透明通道UI、渲染合成用BGR/YUV 混合打包AYUV、VUYA1.3.3 4:1:1 Packed极少用Y41P、Y411老式低码率摄像头现已淘汰1.4 特殊扩展YUV1.4.1 带 Alpha 透明通道AYUV444 packed 8bit 带 AlphaYA16平面 YUVAlphaYUVA444P444 平面带透明通道1.4.2 高位深影视专业格式10/12/16bitP010、I010、I210、I410v210422 10bit packed专业 SDI、达芬奇v410444 10bit packed1.4.3 隔行专用 YUVYUV420i、NV12i隔行扫描视频老式标清电视1.4.4 压缩型YUV内存不标准采样硬件专用YUYV_420、NV12_TILEDGPU 瓦片存储显卡内部私有格式MIPI YUV手机摄像头硬件私有打包格式1.4.5 灰度单通道Y8 / GRAY8只有 Y 分量无 U/V纯黑白图二、采样格式2.1 采样图YUV 格式通常用 A:B:C 或 A:B:C:D 来表示采样比例。最常用的是 4:2:0。YUV444无压缩: Y U V | Y U V | Y U V | Y U V Y U V | Y U V | Y U V | Y U V Y U V | Y U V | Y U V | Y U V Y U V | Y U V | Y U V | Y U V YUV422水平子采样: Y U | Y V | Y U | Y V Y U | Y V | Y U | Y V Y U | Y V | Y U | Y V Y U | Y V | Y U | Y V YUV420水平垂直子采样: Y | Y | Y | Y Y | Y | Y | Y U V U V ... (共享) (共享)2.2 对比图格式描述数据量占比应用场景YUV444每个像素都有独立的 Y, U, V。无压缩。100% (3 bytes/pixel)高端视频编辑无损存储YUV422每两个水平相邻像素共享一组 U, V。垂直方向全采样。66% (2 bytes/pixel)高清视频接口 (HDMI, SDI)YUV420每 2x2 的四个像素共享一组 U, V。50% (1.5 bytes/pixel)视频压缩标准 (H.264, VP8, WebRTC)三、YUV与YCbCr区别YUV与YCbCr的区别YUV 是模拟电视时代的模拟信号标准YCbCr 是数字采样后的数字编码标准。日常开发里大家口语混称但原理、取值、用途完全不一样。维度YUVYCbCr信号类型模拟连续电压数字离散采样分量Y、U、VY、Cb、Cr色度特性U/V 含负数Cb/Cr 偏移后全正数取值无固定数字区间分 0~255 全幅 /16~235 限幅使用场景老式模拟电视、模拟色差线所有数字视频、图片、摄像头编码程序像素格式不存在NV12/YUY2/I420 等全是它四、YUV格式计算公式统一变量W图像宽度像素H图像高度像素BitDepth单分量位深常用 8bit / 10bit / 12bit4.1, 4:4:4 格式YUV每个像素有1个Y1个U1个V每个像素的总为3个 BitDepth总字节公式4.2, 4:2:2 格式YUV每 2 个像素共用一组 CbCr 2 像素总分量2Y 1Cb 1Cr 4 个BitDepth总字节公式4.3, 4:2:0 格式YUV2×2 块 4 个像素共用一组 CbCr 4 像素分量4Y 1Cb 1Cr 6个BitDepth总字节公式4.4 单通道灰度 Y8/GRAY8只有 Y无色度4.5 计算查表根据以上公式计算的表在实际的计算中可以直接查表进行计算单分量位深采样代表格式8bit10bit12bit420NV12/I420/NV21×1.5×1.875×2.25422YUYV/YUY2/UYVY/NV16×2×2.5×3444I444/NV24×3×3.75×4.5灰度 Y8GRAY8×1//例720P(1280×720) NV12 1280 × 720 × 1.5 1382400 Byte ≈ 1.32 MB