用于视频运动估计加速器的半像素插值器的利记博彩app

文档序号:7917052阅读:176来源:国知局
专利名称:用于视频运动估计加速器的半像素插值器的利记博彩app
技术领域
本发明涉及图像数据的压缩,更具体地,涉及用于运动估计单元中的 半4象素插值的方法和i殳备。
背景技术
视频序列由一系列帧构成。每个帧由诸如720x480像素等的像素阵列 表示,并且每个像素用数据值来表示。因此,为了生成每个帧,使用了大 量的数据。
越来越多的视频产品依赖于视频压缩来减少存储和/或传输视频序列 所需的比特的数量,仅举几个例子,所述视频产品诸如DVD播放机、数 字电视、个人录#^、多媒体点播机、可视频的蜂窝电话等。为了改善视 频数据压缩的效率,可以进行运动估计。已经证明,运动估计在下述方面 是有效的通过提取在相邻帧之间的相关性而利用视频序列的时间冗余 性。在帧序列内,才艮据被称为参考帧的前一帧来预测当前帧。当前帧通常 被划分为多个块或者宏块。宏块的大小通常是16x16像素,但是,宏块的 大小可以依赖于所使用的压缩标准而变化。通过利用指定的误差准则,将 当前帧内的每个宏块与参考帧内的相同大小的区域相比较,以便定位最佳 匹配的宏块。使用运动向量来表示参考帧内的宏块与当前帧内的匹配宏块 之间的位移。
为了满足对可视通信应用的需求,已经开发了许多视频压缩标准。运 动估计是许多视频压缩方案的核心部分。MPEG-4部分10/H.264视频编 码标准的关键部分要求编码器产生运动向量,以表示两个或者更多个帧 之间的运动。该标准允许编码器以一半或者四分之一^象素的精度来产生运 动向量,其中,通it^现有的整数值的插值滤波来产生子像素值。该滤波 过程被称为子像素插值,是极其计算密集和存储密集的,但是,其对于获 得高质量编码是关键的。以硬件来执行任务要求在循环计数与大的帧尺 寸、功耗、电路复杂度、芯片面积和存储器带宽之间进行权衡,所述循环 计数必须足够低,以支持低的时钟频率。
因此,需要改进的用于子像素插值的方法和设备。

发明内容
根据本发明的第一方面,提供了 一种用于在具有l象素行和列的像素阵
列中进行像素插值的设备。所述设备包括移位寄存器阵列,用于将像素 阵列的像素值移位,所述移位寄存器阵列包括两个或者更多个移位寄存 器;插值滤波器阵列,与所述移位寄存器阵列互连,所述插值滤波器阵列 包括一个或更多个插值滤波器;以及控制器,被配置成在第一模式下向相 应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的列中的像素 值,并且被配置成在第二模式下向相应的插值滤波器提供来自所述移位寄 存器阵列的像素阵列的行中的像素值。
在一些实施例内,所述控制器被配置成在第一模式下向相应的插值滤 波器提供所述像素阵列的列中的整数像素值,以产生垂直子像素值,并且 被配置成在第二模式下向相应的插值滤波器提供所述像素阵列的行中的 整数像素值,以产生水平子像素值。所述控制器可以被配置成在第二模式 下向相应的插值滤波器提供垂直子像素值,以产生对角线子像素值。
所述控制器可以被配置成在第一阶段中顺序通过(sequence through)像素阵列,以产生垂直子像素值,在第二阶段中顺序通过像素 阵列,以产生水平子像素值,并且在第三阶段中顺序通过垂直子像素值, 以产生对角线子像素值。
根据本发明的第二方面,提供了一种在具有像素行和列的像素阵列中 插值《象素的方法。所述方法包括4C供包括两个或者更多个移位寄存器的 移位寄存器阵列及与所述移位寄存器阵列互连的插值滤波器阵列,所述插 值滤波器阵列包括一个或更多个插值滤波器;通过所述移位寄存器阵列中 的移位寄存器将所述像素阵列的像素值移位;在第一模式下向相应的插值 滤波器提供来自所述移位寄存器阵列的《象素阵列的列中的〗象素值,以产生 垂直子像素值,并且,在第二模式下向相应的插值滤波器提供来自所述移 位寄存器阵列的像素阵列的行中的像素值,以产生水平子像素值。
根据本发明的第三方面,提供了 一种用于对具有数据值的行和列的数 据阵列中的数据值进行滤波的设备。所述设备包括移位寄存器阵列,用 于将所述数据阵列的数据值移位;至少一个数字滤波器,与所述移位寄存 器阵列互连;以及控制器,用于在第一模式下向数字滤波器提供来自所述
移位寄存器阵列的数据阵列的列中的数据值,并且被配置成在第二模式下 向数字滤波器提供所述移位寄存器阵列的数据阵列的行中的数据值。


