首页 / 专利库 / 视听技术与设备 / 运动估计 / 一种基于H264协议的整像素运动估计方法

一种基于H264协议的整像素运动估计方法

阅读:3发布:2020-12-05

专利汇可以提供一种基于H264协议的整像素运动估计方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于H264协议的整 像素 运动估计 方法,包括如下步骤:步骤一,将参考 帧 数据中搜索范围内的奇数列宏 块 数据依次存入双端口SRAM1中,偶数列宏块数据存入双端口SRAM2中;步骤二,生成当前宏块的全部参考数据;步骤三,使用绝对误差和SAD准则,确定当前宏块的最优分割模式和运动向量;步骤四,判断当前宏块是否是当前帧的最后一个宏块,如果是,则进入步骤五,否则根据下一个待搜索宏块与当前宏块的 位置 关系,更新SRAM1或SRAM2的数据,并以待搜索宏块作为新的当前宏块,进入步骤二;步骤五,判断是否还有图像数据,如果是,则更新数据,进入步骤一,否则结束。采用本发明的技术方案,能够节省运算资源,缩短计算时间。,下面是一种基于H264协议的整像素运动估计方法专利的具体信息内容。

1.一种基于H264协议的整像素运动估计方法,其特征在于,包括如下步骤:
步骤一,将参考中搜索范围内的奇数列宏数据依次存入双端口静态存储器SRAM1中,偶数列宏块数据存入双端口静态存储器SRAM2中,若当前宏块处于图像第一或最后一行/列时,用第一或最后一行/列像素数据填充SRAM1和/或SRAM2;
步骤二,根据当前宏块的位置和所确定的参考区域,确定参考数据在SRAM1和SRAM2中位置,轮转读取SRAM1和SRAM2中的参考数据,将所读取的数据依次平行排列拼接成当前宏块的全部参考数据;
步骤三,从所述当前宏块的全部参考数据的最左列开始,以蛇形顺序进行穷尽搜索,使用绝对误差和SAD准则,确定当前宏块的最优分割模式和运动向量;
步骤四,判断当前宏块是否是当前帧的最后一个宏块,如果是,则进入步骤五,否则根据下一个待搜索宏块与当前宏块的位置关系,更新SRAM1或SRAM2的数据,并以待搜索宏块作为新的当前宏块,进入步骤二;
步骤五,判断是否还有图像数据,如果是,则以下一帧的第一个宏块作为当前宏块,下一帧为当前帧,以当前帧作为参考帧,更新当前宏块、当前帧和参考帧数据,进入步骤一,否则结束。
2.根据权利要求1所述的整像素运动估计方法,其特征在于,所述步骤三进一步包括,计算16个4×4像素块的SAD;
用所得到的16个4×4像素块的SAD结果,同时计算8×8、8×16、16×8和16×16分割的SAD,并更新每种分割模式下每个子块的最小SAD值;
根据每种分割模式下的SAD值确定最优搜索点,获得当前宏块的最优分割模式和运动向量。
3.根据权利要求2所述的整像素运动估计方法,其特征在于,所述以蛇形顺序进行穷尽搜索是对于偶数列从上到下,奇数列从下到上的顺序进行穷尽搜索。
4.根据权利要求2或3所述的整像素运动估计方法,其特征在于,所述16个4×4像素块的SAD是以流线方式并行计算得到的。

说明书全文

一种基于H264协议的整像素运动估计方法

技术领域

[0001] 本发明涉及视频编码领域,特别涉及一种基于H264协议的整像素运动估计方法。

背景技术

[0002] H.264国际标准规定了一个被编码的视频比特流的语法和该比特流的解码方法,并没有规定编码器如何实现,因此在编码实现上有很大的灵活性。
[0003] 运动估计是一种间编码方法,其原理是利用帧间的空间相关性,减小空间冗余度,因此运动估计是视频压缩算法的核心算法之一,是搜索当前宏在参考帧中对应的相似块的过程。当前宏块(Macroblock,16x16个像素)是指当前帧中待编码的宏块,参考帧是指经压缩后,再重建后给当前帧用作运动估计的帧,在帧的自然顺序上,可以是当前帧的前n个或后m个帧。
[0004] 在编码过程中,运动估计的运算量较大,会占据大部分的编码时间,因此改进运动估计性能对提高编码器效率非常重要。常用的运动估计方法如三步搜索法(TSS)、六边形搜索法(HEXS)、菱形搜索法(DS)等,有搜索范围小,易陷入局部极小值的缺点。非对称十字形多层次六边形个点搜索(UMHexagonS)[JVT-F017r1]虽然可以较好解决局部极小问题,但其算法复杂度仍然较高。公开号为CN101227607A,发明名称为“一种基于并行流线的穷尽运动估计搜索方法与装置”将一帧数据分为2n个待比较块,以并行流水线方式对这2n个待比较块同时进行匹配运算。这种方法可以提高穷尽搜索法的运算速度,并且适于在FPGA/ASIC上实现,但是由于其有2n个运算处理单元,需要消耗大量逻辑资源和存储器资源。公开号为CN101193303A,发明名称为“快速运动估计方法”采用基于下层预测运动矢量与多模式搜索的运动估计方法,由于其下层预测与上层预测存在依赖关系,无法实现并行处理,并且多模式搜索也会增加运算量和逻辑资源消耗。

