数据传输方法及接收方法、数据发送终端及接收终端与流程

文档序号:13763104阅读:481来源:国知局
数据传输方法及接收方法、数据发送终端及接收终端与流程

本发明涉及通信领域,尤其涉及一种数据传输方法及接收方法、数据发送终端及接收终端。



背景技术:

随着移动互联网的普及,语音聊天、视频聊天、视频直播等基于移动终端的多媒体业务成为当前主要的应用场景,用户量激增,这类应用有个共同的特点,就是数据量巨大、带宽需求要高、传输延时要低。另一方面,由于当前阶段运营商网络的多样性,无论从我国范围看还是从世界范围看,都是2G、3G、4G、Wifi并存,网络的复杂性给此类多媒体业务的数据传输带来了不小的挑战。

目前的基于无线网络的多媒体通信传输技术在网络层几乎全部基于IP协议,传输层则主要有两种,即TCP协议(Transmission Control Protocol,传输控制协议)和UDP协议(User Datagram Protocol,用户数据报协议)。

TCP协议:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层,用于为不同主机的应用层之间提供可靠的传输。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。目前TCP协议的实现,如TCP-Reno、TCP-NewReno、TCP-SACK,都把数据包的丢失作为网络拥塞的指示,进而将拥塞窗口减半,造成发送速率呈现较大的抖动性,影响了接收端的显示效果。尤其在无线高误码率网络下,丢包在很大程度上是由于链路错误而非拥塞,这样,盲目进行拥塞控制会导致网络利用率降低,进而影响接收效果。

UDP协议:相对于TCP协议的可靠性传输,UDP协议的特点是面向无连接的不可靠传输,也即UDP协议对分组的超时或丢弃不敏感。在有线网络中,由于网络的低误码率、高吞吐量以及接收终端的强计算能力和纠错能力,基于UDP协议的多媒体传输可以得到较好的效果。然而,相对于有线网络,无线网络中存在大量计算能力受限的弱终端,它们的纠错能力和缓存能力都较弱,所以对于数据包的缺失非常敏感。更为严重的是,传统的单纯基于UDP协议的流媒体传输方式由于没有拥塞控制机制,所以在网络发生拥塞时仍然会向网络中注入大量数据包,导致发生拥塞的路由将数据包丢弃,进而造成终端恢复多媒体内容质量的急剧下降,严重时还可能导致接收终端的解码器崩溃。

音视频内容的传输涉及到的编码技术分为两大类,一类是直接应用于音视频对象、追求压缩效率的信源编码,一类是应用于待传输数据、追求传输效率的信道编码。信源编码包括音频编码标准(如G.729.1、MP3、AAC等)和视频编码标准(如H.264、MPEG-4等),信道编码从技术实现角度进行分类包括RS码、线性分组码、卷积码、喷泉码等。下面重点介绍本发明涉及的音视频分层编码和喷泉码。

分层编码:即可分层视频编码(Scaled Video Coding),简称SVC,是一种将编码对象分割成多个质量、帧速率层的技术。目前,相关的国际标准组织在音频和视频编码领域均制定了支持SVC的编码技术,例如用于语音分层编码的G.729.1,用于视频分层编码的H.264-SVC。以视频为例,分层视频编码是把视频图像分割成一个基本层和至少一个扩展层来创建视频图像的,这些视频流分别搭载在网络上的不同数据包中,基本层数据包丢失所造成的影响和非分层编码的结果是一致的,而扩展层是以基本层而不是前帧图像为基础的。因此,扩展层的数据包丢失不会引起图像质量的显著下降,从而大大提高视频的抗丢包能力。基本层将待编码图像降采样至基本分辨率,使用较低的码率进行编码;扩展层则在基本层的基础上,分配额外的比特、对增强信息进行编码。解码端只要收到基本层数据,即可解码获得让观看者基本满意的图像质量;解码端如果收到扩展层数据,则可以在基本层的基础上进一步提升解码重建图像的质量,收到的扩展层数据越多,重建图像的质量就越高。音频的分层编码原理与视频类似。

喷泉码:是21世纪初才出现的一种新型线性分组码,其基本思想是将网络传输链路看作一种具有删除特征的物理信道,将纠错编码定义为一种无码率的编码形式,即在发送端不设置传输码率,而是将足够量的编码序列“喷”至信道,接收端接收到足够数量的编码序列即可进行解码,而无需通知发送端针对特定丢包进行重传。研究证明,喷泉码是目前最接近香农极限的信道编码方法。喷泉码最初主要应用于IPTV以及对编码纠错度要求极高的广播系统,后因其出色的性能,逐步获得更为广泛的应用。