为了更好地理解本发明,现在参见附图,这些附图通过引用而合并于
此,其中
图1是示出根据本发明的实施例的半像素插值的一部分图像的示意
图2是根据本发明一实施例的半像素插值模块的示意框图3是图2中所示的半〗象素插值器的示意框图4是图3中所示的插值滤波器阵列的示意框图5是图3中所示的移位寄存器阵列的示意框图6A是示出像素阵列的9x6像素块内的像素值的一个示例的示意
图6B-6G是示出将图6A中的像素值装载到图3的半像素插值器中的 示意图7是示出根据本发明一实施例的垂直半像素插值的过程的流程图; 图8是示出根据本发明一实施例的7jc平半像素插值的过程的流程图9是示出根据本发明一实施例的对角线半像素插值的过程的流程
图IOA是根据本发明的实施例的二维数字滤波器的示意框图;以及 图IOB是图10A的数字滤波器的级的示意框图。
具体实施例方式
图1中示出了像素阵列10中的几个像素的示意图。像素阵列10由排 列在具有行和列的阵列中的整数〗象素12构成。为了 ^L明的目的,图1中 放大了像素之间的间隔。完整的像素阵列可以具有任何数量的像素,并且 可以表示图像的一部分或者整个图像。在一个实施例中,对像素阵列的 24x24 4象素块进行处理,以产生用于16x16 ^象素块的半像素。使用24x24
像素块是为了在16x16像素块的边缘附近产生半像素。整数像素12的每 个都具有一个像素值,如8比特的值。
可以利用插值来产生子像素值,如产生半像素值或者四分之一像素 值。在此所述的实施例涉及半像素值的产生。但是,本发明不限于半^象素 值的产生。
半像素插值过程在水平对准的整数像素12之间产生7jC平半像素20, 而在垂直对准的整数像素之间产生垂直半像素22。另外,所述半像素产 生过程可选地可以在连接整数像素的每个2x2组的对角线26的相交处产 生对角线半像素24。通过对附近像素的插值来产生半像素。H,264视频编 码标准规定通过使用具有规定的滤波器系数的6抽头的插值滤波器来产 生水平半像素和垂直半l象素。如下所述,可以通过对附近的垂直半像素的 插值来产生对角线半〗象素。在6抽头的插值滤波器的情况下,每个半l象素 的值基于6个附近像素的值。
在确定子像素值的过程中,滤波器系数的值确定了赋予每个附近像素 的加权。按照IL264标准,以如下的方式来计算半像素值
z=(A - 5B + 20C + 20D - 5E + F)/32
其中,z是半像素值,
在用于计算垂直半像素值时,A、 B、 C、 D、 E和F是列中6个最 接近的整数像素值,
在用于计算水平半^象素值时,A、 B、 C、 D、 E和F是行中6个最 接近的整数像素值,并且
在用于计算对角线半像素值时,A、 B、 C、 D、 E和F是行中的6 个最接近的垂直半像素值。
在这些实施例内,通it^J"被计算的水平半像素的左边的三个最接近的
整数像素和被计算的水平半像素的右边的三个最接近的整数像素的插值, 来计算每个水平半^象素。通iW被计算的垂直半^象素以上的三个最接近的
整数像素和被计算的垂直半像素以下的三个最接近的整数像素的插值,来 计算每个垂直半像素。通it^被计算的对角线半像素的左边的三个最接近 的垂直半像素以及被计算的对角线半像素的右边的三个最接近的垂直半 像素的插值,可以计算每个对角线半像素。
图2中示出了根据本发明一个实施例的半像素插值模块的框图。所述
半像素插值模块可以是实施于集成电路芯片上的运动估计加速器的一部
分。所述运动估计加速器可以与数字信号处理器(DSP)或者其他的可编 程处理器(如微控制器单元(MCU)) —起工作,或者可以作为它们的一 部分。所述半像素插值模块包括半像素插值器40、整数像素緩冲器42、 垂直半像素緩冲器44、水平半像素緩冲器46、对角线半像素緩冲器48 和控制器50。
半像素插值器40从整数像素緩冲器42接收整数像素值,并M垂直 半像素緩沖器44接收垂直半像素值。半像素插值器40产生垂直半像素值 并将垂直半像素值存储在垂直半〗象素緩冲器44中,产生水平半〗象素并将 水平半像素值存储在水平半4象素緩冲器46中,并且可产生对角线半4象素 值并可将对角线半像素值存储在对角线半像素緩冲器48中。如上所述, 可以通过垂直半像素的插值来产生对角线半4象素。因此,将存储在垂直半 像素緩冲器44中的所计算的垂直半像素值提供给半像素插值器40的输 入,用于产生对角线半l象素。控制器50对半^象素插值器40以;s^緩冲器 42、 44、 46和48进行控制,以执行半像素的产生,如下所述。
在一个实施例中,整数像素緩沖器42保存24x24的整数像素值块, 并且每个像素值具有8比特。在这个实施例内,垂直半像素緩冲器44的 容量为24x19个半像素值(每个半像素值具有16比特),水平半像素緩冲 器46的容量为19x20个半像素值(每个半《象素值具有8比特),而对角线 半像素緩冲器48的容量为19x19个半像素值(每个半像素值具有8比特)。 可以理解,在不同的应用中,可以使用不同的緩冲器大小。
图3中示出了根据本发明一个实施例的半像素插值器40的示意框图。 依赖于所计算的半像素,输入緩沖器70从整数像素緩冲器42 (图2 )或 者从垂直半像素緩冲器44接收像素值。通过插值滤波器阵列72和移位寄 存器阵列74来执^f亍半^象素插值。在图3的实施例中,插值滤波器阵列72 包括四个数字滤波器F0-F3,所述数字滤波器中的每个具有6级S0-S5, 并且移位寄存器阵列74包括9个移位寄存器R0-R8,所述移位寄存器中 的每个具有6级S0-S5。每个数字滤波器F0-F3可以是FIR (有限脉冲响 应)插值滤波器。可以明白,这种配置仅仅是示例性的,并非对本发明的 范围的限制。
从输入緩沖器70向移位寄存器阵列74提供像素值,并且像素值在连 续的时钟周期向下移位通过移位寄存器阵列74的各级。移位寄存器阵列 74连接到插值滤波器阵列72,如下所述。在第一或垂直模式,插值滤波器阵列72中的插值滤波器从移位寄存器阵列74中选择与像素阵列的列对 应的像素值。在第二或水平模式,插值滤波器阵列72中的插值滤波器从 移位寄存器阵列74中选择与像素阵列的行对应的像素值。插值滤波器阵 列72执行所选像素值的插值,并且向输出緩冲器76提供半像素值。按照 半像素的类型,半像素值从输出緩沖器76中被存储到在图2所示的半像 素緩冲器44、 46或者48之一。在图3的实施例中,输入緩冲器70具有 9个寄存器位置[I0:I8,这9个寄存器位置保存16比特的像素值,而输出 緩沖器76具有四个寄存器位置[O0:O3,这四个寄存器位置保存16比特 的半像素值[O0:O3。
单个插值滤波器阵列72执行垂直半像素的插值、水平半4象素的插值 和对角线半像素的插值。这是通过将移位寄存器阵列74中的移位寄存器 的级连接到插值滤波器阵列72中的插值滤波器的对应级而实现的。如图 3所示,移位寄存器R0-R3的第一级S0分别连接到插值滤波器F0-F3的 第一级S0;移位寄存器Rl-R4的第二级Sl分别连接到插值滤波器F0-F3 的第二级S1;依此类推。
图3中,连接通过移位寄存器阵列74中的各级中的数字来表示。因 此,例如,移位寄存器R0的级S0連接到滤波器F0的级S0;移位寄存 器Rl的级S0连接到滤波器Fl的级0;移位寄存器R2的级0连接到滤 波器F2的级0;且移位寄存器R3的级S0连接到滤波器F3的级S0。类 似地,移位寄存器R5的级S5连接到滤波器F1的级S5;移位寄存器R6 的级S5连接到滤波器Fl的级S5;移位寄存器F7的级S5连接到滤波器 F2的级S5;且移位寄存器R8的级S5连接到滤波器F3的级S5。可以注 意到,移位寄存器阵列74的各级连接到插值滤波器阵列72的对应的各级。 移位寄存器阵列74和插值滤波器阵列72中的"对应的各级"具有相同的 级数。另外,可以注意到,沿移位寄存器阵列74的对角线的各级连接到 插值滤波器的对应的各级。该配置允许水平插值和对角线插值,如下所述。 垂直插值分别通过移位寄存器R0-R3的第一级S0和插值滤波器F0-F3的 第一级S0之间的连接来实现。
图4示出了梠》据本发明一个实施例的插值滤波器阵列72的示意框图。 如图所示,滤波器阵列72包括四个插值滤波器F0、 Fl、 F2和F3。每个 插值滤波器包括6个抽头或者级。每个插值滤波器的每个级可以包括锁存 器、加法器、乘法器和多工器,如下所述。在图4的实施例中,相乘是通 过比特移位而实现的,并不使用乘法器。第一级不需要加法器。而且,第
一级中可以省略多工器,原因是,第一M第一和第二工作模式中接iM目 同的输入。
每个插值滤波器具有在垂直半像素插值期间使用的第一输入和在水 平半像素插值和对角线半像素插值期间使用的第二输入,第一输入连接到
移位寄存器阵列74中的对应的移位寄存器的第一级SO。第二输入连接到 移位寄存器阵列74中的预定的移位寄存器中的对应的各级。因此,例如, 插值滤波器F0在线100a上接收第一输入,并在线100a、llla、112a、113a、 114a和115a上接收第二输入。到滤波器F0的第一级SO的线100a在第 一和第二模式中接^目同的输入,并且不需要数据选择。
插值滤波器F0的第二级包括锁存器108、加法器110和多工器111。 加法器110接收前一级的输出和多工器111的输出,并将和提供^T贞存器 108。多工器111在线100a上接收来自移位寄存器R0的级S0的第一输 入,并且在线llla上接收来自移位寄存器Rl的第一级S1的第二输入。 插值滤波器FO在第二到第六级内分别包括多工器lll、 112、 113、 114和 115。根据工作模式来控制每个多工器。在第一模式,每个多工器向插值 滤波器的每级提供线100a上的第一输入。在第二模式,每个多工器向移 位寄存器的对应的各级提供来自移位寄存器阵列74的像素值。在这个实 施例中,通it^提供给加法器110的像素值进行比特移位,来实现每个像 素值与滤波器系数的相乘。每个插值滤波器FO、 Fl、 F2和F3可以具有 相同的结构,其中具有适当的不同的输入。
图5示出了才艮据本发明一个实施例的移位寄存器阵列74的示意框图。 移位寄存器阵列74包括移位寄存器R0-R8,每个移位寄存器具有级 S0-S5。在图5的实施例中,移位寄存器阵列74包括9个移位寄存器。每 个移位寄存器对应于输入緩冲器70中的各像素值,并且每个移位寄存器 具有6级,每级对应于插值滤波器的各级。如下所述,可以省略未使用的 移位寄存器级。
输入像素值从输入緩冲器70被移位到移位寄存器阵列74的第一级 S0中,并且在连续的时钟周期被移位通过每个移位寄存器的各级。移位 寄存器R0-R3的第一级S0分别连接到插值滤波器F0-F3的第一输入。所 选择的移位寄存器Rl-R8的级Sl-S5分别连接到插值滤波器F0-F3的第 二输入。移位寄存器阵列74中的各移位寄存器的各级按照惯例"级,移 位寄存器]"来标注,其中,在这个实施例内,"级"具有从0到5的值, 且"移位寄存器"具有从0到8的值。这样,第四移位寄存器的第三级就
被标注为[2, 3

虚线140、 142、 144和146所包围的是耦接到插值滤波器阵列72的 移位寄存器阵列74的各级。虛线140所包围的各级耦接到插值滤波器F0; 虛线142所包围的各级耦接到插值滤波器Fl;虚线144所包围的各^ 接到插值滤波器F2;而虚线146所包围的各级耦接到插值滤波器F3。因 此,移位寄存器R0的级S0 (级[O, 0)耦接到插值滤波器F0的第一级; 移位寄存器Rl的级Sl (级[l, 1)耦接到在插值滤波器F0的第二级内 的多工器111;移位寄存器R2的级S2 (级[2, 2)耦接到插值滤波器F0 的第三级内的多工器112;移位寄存器R3的级S3 (级[3, 3])耦接到插 值滤波器F0的第四级内的多工器113;移位寄存器R4的级S4 (级[4, 4)耦接到插值滤波器F0的第五级内的多工器114;而移位寄存器R5的 级S5 (级[5, 5])耦接到插值滤波器F0的第六级内的多工器115。虚线 142、 144和146所包围的移位寄存器级以类似的方式分别连接到插值滤 波器F1-F3。由移位寄存器阵列74提供给插值滤波器阵列72的输入具有 在像素阵列中水平递增的效果,虽然所述过程实际上在所述像素阵列中从 上向下递增。
图6A示出了 9x6像素块的一个示例,其中在每个像素位置处示出了 一个像素值。图6B-6G示出了在连续的时钟周期上向移位寄存器阵列74 中装载图6A的9x6像素块。对于移位寄存器阵列中的每级,被提供给插 值滤波器F0-F3的像素值用像素值下的标记F0-F3来表示。水平半像素值 在第六行像素值被装栽到移位寄存器阵列74中之后产生。
通过跟踪图6A中的一行像素值通过如滤波器F0的所述插值滤波器 之一,即可理解水平插值。在图6B中,来自图6A的第一行像素值被装 载到移位寄存器阵列74的第一级S0中,并且像素值"12"被提供给滤波 器F0的级S0。在图6C中,第一行像素值被移位到移位寄存器阵列74 的第二级S1,并且像素值"65"被提供给滤波器F0的级Sl。在滤波器 F0的级S1中,根据滤波器系数的值对像素值"12"和"65"进行组合。 这个过程持续,直至通过移位寄存器阵列74和滤波器F0-F3中的每个。 在图6G中,第一行像素值被移位到移位寄存器阵列74的第六级S5,并 且向滤波器F0的级S5提供像素值"34"。在6个时钟周期之后,滤波器 F0输出水平半像素值,该水平半像素值表示图6A的像素阵列的第一行中 的像素值"12"、 "65"、 "34"、 "14"、 "86"和"34"的插值。在下一个时 钟周期,滤波器F0输出用于表示图6A的像素阵列的第二行中最初的6
个像素值的插值的水平半像素值。因此,在六个时钟周期的初始延迟之后,
滤波器F0在每个时钟周期输出水平半像素值。
半像素插值模块将以从前一整数搜索中产生的运动向量为中心的 24x24像素块作为输入,并且产生针对随后的半像素和四分之一像素搜索 的、与化264标准所要求的插值滤波相对应的半像素值。IL264标准需要 6抽头的水平和垂直滤波器用于半〗象素插值。如上所述,所述半l象素插值 模块使用在水平和垂直模式下工作的四个插值滤波器,两个模式之间的差 别在于(a)装载到滤波器中的输入数据(即整数或者半像素数据),(b ) 从阵列装载每个插值滤波器的方式,以及(c)是否对输出进行了削波处 理。
半像素插值器可由控制器5 (图2)控制,所述控制器50被实施为有 限状态机,该有限状态机循环通过三种操作(如下结合图7-9所述的), 以产生所有的半像素,包括垂直半像素、水平半《象素和对角线半〗象素(其 对应于IL264标准内的"j,,个4象素)。
第一种操作包括垂直地、从上向下地6遍通过24x24像素块,以产生 垂直半像素。这些半像素是通过向在第一或者垂直模式下配置的插值滤波 器F0、 Fl、 F2和F3中装载整数像素数据而产生的。在第一模式,每个 插值滤波器在其第一输入接收像素数据。到每级的输入是从整数像素緩冲 器42装载到输入緩冲器70中然后装载到移位寄存器阵列74中的新的一 行的像素数据。在6个周期后,在每个时钟周期产生输出,且结果以全分 辨率(16比特)存储到垂直半像素緩冲器44 (图2)中。垂直半像素用 于进一步的插值(全分辨率),并用于随后的半像素和四分之一像素搜索 (被截短成8比特)。
半像素插值的第二种操作是以垂直的、从上向下的5遍通过24x24 像素块而产生水平半像素。每一新行的像素数据从整数像素緩沖器42装 载到输入緩冲器70中,然后装载到移位寄存器阵列74中。输入緩冲器 70用于向半像素插值器中装载像素,但是所述插值滤波器被配置成工作 于第二或者水平模式。在第二模式,每个插值滤波器在其第二输入接收像 素数据。到每个插值滤波器的第二输入来自如上所述沿着对角线的移位寄 存器阵列74的对应的各级。因为进一步的插值不需要水平半像素,所以 每个滤波操作的最终结果被截短成8比特,并被存储在水平半像素緩冲器 46中。
半像素插值的第三种操作是以垂直的、从上向下的5遍通过24x24
像素块而产生对角线半像素。以类似的方式,对水平半像素执行对角线半 像素的产生,不同之处在于,输入像素数据是以全分辨率存储在垂直半像
素緩冲器44中的先前产生的垂直半像素数据。垂直半像素数据从垂直半 像素緩冲器44装载到输入緩冲器70中,然后装载到移位寄存器阵列74 中。在这个操作中,插值滤波器再次被配置成工作于第二或者水平模式。 并且第二输入是从像素移位寄存器74接收的。结果被输出到对角线半像 素緩冲器48,并且被截短成8比特而存储。
图7的流程图中示出了垂直半像素插值的过程的一个实施例。在动作 200中,插值滤波器FO、 Fl、 F2和F3被配置成工作于第一或者垂直模 式。在第一模式,各插值滤波器中的多工器从移位寄存器R0-R3的第一 级SO选择该插值滤波器的第一输入。在动作202中,整数像素从整数像 素緩冲器42装载到输入緩冲器70中、从输入緩冲器70装载到移位寄存 器R0-R3中、然后从移位寄存器R0-R3装载到插值滤波器F0-F3中。在 动作204中,插值滤波器在初始延迟后输出垂直半像素值。在6级插值滤 波器的情况下,输出是在6个时钟周期的初始延迟后提供的。在动作206 中,确定处理是否已到达《象素阵列的底部。如果该处理还没有到达阵列的 底部,则在动作208中该处理向下递增一行,并且返回动作202,以装载 用于像素阵列的下一行的整数像素。在将包括动作202、 204、 206和208 的循环执行了六次后,在动作204输出垂直半像素。如果在动作206确定 已经到达阵列的底部,则在动作210中确定是否已经处理了整个阵列。如 果整个阵列还没有被处理完,则在动作212中,该处理向阵列的右边递增 四列。然后,所述处理返回动作202,以装载第二组的四列的第一行中的 像素。该处理以这种方式继续,直到整个24x24像素块被处理完。在24x24 像素块和四个插值滤波器的情况下,图7的过程使用了垂直的、从上向下 的6遍。当整个阵列已被处理完时,所述过程在动作214进行至水平处理。
可以注意到,在每一组的四列被处理后,动作212涉及向像素阵列的 右边递增四列。相对照地,图3-5示出了了从右向左增加的4象素编号。所 述的明显的不一致是由于像素值通常被存储在存储器中的方式而导致的。 因此,例如,插值滤波器FO处理像素阵列的第一列,插值滤波器F1处 理像素阵列的第二列等。
图8的流程图中示出了水平半像素处理的过程的一个实施例。在动作 240中,插值滤波器FO、 Fl、 F2和F3被配置成工作于第二或者水平模 式。在第二模式,各插值滤波器中的多工器从移位寄存器阵列74选择输
入,如上所述。在动作242中,整数像素从整数像素緩沖器42装载到输 入緩冲器70中、然后从输入緩冲器70装载到移位寄存器阵列74中。具 体地,9个像素值被装载到移位寄存器阵列74中的9个移位寄存器R0-R8 中。移位寄存器阵列74中的像素值被提供给插值滤波器FO、 Fl、 F2和 F3的对应的各级,如上所述。在动作244中,插值滤波器在初始延迟后 输出水平半像素。在6级插值滤波器的情况下,水平半像素是在6个时钟 周期的初始延迟后输出的。在动作246中,确定是否已经到达像素阵列的 底部。如果还没有到达阵列的底部,则在动作248中该处理向下递增一行, 并返回动作242。在包括动作242、 244、 246和248的循环已^L执行六次 后,在动作244输出水平半i象素。当处理到达阵列底部时,在动作250 中确定是否已经处理了整个阵列。如果整个阵列还没有被处理完,则在动 作252中,该处理向右递增四列,并且返回动作242,以处理下一组的四 列。所述过程继续进行,直到处理了整个24x24像素块。在24x24像素块 和四个插值滤波器的情况下,图8的过程使用了垂直的、从上向下的5 遍。当已经处理了整个阵列时,该过程在动作254进行至对角线处理。
图9的流程图中示出了对角线半像素产生的过程的一个实施例。在动 作270中,插值滤波器被配置成工作于第二或者水平模式。在第二模式, 各插值滤波器中的多工器从移位寄存器阵列74接收输入,如上所述。在 动作272中,在图7的过程中产生的垂直半像素从垂直半像素緩冲器44 装载到输入緩冲器70中、然后从输入緩冲器70装载到移位寄存器阵列 74中。移位寄存器阵列74向插值滤波器F0、 Fl、 F2和F3的相应的各 级提供4象素值,如上所述。在动作274中,插值滤波器在初始延迟后输出 对角线半像素。在6级插值滤波器的情况下,初始延迟是6个时钟周期。 在动作276中,确定是否已经到达像素阵列的底部。如果还没有到达像素 阵列的底部,则在动作278中,该处理在阵列中向下递增一行,并且返回 动作272。在包括动作272、 274、 276和278的循环已被执行六次后,由 插值滤波器输出对角线半^^素。当已经到达阵列的底部时,在动作280 中确定是否已经处理了整个阵列。如果整个阵列还没有被处理完,则在动 作282中该处理向右递增四列,并且返回到动作272。所述过程继续进行, 直到已经处理了整个24x24像素块。在24x24像素块和四个插值滤波器的 情况下,图9的过程使用垂直的、从上向下的5遍。在已经处理了整个阵 列后,所述过程在动作284完成。
总之,用于执行半像素插值的电路可以使用小数量的6抽头的FIR 滤波器,从而使电路面积很小,所述滤波器处理像素阵列的垂直和水平方
向上的像素数据。使用四个专用存储器,以提供对插值像素值和整数像素
数据的存储。通过使用四个FIR滤波器,对于每个模式,数据被装载在5 个或者6个垂直的条中,而不是将输入的像素阵列以水平的方式逐行地提 供给插值滤波器(这需要24个滤波器)。使用状态机,以控制滤波器的模 式,所述滤波器执行垂直插值并存储全尺寸的结果,^进行水平插值, 然后进行对角线半像素插值。尽管所述FIR滤波器的数量小,但是插值 器仅以734个循环即可完成对24x24整数像素块的处理。
图10A的示意框图内示出了用于对数据阵列300中的数据值进行滤 波的设备。可存储在存储器中的数据阵列300具有数据值的行和列,并且 图10A的滤波i殳^^^^对数据阵列的数据值的二维滤波。输入緩冲器302 接收数据阵列的行中的数据值。所述数据值被提供给移位寄存器阵列 310,该移位寄存器阵列310具有移位寄存器320、 321、 322、 323、 324 和325,其中每个移位寄存器具有6级S0-S5。在连续的时钟周期,成行 的数据值向下移位通过移位寄存器阵列310。移位寄存器320-325的预定 的各级连接到数字滤波器330,该数字滤波器330具有级S0-S5。数字滤 波器330可以被配置为与图4所示且如上所述的插值滤波器之一对应的 FIR滤波器。在第一模式,移位寄存器320的级SO耦接到滤波器330的 各级S0-S5。在第二模式,被标注以"x"的移位寄存器320-325的各级连 接到滤波器330的对应的各级。
在工作中,在第一模式下对数据阵列中的一列或更多列的数据值进行 处理。然后,滤波器可切换到第二模式,而来自移位寄存器阵列的预定的 各级的数据值被提供给滤波器330,以提供对数据值的水平处理。因此, 可以提餘使用单个数字滤波器、利用图10A的设备来处理数据阵列的行 和列中的数据值。
图10B的示意框图中示出了数字滤波器级的另一个实施例。滤波器 级350包括锁存器352、加法器354、乘法器356和多工器358。多工器 358在第一或者垂直模式下提供垂直数据值V,并在第二或者水平模式下 提供水平数据值H,如上所述。乘法器356将所选择的数据值与滤波器系 数Cn相乘。加法器354将乘法器356的输出与前一级的输出组^来, 以提供存储在锁存器352中的和。在数字滤波器的第一级内,可以省去加 法器354。在可以通过比特移位而实现与滤波器系数相乘的情况下,在数 字滤波器的每级中,可省去乘法器356。
应该理解,在此所述的半l象素插值器可以利用不同数量的插值滤波器
以及每个插值滤波器中的不同数量的级来实现。已经发现,四个插值滤波
器即可提供良好的结果。选择6级是基于11.264视频编码标准的。但是, 其他标准或者设计考虑因素可能要求不同数量的级。另外,参见图5,可 以省略移位寄存器R0-R4的在虚线140右下边的级,因为在所述实施例 中不使用这些移位寄存器的输出。
虽然已经将插值处理描述为以垂直的方式多遍通过像素阵列,但是本 发明不限于此。在其他实施例中,可以将半《象素插值实施为以水平的方式 多遍通过像素阵列。另外,可以通过对水平半像素的垂直插值来获得对角 线半像素。
已经描述了本发明的至少一个实施例的几个方面,应当理解,本领域 内的普通技术人员容易认识到,可进行各种改变、修改和改进。这样的改 变、修改和改进旨在作为本公开的一部分,并且旨在处于本发明的精神和 范围内。因此,上述的说明和附图仅仅是示例性的。
权利要求
1.一种用于在具有像素行和列的像素阵列中进行像素插值的设备,包括移位寄存器阵列,用于将所述像素阵列的像素值移位,所述移位寄存器阵列包括两个或者更多个移位寄存器;插值滤波器阵列,与所述移位寄存器阵列互连,所述插值滤波器阵列包括一个或更多个插值滤波器;及控制器,被配置成在第一模式下向相应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的列中的像素值,并且被配置成在第二模式下向相应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的行中的像素值。
2. 根据权利要求1所述的设备,其中所述移位寄存器的M接到所 述插值滤波器的对应的级。
3. 根据权利要求2所述的设备,还包括输入緩沖器,用于保存所述 像素阵列的像素值,所述输入緩冲器耦接到所述移位寄存器阵列。
4. 根据权利要求2所述的设备,其中所述插值滤波器阵列包括4个 有限脉沖响应FIR插值滤波器,每个插值滤波器具有6级,并且所述移 位寄存器阵列包括9个移位寄存器。
5. 根据权利要求2所述的设备,其中所述插值滤波器阵列包括m个 插值滤波器,其中每个插值滤波器具有n级,并且其中所述移位寄存器阵 列包括m+n-l个移位寄存器。
6. 根据权利要求1所述的设备,其中所述控制器被配置成在第一模 式下向相应的插值滤波器提供所述像素阵列的列中的整数像素值,以产生 垂直子像素值,并且被配置成在第二模式下向相应的插值滤波器提供所述 像素阵列的行中的整数像素值,以产生水平子《象素值。
7. 根据权利要求6所述的设备,其中所述控制器被进一步配置成 在第二模式下向相应的插值滤波器提供垂直子^象素值,以产生对角线子傳_素值。
8. 根据权利要求1所述的设备,其中所述插值滤波器中的每个在第 一模式下从所述移位寄存器阵列选择第一输入,并且在第二模式下从所述 移位寄存器阵列选择第二输入。
9. 根据权利要求3所述的设备,其中所述控制器被配置成在垂直 子像素值的产生期间以及在水平子像素值的产生期间向所述输入緩沖器 中装载整数像素值,并且在对角线子像素值的产生期间向所述输入緩冲器 内中装载垂直子4象素值。
10. 根据权利要求1所述的设备,其中所述控制器被配置成在第一 阶段中顺序通过所述像素阵列,以产生垂直子像素值,在第二阶段中顺序 通过所述像素阵列,以产生水平子像素值,并且在第三阶段中顺序通过所 述垂直子〗象素值,以产生对角线子像素值。
11. 一种用于在具有像素行和列的像素阵列中进行像素插值的方法, 包括提供包括两个或者更多个移位寄存器的移位寄存器阵列及与所述移 位寄存器阵列互连的插值滤波器阵列,所述插值滤波器阵列包括一个或更 多个插值滤波器;通过所述移位寄存器阵列中的移位寄存器,将所述像素阵列的像素值 移位;在第一模式下向相应的插值滤波器提供来自所述移位寄存器阵列的 像素阵列的列中的像素值,以产生垂直子像素值;以及在第二模式下向相应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的行中的像素值,以产生水平子像素值。
12. 根据权利要求11所述的方法,还包括将来自所述移位寄存器 的级的垂直子像素值提供给所述插值滤波器的对应的级,以产生对角线子 像素值。
13. 根据权利要求11所述的方法,其中提供插值滤波器阵列包括 提供4个有限脉冲响应FIR数字滤波器,每个数字滤波器具有6级,并 且其中提供移位寄存器阵列包括提供9个移位寄存器。
14. 根据权利要求11所述的方法,其中提供来自所述移位寄存器阵 列的像素值包括将来自所述移位寄存器的级的像素值提供给所述插值滤 波器的对应的级。
15. 根据权利要求12所述的方法,还包括提#^接到所述移位寄 存器阵列的输入緩冲器,以及在垂直子像素值的产生期间及在水平子l象素 值的产生期间向所述输入緩冲器中装载整数像素值,并且在对角线子像素值的产生期间向所述输入緩冲器中装载垂直子像素值。
16. 根据权利要求12所述的方法,还包括在第一阶段中顺序通过 所述像素阵列,以产生垂直子像素值,在第二阶段中顺序通过所述像素阵 列,以产生水平子像素值,以及在第三阶段中顺序通过所述垂直子像素值, 以产生对角线子4象素值。
17. —种用于对具有数据值的行和列的数据阵列中的数据值进行滤波 的i殳备,包括移位寄存器阵列,用于将所述数据阵列的数据值移位;至少一个数字滤波器,与所述移位寄存器阵列互连;以及控制器,用于在第一模式下向所述数字滤波器提供来自所述移位寄存 器阵列的数据阵列的列中的数据值,并在第二模式下向所述数字滤波器提 供来自所述移位寄存器阵列的数据阵列的行中的数据值。
18. 根据权利要求17所述的设备,其中所述移位寄存器的级连接到 所述数字滤波器的对应的级。
19. 根据权利要求17所述的设备,其中所述移位寄存器阵列与所述 数字滤波器互连,以便在第一模式下在连续的时钟周期将所述数据阵列的 列中的数据值提供给所述数字滤波器的级。
20. 根据权利要求17所述的设备,其中,所述移位寄存器阵列与所 述数字滤波器互连,以便在连续的时钟周期将所述数据阵列的行中的数据 值拔:供给所述数字滤波器的连续的级。
全文摘要
提供了用于在具有像素行和列的像素阵列中进行像素插值的方法和设备。所述设备包括移位寄存器阵列,用于将所述像素阵列的像素值移位,所述移位寄存器阵列包括两个或者更多个移位寄存器;插值滤波器阵列,与所述移位寄存器阵列互连,所述插值滤波器阵列包括一个或更多个插值滤波器;及控制器,被配置成在第一模式下向相应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的列中的像素值,并且被配置成在第二模式下向相应的插值滤波器提供来自所述移位寄存器阵列的像素阵列的行中的像素值。所述控制器可被配置成在第二模式下向所述插值滤波器提供来自所述移位寄存器阵列的垂直子像素值,以产生对角线子像素值。
文档编号H04N7/26GK101374236SQ20081013305
公开日2009年2月25日 申请日期2008年7月8日 优先权日2007年7月9日
发明者柯 宁, 弗拉迪米尔·伯切夫, 伟 张, 马克·科克斯, 马克·霍夫曼 申请人:模拟装置公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1