CN101056415B - 一种乘法操作转换为加法和移位操作的方法及装置 - Google Patents

一种乘法操作转换为加法和移位操作的方法及装置 Download PDF

Info

Publication number
CN101056415B
CN101056415B CN2007100154974A CN200710015497A CN101056415B CN 101056415 B CN101056415 B CN 101056415B CN 2007100154974 A CN2007100154974 A CN 2007100154974A CN 200710015497 A CN200710015497 A CN 200710015497A CN 101056415 B CN101056415 B CN 101056415B
Authority
CN
China
Prior art keywords
coefficient
data
addition
conversion coefficient
error range
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007100154974A
Other languages
English (en)
Other versions
CN101056415A (zh
Inventor
杨阳
彭玉华
刘兆广
田树民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Group Co Ltd
Original Assignee
Hisense Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hisense Group Co Ltd filed Critical Hisense Group Co Ltd
Priority to CN2007100154974A priority Critical patent/CN101056415B/zh
Publication of CN101056415A publication Critical patent/CN101056415A/zh
Application granted granted Critical
Publication of CN101056415B publication Critical patent/CN101056415B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Color Television Systems (AREA)

Abstract

本发明公开了一种乘法操作转换为加法和移位操作的方法,包括以下步骤:a、根据源数据精度和目标数据精度确定误差范围;b、根据所述误差范围及源数据取值范围确定转换系数范围;c、在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;d、将所述找到的系数转换为加法和移位操作的形式。采用本发明能够实现从乘法到加法和移位操作的准确、高效的转换。本发明还公开了一种乘法操作转换为加法和移位操作的装置。

Description

一种乘法操作转换为加法和移位操作的方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及一种乘法操作转换为加法和移位操作的方法及装置。
背景技术
在数据处理领域中,经常要面临着芯片的选择,特别是在数字信号处理领域,对于选择定点处理芯片还是浮点处理芯片一直都是难以决断的,其原因在于:浮点处理方式编程灵活,不需要进行定点定标运算,但是其功耗较高,成本较贵;而对于定点处理方式来说,其功耗低,成本也低,但是需要进行定点定标运算,特别是对于定点处理芯片进行浮点乘法运算时,通常可以采用两种方法:一是用汇编指令进行定点定标操作,二是利用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)内的即为寻找到的转换系数。在本实施例中,经过计算得到四个转换系数:1.375、1.390625、1.40625、1.421875。
系数选择单元14,当所述系数计算单元13确定了多于一个系数时,用于选择其二进制表示中含有1的个数最少的一个,并将其输入至所述加法移位生成单元。在上述实施例中,在所述系数计算单元13中得到的四个转换系数中寻找其二进制表示含有1的个数最少的一个,经过寻找确定为1.375。在这里,可以简单的通过一个循环判断计数操作来寻找四个数中含1的个数最少的一个,当然也可以采用其他方法,本发明不限于此。
加法移位生成单元15,用于根据所述转换系数得到其加法和移位操作的形式;在上述实施例中,根据所述找到的含1的个数最少的数1.375,将其转换位加法和移位操作的形式;即,1.375写成1.375=1+1/4+1/8=1+1>>2+1>>3,同理,也可以得到其他两个公式对应的乘法转加法和移位操作,在此直接给出不再赘述:
G分量转换公式中(U-128)的系数(不包括符号)对应的加法和移位操作为:1>>2+1>>4+1>>5,(V-128)的系数(不包括符号)对应的加法和移位操作为:1>>1+1>>3+1>>4+1>>5,B分量转换公式中(U-128)的系数对应的加法和移位操作为:1>>1+1>>2,到此乘法操作便可以完全转换为加法和移位操作(以>>表示右移操作,>>之后表示移位的位数,>>之前表示移位目标)。
输出单元16,用于输出所述加法和移位操作。在上述实施例中,即输出1+1>>2+1>>3,用以替换1.402或做进一步计算等。
参考图2,图示了基于图1所示一种加法和移位操作的产生方法的一个实施例的流程图;本实施例中,以接收4:4:4的YUV视频数据,并将其转换为RGB565视频数据的转换过程为外部大环境进行描述,如图所示,包括以下步骤:
步骤S200,接收YUV视频数据相关信息;在本实施例中,所述相关信息是指YUV视频数据的数据精度等信息。
步骤S201,根据YUV视频数据与RGB视频数据的数据精度确定误差范围;在本步骤中,由于所述的每个分量都要求8比特精度的YUV视频数据在按照现有的转换公式(1)转换为相应的RGB视频数据时,得到的是RGB888格式的视频数据,也就是说得到的RGB图像数据的每个分量仍然是8比特的精度,而目标RGB视频数据是RGB565格式,其R、G、B分量的精度分别为5、6、5比特的精度,这样一来,在RGB888格式和RGB565格式之间就存在精度差,称为截断误差,即,RGB888格式数据的R分量精度为8比特,与RGB565格式数据的精度为5比特R分量之间存在3比特的截断误差,同理,在G、B分量上分别存在2比特和3比特的截断误差;由于所述的R、G、B分量的截断误差分别为3、2、3比特,因此其R、G、B分量的量化步长分别为8、4、8,即误差范围;
步骤S202,根据所述误差范围和原始YUV视频数据的取值范围确定转换系数范围;我们以寻找R=Y+1.402×(V-128)的近似的加法和移位操作为例来说明(即寻找YUV视频数据转化为RGB视频数据时R分量转换时所采用的加法和移位操作)。首先,设近似公式为R=Y+(1.402+X)×(V-128),其中V的取值范围为0~255,因此V-128的变化范围则是-128~127,我们取最大的变化值-128和127,即得到:
            R=Y+(1.402+X)×127                   (2)
            R=Y-(1.402+X)×128                   (3)
