专利名称:一种控制缓存溢出的方法及装置的制作方法
技术领域:
本发明涉及通信技术领域,尤其涉及一种控制緩存溢出的方法及装置。
背景技术:
流媒体视频业务是第三代移动通信(3G)的一项重要应用。目前,3G网 络可以提供丰富的流媒体视频业务,包括流媒体视频点播业务和流媒体视频 直播业务。随着3G的不断发展,流媒体视频业务越来越受到用户的青睐。
由于3G网络的不稳定性,例如3G网络受多经、弱覆盖等影响,信号 的误码率增大,数据重传的次数增加,导致一段时间内传输链路吞吐率过大, 网路节点堆积了大量流媒体视频业务数据帧。当堆积的流媒体视频业务数据 帧过多,超过了网络节点缓存的负荷,就会产生緩存溢出,丟弃此时到达的 部分流媒体视频业务数据帧。
现有控制緩存溢出的方法包括緩存队列长度管理技术以及随机早期检 测技术。缓存队列长度管理技术是对每个緩存队列设定一个最大长度,并且 通常以流媒体视频业务视频帧的个数为单位,当队列长度小于最大长度时, 网络节点接收到达的所有流媒体视频业务视频帧, 一旦队列长度达到最大长 度,就拒绝接收随后到达的流媒体视频业务视频帧。但是若队列中有的流媒 体视频业务视频帧因为被发送而离开队列,导致队列长度小于最大长度,网 络节点会继续接收到达的流媒体视频业务视频帧。
随机早期检测技术根据緩存内流媒体视频业务视频帧的情况动态控制緩 存溢出。随机早期检测技术不是简单地当緩存满了才丟弃流媒体视频业务视 频帧,而是以一定的概率丟弃到达的流媒体视频业务视频帧。具体来说,当 緩存内的流媒体视频业务视频帧较少,则到达的流媒体视频业务视频帧不大 可能被丟掉,当缓存内的流媒体视频业务视频帧较多,则表示当前发生了拥 塞,到达的流媒体视频业务视频帧很有可能被丟掉。
发明人在实现本发明的过程中,发现上述两种现有方法至少存在如下缺 点当发生緩存溢出时,对流i某体视频业务视频帧不加分辨就直接丟弃,如
果丢弃的视频帧携带有重要信息,就会严重影响流媒体视频业务的业务质量。
发明内容
有鉴于此,本发明实施例提供了一种控制緩存溢出的方法及装置,以解 决现有技术对流媒体视频业务视频帧不加分辨就直接丟弃的问题。
一种控制緩存溢出的方法,所述方法包括
判断緩存队列中緩存数据量是否大于预设门限值;
若所述緩存队列中所述緩存数据量大于预设门限值,根据所述緩存队列 中视频帧的类型和位置,丟弃错误扩散范围小的视频帧。
一种控制緩存溢出的装置,所述装置包括
判断单元,用于判断緩存队列中緩存数据量是否大于预设门限值;
控制单元,用于若所述判断单元判断所述緩存队列中所述緩存数据量大 于预设门限值,根据所述緩存队列中视频帧的类型和位置,丢弃错误扩散范 围小的视频帧。
可以看出当緩存队列负荷过大,达到溢出门限时,根据视频帧的类型 和位置有选择地控制緩存溢出,从而提高了流媒体视频业务的业务质量,有 效减少了画面中的马赛克、跳跃等现象。
图1为本发明方法实施例的流程图一; 图2为本发明方法实施例的流程图二; 图3为本发明装置实施例的结构图一; 图4为本发明装置实施例的结构图二。
具体实施例方式
为使本发明的上述特征、优点更加明显易懂,下面结合具体实施方式
对 本发明进行详细说明。
本发明实施例可以适用于各种视频帧,例如,可以适用于音视频混合编
码的视频帧,也可以适用于视频单独编码的视频帧,并不限定其类型。本发 明实施例所提到的緩存,可以适用于各种端到端的网络,可以适用于各种网 元的各个层次,并不限定其应用范围。
请参考图1,示出了本发明的方法实施例流程图一,包括
步骤101:判断緩存队列中緩存数据量是否大于预设门限值;
步骤102:若所述缓存队列中所述緩存数据量大于预设门限值,根据所述 缓存队列中视频帧的类型和位置,丟弃错误扩散范围小的视频帧。
本发明实施例中所述的緩存数据量,例如,可以是包的个数,也可以是 视频帧的个数,也可以是緩存空间大小(bit),本发明实施例并不限定其具体 表现形式。
下面结合具体实施例对图1所示各步骤进行详细说明。
视频帧是流媒体视频业务最小的单位,按照类型可以分为I帧、P帧、B 帧。 一个画面组是以I帧为起始帧的一组I帧、P帧、B帧的组合。I帧是帧 内编码,P帧和B帧是帧间编码。B帧编码时参考了与其前后相邻的I帧或P 帧,P帧的编码参考了与其前向相邻的I帧或者P帧。接收端解码时,由于I 帧是帧内编码,因此I帧可以根据编码信息独自解码,而P帧和B帧必须获 得其参考帧才可以进行解码。
根据I帧、P帧、B帧的编码特性,在接收端,当I帧、P帧、B帧发生 错误时,例如I帧、P帧或者B帧被丟弃,I帧、P帧、B帧按照相互影响程 度进行排列,为I帧> P帧> B帧。即由于P帧和B帧的编码均需要参考I 帧,所以I帧对P帧和B帧的影响程度最大,影响一个画面组的所有P帧及B 帧;由于I帧和P帧的编码均不需要参考B帧,所以B帧对I帧和P帧的影 响程度最小,只影响B帧自身;而P帧对I帧和B帧的影响程度介于I帧和B 帧之间,并且耳又决于P帧在一个画面组中的位置,P帧影响与其前向相邻的连 续B帧直至一个画面组中结尾的所有P帧和B帧。
由于I帧对P帧和B帧影响程度最大,所以,I帧对流媒体视频业务的质 量影响程度最大,同样,由于B帧对I帧和P帧影响程度最小,所以,B帧 对流媒体视频业务的质量影响程度最小。
本发明实施例以视频帧的上述特性为出发点,根据I帧、P帧、B帧相互 之间的影响程度,当緩存队列中緩存数据量大于预设门限值时,启动緩存溢
出控制,首先丟弃只影响自身的帧,即B帧。当B帧被丟弃完时,若緩存队
列中緩存数据量仍然大于预设门限值,再丟弃p帧,直至緩存队列中緩存数
据量不大于预设的门限值为止。请参考图2,为本发明方法实施例的流程图二, 具体可以包括以下步骤
步骤201:判断緩存队列的缓存数据量是否大于预设的门限值N,如果大 于,则进入步骤202,否则,继续执行该步骤;
步骤202:判断緩存队列中是否有B帧,若有,则进入步骤203,否则, 进入步骤204;
步骤203:丟弃緩存队列中的最后一个B帧,返回步骤201;
在步骤203中,由于B帧只影响自身,所以从删除B帧开始,在此,仅 以删除最后一个B帧为例进行说明。
步骤204:判断緩存队列中是否有I帧,若有,则进入步骤205,否则, 进入步骤206;
在步骤204中,緩存队列中可以有一个I帧,也可以有多个I帧。
步骤205:丟弃緩存队列中与I帧前向相邻的P帧,返回步骤201;
当緩存队列中有一个I帧时,则删除与该I帧前向相邻的P帧。当緩存队列 中有多个I帧时,则按照I帧在緩存队列中从后向前的顺序,依次删除各I帧前 向相邻的P帧。
步骤206:丟弃緩存队列中的最后一个P帧,返回步骤201。
在步骤205与步骤206中,由于P帧影响与其前向相邻的连续B帧直至一个 画面组中结尾的所有P帧和B帧,在没有B帧的情况下,P帧影响一个画面组中 从该P帧至该P帧所在画面组结尾所有的P帧,所以,需要乂人画面组中最后一个 P帧开始删除,减少对该画面组中的其它P帧的影响,降低緩存溢出对流媒体 时频业务质量的影响。
以上对本发明方法实施例进行了详细说明,可以看出,当緩存队列中緩 存数据量大于预设门限值时,根据緩存队列中视频帧的类型和位置有选择地 进行丢弃,从只影响自身的B帧开始丟弃,而对其它帧影响最大的I帧始终不 了-丢弃,从而提高了孤7禾体視频业务的业务质量,有效减少了画面中的马赛 克、跳跃等现象。
请参考图3,为本发明装置实施例结构图一,包括
判断单元301,用于判断緩存队列中緩存数据量是否大于预设门限值;
控制单元302,若所述判断单元判断所述緩存队列中所述緩存数据量大于 预设门限值,根据所述緩存队列中视频帧的类型和位置,丟弃错误扩散范围 小的纟见频帧。
请参考图4,为本发明装置实施例结构图二。图4在图3的基础上,结合步 骤201至步骤206,控制单元可以至少包括以下模块之一
第一控制模块302-l,用于当所述緩存队列中有B帧时,丟弃所述B帧;
第二控制模块302-2,用于当所述緩存队列中有I帧但没有B帧时,丢弃 与所述I帧前向相邻的P帧;
第三控制模块302-3,用于当所述緩存队列中没有I帧且没有B帧时,丢 弃所述緩存队列中最后一个P帧。
下面结合步骤201至步骤206对图4中各单元以及模块执行的操作进行 详细说明。
当判断单元301判断出緩存队列中緩存数据量大于预设门限值时,第一控 制模块302-l判断所述緩存队列中是否有B帧,如果有B帧,丢弃緩存队列中的 最后一个B帧。
或者,当判断单元301判断出緩存队列中緩存数据量大于预设门限值时, 第二控制模块302-2判断出緩存队列中有I帧但是没有B帧时,丟弃与I帧前向相 邻的P帧。同样需要指出的是,当緩存队列中有一个I帧时,第二控制模块302-2 丟弃与该I帧前向相邻的P帧。当緩存队列中有多个I帧时,第二控制^t块302-2 按照I帧在緩存队列中从后向前的顺序,依次丢弃各I帧前向相邻的P帧。
或者,当判断单元301判断出緩存队列中緩存数据量大于预设门限值时,
第三控制模块302-3判断出缓存队列中没有I帧并且没有B帧时,丟弃緩存队列
中最后一个p帧。
本发明装置实施例提供的装置可以包括各网络节点以及终端,其中,网
络节点可以包括基站控制器BSC、无线网络控制器RNC、网关GPRS支持节点 GGSN、网关GW或者传输节点。终端可以包括固定终端或者移动终端,具体 可以为用户设备UE、个人电脑PC。
可以看出,由于控制单元可以根据视频帧的类型和视频帧在緩存队列中 的位置、有选择地对緩存队列中的视频帧进行删除,具体为,删除对其它视 频帧影响最小或者较小的视频帧,而不删除对其它视频帧影响最大的视频帧, 进而,提高了流媒体视频业务的业务质量,有效减少了画面中的马赛克、跳 跃等现象。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术 语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定 要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而 且,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包含, 从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素, 而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、 物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一 个......"限定的要素,并不排除在包括所述要素的过程、方法、物品或者
设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬 件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发 明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式 体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁 碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分 所述的方法。
以上对本发明所提供的 一 种控制緩存溢出的方法及装置进行了详细介
实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于
本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围 上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、一种控制缓存溢出的方法,其特征在于,所述方法包括判断缓存队列中缓存数据量是否大于预设门限值;若所述缓存队列中所述缓存数据量大于预设门限值,根据所述缓存队列中视频帧的类型和位置,丢弃错误扩散范围小的视频帧。
2、 根据权利要求1所述的方法,其特征在于,根据所述緩存队列中视频 帧的类型和位置,丢弃错误扩散范围小的视频帧包括当所述缓存队列中有B帧时,丟弃所述B帧。
3、 根据权利要求1所述的方法,其特征在于,根据所述緩存队列中视频 帧的类型和位置,丟弃错误扩散范围小的视频帧包括当所述緩存队列中有I帧但没有B帧时,丟弃与所述I帧前向相邻的P帧。
4、 根据权利要求3所述的方法,其特征在于,当所述緩存队列中有I帧 但没有B帧时,丢弃与所述I帕前向相邻的P帧包括当所述緩存队列中有一个I帧时,丟弃与所述I帧前向相邻的P帧;或者, 当所述缓存队列中有至少两个I帧时,按照所述至少两个I帧在所述緩存队列 中从后向前的顺序,依次丟弃所述至少两个I帧前向相邻的P帧。
5、 根据权利要求1所述的方法,其特征在于,根据所述緩存队列中视频 帧的类型和位置,丟弃错误扩散范围小的视频帧包括当所述緩存队列中没有I帧且没有B帧时,丟弃所述緩存队列中最后一 个P帧。
6、 一种控制緩存溢出的装置,其特征在于,所述装置包括判断单元,用于判断緩存队列中緩存数据量是否大于预设门限值;控制单元,用于若所述判断单元判断所述緩存队列中所述緩存数据量大 于预设门限值,根据所述緩存队列中视频帧的类型和位置,丢弃错误扩散范 围小的视频帧。
7、 根据权利要求6所述的装置,其特征在于,所述控制单元至少包括下述模块之一第一控制模块,用于当所述緩存队列中有B帧时,丟弃所述B帧;第二控制模块,用于当所述緩存队列中有I帧但没有B帧时,丟弃与所 述I帧前向相邻的P帧;第三控制模块,用于当所述緩存队列中没有I帧且没有B帧时,丢弃所 述緩存队列中最后一个P帧。
8、 根据权利要求6或7所述的装置,其特征在于,所述装置具体为网 络节点或终端。
9、 根据权利要求8所述的装置,其特征在于,所述网络节点具体为基 站控制器BSC、无线网络控制器RNC、网关通用无线分组业务GPRS支持节 点GGSN、网关或者传输节点。
全文摘要
本发明公开了一种控制缓存溢出的方法及装置。本发明提供的方法包括判断缓存队列中缓存数据量是否大于预设门限值;若所述缓存队列中所述缓存数据量大于预设门限值,根据所述缓存队列中视频帧的类型和位置,丢弃错误扩散范围小的视频帧。本发明提供的装置包括判断单元以及控制单元,其中,判断单元用于判断缓存队列中缓存数据量是否大于预设门限值,控制单元用于若所述缓存队列中所述缓存数据量大于预设门限值,根据所述缓存队列中视频帧的类型和位置,丢弃错误扩散范围小的视频帧。通过本发明,提高了流媒体视频业务的业务质量,有效减少了画面中的马赛克、跳跃等现象。
文档编号H04L29/08GK101360058SQ20081021564
公开日2009年2月4日 申请日期2008年9月8日 优先权日2008年9月8日
发明者周素萍, 斌 李, 谷安文, 陈玉芳 申请人:华为技术有限公司