我是靠谱客的博主 光亮流沙,最近开发中收集的这篇文章主要介绍图像压缩算法动态规划c语言,图像压缩算法  动态规划,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

图片在计算机存储的是图片中的一个一个像素,也就是像素的灰度值。灰度值的范围是0~255。有灰白图像和彩色图像,它们每个像素的通道数量不同。灰白图像是单通道的,而彩色图像是3个通道的(BGR),也就是彩色图像的每个像素都存放三个灰度值。

现在图像压缩问题是这样的:有一些像素序列{p1,p2,……,pn},当然每个像素值都是0到255之间的。要求对这样的像素序列进行分段,使得最后所需要的存储空间最小。比如有些连续的像素点用4位进行存储就可以,那么就可以将这些像素点分在一段中,就没有必要把这些像素点用8位来存储,这样不就节省了一些存储空间嘛。

可以将问题详细描述分析如下:如果最优的结果是将像素序列分成m段(0<=m<=n),假设每段有l[i]个像素点,我们限定0<=l[i]<=255,那么l[1]+l[2]+……+l[m]=n。所有段的像素点的数量加起来就等于总的像素数。第i段存储l[i]这个值需要8位(log(255)向上取整),每段每个像素的存储位数肯定是一样的(否则这些像素不可能分配在同一段中),用b[i]来表示,每段的存储位数一定是小于等于8的整数,因为灰度值的范围是[0,255],那么存储b[i]这个值呢?可想而知,一定是最多需要3位(log(8)向上取整)。

也就是每段不管有多少个像素点,最起码得存储l[i]和b[i]这两个值,也就是说每段最少需要8+3=11位。当然,每段中有l[i]个像素点,每个像素点的灰度值用b[i]位存储,所以需要l[i]*b[i]位存储每段的像素点的灰度值,再加上上面分析的11位,每段总共需要的存储空间就是l[i

最后

以上就是光亮流沙为你收集整理的图像压缩算法动态规划c语言,图像压缩算法  动态规划的全部内容,希望文章能够帮你解决图像压缩算法动态规划c语言,图像压缩算法  动态规划所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部