當前位置:首頁 » 文件管理 » 修改壓縮演算法

修改壓縮演算法

發布時間: 2022-06-03 14:10:30

① 文件壓縮都有哪些演算法,還請講下這些演算法的原理.分我1000多,要多少說下就行.

linux下看看壓縮軟體的代碼自己研究下吧.這可是很費時間的事

② 怎麼壓縮文件大小比如把4m壓縮到1m

一般文字類型的文件壓縮比率會高點,但是比如視頻之類的能壓縮百分之二十又不失真已經很不錯了。所以得看你壓縮什麼文件,期待的壓縮效果(比如失真問題)。

③ 怎樣將圖片壓縮到指定大小,謝謝

你可以用這種在線的圖片壓縮工具,就可以把圖片文件壓縮到你期望的體積大小,比如你將壓縮數值設置到100kb,稍等幾秒鍾之後,在線圖片壓縮工具就已經把圖片的文件大小壓縮到最高100kb了。換句話說,你設定壓縮到多少kb的期望值,他壓縮完的輸出圖片就是多少kb大小了,非常方便。在線智能圖片壓縮,壓縮圖片體積大小

在線壓縮照片到指定大小

在線圖片智能壓縮使用步驟:

一、首先點擊加號添加需要壓縮的圖片。目前已知支持對jpg、png、webp、bmp等多種常見的圖片格式進行壓縮,如果選擇圖片後正常顯示並能夠壓縮成功,則代表支持該圖片格式。
二、可以自行修改圖片需要被壓縮到的最大寬高尺寸,默認為圖片原始的寬高尺寸,並且寬高比例是自動鎖定的,確保圖片不會變形。
三、必須設置圖片被壓縮後,期望輸出的壓縮之後圖片文件的最大佔用空間,該選項是必填的。
四、選擇圖片壓縮的演算法。默認為智能混合壓縮演算法,絕大多數情況下使用默認演算法進行圖片壓縮即可。
五、當你設置壓縮後的大小單位為」Kb「時,壓縮大小的設定值不能小於1Kb,但圖片壓縮後的最終文件大小是可以小於1Kb的。

④ 如何修改好壓的壓縮率為什麼我壓縮完文件大小不變呢

通俗地講,那個文件比較瓷實,壓縮不了多少。比如一個圖片吧,如果有大面積的同一種顏色,,就比較好壓縮,而如果是很亂很亂的各種色彩景物構成,壓縮也壓縮不了多少。
好壓的壓縮率修改如下操作:打開好壓——點擊「選項」——點擊「設置」——點擊「壓縮」選項卡——點擊「壓縮方式配置」。在彈出的設置界面中設置即可。

⑤ 行程長度編碼的RLE 壓縮演算法的改進

RLE 壓縮演算法對於數據重復量大的情況是非常高效率的。但是, 當圖像像素的顏色值出現每個相鄰像素的顏色值均不同的特殊情況時, 如顏色字元串GBR, 則經此方法壓縮後變成了 1G1B1R, 反而會使數據串的長度增加一倍, 這是一種「病態」情況。為了盡量避免「病態」情況的出現, 需要對 RLE 的基本方法進行改進。改進的方法是在具體實施時對計數位元組和圖像像素位元組進行了區分, 利用計數位元組的高兩位作為壓縮的標志。對每個相鄰像素的顏色值均不同的單個像素數據, 只有當計數位元組高 2位全1( 即 C0) 時才加 1 計數, 否則直接輸出該像素值, 因此避免了壓縮後長度增加一倍的情況。這樣就使得計數位元組本身的高 2 位也是全 1, 即計數位元組為 C0H+n( 像素數據連續相同的位元組數)。當單個圖像數據的值大於或等於C0 時, 則先輸出 C1, 再輸出該圖像數據值, 否則直接輸出該數據。如有以下一系列數據: D2,20,30,30,30,C0,C1,C1,E2,E2,E2,…,E2(132個),E0,E0,D4,經壓縮後數 據 為 : C1,D2,20,C3,30,C1,C0,C2,C1,FF,E2,FF,E2,C6,E2,C2,E0,C1,D4,從這個壓縮過程可以看到,單個的圖像數據 D2、C0、D4 前面帶有計數位元組 C1, 而 20 前沒有。這樣可以有效避免壓縮後膨脹的異常情況。在上述改進的基礎上, 我們發現, 由於一個位元組最大隻能為 FFH, 因此 n 最大隻能為 FFH- C0H=3FH=(63)10, 故當 n>63 時, 則需要分多次壓縮。例如132個數據 E2 用了 6個位元組 (FF,E2,FF,E2,C6,E2)來表示。為了減少大批量重復數據所需的位元組數, 我們對其進行更進一步的改進: 規定緊跟 FF 後的位元組, 依然是計數位元組。如上述數據: D2,20,30,30,30,C0,C1,C1,E2,E2,E2,…,E2(132個),E0,E0,D4,經壓縮後數據為:C1,D2,20,C3,30,C1,C0,C2,C1,FF,45,E2,C2,E0,C1,D4。比較兩組數據, 現在 132個數據 E2 用了 3個位元組(FF,45,E2)就可以表示了, 有效地減少了數據量。一種極端的情況是某個數據剛好重復的次數是 FF 次, 對於這種特殊情況, 我們在 FF 位元組後增加一個 00 的位元組來區別表示。通過這樣的改進, 並不會增加壓縮和解壓縮太多的復雜性, 卻改善了壓縮的效率。
------------------

