一種elf文件的壓縮方法及系統(tǒng)的制作方法【專(zhuān)利摘要】本發(fā)明公開(kāi)一種ELF文件的壓縮方法及系統(tǒng)。所述方法包括:獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;識(shí)別所述ELF文件中的各個(gè)段的段頭信息;根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,生成壓縮后的ELF文件。采用本發(fā)明的方法或系統(tǒng),可以減少ELF文件占用的硬件資源,可以提高數(shù)字電視機(jī)頂盒的啟動(dòng)速度,進(jìn)而使數(shù)字電視機(jī)頂盒在硬件配置不變的條件下,可以實(shí)現(xiàn)更多功能?!緦?zhuān)利說(shuō)明】一種ELF文件的壓縮方法及系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種ELF文件的壓縮方法及系統(tǒng)。【
背景技術(shù):
】[0002]數(shù)字電視機(jī)頂盒作為一種嵌入式計(jì)算機(jī)系統(tǒng),已經(jīng)進(jìn)入了千家萬(wàn)戶(hù)。用戶(hù)通過(guò)機(jī)頂盒可以收看到畫(huà)面更為清晰,播放更加流暢的電視節(jié)目,也可以通過(guò)機(jī)頂盒瀏覽網(wǎng)頁(yè),接收郵件,點(diǎn)播節(jié)目,視頻通話(huà)等。[0003]越來(lái)越多的功能的增加,使得機(jī)頂盒內(nèi)運(yùn)行的程序所占用的硬件資源越來(lái)越多。由于機(jī)頂盒本身的硬件配置較低(與家用電腦等設(shè)備相比),所以當(dāng)機(jī)頂盒內(nèi)運(yùn)行的程序占用硬件資源過(guò)多時(shí),會(huì)導(dǎo)致機(jī)頂盒運(yùn)行緩慢甚至死機(jī)。【
發(fā)明內(nèi)容】[0004]本發(fā)明的目的是提供一種ELF文件的壓縮方法及系統(tǒng),能夠?qū)?shù)字電視機(jī)頂盒內(nèi)的ELF格式的文件進(jìn)行壓縮,減少運(yùn)行ELF文件時(shí)占用的硬件資源,提高數(shù)字電視機(jī)頂盒的啟動(dòng)速度,使數(shù)字電視機(jī)頂盒在硬件配置不變的條件下,可以實(shí)現(xiàn)更多功能。[0005]為實(shí)現(xiàn)上述目的,本發(fā)明提供了如下方案:[0006]一種ELF文件的壓縮方法,包括:[0007]獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;[0008]識(shí)別所述ELF文件中的各個(gè)段的段頭信息;[0009]根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;[0010]對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,生成壓縮后的ELF文件。[0011]可選的,所述刪除包含冗余信息的段,包括:[0012]對(duì)于任意一個(gè)段,判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第一判斷結(jié)果;[0013]當(dāng)所述第一判斷結(jié)果為否時(shí),將該段從所述ELF文件中刪除。[0014]可選的,所述保留與運(yùn)行所述ELF文件相關(guān)的段,包括:[0015]對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第二判斷結(jié)果;[0016]當(dāng)所述第二判斷結(jié)果為是時(shí),在所述ELF文件中保留該段。[0017]可選的,所述對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,包括:[0018]采用LZSS壓縮算法,對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮。[0019]可選的,所述對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,包括:[0020]對(duì)于任意一個(gè)保留的與運(yùn)行所述ELF文件相關(guān)的段,判斷該段的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度,得到第三判斷結(jié)果;[0021]當(dāng)所述第三判斷結(jié)果為是時(shí),對(duì)該段進(jìn)行壓縮。[0022]-種ELF文件的壓縮系統(tǒng),包括:[0023]文件獲取模塊,用于獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;[0024]段頭信息識(shí)別模塊,用于識(shí)別所述ELF文件中的各個(gè)段的段頭信息;[0025]過(guò)濾模塊,用于根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;[0026]壓縮模塊,用于對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,生成壓縮后的ELF文件。[0027]可選的,所述過(guò)濾模塊包括:[0028]第一判斷單元,用于對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第一判斷結(jié)果;[0029]刪除單元,用于當(dāng)所述第一判斷結(jié)果為否時(shí),將該段從所述ELF文件中刪除。[0030]可選的,所述過(guò)濾模塊包括:[0031]第二判斷單元,用于對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第二判斷結(jié)果;[0032]保留單元,用于當(dāng)所述第二判斷結(jié)果為是時(shí),在所述ELF文件中保留該段。[0033]可選的,所述壓縮模塊包括:[0034]第一壓縮單元,用于采用LZSS壓縮算法,對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮。[0035]可選的,所述壓縮模塊包括:[0036]第三判斷單元,用于對(duì)于任意一個(gè)保留的與運(yùn)行所述ELF文件相關(guān)的段,判斷該段的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度,得到第三判斷結(jié)果;[0037]第二壓縮單元,用于當(dāng)所述第三判斷結(jié)果為是時(shí),對(duì)該段進(jìn)行壓縮。[0038]根據(jù)本發(fā)明提供的具體實(shí)施例,本發(fā)明公開(kāi)了以下技術(shù)效果:[0039]本發(fā)明的ELF文件的壓縮方法及系統(tǒng),通過(guò)根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,可以減少ELF文件占用的硬件資源,可以提高數(shù)字電視機(jī)頂盒的啟動(dòng)速度,進(jìn)而使數(shù)字電視機(jī)頂盒在硬件配置不變的條件下,可以實(shí)現(xiàn)更多功能?!緦?zhuān)利附圖】【附圖說(shuō)明】[0040]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0041]圖1為本發(fā)明的ELF文件的壓縮方法實(shí)施例1的流程圖;[0042]圖2為本發(fā)明的ELF文件的壓縮方法實(shí)施例2的流程圖;[0043]圖3為本發(fā)明的ELF文件的壓縮方法實(shí)施例3的流程圖;[0044]圖4為本發(fā)明的ELF文件的壓縮系統(tǒng)實(shí)施例1的結(jié)構(gòu)圖;[0045]圖5為本發(fā)明的ELF文件的壓縮系統(tǒng)實(shí)施例2的結(jié)構(gòu)圖;[0046]圖6為本發(fā)明的ELF文件的壓縮系統(tǒng)實(shí)施例3的結(jié)構(gòu)圖?!揪唧w實(shí)施方式】[0047]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0048]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。[0049]ELF是ExecutableandLinkableFormat的縮寫(xiě),中文意為可執(zhí)行連接格式。ELF是UNIX系統(tǒng)實(shí)驗(yàn)室(USL)作為應(yīng)用程序二進(jìn)制接口(ApplicationBinaryInterface,ABI)而開(kāi)發(fā)和發(fā)布的。ELF文件的擴(kuò)展名為elf。因?yàn)閿?shù)字電視機(jī)頂盒中運(yùn)行的文件主要為ELF文件,所以對(duì)ELF文件進(jìn)行壓縮,可以提高數(shù)字電視機(jī)頂盒運(yùn)行文件的效率,節(jié)省運(yùn)行文件時(shí)占用的硬件資源。[0050]圖1為本發(fā)明的ELF文件的壓縮方法實(shí)施例1的流程圖。如圖1所示,所述方法可以包括:[0051]步驟101:獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;[0052]通常一個(gè)程序可以包含一個(gè)ELF文件,也可以包含多個(gè)ELF文件。但是,在數(shù)字電視機(jī)頂盒的應(yīng)用環(huán)境中,由于程序比較簡(jiǎn)單,所以只包含一個(gè)ELF文件,即,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件。[0053]步驟102:識(shí)別所述ELF文件中的各個(gè)段的段頭信息;[0054]段(section)是ELF文件的主要構(gòu)件。每個(gè)段都具有段頭(Sectionheader)。對(duì)于任意一個(gè)段,段頭信息用于描述該段的功能。[0055]表1為ELF文件中sectionheader的域描述:[0056]【權(quán)利要求】1.一種ELF文件的壓縮方法,其特征在于,包括:獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;識(shí)別所述ELF文件中的各個(gè)段的段頭信息;根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,生成壓縮后的ELF文件。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述刪除包含冗余信息的段,包括:對(duì)于任意一個(gè)段,判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第一判斷結(jié)果;當(dāng)所述第一判斷結(jié)果為否時(shí),將該段從所述ELF文件中刪除。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保留與運(yùn)行所述ELF文件相關(guān)的段,包括:對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第二判斷結(jié)果;當(dāng)所述第二判斷結(jié)果為是時(shí),在所述ELF文件中保留該段。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,包括:采用LZSS壓縮算法,對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,包括:對(duì)于任意一個(gè)保留的與運(yùn)行所述ELF文件相關(guān)的段,判斷該段的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度,得到第三判斷結(jié)果;當(dāng)所述第三判斷結(jié)果為是時(shí),對(duì)該段進(jìn)行壓縮。6.-種ELF文件的壓縮系統(tǒng),其特征在于,包括:文件獲取模塊,用于獲取ELF文件,所述ELF文件為只包含一個(gè)可執(zhí)行文件的嵌入式軟件;段頭信息識(shí)別模塊,用于識(shí)別所述ELF文件中的各個(gè)段的段頭信息;過(guò)濾模塊,用于根據(jù)段頭信息,刪除包含冗余信息的段,保留與運(yùn)行所述ELF文件相關(guān)的段;壓縮模塊,用于對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮,生成壓縮后的ELF文件。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述過(guò)濾模塊包括:第一判斷單元,用于對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第一判斷結(jié)果;刪除單元,用于當(dāng)所述第一判斷結(jié)果為否時(shí),將該段從所述ELF文件中刪除。8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述過(guò)濾模塊包括:第二判斷單元,用于對(duì)于任意一個(gè)段判斷該段的段頭信息是否表示該段包含程序指令并且該段在所述ELF文件運(yùn)行時(shí)占用實(shí)際的存儲(chǔ)空間,得到第二判斷結(jié)果;保留單元,用于當(dāng)所述第二判斷結(jié)果為是時(shí),在所述ELF文件中保留該段。9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述壓縮模塊包括:第一壓縮單元,用于采用LZSS壓縮算法,對(duì)保留的與運(yùn)行所述ELF文件相關(guān)的段進(jìn)行壓縮。10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述壓縮模塊包括:第三判斷單元,用于對(duì)于任意一個(gè)保留的與運(yùn)行所述ELF文件相關(guān)的段,判斷該段的長(zhǎng)度是否大于預(yù)設(shè)長(zhǎng)度,得到第三判斷結(jié)果;第二壓縮單元,用于當(dāng)所述第三判斷結(jié)果為是時(shí),對(duì)該段進(jìn)行壓縮?!疚臋n編號(hào)】G06F17/30GK104216890SQ201310210161【公開(kāi)日】2014年12月17日申請(qǐng)日期:2013年5月30日優(yōu)先權(quán)日:2013年5月30日【發(fā)明者】袁同斌,李登彪,高偉,陳燁申請(qǐng)人:北京賽科世紀(jì)數(shù)碼科技有限公司