根据 硅谷 最新情报,有比 Huffman code 更好的压缩法
叫做 Middle out
详情可参见 http://www.fun698.com/vod-read-id-61595.html
最后成果,可将任意 3D 无压缩影片 以无失真压缩成 1/4 以下大小
刚开始创办人还以为是程式出错,没想到全部正确。
因而获得最大奖。还有更厉害的吗?
※ 引述《roger29 (=======中间选民=======)》之铭言:
: 因为压缩的比例存在着理论上的极限
: 假如我现在有A B C D 四个符号
: 要表示成数位资料的话 直观的方法是让A=00 B=01 C=10 D=11
: ASCII code就是类似的7码等长度编码方法
: 不过呢 这五个符号出现的机率可能不是一样的
: 假设Pr(A)=0.5 Pr(B)=0.2 Pr(C)=0.2 Pr(D)=0.1
: 那么用上面直观的方法编码
: 我的codeword平均长度是 0.5*2+0.2*2+0.2*2+0.1*2=2
: 那么我们有没有办法让我的平均长度变得更小一点呢(也就是达到所谓的资料压缩)
: 有的 我们可以善用A B C D四个符号出现机率不相等的特性
: A出现的机率最高 所以我直观上希望表示A的二进制长度可以短一点才有效率
: D出现的机率最低 所以我就会希望表示D的二进制长度可以长一点没关系
: 那么换一个方式表示:A=0 B=10 C=110 D=111
: 这样表示的话我新的codeword平均长度就是 0.5*1+0.2*2+0.2*3+0.1*3=1.8
: 比原本每个符号都用2个bits来表现还要更小
: (注:这个编码方法为著名的Huffman code)
: 所以我们可以发现 如果能善用资料间的相关性
: 是可以减少用数位来表示这些资料所需要的资料大小
: 但是当然不可能无限制的缩小
: 根据伟大的数学家 消息理论的开山始祖 Claude Shannon的source coding theorem
: 简单来说
: 给定一个discrete memoryless source S 就像我上面的四个字母
: 那么我们能够达到的平均codeword长度会大于等于S的entropy
: S的entropy定义成 n
: