数据压缩实验【第七次】

H.264编码实验

一、实验要求

在这里插入图片描述

二、实验流程

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

修改decoder.cfg文件中的输入文件和输出文件
在这里插入图片描述

2.将上述视频序列编码为.264文件

本实验以解码器生成的demo.yuv文件为输入,
(1)固定码率为800kbps,以不同的GOP长度及形状编码
GOP=15,2B帧,1000kb/s;GOP=12,2B帧,1000kb/s;GOP=9,2B帧,1000kb/s
GOP=4,1B帧,1000kb/s;GOP=12,无B帧,1000kb/s;GOP=1,全I帧,1000kb/s
编码器需要修改的参数如下(以GOP=15,2B帧,1000kb/s为例):

...
InputFile             = "demo.yuv"       # Input sequence
FramesToBeEncoded     = 60     # Number of frames to be coded
FrameRate             = 30.0   # Frame Rate per second (0.1-100.0)
SourceWidth           = 320   # Source frame width
SourceHeight          = 176    # Source frame height
OutputWidth           = 320    # Output frame width
OutputHeight          = 176    # Output frame height
IntraPeriod           = 15  # Period of I-pictures   (0=only first)
NumberBFrames         = 2   # Number of B coded frames inserted (0=not used)
RateControlEnable       = 1      # 0 Disable, 1 Enable
Bitrate                 = 10000 # Bitrate(bps)
...

实验结果:
在这里插入图片描述

3.用码流分析软件检查所生成的码流中各种编码模式和运动矢量等信息

在这里插入图片描述

I帧的编码模式和运动矢量:
在这里插入图片描述
从图中,我们可以看到,宏块的类型MB Type为I_4X4宏块是I类型的宏块。由于是I帧的原因,运动矢量并不存在。从上图中发现也确实如此。

P帧的编码模式和运动矢量:
在这里插入图片描述
在这里插入图片描述
由分析软件可知,Slice Type为P Slice,即该帧为前向预测帧(P帧),所以运动矢量应该是只有前向预测所得的运动矢量,从图中可以看出也确实如此,只有前向预测的绿色运动矢量。
在这里插入图片描述
由分析软件可知,Slice_Type为B Slice,即该帧为双向预测帧(B帧),所以运动矢量应该有两种,一种是前向预测所得,一种是后向预测所得,拥有两种不同的运动矢量。

4.生成率失真曲线

在播放器中码流的表现来看,在前后两帧画面相差大的情况下,运动矢量也会相应增多。

GOPBITRATEY-PSNR
15/2B1077 998 39940.773 40.453 37.772
12/2B932 834 41539.541 39.371 3.355
12/0B1001 807 39638.172 38.172 36.945
9/2B992 805 40035.871 34.872 32.401

在这里插入图片描述

由率失真曲线可知,GOP组结构相同时,比特率越大,编码后文件失真越小;比特率相同时,GOP越短,编码后文件失真越大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值