访问帧缓存器的方法、处理访问单元的方法及装置与流程

文档序号:15981840发布日期:2018-11-17 00:25阅读:176来源:国知局

本申请要求如下申请的优先权:在2017年04月25日提出名称为“memoryaccessefficiencyoptimizationforframebuffercompression”的第62/489,588号的美国临时专利申请和在2017年10月17日提出名称为“framebuffercompressionwithdynamicunitsize”的第15/786,240号的美国专利申请,其整体以引用方式并入本文中。

本发明的所公开实施例涉及帧处理技术,且更具体而言,涉及一种访问帧缓存器的方法、处理访问单元的方法及装置。

背景技术

此处提供的背景技术描述用作一般展现本发明的内容的目的。目前署名发明人的工作内容,既包含在本背景技术部分中所描述的工作的内容,也包含在申请时未被认为是现有技术的说明书的各方面,这些既不明确也不暗示地被承认是本发明的现有技术。

多媒体应用,例如视频编码和解码,在视频处理核与帧存储器之间需要大量的数据传输。例如,视频编解码器可以采用数据传输密集型编解码工具,例如双向预测、交错视频和多个参考帧,其将大量数据引用引入到帧存储器。在某些多媒体应用中,存储器带宽需求可以是处于5gb/s到30gb/s的范围内。高存储器带宽需求导致昂贵的存储器系统以及高功率消耗,因此应减小存储器带宽。



技术实现要素:

有鉴于此,本发明提供了一种访问帧缓存器的方法、处理访问单元的方法及装置,以有效地降低存储器带宽,降低存储器系统成本。

本发明的方面提供一种处理访问单元的方法,其根据各自已压缩访问单元的压缩率和/或位置。因此,用比单独存储并读取各自的已压缩访问单元更高的存储器访问效率,存储在帧缓存器中的得到的合并访问单元可以后续被访问。本方法可以包括:接收对应于自图像或者视频帧分割的原始访问单元序列且对应于帧缓存器中的存储器空间序列的已压缩访问单元序列;基于已压缩访问单元序列的压缩率和/或位置,确定包括至少两个连续的已压缩访问单元的合并访问单元。相比于将至少两个连续的已压缩访问单元存储在存储器空间序列中的多个相应存储器空间中,合并访问单元以存储在帧缓存器中,在至少两个连续的已压缩访问单元之间具有减少间隙的方式存储在帧缓存器中。

在一个实施例中,帧缓存器包括由多个突发分界线所分割且对应于存储器空间序列的突发部分序列;以及本方法还包括:将合并访问单元存储到帧缓存器中,其中合并访问单元与帧缓存器的突发分界线对齐,并且合并访问单元的多个成员相互相邻。在一个实施例中,本方法还可包括:当连续的已压缩访问单元集整体具有大于预选择百分比的压缩率时,确定将连续的已压缩访问单元集合并成合并访问单元。在另一实施例中,本方法还可包括:确定包括可被包含在预选择数量的连续突发部分中的最大数量的连续的已压缩访问单元的合并访问单元。在又一实施例中,本方法还可包括:避免将属于图像或者视频帧中不同方块的多个已压缩访问单元排列在同一合并访问单元中。在一个实施例中,本方法还可包括:避免将与方块或者图像或视频帧的第一分界线相邻的第一已压缩访问单元和与方块或者图像或视频帧的第二分界线相邻的第二已压缩访问单元排列在同一合并访问单元中,其中第二分界线与第一分界线相对设置。

本方法的实施例可以包括:接收更新的已压缩访问单元,已更新的已压缩访问单元具有比待更新的已压缩访问单元的更大尺寸,待更新的已压缩访问单元属于合并访问单元并与帧缓存器中的第一突发部分的突发分界线对齐;以及将已更新的已压缩访问单元存储在第二突发部分中的起始地址处,其中第二突发部分是突发部分序列中先前相邻突发部分。

在一个实施例中,本方法还包括:生成合并信息序列,其中每个合并信息对应于已压缩访问单元或者合并访问单元,且表示已压缩访问单元序列如何被合并成多个合并访问单元,使得在已压缩访问单元被请求时,包括所请求的已压缩访问单元的合并访问单元可根据合并信息被确定。合并信息由分配给每个已压缩访问单元的合并使能标志;相对于每个已压缩访问单元的标识地址的每个已压缩访问单元的地址偏移;以及对应于合并访问单元的多个成员的多个未压缩访问单元的总尺寸中的一个表示。

在一个实施例中,每个已压缩访问单元包括至少两个已压缩编码单元,每个已压缩编码单元具有一长度。因此,在一个示例中,本方法还可包括:生成编码单元头序列,其中每个编码单元头对应于已压缩编码单元且包括各自的已压缩编码单元的长度信息。在另一示例中,本方法还可包括:生成合并头序列,每个合并头对应于已压缩访问单元。每个合并头可以包括至少两个字段,每个字段存储有各自已编码访问单元中的各自的至少两个已压缩编码单元的长度信息,以及又一字段,其存储有相对于各自已压缩访问单元的标识地址的各自已压缩访问单元的地址偏移。此外,用多个可配置起始地址,已压缩访问单元序列和合并头序列单独被存储。

在不同实施例中,帧缓存器是随机访问存储器、静态随机访问存储器、动态随机访问存储器、异步动态随机访问存储器、同步动态随机访问存储器、双数据率同步动态随机访问存储器和闪存中的一个。

本发明的方面提供了一种访问帧缓存器的方法。本方法可以包括:接收自帧缓存器读取已压缩访问单元的请求,帧缓存器存储有部分被合并成多个合并访问单元的已压缩访问单元序列,以及对应于每个已压缩访问单元或者合并访问单元且表示多个已压缩访问单元如何被合并成多个合并访问单元的合并信息序列;根据与所请求的已压缩访问单元相关的合并信息,确定包括所请求的已压缩访问单元的合并访问单元;以及自帧缓存器读取包括所请求的已压缩访问单元的所确定的合并访问单元中的已压缩数据。

