欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)壓縮方法

文檔序號(hào):7578129閱讀:277來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):數(shù)據(jù)壓縮方法
技術(shù)領(lǐng)域
本發(fā)明涉及具體應(yīng)用于數(shù)字圖象壓縮和數(shù)字視頻壓縮的數(shù)字?jǐn)?shù)據(jù)壓縮領(lǐng)域。具體地,本發(fā)明涉及圖象壓縮的變換圖象系數(shù)的有效量化-該方法采用了位平面編碼并包括變換圖象和視頻信號(hào)的位平面編碼之前的有效舍入。
數(shù)字?jǐn)?shù)據(jù)壓縮特別是數(shù)字圖象壓縮的領(lǐng)域有時(shí)得到了人們極大的注意。
在數(shù)字圖象壓縮領(lǐng)域,已經(jīng)采用了很多不同的技術(shù)。具體地,一種流行的技術(shù)是JPEG標(biāo)準(zhǔn),它采用了分立余弦變換(DCT)來(lái)把標(biāo)準(zhǔn)大小的圖象塊變換成相應(yīng)的余弦分量。在此方面,頻率較高的余弦分量得到了重的量化,以有助于獲得大大壓縮的因子。重量化是圖象壓縮的“有損”技術(shù)的一個(gè)例子。JPEG標(biāo)準(zhǔn)還提供了變換的系數(shù)隨后的無(wú)損壓縮。
近來(lái),子波變換作為數(shù)據(jù)壓縮的一種替代而得到了很大的注意。已經(jīng)發(fā)現(xiàn),子波變換非常適合于表示具有諸如陡沿的不連續(xù)性的數(shù)據(jù)。這種不連續(xù)性在圖象數(shù)據(jù)等中是經(jīng)常出現(xiàn)的。
雖然將結(jié)合圖象數(shù)據(jù)的壓縮來(lái)描述本發(fā)明的最佳實(shí)施例,顯而易見(jiàn)的是該最佳實(shí)施例不限于此。例如,子波分析在信號(hào)上的很多不同的應(yīng)用,可以參考IEEE Spectrum,October 1996第26-36頁(yè)上Bruce等人的文章“WaveletAnalysis”。對(duì)于計(jì)算機(jī)圖形中的子波的不同應(yīng)用的討論,可參見(jiàn)Morgan Kaufmann Publishers,Inc 1996年;發(fā)表的I.Stollinitz等人的“Wavelets for Computer Graphics”。
很多有效的圖象壓縮方法采用了變換圖象數(shù)據(jù)的位平面編碼。例如,以下的編碼方法有效地采用了變換(普通是分立子波變換)圖象數(shù)據(jù)的位平面編碼美國(guó)專(zhuān)利第5,412,741、5,315,670和5,321,776的嵌入零樹(shù)子波(EZW)族,和變換圖象位平面的二進(jìn)制上下文熵編碼。這些方法都提供了在速率/失真/復(fù)雜性平衡方面可用的某些最有利的性能。
借助位平面編碼技術(shù),通常不是所有的位平面都得到編碼。只有最高有效位平面至預(yù)定的最小位平面得到編碼。例如,考慮系數(shù)135的編碼,它具有8位的二進(jìn)制表示10000111,該系數(shù)的位平面編碼下至且包括位平面3(從位平面0即最低有效位起算)。該系數(shù)的編碼中位10000分別是位平面7、6、5、4和3中的位。解碼器,在接收到該信息之后,能夠?qū)⑦@些位復(fù)制到位平面7、6、5、4和3中,但不知道在更低位平面中的位。解碼器不是假定更低位平面中的位都是零(此時(shí)135被解碼為二進(jìn)制10000000(十進(jìn)制的128),而是可以假定位平面2中為1且其他更低位平面中為零,在此情況下135被解碼為二進(jìn)制的10000100(十進(jìn)制中132)。這是舍入的一種一般形式,且通常提供了較好的結(jié)果,因?yàn)樗鼫p小了解碼系數(shù)與原來(lái)的系數(shù)之間的(平均)差。
作為一種替代,可以在編碼器采用這種通用舍入。在編碼之前位平面2中的1可被加到135(10000111+00000100=10001011或十進(jìn)制139)。借助隨后的至位平面3的編碼,該系數(shù)被編碼為10001并解碼為10001000或十進(jìn)制的136。實(shí)際上,這是均勻量化的一種形式。
對(duì)于有效位平面編碼技術(shù),諸如SWEET(見(jiàn)下面)和EZW族,在編碼器的舍入(或均勻量化)不是有效的,并降低了壓縮的性能。其原因?qū)⒃谙旅嬗懻摗?br> 本發(fā)明的目的是消除現(xiàn)有技術(shù)的一或多個(gè)缺點(diǎn)。
根據(jù)本發(fā)明的第一個(gè)方面,提供了一種數(shù)據(jù)編碼方法,包括將數(shù)據(jù)變換成一系列具有不同頻率特性的分量,所述分量每一個(gè)都包括一系列的系數(shù);將所述系數(shù)編碼成一種緊湊的形式,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供第一有效編碼技術(shù)以對(duì)所述二進(jìn)制串中前導(dǎo)零的數(shù)目進(jìn)行編碼,并對(duì)所述系數(shù)進(jìn)行舍入從而使舍入之后的系數(shù)不改變其前導(dǎo)零的數(shù)目。
根據(jù)本發(fā)明的第二個(gè)方面,提供了一種數(shù)據(jù)編碼方法,包括將數(shù)據(jù)變換成一系列具有不同的頻率特性的分量,所述分量每一個(gè)都包括一系列系數(shù);將所述分量分成預(yù)定的段;對(duì)各個(gè)所述段的所述系數(shù)編碼成一種緊湊的形式,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)-它對(duì)各個(gè)段中的最大幅度系數(shù)的前導(dǎo)零的數(shù)目進(jìn)行編碼,且所述舍入包括保證在所述段中的最大幅度舍入系數(shù)內(nèi)舍入的系數(shù)不改變前導(dǎo)零的數(shù)目。
根據(jù)本發(fā)明的第三個(gè)方面,提供了一種用于編碼數(shù)據(jù)的設(shè)備,包括變換裝置,用于把該數(shù)據(jù)變換成具有不同的頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);編碼裝置,用于以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)-它對(duì)所述二進(jìn)制串中的前導(dǎo)零的數(shù)目進(jìn)行編碼,并對(duì)所述系數(shù)進(jìn)行舍入從而使舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
根據(jù)本發(fā)明的第四個(gè)方面,提供了一種用于數(shù)據(jù)編碼的設(shè)備,包括變換裝置,用于把數(shù)據(jù)變換成具有不同的頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);分割裝置,用于把所述分量分割成預(yù)定的段;編碼裝置,用于以一種緊湊的形式對(duì)各個(gè)所述段的所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)-它對(duì)各個(gè)段的最大幅度系數(shù)的前導(dǎo)零的數(shù)目進(jìn)行編碼,且所述舍入包括保證所述段中的最大幅度舍入系數(shù)內(nèi)舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
根據(jù)本發(fā)明的第五個(gè)方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括其上記錄有用于編碼數(shù)據(jù)的一種計(jì)算機(jī)程序的計(jì)算機(jī)可讀取介質(zhì),該計(jì)算機(jī)程序產(chǎn)品包括變換裝置,用于把數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);編碼裝置,用于以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)-它對(duì)所述二進(jìn)制串中的前導(dǎo)零的數(shù)目進(jìn)行編碼,并舍入所述系數(shù)從而使舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
根據(jù)本發(fā)明的第六個(gè)方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,它包括其上記錄有用于數(shù)據(jù)編碼的計(jì)算機(jī)程序的計(jì)算機(jī)可讀取介質(zhì),該計(jì)算機(jī)程序產(chǎn)品包括變換裝置,用于把數(shù)據(jù)變換成一系列具有不同頻率特性的分量,所述分量每一個(gè)都具有一系列系數(shù);分割裝置,用于把所述分量分割預(yù)定的段;編碼裝置,用于以一種緊湊的形式對(duì)各個(gè)所述段的系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)一它對(duì)各個(gè)段中的最大幅度系數(shù)的前導(dǎo)零的數(shù)目進(jìn)行編碼,且所述舍入包括保證舍入的系數(shù)在所述段中的最大幅度舍入系數(shù)內(nèi)不改變前導(dǎo)零的數(shù)目。
本發(fā)明的實(shí)施例是結(jié)合附圖以舉例的方式進(jìn)行描述的。在附圖中

