徐浩诚 刘利军 黄青松
摘 要: 将分层切割的医学图片缓存到离用户最近的代理服务器上能够减少网络的宽带消耗、减轻服务器的负载。基于医学图像的自适应分层切割原理,结合代理服务器存在的缓存替代问题,通过对问题进行建模分析,论证了医学图像分层切割图片的有用性并依此提出DSGC缓存替代策略。同时在仿真实验中证明其性能优于某些传统的缓存替代算法。
关键词: 医学图像自适应显示; 动态缓存; DICOM医学图像; 分层切割
中图分类号: TN911.73?34 文献标识码: A 文章编号: 1004?373X(2016)08?0072?04
Cache replacement strategy for medical image adaptive layered cutting in proxy server
XU Haocheng, LIU Lijun, HUANG Qingsong
(Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650500, China)
Abstract: To cache the layered cutting medical images into the nearest proxy server from the users can reduce the network bandwidth consumption and server load. In combination with the cache replacement problem existing in proxy server and the modeling analysis of the problem, the effectiveness of the layered cutting picture of medical image is verified based on adaptive layered cutting principle of medical image, and based on the verification, the DSGC cache replacement strategy is proposed. The simulation experiment results prove that its performance is better than that of the traditional cache replacement algorithms.
Keywords: medical image adaptive display; dynamic cache; DICOM medical image; layered cutting
0 引 言
近年来,随着医学影像成像设备的高速发展(X射线、CT、超声、MR等),医学影像也已经逐渐发展成为一门集诊断、成像等为一体的与计算机技术密切相关的综合学科[1]。符合DICOM标准的医学影像设备需要保证在大数据量、实时性强、结构化较低的条件下通过PACS系统为医生提供高效率的图像存取和使用服务,这就使得医学影像的高效传输成为重要的问题[2]。
现有的PACS系统中传输的原始医学影像图像文件格式主要为DICOM(Digital Imaging and Communications in Medicine,医学数字成像和通信)文件格式,而DICOM文件格式的图像数据动态范围过大并且大部分均超出了通用显示器的动态显示范围,很难一次在通用的显示器屏幕上将所有的图像细节都显示出来[3]。不仅如此,互联网应用的快速增长导致网络拥塞和服务器超载等问题的出现[4],使得DICOM文件对于代理服务器的缓存性能提出了越来越高的要求。
目前大多数DICOM文件是以一个整体进行缓存,随着数据量的不断增加可能会对服务器造成一定的负载并影响PACS系统的整体性能[5]。在此注意到一个DICOM文件中的医学图像对于用户来说并不都存在使用价值,用户的浏览可能只针对图像的某一部分进行操作,即DICOM文件中的医学图像存在一定的特殊性:医生在查看一组脑部CT图像时并没有完全关注整个脑部的图像而是重点关注了脑部CT图像出现病变的部位。本文依据此特点,借鉴文献[6]中提出的:GIS瓦片模式切图算法对地理影响数据分割存储、按需传输的思想,移植医学图像分层切割的原理到代理服务器的缓存置换策略中。通过对比传统的经典缓存算法自主改进缓存置换策略,提出了动态策略计数(Dynamic Stratey Generation Count,DSGC)算法,在保证医学影像不失真的前提下,使用代理服务器对DICOM文件中的医学图像进行自适应的动态缓存置换。经过实验证明采用自适应的分层切割方法有效地将用户请求DICOM图像准确率提高了49%。DSGC算法相对于LRU?K,LFU等算法也提高了平均4.8%和3.7%的缓存命中率,并且DSGC算法在结合了医学影像自适应分层切割方法后更进一步提升了8.5%的缓存命中率。
1 DICOM文件分层传输与缓存研究
DICOM图像数据源的数据量巨大是其最大特点。医院每天产生的图像和信息数据量从几十MB到几GB不等。其中DICOM文件90%以上是图像数据。如此巨大的数据量使得图像存取速度成为需要重点考虑的问题[7]。目前国内主要采用对图像进行压缩处理、建立图像缓冲池和分层存储管理等几种方法来解决医学图像的快速存取问题。
分层存储管理大多是通过在线和离线相结合的方式来进行的。在线存储的首选设备通常为大容量的磁盘列阵,而该分层存储管理方法虽然考虑到了磁盘列阵具有速度高、存取方便、可靠性好、价格较低等特点,但由于现有的医学图像切割都是静态切割,有可能不适用。应该考虑引入自适应机制将图片分层以后再进行切割缓存方法的适用性。而缓冲池中的数据采用LRU算法保存,减少了网络通信量和数据存储压力,在DICOM文件中存在着缓存调度、缓存文件大小和使用频率不等的问题。因此现有的缓存策略可能不适用于DICOM文件。本文基于图像分层存储的思想引入DICOM图像自适应分层切割方法,并且在LRU算法的基础上进行改进,使得DICOM文件的缓存命中率有了明显的提升。
2 动态策略计数算法
2.1 基于DICOM的代理服务器
如图1所示给出了基于代理技术的DICOM医学图像服务模型。若用户需要的DICOM数据在代理服务器中没有被缓存的话,那么DICOM数据需要通过WAN从PACS系统中获取,而从PACS系统中获取的数据可以直接或者间接通过代理服务器的形式发送给需求不同的用户。由于代理服务器的缓存空间有限,对调度缓存内容的大小十分敏感,所以其性能的好坏直接影响着该模型的性能。本文在代理服务器端使用的缓存策略为部分缓存和整体缓存或者两者相结合的方式,并且辅之以分层切割医学影像的方法提高缓存查找性能。用于改善基于DICOM文件PACS系统的服务性能。
2.2 医学图像自适应分层切割
由于DICOM文件解析出来的医学图数据动态范围过大并且均超出了普通显示器的动态显示范围,存在资源的浪费现象。查看DICOM文件时主要分为移动端查看和网页端查看。在移动端查看时,由于IP地址变化、会话和登入登出均比较频繁,需要依据移动端的操作系统把图像置换为适合客户端APP屏幕显示的大小。在网页端查看时,依据分辨率不同每次查看需要的切割图片不同,但是依据其IP地址的变化小的特点建立IP地址和显示器的对应关系自适应显示切割图片。
本文引用GIS(Geographic Information System,地理信息系统)瓦片地图的切割原理将医学图像进行分层切割[8]。瓦片式地图由GIS数据的高速共享发展而来,由原始数据的切割存储和按需传输两部分组成,由Google Maps提出,采用预切割的方法将图像进行分层切割并存储于服务器端,当用户发出请求时只需从Google Maps服务器端发送所需的瓦片到客户端,在很大程度上提高了访问速度[9]。为了满足视觉无损和高效传输的需求,引入GIS瓦片切割思想:将高分辨率的医学图像预先分层切割并存储以满足“按需传输”的要求。采用非固定瓦片格分辨率和固定层数的方式对源数据进行模式化处理,根据医学影像的特点实现面向用户浏览器的DICOM自适应显示。采用XML文件存储DICOM文件中的医疗信息,采用切割图片显示医学图像数据,设计流程图如图2所示。
具体涉及步骤如下:
Step1:用户登录,启动会话,使用欢迎界面获取用户屏幕分辨率大小信息并存储于用户关系表中。
Step2:依据用户关系表动态生成切割图片。并在会话空闲过程中,缓存服务器动态调整切割图片的大小。开始时缓存标准DICOM文件,当获取到用户屏幕大小分辨率进行自适应调整之后,丢弃原先的标准DICOM文件,缓存切割好的图片。
Step3: 在用户请求的时候发送和用户实际请求大小一致的缓存数据。
Step4:缓存大小自动更新机制。对于移动端:缓存数据不变,依据移动端的APP设置自动分配DICOM缓存数据的大小。对于网页端,依据IP地址存在更换的可能性设定超时机制,依据医院的交班时间定时清空用户关系表。
2.3 DSGC算法
对于缓存对象及其数据单元的大小,在第2.2节已对缓存数据进行了预处理,在本节中希望通过对缓存调度算法的更改,使得进一步提高缓存的性能。将LRU算法和LFU算法的思想和医学图像使用的特殊性相结合运用到DICOM医学影像的缓存中是符合实际的。例如:一张CT图像,医生在图像刚生成的一段时间内看了几次以后,由于某种原因在以后的治疗中再也没有查看过这张CT图像。这时基于关键特征和代价的替换算法就无法起到作用,而LRU算法认为的最近使用的资源具有很高的未来使用价值、LFU算法认为的资源使用频率与未来的使用价值成正比。缓存替换策略的运用首先需要给当前的缓存对象一个访问热度和访问时间的综合排名,即是综合使用效率的排名。然后再依据使用效率的高低替换出使用效率最低的缓存内容,而其中效率函数的设计是重要的一环,它对于缓存命中率的高低有着直接的影响。
图片的局部访问原理对于使用效率的影响是最大的,局部访问原理指的是在最近时间区间内被访问过的切割图片在随后的一段时间内可能被再次访问的概率比较高。该原理对于缓存技术和预取技术有着比较重大的影响。LRU算法认为最近被使用的图片存在着很高的未来使用价值,其价值函数为:
[μit=1t-tL] (1)
式中:[μit]表示在t时刻资源i的未来使用价值;t为缓存资源i的时间;[tL]为缓存资源最近一次访问的时间。LFU算法认为最近被访问次数最多的资源在未来会拥有很高的使用价值;但其存在缓存污染的问题,所以考虑访问频率和访问的最近时间点采用LRU?K算法。估计文件i在首次使用后进入缓存后会被使用到的概率为[Pit],而[Pit]的估计采用类似LRU,LFU和LRU?K等的函数设计方法。由于未来切割图片访问的不可预知性,只能依据切割图片i的历史访问记录来估计[Pit]的概率。图3为切割图片i的历史访问序列。
图3中,自从t1时刻以来,t2,t3时刻的访问量明显增加,自t4时刻以后访问量逐渐下降。并且由于访问时间间隔与访问时间的分布满足泊松分布。而该问题在参考文献[10]已经给出证明。对于任意图片i的访问独立且服从泊松分布[11],那么[Pit]的概率估计公式如下:
[Pi=kt=e-λλitkk!] (2)
[λit]值的确定:以LRU?K为代表,从某一时间开始的高频率的资源访问量意味着在这一个时间点后该资源的未来访问频率近似满足泊松分布。其[λit]的估计公式为:
[λit=kn=1ktin] (3)
设定切割图片的最后第n次访问时间为[tin],其最后一次的访问时间为[ti1]。设定切割图片在缓存中的平均存活时间为:
[ti=i=1nT-tinn] (4)
式中,T为目前的缓存系统时间。由此将式(4)代入式(3)中可以推导出[λit]估计公式为:
[λit=km=1kti] (5)
式中,k为常数1时,满足LRU策略在相对时间下的[λit]估计公式[12],依据式(2)推导出:
[Pi=kt=e-λm=1ki=1nT-tinnkk!] (6)
假定在某一层上缓存切割图片的集合为PictureGather(t)={1,2,…,N} ,表示切割图片{1,2,…,N}在t时刻的存储。设定Size(i)为文件PictureGather(t)的大小,i越大说明该层缓存的切割数量也越多。
依据集合PictureGather(t)={1,2,…,N},求出集合内缓存切割图片的平均缓存时间为:
[Meant=n=1NSLn-SFnN] (7)
式中:[SLn]表示切割图片的最后一次访问时间;[SFn]为切割图片的首次存储时间。每一块切割图片存在于缓存区域的时间不同,那么对未来的使用价值也一定不同。对于在某一个缓存溢出时间点所要进行替换的切割图片也不尽相同。设定缓存区的容量大小为V。在[i=1Nδit×Sizei≈V]的约束条件下,其中[i=1Nδit],[δit∈(0,1)],0表示切割图片i在t时刻没有存在于缓存中;1表示图片i在t时刻存在于缓存中。理想的缓存替代策略算法动态策略代数(Dynamic Strategy GenerationCount,DSGC)为:
[DSGC=1t-tL?n=1NSLn-SFnN?e-λm=1ki=1nT-tinnkk!] (8)
即,[DSGC=μit×Meant×Pit]。然后依照DSGC的值非递增排序PictureGather(t)={1,2,…,N}中的元素,在非递增排序完成后从最小的值开始将切割图片剔除出缓存,直到达到指定的缓存剩余空间为止。
3 实验与评价
实验一:在英特网内完成了自适应机制和传统用户请求准确率的对比测试。代理服务器端的硬件配置为HPWorkStation2100(CPU:Pentium Ⅳ 2.0 GHz×2,内存1 GB)。客户端则是英特网内100台型号不一的计算机和100台操作系统不完全一样的移动终端。在实际网络环境下测试自适应机制下移动端和网页端的准确率和传统机制下的准确率。实验结果如表1所示。
表1 准确率 %
实验说明缓存大小和用户实际请求基本吻合。而采用原始DICOM数据由于文件不能与屏幕相适应产生大量的浪费,使得请求的准确率与用户的实际请求之间产生了巨大差异。由此可以得出自适应所调度的缓存资源和用户请求的资源是一致的,这样就减少了大量的数据浪费,使得缓存中的数据浪费得到明显的改善。
实验二:本文还采用 Web 缓存替换算法常用的衡量标准进行实验,固定使用100台手机端进行缓存考察算法中的切割图片的命中率。切割图片命中率指缓存中命中的请求对象与总请求对象的百分比。实验采用网站的真实数据进行仿真。首先对访问的DICOM医学图像进行基于自适应的图片切割数据预处理,选取数据集的[35]构造算法模型。另外[25]作为测试数据,结合缓存替换算法计算切割图片的命中率进行仿真实验。DSGC,LRU?K和LFU算法的试验结果如表2所示。
DSGC/LRU?K/LFU算法命中率对比图如图4所示。
DSGC/LRU?K/LFU没中率对比图如图5所示。
如图4、图5、表2所示,引入切割图片的有用性和在函数价值计算中是否存在意义,是本文所关注的问题。DSGC算法比较LRU?K算法和LFU算法的性能比较可以证明其有效性。说明了访问频率和访问局部性存在的有效性。如图4所示,随着缓存容量的增大LRU?K,LFU算法和DSGC算法的性能也在逐渐的增加,但是DSGC算法的缓存命中率始终要比LRU?K和LFU的命中率高。从此情况分析出带来这一良好性能的优势取决于对于价值函数的设计:主要关注切割图片自适应缓存策略带来的价值,而不是从整张图片的价值入手进行算法设计。
4 结 语
本文讨论并研究了医疗信息系统中代理服务器的缓存替代问题,并且关注了该问题模型的特殊性,提出了针对医学图像分层切割图片的有用性并将其用于改进和设计缓存的替代算法中。仿真实验表明:在自适应机制下本文所提出的DSGC算法的性能优于LRU?K等算法。而在未来的工作中将着手于引入BP神经网络的原理来更进一步优化DSGC算法。
注:本文通讯作者为黄青松。
参考文献
[1] 杨明,刘斌,杨小庆,等.Pacs系统在医学影像学教学及实践教学体系改革中的作用[J].中国高等医学教育,2007(1):41?42.
[2] 梁存升,冯骥.DICOM标准分析及其应用[J].中国医学装备,2006(2):18?20.
[3] 乔梁,宋文强.基于DICOM图像的Web浏览与传输的研究和实现[J].中国医疗设备,2007,22(12):15?17.
[4] 毛应爽,郑永春,耿晓中.Web缓存替换算法的研究与改进[J].信息技术与信息化,2014(5):215?216.
[5] 钟克吟.ASP缓存策略探讨[J].现代计算机(专业版),2006(9):68?71.
[6] 杜振伟,王之,霍达,等.瓦片式算法在家庭网络环境实现高分辨率医学影像实时浏览与传输的研究[J].中国数字医学,2012,7(12):54?57.
[7] 辜丽川,尹家生,周健.DICOM图像存储和管理中的关键问题和技术[C]//首届国际医学影像学暨介入医学学术会议.北京:中国声学会,2005:53?55.
[8] 陈桦,李艳明,朱美正.一种支持大量并发用户的瓦片缓存方案研究[J].计算机工程与科学,2012,34(12):144?149.
[9] SHEN H L, MA D F, ZHAO Y W, et al. MIAPS: a Web?based system for remotely accessing and presenting medical images [J]. Computer methods & programs in biomedicine, 2014, 113(1): 266?283.
[10] TSYBAKOV B, GEORGANAS N D. Overflow and losses in a network queue with a self?similar input [J]. Queueing systems, 2000, 35(1): 201?235.
[11] 肖明忠,李晓明,刘翰宇,等.基于流媒体文件字节有用性的代理服务器缓存替代策略[J].计算机学报,2004,27(12):1633?1641.
[12] FLEMING C, PETERSON P, KLINE E,et al. Data tethers: preventing information leakage by enforcing environmental data access policies [C]// Proceedings of 2012 IEEE International Conference on Communications. Ottawa: IEEE, 2012: 835?840.