基于IPP庫(kù)的MPEG-4視頻傳輸系統(tǒng)設(shè)計(jì)
2.2.3 MPEG-4編解碼中的關(guān)鍵IPP庫(kù)函數(shù)
基于IPP庫(kù)的MPEG-4編解碼系統(tǒng)框圖如圖3所示,下面來(lái)具體介紹MPEG4編解碼中用到的關(guān)鍵的IPP庫(kù)函數(shù)[1,4]:
DCT變換:
ippiDCT8x8Fwd_Video_8u16s_C1R(const Ipp8u * pSrc, int srcStep, Ipp16s * pDst);
功能描述:將pSrc指向的8X8圖像塊采樣點(diǎn)(空間域)進(jìn)行前向離散余弦變換,轉(zhuǎn)換到 pDst指向的一組變換系數(shù)(變換域)。
量化:
ippiQuantIntra_MPEG4_16s_I (Ipp16s * pSrcDst, Ipp8u QP, int blockIndex, const int * pQMatrix);
功能描述:將輸入的DCT系數(shù)量化后,重新存儲(chǔ)到pSrcDst指向的存儲(chǔ)空間,其中QP是量化系數(shù)
VLC編碼:
ippiEncodeVLCZigzag_Inter_MPEG4_16s1u 對(duì)幀間塊進(jìn)行之字型掃描并VLC編碼
運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償:
ippiMCBlock_RoundOff_8u----進(jìn)行運(yùn)動(dòng)補(bǔ)償并將補(bǔ)償結(jié)果復(fù)制到當(dāng)前塊
ippiMotionEstimation_16x16_SEA----完成16X16大小的運(yùn)動(dòng)補(bǔ)償,它不僅覆蓋了16X16,還包括了8X8的整像素和半像素搜索。同時(shí),該函數(shù)還決定了幀內(nèi)或幀間的選擇
ippiEncodeMV_MPEG4_8u16s----搜索預(yù)測(cè)的運(yùn)動(dòng)向量并對(duì)殘差進(jìn)行編碼
以上只選取了MPEG4編碼端用到的幀內(nèi)/幀間關(guān)鍵的IPP庫(kù)函數(shù),而解碼端的VLC解碼,逆量化以及逆DCT變換是編碼的逆過(guò)程,對(duì)于各個(gè)功能模塊相對(duì)應(yīng)的IPP庫(kù)函數(shù)在IPP庫(kù)參考文檔中有詳細(xì)敘述,在此不再贅述。
圖3 MPEG-4編解碼系統(tǒng)框圖
評(píng)論