传统上,在多媒体数据的传输方面,非实时传输的应用主要使用TCP协议,实时的应用主要使用UDP协议,但由于两种协议固有的缺陷,TCP协议虽然可靠但延时大,UDP协议虽然延时小但传输不可靠。目前的将TCP协议和UDP协议混合使用的方案,仍然是主要依赖TCP协议,其缺点主要是高优先级数据使用TCP协议传输,依然无法避免TCP协议的高延时,而且无法解决在信道丢包率高的场景中进行高效重传,无法发挥音视频分层编码、信道编码技术的优势。



技术实现要素:

为了解决现有技术中多媒体数据传输延时大,以及传输不可靠的问题,本发明提供了一种数据传输方法及数据接收方法、数据发送终端及数据接收终端。

根据本发明的一个方面,提供了一种数据接收方法,所述数据接收方法包括:

第二终端与第一终端建立第一连接,所述第二终端与中转服务器建立第二连接;

所述第二终端通过所述第一连接接收基本层数据;

所述第二终端根据通过所述第一连接接收数据的传输状态判断是否满足双路接收条件,在满足双路接收条件时,所述第二终端从中转服务器接收所述扩展层数据。

其中,所述第二终端在判断满足双路接收条件时,还基于通过所述第一连接接收的所述基本层数据和通过所述第二连接接收的所述扩展层数据获得多媒体数据;在判断不满足双路接收条件时,所述第二终端基于通过所述第一连接接收的所述基本层数据获得多媒体数据;

并且,所述第二终端根据通过所述第一连接接收数据的传输状态判断是否满足双路接收条件包括:根据丢包率是否小于预设比率和/或数据传输延迟是否小于预设时长判断是否满足双路接收条件。

其中,所述方法还包括:

所述第二终端在接收数据时如果发现数据丢失,检测丢失的数据属于所述基本层数据还是属于所述扩展层数据;

如果属于所述基本层数据则所述第二终端通知所述第一终端重新发送相应的数据,如果属于所述扩展层数据则所述第二终端通知所述中转服务器重新发送相应的数据。

根据本发明的第二方面,提供了一种数据传输方法,所述数据传输方法包括:

第一终端与第二终端建立第一连接,所述第一终端和所述第二终端均与中转服务器建立第二连接;

所述第一终端将多媒体数据进行分层编码,得到基本层数据和扩展层数据,将所述基本层数据通过第一连接发送至所述第二终端,将所述扩展层数据通过所述第二连接发送至所述中转服务器;

所述第二终端根据通过所述第一连接接收数据的传输状态判断是否满足双路接收条件,在满足双路接收条件时,所述第二终端从所述中转服务器接收所述扩展层数据。

其中,所述第一终端将所述基本层数据通过所述第一连接发送至所述第二终端包括:

所述第一终端根据通过所述第一连接传输数据的数据传输速率、丢包率、数据传输延时估计所述第一连接的可用带宽;

所述第一终端根据所述第二终端的终端能力和/或估计的所述第一连接的可用带宽选择基本层编码策略对所述基本层数据进行编码,然后进行信道编码并发送至所述第二终端;

所述第一终端将所述扩展层数据通过所述第二连接发送至所述中转服务器包括:

所述第一终端根据通过所述第二连接传输数据的数据传输速率、丢包率、数据传输延时估计所述第二连接的可用带宽;

所述第一终端根据估计的所述第二连接的可用带宽选择扩展层编码策略对所述扩展层数据进行编码,然后进行信道编码并发送至所述中转服务器。

其中,所述第一连接采用UDP传输协议;所述第二连接采用TCP传输协议。

根据本发明的第三方面,提供了一种数据发送终端,所述数据发送终端包括:

第一连接建立模块,用于与数据接收终端建立第一连接;

第二连接建立模块,用于与中转服务器建立第二连接;

第一编码模块,用于将多媒体数据进行分层编码,得到基本层数据和扩展层数据;

第一发送模块,用于将编码后的所述基本层数据通过所述第一连接发送至所述数据接收终端;

第二发送模块,用于将编码后的所述扩展层数据通过所述第二连接发送至所述中转服务器。

