首页> 中国专利> 一种手机流媒体自适应实时传输方法

一种手机流媒体自适应实时传输方法

摘要

本发明涉及一种手机网络信号传输方法,利用自动带宽模块检测当前可用的带宽,并将结果传给自适应控制算法模块,由其计算出应传送的原始数据分层编码后的层码流,所述分层编码是采用H2.64/AVC,由实时传输模块将要传送的层码流组装成报文发送到客户端。本方法中的自适应控制算法能预测客户端所需某一层的数据量,并且合理安排连续发送数据的时机,保证在播放前有足够的缓冲,避免当带宽不足带来的影响。此方法解决了当前网络状态不稳定或是持续低下的时候,通过当前带宽情况,预先算出需要传送的数据,保证客户的观看需求,将网络带宽影响降到最低,最大限度利用带宽,为用户提供最佳的流媒体质量。

著录项

  • 公开/公告号CN101262443A

    专利类型发明专利

  • 公开/公告日2008-09-10

    原文格式PDF

  • 申请/专利权人 陶忠伟;施新刚;

    申请/专利号CN200810097541.5

  • 发明设计人 施新刚;陶忠伟;

    申请日2008-05-12

  • 分类号H04L12/56;H04L1/00;H04L29/08;H04L12/18;H04Q7/22;H04Q7/32;

  • 代理机构北京安博达知识产权代理有限公司;

  • 代理人徐国文

  • 地址 100086 北京市中关村大街28-1号海滨文化艺术大厦A座809室

  • 入库时间 2023-12-17 20:41:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-03

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20101215 终止日期:20120512 申请日:20080512

    专利权的终止

  • 2010-12-15

    授权

    授权

  • 2008-10-29

    实质审查的生效

    实质审查的生效

  • 2008-09-10

    公开

    公开

说明书

技术领域

本发明涉及一种手机网络信号传输方法,尤其涉及一种服务器数据分层编码的数据传输方式。

背景技术

随着Internet的飞速发展,流媒体技术的应用也越来越普及。手机流媒体是继短信之后,手机平台内容开发的又一次进步。从技术上讲,手机流媒体是一种实时传输数据的方法,通过移动网络在移动手机终端上采用流媒体技术实现的应用,典型的应用实例包括移动游戏、移动视频点播、移动视频聊天、移动卡拉OK等。手机流媒体主要提供信息、娱乐、通信、监控和定位五大项服务内容。也可以高速率在线观看电视、电影、新闻以及各种娱乐、体育节目,还可以进行VOD/AOD视频点播,从而使用户与手机媒体进行互动。

目前移动网络提供的GPRS接入速率大约在30~50Kbps之间,EDGE接入速率约为60Kbps,而在未来的3G网络甚至4G网络中,网络速率将大大提高,达到几百Kbps。不同的网络条件对流媒体传输的要求不同,同样的网络条件下,也会因为存在多个访问网络的应用程序而使得流媒体所能使用的带宽不同,且因为天气、地理的原因使得网络的传输信号时强时弱,造成实时收看节目时断时续,或是画面质量下降,不能满足收看要求。

发明内容

为了克服上述问题,本发明的目的是提供一种能根据网络带宽情况自动调节优化传输用户观看的视频数据的方法。

该方法包括如下步骤;

a.服务器与客户端自动带宽检测模块分别统计各自一段时间内发出或接收到的测试信号,客户端自动带宽检测模块通过客户端实时传输模块将测试信号传给服务器自动带宽检测模块;

b.服务器自动带宽检测模块根据服务器和客户端的数据统计出当前带宽情况并传给服务器自适应算法模块;

c.服务器自适应控制算法模块根据服务器自动带宽检测模块的结果和客户端缓冲区内可播放数据的层码流的状况,进行如下计算;

分析客户端每层正常播放所需预读的帧数;

判断客户端当前缓冲区中待播放数据实际情况,假如带宽和预播放数据足够,则传送新数据层,假如带宽和预播放数据低于要求则传送需要的层;

判断同一时间需要传送层数的优先顺序

按照以上判断结果用H2.64/AVC对视频流进行分层编码。

d.服务器实时传输模块根据自适应控制算法模块结果将分层编码中相应的层组装成报文发送给客户端。

所述分层编码是采用H2.64/AVC中SVC的FGS将视频流压缩成N+1个子流,子流中包括一个基本层和N个附加层;

