文件就是字节数据的集合,文件是以字节为单位来存储的。在任何情况下,文件中的字节数据都是连续的。
文件的压缩机制——1.REL算法,就是把“数据X重复次数”的形式来表示。例如AAAAAABBCDDEEEEEF压缩为A6B2C1D2E5F1。
当然这种算法也有缺点,REL算法并不适用文本文件的压缩,会使原文件增大,因为文本文件中同样的字符连续出现的并不多,使用REL算法之后,每个字符后面都会加上1,会导致压缩后的文件反而增大。
2.哈夫曼算法,这种算法的关键在于“多次出现的数据用小于8位的字节数表示,不常用的数据可以用超过8位的字节数来表示”。不过有一点是无论超没超过8位的数据,都要以8位为单位保存到文件中,因为磁盘是以字节8位为单位来保存数据的。通过莫尔斯编码可以更好了解哈夫曼算法,莫尔斯编码是把一般文章中出席那频率高的字符用短编码来表示。可以使用哈夫曼树构造编码体系,就算各字符数据位数不同,也可以做成明确区分的编码。哈夫曼算法能够大幅提升压缩比率。
那么图像文件的数据形式是怎样的,Windows上标准的图像数据形式是BMP,还有很多不同的数据形式例如JPEG,TIFF,GIF这些数据形式都会使用一些技法对图片进行压缩,进而出现了可逆压缩和非可逆压缩。
压缩的种类有很多,需要根据不同的环境进行运用。