其中,所述数据发送终端还包括:

第一估计模块,用于根据通过所述第一连接传输数据的数据传输速率、丢包率、数据传输延时估计所述第一连接的可用带宽;

第二估计模块,用于根据通过所述第二连接传输数据的数据传输速率、丢包率、数据传输延时估计所述第二连接的可用带宽;

并且,

所述第一编码模块还用于根据所述第二终端的终端能力和/或估计的所述第一连接的可用带宽选择基本层编码策略并基于所述基本层编码策略对所述基本层数据进行编码,以及根据所述第二连接的可用带宽选择扩展层编码策略并基于所述扩展层编码策略对所述扩展层数据进行编码。

根据本发明的第四方面,提供了一种数据接收终端,所述数据接收终端包括:

第一通信模块,用于与数据发送终端建立第一连接,并从所述数据发送终端接收基本层数据后传输给数据解码模块;

第二通信模块,用于与中转服务器建立第二连接,并从所述中转服务器接收扩展层数据后传输给数据解码模块,以及当判断模块判断满足双路接收条件时向所述中转服务器请求所述扩展层数据;

所述判断模块,用于根据通过所述第一连接接收数据的传输状态判断是否满足双路接收条件,并将判断结果通知所述第二通信模块和数据解码模块;

所述数据解码模块,用于当所述判断模块判断满足双路接收条件时,基于通过所述第一连接接收的所述基本层数据和通过所述第二连接接收的所述扩展层数据获得多媒体数据;当所述判断模块判断不满足双路接收条件时基于通过所述第一连接接收的所述基本层数据获得多媒体数据。

其中,所述数据接收终端还包括:

数据检测模块,用于检测接收数据时是否存在数据丢失,并检测丢失的数据属于所述基本层数据还是属于所述扩展层数据,当属于所述基本层数据时通知所述第一通信模块所述基本层数据丢失,当属于所述扩展层数据时通知所述第二通信模块所述扩展层数据丢失;

并且,

所述第一通信模块还用于收到所述基本层数据丢失消息时,通知所述数据发送终端重新发送相应的数据;

所述第二通信模块还用于收到所述扩展层数据丢失消息时,所述中转服务器重新发送相应的数据。

本发明中的数据传输方法及数据接收方法、数据发送终端及数据接收终端,融合音视频分层编码、信道编码和多径传输技术,针对实时多媒体应用的带宽占用高、传输延迟低的需求,可以实现网络质量自适应,网络好时,收发双方可以获得高质量的使用体验,网络差时,收发双方也可以获得较高质量的使用体验。

附图说明

构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了根据本发明的数据传输方法的流程图;

图2示出了根据本发明的数据接收方法的流程图;

图3示出了根据本发明的数据发送终端的模块图;

图4示出了根据本发明的数据接收终端的模块图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

本发明的基本思想是:通讯双方在开始数据传输前建立两条连接,一条连接使用UDP传输协议(简称“UDP连接”),另一条使用TCP传输协议(简称“TCP连接”)。其中,UDP连接在通讯双方之间建立,TCP通道则由通讯双方分别与中转服务器建立。数据发送终端将音频或视频内容进行分层编码,基本层数据使用尽可能少的编码比特数量、占用较低的网络传输带宽需求、以较低的视觉或听觉质量满足用户对视频或音频的基本观看或收听体验,扩展层数据使用更多的编码比特数量、占用更高的网络传输带宽、可以在基本层数据的基础上进一步提升用户的观看或收听体验。在发送基本层数据和扩展层数据时,分别使用信道编码技术(如喷泉码)进行编码,将基本层数据编码出的数据通过UDP连接发送给数据接收终端,将扩展层数据编码出的数据通过TCP连接发送给中转服务器。数据接收终端在接收到新数据并更新解码队列时,如发现有数据包丢失时,检测数据包类型,如果属于基本层,则告知数据发送终端发送能够恢复丢失数据包的数据;如果丢失的数据包属于扩展层,则向中转服务器请求重发丢失的数据包。

本发明提供了一种数据传输方法。如图1所示,该方法包括:

步骤101,第一终端与第二终端建立第一连接,第一终端和第二终端均与中转服务器建立第二连接。具体实现时,第一连接可以采用UDP传输协议进行数据传输,第二连接可以采用TCP传输协议进行数据传输。

