首页 / 专利库 / 视听技术与设备 / 视频编码层 / 用于H.264/AVC编码器的运动估计方法

用于H.264/AVC编码器运动估计方法

阅读:139发布:2021-09-18

专利汇可以提供用于H.264/AVC编码器运动估计方法专利检索,专利查询,专利分析的服务。并且本 发明 属于用于H.264/ AVC 编码器 的 运动估计 方法,其特征在于,把整数运动估计分为粗糙层和精细层,依次分别估计;然后通过一个输入分别为参考 帧 数据和粗糙层运动向量的整数象素数据输入结构并行的进行精细层运动估计和半象素插值,接着,依次进行半象素运动估计和1/4象素运动估计,从而通过粗糙层运动估计得到的最佳预测模式下其最小残差对应的运动向量来计算最终的最小残差和其对应的最终运动向量。实践证明,本发明提出的方法可以节省64.5%的计算时间。,下面是用于H.264/AVC编码器运动估计方法专利的具体信息内容。

1.用于H.264/AVC编码器运动估计方法,其特征在于,该方法是在一数字集成 电路芯片内依以下步骤实现的:
步骤(1),把运动图像以为单位输入当前存储器,该当前帧存储器以宏块为单位把 当前宏块输入当前宏块存储器;把符合H.264/AVC视频编码标准的视频图像以帧为单位输 入参考帧存储器;
步骤(2),粗糙层数据预处理器按以下步骤进行粗糙层数据预处理:
步骤(2.1),第1数据输入缓存器从当前宏块存储器中读取32位当前宏块数据;第2 数据输入缓存器从参考帧存储器中读取32位搜索区域数据;
步骤(2.2),步骤(2.1)中所述的两个数据输入缓冲器各自把4个连续输入的32位数 据合并成一个128位数据分别送到第1均值滤波器阵列和第2均值滤波器阵列;
步骤(2.3),步骤(2.2)中所述的两个均值滤波器阵列依次同时获取粗糙层当前宏块 数据和粗糙层整数运动估计搜索区域数据,输出均为64位;
其中,粗糙层整数运动估计搜索区域中的每个象素用以下公式求得:
Pelc=(Pel00+Pel01+Pel10+Pel11)/4,
Pelc表示粗糙层的一个象素;
Pel00、Pel01分别表示原始参考帧搜索区域第2*n行第2*m、第2*m+1个象素,Pel10、 Pel11分别表示原始参考帧搜索区域第2*n+1行第2*m、第2*m+1个象素,n、m在[0,23] 之间,从而得到一个48*48位的粗糙层运动估计的搜索区域,该宏块的搜索区域中心位于 当前该宏块左上象素;
步骤(2.4),第1、第2两个均值滤波器阵列分别依次向当前宏块均值滤波后数据存储 器阵列和搜索区域移位寄存器阵列输出64位的数据,所述每个存储器存放一个8位象素数 据;
步骤(3),粗糙层运动估计器按以下步骤进行粗糙层运动估计,并输出预测模式以及相 应运动向量:
步骤(3.1),粗糙层数据预处理器向粗糙层运动估计器中的8位2*2块的残差计算器输 入当前宏块数据及粗糙层运动估计搜索区域数据,残差用SAD表示;
步骤(3.2),所述8位2*2块残差计算器采用加法树结构在一个时钟周期内计算出4*4、 4*8、8*4、8*8、8*16、16*8和16*16共7种预测模式对应的所有2*2、2*4、4*2、4*4、 4*8、8*4和8*8子块对应的残差;
步骤(3.3),最相似块搜索器在每个时钟来临时比较从所述8位2*2块残差计算器得到 的各种预测模式下当前所有子块的残差与当前时钟前得到的最小残差的大小,保存更小的 残差数据,若当前时钟得到的残差更小,则根据当前相似块的位置更新最小残差对应的运 动向量;循环执行步骤(3.1)~(3.3),直到粗糙层搜索区域搜索完毕,得到最小残差及 其相应的运动向量;
步骤(3.4),在步骤(3.3)执行结束后,先把上述各种预测模式下各自对应的各子块 的最小残差相加,分别得到每种预测模式下的残差和;其次,比较7个残差和,选择其中 残差和最小的预测模式作为最佳模式;
步骤(3.5),运动向量均值器根据步骤(3.4)得到的最佳预测模式,把该模式对应 的各子块的运动向量相加,取其均值,得到粗糙层运动估计的运动向量;
步骤(4),用并行处理器按以下步骤并行执行精细层运动估计和半象素插值:
步骤(4.1),粗糙层运动估计器和参考帧存储器依次分别把粗糙层运动估计的运动向量 和参考帧数据送入增速象素输入缓存器;
步骤(4.2),所述整数象素输入缓存器把24*24的精细层搜索区域数据输入到精细层搜 索区域移位寄存器阵列,而所述移位寄存器再把该精细层搜索区域数据送入精细层运动估 计器,依次按以下步骤计算出精细层最小残差及相应的运动向量:
步骤(4.2.1),把所述精细层搜索区域数据、相应的当前宏块数据送入一个精细层残差 计算器,计算出4*4、4*8、8*4、8*8、8*16、16*8以及4*4块的残差:
所述残差计算器由4个各自的元素为8*8个残差数据构成的子残差计算器构成;在该 子残差计算器中,同一行每4个残差数据通过加法树相加得到一个4*1子块的残差,4个 4*1子块的残差相加得到一个4*4子块的残差,在一个时钟周期内计算出所有4*4块的残差, 再通过加法树结构,计算出当前宏块所有子块对应的残差,循环执行,一直到精细层搜索 区域全部处理完毕;
步骤(4.2.2),最相似搜索器在每个时钟来临时比较步骤(4.2.1)所述的当前时钟得到 的残差与当前时钟前得到的最小残差的大小,若当前时钟得到的残差更小,则根据当前相 似块的位置更新最小的残差对应的运动向量;循环执行,直到精细层搜索区域搜索完毕, 得到最小残差及其相应的运动向量;
步骤(4.3),所述整数象素输入缓存器同时把30*30的半象素搜索区域数据送入半象素 插值滤波器阵列,所述滤波器采用H.264/AVC标准指定的6抽头FIR滤波器,所述阵列使 用4个平滤波器和8个垂直滤波器,该4个水平滤波器使用一行整数象素中的6个象素 插值,该8个垂直滤波器使用一列整数象素或一列半象素中的六个象素插值,插值公式为:
Pelh=round((Pel0-5Pel1+20Pel2+20Pel3-5Pel4+Pel5)/32),
其中,round()表示取整,下标h表示半象素,下标0~5表示产生半象素的6个整数象 素和半象素
所述半象素插值滤波器阵列通过半象素插值存储器I输出整数象素,同时通过A、B、 C三个半象素存储器分别输出水平、垂直半象素以及夹于水平和垂直两个插值之间的半象 素之值;
步骤(4.4),用并行计算结束判决器判决精细层运动估计和半象素插值滤波计算是否结 束,如已结束,发出结束信号
步骤(5),用半象素运动估计器以及1/4象素运动估计器按以下步骤依次进行半象素运 动估计和1/4象素运动估计:
步骤(5.1),用半象素运动估计器进行半象素运动估计,并输出半象素最小残差和相应 的半象素运动向量,其步骤依次如下:
步骤(5.1.1),所述精细层运动估计器向半象素运动估计器中的片上存储器接口输入最 小残差及相应的运动向量;所述三个半象素存储器A、B、C向所述片上存储器接口输入半 象素A、半象素B及半象素C;
步骤(5.1.2),所述片上存储器接口通过3个半象素输入缓存器把A、B、C三类半象 素分别送往三个半象素搜索区域存储器后,在分别用3个半象素运动估计器按以下步骤对 A、B、C三类半象素进行运动估计:
首先,每个半象素运动估计器用一个4*4子块的残差计算器计算当前宏块的4*4子块 与半象素搜索区域4*4子块的残差;
然后,用一个最相似块选择器对照不同类型搜索区域得到的最相似子块的残差,选择 其中最小的残差与精细层搜索得到的最小残差对比,得出更小的残差对应的相似块为半象 素运动估计的最相似块,得出其半象素残差及相应的运动向量;
步骤(5.2),用1/4象素运动估计器进行1/4象素运动估计,按以下步骤得到1/4象素 的最小残差及相应的1/4运动向量:
步骤(5.2.1),把从半象素运动估计器输出的半象素最小残差以及相应的运动向量、半 象素插值存储器I得到的整数象素I、半象素插值存储器A、B、C得到的半象素A、B、C 以及当前宏块存储器的当前宏块都输入1/4象素插值存储器接口;
步骤(5.2.2),1/4象素插值计算器阵列从所述1/4象素插值存储器接口输入的要计算 的一个1/4象素所相邻的两个半象素或者一个半象素和一个整数象素求均值得到该1/4象 素,可得到12种1/4象素,但只计算所述半象素运动估计器得到的半象素最相似块的象素 周围的8种1/4象素;
步骤(5.2.3),所述1/4象素插值计算器阵列把所得的所有1/4象素分别存入8个1/4 象素搜索区域存储器,并分别送入8个1/4象素运动估计器;
步骤(5.2.4),8个1/4象素运动估计器分别用一个4*4块的残差计算器分别从所述8 个1/4象素搜索区域存储器得到1/4象素块和预先内存的当前宏块的4*4子块之间的残差;
步骤(5.2.5),一个最相似块选择器选择步骤(5.2.4)种所述8种搜索区域中残差最小 的作为最佳1/4象素相似块,并计算相应的运动向量,再把该残差与半象素搜索得到的最小 残差相比,选择最小的残差对应的相似块作为H.264/AVC运动估计器生成的最终选择的最 佳相似块;
步骤(6),用一个最终运动向量计算器计算H.264/AVC运动估计器生成的最终运动向 量MVf,并存入运动估计结果存储器:
MVf=8MVc+4MVp+2MVh+MVq,
其中,c、p、h、q对应的运动向量分别表示粗糙层、精细层、半象素和1/4象素运动 估计器得到的运动向量。
2.根据权利要求1所述的用于H.264/AVC编码器的运动估计方法,其特征在于,所述 的半象素运动估计和1/4象素运动估计中采用了4*4块残差计算器。

