CN100527099C - 用于提高数据处理设备的存储单元的性能的装置和方法 - Google Patents

用于提高数据处理设备的存储单元的性能的装置和方法 Download PDF

Info

Publication number
CN100527099C
CN100527099C CNB2006800049295A CN200680004929A CN100527099C CN 100527099 C CN100527099 C CN 100527099C CN B2006800049295 A CNB2006800049295 A CN B2006800049295A CN 200680004929 A CN200680004929 A CN 200680004929A CN 100527099 C CN100527099 C CN 100527099C
Authority
CN
China
Prior art keywords
data
level cache
memory
unit
data element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006800049295A
Other languages
English (en)
Other versions
CN101120325A (zh
Inventor
H·J·A·M·彼得斯
R·塞瑟拉曼
G·维尔德曼
P·P·E·梅夫森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Network System Technology Co ltd
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101120325A publication Critical patent/CN101120325A/zh
Application granted granted Critical
Publication of CN100527099C publication Critical patent/CN100527099C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0261Improving the quality of display appearance in the context of movement of objects on the screen or movement of the observer relative to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/121Frame memory handling using a cache memory

Abstract

本发明涉及一种数据处理设备(10),其包括处理单元(12)和存储单元(14),并且还涉及一种用于控制数据处理设备的存储单元(14)的操作的方法。存储单元(14)包括:主存储器(16);低级高速缓冲存储器(20.2),其直接连接到处理单元(12),并且适于为处理单元(12)的读出访问保存当前活动的滑动搜索区的全部像素;高级高速缓冲存储器(18),其连接在低级高速缓冲存储器与帧存储器之间;以及第一预取缓冲器(20.1),其连接在高级高速缓冲存储器与低级高速缓冲存储器之间,并且适于依据处理单元所遵循的扫描方向和扫描顺序,保存像素块的一个搜索区列或一个搜索区行。在存储单元(14)中,读出功能和取得功能被分离。取得功能集中在较高的高速缓存器级,而读出功能集中在较低的高速缓存器级。这样就能够实现并发的读出和取得,从而提高了数据处理设备的性能。

Description

用于提高数据处理设备的存储单元的性能的装置和方法
发明领域
本发明涉及包括处理单元和存储单元的数据处理设备,特别用于视频数据处理应用。其还涉及一种方法,用于控制这种数据处理设备的存储单元的操作。
背景技术
欧洲专利申请EP 04101677.5在整体上被包含于本申请中作为参考。
视频数据处理设备一方面被要求以高处理速度进行传送,同时另一方面它们应具有灵活性。视频数据处理设备的灵活性通过其运用各种视频处理算法,如定标(scaling)、滤波、运动检测等的能力,及其处理各种视频图像格式的能力来反映。
视频处理系统的存储单元通常包括帧存储器。帧存储器保存显示视频序列的一个或几个视频图像(也称为帧)所需的信息。
将当前处理的视频图像的片段缓冲在高速缓冲存储器中使得许多视频应用受益,如运动估计。如众所周知的,由于高速缓冲存储器与帧存储器相比具有更小的尺寸并且其直接连接到处理单元,高速缓冲存储器提供缩短了的等待时间,并需要更少的工作功率。等待时间确定在来自处理单元的读出请求之后取得第一个图像数据所需的时间间隔。
在已知的视频数据处理设备中,存储单元具有分级存储器结构,其包括多级高速缓冲存储器。在最低高速缓存级上的高速缓冲存储器(在下文中也简称为高速缓存器)与处理单元最接近,而在最高高速缓存级上的高速缓冲存储器与帧存储器最接近。
通过在处理单元与帧存储器之间提供不同的高速缓存级,将会实现在存储单元的成本与性能之间的平衡。成本因素是全部视频数据处理设备的芯片面积和功率要求。
在高速缓存器中的数据的替换策略可以是动态的或静态的,取决于视频处理算法的类型和希望得到的系统的可预测性。在使用动态替换策略的存储单元中,会出现高速缓存命中(cache-hit)或者高速缓存未中(cache-miss)的情况。在高速缓存未中的情况下,没有在所访问的高速缓存器中找到所想要的数据,该数据需要从更高的高速缓存级或从帧存储器中复制。与此相关的时间损失取决于存储器的等待时间和带宽。存储器的带宽决定在一个时钟周期中存储器能提供多少比特。
与此相反,当使用静态替换策略时,例如众所周知的先进先出替换策略,则不太可能出现高速缓存未中的情况。静态替换策略非常适用于具有可预测存储器访问方式的处理算法。
US 6,449,692 B1描述了一种具有存储单元的视频数据处理设备,该存储单元具有三级高速缓存器结构。这些高速缓存级被表示为L1到L3。高速缓存级的数字指定对应于升序,其中,当从高速缓存器读出数据或者向高速缓存器写入数据时,处理单元访问高速缓存器。这就意味着对存储单元的读出访问被首先寻址到L1高速缓存器,并且,如果对于该高速缓存器发生高速缓存未中,就接着访问L2高速缓存器,等等,直至在任一高速缓存器中或者最终在主存储器中命中。
在US 6,449,692的设备中的存储单元的高速缓存级L1和L2只存储非像素信息。非像素信息包括指令或地址转换信息,其对于处理单元来说是可访问的。与之相对应,L3高速缓冲存储器存储像素数据以及非像素信息。提供了高速缓存器控制电路,其动态的将高速缓存级L3的各个部分分配给非像素信息或像素数据。地址和仲裁电路将处理单元的访问控制到不同高速缓存器级。总线接口单元为L3高速缓存器级和处理单元直接提供对主存储器的访问。当处理单元发出对于像素数据的读出请求并且发生高速缓存命中时,L3高速缓存器经由绕过L1和L2高速缓存器级的寄存器,将所请求的数据提供到处理单元。如果发生高速缓存未中,则处理单元就直接寻址主存储器。
在US 6,449,692 B1的视频数据处理设备中,所有高速缓存器级都提供读出(read)和取得(fetch)功能,每一个高速缓存器级用于其各自所支持的数据类型。视频数据处理设备的总体处理速度受到这样一个事实的限制:高速缓冲存储单元不能并发地(即,同时地)执行向处理单元的输出(读出功能)和存储来自主存储器或更高级的高速缓存器的数据(取得功能)。
发明内容
因此,本发明的一个目的是提供一种具有存储单元的视频数据处理设备,以及一种用于控制数据处理设备的存储单元的操作的方法,其允许将读出操作和取得操作作为并发任务来执行。
根据本发明的第一方面,数据处理设备用于处理数据元素的二维主阵列,其包括:
主存储单元,其具有主存储器,用于存储主阵列,
处理单元,其适于顺序处理构成主阵列的二维子阵列的数据块,并提供对滑动搜索区的数据元素的读出请求,所述滑动搜索区延伸经过主阵列中的预置数量的数据块列和数据块行,
高级高速缓存器单元,其具有与主存储器相连接的高级高速缓冲存储器,并且适于
从主存储器中取得数据块,用以构成所述图像的、比滑动搜索区更大的滑动区,
将被存储的滑动区中的、更新所述滑动搜索区所需的数据元素,从高级高速缓冲存储器中预取到第一预取缓冲器中,并在第一预取缓冲器的输出端提供这些数据元素,
低级高速缓存器单元,其具有直接连接在处理单元与第一预取缓冲器之间的低级高速缓冲存储器,并且适于
使用在第一预取缓冲器的输出端提供的数据元素,与上述高级高速缓存器单元的取得和预取操作并发地存储并在更新低级高速缓冲存储器中的滑动搜索区,以及
与上述高级高速缓存器单元的取得和预取操作并发地选择所请求的数据元素,并将其输出到处理单元。
尽管本发明的数据处理设备优选地用于视频处理环境中,但其不限于这些应用。本发明的数据处理设备能够用于处理任何二维数据阵列的环境中,例如地震学数据的阵列。二维数据阵列是一组数据结构,其以与二维矩阵相对应的方式来排序。在图像处理的特定环境中,二维数据阵列(也表示为主阵列)是图像。
在该上下文中,其它常用术语应如下来翻译。
“数据元素”为“像素”
“数据块”为“像素块”
“数据行”为“像素行”
“数据列”为“像素列”
“数据块列”为“像素块列”
“数据块行”为“像素块行”
在下文中,将在优选的用于视频图像处理的环境中来说明本发明的数据处理设备。在视频处理应用中,例如,图像可以是视频帧或视频场。视频帧通常包含图像的所有像素。视频场通常包含一组隔行扫描的像素行。隔行扫描是本领域普遍公知的概念,其涉及用互补的像素行子集来提供在时间上连续的视频图像。
图像存储在数据处理设备的主存储器中。数据处理设备的处理单元适于顺序地处理构成图像的二维子阵列的像素块。因此这些像素块被一次处理一个。像素块可以例如由8×8,16×16或32×32个像素构成。处理单元可以适于在不同视频处理环境中使用不同的像素块大小。
处理单元还适于提供对于滑动搜索区的像素的读出请求,滑动搜索区延伸经过图像中预定数量的像素块列和像素块行。滑动搜索区的概念是本领域众所周知的,并用于使用搜索策略的视频处理算法中,例如各种已知的运动估计算法。搜索区是构成图像子阵列的像素块的二维阵列。通过删除在搜索区一边上的像素块,并在搜索区的相对的另一边增加像素块,来实现搜索区的滑动运动。哪些像素块被删除及哪些像素块被增加取决于搜索区穿过图像的滑动运动的预定方向。例如,搜索区的运动可以是水平地从左至右。搜索区的运动与处理单元用来处理像素块的处理算法的扫描方向和扫描顺序相关联。不同扫描方向和扫描顺序的实例将在下面图4的说明环境中阐明。搜索区的大小,即搜索区在二维上所覆盖的像素块的数量,取决于处理单元所使用的算法的类型。例如,在运动估计算法中,搜索区的大小取决于运动向量的长度。它在视频应用中还可以取决于帧大小。
本发明的数据处理设备包括具有高级高速缓冲存储器的高级高速缓存器单元以及具有低级高速缓冲存储器的低级高速缓存器单元。在下文中,低级高速缓冲存储器也被称为L0高速缓存器、搜索区缓冲器,或SA缓冲器。应指出,在本发明的优选应用领域中,在处理单元与高级高速缓冲存储器之间通常没有寄存器。在其它应用领域中,所指定的L0高速缓存器指的是寄存器。然而,在当前上下文中,将低级高速缓冲存储器指定为L0高速缓存器并不意味着该高速缓冲存储器是寄存器。
除了各自的存储器之外,高级和低级高速缓存器单元通常还包括相关的控制单元,在此,其将被称为高速缓存器控制器。高速缓存器控制器可以用硬件或软件来实现。相应的,低级高速缓存器控制器也被称为L0高速缓存器控制器。在下文中,高级高速缓存器也被称为L1高速缓存器或条带缓冲器(stripe buffer)。相应的,高级高速缓存器控制器也可以称为L1高速缓存器控制器。
本发明的数据处理设备是基于通常概念:即,如果取得集中在一个高速缓存器级且读出集中在另一个高速缓存器级,那么就能够实现并发的读出和取得。
具体而言,本发明是基于对参数的分析,所述参数在读出和取得操作期间被确认。由于这些参数在不同视频格式标准和不同视频处理算法中是变化的,因此重要的是能提供灵活性。本发明的视频处理设备能够处理各种算法,如定标、滤波、运动检测等,以及各种视频格式,如公用的分辨率图象格式(CIF)、标准清晰度电视(SDTV)、或高清晰度电视(HDTV)。
本发明的视频处理设备基于以下参数的确认,所述参数影响存储单元与读出和取得有关的操作。
1.块大小
能够以不同块大小来组织存储单元的帧存储器,例如块大小是8×8或16×16像素。块组成控制低级高速缓存器的替换策略,即,随着处理的继续,有多少及哪些像素需要被装入到低级高速缓存器中。
2.扫描方向和扫描顺序
在处理连续的像素块时,处理单元能够遵循不同视频处理算法中的不同方向和顺序,并因此以各种可能的顺序访问在存储单元中存储的视频帧的像素。扫描方向可以从顶部到底部、从底部到顶部、从左到右、或者从右到左。扫描顺序可以一个像素块行接着一个像素块行,或者一个像素块列接着一个像素块列,或者以曲折的形式。
3.视频格式
可以以不同颜色空间或视频格式来组织帧存储器。视频格式可以是RGB,其要求每种颜色8比特或每个像素24比特,或者是各种二次抽样的YUV格式,其是基于亮度和色差的公知的视频格式。
4.亚像素精度
众所周知,用于在一帧中的物体之间产生平滑边界的数据要求比像素网格更高的精度。基于被请求块的坐标,存储单元必须检测适当的块,并将其与额外的像素一起传送,这就允许执行内插,例如双线性内插,以产生所需的亚像素精度。
5.窗口大小
窗口大小是由处理单元所使用的参数,以确定从存储单元中读出的区域的大小。
6.窗口坐标
处理单元以(X,Y)坐标对的形式提供窗口坐标,例如规定当前想要的读出的窗口的左上角。
本发明的数据处理设备基于这样的理解:参数1到3,即块大小、扫描方向和扫描顺序、以及视频格式,与取得操作相关。在本发明的数据处理设备的优选实施例中,这些参数1到3在较高的高速缓存器级上进行处理。因此,取得功能集中在高级高速缓存器和高级高速缓存器控制器中。
然而,应该指出,仅适于处理一种固定视频格式的处理设备也在本发明的范围之内。允许视频格式(参数3)的灵活性的处理设备将在下面作为本发明的数据处理设备的优选实施例来加以进一步的说明。
与此相反,基于本发明的数据处理设备的进一步的理解是:参数4到6,即亚像素精度、窗口大小和窗口坐标,与读出操作相关。在本发明的数据处理设备中,这些参数4到6不在较高的高速缓存器级上进行处理,而是在较低的高速缓存器级上进行处理。因此,读出功能集中在低级高速缓存器和低级高速缓存器控制器中。
在以下表格中总结了根据本发明横跨低级和高级高速缓存器单元的参数处理划分。
表格I:在优选实施例中读出和取得参数分配到高速缓存器级的情况
Figure C200680004929D00141
再一次,为了该表格的完整性而包含了视频格式参数。在本发明的一个实施例中,高级高速缓存器单元适于使用一个公用的标准视频格式来存储像素数据,例如CIF、SDTV或HDTV标准。
为了实现对所提及的参数的划分,本发明的数据处理设备的高级高速缓存器单元没有根据像素到像素块的分割来组织高级高速缓存器,而是根据到像素行的分割来进行。更确切而言,高级高速缓存器单元适于从主存储器中取得多个像素块,用以构成所述图像的、比滑动搜索区更大的滑动区,并根据到像素行或者到像素列的分割,将所述滑动区存储在高级高速缓冲存储器中。所述滑动区通常执行与所述滑动搜索区相同的运动。优选的,高级高速缓存器单元适于使用将所取得的像素分割到像素行中的分割。作为备选方案,高级高速缓存器单元适于使用将所取得的像素分割到像素列中的分割。例如该备选实施例用于垂直峰化(vertical peaking)。
而且,为了更新所述滑动搜索区,高级高速缓存器单元适于从主存储器中取得根据预定扫描顺序和扫描方向更新滑动区所需的像素块,并根据到像素行或到像素列中的分割,将所述像素块存储在高级高速缓冲存储器中。因此,通过在更高的高速缓存器级上引入所述像素行分割,对低级高速缓存器单元就不存在块大小(参数1)的概念。
而且,第一预取缓冲器的提供确保了从低级高速缓存器单元的观点来说,扫描方向和扫描顺序(参数2)是不相关的。低级高速缓存器单元只是必须复制在预取缓冲器中所提供的数据。通过将这些数据复制到低级高速缓冲存储器中,来更新由低级高速缓存器所提供的搜索区。高级高速缓存器单元通过将更新所述滑动搜索区所需要的被存储的滑动区的像素从高级高速缓冲存储器预取到第一预取缓冲器,来控制该过程,并在第一预取缓冲器的输出端提供所述像素。该预取的实施涉及对于具体视频处理算法的认知,以预测处理单元将需要哪些像素。从而,高级高速缓存器单元相应地选择存储在高级高速缓冲存储器中的适当像素行,并将所选择的像素行复制到第一预取缓冲器中。因此,低级高速缓存器控制器不必涉及与扫描方向和扫描顺序的参数有关的取得。优选的,复制包含重写在低级高速缓冲存储器中的、由于滑动步骤而脱离搜索区域的像素。
本发明的数据处理设备的低级高速缓存器单元适于使用在第一预取缓冲器的输出端提供的像素,与高级高速缓存器单元的所述取得和预取操作并发地存储并更新在低级高速缓冲存储器中的滑动搜索区,并与高级高速缓存器单元的所述取得和预取操作并发地从低级高速缓冲存储器中选择所请求的像素,并将其输出到处理单元。在以下进一步说明的优选实施例中,对于处理单元所请求的像素的选择意味着对参数4到6(即亚像素精度、窗口坐标、和窗口大小)的确认,如果它们在处理单元中实施的具体处理算法所使用的话。
这样,根据本发明,与从主存储器进行取得有关的全部参数都由高级高速缓存器控制器来处理,而低级高速缓存器控制器可以限制在响应来自处理单元的读出请求并向处理单元提供像素数据的功能。在本发明的数据处理设备中,无需从较低缓存器级到较高缓存器级、或者到主存储器的取得请求。
由于在本发明的数据设备中实现了取得功能和读出功能的分离,因此高级高速缓存器单元和低级高速缓存器单元能够并行地执行取得操作和读出操作,其也被称为并发通信和计算。这减小了数据处理设备的存储单元总体上(即,包括主存储器和所有高速缓存器级)的等待时间。而且,取得步骤和读出步骤的分离减小了在各高速缓存器级中不希望有的功能重复。这允许在性能和其自身的核心功能所需的芯片面积上优化每一个高速缓存器级。而且,能够以更佳的效率来管理可维护性和可能的功能扩展。
在下文中,将说明本发明的数据处理设备的优选实施例。
在本发明的数据处理设备的优选实施例中,通过使得高级高速缓存器控制器在其输出端根据固定像素数据格式提供滑动区的像素,消除了所选择的视频格式(参数3)对低级高速缓存器的影响,其中,所述固定像素数据格式具有预置数量的比特位置并将预定比特值分配给图像的视频格式不使用的所有比特位置。本发明的数据处理设备该实施例的高级高速缓存器单元所使用的像素格式具有预置数量的比特位置。这样,从低级高速缓存器单元的观点来看,所有视频格式的像素都相同。将在像素格式中的比特位置的数量选择的足够大,以容纳所有已知的视频格式。没有被当前处理的视频格式所使用的像素格式的比特位置被高级高速缓存器单元以预定比特值进行填充,例如“0”。使用“0”比特值保持了所连接的处理数据路径简单。借助于通过高级高速缓冲存储器经由第一预取缓冲器将“0”写入到未使用的比特位置,使得视频格式控制在低级高速缓存器中不是必需的。低级高速缓冲存储器的输出具有正确的格式。
在本发明进一步的实施例中,低级高速缓存器单元适于从接收自处理单元的读出请求中获得两个窗口坐标和一个窗口大小参数,并依据所获得的坐标和参数(参数5和6),选择在低级高速缓冲存储器中所存储的像素,并将其提供到处理单元。
在进一步的实施例中,低级高速缓存器控制器优选地还适于根据由所述读出请求提供的窗口坐标,检测处理单元是否采用亚像素精度(参数4)来处理像素数据,并将该亚像素精度处理所需的全部额外像素提供到处理单元。
本发明的数据处理设备的另一个优选实施例还包括第二预取缓冲器,其连接在高级高速缓冲存储器与主存储器之间,并适于以并行方式将像素数据提供到高级高速缓冲存储器中。在该实施例中,高级高速缓存器单元适于从主存储器将所述图像中的、根据预定扫描顺序和扫描方向更新滑动区所需要的所选择的像素块预取到第二预取缓冲器,并且适于使用在第二预取缓冲器输出端提供的像素来更新在高级高速缓冲存储器中的滑动区。
通过将接下来将要相应地复制到高级高速缓存器中的像素加载到第二预取缓冲器中,第二预取缓冲器还允许加速所述取得操作。数据并行地从第二预取缓冲器中提供到高级高速缓冲存储器中。第二预取缓冲器的操作由高级高速缓存器控制器控制,并且还基于对顺序的认知,在其中,处理单元请求当前所处理的图像的像素。
在进一步的实施例中,本发明的数据处理设备中所提供主存储单元适于根据将所述图像分割为排列在多个像素块行和像素块列中的像素块的分割,在读出和写入操作中访问主存储器。
在优选实施例中,低级高速缓冲存储器采取便笺式存储器(scratchpad)形式。就是说,在该实施例中,低级高速缓冲存储器适于保存完整的搜索区。这样,在处理开始之前,能够在低级便笺式存储器中存储完整的搜索区。在该实施例中能够完全避免高速缓存未中。优选的,当搜索区移动到图像上的下一个位置时,低级高速缓存器单元适于根据先进先出替换方案,替换存储在低级便笺式存储器中的像素。
尽管对于视频应用而言便笺式存储器是优选的,但本发明的数据处理设备的其它应用并不要求在低级高速缓存器级中提供完整的搜索区。对于这些应用,可以使用适于保存比搜索区小的图像区的高速缓冲存储器。
在另一个实施例中,低级高速缓冲存储器包括多个存储体(memory bank)。低级高速缓存器单元适于将属于一个像素块中多个连续像素行的像素存储在不同存储体中,并将一个所请求的像素块中的多个像素行并行地输出到处理单元。这样,在处理单元与低级高速缓存器之间的通信带宽能进一步增大。优选的,低级高速缓存器单元适于以交错方式寻址低级高速缓冲存储器中的位置(location),以循环重复的方式将连续的地址分配给多个连续的存储体中的可寻址位置。这样,当并行地输出几个行时,避免了存储体冲突。
在本发明的数据处理设备的优选实施中,低级高速缓冲存储器包括多个行单元,每个行单元都包含相应的第一数量的存储体,每个存储体都具有用于存储第二数量的像素的可寻址位置。低级高速缓存器单元适于:
将像素块中或者多个像素行中的、属于像素块中相应交错像素行组的相应像素行的像素,存储到相应行单元的存储体中,其中,存储体的相应可寻址位置每一个都适于存储相应的像素组,所述像素组由沿着一个像素行的第二数量的连续像素组成,从而使得所述连续的像素组以循环重复的方式分布在行单元的存储体上,所述行单元存储所述组所属的相应像素行的像素,
通过在存储体中将已废弃的像素替换为搜索区中新的像素来更新所述滑动搜索区,其中,所述已废弃的数据元素在所述滑动搜索区移动时脱离了所述滑动搜索区,所述新的数据元素来自与所述已废弃的数据元素相同的数据行,
从多个行单元中并行地获得并输出相应像素行的像素。
在本发明的进一步的实施例中,在各个像素块行中的预定扫描方向是从左到右或者从右到左,或者可替换地,在各个像素块列中的预定扫描方向是从顶部到底部或从底部到顶部。换句话说,扫描方向是非曲折的。众所周知,曲折的扫描方向随每一行而变化。即,例如,如果第一行从左到右处理,下一行就将从右到左处理。在该实施例中,高级高速缓存器单元适于在高级高速缓冲存储器中选择并经由预取缓冲器提供相应滑动搜索区的全部像素,用于在低级高速缓冲存储器中进行完整的替换,这是为了处理分别在图像的新像素块行或像素块列开头处的像素块。
在进一步的实施例中,高级高速缓存器单元适于从主存储器中取得、在高级高速缓冲存储器中选择、以及经由预取缓冲器提供相应滑动搜索区的全部像素,用于在低级高速缓冲存储器中进行完整的替换,这是为了处理在新图像开头处的像素块。
在此所述的和权利要求中所述的本发明的数据处理设备的实施例能够相互组合,除非另有说明。
根据本发明的第二方面,提供了一种方法,用于控制具有处理单元的数据处理设备的存储单元的操作,所述处理单元顺序处理像素块,所述像素块构成了存储在存储单元的主存储器中的图像的二维子阵列,并且所述处理单元向存储单元提供对于滑动搜索区的像素块的读出请求,所述滑动搜索区延伸经过所述图像中预置数量的像素块列和像素块行,所述方法包括以下步骤:
从主存储器中将所述图像的滑动区取得到高级高速缓冲存储器中,所述滑动区大于所述滑动搜索区,并且,根据到像素行或像素列的分割,将所述滑动区存储到高级高速缓冲存储器中,
从主存储器中将用于根据预定扫描顺序和扫描方向更新所述滑动区的像素块取得到高级高速缓冲存储器中,并且根据到像素行或像素列的分割,将所述像素块存储到高级高速缓冲存储器中,
从高级高速缓冲存储器中将所述滑动区中的、在未来的滑动搜索区移动中更新搜索区所需的像素预取到第一预取缓冲器,并且,在第一预取缓冲器的输出端提供所述像素,
使用在第一预取缓冲器的输出端提供的像素,与所述取得操作和预取操作并发地存储并更新在低级高速缓冲存储器中的滑动搜索区,
与所述取得操作和预取操作并发地,从低级高速缓冲存储器中选择所请求的像素,并将其输出到处理单元。
本发明的方法涉及对于本发明的数据处理设备的存储器子系统的控制。该方法的优点与以上对数据处理设备的那些说明相对应。
在下文中,将阐明本发明方法的优选实施例。实施例表示数据处理设备实施例的方法方面,所述数据处理设备允许实现并发的读出和取得,如上所述。因此,以下的说明是简短的,并对上述部分做出进一步的参考,以用于进一步的解释。
本发明的一个实施例包括步骤:根据固定像素格式将滑动区的像素提供到低级高速缓冲存储器,所述固定像素格式具有预置数量的比特位置,并将预定比特值分配给图像视频格式不使用的所有比特位置。
在进一步的实施例中,在低级高速缓冲存储器中提供滑动搜索区的全部像素,根据先进先出替换方案,替换存储在低级高速缓冲存储器中的像素,以更新滑动搜索区。
在进一步的实施例中,低级高速缓冲存储器包括多个存储体。属于一个像素块的连续像素行的像素被存储在不同存储体中,并且所请求的像素块的多个像素行从低级高速缓冲存储器并行地输出到处理单元。
在另一个实施例中,以交错的方式寻址在低级高速缓冲存储器中的位置,以循环重复的方式将连续地址分配给在连续存储体中的可寻址位置。
进一步的实施例包括步骤:从主存储器中将图像中的、根据预定扫描顺序和扫描方向更新滑动区所需要的所选择的像素块预取到第二预取缓冲器中,以及步骤:使用在第二预取缓冲器的输出端提供的像素,更新在高级高速缓冲存储器中的滑动区。
进一步的实施例包括步骤:从接收自处理单元的读出请求中获得窗口坐标和窗口大小参数,以及步骤:依据所获得的窗口坐标和窗口大小参数,将存储在低级高速缓存器单元中的像素提供到处理单元。
在另一个实施例中,在各个像素块行中的预定扫描方向是从左到右或从右到左,或者可替换的,在各个像素块列中的预定扫描方向是从顶部到底部或从底部到顶部的。该实施例的方法包括步骤:在高级高速缓冲存储器中选择并经由预取缓冲器提供相应滑动搜索区的全部像素,以用于在低级高速缓冲存储器中的完整替换,这是为了处理分别在图像的新像素块行或像素块列开头处的像素块。
另一个实施例包括步骤:从主存储器取得、在高级高速缓冲存储器中选择、并经由预取缓冲器提供相应滑动搜索区的全部像素,以用于在低级高速缓冲存储器中的完整替换,这是为了处理在新图像开头处的像素块。
在下文中,将参考所附的附图来说明本发明进一步的实施例。
附图说明
图1示出了构成本发明数据处理设备的第一实施例的视频处理设备的框图;
图2示出了根据本发明第二实施例的视频处理设备的细节;
图3示出了根据本发明第三实施例,用于说明基于搜索区的视频处理算法和用于说明高速缓存器替换策略的示意图;
图4示出了在本发明的各种实施例中扫描顺序和扫描方向的组合的几个实例;
图5是在本发明的各种实施例中扫描方向对高速缓存器替换策略的影响的图解说明;
图6是窗口坐标的图解说明;以及
图7是在使用直接映射高速缓存器的本发明进一步实施例中的窗口大小的图解说明。
具体实施方式
图1示出了构成本发明数据处理设备的第一实施例的视频处理设备10的框图。视频处理设备10具有处理单元12和存储单元14,存储单元14连接到处理单元12。视频处理系统10代表一种嵌入式系统,专门用于执行视频处理算法,如定标、滤波、运动检测、运动估计等。
视频处理设备10的存储单元14包括帧存储器16,以及连接在处理单元12与帧存储器16之间的高级便笺式存储器18和低级便笺式存储器20。高级便笺式存储器18在下文中也称为L1便笺式存储器。第一预取缓冲器20.1提供在高级便笺式存储器18与低级便笺式存储器20.2之间。低级便笺式存储器20在下文中也称为L0便笺式存储器和搜索区(SA)便笺式存储器。
操作与处理单元12相连的存储单元14所必需的全部控制操作由一个或几个存储器控制器来控制。在当前实施例中,帧存储器控制器22控制帧存储器16的操作,高级便笺式存储器控制器24控制L1便笺式存储器18和预取缓冲器20.1的操作,低级高速缓存器控制器26控制搜索区便笺式存储器20.2的操作。高级便笺式存储器控制器和高级便笺式存储器构成了高级高速缓存器单元。低级高速缓存器控制器和低级便笺式存储器构成了低级高速缓存器单元。高级和低级便笺式存储器控制器24和26也分别被称为L1和L0便笺式存储器控制器。以下部分借助几个实例,给出了用于确定L0便笺式存储器20.2、L1便笺式存储器18和预取缓冲器20.1的容量和带宽的指导原则。
1.L0便笺式存储器
在一个没有提供所处理的视频格式的灵活性的实施例中,L0便笺式存储器所需的存储器容量通常取决于所处理的视频格式。以下的表格II按照搜索区大小和存储器容量,总结了三种视频格式CIF、SDTV和HDTV的容量要求。指定了对于两种情况的存储器容量,即,仅携带8比特亮度信息的像素的情况,其在下表中称为“Y”,以及用于三种颜色的携带总计达24比特的亮度信息的彩色像素的情况,其在表格II中称为RGB。
表格II:对于视频格式的不同实例所需的L0便笺式存储器容量
Figure C200680004929D00221
作为用于阅读上表的指导原则,参考表格II的最下行来解释一个实例:在HDTV格式中的搜索区在水平方向上具有17个8乘8的像素块,在垂直方向上具有9个8乘8的像素块。在RGB像素格式中,在此每个像素拥有24比特,对于SA缓冲器需要17×9×8×8×24=235008bit=229.5kbit。当仅使用每像素8比特的亮度信息时,78336bit或76.5kbit是L0便笺式存储器的最小容量。
在提供所选视频格式的灵活性的实施例中,SA便笺式存储器容量是所支持的视频格式的最大所需容量。
在另一个实施例中,使用了L0高速缓存器,而不是L0便笺式存储器。在该实施例中,L0高速缓存器可以具有比用于存储完整搜索区所需的容量小的存储器容量。然而,当读出请求针对L0高速缓存器时,根据处理单元12所执行的具体视频处理算法而选择的适当的预取策略,能够完全避免高速缓存未中的情况。
2.L1便笺式存储器
对于HDTV格式的实例,L1便笺式存储器的存储器容量由需要存储总共2000个包含8×8像素的像素块的要求来确定。指定24比特的像素大小,L1便笺式存储器应具有3Mbit的存储器容量。
在一个实施例中,使用了L1高速缓存器,而不是L1便笺式存储器。这意味着L1高速缓存器18所保存的内容小于滑动区。该实施例优选的与图2的实施例结合使用,图2的实施例除了L1高速缓存器18.2之外还包括第二预取缓冲器18.1。通过在高级高速缓存器控制器24’中实施适当的高速缓存器替换策略,L1高速缓存器能够一直保存更新L0便笺式存储器20.1或L0高速缓存器20.1中的搜索区所需的像素。
3.第一预取缓冲器
可以根据以下为HDTV视频格式的实例所给出的指导原则,来计算L0便笺式存储器20的第一预取缓冲器20.1的容量。搜索区的高度(或者换而言之,一个搜索区列的大小)是9个像素块,每个像素块包含8×8个像素。因此,在稳定状态期间,需要一个这种9个像素块的搜索区列来更新搜索区。由于每个像素包括的最大数量是24比特,因此预取缓冲器20.1应具有9×8×8×24=13824bit=13.5kbit的容量。
4.带宽
至于存储器带宽,通常处理数据路径的并行度(parallelism)等于像素块的像素行的大小,例如,在8乘8像素块的情况下为8个像素。这适用于基于块的处理应用的情况,如时间上变换(temporalupconversion)的运动估计、去隔行(de-interlacing)等。
通过并行地提供像素块的多个像素行,并通过将存储器系统组织为使得连续的像素行在不同的存储体中,能够进一步增加带宽。当并行输出几行时,通过在全部存储体组中交错存储体行,避免了存储体冲突。在欧洲专利申请EP04101677.5的权利要求19和权利要求20的实施例中,以及在EP04101677.5的图7的存储器结构中,给出了适于并行输出几个连续像素行的存储器结构的实例,在所申请的EP04101677.5的12到23页有详细说明。
在开始说明图1的视频处理设备的操作之前,将参照图2来简要说明一个可替换实施例。图2的框图示出了根据本发明第二实施例的视频处理设备的细节。图2的视频处理设备10’的结构大部分与图1的视频处理设备10的结构相一致。本说明限于其区别之处,并将对相同部分使用图1的参考符号,除非另外指定。视频处理设备10’的高级便笺式存储器18’包括第二预取缓冲器18.1,其连接在帧存储器16与L1便笺式存储器18.2之间。预取缓冲器18.1具有并行输出,以向L1便笺式存储器18.2并行提供几个像素。第二预取缓冲器的操作由高级高速缓存器控制器24’控制。
接下来,将进一步参照图3到7来说明图1和2的视频处理设备的与并发通信和计算有关的操作。
在初始化阶段期间,L1便笺式存储器通过主系统加载与取得有关的参数。基于该信息,从帧存储器16将滑动区取得到L1便笺式存储器18中。L1便笺式存储器控制器24管理该取得操作。滑动搜索区覆盖几个像素块行,并至少延伸经过处理单元12所执行的视频处理算法所使用的滑动搜索区所覆盖的像素块行的数量。存储在L1便笺式存储器18中的滑动区例如可以构成一个条带,其延伸经过视频帧的全部像素块列,并经过多个像素块行,其数量与在搜索区中所包含的相同。在另一个实例中,其尤其适合于处理单元的从顶部到底部的扫描方向,滑动区在水平上具有与搜索区相同的伸展范围,但在垂直方向上延伸经过比搜索区更多的像素块行,或者经过该帧的全部垂直伸展范围。L1便笺式存储器以像素行的方式保存滑动区,而帧存储器16根据到像素块的分割来保存帧。可以采用直接映射的方式来组织L1。
通过经由预取缓冲器20.1加载相应搜索区的、被分配给待处理的第一个像素块的所要求的数据,来初始化L0便笺式存储器20.1。L1便笺式存储器控制器24控制以预定顺序经由预取缓冲器20.1来提供数据。
图3示出了用于说明一种基于搜索区的视频处理算法,并且用于说明在本发明视频处理设备的一个实施例中执行的,便笺式存储器替换策略的示意图。
像素块网格30代表构成完整视频帧的一个子集的12×7像素块的区域。每个像素块由8×8个像素组成。这是由写在像素块网格30左上角中的像素块32两侧的数字来指明。以一条粗线描画了在像素块网格30中的搜索区34的轮廓。该搜索区由9×5=45个像素块组成。一个搜索区行由9个像素块组成。一个搜索区列由5个像素块组成。搜索区的当前被处理的中心像素块由大写字母N指明。搜索区的先前的中心像素块由大写字母O指明。
处理当前中心像素块包括扫描在当前中心块周围的相应的9×5个像素块的搜索区。这样,当先前中心像素块O的处理完成时,在处理单元12处理新的中心像素块N之前,通过L1便笺式存储器18和预取缓冲器20.1,根据已知的扫描顺序和扫描方向,更新在L0便笺式存储器20.2中的搜索区。
在图3所示的实例中,在从SA缓冲器20.2中删除先前的最左边的搜索区列38的同时,通过将新搜索区列36加载到SA缓冲器20.2中来更新在L0便笺式存储器20.2中的搜索区。通过在图3中以阴影线画出,来着重指出新的最右边的搜索区列36,而从搜索区缓冲器20.2中删除的块以“X”标记。作为结果的搜索区向右侧的滑动方向以箭头40指明。
至于第一预取缓冲器20.1,包含在第一预取缓冲器20.1中的像素是包含在新搜索区列36中的像素。这些像素被一个像素行接着一个像素行地提供给L0便笺式存储器20.2,且一个像素行的全部像素是并行提供的。如以前所解释的,实际上在较低高速缓存器级上没有块大小的概念。
图4示出了扫描顺序和扫描方向的组合的几个实例,其可以由不同算法用于处理视频帧或视频场。通常,扫描方向指明连续像素行或像素列的处理顺序。扫描顺序指明处理是否是一行接一行或一列接一列地执行。对于视频处理算法所采用的扫描顺序和扫描方向的认知对于选择高速缓存器或便笺式存储器的适当的替换策略而言是至关重要的。这种包含预取所要求的数据的替换策略的实施在本领域是公知的。
图4a)示出了一个实施例,其中,处理单元12以从顶部到底部的扫描方向和一行接一行的扫描顺序,处理搜索区内的像素块。在该实施例中,从左到右地执行在每个像素块行中的处理。
图4b)示出了一个可替换实施例,其中,处理单元12沿着从底部到顶部的扫描方向和一行接一行的扫描顺序,执行对包含在搜索区中的像素块的处理。在该实施例中,从右到左地扫描每个像素块行中的像素块。
图4c)示出了第三可替换实施例,其中,以从左到右的扫描方向和一列接一列的扫描顺序来执行处理。在该实施例中,从底部到顶部地扫描每个像素块列。
图4d)示出了第四可替换实施例,其中,以从顶部到底部的扫描方向和一行接一行的扫描顺序来执行处理。除了以曲折的方式执行在像素块行中的处理这个事实之外,该实施例与图4a)中的等效。从左到右地扫描最顶上的像素块行,而从右到左地处理其下面下一个像素块行,等等。
图4e)示出了第五可替换实施例,其中,处理单元以从底部到顶部的扫描方向和一行接一行的扫描模式扫描搜索区。与图4b)的实施例相比,处理是以曲折的方式执行的。从右到左地扫描最下面的像素块行,而从左到右地扫描其上面下一个像素块行,等等。
图4f)示出了第六可替换实施例,其中处理单元12以从左到右的扫描方向和一列接一列的扫描顺序处理搜索区。与图4c)的实施例相比,以曲折的方式执行对列的扫描。从底部到顶部地扫描最左边的列,而从顶部到底部扫描其右边的下一列,等等。
在图4a)到4c)的非曲折的实例中,在设计与切换到新的行或列有关的替换策略时必须特别慎重。在此情况下,在处理单元12继续处理下一行或列的第一个像素块之前,通常必须替换在L0便笺式存储器20.1中的完整的搜索区。在此情况下的便笺式存储器替换与上述初始化阶段的相一致。当然,在此情况下,在更新L1和L0便笺式存储器之前,不必重新加载当前视频处理算法的与取得有关的参数。
图5是扫描方向对于L0便笺式存储器20.2中的替换策略的影响的图解说明。图5示出了构成图3的可选方案的搜索区的第二实例。在本实例中,搜索区由12像素块的搜索区行和8像素块的搜索区列组成。如同图3的实例中,虚线网格指明像素块。图5的说明总结了四个可能的实施例。在图5所示的第一实施例中,扫描区的滑动方向与图3所示的相同,即从左到右。作为结果,当前活动的搜索区右侧的搜索区列44必须被填充到L0便笺式存储器20.2中,并由高级高速缓存器控制器24装入第一预取缓冲器20.1。与搜索区列44相邻并指向右侧的箭头表示该实施例的搜索区的滑动方向。
在图5所示的第二实施例中,扫描区从右到左滑动,新的最左边的搜索区列46必须经由预取缓冲器20.1和L1便笺式存储器18而装入L0便笺式存储器20.2。与搜索区列46相邻并指向左侧的箭头表示该实施例的搜索区的滑动方向。
在图5所示的第三实施例中,搜索区从帧的顶部到底部滑动。因此,新的底部的搜索区行48必须随着处理的继续而装入L0便笺式存储器20.2。与搜索区列48相邻并指向下方的箭头表示该实施例的搜索区的滑动方向。
最后,在图5所示的第四实施例中,搜索区在底部到顶部的方向上滑动。因此,新的顶部的搜索区行50必须被装入L0便笺式存储器。与搜索区列50相邻并指向上方的箭头表示该实施例的搜索区的滑动方向。
图6是窗口及其借助窗口坐标的定义的图解说明。在图6中,显示了搜索区52。在搜索区52中的窗口54由预定窗口的大小和一个X坐标及一个Y坐标定义。为了定义窗口54的左上角的位置,搜索区左上角构成搜索区的起始点。从L0便笺式存储器控制器26的读出请求中得到窗口坐标X和Y。例如,坐标X和Y可以由两个正整数值以四分之一像素分辨率构成。这样,可以避免固定小数点(fixed-point)运算。L0便笺式存储器控制器26检测可能的亚像素分辨率,如将在以下参照图7的解释。
图7示出了图1的L0便笺式存储器20.2的一部分的显示,以及包含在L0便笺式存储器控制器26中的控制电路的多个部分。所示的L0便笺式存储器部分由12个存储体组成,其中存储体56到66以单独的参考符号来标记。每个存储体为4像素宽、32像素深。窗口54’显示为延伸经过存储体56到64的多个部分。在本实施例中,L0便笺式存储器20.2是直接映射的。因此,需要来自多个存储体的贡献来使窗口完整。窗口54’的坐标假定为亚像素精度。因此,窗口以额外的像素延伸,以支持内插滤波。给定一个实例,其中,窗口大小是16乘16像素,L0便笺式存储器控制器检测亚像素精度,并将17乘17像素的窗口传递到处理单元12。

