接口装置及操作接口装置的方法与流程

文档序号:12136274阅读:222来源:国知局
接口装置及操作接口装置的方法与流程

本发明涉及数据处理领域。更具体地,涉及图像数据的编码和解码。



背景技术:

在处理图像数据的数据处理设备中,为了减少与图像数据的大帧在系统中的传输相关联的带宽和功率消耗,该图像数据可被压缩。因此,以压缩格式传输图像数据(或其部分)的帧降低了整个系统带宽消耗和功率使用,并且还减少了在系统中保存这种图像数据(例如当被存储在存储器中时)所需的存储空间。虽然图像数据的帧通常按照空间坐标系统被引用(reference),但这对于压缩数据(例如以分块的方式被压缩)可能不是最有效的参考系统,并且因此在这种情况下,则系统内至少两个寻址方案被使用,即,空间坐标方案以及基于块的坐标方案。在压缩数据使用应用了基于块的坐标方案的压缩而被存储的情况下,对该压缩数据的访问必须按照所需块做出,而不是按照压缩数据对应的非压缩图像数据的空间坐标。



技术实现要素:

在至少一些实施例中,本公开技术提供了一种接口装置,包括:第一总线接口,该第一总线接口接收图像数据读取请求,其中图像数据读取请求使用第一寻址方案指定非压缩图像数据组;第二总线接口,该第二总线接口发送使用第二寻址方案的压缩图像数据读取请求;地址转换电路,该地址转换电路将图像数据读取请求的第一寻址方案转换成为压缩图像数据读取请求的第二寻址方案,其中所述压缩图像数据读取请求指定对应于非压缩图像数据组的压缩图像数据组;以及解码电路,该解码电路将经由第二总线接口接收到的压缩图像数据组解码以生成非压缩图像数据组,其中该装置响应于非压缩图像数据组的生成而经由第一总线接口发送非压缩图像数据组。

在至少一些实施方案中,本公开技术提供了一种操作接口装置的方法,包括:在第一总线接口处接收图像数据读取请求,其中图像数据读取请求使用第一寻址方案指定非压缩图像数据组;将图像数据读取请求的第一寻址方案转换成为压缩图像数据读取请求的第二寻址方案,其中所述压缩图像数据读取请求指定对应于非压缩图像数据组的压缩图像数据组;从第二总线接口发送使用第二寻址方案的压缩图像数据读取请求;将经由第二总线接口接收到的压缩图像数据组解码以生成非压缩图像数据组;以及响应于非压缩图像数据组的生成,经由第一总线接口发送非压缩图像数据组。

在至少一些实施方案中,本公开技术提供了一种接口装置,包括:用于在第一总线接口处接收图像数据读取请求的装置,其中图像数据读取请求使用第一寻址方案指定非压缩图像数据组;用于将图像数据读取请求的第一寻址方案转换成为压缩图像数据读取请求的第二寻址方案的装置;用于从第二总线接口发送使用第二寻址方案的压缩图像数据读取请求的装置;用于将经由第二总线接口接收到的压缩图像数据组解码以生成非压缩图像数据组的装置;以及用于响应于非压缩图像数据组的生成而经由第一总线接口发送非压缩图像数据组的装置。

在至少一些实施例中,本公开技术提供了一种接口装置,包括:第一总线接口,该第一总线接口接收具有第一寻址方案的非压缩图像数据组;第二总线接口,该第二总线接口发送具有第二寻址方案的压缩图像数据组;地址转换电路,该地址转换电路将非压缩图像数据的第一寻址方案转换成压缩图像数据的第二寻址方案;以及编码电路,该编码电路对经由第一总线接口接收到的非压缩图像数据组编码以生成压缩图像数据组,其中该装置响应于压缩图像数据组的生成,经由所述第二总线接口发送该压缩图像数据组。

在至少一些实施例中,本公开技术提供了一种操作接口装置的方法,包括:在第一总线接口处接收非压缩图像数据组,该组非压缩图像数据具有第一寻址方案;将非压缩图像数据的第一寻址方案转换成为压缩图像数据组的第二寻址方案;对经由第一总线接口接收到的非压缩图像数据组编码以生成压缩图像数据组;以及响应于压缩图像数据组的生成,经由第二总线接口发送压缩图像数据组。

在至少一些实施例中,本公开技术提供了一种接口装置,包括:用于在第一总线接口处接收非压缩图像数据组的装置,该非压缩图像数据组具有第一寻址方案;用于将非压缩图像数据的第一寻址方案转换成为压缩图像数据组的第二寻址方案的装置;用于对经由第一总线接口接收到的非压缩图像数据组编码以生成压缩图像数据组的装置;以及用于响应于压缩图像数据组的生成,经由所述第二总线接口发送压缩图像数据组的装置。

附图说明

根据在附图中示出的实施例,本公开技术将仅通过示例的方式被进一步描述,在附图中:

图1根据一个实施例示意性地示出具有接口装置的图像处理系统;

图2示意性地更详细示出例如在图1的系统中所示的接口装置;

图3根据一个实施例示出在操作例如在图1中所示的接口装置的方法中执行的步骤序列;

图4A-H根据一个实施例示出关于去瓦缓冲区内容基于块的方式被写入以及基于行(line)的方式被读取的示例;

图5根据一个实施例示出读指针和写指针的维护以跟踪有效去瓦缓冲区内容;

图6根据一个实施例示出图像帧块的行以及关于去瓦缓冲区地址而言每一行的块的数据字被写入何处;

图7根据一个实施例示出块行以及相应的从去瓦缓冲区中的读取和向去瓦缓冲区的写入的又一示例;

图8根据一个实施例示意性地示出去瓦控制电路;

图9根据一个实施例示出定义由图8的去瓦控制电路内的控制电路实行的地址计算的一种形式的示例程序代码;

图10A根据一个实施例示出有效载荷超级块的大小与缓存行大小之间的对应关系;

图10B根据一个实施例示意性地示出有效载荷缓存以及缓冲区控制电路;

图11A和11B根据一个实施例示出服务有效载荷读取请求而实行的一系列步骤;

图12根据一个实施例示意性地示出包括接口装置的图像处理系统;以及

