基础知识"/>
1.11 视频格式基础知识
1 简介
常用的像素的格式有两种: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:4、YUV4:2:2、YUV4: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三分量可以还原出RGB,YUV转RGB的公式如下:
- R = Y + 1.403V
- G = Y – 0.344U – 0.714V
- B = Y + 1.770U
一般,将RGB和YUV的范围均限制在[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的参数均为零,此时:
- R = 0+ 1.403(0-128) = -179.584
- G = 0 – 0.344(0 -128)– 0.714(0-128) = 135.424
- B = 0 + 1.770(0-128) = -226.56
由于R、G、B的范围[0,255],则R=0,G=135.424,B=0,所以显示器呈现绿色。
更多推荐
1.11 视频格式基础知识
发布评论