如何计算特定分辨率图像采用游程编码(RLE)的最大比特节省量?
关于RLE压缩最大比特节省量表达式的解析
关于表达式第一部分
10×9×7:
你的理解完全正确。根据题目给定的编码规则,每个RLE编码单元由3比特颜色位+4比特游程长度位组成,单单元总长度为7比特。最坏压缩场景下,每一个像素颜色都不同,此时每个像素都需要单独生成一个RLE单元,总比特数就是像素总数乘以单单元比特数,也就是10×9×7——这是RLE编码能产生的最大比特数(最糟糕的压缩效果)。关于表达式中的
15:
这个数值来自游程长度的比特限制。题目规定用4比特表示游程长度,4比特二进制的取值范围是0000到1111,对应十进制0到15。但游程长度代表连续相同像素的数量,0没有实际意义,因此单个RLE单元最多能描述15个连续的相同像素,15就是这个最大可表示值。关于最优压缩场景的逻辑:
你提到的全同色图像确实是最优压缩场景,但受限于4比特游程长度的上限,无法用单个RLE单元描述全部90个像素(90>15)。此时必须把90个像素拆分为90÷15=6个RLE单元,每个单元的游程长度设为最大值15,总比特数就是6×7=10×9/15×7。题目中的表达式计算的是RLE最坏情况比特数与最优情况比特数的差值,也就是RLE自身能实现的最大比特节省量(相对于自身最差效果),而非和未压缩图像的对比值。
内容的提问来源于stack exchange,提问作者Mighty Funkster
相关产品推荐
相关产品推荐