图13根据一个实施例示意性地示出图12的接口装置的更多细节。

具体实施方式

至少一些实施例提供了一种接口装置,包括:第一总线接口,该第一总线接口接收图像数据读取请求,其中图像数据读取请求使用第一寻址方案指定非压缩图像数据组;第二总线接口,该第二总线接口发送使用第二寻址方案的压缩图像数据读取请求;地址转换电路,该地址转换电路将图像数据读取请求的第一寻址方案转换成为压缩图像数据读取请求的第二寻址方案,其中所述压缩图像数据读取请求指定对应于非压缩图像数据组的压缩图像数据组;以及解码电路,该解码电路将经由第二总线接口接收到的压缩图像数据组解码以生成非压缩图像数据组,其中该装置响应于非压缩图像数据组的生成而经由所述第一总线接口发送非压缩图像数据组。

该接口处理压缩图像数据和非压缩图像数据,并对每种图像数据使用不同的寻址方案。此外,该接口装置设置有地址转换电路,该地址转换电路赋予接口装置在两个寻址方案之间转换的能力。该接口装置设置有第一总线接口,在此第一总线接口处该装置可以接收指定非压缩图像数据组的图像数据读取请求。此外,该接口装置设置有第二总线接口,经由该第二总线接口该装置能够发送压缩图像数据读取请求。该接口装置在第一总线接口处接收的数据图像读取请求使用第一寻址方案,而接口装置利用其地址转换电路在第一寻址方案和第二寻址方案之间进行转换,其中第一寻址方案被用于所接收的图像数据读取请求(在该第一总线接口处被接收)以及第二寻址方案被用于压缩图像数据读取请求(该接口装置将接着从其第二总线接口发送该压缩图像数据读取请求)。因此,该接口装置能够被定位在第一设备和第二设备之间,其中该第一设备使用第一寻址方案发布针对非压缩图像数据的图像数据读取请求,以及第二设备使用第二寻址方案处理相应的压缩图像数据。实际上,接口装置由此使得发布针对非压缩图像数据的图像数据读取请求的第一设备能够访问使用第二寻址方案处理压缩格式的图像数据的另一设备,而不需要第一设备知晓任何第二寻址方案的知识或甚至第一设备所请求的图像数据事实上是由第二设备以压缩格式处理的。事实上,从所述第一设备的角度来看,该接口的第一总线接口等同于接入以非压缩的形式保持所请求的图像数据的的设备的直接接口。

该接口装置还设置有解码电路,该解码电路将该接口装置经由其第二总线接口接收的压缩图像数据解压,以便生成非压缩图像数据,并且所述非压缩图像数据接着将从第一总线接口被发送以便服务于之前同样经由第一总线接口所接收的图像数据读取请求。如上所述,因此,该接口装置的提供意味着请求非压缩图像数据组的第一设备不需要知晓事实,即事实上是第二设备最终服务于图像数据读取请求。反之,接收使用第二寻址方案的压缩图像数据读取请求的第二设备不需要知晓作为请求那些图像数据的源的第一设备的存在或具体配置。这意味着,第一设备可被设置为使用第一寻址方案,该第一寻址方案更适合于该第一设备处理的非压缩图像数据,同时第二设备可被配置为使用第二寻址方案,该第二寻址方案是更适合于该第二设备处理的压缩图像数据。因此,当本公开技术的接口装置被使用来提供其可连接在一起的设备的连接时,这些设备中的每一个设备可更简单且更有效地被配置,并且不会为了彼此连接而需要进行任何适配。这样的接口装置可有各种用途,但一个示例是,接口装置在其第一总线接口处从显示器控制器接收图像数据读取请求,该显示器控制器向显示器逐行提供像素数据,并且在该示例中第二设备为存储装置,压缩图像数据以基于块的方式被存储在该存储装置中,所述基于块的方式对于存储器提供的压缩机会是有利的,但还需要适合用于这种图像数据的压缩块的相应的寻址方案。

在某些实施例中,接口设备包括第三总线接口,该第三总线接口接收用于配置地址转换电路和解码电路中至少一者的操作的配置数据。该第三总线接口可例如允许主机CPU建立用于接口装置的表面配置(surface configuration),该表面配置包括关于指针配置、像素格式、压缩和解压配置参数等细节。因此,该接口装置的操作的各个方面可以以这种方式来管理,从而提供了更加灵活的和适应性更强的接口。

第一寻址方案和第二寻址方案可以采用各种形式,但是在一些实施例中,第一寻址方案是基于空间坐标的寻址方案以及第二寻址方案是基于压缩块的寻址方案。

当解码压缩图像数据时,有利的是:相同的数据不需要进行多次解压缩,并且相应地在一些实施例中,在压缩是基于块但第一寻址方案是基于空间坐标的寻址方案的情况中,在接口装置内的某些缓冲能力使得经解压缩的基于块的图像数据被保存,直到该数据被需要时。例如,当压缩图像数据块被解压缩时,但由于请求的图像数据是关于像素行的,若干经解压缩图像数据块可被保存,使得随着逐行对图像数据的请求的进行经解压缩的图像数据块(覆盖多行)可被使用。因此,在一些实施例中,接口装置包括去瓦(de-tiler)缓冲区,该去瓦缓冲区存储非压缩图像数据组,该非压缩图像数据组在经由第一总线接口被发送之前由解码电路解码;以及去瓦控制电路,该去瓦控制电路控制对去瓦缓冲区的访问,使得非压缩图像数据组被以压缩块为单位写入去瓦缓冲区并以像素行为单位从去瓦缓冲区中读取。该读取可以是整个帧宽度像素行,或者仅仅是其中一部分。

然而,关于这样的去瓦缓冲区的提供的一个问题是以有效的方式对写入这样的缓冲区以及从中读出进行管理。管理这种存储能力的一个简单的方式是提供两个缓冲区,其中一个被写入而另一个被从中读取,或反过来。例如,非压缩图像数据块可被写入一个缓冲区,直到完整的帧宽度由此已被存储,在此之后可以以逐行的方式从该缓冲区中读取非压缩图像数据,同时在第二缓冲区中开始基于块的写入。然而,本公开技术认识到,用于提供去瓦缓冲区的更有效的存储方案可通过特定的用于读取与写入过程的方法被实现,并且相应地,在某些实施例中,去瓦控制电路被设置为管理去瓦缓冲区的访问过程,该访问过程包括:a)将非压缩图像数据块的第一行的图像数据字写入缓冲区中的连续的缓冲区地址,其中每一块由N个图像数据字表示;b)从去瓦缓冲区中的读取缓冲区地址序列中读取针对像素行的图像数据字,该读取缓冲区地址序列包括B(N/B)R-(B-1)个缓冲区地址的跳步(skip step),其中R是块行编号以及B是在一块的每一像素行中的图像数据字的数目,缓冲区地址以M被取模,其中M是每个帧宽度块行中的图像数据字的数目;c)当N个图像数据字已从去瓦模块中被读取出时,将图像数据字写入去瓦缓冲区中的读取缓冲区地址序列;迭代地重复步骤b)和c)。

根据该访问过程,当多行图像数据字被从去瓦缓存器中被读取出时,通过直接利用由于读取而释放的足够空间,这样随后到达的非压缩图像数据块能够被写入去瓦缓冲区。特别地,只要对应于非压缩图像数据块的若干图像数据字从去瓦缓冲区中已被读取(尽管事实上读取本身不是关于块被执行,而是关于像素行),则随后达到的刚刚经解压缩的图像数据块可被直接写入刚刚已由读取过程释放的空间。总而言之,这具有优点:显著较小的去瓦缓冲区可被提供,可能的确仅为传统的具有两个缓冲区(每个的大小用于容纳非压缩图像数据块的全帧宽度,其中一个缓冲区被从中读取,而另一个被写入)的去瓦缓冲区设置的大小的一半。本公开技术的访问过程使得仅单个这种类型的缓冲区被需要,即,这种缓冲区的大小,因为这种缓冲区地址被使用的方式,为用于容纳非压缩图像数据块的全帧宽度。特别地,本公开技术认识到,如果当读取帧宽度像素行时读取缓冲区地址序列包括“跳跃”或“跳步”,所述“跳跃”或“跳步”考虑到如下事实被执行:数据以块被写入缓冲区地址,但以行从中被读取,即可实现此。此外,本公开技术认识到,这些跳步的大小必须针对被传送通过去瓦缓冲区的每一图像块行相称地增大,尽管如此,最终这些跳步的大小的增加将“绕回(wrap around)”并且读取和写入模式重复。

在块中的每个像素行中的图像数据字的数目可以根据所考虑的具体系统及编码协议改变,但在一些实施例B中,块中的每个像素行中的图像数据字的数目至少是两个。这意味着,当从去瓦缓冲区读取针对一像素行的图像数据字时,对应于块中的每个像素行中的图像数据字的数目的连续缓冲区地址被读取、被上述跳步穿插,这些跳步的大小增加,直到绕回,即,跳步返回到0。

存在有不同的读取缓冲区地址序列的生成方式,但在一些实施例中,接口装置包括地址操作电路,该地址操作电路通过将位旋转操作应用于缓冲区地址序列组而从该缓冲区地址序列组中生成读取缓冲区地址序列。因此,通过执行该位旋转操作,实现了“位重组”(bit swizzling),这可提供所需的跳步。

位旋转操作可被应用到缓冲区地址的全宽,但在某些实施例中,缓冲区地址序列组包括静态部分,该静态部分不经受位旋转操作。因此,该静态部分会以通常方式递增,无需跳过,并且可以例如使B的上述特征(块中的每个像素行中的图像数据字的数目)得以在读取缓冲区地址序列中被正确对待,因为需要跨越块的像素行来读取的连续缓冲区地址由静态部分提供,而剩余部分(动态部分)的缓冲区地址经受位旋转操作,并且由此在那些连续缓冲区地址之间提供了跳步。

去瓦缓冲区的实施可以以多种方式被处理,例如在关于存储在去瓦缓冲区中的数据字的有效性的实施方面,但在某些实施例中,接口装置包括图像数据有效性电路,该图像数据有效性电路维持关于在去瓦缓冲区中缓冲区地址的读指针和写指针,其中在读指针和写指针之间的缓冲区地址保持有效的图像数据。

在某些实施例中,接口装置包括预取电路,该预取电路监控去瓦缓冲区的占用,以及,当去瓦缓冲区具有存储图像数据块的能力时,指令解码电路以解码对应于下一图像数据块的压缩数据图像,该下一图像数据块为随后图像数据读取请求所期望请求的图像数据块。在例如由本公开技术提供的接口装置的情况下,该接口装置接收针对非压缩图像数据的图像数据请求,并且通过经由该接口装置的第二总线接口撷取压缩图像数据来服务这些图像数据请求,这种预取电路的提供可以是有益的,因为包含地址转换电路、解码电路以及图像数据被压缩的具体方式可能导致经由接口装置的第一总线接口访问接口装置的设备不被期望的访问延迟。因此,为了进一步支持本公开技术的接口装置的透明性,预取压缩图像数据的能力可缓和这类访问延迟。例如,关于所使用的压缩算法,则可能是这种情况,压缩图像数据被细分为标头数据压缩块和主体数据压缩块,其中首先需要访问标头数据,以便接着访问主体数据。这两阶段过程可导致上述访问延迟,因此这种实施例的预取能力解决了此问题。

由第二总线接口接收的压缩图像数据组被处理的具体方式可采取各种形式,但在一些实施例中,接口装置还包括压缩图像数据缓存存储区及压缩图像数据缓冲区,以存储经由第二总线接口所接收供解码电路访问的压缩图像数据;以及控制电路,该控制电路响应于压缩图像数据读取请求,在压缩图像数据缓存存储区中执行针对在压缩图像数据读取请求中指定的第一字和最后一字的查找,其中控制电路响应于第一字和最后一字中的至少一者在压缩图像数据缓存存储区中命中,来修改压缩图像数据读取请求以忽略对应于命中的第一字和最后一字中的至少一者的至少一个缓存行请求。

