1.11 视频格式基础知识

本文介绍了像素的基本概念,包括RGB和YUV两种常见的像素格式,以及位深、帧率、码率等相关概念。RGB格式存储每个像素的红、绿、蓝三个分量,而YUV格式则通过亮度和色度来节省空间,有4:4:4、4:2:2和4:2:0等采样方式。YUV格式在保持图像质量的同时能减小文件大小,适合视频编码。
摘要由CSDN通过智能技术生成

简介

常用的像素的格式有两种:RGB格式YUV格式,像素的格式定义了像素在内存中的编码方式。在介绍这两种格式的信息之前,我们连接一些常用名词:

  • 像素:像素是一个图片的基本单位。单位px是picture element的缩写,所以像素有“图像元素”之意。
  • 分辨率:是指图像的大小或尺寸,比如1920*1080(行周期数*场周期数)。
  • 位深:是指在记录数字图像颜色时,计算机实际上是用每个像素所需要的位深来表示的,比如红色、绿色、蓝色的分量用8bit。
  • 帧率:在1秒钟时间里传输的图片的帧数,也可以理解为图像处理器每秒中能够刷新的次数,比如25fps每秒中有25张图片(帧率通常也称为刷新率)。
  • 码率:视频文件在单位时间内使用的数据流量,比如1Mbps。(码率就是通常我们描述速率)
  • Stride:指在内存中每行像素的所占的空间大小,目的是为了实现内存对齐,每行像素在内存中所占的空间并不一定是图像的宽度。

频率的计算公式为:

频率 = 行周期数 * 场周期数 *帧率

速率的计算公式:

速率 = 频率 * 带宽

以常见的1080P、30fps的视频的时序图为例,主要由三个信号组成H、V、DE。其有效像素的分辨率为1920x1080,算上消隐期,其像素分辨率为2200x1125,为HD-SDI格式,其频率和速率的计算公式为:

频 率 = 2200 × 1125 × 30 = 74.25 M H z

速率=74.25×20=1.485Gbit/s

2 RGB格式

RGB格式有三个通道R、G、B,分别对应红色、绿色、蓝色,由这三个分量直接决定颜色。有些图片会附件一个一个Alpha通道,用于表示透明度,即四个分量共同控制颜色(RGBA)。

一张1920*1080的图片,具有2073600个像素点,如果采用RBG的格式进行存储,其占用的空间大小为:

1920*1080*3/1024/1024 = 5.93MB

如采用RBGA的格式进行存储,其占用的空间大小为:

1920*1080*4/1024/1024 = 7.91MB

3 YUV格式

3.1 YUV的编码格式

相比于RGB格式,YUV格式最大的好处是在保持图像质量降低不明显的前提下,减小文件大小。YUV的编码合适采用亮度和色度来指定像素的颜色,其中Y表示亮度,U和V表示色度。对于 YUV 图像来说,并不是每个像素点都需要包含了 Y、U、V 三个分量,根据不同的采样格式,可以每个 Y 分量都对应自己的 UV 分量,也可以几个 Y 分量共用 UV 分量。

 3.2 YUV的存储格式

YUV的存储格式可分为两种:平面格式(Plannr紧凑模式(Packed

  • 平面格式(Plannr):对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随是存储所有像素点的V,或者是先V后U。
  • 紧凑模式(Packed):对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。比如YUV420P,其中P表示紧凑,YUV420SP其中的SP表示“半紧凑”。

其中,p表示逐行采样,i表示隔行采样。

3.3 YUV的采样方式

YUV主流的采样方式有三种:YUV4:4:4YUV4:2:2YUV4:2:0

1 YUV4:4:4格式

YUV4:4:4这种格式占用的空间最大,每个像素都有一个Y分量、U分量、V分量。YUV4:4:4大小和RGB存储的大小是一样的,为3个字节。根据U和V的顺序不同,又有两种不同的格式。YUV4:4:4每个像素包含一个Y分量和一个UV分量。

每个像素的占用的空间:

1byte(Y) + 1byte(U) + 1byte(V) = 3 byte

单帧占用空间:

FrameSize = FrameWith * FrameWith * 3(byte

  • 单个像素

  •  2*2个像素

2 YUV4:2:2格式

YUV4:2:2是每两个Y分量共用一个UV分量,所以一个像素占用两个字节,根据存储顺序不同分为四种不同格式。

每个像素占用空间为:

1 byte(Y) + 1/2 byte(U) + 1/2 byte(V) = 2 byte

单帧占用空间:

FrameSize = FrameWith * FrameWith * 2(byte

  • 2个像素

  • 4*4个像素

3 YUV4:2:0格式

YUV4:2:0是每四个Y分量共用一个UV分量,所以一个像素占用1.5个字节,根据存储顺序不同分为四种不同格式。

每个像素占用空间为:

1 byte(Y) + 1/4 byte(U) + 1/4 byte(V) = 1.5 byte

单帧占用空间:

FrameSize = FrameWith * FrameWith * 1.5(byte

  • 4个像素

  • 4*4个像素

4 RGB与YUE的转换

YUV像素格式来源于RGB像素格式,通过公式运算,YUV三分量可以还原出RGBYUVRGB的公式如下:

  • R = Y + 1.403V
  • G = Y – 0.344U – 0.714V
  • B = Y + 1.770U

一般,将RGBYUV的范围均限制在[0,255]间,则有如下转换公式:

  • R = Y + 1.403(V-128)
  • G = Y – 0.344(U -128)– 0.714(V-128)
  • B = Y + 1.770(U-128)

5 故障分析

  • 绿屏

解码失败时Y、U、V的参数均为零,此时:

  1. R = 0+ 1.403(0-128) = -179.584
  2. G = 0 – 0.344(0 -128)– 0.714(0-128) = 135.424
  3. B = 0 + 1.770(0-128) = -226.56

由于R、G、B的范围[0,255],则R=0,G=135.424,B=0,所以显示器呈现绿色。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯苦 Coffee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值