本方法的实施例还可以包括:当合并访问单元的尺寸大于阈值时,自帧缓存器读取所请求的访问单元。在一个实施例中,帧缓存器包括由多个突发分界线所分割的突发部分序列,多个合并访问单元中的每个与帧缓存器的突发分界线对齐,以及每个合并访问单元的多个成员相互相邻。

在一个实施例中,帧缓存器读取与所请求的已压缩访问单元相关的合并信息包括读取对应于所请求的已压缩访问单元以及已压缩访问单元序列中与所请求的已压缩访问单元相邻的多个已压缩访问单元的合并信息,以及读取对应于包括所请求的已压缩访问单元的合并访问单元的合并信息中的一个。

本发明的方面提供一种处理访问单元的装置,其包括电路,用于:接收对应于自图像或者视频帧分割的原始访问单元序列且对应于帧缓存器中的存储器空间序列的已压缩访问单元序列;以及基于已压缩访问单元序列的压缩率和/或位置,确定包括至少两个连续的已压缩访问单元的合并访问单元。相比于将至少两个连续的已压缩访问单元存储在存储器空间序列中的多个相应存储器空间中,合并访问单元以在至少两个连续的已压缩访问单元之间具有减少间隙的方式存储在帧缓存器中。

本发明通过基于已压缩访问单元的压缩率和/或位置,将已压缩访问单元进行合并,从而确定合并访问单元,进而降低存储器带宽,降低存储器系统成本。

附图说明

将结合下面的附图对被提供作为示例的本发明的各种实施例进行详细描述,其中相同的符号表示相同的元件,以及其中:

图1是根据本发明实施例的视频编解码系统;

图2是根据本发明实施例的一访问单元合并示例;

图3是根据本发明实施例的另一访问单元合并示例;

图4是根据本发明实施例的访问单元序列、帧缓存器突发部分序列和合并信息表之间的映射关系;

图5是根据本发明实施例的第一合并信息格式;

图6是根据本发明实施例的第二合并信息格式;

图7是根据本发明实施例的第三合并信息格式;

图8是根据本发明实施例的更新包含在合并访问单元中的已压缩访问单元的示例;

图9是根据本发明实施例的访问单元合并流程的示例;

图10a-图10b是根据本发明实施例的用突发访问来读取已压缩访问单元的示例;

图11是根据本发明实施例的帧缓存器格式的示例;

图12是根据本发明实施例的第二帧缓存器格式的示例;

图13是根据本发明实施例的将已压缩访问单元合并成合并访问单元的流程;以及

图14是根据本发明实施例的自包括合并访问单元的帧缓存器读取已压缩访问单元。

具体实施方式

图1显示了根据本发明实施例的视频编解码系统100。视频编解码系统100可以包括视频编解码器110和帧缓存器120。视频编解码器110可以包括压缩器112、写入器114、去压缩器116和读取器118。如图1所示,这些组件耦接在一起。视频编解码器110可以用于根据视频编解码标准执行编码流程或者解码流程,例如高效视频编解码(highefficiencyvideocoding,hevc)/h.265标准。因此,视频编解码器可以采用存储在帧缓存器120中的参考帧。

在一个示例中,为了节省存储器访问带宽,在被存储到帧缓存器120之前,参考帧可以先被压缩。因此,压缩器112和去压缩器116可以被使用,以分别执行压缩功能和去压缩功能。例如,参考帧可以被分割成访问单元序列,每个访问单元包括像素块,例如,16x4像素块。当被压缩时或者在存储器访问操作期间,每个访问单元可以作为整体被处理。在写入流程期间,压缩器112可以接收访问单元,其称为原始访问单元,并且执行压缩流程以生成可以顺序存储到帧缓存器120中的已压缩访问单元。相反地,在读取流程期间,去压缩器116可以接收自帧缓存器120获得的已压缩访问单元,并执行去压缩流程以恢复原始访问单元。在不同实施例中,不同的无损或者有损压缩方法或者算法可以在压缩器112或者去压缩器116处使用。

写入器114可以用于将已压缩访问单元存储到帧缓存器120。例如,写入器114可以指定存储器地址,并请求帧缓存器120以将一个或多个已压缩访问单元存储到此指定地址。具体地,根据本发明的一方面,写入器114可以使用访问单元合并方案,以提高存储器访问效率。在一个示例中,用在时间周期内自帧缓存器读取或者写入到帧缓存器的大量数据,存储器效率可以被测量。例如,在将已压缩单元集写入到帧缓存器120之前,写入器114可以用于执行访问单元合并流程。

在此流程期间,基于各自的已压缩访问单元的压缩率,写入器114可以判断是否且如何将至少两个已压缩访问单元合并成合并访问单元。随后,相比于单独存储并读取已压缩访问单元,合并访问单元可以更快地自帧缓存器120读取。另外,写入器114可以因此生成合并信息,其表示访问单元集如何被合并,使得合并访问单元的成员访问单元是可访问的。此后,根据合并决策,写入器114可以将合并访问单元或者非合并访问单元写入到帧缓存器120。合并信息也可以被存储到帧缓存器120中。

读取器114可以用于自帧缓存器120获取合并访问单元或者非合并访问单元。具体地,当读取访问单元,读取器114可以自适应地确定自帧缓存器120一起读取目标访问单元的多个相邻访问单元。

帧缓存器120可以用于存储合并访问单元与非合并访问单元122和合并信息124。帧缓存器120可以是不同类型的存储器,例如,随机访问存储器(randomaccessmemory,ram)、静态ram(staticram,sram)、动态ram(dynamicram,dram)、异步dram、同步dram(synchronousdram,sdram)、双数据速率sdram(doubledataratesdram,ddrsdram)、闪存等。此外,帧缓存器120可以包括存储器控制器(未示出),其自视频编解码器接收请求,并发出命令以控制写入存储器访问操作或者读取存储器访问操作。