本公开技术认识到,在存储器中的压缩图像数据的紧密打包可能意味着一压缩图像数据组(例如,“超级块”)的末尾和下一压缩图像数据组(例如,第二超级块)的开始可能正好落入存储器中的一个位置,使得这些图像数据例如在同一缓存行上被一起撷取。举个例子,在64字节的缓存行被使用的情况中,虽然有超级块的效载荷数据(超级块的多数部分)的大小是数百个字节的数量级,但每个打包的超级块的大小是字节粒度,则很可能出现一个块的结尾和下一个块的开始是在同一缓存行上。然而,本公开技术还认识到,对于所有经由第二总线接口撷取到的压缩图像数据提供完整高速缓存存储能力实际上不是必要的,并且仅仅对于所接收的压缩图像数据组(有效载荷超级块)的共享部分(例如,高速缓存行)来说这种高速缓存能力是特别有利的。因此,本公开技术提供了一种接口装置,在其中,仅通过给一部分压缩图像数据提供高速缓存能力以及对剩余压缩图像数据提供简单缓冲区存储形式,针对这种压缩图像数据的存储能力更简单地被提供。因此,当新的压缩图像数据组要经由第二总线接口进行撷取时,执行针对那组压缩图像数据的开始和末尾(即,在压缩图像数据读取请求中指定的第一字和最后一字)的缓存查找,并且如果相应的缓存行是已经存在于缓存存储区中,则对应于第一字和最后一字中的至少一者的至少一个缓存行请求可被忽略。只有压缩图像数据读取请求的“中间部分”一定需要经由第二总线接口被发送,且至少一个“端部”可被忽略。经由第二总线接口接收所得的压缩图像数据可被存储在压缩图像数据缓冲区中,并且原始的完整的压缩图像数据读取请求则可通过来自缓存存储区的一部分及来自数据缓冲区的大部分来服务。仅举个配置示例,为了能够存储针对压缩图像数据的四个超级块的数据,在缓存中的8个64字节行以及在“一次性”存储缓冲区中的64个64字节行可被提供。重要的是,处理此数据的逻辑于是小于在所有的22个64字节行为缓存行时的逻辑(具有以类似缓存方式来处理数据的相关联的逻辑)。这样,更为紧凑的接口装置被提供。

在某些实施例中,控制电路包括针对在压缩图像数据缓存存储区中的每条缓存行的引用计数器,该控制电路响应于所述压缩图像数据读取请求的接收,递增对应于所述压缩图像数据读取请求的缓存行的引用计数器,该控制电路响应于第一字和最后一字这两者都在压缩图像数据缓存存储区中命中并且针对压缩图像数据读取请求的压缩图像数据缓冲区的内容已被读取,递减对应于压缩图像数据读取请求的缓存行的引用计数器,以及该控制电路响应于缓存行的引用计数器被递减至预定值,标记该高速缓存行为未使用。于是,与压缩图像数据缓存中的缓存行相关联的引用计数器可因此用于跟踪可能使用特定缓存行的内容的多个压缩图像数据读取请求,且这种机制使得该缓存行的内容将被维持,直到所有未决的压缩图像数据读取请求(这些请求需要访问该缓存行的内容)都被服务。

至少某些实施例提供了一种接口装置,包括:第一总线接口,该第一总线接口接收具有第一寻址方案的非压缩图像数据组;第二总线接口,该第二总线接口发送具有第二寻址方案的压缩图像数据组;地址转换电路,该地址转换电路将非压缩图像数据的第一寻址方案转换成压缩图像数据的第二寻址方案;以及编码电路,该编码电路对经由第一总线接口接收到的非压缩图像数据组编码以生成压缩图像数据组,其中该装置响应于压缩图像数据组的生成,经由所述第二总线接口发送压缩图像数据组。

相应地,本公开技术还提供了一种基于与上述包括解码电路的接口装置相同的原理的接口装置,但其中所述接口装置包括代替解码电路的编码电路,并且因此,该接口装置被设置为在第一总线接口处接收非压缩图像数据并经由第二总线接口发送压缩图像数据组,其中所述非压缩图像数据和压缩图像数据使用不同的(第一和第二)寻址方案。因此,该接口装置使得经由第一总线接口提供非压缩图像数据组的设备无需知晓如下知识便可实现其功能:第二寻址方案、被应用于图像数据的压缩的本质或经过第二总线接口之后的那些压缩图像数据的目标,并且可以与接口装置关于使用第一寻址方案的压缩图像数据进行简单的交互。

在一些实施例中,这种类型(即,具有编码电路)的接口装置包括标头缓冲区,其中由编码电路编码的压缩图像组包括标头部分和有效载荷部分,其中标头缓冲区响应于标头部分小于预定标头大小把标头部分存储至标头缓冲区中,待进一步编码又一非压缩图像数据组来提供预定标头大小的完整标头。因此,这样的标头缓冲区的提供使得编码电路能够针对不需要遵照特定大小的压缩图像数据组执行编码,特别是关于对所定义的标头大小执行编码。因此,编码电路可更有效地执行所需的编码,例如一次仅半个块被编码(也称为块分割模式),但标头数据可被积累,直到完整的标头大小准备好被写出,这样会更有效。

现在将参考附图描述一些具体实施例。

图1根据一个实施例示意性地示出包括接口装置12的图像数据处理系统10。接口装置12被定位在显示器控制器14和存储器16之间,在所述存储器中图像数据被以压缩格式存储。如图1所示,压缩格式的图像数据包括存储在压缩标头缓冲区18中的标头部分以及存储在压缩主体缓冲区20中的压缩主体部分。显示器控制器14控制显示器22,并且为了提供供显示器22显示的像素数据,显示器控制器14与接口装置12进行交互,特别是发布针对非压缩图像数据的读取请求,并且响应于该请求,接口装置12中的解码器从外部存储器16读取压缩数据、将压缩数据解压缩并且将该非压缩数据返回至显示器控制器14。在图1中还示出主机CPU 24,该主机CPU可配置显示器控制器14和接口装置12的操作。

