算法字节对齐
发布时间: 2023-08-08 05:41:24
A. 求7z算法的原理,详细
7z算法的原理:
简单地说也就是把文件中的重复数据用更简洁的方法表示,例如一个文件中有1000个字母A,那么这将占用1KB的数据空间,如果用压缩算法就可以用1000A来表示,那么它只需要5个字节的数据空间,压缩比达到了200倍。
7z简介:7z 是一种主流高效的压缩格式,它拥有极高的压缩比。在计算机科学中,7z是一种可以使用多种压缩算法进行数据压缩的档案格式。该格式最初被7-Zip实现并采用,但是这种档案格式是公有的,并且7-Zip软件本身亦在GNU宽通用公共许可证 (GNU LGPL)协议下开放源代码。目前LZMA软件开发工具包的最新版本为V9.34。7z格式的MIME类型为application/x-7z-compressed。
B. 关于读取图片时候行字节数的算法LineBytes=(width*8+31)/32*4的疑问
该算法为:LineBytes = (width * bitCount + 31) / 32 * 4
bitCount为位图位宽,32位BMP,位宽为32、24位BMP位宽为23、256色位图位宽为8、等等。
这是一种对齐算法,对于BMP等位图来说,要求是4字节对齐,即每行字节数必须为4的整数倍。
因为8bit等于1Byte,同时满足以4字节为对齐单位向下对齐,所以可以得:
LineBytes = (width * bitCount / 8 + 3) / 4 * 4
对于位宽不足8的位图,有可能是多个像素才占用1Byte,所以应该将“/ 8”移出括号,进一步得:
LineBytes = (width * bitCount + 31) / 32 * 4
热点内容