所述基本层是使用传统的混合编码技术,经过整数变化和量化及熵编码得到。

服务器与客户端的数据是通过各自实时传输模块进行传送和接收;

所述服务器的实时传输模块传送的内容包括:将接收到的客户端带宽检测结果传给服务器自动带宽检测模块,根据自适应控制算法模块结果封装和传输分层编码到客户端实时传输模块;

接收包括:客户端带宽检测结果、播放控制命令;

客户端实时传输模块发送的内容包括:播放控制命令、自动带宽检测结果、连接或中断服务器的命令;

接收的内容包括:将服务器传送的层码流保存到缓冲区。

所述客户端的自动带宽检测模块,首先统计最近一段时间实时传输模块所接收到的各层分层编码报文数量,然后采用指数加权的方法来预测当前可用带宽。

本方法通过将当前用户观看的视频流分成N+1个子层,其中一个基本层和N个附加层,当带宽足够时,先将基本层和附加层都传输到客户端,实现流畅播放。当带宽不够且缓冲内数据不满足播放时,传输基本层到客户端,以保证观看的基本要求,本方法能够在当前网络状态不稳定或是持续低下的时候,通过当前带宽情况,预先算出需要传送的数据,保证客户的观看需求,将网络带宽影响降到最低,以达到对网络的最佳利用,为用户提供最佳的流媒体质量。因为客户端需要缓冲一定数量的数据,以防止网络带宽下降造成播放中断,所以自适应控制算法的关键在于选择发送哪一层的数据,什么时候开始、什么时候结束发送某一层的数据。算法预测客户端所需某一层的数据量,并且合理安排连续发送数据的时机,保证在播放前有足够的缓冲,避免当带宽不足带来的影响。

附图说明

图1自适应实时传输方法

具体实施例

下面结合附图对本方法的具体过程说明如下。

如图1所示,服务器自动带宽检测模块利用一段时间内发出到客户端的数据量,测试出服务器当前可用带宽,客户端的自动带宽检测模块统计最近一段时间所接收到的各层分层编码报文数量,采用指数加权的方法来预测当前可用带宽。具体算法如下:

客户端所接收的数据为层,客户端维护一个定时器,用于定时触发带宽检测,在定时器两次触发之间定义为一个接收窗口,客户端统计在第i个接收窗口内各层数据的实际接收数量Bij,并通过加权预测下一时刻的可用带宽C=γC+(1-γ)Σj=1j^Bij,其中γ为加权参数。

然后通过双方实时传输模块将测试结果传给服务器自动带宽检测模块,服务器自动带宽检测模块根据双方的测试结果计算出客户端可用带宽的大小及接收能力,服务器自动带宽检测模块将此结果传给自适应控制算法模块。

自适应控制算法是整个传输过程核心,它的作用是根据带宽的变化,实时调整服务器传送数据的方式,自适应控制算法包括三个子算法,分别是计算各层缓冲需求,判断是否可发送新的一层,以及调度下一次发送数据。具体说明如下:

:第j层缓冲区的最大容量

:第j层的缓冲需求

Bij:第j层在第i个时间块内所占的缓冲区大小

:关键层,可传输的最高层

:预测带宽

算法根据客户端对第j层数据的“缓冲需求”并且根据可用带宽来调整代表了第j层在当前的带宽情况下为了保证连续播放所需要预读的帧数。如果缓冲太小的话,即使带宽有很小的下降,也会导致这一层的中断。如果缓冲太大的话,则浪费了本来可用于缓冲其它层报文的带宽,算法可估计每一层最小缓冲需求。Bij则代表了客户端当前实际所存储的第j层数据量,通过归一化处理,每层正常播放所需的数据量为1,该信息通过自动带宽检测模块从客户端获取。

第j层能够连续播放的条件是平均可用带宽高于j,而且第j层缓冲的报文足够填补带宽不足带来的影响。通过统计可用带宽可以估计缓冲需求,通过观测可用带宽的变化,可以得到关键层也就是可以传送的最高层(该层的带宽需求可能不能完全被满足),首先能够做到保证所有层的连续播放;再者直到第层的缓冲数据可以保证连续播放一定的时间,才开始第层的播放;最后尽可能保持第层的连续播放。

