基于avs的并行量化和反量化方法
【技术领域】
[0001] 本发明涉及数字视频编解码技术领域,具体涉及基于AVS(AudioVideocoding Standard)标准中,使用SIMD(SingleInstructionMultipleData)指令优化量化和反量 化的方法。
【背景技术】
[0002] 随着AVS标准在广播电视、互联网、机顶盒、监控等大规模产业化,在PC和嵌入式 设备上播放和录制AVS文件要求越来越多,且都希望实时,由于AVS采用高复杂度算法获得 高编码效率,因此,需要对编解码器进行有效的程序优化,才可能达到实时,画面流畅,播放 和录制达到25fps,甚至30fps。
[0003] 对编解码AVS码流分析,QUANT/DEQUANT耗时占很大比重,特别的,如果量化后的 数据都为〇,将可以不需要进行许多运算,优化好它们就能有效的提高编解码效率。现在 的PC和嵌入式处理器芯片有SMD指令,如:intel的mmx、sse和AMD的3DNow!,ARM的 NEON,使用好这些SMD指令,能有效地提高编解码速度。
[0004] 量化公式如下:
[0005] 如果eg大于等于0,则:
[0006] (1^=(((cjj^scale^ti,j]+218) >>19)*Qp(qp)+qp_const) >>15 ;
[0007] 如果Cij小于0,则:
[0008] (1。=-((((_cifscalejnlii,j]+218)?19)*Qp(qp)+qp_const)>>15);其中,Cij为 变换后的结果,du为量化后的结果,Scale_m[i,j]为标准规定的如下值:
[0009]
【主权项】
1. 基于AVS的并行量化方法,其特征在于,包括W下步骤: 步骤A ;分析量化公式中的参数,分别提取量化公式中的每个参数,每个参数均为16位 数据,参数数量包括5个,分别记为第一参数、第二参数、第=参数、第四参数和第五参数, 第一参数位于第一矩阵内,第二参数位于第二矩阵内,第=参数、第四和第五参数为固定参 数; 步骤B ;分别将第一矩阵的当前行的8个第一参数和第二矩阵的当前行的8个第二参 数并行送入相应的寄存器中,将8个第=参数、8个第四参数和8个第五参数亦分别并行送 入相应的寄存器中; 步骤C ;利用保存有对应参数的寄存器对量化公式进行运算; 步骤D ;获得同一行的8个量化结果; 步骤E ;重复执行8次步骤B至步骤D,依次获得8行量化结果,得到8*8量化结果矩 阵。
2. 根据权利要求1所述的基于AVS的并行量化方法,其特征在于,在步骤B与步骤C之 间还包括: 步骤B1 ;判断第一矩阵中的当前行的8个第一参数是否都为0,若是,则跳过步骤C的 运算,在步骤D中直接获得8个量化结果,且8个量化结果均为0 ;否则执行步骤C。
3. 根据权利要求1所述的基于AVS的并行量化方法,其特征在于,量化公式为;d u = ((((3。.*30316_111[;[,^']+218)〉〉19)*化(9口)+9口_(3〇]131:)〉〉15,其中,(1。.为量化结果,0。为变换 结果,i和j的取值范围为0-7 ; 在步骤A中,将量化公式进行等效转换,等效转换后的量化公式;du= ((((C u*scale_ m[i, j] +22)〉〉3) *Qp (qp)) <<l+qp_const?l)〉〉16,其中,第一参数为 c。.,第二参数为 scale_ m[i,j],第S参数为22,第四参数为化(qp),第五参数为qp_const ; 在步骤C中,利用保存有对应参数的寄存器对等效转换后的量化公式进行运算,首先 取 cu*scale_m[i,j]部分的高 le 位数据,再取 2* ((cu*scale_m[i,j]+巧〉〉:3) *化(qp) 部分的高16位数据和低16位数据,将2*((cu*scale_m[i,j]+22)〉〉3)*化(qp)部分的低 16位数据与2*qp_cons t进行饱和相加,若饱和相加结果大于2ie,则向2*((Cu*scale_ m[i,j]+22)〉〉3) *化(qp)部分的高16位数据进一位,否则不需要进位。
4. 根据权利要求3所述的基于AVS的并行量化方法,其特征在于,在步骤B中,将为负 数的第一参数的符号位去掉,使该第一参数转为正数;在步骤D中,针对步骤B中为负数的 第一参数,在对应的量化结果中还原去掉的符号位,将该量化结果转为负数。
5. 根据权利要求1所述的基于AVS的并行量化方法,其特征在于,寄存器为SSE2中的 xmm寄存器。
6. 基于AVS的并行反量化方法,其特征在于,包括W下步骤: 步骤A ;分析反量化公式中的参数,分别提取反量化公式中的每个参数,每个参数均为 16位数据,参数数量包括3个,分别记为第一参数、第二参数和第=参数,第一参数位于第 一矩阵内,第二参数和第=参数为固定参数; 步骤B ;将第一矩阵的当前行的8个第一参数,W及8个相同的第二参数和8个相同的 第=参数分别并行送入相应的寄存器中; 步骤C ;利用保存有对应参数的寄存器对反量化公式进行运算; 步骤D ;获得同一行的8个反量化结果; 步骤E ;重复执行8次步骤B、步骤C和步骤D,依次获得8行反量化结果,得到8*8反 量化结果矩阵。
7. 根据权利要求6所述的基于AVS的并行反量化方法,其特征在于,在步骤B与步骤C 之间还包括: 步骤B1 ;判断第一矩阵中的当前行的8个第一参数是否都为0,若是,则跳过步骤C的 运算,在步骤D中直接获得8个反量化结果,且8个反量化结果均为0 ;否则执行步骤C。
8. 根据权利要求6所述的基于AVS的并行反量化方法,其特征在于,反量化公式为;d U =(Cu*IQTAB[qp] + (l<<(IQSHIFT[qp]-2)))〉〉(IQSHIFT[qp]-l),其中,d。'为反量化结果, Cy为量化结果,i和j的取值范围为0-7 ; 在步骤A中,将反量化公式进行等效转换,等效转换后的反量化公式为;du= (C u*IQ TAB [qp] << (17-IQSHIFT [qp]) + (1<< (IQ甜IFT [qp] -2)) << (17-IQSHIFT [qp]))〉〉16,其中,c。' 为第一参数,IQTAB[qp]为第二参数,(1<<(IQ甜IFT[qp]-2))为第S参数; 在步骤C中,利用保存有对应参数的寄存器对等效转换后的反量化公式进行运算,取c ij*IQTAB[qp]?(17-IQSHIFT[qp])部分的高 16 位和低 16 位数据,将 CijWQTABhpKaU-iQ 甜 IFT[qp]) 部分的低 16 位数据与 (1<<(IQ 甜 IFT[qp]-2))?(17-IQSHIFT[qp]) 部分进 行饱和相加,若饱和相加结果大于2ie,则向Cy*IQTAB [qp] << (17-IQSHIFT [qp])部分的高16 位数据进一位,否则不需要进位。
9. 根据权利要求8所述的基于AVS的并行反量化方法,其特征在于,在步骤B中,将为 负数的第一参数的符号位去掉,使该第一参数转为正数;在步骤D中,针对步骤B中为负数 的第一参数,在对应的量化结果中还原去掉的符号位,将该量化结果转为负数。
10. 根据权利要求6所述的基于AVS的并行反量化方法,其特征在于,寄存器为SSE2中 的xmm寄存器。
【专利摘要】本发明公开了基于AVS的并行量化和反量化方法,量化方法包括:分析量化公式中的参数,分别提取量化公式中的每个参数;分别将每个参数对应的8个值并行送入相应的寄存器中;利用保存有对应参数的寄存器对量化公式进行运算;获得同一行的8个量化结果;重复运算,依次获得8行量化结果。反量化方法包括:分析反量化公式中的参数,分别提取反量化公式中的每个参数;分别将每个参数对应的8个值并行送入相应的寄存器中;利用保存有对应参数的寄存器对反量化公式进行运算;获得同一行的8个反量化结果;重复运算,依次获得8行反量化结果。通过分别将量化和反量化中的参数并行放进寄存器中进行处理,实现高效率地得到量化结果和反量化结果。
【IPC分类】H04N19-423, H04N19-124
【公开号】CN104683800
【申请号】CN201510076280
【发明人】叶广明
【申请人】广州柯维新数码科技有限公司
【公开日】2015年6月3日
【申请日】2015年2月11日