15年5个月前IP:未同步
313054
10楼
怎么用一个两位数去表示任意一个三位数或四位,五位数、、、、?两位数才100个,三位数却1000个,怎么分才不重叠?很明显不可能嘛。一个数字就一个唯一的对应值。两位数表示不了1000个不同的值。

我们现在看到的压缩是怎么回事呢?那是取巧而已,比如说图画是由象素构成,而一般相邻的象素色差不会太大。那么记录时其实可以不用一个个象素去记录,可以矢量的方法先记下某一片的顔色基调,然后每个象素只记偏差值就可以了。每个象素能省一半的字节以上。

又或者象ZIP算法那样,不直接记录象素,只记录某象素出现在哪个位置(没出现的象素就直接忽略了),当重复的象素多时,就能省字节。

但当这些象素是真正的完全随机时,就没什么压缩的可能了,(可以容许略为失真的压缩方法除外。)

其它文件也可以当成画象来压缩,因为电脑里什么都是数字。抛开图象啊象素啊这些来想,其实都只是对数字的处理方法而已。一个数字没法压缩,但对一堆数字却可以用不同的方法来记录,取巧就取在这里。

压缩某段数据与生成某段数据是两个完全不同的概念,生成某段数据只要给出个规则就行,比如数组1=1,数组2=2、、、、、可以生成无穷无尽长的数组。

人家是要在64K的长度里写完短片的生成规则。而不是把任意数值压到64K。
评论
文号 / 313054

十步芳草
名片发私信
学术分 0
总主题 35 帖总回复 239 楼拥有证书:笔友
注册于 2011/06/09 19:41:07最后登录 2018/02/22 01:56:53
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的