一种乘法操作转换为加法和移位操作的方法及装置制造方法及图纸

技术编号:3590845 阅读:182 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种乘法操作转换为加法和移位操作的方法,包括以下步骤:a.根据源数据精度和目标数据精度确定误差范围;b.根据所述误差范围及源数据取值范围确定转换系数范围;c.在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;d.将所述找到的系数转换为加法和移位操作的形式。采用本发明专利技术能够实现从乘法到加法和移位操作的准确、高效的转换。本发明专利技术还公开了一种乘法操作转换为加法和移位操作的装置。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种乘法操作转换为加法和移位操作的方法及装置
技术介绍
在数据处理领域中,经常要面临着芯片的选择,特别是在数字信号处理领域,对于选择定点处理芯片还是浮点处理芯片一直都是难以决断的,其原因在于浮点处理方式编程灵活,不需要进行定点定标运算,但是其功耗较高,成本较贵;而对于定点处理方式来说,其功耗低,成本也低,但是需要进行定点定标运算,特别是对于定点处理芯片进行浮点乘法运算时,通常可以采用两种方法一是用汇编指令进行定点定标操作,二是利用C编译器里自动完成浮点到定点的转换。前者效率高,但是变成比较复杂,需要熟悉汇编语言,通用性差,后者虽然编程方便,通用性好,但是C语言优化效率不高。因此,在定点处理芯片上进行浮点乘法运算时,应尽量采用加法和移位操作。传统的处理方法中,在将乘法运算转换为加法和移位操作时通常是技术人员按照二进制分解的方式并依据个人经验从左到右选择多少位。例如,X*1.3用传统的方法就可以表示为二进制的表示X*1.3=X*(1+1/4+1/32+1/64+1/512+1/1024+1/8192……),技术人员便依据自己的经验从左至右选择若干位(选择括号中的若干位),选择的位数越多结果误差越小,但是相应的计算的复杂度也要加大,一般技术人员根据要求的精度并依据自己的经验选择若干位。这样便存在技术人员依据经验选择的位数不足以达到要求的精度的情况,这种情况发生时便需要反复的试验性选择位数以达到精度要求,显然这种方法效率不高,准确度低,需要反复试验获得。另外,对于某些不包含乘法器的浮点处理芯片也存在这种问题。
技术实现思路
专利技术要解决的技术问题在于提供一种简单、高效的乘法操作转换为加法和移位操作的方法和装置。为了解决上述问题,本专利技术提出了一种乘法操作转换为加法和移位操作的方法,包括以下步骤a、根据源数据精度和目标数据精度确定误差范围;b、根据所述误差范围及源数据取值范围确定转换系数范围;c、在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;d、将所述找到的系数转换为加法和移位操作的形式。其中,步骤c与步骤d之间还包括c1、若步骤c中得到多于一个系数,则选择其二进制表示中含1的个数最少的一个,并执行步骤d将该含1的个数最少的系数转换为加法和移位操作的形式,否则,直接执行步骤d。其中,所述转换系数范围通过以下方式得到首先,假设转换公式的转换系数;其次,根据所述转换公式及源数据的取值范围得到以目标数据为函数以所述假设转换系数为变量的两个方程;最后,根据所述误差范围及所述两个方程得到所述转换系数范围。另外,所述误差范围为由源数据比特位数和目标数据比特位数的比特位数差得到的量化步长。优选的,所述源数据是YUV视频数据,所述目标数据是RGB视频数据。其中,所述转换系数范围通过以下方式得到首先,假设YUV数据转RGB数据的转换公式的转换系数; 其次,根据所述转换公式及YUV数据的取值范围得到以RGB数据为函数以所述假设转换系数为变量的两个方程;最后,根据所述误差范围及所述两个方程得到所述转换系数范围。其中,所述误差范围为由YUV数据比特位数和RGB数据比特位数的比特位数差得到的量化步长。相应地,本专利技术还提供一种乘法操作转换为加法和移位操作的装置,包括接收单元,用于接收源数据相关信息;误差计算单元,用于根据源数据精度及目标数据精度得到误差范围;系数范围计算单元,用于根据采用的公式和所述误差范围及源数据边界确定所述公式的转换系数范围;系数计算单元,用于在所述转换系数范围内以源数据的最大精度为步长寻找转换系数;加法移位生成单元,用于根据所述转换系数得到其加法和移位操作的形式;输出单元,用于输出所述加法和移位操作。其中,还包括系数选择单元,当所述系数计算单元确定了多于一个系数时,用于选择其二进制表示中含有1的个数最少的一个,并将其输入至所述加法移位生成单元。采用本专利技术能够实现从乘法到加法和移位操作的准确、高效的转换。附图说明图1是本专利技术一种加法和移位操作生成装置的一个实施例的功能结构框图;图2是基于图1中装置的加法和移位操作的产生方法的一个实施例的流程图。具体实施例方式参考图1,图示了加法和移位操作生成装置的一个实施例的功能结构框图。如图所示,加法和移位操作生成装置1包括接收单元10,用于接收源数据相关信息;在本专利技术的一个实施例中,用于接收YUV视频数据的格式信息等,包括其数据精度等;误差计算单元11,用于根据源数据精度及目标数据精度得到误差范围;在上述实施例中,源数据是YUV视频数据,目标数据是RGB视频数据,在本单元11中,通过比较YUV视频数据的位数和RGB视频数据的位数得到其位数差,也即精度差,最后通过该精度差得到误差范围。例如,YUV数据给出的24位,即其三个分量Y、U、V的数据精度均为8位,RGB数据为16位,即其R分量的数据精度为5位,G分量的数据精度为6位,B分量的数据精度为5位;这样,由YUV数据转换为RGB数据中的R分量时便产生了3位的精度差,G分量产生了2位的精度差,B分量产生了3位的精度差;因此,在转换为R、G、B三个分量时的量化步长分别为8、4、8,也即为误差范围。系数范围计算单元12,用于根据采用的公式和所述误差范围及源数据边界确定所述公式的转换系数范围;在上述YUV视频数据转换为RGB视频数据的实施例中,我们选择采用国际标准转换公式R=Y+1.402×(V-128)G=Y-0.344×(U-128)-0.714×(V-128)B=Y+1.772×(U-128)---(1)]]>以转换R分量为例首先,设近似公式为R=Y+(1.402+X)×(V-128),其中V分量的取值范围为0~255,因此V-128变化范围是-128~127,分别取最大的变化值-128与127,因此得到两个式子R=Y+(1.402+X)×127;R=Y-(1.402+X)×128;经过整理后,可以写成R=Y+127×X+178.054;R=Y-128×X-178.054;在误差计算单元11中,我们得到R分量的误差范围为8,那么偏移量为(-4,4),对于上面两个式子来说X是唯一的变量,于是可以得到-4<127×X<4,-4<128×X<4,这样便得出-0.03125<X<0.03125,因此得到(V-128)的转换系数范围为(1.402-0.03125,1.402+0.03125),即(1.37075,1.43325)。同理,亦可以得到G分量和B分量的转换系数范围,在这里不再赘述。系数计算单元13,用于在所述转换系数范围内以源数据的最大精度为步长寻找转换系数;在上述实施例中,由于YUV数据中V分量是8位,V-128变化范围是-128~127,除去最高位符号位外,其有效数字为7位,因此7位二进制数的最大表示精度为1/2^7。由于,R分量的转换系数范围为(1.37075,1.43325),该范围位于1.25(1+1/4)与1.5(1+1/2)之间,因此以1.25为起点以1/2^7为步长进行搜索,在范围(1.37075,1.43325)内的即为寻找到的转换系数。在本实施例中,经过计算得到四个转换系本文档来自技高网...

【技术保护点】
一种乘法操作转换为加法和移位操作的方法,其特征在于,包括以下步骤:a、根据源数据精度和目标数据精度确定误差范围;b、根据所述误差范围及源数据取值范围确定转换系数范围;c、在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;d、将所述找到的系数转换为加法和移位操作的形式。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨阳彭玉华刘兆广田树民
申请(专利权)人:海信集团有限公司
类型:发明
国别省市:95[中国|青岛]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利