專利名稱:用于優化半色調打印機性能的系統和方法
技術領域:
本發明一般涉及計算機圖形,并且尤其涉及再現圖形對象。本發明涉及一種用于再現圖形對象的方法和設備。本發明還涉及一種包括計算機可讀介質的計算機程序產品,該計算機可讀介質具有在其中記錄的用于再現圖象對象的計算機程序。
背景技術:
許多常規的打印系統,諸如那些基于噴墨式技術的打印系統,其通過在頁面上形成極小的墨點來打印一幅圖象。這些常規打印系統中的大多數未應用現有技術已知的連續色調的打印機。也就是說,由這些常規打印系統中的某一個所打印的形成圖象的點,完全存在或者完全不存在。為了獲得寬范圍色彩,這些打印機使用常規的混色或者半色調方法,其用兩種或更多可用色彩的點模型來逼近一種期望色彩。
打印機來再現頁面的一種已知方法,包括如下步驟在連接于該打印機上的一計算機存儲器內配置的一幀緩存器當中,產生一頁面圖象;并接著在對于該圖象的每一象素而言已完全產生圖象之后,在該圖象上執行半色調操作。為了接著打印該圖象,需要計算表示被打印頁面圖象的點陣裝置(dot arrangement)。如果對于輸出圖象上的每一象素而言,都必須執行該計算時,那么這種計算是一個計算量相當大的過程。如果打印機裝置具有高輸出分辨率時,則這個問題更加惡化。
在打印機上再現頁面的另一種已知方法,意圖通過在該圖形對象被再現到緩存器中之前,在圖象的每個圖形對象上執行半色調處理來減少存儲器的使用。可是,這種方法遭遇兩個主要缺點。第一,圖形對象可能重疊,在不會被打印的圖形對象的半色調區域中,需要執行大量的工作。第二,如果圖形對象并非完全不透明(即,具有一定透明度)和/或利用邏輯光柵操作進行再現,則在一個頁面上的透明對象下面的圖形對象數據會受到破壞,在輸出圖象中產生錯誤結果。
因此,無疑需要存在一種改良再現方法,在再現不透明和重疊對象時,該方法提供了在速度和存儲器使用方面的改善。
發明內容
本發明的一個目的是大體上克服或者至少改善現有設備的一個或多個缺點。
根據本發明的一個方面,提供一種創建圖象的方法,所述圖象通過基于掃描線再現多個圖形對象來形成,這里,每個掃描線包括至少一個象素序列,所述方法包括如下步驟(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最低端圖形對象的順序進行排序;和(II)對于每個所述圖象的所述掃描線以及對于所述掃描線的每個象素序列(II)(i)通過所述陣列來確定作用于所述象素序列的對象;和(II)(ii)合成與一個或多個所述作用對象相關的數據,并且把合成數據進行半色調處理以便產生所述象素序列。
根據本發明的另一方面,這里提供一種用于創建圖象的設備,通過基于掃描線再現多個圖形對象來形成所述圖象,在此每個掃描線包括至少一個象素序列,所述設備包括陣列形成裝置,用于形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;通過裝置,用于通過所述陣列來確定作用于掃描線象素序列的對象;和合成裝置,用于合成與一個或多個所述作用對象相關的數據,并且把該合成數據進行半色調處理以便產生所述象素序列。
根據本發明的另一方面,提供了一種用于創建圖象的計算機程序,通過基于掃描線再現多個圖形對象來形成所述圖象,其中,每個掃描線包括象素的至少一個運行,所述程序包括用于執行下列步驟的代碼(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;和(II)對于所述圖象的每個掃描線以及對于所述掃描線象素的每個運行(II)(i)通過所述陣列來確定作用于所述象素序列的對象;和(II)(ii)合成與一個或多個所述作用對象相關的數據,并且把合成數據進行半色調處理以便產生所述象素序列。
根據本發明的另一方面,提供了一種計算機可讀介質,具有在其上面記錄的程序,在此,該程序被配置用于創建一個圖象,通過基于掃描線再現多個圖形對象來形成所述圖象,其中每個掃描線包括象素的至少一個運行,所述程序包括用于執行下列步驟的代碼(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;和(II)對于所述圖象的每個掃描線以及對于所述掃描線象素的每個運行(II)(i)通過所述陣列來確定作用于所述象素序列的對象;和(II)(ii)合成與一個或多個所述作用對象相關的數據并且把合成數據進行半色調處理以便產生所述象素序列。本發明的其它方面也被公開。
現在將參照附圖描述本發明的一個或多個實施例,其中圖1是一個通用計算機的示意框圖,在其上可以實施所描述的裝置(arragement);圖2示出了一個再現圖象的方法的縱覽框圖;圖3示出了對圖2的圖象產生的象素序列;
圖4示出了根據所描述裝置(arragement)產生的圖2的圖象;和圖5A和5B示出了用于打印的再現圖形對象的方法流程圖。
具體實施例方式
這里,在一個或多個附圖當中給步驟和/或特征設置標記,其中這些步驟和/或特征具有相同的標記數字,為了說明起見,這些步驟和/或特征具有相同的功能或操作,除非出現相反意圖。
下面參照圖5A和圖5B描述再現圖形對象的一種方法500。方法500的原理具備圖形對象再現的一般適用性。然而,為了容易解釋,參考在頁面上打印的圖形對象的再現,來描述該方法500的步驟。這并非意圖讓本發明限制為所描述的裝置(arrangement)。例如,方法500可以應用于在液晶顯示器或其它顯示裝置上顯示的圖形對象的再現,其具備了包含所顯示圖象的點完全存在或者完全不存在的特性。這樣的顯示裝置經常由具有極其受約束的記憶力及性能的嵌入式計算系統來驅動。
方法500最好利用通用計算機系統100來實施,例如如圖1所示,其中圖2到5B的處理可以用軟件實現,例如在計算機系統100內執行的一個應用程序。特別是,下文所述方法500的步驟由該計算機執行的軟件中的指令來完成。這些指令可以形成為一個或多個代碼模塊,每一個都用來執行一個或多個特定的任務。該軟件還可以分成兩個獨立的部分,其中第一部分執行方法500,而第二部分管理第一部分與用戶之間的用戶接口。該軟件可以存儲在諸如包括下文所述存儲裝置在內的計算機可讀介質當中。該軟件通過計算機可讀介質裝入到計算機中,并且接著由計算機執行。帶有這種軟件或記錄于其上的計算機程序的計算機可讀介質,是一種計算機程序產品。在計算機中使用此計算機程序產品,更適合實現用于執行此處所述設備的有利設備。
計算機系統100包括計算機模塊101、諸如鍵盤102和鼠標103之類的輸入裝置、包括打印機115和顯示裝置114的輸出裝置。該計算機模塊101使用調制解調器(Modem)收發信機裝置116與通信網絡120(例如經由電話線121或其它可用介質可建立連接的通信網絡)進行通信。可以使用該調制解調器116來獲得對因特網以及諸如局域網(LAN)和廣域網(WAN)之類的其它網絡系統的訪問。
該計算機模塊101通常包括至少一個處理器單元105,諸如由半導體隨機訪問存儲器(RAM)和只讀存儲器(ROM)形成的存儲器單元106,包含視頻接口107的輸入/輸出(I/o)接口,以及鍵盤102、鼠標103和可選游戲桿(未示出)的I/o接口113,以及調制解調器116的接口108。提供一存儲裝置109,而且通常包括硬盤驅動器110和軟盤驅動器111。也可以使用磁帶驅動器(未示出)。通常提供CD-ROM驅動器112作為一種非易失數據源。該計算機模塊101的組件105至113,通常經由互連總線104進行通信,而在某種意義上,這將產生本領域技術人員已知的一種計算機系統100的常規操作方法。在其上可以實施所述裝置(arrangement)的計算機實例包括IBM-PC(IBM個人計算機)及兼容機,Sun公司的工作站(Sun Sparcstation)或由此演化出的類似的計算機系統。
通常,該應用程序駐留于硬盤驅動器110上,并且在其執行過程中由處理器105讀出和控制。從網絡120當中讀取的程序及所有數據的中間存儲,都可以利用半導體存儲器106來實現,也可能與硬盤驅動器110協力共同實現。在某種情況下,可以給用戶提供在CD-ROM或軟盤上編碼的應用程序,并經由相應驅動器112或111讀出,或者作為選擇,可由用戶經由調制解調器裝置116從網絡120當中讀出。進一步來講,軟件還可以通過其它計算機可讀介質裝入到計算機系統100中。在這里所用的術語“計算機可讀介質”指的是,參與給計算機系統100提供指令和/或數據以用來執行和/或處理的任何存儲器或傳輸介質。存儲介質的實例包括軟盤、磁帶、CD-ROM、硬盤驅動器、ROM或集成電路、磁光盤,或者諸如PCMCIA卡之類的計算機可讀卡,而不論這些裝置是在計算機模塊101內部或是外部。傳輸媒體的實例包括無線或紅外發射信道,還有到另一計算機或網絡裝置的網絡連接,以及包含有電子郵件傳輸和記錄于網站等上面的信息的互聯網或內部網。
方法500的步驟使半色調處理與在計算機系統100上執行的一個現有主機再現系統相結合。在方法500中,將固定色彩的區域轉換成一種平鋪式表示,這可用于為不論多大的圖象的任何區域表示半色調色彩。因此,方法500對寬區域輸出頁面而言,提高了主機再現系統的性能。進一步來講,在方法500中,可按照要求將位象數據轉換成相應的半色調表示,因此在相應圖象的再現期間節省了相當大的存儲容量。
當再現系統從一個邊緣交叉到下一邊緣產生象素數據運行時,在一掃描線的基礎上執行該方法500的步驟,以及按照要求來執行該方法500的步驟。在該方法500中,利用表示該圖象的圖形對象的顯示列表或陣列對該圖象進行再現,此處,在用以打印于頁面上而被輸出之前,將該對象轉換成半色調表示。優選地,在圖象輸出之前在圖象對象上執行混色。可替代地,對本領域技術人員來說已知的誤差漫射、二值化或任何其它半色調技術可以在圖象對象上來執行。按照這種方式下的輸出產生,縮減了在對象半色調區域當中通常所需做的工作,同時不需要使用幀緩存器。如果需要的話,方法500還會在圖形對象上執行色彩轉換。
使用方法500來再現的圖形對象,比如可以定義單調色或混合色區域、位象數據或平鋪圖象數據。在方法500中,可以為不同對象類型(例如文本對象,圖形對象,圖象對象)預先計算出半色調數據,并且該半色調數據可以與將用于再現的表示圖形對象的原始輸入數據一起被儲存。如上所述,半色調數據可以基于本領域技術人員已知的任何混色技術。可替代地,半色調數據可以基于誤差漫射、二值化或本領域技術人員已知的任何其他半色調技術。在已知圖象對象完全不透明的地方,寧可使用與不透明對象相關的半色調數據來直接再現圖象,也不愿應用透明度作為一個獨立的后再現步驟,正如其在傳統再現方法中經常執行的那樣。與傳統再現方法相比,使用方法500再現單調色對象極大地降低了必須進行色彩轉換及半色調的象素數量。進一步來說,就是只對實際上可見的圖象對象區域進行處理。因此,例如在需要臨時幀存儲的常規打印機再現方法上,減少了再現圖形對象的存儲器數量。
更進一步來講,如果頁面上的一個將要再現的對象是不透明的,則該對象的原始色彩或圖象數據,對于取決于數據的合成操作或邏輯光柵操作可以最高精確度來使用。然而,如果已知一個頁面上的所有圖形對象為完全不透明的,則這種原始輸入數據可以被刪除,結果進一步節省了存儲容量。
再進一步來講,在對象數據(即,顯示列表)列表駐留在存儲器106中并且由打印機115執行根據方法500的對象數據再現的系統當中,方法500可以例如顯著減小相關假脫機操作的文件大小。由于在顯示列表假脫機到打印機115之前,原始連續色調位圖數據被替換為等效的半色調數據,因而實現了假脫機操作的文件尺寸的減小。
參見圖2,在方法500中,包括對象203、204和205的一個圖象200,通過例如在圖象200掃描期間產生邊緣交叉信息進行再現。邊緣交叉信息從圖形對象202的列表中提取,來表示圖象200,在此對列表202進行深度預排序(即,z-排序)。接著,使用該邊緣交叉信息來產生象素序列,這些象素將被輸出到打印機(如打印機115)以用于在頁面210上進行打印。例如,圖3示出了在掃描線301穿過邊緣322、323和324且同時引起象素序列325、326、327和328處的圖象200的一部分。
如上所述,可以利用方法500再現單調色(即,恒定色區域)(如對象203)、再現兩個端點之間內插的色彩(例如對象204)、以及再現位象數據(如位象205)。可還以利用該方法500對遍及所再現區域的重復的或平鋪的位象數據進行再現。尤其是,恒定色區域被轉換成平鋪表示,該平鋪表示接著被應用在那個圖象區域的半色調操作中。
該方法500最好作為一個應用程序來實現,此應用程序駐留在硬盤驅動器110上,并且在其執行過程中由處理器105讀出和控制。方法500從步驟501開始,在此,處理器105檢測將被再現的第一圖形對象。在下一個步驟503,圖形對象被處理器105分解成為定義對象的一組邊緣、對象的優先級信息、對象的光柵操作、以及對象的相應纏撓(winding)規則。該方法500繼續下一個步驟505,在此,定義該對象的邊緣組被添加到存儲器106內的一邊緣數據庫當中。在下一個步驟507,如果該圖象的所有對象已經被處理器105接收,則方法500繼續下一個步驟509。否則,方法500返回到步驟501。
在步驟509,在存儲器106內配置的邊緣數據庫當中所存儲的邊緣,按照y坐標升序、x坐標升序以及優先級升序(即,z排序)進行排序。在下一個步驟511,處理器105為即將被再現的圖象選擇一條掃描線。對于在步驟511所選掃描線上運行的象素,在下一步驟513,激活那些帶有被掃描線穿入的邊緣的對象,同時解除激活那些帶有被掃描線穿出的邊緣的對象。方法500繼續下一個步驟514,在此,如果當前象素序列的最高優先級活動(active)對象是不透明的,則方法500繼續下一個步驟515。否則,方法500進入步驟517。在步驟515,如果最高優先級對象的填充數據已作了半色調處理,那么方法500進入步驟519。否則,方法500進入步驟516,在此,為對象的填充數據產生半色調信息,并且該半色調信息連同該對象的原始填充數據一起被儲存在存儲器106中。方法500繼續下一個步驟519,在此,使用該對象的半色調填充數據來輸出象素序列,用以在打印機(如打印機105)上打印。
在步驟517,當前象素序列的全部可見對象的填充數據被合成在一起,以用來產生用于象素序列的數據。同時還在步驟517,當前象素序列的數據被半色調處理后接著輸出以用于打印。在下一個步驟521,如果對于當前掃描線已經處理了全部象素序列,則方法500繼續下一步驟523。否則,方法500返回到步驟513。在步驟523,如果對于將要再現的圖象已經處理了全部掃描線,則方法500結束。否則,方法500返回到步驟511,在此處理器105將選擇下一條掃描線。
現在將參考圖2至4的實例進一步解釋該方法500。參見圖4,掃描線最好從將要再現的頁面210頂部向下產生。然而,本領域技術人員應該理解,還可以從頁面210的底部產生掃描線。正如在圖4中看到的,對于掃描線401產生象素序列431、450和451而對于掃描線402產生象素序列434、435、436和437。在掃描線401之前的任何掃描線都未與圖形對象203或205中任一個相交叉,因此由掃描線401之前的掃描線產生的象素序列不會引起任何半色調輸出。這對于象素序列431也如此。在掃描線處理期間遇到的第一個非白色圖形對象是單調填充對象203。在方法500中,對象203被轉換成表示對象203一部分的平鋪圖象433,并且從掃描線401起,在單調填充對象203內的全部后續象素序列均使用該平鋪圖象433來產生半色調輸出以直接用于在打印機115上打印。按照這種方式產生象素序列,引起了在速度和效率方面超過常規再現方法的改善,因為平鋪圖象可以由具有少量系統開銷的計算機系統(如計算機系統100)進行再現。
對于掃描線402,象素序列434將為白色,并且象素序列435將利用該平鋪圖象433。在方法500中,為了象素序列436,圖象對象205的一部分被轉換成圖象對象205內所看到的半色調圖象438(即由陰影區域表示)。該半色調圖象438被用于圖象對象205內的全部后續象素序列,假定該圖象對象205在對象203和205之間的重疊區域457(即,由假想線表示的)中完全不透明。與之相反,如果圖象對象205并非完全不透明,則利用單調填充對象203和圖象對象205的原始數據合成重疊區域457。此合成操作的結果接著被半色調處理。然而應當指出的是,只有在重疊區域457內、以及只有當相應合成操作或邏輯光柵操作需要這種操作時,才需要這種合成。
繼續參見圖4的實例,如果預先已知圖形對象203、205或204當中沒有一個需要合成(由于所有對象是不透明的),則在半色調圖象產生之后,該圖象對象203的原始位圖數據可以被舍棄。例如,這樣的操作引起了一個24比特RGB色調圖象的存儲器使用率方面的極大降低。這樣一種RGB圖象的原始數據,每一象素占用三字個節,而在相同分辨率的圖象半色調表示的每一個象素四比特,將兩個象素壓縮到一個字節當中,提供了一個6∶1的改善。
當處理器105從一個邊緣交叉到下一邊緣產生象素數據的運行時,最好執行該方法500的步驟。這產生了超過常規再現方法的好幾個優點。首先,在一個或多個象素序列內只有實際可見的每一圖形對象區域被處理。其次,如果一個對象并非不透明,則該對象的原始填充色或圖象數據,對于取決于該對象的任何合成操作或邏輯光柵操作可以最高精確度來使用。第三,如果已知在將要再現的頁面上沒有透明的圖形對象存在,則在與較低優先級對象相關的數據已經被半色調處理之后,與隱藏對象相關的數據(即,較低優先級對象)可以被舍棄掉,從而為圖象數據產生了相當可觀的存儲容量節省。最后,位象數據可以按需要被轉換成半色調表示,因而節省了相當多的存儲容量。
該方法500也能夠在諸如一個或多個集成電路之類的專用硬件中執行,以實現圖5中的功能或子功能。此類專用硬件可以包括圖形處理器、數字信號處理器,或者一個或多個微處理器以及相關存儲器。
前面所指出的方法包括一個特定的控制流程。這里有該方法的許多其他變形,其在不超出本發明的精神或范圍的情況下可使用不同的控制流程。此外,那些一個或多個方法步驟可以并行執行而非按順序執行。
先前的描述只是本發明的某些實施例,而在不偏離本發明的范圍和精神的情況下,可做出修改和/或變化,這些實施例是說明性的而非限定性的。
權利要求
1.一種用于創建圖象的方法,其中該圖象是通過按掃描線再現多個圖形對象而形成的,且其中每條掃描線包括至少一個象素序列,所述方法包括如下步驟(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;和(II)對于所述圖象的每條掃描線以及對于所述掃描線的每個象素序列(II)(i)通過所述陣列來確定對所述象素序列有貢獻的對象;和(II)(ii)合成與一個或多個所述有貢獻的對象相關的數據,并且把合成數據進行半色調處理以便產生所述象素序列。
2.根據權利要求1的方法,其中,步驟(II)(ii)還包括如下子步驟(II)(ii)(a)確定相應于所述象素序列的一個最頂端作用對象是否是不透明的;和(II)(ii)(b)如果所述最頂端作用對象是不透明的,則把表示所述最頂端作用對象的象素數據進行半色調處理以便產生所述象素序列。
3.根據權利要求1的方法,還包括把所述對象分解成為它們的組份屬性的步驟,它們的組份屬性包括相應對象的至少一個邊緣。
4.根據權利要求4的方法,其中,步驟(II)(i)包括進一步子步驟通過一個另外的陣列來確定定義所述象素序列的對象邊緣。
5.根據權利要求4的方法,還包括取決于所述作用對象的哪一邊緣被一條當前掃描線穿過來確定對象作用的步驟。
6.根據權利要求1的方法,其中,步驟(II)(ii)包括進一步子步驟預先使用半色調數據來產生所述象素序列。
7.一種用于創建圖象的設備,其中該圖象是通過按掃描線再現多個圖形對象來形成所述圖象,且其中在此每條掃描線包括象素的至少一個序列,所述設備包括陣列形成裝置,用于形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;通過裝置,用于通過所述陣列來確定對掃描線的一個象素序列有貢獻的對象;和合成裝置,用于合成與一個或多個所述有貢獻的對象相關的數據,并且把該合成數據進行半色調處理以便產生所述象素序列。
8.如權利要求7所述的設備,其中,所述合成裝置還包括確定裝置,用于確定相應于象素所述運行的一個最頂端作用對象是否是不透明的;和半色調裝置,如果所述最頂端作用對象是不透明的,則用于把表示所述最頂端作用對象的象素數據進行半色調處理以便產生所述象素序列。
9.根據權利要求7的設備,還包括用于把所述對象分解成為它們組份屬性的分解裝置的步驟,它們的組份屬性包括相應對象的至少一個邊緣。
10.根據權利要求7的設備,還包括用于通過一個另外的陣列來確定定義所述象素序列的對象邊緣的裝置。
11.根據權利要求7的設備,還包括取決于所述作用對象的哪一邊緣被一個當前掃描線穿過來確定對象作用的裝置。
12.一種用于創建圖象的計算機程序,通過基于掃描線再現多個圖形對象來形成代碼以用于執行下列圖象,其中每個掃描線包括象素的至少一個運行,所述程序包括用于執行下列步驟的代碼(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序被排序;和(II)對于所述圖象的每個掃描線以及對于所述掃描線象素的每個運行(II)(i)通過所述陣列來確定作用于所述象素序列的對象;和(II)(ii)合成與一個或多個所述作用對象相關的數據并且把合成數據進行半色調處理以便產生所述象素序列。
13.一種計算機可讀介質,具有在那上面記錄的一個程序,在此,程序被配置用于創建一個圖象,通過在一個掃描線的基礎上再現多個圖形對象來形成所述圖象,其中每個掃描線包括象素的至少一個運行,所述程序包括用于執行下列步驟的代碼(I)形成表示所述圖象的所述圖形對象的一個陣列,所述陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序;和(II)對于所述圖象的每個掃描線以及對于所述掃描線象素的每個運行(II)(i)通過所述陣列來確定作用于所述象素序列的對象;和(II)(ii)合成與一個或多個所述作用對象相關的數據并且把合成數據進行半色調處理以便產生所述象素序列。
全文摘要
一種創建圖象的方法(500)被公開。通過在一個掃描線(例如301)的基礎上再現多個圖形對象(例如203,204,205)來形成所述圖象(例如200),在此每個掃描線(301)包括象素(例如325)的至少一個運行。方法(500)形成表示圖象(500)的圖形對象(203,204,205)的一個陣列。該陣列按照從最頂端圖形對象到最底端圖形對象的順序進行排序。對于圖象(200)的每個掃描線(301)以及對于掃描線(301)的每個象素(325)運行,陣列被通過來確定作用于象素(325)運行的對象(203,204,205)。如果所述最頂端作用對象是不透明的,那么把表示所述最頂端作用對象的象素數據進行半色調處理以便產生所述的象素(325)運行。否則,與一個或多個該作用對象相關的數據被合成并且該合成數據被半色調處理以便產生象素(325)運行。
文檔編號G06F3/12GK1447286SQ0310823
公開日2003年10月8日 申請日期2003年3月25日 優先權日2002年3月25日
發明者戴維·C·史密斯, 吉爾斯·帕克特 申請人:佳能株式會社