另外,帧缓存器120可以在帧缓存器120的逻辑存储器空间中具有分界线,例如,在每128字节、256字节或者512字节处。相对于在两个分界线内存储相同的数据,访问穿过这些分界线而存储的数据可能效率低。例如,分界线可以与帧缓存器120的配置相关,例如,信道映射配置、库(bank)映射配置或者突发模式配置。例如,帧缓存器120可以被配置为以突发模式进行操作。当帧缓存器120以突发模式进行操作时,在一个突发访问期间,存储在连续逻辑地址段(segment)处的数据可以被获取,其比以非突发模式逐个地址地获取数据更有效。在一个示例中,对应于连续逻辑地址段的存储器空间的尺寸可以由用于帧缓存器120的突发长度确定。因此,逻辑空间中的帧缓存器120可以被分割成段序列,并且这些段序列的边缘可以形成帧缓存器120的分界线。这样,帧缓存器120中的分界线称为突发分界线,而分界线之间的段称为突发部分。

因此,在一个示例中,原始访问单元的尺寸用于匹配帧缓存器120中的突发部分的尺寸,使得对帧缓存器120的存储器访问可以受益于由突发访问模式所引起的高存储器访问效率。例如,原始访问单元的尺寸可以被配置为等于突发部分的尺寸。这样,每个已压缩访问单元可以被存储在突发部分内,甚至于具有0压缩率的原始访问单元。这样,视频帧中的已压缩访问单元序列可以对应于存储器空间序列,并且每个这类存储器空间可以对应于突发部分。

图2显示了根据本发明实施例的一访问单元合并示例。如左边所示,是两个相邻原始访问单元,即211和212。原始访问单元211和原始访问单元212可以对应于参考帧中的两个相邻像素块。如图所示,每个原始访问单元,即211或者212,包括4个字,每个字是16字节长。在压缩器112处的压缩流程之后,原始访问单元211和原始访问单元212可以分别被压缩成两个已压缩访问单元,即221和222,每个具有2个字的减小尺寸。已压缩访问单元221的最后一个字220由已压缩数据部分填充。随后,已压缩访问单元221和已压缩访问单元222可以被存储到帧缓存器120中。

如图2的右边所示,是两个存储器地图,即230和240,其对应于用于放置已压缩访问单元221和已压缩访问单元222的两种不同方法。如存储器地图230和存储器地图240上所示,帧缓存器120可以被配置有突发部分,每个具有4个字的尺寸(或者长度),例如,突发部分231-232和突发部分241-242。具体地,在图2的示例中,突发部分的尺寸被配置为等于原始访问单元211和原始访问单元212的尺寸。然而,在其他示例中,帧缓存器的突发部分可以小于原始访问单元的尺寸。在如存储器地图230所示的第一放置方法中,已压缩访问单元221和已压缩访问单元222被分布在两个相邻存储器空间中,即突发部分231和突发部分232,并与各自突发部分231-232的上突发分界线对齐。在这种排列下,用两个突发访问,获取已压缩访问单元221和已压缩访问单元222可以被完成。如图所示,在已压缩访问单元221和已压缩访问单元222之间可以存在间隙251。

相对地,在如存储器地图240所示的第二放置方法中,已压缩访问单元221和已压缩访问单元222被合并成合并访问单元223,并被放置在同一突发部分241内。仅用一个突发访问,获取合并访问单元223可以被完成,其比第一放置方法中的更快。具体地,对比于存储器230中的排列,已压缩访问单元222被向上移动2个字,变得与已压缩访问单元221相邻。因此,间隙251已减少到0,并且在已压缩访问单元221和已压缩访问单元222之间不存在以字级的间隙。另外,合并访问单元223与突发部分241的上突发分界线对齐。此外,每个已压缩访问单元221或者222是字对齐的,并且在合并访问单元223的每个字中,已压缩访问单元221和已压缩访问单元222的已压缩数据相互不混合。例如,存储器地图230和存储器地图240上的字可以具有等于可以通过帧缓存器120的数据总线上的一个数据传输自帧缓存器120读取的大量数据的尺寸。因此,相比于将相同数据分离成不同字的访问,以字对齐的方式存储数据可以使访问单元222的随机访问具有更高效率。在可选示例中,虽然其可能增加合并信息的尺寸,已压缩访问单元221和已压缩访问单元222之间的间隙也可以以字节级或者比特级被减小。

图3显示了根据本发明实施例的另一访问单元合并示例。如图3的左边所示,是四个相邻原始访问单元,即311-314。此四个原始访问单元311-314可以对应于参考帧中四个相邻像素块。每个原始访问单元311-314包括4个字,每个字是16字节长。在压缩器112处的压缩流程之后,四个原始访问单元311-314可以分别被压缩成四个已压缩访问单元321-324,每个分别具有2个字、1个字、3个字和2个字的减小尺寸。随后,已压缩访问单元321-324可以被合并,并被存储到帧缓存器120中,帧缓存器120被配置有具有4个字的尺寸的突发部分(例如突发部分331-334)。因此,用两个突发访问,可以完成四个已压缩访问单元321-324的获取。相对于将四个访问单元321-324分布到四个突发部分331-334,两个突发访问可以被节省。如图所示,假设四个访问单元321-324被存储在四个相应突发部分,而不以与存储器地图230上所示的情景相似的方式进行合并,在四个访问单元321-324之间可以存在间隙341-344。合并四个访问单元321-324可以将间隙341-344减小到0。

如图2和图3示例中所示的访问单元合并方法可以有利于采用缓存机制的应用。例如,在编解码器110处执行的运动估计流程期间,搜索窗口内的参考帧的区域可以被搜索到以查找用于正在处理的当前块的参考块。在此示例中,当搜索窗口内的一个访问单元先被请求时,用突发访问来获取包括与请求访问单元相邻的已压缩访问单元组将提高存储器访问效率。

虽然在图2和图3的示例中,合并多个已压缩访问单元以生成随后整体被访问的合并访问单元提高了存储器访问效率,但是盲合并已压缩访问单元而不考虑压缩率或者其他因素不会提高帧缓存器120的性能。例如,对于对合并访问单元中的具体已压缩访问单元的随机访问,在突发访问期间,合并访问单元中的未请求数据可以与请求访问单元一起从帧缓存器120中读出。未请求数据消耗额外的存储器带宽,导致用于读取合并访问单元的代价。合并访问单元的尺寸越大,代价越大。

