分布式运算体系结构的信号处理的制作方法

文档序号:3430806阅读:141来源:国知局
专利名称:分布式运算体系结构的信号处理的制作方法
技术领域
本发明涉及到信号处理。更明确地说,本发明涉及到一种新的设备和方法,这种新的设备和方法实现一种新的用于产生一个向量和一个矩阵的内积的分布式运算体系结构,并在数字照相机和类似图象处理的应用中具有特别有用的应用。
当用户由于具有数字设备如压缩磁盘,计算机,打印机,和蜂窝电话而变得更舒服的时侯,他们更愿意在他们生活的其他领域接受数字式启动技术,比如照相机。的确,在照相机方面,当前的趋势是朝向数字照相机,它可以消除对胶片的需求并在放胶片的地方用数字存储设备代替以保存用户已经拍摄的照片。然而,数字照相机的成本仍停留在大多数人的能力所达不到的水平上,并且为了考虑大多数人能接受而正在作的各种努力是促使成本下降。除了降低成本外,为了增加对数字照相机的需求,照片的图象质量必须比得上典型胶片基底的照片。这个图象质量是通过增加在数字照相机内图象传感器使用的象素(光到电的转换)的数量驱动的。不幸的是,这种在象素数量上的增加进一步抬高了数字照相机的成本,由于增加了处理需求需要去把在图象传感器上捕获的图象转换为一种可接受的格式,此格式可以适合在照相机内使用的数字储存设备的极限。为了允许一个可接受的使用数字照相机拍摄的图象数量并存储在其内,一些形式的图象压缩对减少存储需求是必要的。
当然,用户也正在需求新的性能以趁机利用他们已经拍摄的照片的数字特征。例如,拍摄完一组照片后不是在一台个人计算机上校正彩色均衡,亮度级,对比度,等等,用户希望这些操作在照相机自身上自动地完成以使这些照片在一台彩色打印机上直接复制出来,从而完全地绕开了个人计算机。
因此,为了启动数字相机市场,在增加附加功能的同时必须降低数字照相机的成本。这个新的数字照相机需要在它的内部电子设备有多方面的用途并足以提供附加的功能。另外,电子设备必须要有较小的集成电路面积才可以使成本减少。
以前的为减少图象处理电路大小和成本的一些尝试已经注视在分布式运算方法上。分布式运算(DA)的名字是因为在非传统意义上运算功能是分布在各种各样的电子设备中的,而不是被连结一起(例如加法,乘法)的离散运算块意义上的。在图象处理中,最常遇到的运算类型是乘以一个向量(图象的一部分)和一个矩阵(一种变换功能,如图象压缩或扩展)以构成一个内积。幸运的是,通过DA可最有效地完成这个内积运算。事实上,前面的DA方法已经是成功地减少在一个图象处理集成电路中所使用的晶体管的数量的至少50-80%。然而,如果还要提供更多功能需求的同时继续需要降低成本,则要求一种新的DA方法可以实现在图象处理电路中进一步减少晶体管数量。
一种设备计算一个矩阵和一个向量的内积向量。该矩阵有第1组系数和该向量有第2组系数。至少一个输入寄存器被用于存储第2组系数。许多存储元件被用于存储根据矩阵的第1组系数预先计算的部分和。至少一个寄存器的输入被用作为地址输入到许多存储元件以选择部分和的一个子集。另外,把一个所选择的电路连接到存储元件的地址线上以确定在矩阵的哪一行向量构成结果内积向量的一个元素。从存储元件输出的部分和的子集被加到一个加法器电路中以生成一个总和输出,它表示该矩阵乘以该向量的内积向量的元素。


图1说明了用以实现一次内积的分布式运算方法的一种常规实现方案。
图1A说明了在图1的常规实现方案中使用的存储器结构。
图2说明了使用分布式运算的本发明方法的优选实施例。
图2A说明了在图2的优选实施方案中使用的存储器结构。
图2B说明了在标准单元或相似方法中通过使用离散逻辑电路构成的一个典型的存储元件。
图3说明了在数字照相机中优选实施例的使用。
在描述本发明的优选实施方案之前,有帮助的是去理解在常规分布式运算(DA)方法(见美国专利No.5,226,002)中一个向量乘以一个矩阵所使用的方法。为了说明这个常规DA方法,考虑把一个N=4的元素列向量X与一个4行×4列的系数Cij矩阵,C相乘去形成一个由N个元素组成的结果向量Y,其中N=向量X和Y的输入的数,其中

