用于实时流媒体系统智能回溯的实现方法

文档序号:7645803阅读:135来源:国知局
专利名称:用于实时流媒体系统智能回溯的实现方法
技术领域
本发明涉及计算机多媒体技术领域,特别适用于实时智能流媒监控系统。
背景技术
基于网络的视频解决方案已经得到了越来越广泛的应用,包括流媒体视频监控系统,视频会议系统等。他实现了在接受端可以实时地观看多媒体资料,而不用等资料下载完成,图1给出了网络视频解决方案的基本框图,包括IP视频编码器,它将远端的模拟视频图像数字化,然后压缩打包,通过IP多播技术送到中心服务器和解码器。中心视频服务器保存所有点的视频录像资料并提供查询和回放操作,该服务器需要支持多台视频编码器和解码器的接入,解码器接受IP视频编码器或者视频服务器码流,解码后显示到大屏幕上。
编码器一般采用针对运动图像的压缩技术,如MPEG-4、H264、AVS,其共同特征是采用帧内压缩,运动补偿和可变长编码等技术,从帧类型上讲,它们可以分为三类,即帧内压缩帧I帧、前向预测帧P帧和双向预测帧B帧。最新的H264编码标准引入IDR帧。他们沿时间轴上的顺序如下I B B P B B P B B P B B P B B P B B P B B P B B P B B P B B P B B P B B P BB P B B P B123456789101112131415P帧和B帧利用运动补偿,消除帧间的信息冗余,极大地提高了压缩效率,但是这也使得P帧和B帧的解码依赖它们之前的解码帧,如P2帧的解码依赖之前的P1帧,而P15帧的解码依赖之前的1到14帧,当需要回溯时,如在智能流媒体视频监控系统中,当报警发生时,解码器刚刚解完第15帧图像,此时,管理人员需要察看14帧或者13帧的视频内容,通常的做法是重新将1-13帧通过网络送到接收端,这样做的不足之处在于首先,对于发送端的数据处理量突然增加,发送端一般对应着服务器,同时为很多的客户提供服务,资源一般比较宝贵,如果同时提出回溯要求的客户数比较多,容易耗尽服务器资源。
其次,对网络形成冲击,I帧和P帧的数据量比较大,如在解码第14帧时,要同时传送13帧的数据,使得网络的数据流量增加了13倍多。
最后,对解码器的解码性能也提出了更高要求,需要在同样的时间内解码13帧数据。

发明内容
本发明的目的是根据上述现有技术的不足之处,提供一种实时流媒体系统智能回溯实现方法,该方法在接收端利用已解码的当前视频帧和服务器送达的当前帧的码流来恢复参考帧中的图像点,同时接收端利用恢复出的参考帧中的图像点来恢复整像素点,对于客户机不能恢复的块,服务器通过DCT域处理进一步降低对网络数据流量。
本发明目的实现由以下技术方案完成一种实时流媒体系统智能回溯实现方法,其特征在于该方法采用如下步骤A.发送端接收到回溯命令后,以块为单位,读取当前帧码流,并将数据发送到接收端;B.在接收端,通过用当前块减去解码后的残差信号恢复出参考图像;C.参考图像经过反运动补偿得到参考帧,同时接收端将未能恢复块的信息通过网络送到发送端;D.接收端解码接收到的块,并恢复出参考帧图像。
所述残差信号的取得是通过可变长解码器得到残差信号量化系数,经过反量化得到参考图像的DCT系数,经过逆DCT运算得到的残差信号。
所述的参考图象的取得首先是通过可变长解码器得到运动矢量,根据运动矢量和当前块的位置得到参考块的位置,然后用当前块减去解码后的残差信号,以及该块对应的位置得到参考块。
所述的参考图像经过反运动补偿得到参考帧,可以利用已经解码的像素点包括半像素点,四分之一像素点,恢复出参考帧中整像素点。根据参考块不同的位置,有如下三种情况,(a)对于位置在整像素点的块,直接拷贝到参考帧对应的位置,(b)对于半像素的点通过反插值运算,得到整像素块,并拷贝到对应的位置,(c)对于四分之一像素点首先通过反插值运算恢复出半像素点,然后通过步骤(b)恢复出整像素点,并拷贝到对应的位置。
所述接收端将未能恢复块的信息通过网络送到发送端,指的是接收端通过网络将其块号送给发送端,发送端根据块号,利用DCT系数的线性关系,通过在DCT域将残差信号求和,从而达到降低网络流量的目的。
本发明的优点是,和传统方法相比,该方法稳定、高效,减低了接收端编解码器硬件资源的占用,从而能够降低硬件成本;服务器和网络资源需求量小,在同样网络带宽的前提下,该方法能够支撑更多的网络用户数;编解码器的改动小,使得实现该算法所需的工作量比较小。


