專利名稱::基于紋理水平的量化調(diào)整的制作方法基于紋理水平的量化調(diào)整背景隨著DVD的日益流行,經(jīng)因特網(wǎng)、和數(shù)碼相機、數(shù)字媒體傳遞音樂也變得愈發(fā)平常。工程師使用各種技術(shù)在維持質(zhì)量的同時有效處理數(shù)字音頻、視頻和圖像。為了理解這些技術(shù),理解音頻、視頻和圖像信息是如何在計算機內(nèi)表示和處理是有幫助的。I.計算機中媒體信息的表示計算機將媒體信息作為表示該信息的一系列數(shù)字來處理。例如,單個數(shù)字可以表示圖片的每個基本小區(qū)域的亮度強度或諸如紅色、綠色或藍色等色彩分量的強度,使得圖片的數(shù)字表示由這些數(shù)字的一個或多個陣列組成。每個這樣的數(shù)字可以被稱為一個^^本。對于彩色圖像,常規(guī)上用一個以上的樣本來表示每個基本區(qū)域的色彩,且通常使用三個樣本。用于一基本區(qū)域的這些樣本的集合可被稱之為像素,其中單詞"像素"指的是"圖片元素"這一概念的縮寫。例如,一個像素可以由代表表示該基本區(qū)域所必需的紅光、綠光和藍光強度的三個樣本組成。這一像素類型被稱為RGB像素。若干因素影響媒體信息的質(zhì)量,包括樣本深度、分辨率和幀速率(用于視頻)。樣本深度是指示能夠用來表示一樣本的數(shù)字范圍的通常以比特為單位的測得的特性。當用于該樣本的可能值越多,質(zhì)量就越高,因為該數(shù)字能夠捕捉更精細的強度變化和/或更大的值范圍。分辨率通常指的是某一持續(xù)時間(對于音頻)或空間(對于圖像或單獨的視頻圖片)內(nèi)的樣本數(shù)。分辨率更高的圖像往往比其他圖像看上去更明快,并且包含更多可辨別的有用細節(jié)。幀速率是視頻的時間分辨率的常用術(shù)語。較高幀速率的視頻往往比其他視頻更能模擬自然物體的平滑運動,并且也可以類似地認為其在時間維度上包含更多細節(jié)。鑒于所有這些因素,如下表1所示,對高質(zhì)量的折衷是存儲和傳輸信息的表示樣本深度、分辨率和幀速率所需的比特率方面的成本<table>tableseeoriginaldocumentpage5</column></row><table><table>tableseeoriginaldocumentpage6</column></row><table>表l:用于原始視頻的不同質(zhì)量等級的比特率盡管有存儲和發(fā)送高質(zhì)量視頻(諸如HDTV)所需的高比特率,但公司和消費者仍愈發(fā)依賴計算機來創(chuàng)建、分發(fā)和回放高質(zhì)量內(nèi)容。為此,工程師使用壓縮(也稱為源譯碼或源編碼)來降低數(shù)字媒體的比特率。壓縮通過將信息轉(zhuǎn)換成較低比特率的形式來降低存儲和傳送信息的成本。壓縮可以是無損的,其中視頻質(zhì)量不受損害,但是比特率的降低受到視頻復(fù)雜度的限制?;蛘?,壓縮可以是有損的,其中視頻質(zhì)量受到損害,但是比特率的降低更顯著。解壓(也被稱為解碼)從已壓縮形式中重構(gòu)一種版本的原始信息。"編解碼器"是編碼器/解碼器系統(tǒng)。一般而言,視頻壓縮技術(shù)包括"幀內(nèi)"壓縮和"幀間"或預(yù)測壓縮。對于視頻幀,幀內(nèi)壓縮技術(shù)壓縮個別的幀,通常稱為I幀或關(guān)鍵幀。幀間壓縮技術(shù)參考前導(dǎo)和/或后續(xù)幀來壓縮各幀,且?guī)g壓縮的幀通常被稱為預(yù)測幀、P幀或B幀。II.WindowsMediaVideo版本8和9中的幀間和幀內(nèi)壓縮微軟公司的WindowsMediaVideo(Windows媒體視頻)版本8["WMV8"]包括視頻編碼器和視頻解碼器。WMV8編碼器使用幀內(nèi)和幀間壓縮,而WMV8解碼器使用幀內(nèi)和幀間解壓。WindowsMediaVideo版本9["WMV9"]對許多操作使用類似的體系結(jié)構(gòu)。A.幀內(nèi)壓縮圖1示出了WMV8編碼器中關(guān)鍵幀中的樣本塊105的基于塊的幀內(nèi)壓縮100。塊是一組樣本,例如,8x8的樣本排列。WMV8編碼器將關(guān)鍵視頻幀拆分成8x8的塊并向諸如塊105等各個塊應(yīng)用8x8的離散余弦變換["DCT"]llO。DCT是將8x8的樣本塊(空間信息)轉(zhuǎn)換成8x8的DCT系數(shù)塊115的一類頻率變換,該系數(shù)塊是頻率信息。DCT操作本身是無損或接近無損的。然而,與原始樣本值相比,DCT系數(shù)對于編碼器的壓縮更高效,因為大多數(shù)重要信息集中在低頻系數(shù)中(常規(guī)上,塊115的左上角),并且許多高頻系數(shù)(常規(guī)上,塊115的右下角)具有零或接近零的值。編碼器然后量化(120)該DCT系數(shù),得到8X8的經(jīng)量化的DCT系數(shù)塊125。量化是有損的。由于低頻DCT系數(shù)往往具有更高的值,因此量化通常導(dǎo)致精度的損失,但是不會完全損失關(guān)于系數(shù)的信息。另一方面,由于高頻DCT系數(shù)往往具有零或接近零的值,因此高頻系數(shù)的量化通常導(dǎo)致連續(xù)的零值區(qū)域。另外,在某些情況中,高頻DCT系數(shù)比低頻DCT系數(shù)更粗略地量化,導(dǎo)致對于高頻DCT系數(shù)的更大精度/信息損失。編碼器然后準備8x8的量化DCT系數(shù)塊125以供熵編碼,這是一種形式的無損壓縮。熵編碼的確切類型可以取決于一系數(shù)是DC系數(shù)(最低頻率)、頂行或左列中的AC系數(shù)(其它頻率)還是另一AC系數(shù)而變化。編碼器將DC系數(shù)126編碼為與相鄰的8x8塊的DC系數(shù)136的差分,該相鄰塊是正被編碼的塊的先前己編碼的鄰居(例如,頂部或左邊)。(圖1示出了位于幀中正被編碼的塊的左邊的鄰居塊135)。編碼器對該差分進行熵編碼140。熵編碼器可以將左列或頂行的AC系數(shù)編碼為與相鄰的8x8塊的對應(yīng)左列或頂行的差分。這是AC系數(shù)預(yù)測的一個示例。圖l示出了被編碼為與相鄰(實際上在左邊)塊135的左列137的差分147的左列127的AC系數(shù)。該差分編碼增加了差分系數(shù)具有零值的幾率。其余AC系數(shù)來自量化的DCT系數(shù)塊125。編碼器將8x8的量化的ACDCT系數(shù)塊145掃描150到一維陣列155中,然后使用行程長度編碼160的變體來對掃描的AC系數(shù)進行熵編碼。編碼器從一個或多個"行程/等級/最后"表165中選擇熵碼,并輸出該熵碼。B.幀間壓縮WMV8編碼器中的幀間壓縮使用基于塊的經(jīng)運動補償?shù)念A(yù)測編碼,之后是殘留誤差的變換編碼。圖2和3示出了用于WMV8編碼器中的預(yù)測幀的基于塊的幀間壓縮。具體地,圖2示出了用于預(yù)測幀210的運動估計,而圖3示出了用于預(yù)測幀的經(jīng)運動補償?shù)膲K的預(yù)測殘差的壓縮。例如,在圖2中,WMV8編碼器為預(yù)測幀210中的宏塊115計算運動矢量。為計算運動矢量,編碼器在參考幀230的搜索區(qū)域235中進行搜索。在搜索區(qū)域235中,編碼器將來自預(yù)測幀110的宏塊215與各種候選宏塊進行比較,以找出作為良好匹配的候選宏塊。編碼器輸出指定匹配宏塊的運動矢量(經(jīng)熵編碼的)的信息。該運動矢量相對于一運動損耗量預(yù)測值來進行差分編碼。在通過將差分加到運動矢量預(yù)測值來重構(gòu)運動矢量之后,解碼器使用該運動矢量,利用來自參考幀230的信息來為宏塊215計算預(yù)測宏塊,參考幀130是在編碼器和解碼器處可用的先前重構(gòu)的幀。預(yù)測很少是完美的,因此編碼器通常對預(yù)測宏塊和宏塊215本身之間的像素差塊(也稱為誤差或殘差塊)進行編碼。圖3示出了WMV8編碼器中的誤差塊235的計算和編碼的示例。誤差塊335是預(yù)測的塊315和原始的當前塊325之差。編碼器向誤差塊335應(yīng)用DCT340,得到8X8的系數(shù)塊345。編碼器然后量化(350)該DCT系數(shù),得到8X8的經(jīng)量化的DCT系數(shù)塊355。編碼器將8X8的塊355掃描(360)成一維數(shù)組365,使得系數(shù)一般從最低頻率到最高頻率排序。編碼器使用行程長度編碼370的變體對掃描的系數(shù)進行熵編碼。編碼器從一個或多個行程/等級/最后表375中選擇熵碼,并輸出該熵碼。圖4示出了用于幀間編碼塊的對應(yīng)解碼過程400的示例。在圖4的概述中,解碼器使用可變長度解碼410,利用一個或多個行程/級別/最后表415和行程長度解碼420,對表示預(yù)測殘差的經(jīng)熵編碼的信息進行解碼(410、420)。解碼器將儲存經(jīng)熵編碼的信息的一維數(shù)組425反掃描(430)成二維塊435。解碼器對該數(shù)據(jù)進行反量化和反DCT(共同在440處),得到重構(gòu)的誤差塊445。在獨立的運動補償路徑中,解碼器對從參考幀的偏移使用運動矢量信息455計算預(yù)測塊465。解碼器將預(yù)測塊465與重構(gòu)的誤差塊445組合470,以形成重構(gòu)塊475。編碼器也執(zhí)行反量化、反DCT、運動補償和組合以重構(gòu)幀以便用作參考幀。III.有損壓縮和量化上節(jié)提到了作為一種用于有損壓縮的機制的量化,以及也稱為無損壓縮的熵編碼。無損壓縮通過從信息中移除冗余來降低信息的比特率,而在保真度中沒有任何減小。例如,全部都完全是相同的紅色著色的一系列io個連貫的像素可被表示為用于該特定的紅色著色的代碼,并且數(shù)量10被表示為連貫像素的"行程長度",且該系列可以通過從用于紅色著色的代碼以及所指示的具有該紅色著色的連貫像素的數(shù)量(10)進行解壓來完美地重構(gòu)。無損壓縮技術(shù)在沒有質(zhì)量代價的前提下降低比特率,但是只能將比特率降低到某一程度。比特率的減小受到輸入數(shù)據(jù)的統(tǒng)計特性中的內(nèi)在可變性數(shù)量的限制,該可變性被稱為源熵。相反,采用有損壓縮,質(zhì)量在某種程度上受損,但是可用的比特率減小更為顯著。例如,各自是略微不同的紅色著色的一系列io個像素可以被近似為具有完全相同的特定近似紅色色彩的10個像素。有損壓縮技術(shù)可用于比無損壓縮技術(shù)更顯著地降低比特率,但是某些比特率的降低是通過降低質(zhì)量來實現(xiàn)的,并且損失的質(zhì)量不能被完全恢復(fù)。有損壓縮通常結(jié)合無損壓縮來使用一在其中有損壓縮建立信息的近似而無損壓縮技術(shù)被用來表示該近似的系統(tǒng)設(shè)計中。例如,各自是略微不同的紅色著色的該一系列IO個像素可被表示為用于一個特定的紅色著色的代碼,并且數(shù)量10被表示為連貫像素的行程長度。一般而言,編碼器改變量化以在質(zhì)量和比特率之間進行折衷。較粗略的量化導(dǎo)致更大的質(zhì)量降低但是允許更大的比特率減小。在解壓時,原始系列將被重構(gòu)為具有相同的近似的紅色色彩的io個像素。根據(jù)一個可能的定義,量化是用于通常用于有損壓縮的近似不可逆映射函數(shù)的術(shù)語,其中有一組指定的可能輸出值,并且該組可能的輸出值中的每一成員具有導(dǎo)致對該特定輸出值的選擇的一組相關(guān)聯(lián)的輸入值。已經(jīng)開發(fā)了各種量化技術(shù),包括標量或矢量、均勻或非均勻、以及自適應(yīng)或非自適應(yīng)量化。A.標量量化器根據(jù)一種可能的定義,標量量化器是輸入值;c到經(jīng)量化的值2l)c](有時稱為重構(gòu)值)的近似函數(shù)映射x》2[x]。圖5示出了用于標量量化器的"階梯"I/O函數(shù)500。水平軸是用于實數(shù)輸入變量;c的數(shù)字線,而垂直軸指示了相應(yīng)的量化值2[x]。數(shù)字線按諸如閾值510等閾值劃分。一對相鄰閾值之間的給定范圍中的每一:c值被分配相同的量化值2[x]。例如,范圍520中的每一x值被分配相同的量化值530。(在閾值處,兩個可能的量化值之一被分配給輸入x,取決于系統(tǒng))??傮w上,量化值^M展示了一離散的階梯模式。映射沿著數(shù)字線繼續(xù)的距離取決于系統(tǒng),通常在有限個數(shù)的閾值之后結(jié)束。閾值在數(shù)字線上的放置可以是均勻間隔(如圖5所示)或非均勻間隔的。標量量化器可被分解成兩個截然不同的級。第一級是分類器級,其中分類器函數(shù)映射X今」M將輸入X映射到通常為整數(shù)值的量化索引J[X]。本質(zhì)上,分類器對輸入數(shù)字行或數(shù)據(jù)集分段。圖6A示出了用于標量量化器的通用分類器600和閾值。如在圖5中一樣,用于實數(shù)變量;c的數(shù)字線按照諸如閾值610等閾值來分段。諸如范圍620等給定范圍中的每一x值被分配相同的量化值g[x]。圖6B示出了用于標量量化器的分類器650和閾值的數(shù)值示例。在第二級中,重構(gòu)器函數(shù)映射&》/閱將每一量化索引a映射到重構(gòu)值P[W。本質(zhì)上,重構(gòu)器設(shè)置具有相對于輸入數(shù)字線的各段的特定高度的階(或選擇數(shù)據(jù)集值的一個子集)以便重構(gòu)由分類器確定的每一區(qū)域。重構(gòu)器函數(shù)映射例如可使用査找表來實現(xiàn)??傮w上,分類器涉及如下重構(gòu)器(l)在常見的使用中,術(shù)語"量化"通常用于描述在編碼期間執(zhí)行的分類器級。術(shù)語"反量化"類似地用于描述無論在編碼還是解碼期間執(zhí)行的重構(gòu)器級。通過使用這一量化器而引入的失真可以用基于差的失真度量"0c-2M)來計算。通常,這一失真度量具有《;c-2M)隨著;c-^M偏離零而增加的性質(zhì);并且通常每一重構(gòu)值位于對應(yīng)的分類區(qū)域的范圍之內(nèi),使得由函數(shù)方程2[x]=x形成的直線將穿過階梯圖(如圖5所示)的每一階,并且因此g[2M]通常等于2M。一般而言,如果對于給定的輸出比特率,一量化器與其它量化器相比導(dǎo)致較低的平均失真值,則該量化器被認為在碼率-失真方面是較好的。更正式地,如果對于源隨機變量%,失真度量的期望值(即,平均或統(tǒng)計均值)<formula>formulaseeoriginaldocumentpage10</formula>對于」[;n的相等或更低的熵h較低,則一量化器被認為較好。最常用的失真度量是平方誤差失真度量,對于該度量《lx-;;l)=l;c-別2。當使用平方誤差失真度量時,失真度量的期望值(^)被稱為均方誤差。B,死區(qū)+均勻閾值量化器非均勻量化器具有對所有分類器區(qū)域非均勻地間隔的閾值。根據(jù)一種可能的定義,死區(qū)加均勻閾值量化器["dz+utq"]是具有對除了包含零輸入值的區(qū)域(稱為死區(qū)["DZ"])之外的所有分類器區(qū)域都具有均勻間隔的閾值的量化器。在一般的意義上,DZ+UTQ是非均勻量化器,因為DZ的大小不同于其它分類器區(qū)域的大小。DZ+UTQ具有可基于兩個參數(shù)來表達的分類器索引映射規(guī)則x+^M。圖7示出了用于DZ+UTQ的階梯I/O函數(shù)700,而圖8A示出了用于DZ+UTQ的通用分類器800和閾值。大于0的參數(shù)s指示用于除了DZ之外的所有階的步長。在數(shù)學(xué)上,z^Q,對所有^等于"大于或等于O的參數(shù)z指示DZ大小與其它階的大小之比。在數(shù)學(xué)上,&=z'\在圖8A中,z為2,因此DZ的寬度是其它分類區(qū)的兩倍。用于DZ+UTQ的索引映射規(guī)則x—j[x]可被表達為<formula>formulaseeoriginaldocumentpage11</formula>(2),其中L'」表示小于或等于自變量的最小整數(shù),并且其中sign(;c)是定義如下的函數(shù):<formula>formulaseeoriginaldocumentpage11</formula>(3).圖8B示出了其中s-l且z=2的用于DZ+UTQ的分類器850和閾值的數(shù)值示例。圖5、6A和6B示出了其中z=1的特殊情況的DZ+UTQ。UTQ形式的量化器對于各種統(tǒng)計源都具有良好的性能。特別地,DZ+UTQ形式對于被稱為拉普拉斯源的統(tǒng)計隨機變量源是最優(yōu)的。在某些系統(tǒng)設(shè)計(未示出)中,可能需要附加的考慮來完全表征DZ+UTQ分類規(guī)則。出于實踐原因,可能需要將可從分類函數(shù)J[;c]所得的值的范圍限于某一合理的有限范圍。該限制被稱為限幅。例如,在某些這樣的系統(tǒng)中,分類規(guī)則可以更精確地被定義為<formula>formulaseeoriginaldocumentpage11</formula>(4),其中g(shù)是對」M的絕對值的限制??梢允褂貌煌闹貥?gòu)規(guī)則來對每一量化索引確定重構(gòu)值。僅集中于實現(xiàn)互操作性的標準和產(chǎn)品規(guī)范通常指定重構(gòu)值而不必指定分類規(guī)則。換言之,某些規(guī)范可定義函數(shù)映射&》/W而不定義函數(shù)映射x今」[x]。這允許被構(gòu)建為遵守該標準/規(guī)范的解碼器正確地重構(gòu)信息。相反,編碼器通常被給予以它們希望的任何方式改變分類器的自由,而同時仍遵守該標準/規(guī)范。已經(jīng)開發(fā)了用于調(diào)整量化閾值的眾多系統(tǒng)。許多標準和產(chǎn)品出于簡明的目的指定了對應(yīng)于典型的中點重構(gòu)規(guī)則(例如,對于典型的簡單分類規(guī)則)的重構(gòu)值。然而,對于分類,閾值實際上可被調(diào)整以使某些輸入值被映射到更常見(且因此有更低比特率)的索引,這使得重構(gòu)值更接近最優(yōu)。在許多系統(tǒng)中,量化的范圍是按照量化步長大小來測量的。較粗略的量化使用更大的量化步長,這對應(yīng)于更寬的輸入值范圍。較精細的量化使用較小的量化步長。通常,出于信令和重構(gòu)的目的,量化步長被參數(shù)化為最小量化步長的倍數(shù)。c.量化偽像如上所述,有損壓縮往往會導(dǎo)致質(zhì)量的下降。例如,一系列10個略微不同的值的樣本可以使用量化而被近似為具有完全相同的特定近似值的10個樣本。這種量化會降低編碼該一系列io個樣本的比特率,但是以損失原始的IO個樣本中的細節(jié)為代價。在某些情況下,量化產(chǎn)生往往有更偽像性外觀且與簡單的精細細節(jié)損失相比在視覺上更分散注意的視覺偽像。例如,平滑的、未紋理化的內(nèi)容易受輪廓偽像一出現(xiàn)在兩個不同量化輸出值的區(qū)域之間的偽像一的影晌,因為人類視覺系統(tǒng)對于平滑內(nèi)容中的微小變化(尤其是亮度差)很敏感。使用以上示例,考慮其中該系列10個樣本的亮度值從第一個樣本到第十個樣本逐步且一致地改變的情況。量化可以將前五個樣本值近似為一個值,而將后五個樣本值近似為另一值。盡管這種量化可能不會由于掩蔽效應(yīng)而造成紋理化區(qū)域中的視覺偽像,但是在平滑區(qū)域中,它會在重構(gòu)圖像中造成兩組5個樣本之間的可見線或階。IV.VC-1中的差分量化在差分量化中,編碼器對于圖片的不同部分改變量化步長(此處在某些實現(xiàn)中也稱為量化參數(shù)或QP)。通常,這涉及在宏塊級或其它子圖像級上改變QP。編碼器做出關(guān)于如何改變QP的判決,并且將這些判決適當?shù)赜眯盘柾ㄖo解碼器。例如,VC-1編碼器可任選地選擇差分量化來進行壓縮。編碼器在圖像級上的句法級發(fā)送比特流元素(DQUANT)以指示QP是否可在各個圖像中的宏塊之中變化。編碼器發(fā)送圖像級比特流元素PQINDEX以指示圖像QP。如果DQUANT=0,則對該圖像中的所有宏塊使用PQINDEX所指示的QP。如果DQUANT-1或2,則同一圖像中的不同宏塊可使用不同的QP。VC-1編碼器可以使用一種以上方法來進行差分量化。在一種方法中,對一圖像僅使用兩個不同的QP。這被稱為雙級(bi-levd)差分量化。例如,對圖像邊緣處的宏塊使用一個QP,而對圖像其余部分中的宏塊使用另一QP。這對于在圖像邊緣處節(jié)省比特是有用的,在邊緣處,精細細節(jié)對于保持總體視覺質(zhì)量較不重要。或者,對每一宏塊用信號表示1比特的值指示對該宏塊使用兩個可用QP值中的哪一個。在被稱為多級差分量化的另一種方法中,可對圖像中的各個宏塊使用更大數(shù)量的不同QP。編碼器在DQUANT為非零時發(fā)送圖像級比特流元素VOPDQUANT。VOPDQUANT由可能包括DQPROFILE的其它元素組成,DQPROFILE指示圖像的哪些部分可使用除了圖像QP之外的QP。當DQPROFILE指示任意的、不同的宏塊可以使用除了圖像QP之外的QP時,存在比特流元素DQBILEVEL。如果DQBILEVEL=1,則每一宏塊使用兩個QP之一(雙級量化)。如果DQBILEVEL=0,則每一宏塊可使用任何QP(多級量化)。比特流元素MQDIFF在宏塊級發(fā)送以用信號表示對于雙級量化的宏塊的l比特選擇器。對于多級量化,MQDIFF指示圖像QP和宏塊QP之間的差分,或者對于宏塊的經(jīng)轉(zhuǎn)移編碼的絕對QP。.V.其它標準和產(chǎn)品眾多國際標準指定了用于壓縮的視頻信息的視頻解碼器和格式的各方面。這些標準直接或隱含地也指定了某些編碼器細節(jié),但是未指定其它編碼器細節(jié)。某些標準著重于靜止圖像壓縮/解壓,而其它標準著重于音頻壓縮/解壓。眾多公司已經(jīng)生產(chǎn)了用于音頻、靜止圖像和視頻的編碼器和解碼器。各種其它種類的信號(例如,高光譜圖像、圖形、文本、財務(wù)信息等)通常也使用壓縮技術(shù)來表示和儲存或傳輸。各種視頻標準允許對不同圖像類型使用不同量化步長,并且允許出于碼率和質(zhì)量控制來改變量化步長。各標準通常未完全指定量化器設(shè)計。大多數(shù)標準允許編碼器分類規(guī)則;c+^M和/或解碼器重構(gòu)規(guī)則A:>"[M中的某些變化。對DZ比z=2或更大的使用已經(jīng)蘊含在多種編碼設(shè)計中。例如,某些標準中對預(yù)測區(qū)域的重構(gòu)值定范圍隱含了對z22的使用。這些示例形式的標準中的重構(gòu)值被適當?shù)亻g隔以使用z=2的02+171(5分類。基于^=1(或至少z〈2)的設(shè)計已經(jīng)在若干標準中用于量化。在這些情況下,重構(gòu)值被圍繞零相等地間隔并且離開O。給定視頻壓縮對于數(shù)字視頻的關(guān)鍵重要性,視頻壓縮是充分開發(fā)的領(lǐng)域并不令人驚奇。然而,不論早先的視頻壓縮技術(shù)的好處如何,它們都沒有以下技術(shù)和工具的優(yōu)點。概述本申請描述了用于自適應(yīng)地調(diào)整量化以解決DC漂移偽像的技術(shù)和工具。例如,視頻編碼器對于視頻圖像的平滑區(qū)域調(diào)整量化以減少因來自量化的DC系數(shù)值的漂移而導(dǎo)致的輪廓偽像。這能夠以較小的比特率成本來提高感知質(zhì)提供本概述以便用簡化的形式來介紹將在以下詳細描述中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。在一方面,一種視頻編碼器標識視頻圖像中包含DC漂移塊的一個或多個部分,并對該圖像調(diào)整量化(例如,通過對包含DC漂移塊的宏塊減小量化步長)來減少在重構(gòu)圖像時的輪廓偽像。編碼器可以通過標識圖像中的一個或多個梯度斜率區(qū)域(例如,通過分析紋理圖)并分析梯度斜率區(qū)域中的DC系數(shù)上的量化效應(yīng)來標識圖像中包含DC漂移塊的(諸)部分。編碼器可以按給定的量化步長檢查具有相關(guān)聯(lián)的DC漂移偽像的DC系數(shù)值列表。編碼器可以檢查DC漂移塊的相鄰塊以尋找DC漂移偽像。編碼器可以使用DC系數(shù)或平均樣本值來標識DC漂移塊。量化可以是雙級或多級差分量化,并且可使用均勻或非均勻量化器。編碼器可以對圖像的高紋理部分增加量化。在另一方面,一種視頻編碼器檢測具有在以第一量化步長(例如,圖像量化步長)量化和反量化之后改變值的DC系數(shù)的一個或多個塊。編碼器對包括具有在以第一量化步長量化和反量化之后改變值的DC系數(shù)的至少一個塊的至少一個宏塊選擇第二量化步長。編碼器在對該至少一個宏塊的量化中使用第二量化步長(小于第一量化步長)。第二量化步長可以小于用于圖像中的平滑區(qū)域的量化步長。在另一方面,一種視頻編碼器檢測視頻圖像中包括一個或多個DC漂移塊的梯度斜率區(qū)域。每一DC漂移塊具有在以第一量化步長量化和反量化之后改變值的DC系數(shù)。編碼器對包括具有改變值的DC系數(shù)的至少一個DC漂移塊的至少一個圖像部分選擇第二量化步長(小于第一量化步長)。編碼器在對這些圖像部分的量化中使用第二量化步長。編碼器可以對高紋理圖像部分選擇大于第一量化步長的量化步長。當參考附圖閱讀以下詳細描述時,上述和其它目的、特征和優(yōu)點將變得更明顯。附圖簡述圖1是示出8x8的樣本塊的基于塊的幀內(nèi)壓縮的圖示。圖2是示出視頻編碼器中的運動估計的圖示。圖3是示出視頻編碼器中的8X8的預(yù)測殘差塊的基于塊的壓縮的圖示。圖4是示出視頻解碼器中的8X8的預(yù)測殘差塊的基于塊的解壓的圖示。圖5是示出用于標量量化器的階梯I/O函數(shù)的曲線圖。圖6A和6B是示出用于標量量化器的分類器和閾值的曲線圖。圖7是示出用于DZ+UTQ的階梯I/O函數(shù)的曲線圖。圖8A和8B是示出用于DZ+UTQ的分類器和閾值的曲線圖。圖9是可結(jié)合其實現(xiàn)所描述的若干實施例的合適的計算環(huán)境的框圖。圖10是可結(jié)合其實現(xiàn)所描述的若干實施例的通用視頻編碼器系統(tǒng)的框圖。圖11是在所描述的若干實施例中使用的宏塊格式的圖示。圖12是自適應(yīng)視頻編碼方法的流程圖。圖13是示出使用塊的亮度和色度數(shù)據(jù)的像素梯度計算的圖示。圖14是對圖13的塊的多個像素梯度的直方圖。圖15是示例塊值表征框架的圖。圖16是示出用于基于紋理信息來應(yīng)用差分量化的通用技術(shù)的流程圖。圖17是示出用于使用時間分析來做出紋理DQ判定的技術(shù)的流程圖。圖18是示出用于使用百分比閾值和隔離平滑塊濾波來做出紋理DQ判定的技術(shù)的流程圖。圖19是示出用于對高紋理圖像選擇性地調(diào)整紋理水平閾值的技術(shù)的流程圖。圖20是示出用于確定自適應(yīng)紋理水平閾值的示例偽代碼的代碼圖。圖21是示出梯度斜率區(qū)域的兩個示例的圖示。圖22A是示出具有梯度斜率區(qū)域、紋理化區(qū)域、銳邊區(qū)域和平坦區(qū)域的示例幀的圖示。圖22B是示出圖22A的梯度斜率區(qū)域中的輪廓偽像的圖示。圖22C示出了圖22B的輪廓偽像的宏塊級細節(jié)。圖23是示出通用的基于區(qū)域的梯度斜率檢測技術(shù)的流程圖。圖24是根據(jù)一個實現(xiàn)的示例梯度斜率檢測器的框圖。圖25是描繪具有可能會導(dǎo)致異常梯度斜率方向的膜顆粒的梯度斜率區(qū)域的4-l降釆樣的圖示。圖26是用于16x16的羅盤算子KH和i^的等式圖。圖27是示出用于使用圖26的羅盤算子來計算區(qū)域的梯度方向的示例偽代碼的代碼圖。圖28是示出用于對梯度斜率區(qū)域執(zhí)行一致性檢驗的技術(shù)的流程圖。圖29是描繪了桶投票技術(shù)中的桶的圖示。圖30是示出用于選擇宏塊QP來幫助保存一個或多個非零AC系數(shù)的示例技術(shù)的流程圖。圖31是示出在量化和反量化之后在梯度斜率區(qū)域中的三個相鄰塊的DC漂移的圖示。圖32是示出用于調(diào)整量化以減少或避免DC漂移區(qū)域中的輪廓偽像的引入的通用技術(shù)的流程圖。圖33是示出用于調(diào)節(jié)DC漂移區(qū)域中量化以減少或避免量化偽像的引入的組合技術(shù)的流程圖。詳細描述本申請涉及用于高效的視頻壓縮的技術(shù)和工具。在各個所描述的實施例中,一種視頻編碼器結(jié)合了用于編碼視頻的技術(shù),以及用于包括不同層或級的比特流格式或句法的對應(yīng)的信令技術(shù)。所描述的技術(shù)和工具中的某一些可被應(yīng)用于隔行或逐行幀。對此處所描述的實現(xiàn)的各種替換是可能的。例如,參考流程圖所描述的技術(shù)可以通過改變流程圖中所示的級的排序,通過重復(fù)或省略某些級等來改變。例如,在初始級中的分析(例如,獲得關(guān)于圖像的紋理信息或在檢測平滑區(qū)域時執(zhí)行紋理分析)可在稍后的級(例如,對于圖像做出編碼判決或在檢測平滑區(qū)域時執(zhí)行時間分析)開始之前完成,或者對不同級的操作可以在逐塊、逐宏塊或其它逐區(qū)域的基礎(chǔ)上交錯。作為另一示例,盡管某些實現(xiàn)此處是參考特定宏塊格式描述的,但是也可使用其它格式。各種技術(shù)和工具可組合或單獨使用。不同的實施例實現(xiàn)所描述的技術(shù)和工具的一個或多個。此處所描述的某些技術(shù)和工具可以在視頻編碼器中使用,或在不特別限于視頻編碼的某一其它系統(tǒng)中使用。I.計算環(huán)境圖9示出了其中可實現(xiàn)所描述的若干實施例的合適計算環(huán)境900的一個通用示例。計算環(huán)境卯O并非旨在對使用范圍或功能提出任何限制,因為這些技術(shù)和工具可以在完全不同的通用或?qū)S糜嬎悱h(huán)境中實現(xiàn)。參考圖9,計算環(huán)境900包括至少一個處理單元910和存儲器920。在圖9中,這一最基本配置930包括在虛線內(nèi)。處理單元910執(zhí)行計算機可執(zhí)行指令,且可以是真實或虛擬處理器。在多處理系統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能力。存儲器920可以是易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、EEPROM、閃存等)或兩者的某一組合。存儲器920儲存用此處所描述的一個或多個技術(shù)或工具實現(xiàn)視頻編碼器的軟件980。計算環(huán)境可具有額外的特征。例如,計算環(huán)境900包括存儲940、一個或多個輸入設(shè)備950、一個或多個輸出設(shè)備960以及一個或多個通信連接970。諸如總線、控制器或網(wǎng)絡(luò)等互連機制(未示出)將計算環(huán)境900的組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算環(huán)境900中執(zhí)行的其它軟件提供了操作環(huán)境,并協(xié)調(diào)計算環(huán)境900的組件的活動。存儲940可以是可移動或不可移動的,且包括磁盤、磁帶或磁帶盒、CD-ROM、DVD或可用于儲存信息并可在計算環(huán)境900內(nèi)訪問的任何其它介質(zhì)。存儲940儲存用于實現(xiàn)視頻編碼器的軟件980的指令。輸入設(shè)備950可以是諸如鍵盤、鼠標、筆或跟蹤球等觸摸輸入設(shè)備、語音輸入設(shè)備、掃描設(shè)備或可向計算環(huán)境900提供輸入的另一設(shè)備。對于音頻或視頻編碼,輸入設(shè)備950可以是聲卡、顯卡、TV調(diào)諧卡、或接受模擬或數(shù)字形式的音頻或視頻輸入的類似的設(shè)備、或?qū)⒁纛l或視頻樣值讀入計算環(huán)境900的CD-ROM或CD-RW。輸出設(shè)備960可以是顯示器、打印機、揚聲器、CD刻錄機、或從計算環(huán)境900提供輸出的另一設(shè)備。通信連接970允許通過通信介質(zhì)到另一計算實體的通信。通信介質(zhì)傳達諸如已調(diào)制數(shù)據(jù)信號形式的計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或其它數(shù)據(jù)等信息。己調(diào)制數(shù)據(jù)信號是其一個或多個特征以在信號中編碼信息的方式設(shè)置或改變的信號。作為示例而非局限,通信介質(zhì)包括以電、光、RF、紅外、聲學(xué)或其它載波實現(xiàn)的有線或無線技術(shù)。各種技術(shù)和工具可以在計算機可讀介質(zhì)的一般上下文中描述。計算機可讀介質(zhì)可以是可在計算環(huán)境內(nèi)訪問的任何可用介質(zhì)。作為示例而非局限,對于計算環(huán)境900,計算機可讀介質(zhì)包括存儲器920、存儲940、通信介質(zhì)以及上述任一個的組合。該技術(shù)和工具可在諸如程序模塊中所包括的在目標真實或虛擬處理器上的計算環(huán)境中執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。程序模塊的功能可以如各實施例中所需的組合或在程序模塊之間分離。用于程序模塊的計算機可執(zhí)行指令可以在本地或分布式計算環(huán)境中執(zhí)行。為了呈現(xiàn),詳細描述使用了如"判定"和"分析"等術(shù)語來描述計算環(huán)境中的計算機操作。這些術(shù)語是由計算機執(zhí)行的操作的高級抽象,且不應(yīng)與人類所執(zhí)行的動作混淆。對應(yīng)于這些術(shù)語的實際的計算機操作取決于實現(xiàn)而不同。IL通用視頻編碼器圖10是可結(jié)合其實現(xiàn)所描述的某些實施例的通用視頻編碼器1000的框圖。編碼器1000接收包括當前圖像1005的視頻圖像序列,并產(chǎn)生壓縮的視頻信息1095作為對存儲、緩沖區(qū)或通信連接的輸出。輸出比特流的格式可以是Windows媒體視頻或VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式。編碼器1000處理視頻圖像。術(shù)語圖像一般指的是源、已編碼的或己重構(gòu)的圖像數(shù)據(jù)。對于逐行視頻,圖像是逐行視頻幀。對于隔行視頻,圖像可以指的是隔行視頻幀、幀的上半幀、或幀的下半幀,取決于上下文。編碼器1000是基于塊的,并且對幀使用4:2:0的宏塊格式。如圖11所示,宏塊1100包括四個8X8的亮度塊(Y1到Y(jié)4)以及兩個8X8的色度塊(U和V),這些色度塊與四個亮度塊位于同處,但是水平和垂直分辨率都是一半,遵循常規(guī)的4:2:0的宏塊格式。對于半幀,可使用相同或不同的宏塊組織和格式。8X8的塊還可在不同的級上細分,例如在頻率變換和熵編碼級。編碼器1000可以對除8x8的塊和16x16的宏塊之外的不同大小或配置的樣本集執(zhí)行運算?;蛘?,編碼器1000是基于對象的,或使用不同的宏塊或塊格式。返回到圖IO,編碼器系統(tǒng)1000壓縮預(yù)測圖像和幀內(nèi)編碼的關(guān)鍵圖像。為演示起見,圖IO示出了關(guān)鍵圖像通過編碼器系統(tǒng)1000的路徑以及用于預(yù)測圖像的路徑。編碼器系統(tǒng)1000的許多組件用于同時壓縮關(guān)鍵圖像和預(yù)測圖像兩者。由這些組件執(zhí)行的確切操作可以取決于所壓縮的信息類型而變化。預(yù)測圖像(例如,逐行P幀或B幀、隔行P半幀或B半幀、或隔行P幀或B幀)按照來自一個或多個其它圖像(通常被稱為參考圖像或錨)的預(yù)測(或差)來表示。預(yù)測殘差是所預(yù)測的和原始圖像之差。相反,關(guān)鍵圖像(例如,逐行I幀、隔行I半幀或隔行I幀)不參考其它圖像來壓縮。如果當前圖像1005是預(yù)測圖像,則運動估計器1010估計當前圖像1005的宏塊或其它樣本集相對于一個或多個參考圖像(例如,緩存在圖像存儲1020中的重構(gòu)的前一圖像1025)的運動。如果當前圖像1005是雙向預(yù)測圖像,則運動估計器1010估計當前圖像1005中相對于多達四個重構(gòu)的參考圖像(例如,對于隔行B半幀)的運動。通常,運動估計器估計B圖像中相對于一個或多個在時間上先前的參考圖像以及一個或多個在時間上未來的參考圖像的運動,但是B圖像不需要從不同的時間方向來預(yù)測。編碼器系統(tǒng)1000可對多個參考圖像使用單獨的存儲1020和1022。運動估計器1010可按照全樣本、K樣本、^樣本或其它增量來估計運動,并可在逐圖像的基礎(chǔ)或其它基礎(chǔ)上切換運動估計的精度。運動估計器1010(和補償器1030)也可在每一幀或其它基礎(chǔ)上在參考圖像樣本內(nèi)插的類型之間切換(例如,在雙三次內(nèi)插和雙線性內(nèi)插之間)。運動估計的精度可以在水平和垂直上相同或不同。運動估計器1010輸出運動信息1015,諸如差分運動矢量信息作為輔助信息。編碼器1000通過例如為運動矢量計算一個或多個預(yù)測值,計算運動矢量和預(yù)測值之間的差分,以及對差分進行熵編碼,來對運動信息1015進行編碼。為重構(gòu)運動矢量,運動補償器1030將預(yù)測值與差分運動矢量信息組合。運動補償器1030將重構(gòu)的運動矢量應(yīng)用于重構(gòu)的圖像1025,以形成經(jīng)運動補償?shù)漠斍皥D像1035。然而,預(yù)測很少是完美的,且經(jīng)運動補償?shù)漠斍皥D像1035和原始的當前圖像1005之差是預(yù)測殘差1045。在稍后的圖像重構(gòu)期間,將預(yù)測殘差1045加到經(jīng)運動補償?shù)漠斍皥D像1035,以獲得更接近于原始的當前圖像1005的經(jīng)重構(gòu)的圖像。然而,在有損壓縮中,某些信息仍從原始當前圖像1005中丟失?;蛘?,運動估計器和運動補償器應(yīng)用另一類型的運動估計/補償。頻率變換器1060將空間域視頻信息轉(zhuǎn)換成頻域(即,頻譜)數(shù)據(jù)。對于基于塊的視頻圖像,頻率變換器1060向樣本數(shù)據(jù)或預(yù)測殘差數(shù)據(jù)的塊應(yīng)用DCT、DCT的變體或其它塊變換,從而產(chǎn)生頻率變換系數(shù)塊?;蛘撸l率變換器1060應(yīng)用諸如傅立葉變換等另一常規(guī)頻率變換或使用小波或子帶分析。頻率變換器1060可應(yīng)用8X8、8X4、4X8、4X4或其它大小的頻率變換。量化器1070然后量化頻譜數(shù)據(jù)系數(shù)塊。量化器向頻譜數(shù)據(jù)應(yīng)用均勻的標量量化,其步長在逐圖像的基礎(chǔ)或其它基礎(chǔ)(例如,逐宏塊的基礎(chǔ))上變化?;蛘?,量化器向頻譜數(shù)據(jù)系數(shù)應(yīng)用另一類型的量化,例如非均勻的、矢量或非自適應(yīng)量化,或直接在不使用頻率變換的編碼器系統(tǒng)中量化空間域數(shù)據(jù)。以下詳細描述某些實現(xiàn)中涉及量化的技術(shù)和工具。除自適應(yīng)量化之外,編碼器iooo可使用幀丟棄、自適應(yīng)濾波或其它技術(shù)用于碼率控制。編碼器IOOO可對跳過宏塊使用特殊信令,該跳過宏塊是某一特定類型的信息(例如,沒有關(guān)于宏塊的差分運動矢量以及沒有殘差信息)的宏塊。當需要重構(gòu)的當前圖像用于后續(xù)的運動估計/補償時,反量化器1076在量化的頻譜數(shù)據(jù)系數(shù)上執(zhí)行反量化。反頻率變換器1066然后執(zhí)行頻率變換器1060的逆運算,從而產(chǎn)生重構(gòu)的預(yù)測殘差(對于預(yù)測圖像)或重構(gòu)的關(guān)鍵圖像。如果當前圖像1005是關(guān)鍵圖像,則重構(gòu)的關(guān)鍵圖像用作重構(gòu)的當前圖像(未示出)。如果當前圖像1005是預(yù)測圖像,則重構(gòu)的預(yù)測殘差被加到經(jīng)運動補償?shù)漠斍皥D像1035,以形成重構(gòu)的當前圖像。圖像存儲1020、1922之一或兩者緩存重構(gòu)的當前圖像,以在經(jīng)運動補償?shù)念A(yù)測中使用。在某些實施例中,編碼器向重構(gòu)的幀應(yīng)用分塊濾波器,以自適應(yīng)地平滑圖像中的不連續(xù)性和其它偽像。熵編碼器1080壓縮量化器1070的輸出以及某些輔助信息(例如,運動信息1015、量化步長(QP))。典型的熵編碼技術(shù)包括算術(shù)編碼、差分編碼、哈夫曼編碼、行程長度編碼、LZ編碼、字典式編碼以及上述的組合。熵編碼器1080通常對不同種類的信息(例如,DC系數(shù)、AC系數(shù)、不同種類的輔助信息)使用不同的編碼技術(shù),并可從特定編碼技術(shù)內(nèi)的多個代碼表中進行選擇。熵編碼器1080向多路復(fù)用器("MUX")1090提供壓縮的視頻信息1095。MUX1090可包括緩沖區(qū),并且一緩沖區(qū)等級指示符可被反饋給控制器。在MUX1090之前或之后,壓縮的視頻信息1095可被信道編碼用于通過網(wǎng)絡(luò)發(fā)送。信道編碼可向壓縮的視頻信息1095應(yīng)用檢錯和糾錯數(shù)據(jù)??刂破?未示出)接收來自諸如運動估計器1010、頻率變換器1060、量化器1070、反量化器1076、熵編碼器1080和緩沖區(qū)1090等各個模塊的輸入??刂破髟u估編碼期間的中間結(jié)果,例如估計失真并執(zhí)行其它碼率-失真分析。控制器與諸如運動估計器1010、頻率變換器1060、量化器1070和熵編碼器1080一起工作以設(shè)置并改變編碼期間的編碼參數(shù)。當編碼器評估編碼期間的不同編碼參數(shù)選擇時,編碼器可迭代地執(zhí)行某些級(例如,量化和反量化)以評估不同的參數(shù)設(shè)置。編碼器可以在前進到下一級之前設(shè)置一個級處的參數(shù)?;蛘撸幋a器可以對不同的編碼參數(shù)進行聯(lián)合評估。要評估的編碼參數(shù)判決的樹以及相應(yīng)編碼的定時取決于實現(xiàn)。編碼器1000內(nèi)的模塊之間所示的關(guān)系指示了編碼器中的一般信息流;為簡明起見,未示出其它關(guān)系。具體地,圖10—般不示出指示用于視頻序列、圖像、宏塊、塊等的編碼器設(shè)置、模式、表等輔助信息。這一輔助信息一旦被最終化,通常在該輔助信息的熵編碼之后在輸出比特流中發(fā)送。視頻編碼器的具體實施例通常使用通用編碼器1000的變體或補充版本。取決于所需的實現(xiàn)和壓縮類型,編碼器的模塊可被添加、省略、分成多個模塊、與其它模塊組合、和/或用相似的模塊來替代。例如,控制器可被拆分成與編碼器的不同模塊相關(guān)聯(lián)的多個控制器模塊。在替換實施例中,具有不同模塊和/或其它模塊配置的編碼器執(zhí)行一個或多個所描述的技術(shù)。III.使用知覺模型的視頻內(nèi)容的表征視頻內(nèi)容可以使用知覺模型來表征。這可以幫助編碼器對不同種類的視頻內(nèi)容做出適當?shù)木幋a判決。編碼器可在編碼之前分析圖像以提供對該圖像的不同部分(例如,塊、宏塊等)中的內(nèi)容的表征。例如,視頻圖像中諸如藍天等相對平滑的部分可被表征為對于引入失真是較不可接受的,因為在平滑區(qū)域中某些種類的質(zhì)量降級(例如,量化偽像)更容易被人類感知到。相反,在紋理區(qū)域中,失真一般較不會引起注意(因此較可接受)。參考圖12,諸如以上參考圖IO描述的視頻編碼器在表征視頻圖像(例如,表征為平滑區(qū)域、邊緣區(qū)域、紋理區(qū)域等)的各部分(例如,宏塊的塊、宏塊或其它區(qū)域)的過程1200中實現(xiàn)自適應(yīng)編碼技術(shù),并且根據(jù)該表征來自適應(yīng)一個或多個編碼技術(shù)。許多所描述的技術(shù)提供了圖像內(nèi)的自適應(yīng)編碼,諸如在塊、宏塊或其它區(qū)域上。這些技術(shù)使用信息來對圖像的不同部分分類并相應(yīng)地編碼它們。更具體地,視頻編碼器基于其知覺特性來表征圖像的各部分以對內(nèi)容進行分類。在1210處,視頻編碼器表征視頻圖像的一個或多個部分。例如,編碼器基于塊內(nèi)的強度變化來表征視頻圖像的塊。在一個實現(xiàn)中,編碼器對于塊中的像素或塊的經(jīng)降采樣的版本計算一像素及其相鄰像素之間的差的和。該差值的和測量了一像素及其周圍像素之間的強度變化。例如,周圍像素包括與一像素相鄰或近乎相鄰的兩個或更多其它像素,諸如在一像素的上方或下方、左邊或右邊、或?qū)恰R幌袼氐膹姸扰c其周圍像素的強度之差基于亮度和/或色度數(shù)據(jù)中的差來計算。換言之,差是用亮度樣本和/或色度樣本來計算的。一平均計算的差值被分配給該像素(例如,像素梯度)。對塊中的各像素(例如,塊梯度)或?qū)ζ淠骋欢尾蓸蛹嬎悴钪怠Tu估分配給塊中的像素的差值以確定對該塊的表征或分類(例如,平滑、邊緣或紋理;紋理或非紋理;平滑或非平滑;等等),這可被表達為炎澄。在一個示例中,評估對于塊中的像素的像素梯度以確定對該塊梯度的中間差值(例如,塊中值)。由此,塊內(nèi)的像素之間的強度差提供了對塊、宏塊或其它視頻圖像區(qū)域的強度變化的測量。不需要塊中值來確定塊值。強度變化或塊表征也可基于分配給塊中的像素的差值的平均值(例如,塊平均值)。塊中值或平均值可以用于對塊進行分類和/或可用作對更細粒度的控制函數(shù)的輸入。該表征或控制函數(shù)自適應(yīng)地改變編碼的一個或多個方面?;蛘?,代替計算強度變化來表征塊,編碼器使用另一度量。在1220處,編碼器基于表征來自適應(yīng)地編碼視頻圖像。在一個實現(xiàn)中,用于輪廓偽像的移除或減少的編碼技術(shù)是基于塊表征來執(zhí)行的。例如,對某些平滑區(qū)域執(zhí)行梯度斜率檢測、DC漂移檢測、AC系數(shù)保存以及自適應(yīng)差分量化,并且紋理化區(qū)域被更強地量化以節(jié)省比特率。盡管圖12示出了對于圖像的多個部分表征級1210在自適應(yīng)編碼級1220之前,但這些級也可在圖像中在逐塊的基礎(chǔ)上迭代進行或者可以在某一其它基礎(chǔ)上排序。在1230處,編碼器用信號表示經(jīng)自適應(yīng)地編碼的比特流。當編碼器使用差分量化來基于塊表征編碼時,例如,視頻編碼器使用用于向視頻解碼器發(fā)信號表示差分量化的信令方案來編碼壓縮的比特流中的信息。在1240處,相應(yīng)的視頻解碼器讀取自適應(yīng)地編碼的比特流,包括對視頻圖像已編碼數(shù)據(jù)。例如,視頻解碼器讀取用信號表示的差分量化信息。在1250處,解碼器解碼壓縮的比特流,例如根據(jù)用信號表示的差分量化信息來對塊解量化。A.示例的基于塊的表征圖13是示出用于使用亮度和/或色度數(shù)據(jù)來表征塊的基于塊的操作的圖示。亮度塊"Y"(1302)是4:2:0宏塊格式的宏塊的8x8的塊。盡管并非所需,但在該示例中,在計算梯度塊1308時也使用了像素塊的相應(yīng)色度塊1304、1306。盡管并非所需,但如在本示例中所示的,亮度塊1302在水平和垂直上按照因子2來降采樣1312(例如,通過對樣本對進行簡單的求平均)以創(chuàng)建匹配色度塊的4x4維度的亮度塊1310。如在經(jīng)降采樣的亮度塊1310中所示的,將像素1314的亮度樣本的強度值與在經(jīng)降采樣的亮度塊1310中靠近它的四個像素的樣本進行比較,并且計算像素1314的樣本與其周圍的垂直和水平像素的樣本之差的平均和。在該示例中,像素1314位于位置Y'(r,c)處。與其周圍像素比較的該像素1314的亮度強度值的差的平均和為L(r,c)=[IY,(r,c)—Y,(r,c-l)|+|Y,(r,c)-Y,(r-l,c)|+|Y,(r,c)一Y,(r,c+l)|+|Y,(r,c)-Y(r+l,C;H]/4(5)如圖所示,Y,(r,c)是經(jīng)降采樣的塊Y'中行r列c處的像素1314的亮度分量。b(r,c)提供了像素1314的亮度強度如何有別于塊Y'內(nèi)的其鄰居的指示。該亮度強度差測量是像素梯度的一個示例??扇芜x地,色度數(shù)據(jù)1304、1306可代替亮度數(shù)據(jù)被單獨考慮,或者可與亮度數(shù)據(jù)一起考慮來確定強度差。對于像素1314的亮度強度值和色度強度值的差的平均和可被表示為周圍像素的樣本的強度值中的差的平均值,如在以下等式中所示Gr(r,c)={[IY,(r,c)-Y,(r,c-l)|+|Y,(r,c)-Y,(r-l,c)|+『(r,c)-Y,(r,c+l)|+|Y,(r,c)-Y,(r+1,c)|]+[|U(r,c)-U(r,c-l)|+|U(r,c)-U(r-l,c)|+|U(r,c)-U(r,c+l)|+|U(r,c)-U(r十l,c)|]+[|V(r,c)-V(r,c-l)|+|V(r,c)-V(r-l,c)|+|V(r,c)-V(r,c+l)|+|V(r,c)—V(r+1,c)|]}/12(6)Gj(r,c)是對于經(jīng)降采樣的塊中位于(r,c)處的像素的像素梯度,并且該像素梯度提供了關(guān)于像素1314的亮度和色度強度如何有別于其周圍像素鄰居的指示。在此示例中,像素梯度值G(r,c)基于直接垂直或水平的像素,但是未考慮鄰域中的其它像素。構(gòu)想了在其它變體中在創(chuàng)建像素梯度時也可考慮其它像素數(shù)據(jù)。例如,作為所提供的安排的一部分或其替代,可考慮對角像素?;蛘?,可考慮較長一段路程(例如,2或3個像素)上的強度差。GKr,c)提供了關(guān)于單個像素的亮度和色度強度如何有別于其鄰居的指示。為了表征整個塊的強度變化,對塊內(nèi)的多個或所有像素執(zhí)行相同的分析。在一個這樣的示例中,創(chuàng)建像素梯度塊1308,并且從中導(dǎo)出塊梯度。如所指出的,計算像素梯度或塊梯度可以包括單獨的亮度比較、單獨的色度比較、或亮度比較和色度比較兩者。如有需要,可改變以上用于找出Gi(r,c)的等式以解決遺漏的塊邊界值。例如,在塊外部的樣本在自適應(yīng)等式GKr,c)以解決邊界值時可被外插或假定為與塊內(nèi)的其它相鄰樣本相同?;蛘?,可以減少該等式的分母且在比較中忽略某些方向上的周圍樣本,例如在這些周圍樣本位于塊外的情況下。如圖所示,像素梯度塊1308可以提供關(guān)于塊中的所有像素的像素梯度數(shù)據(jù)?;蛘撸袼靥荻葔K1308可以包括關(guān)于塊中少于所有像素的像素梯度數(shù)據(jù)。圖14是圖13的塊1308中的多個像素梯度的直方圖。更具體而言,直方圖1400提供了關(guān)于塊可如何被表征或求值的可視化。在該示例中,存在30以下的8個像素梯度值,以及30以上的8個像素梯度值。因此,對于該塊梯度的中值是30。(對于偶數(shù)的候選值,中值可以被計算為兩個中間候選值的平均,或被計算為兩個中間候選值中的一個或另一個。)中值可用于將塊表征為平滑、紋理或邊緣。當然,一旦獲得了像素梯度或像素梯度塊,就可使用其它度量來表征塊。例如,塊可以根據(jù)像素梯度值的平均值來表征。一旦分配了塊值,它就可在表征方案(例如,平滑或非平滑;平滑、紋理、邊緣;等等)中使用或在更細粒度的控制函數(shù)中使用。塊值可用于確定在自適應(yīng)編碼策略中如何處理塊。塊值可通過對多個像素梯度排序并從經(jīng)排序的值中選擇中間梯度值來選擇。例如,塊內(nèi)的一組像素梯度,諸如{10,14,28,36,38},具有所分配的等于該組中的中間像素梯度,即28的塊值。在另一示例中,塊值基于該組中的平均梯度,即對于前述數(shù)值示例為25.2來確定。當然,該組可以從完整的塊梯度或其子集中獲得。c.對表征信息的示例使用圖15是繼續(xù)了圖13和14的示例的示例塊表征框架的圖。如圖所示,具有范圍從0直到30(包括30)的塊值的塊將被表征為平滑塊。具有大于30但小于或等于60的范圍內(nèi)的塊值的塊將被表征為紋理塊,而具有大于60的塊值的塊將被表征為邊緣塊?;蛘?,編碼器使用例如包括關(guān)于塊或視頻圖像的其它部分的其它和/或附加表征的另一表征框架。對于不同的梯度和度量,該框架可在比例和/或維數(shù)上變化。-編碼器可在做出編碼判決時使用塊或視頻圖像的其它部分的表征。表2涉及如參考圖15所描述的塊表征的一個示例性自適應(yīng)編碼方案的特征。如圖所示,不同地表征的塊在一個或多個自適應(yīng)特征方面被不同地對待。<table>tableseeoriginaldocumentpage26</column></row><table>表2:自適應(yīng)編碼特征表2所示的各種自適應(yīng)特征貫穿本文討論,并且將在下文中進一步討論?;蛘撸幋a器對于塊表征使用另一自適應(yīng)特征判定映射。此外,此處所描述的某些特征不需要考慮視頻內(nèi)容的表征。IV.基于紋理水平的差分量化在差分量化中,編碼器對于圖片的不同部分改變量化步長(此處在某些實現(xiàn)中也稱為量化參數(shù)或QP)。通常,這涉及在宏塊級或其它子圖像級上改變QP。編碼器做出關(guān)于如何改變QP的判決,并且可將這些判決適當?shù)赜眯盘柾ㄖo解碼器。早先的解碼器使用了雙級差分量化(在兩個QP之間變化)和多級差分量化(在三個或更多QP之間變化)。例如,在一個雙級差分量化方法中,對圖像邊緣處的宏塊使用一個QP,而對圖像其余部分中的宏塊使用另一QP。這對于在圖像邊緣處節(jié)省比特是有用的,在邊緣處,精細細節(jié)對于保持總體視覺質(zhì)量較不重要。在多級差分量化方法中,可對圖像中的各個宏塊使用更大數(shù)量的不同QP。例如,編碼器可對宏塊選擇一QP并用信號表示用于當前圖像的QP和用于宏塊的QP之間的差分。對量化偽像的知覺敏感性與空間和時間域中視頻的紋理水平高度相關(guān)。高紋理水平通常導(dǎo)致可能會隱藏質(zhì)量降級和量化偽像的掩蔽效應(yīng)。然而,在具有較低紋理水平的區(qū)域(例如,平滑區(qū)域)中,降級和量化偽像更可見。盡管早先的編碼器對于視頻圖像的某些部分(例如,圖像邊緣)做出了量化調(diào)整,但是此處所描述的更全面的基于內(nèi)容的差分量化策略在許多情形中提供了改進的碼率-失真性能。因此,許多所描述的技術(shù)和工具使用基于紋理的差分量化(此處稱為l^"謬Dg)來基于各種紋理水平分配比特以實現(xiàn)更好的感知質(zhì)量。在紋理DQ中,基于紋理信息,并且在某些情況下基于諸如時間分析信息等其它信息,選擇不同QP來編碼視頻。編碼器分析紋理信息(以及可能的其它信息)并向適當?shù)膮^(qū)域(攻^潘Dg^^D,諸如圖像中的8x8的塊或宏塊應(yīng)用紋理DQ。許多所描述的技術(shù)和工具集中于乎滑區(qū)域作為潛在紋理DQ區(qū)域。平滑區(qū)域包括平坦區(qū)域(恒定或幾乎恒定色彩的區(qū)域)以及梯度斜率區(qū)域(以恒定或幾乎恒定的速率在區(qū)域上變化的色彩的區(qū)域)。平滑區(qū)域即使在被小噪聲區(qū)域、膜顆粒或其它色彩變化中斷時也可被認為是平滑的。圖16是示出用于基于紋理信息來應(yīng)用差分量化的通用技術(shù)1600的流程圖。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)1600。在1610處,編碼器獲得關(guān)于當前圖像的紋理信息(例如,指示不同區(qū)域是平滑、邊緣還是紋理區(qū)域的表征或塊值)。在1620處,編碼器找出當前圖像中的一個或多個紋理DQ區(qū)域(例如,其中可能存在輪廓偽像的平滑區(qū)域)。在1630處,編碼器向(諸)紋理DQ區(qū)域應(yīng)用紋理DQ并編碼該圖像。例如,平滑區(qū)域用比高紋理區(qū)域小的QP來編碼。如果有更多圖像要編碼,則編碼器在1640處取下一圖像,并適當?shù)叵蛳乱粓D像選擇性地應(yīng)用紋理DQ。編碼器將關(guān)于視頻圖像的已編碼數(shù)據(jù)輸出到例如存儲、通信連接或緩沖區(qū)??墒褂貌煌募y理DQ區(qū)域檢測技術(shù)來確定一區(qū)域是否應(yīng)作為平滑區(qū)域來對待。例如,編碼器可使用不同的紋理度量和/或不同的紋理閾值(并且可自適應(yīng)地調(diào)整閾值)來確定一特定區(qū)域是否應(yīng)被認為是紋理DQ區(qū)域??墒褂米赃m應(yīng)量化值映射來分配比特以得到更好的感知視頻質(zhì)量。差分量化判決也可基于時間分析(例如,查看將來的圖像以隨時間的推移基于區(qū)域的特性來做出判決)??蓪瑑?nèi)圖像和預(yù)測圖像兩者做出差分量化判決。對于預(yù)測的圖像,可控制差分地量化的圖像之間的P和B圖像差分量化區(qū)間。此外,通過觀察當存在主導(dǎo)高紋理區(qū)域時的圖像紋理,可放松平滑區(qū)域紋理閾值以用較小的QP來編碼相對平滑的區(qū)域(與主導(dǎo)高紋理區(qū)域相比)。類似于以上第III節(jié)中參考圖12-15描述的那些技術(shù)的技術(shù)可用于對當前圖像生成或—^^。例如,如在第III節(jié)中所描述的,編碼器將關(guān)于圖像的紋理水平的梯度計算為該圖像的Y、U和V通道中的一階倒數(shù)(差)。當宏塊格式是4:2:0時,為加速計算過程,編碼器可按照2:1的因子水平和垂直地對Y通道進行降采樣。編碼器對水平和垂直方向中的每一像素的Y、U和V的梯度求和。對于全分辨率的8x8的塊,編碼器計算經(jīng)降采樣的圖像中的相應(yīng)4x4的塊中的梯度的和的均值以用作塊梯度值。計算梯度均值與計算如第III節(jié)中所描述的中值相比具有較低的計算復(fù)雜度?;蛘?,編碼器以某一其它方式獲得關(guān)于圖像的紋理信息。例如,編碼器選擇不同的梯度方向來計算梯度、僅對亮度通道計算梯度等等。然而,獲得或計算紋理信息,其然后可用于做出紋理DQ判決。紋理圖指示了圖像的不同部分的紋理水平。例如,紋理圖可用于標識圖像中的平滑區(qū)域(例如,塊、宏塊、邊緣或其它區(qū)域)和紋理化區(qū)域。所描述的差分量化技術(shù)可以基于紋理圖中的信息來對圖像的適當部分執(zhí)行?;蛘?,編碼器使用紋理信息而不首先創(chuàng)建紋理圖。A.時間分析除了來自當前視頻圖像的紋理信息之外,可使用時間分析來做出準確的差分量化判決。使用時間分析的一個理由是對平滑區(qū)域使用較小QP的影響在該平滑區(qū)域在幾個圖像上都保持平滑的情況下,尤其是當其它圖像在運動補償中引用該平滑區(qū)域的時候?qū)⒆兊酶蟆O喾?,使用較小QP的一個好處在用將來圖像中的高紋理或邊緣塊替換平滑塊的情況下將失去。因此,編碼器在找到當前圖像中的平滑區(qū)域之后査看將來圖像,并且基于將來圖像中的區(qū)域改變的平滑度如何來做出差分量化判決。編碼器還可查看先前的圖像,例如顯示次序在當前視頻圖像之前但在運動補償中引用了當前視頻圖像的B圖像。圖17示出了用于使用時間分析來做出紋理DQ判決的示例技術(shù)1700。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)1700。在1710處,編碼器對視頻序列中的當前圖像中的當前塊執(zhí)行紋理分析。例如,編碼器査看該塊的梯度信息。編碼器可將該梯度信息與用于該塊的梯度閾值進行比較,并將該塊分類為平滑或非平滑(例如,紋理、邊緣),其中梯度閾值是固定的或?qū)σ曨l序列的當前圖像或其它部分動態(tài)地設(shè)置?;蛘撸幋a器對當前圖像中的某一其它部分執(zhí)行紋理分析。在1720處,編碼器執(zhí)行時間分析。編碼器可以自動執(zhí)行該時間分析,或者僅當當前塊被分類為平滑塊時執(zhí)行該分析。例如,編碼器確定當前圖像中的平滑塊是否在將來圖像中保持平滑。如果是,則當前圖像中的平滑區(qū)域稍后用較小的QP來編碼?;蛘撸幋a器確定當前圖像中的平滑塊是否在先前的圖像或者先前和將來的圖像兩者中也是平滑的。編碼器所分析的先前和/或?qū)韴D像的數(shù)目可以取決于實現(xiàn)而變化。如果平滑區(qū)域在將來圖像(例如,下一圖像或某一其它時間上接近的圖像)中被一紋理化區(qū)域替換,則當前圖像中的該平滑區(qū)域可能用較大的QP來編碼,因為使用較小QP的優(yōu)點可能并不那么持久。在一個實現(xiàn)中,在做出差分量化判決時,時間上更靠近的圖像與更遠的圖像相比被加權(quán)更多。編碼器所查看的先前和/或?qū)韴D像的加權(quán)和數(shù)目可以取決于實現(xiàn)而變化。為簡化計算,編碼器可找到單個值以比較當前塊和將來圖像中的相應(yīng)塊。例如,由于亮度值在平滑塊中是相當一致的,因此計算塊的亮度值的均值以測量將來圖像中的相應(yīng)塊的相似性。在以下示例等式中,將來圖像中的相應(yīng)塊的將來平滑度的"強度"S()通過當前塊和將來塊中的相應(yīng)塊的平均亮度值、兩個將來圖像中的相應(yīng)塊的平均亮"度值等等之間的加權(quán)絕對差的和來計算。柳=C(")*J("-+1)*|(卿+0-W+''-1)|(7)其中n是時間上"超前"Sffe像的總數(shù),C(n)是歸一化因子,其被定義為2/(n*(n+l)),而A/(0是時刻f處圖像中的塊(或相應(yīng)塊)的亮度值的均值。編碼器還可測量過去的平滑度來代替將來的平滑度或作為其補充?;蛘撸幋a器在平滑度的時間分析中使用另一加權(quán)系統(tǒng)和/或平滑度度量。再次參考圖17,在1730處,編碼器使用紋理分析和時間分析的結(jié)果來確定是否將該塊分類為紋理DQ塊。例如,編碼器對平滑塊(但非其它塊)計算平滑度強度^S"W,并將該平滑度強度^W與時間平滑度閾值進行比較。該時間平滑度閾值可以是固定或動態(tài)地設(shè)置的。在圖17中,如果編碼器發(fā)現(xiàn)當前塊是平滑塊并且先前和/或?qū)韴D像中的相應(yīng)塊也是平滑的,則編碼器在1740處將當前塊加到紋理DQ塊的計數(shù)。編碼器可使用紋理DQ塊的計數(shù)來確定是否對該圖像執(zhí)行紋理DQ。或者,編碼器以某一其它方式使用時間分析來做出紋理DQ判決。如果有更多的塊要分析,則編碼器在1750處取下一塊并重復(fù)圖17所示的過程。這繼續(xù)直到編碼器評估了當前視頻圖像的各塊。此時,編碼器在編碼判決中使用平滑塊計數(shù)或時間分析的其它結(jié)果。盡管圖17示出了在逐塊的基礎(chǔ)上執(zhí)行時間分析,但是替換地,編碼器在逐宏塊的基礎(chǔ)或某一其它逐區(qū)域基礎(chǔ)上執(zhí)行時間分析。B.紋理DQ閾值和隔離平滑塊濾波不論編碼器是否使用時間分析,編碼器在決定何時應(yīng)用紋理DQ時都可使用若干其它機制。編碼器可使用一個或多個流行的閾值(例如,圖像中的平滑塊的百分比)來做出關(guān)于是否執(zhí)行DQ、以及如果是則用于紋理DQ區(qū)域的QP應(yīng)有多精細的判決。例如,如果圖像中的平滑塊的數(shù)目或百分比在一閾值之上,則編碼器可選擇一較粗略的步長來避免花費太多比特來用小QP編碼平滑內(nèi)容。編碼器還可具有較低的閾值來確定平滑塊的數(shù)目或百分比是否足夠以在圖像中完全使用紋理DQ。降低比特率的另一種方法是在某些平滑塊位于主導(dǎo)的紋理化區(qū)域中時將這些平滑塊作為紋理塊來對待。這可被稱為隔離平滑塊濾波(盡管平滑塊不必完全"隔離"以用此方式來濾波)。例如,紋理化塊所圍繞的平滑塊不必用比紋理化塊小的QP來編碼,因為平滑塊中的量化偽像可能被周圍的紋理化內(nèi)容所掩蔽。結(jié)果,編碼器可選擇不對隔離平滑塊執(zhí)行紋理DQ。編碼器還可在計算圖像中的平滑塊的數(shù)目或百分比時不考慮隔離平滑塊。圖18示出了用于使用閾值和隔離平滑塊濾波來做出紋理DQ判決的示例技術(shù)1800。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)1800。在1810處,編碼器找出當前圖像中的平滑塊。例如,編碼器如參考圖17所描述地執(zhí)行紋理分析和時間分析。或者,編碼器以某一其它方式找出當前圖像中的平滑塊。在1820處,編碼器執(zhí)行隔離平滑塊濾波。例如,編碼器移除當前圖像中被非平滑塊圍繞的單個平滑塊。編碼器可使用不同的判決模型來執(zhí)行隔離平滑塊濾波。例如,編碼器可選擇僅在一平滑塊的所有相鄰塊都是紋理化塊時才將該平滑塊作為紋理化塊來對待。或者,編碼器可選擇在一平滑塊的特定數(shù)目的相鄰塊是紋理化塊時將該平滑塊作為紋理化塊來對待。或者,編碼器移除較大組(例如,2或3)中的隔離平滑塊,和/或使用對于塊是否被隔離的某一其它測試。在1830處,編碼器對照一低閾值(例如,圖像中的總塊數(shù)的1-2%)來檢查圖像中的平滑塊的百分比。如果平滑塊的百分比落在該低閾值之下,則編碼器確定對該圖像將不使用紋理DQ(1840)。如果平滑塊的百分比在該低閾值之上,則編碼器在1850處對照一高閾值檢查該百分比。該較高的閾值用于為平滑塊選取QP。如果該百分比高于該高閾值,則編碼器執(zhí)行紋理DQ,但是對平滑塊選擇較粗略的QP(I860)來降低比特率。否則,編碼器對平滑塊選擇較精細的QP(1870)。如果有更多圖像要分析(1880),則編碼器可對其它圖像重復(fù)該過程。閾值的數(shù)目和閾值百分比值可以取決于實現(xiàn)而變化?;蛘?,編碼器執(zhí)行隔離平滑塊濾波而不使用紋理DQ閾值,或使用紋理DQ閾值而不執(zhí)行隔離平滑塊濾波?;蛘撸幋a器執(zhí)行紋理DQ而不執(zhí)行隔離平滑塊濾波,也不使用DQ閾值。C.自適應(yīng)紋理水平閾值編碼器可使用固定紋理水平或平滑度閾值來確定給定塊是否應(yīng)被認為是紋理DQ塊(例如,平滑塊)??紤]DQ信令的比特率成本(例如,在"全宏塊"雙級DQ信令情形中為每宏塊一比特)和以較小的QP量化圖像的某些部分的比特率成本,閾值擔(dān)當對紋理DQ的成本的檢驗。例如,編碼器獲得關(guān)于塊的塊值(使用參考圖13和14所描述的技術(shù)或某一其它技術(shù))并將該塊值與一固定紋理水平/平滑度閾值(例如,參考圖15所描述的閾值)進行比較。編碼器還可自適應(yīng)地改變紋理水平/平滑度閾值。例如,由于平滑塊的可感知性可能在具有大量高紋理內(nèi)容的圖像中改變,因此用于將塊分類為平滑塊的紋理水平閾值在中等紋理或高紋理圖像中可被放松。這是自適應(yīng)紋理水平閾值的一個示例。編碼器可允許在一閾值范圍內(nèi)選擇若干不同的閾值。在一個實現(xiàn)中,用于平滑塊的自適應(yīng)紋理水平閾值可以在塊值14和塊值30之間變化??蓪Σ煌募y理水平閾值使用不同的差分量化映射。自適應(yīng)紋理水平閾值可用于向較高紋理幀中的較平滑區(qū)域分配比特以改進較平滑區(qū)域中的質(zhì)量。圖19示出了用于對高紋理圖像選擇性地調(diào)整紋理水平閾值的技術(shù)19。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)1900。編碼器通過檢測圖像中主導(dǎo)高紋理內(nèi)容的存在來確定是否要調(diào)整紋理水平閾值。在一個實現(xiàn)中,對高紋理內(nèi)容的檢測是通過計算紋理直方圖中大小為10的滑動窗中的紋理"能量"來實現(xiàn)的。參考圖19,編碼器在1910處以自適應(yīng)紋理水平閾值技術(shù)1900獲得圖像的紋理信息(例如,紋理水平直方圖)。例如,編碼器獲得如上所述的紋理圖并從該信息中創(chuàng)建紋理水平直方圖。在1920處,編碼器檢查該圖像是否是高紋理圖像。如果該圖像是高紋理圖像,則編碼器在1930處調(diào)整用于該圖像的紋理水平閾值。如果該圖像不是高紋理圖像,則編碼器處理該圖像而不調(diào)整紋理水平閾值(1940)。編碼器然后可分析并選擇用于其它圖像的紋理水平閾值(1950)。或者,編碼器對圖像中不同水平的高紋理內(nèi)容應(yīng)用不同紋理水平閾值的滑動比例。例如,為檢査圖像中主導(dǎo)高紋理內(nèi)容的范圍,編碼器為該圖像計算紋理直方圖。編碼器應(yīng)用紋理直方圖中的滑動窗以計算紋理能量并確定峰值或主導(dǎo)高紋理帶。等式(8)示出了供編碼器用于在該窗中計算紋理能量的一種方式。該滑動窗從最小紋理水平閾值gO(默認為30)開始滑動,并且編碼器計算gO處的窗值『(g)。該滑動窗在為該窗計算了紋理能量之后向右移動1,并且編碼器計算在新的gO值處開始的下一窗值『(g)。該過程繼續(xù),直到編碼器到達直方圖中所示的紋理水平的最大值。設(shè)F(g)為每一像素的紋理水平的直方圖。設(shè)E(g)為該紋理水平的紋理能量,其中五(g"F(g)+g。編碼器如下計算滑動窗的紋理能量<formula>formulaseeoriginaldocumentpage33</formula>(8)如果最大滑動窗能量『(g)超過總圖像能量的某一特定百分比閾值,則使用對于該最大滑動窗能量『(g)的g0來調(diào)整用于平滑區(qū)域的閾值。圖20示出了用于從g0確定新的自適應(yīng)平滑區(qū)域閾值的偽代碼2000。如果g0大于100,則自適應(yīng)閾值被設(shè)為30。編碼器還檢查g0是否小于30,如果是,則將自適應(yīng)閾值設(shè)為14。否則,如果30《^〈100,則自適應(yīng)閾值被設(shè)為來自表g—iFlatThTable的值。為幫助維持視頻質(zhì)量,對除了場景改變關(guān)鍵圖像之外的所有圖像,將新的自適應(yīng)閾值與上一個自適應(yīng)閾值的最大差設(shè)限為+/-4。自適應(yīng)平滑閾值不應(yīng)超過用于標識紋理化塊的閾值一例如,在圖20中,最高自適應(yīng)閾值為30?;蛘?,編碼器以某一其它方式(例如,采用不同的紋理強度或能量度量、不使用滑動窗、使用不同地配置的滑動窗、使用表或其它數(shù)據(jù)結(jié)構(gòu)中的不同閾值、不對自適應(yīng)閾值之差設(shè)限、以某一其它方式對自適應(yīng)閾值之差設(shè)限等等)來自適應(yīng)地調(diào)整紋理水平閾值。D.I圖像和P圖像差分量化所描述的差分量化技術(shù)和工具可單獨或組合地用于幀內(nèi)圖像和預(yù)測圖像。術(shù)語/凰像^^量眾(I圖像DQ)指的是向I圖像應(yīng)用差分量化,而術(shù)語尸凰像_#分量眾(P圖像DQ)指的是向P圖像應(yīng)用差分量化。使用I圖像DQ得到更高質(zhì)量的I圖像,并且對于依賴于這些I圖像的預(yù)測圖像可以更長時間地維持質(zhì)量改進。P圖像DQ可以進一步在幀內(nèi)和幀間塊中改進P圖像質(zhì)量,但是這些P圖像的質(zhì)量也依賴于從中預(yù)測它們的圖像的質(zhì)量。類似地,P圖像DQ對稍后預(yù)測的圖像的質(zhì)量的影響將依賴于稍后預(yù)測的圖像與從中預(yù)測它們的圖像的相似度。E.差分量化區(qū)間I圖像DQ和P圖像DQ都使用一種或多種此處所描述的技術(shù)來決定是否對不同紋理水平的塊應(yīng)用不同的QP。為平衡質(zhì)量和比特使用,可使用P圖像DQ區(qū)間來控制花費在P圖像DQ上的比特量。例如,編碼器選擇對每"個P圖像中的一個使用P圖像DQ,其中"kl,但是對差分地量化的P圖像之間的區(qū)間中的圖像跳過P圖像DQ。編碼器將比特花費在差分量化上以改進某些P圖像的感知質(zhì)量,并且這些質(zhì)量改進延續(xù)到其它預(yù)測圖像中。同時,DQ區(qū)間有助于約束編碼器花費在預(yù)測圖像的差分量化上的總比特數(shù)。或者,編碼器選擇另一區(qū)間。例如,編碼器可選擇對每一I圖像僅對一個P圖像使用P圖像DQ,或選擇某一其它區(qū)間。區(qū)間可以是固定或自適應(yīng)的。例如,編碼器可以基于所編碼的內(nèi)容的類型來自適應(yīng)地調(diào)整P圖像DQ區(qū)間。V.梯度斜率檢測在引入到視頻壓縮中的各種視覺偽像中,輪廓是因量化引起的一種具體偽像。輪廓偽像被人類眼睛感知為在諸如天空、水等本應(yīng)是連續(xù)的、非常平滑的區(qū)域中的結(jié)構(gòu)化的、梯度不連續(xù)性。這一不連續(xù)性可能非常令人分心,并且可能導(dǎo)致人類觀察者即使在圖像的其它部分是以極少的視覺失真編碼的情況下也得出整個圖像有較壞的失真的結(jié)論。梯度斜率區(qū)域可以引起輪廓偽像。根據(jù)一種定義,如果一區(qū)域是平滑或相對平滑的,但是像素值在該區(qū)域內(nèi)逐漸改變,則該區(qū)域被認為是賴^^斜^^"乂處。由此,盡管梯度斜率區(qū)域和平坦區(qū)域都被認為是平滑區(qū)域,但梯度斜率區(qū)域與平坦區(qū)域不同。根據(jù)一種定義,平坦區(qū)域是由遍布整個平坦區(qū)域恒定或相對恒定的像素值來表征的。梯度斜率區(qū)域通常缺少強邊緣和大范圍的紋理細節(jié)。圖21示出了梯度斜率區(qū)域的兩個示例。每一區(qū)域中的梯度斜率方向由箭頭來表示。在梯度斜率區(qū)域2100中,亮度值從該區(qū)域的頂部到底部逐漸增加。梯度斜率區(qū)域2100中的斜率的方向在該區(qū)域的每一部分中都是相同的。在梯度斜率區(qū)域2110中,亮度值從該區(qū)域的中心到邊緣逐漸增加。梯度斜率的方向在梯度斜率區(qū)域2110內(nèi)變化。然而,在小鄰域中,每一點處的梯度斜率方向在該鄰域中的其它點處的梯度斜率方向的小角^內(nèi),包括該中心點的鄰域除外。如圖21所示,梯度斜率區(qū)域包括其中梯度斜率方向在整個區(qū)域中恒定的區(qū)域,以及其中梯度斜率方向在鄰域中具有小變化的區(qū)域。圖22A是示出具有梯度斜率區(qū)域2210、紋理化區(qū)域2220、銳邊區(qū)域2230和平坦區(qū)域2240的示例圖像2200的圖示。圖22B是示出梯度斜率區(qū)域2210中的量化結(jié)果的圖示?,F(xiàn)在可見(例如,在宏塊2250內(nèi))帶狀效應(yīng)是輪廓偽像。圖22C示出了宏塊2250的細節(jié)。宏塊2250中的上半部分亮度樣本的變換系數(shù)的量化導(dǎo)致起源于DC值68的均勻值。宏塊2250中的下半部分亮度樣本的變換系數(shù)的量化導(dǎo)致起源于DC值70的均勻值。由此,亮度樣本的變換系數(shù)的量化造成了宏塊2250中上半部分8x8的塊和下半部分8x8的塊之間的可見輪廓偽像。許多現(xiàn)有的視頻編碼器使用了應(yīng)用于整個視頻圖像的技術(shù)以試圖減少圖像中的輪廓偽像。這些技術(shù)可導(dǎo)致花費過多的比特,尤其是在包含極少或沒有輪廓偽像的區(qū)域中。因此,若干所描述的技術(shù)和工具允許編碼器檢測可能發(fā)生輪廓偽像的梯度斜率區(qū)域。當檢測到梯度斜率區(qū)域時,編碼器可以做出減少或避免在梯度斜率區(qū)域中引入輪廓偽像的編碼判決(例如,對QP的調(diào)整)。通過這樣做,編碼器可以更高效地分配比特并達到更好的視覺質(zhì)量。為檢測梯度斜率區(qū)域,編碼器可實現(xiàn)以下技術(shù)中的一種或多種1.具有集中于減少或移除所檢測的區(qū)域中的輪廓偽像的引入的編碼判決的地圖斜率區(qū)域檢測。2.減少計算成本和/或盡管在存在諸如膜顆粒等異常的情況下也允許準確的梯度斜率區(qū)域檢測的基于區(qū)域的梯度估計和降釆樣。3.檢測局部鄰域中的逐步梯度改變的梯度一致性檢驗。4.做出關(guān)于圖像中的梯度斜率區(qū)域的存在的二分判決的桶投票。5.幫助編碼器做出適當?shù)木幋a判決的梯度斜率掩碼(例如,在宏塊級)和梯度方向圖的生成。圖23示出了通用的基于區(qū)域的梯度斜率檢測技術(shù)2300。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)2300。在某些情況下,基于區(qū)域的梯度斜率檢測技術(shù)2300允許通過消除對圖像中的每一像素找到梯度斜率方向的需求來允許對梯度斜率內(nèi)容的更快檢測。例如,圖像被劃分成相同大小的非重疊矩形區(qū)域。區(qū)域的大小可以取決于實現(xiàn)而變化。在一個實現(xiàn)中,區(qū)域是16x16的宏塊(4個8x8的塊)。較佳地,區(qū)域是允許宏塊對齊的大小。在2310處,編碼器檢查當前區(qū)域是否是平滑區(qū)域。例如,編碼器使用其中如果8x8的塊被分配的塊梯度值小于30則該塊被表征為平滑的圖像的紋理圖,或者編碼器使用利用在第III或IV節(jié)中描述的另一技術(shù)的對當前區(qū)域是否為平滑的檢驗。當一區(qū)域包括多個塊時,如果包含在該區(qū)域中的所有塊都是平滑的(或者替換地,如果某一最小數(shù)量塊是平滑的),則該區(qū)域被認為是平滑區(qū)域。不同的實現(xiàn)可使用不同的準則來確定一特定區(qū)域或塊是否為平滑的。例如,用于確定一區(qū)域是否平滑的準則在圖像被降采樣的情況下可以不同。如果一區(qū)域不是平滑的,則處理下一區(qū)域(2230)。對于平滑區(qū)域,編碼器在2330處找出梯度方向。例如,編碼器使用諸如參考圖26和27所描述的技術(shù)來找出梯度方向?;蛘撸幋a器用某一其它技術(shù)來找出梯度方向。在2340處,編碼器使用依賴于用于對該區(qū)域找出梯度方向的技術(shù)和度量的閾值和/或判決制定邏輯來對該區(qū)域做出梯度斜率判決。如果有更多區(qū)域要處理,則編碼器處理下一區(qū)域(2320)。在一個實現(xiàn)中,在對圖像中的不同區(qū)域計算了初始梯度方向之后,編碼器通過在圖像中應(yīng)用滑動窗來生成指示不同區(qū)域中是否存在梯度斜率的二進制掩碼。該二進制掩碼中的信息允許編碼器做出準確的梯度斜率判決。圖24是諸如圖10所示的視頻編碼器中的示例梯度斜率區(qū)域檢測器(GSR檢測器)2400的框圖。GSR檢測器2400取來自當前圖像2405的像素數(shù)據(jù)作為輸入。取決于圖像大小和可能的其它因素,GSR檢測器2400確定是否在降采樣模塊2410中執(zhí)行降采樣。示例降采樣技術(shù)如下所述。梯度計算器2420取(可能經(jīng)降采樣的)像素數(shù)據(jù)和紋理圖2425作為輸入,并計算平滑區(qū)域的梯度。例如,梯度計算器使用諸如參考圖26和27所描述的技術(shù)或使用某一其它技術(shù)。梯度計算中的一個示例區(qū)域大小是16x16,但是區(qū)域的大小可以取決于實現(xiàn)而變化。取決于是否應(yīng)用降采樣以及應(yīng)用了多少降采樣,對其計算梯度的區(qū)域可以表示原始圖像2405中不同數(shù)量的區(qū)域。梯度計算器2420輸出指示平滑區(qū)域的梯度方向的映射表或其它數(shù)據(jù)結(jié)構(gòu)。一致性檢驗器2430取對平滑區(qū)域所計算的梯度,并例如如下所述地檢驗這些梯度的角一致性。一致性檢驗器24產(chǎn)生指示所計算的梯度的一致性信息的一致性映射表或其它數(shù)據(jù)結(jié)構(gòu)。判決模塊2440使用附加判決規(guī)則(在一致性檢驗之后)來確定平滑區(qū)域是否應(yīng)被認為是梯度斜率區(qū)域。示例判決規(guī)則和準則如下所述。判決模塊2440考慮指示一致性信息的一致性映射表或其它數(shù)據(jù)結(jié)構(gòu),并且還考慮所計算的梯度方向或其它信息。判決模塊2440輸出關(guān)于與梯度計算中使用的區(qū)域大小相同或不同大小的區(qū)域的映射表或其它數(shù)據(jù)結(jié)構(gòu)中的判決信息。對每一區(qū)域的判決被提供給掩碼生成器2450,后者產(chǎn)生指示用于圖像中的各區(qū)域的梯度斜率判決的梯度斜率掩碼和/或二進制梯度斜率掩碼2495。例如,掩碼2495包括對每一梯度斜率區(qū)域等于"1"的比特,以及對其它區(qū)域等于"0"的比特。接受所計算的梯度作為輸入,考慮了降采樣和掩碼判決,掩碼生成器2450可產(chǎn)生指示原始圖像的不同區(qū)域的最終梯度斜率的另一掩碼2495。當GSR檢測器2400在梯度計算之前執(zhí)行降采樣時,掩碼生成器2450可以將經(jīng)降采樣的區(qū)域的梯度斜率分配給原始圖像的相應(yīng)區(qū)域。GSR檢測器2400的組件在圖24中被示為分開的模塊,但是這些組件的功能可取決于實現(xiàn)被重新排列、組合或拆分成不同的模塊。此外,梯度斜率檢測器2400的組件在其它實現(xiàn)中可被省略。例如,不需要降采樣。GSR檢測器不需要取紋理圖作為輸入,并且可改為從某一其它源獲得關(guān)于一區(qū)域是否平滑的指示。GSR檢測器不需要使用一致性檢驗器。盡管GSR檢測器將做出關(guān)于一區(qū)域是否為梯度斜率區(qū)域的某種判決,但是如何做出判決的細節(jié)(包括判決模塊中的判決規(guī)則)可以取決于實現(xiàn)而變化。梯度斜率判決不需要被包括在二進制掩碼中,并且可以某一其它方式傳遞給編碼器的其它部分。A.具有降采樣的基于區(qū)域的梯度方向估計降采樣可在找出區(qū)域的梯度方向之前使用以降低計算成本。在一種實現(xiàn)中,如果原始圖像寬度大于1280且高度大于720,則對原始圖像進行4-l降采樣。例如,在圖像寬度為1920像素且圖像高度為1080像素的1080p安排中,解碼器產(chǎn)生寬度為480像素且高度為270像素的經(jīng)降采樣的圖像。通常,經(jīng)降采樣的圖像被劃分成相同大小的非重疊矩形區(qū)域。例如,在降采樣之后,每一16x16的區(qū)域?qū)?yīng)于原始的、全分辨率圖像的4個宏塊(16個塊)。如果經(jīng)降采樣的圖像中的區(qū)域所對應(yīng)的至少12個塊是平滑的,則該區(qū)域被認為是平滑區(qū)域。區(qū)域大小取決于實現(xiàn),并且梯度估計中的區(qū)域和原始圖像中的區(qū)域之間的關(guān)系取決于降采樣比率而變化。降采樣也可用于在盡管存在諸如膜顆粒等異常的情況下也能改進梯度斜率區(qū)域檢測的準確度。例如,考慮如圖25所示的具有DC塊值的一部分圖像2500。圖像部分2500的大部分具有一致的梯度斜率方向,如由從該圖像部分的頂部到底部逐漸增加的DC值所示的。然而,白樣本值表示受到膜顆粒影響的DC值,這造成了全分辨率下的異常梯度斜率方向。采用水平和垂直的簡單2_1降采樣,使用深色邊框的樣本值來計算梯度斜率方向。由于經(jīng)降采樣的值維持一致的梯度斜率,因此膜顆粒不影響梯度斜率的檢測。降采樣可用于其它圖像分辨率,并且也可使用其它降采樣比率。B.計算梯度斜率方向在一個實現(xiàn)中,為對平滑區(qū)域計算梯度斜率方向,向該區(qū)域應(yīng)用兩個16x16的羅盤算子尺w和i^(在圖26中定義)。這產(chǎn)生對于該區(qū)域的兩個梯度&、gy,一個對應(yīng)于水平方向,一個對應(yīng)于垂直方向。對于16xl6的區(qū)域,該羅盤算子對該區(qū)域的某些值給予正權(quán)重,而對該區(qū)域的其它值給予負權(quán)重?;蛘撸摿_盤算子以某一其它方式計算梯度。從兩個梯度中導(dǎo)出梯度方向的角表示,表示為e,并將其映射到[O,255]中的整數(shù)。圖27中的偽代碼2700示出了用于使用圖26的羅盤算子來對區(qū)域計算梯度方向的示例例程(^表示逐元素的乘積)。如果該區(qū)域是紋理化區(qū)域或邊緣區(qū)域,則該例程返回-2。如果該區(qū)域是平滑但是平坦的(由關(guān)于該區(qū)域的梯度gjf和gr的低絕對值指示),則該例程返回-1。否則,該例程計算梯度斜率為垂直梯度gy在水平梯度g^上的反正切,其中使用偏移量以在同一反正切值的梯度斜率之間區(qū)分(例如,正的反正切值是指示右上斜率還是左下斜率),并將斜率值的范圍表示為正數(shù)?;蛘撸阅骋黄渌绞接嬎闾荻?。例如,編碼器使用不同的羅盤算子、對斜率區(qū)域的不同閾值、計算斜率的不同邏輯、和/或?qū)π甭市畔⒌牟煌硎?。C.鄰域梯度一致性檢驗編碼器可以對區(qū)域執(zhí)行梯度一致性檢驗以幫助做出關(guān)于一區(qū)域是否應(yīng)被認為是梯度斜率區(qū)域的準確判決。梯度一致性檢驗有助于避免梯度斜率內(nèi)容檢測中的"假警報"。在一個實現(xiàn)中,梯度斜率一致性檢驗涉及使用3x3的滑動窗(三個區(qū)域乘三個區(qū)域)來確定梯度斜率一致性。圖28示出了用于對梯度斜率區(qū)域執(zhí)行一致性檢驗的技術(shù)。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)2800。在2810處,編碼器將滑動窗定位在圖像中的當前區(qū)域處。在2820處,編碼器檢驗滑動窗中的區(qū)域的梯度方向。然后,在2830處,編碼器對當前區(qū)域做出一致性判決。例如,給定(可能經(jīng)降采樣的)圖像中所檢測的平滑區(qū)域的梯度方向,使用包含3x3的相鄰區(qū)域的滑動窗來執(zhí)行梯度一致性檢驗。該窗以光柵掃描順序移動,從而將該窗定位在圖像中的一區(qū)域上(例如,通過使窗中心位于該區(qū)域上、執(zhí)行一致性檢驗、然后將該窗在圖像中從左向右移動)。對于給定窗值,一致性檢驗要求該窗內(nèi)的所有9個區(qū)域的最大和最小賴^^方場(參見例如圖27)之差小于32(等價于當斜率由從0到255的數(shù)字來表示時的45度)。如果滿足該條件,則對于3x3的區(qū)域集的移動窗值為1;否則其為0?;蛘?,編碼器使用一不同的機制來檢驗斜率方向的一致性,例如,使用不同大小的滑動窗、對最大斜率一最小斜率的不同斜率范圍閾值、諸如關(guān)于斜率一致性的方差等不同的度量、和/或不同的檢驗?zāi)J?,或?qū)γ恳粎^(qū)域而非對區(qū)域集計算滑動窗值。一致性檢驗對斜率信息的不同表示變化。編碼器然后可處理下一區(qū)域集(2840)。作為輸出,編碼器產(chǎn)生指示判決信息的掩碼或其它數(shù)據(jù)結(jié)構(gòu)。例如,編碼器產(chǎn)生通過定位滑動窗并對圖像中的區(qū)域集執(zhí)行一致性檢驗,并向每一區(qū)域集分配判決l(一致斜率)或0來獲得的二進制一致性掩碼(此處稱為cww/We"cyM"fl^)。可任選地,編碼器對判決信息執(zhí)行進一步的處理。在某些實現(xiàn)中,編碼器對一致性掩碼執(zhí)行形態(tài)運算以幫助細化關(guān)于圖像的梯度一致性判決。兩種可能的形態(tài)運算是虔^和,嚴(Z)z7afe)。例如,^紐運算對co肌'飾"^M^中的每一比特執(zhí)行,之后是,嚴運算。在虔紐運算中,如果在四個最接近的像素(此處為co,'飾^yMc^:中的值)中,有一個以上最初被標記為0,則最初被標記為1的比特被標記為0。在^^^運算中,如果在四個最接近的像素中有一個以上最初被標記為1,則最初被標記為O的比特被標記為1?;蛘撸幋a器生成掩碼而不使用形態(tài)運算或判決信息的其它后處理。D.判決規(guī)則和桶投票即使是在執(zhí)行了一致性檢驗之后,平滑區(qū)域的發(fā)生率也可能相當?shù)?,或者平滑區(qū)域可能被隔離,以致于其不足以被特別地編碼。例如,即使在應(yīng)用了形態(tài)運算之后,仍可能有co朋^e"cyAfa^中所表示的被足夠隔離以致于不需要差分量化的梯度斜率區(qū)域。在某些實現(xiàn)中,編碼器使用判決規(guī)則(包括例如桶投票)來幫助決定是否應(yīng)向圖像中的梯度斜率區(qū)域應(yīng)用DQ。在圖24的GSR檢測器2400中,判決模塊2440做出這些判決。在一個實現(xiàn)中,編碼器基于co朋&e"c;M^A做出關(guān)于當前圖像是否包含顯著梯度斜率的一個或多個二進制判決。掩碼cow^^o^/a^:被劃分成相同大小的25個矩形區(qū)域(稱為裙(^cfef)),其中每一行有5個桶,每一列有5個桶。("桶"區(qū)域因此大于用于判決的區(qū)域和用于梯度計算的區(qū)域。)對每一桶中的1計數(shù)。設(shè)S"cfeGA/Z):7是包含在位置(z',力處的桶中的1的個數(shù),其中0SO'S4。水平和垂直桶投影一分別是桶的每一列中的1的個數(shù)和桶的每一行中的1的個數(shù)一也根據(jù)以下關(guān)系來計算(9)在該實現(xiàn)中,如果滿足以下條件中的任一個,則圖像被認為包含顯著的梯度斜率1.co似/We"c;;Afo^:中至少6Q/()的像素(不管桶分布如何)被標記為1,或者2.在一個或多個桶中,至少75%的像素被標記為1,或者3.在一個或多個桶投影中,至少20%的像素被標記為1。例如,對于大小為960x1440的經(jīng)降采樣的圖像的16x16個區(qū)域用大小為20x30的掩碼(每一值用于經(jīng)降采樣的圖像的3x3的區(qū)域集)來表示,這些區(qū)域進而被劃分成25個桶,每一個桶對應(yīng)于一致性掩碼的24個區(qū)域。每一桶包括來自cora/Wewcy7Wa^:的24個比特,總共有25x24=600個比特。編碼器對每一桶中的1的個數(shù)計數(shù),其分布如圖29所示。編碼器檢査1的總數(shù)是否大于所有比特的6%。在這一情況下,l的總數(shù)(如圖29所示)是83,這大于全部比特的6%。因此,這一情況中的編碼器將由于以上對條件1的滿足而跳過桶投影。如果1的總數(shù)低于條件1的閾值,則編碼器將檢查任何桶中的75%的比特是否為1(條件2),且如有必要,檢査水平和垂直桶投影(條件3)來確定被指示為梯度斜率區(qū)域的區(qū)域是否使得應(yīng)生成梯度斜率掩碼和判決掩碼,諸如以下所述的宏塊級梯度斜率掩碼?;蛘撸幋a器使用其它判決規(guī)則來處理掩碼co似/We"c;;M^A:或其它表示中的一致性信息。例如,條件l、2和3中所示的百分比閾值可以取決于實現(xiàn)而變化?;蛘?,省略一個或多個條件,或者對條件進行重新排序、用其它條件(例如,桶投影的不同方向等)來替換或補充。除了檢驗一致性信息之外,編碼器在決定是否應(yīng)向圖像中的梯度斜率區(qū)域應(yīng)用DQ以及應(yīng)用多少DQ時還可考慮梯度值和/或其它信息。作為另一替換,編碼器可以將這些判決規(guī)則一起省略,且在生成梯度斜率掩碼時僅使用co朋/We^yMa^。E.宏塊級梯度斜率掩碼生成為了提供可用于稍后編碼器的判決制定形式的梯度斜率信息,編碼器將信息置于映射表、掩碼或其它數(shù)據(jù)結(jié)構(gòu)中。該信息可包括梯度斜率區(qū)域存在/缺失信息,以及梯度斜率區(qū)域的實際梯度方向值。對于梯度斜率存在/缺失信息,如果檢測到梯度斜率區(qū)域,則編碼器產(chǎn)生梯度斜率掩碼。例如,編碼器通過將區(qū)域級掩碼(諸如co似/We"c;^/fl^)轉(zhuǎn)換回原始圖像的宏塊級并考慮可能的降采樣,來產(chǎn)生宏塊級梯度斜率掩碼(此處稱為AffiS7o/eMa^:)。注意,cww/WewcjM/a^:中的每一值對應(yīng)于原始圖像中的9個宏塊,或者如果圖像被4-1降釆樣則對應(yīng)于36個宏塊。對于cwmWewcyAfa^:中值為1的每一比特,編碼器在AffiS/o;e71^^:中將相應(yīng)宏塊標記為1,不平滑的宏塊除外。檢驗平滑度再次有助于避免梯度斜率檢測中的假警報。例如,在一個實現(xiàn)中,編碼器使用紋理圖來獲得關(guān)于宏塊中的塊的紋理信息,并且僅當宏塊內(nèi)的所有四個塊都是平滑的時候該宏塊才被認為是平滑的?;蛘撸幋a器提供某一其它形式的梯度判決信息和/或?qū)陦K平滑度使用某一其它判決。對于梯度方向信息,通過將每一區(qū)域的梯度方向分配給所有其相應(yīng)的平滑宏塊來生成梯度方向圖。通過這樣做,編碼器解決了由于梯度計算之前的降釆樣而引起的原始圖像的宏塊和梯度區(qū)域之間的可能的大小差。所生成的梯度斜率掩碼和梯度方向圖然后在編碼器中用于做出更好的編碼判決。一般而言,由梯度斜率區(qū)域檢測器生成的結(jié)果可由編碼器用于做出其它編碼判決。例如,編碼器可基于所生成的梯度斜率掩碼和/或梯度方向圖來做出量化判決。一些可能的編碼器判決如下所述。VI.調(diào)整量化以保存非零AC系數(shù)通常,由編碼器中的碼率控制單元向圖像分配圖像級量化參數(shù)。使用相同的圖像級QP,用于表示高度紋理化的宏塊的比特的數(shù)量通常要比用于表示低紋理化宏塊的比特的數(shù)量要大得多(多達10到50倍)。然而,由于人類視覺系統(tǒng)對于繁忙的、高度紋理化的區(qū)域中的失真要比平滑的、低紋理化區(qū)域中的失真更不敏感,對低紋理化宏塊使用較小QP而對高度紋理化的宏塊使用較大QP是有意義的。這導(dǎo)致常用的根據(jù)人類視覺重要性來分類宏塊(通常使用塊或塊內(nèi)梯度強度的方差)并分配與某一感知加權(quán)成比例的目標個數(shù)的比特的策略。用于要修改的每一宏塊的量化參數(shù)通過根據(jù)加權(quán)來修改圖像級量化器來選擇。實驗表明,在非常低變化的平滑區(qū)域中,塊通常被量化為僅在DC系數(shù)中有能量(沒有剩余非零AC系數(shù)),即使是在合理的低QP下也是如此。令人驚奇的是,當極度平滑區(qū)域中的相鄰塊中的DC值在各塊之間僅改變1時,所感知到的成塊的輪廓偽像要比使用絕對值方面小的這一差所預(yù)期的嚴重得多。此類偽像在本應(yīng)是良好編碼的圖像內(nèi)部的相對小區(qū)域中的出現(xiàn)會導(dǎo)致對整個圖像的總體感知質(zhì)量被降低。傳統(tǒng)的基于碼率-失真和基于感知的宏塊QP選擇技術(shù)沒有很好地處理這一情形。采用碼率-失真優(yōu)化,由于絕對值上小的失真,平滑塊將被認為是良好編碼的,并且因此不對這些塊花費進一步的比特。另一方面,典型的基于感知的方法將宏塊分類到感知類中,并且通過根據(jù)宏塊的感知類對圖像級量化參數(shù)加上或減去預(yù)定義的偏移量來向每一宏塊分配一量化參數(shù)。除非該預(yù)定義偏移量非常具侵略性(例如,將用于平滑區(qū)域的QP減少為1),否則這些方法不能保證具有小變化的平滑塊不會被量化為單個非零DC系數(shù),且所有AC系數(shù)被量化為0。但是設(shè)置一非常侵略性的偏移量會增加花費在宏塊上的比特,而這些宏塊可能不需要這些比特來改進感知質(zhì)量,從而低效地提高了比特率并且與由編碼器對碼率控制所選擇的圖像級量化參數(shù)沖突。因此,以下描述的若干技術(shù)和工具選擇性地且明智地分配圖像內(nèi)的比特,使得向平滑區(qū)域分配足夠的比特以減少或去除成塊或輪廓偽像的引入。例如,編碼器對I圖像內(nèi)的每一宏塊計算QP并選擇一量化參數(shù)以向平滑塊分配足夠的比特,由此減少了I圖像中感知到的成塊偽像。對于具有一個或多個平滑塊的每一宏塊,選擇一QP,使得對該宏塊的每一塊有至少^個非零量化的AC系數(shù),其中W是大于或等于1的整數(shù)。通常,所保存的AC系數(shù)是用于變換的最低頻率AC基函數(shù)的系數(shù),這表征了塊上水平和/或垂直地改變的漸進值。這往往有助于每一塊的感知到的視覺質(zhì)量,尤其是對于具有低變化的平滑區(qū)域。在一個實現(xiàn)中,編碼器選擇不超過圖像QP的最大QP,該QP如所需地保存了AC系數(shù)??梢源嬖谖幢4娣橇鉇C系數(shù)的情形(例如,非常平坦的塊)。然而,一般而言,以此方式,編碼器不會在以較小QP花費比特上過度侵略,并且減少或避免了與圖像QP的沖突。采用合理的W值,所選的QP不會對大多數(shù)宏塊改變;它對于大多數(shù)宏塊與圖像QP相同,并且僅幾個平滑塊受到影響。合理的W值是1、2、3或4。所選QP更有可能對具有低紋理的宏塊改變。在一個實現(xiàn)中,W=1或2改進了感知的質(zhì)量,而圖像比特率沒有太多增加。圖30示出用于選擇宏塊QP來幫助保存一個或多個非零AC系數(shù)的示例技術(shù)3000。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)3000。在3010處,編碼器找出宏塊的每一亮度塊的第W大的AC系數(shù)。例如,如果W=2,則編碼器找出16x16的宏塊的四個8x8的塊的每一個的次大的AC系數(shù)。設(shè)JC(O)、JC(l)、^C(2)、^C(3)分別是四個亮度塊0、1、2和3的第W大的系數(shù)。對于宏塊中的不同塊組織,第W大的系數(shù)可以來自宏塊中的更多或更少塊。在3020處編碼器找出這些第W大系數(shù)值中的最小值。對于四個塊的第大系數(shù),v4Cmin=min04C(0),JC(l),^C(2),^C(3))。對于其它塊數(shù),不同地計算JCmin。在3030處,編碼器對宏塊設(shè)置QP,使得JCmi。位于該QP的死區(qū)閾值之外。死區(qū)閾值是用于在使用QP的值來量化時將AC系數(shù)量化為0的"截止"閾值。死區(qū)閾值通常是對給定QP預(yù)定的,并且與該QP成比例。死區(qū)閾值是在0和第一個重構(gòu)點之間的某一點處選擇的。當編碼器使用均勻量化器或非均勻量化器時,第一個重構(gòu)點取決于QP值以及是使用了均勻還是非均勻量化。在一個實現(xiàn)中,第一個重構(gòu)點是量化系數(shù)水平=1的重構(gòu)值,這對于均勻量化為2申QP,而對于非均勻量化為3*(^。對于均勻量化,截止閾值因此落在0和2*(^>之間。對于非均勻量化,截止閾值因此落在0和3+QP之間。例如,死區(qū)閾值Z(QP)對均勻量化被選為Z(QP)=6*QP/5,而對于非均勻量化被選為Z(QP)=2*QP?;蛘撸墒褂闷渌刂归撝?。如果Abs(」C)<Z(QP),則AC系數(shù)將被量化為0為對宏塊設(shè)置(3030)QP,編碼器可通過從圖像QP開始并遞減QP直到達到用于量化器的最小QP(例如QP=1)或滿足不等式Abs04Cmin)>=Z(QP),將JCmin與用于候選的QP值的Z(QP)進行比較,來對宏塊找出保存至少N個AC系數(shù)的QP(QPm)。如果滿足不等式Abs(^Cmin)>=Z(QP),則編碼器將該宏塊的閾值QP設(shè)為滿足該不等式的第一個QP(即,最高合格QP)。或者,編碼器使用其它邏輯來計算宏塊的QP,例如從最低QP開始或使用對QP值的二分搜索。使用QP:n來量化宏塊中的所有塊的過程可被稱為^^-夕^T:匕特率量化。在^r,t特率量化技術(shù)中,編碼器如上所述對宏塊的每一亮度塊單獨確定產(chǎn)生所需個數(shù)的非零AC系數(shù)所需的最大QP(不大于圖像QP)(例如,對于塊O、1、2和3分別為QPQ、QP!、QP2、和QP3)。它遵循QPm等于QPQ、QP。QP2和QP3的最小值。為減少比特使用,編碼器可使用QP,代替QPm來量化塊/(其中/=0,1,2,3等等)。在對整個宏塊制定單個QP的編碼器中,編碼器可改為當使用QPm量化該塊時在對每一塊/使用QP,來量化時僅保持那些非零的AC系數(shù),從而僅保持了給定塊中前W個非零AC系數(shù),即使該塊中的AC系數(shù)將隨著通過QPm的量化而被保存也是如此。對于圖30所示的量化過程,對每一亮度塊的量化過程可作為一個兩遍過程來執(zhí)行。在第一遍中,編碼器在DCT系數(shù)小于Z(QP,)時將該系數(shù)"閾限"為0,否則保持相同的DCT系數(shù)。然后,使用QPw以相同的方式來量化"閾限"的DCT系數(shù)?;蛘撸幋a器以某一其它方式保存非零AC系數(shù)。例如,編碼器可在除了逐宏塊的基礎(chǔ)之外的其它基礎(chǔ)(例如,逐塊的基礎(chǔ))上選擇QP。編碼器可對I圖像、P圖像或B圖像或其組合保存AC系數(shù)。如果在最小可能QP下非零的量化系數(shù)的個數(shù)小于見則W可以被相應(yīng)地調(diào)整。VII.對DC漂移的差分量化在典型的有損編碼情形中,并非所有量化的DC和AC系數(shù)都可在反量化之后精確地恢復(fù)。例如,在某些視頻編解碼器中,對于某些QP和DC系數(shù)值,DC系數(shù)值漂移了1(即,相對于其量化前的值增加或減少了1)。該現(xiàn)象是DC2要移的一個示例。某些DC系數(shù)值的表示通過一個或多個較低QP的量化和反量化是無損的,但是在其它較高QP中是有損的。具有其中所有AC系數(shù)都被量化為0且DC系數(shù)不能被精確恢復(fù)的若干塊的區(qū)域可能在DC漂移區(qū)域中展示出可見的輪廓偽像。這些具有輪廓偽像的區(qū)域通常是諸如天空、水或光線等平滑的梯度斜率區(qū)域。圖31是示出在量化和反量化之后在梯度斜率區(qū)域中的三個相鄰塊的DC漂移的圖示。梯度斜率區(qū)域中的三個相鄰的塊3102、3104、3106的DC值在量化之前分別為68、69和70。在量化和反量化之后,塊3104的DC值漂移到70。如圖31所示,這三個相鄰塊的DC值現(xiàn)在是68、70和70。當這些塊在梯度斜率區(qū)域中時,量化的DC值可以引起可感知的輪廓偽像。例如,再次參考圖22A-C,梯度斜率區(qū)域2210已被量化,導(dǎo)致圖22B中的可見的輪廓偽像。如圖22C所示,對宏塊2250的上半部分塊的DC系數(shù)的量化導(dǎo)致從DC值68重構(gòu)的均勻值,而對下半部分的塊的DC系數(shù)的量化導(dǎo)致從DC值70重構(gòu)的均勻值。因此,以下描述的若干技術(shù)和工具由視頻編碼器用于檢測DC漂移區(qū)域并調(diào)整量化以減少或避免在DC漂移區(qū)域中的輪廓偽像的引入。圖32是示出用于調(diào)整量化以減少或避免DC漂移區(qū)域中的輪廓偽像的引入的通用技術(shù)3200的流程圖。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)3200。在3210處,編碼器檢測漂移區(qū)域。對DC漂移區(qū)域的搜索可以通過先前的梯度斜率檢測來協(xié)助。例如,如下所述,編碼器通過檢測一個或多個梯度斜率區(qū)域(或使用先前計算的梯度斜率檢測信息)然后標識梯度斜率區(qū)域中的DC漂移塊來檢測DC漂移區(qū)域。在3220處,編碼器調(diào)整DC漂移區(qū)域中的量化。例如,編碼器可使用差分量化(DQ)來編碼DC漂移塊以減少或避免因DC漂移引起的輪廓偽像的引入。編碼器對某些宏塊(具有DC漂移塊的宏塊)減小QP,但對其它塊不改變QP。對具有DC漂移塊的宏塊減小QP有助于對這些宏塊保持DC值無損,由此減少或避免了輪廓偽像的引入。編碼器可使用雙級DQ或多級DQ來解決DC漂移問題,且因此在控制比特使用的同時改進視覺質(zhì)量。如果有更多圖像要分析,則編碼器處理下一圖像(3230)?;蛘?,編碼器在逐宏塊的基礎(chǔ)上或某一其它基礎(chǔ)上調(diào)整對DC漂移區(qū)域的A.梯度斜率檢測可使用梯度斜率檢測來標識圖像中的一個或多個梯度斜率區(qū)域。梯度斜率區(qū)域往往展示出輪廓偽像,尤其是在區(qū)域中的塊具有非零DC系數(shù)值和在量化之后僅有O的AC系數(shù)的時候。一旦找到,可對這些區(qū)域檢驗可能會導(dǎo)致輪廓偽像的DC漂移塊。例如,編碼器使用此處所描述的(第V節(jié))技術(shù)或某一其它技術(shù)來找出梯度斜率區(qū)域。如果塊中僅有的非零系數(shù)是量化之后的DC系數(shù),則編碼器將這些塊作為要進行DC漂移區(qū)域調(diào)整的候選塊來對待?;蛘?,編碼器將其它塊認為是要進行DC漂移區(qū)域調(diào)整的候選塊。B.標識DC漂移塊編碼器將些候選塊標識為DC漂移塊。DC漂移塊的標識取決于用于壓縮這些塊的量化器和QP的細節(jié)。例如,某些重構(gòu)的DC系數(shù)在一個QP下將不會從其原始值漂移,但是在較粗略的QP下將漂移。一個編碼器中用于不同QP的DC漂移系數(shù)的示例在下表中提供。該表指示DC系數(shù)值對不同的QP值展示了DC漂移,其中QP是從參數(shù)PQIndex(以及可能的半步參數(shù))中顯式地導(dǎo)出,或從參數(shù)PQIndex(以及可能的半步參數(shù))中隱式導(dǎo)出的。未在表中列出的DC值對于示例編碼器中所指示的QP是無損的;用于3以下的QP的DC值(未在表中示出)都是無損的。示例編碼器不對高于表中所示的那些QP執(zhí)行DC漂移調(diào)整。在該示例編碼器中,DC系數(shù)的量化對于不同的量化器(例如,均勻、非均勻)是相同的。哪些DC系數(shù)值是DC漂移系數(shù)在不同的視頻編解碼器中不同。不同的量化器(例如,均勻、非均勻)在DC系數(shù)的量化在不同量化器中不同的情況下可導(dǎo)致不同的漂移模式。表3:示例DC漂移系數(shù)<table>tableseeoriginaldocumentpage47</column></row><table><table>tableseeoriginaldocumentpage48</column></row><table><table>tableseeoriginaldocumentpage49</column></row><table><table>tableseeoriginaldocumentpage50</column></row><table><table>tableseeoriginaldocumentpage51</column></row><table>具有表3所示的DC漂移系數(shù)的示例編碼器一般對紋理化區(qū)域使用與用與平滑區(qū)域不同的QP。示例編碼器通常使用范圍3-5中的QP來編碼平滑區(qū)域。如以上表3所示,對于QP3-5,所有漂移的DC值都比原始DC值大1。其它編碼器可對平滑區(qū)域使用與紋理區(qū)域不同的qp。為在檢測DC漂移塊時幫助減少或避免輪廓偽像的引入,示例編碼器改變包含dc漂移塊的宏塊的qp以保持dc值在這些宏塊中是無損的。具體地,示例編碼器將包含DC漂移塊的宏塊的QP減少為QP=2。(其它編碼器可對DC漂移區(qū)域使用某一其它QP。)一般而言,編碼器可選擇導(dǎo)致宏塊的塊的DC系數(shù)的無損處理的最大可用QP。編碼器計算每一塊的平均亮度值以確定梯度斜率區(qū)域中的DC漂移塊,因為平均亮度值對應(yīng)于DC漂移值(在補償了變換中的擴充之后)。平均亮度值允許編碼器估計或預(yù)測哪些塊具有dc漂移?;蛘撸幋a器計算真實的dc值并在DC漂移表中查找它們以精確地標識哪些塊將具有漂移。編碼器可以執(zhí)行附加處理來排除梯度斜率區(qū)域中的某些隔離DC漂移塊。在該示例編碼器中,一旦當前塊被標識為位于梯度斜率區(qū)域中的DC漂移塊,就檢驗周圍的四個相鄰塊。如果周圍的四個相鄰塊中的任一個是平滑塊且具有低于當前塊的漂移的DC值的DC值,則編碼器對包含當前塊的宏塊使用QP=2來保持dc值無損?;蛘?,編碼器不對相鄰塊進行檢驗,或者檢驗相鄰塊的其它排列以確定是否在用于DC漂移區(qū)域的QP中做出改變。c.多級差分量化成本模型雙級DQ和多級DQ通常具有不同的比特率成本。在一個實現(xiàn)中,使用每宏塊l比特來用信號表示圖像QP或"全宏塊"雙級DQ中的替換QP,并且使用每宏塊至少3比特來用信號表示圖像QP或多級DQ中的替換QP。盡管編碼器可使用多級DQ來允許減少包含DC漂移塊的平滑區(qū)域中的QP,但編碼器可以在雙級DQ情形中改為選擇對所有平滑區(qū)域調(diào)整QP(例如,調(diào)整為QP-2)并對圖像的其余部分使用較粗略的圖像QP。例如,編碼器可以在多級DQ的信令成本被發(fā)現(xiàn)為相對于雙級DQ的成本過于昂貴的情況下這樣做。在一個實現(xiàn)中,使用下表來計算分別從QP-3,4,5和6到QP=2的平滑塊的成本。g」'S腳o麵od:Z)殿尸C。^/={18,22,28,36}.該表在以下雙級DQ成本B(QP)成本計算的示例中使用。5(QP)=宏資腺^/"教+(雙級差分量眾宏炎游^"教_"C蔡移炎游#"成本B(QP)解出了每宏塊的雙級成本信令的成本,并估計了對塊使用QP=2代替3、4、5或6的增加的比特成本。多級DQ成本M(QP)被計算為M(QP)=宏炎游W教*3)+(雙綴差分量眾宏炎游^教-Z)C蔡移層糊*8+("C蔡移湖履*3);成本M(QP)解出了多級DQ的信令成本,假定對某些宏塊量化參數(shù)的轉(zhuǎn)義編碼。如果5(^)〈Af(^),則將使用雙級DQ,并且將對所有平滑塊使用QP二2。否則,將使用多級DQ?;蛘撸幋a器對不同類型或配置的DQ使用其它成本模型。或者,編碼器在檢測到DC漂移塊時對整個圖像減小QP,或使用某一其它技術(shù)來改變量化以在檢測到DC漂移塊時減少或避免輪廓偽像的引入。D.圖像QP切換在一個示例編碼器中,多級DQ需要3個比特來用信號表示從圖像QP到圖像QP+6的任何QP。該范圍之外的任何QP將用8比特通過轉(zhuǎn)義編碼來用信號表示。用于平滑區(qū)域的替換QP—般小于圖像QP,且因此需要轉(zhuǎn)義編碼。切換圖像QP因此可節(jié)省對多級DQ的編碼開銷。例如,編碼器可使用上述多級DQ成本模型來選擇圖像QP。例如,對于三級情形(例如,圖像QP、平滑區(qū)域QP和DC漂移QP),對圖像QP的不同候選值計算多級DQ成本。編碼器可以選擇具有最小開銷成本的圖像QP?;蛘?,編碼器使用其它準則來切換圖像QP,或者不執(zhí)行圖像QP切換。E.對髙紋理宏塊的粗略量化如果做出使用多級DQ的判決,則可通過向高紋理宏塊分配比圖像QP高(更粗略)的QP來對這些宏塊使用粗略量化。對圖像使用多級DQ(例如,為了對DC漂移宏塊使用較小QP)的判決意味著沒有用信號表示高于圖像QP的每宏塊粗略QP的附加開銷成本。例如,圖像QP+1可被用作粗略QP以避免量化等級中的可被注意到的差別,或者可使用某一其它QP。在編碼器決定對當前圖像使用多級DQ之后,可使用紋理閾值來確定哪些宏塊將用粗略QP來量化?;蛘撸幋a器使用其它準則來確定某些區(qū)域(例如,宏塊)是應(yīng)使用粗略QP還是不使用粗略QP。F.用于DC漂移量化的示例技術(shù)圖33是示出用于調(diào)節(jié)DC漂移區(qū)域中的量化以減少或避免量化偽像的引入的組合技術(shù)3300的流程圖。諸如圖10的編碼器1000等編碼器或其它工具執(zhí)行技術(shù)3300。該組合技術(shù)是組合了上述若干方面的一個示例。其它技術(shù)將不使用參考該示例描述的所有方面,或?qū)⒁圆煌拇涡蚧蛱鎿Q方式來執(zhí)行它們。在3310處,編碼器例如如第V節(jié)中所描述的那樣檢測當前圖像中的一個或多個梯度斜率區(qū)域。在3320處,編碼器例如使用DC漂移表來檢測梯度斜率區(qū)域中的DC漂移塊。編碼器然后決定如何量化圖像。在3330處,編碼器決定是否對該圖像使用雙級DQ。如果是,則編碼器對DC漂移區(qū)域(3340)和其它平滑區(qū)域使用小于圖像QP的QP。否則,在3350處,編碼器決定是否對該圖像使用多級DQ。如果是,則編碼器對DC漂移區(qū)域使用小于圖像QP的QP(3360),可對其它平滑區(qū)域使用不同的QP,并且如果存在高紋理宏塊,則對高紋理宏塊使用粗略QP(諸如大于圖像QP的QP)(3370)。如果編碼器沒有選擇雙級或多級DQ,則編碼器減小圖像QP并對DC漂移區(qū)域(3380)以及其它區(qū)域使用減小的圖像QP?;蛘?,如果雙級DQ和多級DQ的成本都太高,則編碼器對DC漂移區(qū)域跳過QP減小。當編碼器選擇了一量化方案時,編碼器在3390處壓縮該圖像,并在還剩余任何圖像要處理時處理下一圖像(3395)。參考各實施例描述和示出了本發(fā)明的原理之后,可以認識到,可以在排列和細節(jié)上修改各實施例,而不脫離這些原理。應(yīng)當理解,此處所描述的程序、過程或方法不相關(guān)于或不限于任何特定類型的計算環(huán)境,除非另外指明??梢勒沾颂幩枋龅慕虒?dǎo)來使用各種類型的通用或?qū)S糜嬎悱h(huán)境或執(zhí)行操作。以軟件示出的實施例的元素可以用硬件來實現(xiàn),反之亦然。鑒于可應(yīng)用本發(fā)明的原理的許多可能的實施例,要求保護落入所附權(quán)利要求書及其等效技術(shù)方案的范圍和精神之內(nèi)的所有這樣的實施例作為本發(fā)明。權(quán)利要求1.一種在視頻編碼器中的方法,包括對視頻圖像中的多個塊中的每一塊計算多個變換系數(shù);標識所述視頻圖像中包含DC漂移塊的一個或多個部分;對所述視頻圖像調(diào)整量化以減少在重構(gòu)所述視頻圖像時的輪廓偽像;以及輸出所述視頻圖像的已編碼數(shù)據(jù)。2.如權(quán)利要求l所述的方法,其特征在于,所述標識視頻圖像中包含DC漂移塊的一個或多個部分包括-標識所述視頻圖像中的一個或多個梯度斜率區(qū)域;以及對所述一個或多個梯度斜率區(qū)域中的多個塊中的一個或多個分析DC漂移系數(shù)上的量化效應(yīng)。3.如權(quán)利要求2所述的方法,其特征在于,所述視頻編碼器分析紋理圖以標識所述視頻圖像中的一個或多個梯度斜率區(qū)域。4.如權(quán)利要求1所述的方法,其特征在于,所述對視頻圖像調(diào)整量化包括對包含所述DC漂移塊中的一個或多個的一個或多個宏塊減小量化步長。5.如權(quán)利要求l所述的方法,其特征在于,所述量化包括雙級差分量化。6.如權(quán)利要求l所述的方法,其特征在于,所述量化包括多級差分量化。7.如權(quán)利要求l所述的方法,其特征在于,所述標識視頻圖像中包含DC漂移塊的一個或多個部分包括使用所述多個塊的DC系數(shù)或所述多個塊的平均樣本值來標識所述DC漂移塊,并且其中,所述量化使用均勻或非均勻量化器。8.如權(quán)利要求l所述的方法,其特征在于,所述標識視頻圖像中包含DC漂移塊的一個或多個部分包括以給定的量化步長檢查具有相關(guān)聯(lián)的DC漂移偽像的DC系數(shù)值列表。9.如權(quán)利要求l所述的方法,其特征在于,所述標識視頻圖像中包含DC漂移塊的一個或多個部分包括標識所述.DC漂移塊;標識一個或多個梯度斜率區(qū)域;以及對所述一個或多個梯度斜率之一中的所述DC漂移塊之一,檢查是否有任何相鄰塊既是平滑的又具有較低或較高的DC系數(shù)值。10.如權(quán)利要求l所述的方法,其特征在于,所述調(diào)整量化還包括對所述視頻圖像的高紋理部分增加量化。11.一種或多種其上儲存有使計算機執(zhí)行如權(quán)利要求1所述的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。12.—種在具有量化器的視頻編碼器中的方法,包括對視頻圖像中的多個塊中的每一塊計算DC系數(shù);在所述多個塊中,檢測具有在以第一量化步長量化和反量化之后改變值的DC系數(shù)的一個或多個塊;對包括具有在以所述第一量化步長量化和反量化之后改變值的DC系數(shù)的所述一個或多個塊中的至少一個的至少一個宏塊選擇第二量化步長,其中所述第二量化步長小于所述第一量化步長;在對所述至少一個宏塊的量化中使用所述第二量化步長;以及輸出所述視頻圖像的己編碼數(shù)據(jù)。13.如權(quán)利要求12所述的方法,其特征在于,所述第一量化步長是圖像量化步長。14.如權(quán)利要求12所述的方法,其特征在于,所述第一量化步長是小于圖像量化步長的平滑區(qū)域量化步長。15.如權(quán)利要求12所述的方法,其特征在于,所述第二量化步長是在雙級差分量化期間選擇的。16.如權(quán)利要求12所述的方法,其特征在于,所述第二量化步長小于用于所述視頻圖像中的平滑區(qū)域的第三量化步長。17.—種或多種其上儲存有使計算機執(zhí)行如權(quán)利要求12所述的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。18.—種在視頻編碼器中的方法,包括檢測視頻圖像中的梯度斜率區(qū)域,所述梯度斜率區(qū)域包括一個或多個DC漂移塊,所述一個或多個DC漂移塊中的每一個具有在以第一量化步長量化和反量化之后改變值的DC系數(shù);對包括具有在以所述第一量化步長量化和反量化之后改變值的DC系數(shù)的所述一個或多個DC漂移塊中的至少一個的至少一個圖像部分選擇第二量化步長,其中所述第二量化步長小于所述第一量化步長;在對所述至少一個圖像部分的量化中使用所述第二量化步長;以及輸出所述視頻圖像的己編碼數(shù)據(jù)。19.如權(quán)利要求18所述的方法,其特征在于,還包括對所述視頻圖像中的高紋理圖像部分選擇第三量化步長,其中所述第三量化步長大于所述第一量化步長;以及在對所述高紋理圖像部分的量化中使用所述第三量化步長。20.—種或多種其上儲存有使計算機執(zhí)行如權(quán)利要求18所述的方法的計算機可執(zhí)行指令的計算機可讀介質(zhì)。全文摘要一種視頻編碼器標識視頻圖像中包含DC漂移塊的一個或多個部分并調(diào)整量化(例如,通過選擇較小的量化步長)來減少在重構(gòu)圖像時的輪廓偽像。該編碼器可通過標識圖像中的一個或多個梯度斜率區(qū)域并分析梯度斜率區(qū)域中的DC系數(shù)上的量化效應(yīng)來標識該圖像中包含DC漂移塊的(諸)部分。編碼器可對高紋理圖像區(qū)域選擇較粗略的量化步長。文檔編號H04N7/24GK101416511SQ200780012030公開日2009年4月22日申請日期2007年4月9日優(yōu)先權(quán)日2006年4月7日發(fā)明者C-L·林,P·蘇,X·左申請人:微軟公司