高性能空域可伸缩的运动估计与运动矢量编码实现方法

文档序号:7615157
专利名称:高性能空域可伸缩的运动估计与运动矢量编码实现方法
技术领域
本发明属于信息技术领域,具体涉及到可伸缩的视频编解码体系结构中高性能空域可伸缩的运动估计与运动矢量编码实现方法。
背景技术
相对于传统分块DCT技术以及运动补偿DPCM闭环架构的数字视频编解码体系(H.26x和MPEG系列),基于小波核的视频编码体系结构因具有自适应的空域、时域以及质量可伸缩性,而能满足视频传输网络的异构性(Heterogeneous),网络带宽的波动性以及用户视频接收终端的多样性,从而满足现代信息社会的发展和用户的需求。由于空域可伸缩的视频码流必须具有相对应空域分辨率级的运动矢量,而目前的大部分算法是在原始分辨率级的基础上对运动矢量进行采样来得到缩小的分辨率级上的运动矢量,这样使得缩小分辨率级上的运动矢量准确度不高,从而影响重建视频帧的质量以及空域可伸缩的性能。

发明内容
针对上述背景技术中存在的缺陷和不足,本发明的目的在于,提供以联合空域小波核低通滤波技术为核心,能自适应视频传输网络的异构性、网络带宽的波动性以及用户视频接收终端的多样性的高性能空域可伸缩(Scalability)的运动估计和运动矢量编码实现方法。
实现上述任务的技术解决解决方案是采用联合空域小波核低通滤波技术为核心,能自适应视频传输网络的异构性、网络带宽的波动性以及用户视频接收终端的多样性,该方法包括下列步骤1)通过“联合空域提升小波滤波的低通滤波”技术实现视频帧的分级降维;
2)通过“子像素精度可变块大小分级运动估计”技术,提高运动估计的速度和运动矢量的精度;3)通过“分级的运动矢量算术编码”技术,实现运动矢量的可伸缩性编码;4)通过“运动矢量码流抽取”技术,得到用户需求的空域可伸缩的视频码流。
所述“联合空域提升小波滤波的低通滤波”技术是,对要做运动估计的当前帧和参考帧的两帧首先经过低通滤波器来实现分级降维,实现不同分辨率级的金字塔结构。而低通滤波器的选择是根据空域小波滤波器来选择的,通过运动估计就可以得到分级的运动矢量,不同分辨率级和分级运动矢量是一一对应的,这样在空域可伸缩得到缩减的分辨率级的运动矢量就是没有经过采样而是与其对应的运动矢量,从而提高了运动矢量的精度,进一步提高了通过运动补偿时域提升小波合成的分辨率缩减的视频帧序列的质量,实现了高性能的空域可伸缩的视频编解码。
所述“子像素精度可变块大小分级运动估计”技术是,在相邻两帧之间运用基于宏块匹配的方法在分级后的各分辨率级上进行子象素精度的运动估计,先从第一级分辨率就是最低分辨率级上根据视频帧内的运动情况进行自适应变块大小的运动估计,此后的每一级运动估计均是在前一级运动估计的基础上进行的,从而进一步提高运动估计的精确度,找到相应分辨率级视频帧内的运动相关联像素,使得运动补偿的时域提升小波更好的消除时域信息冗余。
所述“运动矢量分级的算术编码”技术是,对不同分辨率级上得到的运动矢量进行统一编码,并利用这些运动矢量之间的信息相关性,进行差错算术编码,得到可伸缩的分级运动矢量码流。
所述“运动矢量码流抽取”技术是,对经过分级编码的运动矢量码流,根据用户不同终端、不同带宽和视频传输网络的异构性结合视频码流来分配和抽取可伸缩的分级运动矢量码流。不同空域分辨率级的可伸缩对应不同的分辨率级的运动矢量码流,这样就实现了高性能的视频码的流空域可伸缩。
本发明的方法是一种具有高性能空域可伸缩性的分级自适应变块大小的运动估计和分级的运动矢量编码的设计方案,通过结合运动补偿时域提升小波、空域离散小波变换以及三维熵编码技术,实现高可伸缩性的视频编解码,能满足异构网络下,不同带宽不同终端用户的需求。


