电子文档的图像数据处理方法及其装置的制作方法

文档序号:6578991阅读:178来源:国知局
专利名称:电子文档的图像数据处理方法及其装置的制作方法
技术领域
本发明属于电子文档数据处理领域,具体涉及一种电子文档的图像数据处理方法 及其装置,所述图像数据处理包括电子文档的图像数据的存储、查找、修改、添加和删除等 操作。
背景技术
目前存在多种电子文档格式,每种电子文档格式都采用不同的方式来描述其中的 图像。比如,在XPS和MARS文档中,采用XML语言和Zip打包的方式组织文档格式,每个图 像都单独存储。当文档中包括很多个图像时,由于必须对每个图像描述其头部信息、颜色空 间等图像相关信息,而导致生成大量冗余内容,文档体积膨胀,从而使得文档的存储开销和 运行时的内存开销变大。而且,由于每次读取图像都必须反复访问文档,造成I/O操作次数 过多,图像加载速度变慢。另外,对于采用Zip作为底层物理容器的文档来说,大量的图像 也会使得压缩率降低。同时,随着Zip容器中文档数据的增加,打开文档的速度也会降低。 又比如,在基于二进制格式的PDF文档中,二进制格式的图像数据和可复用的图像信息零 散地分布在PDF文档中的各个位置,从而导致图像的抽取、管理困难,必须要对整个文档的 描述进行深度的解析,才能获得其中的图像数据。此外,对于PDF、PS等工具,经常利用大量的小体积图像来拼接形成一副大型图像 以用于显示或输出。所谓小体积图像通常是指其高、宽或数据量大小低于某一阈值的图像。 对于这种应用,需要识别出哪些小体积图像可以合并,容易出现合并错误的情况。所以,不 仅存储开销大,而且技术实现难度大。

发明内容
本发明所要解决的技术问题是针对现有技术中存在的上述不足,提出一种高效的 电子文档的图像数据处理方法及其装置,以对分散在电子文档中的图像进行高效率的统一 管理,从而显著降低电子文档中图像的存储开销和运行时的内存开销,并提高对电子文档 的访问效率和加载速度。根据本发明的一方面,提供一种电子文档的图像数据存储方法,该方法包括以下 步骤从电子文档中收集图像;建立图像数据包文件和索引结构;和按照索引结构将收集 的图像的图像数据及其索引信息和索引入口写入图像数据包文件中,并将电子文档中使用 图像处的描述替换为一个二元组,所述二元组为收集的图像的图像信息的引用和相应的图 像数据在索引结构中的位置。所述相应的图像数据在索引结构中的位置用在索引结构中为该图像数据分配的 相应的索引号表示。根据本发明的另一方面,提供一种查找根据本发明的电子文档的图像数据存储方 法存储的图像数据的方法,该方法包括以下步骤根据提供的所要查找的图像数据在索引 结构中的位置从如上保存的电子文档中获得所引用的图像信息;打开图像数据包文件,并
8从图像数据包文件获取索引入口 ;根据索引入口查找与所提供的位置对应的索引,并提取 该索引中记录的信息;根据所提供的位置和提取的索引信息确定所要查找的图像数据在图 像数据包文件中的位置和长度,并读取该图像数据;和将获得的图像信息和图像数据返回 给用户或者缓存。根据本发明的另一方面,提供一种修改根据本发明的电子文档的图像存储方法存 储的图像数据的方法,该方法包括以下步骤判断修改后的数据长度是否长于修改前的数 据长度;如果修改后的数据长度不长于修改前的数据长度,则直接在图像数据包文件中原始 的图像数据处进行替换,并根据修改后的图像数据更新对应的索引信息;和如果修改后的数 据长度长于修改前的数据长度,则在图像数据包文件末尾写入修改后的图像数据,根据该图 像数据更新对应的索引信息,并在图像数据包文件末尾写入更新的索引信息和索引入口。根据本发明的另一方面,提供一种删除根据本发明的电子文档的图像存储方法存 储的图像数据的方法,该方法包括以下步骤将与所要修改的图像数据对应的索引中的记 录用一条空记录替换;和直接将所要删除的图像数据用0替换。根据本发明的另一方面,提供一种添加根据本发明的电子文档的图像存储方法存 储的图像数据的方法,该方法包括以下步骤判断与所要添加的图像数据共同使用的其它 图像数据所在的数据段是否已满;如果所述数据段没有满,则将所述图像数据添加到该数 据段中,并分配该数据段中相应的索引号;如果所述数据段已满,则建立一个新的数据段, 写入所述图像数据,并分配该数据段中相应的索引号;根据所述图像数据更新对应的索引 信息;和将更新的索引信息和索引入口写入图像数据包文件末尾。根据本发明的另一方面,提供一种电子文档的图像数据处理装置,包括存储单元, 该存储单元包括收集模块,从电子文档收集要处理的图像;索引处理模块,在内存中建立 索引结构,为收集的图像分配索引号,并根据该图像的图像数据更新与索引号对应的索引; 图像数据包文件模块,写入图像数据包文件的头部信息,将从收集模块接收的图像数据写 入图像数据包文件中与在索引处理模块中分配的索引号对应的数据区中,并将在索引处理 模块中建立的索引结构中记录的信息和索引入口等信息写入到图像数据包文件中;和电子 文档模块,将电子文档中使用图像处的描述替换为一个二元组,即,相应的图像信息的引用 和在索引处理模块中分配的索引号。所述存储单元还可包括排序模块、编码模块和图像信息模块。所述图像数据处理装置还可包括查找单元、修改单元、删除单元和添加单元。根据本发明,通过索弓I结构将零散分布在电子文档中的图像数据集中存储在一个 图像数据包文件中,从而使得去除了大量重复的冗余信息,使得电子文档中的信息描述更 为简单,节省了大量的存储开销和运行时的内存开销。而且,根据不同的分段策略对收集的 图像数据进行有意义的分段,从而可一次性提取出某一数据段中的全部图像数据并将其缓 存,以后再次查找时优先查找缓存,这样可减少I/O操作次数,提高访问效率。此外,提取相 同的图像信息,也可减少大量重复的冗余信息描述。另外,在对整个IFC文件进行压缩的情 况下,还可进一步提高图像数据的压缩率。


