多模图像编解码芯片中的系数缩放计算模块的制作方法

文档序号:7621434阅读:125来源:国知局
专利名称:多模图像编解码芯片中的系数缩放计算模块的制作方法
技术领域
本发明涉及一种多模图像编解码芯片中的运算单元,特别是一种多模图像编解码芯片中的系数缩放计算模块。
背景技术
在现今的图像编解码技术领域,由于多种编解码标准会在很长一段时间内并存,因此能够兼容等多种标准将成为图像芯片产品必备的特性。这种有多种图像编码和解码算法共存,兼容多种协议的芯片被称为“多模图像编解码芯片”。目前多模图像编解码芯片设计主要的一种技术路线,是在原有的某个协议的编解码核以外,增加其他协议的编解码核。如对于WMV9协议和MPEG4协议的编解码算法中,其系数预测中的系数缩放运算是分别按照各自的系数缩放运算公式进行。
MPEG4协议的系数缩放计算公式为(QFA*QPA)//QPx,①其中QFA为系数,QPA为量化参数,QPX为量化参数,其取值范围为1~31间整数,包括1和31。
WMV9协议的系数缩放计算公式为DCP‾=(DCP*DCSTEPP*DQScale[DCSTEPc]+0x20000)>>18]]>②其中DCp为系数,DCSTEPp为量化参数,DCSTEPc为索引参数,其取值范围为1~31间整数,包括1和3l,DQScale[DCSTEPc]为以DCSTEPc为变量的函数,其值列表如下DCSTEPcDQScale[DCSTEPc]1262144
2 1310723 873814 65536…8 32768…11 23831…14 18725…18 14564…22 11916…26 10082…28 936229 903930 87383 18456。
在多模图像编解码芯片中,为了按照上述公式实现这两种协议的系数缩放计算,现有技术中不得不采用两个不同的运算单元分别计算,因此,硬件模块数量的增加势必会加大芯片面积,增加产品成本。

发明内容
本发明的目的是针对现有技术的不足,提供一种可降低多模图像编解码芯片成本的系数缩放计算模块。
为了解决上述技术问题,本发明所采取的技术方案是一种多模图像编解码芯片中的系数缩放计算模块,包括运算单元、第一信号输入端、第二信号输入端、第三信号输入端以及信号输出端,其中所述第一信号输入端连接用于WMV9协议的系数缩放计算的系数DCp和量化参数DCSTEPp中的一个,以及用于MPEG4协议的系数缩放计算的系数QFA和量化参数QPA中的一个;所述第二信号输入端连接所述系数DCp和量化参数DCSTEPp中的另一个,以及所述系数QFA和量化参数QPA中的另一个;所述第三信号输入端连接WMV9协议的系数缩放计算公式中的索引参数DCSTEPc,以及用于MPEG4协议的系数缩放计算的量化参数QPX;所述运算单元将从第一信号输入端、第二信号输入端和第三信号输入端输入的参数依照公式 ,进行系数缩放计算,并将计算结果从所述信号输出端输出。
优选的,所述运算单元由乘法器和除法器构成,所述乘法器用于实现系数缩放计算中的参数间的乘法计算,所述除法器用于实现系数缩放运算中的参数间的除法计算。
进一步的,所述乘法器的两个乘数输入端可以分别连接所述第一信号输入端和第二信号输入端,其乘积输出端连接所述除法器的被除数输入端,所述除法器的除数输入端连接所述第三信号输入端,其商输出端连接所述信号输出端。
进一步的,所述除法器的被除数输入端可以连接所述第一信号输入端,所述除数输入端连接所述第三信号输入端,其商输出端连接所述乘法器的一个乘数输入端,所述乘法器的另一个乘数输入端连接所述第二信号输入端,所述乘法器的乘积输出端连接所述信号输出端。
进一步的,所述除法器可以采用流水线除法器替代。
优选的,所述运算单元可以由乘加器和倒数表构成,所述乘加器用于实现系数缩放计算中的系数间乘法和加法的计算,所述倒数表内存储索引参数DCSTEPc和量化参数QPX的倒数,并以输入的索引参数DCSTEPc或量化参数QPX为索引,输出对应的倒数值。
进一步的,所述乘加器的两个乘数输入端可以分别连接第一信号输入端和第二信号输入端,其加数输入端用于输入参数0x20000,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述乘加器的两个乘数输入端中的一个,所述乘加器的两个乘数输入端中的另一个还与其输出端连接,所述信号输出端连接所述乘加器的输出端。
进一步的,所述乘加器可以设置有两个,包括第一乘加器和第二乘加器,其中第一乘加器的两个乘数输入端分别连接第一信号输入端和第二信号输入端,其输出端连接所述第二乘加器的一个乘数输入端,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述第二乘加器的另一个乘数输入端,所述第二乘加器的加数输入端输入参数0x20000,其输出端连接所述信号输出端。
进一步的,所述第一乘加器可以采用乘法器代替。
优选的,所述量化参数QPX和索引参数DCSTEPc的取值范围可以为1至31之间的整数,且包括整数1和31。
在上述技术方案中,本发明由于实现了采用一个硬件模块,即一个运算单元,就可实现MPEG4和WMV9两种协议下的系数缩放计算,相对现有技术,可以简化多模图像编解码芯片中硬件结构,降低成本、节省芯片面积。


