- 积分
 - 20
 
- 阅读权限
 - 10
 
- 主题
 - 10
 
- 帖子
 - 53
 
- 注册时间
 - 18-12-5
 
- 在线时间
 - 46 小时
 
- UID
 - 10094
 
- 精华
 - 0
 
 
 
 
 
列兵 
   - 大洋
 - 159 
 
    - 阅读权限
 - 10
 
 
 
 
 | 
 
 
 楼主 |
发表于 19-9-15 00:20
|
显示全部楼层
 
 
 
编码】 
 
CompositionObject使用RLE进行了压缩。算法简述: 
1. 对图形的每一行进行编码,编码完成后以两个0表示行结束。各行数据的编码结果连续保存。 
2. 对每行编码时,以字节为单位。对每一个字节值x,统计该字节值连续出现的次数(行程)Nx。 
3. 写入RLE编码时,使用如下策略: 
 a.x为0时,先写入1字节0,再写入变码后的Nx,变码规则f(Nx, 0) 
 b.x为非0时,若Nx不大于2,则直接照抄1或2个x 
 c.x为非0时,若Nx大于2,则先写入1字节0,再写入变码后的Nx,变码规则f(Nx, 1),再写入x 
4. 变码规则f(Nx, S): 
 a.若Nx的值较小,表示为2进制时不超过6位,则输出1字节值,低6位为Nx, 第6位为0,第7位即最高位为S; 
 b.若Nx的值超过6位,则输出2字节值,低14位为Nx,第14位为1,第15位即最高位为S。字节序为大端。 |   
 
 
 
 |