一种视频压缩中可配置速度的运动估计实现方法

文档序号:7979924阅读:283来源:国知局
专利名称:一种视频压缩中可配置速度的运动估计实现方法
技术领域
本发明属于视频压缩传输技术技术领域,具体涉及一种视频压缩中可配置速度的运动估计实现方法。
背景技术
高清视频编码最常用的编码格式有MPEG-2-TS,MPEG-4,VC-I和H. ^4/AVC等。这些标准共有的特点是良好的网络亲和性和高效的编码质量,以及易于硬件实现等,因此在视频压缩方面得到广泛的应用。在视频编码器的硬件结构中,帧间运动估计模块的计算复杂度和存储带宽消耗占50% 90%,因此,帧间运动估计模块的性能直接决定了编码器的性能。帧间编码的主要过程是首先将原始图像划块,以块为单位进行运动估计,为了提高精度,通常将这些块进行再分割,以不同的尺寸块进行匹配搜索,目前主流编码标准是将原始图像划分为16X16的宏块MB (micro block),然后将该宏块划分为16X16,16X8, 8X16,8X8,8X4,4X8,4X4这7种分割,共41个当前块,在这种分割模式下,通过当前块的已编码的相邻块的运动信息即运动矢量MV(motion ventor),在其参考帧图像中得出一个预测块,再以这个块为中心,向外扩m个像素,得出运动估计的搜索窗口,含k个像素,k = (m*2+16)*(m*2+16)。然后让这7种分割的41个子块在这个搜索区域中进行匹配搜索,再通过比较其代价的大小确定运动矢量MV。运动估计的硬件实现的主要关键技术高度数据利用率,低失真度和不同块尺寸的代价关系。运动估计的硬件实现的数据重用技术,能有效的减少访存次数,从而有效的降低硬件资源消耗和系统功耗。目前,一种高度数据重用的硬件实现方法已成为研究热点。已有文献中规定了数据重用度的分级,A级机制重复使用一个当前块的相邻参考块中的重叠参考像素。B级机制重复使用一个当前块的相邻参考条带的重叠参考像素。C级机制重复使用相邻的当前块的搜索窗口的重叠区域。D级机制重复使用连续的当前块的整个搜索窗口中的像素。A级机制有最小的存储面积但需要最多的访存次数,D级机制访存次数最小但是消耗最大的片上存储空间。根据不同的需求,需要采用不同的数据重用机制来平衡存储空间和存储访问之间的矛盾。目前的C级数据重用在目前的存储带宽限制下最为高效,因此最目前大多数设计采用C数据重用。搜索算法是运动估计中的另一个关键,主要包括全搜索算法和快速搜索算法两种方式。全搜索算法是将参考窗口中的所有位置逐次遍历,这种方法具有最高的保真度,但是相对而言又有最大的硬件消耗。目前有很多快速搜索算法,但全部都是以失真为代价的,因此在系统允许的前提下,应该尽量选择失真度最小的搜索算法。可变块尺寸的运动估计算法,提高了精度,但是也带来了很大的计算复杂度。更小的分割尺寸能将编码的失真降到最小,因此而带来的计算复杂度,可以通过其不同尺寸块之间代价组合得出,有效的降低了计算复杂度。

发明内容
本发明的目的是提供一种视频压缩中可配置速度的运动估计实现方法,有效的降低了存储访问的次数,编码速度完全能满足高清视频实时编码的要求。本发明所采用的技术方案是,一种视频压缩中可配置速度的运动估计实现方法, 其特征在于,具体步骤如下步骤1、根据用户需求合理配置并行处理的PE单元个数;步骤2、在PE单元内部,计算基本块代价;步骤3、基于不同尺寸块的代价相关性,得出各种分割模式下的不同块的代价;步骤4、逐行读完全部参考数据,将各个PE得到的最终代价进行比较,取最小代价确定为运动矢量MV。步骤2的具体方法为步骤2. 1、从片上存储器中逐行读出参考数据将该行数据与当前宏块MB的各行的每个像素求差模,其中,片上存储器大小为(m*2+a)*(m*2+a)pixels,宏块大小为a*a pixels, (-m, +m)为搜索范围;步骤2. 2、将分属a2/b个Mb块的3 个差模进行加和作为部分代价,其中,b为最小分割块的大小;步骤2. 3、根据不同的遍历位置,确定部分代价的有效性,从而得出部分代价并产生其有效信号。步骤3的具体方法为步骤3. 1、设置存储Mb块代价的寄存器,并分配存储空间;步骤3. 2、在每个存储空间中设置计数器,得出判断部分代价是否累加完整的信号 full ;步骤3. 3、判断输入步骤2. 3得到的部分代价的有效信号,将其对应有效的部分代价按不同位置累加进入已分配好的存储空间;步骤3. 4、判断full是否有效,将完整代价送出,同时送出的还有由该寄存器标号得出的位置信息;步骤3. 5、返回步骤3. 2,直至得到a个3 块Mb子块的完整代价,利用不同块之间代价相关性,拼接得出各种分割模式的全部代价;同时,比较当前送出的完整代价与前一位置的完整代价,选择失真小的位置的代价信息存储,并将当前代价也存储做其他匹配模式使用。本发明一种视频压缩中可配置速度的运动估计实现方法,充分的利用了参考数据空间上的相关性,在不降低编码精度的前提下减少了访存次数,在配置与横向列位置相等个数个PE单元的情况下,从片上存储器上读出的数据使用率达到100%,再次读取率降到 0。本发明方法使得搜索范围、I/O个数、编码速度和硬件消耗等多项参数实现可配置,满足了不同用户的不同需求,其编码速度完全能满足高清视频实时编码的要求。