由于步骤S201中得到R分量的量化步长为8,因此偏移量为(-4,4),对于上面(2)、(3)两式,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),这个范围即为转换系数范围;
步骤S203,在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;所述寻找过程,可以参考如下流程:首先,判断出转换系数范围(1.37075,1.43325)位于某一区间之间;
然后,在所述区间内按7位二进制数可以表示的最大精度1/27,即0.0078125,为步长在所述某一区间内进行寻找。
其中,所述的某一区间可以是人工判断,也可以计算出,计算过程为:
首先,将(1.37075,1.43325)向两端扩展为(1.37075-1/26,1.43325+1/26),
即(1.355125,1.448875);因为,7位二进制数的最大精度为1/27,所以将所述转换系数范围向两端扩展1/26即可。这里对某一区间的范围的确定并不限于本方法,也可以采用图1实施例描述中所采用的人工判断的方法,即人工划定一个大的范围,例如1.25~1.5等,任何其他合适的方法也都在本发明保护范围内。因此,在(1.355125,1.448875)范围内以0.0078125为步长搜索,得到4个转换系数:1.375,1.390625,1.40625,1.421875;
在这里以最大精度为步长进行寻找的原因在于,由于-128<V-128<127,因此除去最高位符号位其在定点数字处理器中以7位二进制数表示,所以移位操作时不能超出6位的范围(因为对于一个有效位数为7位的二进制数字,无论其为多少,进行7位右移之后都将为0,这样将无法对数字进行区分,所以移位时不能超出6位);因此就是在(1.37075,1.43325)范围内寻找7位二进制数的表示,就相当于在(1.37075,1.43325)范围内以0.0078125为步长搜索。
步骤S204,在所述寻找的系数内找到其二进制形式中含1个数最少的一个;在这里寻找二进制表示中含1个数最少的系数是为了使得加法和移位的组合最少,也就是为了使得表示长度最短,因为二进制数的每一个位置上的1都对应着一次移位操作和一次加法操作。在本步骤中,即在4个转换系数:1.375,1.390625,1.40625,1.421875内找二进制数含1的个数最少的值,其实现过程可以用一个循环判断来完成,首先将所述4个准转换系数的二进制表示中1的个数存储下来,然后在这4个转换系数中寻找含1个数最少的一个;经过搜索,含1个数最少的准转换系数为1.375,即1.375为转换系数。
步骤S205,将所述含1的个数最少的系数转换为加法和移位操作的形式;即,将1.375转换为加法和移位操作的形式,经过转换,结果为(以>>表示右移操作,>>之后表示移位的位数,>>之前表示移位目标):1.375=1+1>>2+1>>3。
步骤S206,将所述加法和移位操作的形式输出;即,将1+1>>2+1>>3输出,以代替原公式中的系数1.402;这里既可以输出至存储器存储待进行YUV视频数据转RGB视频数据时使用,也可以直接输出供正在进行的YUV视频数据转RGB视频数据使用;
步骤S207,结束流程。
以上仅阐述实现分量R的转换的加法和移位操作的产生过程,对于G、B分量也可以同理得出,在此不再进行一一阐述。
值得注意的是,本具体实施方式中只是举出4:4:4YUV视频数据的情形,对于4:2:2,4:1:1等的转换,需先将其转成4:4:4YUV数据,再按照本发明进行计算。同时,在本实施方式也仅举出了目标RGB数据为RGB565的情形,即由源数据转换为目标数据存在精度损失的情形,对于RGB888等转换前后精度不变的情形也同样可以采用本发明,由于过程及所涉及装置均类同,对于本领域技术人员来说可以简单推理得到,因此,在这里也不进行一一阐述。另外,本具体实时方式中只是阐述了将本发明应用于定点处理器中的情形,但仍然可以应用于某些浮点处理器,由于原理和过程类似,在这里也不详述。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种用于在定点处理芯片上进行浮点乘法运算时将乘法操作转换为加法和移位操作的方法,其特征在于,包括以下步骤:
a、根据源数据精度和目标数据精度确定误差范围;
b、根据所述误差范围及源数据取值范围确定转换系数范围;
c、在所述转换系数范围内以源数据的最大精度为步长寻找相应系数;
d、将所述找到的系数转换为加法和移位操作的形式。
2.如权利要求1所述的方法,其特征在于,步骤c与步骤d之间还包括:
c1、若步骤c中得到多于一个系数,则选择其二进制表示中含1的个数最少的一个,并执行步骤d将该含1的个数最少的系数转换为加法和移位操作的形式,否则,直接执行步骤d。
3.如权利要求1或2所述的方法,其特征在于,所述转换系数范围通过以下方式得到:
首先,假设转换公式的转换系数;
其次,根据所述转换公式及源数据的取值范围得到以目标数据为函数以所述假设转换系数为变量的两个方程;
最后,根据所述误差范围及所述两个方程得到所述转换系数范围。
4.如权利要求1或2所述的方法,其特征在于,所述误差范围为由源数据比特位数和目标数据比特位数的比特位数差得到的量化步长。
5.如权利要求1或2所述的方法,其特征在于,所述源数据是YUV视频数据,所述目标数据是RGB视频数据。
6.如权利要求5所述的方法,其特征在于,所述转换系数范围通过以下方式得到:
首先,假设YUV数据转RGB数据的转换公式的转换系数;
其次,根据所述转换公式及YUV数据的取值范围得到以RGB数据为函数以所述假设转换系数为变量的两个方程;
最后,根据所述误差范围及所述两个方程得到所述转换系数范围。
7.如权利要求5所述的方法,其特征在于,所述误差范围为由YUV数据比特位数和RGB数据比特位数的比特位数差得到的量化步长。
8.如权利要求6所述的方法,其特征在于,所述误差范围为由YUV数据比特位数和RGB数据比特位数的比特位数差得到的量化步长。
9.一种用于在定点处理芯片上进行浮点乘法运算时将乘法操作转换为加法和移位操作的装置,包括:
接收单元,用于接收源数据相关信息;
误差计算单元,用于根据源数据精度及目标数据精度得到误差范围;
系数范围计算单元,用于根据采用的公式和所述误差范围及源数据边界确定所述公式的转换系数范围;
系数计算单元,用于在所述转换系数范围内以源数据的最大精度为步长寻找转换系数;
加法移位生成单元,用于根据所述转换系数得到其加法和移位操作的形式;
输出单元,用于输出所述加法和移位操作。
10.如权利要求9所述的装置,其特征在于,还包括:
系数选择单元,当所述系数计算单元确定了多于一个系数时,用于选择其二进制表示中含有1的个数最少的一个,并将其输入至所述加法移位生成单元。
CN2007100154974A 2007-05-10 2007-05-10 一种乘法操作转换为加法和移位操作的方法及装置 Expired - Fee Related CN101056415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100154974A CN101056415B (zh) 2007-05-10 2007-05-10 一种乘法操作转换为加法和移位操作的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100154974A CN101056415B (zh) 2007-05-10 2007-05-10 一种乘法操作转换为加法和移位操作的方法及装置

