專利名稱:使用比例項、早期中止和精度細算的更快速變換的制作方法
背景技術(shù):
1.發(fā)明領域一般地說,本發(fā)明涉及數(shù)據(jù)處理,更具體地說,涉及更快速的變換,它們使用多重比例項(multiple scaled term)、早期中止和精度細算(refinement)。
2.相關技術(shù)描述將數(shù)據(jù)從一個域(例如取樣數(shù)據(jù))到另一個域(如頻率空間)的變換被用于許多信號和/或圖像處理應用。這些變換被用于多種應用,包括(但不限于)數(shù)據(jù)分析、特征識別和/或提取、信號相關、數(shù)據(jù)壓縮以及數(shù)據(jù)嵌入/生成水印。
在數(shù)據(jù)處理中,通常數(shù)據(jù)被表示為取樣離散函數(shù)。這種離散表達式或者是確定性地構(gòu)成或者是統(tǒng)計性地構(gòu)成。在確定性表示中考慮數(shù)據(jù)的點特性,而在統(tǒng)計性表示中指定數(shù)據(jù)的平均特性。例如,本領域公知的使用離散余弦變換進行數(shù)據(jù)壓縮。在這里引用的一些特定實例中將使用術(shù)語“圖像”和“圖像處理”。然而,本領域技術(shù)人員將會理解,本發(fā)明并不是要局限于處理圖像,而是可應用于處理不同的數(shù)據(jù),如音頻數(shù)據(jù)、科學數(shù)據(jù)、圖像數(shù)據(jù)等。
在數(shù)字圖像處理系統(tǒng)中,數(shù)字圖像信號首先是通過把二維圖像分割成網(wǎng)格來構(gòu)成的。在該網(wǎng)格中每個圖像素素,或者說像素,有與其相關聯(lián)的若干視覺特征,如亮度和色彩。這些特征被轉(zhuǎn)換成數(shù)值形式。于是,通過把圖像中與每個像素關聯(lián)的數(shù)值組合成能由數(shù)字圖像信號接收器進行解釋的序列,形成數(shù)字圖像信號。
在許多數(shù)據(jù)處理過程中希望數(shù)據(jù)壓縮,因為對于使用該數(shù)據(jù)的實際應用,存在太多的數(shù)據(jù)。通常,壓縮用于通信鏈路以減少傳輸時間或所需的帶寬。類似地,在包括數(shù)字打印機和復印機的圖像存儲系統(tǒng)中希望進行壓縮,在那里,要被打印的文件“頁面”可以暫時存儲在存儲器中。這里,存儲圖像數(shù)據(jù)的介質(zhì)空間量能由于壓縮而顯著地減少。一般地說,掃描的圖像,即硬拷貝文件的電子表示,常常是大的,因此其成為所希望的壓縮對象。
信號和圖像處理經(jīng)常要求把輸入數(shù)據(jù)轉(zhuǎn)換成變換系數(shù)供用于分析。往往只需要這些系數(shù)的量化版本(例如JPEG/MPEG數(shù)據(jù)壓縮或音頻/語音壓縮)。許多這類應用需要實時地快速完成,如產(chǎn)生用于高速打印機的JPEG數(shù)據(jù)。許多這樣的變換需要實時地有效實現(xiàn)和/或快速執(zhí)行,不管是否使用壓縮作為數(shù)據(jù)處理的一部分。
對數(shù)據(jù)信號處理業(yè)界的壓力是找出最快的方法用于最有效地和快速地進行數(shù)字信號處理。如通常在壓縮領域,在快速變換的實現(xiàn)領域研究工作高度活躍而且富有競爭性。研究者們已經(jīng)做出廣泛多樣的努力,試圖通過利用在變換和逆變換中發(fā)現(xiàn)的特性來利用要實現(xiàn)這些變換的硬件的作用。
一種這樣的技術(shù)是ISO 10918-1 JPEG國際標準/ITU-T推薦T.81。在Pannebaker和Mitchell的“JPEG靜止圖像數(shù)據(jù)壓縮標準”Newyork,Van Nostrand Reinhold,1993(這里被納入作為參考)再現(xiàn)了JPEG標準草案。在JPEG標準以及其他正在出現(xiàn)的壓縮標準中定義的一種壓縮方法是離散余弦變換(DCT)編碼。使用DCT編碼壓縮的圖像用稱作逆DCT(IDCT)的一種逆變換解壓縮。對DCT的一個極好的一般性參考是Rao和Yip的《離散余弦變換》,New York,Academic Press,1990,這里被納入作為參考。將假定本領域技術(shù)人員熟悉上文引用的書中的內(nèi)容。
不難看出,對計算機用戶和其他人而言,如果靜止圖像存在存儲問題的話,那么運動圖像存儲問題則嚴重得多,因為對于被顯示的運動圖像的每一秒鐘,其完全運動的視頻可能需要多達60幅圖像。所以,運動圖像壓縮技術(shù)一直是要進一步發(fā)展和標準化活動的主題。兩個重要的標準是ISO11172MPEG國際標準和ITU-T推薦H.261。這兩個標準都部分地依賴DCT編碼和IDCT編碼。
二維離散余弦變換是一對數(shù)學方程,它們把一個N1xN2數(shù)值矩陣變換成另一個N1xN2數(shù)值矩陣或由另一個N1xN2數(shù)值矩陣變換成這個N1xN2數(shù)值矩陣。第一個矩陣通常代表一個構(gòu)成數(shù)字圖像的空間確定的分量值的NxN方陣。由于每個像素可能有若干分量與之關聯(lián),為了簡單起見,在下文中考慮單分量像素。然而,對于本領域的專業(yè)人員而言,擴展到多分量像素是顯然的。第二個矩陣是代表頻率域中該圖像的離散余弦變換系數(shù)矩陣。這種曲其頻率分量的系數(shù)代表圖像的方法是離散傅里葉(Fourier)變換的一個特例。離散傅里葉變換是經(jīng)典的數(shù)學傅里葉變換的離散版本,在經(jīng)典的數(shù)學傅里葉變換中,任何周期性波形都可以表示為不同頻率和振幅的正弦和余弦波之和。與傅里葉變換類似,離散余弦變換是這樣的一種變換,它把一個信號從時間域變換到頻率域以及相反的變換。與離散傅里葉變換相比,全部DCT乘法都是實運算,這減少了所需乘法的次數(shù)。對于大多數(shù)圖像,信號的大部分能量處于低頻,這出現(xiàn)在DCT的左上角。右下角的值代表較高頻率,它們往往小到足可以被忽略而幾乎沒有什么可以看得出的畸變。
有兩個基本的離散余弦變換方程。第一個基本方程是正向離散余弦變換,它把像素值變換成離散余弦變換系數(shù)。第二個基本方程是逆離散余弦變換,它把離散余弦變換系數(shù)變換回到像素值。對圖像進行離散余弦變換多數(shù)應用使用8×8矩陣,所以這里的N值為8。于是,假定進行變換時N值為8,f(i,j)是像素矩陣值,F(xiàn)(u,v)是離散余弦變換系數(shù)值,則2D(二維)離散余弦變換由下式給出F(u,v)=CuCv4Σx=07Σy=07f(x,y)cos((2x+1)uπ16)cos((2y+1)vπ16)]]>這里x,y=空間域中的空間坐標(0,1,2,…7);u,v=變換域(0,1,2,…7)中的系數(shù);對于u=0,有Cu=12]]>否則為1;對于V=0,Cv=12,]]>否則為1。通過對8列進行1D(一維)DCT,然后對所得結(jié)果的8行進行1D DCT,從而利用了2D DCT的可分離特性。對于計算8點1D DCT,可得到若干快速算法。
如上所述,壓縮器的DCT部分主要包含兩部分。第一部分使用DCT變換把高度相關的圖像數(shù)據(jù)變換成弱相關的系數(shù),第二部分進行對系數(shù)的量化以降低傳輸或存儲的比特率。然而,為進行DCT需要大量的計算。例如,在當前已知的快速算法中,處理長度為8個像素的一維DCT需要13次乘法和29次加法。(在文章“圖像的快速DCT-SQ算法”(Trans.IEICE,Vol.E-71,No.11 pp1095-1097,1988年11月)中,Y.Arai、T.Agui和M.Nakajima建議,許多DCT乘法能被公式化為對DCT系數(shù)的比例因子(scaling multiplier)。提取出這些因子后的DCT稱作求比例后的DCT(scaled DCT)。求比例后的DCT仍是正交的但不再是歸一化的,然而可以在其后的量化過程中恢復比例因子。Arai等在他們的文章中表明,在處理8點求比例后DCT時只需要5次乘法和29次加法。如前所述,圖像被分成大小為8×8像素、16×16像素或32×32像素的塊。每塊往往由逐行方式的一維DCT后跟逐列方式的一維DCT來處理。另一方面,由于不同輸入類型和對壓縮后數(shù)據(jù)的不同質(zhì)量要求,選擇不同的塊大小供壓縮。
可以以最小量的加法/減法用比例項(Scaled term)代替離散余弦變換(DCT)中的余弦項之類的倍增常數(shù)。然而,比例項只是近似于變換公式中的常數(shù)。這樣,接受某種誤差以使精度限定的固定的比特數(shù)或使操作次數(shù)達到最少。如果得到的數(shù)比最大可能誤差更遠離判定邊界(例如一個閾值或量化邊界),則結(jié)果將不受這些近似的影響。然而,在增量計算過程中,可能確定其結(jié)果數(shù)需要額外的精度。然而,原始的輸入值在寄存器中不再能得到,從存儲器中再次取出原始輸入值能引起與高速緩存丟失和存儲器延遲相關聯(lián)的周期。強力(brute-force)選擇是對數(shù)值進行一種逆變換(例如IDCT),然后以較高精度再運行正變換(例如FDCT,有時只稱作DCT)。強力方法的缺點是一些操作被浪費。
然而,通常研究集中于特定的技術(shù),如上述使用DCT編碼以提供所希望壓縮度的技術(shù)。雖然如此,其他變換可用于在某些條件下提供某些好處。例如,在上文討論的DCT壓縮編碼方法中,輸入圖像被分成許多均勻的塊,并對每塊應用二維離散余弦變換函數(shù),以把數(shù)據(jù)樣本變換成一組變換系數(shù),從而去掉空間冗余。然而,盡管得到了高壓縮率,但產(chǎn)生了分塊效應,這可能是細微的或明顯的。再有,可由壓縮系統(tǒng)利用的矢量量化方法是有好處的,這是由于它們對高壓縮率的貢獻。另一方面,子帶(Sub-band)方法可以減小在高數(shù)據(jù)壓縮率時發(fā)生的分塊效應。離散小波變換(DWT)或予帶編碼(SBC)方法基于例如時間和頻率分量對信號編碼。這樣,這些變換方法對于分析非平穩(wěn)信號會是有用的,而且它們的優(yōu)點是可以被設計成考慮人類視覺系統(tǒng)(HVS)的特性供圖像分析。
于是,可以看出,需要提供一種能提供更快的變換計算的方法和裝置,它使用早期中止和精度細算以節(jié)省處理周期,從而減少軟件執(zhí)行時間并降低對硬件的要求。
發(fā)明內(nèi)容
為克服現(xiàn)有技術(shù)中的上述限制,并為了克服在閱讀和理解本說明之后將清楚看出的其他限制,本發(fā)明公開一種使用多重比例項、早期中止和精度細算的快速變換。
本發(fā)明通過把離散變換分割成多個子變換來解決上述問題,這些子變換是通過對變換常數(shù)使用比例項獨立計算出來的。再有,找到了用于二進制算術(shù)的比例項的優(yōu)化表達式。得到的計算成為快速變換計算,減少了軟件執(zhí)行時間并降低了對硬件的要求。再有,本領域技術(shù)人員將會理解,往往能使用同樣的方法實現(xiàn)逆變換,因而通常使用同樣數(shù)量的操作。本發(fā)明還通過對變換常數(shù)使用比例項來減少乘法次數(shù),從而解決上述問題。再有,在進行比例運算之后,這些常數(shù)項由一系列較少量線性移位和加法所取代,因為可以在僅少量加法后由2的冪次之和近似這些常數(shù)。本領域技術(shù)人員將會理解,本說明從頭至尾使用“矩陣”這一術(shù)語,即在它的傳統(tǒng)數(shù)學意義上使用,還用它涵蓋全部硬件和軟件系統(tǒng),當用于分析時它們能等效地表示為數(shù)學矩陣。本發(fā)明還通過根據(jù)對變換常數(shù)增量計算的測試來檢測何時應該采取校正并采取下列校正以解決上述問題細算增量計算以得到額外的精度和/或當?shù)玫降臄?shù)變得太小時中止增量計算。
根據(jù)本發(fā)明原理的一種方法包括把變換方程安排成至少一個集群(collection),它有至少兩個變換常數(shù),并使用一個比例項對每個集群獨立地對這至少兩個變換常數(shù)進行比例運算,以在這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本上均一的比值。本發(fā)明還涉及用2的冪次之和近似得到的比例離散余弦變換常數(shù)估計值來代表每個比例離散余弦變換常數(shù),根據(jù)本發(fā)明原理的方法的另一些實施例包括替代的或可任選的附加方面。本發(fā)明的一個這樣的方面是該方法進一步包括把數(shù)據(jù)分成至少一塊并通過比例變換方程變換成變換數(shù)據(jù)。
本發(fā)明的另一方面是基于二進制運算對離散余弦變換方程進行矩陣乘法以把數(shù)據(jù)塊變換成變換后的數(shù)據(jù),該二進制運算使用估計的求比例后的離散余弦變換常數(shù)并進行線性移位和加法。
本發(fā)明的另一方面是根據(jù)預定的成本(cost)函數(shù)選擇比例項。
本發(fā)明的另一方面是該預定成本函數(shù)包含選擇比例項,從而使任何變換系數(shù)的最大誤差不大于預定的誤差百分數(shù)。
本發(fā)明的另一方面是該預定成本函數(shù)包含選擇比例項,從而使每個所涉及的變換系數(shù)的最大誤差不大于其預定的誤差百分數(shù)。
本發(fā)明的另一方面是該預定成本函數(shù)包含選擇比例項,從而使預定的變換常數(shù)具有的誤差小于或等于一個預定的誤差百分數(shù)。
本發(fā)明的另一方面是該預定成本函數(shù)包含選擇比例項,從而使每個所涉及的預定變換常數(shù)具有的誤差小于或等于其預定誤差百分數(shù)。
本發(fā)明的另一方面是該預定成本函數(shù)包含選擇比例項和變換常數(shù)表達式,從而使一個集群的全部變換常數(shù)具有的聯(lián)立二進制表達式帶有預定特性。
本發(fā)明的另一方面是該成本函數(shù)使加法操作的次數(shù)減至最小。
本發(fā)明的另一方面是該成本函數(shù)使最壞情況下的加法次數(shù)減至最少。
本發(fā)明的另一方面是預定特性包含最少數(shù)量的公共2的冪次項。
本發(fā)明的另一方面是當二進制算術(shù)移位可以比乘法操作更有效時,實現(xiàn)選擇比例項和變換常數(shù)表達式,從而使一個集群的全部變換常數(shù)所具有的聯(lián)立二進制表達式帶有最小數(shù)量的公共2的冪次項。
本發(fā)明的另一方面是預定特性包含非零2的冪次項的最大化群集。
本發(fā)明的另一方面是實現(xiàn)比例項的選擇,使得當更希望利用較小整數(shù)而不希望利用較大數(shù)進行乘法操作時,一個集群的所有變換常數(shù)具有聯(lián)立二進制表達式,這些表達式帶有非零2的冪次項的最大的群集。
本發(fā)明的另一方面是對表示常數(shù)的2的冪次多項式的系數(shù)是否非零進行跟蹤。
本發(fā)明的另一方面是比特位的位置值確定2的冪次項。
本發(fā)明的另一方面是對非零2的冪次項的群集實現(xiàn)最大化包括采取下列步驟找出比例常數(shù)的全部表達式a)把第一變量設為塊中的第i個元素,b)把第二變量初始化為值2,c)把一個位掩碼(bitmask)初始化為二進制3,d)分析這些位以確定由第一變量指定的第i個元素是否是使用2n+2n-1=2n+1-2n-1進行項重排序所需要的候選表達式,e)通過把第二變量加到第一變量對第i個元素編碼,以進行由2n+2n-1=2n+1-2n-1給出的有效的2的冪次改變,f)得到新的表達式,并使第一變量增量為第i+1個元素,g)將位掩碼和第二變量向左移一位,以及h)重復d-g。
本發(fā)明的另一方面是該方法進一步包括在檢驗是否設定了與掩碼位匹配的第一變量之后,使位掩碼向左移位從而在右側(cè)放一個零并增大用于按2n+2n-1=2n+1-2n-1重排序的2的冪。
本發(fā)明的另一方面是這些集群代表進行部分計算的不相交變換方程組。
本發(fā)明的另一方面是這些集群不代表進行部分計算的不相交變換方程組。
本發(fā)明的另一方面是該方法進一步包括在至少一個集群中的每個集群中為變換常數(shù)選擇一個獨立的比例項。
根據(jù)本發(fā)明原理的一種方法包括在變換過程中測試由變換系數(shù)的增量計算得到的至少一個數(shù),根據(jù)該測試確定是否進行校正,并且當確定需要校正時進行校正。
根據(jù)本發(fā)明原理的方法的另一些實施例包括其它的或可任選的附加方面。本發(fā)明的一個這樣的方面是該確定過程包含檢測變換系數(shù)的增量計算是否將造成變換系數(shù)具有不可接收的精度,而進行校正包含細算(refine)至少一個數(shù)。
本發(fā)明的另一方面是該變換包含一個變換矩陣,而且其中細算包含應用一個細算矩陣以提高變換常數(shù)增量計算的精度。
本發(fā)明的另一方面是細算矩陣包含I+dDm+1Dm-1。
本發(fā)明的另一方面是該方法進一步包括根據(jù)近似計算的變換常數(shù)產(chǎn)生至少一個細算矩陣。
本發(fā)明的另一方面是產(chǎn)生至少一個細算矩陣是離線進行的或在初始化時進行的。
本發(fā)明的另一方面是產(chǎn)生至少一個細算矩陣包含承認一個近似變換是可逆的,產(chǎn)生由I+dDm+1Dm-1給出的細算矩陣以及構(gòu)成用于有效計算的變換。
本發(fā)明的另一方面是產(chǎn)生細算矩陣包括承認為產(chǎn)生一個變換而恢復該變換矩陣的第n列是不可能的,為該變換矩陣的一部分計算偽逆(pseudo inverse)并使用該換矩陣的偽逆產(chǎn)生細算矩陣的近似。
本發(fā)明的另一方面是該細算矩陣的近似包含 本發(fā)明的另一方面是該確定過程進一步包含確定由終止增量計算造成的誤差是否是可接受的,而進行的校正包含中止變換系數(shù)的增量計算。
本發(fā)明的另一方面是當確定增量計算將得到一個預計落入預定范圍的數(shù)時終止增量計算。
本發(fā)明的另一方面是預計落入預定范圍的數(shù)包含滿足精度要求的變換系數(shù)。
本發(fā)明的另一方面是當確定對變換系數(shù)的細算不改變其結(jié)果時終止增量計算。
本發(fā)明的另一方面是在檢驗增量計算結(jié)果的相對大小之后,當對至少一個變換系數(shù)的中間計算與另一變換系數(shù)的中間計算相比為較小時,確定對變換系數(shù)的細算沒有改變結(jié)果。
本發(fā)明的另一方面是在檢驗至少一個增量計算結(jié)果的大小之后,當變換系數(shù)的至少一個中間計算結(jié)果小于一預定閾值時,便確定對變換系數(shù)的細算沒有改變其結(jié)果。
本發(fā)明的另一方面是該確定過程進一步包含確定一個變換系數(shù)要在零的預定范圍內(nèi),而進行校正包含中止變換系數(shù)的增量計算。
在本發(fā)明的另一實施例中,提供了一種數(shù)據(jù)壓縮系統(tǒng)。該數(shù)據(jù)壓縮系統(tǒng)包括一個變換器和一個量化器變換器應用線性變換,使用變換方程使數(shù)據(jù)解除相關性,成為變換系數(shù),這些變換方程的構(gòu)成是通過把變換方程安排成有至少兩個變換常數(shù)的至少一個集群并以一個比例項對每個集群的這至少兩個變換常數(shù)進行獨立的比例運算,以使這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,這里的比例項是根據(jù)預定的成本函數(shù)選定的;量化器用于通過減少表示變換系數(shù)所需的位數(shù)使變換后的數(shù)據(jù)量化為量化數(shù)據(jù)。
在本發(fā)明的另一實施例中提供了一臺打印機。該打印機包括用于存儲圖像數(shù)據(jù)的存儲器、用于處理該圖像數(shù)據(jù)以提供壓縮打印流輸出的處理器以及用于控制打印頭以產(chǎn)生圖像數(shù)據(jù)打印輸出的打印頭控制電路,其中該處理器應用線性變換,使用變換方程使數(shù)據(jù)解除相關性,成為變換系數(shù),這些變換方程的構(gòu)成是通過把變換方程安排成有至少兩個變換常數(shù)的至少一個集群并以一個比例項對每個集群的這至少兩個變換常數(shù)進行獨立的比例運算,以使這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,其中比例項是根據(jù)預定的成本函數(shù)選定的。
在本發(fā)明的另一實施例中,提供了一種生產(chǎn)產(chǎn)品。該生產(chǎn)產(chǎn)品包括一個計算機可讀的程序存儲介質(zhì),該介質(zhì)有形地包含一個或多個可由計算機執(zhí)行的指令程序,以實現(xiàn)一種方法,該方法把變換方程安排成有至少兩個變換常數(shù)的至少一個集群并以一個比例項對每個集群的這至少兩個變換常數(shù)進行獨立的比例運算,以使這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,其中比例項是根據(jù)預定的成本函數(shù)選定的。
在本發(fā)明的另一實施例中,提供了一種數(shù)據(jù)分析系統(tǒng)。該數(shù)據(jù)分析系統(tǒng)包括變換方程和變換器,這些變換方程的構(gòu)成是通過把變換方程安排成有至少兩個變換常數(shù)的至少一個集群并以一個比例項對每個集群的這至少兩個變換常數(shù)進行獨立的比例運算,以使這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,其中比例項是根據(jù)預定的成本函數(shù)選定的,變換器應用變換方程進行線性變換,對數(shù)據(jù)去相關,變換成變換系數(shù)。
表征本發(fā)明創(chuàng)新處的這些和其他優(yōu)點和特點由這里所附作為本申請一部分的權(quán)利要求具體指出。然而,為了更好地理解本發(fā)明,它的優(yōu)點以及由使用它而達到的目的,應該參考附圖,附圖進一步構(gòu)成本申請的一部分,并附在描述性內(nèi)容之后,在這些附圖中示出和描述了根據(jù)本發(fā)明的裝置的具體實例。
圖7顯示測試至少一個增量計算數(shù);圖8是根據(jù)本發(fā)明的細算方法的流程圖;圖9是產(chǎn)生細算矩陣的第一方法流程圖;
圖10是流程圖,顯示第二方法,用于當dD0不可逆時產(chǎn)生細算矩陣;圖11顯示根據(jù)本發(fā)明的打印機;圖12顯示根據(jù)本發(fā)明的數(shù)據(jù)分析系統(tǒng);圖13顯示根據(jù)本發(fā)明的另一個數(shù)據(jù)分系統(tǒng)。
本發(fā)明提供使用多重比例項的快速變換。這些變換被分割成子變換,使用變換常數(shù)的比例項對它們獨立地進行計算。找到了用于二進制運算的比例項的優(yōu)化表達式。這一方法使變換計算變快、減少了軟件執(zhí)行時間以及降低了硬件要求。根據(jù)本發(fā)明,在信號和圖像處理中使用的離散變換利用了所謂基函數(shù)(basis function),這些基函數(shù)設定變換的結(jié)構(gòu)并為允許在兩個或更多個子集群中計算該變換打下基礎。然后使用快速實現(xiàn)變換的成本函數(shù)來找出計算中的基系數(shù)的優(yōu)化表達式。
圖1顯示典型的圖像壓縮系統(tǒng)100。該數(shù)據(jù)壓縮系統(tǒng)可以包括三個密切聯(lián)系的部件,即(a)變換120,(b)量化器130以及(c)可選的熵編碼器140。通過應用線性變換解除圖像數(shù)據(jù)110的相關性,對得到的變換系數(shù)量化以及如果希望的話對量化的值進行熵編碼實現(xiàn)壓縮。已經(jīng)開發(fā)了多種線性變換,包括離散傅里葉變換(DFT)、離散余弦變換(DCT)、離散小波變換(DWT),還有更多,每種變換有其自已的優(yōu)點和缺點。
量化器130僅通過降低那些值的精度來減少為存儲變換后的系數(shù)所需要的位數(shù)。由于這是“多到1”的映射,所以它是一個有損過程而且是編碼器中的顯著的壓縮源??蓪γ總€單個系數(shù)進行量化,稱作標量量化(SQ)。也能對系數(shù)的集群一起進行量化,這稱作矢量量化(VQ)。根據(jù)要解決的問題,均一的和非均一的量化器都可使用。
可選的熵編碼器140進一步無損地壓縮量化后的值,以給出更好的總壓縮。它使用一個模型精確地確定每個量化值的概率并根據(jù)這些概率產(chǎn)生適當?shù)木幋a,從而使得到的輸出代碼流將小于輸入流。最常用的熵編碼器是Huffman編碼器和算術(shù)編碼器,當然,對于需要快速執(zhí)行的應用,簡單的游程長度編碼(RLE)被證明是很有效的。
術(shù)語“圖像變換”通常是指用于代表圖像的一類酉矩陣。這意味著能使用這些矩陣把圖像轉(zhuǎn)換成替代的表達式。這些變換構(gòu)成變換編碼的基礎。變換編碼是對變換的系數(shù)進行編碼以供傳輸?shù)囊粋€過程。
信號(x)是一個函數(shù),它把從0到n-1的每個整數(shù)映射到一個復數(shù)中。一行取樣的或像素化的圖像給出這樣一個實例。這里的樣本或像素是等間隔的。這個(x)的集群的“正交基”是函數(shù){by(x)}y=0n-1]]>的集合,其中對y1z,Σx=0n-1by(x)bz(x)=0.]]>(X)的“變換”,表示為F(y),由F(y)=Σx=0n-1f(x)by(x)]]>給出。這類變換用于很多信號和圖像處理應用中,以從原始信號中提取信息。變換的一個示例是離散傅里葉變換(DFT),這里by(x)=exp(2pixy/n)。與此關聯(lián)的的一個例子是離散余弦變換(DCT),這里by(x)=cos(2pxy/n)。另一個例子是小波變換,這里by(x)是母小波函數(shù)的特定比例和偏移后的版本。(見Ingrid Daubechies的《小波十講》,工業(yè)與應用數(shù)字協(xié)會,1992年5月)。
現(xiàn)在將通過顯示能進行比例運算而不破壞變換結(jié)構(gòu)的數(shù)字基礎,來說明獨立的比例運算操作的理論基礎。定義一個變換F(y)=Σx=0n-1f(x)by(x).]]>考慮這樣一些情況(下文描述),此時by(x)使得這一變換能被分割成兩個或更多個不相交的和,而不管(x)的結(jié)構(gòu)如何。(當在這里針對方程組使用術(shù)語“不相交(disjoint)”時,是指兩個不相交的方程組中的方程之間沒有共同的變換系數(shù)。)例如,如果b2y(x)有偶對稱性,b2y+1(x)有奇對稱性,則由數(shù)學可知,任何(x)能被唯一地寫做(x)=e(x)+o(x),這里e(x)是偶數(shù)(關于零對稱),而o(x)是奇數(shù)(關于零反對稱),并且Σxfe(x)b2y-1(x)=Σxfob2y(x)=0.]]>這使該變換能被等效地寫做 圖2顯示JPEG編碼器100的方框圖。在圖2中,數(shù)字圖像數(shù)據(jù)116被分割成多達8×8的像素塊112。然后,對每塊計算離散余弦變換(DCT)(120)。離散等弦變換(DCT)有助于把數(shù)據(jù)分成有不同重要性(例如關于圖像的視覺質(zhì)量)的若干部分(或子頻帶)。DCT與離散傅里葉變換相似它把信號從空間域變換到頻率域。
量化器130根據(jù)量化矩陣對DCT系數(shù)進行舍入。這一步驟產(chǎn)生了JPEG的“有損”特性,但使得能夠有大的壓縮比。這是在圖像質(zhì)量和量化程度之間的折衷。大的量化步長能產(chǎn)生不可接受的大的圖像畸變。這種效應類似于太稀疏地量化傅里葉級數(shù)系數(shù),這會造成大的畸變??上У氖?,較精細的量化導致較低的壓縮比。問題是如何最有效地量化DCT系數(shù)。由于人類視覺的自然高頻滾降,這些頻率所起的作用小于低頻。這使JPEG對高頻系數(shù)使用高得多的步長,而幾乎沒有可覺察的圖像質(zhì)量下降。然后,量化器系數(shù)輸出可由可選的熵編碼器140編碼,以向輸出文件中產(chǎn)生壓縮后的數(shù)據(jù)流150。請注意,對于JPEG,熵編碼器不是任選的,但其他類似的數(shù)據(jù)壓縮系統(tǒng)能被設計成沒有由熵編碼器所需要的CPU周期。
然而,如下文所述,需要提供一種方法和裝置用于以較小的乘法步驟完成離散余弦變換,從而增大編碼器100的吞吐量。如下文所述,根據(jù)本發(fā)明的方法通過對系數(shù)矩陣進行比例運算可節(jié)省強力方程中的乘法運算。每個可分離的子組被獨立于其他集群進行比例計算。在每個集群中,其余的乘法運算由簡單的移位和相加代替。根據(jù)各種成本函數(shù)選擇比例項。該最佳實施例使用的成本函數(shù)使相加數(shù)量最少并使最壞情況的相加數(shù)量最少。然而,本領域技術(shù)人員將會理解,其他成本函數(shù)能選擇每個系數(shù)允許有多大誤差。再有,本領域技術(shù)人員將會理解,使用相同的方法能實現(xiàn)逆DCT(IDCT),從而使用與其相同數(shù)量的操作。
圖3顯示本發(fā)明的流程圖200,在圖3中,變換方程被分割成具有至少兩個變換常數(shù)的至少一個子變換(210)。在這里使用的術(shù)語“子變換”是指用于產(chǎn)生變換后項的子集的方程集群,這里的子集可以包含全部變換后的項或者少于變換后的項的總數(shù)。接下來,用比例項對每個集群的變換常數(shù)獨立地進行比例運算,以在集群內(nèi)變換常數(shù)之間保持基本均一的比值,其中根據(jù)預定的成本函數(shù)選擇比例項(220)。其結(jié)果是得到用于變換該塊的變換方程。數(shù)據(jù)被分成至少一塊(230)。然后使用變換方程把該塊變換成變換后的數(shù)據(jù)(240)。傳統(tǒng)的系統(tǒng)將離線完成塊210和220。然而,對于諸如JPEG 2000等在運行時指定的算法,會在程序初始化階段自動完成這些塊。參考圖1的量化器130,然后可通過把比例運算納入量化使變換后的數(shù)據(jù)被量化。這與整數(shù)余弦變換(ICT)不同(例如見Pang等人的”圖像編碼用的自計時芯片”,IEEE Trans?!耙曨l技術(shù)用的電路和系統(tǒng)”,Vol.9,no6,1999,pp856-860),其中在每個方程中用同一值對每個系數(shù)進行比例運算,這種方法不具有這里描述的方法的計算優(yōu)點。
對常數(shù)的比例項的選擇可以用代表目標系統(tǒng)需求的成本函數(shù)來選擇。對這一成本函數(shù)識別出若干參數(shù)供快速變換使用。所使用的實際成本函數(shù)可以包括下述成本函數(shù)之一或它們的組合第一成本函數(shù)是任何變換系數(shù)(即F(x))的最大誤差不大于P%,這里P由算法設計者選擇。在下面的例子中P=1。
第二成本函數(shù)是由算法設計者選定的某些更重要的變換常數(shù)的誤差不大于P重要%。在下面的例子中低頻項的誤差小于0.1%。
第三成本函數(shù)被分成兩個判據(jù)C1和C2,它們應用于不同的系統(tǒng),即一般性地選擇滿足判據(jù)C1或判據(jù)C2。判據(jù)C1可應用于移位比乘法更有效的那些實現(xiàn)(例如軟件或固件)。判據(jù)C2可應用于與利用較大數(shù)的乘法相比更希望利用較小整數(shù)乘法的那些實現(xiàn)(例如超過一定比特位數(shù)的乘法使用更多周期或關心總精度的那些軟件實現(xiàn))。將給出具體實例來說明這兩個判據(jù)。這兩個判據(jù)能在一起使用。
根據(jù)第一判據(jù)C1,在同一個和中出現(xiàn)的所有求比例后的整數(shù)基因子(在FDCT的情況中,常數(shù)C1至C7,這里Ck=cos(kp/16))應該具有聯(lián)立二進制表達式(simultanous binary representation),這些表達式有最少數(shù)量的共同2的冪次項,即在一個集群內(nèi)全部表達式的2的冪次項集合應盡可能小。實數(shù)常數(shù)可由有理數(shù)(即整數(shù)的比)近似。這里針對求比例之后的變換常數(shù)所使用的詞“表達式”是指這一整數(shù)比的分子可以作為2的冪的和/或差計算出來所采用的方式。
例如,在FDCT中,變換能被分成三個方程組2S(0)=C4(s0734+s1625)(1)2S(4)=C4(s0734-s1625)2S(2)=C2d0734+C6d1625(2)2S(6)=C6d0734-C2d16252S=C1d07+C3d16+C5d25+C7d34(3)2S(3)=C3d07-C7d16-C1d25-C5d342S(5)=C5d07-C1d16+C7d25+C5d342S(7)=C7d07-C5d16+C3d25-C1d34這些方程中使用的符號取自Pennebaker的書。請注意,Ss與 成正比。這樣,在方程組3中的常數(shù)應該有聯(lián)立二進制表達式,它們具有最少數(shù)量的2的冪次項,但它們的聯(lián)立表達式與方程組2中的常數(shù)所使用的表達式無關。方程組3的具體實例示于下面41C1≈40=25+2341C3≈34=25+2141C5≈23=25-23-21+2041C7≈23所有這些表達式對每個系數(shù)的誤差小于1%。在此例中,公用2的冪次項集合是{25,23,21,20},這可從這些方程中看出,這些表達式可以看做是2的多項式,以+1或0乘2的每個方冪,即41C1≈1·25+1·23+0·21+0·20(4)使得這些項的個數(shù)有效地減至最少的原因在于方程組3能通過組合這些2的冪次計算出來。在使用這一判據(jù)C1的結(jié)構(gòu)中,在占用周期方面加法和移位比乘法廉價,所以我們可以把方程組3看作計算矩陣操作25+2325+2125-23-21+202325+21-23-(25+23)-(25-23-21+20)25-23-21+20-(25+23)2325+2123-(25-23-21+20)25+21-(25+23)d07d16d25d34]]>計數(shù)加法和移位,它使用總共28次操作。如果我們預先計算出A=d2s-d34和B=d07+d16,則方程變成-d25d16d07-Ad25+Bd34d07-d16-Ad07-d25-d34-d07d34d25-Bd34+d07-d16d16d25-d34+B-d16+A20212325]]>利用預先計算,它成為24個周期。再有,消去20項,它對C5提高誤差3%左右,把操作總數(shù)減為20。應該指出,上面討論的快速DCT的奇數(shù)號系數(shù)的計算除了初始的加、減計算還使用11次加法和4次乘法,這里乘法占用的周期對許多微處理器而言是大于1的,往往在4和11個周期之間。
根據(jù)第二判據(jù)C2,在同一個和(例如上文中的同一組1、2或3)中出現(xiàn)的所有求比例后的整數(shù)基因子(例如FDCT情況中的C1至C7)應該具有聯(lián)立二進制表達式,這些表達式有盡可能群集(clustered)的非零2的冪次項;即2的最大冪次項和最小2的冪次項之差盡可能小。群集的表述式的實例示于下式28=25-22和28=24+23+22。在第一個表達式中,2的冪次分散為5-2=3,而在第二個表達式中,2的冪次分散為4-2=2。這使28的第二個表達式比第一個更為“群集”。其優(yōu)點是假設在一組中的所有常數(shù)的表達式中2的最小冪次是22。這意味著在計算中能在量化中取得兩位精度和有效地求比例,我們將以22除所有的常數(shù),從而不必對尾部的那些零移位。
如果需要的話,可以在量化之前把這些尾部的零所代表的附加量級再引入到數(shù)中,例如,如果在表達式之一中的尾部1需要“舍取出來”作為精度以做量化判定的話。(見上文中在C1下的例子,其中我們建議可能舍掉20項。)圖4顯示一方法的流程圖300,該方法使用條件2n+2n-1=2n+1-2n-1(5)找出用于第二判據(jù)C2的聯(lián)立表達式。首先,把“num”設定為“repcount”(310),這是數(shù)組“reps”的第i個元素。對于一個給定數(shù)的表示式的當前計數(shù)是“repcount”。變量“add”被初始化為2(312)。位掩碼(bitmask)被初始化為二進制0…011(314)。
對各位進行檢驗,以確定與掩碼位匹配的“num”中的兩個位是否都被設定(340)。如果不是(342),則掩碼向左移一位(350),有效地在右邊放一個零,“add”向左移一位,從而增大2的冪次,這用于上述方程(5)中重新排序。如果與掩碼位匹配的“num”中的兩個位都被設定(344),則這個位模式“num”是候選表達式,用于使用上述條件(5)進行項重新排序。然后,通過把“add”加到“num”上,“num”對該表達式編碼,以進行由上述條件(5)中所示方程給出的2的冪次改變(346)。這提供了比強力方法更快的速度和更高的存儲效率;例如,進行對各表達式的窮盡搜索并分別存儲全部零、+1和-1值。一個新的表達式得到了,“repcoumt”被設置為“repcount”+1(348)。掩碼向左移動一位(350)。
移位將進行下去,直至達到預定的最大值“maxmask”(370)。如果尚未達到預定的最大值,則以新的“repcount”重復該例程,于是“num”被設定為新的表達式(372)。否則進入374,于是該例程結(jié)束。
利用程序中表達式被編碼的方式,程序只保持跟蹤2的冪次多項式中的系數(shù)(例如見方程(4))是否非零;即+1作為“1”位存儲,而0作為“0”位存儲。多項式中的2的冪次項以其位的位置編碼;例如,位零(最右側(cè))對應于20。程序不能把+1區(qū)分開,所以人們可能會對程序如何跟蹤表達式提出凝問。由于掩碼在整數(shù)表達式中向左掃描,還由于表達式從2n+2n-1變化為2n+1-2n-1只是在多項式表達式中把2的冪向有效地左移(即它只增加表達式中使用的2的冪),所以沒有機會移動一個2的冪使得具有因子a+1的2的冪與具有因子a-1的相同2的冪相加。這樣,只跟蹤這些因子是否非零便足夠了,因為與上述“reps”中存儲的整數(shù)耦合的原始整數(shù)的知識足以唯一地確定該表達式。
如前所述,本發(fā)明還致力于不能把各項很好地分成不相交方程組的那些變換,那些變換不像FDCT(以及IDCT)能被分成上述組1、2和3。如前所述,術(shù)語“不相交(disjoint)”當在這里針對方程組使用時是指在兩個不相交的方程組中各方程之間沒有共同的變換常數(shù)。如果使用這些常數(shù)的2的冪聯(lián)立表達式,通過在變換中任意地或根據(jù)某種成本函數(shù)選擇方程組,通過為每組中的常數(shù)選擇獨立的比例項,并對變換常數(shù)表達式以2的冪分組,仍可能實現(xiàn)加速,所以人們?nèi)韵胍斐膳袚?jù)用于找出任意方程組中系數(shù)的表達式。當變換分離成不相交方程組時,恰能將特別好地做到這一點,因為變換常數(shù)被組合到這些方程組中。
下面是FDCT的一個例子,這里我們使用不同的組合2S(0)=C4(s0734+s1625) (6)2S(3)=C3d07-C7d16-C1d25-C5d342S(5)=C5d07-C1d16+C7d25+C3d342S(2)=C2d0734+C6d1625(7)2S(6)=C6d0734-C2d16252S(4)=C4(s0734-s1625)2S(1)=C1d07+C3d16+C5d25+C7d34(8)2S(7)=C7d07-C5d16+C3d25-C1d34現(xiàn)在對組6能得到一個比例項,并能找出C1、C3、C4、C5、C7的聯(lián)立表達式,以進行該組中的三次計算。然后,可以找出組8的一個不同的比例項和這些方程的C1、C3、C5、C7的聯(lián)立表達式,這些表達式可能與組6的計算中使用的那些表達式很不同。
圖5顯示流程圖300用于使用校正提供更快的變換計算和減少執(zhí)行次數(shù),從而提供更快的變換。使用變換中的變換常數(shù)進行的增量計算所得到的至少一個數(shù)被測試(310)。然后,根據(jù)該測試,確定何時進行校正(320)。一旦確定要進行校正,則進行校正(330)。
細算的第一個例子發(fā)生于當每個dDk把至少一個額外的精度位加到由D進行的變換時,第二個例子發(fā)生于當變換矢量 的至少一個元素被假定為很小,從而dDk的整個一行可以近似為零之時,使得我們能跳過F的那個至少一個元素的計算。
在第一例中,常常所有Dk都是可逆的;即存在矩陣Dk-1,使DkDk-1=Dk-1Dk=I,I是單位矩陣,它在從左上到右下的對角線上有1,而在其他地方為零。在這種情況中,可以寫成F^m+1=Dm+1Dm-1F^m=(I+dDm+1Dm-1)F^m]]>(這里I是單位矩陣);即通過對變換后的系數(shù)再進行一次變換步驟來提供附加的提高精度步驟。使用這一附加的變換步驟來提高精度是本發(fā)明提供的細算的第一實施例,因為它省去了進行IDCT和其后的DCT矩陣(I+dDm+1Dm-1)能事先作為矩陣Rm+1計算出來,于是F^m+1=Rm+1F^m,]]>這是對Fm的單步變換。
細算的第二例要求不同的做法??紤]一個具體實例,這里已在第一維中以高精度完成了2-D變換FD’,dD0第8個行為零,而且dD1=D-dD0。然后,dD0是不可逆的,即無法從dD0FD’恢復FD’的原始8列(這來自這樣的事實從dD0FD’中找出FD’可被看做含有8個未知數(shù)的7個方程)。然而,如果對FD’的8列中的一個進行假定,則根據(jù)對第8列的假定,能從dD0FD’中估計出其他7列。一個合理的假定是第8列含有小元素,它們可以近似為零,因為較高編號的變換值趨向于在實際圖像中不如較低編號的變換值那樣重要。于是,dD0可作為8×7矩陣對待(忽略零行),以第8行為零插入假定的第8行系數(shù),由D~0d=(D′0dD0d)-1D′0d,]]>可以找出偽逆 (如在文獻中公知的那樣)。這給出對d的8×8近似D0-1,于是我們能近似F^1=(I+D1dD~0d)F^0]]>這一近似細算是本發(fā)明細算的第二實施例,它如第一例中那樣節(jié)省由DCT跟隨的IDCT的周期。
中止過程用于確定在計算完成之前何時能終止計算以節(jié)省周期,此時的計算結(jié)果預計是太小的值,故將被量化為零。應用中止過程的一個例子出現(xiàn)在上述例子中,其中至少一個低量級變換系數(shù)未被計算,基本上等效于把變換矩陣的相應一行或多行設定為零。另一例子是以有限精度停止計算,此時預計額外的變換精度對變換后的值提供的信息是可以忽略的,例如預計其計算結(jié)果小時。另一種方法涉及測試變換的某些輸入之和和/或差的大小。例如,對于FDCT,下列方程計算第二變換系數(shù)2S(2)=C2d0734+C6d162這里d0734=S07-S34,d1625=S16-S25,符號取自Pennebaker和Mitchell的JPEG文本??梢詼y試這些值的大小對其后處理變換系數(shù)造成的影響。在這個例子中,如果S(2)小于Q/2的大小(其中Q是S(2)的量化值),則S(2)將被量化為零.這轉(zhuǎn)換為測試d073的大小是否小于Q/(2C2)和d162的大小是否小于Q/(2C6)。如果滿足這一測試,則對S(2)的計算可被中止,于是S(2)被設置為它的量化值零。這種測試輸入值的和和/或差的方法能擴展到FDCT的全部方程。
如何把諸如-T^<F^<T^]]>的比較(對矢量或矩陣 的逐項范圍的檢驗)(這里 的元素全為非負)轉(zhuǎn)換成F的元素的逐項比較,-T<F<T(這里T的元素全為非負),而且滿足對F的測試便足以滿足對 的測試,這并不是顯然的事。困難來自于DCT既利用正操作也利用負操作這一事實,這破壞了方程中的逐項排序。具體地說,它不能說如果-T^<F^<T^]]>便意味著-D-1T^<F<D-1T^.]]>這樣,中止涉及在預計額外的變換精度對其后的處理操作(例如量化或比較)結(jié)果有可接受的或可忽略的影響時便終止一個操作的精度。例如,DCT的系數(shù)能由一個整數(shù)進行比例運算并近似為2的冪次之和。對于奇數(shù)項,這些近似之一如下所示41D=41C1C3C5C7C3-C7-C1-C5C5-C1C7C5C7-C5C3-C1≈32111010-1-11-1010-11-1+810-110-1-11-1-110110-1+201-101001-10010110+00-100001-10000100]]>我們把它寫做(使用上文中的符號)。
41D≈25dD0+23dD1+21dD2+20dD3同樣,如上所述,所有上述矩陣以及它們的順序和都是可逆的?,F(xiàn)在,如果 即 的第j個元素的大小很小,則j(32dD0F)應該是小的。如果不是,則j((8dD1+2dD2+dD3)F)將不能消去它以使最后結(jié)果小,可以檢驗這些計算結(jié)果的相對大小。如果對于一個中等精度而言這些變換值之一與其他值相比是小的,或者與某個預定閾值相比是小的,則可以中止其后對那個變換值的細算。
圖6顯示根據(jù)本發(fā)明的一種中止方法的流程圖400,它顯示中止進一步迭代變換系數(shù)計算過程。在圖6中,至少一個增量計算的數(shù)被測試(410)。如果滿足某些判據(jù),則進一步的計算被中止(420)。當由于終止增量計算所造成的誤差可以接受時,對變換系數(shù)的增量計算可以被中止。例如,當確定增量計算將得到預計落入預定范圍的一個數(shù)時,例如一個滿足精度要求的變換系數(shù),此時增量計算可被終止。另一種作法是,當一變換系數(shù)要落入零的預定范圍內(nèi)時,該變換系數(shù)的增量計算可被中止。
圖7顯示測試至少一個增量計算出的數(shù)的流程圖500。在圖7中,增量計算被測試,以確定何時對變換系數(shù)的細算將不改變結(jié)果(510),如用7中所示,這一測試可以以至少兩種方式進行。在檢驗增量計算結(jié)果的相對大小之后,當這至少一個變換系數(shù)的中間計算結(jié)果與另一變換系數(shù)的中間計算結(jié)果相比為較小時,可以確定該變換系數(shù)的細算將不改變結(jié)果(520)。另一種作法是,在檢驗至少一個增量計算結(jié)果的大小之后,當該變換系數(shù)的至少一個中間計算結(jié)果小于預定閾值時,可以確定該變換系數(shù)的細算將不改變結(jié)果(530)。
圖8是根據(jù)本發(fā)明的細算方法的流程圖600。首先,確定該變換是否要求更高精度(610)。該變換是一個變換矩陣,其中細算矩陣可以用于提高變換系數(shù)增量計算的精度。當要求更高精度時,一個細算矩陣應用于該變換(620)。細算矩陣是離線產(chǎn)生的或在初始化時產(chǎn)生,它以近似計算的變換常數(shù)為基礎。
圖9顯示產(chǎn)生細算矩陣的第一種方法的流程圖(700)。首先,承認一個近似變換是可逆的(710)。產(chǎn)生由I+dDm+1D-1m給出的細算矩陣(720)。然后構(gòu)成用于有效計算的變換(730)。
然而,如前所述,當dD0不可逆時,沒法從dD0FD’中恢復FD’的原始8列。圖10的流程圖800顯示當dD0不可逆時產(chǎn)生細算矩陣的第二種方法。首先承認為產(chǎn)生變換而恢復變換矩陣的第n列是不可能的(810)。計算該變換矩陣一部分的偽逆(820)。然后,使用該變換矩陣的偽逆產(chǎn)生細算矩陣的近似(830)。該細算矩陣的近似包含I+dD1dD0。
圖11顯示根據(jù)本發(fā)明的打印機420的方框圖400。在圖11中,打印機420從主處理器410接收圖像數(shù)據(jù)412。圖像數(shù)據(jù)412被提供給存儲器430,在那里圖像數(shù)據(jù)可被安排成8×8的塊樣本。然后8×8的塊樣本由處理器440處理,如柵格圖像處理器。柵格圖像處理器440向打印頭驅(qū)動電路450提供代表圖像數(shù)據(jù)的壓縮的打印流。然后打印頭驅(qū)動電路450控制打印頭460產(chǎn)生圖像數(shù)據(jù)的打印輸出470。
參考圖1-4所顯示的過程可以在計算可讀介質(zhì)或載體490中有形地實現(xiàn),例如如圖11中所示一個或多個固定的和/或可卸的數(shù)據(jù)存儲裝置或其他數(shù)據(jù)存儲或數(shù)據(jù)通信裝置。計算機程序可被加載到存儲器492中以配置圖11中的處理器440供執(zhí)行。該計算機程序包含指令,當圖11的處理器440讀出和執(zhí)行時,這些指令使處理器440進行為執(zhí)行本發(fā)明的步驟或元素所必須的步驟。
圖12顯示根據(jù)本發(fā)明的數(shù)據(jù)分析系統(tǒng)500。在圖12中,變換510接收要被分析的數(shù)據(jù)塊512。變換510使用變換方程520產(chǎn)生變換后的數(shù)據(jù)524。變換方程520被分成具有至少兩個變換常數(shù)的至少一個的子變換。對每個集群這至兩個變換常數(shù)被一個比例項獨立地進行比例運算,以保持這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,其中比例項可以根據(jù)預定的成本函數(shù)來選擇。然后,變換后的數(shù)據(jù)524可以任選地由量化器530進行量化。在量化器530中的量化值可以調(diào)整,以反映為每個集群所使用的比例項。
圖13顯示根據(jù)本發(fā)明的另一個數(shù)據(jù)分析系統(tǒng)600。在圖13中,變換610接收要被分析的數(shù)據(jù)塊612。變換610使用變換方程620產(chǎn)生變換后的數(shù)據(jù)624。變換方程624被分成具有至少兩個變換常數(shù)的至少一個子變換。對每個集群這至少兩個變換常數(shù)被一個比例項獨立地進行比例運算,以保持這至少一個集群內(nèi)的這至少兩個變換常數(shù)之間保持基本均一的比值,其中比例項可以根據(jù)預定的成本函數(shù)來選擇。然后,變換后的數(shù)據(jù)624可以與比較器630中的比例比較值進行比較。
上文中已經(jīng)對本發(fā)明的實施示例進行了描述,其目的是為了舉例說明和描述。而不是窮盡或把本發(fā)明局限于所公開的準確形式。根據(jù)上述教導,許多修改和變化是可能的。本發(fā)明的范圍不限定于這一詳細描述,相反,要由這里所附權(quán)利要求來限定。
權(quán)利要求
1.一種方法,包含如下步驟把變換方程安排成至少一個集群,該集群具有至少兩個變換常數(shù);以及使用一個比例項對每個集群獨立地對所述至少兩個變換常數(shù)進行比例運算,以在所述至少一個集群內(nèi)的所述至少兩個變換常數(shù)之間保持基本上均一的比值。
2.根據(jù)權(quán)利要求1的方法,其中比例項是來自所述至少一個集群的變換常數(shù)之一。
3.根據(jù)權(quán)利要求1的方法,其中每個變換常數(shù)由2的冪次之和所近似的估計變換常數(shù)來表示。
4.根據(jù)權(quán)利要求1的方法,進一步包含把數(shù)據(jù)分成至少一塊并通過所應用的方程把該塊變換成變換數(shù)據(jù),以在所述至少一個集合內(nèi)的所述至少兩個變換常數(shù)之間保持基本上均一的比值。
5.根據(jù)權(quán)利要求1和4之一的方法,其中比例項是根據(jù)預定的成本函數(shù)選擇的。
6.根據(jù)權(quán)利要求5的方法,進一步包含通過選擇比例項來確定預定的成本函數(shù)的步驟,以使任何變換系數(shù)的最大誤差不大于一個預定的誤差百分數(shù)。
7.根據(jù)權(quán)利要求5的方法,進一步包含通過選擇比例項來確定預定的成本函數(shù)的步驟,以使預定的變換常數(shù)的誤差小于或等于一個預定的誤差百分數(shù)。
8.根據(jù)權(quán)利要求5的方法,進一步包含通過選擇比例項和變換常數(shù)的表達式來確定預定的成本函數(shù)的步驟,以使一個集群的全部變換常數(shù)具有有預定特性的聯(lián)立二進制表達式。
9.根據(jù)權(quán)利要求8的方法,其中當二進制算術(shù)移位可能比乘法操作更有效時,實現(xiàn)選擇比例項和變換常數(shù)的表達式,從而使一個集群的所有變換常數(shù)具有聯(lián)立二進制表達式,所述表達式有最少數(shù)量的公共2的冪次項。
10.根據(jù)權(quán)利要求9的方法,其中由以下步驟找出求比例后的常數(shù)的全部表達式a)把第一變量設為塊中的第i個元素;b)把第二變量初始化為值2;c)把一個位掩碼初始化為二進制3;d)分析這些位以確定由第一變量表示的第i個元素是否為使用2n+2n-1=2n+1-2n-1進行項重排序所需要的候選表達式;e)通過把第二變量加到第一變量對第i個元素編碼,以進行由2n+2n-1=2n+1-2n-1給出的有效的2的冪次改變;f)得到新的表達式并使第一變量增量為第i+1個元素;g)將位掩碼和第二變量向左移一位;以及h)重復步驟d-g。
11.權(quán)利要求10的方法,進一步包含如下步驟在檢驗了與掩碼匹配的第一變量是否被設定之后,使位掩碼向左移位從而在右側(cè)放一個零并增大用于按2n+2n-1=2n+1-2n-1重排序的2的冪。
12.權(quán)利要求9的方法,其中預定的特性包含非零2的冪次項的最大化群集。
13.權(quán)利要求12的方法,其中當更希望利用較小整數(shù)而不希望利用較大整數(shù)進行乘法操作時,實現(xiàn)選擇比例項的步驟,從而使一個集群的所有變換常數(shù)具有聯(lián)立二進制表達式,所述表達式有非零2的冪次項的最大化群集。
14.權(quán)利要求13的方法,其中跟蹤表示常數(shù)的2的冪次多項式中的系數(shù)是否非零。
15.權(quán)利要求14的方法,其中位位置的值確定2的冪次項。
16.權(quán)利要求13的方法,其中使非零2的冪次項群集最大化包含由以下步驟找出求比例后的常數(shù)的全部表達式a)把第一變量設為塊中的第i個元素;b)把第二變量初始化為值2;c)把一個位掩碼初始化為二進制3;d)分析這些位以確定由第一變量表示的第i個元素是否為使用2n+2n-1=2n+1-2n-1進行項重排序所需要的候選表達式;e)通過把第二變量加到第一變量對第i個元素編碼,以進行由2n+2n-1=2n+1-2n-1給出的有效的2的冪次改變;f)得到新的表達式并使第一變量增量為第i+1個元素;g)將位掩碼和第二變量向左移一位;以及h)重復步驟d-g。
17.權(quán)利要求16的方法,進一步包含在檢驗了與掩碼匹配的第一變量是否被設定之后使位掩碼向左移位從而在右側(cè)放一個零并增大用于按2n+2n-1=2n+1-2n-1重排序的2的冪。
18.權(quán)利要求1的方法,其中集群代表進行部分計算的不相交的變換方程組。
19.權(quán)利要求1的方法,其中集群不代表進行部分計算的不相交的變換方程組。
20.權(quán)利要求19的方法,進一步包含在至少一個集群中的每個集群中為變換常數(shù)選擇一個獨立的比例項。
21.根據(jù)權(quán)利要求1的方法,進一步包含如下步驟在變換過程中測試由變換系數(shù)的增量計算得到的至少一個數(shù);根據(jù)該測試確定是否進行校正;以及當確定需要校正時進行校正。
22.根據(jù)權(quán)利要求21的方法,其中確定是否進行校正的步驟包含檢測變換系數(shù)的增量計算是否將產(chǎn)生其精度不可接受的變換系數(shù),進行校正包含細算所述至少一個數(shù)。
23.根據(jù)權(quán)利要求22的方法,其中變換包含一個變換矩陣,而且其中細算包含應用一個細算矩陣以提高變換常數(shù)增量計算的精度。
24.根據(jù)權(quán)利要求23的方法,其中細算矩陣包含I+dDm+1Dm-1。
25.根據(jù)權(quán)利要求21的方法,進一步包含根據(jù)近似計算出的變換常數(shù)產(chǎn)生至少一個細算矩陣的步驟。
26.根據(jù)權(quán)利要求25的方法,其中產(chǎn)生至少一個細算矩陣的步驟是離線進行的或在初始化時進行的。
27.根據(jù)權(quán)利要求25的方法,其中產(chǎn)生至少一個細算矩陣的步驟包含承認一個近似變換是可逆的,產(chǎn)生由I+dDm+1Dm-1給定的細算矩陣以及構(gòu)成用于有效計算的變換。
28.根據(jù)權(quán)利要求25的方法,其中產(chǎn)生至少一個細算矩陣的步驟包含如下步驟承認為產(chǎn)生變換而恢復一變換矩陣的的第n列是不可能的為變換矩陣的一部分計算偽逆;以及使用該變換矩陣的偽逆產(chǎn)生所述至少一個細算矩陣的近似。
29.根據(jù)權(quán)利要求28的方法,其中該細算矩陣的近似包含
30.根據(jù)權(quán)利要求21的方法,其中確定是否進行校正的步驟進一步包含確定由終止增量計算造成的誤差是否是可接受的,進行校正包含中止變換系數(shù)的增量計算。
31.根據(jù)權(quán)利要求30的方法,其中當確定增量計算所得到的數(shù)預計將處于預定范圍內(nèi)時,終止增量計算。
32.根據(jù)權(quán)利要求31的方法,其中預計處于預定范圍內(nèi)的數(shù)包含一個滿足精度要求的變換系數(shù),
33.根據(jù)權(quán)利要求31的方法,其中當確定對變換系數(shù)的細算不改變結(jié)果時,終止增量計算。
34.根據(jù)權(quán)利要求33的方法,其中在檢驗至少一個增量計算的結(jié)果的相對大小之后,當所述至少一個變換系數(shù)的中間計算結(jié)果與另一變換系數(shù)的中間計算結(jié)果相比較小時,確定該變換系數(shù)的細算將不改變結(jié)果。
35.根據(jù)權(quán)利要求33的方法,其中在檢驗至少一個增量計算的結(jié)果大小之后,當該變換系數(shù)的至少一個中間計算結(jié)果小于預定閾值時,確定該變換系數(shù)的細算將不改變結(jié)果。
36.根據(jù)權(quán)利要求21的方法,其中確定步驟進一步包含確定一變換系數(shù)將處于零的預定范圍內(nèi),進行校正包含中止變換系數(shù)的增量計算。
全文摘要
公開了一種快速變換(200),它使用多重比例項、早期中止和精度細算。離散的變換被分成子變換(210),使用對變換常數(shù)的多重比例項獨立地計算這些子變換(220)。對變換系數(shù)進行比例運算的效果可以可選地通過對量化值或任何比較值進行近似的比例運算來處理。根據(jù)測試變換系數(shù)的增量計算來檢測對進行校正的可能需求。然后進行校正。校正包括細算增量計算以得到額外的精度和/或在得到的數(shù)足夠時中止增量計算。
文檔編號G06F17/14GK1471674SQ01817798
公開日2004年1月28日 申請日期2001年10月23日 優(yōu)先權(quán)日2000年10月23日
發(fā)明者邁克爾·T·布拉迪, 瓊·L·米切爾, 詹妮弗·Q·特萊勒維茲, Q 特萊勒維茲, っ濁卸, 邁克爾 T 布拉迪 申請人:國際商業(yè)機器公司