当前位置:首页 » 文件管理 » 修改压缩算法

修改压缩算法

发布时间: 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
结束循环

⑧ 压缩文件的时候怎么改变压缩率

在压缩软件里面设置最大压缩率。有选项的。

热点内容
python查看编码 发布:2025-01-21 19:58:12 浏览:836
人记忆存储位置 发布:2025-01-21 19:55:05 浏览:690
计算机存储容量的基本单位是 发布:2025-01-21 19:35:44 浏览:980
c语言怎么给字符赋值 发布:2025-01-21 19:30:45 浏览:122
拍卖php源码 发布:2025-01-21 19:27:52 浏览:115
数控编程南京 发布:2025-01-21 19:20:16 浏览:163
ftp服务器功能为 发布:2025-01-21 19:05:53 浏览:121
7z解压有密码 发布:2025-01-21 19:05:08 浏览:608
轩逸经典豪华有哪些配置 发布:2025-01-21 18:56:16 浏览:71
hibernate查询sql语句 发布:2025-01-21 18:48:46 浏览:304