軟件部分用ANSI C編寫,用GNU Make-3.74或更高版本的GCC編譯器進(jìn)行編譯。MPEG-4編解碼部分是在MPEG-4提供的框架下根據(jù)嵌入式DVR應(yīng)用的實際情況進(jìn)行了一些簡化和優(yōu)化后實現(xiàn)的。主要從下面三個方面對代碼進(jìn)行優(yōu)化:
(1)盡量降低代碼量,提高數(shù)據(jù)結(jié)構(gòu)的有效性。因此需要去除對DVR應(yīng)用中基本不用的結(jié)構(gòu)及處理部分。
(2)并且盡量是執(zhí)行控制趨于合理,減少不必要的存儲分配和釋放,盡量減少對外部存儲器的訪問。
(3)改進(jìn)ME/MC ( FastMotion Estimation and Motion Compensation)來提高編碼效率。
程序分為三個部分:編解碼公用的部分、編碼部分和解碼部分。根據(jù)上面提到的優(yōu)化思想,我們對程序進(jìn)行了優(yōu)化。經(jīng)過優(yōu)化后,VOP的結(jié)構(gòu)體進(jìn)行了很大的改變,保留了基本的語法元素項,對Sp rite進(jìn)行了一些簡化,定義如下:
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高度* /
.
/* 運(yùn)動估計元素* /
.
/* 部分從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:靜態(tài); 3 /
Int no_of_sp rite_points;
/3 0:固定, 1:平移, 2:旋轉(zhuǎn)、縮放, 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:節(jié)省的sp rite 3 /
struct vop 3 rec_sp rite; /3 當(dāng)前解碼sp rite指針3 /
Sp rite_motion 3 warp_param; /3 全局運(yùn)動向量3 /
.......
}
在VOP中, sprite _ usage為1則圖像中只處理靜態(tài)的Sprite; sprite_hdim、sprite_vdim與靜態(tài)的Sprite的像素相對應(yīng),它隨Macroblocks數(shù)的變化而作相應(yīng)的變化,對于一個環(huán)境穩(wěn)定的DVR 的應(yīng)用,它們可以有一個確定的值; n Number of Sprite Points當(dāng)為o時zero運(yùn)動.......同時在image, sprite_motion, vol, video _object, motion等結(jié)構(gòu)體和編解碼的函數(shù)中也進(jìn)行了相應(yīng)的類似的一些優(yōu)化,以適應(yīng)DVR的特點,提高編碼的效率。
(2) 軟件支持空域可擴(kuò)展和空域可擴(kuò)展,設(shè)置參數(shù)可支持五種類型: 0為時域擴(kuò)展類型0; 1為空域擴(kuò)展; 2為時域空域擴(kuò)
展; 3為時域擴(kuò)展類型1; 4為時域擴(kuò)展類型2對于空域擴(kuò)展。
Enhanece P B B B . . .
Base I P P P . . .
對于時域擴(kuò)展, base層的幀率變?yōu)?fps和enhance層的幀率也為5fps。支持三種類型:
Case0 I-VOP在base層中周期出現(xiàn)和P-VOP在base層和enhance層中,而B-VOP不出現(xiàn)
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 結(jié)束語
MPEG-4基于內(nèi)容的壓縮,是信息處理的高級階段,更加向人自身的信息處理方式靠近。本文著重分析了將MPEG-4編碼方法應(yīng)用于嵌入式DVR的種種優(yōu)點,論述了這種DVR實現(xiàn)方法。實踐表明,這種應(yīng)用是對DVR是一次有效的優(yōu)化,能夠在多個方面提高DVR的性能,MPEG-4編碼必將是下一代DVR的發(fā)展趨勢。
評論
查看更多