说明书全文

技术领域

发明涉及一种运动估计的方法,特别是涉及一种用于H.264/AVC编码器的快速运动 估计方法的硬件实现。

背景技术

H.264/AVC标准是由国际电信联盟电信标准化部ITU-T的VCEG(视频专家组)和国 际标准化组织ISO的MPEG(运动图像专家组)联合开发的面向低码率视频通信应用的视 频压缩标准,但是其优异的压缩性能使得它的作用并不仅仅局限于此,该标准在数字电视 广播、视频实时通信、网络视频流媒体传递以及多媒体短信等方面都将发挥重要作用,近 年来更是得到了广泛地关注和研究。H.264/AVC标准对于运动图像的压缩能很大程度上 归因于它所采用的运动估计算法,即:将16*16的象素定义为宏块(MB),在编码时每 个宏块都可以被划分为16*16、16*8、8*16、8*8、8*4、4*8或者4*4的7种大小、形状不 同的子块(block),这种子块的划分方式称为预测模式。在编码时从视频序列中选取部分 帧图作为参考帧,并以宏块为单位对这些参考帧的象素数据完全编码;而在编码其他非参 考帧时,也以宏块为单位进行编码,方法如下。编码时首先通过搜索、对比,确定各预测 模式下当前宏块中各子块在参考帧中对应的最相似块,求出各子块在当前帧的位置与其最 相似块在参考帧的位置之间的位移——称为运动向量,以及当前子块与相似块相同位置象 素之间的差值——称为残差,最后只需编码根据各预测模式对应的编码代价(编码后码流 的大小)选择的最佳预测模式及其对应的运动向量和残差数据。将上述运动估计策略配合 整数离散余弦变换及熵编码就能大大降低运动图像的数据量。在H.264/AVC运动估计过程 中,必须考虑所有预测模式的编码代价,即针对每一宏块,必须计算其7种预测模式对应 的41个子块的运动向量和残差数据;而且,运动向量的精度必须是1/4象素单位。
搜索当前宏块中各子块在参考帧中最相似块的过程,称为运动估计。运动估计时需要 在参考帧中确定一个搜索当前子块最相似块的搜索范围——称为搜索区域。最精确的实现 方式为全局搜索方法:在搜索区域内以单位象素为搜索步长逐点计算当前子块与搜索区域 子块的相似度(通常根据两个象素块之间的象素差的绝对值之和SAD衡量),确定相似度 最大(SAD最小)的块为最相似子块——称为整数象素运动估计;以1/2象素单位为步长, 搜索当前子块与确定的最相似子块周围的1/2象素搜索区域,确定最佳1/2象素相似块—— 称为半象素运动估计;以1/4象素单位为步长,搜索当前子块与确定的最佳1/2象素相似块 周围的1/4象素搜索区域,确定最佳1/4象素相似块——称为1/4象素运动估计;最终确定 预测模式及其对应的运动向量和残差数据。上述过程是顺序进行的。
全局搜索方法虽然能够得到最佳的运动估计结果,但是其计算量是惊人的,而且需要 频繁的访问存放参考帧的存储器,需要很长的计算时间。而H.264/AVC标准应用于视频通 信、数字广播、网络电视流媒体传输等领域,对实时性的要求很高,这样大的计算量和计 算时间无法满足这一要求。因此,实用的H.264/AVC编码器需要采用快速运动估计方法。

