基于DSP的AVS视频编码算法优化与实现(10)
时间:2025-01-20
时间:2025-01-20
AVS
华北电力人学硕十学位论文
函数AVS—encode_intra_y(AVS_t拳t,uin缁一t+pred,int32_ti)和AVS—encodtintra-uv(AVSj木t,uin缁_t宰pred,int32ji)进行帧内编码。
2.2.2帧间预测
帧问预测采用多参考帧预测【搭】技术,使当Ij{『块能够从前面几帧图像中寻找更好的匹配,因此能够提高编码效率。AVS视频标准限定最多采用两个参考帧,既兼顾了搜索匹配的性能,又大大降低了编码复杂度。
对于运动图像编码,采用变块大小运动补偿【l6】可以大大提高运动预测精确度。AvS.P2中采用了16×8、8×16、8×8分割子块,在高分辨率序列编码复杂度和精度方面进行了折衷。另外,增强运动矢量的精度也是提高预测准确度的重要手段之一,而插值滤波器的选择是影响高精度运动补偿性能的一个关键。根据高清视频的特性,AVS视频标准在进行运动矢量搜索时采用了l/4像素精度插值,对l/2和l/4像素位置插值均采用4拍滤波器,其效果与6拍滤波器相同,优点是大大降低了访问存取带宽,足一‘个对硬件实现非常有价值的特性。
帧间编码模块主要是利用已编码视频场/帧通过基于块的运动补偿进行编码。这种运动补偿方式是利用运动图像时问上的相关性进行压缩编码的,用参考帧图像对当前图像的每个宏块进行运动估计,找到匹配误差最小的对应块,并计算出运动矢量和误差图像。这样误差图像的值一般会很小,可以利用较少的比特数对其进行编码,而运功矢量占用的比特数非常少,因而采用运动估计方式能够大大提高压缩比。
在AVS中定义了两种采用帧间预测编码的帧:前向预测(P帧)和双向预测(B帧),由于B帧需要使用前后双向预测,考虑到向DSP移植的空间分配和编码速率问题,本设计中未使用B帧,但为B帧保留了结构体定义和函数接口,以便以后进一步扩展。帧问编码步骤如下:利用前一帧或两帧重构图像对当前图像的每一个宏块进行预测,在搜索窗中利用设计好的搜索算法进行最佳匹配块搜索。运动搜索算法是一个层层递进的过程,首先对16×16宏块进行运动估计,接着再按16×8和8×16分割以及8×8分割进行运动估计,通过计算和比较匹配代价找到最佳模式和最优的运动矢量。找到最佳匹配块后,计算出预测宏块与当前宏块的残差。需要注意的是,在进行预测的时候使用的并非之前帧的原始图像,而是其编码后重构得到的重构图像。这是因为在解码的时候,解码器不可能得到任何一帧原始图像,只能利用编码后的图像进行重构,再利用前一帧重构图像来预测当前图像,因此为了保持编码器和解码器两边的一致,编码器在预测当的图像的时候也利用了前一帧重建图像。6