发明内容

[0005] 本发明的目的是提供一种满足H264协议的在运动估计中所需时间较短和占用逻辑资源较少的在FPGA/ASIC上实现的整像素运动估计方法。
[0006] 为了达到上述目的,本发明采用如下技术方案:一种基于H264协议的整像素运动估计方法,包括如下步骤:
步骤一,将参考帧中搜索范围内的奇数列宏块数据依次存入双端口SRAM1(Static Random Access Memory,静态存储器)中,偶数列宏块数据存入双端口SRAM2中,若当前宏块处于图像第一或最后一行/列时,用第一或最后一行/列像素数据填充SRAM1和/或SRAM2;
步骤二,根据当前宏块的位置和所确定的参考区域,确定参考数据在SRAM1和SRAM2中位置,轮转读取SRAM1和SRAM2中的参考数据,将所读取的数据依次平行排列拼接成当前宏块的全部参考数据;
步骤三,从所述当前宏块的全部参考数据的最左列开始,以蛇形顺序进行穷尽搜索,使用SAD(Sum of Absolute Difference,绝对误差和)准则,确定当前宏块的最优分割模式和运动向量;
步骤四,判断当前宏块是否是当前帧的最后一个宏块,如果是,则进入步骤五,否则根据下一个待搜索宏块与当前宏块的位置关系,更新SRAM1或SRAM2的数据,并以待搜索宏块作为新的当前宏块,进入步骤二;
步骤五,判断是否还有图像数据,如果是,则以下一帧的第一个宏块作为当前宏块,下一帧为当前帧,以当前帧作为参考帧,更新当前宏块、当前帧和参考帧数据,进入步骤一,否则结束。
[0007] 本发明的基于H264协议的整像素运动估计方法,所述步骤三进一步包括,计算16个4×4像素块的SAD;用所得到的16个4×4像素块的SAD结果,同时计算8×8、8×16、16×8和16×16分割的SAD,并更新每种分割模式下每个子块的最小SAD值;根据每种分割模式下的SAD值确定最优搜索点,获得当前宏块的最优分割模式和运动向量。
[0008] 本发明的基于H264协议的整像素运动估计方法,所述以蛇形顺序进行穷尽搜索是对于偶数列从上到下,奇数列从下到上的顺序进行穷尽搜索。
[0009] 本发明的基于H264协议的整像素运动估计方法,所述16个4×4像素块的SAD是以流水线方式并行计算得到的。
[0010] 本发明提供的基于H264协议的整像素运动估计方法,采用两个SRAM以轮转方式存储参考帧数据,每次完成一个宏块的搜索,参考数据只需更新少量SRAM,并且和搜索过程并行进行,不占用搜索时间,此外可以同时读取奇数列宏块和偶数列宏块参考数据,减少参考数据读取时间,并简化了对参考数据的寻址;采用穷尽搜索法,不存在局部极小的问题;采用蛇形搜索的顺序,实现简单,大大减少逻辑和存储资源的使用。
附图说明
[0011] 图1是本发明的一个具体实施例流程图
[0012] 图2是在本发明的一个具体实施例中,当前待搜索宏块位于图像最左边一列时,参考区域数据填充情况,以及当前宏块相对于参考区域位置示意图。
[0013] 图3是在本发明的一个具体实施例中,当前待搜索宏块位于图像第二列时,参考区域数据填充情况,以及当前宏块相对于参考区域位置示意图。
[0014] 图4 是在本发明的一个具体实施例中,当前待搜索宏块位于图像第三列时,参考区域数据填充情况,以及当前宏块相对于参考区域位置示意图。
[0015] 图5是在本发明的一个具体实施例中,蛇形搜索顺序示意图。
[0016] 图6是在本发明的一个具体实施例中,不同分割模式下SAD计算过程示意图。

具体实施方式

