让我们看看这个无关紧要的方法, 在许多情况下,这个方法可能是最佳的:
它将储存:
- 范围中元素的数量(31位数,因为爪哇的列表限于231-1元素)。
- 之后为每个指数1位数,标明该元素是否在集中存在。
这是第一个版本的分形图像压缩器, 用来存储来自三角形分割和合并的数据 。
虽然这不是最理想的, 因为随着拆分的迭代进展, 要储存的元素数量减少, 只占总量的很小的百分比, 这样小的编码就可以大大改进。
现在的目标是改进这个微小的编码, 看看是否可以从使用的位数获得一个更压缩的编码 。
第一种办法 :当集中的元素数量大大小于范围大小时,我们可以考虑储存现有的指数。
在这种情况下,使用是:
- 范围中元素数的 31 位数。
- 集中元素数的 31 位数 。
- 31 位元 * 集中的元素数。
第二种办法 我们增加每个存储元素的位数:
- 区域中元素数的 31 位数 31 位数。区域中最大元素数的位数( numBits 缩写 )将予以计算。
- 要存储的 5 位数 numBits 缩写 ..所以,如果范围中的元素数量是1023, 10将存储在5位数内。
- numBits 缩写 位元,以在“设定”中存储元素数。
- numBits 缩写 位元 * " 设定 " 中包含的元素数。
我们渐渐接近一个更好的编码...
第三近似度 。我们意识到,如果我们按向上顺序对设定进行排序,三角形(连续元素之间的差异)可能会以比数小于幅度绝对值的位数编码:
- 范围中元素数的 31 位数。
- 我们计算最小的 numBitsElem 来编码元素 。我们还计算三角洲列表(一组元素排序列表中顺序元素之间的差异列表 ) 。最后,我们还计算 numBits 圆形
- 要存储的 5 位数 numBits 缩写 ..
- 要存储的 5 位数 numBits 圆形 ..
- numBits 缩写 位元,以在“设定”中存储元素数。
- numBits 圆形 位元 * " 设定 " 中元素的数量。
看来我们已经达到最佳编码了,对吧?
我们继续...
第四近似度 我们集中关注一个事实,即可能有更多的较小的三角洲,也许只有几个更大的三角洲打破了``````````````````。 numBits 圆形 `.'。
在这些条件下,我们可能会发现` nomOptiminumBits 磁盘 `小于上限 ' num maxBits 三角形 `,而后者又小于或等于` numBits 缩写 `.'。
但是,我们如何编码超过`的三角洲元素? nomOptiminumBits 磁盘 ????
既然三角洲永远不会是0(在Set中没有重复元素), 我们可以用值0来表示它是一个特殊值。
之后是0,然后是三角洲的值, 但这次编码为` num maxBits 三角形 `.'。可按以下方式计算比特总数:
- 范围中元素数的 31 位数 31 位数。我们计算最小的 numBits 缩写 能够编码一个元素。 我们还计算 deltas 列表(《原则和规则》中顺序元素列表的连续元素之间的差异列表 ) 。
- 31 位元,以存储“一组”中元素的数量。
- 要存储的 5 位数 nomOptiminumBits 磁盘 ..
- 要存储的 5 位数 num maxBits 三角形 ..
- nomOptiminumBits 磁盘 位元 * " 设定 " 中元素的数量。
- num maxBits 三角形 位数 位数 * 超过的三角形数 nomOptiminumBits 磁盘 ..
我们已经达到最佳编码了吗?
第五近似( 第五近似) 既然我们已经计划好了...我们可以考虑一下互补的情况...能否用同样的算法将成套工具的补全编码, 产生更压缩的结果?
这套材料的补充材料被理解为另一套材料,与原材料脱节,原材料与原材料的结合是整个范围。
也就是说,补充数据集将具有原始数据集所没有的范围的所有要素,而原始数据集中没有这些要素。
美的在于,从一组中,很容易获得补充组,因此,在将补充组编码之后,我们可以获得原始组。
显而易见的应用程序是一组包含除一个或几个以外范围的所有元素的集合。 。 。 。
好吧... 如果我们只储存缺位的(补充组), 它的储存规模会小得多,对吧?
这个案子的编码可能是这样的:
- 范围中元素数的 31 位数 31 位数。我们计算最小的 numBits 缩写 来编码元素。我们也计算 deltas 列表(《原则和规则》中顺序元素列表的连续元素之间的差异列表) 。
- 1 位元, 以存储我们是否存储原始集还是补充 。这是额外的部分。
- 31 位元,以存储“一组”中元素的数量。
- 要存储的 5 位数 nomOptiminumBits 磁盘 ..
- 要存储的 5 位数 num maxBits 三角形 ..
- nomOptiminumBits 磁盘 位元 * " 设定 " 中元素的数量。
- num maxBits 三角形 位数 位数 * 超过的三角形数 nomOptiminumBits 磁盘 在他们出现的位置。
嗯... 现在我们在聊天了
但我知道,如果所有这些奇迹都能完成, 寻找其他模式,或者仅仅使用一个无损的压缩机, 比如拉链或7z, 无法完成什么。
那得等下 下次在火炉上...