数据压缩实验八|H.264编解码实验

H.264编解码实验

实验要求

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

实验准备

一些知识点(参照文件:JM Reference Software Manual (JVT-AE010))
1.调试
在这里插入图片描述
2.关于YUV格式在这里插入图片描述
3.一些参数说明
在这里插入图片描述
在这里插入图片描述

实验过程

1.将 两个264文件进行解码,得到相应的YUV文件

jm18.6文件夹中找到bin文件夹中的decoder.cfg修改一些参数

在这里插入图片描述
这里改的是highway_qcif.264文件另一个demo.264同理
在这里插入图片描述
在这里插入图片描述
然后在jm18.6中的lencode_vc10进行如下调试
在这里插入图片描述
再运行该程序,会得到相应的YUV文件
2.将两个视频序列编码为.264文件
两个得到的YUV文件进行编码,大体上一样只是长和宽不太一样
这里以highway_qcif_dec.yuv进行举例

GOP长度及形状编码:GOP/2B 码率:1000kbps

InputFile             = "highway_qcif_dec.yuv"
FramesToBeEncoded     = 30
SourceWidth           = 176
SourceHeight          = 144
OutputWidth           = 176
OutputHeight          = 144
TraceFile             = "trace_high1.txt"     
ReconFile             = "high1_rec.yuv"       
OutputFile            = "high1.264"           
StatsFile             = "stats_high1.dat"
PrimaryGOPLength      = 15
IDRPeriod             = 15
NumberBFrames         = 2
HierarchicalCoding    = 0  
FramesToBeEncoded     = 30
RateControlEnable     = 1     
Bitrate               = 1000000
RCUpdateMode          = 2

GOP结构改下面这两个,其实只需要改IDRPeriod = 15的数据,但两个一样也没事

PrimaryGOPLength      = 15
IDRPeriod             = 15

下面,如果是demo_dec.yuv文件数字要改为下面

SourceWidth           = 854
SourceHeight          = 480
OutputWidth           = 864
OutputHeight          = 480

B帧改下面这个

NumberBFrames         = 2

I帧改下面这个
(全I帧为1)

RCUpdateMode          = 2

然后改一下调试
在这里插入图片描述

运行结果如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结成这个表格,方便画图,上面结果也是按照这个程序来的
在这里插入图片描述

在这里插入图片描述
从上面的曲线图可以看出全I帧的PSNR较小,改变GOP结构PSNR区别不大
固定码率1000kbps
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
率失真图
在这里插入图片描述
(ps:横坐标是码率,打错了)

可以看到:当GOP/帧类型固定,改变码率,可以发现码率越大,YPSNR越大。
3.用播放器观看所生成码流的质量
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
放大看感觉都差不多,都比较不清晰,看码流的话,GOP结构和帧类型一定,只有IBP帧的码率改变,帧类型和数量不会改变。

总结

此次实验让我了解了H.246文件编解码的过程,通过调试更为清晰知道它们之间的关系,收获颇丰。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值