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

文档序号:7692251阅读:119来源:国知局
专利名称:一种手机流媒体自适应实时传输方法
技术领域
本发明涉及一种手机网络信号传输方法,尤其涉及一种服务器数 据分层编码的数据传输方式。
背景技术
随着Internet的飞速发展,流媒体技术的应用也越来越普及。 手机流媒体是继短信之后,手机平台内容开发的又一次进步。从技术 上讲,手机流媒体是一种实时传输数据的方法,通过移动网络在移动 手机终端上采用流媒体技术实现的应用,典型的应用实例包括移动游 戏、移动视频点播、移动视频聊天、移动卡拉0K等。手机流媒体主要 提供信息、娱乐、通信、监控和定位五大项服务内容。也可以高速率 在线观看电视、电影、新闻以及各种娱乐、体育节目,还可以进行 V0D/A0D视频点播,从而使用户与手机媒体进行互动。目前移动网络提供的GPRS接入速率大约在30 ~ 50Kbps之间, EDGE接入速率约为60Kbps,而在未来的3G网络甚至4G网络中,网络 速率将大大提高,达到几百Kbps。不同的网络条件对流媒体传输的要 求不同,同样的网络条件下,也会因为存在多个访问网络的应用程序 而使得流媒体所能使用的带宽不同,且因为天气、地理的原因使得网 络的传输信号时强时弱,造成实时收看节目时断时续,或是画面质量 下降,不能满足收看要求。发明内容为了克服上述问题,本发明的目的是提供一种能根据网络带宽情 况自动调节优化传输用户观看的视频数据的方法。该方法包括如下步骤;a. 服务器与客户端自动带宽检测模块分别统计各自 一段时间内发 出或接收到的测试信号,客户端自动带宽检测模块通过客户端实时传输模块将测试信号传给服务器自动带宽检测模块;b. 服务器自动带宽检测模块根据服务器和客户端的数据统计出当 前带宽情况并传给服务器自适应算法模块;c. 服务器自适应控制算法模块根据服务器自动带宽检测模块的结 果和客户端緩冲区内可播放数据的层码流的状况,进行如下计算;4分析客户端每层正常播放所需预读的帧数;判断客户端当前緩沖区中待播放数据实际情况,假如带宽和预播 放数据足够,则传送新数据层,假如带宽和预播放数据低于要求则传送需要的层;判断同 一时间需要传送层数的优先顺序按照以上判断结果用H2. 64/AVC对视频流进行分层编码。 d.服务器实时传输模块根据自适应控制算法模块结果将分层编 码中相应的层组装成报文发送给客户端。所述分层编码是采用H2. 64/AVC中SVC的FGS将视频流压缩成N+l 个子流,子流中包括一个基本层和N个附加层;所述基本层是使用传统的混合编码技术,经过整数变化和量化及 熵编码得到。服务器与客户端的数据是通过各自实时传输模块进行传送和接收;所述服务器的实时传输模块传送的内容包括将接收到的客户端带宽检测结果传给服务器自动带宽检测模块,根据自适应控制算法模块结果封装和传输分层编码到客户端实时传输模块; 接收包括客户端带宽检测结果、播放控制命令; 客户端实时传输模块发送的内容包括播放控制命令、自动带宽检测结果、连接或中断服务器的命令;接收的内容包括将服务器传送的层码流保存到緩冲区。 所述客户端的自动带宽检测模块,首先统计最近一段时间实时传输模块所接收到的各层分层编码报文数量,然后采用指数加权的方法来预测当前可用带宽。本方法通过将当前用户观看的视频流分成N+1个子层,其中一个 基本层和N个附加层,当带宽足够时,先将基本层和附加层都传输到 客户端,实现流畅播放。当带宽不够且緩冲内数据不满足播放时,传 输基本层到客户端,以保证观看的基本要求,本方法能够在当前网络 状态不稳定或是持续低下的时候,通过当前带宽情况,预先算出需要5传送的数据,保证客户的观看需求,将网络带宽影响降到最低,以达 到对网络的最佳利用,为用户提供最佳的流媒体质量。因为客户端需 要緩冲一定数量的数据,以防止网络带宽下降造成播放中断,所以自 适应控制算法的关键在于选择发送哪一层的数据,什么时候开始、什 么时候结束发送某一层的数据。算法预测客户端所需某一层的数据量, 并且合理安排连续发送数据的时机,保证在播放前有足够的緩冲,避 免当带宽不足带来的影响。


