H264编码
基本参数
Line | ParameterName | Comment |
---|---|---|
13 | InputFile | 输入文件名 |
16 | FramesToBeEncoded | 编码的帧数 |
30 | SourceWidth | 源序列宽 |
31 | SourceHeight | 源序列高 |
33 | OutputWidth | 输出序列宽 |
34 | OutputHeight | 输出序列高 |
72 | IntraPeriod | I帧长度 |
78 | EnableOpenGOP | 是否允许参考下一GOP中的参考帧 |
180 | NumberBFrames | I/P帧之间的B帧数目 |
194 | HierarchicalCoding | B级编码 |
444 | RateControlEnable | 使用简单的码率控制 |
445 | BitRate | 码率 |
453 | RCUpdateMode | 码率控制方式:0是原始的JM率控制;1是对所有帧都适用的速率控制,不管它的片类型是什么;2是原始加上智能的对I和B片(包括层次)的选择;3是使用比特率统计法对I和B片的原始,混合二次速率控制(实验中应选2或3) |
修改encode.cfg中的相关参数
1. 不同Gop类型的参数设置
Gop类型 | IntraPeriod | NumberBFrames |
---|---|---|
15,2B帧 | 15 | 2 |
12,2B帧 | 12 | 2 |
9,2B帧 | 9 | 2 |
4,1B帧 | 4 | 1 |
12,0B帧 | 12 | 0 |
1,全I帧 | 1 | 0 |
2. 不同码率参数设置
码率(kbps) | 40 | 80 | 100 | 200 | 400 | 800 | 1000 |
---|
3. 基础参数设置
ParameterName | Value | Value |
---|---|---|
InputFile | cy.yuv | cy2.yuv |
FramesToBeEncoded | 35 | 30 |
SourceWidth | 352 | 1920 |
SourceHeight | 288 | 1080 |
OutputWidth | 352 | 352 |
OutputHeight | 288 | 288 |
EnableOpenGOP | 1 | 1 |
HierarchicalCoding | 2 | 2 |
RateControlEnable | 1 | 1 |
RCUpdateMode | 2 | 2 |
注:cy2.yuv进行了resize,尺度变换成352x288;
1. 六种GOP类型,固定码率40kbps
a. IBBPBBPBBPBBPBB
b. IBBPBBPBBPBB
c. IBBPBBPBB
d. IBPB
e. IPPPPPPPPPPP
f. IIIII…
此处关闭了B帧Hierarchy编码模式,设置HierarchicalCoding=0;并设置RCUpdateMode=1,对所有帧适用的速率控制;
2. 编码模式
I模式,帧内编码(I帧)
P模式,前向预测帧(P帧),P帧宏块用到I帧和P帧,P模式为主(绿色)
B模式,双向预测帧(B帧),B帧中的宏块用到I和B模式,B模式为主(蓝色)
3. 运动矢量
I帧为帧内编码,无运动矢量,P帧为前向预测编码,运动矢量为绿色,B帧为双向预测编码,运动矢量有红绿两种颜色。图像中的标记的是每个块的运动矢量,一个块的大小不定,从16x16~4X4。
I帧
P帧
B帧
4. 率失真曲线
不同序列在GOP类型为15,2B时,随码率变化的率失真曲线
纵轴:Y-PSNR(dB);横轴:码率(kbps);
5. 重建序列
测试序列:cy.yuv;
测试码率:40kbps,1000kbps;
测试GOP类型:15,2B/12,2B
40kbps | 1000kbps | |
---|---|---|
15,2B | ||
12,2B |