[0017] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0018] 如图1所示,一种基于H264协议的整像素运动估计方法,包括如下步骤:步骤一,将参考帧数据中搜索范围内的奇数列宏块数据依次存入双端口SRAM1中,偶数列宏块数据存入双端口SRAM2中,若当前宏块处于图像第一或最后一行/列时,用第一或最后一行/列像素数据填充SRAM1和/或SRAM2;步骤二,根据当前宏块的位置和所确定的参考区域,确定参考数据在SRAM1和SRAM2中位置,轮转读取SRAM1和SRAM2中的参考数据,将所读取的数据依次平行排列拼接成当前宏块的全部参考数据;步骤三,从所述当前宏块的全部参考数据的最左列开始,以蛇形顺序进行穷尽搜索,使用绝对误差和SAD准则,确定当前宏块的最优分割模式和运动向量;步骤四,判断当前宏块是否是当前帧的最后一个宏块,如果是,则进入步骤五,否则根据下一个待搜索宏块与当前宏块的位置关系,更新SRAM1或SRAM2的数据,并以待搜索宏块作为新的当前宏块,进入步骤二;步骤五,判断是否还有图像数据,如果是,则以下一帧的第一个宏块作为当前宏块,下一帧为当前帧,以当前帧作为参考帧,更新当前宏块、当前帧和参考帧数据,进入步骤一,否则结束。其中,搜索范围与参考区域是一致的。
[0019] 在本发明的一个具体实施例中,搜索范围是当前宏块为中心,左右各2×16列像素,上下各16行像素的矩形区域。如图2 所示,缓存中的参考数据包括m行×n列个宏块(即m×n×16个4×4像素块),用两个双端口SRAM进行存储,分别存储偶数列和奇数列的宏块数据,每个单元存储一个4×4像素块的参考数据,以便于SAD的计算。在整像素搜索前,将参考数据存入SRAM。如果搜索范围包含的数据超出一帧边界,例如当前宏块为第一或最后一行(列)时,用第一或最后一行(列)像素数据填充SRAM,如图2所示,浅色区域为超出图像边界的区域,用参考帧的第一列数据填充,较深色区域为参考帧数据,最深色区域为当前宏块相对于参考区域数据的几何位置。在本实施例中,SRAM1与SRAM2存储空间的和大于参考数据的大小,其中,无色区域是暂时不用的SRAM空间,当一个当前宏块搜索完毕时,这个暂时不用的空间用来存储新的一列参考数据,如图3所示。
[0020] 如图2、3和4所示,当一个宏块的搜索过程结束后(即求出此宏块的最优运动向量和分割模式),当前搜索宏块的位置向右移动,参考数据以轮转循环方式存储在SRAM中。由于两个SRAM各存储偶数和奇数宏块列的参考数据,因此每次更新参考数据时只需要更新一个SRAM即可。如图4所示,如果当前宏块处于相对于参考区域的第5个宏块列,则只需要将当前宏块的右边第二列参考宏块数据更新到SRAM1中即可。在下一个宏块开始搜索时,将其所需要的参考数据同时从两个SRAM中同时读出,并按几何位置顺序拼接成完整的参考数据,如图2~图4所示。
[0021] 如图5所示,搜索范围是当前宏块为中心,左右各a列像素,上下各b行像素的矩形区域。从搜索区域的左上的点开始,以行优先的方式,从上到下进行搜索,及计算各个点的SAD值。当到达搜索区域最下面一行后,将列数加一,从最下面一行开始由下向上搜索,直到第一行。以这样的顺序直到完成整个搜索范围内的搜索。
[0022] 在搜索过程中,每个时钟周期从缓存中读出一个4×4像素块的数据,用16个计算单元,同时计算每个4×4像素块的SAD。SAD的计算过程是计算16对数据(当前4×4块和参考帧对应的4×4块)的差,再将这16个差求绝对值再求和,SAD采用流5级流水线的方式以减小关键路径长度,流水线第一级为求16个差,第二级为将16个差的绝对值两两求和得到8个和,第三级为将8个和再两两求和得到4个和,第四级再得到2个和,第五级得到最终的SAD值。将这些SAD数据分别求和,如图6所示,将标号为0、1、4、5的4×4块的SAD求和得到标号为0的8×8块的SAD,同时用另外三个相同的计算单元按几何位置计算标号为1、2、3的8×8块的SAD;之后再用4个计算单元,分别用标号为0、1的8×8块的SAD计算标号为0的8×16块的SAD,用标号2、3的8×8块的SAD计算标号1的8×16块的SAD,用标号为0、2的8×8块的SAD,计算标号为0的16×8块的SAD,用标号为1、3的8×8块的SAD,计算标号为1的16×8块的SAD;最后用标号为0、1的8×16块的SAD计算最终的16×16块的SAD,便可同时得到不同分割模式下的SAD数据。将当前所得不同分割模式下的SAD与之前所存储的相应分割模式下的最小SAD进行比较,若当前的SAD值较小,则更新存储相应分割模式的最小SAD,并存储相应分割模式的运动向量。整个搜索过程采用流水线方式,每个时钟周期可计算出一个整像素点的SAD数据。整个区域搜索完成即可求出当前宏块的最小SAD,最优分割模式和相应的运动向量。
[0023] 综上所述,本发明提供的基于H264协议的整像素运动估计方法,采用两个SRAM以轮转方式存储参考帧数据,每次完成一个宏块的搜索,参考数据只需更新少量SRAM,并且和搜索过程并行进行,不占用搜索时间,此外可以同时读取奇数列宏块和偶数列宏块参考数据,减少参考数据读取时间,并简化了对参考数据的寻址;采用穷尽搜索法,不存在局部极小的问题;采用蛇形搜索的顺序,实现简单,大大减少逻辑和存储资源的使用。另外,采用16个SAD运算单元,并行流水线结构计算16个4×4像素块的SAD,并同时计算8×8,8×16,
16×8,16×16分割的SAD,大大减少了运算时间。
[0024] 以上所述仅为本发明的较佳实施例,并非用来限定本发明的实施范围;如果不脱离本发明的精神和范围,对本发明进行修改或者等同替换,均应涵盖在本发明权利要求的保护范围当中。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