專利名稱:圖像和視頻編碼用的改進的塊變換和量化的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及圖像和視頻信號的編碼和解碼,特別涉及到一種用于編碼和解碼圖像視頻信號的改進的塊變換和逆變換,以及量化和去量化方法。
背景技術(shù):
離散余弦變換(DCT)一般用于塊變換的圖像和視頻(圖像序列)編碼,例如JPEG和MPEG。其他原因是,就圖像視覺質(zhì)量而言,DCT可將隨機信號(例如,對應(yīng)于圖像數(shù)據(jù)的信號)分離為較重要的低頻部分和次要的高頻部分,這樣便于壓縮。
舉例來說,H.26L是一種使用4×4像素塊構(gòu)成幀的圖像和/或視頻的編碼技術(shù),與采用8×8像素塊的MPEG和JPEG不同,H.26L通過使用除幀間估計和運動補償(即,幀際編碼)外,還利用同幀中存在的其他塊的預(yù)測信息(即,幀內(nèi)編碼),從而使采用4×4像素塊取得了相對較高質(zhì)量的壓縮。一般說來,為了完成幀內(nèi)預(yù)測,H.26L編碼器要告訴相應(yīng)的H.26L解碼器,在構(gòu)成幀中哪些以前的像素塊被用作為預(yù)測基礎(chǔ),并識別6種可能的預(yù)測器(公式)中的1個來確定新塊像素(從以前幀內(nèi)的塊的像素進行識別)。這會引致預(yù)測誤差,但此誤差也供給解碼器,以校正新塊。預(yù)測誤差信息利用塊變換(DCT)加以編碼,將編碼結(jié)果送至解碼器,用于再次計算誤差信息,包括通過逆變換來校正預(yù)測的塊。
圖像和視頻的編碼或解碼需要大量的處理能力。眾所周知,編碼器具有的處理能力要大大地超過多個將數(shù)據(jù)轉(zhuǎn)換為圖像的解碼器的處理能力,因為解碼器通常是在用戶設(shè)備中提供,如,圖像和視頻的解碼可發(fā)生在電視機頂端盒內(nèi),個人數(shù)子助理內(nèi),袖珍式個人計算機和更先進的蜂窩式電話內(nèi)。
因此,考慮圖像和視頻的編碼和解碼方法時,保持解碼的簡單性是很重要的,縱然這意味著編碼必須在計算上做得更復(fù)雜些。任何簡化解碼的措施都是需要的,在這樣做時,編碼和解碼的處理不會對現(xiàn)有技術(shù)基本方法的壓縮水平、最終圖像質(zhì)量和解碼器需要的其他資源量起到不利影響。
發(fā)明內(nèi)容
簡言之,本發(fā)明提供一種改進的方法,系統(tǒng)和塊變換,使得編碼器和解碼器兩者都可大大地簡化對圖像和視頻的計算復(fù)雜性。而同時,壓縮、圖像/視頻質(zhì)量和其他資源所受到的影響可以忽略。
特別是,提供一種對離散余弦變換(DCT)采用新的整數(shù)近似的正交塊變換和相應(yīng)的逆變換,以及其他可顯著地減少編碼器和解碼器計算復(fù)雜性的計算改變。事實上,在一個實施例中,在編碼器和解碼器,每個系數(shù)的變換操作次數(shù)已減少至在16位運算中的4次加法和1次移位(而H.26L規(guī)定的變換要在32位運算中有4次加法和3次乘法)。因為編碼期間的量化(換算和舍入至整數(shù))和解碼期間的去量化(通過使用根據(jù)各系數(shù)位置所選擇的3張表之一)具有對其他變換乘法系數(shù)進行補償?shù)膮?shù)值(除了在變換和逆變換過程中由移位操作所完成的乘法外),所以本發(fā)明能正確地變換像素信息(如,誤差校正數(shù)據(jù))。
而且,解碼器在解碼期間對各經(jīng)量化的系數(shù)進行1次16位乘法,將經(jīng)量化的系數(shù)去量化,成為變換系數(shù),替代(如H.26L所需的)32位的乘法運算。在許多設(shè)備中,就一般圖像和視頻來說,本發(fā)明的數(shù)據(jù)處理的好處與H.26L相比是顯而易見的,特別在解碼器上,如果產(chǎn)生質(zhì)量和/或壓縮的任何損失,也是可忽略的。
本發(fā)明提供一種對視頻或圖像信息進行解碼的方法,該方法包括接收經(jīng)量化的系數(shù);把接收的經(jīng)量化的系數(shù)去量化轉(zhuǎn)成去量化的變換系數(shù);以及把逆變換處理應(yīng)用于該去量化的變換系數(shù),其中該逆變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的逆變換計算u=A+C;v=A-C;y=(B>>1)-D;z=(D>>1)+B;a′=u+z;b′=v+y;c′=v-y;d′=u-z;其中A、B、C和D代表要被逆變換的值,u、v、y和z代表輔助變量,而a’、b’、c和d’代表經(jīng)逆變換的值。
本發(fā)明提供一種對視頻或圖像信息進行編碼的方法,該方法包括應(yīng)用對信息的變換處理來產(chǎn)生變換系數(shù),其中所述變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的變換計算u=a+d;v=b+c;y=b-c;z=a-d;A=u+v;C=u-v;B=y(tǒng)+(z<<1);D=z-(y<<1);其中a、b、c和d代表要被變換的值,u、v、y和z代表輔助變量,而A、B、C和D代表經(jīng)變換的值,以及把變換系數(shù)量化為經(jīng)量化的變換系數(shù)。
本發(fā)明還提供一種視頻解碼器,包含一種裝置,用于把經(jīng)量化的變換系數(shù)去量化轉(zhuǎn)換為去量化的變換系數(shù);以及一種裝置,用于把逆變換處理應(yīng)用于去量化的變換系數(shù),其中所述逆變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的逆變換計算u=A+C;v=A-C;y=(B>>1)-D;z=(D>>1)+B;a′=u+z;b′=v+y;c′=v-y;d′=u-z ;其中A、B、C和D代表要被逆變換的值,u、v、y和z代表輔助變量,而a’、b’、c’和d’代表經(jīng)逆變換的值。
從下面結(jié)合附圖的詳細描述中,其他好處和優(yōu)點就是明顯的,其中
圖1是示出包含本發(fā)明的示范計算機系統(tǒng)的方塊圖;圖2是示出根據(jù)本發(fā)明的一個方面,用于將視頻或圖像數(shù)據(jù)像素編碼成經(jīng)編碼的視頻,和將經(jīng)編碼的視頻解碼為像素信息的部件的方塊圖,包括變換,量化,去量化和逆變換。
圖3示出根據(jù)本發(fā)明的一個方面所表示的改進變換矩陣的蝶形結(jié)構(gòu)。
圖4示出根據(jù)本發(fā)明的一個方面所表示的改進逆變換矩陣的蝶形結(jié)構(gòu)。
具體實施例方式
圖1示出可實施本發(fā)明的一個適合操作環(huán)境120的例子,特別是對圖像和/或視頻數(shù)據(jù)的解碼。操作環(huán)境120只是適合操作環(huán)境的一個例子,并不是要對本發(fā)明應(yīng)用范圍或功能性提出任何限止。適用于本發(fā)明的其他一些眾所周知的計算系統(tǒng)、環(huán)境和/或配置包括(但不局限于)個人計算機、服務(wù)器計算機、手持式和膝上型設(shè)備、多處理器系統(tǒng)、基于微處理的系統(tǒng)、可編碼的用戶電子設(shè)備、網(wǎng)絡(luò)PC機、小型計算機、主計算機,包括上述任何系統(tǒng)或設(shè)備的分布計算環(huán)境等等。例如,圖像和/或視頻圖像數(shù)據(jù)的編碼很可能經(jīng)常在1臺具有比現(xiàn)今手持式個人計算機更強處理能力的計算機上進行,但這并不是說不能在示范設(shè)備上進行編碼,或在更強處理能力的設(shè)備上進行解碼。
本發(fā)明在一般計算機可執(zhí)行的指令的范圍中描述,如程序模塊,可由1個或多個計算機或其他設(shè)備來執(zhí)行。一般說來,程序模塊包括執(zhí)行特定任務(wù)或?qū)嵤┨囟ǖ某橄髷?shù)據(jù)類的例行程序、程序、對象、組成部分、數(shù)據(jù)結(jié)構(gòu)等等。一般程序模塊功能性可按各種實例的要求進行組合或分布。
計算設(shè)備120一般至少包括一些形式的計算機可讀媒體。計算機可讀媒體可以是由計算設(shè)備120能存取的任何可獲得的媒體。舉例來說,但不限于,計算機可讀媒體可包括計算機存儲媒體和通信媒體。計算機存儲媒體包括以任何方法或技術(shù)來存儲信息所實現(xiàn)的易失性和非易失性、可移動和不可移動的媒體,如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)。計算機存儲媒體包括,但不限于,RAM、ROM、EEPROM、快閃存儲器或其他存儲器技術(shù)、CD-ROM、數(shù)字式多用途盤(DVD)或其他光存儲器、磁盤、磁帶、磁盤存儲器或其他磁存儲器件,或可用于存儲所需信息,并由計算設(shè)備120可存取的任何其他媒體。通信媒體一般包括計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或經(jīng)調(diào)制的數(shù)據(jù)信號中的其他數(shù)據(jù)如載波或其他傳送機制,并包括任何信息發(fā)送媒體。術(shù)語“經(jīng)調(diào)制的數(shù)據(jù)信號”就是指具有其特性組中1個特性或多個特性或可按關(guān)于對信號中信息編碼的一種方式來改變的信號。舉例來說,并不局限于,通信媒體包括有線媒體如有線網(wǎng)絡(luò)或直接有線連接,和無線媒體如聲頻、RF、紅外或其他無線媒體。上述的任何組合也必須包括在計算機可讀媒體的范圍內(nèi)。
圖1示出一種這樣的手持式計算設(shè)備120的功能部件,包括處理器122、存儲器124、顯示器126和鍵盤128(它可以是實際的或虛擬的鍵盤)。存儲器124一般包括易失性存儲器(如RAM)和非易失性存儲器(如ROM、PCMCIA卡等等)兩者。操作系統(tǒng)130駐留在存儲器124內(nèi),并在處理器122上執(zhí)行,如微軟公司W(wǎng)indowCE操作系統(tǒng)或其他操作系統(tǒng)。
1個或多個應(yīng)用程序132加載入存儲器124,并在操作系統(tǒng)上130運行。應(yīng)用程序的例子包括電子郵件程序、調(diào)度程序、PIM(個人信息管理)程序、字處理程序、電子表格程序、因特網(wǎng)瀏覽器程序等等。手持式個人計算機120還包括加載入存儲器124的通知管理程序134,此程序在處理器122上執(zhí)行。通知管理程序134處理諸如來自應(yīng)用程序的通知要求。
手持式個人計算機120具有由1個或多個電池實現(xiàn)的電源136。電源136進一步包括外接電源,對機內(nèi)電池過載(override)或充電,如AC適配器或供電的連接底座。
圖1示出的示范手持式個人計算機120具有3種類型的外部通知機構(gòu)1個或多個發(fā)光二極管(LED)140和1個音頻發(fā)生器144。這些器件可直接耦合至電源136,這樣,當(dāng)這些器件激活時,即使手持式個人計算機處理器122和其他組成部分為了節(jié)省電池電源而關(guān)機,這些器件仍在通知機構(gòu)所指定的時期內(nèi)保持開啟。LED140最好無限止地保持開啟,直至用戶采取行動。注意現(xiàn)在這類音頻發(fā)生器144耗用當(dāng)今手持式個人計算機的電池電源太多,所以當(dāng)系統(tǒng)休眠時或在激活后有限時期內(nèi),將它置于關(guān)閉。
編碼和解碼就背景所述,離散余弦變換(DCT)利用線性變換公式X=Hx將長度-N矢量X映射為新的變換系數(shù)矢量X,其中H的第k行和第n列中的元素由下式規(guī)定Hkn=H(k,n)=ck2Ncos((n+1/2)kπN)]]>其中k=0,1,…,N-1,而n=0,1,…N-1,同時當(dāng)k>1時,c0=2]]>而ck=1。DCT矩陣是正交的,因此,其逆向等于其轉(zhuǎn)置,即x=H-1X=HTX。
DCT的一個缺點是H(k,n)項是無理數(shù),所以整數(shù)輸入數(shù)據(jù)x(n)將映射為無理變換系數(shù)X(k)。因此,使用數(shù)字計算機時,當(dāng)直接變換和逆變換以級聯(lián)方式計算時,輸出數(shù)據(jù)就不完全相等于輸入數(shù)據(jù)。換言之,如果以X=Hx來計算,且u=round(HTX),然而對所有n來說,u(n)=x(n)并不為真。然而通過引入合適的換算因子α,γ,例如x=γHx而u=round(αHTX),則當(dāng)α和γ選擇得足夠大時,對幾乎所有n,u(n)=Gx(n),其中G是整數(shù),但這也不能保證是正確的結(jié)果。
在運動補償?shù)囊曨l編碼器中,例如,過去解碼的幀數(shù)據(jù)用作為用于生成當(dāng)前幀的預(yù)測信息的參考信息。因此,作為編碼的一部分,編碼器生成其自己的經(jīng)解碼的幀,因而編碼器需要計算逆變換。如果應(yīng)用公式u=round(αHTx),則不同處理器中的不同浮點格式和舍入方法會導(dǎo)致不同的結(jié)果。結(jié)果是,在編碼器上的解碼數(shù)據(jù)對解碼器上的解碼數(shù)據(jù)之間將產(chǎn)生偏差(它們具有不同處理器),因為編碼器是基于對幀塊進行預(yù)測/運動信息,而此幀塊越來越少,如解碼器所產(chǎn)生的幀塊那樣,因此每1新幀的圖像越來越差。
解決數(shù)據(jù)偏差的一個辦法是用只具有整數(shù)的矩陣來近似矩陣H,就可消除舍入誤差。如果H行是正交的并具有相同的范數(shù)(平方和),然后接下來其遵循對所有整數(shù)x,可以以整數(shù)運算正確計算u。換言之,當(dāng)直接變換由X=Hx來計算,逆變換由u=HTX來計算時,得出結(jié)果為u=Gx,其中G是整數(shù),等于H中任何行的平方范數(shù)。
對DCT生成整數(shù)近似值的一種方法是使用通用公式Q(k,n)=round(αH(k,n))其中α為換算參數(shù)。
在H.26L視頻壓縮標(biāo)準(zhǔn)中,圖像是由4×4像素塊組成,故在H.26L的DCT公式中N=4。DCT矩陣的結(jié)果等于H=121111cs-s-c1-1-11s-cc-s]]>其中C2cos(π/8)]]>和S2sin(π/8).]]>目前版本H.26L中變換矩陣是設(shè)定α=26取得的,此值計算為Qo=round(26H)=13131313177-7-1713-13-13137-1717-7]]>使用換算參數(shù)值26,Q0行和列相互是正交的(即,任何兩列的內(nèi)積為零),所有行和列具有1個范數(shù)676。事實上,對于α<50時,只有α=2或α=26才能提供具有相等范數(shù)的行的正交矩陣。然而α=2的解決方法所得到的壓縮效果不好,并且更大的α值并不令人滿意,因為計算直接變換的結(jié)果X=Q0x時,所需的計算復(fù)雜性會增加(如,字長)。因而在H.26L中迄今還是選用a=26。
逆變換由x’=Q0X來規(guī)定,故可用整數(shù)運算來計算。按上述規(guī)定,X’=676x,即,重構(gòu)的數(shù)據(jù)x’等于原始數(shù)據(jù)x由整數(shù)增益676可放大(它是Q0中任何行的范數(shù))。
按照本發(fā)明一個方面,提供一種采用整數(shù)近似值的塊變換矩陣,這些近似值是正交的,但具有不同的值,能在編碼和解碼時顯著地減少計算復(fù)雜性。更具體地說,使用α=2.5,生成下列矩陣QDround(2.5H)=111121-1-21-1-111-221]]>注意QD行是相互正交的,當(dāng)它們范數(shù)不同時(行0和行2的范數(shù)等于4;而行1和行3的范數(shù)等于10),如下所述,以一種不明顯增加計算復(fù)雜性的方法進行量化和去量化處理。
回到附圖2,顯示出塊變換編碼器200和塊變換解碼器222,能通過一些類型媒體和/或中間器件220加以連接。眾所周知,編碼器200不需要直接將其輸出用于解碼器222,這樣,圖2中標(biāo)出的線220可虛擬地代表任何媒體或器件,如網(wǎng)絡(luò)電纜、無線傳輸媒體、電話線、存儲器件、路由器和/或它們虛擬的任何組合。
一般說來,編碼器200通過可分的2維變換204將每個N×N輸入像素數(shù)據(jù)202塊進行變換來工作。具體地說,首先由行變換處理206來變換塊中行像素數(shù)據(jù),然后行變換的結(jié)果(圖2中未特別示出)通過列變換處理208變換成結(jié)果變換系數(shù)210。換言之,2維DCT對像素塊各行基本上執(zhí)行1維DCT,接著是,對由1維DCT在行上產(chǎn)生的各列像素塊進行1維DCT。行和列的變換也可以以相反的次序進行,而獲得的結(jié)果相同。
在H.26L中,規(guī)定的變換矩陣形成下列公式,以計算變換系數(shù)A=13a+13b+13c+13dB=17a+7b-7c-17dC=13a-13b-13c+13dD=7a-17b+17c-7d其中,[abcd]在4X4塊中首先代表行像素值,在行變換后,代表這些行變換后數(shù)據(jù)值的列像素值。但在實際中,這些公式可以簡化,DCT矩陣具有遞歸結(jié)構(gòu),可減少所需的乘法和加法的運算次數(shù)。然而,上述矩陣需要至少4次加法和3次乘法來計算各像素的變換系數(shù)。而且,因為每個像素可能是一個帶符號的9位數(shù)值,當(dāng)行和列因子(增益等于范數(shù)676)相乘時,計算要求32位運算,而單獨一次32位運算要花費與多次16位運算相同的時間。當(dāng)這些考慮因素一般在編碼期間并不明顯時,倘若應(yīng)用H.26L規(guī)定的這些矩陣值,在解碼期間還是會產(chǎn)生額外操作和32位運算,因此,開銷就很大。
與H.26L規(guī)定的矩陣相反,使用如上所述的同樣的通用公式表示法,本發(fā)明的塊變換矩陣為QDround(2.5H)=111121-1-21-1-111-22-1]]>它提供下列公式來計算變換系數(shù)A=a+b+c+dB=2a+b-c-2dC=a-b-c+dD=a-2b+2c-d此公式/矩陣可最優(yōu)化工作的部分理由是通過簡單地改變換算中使用的值,使乘法因子基本上在量化階段得以處理,從而替代原來在變換階段中進行各個乘法。結(jié)果,利用此公式的唯一的乘法是乘以2的冪,在處理器中此操作是通過簡單的左移操作來完成的,并不是真正的乘法。以u,v,y和z作為輔助參數(shù),其中“<<1”就是指左移1位(等效于乘以2,但計算更快),上述公式可簡化成下述公式u=a+d;v=b+c;y=b-c;z=a-d;A=u+v;C=u-v;B=y(tǒng)+(z<<1);D=z-(y<<1);通過圖3示出的蝶形結(jié)構(gòu)(其中2點之間的線指示和數(shù),而線上的數(shù)字(幾個-1、2和-2指出乘法因子),查找這些變換系數(shù)實際上僅需要對每個給定的像素進行4次加法和1次移位,它與H.26L規(guī)定的因子相比,可提供顯著的性能改進。因為系數(shù)值更低,所有變換操作都可在16位運算中完成(帶有9位像素數(shù)據(jù))。特別是,使用上述規(guī)定的變換矩陣QD,在2維2-D變換后,最大信號放大倍數(shù)為36。由此,2維變換后輸出系數(shù)比輸入要延伸6位。因此,對9位的輸入來說,輸出系數(shù)具有15位的動態(tài)范圍,也就是2維直接變換可用16位運算來計算。而且,如下所述,由于操作次數(shù)大大減少,而每次操作只需16位運算所帶來的性能提升在采用逆變換進行解碼期間,可再次重現(xiàn)性能提高,這就大大提高了解碼性能。
一旦算出變換系數(shù)210,通過對此值換算和舍入它們至它們最近的整數(shù)對塊系數(shù)210進行量化。這由圖2中的量化過程212示出,它從量化參數(shù)214的量化值中進行選擇,將變換系數(shù)210換算為量化系數(shù)216。如下所述,因為在改進的矩陣中不是有1個范數(shù),而是3個范數(shù),3種量化表Q0,Q1和Q2包括這些值,這取決于要量化的變換系數(shù)在塊中的位置。
換算和舍入的量化公式如下,但它必須用32位精度加以計算L=[K×A(QP,r)+fX]>>20其中L是量化系數(shù),K是變換系數(shù),A(QP,r)是由量化參數(shù)QP和r所索引的換算因子,其中r識別應(yīng)用哪張表(Q0,Q1或Q2),fX在
×220范圍內(nèi)(fX具有和K相同的符號),而>>20是指右移20位(除以1,048,576),以使數(shù)按比例下降。量化過程因此引入誤差。注意,雖然應(yīng)用32位運算進行量化,但這僅是編碼所需,當(dāng)解碼時就沒有那么重要(其中去量化只需要16位精度,如下所述)。
索引r可從3張量化表Q0,Q1,Q3選出1張用于根據(jù)塊中系數(shù)k的位置來調(diào)整3個不同的范數(shù)如果系數(shù)來自下列位置{(0,0),(0,1),(1,0),(1,1)}中之一,則r=0(使用Q0表);如果系數(shù)來自下列位置{(0,2),(0.3),(1,2),(1,3),(2,0),(2,1),(3,0),(3,1)}中之一,則r=1,使用Q1表;如果系數(shù)來自下列位置{(2,2),(2,3),(3,2),(3,3)}中之一,則r=2,使用Q2表。
在右移20位后,各個經(jīng)量化結(jié)果L擬合到16位整數(shù)中。
在示范實施例中,根據(jù)下列表格,換算因子A(QP,r)取決于量化參數(shù)QP和系數(shù)位置組r
A(QP=0..31,r=0)={104858,93418,83226,74146,66056,58849,52429,46709,41613,37073,33028,29425,26214,23354,20806,18536,16514,14712,13107,11677,10403,9268,8257,7356,6554,5839,5202,4634,4129,3678,3277,2919};A(QP=0..31,r=1)={66318,59082,52636,46894,41778,37220,33159,29541,26318,23447,20889,18610,16579,14771,13159,11723,10444,9305,8290,7385,6580,5862,5222,4652,4145,3693,3290,2931,2611,2326,2072,1846};A(QP=0..31,r=2)={41943,37367,33290,29658,26422,23540,20972,18684,16645,14829,13211,11770,10486,9342,8323,7415,6606,5885,5243,4671,4161,3707,3303,2942,2621,2335,2081,1854,1651,1471,1311,1168}.
上述特定值是設(shè)計用來滿足H.26L中設(shè)計技術(shù)規(guī)范,量化步驟規(guī)模必須在表索引中每6次遞增時,加倍。對于其他視頻或靜止圖像編碼應(yīng)用,要考慮所需的保真度增量,設(shè)計另外的量化表。注意,為了將量化表存儲于編碼器中,需要有額外空間來存儲3張表,而不是1張表,但是該額外空間量僅為64字節(jié),故微不足道。
再看圖2,經(jīng)量化過程后,量化系數(shù)216饋至熵編碼器218,進一步減少塊編碼時所需的位數(shù)。熵編碼器(和解碼器)是大家熟知的,故這兒不再累述,因為本發(fā)明操作前,基本上與熵編碼無關(guān),而操作后基本上也與熵解碼無關(guān)。
考慮在塊變換解碼器222中解碼時,有時不論如何傳遞,熵編碼的輸出位饋至熵解碼器224作為輸入位。一般說來,這種熵解碼器是已知的,因此在其他可能的操作中,它足以說明熵解碼器224對給定的塊再生量化系數(shù)226。注意,一般編碼和解碼是不能有損的,即饋至熵編碼器218的量化系數(shù)216與由熵解碼器224所產(chǎn)生的量化系數(shù)226是一致的。
一般說來,塊變換解碼器222反映塊變換編碼器200的操作,雖然如下所述,且為了和本發(fā)明一致,提供一種改進的逆變換矩陣,能應(yīng)用16位運算于整個解碼過程中,這樣,大大簡化了解碼器的計算復(fù)雜性。
一旦量化系數(shù)226從熵解碼器224中取出,每個量化系數(shù)L由去量化處理228轉(zhuǎn)換為重構(gòu)(去量化)值K’,去量化處理執(zhí)行下述公式K’=L×B(QP,r)其中換算因子B取決于編碼時使用的QP索引,而r通過從3張表D0,D1或D2中選用的1張表的1個參數(shù)來決定去量化參數(shù)230(以調(diào)整3個范數(shù))。注意,如上面有關(guān)量化所述,r能從塊中正在去量化的系數(shù)的位置中推導(dǎo)出來,雖然從編碼器中送出r值是可行的(這能減少解碼器上計算的復(fù)雜性),但這要求對每個系數(shù)至少要多送出2位,以便標(biāo)識r。
這樣,換算因子B(QP,r)取決于編碼時所用的QP量化參數(shù)索引和系數(shù)位置組r。在示范實施中,根據(jù)下表規(guī)定相關(guān)性B(QP=0..31,r=0)={80,90,101,113,127,143,160,180,202,226,254,285,320,359,403,453,508,570,640,718,806,905,1016,1140,1280,1437,1613,1810,2032,2281,2560,2874};B(QP=0..31,r=1)={101,114,127,143,161,180,202,227,255,286,321,361,405,454,510,572,643,721,810,909,1020,1145,1285,1443,1619,1817,2040,2290,2570,2885,3239,3635};B(QP=0..31,r=2)={128,144,161,181,203,228,256,287,323,362,406,456,512,575,645,724,813,912,1024,1149,1290,1448,1625,1825,2048,2299,2580,2896,3252,3650,4095,4596}.
當(dāng)使用編碼表時,上述的特定值是設(shè)計滿足H.26L的設(shè)計技術(shù)規(guī)范的,即量化步驟的規(guī)模必須是索引表中每增量為6就加倍。對其他視頻或靜止圖像編碼應(yīng)用,考慮到所需保真度的增量,可設(shè)計其他的量化表。
可以理解的是,雖然這些換算值中的每個值都足夠低,以保證解碼器只需要16位運算,但去量化公式又使系數(shù)換算回成為較大值。必須注意的是,因為1個表中的各項與其他2個表中相應(yīng)的QP索引的項在數(shù)學(xué)上是相關(guān)的(基于范數(shù)),就可能換個辦法,根據(jù)r值作出適當(dāng)?shù)臄?shù)學(xué)調(diào)整來只使用1張表的QP值,而不是用3張表。然而,在小表中查找更為有效,并且以每個項2字節(jié)空間來存儲3張表的32項代替(H.26L變換規(guī)定所需的)每項以4位空間來存儲1張表的32項所需的字節(jié)數(shù)是64個附加字節(jié),這在現(xiàn)代計算設(shè)備中是可忽略的,特別考慮到由去量化生成的變換系數(shù)擬合到16位字中,而不是在32位字中,因而可減少所需的存儲器總量。
圖2中又示出,一旦經(jīng)量化系數(shù)226通過上述公式和表進行去量化后,就產(chǎn)生重構(gòu)變換系數(shù)232的4×4矩陣。根據(jù)這些變換系數(shù)232,通過將它們饋至分別由列和行逆變換處理236,238組成的2維逆變換處理234中去,就能生成重構(gòu)像素。
為了與本發(fā)明相符,不采用平常所用的逆變換QI=QDT,而是允許16位去量化和逆變換計算,本發(fā)明規(guī)定下列逆變換矩陣供使用
注意,QI諸列是相互正交的,但它們范數(shù)是不同的。然而這可通過在選擇去量化參數(shù)中所用的“r”值來處理,如上所述。而且,注意由QD生成QI時,QD是轉(zhuǎn)置的,通過列1和列3乘以1/2。再之,在D0、D1和D2表中已經(jīng)存在的QP值已為此而事先加以調(diào)整,故不需要任何附加計算復(fù)雜性以進行補償。而且,使用此矩陣在計算逆變換時必須進行的唯一“乘法”是乘以1/2,這實際上是通過高效率的右移操作來完成的。注意,這種不精確的除法引起的少量噪聲基本上對速率失真性能沒有影響。
當(dāng)QI如上規(guī)定,其最大增益等于4。因此,2維逆變換過程的動態(tài)范圍只擴展4位,故可在16位運算中計算。
圖2示出的列逆變換處理236和行逆變換處理238(在列逆變換處理的結(jié)果上操作)生成輸出像素數(shù)據(jù)240。至此,通過使用上述逆變換矩陣和調(diào)用[A B C D]為特定的逆變換的行或列,相應(yīng)的逆變換值[a’b’c’d’]由下式算出u=A+C;v=A-C;y=(B>>1)-D;z=(D>>1)+B;a′=u+z;b′=v+y;c′=v-y;d′=u-z;其中,u,v,y和z是輔助變量,而>>1是指右移1位(等效于乘以1/2)。相似于編碼,通過圖4所示的蝶形結(jié)構(gòu),這些公式實際上對每個系數(shù)已減少至4次加法操作和1次移位操作,都在16位運算中進行。最后,逆變換處理234(圖2)以2-7因子來換算重構(gòu)的像素值(通過1次7位右移操作來完成)。
在7位移位后,重構(gòu)的像素值具有9位范圍,所以逆變換可在16位運算中計算。上述設(shè)置的去量化表D0、D1和D2是這樣的,即去量化公式在以16位運算進行計算時不會溢出。下述表格總結(jié)了使用本發(fā)明變換和逆變換在計算上與H.26L所規(guī)定的操作相比存在的一些優(yōu)點
現(xiàn)在很好理解,使用本發(fā)明所帶來的這種節(jié)省是很顯著的,特別在16位的處理器上。例如,實際上,一種典型的16位PDA處理器通過應(yīng)用本發(fā)明,可以在解碼方面具有速度提高1倍左右的改善。
而且,已經(jīng)對變換/逆變換對質(zhì)量和壓縮的影響作了測試。編碼增益的結(jié)果(一般定義為信噪比提高)說明使用本發(fā)明的變換方式與H26L變換相比,以測試數(shù)據(jù)的結(jié)果來看,損失僅為0.01dB,這是可以忽略的,事實上有可能要比實際的視頻信號信息、的損失小得多,如像素預(yù)測誤差。而且,相對于H.26L規(guī)定的變換,在32個量化參數(shù)的每個參數(shù)上作了總的性能測試,結(jié)果只是±0.5%范圍的差異,而平均值又十分接近零,因此表明本發(fā)明的變換和H.26L規(guī)定的變換一樣好。
從上面詳細描述來看,現(xiàn)提供一種改進的變換和逆變換矩陣分別用于圖像或視頻的編碼和解碼,比起其他現(xiàn)有的變換來說,可大大地減少計算復(fù)雜性,并對壓縮和質(zhì)量沒有不利影響。不需要變換的乘法,但仍能取得正確的結(jié)果,因為除了在變換和逆變換處理中移位操作外,量化和去量化參數(shù)值都對這些乘法因子進行補償。由于使用此參數(shù)值,編碼時變換操作和解碼時去量化和變換操作都能在16位運算中完成(像素數(shù)據(jù)由9位或更少位來表示)。
本發(fā)明可以有各種修改和其他結(jié)構(gòu),在圖中示出說明實例例,并在上面作了詳述。然而,應(yīng)該理解的是,并不是要將發(fā)明局限于所揭示的具體形式內(nèi),相反,本發(fā)明是要包括包含在本發(fā)明的精神和范圍內(nèi)的所有修改、替代結(jié)構(gòu)和同等物。
權(quán)利要求
1.一種對視頻或圖像信息進行解碼的方法,其特征在于,該方法包括接收經(jīng)量化的變換系數(shù);把接收的經(jīng)量化的變換系數(shù)去量化轉(zhuǎn)換為去量化的變換系數(shù);以及把逆變換處理應(yīng)用于該去量化的變換系數(shù),其中該逆變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的逆變換計算;u=A+C;v=A-C;y=(B>>1)-D;z=(D>>1)+B;a′=u+z;b′=v+y;c′=v-y;d′=u-z;其中A、B、C和D代表要被逆變換的值,u、v、y和z代表輔助變量,而a’、b’、c’和d’代表經(jīng)逆變換的值。
2.如權(quán)利要求1所述的方法,其特征在于,所述逆變換處理包括列和行的逆變換處理。
3.如權(quán)利要求1所述的方法,其特征在于,在所述逆變換處理的第一通道,要被逆變換的值是去量化的變換系數(shù),并且其中,在所述逆變換處理的第二通道,要被逆變換的值是來自第一通道的經(jīng)逆變換的值。
4.如權(quán)利要求1所述的方法,其特征在于,使用蝶形結(jié)構(gòu)來實現(xiàn)所述逆變換處理。
5.如權(quán)利要求1所述的方法,其特征在于,經(jīng)量化的變換系數(shù)是邏輯地排列于塊中,其中所述去量化通過從多組的換算因子中選擇的換算因子來換算經(jīng)量化的變換系數(shù),并且其中該選擇是基于塊內(nèi)的相對經(jīng)量化的變換系數(shù)位置和量化參數(shù)。
6.如權(quán)利要求1所述的方法,其特征在于,所述去量化的變換系數(shù)是針對4×4的塊的重構(gòu)的預(yù)測錯誤信息。
7.如權(quán)利要求1所述的方法,其特征在于,所述去量化的變換系數(shù)是針對4×4的塊的重構(gòu)的像素值。
8.如權(quán)利要求1所述的方法,其特征在于,所述逆變換處理的每個4×4的信息的塊,包含16位的右移操作,多個加法操作和多個減法操作。
9.一種對視頻或圖像信息進行編碼的方法,其特征在于,該方法包括應(yīng)用對信息的變換處理來產(chǎn)生變換系數(shù),其中所述變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的變換計算u=a+d;v=b+c;y=b-c;z=a-d;A=u+v;C=u-v;B=y(tǒng)+(z<<1);D=z-(y<<1);其中a、b、c和d代表要被變換的值,u、v、y和z代表輔助變量,而A、B、C和D代表經(jīng)變換的值,以及把變換系數(shù)量化為經(jīng)量化的變換系數(shù)。
10.如權(quán)利要求9所述的方法,其特征在于,所述變換處理包括列和行的變換處理。
11.如權(quán)利要求9所述的方法,其特征在于,在所述變換處理的第一通道,要被變換的值是信息,并且其中,在所述變換處理的第二通道,要被變換的值是來自第一通道的經(jīng)變換的值。
12.如權(quán)利要求9所述的方法,其特征在于,使用蝶形結(jié)構(gòu)來實現(xiàn)所述變換處理。
13.如權(quán)利要求9所述的方法,其特征在于,所述變換系數(shù)是邏輯地排列于塊中,其中所述量化通過從多組的換算因子中選擇的換算因子來換算變換系數(shù),并且其中該選擇是基于塊內(nèi)的相對變換系數(shù)位置和量化參數(shù)。
14.如權(quán)利要求9所述的方法,其特征在于,所述信息包括為4×4的塊的預(yù)測錯誤信息。
15.如權(quán)利要求9所述的方法,其特征在于,所述信息為4×4的塊的像素值。
16.如權(quán)利要求9所述的方法,其特征在于,所述變換處理的每個4×4的信息的塊,包含16位的左移操作,多個加法操作和多個減法操作。
17.一種視頻解碼器,其特征在于,包含一種裝置,用于把經(jīng)量化的變換系數(shù)去量化轉(zhuǎn)換為去量化的變換系數(shù);以及一種裝置,用于把逆變換處理應(yīng)用于所述去量化的變換系數(shù),其中所述逆變換處理包括產(chǎn)生由下面的等式給出的結(jié)果的逆變換計算u=A+C;v=A-C;y=(B>>1)-D;z=(D>>1)+B;a′=u+z;b′=v+y;c′=v-y;d′=u-z;其中A、B、C和D代表要被逆變換的值,u、v、y和z代表輔助變量,而a’、b’、c’和d’代表經(jīng)逆變換的值。
18.如權(quán)利要求17所述的解碼器,其特征在于,所述經(jīng)量化的變換系數(shù)是邏輯地排列于塊中,其中所述去量化通過從多組的換算因子中選擇的換算因子來換算經(jīng)量化的變換系數(shù),并且其中該選擇是基于塊內(nèi)的相對經(jīng)量化的變換系數(shù)位置和量化參數(shù)。
19.如權(quán)利要求17所述的解碼器,其特征在于,在所述逆變換處理的第一通道,要被逆變換的值是去量化的變換系數(shù),并且其中,在所述逆變換處理的第二通道,要被逆變換的值是來自第一通道的經(jīng)逆變換的值。
20.如權(quán)利要求19所述的解碼器,其特征在于,所述去量化的變換系數(shù)針對4×4的塊的重構(gòu)的預(yù)測錯誤信息。
全文摘要
圖像或視頻編碼和解碼用的一種改進方法和塊變換,其中變換和逆變換矩陣是這樣確定的,即編碼和解碼時顯著地減少計算復(fù)雜性。如,解碼期間在將去量化變換系數(shù)轉(zhuǎn)為輸出像素信息的2維逆變換中,每個系數(shù)變換只需4次加法和1次移位操作,都在16位運算中進行。因為通過使用根據(jù)各系數(shù)位置從3張表中選用的1張表,編碼期間的量化和解碼期間的去量化(16位)具有對其他變換乘法因子已作補償?shù)膮?shù)值(除了在變換和逆變換處理中可由移位操作完成的這些2的冪的乘法操作之外(如,2或1/2)),所以變換可提供正確的結(jié)果。與其他已知的變換相比,其計算復(fù)雜性大大減少,并對壓縮和質(zhì)量沒有不利影響。
文檔編號H03M7/30GK1764277SQ200510119220
公開日2006年4月26日 申請日期2002年9月18日 優(yōu)先權(quán)日2001年9月18日
發(fā)明者H·S·馬爾渥 申請人:微軟公司