Y(0)Y(1)Y(2)Y(3)=C00C01C02C03C10C11C12C13C20C21C22C23C30C31C32C33X(0)X(1)X(2)X(3)]]>在数字电路中,数字是以二进制形式表示的。因此,向量X的每一个元素可被写成为比特的行,该比特是X的元素数值的2的二进制表示。本领域技术人员应理确对X的元素数值存在其他二进制表示,并且也符合本发明的精神和范围。本领域的技术人员也应理确X的每个元素可用给定的精确度所需要的比特数目b表示,该精度是作为用户希望实现的应用所期望的,并且完全符合本发明创造的精神和范围。作为例子,假设向量X的每个元素是4(例如b=4)位宽,这些向量元素可以被表示为X(i)=Σj=0b-1X(i)j2j]]>例如,当i=0时然后,X(i)=X(0)323+X(0)222+X(0)121+X(0)020因此,上面向量X与矩阵C的乘法可以写成为Y(0)Y(1)Y(2)Y(3)=C00C01C02C03C10C11C12C13C20C21C22C23C30C31C32C33X(0)323X(0)222X(0)121X(0)020X(1)323X(1)222X(1)221X(1)023X(2)323X(2)222X(2)121X(2)020X(3)323X(3)222X(3)121X(3)020]]>其中X(i)j是X(i)的第j位,位0是最小有效位。因为向量X的元素(X(i)j)是比特,它们只能有1或0的数值。因此,在X中的任意列与矩阵C中一给定行的内积只有16种可能的数值。这16种数值表示该给定行向量的元素(系数)的所有可能的和。在后面的常规DA方法的基本想法是去得到并预先计算这些用于行向量的部分和,并在一个独立的ROM(只读存储器)中对C的每一行存储这些部分和。X的每一列向量在一定时间内被提供给每个独立ROM的地址输入端,并且每个ROM的输出被累加以产生结果Y向量。
图1说明了一个使用常规DA方法计算从Y(0)到Y(3)的常规电路。它是由并行输入串行输出移位寄存器包含的4个输入寄存器10,4个ROM 20,4个累加器30和一个时钟电路40组成。为了开始计算从X(0)到X(3),输入系数被记录在输入寄存器10中。这些输入寄存器10的时钟从最小有效位开始在每周期输出每个输入(基本上是X的列)的1位。这些位合在一起构成通向ROM 20的地址。如图1A所示,每个ROM分享同样的地址输入,但是每个ROM有不同的预先计算好存储在ROM内的部分数据和。ROM 22有矩阵C第0行的预先计算的部分和。ROM1 24有矩阵C第1行的预先计算的部分和,ROM2 26有矩阵C第2行的预先计算的部分和,ROM3 28有矩阵C第3行的预先计算的部分和。在每个时钟周期内,根据输入寄存器10给ROM20一个地址并且用一个新的数据字记录每个ROM的输出。用每8位宽度表示出ROM的这个输出。对于一种特定的应用,本领域技术人员应理解数据总线可以是依赖于所期望部分和分辨率的任意位宽度。来自每个ROM的输出被分别累积在累加器30中,并且矩阵C的每一行的结果,从Y(0)到Y(3),在所有来自时钟电路的时钟周期均已被运行后出现在累加器的输出端。
注意到图1也着重标出DA电路的两个重要参数。第一个参数N,输入寄存器或者X和Y的元素(系数)的数目,确定了在每个ROM中存储单元的数量,存储单元的数目是在2N的量级上,因为对于本领域技术人员已知有各种各样的技术用于减少2N个存储单元的总数(见Write,Stanley A写的“分布式运算在数字信号处理中的应用指导性评论”,IEEE ASSP杂志,1989年,第4-19页)。在图1中,N=4使得每个ROM必须有至多24或16个存储单元去存储矩阵C的一个行向量元素的所有可能的和。第二个参数b,是在每一个输入寄存器10的位的输目。这第二个参数b确定为产生结果向量Y所需要的时钟周期的数目。在图1中,输入寄存器是4位宽,也就是它取4个时钟周期产生向量Y。
然而,使用常规DA方法的向量乘法有一个不利,是在b时钟周期的每一个序列中向量Y的元素在一个时钟周期内是以并联方式产生的。在很多情况下,所期望的是一个时钟一次产生Y的一个元素,以致使它容易被存储或被送到下一级流水线处理。因为在b时钟周期的一个序列期间,在一个时钟周期内常规DA方法生成向量Y的所有元素Y,需要连接到累加器输出(图1未示出)的N个附加寄存器去存储这个结果,如果在常规DA电路继续处理下一组输入的同时以流水线方式每次处理它们中的一个。在一个典型的VLSI(超大规模集成电路)提供使用的标准单元方法中,寄存器的每一位可能需要12个门那样多,所以对N个附加寄存器这个总开销是有相当大的。
为了说明在常规DA方法上本发明改进的方法,考虑早先示出的矩阵C和向量X的内积Y(0)Y(1)Y(2)Y(3)=C00C01C02C03C10C11C12C13C20C21C22C23C30C31C32C33X(0)323X(0)222X(0)121X(0)020X(1)323X(1)222X(1)121X(1)020X(2)323X(2)223X(2)121X(2)020X(3)323X(3)222X(3)121X(3)020]]>常规DA电路对向量Y的每个元素执行内积,对如下所示的每一个元素使用一个ROM
注意上面第2jth个系数的乘法可以通过简单的左移在中间圆括号内j次结果的和数来实现。对于常规电路,这一过程是在累加器30中的每个时钟周期之后完成的。
本发明中新的和改进的DA方法实现像常规DA方法一样的计算,但它是以不同的次序完成它们。在第1个周期中,形成矩阵C的第0行与向量X的每1列的内积并把这些内积加在一起以产生向量Y的元素Y(0)。使用矩阵C的一行同向量X的所有列一起在每一个周期中重复这个模式以产生向量Y的所有元素。该运算如下所示(选择0和选择1是输入到所有ROM的地址)
注意,对新的DA方法,通过把存储的元素输出120连接到加法器电路130可固有地完成2j的来法,这样以致于ROMj的输出是左移j次然后把最小有效位置于0。
另外,可能要考虑用于改变系数的动态方法而不是通过使用静态存储元件ROM而被限定于固定系数。一种方法是增加ROM的大小尺寸而通过使用地址线选择以选择附加的系数集合。另一种方法是利用动态可更新的存储元件,比如随机存取存储器(RAM),闪存,或者EEPROM(电可擦除可编程只读存储器)集成电路或模块。
图2说明了本发明在一个电路中使用这种新方法的优选实施例。它是由N(4)个输入寄存器110组成,它们的输出被连接到一组N个存储元件120的地址输入上。这些存储元件120包括ROM,RAM或其他有效固态存储器比如像寄存器,闪速存储器,EEPROM,可编程只读存储器(PROM)或者它们的组合。存储元件120的输出被连接到由三个较小的2加数输入加法器网络组成的加法器电路130。还有,本领域技术人员应理解存储元件的输出可以是任意位宽,依赖于内积结果的分辨率并符合本发明的精神和范围。在常规电路中,所有ROM 20有同样的与输入寄存器10串行输出连接的地址输入信号。对每个时钟周期,该输入寄存器10串行输出把向量X的一列送到所有ROM 20。在优选实施方案的改进电路中,所有存储器元件120具有唯一的地址输入。每一存储器元件接收向量X的一列作为地址输入,并且输入到存储器元件120的这些地址在向量Y整个计算期间始终保持为常数。到存储元件i的输入是向量X的第i列,即从X(0)到X(3)。另外,所示出的存储体选择电路150被连接到时钟电路140。对每个时钟周期,存储体选择电路生成新的Sel0和Sel1输出,它们被连接到存储元件120的地址线上。这些存储体选择信号,Sel0和Sel1,被用于改变用于将矩阵C的所选列与向量X相乘的部分和。
在如图1所示的常规电路中,每个ROM包含预先对矩阵C的一列计算的和。在如图2A所示优选实施方案的改进电路中,所有存储元件120的内容是完全相同的。每个存储元件包括对矩阵C的所有列预先计算的部分和。这就要求改进电路的存储元件有比常规电路中的ROM更多的存储单元。在第1个计算周期中,每个存储元件地址上面的比特被这样设置使得用来自矩阵C第0列的和(例如Sel0=0,Sel1=0)。因此加法器网络的输出将是Y(0)。在下一个时钟周期内,预先计算的矩阵C第1列的和在存储元件120(例如Sel0=1,Sel1=0)中选择,并且加法器网络产生Y(1)。通过改变Sel0和Sel1以在每个时钟周期内选择不同组预先计算的和来重复这个过程,直到产生向量Y的所有输出。
可把一个附加的地址输入加到存储元件120的每个存储元件上,以使存储单元的数目加倍,并产生一表示矩阵系数选择的存储元件,比如当只需要两个矩阵向量运算时,即完成一离散余弦变换或一逆离散余弦变换运算。一个附加的实施方案有至少一个RAM的存储元件120或其他可装入的或可重写的存储器以致对矩阵系数(如存储在存储设备中的部分和)使用的数值可被动态地修正而不是被静态地固定。
图2B说明当使用标准单元或其他逻辑基础电路时实现存储元件的优选实施例。为了实现这个存储元件,使用地址信号作为输入形成一个真值表160。对每组地址输入所期望的地址输入完成逻辑真值表160。对于一个标准的单元或相似的设备,一个逻辑编译器将真值表160转化为一组逻辑方程式并使用布尔逻辑(Boolean Logic)减少这组方程式以形成最简单的等效逻辑,对此为了实现每个存储元件的输出需要最少量的晶体管。在很多情况下,为了实现这个逻辑基础存储元件所需要的晶体管数量要少于为了实现一个常规ROM元件所需要的晶体管数量。晶体管的这个减少主要是由于消除了常规地址译码器,读出放大器,和常规ROM的输出缓存器电路。带有逻辑门的存储元件具有使用常规标准单元或等效设计程序能被实现的另外优点。这个优点用于减少设计时间,测试开发,和产品成本。
特别是对图2B,3比特输入和3比特输出存储元件,为实现真值表的减少了的逻辑170需要24个晶体管。一个常规ROM存储元件对于存储器核心仅需要24个晶体管加上8个3输入与非门和对于地址译码器需要3个反相器(使用离散逻辑门的48个晶体管)和3个输出缓存器(至少6个晶体管)。这些附加的晶体管没有包括为了完成读出放大器对ROM存储器核心输出的检测所需要的电路。因此,可以大量地减少为实现存储元件所需要的面积。
图3说明了一个数字照相机200(静止,运动,或其他图象捕捉设备比如雷达显示器,图形资料显示器,等等),它使用本发明的优选实施例完成图象的压缩和解压缩。这些图象的压缩和解压缩通常是分别使用离散余弦变换(DCT)和逆离散余弦变换(IDCT)完成,还有其他变换,例如,众所周知的快速付立叶变换和快速付立叶逆变换,在技术上的这些技巧是符合本发明的精神和范围。对DCT和IDCT矩阵C的系数被结合在两个集合中以形成存储在存储元件120中的部分和并被使用如图2和图2A中所示的DCT/IDCT信号140选择。数字照相机200包含一个镜头250,它把电磁能量260聚焦在包含象素阵列的图象传感器210上。图象传感器210把电磁能量260转换成电脉冲,它被连接到本发明的优选实施例,该实施例自身被包含在一个图象处理集成电路(IC)220中。图象传感器210包含多个较小区域270(通常有8×8或16×16个象素)。图象处理IC 220处理每个较小区域270或者用于图象处理应用(滤波,伽马校正,彩色均衡,等等)或者用于使用在存储元件中DCT或IDCT部分和的图象压缩/解压缩。图象处理IC 220被进一步连接到照相机控制器240。照相机控制器240是一个典型的微处理器或是一个专用的状态机。照相机控制器240把图象传感器210上的那些小区域270引到图象处理IC 220处理。照相机控制器240把图象处理IC 220处理结果储存在图象存储设备230中。图象存储设备230可以是一个液晶显示器,闪存卡,软磁盘,或者其他存储器,它们提供一个接口比如像RS-232,SCSI,USB,或者IEEE-1348(防火线)为用户移去处理过的图象。
本发明超过常规DA电路的一个优点是减小了积分电路的面积。虽然在新电路中存储元件120比常规情况需要更多的存储单元,但是新方法比常规情况需要较少的2-加数加法器并且对存储流水线运算的输出不需要任何用于存储的输出寄存器。新方法也不需要在常规DA电路的累加器中使用的寄存器。如果存储元件120被实现作为逻辑基础存储元件,并且因为当实现时逻辑基础存储元件与在常规电路加法器中使用的寄存器相比较有利地只占有相当少的空间,那么新电路的布局实际上小于常规的布局。另外,进一步减小积分电路的面积是可以达到的,因为在新电路中的输入寄存器110需要的门比在常规DA电路中并行输入串行输出移位输入寄存器需要的门要少。在一个典型示例性比较中,使用常规DA电路实现的一个8×8离散余弦变换(DCT)需要9560个门,而使用本发明新的DA方法实现同样8×8DCT功能需要少于7500个门。每个门典型地包含4个晶体管。
进而,新方法的第2个优点在有些情况下可能是有用的。例如,通过控制上面的存储元件的地址比特,输出项的次序可能被非常容易地控制。在图2和图2A中所示出的和在这里所描述的优选实施例,包含通过计数器控制这些比特,但是它们在任何任意序列中很容易被驱动去产生所期望的向量Y结果元件的输出。
权利要求
1.一种用于计算一个矩阵和一个向量的内积向量的设备,该内积向量具有一组元素,该矩阵具有按照一个列集合和一个行集合排列的第1系数集合,该向量具有第2系数集合,设备包括至少一个输入寄存器(110),这个输入寄存器(110)存储第2系数集合,这个输入寄存器(110)有一组输出;许多存储元件(120),这些存储元件(120)存储一组从第1系数集合得到的一组部分和,这些存储元件(120)有一组地址输入和一组数据输出,该组地址输入连接到至少一个输入寄存器(110)的该组输出,该组数据输出表示该组部分和的一个子集,该组部分和的该子集通过该组地址输入选择;一个选择电路(150),该选择电路(150)连接到该多个存储元件(120)的该组地址输入,该选择电路(150)选择矩阵中用于内积向量一个元素的计算的一列,这个内积向量是根据该矩阵的所选列和该向量来计算的;一个加法器电路(130),这个加法器电路有一个和数输出和许多加数输入,这许多加数输入连接到该存储元件(120)的该组数据输出,在那里许多存储元件(120)的每个数据输出被连接到一个加数输入以形成和数输出的一个加数,该和数输出表示内积向量的一个元素;
2.权利要求1的设备,进一步包括一个时钟电路(140),该时钟电路(140)连接到至少一个输入寄存器(110)和存储体选择电路(150),该时钟电路(140)生成一组时钟周期与矩阵的列数相对应,其中该加法器电路(130)表示在该组时钟周期的每个时钟周期内的内积向量的所述一个元素,该元素对应于在该组时钟周期的每一时钟周期内矩阵的所选列乘以该向量;
3.权利要求1的设备,在那里的设备被装配成为一个集成电路。
4.权利要求1的设备,其中该多个存储元件(120)存储多组部分和,这些存储元件(120)进一步包括一个选择器,该选择器连接到该多个存储元件(120)去选择那组部分和以表示许多存储元件(120)的该数据输出;
5.权利要求4的设备,其中的选择器选择一组部分和,它允许该设备完成离散余弦变换;
6.权利要求4的设备,其中该选择器选择一组部分和,它允许该设备完成逆离散余弦变换;
7.一架数字照相机(200),包括权利要求1的设备;
8.一种方法,用于计算一个矩阵和一个向量的内积向量,该矩阵有按照一个列集合和一个行集合排列的第1系数集合,该向量有第2系数集合,包括的步骤根据向量的第2系数集合生成一组寄存器输出;存储一组从在多个存储元件(120)中的第1系数集合得到的预先计算的部分和;选择一个矩阵列乘以向量以形成内积向量的一部分;选择一个由该组存储在许多存储元件(120)中的基于寄存器输出(110)而预先计算的部分和得到的预先计算的部分和的子集;把在一个加法电路(130)中预先计算的部分和的该子集加起来以生成内积的一部分;和重复选择一个矩阵列的步骤,选择一个预先计算的部分和的子集,并加上该子集或预先计算的部分和用于矩阵的每一列。
9.权利要求8的方法,其中所说的选择预先计算的部分和的子集的该步骤包括从多组预先计算的部分和中选择的步骤。
10.一架使用权利要求8的方法的数字照相机。
全文摘要
一种设备计算一个矩阵和一个向量的内积向量。该矩阵有第1系数集合和该向量有第2系数集合。至少一个输入寄存器(110)用于储存第2系数集合。许多存储元件(120)用于存储部分和,它是根据矩阵的第1系数集合预先计算的。至少一个输入寄存器(110)的输出被用作为地址输入到许多存储元件以选择部分和的一个子集。另外,一个选择电路(150)被连接到存储元件的地址线上以确定在矩阵中的哪一列向量形成对于那一列的结果内积向量的一个元素。从存储元件(120)输出的部分和的子集被加在一个加法电路(130)中以产生一个和数输出,它表示矩阵乘以向量的内积向量的元素。该设备有减小集成电路面积的优点和在任意所期望的次序上生成内积向量的元素。
文档编号G06F17/16GK1253340SQ99118180
公开日2000年5月17日 申请日期1999年8月30日 优先权日1998年10月30日
发明者D·波普林, J·S·吉布森 申请人:惠普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1