首页 / 专利库 / 纺织设备及加工 / 针织机 / 经编机 / 用于视频电话的视频源速率控制

用于视频电话的视频源速率控制

阅读:419发布:2022-07-17

专利汇可以提供用于视频电话的视频源速率控制专利检索,专利查询,专利分析的服务。并且本 发明 涉及用于视频电话(VT)应用的视频源速率控制的技术。可使用 帧 预算的基于双 缓冲器 的估计来控制源 视频编码 速率,所述帧预算界定可用于 视频帧 的编码位数目。基于双缓冲器的估计技术可 跟踪 物理视频缓冲器的充满度和虚拟视频缓冲器的充满度。接着基于所得的帧预算来控制源视频编码速率。所述虚拟缓冲器的内容取决于由目标编码速率强加的限制,而所述物理缓冲器的内容取决于由变化的信道条件强加的限制。对物理视频缓冲器充满度的考虑允许视频源速率控制技术是信道自适应的。对虚拟视频缓冲器充满度的考虑允许视频源速率控制技术避免对可占满信道的过量视频进行编码。,下面是用于视频电话的视频源速率控制专利的具体信息内容。

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.一种计算机可读媒体,其包括用以致使一个或一个以上处理器进行以下操作的指 令:
将经编码视频添加到物理视频缓冲器;
从所述物理视频缓冲器中移除所述经编码视频包以用于在信道上传输;
维持虚拟视频缓冲器,所述虚拟视频缓冲器表示相对于目标编码速率的经编码视 频的量;以及
基于所述物理视频缓冲器的充满度和所述虚拟视频缓冲器的充满度控制所述视 频的实际编码速率。

说明书全文

技术领域

发明涉及视频电话(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)技术,例如cdma2000 1xEV-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)来配置,且可称为MAC RLP包。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包中。音频包可与经大小调整以允许用于将音频包置于MAC RLP包内的空间的视频包相组合。通过将音频列入优先,可在没有实质延迟的情况下传 送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将视频包的大小调整为足够小,以允许在下一可用的MAC RLP包中包含一个或一个以上音频包,但不是太小而使得浪费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 中的每个视频包的大小。以上规则确保音频包不会由于非常多的视频内容对连续MAC RLP包的消耗而延迟。替代地,当音频可用时,将来自视频编码器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而产生。然而连续音频帧在时间上仅彼此间隔60 ms而产生。
甚至在良好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传输速率表达的不同信道条件下,对于MAC RLP包的以字节计的最小和最大有效负载大小。表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是当前MAC RL速率,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是否适用,即ITU H.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)、 快闪存储器、磁性或光学数据存储装置等。指令致使一个或一个以上处理器执行本发明 中描述的功能性的某些方面。
已经描述各种实施例。这些和其它实施例在所附权利要求书的范围内。
申请案主张2005年10月27日申请的第60/731,614号美国临时申请案的权利。
相关专利内容
标题 发布/更新时间 阅读量
一种双轴向经编机 2020-05-12 228
经编机花梳横移装置 2020-05-12 944
经编机的取纱机构 2020-05-11 481
经编机的梳栉垫纱运动机构 2020-05-14 211
多梳拉舍尔经编机的针床摆动机构 2020-05-14 394
经编机的取纱机构 2020-05-12 877
经编机的铺纬装置 2020-05-13 624
经编机梳栉机构 2020-05-11 793
经编机的梳栉垫纱运动机构 2020-05-15 765
经编机针床 2020-05-14 359
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