多视角视频码流的实时传输同步控制方法转让专利

申请号 : CN200910049012.2

文献号 : CN101600099B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许冠宇周军何子由

申请人 : 上海交通大学

摘要 :

一种图像通信领域的多视角视频码流的实时传输同步控制方法。本发明包括以下步骤:对编码器生成的多视复用码流进行解析,分离各个视角码流数据并分别缓存到各个视角对应的发送缓冲队列;为每个视角码流开辟独立的实时传输流,并对RTP协议头部进行扩展标记;为每个视角的实时传输流开辟独立信道;采用多线程技术异步同时发送各个视角码流;终端缓存接收数据包,根据同步扩展信息对接收到的数据包进行排序,恢复原始多视复用码流顺序。本发明提供了软件方法实现多视角码流同步控制,降低了系统成本也提高了系统的稳定性和灵活性。解决了多视角视频网络传输中单视基码流传输码率的方块现象,从根本减轻了接收终端抗抖动负担。

权利要求 :

1.一种多视角视频码流的实时传输同步控制方法,其特征在于,包括以下步骤:

第一步:对编码器生成的多视角复用码流进行解析,将各码流分离后分别缓冲到为各个视角独立设置的缓冲队列;

第二步:为每个视角码流开辟独立的实时传输流,并对实时传输流协议头部进行扩展标记,即记录View_ID视角编号和主视角Main_SEQ参考编号作为同步控制标签;

第三步:为每个视角的实时传输流开辟独立的信道,将各码流独立传输,即在网络协议第三层为不同视角码流建立传输信道;

第四步:根据各视角平均码率异步同时发送各个视角码流,从而平滑各个视角码流的码率,降低终端网络抖动,同时获得主视角Main_SEQ参考编号;

第五步:终端缓存数据包,根据实时传输流协议头部扩展信息对接收到的数据包进行排序,恢复原始多视角复用码流顺序,并输出到解码器。

2.根据权利要求1所述的多视角视频码流的实时传输同步控制方法,其特征是,第四步中所述的异步同时发送是指:将主视角码流提前一个帧时间开始发送,从而其他视角及时获得主视角参考编号。

3.根据权利要求1所述的多视角视频码流的实时传输同步控制方法,其特征是,第四步中所述的平滑各视角码流的码率是指:利用第一步码流解析得到的多视角码流独立输出的缓冲队列,对多视角码流在同一个帧类型循环周期内的码流根据各视角平均码率不同进行平滑重整。

4.根据权利要求1所述的多视角视频码流的实时传输同步控制方法,其特征是,第五步中所述的恢复原始多视角复用码流顺序是指:依次根据实时传输流中的主视角Main_SEQ参考编号、View_ID视角编号、RTP包序列号分三个层次对接收到的RTP数据包进行排序后,再解析RTP负载恢复出原始码流顺序。

5.根据权利要求1所述的多视角视频码流的实时传输同步控制方法,其特征是,第五步中所述的缓存数据包是指:终端缓存一个或几个有限帧时间周期内接收到的来自所有视角的实时传输流RTP数据。

说明书 :

技术领域

本发明涉及一种图像通信技术领域的控制方法,具体是一种多视角视频码流的实时传输同步控制方法。 

背景技术