Publications (2)

Publication Number Publication Date
CN101056415A CN101056415A (zh) 2007-10-17
CN101056415B true CN101056415B (zh) 2010-06-30

Family

ID=38795981

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100154974A Expired - Fee Related CN101056415B (zh) 2007-05-10 2007-05-10 一种乘法操作转换为加法和移位操作的方法及装置

Country Status (1)

Country Link
CN (1) CN101056415B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102824B (zh) * 2014-07-01 2017-05-24 深圳市岩尚科技有限公司 一种对心电数据精度转换的方法
CN104778026A (zh) * 2015-04-28 2015-07-15 浪潮电子信息产业股份有限公司 一种带simd的高速数据格式转换部件及转换方法
CN105354006B (zh) 2015-11-27 2017-11-21 中国科学院计算技术研究所 一种非线性函数的快速运算装置及其方法
CN108363559B (zh) * 2018-02-13 2022-09-27 北京旷视科技有限公司 神经网络的乘法处理方法、设备和计算机可读介质
CN112416260B (zh) * 2020-12-03 2022-11-15 海光信息技术股份有限公司 数据处理方法和数据处理装置

Also Published As

Publication number Publication date
CN101056415A (zh) 2007-10-17

Similar Documents

Publication Publication Date Title
CN101056415B (zh) 一种乘法操作转换为加法和移位操作的方法及装置
KR920010183B1 (ko) Rom테이블을 갖춘 역수연산회로
KR101790463B1 (ko) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
JPH04127364A (ja) 積和算器
ES2874511T3 (es) Búsqueda de forma de cuantificador de vector en pirámide
KR100398859B1 (ko) 데이터 연산 처리 장치
CN108228136B (zh) 基于优化查找表法的对数函数计算的方法及装置
US4115867A (en) Special-purpose digital computer for computing statistical characteristics of random processes
CN113377332A (zh) 一种基于线性分段的softmax硬件实现方法
CN101639529A (zh) 一种兼容gps和北斗2导航系统的卫星信号捕获方法
JP4251484B2 (ja) ヒストグラム計算システム、電子試験装置及びヒストグラム計算方法
CN109684629A (zh) 文本间相似度计算方法、装置、存储介质及电子设备
US20230214638A1 (en) Apparatus for enabling the conversion and utilization of various formats of neural network models and method thereof
CN114281304A (zh) 随机计算方法、电路、芯片及设备
AU637927B2 (en) A method of coding a sampled speech signal vector
Mallik et al. Smart bit-width allocation for low power optimization in a systemc based ASIC design environment
US20240185046A1 (en) Intention recognition method and apparatus, readable medium, and electronic device
WO2023004799A1 (zh) 电子设备及神经网络量化方法
JP3195609B2 (ja) 逆数計算装置及び逆数計算装置を備えたコンピュータ
FI62603B (fi) Specialdatamaskin foer behandling av statistiska uppgifter
SU705457A1 (ru) Веро тностный коррелометр
JPH05274116A (ja) 浮動小数点演算装置
SU881741A1 (ru) Цифровой логарифмический преобразователь
JP5849822B2 (ja) Av信号処理低減装置、av信号処理低減方法、およびav信号処理低減プログラム
US8553813B2 (en) Method for computing correlation of PN sequence and circuit thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100630

Termination date: 20190510

CF01 Termination of patent right due to non-payment of annual fee