Claims (26)

1、一种数据处理设备,用于处理数据元素的二维主阵列,所述数据处理设备包括:
主存储单元,其具有主存储器,用于存储所述主阵列,
处理单元,其适于顺序地处理构成所述主阵列的二维子阵列的数据块,并且提供对于滑动搜索区的数据元素的读出请求,所述滑动搜索区延伸经过所述主阵列中预置数量的数据块列和数据块行,
高级高速缓存器单元,其具有与所述主存储器相连接的高级高速缓冲存储器,并且适于:
从所述主存储器中取得多个数据块,用以构成比所述滑动搜索区更大的滑动区,
将所述被存储的滑动区中的、更新所述滑动搜索区所需的数据元素,从所述高级高速缓冲存储器中预取到第一预取缓冲器中,并且在所述第一预取缓冲器的输出端提供这些数据元素,
低级高速缓存器单元,其具有直接连接在所述处理单元与所述第一预取缓冲器之间的低级高速缓冲存储器,并且适于:
使用在所述第一预取缓冲器的输出端提供的所述数据元素,与所述高级高速缓存器单元的上述取得操作和预取操作并发地,在所述低级高速缓冲存储器中存储并更新所述滑动搜索区,以及
与所述高级高速缓存器单元的上述取得操作和预取操作并发地,选择所请求的数据元素并将其输出到所述处理单元。
2、如权利要求1所述的数据处理设备,其中,所述高级高速缓存器单元适于在其输出端根据固定数据格式来提供所述滑动区的数据元素,所述固定数据格式具有预置数量的比特位置,并将预定比特值分配到没有被所述主阵列的格式所使用的所有比特位置。
3、如权利要求1所述的数据处理设备,其中,所述第一预取缓冲器适于以并行方式向所述低级高速缓冲存储器提供数据。
4、如权利要求1所述的数据处理设备,其中,所述第一预取缓冲器适于存储用于替换所述滑动搜索区中一个数据块列或一个数据块行的数据元素。
5、如权利要求1所述的数据处理设备,其中,所述低级高速缓存器单元包括低级便笺式存储器。
6、如权利要求5所述的数据处理设备,其中,所述低级高速缓存器单元适于根据先进先出替换方案,替换存储在所述低级便笺式存储器中的数据元素。
7、如权利要求1所述的数据处理设备,其中,所述低级高速缓冲存储器包括多个存储体,并且其中,所述低级高速缓存器单元适于将属于数据块中多个连续数据行的数据元素存储在不同存储体中,并且将所请求的数据块的多个数据行并行地输出到所述处理单元。
8、如权利要求7所述的数据处理设备,其中,所述低级高速缓存器单元适于以交错的方式寻址在所述低级高速缓冲存储器中的位置,以循环重复的方式将连续的地址分配给连续的存储体中的可寻址位置。
9、如权利要求1所述的数据处理设备,其中,所述低级高速缓冲存储器包括多个行单元,每一个行单元都包含相应的第一数量的存储体,每个存储体都具有可寻址位置,用于存储第二数量的数据元素,并且其中,所述低级高速缓存器单元适于:
将数据块中相应数据行的数据元素或者属于数据块中相应的交错数据行组的数据行的数据元素,存储到相应的行单元的存储体中,其中,所述存储体的相应的可寻址位置每一个都适于存储相应的数据元素组,所述数据元素组由沿着数据行的所述第二数量的连续数据元素组成,从而使得连续的数据元素组以循环重复方式分配到所述行单元的存储体上,所述行单元存储所述数据元素组所属的相应数据行的数据元素,
通过在所述存储体中将已废弃的数据元素替换为所述滑动搜索区中新的数据元素,来更新所述滑动搜索区,其中,所述已废弃的数据元素在所述滑动搜索区移动时脱离了所述滑动搜索区,所述新的数据元素来自与所述已废弃的数据元素相同的数据行,
从多个行单元中并行地取得并输出相应数据行中的数据元素。
10、如权利要求1所述的数据处理设备,其中,所述高级高速缓存器单元包括高级便笺式存储器。
11、如权利要求1所述的数据处理设备,还包括第二预取缓冲器,其连接在所述高级高速缓冲存储器与所述主存储器之间,并且适于以并行方式将数据提供到所述高级高速缓冲存储器。
12、如权利要求11所述的数据处理设备,其中,所述高级高速缓存器单元适于从所述主存储器中将所述主阵列中的、根据预定扫描顺序和扫描方向更新所述滑动区所需的所选择的数据块预取到所述第二预取缓冲器中,并且适于使用在所述第二预取缓冲器的输出端提供的数据元素更新在所述高级高速缓冲存储器中的滑动区。
13、如权利要求1所述的数据处理设备,其中,所述低级高速缓存器单元适于从接收自所述处理单元的读出请求中获得窗口坐标(X,Y)和窗口大小参数,并依据所获得的窗口坐标和窗口大小参数,将存储在所述低级高速缓存器单元中的数据元素提供给所述处理单元。
14、如权利要求13所述的数据处理设备,所述设备是图像处理设备,其中,所述低级高速缓存器单元适于根据从读出请求中获得的所述窗口坐标(X,Y),检测所述处理单元是否采用亚像素精度来处理像素数据,并且将亚像素精度处理所需的全部额外像素提供给所述处理单元。
15、如权利要求1所述的数据处理设备,其中,在各个块行中的预定扫描方向是从左到右或者从右到左,或者可替换的,在各个块列中的预定扫描方向是从顶部到底部或者从底部到顶部,并且其中,所述高级高速缓存器单元适于在所述高级高速缓冲存储器中选择并经由所述第一预取缓冲器提供相应滑动搜索区的全部数据元素,用于在所述低级高速缓冲存储器中的完整替换,这是为了处理分别在所述主阵列的新的数据块行或数据块列开头处的数据块。
16、如权利要求1所述的数据处理设备,其中,所述高级高速缓存器单元适于从所述主存储器中取得、在所述高级高速缓冲存储器中选择、并且经由所述第一预取缓冲器提供相应滑动搜索区的全部数据元素,用于在所述低级高速缓冲存储器中的完整替换,这是为了处理在新的主阵列开头处的数据块。
17、一种用于控制数据处理设备的存储单元的操作的方法,所述数据处理设备具有顺序地处理数据块的处理单元,所述数据块构成了存储在所述存储单元的主存储器中的主阵列的二维子阵列,并且所述处理单元向所述存储单元提供对于滑动搜索区的数据块的读出请求,所述滑动搜索区延伸经过所述主阵列中预置数量的数据块列和数据块行,所述方法包括以下步骤:
从所述主存储器中将所述主阵列中的滑动区取得到高级高速缓冲存储器,所述滑动区比所述滑动搜索区更大,并且将所述滑动区存储到所述高级高速缓冲存储器中,
将用于更新所述滑动区的数据块从所述主存储器中取得到所述高级高速缓冲存储器中,并按照划分成数据行或数据列的分割方式,将所述数据块存储到所述高级高速缓冲存储器中,
从所述高级高速缓冲存储器中,将所述滑动区中的、在未来的滑动搜索区运动中更新所述滑动搜索区所需的数据元素预取到第一预取缓冲器中,并且在所述第一预取缓冲器的输出端提供所述数据元素,
使用在所述第一预取缓冲器的输出端提供的数据元素,与上述取得和预取操作并发地,在低级高速缓冲存储器中存储并更新所述滑动搜索区,
与上述取得和预取操作并发地,从所述低级高速缓冲存储器中选择所请求的数据元素并将其输出到所述处理单元。
18、如权利要求17所述的方法,包括步骤:根据固定数据格式将所述滑动区的数据元素提供到所述低级高速缓冲存储器,所述固定数据格式具有预置数量的比特位置,并且将预定比特值分配到没有被所述主阵列的格式所使用的所有比特位置。
19、如权利要求17所述的方法,其中,以并行方式将数据从所述第一预取缓冲器提供到所述低级高速缓冲存储器。
20、如权利要求17所述的方法,其中,在所述低级高速缓冲存储器中提供所述滑动搜索区的所有数据元素,并且根据先进先出替换方案,替换存储在所述低级高速缓冲存储器中的所选择的数据元素,以便用新的数据元素更新所述滑动搜索区。
21、如权利要求17所述的方法,其中,所述低级高速缓冲存储器包括多个存储体,并且其中,属于数据块中连续数据行的数据元素被存储在不同存储体中,并且其中,从所述低级高速缓冲存储器中并行地将所请求的数据块中的多个数据行输出到所述处理单元。
22、如权利要求21所述的方法,其中,以交错的方式寻址在所述低级高速缓冲存储器中的位置,以循环重复的方式将连续地址分配给在连续存储体中的可寻址位置。
23、如权利要求17所述的方法,包括步骤:从所述主存储器中将所述主阵列中的、根据所述预定扫描顺序和扫描方向更新所述滑动区所需的所选择的数据块预取到第二预取缓冲器中,并且使用在所述第二预取缓冲器的输出端提供的数据元素更新在所述高级高速缓冲存储器中的滑动区。
24、如权利要求17所述的方法,包括步骤:从接收自所述处理单元的所述读出请求中获得窗口坐标(X,Y)和窗口大小参数,并依据所获得的窗口坐标和窗口大小参数,将存储在所述低级高速缓存器单元中的数据元素提供给所述处理单元。
25、如权利要求17所述的方法,其中,在每个数据块行中的预定扫描方向是从左到右或者从右到左的,或者可替换的,在每个数据块列中的预定扫描方向是从顶部到底部或者从底部到顶部,所述方法包括以下步骤:在所述高级高速缓冲存储器中选择并经由所述第一预取缓冲器提供相应滑动搜索区的全部数据元素,用于在所述低级高速缓冲存储器中的完整替换,这是为了处理分别在所述主阵列的新的数据块行或数据块列开头处的数据块。
26、如权利要求17所述的方法,包括以下步骤:从所述主存储器中取得、在所述高级高速缓冲存储器中选择、并且经由所述第一预取缓冲器提供相应滑动搜索区的全部数据元素,用于在所述低级高速缓冲存储器中的完整替换,这是为了处理在新的主阵列开头处的数据块。
CNB2006800049295A 2005-02-15 2006-02-13 用于提高数据处理设备的存储单元的性能的装置和方法 Active CN100527099C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05101101 2005-02-15
EP05101101.3 2005-02-15

