怎么用一个两位数去表示任意一个三位数或四位,五位数、、、、?两位数才100个,三位数却1000个,怎么分才不重叠?很明显不可能嘛。一个数字就一个唯一的对应值。两位数表示不了1000个不同的值。
我们现在看到的压缩是怎么回事呢?那是取巧而已,比如说图画是由象素构成,而一般相邻的象素色差不会太大。那么记录时其实可以不用一个个象素去记录,可以矢量的方法先记下某一片的顔色基调,然后每个象素只记偏差值就可以了。每个象素能省一半的字节以上。
又或者象ZIP算法那样,不直接记录象素,只记录某象素出现在哪个位置(没出现的象素就直接忽略了),当重复的象素多时,就能省字节。
但当这些象素是真正的完全随机时,就没什么压缩的可能了,(可以容许略为失真的压缩方法除外。)
其它文件也可以当成画象来压缩,因为电脑里什么都是数字。抛开图象啊象素啊这些来想,其实都只是对数字的处理方法而已。一个数字没法压缩,但对一堆数字却可以用不同的方法来记录,取巧就取在这里。
压缩某段数据与生成某段数据是两个完全不同的概念,生成某段数据只要给出个规则就行,比如数组1=1,数组2=2、、、、、可以生成无穷无尽长的数组。
人家是要在64K的长度里写完短片的生成规则。而不是把任意数值压到64K。
200字以内,仅用于支线交流,主线讨论请采用回复功能。