利用算法AdjustBuffer(i)来调整第i个时间块内各层的缓冲需求,如果缓冲区在τ时间内都是满的,表明带宽足够传输第层,可以减小低层的缓冲需求,降低所有层的需求到原来的β倍,如果缓冲区有限,为能更有效地使用缓冲区,降低所有层的需求到原来的β倍,可以预读较少的低层数据。在调整以后,如果第j层缓冲的数据曾经在上次修改缓冲需求的时间Xj后的某一时间满足了缓冲需求但是随后又降低到之下,那么就将缓冲需求提高到这样可以防止由于带宽抖动带来的缓冲耗尽。具体算法如下:

算法AddLayer(i)用于在第i个时间块内判断何时可以增加新的一层作为关键层。只有当第层以下所有层(包括第层)都有足够的缓冲数据来满足缓冲需求,并且有足够的带宽来支持新的一层时,才能增加新的一层,并且第层的缓冲需求至少不低于第层。在客户端,第层被安排在当前时间块以后的第个时间块播放,以确定在播放之前能够有足够的数据达到客户端。具体算法如下:

算法Schedule用于分配下一时刻发送哪一层数据。如果第j′层之下的所有层已经缓冲的数据都大于其缓冲需求,而第j′层已经缓冲的数据小于其缓冲需求,那么就发送第j′层的数据,因为低层的数据比高层数据更重要。当所有层的数据都大于其缓冲需求,就找到其中超过缓冲需求最少的一层,发送该层的数据。具体算法如下:

分层编码根据自适应控制算法模块的结果对原始视频流进行分层,分层编码使用H.264/AVC及SVC中的精细可分级性编码FGS,将用户观看的视频进行分层编码,把原始视频流压缩成n+1个子流,子流包括一个基本层和n个附加层。其中基本层能单独进行解码并提供较粗糙的视频质量,第k个附加层依赖于基本层和1~k-1个附加层,合成后能够提供较高的视频质量。具体过程是使用传统的混合编码技术,经过整数变化和量化及熵编码得到基本层;在基本层和原始数据图象之间存在差值,采用更小的量化参数,经过整数变化和量化,再进行熵编码,量化后得到第1个附加层。第1个附加层+基本层与原始数据图象之间仍存在差值,可以看做是基本层与第1个附加层叠加所成的基本层与原始数据图像之间的差值,再重复上述分层方法,可以得到的第2个附加层,依次类推,可以得到第n个附加层。

服务器与客户端的数据传输以及各自的内部数据传输都是依靠各自的实时传输模块完成的,实时传输模块根据自适应控制算法模块算出的结果,将分层编码中相应层传送到客户端,其具体操作如下;

服务器实时传输模块将需要传送的层码流,将数据组装成报文发送给客户端。实时传输模块为传送的报文分配ID号,包括HIGH_ID及LOW_ID,用以判断报文顺序和同步不同层的报文。HIGH_ID表示报文所携带数据所对应原始视频的层数,上层的HIGH_ID为下层的HIGH_ID加1。LOW_ID表示报文所携带数据在所在层中的相对位置。HIGH_ID为1个字节,最大支持256层;LOW_ID为3个字节,当LOW_ID达到最大值时归0,重新开始计数。

服务器实时传输模块接收内容包括:客户端发起、中断等连接命令,暂停、快进、快退、定位等播放命令,以及客户端自动带宽检测的结果。发送内容包括向客户端发送数据报文、检测信号;并将双方自动带宽检测结果经过计算后发给服务器自动带宽检测模块。

客户端实时传输模块发送内容主要包括:发起、中断与服务器的连接命令;客户端自动带宽检测结果。接收内容包括:服务器传送的层码流并保存在接收缓冲区中等待解码;与服务器交互暂停、快进、快退、定位等播放信息;

客户端为每层数据分配一个缓冲区,第j层缓冲区容量为缓冲区采用环形结构,最早到达的报文将被最新的报文覆盖,缓冲区维护两个指针,读指针用于解码器读取数据,写指针用于实时传输模块保存数据。

解码器对缓冲区中的层码流进行解码,并将解码后所得到的原始码流发送到播放器的缓冲区中。解码器支持软件解压和硬件解压,以达到最优的性价比。

播放模块有自己的缓冲区,保存解码器输出的原始码流,并按照原始码流的时间戳进行播放。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号