前言不管是做 IPC 摄像头、RV1126 嵌入式音视频开发还是日常接触视频编码YUV 都是绕不开的基础知识点。摄像头 Sensor 输出原始画面、VI 采集图像、RGA 图像处理、VENC 编码 H.264/H.265全程数据都是 YUV 格式。很多初学嵌入式的同学分不清 YUV 和 RGB搞不懂 444/422/420 区别本篇用通俗的大白话从原理、优势、采样规则、实际大小计算、存储分类全方位讲解 YUV。一、什么是 YUV我们熟知的 RGB 依靠红绿蓝三原色混合出各种色彩而 YUV 把画面拆分成亮度 Y和色度 U、V两大部分Y亮度分量代表画面明暗灰阶只保留 Y 数据图片就是黑白画面和老式黑白电视画面原理一致U蓝色色差蓝色信息剔除亮度后的数据V红色色差红色信息剔除亮度后的数据。U 和 V 组合决定图像的色彩与饱和度只有同时具备 Y、U、V 三种数据画面才能正常显示彩色。正是基于亮色分离的设计YUV 才有了压缩空间也是音视频领域抛弃 RGB、选用 YUV 的核心原因。二、YUV 对比 RGB 的核心优势RGB 每个像素 R/G/B 各占 1 字节三个分量完整保存无任何压缩空间数据体积庞大。而 YUV 利用人眼对亮度敏感、对色彩细节不敏感的生理特点对 U、V 色度分量做降采样压缩优势集中在三点占用存储空间更小最常用的 YUV420 格式数据体积只有 RGB 的一半左右同等分辨率下能节省一半存储传输带宽更低IPC 摄像头实时推流、网络流媒体传输小体积数据能大幅降低带宽开销适配硬件编码H.264、H.265 编码器原生适配 YUV 数据RV1126 等各类编码芯片只支持 YUV 输入编码RGB 无法直接送入 VENC 编码模块。所以在摄像头采集、图像编码、流媒体行业YUV 是行业通用标准格式。三、三种主流 YUV 采样格式附 1080P 实际大小计算采样格式本质就是Y、U、V 三个分量按照不同比例取值行业主流分为 YUV444、YUV422、YUV420 三种全部以 1Byte (8bit) 存储单个分量数据统一用1920×10801080P分辨率计算单帧大小换算规则1Byte8bit1MB1024×1024Byte。1.YUV4441:1:1 完整采样无压缩采样规则每 4 个 Y 对应 4 个 U、4 个 VY/U/V 分量尺寸完全一致没有任何色度压缩。Y 尺寸w×hU 尺寸w×hV 尺寸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×hU 尺寸w×h/2V 尺寸w×h/2 单帧总字节\(1920×1080×2≈4147200Byte≈3.96MB\) 特点压缩适中、画质损耗小多用于工业相机采集。3.YUV420横竖双 2:1 采样项目最常用NV12 属于此类采样规则横向、纵向都做 2:1 压缩4 个 Y 共用 1 组 UV一行存 YU、下一行存 YVU、V 分量尺寸均为原图 1/4是 RV1126 摄像头默认输出格式。Y 尺寸w×hU 尺寸w×h/4V 尺寸w×h/4 单帧总字节\(1920×1080×1.5≈3110400Byte≈2.97MB\) 特点体积最小、画质肉眼无损耗是 IPC、视频编码首选格式我们做 RV1126 音视频开发全程接触 NV12YUV420。拓展小知识30 帧 / 秒的 1080P NV12 画面每秒数据量≈2.97×30≈89MB选型芯片 DDR 内存时就要参考这个数据。四、YUV 两大存储分类Planar 平面 Packed 打包同样的采样格式还分两种数据存放方式也是实际调试抓 YUV 数据的关键知识点1.Planar平面存储Y、U、V 三块数据分开连续存放先存完整全部 Y 数据再连续存 U最后连续存 V数据分三块。 例YU12YYYY...UUUU...VVVVYV12YYYY...VVVV...UUUU。2.Packed打包存储Y、U、V 数据穿插排列所有像素数据挤在同一段内存里不分三块典型代表YUYV、UYUV。 例YUYV 排列Y0 U0 Y1 V0 Y2 U2 Y3 V2。五、项目高频 YUV 格式汇总RV1126 必记YUV420 系列VI 输出主流NV12项目标配平面存储全 Y→UV 交替排布YYYY U0V0U1V1RV1126 摄像头默认输出NV21平面存储全 Y→VU 交替排布YYYY V0U0V1U1安卓设备常用YU12全 Y→全 U→全 VYV12全 Y→全 V→全 U。YUV422 系列YUYV、UYUV打包交错存储常用于 USB 摄像头YUV422P平面分开存储 Y、U、V。六、总结从原理记Y 管亮度UV 管色彩靠 UV 压缩实现体积优化从选型记444 不用、422 少用、420 (NV12) 项目天天用从调试记RV1126 VI 出 NV12RGA、VENC 全部基于 NV12 处理。后续学习 VI 视频输入、VENC 编码时所有参数配置的分辨率、图像格式全部围绕 NV12/YUV420 展开。
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两大部分Y亮度分量代表画面明暗灰阶只保留 Y 数据图片就是黑白画面和老式黑白电视画面原理一致U蓝色色差蓝色信息剔除亮度后的数据V红色色差红色信息剔除亮度后的数据。U 和 V 组合决定图像的色彩与饱和度只有同时具备 Y、U、V 三种数据画面才能正常显示彩色。正是基于亮色分离的设计YUV 才有了压缩空间也是音视频领域抛弃 RGB、选用 YUV 的核心原因。二、YUV 对比 RGB 的核心优势RGB 每个像素 R/G/B 各占 1 字节三个分量完整保存无任何压缩空间数据体积庞大。而 YUV 利用人眼对亮度敏感、对色彩细节不敏感的生理特点对 U、V 色度分量做降采样压缩优势集中在三点占用存储空间更小最常用的 YUV420 格式数据体积只有 RGB 的一半左右同等分辨率下能节省一半存储传输带宽更低IPC 摄像头实时推流、网络流媒体传输小体积数据能大幅降低带宽开销适配硬件编码H.264、H.265 编码器原生适配 YUV 数据RV1126 等各类编码芯片只支持 YUV 输入编码RGB 无法直接送入 VENC 编码模块。所以在摄像头采集、图像编码、流媒体行业YUV 是行业通用标准格式。三、三种主流 YUV 采样格式附 1080P 实际大小计算采样格式本质就是Y、U、V 三个分量按照不同比例取值行业主流分为 YUV444、YUV422、YUV420 三种全部以 1Byte (8bit) 存储单个分量数据统一用1920×10801080P分辨率计算单帧大小换算规则1Byte8bit1MB1024×1024Byte。1.YUV4441:1:1 完整采样无压缩采样规则每 4 个 Y 对应 4 个 U、4 个 VY/U/V 分量尺寸完全一致没有任何色度压缩。Y 尺寸w×hU 尺寸w×hV 尺寸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×hU 尺寸w×h/2V 尺寸w×h/2 单帧总字节\(1920×1080×2≈4147200Byte≈3.96MB\) 特点压缩适中、画质损耗小多用于工业相机采集。3.YUV420横竖双 2:1 采样项目最常用NV12 属于此类采样规则横向、纵向都做 2:1 压缩4 个 Y 共用 1 组 UV一行存 YU、下一行存 YVU、V 分量尺寸均为原图 1/4是 RV1126 摄像头默认输出格式。Y 尺寸w×hU 尺寸w×h/4V 尺寸w×h/4 单帧总字节\(1920×1080×1.5≈3110400Byte≈2.97MB\) 特点体积最小、画质肉眼无损耗是 IPC、视频编码首选格式我们做 RV1126 音视频开发全程接触 NV12YUV420。拓展小知识30 帧 / 秒的 1080P NV12 画面每秒数据量≈2.97×30≈89MB选型芯片 DDR 内存时就要参考这个数据。四、YUV 两大存储分类Planar 平面 Packed 打包同样的采样格式还分两种数据存放方式也是实际调试抓 YUV 数据的关键知识点1.Planar平面存储Y、U、V 三块数据分开连续存放先存完整全部 Y 数据再连续存 U最后连续存 V数据分三块。 例YU12YYYY...UUUU...VVVVYV12YYYY...VVVV...UUUU。2.Packed打包存储Y、U、V 数据穿插排列所有像素数据挤在同一段内存里不分三块典型代表YUYV、UYUV。 例YUYV 排列Y0 U0 Y1 V0 Y2 U2 Y3 V2。五、项目高频 YUV 格式汇总RV1126 必记YUV420 系列VI 输出主流NV12项目标配平面存储全 Y→UV 交替排布YYYY U0V0U1V1RV1126 摄像头默认输出NV21平面存储全 Y→VU 交替排布YYYY V0U0V1U1安卓设备常用YU12全 Y→全 U→全 VYV12全 Y→全 V→全 U。YUV422 系列YUYV、UYUV打包交错存储常用于 USB 摄像头YUV422P平面分开存储 Y、U、V。六、总结从原理记Y 管亮度UV 管色彩靠 UV 压缩实现体积优化从选型记444 不用、422 少用、420 (NV12) 项目天天用从调试记RV1126 VI 出 NV12RGA、VENC 全部基于 NV12 处理。后续学习 VI 视频输入、VENC 编码时所有参数配置的分辨率、图像格式全部围绕 NV12/YUV420 展开。