信息的压缩存储的制作方法

文档序号:7507282阅读:201来源:国知局
专利名称:信息的压缩存储的制作方法
技术领域
本发明涉及一种用于在存储器中存储数据项的方法和装置,包含以下步骤将每一数据项分成重要性降低的连续数据段,以及在上述存储器的各连续层中存储上述连续数据段。本发明还涉及一种用于读取这样存储的上述数据项的方法和装置。
为了节省存储器的成本,信息在存储之前通常会受到有损耗的压缩。各种压缩算法是公知的,同时其中一些用于商业应用的算法已经进行了标准化。例如,JPEG是一种图像压缩标准,MPEG和H.263是视频压缩标准。将图像分成块,并进行如离散余弦转换(DCT)之类的正交转换。对每一DCT块的系数进行量化和熵编码。一缓冲器控制电路以这样的方式来控制量化过程,使之获得一个期望的频道位速率和/或使图像(或一串图像)能够存储在给定容量的存储器,如光盘中。
预测编码器如MPEG编码器有一个或多个用来暂时存储预测帧的帧存储器。通常,预测帧不经压缩地存储在象素存储器中,但是目前有对预测图像进行当地压缩和解压缩,从而使帧存储器能够可以有效地嵌入在与编码器本身相同的晶片上的趋势。在共同待审的国际专利申请IB99/00151(PHN16.769)中揭示了这种编码器的一个例子。
因此有各种原因来压缩信息使其适合给定的固定容量存储器。复杂图像压缩算法可以通过对每一幅图像进行预先分析和最后均匀分配量化误差来实现上述目的。然而,这需要附加存储器,而它是完全可以制止的。
发明的目的和概述本发明的目的是提供一种在存储器中存储数据项的具有吸引力的可选方法。
依据本发明的方法使用一个可减少其连续存储层中的存储单元数目的存储器。当一数据段应用于候选、且已预先存储一数据段在其中的存储单元中时,至少上述存储数据段感知的相关性与至少上述应用数据段感知的相关性依据一预定的标准进行比较。如果存储数据段的感知相关性较大的话,应用数据段就不存储在所述的候选存储单元中。如果应用数据段感知的相关性较大的话,候选存储单元中的存储数据段就会被应用数据段所代替,在该存储器中存储连接数据从而将所述的候选存储单元连接到母体存储单元,在母体存储单元中存储相同数据项的更高重要性的数据段。
本发明可以实现这一点,每次当把数据项存入链式存储层时,它的数据段将不得不和先前存储的段进行相互竞争。由于只有“胜者”才可以存储在存储器中,因此信息可以自动压缩,且所有的存储器资源最后都可以用来存储可感知的最多相关数据段。因此信息可以自动压缩到这样的程度从而使其恰好能够适合于存储器。能够省去一个位速率控制机构和对信息的预分析。
本发明一个特别有用的应用是在混合编码器的嵌入式存储器中压缩存储预测图像。将每一图像分块,并进行离散余弦变换(DCT)。图像的DCT块构成数据项。对它们进行分层量化从而获得重要性不断降低的数据段。
结合随后描述的实施例,本发明的这些和更深入的方面将会阐述得更为清楚。
图2表示