又例如,当合并访问单元的压缩率(被定义为对应于合并访问单元的成员的原始访问单元的总尺寸与合并访问的尺寸的比例)不是足够高时,降低访问时间的好处不能被实现。例如,在图2的示例中,假设合并访问单元223的压缩率小于50%,合并访问单元223将占用突发部分241和突发部分242。因此,读取合并访问单元223可能花费两个突发访问,并没有提高存储器效率。

因此,在一个示例中,写入器114可以用于根据已压缩访问单元集的压缩率判断是否将已压缩合并单元集合并成合并访问单元。当已压缩访问单元集的压缩率足够高时,合并访问单元可以被生成。考虑下的已压缩访问单元集的数量可以是预选择数量,例如2、3、4等。

例如,在接收已压缩访问单元集之后,写入器114可以先计算包括已压缩访问单元集的合并访问单元的压缩率。写入器114可以用于在合并访问单元具有大于预选择阈值的压缩率,例如50%时,确定对已压缩访问单元集进行合并。相反地,当合并访问单元具有压缩率低于预选择阈值时,已压缩访问单元集不被合并。这样,未请求数据代价可以被控制成低于特定水平,而基于突发访问来提高存储器效率可以被实现。

图4显示了根据本发明实施例的访问单元序列410、帧缓存器存储器空间序列(即突发部分420)和合并信息表430之间的映射关系。访问单元410可以对应于参考帧中的块序列,并且因此可以被排序以形成序列。例如,每个访问单元可以具有表示各自访问单元在访问单元序列410中的位置的索引。假设由图2中的存储器地图230所表示的分布放置方法被使用,在被压缩之后,访问单元410可以被顺序存储到帧缓存器突发部分序列420中。这样,每个原始访问单元或者已压缩访问单元可以对应于突发部分。基于此映射关系,当已压缩访问单元将被访问时,例如,基于已压缩访问单元的索引,包括已压缩访问单元的突发部分可以被定位出。存储已压缩访问单元的突发部分(或者存储器空间)的起始地址可以称为此已压缩访问单元的标识地址(homeaddress)。

如图2中的存储器地图240上所示,当访问单元合并方案被使用时,合并访问单元223的已压缩访问单元222可以远离其标识地址被移动到与已压缩访问单元221相邻的新地址(称为合并地址)。标识地址与合并地址之间的地址偏移(存储器地图240上的2个字)可以包括在合并信息中,其可以用于在帧缓存器120中放置已压缩访问单元224。

合并信息表430可以被存储在帧缓存器120中。合并信息表430可以包括合并信息条目序列。在访问单元合并流程期间,对应于每个合并信息条目的合并信息可以在写入器114处被生成,并且被存储到帧缓存器120中。合并信息可以表示已压缩访问单元是否与其他已压缩访问单元合并,以及已压缩访问单元如何被合并。合并信息可以用于确定已压缩访问单元或者合并访问单元在帧缓存器120中的位置,从而使得每个已压缩访问单元或者合并访问单元可访问。在不同示例中,合并信息可以具有不同合并信息格式。

如图所示,在一个示例中,合并信息表430可以在每行中包括一条目。每个条目可以被映射到访问单元。基于此映射关系,条目在合并信息表中的位置可以基于访问单元410的索引被确定。例如,在读取存储器访问期间,读取器118可以先检测合并信息表以确定已压缩访问单元在帧缓存器120中的位置。随后,读取器118可以获取目标访问单元,或者目标访问单元与一个合并访问单元中与目标访问单元相邻的其他访问单元。在可选示例中,如图7中的示例所示,合并信息的条目可以对应于合并访问单元,而不是已压缩访问单元。

图5显示了根据本发明实施例的合并信息格式的第一示例。在图5的示例中,合并使能标志用于表示已压缩访问单元是否被合并且移动到合并访问单元中。合并使能标志可以由一个或多个比特表示。具体地,图5所示为已压缩访问单元集510、突发部分组520和合并信息表530。如图所示,已压缩访问单元511和已压缩访问单元512被合并到合并访问单元521中。因此,0标志被分配给合并信息表530的第一条目531,其对应于已压缩访问单元511,1标志被分配给第二条目532,其对应于已压缩访问单元512。0标志可以表示已压缩访问单元511驻留在已压缩访问单元511的标识地址处,而1标志可以表示已压缩访问单元512已自已压缩访问单元512的标识地址被移动到与已压缩访问单元521相邻的位置。

已压缩访问单元513不与其他已压缩合并单元合并,并驻留在其标识地址处。因此,0标志可以被分配给第三条目533。已压缩访问单元514-516被合并到合并访问单元523。因此,0标志可以被分配给第四条目534,而1标志可以被分配给第五条目535和第六条目536。

图6显示了根据本发明实施例的合并信息格式的第二示例。在图6的示例中,地址偏移用于表示已压缩访问单元相对于其标识地址已被移动的距离。具体地,图6所示为已压缩访问单元集610、突发部分组620和合并信息表630。三个已压缩访问单元611-613被合并到合并访问单元621。已压缩访问单元612被向上移动2个字,而已压缩访问单元615被向上移动5个字。因此,三个地址偏移,即0、-2和-5被分配给合并信息表630的条目631-条目633,其分别对应于已压缩访问单元611-已访问压缩单元613。每个地址偏移可以表示已压缩访问单元的合并地址与标识地址之间的距离。

在图6的示例中,字数用作合并信息表630中的测量以表示地址偏移。在一个示例中,在可以等于存储器的存储器总线宽度的突发访问的节拍(beat)期间,一个字可以对应于自存储器读取的比特的数量。然而,在可选示例中,不同于图6的其他测量可以被使用,例如字节或者比特。

图7显示了根据本发明实施例的合并信息格式的第三示例。在图7的示例中,被合并到合并访问单元的原始访问单元的尺寸可以用于表示多少个已压缩访问单元被包括在合并访问单元中。具体地,图7所示为已压缩访问单元集710、突发部分组720和合并信息表730。已压缩访问单元集710可以对应于原始访问单元集,每个具有4个字的尺寸。已压缩访问单元711-已压缩访问单元714被合并到合并访问单元721中,而已压缩访问单元715-已压缩访问单元716被合并到合并访问单元722。

