大容量快速图像浏览系统的制作方法

文档序号:6561660阅读:389来源:国知局
专利名称:大容量快速图像浏览系统的制作方法
技术领域
本发明涉及数据浏览\处理系统。具体上,本发明涉及用于大容量图像数据存储的使用以及大容量图像数据快速浏览应用的浏览器的使用。
背景技术
随着计算机技术的发展,各种信息的数字化存储已经逐渐为人们所接受。然而,随着各种信息的增加,海量信息的存储、分析、处理也成为一个值得研究的重要课题。
在各种信息中,用得最多的是文字和图像信息。一般来说,图像更能表达更多的信息。然而,随着人们对图像质量、精度的要求越来越高,大容量图像的存储、分析、浏览已成为一个问题浮现出来。例如,在医疗、半导体、地理系统等领域中,高精度的图像所占的空间可能达到数百兆到数十G之多,在实际应用中,传统的做法是将这类图片分成数千个甚至数万个Jpeg压缩后的图像文件来存放,这样不仅难以管理,更难以对这类图像进行浏览、分析等应用。
此外,随着互联网技术的发展,将图像信息放在互联网上供人们浏览已经成为一种趋势。然而,大容量的图像由于数据量过于庞大,传统的网络浏览器不可能解决该类图像浏览的问题。将这些图像数据下载下来浏览更会耗费相当长的时间。
因此,对很多领域来说,大容量图像的存储、浏览、分析就成为一个迫切需要解决的问题。

发明内容
本发明定义了一种用于大容量图像存储的图像格式,使用该格式存储的图像数据理论上可支持无限容量的图像文件。该文件格式采用分层(Layer)/分块(Tile)的方式对图像数据进行存储。存储时可以选择不同的压缩方式,并可以根据操作系统的要求定义每个数据块文件的最大容量(通常每个数据文件最大为2G)。在生产数据块文件的同时会生成一个索引文件,用于进行数据快速检索。本发明定义该文件格式为TMAP格式。
本发明还公开了一种支持该文件格式的浏览器。该浏览器可打开这种图像格式的文件,可以实现在任意放大倍数下实时浏览图像的任何区域,并且图像质量没有任何损失。此外,还可以将图像的任何区域转换成为其它常用的文件格式,如BMP、JPEG、TIF、PNG等,也支持将其它格式的图像文件转换成为TMAP格式。
此外,该浏览器还支持网络大容量图像数据的浏览。通过网络协议在网上浏览TMAP格式图像时,该浏览器向服务器发送请求,只会将用户感兴趣的区域以图像块(Tile)的方式进行发送,一次只需发送很少的数据量。对用户而言,用户可以随时以任何放大倍数看到图像的任何区域。
根据本发明,用户在任意一个时间点上浏览图像,只需要将用户所浏览区域的数据块(Tile)载入显示就可以了,而传统的图像存储方式几乎需要载入整个图像数据,对于大容量数据来说几乎是无法完成的任务。
根据本发明,提供了一种用浏览器浏览图像的方法,该图像的文件格式采用分层(Layer)/分块(Tile)的方式对图像数据进行存储,其中不同的图层对应于不同的倍率,所述图像文件格式定义为TMAP格式,该方法包括步骤打开一个TMAP文件,根据TMAP文件的信息构建出浏览器需要使用的数据结构;用户选择当前图像放大倍率,确定用户当前所选择的图像放大倍率;根据当前图像的放大倍率选择TMAP文件结构中合适的图层;用户选择所感兴趣的区域,根据用户选择的图像区域计算出该区域在原始图像上的坐标位置,获得用户感兴趣的区域ROI;清空当前状态下待解码的图像块队列,遍历所选图层的图像块,求出与ROI有交集的图像块,并在内存图像块队列中不存在该图像块,则将该图像块的信息加入到待解码的图像块队列中;从待解码队列中读取一个数据块信息进行解码;主线程发送重绘视图命令后处于就绪状态,等待用户的其它操作。


