news 2026/5/23 16:35:37

YUV原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YUV原理

YUV介绍

  • YUV是一种常见的视频像素格式,经常用在视频编解码上面,YUV分别由Y分量和U、V分量(红色投影Cr)组成。
  • Y分量指的是亮度分量,也就是我们经常说的灰阶值,相当于一副灰色的图像。
  • U分量和V分量表示的是色度分量,它的作用就是用于影像的色彩以及饱和度,常用于指定像素的颜色,U分量是图像蓝色部分去掉亮度Y,V分量是图像红色部分去掉亮度Y。换言之如果一副图像只有Y分量,没有UV分量就相当于我们看黑白电视一样,没有颜色,所以现在大部分彩色电视都引用了YUV像素格式。

优势

YUV和RGB是目前最流行的两套颜色格式,但是在我们音视频编解码和网络传输的时候基本上都会用YUV格式,而非RGB格式。这是由于YUV在网络传输的时候只需要占用很少的带宽进行传输,这能够大大节约存储空间、并且提高传输效率。比方说,使用YUV420P格式进行采样能够比RGB节约超过1/2的存储空间。

YUV采样格式

现在主流的YUV采样方式一般分三种分别是:YUV444、YUV422、YUV420。

YUV444


YUV444采样,相当于Y、U、V三个分量采用相同的采样比例进行采样。所以用YUV444采样生成的图像,YUV三个分量的信息是完整的,都是8bit,也就是一个字节。这里的YUV444顾名思义就是4个Y分量、4个U分量、4个V分量。Y分量大小:w * h;U分量大小:w * h;V分量大小:w * h。所以,用YUV444格式去采样一个1920 * 1080的图像的时候,得到的大小等于:(1920 * 1080 * 8 + 1920 * 1080 * 8 + 1920 * 1080 * 8)/8/1024/1024 ~= 5.94M。从计算公式可以看出,YUV444每一帧图像大小和RGB差不多,所以在真正开发中很少会用到。

YUV422


YUV422采样,相当于U、V分量是以Y分量采样的一半进行采样,Y分量和UV分量按照2:1的比例进行采样(也可以理解为两个Y分量对应一个UV分量)。就比方说,若一个水平方向有8个像素点,那么采样了8个Y分量,那么UV分量只有4个。这里采样用的是4个Y分量、2个U分量、2个V分量进行采样。Y分量大小:w * h;U分量:w * h /2;V分量:w * h /2。所以,用YUV422采样的大小是:(1920 * 1080 * 8 + (1920 * 1080)/2 * 8 + (1920 * 1080)/2 * 8)/8/1024/1024 ~= 3.96M。

YUV420


YUV420采样,相当于每一行扫描的时候只扫描一种色度分量(U分量或者V分量),和Y分量按照2:1的方式进行采样(也可以理解为四个Y分量对应一个UV分量)。就比方说,在第一行扫描的时候,YV分量按照2:1的方式进行采样,那么YU分量也是用2:1的方式采样,所以对于每个色度分量来说,它的水平方向和垂直方向的采样比都是2:1。这里采用的是4个Y分量、2个U分量、0个V分量采集,而下一行的则是用4个Y分量、0个U分量、2个V分量采样。所以,Y分量大小:w * h;U分量:w * h /4; V分量:w * h/4。所以用YUV420采集一个1920 * 1080的图像大小:(1920 * 1080 * 8 + (1920 * 1080)/4 * 8 + (1920 * 1080)/4 * 8)/8/1024/1024 ~=2.97M 。可以看到用YUV420采样的图像比YUV444和YUV422都节省空间,因此它是目前最主流的采样格式。

YUV存储格式

YUV存储一般分为两大类,一种是Planar,另外一种是Packed。

Planar存储格式

Planar指的是平面格式:它的特点是先连续存储所有的Y像素点,然后再存储所有的U像素点,最后存储所有的V像素点。换言之它分三个数组存储三个分量,比方说data[0]存储所有的Y分量、data[1]存储所有的U分量、data[2]存储所有的V分量。

Packed存储格式

Packed指的是打包格式:它的特点是所有像素点的YUV分量都是连续存储,并且所有的数据都存储在data[0]里面。所以根据采样方式的不同和存储方式的不同,在实际开发中就有了多种YUV格式,主要是针对YUV420和YUV422

YUV420采样格式的打包格式:NV12、NV21、YV12、YU12

  • NV12:这种方式使用的是平面格式来存储数据,换言之就是先存储Y分量、 然后UV交替存储。 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 U0 V0…
  • NV21:这种方式使用的是平面格式来存储数据,换言之就是先存储Y分量、 然后VU交替存储。Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 V0 U0…
  • YV12:这种方式使用的是平面格式来存储数据,换言之就是先存储Y分量、 然后存V分量、 最后存U分量,Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 V0 U0…
  • YU12:这种方式使用的是平面格式来存储数据,换言之就是先存储Y分量、 然后存U分量、 最后存V分量,Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 U0 V0…

YUV422采样格式的打包格式:YUYV、UYUV、YUV422P

  • YUYV:采用的是打包方式存储,它的特点是每个像素点采用Y分量存储,但是每隔一个像素点用UV分量采样
    Y0 U0 Y1 V0 Y2 U2 Y3 V2
  • UYVY:采用的是打包方式存储,它的特点是每个像素点采用U分量再采样Y分量
    U0 Y0 V0 Y1 U2 Y2 V2 Y3
  • YUV422P:采用的是平面方式存储,它的特点是先存储所有的Y分量、然后在存储U分量、最后存储V分量Y0
    Y0 Y1 Y2 Y3 U0 U1 V0 V1
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 16:35:11

通过Taotoken CLI工具一键配置团队统一的AI模型开发环境

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置团队统一的AI模型开发环境 在团队协作开发中,为每个项目、每位成员单独配置大模型API密钥…

作者头像 李华
网站建设 2026/5/23 16:31:14

洛雪音乐助手:跨平台音乐聚合播放器的完全使用指南

洛雪音乐助手:跨平台音乐聚合播放器的完全使用指南 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop 洛雪音乐助手是一款基于Electron和Vue 3开发的免费开源音乐播放软件…

作者头像 李华
网站建设 2026/5/23 16:31:13

开源画中画工具:3步实现视频悬浮播放的极致效率体验

开源画中画工具:3步实现视频悬浮播放的极致效率体验 【免费下载链接】picture-in-picture-chrome-extension 项目地址: https://gitcode.com/gh_mirrors/pi/picture-in-picture-chrome-extension 你是否经常陷入这样的困境?→ 在线会议中需要同时…

作者头像 李华
网站建设 2026/5/23 16:28:32

使用Taotoken CLI工具一键配置团队开发环境中的多模型密钥

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置团队开发环境中的多模型密钥 在团队协作开发中,统一管理大模型API密钥和接入端点是一项常…

作者头像 李华
网站建设 2026/5/23 16:27:14

无人机与地面车辆协同系统设计与实践

1. 无人机与地面车辆协同系统概述在复杂环境下的巡检任务中,无人机(UAV)和无人地面车辆(UGV)各自存在明显的局限性。无人机虽然具有空中机动优势,但受限于电池容量,通常只能维持20-30分钟的飞行时间;而地面车辆虽然续航能力强&…

作者头像 李华