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

H.264编码实验

码流分析仪分析.264文件

本次实验以编码器输出的highway_qcif_enc.264文件为例分析。

SPS与PPS主要信息

序列参数集SPS(Sequence parameter set): 说明的是某一段视频序列的编码特性。profile_idc,level_idc两个语法元素说明该段视频序列遵循的是H.264/AVC标准的哪一种配置,以指导解码端调用合适的解码器进行解码。pic_order_cnt_type等语法元素说明该段视频序列中每帧图像的记数方法,pic_ widthes_in_mbs_minus1和pic_ height_in_map_units_minus1这两个语法元素说明该段视频序列中图像帧的长度和宽度。各段视频序列的编码特性可能不同,因此序列参数集的内容也就不会相同,seq_parameter_set_id语法元素用来区分不同的序列参数集,以方便解码端进行参考。
在这里插入图片描述
由上图可得,该视频序列只有一个序列参数集,其序号为0。
profile_idc=100,level_idc=40,pic_order_cnt_type=0,pic_ widthes_in_mbs_minus1=10,pic_ height_in_map_units_minus1=8,seq_parameter_set_id=0。
宽为16x(10+1)=176,高为16x(8+1)=144,分辨率为176x144

图像参数集PPS(Picture parameter set): 说明的是某个图像帧的编码特性。 包括编码该图像帧所采用的熵编码模式(CAVLC或者CABAC),所使用的参考帧的数目,以及对该图像帧的亮度和色度残差进行量化时所采用的量化参数值等。图像参数集中最主要的部分是该图像帧的Slice Group划分方式的表示(用于FMO),其中num_slice_groups_minus1语法元素说明了该图像帧中Slice Group的数目。同序列参数集的情况一样,每个图像帧的编码特性可能各不相同,也就需要一个pic_parameter_set_id来区分不同的图像参数集。
在这里插入图片描述
在这里插入图片描述
由上图可得,该视频序列有三个图像参数集,其序号分别为0,1,2。
以第一个图像参数集为例,num_slice_groups_minus1=0,pic_parameter_set_id=0。
该图像帧中Slice Group的数目为1,该图像参数集序号为0。

GOP结构及帧率

在这里插入图片描述
由上图可得,其GOP结构为IBBPBBPBB,长度为9。帧率为30帧/秒。

以一个GOP为例,分析信息

本次实验以该视频序列的第五个GOP(GOP4)为例分析。

每个图像帧的类型及所用的编码比特数、QP值

在这里插入图片描述

该视频序列单个图像帧内每个宏块QP值一致。

帧号类型编码比特数QP值
37I570188
38B826110
39B1327910
40P282518
41B2132410
42B1828110
43P500828
44B1096810
45B872610

在这里插入图片描述
在这里插入图片描述

以该GOP第一个I帧为分析对象
空间特性

在这里插入图片描述

如上图所示,共99个宏块。

编码类型宏块数占比(%)
I_4x49090.91
I_8x899.01
时间特性

在这里插入图片描述
如上图所示,I帧为帧内预测,无运动矢量。

以该GOP第一个P帧为分析对象
空间特性在这里插入图片描述

如上图所示,共99个宏块。

编码类型宏块数占比(%)
I_4x455.05
P_L0_16x161919.19
P_L0_L0_16x899.09
P_L0_L0_8x1644.04
P_8x84343.43
P_Skip1919.19
时间特性

在这里插入图片描述
如上图所示,P帧为前向预测,只有一种运动矢量。该视频序列统计特性为前景(路面及其两侧)有变化,背景(天空)变化小,其运动矢量集中在前景。

以该GOP第一个B帧为分析对象
空间特性

在这里插入图片描述
如上图所示,共99个宏块。

编码类型宏块数占比(%)
B_L0_16x163434.34
B_L1_16x1655.05
B_Bi_16x1611.01
B_L0_L0_16x833.03
B_L0_L0_8x1633.03
B_L1_L0_16x833.03
B_L0_Bi_16x811.01
B_Bi_L0_16x822.02
B_Bi_L1_16x811.01
B_Bi_Bi_16x822.02
B_8x81313.13
B_Skip3131.31
时间特性

在这里插入图片描述
如上图所示,B帧为双向预测,有绿、红两种运动矢量。该视频序列统计特性为前景(路面及其两侧)有变化,背景(天空)变化小,其运动矢量集中在前景。

H.264编码

编码器参数设置

本实验以解码器生成的highway_qcif_dec.yuv文件为输入,以GOP长度及形状为4/1B,目标比特率为400kbit/s的编码参数为例,输出60帧帧率为30帧/秒的highway_qcif_enc41B400.264文件,编码器需要修改的参数如下:

InputFile             = "highway_qcif_dec.yuv"       # Input sequence
FramesToBeEncoded     = 60     # Number of frames to be coded
FrameRate             = 30.0   # Frame Rate per second (0.1-100.0)
SourceWidth           = 176    # Source frame width
SourceHeight          = 144    # Source frame height
OutputWidth           = 176    # Output frame width
OutputHeight          = 144    # Output frame height
ReconFile             = "highway_qcif_rec.yuv"       # Reconstruction YUV file
OutputFile            = "highway_qcif_enc41B400.264"           # Bitstream
IntraPeriod           = 4   # Period of I-pictures   (0=only first)
NumberBFrames         = 1   # Number of B coded frames inserted (0=not used)
QPBSlice              = 30  # Quant. param for B slices (0-51)
HierarchicalCoding    = 2   # B hierarchical coding (0= off, 1= 2 layers, 2= 2 full hierarchy, 3 = explicit)
RateControlEnable       = 1      # 0 Disable, 1 Enable
Bitrate                 = 400000 # Bitrate(bps)
InitialQP               = 30     # Initial Quantization Parameter for the first I frame

其中IntraPeriod为GOP长度,NumberBFrames为插入的B帧数,Bitrate为目标比特率。

实验结果

同样以上述编码参数为例,其结果为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此处重点需要记录该编码参数对应的Y-PSNR=48.433dB,实际比特率为390.02kbits/s。

率失真曲线

本次实验选取的GOP长度及形状编码有:GOP=15,2B帧,GOP=12,2B帧,GOP=9,2B帧,GOP=4,1B帧,GOP=12,无B帧,GOP=1,全I帧。
目标比特率有:30kbits/s,60kbits/s,100kbits/s,200kbits/s,300kbits/s,400kbits/s。
在这里插入图片描述

在这里插入图片描述
由率失真曲线可得:
对于这种统计特性的视频序列,
在低码率的情况下,生成码流的客观质量15/2B>12/2B>12/0B>9/2B>4/1B>全I帧;
在中高码率的情况下,生成码流的客观质量12/0B>15/2B>12/2B>9/2B>4/1B>全I帧。

播放器观看生成码流

目标比特率(kbits/s)30100400
9/2B在这里插入图片描述在这里插入图片描述在这里插入图片描述
12/2B在这里插入图片描述在这里插入图片描述在这里插入图片描述
15/2B在这里插入图片描述在这里插入图片描述在这里插入图片描述
4/1B在这里插入图片描述在这里插入图片描述在这里插入图片描述
12/0B在这里插入图片描述在这里插入图片描述在这里插入图片描述
全I帧在这里插入图片描述在这里插入图片描述在这里插入图片描述

横向对比可得,在码率越高时,图像细节更丰富清晰,尤其体现在云层和远处告示牌上,生成码流的主观质量更高;
纵向对比可得,在码率一定时,全I帧的图像尤为模糊,生成码流的主观质量明显低于其他GOP长度及形状。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值