图2示意性地示出在图1中所示的接口装置12的更详细的细节。接口装置12包括高级扩展接口(AXI)从接口,经由该接口接口装置与显示器控制器14进行通信。具体地,接口装置12经由AXI从接口从显示器控制器中26接收针对非压缩图像数据的读取请求。接口装置12还包括高级外围总线(APB)从接口28,主机CPU 24经由该接口在接口装置12的表面配置表30中建立表面配置,所述表面配置定义了接口装置的多种配置参数。最后,接口装置12还包括AXI主接口32,经由该接口接口装置与外部存储器16进行交互。AXI主接口示意性地在图2中示出为其包含AXI读取模块34。

接口装置12的存储器映射接口(IF)36包括去瓦(de-tiler)控制电路38、去瓦SRAM缓冲区40和预取电路42。由接口装置12从显示器控制器14中接收到的针对非压缩图像数据的读取请求首先由去瓦控制电路38处理,该去瓦控制电路与预取电路42通信以启动所请求的图像数据的获取,此外,预取电路42设法确保从外部存储器16撷取压缩图像数据的启动发生在针对该数据的读取请求实际上由接口装置12接收之前。这有助于确保与从外部存储器12撷取该压缩图像数据相关联的存储器延迟对显示器控制器14是隐藏的。在这个例子中,这在如下情况中特别有用,即压缩图像数据以包括标头部分和有效载荷(主体)部分的格式被存储在存储器中,并且标头部分必须首先被读取以便确定相应的有效载荷部分。因此,针对被请求的给定的图像数据组,首先必须从外部存储器中撷取相应的标头信息,然后必须从存储器中撷取相应的有效载荷数据,这样潜在地增加了存储器延迟。

读取请求使用线性存储器地址从显示器控制器14被接收(因为接口允许显示器控制器进行动作就好像其直接从存储器中读取压缩图像)。去瓦控制38包括地址转换电路52,该地址转换电路将线性存储器地址转换为空间(x,v)坐标(这样该去瓦控制可监控哪些像素实际上正从去瓦存储器40返回的)。预取电路42以基于块的方式工作,跟踪将被下次提取的块的(x,y)坐标。当获取要被启动时,预取器42使用其地址转换电路53将(x,y)坐标转换为标头地址,且发布针对该标头的读取请求,该读取请求被转发至标头获取器54,该标头获取器发布从外部存储器16读取所标识的(一个或多个)标头块的读取请求。该读取请求经由AXI主接口32被传送至外部存储器16,并且所撷取的标头块被存储在标头缓存区56中。通过如此撷取,标头块被读取,以便确定相应的有效载荷数据,该相应的有效载荷数据必须随着标头块被传送至有效载荷获取电路58而被撷取,所述有效载荷获取电路本身使得相应的有效载荷读取请求(经由AXI主接口32)被发送至外部存储器16,并且所撷取的有效载荷数据被存储在有效载荷缓存及缓冲区60中。有效载荷数据被撷取和存储的具体方式的更多细节将在下面讨论。超级块解码器50包括超级块解码器核心62,该超级块解码器核心对从存储器60中撷取的压缩图像数据执行解码,该超级块解码器核心具有4×4解码器核心64,该4×4解码器核心访问存储在有效载荷缓存及缓冲区60中的有效载荷数据以及执行解压缩。重新排序SRAM 66被用于允许4×4解码器核心64在排序上具有更大的灵活性,在排序中,4×4解码器核心对块进行处理以便解码,并且经解压的图像数据块接着作为解码的最终阶段被写入去瓦SRAM 40中,去瓦控制电路38从去瓦SRAM 40中读取将经由AXI从接口26被返回至显示器控制器14的若干行像素数据。

图3示出根据一个实施例的当操作如在图1和2中示出的接口装置12时的方法所执行的步骤序列。在步骤70处,接口装置接收由显示器控制器在接口装置的AXI从接口处发布的针对帧行(frame line)部分的读取请求。接着,在步骤72处,接口装置将用于该帧线部分的线性寻址转换为用于相应的压缩块的寻址。随着所需要来满足接收到的读取请求的压缩块由此被识别出来,相应的(一个或多个)标头及(一个或多个)有效载荷经由接口装置的AXI主接口从外部存储器中的ARM帧缓冲压缩(AFBC)标头缓冲区和AFBC主体缓冲区中被撷取出。首先注意的是,如上上述,用于撷取标头和有效载荷数据的过程通常为二阶段读取过程,其中标头块首先被撷取,接着在那些标头块内所标识的有效载荷块被撷取。也应注意的是,在这个示例中,存储在外部存储器中的压缩图像数据根据AFBC协议(ARM帧缓冲压缩)被压缩,虽然这仅仅是许多可用的压缩格式的一种。在步骤76处,所撷取的AFBC数据被解码,并且在步骤78处,所解码的图像数据块被写入去瓦缓冲区中。最后,在步骤80中,最初所请求的帧线部分从去瓦缓冲区中读取,并经由接口装置的AXI从接口被发送至显示器控制器。

现在更详细地参照图4A-H和图5-9讨论数据被写入去瓦缓冲区及从中读取的方式。如上所述,关于去瓦SRAM的有效使用的一个问题是,去瓦SRAM的内容可能需要逐块被写入,而对于读取,去瓦SRAM是逐行进行的。在这种情况下,为了对本公开技术提供的具有寻址缓冲区的方式和特定配置的去瓦控制电路及去瓦缓冲区进行有效的操作,在图4A-H示出其原理。这些图中的每一幅图示出具有8×2像素的简单缓冲区,其中2×2像素块被使用。可以看出,图4A中的缓冲区被四个块填充,其中数字指示像素属于哪一块以及T/B指示该像素属于顶行还是底行。继续图4B,该图示出顶行的前四个像素被读取之后的所述缓冲区的内容。现在,无需等待被写入该缓冲区以生成如图4A所示的内容的块中的全部被读取出,本公开技术认识到:如果一个新的2×2块被以不同的顺序写入的话,如图4B所示四个空间足够存储该新的2×2块。这种情况由图4C中所示,在该图中下一2×2像素块(编号为4)已被写入缓冲区。此外,在读取出前四块(编号0-3)的其余像素并且将它们更换为新的图像数据块之后,此时该缓冲区的内容如图4D所示。

