JPEG-LS压缩算法研究
2016-07-08 13:53
260 查看
JPEG-LS压缩算法研究算法研究
Lossless JPEG是联合图像小组在1993年添加的一个实现图像无损压缩的标准,这个也是联合图像专家小组提出的关于图像无损压缩的一个概括性概念,他包含JPEG2000和JPEG-LS。
Lossless JPEG相对于有损JPEG图像压缩标准,使用了完全不同的方式:它使用待预测像素点的三个最相邻的三个像素点(上,左,左上)作为预测参考点,且对预测误差值使用熵编码。标准的libjpeg(专门用于助力JPEG图像的函数库)没有实现对JPEG-LS实现编解码,但是美国一家奥希阿纳矩阵公司,有一个叫做默奇森的人做到了,他写了一个补丁扩展了libjpeg函数库,实现无损的JPEG图像压缩。Lossless
JPEG在医学图像处理的应用上非常出名,或者在处理一些数码相机得到的DNG原始图像,在其他领域机会没有什么应用。
JPEG-LS模型
JPEG模型使用的DCT变换模型不能保证编码的输入和解码的输出是一致的,Lossless JPEG不同于JPEG使用的DCT变换,Lossless JPEG使用一种叫做DPCM的预测编码模型。它通过利用图像中已经编码的相邻像素点来预测。
图示 DPCM编码模型
图示1:简化无损压缩模型
许多预测方式直接采用带预测像素点的上方和左边的平均值。DPCM直接编码预测像素点的差值,通常相邻像素点的预测差值都接近于0.
图示2:三个在待预测sample(X)点的分布(A,B,C)
预测器联合三个相邻像素点A,B,C来预测在位置X的值,这三个像素点都是已经被编码过的像素点,预测的方式有多种,其中方式1,2,3位一维预测器,方式4,5,6,7为二维预测器,当所有的sample被预测时,samples之间的差值就可以获得,那么就可以使用熵编码实现无损压缩如:哈弗曼编码或者算术编码。
图示3 8种预测方式
一般,该无损压缩算法模型对彩色图像能够达到2:1的压缩比,但是应用范围目前却很局限,如医学图像,和对DNG图像的处理,且对于高比特图像图10,12,14bpp其运算比较复杂。
JPEG-LS:
JPEG-LS是一种对连续色调图像的无损或者近无损的压缩标准,它的官方名称叫做:ISO-14495-1/ITU-T.87。它是由独立且有区别的建模阶段和编码阶段组成,其简单而又有效。JPEG-LS追求一种更加低复杂度的无损或者近似无损的图像压缩标准,这样就可以比无损JPEG压缩效率更好。它能够得以发展是因为基于哈弗曼编码的无损JPEG压缩或者其他压缩算法其压缩效果不理想,且在刚开始时无法做到完全去相关性.JPEG-LS,在去相关性上表现的较为良好,该标准的第一部分是在1999年完成的,第二部分是在2003奶奶对外公开的,且引入了算法编码。JPEG-LS的核心是LOCO-I算法,预测,建立误差模型,基于上下文误差编码是该算法的核心所在。这些低复杂度的算法模型是基于假设预测误差遵守双边几何分布(或者称为离散拉普拉斯分布)且使用类似于Golomb的编码方式(该方式对于几何分布编码效果较好)。除了无损压缩,JPEG-LS也有近无损压缩,该近无损压缩的最大误差值可以由编码段控制。JPEG-LS压缩在速度上比JPEG
2000快的多,且效果比无损的JPEG标准压缩要好的多。
LOCO-I算法:
(1)预测/去相关性:
在LOCO-L算法中,原始的边缘检测(水平方向和垂直方向的边缘)是通过检测当前像素点X相邻的像素点得到的,如上图2所示,像素点B用于垂直边缘的预测,而像素点A常用于水平方向的预测,这个简单的预测方式叫做(Median Edge Detection)MED预测或者LOCO-I预测,像素点X按照如下的方式做预测:
根据情况有三种不同的选择预测方式:
1)当在X的左侧存在是垂直边缘时,选择像素点B;
2)当在X的上方存在水平边缘时,选择像素点A;
3)当没有检测到边缘时使用A+B-C;
(2)上下文模型
附:
1、对于边缘检测的方式,可以实际举例来更加形象的说明。
Lossless JPEG是联合图像小组在1993年添加的一个实现图像无损压缩的标准,这个也是联合图像专家小组提出的关于图像无损压缩的一个概括性概念,他包含JPEG2000和JPEG-LS。
Lossless JPEG相对于有损JPEG图像压缩标准,使用了完全不同的方式:它使用待预测像素点的三个最相邻的三个像素点(上,左,左上)作为预测参考点,且对预测误差值使用熵编码。标准的libjpeg(专门用于助力JPEG图像的函数库)没有实现对JPEG-LS实现编解码,但是美国一家奥希阿纳矩阵公司,有一个叫做默奇森的人做到了,他写了一个补丁扩展了libjpeg函数库,实现无损的JPEG图像压缩。Lossless
JPEG在医学图像处理的应用上非常出名,或者在处理一些数码相机得到的DNG原始图像,在其他领域机会没有什么应用。
JPEG-LS模型
JPEG模型使用的DCT变换模型不能保证编码的输入和解码的输出是一致的,Lossless JPEG不同于JPEG使用的DCT变换,Lossless JPEG使用一种叫做DPCM的预测编码模型。它通过利用图像中已经编码的相邻像素点来预测。
图示 DPCM编码模型
图示1:简化无损压缩模型
许多预测方式直接采用带预测像素点的上方和左边的平均值。DPCM直接编码预测像素点的差值,通常相邻像素点的预测差值都接近于0.
图示2:三个在待预测sample(X)点的分布(A,B,C)
预测器联合三个相邻像素点A,B,C来预测在位置X的值,这三个像素点都是已经被编码过的像素点,预测的方式有多种,其中方式1,2,3位一维预测器,方式4,5,6,7为二维预测器,当所有的sample被预测时,samples之间的差值就可以获得,那么就可以使用熵编码实现无损压缩如:哈弗曼编码或者算术编码。
图示3 8种预测方式
一般,该无损压缩算法模型对彩色图像能够达到2:1的压缩比,但是应用范围目前却很局限,如医学图像,和对DNG图像的处理,且对于高比特图像图10,12,14bpp其运算比较复杂。
JPEG-LS:
JPEG-LS是一种对连续色调图像的无损或者近无损的压缩标准,它的官方名称叫做:ISO-14495-1/ITU-T.87。它是由独立且有区别的建模阶段和编码阶段组成,其简单而又有效。JPEG-LS追求一种更加低复杂度的无损或者近似无损的图像压缩标准,这样就可以比无损JPEG压缩效率更好。它能够得以发展是因为基于哈弗曼编码的无损JPEG压缩或者其他压缩算法其压缩效果不理想,且在刚开始时无法做到完全去相关性.JPEG-LS,在去相关性上表现的较为良好,该标准的第一部分是在1999年完成的,第二部分是在2003奶奶对外公开的,且引入了算法编码。JPEG-LS的核心是LOCO-I算法,预测,建立误差模型,基于上下文误差编码是该算法的核心所在。这些低复杂度的算法模型是基于假设预测误差遵守双边几何分布(或者称为离散拉普拉斯分布)且使用类似于Golomb的编码方式(该方式对于几何分布编码效果较好)。除了无损压缩,JPEG-LS也有近无损压缩,该近无损压缩的最大误差值可以由编码段控制。JPEG-LS压缩在速度上比JPEG
2000快的多,且效果比无损的JPEG标准压缩要好的多。
LOCO-I算法:
(1)预测/去相关性:
在LOCO-L算法中,原始的边缘检测(水平方向和垂直方向的边缘)是通过检测当前像素点X相邻的像素点得到的,如上图2所示,像素点B用于垂直边缘的预测,而像素点A常用于水平方向的预测,这个简单的预测方式叫做(Median Edge Detection)MED预测或者LOCO-I预测,像素点X按照如下的方式做预测:
根据情况有三种不同的选择预测方式:
1)当在X的左侧存在是垂直边缘时,选择像素点B;
2)当在X的上方存在水平边缘时,选择像素点A;
3)当没有检测到边缘时使用A+B-C;
(2)上下文模型
附:
1、对于边缘检测的方式,可以实际举例来更加形象的说明。
相关文章推荐
- JPEG-LS压缩算法研究
- java rabbitmq-java-client-bin-3.6.3 rabbitmq-server-generic-unix-3.6.3
- RecyclerView添加多种布局
- 项目中遇到的一些前后台数据交互小问题
- python Django连接数据库问题
- 浅谈Spark应用程序的性能调优
- Spark的任务调度
- Unity3d 中 Material 与 ShareMaterial 引用的区别
- 开放 mt6735 android5.1 dev 查看权限
- 新手学appium-unittest框架中的断言
- Spring Security XML Hello World
- Linux下Tomcat开机自动启动
- Java-实现找出数组中一个数字出现次数最多的数字
- JavaScript Math 对象总结
- Android logcat使用
- 设置button图片和文字
- redis数据类型之set常用操作
- shutdown命令
- Android 5_x SEAndroid_SElinux内核节点的读写权限