RV1126——YUV原理

前言

不管是做 IPC 摄像头、RV1126 嵌入式音视频开发,还是日常接触视频编码,YUV 都是绕不开的基础知识点。摄像头 Sensor 输出原始画面、VI 采集图像、RGA 图像处理、VENC 编码 H.264/H.265,全程数据都是 YUV 格式。很多初学嵌入式的同学分不清 YUV 和 RGB,搞不懂 444/422/420 区别,本篇用通俗的大白话,从原理、优势、采样规则、实际大小计算、存储分类全方位讲解 YUV。

一、什么是 YUV?

我们熟知的 RGB 依靠红绿蓝三原色混合出各种色彩,而 YUV 把画面拆分成亮度 Y色度 U、V两大部分:

  1. Y(亮度分量):代表画面明暗灰阶,只保留 Y 数据,图片就是黑白画面,和老式黑白电视画面原理一致;
  2. U(蓝色色差):蓝色信息剔除亮度后的数据;
  3. V(红色色差):红色信息剔除亮度后的数据。

U 和 V 组合决定图像的色彩与饱和度,只有同时具备 Y、U、V 三种数据,画面才能正常显示彩色。正是基于亮色分离的设计,YUV 才有了压缩空间,也是音视频领域抛弃 RGB、选用 YUV 的核心原因。

二、YUV 对比 RGB 的核心优势

RGB 每个像素 R/G/B 各占 1 字节,三个分量完整保存,无任何压缩空间,数据体积庞大。而 YUV 利用人眼对亮度敏感、对色彩细节不敏感的生理特点,对 U、V 色度分量做降采样压缩,优势集中在三点:

  1. 占用存储空间更小:最常用的 YUV420 格式,数据体积只有 RGB 的一半左右,同等分辨率下能节省一半存储;
  2. 传输带宽更低:IPC 摄像头实时推流、网络流媒体传输,小体积数据能大幅降低带宽开销;
  3. 适配硬件编码:H.264、H.265 编码器原生适配 YUV 数据,RV1126 等各类编码芯片只支持 YUV 输入编码,RGB 无法直接送入 VENC 编码模块。

所以在摄像头采集、图像编码、流媒体行业,YUV 是行业通用标准格式。

三、三种主流 YUV 采样格式(附 1080P 实际大小计算)

采样格式本质就是Y、U、V 三个分量按照不同比例取值 ,行业主流分为 YUV444、YUV422、YUV420 三种,全部以 1Byte (8bit) 存储单个分量数据,统一用1920×1080(1080P)分辨率计算单帧大小,换算规则:1Byte=8bit,1MB=1024×1024Byte

1.YUV444:1:1:1 完整采样,无压缩

采样规则:每 4 个 Y 对应 4 个 U、4 个 V,Y/U/V 分量尺寸完全一致,没有任何色度压缩。

  • Y 尺寸:w×h
  • U 尺寸:w×h
  • V 尺寸:w×h 单帧总字节:\(1920×1080×3≈6220800Byte≈5.94MB\) 特点:画质无损、数据量大,体积和 RGB 持平,RV1126 开发几乎不用,仅用于专业图像处理。

2.YUV422:横向 2:1 采样,一半色度压缩

采样规则:横向每 2 个 Y 共用一组 UV,也就是 4 个 Y 搭配 2 个 U、2 个 V,仅在水平方向压缩色度,垂直方向完整采样。

  • Y 尺寸:w×h
  • U 尺寸:w×h/2
  • V 尺寸:w×h/2 单帧总字节:\(1920×1080×2≈4147200Byte≈3.96MB\) 特点:压缩适中、画质损耗小,多用于工业相机采集。

3.YUV420:横竖双 2:1 采样,项目最常用(NV12 属于此类)

