基于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編解碼系統框圖
評論