專利名稱:一種印刷數(shù)據(jù)的處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于印刷技術(shù)領(lǐng)域,尤其涉及ー種印刷數(shù)據(jù)的處理方法及系統(tǒng)。
背景技術(shù):
目前,彩色印刷數(shù)據(jù)處理一般采用單線程或多線程并行處理的方式,單線程的處理方式較為簡單,就是依照設(shè)定順序來處理印刷顔色數(shù)據(jù);而多線程是同時處理同一頁的各個顏色數(shù)據(jù),在每ー頁處理完畢后都要進行一次線程同步,即等待每ー個線程都處理完數(shù)據(jù)后,進行線程同步操作之后,將這ー頁的印刷數(shù)據(jù)輸出,然后各個并行的線程再同時開始處理下ー頁的印刷數(shù)據(jù),如圖I所示假設(shè)當前頁面的印刷顔色數(shù)據(jù)為三種,則處理該當前頁面的顔色數(shù)據(jù)需要三個處理線程,分別假設(shè)為黑色數(shù)據(jù)處理線程、青色數(shù)據(jù)處理線程和黃色數(shù)據(jù)處理線程,由于該當前頁面需要的黒色數(shù)據(jù)較多,則上述黒色數(shù)據(jù)處理線程的處理數(shù)據(jù)相對較多些,或者,各個線程的對其對應(yīng)的顏色數(shù)據(jù)的處理速度存在差異,即各個線程的優(yōu)先級存在層次差別,因此,存在下述情形在青色數(shù)據(jù)處理線程和黃色數(shù)據(jù)處理線程都處理完成時,需要等待黑色數(shù)據(jù)處理線程完成,才能進行三色數(shù)據(jù)同步,完成當前頁面的顔色數(shù)據(jù)的處理,然后輸出到印刷設(shè)備上,執(zhí)行印刷操作。上述傳統(tǒng)的多線程并行處理的方式在線程同步方面存在問題而且擴展也不方便,隨著印刷顔色數(shù)據(jù)的增多,程序需要做較大的改動,而且多線程之間的處理速度差異也不能冗余,印刷數(shù)據(jù)的處理和傳輸都存在瓶頸。
發(fā)明內(nèi)容
本發(fā)明實施例的目的在于提供ー種印刷數(shù)據(jù)的處理方法,g在解決現(xiàn)有技術(shù)提供的印刷數(shù)據(jù)的處理方式為單線程方式或者多線程并行處理的方式,該并行的處理線程之間因處理速度的差異導致印刷數(shù)據(jù)的處理不同步的現(xiàn)象,即已處理完成的線程需要等待沒有處理完成的線程,等該多個并行的線程都處理完,完成同步之后才將當前頁面的印刷數(shù)據(jù)輸出,從而影響印刷數(shù)據(jù)的整體傳輸速度,成為印刷數(shù)據(jù)傳輸?shù)钠款i問題。本發(fā)明實施例是這樣實現(xiàn)的,ー種印刷數(shù)據(jù)的處理方法,所述方法具體包括下述步驟申請N個可循環(huán)存儲使用的緩沖區(qū),所述N個緩沖區(qū)對應(yīng)N+1個處理印刷數(shù)據(jù)的處理線程,所述緩沖區(qū)和處理線程采用流水方式,每兩個處理線程之間通過所述緩沖區(qū)連接通信,所述緩沖區(qū)內(nèi)設(shè)置有若干個存儲單元、入口指針和出口指針,所述出口指針定時對所述入口指針所指向的地址進行檢測,其中,N為整數(shù);控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作,并將處理后印刷數(shù)據(jù)文件通過所述第一緩沖區(qū)的入口指針寫入所述第一緩沖區(qū)的存儲單元;當所述第一緩沖區(qū)的出口指針檢測到所述第一緩沖區(qū)的入口指針所指向的地址、發(fā)生變化時,控制第二處理線程通過所述第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件;控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第二緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第N+1個處理線程;控制所述第N+1個處理線程對印刷數(shù)據(jù)文件進行顏色數(shù)據(jù)處理,并輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。 進ー步地,所述申請N個緩沖區(qū)的步驟之后,所述控制第一處理線程對印刷數(shù)據(jù)文件進行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理的步驟之前,所述方法還包括下述步驟對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顔色數(shù)據(jù)的印刷數(shù)據(jù)文件。進ー步地,所述印刷數(shù)據(jù)文件為單ー的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息。進ー步地,當所述印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,所述控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作的步驟之前還包括下述步驟根據(jù)所述印刷數(shù)據(jù)索引信息,調(diào)用與所述印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù)。本發(fā)明實施例的另一目的在于提供ー種印刷數(shù)據(jù)的處理系統(tǒng),所述系統(tǒng)具體包括緩沖區(qū)申請模塊,用于申請N個可循環(huán)存儲使用的緩沖區(qū),所述N個緩沖區(qū)對應(yīng)N+1個處理印刷數(shù)據(jù)的處理線程,所述緩沖區(qū)和處理線程采用流水方式,每兩個處理線程之間通過所述緩沖區(qū)連接通信,所述緩沖區(qū)內(nèi)設(shè)置有若干個存儲単元、入口指針和出口指針,所述出ロ指針定時對所述入口指針所指向的地址進行檢測,其中,N為整數(shù);第一控制處理模塊,用于控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作;第一寫入操作模塊,用于將處理后印刷數(shù)據(jù)文件通過所述第一緩沖區(qū)的入口指針寫入所述第一緩沖區(qū)的存儲單元;第一讀取模塊,用于當所述第一緩沖區(qū)的出口指針檢測到所述第一緩沖區(qū)的入口指針所指向的地址發(fā)生變化時,控制第二處理線程通過所述第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件;流水控制模塊,用于控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第二緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第N+1個處理線程;第N+1控制處理模塊,用于控制所述第N+1個處理線程對印刷數(shù)據(jù)文件進行顏色數(shù)據(jù)處理;輸出模塊,用于輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。進ー步地,所述系統(tǒng)還包括分類解析模塊,用于對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顏色數(shù)據(jù)的印刷數(shù)據(jù)文件。
進ー步地,所述印刷數(shù)據(jù)文件為單ー的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息。進ー步地,當所述印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,所述系統(tǒng)還包括
調(diào)用模塊,用于根據(jù)所述印刷數(shù)據(jù)索引信息,調(diào)用與所述印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù)。在本發(fā)明實施例中,在每兩個處理線程之間申請一個緩沖區(qū),緩沖區(qū)設(shè)置有存儲単元、入口指針和出口指針,控制第一處理線程對印刷數(shù)據(jù)文件進行顏色處理,并將處理后的印刷數(shù)據(jù)通過第一緩沖區(qū)的入口指針存儲到第一緩沖區(qū)的存儲單元,控制第二處理線程通過第一緩沖區(qū)的出口指針讀取存儲單元中的印刷數(shù)據(jù),同時,控制第二處理線程對讀取到的印刷數(shù)據(jù)執(zhí)行與第一處理線程的相同處理操作,直至第N+1個處理線程,第N+1個處理線程對印刷數(shù)據(jù)進行顔色數(shù)據(jù)處理,并輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備,該流水方式的處理線程解決了并行線程處理的速度不同導致的不同步問題,カロ快了印刷數(shù)據(jù)的處理速度,同時,該流水的線程處理方式也適合大批量、多頁數(shù)的數(shù)據(jù)的傳輸。
圖I是現(xiàn)有技術(shù)提供的印刷數(shù)據(jù)的處理方法的實現(xiàn)示意圖;圖2是本發(fā)明實施例提供的印刷數(shù)據(jù)的處理方法的實現(xiàn)流程圖;圖3是本發(fā)明實施例提供的三個處理線程對印刷數(shù)據(jù)的處理的實現(xiàn)示意圖;圖4是本發(fā)明實施例提供的四個處理線程對印刷數(shù)據(jù)的處理的實現(xiàn)示意圖;圖5是本發(fā)明實施例提供的印刷數(shù)據(jù)的處理系統(tǒng)的結(jié)構(gòu)框圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進ー步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實施例中,在每兩個處理線程之間申請設(shè)置ー個緩沖區(qū),N個緩沖區(qū)對應(yīng)N+1個處理線程,該N+1個處理線程以流水方式通過緩沖區(qū)連接通信,該N+1個處理線程對印刷數(shù)據(jù)文件進行與其對應(yīng)的顔色數(shù)據(jù)處理,通過第N+1個處理線程處理后,輸出符合印刷條件的印刷數(shù)據(jù)。本發(fā)明實施例中,下述實施例給出的印刷數(shù)據(jù)文件包含多種顏色的印刷數(shù)據(jù)包,印刷數(shù)據(jù)即為印刷頁面上的顔色數(shù)據(jù),包括多種顏色,為了實現(xiàn)本發(fā)明,下述給出具體的實施例進行描述圖2示出了本發(fā)明第一實施例提供的印刷數(shù)據(jù)的處理方法的實現(xiàn)流程,其具體的步驟如下所述在步驟SlOl中,申請N個可循環(huán)存儲使用的緩沖區(qū)。其中,該N個緩沖區(qū)(buffer)對應(yīng)N+1個處理印刷數(shù)據(jù)的處理線程,該緩沖區(qū)和處理線程采用流水方式,每兩個處理線程之間通過緩沖區(qū)連接通信,即在每兩個處理線程之間設(shè)置一個緩沖區(qū),該緩沖區(qū)起到連接紐帶、數(shù)據(jù)緩存的作用。上述可循環(huán)使用的緩沖區(qū)是向系統(tǒng)內(nèi)核申請的,其大小可以根據(jù)實際需要進行設(shè)置,該緩沖區(qū)與常規(guī)意義上的緩沖區(qū)(緩存)相同,其內(nèi)分別設(shè)置有若干個存儲単元(假設(shè)為η個)、入口指針和出口指針,其中,每個存儲單元的大小可以根據(jù)需要存儲的印刷數(shù)據(jù)文件的大小進行設(shè)定,出口指針定時對入口指針所指向的地址進行檢測,而且,入口指針每次寫入一個存儲単元(該存儲單元的大小足矣存儲該印刷數(shù)據(jù)文件),同時該入口指針相應(yīng)的執(zhí)行加一操作,即入口指針下移ー個單位,指向下一個地址位,當入口指針指向緩沖區(qū)的底部吋,則重新指向緩沖區(qū)第一個存儲単元,繼續(xù)存儲,對于出ロ指針也類似,其中,入口指針所指向的地址不能超過出口指針所指向的地址,保證存儲単元中的印刷數(shù)據(jù)文件不被覆蓋,在此不再贅述,在該實施例中,N為整數(shù)。在該步驟中,上述緩沖區(qū)的存儲單元的大小可以根據(jù)印刷數(shù)據(jù)文件的大小預先設(shè)置,使其能夠存放印刷數(shù)據(jù)文件即可。在本發(fā)明實施例中,該Ν+1個處理線程的處理速度是不同的,其處理的印刷數(shù)據(jù)量也不同,而申請的可循環(huán)使用的緩沖區(qū)對印刷數(shù)據(jù)文件進行緩存,有效的冗余了各個處 理線程之間的處理速度的差異。在步驟S102中,控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作,并將處理后印刷數(shù)據(jù)文件通過第一緩沖區(qū)的入口指針寫入緩沖區(qū)的存儲單兀。在該實施例中,第一處理線程對印刷數(shù)據(jù)文件進行顏色處理,其處理的是與其對應(yīng)的顏色數(shù)據(jù),可以理解為,印刷數(shù)據(jù)文件包括多種顏色數(shù)據(jù),即多個顏色數(shù)據(jù)包,每ー處理線程處理其對應(yīng)的顔色數(shù)據(jù),并將包含處理完成的印刷數(shù)據(jù)的印刷數(shù)據(jù)文件存儲到第一緩沖區(qū)的存儲單元中,以便供第二處理線程讀取并處理。在步驟S103中,當?shù)谝痪彌_區(qū)的出口指針檢測到第一緩沖區(qū)的入口指針所指向的地址發(fā)生變化時,控制第二處理線程通過第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件。在該步驟中,緩沖區(qū)的出口指針定時對入口指針進行檢測判斷,當檢測到出口指針和入口指針所指向的地址不一致吋,則緩沖區(qū)的出口指針通知其所對應(yīng)的處理線程,該處理線程從該出ロ指針所在的緩沖區(qū)讀取出存儲單元中的數(shù)據(jù),即第二處理線程通過第一緩沖區(qū)的出口指針從第一緩沖區(qū)的存儲單元中讀取經(jīng)過第一處理線程處理后的印刷數(shù)據(jù)文件。該檢測判斷的時間間隔可以設(shè)置,其達到的效果是,當入口指針一旦發(fā)生變化,則出ロ指針即時讀取該入口指針的變化信息。當然,該緩沖區(qū)的出ロ指針的檢測判斷出ロ指針和入口指針所指向的地址一致吋,不做任何處理,繼續(xù)檢測,在此不再贅述。在步驟S104中,控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第二緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第Ν+1個處理線程。在該步驟中,從第二處理線程開始的處理線程,都在做與第一處理線程相同的處理,即從前ー緩沖區(qū)讀取印刷數(shù)據(jù)文件,并對印刷數(shù)據(jù)文件進行相應(yīng)的顏色處理,同時將包含處理后的印刷數(shù)據(jù)的印刷數(shù)據(jù)文件通過下ー緩沖區(qū)的入口指針寫入該緩沖區(qū)的存儲單
J Li ο
當然,上述步驟S102中,第一處理線程不是讀取緩沖區(qū)的印刷數(shù)據(jù)文件,第一處理線程是從系統(tǒng)存儲硬盤或者外接盤讀取數(shù)據(jù),可以理解為從前ー緩沖區(qū)讀取印刷數(shù)據(jù)文件,從第二處理線程開始的處理線程都是讀取前一緩沖區(qū)中存儲的印刷數(shù)據(jù)文件,在此不用以限定本發(fā)明。在步驟S105中,控制第N+1個處理線程對印刷數(shù)據(jù)文件進行相應(yīng)顏色數(shù)據(jù)處理,并輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。在該步驟中,經(jīng)過前面N個處理線程的處理,第N+1個處理線程通過第N個緩沖區(qū)的出口指針從該緩沖區(qū)中讀取印刷數(shù)據(jù)文件,并對印刷數(shù)據(jù)文件執(zhí)行相應(yīng)的顏色處理,并將處理后的印刷數(shù)據(jù)文件一并輸出到印刷設(shè)備,其中,經(jīng)過第N+1個處理線程處理之后的印刷數(shù)據(jù)即為印刷設(shè)備所需的數(shù)據(jù),即經(jīng)過該N+1個處理線程的處理之后,印刷數(shù)據(jù)文件中所包含的數(shù)據(jù)即為印刷設(shè)備所需要的數(shù)據(jù)。在該實施例中,該N+1個處理線程之間處理印刷數(shù)據(jù)的過程是相互獨立的,即當?shù)谝惶幚砭€程處理處理完第一頁面的相對應(yīng)的顔色數(shù)據(jù)時,將處理完成的第一頁面的數(shù)據(jù)存儲到第一緩沖區(qū),供第二處理線程讀取并處理,第一處理線程可以繼續(xù)對下ー頁面進行相應(yīng)的顏色數(shù)據(jù)處理,依次類推,多處理線程之間相互獨立,解決了各個處理線程之間處理速度不同導致的不能同步的問題;進ー步地,當需要印刷的數(shù)據(jù)頁面較多,或者印刷數(shù)據(jù)文件為大批量數(shù)據(jù)時,通過該流水方式的多處理線程,其處理速度的優(yōu)勢尤為明顯。在本發(fā)明實施例中,以第M、M+1處理線程和第M緩沖區(qū)為例進行說明,第M處理線程處理完成的印刷數(shù)據(jù)文件存儲到第M緩沖區(qū)的存儲單元中,該第M緩沖區(qū)的出ロ指針檢測其與入口指針所指向的地址,當兩者不同吋,則第M+1處理線程控制讀取緩沖區(qū)的存儲単元中存儲的印刷數(shù)據(jù)文件;在該第M緩沖區(qū)中可以存儲多個第M處理線程處理完的印刷數(shù)據(jù)文件,只要該入口指針所指向的地址不超過出口指針所指向的地址即可,當要超過時,則暫停存儲,直到第M+1處理線程處理ー個印刷數(shù)據(jù)文件,有空閑存儲單元為止;另外,對于該第M緩沖區(qū)中的多個未處理的印刷數(shù)據(jù)文件,第M+1處理線程按照順序?qū)Υ鎯g元中的印刷數(shù)據(jù)文件進行處理,一次讀取ー個印刷數(shù)據(jù)文件,該第M緩沖區(qū)起到冗余第M處理線程和第M+1處理線程處理速度差異的目的。作為本發(fā)明的一個實施例,在執(zhí)行上述步驟SlOl之前,還可以先執(zhí)行下述步驟對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顔色數(shù)據(jù)的印刷數(shù)據(jù)文件;其中,該印刷數(shù)據(jù)的源文件即為印刷設(shè)備印刷所需要的原始文件,其可以是普通 文檔格式存在,例如word方式,通過對該源文件的分類解析,得到N+1個分類顔色數(shù)據(jù)(也可以理解為以數(shù)據(jù)包的形式存在),其作為ー個印刷數(shù)據(jù)文件存在,該N+1個分類顔色數(shù)據(jù)包對應(yīng)N+1個處理線程,每ー個處理線程對應(yīng)處理ー個分類顏色數(shù)據(jù)包,再加上N個緩沖區(qū),這樣就形成ー個流水式處理鏈,即N+1個處理線程和設(shè)在每兩個處理線程之間的N個緩沖區(qū),每個處理線程處理ー個分類顔色數(shù)據(jù)包,每個緩沖區(qū)緩存前ー處理線程處理之后的印刷數(shù)據(jù)文件,以供下ー處理線程讀取并對應(yīng)處理;在本發(fā)明實施例中,每經(jīng)過ー個處理線程的處理,都將印刷數(shù)據(jù)文件中的相應(yīng)的數(shù)據(jù)包進行替換,替換為已處理的數(shù)據(jù)包,剰余的數(shù)據(jù)包不動,下述有具體的實施例進行說明,在此不再贅述,但不用以限制本發(fā)明。
在該實施例中,其他步驟如上述實施例所述,在此不再贅述,但不用以限制本發(fā)明。在本發(fā)明實施例中,該印刷數(shù)據(jù)文件為單ー的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息,其中,兩者在緩沖區(qū)的存儲單元中存儲的格式一致;其中,申請可循環(huán)使用的緩沖區(qū),根據(jù)存儲的印刷數(shù)據(jù)的大小設(shè)定存儲單元的存儲容量,當印刷數(shù)據(jù)容量較小時,即該印刷數(shù)據(jù)文件為單ー的小容量的印刷數(shù)據(jù),則該印刷數(shù)據(jù)文件可以直接存放到緩沖區(qū)的存儲單元中;當印刷數(shù)據(jù)容量較大時,則可以將該印刷數(shù)據(jù)索引信息以印刷數(shù)據(jù)文件的方式存儲到存儲單元,印刷數(shù)據(jù)本身可以存儲到系統(tǒng)存儲器內(nèi),當需要對該印刷數(shù)據(jù)進行處理時,讀取存儲單元中存儲的印刷數(shù)據(jù)索引信息,調(diào)用印刷數(shù)據(jù),進行相應(yīng)的顏色處理即可,即、當印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,上述步驟S102之前還包括下述步驟根據(jù)印刷數(shù)據(jù)索引信息,調(diào)用與印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù);該調(diào)用印刷數(shù)據(jù)的目的是供各個處理線程進行相應(yīng)的顏色數(shù)據(jù)處理,類似于從緩沖區(qū)的存儲單元中讀取印刷數(shù)據(jù)文件,在此不再贅述,但不用以限制本發(fā)明。作為本發(fā)明的一個實施例,印刷數(shù)據(jù)文件在緩沖區(qū)的存儲單元中的存儲格式,可以采用下述給出的數(shù)據(jù)格式,但也不限于該格式
typedef struct -JobPageProperty {
TCHAR JobFi IeName [MAX—PATH]; //任務(wù)文件名 PS, PDF, PPM 等 TCHAR JobPathFi IeNanie [MAX—PATH]; //任務(wù)文件帶路徑文件名 Int jobID; //任務(wù) ID 號 BOOL IsTestJob; //是否測試樣張int totalPagesOfJob; //任務(wù)總貿(mào)數(shù)
int curPagelndex //當前處理頁號
DWORD coIorMask; //需要解釋的顏色掩碼 bit3=YI; bit2=Y2; bitl= Y3;bit O= Υ4;
DWORD nPixesIPerLine; //頁面寬度,以像素為單位
DWORD nHeight; //頁面高度,以像素為單位
DWORD cbSize; //文件頁面大小
char *plBuf; //第一顏色數(shù)據(jù)buf指針
char *p2Buf; //笫ニ顏色數(shù)據(jù)buf指針
char *p3Buf; //第三顏色數(shù)據(jù)buf指針
char *P4Buf; //第四顏色數(shù)據(jù)buf指針
)JobPageProperty; 其中,上述Y1、Y2、Y3和Y4指示四色;上述僅為本發(fā)明給出的ー個具體事例,以4色數(shù)據(jù)為例進行說明,在此不用以限制本發(fā)明。作為本發(fā)明的具體實施例,上述Ν+1個處理線程用以處理印刷顔色數(shù)據(jù),例如黑色數(shù)據(jù)處理線程、黃色數(shù)據(jù)處理線程等,即每ー個處理線程處理ー種顔色數(shù)據(jù)包,其中,數(shù)值Ν+1通常取值3、4、6或8或其他,下述給出N+l=3和Ν+1 = 4的兩個事例進行說明。對于N+l=3的情形,請參閱圖3 步驟I :預先申請兩個可循環(huán)使用的緩沖區(qū),分別記為第一緩沖區(qū)和第二緩沖區(qū),然后,定義三個處理線程,分別記為黒色數(shù)據(jù)處理線程、黃色數(shù)據(jù)處理線程和青色數(shù)據(jù)處理線程,其中,可以定義黒色數(shù)據(jù)處理線程和黃色數(shù)據(jù)處理線程共同使用第一緩沖區(qū),黃色數(shù)據(jù)處理線程和青色數(shù)據(jù)處理線程共同使用第二緩沖區(qū),另外,可以定義第一緩沖區(qū)的入口指針和出ロ指針分別為PU和Ρ12,第二緩沖區(qū)的入口指針和出ロ指針分別為Ρ21和Ρ22 ;在該實施例中,假設(shè)此處的印刷數(shù)據(jù)文件為預先分類好的數(shù)據(jù)文件;步驟2 :黒色數(shù)據(jù)處理線程對印刷數(shù)據(jù)文件中的黒色數(shù)據(jù)包進行相應(yīng)的顏色處理,使處理后的黒色數(shù)據(jù)能夠被印刷設(shè)備使用,執(zhí)行印刷操作;在該步驟中,印刷數(shù)據(jù)文件可以理解為包含三個數(shù)據(jù)包的文件,分別為黑色數(shù)據(jù)包、黃色數(shù)據(jù)包和青色數(shù)據(jù)包,各個數(shù)據(jù)包都是相互獨立的,在后續(xù)的步驟中,每個處理線 程對與其對應(yīng)的數(shù)據(jù)包進行相應(yīng)處理,處理完之后將處理完的數(shù)據(jù)包再次放回到該印刷數(shù)據(jù)文件中,替換原先的數(shù)據(jù)包。步驟3 :黒色數(shù)據(jù)處理線程處理完成之后,將包含有處理之后的黒色數(shù)據(jù)包的印刷數(shù)據(jù)文件通過Pll存儲到第一緩沖區(qū)的存儲單元(假設(shè)為第一存儲單元)中;此時,該第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件中,包含有已處理的黒色數(shù)據(jù)包和未處理的黃色數(shù)據(jù)包、青色數(shù)據(jù)包。
步驟4 :第一緩沖區(qū)的出ロ指針P12對Pll所指向的地址進行檢測,當檢測到Pll和P12所指向的地址不相同時,黃色數(shù)據(jù)處理線程控制P12讀取第一緩沖區(qū)第一存儲單元中存儲的印刷數(shù)據(jù)文件;步驟5 :黃色數(shù)據(jù)處理線程對讀取到的印刷數(shù)據(jù)文件進行相應(yīng)的處理,即對印刷數(shù)據(jù)文件包所含的黃色數(shù)據(jù)包進行相應(yīng)的處理;步驟6 :黃色數(shù)據(jù)處理線程對包含后處理完的黒色數(shù)據(jù)包和黃色數(shù)據(jù)包的印刷數(shù)據(jù)文件通過第二緩沖區(qū)的入口指針P21存儲到存儲單元中;此時,該第二緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件中,包含有已處理的黒色數(shù)據(jù)包、黃色數(shù)據(jù)包和未處理的青色數(shù)據(jù)包。
步驟7 :第二緩沖區(qū)的出ロ指針P22對P21所指向的地址進行檢測,當檢測到兩者不同時,青色數(shù)據(jù)處理線程控制P22讀取存儲單元中存儲的印刷數(shù)據(jù)文件; 步驟8 :青色數(shù)據(jù)處理線程對讀取到的印刷數(shù)據(jù)文件進行相應(yīng)的青色數(shù)據(jù)的處理;其中,通過該步驟青色數(shù)據(jù)處理線程的處理之后,該印刷數(shù)據(jù)文件中的三個數(shù)據(jù)包都已經(jīng)被相應(yīng)處理線程處理,成為符合印刷設(shè)備的印刷需求的數(shù)據(jù)包。步驟9 :青色數(shù)據(jù)處理線程將印刷數(shù)據(jù)文件傳輸?shù)接∷⒃O(shè)備,執(zhí)行印刷操作。上述僅為本發(fā)明的ー個具體實施例,在此不用以限制本發(fā)明。對于N+1 = 4的情形,請參閱圖4 步驟I :預先申請三個可循環(huán)使用的緩沖區(qū),分別記為第一緩沖區(qū)、第二緩沖區(qū)和第三緩沖區(qū),然后,定義四個處理線程,分別記為黒色數(shù)據(jù)處理線程、黃色數(shù)據(jù)處理線程、青色數(shù)據(jù)處理線程和紫色數(shù)據(jù)處理線程,其中,可以定義黒色數(shù)據(jù)處理線程和黃色數(shù)據(jù)處理線程共同使用第一緩沖區(qū),黃色數(shù)據(jù)處理線程和青色數(shù)據(jù)處理線程共同使用第二緩沖區(qū),青色數(shù)據(jù)處理線程和紫色數(shù)據(jù)處理線程共同使用第三緩沖區(qū),另外,可以定義第一緩沖區(qū)的入口指針和出口指針分別為P11和P12,第二緩沖區(qū)的入口指針和出ロ指針分別為P21和P22,第三緩沖區(qū)的入口指針和出ロ指針分別為P31和P32 ;在該實施例中,假設(shè)印刷數(shù)據(jù)文件為預先分類好的數(shù)據(jù)文件;步驟2 :黒色數(shù)據(jù)處理線程對印刷數(shù)據(jù)文件中的黒色數(shù)據(jù)包進行相應(yīng)的處理,使處理后的黒色數(shù)據(jù)能夠被印刷設(shè)備使用,執(zhí)行印刷操作;在該步驟中,印刷數(shù)據(jù)文件可以理解為包含四個數(shù)據(jù)包的文件,分別為黑色數(shù)據(jù)包、黃色數(shù)據(jù)包、青色數(shù)據(jù)包和紫色數(shù)據(jù)包,各個數(shù)據(jù)包都是相互獨立的,在后續(xù)的步驟中,每個處理線程對與其對應(yīng)的數(shù)據(jù)包進行相應(yīng)顏色處理,處理完之后將處理完的數(shù)據(jù)包再次放回到該印刷數(shù)據(jù)文件中,替換原先的數(shù)據(jù)包。步驟3 :黒色數(shù)據(jù)處理線程處理完成之后,將包含有處理之后的黒色數(shù)據(jù)包的印刷數(shù)據(jù)文件通過Pll存儲到第一緩沖區(qū)的存儲單元(假設(shè)為第一存儲單元)中;此時,該第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件中,包含有已處理的黒色數(shù)據(jù)包和未處理的黃色數(shù)據(jù)包、青色數(shù)據(jù)包以及紫色數(shù)據(jù)包。步驟4 :第一緩沖區(qū)的出ロ指針P12對Pll所指向的地址進行檢測,當檢測到Pll和P12所指向的地址不相同時,黃色數(shù)據(jù)處理線程控制P12讀取第一緩沖區(qū)第一存儲單元中存儲的印刷數(shù)據(jù)文件;
步驟5 :黃色數(shù)據(jù)處理線程對讀取到的印刷數(shù)據(jù)文件進行相應(yīng)的處理,即對印刷數(shù)據(jù)文件包所含的黃色數(shù)據(jù)包進行相應(yīng)的處理;步驟6 :黃色數(shù)據(jù)處理線程對包含后處理完的黒色數(shù)據(jù)包和黃色數(shù)據(jù)包的印刷數(shù)據(jù)文件通過第二緩沖區(qū)的入口指針P21存儲到存儲單元中;此時,該第二緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件中,包含有已處理的黒色數(shù)據(jù)包、黃色數(shù)據(jù)包和未處理的青色數(shù)據(jù)包、紫色數(shù)據(jù)包。步驟7 :第二緩沖區(qū)的出ロ指針P22對P21所指向的地址進行檢測,當檢測到兩者不同時,青色數(shù)據(jù)處理線程控制P22讀取存儲單元中存儲的印刷數(shù)據(jù)文件;步驟8 :青色數(shù)據(jù)處理線程對讀取到的印刷數(shù)據(jù)文件進行相應(yīng)的青色數(shù)據(jù)的處理; 步驟9 :青色數(shù)據(jù)處理線程對包含處理完的黒色數(shù)據(jù)包、黃色數(shù)據(jù)包和青色數(shù)據(jù)包的印刷數(shù)據(jù)文件通過第三緩沖區(qū)的入口指針P31存儲到存儲單元中;此時,該第三緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件中,包含有已處理的黒色數(shù)據(jù)包、黃色數(shù)據(jù)包、青色數(shù)據(jù)包和未處理的紫色數(shù)據(jù)包。步驟10 :第三緩沖區(qū)的出ロ指針P32對P31所指向的地址進行檢測,當檢測到兩者不同時,紫色數(shù)據(jù)處理線程控制P32讀取第三緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件;步驟11 :紫色數(shù)據(jù)處理線程對讀取到的印刷數(shù)據(jù)文件進行相應(yīng)的紫色數(shù)據(jù)的處理;其中,通過該步驟的處理之后,該印刷數(shù)據(jù)文件中的四個數(shù)據(jù)包都已經(jīng)被相應(yīng)處理線程處理,成為符合印刷設(shè)備的印刷需求的數(shù)據(jù)包。步驟12 :紫色數(shù)據(jù)處理線程將印刷數(shù)據(jù)文件傳輸?shù)接∷⒃O(shè)備,執(zhí)行印刷操作。上述僅為本發(fā)明的ー個具體實施例,在此不用以限制本發(fā)明。對于N+1等于其他數(shù)值的情形,與上述兩個具體事例相似,在此不再贅述,但不用以限制本發(fā)明。圖5示出了本發(fā)明實施例提供的印刷數(shù)據(jù)的處理系統(tǒng)的結(jié)構(gòu)框圖,為了便于說明,圖中僅給出了與本發(fā)明實施例相關(guān)的部分,其中,印刷數(shù)據(jù)的處理系統(tǒng)可以內(nèi)置于計算機或其他終端上位機的硬件単元、軟件單元或軟硬件結(jié)合單元。緩沖區(qū)申請模塊11申請N個可循環(huán)存儲使用的緩沖區(qū),該N個緩沖區(qū)對應(yīng)N+1個處理印刷數(shù)據(jù)的N+1個處理線程,采用流水方式每兩個處理線程之間通過所述緩沖區(qū)連接通信,該緩沖區(qū)內(nèi)設(shè)置有若干個存儲單元、入口指針和出ロ指針,該出ロ指針定時對所述入ロ指針所指向的地址進行檢測,其中,N為整數(shù);第一控制處理模塊12控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作;第一寫入操作模塊13將處理后印刷數(shù)據(jù)文件通過第一緩沖區(qū)的入口指針寫入第一緩沖區(qū)的存儲單元;當?shù)谝痪彌_區(qū)的出ロ指針檢測到第一緩沖區(qū)的入口指針所指向的地址發(fā)生變化時,第一讀取模塊14控制第二處理線程通過第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件;流水控制模塊15控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第二緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第N+1個處理線程;第N+1控制處理模塊16控制第N+1個處理線程對印刷數(shù)據(jù)文件進行顔色數(shù)據(jù)處理;輸出模塊17輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。在本發(fā)明實施例中,分類解析模塊18對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顔色數(shù)據(jù)的印刷數(shù)據(jù)文件。在本發(fā)明實施例中,印刷數(shù)據(jù)文件為單ー的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息,其中,當印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,該系統(tǒng)還包括根據(jù)印刷數(shù)據(jù)索引信息,調(diào)用模塊(圖中未標記)調(diào)用與印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù)。上述實施例給出的是本發(fā)明實施例提供的系統(tǒng)結(jié)構(gòu)框圖,其各模塊的功能實現(xiàn)如上述方法實施例所述,在此不再贅述,但不用以限制本發(fā)明。
本發(fā)明實施例中,在每兩個處理線程之間申請一個緩沖區(qū),緩沖區(qū)設(shè)置有存儲單元、入口指針和出口指針,控制第一處理線程對印刷數(shù)據(jù)文件進行顏色處理,并將處理后的印刷數(shù)據(jù)通過第一緩沖區(qū)的入口指針存儲到第一緩沖區(qū)的存儲單元,控制第二處理線程通過第一緩沖區(qū)的出口指針讀取存儲單元中的印刷數(shù)據(jù),同時,控制第二處理線程對讀取到的印刷數(shù)據(jù)執(zhí)行與第一處理線程的相同處理操作,直至第N+1個處理線程,第N+1個處理線程對印刷數(shù)據(jù)進行顔色數(shù)據(jù)處理,并輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備,該流水方式的處理線程解決了并行線程處理的速度不同導致的不同步問題,カロ快了印刷數(shù)據(jù)的處理速度,同時,該流水的線程處理方式也適合大批量、多頁數(shù)的數(shù)據(jù)的傳輸。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.ー種印刷數(shù)據(jù)的處理方法,其特征在于,所述方法具體包括下述步驟 申請N個可循環(huán)存儲使用的緩沖區(qū),所述N個緩沖區(qū)對應(yīng)N+1個處理印刷數(shù)據(jù)的處理線程,所述緩沖區(qū)和處理線程采用流水方式,每兩個處理線程之間通過所述緩沖區(qū)連接通信,所述緩沖區(qū)內(nèi)設(shè)置有若干個存儲單元、入ロ指針和出ロ指針,所述出ロ指針定時對所述入口指針所指向的地址進行檢測,其中,N為整數(shù); 控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作,并將處理后印刷數(shù)據(jù)文件通過所述第一緩沖區(qū)的入口指針寫入所述第一緩沖區(qū)的存儲單元; 當所述第一緩沖區(qū)的出口指針檢測到所述第一緩沖區(qū)的入口指針所指向的地址發(fā)生變化時,控制第二處理線程通過所述第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中 存儲的印刷數(shù)據(jù)文件; 控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第ニ緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第N+1個處理線程;控制所述第N+1個處理線程對印刷數(shù)據(jù)文件進行顏色數(shù)據(jù)處理,并輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。
2.根據(jù)權(quán)利要求I所述的印刷數(shù)據(jù)的處理方法,其特征在于,所述申請N個緩沖區(qū)的步驟之后,所述控制第一處理線程對印刷數(shù)據(jù)文件進行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理的步驟之前,所述方法還包括下述步驟 對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顔色數(shù)據(jù)的印刷數(shù)據(jù)文件。
3.根據(jù)權(quán)利要求2所述的印刷數(shù)據(jù)的處理方法,其特征在于,所述印刷數(shù)據(jù)文件為單一的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息。
4.根據(jù)權(quán)利要求3所述的印刷數(shù)據(jù)的處理方法,其特征在干,當所述印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,所述控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作的步驟之前還包括下述步驟 根據(jù)所述印刷數(shù)據(jù)索引信息,調(diào)用與所述印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù)。
5.ー種印刷數(shù)據(jù)的處理系統(tǒng),其特征在于,所述系統(tǒng)具體包括 緩沖區(qū)申請模塊,用于申請N個可循環(huán)存儲使用的緩沖區(qū),所述N個緩沖區(qū)對應(yīng)N+1個處理印刷數(shù)據(jù)的處理線程,所述緩沖區(qū)和處理線程采用流水方式,每兩個處理線程之間通過所述緩沖區(qū)連接通信,所述緩沖區(qū)內(nèi)設(shè)置有若干個存儲単元、入ロ指針和出口指針,所述出ロ指針定時對所述入口指針所指向的地址進行檢測,其中,N為整數(shù); 第一控制處理模塊,用于控制第一處理線程對印刷數(shù)據(jù)文件執(zhí)行與所述第一處理線程相對應(yīng)的顔色數(shù)據(jù)處理操作; 第一寫入操作模塊,用于將處理后印刷數(shù)據(jù)文件通過所述第一緩沖區(qū)的入口指針寫入所述第一緩沖區(qū)的存儲單元; 第一讀取模塊,用于當所述第一緩沖區(qū)的出口指針檢測到所述第一緩沖區(qū)的入口指針所指向的地址發(fā)生變化時,控制第二處理線程通過所述第一緩沖區(qū)的出口指針讀取第一緩沖區(qū)的存儲單元中存儲的印刷數(shù)據(jù)文件; 流水控制模塊,用于控制從第二處理線程開始的處理線程執(zhí)行與第一處理線程相同的處理操作,以及從第二緩沖區(qū)開始的緩沖區(qū)執(zhí)行與對第一緩沖區(qū)相同的處理操作,直至第N+1個處理線程; 第N+1控制處理模塊,用于控制所述第N+1個處理線程對印刷數(shù)據(jù)文件進行顏色數(shù)據(jù)處理; 輸出模塊,用于輸出經(jīng)過N+1個處理線程處理后的印刷數(shù)據(jù)文件至印刷設(shè)備。
6.根據(jù)權(quán)利要求5所述的印刷數(shù)據(jù)的處理系統(tǒng),其特征在于,所述系統(tǒng)還包括 分類解析模塊,用于對印刷數(shù)據(jù)的源文件進行分類解析,生成包括N+1個分類顔色數(shù)據(jù)的印刷數(shù)據(jù)文件。
7.根據(jù)權(quán)利要求6所述的印刷數(shù)據(jù)的處理系統(tǒng),其特征在于,所述印刷數(shù)據(jù)文件為單一的印刷數(shù)據(jù)或印刷數(shù)據(jù)索引信息。
8.根據(jù)權(quán)利要求7所述的印刷數(shù)據(jù)的處理系統(tǒng),其特征在干,當所述印刷數(shù)據(jù)文件為印刷數(shù)據(jù)索引信息時,所述系統(tǒng)還包括 調(diào)用模塊,用于根據(jù)所述印刷數(shù)據(jù)索引信息,調(diào)用與所述印刷數(shù)據(jù)索引信息相對應(yīng)的印刷數(shù)據(jù)。
全文摘要
本發(fā)明涉及印刷技術(shù)領(lǐng)域,提供了一種印刷數(shù)據(jù)的處理方法及系統(tǒng),方法包括在每兩個處理線程之間申請一個緩沖區(qū),控制第一處理線程對印刷數(shù)據(jù)文件進行顏色處理,并將處理后的印刷數(shù)據(jù)通過第一緩沖區(qū)的入口指針存儲到第一緩沖區(qū)的存儲單元,控制第二處理線程通過第一緩沖區(qū)的出口指針讀取存儲單元中的印刷數(shù)據(jù),同時,控制第二處理線程對讀取到的印刷數(shù)據(jù)執(zhí)行與第一處理線程的相同處理操作,直至第N+1個處理線程,第N+1個處理線程對印刷數(shù)據(jù)進行顏色數(shù)據(jù)處理,并輸出。該流水方式的處理線程解決了并行線程處理的速度不同導致的不同步問題,加快了印刷數(shù)據(jù)的處理速度,同時,該流水的線程處理方式也適合大批量、多頁數(shù)的數(shù)據(jù)的傳輸。
文檔編號G06F19/00GK102737163SQ20121016984
公開日2012年10月17日 申請日期2012年5月28日 優(yōu)先權(quán)日2012年5月28日
發(fā)明者劉子文 申請人:濰坊東航印刷科技股份有限公司