CN110351595B - 一种缓冲处理方法、装置、设备和计算机存储介质 - Google Patents

一种缓冲处理方法、装置、设备和计算机存储介质 Download PDF

Info

Publication number
CN110351595B
CN110351595B CN201910646664.8A CN201910646664A CN110351595B CN 110351595 B CN110351595 B CN 110351595B CN 201910646664 A CN201910646664 A CN 201910646664A CN 110351595 B CN110351595 B CN 110351595B
Authority
CN
China
Prior art keywords
receiving end
data frame
value
threshold value
buffer
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.)
Active
Application number
CN201910646664.8A
Other languages
English (en)
Other versions
CN110351595A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910646664.8A priority Critical patent/CN110351595B/zh
Publication of CN110351595A publication Critical patent/CN110351595A/zh
Priority to US16/911,777 priority patent/US11310558B2/en
Priority to JP2020113079A priority patent/JP7066940B2/ja
Priority to EP20183901.6A priority patent/EP3767915B1/en
Priority to KR1020200084737A priority patent/KR20210010822A/ko
Priority to KR1020230008015A priority patent/KR102607561B1/ko
Application granted granted Critical
Publication of CN110351595B publication Critical patent/CN110351595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

本发明提供了一种缓冲处理方法、装置、设备和计算机存储介质,其中方法包括:若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端接收的数据帧率降幅是否超过预设的第二阈值,所述第二阈值小于所述第一阈值;如果是,则对所述接收端的缓冲大小进行调整;否则,维持所述接收端的缓冲大小不变。通过本发明提供的方式能够优化接收端的缓冲,减小延迟。

Description

一种缓冲处理方法、装置、设备和计算机存储介质
【技术领域】
本发明涉及多媒体播放技术领域,特别涉及一种缓冲处理方法、装置、设备和计算机存储介质。
【背景技术】
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就被认为是现有技术。
接收端在进行音频或视频等多媒体播放时,如果网络是理想的,即无丢包、无抖动、低延迟,那么接收到的一帧完整数据就直接播放,效果会很好。但实际的网络往往很复杂,如果还是这样直接播放必然会造成卡顿。因此在接收端会利用jitterbuffer(抖动缓冲器)对接收到的数据帧进行缓冲,然后再从jitterbuffer获取数据帧进行解码播放。
缓冲是以延迟为代价的,延迟越大,对抖动的抑制效果越好,但延迟大会给用户带来较差的播放体验。因此通常采用动态调整缓冲大小的方式来取一个平衡。目前动态调整缓冲大小的方式主要是依据实时的网络带宽进行调整,缓冲大小与实时的网络带宽呈负相关的关系。例如当网络带宽增加时,缓冲减小;当网络带宽降低时,缓冲增大。但有些情况下,虽然网络带宽降低,但实际的网络带宽依然高于视频码率,即便不增加缓冲的情况下仍可以流畅播放。可见,目前动态调整缓冲大小的方式会造成不合理的延迟。
【发明内容】
有鉴于此,本发明提供了一种缓冲处理方法、装置、设备和计算机存储介质,以便于优化接收端的缓冲,减小延迟。
具体技术方案如下:
第一方面,本发明提供了一种缓冲处理方法,该方法包括:
若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端接收的数据帧率降幅是否超过预设的第二阈值,所述第二阈值小于所述第一阈值;
如果是,则对所述接收端的缓冲大小进行调整;
否则,维持所述接收端的缓冲大小不变。
根据本发明一优选实施方式,所述接收端的可用带宽是依据所述接收端接收每一数据帧的时间和数据帧的大小确定的。
根据本发明一优选实施方式,所述第二阈值小于或等于所述第一阈值的二分之一。
根据本发明一优选实施方式,所述第二阈值为10%,所述第一阈值为20%。
根据本发明一优选实施方式,对所述接收端的缓冲大小进行调整包括:
依据接收端的可用带宽对所述接收端的缓冲大小进行调整,其中缓冲大小与接收端的可用带宽负相关。
根据本发明一优选实施方式,所述依据接收端的可用带宽对所述接收端的缓冲大小进行调整包括:
确定所述接收端在预设时间窗口内接收到的数据帧大小的最大值和平均值,以及确定噪声延迟;
利用所述接收端的可用带宽、所述最大值和平均值以及噪声延迟,估算所需要缓冲大小的值;
将所述接收端的缓冲大小调整至估算得到的值。
根据本发明一优选实施方式,所述确定噪声延迟包括:
对所述接收端已经接收到的噪声进行卡尔曼滤波后,预测得到所述噪声延迟。
第二方面,本发明提供了一种缓冲处理装置,该装置包括:
检测单元,用于若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端接收的数据帧率降幅是否超过预设的第二阈值,所述第二阈值小于所述第一阈值;
缓冲调整单元,用于若所述检测单元检测到接收端的数据帧率降幅超过预设的第二阈值,则对所述接收端的缓冲大小进行调整;否则,维持所述接收端的缓冲大小不变。
根据本发明一优选实施方式,该装置还包括:
带宽确定单元,用于依据所述接收端接收每一数据帧的时间和数据帧的大小确定所述接收端的可用带宽。
根据本发明一优选实施方式,所述第二阈值为10%,所述第一阈值为20%。
根据本发明一优选实施方式,所述缓冲调整单元,具体用于依据接收端的可用带宽对所述接收端的缓冲大小进行调整,其中缓冲大小与接收端的可用带宽负相关。
根据本发明一优选实施方式,所述缓冲调整单元,具体用于:
确定所述接收端在预设时间窗口内接收到的数据帧大小的最大值和平均值,以及确定噪声延迟;
利用所述接收端的可用带宽、所述最大值和平均值以及噪声延迟,估算所需要缓冲大小的值;
将所述接收端的缓冲大小调整至估算得到的值。
第三方面,本发明提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上任一所述的方法。
第四方面,本发明提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上任一所述的方法。
由以上技术方案可以看出,本发明提供的方式在考虑接收端可用带宽的降幅之外,进一步结合接收端的数据帧率的降幅,只有在数据帧率的降幅也较大时才会对缓冲进行调整,从而优化接收端的缓冲,减小延迟。
【附图说明】
图1为本发明是本发明实施例应用的主要系统架构示意图;
图2为本发明实施例提供的主要方法流程图;
图3为本发明实施例提供的装置结构图;
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的框图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
现有技术中对接收端进行的缓冲大小的调整仅考虑了可用带宽的影响,并未考虑接收端对多媒体数据帧实际接收状况,从而造成依据可用带宽对缓冲大小的调整并不准确,在某些情况下造成较大延迟。因此,本发明在决定是否对缓冲大小进行调整时,不仅考虑接收端可用带宽,进一步考虑了接收端对多媒体数据帧实际接收状况。下面结合实施例进行详细描述。
图1为本发明是本发明实施例应用的主要系统架构示意图,如图1中所示,该系统包括发送端和接收端。其中发送端是发送媒体流的设备,负责对多媒体数据帧进行编码和发送。接收端的是接收媒体流的设备,通常负责对多媒体数据帧进行缓冲、解码,还可以进行播放。其中,本发明涉及的方法和装置主要在接收端侧实现。
发送端和接收端可以网络进行媒体流的传输,可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
在本发明实施例中在接收端采用的缓冲可以是jitterbuffer,也可以采用其他形式的缓冲。在后续实施例中以jitterbuffer为例进行描述。另外,本发明实施例中涉及的多媒体数据帧可以是视频帧、音频帧、图像帧等等。在后续实施例中以视频帧为例进行描述。
图2为本发明实施例提供的主要方法流程图,该方法可以由设置于接收端的缓冲处理装置执行,该装置可以为位于接收端的应用,或者还可以为位于接收端的应用中的插件或软件开发工具包(Software DevelopmentKit,SDK)等功能单元。如图2中所示,该方法主要包括以下步骤:
在201中,检测接收端的可用带宽。
本步骤中对接收端可用带宽的检测可以定时执行,也可以实时执行(例如每接收到一数据帧均执行带宽检测),或者基于特定事件触发执行。本发明对此不加以特别限制。
接收端的可用带宽是依据接收端接收每一数据帧的时间和数据帧的大小估算得到的。例如数据帧的大小与接收该数据帧的时间之间的比值。在本发明实施例中将接收端的可用带宽表示为bwe,单位为bps(bits per second,比特率)。
在202中,判断检测到接收端的可用带宽降幅是否超过预设的第一阈值,如果是,则执行203,否则,继续转自201进行可用带宽的检测。
在203中,检测接收端接收的视频帧率降幅是否超过预设的第二阈值,如果是,执行204;否则,执行205。
通常情况下,只有在可用带宽出现大幅度下降的情况下,才需要进行缓冲大小的调整,以避免在接收端造成播放卡顿。在本发明实施例中以接收端的可用带宽降幅是否超过预设第一阈值进行检测。这里的降幅指的是下降的幅度,通常以百分比来表示。
当接收端接收的可用带宽降幅超过预设的第一阈值时,由于接收端的可用带宽是利用接收的视频帧估算出来的,并不一定真实反应接收端的视频接收状况。因此,进一步检测接收端的视频帧率的降幅。这里的降幅同样以百分比来表示。
上述的第二阈值小于第一阈值,取值可以采用试验值、经验值等。作为一种优选的实施方式,第二阈值可以小于或等于第一阈值的二分之一。例如,第一阈值可以取20%,第二阈值可以取10%。
在204中,对接收端的缓冲大小进行调整,本次调整结束后,继续转至步骤201进行可用带宽的检测。
对接收端的缓冲大小进行调整可以采用多种方式,其中一种方式可依据接收端的可用带宽对接收端的缓冲大小进行调整,其中缓冲大小与接收端的可用带宽负相关。
具体地,在估算出接收端的可用带宽后,确定接收端在预设时间窗口内接收到的数据帧大小的最大值(表示为maxFrameSize)和平均值(表示为avgFrameSize),以及确定噪声延迟(表示为varNoise)。
其中,在确定varNoise时,可以对接收端已经接收到的噪声进行卡尔曼滤波后,预测得到噪声延迟。
然后,利用接收端的可用带宽bwe、上述最大值maxFrameSize和平均值avgFrameSize以及噪声延迟varNoise,估算所需要缓冲大小的值jitterDelay。
例如,可以采用如下公式:
上述公式中的jitterDelay由两部分组成,传输大数据帧引起的延迟和网络噪声引起的延迟。
其中,传输大数据帧引起的延迟体现为:网络噪声引起的延迟体现为:varNoise。
varNoise可以采用现有的计算方式,在此列举其中一种:
varNoise=alpha*varNoise+(1-alpha)*(d_dT-_avgNoise)*(d_dT-avgNoise)(2)
其中,avgNoise=alpha*avgNoise+(1-alpha)*d_dT; (3)
可以看出,对当前varNoise和avgNoise的值做上述更新,就得到更新后的varNoise和avgNoise的值。
alpha为概率系数,受帧率影响,当帧率变低时,alpha的值会变小,表示当前噪声变大,avgNoise为接收到的历史数据帧的平均噪声,d_dT是帧延时实际值和预测值的差。
需要说明的是,并不限于本发明实施例提供的上述具体的公式,在上述公式所体现原理的基础上进行的变形和扩展均在本发明保护范围之内。
最后将接收端的缓冲大小调整至估算得到的值jitterDelay,本次jitterbuffer的调整结束,继续转至步骤201进行可用带宽的检测。
除了上例中确定jitterDelay的方式之外,还可以采用其他方式,在此不做穷举。
在205中,维持接收端的缓冲大小不变,继续转至步骤201进行可用带宽的检测。
如果接收端的视频帧率没有较大的降幅,那么说明接收端对于视频帧的接收状况仍然良好,能够保证视频帧的流畅播放。不需要根据接收端的可用带宽增大jitterBuffer的大小,这样相比较现有技术的方式降低了播放视频帧的延迟。
另外,基于上述实施例做一个解释:因为可用带宽是依据每一数据帧的时间和数据帧的大小预测出的值,而数据帧率是真实值。实际可用带宽以及数据帧率均受到多种因素影响,预测的可用带宽下降并不一定会导致数据帧率下降,数据帧率下降是结果。如果直接基于数据帧率降幅来进行判断,则会导致缓冲大小的调整产生滞后。而本申请上述实施例先基于可用带宽降幅的判断,再基于数据帧率降幅来进行判断则能够有效地减小缓冲调整的滞后问题。
以上是对本发明实施例提供的方法进行的详述,下面结合实施例对本发明提供的装置进行详细描述。图3为本发明实施例提供的装置结构图,如图3中所示,该装置可以包括:检测单元01和缓冲调整单元02,还可以进一步包括带宽确定单元03。其中各组成单元的主要功能如下:
检测单元01负责检测接收端的可用带宽,若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端的视频帧率降幅是否超过预设的第二阈值,第二阈值小于第一阈值。
缓冲调整单元02负责若检测单元01检测到接收端的视频帧率降幅超过预设的第二阈值,则对接收端的缓冲大小进行调整;否则,维持接收端的缓冲大小不变。
带宽确定单元03负责依据接收端接收每一数据帧的时间和数据帧的大小确定接收端的可用带宽。
其中,第一阈值和第二阈值可以取试验值或经验值。作为一种优选的实施方式,第二阈值可以取第一阈值的二分之一。例如,第二阈值取10%,第一阈值取20%。
其中,缓冲调整单元02可以依据接收端的可用带宽对接收端的缓冲大小进行调整,其中缓冲大小与接收端的可用带宽负相关。
具体地,缓冲调整单元02可以确定接收端在预设时间窗口内接收到的数据帧大小的最大值和平均值,以及确定噪声延迟;然后利用接收端的可用带宽、上述最大值和平均值以及噪声延迟,估算所需要缓冲大小的值;再将接收端的缓冲大小调整至估算得到的值。
其中,缓冲调整单元02可以对接收端已经接收到的噪声进行卡尔曼滤波后,预测得到上述噪声延迟。
其中,上述对缓冲大小的值进行的估算以及对噪声延迟进行的预测,可以采用方法实施例中的公式(1)和公式(2),但并不限于这两个具体的公式,在该公式所体现原理的基础上进行的变形和扩展均在本发明保护范围之内。
图4示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图4显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法流程。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行本发明实施例所提供的方法流程。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种缓冲处理方法,其特征在于,该方法包括:
若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端接收的数据帧率降幅是否超过预设的第二阈值,所述第二阈值小于所述第一阈值;
如果是,则对所述接收端的缓冲大小进行调整,包括:确定所述接收端在预设时间窗口内接收到的数据帧大小的最大值和平均值,以及确定噪声延迟;利用所述接收端的可用带宽、所述最大值和平均值以及噪声延迟,估算所需要缓冲大小的值;将所述接收端的缓冲大小调整至估算得到的值;
否则,维持所述接收端的缓冲大小不变。
2.根据权利要求1所述的方法,其特征在于,所述接收端的可用带宽是依据所述接收端接收每一数据帧的时间和数据帧的大小确定的。
3.根据权利要求1所述的方法,其特征在于,所述第二阈值小于或等于所述第一阈值的二分之一。
4.根据权利要求3所述的方法,其特征在于,所述第二阈值为10%,所述第一阈值为20%。
5.根据权利要求1所述的方法,其特征在于,所述确定噪声延迟包括:
对所述接收端已经接收到的噪声进行卡尔曼滤波后,预测得到所述噪声延迟。
6.一种缓冲处理装置,其特征在于,该装置包括:
检测单元,用于若检测到接收端的可用带宽降幅超过预设的第一阈值,则检测接收端接收的数据帧率降幅是否超过预设的第二阈值,所述第二阈值小于所述第一阈值;
缓冲调整单元,用于若所述检测单元检测到接收端的数据帧率降幅超过预设的第二阈值,则对所述接收端的缓冲大小进行调整;否则,维持所述接收端的缓冲大小不变;
所述缓冲调整单元,具体用于:
确定所述接收端在预设时间窗口内接收到的数据帧大小的最大值和平均值,以及确定噪声延迟;
利用所述接收端的可用带宽、所述最大值和平均值以及噪声延迟,估算所需要缓冲大小的值;
将所述接收端的缓冲大小调整至估算得到的值。
7.根据权利要求6所述的装置,其特征在于,该装置还包括:
带宽确定单元,用于依据所述接收端接收每一数据帧的时间和数据帧的大小确定所述接收端的可用带宽。
8.根据权利要求6所述的装置,其特征在于,所述第二阈值为10%,所述第一阈值为20%。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-5中任一所述的方法。
CN201910646664.8A 2019-07-17 2019-07-17 一种缓冲处理方法、装置、设备和计算机存储介质 Active CN110351595B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910646664.8A CN110351595B (zh) 2019-07-17 2019-07-17 一种缓冲处理方法、装置、设备和计算机存储介质
US16/911,777 US11310558B2 (en) 2019-07-17 2020-06-25 Buffer processing method, apparatus, device and computer storage medium
JP2020113079A JP7066940B2 (ja) 2019-07-17 2020-06-30 バッファ処理方法、装置、デバイス及びコンピュータ記憶媒体
EP20183901.6A EP3767915B1 (en) 2019-07-17 2020-07-03 Buffer processing method, apparatus, device and computer storage medium
KR1020200084737A KR20210010822A (ko) 2019-07-17 2020-07-09 버퍼 처리 방법, 장치, 기기 및 컴퓨터 저장 매체
KR1020230008015A KR102607561B1 (ko) 2019-07-17 2023-01-19 버퍼 처리 방법, 장치, 기기 및 컴퓨터 저장 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910646664.8A CN110351595B (zh) 2019-07-17 2019-07-17 一种缓冲处理方法、装置、设备和计算机存储介质

Publications (2)

Publication Number Publication Date
CN110351595A CN110351595A (zh) 2019-10-18
CN110351595B true CN110351595B (zh) 2023-08-18

Family

ID=68175602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910646664.8A Active CN110351595B (zh) 2019-07-17 2019-07-17 一种缓冲处理方法、装置、设备和计算机存储介质

Country Status (5)

Country Link
US (1) US11310558B2 (zh)
EP (1) EP3767915B1 (zh)
JP (1) JP7066940B2 (zh)
KR (2) KR20210010822A (zh)
CN (1) CN110351595B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3767962A1 (en) * 2019-07-19 2021-01-20 THEO Technologies A media client with adaptive buffer size and the related method
DE112020003766T5 (de) * 2019-08-08 2022-07-07 Intel Corporation Linkleistungsprognose und Medienstreaming-Technologien
CN112752109B (zh) * 2019-10-30 2022-05-17 上海哔哩哔哩科技有限公司 视频播放控制方法和系统
CN113079421B (zh) * 2020-01-03 2023-10-24 阿里巴巴集团控股有限公司 信息处理方法、装置、设备及存储介质
US11470380B1 (en) * 2021-03-26 2022-10-11 Meta Platforms, Inc. Systems and methods for adaptively managing live video streaming
FR3122956A1 (fr) * 2021-05-17 2022-11-18 Orange Téléchargement progressif adaptatif d’un contenu diffusé en temps réel sur un réseau de radiocommunication mobile, programme d’ordinateur et terminal lecteur de flux multimédia associés
CN113473229B (zh) * 2021-06-25 2022-04-12 荣耀终端有限公司 一种动态调节丢帧阈值的方法及相关设备
CN114189712B (zh) * 2021-12-10 2024-01-16 眸芯科技(上海)有限公司 视频监控中支持解码帧率控制的虚拟vdp装置及应用

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115196A (zh) * 2006-07-27 2008-01-30 腾讯科技(深圳)有限公司 调节视频质量的方法、系统及终端
CN101743753A (zh) * 2007-06-19 2010-06-16 万特里克斯公司 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
CN102378065A (zh) * 2011-10-19 2012-03-14 江西省南城县网信电子有限公司 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统
CN103533451A (zh) * 2013-09-30 2014-01-22 广州华多网络科技有限公司 抖动缓存调节方法及其系统
CN104519325A (zh) * 2014-12-29 2015-04-15 重庆邮电大学 一种基于4g网络的无线视频监控系统自适应保障方法
CN104735410A (zh) * 2015-02-11 2015-06-24 东电创新(北京)科技发展股份有限公司 一种低于4k/s的窄带宽视频传输方法及系统
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN105392001A (zh) * 2015-11-16 2016-03-09 四川大学 基于梯度的自适应高性能视频编码码率控制方法
CN106341738A (zh) * 2015-07-08 2017-01-18 杭州海康威视数字技术股份有限公司 流媒体网络传输的带宽计算方法、服务器端和系统
CN106385620A (zh) * 2016-10-25 2017-02-08 浙江红苹果电子有限公司 一种基于流媒体的数据平滑输出方法
CN109996087A (zh) * 2019-03-21 2019-07-09 武汉大学 一种基于有限状态机的面向视频直播的码率自适应方法及装置
US10349059B1 (en) * 2018-07-17 2019-07-09 Wowza Media Systems, LLC Adjusting encoding frame size based on available network bandwidth

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005322995A (ja) 2004-05-06 2005-11-17 Nippon Telegr & Teleph Corp <Ntt> リアルタイム映像転送におけるバッファ制御方法、送信端末、受信端末、映像配信システム、およびプログラム
US20060092918A1 (en) * 2004-11-04 2006-05-04 Alexander Talalai Audio receiver having adaptive buffer delay
US7636022B2 (en) 2005-06-10 2009-12-22 Symmetricom, Inc. Adaptive play-out buffers and clock operation in packet networks
US7962637B2 (en) * 2006-11-03 2011-06-14 Apple Computer, Inc. Dynamic adjustments of video streams
US7796521B2 (en) * 2006-11-09 2010-09-14 Alcatel-Lucent Usa Inc. Method and apparatus for policing bandwidth usage for a home network
JP2008199361A (ja) 2007-02-14 2008-08-28 Oki Electric Ind Co Ltd ストリームデータ受信再生装置
JP5026167B2 (ja) * 2007-07-02 2012-09-12 パナソニック株式会社 ストリーム伝送サーバおよびストリーム伝送システム
CN101340358B (zh) 2007-07-04 2011-04-20 鼎桥通信技术有限公司 一种流量控制方法、系统及流量控制实体
JP5082715B2 (ja) 2007-09-20 2012-11-28 ソニー株式会社 受信装置、受信方法およびコンピュータプログラム
US8446452B2 (en) * 2008-11-07 2013-05-21 Magor Communications Corporation Video rate adaptation for congestion control
KR101017352B1 (ko) 2008-12-30 2011-02-28 학교법인 동의학원 무선 인터넷 환경에서의 스트리밍 콘텐츠 전송 방법
US8392600B2 (en) * 2009-09-14 2013-03-05 Adobe Systems Incorporated Dynamic stream switch control
EP2302845B1 (en) * 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
WO2011132783A1 (ja) * 2010-04-23 2011-10-27 日本電気株式会社 利用可能帯域計測システム、送信装置、利用可能帯域計測方法および記録媒体
US8284082B2 (en) * 2010-10-27 2012-10-09 Sling Media Pvt. Ltd. Dynamic encode setting adjustment
US9021119B2 (en) * 2011-01-06 2015-04-28 Sonic Ip, Inc. Systems and methods for performing adaptive bitrate streaming based upon the delay of each stream and the channel rate
KR101818577B1 (ko) 2011-04-05 2018-01-15 삼성전자 주식회사 통신 서비스 지원 중 전원 절약을 위한 휴대 단말기 운용 방법 및 이를 지원하는 휴대 단말기
US9106787B1 (en) * 2011-05-09 2015-08-11 Google Inc. Apparatus and method for media transmission bandwidth control using bandwidth estimation
WO2014041547A1 (en) * 2012-09-13 2014-03-20 Yevvo Entertainment Inc. Live video broadcasting from a mobile device
CN103051955B (zh) * 2012-12-21 2016-08-03 华为技术有限公司 流媒体播放方法及装置
KR102037413B1 (ko) * 2013-02-22 2019-11-26 삼성전자주식회사 스트리밍 서비스를 제공하기 위한 동적 버퍼링 방법 및 그 장치
CN103259803B (zh) * 2013-06-04 2016-01-27 腾讯科技(深圳)有限公司 一种音频回放方法、装置和系统
US20150109909A1 (en) * 2013-10-21 2015-04-23 Time Warner Cable Enterprises Llc User-based profiling and network access
US9438853B2 (en) * 2014-07-29 2016-09-06 Qualcomm Incorporated Receiver driven up-switching in video telephony
EP3202106B1 (en) * 2014-10-02 2018-12-12 Jacoti BVBA Method to handle problematic patterns in a low latency multimedia streaming environment
US10379601B2 (en) * 2015-09-10 2019-08-13 Google Llc Playing spherical video on a limited bandwidth connection
CN108781139A (zh) * 2016-02-26 2018-11-09 网络洞察力知识产权公司 分组网络中的数据重传
US10482668B2 (en) 2016-06-02 2019-11-19 Thales Visionix, Inc. Miniature vision-inertial navigation system with extended dynamic range
CN108667748B (zh) * 2017-03-29 2021-02-12 华为技术有限公司 一种控制带宽的方法、装置、设备和存储介质
US11442445B2 (en) * 2017-08-02 2022-09-13 Strong Force Iot Portfolio 2016, Llc Data collection systems and methods with alternate routing of input channels
KR102417977B1 (ko) 2017-10-19 2022-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN109327716B (zh) * 2018-10-31 2020-09-11 北京达佳互联信息技术有限公司 延迟控制方法、延迟控制装置和计算机可读存储介质
US10924347B1 (en) * 2019-10-16 2021-02-16 Microsoft Technology Licensing, Llc Networking device configuration value persistence

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115196A (zh) * 2006-07-27 2008-01-30 腾讯科技(深圳)有限公司 调节视频质量的方法、系统及终端
CN101743753A (zh) * 2007-06-19 2010-06-16 万特里克斯公司 利用视频编码中的帧复杂性、缓冲水平和内部帧位置的基于缓冲的速率控制
CN102378065A (zh) * 2011-10-19 2012-03-14 江西省南城县网信电子有限公司 基于mpeg-4的流媒体服务器端配置缓冲区的方法及系统
CN103533451A (zh) * 2013-09-30 2014-01-22 广州华多网络科技有限公司 抖动缓存调节方法及其系统
CN105208390A (zh) * 2014-06-30 2015-12-30 杭州海康威视数字技术股份有限公司 视频编码的码率控制方法及其系统
CN104519325A (zh) * 2014-12-29 2015-04-15 重庆邮电大学 一种基于4g网络的无线视频监控系统自适应保障方法
CN104735410A (zh) * 2015-02-11 2015-06-24 东电创新(北京)科技发展股份有限公司 一种低于4k/s的窄带宽视频传输方法及系统
CN106341738A (zh) * 2015-07-08 2017-01-18 杭州海康威视数字技术股份有限公司 流媒体网络传输的带宽计算方法、服务器端和系统
CN105392001A (zh) * 2015-11-16 2016-03-09 四川大学 基于梯度的自适应高性能视频编码码率控制方法
CN106385620A (zh) * 2016-10-25 2017-02-08 浙江红苹果电子有限公司 一种基于流媒体的数据平滑输出方法
US10349059B1 (en) * 2018-07-17 2019-07-09 Wowza Media Systems, LLC Adjusting encoding frame size based on available network bandwidth
CN109996087A (zh) * 2019-03-21 2019-07-09 武汉大学 一种基于有限状态机的面向视频直播的码率自适应方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于码率自适应的无人机网络实时视频传输研究;周桐庆;《中国优秀硕士学位论文全文数据库》;全文 *

Also Published As

Publication number Publication date
KR20230017335A (ko) 2023-02-03
CN110351595A (zh) 2019-10-18
JP2021019351A (ja) 2021-02-15
EP3767915B1 (en) 2023-04-05
EP3767915A1 (en) 2021-01-20
KR102607561B1 (ko) 2023-11-29
US11310558B2 (en) 2022-04-19
US20210021895A1 (en) 2021-01-21
JP7066940B2 (ja) 2022-05-16
KR20210010822A (ko) 2021-01-28

Similar Documents

Publication Publication Date Title
CN110351595B (zh) 一种缓冲处理方法、装置、设备和计算机存储介质
CN109194647B (zh) 数据传输方法、装置、电子设备及存储介质
CN113453045B (zh) 网络带宽预测方法、系统、设备及存储介质
US8510763B2 (en) Changing streaming media quality level based on current device resource usage
US20110299589A1 (en) Rate control in video communication via virtual transmission buffer
US10038898B2 (en) Estimating quality of a video signal
EP4395337A1 (en) Video playing grade determination method, video playing method, and related apparatuses
US20180109462A1 (en) Method for optimizing streaming media transmission and cache apparatus using the same
CN115883899B (zh) 图像同屏播放方法、系统、电子设备及可读存储介质
CN113763974B (zh) 一种丢包补偿方法、装置、电子设备及存储介质
US20240340507A1 (en) Methods, systems, and media for streaming video content using adaptive buffers
WO2019100475A1 (zh) 一种数据传输方法、装置、设备及存储介质
CN109637540B (zh) 智能语音设备的蓝牙评测方法、装置、设备及介质
CN115801639B (zh) 一种带宽探测方法、装置、电子设备及存储介质
CN113453004B (zh) 视频编码速率调节方法、系统、设备及存储介质
US9608889B1 (en) Audio click removal using packet loss concealment
CN111447637B (zh) 频谱数据采集方法、装置、设备及存储介质
CN116259322A (zh) 音频数据压缩方法及相关产品
CN114143188B (zh) 一种视频处理的方法、装置、电子设备及存储介质
US10169115B1 (en) Predicting exhausted storage for a blocking API
CN118317131A (zh) 数据传输的方法及装置、电子设备和存储介质
CN117041631A (zh) 一种视频预加载方法、装置、电子设备及存储介质
KR101737787B1 (ko) 교차계층 기반 스트리밍 장치 및 방법
CN116248973A (zh) 带宽估计方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant