基于IPP库的MPEG-4视频传输系统设计
基于IPP库的MPEG-4编解码系统框图如图3所示,下面来具体介绍MPEG4编解码中用到的关键的IPP库函数[1,4]:
DCT变换:
ippiDCT8x8Fwd_Video_8u16s_C1R(const Ipp8u * pSrc, int srcStep, Ipp16s * pDst);
功能描述:将pSrc指向的8X8图像块采样点(空间域)进行前向离散余弦变换,转换到 pDst指向的一组变换系数(变换域)。
量化:
ippiQuantIntra_MPEG4_16s_I (Ipp16s * pSrcDst, Ipp8u QP, int blockIndex, const int * pQMatrix);
功能描述:将输入的DCT系数量化后,重新存储到pSrcDst指向的存储空间,其中QP是量化系数
VLC编码:
ippiEncodeVLCZigzag_Inter_MPEG4_16s1u 对帧间块进行之字型扫描并VLC编码
运动估计和运动补偿:
ippiMCBlock_RoundOff_8u----进行运动补偿并将补偿结果复制到当前块
ippiMotionEstimation_16x16_SEA----完成16X16大小的运动补偿,它不仅覆盖了16X16,还包括了8X8的整像素和半像素搜索。同时,该函数还决定了帧内或帧间的选择
ippiEncodeMV_MPEG4_8u16s----搜索预测的运动向量并对残差进行编码
以上只选取了MPEG4编码端用到的帧内/帧间关键的IPP库函数,而解码端的VLC解码,逆量化以及逆DCT变换是编码的逆过程,对于各个功能模块相对应的IPP库函数在IPP库参考文档中有详细叙述,在此不再赘述。
图3 MPEG-4编解码系统框图
评论