寻址处理方法 本发明涉及一种在SDRAM型存储器中存储数据的寻址处理。
数字视频处理需要能够在存储器中存储视频图像。通常使用两种类型的存储器:
-静态随机存取存储器(SRAM)。这些存储器的区域可以直接从地址总线访问。
-动态随机存储器(DRAM),或者,如果它们是同步的话则为,同步动态随机存储器(SDRAM)。
该动态存储器被分为页,并且存取对应于页的改变的新页需要称为“时间损失”的存取时间。该存储器地址包括称为页地址或“行地址”的第一部分,和称为位地址或“列地址”的第二部分。在此所提到的在引号内地术语是通常用于DRAM或SDRAM型元件的技术表中的术语。
日益普遍的视频处理应用需要存取图像块,也就是说图像的一组像素。
例如用于根据MPEG(运动图像专家组的缩写)标准的数字视频数据压缩是这种情况,其中基本编码尺寸是构成宏块的图像块。在运动估计中,当前图像宏块被与存储在SDRAM型存储器中的重构图像的宏块相比较,以便于确定重构宏块,使得与当前图像宏块最佳相关。
在MPEG标准中,该宏块是由四个8×8亮度数据元的块和(例如对于4∶2∶0格式)两个8×8色度数据元的块构成的组,该宏块从图像的亮度成分的16×16单元的部分发出。
实际上,运动估计计算是仅仅在亮度值上执行的。然后,该相关块仅仅是总尺寸为16×16的亮度块。这些块被以16像素×8线的块的形式存储,总存储为16×16的亮度块预先被分为两个16像素×8线的块。这些块对应于上帧的第一块和下帧的第二块,以图像模式分组为两个帧,或者对应于以帧模式组合最初8线形成的第一块和组合相同帧的随后8线形成的第二块。在下文中,这些16像素×8线的亮度块被称为亮度半宏块或简称为半宏块,以表示它们组合两个8像素×8线的亮度块,在MPEG标准中,术语“亮度宏块”被用于表示4个亮度块。
通常需要从存储器中检索尺寸大于16像素×8线的图像块。所检索的块的尺寸实际上由应用程序所确定。
例如,运动矢量的计算是利用一半像素的分辨率来执行的,这要求对具有附加线和列的图像块进行处理,也就是说该图像块尺寸为17像素×9线。
另一个实例与重构图像中的搜索窗口有关,在该窗口中执行块的相关,并且根据用于运动估计的处理,该窗口具有较大或较小的尺寸。在第一步骤中,根据运动矢量为一个处理过程指定一个搜索窗口的位置,在第二步骤中通常需要精确搜索,以便于执行局部调整,该精确搜索是在小尺寸的窗口上执行的。在一个实施例中,这些搜索窗口具有24×12的尺寸,对应于16×8像素块的±4的水平飘移和±2的垂直飘移。
对于较大尺寸的整个块的存取时间通常不是最佳化的,需要存取SDRAM存储器的几个页,以读取或写入构成该块的像素数值。
图1表示在同一水平行上的16×16尺寸的亮度宏块、第一个16×16亮度宏块1和最后一个16×16亮度宏块2,也就是说,表示在一个图像宽度上水平连续的宏块。在通常情况下,一行宏块对应于一个片段,例如在MPEG标准中所定义的。在下文中,术语“行”将特别用于指在一个图像宽度上的连续块或半宏块,术语“片段”将保持用于宏块。
在横坐标轴上表示像素数,在纵坐标轴上表示线数。在720像素的图像宽度上的16个视频行对应于16像素的45个宏块(720∶16)。
半宏块被根据电视型扫描依次存储,如在下文中所述的。
图2表示存储器页4、5、6、8,他们被在半宏块的存储过程中依次寻址。如上文所述,16×16宏块在被分为上块和下块两部分之后存储。
如果上块对应于一帧,而下块对应于下一帧,也就是说在图像模式中,上块被依次存储在一个存储空间中,并且下块被依次存储在另一个存储空间中,因此每个存储空间对应于一帧。
如果上块和下块对应于相同的一帧,也就是说在帧模式中,它们被依次存储,也就是说首先是行的(半宏块的)上块,然后是对应于下一行的下块。该下一帧被存储在另一个存储空间中。
该存储过程是对帧模式进行描述的,并且毫无困难地推广到图像模式。它被应用于每个存储空间,对它们中的每一个仅仅分别考虑被存储于其中的半宏块。
在本实施例中,页4可以存储标号为3的8个半宏块MB。接下来的8个半宏块MB在下一页5中存储,如此等等。因此,每8个半宏块中有一页更换或跳跃7,这在技术文献中称为“页丢失”。对应于第一行末端的第45号半宏块被存储在标号为6的一页的中间,更确切地是作为该页的8个半宏块中的第5个半宏块。
下一个半宏块对应于该帧的第二行的开始处的半宏块,被存储在该存储器的新页8的开始处,把行开头的半宏块存储在页开头处是处理该寻址的最简单的解决方法。
图3示出这种现有技术的一个缺点。存储空间被简略地表示为所存储的半宏块13的一个函数。粗线12对应于尺寸为8个16×8像素的块组成的页的页边界。3个完全重叠的页被表示对应于该帧中3个连续行的重叠半宏块的组。需要存取比所存储的半宏块尺寸更大的图像块,需要存取几个页以便于读取一个图像块。因此,对17线×9像素的块(标号为9)的存取需要4页的更换,对相同尺寸的块10的存取需要两页的更换,并且对尺寸为24线×12像素的块11的存取需要6页的更换。该计算考虑到必须执行的第一页更换,这仅仅是存取该块。
在这种结构中,对于尺寸为17×9的块的页更换的最大数目是4,对于尺寸为24×12的块的页更换的最大数目是6。
存储器写入/读取设备必须这样构成,以便于考虑最大可能的页更换数目。因此,该数目越大,则存取时间越长,即使对于存取单个页来说也是如此。
这些页更换或者更加确切地说是页更换的最大可能数目,需要一种系统结构,它损失用于所存储数据的存储时间,从而减小存储总线的通频带,该通频带对应于可以在给定时间段中存取的像素数目。页更换需要一定数目的时间周期,从而降低存取时间。
本发明的目的是减轻上述的缺点。
为此目的,本发明的主题是用于存储图像的数字视频数据的处理过程,该图像被分为由h像素的v线构成的图像块(h,v),在该图像宽度上的块组构成一行,数据被按照对应于电视型扫描的次序作为连续图像块存储在动态随机存储器的连续页中,用于由H像素的V行所构成的图像块(H,V)的读取,其特征在于,当考虑在该图像中的块和构成它们的页的位置时,对应于图像的行I的页边界相对对应于行I+a的页边界的水平位移过的块(h,v)的数目DI,I+a等于:
DI,I+a=aD,正整数a小于RM=INT[(V-2)/v]+2,
(INT对应于该除法的整数部分)
对应于两个相邻行之间的位移的数值D被选择使得:
D≥(BM-1),其中BM=INT[(H-2)/h]+2。
根据一个特定的实施方式,该处理的特征在于,该位移是通过在存储行的最后块的页中保留对应于一个或多个块(h,v)的空白存储空间而获得的。
本发明还涉及一种处理过程,其用于估计运动,存储尺寸为h,v的块(h,v),以便于在存储器中获得重构图像,并进行当前图像的块与所存储的重构图像的尺寸H,V的块(H,V)的比较,其特征在于,根据上述处理中的一个把块(h,v)存储在SDRAM型存储器的页中。
本发明还涉及一种相关处理,其执行尺寸为h,v的图像块(h,v)的存储,以便于在存储器中获得重构图像,并且读取尺寸为H,V的重构图像的搜索窗口(H,V),以便于执行当前图像的块与位于搜索窗口中的图像块之间的相关,其特征在于,根据上述处理中的一个把块(h,v)存储在SDRAM型存储器的页中。
本发明还涉及一种处理过程,其用于预测在重构图像中的图像块,执行尺寸为h,v的图像块(h,v)的存储,以便于获得一重构图像,根据运动矢量预测以便于在重构图像中确定一个尺寸为(H,V)的块,读取该块(H,V),其特征在于,根据上述处理中的一个块(h,v)存储在SDRAM型存储器的页中。
利用本发明的优点,页更换的最大数目受到限制并且相应地改善通频带。对像素块的存取时间被优化。由于整体传送时间的减小,特别有利于使用数据总线的时间的最小化,通频带是当前所采用的存储器存取设备的性能的一个重要限制。
从下文中通过实例并结合附图给出的描述中将有助于更好地理解本发明的特征和优点,其中:
图1表示图像的一个宏块片段的第一个和最后一个宏块,
图2表示根据现有技术在一存储器中的半宏块的存储,
图3表示要被从根据现有技术构成的存储器中读取的块,
图4表示根据本发明的存储空间的结构,
图5表示要被从根据本发明构成的存储器中读取的块,
图6表示在根据本发明的存储器中的半宏块的存储。
图4表示根据本发明的存储空间的结构。
上文给出的实例中的页尺寸是16×8像素的8个半宏块。从一行半宏块到下一行,由粗线所表示并对应于页跳跃的页的垂直边界14被位移等于两个半宏块的距离(或移动两个宏块,因为它们的宽度是相同的)。因此,帧的半宏块位于属于另一页的一页的第一和第二半宏块之下。
图5被于图3相比较并表示在存储器中的相同图像块9、10、11。通过移动页的边界,对17×9像素块(标号为9)的存取,需要3个页更换而不是4个,对相同尺寸的块10的存取需要2个页更换,并且对尺寸为24×12像素的块11的存取需要4个页更换而不是6个。
在这种结构中,对于尺寸为17×9的块的页更换的最大数目是3,对于尺寸为24×12的块的页更换的最大数目是4。因此通过利用这种结构,页更换的数目可以减少2个,即,在本应用中获得12个存储器时钟周期。
该所进行的位移实际上取决于要被读取的图像块的尺寸,与所存储的那些块相关。
所存储块的尺寸是h、v,也就是说由h像素的v线所构成,并被称为块(h,v)。
要被读取的块是尺寸为H、V,也就是说由H像素的V线所构成,并被称为块(H,V)。
在存储器中,可以在其上分配垂直尺寸V的块(H,V)的最大行数是:
RM=INT[(V-2)/v]+2
INT(取整)表示该除法的整数部分。
水平尺寸H的块(H,V)可以水平分布的最大块数是:
BM=INT[(H-2)/h]+2
在块的两个连续行之间,对构成存储器的一页的水平位移D(以所存储块的数目为单位)的限制条件保持为:
D≥(BM-1)
例如,对于最多在两个尺寸为H的连续行(RM=2)之上垂直分布的(H,V)块(标号为9或10)在1和h+1之间,也就是说,一个块最多水平分布在两个块(h,v)上(BM=2),位移D等于1。
当块(H,V)可以分布在几个行上时,该限制条件可以推广到对该块计算的行RM的最大数目:
设D是在两个连续行之间选择的位移数值,该数值满足如下不等式:
D≥(BM-1)
设a是范围在1和RM-1之间的整数变量,该限制条件则可以写为:
DI,I+a=aD,a,RM>a≥1。
在任何行I和行I+a之间位移DI,I+a。
例如,对于标号为11的块(H,V)最多垂直分布在3个连续行(RM=3)上,并且其尺寸H在h+2和2h+1之间,也就是说一个块最多水平分布在3个块(h,v)上(BM=3),位移DI,I+a等于2,并且位移DI,I+2等于4。
为了实现这一位移,在存储空间中产生不被使用的区域。要被与图2相比较的图6在一条实线上表示一系列存储页4、5、6、8,例如它们在被半宏块的存储过程中寻址。当到达第一行的最后半宏块时,它是存储在标号为6的页中的第5个半宏块,尺寸对应于一个半宏块的存储区域15被保持空白,以在该页中的第7和第8个半宏块的位置记录下一行的第一和第二半宏块。因此下一页8记录该下一行的第三的半宏块。在该帧中,位于页8中的第一半宏块之上的已经被存储作为上行的相应页3的第3个半宏块。
三个半宏块的位移对应于没有空白的存储空间,单个半宏块的位移对应于两个半宏块尺寸的存储空间。
通常,存储在下一行的第一页中的半宏块的数目对应于该位移,前一行以一个新页为开始,8个半宏块的数目对应于没有位移。
该描述已经根据所存储的半宏块给出。当然这是一个示例性的实施例,并且该半宏块可以由任何类型任何尺寸的图像块所代替,而该处理过程不脱离本发明的范围。
该存储已经在一图像的帧的级别上进行描述。它可以在完整图像的级别上进行,例如从连续扫描中得出的图像。然后,该图像分割为块是根据完整图像执行的,并且该图像块被存储在单个存储空间中。
本发明的应用例如涉及在一重构图像中根据一运动矢量对被预测块的存取,在运动估计的计算过程中存取与当前块相关的搜索窗口。
所存储的块还可以应用于在一MPEG解码器中重构的块的存储。例如当运动矢量被精确到半个像素之内时,要被从存储器中读取和由该运动矢量所确定的被预测块通常是具有比所存储块更大的尺寸。然后,这些读取块被通过应用当前图像块的计算的插值而重新定尺寸。