一种能够高速产生调频网点的方法和装置的制作方法

文档序号:7617099阅读:220来源:国知局
专利名称:一种能够高速产生调频网点的方法和装置的制作方法
技术领域
本发明涉及一种数字图像半色调领域的网点生成方法和装置,具体涉及一种能够高速产生调频网点的方法和装置。
背景技术
数字图像半色调技术分为两种,分别是调幅挂网和调频挂网,而在通常的调频挂网方法中,误差扩散方法是最常用的方法,误差扩散方法是把原图像的每个像点的灰度值与阈值相比较产生半色调点的同时,把像点的灰度值与阈值之间的误差扩散到该像点周围的像点上,例如对于一个256级灰度的图像,阈值为127,有一个像点的灰度值为150,经比较可知,该像点应记为白色,但实际上该像点并不是真正的白色,与白色之间存在的灰度差为23,将2 3这个误差按一定的方法分散到该像点的周围的像点上。
误差扩散到周围点的方法有多种,其中最著名及常见的是Floyd-Steinberg算法。该算法首先比较当前像素点的灰度值与阈值,将该像点记为1或0,即白色或黑色,然后与阈值进行比较,计算误差,分配误差到周围的像点,修改周围像点的灰度值,具体而言,Floyd-Steinberg算法中是将误差的7/16加到当前像点右边第一个像点上,误差的3/16加到下一行左边第一个像点上,误差的5/16加到下一行正对的像点上,误差的1/16加到下一行右边第一个像点上,这样把当前像点的误差分散到周围的像点上,反复进行该过程,对图像中的每个像点进行如此的半色调化和灰度值的修正即可。
在Floyd-Steinberg算法的基础上,又出现了一些改进的算法,如Stucki算法,该算法将当前像素产生的误差扩散到当前像素点的相邻12个点上,由于涉及了更多的点,输出图像效果好,同时,在误差扩散时,若总是从左到右一个扫描行一个扫描行的处理每个像点,则会形成一个扫描行的误差简单的加至下一行,从而引起误差的堆积,表现在输出图形上是图像有一种驱赶的趋势,所以在扫描时,往往采用S形的扫描方式,即如果是奇数行则从左到右扫描,如果是偶数行则从右到左扫描,依次类推,直至最后一行,这样能取得更好的效果。
采用误差扩散的方法通常能产生较好的效果,但它的不足也是显而易见的,即这种方法需要大量的计算及比较多的存储器操作,产生网点的速度慢,以Stucki算法和采用S型扫描方式为例,具体实现时通常是采用一个存储器来保存当前处理行及下面两行的误差扩散的结果,一般称它为误差行,误差行的每一个位置代表对应位置上的误差累积值,这样每处理一位像素,需要读出误差行的当前像素所对应的原有误差累积值及相邻12个位置上的原误差累积值,计算出当前像素新产生的误差值后,将该值分配到相邻12个位置上并且与该位置上原误差累积值相加,并将结果写入误差行的这12个位置上。由此可见,现有的方法需要大量的存储器操作,而存储器的读写速度在计算机系统中往往是系统速度的瓶颈,因此虽然基于误差扩散的挂网方法能取得较好的效果,却因为速度的原因,应用范围受到限制,在通常的打印机,复印机等设备中,虽然通常用专用硬件来提高基于误差扩散方法的网点产生速度,但因为现有技术含有大量存储器操作,速度仍然受到影响,难以达到高速打印机和复印机的实时性要求,使基于误差扩散的挂网方法难以在现代的高速打印机和复印机中得到充分应用。