附图1为本发明的实施例1的结构方框图;附图2为本发明的实施例1的运算时序图;附图3为本发明的实施例2的结构方框图;附图4为本发明的实施例3的结构方框图;附图5为本发明的实施例3的运算时序图;附图6为本发明的实施例4的结构方框图;附图7为本发明的实施例4的运算时序图。
具体实施例方式
下面将结合说明书附图及具体实施例对本发明作进一步详细说明。
本发明的技术核心是,采用一个硬件模块,实现MPEG4协议和WMV9协议的系数缩放计算。
首先,有必要解释本发明可以采用一个硬件模块的理由。
分析WMV9协议的函数DQScale[DCSTEPc]的值,可以发现它们可表示为262144d=40000H=218/1,131072d=20000H=218/2,87381d=15555H=218/3,65536d=10000H=218/4,…32768d=8000H=218/8,…21845d=5555H=218/12,…16384d=4000H=218/16,…13107d=3333H=218/20,…10923d=2AABH=218/24,…9362d=2492H=218/28,…8456d=2108H=218/31。
经过上述归纳,我们发现现有技术中函数DQScale[DCSTEPc]的查找表是一个倒数表,它存储的数据为19bit的无符号数,乘法完成后右移18bit正是对应着除以218。
由上述归纳也可总结出一个公式
DQScale[DCSTEPc]=218/DCSTEPc③将该公式代入公式2中,得到DCP‾=(DCP*DCSTEPP*218/DCSTEPc+0x20000)>>18]]>④对比公式1和公式4,可以发现两个公式中都存在一个乘法和一个除法,即可表示为Y=A*B/C,另外,作为除数的WMV9协议的系数缩放计算公式中的索引参数DCSTEc,以及MPEG4协议的系数缩放计算的量化参数QPX,二者的取值范围都为1~31之间的整数,包括1和31。因此它们的倒数值也可由公式3表示。
另外,公式2和公式4中由于需要计算结果右移18bit,那么加上0x20000的实质是四舍五入。
并且公式4中,由于乘法和除法计算完成后,需要将结果乘以218,即将结果左移18位。在进行加法计算后,又需要将结果右移18位。如此,该公式可以简化为DCP‾=DCP*DCSTEPPDCSTEPc]]>⑤由此分析可知,MPEG4协议的系数缩放计算的公式1,和WMV9协议的系数缩放公式2均可以表示为Y=A*B/C,其中C为量化参数QPX或索引参数DCSTEPc;亦可表示为Y=A*B*D,其中D为量化参数QPX或索引参数DCSTEPc的倒数值。
这样,我们就找到了MPEG4协议和WMV9协议的系数缩放计算的相同点,从而可以采用一个运算单元,实现两种协议的系数缩放计算。
实施例1参考图1,本实施例提供的一种多模图像编解码芯片中的系数缩放计算模块,包括运算单元A、第一信号输入端1、第二信号输入端2、第三信号输入端3以及信号输出端4,其中所述第一信号输入端1同时连接用于WMV9协议的系数缩放计算的系数DCp和量化参数DCSTEPp中的一个,以及用于MPEG4协议的系数缩放计算的系数QFA和量化参数QPA中的一个;本实施例中,所述第一信号输入端1连接系数DCp和系数QFA。
所述第二信号输入端2同时连接所述系数DCp和量化参数DCSTEPp中的另一个,以及所述系数QFA和量化参数QPA中的另一个;本实施例中,所述第二信号输入端2连接量化参数DCSTEPp和量化参数QPA。
所述第三信号输入端3同时连接WMV9协议的系数缩放计算公式中的索引参数DCSTEPc,以及用于MPEG4协议的系数缩放计算的量化参数QPX;所述运算单元A将从第一信号输入端1、第二信号输入端2和第三信号输入端3输入的参数依照公式 ,进行系数缩放计算,并将计算结果从所述信号输出端4输出。
本实施例中,所述运算单元A由乘法器和除法器构成,所述乘法器用于实现系数缩放计算中的参数间的乘法计算,所述除法器用于实现系数缩放运算中的参数间的除法计算。
所述乘法器的两个乘数输入端分别连接所述第一信号输入端1和第二信号输入端2,其乘积输出端连接所述除法器的被除数输入端,所述除法器的除数输入端连接所述第三信号输入端3,其商输出端连接所述信号输出端4。
本实施例提供的计算模块,在进行WMV9协议的系数缩放计算时,自第一信号输入端1获得系数DCp,自第二信号输入端2获得量化参数DCSTEPp,自第三信号输入端3获得索引参数DCSTEPc。在乘法器中,完成系数DCp与量化参数DCSTEPp的乘法运算,并将该乘积作为被除数输入除法器,在除法器中完成与索引参数DCSTEPc除的计算,从而直接得到WMV9的系数缩放计算结果。
在进行MPEG4协议的系数缩放计算时,自第一信号输入端1获得系数QFA,自第二信号输入端2获得量化参数QPA,自第三信号输入端3获得量化参数QPX。在乘法器中,完成系数QFA与量化参数QPA的乘法运算,并将该乘积作为被除数输入除法器,在除法器中完成与量化参数QPX除的计算,从而直接得到MPEG4协议的系数缩放计算结果。
为了验证本实施例方案的性能,我们采用Synopsys公司的单元库所提供的乘法器和除法器来实现该方案。具体为确定系统的工作时钟为166M,所以模块的关键路径,其延时应小于6ns。
乘法用一个乘法器DW02_mult#(A_WIDTH=12,B_WIDTH=6)实现,除法用一个17/6的除法器实现。
首先估计乘法器的面积,其报告文件如下****************************************ReportareaDesignVDEC_SMULTI12X6P0(Synopsys公司的单元库中乘法器的名称)****************************************Library(s)UsedUMC018AG_AASW (单元库的名称)Total area8298.486328 (估计的面积值)该乘法器的关键路径为5.58ns,小于6ns,因此可以在一个时钟周期内完成此运算。
下面我们估计除法器,调用DW02_divide模块,它的面积报告文件为****************************************ReportareaDesigndw_div****************************************Library(s)UsedUMC018AG_AASWTotal area45839.781250该除法器的关键路径为20.00ns,需要在4个时钟周期内完成。
由上述估计可以看出
本方案的面积一个乘法器和一个除法器面积的和8298+45839=54137本方案的时序如图2所示。
受除法器关键路径的限制,这种方案的运算频率为每4个周期完成一次运算。
实施例2参考图3,本实施例与实施例1的差别仅仅在于先将第一信号输入端1连接的参数与第三信号输入端3连接的参数进行除法运算,然后将第二信号输入端2连接的参数与除法运算的结果相乘。
实施例3参考图4,本实施例与实施例1的差别仅仅在于采用流水线除法器替代这种替代将引起模块的速度、面积和功耗等方面的性能改变。对此我们验证如下确定系统的工作时钟为166M,所以模块的关键路径,其延时应小于6ns。
除法器改为流水线结构可以提高系统的数据速率,它的算法来自二进制除法的手动计算。我们在一级流水线内完成两次减法,那么它需要的流水线级数为(17+6)/2=11.5即我们需要12级流水线估计除法器的面积,其报告文件如下****************************************ReportareaDesignADCP_SCALE_PE****************************************
Library(s)UsedUMC018AG_AASWTotal area69986.791052流水线除法器的关键路径的时间为5.72ns。
因此,本方案的面积一个乘法器和一个流水线除法器面积的和8298+69986=78284本方案的时序参考附图5所示。由于它采用了流水线结构,它在每个周期都可以接收一个新的运算。不过,它的等待时间为13个周期。
前面给出的3种实施例中,均是采用Y=A*B/C这种模型实现运算单元的。下面将给出采用Y=A*B*D模型实现运算单元的实施例。
实施例4参考图6,本实施例的三个信号输入端所连接的参数可以与实施例1相同。其运算单元A由乘加器和倒数表构成,所述乘加器用于实现系数缩放计算中的系数间乘法和加法的计算,所述倒数表内存储索引参数DCSTEPc和量化参数QPX的倒数,并以输入的索引参数DCSTEPc或量化参数QPX为索引,输出对应的倒数值。
虽然图6中示出的是两个乘加器,但这两个乘加器实际上是同一个乘加器,我们分时使用它,从而完成不同的计算步骤。
该乘加器的两个乘数输入端分别连接第一信号输入端和第二信号输入端,其加数输入端输入参数0x20000,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述乘加器的两个乘数输入端中的一个,所述乘加器的两个乘数输入端中的另一个还与其输出端连接,所述信号输出端连接所述乘加器的输出端。
本系数缩放计算模块工作时,在进行WMV9协议的系数缩放计算时,自第一信号输入端1获得系数DCp,自第二信号输入端2获得量化参数DCSTEPp,自第三信号输入端3获得索引参数DCSTEPc。乘加器首先完成系数DCp与量化参数DCSTEPp的乘法运算,然后在下一个时序将所得乘积输入到其一个乘数输入端,同时倒数表将索引参数DCSTEPc作为索引,从其存储的倒数中查找到对应的倒数,如DCSTEPc为1时,查找到其倒数为262144,为2时,查找到其倒数为131072......从而将该查找值输出到乘加器的另一个乘数输入端,乘加器将两个乘数输入端的值进行相乘,并加上其加数输入端上的参数0x20000,最后将结果通过信号输出端4输出。在实际应用中,需将该结果的二进制值右移18位,即取信号输出端4输出结果的第19位作为最终的WMV9协议下的系数缩放计算结果。
在进行MPEG4协议的系数缩放计算时,乘加器首先将自第一信号输入端1获得的系数QFA与自第二信号输入端2获得的量化参数QPA相乘,完成后在下一个时序将其乘积输入到其一个乘数输入端,同时,其另一个乘数输入端获得倒数表根据第三信号输入端3输入的量化参数QPX而查找输出的倒数值,乘加器将这两个值进行相乘。在MPEG4协议中,乘加器的加法输入端不输入任何值。完成所有的乘法运算后,乘加器将最后获得的乘积作为最终的系数缩放结果输出到信号输出端4。
系统验证如下确定系统的工作时钟为166M,所以模块的关键路径,其延时应小于6ns。
使用一个乘加器MAC_DW20X17,来完成上述运算。
它的面积评估文件为****************************************ReportareaDesignMAC_ADCP****************************************Library(s)UsedUMC018AG_AASWTotal area67587.320312估计乘加器的时序,其报告文件中关键路径的时间为5.08ns
它的时序图如图7所示。
它完成一次运算需要2个时钟周期。
另外,本领域内的普通技术人员都应当知道,本实施例的技术构思还可以采用多种方案实现,如可采用两个乘加器,包括第一乘加器和第二乘加器,其中第一乘加器的两个乘数输入端分别连接第一信号输入端和第二信号输入端,其输出端连接所述第二乘加器的一个乘数输入端,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述第二乘加器的另一个乘数输入端,所述第二乘加器的加数输入端输入参数0x20000,其输出端连接所述信号输出端。
再如,可采用乘法器和加法器的组合替代所述乘加器。
又如,可采用乘法器替代所述的第一乘加器。
还如,可以改变倒数表输出端连接位置,使运算单元先完成第一信号输入端或第二信号输入端输入的参数与倒数表的输出值之间的乘法运算,然后再完成余下的乘法和加法运算。
……尽管本发明以上述实施例来对多模图像编解码芯片中的系数缩放计算模块进行详细地说明,但是本发明并不仅限于以上的实施例,并且可以延伸到本领域的普通技术人员通过阅读以上的实施例而想到的显而易知的实施例。
因此,本领域的普通技术人员对本发明的多模图像编解码芯片中的系数缩放计算模块所作出的任何变更或者修饰,理应落在本发明所要求保护的权利要求范围之内。
权利要求
1.一种多模图像编解码芯片中的系数缩放计算模块,包括运算单元、第一信号输入端、第二信号输入端、第三信号输入端以及信号输出端,其中所述第一信号输入端连接用于WMV9协议的系数缩放计算的系数DCp和量化参数DCSTEPp中的一个,以及用于MPEG4协议的系数缩放计算的系数QFA和量化参数QPA中的一个;所述第二信号输入端连接所述系数DCp和量化参数DCSTEPp中的另一个,以及所述系数QFA和量化参数QPA中的另一个;所述第三信号输入端连接WMV9协议的系数缩放计算公式中的索引参数DCSTEPc,以及用于MPEG4协议的系数缩放计算的量化参数QPX;所述运算单元将从第一信号输入端、第二信号输入端和第三信号输入端输入的参数依照公式 进行系数缩放计算,并将计算结果从所述信号输出端输出。
2.如权利要求1所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述运算单元由乘法器和除法器构成,所述乘法器用于实现系数缩放计算中的参数间的乘法计算,所述除法器用于实现系数缩放运算中的参数间的除法计算。
3.如权利要求2所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述乘法器的两个乘数输入端分别连接所述第一信号输入端和第二信号输入端,其乘积输出端连接所述除法器的被除数输入端,所述除法器的除数输入端连接所述第三信号输入端,其商输出端连接所述信号输出端。
4.如权利要求2所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述除法器的被除数输入端连接所述第一信号输入端,所述除数输入端连接所述第三信号输入端,其商输出端连接所述乘法器的一个乘数输入端,所述乘法器的另一个乘数输入端连接所述第二信号输入端,所述乘法器的乘积输出端连接所述信号输出端。
5.如权利要求2、3或4所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述除法器采用流水线除法器替代。
6.如权利要求1所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述运算单元由乘加器和倒数表构成,所述乘加器用于实现系数缩放计算中的系数间乘法和加法的计算,所述倒数表内存储索引参数DCSTEPc和量化参数QPX的倒数,并以输入的索引参数DCSTEPc或量化参数QPX为索引,输出对应的倒数值。
7.如权利要求6所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述乘加器的两个乘数输入端分别连接第一信号输入端和第二信号输入端,其加数输入端用于输入参数0x20000,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述乘加器的两个乘数输入端中的一个,所述乘加器的两个乘数输入端中的另一个还与其输出端连接,所述信号输出端连接所述乘加器的输出端。
8.如权利要求6所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述乘加器设置有两个,包括第一乘加器和第二乘加器,其中第一乘加器的两个乘数输入端分别连接第一信号输入端和第二信号输入端,其输出端连接所述第二乘加器的一个乘数输入端,所述倒数表的输入端连接所述第三信号输入端,其输出端连接所述第二乘加器的另一个乘数输入端,所述第二乘加器的加数输入端输入参数0x20000,其输出端连接所述信号输出端。
9.如权利要求8所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述第一乘加器采用乘法器代替。
10.如权利要求1或6所述多模图像编解码芯片中的系数缩放计算模块,其特征在于所述量化参数QPX和索引参数DCSTEPc的取值范围为1至31之间的整数,且包括整数1和31。
全文摘要
本发明公开了一种多模图像编解码芯片中的系数缩放计算模块,包括运算单元、三个信号输入端以及信号输出端,第一信号输入端连接用于WMV9协议的系数缩放计算的系数DCp和量化参数DCSTEPp中的一个,以及用于MPEG4协议的系数缩放计算的系数QFA和量化参数QPA中的一个;第二信号输入端连接系数DCp和量化参数DCSTEPp中的另一个,以及系数QFA和量化参数QPA中的另一个;第三信号输入端连接WMV9协议的系数缩放计算公式中的索引参数DCSTEP
文档编号H04N7/28GK1719902SQ20051008776
公开日2006年1月11日 申请日期2005年8月8日 优先权日2005年8月8日
发明者王振国, 刘健, 周天夷, 赵晓海 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1