采样规则:横向、纵向都做 2:1 压缩,4 个 Y 共用 1 组 UV,一行存 Y+U、下一行存 Y+V,U、V 分量尺寸均为原图 1/4,是 RV1126 摄像头默认输出格式。

  • Y 尺寸:w×h
  • U 尺寸:w×h/4
  • V 尺寸:w×h/4 单帧总字节:\(1920×1080×1.5≈3110400Byte≈2.97MB\) 特点:体积最小、画质肉眼无损耗,是 IPC、视频编码首选格式,我们做 RV1126 音视频开发全程接触 NV12(YUV420)。

拓展小知识:30 帧 / 秒的 1080P NV12 画面,每秒数据量≈2.97×30≈89MB,选型芯片 DDR 内存时就要参考这个数据。

四、YUV 两大存储分类:Planar 平面 & Packed 打包

同样的采样格式,还分两种数据存放方式,也是实际调试抓 YUV 数据的关键知识点:

1.Planar(平面存储)

Y、U、V 三块数据分开连续存放,先存完整全部 Y 数据,再连续存 U,最后连续存 V,数据分三块。 例:YU12:YYYY...UUUU...VVVV,YV12:YYYY...VVVV...UUUU

2.Packed(打包存储)

Y、U、V 数据穿插排列,所有像素数据挤在同一段内存里,不分三块,典型代表:YUYV、UYUV。 例:YUYV 排列:Y0 U0 Y1 V0 Y2 U2 Y3 V2

五、项目高频 YUV 格式汇总(RV1126 必记)

YUV420 系列(VI 输出主流)

  1. NV12:项目标配 :平面存储,全 Y→UV 交替排布YYYY U0V0U1V1,RV1126 摄像头默认输出;
  2. NV21:平面存储,全 Y→VU 交替排布YYYY V0U0V1U1,安卓设备常用;
  3. YU12:全 Y→全 U→全 V;YV12:全 Y→全 V→全 U。

YUV422 系列

  1. YUYV、UYUV:打包交错存储,常用于 USB 摄像头;
  2. YUV422P:平面分开存储 Y、U、V。

六、总结

  1. 从原理记:Y 管亮度,UV 管色彩,靠 UV 压缩实现体积优化;
  2. 从选型记:444 不用、422 少用、420 (NV12) 项目天天用
  3. 从调试记:RV1126 VI 出 NV12,RGA、VENC 全部基于 NV12 处理。

后续学习 VI 视频输入、VENC 编码时,所有参数配置的分辨率、图像格式,全部围绕 NV12/YUV420 展开。

相关推荐
奈斯先生Vector6 小时前
把 Midjourney 二次编辑做成生产系统:customId 能力令牌、Action Graph 与 WebUI 精修工作台
数据库·人工智能·架构·aigc·音视频·midjourney
林澈在路上7 小时前
2026 主流 AI 写歌 APP 全面测评|零基础原创歌曲工具选购指南
大数据·人工智能·aigc·音视频·音频
气泡音人声分离9 小时前
为什么 MP3 转 FLAC 不能变成无损?音频转码里的信息损失原理
音视频·音频剪辑·音频格式转换
一个有点技术的程序猿10 小时前
局域网中视频采集,颜色空间转换,编码,网络发送,接收,解码,渲染全链路卡顿分析
网络·音视频·视频编解码
移动云开发者联盟10 小时前
移动云携手MiniMax首发MiniMax-H3, AI视频一键成片!
人工智能·音视频
做萤石二次开发的哈哈11 小时前
开发者如何调用 ERTC Android API 完成 SDK 初始化?
网络·音视频·萤石开放平台
音视频牛哥12 小时前
从数字孪生到机器人操控:Android Unity3D下RTMP/RTSP多路低延迟播放实践
android·unity·音视频·unity rtsp播放器·unity rtmp播放器·rtsp player·rtmp player
她说可以呀13 小时前
Spring-ai-alibaba视频生成
人工智能·spring·音视频
程序员老陆13 小时前
FFmpeg6 在 Windows 打开麦克风并录成 PCM:不走 Qt Multimedia,也不碰 WASAPI
windows·ffmpeg·音视频·pcm
DogDaoDao14 小时前
VVC 帧间编码分区加速方法
深度学习·音视频·视频编解码·h266·vvc·预测编码·帧间编码