一种自适应图像数据发送方法和装置的制造方法

文档序号:8384108阅读:226来源:国知局
一种自适应图像数据发送方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络技术,特别涉及一种自适应图像数据发送方法和装置。
【背景技术】
[0002]现有技术中,在进行图像数据发送时,网络侧设备通常会建立一个缓冲区,并在向缓冲区中写入图像数据的同时,从缓冲区中读出图像数据,发送给客户端。
[0003]图1为现有的缓冲区示意图。如图1所示,W表示写指针,R表示读指针,R指针和W指针需要处于一个相对平衡的状态,即需要通过某种方式,将缓冲区的剩余空间尽可能地维持在一个较优的状态(剩余空间不能过小),否则,可能会导致客户端不能流畅的播放图像等。
[0004]但是,现有方式的实现均比较复杂,比如可能需要开辟额外的缓冲区等,从而造成了资源上的浪费。

【发明内容】

[0005]有鉴于此,本发明提供了一种自适应图像数据发送方法和装置,实现简单,并能够节省资源。
[0006]为了达到上述目的,本发明的技术方案是这样实现的:
[0007]一种自适应图像数据发送方法,包括:
[0008]当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;
[0009]当确定所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;
[0010]当确定所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;
[0011]其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小。
[0012]一种自适应图像数据发送的网络摄像机,包括:
[0013]图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
[0014]图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
[0015]图像传输模块,用于利用网络对图像数据进行传输,包括:
[0016]缓冲区,用于暂存待传输的图像数据;
[0017]检测子模块,用于实时检测缓冲区的剩余空间情况;
[0018]处理子模块,用于接收检测子模块的检测结果;当所述剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送;当所述剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送;当所述剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送;其中,按照理想状态、中间状态、最差状态的顺序,所述剩余空间越来越小。
[0019]可见,采用本发明所述方案,可根据缓冲区的剩余空间所处的状态,自适应地调整图像数据的发送策略,从而将剩余空间尽可能地维持在一个较优的状态;相比于现有技术,本发明所述方案中无需开辟额外的缓冲区等,实现简单,并能够节省资源,而且,可确保在网络状态较差或者变化频繁的情况下,客户端仍能流畅地播放图像。
【附图说明】
[0020]图1为现有的缓冲区示意图。
[0021]图2为本发明自适应图像数据发送方法实施例的流程图。
[0022]图3为本发明所述的缓冲区示意图。
【具体实施方式】
[0023]为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步的详细说明。
[0024]图2为本发明自适应图像数据发送方法实施例的流程图。如图2所示,包括以下步骤21?23。
[0025]步骤21:当确定缓冲区的剩余空间处于理想状态时,依次对缓冲区中的各帧图像数据进行发送。
[0026]步骤22:当确定缓冲区的剩余空间处于中间状态时,按照丢弃部分P帧的方式进行图像数据的发送。
[0027]步骤23:当确定缓冲区的剩余空间处于最差状态时,按照只发送I帧的方式进行图像数据的发送。
[0028]其中,按照理想状态、中间状态、最差状态的顺序,所述缓冲区的剩余空间越来越小。
[0029]I帧即关键帧,可理解为对一帧画面的完整保留,解码时只需要本帧数据即可。
[0030]P帧即非关键帧,表示的是这一帧和之前帧的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,从而生成最终画面。
[0031]在实际应用中,所述中间状态还可进一步细分为第一中间状态和第二中间状态。
[0032]另外,剩余空间处于理想状态可以是指:剩余空间大于预定第一阈值;
[0033]剩余空间处于第一中间状态可以是指:剩余空间小于第一阈值但大于第二阈值;
[0034]剩余空间处于第二中间状态可以是指:剩余空间小于第二阈值但大于第三阈值;
[0035]剩余空间处于最差状态可以是指:剩余空间小于第三阈值;
[0036]其中,第一阈值大于第二阈值,第二阈值大于第三阈值。
[0037]对于一些临界值,如当剩余空间等于第一阈值时,既可以按照剩余空间处于理想状态的情况进行处理,也可以按照剩余空间处于第一中间状态的情况进行处理。
[0038]相应地,图3为本发明所述的缓冲区示意图。如图3所示,第一阈值用Ml表示,第二阈值用M2表示,第三阈值用M3表示;1表示I帧,P表示P帧,W表示W指针,R表示R指针。
[0039]以下对本发明所述方案的具体实现作进一步地详细说明。
[0040]一)剩余空间处于理想状态(剩余空间>M1)
[0041]如果剩余空间处于理想状态,那么说明网络状态正常,因此可以按照正常方式进行图像数据的发送,即依次对缓冲区中的各帧图像数据进行发送,不丢弃任何帧。
[0042]如果网络状态变差,则剩余空间就会变得小于Ml但大于M2,即剩余空间进入到第一中间状态。
[0043]二)剩余空间处于第一中间状态(M2〈剩余空间〈Ml)
[0044]当剩余空间处于第一中间状态时,为了让剩余空间变大,可按照丢弃部分P帧的方式进行图像数据的发送,具体实现可如下所示:
[0045]al、确定缓冲区中的R指针所在的位置是否为I帧位置,如果否,则将R指针移动到最近的I帧位置,并执行步骤bl,否则,直接执行步骤bl ;
[0046]bl、设置一个参数sum,初始取值为0,并确定出当前带宽;
[0047]Cl、从R指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;
[0048]dl、当sum的取值大于(当前带宽+ K)时,直接将R指针移动到下一个I帧位置;如果剩余空间仍处于第一中间状态,则将sum的取值清零,并用(当前带宽+ K)代替之前的当前带宽,重复执行步骤Cl,K大于O ;如果剩余空间处于其它状态,则可按照所处的状态对应的方式进行处理。
[0049]K的具体取值可根据实际需要而定,较佳地,可为10k。
[0050]当前带宽,是指统计出的发送至客户端的数据发送速率。
[0051]上述方式中,利用sum来统计发送的数据量,一旦sum〉当前带宽+ 10k,则可不再发送后面的P帧,而是直接移动R指针到下一个I帧位置,并更新sum (清零)和当前带宽的取值(在原基础上+ 10k)。
[0052]如果发送数据时的实际带宽大于当前带宽,即网络状态变好,随着当前带宽越来越高,发的数据量会越来越多,丢弃的帧会越来越少,剩余空间会逐渐恢复到理想状态。
[0053]如果实际带宽小于或等于当前带宽,即网络状态变差,由于每次发送的数据量都大于当前带宽,因此剩余空间会越来越小,逐渐进入到第二中间状态。
[0054]三)剩余空间处于第二中间状态(M3〈剩余空间〈M2)
[0055]当剩余空间处于第二中间状态时,为了让剩余空间变大,可按照丢弃部分P帧的方式进行图像数据的发送,具体实现可如下所示:
[0056]a2、确定缓冲区中的R指针所在的位置是否为I帧位置,如果否,则将R指针移动到最近的I帧位置,并执行步骤b2,否则,直接执行步骤b2 ;
[0057]b2、设置一个参数sum,初始取值为0,并确定出当前带宽;
[0058]c2、从R指针所在的I帧开始,依次进行各帧图像数据的发送,并实时更新sum的取值,利用sum统计所发送的数据量;
[0059]d2、当sum的取值大于(当前带宽-K)时,直接将R指针移动到下一个I帧位置;如果剩余空间仍处于第二中间状态,则将sum的取值清零,并用(当前带宽-K)代替之前的当前带宽,重复执行步骤c2,K大于O ;如果剩余空间处于其它状态,则可按照所处的状态对应的方式进行处理。
[0060]K的具体取值可根据实际需要而定,较佳地,可为10k。
[0061]上述方式中,利用sum来统计发送的数据量,一旦sum〉当前带宽-10k,则可不再发送后面的P帧,而是直接移动R指针到下一个I帧位置,并更新sum (清零)和当前带宽的取值(在原基础上-10k)。
[0062]如果实际带宽大于当前带宽,由于发送的数据量越来越少,R指针移动得较快,因此剩余空间将会逐渐恢复到第一中间状态。
[0063]如果当前带宽-1OK实际带宽〈当前带宽,由于每次发送的数据量都小于当前带宽,因此剩余空间也可能会恢复到第一中间状态。
[0064]如果实际带宽〈当前带宽-10k,由于每次发送的数据量都大于实际带宽,因此剩余空间会越来越小,逐渐进入到最差状态。
[0065]也就是说,如果网络状态变好,剩余空间会逐渐恢复到第一中间状态,如果网络状态变差,剩余空间可能会恢复到第一中间状态,也可能会进入到最差状态,视网络状态变差程度而定。
[0066]四)最差状态(剩余空间〈M3)
[0067]当剩余空间处于最差状态时,为了让剩余空间变大,可按照只发送I帧的方式进行图像数据的发送,具体实现可如下所示:将缓冲区中的R指针从当前位置移动到最近的I帧位置,并发送该I帧。
[0068]如果R指针离移动到的I帧比较近,移动R指针后剩余空间可能会进入到第一中间状态。
[0069]如果R指针离移动到的I帧比较远,移动R指针后剩余空间可能会进入到理想状态。
[0070]另外,还有一种情况,在实际应用中出现的可能性很小,即移动R指针后剩余空间还是处在最差状态;这种情况下,可将R指针从当前位置移动到下一个I帧位置,并发送该I帧,以避免数据被冲,即后续写入的数据将还未读出的数据覆盖掉。
[0071]基于上述介绍,本发明同时公开了一种自适应图像数据发送的网络摄像机,包括:
[0072]图像采集模块,用于对视频图像进行采集并传输至图像处理模块;
[0073]图像处理模块,用于对接收到的视频图像进行处理,得到目标格式的图像数据;
[0074]图像传输模块,用于利用网络
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1