发明内容

本发明的目的在于提供一种硬件实现的部分并行化的运动估计方法,该方法能满足视 频通信类应用的实时性要求,减少对存储器的访问次数,提高H.264/AVC编码器的工作频 率。
本发明所述的方法的思路在于,采用分层搜索的策略实现H.264运动估计器中的整数 象素运动估计,从而使得整数象素运动估计和分数运动估计可以部分并行的执行,提高了 运动估计的处理速度。本发明所述的整数运动估计和分数运动估计的部分并行指的是,将 整数运动估计分为粗糙层整数象素运动估计和精细层整数象素运动估计两层,两层顺序执 行;将分数运动估计分为半象素运动估计和1/4象素运动估计两层,两层顺序执行; H.264/AVC运动估计器首先执行粗糙层整数象素运动估计,然后并行执行精细层整数象素 运动估计和半象素运动估计中的半象素插枝计算操作,最后执行1/4象素运动估计。
本发明所述的系统的思路在于,根据本发明所述运动估计方法所处理数据的大小和类 型的不同,采用了不同的存储器策略,减少了对外部存储器的访问量,实现了一个基于硬 件的并行化完成H.264/AVC运动估计的系统。本发明所述的存储器策略,将在下文的实施 例中给出详细说明。
2.本发明的特征在于该方法是在一块数字集成电路芯片内依以下步骤实现的:
步骤(1),把运动图像以帧为单位输入当前帧存储器,该当前帧存储器以宏块为单位把 当前宏块输入当前宏块存储器;把符合H.264/AVC视频编码标准的视频图像以帧为单位输 入参考帧存储器;
步骤(2),粗糙层数据预处理器按以下步骤进行粗糙层数据预处理:
步骤(2.1),第1数据输入缓存器从当前宏块存储器中读取32位当前宏块数据;第2 数据输入缓存器从参考帧存储器中读取32位搜索区域数据;
步骤(2.2),步骤(2.1)中所述的两个数据输入缓冲器各自把4个连续输入的32位数 据合并成一个128位数据分别送到第1均值滤波器阵列和第2均值滤波器阵列;
步骤(2.3),步骤(2.2)中所述的两个均值滤波器阵列依次同时获取粗糙层当前宏块 数据和粗糙层整数运动估计搜索区域数据,输出均为64位;
其中,粗糙层整数运动估计搜索区域中的每个象素用以下公式求得:
Pelc=(Pel00+Pel01+Pel10+Pel11)/4,
Pelc表示粗糙层的一个象素;
Pel00、Pel01分别表示原始参考帧搜索区域第2*n行第2*m、第2*m+1个象素,Pel10、 Pel11分别表示原始参考帧搜索区域第2*n+1行第2*m、第2*m+1个象素,n、m在[0,23] 之间,从而得到一个48*48位的粗糙层运动估计的搜索区域,该宏块的搜索区域中心位于 当前该宏块左上象素;
步骤(2.4),第1、第2两个均值滤波器阵列分别依次向当前宏块均值滤波后数据存储 器阵列和搜索区域移位寄存器阵列输出64位的数据,所述每个存储器存放一个8位象素数 据;
步骤(3),粗糙层运动估计器按以下步骤进行粗糙层运动估计,并输出预测模式以及相 应运动向量:
步骤(3.1),粗糙层数据预处理器向粗糙层运动估计器中的8位2*2块的残差计算器输 入当前宏块数据及粗糙层运动估计搜索区域数据,残差用SAD表示;
步骤(3.2),所述8位2*2块残差计算器采用加法树结构在一个时钟周期内计算出4*4、 4*8、8*4、8*8、8*16、16*8和16*16共7种预测模式对应的所有2*2、2*4、4*2、4*4、 4*8、8*4和8*8子块对应的残差;
步骤(3.3),最相似块搜索器在每个时钟来临时比较从所述8位2*2块残差计算器得到 的各种预测模式下当前所有子块的残差与当前时钟前得到的最小残差的大小,保存更小的 残差数据,若当前时钟得到的残差更小,则根据当前相似块的位置更新最小残差对应的运 动向量;循环执行步骤(3.1)~(3.3),直到粗糙层搜索区域搜索完毕,得到最小残差及 其相应的运动向量;
步骤(3.4),在步骤(3.3)执行结束后,先把上述各种预测模式下各自对应的各子块 的最小残差相加,分别得到每种预测模式下的残差和;其次,比较7个残差和,选择其中 残差和最小的预测模式作为最佳模式;
步骤(3.5),运动向量均值器根据步骤(3.4)得到的最佳预测模式,把该模式对应 的各子块的运动向量相加,取其均值,得到粗糙层运动估计的运动向量;
步骤(4),用并行处理器按以下步骤并行执行精细层运动估计和半象素插值:
步骤(4.1),粗糙层运动估计器和参考帧存储器依次分别把粗糙层运动估计的运动向量 和参考帧数据送入增速象素输入缓存器;
步骤(4.2),所述整数象素输入缓存器把24*24的精细层搜索区域数据输入到精细层搜 索区域移位寄存器阵列,而所述移位寄存器再把该精细层搜索区域数据送入精细层运动估 计器,依次按以下步骤计算出精细层最小残差及相应的运动向量:
步骤(4.2.1),把所述精细层搜索区域数据、相应的当前宏块数据送入一个精细层残差 计算器,计算出4*4、4*8、8*4、8*8、8*16、16*8以及4*4块的残差:
所述残差计算器由4个各自的元素为8*8位残差数据构成的子残差数据构成的子残差 计算器构成;在该子残差计算器中,同一行4个残差数据通过加法树相加得到一个4*1子 块的残差,4个4*1子块的残差相加得到一个4*4子块的残差,在一个时钟周期内计算出所 有4*4块的残差,再通过加法树结构,计算出当前宏块所有子块对应的残差,循环执行, 一直到精细层搜索区域全部处理完毕;
步骤(4.2.2),最相似搜索器在每个时钟来临时比较步骤(4.2.1)所述的当前时钟得到 的残差与当前时钟前得到的最小残差的大小,若当前时钟得到的残差更小,则根据当前相 似块的位置更新最小的残差对应的运动向量;循环执行,直到精细层搜索区域搜索完毕, 得到最小残差及其相应的运动向量;
步骤(4.3),所述整数象素输入缓存器同时把30*30的半象素搜索区域数据送入半象素 插值滤波器阵列,所述滤波器采用H.264/AVC标准指定的6抽头FIR滤波器,所述阵列使 用4个平滤波器和8个垂直滤波器,该4个水平滤波器使用一行整数象素中的6个象素 插值,该8个垂直滤波器使用一列整数象素或一列半象素中的六个象素插值,插值公式为:
Pelh=round((Pel0-5Pel1+20Pel2+20Pel3-5Pel4+Pel5)/32),
其中,round()表示取整,下标h表示半象素,下标0~5表示产生半象素的6个整数象 素和半象素
所述半象素插值滤波器阵列通过半象素插值存储器I输出整数象素,同时通过A、B、 C三个半象素存储器分别输出水平、垂直半象素以及夹于水平和垂直两个插值之间的半象 素之值;
步骤(4.4),用并行计算结束判决器判决精细层运动估计和半象素插值滤波计算是否结 束,如已结束,发出结束信号
步骤(5),用半象素运动估计器以及1/4象素运动估计器按以下步骤依次进行半象素运 动估计和1/4象素运动估计:
步骤(5.1),用半象素运动估计器进行半象素运动估计,并输出半象素最小残差和相应 的半象素运动向量,其步骤依次如下:
步骤(5.1.1),所述精细层运动估计器向半象素运动估计器中的片上存储器接口输入最 小残差及相应的运动向量;所述三个半象素存储器A、B、C向所述片上存储器接口输入半 象素A、半象素B及半象素C;
步骤(5.1.2),所述片上存储器接口通过3个半象素输入缓存器把A、B、C三类半象 素分别送往三个半象素搜索区域存储器后,在分别用3个半象素运动估计器按以下步骤对 A、B、C三类半象素进行运动估计:
首先,每个半象素运动估计器用一个4*4子块的残差计算器计算当前宏块的4*4子块 与半象素搜索区域4*4子块的残差;
然后,用一个最相似块选择器对照不同类型搜索区域得到的最相似子块的残差,选择 其中最小的残差与精细层搜索得到的最小残差对比,得出更小的残差对应的相似块为半象 素运动估计的最相似块,得出其半象素残差及相应的运动向量;
步骤(5.2),用1/4象素运动估计器进行1/4象素运动估计,按以下步骤得到1/4象素 的最小残差及相应的1/4运动向量:
步骤(5.2.1),把从半象素运动估计器输出的半象素最小残差以及相应的运动向量、半 象素插值存储器I得到的整数象素I、半象素插值存储器A、B、C得到的半象素A、B、C 以及当前宏块存储器的当前宏块都输入1/4象素插值存储器接口;
步骤(5.2.2),1/4象素插值计算器阵列从所述1/4象素插值存储器接口输入的要计算 的一个1/4象素所相邻的两个半象素或者一个半象素和一个整数象素求均值得到该1/4象 素,可得到12种1/4象素,但只计算所述半象素运动估计器得到的半象素最相似块的象素 周围的8种1/4象素;
步骤(5.2.3),所述1/4象素插值计算器阵列把所得的所有1/4象素分别存入8个1/4 象素搜索区域存储器;
步骤(5.2.4),8个1/4象素运动估计器分别用一个4*4块的残差计算器分别从所述8 个1/4象素搜索区域存储器得到1/4象素块和预先内存的当前宏块的4*4子块之间的残差;
步骤(5.2.5),一个最相似块选择器选择步骤(5.2.4)种所述8种搜索区域中残差最小 的作为最佳1/4象素相似块,并计算相应的运动向量,再把该残差与半象素搜索得到的最小 残差相比,选择最小的残差对应的相似块作为H.264/AVC运动估计器生成的最终选择的最 佳相似块;
步骤(6),用一个最终运动向量计算器计算H.264/AVC运动估计器生成的最终运动向 量MVf,并存入运动估计结果存储器;
MVf=8MVc+4MVp+2MVh+MVq,
其中,c、p、h、q对应的运动向量分别表示粗糙层、精细层、半象素和1/4象素运动 估计器得到的运动向量。
本发明提出的H.264/AVC运动估计方法可以极大的提高运动估计的计算速度。与全局 搜索方法相比,采用相同的搜索区域时,本发明提出的H.264/AVC运动估计方法可以节省 64.5%的计算时间。本发明提出的H.264/AVC运动估计系统各计算单元的计算时间与全局 搜索方法的比较如下表所示。   整数象素   运动估计   半象素   运动估计   1/4象素   运动估计   总计   全局搜索   2480   484   168   3132   新方法   744   236   168   1148   相对比较   30.0%   48.8%   100%   35.5%
表中的整数数据表示两种方法完成相同计算所用的时钟数,百分比表示本发明提出的运动 估计方法完成相同计算所用时钟数占全局搜索方法的百分比。
附图说明
说明书中的附图仅为图示的目的而提供,并不对本发明的内容产生任何限制,其中:
图1示出了经典的全局搜索运动估计器的流程图
图2a示出了本发明所述方法的运动估计器的工作原理图;
图2b示出了本发明提出的运动估计方法的工作流程图;
图2c示出了实现本发明所述运动估计器系统工作的状态转移图;
图3示出了本发明提出的H.264/AVC运动估计器系统的结构框图
图4a示出了本发明采用的运动向量预测方法;
图4b示出了本发明中粗糙层数据预处理器的简单框图;
图4c示出了本发明中获取粗糙层整数象素运动估计搜索区域的方法;
图5a示出了本发明中粗糙层整数象素运动估计器的简单框图;
图5b示出了本发明中粗糙层运动估计器的SAD计算器的硬件结构;
图5c示出了本发明中粗糙层运动估计器的SAD计算器中计算一个2*2子块SAD的硬 件结构;
图6a示出了本发明中精细层整数象素运动估计搜索区域与半象素插值所需整数象素的 关系;
图6b示出了本发明中半象素插值和精细层整数象素运动估计并行处理的流程;
图6c示出了本发明中并行处理器的简单框图;
图6d示出了本发明采用的插值滤波器阵列结构;
图6e示出了本发明中精细层搜索区域数据的存储策略;
图6f示出了本发明中精细层整数象素运动估计器简单框图;
图6g示出了SAD计算器中计算8*8、8*4、4*8和4*4块的SAD的硬件结构;
图6h示出了本发明中并行计算过程的时序示意图;
图7a示出了整数象素与半象素、1/4象素的位置关系;
图7b示出了本发明中半象素运动估计器的简单框图;
图7c示出了本发明中1/4象素运动估计器的简单框图;
图7d示出了符合本发明实施实例的H.264/AVC运动估计器简单框图。

