专利名称:分段生成报纸和书刊版面点阵的方法
技术领域:
本发明属于汉字信息处理技术领域。
本发明用于减少控制器中激光扫描RAM缓冲存储器的容量。
在EP0095536中,我们提到过分段生成汉字点阵,以减少激光扫描缓冲区(见EP0095536第12页),那里我们建议用32线(甚至8线)的扫描缓冲区,因此一个96×96点的汉字要分成3~4段才能生成完;八年前由于RAM芯片还很昂贵,因此EP0095536建议上述做法。中国专利申请89101481.0“逐段生成大号汉字字形点阵和图形点阵的设备和方法”中,我们提出了另一种分段生成汉字点阵的方法,仅对256×256点以上的大号汉字采用分段法,具体实施方法也和EP0095536完全不同,其目的只是为了节省标记点阵存储器WS的容量。因为对于一个2048×2048点的汉字,对应的WS需1MB,而采用专利申请89101481.0“逐段生成大号汉字字形点阵和图形点阵的设备和方法”的做法,WS只需32KB;对于大字,生成速度略有降低是可以容忍的。
本发明的目的不是减少WS容量,而是明显减少SS中激光扫描缓冲区的容量,采用的办法是把版面划分成段,逐段生成版面点阵。
1.“不许停顿”的高精度激光照排机的控制器设计的几种方案高精度激光照排机都采用逐线扫描方式,就其输出方式而言,有两类(1)在扫描一版报纸过程中不许停顿,底片永远匀速前进;美国ECRM公司的PELBOX照排机,美国Chemco公司的SpectrumXP,西德Hell公司的LS210,国内各种照排机均属此类。下面称为“不许停顿”类照排机。
(2)在扫描完任一线时,允许停下,等待下面版面点阵的到达,然后再接着从下一线的起始点扫起;这一停顿应不影响精度,为此在机械上需采取必要的措施。英国Monotype公司,英国Lino-type公司,美国Ultre公司的激光照排机均属此类。下面称为“走走停停”类照排机。
对于这两类不同的照排机,控制器的设计有所不同,国外常把逐线扫描激光照排机的控制器称为RIP(指RasterImageProcessor)。
对于“不许停顿”类照排机,控制器(即RIP)有下面四种方案供选择。
(1)把整个报纸版面都在一个大的RAM缓冲中存放起来,也即当生成完一个字的点阵,就放入缓冲应有的一系列单元中去,直到整版汉字和网纹、图片、照片全部形成并全部缓冲好以后,再由激光照排机输出。其过程是形成第一页的版面点阵输出第一页(中间不许停顿)形成第二页的版面点阵输出第二页(中间不许停顿)…………
CN85100275采用的就是这种方案。优点是简单,缺点是RAM缓冲太大。当分辨率为742线/英寸时,一版报纸的RAM缓冲区约为20MB;当分辨率提高到1000线/英寸时,一版报纸的RAM缓冲区为38MB;当分辨率再提高到1270线/英寸,一版报纸的RAM缓冲区高达61MB,代价实在太大。值得注意的是,提高分辨率今后将是一个趋势,因为人们追求更高的文字质量,尤其是更高的照片质量。
(2)实时下逐段生成版面点阵,边生成边输出。
EP0095536中采用双份交替缓冲(A缓冲和B缓冲),每份只缓冲32线(一段)的容量,约64KB。当A缓冲内容在扫描输出时,字形发生器和控制器往B缓冲中送版面点阵,并确保A缓冲(32线)输出完成前,B缓冲(下面32线)内容已全部填好;用此办法不断交替。
EP0095536的方法曾在华光Ⅱ型和Ⅲ型激光照排系统中采用,其优点是RAM缓冲容量极小;缺点是①容易产生“来不及提供点阵”的意外情况,②不易实现文图合一的输出。因而在华光Ⅳ型中我们抛弃了这种做法。
(3)用磁盘缓冲一版报纸点阵。
这种方法的过程如下形成一部分报纸版面点阵(可以是几十字或几百字)在内存缓冲,然后写入磁盘;每次写入一部分版面点阵,直到整个版面点阵全部形成为止;
然后按下述方式扫描在内存中有双份交替缓冲(缓冲A和缓冲B),当缓冲A在扫描输出时,把磁盘上的内容读入缓冲B;设计时应保证把磁盘内容读入缓冲B的时间在任何情况下永远小于缓冲A扫描输出的时间;用此办法交替。
这种方法的优点是RAM内存可以较小,缺点是写入磁盘速度不会太快。
(4)逐段生成版面点阵,用黑白段压缩信息形式作整版缓冲,实时下把黑白段压缩信息转换成点阵输出。
这一方法将在下面5中详细叙述,是本发明建议的方法。
2.“走走停停”类照排机提出了“逐段生成版面点阵”的要求。
走走停停类照排机允许在扫描过程中停下来,等待版面点阵的形成,然后继续扫描。这样就没有必要把整版报纸的点阵事先缓冲起来,因而可以大大缩小扫描缓冲的容量,英国Monotype公司的照排系统就是这样做的。Monotype照排系统中字形信息用黑白段表示沿X方向记录黑段的长度和白段的长度。激光扫描也是沿X方向进行的,字形描述方法和激光逐线扫描方式两者很一致,因而控制器设计比较简单。但是字形用黑白段表示,压缩倍数是不高的,也不易放大和缩小,这是一致命的缺点。
我们一直主张采用EP0095536的字形描述方法,但这种描述并不是按X方向排列的,而是按笔划先后次序和沿笔划轮廓进行描述的,因而与激光扫描次序不一致,这样有一系列的困难需要克服。
本发明提出了一整套分段生成版面点阵的方法,其要点是(1)把一页版面划分成段,每段含固定数目的扫描线数,假如每段为2K线的版面点阵,则控制器内只需设2K线的扫描缓冲区(称为SS区)。
(2)生成版面点阵和扫描过程如下生成第o段2K线点阵放SS区照排机底片移动,扫描2K线后停下(底片不再移动)生成第一段2K线点阵放SS区照排机底片移动,扫描2K线后停下生成第二段2K线点阵放SS区…………直到该页的最末段2K线扫描完为止。
(3)一个汉字可能跨两段,上半部分在上一段内,下半部分在下一段内,此汉字必须生成两次,对速度会有些影响。显然当每段所含线数越多,即SS容量越大时,跨段汉字所占的比例越小,对速度影响越小。
上述各点的具体实现都是在CN85100285和CN85100275的设备基础上完成的。
3.一个汉字跨两段时的处理方法(1)本发明处理跨段汉字的基本思想①对于一个汉字,不管跨段还是不跨段,85100285第7页所述的复原步骤(a)(b)是不变的,也就是说,尽管汉字的上半部分或下半部分不在当前段内,而对于不在当前段内的那些点其实根本不必生成,也没有地方作最终点阵缓冲;但是,我们仍旧老老实实地执行复原步骤(b),并且在WS中形成该汉字的标记点阵,尽管某些部分是白做的。但由于复原步骤(b)每个点才占两拍,速度很快,因此这种白做对速度的影响是可以容忍的。
②执行85100285第7页所述的复原步骤(c)时需作判别,判当前正在作复原步骤(c)的那一线是否在当前段内若在当前段内,则对该线照常执行复原步骤(c);若不在当前段内,则只需把标记点阵存储器WS中的这一线的单元清为0,而不必老老实实地执行复原步骤(c)。
(2)具体实现的第一方案①采用只读存储器GC(用EPROM构成),见中国专利申请“高速产生倾斜字和任意角度旋转字的方法”中图1的[25],GC中有若干单元,存放下列内容16开幅面时SS下界地址,SS上界地址8开幅面时SS下界地址,SS上界地址4开幅面时SS下界地址,SS上界地址由于照排机输出幅面不同,SS区大小也不同,因而上界地址(有时下界地址)也会有差别。这些下界地址,上界地址均为常数,事先算好后写入GC内。
②记录当前段起始线的Y坐标我们把每段的起始线在版面上的Y坐标记为Y*,则第0段第0线(即起始线)的Y*=0第0段最末线的Y*=2047(因为每段含2K线)第1段第0线的Y*=2048第1段最末线的Y*=4095第2段第0线的Y*=4096第2段最末线的Y*=6143第3段第0线的Y*=6144 在控制器中有一RAM单元存放当前段第0线的Y*值,当处理完一段后,此Y*值加2048。
③计算汉字左上角对应的SS地址若汉字左上角在版面上的坐标记为(X,Y),则对应的SS地址=SS下界地址+(Y-Y*)(扫描一线的单元数)+[X/16]这里“扫描一线单元数”对于16开、8开、4开不同幅面,是一不同的常数;SS区每单元为16位,因而上式最后一项[X/16],表示X被16除后取整数部分。
例1
“人”字的下半部分在当前段,显然Y-Y*为负值,因而“人”字左上角对应的SS地址必然小于SS下界地址。因此,对“人”字执行复原步骤(c)时,头上若干线是不必真的执行复原步骤(c)的,而只需把头上若干线的WS内容清为0。
例2
“民”字的上半部分在当前段,显然Y-Y*>0,因而“民”字左上角对应的SS地址必然大于SS下界地址;另一方面由于Y<Y*+2048,因而“民”字左上角对应的SS地址必然小于SS上界地址。但是,当对“民”字执行复原步骤(c)时,其SS地址不断增大,若超过SS上界地址时,不必继续执行复原步骤(c),而只需把剩下若干线的WS内容清为0。
④复原步骤(c)执行过程中的判别和处理29116RAM中R5存放WS中汉字Y方向所占的线数,29116RAM中R6R7存放汉字当跋咦钭蟊叩愣杂Φ腟S地址,29116RAM中R9R10存放当前处理的16点对应的SS地址。
若不作分段生成,不作有关的判别,则操作步骤如下1)复原步骤(c)执行前,R6R7←汉字左上角对应的SS地址,R9R10←R6R7。
2)每处理完16点后,R9R10←R9R10+1,3)每处理完一线,R5←R5-1R6R7←R6R7+扫描一线单元数,R9R10←R6R7。
现在要增加分段生成所需的SS地址是否小于SS下界地址和是否大于SS上界地址的判别。当前线最左边点对应的SS地址在R6R7中,因而R6R7<SS下界地址,表示WS当前线在当前段之上;R6R7>SS上界地址,表示WS当前线在当前段之下。这样操作步骤修改如下1)复原步骤(c)执行前的流程变成下面形式
整个汉字都在当前段之上的情况,实际上不大可能发生,只是为了防止软件的计算错误。
“清WS当前线”是一子程序,详细的微指令流程如下
可以看出,此子程序只用三拍就清一个WS单元,速度是快的。
从上面流程可看出当WS当前线在当前段之上,则
(3)具体实现的第二方案①不再有GC专门单元存放SS下界和上界地址。
②记录当前段起始线的Y坐标。
与第一方案全同。
③计算汉字左上角对应的SS地址与第一方案全同,并且在29116 RAM中,用R22存放Y-Y*结果,这里Y是汉字左上角的Y坐标,Y*是当前段第0线的Y坐标。
④复原步骤(c)执行过程中的判别和处理。
R5,R6R7,R9R10的作用与第一方案相同。
1)复原步骤(c)执行前的流程变成
2)每处理完16点后,R9R10←R9R10+1
①清WS当前线,并使len(CN85100285的[8-3])指向WS下一线开始的地址②R6R7←R6R7+扫描一线单元数③继续循环,作判别。
2)每处理完16点后,R9R10←R9R10+13)每处理完一线时,增加判别后的流程变成
从上面流程可看出,当对WS某一线(例如第i线)执行完复原步骤(c)后,要判别WS的下一线(即第i+1线)是否在当前段之下①若不是,则R6R7←R6R7+扫描一线单元数,转向对第i+1线执行复原步骤(c);
②若是,表示WS从第i+1线往下统统在当前段之下,则清WS的第i+1线开始的各条线。
3)每处理完一线时,增加判别后的流程变成下面形式
本发明倾向于用第二方案,因为它比较简单,也不必用只读存储器。
4.考虑分段后的版面描述信息软件把整个一页的版面划分成段,例如一段为2K线;然后将版面描述信息按段的先后次序提供,呈下面形式第0段版面描述信息(指第0~2027线)段结束标记(16位)第1段版面描述信息(指第2048~4095线)段结束标记(16位)第2段版面描述信息(指第4096~6143线)段结束标记(16位)
最末段版面描述信息段结束标记(16位)页结束标记(16位)这里第i段版面描述信息只给出全部或部分在第i段内的那些汉字和图片的信息;当一个汉字跨第i和第i+1两段时,必须在第i和第i+1两段内都给出此汉字的描述信息(指示此汉字在版面上的X,Y坐标),当一个图片跨N段时,必须在所跨的每一段内给出此图片的描述信息(指示图片在版面上起始X,Y坐标和X,Y方向的长度)。
5.“不许停顿”类照排机的控制器减少RAM扫描缓冲容量的方法(1)用黑白段信息形式对整版点阵进行压缩表示1965年西德Hell公司首先用黑白段形式表示一个字形点阵,以后英国Monotype公司也沿用此方法,并作了一些改进,黑白段方法在西方称为runlengthcoding。
下面我们提出了一个黑白段形式表示整个版面的方案,有三种标记,含义如下①
下面是15位“0”,“1”组成的任意花样②
下面是N个连续的“0”③
下面是N个连续的“1”这里0<N<214,N用原码或补码表示。
若16位为全0,则是线结束标记,表示一线已完。
据统计,用这一表示可使一个版面的信息量减少60%以上。当然还可以进一步优化,例如当N<64时,可以用一个字节表示N个连续的“0”或N个连续的“1”。而不必用两字节。同时15位花样将改成14位花样。但这样造成有两种长度的标记(一个字节或两个字节),会使下面(4)所述的转换硬件较复杂。
(2)控制器存储器分成两个区SS区存放一段(例如2K线)点阵;
BW区(BlackWhite区)存放一版的黑白段信息。
(3)生成一页版面和激光扫描的过程如下①按下述步骤填满一页版面的BW区按本发明2,3,4所述方法生成第0段点阵送SS区;
把SS区的第0段点阵转换成本节(1)所述的黑白段信息送BW区;
按本发明2,3,4所述方法生成第1段点阵送SS区;
把SS区的第1段点阵转换成本节(1)所述的黑白段信息送BW区;
按本发明2,3,4所述方法生成第2段点阵送SS区;
把SS区的第2段点阵转换成本节(1)所述的黑白段信息送BW区;
按本发明2,3,4所述方法生成本页最末段点阵送SS区;
把SS区的本页最末段点阵转换成本节(1)所述的黑白段信息送BW区。
②“不许停顿”类照排机连续扫描一页版面。在扫描过程中,不断从BW区读出黑白段信息,然后依靠Am29116微程序或一个专用的附加硬件把黑白段信息实时地转换成点阵,供照排机输出。
这里要强调的是,“不许停顿”类照排机扫描过程中是不许停顿的,因而要保证实时下把BW区的黑白段信息高速转换成点阵,这一转换速度要跟得上扫描速度。对于打点脉冲频率低的照排机,这一转换可以用Am29116微程序实现,而不必用专用的附加硬件。但对于打点脉冲频率高的照排机,微程序转换速度不够高,必须用专门的附加硬件(下节叙述)。
(4)把黑白段信息实时地转换成点阵的硬件假如黑白段信息采用5(1)所述的16位标记形式,图2给出这一转换硬件的框图。
LB[16]16位寄存器,即CN85100275的[16]LD[15]16位寄存器,但不是移位寄存器,这点与CN85100275附图的[15]不同,那里LD是移位寄存器。
SHIFT[26]15位移位寄存器COUNT[27]16位计数器,其中最高两位COUNT15,14用于保留黑白段信息每个16位标记中的最高两位,这两位将指示是15位花样,还是连续N个“0”或连续N个“1”(见本发明5(1))
DATAG[28]这一电路按下述表达式产生DATA,DATA即视频信号,提供给激光照排机。
DATA=COUNT15·SHIFT14+COUNT15·COUNT14这意味着当COUNT15=0,即处理15位花样时,DATA为SHIFT最高位,即SHIFT14;
当处理N个连续的“0”时,DATA=0;
当处理N个连续的“1”时,DATA=1。
SWIG[29]这一电路按下述表达式产生控制信号SWICOUNT15·(COUNT13~0=14)+COUNT15·(COUNT13~0=全1)这意味着当处理15位花样(COUNT15=0)时,则COUNT记满14,即将变15时,SWI=1(注意花样为15位);
当处理连续N个“0”或“1”时,则COUNT记满时SWI=1(注意为了硬件简单起见,N用补码表示)。
SWI=1意味着一个16位标记已经处理完,应处理下一个标记,因此SWI=1时执行下述操作①LD低15位→SHIFT②LD16位→COUNT③LB→LD
也即SWI直接作LD,COUNT,SHIFT的load控制端。
④置LR[18]为1,表示请求从存储器的BW区再取16位送LB,这里的LR即CN85100275附图的[18]。
从上面的叙述可看出,LB只起缓冲作用。若照排机扫描速度较慢,打点脉冲频率并不十分高,LB和LD可以合并。省掉LD,这一硬件照样能正常工作。
这一转换硬件的速度极高,而代价很低,用中小规模集成电路构成也只需要10多块组件,专门为此设计一个门阵列并不合算,但也可以把这部分电路与其他电路合在一起做成一块门阵列。
本发明的优点是大大减少控制器中RAM缓冲存储器的容量,当照排机为“走走停停”类时,只需一段(例如2K线)的缓冲;当照排机为“不许停顿”类时,尽管整版缓冲,但缓冲的是黑白段信息而不是点阵信息,因而信息量小得多。
附图1给出了把黑白段信息转换成点阵的硬件,其中LB[16],LD[15],LR[18]在CN85100275的附图中已出现过。
权利要求
1.一个利用CN85100275“照排机和印字机共享的字形发生器和控制器”和CN85100285“高分辨率汉字字形发生器”所述的设备,分段生成报纸和书刊版面点阵以减少控制器中RAM缓冲存储器的方法,其特征在于a.软件把一页版面按Y方向划分成段,每段含固定数目的扫描线(例如2K线);b.软件提供的描述汉字和图片在版面上的位置的信息按段的先后次序排列,每段结束有段结束标记,每段内只含全部或部分在本段内的那些汉字和图片信息;c.对于每个全部或部分在当前段内的汉字,完整地执行CN85100285第7页所述的复原步骤(a)和(b),并且在标记点阵存储器WS(CN85100285的[7])中形成该汉字的标记点阵;d.在把标记点阵转换成最终点阵的复原步骤(c)执行前要作如下的判别和处理(这里假定在复原步骤(c)开始前,29116RAM寄存器R6R7=汉字左上角对应的SS地址)判WS第i线(i从0开始)是否在当前段之上(1)若是,则①清WS第i线,并把WS的地址(在len(CN85100285的[8-3]中指示)指向下一线(即i+1线)的开始;②R6R7←R6R7+扫描-线单元数;③继续循环,作判别;(2)若不是,则从第i线开始执行复原步骤(c)的各项操作;e.当对WS的第i线执行完复原步骤(c)后,要作下述判别和处理判WS第i+1线(即下一线)是否在当前段之下(1)若不是,则R6R7←R6R7+扫描一线单元数,转向对第i+1线执行复原步骤(c);(2)若是,表示WS从第i+1线往下统统在当前段之下,则清WS的第i+1线开始的各条线。
2.一个在权利要求1的方法基础上,判别WS第i线是否在当前段之上或是否在当前段之下的方法,其特征在于a.使用Am29116一个RAM寄存器,例如R22,在复原步骤(c)执行前,置R22←Y-Y*这里Y=汉字左上角在版面上的Y坐标Y*=当前段第0线对应的版面上的Y坐标;b.复原步骤(c)每执行完一线后R22←R22+1;c.R22<0表示WS当前线(第i线)在当前段之上;d.R22≥N(N=一段所含Y方向的线数)表示WS当前线在当前段之下,若一段为2K线,则N=2048。
3.一个在权利要求1的方法基础上,判别WS第i线是否在当前段之上或是否在当前段之下的方法,其特征在于a.使用RAM单元或只读存储器单元存放SS下界地址和SS上界地址;b.R6R7记录一线开始时的SS地址;c.R6R7<下界地址,表示WS当前线在当前段之上;d.R6R7>上界地址,表示WS当前线在当前段之下;e.每处理完一线,R6R7←R6R7+扫描一线单元数。
4.一个把版面的黑白段信息高速转换成点阵的设备,其特征在于该设备由下述电路构成(1)LB[16],16位寄存器,用来接受存储器的16位黑白段标记;(2)LD[15],16位寄存器,用来接受LB来的16位黑白段标记,当照排机扫描速度较慢时,LD可省略;(3)SHIFT[26],15位移位寄存器,当标记是15位0或1组成的花样时,SHIFT内为15位花样,SHIFT不断移位,SHIFT最高位即视频信号DATA;(4)COUNT[27],16位计数器,COUNT最高两位暂存16位标记的最高两位,以区别各类标记;COUNT低14位用于计数和判别一个标记是否已处理完;(5)DATAG[28],用于产生视频信号DATA当标记为15位0或1组成的花样时,DATA=SHIFT最高位;当标记为N个连续的“0”时,DATA=0;当标记为N个连续的“1”时,DATA=1;(6)SWIG[29],用于产生控制电位SWI当标记为15位0或1组成的花样时,COUNT=14,即将变15时,SWI=1;当标记为N个连续的0或N个连续的1时,COUNT计满时,SWI=1;当SWI=1意味着一个16位标记已经处理完,应处理下一个标记,此时执行下述操作①LD低15位→SHIFT②LD16位→COUNT③LB→LD④置LR[18]为1
5.在CN85100275和CN85100285设备基础上,和权利要求1的分段生成报纸和书刊版面点阵方法基础上的一个明显减少“不许停顿”类照排机的控制器的RAM缓冲容量的方法,其特征在于a.控制器的存储器分成两个区SS区存放一段(例如2K线)点阵;BW区存放一版黑白段信息;b.生成一页版面和激光扫描的步骤如下(1)按下述步骤填满一页版面的BW区按权利要求1的方法生成第0段点阵送SS区;把SS区的第0段点阵转换成黑白段信息送BW区;按权利要求1的方法生成第1段点阵送SS区;把SS区的第1段点阵转换成黑白段信息送BW区;按权利要求1的方法生成第2段点阵送SS区;把SS区的第2段点阵转换成黑白段信息送BW区;
按权利要求1的方法生成本页最末段点阵送SS区;把SS区的本页最末段点阵转换成黑白段信息送BW区;(2)照排机连续扫描一页,在扫描过程中,不断从BW区读出黑白段信息,然后依靠Am29116微程序或权利要求4所述的设备把黑白段信息实时地转换成点阵,供照排机输出。
全文摘要
分段生成报纸和书刊版面点阵的方法属于汉字信息处理技术领域。本发明在CN85100285和CN85100275设备的基础上提出了把一页版面划分成段,每段含固定数目的扫描线数,每次只生成一段并缓冲的方法。当照排机是“走走停停”类时,控制器的存储器只需缓冲一段,而不必缓冲整版点阵;当照排机是“不许停顿”类时,则用分段方法每次只生成一段点阵并缓冲,然后用微程序把这一段点阵转换成信息量少得多的黑白段信息作整版缓冲,扫描时在实时下把黑白段信息复原成点阵输出。
文档编号G06K15/12GK1037422SQ89103389
公开日1989年11月22日 申请日期1989年5月26日 优先权日1989年5月26日
发明者王选, 吕之敏 申请人:北京大学