附图1为本发明系统流程示意框图;
附图2为本发明帧重建模块的流程图;具体实施方式
以下结合附图通过实施例对本发明特征及其它相关特征作进一步详细说明,以便于同行业技术人员的理解本实施例的工作状况是1)发送端将压缩好的视频数据通过网络送到客接受端,该视频数据可以是通过实时采集并压缩得到的码流,如监控系统、视频会议系统或者实时p2p视频,也可以是预先压缩好的视频码流,如电影等。
2)发送端和接受端通过网络协商,需要回溯当前的视频码流,以找到用户感兴趣的视频帧,或者视频段。
3)接受端在不中断正常解码的同时,在显要位置解码显示回溯的视频码流到指定的时间点,循坏播放该视频段,并通过预先设置的报警手段和用户交互,如保存该视频段到指定的位置,通过短信和用户交互等。
本实施例在实施时●发送端接受到回溯命令后,读取视频码流中前一帧的视频数据,发送到接受端。
●在接受端,通过当前帧减去解码后的残差信号来恢复参考帧图像。利用已经解码的像素点包括半像素点,四分之一像素点,恢复出参考帧中整像素点。
●对于在客户机端未能解码的块,服务器进一步通过DCT域处理来减少需要通过网络传送到解码器的块数量。
本实施例方法的模块组成和功能如下视频库保存接受到的码流,并根据块选择器的要求,读取指定的块;块选择器在回溯操作中,选择特定的块送到压缩域处理模块;压缩域处理模块由两个部分组成,DCT域处理模块,在DCT域重构视频块。VLC域处理模块负责在VLC域将DCT残差信号求反;存储模块负责将接受到的视频流存储到存储设备上。
解码器接受码流,并且根据用户指令解码。其模块主要有可变长解码VLC-1,逆量化Q-1,逆DCTDCT-1,显示缓存DB,帧缓存FB,运动补偿MC,缓存分配器Buffer Splitter,帧重建Frame Reconstructor。
用户命令接口接受用户命令,并与解码器和服务器交互完成特定的操作。
正常播放的处理过程中开关SW1、SW2和SW3分别和A位置相连,此时服务器并不向网络发送任何数据,通过SW2,解码器接受编码器发送的多播码流,解码后的块通过SW3,送到帧缓存FB和显示缓存DB中。
用户命令接口收到回溯命令,通过网络送给解码器,假设此时第N帧已经被完全解码和显示,那么下一个被显示的帧为N-1。解码器将开关SW2和SW3分别从位置A改变到位置B。解码器不再接收编码器多播数据,而是解码由服务器送入的码流。同时送入到帧缓存FB中是经过帧重建后的图像。
在服务器端,块选择器从码流中读取每一个块,送到接收端,根据运动补偿的定义,N帧的每一个宏块由下式得到B(x,y)N=BN-1(mv(x,y)n)+e(x,y)n---(1)]]>其中B(x,y)N为N帧中位于(x,y)处的宏块,BN-1(mv(x,y)n)为L-1帧中运动补偿块,e(x,y)n为运动补偿残差,在回溯操作中,B(x,y)N保存在帧缓存FB中,残差通过解码可以得到,则BN-1(mv(x,y)n)可由下式表示BN-1(mv(x,y)n)=B(x,y)N+(-e(x,y)n)---(2)]]>1式和2式中的残差信号大小相等,符合相反。
解码器端的缓存分配器将解码后的块分别保存到B0到Bn中,其中n为缓存数量,由运动补偿的精度确定。对于半像素预测,n为3,假如Axy为整像素点,bxy、cxy、dxy为不同位置的半像素点,其线性插值公式如式3所示bx,y=(Ax,y+Ax+1,y)/2(a)cx,y=(Ax,y+Ax,y+1)/2(b)---(3)dx,y=(Ax,y+Ax+1,y+Ax+1,y+1+Ax+1,y+1)/4(c)]]>n=0,1,2,3分别对应于点A,b,c,d的位置。
如果运动补偿后,块左上角点的位置在b1.1,此时由公式(2)可得,半像素点b1.1到b8.8已知,对于块中任一行l,如果像素点A1.l到A9.l中有一个点已知,则该行中所有的9个整像素点都可以由公式3a递推解得,如果所有行都是可解的,则最终可以恢复出8X9的块。类似,如果运动补偿后块在c位置,对于块中一列,如果有一个点已知,则该列是可解的,如果块中每一列都是可解的,则最终恢复出9X8的块。由于点d是相连的4个点的平均,则恢复该块需要该块中有一行和一列是已知的,则该块是可以恢复的。
图2给出了帧重建模块的流程图,对于帧缓存b1中的块,按行进行恢复,并将恢复后的行保存到b0中,缓存b2中的块按照列进行恢复,恢复后的列保存到b0中,缓存b3中的块按照块进行恢复并保存到b0中。
所有的块都处理完后,b0中保存所有恢复后的图像,此时帧重建模块将b0中的图像重新划分成不同的块,同时判断每一个块中所有的像素是否都已经解码,如果还有像素点没有解码,则其通过网络将没有解码的块信息送到服务器段的块选择器,由块选择器作进一步处理。
在像素域处理完成后,块选择器根据所收到的块号从数据流读取码流送到DCT域处理器,同时帧重建控制服务器段的SW1开关,使其位置处于C。
如式4,块B(x′,y′)n-1由n-2帧作为参考帧进行运动补偿。
B(x′,y′)n-1=Bn-2(mv(x′,y′)n-1)+e(x′,y′)n-1---(4)]]>公式(4)表明对于n-1帧中的一个块,最多需要n-2帧中的四个块来作为参考,如此类推,直到碰到I块为止。由于此时缓存B1到Bn已经空闲,分配器将n-1帧之前帧的解码数据保存到这些缓存之中作为参考直到n-1。解码后的数据和B0中已经解码的块合成,保存到B0,然后帧重构器将B0中解码帧送到FB和显示缓存DB中。
为了减轻服务器的计算负载,也有人提出DCT系数直接加,但是其以宏块为单位进行处理,而本实施例中以块为单位进行处理,这将减少服务器需要处理的块个数。
在n-1帧中,当mv(x′,y′)n-1=0]]>时,Bn-2(mv(x′,y′)n-1)=B(x′,y′)n-2,]]>类似可得B(x′,y′)n-2=Bn-3(mv(x′,y′)n-2)+e(x′,y′)n-2,]]>并代入(4)式得到B(x′,y′)n-1=Bn-3(mv(x′,y′)n-2)+e(x′,y′)n-2+e(x′,y′)n-1---(5)]]>所以帧n-3可以用来作为块(x′,y′)的参考帧,这个过程可以一直持续到运动向量不为零,这进一步减少了服务器端解码的压力。
权利要求
1.一种实时流媒体系统智能回溯实现方法,其特征在于该方法采用如下步骤A.发送端接收到回溯命令后,以块为单位,读取当前帧码流,并将数据发送到接收端;B.在接收端,通过用当前块减去解码后的残差信号恢复出参考图像;C.参考图像经过反运动补偿得到参考帧,同时接收端将未能恢复块的信息通过网络送到发送端;D.接收端解码接收到的块,并恢复出参考帧图像。
2.根据权利要求1所述的一种实时流媒体系统智能回溯实现方法,其特征在于所述残差信号的取得是通过可变长解码器得到残差信号量化系数,经过反量化得到参考图像的DCT系数,经过逆DCT运算得到的残差信号。
3.根据权利要求1所述的一种实时流媒体系统智能回溯实现方法,其特征在于所述的参考图象的取得首先是通过可变长解码器得到运动矢量,根据运动矢量和当前块的位置得到参考块的位置,然后用当前块减去解码后的残差信号,以及该块对应的位置得到参考块。
4.根据权利要求1或3所述的一种实时流媒体系统智能回溯实现方法,其特征在于所述的参考图像经过反运动补偿得到参考帧,可以利用的已经解码的像素点包括半像素点、四分之一像素点,恢复出参考帧中整像素点。
5.根据权利要求4所述的一种实时流媒体系统智能回溯实现方法,其特征在于根据参考块不同的位置,对于四分之一像素点可首先通过反插值运算恢复出半像素点。
6.根据权利要求4或5所述的一种实时流媒体系统智能回溯实现方法,其特征在于根据参考块不同的位置,对于半像素的点可通过反插值运算,得到整像素块,恢复出整像素点。
7.根据权利要求1所述的一种实时流媒体系统智能回溯实现方法,其特征在于所述接收端将未能恢复块的信息通过网络送到发送端,指的是接收端通过网络将其块号送给发送端,发送端根据块号,利用DCT系数的线性关系,通过在DCT域将残差信号求和,从而达到降低网络流量的目的。
全文摘要
本发明涉及计算机多媒体技术领域,特别适用于实时智能流媒监控系统。该方法在接收端利用已解码的当前视频帧和服务器送达的当前帧的码流来恢复参考帧中的图像点,同时接收端利用恢复出的参考帧中的图像点来恢复整像素点,对于客户机不能恢复的块,服务器通过DCT域处理进一步降低对网络数据流量。
文档编号H04N7/26GK101014131SQ20071003763
公开日2007年8月8日 申请日期2007年2月16日 优先权日2007年2月16日
发明者储开颜, 邱亮, 王普, 游小韵 申请人:上海方众信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1