專利名稱:掃描圖像實(shí)時(shí)壓縮/解壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種掃描圖像壓縮/解壓縮方法,特別涉及一種利用位(bit)為讀取單元的掃描圖像壓縮/解壓縮方法,以提高重復(fù)數(shù)碼的可能性,并適用于未來12、14或更高位解析的模擬/數(shù)字轉(zhuǎn)換裝置。
圖像壓縮/解壓縮技術(shù)的主要目的不外于加速圖像傳遞的速度。應(yīng)用于掃描器(scanner)的壓縮/解壓縮技術(shù),便是應(yīng)用在掃描器與計(jì)算機(jī)主機(jī)之間的傳遞,以增快圖像傳送至主機(jī)的速度。當(dāng)掃描的圖像經(jīng)過模擬/數(shù)字轉(zhuǎn)換裝置轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù)后,便可開始進(jìn)行圖像的壓縮。壓縮后的圖像數(shù)據(jù)傳送到一隨機(jī)存取存儲(chǔ)器,以供主機(jī)存取。主機(jī)便開始執(zhí)行解壓縮,待整個(gè)圖像完成解壓縮后便可輸出至熒光屏,供使用者作進(jìn)一步的處理。
公知的掃描圖像的處理在讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的圖像數(shù)據(jù)時(shí),皆以8位(bit)為單位來處理,亦即每次只讀取8個(gè)位,再針對(duì)所讀取的位組的特性來壓縮/解壓縮。此讀取方法比較不具彈性,且當(dāng)模擬/數(shù)字轉(zhuǎn)換裝置的解析已從原先的8位提高至12、14或更高位時(shí),此讀取方式將無法適用。而且,每次皆以8位為處理單位,由于失真處理的關(guān)系,容易產(chǎn)生如馬賽克的現(xiàn)象。甚且,8位的數(shù)據(jù)量小,其位的重復(fù)性也相對(duì)較小,壓縮的效率也較差。
本發(fā)明的主要目的是提出一種不會(huì)產(chǎn)生馬賽克現(xiàn)象的圖像壓縮/解壓縮方法,并可使壓縮時(shí)尋得重復(fù)數(shù)碼的可能性提高,進(jìn)而達(dá)到快速壓縮/解壓縮的目的。
本發(fā)明的另一目的在于提出一種不受限于模擬/數(shù)字轉(zhuǎn)換裝置的解析效率的圖像壓縮/解壓縮方法,以使掃描圖像的壓縮/解壓縮的方法可適用于未來12、14或更高位解析的模擬/數(shù)字轉(zhuǎn)換裝置。
依據(jù)上述的目的,本發(fā)明的壓縮方法在編碼時(shí),先設(shè)定每一位組(byte)的格式為具有識(shí)別碼(2 bits),及計(jì)數(shù)碼(6 bits)兩部分。并將讀取的數(shù)據(jù)以位平面,區(qū)分高位平面及低位平面分別來處理。在讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的數(shù)據(jù)時(shí),每一位組最多可讀取63(26-1)個(gè)位。每一位組的識(shí)別碼代表該位的編碼性質(zhì),如高/低位或未編碼的數(shù)據(jù)。而計(jì)數(shù)碼部分則累計(jì)連續(xù)的同一性質(zhì)的編碼的位數(shù)。編碼完成后便將位組輸出至一隨機(jī)存取存儲(chǔ)器供主機(jī)存取。
在解壓縮時(shí),主機(jī)便存取隨機(jī)存取存儲(chǔ)器中的數(shù)據(jù)。同時(shí),并有一可至少容納63位組的緩沖器,以供暫存解壓縮后的數(shù)據(jù)。解壓縮時(shí),只要查詢位組的識(shí)別碼,便可知道其編碼代表的是高/低位或未編碼的數(shù)據(jù)。然后再依照其計(jì)數(shù)碼的數(shù)目,依序填入緩沖器中相對(duì)應(yīng)的位置中,如此便可完成解壓縮的程序。完成后,便可輸出整個(gè)緩沖器的圖像數(shù)據(jù),以供使用者作更進(jìn)一步的處理。
圖1A為本發(fā)明的編碼的位組格式。
圖1B為本發(fā)明的編碼的位組的識(shí)別碼種類。
圖2A為位平面的處理方式示意圖。
圖2B為位平面的處理方式的另一示意圖。
圖3為本發(fā)明的壓縮的流程圖。
圖4為本發(fā)明的解壓縮的流程圖。
現(xiàn)結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明。
為根本打破慣用的圖像數(shù)據(jù)的讀取方式,本發(fā)明先定義編碼的位組(byte)的格式,如圖1A所示。在一位組中,前兩個(gè)位代表識(shí)別碼11,后6個(gè)位則代表計(jì)數(shù)碼12。識(shí)別碼11有兩個(gè)位,因此可有4種組合,如圖1B所示。其中,“00”表示該位組中所編碼的皆為高位的數(shù)據(jù),即“1”。“01”表示該位組中所編碼的為低位的數(shù)據(jù),即“0”?!?0”表示該位組中的數(shù)據(jù)皆是尚未編碼的數(shù)據(jù),即原始數(shù)據(jù)。例如,當(dāng)圖像數(shù)據(jù)的重復(fù)性很低時(shí),便不須經(jīng)過編碼,可直接輸出?!?1”則代表備用,尚未定義。當(dāng)然,這四種可能的組合及定義可因人而異,只要能分別代表高位,低位,及未編碼等三種類別即可。
每筆編碼的位組有8位,去除前兩位的識(shí)別碼后,所剩的6個(gè)位,可用來記錄編碼時(shí)連續(xù)的同一性質(zhì)編碼的數(shù)目。因此,6個(gè)位最多可記錄63(26-1)個(gè)編碼的位。例如,“00111111”便表示有連續(xù)63個(gè)高位(“1”)的圖像數(shù)據(jù)。而,“01001111”便表示有連續(xù)30個(gè)低位(“0”)的圖像數(shù)據(jù)。
另外,本發(fā)明采用“位平面切片”的觀念來處理每一筆讀取的圖像數(shù)據(jù)。依據(jù)“位平面切片”的技術(shù),若一個(gè)圖像中的每個(gè)像素是以8位表示,便可將圖像當(dāng)作由八個(gè)1位的平面所構(gòu)成,如圖2A所示。其范圍由最不重要的位平面0至最重要的位平面7。依據(jù)8位的二進(jìn)位組,平面0包含組成圖像像素二進(jìn)位的所有最低位,平面7則包含所有組成圖像像素二進(jìn)位的所有最高位。如圖2B所示,讀入的每一位組的各個(gè)位將由高而低分別處理。也就是,處理位的順序是[A7][B7][C7]...[A6][B6][C6]...[A5][B5][C5]...[A4][B4][C4]...[A3][B3][C3]...[A2][B2][C2]...[A1][B1][C1]...[A0][B0][C0]...。
依此原理,一張圖像若以其中的一種位平面圖像來呈現(xiàn),則8個(gè)位平面將顯示出完全不同的圖像。高位平面的可壓縮性較高,而低位平面的數(shù)據(jù)重復(fù)性較小,因此壓縮較困難。對(duì)于最后三個(gè)低位的位平面數(shù)據(jù),可以不必編碼而直接傳遞。或是在傳遞高位平面的數(shù)據(jù)后,再以亂數(shù)方式補(bǔ)充低位平面的數(shù)據(jù),以降低解壓后數(shù)據(jù)的失真率。此為本領(lǐng)域的技術(shù)人員所常用的技術(shù),其目的在只針對(duì)壓縮效率大的圖像進(jìn)行壓縮。
依據(jù)上述的編碼格式及位平面的處理方法,本發(fā)明的方法每次讀取的數(shù)據(jù)最多為63個(gè)位組,因?yàn)橛?個(gè)位最多可記錄63筆數(shù)據(jù),而每筆數(shù)據(jù)當(dāng)作8個(gè)位平面來處理,所以每次處理的區(qū)塊便有63位組。
本發(fā)明的壓縮方法的詳細(xì)步驟如圖3所示301讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的數(shù)據(jù);302由于圖像的處理是依序一條一條地處理,因此將每一條掃描的圖像,以63個(gè)位組為一區(qū)塊,分成數(shù)個(gè)處理區(qū)塊;303依序處理所讀取的區(qū)塊的數(shù)據(jù),其處理程序如下3031依序讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的6個(gè)位;3032判斷此6個(gè)位的屬性?當(dāng)此6個(gè)位皆為“1”時(shí),執(zhí)行步驟3033;當(dāng)此6個(gè)位皆為“0”時(shí),執(zhí)行步驟3034;其它情況時(shí),執(zhí)行步驟3035;3033設(shè)定該位組的識(shí)別碼為“00”,并將該計(jì)數(shù)碼設(shè)為二進(jìn)位的“11”,并執(zhí)行步驟3036。3034設(shè)定該位組的識(shí)別碼為“01”,并將該計(jì)數(shù)碼設(shè)為二進(jìn)位的“11”,并執(zhí)行步驟3036。3035設(shè)定該位組的識(shí)別碼為“10”,并執(zhí)行步驟3038;3036判定下一位是否為同值,或該計(jì)數(shù)碼的六個(gè)位皆為“1”?如果是,便執(zhí)行步驟3037;否則,便執(zhí)行步驟3038。3037將該計(jì)數(shù)碼累進(jìn)1,并重復(fù)執(zhí)行步驟3036。3038輸出該位組至一存儲(chǔ)裝置。3039判斷是否已完成該區(qū)塊的處理?若是,則執(zhí)行步驟304;否則,執(zhí)行步驟3031;304判斷是否已完成所有區(qū)塊的處理?若是,則執(zhí)行步驟305;否則執(zhí)行步驟303。305結(jié)束。
在步驟3031,為增加數(shù)據(jù)的可壓縮性,可先將二進(jìn)位碼轉(zhuǎn)換成葛雷碼(gray code)。葛雷碼是對(duì)相鄰的位進(jìn)行XOR的運(yùn)算。由于葛雷碼有個(gè)獨(dú)特的性質(zhì),即經(jīng)過葛雷碼轉(zhuǎn)換后,相連的代碼字之間僅有一個(gè)位不同。因此,利用此特性,即使灰階有很小變化,也可在所有的位平面顯示出來,不會(huì)使畫面為一大片全黑或全白。
壓縮后的數(shù)據(jù)暫存在一隨機(jī)存取存儲(chǔ)器中,以供解壓縮裝置來處理。解壓縮的方法乃相對(duì)于壓縮方法進(jìn)行,其方法如下,而且解壓縮需要至少63位組的緩沖器存儲(chǔ)解壓縮后的數(shù)據(jù)。緩沖器的存儲(chǔ)器排列等同于壓縮前的圖像數(shù)據(jù)的排列。本發(fā)明的解壓縮的詳細(xì)步驟如下401依序讀取編碼的數(shù)據(jù),每次讀取一位組。402由該位組的識(shí)別碼,判斷該位組的屬性。403當(dāng)該位組的識(shí)別碼為“00”時(shí),依據(jù)該位組的計(jì)數(shù)器所記錄的數(shù),依序填入等量的“1”于緩沖器中相對(duì)應(yīng)的位置;即按照[A7][B7][C7]...[A6][B6][C6]...[A0][B0][C0]...等順序,由高位至低位開始填入等量的“1”。404當(dāng)該位組的識(shí)別碼為“01”時(shí),依據(jù)該位組的計(jì)數(shù)器所記錄的數(shù),依序填入等量的“1”于緩沖器中相對(duì)應(yīng)的位置;即按照[A7][B7][C7]...[A6][B6][C6]...[A0][B0][C0]...等順序,由高位至低位開始填入等量的“0”。405當(dāng)該位組的識(shí)別碼為“10”時(shí),則依序?qū)⒃撐唤M的計(jì)數(shù)碼的數(shù)據(jù),存入緩沖器中相對(duì)應(yīng)的位置。由于此位組尚未編碼,因此只要將計(jì)數(shù)碼的數(shù)據(jù)填入相對(duì)的位置即可。例如,如果該位組為“10101010”,且代表第5位的數(shù)據(jù),則分別依序?qū)ⅰ?01010”填入[A5][B5][C5][D5][E5][F5]中。406判斷緩沖器是否已填滿?如果是,執(zhí)行步驟407;否則,執(zhí)行步驟401。407輸出緩沖器中的數(shù)據(jù)。408判斷是否已完成所有數(shù)據(jù)的解壓縮?若是,執(zhí)行步驟409;否則,執(zhí)行步驟401。409結(jié)束。
如此當(dāng)每一區(qū)塊的圖像數(shù)據(jù)還原后,便將緩沖器中的數(shù)據(jù)輸入計(jì)算機(jī)主機(jī),直至完成所有區(qū)塊的轉(zhuǎn)換。其中,若原先的二進(jìn)位碼已轉(zhuǎn)換為葛雷碼,在執(zhí)行步驟407時(shí),由于所解壓縮的是葛雷碼,必須先將葛雷碼轉(zhuǎn)換為二進(jìn)位碼,才能將緩沖器中的數(shù)據(jù)輸入計(jì)算機(jī)。壓縮及解壓縮的步驟可同時(shí)進(jìn)行,只是必須以63個(gè)位組為單位。當(dāng)壓縮程序?qū)D像編碼為63個(gè)位組,然后傳送至存儲(chǔ)裝置后,解壓縮程序便可開始進(jìn)行。由于壓縮時(shí)是以63個(gè)位組為單位,因此,解壓縮程序必須等到63個(gè)位組都編碼完成后才可進(jìn)行。
本發(fā)明的方法可以軟件實(shí)施,也可將程序制作成專用集成芯片(ASIC),來執(zhí)行圖像的壓縮及解壓縮。綜上所述,本發(fā)明的壓縮/解壓縮方法在讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的數(shù)據(jù)時(shí)仍以位(bit)為單位,而非以位組(byte)為單位來處理,因此不但具有數(shù)碼變動(dòng)小的優(yōu)點(diǎn),而且容易尋得同值性數(shù)碼,所以圖像的壓縮效率較高。
另外,本發(fā)明的壓縮/解壓縮方法在圖像損失(loss)方面,因可針對(duì)一或二個(gè)位采取個(gè)別的處理,例如將255階降低為128階或64階,使圖像鈍化等,使用者并不容易察覺,且其改變較為柔和,不會(huì)產(chǎn)生公知類似馬賽克的現(xiàn)象。甚且,本發(fā)明的壓縮方法,可以選擇低位(low bit)的傳送,以一條線(oneline)抽樣傳送,或以責(zé)任循環(huán)周期(duty cycle)的觀念重建,因此可視圖像的傳輸量而定,非常具有彈性。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,且已達(dá)廣泛的實(shí)用功效,凡依本發(fā)明權(quán)利要求范圍所作的等同變化與修飾,皆屬本發(fā)明權(quán)利要求涵蓋的范圍內(nèi)。
權(quán)利要求
1.一種掃描圖像實(shí)時(shí)壓縮方法,包含步驟設(shè)定一位組,該位組包含識(shí)別碼,及計(jì)數(shù)碼;讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的數(shù)據(jù);區(qū)分該輸出的數(shù)據(jù)為多個(gè)處理區(qū)塊;依序處理所讀取的區(qū)塊的數(shù)據(jù),包括步驟(a)依序讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的6個(gè)位;(b)判定該六個(gè)位的屬性,并依據(jù)該六個(gè)位的屬性,設(shè)定該位組的識(shí)別碼;(c)當(dāng)該位組的識(shí)別碼表示高位或低位時(shí),設(shè)定該位組的計(jì)數(shù)碼為二進(jìn)位碼的“11”,并執(zhí)行步驟(e);(d)當(dāng)該位組的識(shí)別碼不為高位或低位時(shí),直接依序輸入六個(gè)位于該位組的計(jì)數(shù)碼;(e)該位組的計(jì)數(shù)碼累計(jì)連續(xù)且同值的位數(shù),直至該計(jì)數(shù)碼的六個(gè)位皆為“1”,或當(dāng)下一位不為同值;(f)當(dāng)該計(jì)數(shù)碼的六個(gè)位皆為“1”,或當(dāng)下一位不為同值時(shí),輸出該位組;(g)重復(fù)該步驟(a)~(f)直至完成所有圖像數(shù)據(jù)的編碼。
2.如權(quán)利要求1所述的方法,其中所述的步驟(a)還包含步驟(h)在讀取所述的模擬/數(shù)字轉(zhuǎn)換裝置所輸出的6個(gè)位時(shí),轉(zhuǎn)換所述的6個(gè)位為葛雷碼。
3.如權(quán)利要求1所述的方法,其中所述的識(shí)別碼為二個(gè)位,及所述的計(jì)數(shù)碼為六個(gè)位。
4.一種掃描圖像實(shí)時(shí)解壓縮方法,包含步驟依序讀取所述的編碼的位組數(shù)據(jù),每次讀取一位組;依據(jù)所讀取的位組的識(shí)別碼,判斷該位組的屬性;當(dāng)該讀取的位組的識(shí)別碼表示高位時(shí),依據(jù)該位組的計(jì)數(shù)碼所記錄的數(shù),依序填入等量的“1”于緩沖器中相對(duì)應(yīng)的位置;當(dāng)該讀取的位組的識(shí)別碼表示低位時(shí),依據(jù)該位組的計(jì)數(shù)碼所記錄的數(shù),依序填入等量的“0”于緩沖器中相對(duì)應(yīng)的位置;當(dāng)該讀取的位組的識(shí)別碼不為低位或高位時(shí),依序?qū)⒃撐唤M的計(jì)數(shù)碼的數(shù)據(jù),存入緩沖器中相對(duì)應(yīng)的位置;及當(dāng)該緩沖器已填滿時(shí),輸出該緩沖器中的數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,還包含步驟在輸出所述的緩沖器中的數(shù)據(jù)時(shí),轉(zhuǎn)換所述的葛雷碼為二進(jìn)位碼。
6.如權(quán)利要求4所述的方法,其中所述的緩沖器至少可容納63個(gè)位組。
7.一種掃描圖像實(shí)時(shí)壓縮/解壓縮方法,包含步驟(a)設(shè)定一位組,該位組包含識(shí)別碼,及計(jì)數(shù)碼;(b)讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的數(shù)據(jù);(c)區(qū)分該輸出的數(shù)據(jù)為多個(gè)處理區(qū)塊;(d)依序讀取模擬/數(shù)字轉(zhuǎn)換裝置所輸出的6個(gè)位;(e)判定該六個(gè)位的屬性,并依據(jù)該六個(gè)位的屬性,設(shè)定該位組的識(shí)別碼;(f)當(dāng)該位組的識(shí)別碼表示高位或低位時(shí),設(shè)定該位組的計(jì)數(shù)碼為二進(jìn)位碼的“11”,并累計(jì)連續(xù)且同值的位數(shù)于該位組的計(jì)數(shù)碼,直至該計(jì)數(shù)碼的六個(gè)位皆為“1”,或當(dāng)下一位不為同值;(g)當(dāng)該位組的識(shí)別碼不為高位或低位時(shí),直接依序輸入六個(gè)原始數(shù)據(jù)的位于該位組的計(jì)數(shù)碼;(h)當(dāng)該位組的計(jì)數(shù)碼的六個(gè)位皆為“1”,或當(dāng)下一位不為同值時(shí),輸出該位組;(i)重復(fù)步驟(d)至(h)直至完成所有圖像數(shù)據(jù)的編碼;(j)依序讀取該編碼的位組數(shù)據(jù),每次讀取一位組;(k)依據(jù)所讀取的位組的識(shí)別碼,判斷該位組的屬性;(l)當(dāng)該讀取的位組的識(shí)別碼表示高位時(shí),依據(jù)該位組的計(jì)數(shù)碼所記錄的數(shù),依序填入等量的“1”于緩沖器中相對(duì)應(yīng)的位置;(m)當(dāng)該讀取的位組的識(shí)別碼表示低位時(shí),依據(jù)該位組的計(jì)數(shù)碼所記錄的數(shù),依序填入等量的“0”于緩沖器中相對(duì)應(yīng)的位置;(n)當(dāng)該讀取的位組的識(shí)別碼不為低位或高位時(shí),依序?qū)⒃撐唤M的計(jì)數(shù)碼的數(shù)據(jù),存入緩沖器中相對(duì)的位置;及(o)當(dāng)該緩沖器已填滿時(shí),輸出該緩沖器中的數(shù)據(jù)。
8.如權(quán)利要求7所述的方法,其中所述的步驟(b)還包含步驟(p)在讀取所述的模擬/數(shù)字轉(zhuǎn)換裝置所輸出的6個(gè)位時(shí),轉(zhuǎn)換所述的6個(gè)位為葛雷碼。
9.如權(quán)利要求7所述的方法,其中所述的步驟(o)還包含步驟(q)在輸出所述的緩沖器中的數(shù)據(jù)時(shí),轉(zhuǎn)換所述的葛雷碼為二進(jìn)位碼。
10.如權(quán)利要求7所述的方法,其中所述的識(shí)別碼為二個(gè)位,及所述的計(jì)數(shù)碼為六個(gè)位。
11.如權(quán)利要求7所述的方法,其中所述的緩沖器至少可容納63個(gè)位組。
12.如權(quán)利要求7所述的方法,其中所述的步驟(b)至(i)與所述的步驟(j)至(o)是可同時(shí)執(zhí)行。
全文摘要
本發(fā)明的方法在壓縮編碼時(shí),設(shè)定每位組格式有識(shí)別碼及計(jì)數(shù)碼。將讀取的數(shù)據(jù)以位平面,區(qū)分高位平面及低位平面分別處理。在讀取模擬/數(shù)字轉(zhuǎn)換裝置輸出數(shù)據(jù)時(shí),每位組最多可讀取63位。每位組識(shí)別碼為該位的編碼性質(zhì)。計(jì)數(shù)碼部分累計(jì)連續(xù)的同一性質(zhì)的編碼位數(shù)。編碼后將位組輸出至隨機(jī)存取存儲(chǔ)器供主機(jī)存取。解壓縮時(shí),查詢位組識(shí)別碼,可知道其編碼是高/低位或未編碼的數(shù)據(jù)。再依計(jì)數(shù)碼數(shù)目,依序填入緩沖器中相對(duì)應(yīng)的位置中。
文檔編號(hào)G06T9/00GK1276650SQ9910697
公開日2000年12月13日 申請(qǐng)日期1999年6月3日 優(yōu)先權(quán)日1999年6月3日
發(fā)明者陳皇村 申請(qǐng)人:鴻友科技股份有限公司