游程编码
定义:
用一个 符号值/串 代替具有相同值的连续符号(连续符号构成了一段连续的“游程”。游程编码因此而得名),使符号长度少于原始数据的长度。
应用场景:
游程编码经典应用场景就是比特流中的冗余情况。例如有一串比特流:0000000000000001111111000000011111111111,该比特流中有15个0,然后是7个1,然后是7个0,然后是11个1。因为0和1总是交替出现的,我们只要表示出游程长度即可。上面的比特流可用游程编码压缩为:1111011101111011(15=1111,7=0111,7=0111,11=1011)。
游程编码被广泛使用于保存图像和扫描文档。不适用于比特流不含较长游程的情况(比如典型的英文文档)。
Q:
- 应该用多少比特记录游程长度?
- 某个游程长度超过了能够记录的最大长度怎么办?
- 当游程长度所需的比特数小于记录长度的比特数怎么办?
A:
- 游程长度应该在0-255之间,使用8位编码;
- 在需要的情况下使用长度为0的游程来保证所有游程的长度小于256;
- 较小的游程