專利名稱:墨滴群集顯式表示的二級圖像壓縮的制作方法
技術(shù)領(lǐng)域:
本發(fā)明常與數(shù)字圖像處理有關(guān),尤其涉及對用墨滴群集顯式表示的圖像進(jìn)行二級圖像壓縮的一種系統(tǒng)和方法。
背景技術(shù):
隨著計算機網(wǎng)絡(luò),因特網(wǎng)和數(shù)字存儲方法的廣泛擴(kuò)展,計算機可用信息量已經(jīng)明顯增加。正由于信息量如此激增它已面臨快速傳輸和有效存儲的需求。數(shù)據(jù)壓縮是一種便于有效傳輸和存儲信息的技術(shù)。
數(shù)據(jù)壓縮減少了表示信息所需的空間量,并能用于多種信息類型。包括圖像、文本、音頻和視頻在內(nèi)的數(shù)字信息的壓縮要求總量是在不斷增加。通常,標(biāo)準(zhǔn)計算機系統(tǒng)采用數(shù)據(jù)壓縮;然而,其它采用數(shù)據(jù)壓縮的技術(shù),例如但不限于數(shù)字和衛(wèi)星電視,還有單元/數(shù)字電話。
數(shù)據(jù)壓縮的要求隨著運用、傳輸和處理大信息量要求的增加而增加。雖然,存儲器件容量已經(jīng)大大增加,但信息要求還超出容量的提高。例如,一幅未經(jīng)壓縮的圖片需要5兆字節(jié)空間,而同樣一幅圖片,經(jīng)無損壓縮后,只要2.5兆字節(jié)空間。這樣,數(shù)據(jù)壓縮有利于傳輸更大量的信息。即使用諸如寬帶、對稱數(shù)字用戶環(huán)路(DSL)、和有線調(diào)制解調(diào)器因特網(wǎng)等來增加傳輸速率,非壓縮信息還很容易達(dá)到傳輸極限。例如,一幅未壓縮圖像通過一條DSL線要用10分鐘傳輸。但是,這幅圖像經(jīng)數(shù)據(jù)吞吐量為10倍增益的壓縮后,只需要傳輸1分鐘。
通常,有兩種壓縮,無損和有損的。無損壓縮允許將壓縮后的圖像精確恢復(fù)到原始數(shù)據(jù),而有損壓縮后恢復(fù)的數(shù)據(jù)和原始數(shù)據(jù)不同。在這兩種壓縮模式之間存在著一種權(quán)衡,有損壓縮相比無損壓縮能給出較好的壓縮率,因為在一定程度上,它能容忍對數(shù)據(jù)完整性的損害。當(dāng)壓縮關(guān)鍵文本時,可采用無損壓縮,因為數(shù)據(jù)不能精確重建會大大影響文本的質(zhì)量和可讀性。有損壓縮可用于圖片或非關(guān)鍵文本,這時可接受一定量的、或不易感受到的破壞或噪聲。
在數(shù)字文件處理中十分通用兩級圖像,因為它們有可能致密表示包含文本和圖畫的黑白文件。這種圖像中,象元(象素)可看作來自一種二進(jìn)制源(例如,白是“0”和黑是“1”)。因為他們經(jīng)常包含許多白空間和重復(fù)的墨滴圖像,有效編碼這種圖像的一種基本方法是用光柵順序進(jìn)行掃描,即從頂?shù)降缀蛷淖蟮接?,通過自適應(yīng)算術(shù)編碼(AC)對每個象素進(jìn)行編碼,用圍繞在前已編碼象素的一個小模板中的象素值構(gòu)成的上下文來控制象素的狀態(tài)(或幾率表)。這種想法是最現(xiàn)代二級圖像壓縮系統(tǒng)的基礎(chǔ)。
經(jīng)常用老的CCITT(國際電報電話咨詢委員會)標(biāo)準(zhǔn)T.4和T.6來傳輸傳真圖像,這些標(biāo)準(zhǔn)分別稱為組3和組4。G3常用修正的霍夫曼(Huffman,簡稱MH)碼編碼圖像(即,對黑或白象素流進(jìn)行霍夫曼編碼),而G4用“修正修正讀”(MMR)編碼,MH和MMR不如上下文自適應(yīng)AC有效,但是實現(xiàn)較為簡便。這些時候,G3和G4進(jìn)展到包含通過JBIG(聯(lián)合二級圖像組,亦稱作T.82規(guī)則)編碼。JBIG采用自適應(yīng)模板的上下文自適應(yīng)AC,和有效QM二進(jìn)制算術(shù)編碼器。JBIG-2標(biāo)準(zhǔn)將JBIG擴(kuò)展成對文本和半色調(diào)數(shù)據(jù)匹配的模式以及對有損編碼的軟模式匹配(SPM)。JB2編碼器亦基于SPM,但是用二進(jìn)制編碼的Z編碼器。JBIG,JBIG-2和JB2相對G4,壓縮性能有很大改進(jìn)。
發(fā)明內(nèi)容
為了對本發(fā)明某些方面有基本了解,下面對本發(fā)明作簡單概述。概述并不是對本發(fā)明的廣泛綜述。不試圖驗證本發(fā)明的關(guān)鍵組元或描述本發(fā)明涉及的范圍。唯一的目的是用簡化形式給出本發(fā)明的一些概念,為以后較為詳細(xì)的闡述作序。
本發(fā)明給出一種二級編碼系統(tǒng),它推廣當(dāng)前二級編碼技術(shù),通過優(yōu)先假設(shè)-位圖對應(yīng)于很可能包含大量文本的掃描文件。掃描文件可能包含對黑象素群集的字符位圖模式。為討論起見,假設(shè)該文件背景相當(dāng)?shù)匕?,而文本相?dāng)?shù)睾凇5?,打算將本發(fā)明能用的任何合適的二級顏色表示都?xì)w入附屬權(quán)利要求范圍。
二級編碼系統(tǒng)掃描一張位圖(即,從左到右和從頂?shù)降?。第一次找到一個墨滴群集,就把它追加到群集字典。然后,不是對該群集象素編碼,而是對字典指針P和該群集在頁上的位置坐標(biāo){X,Y}編碼。下次在位圖中再找到同樣的群集,或相當(dāng)接近的群集時,同樣我們不對象素進(jìn)行編碼,而是對{P,X,Y}坐標(biāo)編碼。假如該群集包含足夠的象素,則用一個類似二級編碼器(BLC)的無損編碼器對{P,X,Y}坐標(biāo)編碼比象素編碼更為有效。BLC在題為“二級圖像的自適應(yīng)編碼和解碼”的美國專利申請中描述。該專利的客戶號為No.MS158314.1。多頁文件的壓縮增益更高,因為所有頁面可共享群集字典,故編碼字典本身的總開銷變得微不足道。
二級編碼系統(tǒng)能用無損模式或有損模式操作。在無損模式中,如果位圖中的一個群集處于字典群集的第一閥值量內(nèi),則發(fā)送{P,X,Y}數(shù)據(jù)和“群集殘留”——實際群集和字典中群集之間的小差異??梢杂脽o損二級編碼器對該群集殘留編碼。在有損模式中,如果位圖中的一個群集在字典群集的第二閥值量內(nèi),則對三位一組的{P,X,Y}進(jìn)行編碼;但不編碼群集殘留。
本發(fā)明的二級編碼系統(tǒng)能生成文件,這些文件相比常規(guī)掃描儀(例如CCITT的G4標(biāo)準(zhǔn))生成的要小得多。這樣,該二級掃描系統(tǒng)對傳輸和/或存儲應(yīng)用的文件可以大大地壓緊,例如用于數(shù)字圖書館和數(shù)字文件數(shù)據(jù)庫。
按照本發(fā)明的一個方面,該二級編碼系統(tǒng)可包括群集形狀估算器,位圖的群集組分估算,群集位置估算器,第一編碼器,第二編碼器,第三編碼器和第四編碼器。群集形狀估算器分析與位圖有關(guān)的連接組分信息(例如顏色,水平大小,垂直大小,水平位置和/或垂直位置)。群集形狀估算器提取群集,并將它們至少存進(jìn)形狀總字典,形狀頁字典和非群集形狀存儲中的至少一個。
在有損模式中,群集形狀估算器決定群集是否處于總字典群集的第二閥值量以內(nèi)。在一個實例中,如果有群集處于第二閥值量以內(nèi),則要注意該群集在該頁上的出現(xiàn)。在另一實例中,如果該群集處于第二閥值量以內(nèi),則注意到群集在頁面上的出現(xiàn),并至少部分根據(jù)該群集修改總字典中存儲的群集。例如,群集形狀估算器能完成對總字典中存的群集和產(chǎn)生總字典中存的修正群集的群集作加權(quán)平均,這在解碼位圖中生成相比于原始位圖中更為清楚的文本。還在另一實例中,第一閥值(例如,無損模式用的)和第二閥值(即有損模式用的)大致相同。
形狀總字典包含總?cè)杭???側(cè)杭窃诋?dāng)前位圖(例如,頁面)上不止一次出現(xiàn)的群集和/或作為同一文件的一部分已經(jīng)處理過的群集。
形狀頁字典包含頁級群集——在當(dāng)前位圖(例如,頁)中只找到一次的群集。例如,群集形狀估算器一旦已實質(zhì)完成對當(dāng)前位圖(例如,頁)的分析,就能發(fā)送由在當(dāng)前位圖(例如,頁)上只出現(xiàn)一次的群集組成的部分形狀頁字典(例如,包含在編碼文件中)。這些頁字典中的索引(例如指針)不一定要編碼,因為頁字典是按群集在頁上出現(xiàn)的順序排序的,而按定義頁級群集在該頁上只出現(xiàn)一次。
形狀頁字典可存儲在以前位圖(例如,頁)僅出現(xiàn)一次的群集,這樣如果在隨后的位圖上找到極為相似群集的第二次出現(xiàn),則將該群集存入形狀總字典,而從頁字典中移出。非群集形狀存儲是存非文本字符的太小(例如,小于第三閥值)或太大(例如,大于第四閥值)的連接組分,所以不作為群集為好。
位圖的群集組分估算,它決定總字典中存儲群集的字典位置。它可利用來自群集形狀估算器的信息(例如,指針)。然后用第二編碼器編碼指針。因為群集是按頁上位置存儲,其索引(例如指針)形成一個類似文本串排序,在一個實例中,第二編碼器能采用適合文本字符串的壓縮算法(例如LZX編碼)。
在無損模式中,位圖估算器能決定群集殘留。它能為第四編碼器提供信息,用非群集形狀存儲進(jìn)行編碼。(例如,用無損二級編碼)。
群集位置估算器利用連接組分信息決定總字典和/或頁字典群集的頁位置。這樣,對于總字典和/或頁字典中的一個群集,用連接組分信息以及總字典或頁字典的一個字典條目性質(zhì)來決定其頁位置。然后用第一編碼器對頁位置編碼。
在一個實例中,對同一行上群集的水平(X方向)間隙進(jìn)行編碼,因為群集是有規(guī)則地隔開,尤其是字之間。此外,對同一行,可計算出平均水平間隙,然后用基于平均水平間隙和實際水平間隙之差的間隙信息進(jìn)行編碼。
在另一實例中,計算平均垂直(Y方向)值。對一行的平均垂直值進(jìn)行編碼,隨后對群集垂直值和平均垂直值之差進(jìn)行編碼。群集邊框的底邊看作和頂一樣的許多沿底邊排齊的羅馬字母。結(jié)果,已知群集和平均之間的差變得很小。因為第一編碼器以逐行為基準(zhǔn)編碼,所以能對每行的第一水平值(X方向)和平均Y值進(jìn)行編碼。
第一編碼器對收自群集位置估算器的頁位置編碼。例如,第一編碼器能用位平面編碼。第二編碼器對收自位圖群集組分估算的字典位置編碼(例如,LZX編碼)。
第三編碼器對頁字典和/或總字典中的位圖模式采用無損二級位圖編碼。第四編碼器對非群集形狀存儲采用無損二級位圖編碼。
日益強調(diào)的“無紙辦公”常意味著將文件從紙箋形式轉(zhuǎn)換成電子形式。當(dāng)用戶采用常規(guī)技術(shù)掃描、存儲和/或處理電子文件時生成的轉(zhuǎn)換文件是一個大文件。例如,用許多掃描儀,掃描20頁就很容易產(chǎn)生1兆字節(jié)數(shù)據(jù)。用戶很難例如通過E-mail來發(fā)送掃描文件,其中造成大文件是一個問題。然而,采用了本發(fā)明的系統(tǒng)和/或方法的掃描儀能減小存儲要求,例如,每200頁掃描可小到1兆字節(jié),因此50頁的法律文件只產(chǎn)生一個250千字節(jié)的“.blc”文件,能很快通過E-mail傳送。
再說,對一個清楚的文件,本發(fā)明的系統(tǒng)和/或方法相對普通G4格式的增益可能是10的倍數(shù)。對有噪聲的文件,相對G4的壓縮增益可能是5的倍數(shù),而對一個非常短的文件(單頁)為3的倍數(shù)。
本發(fā)明的另一方面提供二級編碼系統(tǒng),它還包括群集系統(tǒng)和/或激活檢測系統(tǒng)。
群集系統(tǒng)確定和多個群集(例如,連接組分)相關(guān)的信息。例如,信息包括該多個群集(例如,連接組分)的寬度(例如,X大小),高度(例如,Y大小),顏色,水平位置(例如,絕對的和/或相對的)和/或垂直位置(例如,絕對的和/或相對的)等。
激活檢測系統(tǒng)接收二級圖像輸入。例如,二級圖像輸入可能是從掩膜分隔器組分(未顯示)或掃描圖像(例如從文件掃描儀和/或傳真機)收到的一個二進(jìn)制掩膜。激活檢測系統(tǒng)分析該二級圖像的顫動/半色調(diào)和/或噪聲。激活檢測系統(tǒng)提供基于該二級圖像輸入的二級圖像輸出;只是帶有縮減的顫動/半色調(diào)和/或噪聲。
基于有顫動/半色調(diào)文件圖像的二級圖像通常具有大量在區(qū)域內(nèi)或與區(qū)域相交的連接組分。此外,有噪聲的二級圖像很少有在區(qū)域內(nèi)或與區(qū)域相交的連接組分。這樣通過確定區(qū)域內(nèi)或與區(qū)域相交的連接組分的量,激活檢測系統(tǒng)能夠檢測出可能存在顫動/半色調(diào)和/或噪聲的區(qū)域。
除了檢測上述顫動,激活檢測系統(tǒng)還適于檢測出二級圖像輸入中的噪聲?!霸肼暋笔侵笩o關(guān)的信息(例如,標(biāo)記),刪除噪聲將不會大大損害二級圖像的完整性。移去二級圖像輸入中的噪聲導(dǎo)致平滑圖像所造成的數(shù)據(jù)壓縮改善。有噪聲的二級圖像區(qū)域一般顯示出相對小的連接性。例如,在一個白背景上只有一個連接雜散標(biāo)記的區(qū)域也就只有一個連接組分。
本發(fā)明再一方面還提供了一種由二級編碼系統(tǒng)、無損二級編碼器和選擇組分構(gòu)成的可選二級編碼系統(tǒng)。
無損二級編碼器可采用無損二級編碼技術(shù)。選擇組分允許在采用無損二級編碼器的無損二級編碼和二級編碼系統(tǒng)(例如,采用群集(無損或有損))之間進(jìn)行選擇。選擇可以根據(jù)例如用戶的愛好和/或該二級編碼系統(tǒng)中的群集系統(tǒng)。
本發(fā)明的另一方面提供了一個由第一解碼器、第二解碼器、第三解碼器、第四解碼器、群集發(fā)生器和組合器組成的二級解碼系統(tǒng)。
第一解碼器至少將部分位流輸入(例如,由相應(yīng)編碼器產(chǎn)生的)解碼,并提供群集的頁位置。第二解碼器也將部分位流輸入(例如,由相應(yīng)編碼器產(chǎn)生的)解碼,并提供已解碼的字典位置。第三解碼器至少也將部分位流輸入(例如,由相應(yīng)編碼器產(chǎn)生的)解碼,并提供解碼的形狀總字典和/或解碼的形狀頁字典。第四解碼器至少也將部分位流輸入(例如,由相應(yīng)編碼器產(chǎn)生的)解碼,并提供非群集形狀的存儲。
群集發(fā)生器至少部分根據(jù)頁位置、字典位置和總字典和頁字典中的至少一個產(chǎn)生群集。組合器至少部分根據(jù)群集發(fā)生器產(chǎn)生的群集和/或非群集形狀存儲提供二級輸出。
本發(fā)明的另一方面還提供一種用于文件圖像應(yīng)用大陣列的二級編碼系統(tǒng),它包括但不局限于有臺式個人計算機、分段分層圖像系統(tǒng)、影印機、文件掃描儀、光字符識別系統(tǒng)、個人數(shù)字輔助設(shè)備、傳真機、數(shù)碼相機、數(shù)碼攝像機和/或視頻游戲機等。
本發(fā)明的另一方面還提供完成二級編碼、群集分析和二級解碼的方法。還提供了一種計算機可讀媒體,它包含二級編碼系統(tǒng)用的計算機指令和二級解碼系統(tǒng)用的計算機指令。還提供了在兩臺或多臺計算機組分之間傳輸?shù)臄?shù)據(jù)包,這些計算機用于二級編碼包含已編碼的頁位置的第一數(shù)據(jù)字段、包含已編碼的字典位置的第二數(shù)據(jù)字段、包含已編碼總字典和已編碼頁字典中至少一個的第三數(shù)據(jù)字段、和包含已編碼的非群集形狀存儲的第四數(shù)據(jù)字段。
為了完成所述的和有關(guān)結(jié)局,用下列敘述和附圖相結(jié)合地描述本發(fā)明的某些示例方面。然而,雖然已經(jīng)指明了這些方面,但還有多種采用本發(fā)明原理的途徑。本發(fā)明試圖包含所有這些方面和其等價物。從下列詳細(xì)描述,結(jié)合附圖一起考慮,本發(fā)明的其他優(yōu)點和新奇特點也就一目了然了。
圖1是根據(jù)本發(fā)明一個方面的二級編碼系統(tǒng)的框圖。
圖2是4連特性的示意圖。
圖3是8連特性的示意圖。
圖4是根據(jù)本發(fā)明一個方面的連接組分邊框的示例。
圖5是根據(jù)本發(fā)明一個方面的總字典數(shù)據(jù)結(jié)構(gòu)的示例。
圖6是根據(jù)本發(fā)明一個方面的二級編碼系統(tǒng)的框圖。
圖7是根據(jù)本發(fā)明一個方面的可選二級編碼系統(tǒng)的框圖。
圖8是根據(jù)本發(fā)明一個方面的二級解碼系統(tǒng)的框圖。
圖9是根據(jù)本發(fā)明一個方面的二級編碼方法的流程圖。
圖10是根據(jù)本發(fā)明的一個方面的二級編碼方法的流程圖。
圖11是圖10方法更詳細(xì)的流程圖。
圖12是根據(jù)本發(fā)明的一個方面的群集分析方法的流程圖。
圖13是圖12方法更詳細(xì)的流程圖。
圖14是根據(jù)本發(fā)明的一個方面的二級解碼方法的流程圖。
圖15是本發(fā)明運行操作環(huán)境示例。
具體實施例方式
現(xiàn)在參照附圖來描述本發(fā)明,圖中用類似的標(biāo)號始終對應(yīng)相應(yīng)部分。在下列描述中,為解釋起見,設(shè)定了許多特定細(xì)節(jié),便于透徹了解本發(fā)明,但是很顯然,沒有這些特定細(xì)節(jié),本發(fā)明亦可實現(xiàn)的。在其它實例中,為便于敘述本發(fā)明,用框圖形式表明常用結(jié)構(gòu)和器件。
正如本申請中,術(shù)語“計算機組分”指與計算機相關(guān)的實體,可以是硬件、硬件與軟件的組合、軟件、或執(zhí)行軟件。例如,計算機組分可能是但不限于在處理器上運行的一個進(jìn)程、一臺處理器、一個對象、一個可執(zhí)行程序、一個執(zhí)行鏈、一個程序和/或一臺計算機。用示例方法,運行在服務(wù)器上的應(yīng)用程序和該服務(wù)器都可是計算機組分。一個或多個計算機組分可常駐在一個進(jìn)程和/或一個執(zhí)行鏈中,一個組分可以局限于一臺計算機和/或分布于兩臺或多臺計算機。
參照圖1,說明按照本發(fā)明一個方面的二級編碼系統(tǒng)100。二級編碼系統(tǒng)100包括群集形狀估算器110、位圖的群集組分估算120、群集位置估算器130、第一編碼器140、第二編碼器150、第三編碼器160和第四編碼器170。
二級編碼系統(tǒng)100擴(kuò)展了當(dāng)前的二級編碼技術(shù),先假設(shè)位圖對應(yīng)于可能包含大量文本的掃描文件。掃描文件可能包含相應(yīng)黑象素群集的字符位圖模式。為討論起見,假設(shè)文件的背景相當(dāng)白,而文本是相當(dāng)黑。但是,打算把適用于本發(fā)明的任何二級顏色表示都?xì)w入附錄的權(quán)利要求。
二級編碼系統(tǒng)100掃描一張位圖(例如,從左到右和從頂?shù)降?。第一次找到一個墨滴群集,把它追加到群集字典。然后,不對該群集中的象素編碼,而是對字典指針P以及該群集在頁上出現(xiàn)的位置坐標(biāo){X,Y}編碼。下次在這位圖上再找到相同群集或非常接近的群集時,同樣不對象素編碼,而對{P,X,Y}坐標(biāo)編碼。如果該群集包含足夠多的象素,則用無損BLC對{P,X,Y}坐標(biāo)編碼比編碼象素有效得多。對多頁文件,壓縮增益更高,因為所有頁能共享群集字典,所以編碼該字典本身的開銷變得微不足道。
二級編碼系統(tǒng)100可用無損模式或有損模式操作。在無損模式,如果位圖中一個群集處于字典中群集的第一閥值量內(nèi),則發(fā)送{P,X,Y}和“群集殘留”——實際群集和字典中群集之間的很小差異。用無損二級編碼器對群集殘留編碼。在有損模式,如果位圖中的群集處于字典的第二閥值量內(nèi),則對三位一體的{P,X.Y}編碼,而不編碼群集殘留。
本發(fā)明的二級編碼系統(tǒng)100能生成文件,這些文件例如要比常規(guī)掃描儀(例如,CCITT G4)生成的文件要小得多。這樣,二級編碼系統(tǒng)100能大大壓緊如數(shù)字圖書館和數(shù)字文件數(shù)據(jù)庫要發(fā)送和/或存儲的文件。
群集形狀估算器110分析與位圖相關(guān)的連接組分信息。例如,連接組分信息可能包括其顏色、水平大小、垂直大小、水平位置和/或垂直位置。群集形狀估算器110提取群集并將它存入形狀總字典172、形狀頁字典174和非群集形狀176存儲中的至少一個。
簡單參照圖2,說明描繪4連特性的圖200。4連特性僅識別處于四個主要羅盤方向的連接象素。圖2說明4連特性,顯示了周圍有四個主要羅盤方向象素的一個象素。再轉(zhuǎn)到圖3,說明描繪8連特性的圖300。圖3說明8連特性是,顯示了周圍有8個主要方向象素的一個象素。連接組分既包括文本,還包括非文本標(biāo)記??梢庾R到本發(fā)明的系統(tǒng)和方法能用于有一定程度連接的連接組分,并不限于4連或8連的連接組分。
轉(zhuǎn)向圖4,說明按本發(fā)明一個方面的連接組分邊框?qū)嵗?00。通常邊框400包括有X大小(寬度)和Y大小(高度)連接組分圍成的矩形。
回到圖1,在有損模式,群集形狀估算器110可能決定一個群集是否處于總字典172的第二閾值是之內(nèi)。在一個實施例中,形狀接近度取決于候選形狀和字典中形狀的匹配,然后計數(shù)候選形狀中象素值(黑或白)不同于字典形狀的部分象素。在一個實例中,如果該群集處于第二閥值量內(nèi),注意到該頁上出現(xiàn)群集。在另一實施例中,如果該群集處于第二閥值量內(nèi),則注意頁上出現(xiàn)的群集,并至少部分根據(jù)該群集將總字典172中存的群集進(jìn)行修正。例如,群集形狀估算器110能對總字典172內(nèi)存的群集及其修正群集作加權(quán)平均。這樣在解碼位圖中能生成比原始位圖更清楚的文本。
形狀總字典172包括總?cè)杭???側(cè)杭窃诋?dāng)前位圖(例如,頁)中不至一次出現(xiàn)的群集和/或作為同一文件的一部分處理過的群集。參照圖5,說明按照本發(fā)明的一個方面的總字典數(shù)據(jù)結(jié)構(gòu)500的實例??傋值鋽?shù)據(jù)結(jié)構(gòu)500的第一字段510存儲數(shù)據(jù)結(jié)構(gòu)500的索引,第二字段520存儲寬度(例如,X大小),第三字段530存儲高度(例如Y大小)和第四字段540存儲該總?cè)杭奈粓D。例如,X大小可能是連接組分的最大寬度,Y大小可能是該連接組分的最大高度。數(shù)據(jù)結(jié)構(gòu)500可能包括許多總?cè)杭瘲l目550。
數(shù)據(jù)結(jié)構(gòu)500僅是一個實例,可以理解為有助于使用與主發(fā)明相關(guān)的二級編碼,可用許多其它結(jié)構(gòu)來組織和/或存儲多種數(shù)據(jù)類型。任何這種適合的數(shù)據(jù)結(jié)構(gòu)都企圖歸入附屬權(quán)利要求范圍。這種數(shù)據(jù)結(jié)構(gòu)可存入計算機可讀媒體中,包括但不限于存儲器、磁盤和載波。
參照回圖1,形狀頁字典174包括頁級群集——在當(dāng)前位圖(例如,頁)上只找到一次的群集。例如,一旦群集形狀估算器110已經(jīng)實質(zhì)性地完成當(dāng)前位圖(例如,頁)分析,則可發(fā)送包括在當(dāng)前位圖(例如,頁)上只找到一次的群集組成的部分形狀頁字典174(例如,包括在編碼文件中)。頁字典174的索引(例如,指針)不一定要編碼,因為頁字典174按照群集在頁面上出現(xiàn)的次序排序,以及按定義頁級群集在該頁上僅出現(xiàn)一次。
在一個實例中,每頁有它自己的頁字典174,它是在頁處理后被編碼的。相應(yīng)地,前頁字典174中的條目永遠(yuǎn)不移出,一旦頁被處理完后,頁字典174被編碼,并且永遠(yuǎn)不被修正。
形狀頁字典174能存儲前面位圖(例如,頁)上僅出現(xiàn)過一次的群集,所以在以后的位圖上,如果能夠找到十分相似群集的第二次出現(xiàn),則把該群集存入總字典172,并移出頁字典174。非群集形狀存儲176,存儲非文本字符的太小(例如小于第三域值)或太大(例如大于第四域值)的連接組分,所以不作為群集為好。
這樣,群集形狀估算器110提取群集,并將群集存入形狀總字典172、形狀頁字典174、非群集形狀存儲176中的至少一個。群集形狀估算器110能給位圖的群集組分估算120提供信息(例如,形狀總字典172的指針)。
位圖的群集組分估算120決定總字典中群集的字典指針。位圖的群集組分估算除了群集的字典信息外,還能使用來自群集形狀估算器110的信息(例如,指針)。然后用第二編碼器150對指針編碼。因為群集企圖俘獲文本字符,索引(例如,指針)企圖構(gòu)成類似字符串次序的映象,它很接近于文件中的文本字符串。因此,在一個實例中,第二編碼器150可以采用適合于文本字符串的壓縮算法,例如二級編碼器150可采用LZX編碼。
在無損模式,位圖的群集組分估算120可以決定群集殘留。位圖的群集組分估算120可以向第四編碼器170提供信息,然后用非群集形狀存儲176進(jìn)行編碼(例如,使用無損二級編碼)。
群集位置估算器130利用連接組分信息決定總字典172和/或頁字典174的群集的頁位置。因此,對于總字典172和/或頁字典174中的一個群集,用連接組分信息和總字典172或頁字典174中一個字典條目的特性來決定它的頁位置。然后用第一編碼器140對頁位置編碼。因為群集已經(jīng)按頁位置分類,所以頁位置趨于單調(diào)增加。這樣,在一個實施例中,第一編碼器140通過計算出位置差{例如,X當(dāng)前-X以前和Y當(dāng)前-Y以前}并用一個適合于假設(shè)為較小整數(shù)的熵編碼器對該差值編碼,從而對位置編碼,該熵編碼器例如是在題為“有限字母數(shù)據(jù)的無損自適應(yīng)編碼”的美國專利申請中描述的位-平面編碼器,該專利的客戶號為MS127658.1。
在一個實例中,因群集有規(guī)則地隔開,尤其是在字內(nèi)部,所以對一行中群集間的水平(X方向)間隙編碼。此外,對一行可算出平均水平間隙并用間隙信息,隨后基于平均水平間隙和實際水平間隙之差進(jìn)行編碼。
在另一實例中,計算平均垂直(Y方向)值。對一行的平均垂直值進(jìn)行編碼,隨后對一個群集,對群集垂直值和平均垂直值之差進(jìn)行編碼。群集邊框的底邊看作和頂一樣的許多沿底邊排齊的羅馬字母。結(jié)果,已知群集和平均之差很小。由于第一編碼器140以逐行為基礎(chǔ)進(jìn)行編碼,所以對每行第一水平值(X方向)和平均Y值進(jìn)行編碼。
第一編碼器140對來自群集位置估算器130的頁位置編碼。例如,第一編碼器140可采用位平面編碼。第二編碼器150對來自位置群集組分估算120的字典位置進(jìn)行編碼(例如,LZX編碼)。
第三編碼器160對頁字典和/或總字典中的位圖模式編碼,可用無損二級位圖編碼。第四編碼器170對非群集形狀存儲編碼,能采用無損二級位圖編碼。
雖然圖1是說明二級編碼系統(tǒng)100的框圖,但是其中群集位置估算器120、位圖的群集組分估算130、第一編碼器140、第二編碼器150、第三編碼器160和/或第四編碼器170,可按照它們的定義用一個或多個計算機組分來實施。因此,顯然實施二級編碼系統(tǒng)100、群集形狀估算器110、群集位置估算器120、位圖的群集組分估算130、第一編碼器140、第二編碼器150、第三編碼器160和/或第四編碼器170等計算機可執(zhí)行組分可存儲在計算機可讀媒體上,包括但不限于ASIC(專用集成電路)、CD(致密磁盤)、DVD(數(shù)字視頻磁盤)、ROM(只讀存儲器)、軟盤、硬盤、EEPROM(電可擦只讀可編程存儲器)和符合本發(fā)明的記憶棒。
再回到圖6,說明符合本發(fā)明一個方面的二級編碼系統(tǒng)600。該二級編碼系統(tǒng)600包括群集形狀估算器110、位圖的群集組分估算120、群集位置估算器130、第一編碼器140、第二編碼器150、第三編碼器160和第四編碼器170。該二級編碼系統(tǒng)還包括群集系統(tǒng)610和/或激活檢測系統(tǒng)620。
群集系統(tǒng)610確定與多個群集(例如連接組分)有關(guān)的信息。例如,該信息可包括多個群集(例如連接組分)的寬度(例如,X大小)、高度(例如,Y大小)、顏色、水平位置(例如,絕對的和/或相對的)。
激活檢測系統(tǒng)620接收二級圖像輸入。例如,二級圖像輸入可以是從掩膜分隔器組分(未顯示)接收到的二進(jìn)制掩膜或掃描圖像(例如,從文件掃描儀和/或傳真機)。激活檢測系統(tǒng)620分析顫動/半色調(diào)和/或噪聲。激活檢測系統(tǒng)620根據(jù)該二級圖像輸入給出二級圖像輸出;只是它帶有縮減的顫動/半色調(diào)和/或噪聲。
基于有顫動/半色調(diào)的文件圖像的二級圖像通常有大量在區(qū)域內(nèi)或與區(qū)域相交的連接組分。此外,有噪聲的二級圖像很少有在區(qū)域內(nèi)或與區(qū)域相交的連接組分。因此,激活檢測系統(tǒng)可以根據(jù)連接組分的量檢測出有顫動/半色調(diào)和/或噪聲的區(qū)域。
除了檢測出上述顫動外,激活檢測系統(tǒng)620還適于檢測出二級圖像輸入中的噪聲?!霸肼暋敝笩o關(guān)緊要的信息(例如,標(biāo)記),對它的刪除不會實質(zhì)性影響二級圖像的完整性。二級圖像輸入中噪聲的消除能夠得到平滑圖象所造成的數(shù)據(jù)壓縮改善。二級圖像中有噪聲的區(qū)域通常會顯示出相對小的連接性。例如,在白背景上僅包含一個連接雜散標(biāo)記的區(qū)域,只會有一個連接組分。
顯然,群集系統(tǒng)610和/或激活檢測系統(tǒng)620可以按這里的定義用一個或多個計算機組分來實施。
參照圖7,說明符合本發(fā)明一個方面的可選二級編碼系統(tǒng)700。可選二級編碼系統(tǒng)700包括二級編碼系統(tǒng)600、無損二級編碼器710和選擇組分720。
無損二級編碼器710可采用無損二級編碼技術(shù)。例如無損二級編碼器710可以采用不用算術(shù)編碼的編碼處理(BLC),但其性能接近于諸如JBIG,JBIG-2和JB2等現(xiàn)代編碼器的性能。通常,二級編碼器(BLC)用兩個基于上下文的自適應(yīng)模塊1)用低分辨率控制的自適應(yīng)預(yù)測器,用來將原始象素明顯地映像到預(yù)測錯誤的象素,和2)反向自適應(yīng)運行長度賴斯(RLR)編碼器,對預(yù)測錯誤象素編碼。對通常用上下文相關(guān)率估算對象素預(yù)測和自適應(yīng)熵編碼控制的常用方法是相反的。出于簡單,在許多應(yīng)用中,BLC相對其它當(dāng)前編碼器,還是一種較好的選擇。
二級圖像壓縮編碼始于象素預(yù)測過程和錯誤發(fā)生預(yù)測過程。象素預(yù)測過程常承擔(dān)基于四周象素來預(yù)測一個象素值(例如,是0或1)。更講究些,通過計算上下文相關(guān)率估算作象素預(yù)測。上下文實質(zhì)是四鄰已編碼象素,構(gòu)成一個所謂模板的模式。本發(fā)明能采用任何標(biāo)準(zhǔn)模板。上下文可看作是光柵順序的規(guī)定數(shù)量像素值的矢量列表。這些構(gòu)成一個能唯一確定上下文二進(jìn)制字。把該二進(jìn)制字認(rèn)作上下文索引。
用首先生成和初始化象素幾率表來計算上下文相關(guān)率估算,這是對每個可能的上下文索引賦一個初始幾率,較可取的是設(shè)初始幾率為0.5(即,上下文相關(guān)象素是黑或白為等幾率),但在編碼器和解碼器之間要預(yù)防對幾率值標(biāo)稱的四舍五入問題。較可取的是選擇一個整數(shù)代表白象素的幾率為100%。例如,在本發(fā)明的實施例中用數(shù)字“8”。這樣,表示后述初始值的標(biāo)稱幾率將是“4”。
對每個象素,按光柵順序,用已編碼象素模式確定上下文索引并從表中讀出標(biāo)稱幾率。如果幾率是0.5或0.5以上(即,上例中標(biāo)稱幾率是4),則預(yù)測該象素為白,并賦相應(yīng)二進(jìn)制值(例如,象素值為“0”)。要注意,第一次遇到的上下文索引,預(yù)測總是白象素,因為開始對表中的每個上下文索引賦的標(biāo)稱幾率是4。然后調(diào)整標(biāo)稱預(yù)測值。如果想被預(yù)測的象素是白,則提高一個預(yù)定量(例如,1);相反認(rèn)為被預(yù)測象素是黑,則降低一個預(yù)定量(例如,1)標(biāo)稱幾率調(diào)整的結(jié)果如果它降到0以下,則截到0;如果它升過最大值,則標(biāo)稱幾率為最大值-1。這樣,幾率隨編碼圖像變化,并能預(yù)測象素位置,這被稱作反向自適應(yīng)象素預(yù)測。因為解碼器能完成相同的幾率估算調(diào)整,而不用將明顯的上下文幾率信息發(fā)送到解碼器。
再計算預(yù)測錯誤。實際上對二級圖像中每個象素或黑或白的預(yù)測象素值和實際象素比較,計算預(yù)測錯誤。這樣,只要發(fā)送與錯誤預(yù)測有關(guān)的數(shù)據(jù)。在大多數(shù)情況,預(yù)測是正確的所以可做到數(shù)據(jù)是相當(dāng)節(jié)省,以后會講到解碼器完成同樣的預(yù)測處理,并得到包括錯誤的同樣結(jié)果。因此,所有的解碼器需要知道哪些預(yù)測象素值是錯誤的,這樣在圖像重建時,可改變它們從白到黑或從黑到白。具體用二進(jìn)制技術(shù)計算預(yù)測錯誤,將圖像中每個象素的實際值和它的預(yù)測值進(jìn)行“或”邏輯運算。這樣,如果實際象素值和預(yù)測值匹配(例如,都是‘0’或都是‘1”),則給所謂預(yù)測錯誤圖像中該象素位置賦“0”。但是,如果實際象素值和預(yù)測值不同,則給預(yù)測錯誤圖像中的相應(yīng)象素位置賦“1”。
二級圖像編碼的下一階段包括使用一個上下文相關(guān)、反向自適應(yīng)、運行長度賴斯(RLR)編碼過程。因為發(fā)現(xiàn)預(yù)測值常常和實際值匹配,所以預(yù)測錯誤圖像大部分是“0”。使得預(yù)測錯誤圖像特別適合于進(jìn)一步壓縮,甚至允許有損信息發(fā)送。為了編碼預(yù)測錯誤圖像,比較喜歡用RLR編碼技術(shù)。RLR編碼器常是一個可變長度——可變長度熵編碼器,其中連續(xù)運行的2k個零,用單個0構(gòu)成的代碼字表示;后續(xù)1的部分運行的r(r<2k)個零,用一個1后面再跟r的k位二進(jìn)制字表示組成的代碼字表示。變量k定義為發(fā)送一個代碼字以前在預(yù)測錯誤圖像中零的最大運行長度。調(diào)整這個變量來控制編碼操作的效率。較喜歡用的技術(shù)是用反向自適應(yīng)調(diào)整k。該方法包括先選擇一個k的初始值,然后根據(jù)是否發(fā)生一個“0”代碼字或發(fā)生一個“1+k位二進(jìn)制字”代碼字來向上或向下調(diào)節(jié)增量。符合本發(fā)明的RLR編碼技術(shù)還與前述上下文有關(guān)。具體說,建立給每個上下文索引賦k值的編碼表。刷新編碼表以反映在二級圖像編碼期間k值的變化,下面會進(jìn)行解釋。
前面提到的上下文有關(guān),反向自適應(yīng)RLR編碼技術(shù)包括先初始化所述編碼表,將每個與上下文索引相關(guān)的k值設(shè)為所述的初始值(例如,k=2)。此外,將每個上下文賦給標(biāo)為賴斯參數(shù)k’的k變量的標(biāo)稱版本。例如,單個標(biāo)稱因子乘上當(dāng)前k值產(chǎn)生當(dāng)前k’值,它比k值要大。
當(dāng)對象素位置建立預(yù)測錯誤值時,目前的RLR編碼器按照前述預(yù)測錯誤決定過程,確定該象素位置相關(guān)的上下文索引,然后從編碼表中讀出當(dāng)前賦予該上下文索引的k值。在所考慮象素位置為圖像中按光柵次序的第一個象素(即左上角的象素)的情況,用表中讀出的相關(guān)k值計算運行長度,常等于2k,運行長度表示按光柵次序連貫的白象素的數(shù)目,為生成一個“0”代碼字,它必須存在。當(dāng)算出下一個預(yù)測錯誤值時,決定它是“1”還是“0”。如果是“0”,則確定該值是否處于已算出的運行長度的“中間”,還是表示運行長度的末尾。如果不代表運行末尾,則不產(chǎn)生代碼字。如果該預(yù)測錯誤值表示運行末尾,則發(fā)送一個“0”代碼字。當(dāng)然,為了知道預(yù)測錯誤值是否表示當(dāng)前運行長度的末尾,現(xiàn)在的RLR編碼器必須保持跟蹤已經(jīng)遇到多少個“0”。常喜歡用在編碼表中包括運行計數(shù)器的做法,具體說,每個上下文索引有單獨的運行計數(shù)器。在一個實施例中,將運行計數(shù)器初始設(shè)置成算出的運行長度值,然后,每遇到前面討論過的一個“0”,包括序列中的第一個,計數(shù)器減1。當(dāng)計算器減到零,想要當(dāng)前處理的預(yù)測錯誤值是當(dāng)前運行長度的末尾。另一方面,在運行期間,遇到任意次的預(yù)測錯誤值為“1”,則現(xiàn)在的RLR編碼器產(chǎn)生一個“1+k位二進(jìn)制字”代碼,其中k位二進(jìn)制字表示在當(dāng)前運行中先于“1”之前所遇到“0”的數(shù)目。用前述運行計數(shù)器很容易決定“0”的數(shù)目,只要運行開始時,將該象素位置相關(guān)的上下文索引給計數(shù)器賦值。一旦產(chǎn)生一個代碼字,無論它是“0”,還是“1+k位二進(jìn)制字”,正是用產(chǎn)生的下一預(yù)測錯誤值來啟動另一次運行,與第一象素位置一樣,確定與預(yù)測錯誤值的象素位置相關(guān)的上下文索引,并重復(fù)上述過程。
此外,實質(zhì)上每產(chǎn)生一次代碼字,則與形成代碼字的運行相關(guān)的k值都被調(diào)整,常這樣來實現(xiàn),如果產(chǎn)生的代碼字是“0”,則參數(shù)k增加一個預(yù)定量。相反,如果代碼字不是“0”,則參數(shù)k減去一個預(yù)定量。預(yù)定量是可變的,可以與當(dāng)前值k’有關(guān)。新的k值為新的k’值除前面提到的標(biāo)稱因子。然后將新的k’值替代以前的值存入編碼表。按整數(shù)步長調(diào)整k’,有可能實現(xiàn)RLR參數(shù)k的細(xì)調(diào)整,對優(yōu)化編碼性能很有必要,當(dāng)僅保持整數(shù)算術(shù)時,有必要允許解碼器精確跟蹤k調(diào)整步驟。
選擇組分720允許在用無損二級編器710進(jìn)行無損二級編碼和二級編碼系統(tǒng)(例如,采用群集(無損或有損))之間進(jìn)行選擇。例如,選擇可根據(jù)用戶喜好和/或二級編碼系統(tǒng)600中的群集系統(tǒng)610。在一個實例中,群集系統(tǒng)610決定用無損二級編碼系統(tǒng)作更有效處理并提供一個輸出給選擇組分720,用來選擇無損二級編碼器710。
例如,對手寫記錄或別的圖形,群集系統(tǒng)610能決定群集比無損二級編碼(例如,因為沒有許多重復(fù)群集)更無效。相應(yīng)地,選擇組分720允許使用無損二級編碼器710。
可預(yù)料,無損二級編碼器710和/或選擇組分720可按這里的定義,用一個或多個計算機組分來實施。
轉(zhuǎn)向圖8,說明符合本發(fā)明一個方面的二級解碼系統(tǒng)800,該二級解碼系統(tǒng)800包括第一解碼器810、第二解碼器820、第三解碼器830、第四解碼器840、群集發(fā)生器850和組合器860。
第一解碼器810至少將部分位流輸入(例如,相應(yīng)編碼器產(chǎn)生的)解碼并提供群集的頁位置864。在一個實例中,第一解碼器810采用位-平面解碼。
第二解碼器820至少將部分位流輸入(例如,相應(yīng)編碼器產(chǎn)生的)解碼并提供解碼的字典位置868。在一個實例中,第二解碼器可采用LZX解碼。
第三解碼器830至少將部分位流輸入(例如,相應(yīng)編碼器產(chǎn)生的)解碼并提供解碼形狀總字典872和/或解碼形狀頁字典876。例如,第三解碼器可采用無損二級解碼。
第四解碼器840至少將部分位流輸入(例如,相應(yīng)編碼器產(chǎn)生的)解碼并產(chǎn)生非群集形狀存儲880。例如,第四解碼器可采用無損二級解碼。
群集發(fā)生器850至少部分根據(jù)頁位置、字典位置和總字典和頁字典中的至少一個來產(chǎn)生群集。
組合器860至少部分根據(jù)群集發(fā)生器850和/或非群集形狀存儲產(chǎn)生的群集提供一個二級輸出。
回顧上述所示示范系統(tǒng),參照圖9、10、11、12、13和14,本發(fā)明的方法將更好地實現(xiàn)。為簡化說明起見,將方法解釋成一系列的框圖??衫斫?,本發(fā)明并不限于框圖的次序,按照本發(fā)明,某些框圖可按不同次序或同在此顯示和描述的其他框圖并存。更有甚者,還要求有沒畫出的框圖實施符合本發(fā)明的方法。
本發(fā)明可用普通計算機可執(zhí)行指令的上下文來描述,諸如用一個或多個組分執(zhí)行的程序模塊。總之,程序模塊包括能完成特殊任務(wù)或?qū)崿F(xiàn)特殊抽象數(shù)據(jù)類型的子程序、程序、對象、數(shù)據(jù)結(jié)構(gòu)等等。一般,程序模塊的功能在多種環(huán)境可任意組合或分散。
轉(zhuǎn)向圖9,說明符合本發(fā)明一個方面的二級編碼方法900。在910,執(zhí)行群集分析。例如,能分析與位圖有關(guān)的連接組合信息,(例如,用群集形狀估算器110)。連接組分信息包括連接組分的顏色、水平大小、垂直大小、水平位置和/或垂直直位置。在914,提取群集。例如,可以把提取的群集存入總字典、頁字典和非群集形狀存儲。
接著,在920,對非群集形狀編碼。例如,非群集形狀可包括非文本字符的太小(例如,小于第三閥值)或太大(大于第四閾值)的連接組分,它們不作為群集為宜,可用無損二級編碼對非群集形狀編碼。
在930,確定總字典指針。至少部分根據(jù)群集分析和/或連接組分信息來確定指針。在940,對指針編碼。在一個實例中,因為群集已按頁上的位置存儲,采用適合文本字符串的壓縮算法(例如,LZX編碼)索引(例如,指針)傾向于形成一個與編碼次序相關(guān)似的文字字符串。
在950,確定頁位置,可以用連接組分信息確定總字典和/或頁字典中群集的頁位置。因此,對總字典和/或頁字典中的一個群集,用連接組分信息以及總字典或頁字典中字典條目特性來確定群集的頁位置。在960,對頁位置編碼,例如,用位-平面編碼。
在970,決定是否想用無損模式。如果970的決定是YES,則到980編碼殘留圖像,到990繼續(xù)處理。如果在970的決定是NO,則繼續(xù)處理990。在990,編碼頁字典。在992,編碼總字典(例如,用無損二級編碼)。
參照圖10和圖11,說明完成符合本發(fā)明一個方面的二級編碼方法1000。在1004,接收到群集的信息(例如,顏色、水平大小、垂直大小、水平位置和/或垂直位置)。
在1008,對該群集是否處于總字典中作決定。例如,在無損模式,可以根據(jù)該群集是否處于總字典中第一閥值量內(nèi)來確定。另外,在有損模式,可根據(jù)該群集是否處于總字典中第二閥值量內(nèi)來確定。
如果在1008的決定是YES,則繼續(xù)處理1012,如果在1008的決定是NO,則到1016再決定該群集是否在頁字典中。如果在1016的決定是NO,則到1020將該群集存入頁字典并繼續(xù)處理1012,如果在1016的決定是YES,則到1024,將該群集存入總字典。在1028,將該群集移出頁字典并繼續(xù)處理1012。
在1012,從位圖中提取群集。接著到1032,決定該頁上是否還有群集,如圖在1032的決定是YES,則繼續(xù)處理1004,如果在1032的決定是NO,則到1036對頁字典編碼。在1040,確定頁上群集的總字典指針。在1044,對頁上群集的總字典指針編碼。接著到1048,對是否還有更多的頁作決定。如果在1040的決定是YES,則繼續(xù)處理1004。如果在1040的決定是NO,則到1052對總字典編碼。
轉(zhuǎn)到圖12和圖13,說明完成符合本發(fā)明一個方面的群集分析方法1200。在1024確定群集。在1208完成激活檢測。在1212完成群集分析。在1216,對非群集形狀編碼。在1220確定總字典中的指針。在1224對指針編碼。在1228確定頁指針。在1232,對頁指針編碼。在1236,決定是否想用無損模式。如果在1236的決定是YES,則在1240編碼殘留圖象并繼續(xù)處理1244。如果在1236的決定是NO,則繼續(xù)處理1244。在1244對頁字典編碼。在1248,對總字典編碼。
參照圖14,說明符合本發(fā)明一個方面的二級解碼方法1400。在1410,解碼頁位置。在1420,解碼字典位置。在1430,解碼總字典。在1440,解碼頁字典。在1450,解碼非群集形狀。在1460,至少部分根據(jù)頁位置、字典位置和總字典和/或頁字典產(chǎn)生群集。在1470,組合產(chǎn)生的群集和非群集形狀,例如形成一個二級圖像。
顯然,本發(fā)明的系統(tǒng)和/或方法能夠用于壓縮文本,手寫體,圖畫,圖片諸如此類的所有壓縮系統(tǒng)。進(jìn)一步還將認(rèn)識到本發(fā)明的系統(tǒng)和/或方法還可用于包括,但不限于臺式個人計算機、影印機、文件掃描儀、光字符識別系統(tǒng)、PDA、傳真機、數(shù)碼相機、數(shù)碼攝像機、數(shù)字游戲機中的大陣列文件圖像應(yīng)用。
為了給本發(fā)明的多方面提供附加的上下文,企圖用圖15和以下的討論給操作環(huán)境1510簡單概括的描述,其中可以實施本發(fā)明的多個方面。當(dāng)本發(fā)明用計算機可執(zhí)行指令的一般上下文來描述時,諸如一個或多個計算機或者其他器件執(zhí)行的程序模塊,將認(rèn)識到本發(fā)明也可以組合其他程序模塊和/或作為硬件和軟件的一個組合來實施??傊?,然而程序模塊包括完成特定任務(wù)或者實現(xiàn)特定數(shù)據(jù)類型的子程序、程序、對象、組分和數(shù)據(jù)結(jié)構(gòu)等。操作環(huán)境1510只是合適的操作環(huán)境的一個實例,并不企圖對本發(fā)明的使用和功能范圍作任何限制。適合于本發(fā)明使用的其他熟知的計算機系統(tǒng),環(huán)境和/或結(jié)構(gòu)包括,但不限于個人計算機、手持或臺式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程用戶電子設(shè)備、PC網(wǎng)絡(luò)、小型計算機、大型計算機、包括上述系統(tǒng)或者設(shè)備的公布式計算環(huán)境等。
參照圖15,說明實施本發(fā)明多個方面的示范性環(huán)境1510,其中包括計算機1512。計算機1512包括處理單元1514,系統(tǒng)存儲器1516和系統(tǒng)總線1518。系統(tǒng)總線1518連接系統(tǒng)組件,系統(tǒng)組件包括但不限于連接到處理單元1514的系統(tǒng)存儲器1516。處理單元1514可以是任一可用處理器。雙微處理器或其他多處理器結(jié)構(gòu)亦可用作處理單元1514。
系統(tǒng)總線1518可以是幾種總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器、外圍總線或外部總線、和/或采用任何一種可用總線結(jié)構(gòu)的局部總線,可用總線結(jié)構(gòu)包括但不限于15位總線、工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)、微信道體系結(jié)構(gòu)(MSA)、擴(kuò)展ISA(EISA)、智能驅(qū)動電子設(shè)備(IDE)、VESA局部總線(VLB)、外圍部件內(nèi)聯(lián)(PCI)、通用串行總線、高級圖形端口(AGP)、個人計算機存儲卡國際聯(lián)合總線(PCMCIA)和小型計算機系統(tǒng)接口(SCSI)。
系統(tǒng)存儲器1516包括易失性存儲器1520和非易失性存儲器1522。包含在計算機1512各單元之間在諸如起動期間傳送信息的基本子程序的基本輸入/輸出系統(tǒng)(BIOS)存在非易失存儲器1522中。按照圖示方式,但不限于此,非易失存儲器1522可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦除ROM(EEPROM)或閃存。易失存儲器1520包括隨機存取存儲器(RAM),它用作外高速緩沖存儲器。按圖示方式,但并不限于此,現(xiàn)用RAM有許多方式,諸如對稱RAM(SRAM)、動態(tài)RAM(DRAM)、同步DRAM(SDRAM)、雙數(shù)據(jù)率SDRAM(DDR SDRAM)、增強型SDRAM(ESDRAM)、同步聯(lián)接DRAM(SLDRAM)和直接拉姆總線RAM(DRRAM)。
計算機1512還包括可卸/不可卸、易失/非易失計算機存儲媒體。圖15示出例如磁盤存儲器1524。磁盤存儲器1524包括,但并不限于磁盤驅(qū)動器件、軟盤驅(qū)動器、磁帶驅(qū)動器、Jazz驅(qū)動器、Zip驅(qū)動器、LS-100驅(qū)動器、閃存卡或記憶棒。此外,磁盤存儲器1524可包括單獨的存儲媒體或和別的存儲媒體組合的存儲媒體。別的存儲媒體包括,但不限于諸如致密磁盤ROM器件(CD_ROM)的光盤驅(qū)動器、CD可記錄驅(qū)動器(CD-R驅(qū)動器)、CD可重寫驅(qū)動器(CD-RW驅(qū)動器)或數(shù)字多用磁盤ROM驅(qū)動器(DVD-ROM)。為便于磁盤存儲器件1524和系統(tǒng)總線1518連接,通常用可卸或非可卸接口,如接口1526。
顯然,圖15描述了用作用戶和合適操作環(huán)境1510的基本計算機資源之間中間體的軟件。這種軟件包括操作系統(tǒng)1528,操作系統(tǒng)1528可存在磁盤存儲器1524中,用來控制和分配計算機系統(tǒng)1512的資源。系統(tǒng)應(yīng)用程序1530通過存在系統(tǒng)存儲器1516或存在磁盤存儲1524上的程序模塊1532和程序數(shù)據(jù)1534,由操作系統(tǒng)1528管理資源。顯然,本發(fā)明可以用各種操作系統(tǒng)或操作系統(tǒng)組合來實施。
用戶通過輸入設(shè)備1536,將命令或信息輸入計算機1512,輸入設(shè)備1536包括,但不限于這些定點設(shè)備,諸如鼠標(biāo)、跟蹤球、輸入筆、觸模式小鍵盤、鍵盤、話筒、游戲棒、游戲板、衛(wèi)星盤、掃描儀、TV調(diào)頻卡、數(shù)碼相機、數(shù)碼攝像機、網(wǎng)絡(luò)攝像機等等。這些和其他輸入設(shè)備通過系統(tǒng)總線1518經(jīng)接口1538連到處理單元1516,接口1538包括例如串行口、并行口、游戲口和多用串行總線(USB),輸出設(shè)備1540采用與輸入設(shè)備1536同類的某些接口。這樣,例如用USB接口給計算機1512提供輸入和從計算機1512輸出信息到輸出設(shè)備1540,給出的輸出適配器1542是說明某些輸出設(shè)備1540,如在其它輸出設(shè)備1540之間的監(jiān)示器、揚聲器和打印機需要特殊的適配器。輸出適配器1542包括,按說明方式但并不限于,提供輸出設(shè)備1540和系統(tǒng)總線1518之間多種連接的視頻和音頻卡,應(yīng)注意到其他設(shè)備和/或設(shè)備系統(tǒng)都提供輸入和輸出功能,諸如遠(yuǎn)程計算機1544。
計算機1512采用邏輯連接連到一臺或多臺遠(yuǎn)程計算機,諸如遠(yuǎn)程計算機1544,就能在網(wǎng)絡(luò)環(huán)境下操作。遠(yuǎn)程計算機1544可以是個人計算機、服務(wù)器、路由器、PC網(wǎng)絡(luò)、工作站、基于微處理器的器具、同級設(shè)備或其他公用網(wǎng)節(jié)點等,通常包括相對計算機1512描述的許多或所有組元。簡化起見,只用一個存儲器存儲設(shè)備1546和遠(yuǎn)程計算機1544連接。遠(yuǎn)程計算機1544在邏輯上通過網(wǎng)絡(luò)接口1548跟計算機1512連接,在物理上是經(jīng)由通訊連接1550連接。網(wǎng)絡(luò)接口1548包括通訊網(wǎng)絡(luò),如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI),同軸電纜分布數(shù)據(jù)接(CDDI),以太網(wǎng)/IEEE1502.3和令牌環(huán)/IEEE1502.5等。WAN技術(shù)包括,但并不限于,點對點鏈路,電路開關(guān)網(wǎng)絡(luò),如綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)和隨后的變異,報文分組交換網(wǎng)絡(luò)和數(shù)字用戶環(huán)路(DSL)。
通訊連接1550是連接網(wǎng)絡(luò)接口1548到總線1518所用的硬件/軟件。圖示計算機1512內(nèi)部的通訊連接1550,也可是在計算機1512的外部。連接到網(wǎng)絡(luò)接口1548所必需的硬件/軟件包括,僅為示例,內(nèi)部和外部技術(shù)諸如,包括正規(guī)電話類調(diào)制解調(diào)器,有線調(diào)制解碼器和數(shù)字用戶環(huán)路調(diào)制解調(diào)器等調(diào)制解調(diào)器,綜合業(yè)務(wù)數(shù)字網(wǎng)絡(luò)適配器和以太網(wǎng)卡。
以上描述包括了本發(fā)明的實例。當(dāng)然,不可能描述本發(fā)明用的組分和方法的每個可想到的組合,但這方面的普通技術(shù)人員都可認(rèn)識到本發(fā)明還可有許多進(jìn)一步的組合和修正。相應(yīng)地,本發(fā)明力圖包羅歸入所附權(quán)利要求的精神和范圍的所有這種選擇,修正和變動。不僅如此,本發(fā)明還力圖將詳細(xì)描述或權(quán)利要求中用的術(shù)語“包括”加以擴(kuò)展。傾向類似術(shù)語“由……組成”。在權(quán)利要求中是被用作一個過渡字,隨后加以解釋。
權(quán)利要求
1.一種二級編碼系統(tǒng),其特征在于,它包括群集形狀估算器,它分析與一個文件相關(guān)的連接組分信息,提取群集并將它們存進(jìn)形狀總字典、形狀頁字典和非群集形狀存儲中的至少一個;位圖的群集組分估算,它決定群集在總字典中的存儲位置;以及群集位置估算器,它決定總字典和頁字典中至少一個的群集在文件上的頁位置。
2.如權(quán)利要求1所述的二級編碼系統(tǒng),其特征在于,還包括對從所述群集位置估算器接收到的所述頁位置進(jìn)行編碼的第一編碼器。
3.如權(quán)利要求2所述的二級編碼系統(tǒng),其特征在于,還包括對從所述位圖群集組分估算接收到的所述字典位置進(jìn)行編碼的第二編碼器。
4.如權(quán)利要求3所述的二級編碼系統(tǒng),其特征在于,還包括對所述頁字典和所述總字典中至少一個進(jìn)行編碼的第三編碼器。
5.如權(quán)利要求4所述的二級編碼系統(tǒng),其特征在于,還包括對所述非群集形狀存儲進(jìn)行編碼的第四編碼器。
6.如權(quán)利要求1所述的二級編碼系統(tǒng),其特征在于,所述連接組分信息包括所述連接組分的顏色、水平大小、垂直大小、水平位置和垂直位置中的至少一個。
7.如權(quán)利要求1所述的二級編碼系統(tǒng),其特征在于,所述頁位置包括群集間的水平間隙。
8.如權(quán)利要求1所述的二級編碼系統(tǒng),其特征在于,所述頁位置包括平均垂直位置。
9.如權(quán)利要求8所述的二級編碼系統(tǒng),其特征在于,所述頁位置還包括所述平均垂直位置和群集的垂直位置之差。
10.如權(quán)利要求2所述的二級編碼系統(tǒng),其特征在于,所述第一編碼器至少部分采用基于位平面編碼。
11.如權(quán)利要求3所述的二級編碼系統(tǒng),其特征在于,所述第二編碼器至少部分采用基于LZX編碼。
12.如權(quán)利要求4所述的二級編碼系統(tǒng),其特征在于,所述第三編碼器至少部分采用基于無損二級編碼。
13.如權(quán)利要求5所述的二級編碼系統(tǒng),其特征在于,所述第四編碼器至少部分采用基于無損二級編碼。
14.如權(quán)利要求1所述的二級編碼系統(tǒng),其特征在于,所述群集形狀估算器至少部分根據(jù)所述存儲群集和某個群集的加權(quán)平均修正總字典中存儲的群集。
15.如權(quán)利要求1所述的二級編碼系統(tǒng)用于影印機。
16.如權(quán)利要求1所述的二級編碼系統(tǒng)用于文件掃描儀。
17.如權(quán)利要求1所述的二級編碼系統(tǒng)用于光字符識別系統(tǒng)。
18.如權(quán)利要求1所述的二級編碼系統(tǒng)用于個人數(shù)字輔助設(shè)備。
19.如權(quán)利要求1所述的二級編碼系統(tǒng)用于傳真機。
20.如權(quán)利要求1所述的二級編碼系統(tǒng)用于數(shù)碼相機。
21.如權(quán)利要求1所述的二級編碼系統(tǒng)用于數(shù)碼攝像機。
22.如權(quán)利要求1所述的二級編碼系統(tǒng)用于分段分層圖像系統(tǒng)。
23.如權(quán)利要求1所述的二級編碼系統(tǒng)用于視頻游戲機。
24.如權(quán)利要求1所述的二級編碼系統(tǒng)用于臺式個人計算機。
25.一種二級編碼系統(tǒng),其特征在于,它包括群集系統(tǒng),它確定與多個連接組分相關(guān)的信息;群集形狀估算器,它分析與文件有關(guān)的連接組分信息,提取群集并將它們存入形狀總字典、形狀頁字典和非群集形狀存儲中的至少一個;位圖的群集組分估算,它決定總字典中存的群集的字典位置;以及群集位置估算器,它決定總字典和頁字典中至少一個的群集在文件上的頁位置。
26.如權(quán)利要求25所述的二級編碼系統(tǒng),其特征在于,還包括對從所述群集位置估算器接收到的所述頁位置進(jìn)行編碼的第一編碼器。
27.如權(quán)利要求26所述的二級編碼系統(tǒng),其特征在于,還包括對從所述位圖群集組分估算接收到的所述字典位置進(jìn)行編碼的第二編碼器。
28.如權(quán)利要求27所述的二級編碼系統(tǒng),其特征在于,還包括對所述頁字典和所述總字典中至少一個進(jìn)行編碼的第三編碼器。
29.如權(quán)利要求28所述的二級編碼系統(tǒng),其特征在于,還包括對所述非群集形狀存儲進(jìn)行編碼的第四編碼器。
30.如權(quán)利要求25所述的二級編碼系統(tǒng),其特征在于,所述連接組分信息包括連接組分的水平大小、垂直大小、水平位置和垂直位置中的至少一個。
31.如權(quán)利要求25所述的二級編碼系統(tǒng),其特征在于,還包括激活檢測系統(tǒng),它根據(jù)二級圖像輸入提供二級圖像輸出,所述二級圖像輸出具有縮減的顫動/半色調(diào)和縮減的噪聲中的至少一個。
32.如權(quán)利要求26所述的二級編碼系統(tǒng),其特征在于,所述第一編碼器至少部分采用基于位平面編碼。
33.如權(quán)利要求27所述的二級編碼系統(tǒng),其特征在于,所述第二編碼器至少部分采用基于LZX編碼。
34.如權(quán)利要求28所述的二級編碼系統(tǒng),其特征在于,所述第三編碼器至少部分采用基于無損二級編碼。
35.如權(quán)利要求29所述的二級編碼系統(tǒng),其特征在于,所述第四編碼器至少部分采用基于無損二級編碼。
36.一種二級解碼系統(tǒng),其特征在于,包括第一解碼器,對至少部分位流解碼,所述第一解碼器解碼頁位置;第二解碼器,對至少部分位流解碼,所述第二解碼器解碼字典位置;第三解碼器,對至少部分位流解碼,所述第三解碼器解碼形狀總字典和形狀頁字典;第四解碼器,對至少部分位流解碼,所述第四解碼器解碼非群集形狀存儲;群集發(fā)生器,它至少部分根據(jù)頁位置、字典位置和所述總字典和所述頁字典中的至少一個來產(chǎn)生群集;以及組合器,它至少部分根據(jù)所述產(chǎn)生的群集和所述非群集形狀存儲提供二級輸出。
37.如權(quán)利要求36所述的二級解碼系統(tǒng),其特征在于,所述第一解碼器至少部分采用基于位平面解碼。
38.如權(quán)利要求36所述的二級解碼系統(tǒng),其特征在于,所述第二解碼器至少部分采用基于LZX解碼。
39.如權(quán)利要求36所述的二級解碼系統(tǒng),其特征在于,所述第三解碼器至少部分采用基于無損二級解碼。
40.如權(quán)利要求36所述的二級解碼系統(tǒng),其特征在于,所述第四解碼器至少部分采用基于無損二級解碼。
41.一種二級編碼方法,其特征在于,包括以下步驟完成群集分析;編碼非群集形狀;確定總字典中的指針;以及編碼所述指針。
42.如權(quán)利要求41所述的方法,其特征在于,還包括下列步驟中的至少一個確定群集的頁位置;編碼所述頁位置;編碼頁字典;以及編碼所述總字典。
43.如權(quán)利要求41所述的方法,其特征在于,還包括下列步驟中的至少一個編碼殘留圖像;確定群集;以及完成激活檢測。
44.如權(quán)利要求42所述的方法,其特征在于,完成群集分析的步驟包括下列步驟中的至少一個決定群集是否處于所述總字典中;如果所述群集不在所述總字典中,則決定所述群集是否處于所述頁字典中;如果所述群集處于所述頁字典中,則將所述群集存入所述總字典中;如果所述群集處于所述頁字典中,則將所述群集移出所述總字典;如果所述群集不在所謂頁字典中,則將所述群集存入所述頁字典中;以及從位圖提取所述群集。
45.一種二級解碼方法,其特征在于,包括解碼頁位置;解碼字典位置;解碼總字典;以及至少部分根據(jù)所述頁位置、所述字典位置和所述總字典產(chǎn)生群集,以提供二級輸出。
46.如權(quán)利要求45所述的方法,其特征在于,還包括下列步驟中的至少一個解碼頁字典;解碼非群集形狀;組合所述群集和所述非群集形狀,以提供所述二級輸出。
47.一種在用于二級編碼的兩個或多個計算機組分之間傳輸?shù)臄?shù)據(jù)包,其特征在于,所述數(shù)據(jù)包包括包括已編碼的頁位置的第一數(shù)據(jù)字段;包括已編碼的字典位置的第二數(shù)據(jù)字段;包括已編碼的總字典和已編碼的頁字典中的至少一個的第三數(shù)據(jù)字段;以及包括已編碼的非群集形狀存儲的第四數(shù)據(jù)字段。
48.一種存儲二極編碼系統(tǒng)的計算機可執(zhí)行組分的計算機可讀媒體,其特征在于,它包括群集形狀估算器,分析與文件有關(guān)的連接組分信息,提取群集并將它們存入形狀總字典、形狀頁字典和非群集形狀存儲中的至少一個;位圖的群集組分估算,決定所述總字典中存的群集的字典位置;以及群集位置估算器,決定所述總字典和所述頁字典中至少一個的群集在文件上的頁位置。
49.如權(quán)利要求48所述的計算機可讀媒體,其特征在于,還包括對從所述群集位置估算器接收到的所述頁位置進(jìn)行編碼的第一編碼器。
50.如權(quán)利要求49所述的計算機可讀媒體,其特征在于,還包括對從所述位圖群集組分估算接收到的所述字典位置進(jìn)行編碼的第二編碼器。
51.如權(quán)利要求50所述的計算機可讀媒體,其特征在于,還包括對所述頁字典和所謂總字典中至少一個進(jìn)行編碼的第三編碼器。
52.如權(quán)利要求51所述的計算機可讀媒體,其特征在于,還包括對非群集形狀存儲進(jìn)行編碼的第四編碼器。
53.一種存儲二極解碼系統(tǒng)的計算機可執(zhí)行組分的計算機可讀媒體,其特征在于,它包括解碼至少部分位流的第一解碼器,所述第一解碼器解碼頁位置;解碼至少部分位流的第二解碼器,所述第二解碼器解碼字典位置;解碼至少部分位流的第三解碼器,所述第三解碼器解碼形狀總字典和形狀頁字典;解碼至少部分位流的第四解碼器,所述第四解碼器解碼非群集形狀存儲;群集發(fā)生器,它至少部分根據(jù)所述頁位置、字典位置和所述總字典和所述頁字典中的至少一個來產(chǎn)生群集;以及組合器,它至少部分根據(jù)所述已產(chǎn)生的群集和所述非群集形狀存儲提供二級輸出。
54.一種二級編碼系統(tǒng),其特征在于,包括至少部分根據(jù)與文件相關(guān)的連接組分信息分析群集形狀的裝置;提取群集并將它們存入形狀總字典、形狀頁字典和非群集形狀存儲中的至少一個的裝置;決定總字典中存儲群集的字典位置的裝置,以及決定所述總字典和所述頁字典中至少一個的群集在文件上的頁位置的裝置。
55.如權(quán)利要求54所述的系統(tǒng),其特征在于,還包括對所述頁位置進(jìn)行編碼的裝置。
56.如權(quán)利要求55所述的系統(tǒng),其特征在于,還包括對所述字典位置進(jìn)行編碼的裝置。
57.如權(quán)利要求56所述的系統(tǒng),其特征在于,還包括對所述頁字典和所述總字典中的至少一個進(jìn)行編碼的裝置。
58.如權(quán)利要求57所述的系統(tǒng),其特征在于,還包括對非群集形狀存儲進(jìn)行編碼的裝置。
59.一種二級解碼系統(tǒng),其特征在于,包括對頁位置進(jìn)行解碼的裝置;對字典位置進(jìn)行解碼的裝置;對形狀總字典和形狀頁字典中至少一個進(jìn)行解碼的裝置;對非群集形狀存儲進(jìn)行解碼的裝置;至少部分根據(jù)所述頁位置、所述字典位置和所述總字典和所述頁字典中的至少一個產(chǎn)生群集的裝置;以及將所述已產(chǎn)生的群集和所述非群集形狀存儲進(jìn)行組合,以提供二級輸出的裝置。
全文摘要
對用墨滴群集顯式表示的二級圖像進(jìn)行壓縮的系統(tǒng)和方法。本發(fā)明包括群集形狀估算器,它能分析連接組分信息,提取群集并將群集存入總字典、頁字典或非群集形狀存儲中。位圖的群集組分估算決定總字典中存儲群集的字典位置,然后對字典位置編碼。群集位置估算器決定總字典和/或頁字典中群集的頁位置,然后對頁位置編碼。再有,還對總字典、頁字典和非群集形狀存儲進(jìn)行編碼。
文檔編號G06T9/00GK1453724SQ0311030
公開日2003年11月5日 申請日期2003年4月2日 優(yōu)先權(quán)日2002年4月25日
發(fā)明者E·L·倫肖, P·Y·?,?shù)? H·S·瑪爾瓦 申請人:微軟公司