恢复目标是原始数据本身
无损编码和解码组成一项约定:只要压缩表示完整且符合格式,解码应得到原来相同的字节或符号序列,而不是看起来相似的替代品。程序、文本和记录等内容往往需要保留这种精确对应。
这与有损压缩不同,后者可以舍弃某些信息以换取更小表示。压缩后还原出的图像视觉上近似,并不等于其原始像素或文件字节完全一致;比较之前须先说明希望恢复的对象层次。
参考:[1]
重复片段与不均匀概率
长串相同值可用游程表示,反复出现的片段可通过字典编号复用,不同频率的符号则可分配不同长度的码字。Huffman与LZW采用的组织方式不同,实际格式还可以把多种方法连接起来。
解码所需的树、字典初始状态、符号数量和结束约定,也属于总表示的一部分。有些信息可由双方按规则同步生成,有些需要写进文件;只计算压缩主体而忽略这些额外字节,会夸大收益。
不可能让所有文件都严格缩小
固定长度n的二进制输入有2ⁿ种,比n位更短的二进制串总数却不足2ⁿ。若要求每种输入都能唯一恢复,便无法把它们全映射到更短输出。某些数据必须不缩小,甚至因格式和模型开销而变大。
已经压缩过或缺乏模型可利用规律的数据,常没有相同的进一步收益。评价方案应统计完整输出大小、压缩与解压耗时及内存;“无损”说明恢复性质,不保证压缩率、错误检测或解码资源上限。
参考:[1]