Publications (2)

Publication Number Publication Date
CN101120325A CN101120325A (zh) 2008-02-06
CN100527099C true CN100527099C (zh) 2009-08-12

Family

ID=36685766

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800049295A Active CN100527099C (zh) 2005-02-15 2006-02-13 用于提高数据处理设备的存储单元的性能的装置和方法

Country Status (5)

Country Link
US (1) US7797493B2 (zh)
EP (1) EP1854011A2 (zh)
JP (1) JP4861338B2 (zh)
CN (1) CN100527099C (zh)
WO (1) WO2006087665A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861338B2 (ja) 2005-02-15 2012-01-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 読み出し機能及びフェッチ機能を分けることによるデータ処理装置のメモリユニットの性能向上
KR20090032261A (ko) * 2007-09-27 2009-04-01 삼성전자주식회사 움직임 추정에 기초하여 움직임 보상을 수행하는 영상 처리장치 및 그 방법
US8406314B2 (en) * 2007-11-28 2013-03-26 Sharp Laboratories Of America, Inc. Two-dimensional DPCM with PCM escape mode
CN102542525B (zh) * 2010-12-13 2014-02-12 联想(北京)有限公司 一种信息处理设备以及信息处理方法
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
JP2013061846A (ja) * 2011-09-14 2013-04-04 Sony Corp 情報処理方法、情報処理システム、情報処理装置、及びプログラム
JP5973707B2 (ja) * 2011-10-14 2016-08-23 オリンパス株式会社 三次元内視鏡装置
US20140184630A1 (en) * 2012-12-27 2014-07-03 Scott A. Krig Optimizing image memory access
US9224186B2 (en) * 2013-09-27 2015-12-29 Apple Inc. Memory latency tolerance in block processing pipelines
US9367467B2 (en) * 2014-08-22 2016-06-14 Nvidia Corporation System and method for managing cache replacements
US9749548B2 (en) * 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
KR101627456B1 (ko) * 2015-03-16 2016-06-07 성균관대학교산학협력단 그래픽 사용자 인터페이스 품질 개선방법 및 그 방법을 수행하는 프로그램이 저장된 기록매체
US10242654B2 (en) 2017-01-25 2019-03-26 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations
US9978118B1 (en) * 2017-01-25 2018-05-22 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with data compression
US10514753B2 (en) 2017-03-27 2019-12-24 Microsoft Technology Licensing, Llc Selectively applying reprojection processing to multi-layer scenes for optimizing late stage reprojection power
US10410349B2 (en) 2017-03-27 2019-09-10 Microsoft Technology Licensing, Llc Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power
US10255891B2 (en) 2017-04-12 2019-04-09 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with multiple LSR processing engines
US10592663B2 (en) * 2017-12-28 2020-03-17 Intel Corporation Technologies for USB controller state integrity protection
US10884938B2 (en) * 2018-12-13 2021-01-05 International Business Machines Corporation Method and apparatus for prefetching data items to a cache
CN109710309B (zh) * 2018-12-24 2021-01-26 安谋科技(中国)有限公司 减少存储体冲突的方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0291776A (ja) * 1988-09-29 1990-03-30 Toshiba Corp 画像処理装置
DE69128741T2 (de) 1990-05-18 1998-07-16 Koninkl Philips Electronics Nv Mehrstufiger Befehlscachespeicher und Verwendungsverfahren dafür
JPH07219847A (ja) * 1994-01-31 1995-08-18 Fujitsu Ltd 情報処理装置
JP3717212B2 (ja) * 1995-10-27 2005-11-16 株式会社日立製作所 情報処理装置及び情報処理ユニット
US6091768A (en) * 1996-02-21 2000-07-18 Bru; Bernard Device for decoding signals of the MPEG2 type
JPH09245179A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp コンピュータグラフィックス装置
US5912676A (en) * 1996-06-14 1999-06-15 Lsi Logic Corporation MPEG decoder frame memory interface which is reconfigurable for different frame store architectures
US6112293A (en) 1997-11-17 2000-08-29 Advanced Micro Devices, Inc. Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result
US6130680A (en) * 1997-12-01 2000-10-10 Intel Corporation Method and apparatus for multi-level demand caching of textures in a graphics display device
EP0926600B1 (en) 1997-12-24 2003-06-11 Texas Instruments Inc. Computer system with processor and memory hierarchy and its operating method
GB2335126B (en) * 1998-03-06 2002-05-29 Advanced Risc Mach Ltd Image data processing apparatus and a method
US6437789B1 (en) * 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
US6466227B1 (en) * 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
US6957305B2 (en) * 2002-08-29 2005-10-18 International Business Machines Corporation Data streaming mechanism in a microprocessor
US20050262276A1 (en) * 2004-05-13 2005-11-24 Ittiam Systamc (P) Ltd. Design method for implementing high memory algorithm on low internal memory processor using a direct memory access (DMA) engine
US20060159170A1 (en) * 2005-01-19 2006-07-20 Ren-Wei Chiang Method and system for hierarchical search with cache
CA2594773A1 (en) * 2005-01-19 2006-07-27 Biolipox Ab Indoles useful in the treatment of inflammation
JP4861338B2 (ja) 2005-02-15 2012-01-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 読み出し機能及びフェッチ機能を分けることによるデータ処理装置のメモリユニットの性能向上

