Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-27, 13:25   #1
rain1206
初级会员
 
注册日期: 2009-02-26
年龄: 39
帖子: 18
声望力: 17
rain1206 正向着好的方向发展
默认 [求助]分段编码原理及算法

由于图像相邻像素点的灰度级具有连续和集中的特点,
可以对灰度级进行分段编码。图像像素的灰度级有256 级,
每像素点的灰度级用8 比特表示。将256 级分为16 段,每一
段包括16 级,用高4 位表示段数,低4 位表示段内级数。当连
续相邻像素点的灰度级落在同一段中时,只需用一个4 比特
表示它们共同的段数,在此称作段码,然后每个像素只需用4
比特来表示各自在段内的级数。只有当相邻像素的灰度级跨
段的时候,才需要使用另一个4 比特表示改变了的段数。解
码时,将表示共同段数的段码作为高4 位,每个段内级数作为
低4 位,还原成原始图像对应像素点的8 比特灰度级。这样,
就能利用图像相邻像素点的灰度级具有连续和集中的特点以
达到压缩图像的目的。
接下来讨论在图像解压过程中,怎样识别灰度级跨段的
情况。由于灰度级的段数和级数都是用4 比特表示的,无法
区分哪个4 比特是表示段数,哪个4 比特是表示级数,所以必
须使用特殊码字来区分。在此采用1111 来区分,即编码时,遇
到灰度级跨段便在段码前插入1111,而当段内级数为1111 时,
将其减1,用1110 表示;解码时,遇到1111 便将其去掉,并将紧
随其后的4 比特作为段码,然后在遇到下一个1111 之前,将每
个4 比特作为段内级数分别与段码一起作为对应像素点的灰
度级。如果连续有两个1111,则第2 个1111 应作为实际的数
据(即段码)。

我想根据这个思想编MATLAB程序,希望高手可以指点一下!
rain1206 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 07:13


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.