使用循环缓存存储器以曲折扫描顺序处理数据阵列的制作方法

文档序号:7636482阅读:204来源:国知局
专利名称:使用循环缓存存储器以曲折扫描顺序处理数据阵列的制作方法
技术领域
本发明涉及数据缓存设备,其包含连续接收由索引对组织的数据结构的二维阵列的输入单元,第一索引以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值。本发明进一步涉及数据缓存方法,以及数据处理方法和设备。
处理数据结构的二维阵列是普遍存在的任务,在图像处理和视频处理领域尤其重要。随着如高清晰度电视(HDTV)这样的新数字电视信号标准的到来,以及如视频会议CIF这样的低端视频格式的广泛使用,不同视频标准间转换不仅成为传媒业专业工作室的任务,也成为消费电子设备的需求。例如,图像率转换现在由场频(fieldrate)高达100Hz的增强电视显示器、计算机工作站和DVD播放器执行。
图像率转换技术的一个分支使用运动补偿方法。已知的运动补偿方法基于如下原理视频序列中物体的运动信息可以在两帧连续视频图像间插值图像数据。插值生成的图像数据用于生成显示的中间图像,从而增加了图像率。视频序列中的物体运动由运动估算技术确定。典型的运动估算算法,如US2003/0103567A1中描述的方法,应用基于块的方法,其中,为选择的像素块(如包含8x8像素的像素块)定义围绕后面图像中的像素块的搜索区域,选择的像素块置于搜索区域中心。运动估算算法的输出是二维运动向量阵列,每个运动向量赋给各个像素块。运动向量是运动轨迹在图像平面上的投影。运动轨迹是连接视频图像序列中相同图像部分的线。
因此,为视频图像像素块分配的一组运动向量形成数据结构的二维阵列。运动补偿处理过程将为各个像素块分配的运动向量作为输入。因为所有显示设备都自左至右、自上而下的扫描图像,所以运动补偿方法也采用这种预定的标准扫描顺序。
US2003/0161403A1描述了转换扫描格式的设备,其中,运动估算器提供运动向量给运动补偿器。运动估算器包含存储运动向量的缓存存储器,运动补偿器读取所述运动向量。
最近显示,在运动估算处理中使用曲折(meandering)扫描顺序可以增加插值视频图像的图像质量。使用曲折扫描顺序时,运动估算过程以相反方向扫描连续像素块行,例如,自左至右扫描第一像素块行,自右至左扫描相邻的第二像素块行,然后自左至右扫描下一第三像素块行,以此类推。类似的,曲折扫描顺序也可以基于列进行,例如,自上而下扫描视频图像的第一像素块列,自下而上扫描相邻的第二像素块列,然后又自上而下扫描下一第三像素块列,以此类推。通常来说,曲折扫描顺序表明索引对(描述像素块的排列)的一个索引交替以第一方向和相反的第二方向逐步遍历索引值的有序集合,预定边界索引值标志转折点。在每个转折点,第二索引值以预定方向改变一个步长。
在运动估算和运动补偿算法中使用不同的扫描顺序使缓存运动估算器的输出更加困难。不同的运动向量需要在缓存中保留不同的时间跨度,直到它们由运动补偿器读取为止。显然,这个问题可以通过提供足够大的缓存存储器来解决,该存储器能够保存整个曲折周期的运动向量。但是,为了补偿不同扫描顺序而提供更大的缓存存储器对于芯片面积和能耗来说都是昂贵的。此外,缓存大量运动向量增加了运动估算器和运动补偿器两个处理过程间的延迟。运动补偿器落后运动估算器一个完整曲折周期,例如两像素块行。
本发明的目的是提供数据缓存方法和设备,使得可以减少形成二维阵列的数据结构的存储容量,所述二维阵列由第一处理以曲折顺序提供,且由以非曲折扫描顺序进行的第二过程读出其中的内容。
本发明的另一目的是提供数据处理设备以及数据缓存设备,其具有以曲折方式顺序提供数据结构的二维阵列的第一处理单元,其允许减少由第二处理单元以非曲折扫描顺序进行的读取访问的缓存存储器的存储容量。
根据本发明的第一方面,提供一种数据缓存设备,包括 —输入单元,用于顺序接收由索引对组织的数据结构的二维阵列,第一索引以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值, —循环缓存存储器,具有通过指针值的有序集合可寻址的预定数量的存储单元, —缓存控制单元,其与所述循环缓存存储器和所述输入单元相连,用于以周期性的方式为当前输入的数据结构的索引对分配所述指针值集合中的写指针值,并将所述当前输入的数据结构写入相应存储单元;一个写指针分配周期包含 —第一写指针分配阶段,期间第一索引以所述第一曲折方向逐步遍历第一索引值集合,所述写指针以所述指针值集合中定义的第一旋转方向逐步遍历指针值, —第二写指针分配阶段,期间所述第一索引值以所述第二曲折方向改变,所述写指针以所述第一旋转方向逐步遍历指针值, —第三写指针分配阶段,期间所述第一索引以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针以和所述第一旋转方向相反的第二旋转方向逐步遍历指针值,以及 —第四写指针分配阶段,期间所述第一索引值以所述第二曲折方向改变,所述写指针以所述第二旋转方向逐步遍历指针值。
本发明的数据缓存设备使用具有预定数量存储单元的循环缓存存储器。循环缓存是公知的用于临时保存顺序得到的数据的存储器结构。尽管循环缓存由有限数量的存储单元构成,它看起来拥有无限大小,因为自身其进行循环。当数据被保存在循环缓存中的连续存储单元时,最终会达到该缓存的物理末端。此时,此缓存继续接收数据且在它的另一物理末端开始的位置保存数据。
下面将通过例子示出循环缓存的基本操作。顺序保存输入的数据结构的循环缓存的缓存控制单元对于每个新的数据结构,增加指向相应存储单元的写指针值。写指针最终会到达指针值集合的上边界。此时,例子中的循环缓存可以使用最低值的写指针值进一步保存输入的数据结构,然后接着增加该指针值。以前保存在这些存储单元中的数据被覆盖。因此,缓存控制单元执行的存储单元寻址是无尽头的周期模式,可以看成是循环。指针值的增加或减少可以看成指针值沿相反旋转方向改变。
本发明的循环缓存存储器内的存储单元大小可以根据要在此循环缓存存储器中保存的数据结构的大小决定。存储单元的容量应该至少能够保存一个完整的接收到的数据结构。因此存储单元通常包含多个存储单元。根据给定的指针值寻址循环缓存存储器各个存储单元在本领域是公知技术。
本发明的数据缓存设备的缓存控制单元周期性执行写指针分配。指针分配的周期性质和从缓存设备的输入端接收的各个数据结构的二维阵列分配的索引值的改变相关。一个写指针分配周期有四个写指针分配阶段。在这四个阶段中的每个阶段,为输入的数据结构分配的索引对中的一个索引逐步遍历该索引的给定索引值集合。每个输入数据结构中的哪个索引进行改变取决于该数据结构二维阵列的接收是基于行还是基于列。通常在每个写指针分配阶段,该索引会在覆盖预定的索引值范围。但是在每个阶段方向会改变,从而就该二维阵列而言在输入单元得到曲折的接收模式。
第一写指针分配阶段的特点是,索引以第一曲折方向改变,写指针以指针值集合中定义的第一旋转方向逐步遍历指针值。在第二写指针分配阶段,第一索引值改变曲折方向,而写指针分配的旋转方向保持不变。在第三写指针分配阶段,曲折方向再次改变,写指针分配的旋转方向也改变。最后,在第四写指针分配阶段,指针分配旋转方向保持不变而曲折方向再次改变。
为了说明,输入的数据结构可以形成一组运动向量,其从形成视频图像中的像素块中通过运动估算器的辅助计算得到。假设将相应的运动向量矩阵逐行提供给本发明的缓存设备,完整的写分配周期包含四行运动向量。在输入单元接收的数据结构的曲折方向每行都改变,而缓存控制单元执行的写指针分配的旋转方向则每两行变化一次。
本发明的数据缓存设备允许以最小的存储空间提供对保存的数据的访问。使用循环缓存消除了非曲折处理过程读取数据结构前在缓存中保存完整曲折周期的数据结构的必要性。这通过提供缓存控制单元来实现,它可以改变写指针分配时使用的旋转方向。通过使用如上所述的协调曲折方向和旋转方向改变,存储单元中的数据在被读出之前不会被覆盖。本发明中,曲折方向和数据缓存设备的写指针分配的配合使用还允许减少写缓存和读缓存之间的延迟。这样,本发明的缓存设备可以增加数据处理设备中的处理速度。
本发明的数据缓存设备的另一个优势是ME和MC进程共享使用、保存视频数据的芯片内置高速缓冲存储器的大小也可以减小。这点将参考图7示出的优选实施例进行详细的说明。
下面将描述本发明的缓存设备的优选实施例。
在优选实施例中述缓存控制单元用于接收对所述循环缓存存储器的读请求,以根据非曲折读模式读取所述循环缓存存储器中的所述二维阵列中的数据结构,这样所述第一索引以固定的读方向重复遍历所述第一索引值集合。非曲折读模式使用相同的方向改变每行或每列相应的第一索引值。
优选的,缓存控制单元用于为数据结构的每个索引对分配读指针值,读请求指向该数据结构,所述读指针值等于将对相应的数据结构保存至所述循环缓存存储器时赋与相应索引对的写指针值。
在进一步的优选实施例中,循环缓存存储器中的可寻址存储单元的数量比第一索引值的数量多一,并且,其中所述缓存控制单元用于以周期性的方式为当前输入的读请求的索引对分配所述指针值集合中的读指针值,一个读指针分配周期包含 —第一读指针分配阶段,其与所述第二写指针分配阶段同时发生,其中,所述读指针以所述第一旋转方向逐步遍历指针值,所述读指针在所述第一旋转方向上与所述写指针有一步指针值的偏移,并且在最后分配步骤中从所述第一旋转方向变成所述第二旋转方向, —第二读指针分配阶段,其与所述第三写指针分配阶段同时发生,其中,所述读指针以所述第二旋转方向逐步遍历指针值,所述读指针在所述第二旋转方向与所述写指针有一步指针值的偏移, —第三读指针分配阶段,其与所述第四写指针分配阶段同时发生,其中,所述读指针以所述第二旋转方向逐步遍历指针值,所述读指针在所述第二旋转方向与所述写指针有一步指针值的偏移,并且在最后分配步骤中从所述第二旋转方向变成所述第一旋转方向,以及 —第四读指针分配阶段,其与下一写指针分配周期的第一写指针分配阶段同时发生,其中所述读指针以所述第一旋转方向逐步遍历指针值,并且在所述第一旋转方向上与所述写指针有一步指针值的偏移。
在此实施例中,缓存控制单元提供对循环缓存存储器的读写,其有效的使对该缓存的写与读之间的延迟最小。同时,通过协调写指针分配和读指针分配阶段可以使循环缓存存储器大小的较小。这样,读访问仅比写访问落后一个指针分配阶段。本发明协调读指针分配阶段和写指针分配阶段,使得它们读、写特定数据结构时能够以小的延迟同时执行。如后面将参考附图所详细说明的那样,读与写之间的延迟因为提供的输入数据结构的曲折扫描顺序的不同而在某种程度上不同。访问冲突,也就是读请求和写请求要求同一存储单元的数据,通过读、写指针分配阶段的协调来避免。
在进一步实施例中,缓存控制单元执行如下功能 —维护指针分配表,其为对应于当前保存在所述循环缓存存储器中的数据结构的每个索引对分配相应的指针值,该指针值作为所述写指针值分配给所述索引对, —从所述指针分配表中查找分配给当前读请求包含的各个索引对的相应指针值, —将所述读请求指向具有相应指针值的存储单元, —将保存在相应存储单元中的数据结构提供给所述第二处理部分。
本实施例使用指针分配表,该表用于查找特定数据结构的二维阵列的存储单元指针,其在读请求中可以用其索引值来进行确定。此实施例利于保持小容量的循环缓存,相对于重新计算缓存地址所需的时间,可以更快速查找存储单元的指针。
根据本发明的第二方面,提供了一种数据处理设备,包括第一处理单元,其用于提供由两个索引组织的数据结构的二维阵列,每个索引采用相应的有序索引值集合中的索引值,其中,对于每个提供的数据结构,第一索引以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中第一索引值。本发明的数据处理设备包含根据本发明第一方面,或根据在此描述的数据缓存设备的一个实施例的数据缓存设备。
本发明第二方面的数据缓存设备具有提供数据结构的第一处理单元,其以曲折方式形成二维阵列。在数据处理设备中使用本发明第一方面的数据缓存设备可以在硬件实现上最小化芯片面积。根据前面进行的描述,使用循环缓存可以保持小的缓存大小。
下面将阐述本发明的数据处理设备的优选实施例。
本发明的数据处理设备可以使与第二处理单元的通信达到十分小的延迟,其中第二处理单元以非曲折方式读取缓存中的数据结构。根据第一个优选实施例,该数据处理设备包括第二处理单元,其与所述数据缓存设备相连,用于顺序提供对所述循环缓存存储器的读请求,以根据非曲折读模式读取所述循环缓存存储器中的所述二维阵列中的数据结构,这样所述第一索引以固定的读方向重复遍历所述第一索引值集合。第二处理单元可以与第一处理单元集成在一个硬件器件中。当然,本发明也适用在物理上彼此分开的处理单元。
一般情况下,应以纯功能方式理解此处使用的术语“处理单元”。处理单元可以为不同的形式,如电路部分、专用集成电路(ASIC)、微芯片、多个微芯片的适当组合、计算机或计算机阵列。根据本发明的处理设备包含第一处理单元。要记住,处理设备同样可以是实现上述处理单元的任意一种形式。
在当前最优选的实施例中,在本发明的数据处理设备中,第一处理单元用于执行运动估算算法,向所述循环缓存存储器顺序提供分配给相应像素数据块的二维阵列的运动向量二维阵列,所述像素数据块形成视频图像的子阵列。本实施例可以在第一处理单元内实现最新的运动估算算法,它以曲折扫描顺序输出向量,同时保持小的延迟和处理复杂度。
在一个实施例中,实现运动估算器的第一处理单元用于以水平曲折顺序提供运动向量的二维阵列,以第一曲折方向遍历所述阵列的第一行,以所述第二曲折方向遍历所述阵列的下一行,以所述第一曲折方向遍历再下一行,以此类推。
更优选地,第二处理单元用于执行运动补偿算法,以及从所述循环缓存存储器顺序读取所述运动向量的二维阵列。此实施例的数据处理设备可以被包含在高效高质量的图像率上变频器中。在此上变频器中,实现运动估算器的第一处理单元和实现运动补偿器的第二处理单元可以包含在单个ASIC中。
本发明的数据处理设备的另一个优选实施例包含与所述第一处理单元相连的低级别高速缓冲存储器,用于保存当前滑动搜索区域,所述滑动搜索区域分配给相应像素块,形成所述像素数据块的二维阵列的子阵列。在基于块的运动估算算法中,每个当前处理的像素块周围预定大小的搜索区域用于确定当前像素块的运动向量。当运动估算开始处理下一像素块时,由于根据替换方案重新该像素块,所以该搜索区域被更新,该替换方案与运动估算算法的曲折扫描顺序适应。优选地,在本实施例中,与低级别高速缓冲存储器相连的缓冲控制器用于将像素数据块至该低级别的高速缓冲存储器中,该像素数据块是对于各个当前处理的像素块而言保持搜索区域处于更新状态所需的。
本实施例可以减少对主存储器的访问频率。因此,通过引入低级别高速缓冲存储器,减少了帧存储器和处理单元之间的数据通信所需的带宽。由于低级别高速缓冲存储器通常与运动估算器处于同一芯片中,而帧存储器通常不是如此,因此减少了运动估算器访问像素块所需的延迟。
上述效果还可以通过引入高级别高速缓冲存储器得到加强,其与低级别高速缓冲存储器相连,同时还可以与包含至少当前处理的视频帧的外部存储器相连。高级别缓冲拥有比低级别缓冲更大的容量。它用于保存一部分像素数据块二维阵列区域,其覆盖一些连续的滑动搜索区域。优选的,缓冲控制单元用于控制为维持该区域更新所需的像素数据块的取操作。
优选的,缓冲控制器允许高级别高速缓冲存储器被两个处理单元访问,即运动估算器和运动补偿器。在在先技术设备中,需要比较大容量的高级别高速缓冲存储器以适应运动估算器的不同曲折扫描顺序和运动补偿器的非曲折扫描顺序。与此相反,通过使用本发明第一方面的数据缓存设备,可以减少高级别高速缓冲存储器需要的容量。
例如,保存一行像素块加上一个像素块的运动向量的循环缓存大小是适应运动估算(ME)和运动补偿(MC)的不同扫描类型所需的最小大小。这意味着保存ME和MC之间共享的视频数据的高级别高速缓冲存储器的尺寸也最小。高级别高速缓冲存储器需要至少容纳多行视频数据块以涵盖搜索区域高度(SD序列通常有5行数据块)。因此,涵盖ME和MC的不同扫描方向所需的存储容量是一行像素块加上一个像素块。在给定的SD视频序列的例子中,共享的高级别高速缓冲存储器只需要7行数据块。
在进一步的优选实施例中,它与执行平行曲折扫描的运动估算器结合,第二处理单元一行行读取运动向量二维阵列,每行自左至右。
根据本发明的第三方面提供了数据缓存方法,它包含如下步骤 —接收由两个索引组织的数据结构的二维阵列,每个索引采用相应有序索引值集合中的索引值,其中,对于每个提供的数据结构,第一索引以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中的第一索引值, 所述数据处理方法包括如下步骤 —顺序保存接收的所述数据结构至具有通过有序指针值集合可寻址的预定数量存储单元的循环缓存存储器, —以周期性的方式将所述指针值集合中的写指针值分配相应的接收到的数据结构的索引对,一个写指针分配周期包括 —第一写指针分配阶段,期间所述第一索引以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针以所述指针值集合中定义的第一旋转方向逐步遍历指针值, —第二写指针分配阶段,期间所述第一索引值以所述第二曲折方向改变,所述写指针以所述第一旋转方向逐步遍历指针值, —第三写指针分配阶段,期间所述第一索引以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针以和所述第一旋转方向相反的第二旋转方向逐步遍历指针值,以及 —第四写指针分配阶段,期间所述第一索引值以所述第二曲折方向改变,所述写指针以所述第二旋转方向逐步遍历指针值。
本发明第三方面的数据缓存方法包含由本发明第一方面的数据缓存设备执行的方法步骤。为了使本说明书简洁,将参考上面描述的数据缓存设备详细说明该方法的优势。同时,定义本发明第三方面的方法的术语可以根据本发明第一方面的数据缓存设备的描述的上下文进行阐释。
根据本发明的第四方面提供了数据处理方法,其中第一过程提供由两个索引组织的数据结构的二维阵列,每个索引采用相应有序索引值集合中的索引值,其中对于每个提供的数据结构,第一索引以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中的第一索引值。在本发明第四方面的数据处理方法中,执行根据本发明第三方面的数据缓存方法。
本发明第四方面的数据处理方法包含由根据本发明第二方面的数据处理设备执行的方法步骤。同样,请参考上述描述。
下面要描述数据处理方法的优选实施例。这些实施例的优点是描述对应本发明第二方面的数据处理设备实施例时阐述的优点。
在本发明数据处理方法的进一步实施例中,第二过程顺序提供对循环缓存存储器的读请求,以根据非曲折读模式读取所述循环缓存存储器中的所述二维阵列中的数据结构,这样所述第一索引以固定的读方向重复遍历所述第一索引值集合。
在本发明数据处理方法的进一步实施例中,循环缓存存储器的可寻址存储单元的数量比第一索引值的数量多一,所述方法包含如下步骤 —为当前输入的对所述循环缓存存储器的读请求的索引对分配所述指针值集合中的读指针值,一个读指针分配周期包含 —第一读指针分配阶段,其与所述第二写指针分配阶段同时发生,其中,所述读指针以所述第一旋转方向逐步遍历指针值,所述读指针在所述第一旋转方向上与所述写指针有一步指针值的偏移,并且在最后分配步骤中从所述第一旋转方向变成所述第二旋转方向, —第二读指针分配阶段,其与所述第三写指针分配阶段同时发生,其中,所述读指针以所述第二旋转方向逐步遍历指针值,所述读指针在所述第二旋转方向与所述写指针有一步指针值的偏移, —第三读指针分配阶段,其与所述第四写指针分配阶段同时发生,其中,所述读指针以所述第二旋转方向逐步遍历指针值,所述读指针在所述第二旋转方向与所述写指针有一步指针值的偏移,并且在最后分配步骤中从所述第二旋转方向变成所述第一旋转方向,以及 —第四读指针分配阶段,其与下一写指针分配周期的第一写指针分配阶段同时发生,其中所述读指针以所述第一旋转方向逐步遍历指针值,并且在所述第一旋转方向上与所述写指针有一步指针值的偏移。
本发明的数据处理方法其他实施例包含如下步骤 —维护指针分配表,其为对应于当前保存在所述循环缓存存储器中的数据结构的每个索引对分配相应的指针值,该指针值作为所述写指针值分配给所述索引对, —从所述指针分配表中查找分配给当前读请求包含的各个索引对的相应指针值, —将所述读请求指向具有相应指针值的存储单元, —将保存在相应存储单元中的数据结构提供给所述第二处理部分。
在本发明的数据处理方法的其他实施例中,第一过程是运动估算算法,其顺序向所述循环缓存存储器提供分配给对应于像素数据块的二维阵列的运动向量的二维阵列,所述像素数据块形成视频图像的子阵列。
在本发明的数据处理方法的其他实施例中,第一过程以水平曲折顺序提供所述运动向量二维阵列,以第一曲折方向遍历所述阵列的第一行,以所述第二曲折方向遍历所述阵列的下一行,以所述第一曲折方向遍历再下一行,以此类推。
在本发明的数据处理方法的其他实施例中,第二过程执行运动补偿算法,从所述循环缓存存储器中顺序读取所述运动向量的二维阵列。
在本发明的数据处理方法的进一步实施例中,第二过程自左至右地逐行读取所述运动向量的二维阵列。
下面将结合附图详细说明进一步的实施例。