合并信息表730可以包括两个条目731-732,每个对应于两个合并访问单元721和合并访问单元722中的一个。具体地,第一条目731可以包括对应于被合并到合并访问单元721的已压缩访问单元711-714的原始访问单元的总尺寸(16个字)。同样地,第二条目732可以包括对应于被合并到合并访问单元722的已压缩访问单元715-716的原始访问单元的总尺寸(8个字)。相反地,已压缩访问单元717没有与其他已压缩访问单元合并。因此,4个字的尺寸可以被包括在第三条目733中。

响应于用于具体已压缩访问单元的请求,读取器118可以查阅(consult)合并信息表,以确定目标已压缩访问单元是否与相邻已压缩访问单元进行合并,并进一步确定包括目标已压缩访问单元和与目标已压缩访问单元相邻的其他已压缩访问单元的一个或多个连续突发部分的地址。随后,用突发访问,一个或多个突发部分可以被访问。

在可选示例中,额外信息可以被包括在合并信息表中,例如每个已压缩访问单元的尺寸。因此,包括在合并访问单元中的已压缩访问单元可以是单独可访问的,例如,对于图5的示例和图7的示例。对于图6的示例,基于地址偏移,合并访问单元的每个成员是可访问的。读取器118可以因此获得目标已访问单元,而无需读取各自突发部分中的所有数据。

图8显示了根据本发明实施例的更新包括在合并访问单元813中的已压缩访问单元811的示例。如图8的左边所示,是突发部分810,其包括合并访问单元813。合并访问单元813可以包括已压缩访问单元811和已压缩访问单元812。在一个示例中,对应于已压缩访问单元811的原始访问单元中的像素被更新,随后,已更新访问单元821在压缩器112处被生成。例如,对应于已压缩访问单元811和已压缩访问单元812的两个原始访问单元属于一个图像。然而,此两个原始访问单元可以属于被单独处理的两个单独的图像区域,例如,两个单独的方块(tile)。一个方块可以是根据hevc标准或者基于方块图像处理方法而分割的图像区域。这样,已更新已压缩访问单元821可以被生成为同一方块上多路处理(multiple-passprocessing)的结果。

为了将已更新访问单元821写入到帧缓存器中,写入器114可以先检测合并信息表,例如图6中的合并信息表630。因此,写入器114可以检测到原始访问单元811具有比已更新访问单元821的尺寸(2个字)的更小尺寸(1个字)。另外,如图8所示,原始访问单元811位于突发部分810的开端处,在相邻突发部分830的尾端处存在可用空间。随后,写入器114可以改变合并信息表。例如,写入器可以将对应于原始已压缩访问单元811的地址偏移自0改变到-1。随后,如图8所示,写入器114可以将已更新已压缩访问单元821存储到由合并信息表表示的地址。这样,已压缩访问单元811可以被更新,而没有将相邻已压缩合并单元812从帧缓存器120中读出,以及没有将包括已压缩访问单元821和已压缩访问单元812的已更新合并单元重新写入。

在一些示例中,写入器114可以用于根据已压缩访问单元集在视频帧中的位置判断是否将已压缩访问单元集组合成合并访问单元。在一个示例中,两个连续已压缩访问单元可以属于两个相邻方块,写入器114可以决定不将属于不同方块的这两个已压缩访问单元放置在同一合并单元中。这样,可以避免单独更新同一合并访问单元的成员已压缩访问单元。另外,属于不同方块的已压缩访问单元相互之间具有更小关联。因此,避免将属于不同方块的已压缩访问单元存储在合并访问单元中不会影响存储器访问效率。

在可选示例中,写入器114可以避免将位于方块或者视频帧的第一分界线处的已压缩访问单元与位于相对于第一分界线的方块或视频帧的第二分界线处的另一已压缩访问单元进行合并。例如,写入器114可以接收根据光栅扫描顺序进行排序的已压缩访问单元集,例如,在方块或视频帧中,从左到右且从上到下。已压缩访问单元集可以包括第一扫描行中与右方块或者视频帧分界线相邻的第一已压缩访问单元,以及在第一扫描行下的第二扫描行中左方块或视频帧分界线相邻的第二已压缩访问单元。因为第一已压缩访问单元和第二已压缩访问单元中的像素数据具有更少机会被一起处理,所以当访问包括这两个单元的合并访问单元时,合并这两个单元将导致未请求数据代价。因此,写入器114可以决定不合并已压缩访问单元集。

图9显示了根据本发明实施例的访问单元合并流程900。在本流程900期间,写入器114可以根据已压缩访问单元的压缩率合并已压缩访问单元。例如,已压缩访问单元的越高压缩率导致已压缩访问单元的越小尺寸。因此,对于具有更高压缩率和更小尺寸的已压缩访问单元集,已压缩访问单元集可以被合并在一起,以形成一个合并单元,而对于具有更低压缩率和更大尺寸的已压缩访问单元集,已压缩访问单元集可以被合并成多个合并单元。这样,合并访问单元的尺寸可以被控制在一定阈值以下。

在一个示例中,缓存机制被使用。当已压缩访问单元被请求时,读取器118用于用对帧缓存器120的一个或多个突发访问来读取包括来自于帧缓存器120的目标已压缩访问单元的整个合并访问单元。包括在合并访问单元中的未请求已压缩访问单元被缓存以用于可能的后续需要。当自帧缓存器120获取时,相比于更小合并访问单元,更大合并访问单元可以包括更大比例的未请求数据。更大比例的未请求数据可能花费存储器带宽,并包括对缓存机制的代价。因此,将合并访问单元的尺寸限制到低于一定阈值可以有利于存储器访问效率。

在本流程900中,突发部分可以包括的最大数量的已压缩访问单元可以被合并成合并访问单元。合并访问单元后续可以被放置在突发部分中。具体地,突发部分911-916的序列910可以在写入器114处接收,其将被放置到突发部分921-926的序列920中。如图所示,已压缩访问单元911-916可以具有不同尺寸,并且包括不同数量的字。另外,根据视频编解码系统100的配置,每个突发部分921-926可以具有等于对应于已压缩访问单元911-916的原始访问单元的尺寸的尺寸。