图1是本发明中宏块分割模式示意图2是运动估计中块匹配示意图;图3是本发明中参考数据空间相关性示意图;图4是本发明中不同尺寸块的代价的组合关系示意图;图5是本发明中差模有效信号与数据的关系;图6是本发明中部分代价和在寄存器中的累加过程示意图。
具体实施例方式如图2所示,运动估计的过程是通过已编码宏块的运功矢量预测出当前宏块的在参考块中的位置,再以预测位置为中心的搜索范围范围内遍历,通过判断其残差代价,确定
运动矢量。本实施例采取如下配置搜索范围(-32,+32),配置5个PE,宏块大小选择16*16, 最小分割 4*4,块分割 7 种模式(16 X 16,16 X 8,8 X 16,8 X 8,8 X 4,4X 8,4X 4),计 41 个小块。本发明一种视频压缩中可配置速度的运动估计实现方法,具体步骤如下步骤1、根据用户需求合理配置并行处理的PE单元个数为5个。根据用户对I/O资源,实时处理速度,硬件消耗等方面的要求,确定PE的个数,横向的位置由配置好的PE串行处理。步骤2、在PE单元内部,计算基本块代价。步骤2. 1、从片上存储器中逐行读出参考数据将该行数据与当前宏块MB的各行的每个像素求差模,其中,片上存储器大小为80*80pixels,宏块大小为16*16pixelS,(-32,
+32)为搜索范围。有65*65个位置需要遍历,分别是Pxlyl,Pxly2, Pxly3......Pxly65,Px2yl,
Px2y2.......Px65y64, Px65y65。当配置5个PE时,如图3所示,第一个PE (即PEl)处理的是Pxlyi (i
=1,2,3,......,65),Px6yi (i = 1,2,3,......,65),并行的第二个 PE (即 PE2)处理的是
Px2yi (i = 1,2,3,......,65),Px7yi (i = 1,2,3,......,65)。从片上存储器中读出第一行参考数据时,PEl取第一个位置的1行16个像素,分别与当前宏块的16行像素进行求差模运算,得到256个差模结果。步骤2. 2、将分属64个4*4块的16*16个差模进行加和作为部分代价,其中,b为最小分割块的大小。结合图1和图4所示,可知得出4*4块的代价值就能通过合并的方法的到其他不同分割模式的代价值,因此将这256个差模以所属的4*4块为基本单位进行加和,得到64 个4*1块的部分代价。其中,代价计算公式是J(s,c (m)) = SAD(s,c(m)),
M NSAD(s, c(m)) = Σ Σ | 彳χ,y)~c(yx~m^y-my )|
χ=1 y=l,其中,J是代价函数,s是当前进行编码的原始数据,而c是已经编码重建的用于进行运动补偿的参考帧的数据。M,N是矩阵求和符号的Σ的参数,即分别为被求和矩阵的行数和列数,对于4*1块的部分代价,M = 4,N= I0步骤2. 3、根据不同的遍历位置,确定部分代价的有效性,从而得出部分代价并产生其有效信号。具体如下由全搜索的遍历方式可知,参考窗口的第一行数据只与Pxlyi有相关性,而第二行数据与pxlyi,Px2yi有相关性,以此类推,第十六行数据与pxlyi,Px2yi,……Pxl6yi有相关性,由此可以确定步骤2. 2得出的结果是否有效,于是有如图5所示的类似于平行四边形的部分代价有效性。可知读取从16行开始的参考数据所产生的64个部分代价都是有效的,它们分别属于不同的位置。步骤3、基于不同尺寸块的代价相关性,得出各种分割模式下的不同块的代价。本步骤是采用“蓄水”原理计算最佳运动信息MV。步骤3. 1、设置存储4*4块代价的寄存器16个,并分配存储空间;步骤3. 2、在每个存储空间中设置计数器,得出判断部分代价是否累加完整的信号 full ;步骤3. 3、判断输入步骤2. 3得到的部分代价的有效信号,将其对应有效的部分代价按不同位置累加进入已分配好的存储空间。具体如下如图6所示是代价寄存器的数据累加记录,第一列是代价寄存器的标号,而标号其后的一行是接收的部分代价数据,图中的大写字母A P是当前宏块的16行,而表中的数字表示从片上存储器中读取的参考像素的行号,以1号寄存器为例,第一个周期存入 Al (当前宏块的第一行和参考数据第一行的部分代价),第二个周期将B2累加进入1号寄存器,之后是C3,D4,此时,1号寄存器中累加的A1B2C3D4就是Pxlyl的第一排4*4块的完整代价,因此,模块中的full (full即蓄水池满信号)信号置位,第五个周期的E5存入并覆盖 1号寄存器,接着E5F6G7H8累加完成后将full置位,可知此时送出的是Pxlyl的第二排4*4 块的完整代价,按照这个原理,1号寄存器每4个cycle送出一个完整4*4代价,16个cycle 即可完成一个点的遍历,并能开始接收存储第17个位置的数据。下面的15个寄存器原理和上述一致。步骤3. 4、判断full是否有效,将完整代价送出,同时送出的还有由该寄存器标号得出的位置信息。步骤3. 5、返回步骤3. 2,直至得到16个16*16块的4*4子块的完整代价,利用不同块之间代价相关性,拼接得出7中分割模式的全部代价;同时,比较当前送出的完整代价与前一位置的完整代价,选择失真小的位置的代价信息存储,并将当前代价也存储做其他匹配模式使用,即16X16,16X8,8X16,8X8, 8X4,4X8的匹配模式。步骤4、逐行读完全部参考数据,将各个PE得到的最终代价进行比较,取7种分割模式的41个小块的最小代价确定最佳运动信息MV,从而实现了运动估计。本发明方法选取以下参数时搜索范围(-32,+32),配置65个PE,宏块大小选择16*16,最小分割4*4,块分割7种模式41个小块(16X 16,16X8,8X 16,8X8,8X4, 4X8,4X4),需要80个周期完成当前宏块的匹配;配置5个PE时,需要1040个周期完成当前宏块的匹配,二者在SMIC0. 13 μ m CMOS工艺库的支持下,分别能达到的处理速度是 1920X1080@36fps和1920X 1080@462fps,满足了高清视频实时编码的需求。以现在高清视频编码的速率30帧每秒作为最低实现标准,配置5个PE单元进行处理,在SMIC(中芯)0. 13 μ m CMOS工艺库支持下,电路性能参数如下表所示
权利要求
1.一种视频压缩中可配置速度的运动估计实现方法,其特征在于,具体步骤如下步骤1、根据用户需求合理配置并行处理的PE单元个数;步骤2、在PE单元内部,计算基本块代价;步骤3、基于不同尺寸块的代价相关性,得出各种分割模式下的不同块的代价;步骤4、逐行读完全部参考数据,将各个PE得到的最终代价进行比较,取最小代价确定为运动矢量MV。
2.按照权利要求1所述的视频压缩中可配置速度的运动估计实现方法,其特征在于, 步骤2的具体方法为步骤2. 1、从片上存储器中逐行读出参考数据将该行数据与当前宏块MB的各行的每个像素求差模,其中,片上存储器大小为(m*2+a)*(m*2+a)pixels,宏块大小为a*a pixels, (-m, +m)为搜索范围;步骤2. 2、将分属a2/b个Mb块的3 个差模进行加和作为部分代价,其中,b为最小分割块的大小;步骤2. 3、根据不同的遍历位置,确定部分代价的有效性,从而得出部分代价并产生其有效信号。
3.按照权利要求2所述的视频压缩中可配置速度的运动估计实现方法,其特征在于, 步骤3的具体方法为步骤3. 1、设置存储Mb块代价的寄存器,并分配存储空间;步骤3. 2、在每个存储空间中设置计数器,得出判断部分代价是否累加完整的信号 full ;步骤3. 3、判断输入步骤2. 3得到的部分代价的有效信号,将其对应有效的部分代价按不同位置累加进入已分配好的存储空间;步骤3. 4、判断full是否有效,将完整代价送出,同时送出的还有由该寄存器标号得出的位置信息;步骤3. 5、返回步骤3. 2,直至得到a个3 块Mb子块的完整代价,利用不同块之间代价相关性,拼接得出各种分割模式的全部代价;同时,比较当前送出的完整代价与前一位置的完整代价,选择失真小的位置的代价信息存储,并将当前代价也存储做其他匹配模式使用。
全文摘要
本发明公开了一种视频压缩中可配置速度的运动估计实现方法,具体步骤如下根据用户需求合理配置并行处理的PE单元个数;在PE单元内部,计算基本块代价;基于不同尺寸块的代价相关性,得出各种分割模式下的不同块的代价;逐行读完全部参考数据,将各个PE得到的最终代价进行比较,取最小代价确定最佳运动信息MV。本发明有效的降低了存储访问的次数,编码速度完全能满足高清视频实时编码的要求。
文档编号H04N7/26GK102413329SQ201110371098
公开日2012年4月11日 申请日期2011年11月21日 优先权日2011年11月21日
发明者余宁梅, 贾文华, 顾梅花 申请人:西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1