运动估计与运动补偿的H.263压缩算法分析和优化研究

运动图像远程实时传输系统的网络传输部分架构在Internet之上 , 而现阶段Internet的状况是带宽小、延迟大、不稳定 。所以为了获得良好的实时传输效果 , 除了改善传输控制机制之外 , 还需要实现高压缩比、低耗时、能达到实时压缩和解压缩效果的运动图像压缩方法 。H.263是国际电信协会-电信标准化部门ITU-T(The International Telecommunications Union-Telecommunication Standardization Sector)于1995年通过的用于低比特率实时传输的视频编解码协议 。其设计初衷是满足带宽低于64kbps的低带宽视频应用需求 , 如视频会议、可视电话等 。现在H.263也被应用于运动图像远程实时传输系统中 , 但原始的H.263在实时性和压缩比等方面还有不少可优化余地 。本文针对具体的运动图像远程实时传输系统应用 , 在大量研究工作基础上提出多个H.263的优化策略 , 并取得了相当好的效果 。
1 H.263压缩算法的分析概要
H.263的输入视频帧格式为QCIF(Quarter Common Intermediate Format , 大小为176×144)、CIF(Common Intermediate Format , 大小为352×288)等 。将每个视频帧分成许多宏块(MB-Micro Block) , 每个宏块由4个Y亮度块、1个Cb色度块和1个Cr色度块组成 。块(Block)的大小为8×8 。H.263以宏块为单位进行视频帧的压缩 。
H.263使用离散余弦变换DCT(Discrete Cosine Transform)减小空间冗余 , 使用运动估计和运动补偿(Motion Estimation and Motion Compensation)减小时间冗余 。H.263有两种编码方式 , 一种是Intra方式 , 帧内编码 , 产生的帧作为关键帧-I帧;另一种是Inter方式 , 帧间编码 , 产生的帧作为非关键帧-P帧 。
通过分析 , 将H.263压缩算法的流程图归纳为如图1所示 。

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
通过分析和测试表明 , DCT、运动估计和运动补偿是H.263最重要的部分 , 同时也是H.263实现中最耗时的运算环节 。要提高H.263的运算速度 , 就要针对这些环节进行优化 。
2 转换函数、DCT和运动估计环节的优化
2.1 色彩空间转换函数的优化
CIF格式基于YUV色彩空间 , 而应用程序中 , 大多数视频采集程序只提供RGB色彩空间的视频帧 , 因此需要建立从RGB色彩空间到YUV色彩空间的转换函数 。
RGB到YUV的转换函数如下所示 , 其中Y为YUV色彩空间的亮度值 , U(Cb)和V(Cr)为YUV色彩空间的色度值 。
Y=0.299×R+0.587×G+0.114×B;
Cr=V=(R-Y)×127/179;
Cb=U=(B-Y)×127/226;
H.263原有的色彩空间转换算法采用浮点运算 , 但浮点运算会消耗较多的CPU周期 。为了加快视频处理速度 , 采用整型乘法和向右移位来代替浮点乘除 , 从而有效缩短了转换时间 。
优化后的转换函数如下:
Y=((R×313524)》》20)+((G×615514)》》20)×((B×119538)》》20);
Cr=V=((R-Y)×743962))》》20;
Cb=U=((B-Y)×589244))》》20;
2.2 DCT、IDCT算法的优化
二维DCT公式为:

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
通过分析得出 , DCT快速算法的实现可以有两种方式 。一种方法是把已有的快速变换算法(如FFT、FHT等)映射到DCT计算中 , 这种方式多了一个映射环节 , 增加了计算的复杂度;另一种方法是从DCT变换本身寻找规律进行改进 。
在H.263应用中 , 注意到两条规律:一是能量集中在少部分DCT系数上;二是随着量化步长的增大 , 被量化为零的DCT系数增多 , 而且对DCT计算的精度要求降低 。于是 , 采用一种零系数预测策略 , 即根据量化步长 , 首先对DCT变换的输入数据分类 , 对于给定的量化步长 , 如果输入数据将要被量化为0 , 那么这些数据就不必做DCT运算 , 而直接将变换结果置为0 。这样只需对部分数据进行DCT变换 , 因此节省了大量无效运算 。另外 , 利用DCT的局部并行性 , 使用Intel的多媒体处理指令集-MMX来实现DCT计算 , 大幅度提高了运算速度 。
2.3 运动估计与运动补偿算法的优化
运动估计是指在参考帧中搜索一个与当前帧图像块最相似的图像块 , 即最佳匹配块 , 搜索结果用运动向量来表示 。运动补偿是指利用参考帧和已求得的运动向量重构当前帧 , 把重构帧和当前帧的差值作为当前帧的补偿值进行压缩编码 。两者互相配合 , 共同实现压缩效果 。
运动估计算法的研究从两方面着手:快速搜索算法和块匹配准则 。
最简单的搜索算法是全搜索法(FS) , 这种算法精度高 , 但计算量过于庞大 。为了加快运算速度 , 保证精度 , 人们提出了很多快速搜索算法:三步法(TSS)及基于三步法的改进算法、二维对数法(LOGS)、交叉搜索法(CS)、四步法(4SS)、预测搜索法(PSA)、钻石搜索法(DS)等 。钻石搜索法是迄今为止综合性能最优的快速搜索算法之一 , 用于本次项目研究中 。
块匹配准则决定何时找到最佳匹配块 , 从而终止搜索进程 。传统的准则有绝对平均误差函数(MAE)、互相关函数(CCF)、均方误差函数(MSE)、最大误差最小函数(MME)等 。由于传统方法没有考虑人眼的视觉特性 , 所以判断结果和人眼的感知相差较大 。实际H.263采用的块匹配准则为MSE的替代准则SAD(绝对差和) , 两者的公式如下:

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
其中:F0和F-1分别代表当前帧和重构帧(参考帧);k , l为待编码宏块在当前帧中的坐标;x , y为重构帧中参考宏块的坐标;N表示宏块的尺寸 , 此处为16 。从公式中可见 , SAD用绝对值运算代替了MSE的乘方运算 , 明显降低了运算量 , 从而可以加快计算速度 。
测试表明 , SAD的计算量要比MSE的计算量减少三分之一 , 而它们的图像效果相当 。
此外 , 还可以利用硬件特性加速块匹配准则的运算速度 , Intel的MMX技术提供了这种特性 。SAD等块匹配准则主要针对短数据的重复计算 , MMX增加了系统单个指令操作数据的数目(SIMD) , 从而可以在一个指令中完成多组数据的计算 , 实现并行机制 , 从而加快运算速度 。
3 提高压缩比的选择
H.263提供了许多高级模式来提高视频压缩比 。从对压缩效率的贡献角度看 , 大运动向量模式、高级预测模式、PB帧模式和增强PB帧模式是最重要的4个高级模式 。
在大运动向量模式和高级预测模式下 , 运动向量可以指到图像边界以外 , 增大了运动向量的表达范围 , 从而在本质上提高了运动补偿的精度以改善编码效率 。
基本PB帧模式下 , 一个PB帧是一个P帧和一个B帧组成的整体 。当前P帧由前一个P帧预测得到 , B帧则由前一个P帧和当前P帧预测得到(见图2) 。PB帧模式在增加较少比特数的情况下 , 将帧率提高了近一倍 。

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
增强PB帧模式的主要改进点在于预测方式的增强 。基本PB帧模式对B帧图像(或宏块 )仅允许使用双向预测 , 而增强的PB帧模式对B帧图像则允许使用前向预测(见图3)、后向预测(见图4)和双向预测(见图2)三种手段 。这样 , 在压缩过程中 , 有机会选择更合适的预测方法处理B帧图像(或宏块) , 从而提高B帧的压缩效率 。基本PB帧模式的B帧只能通过双向预测获得 , 这对慢速运动图像效果较好 。当输入运动图像存在快速不规则运动时 , B帧质量会急剧恶化 , 而增强PB帧模式的B帧有三种预测方式可选 , 可以解决这一难题 。通过分析和测试表明 , 增强PB帧模式比基本PB帧模式有更强的鲁棒性 , 更适用于运动图像远程实时传输 。

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
大运动向量模式和高级预测模式由于增大了运动向量的表示范围 , 可以增强运动补偿的精度 , 从而提高压缩比;而增强PB帧模式引入B帧 , 有三种预测方式可以生成B帧 , 在相同帧率的情况下 , 将压缩比提高近80% , 压缩效果明显 。在实际程序设计中 , 笔者配合传输环境测试模块 , 在网络带宽较低时实现这三种方式的配合使用 , 发挥了更大的压缩效率 , 达到更高的压缩比 。
4 实验数据和性能分析
4.1 算法优化测试
分别取100帧三种不同格式(SUB-QCIF:88×72 , QCIF:178×144 , CIF:352×288)的视频帧 , 每20帧取1个关键帧 , 视频帧质量取6000 , 比较优化前和优化后算法的时间效率 , 结果如(图5)所示 。

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
纵轴单位为毫秒 , 表示压缩完成所需时间 。可见 , 要处理的视频帧越大 , 优化后的算法取得的加速效果越明显 。
4.2 增强PB帧模式压缩效果测试
分别取100帧三种不同格式(SUB-QCIF:88×72 , QCIF:178×144 , CIF:352×288)的视频帧 , 每20帧取1个关键帧 , 视频帧质量取6000 , 比较使用增强PB帧模式前和使用增强PB帧模式后算法的压缩效率 , 结果如(图6)所示 。

运动估计与运动补偿的H.263压缩算法分析和优化研究
文章插图
纵轴为压缩比 。要处理的视频帧越大 , 冗余信息越多 , 增强PB帧模式的压缩效果越明显 。
【运动估计与运动补偿的H.263压缩算法分析和优化研究】 责任编辑:gt

    推荐阅读