具体实施方式

本发明的显著特点在于,根据H.264/AVC运动估计的工作原理、运动估计过程中整数 运动估计和分数运动估计的数据相关性以及视频通信类应用对压缩图像质量的要求,提出 了部分并行的运动估计方法。本发明提出的运动估计方法使得整数运动估计和分数运动估 计可以部分地并行执行,从而达到提高运动估计速度的目的。
本发明的另一特点在于,采用了一种运动向量预测值生成方法和合理的搜索范围,使 得本发明所述的运动估计器系统在整数运动估计时相邻宏块可以共享参考帧的搜索区域数 据,在半象素运动估计时当前宏块的各子块可以共享参考帧的搜索区域数据,从而达到降 低存储器访问次数的目的。
本发明的第三个特点在于,采用了一种可重用的硬件结构,该结构在半象素和1/4象素 运动估计时被用来计算SAD,从而降低了半象素运动估计和1/4象素运动估计的硬件资源 开销。
本发明的第四个特点在于提出了一种数字电路系统,该系统实现了本发明所提出的并 行化运动估计方法。该系统可以从当前帧和参考帧存储器中读取数据,快速的完成运动估 计。
下面将根据附图对本发明的具体实施方式进行详细说明。
图1示出了经典的全局搜索运动估计器的流程图。H.264/AVC标准中运动估计可以分 为两个阶段:整数象素运动估计和分数象素运动估计。其中分数象素运动估计又包括半象 素运动估计和1/4象素运动估计。不同精度级别的运动估计又包括数据预处理和最相似块搜 索两个环节。数据预处理环节的功能在于:根据当前处理的宏块或者子块的位置以及运动 估计的搜索精度,产生相应的搜索区域图像数据,这些数据可能是需要从存放参考帧的外 部存储器中读取,也可能需要从参考帧存储器中读取数据后通过插值计算得到,但都必须 在最相似块搜索环节之前得到。最相似块搜索环节的功能在于:在数据预处理环节产生的 搜索区域中搜索当前宏块或者子块的最相似块。计算当前精度运动估计的搜索区域需要用 到更粗糙精度的运动估计的结果,由于整数象素运动估计的搜索范围比较大,最后得到的 当前宏块各子块的运动向量也比较分散,因此不能提前估计当前宏块分数象素运动估计搜 索区域的位置。在这种数据相关性的限制下,全局搜索运动估计必须顺序进行。因此全局 搜索运动估计方法的流程图(图1)也是该方法执行的状态转移图。
熟悉H.264视频压缩编码标准的人都清楚,如果整数运动估计的搜索区域比较小,那 么在其基础上进行的分数运动估计也会限定在有限的范围内,这样就可以提前计算该范围 内的半象素数据以产生半象素搜索区域,从而在付出增加少许计算量和存储空间的代价后, 提高整个运动估计的并行性和计算速度。而在视频通信等应用中,处理的视频图像的运动 速度并不快,变化范围也不大,甚至大部分图像(背景)都是完全不变的,所以运动估计 的搜索范围并不需要很大。本发明正是基于上述考虑,提出了一种部分并行的H.264/AVC 运动估计方法。图2a示出了本发明提出的运动估计方法的工作原理图。本发明提出的方法 在整数象素运动估计时采用了分层搜索的策略:分为粗糙层运动估计和精细层运动估计两 层。这样,在粗糙层运动估计结束后,精细层运动估计的搜索区域会小很多;此时,直接 计算精细层运动估计搜索区域及其周围的半象素,相比于在精细层运动估计完成后再根据 各个子块的运动向量分别计算各子块的半象素搜索区域,要节约大量时间,因此更易于满 足实时性。另外,精细层搜索和半象素插值计算都需要读入参考帧的原始图像数据,而且 两者需要的大部分图像数据是相同的。基于上述考虑,本发明提出的方法在粗糙层搜索之 后,同时进行精细层运动估计和半象素插值计算。即粗糙层整数运动估计结束后,精细层 运动估计和半象素插值计算并行执行(即图2a中所示的并行结构),两者均完成后才开始 半象素运动估计。半象素运动估计结束后,依次进行1/4象素插值计算和运动估计。最后, 根据各个精度的运动估计得到的运动向量计算最终的运动向量和相应的残差数据。
图2b示出了本发明提出的运动估计方法实现的流程图,分如下步骤依次执行:
1.根据处理的图像特征初始化运动估计系统的参数,包括初始化帧图宽高、初始 化运动估计系统各模块状态等;
2.输入当前宏块数据及其对应的粗糙层运动估计搜索区域数据,并通过均值滤波 计算粗糙层数据,即粗糙层图像数据预处理;
3.粗糙层运动估计,得到当前宏块的预测模式和4象素精度的运动向量,该向量 是当前宏块中各子块运动向量的均值;
4.并行执行精细层运动估计和半象素插值计算,得到整数象素精度的运动向量和 半象素搜索区域数据;
5.半象素运动估计,得到半象素精度的运动向量;
6.1/4象素插值计算和运动估计,得到1/4象素精度的运动向量;
7.根据上述各个精度的运动估计结果计算最重的1/4象素精度的运动向量和相应 的残差数据;
8.将7中得到的结果存入存储器。
其中,并行执行模块实现方式如下所述:
A.输入参考帧整数象素数据时,进行半象素插值计算。
B.同时判断整数象素是否为精细层运动估计的搜索区域数据,如果不是,则不进 行操作;如果是,则将数据存入移位寄存器,当所有搜索区域数据都输入后,开始精细 层运动估计。
C.当精细层运动估计和半象素插值计算都结束后,整个并行结构操作完成。
如图2a所示,H.264/AVC编码器系统从整体上看是顺序执行的,但是“精细层整数象素 运动估计”单元和“半象素插值”单元是在“整数象素输入”单元的基础上并行的,所以,把这 三个模块合并到一个状态,即可得到本发明提出的运动估计器系统硬件实现的状态转移图, 如图2c所示。图中,ME_reset为高时整个运动估计器清零,不工作;ME_reset为低时,如 果Int_Pred_en为高,表示编码器选择了帧间预测模式。当CMB_start为高时,表明可以处 理当前宏块,运动估计器从空闲状态转入工作状态。Data_Pretreat_fin为高表示粗糙层运动 估计需要的数据已经准备好,可以开始搜索粗糙层最相似块。Int_4_Pred_fin为高时,表示 粗糙层运动估计已经结束,开始进行并行计算;在完成了整数象素输入、半象素插值计算 和精细层运动估计之后,Mixed_Operation_fin为高,运动估计器开始进行分数象素运动估 计。HME_fin为高时表示半象素运动估计的完成;Quat_ME_fin为高时表示1/4象素运动估 计和最终运动向量计算的完成。当1/4象素运动估计完成时,如果Int_Pred_en和CMB_start 为高,则继续对下一宏块进行运动估计;否则,整个运动估计器转入空闲状态。
图3示出了本发明提出的H.264/AVC运动估计器系统的结构框图。其中,粗糙层数据 预处理器、粗糙层运动估计器、并行结构整数象素数据输入结构、精细层运动估计器、半 象素插值计算阵列、半象素运动估计器、1/4象素运动估计器和最终运动向量计算器为 H.264/AVC运动估计器系统的数据处理单元;当前帧/参考帧存储器、当前宏块存储器、粗 糙层预处理结果存储器、精细层运动估计搜索区域存储器、半象素插值存储器、半象素运 动估计搜索区域存储器和运动估计结果存储器是H.264/AVC运动估计器系统的数据存储单 元。上述数据处理和存储单元的具体硬件实现将详述如下:
1.粗糙层数据预处理器
在视频压缩技术中,通常通过当前宏块的相邻块的运动向量预测当前宏块的运动向量, 然后以此运动向量预测值为搜索区域中心,输入参考帧中搜索区域的图像数据,进行最佳 相似块的搜索。这种方法针对当前帧所有宏块进行运动向量预测,增加了计算量;同时, 由于当前帧所有宏块的搜索区域中心都不相同而且分布没有规律,无法预测,所以必须分 别输入每一宏块的搜索区域数据,增加了对存储器的访问量。本发明在粗糙层整数运动估 计时采用(0,0)作为当前宏块各子块的运动向量预测值,即以当前宏块的坐标(当前宏 块左上角象素在当前帧中的位置)作为该宏块的搜索区域中心,克服了上述传统运动向量 预测方法的不足。本发明采用的方法使得同一宏块中各个子块的搜索区域数据可以一起读 入,交叠部分不需重复输入;而且相邻宏块的大部分搜索区域数据可以共享,减少了对存 储器的访问。图4a示出了本发明采用的运动向量预测方法。以搜索区域为48*48为例。如 图4a所示,处理宏块1(MB1)时有9个MB构成参考帧的搜索区域,其中6个在经过简 单移位后可以在处理MB2时使用,这将节省2/3的存储器访问量。
图4b示出了粗糙层数据预处理器的简单框图。该预处理器包括:两个数据输入缓存器, 两个均值滤波器阵列,2个搜索区域移位寄存器阵列A、B,一个当前宏块均值滤波后数据 存储器。其中,32bit当前宏块数据和32bit搜索区域数据分别从当前帧存储器和参考帧存储 器中读取,两个数据输入缓存器将4个连续输入的32bit数据合并为1个128bit数据输出到 均值滤波器阵列;均值滤波器阵列用于获取粗糙层整数运动估计搜索区域数据和粗糙层当 前宏块数据,输出为64bit;压缩后的当前宏块存放在当前宏块均值滤波后的数据存储器中, 粗糙层搜索区域数据被分为2块存放在搜索区域移位寄存器阵列A和B中。搜索区域移位 寄存器阵列A和B分别是16行24列和8行24列的移位寄存器阵列,每个寄存器可以存 放一个8bit象素数据,当前宏块均值滤波后的数据存储器是一个8*8的寄存器阵列,每个 寄存器可以存放一个8bit象素数据,并且可以被直接读写,上述存储器构成了图3中所示 的粗糙层预处理结果存储器。
图4c中示出了本发明中获取粗糙层整数运动估计搜索区域的方法,参考帧中每个2*2 块的4个原始象素均值滤波得到一个粗糙层搜索区域象素。在本发明中,粗糙层运动估计 的搜索区域为48*48的块均值滤波器的计算公式为
                 Pelc=(Pel00+Pel01+Pel10+Pel11)/4
