告別鉛與火
1975年初,北京大學從各系抽調(diào)力量組成一個調(diào)查組,調(diào)研北大各部門應(yīng)用計算機及實現(xiàn)自動化的可能性。因為人手不夠,調(diào)查組挑中了陳堃銶這個“閑人”。陳堃銶不僅是王選的妻子,還是他的搭檔,曾經(jīng)參加過DJS-21機的ALGOL 60編譯工作。此時,因為患美尼爾氏綜合征,她經(jīng)常頭暈,病休在家,恰好趕上參加北京大學的這次調(diào)研。在調(diào)研中,陳堃銶聽說了“748”工程。
到1974年,IBM和DEC的小型機層出不窮,MITS更是推出了全球第一臺微型電子計算機“牛郎星”。計算機技術(shù)在國際上走勢大好,但中國的狀況還不甚明朗,最重要的原因就是國外的計算機無法處理漢字。為了跟上國際步伐,1974年8月,由四機部、一機部、中國科學院、新華社、國家出版事業(yè)管理局聯(lián)合發(fā)起,國家計委批準設(shè)立了國家重點科技攻關(guān)項目“漢字信息處理系統(tǒng)工程”,簡稱“748”工程。
陳堃銶打聽到,“748”工程分為3個子項目:漢字通信系統(tǒng)、漢字情報檢索和漢字精密照排?;貋肀惆堰@一情況說給王選聽。
王選呢?早在1958年研制“紅旗機”時,夜以繼日地科研加上嚴重營養(yǎng)不良,積勞成疾,王選病了?!搬t(yī)院最早懷疑是‘紅斑狼瘡’……又轉(zhuǎn)了幾次院,最后一家又推斷是‘結(jié)節(jié)性動脈周圍炎’。”這場“莫名其妙的大病”在母親的精心照料下好轉(zhuǎn)起來,卻給王選的健康埋下了禍根。由于父親被打為“右派”,王選成為“黑五類”分子?!拔幕蟾锩遍_始之后,王選因曾聽英語廣播提高英文水平,被攻擊為“偷聽敵臺”,成為被打壓的對象。壓力之下,他的身體再次承受不住,成了長期病休、只發(fā)勞保工資的老病號。但他從未忘記過計算機事業(yè),1972—1974年,他在理解了編譯系統(tǒng)軟件對計算機設(shè)計需求的基礎(chǔ)上,設(shè)計了適合軟件的新型計算機結(jié)構(gòu),后來整理成文發(fā)表。
那個時候,他因病還沒有正式回到工作崗位上,用他的話說,反正時間多的是,不如給自己找點事做。陳堃銶帶來的消息令他很激動:“漢字精密照排是指運用計算機和相關(guān)的光學、機械技術(shù),對中文信息進行輸入、編輯、排版、輸出及印刷,也就是用現(xiàn)代科技對我國傳統(tǒng)的印刷行業(yè)進行徹底改造。”雖然難度巨大,但價值和前景同樣不可估量,因為在當時,中國數(shù)量最多的工廠恐怕就是印刷廠了。
王選被自己的分析震撼了。想想吧,印刷術(shù)本是中國四大發(fā)明之一,北宋畢昇發(fā)明的活字印刷術(shù)帶動了世界印刷技術(shù)的發(fā)展,但此后中國印刷術(shù)的發(fā)展反倒落在了后面。在國外,15世紀中期,德國古登堡采用鉛活字與印刷機相結(jié)合,發(fā)明鉛活字機械印刷術(shù),很快形成產(chǎn)業(yè)推廣開來。到20世紀,西方又率先結(jié)束了活字印刷,轉(zhuǎn)用電子照排技術(shù)。而中國,直到20世紀70年代,仍然“以火熔鉛,以鉛鑄字,以鉛字排版,以版印刷”,一來容易造成環(huán)境污染;二來效率低下,常常把新書拖成舊書,嚴重的時候能拖上兩三年。如果漢字精密照排成功了呢?那中國印刷業(yè)就將迎頭趕上時代的潮流!
那個春天,“批林批孔”還沒結(jié)束,王選卻走出家門去查外文資料。從北京大學到位于和平街北口的中國科學技術(shù)情報研究所,著實有些路程,他每周都會往返三四次,一次半天。事情是自己找來的,自然沒什么經(jīng)費給他報銷,王選也開始精打細算起來:從北大到情報所,車費是2角5分,少坐一站地就可以省5分錢,于是他每次都提前一站下車;復印資料太貴,如果字數(shù)不多就手抄。
一連幾個月,王選都在參詳外文資料。日本流行的是光學機械式二代照排機,通過機械方式選字,體積大,功能差;歐美流行的是陰極射線管式三代照排機,所用的陰極射線管是超高分辨率的,比黑白電視機分辨率高20倍,生產(chǎn)難度極大,對底片靈敏度要求也很高,國產(chǎn)底片不易過關(guān);英國正在研制激光照排四代機,但尚未形成商品。
國內(nèi)已有5家漢字照排系統(tǒng)研制單位,兩家選擇了二代機的方案,三家選擇了三代機方案。再進一步分析,王選發(fā)現(xiàn),數(shù)字存貯方式將會成為未來的主流,二代機的機械選字法根本沒前途。那么,問題來了。數(shù)字式存貯實際上是把字形變成由許多小點組成的點陣。道理淺顯,但漢字不只有宋體、楷體、黑體等多種字體,還有10多種大大小小的字號。為了保證印刷質(zhì)量,五號字大小的正文小字就需要100×100以上的點組成,排標題的大號字則需要多達1000×1000以上的點。英文只有26個字母,所以存儲量問題并不尖銳,而漢字字數(shù)繁多,是西文的數(shù)百倍,全部用點陣存儲,則需要用上千億的字節(jié)(B),存儲量極大。當時能讓王選使用的國產(chǎn)DJS-130計算機的磁心存儲器,最大容量只有64kB,磁盤也還沒有配備,只有一個512kB的磁鼓和一條磁帶,要存下如此龐大的漢字信息,是完全不可能的事。
學計算數(shù)學出身的王選經(jīng)過反復研究,發(fā)明了“用輪廓加參數(shù)描述漢字字形的信息壓縮技術(shù)”,對橫、豎、折等規(guī)則筆段,用描述筆畫輪廓的特征參數(shù)(如橫的起點、長度、寬度和肩等)來表示;對于撇、捺、點等不規(guī)則筆段,用折線輪廓表示,后來又改為曲線描述。這一方法不但使信息量大大減少,同時能保證變倍后的文字質(zhì)量,使一套字模能產(chǎn)生各種大小的字號。這種信息表示方法使10余種字體漢字字形信息的存儲量只有數(shù)兆,總體壓縮達500~1000倍,甚至更多,從而解決了將龐大的漢字信息存儲進計算機這一難題。
為了確保每個字的質(zhì)量,王選付出了超出常人的艱辛。圖為王選分析字模數(shù)據(jù)的手跡,以此查找字模輸出錯誤的原因,辨別是字模制作錯誤,還是生成器問題。
解決了數(shù)字化存儲后,用什么輸出設(shè)備,將還原后的漢字字形信息高速、高質(zhì)量地輸出,是橫亙在王選面前的又一個難題。1976年,王選結(jié)合我國國情,做出了一個大膽決策,跨過國際流行的二代機和三代機,直接研制世界上尚無商品的第四代激光照排系統(tǒng),選擇了技術(shù)上的跨越。為此,王選設(shè)計成功適合硬件實現(xiàn)的輪廓信息高速復原字形的算法,并編寫微程序?qū)崿F(xiàn),使1979年時還原速度達到250字/秒,最終達到710字/秒。同時,王選設(shè)計并實現(xiàn)了逐段復原字形點陣的方法,以適應(yīng)激光照排機不可等待的要求,從而使字形壓縮信息快速復原算法得以實現(xiàn)。在他的設(shè)計下,字形的大小可縮放自如,又不會影響敏感部分的質(zhì)量,換句話說,可以實現(xiàn)字形變倍和變形時的高度保真。
這個想法比西方早了10年。正是這個時間差,當時國內(nèi)幾乎無人對王選抱有希望,即使他將模擬出的“義”字擺上桌面,即使他在1976年底寫出那份完備的“748工程漢字精密照排系統(tǒng)方案說明”,也仍然被認為是脫離實際的“數(shù)字游戲”。然而王選始終堅持自己的研究,終于得到設(shè)在電子部的“748”辦公室的肯定,并以電子部的名義正式將精密照牌任務(wù)下達給北大。1977年9月,以原“748”工程會戰(zhàn)組為基本成員的北京大學“漢字信息處理技術(shù)研究室”正式成立。1979年,激光照排原理性樣機成功輸出了第一張八開報紙樣張。1980年,第一本用國產(chǎn)激光照排系統(tǒng)排出的樣書——《伍毫之劍》誕生。到此時,漢字激光照排系統(tǒng)的主體工程的硬件和軟件部分均調(diào)試成功?!段楹乐畡Α窙]有動用一個鉛字,那個鉛與火的印刷時代正在隱去。