CN101116341A - 用于进行视频运动补偿的高速缓存方法及设备 - Google Patents
用于进行视频运动补偿的高速缓存方法及设备 Download PDFInfo
- Publication number
- CN101116341A CN101116341A CNA2005800375410A CN200580037541A CN101116341A CN 101116341 A CN101116341 A CN 101116341A CN A2005800375410 A CNA2005800375410 A CN A2005800375410A CN 200580037541 A CN200580037541 A CN 200580037541A CN 101116341 A CN101116341 A CN 101116341A
- Authority
- CN
- China
- Prior art keywords
- cache memory
- equipment
- memory
- cache
- pixel
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Abstract
本发明提供一种使用耦接至运动补偿电路的高速缓存存储器来进行运动补偿的方法及设备。所述运动补偿方法在运动估测算法中利用如下事实:在构成一宏块的多个块之间通常存在明显的空间重叠。因此,可将像素区存储于高速缓存存储器中并可重复地存取所述高速缓存存储器,以对在空间上毗邻的数据块实施内插技术而无需存取主存储器-后者效率极低且浪费存储器带宽。
Description
技术领域
本发明涉及视频技术,且更具体而言涉及使用高速缓存技术来进行视频运动补偿。
背景技术
将视频功能性集成到移动电话、个人数字助理(PDA)及其他手持式装置中已成为当前消费者电子市场中的主流。此种在这些手持式装置中添加成像电路的当前能力可部分地归因于具备诸如MPEG-4及H.264等先进压缩技术。通过使用H.264或另一适当压缩方案,可由照相机拍摄视频剪辑并将其无线传输至其他装置。
视频通常为最高存储带宽源之一,尤其是在大量应用的处理装置(例如植入移动电话、PDA及其他手持式或紧凑式装置中的芯片组及数字信号处理器)上。此种高存储带宽要求对总的存储器总线设计,尤其是对于针对视频应用来优化存储器提取效率的处理器-存储器方案的配置,带来挑战。
视频带宽使用量的一实例通常出现在运动补偿背景中。运动补偿为视频解码步骤,其中自存储器提取具有可变偏离量的像素(图像元素)块并使用多分支滤波器将其内插至分数偏离量。
为进行运动补偿读取而提取的块尺寸通常较小且其宽度可能与现有系统中通常用来在处理器与存储器之间介接数据的“2的幂”总线宽度匹配较差。通常使用的此种2的幂总线宽度接口可为25宽(32位)及26宽(64位)。根据上文所述,为提取数据块,通常只可使用短的猝发长度,因为为提取与所述块相关联的新的一行像素,处理器必须跳至读取新的地址。已知这些短的猝发长度对于现有的同步动态随机存取存储器(SDRAM)以及其他类型的存储器而言效率极差。因此,对像素块的存储器读取可能相当慢,且可能耗用有可能令人无法接受的存储带宽量来实施图像渲染功能。
图1显示对与现有系统中自存储器读取数据块相关联的低效率的图解说明。矩阵100图解说明-由九个分别具有十二个像素的行形成的任意块。为便于说明此实例,给定像素行中的每一像素均在存储器中存储成一个由水平毗邻的元素构成的字节(8位)。换句话说,存储器中的十二个连续字节对应于要显示在屏幕上的十二个水平毗邻的像素。另外,此图解说明假定在所讨论系统的硬件架构中构建25的存储器总线宽度(即4字节),并采用基于SDRAM的存储系统。
进一步假定所讨论的解码方案在给定情况下委托处理器来对9×9像素块实施运动补偿读取。在图1中,将9×9块表示成“*”符号112。在此构建形式中,每一*符号均构成8位数据。在此实例中,“+”符号群组110也构成8位像素。不过,所述+像素位于所要读取的9×9块之外。九行108*符号112及+符号110共同表示存储器中的12×9矩形像素区。
在使用32位总线时,对例示性9×9像素块进行运动补偿读取实际上需要提取一12×9像素块。具体而言,在此实例中,存储器控制器实施三次分别为32位(4字节)的提取。在第一次提取期间,读取对应于第一行中的四个像素102的字节。在第二次提取期间,读取对应于第一行中的四个像素104的字节。在第三次提取期间,读取对应于第一行中的四个像素106的字节。对这九行中的每一行重复这些读取。在此实例中,以九个分别由三次提取形成的单独猝发来实施此12×9像素块。当宏块等于16个块时,图片的每一宏块均可需要144个分别由三次提取形成的猝发。
简而言之,此图解说明中的32位总线架构需要读取由+符号110所表示的像素,尽管这些像素不是9×9块的一部分。因此,+像素110相当于浪费存储带宽。当提取对奇数尺寸块的大量运动补偿读取时,所浪费的带宽可变得非常大,从而降低性能并造成图像数据的解码效率极低。
由于在各种基于处理器的系统中对具有更大存储带宽的要求越来越高,因此,增加存储器总线宽度的趋势近年来已急剧上升。令人遗憾的是,对于与MPEG及其他压缩方案相关联的运动补偿应用而言,上文所提出的效率问题只能随着总线宽度的提高而加剧。考虑图2所示的实例,其采用26=64位=8字节的存储器总线宽度。如前所述,一9×9像素块(208,212)对应于要自存储器提取一个块供运动补偿电路使用。因为此图解说明中的总线构成64位接口,所以存储器读取需要将所述读取实施成分别对九个分别由两次提取202及204形成的猝发。在第一次提取202中,读取八个字节的像素数据202。在第二次提取中,读取另八个字节的像素数据。在9个由两次提取形成的猝发后,16×9像素块便已得到读取,以便提取9×9块(202,208)。由+符号210表示的像素相当于因提取而实际浪费掉的45%的数据。
如下事实使在提取不是2的幂的宏块或子块时的问题变得更加严重:在许多系统中,外部存储器存取慢于寄存器存取或高速缓存存储器存取。虽然SDRAM及其他类型的存储技术已在速度及性能上得到改进,但这些改进在传统上还不与为进行运动补偿而对奇数尺寸的块进行存储器提取相关联的无谓数据读取相称。
另一问题涉及与外部存储器读取相关联的高功率消耗。在视频解码技术情况下,无谓的数据读取只能造成功率消耗效率低下。
通常,在其中使用宏块并将其进一步划分成子块的大多数压缩方案中,所要内插的构成宏块的子块集合往往在空间上接近,尽管按其各自的运行矢量偏离。例如,在H.264标准中,构成宏块的4×4块集合通常可能会接近。因此,当提取12×9像素区域时,很可能每一块的12×9像素区域均重叠,尽管事先并不知道重叠量。实际上,使用H.264标准作为实例,要使在构成16×16宏块的任一4×4子块中均不存在重叠,4×4子块将必须展布于48×36像素区域上。从统计学上来讲,不可能每一宏块的各4×4子块均可同时且一致地以此种方式来分布。当实施运动内插时,现有系统不利用此种重叠。相反,如在此图解说明中一样,针对每一子块从主存储器进行单独提取。
因此,在所属领域中需要提供一种存取数据的更快且更有效的方法来用于在运动补偿操作中进行视频解码。
发明内容
在本发明的一个方面中,提供一种使用耦接至高速缓存存储器的运动补偿电路来对图像数据进行解码的方法,所述高速缓存存储器用于存储要输入至所述运动补偿电路的像素数据,所述方法包括:将构成一个或多个相对于参考块具有可变偏离量的像素块的所述像素数据存储于所述高速缓存存储器中;自所述高速缓存存储器检索所述像素数据;将所述像素数据输入至所述运动补偿电路中;并将所述像素数据内插至所述一个或多个像素块的分数偏离量。
在本发明的另一方面中,提供一种用于对图像数据进行解码的设备,其包括:控制接口;耦接至所述控制接口的高速缓存存储器,所述高速缓存存储器经配置以保存构成显示器上各像素区的图像数据;耦接至所述控制接口的存储总线接口;耦接至所述高速缓存存储器的运动补偿内插数据路径;及耦接至所述运动补偿内插数据路径的运动补偿电路。
在本发明的再一方面中,提供一种用于对图像数据进行解码的设备,其包括:控制接口;耦接至所述控制接口的座标-高速缓冲存储器地址转换电路;耦接至所述座标-高速缓冲存储器地址转换电路的高速缓存存储器,所述存储器高速缓存经配置以存储像素数据块;耦接至所述高速缓存存储器的运动补偿内插数据路径;耦接至所述运动内插数据路径并经配置以内插自所述高速缓存存储器接收的像素数据块的运动补偿电路;耦接至所述高速缓存存储器的高速缓冲存储器-物理地址转换电路;及耦接至所述高速缓冲存储器-物理地址转换电路的存储器总线接口。
在本发明的再一方面中,提供一种集成于移动装置中以对图像数据进行解码的设备,其包括:用于接收像素数据座标的控制接口装置;用于将座标数据转换成高速缓冲存储器地址的座标地址转换装置;用于将高速缓冲存储器地址转换成物理地址的物理地址转换装置;用于存储像素数据区的高速缓存存储器;用于向主存储器发出读取命令的存储器总线接口;及耦接至所述高速缓存存储器以接收像素数据区并在所述区内内插像素块的运动补偿装置。
在本发明的再一方面中,提供一种计算机可读媒体,其包含指令程序,所述指令程序可由计算机程序执行以实施一种使用耦接至高速缓存存储器的运动补偿电路来对图像数据进行解码的方法,所述高速缓存存储器用于存储要输入至所述运动补偿电路的像素数据,所述方法包括:将包括一个或多个相对于参考块具有可变偏离量的像素块的所述像素数据存储于所述高速缓存存储器中;自所述高速缓存存储器检索所述像素数据;将所述像素数据输入至所述运动补偿电路中;并将所述像素数据内插至所述一个或多个像素块的分数偏离量。
应了解,根据下文详细说明,所属领域的技术人员将易知本发明的其他实施例,在下文说明中仅以例示方式显示及阐述本发明的几个实施例。应认识到,本发明可具有其它及不同的实施例,且可在各个其他方面对其若干细节加以修改,所有这些均不背离本发明的精神及范围。因此,这些图式及详细说明均应视为例示性而非限制性的。
附图说明
附图中以举例方式而非限制方式图解说明本发明的各个方面,在图式中:
图1为一作为运动补偿算法的一部分提取一组像素的图示。
图2为另一作为运动补偿算法的一部分提取一组像素的图示。
图3为一在H.264标准中所用的各种宏块分区的图解说明。
图4为一在H.264标准中所用的各种宏块子分区的图解说明。
图5A-5C代表在H.264标准中所用的子像素内插的图解说明。
图6为一根据本发明一实施例的处理系统的方块图。
图7为一显示一种根据本发明一实施例用于将高速缓冲存储器耦接至运动补偿电路的方法的流程图。
图8为一种根据本发明一实施例使用高速缓冲存储设备的实例性解码方法的内部组件的方块图。
图9显示一根据H.264标准的导则描述最坏情况子块分布的像素区。
具体实施方式
下文结合附图所述的详细说明旨在作为对本发明各种实施例的说明而非旨在表示可实践本发明的仅有实施例。本揭示内容中所述的每一实施例仅供用作本发明的实例或例示,而未必应视为好于或优于其它实施例。为实现对本发明的透彻理解,本详细说明包括具体细节。然而,所属领域的技术人员易知,无需这些具体细节也可实施本发明。在某些情形中,以方块图形式显示众所周知的结构及装置,以免淡化本发明的概念。使用缩略语及其它描述性术语可能只是为了方便及清晰起见,而并非旨在限制本发明的范围。
H.264是一种由ISO/IEC MPEG(活动图像专家组)及ITU-T VCEG的联合视频小组(JVT)所制订的ISO/IEC压缩标准。H.264是一种新的视频压缩标准,其提供用于在多媒体环境下有效地存储、传输及操纵视频数据的核心技术。H.264是涉及全世界数百名研究人员及工程师的国际性努力的结果。H.264的焦点是制订一种标准,其除实现其他结果外,还尤其实现对视频编码的具有高度可缩放性及灵活性的算法及位流配置、无线信道上的高错误弹性及恢复性、及高度的网络独立可存取性。例如,对于基于H.264的编码,可在一些使用小于32千位/秒数据速率的应用中实现较佳的图片质量。
MPEG-4及H.264建立于其前代技术(MPEG-1及MPEG-2)的成功之上,且提供一组用来执行诸如数字电视、交互式图形应用及交互式多媒体等等技术的标准化元件。由于其具有强健性、高质量及低比特率,因而MPEG-4已构建于无线电话、PDA、数字照相机、因特网网页及其他应用中。用于MPEG-4视频标准的各种各样的工具能够实现对自然视频、静止图像及合成图形目标的编码、解码及呈现。无疑,能提供甚至更大灵活性及更强健的成像的未来压缩方案的实施方案即将出现。
MPEG-4及H.264包括运动估测算法。运动估测算法使用内插滤波器来计算连续帧之间的运动并使用根据先前所传输的帧计算出的运动信息来预测构成当前帧的信息。在MPEG编码方案中,将一帧的像素块关联至前一帧的区域,并只对块与其关联区域之间的差别进行编码及存储。块与和其最紧密匹配的区域之间的转换矢量称作运动矢量。
H.264标准(亦称作MPEG-4第10部分“先进视频编码”标准)包括支持一子块尺寸范围(小至4×4)。这些子块可包括一分区范围,包括4×4、8×4、4×8及8×8。通常,每一分区或子分区需要单独的运动矢量。对在既定应用中所要使用的分区尺寸的选择可有所不同。通常,较大的分区尺寸可适用于图片的均匀区域,而较小的分区尺寸可更适用于详细区域。
H.264标准(MPEG第10部分,“先进视频编码”)支持范围从16×16到4×4亮度样本的运动补偿块尺寸,在这两个尺寸之间有诸多选项。如图3中所示,可按四种方式来分离每一宏块(16×16样本)的亮度分量:16×16(宏块300)、16×8(宏块302)、8×16(宏块304)、或8×8(宏块306)。当选择8×8模式(宏块306)时,可如图4中所示以另外四种方式来分离所述宏块内的分区。此处,子块或子分区可包括一8×8子块400、两个8×4子块402、两个4×8子块404、或四个4×4子块406。
在H.264中要求每一宏块或子块具有单独的运动矢量。传输至解码装置的压缩位流通常包括每一子块的经编码运动矢量及分区选择。选择较大的子块(例如16×16、16×8、8×16)通常需要使用较少的位数来用信号通知对一个或多个运动矢量及子块类型的选择。不过,在这种情况下,经运动补偿的残余量可在具有高度的细节的帧区域中包含大量能量。相反,选择较小的子块尺寸(例如8×4、4×4、等等)通常需要使用较多的位数来用信号通知所述一个或多个运动矢量及对一个或多个子块的选择,但可在运动补偿后提供较低的能量残余量。因此,子块或分区尺寸的选择可对压缩性能具有显著影响。如上所述,较大的子块尺寸可适用于帧的均匀区域,而较小的分区尺寸可有利于更详细的区域。
子像素运动矢量
在H.264标准中,通常根据参考图像中相同尺寸的对应区域来预测经互编码的宏块中的每一子块。对于亮度分量而言,界定子块与参考子块之间的间隔的运动矢量包含1/4像素分辨率。由于参考图像中不存在位于子像素位置处的样本,因此必须使用来自毗邻图像样本的内插来产生这些样本。子像素内插的一实例显示于图5中。图5A显示参考图像中的一实例性4×4像素子块500。图5A中的子块500要根据参考图片的毗邻区域来进行预测。如果运动矢量的水平及垂直分量为例如图5B的图解说明中所示的整数(1,-1),则参考块中的可适用样本502实际上存在。但是,如果其中一个或两个矢量分量均为分数(非整数)值(0.75,-0.5),则通过在参考帧中的毗邻像素样本之间进行内插来产生形成子块503的预测样本。
子像素运动补偿可以复杂度增加为代价来提供相对于整数像素补偿显著提高的压缩性能。像素精度越细,图片就越好。例如,四分之一像素精度的性能高于二分之一的像素精度。
在亮度分量中,可首先产生二分之一像素位置处的子像素样本并可在一种配置中使用6分支有限脉冲响应滤波器从邻近的整数像素样本对其进行内插。在此配置中,每一个二分之一像素样本代表六个相邻整数样本的加权和。一旦可得到所有二分之一样本,便可在相邻的二分之一或整数像素样本之间使用双线性内插来形成每一个四分之一像素样本。
运行矢量预测
对每一个分区的运动矢量进行编码可占用大量的位,尤其在选择小子块尺寸时。相邻子块的运动矢量可能高度相关且因此可根据附近的先前经编码的子块的矢量来预测每一运动矢量。可根据先前所计算出的运动矢量来形成预测矢量MVP。对MVD-当前矢量与预测矢量之间的差-进行编码及传输。用于形成预测矢量MVP的方法取决于运动补偿子块尺寸且取决于附近矢量的可用性。一些实施方案中的基本预测值是位于当前块或子块正上方、沿对角的上方右侧、及正左侧的宏块子块的运动矢量的中值。如果(a)选择16×8或8×16子块及/或(b)如果相邻分区中有些分区不可用作预测值,则可修改所述预测值。如果跳过(即未传输)当前宏块,则可仿佛以16×16分区模式对所述宏块进行编码一样产生预测矢量。
在解码器处,可以同样的方式来形成预测运动矢量MVP并将其加至经解码矢量差MVD。在宏块被跳过的情况下,不存在经解码矢量且因此可根据MVP的大小来形成经运动补偿的宏块。
根据本发明的一个方面,为了显著提高存储性能,将运动补偿电路耦接至适当尺寸的高速缓存存储器。本文中所使用的技术可使运动补偿带宽减少多达70%或更多,此视实施方式而定。另外,最佳情况块尺寸与最坏情况块尺寸之间的带宽分布可减少80%更多。在一个实施例中,所有非对齐的带零头长度提取均变成2的幂字对齐的高速缓冲存储器线负载,从而提高存储器存取效率。
相对于简单的双线性滤波更多地使用长内插滤波器(例如在H.264中)、用于进行运动补偿的小块尺寸(例如H.264的4×4子块)的存在及经字定向的存储器接口使得在为渲染宏块所需的各子块提取之间存在明显的空间重叠。在本发明的一个方面中,将小的高速缓冲存储器耦接至运动内插硬件。可将高速缓冲存储器线组织成保存图片的一维或二维区域。在大多数配置中,将高速缓冲存储器本身组织成保存二维像素区域。可使用本发明的原理来利用重叠块之间的空间局部性,以使许多读取能够来自极快的高速缓冲存储器而不是来自慢得多的外部存储器。
通过如下文所述对高速缓冲存储器进行正确配置,所获得的每像素命中率可能极高(在某些情形中,大于95%)。当命中率较高时,与高速缓冲存储器填充相关联的存储器带宽降低。因此,减少存储器带宽的目标得以实现。在使用本发明的原理来对实际高运动视频测试剪辑进行模拟期间,已显示带宽减少了多达70%。
因此,对于达到高命中率的经正确配置的高速缓冲存储器而言,可直接自高速缓冲存储器读取大多数子块。在此典型情况下,在每一宏块基础上对高速缓冲存储器进行读取的平均读取带宽等同于宏块本身中的像素数量。此配置可将读取带宽对用于将宏块分解为子块的方法的灵敏度解耦。可实现减小最坏情况模式(例如,全部4×4子块)与最佳情况模式(例如,单个16×16宏块)之间的带宽分布的所述优点。模拟已显示,可对实际视频测试剪辑实现大于80%的带宽分布减小量。因此,设计者可规定一个对在所述压缩标准中所用的所有块尺寸均适用的存储器带宽约束条件。
如下文将更详细阐述,高速缓冲存储器本身可包含具有字对齐及为2的幂猝发长度的高速缓冲存储器线。因此,所述高速缓冲存储器线可与长的猝发读取对齐,此不同于当不使用高速缓冲存储器时许多系统所需的不对齐、带零头长度的短猝发。这些高速缓冲存储器填充有效地利用DRAM。
图6为一根据本发明一实施例的实例性处理系统600的方块图。处理系统600可构成实际上任何类型的实施视频重放并使用运动预测补偿的处理装置。处理系统600的一个例示可为在例如先进移动电话、PDA或类似装置等除其他目的外还用来处理视频应用程序的手持式装置中的芯片组或印刷电路卡。各种组件的具体配置可在位置及数量方面有所不同,而此并不背离本发明的范围,且图6所示的实施方案是设计成为例示性质的。处理器602可包括数字信号处理器(DSP),以用于解释各种命令并运行专用代码来实施诸如接收及传输移动通信或处理声音等功能。在其他实施例中,可采用多于一个DSP,也可使用通用处理器或其他类型的CPU。在此实施例中,处理器602耦接至存储器总线接口608,以使处理器602能够对处理系统600的主存储器RAM 610实施读取及写入。另外,根据一个实施例的处理器602耦接至运动补偿电路604,运动补偿电路604可包括一个或多个用于实施运动预测的多分支滤波器。另外,专用高速缓冲存储器606耦接至运动补偿硬件604,以使必要的像素数据能够根据本文中所述的原理超快地传输至运动补偿单元604。应注意,为了清楚且易于图解说明起见,图式中省略了可存在于某些实施方案中的硬件块,例如缓冲器、FIFO及通用高速缓冲存储器。
在一个涉及具有视频功能的处理系统(例如移动单元)及32位存储器接口的实例中,采用基于H.264或类似MPEG标准的运动预测。在此实施例中,对每一所内插的4×4子块,均实际提取由12×9个像素构成的像素区域。但是,12×9像素区域通常不包括所浪费的像素。本发明的此方面利用如下事实:共同构成宏块的4×4子块集合有可能在空间上相接近,虽然按子块各自的运动矢量存在偏移。因此,每一块的12×9像素区域很可能重叠。事先并不知道实际重叠量。不过,为使在构成16×16宏块的4×4子块中的任何一者中均不存在重叠,将必须使各4×4块展布于48×36像素区域上。从统计学上来讲,每一宏块的4×4子块不可能同时且一致地以此种极端方式来分布。(这些原理将在下文中加以更详细阐述)。另外,视频编码器将可能从不以此方式来分布各个块,因为在许多实施例中,以差动方式对为对所有不同运动矢量进行编码所须使用的位数进行编码。因此,当子块均不相同时,将须花费大量数据来对运动矢量进行编码。
根据本发明的此方面,使用高速缓存机构来利用这些重叠区域,从而消除自外部存储器进行的冗余提取及不必要的读取。虽然是以H.264标准为背景提供,但本发明同等地可适用于任何实施运动补偿预测的装置。本文中使用H.264标准的例示是因为人们正在考虑将H.264用于广播电视、下一代DVD、移动应用及本发明的概念可适用于其每一应用的其他实施方案。
在一个实施例中,将存储器高速缓存耦接至视频运动补偿硬件块,所述视频运动补偿硬件块可包括一个或多个用于实施子像素内插的多分支滤波器。此实施例中的系统可包括控制接口、座标-高速缓冲存储器地址转换器、高速缓冲存储器-物理地址转换器、高速缓存存储器、存储器总线接口、存储器接收缓冲器(例如FIFO缓冲器)、及通往运动预测电路的运动补偿内插数据路径。
图7为一显示一种根据本发明一实施例用于将高速缓冲存储器耦接至运动补偿电路的方法的流程图。所述流程图描述提取与屏幕上的像素相关联的座标以实现运动预测的过程。在步骤702处,控制接口接收座标。控制接口可包括各种用于接收、缓冲、及/或将数据自一个区域传送至另一个区域的电路或硬件。具体而言,控制接口可接收帧缓冲索引(即相对于在帧缓冲存储器中的位置来描述座标位置的信息)、运动矢量MVP、宏块X及Y地址、子块X及Y地址、及块尺寸。为方便起见,将此参数集合称作在二维空间中的“座标”地址。根据所使用的具体压缩方案或编解码器而定,座标地址可有所不同,或者可包括不同的或其他的参数。
然后,座标-高速缓冲存储器地址转换器可将控制接口信息变换成适当的标记地址及高速缓冲存储器线号码(步骤704)。在此步骤中可使用所属领域中已知的多种地址映射方法。在一个实施例中,使用一种如下映射:其将座标地址变换成X及Y座标,并将帧缓冲索引与X及Y座标子字段进行级联,以形成标记地址及高速缓冲存储器线号码。
随即,可将标记地址发送至一个或多个与存储器高速缓存相关联的标记RAM,如步骤706中所示。当标记地址表示在任一标记存储器中的的命中(决策分支708)时,自数据RAM读取来自高速缓冲存储器线的数据(步骤720)。然后,可经由适当的数据内插接口来将像素数据传送至运动补偿电路(步骤722)。
当标记地址而是导致高速缓冲存储器未命中(决策分支708)时,可在存储器总线接口上发出标准读取请求。在一个实施例中,设定一表示高速缓冲存储器未命中指示符的旗标(步骤710)。然后,高速缓冲存储器-物理地址转换器将高速缓冲存储器地址变换成与主存储器相关联的物理地址(步骤712)。然后,由存储器控制器发出自主存储器进行读取的读取请求,如步骤714中所示。检索可适用的像素数据,并将其传送至运动补偿电路(步骤716)。另外,在高速缓冲存储器未命中的情况下,可通过在下文中所进一步阐述的方式以自RAM所检索的数据来更新高速缓冲存储器(步骤723)。
图8为一根据本发明一实施例使用高速缓冲存储设备的实例性解码方法的内部组件的方块图。虽然图8假定使用直接映射式高速缓冲存储器,但在其他实施例中使用包括成组相联高速缓冲存储器在内的其他高速缓冲存储器配置似乎同样可取。可将控制接口电路802耦接至高速缓冲存储器地址变换逻辑804,以将自存储器提取的座标变换成高速缓冲存储器地址。高速缓冲存储器变换逻辑804又可耦接至高速缓冲存储器的标记RAM 806以存储标记地址。标记RAM 806包含表示数据RAM 812中的可用地址的数据。在此实施例中,将标记RAM 806耦接至例如传统FIFO缓冲器的可选缓冲器808。在一种配置中,使用缓冲器808来隐藏等待时间,以使多个高速缓冲存储器未命中可对于系统RAM而言待决。数据RAM 812存储像素数据。还存在物理地址变换逻辑810,以用于将标记地址及高速缓冲存储器线号码变换成主存储器中的物理地址以便进行主存储器读取。将物理地址传送至存储器总线接口814,接口814在高速缓冲存储器未命中的情况下实施对主存储器816的读取。另外,可使用因高速缓冲存储器未命中而自系统RAM读取的数据来更新高速缓冲存储器线。在某些配置中,为了给新的条目腾出空间,高速缓冲存储器可能不得不“逐出”现有条目。用于选择要逐出的条目的具体直观推断法称作“替换政策”。此步骤大体显示成图7中的步骤723,且为了清楚起见在图8中省略了该步骤。也可具有多种替换政策。其实例包括先进先出(FIFO)或最近最少使用(LRU)。
最后,将来自与高速缓冲存储器相关联的数据RAM 812的数据或来自系统RAM816的数据经由经运动补偿的内插数据路径818传送至运动预测电路820。在高速缓冲存储器未命中的情形中,可具有至少两种读取政策。在一种配置中,将未命中的读取数据传输至高速缓冲存储器,并立即将所需的像素转发至运动补偿数据路径818。在另一配置中,将未命中的读取数据传输至高速缓冲存储器并写入至高速缓冲存储器的数据RAM 812中。然后,从数据RAM 812中读出像素数据并将其传送至运动补偿数据路径,在此处将随机偏离的子像素值变换成分数值。
如本文中所述将存储器高速缓存耦接至视频运动补偿硬件块会使硬件块能够快速地检索其为对子块位移进行正确内插并对运动进行正确表示所需的子块。在一个实施例中,使用YCbCr来代替RGB像素。在再一实施例中,运动补偿硬件包括分支数量大于在现有视频应用中所用传统双线性滤波器分支数量的滤波器。使用的分支越多,在所检索的子块之间将存在明显空间重叠的可能性就越大。
在一个实施例中,对高速缓冲存储器的数据存储器进行优化,以免提取不需要的数据。具体而言,对高速缓存存储器的尺寸进行确定,以保存整数个图像宏块。数据存储器可包含N/L根高速缓冲存储器线,其中N表示高速缓冲存储器中的字节数且L表示单根高速缓冲存储器线中的字节数。作为例示,高速缓冲存储器可包括一64×32像素窗口,其中N=2千字节且L=32字节。在大多数实施例中,将L选择为存储器总线接口猝发长度的倍数。高速缓冲存储器线可包含二维像素区域。数据存储器可自数据存储器地址产生器接收地址。数据存储器的输出可随即传输至内插电路。典型的尺寸可因应用而异,但在一些实施例中可为由32字节高速缓冲存储器线构成的总共1KB或2KB。高速缓冲存储器线可保存一维或二维区域,例如8×4或32×1,等等。
内插电路可包含卧式及立式滤波逻辑。在上文所述的一个实施例中,所使用的滤波器具有多于两个滤波器分支。内插电路的输出表示经运动补偿的预测值。一个实例性滤波器为当前在H.264标准中执行的六分支滤波器。在使用多于两个滤波器分支(即,实施多于双线性的滤波)的这些配置中,考虑到重新使用具有明显空间重叠的子块及耦接至内插电路的适当尺寸的高速缓冲存储器,本发明可表现出最大的存储器带宽节省。
因内插滤波器长度所致的子块之间的重叠
此处,我们将以H.264标准为背景来论证经运动补偿的内插。如上所述,其他基于运动补偿的标准同等地适用且本发明的原理可同等地适用于这些其他标准。使用H.264的六分支滤波器对4×4块进行的经运动补偿的内插需要提取一9×9块。构成宏块的16个9×9块可重叠,此视其各自的运动矢量的大小及方向而定。其他对象形状(例如,8×8、8×4、等等)也同样如此。在最坏的情况下,如果4×4/8×4/4×8/8×8子块运动矢量相对于最佳16×16运动矢量偏移+/-M个像素,则所有子块所跨越的区域可覆盖至多(16+5+2M)2个像素。
图9显示一根据实例性H.264标准的准则描述最坏情况子块分布的像素区。阴影区中的十六个正方形906图解说明构成宏块的16个4×4块在位移前的位置。这十六个正方形902图解说明以不存在重叠的方式偏移的4×4块,从而使这些4×4块尽可能地展开以使在对每一块的存储器提取中均不存在重叠。剩余的周围区域904表示对应于为正确应用内插滤波器来对此宏块进行解码所必须提取的额外像素的区域。当M=4时,此总像素区域尺寸为29×29像素。
如果独立地提取每一子块,则针对每一宏块所提取的像素总数(本文中称作P)为固定的,且与M无关。实例性值归纳于下表中:
模式 | 子块数量 | 针对每一子块所提取的像素 | 针对每一宏功能块所提取的像素(P) |
4×4 | 16 | 9×9=81 | 16×81=1296 |
8×4 | 8 | 13×9=117 | 8×117=936 |
4×8 | 8 | 9×13=117 | 8×117=936 |
8×8 | 4 | 13×13=169 | 4×169=676 |
因此,在给定其中M=4的先前实例的情况下,如果解码器分别提取各4×4块,则必须读取总共1296个像素,即使宏块只覆盖一由29×29=841个像素构成的区域。在此种情况下,解码器将须读取比所需像素多大约50%的像素,从而造成对宝贵存储器带宽的浪费。
求解其中(16+5+2M)2<P的条件使设计者能够确定在什么条件下必定出现子块重叠、及实际存在多大的此种重叠。求解此二次方程,可以证明,在下列条件下必定出现重叠:
使在其以内必定存在重叠的最大运动矢量值归纳于下表中:
模式 | 子块数量 | M |
4×4 | 16 | 7 |
8×4 | 8 | 4 |
4×8 | 8 | 4 |
8×8 | 4 | 2 |
例如,在4×4模式中,即使4×4子块各自的运动矢量相差+/-M个像素以内的任何量,各提取也必定重叠。如果不利用重叠,则所将提取的冗余像素的分数为
1-(((16+5+2M)2)/P)
因存储器总线带宽所致的子块之间的重叠
接下来,考虑一其中主存储器总线实际为8字节(32位DDR)的实例。如果使用线性帧缓冲格式,则在一个实施例中所提取的像素的所有水平跨度为8像素宽的倍数。通常,通至存储器的数据路径越宽,提取小像素块的效率就变得越低(即,每一提取所浪费的像素越多)。在所有子块运动矢量均相对于最佳16×16运动矢量偏移+/-M个像素的最坏情况下,各子块所跨越的总面积增大至(16+5+2M)×(28+2M)。如果在此情形中独立地提取每一子块,则针对每一宏块所提取的像素总数(称作P)如下所示增加。
模式 | 子块的数量 | 针对每一子块所提取的像素 | 针对每一宏块所提取的像素(P) |
4×4 | 16 | 16×9=144 | 16×144=2304 |
8×4 | 8 | ((0.25×16)+(0.75×24))×9=198 | 8×198=1584 |
4×8 | 8 | 16×13=208 | 8×208=1664 |
8×8 | 4 | ((0.25×16)+(0.75×24))×13=286 | 4×286=1144 |
求解其中(16+5+2M)×(28+2M)<P的条件使设计者能够确定在什么条件下必定出现子块重叠、及存在多大重叠。可以证明,每当为下列条件时必定出现重叠
使在其以内必定存在重叠的最大运动矢量的值归纳于下表中。
模式 | 子块数量 | M |
4×4 | 16 | 11 |
8×4 | 8 | 7 |
4×8 | 8 | 8 |
8×8 | 4 | 4 |
应注意,在此实施例中,因存储器接口变宽,故在各提取之间有可能存在更大重叠。此外,如果不利用所述重叠,则所将提取的冗余像素的分数简单地为1-((16+5+2M)×(28+2M)/P)。
空间上毗邻的宏块之间的重叠
如上所述,在给定使用实例性H.264标准的配置中的滤波器内插长度且给定宽存储器总线接口的例示的情况下,针对每一个宏块所提取的像素区为(16+5+2M)×(28+2M)。M从零一直到八的变化表示从28×21变化到44×37的矩形像素窗口。
在根据一种配置的VGA尺寸的图片中,1200个16×16宏块覆盖一由640×480=307,200个像素构成的区域。如果每一宏块均需要最小尺寸的提取为28×21个像素,则针对每一图片提取总共1200×28×21=705,600个像素。由于所述图片只包含307,200个唯一的像素,因此不可能使各宏块提取都不重叠。实际上,可确定出所提取的像素中有一半多一点为冗余的且将被提取两次(每一帧有705,600-307,200=398,400次冗余像素提取)。
利用重叠
因此,在各子块的运动矢量之间的某一最大差值以内,对宏块内各子块的提取可重叠。另外,在此配置中,在对空间上毗邻的宏块的提取之间必定存在重叠。此种重叠主要归因于(1)内插滤波器的使用、(2)许多系统的更宽的存储器总线宽度特征、及(3)与相邻宏块的重叠。
因此,高速缓冲存储器是一种适用于每当使用一种如下标准时与运动内插逻辑结合使用的机构:所述标准使存储器中存在局部性,即使并不确切地知道所述局部性存在于何处(即,在对运动矢量进行解码之前,无法确定所述提取相对于可能已实施的任何先前提取处于何处)。不过,可合理地假定,对于利用因子块重叠所引起的重叠的系统而言,恰当的高速缓冲存储器尺寸大约等于宏块的预期空间范围的尺寸-例如(举例而言)(16+5+2M)×(28+2M)个亮度像素。使M从零变化至最大值八意味着恰当的高速缓冲存储器尺寸可介于512字节到2千字节范围内。
提供上文对所揭示实施例的说明旨在使所属领域的技术人员能够制作或使用本发明。所属领域的技术人员将易知对这些实施例的各种修改,且本文所界定的一般原理也可适用于其它实施例,此并不背离本发明的精神及范围。因此,并非旨在将本发明限定为本文所示实施例,而是欲赋予其与本文所揭示原理及新颖特征相一致的最宽广的范围。
Claims (46)
1.一种使用耦接至高速缓存存储器的运动补偿电路来对图像数据进行解码的方法,所述高速缓存存储器用于存储要输入至所述运动补偿电路的像素数据,所述方法包括:
将包括一个或多个相对于参考块具有可变偏离量的像素块的所述像素数据存储于所述高速缓存存储器中;
自所述高速缓存存储器检索所述像素数据;
将所述像素数据输入至所述运动补偿电路中;及
将所述像素数据内插至所述一个或多个像素块的分数偏离量。
2.如权利要求1所述的方法,其中使用YCbCr像素格式。
3.如权利要求1所述的方法,其中所述运动补偿电路包括多分支内插滤波器。
4.如权利要求3所述的方法,其中所述多分支内插滤波器包括三个或更多个分支。
5.如权利要求3所述的方法,其中所述多分支内插滤波器包括四个分支。
6.如权利要求3所述的方法,其中所述多分支内插滤波器包括六个分支。
7.如权利要求3所述的方法,其中所述多分支内插滤波器包括水平及垂直滤波逻辑。
8.如权利要求1所述的方法,其进一步包括耦接至所述高速缓存存储器的存储器总线,其中所述高速缓存存储器进一步包括多个分别为L个字节的高速缓冲存储器线,其中L包括所述存储器总线宽度的整数倍。
9.如权利要求1所述的方法,其中所述高速缓存存储器经配置以存储所述一个或多个像素块的整数个。
10.如权利要求1所述的方法,其中所述一个或多个块包括图像宏块。
11.如权利要求1所述的方法,其中所述高速缓存存储器包括多根高速缓冲存储器线,每一高速缓冲存储器线均包括一维像素数据区域。
12.如权利要求1所述的方法,其中所述高速缓存存储器包括多根高速缓冲存储器线,每一高速缓冲存储器线均包括二维像素数据区域。
13.如权利要求1所述的方法,其中将所述高速缓存存储器及所述运动补偿单元集成到移动装置中。
14.如权利要求13所述的方法,其中所述移动装置包括移动手持机。
15.一种用于对图像数据进行解码的设备,其包括:
控制接口;
耦接至所述控制接口的高速缓存存储器,所述高速缓存存储器经配置以保存包括显示器上的像素区的图像数据;
耦接至所述控制接口的存储器总线接口;
耦接至所述高速缓存存储器的运动补偿内插数据路径;及
耦接至所述运动补偿内插数据路径的运动补偿电路。
16.如权利要求15所述的设备,其中所述高速缓存存储器经配置以保存整数个图像宏块。
17.如权利要求15所述的设备,其中所述高速缓存存储器包括N/L根高速缓冲存储器线,其中N包括所述高速缓冲存储器中的字节数量,L包括高速缓冲存储器线中的字节数量,且L包括所述存储器总线接口宽度的倍数。
18.如权利要求15所述的设备,其中使用YCbCr像素格式。
19.如权利要求15所述的设备,其中所述运动补偿电路包括多分支内插滤波器。
20.如权利要求19所述的设备,其中所述多分支内插滤波器包括三个或更多个分支。
21.如权利要求19所述的设备,其中所述多分支内插滤波器包括四个分支。
22.如权利要求19所述的设备,其中所述多分支内插滤波器包括六个分支。
23.如权利要求19所述的设备,其中所述多分支内插滤波器包括水平及垂直滤波逻辑。
24.如权利要求15所述的设备,其进一步包括耦接至所述控制接口的座标-高速缓冲存储器转换逻辑。
25.如权利要求24所述的设备,其进一步包括耦接至所述存储器接口的高速缓冲存储器-物理地址转换逻辑。
26.如权利要求25所述的设备,其进一步包括耦接至所述存储器总线接口并耦接至所述运动补偿内插数据路径的缓冲器。
27.一种用于对图像数据进行解码的设备,其包括:
控制接口;
座标-高速缓冲存储器地址转换电路,其耦接至所述控制接口;
高速缓存存储器,其耦接至所述座标-高速缓冲存储器地址转换电路,所述高速缓存存储器经配置以存储像素数据块;
运动补偿内插数据路径,其耦接至所述高速缓存存储器;
运动补偿电路,其耦接至所述运动内插数据路径并经配置以内插自所述高速缓存存储器接收的所述像素数据块;
高速缓冲存储器-物理地址转换电路,其耦接至所述高速缓存存储器;及
存储器总线接口,其耦接至所述高速缓冲存储器-物理地址转换电路。
28.如权利要求27所述的设备,其中所述高速缓存存储器经配置以存储整数个图像宏块。
29.如权利要求27所述的设备,其中所述高速缓存存储器包括N/L根高速缓冲存储器线,其中N包括所述高速缓冲存储器中的字节数,L包括高速缓冲存储器线中的字节数,且L包括所述存储器总线接口宽度的倍数。
30.如权利要求27所述的设备,其中使用YCbCr像素格式。
31.如权利要求27所述的设备,其中所述运动补偿电路包括多分支内插滤波器。
32.如权利要求31所述的设备,其中所述多分支内插滤波器包括三个或更多个分支。
33.如权利要求31所述的设备,其中所述多分支内插滤波器包括四个分支。
34.如权利要求31所述的设备,其中所述多分支内插滤波器包括六个分支。
35.如权利要求31所述的设备,其中所述多分支内插滤波器包括水平及垂直滤波逻辑。
36.如权利要求27所述的设备,其中所述座标-高速缓冲存储器转换电路中的每一座标均包括帧缓冲器索引、运动矢量、宏块地址、及块尺寸。
37.如权利要求27所述的设备,其中所述运动补偿电路经配置以按由H.264标准所规定的格式来内插像素区。
38.如权利要求27所述的设备,其中所述运动补偿电路经配置以按由MPEG标准所规定的格式来内插像素区。
39.一种集成于移动装置中以对图像数据进行解码的设备,其包括:
控制接口装置,其用于接收像素数据座标;
座标地址转换装置,其用于将座标数据转换成高速缓冲存储器地址;
物理地址转换装置,其用于将高速缓冲存储器地址转换成物理地址;
高速缓存存储器,其用于存储像素数据区;
存储器总线接口,其用于向主存储器发出读取命令;及
运动补偿装置,其耦接至所述高速缓存存储器以接收像素数据区并在所述区内内插像素块。
40.如权利要求39所述的设备,其中所述运动补偿装置进一步经配置以内插对应于H.264标准的像素块。
41.如权利要求39所述的设备,其中所述运动补偿装置包括多分支内插滤波器。
42.如权利要求41所述的设备,其中所述运动补偿装置包括四分支内插滤波器。
43.如权利要求41所述的设备,其中所述多分支内插滤波器包括四个分支。
44.如权利要求39所述的设备,其中所述像素数据座标分别包括帧缓冲器索引、运动矢量、宏块地址、及块尺寸。
45.一种包含指令程序的计算机可读媒体,所述指令程序可由计算机程序执行以实施一种使用耦接至高速缓存存储器的运动补偿电路来对图像数据进行解码的方法,所述高速缓存存储器用于存储要输入至所述运动补偿电路的像素数据,所述方法包括:将构成一个或多个相对于参考块具有可变偏离量的像素块的所述像素数据存储于所述高速缓存存储器中;自所述高速缓存存储器检索所述像素数据;将所述像素数据输入至所述运动补偿电路中;并将所述像素数据内插至所述一个或多个像素块的分数偏离量。
46.如权利要求45所述的计算机可读媒体,其中所述指令程序经配置以根据H.264标准来对图像数据进行解码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/939,183 | 2004-09-09 | ||
US10/939,183 US20060050976A1 (en) | 2004-09-09 | 2004-09-09 | Caching method and apparatus for video motion compensation |
PCT/US2005/032340 WO2006029382A2 (en) | 2004-09-09 | 2005-09-08 | Caching method and apparatus for video motion compensation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101116341A true CN101116341A (zh) | 2008-01-30 |
CN101116341B CN101116341B (zh) | 2013-03-27 |
Family
ID=35645749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800375410A Expired - Fee Related CN101116341B (zh) | 2004-09-09 | 2005-09-08 | 用于进行视频运动补偿的高速缓存方法及设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20060050976A1 (zh) |
EP (2) | EP1787479A2 (zh) |
JP (1) | JP2008512967A (zh) |
KR (1) | KR100907843B1 (zh) |
CN (1) | CN101116341B (zh) |
TW (1) | TWI364714B (zh) |
WO (1) | WO2006029382A2 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033809A (zh) * | 2009-09-25 | 2011-04-27 | Arm有限公司 | 控制从存储器中读取数据阵列的方法和装置 |
CN102572279A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 针对数字图像稳定优化的旋转内插像素的光栅输出 |
US8988443B2 (en) | 2009-09-25 | 2015-03-24 | Arm Limited | Methods of and apparatus for controlling the reading of arrays of data from memory |
US9195426B2 (en) | 2013-09-20 | 2015-11-24 | Arm Limited | Method and apparatus for generating an output surface from one or more input surfaces in data processing systems |
US9349156B2 (en) | 2009-09-25 | 2016-05-24 | Arm Limited | Adaptive frame buffer compression |
US9406155B2 (en) | 2009-09-25 | 2016-08-02 | Arm Limited | Graphics processing systems |
US9640131B2 (en) | 2014-02-07 | 2017-05-02 | Arm Limited | Method and apparatus for overdriving based on regions of a frame |
US9881401B2 (en) | 2009-09-25 | 2018-01-30 | Arm Limited | Graphics processing system |
US9996363B2 (en) | 2011-04-04 | 2018-06-12 | Arm Limited | Methods of and apparatus for displaying windows on a display |
US10194156B2 (en) | 2014-07-15 | 2019-01-29 | Arm Limited | Method of and apparatus for generating an output frame |
US10832639B2 (en) | 2015-07-21 | 2020-11-10 | Arm Limited | Method of and apparatus for generating a signature representative of the content of an array of data |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463282B2 (en) | 2003-12-03 | 2013-06-11 | Qualcomm Incorporated | Overload detection in a wireless communication system |
US20060159170A1 (en) * | 2005-01-19 | 2006-07-20 | Ren-Wei Chiang | Method and system for hierarchical search with cache |
US7536487B1 (en) * | 2005-03-11 | 2009-05-19 | Ambarella, Inc. | Low power memory hierarchy for high performance video processor |
US20060291743A1 (en) * | 2005-06-24 | 2006-12-28 | Suketu Partiwala | Configurable motion compensation unit |
US7965773B1 (en) * | 2005-06-30 | 2011-06-21 | Advanced Micro Devices, Inc. | Macroblock cache |
US20070008323A1 (en) * | 2005-07-08 | 2007-01-11 | Yaxiong Zhou | Reference picture loading cache for motion prediction |
EP1908295A2 (en) * | 2005-07-28 | 2008-04-09 | Thomson Licensing | Method and apparatus for video motion process optimization using a hierarchical cache |
US7427990B2 (en) * | 2006-01-30 | 2008-09-23 | Ati Technologies, Inc. | Data replacement method and circuit for motion prediction cache |
JP4182442B2 (ja) * | 2006-04-27 | 2008-11-19 | ソニー株式会社 | 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体 |
US8559514B2 (en) | 2006-07-27 | 2013-10-15 | Qualcomm Incorporated | Efficient fetching for motion compensation video decoding process |
JP4535047B2 (ja) * | 2006-09-06 | 2010-09-01 | ソニー株式会社 | 画像データ処理方法、画像データ処理方法のプログラム、画像データ処理方法のプログラムを記録した記録媒体及び画像データ処理装置 |
TWI326433B (en) * | 2006-09-19 | 2010-06-21 | Ind Tech Res Inst | Method for saving interpolation data |
CN101166272B (zh) * | 2006-10-17 | 2010-05-12 | 财团法人工业技术研究院 | 补差点数据储存方法 |
US8514237B2 (en) * | 2007-05-22 | 2013-08-20 | International Business Machines Corporation | Two dimensional memory caching apparatus for high definition video |
US8665946B2 (en) * | 2007-10-12 | 2014-03-04 | Mediatek Inc. | Macroblock pair coding for systems that support progressive and interlaced data |
KR100944995B1 (ko) * | 2007-12-12 | 2010-03-05 | 재단법인서울대학교산학협력재단 | 움직임 보정장치 |
US20090222448A1 (en) * | 2008-02-29 | 2009-09-03 | Microsoft Corporation | Elements of an enterprise event feed |
WO2009109891A1 (en) * | 2008-03-03 | 2009-09-11 | Nxp B.V. | Processor comprising a cache memory |
US8577165B2 (en) * | 2008-06-30 | 2013-11-05 | Samsung Electronics Co., Ltd. | Method and apparatus for bandwidth-reduced image encoding and decoding |
KR101611408B1 (ko) | 2008-06-30 | 2016-04-12 | 삼성전자주식회사 | 점유 대역폭의 감소를 위한 영상 부호화 방법 및 장치, 그리고 영상 복호화 방법 및 장치 |
US8411749B1 (en) * | 2008-10-07 | 2013-04-02 | Zenverge, Inc. | Optimized motion compensation and motion estimation for video coding |
US20100226437A1 (en) * | 2009-03-06 | 2010-09-09 | Sony Corporation, A Japanese Corporation | Reduced-resolution decoding of avc bit streams for transcoding or display at lower resolution |
US8732384B1 (en) | 2009-08-04 | 2014-05-20 | Csr Technology Inc. | Method and apparatus for memory access |
US8225043B1 (en) * | 2010-01-15 | 2012-07-17 | Ambarella, Inc. | High performance caching for motion compensated video decoder |
JP6049017B2 (ja) * | 2010-04-07 | 2016-12-21 | リグオリ,ヴィンチェンツォLIGUORI,Vincenzo | メモリ要求低減ビデオ送信システム |
CN102340662B (zh) * | 2010-07-22 | 2013-01-23 | 炬才微电子(深圳)有限公司 | 一种视频处理设备和方法 |
US9122609B2 (en) * | 2011-03-07 | 2015-09-01 | Texas Instruments Incorporated | Caching method and system for video coding |
US20130188732A1 (en) * | 2012-01-20 | 2013-07-25 | Qualcomm Incorporated | Multi-Threaded Texture Decoding |
KR101885885B1 (ko) | 2012-04-10 | 2018-09-11 | 한국전자통신연구원 | 비디오 데이터의 병렬 인트라 예측 방법 |
US20140071146A1 (en) * | 2012-09-07 | 2014-03-13 | Texas Instruments Incorporated | Methods and systems for multimedia data processing |
US20140184630A1 (en) * | 2012-12-27 | 2014-07-03 | Scott A. Krig | Optimizing image memory access |
US10085016B1 (en) | 2013-01-18 | 2018-09-25 | Ovics | Video prediction cache indexing systems and methods |
US9363524B2 (en) * | 2013-08-26 | 2016-06-07 | Amlogic Co., Limited | Method and apparatus for motion compensation reference data caching |
US20150146784A1 (en) * | 2013-11-26 | 2015-05-28 | Vixs Systems Inc. | Motion compensation with moving window |
US9762919B2 (en) * | 2014-08-28 | 2017-09-12 | Apple Inc. | Chroma cache architecture in block processing pipelines |
US10841610B2 (en) * | 2017-10-23 | 2020-11-17 | Avago Technologies International Sales Pte. Limited | Block size dependent interpolation filter selection and mapping |
JP7406206B2 (ja) | 2020-04-28 | 2023-12-27 | 日本電信電話株式会社 | 参照画像キャッシュ、削除先決定方法及びコンピュータプログラム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2646854B2 (ja) * | 1990-12-18 | 1997-08-27 | 三菱電機株式会社 | マイクロプロセッサ |
JP2883592B2 (ja) * | 1991-05-31 | 1999-04-19 | 株式会社東芝 | 動画像復号化装置及び動画像復号化方法 |
US6788347B1 (en) * | 1997-03-12 | 2004-09-07 | Matsushita Electric Industrial Co., Ltd. | HDTV downconversion system |
US6335950B1 (en) * | 1997-10-14 | 2002-01-01 | Lsi Logic Corporation | Motion estimation engine |
JP3123496B2 (ja) * | 1998-01-28 | 2001-01-09 | 日本電気株式会社 | 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体 |
JPH11328369A (ja) * | 1998-05-15 | 1999-11-30 | Nec Corp | キャッシュシステム |
US6570574B1 (en) | 2000-01-10 | 2003-05-27 | Intel Corporation | Variable pre-fetching of pixel data |
US6707853B1 (en) * | 2000-01-10 | 2004-03-16 | Intel Corporation | Interface for performing motion compensation |
US6956617B2 (en) * | 2000-11-17 | 2005-10-18 | Texas Instruments Incorporated | Image scaling and sample rate conversion by interpolation with non-linear positioning vector |
EP1241892A1 (de) * | 2001-03-06 | 2002-09-18 | Siemens Aktiengesellschaft | Hardware-Accelerator eines Systems zur Videoverarbeitung |
KR20030029937A (ko) * | 2001-07-06 | 2003-04-16 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 제어된 벡터 통계들을 이용한 모션 추정 및 보상 |
JP4120301B2 (ja) * | 2002-04-25 | 2008-07-16 | ソニー株式会社 | 画像処理装置およびその方法 |
FI114679B (fi) * | 2002-04-29 | 2004-11-30 | Nokia Corp | Satunnaisaloituspisteet videokoodauksessa |
-
2004
- 2004-09-09 US US10/939,183 patent/US20060050976A1/en not_active Abandoned
-
2005
- 2005-09-08 EP EP05796135A patent/EP1787479A2/en not_active Withdrawn
- 2005-09-08 KR KR1020077008039A patent/KR100907843B1/ko not_active IP Right Cessation
- 2005-09-08 CN CN2005800375410A patent/CN101116341B/zh not_active Expired - Fee Related
- 2005-09-08 WO PCT/US2005/032340 patent/WO2006029382A2/en active Application Filing
- 2005-09-08 JP JP2007531412A patent/JP2008512967A/ja active Pending
- 2005-09-08 EP EP10152101A patent/EP2184924A3/en not_active Withdrawn
- 2005-09-09 TW TW094131192A patent/TWI364714B/zh not_active IP Right Cessation
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033809A (zh) * | 2009-09-25 | 2011-04-27 | Arm有限公司 | 控制从存储器中读取数据阵列的方法和装置 |
US8988443B2 (en) | 2009-09-25 | 2015-03-24 | Arm Limited | Methods of and apparatus for controlling the reading of arrays of data from memory |
CN102033809B (zh) * | 2009-09-25 | 2015-11-25 | Arm有限公司 | 控制从存储器中读取数据阵列的方法和装置 |
US9349156B2 (en) | 2009-09-25 | 2016-05-24 | Arm Limited | Adaptive frame buffer compression |
US9406155B2 (en) | 2009-09-25 | 2016-08-02 | Arm Limited | Graphics processing systems |
US9881401B2 (en) | 2009-09-25 | 2018-01-30 | Arm Limited | Graphics processing system |
CN102572279A (zh) * | 2010-12-23 | 2012-07-11 | 三星电子株式会社 | 针对数字图像稳定优化的旋转内插像素的光栅输出 |
US9996363B2 (en) | 2011-04-04 | 2018-06-12 | Arm Limited | Methods of and apparatus for displaying windows on a display |
US9195426B2 (en) | 2013-09-20 | 2015-11-24 | Arm Limited | Method and apparatus for generating an output surface from one or more input surfaces in data processing systems |
US9640131B2 (en) | 2014-02-07 | 2017-05-02 | Arm Limited | Method and apparatus for overdriving based on regions of a frame |
US10194156B2 (en) | 2014-07-15 | 2019-01-29 | Arm Limited | Method of and apparatus for generating an output frame |
US10832639B2 (en) | 2015-07-21 | 2020-11-10 | Arm Limited | Method of and apparatus for generating a signature representative of the content of an array of data |
Also Published As
Publication number | Publication date |
---|---|
TW200625196A (en) | 2006-07-16 |
EP2184924A2 (en) | 2010-05-12 |
EP2184924A3 (en) | 2010-07-28 |
US20060050976A1 (en) | 2006-03-09 |
WO2006029382A3 (en) | 2006-09-21 |
KR20070088608A (ko) | 2007-08-29 |
WO2006029382A2 (en) | 2006-03-16 |
TWI364714B (en) | 2012-05-21 |
CN101116341B (zh) | 2013-03-27 |
KR100907843B1 (ko) | 2009-07-14 |
JP2008512967A (ja) | 2008-04-24 |
EP1787479A2 (en) | 2007-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116341B (zh) | 用于进行视频运动补偿的高速缓存方法及设备 | |
CN104811721B (zh) | 视频解码数据存储方法及运动向量数据的计算方法 | |
US5978509A (en) | Low power video decoder system with block-based motion compensation | |
US8442107B2 (en) | Memory mapping apparatus and method for video decoder/encoder | |
US8019000B2 (en) | Motion vector detecting device | |
US20050190976A1 (en) | Moving image encoding apparatus and moving image processing apparatus | |
US7853091B2 (en) | Motion vector operation devices and methods including prediction | |
CN103533366B (zh) | 用于视频运动补偿的缓存方法与装置 | |
CN103686044A (zh) | 像素缓冲 | |
CN101563927A (zh) | 用于对视频图像的块进行解码的方法 | |
CN101022551A (zh) | Avs视频硬件解码器中运动补偿模块的像素预取装置 | |
WO2011021319A1 (ja) | 動画像符号化装置 | |
JP2004241918A (ja) | 動画像の画像圧縮符号化方法及び装置 | |
CN101873490B (zh) | 图像处理方法和使用该方法的图像信息编码设备 | |
US7843993B2 (en) | Moving picture encoding apparatus having increased encoding speed and method thereof | |
EP0602642B1 (en) | Moving picture decoding system | |
EP1147671B1 (en) | Method and apparatus for performing motion compensation in a texture mapping engine | |
CN101783958B (zh) | Avs视频标准中时域直接模式运动矢量的计算方法和装置 | |
US6707853B1 (en) | Interface for performing motion compensation | |
TWI418219B (zh) | 用於動態補償系統之資料映像方法及快取記憶體系統 | |
KR101085799B1 (ko) | 핸드헬드 디바이스에서의 이미지 처리 방법 및 장치 | |
KR20050012706A (ko) | 화상 복호 장치 및 화상 복호 방법 | |
US20130127887A1 (en) | Method for storing interpolation data | |
CN109005410A (zh) | 一种系数存取方法和装置及机器可读介质 | |
CN102625093B (zh) | 一种基于avs的帧间预测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1111291 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1111291 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 Termination date: 20180908 |
|
CF01 | Termination of patent right due to non-payment of annual fee |