本申请为2011年7月14日提交的名称为"SYSTEMS ANDMETHODS FOR PRIORITIZATION OF DATA FOR INTELLIGENTDISCARD IN A COMMUNICATION NETWORK"的美国专利申请序列第13/182,703号(该专利申请要求2010年12月9日提交的名称为“SYSTEMS AND METHODS FOR INTELLIGENT DISCARD IN ACOMMUNICATION NETWORK”的美国临时专利申请序列第61/421,510号的权益)的部分继续申请、2011年6月7日提交的名称为"SYSTEMS AND METHODS FOR PRIORITIZATION OF DATAFOR INTELLIGENT DISCARD IN A COMMUNICATIONNETWORK"的美国专利申请序列第13/155,102号的部分继续申请以及2010年6月11日提交的名称为“SYSTEMS AND METHODS FORINTELLIGENT DISCARD IN A COMMUNICATION NETWORK”的美国专利申请序列第12/813,856号(该专利申请要求2009年6月12日提交的名称为“SYSTEM AND METHOD FOR INTERACTIVEINTELLIGENT DISCARD IN A COMMUNICATION NETWORK”的美国临时专利申请序列第61/186,707号、2009年6月15日提交的名称为“SYSTEM AND METHOD FOR REACTIVE INTELLIGENTDISCARD IN A COMMUNICATION NETWORK”的美国临时专利申请序列第61/187,113号和2009年6月15日提交的名称为“SYSTEMAND METHOD FOR PROACTIVE INTELLIGENT DISCARD IN ACOMMUNICATION NETWORK”的美国临时专利申请序列第61/187,118号的权益)的部分继续申请,上述专利申请据此均以引用方式并入。
具体实施方式
一些实施方案提供了用于可在基站或其它设备中实施的多变量控制系统的系统和方法。所述控制系统可被配置用于缓解容量和频谱受限的多址通信网络中各种干扰场景的效应。在其它实施方案中,所述控制系统可被配置用于对总带宽需求做出调整或改变。本文提供的系统和方法可使用控制响应来引起通信系统的变化。一种此类控制响应包括在容量受限条件下对网络包的最优丢弃(在本文中也称为“智能丢弃”)。一些实施方案通过选择性丢弃包提供了交互响应(interactive response),以提高感知和实际系统吞吐量;其它实施方案通过基于数据包对服务质量的相对影响来选择性丢弃数据包提供了被动响应(reactive response),以缓解超额预订(oversubscription);其它实施方案通过基于预测的超额预订来丢弃包提供了主动响应(proactive response);并且其它实施方案提供了其组合。
根据一个实施方案,提供了一种交互响应技术,其允许对传输和无线接入网络(RAN)/射频(RF)参数进行优化,以提供对抗来自相邻小区(cell)的干扰的稳健性,同时缓解对相邻小区的干扰。这些优化通过确定和考虑一组活动服务的吞吐量级别和相关质量得分来进行。如果通过选择性丢弃包来控制感知和实际系统吞吐量,则可维持高质量的用户体验。
根据一个实施方案,提供了一种被动响应技术,其允许基于所选数据包对服务质量的相对影响来丢弃所选数据包,以便缓解由修改传输参数或改变RAN/RF参数所导致的超额预订,从而缓解相邻小区之间的干扰。响应于不同的可用带宽而被动丢弃包可增加给定带宽量下用户体验的感知质量,并且可增加给定带宽量下可维持的服务数量。
根据一个实施方案,提供了一种主动响应技术,其可通过预测超额预订和选择性丢弃包或标记包以在预期超额预订之前进行有效丢弃来提高用户体验质量和系统吞吐量。响应于预期超额预订而主动丢弃包可提高给定带宽量下用户体验的感知质量,并且可增加给定带宽量和给定带宽变化量下可维持的服务数量。在一个实施方案中,选择性主动丢弃包可用于优化传输和RAN/RF参数,以在预期会发生导致需要此类参数变化的事件时增加对抗来自相邻小区的干扰的稳健性,并且缓解对相邻小区的干扰。在带宽限制事件发生之前,主动应用智能丢弃并且考虑使用智能丢弃来主动修改传输和RAN/RF参数,可提供更佳的用户体验过渡(相比于通过等待直到此带宽限制事件发生之后才应用智能丢弃并修改传输和RAN/RF参数可实现的用户体验过渡)。
一些实施方案提供了用于可在基站中实施的多变量控制系统的系统和方法。所述控制系统可被配置成缓解容量和频谱受限的多址通信网络中各种干扰场景的效应。在其它实施方案中,所述控制系统可被配置用于对总带宽需求做出调整或改变。
本文所公开的系统和方法可应用于各种容量受限的通信系统,包括但不限于有线和无线技术。例如,本文所公开的系统和方法可与蜂窝2G、3G、4G(包括长期演进(“LTE”)、增强型LTE(LTE Advanced)、WiMax)、WiFi、超移动宽带(“UMB”)、线缆调制解调器以及其它有线或无线技术一起使用。虽然本文中用于描述具体实施方案的短语和术语可应用于特定技术或标准,但本文所述的系统和方法不限于这些具体标准。
虽然本文中用于描述具体实施方案的短语和术语可应用于特定技术或标准,但所述方法在所有技术中仍然适用。
根据一个实施方案,本文所公开的系统和方法(包括包的智能丢弃)可在通信系统中进行调度的任何实体内实施。这包括通过任何形式的基站(包括宏蜂窝基站(macro cell)、微微蜂窝基站(Pico cell)、企业毫微微蜂窝基站(enterprise Femtocell)、家庭毫微微蜂窝基站(residential Femtocell)、中继基站或任何其它形式的基站)来调度下行带宽。根据一个实施方案,智能丢弃可通过沿上行方向传输的任何形式的设备(包括固定和移动用户设备以及中继设备)来进行。根据一个实施方案,智能丢弃可通过设在集中指导设备动作的核心网络中的调度算法或模块来进行。根据一个实施方案,智能丢弃可通过分配上行带宽以供另一个实体(如已知能够进行智能丢弃的用户设备)使用的实体(如基站)来预测性地进行。基站和用户设备可协商用户设备是否具有智能丢弃能力,或在一些实施方案中,可根据用户设备的型号识别来确定用户设备是否具有智能丢弃能力。
基本部署
图1为无线通信网络的框图,在所述无线通信网络中可实施本文所公开的根据一个实施方案的系统和方法。图1示出了通信系统的典型的基本部署,其包括宏蜂窝基站、微微蜂窝基站和企业毫微微蜂窝基站。在典型部署中,宏蜂窝基站可在一个或多个频道上发送和接收,所述一个或多个频道与小封装(SFF)基站(包括微微蜂窝基站和企业或家庭毫微微蜂窝基站)所使用的一个或多个频道分离。在其它实施方案中,宏蜂窝基站和SFF基站可共用相同的频道。地理和信道可用性的各种组合可形成可影响通信系统吞吐量的多种干扰场景。
图1示出了通信网络100中微微蜂窝基站和企业毫微微蜂窝基站的典型部署。宏基站110通过标准回程线路170连接至核心网络102。用户站150(1)和150(4)可通过宏基站110连接至所述网络。在图1所示的网络配置中,办公楼120(1)形成覆盖阴影104。可经由标准回程线路170连接至核心网络102的微微站130可对覆盖阴影104中的用户站150(2)和150(5)提供覆盖。
在办公楼120(2)中,企业毫微微蜂窝基站140对用户站150(3)和150(6)提供了楼内覆盖。企业毫微微蜂窝基站140可利用企业网关103提供的宽带连接160经由ISP网络101连接至核心网络102。
图2A为另一个无线通信网络的框图,在所述无线通信网络中可实施本文所公开的根据一个实施方案的系统和方法。图2A示出了通信网络200中典型的基本部署,其包括宏蜂窝基站和家庭环境中部署的家庭毫微微蜂窝基站。宏蜂窝基站110可通过标准回程线路170连接至核心网络102。用户站150(1)和150(4)可通过宏基站110连接至所述网络。在住宅220内部,家庭毫微微蜂窝基站240可对用户站150(7)和150(8)提供家庭内覆盖。家庭毫微微蜂窝基站240可利用线缆调制解调器或DSL调制解调器203提供的宽带连接260经由ISP网络101连接至核心网络102。
图2B为接入点或基站的高级功能框图。应该指出的是,相同或类似的功能块也存在于无线通信系统的其它元件(例如宏蜂窝基站、微微蜂窝基站、企业毫微微蜂窝基站和用户站)中,并且本文中对图2B所示的系统的参考旨在也应用于此类其它元件中。基站包括发送和接收无线信号的调制解调器段272。调制解调器272有时也被称为RF卡。该调制解调器还可测量和确定接收到的信号的各种特性。控制和管理段270总体上负责基站的运行。控制和管理段270包括高级控制段274和一个或多个MAC(介质访问控制)层或模块276和PHY(物理)层或模块280。通常,MAC层276通过协调对共享无线电信道的访问并且利用增强经由无线介质的通信的协议来管理和维护各站(用户站接入点/基站)之间的通信。调度程序278位于MAC层276内部。通常,PHY层280负责经由无线链路传输位数据。在本文所述的一些实施方案中,控制和管理段270实施本文所述的系统和方法。
干扰场景
各种干扰场景可导致通信网络的感知和实际性能降低。例如,第三代合作伙伴计划(3GPP)已在技术报告(3GPP TR 25.967)中识别了多种干扰场景,该技术报告据此全文以引用方式并入。干扰场景的一些实例包括:(1)从用户站至SFF基站的上行链路(UL)传输干扰宏蜂窝基站的UL;(2)SFF基站的下行链路(DL)传输干扰宏蜂窝基站的DL;(3)从用户站至宏蜂窝基站的UL传输干扰SFF基站的上行链路;(4)宏基站的DL传输干扰SFF基站的DL;(5)从用户站至SFF基站的UL传输干扰SFF站的UL;(6)SFF基站的DL传输干扰SFF基站的DL;以及(7)对其它技术系统的干扰和来自其它技术系统的干扰。
避免和缓解技术
图3为示出根据一个实施方案的多变量控制系统的功能元件的一个实例的逻辑框图,所述多变量控制系统用于缓解容量和频谱受限的多址通信网络中各种干扰场景(如上述的那些)的效应。所述系统的功能在图3中示出,其被分成模块以更清楚地示出该控制系统的功能。所述控制系统可在宏蜂窝基站、微微蜂窝基站或毫微微蜂窝基站(如图1、2A和2B所示的宏蜂窝基站110、微微站130和家庭毫微微蜂窝基站240)中实施。或者,各部分可分配至基站控制器(BSC)或核心网络102的其它元件。在一个实施方案中,所述控制系统在图2B所示的基站的MAC层276中实施。
在一个实施方案中,所述控制系统可被配置成在以下方面提供最佳响应:(1)干扰避免和(2)干扰缓解。所述控制系统可通过对RF/RAN参数的最佳控制来避免射频(RF)接口。当无法避免干扰时,或当干扰避免或缓解导致带宽可用性降低时,所述控制系统还可维持包的服务质量(“QoS”)。
根据一个实施方案,所述控制系统可使用各种类型的输入参数。在一个实施方案中,这些输入参数可分成策略参数和环境参数。策略参数模块310可被配置成接收策略参数,并且环境参数模块320可被配置成接收环境参数。策略参数模块310接收的策略参数为(例如)由网络提供商限定的运行要求。这些策略参数可分为两组系统要求:QoS策略和干扰策略。在一个实施方案中,策略参数可包括应用级别的QoS策略、按时间/天的QoS策略、按服务级别协议(SLA)的QoS策略、手动定义的QoS参数或其组合。策略参数还可包括与各种干扰相关参数(如接收信号强度指示(RSSI)、每位能量与噪声功率谱密度之比(Eb/N0)、载波干扰比(C/I)、本底噪声(对所有噪声源和无用信号的总和所产生的信号的度量)或其它干扰相关参数)有关的策略。所述控制系统可使用策略参数来确定动作类型,可采取这些动作以避免干扰,并且在无法避免干扰时缓解干扰。
环境参数模块320接收的环境输入参数包含描述RF网络和系统环境的运行状态的实时信息。该信息可在基站(如图1、2A和2B所示的宏蜂窝基站、微微蜂窝基站或毫微微蜂窝基站)处获得或通过用户站报告,并且还可包括关于相邻小区的信息。环境输入参数320可进一步分成两类输入参数:本地环境参数和远程环境参数。本地环境参数为与实施所述控制系统的基站有关或通过其获得的环境参数。例如,在一个实施方案中,本地环境参数可包括RF和回程毫微微蜂窝基站或微微蜂窝基站端口的1-7层参数。远程环境参数与在基站附近运行的其它小区和/或用户设备有关或通过其获得,所述小区和/或用户设备可对基站的运行环境产生影响。例如,在一个实施方案中,远程环境参数可包括用户设备(UE)、核心网络和由基站界定的其它相邻小区的1-7层参数,所述基站为例如演进型基站(eNB或eNodeB)以及微微站和毫微微蜂窝基站(如演进型家庭基站设备(eHNB或Home eNodeB)(统称为e(H)NB设备))。
由策略参数和环境参数可得到其它组参数,包括控制设定点、实时配置和模式。控制设定点模块315被被配置成从网络提供商的策略参数模块310所接收的策略输入得到控制设定点,或可手动获取。控制设定点包括可用作控制回路目标值的定量参数。这些定量参数可分成QoS参数和干扰参数。QoS参数的一些实例包括基于视频内容的包类型的帧大小和帧速率以及误帧率(FER)。QoS参数的其它一些实例包括语音内容的平均意见得分("MOS")、时延和抖动。QoS参数的其它实例是数据内容的吞吐量和误码率(BER)。干扰相关参数可包括但不限于与各种干扰相关的参数,如接收信号强度指示(RSSI)、每位能量与噪声功率谱密度之比(Eb/N0)、载波干扰比(C/I)和本底噪声(对所有噪声源和无用信号的总和所产生的信号的度量)。所述控制系统的评估模块330可使用控制设定点,以基于RF网络和系统环境的实时配置325来评估通信网络的当前状态,并且确定是否应产生反馈信号来调整网络的运行状态。
实时配置模块325被配置成基于环境参数模块320所接收的环境输入参数来产生通信系统的实时配置。在一个实施方案中,实时配置包括反映通信网络的当前运行状况的定量参数。实时配置可包括与QoS和干扰相关的参数。QoS相关参数的一些实例包括BER、吞吐量、时延/抖动、协议相关参数和应用相关参数。干扰相关参数可包括但不限于与各种干扰相关的参数,如接收信号强度指示(RSSI)、每位能量与噪声功率谱密度之比(Eb/N0)、载波干扰比(C/I)和本底噪声(对所有噪声源和无用信号的总和所产生的信号的度量)。根据一个实施方案,实时配置可包括数据报、电子表格或通信网络的当前运行状况的其它表示。
模式模块335被配置成产生包括一组历史定量参数模式的模式,所述历史定量参数模式可用于产生前馈控制响应。这些模式可得自环境参数模块320接收的环境参数和实时配置模块325产生的实时配置。这些模式可反映网络的使用模式。例如,在一个实施方案中,这些模式可包括与日期和/或时间、特定应用或协议和/或特定UE有关的特定驱动因素。
可通过评估模块330来评估控制设定点模块315产生的控制设定点和实时配置模块325产生的实时配置,以将实时配置中表示的通信网络的当前运行参数与控制设定点进行比较,从而确定网络的当前运行状况是否满足策略参数中包括的运行要求。如果网络的当前运行状况不满足策略参数中设定的要求,则评估模块330可产生指示需调整通信系统的运行参数的反馈信号。
控制响应模块被配置成从评估模块330接收反馈信号。控制响应模块340(在本文中也称为优化模块)被配置成对通信网络的运行参数进行优化,以试图满足运营商策略的要求。控制响应模块340可被配置成基于从评估模块330所接收的反馈信号来产生控制信号。控制信号分为两类:“本地”和“远程”。本地控制信号可应用于基站本身(e(H)NB)以改变基站的运行参数,并且远程控制信号可应用于网络的远程设备或部件(包括UE、核心网络和其它e(H)NB)以改变网络的远程设备或部件的运行参数。
图4为根据一个实施方案的方法的流程图,所述方法可用于使用图3所示的系统对RF网络和系统环境产生前馈和反馈调整。获取更新的环境输入,其表示RF网络和系统环境的当前状态或新的当前状态(步骤410)。环境输入对应于通信系统的环境参数模块320所产生的环境参数。如上所述,环境参数可包含与RF网络和系统环境有关的实时信息,该实时信息得自微微蜂窝基站或毫微微蜂窝基站、用户站以及相邻小区(包括宏蜂窝基站、微微蜂窝基站和毫微微蜂窝基站)。实时配置还得自更新的环境输入(步骤415)。在一个实施方案中,该实时配置对应于实时配置模块325产生的实时配置,并且可由步骤410中获得的环境输入参数产生。
可确定实时配置是否匹配控制设定点模块315所产生的设定点(步骤420)。如上所述,控制设定点包括可用作控制回路目标值的定量参数。控制设定点可得自网络提供商所限定的策略参数。如果实时配置不匹配设定点,则所收集的与RF网络和系统环境有关的实时信息指示网络的运行状态已偏离得自网络提供商的运营商策略的设定点。作为响应,可产生反馈调整控制信号(步骤440)以使通信网络转向符合策略参数的运行状态。
模式模块335可从实时配置和环境输入参数获取模式(步骤425)。在一个实施方案中,这些模式包括一组历史定量参数模式。确定模式是否已改变(步骤430),如果模式已改变,则历史定量参数模式可用于产生前馈控制响应(步骤435),这些前馈控制响应可用于调整可用于使通信网络转向期望状态的各种运行参数。
步骤440中产生的反馈信号和步骤435中产生的前馈信号可用于产生一组控制信号(步骤450),该组控制信号可应用于“本地”e(H)NB和远程设备,包括UE、核心网络和其它e(H)NB。
确定网络提供商是否已改变运营商策略(步骤470)。如果网络运营商已改变策略参数,则控制设定点模块315可从运营商策略产生新的设定点(步骤475),然后返回到步骤410。否则,该方法返回到收集环境输入的步骤410。
输入
SFF基站可具有对各种环境信息的访问权,这些环境信息可用于为控制响应模块340产生反馈和前馈信号。该信息可为环境参数320的一部分,其可用于产生实时配置模块325产生的实时配置和模式模块335产生的模式。该信息可在图4所示的方法的步骤410期间由SFF基站收集。例如,根据一个实施方案,以下环境输入数据通常可用于(感测、报告至等)SFF基站:(1)来自宏BTS的信号强度;(2)来自其它SFF基站的信号强度;(3)对宏基站和SFF基站是否为同信道(或相邻信道)的认知;(4)相邻小区的识别数据;以及(5)宏网络特定信息和系统参数阈值。可用于SFF基站的其它信息的一些实例包括:DL同信道载波RSSI、DL相邻信道载波RSSI、公共导频信道(CPICH)、每码片能量与总噪声功率之比(Ec/No)、接收的总宽带功率(RTWP)、公共陆地移动网络(PLMN)ID、小区ID、本地区域码(LAC)、路由区域码(RAC)、扰码、同信道CPICH接收信号码功率(RSCP)、相邻信道CPICH RSCP、P-CPICH发射功率(Tx Power)、宏蜂窝基站数据率和宏蜂窝基站盲区覆盖率。宏蜂窝基站数据率和宏蜂窝基站盲区覆盖率可考虑各种信息,包括宏站负载、活动SFF基站的数量、SFF基站与宏站的距离、衰落环境和一天中的时刻。SFF基站可具有可用于SFF基站的宏站参数信息,包括目标SNR、测量SNR和接收功率。
调整
以下项目为可通过SFF基站在步骤450中进行调整以响应经由感测接收的环境信息的参数类型的一些实例:(1)DL功率;(2)UL噪声上升目标值(UL调度程序);(3)UL功率;(4)控制信道/数据信道功率比;(5)接收器增益;(6)载波频率;(7)DL扰码;(8)LAC;以及(9)RAC。
其它输入
SFF基站可具有对其它输入信息的访问权。该信息可为环境参数320的一部分,其可用于产生实时配置325和模式335。该信息可在图4所示的方法的步骤410期间由SFF基站收集。例如,其它输入(如实时流量度量)也可用于SFF基站,并且可用于产生实时配置325。例如,实时流量度量,如活动UE的数量、空闲UE的数量、UE移动性和位置变化的指标、总UL使用率、总DL使用率、4-7层配置(语音、视频、网络、FTP等)、回程容量和每连接BER。每连接BER数据可在混合自动重传请求(HARQ)或其它重试机制之前获得或在HARQ或其它重试机制之后获得。在一些实施方案中,每连接BER可不经HARQ获得。在一些实施方案中,每连接BER数据可包括对重试的统计。
历史模式数据(如模式335)也可用于SFF基站,如一天中的时刻数据、一周中的哪一天数据、当地节日数据、进入网络的已知/未知UE、典型使用率和典型使用时间。该历史数据可用于产生模式335,其可用于产生前馈控制信号,如上所述。
策略输入数据也可用于SFF基站,如QoS要求数据、优先级数据、包检测数据和高级天线输入。该策略信息可为上述运营商策略数据310的一部分。QoS要求数据可包括延迟容限数据、抖动容限数据、BER/PER容限数据、最小接收率数据和/或其它QoS相关数据。优先级输入数据可包括与用户之间、服务类别之间、连接之间和/或来自同类服务的包之间的优先级有关的数据。包检测数据和高级天线输入数据也可用于SFF基站。
附加参数调整
可在步骤450中调整附加参数,以试图改正超额预订。在一个实施方案中,RAN/RF参数(如调制和编码、子信道化、帧内时间、子信道和跳时、多输入多输出(MIMO)参数以及波束形成)可用于改正通信系统的超额预订。在另一个实施方案中,可使用流量监管(trafficpolicing)来改正超额预订。可使用各种类型的流量监管,包括速率限制、包分块、丢包和/或智能丢弃。以下描述了可用于改正超额预订的各种智能丢弃技术。
优化性能
根据一个实施方案,所述系统和方法包括优化模块(在本文中也称为“优化模块”),该优化模块通过基于QoS、优先级和策略而改变扩展的RAN/RF参数来优化性能。根据一个实施方案,优化模块可在包括宏蜂窝基站、微微蜂窝基站或毫微微蜂窝基站在内的基站中实施。
在一个实施方案中,优化模块被配置成确定每种服务类别(CoS)或连接的BER/PER或其它质量度量级别。在一个实施方案中,可基于已知/未知用户设备将质量度量优先化,其中已知用户设备可优先于未知用户设备。用户设备可包括移动、临时和固定用户站。在另一个实施方案中,可基于特定的UE身份将质量度量优先化,并且在又一个实施方案中,可基于应用将质量度量优先化。
根据一个实施方案,优化模块被配置成确定每种服务类别或连接所需要/期望的吞吐量。可基于UE是已知还是未知、基于特定的UE身份或基于特定应用来任选地修改所需要/期望的吞吐量。
根据一个实施方案,优化模块被配置成使用基于标准的方法来获取基线干扰场景和基线RAN/RF参数。
根据一个实施方案,基线干扰场景和基线RAN/RF参数可随着通信网络中的状况变化而实时变化。例如,一些变化的状况包括活动/不活动UE的数量、相邻小区的流量和UE位置变化的指标,如往返延迟、RSSI和经由接收波束形成进行跟踪。
根据一个实施方案,优化模块可使实际场景和实际RAN/RF参数随着状况变化而实时变化。例如,在一个实施方案中,如果服务的BER或质量度量降低至低于阈值,则可将服务所需的物理参数设置为比基线值更稳健的值。例如,可改变MIMO并且可应用波束形成高级天线技术。此外,可改变调制和编码来提高稳健性。或者,可确定是否超出基线干扰场景和/或RAN/RF参数。例如,可基于感测数据、来自中央控制器的许可/与中央控制器的协议、来自相邻BTS的许可/与相邻BTS的协议进行确定,或使用空间多路复用(波束形成等)来使干扰最小化。或者,可选择帧中的子信道和时间定位(例如正交频分多路复用(OFDM)符号、时隙等)来避免常规干扰。或者,可随机选择帧中的子信道和时间定位,以在统计学上避免干扰或选择性地增加可能导致的干扰,但通过使影响随机化来缓解。
在一个实施方案中,如果需求超出新的最大总吞吐量(DL或UL,包括用于管理活动和空闲UE的带宽),则优化模块可采取缓解超额预订的措施。在一个实施方案中,可将延迟容限流量延迟,以暂时降低需求。例如,一种方法包括延迟和缓冲诸如直播视频的内容。可延迟和缓冲直播视频,前提是延迟(抖动)变化保持在延迟/抖动缓冲器的容量/时间限制范围内。在另一个实施方案中,“下载备用”内容的实质延迟用于降低对网络的需求。例如,在一个实施方案中,对于在接收时不使用的音乐和/或视频内容(例如非流式内容),可暂时延迟该内容的下载,直至对网络的需求降低时。
在另一个实施方案中,如果需求超出新的最大总吞吐量,则优化模块可选择性丢弃服务内的帧,以降低对网络的需求。例如,一些活动图像专家组(MPEG)帧的重要性低于其它帧,并且可被选择性丢弃,以降低对通信系统的需求。在另一个实例中,可丢弃具有超过最低服务可接受速率的包,以降低需求。
在另一个实施方案中,如果需求超出新的最大总吞吐量,则可使用呼叫接纳控制(CAC)来削减服务。在一些实施方案中,可基于优先级来削减服务,而在一些实施方案中,可基于应用来削减服务。
根据一个实施方案,需求超出新的最大总吞吐量时所采取的各种缓解动作可在状况改善时逆转。例如,在一个实施方案中,滞后可用于使反应平稳。
图5为示出根据一个实施方案的方法的流程图,所述方法可通过上述优化模块来实施,以通过基于QoS、优先级和策略而改变扩展的RAN/RF参数来优化性能。在一个实施方案中,图5所示的方法可通过图3所示的控制系统(例如,在MAC和PHY段中)来实施。在一个实施方案中,图5的方法可在图4的步骤450中实施。
该方法始于步骤501,其中该方法并行确定系统的RAN/RF方面(步骤510、512和514)以及系统的QoS和流量管理方面(步骤520、522、524和526)。
在步骤510中,获取并监测基线干扰场景,并且形成RAF/RF参数设定值的基线。在一个实施方案中,用于获取基线干扰场景的输入可包括诸如在3GPP TS 25.967中提出的那些典型输入,以及本文所提出的其它输入,或两者。调整的RAN/RF参数可包括诸如在3GPPTS 25.967中提出的那些典型输入,以及本文所提出的其它RAN/RF参数,或其组合。在一个实施方案中,步骤510可通过评估模块330来进行。
在步骤512中,实时确定影响干扰场景和RAN/RF参数的任何因素是否已改变,所述RAN/RF参数表示RF网络与系统环境的当前状态。如果这些因素未改变,则该并行活动继续进行,该方法进行到步骤530。如果这些因素已改变,则该方法进行到步骤514,这时修改基线干扰和RAN/RF参数以说明观察到的变化,并且该方法进行到决策步骤530。在一个实施方案中,步骤512可通过评估模块330来进行,并且步骤514可通过控制响应模块340来进行。
管理对服务类别和个体连接的影响并且反过来管理个体服务及其相关服务类别对接口环境的影响的过程可与步骤510并行开始。在步骤520中,确定每种服务类别或者每个个体服务或连接的最大或目标误码率(BER)或误包率(PER)(或其它质量度量)。可监测每个个体服务或连接的实际BER、PER或其它质量度量。可基于网络提供商提供的运营商策略信息310来确定最大或目标BER和PER值。另外,在步骤520中,还可确定服务的吞吐量需求或目标。这些吞吐量目标可具有多个级别,这些级别与需要不同吞吐量级别的多个QoS级别相对应。基于对通信协议各层上所使用的应用或传输机制的认知,吞吐量目标还可考虑预期的重传。在一个实施方案中,步骤520可通过控制设定点模块315来进行。
在步骤522中,确定实际误差率(如BER或PER)或其它实际质量度量是否超出步骤510中确定的连接的目标阈值。如果BER或其它质量度量超出连接的阈值,则该方法进行到决策步骤524,以开始采取纠正措施的过程。否则,如果质量度量不次于目标,则该方法进行到决策步骤530。在一个实施方案中,步骤522可通过评估模块330来进行。
在步骤524中,确定以可超出基线干扰场景和基线RAN/RF参数的方式进行操作对于受影响的服务提供商是否可接受,在这种方式下操作可能对在相邻小区中活动的服务造成更大的干扰。例如,传输功率的暂时略增(例如0.5dB)可使得对相邻小区中服务的干扰可容许性增加。如果对于受影响的服务提供商以可超出基线干扰场景和基线RAN/RF参数的方式进行操作是可接受的,则该方法进行到步骤514,这时可暂时调整基线干扰场景和RAN/RF参数,以适应对改善的服务QoS的需要。根据一个实施方案,可能仅允许对受影响的服务或连接进行该调整,或者可允许对小区总体上进行该调整。在一个实施方案中,步骤524可通过评估模块330和/或控制响应模块340来进行。
如果在决策步骤524中,确定不能超出基线干扰场景,则该方法进行到步骤526,这时修改服务的传输参数,以实现目标BER/PER或质量度量,而不会违反当前基线干扰场景。在一个实施方案中,这可包括改变调制和编码、发射功率或任何其它可调整的传输参数。在一个实施方案中,步骤526可通过控制响应模块340来进行。
根据一个实施方案,调整参数时,存在满足需求的带宽要求可能超出小区的当前可用总吞吐量的可能性。从而,该方法的两条并行路径进行到决策步骤530,这时确定需求是否超出当前可用总吞吐量。如果未超出小区的当前可用总吞吐量,则该方法返回到步骤501并可继续重复。否则,该方法继续到步骤540,然后继续到步骤501,以重复进行。在步骤540中,选择并应用缓解超额预订的方法。以下描述了用于缓解超额预订的若干方法。在一个实施方案中,步骤530和540可通过控制响应模块340来进行。
根据一个实施方案,图5所示的方法可包括例如在频分双工(FDD)系统中独立运行的上行链路例子和下行链路例子。反之,在其它实施方案中,在时分双工(TDD)系统中上行链路和下行链路例子可能需要共享信息,其中上行链路和下行链路具有相同的频率,并因此可能在某些情况下造成干扰。对于动态调整上行链路/下行链路比率的TDD系统,情况可能尤其如此。
根据一个实施方案,优化模块也可实施另一种方法,该方法基于历史数据来优化性能,以进行预期调整来减少潜在的超额预订。根据一个实施方案,优化模块可实施该第二种方法,该方法可用于更新运营商策略310。干扰历史可通过感测和/或通过使用从其它网络元件(例如核心网络、BTS、UE)接收的共享度量来构建。可按日期和/或时间对干扰数据进行分组,以便为各个时间帧构建干扰模式图。例如,可按一天中的时刻、一周中哪一天或通过将数据标记为节日或非节日来对干扰数据进行分组。感测和/或共享度量还可包括SFF基站自身的小区和/或相邻小区的流量度量。这还可包括“随着内存变小而更新”,其中采用加权平均、指数平均或一些其它方法来为较新的数据赋予更高的重要性。
可基于已构建的干扰历史来做出优先决策。例如,可确定更严格或更宽松的CAC、策略和/或功率控制是否可能有助于降低超额预订的可能性。在一个实施方案中,可确定是否以可能的稳健性换取BER/PER。
根据一个实施方案,如果意料之外的使用模式妨碍第二种方法中描述的预测干扰方法,则可使用基于上述和图5所示的第一种方法的实时监测。在一个实施方案中,可将预测数据用于基线场景,并且可将第一种方法用于对系统进行实时优化。在另一个实施方案中,可将使用第二种方法产生的预测数据用于更新运营商策略310,并且可将第一种方法用于应用更新的策略。
智能丢弃
参见图5,可将智能丢弃用作方法步骤540的技术之一,以缓解由在步骤526中修改传输参数或在步骤514中改变干扰场景和RAN/RF参数导致的超额预订。这是智能丢弃的被动形式。或者,可使用可用智能丢弃技术的知识来影响步骤520中的吞吐量级别目标、步骤526中的传输参数修改以及步骤514中干扰场景和RAN/RF参数的变化。这是智能丢弃的交互形式。通过使用其它系统信息来预测未来的带宽超额预订,可进一步使该交互形式变为主动。
根据一个实施方案,智能丢弃可通过通信网络中进行调度的任何实体来实施。这可包括通过任何形式的基站(包括宏蜂窝基站、微微蜂窝基站、企业毫微微蜂窝基站、家庭毫微微蜂窝基站、中继基站)来调度下行链路带宽,或者任何其它形式的调度。智能丢弃可通过沿上行链路方向传输的任何形式的设备(包括固定和移动用户设备以及中继设备)来进行。在一个实施方案中,智能丢弃可通过在集中指导设备动作的核心网络中实施的调度算法或模块来进行。在另一个实施方案中,智能丢弃还可通过实体(如基站)来预测性地进行,所述实体分配上行链路带宽以供另一个实体(如能够进行智能丢弃的用户设备)使用。基站和用户设备可协商用户设备是否具有智能丢弃能力,或这可基于用户设备的型号识别而得知。根据一个实施方案,该方法可被称为协同智能丢弃,其中分配带宽以供能够进行智能丢弃的网络中的另一个实体使用的实体(如基站)可与该另一个实体(如用户设备)协调。
被动智能丢弃
在图5的步骤530中,确定带宽的应用层吞吐量需求目前是否超出可用总吞吐量或者特定会话或连接是否超出其分配的吞吐量。例如,在步骤520中,可确定由所述基站提供服务的活动连接的吞吐量级别目标。这些目标级别可用诸如每秒位数或每秒字节数之类的定量术语来表示。在一个实施方案中,这些目标级别可包括重传余量。基于步骤526中选择的传输参数以及步骤510和514中选择的RAN/RF参数,可将吞吐量级别转换为所需的物理层资源,如3GPP LTE中使用的资源块、QAM符号、OFDM符号、子信道、UL/DL比率或其组合。所需的物理层资源可包括HARQ或其它重传余量。一旦将吞吐量级别目标或需求转换为物理层资源,则可将其与步骤530中指出的可用物理层资源进行比较。该比较可得到表明物理资源需求目前超出可用物理资源的结果。在这种情况下,需要降低物理资源需求,以便不超出可用物理资源。这又确定了需要降低会话、连接和/或应用的当前带宽需求。
根据一个替代实施方案,可使用其它方法来确定物理资源需求是否超出可用物理资源,这些可用物理资源可提供可用于被动智能丢弃的可用吞吐量度量。
一旦确定应用层吞吐量需求超出可用物理资源,则可在步骤540中采用智能丢弃,以降低需求,同时使削减个体服务的需要最小化,并使最终用户感知的质量达到最高。
例如,如果VoIP服务的资源需求超出可用物理资源的10%,则随机(非智能)丢弃可导致连续或接近连续的VoIP包被丢弃。相比之下,被动智能丢弃可识别可丢弃的包数量,以便降低超额带宽需求中的至少一部分,同时维持呼叫的感知质量。例如,在一个实施方案中,在智能丢弃系统中,调度程序278(见图2B)可每隔九个包丢弃一个包。这可包括已由该调度程序排队的包或正在排队的包,或两者。对于最终用户而言,通过智能丢弃方法使丢弃的包均匀分布可能没有通过随机丢弃算法将成组的包丢弃明显。根据一个实施方案,可使用其它模式来选择要丢弃的包,前提是所选模式可使丢弃的连续和接近连续的包的数量最小化。
根据一个实施方案,丢弃方法还可根据正使用的具体语音协议和编解码器来调整。智能丢弃可使得呼叫以可接受的质量继续进行,所述可接受的质量由质量得分确定并与运营商、系统或本地策略进行比较。
在另一个实例中,在MPEG-2传输中,音频包比视频包更为重要,因为在MPEG-2传输中,相比于视频质量的变化,人们更易于注意到音频质量的变化。另外,视频包由帧内编码帧(“I帧”)、预测编码帧(“P帧”)以及双向预测编码帧(“B帧”)构成。丢失I帧通常比丢失P帧或B帧更不利于MPEG-2传输的质量。事实上,即使正确接收P帧,丢失I帧可导致接收设备不能使用P帧。因此,在MPEG-2中,智能丢弃可能会优先丢弃P帧和B帧(相比于I帧),并且可能会优先丢弃所有形式的视频帧(相比于音频帧)。
对于MPEG-4传输,除了得自MPEG-2的帧之间的区别外,根据视频应用还存在11级空域分级、3级时域分级以及可变数量级的质量分级。细粒度分级将这些组成11级分级。在一个实施方案中,可使包“标记”上信息,并且智能丢弃可使用这些标记以在可用物理资源变化时允许细粒度的质量变化。
如同VoIP实例一样,在MPEG实例中,智能丢弃可丢弃已排队的包,并且可在进入调度队列时进行丢弃。对一定百分比的包进行的智能丢弃可使得系统的呼叫接纳控制(CAC)方法可维持和接受更多服务。
在步骤540中,可能存在不止一种可使智能丢弃应用于满足物理层资源限制的服务选择。可使用许多标准来选择应用智能丢弃的服务。例如,智能丢弃可以循环方式应用,这将程度类似地影响所有服务或者所选服务类别或组内的所有服务。可基于最终用户的身份或最终用户在某个群组中的成员资格来应用智能丢弃。例如,对于与网络运营商的不同服务等级协议,不同的用户的付款会或多或少。具有较低等级协议的用户可能比具有较高等级协议的用户先受到影响。漫游自另一个网络的用户可能比直接预订网络的用户先受到智能丢弃的影响。决策可基于服务类型或应用。例如,经由第三方应用(如Skype)进行的VoIP呼叫可能比经由运营商直接提供的VoIP服务进行的VoIP呼叫先受到影响。可在算法上确定将受影响的服务,以使总吞吐量最大化。关于如何应用智能丢弃的决策基于系统、运营商或自主策略。例如,设备可具有可被系统或运营商策略修改或覆盖的默认策略。
关于将受影响的服务的决策可基于相对下降,首先影响(例如)观察到的质量受智能丢弃影响最小的那些服务(不论丢弃的数据的相对量如何)。为此,步骤540可计算针对各种服务的每个可能的吞吐量级别的得分。这些得分表示针对每个吞吐量级别观察到的质量的相对级别。这些得分可基于主观标准,如用于为语音质量打分的MOS得分,或者可为定量的,例如从服务中消除某个特征。可将得分用于步骤540中,以作为确定将应用智能丢弃的服务及其应用程度的一部分。例如,一旦确定针对需要带宽的服务的一组可能的吞吐量级别的一组得分,则可基于针对各种吞吐量级别计算的该组得分来选择一个或多个服务的目标带宽级别,并且可选择性丢弃与每个服务相关的包,以将与每个服务相关的吞吐量降低至与该服务相关的目标吞吐量级别。
被动智能丢弃可在可对关于包的传输或处置做出选择的系统的任何部分中进行。例如,在一个实施方案中,基站、微微站、毫微微站或中继站可包括用于发送和接收包的收发器。根据一个优选实施方案,这些站可包括负责上行链路和/或下行链路上的带宽分配的MAC层276(见图2B)。MAC层优选地可包含调度程序(例如图2B中的调度程序278)和用于在传输之前存储包的缓冲器,或者可与其相关。在一个实施方案中,本文所公开的智能丢弃技术可在负责缓冲和调度包传输的MAC层部分(其在本文中也称为调度程序)中实施。或者,MAC调度程序的等效物可位于进行集中式调度并可能进行缓冲的核心网络元件中。例如,在一个实施方案中,可实施MAC调度程序的等效物,以在两个或更多个基站或者其它类似设备上协调数据(如广播视频或音频)的同时传输。
在一个实施方案中,智能丢弃技术也可在用户设备的MAC调度程序中实施,该调度程序在在上行链路中传输之前调度和缓冲数据。根据一个实施方案,核心网络或基站(或等效设备)可被配置成在缓冲之前标记包,以便于在下行链路方向做出更容易的丢弃决策。或者,在用户设备缓冲包以供上行链路传输之前的功能可标记包,以便用户设备中的MAC调度程序功能做出更容易的丢弃决策。
交互智能丢弃
除了上述被动智能丢弃之外,智能丢弃方法还可与系统控制的其它方面进行交互,以获得改善的性能。例如,现参见图5,在一个实施方案中,改变特定RAN/RF网络运行参数(例如,降低步骤510中的最大发射功率)可通过减少相邻小区的观察到的干扰而有利于这些小区。
或者,在步骤526中选择更稳健的调制方案也可具有类似效果。在典型系统中,这些变化由于导致可用物理资源减少而使应用层吞吐量需求超出可用带宽,从而可能不是令人期望的。相比之下,在采用交互智能丢弃的系统中,在步骤520中,可计算活动服务的一组吞吐量级别。当考虑步骤526的可能的传输参数选择和步骤510的可能的RAN/RF参数时,该组吞吐量级别表示较大范围的物理资源需求。对质量等级、传输和RAN/RF参数的这些可能组合的认知使得步骤510和526中的系统可选择以一个或多个服务的少量质量为代价而可以暂时或永久性地显著增加系统稳健性的参数。
交互智能丢弃的替代实施方式
图6A为图5所示的方法的改进形式的流程图,该改进形式能够使网络操作的其它方面(如干扰缓解和功率控制)利用智能丢弃来进一步优化系统性能。在步骤620中,不是为服务或连接形成单一质量(例如BER或PER)和吞吐量级别(如图5的步骤520中),而是可形成一组吞吐量级别和/或定量质量阈值(例如BER和PER)范围(605)。可将得分应用于每个吞吐量级别。该得分表示针对每个吞吐量级别的观察到的质量的相对级别。根据一个实施方案,可将得分应用于每个吞吐量级别,以指示针对每个吞吐量级别的观察到的质量的相对级别。这些得分可基于主观标准,如用于为语音质量打分的MOS得分,或者这些得分可为定量的,例如从服务中消除某个特征。可将得分用于步骤640中,以作为确定将应用智能丢弃的服务器及其应用程度的一部分。
步骤610、决策步骤612和改进的步骤614可使用以数据块605为例说明的该组吞吐量级别和得分,以在服务质量和其它系统运行因素之间进行交换。其它步骤(如步骤626)也可使用该组吞吐量级别和得分来优化性能选择。例如,认识到个体服务的性能下降相对于对相邻小区造成的干扰的减少而言是很小的,则基于吞吐量级别和得分,方法在步骤610中可选择应用更稳健的调制和较低的功率(服务的基线参数)。事实上,RAN/RF参数的改变可为对来自相邻小区的干扰减少请求或来自网络管理实体或其它中央控制功能的干扰减少或本底噪声降低命令或请求的反应,或者为降低功率、干扰电位或网络操作的某个其它方面的自主决策。这样,步骤610和类似功能可评估由潜在替代动作导致的吞吐量影响所隐含的质量影响,这些潜在替代动作可应用于此前独立于选择适当RAN/RF参数的任务。
在一个优选实施方案中,交互智能丢弃方法在传输之前通过实施交互智能丢弃的站收发器、用户设备或网络功能在MAC层调度程序(例如图2B中的调度程序278)和包缓冲能力的等效物中实施丢弃功能。多组质量阈值、吞吐量级别和得分可通过可在核心网络、基站(宏蜂窝基站、微微蜂窝基站或毫微微蜂窝基站)或用户设备中实施的功能来获得,并且为与MAC层中的缓冲和调度进行交互的交互智能丢弃功能提供信息,以进行智能丢弃。交互智能丢弃功能也可与监测RF环境的物理层功能进行交互,并且与核心网络功能或其它基站或网络元件上的功能进行交互,以交换关于相邻小区的RF环境的信息。交互智能丢弃内的网络面向功能可向核心网络功能或相邻设备上的交互智能丢弃功能提供关于服务、用户设备和RF环境的信息。交互智能丢弃方法可向调整RAN/RF参数以传输某些信息包的RF或物理层(PHY)控制模块提供信息。
主动智能丢弃
根据一个实施方案,主动智能丢弃为用于在预期会出现超额预订状况时预测性地进行智能丢弃并且在实际出现这些超额预订状况之前进行丢弃的技术。当网络带宽的预期需求超出预期可用带宽时,可使用主动智能丢弃来降低预期需求。
可被动应用主动智能丢弃。例如,移交的期望引起对更稳健的调制的期望,并因此在移动站靠近小区边缘时引起对每物理层资源单位的更低吞吐量的期望。主动智能丢弃可用于在发生实际事件之前进行丢弃,从而使得移交更平稳,同时使数据丢弃可控,而非由于拥塞导致的数据随机丢失。
可交互应用主动智能丢弃。例如,可通过历史数据得知对相邻小区的干扰或来自相邻小区的干扰在一天的某个时间(每日上下班等)增加。在主动智能丢弃中,步骤612可确定影响RAN/RF参数的因素将发生变化,并且在步骤614中,可基于需要该变化以及步骤620形成的该组吞吐量级别和得分的假设来修改RAN/RF参数,以便主动修改系统参数,以使得智能丢弃可基于关于质量和吞吐量的系统策略来维持最佳吞吐量和质量。
主动智能丢弃可基于多种刺激或触发事件来进行。可用于触发主动智能丢弃执行的刺激或触发事件的类型的一些实例包括:
(1)运动-如果确定设备不固定或超出某个速度阈值,则主动智能丢弃可基于对运动导致的物理参数变化(影响吞吐量可用性)的预期来预期进行智能丢弃的需要。
(2)移交的预期-如果确定移交的可能性超出某个阈值度量,则智能丢弃可以可控的方式主动丢弃数据,以便使预测的资源减少的质量影响最小化。
(3)一天中的时刻、一周中哪一天或其它历史模式-历史数据可表明可预期在可预测时间点的资源减少。主动智能丢弃可使系统做好准备,以便平稳过渡到更少的资源。
(4)小区中的活动/不活动用户设备-小区中的用户设备的数量可用于预测可使被动智能丢弃采取行动的需求波动。
(5)后备资源-主动智能丢弃可通过主动进行智能丢弃以储备资源用于其它功能(如在应用智能丢弃时可能能够为更多活动呼叫提供服务的呼叫接纳控制)而有助于维持服务质量。
(6)相邻小区的变化-关于相邻小区的数量和配置变化的信息包括但不限于:相邻小区的数量、相邻小区的位置、小区运营商、操作频率和带宽、活动/空闲UE的数量、RF/RAN参数。
另外,主动智能丢弃可提供从一种丢弃级别向另一种丢弃级别的更平稳过渡,从而使对服务质量参数(如抖动和单个包延迟)的影响最小化。
在一个实施方案中,主动智能丢弃也可用于在需要丢弃之前进行丢弃的实施方式中,从而在预期将缺乏资源时应用较低的吞吐量。在一个替代实施方案中,主动智能丢弃可用于以下实施方式:其中标记在预期的资源缺乏期间要丢弃的包以进行快速丢弃,但仅在实际发生预期的资源缺乏时进行丢弃。
在一个实施方案中,智能丢弃也可起到反作用:在实施容量限制之前将包加速传输至信道中。这可避免未来的短期资源限制。
用于建立用于主动实施智能丢弃的模式或历史的历史数据或其它数据可来自各种来源。例如,RF模块可收集关于物理环境的信息。在另一个实例中,MAC层可收集关于包需求和吞吐量以及活动或不活动用户设备和服务的数量的信息。在一个实施方案中,可在设备上对该信息进行本地处理,以将输入转换成历史趋势,或在一个替代实施方案中,可将该信息转发至核心网络或任何其它处理器中的功能,以转换成历史趋势和模式。例如在主动应用交互智能丢弃的情况下,这些历史趋势和模式可由设备本地使用或可在设备之间共享。
在以下段落中,描述了与丢弃包有关的各种附加实施方案。一些实施方案参照特定标准进行描述。然而,应认识到,本文所述的实施方案可应用于其它系统和标准。还应认识到,下述智能丢弃的实施方案可通过使用上述系统和方法(包括被动智能丢弃、主动智能丢弃和交互智能丢弃)来实施。例如,下述实施方案可结合以上参照图4-6描述的智能丢弃的实施方案一起使用。另外,下述实施方案可通过使用上述系统(如参照图1-3描述的系统)的实施方案来实施。
具体地讲,根据下述实施方案中的一个或多个丢弃包可在通信系统中进行调度的任何实体内实施。这包括通过任何形式的基站(包括宏蜂窝基站(macro cell)、微微蜂窝基站(Pico cell)、企业毫微微蜂窝基站(enterprise Femtocell)、家庭毫微微蜂窝基站(residential Femtocell)、中继基站或任何其它形式的基站)来调度下行链路带宽。在另一个实施方案中,根据下述实施方案中的一个或多个丢弃包可通过沿上行链路方向传输的任何形式的设备(包括固定和移动用户设备以及中继设备)来进行。根据另一个实施方案,根据下述实施方案中的一个或多个丢弃包可通过设在集中指导设备动作或调度多个最终用户设备所共用的服务(如多播或广播视频服务)的核心网络中的调度算法或模块来进行。
根据另一个实施方案,根据下述实施方案中的一个或多个丢弃包可通过分配上行链路带宽以供另一个实体(如用户设备)使用的实体(如基站)来预测性地进行。根据本文所述实施方案中的一个或多个,基站和用户设备可协商用户设备是否能够丢弃包,或在一些实施方案中,可根据用户设备的模式识别来确定用户设备是否具有智能丢弃能力。
根据另一个实施方案,下述包的优先化可在一个设备(如进行深度包检测的设备)中进行,并且可导致对包进行标记,其中此标记被另一个设备(如进行智能丢弃的无线基站)使用。
图6B示出了具有三个主要模块(即视频编码器6110、传输系统6120和视频解码器6130)的端到端网络视频应用。在一个实施方案中,传输系统6120包括通信网络100的设备(图1),通信网络100包括图3所示的控制系统。
图7A为图3的控制响应模块340的一个实施方案的功能框图。如上所述,在一个实施方案中,如果需求超出网络的最大总吞吐量,则控制响应模块340可通过选择性丢弃服务内的帧以降低对网络的需求来响应。在图7A的实施方案中,控制响应模块340包括优先级/负荷确定模块744(“确定模块”)和帧/片选择模块746(“选择模块”)。如下文更详细地描述,选择待丢弃的帧或片可对所得视频中的视觉体验的质量具有显著影响。在一个实施方案中,确定模块744确定表示该帧与其它帧相比的相对重要性的值,例如负荷或优先级。然后,选择模块746基于该确定值选择一个或多个进行丢弃。以下更详细地描述了确定模块744和选择模块746的操作。
基于视频质量测量的智能丢弃
图7B示出了优先级/负荷确定模块744的一个实施方案。在该实施方案中,确定模块744包括视频质量测量模块7110和包优先级分配模块7120。输入包7130为实施控制响应模块340的设备所接收的包。输出包7140为该设备在智能丢弃之后输出的包。在一些实施方案中,视频质量测量模块7110接收丢弃的包的标识符,而非输出包7140的标识符。视频质量测量模块7110根据客观视频质量测量来计算视频包对总体视频质量的贡献。包优先级分配模块7120根据来自视频质量测量模块7110的输出来分配视频包的优先级。如果一个包对总体视频质量的贡献大于另一个包,则将较高优先级分配给该包。
可主观或客观测量视频质量。主观视频质量测量根据人的观察来产生视频平均意见得分(VMOS),其可包括多个得分或得分平均值。人通常为视频的最终消费者,因此人对视频质量的意见是极其重要的。然而,主观视频质量测量因为人的参与而成本高昂,并且结果通常不可精确重现。更重要的是,不能将主观视频质量测量并入到系统中,以在运行期做出智能丢弃的自动化决策。与主观视频质量测量相比,客观视频质量测量依赖于数学计算来评价视频质量。由客观视频质量测量产生的结果可与得自主观测量的结果相关。在本说明书中,VMOS可指得自主观或客观视频质量测量的结果。
客观视频质量测量算法可分成三类,即全参考、部分参考和无参考客观视频质量测量。这些类别之间的主要区别在于有多少关于参考视频的信息可用并且用于客观测量中。参考视频是指未被测试系统改变的视频。例如,如果需要测量图6B的端到端系统(从向视频编码器6110的输入到视频解码器6130的输出)的性能,则参考视频为输入到视频编码器6110的原始视频,并且要评估的视频为来自视频解码器6130的经处理的视频输出。
全参考视频质量测量算法测量存在全参考视频时经处理的视频的质量。全参考视频质量测量算法的实例包括PSNR(峰值信噪比)和更复杂的算法,如在ITU.T J.247(“存在全参考时的客观感知多媒体视频质量测量”)中标准化的那些。如果采用全参考客观质量测量算法,则除了与测试中的视频相对应的包(称为测试视频输入包)之外,输入包7130还包括与参考视频相对应的包(称为参考视频输入包)。参考视频输入包被用作视频质量测量模块7110中的信息,并且不作为输出包7140的一部分经由通信链路来传输。
部分参考视频质量测量算法采用从参考视频而非全参考视频中提取的辅助信息来评价经处理的视频的质量。辅助信息通常需要更少的带宽进行传送,因此其可能比全参考视频更易于得到。部分参考视频质量测量算法的实例包括在ITU.T J.246(“存在压缩带宽参考时经由有线电视网的多媒体服务的感知视频质量测量技术”)中标准化的那些。如果采用部分参考质量测量算法,则除了与测试视频输入包相对应的包之外,输入包7130还包括参考视频输入包,其包含从参考视频中提取的信息。参考视频输入包被用作视频质量测量模块7110中的信息,并且不作为输出包7140的一部分经由通信链路传输。采用部分参考视频客观质量测量的系统中使用的参考视频包的数据量远小于采用全参考视频质量测量的系统中使用的参考视频输入包的数据量。这减少了(例如)经由回程线路(例如图1和2A中的标准回程线路170或图2A中的宽带连接260)的流量。
无参考视频质量测量算法测量在无任何来自参考视频的信息的情况下的经处理的视频的质量。无参考视频质量测量算法的一个实例基于包有效负载中帧的类型以及丢弃的数据量来测量包丢弃之后的视频的质量。以下章节更详细地描述了此类算法的一些实例。
视频质量测量模块7110测量基于输出包7140的质量,输出包7140为设备在智能丢弃后输出的包,还基于测试视频输入视频包以及参考视频输入包(如果采用全参考或部分参考视频质量测量算法的话)。丢包对视频质量的影响取决于输出包7140。例如,如果包含参考帧的包“A”已被丢弃,则包含由该参考帧预测的帧的包“B”与未丢弃包“A”的情况相比将具有不同优先级。
在本发明的各个实施方案中,视频质量测量模块7110可实施全参考、部分参考或无参考客观质量测量算法。另外,在一些实施方案中,视频质量测量模块7110可实施多种类型的算法。例如,部分参考客观质量测量算法可用于一个视频流,而无参考客观质量测量算法可用于另一个视频流。
智能丢弃优先化
如上文部分地讨论的,在MPEG-2、MPEG-4和H.264-AVC(MPEG-4第10部分)中,视频流被编码成不同类型的帧:帧内编码帧或I帧(有时称为帧内帧)、预测编码帧或P帧以及双向预测编码帧或B帧。帧表示以查看设备的帧速率显示在观察屏上的内容。例如,美国采用的NTSC标准以29.97帧/秒的速率操作。这些帧由宏块构成。宏块对应于帧的16x16像素区域。
不同帧类型具有不同依赖关系,其可影响视频信号中的误差传播。将I帧编码使得其不依赖于任何其它帧。这使I帧通常包含最大数据量。P帧基于I帧或P帧进行编码。这允许主要对当前P帧与其依赖的I或P帧之间的差异进行编码。这又使得P帧通常包含比I帧更少的数据,即这些P帧较小且消耗较少的带宽以进行传输。然而,P帧所依赖的帧中的误差将传播误差到P帧的解码中(即使其不含接收误差)。B帧既依赖于前一个I或P帧也依赖于后一个I或P帧。这种双重依赖关系使得B帧通常包含比I帧或P帧更少的数据,但促进误差传播。I帧和P帧通常被称为参照帧或参考帧。
这些依赖关系在宏块级实现。I帧仅包含在不依赖于其它帧中的宏块的情况下编码的I宏块。P帧可包含I宏块或P宏块,或两者。P宏块基于前一个(或下一个)I帧或P帧进行编码。B帧可包含I、P或B宏块或任何组合。B宏块基于前一个和后一个I或P帧进行双向编码。
I帧、P帧和B帧的模式以及相关解码依赖关系是指图像组(GOP)或预测结构。如后文所述,可采用预测GOP和相对误差传播或携带帧或部分帧的潜力的信息的能力或对其的认知,以建立考虑了丢弃赋予服务且相对于其它服务的该服务质量下降的包丢弃规则。
此外,H.264-AVC增加了与多参考预测结构的可容许依赖关系,使得一个P帧可依赖于多个I或P帧。这也增加了使得B帧依赖于其它B帧而非仅依赖于I和P帧的分级预测结构。以下描述了涉及基线实施方式和增加的实施方案。
H.264不同于较早的标准(如MPEG-2),因为其解除了是否将图像用作参考图像(在NAL单元标题中的nal_ref_idc中信号发送)与如何编码该图像(片标题中的slice_type)之间的关系。除了分级预测结构之外,此设计还提供了更大的灵活性。
H.264位流结构以两个不同层(即视频编码层(VCL)和网络抽象层(NAL))进行概念性指定。VCL被指定以有效地表示视频数据的内容,而NAL提供了对VCL数据和解码VCL数据中所需的辅助数据的网络友好封装。NAL单元可分成VCLNAL单元和非VCLNAL单元。VCL NAL单元包括编码片NAL单元和编码片数据分区NAL单元。其它NAL单元为非VCL NAL单元,如序列参数集(SPS)和图像参数集(PPS),其界定了编码片中涉及的序列级和图像级参数。
需要注意,H.264将图像定义为隔行视频中帧或字段的统称,因为可分别编码隔行帧的两个字段。还应注意,H.264将每个图像编码成一个片或多个片。每个片均具有其自己的片标题,片标题包括语法元素片类型,以指示该片是除了其它片类型以外的I片、P片还是B片。然而,除了SPS和PPS中界定的一些通用参数之外,不存在与每个编码图像相关的图像标题。VCL NAL单元的有效负载为编码片或编码片数据分区,而非编码图像。H.264规范允许可将一个图像编码成不同类型的片,尽管实际的编码器可能将一个图像编码成同一类型的片。IDR(即时解码刷新)图像为一种特殊类型的图像。解码顺序中位于IDR图像之后的所有编码图像可被解码,而无需通过解码顺序中位于IDR图像之前的任何图像进行图像间预测。解码顺序中每个编码视频序列的第一个图像为IDR图像。IDR图像中的片可为I片或SI片。在本说明书中一些与H.264相关的讨论中,帧和图像可互换使用。在这种情况下,帧相当于由同一类型的片组成的编码图像。例如,I帧是指仅由I片组成的编码图像。
每个NAL单元被形成为具有1字节NAL单元标题和NAL单元有效负载。图7C示出了作为一个实例的简单的H.264位流的结构。在该具体实例中,位流包含一个SPS和一个PPS,并且IDR图像仅包含一个片。然而,该位流中这些NAL单元的每一个均可具有一个或多个例子。
NAL单元标题包含三个字段:forbidden_zero_bit、nal_ref_idc和nal_unit_type。图7D中示出了NAL单元标题的该结构以及每个字段的位宽度。字段forbidden_zero_bit在H.264位流中始终为零。字段nal_ref_idc指示是否将NAL单元用于解码参考图像中。参考图像为可用于将解码顺序中的后续图像解码的图像。如果nal_ref_idc为零,则意味着NAL单元不用于将解码顺序中的后续图像解码。对于同一图像中的所有片而言,字段nal_ref_idc应具有相同的值。虽然字段nal_ref_idc有两位,但对H.264解码器有意义的是字段nal_ref_idc为零还是非零。
许多不同类型的NAL单元可将nal_ref_idc设置为0。实例为包含非参考图像的编码片的NAL单元、包含非参考图像的编码片数据分区的NAL单元、补充增强信息(SEI)NAL单元、访问单元分隔符NAL单元、序列末端NAL单元、流末端NAL单元或填充数据NAL单元。
H.264位流中使用的NAL单元结构也被扩展至H.264RTP有效负载格式(在IETF RFC 6184,Y-K Wang等,“H.264视频的RTP有效负载格式”中描述了H.264RTP有效负载格式)。当通过RTP包传输H.264数据时,如果检测到NAL单元存在位误差或违反语法情况,则可将字段forbidden_zero_bit设置为1。可将字段nal_ref_idc设置为具有更细粒度的值,而非仅设置为零或非零,以指示由编码器或对位流进行后处理的任何其它设备所确定的相对传输优先级。
GOP从I帧开始,并且可通过两个数字M(参照帧(I或P帧)之间的距离)和N(I帧之间的距离)来表征。参照帧之间的间隙用B帧来填充。通用GOP结构为图8A所示的M=3、N=12开放式GOP。该GOP被视为开放式的,是因为该GOP的最后的B帧依赖于当前GOP的最后一个P帧和下一个GOP的I帧。
图8A示出了GOP中帧的查看顺序。查看顺序用帧号1至12表示。帧号1’指示下一个GOP中的第一帧。每个查看顺序帧号下方的字母指示该帧号处的帧类型,即I、P或B。箭头指示特定帧所依赖的帧。例如,帧4为依赖于I帧1的P帧。帧10为依赖于P帧7的P帧。帧5和6为依赖于P帧4和7的B帧。由此可见,I帧1中的误差会传播至该GOP中的所有其它十一个帧以及前一个GOP的最后两个B帧。更糟的是,丢失帧1会使帧2至12以及前一个GOP的最后两个B帧对解码器无用。延迟帧1过了显示它的时间可与丢失帧1具有相同的效果。相反,在该实例中,丢失或错误接收B帧不会传播误差且仅影响单个B帧。需要注意,H.264中有B帧可依赖于其它B帧的模式,从而建立更复杂的分级结构,但将存在不被其它帧所依赖的“叶节点”帧。这些叶节点通常通过在其NAL单元标题中将nal_ref_idc设置为零来指示。
在一些系统中,控制和管理段270通过对I帧应用比P帧和B帧更大的保护来处理误差传播这种问题,从而减少不良信号质量对解码器解码和显示视频的能力的影响。然而,虽然有利,但这也导致已经很大的I帧消耗甚至更多的带宽。该方法也可导致许多视频解码器不支持的帧无序传输的问题。
在其它系统中,控制响应模块340可通过丢帧来响应。一种方法为控制响应模块340基于要传输的帧的类型来选择要丢弃的帧。例如,假如要在I、P和B帧之间做出选择,则控制响应模块可被配置成在丢弃P帧之前丢弃B帧且在丢弃I帧之前丢弃P帧。例如,可以随机方式做出关于在同一类型的若干帧之中的哪个帧的决策。对于H.264视频流而言,可检验NAL单元标题中的字段nal_ref_idc,从而在具有非零nal_ref_idc的NAL单元之前丢弃nal_ref_idc等于0的NAL单元。许多不同NAL单元类型的NAL单元可将nal_ref_idc设置为0。在一个实施方案中,如果存在填充数据NAL单元,则可在其它NAL单元类型的NAL单元之前将其丢弃。在另一个实施方案中,在nal_ref_idc等于0的NAL单元之间,非VCL NAL单元可在VCLNAL单元之前被丢弃。最初具有等于非零值的nal_ref_idc的NAL单元(为了讨论目的,称为“NAL_c”)可能在将依赖于“NAL_c”的NAL单元丢弃之后不会再用于解码参考图像中。在一个实施方案中,控制响应模块340可将NAL单元“NAL_c”的nal_ref_idc值从非零值修改为零。
相比之下,在本文所述的其它实施方案中,控制响应模块340分析和利用帧依赖关系来维持观看者的体验质量(QoE),同时智能降低视频数据传输的服务质量(QoS),以使用更少带宽来响应传输介质中的拥塞或同时允许该介质上具有更多视频或数据服务。
在一个实施方案中,控制响应模块340不仅对I、P和B帧进行分类,并且还确定这些帧的相对重要性。如上所述,存在可归因于误差传播和编码器使用后一个帧的能力的重要性因素。然而,还存在基于具有相同误差传播重要性的帧的分布的重要性因素。这些均将参照图8B进行描述。在确定帧的相对重要性之后,可针对视频流逐个地做出关于要丢弃哪个帧的决策。或者,如后面将描述的,控制响应模块340不仅可考虑丢弃的帧对单个流的影响,还可能考虑从两个不同流中的一个或另一个中丢弃帧的相对影响,从而选择丢弃总体影响最小的那一个帧。
图8B示出了与图8A中使用的GOP相同的具有相同依赖关系的GOP。此外,在具有每个帧序号和帧类型的列中,为指示优先级、负荷和负荷的替代表述的值。在一个实施方案中,优先级、负荷和替代负荷值由确定模块744确定。以下更详细地描述了确定模块744确定优先级和负荷值的方式。
在一些实施方案中,所示帧优先级和负荷值适用于(例如)通过发送设备之前的深度包检测(DPI)设备进行标记。因此,本文中针对确定模块744所描述的功能可通过另一个设备(包括除了包含参照图3描述的系统的设备之外的设备)来执行。在这种情况下,选择模块746使用此前确定的优先级负荷值来选择要丢弃的帧。然而,为了解释目的,针对确定模块744描述了优先级和负荷确定功能。在一些实施方案中,所描述的确定模块744的功能可包含在实时配置模块325中且可在其中实施,或者可有利地使其功能分布在可例如确定数据流为视频流的环境参数模块320、可例如对视频帧的优先级进行实时评估的实时配置模块325和可例如通过随时间观察来确定GOP结构的模式模块335之间。
在本说明书中,较低优先级编号指示帧重要性更高,但应该明确的是可采用反向关系。这些优先级指示相对重要性,其可使发送设备在面临传输介质的拥塞或超额预订时将帧智能丢弃。将具有较高优先级编号的帧优先于具有较低优先级编号的帧丢弃。
对于图8B的GOP,在一个实施方案中,需要发送I帧所有其它帧才有用,因此确定模块为在帧1处的I帧分配为1的优先级值。P帧断开其对I帧的依赖,因此确定模块为第一个P帧分配比I帧低的优先级(更高编号),但该优先级(更低编号)又高于后续P帧的优先级。按照该模式,确定模块分别向该GOP中的P帧赋予优先级编号2、3和4。本领域的技术人员将认识到,较低优先级编号相反地可映射到较低的实际优先级,并且较高优先级编号可映射到较高的实际优先级。
在一个实施方案中,因为B帧依赖于其它帧,所以确定模块向B帧分配与其所依赖的任何帧相比更低的优先级(更高编号)。这对于传输顺序中编号为8、9、11和12的B帧非常合适,因为这些帧全部依赖于帧号为10的P帧,该帧具有优先级4且为具有最低优先级的P帧。然而,编号为2和3的B帧也没有P帧4重要,即使其不依赖于P帧4。这有两个原因。第一,如前所述,丢弃B帧2或B帧3不会传播误差,而丢弃P帧4还需丢弃B帧8、9、11和12。第二,P帧均匀地分布在该GOP中。丢弃P帧往往会导致连续的多个帧丢失,而不止是一个。因此,在一个实施方案中,确定模块向B帧分配相比于任何P帧更低的优先级(较高编号)。
重要的是,所有B帧在重要性上并非完全相同。具体地讲,B帧的重要性可基于相邻的B帧是否已被丢弃而改变。这是因为在某些情况下,丢弃多个连续帧比丢弃非连续帧对视频质量具有更坏的影响。例如,如果丢弃了B帧5,则随后丢弃B帧6会导致连续的2个帧被丢弃。然而,随后丢弃B帧12却不会导致这种情况的发生。
有利地,确定模块可预测和说明这种重要性变化。为此,在一个实施方案中,确定模块将初始优先级编号5分配至该GOP中的所有B帧。然而,如果存在连续的B帧,则确定模块向该GOP中具有更高帧号的B帧分配更低优先级(更高编号)。因此,在图8B的实例中,确定模块向B帧分配交替优先级5和6,以预测这些B帧在相邻的B帧丢弃之后的重要性变化。在另一个实施方案中,确定模块向所有B帧分配相同的优先级值,并且当需要丢弃时选择模块746可选择B帧以均匀地丢弃,而非一簇一簇地丢弃。
用于确定优先级的确定模块的功能可概括如下:向I帧分配优先级1。向依赖于具有优先级y的帧的P帧分配优先级y+1。如果z为任何P帧的最大优先级编号,则:向所有B帧分配优先级z+1,或者向两个参照帧之间的B帧分配优先级z+1,z+2,…z+(M-1),其中M为参照帧之间的间距。或者,向两个参照帧之间的B帧分配优先级z+(M-1),z+(M-2),…,z+1。
在另一个实施方案中,确定模块可至少部分地基于依赖于某个帧的其它帧的数量来确定该帧的重要性。例如,图8B的GOP中位置1处的I帧具有直接或间接依赖于它的其它13个帧。这包括该GOP中的其它11个帧,并且因为该GOP为开放式的,所以还包括依赖于I帧的前一个GOP的最后两个B帧。所有B帧均无依赖于它们的其它帧。P帧4、7和10分别具有依赖于它们的10、7和4个帧。基于依赖关系的这种值确定在本文中称为负荷。图8B示出了该GOP中帧的负荷值。
图9描述了用于确定GOP中帧的负荷的方法910的一个实施方案。如上所述,该方法可通过确定模块744来实施。在另一个实施方案中,该方法可通过另一设备或模块来实施。为了解释目的,针对确定模块描述了该方法。在步骤915,确定模块确定值N(该GOP中帧的数量)和M(该GOP中参照(I或P)帧之间的距离)。在图8B的示例性GOP中,N=12 M=3。该确定可通过分析该GOP中的帧来进行。或者,如果此前已确定这些值,则确定模块可获得此前确定的值。
在决策步骤920,确定模块确定正被考虑的当前帧是否为B帧。如果是,则该方法进行到步骤925,并且确定模块向当前B帧分配负荷0。在一个实施方案中,可将分配的负荷保存于与该帧或GOP相关的数据结构中。在分配后,使该GOP中的下一个帧成为当前帧,并且该方法返回到点927,然后进行决策步骤920。
返回到决策步骤920后,如果当前帧不为B帧,则该方法进行到步骤930。在步骤930,确定模块确定当前帧的帧查看顺序(FVO)。可再次通过分析该GOP中的帧或通过获得此前确定的FVO来确定该值。在步骤935,确定模块将负荷分配至当前帧,该负荷等于等式1的结果:
等式1)负荷=(N-1)+M-FVO
在分配后,使该GOP中的下一个帧成为当前帧,并且该方法返回到点927,然后进行决策步骤920。该过程继续进行,直到确定模块已为该GOP中的每个帧分配负荷值。
如图8B所示,确定负荷时,确定模块也可将每个帧计算为以本身为负荷。在该实施方案中,确定模块将负荷1分配至每个B帧。根据等式2向参照帧分配负荷:
等式2)负荷=N+M-FVO
采用任何一种负荷计算,选择模块746均可按照首先丢弃那些具有最低负荷的帧来智能选择要丢弃的帧。对于具有相同负荷的帧而言,当需要丢弃时选择模块可均匀地丢弃,即不以相邻帧的组块进行丢弃。或者,选择模块可基于大小在具有相同负荷的帧之间选择要丢弃的帧。例如,两个B帧可具有不同大小,因为一个比另一个包含更多的I或P宏块。如果可用带宽资源允许传输较大的B帧,则相比于较大的B帧,选择模块可优先选择丢弃较小的B帧,因为其包含较少的信息,并且其丢失降低的视频质量由此应小于丢弃较大的B帧。然而,如果可用带宽资源不适于传输较大的B帧(由于其大小的缘故),则选择模块可丢弃较大的B帧,而非较小的B帧。
图10示出了不包含任何B帧的GOP。以上参照图9所述的方法与这些类型的GOP(如来自MPEG-1和H.264-AVC基线配置的那些或者MPEG-2、MPEG-4或H.264-AVC GOP)一起用于无需B帧导致的额外解码延迟的应用。这些帧本质上并非开放式的,因为不存在具有双向依赖关系的B帧。确定模块可使用相同的方法来分析这种类型的GOP。
图11A示出了另一种类型的GOP,其中三个B帧位于参照帧(M=4)之间。以上参照图9所述的方法也适用于这些类型的GOP。具体地讲,确定模块可使用相同的方法来分析这种类型的GOP。
对于H.264位流,NAL单元标题中的nal_ref_idc可能已通过编码器设置,以指示NAL单元的传输优先级。例如,对于SPS(序列参数集)、PPS(图像参数集)和IDR图像的编码片,RFC 6814建议编码器应当将nal_ref_idc设置为3;对于参考图像的非IDR编码片和参考图像的编码片数据分区A,RFC 6814建议编码器应当将nal_ref_idc设置为2;而对于参考图像的编码片数据分区B或编码片数据分区C,RFC 6814建议编码器应当将nal_ref_idc设置为1。在一个实施方案中,优先级/负荷确定模块744使用nal_ref_idc值来确定视频包的优先级或负荷。例如,优先级确定模块744将nal_ref_idc等于0的P片设置为具有比nal_ref_idc等于2的P片更低的优先级。在一个实施方案中,如果将nal_ref_idc设置为多个值,则优先级/负荷确定模块744会将nal_ref_idc的设置转发至帧/片选择模块746,以用于选择帧或片以供丢弃。
如上所述,对H.264解码器有意义的nal_ref_idc值为零或非零,因此编码器通常为任何非零nal_ref_idc选择单个非零值(如1)。在一个实施方案中,如果编码器最初未正确设置nal_ref_idc的话,控制响应模块340会修改nal_ref_idc,以更准确地反映包的传输优先级。这将有助于采用视频包的优先级的传输系统6120中的其它功能。例如,帧/片选择模块746可使用修改的nal_ref_idc来选择帧或片以供丢弃。
在另一个实施方案中,在控制响应模块340中修改nal_ref_idc,以更准确地反映包的传输优先级(如果一些相关包被丢弃的话)。图11B示出了包括一个I帧和3个P帧的四个帧的GOP。假设在帧3的所有片中nal_ref_idc均被设置为2。如果丢弃帧4,则降低了帧3的所有片中的nal_ref_idc。这将有助于使用视频包的优先级的传输系统6120中的其它功能,如帧/片选择模块746。
分级和多参考预测GOP结构
如前所述,允许分级或多参考GOP预测结构的标准(如H.264-AVC)内存在多种特征。就分级GOP而言,B帧可依赖于先前和/或随后的B帧。使用多参考GOP使P帧可依赖于一个或多个P或I帧。
图12示出了分级GOP的一个实例。具体地讲,图12示出了查看顺序中的12帧(N=12)分级GOP结构。序列从I帧开始,并且作为开放式GOP,其包括对下一个GOP的I帧(1’)的参考。不存在P帧,且B帧的子集参考其它B帧。例如,B4参考I1和B7,并且B3参考I1和B4。分级关系集合使B帧之间的目的和重要性产生区别,而在分析未分级GOP时则观察不到这种区别。这为确定模块考虑何时分析GOP中的误差传播以及何时计算帧负荷和优先级提供了附加信息。
例如,在一个实施方案中,控制响应模块340可以要求丢弃单个B帧以满足可用容量,则帧B2、B3、B5、B6、B8、B9、B11或B12会优先于帧B4、B7和B10,因为前面的列表包含所有‘叶’节点,而丢弃这些叶节点对后续帧无影响。在该实施方案中,控制响应模块340丢弃叶节点,而非其它帧所依赖的节点。在一个实施方案中,将一些叶节点丢弃之后,曾经具有等于非零值的nal_ref_idc的帧可能不再会具有依赖于它的任何帧。在这种情况下,控制响应模块340可以将与该帧相对应的所有NAL单元的nal_ref_idc设置为零。
图13示出了多参考GOP的一个实例。在该实例中,帧P2仅具有一个参考帧I1。然而,帧P3参考前两个帧P2和I1。帧P4参考P3、P2和I1。这些附加参考改善了数据压缩并且减小了该GOP中后面的P帧的大小。
在一个实施方案中,确定模块将替代确定过程用于分级和多参考GOP结构(如图12和13的GOP)中。在一个实施方案中,确定模块根据GOP中依赖于各帧的帧的数量将负荷分配至每个帧。在做出该评估时,确定模块考虑两类依赖关系:直接和间接。图14示出了一组4个普通帧F1-F4以进行讨论。帧F2被视为直接依赖于帧F1,因为帧F2直接参考帧F1以解码其信息。帧F3为第一级,其间接依赖于帧F1,因为帧F3直接参考帧F2,并且帧F2直接参考帧F1。通过扩展,帧F4为第二级,其间接依赖于帧F1。
图15示出了用于计算直接帧负荷的方法1510。如上所述,该方法可通过确定模块744来实施。在另一个实施方案中,该方法可通过另一设备或模块来实施。为了解释目的,针对确定模块描述了该方法。
在步骤1520,确定模块计算N,即当前正被处理的GOP的长度或大小。在步骤1530,确定模块将帧号分配至每个帧,其从前导I帧的1开始。在一个实施方案中,这些帧号为帧的帧查看顺序。在步骤1540,确定模块创建大小为N×N的表D以存储中间负荷信息。确定模块还创建大小为N的加权向量X。在另一个实施方案中,确定模块采用现有的表和向量,而非创建新的表和向量。在步骤1550,确定模块通过将表D中的每一个值设置为零来将其初始化。在另一个实施方案中,该表可能先前已被初始化。
在步骤1560,确定模块在表D中直接彼此依赖的帧之间建立映射。具体地讲,对于该GOP中的每个帧i而言,确定模块检测和记录对该GOP中的所有其它帧j的依赖关系。一旦识别帧i对帧j的依赖关系,则将值1分配至表D中的位置(i,j)处,其中i表示列且j表示行。例如,如果帧2为考虑中的当前帧(i)且依赖于帧1(j),则确定模块将值1分配在表D中的位置(2,1)处。本领域的技术人员将认识到,以i作为列且j作为行的表示法D(i,j)在逻辑上相当于表示法D(j,i),前提是在整个算法中始终一致地使用该表示法。
在步骤1570,确定模块确定每个帧的加权直接帧优先级。具体地讲,对于每个帧j而言,确定模块针对所有I值对表D(i,j)的值进行求和并加1。该和为对帧j的直接依赖关系的数量。然后,确定模块将所述和乘以得自加权向量X的权值X(j)。确定模块可将所得值保存于长度N向量中。该结果向量中的值表示该GOP中帧的加权直接帧优先级。
图18示出了直接帧负荷表D。根据采用图12所示的GOP的参照图15描述的方法,生成了图18的表D。如所示的,表D中的每个项(i,j)指示帧(i)是否依赖于帧(j)。例如,因为帧B3依赖于该GOP中的B4,所以值1位于D(3,4)处。图18也显示了每个帧j的所得加权直接优先级。其结果为所述帧的值的和,即表D中所述帧的行中的1的和,加上1,再乘以得自图16所示的加权向量X的相应权值。如所示的,帧I中的帧I1具有最高优先级。然而,与确定模块根据以上参照图9所述的方法产生的B帧负荷相比,图18所示的B帧负荷基于依赖关系的数量。因此,确定模块分配1、5或7个单位的负荷给B帧。
在一个实施方案中,确定模块在步骤1560认为每个帧依赖于其本身。在该实施方案中,在步骤1570,确定模块无需将得自表D的和加1。
在另一个实施方案中,确定模块用1xN向量D’来代替直接帧负荷表D。在该实施方案中,在步骤1590,对于依赖于帧j的每个帧i而言,确定模块将D’(j)加1。然后,对于每个元素j,通过将D(j)乘以X(j)来计算帧j的加权直接优先级。
如同所述,方法1505根据至少以下两个因素得出帧之间的优先级的相对描述:(1)直接依赖的帧的数量和(2)帧权值。可以多种方式创建加权向量X(j)。
例如,在一个实施方案中,加权向量X包含多个值,使得分配至I帧的权值大于P帧,而P帧的权值又大于B帧。图16示出了针对图12所示的GOP的具有该结构的加权向量X。在该实例中,I帧、P帧、B帧的加权向量X的值分别为3、2和1。因此,向帧1(唯一的I帧)分配的值为3,并且向其余帧(全部为B帧)分配的值为1。
在另一个实施方案中,加权向量X包含基于帧大小的多个值。在一些情况下,提高较大帧的优先级是有利的,因为这些帧与较小帧相比最有可能包含附加场景细节或运动。在加权中采用大小的做法可以不考虑帧的类型(I、B或P),或者可同时考虑帧的大小和类型两者。例如,参照图12的GOP,叶帧B5和B6可包含重要的场景细节或运动。在这种情况下,这些B帧将大于其余叶B帧和非叶B帧。加权向量X可通过提高与帧B5和B6相对应的加权值来对此进行说明。
在一个实施方案中,根据帧的相对或绝对大小向加权向量分配相对权值(例如1-10)。在一个实施方案中,采用闭式表达式、直方图函数或另一种类型的函数来进行分配。在一个实施方案中,分配函数产生整数或实数形式的权值。该函数可为线性或非线性函数。
图17示出了加权向量X,其中加权值包含帧的大小(如上所述)。加权向量对应于图12所示的GOP。可从图17中看出,帧I1由于其大小而具有最大权值。非叶节点帧B7、B4和B10由于这些帧的较大编码大小而具有大于1的权值。因为叶节点B5和B6包含大量细节或运动,所以其较大的大小会导致高于所有其它B帧的权值。
图19示出了用于根据直接依赖关系和间接依赖关系来确定负荷的方法1902。如上所述,该方法可通过确定模块744来实施。在另一个实施方案中,该方法可通过另一设备或模块来实施。为了解释目的,针对确定模块描述了该方法。
步骤1905、1910、1915、1920、1925和1930与参照图15描述的方法1505的相应步骤类似。关于实施这些步骤的细节,请参照上面关于图15的描述。在步骤1935继续,确定模块创建总负荷表T。确定模块将步骤1930产生的表D的值复制到表T中。总负荷表T为确定模块用来确定直接和间接依赖关系对负荷的影响的N×N表。例如,对于图12的GOP,确定模块744采用该追溯法来说明帧B9对帧I1(经由B7)的依赖性。具体地讲,确定模块将帧B9对帧I1的负荷包括在帧I1的负荷值内。在一个实施方案中,确定模块采用追溯法来说明一个帧对另一个帧的间接依赖关系。
在步骤1940,确定模块将其两个索引i和j的值设置为等于1。在步骤1945,确定模块确定表T中位置(i,j)处的值是否大于零。这样,确定模块确定帧j是否具有依赖于它的帧。如果是,则该方法进行到步骤1950。在步骤1950中,确定模块采用依赖间接负荷表D对于帧j确定是否帧j本身依赖于任何其它帧。如果是,则将依赖于帧j的帧包括在j所依赖的帧的负荷中。例如,采用图12中引用的GOP和图18的表D,在直接负荷表D中将帧B9对B7的直接依赖性指示为D(9,7)的值等于1。在步骤1250,确定模块确定B7本身是否依赖于任何帧。确定模块通过搜索表D的第7列以确定是否存在任何大于零的项来完成该过程。在该实例中,发现1位于表位置D(7,1),这表明帧B7依赖于帧I1。因此,根据定义,帧B9为第一级,其间接依赖于帧I1。通过将1设置在总负荷表T中的位置T(9,1)处来记录该信息。图20示出了参照图19描述的总帧负荷表T。表T中的阴影部分的值表示确定模块采用图19的方法获得的间接依赖关系。
从步骤1950继续进行,或者如果决策步骤1945的结果为否,则该方法进行到步骤1955。在步骤1955,确定模块将索引j与值N进行比较。如果j小于N,则该方法进行到步骤1960。在步骤1960,确定模块将索引j加1,并且该方法返回到决策步骤1945。返回到决策步骤1955,如果索引j不小于N,则该方法进行到步骤1965。在步骤1965,确定模块将索引j设置为等于1。在步骤1970继续,确定模块确定索引i是否小于N。如果i小于N,则该方法进行到步骤1975。在步骤1975,确定模块将索引i加1,并且该方法返回到决策步骤1945。返回到决策步骤1970,如果索引i不小于N,则该方法进行到步骤1985。
步骤1940、1955、1960、1965、1970和1975的作用为通过确定模块采用二级‘嵌套’循环来评价该GOP的依赖关系。从而,确定模块探查直接负荷表D中的所有值以在总负荷表T中制表。
在确定模块在步骤1970中到达‘否’决策之后,嵌套循环结束。这时,总负荷表T包含所有GOP帧之间的直接和第一级间接帧关系。在步骤1985,对于每个帧j而言,确定模块针对所有i值对表T(i,j)值进行求和,加上1,然后将该结果乘以权值X(j)。需要注意,加1使负荷变为非零,从而可区分不同权值。例如,如果无依赖关系(具有相同负荷)的两个B帧具有不同权值(例如,如果其为不同大小),则不加1会使负荷均为零,从而使这两个B帧的负荷与相应权值的乘积为零。然而,加1可使这两个B帧的负荷与权值的乘积不相等。所得的N(长度向量)为该GOP的加权总帧优先级。由确定模块确定的总帧优先级如图20所示,其中所用加权向量为图16所示的加权向量。
参照图19描述的‘追溯’方法将根据直接依赖关系和单级间接依赖关系来计算帧负荷。本领域的技术人员将意识到,该方法可被扩展到包括所有间接依赖关系的作用,而不限于依赖级别的数量。换句话讲,‘追溯’方法可被设计成使得确定模块追寻从根节点到叶节点的依赖关系。
扩展依赖关系追踪的一个实施方案为通过确定模块来创建n-1个附加负荷表T2至Tn,其中每个负荷表均表示从直接依赖关系到第n级间接依赖关系的所有依赖关系的累积表示。例如,表T3将表示直接依赖关系以及所有第一级、第二级和第三级间接依赖关系。根据图19的方法,步骤1935-1975将通过确定模块针对每个表Tn来进行。在这些步骤中,Tn代替表T,并且表T(n-1)代替表D。一旦表Tn的所有元素等于表T(n+1)的所有元素(即通过创建附加负荷表T(n+1)未识别到新的依赖关系)时,确定模块将结束表生成。
在另一个实施方案中,确定模块可考虑重复依赖关系。例如,如在基于图12的GOP的图18的表中所述,如果帧之间存在不止一个依赖关系路径,则上述方法不会导致帧负荷增加。例如,尽管帧I1与B3之间存在两个依赖关系路径,但由于依赖帧B3而向帧I1提供1个负荷单位。一个为直接路径;另一个为经由帧B4的间接路径。在一个实施方案中,确定模块对这些重复参考进行说明,以便进一步放大帧负荷之间的差异。例如,在上述情况中,由于帧B3与I1之间的第二个重复参考而向帧I1提供另一个负荷单位。
参照图15和19描述的方法考虑了GOP内的依赖关系。在其它实施方案中,确定模块也可考虑开放式GOP结构中存在的GOP间的依赖关系。
如上所述,多种方法可用于创建有用的权值向量X,以供确定模块用于计算总帧优先级。例如,如以上参照图16和17所述,可根据帧类型(I、P或B)、按照帧大小或这两者的某种组合来分配权值。
在另一个实施方案中,将权值向量扩展至大小为N×N的权值表X的形式。在该方法中,在分配权值和计算优先级时,考虑了关于帧依赖关系的其它信息。在一个实施方案中,根据正被考虑的帧之间的关系的‘直接性’,将权值应用于依赖关系。即,应用于直接依赖关系的权值大于应用于间接依赖关系的权值。在另一个实施方案中,第一级间接依赖关系的加权值高于第二级间接依赖关系。类似地,第二级间接依赖关系的加权值高于第三级间接依赖关系,依此类推。
例如,权值3、2和1可分别应用于直接依赖关系、第一级间接依赖关系和第二级间接依赖关系。图21示出了用于将该加权方案用于图20的总帧负荷表T的权值表X。
大小为N×N的权值表X可代替图19的步骤1985中大小为N的权值向量X。当采用权值表X时,可通过针对所有i(从1到N)值对T(i,j)*X(i,j)的乘积进行求和来计算每个帧j的加权总帧优先级。
有利地,该方法考虑了在帧误差在该GOP中传播时,误差传播可通过I宏块来缓解。因此,由于帧之间的‘直接性’级别的降低,依赖关系的重要性也可降低。
片
在MPEG-2、MPEG-4和H.264中,帧可进一步分成片。片包含整数个来自同一个帧的宏块。可通过使用帧的单个片来将帧分成片。也可将帧分成j片,其中每个片均包含固定数量的宏块。或者,可将帧分成k片,其中每个片包含可变数量的宏块。一个片内的宏块不依赖于来自同一个帧的其它片中的宏块。如果片小于整个帧,则丢失该片对视频质量的影响将小于丢失整个帧。
与帧一样,存在I片、P片和B片。I片仅包含在不依赖于其它帧中的宏块的情况下编码的I宏块。P片可包含I宏块或P宏块,或两者。P宏块基于前一个(或下一个)I帧或P帧被编码。B片可包含I、P或B宏块或任何组合。B宏块基于前一个和后一个I或P帧被双向编码。
此前针对帧描述的相同优先化方法可应用于片。例如,确定模块可向作为I帧一部分的I片分配与原I帧相同的负荷和优先级。类似地,可向P片的负荷和优先级分配与原P帧相同的负荷和优先级。可向B片的负荷和优先级分配与原B帧相同的负荷和优先级。
由于可独立于构成帧的其它片中的宏块来解码该帧的一个片中的宏块,所以将片优先化可允许在拥塞期间或在降低数据率是必要的或有利的的其它时间期间进行更细粒度的丢弃。
除了基于负荷和帧或片类型进行优先化之外,确定模块还可基于具有相同负荷的片所包含的每种宏块的相对数量来进一步区分这些片。例如,如果两个P片具有相同负荷,则具有较多I宏块和较少P宏块的P片的优先级可高于具有较少I宏块或较多P宏块的P片。或者,细粒度优先级调整可基于片内I宏块与P宏块的比率。类似的细粒度优先级调整可基于I、P和B宏块的计数或比率而应用于B片。在另一个实施方案中,因为I宏块通常包含比P宏块更多的数据,并且P宏块通常包含比B宏块更多的数据,所以确定模块可基于片中所包含的宏块的平均大小来调整优先级。这可通过用以字节计的片大小除以片中宏块的数量来计算。
在一个实施方案中,确定模块实施评分系统。例如,确定模块可应用说明具有相同优先级或负荷的片中的宏块之间的差异的调整,同时不会使片跨越到不同优先级或负荷。在一个实施方案中,确定模块采用某个数值,以使得从优先级值中减去或向该值加上该数值使优先级值移动至不到至下一个较低或较高优先级的半程。如果优先级之间的差值为整数值1,则可采用大于零但小于0.5的任何数值x。例如,x可等于0.4。
图22示出了用于基于片中的宏块来修改该片的优先级的方法2205。如上所述,该方法可通过确定模块744来实施。在另一个实施方案中,该方法可通过另一设备或模块来实施。为了解释目的,针对确定模块描述了该方法。另外,在本说明书中,较低优先级编号是指较高优先级。本领域的技术人员将认识到,该方法也可用于基于帧中的宏块来修改该帧的优先级。
在决策步骤2210,确定模块确定该帧中的当前片是否为I片。如果是,对当前片的评价结束,并且考虑下一个片。如果当前片不为I片,则该方法进行到步骤2220。在步骤2220,确定模块确定值y,即作为I宏块的宏块在当前片中的百分比。在步骤2230继续,确定模块通过将x乘以y并从该片的当前优先级中减去其乘积来调整当前片的优先级。这样,该片中存在I宏块会导致该片具有更低的优先级编号,即更高的有效优先级。
在步骤2240继续,确定模块确定当前片是否为P片。如果是,对当前片的评价结束,并且考虑下一个片。如果当前片不为P片,则该方法进行到步骤2250。在步骤2250,确定模块确定值z,即作为B宏块的宏块在当前片中的百分比。在步骤2260继续,确定模块通过将x乘以z并将其乘积加上该片的当前优先级来调整当前片的优先级。这样,该片中存在B宏块会导致该片具有更高的优先级编号,即更低的有效优先级。在另一个实施方案中,可将与步骤2230中使用的x值不同的x值用于该步骤中,以便对相对优先级提供更大的控制。如同所述,确定模块可针对每个片重复该过程,以便确定对该片的优先级的调整。
图23A示出了用于基于片中的宏块来修改该片的优先级的方法2305。如上所述,该方法可通过确定模块744来实施。在另一个实施方案中,该方法可通过另一设备或模块来实施。为了解释目的,针对确定模块描述了该方法。另外,在本说明书中,较低优先级编号是指较高优先级。本领域的技术人员将认识到,该方法也可用于基于帧中的宏块来修改该帧的优先级。
步骤2310、2320、2330和2340与图22的方法2205的相应步骤相同。关于实施这些步骤的细节,请参考关于图22的相应步骤的描述。在步骤2350继续,确定模块确定数值z,其表示作为P宏块的宏块在当前片中的百分比。在步骤2360继续,确定模块通过将x’乘以z并从该片的当前优先级中减去其乘积来调整当前片的优先级。在该步骤中,x’的计算类似于x,但该值使得针对B片中的P宏块和I宏块应用不同的调整。
本领域的技术人员将意识到,可基于I、P和B宏块的数量、百分比或大小来对片或帧优先级做出其它调整。
一些视频标准(如H.264-AVC)允许具有冗余片。冗余片含有冗余信息,以防原始帧丢失或损坏。为了进行优先化丢弃,向冗余片分配低于B片的优先级级别,因为解码器通常不需要冗余片。
一些视频标准(如H.264-AVC)允许具有可使得在视频流之间进行更容易或更快的切换的切换片。SI片允许在完全不同的流之间进行切换。在一个实施方案中,如果未预期流切换,则向SI片分配低于B帧的优先级,因为解码器通常不会使用SI片。然而,如果预期切换流比较频繁(如在同时流动多个视频流的多播或广播系统中),则策略可规定SI片的优先级,并且SI片可被优先化至高于B或P片,但通常不高于I片。类似地,SP片允许在以不同速率或分辨率编码的具有相同视频内容的流之间进行更容易或更快的切换。除非要进行此切换,否则向SP片分配低于B片的优先级。然而,如果要进行此切换,则以与P片相同的方式向SP片分配优先级。
SI和SP片均可用于由观看人控制的视频回放和管理功能。例如,人们可选择对正在观看的内容进行快进或倒带。一旦已开始此回放,人们可选择改变观看流(或如广播视频中通常描述的‘频道’),或者调节显示分辨率和/或屏幕大小。根据视频标准和编码方法,这些观看者请求可能涉及使用或增加使用SP和/或SI帧。因为用户控制响应时间为视频传输和回放系统的一个关键性能度量,所以SP和/或SI帧的重要性在此类用户请求周期期间实质上更高了。
在一个实施方案中,SI和SP帧的动态优先化用于检测用户请求并通过提高SI和SP帧的帧优先级来响应。这可例如通过控制响应模块340来实现。请求检测可采用若干形式。一种方法为监测上行链路控制流量(沿视频流量的相反方向移动),以便检测特定的用户请求。另一种形式为确定SI和SP帧的基线帧速率(例如采用帧数/秒测得的),并且检测当前SI或SP帧速率以某个预定阈值(例如系数2x)超出该基线速率的时段。一旦检测到用户请求,则提高SI或SP帧的优先级级别,并且甚至可使其超过当前分配给I帧的优先级级别。可以在用户请求以及某个可配置的超时期间内维持提高的优先级级别。
数据划分
在一些视频标准(如H.264-AVC)中,片中的数据可进一步设置在数据分区中。例如,H.264-AVC中的片可划分成三个数据分区。数据分区1包含片标题和每个宏块的标题数据。数据分区2包含来自该片的I或SI宏块的数据部分。数据分区3包含来自该片的P、B和SP宏块的数据部分。这些数据分区可独立传输。数据分区1和2均对恢复I宏块是必要的,因此可将其联系在一起,以供确定模块进行丢弃优先化。通过将片优先级调整方法用于数据分区2并向数据分区1分配相同优先级,可以调整分区1和2的优先级。或者,因为数据分区1对于使用数据分区3也是必要的,所以可向数据分区1分配比数据分区2的优先级略高的优先级。通过将片优先级调整方法用于数据分区3,可以调整数据分区3的优先级。
可分级视频位流
H.264具有可分级视频编码(SVC)扩展。SVC编码器可生成具有分层结构的视频位流。SVC位流的基极层可通过符合H.264的解码器进行正确解码。增强层可在不同方面提高视频保真度,如信噪比(SNR)、空间分辨率或时间分辨率。时域分级为一种H.264中存在的特征,然而SVC中引入的句法特征可使其更易于使用。
在本文中,H.264通常指H.264规范中除SVC和MVC(多视点视频编码)扩展之外的部分,并且SVC是指H.264规范的附件G中规定的可分级视频编码扩展。
SVC与H.264向后兼容,因此SVC解码器可解码H.264中定义的所有NAL单元。SVC还引入了新的NAL单元类型,其值保留在H.264中。SVC位流可包含H.264中不存在的三种NAL单元类型。这些类型为前缀NAL单元(nal_unit_type等于14)、子集序列参数集(nal_unit_type等于15)和编码片扩展NAL单元(nal_unit_type等于20)。子集序列参数集NAL单元的结构与任何H.264NAL单元的结构相同,但前缀NAL单元和编码片扩展NAL单元具有不同结构,如图23B所示。这两种NAL单元类型具有位于8位H.264NAL单元标题之后的24位NAL单元标题SVC扩展。
图23C示出了24位NAL单元标题SVC扩展的结构。字段priority_id为优先级标识符。如果设置,priority_id的较低值指示较高优先级。然而,其值不会影响解码过程,并且可通过应用而设置(如果必要)在该规范定义的限制范围内。字段dependency_id指定了NAL单元的依赖关系标识符。具有相同dependency_id的所有NAL单元属于相同的依赖关系表示。依赖关系表示对应于空域分级层或具有零的粗粒度SNR(CGS)分级层或偏中粒度SNR分级层。CGS层类似于空域分级层,并且这些层采用同一组层间预测编码工具。CGS层对具有相同分辨率的视频提供SNR增强,而空域分级层对视频分辨率提供增强。字段temporal_id指示时域分级层。将字段quality_id分配至中粒度SNR(MGS)分级层。MGS分级层也对具有相同分辨率的视频提供SNR增强,但这是通过传输附加变换系数而逐步提高信号保真度来实现的。
图23D示出了SVC位流分级结构。在该3维图中,每个立方体均对应于具有相同三元组(dependency_id,temporal_id,quality_id)的整个位流中的所有NAL单元。位流解析和提取可通过NAL单元标题的SVC扩展中的这3个字段来完成。
图23E示出了具有3个时间级别、2个依赖关系级别和2个质量级别的样本SVC位流的结构。具有较高dependency_id值的层为空域分级层,其在每个维度中的分辨率为具有较小dependency_id值的基极层的两倍。在该图中,每个立方体均对应于一个图像中具有相同三元组(dependency_id,temporal_id,quality_id)的所有NAL单元。该图示出了5个帧的位流。如果用户想要提取具有低分辨率的视频位流,则可通过丢弃dependency_id大于0的所有NAL单元来实现。可以按类似的方式提取时域可分级层,只不过需检验temporal_id而非dependency_id。可丢弃质量层,以对位速率和视频质量之间的权衡进行微调控制。如果最大帧速率为30个帧/秒(FPS),并且希望以15FPS来提取具有较低分辨率的低质量级别的位流,则位流提取器可仅保留dependency_id等于0、quality_id等于0且temporal_id小于2的NAL单元,并丢弃所有其它NAL单元。在图23E中,深色立方体对应于在本实例中未丢弃的位流部分。
在一个实施方案中,控制响应模块340以与上述H.264位流类似的方式使用SVC位流中NAL单元的nal_ref_idc。SVC编码器可设置前缀NAL单元和编码片扩展NAL单元的priority_id字段以指示传输优先级。在一个实施方案中,字段priority_id的值可用于确定包丢弃的顺序。在另一个实施方案中,在未正确设置priority_id的值或包的优先级由于相关NAL单元的丢弃而改变时,可修改priority_id的值,以更准确地反映包的传输优先级。
基于其它视频特性的包优先化
在一个实施方案中,基于至少部分地由视频特性(如视频分辨率、视频帧速率、视频数据率)确定的优先级进行智能丢弃包,这些视频特性又由视频流或信号传送报文确定或估算。确定应当如何丢弃包的视频包优先级可根据视频流的数据率来调整。例如,当刚开始拥塞时,将较高数据率流的包的优先级调整为低于具有较低数据率的包。也可将包的优先级调整与视频帧大小成正比但与帧速率成反比的量。例如,相比于以30个帧/秒操作的视频流的单个帧,以60个帧/秒操作的视频流的单个帧在给定时段内为较小百分比的数据。因为丢失以60个帧/秒操作的视频流中的一个帧没有丢失以30个帧/秒操作的视频流中的一个帧明显,所以可向以30个帧/秒操作的流提供高于以60个帧/秒操作的流的优先级。
一旦(例如)采用上述技术将视频帧优先化,则发送设备(如下行链路上的无线基站或上行链路上的用户站(如无线固定、便携或移动用户设备))中的调度程序(如图2B中的调度程序278)可以使用该信息,以在拥塞期间进行智能丢弃或者优化呼叫和服务向系统中的接纳。在这些系统中,视频帧通常包含在诸如互联网协议(IP)包的数据包中。
图24为系统的一个实施方案的功能框图,所述系统使用优先化来确定在可用带宽小于将所有包传输至所有接收器所需的带宽时要丢弃的数据包。所述系统可以最小化用户体验降级的方式通过丢弃与某些服务相关的所选包来使这些服务降级。在一个实施方案中,采用了此前描述的针对视频的优先化方案。在一个实施方案中,所述系统在基站或接入点的MAC层276(见图2B)或用户站的调度程序中实施。然而,如下所述,所述功能可在不同设备中实施。在一个实施方案中,优先化和标记模块(“确定模块”)2410、调度程序队列2420和调度程序2440实施以上结合图3的控制响应模块(优化模块)340所述的功能。
优先化和标记模块2410优先化包以供丢弃。这可采用上述用于优先化视频包的方法,但本领域的技术人员将认识到,可将不同方法用于不同类型的数据流,如视频与语音。优先化和标记模块2410可位于发送设备本身中,或者可位于单独的设备(如DPI设备)中,其中该单独设备标记帧,例如在将视频帧传送至发送设备之前将位附加或插入到含有视频帧的包中。在图24所示的系统的一个实施方案中,优先化和标记模块2410实施结合图7A的优先级/负荷确定模块744描述的功能。类似地,在图24所示系统的一个实施方案中,调度程序2440实施结合图7A的帧/片选择模块746描述的功能,并因此也可被称为选择模块。该优先化允许对丢弃与一类服务(例如视频或语音)相关的包与对该服务的相应降级量之间的权衡进行评价,如下文更充分地描述的。在优先化之后,将包传送至调度程序或传输队列2420。
丢弃可能在优先化和标记模块2410对包(例如视频帧)进行排队时进行(如图25中的流程图所示),或者调度程序2440可在将包放置在该调度程序使用的队列2420中之后丢弃包(如图26中的流程图所示)。如图25所示,优先化和标记模块(例如)经由回程线路170从核心网络102接收的包(步骤2510)由优先化和标记模块2410来评价,以确定这些包是否满足丢弃标准(步骤2520)。或者,该功能可在调度程序中实施。在步骤2540,丢弃满足丢弃标准的包,并且在步骤2530,将不满足丢弃标准的包放置在调度程序的队列2420中。然后,流程返回到步骤2510。如果在对包进行排队时将其丢弃(如图25所示),则优先化和标记功能2410无需标记这些包。
如图26所示,也可对已在调度程序的队列2420中排队的包进行丢弃过程。在步骤2610,调度程序等待在其队列中接收包。对所接收的包的检验可为周期性的,例如由1毫秒计时器驱动,或者可能为非周期性的,例如通过收到要排队的包来驱动。在包位于队列中之后,调度程序等待一段时间以调度包进行传输(步骤2630)。当调度程序调度包进行传输的时刻来临时,从队列中提取一个或多个包(步骤2640)。在步骤2650,按照丢弃标准来评价所提取的包。在一个实施方案中,如果包为视频包,则上述优先化方案可与下述方法一起使用,以确定丢弃合格性。在步骤2660,丢弃满足丢弃标准的包,并且在步骤2670,调度不满足丢弃标准的包以供传输。然后,流程返回到步骤2630。或者,在对包进行排队之后,响应于诸如拥塞的刺激,对一个或多个队列内的所有包进行检测,从而移除满足丢弃标准的那些包,同时留下不满足丢弃标准的那些包。在适当的时候,调度未丢弃的包以供传输。本领域的技术人员将理解,可结合使用图25和26的方法。即,一些包可在队列入口处丢弃,而其它包经标记或者以其它方式选择以在队列出口处丢弃。
关于要丢弃哪些包的决策受丢弃级别的影响,丢弃级别取决于数据率、质量和系统资源,如随后所述。丢弃级别可通过(或根据从以下模块或功能接收的信息)了解总体系统状态的系统状态模块或功能(如图24所示的呼叫接纳控制(CAC)模块2460)来确定。CAC模块位于负责确定是否应允许新呼叫或服务的设备上。该设备可为基站或等效设备,并且其可为核心网络中的设备,如服务网关。CAC功能可分布在多个网络设备之间。CAC功能可使用来自传输模块2450的PHY参数信息,从而使其可知晓从字节向各种服务的物理资源的转换。
调度程序模块2440确定应当以何种顺序并且在何时将哪些数据包经由通信网络进行传输。可根据队列分配、根据包在队列2420中的顺序、按照由优先化和标记模块2410产生的标记或其某种组合将包的优先级传达至调度程序2440。如果通过将包从队列中移除来将其丢弃(如以上结合图26所述),调度程序2440基于来自以下来源的信息进行该丢弃:队列分配和顺序及优先化和标记模块2410产生的标记、来自CAC模块2460或类似模块的丢弃级别和总体资源可用性以及来自传输模块2450的PHY参数。在一个优选实施方案中,调度程序位于发送设备(如基站或等效设备)上,但可位于向发送设备提供调度信息的设备上。
传输模块2450负责包在整个物理介质中的传输,例如通过空气传输无线电波。该模块可在图2B的PHY层280中实施,或者其功能可分布在PHY层与调制解调器272之间。此外,传输模块可做出关于可靠传输和接收所需的PHY参数(如调制和编码方案)的决策。这些参数影响系统的容量,并且可将其提供给可能需要这些参数的其它模块,如CAC模块2460和调度程序2440。
在具有适应环境条件的物理层(PHY)的无线系统中,系统的每秒位数能力可根据PHY参数(如调制方案和前向纠错(FEC)编码)而变化。系统的每秒位数能力也可受由于包误差而导致的重传率波动的影响。在宽带无线系统中,RF链路的每秒位数能力的这些波动可影响该链路上的所有服务,而不仅仅包括目标为或来自经历PHY参数变化的用户设备的那些服务。如果带宽需求超出系统的新的每秒位数能力,则可产生拥塞。这还可能引起超额预订情况。也就是说,这可引起可能发生慢性拥塞的情况,因为所接纳的服务的总时间平均需求超出了RF链路的能力。
在服务携带的所有包具有一个优先级的系统中,该慢性拥塞可导致一些服务终止。或者,可仅根据服务的相对优先级而非服务上携带的各个包的优先级或丢弃对不同应用的影响来丢弃来自这些服务的包。
然而,对于视频而言,根据包传输的视频帧的类型来优先化各个包可使系统能够根据各个包的相对重要性对包进行智能丢弃。此系统还可对用户将在包丢弃之后体验到的视频流的质量做出定量估算。在运营商策略的范围内,无线网络可使视频服务柔性降级,而非终止服务或以提供不可接受的质量的方式使服务降级(如同随机丢弃的情况)。
虽然视频的最佳编码可产生高度可变的位流,但可变性通常会受限制。这有两个原因。第一,许多传统系统(如手机系统)期望在给定时段内具有恒定位速率(CBR)。为了确保解码器不经历缓冲器溢出或下溢,CBR编码器可对I帧、P帧和B帧的大小做出先验的非最佳选择。然后,这使得可根据例如GOP和其包含的帧依赖关系在编码器和解码器处设置缓冲器的大小。第二,甚至在实施可变位速率(VBR)编码器和解码器的系统中,通常也会限制位速率可变性和帧大小,以防止缓冲器溢出或下溢。
VBR视频流中的I、P和B帧大小可变化,但可受与用于CBR视频流的关系类似的最大值限制。或者,VBR流中不同帧类型的平均大小可例如通过使用指数平均数或本领域的技术人员已知的其它技术基于视频流的历史数据来计算。该方法也可用于CBR流,对于CBR流而言,关注该流的带宽需求的实体不知晓帧大小的范围。然后,可将帧大小的范围或历史平均帧大小用于估算GOP中每种类型的视频帧所占用的带宽。
类似地,GOP可为先验已知或可根据所接收的帧来检测。帧大小和GOP结构的确定可允许计算GOP所需的带宽,并因此计算视频流的位速率。位速率和平均帧大小的变化可通过计算方差或标准偏差来量化。
图27为用于确定GOP结构和平均大小的方法的流程图。在一个实施方案中,该方法通过优先化和标记模块2410来实施。在步骤2710,接收视频帧。在步骤2720,确定视频帧的类型。该确定可通过检测视频帧或包含它的传输包的标题或内容来进行。或者,可通过例如将其大小与相同流中其它包的大小进行比较并且与每种帧类型的平均帧大小(一旦已确定)进行比较的方法来启发式地确定。如果该帧为I帧,则流程进行到步骤2730,这时例如采用指数平均来更新该视频流的I帧的平均大小。从步骤2730,流程进行到步骤2740,这时确定自最近一个I帧起的帧的数量。然后,流程进行到步骤2790,这时将步骤2730和2740中收集和计算的数据用于更新已知的GOP结构和平均GOP大小的信息。如果在步骤2720确定视频帧为P帧,则流程进行到步骤2750,这时更新该视频流的P帧的平均大小。然后,流程进行到步骤2780,这时既确定自最近接收的参照帧起的帧的数量,也确定参照帧(I或P帧)的类型。然后,流程进行到步骤2790,这时将步骤2750和2780中收集和计算的数据用于更新已知的GOP结构和平均GOP大小的信息。如果在步骤2720确定视频帧为B帧,则流程进行到步骤2770,这时更新该视频流的B帧的平均大小。然后,流程进行到步骤2780,这时既确定自最近接收的参照帧起的帧的数量,也确定参照帧(I或P帧)的类型。然后,流程进行到步骤2790,这时将步骤2770和2780中收集和计算的数据用于更新已知的GOP结构和平均GOP大小的信息。
图28为N=12,M=3GOP的相对帧大小的一个实例的图示3000。在该实例中,P帧的平均大小为I帧的大小的一半,并且B帧的平均大小为I帧的大小的五分之一。这仅为一个实例,并且根据编码可存在其它相对帧大小。位于图28左侧的帧大小计数器以1000个字节的单位计。在该实例中,I帧3001的平均大小为10,000个字节,P帧3015(1)-3015(3)的平均大小为5000个字节,并且B帧3005(1)-3005(8)的平均大小为2000个字节。这给出了41,000个字节/GOP的平均值。因为该实例中的GOP为持续时间中的12个帧并且用于移动电话上显示的典型帧速率为25个帧/秒,所以这给出了大约为85,417个字节/秒或683千位/秒的示例性平均数据率。这仅为一个实例,并且本领域的技术人员将知道其它数据率既可能存在又很常见。当发生某个事件导致该服务的可用带宽仅为79,000个字节/秒时,较旧的系统会终止该服务,不可接受地延迟视频帧或随机丢弃帧。所有这些场景均可能导致用户不可接受的质量。
然而,如果在视频服务内将这些帧优先化,则可基于负荷或类似度量与对具有相同优先级的帧之间的均匀丢弃间隔的期望的组合将其智能丢弃。为了最小化对视频流的质量的影响,丢弃适应新带宽限制内所需的最少数量的帧是令人期望的。通过以均匀的方式丢弃25%的B帧,可将需求较低至77,083个字节/秒,从而适应该实例中的可用带宽。为了进一步降低视频质量降级的可能性,可均匀地丢弃B帧,从而使得(例如)视频解码器中的插值系统可以将恢复伪影最小化。在该实例中,丢弃B帧3005(2)和3005(6),如图29所示。或者,丢弃B帧3005(4)和3005(8)可同样均匀地分布丢弃。可以采用上述优先化方法来预定这些选择。
可采用视频平均意见得分(VMOS)或替代定量法来测量视频流的质量,前文已描述这些方法的实例。可基于可随时间改进的测量来预测可归因于丢弃策略的VMOS降低。
如图30和图31所示,通过如上文所讨论的对视频流内的包进行优先化,可丢弃越来越多的帧(如果需要),同时使视频质量的降级最小化。在终止服务之前允许降级的质量的程度可由运营商策略或用户偏好来控制。
下表表明上述技术提供了尽可能与GOP中的帧一样多的带宽需求或丢弃级别。另外,其它较细粒度的丢弃级别可通过丢弃帧的部分(如片)或通过采用GOP间技术(如每隔一个GOP丢弃一个B帧或每3个GOP丢弃两个B帧)来实现。
这些丢弃级别中的每一级均使视频服务的质量降级或降低。然而,正如编码器和解码器的性能可通过诸如VMOS的度量来量化一样,由于智能丢弃导致的降级也可采用这些度量来量化。这可通过测量针对多个常见GOP的由于丢弃导致的VMOS降低(如本文所述)并且获取度量以用于估算VMOS降低来实现。
这样,视频服务可具有一组相关的带宽要求,每个要求均与一个质量度量匹配。运营商策略或用户偏好可指示一个质量度量值,达到这个值时服务被视为不可接受且被终止,而非进一步降级。例如,可采用超过每隔一个B帧的丢失是不可接受的的策略。在该实例中,如图29所示,可丢弃四个B帧/GOP,这降低了19.5%的带宽需求。如果需要进一步降低带宽,则服务将被终止或暂停,或者不同的服务可被终止、暂停或使丢弃应用于降低其需求,从而降低总系统需求。该丢弃可如图25或图26此前所示来进行。
对于H.264SVC视频流的各种丢弃场景,可产生带宽需求降低和视频质量降级之间的一组类似的关系。例如,特定视频流的每个dependency_id、quality_id和temporal_id级别可与估算的该流所需的带宽降低相关,并且还可与估算的视频质量降低相关。类似地,该组参数的级别的每种组合可与估算的带宽降低以及相应的视频质量降低相关。通过在带宽降低和所得降级之间建立这些联系,智能丢弃机制可以最佳方式丢弃缓解或避免拥塞所需的数据量,同时将视频质量降低保持在策略的限制范围内。
本领域的技术人员将理解,可以不同方式将质量度量值应用于各个视频流、视频流应用(如Youtube与Netflix)、用户、用户SLA类别、服务类别、调度程序队列或其组合。例如,如果MPEG-4和H.264SVC流同时存在,则质量度量的应用将部分地基于视频技术的特性。在一个实施方案中,可将MPEG-4流中的包优先化至高于H.264SVC流中的包,因为MPEG-4流的视频质量受丢弃的影响大于H.264SVC流。类似的优先化可与其它视频编码一起使用,以使得使用具有较高抗丢弃性的协议来编码的视频流中的包更可能被丢弃。
在一个实施方案中,图25的步骤2520中使用的丢弃标准可基于队列深度。如果服务于视频流的队列达到其容量的x%,则可开始丢弃B帧,直到该队列降低至低于x%充满。在一些实施方案中,通过包括在丢弃开始和结束的级别之间的增量来提供滞后。另外,当队列为x’%(x’>x)充满时,则可丢弃P帧。由于队列深度的增加可为整个链路拥塞的迹象或单个流需要比对其容许的带宽更多的带宽的迹象,例如根据用户服务协议,该技术允许将智能丢弃应用于单个流,而不管无线链路整体是否拥塞。本领域的技术人员将意识到,也可响应于SLA限制而非总体链路拥塞来应用前面的段落中描述的将速率降低与质量降级匹配的方法。
在另一个实施方案中,当队列为x%充满时,优选均匀地丢弃y%的B帧。当队列为x’%(x’>x)充满时,则可优选均匀地丢弃y’%(y’>y)的B帧。这可被扩展至可触发丢弃一定百分比的P帧的其它缓冲器充满级别。该方法也可应用于其它类型的数据流。如前所述,均匀地丢弃一定百分比的VoIP帧是有意义的。对VoIP包的这种智能丢弃可通过将缓冲器深度作为丢弃标准来进行。作为包被放置在队列中时图25的步骤2520中的丢弃的替代形式,该丢弃可在从队列中提取包时在图26的步骤2650中实施,这会导致队列更快地排空。
速率与VMOS之间的关系可用于接纳新服务。例如,如果用户想要启动需要85,417个字节/秒的带宽的视频流(如前一个实例)但仅79,000个字节/秒可用,则系统将知道,仍然可以接纳该服务,但以丢弃2个B帧/GOP所提供的降低的质量来进行,以实现77,083个字节/秒的带宽需求。如果所述降低对于运营商策略和用户偏好是可接受的,则将接纳而非拒绝该服务。或者,如果策略允许使一个不同的服务的带宽需求降低,则系统可将对释放带宽的该其它服务的带宽降低量用来使新服务可以被接纳。该呼叫接纳控制(CAC)方法在图32所示的流程图中示出,并且在一个实施方案中,该方法通过图24所示的呼叫接纳控制模块2460来实施。
在步骤3205,系统接收新服务请求。该请求可来自请求服务的用户设备或可来自启动该服务的外部实体。例如,充满人的房间与携带移动手持装置的参与者之间的视频会议呼叫可由无线手持装置的用户发起,或者可使用附接至会议室视频会议设备的陆上通讯线发起。在步骤3210,进行检验以确定是否有足够的系统资源来接纳该服务。呼叫接纳控制通常用于很多通信系统中,并且本领域的技术人员将理解用于特定通信系统的这些标准方法被涉及。例如,美国专利7,529,204(据此以引用方式并入)描述了用于采用自适应调制的通信系统中的呼叫接纳控制。如果有足够的资源,则在步骤3215中接纳该服务。如果在步骤3210中确定无足够的资源来接纳该服务,则流程继续到步骤3230,这时进行检验以确定是否可以降级的形式来接纳该服务。如果可以降级的形式来接纳该服务,则流程进行到步骤3235,这时该服务被降级,例如选择某个丢弃级别,使得25%的B帧被丢弃,然后在步骤3240中接纳该服务。如果步骤3230确定不能在策略的范围内将该服务充分地降级以符合资源限制范围,则流程进行到步骤3270,这时确定是否可将一个不同的服务或服务的某种组合(可能包括该新服务)充分地降级以便可接纳该新服务。如果在步骤3270中确定可将服务的集合充分地降级,则流程进行到步骤3275,对所识别的服务降级,并且在步骤3280中接纳该新服务。如果在步骤3270中确定没有服务的集合可以被充分地降级,则流程进行到步骤3290,这时新服务请求被拒绝。
在替代实施方案中,可从该方法中移除步骤3230、3235和3240这一组步骤。反之,可从该方法中移除步骤3270、3275和3280。
所述CAC方法可在无线基站或另一种网络中的等效设备(如DOCSIS线缆调制解调器系统中的头端)中执行。或者,该方法可在核心网络中的管理实体(如服务网关)上执行。
虽然在可采用本发明的方法来降级的视频服务的背景下描述了上述CAC方法,但是本领域的技术人员将理解,该方法适用于可降级的所有服务,如具有最小保证速率但允许突然达到最大数据率的数据服务,或者其中策略将允许丢失或丢弃一定百分比(例如5%)的包的基于IP的语音传输(VoIP)服务。
除了设置服务的降级级别以便可接纳新服务之外,一种类似的方法还可用于诸如WiMAX和LTE的系统中,在这些系统中系统资源可能会由于变化的环境条件及其对PHY参数(如调制、编码和MIMO模式)的选择的影响而发生动态变化。图33为一种方法的流程图,所述方法允许在资源减少的情况下使服务柔性降级,从而避免随机丢弃或者过度暂停或终止服务。在一个实施方案中,该方法通过图2B所示的呼叫接纳控制模块2460来实施。
在步骤3310,发生减少系统资源的事件,并且识别系统资源的减少。这可能例如由移动至小区(cell)边缘且需要更稳健的编码和调制的移动手持装置引起。流程进行到步骤3320,这时进行检验以确定当前服务在其当前状态下是否仍具有足够的资源可用。如果在步骤3320中确定当前服务具有足够的资源可用,则流程进行到步骤3330,这时不采取动作。如果步骤3320确定当前服务在其当前状态下不再具有足够的资源可用,则流程进行到步骤3340。在步骤3340,进行检验以确定是否可将服务的某种组合降级以使这些服务可在新资源限制范围内继续操作。该确定可按照结合图5的步骤540的讨论来进行。通常,系统确定服务的某种组合是否可通过选择性丢弃与该服务的某种组合相关的包来降级,选择性丢弃根据预定标准施与最小的总体服务降级并且不超出对任何服务的最大可容许降级。如果存在可被降级以允许服务继续操作的服务组合,则流程进行到步骤3350,这时那些服务被降级。如果不存在可被降级以允许服务继续操作的服务组合,则流程进行到步骤3360,这时识别要暂停或终止的服务。选择要暂停或终止的服务可基于多种因素,包括释放的资源量、服务的优先级、签约服务等级协议和服务用户的链路质量。步骤3360可任选地将一些服务的降级与其它服务的暂停或终止结合,以最小化需暂停或终止的服务的数量。
本领域的技术人员将理解,在系统资源增加之后,例如当移动手持装置离开小区或变成更有效的调制和编码方案时,可放宽服务的降级,并且可恢复暂停的服务。
对于VBR服务,可甚至更大程度地维持质量和资源的有效利用。对于VBR流,帧大小的上限可能受限,但平均帧大小可能较小。在一些GOP期间,很多帧可能较小。这可使得在CBR的情况下必然丢弃的一些帧被保留下来。为此,优选的实施方案采用出口丢弃,如参照图26所述。在图26所示的方法中,增加步骤2650,以在步骤2670中可调度包以供传输(如果存在足够的系统资源),即使在步骤2650中已确定包满足丢弃标准。例如,如果GOP的平均大小(以字节计)充分小于当时的平均值,从而使需求小于在设置服务的丢弃级别时预期的需求,则会发生此类事件。
宽带系统中VBR视频流的统计多路复用进一步可使一个流在另一个流具有暂时性低带宽需求时受益。例如,在一个实施方案中,图26的增加的步骤2650使得步骤2650所确定的来自一个服务的满足丢弃标准的视频帧可以由步骤2670来调度以供传输,前提是一个不同的服务或所有服务的组合已使用少于在确定丢弃级别时预期的系统资源。
描述的优先级方案可与做出最后时刻的决策以最大化帧保留的调度程序一起使用,或者可与预期会发生拥塞时进行主动丢弃的调度程序一起使用。优先级方案也可与以下调度程序一起使用,该调度程序采用主动丢弃以接近服务的目标带宽消耗,但保持在目标带宽消耗以上,然后进行最后时刻的丢弃以最大化统计多路复用增益。
在另一个实施方案中,优先级用于将不同老化应用于来自相同流的包。例如,LTE标准要求在将包排队的时间达到某个队列特定时间而没有将其发送之后将该包老化掉,即丢弃。通过不均匀老化,使得较低优先级的包保持排队状态的时间比较高优先级的包更短,然后将其丢弃。在拥塞期间,由于可被允许处于队列中的时间较短,该方法使较低优先级的包优先于较高优先级的包被丢弃。此方案可针对多个优先级(或负荷)级别中的每一种关联不同的可允许处于队列中的时间。这样,如果带宽在时间上可用,则发送包,但如果发生拥塞,则以优先级顺序丢弃包,从而在存在应用了该机制的多个流时获得统计多路复用增益。这也使得可对拥塞进行更瞬时的反应。
本领域的技术人员将意识到,上述优先化可用于除了智能丢弃之外的目的,例如通过提供关于可丢弃多少来自视频服务的数据同时又维持所需的服务质量的附加信息来增强呼叫接纳控制,从而使得比在无该信息的情况下可能被接纳的服务更多的服务被接纳。
如上所述,上述包丢弃和帧分析可通过通信设备或系统来进行,这些通信设备或系统包括但不限于接入点、基站、宏蜂窝基站、微微蜂窝基站、企业毫微微蜂窝基站、家庭毫微微蜂窝基站、中继基站、小封装基站、用户站、核心网络系统或其它设备。在一些实施方案中,这些通信设备可包括操作以实现本文所述功能的一个或多个处理器、收发器、天线系统以及计算机可读存储器或介质。
技术人员将意识到,结合本文所公开的实施方案描述的各种示例性逻辑块、模块、单元以及算法和方法步骤通常可作为电子硬件、计算机软件或这两者的组合来实施。为了清楚地说明硬件和软件的此可互换性,以上已大体按照各种示例性部件、单元、块、模块和步骤的功能对其进行了描述。此功能是作为硬件还是软件来实施取决于施加于整个系统的特定系统和设计限制。技术人员可以不同方式对每种特定系统实施所述功能,但此类实施决策不应被理解为导致脱离本发明的范围。另外,单元、模块、块或步骤内的功能分组是为了便于描述。在不脱离本发明的情况下,可从一个单元、模块或块中移动具体功能或步骤。
结合本文所公开的实施方案描述的各种示例性逻辑块、单元、步骤和模块可通过被设计成执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件部件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代形式中,处理器可为任何处理器、控制器、微控制器或状态机。处理器也可作为计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、连同DSP核的一个或多个微处理器,或任何其它此类配置)来实施。
结合本文所公开的实施方案描述的方法或算法的步骤以及块或模块的过程可直接在硬件、由处理器执行的软件模块(或单元)或这两者的组合中体现。软件模块可位于RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM,或者任何其它形式的机器或计算机可读存储介质中。示例性存储介质可耦接至处理器,使得处理器可从该存储介质中读取信息以及向该存储介质写入信息。在替代形式中,存储介质可为构成处理器的必要部分。处理器和存储介质可位于ASIC中。
各种实施方案也可通过使用(例如)专用集成电路("ASIC")或现场可编程门阵列("FPGA")等部件主要在硬件中实施。
提供了所公开实施方案的上述说明,以使得本领域的任何技术人员均可实现或使用本发明。对这些实施方案的各种修改对于本领域的技术人员而言将是显而易见的,并且在不脱离本发明的精神或范围的情况下,本文所述的一般原则可应用于其它实施方案。因此,应当理解,本文提出的描述和附图表示本发明的目前优选的实施方案,并因此表示本发明广泛考虑的主题。还应当理解,本发明的范围完全包含了可能对本领域的技术人员变得显而易见的其它实施方案。