Also Published As

Publication number Publication date
WO2006087665A3 (en) 2007-01-18
WO2006087665A2 (en) 2006-08-24
CN101120325A (zh) 2008-02-06
US7797493B2 (en) 2010-09-14
JP4861338B2 (ja) 2012-01-25
US20080147980A1 (en) 2008-06-19
EP1854011A2 (en) 2007-11-14
JP2008530680A (ja) 2008-08-07

Similar Documents

Publication Publication Date Title
CN100527099C (zh) 用于提高数据处理设备的存储单元的性能的装置和方法
CN101147396B (zh) 使用循环缓存存储器以曲折扫描顺序处理数据阵列的方法和设备
EP2330587B1 (en) Image processing device and image processing method
JP5291138B2 (ja) データ値の多次元アレイへのパラレルなアクセスを提供するデータ処理装置
US6023281A (en) Method and apparatus for memory allocation
US7512287B2 (en) Method and apparatus for efficient image rotation
US20100088475A1 (en) Data processing with a plurality of memory banks
CN101156450A (zh) 利用区域的动态高宽比的基于区域的3drs运动估计
US20070230817A1 (en) Image processing apparatus, image processing method and image processing program
JPH08123953A (ja) 画像処理装置
WO2006109209A1 (en) Video processing with region-based multiple-pass motion estimation and update of temporal motion vector candidates
US6999091B2 (en) Dual memory channel interleaving for graphics and video
US6662288B1 (en) Address generating apparatus and motion vector detector
KR100359039B1 (ko) 화상 처리 장치 및 화상 메모리의 매핑 방법
CN116010299B (zh) 一种数据处理方法、装置、设备及可读存储介质
US5291188A (en) Method and apparatus for allocating off-screen display memory
US20050232027A1 (en) Data storage device, data storage control apparatus, data storage control method, and data storage control program
US7050073B2 (en) Method and apparatus for scrolling an image to be presented on a display unit
EP1575298B1 (en) Data storage apparatus, data storage control apparatus, data storage control method, and data storage control program
JP2000293432A (ja) バンク可変メモリ
CN100403276C (zh) 存储器存取方法
JPH11134248A (ja) 画像データ記憶用集積回路、その画像データ記憶方法および画像データ記憶装置
EP1566765A1 (en) Method for providing a combined system of a motion estimation unit and a noise reduction unit with input image data
JP2006309776A (ja) 画像データ記憶装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 52 high-tech park, 5656AG, Edelhofen, Netherlands

Patentee after: KONINKLIJKE PHILIPS N.V.

Address before: Holland Ian Deho Finn

Patentee before: KONINKLIJKE PHILIPS ELECTRONICS N.V.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230425

Address after: Maine

Patentee after: Network System Technology Co.,Ltd.

Address before: 52 high-tech park, 5656AG, Edelhofen, Netherlands

Patentee before: KONINKLIJKE PHILIPS N.V.

TR01 Transfer of patent right