图1是根据本发明的第一实施例的电子文档的图像数据存储方法的流程图。
图2是根据本发明的第二实施例的电子文档的图像数据存储方法的流程图。图3是根据本发明的第三实施例的电子文档的图像数据存储方法的流程图。图4是根据本发明的第四实施例的电子文档的图像数据查找方法的流程图。图5是根据本发明的第五实施例的电子文档的图像数据查找方法的流程图。图6是根据本发明的第六实施例的电子文档的图像数据查找方法的流程图。图7是根据本发明的电子文档的图像数据处理装置的存储单元的框图。
具体实施例方式在现有的电子文档中,对于每个图像,一般都记录了其图像信息和DIB格式的图 像数据。图像信息主要是指颜色空间信息,包括颜色空间的类型、每个通道的颜色信息、调 色板等。以下,将参考附图描述根据本发明的电子文档的图像数据处理方法及其装置。这 里,所述图像数据处理包括图像数据的存储、查找、修改、添加和删除。(一 )电子文档的图像数据存储通过本发明的电子文档的图像数据存储方法,将零散分布在电子文档中的图像数 据集中存储在一个新建的图像数据包文件中,通过索引结构记录这些图像在该图像数据包 文件中的偏移位置及其图像相关信息,并对电子文档中使用图像处的描述内容进行了适应 性的修改。所述图像数据包文件的扩展名为ifc (Image File Cluster),以下简称为IFC文 件。(第一实施例)图1是根据本发明的第一实施例的电子文档的图像数据存储方法的流程图。参考图1,在步骤S1000中,从电子文档中收集要处理的图像。本发明可处理的电 子文档格式包括PDF、XPS、CEB、MARS等格式。在这个步骤中,可用数组记录所收集的图像 存于磁盘上的路径或者在电子文档中的位置。在步骤S1002中,建立IFC文件和索引结构。这里,IFC文件是指新创建的用于 存储图像数据和记录索引信息的文件,至少包括文件头部信息、存储图像数据的数据区、索 弓丨、索引入口等部分。文件头部信息必须位于文件开头。在文件头部信息中,可定义文件类 型、版本信息、压缩单位和压缩方法等字段。索引中至少记录相应的图像数据在IFC文件中 的偏移位置和该图像数据的长度。索引入口指示索引在IFC文件中的偏移位置。根据索 引入口和索引中记录的信息,可确定当前图像数据在IFC文件中相应的数据区的位置和长 度。索引入口一定位于IFC文件的末尾,以便于以后的查找、修改、添加和删除等操作。同 时,在内存中为索引结构分配内存空间,并建立一个表、树或其它数据结构,以备插入索引 或图像数据的信息等。在步骤S1004中,从收集的当前图像获得该图像的图像信息和图像数据。如上所 述,图像信息主要是指颜色空间信息,但是,还可包括其它图像相关信息,比如,原始电子文 档中图像数据的压缩参数等信息。图像数据在未压缩时一般都是DIB格式的图像数据。如 果从电子文档中读取的图像数据是已经压缩过的图像数据,则根据该电子文档中的压缩参 数对这些图像数据进行解压缩,将其还原成DIB格式的图像数据。在步骤S1006中,为当前图像分配索引号。在IFC文件中,各图像数据拥有唯一的 索引号。图像数据的索引号从1开始,按照索引深度优先遍历。可按照图像收集顺序依次为当前图像分配索引号。此外,也可按照不同的策略将具有共性的一些图像组织在一起, 即,分在一个数据段中,从而可通过预取和缓存某一数据段的方式减少I/O操作次数,优化 检索。也就是说,为每个图像数据分配其所属数据段中相应的索引号。比如,在分段策略为 每个数据段包括相同数量或固定数据的图像数据的情况下,可使得每个数据段包括规定数 量的图像数据,剩余的图像数据则归入到最后一个数据段中。在使用就近策略的情况下,将 一起使用的图像数据归入到同一个数据段中。比如,将在一页中使用的所有图像归入到一 个数据段中。在大小策略的情况下,按照图像的宽、高、分辨率或者数据量大小分段。在无 策略的情况下,对各个数据段以及索引组织方式没有限制,直接按照图像收集顺序依次为 当前图像分配索引号。考虑到内存占用大小的问题,如果一个数据段所有的数据太大,则不 太适合缓存。因此,可按照一个粒度进行分段,即,每个数据段所包含的图像数据的数量不 得超过段最大粒度。为了有效地解决索引号冲突的问题,优选的是,每个图像所分配的索引 号为(n-l)*maxcount+m,其中,η表示该图像属于第η段,maxcount表示段最大粒度,m表 示该图像是该段内的第m个。在步骤S1008中,将当前图像的图像数据写入IFC文件中与所分配的索引号对应 的数据区中。在步骤S1010中,根据当前图像的图像数据更新索引结构中与所分配的索引 号对应的索引。索引可记录当前图像数据在IFC文件中的偏移位置、数据长度、图像宽度和 高度等信息。根据索引入口和相应的索引信息,可确定IFC中与所分配的索引号对应的数 据区,在该数据区中,存储当前图像的图像数据。在步骤S1012中,将电子文档中使用当前图像处的描述替换为一个二元组。在本 发明中,所述二元组为相应的图像信息的引用和所分配的索引号。在图像信息是指颜色空 间信息的情况下,所述相应的图像信息的引用即为对当前图像的颜色空间的引用。由于在 现有的电子文档中一般都独立地定义了颜色空间信息,所以可直接引用。在步骤S1014中,判断是否还有未处理的图像。如果还有未处理的图像,则重复步 骤S1004至步骤S1012。如果收集的所有图像都处理完毕,则在步骤S1016中,将索引中记 录的信息和索引入口写入到IFC文件中,并保存在其中所收集的图像的描述被替换为所述 二元组的电子文档。此外,该方法还可包括对图像数据进行编码的步骤。如上所述,可通过在文件头 部信息中定义压缩单位和压缩方法等字段来设置图像数据的压缩方式。比如,当压缩单位 为图像数据时,可在获取每个图像数据之后的任何时候,比如,将其写入IFC文件之前或之 后,采用指定的压缩方法对这些图像数据分别进行压缩,而无需再对整个IFC文件进行压 缩。当压缩单位为数据段时,可在每个数据段生成之后采用指定的压缩方法来对各数据段 分别进行压缩,而无需再对整个图像数据包、各图像数据进行压缩。当压缩单位为不压缩 (字段值为0)时,不对每个图像数据进行压缩,而是将所有的图像数据存储在IFC文件中之 后再采用默认压缩方法对该IFC文件整个进行压缩。这样,可进一步提高图像数据的压缩 率。所述默认压缩方法可以是flate、小波变换或Djvu等压缩方法。在对图像数据压缩之 后,可采用asides等方法对压缩的图像数据进行加密。此外,对于电子文档中的部分图像而言,图像信息很可能是相同的。比如,对于用 于拼接一副大型图像的许多个小体积图像,它们使用相同的颜色空间。在这种情况下,可抽 取这些相同的图像信息,并将其存储在一个图像信息表中,从而可去除大量重复的冗余描述信息,达到节省存储开销的目的。可将图像信息表保存在IFC文件中,在其文件头部信息 中记录该图像信息表在该IFC文件中的位置。或者,可将图像信息表作为单独的文件保存 在电子文档中。此时,在步骤S1012中,将电子文档中使用当前图像处的描述替换为图像信 息表的引用和所分配的索引号。或者,可根据电子文档的描述方式在该电子文档中直接定 义相同的图像信息。比如,在相同的图像信息为颜色空间Cl的情况下,可在电子文档中添 加颜色空间Cl的定义,在其使用相关图像处直接引用该颜色空间Cl。综上所述,通过步骤S1004至步骤S1016,按照索引结构将图像数据及其索引信息 和索引入口写入图像数据包文件中,并将电子文档中使用图像处的描述替换为相应的图像 信息的引用和所分配的索引号。这里,索引号表示相应的图像数据在索引结构中的位置。图 像数据在索引中的位置还可以用偏移等信息来表示。(第二实施例)如在图1的步骤S1006中所述,可按照不同的分段策略对图像数据进行有意义的 分段。此时,为当前图像分配的索引号是其所属数据段中相应的编号。有时,原始的图像收 集顺序本身就符合分段的顺序,因此,可依次为当前图像数据分配索引号。但是,有时,原始 的图像收集顺序可能并不是那么有序。此时,在不同的分段策略的情况下,很可能不能依次 为当前图像分配索引号,而是根据不同的数据段为当前图像分配其所属数据段中相应的索 引号。也就是说,就图像的收集顺序而言,所分配的索引号是跳跃式的。在这种情况下,不 是逐段地写入图像数据,而是多个数据段同时写入图像数据。因此,可在收集图像之后对这 些图像进行排序,以使可按照排序的顺序依次为当前图像分配索引号。并且,只有在排序之 后,才能保证无论在哪种分段策略下都可以逐段地进行操作。以下,将参考图2描述根据本发明的第二实施例的电子文档的图像数据存储方 法。该方法与图1所示的图像数据存储方法的不同之处在于,添加了图像排序步骤,并且逐 段地将索引中记录的信息输出到IFC文件中,而不是在将所有图像相关信息记录到索引结 构中之后再将全部索引信息一起输出到IFC文件中。以下仅描述与图1不同的步骤。在收集图像步骤S1000之后,执行步骤S1001,在步骤S1001中,按照一定的顺序对 收集的图像进行排序。这里,排序的顺序可与分段策略相对应,可以是图像被使用的顺序、 图像体积大小的顺序、解析度顺序、图像宽度顺序、图像高度顺序、图像信息(比如,颜色空 间、图像类型)顺序或者图像名称顺序等。在步骤1006中,由于已按照与分段策略相对应的策略对图像进行了排序,所以在 这个步骤中可按照排序的顺序依次为图像数据分配索引号。因此,也可以说,排序的结果对 分段策略的执行有优化、指导的作用。在步骤S1018中,判断当前段是否处理完毕。如果当前段没有处理完毕,则重复步 骤S1004至步骤S1012。否则,执行步骤S1020。在步骤S1020中,将索引中记录的当前段 的信息写入到IFC文件中。在步骤S1022中,判断是否还有未处理的数据段。如果还有未处理的数据段,则重 复步骤S1004至步骤S1020。否则,执行步骤S1024。在步骤S1024中,将索引入口写入到 IFC文件中,并保存在其中所收集的图像的描述被替换为所述二元组的电子文档。显而易见的是,可删除步骤S1020,而是在步骤S1022和步骤S1024之间插入将记 录所有段的图像相关信息的全部索引信息一起写入到IFC文件的步骤,此时,只要保证各个部分互相指向的偏移正确即可。但是,相比而言,逐段输出内存占用小,全部一起输出逻 辑简单,但是运行占用更多的内存。(第三实施例)如上所述,可根据不同的策略对收集的图像数据进行有意义的分段,从而可通过 预取和缓存某段的图像数据来更有效率地使用这些图像数据。对于索引结构,优选使用二 级索引结构。二级索引结构可提高索引组织的灵活性、索引加载的速度,从而提高运行的效 率,适用范围更广。在本实施例的二级索引结构中,设置主索引和段索引。相应地,在IFC 文件中记录主索引入口(主索引在IFC文件中的偏移位置)。主索引中至少记录段索引数 量、段索引在IFC文件中的偏移位置和该段中包括的图像数据的数量等信息。段索引中至 少记录段索引对应的数据段在IFC文件中的偏移位置、当前索引对应的图像数据在该数据 段中的偏移位置、图像数据长度等信息。根据主索引入口、主索引和段索引中记录的信息, 可唯一地确定当前图像数据在IFC文件和索引结构中的位置和长度。以下,给出了一个二级索引结构及其相应的IFC文件的示例的详细说明。下述IFC 文件优选用于宽、高小于65536且数据总长度小于65536字节的图像,更优选用于图像数据 长度不超过4k且图像宽度和高度有一项小于4的图像。1.图像数据包(IFC)文件基本结构
图像数据包文件的基本结构是
[Header]
[Data Section 1]
[Section Index 1]
[Data Section 2]
[Section Index 2]
[Data Section n]
[Section Index n]
[Main Index]
[Main Index Entry]
表1图像数据包基本结构信息说明
2.文件头部信息文件头部信息的数据结构如下表所示。表2文件头部信息的数据结构 3.主索引主索引由多项索引描述组成,其基本结构是[Index Count][Section Max Count][Normative][Index Description 1][Index Description 2]..................[Index Description n]索引描述给出了对应的段索引的描述信息,包括段索引位置、包含的图像数据数
14里等{曰息。表3主索引信息的数据结构 4.段索引段索引中包含对应的数据段位置,以及各图像数据的信息。其结构是[Data Section Position][Image Description 1][Image Description 2]..................[Image Description n]图像数据信息(Image Description)包含了宽、高、偏移量、数据长度等信息。表4段索引信息的数据结构
15 5.编号映射图像数据包中,各图像数据拥有唯一的编号。为了有效地解决索引号冲突的问 题,每个图像数据所分配的索引号为(n-l)*maxCOimt+m,其中,η表示该图像属于第η段, maxcount表示段最大粒度,m表示该图像是该段内的第m个。6.图像压缩数据压缩方式由压缩单位、压缩方法指定。当压缩单位为数据段(字段值为1)时, 可在每个数据段生成之后采用指定的压缩方法来对各数据段分别进行压缩,整个图像数据 包、各图像数据无需再进行压缩。当压缩单位为图像数据(字段值为2)时,可在获取DIB 格式的图像数据之后采用指定的压缩方法对每个图像数据分别单独进行压缩,整个图像数 据包、各数据段无需再进行压缩。当压缩单位和压缩方法都表示不压缩(字段值为0)时, 在生成图像数据包文件之后采用Flate等方法对整个包进行压缩。为了平衡压缩率和读写效率,压缩单位为数据段的处理方式是被强烈推荐的。此 外,考虑到小体积图像大量出现时,往往是用于图像拼接的情形,所以此处并未提供有损图 像压缩的方式,以避免大量的质量损害。在加密时,如果压缩单位值不为0,则采用指定压缩方法和密码,对压缩后的数据 段或者各图像数据进行加密,存储在文档中;如果压缩单位值为0,则按照正常的加密流程 进行处理。7.存储顺序这里并不限制以上所述的文件头部信息、数据段、段索引、主索引之间的实际物理 顺序,而是采用了偏移值进行数据块定位。应用程序可以根据具体需要来决定它们之间的 实际物理存储顺序。但无论采用那种顺序,文件头部信息必须位于文件开头,主索引入口必 须位于文件末尾。以下,将结合上述二级索引结构描述根据本发明的第三实施例的图像数据存储方 法的具体应用示例。假设一副宽度为600、高度为1200的图像,在电子文档中存储为1200个高度为1, 宽度为600的小体积图像,分别用Pl到P1200表示。由于Pl到P1200是用来拼接表示同一幅图像,所以Pl到P1200的颜色空间相同,将其表示为颜色空间Cl。这里,颜色空间信息 即为上述图像信息。在该示例,按照图像名称的顺序对图像Pl至P1200进行排序,以索引号依次加 1的顺序为当前图像分配索引号,生成一个规范化的图像数据包,每个数据段中最多包含 1000个小图像。即,段最大粒度为1000,图像Pl到P1000属于第一数据段,第一数据段包 含1000个图像数据,图像P1001到P1200属于第二数据段,第二数据段包含200个图像数据。参考图3,在步骤SllOO中,使用数组记录Pl到P1200这1200个图像所在位置(存 于磁盘上的路径或者在电子文档中的位置)。在步骤SllOl中,按照图像名称的顺序对该数 组进行排序。在步骤S1102中,写入IFC文件的文件头部信息,其中,将压缩单位设置为2,压缩 方法设置为1。即,以图像数据为单位采用flate编码进行压缩。同时,在内存中建立一个 空的主索引和段索引及其数据结构。在步骤S1104中,获得图像Pl的颜色空间Cl和DIB格式的图像数据D1。在步骤Sl 106中,为图像Pl分配索引号1。在步骤S1107中,使用flate编码对图像数据Dl进行压缩,得到压缩的图像数据 CDl。在步骤S1108中,将压缩的图像数据OTl写入IFC文件中与索引号1对应的数据 段中。在步骤SlllO中,将压缩的图像数据⑶1在段索引Sl中的数据位置P0S1、数据长 度LEm、宽度Wl、高度Hl形成一条记录Recordl,并记录在段索引Sl中。在步骤S1112中,将电子文档中使用图像Pl处的描述替换为颜色空间Cl和索引 号1。以下依次执行步骤1104至步骤1112对图像P2到P1000进行处理。如此,在段索 引Sl中形成有1000条记录,即,Recordl-RecordlOOO。图像Pl到P1000都具有相同的颜 色空间Cl。其后,在步骤S1120中,首先,将图像数据⑶1在IFC文件中的偏移位置和在段索 引Sl中记录的Recordl-RecordlOOO的信息写入到IFC文件中,并将段索引Sl在IFC文 件中的偏移位置和该段中包含的图像数量1000形成一个段索引信息SRl记录在主索引Ml中。接着,对于图像P1001到P1200,同样重复执行步骤1104到步骤1112,在段索引S2 中形成200条记录,S卩,Recordl001-Recordl200,这些图像的颜色空间也都是Cl。同样,对于段索引S2,在步骤Sl 120中,将图像数据⑶1001在IFC文件中的偏移 位置和在段索引S2中记录的RecOrdl001-RecOrdl200的信息写入到IFC文件中,并将段索 引S2在IFC文件中的偏移位置和该段中包含的图像数量200形成一个段索引信息SR2记 录在主索引Ml中。最后,在步骤Sl 124中,将主索引Ml中记录的信息和主索引入口写入IFC文件中, 所述主索引Ml中记录的信息包括段索引数量2、段最大粒度1000、规范化参数0x01、段索 引Sl在IFC文件中的偏移位置及其包含的图像数量1000以及段索引S2在IFC文件中的偏移位置及其包含的图像数量200。最后,保存使用图像处的描述分别被替换为索引编号 1-1200和颜色空间Cl的电子文档。经过以上处理,除去图像数据,上述二级索引结构大致需要1200*14 = 16800字节。在电子文档中,使用如下的形式引用图像数据和颜色空间。<Image ID =” 1” Index =” 1” ColorSpace =” C 1” ></Image>…<Image ID =” 1200” Index =” 1200” ColorSpace =” C 1” ></Image>如果直接采用XML描述各个图像的使用信息,则采用类似如下的结构<Image ID = ”1”Width =”600”Height =”1”><Loc>thi s_i s_an_image 1. BMP</Loc></Image>…<Image ID =” 1200” Width =” 600” Height =,,1,,><Loc>thi s_i s_an_image 1200. PNG</Loc></Image>那么大约需要额外1200*45 = 54000字节,约是上述二级索引结构的3. 2倍。而 将这些图像组织到文档中,还需要额外描述各个图像的名称以及在电子文档中的偏移,所 以还额外需要大致25*1200 = 30000字节。综合考虑,以上实施例较原来的表示方式提高 了 4-5倍的存储效率。以上计算过程并未涉及到图像数据大小。实际使用中,小体积图像大小通常更加 小,往往会只有一百字节到三百字节。在这种情况下,索引结构相对原始描述信息越小,所 能提供的压缩效率就越高。原始描述信息会往往达到小图像数据大小的30%。而上述二级 索引结构平均到每个小图像上只会达到每个小图像数据大小的3% -5%。因此,本实施例 的二级索引结构显著地降低了电子文档中图像的存储开销和运行时的内存开销。以下将描述如何对根据本发明的电子文档的图像数据存储方法而存储的图像数 据进行查找、修改、添加和删除。( 二)电子文档的图像数据查找方法如上所述,通过本发明的电子文档的图像数据存储方法,将分散在电子文档中的 图像集中存储在一个IFC文件中,并根据不同的分段策略对这些图像进行了有意义的分 段,从而使得仅通过一次I/O操作就可提取出具有共性的一些图像数据,并且,通过将这些 图像数据进行缓存,在后续的查找等操作中可直接读取缓存,而不必重复地多次执行I/O 操作。(第四实施例)图4是根据本发明的第四实施例的电子文档的图像数据查找方法的流程图,该方 法所查找的图像数据是根据本发明的存储方法而存储的图像数据。在进行查找时,首先由 用户或者以其它途径提供所要查找的图像数据在索引结构中的位置。如前所述,可用索引号或者其它偏移信息来表示图像数据在索引结构中的位置。在本说明书中,使用索引号作 为示例来表示相应的图像数据在索引结构中的位置。在步骤S2000中,根据提供的索引号从如上保存的电子文档中获得所引用的图像 信息。在将相同的图像信息写入到一个图像信息表的情况下,通过该图像信息表获取相应 的图像信息。在步骤S2002中,打开IFC文件,获取索引入口。索引入口指示索引在IFC文件中 的偏移位置。在IFC文件中包括头部信息的情况下,获取其头部信息。在步骤S2004中,根据索引入口查找与所提供的索引号对应的索引,并提取该索 引中记录的信息,包括相应的图像数据在IFC文件中的偏移位置和该图像数据的长度等信 息。所述查找可利用顺序或多叉查找算法,或者在数据结构长度固定的情况下,可通过字节 计算实现。在步骤S2006中,根据索引号和提取的索引信息确定相应的图像数据在IFC文件 中的位置和长度,并读取该图像数据。在需要读取一个数据段的图像数据的情况下,读取该 图像数据所属数据段中的全部图像数据。在步骤2008中,将获得的图像信息和图像数据返回给用户或者缓存。对于根据不同的分段策略对图像数据进行有意义的分段的情况,缓存步骤可使得 后续的查找等操作更为有效率。具体地讲,在通过第一次提取出某一数据段中的全部图像 数据并将其缓存之后,在以后查找时可优先查找缓存中的图像数据。如果要查找的图像数 据存在于缓存中,则直接读取缓冲中的内容,而不必重复执行I/O操作。如果要查找的图像 数据不存在于缓存中,则执行图4所示的正常查找流程。(第五实施例)如上所述,在IFC文件的头部信息中可定义压缩单位和压缩方法等字段。此时,在 从IFC文件中读取图像数据时,应根据所设置的压缩单位和压缩方法对读取的图像数据、 数据段或者整个IFC文件进行解码,以还原DIB格式的图像数据。这里,解码包括解压缩和 解密。图5是根据本发明的第五实施例的电子文档的图像数据查找方法的流程图。该方 法与图4的查找方法的不同之处在于,增加了根据IFC文件头部信息中设置的压缩单位和 压缩方法对图像数据进行解码的步骤。以下,仅描述不同的步骤。在步骤2003中,判断IFC文件头部信息中设置的压缩单位是否为不压缩。如果压 缩单位为不压缩,则在步骤S2010中,根据头部信息中设置的压缩方法对整个IFC文件进行 解码。否则,执行步骤S2004。在步骤S2012中,判断IFC文件头部信息中设置的压缩单位是否为数据段。如果 压缩单位为数据段,则首先,在步骤S2014中,根据索引号和提取的索引信息确定索引号所 在数据段在IFC文件中的位置和长度,并读取该数据段,然后,在步骤S2018中,根据头部信 息中设置的压缩方法对读取的数据段进行解码。如果压缩单位为图像数据,则首先,在步骤 S2016中,根据索引号和提取的索引信息确定与索引号对应的图像数据在IFC文件中的位 置和长度,并读取该图像数据,然后,在步骤S2020中,根据头部信息中设置的压缩方法对 读取的图像数据进行解码。在步骤S2008中,根据需要将图像数据或数据段中的全部图像数据返回给用户或者缓存。(第六实施例)以下,将参考图6描述查找根据上述二级索引结构存储的电子文档图像数据的实 施例。假设要读取图像P1010的图像信息和图像数据。由于索引的数据结构长度固定,所 以段索引的查找通过字节计算来实现。在步骤S2100中,根据索引号1010从保存的电子文档中获得相应的颜色空间Cl。在步骤2110中,打开IFC文件,读取头部信息,获得压缩单位为2、压缩方法为1等
fn息ο在步骤S2130中,根据IFC文件末尾记录的主索引入口找到主索引M1,并读取主索 引Ml中记录的信息,包括段索引数量2、段最大粒度1000、规范化参数0x01等。根据索引 号1010,确定所要查找的图像数据位于第1010/1000+1 = 2个数据段中。假设主索引入口 所指示的主索引在IFC文件中的偏移位置为PM1,则根据表3中的主索引信息的数据结构, 跳转到IFC文件中的偏移为PMl+ (4+2+1) + (4+2) * (2-1)字节处,直接读取4个字节,获取段 索引S2在IFC文件中的偏移位置PS2,再读取2个字节获得第2数据段中所包含的图像数 据的数量200。在步骤S2140中,根据索引号1010、段最大粒度1000和规范化参数0x01,确定 P1010在段索引S2的第1010% 1000 = 10条信息处。根据段索引S2的位置PS2和表4中 显示的段索引信息的数据结构,可计算得到第10条信息RecordlOlO的位置在IFC文件中 的PS2+(4+2+2+2)* (10-2)字节处,读取之后的4个字节获得P1010的CD1010在IFC文件 中的位置,再读取2个字节获得CD1010的长度,再读取2个字节获得P1010的宽度,再读取 2个字节获得P1010的高度。在步骤S2150中,利用读取获得的⑶1010的位置和长度,在IFC文件中读取图像 数据 CDlOlO0在步骤S2160中,使用f late编码对⑶1010进行解压缩得到P1010的原始图像数 据 D1010。在步骤S2170中,将解压缩后的图像数据D1010和相应的颜色空间Cl返回给用户。如上所述,如果在IFC文件的头部信息中记录的压缩单位为数据段,则在读取数 据段之后对数据段进行解码,如果压缩单位为不压缩,则在打开IFC文件时对IFC文件进行解码。同样,如上所述,第一次可根据索引号在索引中进行正常的查找,之后把该索引号 所在数据段中的所有图像数据缓存在内存中。下次查找时优先查找缓存的数据段。比如, 采用使用就近策略进行分段,将一页所有的图像数据存储在一个数据段中。在第一次打开 这个页面时,读取该数据段中的所有图像数据及其段索引信息并将其缓存,以后每次查找 时优先在缓存中查找。以下是在该实施例中进行缓存优先查找的流程检查在内存是否存在缓存的段索引;如果在内存中不存在缓存的段索引,则执行图6的正常查找过程;如果在内存中存在缓存的段索引,则根据提供的索引号和该段索引中记录的信息 判断要查找的图像数据是否在缓冲的段索引中;
如果要查找的图像数据不存在于缓存的段索引中,则执行图6的正常查找过程;如果要查找的图像数据存在于缓存的段索引中,则直接读取缓存中的图像数据。从上可看出,本发明对于分散在电子文档中的图像数据的统一管理的优势。原始 的方式是使用时才查找、读取相应的图像数据,所以每次读取必然会引起一次I/O操作。并 且,由于小体积图像之间没有相互关系,也没有成组的信息,所以很难实现预取操作,节省 I/O操作。而IFC文件可以按照图像数据段或者整个IFC文件等粒度加载进内存,实现了数 据预取,使用时不一定需要进行I/O操作,而可以将预取的数据直接进行返回,使得I/O性 能得到改善。特别的,当需要一次性提取所有小体积图像时,只需要一次性读取IFC文件, 而原始的方式则需要多次I/O操作进行遍历操作。(三)电子文档的图像数据修改方法在修改根据本发明的电子文档的图像数据存储方法存储的图像数据时,首先,判 断修改后的数据长度是否长于修改前的数据长度。如果修改后的数据长度不长于修改前的 数据长度,则直接在IFC文件中原始的图像数据处进行替换,并根据修改后的图像数据更 新对应的索引信息。否则,在IFC文件末尾写入修改后的图像数据,根据该图像数据更新对 应的索引信息,并在IFC文件末尾写入更新的索引和索引入口。以下,将给出在使用第三实施例的存储方法存储电子文档的图像数据的情况下修 改图像数据的方法。假设要修改的图像数据为P1001,新的图像数据为ND1001。如果ND1001压缩后的长度不大于⑶1001的长度,则执行以下步骤1.打开IFC文件。2.利用图6的查找方法,找到CD1001的位置。3.将CD1001替换为ND1001压缩后的数据。4.修改段索引S2中P1001对应的信息RecordlOOl,将其数据长度、宽、高修改为 ND1001 的值。5.保存。如果ND1001压缩后的长度大于⑶1001的长度,则执行以下步骤1.打开IFC文件。2.利用图6的查找方法,读取主索引Ml和段索引S2。3.在IFC文件末尾写入ND1001压缩后的数据。4.对S2中的RecordlOOl进行修改,将ND1001压缩后的数据在IFC文件中的偏移 位置、数据长度、图像的宽、高写入RecordlOOl。5.在IFC文件末尾写入段索引S2。6.将主索引Ml中段索引S2在IFC文件中的偏移位置改为段索引S2在IFC文件 中的新的偏移位置。7.在IFC文件末尾写入主索引Ml。8.在IFC文件末尾写入主索引Ml在IFC文件中的偏移位置,S卩,主索引入口。9.保存。另一种方法是无论修改后的数据长度如何,都直接在IFC文件末尾写入修改后的 图像数据,更新对应的索引信息,并在IFC文件末尾写入更新的索引和索引入口。在以上示 例中,即,无论ND1001压缩后的数据长度多长,都直接在IFC文件末尾追写图像数据,而不进行替换。(四)电子文档的图像数据删除方法在删除根据本发明的电子文档的图像存储方法存储的图像数据时,可将原始的 IFC文件全部解开,生成一个新的IFC文件,也可直接删除或者增量删除。直接删除包括以下步骤首先,修改索引,将该图像数据对应的索引中的记录用一 条空记录替换;然后,直接将所要删除的图像数据用0替换。增量删除包括以下步骤首先,修改索引,将该图像数据对应的索引中的记录用一 条空记录替换;然后,在文件末尾重新写入修改后的索引和索引入口。以下,将给出在使用第三实施例的存储方法存储电子文档的图像数据的情况下删 除图像数据的方法。假设要删除图像P1001。在直接删除的情况下,执行以下步骤1.打开IFC文件。2.利用图6的查找方法,读取主索引Ml和段索引S2,找到RecordlOOl 03.将RecordlOOl的信息全部置为0。4.将原始⑶1001处的数据全部设为0。5.保存。在增量删除的情况下,执行以下步骤1.打开IFC文件。2.利用图6的查找方法,读取主索引Ml和段索引S2。3.将段索引S2中的RecordlOOl的信息全部置为0。4.在IFC文件末尾写入段索引S2。5.将主索引Ml中段索引S2在IFC文件中的偏移位置改为段索引S2在IFC文件 中的新的偏移位置。6.在IFC文件末尾写入主索引Ml。7.在IFC文件末尾写入主索引Ml的偏移位置,S卩,主索引入口。8.保存。(五)电子文档的图像数据添加方法如果是默认的优化方式或初来就近的其他方式,则将新的图像数据直接写入IFC 文件末尾,按照生成的方式分配索引号,根据该图像数据更新索引,并在IFC文件末尾写入 更新的索引和索引入口。在采用诸如使用就近策略等分段策略的情况下,首先,判断与该图像数据共同使 用的其它图像数据所在的数据段是否已满,即,是否达到段最大粒度。如果没有满,则将该 图像数据添加到这个数据段中,并分配该数据段中相应的索引号。具体地讲,所分配的索引 号为这个段里最大的索引号+1。否则,建立一个新的数据段,并按照生成的方式分配索引 号。在写入图像数据之后,根据该图像数据更新对应的索引,并将更新的索引和索引入口写 入IFC文件末尾。以下,将给出在使用第三实施例的存储方法存储电子文档的图像数据的情况下添 加图像数据的方法。假设要添加一个新的小体积图像文件P1201。1.打开IFC文件。
2.利用图6的查找方法,读取主索引Ml。3.读取主索引Ml中记录的段索引S2的信息。4.由于这个IFC是规范化的,并且段索引S2中的图像数量少于最大粒度1000,所 以在IFC文件末尾写入⑶1201。5.在段索引S2中添加ReCordl201,填入CD1201的偏移位置、数据长度、P1201的
宽和高。6.在IFC文件末尾写入更新的段索引S2。7.更新主索引Ml中记录的段索引S2的信息,并将段索引S2在IFC文件中的新的 偏移位置及其所包含的图像数据的数量201写入到主索引Ml中。8.将主索引Ml写入IFC文件末尾。9.在IFC文件末尾写入主索引Ml的新的偏移位置,即,主索引入口。10.保存 IFC 文件。(六)电子文档的图像数据处理装置根据本发明的电子文档的图像数据处理装置至少包括存储单元,还可包括查找单 元、修改单元、删除单元和添加单元。查找单元、修改单元、删除单元和添加单元分别与存储 单元连接。参考图7,存储单元至少包括收集模块10、图像处理模块20和输出模块30。图像 处理模块20至少包括索引处理模块23,输出模块30包括IFC文件模块31和电子文档模块 32。在图像处理模块20仅包括索引处理模块23的情况下,收集模块10从电子文档收 集要处理的图像,为图像处理模块20和输出模块30提供所收集的图像的图像数据和图像 信息。索引处理模块23在内存中建立索引结构,为收集的图像分配索引号,并根据该图像 的图像数据更新与索引号对应的索引。IFC文件模块31写入数据包文件的头部信息,将从 收集模块10接收的图像数据写入IFC文件中与在索引处理模块23中分配的索引号对应的 数据区中,并将在索引处理模块23中建立的索引结构中记录的信息和索引入口等信息写 入到IFC文件中。电子文档模块32将电子文档中使用图像处的描述替换为一个二元组,即, 相应的图像信息的引用和在索引处理模块23中分配的索引号。如图7所示,图像处理模块20还包括排序模块21,该模块对收集的图像进行排序, 以使图像按照分段的顺序依次排列。然后,按照排序的顺序为图像处理模块20和输出模块 30提供图像数据和图像信息。图像处理模块20还包括编码模块22。当在IFC文件的头部信息中设置了压缩单 位和压缩方法时,编码模块根据从IFC文件模块31接收的压缩单位和压缩方法对图像数据 进行编码。具体地讲,当压缩单位为图像数据时,编码模块22采用指定的编码方法对从排 序模块21接收的图像数据进行编码,然后将经过编码的图像数据输出到IFC文件模块31。 当压缩单位为数据段时,编码模块22根据从索引处理模块23接收的分段信息采用指定的 编码方法对从排序模块21接收的图像数据进行分段编码。这里,分段信息指示某一数据段 中包括哪些图像数据及其数量等信息。当压缩单位为不压缩时,编码模块23采用指定的编 码方法对整个IFC文件进行编码。图像处理模块20还包括图像信息模块24,该模块从从收集模块10或排序模块21接收的图像信息中提取相同的图像信息,并将这些相同的图像信息记录在一个图像信息表 中。此时,电子文档模块32将电子文档中使用当前图像处的描述替换为图像信息表的引用 和所分配的索引号。或者,图像信息模块24根据电子文档的描述方法在电子文档中直接定 义这些相同的图像信息。根据本发明的电子文档的图像数据处理装置,查找单元从在IFC文件模块31中创 建的IFC文件中读取图像数据以及相应的索引信息,从在电子文档模块32中保存的电子文 档读取相应的图像信息,并在读取的图像数据已被编码的情况下,对该图像数据进行解码; 修改单元对在IFC文件模块31中创建的IFC文件中的图像数据及其相应的索引信息进行 修改;删除单元删除在IFC文件模块31中创建的IFC文件中的图像数据及其相应的索引信 息;添加单元将新的图像数据添加到在IFC文件模块31中创建的IFC文件中并更新对应的 索弓I fe息O以上描述了根据本发明的电子文档的图像数据处理方法及其装置。通过本发明, 对大量零碎的图像进行了集中的处理和存储,使得访问时的效率大大提高,并且使得当文 档中使用这些小体积图像时表述更为简单,节省了描述的数据量。在文档打开后,IFC文件 可以被直接打开、加载,在以后获取其中的图像数据时快速地、直接地从加载的IFC文件的 内容中读取,减少了 I/O操作数量。而多样化的策略也为在IFC文件中定位图像数据、图像 数据缓存提供了更多灵活性、提高了性能。比如,采用就近策略时,读取一个图像文件时意 味着和其同段的图像数据很有可能很快被使用,可以对这些图像数据进行预取、缓存。如 果,在生成IFC文件时不对各图像数据进行压缩,而是对整个IFC文件进行压缩,还可以进 一步提高图像数据的压缩率。尽管在以上实施例中描述了几种电子文档的图像数据存储、查找、修改、添加和删 除方法,但是应该理解,本发明的意图在于从电子文档中提取图像的图像信息和图像数据, 将图像数据集中存储在一个图像数据包文件中,从而显著降低内存开销,实现统一管理。本 发明不限于所描述的实施例,其它任何类似的变形或替换都应包括在本发明中。比如,在将 电子文档中使用当前图像处的描述替换为一个二元组这个步骤中,实施例中的二元组是相 应的图像信息的引用和所分配的索引号。这里,索引号表示的是图像数据在索引中的位置。 图像数据在索引中的位置还可以用偏移等信息来表示。另外,二元组也可以是三元组、四元 组等等或者只是一元参数,只要在其中定义了能够使用的图像信息和图像数据即可。也就 是说,只要能够从这些引用的描述中得到图像信息和图像数据即可,不管其组织方式如何。 索引结构不限于实施例中所示的结构,还可以是各索引项分散在文件各处且通过指针、偏 移相连的结构。此外,索引还可以与图像数据分离,保存在单独的文件中。本发明不限于仅 用于现有的PDF、XPS、CEB、MARS等文档格式,还适用于与其类似地描述图像信息和图像数 据的文档格式。
权利要求
一种电子文档的图像数据存储方法,其特征在于,该方法包括以下步骤从电子文档中收集图像;建立图像数据包文件和索引结构;和按照索引结构将收集的图像的图像数据及其索引信息和索引入口写入图像数据包文件中,并将电子文档中使用图像处的描述替换为一个二元组,所述二元组为收集的图像的图像信息的引用和相应的图像数据在索引结构中的位置。
2.根据权利要求1所述的电子文档的图像数据存储方法,其特征在于,所述相应的图 像数据在索引结构中的位置用在索引结构中为该图像数据分配的相应的索引号表示。
3.根据权利要求2所述的电子文档的图像数据存储方法,其特征在于,所述写入图像 数据包文件和替换电子文档的步骤包括以下步骤从收集的当前图像获得该图像的图像信息和图像数据;为当前图像分配索引号;将当前图像的图像数据写入图像数据包文件中与所分配的索引号对应的数据区中;根据当前图像的图像数据更新索引结构中与所分配的索引号对应的索引;将电子文档中使用当前图像处的描述替换为一个二元组,所述二元组为相应的图像信 息的引用和所分配的索引号;判断是否还有未处理完的图像;如果还有未处理的图像,则重复执行从收集的当前图像获得该图像的图像信息和图像 数据的步骤至将电子文档中使用当前图像处的描述替换为所述二元组的步骤;和如果收集的所有图像都处理完毕,则将索引中记录的信息和索引入口输出到图像数据 包文件中,并保存在其中所收集的图像的描述被替换为所述二元组的电子文档。
4.根据权利要求3所述的电子文档的图像数据存储方法,其特征在于,在分配索引号 的步骤中,根据分段策略为当前图像分配其所属数据段中相应的索引号。
5.根据权利要求4所述的电子文档的图像数据存储方法,所述分段策略是指这样的策 略,即,每个数据段包括相同数量或固定数据的图像数据,其余的图像数据则归入到最后一 个数据段中。
6.根据权利要求4所述的电子文档的图像数据存储方法,所述分段策略是指这样的策 略,g卩,将一起使用的图像数据归入到同一数据段中。
7.根据权利要求4所述的电子文档的图像数据存储方法,所述分段策略是指这样的策 略,即,按照图像的宽、高、分辨率或数据量大小来分段。
8.根据权利要求3所述的电子文档的图像数据存储方法,其特征在于,在从收集的当 前图像获得该图像的图像信息和图像数据的步骤中,如果获得的图像数据是已经压缩过的 图像数据,则根据所述电子文档中的压缩参数对这些图像数据进行解压缩,将其还原成DIB 格式的图像数据。
9.根据权利要求1所述的电子文档的图像数据存储方法,其特征在于,所述图像数据 包文件至少包括文件头部信息、存储图像数据的数据区、索引、索引入口,文件头部信息一 定位于图像数据包文件的开头,索引入口一定位于图像数据包文件的末尾,文件头部信息 中至少记录压缩单位和压缩方法,索引入口指示索引结构在图像数据包文件中的偏移位 置,索引中至少记录各个图像数据在图像数据包文件中的偏移位置和该图像数据的长度。
10.根据权利要求9所述的电子文档的图像数据存储方法,其特征在于,该方法还包括 对图像数据进行编码的步骤,其中,当文件头部信息中设置的压缩单位为图像数据时,在获取每个图像数据之后,采用文 件头部信息中指定的压缩方法对各个图像数据分别进行压缩,然后采用指定的加密方法对 压缩的图像数据进行加密;当文件头部信息中设置的压缩单位为数据段时,在获取每个数据段之后,采用文件头 部信息中指定的压缩方法对各个数据段分别进行压缩,然后采用指定的加密方法对压缩的 数据段进行加密;当文件头部信息中设置的压缩单位为不压缩时,在生成所述图像数据包文件之后,采 用默认的压缩方法对整个图像数据包文件进行压缩,然后采用指定的加密方法对压缩的图 像数据包文件进行加密。
11.根据权利要求3所述的电子文档的图像数据存储方法,其特征在于,该方法还包括 在从收集的图像获得图像信息之后将多个图像的相同的图像信息写入到图像信息表中的 步骤,同时,将电子文档中使用当前图像处的描述替换为图像信息表的引用和所分配的索 引号。
12.根据权利要求11所述的电子文档的图像数据存储方法,其特征在于,将所述图像 信息表保存在所述图像数据包文件中,在所述图像数据包文件的头部信息中记录该图像信 息表在该图像数据包文件中的位置。
13.根据权利要求11所述的电子文档的图像数据存储方法,其特征在于,将所述图像 信息表作为单独的文件保存在所述电子文档中。
14.根据权利要求3所述的电子文档的图像数据存储方法,其特征在于,该方法还包括 在从收集的图像获得图像信息之后根据所述电子文档的描述方式在该电子文档中定义多 个图像的相同的图像信息的步骤。
15.根据权利要求1所述的电子文档的图像数据存储方法,其特征在于,该方法还包括 在从电子文档中收集图像之后对收集的图像进行排序的步骤。
16.根据权利要求15所述的电子文档的图像数据存储方法,其特征在于,在排序的步 骤中,排序的顺序包括图像被使用的顺序、图像体积大小的顺序、解析度顺序、图像宽度顺 序、图像高度顺序、图像信息(比如,颜色空间、图像类型)顺序或者图像名称顺序。
17.根据权利要求15所述的电子文档的图像数据存储方法,其特征在于,所述相应的 图像数据在索引结构中的位置用在索引结构中为该图像数据分配的相应的索引号表示,并 且,在按照排序的顺序将图像数据分段的情况下,所述写入图像数据包文件和替换电子文 档的步骤包括以下步骤从收集的当前图像获得该图像的图像信息和图像数据;按照排序的顺序依次为当前图像分配索引号;将当前图像的图像数据写入图像数据包文件中与所分配的索引号对应的数据段中;根据当前图像的图像数据更新索引结构中与所分配的索引号对应的索引;将电子文档中使用当前图像处的描述替换为一个二元组,所述二元组为相应的图像信 息的引用和所分配的索引号;判断当前段是否处理完毕;如果当前段没有处理完毕,则重复执行从收集的当前图像获得该图像的图像信息和图 像数据的步骤至将电子文档中使用当前图像处的描述替换为所述二元组的步骤;如果当前段处理完毕,则将索引中记录的当前段的信息写入到图像数据包文件中; 判断是否还有未处理的数据段;如果还有未处理的数据段,则重复执行从收集的当前图像获得该图像的图像信息和图 像数据的步骤至将索引中记录的当前段的信息写入到图像数据包文件中的步骤;和如果所有的数据段都处理完毕,则将索引入口写入到图像数据包文件中,并保存被替 换的电子文档。
18.根据权利要求1至17中的任何一个所述的电子文档的图像数据存储方法,其特征 在于,所述索引结构为二级索引结构,该二级索引结构包括主索引和段索引,主索引中至少 记录段索引数量、段索引在图像数据包文件中的偏移位置和该段中包括的图像数据的数量 等信息,段索引中至少记录段索引对应的数据段在图像数据包文件中的偏移位置、当前索 引对应的图像数据在该数据段中的偏移位置、图像数据长度等信息。
19.一种查找根据权利要求1至17中的任何一个所述的图像数据存储方法存储的图像 数据的方法,其特征在于,该方法包括以下步骤根据提供的所要查找的图像数据在索引结构中的位置从如上保存的电子文档中获得 所引用的图像信息;打开图像数据包文件,并从图像数据包文件获取索引入口 ; 根据索引入口查找与所提供的位置对应的索引,并提取该索引中记录的信息; 根据所提供的位置和提取的索引信息确定所要查找的图像数据在图像数据包文件中 的位置和长度,并读取该图像数据;和将获得的图像信息和图像数据返回给用户或者缓存。
20.根据权利要求19所述的查找图像数据的方法,其特征在于,在图像数据包文件中 包括文件头部信息的情况下,在打开图像数据包文件时从图像数据包文件中获取其头部信 息和索引入口,并且,所述方法还包括对图像数据进行解码的步骤,其中,当在图像数据包文件的头部信息中设置了压缩单位和压缩方法时,在压缩单位 为不压缩时,在打开图像数据包文件时根据头部信息中设置的压缩方法对整个图像数据包 文件进行解码;在压缩单位为图像数据时,在读取图像数据之后根据头部信息中设置的压 缩方法对该图像数据进行解码;在压缩单位为数据段时,在根据索引号和提取的索引信息 确定索引号所在数据段在图像数据包文件中的位置和长度,并读取该数据段,然后根据头 部信息中设置的压缩方法对该数据段进行解码。
21.根据权利要求19所述的查找图像数据的方法,其特征在于,当将相同的图像信息 记录在图像信息表中时,通过引用的图像信息表获取对应的图像信息。
22.根据权利要求19所述的查找图像数据的方法,其特征在于,在根据分段策略将图 像数据分段的情况下,根据所提供的位置和提取的索引信息确定所要查找的图像数据所在 数据段在图像数据包文件中的位置和长度,读取该数据段中的所有图像数据并将其缓存, 再次查找该数据段中的图像数据时,执行以下步骤检查在内存是否存在缓存的数据段;如果在内存中不存在缓存的数据段,则执行根据权利要求19所述的正常查找过程;如果在内存中存在缓存的数据段,则判断所要查找的图像数据所在数据段是否为缓存 的数据段;如果所要查找的数据段不是缓存的数据段,则执行根据权利要求19所述的正常查找 过程;如果所要查找的数据段是缓存的数据段,则直接读取缓存的数据段中的图像数据。
23.—种修改根据权利要求1至17中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤判断修改后的数据长度是否长于修改前的数据长度;如果修改后的数据长度不长于修改前的数据长度,则直接在图像数据包文件中原始的 图像数据处进行替换,并根据修改后的图像数据更新对应的索引信息;和如果修改后的数据长度长于修改前的数据长度,则在图像数据包文件末尾写入修改后 的图像数据,根据该图像数据更新对应的索引信息,并在图像数据包文件末尾写入更新的 索引信息和索引入口。
24.一种修改根据权利要求1至17中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤在图像数据包文件末尾写入修改后的图像数据;根据所述图像数据更新对应的索引信 息;和在图像数据包文件末尾写入更新的索引信息和索引入口。
25.一种删除根据权利要求1至17中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤将与所要修改的图像数据对应的索引中的记录用一条空记录替换;和直接将所要删除的图像数据用0替换。
26.一种删除根据权利要求1至17中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤将与所要修改的图像数据对应的索引中的记录用一条空记录替换;和在图像数据包文件末尾重新写入更新的索引信息和索引入口。
27.一种添加根据权利要求1至17中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤在图像数据包文件末尾添加新的图像数据,并为该图像数据分配其在索引结构中的位置;根据所述图像数据更新对应的索引信息;和在图像数据包文件末尾写入更新的索引信息和索引入口。
28.一种添加根据权利要求4至7中的任何一个所述的图像存储方法存储的图像数据 的方法,其特征在于,该方法包括以下步骤判断与所要添加的图像数据共同使用的其它图像数据所在的数据段是否已满;如果所述数据段没有满,则将所述图像数据添加到该数据段中,并分配该数据段中相 应的索引号;如果所述数据段已满,则建立一个新的数据段,写入所述图像数据,并分配该数据段中 相应的索引号;根据所述图像数据更新对应的索引信息;和将更新的索引信息和索引入口写入图像数据包文件末尾。
29.一种电子文档的图像数据处理装置,包括存储单元,其特征在于,该存储单元包括收集模块,从电子文档收集要处理的图像;索引处理模块,在内存中建立索引结构,为收集的图像分配索引号,并根据该图像的图 像数据更新与索引号对应的索引;图像数据包文件模块,写入图像数据包文件的头部信息,将从收集模块接收的图像数 据写入图像数据包文件中与在索引处理模块中分配的索引号对应的数据区中,并将在索引 处理模块中建立的索引结构中记录的信息和索引入口等信息写入到图像数据包文件中;和电子文档模块,将电子文档中使用图像处的描述替换为一个二元组,即,相应的图像信 息的引用和在索引处理模块中分配的索引号。
30.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述存储单 元还包括排序模块,该模块对收集的图像进行排序,以使图像按照分段的顺序依次排列。
31.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述存储单 元还包括编码模块,在图像数据包文件的头部信息中设置了压缩单位和压缩方法的情况 下,当压缩单位为图像数据时,编码模块采用指定的压缩方法对从收集模块接收的图像数 据进行编码,然后将经过编码的图像数据输出到图像数据包文件模块;当压缩单位为数据 段时,编码模块根据从索引处理模块接收的分段信息采用指定的压缩方法对从收集模块接 收的图像数据进行分段编码,然后将经过编码的数据段输出到图像数据包文件模块;当压 缩单位为不压缩时,编码模块采用指定的编码方法对整个图像数据包文件进行编码,然后 将经过编码的图像数据包文件输出到图像数据包文件模块。
32.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述存储单 元还包括图像信息模块,该模块从通过收集模块接收的图像信息中提取出相同的图像信 息,并将这些相同的图像信息记录在一个图像信息表中,同时,电子文档模块将电子文档中 使用当前图像处的描述替换为图像信息表的引用和所分配的索引号。
33.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述存储单 元还包括图像信息模块,该模块根据所述电子文档的描述方法在所述电子文档中直接定义 相同的图像信息。
34.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述图像数 据处理装置还包括查找单元,该单元从在图像数据包文件模块中创建的图像数据包文件中 读取图像数据以及相应的索引信息,从在电子文档模块中保存的电子文档读取相应的图像 信息,并在读取的图像数据已被编码的情况下,对该图像数据进行解码。
35.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述图像数 据处理装置还包括修改单元,该单元对在图像数据包文件模块中创建的图像数据包文件中 的图像数据及其相应的索引信息进行修改。
36.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述图像数 据处理装置还包括删除单元,该单元删除在图像数据包文件模块中创建的图像数据包文件 中的图像数据及其相应的索引信息。
37.根据权利要求29所述的电子文档的图像数据处理装置,其特征在于,所述图像数 据处理装置还包括添加单元,该单元将新的图像数据添加到在图像数据包文件模块中创建 的图像数据包文件中并更新对应的索引信息。
全文摘要
本发明提供了一种电子文档的图像数据处理方法及其装置,包括图像数据的存储、查找、修改、删除和添加方法。图像数据存储方法包括从在电子文档中收集的图像获得其图像信息和图像数据;分配索引号;将图像数据写入IFC文件中对应的数据区中;根据图像数据更新对应的索引信息;将电子文档中使用图像处的描述替换为相应的图像信息的引用和索引号。图像数据的查找、修改、删除和添加方法通过索引结构对IFC文件中的图像数据进行操作。本发明将分布在电子文档中的图像数据集中存储在IFC文件中,并根据不同的分段策略对这些图像数据进行有意义的分段,从而显著地降低了存储开销,提高了访问效率。
文档编号G06F17/30GK101894115SQ20091015190
公开日2010年11月24日 申请日期2009年7月2日 优先权日2009年5月18日
发明者仇睿恒, 王毅 申请人:北京大学;北大方正集团有限公司;北京北大方正技术研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1