图1中所示的功能元件的更为详细的图示。
图3表示由该装置实现的存储过程的操作步骤流程图。
图4A-4C表示存储过程的各个不同级中存储器内容的实例。
图5A和5B表示在连续的存储层之间建立连接的不同实施例。
图6表示图2中所示的存储器的一个可选实施例。
图7表示在存储过程之后,图6中所示的存储器的内容的示例。
图8表示依据本发明用来从一存储器中检索信息的装置的原理图。
图9表示由图8中所示的装置实现的检索过程的操作步骤流程图。
图2更为详细地显示了量化级3、存储器接口电路4和存储器5。尤其是,该图显示每一DCT块D(k)都进行了一系列的量化操作。第一量化器301将D(k)量化成为一个预定(更可取地是固定的)位数的第一代码序列D(1,k)。代码序列D(1,k)构成一个具有最高重要性的数据段。一个减电路305从原始的DCT块D(k)中减去该代码序列D(1,k)从而获得量化误差。这个余数被第二量化器302进行量化(精制),产生一个和D(1,k)相比具有较低重要性的第二代码序列D(2,k)。以相似的方式,第三代码序列D(3,k)和第四代码序列D(4,k)分别由第三量化器303和第四量化器304生成。这样量化级3将每一DCT块D(k)分成连续的重要性S递减的代码序列D(s,k)。
图2进一步说明存储器5被组织成一系列的存储层。第一存储层501有N1个存储单元M(1,1)……M(1,N1),第二存储层502有N2个存储单元M(2,1)……M(2,N2),第三存储层503有N3个存储单元M(3,1)……M(3,N3),第四存储器层504有N4个存储器单元M(4,1)……M(4,N4)。如图2中进一步表明,连续的存储层具有递减的存储单元数目,即N1>N2>N3>N4。
存储器5中存储层的数目与量化级3中的量化器的数目相同。每一存储层存储一相应量化器的代码序列。也就是说,每一存储单元M(s,i)储存一代码序列D(s,k)。为此目的,每一存储层通过存储器接口电路4与相应的量化器相连。连接505-508是双向的,以便使存储器接口电路能够读和写代码序列。
存储器接口电路4可以进一步布置用来在连续层的存储单元之间以“链接”的形式建立连接路径。如果在图2或其它类似的附图中表示了两个存储单元M(s,i)和M(s+1,j)之间的连接,这将意味着在这些存储单元中分别存储相同DCT块D(k)的代码序列D(s,k)和D(s+1,k)。在图2中,连接511-513表示一个特定DCT块的所有四个代码序列都存储在存储器5中,即存储单元M(1,1)、M(2,1)、M(3,1)、和M(4,1)中。由于缺少连向最后(即最低重要性)层504的连接,因此连接521和522表示一个DCT块只有3个最高重要性的代码序列存储在存储单元M(1,4)、M(2,4)、M(3,4)中。在下文中将对建立这种连接的实施例进行更为详细的描述。
图2所示装置的操作由存储器接口电路4所执行的指令来定义。为此目的,接口电路实际上将包含一个嵌入式微处理器。因此存储器接口电路也可被称为微处理器。下面将结合图3中所示的操作步骤流程图来描述它的操作过程。在初始步骤30中,将表示当前DCT块D(k)的变量k赋值为1,及将表示上述块的当前代码序列D(s,k)的重要性的变量s赋值为1。要注意s的较大值表示较低的重要性。将所有的存储单元M(i,j)清空,以表示目前其中还没有存储代码序列。
在步骤31中,当前DCT块的最高重要性代码序列D(1,k)存储在第一(=最高重要性)存储层的存储单元M(1,k)中。可以假定,第一存储层有足够的存储单元来存储图像的所有DCT块的最高重要性代码序列D(1,k)。
步骤32中将变量s加1。步骤33中,检查有资格用来存储代码序列D(s,k)的存储单元M(s,i)是否为空。在本实施例中,代码序列从上到下存储在存储层中。这样有资格储存的存储单元M(s,i)简化为相关层的下一个存储单元。如果存储单元M(s,i)为空的话,在步骤34中就将代码序列D(s,k)存储在上述存储单元中。步骤35中,微处理器进一步创建存储单元M(s,i)和M(s-1,j)之间的连接,其中在存储单元M(s-1,j)中已经存储了同一DCT块的更高重要性代码序列。可以临时假定实际上在每一层中有空闲的存储单元用来存储当前代码序列D(s,k)。步骤36中,随后检查当前DCT块的所有代码序列是否已经处理完了。如果不是这种情况,程序就返回到步骤32以处理同一DCT块的下一个(较低重要性)代码序列。否则,程序将k加1(步骤45中),并返回到步骤31来处理下一个DCT块。
在对存储器接口电路4的操作进行描述之后,将可以理解与最低重要性存储层中的存储器单元一样多的DCT块可完全储存在存储器5中。存储过程将很快到达这样的状态其中由于在一个存储层中缺少空的存储单元,当前DCT块D(k)就不能再完全存储了。图2表示了第一次发生这种情况的位置。图中所示的连接521-522表示第四DCT块D(4)的3个最高重要性代码序列已经存储了。存储程序进行到步骤33中,并发现在存储层504中没有空的存储单元来存储块D(4)的最低重要性代码序列D(4,4)。
如果在步骤33中确定了在一存储层中不再有空的可用存储单元的话,代码序列D(s,k)必须与先前存储的代码序列进行竞争。为了这个目的,一计算子程序37计算尚未存储的代码序列D(s,k)……D(4,k)的感知相关性R(s,k)。一感知相关性的指示为应用代码序列D(s,k)及其较小重要性后续的63个AC系数qn(s,k)的总能,即R(s,k)=Σs′=s4Σn=163qn2(s′,k)]]>实际上它可以仅仅用应用代码序列D(s,k)的AC系数的能量来近示,即R(s,k)=Σn=163qn2(s,k)]]>以相似的方式,子程序还能够计算一个或更多先前存储的竞争代码序列D(s,i)的感知相关性R(s,i)。在这个实施例中,子程序37确定其中存储具有最低感知相关性R(s,i)的代码序列的存储单元M(s,i)。
随后,在步骤38中,微处理器将R(s,k)与R(s,i)相比较。如果当前代码序列有一个较低的感知相关性,则程序返回到步骤31中从而处理下一个DCT块。在这种情况下,同一块D(k)的当前代码序列和较低重要性的代码序列都没有存储。这儿可以假定实际上代码序列D(4,4)没有足够的感知相关性来证明它的可存性。因此,只有DCT块D(4)的3个最高重要性的代码序列暂时被保持。在图4A中显示了这种状况,其中路径521和522在第三存储层之后是断开的。
如果当前代码序列D(s,k)有一个较高的感知相关性,则执行步骤39,其中将代码序列存储在其中保持有较低相关性代码序列的存储单元M(s,i)中。在步骤40中,对连接进行更新以反映出新的状况。也就是说,连向丢失的母体存储单元的连接被打断,并建立一个新的连接。图4A中也显示了这种状况。将DCT块D(5)的最小重要性代码序列存储在M(4,1)中,因此重写先前存储的较低感知相关性的代码序列D(4,1)。先前的连接(图2中的513)被一个新的连接533所取代。
已经在存储单元M(s,i)中存储了代码序列D(s,k)之后,程序继续进行,将同一块D(k)的较低重要性代码序列存储在那些与存储单元M(s,i)相连的后续存储单元中。为此目的,程序将s加1(步骤41),检查是否有连接连向下一层(步骤42),并且在所述层中存储较低重要性的代码序列(步骤43)。替换操作一直重复,直到在步骤42中发现所有先前的那些沿着已有路径存储的代码序列都被替换为止。
图4B中表示了替换操作的一个实例,在将序列D(3,8)存储在单元M(3,2)中以及建立连接542的基础上,将同一块的较低重要性序列D(4,8)存储在M(4,2)中,且已经连接(543)到M(3,2)上。在这个实施例中,替换操作继续进行,直到在步骤44中发现当前块D(k)没有更多的代码序列进行处理为止。
图4C中显示了另一实例,其中代码序列D(2,20)存储在M(2,4)中(新连接551),同一块的较低重要性序列D(3,20)存储在M(3,4)(现存连接552)。在步骤42中,存储过程会发现从M(3,4)到下一层没有更多的现存连接(与图4B进行比较)。在这样一种情况下,计算子程序37会再次执行从而计算D(20)的较低重要性代码序列是否比那些已经存储的序列具有更高的感知相关性。在图4C中,会发现D(4,20)比D(4,5)更为相关(与图4B比较)。因此,D(4,20)会存储在M(4,1)中,并建立适当的连接553。
在存储过程的结束时,图像已经自动进行压缩从而恰好适合存储器的大小。使用了所有的存储器资源,且图像质量会在整个图像上均匀分布。
图5A和5B说明了在连续的存储层之间建立连接的实施例原理图。附图表示了一个存储层s中的存储单元M(s,i),和一个在下一(较低重要性)层s+1中的存储单元M(s+1,j)。每一存储单元包含一个用来存储代码序列D(s,k)的区段71和一个地址区段。在图5A中,地址区段72中的地址寻址下一层中用来存储较低重要性代码序列的存储单元j的地址。在图5B中,地址区段73中的地址寻址前一层中用来存储较高重要性代码序列的(母体)存储单元I的地址。假定s层和s+1层分别有Ns和Ns+1个存储单元,并考虑用一个地址值来指定缺少连向下一层的连接,图5A中地址位的总数为Ns×[2log(Ns+1+1)]在图5B中(其中由于总是存在母体单元的,因此对缺少的连接不需要进行编码),地址位的总数为Ns+1×[2logNs]在下面将结合附图6进行描述的存储器的一个实施例中,所需用于建立连接的地址位数目可明显减少。该实施例与图2中所示的实施例不同之处在于,可存储连续代码序列的存储单元是用候选连接的预定模式来定义的。在图6中各个连续存储层之间的虚线形式表示了这种候选连接的这样一种模式的一个例子。在该实施例中,每一存储单元有两个固定的候选母体单元,但是将会意识到(相对小的)数目不是两个也是可能的。每一后续存储层有一半数目的存储单元。如前面关于图5B描述的方式那样,每一存储单元包含母体存储单元的地址73。在这个实施例中,一个单一地址位就足够了。在下文中,地址0就表示两个候选连接中较高的一个,而地址1就表示较低的一个。
在该存储器组织结构中不仅减少了地址位的数目,而且该装置的复杂性也大幅度减小。存储过程与前面结合图3描述的过程相同,但是,某些操作步骤就处理能力来说更为简单一些。它不用计算多个代码序列的感知相关性和选择最低相关的那个(图3中的子程序37),而是在这个实施例中的存储接口电路只需要计算一个代码序列的感知相关性,即存储在特定存储单元中的代码序列,而对该存储单元,连接模式提供了一个候选连接。例如,在M(1,9)中存储最高重要性代码序列D(1,9)的基础上,D(2,9)的感知相关性就只需与M(2,1)的内容相比较。
应注意的是,预定连接模式能够以许多方式定义。在一个存储层中的任何两个存储单元可以构成较低重要性层的母体。例如,每两个相邻的存储单元M(s,i)和M(s,i+1)都能够是M(s+1,i)的母体。在这个实施例中,如图6所示,M(s+1,i)的母体是单元M(s,i)和M(s,i+1/2Ns)。每一代码序列必须与图像中定位较远的DCT块的一个代码序列相竞争,这是非常有利的。因此量化误差可以均匀分布在图像中。图7表示了存储过程的一个可能最终结果。
图8表示检索存储信息的装置原理图。存储器5通过一存储器接口电路6与一反量化级7相连。反量化级7包含一个反量化器701-704和加法器705-707。通过压缩过程的描述能够容易地理解该装置的操作。第一反向量化器701从第一存储层中接收一个DCT块D(k)的最高重要性代码序列D(1,k),并且对所述代码序列解量化。如果各自的连接都存在的话,这个结果可以用来自后续层中的一个或更多的较低重要性代码序列进行改进。然后将DCT块应用一个反离散余弦变换(未显示)。
为了完整起见,图9显示了由存储器接口电路6执行的操作流程图。在初始步骤90中,将表示一个要检索的当前DCT块D(k)的变量k赋值为1,并将表示所述块的当前代码序列D(s,k)重要性的变量s赋值为1。在步骤91中,最高重要性代码序列D(1,k)从存储单元M(1,k)中读出,并应用到反量化器701中。随后,将变量s加1(步骤92),并且该电路检查在下一个较低重要性存储层中是否有连向存储单元M(s,i)的连接(步骤93)。在步骤93中,如果发现有这一连接,则读出存储在所述连接单元中的较低重要性代码序列D(s,k),并应用到相应的反量化器中(步骤94)。一直到没有更多需检查的层(步骤95),程序返回到步骤92中以搜索同一块的更多代码序列。如果发现没有连接连向下一层,则检索的代码序列就进行反量化,并相加(与图8中的6比较)生成DCT块D(k)(步骤96)。然后程序将k加1(步骤97),并返回到步骤91用来检索下一个DCT块。
步骤93中检查是否有从母体存储单元到后续层的连接的实际实现要依赖于如图5A和5B所示的用来建立连接的实施例。在图5A的情况下,步骤93仅仅包含读取存储在母体存储单元中的地址j。在图5B的情况下,步骤93包含搜索具有母体存储单元地址i的存储单元。要注意的是,如果如图8所示具有预定连接模式的话,步骤93是极其简单的。在这种情况下,后续存储单元是事先已知的,而且只需要检查“数据段链”是否持续到下一层。
在结合将一个单一图像存储在固定大小的存储器中来对本发明已进行描述的同时,将会意识到本发明的构想也可以用于存储多幅图像。因此应用可以是电子静止图像照相机和带有闪卡或其它用来存储未知数目图像的介质的监控系统。每一图像就是一数据项。第一图像在质量上可以(接近)无损失存储。当加入更多的图像时,已经存储图像的质量会逐步降低,从而为新图像提供存储空间。
总结来说,公开了一种存储在一个固定大小存储器中的压缩信息方法。构成信息的数据项(D(k))被分成重要性递减的段(D(s,k))。例如,一幅图像的DCT块进行分层量化(3)。存储器(5)由相应的存储层(501-504)组成。在连续存储层中具有递减的存储单元数目。每次在数据项存储于存储器中时,它的较低重要性数据段将不得不和事先已存储的数据项的相应数据段相竞争。依赖于它对感知图像质量的贡献,而存储应用数据段或者是保持原来存储的数据段。将连接(511-513、521-522)存储在存储器中以识别沿其存储数据项的路径。最终,图像可以自动压缩以恰好置于存储器中。
权利要求
1.一种用来在存储器中存储数据项的方法,包含以下步骤-将每一数据项(D(k))分成(3)重要性递减的连续数据段(D(s,k)),-将上述连续数据段存储在所述存储器的相应连续层(501-504)中,每一层包含用来存储给定重要性的数据段的存储单元(M(s,i)),其特征在于连续存储层的存储单元数目(N1-N4)递减,方法进一步包含以下步骤-当一数据段被用于其中已经事先存储了数据段的候选存储单元(M(s,i))中时,依据一预定的标准,将最少所述存储数据段的感知相关性(R(s,i))与最少应用数据段的感知相关性(R(s,k))进行比较(37),-如果存储数据段的感知相关性较大的话,就制止在上述候选存储单元中存储应用数据段,-如果应用数据段的感知相关性较大的话,a)将候选存储单元中的存储数据段用应用数据段来替换(39),并b)存储(40)存储器中的连接数据(72;73),以将上述候选存储单元连接到母体存储单元,该母体存储单元中存储了同一数据项中较高重要性的数据段。
2.如权利要求1所述的方法,其中所述的替换步骤包含将存储在连向所述候选存储单元的后续存储单元中的数据段用应用数据项的相应较低重要性数据段来进行替换(41-43)。
3.如权利要求1所述的方法,其中所述的比较步骤包含将存储数据段和在连向所述候选存储单元的后续存储单元中存储的后续数据段的感知相关性,与应用数据段和应用数据项的相应后续数据段的感知相关性相比较。
4.如权利要求1所述的方法,其中一层的多组存储单元共享一个后续存储层中的候选存储单元。
5.如权利要求4所述的方法,其中一组存储单元与其它组的存储单元相互交错。
6.如权利要求4所述的方法,其中每一组包含两个存储单元。
7.如权利要求1所述的方法,其中所述的连接步骤包含在母体存储单元中存储候选存储单元的地址(72)。
8.如权利要求1所述的方法,其中所述的连接步骤包含在候选存储单元中存储母体存储单元的地址(73)。
9.如权利要求1所述的方法,其中所述的数据项是一幅图像的子图像,将每一数据项分成重要性递减的连续数据段的步骤中包含对所述的子图像进行分层量化的步骤。
10.一种用来从存储器中读出数据项的方法,其中所述数据项(D(k))的连续数据段(D(s,k))以重要性递减的顺序存储在所述存储器(5)的相应连续层(501-504)中,而该连续层的存储单元数目不断减少,该方法包含以下步骤a)从相应存储层中的母体存储单元中读出(91,94)一数据段;b)读出存储器中存储的连接数据(72;73)以识别后续层中的存储单元,该后续层中存储有同一数据项的后续数据段;以及c)只要识别出从母体存储单元到后续层中存储单元的连接,就重复步骤a)和b);d)从随后读出的数据段中构造每一数据项。
11.如权利要求10所述的方法,其中所述的读出连接数据的步骤包含从母体存储单元中读出后续层中存储单元的地址(72)。
12.如权利要求10所述的方法,其中所述的读出连接数据的步骤包含确定后续层中的存储单元,其中存储了母体存储单元的地址(73)。
13.如权利要求10所述的方法,其中所述的重要性递减的顺序的数据段是一幅图像的分层量化予图像。
14.用来在一存储器中存储数据项的装置,包含-用来将每一数据项(D(k))分成重要性递减的连续数据段(D(s,k))的装置(3),-存储器接口装置(4),用来在所述存储器的连续层(501-504)中分别存储所述连续数据段,每一层包含用来存储给定重要性数据段的存储单元(M(s,i)),其特征在于连续存储层的存储单元的数目(N1-N4)不断减少,存储器接口装置按照如下所述进行配置-当一数据段被应用到一个已事先存储了数据段的候选存储单元(M(s,i))时,依据一预定的标准(38),将至少所述存储数据段的感知相关性(R(s,i))与至少所述的应用数据段的感知相关性(R(s,k))进行比较(37),-如果存储数据段的感知相关性较大,则制止在所述的候选存储单元中存储该应用数据段,-如果应用数据段的感知相关性较大的话,a)将所述候选存储单元中的存储数据段替换成应用数据段(39),以及b)将连接数据(72;73)存储在存储器中从而使所述的候选存储单元连向母体存储单元,在该母体存储单元中存储了同一数据项中较高重要性的数据段。
15.一种用来从存储器中读出数据项的装置,其中所述数据项(D(k))的连续数据段(D(s,k))以重要性递减的顺序存储在所述存储器的相应连续层(501-504)中,这些连续层的存储单元的数目不断减少,它包含用来从连续存储层中读出上述连续数据段的存储器接口装置(6);和用来从上述连续数据段中构造每一数据项的装置(7);存储器接口装置(6)可以这样进行配置a)从各自的存储层的母体存储单元中读出(91,94)数据段;b)读出存储在存储器的连接数据(72;73),以识别后续层中存储同一数据项的后续数据段的存储单元;以及c)只要识别了从母体存储单元连向后续层中存储单元的连接,就重复步骤a)和b)。
16.一种在其上存储了数据项(D(k))的存储介质(5),其中所述数据项的连续数据段(D(s,k))以重要性递减的顺序进行排列,存储器由存储单元递减数目(N1-N4)的连续层(501-504)组成,用于存储给定重要性的数据段并包含连接数据(72;73)的连接数据部分,以识别后续层中存储同一数据项的后续数据段的存储单元。
全文摘要
本文揭示了一种用来在固定大小的存储器中存储压缩信息的方法。构成信息的数据项(D(k))被分成重要性递减的数据段(D(s,k))。例如,一幅图像的DCT块可以进行分层量化(3)。存储器由相应的存储层(501-504)组成。连续存储层中存储单元的数目递减。每次将一数据项应用到存储器时,它的较低重要性数据段将不得不和事先存储的数据项的相应数据段进行竞争。取决于它对感知图像质量的贡献,存储应用数据段或者是保持存储的数据段。将连接(511-513,521-522)存储在存储器中以识别一数据项存储所经的路径。最终,图像可以自动压缩以准确适用于存储器。
文档编号H03M7/30GK1321361SQ00801810
公开日2001年11月7日 申请日期2000年6月28日 优先权日1999年7月2日
发明者R·P·克莱霍尔斯特, R·J·范德弗罗伊滕, A·K·纽兰 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1