成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

用于壓縮復(fù)合文檔的編碼器匹配層分離的制作方法

文檔序號:6435653閱讀:455來源:國知局
專利名稱:用于壓縮復(fù)合文檔的編碼器匹配層分離的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)壓縮領(lǐng)域。具體地說,本發(fā)明涉及復(fù)合文檔的表示和壓縮。
背景技術(shù)
復(fù)合文檔可以包含彩色圖像、文本和圖形。混合光柵內(nèi)容(Mixedraster content(MRC))是一種國際電信聯(lián)盟標(biāo)準(zhǔn)(ITU T.44 04/1999),它規(guī)定了一種多個層聯(lián)合起來有效地表示復(fù)合文檔的方法。MRC還規(guī)定了對各層使用預(yù)定編碼器來壓縮文檔的方法。
雖然ITU T.44標(biāo)準(zhǔn)提出了一種一旦確定各層即可高效表示文檔的方法,但該標(biāo)準(zhǔn)未解決將MRC文檔分解成各個層的問題。但是,分解方法可能對所得各層的可壓縮性有很大影響,并因此對壓縮文檔的大小有很大影響。由此,雖然可能存在大量不同的文檔分解方法,但它們不會都取得相同的壓縮率。嘗試各種分解方法以識別碼率和質(zhì)量最優(yōu)的一種分解方法的任務(wù)是棘手的。
發(fā)明概述鑒于已知系統(tǒng)和方法的局限性,提供了一種分解復(fù)合文檔以便混合光柵內(nèi)容表示和壓縮的方法和裝置。
分解圖像的方法包括將圖像分解成多個條紋(stripe)。將每個條紋分解成前景層、背景層和掩碼層,并對各層進(jìn)行插值處理以修改無關(guān)像素的值,從而實現(xiàn)更高效的壓縮。隨后可以用編碼器來對這些層進(jìn)行壓縮。
在一個實施例中,將周邊查找功能與公共區(qū)域縮減功能配合使用來識別每層的基色以及至公共縮減區(qū)域的偏移,從而對于除前景和背景公共縮減區(qū)域的重疊區(qū)域以外的所有區(qū)域,有效地將條紋分離成前景和背景。對重疊的公共縮減區(qū)域應(yīng)用編碼器匹配層分離(coder matched layer separaion)處理過程,以在插值之前將其分離成前景和背景層。
附圖簡介本發(fā)明通過附圖中的非限制性示例來加以說明,附圖中相似的參考標(biāo)記表示相似的部件

