DICOM医学图像压缩技术的实现
2013-11-12王晨希王权任海萍
王晨希,王权,任海萍
中国食品药品检定研究院,北京市,100050
0 引言
随着医学影像技术的发展,出现了包括计算机断层扫描(CT)、核磁共振(MRI)、超声成像(US)、数字减影血管造影术(DSA)等多种医学成像方法和设备,为疾病的诊断提供了重要的依据。需要PACS(Picture Archiving and Communication System)解决数据传输和图像存储,因此如何利用有限的存储空间存储更多的图像,即医学图像压缩成为PACS关键的技术之一。
在PACS的发展过程中,由于医学数字图像的图像格式、传输方式在不同的影像设备和系统中千差万别,给PACS及各种设备之间的图像及其相关信息的交换带来了很大困难。为此,美国放射学会(American College of Radiology:ACR)和美国全国电子厂商联合会(National Electrical Manufactures Association:NEMA)于1985年联合建立了医学数字图像通讯DICOM标准,以利于规范图像及其相关信息的交换。DICOM图像数据源的最大特点是数据量巨大,在医院每天产生的图像及附属信息数据量可以从几十Mb到几十Gb,其中90%以上是图像数据。如此巨大的数据量使得存储空间的管理、图像存取速度和数据可靠性成为重要的问题。其中,对图像进行压缩处理是解决存储空间的一个重要方法。因此,在DICOM作为医学图像与通信的重要标准中,加入了对图像压缩算法的支持。
1 DICOM医学图像压缩技术介绍
图像压缩目的是尽量减少表述数字图像时需要的数据量。通常是通过改变图像的表示方式来达到的,因此压缩和编码是分不开的。第一代图像压缩编码主要是基于信息论的编码方法,压缩比较小。其中变换压缩编码与量化压缩编码是当时的研究热点。变换压缩编码是通过对图像进行正交变换,然后通过量化去除对视觉影响不大的高频分量,再采用行程编码或哈夫曼编码达到压缩效果。按照正交变换的不同,常用的变换压缩编码又分为Karhunerr Loeve变换,离散余弦变换,离散哈德玛变换,离散斜变换等,由于离散余弦变换压缩编码算法具有编码效果较好、运算复杂度适中等优点,目前己经成为国际图像编码标准的核心算法。
近年来,出现了许多新的编码算法,如基于对象(Object-Based)的算法、基于模型(Model-Based)的算法、人工神经网络 (Artificial Neural Network)的算法、小波(Wavelet)算法等等。
2 DICOM医学图像压缩的实现
首先,将DICOM文件中的图像部分提取出来,转换为BMP这种通用格式的文件。然后,将DICOM文件中的非图像信息部分存储到文本文件中,将非压缩的BMP图像转换为JPEG标准的压缩图像,将JPEG标准的图像和非图像信息部分封装到DICOM格式图像中去。其压缩流程如图1所示。
图1 图像压缩流程Fig.1 Image compression flow chart
2.1 DICOM非像素信息部分的提取
根据对DICOM图像文件结构的解析,我们知道DICOM图像文件的数据元素中包含了大量的非图像信息,这些在DICOM标准的PS3.6部分可以查到。数据元素包括了标签、数据类型、数据长度、数据值域等内容,标签在数据元素的最开始位置,唯一标志了数据元素,因此可采用查找标签的方法来确定数据元素。本文采用的思路是首先建立数据元素的字典,然后读取DICOM文件,跳过文件头,取得数据元素的入口地址,开始查找标签并与数据字典中的标签比对,找到相应的VR字段,确定传输语法,并根据数据长度VL取出相应字节数,最后根据传输语法及VR来确定该元素的值,这是一个循环遍历过程,直到查找完最后一个数据。
(1) 数据字典的建立
首先,定义一个结构体变量:
然后定义一个结构体变量的数组,按照DICOM标准的PS3.6部分制作数据字典:
数据字典中的最后一个元素是以{0 x 0000,0x0000,” ”,” ”}结束的。
(2) 数据元素的获取及显示
定义如下结构体变量用来存储查找得到的结果:
用一个List Control控件显示数据元素,并将结果保存到文本文件中。
2.2 DICOM图像转化为BMP图像
DICOM文件可能封装了多幅图像,对于这样的DICOM文件,需要找到每幅图像的偏移量,根据偏移量分次转换。在DICOM图像文件转换为BMP文件只需把DICOM中的像素数据输出到BMP文件即可,但在转换前需考虑窗宽和窗位的问题。
所谓的窗宽是指图像数据显示的范围,窗位是指图像数据显示的中心值,两指标的值根据不同的生理组织结构设定不同的值,当把DICOM文件的全部像素读入内存后,就要考虑如何把DICOM显示到屏幕上,由于DICOM图像像素的灰阶可达到216,而系统的调色板只能显示28种颜色,所以为了较逼真的显示医学图像的全部信息,必须对图像数据进行窗宽、窗位的调整,把窗口区域图像数据线形的转换到显示器的最大显示范围内,这样就可以动态调整窗宽和窗位,观察医学图像的全部信息。可对图像的每个数据按照式(1)进行转换,把数据压缩到256个灰度等级。
式中:y为显示的位图灰度值,x为图像的数据,w为窗宽,c为窗位。
由于DICOM图像和BMP所规定的图像数据的存储顺序不同,所以在存放BMP数据时,其顺序是先从最后一行开始,依次向上,直到第一行。
2.3 BMP转化为JPEG的实现
BMP转化为JPEG一般需要以下步骤:
(1) 色系变换:由于BMP采用了RGB色彩模式而JPEG采用了YCbCr的颜色模型,所以BMP转换为JPEG的准备工作就是色系变换。
(2) 离散余弦变换:根据前面所讲知识,离散余弦变换的目的是把图像从空域变换到频域。经过DCT变换后,矩阵数据称为频率系数,其值以F(0.0)最大,称为DC,其余的63个接近于0的浮点数统称为AC。
(3) 量化:量化需要两个8×8矩阵,分别用来处理亮度和亮度频率系数。量化就是使用量化表对离散余弦变换系数进行量化,量化表是根据人的视觉系统和压缩图像类型特点进行优化的量化系数矩阵,滤掉那些总体上对图像不重要的部分,这一步是有损压缩,量化矩阵的值越高,从图像中丢弃的信息就越多,压缩率就越高,因此在JPEG压缩时可选择一个量化因子,该因子的值决定了量化系数矩阵中的数值。本文在进行压缩时选择的量化因子取值范围为[0,100],可根据图像内容或用途选择不同的量化因子,在压缩比和压缩质量之间进行取舍。
(4) ZigZag扫描:ZigZag扫描的目的是为了解决量化后频率系数AC为0的问题。经过编码,8x8的矩阵变为一维向量,这样增加了AC连续为0的几率,在下一步编码时可节约码率,ZigZag扫描过程如图2所示。
图2 ZigZag扫描过程示意图Fig.2 Schematic diagram of ZigZag scanning process
(5) 游程编码(RLE):游程编码所要编码的是63个频率系数AC,经过ZigZag扫描,一维向量中的64个元素许多的系数都是0而且是相邻的,采用游程编码可大大提高压缩效率。
(6) 霍夫曼编码:霍夫曼是一种变长编码,对频率系数AC和DC采用不同的编码方式,再加上对亮度和色度的编码,一共需要四个霍夫曼编码表才能完成霍夫曼的解码工作,这些霍夫曼表存储在JPEG文件结构中的“霍夫曼表定义段”。
2.4 JPEG封装为DICOM压缩图像
JPEG图像转换为DICOM文件需要将DICOM转换为BMP时的非像素信息再次附加到DICOM的数据元素中去。对DICOM非像素信息的操作为:首先读取保存的DICOM非像素数据,然后将其构造为数据元素。对于JPEG文件,首先判断是否解压缩,如果未解压缩,则解压缩并提取相关信息,对非像素数据和像素数据按不同方式构造为数据元素,再次写入DICOM本身的非像素信息,生成DICOM文件,其流程如图3所示。
图3 生成DICOM文件流程图Fig.4 Generate the DICOM file flow chart
图4 程序读取结果Fig.4 Results of reading program
2.5 结果分析
2.5.1 DICOM非像素信息提取结果
根据前而对DICOM非像素信息部分格式的分析,编程实现对各字段值的提取。图4为程序读取数据元素的属性描述和属性值字段值的结果。
2.5.2 不同量化因子下图像质量及压缩比
本文选用了一幅的DICOM图像,名称为test.dcm,将其转换为BMP图像后进行JEPG压缩。在进行BMP到JPEG的转换过程中,对量化因子进行了设置,设置量化因子为10的整数倍进行转换。图6~图8为原始图像和量化因子分别为10,50,100的图像。
图5 原始图像Fig.5 Original image
图6 量化因子为10的图像Fig.6 Quantitative factor is 10
图7 量化因子为50的图像Fig.7 Quantitative factor is 50
图8 量化因子为100的图像Fig.8 Quantitative factor is 100
从上述可知,量化因子越大,图像在转化过程中丢失的信息越少,图像越清晰,但转换后的文件较大,压缩比低,量化因子越低,转换后的文件越小,压缩比也高。表1所示不同量化因子下的图像压缩比和这一理论完全符合。
3 结论
在PACS系统中.使用图像压缩技术,以减少医学图像的精度为代价来获取更大的存储空间,也使图像在医院PACS系统中传递的速度更快,大图像显示的时间更短。尤其在如今的区域医疗中,同一病人在各个医院之间的图像需要相互传递调阅时,医学图像的压缩就显得更加关键。
表1 不同量化因子下的图像压缩比Tab.1 Image compression ratio under different quantization factor
本文通过编程实现了对DICOM图像的压缩,在图像压缩的实现过程中,引入了量化因子的概念,可根据图像实际内容调整量化因子的值,在图像压缩比和图像质量之间达到最优选择,如果图像用于存储,则可适当降低图像质量,以减小文件所占空间大小,降低存储成本。
[1]吕旭东.一种电子病历系统体系结构及其关键技术[J].中国生物医学工程学报,2008,(2):199-205.
[2]李恩中.医学图像处理与分析软件平台综述[J].计算机科学与探索,2008,(5):467-477.
[3]Wittson CL,Bensehoter R.Two-way television:helping the medical center reach out[J]. Am J Psyehiatry.1972,(129):624-627.
[4]盛健,季晓勇.Directshow过滤器组件开发技术及其应用实例[J].微型机与应用,2004, (1):47-49.
[5]魏聪颖,牛建伟,吉海星,等.基于实时流媒体传输系统的H.264组包算法研究[J].计算机科学,2007,34(8):41-44.
[6]李燕灵,马瑞芳,左力.基于RTP/RTCP的实时视频数据传输模型及实现[J].微电子学与计算机,2005,22(8):138-143.
[7]曹雨,吴云,赵勇.AVS标准中的视频编码关键技术研究[J].微计算机应用,2009,6(5):36-39.
[8] List P,Joch A,Lainema J,et al.Adaptive deblocking filter[J].IEEE Trans Circuits Syst Video Technol,2003,13(7):614-619.