发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种能够高速产生基于误差扩散方法的调频网点的方法和装置,采用该方法的装置每处理一位像素对误差行存储器只需要进行一次读和一次写的操作,大大提高调频网点的产生速度。
为达到以上目的,本发明采用的技术方案是一种能够高速产生调频网点的方法,该方法具体包括以下步骤a)按列组织并初始化误差行存储器;b)设定误差缓冲寄存器堆;c)获取源像素;d)依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点;e)更新误差行及误差缓冲寄存器堆;f)重复步骤c,d,e直到一行结束;g)重复步骤b,c,d,e,f直到图像结束。
更进一步,为使本发明具有更好的发明效果,步骤a中按列组织并初始化误差行存储器时采用如下方法,包括如下步骤1)误差行的行数为2的n次方,并且误差行存储器的总线宽度能够保证一次可以从误差行存储器中读写2的n次方个单元,同时误差行的行数大于等于一个像素的误差所能够扩散到的行数,误差行循环重复使用,上述的n为正整数;2)列号相同的每2的n次方列误差位置相邻排列;3)误差行内容被初始化为0。
更进一步,为使本发明具有更好的发明效果,步骤b中设定误差缓冲寄存器堆时采用如下方法,包括如下步骤1)误差缓冲寄存器堆包括误差分配缓冲寄存器堆和误差累积缓冲寄存器堆两部分,其中误差分配缓冲寄存器堆大小能够保存误差行某一位置的所有相关像素所有误差分配值,其中当前相关像素为当前处理行内误差值能扩散到这一误差行位置所有像素,误差累积缓冲寄存器堆大小为足够保存读出的当前处理行的下面行的原误差行中的所有相关误差累积值,其中相关误差累积值为从读出误差行某一位置上原误差累积值到该位置新的误差累积值被写入过程中所有读出的误差行中的原误差累积值;2)初始化误差缓冲寄存器堆即每行处理开始时误差缓冲寄存器堆内容被初始化为0。
更进一步,为使本发明具有更好的发明效果,步骤d中依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点时采用如下方法,包括如下步骤1)从误差行存储器中一次读出对应当前源像素位置及下面行同一列位置上的误差累积值;2)由误差缓冲寄存器堆的内容计算出当前源像素的同一行的所有以前的像素处理所产生的误差分配到当前源像素的误差值的和S;3)将当前像素对应位置上的原误差累积值加上S,再和当前源像素值相加得出最终像素值,将该值和阈值比较产生最终网点。
更进一步,为使本发明具有更好的发明效果,步骤e中更新误差行及误差缓冲寄存器堆时采用如下方法,包括如下步骤1)根据最终像素值和阈值得出当前像素产生的误差分配到所有相邻像素的值Dj;2)误差分配缓冲寄存器堆中每一像素的误差分配值更新为后一像素的对应值,而最后一个像素的误差分配值更新为Dj;3)误差累积缓冲寄存器堆中每一像素的误差累积值更新为后一像素的对应值,而最后一个像素的误差累积值更新为当前像素对应位置下面行上的原误差累积值;4)根据误差缓冲寄存器堆内容得出误差行的一列的所有写入数据值并一次写入误差行存储器中,其中误差行一列中某一点的写入数据为存放在误差缓冲寄存器堆中的扩散到该点的所有误差分配值和该点原误差累积值之和。
为买现上述方法,本发明还提出了一个采用硬件电路来实现该方法的装置,该装置1包括误差行存储器2,误差缓冲寄存器堆3,阈值比较电路4,误差生成电路5,误差缓冲寄存器堆控制电路6,灰度生成电路7,误差行控制电路8七部分;进一步,误差行存储器2用来保存处理过程中的误差扩散结果;误差缓冲寄存器堆3用来缓冲中间误差值;灰度生成电路7连接到源像素、误差行存储器2和误差缓冲寄存器堆3,用来产生源像素经过误差扩散后的最终灰度;阈值比较电路4连接到灰度生成电路7将阈值和最终灰度比较产生最终网点;误差生成电路5连接到灰度生成电路7由阈值和最终灰度计算出当前误差分配值;误差缓冲寄存器堆控制电路6来控制误差缓冲寄存器堆的更新及输出,它的输入来自误差生成电路5和误差行控制电路8和误差缓冲寄存器堆3的内容反馈;误差行控制电路8连接到误差行存储器2用来产生误差行存储器的读写地址及读写控制信号及读写数据,它的输入来自包括当前处理象素的坐标及误差缓冲寄存器堆控制电路6及误差生成电路5;该装置工作时,灰度生成电路7根据当前处理像素和误差行存储器2及误差缓冲寄存器堆3的内容得出最终的像素灰度,然后通过阈值比较电路4产生网点,同时最终的像素灰度还通过误差生成电路5得出对应该像素的误差分配值,然后通过误差缓冲寄存器堆控制电路6和误差行控制电路8来分别完成误差缓冲寄存器堆3和误差行存储器2的一次更新。
更进一步,为使本发明具有更好的效果,上述装置中误差缓冲寄存器堆采用采用由触发器组成的寄存器堆实现,它包括误差分配缓冲寄存器堆和误差累积缓冲寄存器堆两部分,其中误差分配缓冲寄存器堆大小为足够保存误差行某一位置的所有相关像素所有误差分配值,其中当前相关像素为当前处理行内误差值能扩散到这一误差行位置所有像素;误差累积缓冲寄存器堆大小为足够保存读出的当前处理行的下面行的原误差行中的所有相关误差累积值,其中相关误差累积值为从读出误差行某一位置上原误差累积值到该位置新的误差累积值被写入过程中所有读出的误差行中的原误差累积值。
更进一步,为使本发明具有更好的效果,上述装置中灰度生成电路由一个加法器组成,加法器的输入来自源像素,误差行中读出的当前误差值和误差缓冲寄存器堆中的当前误差缓冲值;它将当前源像素的值及误差行中读出的对应该位置的误差值及误差缓冲寄存器堆中缓冲的当前像素同一行的以前像素对当前像素的误差缓冲值相加而得出最终的当前像素灰度值。
更进一步,为使本发明具有更好的效果,上述装置中误差缓冲寄存器堆控制电路主要由n个多路器组成,其中n为误差缓冲寄存器堆中的寄存器个数,它用来产生误差缓冲寄存器堆的输入及控制信号从而完成在每一像素处理周期内误差缓冲寄存器堆的一次更新及每一行开始时的初始化清零,多路器的输入包括当前误差分配值,当前误差累积值及误差缓冲寄存器堆中的原值,多路器的输出为误差缓冲寄存器堆中寄存器的更新值。
更进一步,为使本发明具有更好的效果,上述装置中误差行控制电路由读地址寄存器,写地址寄存器,读写控制电路及写入数据生成电路组成,其中读地址寄存器和写地址寄存器由当前像素的列号产生,写入数据生成电路则由加法器组成,其中加法器的输入来自于原误差累积值,当前误差分配值及相关误差缓冲值。
本发明的效果在于在数字图像半色调领域,利用基于误差扩散的方法产生调频网点时,本方法和装置每处理一个像素只需进行一次存储器的读和一次存储器的写操作,并且能够采用专用硬件电路来实现,大大提高了调频网点的产生速度。


