軟件部分用ANSI C編寫,用GNU Make-3.74或更高版本的GCC編譯器進行編譯。MPEG-4編解碼部分是在MPEG-4提供的框架下根據嵌入式DVR應用的實際情況進行了一些簡化和優化后實現的。主要從下面三個方面對代碼進行優化:
(1)盡量降低代碼量,提高數據結構的有效性。因此需要去除對DVR應用中基本不用的結構及處理部分。
(2)并且盡量是執行控制趨于合理,減少不必要的存儲分配和釋放,盡量減少對外部存儲器的訪問。
(3)改進ME/MC ( FastMotion Estimation and Motion Compensation)來提高編碼效率。
程序分為三個部分:編解碼公用的部分、編碼部分和解碼部分。根據上面提到的優化思想,我們對程序進行了優化。經過優化后,VOP的結構體進行了很大的改變,保留了基本的語法元素項,對Sp rite進行了一些簡化,定義如下:
struct vop
{
/* VOP的語法元素* /
Int p rediction_type; /* VOP類型* /
Intmod_time_base; /* VOP絕對基本時間* /
Float time_inc; /* VOP相對mod_time_base時間* /
Int vop_coded;
Int rounding_type;
Int width; /* VOP寬度* /
Int height; /* VOP高度* /
.
/* 運動估計元素* /
.
/* 部分從VOL中傳過來的sp rite coding元素* /
Int sp rite_hdim;
Int sp rite_vdim;
Int sp rite_left_edge;
Int sp rite_top_edge;
Int warp ing_accuracy; /3 變形精度(2, 4, 8, 16) 3 /
Int sp rite_usage; /3 0:不用; 1:靜態; 3 /
Int no_of_sp rite_points;
/3 0:固定, 1:平移, 2:旋轉、縮放, 3:仿射, 4:透視畫法3 /
TrajPoint 3 ref_point_coord;
/3 position of reference points sp rite 3 /
TrajPoint 3 traj_point_coord;
/3 position of reference points aftermotion compensation 3 /
TrajPoint 3 difftraj_point_coord;
/3 ( dui, dvj) trajectory coordinates, to be transmitted 3 /
Int brightness_change_in_sp rite;
Float brightness_change_factor;
Int low_latency_sp rite_enable;
/3 0:基本sp rite, 1:節省的sp rite 3 /
struct vop 3 rec_sp rite; /3 當前解碼sp rite指針3 /
Sp rite_motion 3 warp_param; /3 全局運動向量3 /
.......
}
在VOP中, sprite _ usage為1則圖像中只處理靜態的Sprite; sprite_hdim、sprite_vdim與靜態的Sprite的像素相對應,它隨Macroblocks數的變化而作相應的變化,對于一個環境穩定的DVR 的應用,它們可以有一個確定的值; n Number of Sprite Points當為o時zero運動.......同時在image, sprite_motion, vol, video _object, motion等結構體和編解碼的函數中也進行了相應的類似的一些優化,以適應DVR的特點,提高編碼的效率。
(2) 軟件支持空域可擴展和空域可擴展,設置參數可支持五種類型: 0為時域擴展類型0; 1為空域擴展; 2為時域空域擴
展; 3為時域擴展類型1; 4為時域擴展類型2對于空域擴展。
Enhanece P B B B . . .
Base I P P P . . .
對于時域擴展, base層的幀率變為5fps和enhance層的幀率也為5fps。支持三種類型:
Case0 I-VOP在base層中周期出現和P-VOP在base層和enhance層中,而B-VOP不出現
Enhance layer P P P P P . . .
Base layer I P P P P . . .
Case1 I-VOP和P-VOP在base層中編解碼, enhance層中只有B-VOP
Enhance layer B B B B B B . . .
Base layer I P P P . . .
Case3 base層中包含I-VOP, P-VOP和B-VOP, enhance層中只有B-VOP
Enhance layer P B B B B B . . .
Base layer IB P B P B P . . .
4 結束語
MPEG-4基于內容的壓縮,是信息處理的高級階段,更加向人自身的信息處理方式靠近。本文著重分析了將MPEG-4編碼方法應用于嵌入式DVR的種種優點,論述了這種DVR實現方法。實踐表明,這種應用是對DVR是一次有效的優化,能夠在多個方面提高DVR的性能,MPEG-4編碼必將是下一代DVR的發展趨勢。
評論
查看更多