现在,为了读取出顶行像素,有必要在缓冲区进行“跳跃”(即,为了在要从缓存区读取的缓冲区地址序列中引入跳步),以便从给定的像素行(线)中读取像素序列。这些跳跃由图4D中的箭头示出,即,从4T到5T、从5T到6T和从6T到7T。这种模式继续并且图4E示出新的块8和9已被写入到因顶行4T-7T的读取所创建的缓冲区空间中。图4F接着示出下一步骤,在其中底行4B-7B已被读出,并且可用的缓冲区空间被新的块10和11填充。由于这种填充,像素数据随后在缓冲区中可被用于针对下一像素行(8T-11T)的读取,并且在图4F中的箭头示出针对该行要被读取所需的跳步。像素行8T-11T的读取使得新的块12和13得以被写入至缓冲区中,并且可以看出,这些已经重复在图4A中的块0和1的存储模式。最后,底行8B-11B的读取允许新的块14和15得以被写入至缓冲区中,如图4H所示,并且可从图4H中可以看出的是,与图4A相同的模式再次被实现,即,跳步模式已“绕回(wrap around)”,并且读取接下来的两个像素行(12T-15T和12B-15B),由此连续缓冲区地址可再次被读取。图5示意性地示出使用由去瓦缓冲区控制电路维持的写指针和读指针来指示有效缓冲区地址和无效(可用的)缓冲区地址,其中每个指针被限制为只能够增加(向图5左侧)并且读指针被限制为不能超过写指针。

图6示出使用去瓦缓冲区来存储非压缩图像数据的图像数据字的又一示例。需要注意的是,相对于图4A-H,图6的图示对应于跨帧宽度并且编号被示为对应于缓存区地址的像素数据的三个块行,而图4A-H的图示示出缓冲区地址位置和对应于像素位置的字母和编号。图6示出,针对第一行像素数据块,8个缓冲区地址(0-7)是如何被用于存储针对第一块的图像数据,接下来的8个连续缓冲区地址(8-15)是如何被用于存储针对当前块行中的第二块的图像数据,以此类推。从缓冲区地址的编号可看出,当第一像素行的图像帧要被读取时,则必须从缓冲区地址0、8、16、24等中读取。下一像素行从缓冲区地址1、9等中读取,依此类推,该第一块的最后像素行从缓冲区地址7、15、23、31等中读取。

现在参考图6中的块行2,可以看出,块行2的第一块已存储在前8个缓冲区地址中,这8个缓冲区地址由于第一块行的第一像素行的(部分)读取而被释放,即,缓冲区地址0、8、16、...、48、56,也就是说跳步是8。此模式继续,其中第二块行的第二块被写入缓冲区地址64、72、...、112、120。继续该模式,但对于这行的其他的块,需要注意的是,当所使用的缓冲区地址超过239时,缓冲区地址将会绕回,因为如在图6中的第一块行所示,在每个帧宽度块行中的图像数据字的数量为240。从图6中所示的第二块行的第一像素行可看出,为了读取对应于该第一像素行的像素数据,缓冲区地址0、64、128等必须被读取,也就是说,跳步现在是64。对于下一像素行,缓冲区地址8、72等必须被读取。再进行一个块行迭代,并且比较针对图6中的块行2和块行3所示的缓冲区地址编码,可以看出,块行2的第一像素行的读取释放了一序列的缓冲区地址,第三块行的第一块可被写入这些缓冲区地址,也就是在地址0、64、128、192、17、81、145和209处。需要注意的是,此处的绕回使得这个序列的第5个数据字被写入缓冲区地址17,而不是缓冲区地址256(192+64)中,即该缓冲区地址被计算为256-240+1,其中额外的1用于开始新的一行以及240为用于表示全帧宽度块行的图像字的数目(如图6的第一块行中可看出的)。还需要从图6示出的第三块行注意的是,该模式继续并且事实上图6中所示的第三块行的第二块开始于缓冲区地址33,即209+64-240。

图7根据一个实施例示出去瓦缓冲区的使用的又一示例,其中图7的上半部分是示出第一行像素块的像素表示,其中每8×8像素块由16个数据字表示。此外,在这个示例中需要注意的是,两个图像字被用来表示每个块的每个像素行。这会特别导致的结果是,在图7中下半部分(其示出缓冲区地址)中的行“第一次读取”中所示的缓冲区地址的序列是0、1、16、17、32等。在图7中的上半部分中的块行的最右侧的每个框中的数字239指示在每个所示出的像素行中存在240个像素。需要注意的是,此处用于每一块行的图像数据字数目与在去瓦缓冲区中存在的缓冲区地址的数目是相同的(480)。同样重要的是,需要注意提供用于寻址的绕回点的是用于块行的那些数目的图像数据字,不是在去瓦缓冲区中(最大)可用的那些数目的缓冲区地址。虽然去瓦缓冲区必须包括至少与存储一个块行所需的图像数据字相同数目的缓冲区地址,但是缓冲区的大小可超过此数目,但是并不需要。额外的存储容量不会被使用。

整体而言,可以看出,在第一块行被写入连续缓冲区地址之后,读取像素数据行(并且事实上,以及接着将再一块数据写入由这次读取所释放的缓冲区地址中)所需的跳步由B(N/B)R-(B-1)表示,其中R是块行编号,B是在块的每一像素行中的图像数据字的数目,以及N是用于每一块的图像数据字的数目。因此,例如参考图7,在N=16和B=2的情况下,跳步由2×(16/2)R-(2-1)给出,即2×(8)R-1,即,针对第一次读取/第二次写入等于15,针对第二次读取/第三次写入等于127。

