本节对x264的H.264视频编码码流进行解码,工程ffmpeg_h264主要支持CABAC、1个参考帧、无B帧main档级等指标的码流解码。以x264-080907项目的默认参数进行编码,设置命令行参数为:
-B 300 -o e:\\bitavc\\foremen_enc.264 e:\\yuv\\352x288.yuv
然后在ffmpeg_h264项目的输入和输出文件中设置:
/*输出和输出的文件*/
inp_file = fopen("e:\\bitavc\\busn_dsp.264", "rb");
out_file = fopen("e:\\bitavc\\dsp_dec.yuv", "wb");
最后使用YUV查看程序播放解码图像。为了加速解码器的解码速度,可以考虑在编码中关闭环路滤波,即在x264-080907\common\common.c文件中的滤波器开关由1置为0:
param->b_deblocking_filter = 1;
在解码时,ffmpeg_h264根据读取的标记决定是否做去除块效应的环路滤波。通过该功能的开启与关闭的实验对比,解码图像有较明显的区别。环路滤波是H.264视频算法有别于其他编码算法的一个重要功能。