PostScript 是一個描述一個或多個頁面內容的語言,要真正使用此說明將之列印到紙上或製作成印版,需要一個程式來解譯(或呈像計算,也有翻譯成光柵化,renders)這些資料,把它轉換成印表機、輸出機或 CtP 系統可以輸出到媒體的東西,這個解譯由一個稱為 RIP(Raster Image Processor,光柵圖像處理器)或是 Renderer(呈像計算器)的系統來完成。
如果市場上的每一個應用程式都使用自己的方式描述頁面的內容的樣子,那就必須為每個應用程式購買各自的 RIP(QuarkXPress 的 RIP、Illustrator 的 RIP、CorelDraw 的 RIP、...);為了避免這個問題需要將輸入的資料編碼成一種標準化的頁描述語言 (Page Description Language, PDL),業界有許多 PDLs,最常見的是:
本文以下的討論集中於 PostScript RIPs。
硬體式與軟體式 RIPs
本質上,RIP 是一個在某種電腦上運行的軟體程式,二十年前,所有的 RIPs 都是在專屬的硬體上執行,也就是專用設計來只執行 RIP 軟體的電腦,可能根本沒有鍵盤、螢幕或滑鼠,這樣的 RIPs 稱為硬體式 RIPs,現在在雷射印表機何其他較便宜的設備仍然可以找到這類 RIPs,這些內建的 RIPs 也稱為 PostScript 控制器。
現在很多 RIPs 就像任何其他應用程式一樣運行於通用的 PC 或 Mac 電腦上,這些 RIPs 被稱為軟體式 RIPs,它們仍可能包括特殊的硬體,譬如一張連接到輸出設備的介面卡;有時為了防止盜版,軟體式 RIPs 往往包括一個像 Dongle 的保護鎖。
Adobe 和不那麼的 Adobe 的 PostScript RIPs
因為 PostScript 是由 Adobe 所開發,他們自然是創造 PostScript RIPs 的最重要公司,這些 RIPs 在 OEM 市場出售:Adobe 公司創造RIP的核心代碼(即現今所謂的 CPSI 或最新一代的 APPE)然後出售給任何尋找 PostScript 解決方案的公司;輸出機製造商購買此代碼並新增與他們的輸出機的硬體介面,和控制軟體之額外的新增功能。
當然,Adobe 是不是唯一製造 RIPs 軟體的公司,其他公司以跟隨潮流製作所謂的 PostScript 克隆(Clone,相容物),這些 RIPs 都是符合了 Adobe 的 PostScript 標準,其中最重要的是由 Global Graphics 所製做,他們的 RIP 稱為 Harlequin,他們也銷售另一種 RIP,稱為 Jaws RIP;Ghostscript 是 Aladdin 推出的一個免費的 PostScript 解譯器,其商業版本用於像 BESTColor RIP 的產品。
以輸出歸類 RIPs
另一種歸類 RIPs 的方式是檢視其輸出資料:
輸入
一般來說每個 RIP 接收資料(以 PostScript 或 PDF 編碼的頁面)、計算處理他們、然後發送輸出資料到他們的目的地,完成這些作業的 RIP 軟體是相當複雜而龐大的系統;RIP能通過各種方式接收資料,首先檢視這些資料是如何被產生製做出來:
一旦 PostScript 的印印檔案產生後,將被傳送到選定的媒體或設備,大多數 RIPs 支援許多不同的輸入通道:
這些都是最常見的輸入通道,也有其他的可能通道,PostScript 3 RIPs 可以支援一個稱為 Web Ready Printing 的系統,它允許從網際網路列印到 RIP 內,像雷射印表機模較小的裝置可能提供 USB 連接。
一般來說,傳送資料到 RIP 的方法越多,則更容易被整合入現有(和未來)的工作流程內,靈活的輸入和輸出的渠道與 RIP 的計算效能同等重要。
一但 RIP 接收到 PostScript 檔案或 PDF 檔案後,它開始計算處理該檔案。
事實上,以下的這段說明是不完全正確的:對於 PostScript 資料,RIP 不一定需要整個檔案才能開始處理,只要第一頁資料抵達完成,RIP 就可以開始消化計算該頁面;對於 PDF 檔案,這是不正確的,因為 PDF 檔案的結構,RIP 需要能擷取整個文件後,才可以開始處理它。
計算處理 (Processing)
Adobe RIP 將首先翻譯 PostScript 頁面的內容到一個稱為 display list 的中間格式,display list 包含了更基本的機器等級的頁面說明,因此,display list 內不是用毫米 (millimeters) 或點 (points) 為單位,所有的物件都是以設備像素 (device pixels) 來定位。
所有這些物件已經不再是 TIFF 檔案或 EPS 或字體:RIP 也處理頁面內的所有資料,如有必要時,轉換它們到一個中間的格式並將之儲存到一個所謂的 source list,舉字體作一個例子:如果在頁面內用了 20 點 Avant Garde,RIP 將擷取該字體的外框資料(Mac 用戶稱之為 printer font),計算每一字元根據其設定的大小和解析度要輸出的資料,並將這些點陣字元存放於字體緩衝區內 (font cache),在 PostScript level 1,這些 font cache 會被永久地儲存在磁盤上,經過數天或數星期後,他們佔據過多空間,RIP 會缺乏空間以儲存其他資料,這將導致各種的 PostScript 錯誤,如 limitcheck 或 VMerror,用戶需要以手動方式刪除 fontcache 以清除這些臨時資料,Adobe 在 PostScript level 2 修復這個問題,它會動態清理 font cache。(很多早期輸出中心的不傳之密就是 delete cache !)
RIP 試圖盡量將 display list 和 source list 保持在主記憶體內,如果他們成長過大時,RIP 會將這些資料存入磁盤上的一個 swapfile 內,包含大量的掃描圖像檔案會產生巨大的 source lists,包含複雜的向量繪圖(Illustrator 或其他程式)的檔案往往會產生巨大的 display lists,當然,如果 RIP 開始使用一個緩慢的硬盤,而不是超快速記憶體時,RIP 的計算速度將急速下降,這就是為什麼 RIPs 的運行系統都建議使用較多記憶體的原因。
一旦 display list 完成後,RIP 將開始呈像計算 (rasterize) 其內容並發送此點陣圖到輸出設備,有些製造商在這個處理程序中添加一個額外的步驟,轉換 display list 到他們自己的中間格式,例如 Scitex 使用的 CT/LW 作為內部格式,和在他們自己的輸出機加入額外的呈像控制板 (rasterboards),以在最後一刻執行光柵化動作。
有一種普遍的趨勢,讓 RIP 除了處理上面所討論的事務外,還處理額外的任務,例如漲邊處理;有些製造商在檔案的解譯與呈像計算之間增加一個拼版 (impositioning) 軟體。
輸出 (Output)
呈像計算過程可能會非常耗時,並產生巨大的檔案要被傳送到輸出設備,某些 RIPs 會分割這些資料成唯一些小區塊,然後再一塊一塊地傳送給輸出機,其他RIPs將整個點陣圖保存到 RAM 或磁盤,然後再將這些資料傳送到輸出設備;這樣一個中間儲存區稱為 frame buffer,所有的雷射印表機都以 RAM 來儲存這樣的緩衝區,這解釋了為何複雜的頁面在有限記憶體的印表機可能產生 PostScript 錯誤:RAM 不足夠來儲存中間資料和 frame buffer。
選擇是使用以區塊輸出或是 frame buffer 的決定因素是連接的設備與工作流程的客戶。
RIP 與輸出引擎之間的實體連接也很重要,市面上有各種各樣的解決方案。