图1是基于Floyd-Steinberg算法的误差扩散原理示意图;图2是一个基于Stucki算法的误差扩散原理示意图;图3是通常基于Stucki算法的一个图像宽度为7个像素的误差行存储器示意图;图4是采用本发明所述方法处理一个图像的流程框图;图5是本发明所述方法中基于Stucki算法的一个图像宽度为7个像素的误差行存储器示意图;图6是本发明所述方法中基于Stucki算法的误差缓冲寄存器堆示意图;图7是本发明所述的高速产生调频网点的装置的框图;图8是本发明所述的高速产生调频网点的装置中灰度生成电路的框图;图9是本发明所述的高速产生调频网点的装置中误差行控制电路的框图;图10是本发明所述的高速产生调频网点的装置中误差缓冲寄存器堆控制电路中多路器的框图;图11是本发明所述的方法在处理一个像素时误差行存储器的读写过程示意图。
具体实施例方式
下面结合说明书附图和具体实施方式
对本发明作进一步地描述。
附图1是基于Floyd-Steinberg算法的误差扩散原理示意图,当前像素*的误差按附图1所示的比例被分配到附图1所示的4个相邻像素上去。
附图2是基于Stucki算法的误差扩散原理示意图,当前像素*的误差被分配到附图2所示的12个相邻像素上去,通常这12个位置上的某些位置的误差分配比例是一样的,附图2所示的算法只需要5个不同的误差分配比例,其中可取D1=1/44,D2=2/44,D3=5/44,D4=4/44,D5=8/44的比例来分配当前像素*的误差。通常采用这种算法并且采用S型的扫描处理时需要有误差行来保存当前处理像素对下面2行的误差分配累加值,这样误差行通常为3行,宽度为源图像宽度。容易得知,通常处理一个像素需要大量的误差行读写操作来更新误差行存储器中12个位置上的误差累积值。
附图3是通常基于Stucki算法的一个图像宽度为7个像素的误差行存储器示意图,其中(i,j)表示第i行,第j列的像素对应的误差行位置,容易得知基于Stucki算法的误差行可以循环使用,只需要3行误差行即可,其中第i+3行和第i行的像素使用同一误差行。
如图4所示,本发明所述一种能够高速产生调频网点的方法用于处理一个图像的具体实现方法,包括如下步骤(1)按列组织并初始化误差行存储器;(2)设定误差缓冲寄存器堆;(3)获取源像素;(4)依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点;(5)更新误差行及误差缓冲寄存器堆;(6)判断是否一行处理结束,如否,则转入步骤3,如是则转入步骤7;(7)判断是否图像处理结束,如否,则转入步骤2,如是处理结束。
如图5所示,该图是上述方法步骤(1)中按列组织并初始化误差行存储器时基于Stucki算法的一个误差行存储器示意图,其中图像宽度为7个像素,(i,j)表示第i行,第j列的像素对应的误差行位置,在通常的计算机系统中存储器的数据总线宽度往往是16,32或64等2的整数次方,因此,本发明采用的误差行的行数同样定义为2的整数次方,具体到基于Stucki算法的方法,本实施例中误差行为4行,循环使用,即其中第i+4行和第i行的像素使用同一误差行。同时,如附图5所示,本发明所述方法和现有技术不同的是,本发明所述方法中,误差行是按列排列的,即列号相同4列误差行单元相邻排列,这样,误差行存储器采用32位的总线宽度,就一次可以读写误差行中同一列位置上的所有误差累积值。
如图6所示,该图是上述方法步骤(2)中初始化误差缓冲寄存器堆时基于Stucki算法的误差缓冲寄存器堆示意图,它包含有当前处理像素和当前处理像素的同一行中之前若干个相关像素的所有误差分配值及读出的当前处理行的下面行的若干个原误差行的值,以附图2所示的Stucki算法为例,因为误差行的一个位置上的误差可能来自当前行的最多5个像素,所以,误差缓冲寄存器堆需要保存同一行5个相邻像素的所有误差分配值,同时因为当前处理像素的误差最多只能往下一行及下两行的前2个像素扩散,并且容易得知只有当前行的下一行的最终误差值与误差行存储器中的原值有关,当前行的下面第二行的误差值在当前行开始处理前为0,而当前行的下一行的误差行中某一位置的最终误差累积值的写入是在它后2个像素对应的误差行读出之后才进行的,这个过程中,读出的误差行中原误差累积值为3个,所以误差缓冲寄存器堆中只需保存3个当前行的下一行的原误差行的值即可。如图6所示,本实施例中,误差缓冲寄存器堆为能够缓冲相邻5个像素的所有误差分配值及当前处理行的下一行的3个原误差行值的寄存器堆,其中设P5为当前处理像素,PiDj(i,j=1...5)表示P5及它的4个同一行前面相邻像素的所有误差值,PiL1(i=3,4,5)则表示读出的Pi位置上下一行的误差行存储器中的原误差累积值。
本发明所述的方法中步骤(4)中依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点时采用如下方法,包括如下步骤1)从误差行存储器中一次读出对应当前源像素位置及下面行同一列位置上的误差累积值,因为误差行是按列组织的并且误差行的行数与误差行存储器的总线宽度存在匹配关系,因此读地址寄存器和写地址寄存器由当前处理像素的列号得出,以实现附图2所示的Stucki算法为例,如当前处理像素列号为j,则读地址寄存器=4*j,因为误差行是以4行为周期循环使用的,所以当读出误差行内容后,根据当前处理像素的行号的最低2位则可得出当前处理像素所对应的误差行的原误差累积值,设为L0,当前处理像素下方一行所对应的误差行的原误差累积值,设为L1;2)由误差缓冲寄存器堆的内容计算出当前源像素的同一行的所有以前的像素处理所产生的误差分配到当前源像素的误差值的和S,以附图2所示的Stucki算法为例,S等于P5D5+P4D3;
3)将当前像素对应位置上的原误差累积值L0加上S,再和当前源像素值相加得出最终像素值,将该值和阈值比较即可产生最终网点。
本发明所述的方法中步骤(5)中更新误差行及误差缓冲寄存器堆时采用如下方法,包括如下步骤1)根据最终像素值和阈值得出当前像素产生的误差分配到所有相邻像素的值Dj,以附图2所示的Stucki算法为例,分配比例为D1=1/44,D2=2/44,D3=5/44,D4=4/44,D5=8/44;2)误差分配缓冲寄存器堆中每一像素的误差分配值更新为后一像素的对应值,而最后一个像素的误差分配值更新为Dj,以附图2所示的Stucki算法为例,即PiDj赋值为Pi+1Dj,P5Dj赋值为Dj,(i=1..4,j=1..5);3)误差累积缓冲寄存器堆中每一像素的误差累积值更新为后一像素的对应值,而最后一个像素的误差累积值更新为当前像素对应位置下面行上的原误差累积值,以附图2所示的Stucki算法为例,即PiL1赋值为Pi+1L1,(i=3,4),P5L1赋值为L1;4)根据误差缓冲寄存器堆内容得出误差行的一列的所有写入数据值并一次写入误差行存储器中,其中误差行一列中某一点的写入数据为存放在误差缓冲寄存器堆中的扩散到该点的所有误差分配值和该点原误差累积值之和,以实现附图2所示的Stucki算法为例,当前处理像素为P5时,则可得出在P5前第2个像素位置的所在列的最终写入数据PL1和PL2,其中PL1=P3L1+P1D2+P2D4+P3D5+P4D4+P5D2,PL2=P1D1+P2D2+P3D3+P4D2+P5D1。
一种能够高速产生调频网点的装置1,如图7所示,该装置包括误差行存储器2,误差缓冲寄存器堆3,阈值比较电路4,误差生成电路5,误差缓冲寄存器堆控制电路6,灰度生成电路7,误差行控制电路8共七部分。
在上述装置中,灰度生成电路7根据当前处理像素和误差行存储器2及误差缓冲寄存器堆3的内容得出最终的像素灰度,然后通过阈值比较电路4产生网点,同时最终的像素灰度还通过误差生成电路5得出对应该像素的误差分配值,然后通过误差缓冲寄存器堆控制电路6和误差行控制电路8来分别完成误差缓冲寄存器堆3和误差行存储器2的一次更新。
在上述装置中,误差行存储器2是按列组织的存储器,用来存储误差累积值,它连接到误差行控制电路8并由误差行控制电路8控制;误差缓冲寄存器堆3由硬件触发器组成,用来缓冲中间误差分配值,它连接到误差缓冲寄存器堆控制电路6并由误差缓冲寄存器堆控制电路6来控制;
灰度生成电路7用来产生源像素的最终灰度,它的输入连接到源像素和误差缓冲寄存器堆控制电路6,它的输出则提供给阈值比较电路4和误差生成电路5;附图8是本发明所述的一种能够高速产生调频网点的装置中灰度生成电路的框图,它由一个加法器产生最终像素的灰度值,其中最终像素的灰度值等于源像素的值加上从误差行中读出的对应该位置的当前误差值再加上误差缓冲寄存器堆中缓冲的当前像素同一行的以前像素对当前像素的当前误差缓冲值,以实现附图2所示的Stucki算法为例,该电路的逻辑表达式为最终像素灰度=源像素值+L0+(P5D5+P4D3)。
阈值比较电路4用来将灰度生成电路7所产生的灰度与阈值进行比较产生网点,它的输入连接到灰度生成电路7,输出即是最终网点;误差生成电路5用来将由灰度生成电路7所产生的灰度通过计算或查表而产生当前像素的误差分配值,它的输入连接到灰度生成电路7,输出将提供给误差缓冲寄存器堆控制电路6和误差行控制电路8;误差缓冲寄存器堆控制电路6用来控制误差缓冲寄存器堆的更新,它的输入连接到误差生成电路5和误差行控制电路8及误差缓冲寄存器堆3,它的输出连接到误差行控制电路8及误差缓冲寄存器堆3和灰度生成电路7;附图10是本发明所述的一种能够高速产生调频网点的装置中误差缓冲寄存器堆控制电路中多路器的框图,误差缓冲寄存器堆控制电路通过n个多路器(multiplexer)来完成在每一像素处理周期内误差缓冲寄存器堆的一次更新及每一行开始时的初始化清零,其中n为误差缓冲寄存器堆中的寄存器个数,即对应误差缓冲寄存器堆中的每一个寄存器都包含有结构相同的一个多路器,其中多路器的输入包括当前处理像素的所有误差分配值即当前误差分配值,从误差行中读出当前处理像素对应的下一行当前误差累积值及误差缓冲寄存器堆中的原值,多路器的输出即误差缓冲寄存器堆中寄存器的更新值,以实现附图2所示的Stucki算法为例,当得出当前误差分配值Dj及当前误差累积值L1后,该多路器的输出可以表示为对应于PiDj,多路器输出为Pi+1Dj,对应于P5Dj多路器输出为Dj,(i=1..4,j=1..5),对应于PiL1,多路器输出为Pi+1L1,(i=3,4),对应于P5L1,多路器输出为L1。
误差行控制电路8用来控制误差行存储器2的读写,它的输入来自误差生成电路5和误差缓冲寄存器堆控制电路6,它的输出连接到灰度生成电路7,同时它还和误差行存储器2相连。附图9是本发明所述的一种能够高速产生调频网点的装置中误差行控制电路的框图,它由读地址寄存器,写地址寄存器,读写控制电路及写入数据生成电路器组成,其中读地址寄存器,写地址寄存器由当前处理像素坐标生成,写入数据生成电路则由加法器组成,它由原误累积差值,当前误差分配值及相关误差缓冲值得出一列误差行写入数据,读写控制电路则产生误差行存储器的读写控制信号,以实现附图2所示的Stucki算法为例,如当前处理像素列号为j,则读地址寄存器=4*j,写地址寄存器则为4*(j-2),误差行写入数据生成电路产生一列写入数据PL1和PL2,其中PL1可表示为PL1=P3L1+P1D2+P2D4+P3D5+P4D4+P5D2,PL2可表示为PL2=P1D1+P2D2+P3D3+P4D2十P5D1。
附图11是本发明所述的方法在处理一个像素时误差行存储器的读写过程示意图。以实现附图2所示的Stucki算法为例,设*所示为当前处理像素,如采用现有技术,处理当前处理像素*时需要读出附图11所示误差行中PL2和PL1,L0和L1及所有标记为X的位置的原内容,当前像素处理完毕后,还需要更新当前像素相邻的12个位置上的累积值,而采用本发明所述的方法和装置,当处理当前像素*时,先从误差行存储器中读出L0和L1,其中L0用来产生最终灰度,而L1被缓冲,在以后用来产生PL1,当当前处理像素的误差分配值Dj产生后,可以得知误差行存储器中PL2和PL1的值可以被确定并写入,在该行以后的像素处理中误差行中该位置的内容不会改变,同时因为影响PL2和PL1最终累积值的所有相关误差值被缓冲在误差缓冲寄存器堆中,所以不需要再次读取存储器即可完成PL2和PL1的写入,而且因为本发明中误差行是按列组织的,因此读L0和L1只需一次存储器读操作而写PL2和PL1也只需一次存储器写操作,可见采用本发明所述方法,每处理一个像素时,只需要一次存储器读来读出L1和L0及一次存储器写操作写入PL2和PL1即可。从而网点严生的速度得以大幅提高。
以上所述仅为本发明的其中一个实施例而已,并不用以限制本发明,如以上用将误差扩散到12个相邻位置的Stucki算法来描述本发明实施例,但本发明同样适用于基于误差扩散原理的,将误差扩散到更多的点的网点生成方法,因而凡在本发明的精神和原则之内,所作的任何修改,等同替换,改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种能够高速产生调频网点的方法,包括以下步骤a)按列组织并初始化误差行存储器;b)设定误差缓冲寄存器堆;c)获取源像素;d)依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点;e)更新误差行及误差缓冲寄存器堆;f)重复步骤c,d,e直到一行结束;g)重复步骤b,c,d,e,f直到图像结束。
2.根据权利要求1所述的一种能够高速产生调频网点的方法,其特征在于步骤a中按列组织并初始化误差行存储器时采用如下方法,具体包括如下步骤1)误差行的行数为2的n次方,并且误差行存储器的总线宽度能够保证一次可以从误差行存储器中读写2的n次方个单元,同时误差行的行数大于等于一个像素的误差所能够扩散到的行数,误差行循环重复使用,上述的n为正整数;2)列号相同的每2的n次方列误差位置相邻排列;3)误差行内容被初始化为0。
3.根据权利要求1所述的一种能够高速产生调频网点的方法,其特征在于步骤b中设定误差缓冲寄存器堆时采用如下方法,具体包括如下步骤1)误差缓冲寄存器堆包括误差分配缓冲寄存器堆和误差累积缓冲寄存器堆两部分,其中误差分配缓冲寄存器堆的大小能够保存误差行某一位置的所有相关像素所有误差分配值,其中当前相关像素为当前处理行内误差值能扩散到这一误差行位置所有像素,误差累积缓冲寄存器堆的大小为足够保存读出的当前处理行的下面行的原误差行中的所有相关误差累积值,其中相关误差累积值为从读出误差行某一位置上原误差累积值到该位置新的误差累积值被写入过程中所有读出的误差行中的原误差累积值;2)初始化误差缓冲寄存器堆即每行处理开始时误差缓冲寄存器堆内容被初始化为0。
4.根据权利要求1所述的一种能够高速产生调频网点的方法,其特征在于步骤d中采用依据当前源像素及误差行和误差缓冲寄存器堆的内容产生网点时采用如下方法,包括如下步骤1)从误差行存储器中一次读出对应当前源像素位置及下面行同一列位置上的误差累积值;2)由误差缓冲寄存器堆的内容计算出当前源像素的同一行的所有以前的像素处理所产生的误差分配到当前源像素的误差值的和S;3)将当前像素对应位置上的原误差累积值加上S,再和当前源像素值相加得出最终像素值,将该值和阈值比较产生最终网点。
5.根据权利要求1所述的一种能够高速产生调频网点的方法,其特征在于步骤e中更新误差行及误差缓冲寄存器堆时采用如下方法,包括如下步骤1)根据最终像素值和阈值得出当前像素产生的误差分配到所有相邻像素的值Dj;2)误差分配缓冲寄存器堆中每一像素的误差分配值更新为后一像素的对应值,而最后一个像素的误差分配值更新为Dj;3)误差累积缓冲寄存器堆中每一像素的误差累积值更新为后一像素的对应值,而最后一个像素的误差累积值更新为当前像素对应位置下面行上的原误差累积值;4)根据误差缓冲寄存器堆内容得出误差行的一列的所有写入数据值并一次写入误差行存储器中,其中误差行一列中某一点的写入数据为存放在误差缓冲寄存器堆中的扩散到该点的所有误差分配值和该点原误差累积值之和。
6.一种实现如权利要求1所述方法的能够高速产生调频网点的装置,该装置(1)包括阈值比较电路(4),误差生成电路(5),其特征在于还包括误差行存储器(2),误差缓冲寄存器堆(3),误差缓冲寄存器堆控制电路(6),灰度生成电路(7),误差行控制电路(8);所述误差行存储器(2)用来保存处理过程中的误差扩散结果;误差缓冲寄存器堆(3)用来缓冲中间误差值;灰度生成电路(7)连接到源像素、误差行存储器(2)和误差缓冲寄存器堆(3),用来产生源像素经过误差扩散后的最终灰度;所述阈值比较电路(4)连接到灰度生成电路(7)将阈值和最终灰度比较产生最终网点;误差生成电路(5)连接到灰度生成电路(7)由阈值和最终灰度计算出当前误差分配值;误差缓冲寄存器堆控制电路(6)来控制误差缓冲寄存器堆的更新及输出,它的输入来自误差生成电路(5)和误差行控制电路(8)和误差缓冲寄存器堆(3)的内容反馈;误差行控制电路(8)连接到误差行存储器(2)用来产生误差行存储器的读写地址及读写控制信号及读写数据,它的输入来自包括当前处理象素的坐标及误差缓冲寄存器堆控制电路(6)及误差生成电路(5)。
7.根据权利要求6所述的一种能够高速产生调频网点的装置,其特征在于误差缓冲寄存器堆(3)采用由触发器组成的寄存器堆实现,它包括误差分配缓冲寄存器堆和误差累积缓冲寄存器堆两部分,其中误差分配缓冲寄存器堆大小能够保存误差行某一位置的所有相关像素所有误差分配值,其中当前相关像素为当前处理行内误差值能扩散到这一误差行位置所有像素;误差累积缓冲寄存器堆大小为足够保存读出的当前处理行的下面行的原误差行中的所有相关误差累积值,其中相关误差累积值为从读出误差行某一位置上原误差累积值到该位置新的误差累积值被写入过程中所有读出的误差行中的原误差累积值。
8.根据权利要求6所述的一种能够高速产生调频网点的装置,其特征在于灰度生成电路(7)由一个加法器组成,加法器的输入来自源像素、误差行中读出的当前误差值和误差缓冲寄存器堆中的当前误差缓冲值。
9.根据权利要求6所述的一种能够高速产生调频网点的装置,其特征在于误差缓冲寄存器堆控制电路(6)由n个多路器组成,其中n为误差缓冲寄存器堆中的寄存器个数,多路器的输入包括当前误差分配值,当前误差累积值及误差缓冲寄存器堆中的原值,多路器的输出为误差缓冲寄存器堆中寄存器的更新值。
10.根据权利要求6所述的一种能够高速产生调频网点的装置,其特征在于误差行控制电路(8)由读地址寄存器,写地址寄存器,读写控制电路及写入数据生成电路组成,其中读地址寄存器和写地址寄存器由当前像素的列号产生,写入数据生成电路则由加法器组成,其中加法器的输入来自于原误差累积值、当前误差分配值及相关误差缓冲值。
全文摘要
本发明涉及一种能够高速产生调频网点的方法和装置,属于数字图像半色调领域。现有技术中,每处理一个像素通常需要对误差行进行多次读写操作,网点产生速度较慢。本发明所述的方法,将当前像素所产生的误差缓冲在寄存器堆中,只有当相关像素都处理完毕时才将最终的误差累积值写入误差行中,因此,每处理一个像素只需对误差行进行一次读写操作。本发明还给出了一种实现该方法的装置,该装置由误差行存储器,误差缓冲寄存器堆,灰度生成电路,阈值比较电路,误差生成电路,误差缓冲寄存器堆控制电路,误差行控制电路共七部分组成。采用本发明所述的方法和装置,减少了操作步骤,大大提高了调频网点的产生速度。
文档编号H04N1/405GK1668062SQ20051006325
公开日2005年9月14日 申请日期2005年4月7日 优先权日2005年4月7日
发明者刘志红, 陈 峰, 杨斌 申请人:北京北大方正电子有限公司, 北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1