网络立体电视系统除涉及到立体电视相关的节目制作、立体电视视频格式、立体视频压缩编码及码流的系统复用、立体电视视频码流的解码、立体电视显示等多个环节外,由于立体视频比传统的平面二维视频具有更多视角的同步视频需要编码、传输,在与网络电视传输技术结合时,更涉及到多视角同步立体视频信号的网络同步可信传输与控制。基于向下兼容性的考虑,即多视角立体视频不仅要能满足自由视立体显示终端的要求,同时也要满足戴眼镜的双视立体显示终端或传统平面电视终端的要求,同时考虑接入网络传输带宽的利用效率,多视角立体视频码流传输时必须做到传输带宽与各类异构终端的自匹配,即要求各个视角编码后的视频码流能够分离独立传输,终端可以选择性地接收单个视角、其中两个视角或者全部视角的视频码流。针对这一点,多视角立体视频传输方法大致分两类,一类可以称为软分离,即通过设置包头标记以区分码流中来自不同视角的数据包,但这种方法并没有实现真正的多视角立体视频码流分离,而是采用时分复用的模式通过单个实时传输流进行传输。另一类可以称为硬分离,即将各个视角的码流分离后通过不同的实时传输流发送,但需要解决各视角码流间的同步问题。在终端,多视角码流只有同步接收、解码并播放,才能产生良好的立体效果。但由于包交换网络的复杂性、时延差异存在的客观性,以及不同的阻塞状况而产生的时延、抖动和丢包,很难保证多视角码流的同步接收。所以,无论是软分离还是硬分离方案,多视角独立传输系统都需要使用一套同步控制机制,包括应用RTP(Real-time Transport Protocol  实时传输协议)协议的同步机制,来协调各个视角码流的同步问题。 
经典的MVP(Multi-View Profile多视角档次)方案只支持两个视角,主视 角以普通MPEG-2方式编码,第二个视角信息作为增强层与主视角合成后直接通过MPEG-2的TS流传输。在这种方案中两个视角是高度耦合的,优点在于不需要额外的同步机制,两个视角码流天然同步,直接依赖传统单视角传输方案传输。缺点是不能实现视角分离,给传统单视角用户带来额外的网络负担。同时,这种方案由于增强层数量的有限,也就限制了视角数目的扩展,无法适应两个以上视角的应用。 
经对现有技术文献的检索发现,在应用MVC(Multi-View Coding多视角视频编码)方案的多视角系统中,普遍的各视角视频同步方法具有代表性的比如Jongryool Kim和JongWon Kim于2008年5月在IEEE Transact ions on ConsumerElectronics(IEEE消费电子学报)(vol.54,No.2)上发表的“Real-TimeSynchronous Multi-View Video Transport System”(实时多视角视频传输系统同步方法)一文,针对多视传输方案进行了探讨,并设计了一套多视码流同步控制机制,同步方法简述如下,各视角视频之间依靠视频采集时增加硬件同步时钟的方法来实现,网络传输时采用软分离的方式,简单地依靠实时传输流协议(RTP协议)中的包序号来进行各视角视频码流的内部同步。该设计方案在特定实验环境下可以应用,但存在如下缺点:1、该方案各视角视频码流间同步完全依赖硬件同步时钟,视频采集时必须配备精确的硬件同步设备,系统造价高昂。2、该方案采用软分离的方式进行多视角码流分离,只能在四层协议以上才能区分视角,而一般的路由交换设备只能解析到三层协议,这对整个传输路径中的路由设备提高了要求。3、该方案简单采用时分复用模式,传统平面解码显示终端接收单视角码流时,接收瞬时码率呈现方块效应,码流极不稳定,需要终端网络接收设备有更强的抗抖动能力。4、传输流参数扩展设置只支持左右视码流,不适用两个以上视角的多视视频码流的传输,限制的系统的应用范围。 

发明内容

