【数据压缩】H264编码器JM的编码实验,绘制率失真曲线

本文探讨了在H.264编解码中,通过调整固定码率和GOP长度对视频质量的影响,包括不同编码模式和运动矢量分析。实验发现,码率与GOP对PSNR有显著影响,100kbps已能满足低分辨率视频编码,但建议使用高分辨率和更大测试间隔以获得更精确结论。
摘要由CSDN通过智能技术生成

实验目的

将自行选择或老师给的两个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,…
用码流分析软件检查所生成的码流中各种编码模式和运动矢量等信息。
用播放器观看所生成码流的质量,生成率失真曲线

实验原理

H.264编解码框图

编码器:
在这里插入图片描述
解码器:
在这里插入图片描述

实验内容

准备文件

运用两个mp4文件,转换为.264文件
在线转换网址:
https://www.convertfiles.com/convert/video/

生成结果:

在这里插入图片描述修改decoder.cfg

InputFile             = "nxn.264"       # H.264/AVC coded bitstream
OutputFile            = "nxn.yuv"   # Output file, YUV/RGB

解码264文件

运行命令:ldecod.exe -d decoder.cfg 可以解码文件
在这里插入图片描述
得到yuv文件
在这里插入图片描述

编码

固定码率 不同GOP和形状编码

配置

固定码率:1000000b/s
GOP长度和形象参数配置:

编号
1GOP=15,2B帧
2GOP=12,2B帧
3GOP=9,2B帧
4GOP=4,1B帧
5GOP=12,无B帧
6GOP=1,全I帧

如以下参数配置:

  • GOP=15
  • 2B帧

则修改encoder.cfg如下:

# Files
InputFile             = "nxn.yuv"       # Input sequence
SourceWidth           = 640    # Source frame width
SourceHeight          = 360    # Source frame height
SourceResize          = 0      # Resize source size for output
OutputWidth           = 640    # Output frame width
OutputHeight          = 360    # Output frame height
FramesToBeEncoded     = 30      # Number of frames to be coded
ReconFile             = "use1_reconstruct.yuv"       # Reconstruction YUV file
OutputFile            = "use1_1.264"           # Bitstream
# Encoder Control
IntraPeriod           = 15   # Period of I-pictures   (0=only first)
# B Slices
NumberBFrames          = 2  # Number of B coded frames inserted (0=not used)

测试

运行截图如下:
在这里插入图片描述
分别对应上述编码方式,可以看到,信噪比都在30以上,说明在相同码率(1000000b/s)的情况下,编码效果都还行,相比来说,只有GOP长度最短的第四次编码获得了最好的效果,PSNR>40。

相同GOP长度、形状、不同码率

配置

相同GOP配置。取上一部分中的代码中的配置,即GOP=15,2B帧
修改码率配置主要是要修代码中的:

RateControlEnable       = 1     # 0 Disable, 1 Enable
Bitrate                 = 1000000 # Bitrate(bps)

码率配置测试如下:

编号
1800kb/s:
2600kb/s
3400kb/s
4200kb/s
5100kb/s
测试结果

得到PSNR如下
在这里插入图片描述
从主观上可以判断,随着码率的减少 信噪比逐渐降低

率失真曲线

根据不同码率编码的测试结果,横坐标为码率,纵坐标为峰值信噪比PSNR,可以做出率失真曲线:
在这里插入图片描述

总结

  • 码率和GOP都会对编码造成影响
  • 虽然率失真曲线存在差异,PSNR数值也有不同,但是在主观感受上不同码率差异不大,也许是由于为了处理快捷,视频分辨率太低,以至于100kbps足以编码
  • 应当采用更大的测试间隔或更高分辨率的视频测试
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值