一种avs编码芯片中优化码表存储的方法【专利摘要】本发明提供一种AVS编码芯片中优化码表存储的方法,本发明中这种存在运算关系的数组(run,level)称为特殊数组,针对于特殊数组所对应的码字codenum将不用存储,而是直接由run或者是level计算得到,在硬件结构采用一个8位的加法器来实现运算。利用本发明所述的优化码表存储的方法能有效减少存储码表所需要的资源,有利于AVS编码芯片的实现。由于在AVS编码中需要查询大量的码表,码表的存储要占用大量的存储资源,采用该方案可以有效的减少存储码表所占用的资源。由于AVS产业化不断加快,AVS编码芯片应运而生,采用该发明,可以更有效的利用芯片的存储资源,有利于提高AVS编码芯片的性能。【专利说明】—种AVS编码芯片中优化码表存储的方法【
技术领域:
】:[0001]本发明涉及一种AVS编码芯片中优化码表存储的方法,属于多媒体的【
技术领域:
】。【
背景技术:
】:[0002]随着多媒体技术的发展,人们对多媒体视频的压缩要求越来越高,新的视频编码标准应运而生。AVS是我国自主开发的先进视频编码标准,随着AVS标准的日趋完善以及国家层面的大力推广,AVS标准产业化进程大大加快,熵编码作为整个AVS视频编码的最后一级,其运算复杂,占用的芯片资源较多,因此熵编码模块的很大程度上影响着AVS编码芯片的性能。[0003]码字查找是熵编码模块重要的一部分,AVS预测残差系数首先经过整数DCT变换和量化,量化后的输出是一个包含少数非零系数和大量的零系数的稀疏矩阵,为了对稀疏矩阵进行有效的表示,稀疏矩阵通过zig-zag扫描和重排序,得到(run,level)数组,其中level表示的是稀疏矩阵中的非零系数,run表示的是每个level之前零的个数,然后对(run,level)进行码字查找,在AVS标准中共有19张码表,AVS编码要存储这19张码表需要耗费大量的存储资源,这对于AVS编码芯片的实现是一个非常大的挑战。因此如何减少存储码表所需要的资源,对于AVS编码芯片相当重要。【
发明内容】:[0004]发明概述:[0005]针对现有技术的不足,本发明提供一种AVS编码芯片中优化码表存储的方法。利用该方法,有效减少AVS编码中存储码表所需要的资源,有利于AVS编码芯片的实现。[0006]在本发明所述的码表中,以码表号tablenum区分各种码表,每张码表中包括run和level的任意组合对应一个码字codenum,该对应关系信息以码表的形式存在。现有正常情况下,在单张码表中,一个数组(run,level)对应一个码字codenum,每个码字codenum都需要存储。经过统计,在所述的码表中有些codenum和(run,level)存在以下运算关系:[0007]codenum=run+run;codenum=run+run+l;codenum=run+run-l;codenum=run+run+2;codenum=IeveI+1eveI;codenum=IeveI+1eveI+I;codenum=leve1+1eve1-1;或codenum=level+level+2;[0008]而且符合上述关系的码字在码表中所占的比例达到32.7%,在本发明中这种存在如上述运算关系的数组(iom,level)称为特殊数组,针对于特殊数组所对应的码字codenum将不用存储,而是直接由run或者是level计算得到,在硬件结构采用一个8位的加法器来实现运算。利用本发明所述的优化码表存储的方法能有效减少存储码表所需要的资源,有利于AVS编码芯片的实现。[0009]发明详述:[0010]本发明的技术方案如下:[0011]一种AVS编码芯片中优化码表存储的方法,包括步骤如下:[0012](I)统计码表中符合以下运算关系的特殊数组(run,level):[0013]codenum=run+run;codenum=run+run+1;codenum=run+run-1;[0014]codenum=run+run+2;codenum=level+level;codenum=level+level+l;[0015]codenum=leve1+1eve1-1;或codenum=level+level+2;[0016](2)将信号输入的数组(run,level)和码表号tablenum输入到判断逻辑模块,判断逻辑模块根据步骤(I)的统计,判断输入的数组(run,level)是否为特殊数组:给出标志信号flag和控制信号control[2:0];[0017]其中,当标志信号flag为O时,贝U表示数组(run,level)不是特殊数组,码字codenum将通过查表逻辑模块得到,查表逻辑模块将不属于特殊数组的(run,level)所对应的码字,按照码表号tablenum顺序依次存储。图4中addr表示存储器地址,codenum表示要存储的码字;当标志信号flag为I时,则表示数组(run,level)是特殊数组,码字codenum将通过加法逻辑模块得到;[0018]其中,所述控制信号control[2:0]为三位控制信号,其包括control[0]和control[2:1],所述control[0]为控制信号的最低位,所述control[2:1]为控制信号的高两位;所述控制信号control[2:0]决定码字codenum与数组(run,level)的具体对应关系;[0019](3)所述的加法逻辑模块包括选择器MUX0、选择器MUXl和加法器,选择器MUXO根据控制信号control[2:0]的最低位control[0]选择run或level输入加法器:[0020]当control[0]为O时,贝U表示输入到加法器中的是run;当control[0]为I时,则表示输入到加法器中的是level;[0021](4)选择器MUXl根据根据控制信号control[2:0]的高两位control[2:1]对应将“0,1,-1,2”输入到加法器中:[0022]当control[2:1]为00时,则输入加法器的值为O;[0023]当control[2:1]为01时,则输入加法器的值为I;[0024]当control[2:1]为10时,则输入加法器的值为-1;[0025]当control[2:1]为11时,则输入加法器的值为2;[0026](5)所述加法器根据选择器MUXO和选择器MUXl分别输入值,对应执行以下运算:[0027]当输入为run和O时,贝U加法器执行codenum=run+run;[0028]当输入为run和I时,贝U加法器执行codenum=run+run+l;[0029]当输入为run和-1时,贝U加法器执行codenum=run+run_l;[0030]当输入为run和2时,贝U加法器执行codenum=run+run+2;[0031]当输入为level和O时,则加法器执行codenum=level+level;[0032]当输入为level和I时,则加法器执行codenum=level+level+l;[0033]当输入为level和-1时,则加法器执行codenum=level+level_l;[0034]当输入为level和2时,则加法器执行codenum=level+level+2。[0035]本发明的优势如下:[0036]1、由于在AVS编码中需要查询大量的码表,码表的存储要占用大量的存储资源,采用该方案可以有效的减少存储码表所占用的资源。[0037]2、由于AVS产业化不断加快,AVS编码芯片应运而生,采用该发明,可以更有效的利用芯片的存储资源,有利于提高AVS编码芯片的性能。【专利附图】【附图说明】:[0038]图1是本发明的整体实现框图;[0039]图2是本发明的加法逻辑模块的硬件结构图;[0040]图3是本发明的选择器MUXl根据控制信号高两位control[2:1]向加法器输入的对应数值表;[0041]图4是本发明的查表逻辑模块的结构图。【具体实施方式】:[0042]下面结合附图和实施例对本发明作进一步的说明,但不限于此。[0043]实施例、[0044]如图1-4所示。[0045]一种AVS编码芯片中优化码表存储的方法,包括步骤如下:[0046](I)统计码表中符合以下运算关系的特殊数组(run,level):[0047]codenum=run+run;codenum=run+run+1;codenum=run+run-1;[0048]codenum=run+run+2;codenum=level+level;codenum=level+level+l;[0049]codenum=leve1+1eve1-1;或codenum=level+level+2;[0050](2)将信号输入的数组(run,level)和码表号tablenum输入到判断逻辑模块,判断逻辑模块根据步骤(I)的统计,判断输入的数组(run,level)是否为特殊数组:给出标志信号flag和控制信号control[2:0];[0051]其中,当标志信号flag为O时,贝U表示数组(run,level)不是特殊数组,码字codenum将通过查表逻辑模块得到,查表逻辑模块将不属于特殊数组的(run,level)所对应的码字,按照码表号tablenum顺序依次存储。图4中addr表示存储器地址,codenum表示要存储的码字;当标志信号flag为I时,则表示数组(run,level)是特殊数组,码字codenum将通过加法逻辑模块得到;[0052]其中,所述控制信号control[2:0]为三位控制信号,其包括control[0]和control[2:1],所述control[0]为控制信号的最低位,所述control[2:1]为控制信号的高两位;所述控制信号control[2:0]决定码字codenum与数组(run,level)的具体对应关系;[0053](3)所述的加法逻辑模块包括选择器MUX0、选择器MUXl和加法器,选择器MUXO根据控制信号control[2:0]的最低位control[0]选择run或level输入加法器:[0054]当control[0]为O时,则表示输入到加法器中的是run;当control[0]为I时,则表示输入到加法器中的是level;[0055](4)选择器MUXl根据根据控制信号control[2:0]的高两位control[2:1]对应将“0,1,-1,2”输入到加法器中:[0056]当control[2:1]为00时,则输入加法器的值为O;[0057]当control[2:1]为01时,则输入加法器的值为I;[0058]当control[2:1]为10时,则输入加法器的值为-1;[0059]当control[2:1]为11时,则输入加法器的值为2;[0060](5)所述加法器根据选择器MUXO和选择器MUXl分别输入值,对应执行以下运算:[0061]当输入为run和O时,则加法器执行codenum=run+run;[0062]当输入为run和I时,贝1J加法器执行codenum=run+run+l;[0063]当输入为run和-1时,贝1J加法器执行codenum=run+run_l;[0064]当输入为run和2时,贝1J加法器执行codenum=run+run+2;[0065]当输入为level和O时,则加法器执行codenum=level+level;[0066]当输入为level和I时,则加法器执行codenum=level+level+l;[0067]当输入为level和-1时,则加法器执行codenum=level+level_l;[0068]当输入为level和2时,则加法器执行codenum=level+level+2。【权利要求】1.一种AVS编码芯片中优化码表存储的方法,包括步骤如下:(1)统计码表中符合以下运算关系的特殊数组(run,level):codenum=run+run;codenum=run+run+1;codenum=run+run-1;codenum=run+run+2;codenum=level+level;codenum=level+level+l;codenum=leve1+1eve1-1;或codenum=level+level+2;(2)将信号输入的数组(run,level)和码表号tablenum输入到判断逻辑模块,判断逻辑模块根据步骤(I)的统计,判断输入的数组(run,level)是否为特殊数组:给出标志信号flag和控制信号control[2:0];其中,当标志信号flag为O时,则表示数组(run,level)不是特殊数组,码字codenum将通过查表逻辑模块得到;当标志信号flag为I时,则表示数组(run,level)是特殊数组,码字codenum将通过加法逻辑模块得到;其中,所述控制信号control[2:0]为三位控制信号,其包括control[O]和control[2:1],所述control[O]为控制信号的最低位,所述control[2:1]为控制信号的高两位;所述控制信号control[2:0]决定码字codenum与数组(run,level)的具体对应关系;(3)所述的加法逻辑模块包括选择器MUX0、选择器MUXl和加法器,选择器MUXO根据控制信号control[2:0]的最低位control[O]选择run或level输入加法器:当control[O]为O时,贝U表示输入到加法器中的是run;当control[O]为I时,贝Ij表示输入到加法器中的是level;(4)选择器MUXl根据根据控制信号control[2:0]的高两位control[2:1]对应将“0,1,-1,2”输入到加法器中:当control[2:1]为00时,则输入加法器的值为O;当control[2:1]为01时,则输入加法器的值为I;当control[2:1]为10时,则输入加法器的值为-1;当control[2:1]为11时,则输入加法器的值为2;(5)所述加法器根据选择器MUXO和选择器MUXl分别输入值,对应执行以下运算:当输入为run和O时,贝U加法器执行codenum=run+run;当输入为run和I时,贝U加法器执行codenum=run+run+l;当输入为run和-1时,贝U加法器执行codenum=run+run-l;当输入为run和2时,贝U加法器执行codenum=run+run+2;当输入为level和O时,贝U加法器执行codenum=level+level;当输入为level和I时,贝U加法器执行codenum=level+level+l;当输入为level和-1时,贝U加法器执行codenum=level+level_l;当输入为level和2时,贝U加法器执行codenum=level+level+2。【文档编号】H04N19/00GK103533360SQ201310492459【公开日】2014年1月22日申请日期:2013年10月19日优先权日:2013年10月19日【发明者】王祖强,张贞雷申请人:山东大学