实验原理
实验流程
将不同的视频序列编码为.264文件
固定码率,以不同的GOP长度及形状编码
GOP=15,2B帧;GOP=12,2B帧,GOP=9,2B帧
GOP=4,1B帧;GOP=12,无B帧;GOP=1,全I帧
相同的GOP长度及形状,不同的码率
例:300kb/s, 200kb/s,100kb/s,…
用码流分析软件检查所生成的码流中各种编码模式和运动矢量等信息
用播放器观看所生成码流的质量
生成率失真曲线
调试过程
需改动的参数:
encoder.cfg
LINE194: HierarchicalCoding = 0 关闭B帧Hierarchy编码模式
LINE13/16/30/31/33/34/57/58/59: 一些基本输入输出参数
LINE73: IDRPeriod IDR(Instantaneous Decoding Refresh)帧间隔,标志着GOP的开始,所以IDRPeriod也是GOP长度。这里需要和LINE72的IntraPeriod区分,IntraPeriod是I帧间隔,而一个GOP内可以有多个I帧,但只有一个IDR帧。参考http://blog.sina.com.cn/s/blog_520811730101jlsa.html#cmt_2512661
180NumberBFrames: B帧数,指的是I帧/P帧之间的B帧数。如GOP=12,B=2时帧结构为:IBBPBBPBBPBB
LINE444/445: 调整可变输出码率
编码帧数FramesToBeEncoded的选择:要想对比不同GOP类型和不同码率下编码后的失真程度和一些参数,每次的编码帧数应相同。如果在GOP为4时只编码4帧,则无法压到比较小的输出码率,比如要求输出100kbps,在这种情况下只能输出229kbps。
实验结果
不同输出码率下每一帧编码结果及参数(GOP15B2)
设置码率(kbps) | 实际码率(kbps) | 结果 |
---|---|---|
50 | 119.81 | |
100 | 119.81 | |
200 | 192.62 | |
300 | 290.03 |