步骤102,第一终端将多媒体数据进行分层编码,得到基本层数据和扩展层数据,将基本层数据通过第一连接发送至第二终端,将扩展层数据通过第二连接发送至中转服务器。其中,基本层数据使用尽可能少的编码比特数量、占用较低的网络传输带宽需求、以较低的视觉或听觉质量满足用户对视频或音频的基本观看或收听体验;扩展层数据使用更多的编码比特数量、占用更高的网络传输带宽、可以在基本层数据的基础上进一步提升用户的观看或收听体验。

具体地,第一终端将基本层数据通过第一连接发送至第二终端包括:第一终端根据通过第一连接传输数据的数据传输速率、丢包率、数据传输延时估计第一连接的可用带宽;第一终端根据第二终端的终端能力和/或估计的第一连接的可用带宽选择基本层编码策略对基本层数据进行编码,然后进行信道编码并发送至所述第二终端。第二终端的终端能力包括屏幕分辨率、CPU主频、内存、网络接入制式等。其中,基本层编码策略涉及传输码率、量化参数、分辨率等因素。信道编码可以选择喷泉码、极化码编码等。

第一终端将扩展层数据通过第二连接发送至中转服务器包括:第一终端根据通过第二连接传输数据的数据传输速率、丢包率、数据传输延时估计第二连接的可用带宽;第一终端根据估计的第二连接的可用带宽选择扩展层编码策略对扩展层数据进行编码,然后进行信道编码并发送至中转服务器。其中,扩展层编码策略涉及传输码率、量化参数、分辨率等因素。信道编码可以选择喷泉码、极化码编码等。

步骤103,第二终端根据通过第一连接接收数据的传输状态判断是否满足双路接收条件。这里的双路接收条件可以是:根据丢包率是否小于预设比率和/或数据传输延迟是否小于预设时长。其中,丢包率的预设比率可以设定为5%,数据传输延迟的预设时长可以设定为不高于音频编码器和视频编码器编码周期,例如当音频编码器编码帧长20ms、视频编码器帧率30帧/秒时,数据传输延迟的预设时长为20ms。

在满足双路接收条件时,执行步骤104,即第二终端从中转服务器接收扩展层数据。

在步骤104中,在满足双路接收条件时,第二终端还基于通过第一连接接收的基本层数据和通过第二连接接收的扩展层数据获得多媒体数据。这样,第二终端解码基本层数据和扩展层数据获得高质量的音频或视频。

在不满足双路接收条件时,执行步骤105,即第二终端基于通过第一连接接收的基本层数据获得多媒体数据。在该步骤中,第二终端仅解码基本层数据,获得音频或视频。需要说明的是,在该数据传输方法中,第二终端在接收到新数据并更新解码队列时,如果发现数据丢失,则检测丢失的数据属于基本层数据还是属于扩展层数据。如果属于基本层数据,则第二终端通知第一终端重新发送相应的数据,即能恢复丢失的数据的相应数据;如果属于扩展层数据,则第二终端通知中转服务器重新发送相应的数据,即能恢复丢失的数据的相应数据。

下面描述该数据传输方法的一个具体实施例。在该具体实施例中,数据传输方法包括:

(1)第一终端向第二终端发起视频通话请求,第二终端接受第一终端的通话请求;

(2)第一终端与第二终端建立UDP连接,第一终端、第二终端分别与中转服务器建立长时TCP连接;

(3)第一终端与第二终端协商各自的终端能力(例如,屏幕分辨率等)、估计UDP通道的带宽,第一终端根据第二终端等能力和/或估算出的UDP通道带宽,选择合适的基本层编码策略,分别对多媒体数据,即音频和视频进行基本层编码;

(4)第一终端估算TCP通道的可用带宽,选择合适的扩展层编码策略,分别对音频和视频进行扩展层编码;

(5)第一终端将基本层和扩展层分别使用极化码进行信道编码;

(6)第一终端将经过信道编码后的基本层数据码流通过UDP通道发送给第二终端,将经过信道编码后的扩展层数据码流通过TCP通道发送给中转服务器;

(7)第二终端从UDP通道接收到基本层数据码流,存入解码队列;

(8)第二终端根据接收到的基本层数据的传输状态判断是否满足双路接收条件,如果不满足,则基于基本层数据得到多媒体数据;如果满足,从TCP连接向中转服务器请求对应的扩展层数据,存入解码队列;