随后,写入器114可以计算来自于序列910的开端处的多少数量的已压缩访问单元可以被适配到第一突发部分921中。如图所示,前三个已压缩访问单元911-913可以具有3个字的总尺寸,其小于第一突发部分921的尺寸(4个字)。然而,第四已压缩访问单元914可以具有2个字的尺寸,并不能被进一步包括在第一突发部分921中。因此,前面三个已压缩访问单元911-913可以被确定已被合并到第一合并访问单元,其可以被放置在第一突发部分921中。

随后,从已压缩访问单元914开始,写入器114可以继续确定哪个已压缩访问单元将被合并且放置在第四突发部分924中。如图所示,写入器114可以确定已压缩访问单元914和已压缩访问单元915可以被合并成第二合并访问单元,其可以被存储在第四突发部分924中。尽管一个字的空间932在突发部分924的底端处可用,但已压缩访问单元916不能被进一步包括在第四突发部分924,是因为已压缩访问单元916的尺寸(4个字)对于空间932而言太大了。

随后,写入器114可以继续以与上述步骤相似的方式确定第三合并访问单元。例如,写入器可以确定位于序列910的剩余部分的开端处的哪个已压缩访问单元可以被适配到第六突发部分926中。如图所示,由于较低压缩率,已压缩访问单元916可以具有4个字的尺寸。因此,已压缩访问单元916本身可以占用突发部分926的所有空间,没有留下空间以包括额外的已压缩访问单元。

在上述步骤之后,突发部分921中的一个字的空间931、空间932、突发部分922、突发部分923和突发部分925未被占用。此外,每个合并单元与各自合并单元中的第一已压缩访问单元的标识地址对齐。这样,在如图5-图7示例中所述的合并信息的支持下,合并访问单元在帧缓存器120中可以被定位。

在本流程900期间,在合并访问单元被确定之后,对应于已压缩访问单元911-916或者合并访问单元的合并信息可以相应地被创建。随后,用一个突发访问,每个合并访问单元的成员可以被存储到各自突发部分中,并且合并信息也可以被存储到合并信息表中。

虽然在本示例流程900中合并访问单元的尺寸被限制成小于一个突发部分,但是在其他示例中,多达一个突发部分可以用于保存合并访问单元。例如,在可选示例中,可以被存储到两个突发部分的最大数量的已压缩访问单元可以被合并以形成一个合并访问单元。

图10a-图10b显示了根据本发明实施例的用突发访问读取已压缩访问单元的示例。在本示例中,读取器118可以动态地确定哪个已压缩访问单元组将用突发访问从帧缓存器120中读出。具体地,读取器118用于根据存储在合并信息表中的合并信息确定包括请求数据的合并访问单元,并用突发访问从帧缓存器120中读出合并访问单元。例如,读取器118可以接收用于已压缩访问单元的请求。读取器118可以先确定与请求已压缩访问单元相邻的访问单元集。例如,在已压缩访问单元序列中一定范围内位于目标访问单元之前或者之后的相邻已压缩访问单元可以被选择。

随后,读取器118可以自合并信息表读取对应于每个所选择的相邻已压缩访问单元和目标已压缩访问单元的合并信息。合并信息可以与图5和图6的示例中所述的合并信息相似。随后,读取器118可以检测所获得的合并信息,并确定包括目标访问单元的合并访问单元。例如,合并信息可以表示如何将相邻访问单元和目标单元形成一个或多个合并访问单元。最后,读取器118可以用读取操作的一个或多个突发自帧缓存器读取所确定的合并访问单元。

在图10a示例中,已压缩访问单元1011-1014的集合被合并成合并访问单元1021。访问单元1012是请求数据。合并访问单元1021驻留在突发部分组1020中的两个内。每个突发部分可以具有等于对应于已压缩访问单元1011-1014的原始访问单元的尺寸的尺寸。在这种情景下,当读取器118接收用于已压缩访问单元1012的请求时,读取器118可以获得已压缩访问单元1011-1014的合并信息,并检测合并信息以发现请求数据被包括在合并访问单元1021中。随后,合并访问单元1021可以用读取操作的两个突发从帧缓存器中读出。

在图10b示例中,由于相比于图10a示例而言有较低压缩率,四个已压缩访问单元1031-1034被合并以形成两个合并访问单元1041-1042。两个合并访问单元1041-1042被存储在具有与突发部分1020相似的配置的突发部分组1040中。已压缩访问单元1032是包括在合并访问单元1041中的请求访问单元。基于每个已压缩访问单元1031-1034的合并信息,读取器118可以确定合并访问单元1041包括请求数据,并用读取操作的两个突发读取合并访问单元1041。

在可选示例中,如上所述,在包括请求已压缩访问单元的合并访问单元被定位之后,读取器118可以检测以判断所定位的合并访问单元的尺寸是否大于预选择阈值。当合并访问单元大于预选择阈值,读取器118可以自帧缓存器120仅读取请求已压缩访问单元,而不是整个合并访问单元。这样,由较大合并访问单元中的未请求数据所引起的惩罚可以被避免。例如,在图10a中,假设一阈值被预选择成一个突发部分的尺寸,读取器118可以确定合并访问单元1021大于此阈值,并随后自帧缓存器120读取请求访问单元1012。

相反地,当合并访问单元小于此阈值时,用一个突发访问,整个合并访问可以被读出,以利用由突发访问引起的高存储器效率。在本可选示例中,当创建合并访问单元时每个已压缩访问单元的长度的信息可以被存储在合并信息中,并后续用于读取流程。

图11显示了根据本发明实施例的帧缓存器格式1100的示例。如本示例所示,两个原始访问单元1101-1102被压缩以生成分布在两个突发部分1142和突发部分1152中的两个已压缩访问单元1141和1151。两个原始访问单元1101-1102中的每个可以包括两个编码单元(encodingunit,eu)。在一些示例中,eu可以指的是用作视频编解码流程期间的处理单元的像素块。eu可以对应于根据hevc标准而定义的编解码块。在图11的示例中,原始访问单元1101可以包括eu1121r和eu1122r,其对应于已压缩eu1121c和已压缩eu1122c。同样地,原始访问单元1102可以包括eu1131r和eu1132r,其对应于已压缩eu1131c和已压缩eu1132c。