⑥ 電腦壓縮大的文件夾怎樣壓縮才能壓到最小

可以通過替換壓縮文件的數字來壓縮到最小。

1、壓縮為ZIP文件。右鍵單擊需壓縮文件(如「數字圖像雜訊和去除.htm」文件),選擇「WinRAR→添加到壓縮文件」,在壓縮選項對話框中選擇「壓縮文件格式」為「ZIP」,「壓縮方式」為「最好」,單擊「確定」開始壓縮。
2、換算文件大小值。用WinRAR打開「數字圖像雜訊和去除.zip」,記下「大小」列中顯示的原文件大小數值「127594」,打開計算器程序,單擊「查看」菜單選擇「科學型」,輸入數字「127594」,再點擊「十六進制」 選項將其轉換為16進制值,結果是「1F26A」(用科學型計算器認真算一下)。
3、替換數值。用UltraEdit編輯器(可從網上下載)打開「數字圖像雜訊和去除.zip」文件,要在文件中找到「1F26A」的數據,不過由於文件中的十六進制數是高低位倒置表示的,所以我們要查找的數據就變成了「6AF201」,單擊「搜索」菜單中的「替換」,將文件中的「6AF201」替換為「FFFFFF」,共替換兩處,文件開頭和結尾各一處,替換後保存文件修改。
4、文件已壓縮。將這個修改後的ZIP格式變成RAR格式即可,如果用WinRAR「工具」菜單中的「轉換檔案文件格式」功能轉換後的壓縮比會稍微縮小,直接將「數字圖像雜訊和去除.zip」改名為「數字圖像雜訊和去除.rar」

【注意】前面之所以要選擇ZIP壓縮格式,而不是直接使用RAR壓縮格式,是因為WinRAR對RAR格式的CRC檢驗非常嚴格,對文件進行任何修改都會提示壓縮錯誤,而使用ZIP格式壓縮,修改後再用WinRAR打開時不會進行嚴格的CRC檢驗,沒有任何錯誤提示。

⑦ 壓縮文件的演算法

主要是看文件格式,像rmvb等格式都是已經壓縮過的了,再壓空間不大,還有就是獨立格式文件,一般系統無法識別,並且文件名比較怪的都是別人獨立開發的格式,這些也沒什麼壓縮空間,演算法你要看那格式種了,系統常見的文件壓縮演算法都是
ZIP文件的總體格式
分文件頭信息+文件壓縮數據
中心目錄+中心目錄記錄結束符

1.分文件頭信息:
位元組數 描述
4 分文件頭信息標志(0x04034b50)
2 解壓縮所需版本
2 通用比特標志位(置比特0位=加密;置比特1位=使用壓
縮方式6,並使用8k變化目錄,否則使用4k變化目錄;置比特2位=使用壓
縮方式6,並使用3個ShannonFano樹對變化目錄輸出編碼,否則使用2個
ShannonFano樹對變化目錄輸出編碼,其它比特位未用)
2 壓縮方式(0=不壓縮,1=縮小,2=以壓縮因素1縮小,3=以
壓縮因素2縮小,4=以壓縮因素3縮小,5=以壓縮因素4縮小,6=自展)
2 文件最後修改時間
2 文件最後修改日期
4 32位校驗碼
4 壓縮文件大小
4 未壓縮文件大小
2 文件名長
2 擴展段長
? 文件名(不定長)
? 擴展段(不定長)

2.中心目錄結構
文件頭信息...中心目錄記錄結束符
文件頭:
位元組數 描述
4 中心文件頭信息標志(0x02014b50)
2 主機操作系統(高位位元組表示主機操作系統,低位字
節表示ZIP壓縮軟體版本號,其值除以10表示主版本號,其值模10表示
次版本號。0=MS-DOS,OS/2 FAT文件系統,1=Ami ga,2=VMS,3=Unix及
變種,4=VM/CMS,5=AtariST,6=OS/2 HPFS,7=Macintosh,8=Z-System,9
=C P/M,10-255未用)
2 解壓縮所需版本
2 通用比特標志
2 壓縮方式
2 文件最後修改時間(用標準的MS-DOS時間日 期格式
編碼)
2 文件最後修改日期
4 32位校驗碼(使用David Schwaderer的CRC-32演算法產
生)
4 壓縮文件大小
4 未壓縮文件大小
2 文件名長
2 擴展段長
2 文件注釋長(分別為文件名長,擴展段,注釋 段,小於
64K)
2 磁碟起始號(本文件在磁碟中的起始號)
2 內部文件屬性(最低位若置1,表示為ASC文本,否則為
二進制數據,其它位未用)
4 外部文件屬性(依賴於主機操作系統)
4 分文件頭相對位移
? 文件名(不定長)
? 擴展段(不定長,用於未來擴展,低版本為0長)
? 文件注釋(不定長)

