基于DSP的AVS视频编码算法优化与实现(12)
时间:2025-01-20
时间:2025-01-20
AVS
华J匕电力人学硕士学位论文
该模块包括整数8×8变换、量化和扫描、反量化和反变换。整个过程以帧内或帧问预测得到的残差块作为输入,通过整数变换、量化和ZiaZig扫描,得到二维幅值和游程数组并提供给后续熵编码模块;同时,对量化后的系数进行反量化和反变换,利用其结果和先前计算的残差信号重建原始图像,作为帧I’日J编码时的参考图像使用。该模块共包含五个实现函数:前向8×8整数变换fdct8x8(intl6t奉data)、量化quant8x8(intl6_t}data,constint32.tQp,int32_tiSjntra)、反变换idct8x8(intl6-t事data)、反量化iquant8x8(intl6一t宰data,constint32_tQp)和扫描scan—zig_8x8(intl6一t木leVel,int16一t母run,int16-t牛data)。
AvS的8x8整数变换采用了一维8点蝶形快速算法,量化主要通过尺度变换结合查表操作实现。该模块的算法步骤如下:
1.编码过程中,对输入残差矩阵X进行如下二维正变换:
y=(砑汀7’)>>5
其中,r为变换矩阵,y为输出矩阵。(2.1)
将残差矩阵扩大32倍,残差数据比较小,扩大32倍是为了提高其量化精度。
2.将正变换输出系数矩阵先与尺度缩放矩阵玩的元素对应相乘,结果右移19位,再通过量化参数妒查找量化表得到Q_忍6昆[QP】,与尺度缩放后的结果相乘,再右移l5位,保证量化输出结果在16位以内。
硇f√)={[(I巧,_,)I鲫’(,,/)+(1<<l8))>>l9】木Q一砌6HQ同+力>>15(2-2)
式(2—2)中,输出矩阵为坦,每个元素阳Ⅳ∥的符号与玮∥相同;E8’是尺度缩放的调整矩阵,在程序中已经设计成了查找表;f足改善图像视觉效果的偏移量,当I帧时,f=(1<<15)×lO/3l,当P帧时,f_(1<<15)×10/62;陡勋6,P[QP】的值足16位的无符号数,在程序中通过查表提时得到。
3.反量化时的输出矩阵为y’,,Q一勋6,P为反量化表,舶泸是与QP相对应的位移表,反量化公式为:
‰=(玛u)坦一死6M妒】)>>鼬纠Q尸】
4.反变换可以表示为:(2-3)
x‘={rr[(】,’r)>>3】)>>7(2.4)
为了节省编码时间和码流,在该模块中我们对量化后的系数进行了门限处理。8