在一个示例中,每个已压缩eu,即1121c-1122c和1131c-1132c的长度(或尺寸)信息被存储在eu头1161-1164的序列中。例如,在图11中,每个突发部分,即1142或者1152可以具有8个字的尺寸,每个原始访问单元1101-1102可以具有与每个突发部分相同的尺寸。每个eu,即1121r、1122r、1131r和1132r,可以具有4个字的尺寸。在压缩之后,每个已压缩eu,即1121c、1122c、1131c和1132c可以根据各自压缩率而具有1、2、3或4个字的长度。相应地,每个可能长度可以用比特来表示。在图11示例中,1、2、3或4个字的长度由两个比特序列(称为eu头)表示。因此,四个已压缩eu,即1121c、1122c、1131c和1132c的长度分别被表示为10、01、00和11,并被存储在eu头1161-1164的序列中。

在帧缓存器格式1100中,原始或者已压缩访问单元序列可以被映射且存储到帧缓存器120中的突发部分序列。头1161-1164的序列也可以被存储在帧缓存器120中,并且头的序列的顺序可以被排列成与已压缩eu在突发部分序列中的顺序相同。这样,当已压缩eu自读取器118请求时,长度信息可以被定位。

在一个示例中,参考帧具有yuv420的格式,每个像素具有8比特的深度。使用帧缓存器格式1100,参考帧可以被压缩且存储到帧缓存器120中。具体地,y分量的eu可以具有16x4像素的尺寸,而cb/cr分量的eu可以具有8-cbcr对x4像素的尺寸。一个cbcr对可以包括1cb像素和1cr像素。垂直方向上的两个连续eu形成一访问单元。访问单元可以被逐行或者逐列处理。因此,访问单元以由处理顺序所确定的顺序被存储在帧缓存器120中。此外,y分量数据和cbcr分量数据可以被单独存储,形成两个已压缩访问单元序列。除了像素数据之外,对应于每个eu的eu头也可以被存储在帧缓存器120中,y分量eu头和cbcr分量eu头被存储在单独序列中。另外,四个序列(两个像素数据序列和两个eu头序列)的起始地址可以是可配置的。

虽然图11示例中的每个访问单元包括两个eu,但是在可选示例中,两个以上eu可以被包括在一个访问单元中。相应地,每个突发部分可以包括多于两个已压缩eu,每个已压缩eu对应于包括eu长度信息的eu头。

图12显示了根据本发明实施例的第二帧缓存器格式1200的示例。帧缓存器格式1200可以与访问单元合并机制一起使用,合并信息可以被包括在本帧缓存器格式1200。如图12所示,相同的原始访问单元1101-1102被压缩以形成两个已压缩访问单元,即1141和1151,然而已压缩访问单元1141和已压缩访问单元1151被一起合并,形成合并访问单元。在图12的示例中,移动已压缩访问单元的地址偏移可以用两个字的精度进行配置。相应地,地址偏移可以是两个字的倍数。这样,已压缩访问单元1151被向上移动2个字,以与已压缩访问单元1141相邻。在相邻的已压缩访问单元1141和已压缩访问单元1151之间存在1个字的间隙1260。

因此,帧缓存器格式1200包括合并头1201-1202的序列,每个包括表示合并操作的合并信息以及eu长度信息。具体地,每个合并头,1201或者1202可以包括用于存储合并信息的字段,例如地址偏移。如图所示,第一合并头1201对应于第一已压缩访问单元1141,“0000”的地址偏移被包括为前四个最高有效位(mostsignificantbit,msb)。同样地,第二合并头1202对应于第二已压缩访问单元1151,“0010”的地址偏移被包括为前四个最高有效位,其表示已压缩访问单元1151远离已压缩访问单元1151移动2个字。

在不同示例中,移动已压缩访问单元的地址偏移可以用不同的精度进行配置,例如,4字节、8字节、16字节或者32字节,或者其他精度。例如,在一个示例中,帧缓存器具有16字节的总线宽度,因此对应于总线宽度的1个字具有相同的16字节的尺寸。由于帧缓存器的一定技术特性,相比于1个字对齐的排列,2个字对齐的已压缩访问单元可以导致更高存储器访问效率。相应地,地址偏移的精度可以被配置为32字节,其等于帧缓存器的2个字的长度。因此,已压缩访问单元可以用2个字、4个字、6个字等的距离进行移动。因此,在一些情景中,移动已压缩访问单元可以与先前已压缩访问单元相邻,在得到的合并访问单元中存储1个字的长度间隙。对于其他长度的精度的地址偏移,两个相邻的已压缩访问单元之间的间隙可以具有不同长度,除了1个字长度。

另外,帧缓存器格式1200还可以包括两个字段(field),其用于存储与存储在图11示例中eu头中的相似的已压缩eu长度信息。可选示例中,当访问单元包括两个以上eu时,合并头可以包括用于存储已压缩eu长度信息的两个以上2个字段。因此,合并头中的字段的排列可以与图12示例中所示的不同。例如,合并信息和长度信息的字段可以被配置成以任何顺序。

虽然如图12的示例示出了两个已压缩访问单元,但在其他示例中,两个以上已压缩访问单元可以被合并成一个合并访问单元。另外,当各自的已压缩访问单元的压缩率较高时,合并访问单元可以被包括在一个突发部分。图12示例中的已压缩数据和合并头可以以与图11示例中的已压缩数据和eu头相似的方式被存储。例如,对应于不同颜色分量的已压缩数据和合并头可以被存储在在帧缓存器120中不同可配置位置处。

图13显示了根据本发明实施例的将已压缩访问单元合并成合并单元的流程1300。本流程1300可以通过写入器114在编解码系统100进行执行。本流程1300可以始于步骤s1301并继续到步骤s1310。

