音视频开发—视频相关概念:YUV与RGB

文章目录

YUV相关概念

YUV 是一种颜色编码格式,用于视频和图像处理。它与 RGB(红、绿、蓝)颜色模型不同,将颜色信息分为亮度(Y)和色度(U 和 V)分量。YUV 格式主要用于模拟视频和数字视频系统。

组成部分

  1. Y(亮度)

    • 代表图像的明暗信息。
    • 不包含颜色信息,仅表示图像的亮度。
  2. U 和 V(色度)

    • U(蓝色色度)和 V(红色色度)代表颜色信息。
    • 这些分量描述颜色的饱和度和色调。

优点

  • 带宽效率:通过分离亮度和色度分量,可以在压缩视频时减少带宽需求,因为人眼对亮度的变化比对色度的变化更敏感。
  • 兼容性:YUV 格式与黑白电视兼容,因为黑白电视只读取亮度信息。

常见的 YUV 格式

  • YUV 4:4:4:每个像素都有完整的亮度和色度信息。

  • YUV 4:2:2 :色度分量的水平分辨率是亮度分量的一半。

  • YUV 4:2:0:色度分量的水平和垂直分辨率都是亮度分量的一半。

    4:2:0 表示在一个 2x2 的像素块中,亮度(Y)分量有 4 个样本,而色度(U 和 V)分量各有 1 个样本。这意味着色度信息的水平和垂直分辨率都是亮度分辨率的一半。

YUV 格式广泛应用于视频压缩、电视广播和各种视频处理任务中。

RGB 和 YUV 是两种不同的颜色编码方式,各有其特定的应用场景和优缺点。它们之间的关系可以通过颜色空间转换来理解。

数据量的计算

YUV = Y*1.5

在 YUV 4:2:0 采样格式下,YUV 数据量是亮度(Y)数据量的 1.5 倍。这是因为:

  1. 亮度数据:每个像素都有一个 Y 分量。
  2. 色度数据:每 4 个像素共享 1 个 U 分量和 1 个 V 分量(在一个 2x2 像素块中)。

假设一个图像有 N 个像素:

  • 亮度(Y)数据量:N 个样本。
  • 色度(U 和 V)数据量:每个色度分量有 N/4 个样本,因此两个色度分量共计 N/2 个样本。

总的数据量 = Y 数据量 + U 数据量 + V 数据量 = N + N/4 + N/4 = N + N/2 = 1.5N

因此,YUV 数据量是亮度(Y)数据量的 1.5 倍。

YUV = RGB / 2

这个表达式表明,在数据量上,YUV 4:2:0 格式比 RGB 格式节省一半的数据量。这是因为:

  • RGB 格式:每个像素有 3 个分量(R、G、B),总数据量是 3N(N 是像素数)。
  • YUV 4:2:0 格式:总数据量是 1.5N(如上所述)。

将 YUV 数据量与 RGB 数据量比较:YUV = RGB / 2

这意味着 YUV 4:2:0 格式的数据量是 RGB 格式数据量的一半。

这两个表达式说明了 YUV 4:2:0 在视频压缩中的优势,即通过减少色度数据量,显著降低了总数据量,而不显著影响视觉质量。

YUV4:2:0 存储格式

是安装分层存储的,先按照Y分量存储,最后读取UV相关的,兼容性比较好,黑白电视直接读取,前四行即可。YUV的关系为 4个Y 对应一个U 一个V

平面模式(planar):
  1. Y 平面:首先存储所有像素的亮度数据(Y 分量)。
  2. U 平面:接着存储所有像素的色度数据(U 分量),每个色度值对应 2x2 像素块。
  3. V 平面:最后存储所有像素的色度数据(V 分量),每个色度值对应 2x2 像素块。

假设图像尺寸为 W×H,则:

  • Y 平面大小:W×H
  • U 平面大小:W/2×H/2
  • V 平面大小:W/2×H/2

总数据量为:W×H + (W×H)/4 + (W×H)/4 = W×H × 1.5

I420 : YYYYYYYY UU VV ------------>YUV420P

YV12: YYYYYYYY VV UU------------>YUV420P

打包模式(packed)

在某些情况下,色度分量 U 和 V 可以交织存储,以减少存取操作的复杂性。

在这种模式下,U 和 V 的存储大小与平面模式相同,但存储顺序不同。

常见的格式有NV12 和NV21

NV12: YYYYYYYY UVUV ---------->YUV420SP

NV21: YYYYYYYY VUVU ---------->YUV420SP

RGB 和 YUV 的定义

  • RGB(红、绿、蓝):

    • 一种加色法颜色模型,通过混合红色、绿色和蓝色光来创建各种颜色。
    • 常用于显示器、相机和其他捕获设备。
  • YUV(亮度、色度 - U 和 V):

    • 将颜色信息分为亮度(Y)和两个色度分量(U 和 V)。
    • 主要用于视频压缩和传输。

关系与转换

RGB 到 YUV 的转换

RGB 转 YUV 可以通过以下数学公式实现:

Y = 0.299R + 0.587G + 0.114B

U = 0.492 (B - Y)

V = 0.877 (R - Y)

这些公式表示如何从 RGB 值计算 YUV 值。

YUV 到 RGB 的转换

从 YUV 转回 RGB 可以通过以下公式:

R = Y + 1.140V

G = Y - 0.395U - 0.581V

B = Y + 2.032U

使用场景

  • RGB:用于需要精确颜色表示的应用,如计算机图形学、图像编辑和显示设备。
  • YUV:用于视频压缩和传输,因其更有效的带宽利用和与模拟电视的兼容性。

优缺点

  • RGB

    • 优点:直观,易于理解和操作。
    • 缺点:不适合视频压缩,带宽需求较高。
  • YUV

    • 优点:更适合视频压缩,带宽效率高,兼容性好。
    • 缺点:需要转换过程,色彩操作较复杂。

总的来说,RGB 和 YUV 各有优势,具体选择取决于应用需求和具体场景。

相关推荐
EasyDSS3 小时前
WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
人工智能·音视频
Eric.Lee20214 小时前
python opencv 将不同shape尺寸的图片制作video视频
python·opencv·音视频
灰色人生qwer13 小时前
使用WebSocket实现跨多个服务器传输音频及实时语音识别
websocket·音视频·实时传输
小鱼仙官16 小时前
Ubuntu 编译SRS和ZLMediaKit用于视频推拉流
音视频
摆烂仙君17 小时前
视频分辨率增强与自动补帧
音视频
海姐软件测试1 天前
抖音视频上传功能测试全维度拆解——从基础功能到隐藏缺陷的深度挖掘
功能测试·音视频
DogDaoDao1 天前
视频图像压缩领域中 DCT 的 DC 系数和 AC 系数详解
图像处理·音视频·视频编解码·dct·图像压缩·变换编码·离散余弦变换
fydw_7151 天前
音频生成技术的前沿探索:从语音合成到智能Podcast
人工智能·音视频·语音识别
18538162800余。1 天前
碰一碰发视频源码搭建,支持OEM
音视频
macken99991 天前
音频分类的学习
人工智能·深度学习·学习·计算机视觉·音视频