圖1是高級(jí)框圖,顯示了本專(zhuān)利申請(qǐng)中描述的圖象表示技術(shù);圖2顯示了本專(zhuān)利申請(qǐng)中描述的分割;圖3是流程圖,顯示了本專(zhuān)利申請(qǐng)中描述的圖象表示或編碼方法;圖4是詳細(xì)流程圖,顯示了圖3中的區(qū)編碼的步驟;圖5是流程圖,顯示了根據(jù)圖3的方法產(chǎn)生的圖象的編碼表示的解碼方法;圖6是詳細(xì)流程圖,顯示了圖5中的一個(gè)區(qū)的解碼步驟;圖7A至7D顯示了根據(jù)圖3至6的編碼和解碼的兩維八系數(shù)區(qū)的處理;圖8是通用計(jì)算機(jī)的框圖;圖9至12是流程圖,顯示了本專(zhuān)利申請(qǐng)中描述的圖象表示或編碼的一種替代方法;圖13至15顯示了子波變換圖象數(shù)據(jù)的處理;圖16顯示了編碼操作的流程圖;圖17顯示了解碼操作的流程圖;圖18顯示了一系列數(shù)目的初始位平面表示。
圖19顯示了最佳實(shí)施例的第一方法的應(yīng)用之后的位平面形式;圖20顯示了變換圖象系數(shù)的幅度的典型分布;圖21顯示了用在一種替代實(shí)施例中一些數(shù)的位平面表示。
當(dāng)提到一或多個(gè)附圖中具有相同的標(biāo)號(hào)的步驟和/或特征時(shí),這些步驟和/或特征就本描述的目的來(lái)說(shuō)具有相同的功能和/或操作,除非有著相反的用意。
在描述最佳實(shí)施例之前,先描述Canon Information SystemsResearch Australia Pty.Ltd.1997年1月22日遞交的標(biāo)題為“A method for Digital Image Compression”的AustralianProvisional Patent Application No.PO4728中公布的SWEET圖象壓縮和解壓縮方法。這種壓縮和解壓縮方法在具有以下標(biāo)題的部分中得到了描述“1.0SWEET圖象壓縮方法的概述”、“1.1第一SWEET圖象壓縮方法的編碼過(guò)程”、“1.2第一SWEET圖象壓縮方法的解碼處理”、“1.3兩維例子”、和“1.4第二SWEET圖象壓縮方法的編碼處理”。
1.0SWEET圖象壓縮方法的概述圖1中顯示了一種高級(jí)框圖,以提供編碼方法的概述。輸入圖象102被提供給變換塊110,該變換最好是線(xiàn)性變換,以產(chǎn)生相應(yīng)的變換系數(shù)112。最好采用分立子波變換(DWT)。
圖象的兩維DWT是這樣一種變換,即它表示采用了圖象的低頻近似和三個(gè)高頻詳細(xì)分量的圖象。傳統(tǒng)上,這些分量被稱(chēng)為副帶。DWT形成的這四個(gè)子圖象每一個(gè)都是原來(lái)的圖象的四分之一大小。低頻圖象包含最多的有關(guān)原來(lái)圖象的信息。該信息或能量壓縮,是為圖象壓縮所采用的分立子波變換圖象副帶的特征。
單級(jí)DWT可被循環(huán)應(yīng)用于低頻圖象或副帶任意次。例如,通過(guò)應(yīng)用一次該變換并隨后將DWT應(yīng)用于從該變換產(chǎn)生的低副帶,可獲得圖象的三級(jí)DWT。因此,這產(chǎn)生出9個(gè)詳細(xì)的副帶和一個(gè)(甚)低頻副帶。即使在三級(jí)DWT之后,所產(chǎn)生的低頻副帶仍然包含原來(lái)圖象的大量的信息,但已經(jīng)是原來(lái)圖象的1/64(1/4×1/4×1/4)大小,從而實(shí)現(xiàn)了因子為64的壓縮。
然而,也可采用其他的線(xiàn)性變換來(lái)解除圖象數(shù)據(jù)的相關(guān)。例如,可采用一種分立余弦變換(DCT)。變換系數(shù)112,或更具體地說(shuō)表示它們的值的位序列,隨后由位重新排列塊120以一種有效的方式進(jìn)行編碼,以提供編碼表示122。
解碼處理只是這種編碼過(guò)程的逆轉(zhuǎn)。編碼的系數(shù)被解碼成變換系數(shù)。(變換域)圖象隨后被反變換,以形成原來(lái)的圖象,或它的某種近似。
在進(jìn)一步描述這些實(shí)施例之前,先簡(jiǎn)要地回顧一下以下使用的術(shù)語(yǔ)。對(duì)于一個(gè)數(shù)的二進(jìn)制整數(shù)表示,“位n”或“位數(shù)n”表示位于最低有效位左邊的二進(jìn)制位n。例如,假定8位二進(jìn)制表示,十進(jìn)制數(shù)9被表示為00001001。在此數(shù)中,位3等于1,而位2、1和0分別等于0、0和1。另外,變換可被表示為系數(shù)按照行和列排列的矩陣,各個(gè)系數(shù)用位序列表示。抽象地說(shuō),該矩陣可被認(rèn)為是三維的;一維沿著行方向;第二維沿著列方向;且第三維沿著位序列方向。在這種三維空間中的一個(gè)平面-它通過(guò)同一位數(shù)處的各個(gè)位序列-被稱(chēng)為位平面。
對(duì)于變換編碼應(yīng)用,表示系數(shù)的可能范圍所需的各個(gè)系數(shù)的位數(shù),由線(xiàn)性變換和輸入圖象中的各個(gè)象素的分辨率(用各個(gè)象素的位表示)來(lái)確定。相對(duì)于多數(shù)變換系數(shù)的值,各個(gè)象素的值的范圍通常較大,因而很多系數(shù)具有很多的前導(dǎo)零。例如,在8位表示中數(shù)9具有四個(gè)前導(dǎo)零且16位表示具有12個(gè)前導(dǎo)零。對(duì)于系數(shù)的段,壓縮方法和設(shè)備以一種有效的方式表示(或編碼)了這些前導(dǎo)零。數(shù)的其余的位和符號(hào)直接得到編碼而不經(jīng)過(guò)修正。
為了簡(jiǎn)化描述,以下假定變換系數(shù)是以無(wú)符號(hào)二進(jìn)制整數(shù)的形式表示的,并具有單個(gè)的符號(hào)位。即,十進(jìn)制-9和9用相同的位序列即1001表示,且前者具有等于1符號(hào)位以表明負(fù)值,且后者具有等于0的符號(hào)位以表示正值。前導(dǎo)零的數(shù)目由變換系數(shù)的范圍確定。在采用整數(shù)表示的情況下,系數(shù)已經(jīng)隱含地被量化為最接近的整數(shù)值,雖然不是必需的。進(jìn)一步地,為了壓縮的目的,包含在分?jǐn)?shù)位中的信息通常被忽略了。
一個(gè)區(qū)包括一組鄰接的圖象系數(shù)。術(shù)語(yǔ)系數(shù)在此是可與象素互換的,這是本領(lǐng)域的技術(shù)人員顯而易見(jiàn)的,前者通常指變換域中的象素(例如DWT域)。
1.1第一SWEET圖象壓縮方法的編碼處理結(jié)合圖3和4給出了第一圖象壓縮方法的更為詳細(xì)的描述。
圖3是流程圖,顯示了第一圖象編碼方法。在步驟302,利用一個(gè)輸入圖象開(kāi)始處理。在步驟304,輸入的圖象采用一種線(xiàn)性變換(較好地是分立子波變換)而得到變換。初始區(qū)被定義為整個(gè)圖象。例如,在輸入的圖象的三級(jí)DWT的情況下,可以把所產(chǎn)生的包括10副帶的系數(shù)指定為該區(qū)?;蛘?,各個(gè)副帶可單獨(dú)地得到處理,把各個(gè)初始區(qū)設(shè)定到所涉及的整個(gè)副帶。
在步驟306,變換系數(shù)的最大絕對(duì)值的最高有效位(msb)得到確定,且一個(gè)參數(shù)maxBitNumber被設(shè)置為該系數(shù)值。例如,如果最大變換系數(shù)具有二進(jìn)制值00001001(十進(jìn)制9),參數(shù)maxBitNumber被設(shè)定為3,因?yàn)閙sb是位數(shù)3。或者,參數(shù)maxBitNumber可被設(shè)定為大于變換系數(shù)的最大絕對(duì)值的msb的任何值。
進(jìn)一步地,在步驟306,一個(gè)編碼參數(shù),minBitNumber得到設(shè)定,以指定編碼圖象的質(zhì)量。具體地,該編碼參數(shù)指定了變換圖象中的每一個(gè)系數(shù)的精度并可根據(jù)需要而改變。例如,minBitNumber 3提供的對(duì)原來(lái)的圖象的再現(xiàn)比值1所提供的要粗。
可選地,該技術(shù)涉及步驟308,它提供了輸入的圖象的編碼表示中的一個(gè)輸出標(biāo)頭。因此,在實(shí)際的實(shí)施中,標(biāo)頭信息作為編碼表示的一部分而得到輸出。例如,該輸出標(biāo)頭可包含有關(guān)源圖象的信息,包括圖象高度和寬度,DWT的級(jí)數(shù),DC副帶的平均值,maxBitNumber參數(shù)和minBitNumber參數(shù)。
從步驟310開(kāi)始,變換圖象的各個(gè)副帶在步驟312和314中分別得到編碼。各個(gè)副帶獨(dú)立地得到編碼,按照從低頻至高頻的順序。對(duì)于DC副帶,平均值在編碼之前被除去并在步驟308被編碼到標(biāo)頭信息中。在步驟312,各個(gè)副帶通過(guò)把一個(gè)初始區(qū)設(shè)定為整個(gè)副帶而得到編碼。在步驟314,該區(qū)用參數(shù)maxBitNumber和minBitNumber編碼。這提供了一個(gè)分層編碼,因?yàn)閳D象的較低分辨率的版本被編碼到了較高分辨率之前的位流中。處理在步驟316結(jié)束。
圖4是圖3中用于編碼各個(gè)區(qū)的步驟314中調(diào)用的“編碼區(qū)(currentBitNumber,minBitNumber)”程序的詳細(xì)流程圖,其中maxBitNumber被作為currentBitNumber而提供。在步驟402中,處理開(kāi)始。圖4的區(qū)編碼處理的輸入包括currentBitNumber和minBitNumber參數(shù)。較好地,該方法是以遞歸技術(shù)的方式實(shí)施,其中處理能夠以選定的區(qū)或子區(qū)調(diào)用其自己。然而,該處理也可以非遞歸的方式實(shí)施。
在判定框404,進(jìn)行檢查以判定currentBitNumber參數(shù)是否小于minBitNumber參數(shù)。否則,如果判定框404的結(jié)果是真(是),則不進(jìn)行任何處理且處理返回到在步驟406中的調(diào)用程序。這種狀態(tài)表明選定的區(qū)中的每一個(gè)系數(shù)都具有小于minBitNumber的msb數(shù)。如果判定框404的結(jié)果是假(否),處理在判定框408得到繼續(xù)。
在判定框408,進(jìn)行檢查以判定選定的區(qū)是否是1×1象素。如果判定框408的結(jié)果是真(是),處理在步驟410繼續(xù)進(jìn)行。在步驟410,1×1象素得到編碼。較好地,這涉及直接輸出編碼的表示中在minBitNumber之上的其余位。在步驟412,處理返回到調(diào)用程序。否則,如果判定框408的結(jié)果是假(否),該區(qū)包括一個(gè)以上的系數(shù)且處理在判定框414得到繼續(xù)。
在判定框414,選定的區(qū)得到檢查以判定它是否有效。即,區(qū)的有效性得到測(cè)試。如果區(qū)中的各個(gè)系數(shù)的msb數(shù)小于currentBitNumber參數(shù)的值,則該區(qū)被稱(chēng)為無(wú)效的。為了使區(qū)的有效性的概念更為準(zhǔn)確,在公式(1)中給出了一個(gè)數(shù)學(xué)定義。在給定的位數(shù),例如currentBitNumber=n,如果|Cij|<2″,i,j∈R, (1)則該區(qū)被稱(chēng)為無(wú)效的,其中R表示該區(qū)且Cij表示在此區(qū)中的系數(shù)(i,j)。
如果判定框414的結(jié)果為假(否),處理在步驟416得到繼續(xù)。在步驟416,在編碼的表示流中輸出一個(gè)值0(或第一記號(hào)),且currentBitNumber參數(shù)被減1。即,區(qū)的下一個(gè)較低的位平面得到選擇以進(jìn)行處理。處理隨后在判定框404得到繼續(xù), 在那里該區(qū)再次以參數(shù)currentBitNumber-1和minBitNumber而得到處理。否則,如果判定框414的結(jié)果為真(是),即該區(qū)是有效的,則處理在步驟418得到繼續(xù)。
在步驟418,在編碼的表示流中,值1(或第二記號(hào))得到輸出。在步驟420,選定的區(qū)利用指定的分區(qū)算法被分成預(yù)定數(shù)目(較好地是4個(gè))子區(qū)。該分區(qū)算法是解碼器所知道的。
在此方法中,采用了正方形的區(qū)。一個(gè)區(qū)較好地是被分成4個(gè)大小相等的(正方形)子區(qū)。如圖2所示,選定的區(qū)(R)200具有M×M大小的系數(shù),并被分成四個(gè)相等大小的子區(qū)210、212、214和216。各個(gè)子區(qū)具有N×N大小,其中N等于M/2。按照初始區(qū)的大小和形狀,這不總是可能的。如果這是不可能的,初始區(qū)可被分成若干個(gè)正方形區(qū),其每一個(gè)都具有2的冪的大小,并對(duì)這些分區(qū)單獨(dú)進(jìn)行編碼。在所有情況下,這種初始化,如果以正確的方式進(jìn)行的話(huà),對(duì)總體結(jié)果的影響最小。或者,可以采用適合于基于段的編碼器的一種不同的分區(qū)。
在步驟422,各個(gè)子區(qū)隨后用相同的currentBitNumber和minBitNumber參數(shù)得到了編碼。這較好地是借助對(duì)圖4的程序“編碼區(qū)(currentBitNumber,minBitNumber)”的遞歸調(diào)用而進(jìn)行的。這種子區(qū)編碼可以并行或依次的方式進(jìn)行實(shí)施。在后一種情況下,處理可從低頻副帶至較高頻副帶依次開(kāi)始。
在編碼表示中,變換系數(shù)通過(guò)從currentBitNumber向minBitNumber輸出象素位而得到編碼。較好地,是按照一種約定,從而只在某些系數(shù)位為非零時(shí)才輸出符號(hào)。例如,如果currentBitNumber=3,minBitNumber=1,則-9(00001001)被編碼為跟隨有一個(gè)符號(hào)位“1”的“100”。
1.2第一SWEET圖象壓縮方法的解碼處理圖5是流程圖,顯示了利用圖3和4的處理獲得的圖象的編碼表示的解碼方法。在步驟502,處理利用編碼表示開(kāi)始。在步驟504,從編碼表示讀出標(biāo)頭信息,以確定原來(lái)的圖象的大小,從而確定初始區(qū)的大小。另外,諸如maxBitNumber(等于編碼處理中的初始currentBitNumber)和minBitNumber的信息得到輸入。進(jìn)一步的信息包括DC副帶的平均值。
在步驟506,各個(gè)副帶的解碼通過(guò)把區(qū)依次設(shè)定到相應(yīng)的副帶中而得到開(kāi)始。在步驟508,選定的區(qū)利用maxBitNumber和minBitNumber參數(shù)而得到解碼。在步驟510,對(duì)解碼的選定區(qū)進(jìn)行逆DWT。處理在步驟512結(jié)束圖6是圖5的用于利用稱(chēng)為“解碼區(qū)(currentBitNumber,minBitNumber)”的程序解碼各個(gè)區(qū)的步驟508的詳細(xì)流程圖,其中maxBitNumber被作為currentBitNumber。在步驟602中,處理開(kāi)始。圖6的區(qū)解碼處理的輸入是currentBitNumber和minBitNumber參數(shù)。該方法同樣較好地是以遞歸技術(shù)的方式進(jìn)行實(shí)施。然而,該處理也可以以非遞歸的方式實(shí)施。
在判定框604,進(jìn)行檢查以判定currentBitNumber是否小于minBitNumber。如果判定框604為真(是),處理進(jìn)行到步驟606,在那里處理返回到調(diào)用程序。否則,如果判定框604為假(否),處理進(jìn)行到判定框608。
在判定框608,判定選定的區(qū)是否具有1×1象素的大小。如果判定框608為真(是),處理進(jìn)行到步驟610。在步驟610,1×1區(qū)得到解碼。處理隨后在步驟612返回到調(diào)用程序。如果判定框608為假(否),處理進(jìn)行到步驟614。在步驟614,從編碼表示輸入一個(gè)位。
在判定框616,判定該位是否等于1,即檢查該輸入以判定該區(qū)是否有效。如果判定框616為假(否),處理進(jìn)行到步驟618。在步驟618,currentBitNumber被減小,且處理進(jìn)行到判定框604。否則,如果判定框616為真(是),處理進(jìn)行到步驟620。在步驟620,該區(qū)被分成預(yù)定數(shù)目(較好地是4個(gè))子區(qū)。在步驟622,各個(gè)子區(qū)利用currentBitNumber和minBitNumber得到了解碼。這是借助對(duì)圖6所示的處理的遞歸調(diào)用而進(jìn)行的。在步驟624,處理返回到調(diào)用程序。
因此,來(lái)自編碼器的有效判定的位輸出命令解碼器在哪個(gè)路徑上執(zhí)行該算法,從而模仿編碼器。象素,且可能的符號(hào),通過(guò)讀取適當(dāng)?shù)奈粩?shù)(currentBitNumber至minBitNumber且這些中的某些是非零的話(huà)還有符號(hào)位),而得到解碼。
1.3兩維例子該方法有效地對(duì)多數(shù)變換系數(shù)的前導(dǎo)零進(jìn)行編碼,而從最高有效位向由參數(shù)minBitNumber指定的預(yù)定的最低有效位編碼,且符號(hào)保持不變。因此,這種壓縮方法有利地表示了前導(dǎo)零。這種方法在某些情況下是非常有效的,即用于編碼分立子波變換圖象系數(shù),它通常呈現(xiàn)出大的動(dòng)態(tài)范圍。幾個(gè)系數(shù)通常具有非常大的值,而多數(shù)具有非常小的值。
編碼包括4×4系數(shù)的兩維區(qū)的一個(gè)例子結(jié)合圖7A至7D而得到描述。圖7A的4×4區(qū)700的處理是以設(shè)定為7的maxBitNumber開(kāi)始的,因?yàn)檫@是所有系數(shù)的最大的位數(shù)(位平面)20013-11-8-133-4-381-2-22-1-3-3]]>為了說(shuō)明的目的,minBitNumber被設(shè)定為3。較好地是在包含maxBitNumber和minBitNumber的編碼表示中輸出一個(gè)標(biāo)頭。隨后進(jìn)行區(qū)700的編碼處理。
在currentBitNumber=7,輸出1,因?yàn)閰^(qū)700是相對(duì)于位數(shù)7有效的(見(jiàn)圖4的判定框404、408和414以及步驟418)。區(qū)700隨后被分成四個(gè)子區(qū)(見(jiàn)圖4中的步驟420)圖7A的左上區(qū)710、右上區(qū)712、左下區(qū)714和右下區(qū)716。各個(gè)子區(qū)包括2×2的系數(shù)。
圖7A的子區(qū)710、712、714和716以圖7B所示的預(yù)定處理序列而依次得到編碼,其中區(qū)750包括四個(gè)子區(qū)750A至750D。在該圖中顯示的三個(gè)箭頭表示處理的順序,即分別是左上子區(qū)750A、右上子區(qū)750B、左下子區(qū)750C、和右下子區(qū)750D。
圖7A的子區(qū)710首先得到編碼(見(jiàn)圖4的步驟422)。對(duì)于等于7的currentBitNumber,一個(gè)1在編碼表示中得到輸出。該子區(qū)710隨后被分成具有十進(jìn)制值200、13、-13和3的四個(gè)1×1象素。這些系數(shù)每一個(gè)都通過(guò)輸出從currentBitNumber=7至minBitNumber=3(見(jiàn)圖4的判定框408和步驟410)的每一個(gè)系數(shù),而得到編碼。隨后如果需要,輸出一個(gè)符號(hào)位。因此,十進(jìn)制值200被編碼為其后有符號(hào)位0的11001。系數(shù)值13被編碼為符號(hào)位為0的00001。系數(shù)值-13被編碼為符號(hào)位為1的00001。最后,系數(shù)值3被編碼為00000(無(wú)符號(hào)位)。各個(gè)系數(shù)的編碼表示包括在currentBitNumber與minBitNumber之間的系數(shù)“200”的位之前的兩個(gè)“1”位。這完成了左上子區(qū)710的編碼。在此狀態(tài)下的編碼輸出為
該標(biāo)頭信息在前述表示中未被顯示。
隨后右上子區(qū)712得到編碼(圖7B)。為等于7、6、5、和4的各個(gè)currentBitNumber輸出一個(gè)零(0),因?yàn)閰^(qū)712對(duì)于這些位數(shù)是無(wú)效的。在currentBitNumber=3輸出一個(gè)1,因?yàn)樵撐黄矫鎸?duì)于位數(shù)3是有效的。子區(qū)712被分成具有值-11、-8、-4和-3的四個(gè)1×1象素。這些十進(jìn)制值分別被編碼為具有符號(hào)位1的位值1、具有符號(hào)位1的位值1和沒(méi)有符號(hào)位的位值0。因此,在此階段,編碼的表示如下
隨后左下子區(qū)714得到編碼。為等于7、6、5和4的各個(gè)currentBitNumber輸出一個(gè)零(0),因?yàn)閰^(qū)714對(duì)于這些位數(shù)是無(wú)效的。在等于3的currentBitNumber輸出一個(gè)1,因?yàn)樵撐黄矫鎸?duì)于位數(shù)3是有效的。子區(qū)714隨后被分成具有值8、1、2和-1的四個(gè)1×1象素。這些分別被編碼為具有符號(hào)位0的二進(jìn)制值1和沒(méi)有符號(hào)位的二進(jìn)制值0、0和0。
最后,對(duì)具有值-2、-2、-3和-3的右下子區(qū)716進(jìn)行編碼。對(duì)各個(gè)currentBitNumber=7、6、5、4和3輸出一個(gè)零(0),因?yàn)樽訁^(qū)716對(duì)這些位數(shù)是無(wú)效的。沒(méi)有符號(hào)位輸出。因此,編碼表示如下111100100000100000110000000001111100000011000000000。
解碼器只不過(guò)模仿編碼過(guò)程以從編碼表示重新構(gòu)成該區(qū),如圖7C所示。
解碼過(guò)程可通過(guò)若干種方式而變得“更聰明”。這些“更聰明”的方式之一在圖7D中得到了顯示。在此情況下,每一個(gè)非零系數(shù)的幅度被增大了2的minBitNumber次冪的一半。這在圖7D中得到顯示。以此方式,這種“更聰明”的解碼處理通常減小了解碼和原來(lái)系數(shù)之間的均方誤差。進(jìn)一步地,編碼器也可進(jìn)行這種操作,從而使解碼器具有圖7C顯示的最簡(jiǎn)單的形式。
1.4第二SWEET圖象壓縮方法的編碼過(guò)程。
以下結(jié)合圖9至12描述根據(jù)一種替代方法的編碼處理。
整個(gè)數(shù)字圖象的分立子波變換,在逐塊的基礎(chǔ)上進(jìn)行。對(duì)各塊的變換的結(jié)果是一組系數(shù),這基本上等價(jià)于整個(gè)圖象的分立子波變換的一組在空間上對(duì)應(yīng)的系數(shù)。例如,從一個(gè)整個(gè)圖象的DWT的一組預(yù)定的系數(shù),可以把該數(shù)字圖象的一部分或塊以指定的細(xì)節(jié)進(jìn)行再現(xiàn)。從頻域選擇預(yù)定的系數(shù)組基本上相當(dāng)于從空間域表示一個(gè)數(shù)字圖象的相應(yīng)部分(塊)。一個(gè)數(shù)字圖象的基于塊的DWT可通過(guò)把圖象分解成多個(gè)塊并將變換獨(dú)立地應(yīng)用于各個(gè)塊而進(jìn)行,從而使這些DWT系數(shù)基本上等價(jià)于相關(guān)的現(xiàn)行空間位置。采用基于塊的變換的優(yōu)點(diǎn),是塊可以在與圖象的另一塊的作用最小(基本上獨(dú)立)的情況下依次得到編碼。基于塊的技術(shù)是固有存儲(chǔ)器本地化的,因而在利用計(jì)算機(jī)系統(tǒng)實(shí)施的情況下通常是有效的。
圖9是流程圖,顯示了根據(jù)第二種編碼方法的基于塊的編碼過(guò)程。處理從步驟902開(kāi)始,在步驟904,輸出一個(gè)標(biāo)頭。這種信息較好地是包括圖象高度和寬度、塊大小,DWT級(jí)的數(shù)目,以及兩個(gè)編碼參數(shù)maxBitNumber和minBitNumber??蛇x地,可根據(jù)應(yīng)用而采用更多或少的標(biāo)頭信息。
編碼參數(shù)maxBitNumber的選擇可以以各種方式進(jìn)行。如果塊DWT是在對(duì)所有圖象塊編碼之前對(duì)所有塊進(jìn)行的,maxBitNumber可被選擇為所有DWT塊上的最大系數(shù)的msb數(shù)目。例如,如果最大系數(shù)是10000001(十進(jìn)制值129),maxBitNumber被設(shè)定為7,因?yàn)镸SB是位數(shù)7。或者,可以采用由變換和輸入的圖象的分辨率所確定的約束。例如,對(duì)于8位的輸入的圖象(7位的級(jí)偏移和符號(hào))和Haar變換,最大MSB被J+7所約束,其中J是DWT的級(jí)數(shù)。如果塊小,這種參數(shù)的選擇可具有對(duì)壓縮的顯著效應(yīng)。在某些情況下,可采用更復(fù)雜的方式來(lái)選擇maxBitNumber。然而,這取決于具體的應(yīng)用。
參數(shù)minBitNumber確定了壓縮比與質(zhì)量的平衡并且是可變的。例如,對(duì)于幾乎正交的變換,值3為8位、灰度或24位的RGB圖象提供了適當(dāng)?shù)膱D象質(zhì)量。
在步驟906,圖象被分解成塊(或形成一個(gè)圖象塊)。圖象較好地是被分解成重疊的塊。然而,也可采用非重疊的塊。系數(shù)的塊可以與整個(gè)原來(lái)的圖象一樣大,或者與8×8系數(shù)的塊一樣地小(對(duì)于三級(jí)變換)。對(duì)于低存儲(chǔ)器應(yīng)用,可采用盡可能小的塊。通常,對(duì)于具有三或四級(jí)DWT的高級(jí)壓縮,16個(gè)系數(shù)的塊大小是足夠的。具有三級(jí)DWT的8×8系數(shù)的塊大小,通過(guò)采用對(duì)各個(gè)塊的DC系數(shù)的差分脈沖編碼調(diào)制(DPCM),能夠保持良好的編碼效率。
在步驟908,各個(gè)塊受到級(jí)偏移,并進(jìn)行變換。較好地,采用DWT。圖象值得到級(jí)偏移(例如對(duì)于8位圖象偏移128),以減小或消除任何不適當(dāng)?shù)钠骄?,且圖象的各個(gè)空間塊得到變換。對(duì)于DWT,通常需要圍繞當(dāng)前塊的塊的某些知識(shí)(類(lèi)似地對(duì)于逆DWT也需要),雖然這不是嚴(yán)格需要的。
在步驟910,塊利用maxBitNumber和minBitNumber參數(shù)得到編碼。處理在步驟912結(jié)束。
在圖10的流程圖中詳細(xì)描述了用于編碼一個(gè)塊的步驟910。圖10的塊編碼處理的輸入包括currentBitNumber和minBitNumber。參見(jiàn)圖9的步驟910,maxBitNumber被作為currentBitNumber參數(shù)而得到輸入。處理在步驟1002開(kāi)始。在判定框1004,進(jìn)行檢查以判定currentBitNumber是否小于minBitNumber。如果判定框1004為真(是),處理進(jìn)行到步驟1006。在步驟1006,執(zhí)行返回到調(diào)用處理,從而表示塊中的每一個(gè)系數(shù)都具有小于minBitNumber的MSB數(shù)。否則,如果判定框1004為假(否),處理進(jìn)行到判定框1008。
在判定框1008,進(jìn)行檢查以判定當(dāng)前塊是否有效。如果判定框10為假(否),處理進(jìn)行到步驟1010。在步驟1010,在編碼表示中輸出一個(gè)零(0),且currentBitNumber被減一,即,下一個(gè)較低位平面得到選擇。處理隨后進(jìn)行到判定框1004。否則,如果判定框1008為真(是),處理進(jìn)行到步驟1012。
判定框1004和1008以及步驟1010使處理找到塊中的最大系數(shù)的MSB數(shù)。如果塊中的每一個(gè)系數(shù)的MSB數(shù)小于currentBitNumber,則塊對(duì)于currentBitNumber是無(wú)效的。此過(guò)程得到重復(fù),直到塊的位平面為有效或currentBitNumber小于minBitNumber。
在步驟1012,在編碼表示中輸出一個(gè)1,以表示位平面是有效的。在步驟1014,DC副帶得到編碼。在步驟1016,塊細(xì)節(jié)利用參數(shù)J、currentBitNumber和minBitNumber得到編碼。在步驟1018,執(zhí)行返回到調(diào)用程序。因此,如果塊是有效的,步驟1012、1014和1016得到執(zhí)行,以使用(通用的)四元樹(shù)(quadtree)分割來(lái)找到其MSB數(shù)大于minBitNumber的所有系數(shù)。如果塊是有效的,則它被分成兩個(gè)“子塊”DC副帶系數(shù)和包括其余的系數(shù)的塊,這對(duì)于級(jí)J被稱(chēng)為“塊細(xì)節(jié)”,因?yàn)樗硎玖擞嘘P(guān)所有較低級(jí)上的級(jí)J的塊的高頻信息。
用于編碼DC副帶的圖10的步驟1014,由圖12的流程圖進(jìn)行了詳細(xì)顯示。即,圖12顯示了利用currentBitNumber和minBitNumber參數(shù)編碼副帶或子塊的過(guò)程。在步驟1202,處理開(kāi)始。在判定框1204,進(jìn)行檢查以判定currentBitNumber是否小于minBitNumber。如果判定框1204為真(是),處理進(jìn)行到步驟1206。在步驟1206,執(zhí)行返回到調(diào)用程序。否則,如果判定框1204為假(否),處理進(jìn)行到判定框1208。
在判定框1208,進(jìn)行檢查以判定(副帶)塊大小是否為1×1象素。如果判定框1208為真(是),處理進(jìn)行到步驟1210。在步驟1210,該1×1象素得到編碼。這涉及輸出currentBitNumber與minBitNumber之間(含)的位,以及在需要時(shí)的隨后的符號(hào)位。處理隨后進(jìn)行到步驟1212的調(diào)用程序。否則,如果判定框1208為假(否),處理進(jìn)行到判定框1214。
在判定框1214,進(jìn)行檢查以判定(副帶)塊是否有效。如果判定框1214為假(否),處理進(jìn)行到步驟1216。在步驟1216,在編碼表示中輸出一個(gè)零(0),且currentBitNumber被減一。處理隨后進(jìn)行到判定框1204。否則,如果判定框1214為真(是),處理進(jìn)行到步驟1218。
在步驟1218,在編碼表示中輸出一個(gè)1,以表示(副帶)塊是有效的。在步驟1220,(副帶)塊被分成四個(gè)子塊。在步驟1222,各個(gè)子塊利用參數(shù)currentBitNumber和minBitNumber,借助對(duì)圖12的處理的遞歸調(diào)用,而得到編碼。在步驟1224,執(zhí)行返回到調(diào)用程序。
因此,在圖12的處理中,副帶或其子塊得到編碼。最大的MSB數(shù)如前面一樣地得到隔離。如果子塊包括僅一個(gè)象素,則它被編碼為單個(gè)的系數(shù)。否則,currentBitNumber被減一,且在編碼表示中輸出一個(gè)零(0),直到currentBitNumber小于minBitNumber,或者副帶(子塊)為有效。如果副帶(子塊)為有效,它被分成四個(gè)(盡可能地接近于等于)子塊,且這些又得到編碼。一個(gè)單個(gè)的系數(shù),例如DC系數(shù),通過(guò)輸出從currentBitNumber至minBitNumber的系數(shù)位,而得到編碼。再次地,較好地是只在某些系數(shù)位為非零的情況下才輸出符號(hào)。
圖10的用于編碼塊細(xì)節(jié)的步驟1016借助圖11的流程圖得到了顯示。在步驟1102,處理開(kāi)始。在判定框1104,進(jìn)行檢查以判定currentBitNumber是否小于minBitNumber。如果判定框1104為真(是),執(zhí)行在步驟1106返回到調(diào)用程序。否則,如果判定框1104為假(否),處理進(jìn)行到判定框1108。
在判定框1108,進(jìn)行檢查以判定塊(細(xì)節(jié))是否有效。如果判定框1108為假(否),處理進(jìn)行到步驟1110。在步驟1110,在編碼表示中輸出一個(gè)零(0)且currentBitNumber被減一。處理隨后進(jìn)行到判定框1104。否則,如果判定框1108為真(是),處理進(jìn)行到步驟1112。
在步驟1112,在編碼表示中輸出一個(gè)1以表示塊(細(xì)節(jié))是有效的。在步驟1114,高-低(HL)、低-高(LH)、和高-高(HH)頻率副帶每一個(gè)都得到編碼。各種分辨率的HL、LH和HH頻率副帶共同被稱(chēng)為AC副帶。這些副帶每一個(gè)都根據(jù)圖12的處理而得到編碼。在步驟1116,塊細(xì)節(jié)利用參數(shù)J-1、currentBitNumber和minBitNumber(如果塊細(xì)節(jié)存在)并借助對(duì)圖11所示的處理的遞歸調(diào)用,而得到編碼。執(zhí)行在步驟1118返回到調(diào)用程序。
因此,級(jí)J的塊細(xì)節(jié)得到處理以首先隔離最大系數(shù)的MSB數(shù)。這是通過(guò)使currentBitNumber減一并輸出零直到塊為有效,而得到進(jìn)行的。塊隨后被分成級(jí)J的三個(gè)高頻副帶和級(jí)J-1的塊細(xì)節(jié)(如果J-1大于0)。這種分割方法是由所謂的1/f型頻譜模型啟動(dòng)的。
第二種方法的解碼處理可通過(guò)模仿結(jié)合圖9至12描述的編碼處理而得到實(shí)施。
該編碼和解碼方法和設(shè)備以一種有效而靈活的方式表示了數(shù)字圖象數(shù)據(jù),其中該表示適合于存儲(chǔ)和/或發(fā)送圖象。該編碼技術(shù)可被一般地用來(lái)表示一個(gè)變換系數(shù)數(shù)組,并通過(guò)在分立子波變換域中表示一個(gè)圖象而提供一種有效的表示。具體地,該方法和設(shè)備表示(或編碼)從輸入的圖象獲得的變換系數(shù)的塊的前導(dǎo)零。這些技術(shù)在提供給定大小編碼的原來(lái)的圖象的良好再現(xiàn)和提供快速解碼方面是有效的。進(jìn)一步地,這些技術(shù)是靈活的,因?yàn)閺木€(xiàn)性變換獲得的系數(shù)在不采用熵編碼的情況下得到了獨(dú)立的編碼。這些方法的有利的方面包括編碼的深度優(yōu)先特性。進(jìn)一步地,在編碼副帶的情況下,該方法的有利方面包括各個(gè)副帶分別的分層編碼。
2.方法的最佳實(shí)施例最佳實(shí)施例在開(kāi)始時(shí)借助圖象數(shù)據(jù)的子波變換而進(jìn)行。子波變換處理的一個(gè)描述在很多的標(biāo)準(zhǔn)教科書(shū)中都有,特別是在上述的Stollnitz等人的書(shū)中?,F(xiàn)在結(jié)合附圖描述標(biāo)準(zhǔn)子波處理的概述。參見(jiàn)圖13,一個(gè)原來(lái)的圖象1利用分立子波變換(DWT)被變換成四個(gè)子圖象3-6。這些子圖象或副帶通常用LL1、HL1、LH1和HH1表示。在副帶名上的標(biāo)號(hào)1表示級(jí)1。LL1副帶是原來(lái)的圖象的低通版本。
所采用的子波變換是可變化的,并包括例如基于Haar的函數(shù),基于Daubechies的函數(shù)等等。LL1副帶隨后得到采用且第二分立子波變換得到應(yīng)用,如圖14所示,從而給出副帶LL2(8)、HL2(9)、LH2(10)、HH2(11)。這種處理繼續(xù)進(jìn)行,如圖15所示,其中LL4副帶得到了顯示,該LL4帶分解處理被稱(chēng)為倍頻程(octave)帶濾波器庫(kù),且LL4副帶被稱(chēng)為DC副帶。顯然,可根據(jù)輸入的圖象的大小進(jìn)行進(jìn)一步的分解。
各個(gè)單個(gè)級(jí)的DWT可得到反轉(zhuǎn),以獲得原來(lái)的圖象。因此一個(gè)J級(jí)的DWT可作為一系列單個(gè)的J級(jí)逆DWT而得到逆變換。
得到分層編碼的圖象可通過(guò)對(duì)DC副帶進(jìn)行編碼而得到處理。隨后,其余的副帶按照級(jí)減小的順序得到編碼。即,對(duì)于4級(jí)DWT,在第4級(jí)的副帶在DC副帶(LL4)之后得到編碼。即為HL4、LH4和HH4副帶。在級(jí)3的副帶(HL3、LH3和HH3)隨后得到編碼,然后是級(jí)2的(HL2、LH2和HH2),再隨后是級(jí)1的(HL1、LH1和HH1)。
對(duì)標(biāo)準(zhǔn)圖象,編碼的副帶通常包含圖象中的“細(xì)節(jié)”信息。因此,它們經(jīng)常包括值的稀疏的陣列,且通過(guò)副帶的量化和對(duì)它們的稀疏矩陣形式的有效編碼可實(shí)現(xiàn)大大的壓縮。
現(xiàn)在看圖16,其中顯示了最佳實(shí)施例的流程圖20,它包括用輸入的圖象的數(shù)據(jù)的分立子波變換21,如前面所述。隨后,每一個(gè)副帶都以分層的順序得到處理22。隨后,各個(gè)副帶的系數(shù)得到檢驗(yàn)23。利用上述SWEET編碼方法對(duì)這些系數(shù)進(jìn)行帶有有效編碼修正的編碼,以考慮下面將要描述的舍入效果。
現(xiàn)在參見(jiàn)圖17,其中顯示了應(yīng)用于編碼器的逆處理的解碼處理30。該解碼處理30包括按照分層順序31循環(huán)經(jīng)過(guò)各個(gè)副帶。對(duì)每一個(gè)副帶,各個(gè)系數(shù)都得到檢驗(yàn)32。各個(gè)系數(shù)的位平面隨后利用把系數(shù)按照原樣重新構(gòu)成的SWEET方法而得到解碼33。隨后,一旦系數(shù)得到解碼,一種反分立子波變換35得到采用,以再現(xiàn)原來(lái)的數(shù)據(jù)。
在此及上述Australian Provisional Specification No.PO4728中描述的SWEET編碼方法,被用于對(duì)DWT副帶系數(shù)進(jìn)行編碼和解碼。SWEET是一種位平面編碼方法,即一組系數(shù)通過(guò)對(duì)數(shù)據(jù)組的位平面進(jìn)行編碼而得到有效編碼。例如,在圖18中,顯示了一個(gè)表40,其中顯示了一組4個(gè)數(shù)(135,7,191,99)和一個(gè)十進(jìn)制形式41以及一個(gè)8位二進(jìn)制表示42。位平面編碼可通過(guò)對(duì)編碼位平面7、6、5、4……直到預(yù)定的最小位平面數(shù)進(jìn)行暗或明編碼,而得到編碼。有各種進(jìn)行這種位平面編碼的方式。例如,假定最小位平面數(shù)為3,在其之下沒(méi)有發(fā)送的數(shù)據(jù),則一種選擇是對(duì)位平面7(明顯地為1010)中的所有位進(jìn)行編碼,然后位平面6(0001)中的所有位,等等,直到位平面3中的所有位?;蛘?,可以對(duì)系數(shù)135(10000)的位進(jìn)行編碼,然后對(duì)從位平面7至位平面3對(duì)系數(shù)7(0000)的所有位進(jìn)行編碼,再對(duì)從位平面7至位平面3對(duì)系數(shù)191(10111)(0000)的所有位進(jìn)行編碼,等等。然而,實(shí)際的編碼選擇順序是與最佳實(shí)施例的有效舍入方法的描述無(wú)關(guān)的。
如果最小位平面數(shù)是位平面0,則對(duì)于整數(shù)系數(shù),系數(shù)得到無(wú)損編碼。然而,對(duì)于有損圖象壓縮應(yīng)用,最小位平面數(shù)通常大于此,且系數(shù)通常不是整數(shù),因而將出現(xiàn)一定的損失。在圖18的例子中,最小位平面為位平面3。在此情況下,從位平面7至位平面3的所有位42都得到編碼(至少是暗的)并被編碼器送到解碼器。解碼器隨后對(duì)那些編碼的位平面進(jìn)行準(zhǔn)確的重建42,且在一種簡(jiǎn)單的情況下,用零了填補(bǔ)其余的位平面(位平面2、1和0)。
在最佳實(shí)施例中,兩種技術(shù)被用于改善上述的最簡(jiǎn)單方法的編碼效率??墒紫炔捎媒獯a器處的舍入或編碼器處的舍入形式,這實(shí)際上是均勻的量化。為了進(jìn)行解碼器的舍入,如果系數(shù)已經(jīng)被編碼到了位平面nmin,則位平面nmin-1中的一個(gè)1可被加到該系數(shù)以減小平均誤差。將這種操作用于圖18的例子,其結(jié)果如圖19所示。系數(shù)135被簡(jiǎn)化解碼為128,但在位平面2中加1意味著它被解碼為132。原來(lái)的系數(shù)與解碼的系數(shù)之間的誤差在簡(jiǎn)化情況下為7,而在圖19的例子中只有3。
作為精煉的方法,當(dāng)在編碼器舍入時(shí),只有不編碼到零的系數(shù)得到舍入。如果一個(gè)系數(shù)的最高有效位處于小于最小編碼位平面的位平面上,則該系數(shù)被編碼為零。例如,在列51,數(shù)7產(chǎn)生的較高位平面保持不變。
在編碼位平面之前,在最小編碼位平面是位平面nmin的情況下,我們能夠在位平面nmin-1中加上一個(gè)1。為了重復(fù)圖18和19的例子,在位平面2上加一個(gè)1對(duì)于系數(shù)135(十進(jìn)制45)給出(10000111+00000100=10001011二進(jìn)制)139十進(jìn)制(圖19的52)。編碼器隨后如前所述地對(duì)至到Rmin的位平面進(jìn)行編碼(53),且解碼器用零填補(bǔ)未編碼的位平面。因此135被解碼為(10001000)136。
典型的圖象或數(shù)據(jù)的有效壓縮量,依賴(lài)于這樣的事實(shí),即圖象的典型變換具有顯著向零傾斜的幅度分布。這在圖20中得到了示意顯示,該圖顯示出系數(shù)具有小幅度的概率是很高的,而具有大幅度的概率隨著幅度的增大而急劇減小。圖20進(jìn)一步顯示,對(duì)于多數(shù)的nmin值,有大量的在
以下的系數(shù)。
利用位平面編碼技術(shù),可以獲得顯著的壓縮量,因?yàn)槎鄶?shù)的系數(shù)都被編碼為零(即它們具有小于
的幅度。SWEET編碼方法,和幾乎所有有效圖象壓縮方法,以一種有效的方式對(duì)大量的零(編碼的)系數(shù)進(jìn)行編碼,通常是每個(gè)零(編碼的)系數(shù)一個(gè)位的一個(gè)部分。圖20還顯示,與幅度大于
的幅度的系數(shù)數(shù)目相比,通常有大量的系數(shù)在小于
但接近
的范圍。這意味著不論最小位平面nmin如何,位平面編碼之前的通常的舍入將顯著地增大不被編碼為零的系數(shù)的數(shù)目(與其中在編碼之前不進(jìn)行舍入的情況相比。所有小于
但大于
的系數(shù)將被舍入到
且隨后將不被編碼為零)。雖然保證編碼失真減小,通過(guò)更準(zhǔn)確的解碼,壓縮比將顯著地減小,因?yàn)檫@種處理導(dǎo)致了多得多的非零系數(shù)(隨著更多的非零編碼系數(shù)的出現(xiàn),SWEET方法和多數(shù)其他方法的有效性將顯著地下降)。
因此,對(duì)于圖象壓縮應(yīng)用,位平面編碼之前的舍入,如前所述,通常不是所希望的。然而,借助對(duì)具體的位平面編碼方案的理解,可以在位平面編碼之前進(jìn)行有效形式的舍入。如果系數(shù)未被編碼為零,則可以在位平面nmin-1中加上該1位,產(chǎn)生相同數(shù)目的零系數(shù)(編碼為零的系數(shù))。
可以對(duì)諸如SWEET的編碼方法進(jìn)行進(jìn)一步的精煉(以及對(duì)于EZW編碼方法的某些變形)。有時(shí),當(dāng)位平面nmin-1中的一個(gè)1被加到一個(gè)系數(shù)上時(shí),系數(shù)的最高有效位的位平面數(shù)增大了1(例如當(dāng)00000100把加到00000111以給出00001011)。這有時(shí)不是所希望,因?yàn)橹T如SWEET的有效位平面編碼方案通常取決于系數(shù)或一組系數(shù)的前導(dǎo)零(在最高有效位之上的零位)的有效編碼,且這可影響壓縮效率。借助SWEET(和EZW編碼方法的某些變形),系數(shù)的2×2塊的前導(dǎo)零得到了有效的編碼。
為了顯示這一點(diǎn),考慮如圖21所示的2×2塊系數(shù)的例子(一維形式)。在位平面4之上的零位平面未被顯示,因?yàn)椴捎孟骃WEET(或EZW)的方法這些位平面將被有效地編碼。在這些前導(dǎo)零得到有效編碼的情況下,SWEET把其他位平面編碼為它們?cè)瓉?lái)的形式。例如,對(duì)nmin=3(60),位平面4和3被編碼為(1001和0011),要求每平面4位或總共8位。只有在最高有效位的位平面數(shù)不超過(guò)位平面數(shù)4的情況下,1位被加到位平面2中的每一個(gè)系數(shù)。因此,位平面2中的一個(gè)1被加到系數(shù)16、7和14-它們隨后被編碼/解碼為16、8和16。在位平面2的1位不被加到29,因?yàn)檫@將把最高有效位置于位平面5中,從而影響前導(dǎo)零的編碼的效率。
應(yīng)該注意的是,當(dāng)采用前面的解碼器舍入形式時(shí)將被編碼為零的7現(xiàn)在被編碼為8。雖然這種在位平面編碼之前的舍入形式增大了非零編碼系數(shù)的數(shù)目,但它是以不顯著地影響壓縮比的方式這樣做的。在上面給出的例子中,位平面4和3在所有情況下都需要為系數(shù)7進(jìn)行編碼,因而舍入的附加成本非常小。(對(duì)有符號(hào)的數(shù)據(jù)我們需要發(fā)送非零編碼系數(shù)的符號(hào)位,因而把7編碼成8要求給符號(hào)一個(gè)額外的位)。有很多其他的系數(shù),其中舍入將顯著地影響壓縮比,因而在這些情況下不進(jìn)行舍入。因此,對(duì)于典型的變換圖象系數(shù),這種形式的舍入通常優(yōu)越于解碼器的舍入。進(jìn)一步地,它可以在編碼器的硬件上進(jìn)行,因而其實(shí)施是非常簡(jiǎn)單的。當(dāng)一個(gè)系數(shù)得到編碼時(shí),簡(jiǎn)單的是測(cè)試在位平面nmin-1中加1位是否增大系數(shù)的最高有效位的位平面數(shù)超出一個(gè)給定的所希望的最大值。解碼器也是非常簡(jiǎn)單的它只重建編碼器送來(lái)的位并(非顯然地)用零填補(bǔ)其余較低順序的位平面。
2.1設(shè)備的最佳實(shí)施例該編碼處理較好地是用傳統(tǒng)的通用計(jì)算機(jī),諸如圖8所示的一種,而實(shí)施的,其中圖13至21的處理可以以計(jì)算機(jī)上執(zhí)行的軟件的形式實(shí)施。具體地,編碼方法的步驟是由計(jì)算機(jī)執(zhí)行的軟件指令來(lái)實(shí)現(xiàn)的。該軟件可被分成兩個(gè)分離的部分一部分用于執(zhí)行編碼方法;且另一部分用于管理后者與用戶(hù)之間的用戶(hù)界面。該軟件可被存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取介質(zhì)中,包括例如以下所述的存儲(chǔ)器件。該軟件被從計(jì)算機(jī)可讀取介質(zhì)裝載到計(jì)算機(jī)中,并隨后由計(jì)算機(jī)執(zhí)行。其上記錄有這種軟件或計(jì)算機(jī)程序的計(jì)算機(jī)可讀取介質(zhì)是一種計(jì)算機(jī)程序產(chǎn)品。這種計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)上的使用將實(shí)現(xiàn)一種具有優(yōu)點(diǎn)的設(shè)備,該設(shè)備用于按照本發(fā)明的實(shí)施例對(duì)數(shù)字圖象進(jìn)行編碼表示。
該計(jì)算機(jī)系統(tǒng)800包括計(jì)算機(jī)802、視頻顯示器816、以及輸入裝置818、820。另外,該計(jì)算機(jī)系統(tǒng)800可具有任何數(shù)目的其他的輸出裝置,包括行打印機(jī)、激光打印機(jī)、繪制儀、以及與計(jì)算機(jī)802相連的其他再現(xiàn)裝置。計(jì)算機(jī)系統(tǒng)800可經(jīng)過(guò)采用適當(dāng)?shù)耐ㄐ判诺?30(諸如調(diào)制解調(diào)器通信信道、計(jì)算機(jī)網(wǎng)絡(luò)等等)的通信接口808c,而與一或多個(gè)其他計(jì)算機(jī)相連。該計(jì)算機(jī)網(wǎng)絡(luò)可包括一個(gè)局域網(wǎng)絡(luò)(LAN)、一個(gè)廣域網(wǎng)絡(luò)(WAN)、內(nèi)聯(lián)網(wǎng)、和/或因特網(wǎng)。
計(jì)算機(jī)802自身包括一個(gè)中央處理單元(以下簡(jiǎn)單地稱(chēng)為處理器)804、一個(gè)存儲(chǔ)器806-它可包括隨機(jī)存取存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)、輸入/輸出(I/O)接口808a、808b和808c、視頻接口810、以及在圖8中用框812總體地表示的一或多個(gè)存儲(chǔ)器件。存儲(chǔ)裝置812可包括一或多個(gè)以下裝置軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器、磁-光盤(pán)驅(qū)動(dòng)器、CD-ROM、磁帶或其他本領(lǐng)域的技術(shù)人員所顯而易見(jiàn)的非易失存儲(chǔ)裝置。部件804至812中的每一個(gè)通常都經(jīng)過(guò)一條總線(xiàn)814而與一或多個(gè)其他的裝置相連,而總線(xiàn)814又可包括數(shù)據(jù)、地址、和控制總線(xiàn)。
視頻接口810與視頻顯示器816相連,并提供來(lái)自計(jì)算機(jī)802的視頻信號(hào),以在視頻顯示器816上進(jìn)行顯示。用戶(hù)操作計(jì)算機(jī)802的輸入可由一或多個(gè)輸入裝置808b提供。例如,操作者可用鍵盤(pán)818和/或諸如鼠標(biāo)器820的裝置來(lái)提供至計(jì)算機(jī)802的輸入。
系統(tǒng)800只是為了說(shuō)明的目的而提供的,且在不脫離本發(fā)明的范圍和精神的前提下可采用其他的配置。可在其上實(shí)施本發(fā)明的示例性的計(jì)算機(jī)包括IBM-PC/AT或兼容機(jī)、Macintosh族的PC、Sun Sparcstation等等。這些只是可實(shí)施本發(fā)明的實(shí)施例的計(jì)算機(jī)的例子。通常,這些實(shí)施例的處理,如以下所述的,是以記錄在作為計(jì)算機(jī)可讀取介質(zhì)的硬盤(pán)驅(qū)動(dòng)器(在圖8中用框812總體地表示)上的程序的形式存在的,并利用處理器804進(jìn)行讀取和控制。程序和象素?cái)?shù)據(jù)和從網(wǎng)絡(luò)提取的數(shù)據(jù)的中介存儲(chǔ)可利用半導(dǎo)體存儲(chǔ)器806-可能與硬盤(pán)驅(qū)動(dòng)器812相配合地-來(lái)實(shí)現(xiàn)。
在某些情況下,具體可以在CD-ROM或軟盤(pán)(兩者都用框812總體地表示)得到編碼的形式被提供給用戶(hù),或者可被用戶(hù)經(jīng)過(guò)與計(jì)算機(jī)相連的調(diào)制解調(diào)器裝置而從網(wǎng)絡(luò)上讀取。進(jìn)一步地,該軟件可從其他計(jì)算機(jī)可讀取介質(zhì)裝載到計(jì)算機(jī)系統(tǒng)800中,這些計(jì)算機(jī)可讀取介質(zhì)包括磁帶、ROM或集成電路、磁-光盤(pán)、計(jì)算機(jī)與另一裝置之間的無(wú)線(xiàn)電或紅外傳送信道、諸如PCMCIA卡的計(jì)算機(jī)可讀取卡、以及包括電子郵件傳送和記錄在網(wǎng)頁(yè)等上的信息的因特網(wǎng)或內(nèi)聯(lián)網(wǎng)等等。前述的只是相關(guān)的計(jì)算機(jī)可讀取介質(zhì)的例子。在不脫離本發(fā)明的范圍和精神的情況下,可采用其他的計(jì)算機(jī)可讀取介質(zhì)。
該編碼方法也可以專(zhuān)用硬件的方式實(shí)施,諸如執(zhí)行該編碼的功能或子功能的一或多個(gè)集成電路的形式。這種專(zhuān)用硬件可包括圖形處理器、數(shù)字信號(hào)處理器、或一或多個(gè)微處理器和相關(guān)的存儲(chǔ)器。
以上只描述了本發(fā)明的少數(shù)實(shí)施例,且在不脫離本發(fā)明的范圍和精神的前提下本領(lǐng)域的技術(shù)人員可進(jìn)行修正和/或改變。因而這些實(shí)施例只應(yīng)該被認(rèn)為是說(shuō)明性的而不是限制性的。
權(quán)利要求
1.一種數(shù)據(jù)編碼方法,包括把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一個(gè)第一有效編碼技術(shù)以編碼所述二進(jìn)制串中的前導(dǎo)零的數(shù)目,并舍入所述系數(shù)從而使舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
2.根據(jù)權(quán)利要求1的方法,其中所述舍入包括放棄第一數(shù)目的無(wú)效系數(shù)并只在較高有效系數(shù)不為零的地方把1加到較高有效系數(shù)上。
3.一種數(shù)據(jù)編碼方法,包括把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);把所述分量分成預(yù)定的塊;對(duì)每一個(gè)所述塊、緊湊形式的所述系數(shù)、包括二進(jìn)制串的所述系數(shù)進(jìn)行編碼,且所述編碼包括提供一個(gè)第一有效編碼技術(shù)以對(duì)各個(gè)塊中的最大幅度系數(shù)的前導(dǎo)零的數(shù)目進(jìn)行編碼,且所述舍入包括保證舍入的系數(shù)不改變所述塊中的最大幅度舍入系數(shù)內(nèi)的前導(dǎo)零的數(shù)目。
4.根據(jù)權(quán)利要求1或3的方法,其中所述變換包括所述數(shù)據(jù)的子波變換。
5.根據(jù)權(quán)利要求1或3的方法,其中所述數(shù)據(jù)包括數(shù)字圖象數(shù)據(jù)。
6.用于編碼數(shù)據(jù)的設(shè)備,包括變換裝置,用于把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);編碼裝置,用于以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)以編碼所述二進(jìn)制串中的前導(dǎo)零的數(shù)目,并舍入所述系數(shù)從而使舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
7.根據(jù)權(quán)利要求6的設(shè)備,其中所述舍入包括放棄第一數(shù)目的無(wú)效系數(shù)且只在較高有效系數(shù)不為零的地方把一加到較高有效系數(shù)上。
8.用于編碼數(shù)據(jù)的設(shè)備,包括變換裝置,用于把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);分割裝置,用于把所述分量分成預(yù)定的塊;編碼裝置,用于對(duì)各個(gè)所述塊以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)以編碼各個(gè)塊中的最大幅度系數(shù)的前導(dǎo)零的數(shù)目,且所述舍入包括保證舍入的系數(shù)不改變所述塊中的最大幅度舍入系數(shù)內(nèi)的前導(dǎo)零的數(shù)目。
9.根據(jù)權(quán)利要求6或8的設(shè)備,其中所述變換包括所述數(shù)據(jù)的子波變換。
10.根據(jù)權(quán)利要求6或8的設(shè)備,其中所述數(shù)據(jù)包括數(shù)字圖象數(shù)據(jù)。
11.一種計(jì)算機(jī)程序產(chǎn)品,包括具有記錄在其上的用于編碼數(shù)據(jù)的計(jì)算機(jī)程序的計(jì)算機(jī)可讀取介質(zhì),該計(jì)算機(jī)程序產(chǎn)品包括變換裝置,用于把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);編碼裝置,用于以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)以編碼所述二進(jìn)制串中的前導(dǎo)零的數(shù)目,并舍入所述系數(shù)從而使舍入的系數(shù)不改變其前導(dǎo)零的數(shù)目。
12.根據(jù)權(quán)利要求11的計(jì)算機(jī)程序產(chǎn)品,其中所述舍入包括放棄第一數(shù)目的無(wú)效系數(shù)且只在較高有效系數(shù)不為零的地方把一加到較高有效系數(shù)上。
13.一種計(jì)算機(jī)程序產(chǎn)品,包括具有記錄在其上的用于編碼數(shù)據(jù)的計(jì)算機(jī)程序的計(jì)算機(jī)可讀取介質(zhì),該計(jì)算機(jī)程序產(chǎn)品包括變換裝置,用于把該數(shù)據(jù)變換成具有不同頻率特性的一系列分量,所述分量每一個(gè)都包括一系列系數(shù);分割裝置,用于把所述分量分成預(yù)定的塊;編碼裝置,用于對(duì)各個(gè)所述塊以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)以編碼各個(gè)塊中的最大幅度系數(shù)的前導(dǎo)零的數(shù)目,且所述舍入包括保證舍入的系數(shù)不改變所述塊中的最大幅度舍入系數(shù)內(nèi)的前導(dǎo)零的數(shù)目。
14.根據(jù)權(quán)利要求11或13的計(jì)算機(jī)程序產(chǎn)品,其中所述變換包括所述數(shù)據(jù)的子波變換。
15.根據(jù)權(quán)利要求11或13的計(jì)算機(jī)程序產(chǎn)品,其中所述數(shù)據(jù)包括數(shù)字圖象數(shù)據(jù)。
全文摘要
公布了一種數(shù)據(jù)編碼方法,包括把數(shù)據(jù)變換成一系列具有不同頻率特性的分量,所述分量每一個(gè)都包括一系列系數(shù);以一種緊湊的形式對(duì)所述系數(shù)進(jìn)行編碼,所述系數(shù)包括一個(gè)二進(jìn)制串且所述編碼包括提供一種第一有效編碼技術(shù)以對(duì)所述二進(jìn)制串中的前導(dǎo)零的數(shù)目進(jìn)行編碼,并舍入所述系數(shù)從而使舍入的系數(shù)不顯著地改變前導(dǎo)零的有效編碼。
文檔編號(hào)H04N1/41GK1218356SQ9812078
公開(kāi)日1999年6月2日 申請(qǐng)日期1998年9月29日 優(yōu)先權(quán)日1997年9月29日
發(fā)明者詹姆斯·菲利普·安德魯, 安德魯·彼特·布雷德利 申請(qǐng)人:佳能株式會(huì)社, 澳大利亞Pty佳能信息系統(tǒng)研究公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临沂市| 防城港市| 平湖市| 九龙坡区| 建瓯市| 五华县| 舟山市| 吉安市| 新安县| 绥中县| 林口县| 临桂县| 陇川县| 增城市| 绥棱县| 永靖县| 北安市| 杨浦区| 额济纳旗| 宁陕县| 徐闻县| 东乌珠穆沁旗| 新巴尔虎右旗| 浦北县| 阆中市| 土默特右旗| 平乐县| 天峨县| 道真| 龙州县| 百色市| 邓州市| 苍溪县| 醴陵市| 上杭县| 满城县| 永城市| 东港市| 平谷区| 莎车县| 西吉县|