本发明的目的在于克服现有技术的不足,提供一种有效的多视角视频码流实时传输同步控制方法。本发明在MVC多视角视频码流分离编码的基础上,对各个视角视频码流进行缓冲平滑重整,从根本上有效改善视频码流传输时由于视角各异造成的巨大码率抖动,提高多视角视频码流实时传输质量。 
本发明是通过以下技术方案实现的,本发明包括以下步骤: 
第一步:对编码器生成的多视角复用码流进行解析,将各码流分离后分别缓冲到为各个视角独立设置的缓冲队列; 
第二步:为每个视角码流开辟独立的实时传输流,并对实时传输流RTP协议头部进行扩展标记,记录视角编号(View_ID)和主视角参考编号(Main_SEQ)作为同步控制标签; 
第三步:为每个视角的实时传输流开辟独立的信道,将各码流独立传输; 
第四步:根据各视角平均码率异步同时发送各个视角码流,从而平滑各个视角码流的码率,降低终端网络抖动,同时获得主视角参考编号(Main_SEQ); 
第五步:终端缓存数据包,根据实时传输流协议头部扩展信息对接收到的数据包进行排序,恢复原始多视角复用码流顺序,并输出到解码器。 
第二步中所述的对实时传输流RTP协议头部进行扩展是指,扩展包括视角编号(View_ID)和主视角参考编号(Main_SEQ)在内的同步控制标签供多视角码流同步使用。视角编号(View_ID)用于标记不同视角数据,一般可以参考第一步码流解析中对不同视角的区分策略。主视角参考编号(Main_SEQ)指主视角码流中已经发送的最后一帧所在的最后一个RTP包的序列号(Sequence Number)。  终端使用RTP数据包自有的序列号,结合扩展的主视角参考编号和视角编号可以准确地对接收到的数据包进行排序恢复原始复用码流序列。 
第三步中所述的为每个视角的实时传输流开辟独立的信道是指,在网络协议第三层为不同视角实时传输流建立传输信道 ,为路由转发设备或者终端接收设备创造区分不同视角实时传输流的可能性。本发明通过对IPv4协议头部进行扩展,将视角编号写入IPv4包头部,从而为转发路由提供视角区分依据。此外,对于以组播方式推送立体电视节目的方式,也可以通过不同视角码流建立独立的组播组的方式实现,接收终端通过加入不同组播组的方式选择性接收各视角码流。 
第四步中所述的平滑多视角码流是为了从根本上避免多视角码流中由于各视角码流的码率不同而造成的方块效应,利用第一步码流解析得到的多视角码流独立输出缓存队列,结合多线程技术对多视角码流在同一个帧类型循环周期内的码流根据各视角平均码率不同进行平滑重整后同时发送,从而使总码率和单视角码率都能够基本稳定。 所述一个帧类型循环周期指在多视角码流中,各个视角帧按照视角编号不同循环出现,一个帧类型循环周期指从任意一个主视角帧开始到 下一个主视角帧到达之前的这段码流。所述采用异步发送模式是指将主视角码流提前一个帧时间开始发送,以获得其他视角码流与主视角码流的参考信息。主视角码流第一帧发送完毕后记录最后一个实时传输流RTP包序号,即第二步所述主视角参考编号(Main_SEQ),供该帧类型循环周期内其他视角码流做同步标签。 
第五步中所述的恢复原始多视角复用码流顺序指依据第二步定义的同步控制标签,依次根据实时传输流中的主视角参考编号(Main_SEQ)、视角编号(View_ID)、RTP包序列号(Sequence Number)分三个层次对接收到的RTP数据包进行排序后,再解析RTP负载恢复出原始码流顺序。所述缓存数据包指接收端缓存一个或几个有限帧时间周期内接收到的来自所有视角的实时传输流RTP数据,以便对缓冲范围内的RTP数据包进行排序重整。 
与现有技术相比,本发明具有以下有益的效果:本发明提供了软件方法实现多视角码流同步控制,无须依赖精密的硬件同步时钟,降低了系统成本也提高了系统的稳定性和灵活性。本发明有效的解决了多视角视频网络传输中单视基码流传输码率的方块现象,从根本上改善了码流抖动,减轻了接收终端抗抖动负担。本发明设计了一套基于实时传输流RTP参数扩展的多视角码流间同步方法,终端可以轻松的恢复原始复用码流同步关系。 

附图说明

图1是本发明方法流程图; 
图2是原始多视角复用码流示意图; 
图3是本发明的码流分离的结构示意图; 
图4是本发明实时传输流协议头部扩展参数的示意图; 
图5是本发明异步同时发送的结构示意图; 
图6是本发明终端同步原始复用码流的示意图。 

具体实施方式

