摘 要: 提出将整个联合码率控制算法分为几个控制模块,调整模块算法不影响整体控制策略,从而算法更通用。对系统的几个主要模块:码率预测、带宽分配、量化参数选择和缓存器控制的算法进行了讨论。最后给出了联合码率控制系统性能评价方法。
关键词: 联合码率控制 模块化 码率预测 带宽分配 量化参数选择
随着视频及其伴音压缩编码标准MPEG-1、MPEG-2的制订,以其为基础的数字视频系统应用越来越广。今后,视频业务将大幅度增多,在一传统的固定带宽信道内,尽可能多地同时传送多路经MPEG压缩的视频节目的技术会日趋迫切。
1 联合码率控制技术概述
当多路可变码率(VBR)编码视频节目在同一固定带宽信道内传输时,可利用统计复用技术使各节目码率相互补偿,动态分配固定信道,充分利用信道资源。但它存在下列缺点:(1)统计复用遵循“大数定律”,只有复用的业务数目N足够大(N>10)时,各路码率相互补偿,才能产生高的统计复用增益(见第3节)。若信道带宽有限,同时传输的业务数目不多,则复用后总码率波动仍会较大,在固定带宽信道中传输容易丢失数据。(2)统计复用虽可避免各业务峰值码率直接累加,但因图像内容变化不能预知,故复用后总输出码率在某一时间段仍可能超过信道带宽,致使传输过程中丢失数据。特别是丢失重要信息(如包头、DCT直流及低频系数)时,会严重影响图像甚至该图像所在整个图像组(GOP)的质量。因此单独的统计复用技术不适用于同时传输较少视频业务且对图像质量要求较高的数字视频广播领域。
联合码率控制系统(见图1)综合各路视频节目统计数字量,对总的可用带宽进行统一分配,使复用后输出的码率不超过带宽,不丢失数据,且各路节目质量达到最佳。根据目前掌握的资料,联合码率控制技术尚处于研究阶段,IBM、PHILIPS和DIVICOM等公司正开展此项研究。
与独立控制MPEG固定码率编码中各节目的码率不同,联合码率控制系统对各编码器实施联合控制。系统开始工作时,各编码器可设置为相同量化参数;当系统预测到复用后的码率超过信道带宽时,就把有效带宽按图像复杂度重新分配,然后改变量化参数,使各编码器输出满足目标码率。
一些文献介绍了各自的联合码率控制算法,但均存在一些缺欠,如:通过监测信道缓存器的状态调整码率的算法[1],由于缓存器状态并不直接反映图像变化,因此码率调整会导致有相同复杂度图像的质量差别;应用专用芯片的算法不能通用[2];用前一GOP编码结果预测码率[3],使带宽分配滞后于图像变化;按自定义的Super GOP(各路节目对应GOP的组合)和Super Frame在Super GOP内各节目对应帧的组合)结构分配带宽[4],未考虑Super GOP内的图像变化。虽然各算法对节目质量有一定改善,但缺乏对图像变化、带宽分配、码率控制和缓存器状态的全面考虑,各节目质量难以达到最佳。
为此,本文首次提出模块化联合码率控制算法,即将整个码率控制分为几个控制模块,使模块算法相对独立且其调整不影响系统控制的策略,算法更通用,能适用不同的编码芯片。
2 模块化控制算法
系统可划分为:码率预测、带宽分配、量化参数选择和缓存器控制等几个模块。图2只画出了节目n与各控制模块的关系,其它节目和控制模块的关系与之相同。
2.1 码率预测模块
码率预测模块以选定的时间段(帧或GOP)为单位,提取各路视频节目的统计信息。有两种码率预测方法:前向预测法[1][2]和反馈预测法[3]。前者是在图像编码前,对其进行预处理以提取统计数字量。可提取的统计数字量有多种,它们的选择应与编码器输出一定质量图像所需码率密切相关。例如,统计数字量10表示编码器输出同等质量图像的码率是统计数字量为5时的2倍。前向预测法对图像复杂度变化和场景切换的反映迅速,但节目内容千差万别,活动性与复杂度大不相同,要找到能适应任何图像内容且与输出码率密切相关的统计数字量是个带有挑战性的工作。另外,实时前向预测需要预处理芯片,增加系统成本。
反馈预测法是在图像编码后,采集编码过程中产生的统计数字量(图2中虚线箭头),以指导后面图像编码。与预处理法相比,反馈法不需对图像预处理,运算量较小。但统计数字量只能是编码过程中产生的一些信息,是用前面图像的统计数字量预测后面的图像,因此反馈预测法对图像复杂度变化和场景切换的反映不如前项预测法快速。但由于图像内容会持续一定时间,所以反馈预测法也能对码率进行预测。
2.2 带宽分配模块
带宽分配模块可选取多种算法。比较简单的算法是将可用信道容量分成Cp、C0两部分,前者按预测的各路节目码率分配,使每路节目保持一可接受的图像质量;后者按各种节目预测码率的方差分配,保证复杂节目得到更多的码率,使各路节目的图像质量统一[1]。
带宽分配模块还可按码率预测模块输出的统计数字量计算各路节目的复杂度,并按其比例分配带宽[3]。复杂度计算可采用MPEG TM5[5]中相应公式:
C=R×Q
式中,R是图像编码的码率,Q是图像的平均量化因子(图像内各宏块量化因子的平均值)。
另一种算法是先定义Super GOP和Super Frame结构[4],并给每个Super GOP分配相同的码率;然后按TM5中码率分配方法将Super GOP码率分配给每个Super Frame;同样的方法也应用于Super Frame中每一帧的码率分配。
各节目质量统一体现在图像有相同的失真度上。根据率失真理论[6],复杂图像应分配给较多的码率时,其失真度与简单图像相同。所以,无论采用何种算法分配带宽,都应使分配给各路节目的目标码率与其复杂度成正比。
另外,带宽分配模块在什么时间段上分配带宽也值得考虑。有两种选择:以图像帧或GOP为时间单位。按帧分配码率,需先确定任一时刻各节目的图像类型(各节目的GOP结构不同,其图像类型的变化不同步),以便合理分配码率。从图像质量的稳定性上考虑,码率分配应使整个图像序列的整体质量最优,而不是某一帧图像质量最佳,大多数视频节目在GOP内发生场景切换的几率很小,且GOP内三种图像类型I、P、B的排列顺序具有重复性。从而可按预先确定的比例分配GOP内图像的码率,且各帧码率的波动可在GOP内相互补偿。如果某一GOP内发生场景切换,可把这一GOP内余下图像与下一GOP合成一个大GOP,使场景切换不影响码率分配策略。因此,以GOP为单位分配带宽更合理。
2.3 量化参数选择
量化参数选择模块使各编码器输出满足带宽分配模块预分配的目标码率。量化参数包括量化因子Q和量化矩阵。量化矩阵可在图像级调整,量化因子Q可在条或宏块级调整。量化矩阵依人的视觉空间频率特性改变,相对稳定。码率的控制和调整一般通过改变量化因子实现。图3是量化因子与输出码率的关系。
为使图像主观质量相对一致,各路节目应尽量使用相同量化因子[3]。量化参数选择模块可在量化因子取值范围(1~31)内搜索,选择合适的Q使编码器输出最接近的目标码率。由图3可知,量化因子较小时,其增减1都会使码率变化很大。所以,满足目标码率的Q有可能不是整数。如选用整数Q,即图像内每个宏块使用相同Q,编码器输出可能与目标码率有偏差,但码率偏差可在缓存器中相互补偿。
图像平均量化因子也可为小数值,即图像内条或宏块选用不同Q值。量化参数选择模块可以结合人眼特性,预先确定多种Q的选取模板,供图像按其活动性、复杂度和内容等选用,保证图像主观质量最佳。例如,一幅中间部分细节较多的图像Q若是3.75,可让图像边缘占宏块总数四分之三的宏块的Q值取为4,中间部分其它四分之一宏块的Q值取为3。这样,不受观众注意的图像边缘量化较粗,而图像中心量化较细,整幅图像主观质量最佳。
2.4 缓存器控制
缓存器控制模块对码率加入限制以使缓存器不发生上、下溢[3]。可设置一缓存器阈值系数α,令输出的总码率Bf满足:
αBs≤Bf≤(1-α)Bs
式中Bs为缓存器容量。如果码率超出此阈值,缓存器控制模块指导带宽分配模块重新分配带宽。α决定着缓存器利用率的大小,应根据实际情况灵活选取。
码率预测、带宽分配、量化参数选择和缓存器控制是联合码率控制系统中最重要的几个模块,它们之间并不是独立、割裂的,而是相互影响、相互制约的。因此,要从使整个系统性能最佳的角度选择这几个模块的算法。
3 联合码率控制性能评价
评价联合码率控制系统性能有两项指标:统计复用增益(G)与峰值信噪比(PSNR)。多路MPEG VBR视频节目的统计复用增益G定义为:在同一固定带宽信道内,可传输的经过复用且具有同等或更佳图像质量的VBR视频业务数目对可传输的CBR视频业务数目之比[1]。通常G越大,复用性能越佳,可同时复用的VBR视频业务数目也越多。
用PSNR评价联合码率控制系统性能的方法是:求复用后各路VBR视频节目的峰值信噪比与传输同等数目CBR视频节目时的峰值信噪比之比,所得PSNR的增加量即表征图像质量的改善程度。峰值信噪比的计算式为:
式中,n(x,y,z)是在象素(x,y,z)上叠加的噪声,M是总的象素数。
总之,联合码率控制技术能消除统计复用的信息丢失缺陷,将复用后的视频业务码率限制在信道容量之内,且各节目的图像质量保持一致,适用于数字视频广播。本文首次提出模块化联合码率控制,将系统分为几个控制模块,模块算法的调整不影响整体控制策略,其目的是增强算法的通用性,使其适用不同编码芯片,得到更广泛的应用。
对模块化联合码率控制技术,还有很多待研究的课题。包括选择合适的算法提高系统运算速度和工作性能;研究不仅按图像复杂度分配码率,而且通过设置优先级保证重点节目有足够码率的方法;研究较“峰值信噪比”更能正确地反映重建图像主观质量的客观量等。