信号处理设备和方法以及信号处理程序及其存储介质 【技术领域】
本发明涉及信号处理设备、在信号处理设备中使用的程序、在其上存储有在信号处理设备中使用的程序的存储介质、以及信号处理方法,用于通过例如滤波或电平调整的数字转换将例如图像信息或音频信息的连续信号转换成其它信息。
背景技术
在传统的设计用于此目的的信号处理设备中,当作为对给定的输入数据进行运算的结果所获得的数据具有比输入数据长的位长度时,有必要调整作为结果的数据使其具有与输入数据相同的位长度。
图6图示说明了用于上述目的地过程的示例。在图6中,Pn是已经转换成数字形式的输入数据,Qn是依据其来控制Pn的数据。通常,Qn小于1。Pn与Qn输入到乘法器1,输出Xn(=Pn×Qn)。通常,Xn的位长度等于输入数据Pn的位长度与Qn的位长度的总和。
为了避免产生关于输出数据Xn与输入数据Pn之间的位长度不同的问题,有必要转换输出数据Xn,使其具有与输入数据Pn的位长度相同的位长度。
为此,将Xn输入到阈值器(thresholder)2以缩短位长度。结果,获得具有经过适当调整的位长度的输出数据Yn。注意,输出数据Yn的位长度不必与输入数据Pn的位长度相同。
上述阈值处理可以通过(1)无条件向下舍入,(2)无条件向上舍入,(3)舍入(根据给定的值向上或向下舍入)来执行。
例如,当给定X作为一个输入值时,如果对X进行运算Y=0.02X+1,并且将结果值Y向下舍入或舍入为整数,则如图7所示得到输出值(图7未示出通过向上舍入得到的输出值)。
在所述舍入的情况下,对于小于25的输入值,通过舍入Y得到的整数值为1,但是当输入值X变为25时,整数值跳变到2。如从图7可以看到的,通过对计算出的Y进行舍入或向下舍入得到的整数值以阶梯方式(以不连续方式)改变。
在上述传统的技术中,无论是使用(1)向下舍入,(2)向上舍入,还是(3)舍入中的哪一种技术,最后的输出值都包含或多或少的误差。在舍入的情况下,如果在一个较长期间内对误差求平均值,则平均的误差变为0。相反,当使用向下舍入时,每个输出值包括平均为0.5的误差。即使是在所述舍入的情况,如果输出值没有被平均,则对于接近每个不连续的转变点的值会出现很大的误差。在输出值X如在上述的例子所述的线性地进行变化的情形中,随着输入值X的变化,误差交替地增大和减小。然而,当输入值X在接近一转变点的小范围内变化时,或者当输入值X以低比率变化时,Y的舍入值包含很大的误差,并在一个较长期间内保持不变。
此外,当输入数据与输出数据之间在位长度上存在差异时,输出数据的累积值相对输入数据的累积值会有很大的累积误差。当大量累积误差引起问题时,使用很多的位来进行信号处理,以便使经由信号处理出现的误差减到最少,并且使累积误差不会引起输出数据在某一特定方向上偏移。
误差是否引起问题取决于输出数据的位长度以及使用输出数据的目的。一般而言,确定在信号处理中使用的位长度以使误差落在可允许的范围内。
也就是说,可以通过增加在信号处理中使用的位长度或通过增加存储器容量来使误差减小至一个足够小的范围。
然而,在某些情况中,不允许增加位长度来减小误差(即在某些应用中,要求使用有限数量的位来进行信号处理)。例如,在某些应用中,只允许开关处理。在一些其它应用中,虽然连续处理也是允许的,但更希望开关处理以获得高能量效率。
在例如数字音频数据的电平调整或数字图像数据的对比度调整的某些应用中,如果作为电平调整或对比度调整的结果减小了动态范围,那么动态范围的减小将使得可以用来在减小的动态范围内表示信号的位数变得更少。这意味着相对于信号的相对误差随着该信号电平的减小而增大。
在热敏喷墨式打印机中,每次喷出固定量的墨滴并且每次喷出的墨滴量是不能改变的。也就是说,当在记录介质上形成一副墨水图像时,通过在其中喷出固定量的墨滴或不喷出墨水的双标准(two-level)控制来执行在每个点的喷墨。为了使用双标准喷墨在每个点获得半色调表示,调整每单位面积的喷墨点的密度。为此,广泛应用误差扩散或抖动。然而,为了获得足够好的半色调表示,需要复杂的计算,因而需要复杂的电路以及较长的计算时间。
【发明内容】
本发明的目的是提供一种进行信号处理并且即使通过该处理减小了输入的数字信号的位长度也不会引起平滑度和频率特性的明显降低的技术。一方面,为了达到上述目的,本发明提供一种信号处理设备,用于接收连续相关并顺序输入的数字信号,对每一个顺序输入的数字信号进行预定的运算,并输出运算的结果,该信号处理设备包括:运算装置,用于对输入的数字信号进行预定的运算;高位部分提取装置,用于通过对由运算装置进行运算所得的结果进行舍入来提取需要的高位部分;差值计算装置,用于计算由运算装置进行运算所得的结果与由高位部分提取装置所提取的高位部分之间的差值;反馈装置,用于将由差值计算装置所计算的差值或通过对由差值计算装置计算的差值进行预定的运算所获得的值加入到下一个输入的数字信号中。
在根据本发明的信号处理设备中,通过差值计算装置计算经舍入处理产生的误差,并通过反馈装置将该误差或对该误差执行预定运算所得到的值加入到下一个输入数字信号中。
由于每一个误差都以这样的方式进行反馈,即将对输入数字信号进行运算产生的误差被加入到下一个输入数字信号中,将对下一个输入数字信号进行运算产生的误差被加入到再下一个输入数字信号中,依此类推,防止了误差的累积。
【附图说明】
图1示出了依据本发明第一实施例的信号处理设备的方框图。
图2以图表的形式示出了运算结果。
图3示出了类似于如图2所示的运算的运算(运算A和运算B)结果,这些运算是同步执行的以致它们之间存在相位差。
图4示出了通过使用依据本发明的处理来控制每单位面积的点的密度所形成的图像的示例。
图5示出了依据本发明第二实施例的信号处理设备的方框图。
图6示出了依据传统技术的数字处理方法。
图7示出了对于舍弃输入值的小数部分的情况以及对于将输入值舍入到一个最接近的整数的情况,输入值与输出值之间的关系。
【具体实施方式】
以下结合附图参照具体实施例更加详细地描述本发明。
第一实施例
图1是显示依据本发明第一实施例的信号处理设备的方框图。虽然在本发明的实施例中,假设图1中所示的信号处理设备10是通过硬件实现的(例如以信号处理电路的形式),但该信号处理设备10也可以通过软件来实现。用相同的时钟信号同步操作诸如图1中所示的寄存器11的所有寄存器。
在本实施例中,举个例子,每个输入数据X经历依据下述等式的运算(通过依照本发明的计算装置来执行):
Y=0.02X+1.
通过将作为上述运算的结果而得到值舍入成整数(通过依照本发明的高位部分提取装置)来提取该值的高位部分,并且将剩余的小数部分作为误差来理差。
在图1中,将一个N位数字信号输入到输入寄存器11中。将输入到输入寄存器11的该数字信号传送到输入加法器12。在前一操作中产生的误差也输入到输入加法器12中。通过输入加法器12将输入数字信号与输入误差相加。
将相加的结果输出到高位位寄存器13与低位位寄存器14中。
如图1所示,如果将输入的N位数字信号Xn的K位输出到高位位寄存器13,那么输出到低位位寄存器14的位数是(N-K)位。
其后,确定从低位位寄存器14输出的值是否大于或等于0.5。如果从低位位寄存器14输出的值大于或等于0.5,那么通过向高位位加法器15加1将所述值向上舍入为高位位值。结果,向从高位位寄存器13输出的值加1。
当把1输入到高位位加法器15时,(通过依据本发明的差值计算装置)将向上舍入所产生的误差输入到低位位加法器16中。例如,如果从低位位寄存器14输出的值是0.7,那么确定从低位位寄存器14输出的值大于0.5,并将1输入到高位位加法器15中。在此特定情况下,从向上舍入产生的误差是-0.3,并将-0.3输入到低位位加法器16中。
当进行向上舍入时,如果从低位位寄存器14输出的值是P,那么计算(1-P)×(-1),并将结果值输入到低位位加法器16中。
另一方面,当确定从低位位寄存器14输出的值小于0.5时,不把1输入到高位位加法器15中,而是(通过依据本发明的差值计算装置)将从低位位寄存器14输出的值(小数部分)直接输入到低位位加法器16中。
从而,经过上述处理,对所提取的整数部分进行舍入。
从高位位加法器15输出的K位值被发送到输出寄存器17,并输出作为数据Yn。
另一方面,将来自低位位加法器16的输出值输入到小数处理寄存器18,该小数处理寄存器18依次将接收的小数值转换成具有预定位数的值(预定的小数位数)。将所得到的结果值输入到输入加法器12,从而(通过依据本发明的反馈装置)反馈误差。
下面更加详细地描述上述过程。
在此,假定以连续实数序列{X1,X2,X3,......}的形式来给定输入值。
每一个实数X1,X2,......都由整数部分A与小数部分B组成。即每一个实数可以表示为
Xn=An+Bn
使Yn成为通过将Xn舍入为整数而得到的输出值。例如,当给定X1为X1=A1+B1时,那么通过下面的式子来给定Y1:
Y1=[X1]]]>
其中[Xn]表示将Xn舍入为一个特定数字的操作(在本实施例中是将小数部分舍入成整数)。
如果Y1=A1(即不发生舍入时),那么
Y2=[X2(=A2+B2)+B1]]]>
另一方面,当Y1=A1+1时(即当发生向上舍入时),
Y2=[X2(=A2+B2)+(B1-1)]]]>
以上述方式逐个确定所有的Yn。
在本实施例中,当输入下一个值时处理(加入)作为舍入的结果而产生的误差。例如,如果在Y1的计算中出现向上舍入,则通过Y1=A1+1给定Y1。
在此,尽管Y1大于实际输入值X1,但是当确定下一个值Y2时要减去误差。因此,在Y1+Y2中完全消除了这一误差。
从而,当逐个确定了Y1,Y2,...,Yn时,通过SUM(Yn)=(A1+1*)+(A2+1*)+(A3+1*)+...+(An+1*)+(B1-1*)+(B2-1*)+(B3-1*)+...+(Bn-1*)
=X1+X2+X3+...+Xn给定(Y1+Y2+...+Yn)的总和。其中只有当作为舍入的结果出现了进位时,1*取1。
在上述等式中,(A1+1*)到(An+1*)为整数部分,(B1-1*)到(Bn-1*)为小数部分。
在上述等式中,如果1*取1(即如果出现进位时),例如在A1项中,那么在B1项中,1*同样取1。因而,当Y1,Y2,...Yn相加时,从舍入产生的误差都被消除(即没有累积误差)。
因此,Yn(输出值)的总和与Xn(输入值)的总和相等。
因此,当要处理的数据是连续的时,理论上,如果使用足够多的位数来执行处理,不会产生误差。
图2以图表的形式示出了当以上述方式计算Y=0.02X+1时获得的结果。在图2中,为了比较的目的,也示出了依据传统的舍入方案进行计算所获得的结果。
如图2所示,在简单的舍入方案中,输出不改变,除非输入值的小数部分达到了一个阈值。相反的,在依据本实施例的方案中,作为舍入的结果而产生的每一个小数值都加入到下一个输入值中,因此输出值频繁的改变。改变的频率与输入值和输出值之间的差成比例,所述差即误差的绝对值。可以通过使用滤波器等取平均值来平滑在两个值之间来回改变的输出值。
虽然在每次计算中作为舍入结果而产生的误差可能是在传统舍入方案中出现的误差的两倍,但是由于当输入值在小范围内改变时输出值发生改变,因此从多个输入X得到的移动平均值具有较小的误差。在图2中,示出了从连续的5个点得到的移动平均值。该曲线表明移动平均值在一个小范围内变化。
在依据本实施例的方案中,如上所述,在其中误差变大的一个范围内,输出值在两个值之间来回地频繁变化,因此平均值变得与两个值的中值相等。而且,由于大多数误差分量存在于高频范围内,因此可以仅通过将输出经过一个简单的(低位)低通滤波器就很容易地从该输出中消除高频分量(误差)。
下面来描述从小数处理寄存器18向输入加法器12反馈误差的处理的另一个例子。
在顺序输入连续的数字信号的情况下,可以以上述方式经由输入加法器12反馈误差来很好的处理误差。
然而,当以Xn=An+Bn的形式给定输入时,如果停止输入,就不会出现新的小数部分Bn,并且保持要加入到下一个输入值的当前小数部分Bn而不加入下一个小数值,直到实际给定下一个输入值为止。
然而,在这种情况下,小数部分Bn与下一个输入值没有相关性,因此保留小数部分Bn不仅仅是毫无意义的,而且取决于下一个输入值Xn可能是有害的。
例如,当下一个输入值Xn非常接近Yn并因此在Yn中不应当出现误差时,如果保留大于0.5的误差,那么输出值与期望值不相同(即输出Xn+1或Xn-1)。
避免上述问题的一种技术是当下一个输入值Xn在完成一个数字信号序列(第一组数字信号)的运算后变为0时,将存储在小数处理寄存器18中的(将加入到下一个输入值中的)误差复位到0。
在该技术中,当输入下一个数字信号序列(第二组数字信号)Xn时,从初始化状态开始操作。
与上述相反的是,存储在小数处理寄存器18中的值可以用于对下一个操作产生特殊的影响。例如,当在同一个时钟信号控制下同步地进行两个操作时,可以输出结果以使它们具有特殊的关系(例如,不是在同一时间输出结果而是在周期变化的时间或位置输出结果)。
图3是显示类似于如图2中所示的运算的运算(运算A和运算B)结果的图表,所述运算是同步执行的以致于它们之间存在相位差。在图3中,实线表示运算A,虚线表示运算B(A+0.5)。
图4示出了通过使用上述处理控制每单位面积的点的密度所形成的图像的例子。在图4中,输入以从1到100的步长为单位而变化的值,并且通过相对100对输入值进行阈值处理使其二进制化。每次反馈误差的总和变得大于100时,就形成一个点。在图4中,时间轴采用通过箭头表示的方向(从上到下)。即在图4中的点是从上到下形成的。经独立处理获得50个点序列,并在图4中示出结果,从而在水平方向上逐序列地移动点序列。
在图4左侧所示的50个点序列中,给定从1到100的随机值作为50个初始值(位于顶部的水平线上)。
另一方面,在图4右侧所示的50个点序列中,给定6个值的重复作为初始值(正确排序的16的整数倍,即16,32,48,64,80以及96)。
正如从图4可以看到的,当如在图像处理中一样并行地进行多个操作时,可以通过控制初始值来改变初始相位从而获得期望的效果。
第二实施例
附图5是显示依据本发明第二实施例的信号处理设备(信号处理设备10A)的方框图。
在第二实施例中,与上述参照附图1描述的第一实施例中每一个小数值(误差)直接加入到下一个输入值Xn不同,通过一个乘法器21来加入小数值。即将从低位位加法器16输出的小数值输入到乘法器21中,并与一个小于1的常数α(例如0.75)相乘。
如果在较长期间内没有输入Xn,则在每个操作间隔减小小数值,从而小数值减少至趋向于0。因此,当在较长期间内没有输入Xn后输入Xn时,加入到输入值Xn的误差(小数)变得很小,从而,尽管向输入值Xn加入了很小的误差,但实质上是在与初始状态相同的状态下进行操作的。
在本实施例中,由于反馈在操作期间出现的误差,从而将每一个误差加入到下一个输入值Xn中,在操作期间出现的误差分量存在于一个高频范围内。如果以高于尼奎斯特(Nyquist)频率两倍的频率过采样包含误差分量的输出,则该误差分量将移动到一个更高的频率范围内。这使得可以通过将输出经过一个低位低通滤波器很容易地从输出中消除高频分量,而不会引起所希望的信号分量的明显损失。
上述信号处理设备10或10A不仅可以用来关于单一参考值对给定的信号进行阈值处理而不引起明显误差,而且可以关于两个或多个参考值对给定的信号进行阈值处理。可以对其应用依据本发明的信号处理设备的具体实例包括(1)能量控制(照明控制,温度控制,运动控制等等),(2)测量以及测量结果的指示(米),和(3)微滴喷射控制(喷墨打印机等)。
依据本发明的信号处理设备与如下所述的基于误差扩散方法的信号处理设备本质上是不同的。
误差扩散方法主要用于在处理二维数据的图像处理中。相反的,依据本发明的信号处理方法基本上用于处理一维数据序列的。
在误差扩散方法中,对误差进行加权,并且将被加权的误差加到多个相邻的数据中(即误差是二维扩散的)。
相反的,在本发明中,误差仅仅加入到下一个输入值中。而且,在本发明中,可以任意设置初始值,例如可以通过预先加载来设置初始值。
而且,与误差扩散方法不同,本发明无需大容量存储器,并且可以在短时间内进行操作。
虽然已参照具体实施例对本发明进行了上述说明,但本发明并不局限于这些实施例的具体说明,而是可以有各种修改。
例如,可以以任意数字进行舍入。可以任意设置将通过舍入方式提取作为高位部分的部分。高位部分与低位部分都可以是小数。相反地,都可以是整数。
虽然在依据上面参照图1或图5描述的具体实施例的信号处理设备和方法中,假定那些设备或方法是通过硬件方式实现的,但是依据本发明的设备或方法也可以通过软件方式实现。即可以通过在设备中提供一个程序来实现上面参照图1或图5(注意本发明不限于图1和图5中所示的那些)描述的设备或方法,从而实现依据本发明的信号处理设备的一个或所有功能。用于实现依据本发明的信号处理设备的一个或所有功能的程序可以存储在如CD-ROM的存储介质上,并且可以提供CD-ROM来实现依据本发明的信号处理设备的一个或所有功能。
如上所述,本发明使得可以提高信号处理的计算精度并减少计算时间,而无需增加存储容量或增加成本。