3.中心目錄記錄結束符
位元組數 描述
4 中心目錄標記結束符(0x06054b50)
2 磁碟號(其中包括中心目錄結束記錄)
2 磁碟中心目錄起始號
2 磁碟中心目錄入口總數
2 中心目錄入口總數(ZIP文件中的文件總數)
2 整個中心目錄大小
4 關於起始磁碟號的中心目錄初始偏移
2 ZIP文件注釋長度
? ZIP文件注釋(不定長)

加密方法
PKZIP中使用的加密方法由Roger Schlafly提供。ZIP文件在解壓
縮前必須先解密。每個加密文件具有一個12位元組的加密文件頭擴展信
息,存儲於數據區的起始位置,加密前先設置一個起始值,然後被三個3
2位的密鑰加密。密鑰被使用者提供的口令初始化。12個位元組加密之
後,由PKZIP的偽隨機數產生方法,結合PKZIP中使用CRC-32演算法對密鑰
進行更新。
具體實施分為三步:

1.用口令對三個32位密鑰初始化。
K(0)=305419896,K(1)=591751049,K(2)=878082192
循環 for i=0 to length(password)-1
調用更新密鑰函數 update_keys(password(i))
結束循環(循環口令長度次)
其中更新密鑰函數為:
update_keys(char):
Key(0)=crc32(key(0),char)
Key(1)=Key(1)+(Key(0)& 000000ffH)
Key(1)=Key(1)*134775813+1
Key(2)=crc32(Key(2),Key(1)〉〉24)
end update_keys
CRC32函數中,給定一個4位元組的CRC值和一個字元,返回一個由CRC
-32演算法更新的CRC。具體為:
crc32(c,b)=crc32tab[(c^b)&0xff]^(c>>8),crc32tab[256]的值
為固定的256個4位元組數。

2.讀取並加密12位元組的加密頭,再次對密鑰進行初始化。
將12個位元組的加密頭讀入緩沖區buffer(0)至buffer(11),循環fo
r i=0 to 11
C=buffer(i)^decrypt_byte()
update_keys(C)
buffer(i)=C
結束循環(循環12次)
其中的decrypt_byte()函數為:
unsigned char decrypt_byte()
local unsigned short temp
temp=Key(2)¦2
decrypt_byte=((temp*(temp^1))>>8)&0xff
end decrypt_byte
該步結束後,緩沖區中最後的二個位元組buffer(10)和buffer(11)
將成為加密文件校驗碼的二個最高位(按低至高順序存放)。對ZIP加
密文件進行解壓縮前,PKUNZIP軟體將使用者提供的口令按上述二個步
驟進行處理,得到的結果與校驗碼的二個高位位元組進行比較,只有當提
供了正確的口令時,結果一致,才能進行後續的解壓縮過程,否則,PKZI
P報告錯誤信息,程序自動結束。

3.讀取壓縮的數據流並以加密密鑰對其進行加密。
壓縮數據流按下述過程加密:
循環 直至數據流結束
C=數據流的一個位元組
temp=C^decrypt_byte()
update_keys(temp)
輸出temp
結束循環

⑧ 壓縮文件的時候怎麼改變壓縮率

在壓縮軟體裡面設置最大壓縮率。有選項的。

熱點內容
豬豬俠腳本沒反應 發布:2025-01-22 08:08:37 瀏覽:811
賽博朋克跟永劫無間哪個配置高 發布:2025-01-22 08:07:07 瀏覽:534
請盡快上傳 發布:2025-01-22 08:06:22 瀏覽:188
河北編程培訓 發布:2025-01-22 08:01:42 瀏覽:591
a星演算法視頻 發布:2025-01-22 07:55:01 瀏覽:878
快手安卓怎麼直播 發布:2025-01-22 07:54:58 瀏覽:937
買伺服器搭建vpn 發布:2025-01-22 07:53:21 瀏覽:808
路由器忘記密碼如何解 發布:2025-01-22 07:38:47 瀏覽:154
5分鍾視頻編譯 發布:2025-01-22 07:36:33 瀏覽:772
asp執行存儲過程 發布:2025-01-22 07:35:55 瀏覽:127