(9)第二终端如果发现有数据包丢失,则判断丢失的数据包属于基本层数据还是扩展层数据,如果属于基本层数据,则向第一终端请求重发相应的数据包,如果属于扩展层数据,则向中转服务器请求重发相应的数据包。

需要说明的是,在数据传输过程中,第一终端根据UDP通道的数据发送速率、丢包率、数据传输延时更新UDP通道的带宽估计,来及时调整基本层数据编码策略,对音频和视频进行基本层编码;同时根据TCP通道的数据发送速率、丢包率、数据传输延时更新TCP通道的可用带宽估计,来及时调整扩展层数据编码策略,对音频和视频进行扩展层编码。

本发明还提供了一种数据接收方法。参考图2所示,该数据接收方法包括:

步骤201,第二终端与第一终端建立第一连接,第二终端与中转服务器建立第二连接;

步骤202,第二终端通过第一连接接收基本层数据;

步骤203,第二终端根据通过第一连接接收数据的传输状态判断是否满足双路接收条件;

在满足双路接收条件时,执行步骤204,即第二终端从中转服务器接收扩展层数据。

进一步地,在满足双路接收条件时,第二终端还基于通过第一连接接收的基本层数据和通过第二连接接收的扩展层数据获得多媒体数据。

在不满足双路接收条件时,执行步骤205,即第二终端基于通过第一连接接收的基本层数据获得多媒体数据。

第二终端的其他操作如参照图1中所述,在此不再赘述。

本发明还提供了一种数据发送终端。参考图3所示,该数据发送终端包括:

第一连接建立模块301,用于与数据接收终端建立第一连接;

第二连接建立模块302,用于与中转服务器建立第二连接;

第一编码模块309,用于将多媒体数据进行分层编码,得到基本层数据和扩展层数据;

第一发送模块303,用于将编码后的基本层数据通过第一连接发送至数据接收终端;

第二发送模块304,用于将编码后的扩展层数据通过第二连接发送至中转服务器。

此外,该数据发送终端还包括:

第一估计模块307,用于根据通过第一连接传输数据的数据传输速率、丢包率、数据传输延时估计第一连接的可用带宽;

第二估计模块308,用于根据通过第二连接传输数据的数据传输速率、丢包率、数据传输延时估计第二连接的可用带宽;

并且,第一编码模块309还用于根据第二终端的终端能力和/或估计的第一连接的可用带宽选择基本层编码策略并基于所述基本层编码策略对所述基本层数据进行编码,以及根据第二连接的可用带宽选择扩展层编码策略并基于所述扩展层编码策略对所述扩展层数据进行编码。

本发明还提供了一种数据接收终端。参考图4所示,该数据接收终端包括:

第一通信模块401,用于与数据发送终端建立第一连接,并从数据发送终端接收基本层数据后传输给数据解码模块404;

第二通信模块402,用于与中转服务器建立第二连接,并从中转服务器接收扩展层数据后传输给数据解码模块404,以及当判断模块403判断满足双路接收条件时向中转服务器请求扩展层数据;

判断模块403,用于根据通过第一连接接收数据的传输状态判断是否满足双路接收条件,并将判断结果通知第二通信模块402和数据解码模块404;

数据解码模块404,用于当判断模块403判断满足双路接收条件时,基于通过第一连接接收的基本层数据和通过第二连接接收的扩展层数据获得多媒体数据;当判断模块403判断不满足双路接收条件时基于通过第一连接接收的基本层数据获得多媒体数据。

此外,该数据接收终端还包括:

数据检测模块405,用于检测接收数据时是否存在数据丢失,并检测丢失的数据属于基本层数据还是属于扩展层数据,当属于基本层数据时通知第一通信模块401基本层数据丢失,当属于扩展层数据时通知第二通信模块402扩展层数据丢失;

并且,第一通信模块401还用于收到基本层数据丢失消息时,通知数据发送终端重新发送相应的数据;第二通信模块402还用于收到扩展层数据丢失消息时,中转服务器重新发送相应的数据。

本发明中的数据传输方法及数据接收方法、数据发送终端及数据接收终端,融合音视频分层编码、信道编码和多径传输技术,针对实时多媒体应用的带宽占用高、传输延迟低的需求,可以实现网络质量自适应,网络好时,收发双方可以获得高质量的使用体验,网络差时,收发双方也可以获得较高质量的使用体验。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。

以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1