[具身智能-618]:YUV vs RGB 完整对比
一、基础定义RGB基于发光原理显示器标准。 每个像素由R 红、G 绿、B 蓝三个通道混合形成色彩。 常见RGB24 / BGR24OpenCV、RGB888。模型逻辑直接描述像素三原色光强度。YUV基于人眼视觉特性摄像机 / 视频标准。Y亮度Luma画面明暗人眼极其敏感U、V色度Chroma色彩信息人眼敏感度低。模型逻辑把亮度和色彩信息拆分开存储可以对色度做压缩采样。二、核心本质差异设计目标不同RGB面向显示设备屏幕自发光PC、GUI、OpenCV、CNN 训练环境原生使用 RGB。YUV面向图像采集与视频传输摄像机 ISP、硬件编解码、嵌入式流水线。最重要特性YUV 支持色度下采样人眼对色彩不敏感不需要每个亮度点都配套独立 UV。 由此产生444 / 422 / 420采样格式。YUV444每个 Y 对应一组 UV等价 RGB无压缩YUV422横向每 2 个 Y共用一组 UVYUV4202×2 区域内 4 个 Y 共用一组 UVNV12 就是 YUV420SPRGB不存在采样压缩方案每个像素必须完整存储 R/G/B。带宽与内存差异1080P 单帧举例分辨率 1920×1080RGB241920×1080×3 ≈6.22MBNV12(YUV420)1920×1080×1.5 ≈3.11MB✅ NV12内存占用只有 RGB24 的50%这是嵌入式优先选用 YUV (NV12) 最核心理由。三、相互转换公式BT.601 工业相机标准RGB → YUVplaintextY 0.299R 0.587G 0.114B U -0.14713R - 0.28886G 0.436B V 0.61497R - 0.51499G - 0.10001BYUV → RGBplaintextR Y 1.403 * V G Y - 0.344 * U - 0.714 * V B Y 1.770 * U⚠️区分Full Range (0~255相机 ISP 输出) / Limited Range (16~235视频标准)混用会画面发灰、对比度异常。四、对照表工程直接参考表格对比维度RGBRGB24/BGR24YUV典型NV12 YUV420SP通道含义红、绿、蓝三原色Y 亮度U/V 色度采样压缩不支持每个像素三通道齐全支持色度降采样 420节省带宽内存开销基准 100%仅 50%420原生适用场景PC 显示、OpenCV、CNN 神经网络训练相机 ISP 输出、MIPI 链路、硬件 H264/JPEG 编码、BPU 嵌入式流水线RDK X5 硬件友好度BPU 可支持但通常需要额外格式转换⭐最优原生支持全硬件通路ISP/VPS/BPU/ 编码器典型问题大数据量高分辨率高帧率下带宽压力大PC 通用软件支持弱无法直接用 OpenCV imread 打开裸流通道顺序坑OpenCVBGRCNN 网络 RGB极易颠倒偏色NV12 / NV21 区别为 UV/VU 顺序顺序错画面色彩反转五、结合你整条视觉链路流转关系plaintextCMOS → Bayer RAW ↓ ISP Demosaic → RGB444中间临时格式不在外部输出 ↓ ISPRGB → YUV 420色度下采样 重排内存 NV12YUV420SP【mipi_cam输出话题】 ├─分支1BPU硬件内置预处理 NV12→RGB → FCOS/YOLO推理最优方案无CPU拷贝 ├─分支2NV12送入硬件编码器 → H264/JPG视频/网页预览 └─分支3CPU/VPS转换 NV12 → BGR → OpenCV画框、调试截图关键结论RAW 不会直接生成 NV12ISP 内部必须先插值得到完整 RGB再转 YUV。CNN 网络本质只接收 RGB 张量NV12 只是嵌入式硬件层面的传输格式进入网络前必然重新要转为 RGB。六、选型策略RDK X5 项目落地✅数据传输整条链路优先保持 NV12 (YUV)尽量推迟「YUV→RGB」转换转换越晚CPU 内存拷贝越少、延迟越低。什么时候用 RGBPC 上训练 FCOS/YOLO 数据集OpenCV 绘制检测框、算法调试不支持 YUV 的第三方算法库。什么时候全程保留 NV12 (YUV)正式产品主链路相机采集 → AI 推理 → 视频编码。七、常见踩坑点汇总不要在链路前端把 NV12 强制转 RGB会翻倍带宽占用CPU 负载飙升OpenCV 使用 BGRCNN 使用 RGB二者通道顺序相反NV12 裸流没有文件头播放器必须手动指定分辨率YUV 转换务必确认色域Full / Limited Range否则图像对比度异常NV12 (NV12UV 交错)、NV21 (VU 交错) 极易混淆直接导致色彩颠倒。