專利名稱:實域誤差的變換域校正的制作方法
技術領域:
本發(fā)明涉及以下申請美國申請第09/186,247號,標題為“變換數(shù)字數(shù)據(jù)的誤差減少的處理”,發(fā)明人M.Bright等人;以及,美國申請第09/186,249號,標題為“變換數(shù)字數(shù)據(jù)的誤差減少”,發(fā)明人M.Bright等人;這些申請在此被作為參考文獻。
本發(fā)明涉及數(shù)字數(shù)據(jù)的變換編碼,更具體地說是涉及變換數(shù)據(jù)的實域處理。更具體地說,本發(fā)明涉及受到再變換的反向變換數(shù)據(jù)的誤差減少的數(shù)字處理。
變換編碼指的是范圍很寬的一類數(shù)據(jù)編碼,其中所要編碼的各個數(shù)據(jù)塊在得到進一步處理之前借助某些數(shù)學函數(shù)而得到變換。一個數(shù)據(jù)塊可以是所要編碼的數(shù)據(jù)對象的一部分,也可以是整個的數(shù)據(jù)對象。該數(shù)據(jù)通常代表某種現(xiàn)象,例如可以是頻譜分析、圖象、音頻修剪、視頻修剪等。變換功能的選擇,通常反映了所編碼的現(xiàn)象的某些性質;例如,在音頻、靜止圖象和運動圖象編碼中,可以采用付立葉變換或離散余弦變換(DCT),以把數(shù)據(jù)變換成頻率項或系數(shù),從而進行分析。如果所要編碼的現(xiàn)象給定,通常信息都集中在少數(shù)幾個頻率系數(shù)中。因此,變換的數(shù)據(jù)經(jīng)常能夠得到比原來的數(shù)據(jù)更為經(jīng)濟的編碼或壓縮。這意味著變換編碼可被用來壓縮一定類型的數(shù)據(jù),以減小存儲空間或在通信線路上的傳送時間。
變換編碼的一個使用例子,是用于靜止圖象壓縮的聯(lián)合專家組(JPEG)國際標準,它由ITU-T Rec T.81(1992)|ISO/IEC 10918-11994,“信息技術-連續(xù)色調靜止圖象的數(shù)字壓縮和編碼,部分1要求和指導”所定義。另一個例子是用于運動圖象壓縮的運動圖象專家組(MPEG)國際標準,由ISO/IEC 111721993,“信息技術-用于以至約1.5Mbits/s的速率進行數(shù)字存儲介質的運動圖象和相關音頻的編碼”所定義。這種MPEG-1標準同時定義了視頻壓縮(標準的部分2)和音頻壓縮(部分3)的系統(tǒng)。一種更近的MPEG視頻標準(MPEG-2)由ITU-T Rec H.262|ISO/IEC 13818-21996,“信息技術-運動圖象和相關音頻的類屬編碼-部分2視頻”所定義。一種更新的音頻標準是ISO/IEC 13818-31996“信息技術-運動圖象和相關音頻的類屬編碼-部分3音頻”所定義。所有三種圖象國際數(shù)據(jù)壓縮標準都采用了對抽樣的8×8塊進行DCT以實現(xiàn)圖象壓縮。圖象的DCT壓縮在此被用來對以下給出的一般概念進行說明;一種完整的說明可見于W.B.Pennebaker和J.L.Mitchell在JPEG靜止圖象數(shù)據(jù)壓縮標準,Van Nostrand Reinhold紐約,(1993)上的″離散余弦變換(DCT)″第四章。
子波編碼是另一種形式的變換編碼。專門的局部化的基函數(shù)使子波編碼能夠保存邊緣和小的細節(jié)。變換的數(shù)據(jù)通常被量化以進行壓縮。子波編碼被用于FBI的指紋識別。子波編碼是更一般的子頻帶編碼技術的一個子類。子頻帶編碼采用了濾波器組以把數(shù)據(jù)分解到具體的頻帶上。壓縮是通過對頻率較低的頻帶進行比頻率較高的頻帶更細的量化并同時對頻率較低的頻帶進行比頻率較高的頻帶更粗的取樣而實現(xiàn)的。子波、DCT和其他變換編碼的一個概述,可見于Roy Hoffman,數(shù)字系統(tǒng)的數(shù)據(jù)壓縮,Chapman與Hall紐約,(1997)″擴散數(shù)據(jù)的壓縮算法″第五章。
在數(shù)字數(shù)據(jù)所代表的任何現(xiàn)象和任何技術中,變換之前的數(shù)據(jù)被稱為“處于實域”。在變換進行之后,新的數(shù)據(jù)通常被稱為“變換數(shù)據(jù)”或“變換系數(shù)”,且被稱為是“處于變換域”。用于把數(shù)據(jù)從實域變換到變換域的過程被稱為“正向變換”。把數(shù)據(jù)從變換域變換到實域的與正向變換反向的數(shù)學過程被稱為相應的“反向變換”。
一般地,正向變換將產生實值數(shù)據(jù),不一定是整數(shù)。為了實現(xiàn)數(shù)據(jù)壓縮,變換系數(shù)通過量化處理而被轉換成整數(shù)。假定(λi)是從一個數(shù)據(jù)單位的正向變換產生的一組實值變換系數(shù)。注意一個單位的數(shù)據(jù)可以是一維或兩維的數(shù)據(jù)抽樣塊或者是整個數(shù)據(jù)?!傲炕怠?qi)是編碼處理的參數(shù)。“量化變換系數(shù)”或“變換編碼數(shù)據(jù)”是由量化函數(shù)Q定義的一系列的值(ai)ai=Q(λi)=|λiqi+0.5----(1)]]>其中|x|表示小于等于x的最大整數(shù)。所產生的整數(shù)隨后被進一步編碼或壓縮,并隨后被存儲或發(fā)送。為了譯碼該數(shù)據(jù),量化系數(shù)被乘以量化值,以給出新的由以下公式給定的“去量化系數(shù)”λ’i=qiai(2)去量化(也稱為逆量化)之后的量化處理因而可被描述為“舍入到qi的最近倍數(shù)”。該量化值被適當選擇,從而使量化步驟中的信息的損失處于某種指定的范圍內。例如,對于音頻或圖象數(shù)據(jù),一種量化級通常是可觀測的數(shù)據(jù)的最小改變。正是量化使得變換編碼能夠實現(xiàn)良好的數(shù)據(jù)壓縮比。好的變換選擇使得量化值的選擇能夠顯著地減小所要編碼的數(shù)據(jù)量。例如,為圖象壓縮選擇DCT,因為所產生的頻率分量產生對于人的視覺系統(tǒng)來說幾乎是獨立的響應。這意味著與視覺系統(tǒng)不敏感的分量有關的系數(shù)即高頻分量可用大的量化值進行量化而不損失圖象質量。與視覺系統(tǒng)更敏感的分量有關的系數(shù)即低頻分量,則用較小的量化值進行量化。
這種反向變換還通常產生非整數(shù)的數(shù)據(jù)。通常譯碼數(shù)據(jù)需要是整數(shù)形式的。例如,用于音頻數(shù)據(jù)重放或圖象數(shù)據(jù)顯示的系統(tǒng)通常接受整數(shù)形式的輸入。因此,變換譯碼器通常包括把來自反向變換的非整數(shù)數(shù)據(jù)借助截斷或舍入到最近的整數(shù)而轉換成整數(shù)數(shù)據(jù)的步驟。
對于從譯碼處理輸出的整數(shù)數(shù)據(jù)的范圍通常也有限制,以使該數(shù)據(jù)能夠以給定的位數(shù)得到存儲。因此,譯碼器還經(jīng)常包括一個“修剪”階段,它保證輸出數(shù)據(jù)處于一個可接受的范圍中。如果該可接受的范圍是[a,b],則小于a的所有值都被改變?yōu)閍,且所有大于b的值都被改變成b。
這些舍入和修剪處理經(jīng)常被認為是譯碼器的整數(shù)部分,且正是這些造成了譯碼數(shù)據(jù)特別是當譯碼數(shù)據(jù)被再編碼時的不準確。例如,JPEG標準(部分1)規(guī)定源圖象抽樣被定義為精確P位的整數(shù),其值可在0至2*P-1的范圍內。譯碼器應該從逆DCT(IDCT)以指定的精度重組該輸出。對于基本JPEG編碼P被定義為8;對于其他基于DCT的編碼P可以是8或12。MPEG-2視頻標準在附件A(離散余弦變換)中規(guī)定“至正向變換的輸入和從反向變換的輸出由9位表示”。
對于JPEG,符合的編碼器源圖象測試數(shù)據(jù)和譯碼器基準測試數(shù)據(jù)是8位/抽樣整數(shù)。即使舍入到整數(shù)是典型的,某些程序語言通過截斷進行從浮點轉換為整數(shù)。在軟件中實施接受這種通過截斷進行轉換為整數(shù),把較大的誤差引入了從反向變換輸出的實域整數(shù)中。
術語“高精度”在此指的是存儲至比當以整數(shù)的形式存儲值時所用的精度更精確的精度的數(shù)字。高精度值的例子是數(shù)字的浮點或固定點表示考慮到上述有關由于數(shù)字處理技術和諸如變換數(shù)據(jù)的反向變換之后的舍入和修剪而造成的不準確性的問題,本發(fā)明的一個方面提供了一種方法,用于處理實域中的變換數(shù)據(jù),對處理的數(shù)據(jù)進行正向變換,并隨后校正向變換域中的不準確。這種方法減少了再變換的數(shù)據(jù)中由于諸如舍入到整數(shù)和在反向變換之后修剪到允許的范圍的操作所產生的不希望的誤差。在一個實施例中,這種方法包括進行變換數(shù)據(jù)的反向變換,從而使所產生的實域數(shù)據(jù)具有高度精確的數(shù)字的形式;把這種高精度的數(shù)轉換成整數(shù)并修剪到形成轉換數(shù)據(jù)的所允許的范圍;從該高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對轉換的數(shù)據(jù)進行處理;對高精度差分進行正向變換;對處理之后的轉換數(shù)據(jù)進行正向變換;以及,把變換的處理之后的數(shù)據(jù)加到變換之后的高精度差分上,以產生變換域校正實域再變換數(shù)字數(shù)據(jù)。
本發(fā)明的另一個方面是提供一種方法,用于處理實域中的變換數(shù)據(jù),處理由于轉換為整數(shù)和修剪至允許范圍而產生的誤差,對這些誤差進行正向變換,對處理數(shù)據(jù)進行正向變換,并隨后在變換域中校正這些誤差。在一個實施例中,用于這種實域誤差的變換域校正的方法包括對變換數(shù)據(jù)進行反向變換,從而使產生的實域數(shù)據(jù)具有高精度數(shù)的形式;把這種高精度數(shù)轉換成整數(shù)并修剪到允許范圍以形成轉換數(shù)據(jù);從高精度數(shù)字減去轉換數(shù)據(jù)以形成高精度差分;對這種高精度差分進行操作以形成處理過的高精度差分;對轉換數(shù)據(jù)進行操作以形成處理過的轉換數(shù)據(jù);對處理之后的高精度差分進行正向變換;對處理之后的轉換數(shù)據(jù)進行正向變換;以及,把變換的經(jīng)過處理的轉換數(shù)據(jù)加到變換之后的經(jīng)過處理的高精度差分上,以產生變換域校正的實域處理的變換數(shù)字數(shù)據(jù)本發(fā)明的另一個方面,是提供一種方法,用于在實域中處理變換數(shù)據(jù),對在實域中轉換為整數(shù)和修剪至允許范圍所產生的誤差進行正向變換,在變換域中對變換的誤差進行處理,對經(jīng)過處理的轉換數(shù)據(jù)進行正向變換,隨后在變換域中校正這些誤差。在一個實施例中,該方法包括對變換數(shù)據(jù)進行反向變換,從而使所產生的實域數(shù)據(jù)具有高精度數(shù)的形式;把高精度數(shù)轉換成整數(shù)并修剪到一個允許的范圍從而形成轉換數(shù)據(jù);從高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對該高精度差分進行正向變換;對變換的差分進行操作;對轉換數(shù)據(jù)進行操作;對操作之后的轉換數(shù)據(jù)進行正向變換;以及,把經(jīng)過變換的操作之后的轉換數(shù)據(jù)加到經(jīng)過操作的變換之后的差分上,以產生新的變換域校正的實域處理過的變換數(shù)字數(shù)據(jù)。
本發(fā)明的再一個方面,是提供一種方法,用于在實域中對變換編碼數(shù)據(jù)進行處理以產生新的變換編碼數(shù)據(jù);它減少了由于轉換為整數(shù)和在反向變換之后修剪到允許范圍所產生的誤差。在一個實施例中,這種方法包括對變換編碼數(shù)據(jù)進行逆量化;對如此產生的變換數(shù)據(jù)進行反向變換,從而使所產生的實域具有高精度數(shù)的形式;把高精度數(shù)轉換成整數(shù)并修剪到一個允許范圍,從而形成轉換數(shù)據(jù);從高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對高精度差分進行正向變換;對如此產生的變換數(shù)據(jù)進行量化,從而形成變換編碼誤差數(shù)據(jù);對變換編碼的誤差數(shù)據(jù)進行逆量化,從而產生去量化的變換編碼誤差數(shù)據(jù);在實域中對轉換數(shù)據(jù)進行處理;對處理的轉換數(shù)據(jù)進行正向變換;把去量化的變換編碼誤差數(shù)據(jù)加到變換的經(jīng)過處理的轉換數(shù)據(jù)上;以及,對新的變換數(shù)據(jù)進行量化。如果在正向和反向變換和處理中的誤差充分地小,在新的量化變換域數(shù)據(jù)中不會產生不希望的誤差。
本發(fā)明的再一個方面是提供一種方法,用于在實域中對初始高精度誤差進行處理以產生新的高精度誤差,這減少了由于轉換為整數(shù)和在反向變換之后修剪到允許范圍所產生的誤差。在一個實施例中,這種方法包括對變換編碼數(shù)據(jù)進行逆量化;對如此產生的變換數(shù)據(jù)進行反向變換,從而使所產生的實域數(shù)據(jù)具有高精度數(shù)的形式;把該高精度數(shù)轉換成整數(shù)并修剪到一個允許范圍,以形成轉換數(shù)據(jù);從高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對這些高精度差分進行操作;對這些經(jīng)過操作的高精度差分進行正向變換;對如此產生的變換數(shù)據(jù)進行量化,從而形成變換編碼的經(jīng)過操作的誤差數(shù)據(jù);對變換編碼的操作的誤差數(shù)據(jù)進行逆量化,從而產生去量化的變換的經(jīng)過操作的誤差數(shù)據(jù);在實域中對該轉換數(shù)據(jù)進行處理,對處理的轉換數(shù)據(jù)進行正向變換;把去量化的變換的經(jīng)過操作的誤差數(shù)據(jù)加到變換的經(jīng)過處理的轉換數(shù)據(jù)上;以及,對新的變換數(shù)據(jù)進行量化。
本發(fā)明的再一個方面是提供一種方法,用于在實域中對編碼數(shù)據(jù)進行處理,它減少了數(shù)據(jù)中由于轉換為整數(shù)和在反向變換之后修剪至允許范圍所產生的不希望的誤差。在一個實施例中,該方法包括對編碼數(shù)據(jù)進行熵譯碼,從而形成變換編碼數(shù)據(jù);對如此產生的變換數(shù)據(jù)進行反向變換,從而使所產生的實域數(shù)據(jù)具有高精度數(shù)的形式;把高精度數(shù)轉換成整數(shù)并修剪到一個允許范圍,從而形成轉換數(shù)據(jù);從高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對這些高精度差分進行正向變換;對如此產生的變換數(shù)據(jù)進行量化,從而形成變換編碼誤差數(shù)據(jù);對該變換編碼誤差數(shù)據(jù)進行熵編碼,從而形成編碼的誤差數(shù)據(jù);對該編碼的誤差數(shù)據(jù)進行熵譯碼;對該變換編碼誤差數(shù)據(jù)進行逆量化,從而產生去量化的變換誤差數(shù)據(jù);在實域中對該轉換數(shù)據(jù)進行處理;對處理的轉換數(shù)據(jù)進行正向變換;把去量化的變換誤差數(shù)據(jù)加到變換的經(jīng)過處理的轉換數(shù)據(jù)上;對新的變換數(shù)據(jù)進行量化;以及,對新的量化數(shù)據(jù)進行熵編碼。如果正向和反向變換中和處理的誤差充分地小,在新的量化的變換域數(shù)據(jù)中不會產生不希望的誤差。
本發(fā)明的再一個方面,是提供一種方法,用于在實域中對編碼數(shù)據(jù)進行處理以產生新的編碼數(shù)據(jù),它減少了由于轉換為整數(shù)和在反向變換之后修剪到一個允許范圍所產生的誤差。在一個實施例中,這種方法包括對編碼數(shù)據(jù)進行熵譯碼,以形成變換編碼數(shù)據(jù),對該變換編碼數(shù)據(jù)進行逆量化;對如此產生的變換數(shù)據(jù)進行反向變換,從而使所產生的實域數(shù)據(jù)具有高精度數(shù)的形式,把該高精度數(shù)轉換成整數(shù)并修剪到一個允許范圍上,以形成轉換數(shù)據(jù);從該高精度數(shù)減去該轉換數(shù)據(jù),從而形成高精度差分;對這些高精度差分進行正向變換;對如此產生的變換數(shù)據(jù)進行量化,從而形成整數(shù)變換誤差數(shù)據(jù)對該整數(shù)變換誤差數(shù)據(jù)進行熵編碼,從而形成編碼誤差數(shù)據(jù);對該編碼誤差數(shù)據(jù)進行熵譯碼;對該整數(shù)變換誤差數(shù)據(jù)進行逆量化,從而產生去量化的變換誤差數(shù)據(jù);對該去量化的變換誤差數(shù)據(jù)進行操作;在實域中對轉換數(shù)據(jù)進行處理;對處理之后的轉換數(shù)據(jù)進行正向變換;把操作的去量化的變換誤差數(shù)據(jù)加到變換的處理的轉換數(shù)據(jù)上;以及,對新的變換數(shù)據(jù)進行量化。如果正向和反向變換和處理中的誤差足夠地小,在新的量化變換域數(shù)據(jù)中將不產生不希望的誤差。
對于在此描述的方法,其輸入數(shù)據(jù)不要求是來自單個的數(shù)據(jù)源。因此,本發(fā)明不限于來自單個源的數(shù)據(jù)的實域處理,而是可應用于來自多個源的數(shù)據(jù)的實域處理,諸如圖象或音頻數(shù)據(jù)的合并。
在背景部分中描述的量化是在諸如JPEG和MPEG的國際圖象數(shù)據(jù)壓縮標準中采用的線性量化。該量化未被要求是線性的。以確定的方式減小變換數(shù)據(jù)電平數(shù)目的所有變換都可被用于本發(fā)明。該量化步驟已經(jīng)借助公式(1)而以數(shù)學的方式進行了描述。實際的實施例可采用查詢表或比較序列來實現(xiàn)類似的結果。
本發(fā)明的進一步的一個方面是提供一種設備、一種計算機產品和制造品—它包括了體現(xiàn)在其中的具有計算機可讀取程序碼裝置的可用介質,用于使計算機執(zhí)行本發(fā)明的方法。
從以下結合附圖對本發(fā)明所進行的詳細描述,本發(fā)明的這些和其他的目的、特征、優(yōu)點將變得顯而易見。在附圖中
圖1(a)是顯示用于執(zhí)行反向變換的一種方法的框圖;圖1(b)是顯示用于執(zhí)行一種反向變換的一種系統(tǒng)的框圖;圖2(a)是顯示用于譯碼變換編碼數(shù)據(jù)的一種方法的框圖;圖2(b)是顯示用于譯碼變換編碼數(shù)據(jù)的一種系統(tǒng)的框圖;圖3是顯示用于變換數(shù)據(jù)的實域處理的一種方法的框圖;圖4是框圖,顯示了用于進行隨后進行有正向變換的反向變換的一種方法并顯示了多重產生的問題;圖5是顯示變換編碼數(shù)據(jù)的譯碼和再編碼的一種方法的框圖,并顯示了多重產生的問題;圖6是框圖,顯示了用于進行反向變換、實域數(shù)據(jù)操作和一種正向變換的一種方法,并顯示了多重產生的問題;圖7(a)是框圖,顯示了用于進行JPEG DCT編碼圖象數(shù)據(jù)的實域處理的一種方法,它呈現(xiàn)了多重產生的問題;圖7(b)是框圖,顯示了用于進行JPEG DCT編碼圖象數(shù)據(jù)的實域處理的系統(tǒng),它呈現(xiàn)了多重產生的問題;圖8(a)給出了JPEG例子的光度量化矩陣;圖8(b)給出了JPEG例子的色度量化矩陣;圖8(c)是實域舍入如何能夠產生8×8塊DCT編碼數(shù)據(jù)中的顯著誤差的數(shù)值例子;
圖8(d)是實域截斷如何能夠產生8×8塊DCT編碼數(shù)據(jù)中的顯著誤差的數(shù)值例子;圖8(e)是一系列的曲線圖,顯示了實域修剪如何能造成一維離散余弦變換編碼數(shù)據(jù)中的誤差;圖8(f)和圖8(g)是實域修剪如何能夠造成8×8塊DCT編碼數(shù)據(jù)中的顯著誤差的一個數(shù)值例子;圖9是框圖,顯示了用于執(zhí)行圖5描述的處理的多次重復的一種方法,且它呈現(xiàn)了多重產生的問題;圖10是框圖,顯示了進行實域操作的多次重復的一種方法,且它呈現(xiàn)了多重產生的問題;圖11(a)是框圖,顯示了根據(jù)本發(fā)明的在變換數(shù)據(jù)處理中用于實域誤差的變換域校正的一種方法的一個例子;圖11(b)是框圖,顯示了根據(jù)本發(fā)明的在變換數(shù)據(jù)處理中用于實域誤差的變換域校正的一種系統(tǒng)的一個例子;圖12(a)是框圖,顯示了用于根據(jù)本發(fā)明的在變換編碼數(shù)據(jù)的處理中進行實域誤差的變換域校正的一種方法的一個例子;圖12(b)是框圖,顯示了用于根據(jù)本發(fā)明的在變換編碼數(shù)據(jù)的處理中進行實域誤差的變換域校正的一種系統(tǒng)的一個例子;圖13(a)是框圖,顯示了根據(jù)本發(fā)明的用于在編碼數(shù)據(jù)的實域處理中進行實域誤差的變換域校正從而使得不希望的誤差在新的變換編碼數(shù)據(jù)中得到減少或消除的一種方法的一個示例性實施例;圖13(b)是框圖,顯示了根據(jù)本發(fā)明的用于在編碼數(shù)據(jù)的實域處理中進行實域誤差的變換域校正從而使得不希望的誤差在新的變換編碼數(shù)據(jù)中得到減少或消除的一種系統(tǒng)的一個示例性實施例。
本發(fā)明提供了減少或消除數(shù)字數(shù)據(jù)的處理而引起的誤差的方法、系統(tǒng)和計算機產品。首先,誤差源得到分析和描述。隨后說明本發(fā)明的用于誤差減少和消除的概念。特別應該注意的是,以前采用的數(shù)字技術的數(shù)據(jù)操作和/或處理,使得數(shù)字處理的各種實施持續(xù)引入誤差。這些多年來采用的技術,使得隨著進行更多的處理而不能保持原來數(shù)據(jù)的精度和代表現(xiàn)象的數(shù)據(jù)的持續(xù)惡化。這在處理包含了以前的處理所產生的誤差的數(shù)據(jù)的情況下是特別有害的。這導致了數(shù)據(jù)的繼續(xù)損壞,從而使數(shù)據(jù)隨著對其的處理的增加而變得越來越無用。
本發(fā)明人所理解的這種問題的嚴重性,已經(jīng)在上面進行了描述。應該注意的是,在這里所給出的附圖中,可選的步驟經(jīng)常以虛線和/或框來表示。
應該注意的是,本發(fā)明的概念在幾乎所有的數(shù)字處理技術中都是有用的。然而,隨后的描述多涉及的是圖象數(shù)據(jù)。這是由于全世界采用的圖象數(shù)據(jù)壓縮標準的一般可獲得性和持續(xù)使用。這些標準要求把將要描述的誤差引入數(shù)字數(shù)據(jù)和連續(xù)地采用和處理包含誤差的數(shù)據(jù)。這些標準的教導基本上說是與本發(fā)明相背離的。因此圖象技術是描述本發(fā)明的一個非常好的例子。
圖1(a)顯示了一種反向變換方法100。變換域數(shù)據(jù)A 110受到反向變換120的作用,從而產生了高精度的實值數(shù)據(jù)130。該高精度數(shù)據(jù)130被轉換成整數(shù)并被修剪140,以產生整數(shù)實域數(shù)據(jù)150。在某些情況下,該整數(shù)值數(shù)據(jù)被可選地送到一個輸出裝置160。
圖1(b)是一種反向變換系統(tǒng)105。變換域數(shù)據(jù)A 115受到反向變換器125的作用,而反向變換器125產生高精度實值數(shù)據(jù)135。高精度數(shù)據(jù)135被輸入整數(shù)轉換器和修剪器145,以產生整數(shù)實域數(shù)據(jù)155。在某些情況下,整數(shù)值數(shù)據(jù)可選地被輸入諸如顯示監(jiān)測器、電視機、或音頻播放機的輸出裝置165。
圖2(a)顯示了譯碼變換編碼(即量化)數(shù)據(jù)的方法200。整數(shù)變換編碼數(shù)據(jù)B 210用如上述公式(2)的量化值進行了逆量化220。這種去量化步驟的結果可隨后作為輸入而通過反向變換器120,且譯碼如圖1(a)所示地進行。
圖2(b)顯示了用于譯碼變換編碼(即量化)數(shù)據(jù)的系統(tǒng)205。整數(shù)變換編碼數(shù)據(jù)B 215以如上述公式(2)的量化值被輸入逆量化器225。去量化步驟的結果作為輸入通過反向變換器125,且譯碼如圖1(b)所示地進行。
本發(fā)明的一個方面,涉及變換數(shù)據(jù)和變換編碼數(shù)據(jù)的操作。術語“操作”和“處理”的使用在這里是可互換的。操作可以是為了實現(xiàn)很多不同的結果。例如,圖象數(shù)據(jù)經(jīng)常要在打印之前通過縮放和/或轉動而進行處理。來自兩個源的數(shù)據(jù)可被合并,如在圖象的彩色圖象組合或音頻數(shù)據(jù)的混頻中所進行的。數(shù)據(jù)的相互操作通常是編輯或顏色校正所需要的。這種變換數(shù)據(jù)操作通常是對從圖1(a)和/或圖2(a)的變換譯碼產生的整數(shù)實域數(shù)據(jù)進行的。
圖3顯示了對變換數(shù)據(jù)300的一種處理。整數(shù)數(shù)據(jù)150經(jīng)歷了某種形式的操作310。如果這種操作310不產生整數(shù)輸出,操作輸出340再次被轉換成整數(shù)并被修剪320。所產生的整數(shù)數(shù)據(jù)330可被存儲、發(fā)送、和/或可選地送到輸出裝置160。由于至整數(shù)140的修剪轉換的存儲是在接受整數(shù)輸入150的操作之前進行的,所產生的誤差使來自操作340的數(shù)據(jù)輸出包含至少小的不準確。
應該注意的是,在上述的數(shù)據(jù)操作處理中沒有要求輸入數(shù)據(jù)完全來自一個源。例如,很多類型的數(shù)據(jù)操作涉及到來自兩或更多源的數(shù)據(jù)的合并。這包括了諸如音頻數(shù)據(jù)的混頻或圖象的合并。圖中顯示且一般地描述的處理同樣適用于這些類型的操作。因此用于所述的任何處理的“輸入數(shù)據(jù)”實際上可以來自一個以上的輸入源。
操作之后的數(shù)據(jù)通常需要被再編碼到變換域。所希望的是,當對實域數(shù)據(jù)不進行操作時,譯碼和再編碼處理應該是無損失的。即,當正向變換操作采用了與反向變換變換操作相同的變換類型時,數(shù)據(jù)應該產生與初始提供的完全相同的變換域數(shù)據(jù)。然而,轉換為整數(shù)和修剪至允許范圍引入了誤差,如圖4中所示。圖4顯示了用作至正向變換裝置410的輸入的整數(shù)數(shù)據(jù)150,它接受整數(shù)值數(shù)據(jù)作為輸入。所產生的變換數(shù)據(jù)A1 420不同于輸入到反向變換的原來的變換數(shù)據(jù)A 110。這是由于轉換為整數(shù)和修剪處理140已經(jīng)引入了誤差到處理中。在該過程中在每次重復之后數(shù)據(jù)的改變所引起的問題,或“產生”的問題,在此被稱為“多重產生問題”。
這種多重產生問題也在圖5中就變換編碼數(shù)據(jù)進行了說明。在此新的變換域數(shù)據(jù)420被量化510,以產生新的變換編碼數(shù)據(jù)B1520。重要的是認識到量化數(shù)據(jù)只在產生的誤差大于量化階段的一半的情況下才能產生Q(λi+ε)=Q(λi)若|ε|<0.5qi其中ε是在這種變換系數(shù)中產生的誤差。這是由于λi每一個都已經(jīng)是量化值的倍數(shù),因為它們已經(jīng)是通過如公式(2)的去量化而產生的。因此,有利的是控制這些誤差,從而使它們足夠地小。當誤差足夠小時,新的變換編碼數(shù)據(jù)將與原來的變換編碼數(shù)據(jù)完全相同。通過舍入而轉換到整數(shù)的最大可能的誤差,是通過轉換期間的截斷而引入的誤差的一半。
圖6顯示了其中圖象操作是在數(shù)據(jù)上進行且所產生的修正數(shù)據(jù)隨后再被變換回變換域的情況。整數(shù)數(shù)據(jù)150如圖3所示地得到操作,以產生新的整數(shù)值數(shù)據(jù)610。這些新的整數(shù)值數(shù)據(jù)610被用作至正向變換410的輸入,以產生新的變換數(shù)據(jù)A2 620。上述的沒有任何操作過程的處理在變換數(shù)據(jù)110中改變這一事實,顯示出當操作被進行時在變換數(shù)據(jù)110中有除了從所希望的操作產生的改變之外的不希望的改變。
體現(xiàn)圖6所示的處理的一種方法的一個例子,被顯示在圖7(a)中。所示的方法700對諸如JPEG編碼圖象數(shù)據(jù)的編碼數(shù)據(jù)進行了實域操作。編碼數(shù)據(jù)C 710受到熵譯碼720,它在JPEG標準中被定義為JPEG編碼數(shù)據(jù)。熵譯碼步驟720把該數(shù)據(jù)解壓縮成了量化的DCT系數(shù)。這些量化系數(shù)得到逆量化730并通過反向變換—它在該系統(tǒng)中是兩維8×8逆DCT 740。所產生的實值圖象數(shù)據(jù)被舍入成整數(shù)并被修剪750到允許范圍(例如
),以在該允許范圍中產生整數(shù)值的圖象數(shù)據(jù)754。
如果需要在操作之前顯示數(shù)據(jù),例如當圖象操作是一種交互過程,圖象能夠可選地被送到一個顯示裝置758。該圖象隨后得到操作762,以產生某些所希望的改變。如果操作的結果是非整數(shù)數(shù)據(jù),則該圖象數(shù)據(jù)可被轉換成整數(shù)并被修剪到例如
的范圍768。以此方式,圖象數(shù)據(jù)772可再次被顯示758。新的實域圖象數(shù)據(jù)772可被傳送到正向DCT 776且產生的DCT系數(shù)得到量化780,以產生新的量化DCT系數(shù)784。這些系數(shù)784隨后被熵編碼788,以產生新的編碼數(shù)據(jù)C1 792-它們不同于原來的編碼數(shù)據(jù)C 710?,F(xiàn)在新的編碼數(shù)據(jù)C1 792不僅包含所希望的圖象操作762對圖象的改變,而且還包括從轉換和修剪階段750和768所產生的誤差。消除或減小這些誤差將是有利的。
體現(xiàn)圖6所示的處理的一種系統(tǒng)的一個例子,被顯示在圖7(b)中。系統(tǒng)705對編碼數(shù)據(jù)進行實域操作。編碼數(shù)據(jù)C 715被輸入熵譯碼器725,后者是在JPEG標準中為JPEG編碼數(shù)據(jù)定義的。熵譯碼器725把數(shù)據(jù)解壓縮成量化DCT系數(shù)。這些量化系數(shù)被輸入逆量化器735且其輸出被傳送到反向變換器,在此系統(tǒng)中是兩維8×8逆DCT器745。所產生的實值圖象數(shù)據(jù)被舍入成整數(shù)并被修剪755(例如至范圍
),以產生允許范圍內的整數(shù)值圖象數(shù)據(jù)759。
如果需要在操作之前顯示該數(shù)據(jù),例如當圖象操作是一種交互過程時,該圖象能夠可選地被送到一個顯示器763。圖象受到操作器767的作用,以產生某些所希望的改變。如果操作的結果是非整數(shù)數(shù)據(jù)則該圖象數(shù)據(jù)可被傳送到另一整數(shù)轉換器和修剪器773。以此方式圖象數(shù)據(jù)777可再次得到顯示763。新的實域圖象數(shù)據(jù)777被傳送到正向DCT器781,且產生的DCT系數(shù)被輸入量化器785,以產生新的量化DCT系數(shù)789。這些系數(shù)789隨后被輸入熵編碼器793,以產生新的編碼數(shù)據(jù)C 797,它們不同于原來的編碼數(shù)據(jù)C715。現(xiàn)在新的編碼數(shù)據(jù)C1 797不僅包含了所希望的由圖象操作器767進行的圖象改變,而且還包含了從整數(shù)轉換器和修剪器755和773產生的誤差。
圖8(a)顯示了JPEG例子的8×8DCT亮度塊的亮度量化矩陣804。圖8(b)給出了8×8DCT色度塊的JPEG例子的色度量化矩陣814。圖8(a)中的最小的量化值是10。圖8(b)中的最小的量化值是17。
由于對64個抽樣來說舍入的最大可能的誤差是0.5,來自通過舍入轉換為整數(shù)的未量化的正向變換系數(shù)是4(圖8(c)中所示)。對于圖8(a)和8(b)中顯示的量化矩陣,這種大小的誤差小于所有值的一半且將在量化期間消失。然而,對于諸如高質量打印或數(shù)字工作室編輯的高質量應用,量化矩陣值要小得多。在某些情況下,DC(左上角)項小到1,以保存最大的質量。此時這些舍入誤差就是顯著的。
來自截斷的最大可能誤差對于各個抽樣來說剛好在1以下。這幾乎是未量化的正向變換系數(shù)中的誤差的兩倍。對于圖8(a)中的量化矩陣,八個量化值對于這種誤差來說小得足夠潛在地改變變換編碼數(shù)據(jù)。
圖8(c)中給出了顯示這種多重產生問題的一個數(shù)值例子。在此例中,所用的變換是如在JPEG靜止圖象壓縮標準中使用的8×8DCT。其中只有一個(常數(shù)或DC項)不為零的一組變換域系數(shù)822,受到反向變換作用,以產生實域數(shù)據(jù)824。在此情況下,數(shù)據(jù)由都等于128.5的64個值組成。注意8位數(shù)據(jù)的128JPEG電平的移動已經(jīng)被施加。實域數(shù)據(jù)被舍入到最近的整數(shù)826,這在此情況下意味著各個值被舍入到129。正向變換隨后被施加,以產生新的變換域系數(shù)828??梢娝a生的新的變換系數(shù)828與初始的變換系數(shù)822有顯著的不同。這是一種非常不希望的結果。
如果DC量化值被置于1、2或4,則這種例子也適用于變換編碼數(shù)據(jù)。此時變換系數(shù)822將分別從變換編碼值4、2、或1產生。新的變換系數(shù)828的量化將所產生的DC量化值分別改變至2、4、或8。
圖8(d)中給出了顯示這種多重產生問題的另一個數(shù)值例子。同樣所用的變換是8×8DCT,如在JPEG靜止圖象壓縮標準中采用的。其中只有一個(常數(shù)或DC項)不為零的一組變換域系數(shù)832,受到反向變換作用,以產生實域數(shù)據(jù)834。在此情況下,數(shù)據(jù)由都等于128.875的64個值組成。注意8位數(shù)據(jù)的128的JPEG電平的移動已經(jīng)被施加。實域數(shù)據(jù)被截斷到最近的整數(shù)836,這在此情況下意味著各個值被減小到128。正向變換隨后被施加,以產生新的變換域系數(shù)838。可見所產生的新的變換系數(shù)838與初始的變換系數(shù)832有顯著的不同。這是一種非常不希望的結果。
在顯示了在轉換為整數(shù)時進行實域舍入或截斷所導致誤差之后,我們現(xiàn)在顯示實域修剪如何產生誤差。圖8(e)顯示了實域修剪850的一個例子。這種例子采用了一維DCT以說明問題。圖8(d)顯示了一個直方圖854,它顯示了構成八個抽樣的一個數(shù)據(jù)塊。顯示的該數(shù)據(jù)只有兩個頻率分量一個是恒定的或DC分量,它由虛線表示;另一個是交變的或AC分量,它給出了相對虛線對稱的交變波形。這些分量的幅度即各個DCT系數(shù)是高精度的值。當進行量化時,這些DCT系數(shù)被舍入到最近的量化電平。直方圖858中顯示了變換域量化之后的數(shù)據(jù)。在所示的例子中,DC系數(shù)具有小的量化值因而量化不會顯著地改變DC電平。所示的AC系數(shù)具有大的量化值,因而受到量化的顯著改變。這種例子顯示了,AC分量的幅度由于量化幾乎增加了一倍。這些量化值反映了例如當壓縮色度圖象數(shù)據(jù)時采用的值。因此量化之后代表的數(shù)據(jù)具有帶有負值的部分。這顯示了在反向變換之后給出實域負值的變換域數(shù)據(jù)能夠由不包含負值的原來實域數(shù)據(jù)產生。
直方圖862顯示了在實域修剪之后從圖表858中的數(shù)據(jù)產生的數(shù)據(jù)。實數(shù)據(jù)的這些負的部分已經(jīng)被改變?yōu)?。這產生了數(shù)據(jù)增大的DC系數(shù)因而導致了誤差的引入。由于DC系數(shù)的量化值通常都小,這種誤差大得足以造成量化如公式(3)給出的數(shù)據(jù)的改變。
為了進一步說明實域修剪引入的誤差的可能性,在圖8(f)和8(g)中給出了一個數(shù)值例子870。該例子采用了圖5中說明的系統(tǒng)。該例子采用了兩維8×8DCT,就象用于圖象的變換編碼以說明上述問題時一樣。初始的量化DCT系數(shù)在矩陣874中顯示。除了兩個系數(shù)之外的所有系數(shù)都是0;這兩個非零系數(shù)是DC系數(shù)和一個高頻系數(shù)。這些系數(shù),在利用圖8(a)所示的量化矩陣進行量化之后,被顯示在矩陣878中,當對這些變換數(shù)據(jù)進行反向DCT且被加上128的電平移動時,實數(shù)據(jù)得到產生,如矩陣882所示。矩陣882中所示的該數(shù)據(jù)已經(jīng)被舍入到了整數(shù),但還未被修剪到一個允許范圍??梢娺@些實數(shù)據(jù)包括幾個負值。在修剪之后,實數(shù)據(jù)882產生了修剪的實數(shù)據(jù),如矩陣886中所示。這些數(shù)據(jù)與882相同,只是各個負值已經(jīng)被0所代替。隨后對該實域數(shù)據(jù)進行正向DCT,以給出新的舍入變換數(shù)據(jù)890??梢娦碌淖儞Q數(shù)據(jù)與前面的變換數(shù)據(jù)878有顯著不同。當量化是利用圖8(a)所示的量化矩陣進行時,新的變換編碼數(shù)據(jù)894得到產生。變換數(shù)據(jù)中產生的改變大得足以在量化之后的變換編碼數(shù)據(jù)中產生改變。這是一種非常不希望的結果。
在很多情況下,數(shù)據(jù)的譯碼、操作和再編碼處理都需要進行多次。在這些情況下,這種處理的每一次重復都被稱為“產生”。上述的由于轉換為整數(shù)和修剪到實域中的一個允許范圍而產生的誤差,隨著多次的重復的進行而累積,并可導致數(shù)據(jù)的顯著惡化。應該理解的是,以上描述的只是舍入(或截斷)和/或修剪所引入的誤差的代表性的例子。其他的例子所可能產生的誤差或多或少。
在如圖9所示的譯碼和再編碼的多次產生之后,這種問題通常更為嚴重。初始的變換編碼數(shù)據(jù)D0 910被去量化和反向變換920,轉換成整數(shù)并被修剪到允許范圍930,以產生整數(shù)值的實域數(shù)據(jù)940。這種實域數(shù)據(jù)940經(jīng)過正向變換和量化950,以給出新的變換編碼數(shù)據(jù)D1 960。這種整個過程被重復幾次,且在重復次數(shù)為某一數(shù)目n之后,最后的變換編碼數(shù)據(jù)Dn 970得到產生。由于各個步驟中的誤差,最后的數(shù)據(jù)Dn 970可能與原來數(shù)據(jù)非常不同了。
圖10中顯示了一種情況,它顯示出由于變換編碼數(shù)據(jù)的實域操作的多次產生而使這種問題顯著地惡化了。除了圖9所示的步驟之外,對實域數(shù)據(jù)進行了某些形式的操作310,隨后是轉換為整數(shù)和修剪320。在正向變換和量化之后,所產生的量化變換系數(shù)101包含了某些誤差,象圖5中那樣。在n次產生之后,最后的變換量化系數(shù)1020可能具有相當大的不希望的誤差。
圖11(a)中顯示了在變換數(shù)據(jù)1100的處理中的實域誤差的一種變換域校正方法的一個示例性的實施例。變換數(shù)據(jù)A 110通過一種反向變換,以產生高精度實域數(shù)據(jù)130,如圖1(a)所示。高精度數(shù)據(jù)130被轉換成整數(shù)并修剪140,以產生整數(shù)實域數(shù)據(jù)(即轉換數(shù)據(jù))150。在某些情況下,整數(shù)值數(shù)據(jù)可選地被送到輸出裝置160。整數(shù)數(shù)據(jù)150經(jīng)歷了某些形式的操作310。如果這種操作310不產生整數(shù)輸出,操作的輸出340重新被轉換成整數(shù)并修剪320。所產生的整數(shù)數(shù)據(jù)330可被存儲、發(fā)送、和/或可選地送到一個輸出裝置160。處理的轉換數(shù)據(jù)330被輸入到一個正向變換步驟410-它把整數(shù)數(shù)據(jù)作為輸入并產生作為輸出的變換的處理轉換數(shù)據(jù)620。
由于修剪和轉換成整數(shù)140的階段140是在接受整數(shù)輸入150的操作之前進行的,所產生的誤差使來自轉換為整數(shù)之后的操作的數(shù)據(jù)操作至少包含小的不準確。這種不準確能夠在變換域中通過從高精度值130中減去110轉換數(shù)據(jù)150而得到校正,從而形成高精度誤差1120。這些誤差1120通過一個操作器1130-它接受作為輸入的高精度誤差數(shù)據(jù)。所產生的變換誤差數(shù)據(jù)1160可在操作的變換誤差1174被加到1180變換的處理的轉換數(shù)據(jù)620上之前被再次操作1170,以產生變換數(shù)據(jù)A3。
沒有要求操作步驟310、1130和1170中的任何或所有步驟都要出現(xiàn)。如果有未出現(xiàn)的,變換數(shù)據(jù)A3 1190與輸入到反向變換120的原來的變換數(shù)據(jù)A 110相同。這樣是假定正向變換步驟410和1150是反向變換步驟120的反向變換,且由于來自舍入和修剪的誤差未出現(xiàn)在變換數(shù)據(jù)A3 1190中。當采用不同的正向變換時,正向變換410和1150產生了不同變換數(shù)據(jù)A3 1190。這使得能夠在不同變換之間進行轉換,并在變換域中對來自舍入和修剪的誤差進行校正。
如果操作步驟310產生了兩個數(shù)據(jù)組的合并,則對于其中正向變換在塊上操作且合并發(fā)生在塊邊界上的實施例,操作步驟1130或操作步驟1170都用于產生兩組誤差的合并。對于在作為一個塊的整個數(shù)據(jù)上的正向變換,在誤差上的實域操作1130產生了正向變換1150的單個的數(shù)據(jù)組。
在本發(fā)明的某些實施例中,相加步驟1180作為一種智能相加而得到實施。在該智能相加的一種實施例中,對于變換的處理轉換數(shù)據(jù)為不影響將來使用的可容忍的誤差定義了一個閾值。在此實施例中,只有幅度比定義的閾值大的誤差被加到變換的處理轉換數(shù)據(jù)上。替換的智能相加實施規(guī)則有時也得到使用。所有專門的相加實施在此都被稱為智能相加。因此對于這些實施例,不論相加步驟在此是何時表示的,它都是作為采用智能相加的智能相加而得到實施。
上述的實施例具有這樣的優(yōu)點,即隨后跟有正向變換的傳統(tǒng)的操作(即處理)不受干擾。高精度誤差是在該操作步驟之前產生的,且隨后在傳統(tǒng)處理和正向變換之后被加回到變換的處理數(shù)據(jù)上。
對某些操作,對高精度差分的操作最好是在實域中進行。對于其他操作,變換域是較好的對這些差分進行操作的地方。例如,在其中操作步驟310對轉換數(shù)據(jù)進行90度轉動的操作步驟310,則高精度差分也被轉動90度。如果操作步驟310合并了兩個數(shù)據(jù)組,諸如在彩色圖象組合方法中,則高精度差分也得到合并以對應操作的轉換數(shù)據(jù)。對于某些操作,諸如轉換數(shù)據(jù)的彩色校正,相應的差分數(shù)據(jù)可被清除或歸零,因為這些差分不再對應于改變的轉換數(shù)據(jù)。
圖11(b)中顯示了根據(jù)本發(fā)明的變換數(shù)據(jù)1105的處理中的實域誤差的一種變換域校正系統(tǒng)的一個示例性實施例。變換數(shù)據(jù)A115通過一種反向變換器125以產生高精度實域數(shù)據(jù)135,如圖1(b)所示。整數(shù)轉換器和修剪器145作用在高精度數(shù)據(jù)135上,以產生整數(shù)的實域數(shù)據(jù)155。在某些情況下,整數(shù)值數(shù)據(jù)可選地被送到一個輸出裝置165。操作器1179作用在實域轉換數(shù)據(jù)155上,從而接受作為輸入的整數(shù)數(shù)據(jù)并產生整數(shù)數(shù)據(jù)或高精度數(shù)據(jù)1183作為輸出。這種操作器1179對數(shù)據(jù)進行與結合圖3描述的對整數(shù)的操作相同的處理。處理的轉換數(shù)據(jù)1191被輸入一個正向變換器1195-它接受整數(shù)數(shù)據(jù)作為輸入并產生作為輸出的變換的處理轉換數(shù)據(jù)1199。由于修剪并轉換成整數(shù)145的階段是在接受整數(shù)輸入155的操作之前進行的,所產生的誤差通常使轉換為整數(shù)1191之后的操作包含至少小的不準確。這種不準確能夠在變換域中通過從高精度的值135中減去1115轉換數(shù)據(jù)155而得到校正,從而形成高精度誤差1125。這些誤差1125通過一種操作器1135-它接受高精度誤差數(shù)據(jù)作為輸入,以產生新的操作的高精度誤差1145。這種高精度誤差1145被用作至正向變換器1155的輸入。所產生的變換誤差數(shù)據(jù)1159可在操作的變換誤差1167被輸入到一個加法器1171之前與變換的處理轉換數(shù)據(jù)1199一起通過另一操作器1163。該加法器的輸出是變換域校正的變換數(shù)據(jù)A3 1175。
未要求操作器1179、1135和1163中的任何或全部都要出現(xiàn)。如果有未出現(xiàn)的,變換數(shù)據(jù)A3 1175與作為至反向變換125的輸入的原來的變換數(shù)據(jù)A115相同。這是假定正向變換器1195和1155執(zhí)行反向變換器125的反向變換操作,且由于來自舍入和修剪的誤差不出現(xiàn)在變換數(shù)據(jù)A3 1175中。正向變換器1195和1155,當不同的正向變換得到采用時,產生了不同的變換數(shù)據(jù)A3 1175。這使得能夠進行變換之間的轉換,并在變換域中對來自舍入和修剪的誤差進行校正。
在本發(fā)明的某些實施例中,加法器1171是以智能加法器的形式實施的。在智能加法器的一個實施例中,對于變換的處理轉換數(shù)據(jù)為不影響將來使用的可容忍的誤差定義了一個閾值。在此加法器實施例中,只有幅度比定義的閾值大的誤差被加到變換的處理轉換數(shù)據(jù)上。替換的智能加法器的實施規(guī)則有時也得到使用。所有專門的加法器實施在此都被稱為智能加法器。因此對于這些實施例,不論加法器步驟在此是何時使用的,它都是作為智能加法器而得到實施。
圖12(a)顯示了在變換編碼數(shù)據(jù)1200的處理中的實域誤差的變換域校正的一種方法。這種方法是通過延伸圖11(a)中描述的方法1100而形成的。在此實施例中,變換編碼數(shù)據(jù)B 210是形成變換數(shù)據(jù)110的逆量化220。如在圖11(a)中,轉換數(shù)據(jù)150能夠利用傳統(tǒng)的整數(shù)處理而得到操作310。在處理之前,轉換數(shù)據(jù)150被從來自反向變換120的高精度輸出130中減去,以形成高精度差分1120。高精度差分1120通過操作步驟1130-它接受高精度差分數(shù)據(jù)作為輸入,以產生新的操作高精度差分1140。該操作高精度差分1140被輸入到正向變換步驟1150-它接受作為輸入的高精度數(shù)。變換的高精度差分1160得到量化1210,以產生變換編碼誤差數(shù)據(jù)1220。變換編碼誤差數(shù)據(jù)1220類似地具有很多零,因為高精度差分數(shù)據(jù)是小的值(對舍入為0.5或更小且對截斷來說小于1.0),除了修剪已經(jīng)在轉換數(shù)據(jù)中出現(xiàn)的情況。變換編碼誤差數(shù)據(jù)被逆量化1230,以形成去量化變換誤差數(shù)據(jù)1240。去量化的變換誤差數(shù)據(jù)1240可受到操作1170,以形成操作的去量化變換誤差數(shù)據(jù)1250。從正向變換410輸出的取整數(shù)輸入的處理轉換變換數(shù)據(jù)620被加到1180操作的去量化變換誤差數(shù)據(jù)1250上。這種變換域校正的處理轉換變換數(shù)據(jù)1260得到量化1270,以形成變換編碼數(shù)據(jù)B2 1280。
根據(jù)所希望的系統(tǒng)實施,正向變換操作1150和410可采用與反向變換操作120不同的變換。例如,反向變換120可采用逆DCT變換,而正向變換1150和410可采用付立葉變換。如果正向變換操作1150是反向變換操作120的反向變換;正向變換操作410是反向變換操作120的反向變換;逆量化步驟220與量化步驟1270中使用的量化值相同;且,操作310、1130和1170未作什么,則所產生的變換編碼數(shù)據(jù)B2 1280與輸入逆量化步驟220的原來的變換編碼數(shù)據(jù)B210相同。應該注意的是,正向變換410,當采用不同的正向變換時,將產生不同的變換編碼數(shù)據(jù)B2 1280。類似地,在逆量化220和量化1270中采用不同的量化值也產生不同的變換編碼數(shù)據(jù)1280。這種方法因而允許變換與量化矩陣之間的轉換,而沒有來自舍入和修剪的誤差出現(xiàn)在至量化1270的輸入1260中。
應該注意的是,量化矩陣之間的轉換可以是用于粗或細量化的。例如,當從JPEG國際標準向MPEG國際標準轉換數(shù)據(jù)時,量化可能是粗的。在編輯過程中需要更高質量的JPEG獨立圖象。較粗的、更大壓縮的MPEG圖象被用于實現(xiàn)所希望的帶寬目的。另一方面,在顯著的手動編輯之后對JPEG圖象的再壓縮中,量化可能較細,以保存這些改變。
步驟1210和1230中的術語“量化”之后的星號,是提醒對這些步驟的量化是最后量化步驟1270的量化的一半是有利的。在此情況下,去量化變換誤差數(shù)據(jù)具有足夠的精度來校正轉換數(shù)據(jù)中的實域誤差。
在一個替換實施例中,轉換數(shù)據(jù)150的操作310和整數(shù)操作轉換數(shù)據(jù)330的正向變換410是與減法110平行進行的,以產生高精度差分和高精度差分的正向變換1150。在此實施例中,量化1210和逆量化1230步驟被消除了。變換誤差數(shù)據(jù)1160被直接輸入操作步驟1170。象在圖11(a)中一樣。
形成變換編碼誤差數(shù)據(jù)的變換誤差數(shù)據(jù)的量化,當操作是依次進行且只有有限的可用存儲器來存儲整數(shù)轉換數(shù)據(jù)和高精度差分數(shù)據(jù)時,是非常有用的。這種變換編碼誤差數(shù)據(jù)是高度可壓縮的。由于大多數(shù)的系數(shù)是零,64位字能夠有效地以1位的標記來存儲零的位置和非零的系數(shù)。根據(jù)選定的量化,非零的系數(shù)能夠作為字節(jié)或兩字節(jié)整數(shù)來跟隨這種64位字。
圖12(b)顯示了變換編碼數(shù)據(jù)的處理中用于實域誤差的變換域校正的的系統(tǒng)1205。這種系統(tǒng)是通過擴展圖11(b)中描述的系統(tǒng)1105而形成的。在此實施例中,變換編碼數(shù)據(jù)B 215是形成變換數(shù)據(jù)115的逆量化器225。如在圖11(b)中,轉換數(shù)據(jù)155能夠利用傳統(tǒng)的整數(shù)處理而得到操作1179。在進一步的處理或操作之前,轉換數(shù)據(jù)155被從來自反向變換器125的高精度輸出135中減去,以形成高精度差分1125。這種高精度差分1125被送到操作器1135-它接受高精度數(shù)據(jù)作為輸入,以產生新的操作的高精度差分1145。這種操作高精度差分被輸入到正向變換器1155-它接受高精度數(shù)作為輸入。變換的高精度差分1159得到量化1215,以產生變換編碼誤差數(shù)據(jù)1225。變換編碼誤差數(shù)據(jù)1225可能具有很多零,因為高精度差分數(shù)據(jù)是小的值(對舍入為0.5或更小且對截斷為1.0或更小),只是轉換數(shù)據(jù)中發(fā)生了修剪的地方除外。該變換編碼誤差數(shù)據(jù)受到逆量化1235,以形成去量化的變換誤差數(shù)據(jù)1245。去量化的變換誤差數(shù)據(jù)1245可得到操作1163,以形成操作的去量化的變換誤差數(shù)據(jù)1255。從以整數(shù)作為輸入的正向變換器1195輸出的處理的轉換變換數(shù)據(jù)1199被加到1171去量化的變換誤差數(shù)據(jù)1255上。變換域校正的處理轉換變換數(shù)據(jù)1265得到量化1275,以形成變換編碼數(shù)據(jù)B2 1285。
根據(jù)所希望的系統(tǒng)實施,正向變換器1195可采用與反向變換器125不同的變換。例如,反向變換器125可采用逆DCT變換,而正向變換器1195可實施付立葉變換。如果正向變換器1195執(zhí)行反向變換器125的反向變換;正向變換器1155是反向變換器125的反向變換;逆量化器225與量化器1275中使用的量化值相同;且,操作器1179、1135和1163未作什么,則所產生的變換編碼數(shù)據(jù)B2 1285與輸入逆量化器225的原來的變換編碼數(shù)據(jù)B215相同。應該注意的是,正向變換器1195,當采用不同的正向變換時,將產生不同的變換編碼數(shù)據(jù)B2。類似地,在逆量化器225和量化器1275中采用不同的量化值也產生不同的變換編碼數(shù)據(jù)1285。這種方法因而允許變換與量化矩陣之間的轉換,而沒有來自舍入和修剪的誤差出現(xiàn)在至量化器1275的輸入1265中。
步驟1215和1235中的術語“量化器”之后的星號,是提醒對這些步驟的量化是最后量化器1275的量化的一半是有利的。在此情況下,去量化變換誤差數(shù)據(jù)具有足夠的精度來校正轉換數(shù)據(jù)中的實域誤差。
在一個替換實施例中,轉換數(shù)據(jù)155的操作器1179和整數(shù)操作轉換數(shù)據(jù)1191的正向變換器1195是與操作器1135和高精度差分的正向變換器1155平行進行的。在此實施例中,量化器1215和逆量化器1235被消除了。變換誤差數(shù)據(jù)1159被直接輸入操作器1163。象在圖11(b)中一樣。
形成變換編碼誤差數(shù)據(jù)的變換誤差數(shù)據(jù)的量化,當操作是依次進行且只有有限的可用存儲器來存儲整數(shù)轉換數(shù)據(jù)和高精度差分數(shù)據(jù)時,是非常有用的。
圖13(a)中顯示了根據(jù)本發(fā)明的編碼數(shù)據(jù)1300的處理中的一種實域誤差的變換域校正方法的一個示例性實施例。選定的實施例是用于編碼圖象的實域操作的一種方法,這種編碼是采用諸如JPEG編碼圖象的DCT的變換編碼。編碼數(shù)據(jù)C 710通過無損失熵譯碼步驟720而得到譯碼,以產生量化的DCT系數(shù)。這些系數(shù)得到去量化730并被送到逆DCT740以產生高精度實域數(shù)據(jù)1310。整數(shù)轉換器和修剪器750對高精度數(shù)據(jù)1310進行操作,以產生整數(shù)的實域數(shù)據(jù)754。在某些情況下,整數(shù)值數(shù)據(jù)可選地被送到顯示器758。
操作步驟762對實域轉換數(shù)據(jù)754進行操作,并接受整數(shù)數(shù)據(jù)作為輸入并產生整數(shù)數(shù)據(jù)或高精度數(shù)據(jù)作為輸出。如果操作得到的數(shù)據(jù)不是整數(shù),它們在可選地被送到接受整數(shù)值數(shù)據(jù)772的顯示器758之前被轉換成整數(shù)并得到修剪678。
減去步驟1314從高精度的值1310減去轉換的整數(shù)數(shù)據(jù)754,以形成高精度差分1318。該高精度差分1318被傳送到一個操作步驟1322-它接受高精度差分數(shù)據(jù)作為輸入,以產生新的操作的高精度差分1326。這種操作的高精度差分1326被輸入到一個正向變換步驟1330-它接受高精度數(shù)作為輸入。變換的高精度差分1334被量化1338,以產生變換編碼誤差數(shù)據(jù)1342。無損失熵編碼步驟1346壓縮變換編碼誤差數(shù)據(jù)1342。隨后編碼的誤差數(shù)據(jù)1350得到有效的存儲、保存、或發(fā)送。
無損失熵譯碼步驟1354對編碼誤差數(shù)據(jù)1350進行譯碼,并輸出量化的變換系數(shù)。這些系數(shù)被去量化(即逆量化)1358,以產生去量化變換誤差數(shù)據(jù)1362。去量化的變換誤差數(shù)據(jù)1362可受到操作1368,以形成操作的去量化變換誤差數(shù)據(jù)1372。
處理的轉換數(shù)據(jù)772被輸入到接受整數(shù)數(shù)據(jù)作為輸入的正向DCT776。來自正向DCT 776的輸出值被加到1376操作的去量化變換誤差數(shù)據(jù)1372上,從而形成變換域校正向變換數(shù)據(jù)1380。這種變換域校正向變換數(shù)據(jù)1380得到量化780,以產生新的整數(shù)DCT系數(shù)1384。這些系數(shù)1384通過無損失熵編碼步驟788而得到編碼,以產生新的編碼數(shù)據(jù)C2 1388。
應該注意的是,如果正向和逆DCT和操作系統(tǒng)足夠準確,因而它們引入的誤差比量化步驟的一半小,如上述公式(3)描述的,在DCT系數(shù)中完全不會引入誤差。
圖13(b)中顯示了編碼數(shù)據(jù)的處理中的實域誤差的變換域校正系統(tǒng)1305的一個本發(fā)明的示例性實施例。編碼的圖象數(shù)據(jù)C 715受到無損失熵譯碼器725的譯碼,以產生量化的DCT系數(shù)。這些系數(shù)被送到一個逆量化器735且隨后通過一個逆DCT器745,以產生實域數(shù)據(jù)1315。整數(shù)轉換器和修剪器755對高精度數(shù)據(jù)1315進行操作,以產生整數(shù)實域數(shù)據(jù)759。在某些情況下,整數(shù)值數(shù)據(jù)可選地被送到一個顯示器763。減法器1319從轉換的整數(shù)數(shù)據(jù)759減去高精度的值1315,從而形成高精度差分1323。
操作器767對實域轉換數(shù)據(jù)759進行操作,從而接受整數(shù)數(shù)據(jù)作為輸入并產生整數(shù)數(shù)據(jù)或高精度數(shù)據(jù)作為輸出。如果操作的數(shù)據(jù)不是整數(shù),它們在可選地被送到接受整數(shù)值輸入777的顯示器763之前被轉換成整數(shù)并得到修剪773。
減法器1319從高精度的值1315減去轉換的整數(shù)數(shù)據(jù)759,從而形成高精度差分1323。該高精度差分1323被傳送到一個操作器1327-它接受高精度差分作為輸入,以產生新的操作的高精度差分1331。該操作的高精度差分1331被輸入正向DCT器1335-它接受高精度數(shù)作為輸入。變換的高精度差分1339得到量化1343,以產生變換編碼誤差數(shù)據(jù)1347。無損失熵的編碼器1351壓縮變換編碼誤差數(shù)據(jù)1347。隨后編碼的誤差數(shù)據(jù)1355得到有效存儲、保存、或發(fā)送。
無損失熵譯碼器1359對編碼的誤差數(shù)據(jù)1355進行譯碼并輸出量化的變換系數(shù)。這些系數(shù)被去量化(即逆量化)1363,以產生去量化的變換誤差數(shù)據(jù)1367。去量化的變換誤差數(shù)據(jù)1367可受到操作1373,以形成操作的去量化的變換誤差數(shù)據(jù)1377。
處理的轉換數(shù)據(jù)777被輸入正向DCT器781-它接受整數(shù)數(shù)據(jù)作為輸入。從正向DCT器781輸出的值和操作的去量化的變換誤差數(shù)據(jù)1377被輸入到加法器1381。從加法器1381輸出的變換域校正的變換數(shù)據(jù)1385被輸入量化器785,以產生新的整數(shù)DCT系數(shù)1389。這些系數(shù)1389被輸入無損失熵編碼器793,后者產生新的編碼數(shù)據(jù)C2 1393。
在本發(fā)明的一個替換實施例中,實施了一種方法,用于在多個步驟對具有實域誤差的變換編碼數(shù)據(jù)進行實域操作,以正向變換和量化步驟和逆量化步驟和反向變換步驟來交替進行轉換數(shù)據(jù)的操作和變換域中的誤差的校正?;氐綀D10,其中整數(shù)輸出被傳送到各個正向變換950,從圖11(a)中產生高精度誤差輸入的步驟至使用該高精度輸入并隨后把變換的誤差智能地加到變換的轉換數(shù)據(jù)中的正向變換步驟,除去了轉換為整數(shù)和修剪產生的誤差。圖12(a)顯示了這種多產生系統(tǒng)的一個循環(huán)。圖13(a)顯示了這種多重產生方法的另一實施例的一個循環(huán)。
本發(fā)明的另一個替換實施例實施了一種系統(tǒng),該系統(tǒng)用于借助多個步驟的變換域校正來進行變換編碼數(shù)據(jù)的實域操作,把減法器、操作器、和加法器與正向變換器和量化器和逆量化和反向變換相交替。參見圖12(b),其中顯示了一種多重產生系統(tǒng)的一個循環(huán)。
一般地,各個操作可對數(shù)據(jù)進行另一種操作。例如對于數(shù)字作品室編輯,第一個操作可能是圖象的彩色校正。第二個操作可能是利用彩色圖象組合方法來把彩色校正過的圖象與背景合并。第三個操作可能是把高亮加到圖象上。第四個操作可能是把圖象的寬高比從16∶9變成電視的寬高比4∶3。對于圖象的打印,第一個操作可能是把圖象轉動90度,以使圖象向著打印方向。第二個操作可能是把幾個獨立的圖象合并成一個復合圖象。第三個操作可能是進行顏色轉換。對于編碼的圖象數(shù)據(jù)輸出裝置可以是顯示器或電視機。對于編碼的音頻數(shù)據(jù)輸出裝置可以是播放機和/或錄音機。
產生之間的操作的例子包括合并兩或更多的變換編碼數(shù)據(jù)組。對于變換編碼圖象數(shù)據(jù)組,合并可能是需要的,因為需要把多個小的圖象匯集成一個較大的圖象。廣告冊通常由多個單個的圖象組成。今天的最高級的激光打印機一次能夠打印一頁以上。在此情況下,圖象通常不重疊,而可能沒有同樣的量化,而相對于基準網(wǎng)格進行定位,諸如用于JPEG DCT或取向的8×8塊結構。通過在實域組成最后的圖象,可對各個子圖象進行標準處理。隨后復合的圖象可得到再壓縮,以在飛擊式打印中作最終的解壓縮。
類似地,數(shù)字編輯可包括要求依次進行的若干獨立操作的特殊效果。數(shù)字電影經(jīng)常采用淡入/淡出特殊效果以進行兩個關鍵場面之間的平穩(wěn)切換。這種特殊效果可跟隨對各個場面的獨立的處理。因此,解壓縮和再壓縮的多次產生是編輯中經(jīng)常需要的,以產生特殊效果的復合。
彩色圖象組合涉及兩個獨立的視頻數(shù)據(jù)流。在一個視頻流中背景已經(jīng)被獲得。在另一視頻流中前景(經(jīng)常是由涉及演員的動作組成)被印在空白的單色(諸如深藍或黑)背景上。隨后,前景圖象中的空白象素被背景視頻中的象素所代替。由于這些象素要在單個象素級上混頻,這些圖象需要在實域中結合。轉換為整數(shù)和修剪所引入的誤差對于這種數(shù)字作品室應用是非常不希望的。這些誤差通過實施本發(fā)明而得到減少或消除。
使用本發(fā)明的另一個應用例子是在采用有時高過100兆象素的數(shù)字圖象的高端數(shù)字圖形市場。光彩的廣告冊和展臺上的大照片只是這種高質量數(shù)字圖象技術應用的兩個例子。高質量損失JPEG壓縮有時被用于限制發(fā)送和存儲成本。當這樣的圖象被解壓縮和再壓縮以進行諸如加高亮光、校正顏色、添加或改變內容和圖象標頭的改變和修正時,不希望的誤差是一個問題,這種問題可利用本發(fā)明的原理而得到解決。
本發(fā)明的概念的上述例子是圖象和視頻變換數(shù)據(jù)中通??梢姷?。因特網(wǎng)的廣泛使用已經(jīng)顯示了JPEG和MPEG壓縮圖象數(shù)據(jù)的價值。當JPEG圖象將要被打印時,需要進行諸如標度改變或取向改變的修正。另外,在再壓縮之后至另一色空間的變換將使準備好打印的版本能夠得到存儲。采用本發(fā)明克服了舍入和修剪所傳播的誤差的問題。
音頻編碼數(shù)據(jù)也需要得到解壓縮、與特殊聲音效果混頻、與其他音頻數(shù)據(jù)合并、在實域中以較少的誤差進行編輯和處理。當數(shù)據(jù)被存儲在變換域中時,類似的實施也對其他工業(yè)、商業(yè)、和軍事應用中采用數(shù)據(jù)變換和反向變換的數(shù)字處理所進行。這些因而是其中本發(fā)明具有高度利用價值的情況的例子。
進一步地,應該注意的是,本發(fā)明還可被作為設備或計算機產品而提供。例如,它可以作為包括其中體現(xiàn)有使計算機實施本發(fā)明的方法的計算機可讀取程序碼裝置的制造品,而得到實施。
還應該注意的是,雖然本發(fā)明的描述是對于具體的步驟設置而進行的,本發(fā)明的原理和概念也適用于和可應用于其他的情況。本領域的技術人員應該理解的是,在不脫離本發(fā)明的精神和范圍的前提下,可以對所公布的實施例進行其他的修正。
權利要求
1.一種用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的方法,該方法包括對所述變換數(shù)據(jù)進行至實域的反向變換,從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪到一個允許范圍,從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去所述轉換數(shù)據(jù),從而形成高精度差分;對所述初始轉換數(shù)據(jù)進行正向變換,從而形成變換的轉換數(shù)據(jù);對所述高精度差分進行正向變換,從而形成變換差分;以及把所述變換的差分加到所述變換的轉換數(shù)據(jù)上,從而形成校正的變換數(shù)據(jù)。
2.根據(jù)權利要求1的方法,其中對于所述正向變換所述初始轉換數(shù)據(jù)的所述正向變換的反向變換不同于所述反向變換。
3.根據(jù)權利要求1的方法,其中所述高精度數(shù)是浮點數(shù)。
4.根據(jù)權利要求1的方法,其中所述高精度數(shù)是包括一個小數(shù)部分的固定精度的數(shù)。
5.根據(jù)權利要求1的方法,進一步包括對變換編碼數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)。
6.根據(jù)權利要求5的方法,進一步包括對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)
7.根據(jù)權利要求6的方法,進一步包括對編碼數(shù)據(jù)進行熵譯碼,以形成變換編碼數(shù)據(jù);以及對量化的數(shù)據(jù)進行熵編碼,從而形成編碼數(shù)據(jù)。
8.根據(jù)權利要求6的方法,其中所述逆量化步驟和所述量化步驟采用了至少一個不同的量化值。
9.用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種方法,該方法包括對所述變換數(shù)據(jù)進行至實域的反向變換,從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪到一個允許范圍,從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去所述轉換數(shù)據(jù),從而形成高精度差分;對所述初始轉換數(shù)據(jù)進行操作,以產生一種效果并形成經(jīng)過處理的轉換數(shù)據(jù);對所述初始轉換數(shù)據(jù)進行正向變換,從而形成變換的轉換數(shù)據(jù);對所述高精度差分進行正向變換,從而形成變換的差分;以及把所述變換的差分加到所述變換的轉換數(shù)據(jù)上,從而形成校正的變換數(shù)據(jù)。
10.根據(jù)權利要求9的方法,進一步包括對變換編碼數(shù)據(jù)進行逆量化,以形成變換數(shù)據(jù)。
11.根據(jù)權利要求10的方法,進一步包括對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)。
12.根據(jù)權利要求11的方法,進一步包括對編碼數(shù)據(jù)進行熵譯碼,以形成變換編碼數(shù)據(jù);以及對量化數(shù)據(jù)進行熵編碼以形成編碼數(shù)據(jù)。
13.根據(jù)權利要求9的方法,其中所述效果是圖象數(shù)據(jù)的顏色校正。
14.根據(jù)權利要求12的方法,其中所述編碼數(shù)據(jù)是編碼音頻數(shù)據(jù)
15.根據(jù)權利要求12的方法,其中所述編碼數(shù)據(jù)是編碼圖象數(shù)據(jù)。
16.根據(jù)權利要求12的方法,其中所述編碼數(shù)據(jù)是編碼視頻數(shù)據(jù)。
17.根據(jù)權利要求15的方法,其中所述編碼圖象數(shù)據(jù)是按照JPEG靜止圖象國際標準格式的。
18.根據(jù)權利要求16的方法,其中所述編碼圖象數(shù)據(jù)是按照MPEG運動視頻國際標準格式的。
19.根據(jù)權利要求12的方法,所述方法的步驟進一步包括把所述操作步驟與所述進行正向變換、進行量化、熵編碼、熵譯碼、進行逆量化、和進行反向變換的步驟交替進行所希望的次數(shù)。
20.根據(jù)權利要求19的方法,其中所述編碼數(shù)據(jù)是壓縮數(shù)據(jù),且交替的各個步驟實施了一個壓縮/解壓縮循環(huán)。
21.用于對代表現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種方法,該方法包括對所述變換數(shù)據(jù)進行至實域的反向變換,從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪至一個允許范圍,從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去初始轉換數(shù)據(jù),從而形成初始高精度差分;對所述初始轉換數(shù)據(jù)進行操作,以產生一種第一效果,從而形成經(jīng)過處理的轉換數(shù)據(jù);對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換,從而形成變換的轉換數(shù)據(jù);對所述初始高精度差分進行操作,以產生一種第二效果,并形成處理的高精度差分;正向變換所述經(jīng)過處理的高精度差分,以形成變換差分;以及把所述變換的差分加到所述變換的轉換數(shù)據(jù)上,從而形成校正的變換數(shù)據(jù)。
22.根據(jù)權利要求21的方法,其中所述第一種效果是兩個數(shù)據(jù)組的彩色圖象組合合并。
23.根據(jù)權利要求22的方法,其中所述第二效果是按照兩個數(shù)據(jù)組的彩色圖象組合合并的兩個初始高精度差分的合并。
24.根據(jù)權利要求21的方法,其中所述第一種效果是圖象數(shù)據(jù)的顏色校正。
25.根據(jù)權利要求21的方法,其中所述第一種效果是圖象的90度轉動且所述第二種效果是所述高精度差分的90度轉動。
26.根據(jù)權利要求21的方法,其中所述高精度數(shù)是浮點數(shù)。
27.根據(jù)權利要求21的方法,進一步包括對變換編碼數(shù)據(jù)進行逆量化,以形成變換數(shù)據(jù)。
28.根據(jù)權利要求27的方法,進一步包括進行所述校正的變換數(shù)據(jù)的量化以形成量化數(shù)據(jù)。
29.根據(jù)權利要求28的方法,進一步包括對編碼數(shù)據(jù)進行熵譯碼以形成變換編碼數(shù)據(jù);對量化數(shù)據(jù)進行熵編碼以形成編碼數(shù)據(jù)。
30.根據(jù)權利要求29的方法,其中所述編碼數(shù)據(jù)是JPEG靜止圖象國際標準格式的。
31.根據(jù)權利要求29的方法,其中所述編碼視頻數(shù)據(jù)是MPEG運動視頻國際標準格式的。
32.根據(jù)權利要求21的方法,其中處理的高精度差分與初始的高精度差分相同。
33.用于對代表現(xiàn)象的的變換數(shù)據(jù)進行數(shù)字處理的一種方法,該方法包括對所述變換數(shù)據(jù)進行至實域的反向變換,從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪至一個允許范圍,從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去初始轉換數(shù)據(jù),從而形成高精度差分;對所述高精度差分進行正向變換,以形成初始變換差分;對所述初始轉換數(shù)據(jù)進行操作,以產生一種第一效果,從而形成經(jīng)過處理的轉換數(shù)據(jù);對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換,從而形成變換的轉換數(shù)據(jù);對所述初始高精度差分進行操作,以產生一種第二效果,從而形成處理的高精度差分;把所述處理的變換差分加到所述變換的轉換數(shù)據(jù)上,從而形成校正的變換數(shù)據(jù)。
34.根據(jù)權利要求33的方法,其中所述高精度數(shù)是浮點數(shù)。
35.根據(jù)權利要求33的方法,進一步包括對變換編碼數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)。
36.根據(jù)權利要求35的方法,進一步包括對所述校正的變換數(shù)據(jù)進行量化,以形成量化數(shù)據(jù)。
37.根據(jù)權利要求36的方法,進一步包括對編碼數(shù)據(jù)進行熵譯碼以形成變換編碼數(shù)據(jù);對量化數(shù)據(jù)進行熵編碼以形成編碼數(shù)據(jù)。
38.根據(jù)權利要求37的方法,其中所述編碼視頻數(shù)據(jù)是按照MPEG運動視頻國際標準格式的。
39.根據(jù)權利要求36的方法,其中操作所述變換差分的步驟包括進行所述變換差分的量化以形成量化的差分;對所述量化的差分進行逆量化以形成去量化的差分;對所述去量化的差分進行操作以產生一種第二效果,從而形成處理的變換差分。
40.根據(jù)權利要求39的方法,進一步包括對量化的差分進行熵編碼以形成編碼差分的步驟。
41.根據(jù)權利要求40的方法,進一步包括對編碼差分進行熵譯碼以再形成量化差分的步驟。
42.根據(jù)權利要求39的方法,其中進行量化的步驟和進行逆量化的步驟采用了第一個量的量化值—它等于用于形成所述校正的變換數(shù)據(jù)的量化的步驟中使用的量化值的一個第二個量的一半。
43.根據(jù)權利要求36的方法,其中操作所述變換差分的步驟進一步包括對所述變換差分進行操作以產生一種第二效果并形成操作的變換差分;進行操作的變換差分的量化以形成量化差分;以及進行所述量化差分的逆量化以形成處理的變換差分。
44.根據(jù)權利要求43的一種方法,進一步包括對量化差分進行熵編碼以形成編碼差分的步驟。
45.根據(jù)權利要求44的方法,進一步包括對編碼差分進行熵譯碼以再形成量化差分的步驟。
46.根據(jù)權利要求43的方法,其中進行操作的變換差分的量化的步驟和進行所述量化差分的逆量化的步驟采用了在進行所述校正的變換數(shù)據(jù)的量化的步驟中采用的量化值的一半。
47.根據(jù)權利要求36的方法,其中操作所述變換差分的步驟進一步包括對所述變換差分進行操作以產生一種第二效果并形成操作的變換差分;對操作的變換差分進行量化,以形成量化差分;進行所述量化差分的逆量化,以形成去量化差分;以及對所述去量化差分進行操作以產生一種第三效果并形成處理的變換差分。
48.根據(jù)權利要求47的方法,進一步包括對量化差分進行熵編碼以形成編碼差分的步驟。
49.根據(jù)權利要求48的方法,進一步包括對編碼差分進行熵譯碼以再形成量化差分的步驟。
50.根據(jù)權利要求47的方法,其中進行操作的變換差分的量化的步驟和進行量化差分的逆量化的步驟采用了在進行校正的變換數(shù)據(jù)的量化的步驟中采用的量化值的一半量的量化值。
51.用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種系統(tǒng),該系統(tǒng)包括一種反向變換器,用于利用高精度數(shù)把所述變換數(shù)據(jù)反向變換到實域;一種用于把所述高精度數(shù)轉換成整數(shù)的轉換器和用于把該整數(shù)修剪到一個允許范圍的修剪,以形成初始轉換數(shù)據(jù);一個減法器,用于從所述高精度數(shù)減去所述初始轉換數(shù)據(jù)以形成高精度差分;一個正向變換器,用于對所述初始轉換數(shù)據(jù)進行正向變換以形成變換的轉換數(shù)據(jù);一種正向變換器,用于對所述高精度差分進行正向變換,以形成變換差分;以及一種加法器,用于把所述變換差分加到所述變換編碼數(shù)據(jù)上以形成校正的變換數(shù)據(jù)。
52.根據(jù)權利要求51的系統(tǒng),其中正向變換器中采用的把所述初始轉換數(shù)據(jù)進行正向變換的第一變換類型不同于反向變換中采用的第二種變換類型。
53.根據(jù)權利要求51的系統(tǒng),進一步包括一種逆量化器,用于對變換編碼數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)。
54.根據(jù)權利要求53的系統(tǒng),進一步包括一種量化器,用于對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)。
55.根據(jù)權利要求54的系統(tǒng),其中所述逆量化器和所述量化器采用了至少一個不同的量化值。
56.用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種系統(tǒng),該系統(tǒng)包括一種反向變換器,用于利用高精度數(shù)把所述變換數(shù)據(jù)反向變換到實域;一種用于把所述高精度數(shù)轉換成整數(shù)的轉換器和用于把該整數(shù)修剪到一個允許范圍的修剪,以形成初始轉換數(shù)據(jù);一個減法器,用于從所述高精度數(shù)減去所述初始轉換數(shù)據(jù)以形成高精度差分;一種操作器,用于操作所述初始轉換數(shù)據(jù)以產生一種效果并形成經(jīng)過處理的轉換數(shù)據(jù);一種正向變換器,用于對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換以形成變換的轉換數(shù)據(jù);一種正向變換器,用于對所述高精度差分進行正向變換,以形成變換差分;以及一種加法器,用于把所述變換差分加到所述變換編碼數(shù)據(jù)上以形成校正的變換數(shù)據(jù)。
57.根據(jù)權利要求56的一種系統(tǒng),進一步包括一種逆量化器,用于對變換編碼數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)。
58.根據(jù)權利要求57的系統(tǒng),進一步包括用于對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)的一種量化器。
59.根據(jù)權利要求58的系統(tǒng),進一步包括用于對編碼數(shù)據(jù)進行譯碼以形成變換編碼數(shù)據(jù)的熵譯碼器。
60.根據(jù)權利要求59的系統(tǒng),進一步包括用于對量化數(shù)據(jù)進行編碼以形成編碼數(shù)據(jù)的熵編碼器。
61.用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種系統(tǒng),該系統(tǒng)包括反向變換器,用于利用高精度數(shù)把所述變換數(shù)據(jù)反向變換到實域;一種轉換器,用于把所述高精度數(shù)轉換成整數(shù)并修剪器該整數(shù)到一個允許范圍,從而形成初始轉換數(shù)據(jù);一個減法器,用于從所述高精度數(shù)減去初始轉換數(shù)據(jù),從而形成高精度差分;一個操作器,用于對所述初始轉換數(shù)據(jù)進行操作以產生第一種效果,從而形成經(jīng)過處理的轉換數(shù)據(jù);一種正向變換器,用于對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換,從而形成變換的轉換數(shù)據(jù);一種操作器,用于對所述高精度差分進行操作以產生一種第二效果并形成經(jīng)過處理的高精度差分;一個正向變換,用于對所述經(jīng)過處理的高精度差分進行正向變換,以形成變換差分;以及一個加法器,用于把所述變換差分加到所述變換的轉換數(shù)據(jù)上從而形成校正的變換數(shù)據(jù)。
62.根據(jù)權利要求61的系統(tǒng),進一步包括用于對變換的轉換數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)的逆量化器。
63.根據(jù)權利要求62的系統(tǒng),進一步包括用于對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)的量化器。
64.用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的一種系統(tǒng),該系統(tǒng)包括一種反向變換器,用于利用高精度數(shù)把所述變換數(shù)據(jù)反向變換到實域;一種用于把所述高精度數(shù)轉換成整數(shù)的轉換器和用于把該整數(shù)修剪到一個允許范圍的修剪,以形成初始轉換數(shù)據(jù);一個減法器,用于從所述高精度數(shù)減去所述初始轉換數(shù)據(jù)以形成高精度差分;一個第一正向變換器,用于對所述高精度差分進行正向變換以形成變換差分;第一操作器,用于操作所述初始轉換數(shù)據(jù)以產生一種第一效果并形成經(jīng)過處理的轉換數(shù)據(jù);第二正向變換器,用于對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換以形成變換的轉換數(shù)據(jù);第二操作器,用于對所述變換差分進行操作以產生第二效果,從而形成處理的變換差分;以及一種加法器,用于把所述變換差分加到所述變換編碼數(shù)據(jù)上以形成校正的變換數(shù)據(jù)。
65.根據(jù)權利要求64的系統(tǒng),進一步包括用于對變換編碼數(shù)據(jù)進行逆量化以形成變換數(shù)據(jù)的第一逆量化器。
66.根據(jù)權利要求65的系統(tǒng),進一步包括用于對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)的第一量化器。
67.根據(jù)權利要求66的系統(tǒng),其中用于操作所述變換差分的操作器進一步包括用于進行所述變換差分的量化以形成量化差分的第二量化器;用于進行所述量化差分的逆量化以形成量化差分的第二逆量化器;以及用于對所述去量化差分進行操作以產生第二效果從而形成處理的變換差分的第三操作器。
68.根據(jù)權利要求67的系統(tǒng),進一步包括用于對量化差分進行編碼以形成編碼差分熵編碼器。
69.根據(jù)權利要求68的系統(tǒng),進一步包括用于對編碼差分進行熵譯碼以再形成量化差分的熵譯碼器。
70.根據(jù)權利要求67的系統(tǒng),其中第二量化器和第二逆量化器均采用了第一量化器中使用的量化值的量的一半。
71.根據(jù)權利要求66的系統(tǒng),其中第二操作器包括一種差分操作器,用于對所述變換差分進行操作以產生第二效果并形成操作的變換差分;差分量化器,用于對所述操作的變換差分進行量化從而形成量化差分;以及差分逆量化器,用于對所述量化差分進行逆量化從而形成處理的變換差分。
72.根據(jù)權利要求71的系統(tǒng),進一步包括用于對量化差分進行編碼以形成編碼差分的熵編碼器。
73.根據(jù)權利要求72的系統(tǒng),進一步包括用于對編碼差分進行譯碼以形成量化差分的熵譯碼器。
74.根據(jù)權利要求71的系統(tǒng),其中第二操作器包括一個替換操作器,用于對所述去量化差分進行操作以產生第三效果并形成處理的變換差分。
75.一種制造產品,它包括具有體現(xiàn)在其中的用于對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的計算機可讀取程序碼裝置的計算機可用介質,所述制造品中的該計算機可讀取程序碼裝置包括用于使計算實現(xiàn)以下操作的計算機可讀取程序碼裝置把所述變換數(shù)據(jù)反向變換到實域從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪到允許范圍從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去所述初始轉換數(shù)據(jù)以形成高精度差分;正向變換所述初始轉換數(shù)據(jù)以形成變換的轉換數(shù)據(jù);對所述高精度差分進行正向變換以形成變換差分;以及把所述變換差分加到所述變換的轉換數(shù)據(jù)上從而形成校正的變換數(shù)據(jù)。
76.根據(jù)權利要求75的制造品,其中所述制造品中的計算機可讀取程序碼裝置進一步包括用于使計算機執(zhí)行對變換編碼數(shù)據(jù)的逆量化以形成變換數(shù)據(jù)的計算機可讀取程序碼裝置。
77.根據(jù)權利要求76的制造品,其中所述制造品中的計算機可讀取程序碼裝置進一步包括用于使計算機執(zhí)行所述校正的變換數(shù)據(jù)的量化以形成量化數(shù)據(jù)的計算機可讀取程序碼裝置。
78.根據(jù)權利要求77的制造品,其中所述制造品中的計算機可讀取程序碼裝置使計算機執(zhí)行以下操作對編碼數(shù)據(jù)進行熵譯碼以形成變換編碼數(shù)據(jù);以及對量化數(shù)據(jù)進行熵編碼以形成編碼數(shù)據(jù)。
79.一種計算機程序產品,它包括具有體現(xiàn)在其中的用于對實域中代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的計算機可讀取程序碼裝置的計算機可用介質,所述制造品中的該計算機可讀取程序碼裝置包括用于使計算實現(xiàn)以下操作的計算機可讀取程序碼裝置把所述變換數(shù)據(jù)反向變換到實域從而形成高精度數(shù);把所述高精度數(shù)轉換成整數(shù)并把該整數(shù)修剪到允許范圍從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去所述初始轉換數(shù)據(jù)以形成高精度差分;對所述初始轉換數(shù)據(jù)進行操作以產生一種效果并形成經(jīng)過處理的轉換數(shù)據(jù);正向變換所述初始轉換數(shù)據(jù)以形成變換的轉換數(shù)據(jù);對所述高精度差分進行正向變換以形成變換差分;以及把所述變換差分加到所述變換的轉換數(shù)據(jù)上從而形成校正的變換數(shù)據(jù)。
80.根據(jù)權利要求79的計算機程序產品,其中所述計算機程序產品中的計算機可讀取程序碼裝置進一步包括用于使計算機執(zhí)行對變換編碼數(shù)據(jù)的逆量化以形成變換數(shù)據(jù)。
81.根據(jù)權利要求80的計算機程序產品,其中所述計算機程序產品中的計算機可讀取程序碼裝置進一步包括用于使計算機執(zhí)行對所述校正的變換數(shù)據(jù)進行量化以形成量化數(shù)據(jù)。
82.可由機器讀取的一種程序存儲裝置,它可觸地體現(xiàn)了可由機器執(zhí)行以執(zhí)行對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的方法步驟的指令程序,所述方法步驟包括把所述變換數(shù)據(jù)反向變換到實域,從而形成初始高精度數(shù);把所述初始高精度數(shù)轉換到整數(shù)并把該整數(shù)修剪到一個允許范圍編碼從而形成初始轉換數(shù)據(jù);從所述初始高精度數(shù)減去所述初始轉換數(shù)據(jù)從而形成高精度差分;對所述初始轉換數(shù)據(jù)進行操作以產生第一效果從而形成經(jīng)過處理的轉換數(shù)據(jù);對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換從而形成變換的轉換數(shù)據(jù);對所述初始高精度差分進行操作以產生第二效果并形成經(jīng)過處理的高精度差分;對所述經(jīng)過處理的高精度差分進行正向變換以形成變換差分;以及把所述變換差分加到所述變換的轉換數(shù)據(jù)上以形成校正的變換數(shù)據(jù)。
83.可由機器讀取的一種程序存儲裝置,它可觸地體現(xiàn)了可由機器執(zhí)行以執(zhí)行對代表一種現(xiàn)象的變換數(shù)據(jù)進行數(shù)字處理的方法步驟的指令程序,所述方法步驟包括把所述變換數(shù)據(jù)反向變換到實域,從而形成高精度數(shù);把所述高精度數(shù)轉換到整數(shù)并把該整數(shù)修剪到一個允許范圍編碼從而形成初始轉換數(shù)據(jù);從所述高精度數(shù)減去所述轉換數(shù)據(jù)從而形成高精度差分;對所述初始轉換數(shù)據(jù)進行操作以產生第一效果從而形成經(jīng)過處理的轉換數(shù)據(jù);對所述經(jīng)過處理的轉換數(shù)據(jù)進行正向變換從而形成變換的轉換數(shù)據(jù);對所述高精度差分進行操作以產生第二效果并形成經(jīng)過處理的高精度差分;把所述處理的變換差分加到所述變換的轉換數(shù)據(jù)上以形成校正的變換數(shù)據(jù)。
84.根據(jù)權利要求83的可由機器讀取的程序存儲裝置,所述方法步驟進一步包括進行變換的轉換數(shù)據(jù)的逆量化以形成變換數(shù)據(jù)。
85.根據(jù)權利要求84的可由機器讀取的程序存儲裝置,所述方法步驟進一步包括進行所述校正的變換數(shù)據(jù)的量化以形成量化數(shù)據(jù)。
86.根據(jù)權利要求85的可由機器讀取的程序存儲裝置,所述方法步驟進一步包括對編碼數(shù)據(jù)進行熵譯碼以形成變換的轉換數(shù)據(jù);以及對量化數(shù)據(jù)進行熵編碼以形成編碼數(shù)據(jù)。
87.根據(jù)權利要求86的可由機器讀取的程序存儲裝置,所述方法步驟進一步包括把所述操作步驟與所述進行正向變換、進行量化、熵編碼、熵譯碼、進行逆量化、以及進行反向變換的步驟交替地進行所希望的次數(shù)。
88.根據(jù)權利要求87的可由機器讀取的程序存儲裝置,其中所述編碼數(shù)據(jù)是壓縮數(shù)據(jù),且交替的各個步驟實施了一個壓縮/解壓縮循環(huán)。
全文摘要
本發(fā)明解決了數(shù)字處理中由于采用誤差惡化數(shù)據(jù)而產生的問題。它提供了用于對變換處理、變換編碼、以及編碼數(shù)據(jù)中的實域誤差的變換域校正。在變換數(shù)據(jù)的反向變換之后,高精度數(shù)被轉換成整數(shù)并被修剪到一個允許范圍,從而形成轉換數(shù)據(jù)。高精度差分通過從反向變換的高精度輸出中減去轉換數(shù)據(jù)而獲得。該差分被再變換回到變換域并被保存。隨后,在經(jīng)過處理的轉換數(shù)據(jù)的再變換之后,譯碼差分、去量化差分、或變換差分可被用于變換域中。
文檔編號H04N1/41GK1253338SQ9912342
公開日2000年5月17日 申請日期1999年11月3日 優(yōu)先權日1998年11月4日
發(fā)明者瓊·拉沃恩·米切爾, 馬丁·詹姆斯·布萊特 申請人:國際商業(yè)機器公司