目录
- 图形的压缩简介
- 详细说明
- 最优子结构性质
- 举例
- 代码块
- 测试结果
图形的压缩简介
在计算机中常用像素点灰度值序列{p1,p2,….,pn}表示图像。其中,整数pi(1<=i<=n)表示像素点i的灰度值。
灰度值的范围是0~255。因此需要用8位表示一个像素。
压缩的原理就是吧序列{p1,p2,……pn}进行设断点,将其分割成一段一段的。分段的过程就是要找出断点,让一段里面的像素的最大灰度值比较小,那么这一段像素(本来需要8位)就可以用较少的位(比如7位)来表示,从而减少存储空间。
举例及其详细说明
设置三个数组 b[],l[],s[],b代表bits,l代表length,s代表sum。b[]代表每段一个像素点所需要的最小存储空间。
l[]代表每段有几个像素点。s[]代表从0压缩到i的所有像素点占的最小空间。
如果限制l[i]<=255,则需要8位来表示[i]。而b[i]<=8,需要3位表示b[i],所以每段所需的存储空间位l[i]*b[i]+11位。假设将原图分成m段,那么需要
位的存储空间
图像压缩问题就是要确定像素序列{p1,p1,……pn}的最优分段,使得依此分段所需的存储空间最小。
最优子结构性质
设l[i],b[i],1<=i<=m是{p1,p2…..,pn}的最优分段。显而易见,l[1],b[1]是{p1,….,pl[1]}的最优分段,且l[i],b[i],2<=i<=m是{pl[i]+1,…pn}的最优分段。即图像压缩问题满足最优子结构性质.又因为断点可以在最有分段之间随意选择最后来选择最小的一个压缩空间,所以要求最优分段的min。即:
设s[i],1<=i<=n是像素序列{p1,p1,……pi}的最优分段所需的存储位数,则s[i]为前i-k个的存储位数加上后k个的存储空间。由最优子结构性质可得: