CN104702972B - 一种自适应图像数据发送方法和装置 - Google Patents

一种自适应图像数据发送方法和装置 Download PDF

Info

Publication number
CN104702972B
CN104702972B CN201410005687.8A CN201410005687A CN104702972B CN 104702972 B CN104702972 B CN 104702972B CN 201410005687 A CN201410005687 A CN 201410005687A CN 104702972 B CN104702972 B CN 104702972B
Authority
CN
China
Prior art keywords
remaining space
intermediateness
threshold
frames
sum
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
CN201410005687.8A
Other languages
English (en)
Other versions
CN104702972A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201410005687.8A priority Critical patent/CN104702972B/zh
Publication of CN104702972A publication Critical patent/CN104702972A/zh
Application granted granted Critical
Publication of CN104702972B publication Critical patent/CN104702972B/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/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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/2405Monitoring of the internal components or processes of the server, e.g. server load
    • 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/2407Monitoring of transmitted content, e.g. distribution time, number of downloads

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种自适应图像数据发送方法以及一种自适应图像数据发送的网络摄像机:当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小。本发明所述方案实现简单,并能够节省资源。

Description

一种自适应图像数据发送方法和装置
技术领域
本发明涉及网络技术,特别涉及一种自适应图像数据发送方法和装置。
背景技术
现有技术中,在进行图像数据发送时,网络侧设备通常会建立一个缓冲区,并在向缓冲区中写入图像数据的同时,从缓冲区中读出图像数据,发送给客户端。
图1为现有的缓冲区示意图。如图1所示,W表示写指针,R表示读指针,R指针和W指针需要处于一个相对平衡的状态,即需要通过某种方式,将缓冲区的剩余空间尽可能地维持在一个较优的状态(剩余空间不能过小),否则,可能会导致客户端不能流畅的播放图像等。
但是,现有方式的实现均比较复杂,比如可能需要开辟额外的缓冲区等,从而造成了资源上的浪费。
发明内容
有鉴于此,本发明提供了一种自适应图像数据发送方法和装置,实现简单,并能够节省资源。
为了达到上述目的,本发明的技术方案是这样实现的:
一种自适应图像数据发送方法,包括:
当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;
当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;
当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;
其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第一中间状态时,所述按照丢弃部分P帧的方式进行图像数据的发送包括:
a1、确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并执行步骤b1,否则,直接执行步骤b1;
b1、设置一个参数sum,初始取值为0,并确定出当前带宽;
c1、从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;
d1、当所述sum的取值大于(当前带宽+K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第一中间状态,则将所述sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,重复执行步骤c1,所述K大于0。
一种自适应图像数据发送方法,包括:
当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;
当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;
当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;
其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第二中间状态时,所述按照丢弃部分P帧的方式进行图像数据的发送包括:
a2、确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并执行步骤b2,否则,直接执行步骤b2;
b2、设置一个参数sum,初始取值为0,并确定出当前带宽;
c2、从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;
d2、当所述sum的取值大于(当前带宽-K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第二中间状态,则将所述sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,重复执行步骤c2,所述K大于0。
一种自适应图像数据发送的网络摄像机,包括:
图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
图像传输模块,用于利用网络对图像数据进行传输,包括:
缓冲区,用于暂存待传输的图像数据;
检测子模块,用于实时检测缓冲区的剩余空间情况;
处理子模块,用于接收检测子模块的检测结果;当所述剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第一中间状态时,所述处理子模块确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据所述sum和所述当前带宽执行预定处理,包括:从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;当所述sum的取值大于(当前带宽+K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第一中间状态,则将所述sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,之后重复执行所述预定处理,所述K大于0。
一种自适应图像数据发送的网络摄像机,包括:
图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
图像传输模块,用于利用网络对图像数据进行传输,包括:
缓冲区,用于暂存待传输的图像数据;
检测子模块,用于实时检测缓冲区的剩余空间情况;
处理子模块,用于接收检测子模块的检测结果;当所述剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第二中间状态时,所述处理子模块确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据所述sum和所述当前带宽执行预定处理,包括:从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;当所述sum的取值大于(当前带宽-K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第二中间状态,则将所述sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,之后重复执行所述预定处理,所述K大于0。
可见,采用本发明所述方案,可根据缓冲区的剩余空间所处的状态,自适应地调整图像数据的发送策略,从而将剩余空间尽可能地维持在一个较优的状态;相比于现有技术,本发明所述方案中无需开辟额外的缓冲区等,实现简单,并能够节省资源,而且,可确保在网络状态较差或者变化频繁的情况下,客户端仍能流畅地播放图像。
附图说明
图1为现有的缓冲区示意图。
图2为本发明自适应图像数据发送方法实施例的流程图。
图3为本发明所述的缓冲区示意图。
具体实施方式
为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步的详细说明。
图2为本发明自适应图像数据发送方法实施例的流程图。如图2所示,包括以下步骤21~23。
步骤21:当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送。
步骤22:当确定缓冲区的剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送。
步骤23:当确定缓冲区的剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送。
其中,按照理想状态、中间状态、最差状态的顺序,所述缓冲区的剩余空间越来越小。
I帧即关键帧,可理解为对一帧画面的完整保留,解码时只需要本帧数据即可。
P帧即非关键帧,表示的是这一帧和之前帧的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,从而生成最终画面。
在实际应用中,所述中间状态还可进一步细分为第一中间状态和第二中间状态。
另外,剩余空间处于理想状态可以是指:剩余空间大于预定第一阈值;
剩余空间处于第一中间状态可以是指:剩余空间小于第一阈值但大于第二阈值;
剩余空间处于第二中间状态可以是指:剩余空间小于第二阈值但大于第三阈值;
剩余空间处于最差状态可以是指:剩余空间小于第三阈值;
其中,第一阈值大于第二阈值,第二阈值大于第三阈值。
对于一些临界值,如当剩余空间等于第一阈值时,既可以按照剩余空间处于理想状态的情况进行处理,也可以按照剩余空间处于第一中间状态的情况进行处理。
相应地,图3为本发明所述的缓冲区示意图。如图3所示,第一阈值用M1表示,第二阈值用M2表示,第三阈值用M3表示;I表示I帧,P表示P帧,W表示W指针,R表示R指针。
以下对本发明所述方案的具体实现作进一步地详细说明。
一)剩余空间处于理想状态(剩余空间>M1)
如果剩余空间处于理想状态,那么说明网络状态正常,因此可以按照正常方式进行图像数据的发送,即依次对缓冲区中的各帧图像数据进行发送,不丢弃任何帧。
如果网络状态变差,则剩余空间就会变得小于M1但大于M2,即剩余空间进入到第一中间状态。
二)剩余空间处于第一中间状态(M2<剩余空间<M1)
当剩余空间处于第一中间状态时,为了让剩余空间变大,可按照丢弃部分P帧的方式进行图像数据的发送,具体实现可如下所示:
a1、确定缓冲区中的R指针所在的位置是否为I帧位置,如果否,则将R指针移动到最近的I帧位置,并执行步骤b1,否则,直接执行步骤b1;
b1、设置一个参数sum,初始取值为0,并确定出当前带宽;
c1、从R指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;
d1、当sum的取值大于(当前带宽+K)时,直接将R指针移动到下一个I帧位置;如果剩余空间仍处于第一中间状态,则将sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,重复执行步骤c1,K大于0;如果剩余空间处于其它状态,则可按照所处的状态对应的方式进行处理。
K的具体取值可根据实际需要而定,较佳地,可为10k。
当前带宽,是指统计出的发送至客户端的数据发送速率。
上述方式中,利用sum来统计发送的数据量,一旦sum>当前带宽+10k,则可不再发送后面的P帧,而是直接移动R指针到下一个I帧位置,并更新sum(清零)和当前带宽的取值(在原基础上+10k)。
如果发送数据时的实际带宽大于当前带宽,即网络状态变好,随着当前带宽越来越高,发的数据量会越来越多,丢弃的帧会越来越少,剩余空间会逐渐恢复到理想状态。
如果实际带宽小于或等于当前带宽,即网络状态变差,由于每次发送的数据量都大于当前带宽,因此剩余空间会越来越小,逐渐进入到第二中间状态。
三)剩余空间处于第二中间状态(M3<剩余空间<M2)
当剩余空间处于第二中间状态时,为了让剩余空间变大,可按照丢弃部分P帧的方式进行图像数据的发送,具体实现可如下所示:
a2、确定缓冲区中的R指针所在的位置是否为I帧位置,如果否,则将R指针移动到最近的I帧位置,并执行步骤b2,否则,直接执行步骤b2;
b2、设置一个参数sum,初始取值为0,并确定出当前带宽;
c2、从R指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;
d2、当sum的取值大于(当前带宽-K)时,直接将R指针移动到下一个I帧位置;如果剩余空间仍处于第二中间状态,则将sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,重复执行步骤c2,K大于0;如果剩余空间处于其它状态,则可按照所处的状态对应的方式进行处理。
K的具体取值可根据实际需要而定,较佳地,可为10k。
上述方式中,利用sum来统计发送的数据量,一旦sum>当前带宽-10k,则可不再发送后面的P帧,而是直接移动R指针到下一个I帧位置,并更新sum(清零)和当前带宽的取值(在原基础上-10k)。
如果实际带宽大于当前带宽,由于发送的数据量越来越少,R指针移动得较快,因此剩余空间将会逐渐恢复到第一中间状态。
如果当前带宽-10k<实际带宽<当前带宽,由于每次发送的数据量都小于当前带宽,因此剩余空间也可能会恢复到第一中间状态。
如果实际带宽<当前带宽-10k,由于每次发送的数据量都大于实际带宽,因此剩余空间会越来越小,逐渐进入到最差状态。
也就是说,如果网络状态变好,剩余空间会逐渐恢复到第一中间状态,如果网络状态变差,剩余空间可能会恢复到第一中间状态,也可能会进入到最差状态,视网络状态变差程度而定。
四)最差状态(剩余空间<M3)
当剩余空间处于最差状态时,为了让剩余空间变大,可按照只发送I帧的方式进行图像数据的发送,具体实现可如下所示:将缓冲区中的R指针从当前位置移动到最近的I帧位置,并发送该I帧。
如果R指针离移动到的I帧比较近,移动R指针后剩余空间可能会进入到第一中间状态。
如果R指针离移动到的I帧比较远,移动R指针后剩余空间可能会进入到理想状态。
另外,还有一种情况,在实际应用中出现的可能性很小,即移动R指针后剩余空间还是处在最差状态;这种情况下,可将R指针从当前位置移动到下一个I帧位置,并发送该I帧,以避免数据被冲,即后续写入的数据将还未读出的数据覆盖掉。
基于上述介绍,本发明同时公开了一种自适应图像数据发送的网络摄像机,包括:
图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
图像传输模块,用于利用网络对图像数据进行传输,包括:
缓冲区,用于暂存待传输的图像数据;
检测子模块,用于实时检测缓冲区的剩余空间情况;
处理子模块,用于接收检测子模块的检测结果;当剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,剩余空间越来越小。
其中,
中间状态可进一步分为:第一中间状态和第二中间状态;
剩余空间处于理想状态包括:剩余空间大于第一阈值;
剩余空间处于第一中间状态包括:剩余空间小于第一阈值但大于第二阈值;
剩余空间处于第二中间状态包括:剩余空间小于第二阈值但大于第三阈值;
剩余空间处于最差状态包括:剩余空间小于第三阈值;
第一阈值大于第二阈值,第二阈值大于第三阈值。
相应地,
当剩余空间处于第一中间状态时,处理子模块可确定缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据sum和当前带宽执行预定处理,包括:从读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;当sum的取值大于(当前带宽+K)时,直接将读指针移动到下一个I帧位置;如果剩余空间仍处于第一中间状态,则将sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,之后重复执行预定处理,K大于0。
当剩余空间处于第二中间状态时,处理子模块可确定缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据sum和当前带宽执行预定处理,包括:从读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;当sum的取值大于(当前带宽-K)时,直接将读指针移动到下一个I帧位置;如果剩余空间仍处于第二中间状态,则将sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,之后重复执行预定处理,所述K大于0。
另外,
当剩余空间处于最差状态时,处理子模块可将缓冲区中的读指针从当前位置移动到最近的I帧位置,并发送该I帧。
较佳地,
处理子模块可进一步用于,在发送该I帧之后,如果剩余空间仍处于最差状态,则将读指针从当前位置移动到下一个I帧位置,并发送该I帧。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种自适应图像数据发送方法,其特征在于,包括:
当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;
当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;
当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;
其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第一中间状态时,所述按照丢弃部分P帧的方式进行图像数据的发送包括:
a1、确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并执行步骤b1,否则,直接执行步骤b1;
b1、设置一个参数sum,初始取值为0,并确定出当前带宽;
c1、从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;
d1、当所述sum的取值大于(当前带宽+K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第一中间状态,则将所述sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,重复执行步骤c1,所述K大于0。
2.根据权利要求1所述的方法,其特征在于,
当所述剩余空间处于最差状态时,所述按照只发送I帧的方式进行图像数据的发送包括:
将所述缓冲区中的读指针从当前位置移动到最近的I帧位置,并发送该I帧。
3.根据权利要求2所述的方法,其特征在于,
所述发送该I帧之后,进一步包括:如果所述剩余空间仍处于所述最差状态,则将所述读指针从当前位置移动到下一个I帧位置,并发送该I帧。
4.一种自适应图像数据发送方法,其特征在于,包括:
当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;
当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;
当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;
其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送包括:
当所述剩余空间处于第二中间状态时,所述按照丢弃部分P帧的方式进行图像数据的发送包括:
a2、确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并执行步骤b2,否则,直接执行步骤b2;
b2、设置一个参数sum,初始取值为0,并确定出当前带宽;
c2、从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;
d2、当所述sum的取值大于(当前带宽-K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第二中间状态,则将所述sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,重复执行步骤c2,所述K大于0。
5.根据权利要求4所述的方法,其特征在于,
当所述剩余空间处于最差状态时,所述按照只发送I帧的方式进行图像数据的发送包括:
将所述缓冲区中的读指针从当前位置移动到最近的I帧位置,并发送该I帧。
6.根据权利要求5所述的方法,其特征在于,
所述发送该I帧之后,进一步包括:如果所述剩余空间仍处于所述最差状态,则将所述读指针从当前位置移动到下一个I帧位置,并发送该I帧。
7.一种自适应图像数据发送的网络摄像机,其特征在于,包括:
图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
图像传输模块,用于利用网络对图像数据进行传输,包括:
缓冲区,用于暂存待传输的图像数据;
检测子模块,用于实时检测缓冲区的剩余空间情况;
处理子模块,用于接收检测子模块的检测结果;当所述剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第一中间状态时,所述处理子模块确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据所述sum和所述当前带宽执行预定处理,包括:从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;当所述sum的取值大于(当前带宽+K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第一中间状态,则将所述sum的取值清零,并用(当前带宽+K)代替之前的当前带宽,之后重复执行所述预定处理,所述K大于0。
8.根据权利要求7所述的网络摄像机,其特征在于,
当所述剩余空间处于最差状态时,所述处理子模块将所述缓冲区中的读指针从当前位置移动到最近的I帧位置,并发送该I帧。
9.根据权利要求8所述的网络摄像机,其特征在于,
所述处理子模块进一步用于,在发送该I帧之后,如果所述剩余空间仍处于所述最差状态,则将所述读指针从当前位置移动到下一个I帧位置,并发送该I帧。
10.一种自适应图像数据发送的网络摄像机,其特征在于,包括:
图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
图像传输模块,用于利用网络对图像数据进行传输,包括:
缓冲区,用于暂存待传输的图像数据;
检测子模块,用于实时检测缓冲区的剩余空间情况;
处理子模块,用于接收检测子模块的检测结果;当所述剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小;
所述中间状态进一步分为:第一中间状态和第二中间状态;
所述剩余空间处于理想状态包括:所述剩余空间大于第一阈值;
所述剩余空间处于第一中间状态包括:所述剩余空间小于所述第一阈值但大于第二阈值;
所述剩余空间处于第二中间状态包括:所述剩余空间小于所述第二阈值但大于第三阈值;
所述剩余空间处于最差状态包括:所述剩余空间小于所述第三阈值;
其中,所述第一阈值大于所述第二阈值,所述第二阈值大于所述第三阈值;
当所述剩余空间处于第二中间状态时,所述处理子模块确定所述缓冲区中的读指针所在的位置是否为I帧位置,如果否,则将所述读指针移动到最近的I帧位置,并设置一个参数sum,初始取值为0,并确定出当前带宽,如果是,则直接设置一个参数sum,初始取值为0,并确定出当前带宽;根据所述sum和所述当前带宽执行预定处理,包括:从所述读指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新所述sum的取值,利用所述sum统计所发送的数据量;当所述sum的取值大于(当前带宽-K)时,直接将所述读指针移动到下一个I帧位置;如果所述剩余空间仍处于所述第二中间状态,则将所述sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,之后重复执行所述预定处理,所述K大于0。
11.根据权利要求10所述的网络摄像机,其特征在于,
当所述剩余空间处于最差状态时,所述处理子模块将所述缓冲区中的读指针从当前位置移动到最近的I帧位置,并发送该I帧。
12.根据权利要求11所述的网络摄像机,其特征在于,
所述处理子模块进一步用于,在发送该I帧之后,如果所述剩余空间仍处于所述最差状态,则将所述读指针从当前位置移动到下一个I帧位置,并发送该I帧。
CN201410005687.8A 2014-01-03 2014-01-03 一种自适应图像数据发送方法和装置 Active CN104702972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410005687.8A CN104702972B (zh) 2014-01-03 2014-01-03 一种自适应图像数据发送方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410005687.8A CN104702972B (zh) 2014-01-03 2014-01-03 一种自适应图像数据发送方法和装置

Publications (2)

Publication Number Publication Date
CN104702972A CN104702972A (zh) 2015-06-10
CN104702972B true CN104702972B (zh) 2018-04-20

Family

ID=53349682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410005687.8A Active CN104702972B (zh) 2014-01-03 2014-01-03 一种自适应图像数据发送方法和装置

Country Status (1)

Country Link
CN (1) CN104702972B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357570B (zh) * 2015-11-03 2018-10-23 上海熙菱信息技术有限公司 一种基于帧分析的视频流分析方法及系统
CN105611309B (zh) * 2015-12-22 2019-03-05 北京奇虎科技有限公司 一种视频传输方法和装置
CN107809682A (zh) * 2017-11-14 2018-03-16 北京威速科技有限公司 一种调节发送缓冲数据量的视频流量控制方法
CN109788337B (zh) * 2017-11-15 2021-03-09 浙江宇视科技有限公司 一种对所采集的视频数据进行发送处理的方法及装置
CN107911167A (zh) * 2017-11-29 2018-04-13 中国人民解放军信息工程大学 一种可见光成像通信方法及系统
CN109660879B (zh) * 2018-12-20 2021-11-19 广州虎牙信息科技有限公司 直播丢帧方法、系统、计算机设备和存储介质
CN113301051A (zh) * 2021-05-27 2021-08-24 西安万像电子科技有限公司 数据的传输方法、装置、计算机存储介质和处理器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200507652A (en) * 2003-08-08 2005-02-16 Liteon It Corp Method of buffer management in video encoder
CN101272486A (zh) * 2008-04-10 2008-09-24 清华大学 基于pid控制和接收帧率稳定模型的视频传输控制方法
CN101395871A (zh) * 2006-03-14 2009-03-25 日本电气株式会社 缓冲器控制方法、中继装置、通信系统
CN101420605A (zh) * 2008-11-28 2009-04-29 武汉虹信通信技术有限责任公司 一种基于公共数字移动通信网络进行视频传输的控制算法
CN101527834A (zh) * 2009-03-26 2009-09-09 浙江大华技术股份有限公司 一种无线窄带网络视频传输方法
CN101765003A (zh) * 2008-12-23 2010-06-30 上海茂碧信息科技有限公司 在不同速率网络环境下传输音频和视频的方法
CN101902625A (zh) * 2009-05-27 2010-12-01 深圳市九洲电器有限公司 交互式网络电视视频数据处理方法、系统及机顶盒

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200507652A (en) * 2003-08-08 2005-02-16 Liteon It Corp Method of buffer management in video encoder
CN101395871A (zh) * 2006-03-14 2009-03-25 日本电气株式会社 缓冲器控制方法、中继装置、通信系统
CN101272486A (zh) * 2008-04-10 2008-09-24 清华大学 基于pid控制和接收帧率稳定模型的视频传输控制方法
CN101420605A (zh) * 2008-11-28 2009-04-29 武汉虹信通信技术有限责任公司 一种基于公共数字移动通信网络进行视频传输的控制算法
CN101765003A (zh) * 2008-12-23 2010-06-30 上海茂碧信息科技有限公司 在不同速率网络环境下传输音频和视频的方法
CN101527834A (zh) * 2009-03-26 2009-09-09 浙江大华技术股份有限公司 一种无线窄带网络视频传输方法
CN101902625A (zh) * 2009-05-27 2010-12-01 深圳市九洲电器有限公司 交互式网络电视视频数据处理方法、系统及机顶盒

Also Published As

Publication number Publication date
CN104702972A (zh) 2015-06-10

Similar Documents

Publication Publication Date Title
CN104702972B (zh) 一种自适应图像数据发送方法和装置
CN104618195B (zh) 带宽估测方法和装置
KR101693564B1 (ko) 미디어 품질 평가 방법 및 장치
JP2005523634A5 (zh)
US8873590B2 (en) Apparatus and method for correcting jitter
CN103929334A (zh) 网络异常通知方法和装置
CN103002354A (zh) 一种消除视频数据传输网络抖动的方法及系统
CN104394484A (zh) 一种无线实时流媒体传输方法
US20200029121A1 (en) Data Flow Control Method and Apparatus
US9729903B2 (en) Data transmitting device and method
CN113727185B (zh) 视频帧播放方法及系统
CN116506665A (zh) 自适应码率控制的vr串流方法、系统、装置及存储介质
CN103067690A (zh) 基于智能监控平台的均衡传输音视频数据的方法及装置
CN103036808A (zh) 一种去除网络抖动的方法及系统
CN104104601A (zh) 数据传输方法、设备及系统
CN105681864A (zh) 一种基于ip的传输流抖动去除方法及装置
KR101612312B1 (ko) 데이터 처리속도 증가장치 및 그 방법
CN108668166B (zh) 一种编码方法、装置及终端设备
US10069733B2 (en) Managing Ethernet backpressure at a network device
CN108419268B (zh) 一种虚拟现实业务处理方法及无线接入网元设备
CN106331847A (zh) 音视频播放方法及设备
CN102104909B (zh) 数据处理方法及装置
EP3223478A1 (en) Packet processing method and device, and storage medium
CN104506455B (zh) 数据包排序去抖方法及装置
US8832309B2 (en) Generating packets with low overhead or selectable sequence number generation

Legal Events

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