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

文章目录

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

在decoder.cfg里修改输入第一个文件名称:

InputFile             = "test_zy.264"       # H.264/AVC coded bitstream

之后命令行运行ldecode.exe:
数据压缩实验之 H.264编解码实验数据压缩实验之 H.264编解码实验
便得到输出结果:
数据压缩实验之 H.264编解码实验
同理得到第二个输出结果:
数据压缩实验之 H.264编解码实验

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

2.1 固定码率,以不同的GOP长度及形状编码

在encoder.cfg里修改输入文件名称:

InputFile             = "foreman_part_qcif.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

修改 :

IntraPeriod           = 15   # Period of I-pictures   (0=only first)

修改 :

NumberBFrames          = 2  # Number of B coded frames inserted (0=not used)

修改 :

HierarchicalCoding      =  0  # B hierarchical coding (0= off, 1= 2 layers, 2= 2 full hierarchy, 3 = explicit)

这里只列举出test_zy.yuv的例子:

2.1.1 GOP=15,2B帧

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

2.1.2 GOP=12,2B帧

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

2.1.3 GOP=9,2B帧

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

2.1.4 GOP=4,1B帧

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

2.1.5 GOP=12,无B帧

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

2.1.6 GOP=1,全I帧

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

2.2 相同的GOP长度及形状(GOP=15,2B帧),不同的码率

2.2.1 1000kb/s

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

2.2.2 800kb/s

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

2.2.3 400kb/s

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

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

4.用播放器观看所生成码流的质量

4.1.1 GOP=15,2B帧,1000kb/s

选取第一帧,第一帧一定是帧内编码帧(I帧),同时,由于是I帧的原因,运动矢量并不存在。,在分析软件中分析时也确实如此,其Slice Type为I Slice:数据压缩实验之 H.264编解码实验
数据压缩实验之 H.264编解码实验
第十帧:
数据压缩实验之 H.264编解码实验
数据压缩实验之 H.264编解码实验

4.1.2 GOP=12,2B帧,1000kb/s

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

4.1.3 GOP=12,0B帧,1000kb/s

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

4.1.4 GOP=9,2B帧,1000kb/s

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

4.1.5 GOP=4,1B帧,1000kb/s

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

4.1.6 GOP=1,全I帧,1000kb/s

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

4.1.7 GOP=15,2B帧,800kb/s

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

4.1.8 GOP=15,2B帧,400kb/s

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

5.生成率失真曲线

5.1.1 GOP=15,2B帧,1000kb/s

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

5.1.2 GOP=12,2B帧,1000kb/s

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

5.1.3 GOP=12,0B帧,1000kb/s

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

5.1.4 GOP=9,2B帧,1000kb/s

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

5.1.5 GOP=12,1B帧,800kb/s

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

5.1.6 GOP=1,全I帧,1000kb/s

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

5.1.7 GOP=15,2B帧,800kb/s

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

5.1.8 GOP=15,2B帧,400kb/s

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

以此类推,得到多组Y-PSNR

由上得Y-PSNR和码率绘制率失真曲线。
数据压缩实验之 H.264编解码实验

6.结论

通过率失真曲线可以比较两个编码器的性能:
●在PSNR相同时,对应码率小的编码器性能好
●在码率相同时,对应PSNR大的编码器性能好

上一篇:java调用C#接口时 参数中特殊字符串处理


下一篇:最小覆盖原算法 python 实现