具体实施方式
根据本发明的方法利用了这样的观察到的情况,即在许多应用情况中待存储的数据(dat)的量可以划分为子数据量(M1,...,MN),或已经由于应用而划分,且在许多情况中在这些子数据量中的数据在其重要性或意义上对于各应用或对于各应用者不同。在此,现在本发明建议将这些数据中最重要的数据优先存储,且在此在一方面重要的且仍可存储的数据和另一方面不很重要的且因此不再可存储的数据之间的划分界限,取决于目标数据存储器(PSM)的可利用存储容量(SV)进行。以此方式实现了,可将尽可能多的最重要的数据存储在目标数据存储器(PSM)上。
在此,由各应用确定用于判断重要性的标准且因此确定用于对子量优先化的方法。在已提及的患者卡的例子中这容易地可见,即认为在这样的卡上除患者的个人数据(例如姓名、保险号等)外,应存储在患者出院时在医院内的一系列检查后由此获得的检查结果(例如听力敏度图、EKG等)、实验室结果(不同日期的血液分析)、数字X射线图像、病历(Arztbriefe)、处方等。清楚的是,从主治医生的角度在一些情况中对较新的检查结果的存储比对较旧的检查结果的存储更重要,或者在一些情况中电子处方可能比存储EKG更重要。然而,在具体的应用情况中,主治医生希望对这些单独地决定,并且例如借助于相应的菜单在其应用软件中对这些进行确定。
在此,例如可以为待存储的数据组、文件或(一般地)数据量的子数据量指定(自然数或有理数)数值,使得通过自然数或有理数的次序关系指示待存储的子量的次序或至少半次序。在半次序中,子量带有相同的优先性且因此带有相同的数值。这样的数值可以由主治医生给出,但也由应用的数据处理系统自动地根据确定的规则给出。
另一种可能性是,由主治医生借助于其应用软件的相应地构造的用户界面将子数据量(数据组、文件等)交互地或手动地按照顺序排列,这通过如下方式进行:主治医生在在显示器上向他显示的待排序的子量的列表中例如利用鼠标移动单个的列表对象,或者根据列表对象标记操纵按键(“Button”)将列表内的列表对象“向上”移或“向下”移动。根据该描述清楚的是,给出了许多类似的实施例可能性。
以类似的方式也可以进行将一个数据组或一个文件分离为多个子数据组或多个文件,例如如果文件包含多个X射线照片,或者如果文件包含带有对于应用情况重要性不同的多种血液值的数据组的血液分析。根据待分离的数据的文件结构,可以为此使用例如所使用的应用软件的文本编辑器或特定的菜单,该应用软件可能地具有集成的图形显示器(用于所谓的“缩略图”、“图标”等的“图像浏览器”、“预检器”)。图1以示意性方式示出了数据处理系统DVS,其上带有子数据量M1,...,MN。
只要待存储的数据的量M一旦具有排序或至少半排序的子数据量(M1,...,MN)的形式,则为确定可以在第二存储器(PSM)的可利用存储空间(SV)上存储的子量(M1,...,MZ)的最大可能数量Z而开始一次搜寻,该搜寻由数据处理系统DVS的处理器P执行,并且在搜寻的过程中将数据(dat)的待存储的量(M)在每个步骤中分别划分到第一量(MH)和第二量(ML)内,对于第一量和第二量使得在第一量(MH)中没有任何子数据量的优先性小于第二量(ML)中的任意的子数据量(Mj)的优先性。
在图2中示意性地示出了这样的搜寻的可能的实施例。在预处理(PreP,S&P)(在该预处理中如果要求则将通过对数据的待存储的量M的划分而产生子数据量,并且然后如果要求则根据其优先性排序)结束之后,进行实际的搜寻方法。在图2中图示的例子中,不仅实际的搜寻而且预处理均作为程序循环执行。在预处理中,在开始时(Start)和在每个预处理步骤(S&P)后检查预处理是否结束,因为待存储的数据量M(已经)具有排序或至少半排序的子数据量(M1,...,MN)的形式。预处理步骤(S&P)在此包括划分(分离)和排序(优先化)。
预处理后接着实际的搜寻,实际的搜寻再次具有程序循环的形式,程序循环至少包括如下程序步骤:将量M划分(s21)为第一量MH和第二量ML;和检查(s23)第一量MH的存储器空间需求(VMH)。在本发明的一些实施例中,也可以具有另外的步骤(s22),例如数据压缩。如果发现最大可能的第一量MH则离开搜寻循环(停止)。
在该搜寻期间借助于在每个步骤中进行的对各第一量(MH)的各存储器空间需求(VMH)的检查来检查各第一量(MH)的各存储器空间需求(VMH)是否小于或等于目标数据存储器(PSM)上的可利用存储器空间(SV)。作为搜寻的结果确定满足此条件的最大可能的第一量(MH)。因为所有这些第一量(MH)包括数个子数据量(M1,...,MN),作为搜寻的结果确定了所有在此出现的数字T的最大数量Z。
因此,通过搜寻解决了确定可以存储在第二数据存储器(PSM)的可利用存储器空间(SV)上的子量(M1,...,MZ)的最大可能数量Z的任务。因为量M具有子数据量(M1,...,MZ)的排序或至少半排序的量的形式,所以这样确定的Z个子数据量(M1,...,MZ)具有“最重要”的子数据量的意义,使得以此方式可存储的子数据量中的没有任何一个的优先性低于任意的以此方式不再可存储的子数据量的优先性。
根据本发明的方法的特别有利的实施方式建议,在每个搜寻步骤中在对存储器空间需求(VMH)的各检查前将各第一量(MH)中的数据的至少一个部分借助于数据压缩方法压缩,使得检查每个被压缩的数据的存储器空间需求,并且其中将以此方式确定的Z个子数据量(M1,...,MZ)最后以压缩的形式传递到第二数据存储器并存储在其上。
此措施虽然根据所使用的数据压缩方法和取决于被压缩的数据种类以及取决于力求达到的压缩度而导致了根据本发明的方法的或多或少重要的速度损失,但在许多情况中这通过由此可实现的对在目标数据存储器上的可存储的子数据量的数量Z的提高而弥补。在此需考虑到在许多应用中,例如在对多媒体数据存档时或将患者数据和检查数据存储在患者卡上时,为此所要求的时间不再具有首要的意义。
在此使用的数据压缩方法对于在各第一量MH中的子数据量可以(但不必须一定)是同一个压缩方法。如果在搜寻步骤中所考虑的第一量MH例如包含文本数据以及图像数据时,如果对于图像数据的压缩使用为此专门开发的图像数据压缩方法(例如JPEG、MPEG等),则产生了明显的优点。究竟是否对文本数据进行压缩可以根据其冗余度确定。
一些文本数据(例如血液分析报告)包含许多缩写和仅很少的自然语言概念,经常不可以按照明显的压缩因数被压缩。其他的文本数据(例如病例)一般包含显著的冗余,借助于为此开发的标准压缩方法(例如Huffman、LZW等)可以容易地去除冗余。相关的文献为本说明书的专业读者给出了大量用于优化的可能性。
作为第一量MH中的单个的子数据量的替代,可以按照不同的与每个匹配的压缩方法处理子数据量的不同的冗余结构,但也可以使各搜寻步骤的每个第一量MH完整地(“作为块”)经受数据压缩方法的处理。这首先意味着冗余结构不很不同,或与此相关联的速度益处不应被忽略。
对最佳第一量MH、其存储器空间需求(VMH)以及其压缩后的存储器空间需求(VMH)的搜寻(取决于是否使用和如果需要使用压缩方法)如果小于或等于目标数据存储器(PSM)上的可利用存储器空间(SV),则不必一定地在本发明的每个实施例中进行实际的优化。正是在此情况中,其中在一些搜寻步骤后在存储器信息上的附加的获益仅很小,可以有意义的是在发现近似的最佳的第一量MH后终止搜寻,并且将在此近似的最佳的可存储在第二数据存储器的可利用存储器空间(SV)上的第一量MH中的数量Z视作最大可能数量Z。
为搜寻最佳或次最佳的第一量MH,完全地一般的任何二进制搜寻方法是合适的。这样的方法例如在Donald E.Knuth的专论“The Art of ComputerProgramming”,Volume 3,2nd Edition;Addison Wesley;1997中,且在此特别地在6.2.1节中详细地描述,并且对于专业人员是非常熟悉的。各二进制搜寻方法主要区别在于它所基于的划分规则,借助于该规则将量M在每个搜寻步骤中划分为第一量MH和第二量ML。
最简单的划分规则也可以称为半划分,其中在第一步骤中将数据M划分为两个(近似地)相等大小的部分。如果必要时被压缩、部分压缩或不压缩的第一量MH的存储器空间需求VMH大于第二数据存储器的可利用存储器空间SV,则所搜寻的第一量MH必须小于在此步骤中被检查的第一量MH。在此情况中,在搜寻的下一步中将量MH本身划分为两个(近似地)相等大小的部分MH′以及ML′。
如果VMH等于SV,则搜寻终止,并且在MH中子数据量的数量Z是可存储的子数据量的搜寻的数量。
如果VMH小于SV,则可以再给出量MH″,其中所包含的子数据量的数量Z″大于MH中的数量。在此情况中,在搜寻的下一步中将量ML划分为两个(近似地)相等大小的部分MLH和MLL,并且新的现在待检查的第一量MH″是MH和MLH的联合量。新的第二量ML″则是量MLL。
如果发现最大可能量MH,或者如果进一步的搜寻不实际上明显地扩大此量,则搜寻被中断(停止)。
作为(近似的)半划分的替代,在一些情况中其他划分规则是有利的。如果例如已知子数据量在数据压缩前或后的数据容量(dV1,...dVN),则可以将该知识用于加速搜寻,例如通过在划分中根据子数据量(M1,...,MN)的已知的数据容量(dV1,...dVN)外推期待的存储器空间需求。如果所有数据容量(dV1,...dVN)近似地大小相等,则为控制划分也可以使用在各量MH以及HL中的子数据量的数量。专业人员根据现有的描述且根据他们的一般的专业知识容易地发现进一步的变化,在此出于篇幅的原因不能将其完全描述。
在许多情况中子数据量(M1,...,MN)由于其优先性不严格地排序,而是仅进行半排序。如果一些子数据量的优先性相同时这特别地出现,并且由此指示的半排序例如不通过由主治医生的手动的、可能任意的对子数据量的排序替代。存在解决此问题的这样的可能性,即将带有相同的优先性的子数据量的次序确定为可以使尽可能多的子数据量(M1,...,MZ)传递到第二数据存储器并保存在其上。
为此,在搜寻期间要求对初始相等的优先性的适应性的新确定。专业人员可根据在此现有的描述将这些优先性容易地整合在搜寻中,例如整合在图2的搜寻步骤s22中。在此,例如可以使用随机控制方法或基于对子数据量(M1,...,MN)的数据容量(dV1,...dVN)的了解的方法,以便用于对初始相等的优先性的程序控制的新确定。
各子数据量不必都存储在一些数据处理系统DVS的同一个第一数据存储器(SM)上。在一些应用情况中,各子数据量或这些子数据量的组可以位于一个数据处理系统DVS或者多个可能在空间上分开的且通过例如互联网的远程连接相互连接的数据处理系统DVS的不同第一存储器(SM)上。
不过,在其他情况中子数据量也可以通过将大的文件(例如图像文件)分开而得到,并且因此存储在同一个第一数据存储器(SM)上。