图1自适应实时传输方法具体实施例下面结合附图对本方法的具体过程说明如下。如图l所示,服务器自动带宽检测模块利用一段时间内发出到客 户端的数据量,测试出服务器当前可用带宽,客户端的自动带宽检测 模块统计最近一段时间所接收到的各层分层编码报文数量,釆用指数加权的方法来预测当前可用带宽。具体算法如下客户端所接收的数据为i"'层,客户端维护一个定时器,用于定 时触发带宽检测,在定时器两次触发之间定义为一个接收窗口,客户 端统计在第i个接收窗口内各层数据的实际接收数量^,并通过加权预 测下一时刻的可用带宽^: ^ = ^ + (1-力Ek巧,其中7为加权参数。然后通过双方实时传输模块将测试结果传给服务器自动带宽检 测模块,服务器自动带宽检测模块根据双方的测试结果计算出客户端 可用带宽的大小及接收能力,服务器自动带宽检测模块将此结果传给 自适应控制算法模块。自适应控制算法是整个传输过程核心,它的作用是根据带宽的变 化,实时调整服务器传送数据的方式,自适应控制算法包括三个子算 法,分别是计算各层緩冲需求,判断是否可发送新的一层,以及调度 下一次发送数据。具体说明如下:第j层缓冲区的最大容量 :第j层的缓冲需求 5/ :第j'层在第i个时间块内所占的缓冲区大小 〗关键层,可传输的最高层 (5 :预测带宽算法根据客户端对第j层数据的"緩沖需求"并且根据可用带宽来调整^。 ^代表了第J层在当前的带宽情况下为了保证连续播放所 需要预读的帧数。如果緩冲太小的话,即使带宽有很小的下降,也会 导致这一层的中断。如果緩冲太大的话,则浪费了本来可用于緩冲其 它层报文的带宽,算法可估计每一层最小緩沖需求。巧则代表了客户 端当前实际所存储的第J'层数据量,通过归一化处理,每层正常播放所 需的数据量为1,该信息通过自动带宽检测模块从客户端获取。第J层能够连续播放的条件是平均可用带宽高于、而且第J层緩沖 的报文足够填补带宽不足带来的影响。通过统计可用带宽可以估计緩 冲需求,通过观测可用带宽的变化,可以得到关键层人也就是可以传 送的最高层(该层的带宽需求可能不能完全被满足),首先能够做到保证所有i ;-i层的连续播放;再者直到第.;'层的緩冲数据可以保证连续播放一定的时间,才开始第;层的播放;最后尽可能保持第3层的连续播放。利用算法A争stBuffer(O来调整第i个时间块内各层的緩沖需求,如果緩沖区在t时间内都是满的,表明带宽足够传输第;'层,可以减小低层 的緩冲需求,降低所有层的需求到原来的/M咅,如果緩冲区有限,为能 更有效地使用緩沖区,降低所有层的需求到原来的"倍,可以预读较少 的低层数据。在调整以后,如果第j层緩沖的数据曾经在上次修改緩沖 需求的时间"后的某一时间满足了緩冲需求&,但是随后又降低到^ 之下,那么就将緩冲需求提高到』',这样可以防止由于带宽抖动带来 的緩沖耗尽。具体算法如下:_Procedure AddjustBuffer( )if B, = 5fc j — t + 1 ^ a: ^ t then for j = 1 to dor =《6nd for end iffor j = 1 to j doif < and j9《^ SJ for some a;, s.t. J^' < fc < i then & = a加 A" = i end if end for算法AddLayerW用于在第i个时间块内判断何时可以增加新的 一 层;'+i作为关键层。只有当第;层以下所有层(包括第;'层)都有足够的緩 沖数据来满足緩冲需求,并且有足够的带宽^来支持新的一层时,才能增加新的一层,并且第;+i层的緩冲需求至少不低于第;层。在客户端, 第+i层被安排在当前时间块以后的第^个时间块播放,以确定在播放 之前能够有足够的数据达到客户端。具体算法如下:_<formula>formula see original document page 8</formula>算法Schedule用于分配下一时刻发送哪一层数据。如果第/层之下的 所有层已经緩冲的数据都大于其緩冲需求,而第/层已经緩冲的数据小 于其緩冲需求,那么就发送第/层的数据,因为低层的数据比高层数据 更重要。当所有层的数据都大于其緩沖需求,就找到其中超过緩冲需求最少的一层,发送该层的数据。具体算法如下'._<formula>formula see original document page 8</formula>分层编码根据自适应控制算法模块的结果对原始视频流进行分层,分层编码使用H. 264/AVC及SVC中的精细可分级性编码FGS,将 用户观看的视频进行分层编码,把原始视频流压缩成n+1个子流,子 流包括一个基本层和n个附加层。其中基本层能单独进行解码并提供 较粗糙的视频质量,第k个附加层依赖于基本层和1 ~ k-1个附加层, 合成后能够提供较高的视频质量。具体过程是使用传统的混合编码技 术,经过整数变化和量化及熵编码得到基本层;在基本层和原始数据 图象之间存在差值,采用更小的量化参数,经过整数变化和量化,再 进行熵编码,量化后得到第1个附加层。第1个附加层+基本层与原始数据图象之间仍存在差值,可以看做是基本层与第1个附加层叠加所 成的基本层与原始数据图像之间的差值,再重复上述分层方法,可以得到的第2个附加层,依次类推,可以得到第n个附加层。服务器与客户端的数据传输以及各自的内部数据传输都是依靠 各自的实时传输模块完成的,实时传输模块根据自适应控制算法模块 算出的结果,将分层编码中相应层传送到客户端,其具体操作如下;服务器实时传输模块将需要传送的层码流,将数据组装成报文发 送给客户端。实时传输模块为传送的报文分配ID号,包括HIGH-ID 及L0W-ID,用以判断报文顺序和同步不同层的报文。HIGFLID表示报 文所携带数据所对应原始视频的层数,上层的HIGH —ID为下层的 HIGH-ID加1。 L0W_ID表示报文所携带数据在所在层中的相对位置。 HIGH_ID为1个字节,最大支持256层;LOW —ID为3个字节,当LOW—ID 达到最大值时归0,重新开始计数。服务器实时传输模块接收内容包括客户端发起、中断等连接命 令,暂停、快进、快退、定位等播放命令,以及客户端自动带宽检测 的结果。发送内容包括向客户端发送数据报文、检测信号;并将双方 自动带宽检测结果经过计算后发给服务器自动带宽检测模块。客户端实时传输模块发送内容主要包括发起、中断与服务器的 连接命令;客户端自动带宽检测结果。接收内容包括服务器传送的 层码流并保存在接收緩沖区中等待解码;与服务器交互暂停、快进、 快退、定位等播放信息;客户端为每层数据分配一个緩冲区,第J层緩冲区容量为&,緩冲 区采用环形结构,最早到达的报文将被最新的报文覆盖,緩冲区维护 两个指针,读指针用于解码器读取数据,写指针用于实时传输模块保 存数据。解码器对緩冲区中的层码流进行解码,并将解码后所得到的原始 码流发送到播放器的緩冲区中。解码器支持软件解压和硬件解压,以 达到最优的性价比。播放模块有自己的緩冲区,保存解码器输出的原始码流,并按照 原始码流的时间戳进行播放。
权利要求
1. 一种手机流媒体自适应实时传输方法,其特征在于该方法包括如下步骤;a.服务器与客户端自动带宽检测模块分别统计各自一段时间内发出或接收到的测试信号,客户端自动带宽检测模块通过客户端实时传输模块将测试信号传给服务器自动带宽检测模块;b.服务器自动带宽检测模块根据服务器和客户端的数据统计出当前带宽情况并传给服务器自适应算法模块;c.服务器自适应控制算法模块根据服务器自动带宽检测模块的结果和客户端缓冲区内可播放数据的层码流的状况,进行如下计算;分析客户端每层正常播放所需预读的帧数;判断客户端当前缓冲区中待播放数据实际情况,假如带宽和预播放数据足够,则传送新数据层,假如带宽和预播放数据低于要求则传送需要的层;判断同一时间需要传送层数的优先顺序;将计算结果传送到分层编码模块。d.分层编码模块根据自适应控制算法模块的结果对原始视频流用H2.64/AVC进行分层编码。e.服务器实时传输模块根据自适应控制算法模块结果将分层编码中相应的层组装成报文发送给客户端。
2. 如权利要求1所述的手机流媒体自适应实时传输方法,其特征 在于所述分层编码是采用H2. 64/AVC中SVC的FGS将视频流压缩成N+1 个子流,子流中包括一个基本层和N个附加层;所述基本层是使用传统的混合编码技术,经过整数变化和量化及 熵编码得到。
3. 如权利要求1所述的手机流媒体自适应实时传输方法,其特征 在于服务器与客户端的数据是通过各自实时传输模块进行传送和接 收;所述服务器的实时传输模块传送的内容包括将接收到的客户端带宽检测结果传给服务器自动带宽检测模块,根据自适应控制算法模块结果封装和传输分层编码到客户端实时传输^t块;接收包括客户端带宽检测结果、播放控制命令; 客户端实时传输模块发送的内容包括播放控制命令、自动带宽检测结果、连接或中断服务器的命令;接收的内容包括将服务器传送的层码流保存到緩沖区。
4.如权利要求1所述的手机流媒体自适应实时传输方法,其特征在于所述客户端的自动带宽检测模块,首先统计最近一段时间实时传输模块所接收到的各层分层编码报文数量,然后采用指数加权的方法来预测当前可用带宽。
全文摘要
本发明涉及一种手机网络信号传输方法,利用自动带宽模块检测当前可用的带宽,并将结果传给自适应控制算法模块,由其计算出应传送的原始数据分层编码后的层码流,所述分层编码是采用H2.64/AVC,由实时传输模块将要传送的层码流组装成报文发送到客户端。本方法中的自适应控制算法能预测客户端所需某一层的数据量,并且合理安排连续发送数据的时机,保证在播放前有足够的缓冲,避免当带宽不足带来的影响。此方法解决了当前网络状态不稳定或是持续低下的时候,通过当前带宽情况,预先算出需要传送的数据,保证客户的观看需求,将网络带宽影响降到最低,最大限度利用带宽,为用户提供最佳的流媒体质量。
文档编号H04Q7/22GK101262443SQ20081009754
公开日2008年9月10日 申请日期2008年5月12日 优先权日2008年5月12日
发明者施新刚, 陶忠伟 申请人:陶忠伟;施新刚
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1