图1是本发明实施例联合视频帧空域小波滤波的低通滤波实现分级的结构示意图。
图2是本发明实施例低通滤波基于提升算法实现的结构示意图。
图3是本发明实施例子像素精度可变块大小分级运动估计的流程图。
图4是本发明实施例通过可变宏块大小的分级运动估计方法得到运动矢量的分级树型结构。
图5是本发明实施例分级的运动矢量算术编码流程图。
图6是本发明实施例分级运动矢量码流抽取示意图。
图7是本发明实施例空域一级可伸缩的视频示意图。
具体实施例方式
下面结合附图和实施例对本发明进一步详细说明,但本发明不限于这个实施例。
按照本发明的技术方案,发明人给出了本发明的实施例。在本实施例中使用的是一组双正交小波滤波器——5/3双正交小波。
在图1中,给出了本实施例的基于联合空域小波滤波对原视频帧空域低通滤波实现分级运动估计的结构示意图。
在图2中,给出了本实施例的用于空域分级的提升小波滤波变换示意图。由于在本实施例的小波视频编解码体系中采用的空域小波变换是5/3小波,所以在分级的运动估计中,空域分级采用的也是5/3提升小波,主要有两步,一步为偶数点预测奇数点,一步为奇数点更新偶数点。
step1Y(2n+1)=Xext(2n+1)+α×(Xext(2n)+Xext(2n+2))step2Y(2n)=Xext(2n)+β×(Y(2n-1)+Y(2n+1))输入视频序列到提升小波变换中,先对原视频帧的行进行提升小波变换,然后对行变化的结果进行列方向上的提升小波变换,这样就完成了一次小波滤波,但只保留空域能量高的低频子带信息即1LL子带,这个LL子带就是本实施例分级运动估计中的第二级,即为原视频帧分辨率的1/4。根据空域可伸缩性的级数来设计空域小波低通滤波的级数,本实施例采用3级可伸缩性,只需两级小波低通滤波。也就是对1LL子带继续进行小波低通滤波,方法同上,得到2LL子带,形成本实施例分级运动估计的第一级,即为原视频帧分辨率的1/16。本实施例参考帧和当前帧均经过两级小波低通滤波后,得到三级的金字塔,然后对三级的金字塔进行自适应可变块大小的运动估计。
在图3中,给出了本实施例可变宏块大小的分级运动估计流程图。
在图4中,给出了本实施例通过可变宏块大小的分级运动估计方法得到的分级树型结构。本实施例原视频帧的宏块大小为64×64,最小为4×4。经5/3小波低通滤波形成的三级金字塔中的第一级对应的最大宏块为16×16,即原视频帧宏块的1/16;第二级对应的最大宏块为32×32。对于视频帧边界处也有64×32等宏块。对第一级的视频帧作可变块大小运动估计,得到最小宏块为4×4的运动矢量。对第二级、第三级的搜索都是部为一个64*64块的运动矢量(边界情况还包括64*32,32*64和32*32),底部最小为个4*4块大小的运动矢量。本实施例的具体步骤为Step1第一级运动估计,使用最大块(16*16)进行块匹配,最大象素位移为±1,搜索算法为全搜索,匹配准则为最小化绝对象素差MAD,MAD=Σy=y0y0+yblkΣx=x0x0+xblk|frame1[x,y]-frame0[x-dx,y-dy]|,]]>[dx,dy]=argmin-1≤dx,dy≤1MAD(dx,dy)]]>
进行全搜索时,先进行整数像素精度的运动矢量搜索;然后进行默认1/2像素精度的运动矢量搜索,把参考帧进行插值,在上述整像素精度级运动矢量的基础上继续在插值后的参考帧进行1/2像素精度全搜索,从而获得使MAD值最小的运动矢量,使运动矢量更精确。做完第一级运动估计后,得到第一棵3级的运动矢量四叉树,顶端是16×16的宏块,叶子节点存储的为4×4宏块的运动矢量。
Step2第二级运动估计,首先对第一级中得到的运动矢量树进行更精确的运动定位,把第一级的运动矢量均乘以2,得到近似的第二级运动矢量的初始迭代值,重新进行半象素精度搜索,即在由第一级运动矢量得到的初始矢量基础上,把参考帧的第二级进行插值,对第二级进行半象素精度搜索,得到使MAD最小的半像素精度的运动矢量,并对第一级得到的运动矢量进行修正,由于第一级最小宏块4×4的运动矢量相当于第二级最小宏块8×8的运动矢量,在进行下一级子宏块搜索时,初始运动矢量设为0,这样就形成第二级最小宏块为4×4的运动矢量。子块分解是根据宏块的像素绝对误差和子宏块平均绝对误差比较进行的,如果宏块绝对误差大于四个子宏块绝对误差的平均值,则进行分解,否则不分块。做完第二级运动估计后,得到第二棵运动矢量树——4级的运动矢量四叉树。
Step3第三级运动估计,和第二级运动估计过程基本一样,但第三级使用要求的运动矢量搜索精度,如整像数精度,1/2,1/4像素精度或1/8像素精度。做完第三级运动估计后,得到第三棵运动矢量树——5级的运动矢量的四叉树。
在图5中,给出了本实施例分级运动矢量编码的流程图,主要由分级运动矢量树结构编码器和运动矢量的自适应二进制算术编码器两部分组成。对不同分辨率级上得到的运动矢量进行统一编码,并利用这些运动矢量之间的信息相关性,进行差错算术编码,得到可伸缩的分级运动矢量码流。
运动矢量存储的基本结构是分级的运动矢量树,各帧的运动矢量就是存放在一定数量的运动矢量树中。以分级运动矢量树编码为单位进行运动矢量编码。根据分级运动矢量树的结构,非终结点用1标识,都有四个孩子;每个叶子节点用0标识,代表一定大小的象素块的运动矢量。对于叶子节点,保存了x和y方向的运动矢量值(mvx,mvy)。
分级的运动矢量树结构编码采用深度优先遍历整个运动矢量树。遍历过程中遇到非叶子节点编码为1输出;遇到叶子节点时首先判断是否为最小块,不是则输出0,然后编码该象素块的类型,是最小快,则直接编码块类型。
运动矢量值编码采用自适应算术编码方法对运动矢量的差值编码。采用深度优先的遍历方式找到叶子节点。对叶子节点的(mvx1,mvy1)与前一个叶子(mvx0,mvy0)的差值(dmvx,dmvy)分别编码,输出压缩的字节码流,每次编码结束后要对算术编码的概率表进行更新。
编码的过程中注意记录编码输出的字节数,每一帧矢量编码后在输出编码数据的起始位置先输出该帧的分级运动矢量编码字节数目。
在图6中,给出了本实施例根据客户端的不同需求而对分级运动矢量码流进行不同的抽取,以实现高性能的空域可伸缩视频码流。
在图7中,给出了本实施例的一级空域可伸缩视频,即为原视频帧序列分辨率的1/4。这是通过把空域经5/3提升小波第一级分解形成的LH,HL,HH子带进行截断,而只保留第一级空域提升小波分解的LL子带。运动矢量码流的抽取就是根据客户端的空域分辨率进行的,就是把运动矢量码流中的第二级运动矢量抽取,而把第一级和第三级运动矢量码流截断。由于第二级运动矢量是在空域小波分级的第一级LL子带上进行的,所以经过运动矢量解码器解码的运动矢量对空域分辨率具有对应性和高精度的特征,从而提高了空域分辨率可伸缩时的运动矢量的准确度和空域分辨率可伸缩的视频码流经解码合成后的视频帧的质量,实现了高性能的空域可伸缩性视频编解码。
权利要求
1.高性能空域可伸缩的运动估计与运动矢量编码实现方法,其特征在于,采用联合空域小波核低通滤波技术为核心,能自适应视频传输网络的异构性、网络带宽的波动性以及用户视频接收终端的多样性,该方法包括下列步骤1)对要做运动估计的视频帧的当前帧和参考帧的两帧首先经过低通滤波器来实现分级降维,实现不同分辨率级的金字塔结构,而低通滤波器的选择是根据空域小波滤波器来选择的,通过运动估计就可以得到分级的运动矢量,不同分辨率级和分级运动矢量是一一对应的,这样在空域可伸缩得到缩减的分辨率级的运动矢量就是没有经过采样而是与其对应的运动矢量,从而提高了运动矢量的精度,进一步提高了通过运动补偿时域提升小波合成的分辨率缩减的视频帧序列的质量,实现高性能的空域可伸缩的视频编解码;2)在相邻两帧之间运用基于宏块匹配的方法在分级后的各分辨率级上进行子象素精度的运动估计,先从第一级分辨率就是最低分辨率级上根据视频帧内的运动情况进行自适应变块大小的运动估计,此后的每一级运动估计均是在前一级运动估计的基础上进行的,从而进一步提高运动估计的精确度,找到相应分辨率级视频帧内的运动相关联像素,使得运动补偿的时域提升小波更好的消除时域信息冗余;3)对不同分辨率级上得到的运动矢量进行统一编码,并利用这些运动矢量之间的信息相关性,进行差错算术编码,得到可伸缩的分级运动矢量码流;和4)对经过分级编码的运动矢量码流,根据用户不同终端、不同带宽和视频传输网络的异构性结合视频码流来分配和抽取可伸缩的分级运动矢量码流。不同空域分辨率级的可伸缩对应不同的分辨率级的运动矢量码流,这样就实现了高性能的视频码的流空域可伸缩。
全文摘要
本发明公开了高性能空域可伸缩的运动估计与运动矢量编码实现方法,采用联合空域小波核低通滤波技术为核心,能自适应视频传输网络的异构性、网络带宽的波动性以及用户视频接收终端的多样性,采用联合空域小波滤波的低通滤波实现视频帧的分级降维;运用子像素精度的可变块大小分级运动估计提高运动矢量精度和时域压缩性能;采用分级的运动矢量算术编码,实现运动矢量的可伸缩性编码;通过分级运动矢量码流抽取,得到用户需求的空域可伸缩的视频码流,实现视频帧序列的高性能空域可伸缩性。本发明通过结合运动补偿时域提升小波、空域离散小波变换以及三维熵编码技术,实现高可伸缩性的视频编解码,能满足异构网络下,不同带宽不同终端用户的需求。
文档编号H04N7/28GK1665300SQ200510041910
公开日2005年9月7日 申请日期2005年4月7日 优先权日2005年4月7日
发明者兰旭光, 薛建儒, 郑南宁, 邢星, 刘相富 申请人:西安交通大学
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1