图8根据一个实施例示意性示出去瓦控制电路38的配置。去瓦控制电路的整体控制是通过控制电路100维持的,该控制电路特别确定了每个数据字被写入去瓦缓冲区和从中读取出的缓冲区地址。在图8所示的去瓦控制电路38具有实现这种确定的两种机构,去瓦:第一种机构可被示为从控制电路100接收地址的位旋转电路102,该地址被示为具有动态部分104和静态部分106。该位旋转电路被配置为将位旋转应用至地址的动态部分104,以便“重组”该部分并生成新的地址108,该地址随后被用于在去瓦缓冲区中的访问(无论是读取还是写入)。所接收的地址的静态部分106不能被改变,但动态部分104的位在所生成的缓冲区地址108中被旋转。因此,例如地址序列为0、1、2、3……被位旋转电路102接收,位旋转电路所施加的重组操作通过旋转地址的位使得0位被移至第二位,并且由此“1”被转换为8,和“2”被转换为16,以此类推,则可生成结果地址序列,如0、8、16、24(例如在图6的实例中使用的)。静态部分106可被用于提供例如参照图7所讨论的缓冲区地址序列,在图7的示例中0位(最低有效位)则为静态部分,使得从连续输入地址序列(0、1、2、3等),通过将第一位移至第四位位置,得到结果缓冲区地址组0、1、16、17、32、33。

控制单元100还可以通过不同的机构生成缓冲区地址,该机构由图8中的地址计算单元110表示,其中该地址计算电路被设置为根据图9中所列出的函数执行要使用的针对要被寻址的缓冲区的地址生成。还需要注意的是,图9的地址计算可被广泛地使用,而图8的位重组需要地址空间,该地址空间为2的幂次方(power-of-two)。然而,如果地址空间不是2的幂次方,地址空间可以被细分成区域,并且位重组技术于是根据地址所在的区域被应用。

图8还示出去瓦控制电路38的控制单元100维持读指针112和写指针114(也参见图5),以便跟踪在去瓦缓冲区内的有效的和可用的缓冲区地址。需要注意的是,控制电路100可关于其生成的连续缓冲区地址以简单的线性方式维持读和写指针,但不关于由位旋转电路102或地址计算电路110生成的经修改的缓冲区地址以简单的线性方式维护读和写指针,从而简化了用于跟踪缓冲区地址的有效性的机构。

图10A根据一个实施例示出被用于压缩图像数据在外部存储器中的存储的有效载荷超级块的大小。在这个示例中,压缩格式为上述AFBC协议,其中在存储器中的缓冲区通常被分成两个缓冲区,标头缓冲区和主体(有效载荷)缓冲区。接口装置的解码器一次发布针对整个或一半超级块(在这个示例中因此可以是16×16或16×8个像素或可选的16×16或32×8个像素)的读取请求。存储器中的超级块的存储被紧凑打包,并且此外,由于每个经分组的超级块的大小是字节粒度的,这样很可能一个超级块的结尾和下一个超级块的开始位于在同一缓存行上。图10A示出64字节缓存行的示例,并且可从中看出,超级块之间的缓存行的共享发生在以字节192、512和704开始的缓存行。图10A示出有效载荷超级块的通常大小为几百个字节。因此,参照图10A的例示,可以看出,有两种类型的64字节的字,一种是仅仅将被使用一次的字,另一种是将被使用多次的字。需要注意的是,图10A的示例仅示出将被使用两次的64字节的字,也就是说,64字节的字在两个超级块之间是共享的,但原则上给定的缓存行可在多于两个的超级块之间共享。

图10B根据一个实施例示意性地示出有效载荷缓存及缓冲区60(参照图2)。尤其是,需要注意的是,为了避免两次读取共享字,存储容量被分为两部分:面向64字节的缓存120和“一次性”存储缓冲区122。有效载荷缓存及缓冲区60还包括在图10B的示意性的例示中的缓存控制电路124和未决请求控制电路126。当有效载荷请求被有效载荷缓存及缓冲区60接收时,首先该请求在未决请求控制电路126内被视为待处理,并且随后进一步传送至缓存控制电路124,该缓存控制电路在缓存120中查找是否有效载荷数据的第一字和最后一字中的一者已经存储在缓存中。此外,缓存120中的每条相关缓存存储行都提供有引用计数器(R)128,该引用计数器在当使用此缓存行的未决请求被接收到时递增。如果有效载荷读取请求的第一和最后一字中的一者在缓存中命中,则缓存控制电路124修改读请求以移除这些命中的字,并且有效载荷读取请求的剩余部分接着被转发以从外部存储器中的有效载荷中进行撷取。对于所请求的有效载荷数据的“中间”部分(即除了第一和最后一字的部分),在“一次性”存储缓冲区122中的连续存储器区域也由缓存控制电路124分配。

当所请求的有效载荷数据从外部存储器返回时,“中间”部分被存储在“一次性”存储缓冲区122的所分配区域中,并且如果需要,则最初的有效载荷请求的第一和最后一字中的一者或者全部两者都被存储在缓存存储区120中。当第一字和最后一字在缓存中命中且中间部分全部从一次性存储缓冲区中被读取时,则认为有效载荷读取请求被满足了。接着引用计数器128被递减,且一次性存储缓冲区中的所分配的存储区域被释放。未决请求控制电路126负责管理这个过程。例如,使用图10A的64字节的缓存行的示例,为了能够保持用于四个超级块的有效载荷数据,缓存存储区120被配置为能够存储8个64字节行,而一次性存储缓冲区122被配置为能够存储64个64字节的字。然而,有利的是,该电路一定要与缓存存储区120相关联地被提供,使该电路成为“缓存”,而不仅仅是仅需要与较小缓存存储区120以及较大的一次性存储缓冲区122相关联地被提供的缓冲区(即,能够使得缓存查找得以执行的缓冲区,等等)。整体而言,提供有效载荷缓存及缓冲区60的存储容量所需的电路小于在所有72行均为缓存行的情况下的电路。

图11A示出根据一个实施例的当操作例如如上参考图10B所描述的有效载荷的缓存和缓冲区时的方法中执行的步骤序列。该流程开始于步骤130,在此处有效载荷读取请求被接收。在步骤132处,在缓存存储区中查找过程被执行以查找有效载荷读取请求的第一字和最后一字,并且针对相应的缓存行的引用计数器递增。接着在步骤134处,判断第一字是否在第一缓存行中的字节0处以及整个有效载荷读取请求的大小是否大于缓存行大小。如果不是,那么流程继续进行至步骤136,在此处该缓存中对应于有效载荷读取请求的第一缓存行被分配,因为这表明有效载荷超级块的开始是在共享缓存行中。同样,在步骤138中,判断有效载荷读取请求中的最后一字是否在相应缓存行中的最后一字节处以及整个读取请求的大小是否大于缓存行大小。如果不是,那么流程继续进行至步骤140,在此处在缓存中的最后一条缓存行被分配,因为这表明有效载荷超级块的结尾是在共享缓存行中。接着在步骤142处,判断针对第一或最后一字的缓存命中是否被发现。如果存在命中,流程继续进行至步骤144,在此处读取请求被修改,以移除该一个或多个缓存行命中。在步骤146处,请求的“中间”部分(即,除去第一和最后一字)被分配到一次性存储缓冲区中。然后在步骤148处,有效载荷读取请求(可能是经修改过的)被传送至外部存储器。