圖1說明復(fù)合文檔的多層表示。
圖2說明復(fù)合文檔的條紋分解。
圖3說明一個條紋的編碼前景層和背景層。
圖4說明MRC編碼器過程的一個實施例,其中包括條紋分析過程。
圖5說明周邊查找功能。
圖6說明公共區(qū)域縮減功能的實施例。
圖7說明含公共區(qū)域的條紋,其中,該公共區(qū)域在經(jīng)公共區(qū)域縮減之后分解成前景和背景層。
圖8-9說明編碼器匹配層分離處理過程。
圖10說明如何選擇塊進(jìn)行像素內(nèi)插和修改。
圖11說明面向塊的壓縮處理過程的一個實施例。
圖12說明熵編碼系數(shù)的之字形處理順序。
圖13說明根據(jù)多個約束條件修改所選像素塊的頻譜內(nèi)容的方法。
詳細(xì)說明在一個實施例中,MRC利用三個層(背景層130、前景層120和掩碼層140)表示復(fù)合文檔110,如圖1所示。該背景層和前景層是圖像層,而掩碼層是二進(jìn)制數(shù)(即每個像素一個比特)。一旦表示為層,文檔就可以被壓縮。背景層和前景層可以較原始文檔低的分辨率編碼,但掩碼層始終以無損方式按完全分辨率來編碼。該三層模型可以通過成對添加層(圖像層、掩碼層)推廣到N層。
為重建原始文檔,背景層和前景層可根據(jù)各自對應(yīng)的壓縮層數(shù)據(jù)予以重建。掩碼層識別重建文檔的像素是否要由重建背景層或重建前景層來提供。
所述標(biāo)準(zhǔn)支持對前景圖像層和背景圖像層使用JPEG(聯(lián)合圖像專家組)或JBIG(二值圖像專家組)壓縮。所述標(biāo)準(zhǔn)支持對掩碼層使用組3(G3)、組4(G4)和JBIG壓縮。
MRC支持將文檔編碼成一系列條紋。圖2說明對復(fù)合文檔210進(jìn)行的條紋分解。將文檔條紋化,以便分析。在方框230中,對條紋化文檔220的條紋加以分析和分解。每個條紋的背景層236、前景層238和掩碼層234的數(shù)據(jù)以及條紋參數(shù)232作為條紋數(shù)據(jù)242封裝在MRC比特流240中。MRC標(biāo)準(zhǔn)未解決方框230所示分析或分解操作的細(xì)節(jié)問題。
分解處理過程的目標(biāo)之一是獲得在編碼比特流的緊密度(compactness)和重建圖像的質(zhì)量方面最優(yōu),同時復(fù)雜度維持在合理約束內(nèi)的新分解方案。編碼比特流的優(yōu)化需要考慮應(yīng)用于各層數(shù)據(jù)上的編碼器的特性。在所示實施例中,方框230使用JPEG來對前景層和背景層編碼,因此在確定應(yīng)如何將條紋分解成各層以便壓縮時必須考慮JPEG編碼器的特性。
MRC語法允許為每個條紋傳送一組參數(shù)。這些參數(shù)包括空間偏移和大小,以便定義編碼的前景層和背景層的大小和位置。前景層和背景層可以比條紋小。但掩碼層始終是全分辨率和全尺寸的。
圖3說明條紋310,該條紋具有小于條紋的編碼前景320和背景330層。兩個參數(shù)表示前景和背景基色,該前景和背景基色分別用于填充位于編碼區(qū)域外偏移和尺寸參數(shù)所指定的位置322和332上的前景層和背景層。
一旦導(dǎo)出掩碼,前景層和背景層都有“孔”或“無關(guān)像素”,這些“孔”與屬于掩碼所確定的另一層的像素對應(yīng)。由此,無論何時只要掩碼指示特定像素源于前景層,則在背景層中的同一位置上有對應(yīng)的孔。這些孔或無關(guān)像素與重建無關(guān),但可能會對壓縮有很大影響,具體取決于它們的值。假定這些值與重建無關(guān),則可以修改它們以實現(xiàn)更高效的壓縮。
方框230必須對條紋進(jìn)行分析以確定如下信息1)編碼前景層和背景層的偏移和大??;2)前景和背景的基色;3)全分辨率掩碼(full resolution mask);4)前景層和背景層中無關(guān)像素的內(nèi)插值(即JPEG匹配插值);5)前景層和背景層的JPEG參數(shù);以及6)掩碼層的JBIG參數(shù)。
圖4說明含條紋分析過程的MRC編碼過程的一個實施例。MRC編碼過程作用于條紋化復(fù)合文檔的條紋。步驟410判斷是否還有其它條紋要處理。如果沒有,則在步驟490結(jié)束該過程。否則,步驟420取條紋進(jìn)行分析。條紋分析部分430可以在概念上再劃分成三個子部分。在步驟440中確定層偏移、尺寸和基色。步驟450執(zhí)行編碼器匹配層分離。在所示實施例中,它是JPEG匹配層分離。步驟460隨后對不相關(guān)的無關(guān)像素進(jìn)行插值處理,以便于JPEG壓縮。在步驟470中,圖像(前景和背景)層是JPEG編碼的,而掩碼層是JBIG編碼的。該處理過程繼續(xù)到所有條紋得到處理為止。
條紋分析過程的第一步的目標(biāo)是,通過適當(dāng)選擇基色和層尺寸及偏移來縮減圖像層的編碼尺寸。例如,如果復(fù)合文檔具有顏色不變的邊緣,則此信息可以通過使用與JPEG編碼相反的偏移和基色參數(shù)來更經(jīng)濟(jì)地傳輸。第一步還可以再細(xì)分成周邊查找功能和公共區(qū)域縮減功能。這些功能實質(zhì)上可以同時執(zhí)行。
周邊查找功能試圖沿只包括兩種顏色的條紋的邊緣找到最厚的邊緣,以使圖像層中的剩余編碼區(qū)域(residual coding region)最小。就此功能而言,要對條紋的行和列進(jìn)行系統(tǒng)分析。
圖5說明周邊查找功能。步驟510在給定集合{頂邊緣、底邊緣、左邊緣、右邊緣}的條件下選擇開始邊緣。所有四個邊緣最終都會被處理到,所以最初可能選擇任何邊緣。例如,假設(shè)頂邊緣為最初選擇的邊緣。
從所選邊緣開始對條紋進(jìn)行掃描,一直到所選邊緣對面的邊緣,如步驟520所示。繼續(xù)進(jìn)行掃描直到遇到兩種以上不同顏色為止。前兩種不同顏色成為候選基色對。例如,如果最初選擇頂邊緣,則掃描自頂邊緣開始,向底邊緣繼續(xù),直到遇到第三種顏色為止。這樣就標(biāo)出第一邊界。
在步驟522中,沿反時針繼續(xù),選擇另一邊緣。在一個實施例中,如果最初選擇頂邊緣,則下一邊緣是左邊緣。在步驟530中,自新邊緣開始向它的對側(cè)邊緣執(zhí)行掃描。如果選擇左邊緣,掃描沿列進(jìn)行,直到遇到不屬于候選基色對的顏色為止。這樣就標(biāo)出第二邊界。
在步驟532中,沿反時針繼續(xù),選擇第三個邊緣。在一個實施例中,如果最初選擇頂邊緣,則第三個邊緣是底邊緣。在步驟540中,自第三個邊緣開始向它對側(cè)的邊緣執(zhí)行掃描,直到遇到不屬于候選基色對的顏色為止。這樣就標(biāo)出第三邊界。
在步驟542中,沿反時針繼續(xù),選擇第四個邊緣。在一個實施例中,如果最初選擇頂邊緣,則第四個邊緣是右邊緣。在步驟550中,自第四個邊緣開始向它對側(cè)的邊緣執(zhí)行掃描,直到遇到不屬于候選基色對的顏色為止。這樣就標(biāo)出第四邊界。
在步驟522中,根據(jù)通過掃描獲得的邊界,可以確定前景層和背景層的偏移和尺寸。將候選基色對的兩種顏色之一分配給前景基色,而將該基色對的另一種顏色分配給背景基色。
至此獲得的信息只表示一對候選基色和相關(guān)的偏移。此解決方案可能不是最優(yōu)的。例如,不同的初試掃描邊緣可能得到不同的產(chǎn)生較小編碼區(qū)域的候選基色對和相關(guān)偏移。因此,步驟560確保重復(fù)執(zhí)行該過程,直到針對每種可能起始邊緣確定了候選基色對和相關(guān)偏移為止。
在條紋的每個邊緣當(dāng)過起始邊緣之后,就將有四個候選基色對及相關(guān)偏移。因此,在如步驟560所示那樣處理四個可能起始邊緣之后,步驟570選擇得到最小編碼區(qū)域的候選基色對(及相關(guān)偏移)。
此時,前景層和背景層具有相同的尺寸和相同的偏移,形成前景層和背景層的公共區(qū)域。公共區(qū)域縮減功能嘗試縮減公共區(qū)域以外編碼的前景層或背景層的尺寸。
一般來說,從一個邊緣向?qū)?cè)邊緣按列對公共區(qū)域進(jìn)行掃描。對應(yīng)于每列,將具有所選層基色的像素的百分?jǐn)?shù)制成表格(tabulated)。將此值與閾值TF(通常設(shè)為0.75)進(jìn)行比較。變量NF是文檔分辨率的函數(shù)。在一個實施例中,NF選為對應(yīng)于0.25英寸寬度所需的列數(shù)。一旦連續(xù)NF列中的具有所選層基色的像素的百分?jǐn)?shù)低于TF,則停止掃描,并調(diào)整背景層以從連續(xù)NF列起始位置處開始。
圖6說明公共區(qū)域縮減功能的一個實施例。在步驟610中對閾值變量TF和NF初始化。TF是像素閾值,在一個實施例中設(shè)為0.75。NF表示多個連續(xù)行或列的閾值,它是文檔分辨率的函數(shù)。在一個實施例中,NF初始化為對應(yīng)于約0.25英寸的值。
在步驟612中選擇一個層,以便進(jìn)行公共區(qū)域縮減。在一個實施例中,公共區(qū)域縮減功能從背景層開始執(zhí)行。在步驟614中選擇條紋的起始邊緣。在一個實施例中,從左邊緣和右邊緣之一選擇起始邊緣。
在步驟620中將列數(shù)變量NCOL設(shè)為零。步驟630掃描一列以識別具有與所選層相關(guān)的基色的一部分像素PF。如果PF<TF(例如,小于75%的像素與背景基色相關(guān)),則在步驟640中增加NCOL;否則在步驟634中將NCOL設(shè)為零。步驟642判斷是否NCOL=NF,由此判斷是否有至少NF個符合PF<TF的連續(xù)列。
如果沒有,則步驟660判斷是否還有列要處理。如果還有列要處理,則步驟662選擇下一列,處理過程利用該新列繼續(xù)執(zhí)行步驟620。
如果是這樣的話,則步驟650使所選層的編碼區(qū)域縮減NF列。這有效地減少了對所選層編碼所需的公共區(qū)域數(shù)量。因此在步驟652中,將公共區(qū)域的廢棄部分中的掩碼值設(shè)為與所選層相關(guān)的值。對于0-背景和1-前景的掩碼慣例而言,在從背景層廢棄的區(qū)域中,對所有具有背景色的像素,將掩碼值分配給0(背景);否則分配給1(前景)。然后,步驟660判斷是否還有其它列要處理。
如果步驟660判斷公共區(qū)域中再沒有其它列要處理,則步驟670判斷是否還有其它起始邊緣要處理。如果沒有,則處理過程在步驟690中結(jié)束。否則,在步驟672中選擇下一邊緣進(jìn)行處理,處理過程從步驟620對新的邊緣重復(fù)。
一旦對一個層(例如背景層)執(zhí)行了圖6所示的公共區(qū)域縮減功能,則可以對另一個層(例如前景層)重復(fù)該處理過程。但是,前景層和背景層不能同時從同一側(cè)縮減。因此如果從公共區(qū)域的左邊緣縮減了背景層,則不能再從左邊緣縮減前景層。但是,如果先前未從右邊緣對背景層進(jìn)行縮減,則可以從右邊緣縮減前景層。因此,對一層的一個邊緣或兩個邊緣的掃描可以全部跳過。因此,有必要識別對所選層的哪個邊緣成功進(jìn)行了縮減,以便避免對下一層的同一個邊緣進(jìn)行這種縮減。
在一個實施例中,周邊查找和公共區(qū)域縮減功能基本同時執(zhí)行。即使第一候選基色對導(dǎo)致產(chǎn)生比第二基色對大的公共區(qū)域,在公共區(qū)域縮減之后第一候選基色對仍可以導(dǎo)致所得的前景和背景層尺寸之和較小。同時執(zhí)行周邊查找和公共區(qū)域縮減功能允許在識別一對候選色之后立刻查看是否可以進(jìn)一步縮減任何一個層或同時縮減兩個層。在四種可能的候選對中,選擇可導(dǎo)致背景層和前景層區(qū)域之和最小的一對基色。
現(xiàn)在根據(jù)分析的結(jié)果分配掩碼值。在一個實施例中,基色對中較亮的(即亮度較高的)顏色被視為背景基色,而較暗的顏色被視為前景基色。然后,分別根據(jù)像素的顏色是背景基色還是前景基色而相應(yīng)地將掩碼設(shè)為0或1。此外,如果超出公共區(qū)域?qū)舆M(jìn)行了縮減,則相應(yīng)地指定掩碼值(參見步驟652)。例如,如果縮減了前景層,則這樣分配廢棄區(qū)域中的掩碼,即將1分配給具有前景基色的像素,而將0分配給其余所有像素。因此,在處理兩層之后,就確定了不同于前景層和背景層相交區(qū)域所含像素的所有像素的掩碼值。其結(jié)果是,確定了前景、背景以及除重疊的公共縮減區(qū)域所表示的部分之外的所有條紋區(qū)域的掩碼值。
圖7顯示了公共區(qū)域縮減之前含公共區(qū)域712的條紋710。該條紋分解成具有縮減公共區(qū)域722的前景層720和具有縮減公共區(qū)域732的背景層730。前景層的縮減公共區(qū)域與縮減前的公共區(qū)域712相同。但是,背景縮減公共區(qū)域732在尺寸上更小,表明公共區(qū)域縮減對于背景層而言是成功的?,F(xiàn)在,為除前景和背景公共縮減區(qū)域相交部分之外的所有區(qū)域指定了掩碼值。在所示實例中,二者的相交部分實際是背景公共區(qū)域732。
在一個實施例中,調(diào)整縮減公共區(qū)域的邊界以確保它有利于高效的編碼器操作。對于JPEG編碼器,調(diào)整縮減公共區(qū)域的邊界,以確保它距縮減前公共區(qū)域712的左邊緣8N個像素,其中N是整數(shù)(即0、1、2、...)。因此,兩個區(qū)域的相交部分設(shè)計為與要編碼區(qū)域的左邊緣相距8N的倍數(shù)個像素(a multiple of 8N pixels)。在此情況下,調(diào)整背景公共縮減區(qū)域的左邊緣以確保距前景公共縮減區(qū)域的左邊緣8N的倍數(shù)個像素。
參考圖4,在條紋分析方框430識別基色和偏移(步驟440)之后,執(zhí)行編碼器匹配層分離操作(步驟450)。圖8-9說明編碼器匹配層分離過程。在一個實施例中,編碼器匹配層分離功能嘗試將相交區(qū)域分解成兩個單獨(dú)的層,這比對相交區(qū)域本身進(jìn)行編碼更有效率。
JPEG編碼塊的內(nèi)邊緣獲得較高編碼率(coded rate)。但是,如果將這些邊緣移向塊邊界,則編碼率較小。因此,對連續(xù)塊中DC(直流)值跳躍所致的高差異性編碼DC值(high differentially coded DCvalue)的編碼效率高于對塊內(nèi)邊緣所致的高AC(交流)系數(shù)的編碼效率。
一般來說,編碼器匹配層分離操作按編碼器掃描順序處理相交區(qū)域中的像素塊。因此,對于JPEG編碼器,按行掃描順序處理塊。在每個塊內(nèi),有三種可能的層組合。每個塊可能包括1)只屬于前景層的像素;2)只屬于背景層的像素;或3)屬于前景層的一些像素和屬于背景層的另一些像素。
如果塊的變化足夠小,則將其整個分配給前景層或背景層,具體取決于其像素更接近先前編碼的前景塊的DC值,還是更接近先前編碼的背景塊的DC值。對于高對比度的塊,將像素分成兩組。在一個實施例中,總是將較亮的組分配給背景層,而將較暗的顏色分配給前景層。然后對掩碼值作相應(yīng)的分配。
圖8-9說明應(yīng)用于相交區(qū)域或重疊的公共縮減區(qū)域的編碼器匹配層分離處理過程。步驟802將經(jīng)過插值處理的前景塊和背景塊的DC值初始化。(有關(guān)插值的討論參考方框460進(jìn)行)。變量PREV_AVG_FG和PREV_AVG_BG分別表示先前經(jīng)過插值處理的編碼前景塊和先前經(jīng)過插值處理的編碼背景塊的每個色彩平面的平均值的矢量。在步驟802中,將這些矢量初始化為相應(yīng)層的基色。
在步驟810中,從相交區(qū)域內(nèi)選擇像素塊。在步驟812中,計算值RMAX。對于RGB彩色空間的圖像來說,RMAX是對應(yīng)于所選塊中找出的R、G、B分量的最大范圍的標(biāo)量值。如果步驟814判定RMAX大于預(yù)定閾值TMAX(即RMAX>TMAX),則如步驟820-852所示,將一些像素分配給前景,而另一些像素分配給背景。否則,如果RMAX≤TMAX,則如圖9中的步驟910-942所示,根據(jù)該塊中的平均亮度值將整個塊分配給背景層或前景層。
如果RMAX>TMAX,則將這些像素分成兩組。在一個實施例中,采用2平均算法來將這些像素分成兩組GROUP_1和GOURP_2。然后在步驟830中計算每組的均值A(chǔ)VG_1和AVG_2。AVG_1和AVG_2是其元素分別表示GROUP_1和GOURP_2的相關(guān)色彩平面的平均像素值的矢量。
在步驟832中比較這兩組像素的平均亮度。在一個實施例中,將較暗的組分配給前景,而將較亮的組分配給背景。
因此,如果步驟832判定GROUP_1的平均亮度大于GROUP_2的平均亮度,則在步驟840中將GROUP_1分配給背景,而將GROUP_2分配給前景。矢量變量PREV_AVG_BG的分量被賦予GROUP_1中像素的相關(guān)色彩平面的平均值(即PREV_AVG_BG=AVG_1)。同樣地,矢量變量PREV_AVG_FG的分量被賦予GROUP_2中像素的的相關(guān)色彩平面的平均值(即PREV_AVG_FG=AVG_2)。
或者,如果GROUP_1的平均亮度不大于GROUP_2的平均亮度,則在步驟850中將GROUP_1分配給前景,而將GROUP_2分配給背景。變量PREV_AVG_BG和PREV_AVG_FG分別被賦予GROUP_2和GROUP_1中像素的平均值(即PREV_AVG_BG=AVG_2和PREV_AVG_FG=AVG_1)。
在將像素分配給合適層之后,步驟860判斷是否還有其它塊要處理。如果是這樣的話,則該過程在步驟810中繼續(xù)執(zhí)行另一功能塊。否則,則該過程在步驟890中結(jié)束。
如果RMAX≤TMAX,則在圖8中的步驟814之后在圖9中的步驟910中計算塊平均值B_AVG。矢量B_AVG的元素表示圖像的每個色彩平面的平均值。在步驟920中計算平均塊亮度。根據(jù)平均塊亮度值是更接近先前背景的平均亮度還是更接近先前前景的平均亮度,將該整塊分配給背景或是前景。因此,如果所選塊的平均亮度更接近先前背景的平均亮度,則在步驟930中將該塊分配給背景,并在步驟932中將矢量PREV_AVG_BG設(shè)為B_AVG。
但是,如果所選塊的平均亮度更接近先前前景的平均亮度,則在步驟940中將該塊分配給前景,并在步驟942中將矢量PREV_AVG_FG設(shè)為B_AVG。
一旦將整塊分配給前景層或是背景層,則步驟860判斷是否還有其它塊要處理。倘若如此,則處理過程繼續(xù)執(zhí)行步驟810。如果不是這樣,則處理過程在步驟890中結(jié)束。
參考圖4,在步驟450中進(jìn)行編碼器匹配層分離之后,在步驟460中對這些層進(jìn)行插值處理。層插值的目的是為了填充背景層和前景層中產(chǎn)生的“孔”,這些“孔”是在將具有使編碼有效率的值的像素分配給其它層時形成的。對每個圖像層,按行-列順序掃描8×8的塊,并進(jìn)行插值以填充這些孔。
雖然這些孔的值與圖像的重建無關(guān)(它們被屏蔽掉(maskedout)),但賦給對應(yīng)像素的值可能對塊壓縮率有很大的影響。因此,要對這些“孔”或“無關(guān)”像素的值進(jìn)行修改,以便實現(xiàn)更高的壓縮效率。此方法不會影響再現(xiàn)質(zhì)量且不需要修改解碼算法。無關(guān)像素也可以稱為“不相關(guān)”或“可修改”像素。其余像素稱為“相關(guān)”或“不可修改”像素。
如上所述,條紋的每個塊可能包含1)只屬于前景層的像素;2)只屬于背景層的像素;或3)屬于前景層的一些像素和屬于背景層的另一些像素。對于所選的圖像層,這意味著所選圖像層的塊可能包含1)僅僅相關(guān)像素;2)僅僅無關(guān)像素;或3)相關(guān)像素和無關(guān)像素的組合。
圖10說明如何選擇條紋的選定圖像層的像素塊來進(jìn)行插值處理。在步驟1002中,從集合{前景、背景}中選擇圖像層。在步驟1004中根據(jù)對應(yīng)的所選層,將變量PREV_AVG初始化為背景基色或前景基色。在步驟1010中,選擇所選層的像素塊。在步驟1020中,將像素歸類為相關(guān)像素或不相關(guān)像素。掩碼層固有地將給定圖像層的像素歸類為相關(guān)像素或不相關(guān)像素。
如果步驟1030確定所選塊同時包含相關(guān)像素和不相關(guān)像素,則如步驟1050所示對該塊進(jìn)行插值處理。如果步驟1040確定所選塊全部由不相關(guān)像素組成,則在步驟1060中將像素值設(shè)為預(yù)定值。在一個實施例中,所述預(yù)定值是PREV_AVG,它最初根據(jù)正在處理的相關(guān)層被設(shè)為前景色或背景色。如果該塊完全由相關(guān)像素組成,則不進(jìn)行插值處理。
在步驟1050或1040之后,在步驟1062中將PREV_AVG更新為所選塊中相關(guān)像素的平均值。如果所選塊最初完全由不相關(guān)像素組成,則無須更新。在更新PREV_AVG之后,如果有必要的話,步驟1070判斷所選層是否還有其它塊要處理。如果是這樣的話,則返回步驟1010,對新塊重復(fù)所述處理過程。
在一個實施例中,步驟1050的插值操作將所選塊中相關(guān)像素的平均值賦予無關(guān)像素。此插值過程往往比后續(xù)討論的插值過程快很多,但有可能取得相同的壓縮率。
在一個替代實施例中,步驟1050的插值過程相對復(fù)雜得多,但與較為簡單快速的取均值處理法相比,常常取得更高壓縮率。為了理解此替代插值過程,需要對編碼過程有所理解。
塊壓縮算法普遍應(yīng)用于圖像處理應(yīng)用中。一種壓縮原始圖像數(shù)據(jù)的數(shù)字表示的技術(shù)包括將空間域圖像數(shù)據(jù)變換成頻域數(shù)據(jù)的步驟。從空間域變換到頻域也稱為正向變換。
正向變換類似于原始圖像的諧波分析。正向變換用于將空間圖像數(shù)據(jù)表示為基底函數(shù)(basis function)的線性組合。這些基底函數(shù)的系數(shù)在變換過程中確定。
隨后對這些基底系數(shù)進(jìn)行量化或閾值處理,以消除對應(yīng)基底函數(shù)的影響而實現(xiàn)某種程度的壓縮。然后對剩余系數(shù)重新進(jìn)行排序或進(jìn)行游程編碼或以其它方式進(jìn)行處理,以利于對圖像數(shù)據(jù)的進(jìn)一步壓縮。所得到的壓縮圖像數(shù)據(jù)隨后可用于存儲、發(fā)布或作進(jìn)一步處理。
通常,取零值的量化系數(shù)的數(shù)量越大,壓縮率越高。因此,可以修改無關(guān)像素的值,以使非零值的量化系數(shù)的數(shù)量減少。對可修改像素進(jìn)行修改,以便修改過的塊的量化正向變換具有比所選塊的量化正向變換多得多的零值。此操作降低了壓縮圖像的“碼率(rate)”,“碼率”是壓縮圖像存儲需求的一種參考。因此該操作提高了圖像編碼器的壓縮效率或碼率效率(rate efficiency)。
修改像素的方式取決于壓縮算法的細(xì)節(jié)。聯(lián)合圖象專家組(JPEG)和運(yùn)動圖像專家組(MPEG)各自提出了一種流行的圖像壓縮和編碼體系結(jié)構(gòu),用于處理頻譜內(nèi)容以實現(xiàn)數(shù)據(jù)壓縮。JPEG壓縮常常用于靜態(tài)圖像、如傳真中碰到的圖像或標(biāo)準(zhǔn)打印應(yīng)用。MPEG格式用于動態(tài)圖像或電影。JPEG已經(jīng)公布了基本的處理過程,現(xiàn)已獲得廣泛運(yùn)用。雖然JPEG利用了離散余弦變換(DCT),但實現(xiàn)者還有待具體實現(xiàn)正向變換、量化和對塊的熵編碼。
圖11更詳細(xì)地說明用于壓縮圖像的基于塊的壓縮處理過程的一個實施例。圖像編碼器1120處理數(shù)字化的原始圖像1110,以得到壓縮的圖像數(shù)據(jù)1190。
編碼器1120將原始圖像1110處理為多個8×8的原始塊。對每個8×8原始塊執(zhí)行正向變換。每個8×8的原始塊是一個64點(diǎn)離散信號,它是x和y的二維空間函數(shù)。DCT是可用于將信號表示為基底函數(shù)的線性組合的許多種變換之一。雖然選擇DCT用于JPEG壓縮,但也可采用其它線性正向變換,如傅立葉變換和離散正弦變換(DST)。
正向DCT是諧波分析器,它將64點(diǎn)離散信號轉(zhuǎn)換成64個正交基底信號。每個正交基底信號表示一個二維空間頻率,形成8×8原始塊的頻譜。正向DCT的輸出是識別這些正交基底信號中的每個基底信號的振幅的系數(shù)塊。這些振幅稱為DCT系數(shù),其值由離散的64點(diǎn)輸入信號確定。
再次參考圖11,量化器1140根據(jù)量化表342對這些DCT系數(shù)進(jìn)行量化。可以對量化表1142所標(biāo)出的不同空間頻率分量采用不同的量化等級。量化的c(u,v)可以按如下公式計算cQ(u,v)=INT(c(u,v)q(u,v))]]>其中“INT”是確保結(jié)果是整數(shù)的整數(shù)函數(shù)。
量化表允許不同的基底函數(shù)采用不同的步長大小。量化表因此是含64個元素的表格,每個空間頻率對應(yīng)于一個元素。一般而言,較高頻率基底函數(shù)的步長大小大于較低頻率基底函數(shù)的步長大小。步長大小通常在對應(yīng)余弦基底函數(shù)的可視成分(visual contribution)的感知閾值(perceptual threshold)處選擇。感知閾值是原始圖像特性、顯示特性、視距等的函數(shù)。因此,量化表的選擇可能取決于具體應(yīng)用。
在量化之后,采用熵編碼來有效地表示量化系數(shù)。熵編碼器1150用熵編碼表1152來生成壓縮的圖像數(shù)據(jù)1190。
簡言之,在前的零的個數(shù)與表示當(dāng)前量化系數(shù)值所需的比特形成一對。每對各自具有通過變長碼賦予的碼字。霍夫曼、香農(nóng)-費(fèi)諾(Shannon-Fano)和算術(shù)編碼都是常用的變長編碼算法實例。給定元素出現(xiàn)的次數(shù)越多,則用于對應(yīng)代碼的比特個數(shù)越少。JPEG編碼器輸出所述對的碼字,然后輸出當(dāng)前量化系數(shù)的碼字(也由變長編碼器來賦值)。
在處理量化DCT系數(shù)塊之后,JPEG編碼器編入塊序列的唯一塊結(jié)束碼,然后轉(zhuǎn)移到下一個塊。在處理完所有塊之后,JPEG編碼器寫入文件結(jié)束標(biāo)記。表1150和1142可以集成到壓縮圖像數(shù)據(jù)中,以利于重建。
量化結(jié)果是,許多DCT系數(shù)被化為零。具體來說,較高頻率余弦基底函數(shù)所對應(yīng)的系數(shù)往往為零。通過將量化DCT系數(shù)排序得到更長的零值元素串,可提高熵編碼器的碼率效率,尤其是在要編碼的任何剩余量化DCT系數(shù)全為零時。因此,熵編碼器以之字形方式從與較低頻率基底函數(shù)相關(guān)的量化系數(shù)前進(jìn)到與較高頻率基底函數(shù)相關(guān)的量化系數(shù),這樣來對量化的DCT系數(shù)塊編碼,如圖12所示。
塊1210的左上角對應(yīng)于DC項(u,v=0)。在各編碼塊中以不同的方式對DC項編碼。在掃描進(jìn)程向右下角前進(jìn)時,剩余的AC項表示較高頻率的余弦基底函數(shù)。JPEG熵編碼器在寫入塊結(jié)束碼之前只需對一直到最高頻率的非零量化系數(shù)編碼。其它任何系數(shù)則假定為零。
之字形掃描順序往往將非零元素聚集在要編碼的元素串的一端。當(dāng)較高頻率的基底系數(shù)為零時,之字形掃描順序?qū)⒄诰幋a的量化系數(shù)串的零元素聚集在結(jié)尾處,從而提高熵編碼器的碼率效率。JPEG編碼器無需對掃描順序中最后一個非零量化系數(shù)以外進(jìn)行編碼。假定較高頻率可能為零,則之字形掃描順序可提高JPEG編碼器的壓縮效率。
基本頻譜處理編碼過程可以修改為允許對與原始圖像的重建無關(guān)的像素值進(jìn)行修改,但可能對碼率效率有很大影響。
塊中的64個像素表示為矢量z,它由兩個較小的矢量y和x組成,即有zT={yT,xT},其中y是Ny個相關(guān)像素的集合,而x是64-Ny個無關(guān)像素的集合。該矢量的64×64 2維DCT變換矩陣表示為T,于是系數(shù)集c由下式給出c=Tz。
存在一種求解使AC系數(shù)的能量最小同時保持已知y矢量不受影響的z中的矢量x的方法。要最小化的代價函數(shù)由如下公式給出J(x‾)=Σi=163ci2]]>=||c‾||2-c02]]>
=||z‾||2-c02]]>=||x‾||2+||y‾||2-c02]]>=Σi=063-Nyxi2+||y‾||2-c02]]>2維DCT的DC系數(shù)由下式給出c0=18Σi=063zi]]>=18Σi=0Ny-1yi+18Σi=063-Nyxi]]>在相對于x的每個元素xi部分導(dǎo)出J(x)且使其等于零時,可以得到取下式給出的相同最佳值的每個元素xi=1NyΣi=0Ny-1yi]]>因此,使AC系數(shù)的能量最小化的可修改像素的最優(yōu)插值是將所有可修改像素的值設(shè)為不可修改像素的平均值的解。此方法可以是一個好的起點(diǎn),但它忽略了差分DC編碼(differential DC coding)的作用以及塊壓縮算法熵編碼器的特性。
目的是要找出通過使逆之字形掃描路徑上的零游程(zero run)最長,而又同時滿足其它約束使碼率最小的z。例如,在如下條件時,必須賦予任何可修改zi一個可實現(xiàn)范圍內(nèi)的像素值,并且不可修改像素的zi不應(yīng)改變zi=y(tǒng)ii={0,1,...,Ny-1}0≤zi≤255 i={Ny,...,63}考慮已修改塊的DCT系數(shù)。一些系數(shù)被量化為零,而另一些被量化為非零值??梢粤炕癁榱愕南禂?shù)的位置(即索引號)形成集合Izero,滿足如下條件 按逆之字形掃描順序掃描這些系數(shù),以識別第一個未量化為零的cj。如果可以“驅(qū)使”系數(shù)為零而不違反其它約束,則存在滿足先前約束的解zi=y(tǒng)ii={0,1,...,Ny-1}0≤zi≤255 i={Ny,...,63}以及如下從Izero集合得到的約束-qi2<ci=tiT‾z‾<qi2;i∈Izero]]>(即,量化為零的系數(shù)都無法成為還滿足如下約束的非零量化的系數(shù)-qi2<ci=tiT‾z‾<qi2;]]>項tj表示DCT矩陣T的第i行。每個零量化約束是線性不等式約束。存在的可行解是可以容易地利用諸如單純形法之類的技術(shù)解決的階段1(Phase 1)線性規(guī)劃問題。系數(shù)值的修改不會影響相關(guān)像素的值,因為等式約束限制此類修改。所選塊中的相關(guān)像素具有與修改過的系數(shù)塊的逆變換中的對應(yīng)像素相同的值。修改過的系數(shù)塊的逆變換是修改過的所選塊。
如果存在解的話,則將新的零量化系數(shù)的索引添加到Izero集合中,且z更新為可行解。如果cj為不可零量化的,則該方法按逆之字形順序繼續(xù)處理下一個非零系數(shù)。該過程可以重復(fù),一直到已測試所有非零量化系數(shù)為止。
雖然所得的解滿足所有約束,但該解在使系數(shù)能量最小化的意義上可能不是最優(yōu)的。除使零游程的長度或數(shù)量最小化之外,還應(yīng)該使非零量化系數(shù)的能量最小,以達(dá)到最低碼率。每個階段的最小能量解要在先前建立的如下約束條件下-qi2<ci=tiT‾z‾<qi2;i∈Izero]]>zi=y(tǒng)ii={0,1,...,Ny-1}
0≤zi≤255 i={Ny,...,63}使下式最小E(z‾)=(c0-8NyΣi=0Ny-1yi)2+Σi=163ci2]]>由于有關(guān)相關(guān)像素值的平均值,所以對DC值的考慮有所不同。以上問題是一系列線性等式和不等式約束條件下的二次代價函數(shù)??梢圆捎枚我?guī)劃來找出解。只需在連續(xù)階段1線性規(guī)劃之后調(diào)用二次解算器即可。
連續(xù)線性規(guī)劃會得到零量化系數(shù)數(shù)量增加的解,這可以使剩余DCT系數(shù)的能量變得比最優(yōu)平均插值的塊(optimal averageinterpolated block)的能量高。如果能量增得太多,則即便已使零游程最長,碼率也可能會增加。
為了避免這種結(jié)果,可以在找到可行解之后在每個階段調(diào)用二次規(guī)劃。在此情況下,二次規(guī)劃采用基于最新修改過的塊的系數(shù)能量與平均插值塊的能量之比的停止條件。如果修改過的所選塊的能量E超過平均插值塊的能量E0的預(yù)定比率TE(TE>1),則終止優(yōu)化以避免導(dǎo)致較高的碼率。
圖13說明針對同時含相關(guān)像素和無關(guān)像素的塊的預(yù)壓縮優(yōu)化過程。在步驟1310中初始化無關(guān)像素。在一個實施例中,將無關(guān)像素的值設(shè)為與所選塊中的相關(guān)像素的平均像素值對應(yīng)的值。在步驟1312中,計算所選塊(初始化之后的)的能量E0。
在步驟1320中,通過對所選塊應(yīng)用正向變換來生成系數(shù)。在步驟1330中,將所有零量化的系數(shù)存儲在集合Izero中。
以逆之字形順序繼續(xù),在步驟1340中識別出所選非零量化系數(shù)的位置。在步驟1350中,對于當(dāng)前的z,計算所選系數(shù)的值。
步驟1352判斷所選系數(shù)是否是零量化的。如果是這樣的話,就在步驟1370中將該系數(shù)的位置附加到其它零量化系數(shù)的集合Izero中。
如果所選系數(shù)不是零量化的,則步驟1354判斷是否存在得到滿足先前確定的約束的零量化系數(shù)的可行解。在一個實施例中,采用階段1線性規(guī)劃找出此類可行解。在一個實施例中,采用單純形法找出可行解。如果不存在可行解,則處理繼續(xù)到步驟1380。
如果可行解存在,則在步驟1360中采用二次規(guī)劃來找出z的最小能量解。此新的z具有相關(guān)的能量E,它是在步驟1362中計算的。
步驟1364判斷是否EE0>TE,]]>其中TE是E對E0之比的可接受閾值。如果EE0≤TE,]]>則在步驟1370中將該系數(shù)位置附加到其它零量化系數(shù)的Izero集合中,而后繼續(xù)執(zhí)行步驟1380。
從步驟1354或步驟1370繼續(xù),在步驟1380中執(zhí)行檢查,以判斷是否還有其它系數(shù)要處理。如果沒有,則在步驟1390中結(jié)束系數(shù)塊的修改處理過程。否則,處理過程返回步驟1340以繼續(xù)處理下一個非零量化系數(shù)。
優(yōu)化處理過程重復(fù)步驟1340-1380,直到所有非零量化系數(shù)已得到處理或結(jié)果的能量超過預(yù)定閾值為止。
在一個實施例中,如果第一次無法找到可行解,則處理過程就會停止,而無論是否有其它系數(shù)還要處理。此方法使最后的零游程的長度(the length of the last run on zeros)最長。由于熵編碼器的工作原理,最后的游程對JPEG編碼器的碼率(coded rate)的影響最大。
頻譜內(nèi)容處理的方法往往會1)增加零量化系數(shù)的數(shù)量;以及2)優(yōu)先增加與較高頻率基底函數(shù)相關(guān)的連續(xù)零量化系數(shù)的數(shù)量。給定熵編碼器的特性,則使JPEG編碼器能夠在發(fā)出塊結(jié)束碼之前利用較少數(shù)據(jù)表示相關(guān)圖像。
再次參考圖4,一旦執(zhí)行了層插值處理,則在步驟470中執(zhí)行背景、前景和掩碼層編碼。在一個實施例中,前景層和背景層是JPEG編碼的(參見圖11),而掩碼層是JBIG編碼的。
在以上的詳細(xì)說明中,參照本發(fā)明的特定示范性實施例對本發(fā)明作了描述。在不背離權(quán)利要求書所提出的本發(fā)明的較廣的精神和范圍的前提下,可以對所述實施例作各種修改和變化。因此說明書和附圖應(yīng)視為說明性而非限制性的。
權(quán)利要求
1.一種分解圖像的方法,其特征在于包括如下步驟a)將所述圖像分解成(220)多個條紋;b)將每個條紋分解成(440)前景圖像層(120)、背景圖像層(130)以及掩碼(140)層;以及c)對所述前景層和背景層中的無關(guān)像素值進(jìn)行插值處理(460),以取得編碼效率。
2.如權(quán)利要求1的方法,其特征在于還包括如下步驟d)對所述前景層、背景層和掩碼層編碼(470)。
3.如權(quán)利要求2的方法,其特征在于,所述前景層和背景層是JPEG編碼的,而所述掩碼層是JBIG編碼的。
4.權(quán)利要求1的方法,其特征在于,步驟c)還包括如下步驟i)確定(450)每個層的層基色和至公共縮減區(qū)域(722,732)的偏移,以識別除重疊的公共縮減區(qū)域(732)之外的所有區(qū)域的圖像和掩碼層的值;以及ii)將所述重疊的公共縮減區(qū)域分離成(450)前景層和背景層。
5.權(quán)利要求1的方法,其特征在于步驟c)還包括如下步驟i)將所選層的所選塊內(nèi)的每個像素歸類為(1020)相關(guān)像素或無關(guān)像素;ii)生成(1320)表示所選塊的正向變換的系數(shù)塊;以及iii)在一組預(yù)定約束條件下修改(1354)系數(shù)值,以生成修改過的系數(shù)塊,其中所述約束包括如下約束所述相關(guān)像素在所述修改過的系數(shù)塊的逆變換中具有與所選塊中的相關(guān)像素相同的值。
6.權(quán)利要求5的方法,其特征在于步驟c)iii)包括如下步驟a)按逆之字形順序從所述系數(shù)塊中選取(1340)系數(shù),其中所述選取的系數(shù)具有非零值;以及b)在所述預(yù)定約束條件下找出得到可零量化的選擇系數(shù)的可行解。
7.如權(quán)利要求5的方法,其特征在于,所述系數(shù)值依據(jù)如下約束條件來修改不允許按所述逆之字形順序選取的所述系數(shù)前的任何可零量化系數(shù)成為可非零量化的。
8.如權(quán)利要求5的方法,其特征在于,掩碼層的各個元素的值將所選塊內(nèi)的對應(yīng)位置上的像素歸類為相關(guān)像素或無關(guān)像素。
9.如權(quán)利要求5的方法,其特征在于還包括如下步驟d)將所述修改過的系數(shù)塊提供給塊壓縮過程(1150)。
10.如權(quán)利要求5的方法,其特征在于步驟c)還包括如下步驟應(yīng)用線性規(guī)劃來找出得到滿足所述約束條件的可零量化系數(shù)的可行解。
全文摘要
提供了一種用于分解復(fù)合文檔以便于混合光柵內(nèi)容表示的方法。分解圖像的方法包括將圖像分解成多個條紋的步驟(220)。每個條紋(310)分解成(450)前景層(120)、背景層(130)和掩碼層(140)。這些層通過插值處理(460)來修改無關(guān)像素的值,以實現(xiàn)更有效的壓縮。隨后可以利用編碼器來對這些層進(jìn)行壓縮。
文檔編號G06T9/00GK1620804SQ02828320
公開日2005年5月25日 申請日期2002年12月18日 優(yōu)先權(quán)日2001年12月31日
發(fā)明者D·穆克赫吉, M·納西爾, A·賽德 申請人:惠普公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1