在步骤s1310中,在写入器114处,可以自压缩器112接收已压缩访问单元序列。例如,图像、视频帧或者图像或视频帧的部分可以被分割成访问单元序列,每个包括像素块。在压缩器112处,访问单元可以先被压缩,以生成已压缩访问单元的序列,随后其被提供给写入器114。如所述,帧缓存器120可以包括突发部分序列,其可以用突发访问来访问。突发部分的尺寸可以等于在读取或者写入操作的一个突发期间自帧缓存器120读取的数据量。

每个已压缩访问单元可以对应于突发部分。假设没有访问单元合并被执行,已压缩访问单元的序列可以被顺序地存储在突发部分序列中,每个突发部分包括一个已压缩访问单元。每个突发部分的起始地址可以是各自已压缩访问单元的标识地址。

在步骤s1312中,可以根据已压缩访问单元序列的压缩率确定合并访问单元。合并访问单元可以包括已压缩访问单元序列中的至少两个连续的已压缩访问单元。在第一示例中,当已压缩访问单元序列的子集,例如,两个或者四个已压缩访问单元,整体具有高于阈值的压缩率,例如50%时,已压缩访问单元序列的子集可以被确定将待合并成合并单元。

在第二示例中,合并访问单元可以包括可被包括在突发部分中的最大数量的连续已压缩访问单元。例如,只要已压缩访问单元的总尺寸小于或者等于突发部分的尺寸,写入器114可以试图将尽可能多的已压缩访问单元包括在突发部分中。在可选示例中,多于1个连续的突发部分可以用于包括合并访问单元。另外,属于视频帧的不同方块的已压缩访问单元不被包括在一个合并访问单元。

在步骤s1314中,可以生成合并信息以用于合并访问单元或者合并访问单元的成员。例如,如图5-图7的示例所述,不同类型的合并信息表示可以被使用。相应地,合并信息可以对应于每个已压缩访问单元,例如合并使能标志或者地址偏移合并信息,或者可以对应于合并访问单元,例如对应于合并访问单元的成员的未压缩访问单元的尺寸。

此外,合并信息可以被生成以用于表示各自已压缩访问单元不与其他已压缩访问单元进行合并的非合并已压缩访问单元。另外,合并信息可以后续用于寻址合并访问单元、合并访问单元的成员或者非合并访问单元,使得合并访问单元、合并访问单元的成员或者非合并访问单元可以自帧缓存器120读取。

在步骤s1316中,将合并访问单元存储在帧缓存器中。在步骤s1318中,将合并信息存储在帧缓存器120或者与帧缓存器120独立的另一存储器中。本流程1300可以继续到步骤s1399,并结束于步骤s1399。

图14显示了根据本发明实施例的自包括合并访问单元的帧缓存器读取已压缩访问单元的流程1400。本流程1400可以通过读取器118在编解码系统100中进行执行。本流程1400可以始于步骤s1401并继续到步骤s1410。

在步骤s1410中,在读取器118处,可以接收用于已压缩访问单元的请求。请求已压缩访问单元可以是对应于图像或视频帧中的块序列的已压缩访问单元序列中的一个。另外,使用访问单元合并方案的写入器114可以将已压缩访问单元序列存储在帧缓存器120,以提高存储器效率。因此,合并访问单元可以被生成并存储在帧缓存器120中。

在步骤s1412中,读取器118可以自存储合并信息的帧缓存器120或者另一存储器读取与请求访问单元相关的合并信息。例如,合并信息可以采用图5-图7的示例中所述的格式之一。例如,对应于与请求访问单元相邻的已压缩访问单元集的使能标志或者地址偏移可以被获得。另外,合并信息可以包括请求访问单元和与请求访问单元相邻的已压缩访问单元的长度信息。

在步骤s1414中,基于步骤s1412中获得的合并信息,可以确定包括请求访问单元的合并访问单元。例如,一个或多个突发部分的地址可以被确定,使得包括所确定的合并访问单元的各自突发部分可以被寻址。另外,在一个示例中,请求访问单元的地址也可以被确定。此外,在一个示例中,所确定的访问单元的尺寸也可以被确定。

在步骤s1416中,在一个示例中,用突发访问,可以自帧缓存器120读取包括请求访问单元的所确定的合并访问单元。在可选示例中,读取器118可以先检测所确定的合并访问单元的尺寸是否小于阈值。如果是,则读取器118可以继续读取用突发访问来自帧缓存器120读取包括请求访问单元的所确定的合并访问单元。否则,读取器118仅可以自帧缓存器120读取请求访问单元,以避免由未请求数据所引起的代价。本流程1400可以继续到步骤s1499,并结束于步骤s1499。

在各种示例中,写入器114、读取器118、压缩器112、去压缩器116或者视频编解码器110可以用硬件、软件或者其结合来实现。在一个示例中,这些组件,即压缩器112、写入器114、去压缩器116和读取器118,可以用一个或多个集成电路(integratedcircuit,ic)来实现,例如应用专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)。在另一示例中,这些组件,即压缩器112、写入器114、去压缩器116和读取器118的功能可以用包括存储在计算机可读非暂态存储介质的指令的软件或者固件来实现,当这些指令由处理电路执行时,使得处理电路执行各自的功能。

虽然视频编解码系统100用作用于解释访问单元合并方案的示例,但是与访问单元合并方案相关的功能和流程并不限于视频编解码系统。例如,访问单元合并方案可以被应用或者包括在其他各种应用和装置中,例如,图像信号处理器(imagesignalprocessor,isp),显示设备、图像处理单元(graphicsprocessingunit,gpu)、多媒体引擎等。因此,访问单元合并方案可以被应用到图像以及视频帧上。例如,isp可以实现图1的示例中的写入器114的功能,以生成并将图像或视频帧的合并已压缩访问单元存储帧存储器中,其随后由可以实现图1的示例中的读取器118的功能的gpu或显示设备获取。多媒体引擎可以包括执行视频编解码器的功能的硬件和软件。因此,写入器114和读取器118的功能可以在多媒体引擎中实现,以用于访问存储有视频帧的帧缓存器。

由于已经结合本发明的被提出用作示例的具体实施例描述了本发明的各个方面,可以做出这些示例的替代、修改和变形。因此,此处所说明的实施例用作示意目的,但不用于限制。在不脱离权利要求的范围的情况下,可以做出改变。

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