一.实验要求
第一部分:
1.选择一个.mp4或者.264文件。
2.在码流分析仪软件中打开该文件,从几个层次进行分析:
1)分析SPS和PPS里都包含哪些主要的信息,给出参数值。(例如分辨率、帧率、GOP结构等等)
2)以一个GOP为例,分析如下信息:
*每个图像帧的类型及所用的编码比特数、QP值;并以图像帧号为横坐标、每帧所用比特数为纵坐标画出曲线图;以图像帧号为横坐标、每帧所用QP为纵坐标画出曲线图。
*以第一个I帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
*以第一个P帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。
*以某一个B帧作为分析对象,基于该帧图像的空间和时间特性,分析每个宏块所采用的编码类型及其比例。
第二部分:
将自行选择或老师给的两个264文件进行解码,得到相应的YUV文件 将上述两个视频序列编码为.264文件 固定码率,以不同的GOP长度及形状编码 GOP=15,2B帧;GOP=12,2B帧,GOP=9,2B帧 GOP=4,1B帧;GOP=12,无B帧;GOP=1,全I帧 相同的GOP长度及形状,不同的码率 例:1000kb/s, 800kb/s,400kb/s,… 用码流分析软件检查所生成的码流中各种编码模式和运动矢量等信息 用播放器观看所生成码流的质量 生成率失真曲线
二.实验原理
控制变量,通过率失真曲线判断不同条件下不同编码器的优劣
三.实验过程
1.1分析SPS和PPS给出参数值
SPS:
图像宽度:pic_width_in_mbs_minus1(观察图像属性可知,实际图像宽度的计算方法应为(pic_width_in_mbs_minus1+1)*16
图像高度:pic_height_in_map_units_minus1(观察图像属性可知,实际图像宽度的计算方法应为(pic_height_in_map_units_minus1+1)*16
PPS:
此帧中的slice 数:num_slice_groups_minus1+1
MB info:
Slice Type标识了该帧的类型:I帧
QP为量化步长:19
ESEye软件:
将当前帧定位到第二个I帧,则可以观察到一个GOP含有100帧,红、蓝、绿分别表示I、P、B帧,存在帧重排现象。
图像的宽度、高度、帧率也可通过ESEye进行观察。
统计量化步长(QP)以及比特数:
由于从1开始进行描点,所以整体标号错了一个
1.2.分析第一个I帧
可看出大部分为16*16的块,编码方式为I
1.3.分析第一个P帧
可看出大部分为16*16和16*8的块,编码方式为P的较多,为I的其次。
1.4.分析第一个B帧
可看出大部分为16*16的块,编码类型大部分为B,有少量为I
2.根据率失真曲线判断编码器优劣
首先将选取的264文件通过解码软件进行解码得到相应的yuv文件,使用解码所得的yuv文件作为编码器输入的yuv文件进行测试。
*固定码率:
修改编码器输入的文件名及编码的帧数(改为30,刚好为1s方便观察)
修改输入输出的文件的长宽
固定码率,修改RateControlEnable=1,将Bitrate固定为45020,通过设置IDRPeriod设置GOP的长度,通过设置NumberBFrame设置B帧的数量
GOP=15,2B帧:
可读出编码基本信息
GOP=12,2B帧:
GOP=9,2B帧:
GOP=4,1B帧:
GOP=12,无B帧:
GOP=2,全I帧:
绘制率失真曲线:
*固定GOP长度及形状(固定为GOP长度为15,2B帧):
3523kbps:
1805kbps:
1000kbps:
106kbps:
由于测试很多bitrate参数出来的psnr值都相同,故记录运行结果不同的几个真实bitrate值,由于分布不均,excel画出来的率失真曲线没有太大的观测价值
四.实验结论
固定码率的情况下,不同的GOP长度及形状psnr值会不同,固定GOP长度和形状改变码率psnr值也有所变化,码率越高psnr越大,效果越好。