基于嵌入式Linux的B超圖像打印的實現(xiàn)
引言
B模式掃描超聲診斷儀(簡稱B超)是一種醫(yī)學影像設備,其掃描結果是一幅多灰度級(通常有256級以上)的圖像。 B超圖像作為重要的診斷依據,常需輸出其硬拷貝,因此任何B超儀都需配備圖像打印輸出接口。此類接口形式多樣,適合于不同的圖像打印設備。
近年來由于普及的需要,小型B超越來越多地出現(xiàn)在市場上。這種設備的特點是體積小,售價低,但是功能比較單一,常用于空間限制或者對成本比較敏感的場合。目前多數小型B超基于8位微處理器,限于其處理器的有限處理能力,只配備標準視頻(Video)接口作為其圖像輸出通道,因此只能使用視頻打印機(Video Printer)作為圖像輸出設備。這種配置帶來若干缺點,首先視頻打印機通常價格昂貴而且必須使用專用打印紙,打印成本較高,這與小型B超的低成本訴求相矛盾;其次數字形式的圖像信號必須經過一次D/A轉換才能變換成模擬的[1]視頻信號,這不僅增加了電路的復雜性而且容易引起圖像質量下降。也有一些小型B超儀基于個人計算機(Personal Computer, PC)和Windows平臺,在這一平臺上使用普通的噴墨或者激光打印機輸出超聲圖像,上述問題得以解決[1][2]。但是這一平臺價格高,體積和功耗都較大,而且穩(wěn)定性不夠好,對于小型B超并不是一個理想的選擇。
對于小型B超而言,比較理想的方案是在嵌入式平臺上實現(xiàn)普通噴墨或者激光打印機圖像輸出。近年出現(xiàn)的32位[3]及64位嵌入式微處理器集成度高,處理速度快,接口豐富,為這一方案的實現(xiàn)提供了可能。由于32位和64位嵌入式處理器適合使用Linux和Windows CE等操作系統(tǒng),因此相對8位處理器來說軟件開發(fā)也比較簡單。其中由于Linux是一種開源和免費的系統(tǒng),因此所受到的支持特別多,資源很豐富,尤其適合于本文所涉及的應用對象。
本文實現(xiàn)了一種基于32位嵌入式微處理器ARM9200的B超圖像打印方案,使用嵌入式Linux作為其操作系統(tǒng),在HP DeskJet和Epson Stylus Photo系列噴墨打印機上成功打印出256灰度級的B超圖像。
1、Linux下的打印方案
基于PC的Linux已經有了多種相當完善的打印方案,不僅可以在多種系列的普通噴墨或激光打印機上輸出照片質量的彩色和黑白圖像,而且支持多打印任務處理和多打印機控制。圖1是廣泛使用的基于PC Linux的打印方案的一個例子,在這個方案中,CUPS(Common UNIX Printing System)[4]是其核心,多任務管理由CUPS中的“打印管理”模塊擔任,打印格式轉換則由其濾波器(Filter)[5]系統(tǒng)完成。CUPS將Linux傳送過來的各種格式的文檔通過適當的濾波器轉換成PS (PostScript)語言 [6]代碼,這一代碼可以通過Backend直接輸出至支持PS
圖1 Linux下的打印方案
語言的打印機,也可以再通過調用GhostScript程序轉換成非PS語言打印機所使用的各種頁面描述語言(Page Description Language, PDL)[7], 然后經Backend輸出。特別要注意的是除了這兩種Filters,CUPS還具有不經過GhostScript程序而將圖像文件(image)直接轉換成非PS打印語言的Filter。由于歷史的原因,基于Linux的幾乎所有打印方案都支持PS語言,PS打印機接收到這種文件后,利用其內嵌的光柵圖像處理器RIP(Raster Image Processor)[8]將PS描述轉換成指令驅動打印機工作。由于版權費的問題,近年來支持非PS語言的打印機大量出現(xiàn),而且漸漸成為普通噴墨和激光打印機的主流。這些非PS語言有HP公司的PCL(Print Control Language)[9],Epson公司的ESC/P[10]等。GhostScript[6]是一種軟件RIP,用于將PS文件轉換成非PS設備支持的PDL格式。Foomatic是用戶統(tǒng)一界面,用戶通過它來配置打印機參數與驅動,只需選擇打印機型號而無需關心配置的具體過程。
這是一個完備的方案,功能強大,操作簡便,支持的打印機豐富,完全滿足B超圖像輸出的要求。但由于嵌入式平臺資源有限,難以支持這樣一個完備的系統(tǒng),所以我們根據需要對其進行適當剪裁。
2、基于嵌入式Linux的小型B超儀的打印方案和實現(xiàn)
本文所關心的小型B超儀的硬件平臺是一個32位的嵌入式微處理器,操作系統(tǒng)采用嵌入式Linux, 在這個平臺上要完成的工作有超聲圖像的傳送,顯示,打印,人機界面,整機控制,還有非易失性存貯,如CF卡(Compact Flash Card)、SD卡(Secure Digital Memory Card) 存貯等。如圖2所示,打印控制只是其中的一個功能。打印機輸出的對象是256256像素,256灰度級的黑白圖像。為了重現(xiàn)這些灰度級,圖像的每個像素(pixel)需要由1616個墨點(dot)來表達,因此輸出圖像的橫向和縱向的墨點數將是25616=4096dots。如果輸出圖像的尺寸為10cm10cm(3.94”3.94”),可以算出打印機的分辨率需要達到4096/3.94=1040dpi(dots per inch)。為此,我們選用分辨率為1200dpi的HP DeskJet和1440dpi Epson Photo系列噴墨打印機,這兩個系列的打印機使用USB接口,分別支持PCL語言和ESC/P語言。它們性能優(yōu)良,都可以輸出照片質量的圖像, 而且便宜實用,有A4幅面的便攜式型號可供選用,非常適合小型B超。
圖2 基于嵌入式Linux的小型B超儀控制系統(tǒng)
從圖1可知,利用CUPS把圖像文件轉換成所選用打印機支持的頁面描述語言有三條轉換路徑,一條是通過ImagetoPS, PStoRaster和RastertoHP(或RastertoEpson)三個過濾器;第二條是通過ImagetoRaster和RastertoHP(或RastertoEpson)兩個過濾器;第三條是先通過Imagetops過濾器把圖像文件轉換成PS文件,然后再調用GhostScript程序把PS文件轉換成PCL或ESC/P文件。在這三條路徑中,第一條和第三條都先把圖像文件轉換成PS格式,然后再作進一步的變換,體現(xiàn)了Linux的傳統(tǒng)要求,但是第一條路徑用到了三個過濾器,第三條路徑需要調用一個龐大的GhostScript程序。相比之下第二條路徑最為簡捷而節(jié)省資源,所以本文選用這一條路徑,Backend過濾器選用USB以配合所選打印機的接口。圖1中的虛線表示了本文選用的實現(xiàn)路徑,而其中的灰色框代表了為本系統(tǒng)用到的過濾器。
由于B超的打印任務單一,通常并沒有多任務的要求,而且也不可能需要多臺打印機同時工作,所以本文中舍棄了Foomatic和CUPS中的管理模塊,將打印管理納入整機控制中。整機控制的人機界面采用MiniGUI[11],打印控制屬于其中的一個功能控件,用來進行打印機和輸出文件選擇以及啟停控制。其程序流程圖如圖3所示:
圖3 本系統(tǒng)程序流程
經過裁減,在編譯代碼的過程中譯出CUPS過濾器系統(tǒng)中的ImagetoRaster、RastertoHP和RastertoEpson以及Backend中的USB傳輸的可執(zhí)行代碼。在編譯的過程可以發(fā)現(xiàn),將整個CUPS,GhostScript和Foomatic源代碼編譯完成后,需占用的空間有30M之多,而按照本文的方案經裁減編譯后,可執(zhí)行代碼總共占用不到600k字節(jié),這就大大地節(jié)省了系統(tǒng)的開支。編譯后的代碼移植到本文所使用的控制器平臺后程序運行正常,我們試驗了HP DeskJet 450、Epson Stylus Photo RX510等型號的打印機,圖像打印效果良好。不僅可以打印本文的B超系統(tǒng)采集的B超圖像,而且可以打印載入到本系統(tǒng)中的許多格式的圖像,如bmp、jpeg、png格式等。
3、討論
本文詳細地分析了典型的基于PC的Linux下的完備打印方案,并針對本文的具體應用,對其進行適當裁減,實現(xiàn)了嵌入式 Linux下的B超圖像的圖像打印,有效地解決了小型B超儀使用視頻打印機的高成本耗費問題。同時,該方案不僅僅適用于超聲設備中,也適合應用于各種基于嵌入式Linux的移動設備。
本文作者創(chuàng)新點:目前多數小型B超基于8位微處理器,限于其有限的處理能力,使得控制系統(tǒng)不夠靈活,超聲圖像的打印輸出也只能通過視頻打印機。本文采用基于32位處理器的嵌入式Linux系統(tǒng)作為小型B超儀的中央控制系統(tǒng),顯著提高了小型B超儀器的性能,并實現(xiàn)了在該平臺上使用普通打印機的醫(yī)學B超圖像高質量打印,解決了必須使用視頻打印機的高成本問題。
參考文獻:
[1] 孫應娥,符影杰,王剛,江峰. 基于PC機的線陣B超診斷系統(tǒng)的研究與設計[J]. 電子工程師 , 2002,(10) .
[2] 鄭政,計建軍,李穗,等.一種新型眼科超聲生物顯微鏡[J].上海理工大學學報,2005,(06).
[3] 江俊輝.基于ARM的嵌入式系統(tǒng)硬件設計.微計算機信息[J].2005,7-2:120-122
[4] Michael Sweet. An Overview of the Common UNIX Printing System,Easy Software Products. http://www.cups.org/documentation.php
[5] Kurt Pfeifle.Dissecting The CUPS Filtering System: A Network Postscript RIP For non-PS Printers,Workshop at Linux-Kongress 2002 in Cologne, Germany
[6] 張軍,杜鵬.PostScript 技術研究與應用,電子技術[J],2003,(01)
[7] GDI方式與頁面描述語言的比較[J]. 微電腦世界 , 2002,(06)
[8] 張占超. RIP是如何工作的[J]. 電子出版 , 2002,(03)
[9] 打印機語言PCL與PostScript的比較[J]. 微電腦世界 , 2001,(24) .
[10] 朱炬. 用ESC/P指令控制EPSON噴墨打印機[J]. 電子工程師 , 2006,(07)
[11] 章曉燕, 馬琪. 嵌入式Linux系統(tǒng)的GUI―MiniGUI[J]. 計算機與現(xiàn)代化 , 2005,(01)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論