图11B现在示出一个示例当有效载荷数据从存储器中被返回时在图11A中的步骤之后的步骤序列。当有效载荷数据从存储器中被返回发生时(步骤150),则在步骤152处有效载荷数据的“中间”部分被存储在缓冲区中的所分配的部分中。在步骤154处,有效载荷数据的任何其它部分,即未在缓冲区分配存储区的部分,被存储在缓存中。换句话说,被发现为共享缓存行的部分的第一字或最后一字将被存储在缓存中,但是被确定不是共享缓存行的部分的第一字或最后一字已被分配到存储缓冲区中,并且在步骤152处时就已被存储至所分配的存储缓冲区中。在这个意义上应该理解的是,在步骤152处所提到的“中间”部分实际上可能包括所有的有效载荷数据,或者是因为整个有效载荷读取请求仅包括不能被共享的缓存,或者是因为第一和最后一字线已经在缓存中命中,因此在步骤150处只有有效载荷读取请求中仅应用于一个有效载荷块的部分被返回。随着缓存存储区和一次性缓冲区由此被填充,在步骤156处判断读取请求的第一字和最后一字是否已在缓存中命中以及“中间”部分是否已被完全读取。如果不为真,则流程在此等待,但是一旦为真,读取请求被认为是得到满足,并在步骤158处缓存中的第一字和最后字的引用计数器递减,且在缓冲区中所分配的存储区被释放。

图12示意性地示出一种构成了图像数据处理系统180的一部分的不同的接口装置164。在该示例实施例中,相机160将原始图像数据传送至图像处理器162,该图像处理器执行各种图像处理操作,以产生将被存储在存储器中的(未压缩的)图像数据组。该未压缩图像数据组被传送至接口装置164,该接口装置进而将图像数据压缩成压缩图像数据组并将其存储在外部存储器166中,并且在图12所示的具体示例中接口装置通过将压缩标头存储在压缩标头缓冲区168中以及将压缩主体(有效载荷)存储在压缩主体缓冲区170中来实现存储。图像处理器162以线性寻址方案来查询图像,而在存储器166中存储的压缩数据在此以基于块的格式被存储。接口装置164使得图像处理器能够使用线性寻址方案发送未压缩图像数据并使存储器166能够以基于块的寻址方案处理压缩图像数据。

接口装置164的更多细节在图13中示出。经由AXI从接口182,未压缩的图像数据从图像处理器162中被接收,并且被在布瓦器(tiler)186(还包括用于在线性寻址方案和基于块的寻址之间映射的地址转换电路192)的控制下被暂时地存储在布瓦器SRAM 184中,这些组件构成存储器映射接口188的部分。布瓦器接着将数据传送至超级块编码器190,该超级块编码器包括超级块编码器核心194。超级块编码器核心194使用其重新排序SRAM 196和4×4编码器核心198执行图像数据的压缩(编码)。由此过程生成的经编码的标头(或其部分)被标头电路200处理,而所生成的压缩有效载荷数据被传送至有效载荷先入先出(FIFO)202。标头电路200还访问临时标头缓冲区204,该临时标头缓冲区被提供以使编码能够以“块分割模式”发生,在“块分割模式”中一次只有一半超级块被提供并被编码。一次只有半块被编码意味着最初超级块有效载荷的一半以及相应的标头的一半被生成。然而,尽管有效载荷数据可直接经由有效载荷FIFO 202被写出,但标头必须以全标头单元(在图13所示的AFBC编码器的示例中为大小16字节的标头块)来生成。使用临时标头缓冲区204可使得全标头单元在该全标头单元被标头电路200传送至标头FIFO 206(为了被写出至外部存储器166)之前被累加。有效载荷FIFO 202和标头FIFO 206中的数据写出至外部存储器166是经由AXI主接口210的AXI写模块208发生的。这种设置意味着,针对有效载荷和标头数据的数据流可在较长的突发(burst)中被写出至外部存储器166,这样会比如下方式更有效,例如利用写入选通(write strobes)将立即生成的部分标头写出。

通过一些实施例的整体概要的方式,接口装置及其操作的方法被提供。该接口装置在第一总线接口处接收使用第一寻址方案的非压缩图像数据读取请求,并从第二总线接口发送使用第二寻址方案的压缩图像数据读取请求。地址转换电路在第一寻址方案和第二寻址方案之间转换。解码电路将经由第二总线接口接收到的压缩图像数据组解码以生成非压缩图像数据组,该非压缩图像数据组随后将经由第一总线接口被发送。因此,第二寻址方案和图像数据压缩的使用对于非压缩图像数据读取请求的源是透明的,并且因此该接口装置可被用于连接使用不同寻址方案和图像数据格式的设备,且无需对其中任一者进行修改。

在本申请中,词语“配置为”或“设置为”被用于表示装置的元件具有能够执行所定义的操作的配置。在本文中,“配置”是指硬件或软件的互连的设置或方式。例如,装置可具有提供所定义的操作的专用硬件或处理器或其他可被编程以执行该功能的处理设备。“配置为”或“设置为”并不意味着该装置元件为了提供所定义的操作需要以任何方式被改变。

虽然说明性的实施例已经参照附图在此进行了详细地描述,但是应当理解的是权利要求并不限制于这些确切的实施例,并且在不脱离本发明权利要求的范围和精神的情况下,本领域普通技术人员给能够预想到多种改变、添加和改动。例如,独立权利要求的特征可与从属权利要求的特征做出多种组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1