1.实验要求
2.实验结果
一.6.17
(1)分析SPS和PPS里都包含哪些主要的信息,给出参数值。(例如分辨率、帧率、GOP结构等等)
(感谢:https://blog.csdn.net/weixin_44874766/article/details/117993932)
根据下图可计算出参数值:
计算得出:(上图倒数第一,二行)
宽:1654=864
高:1630=480
分辨率:864480
帧率:29.97帧/秒*
只有I帧和P帧,没有B帧。
(2)每个图像帧的类型及所用的编码比特数、QP值;并以图像帧号为横坐标、每帧所用比特数为纵坐标画出曲线图;以图像帧号为横坐标、每帧所用QP为纵坐标画出曲线图。
(3)以第一个I帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
该帧每个宏块所用的平均编码比特数为166.599bits,QP(量化参数)值为26.000。
I帧的空间特性:使用帧内编码。由于该帧没有参考帧,所以没有使用到运动矢量。
该帧所有的宏块都是帧内预测,共799个
(4)以第一个p帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
空间特性:支持前向预测
使用软件提供的统计功能,我们能够统计出该p帧内不同的编码的宏块类型:
skip块的数量达到了1249个,但是平均所占的比特数仅仅0.76bits,355个 16*16的宏块占了34.97bits.
较小比例的宏块占有了大部分的比特,其余只需要用前帧进行预测即可得到。
图中的运动向量非常不明显
(5)以第一个b帧作为分析对象,基于该帧图像的空间特性,分析每个宏块所采用的编码类型及其比例。
由于没有b帧,因此不作分析
二.6.24
1.选择两个264文件进行解码,得到相应的YUV文件
参考JM使用手册,将JM18.6下的ldecod.exe、decoder.cfg与要处理的.264文件放在同一目录下,利用cmd指令指定解码文件与解码得到的yuv文件名,完成解码
修改decoder.cfg:
结果:成功解码:
2.固定码率,通过设置IDRPeriod设置GOP的长度,通过设置NumberBFrame设置B帧的数量
固定GOP长度及形状
encoder.cfg 文件中的P帧
控制码率
运行结果
率失真曲线
实验结论:固定码率的情况下,不同的GOP长度及形状psnr值会不同,固定GOP长度和形状改变码率psnr值也有所变化,码率越高psnr越大,效果越好。
参考文章:
https://blog.csdn.net/weixin_44874766/article/details/117993932
https://blog.csdn.net/zsy_cuc_18/article/details/118308267?spm=1001.2014.3001.5501
https://blog.csdn.net/weixin_44221452/article/details/118000007?spm=1001.2014.3001.5501