CN101212399B - 一种内存管理方法 - Google Patents

一种内存管理方法 Download PDF

Info

Publication number
CN101212399B
CN101212399B CN2006101577986A CN200610157798A CN101212399B CN 101212399 B CN101212399 B CN 101212399B CN 2006101577986 A CN2006101577986 A CN 2006101577986A CN 200610157798 A CN200610157798 A CN 200610157798A CN 101212399 B CN101212399 B CN 101212399B
Authority
CN
China
Prior art keywords
msub
mrow
mover
overbar
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2006101577986A
Other languages
English (en)
Other versions
CN101212399A (zh
Inventor
纪萍
安钻杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen TCL Industrial Research Institute Co Ltd
Original Assignee
Shenzhen TCL Industrial Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen TCL Industrial Research Institute Co Ltd filed Critical Shenzhen TCL Industrial Research Institute Co Ltd
Priority to CN2006101577986A priority Critical patent/CN101212399B/zh
Publication of CN101212399A publication Critical patent/CN101212399A/zh
Application granted granted Critical
Publication of CN101212399B publication Critical patent/CN101212399B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种内存管理方法,所述方法包括:在数据接收过程中,当连续的数据包所占用的缓存容量达到Ms时,向上层应用递交对该块缓存的处理权;当连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当缓存的使用量小于等于MI时,向服务器发送流媒体协议播放控制指令恢复数据包的传送;MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;MI为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>MI。保证内存不会溢出的同时节约了内存使用量。

Description

一种内存管理方法
技术领域
本发明属于计算机应用领域,尤其涉及一种内存管理方法。 
背景技术
在流媒体系统中,IP(Internet Protocol)网络是以包传输为基础进行断续的异步传输。数据在IP网络传输中被分解为许多适量大小的数据包,由于网络是动态的,各个数据包的路由选择可能不同,因此到达接收端的时间延迟也不相同,此时数据包的顺序会由于这种延迟的变化(即网络抖动)出现错乱。在视频应用程序中,抖动表现为图像闪动,而在语音传输中,它表现的效果与丢包产生的效果相似,某些语句听不清楚或错误。目前主要是利用缓冲机制来缓解网络抖动引起数据包的乱序问题,使用缓存可以尽量保证数据包的顺序正确。 
理论上缓存容量越大越能容纳大的抖动,但是缓存的增大会线性地增大图像或语音的延时,所以应该在避免数据包抖动的情况下根据可接受延时设置抖动缓存的容量。现有的一技术方案如图1所示,假设设置一块容量为TM(单位:KB)的内存作为抖动缓存,Ms表示向上层应用提交的连续数据包所占该缓存的容量,即当该缓存中连续数据包所占缓存容量达到Ms时,将该块缓存的使用权上交给上层应用,当上层应用处理完该块缓存后,释放该块缓存的使用权,使该缓存能被重新利用,Ms值的设置可以根据网络理想情况下数据流的传输速率等因素估计得到。MP表示向上层应用提交的连续和非连续的数据包所占缓存的容量,即当连续和非连续的数据包所占缓存容量达到MP时,此时即使连续包所占缓存容量还未达到Ms,仍将容量为MP的缓存的使用权上交给上层应用,同样,当上层应用处理完该块缓存后,释放该块缓存的使用权。MP值的设置可以根据网络理想情况下数据流的传输速率和可接受延时等因素估计得到。以传输码率为3.75Mb/s的视频为例,假设可接受延迟为4ms,则接收端设置的缓冲区容量至少为3.75Mb/s*4ms=15kb,此时,可设置TM、MP和MS分别为30kb,22.5kb和15kb,假设可接受延迟为6ms,则此时,可设置TM,MP和MS分别为36kb,34kb和22.5kb。 
在上述方案中向上层应用递交容量为MP的缓存使用权后,但该块缓存的使用权还没有被上层应用释放时,网络上仍然会不断传来数据包缓存到TM中,如果TM中剩下的缓存全部被占用,则此时会出现内存上溢的问题。内存上溢将导致数据包丢失,造成在媒体播放时画面失真、断续以及语音不连贯等。 
发明内容
本发明实施例的目的在于提供一种内存管理方法,旨在解决现有技术中存在的由于上层应用未释放缓存,而网络上继续传输数据包造成内存上溢的问题。 
本发明实施例是这样实现的,一种内存管理方法,所述方法包括: 
在数据接收过程中,当连续的数据包所占用的缓存容量达到MS时,向上层应用递交对该块缓存的处理权; 
当存储的连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当存储的连续和非连续的网络数据包所占用的缓存小于等于M1时,向服务器发送流媒体协议播放控制指令恢复数据包的传送; 
其中,MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;M1为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>M1。 
所述流媒体协议暂停控制指令为实时流协议的PAUSE指令;所述流媒体协议播放控制指令为实时流协议的PLAY指令。 
所述Ms的值采用线性动态控制。 
所述MS通过下式计算得出: 
当Dt′∈[Dt-P,Dt+P],MS=MS0; 
当Dt′<Dt-P, M S = min ( ( 1 + D ‾ t - P - D ‾ t ′ D ‾ t - P ) · M S 0 , M P ) ;
当Dt′>Dt+P, M S = max ( ( 1 - D ‾ t ′ - ( D ‾ t + P ) D ‾ t + P ) · M S 0 , M I ) ;
其中,Dt为前一个时间段t内数据包到达接收端的时间间隔的平均值;Dt′为当前时间段t内数据包到达接收端的时间间隔的平均值;P表示控制强度,且P<Dt;MS0为网络理想情况下连续数据包所占用的最大缓存容量,且MP>MS0>MI。 
本发明实施例提供的内存管理方法,在数据接收过程中通过流媒体协议控制指令保证内存不会溢出的同时节约了内存使用量。同时,通过线性控制向上层应用提交的连续数据包占用缓存的容量,缓解了缓存的输出速率大幅度的阶越式变化,减小了上层应用程序的内存管理复杂度。 
附图说明
图1是现有技术中内存管理方法的一个示例图; 
图2是本发明实施例提供的内存管理方法的一个示例图。 
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 
本发明实施例通过在客户端接收数据的过程中发送流媒体协议控制指令有效的防止了内存上溢。常用的流媒体协议有实时流协议(RealTime StreamingProtocol,RTSP)以及超文本传输协议(Hypertext Transfer Protocol,HTTP)等。 
图2示出了本发明的一个示例,假设作为抖动缓存的一块内存的容量为TM,MI表示向上层应用提交的连续和非连续的数据包所占缓存的最小容量, MI的值可以根据在网络理想情况下使内存不出现下溢,保持播放的连续性等因素进行估计设置。与现有技术方案相同,MP表示向上层应用提交的连续和非连续的数据包所占缓存的容量,Ms表示向上层应用提交的连续数据包所占缓存的容量,且MP>MS>MI。 
在数据接收过程中,当连续的数据包所占用的缓存容量达到Ms时,向上层应用递交对该块缓存的处理权,当连续的和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,例如:RTSP的PAUSE指令。同时向上层应用递交对该块缓存的处理权,当上层应用处理完该块缓存中的数据,并释放该块缓存后,此时如果缓存的使用量小于等于MI时,再通过向服务器发送流媒体协议播放控制指令恢复数据包的传送,例如:RTSP的PLAY指令。从而通过上述流媒体协议控制指令有效的防止了内存上溢或下溢,同时,因为内存不会上溢,且发送完PAUSE指令后,还可能会收到少量几个数据包,所以用做抖动缓存的实际内存容量可设置为略大于MP,而不需要大量的冗余量(TM-MP)用于防止内存溢出,从而大大节约了内存。 
在本发明的一优选实施例中,为了缓解由于网络加速或延迟造成缓存的输出速率大幅度的阶越式变化(即连续数据包所占用的缓存容量达到Ms时在网络加速状态下所耗费的时间与在网络延迟状态下所耗费的时间相差较大)对MS的设定采用线性动态控制,而对MP和MI的设定保持不变,具体过程详述如下: 
假设在数据接收过程中,第n个数据包与第n+1个数据包到达时刻的时间间隔为Dn,那么,Dn=Tn+1-Tn; 
其中,Tn表示第n个包的到达时刻,Tn+1表示第n+1个包的到达时刻。 
假设在时间段t范围内(t的大小可以根据需要进行取值),有M个数据包到达接收端,那么,数据包到达接收端的时间间隔的平均值Dt为:  D ‾ t = 1 M Σ n = 1 M D n .
如果在下一个同样长时间段t’范围内,数据包到达接收端的时间间隔的平均值Dt′∈[Dt-P,Dt+P],则认为网络处于平稳状态,此时,MS=MS0; 
其中,P为一表示控制强度的常量,P始终小于Dt,可以根据需要进行调整;MS0为网络理想情况下连续数据包所占用的最大缓存容量,可以根据网络理想情况下数据流的传输速率等因素估计设置,且MP>MS0>MI。 
如果Dt′<Dt-P,则认为网络处于加速状态,此时,  M S = min ( ( 1 + D ‾ t - P - D ‾ t ′ D ‾ t - P ) · M S 0 , M P ) ;
如果Dt′>Dt+P,则认为网络处于延迟状态,此时,  M S = max ( ( 1 - D ‾ t ′ - ( D ‾ t + P ) D ‾ t + P ) · M S 0 , M I ) .
通过上述对MS的线性控制缓解了由于网络加速或延迟造成缓存的输出速率大幅度的阶越式变化,有效的降低了上层应用程序的内存管理复杂度。 
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。 

Claims (4)

1.一种内存管理方法,其特征在于,所述方法包括:
在数据接收过程中,当连续的数据包所占用的缓存容量达到MS时,向上层应用递交对该块缓存的处理权;
当存储的连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当存储的连续和非连续的网络数据包所占用的缓存小于等于M1时,向服务器发送流媒体协议播放控制指令恢复数据包的传送;
其中,MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;M1为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>M1
2.如权利要求1所述的内存管理方法,其特征在于,所述流媒体协议暂停控制指令为实时流协议的PAUSE指令;所述流媒体协议播放控制指令为实时流协议的PLAY指令。
3.如权利要求1或2所述的内存管理方法,其特征在于,所述Ms的值采用线性动态控制。
4.如权利要求3所述的内存管理方法,其特征在于,所述MS通过下式计算得出:
D t ′ ‾ ∈ [ D t ‾ - P , D t ‾ + P ] , MS=MSO
D t &prime; &OverBar; < D t &OverBar; - P , M S =min ( ( 1 + D t &OverBar; - P - D t &prime; &OverBar; D t &OverBar; - P ) ) &CenterDot; M SO , M P
D t &prime; &OverBar; > D t &OverBar; + P , M S =min ( ( 1 + D t &prime; &OverBar; ( D t &OverBar; - P ) D t &OverBar; + P ) ) &CenterDot; M SO , M 1
其中,
Figure FSB00000547200500025
为前一个时间段t内数据包到达接收端的时间间隔的平均值;为当前时间段t内数据包到达接收端的时间间隔的平均值;P表示控制强度,且
Figure FSB00000547200500027
MSO为网络理想情况下连续数据包所占用的最大缓存容量,且MP>MSO>M1
CN2006101577986A 2006-12-27 2006-12-27 一种内存管理方法 Expired - Fee Related CN101212399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006101577986A CN101212399B (zh) 2006-12-27 2006-12-27 一种内存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006101577986A CN101212399B (zh) 2006-12-27 2006-12-27 一种内存管理方法

Publications (2)

Publication Number Publication Date
CN101212399A CN101212399A (zh) 2008-07-02
CN101212399B true CN101212399B (zh) 2011-11-09

Family

ID=39612087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006101577986A Expired - Fee Related CN101212399B (zh) 2006-12-27 2006-12-27 一种内存管理方法

Country Status (1)

Country Link
CN (1) CN101212399B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101902295B (zh) * 2009-05-26 2013-08-21 国际商业机器公司 控制应用服务器的负载接收速率的方法及装置
CN105100172B (zh) * 2014-05-22 2018-03-27 华为技术有限公司 一种http协议的缓存状态更新方法和设备、处理机

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1674490A (zh) * 2004-02-27 2005-09-28 三菱电机株式会社 用于动态自动重发请求窗口管理的方法和设备
CN1756226A (zh) * 2004-09-29 2006-04-05 中兴通讯股份有限公司 一种专用信道的流控方法
US7061868B1 (en) * 2000-10-25 2006-06-13 Switchcore, Ab Method for flow control in a switch and a switch controlled thereby

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061868B1 (en) * 2000-10-25 2006-06-13 Switchcore, Ab Method for flow control in a switch and a switch controlled thereby
CN1674490A (zh) * 2004-02-27 2005-09-28 三菱电机株式会社 用于动态自动重发请求窗口管理的方法和设备
CN1756226A (zh) * 2004-09-29 2006-04-05 中兴通讯股份有限公司 一种专用信道的流控方法

Also Published As

Publication number Publication date
CN101212399A (zh) 2008-07-02

Similar Documents

Publication Publication Date Title
US7080173B2 (en) Reducing information reception delays
KR102039778B1 (ko) 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치
US9306994B2 (en) Stabilization of adaptive streaming video clients through rate limiting
CN101662676B (zh) 流媒体缓冲的处理方法
EP3322145A1 (en) Method, server side and system for computing bandwidth of network transmission of streaming media
US9930097B2 (en) Transport accelerator systems and methods
US9420022B2 (en) Media requests to counter latency and minimize network bursts
CN106416179A (zh) 实现扩展传输控制功能的传输加速器
CN102547449A (zh) 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器
CN110113662B (zh) 一种适应多种网络状况的视频监控客户端系统
CN112995048B (zh) 数据中心网络的阻塞控制与调度融合方法及终端设备
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
CN101212399B (zh) 一种内存管理方法
CN101090369B (zh) 一种在流媒体系统中控制数据包发送速率的方法
CN1855824A (zh) 用于流式处理数据的方法和设备
CN105245946B (zh) 可变码率媒体流的流量控制方法、装置以及系统
US7450599B2 (en) Apparatus and method for communicating with a network
CN112737971A (zh) 数据处理方法、装置、存储介质及网络设备
JP2003069613A (ja) データ品質保証システム
CN107370687A (zh) 一种网络tcp流量控制方法
WO2012106902A1 (zh) 一种队列管理方法、装置及系统
US7447789B2 (en) Method and apparatus for buffering data at a transport layer on a client
WO2024080973A1 (en) Content recovery in real-time online meetings
JP2011234233A (ja) 映像配信装置及び映像配信方法
WO2024080974A1 (en) Media adaptation for lost content recovery in real-time online meetings

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111109

CF01 Termination of patent right due to non-payment of annual fee