图1是本发明定义的文件结构框图。
图2是本发明定义的文件数据层(Layer)和数据块(Tile)的示意图。
图3A-3C是本发明在实施实例中使用的浏览器流程图。
具体实施方案本实例选用的计算机系统为普通的PC系统,操作系统为Windows XP HOME版。但是,本领域的技术人员将理解本发明的精神和范围不限于任何一种计算机机型和操作系统,以及特定的通讯协议。
图1为本发明定义的TMAP文件结构框图。该文件结构主要由以下三部分组成文件头(Header)文件头定义了TMAP文件类型的全局信息,包括但不局限于以下内容图像文件格式说明,“TMAP”;
文件格式版本号;图像数据文件数目;图像基本信息图像大小、颜色、压缩方式、压缩比、最大倍率;图像图层(Layer)信息最大图层数目;图像图层间倍率关系;图像数据块(Tile)信息数据块大小;图像数据校验码;保留信息(用于数据结构升级)原始图像信息(Image)原始图像信息定义了用于生成TMAP数据文件的原始图像数据信息,包括但不限于以下内容Image编号;Image对应的位置信息;Image对应的数据文件编号;Image对应的放大倍率;Image对应的数据文件位置及偏移量中间层图像块(Tile)中间层图像块定义了生成TMAP数据文件过程中自动产生的中间层数据块的信息,包括但不限于以下内容Tile编号;Tile对应的位置信息;Tile对应的数据文件编号;Tile对应的放大倍率;Tile对应的数据文件位置及偏移量图2为本发明定义的文件结构关系图。为了使得TMAP图像可以在任意放大倍数下进行快速浏览。该文件结构采用图层(Layer)和图像块(Tile)结合的方式来存储图像数据。
与传统的图像存储方式(按行排列图像数据)不同,TMAP采用图像块(Tile)的方式来排列图像数据。如图2所示,其中的每一个小方块就代表一个图像块(Tile)这样做的好处是,用户在任意一个时间点上浏览图像,只需要将用户所浏览区域的数据块(Tile)载入显示就可以了,而传统的图像存储方式几乎需要载入整个图像数据,对于大容量数据来说几乎是无法完成的任务。
另外,为了在不同的放大倍数下无失真地快速载入图像数据,TMAP采用了类似金字塔结构的图像层(Layer)的方式来存储不同倍率下的图像信息,每个中间图像层上的数据具有相同的放大倍率。这样做的好处是用户在任意倍率下浏览图像,只需计算出最接近该倍率下的图层倍率,然后将该图层(Layer)中对应的图像块(Tile)载入就可以了,极大地减少了需要载入的数据量。当然,中间层的数目越多,浏览图像时显示的速度越快,但会导致数据文件的尺寸增加。本领域的技术人员可以根据实际需要来选择合适的图层数和图层间距。
图3A-3C是描述实施实例浏览器的步骤的流程图。先转向图3A,当使用该浏览器打开一个TMAP文件时,首先需要根据TMAP文件的信息构建出浏览器需要使用的数据结构。在本实施实例中,采用了一个固定数组来存储每个数据块(Tile)的信息。该数组中每个数据成员的结构定义如下数据成员结构信息图像块(Tile)的水平坐标X;图像块(Tile)的垂直坐标Y;图像块(Tile)所对应的数据文件编号N;图像块(Tile)所对应的数据文件位置P;图像块(Tile)所对应的数据文件的偏移量L;图像块(Tile)所对应的放大倍率S;其中,图像块(Tile)的坐标由用户根据不同的坐标系统自己定义。由图2可以知道,TMAP文件结构本来就包括了图像各层数据块(Tile)的所有信息,因此,这些信息很容易可以通过TMAP文件全部获得。
此外,还可以从TMAP文件中获得该图像数据所支持的最大图层(Layer)数和每个图层表示的倍率。
初始化完图像数据之后,同时启动解码线程,解码线程具有较低的优先级,可以在CPU空闲的时候进行图像解码操作。
当用户浏览TMAP图像时,在任何一个时间点上,用户都在以某个倍率浏览图像的某个区域。此时可以按照如图3B所述步骤来确定需要载入的图像数据1.首先确定用户当前所选择的图像放大倍率。用户可以通过某种外界输入,如鼠标、键盘等设备设置当前图像放大倍率,也可以通过一个图像显示区域来设置当前图像放大倍率。通过后者来设置图像放大倍率的计算方法如下XScale=当前显示区域宽度/用户选择图像区域宽度;YScale=当前显示区域高度/用户选择图像区域高度;再从两者之中取较小的作为当前图像放大倍率以保证图像比例不发生改变。
2.然后可以根据当前图像的放大倍率选择TMAP文件结构中合适的图层(Layer)来读取数据。为了保证图像不失真,所选择的图层倍率应高于当前图像的放大倍率。另外,为保证读取的数据量尽可能小,所选择的图层倍率也应该尽可能小。因此,实际上选择的图层倍率应为高于当前图像放大倍率的最小图层(Layer)。
3.根据用户选择的图像区域计算出该区域在原始图像上的坐标位置。一般来说,该区域可以通过放大镜(实例提供的功能)或者缩略图(实例提供的功能)计算出来,其计算方法如下XStart=当前选择区域的左上角点x坐标/当前选择区域的放大倍率;YStart=当前选择区域的左上角y坐标/当前选择区域的放大倍率;XEnd=当前选择区域的右下角x坐标/当前选择区域的放大倍率;YEnd=当前选择区域的右下角y坐标/当前选择区域的放大倍率;这四个坐标值就形成一个矩形的显示区域,也就是用户感兴趣的区域,用ROI表示。
4.清空当前状态下待解码的图像块(Tile)队列,遍历所选图层(Layer)的图像块(Tile),求出与ROI有交集的图像块(Tile),如果在内存图像块队列中找不到该图像块(Tile),则将该图像块的信息加入到待解码的图像块队列中。为了提高浏览速度,往往还会将与ROI有交集的较高图层(Layer)中的图像块(Tile)加入到待解码的图像块队列中,并设置较高的优先级以优先解码,加速显示过程。此外,为了使用户移动显示区域时可以尽可能快地得到结果,可以把与ROI周围区域相交的图像块(Tile)也加入到待解码图像块队列中,并设置较低的优先级。
5.此时,主线程发送重绘视图命令后处于就绪状态,等待用户的其它操作。解码线程在CPU空闲时间进行解码操作,主线程仍然可以即使响应用户的各种操作,如鼠标拖动等信息。
现在转向流程图3B,该流程图是本实例绘制视图的流程。当视窗需要重新绘制时,首先计算出内存图像块队列中所有的图像块(Tile)以及需要显示的图像块队列。如果所有需要显示的图像块(Tile)数据均在内存中,就可以直接将这些图像数据从内存中映射到显示设备中。考虑到图像块(Tile)之间可能有一定的重合面积,也可以在映射前对待显示的图像区域做平滑。
如果需要显示的图像块队列中还有尚未解码的图像块(Tile),为提高显示刷新速度,按照从高到低的顺序(图层)将内存中的图像块分别映射到显示设备中。这样,在用户快速切换显示区域的过程中,即使有大量的图像块数据没有来得及解码,用户仍能看到较低分辨率下的显示结果,而不需要等待解码过程。在用户切换显示区域的间隔时间内,解码线程一直处于工作状态,可以不断的将高分辨率的解码图像块数据显示到显示设备终端。
最后,转向流程图3C,这是一个辅助线程,专门用于解码工作。当用户打开任何一个TMAP文件时,解码线程就开始启动,以较低的优先级运行,直到用户关闭该文件为止。
其工作过程为一个循环,该线程从待解码队列中读取一个数据块信息准备解码。然后从内存图像块队列中寻找一个空的内存块用于存放该图像块数据。如果所有的内存图像块队列已经用完,在用户内存足够多的前提下,尝试分配新的内存图像块来存放该图像块数据。否则从当前内存图像块队列中将距离ROI区域最远的图像块清空,并将这块内存区域用于存放新的图像块数据。这一点与计算机的内存调度和Cache调度原理非常相似。
由数据块信息可以定位该数据所在的文件和位置,并且可以知道该数据块采用的压缩方式,于是可以从相应的文件中读取对应的数据块并解码还原这一小块图像数据。对于远程访问来说,这样做也可以大大减少需要传输的数据量。解码完成之后,再判断一下这块图像数据是否与当前显示图像区域有交集,如果有的话还需要更新视图以尽快显示解码完后的数据,以免造成用户长时间等待。
在此给出的实施例和示例用以说明本发明和它的实际应用,并且因此使得本领域的技术人员能够做出和使用本发明。但这仅仅是一个简单的示例,实际上对本发明的具体应用还可以根据实际不同的情况加以改进。
权利要求
1.一种用浏览器浏览图像的方法,该图像的文件格式采用分层(Layer)/分块(Tile)的方式对图像数据进行存储,其中不同的图层对应于不同的倍率,所述图像文件格式定义为TMAP格式,该方法包括步骤(1)根据期望浏览的所确定的TMAP文件的信息构建出浏览器需要使用的数据结构;(2)用户选择当前图像放大倍率,确定用户当前所选择的图像放大倍率;(3)根据当前图像的放大倍率选择TMAP文件结构中合适的图层;(4)确定用户选择所感兴趣的区域,根据用户选择的图像区域计算出该区域在原始图像上的坐标位置,获得用户感兴趣的区域ROI;(5)清空当前状态下待解码的图像块队列,遍历所选图层的图像块,求出与ROI有交集的图像块,如果在内存图像块队列中找不到该图像块,则将该图像块的信息加入到待解码的图像块队列中;(6)从待解码队列中读取一个数据块信息进行解码;(7)主线程发送重绘视图命令后处于就绪状态,等待用户的其它操作。
2.如权利要求1的方法,其中步骤(2)进一步包括用户通过外界输入设备设置当前图像放大倍率,或通过一个图像显示区域来设置当前图像放大倍率,后者设置图像放大倍率的计算方法如下XScale=当前显示区域宽度/用户选择图像区域宽度;YScale=当前显示区域高度/用户选择图像区域高度;再从两者之中取较小的作为当前图像放大倍率以保证图像比例不发生改变。
3.如权利要求1的方法,其中步骤(4)进一步包括用户感兴趣区域通过放大镜或者缩略图计算出来,其计算方法如下XStart=当前选择区域的左上角点x坐标/当前选择区域的放大倍率;YStart=当前选择区域的左上角y坐标/当前选择区域的放大倍率;XEnd=当前选择区域的右下角x坐标/当前选择区域的放大倍率;YEnd=当前选择区域的右下角y坐标/当前选择区域的放大倍率;这四个坐标值就形成一个矩形的显示区域,也就是用户感兴趣的区域,用ROI表示。
4.如权利要求1的方法,其中步骤(5)进一步包括将与ROI有交集的较高图层中的图像块加入到待解码的图像块队列中,并设置较高的优先级以优先解码,以加速显示过程;把与ROI周围区域相交的图像块也加入到待解码图像块队列中,并设置较低的优先级。
5.如权利要求1的方法,其中步骤(6)进一步包括从内存图像块队列中寻找一个空的内存块用于存放该图像块数据,如果所有的内存图像块队列已经用完,在用户内存足够多的前提下,尝试分配新的内存图像块来存放该图像块数据,否则从当前内存图像块队列中将距离ROI区域最远的图像块清空,并将这块内存区域用于存放新的图像块数据。
6.如权利要求1-5的方法,进一步包括当视窗需要重新绘制时,首先计算出内存图像块队列中所有的图像块以及需要显示的图像块队列,如果所有需要显示的图像块数据均在内存中,就可以直接将这些图像数据从内存中映射到显示设备中。
7.如权利要求6的方法,进一步包括,在映射前对待显示的图像区域做平滑。
8.如权利要求1的方法,其中用户根据TMAP图像文件的结构信息来选择期望浏览的感兴趣的区域,其中TMAP图像文件的结构信息包括文件头(Header)文件头定义了TMAP文件类型的全局信息,包括但不局限于以下内容图像文件格式说明,“TMAP”;文件格式版本号;图像数据文件数目;图像基本信息图像大小、颜色、压缩方式、压缩比、最大倍率;图像图层(Layer)信息最大图层数目;图像图层间倍率关系;图像数据块(Tile)信息数据块大小;图像数据校验码;保留信息(用于数据结构升级)原始图像信息(Image)原始图像信息定义了用于生成TMAP数据文件的原始图像数据信息,包括但不限于以下内容Image编号;Image对应的位置信息;Image对应的数据文件编号;Image对应的放大倍率;Image对应的数据文件位置及偏移量中间层图像块(Tile)中间层图像块定义了生成TMAP数据文件过程中自动产生的中间层数据块的信息,包括但不限于以下内容Tile编号;Tile对应的位置信息;Tile对应的数据文件编号;Tile对应的放大倍率;Tile对应的数据文件位置及偏移量。
9.如权利要求1的方法,其中步骤(1)包括用户根据构建出的浏览器需要使用的数据结构来确定所浏览的感兴趣的区域,所述构建的数据结构信息包括图像块(Tile)的水平坐标X;图像块(Tile)的垂直坐标Y;图像块(Tile)所对应的数据文件编号N;图像块(Tile)所对应的数据文件位置P;图像块(Tile)所对应的数据文件的偏移量L;图像块(Tile)所对应的放大倍率S。
全文摘要
本发明公开了一种用浏览器浏览图像的方法,该图像的文件格式采用分层(Layer)/分块(Tile)的方式对图像数据进行存储,其中不同的图层对应于不同的图像倍率,所述图像文件格式定义为TMAP格式,该方法包括步骤打开一个TMAP文件,根据TMAP文件的信息构建出浏览器需要使用的数据结构;用户选择当前图像放大倍率,确定用户当前所选择的图像放大倍率;根据当前图像的放大倍率选择TMAP文件结构中合适的图层;用户选择所感兴趣的区域,根据用户选择的图像区域计算出该区域在原始图像上的坐标位置,获得用户感兴趣的区域ROI;清空当前状态下待解码的图像块队列,遍历所选图层的图像块,求出与ROI有交集的图像块,如果在内存图像块队列中找不到该图像块,则将该图像块的信息加入到待解码的图像块队列中;从待解码队列中读取一个数据块信息进行解码;主线程发送重绘视图命令后处于就绪状态,等待用户的其它操作。利用本发明,用户在任意一个时间点上浏览图像,只需要将用户所浏览区域的数据块(Tile)载入显示就可以了,解决了传统的图像存储方式几乎需要载入整个图像数据而无法浏览大容量数据的问题。
文档编号G06F17/30GK1928871SQ20061012684
公开日2007年3月14日 申请日期2006年9月7日 优先权日2006年9月7日
发明者郑众喜, 刘明星, 张海明 申请人:北京优纳科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1