图1示出两个不同的处理算法应用的不同扫描顺序第一个例子的视频帧。
图2示出两个不同的处理算法应用的不同扫描顺序第二个例子的视频帧。
图3示出数据缓存方法和数据处理方法第一实施例的视频帧。
图4a)-h)示出图3中的数据缓存和数据处理方法中循环缓存的不同操作阶段。
图5a)-h)示出图3和图4实施例中的写指针和读指针分配的周期属性。
图6示出本发明数据缓存设备的实施例框图。
图7示出本发明数据处理设备的实施例框图。
图1示出视频帧100。如本领域所公知,图像或视频帧可以表示成像素数据二维列阵。像素数据通常定义三色对光强的贡献,该光强是例如像素显示在屏幕上时显示设备发出的光强。像素数据根据索引对的值组织,如公知的矩阵型二维阵列数据结构那样。为了说明本发明实施例,视频帧100的像素被分成像素块,如图所示,网格将视频帧分割成像素块,像素块形成视频帧的二维子阵列。一个像素块例子由参考标号102标示。在后面的描述中,视频帧100的像素块用索引对(i,j)标识,索引对沿视频帧100左上边界标示。可以看到,视频帧100包含七行像素块和七列像素块。
带箭头实线104以曲折模式遍历视频帧100的像素块,它代表第一视频处理算法的扫描顺序。在处理单元中实现的第一处理算法在其输出端提供数据结构,该数据结构被分配给当前处理的像素块。第一视频处理算法可以是运动估算算法,为每个处理的像素块提供运动向量。从带前头线104的曲折模式可以看出,第一视频处理算法从像素块(1,1)到像素块(1,7)处理第一像素块行,即自左至右处理。然后从像素块(2,7)到像素块(2,1)处理第二像素块行,即自右至左。周期性重复头两行像素块的扫描顺序,直到像素块行i=7自左至右处理。依相同的模式处理下一帧视频,同样从像素块(1,1)开始,自左至右处理第一像素块行。
如图1所示,带箭头虚线106代表第二数据处理算法,如运动补偿算法使用的扫描顺序。第二数据处理算法读取第一数据处理算法的输出以生成输出。但是,运动补偿算法使用的扫描顺序与运动估算算法不同。所有的像素块行i=1,2,...,7都是自左至右处理的。在完成当前像素块行最右端像素块(i,7)的处理之后,运动补偿算法从下一像素块行的最左端像素块(i+1,1)继续处理。
运动估算算法和运动补偿算法的不同扫描顺序在提供特定像素块的运动向量和为运动补偿处理该运动向量间引入了可变延迟。这需要将由运动估算算法提供的运动向量缓存一段时间。
箭头线104和106指示的扫描顺序只是例子。第一和第二数据处理算法扫描顺序的其他组合也是出现。图2示出第二个例子。视频帧200的图示对应图1中的视频帧100。带箭头实线204代表第一数据处理算法使用的扫描顺序。处理从像素块(1,7)开始,沿最右端列从上往下处理(i,7)。处理完像素块(7,7)后,处理过程继续处理像素块列(i,6),从底端像素块(7,6)开始,沿该列处理至顶端像素块(1,6)。周期性重复此扫描模式直到视频帧200所有像素块都被处理。第二带箭头线206代表第二数据处理算法使用的扫描顺序。同样的,第二数据处理算法取决于读取第一数据处理算法的输出。第二处理算法同样从像素块(1,7)开始,沿着该像素块列往下至像素块(7,7)。第二数据处理算法然后在邻接像素块列(i,6)从上往下处理。这样,所有的像素块列都从上往下处理直到整个视频帧得到处理。
从图1和图2的描述中可以明显看到,处理视频帧的两个数据处理算法也可以采用其他的扫描顺序组合。例如,如图1示出的例子可以修改成,第一数据处理算法从底行最右端的像素块(7,7)开始,以曲折模式处理视频帧100的所有像素块。第二数据处理算法使用第一数据处理算法的输出,也从像素块(7,7)开始,在第一像素块行或列使用第一数据处理算法的扫描顺序,在接下来的像素块行或列保持此扫描顺序。
同时参考图1、图3到图5,现在描述本发明的数据缓存方法和设备的实施例。下面的描述中,再次假定运动估算器(ME)处理视频帧100,接着提供运动向量形式的数据结构,其由本发明的数据缓存方法和设备暂存。运动估算器的扫描顺序对应于图1箭头线104所示的顺序。此外,假定运动补偿器(MC)从数据缓存设备读取运动向量。运动补偿器的扫描顺序对应于图1中箭头线106所示的顺序。要注意,本发明的数据缓存方法和设备可以独立于第一和第二数据处理设备或算法的特定属性而工作。
图3示出矩阵300。矩阵300的结构对应图1中的视频帧100。矩阵300的目的只是为了可视化此描述。图4a)至图4h)示出处理视频帧100的不同时间点的循环缓存400。图5a)至5h)示出写指针(图5a)、c)、e)、g))和读指针(图5b)、d)、f)、h))在循环缓存400的不同操作阶段(对应于视频帧100的不同操作阶段)的移动。
图3的矩阵300用于图示视频帧100的ME和MC算法在不同扫描阶段的扫描过程,该扫描过程依照箭头线104和106所示的扫描顺序进行。矩阵300的一些矩阵分量标记成类型为Rn、Wm或Rn/Wm的条目。这些条目代表在处理视频帧100时在缓存设备的不同操作阶段的写(W)或读(R)的操作。特定操作阶段分别用下标m或n表示。下标越大,相应的操作阶段越靠后。特定矩阵单元(i,j)中特定条目Wm或Rn的排列表示分配给像素块的运动向量的索引对(i,j)和下标m或n表示的操作阶段中写入(W)循环缓存400或从循环缓存400读出(R)矩阵分量的下标对相同。条目Wm和Rm也在图4和图5中使用,作为相应操作阶段中写指针和读指针值的参考符号。
相等的索引m和n表示读和写操作或相应的指针分配步骤在相同的操作阶段执行。请注意,在相同操作阶段执行的读和写操作,即并并操作无需在完全相同的时间点执行。操作阶段可以跨越一段时间,期间在不同的时间点执行写操作和读操作。循环缓存的一个操作阶段中读和写操作的顺序不重要。但是,在本发明的本实施例中,在相同操作阶段x中的一个读操作Rx和一个写操作Wx的执行在下一个写操作Wx+1之前发生,这样防止存储器单元在被读出之前被改写。
运动估算器提供临时存储在循环缓存400中的给定位大小的运动向量。循环缓存400有8个存储单元,每个单元由循环缓存400的一部分表示,用相应地址1,2,3,...,8标记。每个存储单元的存储容量可以容纳一个运动向量。之所以在此选择8个存储单元是因为每个像素块行有7个运动向量。通常,优选地循环缓存的存储单元数量比运动估算器在半个曲折周期处理的像素块数量多一。这样可以保持缓存大小尽可能小的同时,避免在读出之前覆盖存储单元内容。额外的存储单元是可选的,但不必须。附加的存储单元相比此处的描述需要不同的指针分配模式。
在图4和图5中,将一个完整的小圆划分成各个存储单元,代表特定操作阶段的指针位置,用与图3中的参考标号一致的符号标识。在图5中,指针通过螺旋箭头线502至516连接,以表现指针分配沿循环缓存400存储单元的旋转移动。
图4a)至h)示出分布在循环缓存400整个存储单元中、标识在存储单元1至8当前保存的各个运动向量的索引对和各自当前读和写指针值。要注意,图3中各个矩阵单元中指示的读和写操作阶段和指针分配的不同阶段,以及图4a)至h)中示出的缓存操作之间是相互对应的。
图4a)示出循环缓存400在第一操作阶段的状态。ME算法在处理完视频帧100的像素块(1,1)后提供的运动向量(1,1)保存在存储单元1。其它存储单元2至7在此阶段还未使用。同时,在完成第一行运动向量之前,没有执行读访问。写指针W0用存储单元1外边界上的圆圈表示。通常,参考标号Wm标记的圆圈位置表示写指针当前指向的相应存储单元,当前操作阶段用索引m表示。每个代表指针位置的圆圈都连接一箭头,该箭头沿代表循环缓存400的圆的外边界指向两个可能方向中的一个方向。这些箭头代表循环缓存400的缓存控制单元会将给下一个写指针分配给哪个存储单元。指针分配的旋转方向相对于循环缓存的存储单元可以是顺时针方向或逆时针方向,或者换个说法,朝向更高或更低地址值。根据本发明,如下所述,指针分配方向在确定的操作阶段改变。
图4b)示出第二操作阶段循环缓存400的当前状态。写指针W1指向存储单元8。运动估算器完成对第一像素块行的处理,现在提供第二像素块行的第一运动向量,其分配在像素块(2,7)。循环缓存400在存储单元1至7保存了全部第一行运动向量。如图5a)所示,写指针分配的顺时针旋转继续到第二操作阶段。读指针R1位于存储单元1。在第二操作阶段,MC算法从索引对(1,1)开始读取第一行运动向量,参考图1和图3。在接下来的处理步骤,两个指针都会顺时针旋转。
图5a)示出写指针从其指向存储单元1的初始位置W0顺时针旋转至指向存储单元8的位置W1,其概括了图4a)、4b)和4c)示出的操作阶段。写指针分配继续顺时针方向旋转,直到第二次到达存储单元7(指针W2)。如图4c)示出的此处理阶段,运动估算过程已经完成了对视频帧300第二像素块行的处理,正在处理和保存像素块(3,1)的运动向量,已经开始了第二周期的曲折扫描顺序。与此同时,运动补偿器已经完成了与第一像素块行(i=1)对应的运动向量处理,正在读取和处理像素块(2,1)。
比较图5a)和5b),读指针一开始沿存储单元顺时针旋转移动方向,比写指针领先一个存储单元。
在存储单元7处,读指针改变了旋转方向,在下一步进至存储单元6处,如图5b)的读指针R2所示,继续从存储单元6、5、4、3、2、1和8(参考图4c)读取像素块行i=2的运动向量。在这步,写指针和读指针在它们的旋转移动上互相交错,这样使得运动补偿器在存储单元7读取完像素块(1,7)的运动向量后,在同一存储单元马上用从像素块(3,1)计算得到的运动向量进行重写。
因此可以确定四个写指针分配阶段 a)第一写指针分配阶段(W0至W1),期间提供的运动向量的行 索引自左至右逐步遍历矩阵300的矩阵行。同时,写指针以顺时针方向逐步遍历指针值。此阶段在图4a)、4b)和图5a)中示出。在后面第二次写指针分配周期时再次经历此阶段,如图4e)、4f)和图5e)所示。
b)第二写指针分配阶段(W1至W2),期间提供的运动向量的行索引自右至左逐步遍历下一矩阵行。同时写指针以顺时针方向逐步遍历指针值。此阶段在图4b)、4c)和图5b)中示出。在后面的第二次写指针分配周期时再次经历此阶段的一部分,如图4g)、4h)和图5g)所示。
c)第三写指针分配阶段(W2至W3),期间提供的运动向量的行索引自左至右逐步遍历下一矩阵行。同时写指针以逆时针方向逐步遍历指针值。此阶段在图4c)、4d)和图5c)中示出。
d)第四写指针分配阶段(W3至W4),期间提供的运动向量的行索引自右至左逐步遍历下一矩阵行。同时写指针以逆时针方向逐步遍历指针值。此阶段在图4d)、4e)和图5c)中示出。
指针W0至W4之间经历一个完整的写指针分配周期。
同时,发生四个读指针分配阶段,如下 e)第一读指针分配阶段(R1至R2),其与第二写指针分配阶段(W1至W2)同时发生,期间,读指针以顺时针方向逐步遍历各个当前指针值,读指针在顺时针方向与写指针有一步的指针值偏移,在最后分配步骤从第一旋转方向改变至第二旋转方向。此阶段在图4b)、4c)和图5b)中示出。
f)第二读指针分配阶段(R2至R3),其与第三写指针分配阶段(W2至W3)同时发生,期间,读指针以逆时针方向逐步遍历各个当前指针值,读指针在逆时针旋转方向与写指针有一步的指针值偏移。此阶段在图4c)、4d)和图5d)中示出。
g)第三读指针分配阶段(R3至R4),其与第四写指针分配阶段(W3至W4)同时发生,期间,读指针以逆时针方向逐步遍历各个当前指针值,读指针在顺时针方向与写指针有一步的指针值偏移,在最后的分配步骤旋转方向改变至顺时针旋转方向。此阶段在图4d)、4e)和图5f)中示出。
h)第四读指针分配阶段(R4至R5),其与下个写指针分配周期的第一写指针分配阶段(W4至W5)同时发生,期间,读指针以顺时针方向逐步遍历各个当前指针值,读指针在顺时针方向与写指针有一步的指针值偏移。
当图像的最后运动向量被写入后,最后的读指针分配阶段优选地与下一幅图像的第一写指针分配阶段同时发生。即,指针分配过程从新图像的开始部分继续。或者,也可以执行重置,使分配对于视频序列所有图像来说都从相同的指针开始。但是,跨多幅图像的连续分配比引入重置要简单和快速。
图6示出了根据本发明的数据缓存设备600实施例的框图。数据缓存设备具有循环缓存602和缓存控制单元604。第一输入部分606用于连续接收外部第一处理单元保存二维阵列数据结构的写请求,第一处理单元例如可以是运动估算器ME。第二输入部分608用于接收第二外部处理单元读取保存在循环缓存602中的数据结构的读请求,第二处理单元例如可以是运动补偿器MC。
从外部处理单元接收的写和读请求可以具有或没有索引值。在一个实施例中,为写请求提供索引对,输入部分606用于将该索引值独立转发给缓存控制单元604,并将实际数据结构值转发给循环缓存602。如果运动估算器没有提供索引对,输入单元606额外生成由缓存控制单元608内部使用的合适索引对。第二种替代方式选择在集群中使用,其中处理的视频帧的扫描顺序和像素块结构是预定义好的,这样输入单元根据预定义分配规则知道给输入的数据结构分配什么索引值。
缓存控制单元604控制对循环缓存602的写访问和读访问。它从输入单元604和606接收索引值。根据写请求或读请求要求的输入数据结构的当前索引对值(i,j),缓存控制单元根据上面阐述的通用方法中的四个相应指针分配阶段执行周期性的写指针和读指针分配。指针分配方法可以用硬件或软件实现。
根据分配的写指针,缓存控制单元604寻址缓存存储器602的相应存储单元,将接收到的运动向量保存在该位置。在读请求时,缓存控制单元604分配当前读指针后寻址缓存存储器602的相应存储单兀。
在一个实施例中,缓存存储器602构成更大存储器中的一部分。根据二维阵列半个曲折周期中接收的数据结构数量,可以为循环缓存存储器分配一些存储单元。同时,存储单元的大小可能依照各个数据结构的位大小的不同而不同。缓存控制单元604确定和分配执行根据上述本发明实施例的写指针和读指针协作分配所需数量的存储单元,管理合适数量的指针。缓存控制单元604还可根据第一和第二处理单元使用的不同扫描顺序而变化。
图7示出了组成本发明数据处理设备的实施例的视频处理设备700的简化框图。视频处理设备700是图像率上变频器,在下面简称为上变频器。此设备用于例如用于消费电子领域,用于互相转换不同的视频扫描格式,以由电视机显示(如本说明书背景部分所述)。举个例子,上变频器可以为支持100场每秒的场率的电视创建在50场每秒的电视传输场之间包括额外运动相位的中间场率。
图7的框图只示出了视频处理设备700的功能块,其与本发明相关。通常,视频处理设备700用硬件实现,例如使用硅以集成电路的形式实现。其也可以用软件实现,但在性能上会更慢因此不适宜在消费电子设备中使用。
提供了两个处理单元,运动估算器702和运动补偿器704。运动估算器702执行运动估算算法。运动估算算法在本领域内是公知的。运动估算器702执行块匹配算法,它将图像分成像素块,给每个像素块分配运动向量。优选地使用公知的三维递归搜索算法(3DRS)。
从外部存储器通过高级别(L1)高速缓冲存储器706和低级别(L0)高速缓冲存储器708获得两幅连续图像、场或视频帧的像素块,其中每个高速缓冲存储器分别包含用于连续图像的两部分706.1、706.2和708.1、708.2。L0高速缓冲存储器708保存两幅连续图像中的每一幅的完整滑动搜索区域,每个搜索区域形成各个图像的子阵列,包围当前处理的像素块。L0高速缓冲存储器708中的内容通过L1高速缓冲存储器706更新每个处理的像素块,高速缓冲存储器706通常包含连续图像中每个图像的区域,该区域包含多个像素块行,覆盖数个连续搜索区域。
如前面参考图1至图5所述,运动估算器702在其输出端根据曲折扫描顺序提供运动向量。如参考图6所详细描述的,运动向量缓存在数据缓存600中。运动补偿器704从数据缓存600读取运动向量,生成中间图像。
对于具有标准清晰度格式(SD)的视频序列,搜索区域的高度通常为5个像素。处理运动估算器702不同扫描方向所需的额外存储大小与运动补偿扫描方向无关,该大小是一个像素块行加上一个像素块大小,参看参考图3至图5阐述的例子。因此在实践中,对于SD序列,在L1高速缓冲存储器708中需要7个像素块行空间为运动估算器702和运动补偿器704共享访问。由此根据本发明的数据缓存使得额外空间最小,且比先前的解决方案降低了L1高速缓冲存储器的大小。
权利要求
1.一种数据缓存设备(600),包含
-输入单元(606),用于顺序接收由索引对(i,j)组织的数据结构(100、200、300)的二维阵列,第一索引(j)以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值,
-循环缓存存储器(400、602),具有通过指针值的有序集合可寻址的预定数量的存储单元(1至8),
-缓存控制单元(604),其与所述循环缓存存储器(400、602)和所述输入单元(606)相连,用于以周期性的方式为当前输入的数据结构的索引对(i,j)分配所述指针值集合中的写指针值(W1至W7),并将所述当前输入的数据结构写入相应存储单元(1至8);一个写指针分配周期包含
-第一写指针分配阶段,期间第一索引(j)以所述第一曲折方向逐步遍历第一索引值集合,所述写指针(W0、W1;W4、W5)以所述指针值集合中定义的第一旋转方向逐步遍历指针值,
-第二写指针分配阶段,期间所述第一索引值(j)以所述第二曲折方向逐步遍历所述第一索引值集合,所述写指针(W1、W2;W5、W6)以所述第一旋转方向逐步遍历指针值,
-第三写指针分配阶段,期间所述第一索引(j)以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针(W2、W3;W6、W7)以和所述第一旋转方向相反的第二旋转方向逐步遍历指针值,以及
-第四写指针分配阶段,期间所述第一索引值(j)以所述第二曲折方向逐步遍历所述第一索引值集合,所述写指针(W3、W4;W7)以所述第二旋转方向逐步遍历指针值。
2.根据权利要求1的数据缓存设备,其中所述缓存控制单元(604)用于接收对所述循环缓存存储器(400、602)的读请求,以根据非曲折读模式读取所述循环缓存存储器(400、602)中的所述二维阵列中的数据结构,这样所述第一索引以固定的读方向重复遍历所述第一索引值集合。
3.根据权利要求2的数据缓存设备,其中所述缓存控制单元(604)用于为数据结构的每个索引对(i,j)分配读指针值(R1至R7),读请求指向该数据结构,所述读指针值等于将对相应的数据结构保存至所述循环缓存存储器(400、602)时赋与相应索引对(i,j)的所述写指针(W1至W7)值。
4.根据权利要求3的数据缓存设备,其中所述循环缓存存储器(400、602)中的可寻址存储单元(1至8)的数量比第一索引值的数量多一,以及
其中所述缓存控制单元(604)用于以周期性的方式为当前输入的读请求的索引对(i,j)分配所述指针值集合中的读指针值(R1至R7),一个读指针分配周期包含
-第一读指针分配阶段,其与所述第二写指针分配阶段同时发生,其中,所述读指针(R1、R2;R5、R6)以所述第一旋转方向逐步遍历指针值,所述读指针(R1、R2;R5、R6)在所述第一旋转方向上与所述写指针(W1、W2;W5、W6)有一步指针值的偏移,并且在最后分配步骤中从所述第一旋转方向变成所述第二旋转方向,
-第二读指针分配阶段,其与所述第三写指针分配阶段同时发生,其中,所述读指针(R2、R3;R6、R7)以所述第二旋转方向逐步遍历指针值,所述读指针(R2、R3;R6、R7)在所述第二旋转方向与所述写指针(W2、W3;W6、W7)有一步指针值的偏移,
-第三读指针分配阶段,其与所述第四写指针分配阶段同时发生,其中,所述读指针(R3、R4;R7)以所述第二旋转方向逐步遍历指针值,所述读指针(R3、R4;R7)在所述第二旋转方向与所述写指针(W3、W4;W7)有一步指针值的偏移,并且在最后分配步骤中从所述第二旋转方向变成所述第一旋转方向,以及
-第四读指针分配阶段,其与下一写指针分配周期的第一写指针分配阶段同时发生,其中所述读指针(R4、R5)以所述第一旋转方向逐步遍历指针值,并且在所述第一旋转方向上与所述写指针(W4、W5)有一步指针值的偏移。
5.一种数据处理设备(700),包括第一处理单元(702)和连接到所述第一处理单元(702)的根据权利要求1的数据缓存设备(600),所述第一处理单元(702)用于提供由两个索引(i,j)组织的数据结构的二维阵列(100、200、300),每个索引采用相应的有序索引值集合中的索引值,其中,对于每个提供的数据结构,第一索引(j)以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中第一索引值。
6.根据权利要求5的数据处理设备,包括第二处理单元(704),其与所述数据缓存设备(600)相连,用于顺序提供对所述循环缓存存储器(400、602)的读请求,以根据非曲折读模式读取所述循环缓存存储器(400、602)中的所述二维阵列(100、200、300)中的数据结构,这样所述第一索引(j)以固定的读方向重复遍历所述第一索引值集合。
7.根据权利要求5的数据处理设备,其中所述第一处理单元(702)用于执行运动估算算法,向所述循环缓存存储器(400、602)顺序提供分配给相应像素数据块的二维阵列的运动向量的二维阵列,所述像素数据块形成视频图像的子阵列。
8.根据权利要求7的数据处理设备,其中所述第一处理单元(702)用于以水平曲折顺序提供运动向量的二维阵列,以第一曲折方向遍历所述阵列的第一行,以所述第二曲折方向遍历所述阵列的下一行,以所述第一曲折方向遍历再下一行,以此类推。
9.根据权利要求7的数据处理设备,其中所述第二处理单元(704)用于执行运动补偿算法,以及从所述循环缓存存储器(400、602)顺序读取所述运动向量的二维阵列。
10.根据权利要求9的数据处理设备,包括与所述第一处理单元(702)相连的低级别高速缓冲存储器(708),用于保存当前滑动搜索区域,所述滑动搜索区域分配给相应像素块并形成所述像素数据块的二维阵列的子阵列。
11.根据权利要求10的数据处理设备,包括高级别高速缓冲存储器(706),其与所述低级别高速缓冲存储器(708)相连,且可连接外部存储器,用于保存在多个连续滑动搜索区域上延续的所述像素数据块的二维阵列的区域。
12.根据权利要求9的数据处理设备,其中所述第二处理单元(704)用于自左至右地逐行读取所述运动向量二维阵列。
13.一种数据缓存方法,包括如下步骤
-接收由两个索引(i,j)组织的数据结构的二维阵列(100、200、300),每个索引采用相应有序索引值集合中的索引值,其中,对于每个提供的数据结构,第一索引(j)以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中的第一索引值,
所述数据处理方法包括如下步骤
-顺序保存接收的所述数据结构至具有通过有序指针值集合可寻址的预定数量存储单元(1至8)的循环缓存存储器(600、602),
-以周期性的方式将所述指针值集合中的写指针值(W1至W7)分配相应的接收到的数据结构的索引对,一个写指针分配周期包括
-第一写指针分配阶段,期间所述第一索引(j)以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针(W0、W1;W4、W5)以所述指针值集合中定义的第一旋转方向逐步遍历指针值,
-第二写指针分配阶段,期间所述第一索引值(j)以所述第二曲折方向改变,所述写指针(W1、W2;W5、W6)以所述第一旋转方向逐步遍历指针值,
-第三写指针分配阶段,期间所述第一索引(j)以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针(W2、W3;W6、W7)以和所述第一旋转方向相反的第二旋转方向逐步遍历指针值,以及
-第四写指针分配阶段,期间所述第一索引值(j)以所述第二曲折方向改变,所述写指针(W3、W4;W7)以所述第二旋转方向逐步遍历指针值。
14.一种数据处理方法,其中第一过程(ME)提供由两个索引(i,j)组织的数据结构的二维阵列(100、200、300),每个索引采用相应有序索引值集合中的索引值,其中对于每个提供的数据结构,第一索引(j)以第一和第二曲折方向定义的曲折方式逐步遍历第一索引值集合中的第一索引值,其中执行根据权利要求11的数据缓存方法。
15.根据权利要求14的数据处理方法,其中第二过程(MC)顺序提供对所述循环缓存存储器(600)的读请求,以根据非曲折读模式读取所述循环缓存存储器(600)中的所述二维阵列中的数据结构,这样所述第一索引(j)以固定的读方向重复遍历所述第一索引值集合。
16.根据权利要求15的数据处理方法,其中所述循环缓存存储器(400、602)的可寻址存储单元(1至8)的数量比第一索引值的数量多一,所述方法包含如下步骤
-以周期性的方式为当前输入的对所述循环缓存存储器的读请求的索引对(i,j)分配所述指针值集合中的读指针值(R1至R7),一个读指针分配周期包含
-第一读指针分配阶段,其与所述第二写指针分配阶段同时发生,其中,所述读指针(R1、R2;R5、R6)以所述第一旋转方向逐步遍历指针值,所述读指针(R1、R2;R5、R6)在所述第一旋转方向上与所述写指针(W1、W2;W5、W6)有一步指针值的偏移,并且在最后分配步骤中从所述第一旋转方向变成所述第二旋转方向,
-第二读指针分配阶段,其与所述第三写指针分配阶段同时发生,其中,所述读指针(R2、R3;R6、R7)以所述第二旋转方向逐步遍历指针值,所述读指针(R2、R3;R6、R7)在所述第二旋转方向与所述写指针(W2、W3;W6、W7)有一步指针值的偏移,
-第三读指针分配阶段,其与所述第四写指针分配阶段同时发生,其中,所述读指针(R3、R4;R7)以所述第二旋转方向逐步遍历指针值,所述读指针(R3、R4;R7)在所述第二旋转方向与所述写指针(W3、W4;W7)有一步指针值的偏移,并且在最后分配步骤中从所述第二旋转方向变成所述第一旋转方向,以及
-第四读指针分配阶段,其与下一写指针分配周期的第一写指针分配阶段同时发生,其中所述读指针(R4、R5)以所述第一旋转方向逐步遍历指针值,并且在所述第一旋转方向上与所述写指针(W4、W5)有一步指针值的偏移。
17.根据权利要求15的数据处理方法,包括如下步骤
-维护指针分配表,其为对应于当前保存在所述循环缓存存储器中的数据结构的每个索引对分配相应的指针值,该指针值作为所述写指针值分配给所述索引对,
-从所述指针分配表中查找分配给当前读请求包含的各个索引对的相应指针值,
-将所述读请求指向具有相应指针值的存储单元,
-将保存在相应存储单元中的数据结构提供给所述第二处理部分。
18.根据权利要求15的数据处理方法,其中所述第一过程是运动估算算法,其顺序向所述循环缓存存储器提供分配给像素数据块的相应二维阵列的运动向量的二维阵列,所述像素数据块形成视频图像的子阵列。
19.根据权利要求15的数据处理方法,其中所述第一过程以水平曲折顺序提供所述运动向量的二维阵列,以第一曲折方向遍历所述阵列的第一行,以所述第二曲折方向遍历所述阵列的下一行,以所述第一曲折方向遍历再下一行,以此类推。
20.根据权利要求15的数据处理方法,其中所述第二过程执行运动补偿算法,从所述循环缓存存储器中顺序读取所述运动向量的二维阵列。
21.根据权利要求15的数据处理方法,其中所述第二过程自左至右地逐行读取所述运动向量的二维阵列。
全文摘要
本发明涉及特别适用于数据处理设备(700)的数据缓存设备 (600),其以曲折方式顺序提供数据结构的二维阵列。数据缓存设备(600)包含具有数个存储单元和缓存控制单元的循环缓存存储器,其用于以周期性的方式为当前输入的数据结构的索引对分配指针值集合中的写指针值。一个写指针分配周期包括—第一写指针分配阶段,期间第一索引以所述第一曲折方向逐步遍历第一索引值集合,所述写指针以所述指针值集合中定义的第一旋转方向逐步遍历指针值,—第二写指针分配阶段,期间所述第一索引值以所述第二曲折方向逐步遍历所述第一索引值集合,所述写指针以所述第一旋转方向逐步遍历指针值,—第三写指针分配阶段,期间所述第一索引以所述第一曲折方向逐步遍历所述第一索引值集合,所述写指针以和所述第一旋转方向相反的第二旋转方向逐步遍历指针值,以及 —第四写指针分配阶段,期间所述第一索引值以所述第二曲折方向逐步遍历所述第一索引值集合,所述写指针以所述第二旋转方向逐步遍历指针值。本发明在视频处理领域尤其有益,其中运动估算器以曲折方式提供运动向量的二维阵列,由具有非曲折扫描顺序的运动补偿器使用。
文档编号H04N7/01GK101147396SQ200680009000
公开日2008年3月19日 申请日期2006年3月15日 优先权日2005年3月21日
发明者A·贝里克, R·塞瑟拉曼 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1