其中下标c表示生成粗糙层象素的下标,00和01表示原始参考帧搜索区域第2*n行第2*m、第 2*m+1个象素的下标,10和11表示原始参考帧搜索区域第2*n+1行第2*m、第2*m+1个象素的 下标(n、m在[0,23]之间)。
2.粗糙层运动估计器
如上文所述,H.264视频压缩标准的运动估计中,存在7种预测模式,其中编码代价最 低的被称之为最佳预测模式。通常,在运动估计结束时,通过编码代价确定最佳预测模式, 编码代价函数为
Jmode(Mode/λmode)=SAD(Mode)+λmode*R(Mode)
其中SAD(Mode)和R(Mode)分别为图像残差数据和其他信息(包括运动向量)的编码 代价,λmode是拉格朗日乘子。熟悉视频压缩技术的人都知道,残差数据的编码代价在整个 编码代价中起主导作用,因此通常忽略其他信息的编码代价。但是如果等到1/4象素运动估 计结束再根据SAD(Mode)选择最佳预测模式,计算量很大,因此在本发明中,粗糙层整数 运动估计结束后将确定运动估计的最佳预测模式,这将极大的降低H.264/AVC运动估计的 计算量。同时,粗糙层运动估计还得到当前宏块中各子块的运动向量。在精细层运动估计 时,如果以这些运动向量为搜索区域中心,则每个子块的搜索区域数据都得分别输入,实 际上输入的各子块搜索区域数据很多都是重复的,这增加了对参考帧存储器的访问量。因 此,在本发明中将当前宏块各子块的运动向量求均值作为整个宏块精细层整数运动估计的 搜索区域中心,这使得精细层运动估计时各个子块的搜索区域可以一起读入,从而节省了 访问参考帧存储器的时间。
图5a示出了本发明中粗糙层运动估计器的简单框图。该运动估计器输入经过预处理后 的当前宏块和搜索区域数据,输出为当前宏块各子块运动向量的均值和预测模式。该运动 估计器包括:一个SAD计算器,最相似块搜索器,一个预测模式选择器和一个计算当前宏 块各子块运动向量均值的运动向量均值器。
图5b示出了本发明中粗糙层运动估计SAD计算器的硬件结构。图中SAD_n_m_l表示 计算得到的SAD,其中n和m分别表示SAD对应的象素块的列数和行数,l表示同样行数 列数下SAD的序号。粗糙层运动估计之前,图中每个圆圈(称为PE)均存放了一个粗糙 层当前宏块象素;当粗糙层运动估计开始后,每个时钟周期都有一行8个须处理的搜索区 域象素输入并被传递到相应列的8个PE,计算当前宏块象素与搜索区域象素的绝对值之差; 包围同一行2个PE的虚线矩形框为加法树,得到2*1块的SAD;计算结果传送到右边的 小矩形中,该矩形用来将本行2*1SAD与其上一行的2*1SAD相加并保存计算结果,同时 还可起到延时、同步的作用;每2个2*1SAD相加得到一个2*2块的SAD。图5c示出了 本发明中粗糙层运动估计器的SAD计算器中计算一个2*2子块SAD的硬件结构,其中:Pelc 和Pelr分别表示当前宏块和搜索区域的象素,它们在一个PE里相减并求绝对值;两个PE 的计算结果相加得到了一个2*1的SAD,并存储在右侧的存储器中;两个存储器中的2*1 SAD在加法器中相加得到一个2*2的SAD。通过这种结构,在一个周期内可计算出所有2*2 子块的SAD;再加上PE阵列下方的加法树,可计算出粗糙层当前宏块的所有2*2、2*4、 4*2、4*4、4*8、8*4和8*8子块对应的SAD;下一个时钟到来时,输入新的一行搜索区域 数据,继续重复上述过程……。可见,该硬件结构可以在一个时钟中计算出4*4、4*8、8*4、 8*8、8*16、16*8和16*16等7种预测模式对应的所有2*2、2*4、4*2、4*4、4*8、8*4和 8*8子块对应的SAD。
最相似块搜索器完成以下功能:在每个时钟来临时比较当前时钟得到的所有子块的 SAD与当前时钟前最小SAD的大小,保存更小的SAD数据到存放最小SAD的寄存器中; 如果当前时钟的得到的SAD更小,则根据当前相似块的位置更新最小SAD对应的运动向 量。上述操作循环执行直到粗糙层搜索区域搜索完毕,此时得到最小SAD及其对应的运动 向量。
预测模式选择器在最相似块搜索器停止工作后开始执行,它首先把4*4、4*8、8*4、8*8、 8*16、16*8和16*16等7种模式对应的各子块的最小SAD分别相加,分别得到7种模式下 的SAD之和,然后比较7个SAD之和,选择SAD之和最小的预测模式作为最佳预测模式。 运动向量均值器根据预测模式选择器选择的最佳预测模式,将该模式对应的各子块的运动 向量相加,然后取均值,得到粗糙层运动估计的运动向量。
3.精细层运动估计和半象素插值的并行处理器
图6a示出了精细层运动估计搜索区域与半象素插值所需整数象素的关系。黑点表示当 前宏块对应的精细层运动估计搜索区域中心的16*16的块,和灰点一起构成24*24的精细 层搜索区域,当前宏块各子块的最相似块必然在该搜索区域内。由于半象素运动估计的搜 索区域由精细层整数运动估计得到的运动向量决定,而计算半象素的6抽头有限响应数字 滤波器(FIR滤波器)需要半象素两侧各3个整数象素,所以计算半象素搜索区域图像数据 所需的整数象素为以精细层运动估计搜索区域为中心的大小为30*30的象素块(由黑、灰、 白三种象素点构成)。精细层运动估计搜索区域与半象素插值所需整数象素有相当大一部分 是重合的,这是本发明提出并行结构运动估计方法的重要前提。
图6b示出了本发明中半象素插值和精细层运动估计的并行处理流程。粗糙层运动估计 结束后,根据得到的运动向量输入30*30的参考帧原始数据进行半象素插值,同时精细层 运动估计的搜索区域数据保存。输入精细层运动估计的搜索区域数据和半象素插值计算并 行进行;精细层运动估计搜索区域数据全部输入后,精细层运动估计和半象素插值计算并 行进行;判决模块确定两者都结束后,开始进行半象素运动估计。而根据H.264视频压缩 标准,半象素运动估计和1/4象素运动估计将用到26*26的半象素块和整数象素块,因此, 将半象素插值计算产生的26*26半象素和相应的整数象素存放在半象素插值存储器中,以 便于在半象素运动估计和1/4象素运动估计中使用这些数据。
图6c示出了本发明中并行处理器的简单框图。该并行处理器包括:一个整数象素输入 缓存器,一个半象素插值滤波器阵列,半象素数据存储器I、A、B、C,一个精细层运动估 计搜索区域存储器、一个精细层运动估计器和一个并行计算结束判决器。其中,整数象素 输入缓存器将输入的32bit象素数据转换为240bit象素数据输出到半象素插值滤波器阵列和 精细层运动估计搜索区域存储器。
图6d示出了本发明采用的插值滤波器阵列结构。该结构使用了4个水平滤波器和8个 垂直滤波器,水平滤波器使用一行整数象素中的6个象素插值,垂直滤波器使用一列整数 象素中的6个象素插值。图中所画的圆形、三角形、五星为三类不同的半象素,分别存入C、 B、A三个半象素数据存储器;而正方形代表的整数象素则存入半象素数据存储器I,即图 中虚线框包围的象素均存入半象素数据存储器。本发明采用了H.264/AVC标准规定的6抽 FIR滤波器,插值公式为
Pelh=round((Pel0-5Pel1+20Pel2+20Pel3-5Pel4+Pel5)/32)
其中,函数round()表示取整操作,下标h表示半象素,下标0~5表示产生半象素的6个整 数象素或者半象素。
图6e示出了本发明中精细层搜索区域数据的存储策略。精细层运动估计的搜索区域为 24*24的块,数据被分为3块相等的块(8*24)Top、Middle和Bottom,存放在4个移位寄 存器阵列T、M1、M2和B中,其中Middle块被同时存放在M1和M2中,T、M1、M2 和B则构成了图3和图6c中所示的精细层运动估计搜索区域存储器。
图6f示出了本发明中精细层运动估计器的简单框图,本发明中精细层运动估计器包括: 一个SAD计算器和一个最相似块搜索器。图6g示出了SAD计算器中计算8*8、8*4、4*8 和4*4块的SAD的硬件结构,图中SAD_n_m_l表示计算得到的SAD,其中n和m分别表 示SAD对应的象素块的列数和行数,l表示同样行数列数下SAD的序号。精细层运动估计 之前,图中每个圆圈(称为PE)均存放了一个当前宏块象素;当精细层运动估计开始后, 每个时钟周期都有一行8个搜索区域象素输入并被传递到同一列的8个PE,计算当前宏块 象素与搜索区域象素的绝对值之差;包围同一行4个PE的虚线矩形框为加法树,得到4*1 块的SAD;计算结果传送到右边的小矩形中,该矩形用来将本行4*1SAD与其上一行的4*1 SAD相加并保存计算结果,同时还可起到延时、同步的作用;每4个4*1SAD相加得到一 个4*4块的SAD。通过这种结构,在一个周期内可计算出所有4*4子块的SAD;加上合适 的加法树,可计算出当前宏块所有子块对应的SAD;下一个时钟到来时,输入新的一行搜 索区域数据,继续重复上述过程……。可见,该硬件结构结合本发明采用的上述移位寄存 器阵列策略,可以在一个时钟内产生最佳预测模式对应的各子块的SAD。而整个SAD计算 器由4个图6g所示的结构以及更多的加法树构成。
最相似块搜索器完成以下功能:在每个时钟来临时比较当前时钟得到的SAD与当前时 钟前最小SAD的大小,保存更小的SAD数据到存放最小SAD的寄存器中;如果当前时钟 的得到的SAD更小,则根据当前相似块的位置更新最小SAD对应的运动向量。上述操作 循环执行直到粗糙层搜索区域搜索完毕,此时得到最小SAD及其对应的运动向量。
图6h示出了本发明中并行处理器工作的时序示意图。Mixed_en、HDP_en、 SA_data_in_en和IME_en分别表示并行操作、半象素插值、精细层运动估计搜索区域输入 和精细层整数象素运动估计4个模块的使能信号,在这些信号上还同时标识了使能有效的 时间,即图中所示的CLK0、CLK216、CLK270和CLK345。Data_in_row_cnt是输入整数 象素行数的计数器输出,并行处理器输入的整数象素为30*30的块,所以共有30行,计数 器输出为0~29。SA_top_store_en、SA_middle_store_en和SA_bottom_store_en为存储精细 层整数运动估计的搜索区域数据的4个移位寄存器阵列组的写使能信号。由于4个移位寄 存器阵列中有两个M1和M2存放同样的数据,所以用同一个控制信号SA_middle_store_en 控制。
4.半象素运动估计和1/4象素运动估计
图7a示出了整数象素(黑色点)与半象素(ABC)、1/4象素(1~12)的位置关系。 在本发明中,不同位置的半象素和1/4象素分别构成不同的搜索区域,半象素运动估计器和 1/4象素运动估计器分别搜索这些搜索区域中,寻找最相似块,然后通过比较不同搜索区域 的最相似块的SAD确定最佳相似块及对应的运动向量。另外,由于半象素运动估计和1/4 象素运动估计的计算时间主要花费在半象素和1/4象素搜索区域的数据输入上,而寻找最相 似块则相对简单,所以本发明采用了一种节省资源的可重用硬件结构实现半象素运动估计 和1/4象素运动估计。在本发明提出的H.264/AVC运动估计器中,不论粗糙层运动估计后 选择的预测模式是哪一种,在半象素和1/4象素运动估计时,都以4*4子块为单位,计算当 前子块与半象素或1/4象素搜索区域中各子块的相似度。循环16次完成当前宏块的所有4*4 子块的最相似块搜索。最后再根据选用的预测模式,计算相应的子块的最相似块及其对应 的运动向量。如图7a所示,需要搜索的半象素有A、B、C三种,而需要搜索的1/4象索有 1~12中的8种,即图7a中半象素或整数象素周围的8个1/4象素。采用本发明的硬件结 构,比同时并行计算当前宏块的所有子块与搜索区域的相似块的方法可以节省近90%的硬 件资源,而计算时间则没有增加。
图7b示出了本发明中半象素运动估计器的简单框图。该运动估计器输入为A、B、C 三类半象素搜索区域数据、整数象素运动向量和SAD,输出为半象素运动向量和SAD。本 发明采用的这一电路包括:一个半象素插值存储器接口,三个用来存放A、B、C三类半象 素搜索区域的存储器,三个用来进行半象素运动估计器和一个最相似块选择器。其中,半 象素插值存储器接口用来产生半象素插值存储器A、B、C的地址信号和读数据使能信号, 同时包括三个半象素输入缓存器用来暂存A、B、C三类半象素。一个半象素运动估计器包 括一个4*4块SAD计算器,用来计算当前4*4子块与搜索区域4*4块的SAD。最相似块选 择器完成以下功能:对比不同类型搜索区域得到的最相似子块的SAD;选择最小的SAD与 精细层搜索得到的最小SAD对比,更小的SAD对应的相似块为半象素运动估计的最相似 块。
图7c示出了本发明中1/4象素运动估计器的简单框图。该运动估计器输入为半象素运 动估计的SAD和运动向量,以及A、B、C三类半象素和整数象素I,输出为1/4象素运动 向量和SAD。本发明采用的这一电路包括:一个半象素插值存储器接口,一个1/4象素插 值计算阵列,8个1/4象素搜索区域数据存储器,8个分别包括一个4*4块SAD计算器的 1/4象素运动估计器和一个最相似块选择器。其中,1/4象素由相邻的两个半象素或者整数 象素求均值得到,图7d示出了1/4象素插值滤波器阵列的结构。图7a所示的12种1/4象 素中,选择半象素运动估计器得到的半象素最相似块的象素周围的8种1/4象素分别存入8 个搜索区域存储器,并送入8个1/4象素运动估计器,由这8个1/4象素运动估计器中的4*4 块SAD计算器分别计算这8种1/4象素块和当前4*4子块的SAD。最相似块选择器完成以 下功能:选择8种搜索区域中SAD最小的作为最佳1/4象素相似块,并计算相应的运动向 量;将该SAD与半象素搜索区域的SAD对比,选择最小的SAD对应的相似块作为 H.264/AVC运动估计器系统最终选择的最佳相似块。
5.最终运动向量计算器
H.264/AVC运动估计器系统计算最终运动向量的公式如下:
                        MVf=8MVc+4MVp+2MVh+MVq,
其中,下标f、c、p、h、q对应的运动向量分别表示整个运动估计器的最终运动向量和粗糙 层、精细层、半象素和1/4象素运动估计器得到的运动向量。
6.H.264/AVC运动估计器系统的存储器
当前帧/参考帧存储器由SRAM实现,必须可以存放CIF格式图像(352*288象素), 通过系统产生的地址信号和读信号从中读取当前帧或参考帧的图像数据。当前宏块存储器 为16*16的寄存器阵列,每个寄存器单元可以存放8bit象素数据,并且可以被单独读写。 运动估计结果存储器用来存放H.264/AVC运动估计器系统产生的最佳预测模式及其对应的 最终运动向量和残差数据。
尽管本发明是参照某些优选实施实例进行说明的,但应该谨记本发明的范围并不仅限 于这些具体的实施方式。对于本发明所作的修改以及本发明的变型形式都落在本发明的设 计思想与范围之内,本发明的涵盖范围在以下的权利要求中定义。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