CN101341756A - 用于视频电话的视频源速率控制 - Google Patents
用于视频电话的视频源速率控制 Download PDFInfo
- Publication number
- CN101341756A CN101341756A CN 200680048468 CN200680048468A CN101341756A CN 101341756 A CN101341756 A CN 101341756A CN 200680048468 CN200680048468 CN 200680048468 CN 200680048468 A CN200680048468 A CN 200680048468A CN 101341756 A CN101341756 A CN 101341756A
- Authority
- CN
- China
- Prior art keywords
- video
- frame
- filling
- buffer
- degree
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及用于视频电话(VT)应用的视频源速率控制的技术。可使用帧预算的基于双缓冲器的估计来控制源视频编码速率,所述帧预算界定可用于视频帧的编码位数目。基于双缓冲器的估计技术可跟踪物理视频缓冲器的充满度和虚拟视频缓冲器的充满度。接着基于所得的帧预算来控制源视频编码速率。所述虚拟缓冲器的内容取决于由目标编码速率强加的限制,而所述物理缓冲器的内容取决于由变化的信道条件强加的限制。对物理视频缓冲器充满度的考虑允许视频源速率控制技术是信道自适应的。对虚拟视频缓冲器充满度的考虑允许视频源速率控制技术避免对可占满信道的过量视频进行编码。
Description
本申请案主张2005年10月27日申请的第60/731,614号美国临时申请案的权利。
技术领域
本发明涉及视频电话(VT),且更明确地说涉及用于VT系统中的视频源速率控制的技术。
背景技术
视频电话(VT)涉及载运音频和视频数据的包的实时通信。VT装置包含视频编码器,其从例如视频相机或视频档案的视频捕获装置获得视频,并产生视频包。类似地,VT装置中的音频编码器从例如麦克风或语音合成器的音频捕获装置获得音频,并产生音频包。视频包和音频包放置在无线电链路协议(RLP)队列中。媒体接入控制(MAC)层模块从RLP队列的内容产生媒体接入控制(MAC)层包。将MAC层包转换为物理(PHY)层包以用于在通信信道上传输到另一VT装置。
在移动VT应用中,VT装置经由从基站到作为无线终端的VT装置的无线前向链路(FL)(或“下行链路”)接收物理层包。VT装置经由到基站的无线反向链路(RL)(或“上行链路”)传输PHY层包。每一VT装置包含PHY和MAC层以转换所接收的PHY和MAC层包,并将包有效负载重新组合为音频包和视频包。VT装置内的视频解码器对视频数据进行解码以用于经由显示装置向用户呈现。VT装置内的音频解码器对音频数据进行解码以用于经由音频扬声器输出。
无线环境中的移动VT可为挑战性的。无线信道的数据速率有限且随着时间变化。举例来说,在CDMA20001xEV-DO版本0网络中,数据速率可能由于无线覆盖区域内的信道条件或多个VT用户之间的业务拥塞而变化。另外,当数据速率降到零时,例如当没有要发送的数据时,恢复到合理的数据速率可能需要时间。因此,移动VT可能易于受到不合意的视频和音频延迟的影响,这损害了实时进行流畅的视频会议的能力。
发明内容
大体上,本发明针对用于VT应用的视频源速率控制的技术。信道条件、过量的视频内容或两者可引起视频传输中的显著延迟。例如,当反向链路(RL)通过量减小时,视频可占满RL并增加视频传输延迟。本发明提供用于控制源视频编码速率以减小信道条件范围内的视频延迟的技术。在此意义上,视频源速率控制技术可为信道自适应的。所述技术在当视频源编码速率由于信道条件或过量的视频内容或复杂性而减小时减少空间和时间质量降级方面是有效的。
在一些实施例中,使用帧预算的基于双缓冲器的估计来控制源视频编码速率,所述帧预算界定可用于所述视频帧的编码位数目。基于双缓冲器的估计技术可跟踪物理视频缓冲器相对于阈值的充满度和虚拟视频缓冲器相对于阈值的充满度。接着基于所得的帧预算来控制源视频编码速率。所述虚拟视频缓冲器的内容取决于由目标编码速率强加的位限制,而所述物理视频缓冲器的内容取决于由变化的信道条件(例如,RL通过量)强加的信道限制。
对物理视频缓冲器充满度的考虑允许视频源速率控制技术为信道自适应的。物理视频缓冲器中经编码视频量至少部分是信道可容纳额外视频包的速率的函数。对虚拟视频缓冲器充满度的考虑允许视频源速率控制技术避免对可占满信道的过量视频进行编码。
视频源速率控制技术可结合信道自适应视频包成形技术使用,所述成形技术基于信道条件控制从物理视频缓冲器提取的视频包的大小。信道条件影响从物理视频缓冲器移除的视频量,所述量提供对用于制订帧预算的信道条件的间接指示。一旦帧预算确立,那么也可在ρ域中估计视频块预算,以将帧预算的一部分分配到每一帧内的个别视频块。
在一个实施例中,本发明提供一种方法,其包括:将经编码视频添加到物理视频缓冲器;从所述物理视频缓冲器移除所述经编码视频包以用于在信道上传输;维持虚拟视频缓冲器,其表示相对于目标编码速率的经编码视频的量;以及基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
本发明还预期一种计算机可读媒体,其包括用以致使一个或一个以上处理器执行此方法的指令。举例来说,本发明还提供一种计算机可读媒体,其包括用以致使一个或一个以上处理器进行以下操作的指令:将经编码视频添加到物理视频缓冲器;从所述物理视频缓冲器移除所述经编码视频包以用于在信道上传输;维持虚拟视频缓冲器,其表示相对于目标编码速率的经编码视频的量;以及基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
在另一实施例中,本发明提供一种系统,其包括:视频编码器;物理视频缓冲器,其存储由所述视频编码器编码的视频;包成形器,其从所述物理视频缓冲器移除所述经编码视频以用于在信道上传输;虚拟视频缓冲器,其表示相对于目标编码速率的所述经编码视频量;以及控制器,其基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
在附图和下文的描述中陈述一个或一个以上实施例的细节。从描述和图式以及从权利要求书将明了其它特征、目的和优点。
附图说明
图1是说明用于VT应用的音频/视频编码和解码系统的框图。
图2是说明实施视频源速率控制的视频编码系统的框图。
图3是说明图2的视频编码系统的示范性实施例的框图,其中视频源速率控制使用基于双缓冲器的帧预算估计。
图4是说明图2的视频编码系统集成在实施信道自适应视频包成形的音频/视频编码系统内的框图。
图5是说明用于视频源速率控制的技术的流程图。
图6是更详细说明用于视频源速率控制的技术的流程图。
具体实施方式
图1是说明视频编码和解码系统10的框图。如图1所示,系统10包含编码器系统12和解码器系统14,其通过传输信道16连接。在图1的实例中,编码器系统12与第一视频通信装置相关联,且包含音频源17、视频源18、视频编码器20、音频编码器22、视频包成形器24、实时传送协议(RTP)/用户数据报协议(UDP)/因特网协议(IP)/点对点协议(PPP)转换模块26、无线电链路协议(RLP)队列28、MAC层模块30和物理(PHY)层模块32。解码器系统14与另一视频通信装置相关联,且包含PHY层模块34、MAC层模块36、RLP队列38、RTP/UDP/IP/PPP转换模块40、视频解码器42、音频解码器44、音频输出装置46和视频输出装置48。
如将描述,视频编码器20提供信道自适应视频源速率控制以减少可变信道通过量条件(例如存在于例如CDMA20001xEV-DO版本0网络中的那些条件)下的视频延迟。反向链路(RL)通过量是EV-DO版本0网络内视频延迟的关键因素。视频编码器20可至少部分地根据RL通过量来控制视频源编码速率。视频编码器20可有用于具有较低端到端延迟要求(例如,小于500毫秒)的环境中。端到端延迟指例如在移动无线VT系统中发送者与接收者之间视频传输的延迟。如本发明中描述的信道自适应源速率控制可自适应地控制视频传输的端到端延迟,同时当以恒定位速率(CBR)或可变位速率(VBR)传输信道(例如无线信道)操作时在空间与时间视觉质量之间做出折衷。
视频编码器20可有效减少在视频源编码速率由于信道条件或过量视频内容或复杂性而减小时的空间和时间质量的降级。现有的速率控制方案不支持在空间与时间视频质量之间的合理折衷的情况下合意的端到端延迟。例如较小的固定视频缓冲器大小的使用可导致较大百分比的跳帧,从而引起急跳运动和低空间视觉质量。相反地,较大视频缓冲器大小的使用可产生较好的空间质量,但往往导致可让最终用户不安和烦扰的较大可变延迟。
大体上,可通过参考包含缓冲和传输延迟的端到端延迟、空间视觉质量、跳过视频帧的数目、指示带宽利用不足的编码器缓冲下溢、引起帧跳过的编码器缓冲溢出、指示没有数据要解码和较少显示刷新的解码器缓冲下溢、指示丢失数据的解码器缓冲溢出、接收器显示刷新速率、音频-视频同步、编码器侧峰值信噪比(PSNR)以及第一内(I)帧后的初始缓冲延迟来评估视频源编码速率控制的性能。
根据本发明的视频编码器20可采用基于双缓冲器的方案以用于估计帧预算,所述帧预算界定可用于视频帧的编码位的数目。基于双缓冲器的估计技术可跟踪物理视频缓冲器相对于阈值的充满度和虚拟视频缓冲器相对于阈值的充满度。接着基于所得的帧预算来控制源视频编码速率。虚拟视频缓冲器的内容取决于由目标编码速率强加的位限制,而物理视频缓冲器的内容取决于由变化的信道条件(例如,反向链路(RL)通过量)强加的信道限制。以此方式,视频编码器20可能能够以较低跳帧和良好空间质量支持指定的目标编码速率以及指定的端到端延迟。
在一些实施例中,视频编码器20可结合视频包成形器24而工作,所述视频包成形器24基于信道条件执行视频包成形。举例来说,视频包成形器24可以至少部分基于信道条件的包大小将视频包化。在一些实施例中,视频包成形器可将音频包传输优先于视频包传输,以便避免过量的音频延迟。视频包成形器24可控制视频包的大小以及为在信道16上传输而从物理视频缓冲器移除视频包的速率。
视频包的大小和速率又影响物理视频缓冲器的充满度。对于不良信道条件,视频包的大小以及产生视频包的速率可由视频包成形器24减小以避免占满RL。对于较好的信道条件,视频包的大小以及产生视频包的速率可由视频包成形器24增加。视频编码器20监视物理视频帧缓冲器充满度以及虚拟视频帧缓冲器充满度,以根据信道条件和位限制自适应地控制编码速率。
系统10可提供双向视频和音频传输以例如用于经由传输信道16的视频电话。因此,通常可在信道16的相对端上提供可逆编码、解码和转换模块。在一些实施例中,编码器系统12和解码器系统14可实施在视频通信装置内,例如为视频串流、视频电话或两者而装备的无线移动终端。移动终端可根据例如RTP、UDP、IP或PPP的包交换标准来支持VT。
RTP/UDP/IP/PPP转换模块将适当的RTP/UDP/IP/PPP标头数据添加到从音频编码器22和视频包成形器24接收的音频和视频数据,并将数据放置在RLP队列28中。RTP在UDP的顶部运行,而UDP在IP的顶部运行,且IP在PPP的顶部运行。MAC层模块30从RLP队列28的内容产生MAC RLP包。PHY层模块32将MAC RLP包转换为PHY层包以用于在信道16上传输。
解码系统14的PHY层模块34和MAC层模块36以可逆方式操作。PHY层模块34将从信道16接收的PHY层包转换为MAC RLP包。MAC层模块36将MAC RLP包放置到RLP队列38中。RTP/UDP/IP/PPP转换模块40从RLP队列38中的数据剥离标头信息,并重新组合视频和音频数据以用于分别传达到视频解码器42和音频解码器44。
系统10可经设计以支持一个或一个以上无线通信技术,例如码分多址(CDMA)、频分多址(FDMA)、时分多址(TDMA)、或正交频分多路复用(OFDM)或另一合适的无线技术。可根据多种无线电接入技术中的任一者来传达以上无线通信技术。举例来说,可根据cdma2000或宽带CDMA(WCDMA)标准来传达CDMA。可根据全球移动通信系统(GSM)标准来传达TDMA。通用移动电信系统(UMTS)标准允许GSM或WCDMA操作。通常对于VT应用,系统10将经设计以支持高数据速率(HDR)技术,例如cdma20001xEV-DO版本0或后续的EV-DO版本。
视频编码器20根据例如MPEG-4的视频压缩方法产生经编码的视频数据。可使用其它视频压缩方法,例如国际电信联盟(ITU)H.263、ITU H.264或MPEG-2方法。音频编码器22编码音频数据以伴随视频数据。视频源18可以是视频捕获装置,例如一个或一个以上视频相机、一个或一个以上视频档案或视频相机与视频档案的组合。
可根据例如自适应多速率窄带(AMR-NB)或其它技术的音频压缩方法来编码音频数据。音频源17可以是音频捕获装置,例如麦克风或语音合成器装置。对于VT应用,视频将允许一方观看VT会议,且音频将允许所述方的说话声音被听见。
在操作中,RTP/UDP/IP/PPP转换模块26从视频编码器20和音频编码器22获得视频和音频数据包。如先前提到,RTP/UDP/IP/PPP转换模块26将适当的标头信息添加到音频包,并将所得的数据插入在RLP队列28内。同样,RTP/UDP/IP/PPP转换模块26将适当的标头信息添加到视频包,并将所得的数据插入在RLP队列28内。MAC层模块30检索来自RLP队列28的数据,并形成MAC层包。每个MAC层包载运RTP/UDP/IP/PPP标头信息和包含在RLP队列28内的音频或视频包数据。
音频包独立于视频包而插入RLP队列28。然而,包成形器24控制添加到RLP队列28的视频包的大小以使得每个音频包可由下一可用的MAC层包载运。在一些情况下,从RLP队列28的内容产生的MAC层包将仅载运标头信息和视频包数据。在其它情况下,MAC层包将仅载运标头信息和音频包数据。
在许多情况下,MAC层包将载运标头信息、音频包数据和视频包数据,其取决于RLP队列28的内容。MAC层包可根据无线电链路协议(RLP)来配置,且可称为MACRLP包。PHY层模块32将MAC RLP音频-视频包转换为PHY层包以用于在信道16上传输。
信道16将PHY层包载运到解码器系统14。信道16可为编码器系统12与解码器系统14之间的任何物理连接。举例来说,信道16可以是有线连接,例如局域或广域有线网络。或者如本文所述,信道16可以是例如蜂窝式、卫星或光学连接的无线连接。信道条件可为有线和无线信道的重点,但对于经由无线信道16执行的移动VT应用来说尤其成问题,其中信道条件可能由于衰退或拥塞而受影响。
根据本发明,视频编码器20对来自视频源18的视频进行编码,并将经编码视频添加到物理视频缓冲器。视频包成形器24将物理视频缓冲器内的视频内容包化,并从物理视频缓冲器移除经编码视频包以用于在信道16上传输。视频包成形器24从物理视频缓冲器移除视频包的速率以及包的大小部分地取决于与信道16相关联的信道条件。举例来说,信道16的特征可在于具有根据信道条件而变化的通过量的反向链路(RL)。
视频编码器20维持虚拟视频缓冲器,所述虚拟视频缓冲器表示相对于目标编码速率的经编码视频的量。目标编码速率可为针对在信道16上传输的视频包指定的最大编码速率。视频编码器20基于物理视频缓冲器的充满度和虚拟视频缓冲器的充满度来控制来自视频源18的视频的实际编码速率。对物理视频缓冲器充满度的考虑允许视频编码器20应用的视频源速率控制为信道自适应的。物理视频缓冲器中的视频量部分地是信道可容纳额外视频包的速率的函数。对虚拟视频缓冲器充满度的考虑允许视频编码器20应用的视频源速率控制技术避免了在给定最大目标编码速率时对可占满信道的过量视频进行编码。
视频包成形器24控制提供到RTP/UDP/IP/PPP转换模块26的每个视频包的大小。视频包成形器24可为任何包化器,其将物理视频缓冲器中的视频包化并移除视频包以用于在信道16上传输。然而在一些实施例中,视频源速率控制技术可结合信道自适应视频包成形技术而使用,所述成形技术部分地基于信道条件控制从物理视频缓冲器提取的视频包的大小,并将来自音频编码器22的音频包的传输列入优先。
举例来说,视频包成形器24可调整视频包的大小以使得每个音频包可由下一可用的MAC层包容纳。受控的对视频包的大小调整防止了由信道条件、较大视频包或两者引起的音频延迟。当音频包可用时,其被置于RLP队列中用于包含在由MAC层模块30产生的下一可用的MAC RLP包中。音频包可与经大小调整以允许用于将音频包置于MACRLP包内的空间的视频包相组合。通过将音频列入优先,可在没有实质延迟的情况下传送VT会议的音频部分,即使视频部分可能经受由于信道条件带来的延迟。尽管视频可能受到信道条件损害,但视频包成形器24将音频列入优先以确保VT会议的各方仍能够流畅地进行口头对话。
视频包成形器24可经配置以在其能够基于信道条件调节视频包大小的意义上为信道自适应的。以此方式,编码器系统12可将音频包的传输列入优先以避免在信道条件不良时的音频延迟。同时,视频包成形器24可确保音频列入优先不会导致视频包不完全包化。换句话说,视频包成形器24将视频包的大小调整为足够小,以允许在下一可用的MAC RLP包中包含一个或一个以上音频包,但不是太小而使得浪费MAC RLP包中的过量空间。因此,视频包成形器24可支持音频包的列入优先和视频包的有效传输。当应用信道自适应视频包成形时,可以视频延迟增加为代价实现对音频数据给定的较高优先级。当反向链路(RL)通过量减小时视频延迟增加。根据本发明,为了避免过量的视频延迟,根据信道通过量控制视频源速率。
解码器系统14的PHY层模块34识别MAC层包与PHY层包,并将内容重新组合为MAC RLP包。MAC层模块36接着重新组合MAC RLP包的内容以提供用于插入RLP队列38内的视频和音频包。RTP/UDP/IP/PPP模块40移除伴随的标头信息并将视频包提供到视频解码器42,将音频包提供到音频解码器44。视频解码器42对视频数据帧进行解码以产生用于驱动显示装置的视频数据流。音频解码器44对音频数据进行解码以产生用于例如经由音频扬声器呈现给用户的音频信息。
如上论述,视频包成形器24控制提交给RTP/UDP/IP/PPP转换模块26的视频包的大小。具体来说,视频包成形器24可经配置以控制视频包的大小以便将MAC RLP包中的音频包的传输列入优先,并防止视频包占满RLP队列38。以此方式,可在没有实质延迟的情况下传送VT会议的音频部分,即使视频部分可能经受由于信道条件带来的延迟。尽管视频可能受到信道条件损害,但视频包成形器24确保VT会议的各方仍能够流畅地进行口头对话。
视频包成形器24应用的包成形技术可应用一个或一个以上规则以确保音频包的优先传输。例如根据一个规则,应在从RLP队列28的内容产生的刚好下一可用的MAC RLP包中发送音频包。音频帧由音频编码器22在第一周期性间隔产生。MAC RLP包由MAC层模块30在第二周期性间隔产生。在给定间隔产生的音频帧应置于由MAC层模块30产生的下一可用的MAC RLP包中。在一些实施例中,作为选择,RLP队列28的总输出队列大小以及音频包大小应能够在一个MAC RLP包中载运。
可相对于VT序列的每个包应用各种规则。尽管可以确保可在单一MAC RLP包中载运音频和视频的方式固有地调整一些视频包的大小,但其它视频包可能较大,且需要减小大小以便确保尤其是在信道条件降级时可在单一MAC RLP包中载运音频和视频。通过相对于VT序列的每个包应用所述技术,即使视频的内容非常多或者信道带宽实质有限,也可确保令人满意的语音通信。
视频包成形器24控制提交给RTP/UDP/IP/PPP转换模块26的每个视频包的大小以用于插入RLP队列28中。视频包成形器24可确保音频包不会由于非常多的视频内容对连续MAC RLP包的消耗而延迟。替代地,当音频可用时,将来自视频编码器20的视频划分为具有经选择以允许每个MAC RLP包载运音频和视频的大小的包。每个音频帧可用作提供到RLP队列28的音频包。或者在一些实施例中,音频包可捆扎以连续间隔提供的多个音频帧。
在一些实施例中,视频包成形器24可基于针对在连续音频帧之间产生的MAC层包的估计信道通过量确定每个MAC层包的视频包大小。可基于由当前无线信道传输速率、无线基站活动以及传输功率限制中的一者或一者以上表示的信道条件来估计通过量。举例来说,可基于当前MAC层数据速率、反向活动(RA)位以及功率放大器(PA)限制来确定信道条件。根据本发明,视频编码器20部分地基于物理视频缓冲器充满度而应用自适应源速率控制。在此情况下,如果信道条件不支持视频编码速率,那么视频编码器20可减小源视频编码速率。
图2是说明实施视频源速率控制的视频编码系统10的框图。如图2所示,视频编码器20包含视频编码引擎50、物理视频缓冲器52和视频速率控制器54。视频编码引擎50从视频源18获得视频数据,并以视频速率控制器54控制的速率对视频数据进行编码。视频编码引擎50接着将经编码视频置于物理视频缓冲器52中。视频包成形器24从视频缓冲器52移除视频数据,并将视频数据包化以用于在信道16上传输。视频包的大小可部分地随信道16上的信道条件(例如RL通过量)而变。视频速率控制器54监视物理视频缓冲器52的充满度,并至少部分地基于所述充满度来控制视频编码引擎50应用的视频编码速率。
可根据物理视频缓冲器52的当前充满度以逐帧为基础更新编码速率。另外,如将描述,视频速率控制器54可维持虚拟视频缓冲器。以此方式,视频速率控制器54可使用帧预算的基于双缓冲器的估计来控制源视频编码速率,所述预算界定可用于视频帧的编码位的数目。基于双缓冲器的估计技术跟踪物理视频缓冲器52相对于阈值的充满度和虚拟视频缓冲器相对于阈值的充满度。接着视频速率控制器54基于所得的帧预算来控制源视频编码速率。
虚拟视频缓冲器的内容取决于由目标编码速率强加的位限制,而物理视频缓冲器52的内容取决于由变化的信道条件(例如,RL通过量)强加的信道限制。可根据RL通过量缩放虚拟视频缓冲器的大小。对物理视频缓冲器52的充满度的考虑允许视频源速率控制技术为信道自适应的。物理视频缓冲器52中的视频量部分地随信道16可容纳额外视频包的速率而变化。对虚拟视频缓冲器充满度的考虑允许视频速率控制器54避免对可占满信道16的过量视频进行编码。虚拟视频缓冲器的充满度可随目标编码速率而变化,例如包含目标位速率和目标帧速率。实际上,虚拟视频缓冲器可用于控制帧位分配和/或跳帧。
视频编码器20可提供若干合意的特征。举例来说,视频编码器20可提供大体上CODEC独立的视频源速率控制方案。举例来说,可根据MPEG4、ITU H.263或ITU H.264来调整视频编码器20以用于视频编码。另外,视频编码器20可能容易受DSP或嵌入式逻辑核心内的简单实施方案的影响。在一些实施例中,视频编码器20可应用基于模型的速率控制,例如在ρ域中应用视频块速率控制。举例来说,一旦针对特定视频帧确立帧位预算,那么可使用ρ域速率控制在帧内的视频块(例如,宏块(MB))之间分配帧位预算。接着可将个别MB的ρ域值映射到量化参数(QP)值。
图3是说明图2的视频编码系统10的示范性实施例的框图,其中视频源速率控制使用基于双缓冲器的帧预算估计。如图3所示,视频编码引擎50从视频源18获得视频并例如根据MPEG4或其它编码技术产生经编码视频数据位流。将经编码视频置于物理视频缓冲器52中。在图3的实例中,视频速率控制器54包含速率控制单元56、缓冲器信息单元58以及虚拟视频缓冲器60。缓冲器信息单元58监视物理视频缓冲器52的充满度,其随由视频包成形器24从物理视频缓冲器移除的视频包的大小而变化。视频包的大小又随例如RL通过量的信道限制而变化。另外,缓冲器信息单元58监视虚拟视频缓冲器60的充满度,其随由视频编码器20编码的视频量以及例如目标编码速率(包含目标位速率和目标帧速率)的位速率限制而变化。
基于物理视频缓冲器52的充满度和虚拟视频缓冲器60的充满度,缓冲器信息单元58产生缓冲器值以供速率控制单元56分析。在一些实施例中,缓冲器信息单元58可产生物理视频缓冲器充满度和虚拟视频缓冲器充满度的最大值,作为提供到速率控制单元56的缓冲器值。物理视频缓冲器充满度或虚拟视频缓冲器充满度可通过系数加权以将物理视频缓冲器52优先于虚拟视频缓冲器60,反之亦然。速率控制单元56可首先将从缓冲器信息单元58接收的缓冲器值与跳过阈值Tskip相比较。
如果缓冲器值满足或超过跳过阈值Tskip,那么速率控制单元56指示视频编码引擎50跳过下一视频帧的编码。在此情况下,不需要确定帧预算,因为将不对下一帧进行编码。如果缓冲器值小于跳过阈值Tskip,那么速率控制单元56确定将由视频编码引擎50使用帧预算来编码下一帧。帧预算界定为编码下一视频帧而分配的编码位的数目。
除估计帧位预算(即用于整个帧的位数目)以外,速率控制单元56还可估计视频块预算。视频块预算界定将分配到帧内每个视频块(例如,宏块(MB))的编码位的数目。可在视频块上均匀分配帧预算,或基于视频块预算方案分配帧预算。举例来说,视频块预算可将帧与MB位预算的MB级参数ρ域映射应用于每个MB的量化参数(QP)。在一些实施例中,可对每个MB QP进行后处理以维持均匀的帧内空间质量。可考虑可能跳过的MB的QP以便产生符合MPEG-4的位流。
在一些实施例中,物理视频缓冲器52可经配置以在视频数据驻留在缓冲器内历时超过一阈值的时间周期时丢弃所述视频数据。举例来说,在视频编码引擎50已将特定视频数据帧置于视频缓冲器52中之后,其可能由于不良信道条件而维持在物理视频缓冲器中历时延长的时间周期。在此情况下,尽管可从视频编码引擎50得到较多的经编码视频,但在物理视频缓冲器52中可能没有可用的空间。为了容纳新编码的数据,物理视频缓冲器52可经配置以例如在先入先丢弃基础上丢弃最老的视频数据。丢弃视频数据可能仅涉及抛弃视频数据并用新编码的视频数据覆写由视频数据先前占据的缓冲器空间。丢弃的数据可为一帧数据或某个预定量的数据(例如,以字节为单位测量)。
当视频数据已在物理视频缓冲器52中历时超过阈值的时间周期时可丢弃所述视频数据。或者,用于从物理视频缓冲器52丢弃视频数据的标准可包含超过阈值的时间以及来自编码引擎50的正在编码额外视频数据的指示,所述额外数据需要物理视频缓冲器内的空间。在任一情况下,物理视频缓冲器52中视频数据的至少一部分被丢弃以为新编码视频数据腾出空间。结合丢弃视频数据,物理视频缓冲器52可提供反馈到编码引擎50以指示视频数据将被丢弃。响应于反馈,编码引擎50可在编码过程中应用早期错误控制技术来减轻丢弃的视频数据对视频质量的影响。
图4是说明图2的视频编码系统10在实施信道自适应视频包成形的音频/视频编码系统内的集成的框图。如先前提到,信道自适应视频源速率控制可结合任何视频包化方案使用。然而在一些应用中,可能希望将信道自适应视频源速率控制与信道自适应视频包成形方案一起应用,所述方案例如为先前描述的将音频优先于视频以用于在信道16上传输的视频包成形方案。
如图4所示,视频包成形器24从物理视频缓冲器52移除视频数据,并将视频数据包化以用于传达到RTP/UDP/IP/PPP转换模块26。而且可根据由视频包成形器24接收的信道信息和RLP队列大小所证明的信道条件来确定每个包的大小。音频编码器22包含音频编码引擎61和音频缓冲器/捆扎器62。音频编码引擎61对从音频源接收的音频进行编码。音频缓冲器/捆扎器62接收来自音频编码引擎61的音频数据并产生音频帧以用于传达到RTP/UDP/IP/PPP转换模块26。RTP/UDP/IP/PPP转换模块26将MAC RLP包置于RLP队列28内以用于在信道16上传输。
反向业务信道(RTC)MAC单元64实施RTC MAC协议以提供通信装置在信道16的反向链路(RL)上进行传输所遵循的程序。为了方便,图4中未展示MAC层模块30和PHY层模块32。视频包成形器24基于一个或一个以上输入控制每个视频包的大小。输入可与信道条件、RLP队列特性以及音频包大小和状态有关。视频包成形器24产生具有基于输入估计的大小的视频包。视频包大小可服从最小大小。
视频缓冲器52缓冲从视频编码器20接收的视频信息,并存储视频信息以供视频包成形器24进行包化。音频缓冲器62缓冲从音频编码器22接收的音频帧信息并将信息传递到RTP/UDP/IP/PPP转换模块26。音频和视频包彼此独立地插入RLP队列28中。可控制由视频包成形器24产生的视频包的大小以确保在由MAC层模块30(图4中未图示)产生的下一可用MAC RLP包中将存在用于音频包的足够空间。特定来说,RLP队列28没有被视频包占满,从而确保RLP队列中的音频包可随下一MAC RLP包一起发送。
在图4的实例中,视频包成形器24可接收若干输入,包含音频包定时器、音频优先级值、RLP队列大小以及信道信息。音频包定时器指示音频信息目前在音频缓冲器62中是否可用,且如果是,那么指示将传达每个音频帧的时序。如果以例如每20ms的间隔传达音频帧,那么在音频帧可用时音频包定时器将被设定为20ms。在一些实施例中,音频缓冲器62可经配置以捆扎连续的音频帧以用于并入单个包中。在此情况下,音频包定时器可为对应于捆扎成音频包的帧数目的倍数。换句话说,音频包定时器可具有与捆扎的帧的数目成比例或另外相关的值。如果例如三个音频帧被捆扎,那么音频定时器可被设定为60ms。因此,音频包定时器还指示由音频缓冲器62产生以用于经由RTP/UDP/IP/PPP转换模块26插入RLP队列28的音频包的大小。
音频优先级值界定音频和视频的相对优先级,且因此影响与音频和视频相关联的延迟。举例来说,可确立音频优先级值以使得优先级值越小,音频延迟越低。因此,随着音频优先级值增加,音频延迟增加且视频延迟减小。相反地,随着音频优先级值减小,音频延迟减小且视频延迟增加。因此,音频延迟跟踪音频优先级值。视频包成形器24可使用音频优先级值来控制每个视频包的大小,从而导致规定的音频包延迟,如下文将更详细描述。
由视频包成形器24接收的RLP队列大小表示RLP队列28中缓冲的当前数据的大小。视频包成形器24使用RLP队列大小来控制视频包的大小。如果RLP队列28相对满,那么视频包成形器24可向下调节视频包的大小以避免占满RL和引起过量的音频延迟。如果RLP队列28较不满,那么视频包成形器24可增加视频包的大小,同时仍提供用于音频包的足够空间。通过RLP队列大小,视频包成形器24能够根据RLP队列28的充满度动态地调节视频包大小。RLP队列充满度可指示过量的视频内容、信道条件的降级或两者。RLP队列大小的使用是视频包成形器24可对视频内容的过载或信道条件的改变做出反应的方式之一。
视频包成形器24也可通过监视反向业务信道(RTC)MAC单元64提供的信道信息来对信道条件的改变做出更直接的反应。RTC MAC单元64产生与信道特性有关的信息,例如当前MAC RL速率、组合RA位以及净空限制。MAC RL速率指示在RL上可用的当前传输速率。RA位是反向活动位,其指示相关的无线基站是否繁忙。净空限制可指示基于当前传输功率在传输中允许使用的最大速率。RA位指示何时RL由于基站不活动而拥塞或不可用。PA限制表示传输功率净空且指示何时信道条件已降级。
基于各种输入,视频包成形器24产生有效负载大小估计值。选择有效负载大小估计值以允许将音频包包含在下一可用的MAC RLP包中,如果音频优先级值指定音频将符合高优先级。视频包成形器24接收来自视频缓冲器52的视频,并基于有效负载大小估计和最小视频包大小将视频包化。最小视频包大小表示将由视频包成形器24产生的视频包的最小大小。实际上,最小视频包大小控制视频包大小的粒度和带宽效率。对于较小的最小视频包大小值,视频包成形在容纳音频且因此避免音频延迟方面更有效,但带宽效率较低。对于较大的最小视频包大小值,视频包成形器在避免音频延迟方面效率较低,但提供较高的带宽效率。
如图4进一步展示,视频编码器20经配置以包含视频速率控制器54,其响应于来自物理视频缓冲器52的物理视频缓冲器充满度值。视频编码器20基于视频缓冲器充满度提供自适应源速率控制特征。当视频缓冲器52相对满时,视频速率控制器54通过减小视频编码引擎50应用的视频编码速率而做出响应。当视频缓冲器52较不满时,视频速率控制器54增加源视频编码速率。以此方式,如果信道条件无法支持当前视频编码速率,那么减小视频编码速率。如本文所述,此信道自适应源速率控制特征可实施为双缓冲器帧预算估计技术。下文描述双缓冲器帧预算估计技术的额外细节。
大体上,视频速率控制器54基于物理视频缓冲器52和由视频速率控制器维持的虚拟视频缓冲器的状态来控制视频源编码速率。物理视频缓冲器52接收由视频编码引擎50编码的视频帧。虚拟视频缓冲器60(图3)以逐帧为基础更新,以表示相对于目标编码速率的经编码视频的量。目标编码速率特征可在于目标位速率R和目标帧速率F。目标位速率R的实例是每秒24千位(Kbps)。目标帧速率的实例是每秒7.5帧(fps)。虚拟缓冲器充满度值可由以下表达式表示:
Wn=max(Wn-1+Bn-1-R/F,0) (1)
其中Wn是经编码视频帧n处的虚拟缓冲器充满度,Wn-1是帧n-1处的虚拟缓冲器充满度,Bn-1是视频编码引擎50用于编码帧n-1的实际编码位数目,R是目标位速率且F是目标帧速率。表达式(1)产生零或Wn-1+Bn-1-R/F的最大值。如果Wn-1+Bn-1-R/F的值为负,那么经编码视频的量相对低。
缓冲器信息单元58(图3)基于物理视频缓冲器52和虚拟视频缓冲器60的充满度产生缓冲器值Xn。举例来说,缓冲器值Xn可由以下表达式表示:
Xn=max(w*Vn,Wn) (2)
其中系数w是正整数,且Vn表示帧n处物理视频缓冲器52的充满度。系数w是加权值,其确定将符合物理视频缓冲器充满度对虚拟视频缓冲器充满度的权数。表达式(2)产生w*Vn或Wn中的较大者作为缓冲器值Xn。
速率控制单元56使用缓冲器值Xn来确定是否跳过下一帧。特定来说,如果缓冲器值Xn大于或等于跳过阈值Tskip(即,Xn>=Tskip),那么速率控制单元56指示视频编码引擎50跳过下一帧n+1的编码。当Xn满足或超过跳过阈值Tskip时,视频编码器20处于超过其位限制的危险,如虚拟视频缓冲器充满度所证明,或物理视频缓冲器52例如由于信道条件而太满。举例来说,如果信道条件不良,那么视频包成形器24可减小从物理视频缓冲器52移除的视频包的大小和/或移除包的速率。在此情况下,必须减小视频编码器20应用的编码速率。信道自适应视频包成形提供桥接信道条件与视频源速率控制的介接。缓冲器值Xn将信道条件信息变换为视频缓冲器充满度,其提供信道通过量的间接指示。
如果缓冲器值Xn不满足或超过跳过阈值Tskip(即,Xn<Tskip),那么速率控制单元56(图3)确定帧预算,其界定经分配以用于编码下一帧的位数目。速率控制单元56可根据以下表达式确定帧n的帧预算Bn:
Bn=R/F-Δ (3)
其中,如果Xn>Z*Tskip,那么Δ=Xn/F,如果Xn<=Z*M,那么Δ=Xn-Z*Tskip,且Z为系数。大体上,变化量值Δ是缓冲器充满度(Wn或Vn)、帧速率(F)以及信道通过量(R)的函数。值R(目标位速率)表示信道通过量。值F(目标帧速率)表示帧可传输的速率。值R/F(即,信道通过量R除以帧速率)表示每帧的信道通过量。
如果缓冲器值大于Z乘以跳过阈值Tskip,那么适用的虚拟或物理缓冲器相对满。在此情况下,将缓冲器值Xn除以帧速率F,且将结果从R/F中减去,R/F为目标位速率除以目标帧速率。大体上,此Δ(=Xn/F)的值将导致视频编码引擎50所应用的编码速率的减小。如果缓冲器值小于或等于Z乘以跳过阈值Tskip,那么适用的虚拟或物理缓冲器具有足够的空间来容纳更多的经编码视频。在此情况下,将缓冲器值(Z乘以跳过阈值Tskip的乘积)从缓冲器值Xn中减去。大体上,此Δ(=Xn-Z*Tskip)的值将导致视频编码引擎50所应用的编码速率的增加。
作为说明,在一个实施方案中,可将以下要求应用于视频编码器20所应用的视频源速率控制。如果信道位速率R是48Kbps(6000字节/秒)且帧速率为15fps,那么相应的帧预算为480000/15=3200位=400字节。假定0.4到0.6秒的最大端到端延迟要求(例如,400到600ms,且更特定来说500ms),那么物理视频缓冲器延迟要求小于或等于200毫秒(ms)。在此情况下,虚拟视频缓冲器60的大小可设定为1200字节(200ms*6000字节/秒)。为了满足以上要求,视频源速率控制设计应具有小于或等于每帧1200字节的物理视频缓冲器充满度。另外,物理视频缓冲器52中的编码器缓冲延迟应小于或等于每帧200ms。
视频编码器20在RL通过量减小时减小视频编码速率,但温和地适应于RL通过量以防止对RL通过量的过度反应或反应不足。理想上,在物理视频缓冲器52中应没有缓冲器下溢,或最小缓冲器下溢,以及没有缓冲器溢出或最小缓冲器溢出。缓冲器下溢指示带宽的利用不足,而缓冲器溢出导致跳过帧,即在物理视频缓冲器52中没有足够空间用于容纳经编码视频帧时跳过帧的编码。通过本文描述的基于双缓冲器的速率控制方案,可减小端到端视频延迟,同时增强空间质量。以此方式,可实现良好平衡以实质上最大化给定带宽量下的编码质量。举例来说,可能满足具有低帧跳过且没有或具有最少的缓冲器下溢的严格的低端到端延迟要求,例如小于或等于500ms。
虚拟视频缓冲器60通过使用基于缓冲器的位分配和跳帧来帮助满足延迟要求。物理视频缓冲器52允许视频编码速率对信道条件的适应。根据以上表达式(1)-(3),虚拟视频缓冲器充满度值Wn用于在信道条件良好时的速率控制。来自RTP层的物理视频缓冲器充满度值Vn用于在信道条件不良时减小编码速率。以此方式,可能满足在由于时变信道通过量而变化的信道条件下的所分配帧预算。MB级速率控制充当改进速率控制精度的另一特征。通过这些特征,对于给定的位速率可增强总体端到端视觉质量,从而支持例如在VT应用中或其它应用中的更有效的音频-视频通信。
图5是说明用于视频源速率控制的技术的流程图。在图5的实例中,视频编码引擎50对视频帧n-1进行编码(70),并将经编码视频帧添加到物理视频缓冲器52(72)。速率控制单元56例如根据表达式(1)更新虚拟缓冲器74以用于下一帧n,从而产生新的虚拟缓冲器充满度值Wn(74)。在更新虚拟视频缓冲器时,Bn-1是视频编码引擎50用于对添加到物理视频缓冲器52的帧n-1进行编码的位的量。缓冲器信息单元58确定物理视频缓冲器充满度值Vn(76)和虚拟视频缓冲器充满度值Wn(78)。速率控制单元56基于物理视频缓冲器充满度值Vn和虚拟视频缓冲器充满度值Wn控制视频编码引擎50的视频编码速率(80)。接着,过程进行到下一待编码的帧(82)并重复。
图6是更详细说明用于视频源速率控制的技术的流程图。在图6的实例中,视频编码引擎50对视频帧n-1进行编码(84),并将经编码视频帧添加到物理视频缓冲器52(86)。速率控制单元56例如根据表达式(1)更新虚拟缓冲器74以用于下一帧n,从而产生新的虚拟缓冲器充满度值Wn(88)。缓冲器信息单元58确定物理视频缓冲器充满度值Vn(90)和虚拟视频缓冲器充满度值Wn(92)。速率控制单元56从缓冲器信息单元58接收缓冲器值Xn。缓冲器值Xn=max(w*Vn,Wn),其中w是加权系数。这对应于以上的表达式(2)。如果max(w*Vn,Wn)大于或等于跳过阈值Tskip(94),速率控制单元56指示视频编码引擎50跳过下一帧n的编码(96)。一旦跳过下一帧n,过程就进行到跳过帧之后的下一帧(101)并重复。
如果max(w*Vn,Wn)不大于或等于跳过阈值Tskip(94),那么速率控制单元56基于目标编码速率(例如,目标位速率R和目标帧速率F)、物理视频缓冲器充满度值Vn、虚拟视频缓冲器充满度值Wn以及跳过阈值Tskip估计下一帧的帧预算(98)。特定来说,速率控制单元56可应用以上表达式(3)来确定帧预算Bn,其界定可用于编码下一帧的位数目。一旦确定帧预算,速率控制单元56就可引导视频编码引擎50在待编码帧内的视频块(例如,宏块(MB))上均匀地分配帧预算中的位。或者,可使用ρ域MB位分配来分配帧预算位(99)。接着可将每个MB的ρ域MB位分配映射到相应的QP值(100)。一旦针对当前帧确定编码速率,过程就进行到下一帧(101)并重复。
本发明中描述的技术可实施在通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置内。举例来说,视频编码器12及其组件和模块可实施为在数字信号处理器(DSP)、微处理器、嵌入式核心或其它处理装置上运行的编码过程或编码/解码(CODEC)过程的部分。因此,描述为模块的组件可形成编码过程或单独过程的硬件组件或可编程特征。
在一些实施例中,可在不同的硬件组件之间划分编码功能。举例来说,可在嵌入式逻辑核心中执行帧级速率控制,且可在DSP中执行MB级速率控制。作为说明,给定目标位速率(R Kbps)和帧速率(F fps),嵌入式逻辑核心内的帧级速率控制可能涉及在编码每一帧之后更新速率控制模型参数(例如,ρ域模型参数)、估计用于下一帧的帧预算B,以及例如经由ρ表或ρ参数等式使用预算到ρ和ρ到QP的映射来将帧预算映射到帧QP(例如,1到31)。
一旦对QP值进行后处理,包含对帧QP的任何额外限制,嵌入式逻辑核心就将帧QP、ρ预算和新模型参数发送到DSP。DSP接着使用ρ到QP映射计算每个MB的QP,并对QP值执行后处理。DSP可保留MB增量QP值在+2和-2内的规则,以及对MB QP的任何额外限制。一旦在编码一MB之后更新ρ域模型参数,DSP就针对适用的视频帧内的其它MB重复所述过程。在MB编码完成之后,过程返回到嵌入式逻辑核心以处理待编码的下一视频帧。
视频编码器系统12可具有用于存储指令和数据的专用存储器,以及专用硬件、软件、固件或其组合。如果在软件中实施,所述技术可实施为计算机可读媒体上的指令,所述媒体例如为随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPROM)、快闪存储器等。指令致使一个或一个以上处理器执行本发明中描述的功能性的某些方面。
现在将描述示范性视频包成形器24的额外细节。以下描述提供可用于本发明中描述的视频源速率控制技术的视频包成形技术的实例。然而,根据本发明的用于视频源速率控制的技术可以多种包成形技术中的任一种来实践。因此,以下细节是出于实例的目的而提供,且不应视为对本发明中广义实施和描述的视频源速率控制技术的限制。
在此实例中,视频包成形器24控制提供到RTP/UDP/IP/PPP转换模块26(图1和4)的每个视频包的大小,以便将音频的传输列入优先。特定来说,视频包经大小调整以使得每个音频包可由下一可用的MAC层包容纳。受控的对视频包的大小调整防止了由信道条件、较大视频包或两者引起的音频延迟。当音频包可用时,其被置于RLP队列中用于包含在由MAC层模块30产生的下一可用的MAC RLP包中。音频包可与经大小调整以允许用于将音频包置于MAC RLP包内的空间的视频包相组合。
视频包成形器24经配置以在其能够基于信道条件调节视频包大小的意义上为信道自适应的。以此方式,编码器系统12可将音频包的传输列入优先以避免在信道条件不良时的音频延迟。同时,视频包成形器24可确保音频列入优先不会导致视频包不完全包化。换句话说,视频包成形器24将视频包的大小调整为足够小,以允许在下一可用的MACRLP包中包含一个或一个以上音频包,但不是太小而使得浪费MAC RLP包中的过量空间。因此,视频包成形器24可支持音频包的列入优先和视频包的有效传输。
如上文论述,提供视频包成形器24以控制提交给RTP/UDP/IP/PPP转换模块26的视频包的大小。视频包成形器24控制视频包的大小以便将MAC RLP包中的音频包的传输列入优先,并防止视频包占满RLP队列28。以此方式,可在没有实质延迟的情况下传送VT会议的音频部分,即使视频部分可能经受由于信道条件带来的延迟。尽管视频可能受到信道条件损害,但视频包成形器24确保VT会议的各方仍能够流畅地进行口头对话。
视频包成形器24应用的包成形技术可应用一个或一个以上规则以确保音频包的优先传输。例如根据一个规则,应在从RLP队列28的内容产生的刚好下一可用的MAC RLP包中发送音频包。音频帧由音频解码器22在第一周期性间隔产生。MAC RLP包由MAC层模块30在第二周期性间隔产生。在给定间隔产生的音频帧应置于由MAC层模块30产生的下一可用的MAC RLP包中。在一些实施例中,作为选择,RLP队列28的总输出队列大小以及音频包大小应能够在一个MAC RLP包中载运。
可相对于VT序列的每个包应用各种规则。尽管可以确保可在单个MAC RLP包中载运音频和视频的方式固有地调整一些视频包的大小,但其它视频包可能较大,且需要减小大小以便确保尤其是在信道条件降级时可在单个MAC RLP包中载运音频和视频。通过相对于VT序列的每个包应用技术,即使视频的内容非常多或者信道带宽实质有限,也可确保令人满意的语音通信。
控制视频包成形器24提交给RTP/UDP/IP/PPP转换模块26以用于插入RLP队列28中的每个视频包的大小。以上规则确保音频包不会由于非常多的视频内容对连续MACRLP包的消耗而延迟。替代地,当音频可用时,将来自视频编码器20的视频划分为具有经选择以允许每个MAC RLP包载运音频和视频的大小的包。每个音频帧可用作提供到RLP队列28的音频包。或者在一些实施例中,音频包可捆扎以连续间隔提供的多个音频帧。
在一些实施例中,视频包成形器24可基于针对在连续音频帧之间产生的MAC层包的估计信道通过量确定每个MAC层包的视频包大小。可基于由当前无线信道传输速率、无线基站活动以及传输功率限制中的一者或一者以上表示的信道条件来估计通过量。举例来说,可基于当前MAC层数据速率、反向活动(RA)位以及功率放大器(PA)限制来确定信道条件。另外,在一些实施例中,视频编码器20可基于视频缓冲器占用度而进一步包含自适应源速率控制。在此情况下,如果在对优先音频包化的需要给定的情况下,信道条件不支持视频编码速率,那么视频编码器20可减小源视频编码速率。
音频编码器22产生音频帧,且视频编码器20产生视频帧。一系列连续MAC RLP包可用于载运从在RLP队列28中缓冲的帧导出的音频包和视频包。在音频编码器22产生第一音频帧之后,MAC层模块30产生的下一可用的MAC RLP包载运第一音频帧。第二包也可用于在必要时载运第一音频帧。然而如果RLP队列28的内容由视频包占满,那么第一音频帧可能在长时期内不会传达。
每个MAC RLP包具有从RL信道条件信息导出的相关联的数据速率。在良好RL条件下,每个MAC RLP包可承受每秒76.8千位(Kbps)的数据速率。然而在不良RL信道条件下,数据速率波动且常常较低,例如为19.2Kbps或38.4Kbps。过量视频内容、不良信道条件或两者均可引起音频包的传输中的显著延迟。过量视频包大小可占满RL并增加音频延迟,尤其是在RL通过量由于低数据速率而减小时。
视频包如果保持未受控制,那么就可能消耗过多量的MAC RLP包空间,从而导致音频包的连续传输之间的延迟。在一些情况下,视频可消耗若干连续的MAC RLP包,从而防止音频被迅速传输。每个MAC RLP包提供大约26.67ms的空间用于并入音频和视频包信息。考虑其中一较大视频帧与一音频帧实质同时产生的情况。在此情形中,假定连续视频帧在时间上彼此间隔133ms而产生。然而连续音频帧在时间上仅彼此间隔60ms而产生。
甚至在良好RL条件下,也可能没有足够的空间用于并入用于第一音频帧以及用于第二和第三音频帧的音频包。替代地,与较大视频帧相关联的视频包可能消耗大多数的MAC RLP包,从而导致显著的音频延迟。当信道条件降级时,例如在不良RL条件的情况下,此问题尤其具有挑战性。为了缓解在多种信道条件下的音频延迟,图1的系统10可并入有视频包成形器24,其控制从视频帧导出的视频包的大小。通过相对于VT序列的每个包应用视频限制,视频包成形器24可确保与VT序列相关联的音频不受损害。
固定长度视频包成形提出了对音频延迟问题的部分解决方案。然而,固定长度视频包成形不考虑信道条件。因此,视频在RL通过量减少时仍可占满信道。另外,固定长度包成形不考虑两个连续音频包之间的通过量,从而导致视频数据过度包化或包化不足。
对于固定长度视频包成形,通过将视频帧分段为每60ms的固定大小包(例如300字节)来控制视频包的大小。还将音频帧分段为例如每60ms的固定大小包。在MAC RLP包内的音频数据包之后立即传输视频包。在正常操作条件下,固定长度视频包化促进了MAC RLP包内的音频包的及时传输。
固定长度视频包成形方法确保在良好RL条件下传输音频包而没有延迟。然而如果RL条件降级,那么固定长度视频包可占满RL,从而导致连续音频包之间的延迟。由于视频包的固定长度,因此没有对RL条件的变化做出反应的能力。在一些实例中,在良好RL条件下,视频数据可能包化不足,从而导致每个MAC RLP包提供的空间的利用不足以及大体的带宽低效率。在不良RL条件下,视频包的固定大小可能对于RL来说太大而不能处理,从而导致音频延迟。出于此原因,可能提供信道自适应视频包成形以产生可调节长度的视频包,其具有可响应于视频内容或带宽而调整的大小以便维持整个VT序列的音频质量。
对于信道自适应视频包成形,基于信道条件调节视频包大小以使得可在没有实质延迟的情况下传输音频包。替代于固定视频包大小,基于音频包的大小和信道条件动态调节每个视频包的大小。在良好RL条件下,可增加视频包大小,但不会达到视频包将占满RL并引入音频延迟的程度。在不良RL条件下,减小视频包的大小以为将包化并置于下一可用MAC RLP包中的音频帧提供空间。
当音频帧可用时,视频帧经大小调整以使得相应音频帧可置于下一可用的MAC RLP包中。每个音频帧经包化并接着置于RLP队列28中以用于包含在由MAC层模块30产生的下一可用MAC RLP包中,从而消除音频包的传输之间的过量延迟。每个MAC RLP包可仅载运音频、仅载运视频或音频与视频两者,这取决于RLP队列28的内容。然而,在每个音频包间隔,视频包经大小调整以允许将音频包并入下一可用的MAC RLP包。
应注意,随着可用RL速率例如由于信道条件而减小,音频包的大小相对于MAC RLP包的大小而增加。换句话说,随着RL速率因为视频包大小减小而降低,每个音频包消耗更高比例的MAC RLP包。相反地,动态调节每个视频包的大小以使得其随着RL速率降低而消耗较小比例的MAC RLP包。以此方式,视频包经大小调整以允许将每个音频包置于下一可用的MAC RLP包中。结果是对音频给出的优先级高于视频以减小音频延迟。
RTC MAC单元64(图4)可经配置以实施RTC MAC协议以提供通信装置经由RL进行传输所遵循的程序。在特定实施例中,视频包成形器24可包含有效负载大小估计器,其基于一个或一个以上输入控制每个视频包的大小。输入可与信道条件、RLP队列特性以及音频包大小和状态相关。在特定实施例中,视频包成形器24还可包含带宽有效包化器,其基于由有效负载大小估计器指定的估计有效负载大小(服从于最小视频包大小)产生视频包。
视频缓冲器52缓冲从视频编码器20接收的视频信息,并将视频信息传递到视频包成形器24。音频缓冲器62缓冲从音频编码器22接收的音频帧信息并将信息传递到RTP/UDP/IP/PPP转换模块26。音频和视频包彼此独立地插入RLP队列28中。由视频包成形器24产生的视频包的大小确保在由MAC层模块30产生的下一可用MAC RLP包中将存在用于音频包的足够空间。特定来说,RLP队列28没有被视频包占满,从而确保RLP队列中的音频包可随下一MAC RLP包一起发送。
在此实例中,视频包成形器24的有效负载大小估计器接收若干输入,包含音频包定时器、音频优先级值ACPredNumberPlus、RLP队列大小以及信道信息。音频包定时器指示音频信息目前在音频缓冲器62中是否可用,且如果是,那么指示将传达每个音频帧的时序。如果以例如每20ms的间隔传达音频帧,那么在音频帧可用时音频包定时器将被设定为20ms。在一些实施例中,音频缓冲器62可经配置以捆扎连续的音频帧以用于并入单个包中。在此情况下,音频包定时器可为对应于捆扎成音频包的帧数目的倍数。换句话说,音频包定时器可具有与捆扎的帧的数目成比例或另外相关的值。如果例如三个音频帧被捆扎,那么音频定时器可被设定为60ms。因此,音频包定时器还指示由音频缓冲器62产生以用于经由RTP/UDP/IP/PPP模块26插入RLP队列28的音频包的大小。
音频优先级值MACPredNumberPlus界定音频和视频的相对优先级,且因此影响与音频和视频相关联的延迟。举例来说,确立MACPredNumberPlus以使得优先级值越小,音频延迟越低。因此,随着MACPredNumberPlus增加,音频延迟增加且视频延迟减小。相反地,随着MACPredNumberPlus减小,音频延迟减小且视频延迟增加。因此,音频延迟跟踪音频优先级值MACPredNumberPlus。视频包成形器24的有效负载大小估计器使用MACPredNumberPlus值来控制每个视频包的大小,从而导致规定的音频包延迟,如下文将更详细描述。
由有效负载大小估计器接收的RLP队列大小表示RLP队列28中缓冲的当前数据的大小。有效负载大小估计器使用RLP队列大小来控制视频包的大小。如果RLP队列28相对满,那么有效负载大小估计器可向下调节视频包的大小以避免占满RL和引起过量的音频延迟。如果RLP队列28较不满,那么有效负载大小估计器可增加视频包的大小,同时仍提供用于音频包的足够空间。通过RLP队列大小,有效负载大小估计器能够根据RLP队列28的充满度动态地调节视频包大小。队列充满度可指示过量的视频内容、信道条件的降级或两者。RLP队列大小的使用是有效负载大小估计器可对视频内容的过载或信道条件的改变做出反应的方式之一。
视频包成形器24的有效负载大小估计器也可通过监视RTC MAC单元64提供的信道信息来对信道条件的改变做出更直接的反应。RTC MAC单元64产生与信道特性有关的信息,例如当前MAC RL速率、组合RA位以及净空限制。MAC RL速率指示在RL上可用的当前传输速率。RA位是反向活动位,其指示相关的无线基站是否繁忙。净空限制可指示基于当前传输功率在传输中允许使用的最大速率。RA位指示何时RL由于基站不活动而拥塞或不可用。PA限制表示传输功率净空且指示何时信道条件已降级。
基于各种输入,视频包成形器24的有效负载大小估计器产生有效负载大小估计值。选择有效负载大小估计值以允许将音频包包含在下一可用的MAC RLP包中,如果MACPredNumPlus优先级值指定音频将符合高优先级。视频包成形器24的带宽有效包化器接收来自视频缓冲器52的视频,并基于有效负载大小估计器指定的有效负载大小估计和最小视频包大小将视频包化。最小视频包大小表示将由视频包成形器24产生的视频包的最小大小。实际上,最小视频包大小控制视频包大小的粒度和带宽效率。对于较小的最小视频包大小值,视频包成形在容纳音频且因此避免音频延迟方面更有效,但带宽效率较低。对于较大的最小视频包大小值,视频包成形在避免音频延迟方面效率较低,但提供较高的带宽效率。
将出于说明目的而描述额外的实施方案细节。而且,这些细节应视为示范性的,且不应视为对本发明中广义实施和描述的技术的限制。对于cdma20001xEV-DO版本0实施方案,可基于信道条件估计RL通过量。3GPP2规范C.S0024-A(也称为TIA IS-856-A)第11-143页表11.9.6.1指定了在给定以Kbps传输速率表达的不同信道条件下,对于MACRLP包的以字节计的最小和最大有效负载大小。表11.9.6.1再现如下:
表
传输速率(Kbps) | 最小有效负载大小(字节) | 最大有效负载大小(字节) |
9.6Kbps | 1 | 29 |
19.2Kbps | 30 | 61 |
38.4Kbps | 62 | 125 |
76.8Kbps | 126 | 253 |
153.6Kbps | 254 | 509 |
如果上表中的每个传输级表达为指数值,那么包含音频与视频的每个MAC RLP包的最大有效负载大小如下:
最大有效负载大小=2index+4-3。
对于以上表达式,将指数值1、2、3、4和5分别指派于9.6、19.2、38.4、76.8和153.6Kbps的传输速率级。
音频帧和视频帧经包化并包含在MAC RLP包中。MAC RLP包每一者均具有相关联的RL传输速率,且能够载运对应于那些传输速率的不同最大有效负载大小。举例来说,一些MAC RLP包可具有38.4Kbps的RL传输速率,且每一者能够载运125字节的最大有效负载大小。其它MAC RLP包可具有76.8Kbps的RL传输速率,且能够载运253字节的最大有效负载大小。还有其它MAC RLP包可具有19.2Kbps的RL传输速率,且每一者均能够载运61字节的最大有效负载大小。
在示范性实施例中,视频包成形器24的有效负载大小估计器的运算可表达为以伪码进行的算法。算法依赖于以下输入:RA位、PA限制、RL速率、RLPQueueSize、AudioPacketSize和MACPredNumberPlus。AudioPacketSize可从应用于视频包成形器24的音频包定时器导出。如先前提到,组合RA位是反向活动位,其指示基站活动的状态,PA限制表示由功率要求强加的传输功率净空限制且指示何时信道条件已降级,RL速率是RL的传输速率,RLPQueueSize指示RLP队列28的充满度。AudioPacketSize指示当前音频包(即,将添加到下一可用MAC RLP包的音频包)的大小。MACPredNumberPlus指示音频包对视频包将符合的相对优先级。算法的输出是VideoPayloadSize。
对于算法的初始化,值MACPredNumber设定如下:
MACPrcdNumbcr=floor((AudioFramcsBundlcd*AudioFramcIntcrval)/26.67)
+1+ MACPredNumberPlus
MacPredNumber表示载运含有单个音频帧或捆扎音频帧组的包所必要的MAC RLP包的数目。AudioFramelnterval表示音频帧之间的时间间隔。值26.67是为每个MAC RLP包分配的时间。因此,如果三个音频帧经捆扎且音频帧间隔是20ms,且MACPredNumberPlus为0,指示高音频优先级,那么MACPredNumber为3。这意味着将估计视频有效负载大小的MAC RLP包的预测数目是3。
对于每个经捆扎的音频包,在发送经捆扎音频包之后,视频包成形器24的有效负载大小估计器做出MAC音频通过量确定。MAC通过量确定可如下伪码指示而进行:
MACThroughput=0;
MACRateIncrease=1-RABit;
MACPredRate=CurRate;
for(i=0;i<MACPredNumber;i++)
{
MACPredRate=MIN(MIN(MACPredRate+
MACRateIncrease,4), PALimit);
MACThroughput+=(2MACPredRate+4-3);
}
在以上MAC通过量确定中,MACThroughput是音频传输所需的通过量值,MACRateIncrease指示MAC RL速率是否将基于反向活动而增加,CurRate是当前MACRL速率,MACPredRate是MAC RL速率增加的量,表达为指数值。如上指示,MACThroughput是对于三个预测MAC RLP包中每一者可用的最大有效负载大小。
给定每个MAC RLP包的最大有效负载大小MACThroughput,视频有效负载大小估计器如下估计最大视频有效负载大小(VideoPayloadSize):
VideoPayloadSize=MAX(MACThroughput-RLPQueueSize,0)
VidcoPayloadSizc=MAX(VidcoPayloadSizc-2*AudioPackctSizc-45,0),
其中RLPQueueSize指示RLP队列28的充满度,且AudioPacketSize表示将添加到下一MAC RLP包的音频包的大小。值45是以字节计的固定数字,以考虑由RTP/UDP/IP/PPP转换模块26引入的标头信息的RTP/UDP/IP/PPP额外开销。此固定额外开销数字的值在其它实施方案中可不同。
对于在一信道条件范围内的信道自适应视频包成形,视频包成形器24的有效负载大小估计器适应于变化的信道条件(如RL传输速率部分表示),以调节为从RLP队列28的内容并入由MAC层模块30产生的MAC RLP包中而呈现的视频包有效负载的大小。在一个实例中,以60ms的间隔产生音频帧。在此情况下,关于接下来三个MAC RLP包中的可用有效负载大小而每60ms做出决定。
在第一决定点,当前MAC RL速率以3为指数以表示38.4Kbps,且RA位设定于0,PA限制等于4且RLP队列含有X1个字节。在此情况下,根据以上公式,接下来三个MAC RLP包中每一者的通过量估计为253个字节。因此,接下来三个MAC RLP包上的总通过量是253+253+253字节减去已置于RLP队列28中的内容X1。因此,第一决定点50处的MACThroughput值是253+253+253-X1字节。
在60ms之后的第二决定点,当前RL速率再次以3为指数,且PA限制为4,但RA位设定为1而不是0。在此情况下,RA位指示基站繁忙且导致在接下来三个MAC RLP包上通过量减小的预测。特定来说,估计的通过量MACThroughput是125+125+125-X2字节,其中X2表示在第二决定点80的时间RLP队列28的内容。
在第二决定点之后60ms的第三决定点,RA位为0,但RL速率已下降到指数值2(19.2Kbps)且PA限制已下降到指数值2。因此,在接下来三个MAC RLP包上的总通过量MACThroughput减小到61+61+61-X3字节,其中X3表不在第三决定点82的时间RLP队列28的内容。
当MACThroughput减小时,由于音频包的列入优先,视频包可用的空间也减小。在此情况下,视频包成形器24的有效负载大小估计器减小用于包化的视频有效负载的估计大小。然而当MACThroughput增加时,有效负载大小估计器通过增加估计的视频有效负载大小而做出响应。以此方式,视频包成形器24不仅将音频包列入优先,而且支持带宽有效视频包化。
在此实例中,每次对三个MAC RLP包做出决定。然而在其它实施例中,可应用更迅速的决定过程。举例来说,可每20ms做出对MACThroughput的估计的决定。在第一个20ms间隔中,针对三个MAC RLP包做出决定。接着在第二个20ms间隔中,针对一组三个连续MAC RLP包中的其余两个MAC RLP包做出决定。最后,可在下一20ms间隔期间针对三包的组中的最后一个MAC RLP包做出决定。在此情况下,在60ms间隔的过程中做出决定且针对信道条件或RLP队列充满度可能发生的任何改变而每20ms进行更新。在60ms之后,过程针对下一个60ms和接下来三个MAC RLP包重复,并反复继续进行。
一旦估计出MACThroughput,那么视频有效负载大小估计器就估计在给定MACThroughput值下可容纳的视频有效负载大小,如上文解释。接着,带宽有效包化器使用估计的视频有效负载大小和最小视频包大小值来产生用于提交到RTP/UDP/IP/PPP转换模块26的视频包。现在将更详细描述视频包成形器24的带宽有效包化器的操作。
大体上,如果使用MPEG4视频编码,那么视频包化应符合2000年11月颁发的网络工作组意见请求(RFC)3016,或者如果使用ITU H.263视频编码,那么应符合1997年9月颁发的RFC 2190或1998年10月颁发的RFC 2429。RFC 3016概述了MPEG4流的RTP有效负载格式。RFC 2429概述了ITU H.263流的1998版本的RTP有效负载格式,且RFC 2190概述了ITU H.263流的原始版本的RTP格式。
RFC 3016指定了视频包:(a)必须以视频对象平面(VOP)标头或视频包(VP)标头开始,如果其任一者存在,(b)如果满足前一规则,那么可含有一个以上VP标头,(c)其中可仅含有视频数据而没有任何VOP和VP标头,以及(d)无法含有两个视频帧上的数据。RFC 2190指定了视频包:(a)必须以图片开始代码(PSC)或块群组(GOB)开始,(b)不必具有GOB标头或完整的GOB,以及(c)不必为GOB字节对准的。RFC 2429指定了视频包:(a)可以字节对准的PSC、GOB标头、切片标头以及切片结束(EOS)标记开始,以及(b)可为继续进行(Follow-on)包,其不以任何同步代码开始但允许视频包中间的同步代码。
给定以上要求,视频编码器20可经配置而以MPEG4的VOP和VP形式或H.263的PSC、GOB和SSC形式将视频数据插入视频缓冲器52中。符合MPEG4的编码器以VOP或VP为单位产生数据。H.263编码器以PSC、GOB或SSC(GOB字节对准)为单位产生数据。当使用RFC 2190时,模式A是默认的。
在示范性实施例中,视频包成形器24的带宽有效包化器的操作可表达为利用以下输入的算法:VideoDataInBuffer、EstimatedVideoPayloadSize、minVPSize。VideoDataInBuffer表示视频缓冲器52中视频的大小。EstimatedVideoPayloadSize表示由视频包成形器24的有效负载大小估计器确定的估计视频有效负载大小。值minVPsize是视频包成形器24将产生的最小视频包大小,且用于控制粒度和带宽效率。带宽有效包化算法的输出是用于提交到RTP/UDP/IP/PPP转换模块26的一个或一个以上视频包。在示范性实施例中,带宽有效包化器的操作由以下伪码表示:
RemainingVideoPayloadSize =EstimatedVideoPayloadSize;VideoPayloadSize=0;
VideoPayloadData[]:an array;
for(;;)
{
if(RcmainingVidcoPayloadSizc<minVPSizc/2)
RemainingVideoPayloadSize=0;
elseif(RemainingVideoPayloadSize<minVPSize)
RemainingVideoPayloadSize=minVPSize;
If((RemainingVideoPayloadSize=0)‖(VideoDataInBuffer=NULL))break;
If(VideoDataInBuffer->Size>=RemainingVideoPayloadSize+minVPSize)
{
if(RemainingVideoPayloadSize>=(minVPSize/2))
{
if(RFC3016‖RFC2429)
memcpy(VideoPayloadData+VideoPayloadSize,VideoDataInBuffer-
>Data, RemainingVideoPayloadSize);
VideoPayloadSize+=RemainingVideoPayloadSize;
memcpy(VideoDataInBuffer->Data,
VideoDataInBuffer->Data+RemainingVideoPayloadSize,
VideoDataInBuffer->Size-RemainingVideoPayloadSize,
VideoDataInBuffer->Size-=RemainingVideoPayloadSize);
VideoDataInBuffer->Fragmented=1;
else if(RFC2190)
memcpy(VideoPayloadData+VideoPayloadSize,VideoDataInBuffer-
>Data, VideoDataInBuffer->Size);
VidcoPayloadSizc+=VidcoDataInBuffcr->Sizc;
}
Make one VideoPacket from VideoPayloadData[]with payload size of
VideoPayloadSize;
RemainingVideoPayloadSize=0;
}
else
{
memcpy(VideoPayloadData+VideoPayloadSize,VideoDatalnBuffer->Data,
VideoDataInBuffer->Size);
VideoPayloadSize+=VideoDataInBuffer->Size;
RemainingVideoPayloadSize=MAX(RemainingVideoPayloadSize-
VidcoBuffcrSizc->Sizc-45,0);
if(No m ore data in buffer‖the current TS!=the next TS‖
RemainingVideoPayloadSize==0‖VideoDataInBuffer->
Fragmented=1)
Make one VideoPacket from VideoPayloadData[]with payload size of
VideoPayloadSize;
VideoPayloadSize=0;
VideoDataInBuffer=the next frame/GOB/slice unit in the video buffer,if any,
or NULL,if no more data
}
}
如以上伪码表示,视频包成形器24的带宽有效包化器基于有效负载大小估计器提供的EstimatedVideoPayloadSize和minVPSize产生视频包。RemainingVideoPayloadSize表示在视频包产生期间的任一点仍可用的有效负载量。初始地,RemainingVideoPayloadSize等于由视频有效负载大小估计器提供的整个EstimatedVideoPayloadSize。VideoPayloadSize表示包中视频有效负载的实际大小,且初始设定为0。VideoPayloadData〔〕识别视频缓冲器52中的视频数据段阵列。
带宽有效包化器首先确定RemainingVideoPayloadSize是否小于minVPSizc/2。如果是,那么将值RemainingVideoPayloadSize设定为0。或者,如果RemainingVideoPayloadSize小于minVPSize,那么将RemainingVideoPayloadSize的值设定为等于minVPSize。接着,如果RemainingVideoPayloadSize等于0或VideoDataTnBuffer为空值,那么过程复位,因为在下一可用MAC RLP包中没有剩余空间或在视频缓冲器52中没有剩余视频。
如果VideoInBuffer的大小大于或等于值RemainingVideoPayloadSize加上minVPSize,那么带宽有效包化器接下来确定RemainingVideoPayloadSize是否大于或等于minVPsize/2。如果是,那么带宽有效包化器确定RFC3016还是RFC2429适用。如果RFC3016或RFC2429均不适用,那么带宽有效包化器确定RFC2190是否适用,即ITUH.263的原始版本的RTP有效负载格式是否适用。
如果RFC3016或RFC2429适用,那么带宽有效包化器如开始地址VideoPayloadData和偏移量VideoPayloadSize所确定,将来自视频缓冲器52的视频复制(memcpy)到由VideoDatalnBuffer识别的输入缓冲器。初始地,VideoPayloadSize设定为0。从视频缓冲器52复制的视频量等于RemainingVideoPayloadSize,其初始设定为EstimatedVideoPayloadSize。带宽有效包化器接着调节VideoPayloadSize为等于RemainingVideoPayloadSize。接着,带宽有效包化器以RemainingVideoPayloadSize确定的量将来自输入缓冲器的视频数据复制到由偏移量RemainingVideoPayload大小识别的地址。接着将VideoDatalnBuffer的内容分段以用于包化。
如果RFC2190适用,那么带宽有效包化器如开始地址VideoPayloadData和偏移量VideoPayloadSize所确定,将来自视频缓冲器52的视频复制(memcpy)到由VideoDataInBuffer识别的输入缓冲器。再次,VideoPayloadSize初始设定为0。从视频缓冲器52复制的视频量等于VideoDatalnBuffer的大小。接着使VideoPayloadSize等于VideoDataInBuffer的大小。
一旦退出RFC3016/RFC2429操作或RFC2190操作,那么带宽有效包化器接着从VideoPayloadData产生视频包,其具有等于VideoPayloadSize的当前值的有效负载大小。接着将值RemainingVideoPayloadSize设定为0。在此点,带宽有效包化器已产生视频包用于提交到RTP/UDP/IP/PPP转换模块26。如果RemainingVideoPayloadSize不小于minVPSize,那么RemainingVideoPayloadSize不等于0,VideoDataInBuffer不为空值,且VideoDataInBuffer的大小不大于或等于RemainingVideoPayloadSize+minVPSize,那么带宽有效包化器使用地址VideoPayloadData加上偏移量VideoPayloadSize来将数据从缓冲器52复制到VideoDataInBuffer。在此情况下,复制的数据量等于VideoPayloadSize。接着,带宽有效包化器将VideoPayloadSize设定为等于VideoDatalnBuffer的大小。
视频包成形器24的带宽有效包化器接着将RemainingVideoPayloadSize设定为等于RemainingVideoPayloadSize减去VideoBufferSize与0中的最大值。VideoBufferSize表示视频缓冲器52的大小。如果在视频缓冲器52中不再有数据,或当前时间戳(TS)不等于下一TS,或RemainingVideoPayloadSize等于0,或VideoDatalnBuffer经分段,那么带宽有效包化器从VideoPayloadData产生一个具有有效负载大小VideoPayloadSize的视频包,并将VideoPayloadSize设定为0。否则,带宽有效包化器设定VideoDatalnBuffer以获取视频缓冲器52中的下一帧、GOB或切片单元(如果存在),或设定为空值,如果在视频缓冲器中不再有数据。
作为信道自适应视频包成形的实例,假定音频缓冲器62产生音频包。RTP/UDP/IP/PPP模块26将音频包添加到RLP队列28。视频包成形器24的有效负载大小估计器确定RLP队列大小、音频-视频优先级值以及信道条件。基于那些确定,视频包成形器24的有效负载大小估计器估计将产生的下一视频包的有效负载大小。带宽有效包化器产生视频包并基于估计的有效负载大小和最小视频包大小来调整视频包的大小。带宽有效包化器将视频包添加到RLP队列28。MAC层模块30从RLP队列28的内容产生MAC RLP包。
本发明中描述的技术可实施在通用微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效逻辑装置内。举例来说,视频编码器系统12、视频解码器系统14以及相关联的组件和模块可实施为在数字信号处理器(DSP)或其它处理装置上运行的编码过程或编码/解码(CODEC)过程的部分。因此,描述为模块的组件可形成此过程或单独过程的可编程特征。
视频编码器系统12可具有用于存储指令和数据的专用存储器,以及专用硬件、软件、固件或其组合。如果以软件实施,那么技术可实施为可由一个或一个以上处理器执行的指令。指令可存储在计算机可读媒体上,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储装置等。指令致使一个或一个以上处理器执行本发明中描述的功能性的某些方面。
已经描述各种实施例。这些和其它实施例在所附权利要求书的范围内。
Claims (44)
1.一种方法,其包括:
将经编码视频添加到物理视频缓冲器;
从所述物理视频缓冲器中移除所述经编码视频的包以用于在信道上传输;
维持虚拟视频缓冲器,所述虚拟视频缓冲器表示相对于目标编码速率的所述经编码视频的量;以及
基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
2.根据权利要求1所述的方法,其中所述信道展现变化的信道条件,所述方法进一步响应于所述变化的信道条件而从所述物理视频缓冲器中随着时间移除变化量的所述经编码视频。
3.根据权利要求1所述的方法,其中控制实际编码速率包含:如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值大于或等于跳过阈值,那么跳过视频帧的编码。
4.根据权利要求3所述的方法,其进一步包括:如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值小于所述跳过阈值,那么估计界定可用于所述视频帧的编码位数目的帧预算,并基于所述帧预算控制所述实际编码速率。
5.根据权利要求4所述的方法,其中估计帧预算包含基于目标位速率、目标帧速率、所述物理视频缓冲器的充满度、所述虚拟视频缓冲器的充满度以及所述跳过阈值来估计所述编码位数目。
6.根据权利要求5所述的方法,其进一步包括:
大致基于以下表达式确定所述虚拟视频缓冲器的充满度:
Wn=max(Wn-1+Bn-1-R/F,0)
其中Wn是用于视频帧n的所述虚拟视频缓冲器的充满度,Wn-1是用于视频帧n-1的所述虚拟视频缓冲器的充满度,Bn-1是分配到视频帧n-1的实际编码位,R是所述目标位速率,且F是所述目标帧速率;以及
大致根据以下表达式确定所述实际编码速率:
Xn=max(w*Vn,Wn),以及
Bn=R/F-Δ,
其中如果Xn>Z*M,那么Δ=Xn/F,如果Xn<==Z*M,那么Δ=Xn-Z*M,Vn是用于视频帧n的所述物理视频缓冲器的充满度,w是正整数,M是所述跳过阈值,且Z是系数。
7.根据权利要求1所述的方法,其进一步包括:如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值小于所述跳过阈值,那么估计界定可用于所述视频帧的编码位数目的帧预算,并基于所述帧预算控制所述实际编码速率。
8.根据权利要求7所述的方法,其中估计帧预算包含基于目标位速率、目标帧速率、所述物理视频缓冲器的充满度、所述虚拟视频缓冲器的充满度以及所述跳过阈值来估计所述编码位数目。
9.根据权利要求8所述的方法,其进一步包括:
大致基于以下表达式确定所述虚拟视频缓冲器的充满度:
Wn=max(Wn-1+Bn-1-R/F,0)
其中Wn是用于视频帧n的所述虚拟视频缓冲器的充满度,Wn-1是用于视频帧n-1的所述虚拟视频缓冲器的充满度,Bn-1是分配到视频帧n-1的实际编码位,R是所述目标位速率,且F是所述目标帧速率;以及
大致根据以下表达式确定所述实际编码速率:
Xn=max(w*Vn,Wn),以及
Bn=R/F-Δ,
其中如果Xn>Z*M,那么Δ=Xn/F,如果Xn<==Z*M,那么Δ=Xn-Z*M,Vn是用于视频帧n的所述物理视频缓冲器的充满度,w是正整数,M是所述跳过阈值,且Z是系数。
10.根据权利要求1所述的方法,其中所述信道是无线信道,所述方法进一步包括:估计所述无线信道的通过量;以及
从所述物理视频缓冲器产生具有基于所述估计的通过量确定的视频包大小的视频包。
11.根据权利要求10所述的方法,其进一步包括产生音频包,其中所述视频包大小是基于所述估计的通过量和所述音频包的大小确定的。
12.根据权利要求11所述的方法,其进一步包括基于所述音频包和所述视频包产生物理层包,以及将所述物理层包传输到远程装置以支持移动无线视频电话会议。
13.根据权利要求12所述的方法,其中所述物理层包大致符合cdma2000 1x EV-DO版本0标准。
14.根据权利要求1所述的方法,其进一步包括:
基于所述实际编码速率估计界定可用于所述视频帧的编码位数目的帧预算;以及
基于所述帧预算将ρ域值分配到所述帧内的宏块。
15.根据权利要求14所述的方法,其进一步包括将所述ρ域值映射到相应的量化参数(QP)值以将若干编码位分配到所述宏块中的每一者。
16.根据权利要求1所述的方法,其进一步包括当所述经编码视频的至少一部分已经在所述物理视频缓冲器中历时超过一阈值的时间周期时从所述物理视频缓冲器丢弃所述经编码视频的所述部分。
17.一种系统,其包括:
视频编码器;
物理视频缓冲器,其存储由所述视频编码器编码的视频;
包成形器,其从所述物理视频缓冲器中移除所述经编码视频以用于在信道上传输;
虚拟视频缓冲器,其表示相对于目标编码速率的所述经编码视频的量;以及
控制器,其基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
18.根据权利要求17所述的系统,其中所述信道展现变化的信道条件,且所述包成形器响应于所述变化的信道条件而从所述物理视频缓冲器中随着时间移除变化量的所述经编码视频。
19.根据权利要求17所述的系统,其中如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值大于或等于跳过阈值,那么所述控制器跳过视频帧的编码。
20.根据权利要求19所述的系统,其中如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值小于所述跳过阈值,那么所述控制器估计界定可用于所述视频帧的编码位数目的帧预算,并基于所述帧预算控制所述实际编码速率。
21.根据权利要求20所述的系统,其中所述控制器基于目标位速率、目标帧速率、所述物理视频缓冲器的充满度、所述虚拟视频缓冲器的充满度以及所述跳过阈值来估计所述帧预算。
22.根据权利要求21所述的系统,其中所述控制器:
大致基于以下表达式确定所述虚拟视频缓冲器的充满度:
Wn=max(Wn-1+Bn-1-R/F,0)
其中Wn是用于视频帧n的所述虚拟视频缓冲器的充满度,Wn-1是用于视频帧n-1的所述虚拟视频缓冲器的充满度,Bn-1是分配到视频帧n-1的实际编码位,R是所述目标位速率,且F是所述目标帧速率;以及
大致根据以下表达式确定所述实际编码速率:
Xn=max(w*Vn,Wn),以及
Bn=R/F-Δ,
其中如果Xn>Z*M,那么Δ=Xn/F,如果Xn<==Z*M,那么Δ=Xn-Z*M,Vn是用于视频帧n的所述物理视频缓冲器的充满度,w是正整数,M是所述跳过阈值,且Z是系数。
23.根据权利要求17所述的系统,其中如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值小于所述跳过阈值,那么所述控制器估计界定可用于所述视频帧的编码位数目的帧预算,并基于所述帧预算控制所述实际编码速率。
24.根据权利要求23所述的系统,其中所述控制器基于目标位速率、目标帧速率、所述物理视频缓冲器的充满度、所述虚拟视频缓冲器的充满度以及所述跳过阈值来估计所述帧预算。
25.根据权利要求24所述的系统,其中所述控制器:
大致基于以下表达式确定所述虚拟视频缓冲器的充满度:
Wn=max(Wn-1+Bn-1-R/F,0)
其中Wn是用于视频帧n的所述虚拟视频缓冲器的充满度,Wn-1是用于视频帧n-1的所述虚拟视频缓冲器的充满度,Bn-1是分配到视频帧n-1的实际编码位,R是所述目标位速率,且F是所述目标帧速率;以及
根据以下表达式确定所述实际编码速率:
Xn=max(w*Vn,Wn),以及
Bn=R/F-Δ,
其中如果Xn>Z*M,那么Δ=Xn/F,如果Xn<==Z*M,那么Δ=Xn-Z*M,Vn
是用于视频帧n的所述物理视频缓冲器的充满度,w是正整数,M是所述跳过阈值,且Z是系数。
26.根据权利要求17所述的系统,其中所述信道是无线信道,其中所述包成形器估计所述无线信道的通过量,并从所述物理视频缓冲器产生具有基于所述估计的通过量确定的视频包大小的视频包。
27.根据权利要求26所述的系统,其进一步包括产生音频包的音频编码器,其中所述视频包大小是基于所述估计的通过量和所述音频包的大小确定的。
28.根据权利要求27所述的系统,其进一步包括物理层模块,所述物理层模块基于所述音频包和所述视频包产生物理层包,并将所述物理层包传输到远程装置以支持移动无线视频电话会议。
29.根据权利要求28所述的系统,其中所述物理层包大致符合cdma2000 1x EV-DO版本0标准。
30.根据权利要求17所述的系统,其中所述控制器:
基于所述实际编码速率估计界定可用于所述视频帧的编码位数目的帧预算;以及
基于所述帧预算将ρ域值分配到所述帧内的宏块。
31.根据权利要求30所述的系统,其中所述控制器将所述ρ域值映射到相应的量化参数(QP)值以将若干编码位分配到所述宏块中的每一者。
32.根据权利要求17所述的系统,其中当所述经编码视频的至少一部分已经在所述物理视频缓冲器中历时超过一阈值的时间周期时,所述物理视频缓冲器从所述物理视频缓冲器丢弃所述经编码视频的所述部分。
33.一种系统,其包括:
用于编码视频的装置;
物理视频缓冲器装置,其用于存储所述经编码视频;
包成形装置,其用于从来自所述物理视频缓冲器装置的所述经编码视频中产生视频包以用于在信道上传输;
虚拟缓冲器装置,其用于维持表示相对于目标编码速率的所述经编码视频的量的虚拟视频缓冲器;以及
控制装置,其用于基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
34.根据权利要求33所述的系统,其中所述信道展现变化的信道条件,且所述包成形装置响应于所述变化的信道条件而从所述物理视频缓冲器中随着时间移除变化量的所述经编码视频。
35.根据权利要求33所述的系统,其中所述控制装置包含用于如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值大于或等于跳过阈值那么就跳过视频帧的编码的装置。
36.根据权利要求35所述的系统,其中所述控制装置包含用于如果所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度的最大值小于所述跳过阈值那么就估计界定可用于所述视频帧的编码位数目的帧预算的装置,以及用于基于所述帧预算控制所述实际编码速率的装置。
37.根据权利要求36所述的系统,其中所述用于估计帧预算的装置包含用于基于目标位速率、目标帧速率、所述物理视频缓冲器的充满度、所述虚拟视频缓冲器的充满度以及所述跳过阈值来估计所述编码位数目的装置。
38.根据权利要求33所述的系统,其中所述信道是无线信道,且所述包成形装置包含用于估计所述无线信道的通过量的装置,以及用于从所述物理视频缓冲器产生具有基于所述估计的通过量确定的视频包大小的视频包的装置。
39.根据权利要求38所述的系统,其进一步包括用于产生音频包的装置,其中所述包成形装置基于所述估计的通过量和所述音频包的大小确定所述视频包大小。
40.根据权利要求38所述的系统,其进一步包括用于基于所述音频包和所述视频包产生物理层包的装置,以及用于将所述物理层包传输到远程装置以支持移动无线视频电话会议的装置。
41.根据权利要求40所述的系统,其中所述物理层包大致符合cdma2000 1x EV-DO版本0标准。
42.根据权利要求33所述的系统,其中所述控制装置包含:
用于基于所述实际编码速率估计界定可用于所述视频帧的编码位数目的帧预算的装置;
用于基于所述帧预算将ρ域值分配到所述帧内的宏块的装置;以及
用于将所述ρ域值映射到相应的量化参数(QP)值以将若干编码位分配到所述宏块中的每一者的装置。
43.根据权利要求33所述的方法,其进一步包括用于当所述经编码视频的至少一部分已经在所述物理视频缓冲器中历时超过一阈值的时间周期时从所述物理视频缓冲器装置丢弃所述经编码视频的所述部分的装置。
44.一种计算机可读媒体,其包括用以致使一个或一个以上处理器进行以下操作的指令:
将经编码视频添加到物理视频缓冲器;
从所述物理视频缓冲器中移除所述经编码视频包以用于在信道上传输;
维持虚拟视频缓冲器,所述虚拟视频缓冲器表示相对于目标编码速率的经编码视频的量;以及
基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视频的实际编码速率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US73161405P | 2005-10-27 | 2005-10-27 | |
US60/731,614 | 2005-10-27 | ||
US11/314,428 | 2005-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101341756A true CN101341756A (zh) | 2009-01-07 |
Family
ID=40214850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200680048468 Pending CN101341756A (zh) | 2005-10-27 | 2006-10-27 | 用于视频电话的视频源速率控制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101341756A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860751A (zh) * | 2009-04-06 | 2010-10-13 | 日立民用电子株式会社 | 动态图像编码装置和动态图像编码方法 |
CN105723665A (zh) * | 2013-11-07 | 2016-06-29 | 高通股份有限公司 | 用于lte上行链路吞吐量估计的方法和装置 |
CN111988556A (zh) * | 2020-08-28 | 2020-11-24 | 深圳市融讯视通科技有限公司 | 动态音视频编码传输方法、系统、装置及存储介质 |
CN114189712A (zh) * | 2021-12-10 | 2022-03-15 | 眸芯科技(上海)有限公司 | 视频监控中支持解码帧率控制的虚拟vdp装置及应用 |
CN114449312A (zh) * | 2020-11-04 | 2022-05-06 | 深圳Tcl新技术有限公司 | 一种视频播放控制方法、装置、终端设备及存储介质 |
-
2006
- 2006-10-27 CN CN 200680048468 patent/CN101341756A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860751A (zh) * | 2009-04-06 | 2010-10-13 | 日立民用电子株式会社 | 动态图像编码装置和动态图像编码方法 |
CN105723665A (zh) * | 2013-11-07 | 2016-06-29 | 高通股份有限公司 | 用于lte上行链路吞吐量估计的方法和装置 |
CN111988556A (zh) * | 2020-08-28 | 2020-11-24 | 深圳市融讯视通科技有限公司 | 动态音视频编码传输方法、系统、装置及存储介质 |
CN111988556B (zh) * | 2020-08-28 | 2022-04-26 | 深圳市融讯视通科技有限公司 | 动态音视频编码传输方法、系统、装置及存储介质 |
CN114449312A (zh) * | 2020-11-04 | 2022-05-06 | 深圳Tcl新技术有限公司 | 一种视频播放控制方法、装置、终端设备及存储介质 |
CN114189712A (zh) * | 2021-12-10 | 2022-03-15 | 眸芯科技(上海)有限公司 | 视频监控中支持解码帧率控制的虚拟vdp装置及应用 |
CN114189712B (zh) * | 2021-12-10 | 2024-01-16 | 眸芯科技(上海)有限公司 | 视频监控中支持解码帧率控制的虚拟vdp装置及应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101313536B (zh) | 视频电话的视频包成形 | |
KR100961420B1 (ko) | 비디오 전화용 비디오 소스 레이트 제어 | |
CA2651513C (en) | Video rate adaptation to reverse link conditions | |
CA2565977C (en) | Delivery of information over a communication channel | |
JP2005526455A (ja) | 仮想的な受信バッファを使用してチャネル伝送レートの変動を吸収する伝送方法 | |
JP2003244695A (ja) | 映像情報伝送方式、それに用いられる装置およびプログラム | |
JP3668110B2 (ja) | 画像伝送システムおよび画像伝送方法 | |
CN101341756A (zh) | 用于视频电话的视频源速率控制 | |
KR100665102B1 (ko) | 전송 패킷의 길이를 고려한 비디오 부호화 율제어 방법 및그를 이용한 비디오 부호화 장치 | |
JP4579379B2 (ja) | 制御装置及び制御方法 | |
JP2003116133A (ja) | 動画像圧縮符号化伝送品質制御方式および方法 | |
JP2006074555A (ja) | マルチメディアゲートウェイにおける音声・動画調整方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090107 |