第 27 卷 第 6 期
2006 年 11 月
微 计 算 机 应 用
MICROCOMPU IER A PPL ICA TIONS
Vol. 27 No. 6
Nov. 2006
JasPer 软件 :JPEG2000 标准的实现
李树晓 林 鑫
( 同济大学计算机系 上海 200092)
摘 要 :J asPer 软件是最新的静态图像压缩标准 J PEG2000 的实现 ,它提供了一种表示图像的方法 ,可以处理图像数
据以及以各种格式输入输出 。文章介绍了 J asPer 概况 ,特点 ,分析了软件核心 J asPer library ,详细地讨论了 JasPer 的
应用 ,并利用软件得出在 J PEG2000 中 ,小波变换分解层次为 5 或者 6 的时候压缩效果 ( PSNR) 相对最优 ;代码块越
大 ,压缩效果 ( PSNR) 越好 。最后指出了 J asPer 软件不足的地方 ,提出了改进的方案 。
关键词 : JasPer JPEG2000 JasPer Library 应用程序
JasPer Soft ware :JPEG2000 Implementation
(Dept of Computer Science , TongJi University , shanghai ,200092 ,China)
L I Shuxiao ,L IN Xin
Abstract :Jasper is a software based on J PEG2000. It provides a means for representing images , and facilitates the ma
nip ulation of image data and the import &export of such data in many format s. In this paper , it introduces the feature
and analyzers the software core —J asPer Library. Then we discuss it s application in detail and find that when the de
composition level is five or six , the quality ( PSNR) of image compression is higher and when the code block size is big
ger , the quality ( PSNR) of image comp ression is higher. Last , we point out the defect s of J asPer and give many im
proved suggestions.
Keywords :J asPer ,J PEG2000 ,J asPer Libaray ,Application program
1 前言
2 Jasper Library
J PEG2000 [1 ] 是国际化标准组织 ( ISO) 和国际电子技术联
盟 ( IEC) 联合推出的新一代静止图像压缩标准 ,自 1997 年开
始起草到 2000 年 12 月国际标准 ( IS) 正式发布 。它提供了许
多新的特征 ,其中包括 : ①低码率下的超级压缩特性 ; ②连续
色调和二值图像压缩 ; ③支持无损和有损压缩 ; ④渐进性传
输 ; ⑤感兴趣区域编码 ; ⑥码流的随机访问和处理 ; ⑦良好的
容错性 。将在医疗图像 、电子图书馆 、彩色传真 、数字摄影 、遥
感等方面广泛应用 。与此同时 ,支持此标准实现的软件要求
应运而生 。
JasPer [2 ] 是遵守 J PEG2000 标准实现的免费的开放性的
非商业软件 ,伴随着 J PEG2000 标准的起草制定 、征求意见和
发布过程中研制出来的 。软件提供表示图像的方法 ,可以处
理各种图像数据以及各种格式的输入输出 ,文献 [ 3 ] 表明 ,
J asPer 软件已经成为一个非常有用的 J PEG2000 实现的工
具 ,在 J PEG - 2000 Part - 5 标准 [ 4 ]中已经将 J ASPER 软件
作为 J PEG2000 Part - 1 编码系统的参考软件 。
本文于 2005 - 11 - 07 收到 ,2005 - 12 - 06 收到修改稿。
J asPer 软件的核心是 J asper Library ,其四个应用程序都
调用了此 library。JasPer 库提供了显示图像 ,色彩轮廓和其
他相关实体的类 。每一个类与其他应用程序都有良好的接
口 ,易于以后扩展 。对图像的处理 ,以各种格式输入输出各种
格式和执行基本的色彩管理操作都是通过 J asPer 库完成的 ,
可见其在软件中的核心地位 。其结构如图 1 。
图 1 软件架构
此库由两种不同类型的代码组成 : ①核心代码 ②编码/ 解
码驱动器 。核心代码提供了一个基本的框架 ,库就建立在这
之上 。编码/ 解码驱动器提供了以各种格式编码解码的方法 。
库中的编码/ 解码既是模块化 ,也是易于扩展的 。在核心
代码和编码解码驱动器之间的接口定义的很好 。添加一种新
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
∃
6 期
∃
∃
∃
557
李树晓 等 :JasPer 软件 :J PEG2000 标准的实现
的图像格式也很容易实现 ,无需要修改库 ,只需要提供代码驱
动程序即可 。
2. 1 核心代码
简要介绍核心代码提供的几个关键的类 。
(1) Image Class 。此类的作用就是表示一幅图像 ,方法
如 :创建和分解图像 ,查询图像的性质 ,查询分量的性质 ,设置
图像的属性
(2) Stream Class 。此类提供了类似于标准的 C 库的 I/ O
流 ,还有一些额外的功能 ,如可以联系到一个对象而不是用文
件描述符 。
(3) Fixed - point number Class 。提供了支持算术运算 ,
类型转换以及取余运算功能 。
2. 2 编解码驱动器
编解码器主要提供了图像以一种格式编码/ 解码的方法 。
每一个驱动程序都包括三种方法 : ①编码 ②解码 ③确认方
法 。编码是将一幅图像转换成流 。解码方法从流中的编码数
据产生图像 。确认方法是测试流中的数据是否正确地被图像
格式格式化 。因此 ,如果想使软件支持一种新的图像格式 ,只
需要完成上述三个步骤即可 。
3 应用程序
Jasper 软件包含四个应用程序 : jasper 、jiv 、imginfo 和
imgcmp 。软件都是通过执行这些应用程序而完成某些操作 。
(1) jasper 应用程序的介绍和使用 。简而言之 ,此应用程
序主要是完成图像格式的转换 ,在 J ASPER 软件中 ,支持的
格式有 BMP ,J P2 (J PEG - 2000 J P2) ,J PC (J PEG2000 Code
Stream) ,J P G ,P GX ,PNM ,MIF ,RAS。应用举例 。
命令格式为 jasper[options ]
Jasper -
- help :打印帮助信息 ,其中包括命令的选择 ,
命令的含义等等并退出
Jasper - f lena. bmp
F lena. jp2
O rate =
O mode = real :将一幅 BMP 格式的 lena (图 2 (a) 经过
0. 01
有损压缩 ,以 100 :1 的压缩比压缩成 J PEG2000 格式 lena. jp2
(图 2 (b) ) 。
T jp2
(2) jiv 应用程序的介绍和使用 。此应用程序主要是为了
显示图片 。
命令格式为 jiv[options ] [file1 file2 …]
举例如下 :
jiv
loop lena. jp2 :显示刚才压缩后的 lena. jp2 图像 ,即
图 2 (b) 。其中 - loop 的含义为图片一直显示 。
(3) imgcmp 应用程序的介绍和使用 。此应用程序是使用
相关参数来比较两幅图片的差异 (具体参数请见下面 metric
的值) ,要求两副图片有相同的形貌 (相同的高度 、宽度 、分量
的数目等) 。
图 2 原始图像和重构图像
格式为 imgcmp [options ]
即 imgcmp
f referenct _image_file
F other_image_
file [ - m metric ]
metric 的值可以为 p snr (peak signal to noise ratio) ,mse
(mean squared error ) , rmse ( root mean squared error , pae
(peak absolute error) , mae ( mean absolute error) 和 equal (e
quality) .
由于论文中都是使用 PSNR 参数进行举例的 ,所以在此
做简单解释 。
PSNR :即峰值信噪比 ,通常用分贝表示。在图像处理的过
程中 ,可将信号功率当作是峰值图像样值数的平方 ,而噪声功率
可认为是该图像中平均平方误差 MSE 的平方 ,值定义为
PS N R = 10
log
2552
M S E2
N - 1
∑
y = 0
M - 1
1
MN ∑
x = 0
MS E =
[ f′( x , y) -
f ( x , y) ]2
1
2
,这里 f
( x , y) 表示输入图像 , f′( x , y) 表示由对输入先压缩后解压缩
得到的 f ( x , y) 的估计量或近似量 ,图像大小为 M ×N 象素 。
PSNR 值越大 ,表明图像失真越小 。举例 :
测试分块大小对图像性能的影响
将块分别设为 8 ×8 ,16 ×16 ,32 ×32 ,64 ×64 ,压缩比统
一设置为 0. 02 ,比较 PSNR ,图像大小
/ / 注释 ,将图像按照块设置的大小进行压缩
jasper - f
F lena8. jp2
lena. bmp
T jp2
O cblk
width = 8
jasper
O cblkheight = 8
- f
O rate = 0. 02
lena. bmp F lena16. jp2 T jp2 O cblkwidth =
16 O cblkheight = 16 O rate = 0. 02
jasper
- f
lena. bmp F lena32. jp2 T jp2 O cblkwidth =
32 O cblkheight = 32 O rate = 0. 02
jasper
- f
lena. bmp F lena64. jp2 T jp2 O cblkwidth =
64 O cblkheight = 64 O rate = 0. 02
/ / 注释 ,得出 PSNR
imgcmp
f lena. bmp
F lena8. jp2
m p snr
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
∃
微 计 算 机 应 用
2006 年
f lena. bmp
f lena. bmp
f lena. bmp
F lena16. jp2
F lena32. jp2
F lena64. jp2
m p snr
m p snr
m p snr
262144 KB 。
4 软件不足的地方
657
imgcmp
imgcmp
imgcmp
结果见表 1
表 1 块大小对图像压缩性能的影响
名称
块的长度 块的宽度
lena8. jp2
lena16. jp2
lena32. jp2
lena. 64. jp2
8
16
32
64
8
16
32
64
PSNR
28. 898602
30. 614238
30. 980770
30. 995968
从表 1 可看到 ,随着分块越大 ,图像质量越好 ,这说明在满足
存储器要求的条件下 ,选择越大的分块 ,对图像的压缩质量是有
帮助的。测试小波变换分解层数对编码性能的影响。
jasper - f lena. bmp
F lena1. jp2
T jp2
O rate = 0. 08 …jasper
O numrlvls = 20
lvls = 1
jp2
结果如下图 3 所示 。
T jp2
- f lena. bmp
O rate = 0. 08
O numr
F lena20.
图 3 小波变换分解层数对编码性能的影响
从图 3 中可看出 ,在分解层次 5 时编码达到最优 ,与默认
的分解层次 6 很接近 。从 1~4 , PSNR 急剧上升 ,在 5~6 达
到最高接近平稳 ,从 10~11 急剧下降 ,从 11 之后又恢复平
稳 。所以在编解码的过程中 ,我们可以选择默认的分解层次
6 ,也可以选择分解层次 5 达到相对最优 。
(4) imginfo 应用程序的介绍和使用 。此应用程序较为简
单 ,就是显示图像的信息 ,包括格式 ,分量数目 ,长度 ,宽度 ,大
小 。
f lena. jp2
举例 :imginfo
结果 :jp2 1 512 512 8 262144
表明 :图像的格式为 jp2 ,分量的数目为 1 ,图像尺寸 512
×512 , 存 储 图 像 所 需 要 的 比 特 数 为 8 , 图 像 大 小 为
尽管 J ASPER 软件是一个非常有用的工具 ,在各个领域
已经得到广泛的应用 ,但是仍然有不足 ,值得将来改进 。
(1) 图 像 显 示 速 度 较 慢 。用 jiv 应 用 程 序 显 示 一 幅
2. 55 KB的 lena. jp2 ,需要大概 5s 的时间 ,无法满足实际应用
的需求 ,在 Windows 平台上 ,使用图形设备接口 GDI ( Graph
Device Interface) 可提高效率 。
(2) 对 以 存 在 的 格 式 支 持 不 够 。除 了 能 较 好 支 持
J PEG2000 格式的图片外 ,对 BMP 等格式支持不足 ,不支持
J PEG L S ,PN G , GIF。增加功能支持以存在的若干图像格
式 。
(3) 界面不够友好 。J asPer 提供的是基于控制台的应用 ,
对用户来说操作不方便 ,因此以软件核心代码为基础 ,开发可
视化的界面 ,使之操作更方便 ,使用更简单 。
5 结束语
本文主要介绍了 JasPer 软件 ,包括软件的特点和应用 ,
并举例进行了说明 。分析其中的核心 - J asPer Library。指
出了软件不足的地方 ,提出改进的方案 。由于软件是开放源
代码的 ,又是官方推荐的软件 ,所以深入研究此软件意义很
大 ,能更好地实现 J PEG2000 标准服务 。通过本文的介绍 ,也
可以此为基础 ,按自己的需要 ,开发出基于 J asPer 编解码为
核心的软件 。
参考文献
1 Michael D. Adams. The J PEG - 2000 Still Image Compres
sion Standard. [ IS0/ IEC J TC 1/ SC 29/ W G 1 N 2412 ,
SEP. 2001.
2 Michael. D. Adams. J asPer software reference manual.
ISO/ IEC J TC 1/ SC 29/ W G 1 N 2415 ,D EC. 2002.
3 International Organization for Standardization and Interna
tional Electrotechnical Commisssion , ISO/ IEC 1544 - 5 :
2002 Information technology - J PEG2000 image coding
system - Part 5 : Reference software [ S]
4 Michael. D. Adams. J asPer project homepage. http :/ /
www. ece. uvic/ ca/ mdadams/ jasper , 2002.
5 [日 ]小野定康. 铃木纯司. 强增福 (译) . J PEG2000 技术.
北京 :科学出版社 ,2004.
作者简介
李树晓 ,男 ,同济大学计算机系硕士 ,主要研究方向 :图像
压缩模式识别和算法 。
林鑫 ,男 ,同济大学计算机系硕士 ,主要研究方向 :图像压
缩 、模式识别和算法 。
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net