下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。 
如图1所示,本实施例的系统分为三个部分,码流发送端,独立信道传输端和接收终端,本实施例包括以下步骤: 
第一步:RTP发送服务器获取编码器生成的多视角复用码流,根据多视角码流系统层复用为MPEG2-TS流时建立的视角解析策略进行解析,根据不同视角,将码流分离后分别缓冲到为各个视角独立设置的缓冲队列,等待发送; 
第二步:RTP发送服务器为每个视角码流开辟独立的实时传输流,并对实时传输流协议头部进行扩展标记,记录视角编号(View_ID)和主视角参考编号(Main_SEQ)作为同步控制标签; 
第三步:RTP发送服务器将各视角码流按照其平均码率同时发送,从而能够平滑各个视角码流的码率,降低终端网络抖动。同时采用异步发送策略,以便获得主视角参考编号(Main_SEQ),供多视角码流同步使用。异步发送策略实施例参见图4说明; 
第四步:独立信道传输端根据接收端显示设备类型不同,选择性将相应视角码流传输到接收终端。即向立体视用户发送多视TS流(包括主视角码流和视角2码流和其他视角码流),向双目视用户发送双目TS流(即主视角码流和视角2码流),向单视用户发送主视角TS流。 
第五步:接收终端缓存数据包,根据实时传输流协议头部扩展信息对接收到的数据包进行排序,解析负载信息恢复原始多视角复用码流顺序,并输出到解码器。排序策略实施例参见图5说明; 
如图2所示,I1、P1、B1代表主视角的I、P、B帧;I2、P2、B2代表视角2的I、P、B帧;I3、P3、B3代表其他视角的I、P、B帧。 
如图3所示,本实施例根据视角不同,将多视角复用码流进行多视角分离,将主视角码流、视角2码流和和其他视角码流分别缓冲到各自的发送缓冲队列等待发送,即将主视角码流缓冲到主视角缓冲队列,视角2码流缓冲到视角2缓冲队列,其他视角码流缓冲到其他视角缓冲队列。原始多视角复用码流中数据顺序按照I1、I2、I3、P1、P2、P3、B1、B2、B3的顺序出现。多视角分离后将I1、P1、B1帧数据包提取并缓冲;将I2、P2、B2帧数据包提取并缓冲;将I3、P3、B3帧数据包提取并缓冲; 
如图4所示,本实施例为实现码流间同步控制,对实时传输流协议头部进行扩展,开辟payload最前端32bit,前4bit用于记录视角编号(View_ID),后16位用于记录主视角参考编号(Main_SEQ)。实时传输流协议头部其他字段定义 在RFC3550。 
V:Version,版本。识别RTP版本。 
P:Padding,间隙。设置时,数据包包含一个或多个附加间隙位组,其中这部分不属于有效载荷。 
X:Extension,扩展位。设置时,在固定头后面,根据指定格式设置一个扩展头。 
CC:CSRC Count,包含CSRC标识符(在固定头后)的编号。 
M:Marker,标记。标记的解释由Profile文件定义。允许重要事件如帧边界在数据包流中进行标记。 
PT:Payload Type,识别RTP有效载荷的格式,并通过应用程序决定其解释。Profile文件规定了从Payload编码到Payload格式的缺省静态映射。另外的Payload Type编码可能通过非RTP方法实现动态定义。 
Sequence Number:每发送一个RTP数据包,序列号增加1。接收方可以依次检测数据包的丢失并恢复数据包序列。 
Timestamp:反映RTP数据包中的第一个八位组的采样时间。采样时间必须通过时钟及时提供线性无变化增量获取,以支持同步和抖动计算。 
SSRC:同步源。该标识符随机选择,旨在确保在同一个RTP会话中不存在两个同步源具有相同的SSRC标识符。 
CSRC:贡献源标识符。识别该数据包中的有效载荷的贡献源。 
Payload:负载数据。 
如图5所示,I1、P1、B1代表主视角的I、P、B帧分别所在的TS数据包;I2、P2、B2代表视角2的I、P、B帧分别所在的TS数据包;I3、P3、B3代表其他视角的I、P、B帧分别所在的TS数据包;异步发送策略描述如下:主视角码流提前一个帧时间发送,即先开始发送主视角缓冲队列,每7个TS包封装到一个RTP包,发送I1帧数据包完毕后,取最后一个RTP包的序列号作为主视角参考编号供I2、I3帧使用;然后开始发送视角2缓冲队列的I2帧、其他视角缓冲队列的I3帧和主视角缓冲队列P1帧。发送P1帧数据包完毕后,取最后一个RTP包的序列号作为主视角参考编号供P2、P3帧使用;主视角缓冲队列始始终比其他视角提前至少一帧数据,从而其他视角可以及时获得主视角参考编号 。 
如图6所示,本实施例终端依据实时传输流RTP同步扩展参数对接收到的实时传输流RTP数据包进行排序。图中每个数据包中同步参数由三位组成,第一位代表主视角参考编号,第二位代表视角编号,第三位代表数据包自身序列号。原始码流顺序如图中第一组所示。假设在复杂网络环境下终端接收到的码流顺序如第二组所示,需要经过同步策略排序恢复到第一组顺序。排序步骤如下:第一步依照主视角参考编号排序,即恢复101和202的顺序,这里二者顺序没变,不需要进行调整。第二步根据主视角参考编号将辅视视角数据包插入主视数据包队列中参考数据包(即序列号等于该主视角参考编号的数据包)之后,即将所有115号包和118号包插入到101后面,将所有216号包和219号包插入到202后面,本实施例中将216号包调整到202后面。第三步对每个参考数据包后面的辅视视角数据包即对所有101号包、115号包和118号包,根据视角编号进行排序,本实施例中将128和115互换。最后在同一视角数据包内部根据数据包自身序列号排序。