專利名稱:利用具有方向性的廣義層次樹中的集合分區(qū)的圖像和視頻適應性編碼的設計樹的制作方法
技術(shù)領域:
本發(fā)明總地涉及圖像和視頻編碼,更具體而言涉及用于利用具有方向性 (directionality)的廣義層次樹(generalized hierarchical tree)中的集合分區(qū)(set partitioning)的適應性熵編碼(adaptive entropy coding)裝置和方法中的樹適應性修
(tree adaptation)。
背景技術(shù):
熵編碼是圖像和視頻壓縮的重要組成部分,其通常響應于以下步驟(1)變換(和 /或預測),⑵量化,以及⑶熵編碼。以下是針對常見的JPEG熵編碼方法描述的,JPEG代表聯(lián)合圖片專家組并且是一套計算機圖像文件壓縮技術(shù)的IS0/IEC標準。JPEG文件是通過從某一范圍的壓縮質(zhì)量或者更具體而言從若干個壓縮算法之一中進行選擇來創(chuàng)建的。在通過JPEG壓縮來轉(zhuǎn)換圖像時, 所得到的圖像的目標大小或質(zhì)量被指定到近似或小于原始圖像的質(zhì)量水平。由于最高質(zhì)量的圖像導致最大的文件,所以在圖像質(zhì)量和文件大小之間作出折衷。根據(jù)該標準的JPEG方案包括二十九09)個不同的編碼過程,雖然JPEG實現(xiàn)者可能不會使用它們?nèi)?。當按JPEG執(zhí)行熵編碼時,每個8X8塊被利用離散余弦變換(DCT)來變換,并且 DCT系數(shù)被量化、Z字形掃描并被游程長度編碼。將會認識到,游程長度編碼通過創(chuàng)建相同像素的線狀群組而不是分別存儲每個像素的值,而提供了一種以更低率對圖像數(shù)據(jù)編碼的方式。離散余弦變換(DCT)提供了一種將任何波形表達為余弦的加權(quán)和的機制,并且其是許多形式的信號處理尤其是視頻壓縮的中心。圖IA示出了 4X4塊中的Z字形掃描的示例,系數(shù)位置在圖IB中示出。根據(jù)此Z字形樣式執(zhí)行熵編碼存在若干個缺陷。具體地有(1)缺乏率(rate)控制機制,同時咖字形掃描破壞了 DCT系數(shù)的2-D相依性。應當理解,量化中使用的參數(shù)部分決定率控制,從而通常必須嘗試不同的量化參數(shù)來獲得期望的文件大小。關(guān)于2-D相依性的喪失,將看到例如圖IB中的系數(shù)位置2禾Π 6如4X4塊中所示在頻譜中是接近的,然而響應于圖IA所示的Z字形掃描順序它們不是相鄰的而實際上是彼此遠離的。在可縮放圖像編碼中廣泛利用了基于比特平面的熵編碼。在此過程中,變換系數(shù)被轉(zhuǎn)換成二進制形式,并且被從最高有效比特平面(MSB)到最低有效比特平面(LSB)地編碼。在此過程期間,較低比特平面的編碼和解碼是基于對較高比特平面的知識的。比特流編碼過程可停止在任何地方、比特平面的任何深度處,其目標是滿足給定的比特率預算,同時提供合理良好的重建質(zhì)量。在編碼過程中的任何點停止的能力是可能的,因為每個系數(shù)的最重要部分(MSB)已經(jīng)被編碼了。此比特流編碼機制被稱為嵌入式編碼并且提供了良好的率控制。因此,需要一種具有低復雜度和高效率的用于執(zhí)行率可控的編碼和解碼的方法和裝置。在本發(fā)明內(nèi)滿足了這些和其他需要,本發(fā)明克服了先前開發(fā)的基于熵的圖像/視頻編碼技術(shù)的不足。
發(fā)明內(nèi)容
本發(fā)明提供了樹適應性修改,用于利用廣義層次樹內(nèi)的集合分區(qū)(SPRIGHT)的對圖像的適應性編碼方法中。為了描述簡單起見,這里用縮寫SPRIGHT來稱呼廣義層次樹中的集合分區(qū)。SPRIGHT編碼方法可用于嵌入式編碼,因為其同樣有類似的特征,同時其能夠提供改善的編碼效率。本發(fā)明針對不同的方向性樣式對不同類型的樹進行適應性修改,其中要使用的特定樹被從多個樹中選擇。為了改善諸如圖像和視頻之類的2D可視信號的編碼效率,本發(fā)明實現(xiàn)了響應于局部幾何特征(例如方向性)來對設計樹進行適應性修改。本發(fā)明生成針對在適應性熵編碼方法中使用而適應性修改的多個設計樹,該方法從多個候選中選擇一設計樹來對每個塊編碼。在這里被稱為“SPRIGHT編碼”的該編碼過程可利用比如DCT或DWT那樣的變換,或者諸如方向性變換之類的更先進變換。SPRIGHT編碼遵循如下的一般步驟將圖像或視頻幀劃分成塊,利用變換對每個塊去相關(guān),量化變換系數(shù),從一組多個樹中選擇一個樹并且利用該所選樹對塊編碼。編碼效率得到了大幅改善,因為樹不是固定的,而是響應于在系數(shù)的塊內(nèi)存在的2D關(guān)系來選擇的。本發(fā)明可以以多種方式來實現(xiàn),包括但不限于以下描述。本發(fā)明的一個實施例是一種用于生成供編碼期間使用的多個候選編碼樹的裝置, 包括(a)被配置用于接收和處理圖像和/或視頻幀的計算機;以及(b)可在該計算機上執(zhí)行的程序,用于(b) (i)利用倍頻帶分區(qū)(octave-band partitioning)來生成非方向性編碼樹,(b) (ii)響應于在水平或垂直方向上縮放頻率分量來生成水平和垂直編碼樹,以及 (b) (iii)進行倍頻帶分區(qū)以創(chuàng)建針對水平和垂直方向進行了適應性修改的多個候選編碼樹。本發(fā)明的至少一種實現(xiàn)方式還包括可在計算機上執(zhí)行的、用于響應于使用方向性變換生成多個候選編碼樹內(nèi)的對角編碼樹的程序。在至少一種實現(xiàn)方式中,多個候選編碼樹被配置用于響應于從多個候選編碼樹中選擇的樹結(jié)構(gòu)的預定遍歷來控制塊編碼。在至少一種實現(xiàn)方式中,多個候選編碼樹內(nèi)的每個候選編碼樹被配置有指定布置的樹葉節(jié)點和非樹葉節(jié)點;并且其中一個或多個樹葉節(jié)點被配置用于包含與每個非樹葉節(jié)點相關(guān)聯(lián)的系數(shù)。在至少一種實現(xiàn)方式中,多個候選編碼樹內(nèi)的每個候選編碼樹被配置成使得每個非樹葉節(jié)點的狀態(tài)由表明其后裔樹葉節(jié)點是包含全零系數(shù)還是不包含全零系數(shù)的比特來表示。 在至少一種實現(xiàn)方式中,多個候選編碼樹被配置用于保持在編碼器內(nèi),該編碼器從多個候選編碼樹中選擇要使用的編碼樹。在至少一種實現(xiàn)方式中,倍頻帶分區(qū)是通過將塊內(nèi)的系數(shù)分區(qū)成方形和L形來執(zhí)行的,其中L形被迭代地分區(qū)成方形。在至少一種實現(xiàn)方式中,當每個方形僅包含一個系數(shù)時,倍頻帶分區(qū)完成。在本發(fā)明的至少一種實現(xiàn)方式中,多個候選編碼樹被配置用于在變換被執(zhí)行之后對塊中的系數(shù)編碼。在至少一種實現(xiàn)方式中,變換包括非方向性或方向性變換。在至少一種實現(xiàn)方式中,圖像和/或視頻幀的編碼響應于用于進行以下操作的程序利用來自多個候選編碼樹中的編碼樹將視頻幀的圖像分區(qū)成塊;并且在編碼器內(nèi)對塊執(zhí)行方向性變換, 之后從多個候選編碼樹中選擇用來執(zhí)行編碼的期望樹結(jié)構(gòu);其中編碼的樹是在編碼期間響應于為每個系數(shù)找到頻率位置并且基于每個系數(shù)的頻率位置執(zhí)行倍頻帶分區(qū)來生成的。在至少一種實現(xiàn)方式中,程序被配置用于將塊的系數(shù)分類成包括非方向性、水平和垂直在內(nèi)的至少三個類別,其中編碼器從這至少三個類別中選擇一個模式用于對塊編碼。在至少一種實現(xiàn)方式中,程序被配置用于將塊的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別,其中編碼器從五個中選擇一個模式用于對塊編碼。在至少一種實現(xiàn)方式中,程序被配置用于將塊的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別,其中編碼器從五個可能模式中選擇一個模式用于對塊編碼;并且其中對角方向的分類是響應于方向性變換操作執(zhí)行的。在至少一種實現(xiàn)方式中,程序被配置用于在分區(qū)之前向塊應用縮放矩陣;其中按縮放矩陣的縮放是響應于塊的幾何關(guān)系執(zhí)行的;并且其中縮放包括垂直或水平縮放。在本發(fā)明的至少一種實現(xiàn)方式中,編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的。在至少一種實現(xiàn)方式中,編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的;并且其中在編碼期間生成的樹被配置成使得以下情況發(fā)生的概率較高所選擇的樹中的非樹葉節(jié)點的所有后裔都包含充分小的系數(shù)以在較高比特平面中被量化成零。在至少一種實現(xiàn)方式中,程序被配置用于在圖像/視頻編碼器內(nèi)利用設計樹進行適應性熵編碼的程序,包括將圖像或視頻幀劃分成塊;利用變換將每個塊去相關(guān)以創(chuàng)建系數(shù)塊;量化變換系數(shù);響應于對圖像的每個系數(shù)塊內(nèi)的幾何關(guān)系的確定從多個候選樹中選擇期望的樹結(jié)構(gòu)作為所選樹結(jié)構(gòu);以及利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群和對倍頻帶分區(qū)的使用來對每個系數(shù)塊編碼;其中一部分零系數(shù)響應于使所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將后裔樹葉節(jié)點編碼到由裝置生成的經(jīng)編碼的輸出比特流中,而被從經(jīng)編碼的輸出中消除。本發(fā)明的一個實施例是一種用于圖像或視頻的適應性編碼和解碼的系統(tǒng),包括 (a)編碼器,該編碼器具有被配置用于圖像和/或視頻編碼的處理元件和存儲器;(b)可在編碼器的處理元件上執(zhí)行的程序,用于執(zhí)行以下步驟(b) (i)將圖像或視頻幀劃分成塊, 利用變換將每個塊去相關(guān)以生成變換系數(shù)塊,(b) (ii)對于每個變換系數(shù)塊量化變換系數(shù), (b) (iii)響應于對圖像和/或視頻的系數(shù)塊內(nèi)的幾何關(guān)系的確定從至少包括水平和垂直方向的一組多個候選樹中選擇樹結(jié)構(gòu)作為所選樹結(jié)構(gòu),以及(b) (iv)利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群對塊編碼;其中一部分零系數(shù)響應于使所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將這些后裔樹葉節(jié)點編碼到被引導至解碼器的輸出比特流中,而被從經(jīng)編碼的輸出中消除;(C)解碼器,該解碼器具有被配置用于來自編碼器的比特流的圖像和/或視頻解碼的處理元件和存儲器;(d)可在解碼器的處理元件上執(zhí)行的程序,用于響應于執(zhí)行以下步驟而輸出圖像或視頻信號(d) (i)確定編碼器在對塊編碼時使用的所選樹結(jié)構(gòu),(d)(ii)將所選樹結(jié)構(gòu)的樹葉解碼成輸出的系數(shù),(d)(iii)響應于對沒有非零分支的非樹葉節(jié)點解碼而在輸出內(nèi)輸出零系數(shù),(d) (iv)對輸出執(zhí)行解量化,對輸出執(zhí)行逆變換,并且響應于對輸出的接收而重建圖像信號。本發(fā)明的一個實施例是一種用于生成供編碼器內(nèi)在圖像和/或視頻編碼期間使用的多個候選編碼樹的方法,包括(a)利用倍頻帶分區(qū)來生成非方向性編碼樹;(b)響應于(b) (i)在至少水平和垂直方向上縮放頻率分量以及(b) (ii)進行倍頻帶分區(qū)以創(chuàng)建針對至少水平和垂直方向進行了適應性修改的多個候選編碼樹,來(b)生成水平和垂直編碼樹。本發(fā)明提供了多種有益方面,這些方面可被單獨實現(xiàn)或者以任何期望的組合實現(xiàn),而不會脫離本教導。本發(fā)明的一個方面提供了多個候選編碼樹的生成,這多個候選編碼樹被針對圖像 /視頻編碼過程進行了適應性修改,該過程響應于正被編碼的每個圖像/視頻塊的方向性特性來選擇多個候選之一。本發(fā)明的另一個方面是針對編碼和解碼過程對編碼樹進行適應性修改,該過程響應于所選樹結(jié)構(gòu)中的零系數(shù)的集群而提供了高編碼效率。本發(fā)明的另一個方面是對用于編碼和解碼過程中的編碼樹的適應性修改,該過程不依賴于固定的樹結(jié)構(gòu)來對每個塊編碼/解碼。本發(fā)明的另一個方面是在響應圖像/視頻塊方向性對多個編碼樹進行適應性修改時對方向性變換的使用。本發(fā)明的另一個方面是在基于方向性來設定適應性編碼樹的過程期間對倍頻帶分區(qū)的使用。本發(fā)明的另一個方面是在倍頻帶分區(qū)之前基于塊像素之間的幾何關(guān)系使用縮放矩陣來(垂直地和/或水平地)對塊系數(shù)進行縮放。本發(fā)明的另一個方面是一種編碼和解碼方法,其可被利用在嵌入式和非嵌入式圖像/視頻編碼系統(tǒng)內(nèi)。在說明書的以下部分中將揭露本發(fā)明的其他方面,其中詳細描述是為了在不對其施以限制的情況下完整公開本發(fā)明的優(yōu)選實施例。
通過參考以下僅用于例示的附圖,將更全面地理解本發(fā)明
圖IA和IB是4X4系數(shù)塊陣列,其中在圖IA中示出了 Z字形掃描順序,并且在圖 IB中示出了系數(shù)位置。圖2A至2C是圖2A中的四個系數(shù)(A-D)的變換塊的2X2系數(shù)數(shù)據(jù)圖,以及圖2B 和2C中的根據(jù)本發(fā)明一個方面可為塊選擇的樹層次。圖3A至3C是如圖2A至2C所示的2X2系數(shù)塊的系數(shù)數(shù)據(jù)圖和根據(jù)本發(fā)明一個方面為塊選擇的樹層次操作。 圖4A至4C是與圖3A略有不同的系數(shù)塊的系數(shù)數(shù)據(jù)圖,及其相關(guān)聯(lián)的根據(jù)本發(fā)明一個方面為塊選擇的樹層次操作。圖5A至5E是描繪倍頻帶分區(qū)和相關(guān)聯(lián)的設計樹的4X4系數(shù)塊,其中示出了分區(qū)成方形、L形和子分區(qū)(例如分區(qū)成一半大小的方形)的四個級別的塊分區(qū)。圖6是示出假想譜形狀的示圖,其中描繪了對稱譜幅度。圖7是示出具有水平偏置的塊的譜的示圖。圖8是示出根據(jù)本發(fā)明一個方面針對水平和垂直譜的L形的塊分區(qū)圖。圖9是示出根據(jù)本發(fā)明一個方面響應于縮放矩陣的應用的水平分區(qū)的塊分區(qū)圖。圖10是示出根據(jù)本發(fā)明一個方面在縮放后水平塊的譜的示圖。圖11是示出根據(jù)本發(fā)明一個方面使用DCT樹來將塊分類成水平和垂直樣式的塊分區(qū)圖。圖12A至12D是示出根據(jù)本發(fā)明一個方面的方向性DCT的塊分區(qū)圖,在該方向性 DCT中對角樣式被旋轉(zhuǎn)成水平樣式并被修剪。圖13是根據(jù)本發(fā)明一個方面進行定位和縮放以為方向性DCT定位頻率位置的系數(shù)位置圖。圖14是示出根據(jù)本發(fā)明一個方面在縮放之前的方向性DCT系數(shù)的位置的示圖。圖15是示出根據(jù)本發(fā)明一個方面被映射到頻率域的第一示例的DCT系數(shù)的示圖。圖16是示出根據(jù)本發(fā)明一個方面在垂直縮放之后映射在頻率域中的第一示例的 DCT系數(shù)的示圖。圖17是示出根據(jù)本發(fā)明一個方面將系數(shù)分區(qū)成L形的第一示例的塊分區(qū)圖。圖18是示出為在圖17中映射的DCT系數(shù)生成的樹結(jié)構(gòu)的系數(shù)樹數(shù)據(jù)圖示例。圖19是示出根據(jù)本發(fā)明一個方面被迭代分區(qū)的樹結(jié)構(gòu)的系數(shù)樹數(shù)據(jù)圖。圖20是示出根據(jù)本發(fā)明一個方面連接樹葉的系數(shù)樹數(shù)據(jù)圖。圖21是示出根據(jù)本發(fā)明一個方面丟棄不必要節(jié)點的系數(shù)樹數(shù)據(jù)圖。圖22是示出根據(jù)本發(fā)明一個方面所利用的9模式DCT中使用的八個方向的示圖。圖23是編碼器-解碼器系統(tǒng)的框圖,其中示出了被配置用于根據(jù)本發(fā)明實施例執(zhí)行適應性熵編碼和解碼的計算機處理器和存儲器。圖M是根據(jù)本發(fā)明一個方面用于生成供具有方向性的廣義層次樹中的集合分區(qū)中使用的設計樹的方法的流程圖。
具體實施例方式更具體地參考附圖,出于例示目的,本發(fā)明實現(xiàn)在圖2A至圖對大體示出的裝置中。將會明白,裝置在配置和部件細節(jié)方面可以變化,并且方法在具體步驟和順序方面可以變化,而不脫離這里公開的基本思想。1.介紹?;诜较蛐缘木幋a樹的適應性修改被教導用于在我們的于2010年4月13日提交的序列號為12/758,981的美國專利申請中描述的適應性熵編碼和解碼裝置和方法,這里通過引用將該申請完全并入,其將廣義層次樹內(nèi)的集合分區(qū)(SPRIGHT)利用于圖像和視頻的編碼和解碼。本發(fā)明詳述了生成這些被方向性地適應性修改的編碼樹的方法,這些編碼樹能夠被基于SPRIGHT的視頻編碼裝置或方法所選擇?;赟PRIGHT的編碼在對圖像塊編碼時從根據(jù)本發(fā)明生成的多個候選的編碼樹中選擇。SPRIGHT方法是在圖像或視頻幀被劃分成塊時執(zhí)行的,其中每個塊被利用變換來去相關(guān),其變換系數(shù)被量化,并隨后響應于在塊內(nèi)找到的幾何關(guān)系從多個候選中選擇編碼樹,或者更具體而言響應于塊中的系數(shù)之間的二維OD)關(guān)系來執(zhí)行選擇。然后響應于所選擇的樹結(jié)構(gòu)來對塊編碼。從而可以顯著改善編碼效率,因為編碼樹在塊的范圍上不是固定的,而是響應于在每個系數(shù)塊內(nèi)存在的2D關(guān)系而為該塊選擇的。應當明白,被編碼的圖像或視頻幀可按若干種不同的方式被劃分成塊,而不脫離本發(fā)明的教導。例如,塊可被配置成任何任意形狀或大小,它們不需要是方形或規(guī)則形狀的。每個塊可包含單個或多個顏色分量。不那么優(yōu)選地,一個塊可包括整個圖像。然后根據(jù)以下編碼步驟來處理圖像或視頻幀的每個塊。利用變換,例如離散余弦變換(DCT)或其他提供去相關(guān)的變換(例如離散小波變換(DWT)),來將塊內(nèi)的值去相關(guān)。 應當明白,根據(jù)本發(fā)明的一種實現(xiàn)方式,在同一圖像內(nèi)可利用不同類型的變換。如果利用了不同類型的變換,則應當向解碼器傳達用于塊的變換的類型,其方式例如是通過響應于為每個塊編碼的一個或多個比特的狀態(tài)而通知解碼器。無論是如何執(zhí)行變換的,都優(yōu)選將變換的索引傳達給解碼器以幫助其對塊解碼。在變換之前,將會明白可執(zhí)行塊間預測或預濾波,但這不是必需的。然后量化塊內(nèi)的變換系數(shù)。應當明白,量化步驟將會把低于期望的量化閾值的所有系數(shù)量化為零。然后為每個塊從多個候選樹結(jié)構(gòu)(編碼模式)中選擇編碼樹結(jié)構(gòu)。樹結(jié)構(gòu)選擇優(yōu)選是響應于每個塊內(nèi)的系數(shù)之間的幾何關(guān)系(例如二維的)從一組多個編碼樹中作出的, 然后利用所選擇的樹結(jié)構(gòu)來對每個塊編碼。這多個編碼樹優(yōu)選是根據(jù)本發(fā)明的方法來預定義的。應當明白,用于圖像塊的編碼的樹結(jié)構(gòu)不是對于所有給定塊固定的,而是基于被編碼的特定塊的幾何特征來選擇的,從而編碼效率可得到顯著改善。在本發(fā)明的優(yōu)選方面中,樹結(jié)構(gòu)是響應于在對幾何特征分類時的方向性來選擇的。關(guān)于所選擇的樹的信息被通知給解碼器(例如用索引),以使得解碼器可以確定當塊原來被編碼時選擇了哪個樹結(jié)構(gòu),從而可對所編碼的圖像內(nèi)的基于樹的數(shù)據(jù)適當?shù)亟獯a。應當明白,在所使用的變換和所選擇的樹結(jié)構(gòu)之間通常存在關(guān)系。因此,在許多實現(xiàn)方式中,編碼器將發(fā)送一個索引來表示(變換,樹)對,這允許了(變換,樹)被聯(lián)合優(yōu)化。本發(fā)明實現(xiàn)了生成用于SPRIGHT編碼中的多個候選編碼樹。2. SPRIGHT 中的樹結(jié)構(gòu)。圖2A至2C示出了經(jīng)變換的2 X 2塊和多個編碼樹結(jié)構(gòu),其是以示例而非限制方式示出的。應當認識到,本發(fā)明可被應用到任何大小的塊,而不脫離本發(fā)明的教導。
圖2A為簡單起見描繪了小的2X2變換塊10,其具有系數(shù)A至D。通常,塊大小在 4X4、8X8、16X16、32X32等等的范圍內(nèi),雖然塊可被配置成任何期望的形狀和大小。在本發(fā)明中,每個樹被認為是用于幫助編碼和解碼的數(shù)據(jù)結(jié)構(gòu)并且大體上表示編碼模式。每個編碼樹被定義有從非樹葉節(jié)點(非末端節(jié)點)連接的樹葉節(jié)點(末端節(jié)點)。 每個樹葉節(jié)點表示來自塊的一個系數(shù),而每個非樹葉節(jié)點表示一組系數(shù),更具體而言是其所有后裔的集合。被稱為根的非樹葉節(jié)點包括給定塊的所有系數(shù)的集合。圖2B和圖2C例示了圖2A中所示的變換塊的兩種可能的樹結(jié)構(gòu)。在圖2B的樹12 中,示出了單個非樹葉節(jié)點16,其也是樹的根,從其直接聚組了四個系數(shù)A-D ISa-ISd0在圖2C的樹14中,示出了非樹葉節(jié)點20,其也是根20,從其關(guān)聯(lián)了作為Ma的樹葉節(jié)點A和另一非樹葉節(jié)點22,非樹葉節(jié)點22關(guān)聯(lián)了作為Mb、Mc、Md的三個樹葉節(jié)點B、C和D。從而,在圖2B中,所有系數(shù)都同時被聚組在一起,而在圖2C中,系數(shù)B至D在最低級別上被聚組在一起。3.利用編碼樹的SPRIGHT編碼。以下示例考慮了使用SPRIGHT編碼的非嵌入式版本的編碼。優(yōu)選執(zhí)行編碼樹的廣度優(yōu)先遍歷(breadth first traversal,BFT),并且響應于節(jié)點的類型和系數(shù)值來控制輸出。如果當前節(jié)點是樹葉,則輸出系數(shù)的值。應當明白,系數(shù)值優(yōu)選是非二進制的,并且能夠例如利用算術(shù)編碼來編碼。非樹葉節(jié)點包含一個或多個樹葉節(jié)點,并且例如被標記為1, 如果至少一個后裔節(jié)點具有非零系數(shù),或者被標記為0,如果相應的系數(shù)集合全都是零,從而所有的后裔節(jié)點都被跳過?!疤^”后裔節(jié)點指的是這些節(jié)點不被顯式編碼到所編碼的輸出比特流中,從而節(jié)省了用于這些零系數(shù)的編碼空間。將會認識到,雖然為了說明簡單,值1 和0被用于非樹葉節(jié)點值,但任何期望的值都可被利用來表明對于非樹葉節(jié)點是否存在非零后裔。圖3A至3C和圖4A至4D示出了具有相似的幾何條件的2X2塊的編碼。作為示例而非限制,非樹葉節(jié)點中的后裔情況被以二進制表示,其中“1”表明至少一個分支具有非零系數(shù),而“0”表明沒有分支具有非零系數(shù)。在此示例性實現(xiàn)方式中,非樹葉節(jié)點后裔情況從而要求對于每個非樹葉節(jié)點編碼單個比特,并從而不會顯著地增加比特預算。圖3A描繪了具有四個系數(shù)5、0、0、0的塊30。圖描繪了為塊50選擇第一編碼 32,其具有單個非樹葉節(jié)點36和單個級別39中的四個樹葉節(jié)點38a至38d。圖中的編碼的輸出生成五個值1、5、0、0、0的序列。將此編碼與圖3C中所示的利用特定的兩級樹結(jié)構(gòu)的編碼相對比。在圖3C的樹34中,根節(jié)點40具有例如包含值5的系數(shù)的單個樹葉節(jié)點 44a,以及非樹葉節(jié)點42,該非樹葉節(jié)點42將包括三個樹葉節(jié)點44b、Mc和44d的零節(jié)點集群在群組46中。由于這些樹葉節(jié)點全都是零,所以它們可被跳過,從而相應的根42被用 0編碼。響應于此編碼,此編碼序列的輸出是1、5、0;這當然短于圖;3B中使用的編碼。小的2X2塊大小是作為示例示出的,應當明白更大的比特大小可提供更高水平的編碼效率提高。此外,應當明白,雖然為了例示起見將系數(shù)描繪為一位的整數(shù),但實際的系數(shù)需要大得多的表示比特空間。然而,如果塊中的系數(shù)之間的關(guān)系略有不同,例如圖4A的塊中所描繪的那樣,其中系數(shù)之一的位置被移動了,則關(guān)于樹結(jié)構(gòu)的編碼效率被顯著更改了。圖4A描繪了具有四個系數(shù)0、0、5、0的塊50。圖4A描繪了響應于第一個所選編碼樹結(jié)構(gòu)52的編碼,該編碼樹結(jié)構(gòu)52具有單個非樹葉節(jié)點56和單個級別60中的四個樹葉節(jié)點58a至58d。此編碼的輸出生成五個值1、0、0、5、0的序列。在圖4C中,選擇了不同的編碼樹結(jié)構(gòu)54,該編碼樹結(jié)構(gòu) 54具有根62,其具有第一級別70上的樹葉66a (0系數(shù))和非樹葉64,和具有樹葉66b (0)、 66c (5)和66d(0)的第二級別68。響應于樹葉66c中的系數(shù)的非零值,不能在不引入誤差的情況下跳過系數(shù)的群組,并且非樹葉64被用表明其樹葉必須被包括在編碼中的1來編碼。 使用此樹的編碼生成六個輸出1、0、1、0、5、0,并且比圖4B所表示的低效。從以上論述可以清楚,選擇不適合塊內(nèi)的幾何關(guān)系的編碼樹結(jié)構(gòu)導致低效的塊編碼。因此,將會看出,根據(jù)本發(fā)明的SPRIGHT編碼致力于提供以確保任何給定塊的高效編碼為目標為該塊從多個候選編碼樹中適當選擇編碼樹結(jié)構(gòu),以及創(chuàng)建其各種樹。本發(fā)明實現(xiàn)了樹的適應性修改,以提供多個候選編碼樹,其中在SPRIGHT編碼期間響應于被編碼的塊的特性從這多個候選編碼樹中選擇編碼樹。4.利用樹的SPRIGHT解碼。在根據(jù)SPRIGHT對圖像塊解碼時,解碼器必須例如響應于接收到關(guān)于哪個樹結(jié)構(gòu)被用于對每個塊編碼的信息來從多個候選樹結(jié)構(gòu)中選擇適當?shù)臉浣Y(jié)構(gòu)。在SPRIGHT解碼的一個方面中,解碼器接收在編碼期間使用的樹結(jié)構(gòu)的索引。一旦從多個候選編碼樹中選擇了適當?shù)臉?,在解碼中就使用與編碼過程相容的技術(shù),例如利用樹的廣度優(yōu)先遍歷(BFT), 來遍歷該樹。如果當前節(jié)點是樹的樹葉,則從比特流中解碼出符號,并且將所解碼的符號的值賦予相應的系數(shù)。相反,如果當前節(jié)點不是樹葉,則從比特流中讀取一個比特并根據(jù)其進行操作;如果該比特是1,則處理繼續(xù),但如果是0,則當前節(jié)點的所有后裔節(jié)點的值被設定成是0并且它們被從樹中丟棄。5.零集群。從以上論述中可以看出,SPRIGHT編碼方法的編碼增益主要是響應于零集群得到的,其中從變換編碼產(chǎn)生的零被集群到由相應的非樹葉節(jié)點中的單個零表示的群組中。相反,如果零只能與非零分區(qū),則不會獲得比特節(jié)省。已充分認識到,變換編碼通常產(chǎn)生大量的零,并且這些零可能是彼此的鄰居。這些系數(shù)可能以若干種不同的方式成為鄰居,包括關(guān)于(1)空間位置,從而它們可以是同一 DffT子帶中的相鄰系數(shù);或者(2)譜位置,從而它們可以是相鄰的DCT系數(shù)。SPRIGHT編碼通過基于每個塊內(nèi)的系數(shù)的幾何關(guān)系為該塊選擇特定的樹結(jié)構(gòu)來利用此特點。以下章節(jié)例示了編碼譜系數(shù)位置的示例,例如利用倍頻帶分區(qū)來基于方向性對編碼樹進行適應性修改以用于SPRIGHT,以及類似的編碼方法,這些方法為每個被編碼的塊從多個候選編碼樹中進行選擇。6.多個樹類型內(nèi)的基于倍頻帶分區(qū)的樹。響應于在SPRIGHT內(nèi)選擇最適合于特定幾何樣式的樹,大大改善了那些特定塊的編碼效率。本發(fā)明對編碼樹進行適應性修改以提供多個編碼樹,從這多個編碼樹中可響應于正被編碼的圖像塊的方向性特性按照SPRIGHT來選擇樹。作為示例,響應于塊幾何條件, 非方向性編碼樹被適應性修改來用于方向性圖像塊,包括水平、垂直和其他樣式,例如對角樣式。對于每個塊樣式利用不同的編碼樹。倍頻帶分區(qū)的各方面被描述并被適應性修改以便構(gòu)造一組多個樹以用于不同的方向性樣式,當根據(jù)SPRIGHT執(zhí)行圖像編碼時可選擇這多個樹。圖5A至5E示出了對基于倍頻帶分區(qū)的樹進行適應性修改以便生成多個編碼樹的示例性實施例,從這多個編碼樹中可響應于正被編碼的比特的幾何條件在SPRIGHT下選擇編碼樹。在倍頻帶分區(qū)中,根(即整個塊)被分區(qū)成一個小的方形和一個大的L形區(qū)域。在現(xiàn)有的實現(xiàn)方式中,小方形的大小是2X2,而本發(fā)明的本實施例中利用的優(yōu)選大小是1X1 方形(只有DC)。本發(fā)明對倍頻帶分區(qū)進行適應性修改以用于生成多個編碼樹來用在具有方向性分量的圖像塊的SPRIGHT編碼中。圖5A描繪了被分區(qū)成小的方形和大的L形的DCT后的根(整個塊)。圖5B示出了 L形被迭代地分區(qū)成三個方形和另一較小的L形。圖5C示出了每次L被分區(qū)時,其后代方形的大小加倍,如圖中所示。圖5D示出了將每個非樹葉方形迭代地分區(qū)成四個一半大小的方形。圖5E描繪了與圖5A-5D中描述的倍頻帶分區(qū)方法相關(guān)聯(lián)的設計樹。將注意到,非樹葉節(jié)點關(guān)于其類型被標記為“根”、“L” (L形)或“S”(方形)。SPRIGHT提供了一種一般的基于樹的熵編碼方法,其被配置來使用任何期望的樹結(jié)構(gòu),并且可從例如根據(jù)被適應性修改的倍頻帶分區(qū)技術(shù)生成的多個候選編碼樹結(jié)構(gòu)中選擇樹結(jié)構(gòu),如果其適合于正被編碼的塊的類型的話(例如也就是說如果其對于像DCT這樣的特定變換被證明高效的話)。與之不同,用于原來的倍頻帶分區(qū)實現(xiàn)方式的編碼樹結(jié)構(gòu)背離本發(fā)明,是固定的并且利用相同的(固定的)編碼樹結(jié)構(gòu)執(zhí)行所有塊的熵編碼。在本發(fā)明的這個方面中,倍頻帶分區(qū)技術(shù)被廣義化以生成在編碼期間可響應于系數(shù)塊的方向性從中選擇的多個編碼樹。響應于此廣義化,SPRIGHT可在多個預設計的候選之中選擇最佳的樹以改善編碼效率。如前所述,SPRIGHT通過系數(shù)的“零集群”來節(jié)省比特。在SPRIGHT方法下希望樹被組織成最大化如下非樹葉節(jié)點的數(shù)目這種非樹葉節(jié)點的所有后裔樹葉都包含零系數(shù), 從而不需要被編碼。如果對于按所選編碼樹結(jié)構(gòu)編碼的給定塊不會得到顯著的零集群,則 SPRIGHT方法將會不那么高效。然而,通過適當?shù)剡x擇適合正被編碼的塊的幾何條件的樹, 通常會出現(xiàn)很高程度的集群,從而允許SPRIGHT提供提高的編碼效率。應當明白,當考慮嵌入式SPRIGHT方法時,編碼是基于比特平面的,從而標準有些不同。具體而言,希望嵌入式SPRIGHT樹中的非樹葉節(jié)點的所有后裔都只包含小系數(shù)。將會認識到,這些系數(shù)充分地小以至于在較高的比特平面中將被量化成零。使用包括經(jīng)修改的倍頻帶分區(qū)樹在內(nèi)的倍頻帶分區(qū)樹來生成供SPRIGHT編碼下使用的多個候選在以下條件下提供了許多益處。倍頻帶分區(qū)很適合于變換系數(shù)在遠離原點 (DC)時較小的情況。因此,如果在某個比特平面,L形變成非零(或者其包含至少一個非零系數(shù)),則很有可能該(一個或多個)非零系數(shù)不在更小的L形中。如果上述成立,則零仍可用于表示更小L形中的所有0。雖然該假定經(jīng)常成立,但可存在許多例外,尤其是關(guān)于方向性幾何樣式,其中本發(fā)明還被配置為響應于不同的方向性樣式選擇不同的樹。7.基于3模式DCT的設計樹。在根據(jù)本發(fā)明的一個方面使用3模式DCT (離散余弦變換)時,圖像塊被分類成三個類別非方向性的、水平的和垂直的。應當明白,雖然作為示例論述了 DCT變換,但在不脫離本發(fā)明的教導的情況下可利用其他形式的變換和方向性變換。對于這些類別中的每一個,設計編碼樹,其中對于非方向性情況使用原始倍頻帶分區(qū)樹,而對于水平和垂直情況設計編碼樹,如稍后章節(jié)中所述。在對圖像塊編碼的過程中,首先對該塊應用2D-DCT。然后確定哪個是用來執(zhí)行編碼的最適當樹(例如用于最小化編碼后大小),然后執(zhí)行編碼,之后生成供解碼器使用的信息,例如把所編碼的比特以及樹索弓I通知給解碼器。8.原始倍頻帶分區(qū)的低效。將會明白,在執(zhí)行2D-DCT后,每個系數(shù)對應于一 2D頻率,并且其位置可在頻率域中被標記。圖6描繪了對稱的幅度譜,其是倍頻帶分區(qū)技術(shù)的基本假設。圖7描繪了水平塊的示例譜,其中示出了倍頻帶分區(qū)假設如何對于方向性樣式不成立。將會注意到,譜在垂直方向上“更白”(即均一的功率譜密度),而系數(shù)幅度關(guān)于減小得更慢。圖8描繪了根據(jù)倍頻帶分區(qū)技術(shù)的塊分區(qū),其中可以看出一些大系數(shù)(最左邊的帶斑點的那個,就在中心下方)可“泄漏”到L形,從而要求進一步的分區(qū)和效率的損失。應當明白,這些分區(qū)問題可對任何具有特定幾何傾斜的塊發(fā)生,包括水平的或垂直的傾斜(對于垂直情況,類似地,頂部緊靠中心右側(cè)的實心圓點可為大系數(shù))。9.倍頻帶分區(qū)之前的頻率縮放。為了克服上述的導致低效編碼的塊分區(qū)問題,本發(fā)明的實施例執(zhí)行倍頻帶分區(qū)的變體,其中在應用倍頻帶分區(qū)之前縮放頻率。令ω = [ωχ,ω y]τ為2D空間頻率??s放操作被執(zhí)行為ω = S ω,其中S = diag (sx, sy)是縮放矩陣。縮放因子S和Sy被選擇為使得在縮放之后,更容易利用倍頻帶分區(qū)對譜進行分區(qū)。此縮放適應性修改了倍頻帶分區(qū)技術(shù),以生成具有很好地適合于SPRIGHT的方向性質(zhì)的編碼樹,其中SPRIGHT基于正被編碼的圖像塊的方向性特性從多個編碼樹中選擇一個編碼樹。圖9示出了水平方向上的縮放的示例性實施例,其中到原點的垂直距離被“壓縮” 或“縮放”??s放之前的樹在圖的左側(cè)示出??s放矩陣在圖的中央示出,當應用該縮放矩陣時得到圖的右側(cè)所示的經(jīng)縮放的樹。在所示出的情況中,縮放因子對于3模式DCT被選擇為0. 5( S卩,sx = Lsy = 0. 5)。在縮放和分區(qū)之后,如圖的右側(cè)所示,帶斑點的圓點向上朝著根移動了,于是與實心圓點相比在與根的距離方面處于更高的級別。在圖中將會看到,在頻率縮放之后,編碼樹構(gòu)造可以按與倍頻帶分區(qū)算法類似的方式執(zhí)行。具體地,構(gòu)造開始于小的方形和大的L形,并且L被分區(qū)成三個方形和一個更小的L形。方形被分區(qū)成四個一半大小的方形。將會注意到,一些方形可完全沒有系數(shù)(例如帶陰影的方形),并且可被從樹中刪除。圖10描繪了縮放后的塊譜,可以看出其具有更順應倍頻帶分區(qū)的形狀。10.基于5模式DCT的設計樹。在5模式DCT中,向3模式DCT樹構(gòu)造添加了兩個對角模式。具體地,添加了對角 +45°和對角-45°。應當注意,2D-DCT不區(qū)分士 45°樣式。在DCT域中從士 45°樣式產(chǎn)生相似的譜??朔藛栴}的一種可能是在單個模式中對待這兩個樣式。然而,2D-DCT不是對士45°的圖像塊去相關(guān)的良好選擇。本發(fā)明通過使用能夠處理士45°樣式的方向性DCT 和新樹來克服此問題。作為示例而非限制,以上所論述的樣式被如下來處理。在本發(fā)明的一個實施例中,編碼器從五個中選擇一個模式,對塊編碼,并且將所編碼的比特流和模式索引都通知給解碼器。應當明白,所編碼的比特流是利用SPRIGHT解碼來解碼的。11. 5 It式DCT中某干水平/垂首樹的設i十樹。與3模式DCT中相同的方案被利用來為水平和垂直樣式生成樹。然而,在5模式 DCT中,有更多的模式供選擇并且被分類成水平或垂直樣式的塊經(jīng)歷更傾斜的譜。響應于此,本發(fā)明的至少一個實施例在水平和/或垂直編碼樣式中將壓縮調(diào)整到超過1/2,例如調(diào)整到1/4的縮放因子。圖11示出了具有4X4塊的水平情況的分區(qū)的示例。將會明白,在5模式DCT中, 圖11中被描繪為帶斑點的系數(shù)比被描繪為實心的系數(shù)更高兩個級別。12.基于方向件DCT的設計樹。圖12A至圖12D示出了利用具有若干級的一種形式的方向性DCT。描繪了旋轉(zhuǎn),其中對角樣式圖12A被轉(zhuǎn)換成如圖1 中所見的水平樣式。然后執(zhí)行修剪,得到圖12C。然后沿著水平和垂直線執(zhí)行DCT,得到圖12D。應當明白,在對方向性DCT系數(shù)應用倍頻帶分區(qū)時,必須為每個系數(shù)找到頻率位置。13.方向件DCT系數(shù)的定位和縮放。在本發(fā)明的一個方面中,采取試探方案來定位方向性DCT系數(shù)的頻率位置。對于水平頻率(ωχ),在旋轉(zhuǎn)和修剪之后對列的總數(shù)計數(shù),例如稱之為N。然后,對于第η列中的系數(shù)(n = 0,...,N-l),cox = n*ji/N。對于垂直頻率(ω y),在當前列中對系數(shù)的總數(shù)計數(shù),例如稱之為M。然后,對于列中的第m個系數(shù)(m = 0,...,M-l),coy = m*ji/M。類似地,對進行縮放來針對傾斜譜進行補償。根據(jù)本發(fā)明的優(yōu)選方面,塊被旋轉(zhuǎn)成水平樣式,使得其是被縮放的ω y。當使用5模式DCT時,縮放因子優(yōu)選被選擇為1/4 (與水平和垂直樣式相同)。圖13描繪了經(jīng)縮放和旋轉(zhuǎn)的系數(shù)樣式,其中沿著底部在ωχ= {0、π/4、2π/4和 3^/4}示出了 ωχ的級別,其中coy被示為經(jīng)縮放后在第一級別(最左側(cè))為ωγ = {O, π/7,···,6π/7},并且在第二級別(左側(cè)起第二個)為 coy= {0,π/5,···,4 π/5}。圖14示出了縮放前的方向性DCT系數(shù)的位置。14.構(gòu)造用于SPRIGHT編碼的樹。
對角+45。 對角-45°
垂直
非方向性水平
通常的2D-DCT +原始倍頻帶分區(qū)樹通常的2D-DCT +水平樹通常的2D-DCT +垂直樹方向性DCT +用于+45°的新樹方向性DCT +用于-45°的新樹
在方向性DCT中,系數(shù)的位置不再在網(wǎng)格中。然而,根據(jù)本發(fā)明,倍頻帶分區(qū)技術(shù)被適應性修改來針對適當處理具有任意定位的系數(shù)提供更大的一般性。根(整個塊)被分區(qū)成一個小的方形和一個大的L形部分。方形涵蓋低通頻率帶, 例如由以下給出I ωχ| < ji/2k,并且 I ω」< ji/2K。其中K被選擇為使得小方形只包含DC (或DWT的LL子帶),而大L形區(qū)域包含所有AC系數(shù)。在對根進行分區(qū)后(K-I),向L形部分應用倍頻帶分區(qū),以產(chǎn)生三個方形和一個小 L形。每個具有大于η/2Κ的帶寬的方形被分區(qū)成四個更小的方形。應當明白,在使用“分區(qū)” 一詞時,也在原始頻率帶和分區(qū)之間強制施加了父-子關(guān)系。在先前章節(jié)中,編碼樹被描述為具有2ΚΧ2Κ樹葉,其中每一個是一小方形,并且其也表示包含該頻率帶中的所有系數(shù)的集合。這些系數(shù)然后被連接到該集合。應當認識到, 一些集合將是空的,其中相應的節(jié)點可被刪除。如果某一集合只具有一個孩子,則其被刪除并且該孩子被連接到其父親。該操作是迭代性的,直到每個非樹葉節(jié)點具有至少兩個孩子節(jié)點為止。圖15至圖21示出了利用用于對系數(shù)編碼的步驟示出的本發(fā)明的示例性實施例。 在圖15中,系數(shù)被映射到頻率域,并且在圖16中在頻率域中被縮放。倍頻帶分區(qū)在圖17 中示出,其中根(即整個塊)被分區(qū)成一個小的方形和一個大的L形區(qū)域。編碼樹在圖18 中被構(gòu)建,并且在圖19中被迭代性地分區(qū)。將會注意到,圖19中的在上方的“氣泡”內(nèi)描繪的前兩個級別具有最小的大小,其中不需要再分區(qū),而被描繪為較低的兩個“氣泡”的較低級別描繪了應當被迭代地分區(qū)到最小大小的方形。在圖20中,該設計樹還描繪了將樹葉 (系數(shù))連接到樹的上兩層。根據(jù)圖21,不必要的節(jié)點隨后被從經(jīng)分區(qū)的塊和設計樹中丟棄,如具有垂直條紋(條帶)的塊中所見。15.基于9模式DCT的設計樹。圖22示出了根據(jù)本發(fā)明使用9模式DCT,其提供了一個非方向性模式和八個方向性模式。在9模式DCT下,提出了以下組合。非方向性通常的2D-DCT+原始倍頻帶分區(qū)樹水平通常的2D-DCT+水平樹垂直通常的2D-DCT+垂直樹其他方向方向性DCT+新樹在SPRIGHT編碼期間,編碼器從根據(jù)本發(fā)明生成的九個模式中選擇一個模式,對塊編碼,并且將所編碼的比特流和模式索引兩者通知給解碼器。方向性DCT系數(shù)的分區(qū)和編碼樹構(gòu)造與在5模式DCT中定義的類似。每個系數(shù)的頻率像3模式DCT或5模式DCT中那樣被縮放,而縮放因子在9模式DCT被改變到1/8。16.模式選擇。對于給定的塊,可能有多個提供高效編碼的模式。本發(fā)明優(yōu)選地允許了選擇當在 SPRIGHT下選擇給定塊時如何作出判決。(1)編碼前。此情況中的模式判決是在編碼之前作出的,例如基于在塊中檢測到的特征(例如幾何方面)。將會明白,編碼前與編碼后相比需要的計算開銷小得多,但通常將不會提供那么顯著的編碼效率增益。作為示例而非限制,編碼前可基于檢測不同方向上的平均梯度。(2)編碼后。模式判決是作為編碼后判決作出的,其中編碼器利用所有可能的模式對圖像塊編碼。計算重建的塊相對于原始塊的失真,并且挑選給出最小的率-失真成本的模式。編碼后確保了以所測試的可能模式中最高效的模式執(zhí)行編碼。17. SPRIGHT 裝置和方法。傳統(tǒng)的編碼方案對于熵編碼使用單個算法,從而不基于被編碼的塊的幾何條件來選擇熵編碼的形式及其相關(guān)聯(lián)的樹結(jié)構(gòu)。將會看到,傳統(tǒng)的方案通過依賴于固定的熵編碼方法、從而利用單個固定樹對當前塊編碼,來執(zhí)行編碼。固定樹編碼方法不受益于非常具體的編碼形式,并且它們將必須被應用到所有塊。然而,SPRIGHT編碼提供了可響應于塊的特性來選擇的許多熵編碼模式。本發(fā)明提供了一種方法和裝置,用于基于塊方向性來填充 SPRIGHT的多個編碼樹候選。圖23示出了被配置用于從多個編碼樹中選擇編碼樹的基于SPRIGHT的編碼器136 和用于對樹結(jié)構(gòu)解碼的解碼器142的實施例150。編碼器136被示為包括計算機處理器 (CPU) 152和存儲器154。應當明白,這些處理組件可單獨實現(xiàn),或?qū)崿F(xiàn)為多處理器,和/或結(jié)合任何期望水平的加速硬件實現(xiàn),而不脫離本發(fā)明的教導??稍谔幚砥?52上執(zhí)行的程序執(zhí)行圖像源158的編碼156,執(zhí)行預測160,變換162,量化164,樹選擇166以及編碼168, 以輸出經(jīng)編碼的圖像數(shù)據(jù)(或信號)170。樹選擇更具體而言是響應于塊中的系數(shù)之間的二維幾何關(guān)系執(zhí)行的,之后塊被利用所選擇的樹來編碼。對所選擇的樹結(jié)構(gòu)的利用可提供相對于如下實現(xiàn)方式大幅提高的編碼效率在這種實現(xiàn)方式中,樹結(jié)構(gòu)是在用于執(zhí)行編碼的編碼技術(shù)內(nèi)固有(固定)的。解碼器142被示為類似地用處理器元件172和存儲器174實現(xiàn),并且其也可包括任何期望的處理組件和與數(shù)字加速硬件的組合,而不脫離本發(fā)明的教導。響應于程序的執(zhí)行,解碼過程176被執(zhí)行,其中信號170被接收并被解碼塊178解碼,解碼塊178在解碼之前作出樹結(jié)構(gòu)選擇180。解碼塊178的輸出隨后被逆變換182并且根據(jù)塊184圖像被重建以產(chǎn)生最終的經(jīng)解碼的圖像輸出186。在編碼期間的樹選擇和解碼期間使用的樹選擇之間示出了樹選擇鏈接188以表示如下實施例其中,關(guān)于所選擇的樹結(jié)構(gòu)的信息被傳達給解碼器142,以確保其以數(shù)據(jù)被編碼的方式對數(shù)據(jù)解碼。通常,關(guān)于所選擇的樹結(jié)構(gòu)的信息將被結(jié)合到正被發(fā)送到解碼器的經(jīng)編碼的信號流的預定比特中。還應當明白,對給定塊的樹結(jié)構(gòu)的傳達可以作為比特從編碼器傳達到解碼器,或者可替換地,來自編碼器的數(shù)據(jù)可以按把樹選擇告知給解碼器的方式來組織,或者解碼器可以以其他方式確定用于解碼的與編碼相容的樹結(jié)構(gòu)。在所描述的示例性實施例中,解碼器始終知道用于對給定塊編碼的樹結(jié)構(gòu)。例如, 樹結(jié)構(gòu)或者被預嵌入到解碼器的可執(zhí)行文件中,或者在會話開始時由編碼器告知。當解碼時,解碼器首先區(qū)分當前節(jié)點是否是樹葉,然后在其不是樹葉時從比特流中讀取比特,或者對于樹葉則從流中讀取符號。符號可包括一個或多個比特,這取決于其是如何被編碼的,例如利用exp-Golomb碼。圖M示出了用于生成供具有方向性的廣義層次樹中的集合分區(qū)中使用的設計樹的方法的實施例。在190利用倍頻帶分區(qū)來生成非方向性編碼樹。響應于在執(zhí)行倍頻帶分區(qū)之前的方向性縮放,在192生成水平編碼樹,并且在194生成垂直編碼樹??蛇x地,響應于在倍頻帶分區(qū)之前執(zhí)行的旋轉(zhuǎn)和縮放,在196還生成用于額外方向的編碼樹。因此,將會明白,本發(fā)明涵蓋了用于構(gòu)造供SPRIGHT編碼中使用的樹的各種技術(shù)。 這些方案將圖像塊分類成不同的方向性樣式,利用通常的2D變換或方向性變換,來將塊去相關(guān),并且相應地構(gòu)建樹。樹是基于倍頻帶分區(qū)算法的,倍頻帶分區(qū)算法在本方法中已響應于方向性被廣義化。示出了為不同方向中的每一個找到所得到的(方向性)變換系數(shù)的位置(2D頻率)的方式。在許多情況下,變換系數(shù)的頻率在編碼之前被縮放以塑造譜的形狀以便提供更高效的編碼??s放因子優(yōu)選由方向總數(shù)決定。本發(fā)明還廣義化了倍頻帶分區(qū)算法以應對具有任意的頻率定位的變換系數(shù)。所提出的算法的優(yōu)點在于其可更好地捕捉譜的特性,并且所得到的樹能夠利用SPRIGHT更高效地集群零。從以上論述將會明白,本發(fā)明可用各種方式來實現(xiàn),包括以下的1. 一種用于生成供編碼期間使用的多個候選編碼樹的裝置,包括被配置用于接收和處理圖像和/或視頻幀的計算機;以及可在所述計算機上執(zhí)行的程序,用于利用倍頻帶分區(qū)來生成非方向性編碼樹;響應于在水平或垂直方向上縮放頻率分量以及進行倍頻帶分區(qū)以創(chuàng)建針對水平和垂直方向進行了適應性修改的多個候選編碼樹,來生成水平和垂直編碼樹。2.實施例1的裝置,還包括可在所述計算機上執(zhí)行的、用于響應于使用方向性變換生成所述多個候選編碼樹內(nèi)的對角編碼樹的程序。3.實施例1的裝置,其中所述多個候選編碼樹被配置用于響應于從所述多個候選編碼樹中選擇的樹結(jié)構(gòu)的預定遍歷來控制塊編碼。4.實施例1的裝置,其中所述多個候選編碼樹內(nèi)的每個候選編碼樹被配置有指定布置的樹葉節(jié)點和非樹葉節(jié)點;并且其中一個或多個樹葉節(jié)點被配置用于包含與每個非樹葉節(jié)點相關(guān)聯(lián)的系數(shù)。5.實施例1的裝置,其中所述多個候選編碼樹內(nèi)的每個候選編碼樹被配置成使得每個非樹葉節(jié)點的狀態(tài)由表明其后裔樹葉節(jié)點是包含全零系數(shù)還是不包含全零系數(shù)的比特來表示。6.實施例1的裝置,其中所述多個候選編碼樹被配置用于保持在編碼器內(nèi),該編碼器從所述多個候選編碼樹中選擇要使用的編碼樹。7.實施例1的裝置,其中所述倍頻帶分區(qū)是通過將所述塊內(nèi)的系數(shù)分區(qū)成方形和 L形來執(zhí)行的,其中所述L形被迭代地分區(qū)成方形。8.實施例1的裝置,其中當每個方形僅包含一個系數(shù)時,所述倍頻帶分區(qū)完成。9.實施例1的裝置,其中所述多個候選編碼樹被配置用于在變換被執(zhí)行之后對塊中的系數(shù)編碼。10.實施例9的裝置,其中所述變換包括非方向性或方向性變換。11.實施例1的裝置,還包括被配置用于響應于用于進行以下操作的程序利用來自所述多個候選編碼樹中的編碼樹對圖像和/或視頻幀編碼的程序?qū)⒁曨l幀的圖像分區(qū)成塊;并且在編碼器內(nèi)對塊執(zhí)行方向性變換,之后從所述多個候選編碼樹中選擇用來執(zhí)行編碼的期望樹結(jié)構(gòu);其中編碼的樹是在編碼期間響應于為每個系數(shù)找到頻率位置并且基于每個系數(shù)的頻率位置執(zhí)行倍頻帶分區(qū)來生成的。12.實施例11的裝置,還包括被配置用于將塊的系數(shù)分類成包括非方向性、水平和垂直在內(nèi)的至少三個類別的程序,其中編碼器從所述至少三個類別中選擇一個模式用于對塊編碼。13.實施例11的裝置,還包括被配置用于將塊的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別的程序,其中編碼器從五個中選擇一個模式用于對塊編碼。14.實施例11的裝置,還包括被配置用于將塊的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別的程序,其中編碼器從五個可能模式中選擇一個模式用于對塊編碼;并且其中對角方向的所述分類是響應于方向性變換操作執(zhí)行的。15.實施例11的裝置,還包括被配置用于在分區(qū)之前向塊應用縮放矩陣的程序; 其中按所述縮放矩陣的縮放是響應于塊的幾何關(guān)系執(zhí)行的;并且其中所述縮放包括垂直或水平縮放。16.實施例11的裝置,其中所述編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的。17.實施例1的裝置,其中所述編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的;并且其中在編碼期間生成的樹被配置成使得以下情況發(fā)生的概率較高所選擇的樹中的非樹葉節(jié)點的所有后裔都包含充分小的系數(shù)以在較高比特平面中被量化成零。18.實施例1的裝置,還包括被配置用于在圖像/視頻編碼器內(nèi)利用設計樹進行適應性熵編碼的程序,包括將圖像或視頻幀劃分成塊;利用變換將每個塊去相關(guān)以創(chuàng)建系數(shù)塊;量化變換系數(shù);響應于對圖像的每個系數(shù)塊內(nèi)的幾何關(guān)系的確定從所述多個候選樹中選擇期望的樹結(jié)構(gòu)作為所選樹結(jié)構(gòu);以及利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群和對倍頻帶分區(qū)的使用來對每個系數(shù)塊編碼;其中一部分零系數(shù)響應于使所述所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將后裔樹葉節(jié)點編碼到由所述裝置生成的經(jīng)編碼的輸出比特流中,而被從經(jīng)編碼的輸出中消除。19. 一種用于圖像或視頻的適應性編碼和解碼的系統(tǒng),包括編碼器,該編碼器具有被配置用于圖像和/或視頻編碼的處理元件和存儲器;可在所述編碼器的處理元件上執(zhí)行的程序,用于執(zhí)行以下步驟將圖像或視頻幀劃分成塊,利用變換將每個塊去相關(guān)以生成變換系數(shù)塊,對于每個變換系數(shù)塊量化變換系數(shù),響應于對圖像和/或視頻的系數(shù)塊內(nèi)的幾何關(guān)系的確定從至少包括水平和垂直方向的一組多個候選樹中選擇樹結(jié)構(gòu)作為所選樹結(jié)構(gòu),以及利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群對塊編碼;其中一部分零系數(shù)響應于使所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將這些后裔樹葉節(jié)點編碼到被引導至解碼器的輸出比特流中,而被從經(jīng)編碼的輸出中消除;解碼器,該解碼器具有被配置用于來自所述編碼器的比特流的圖像和/或視頻解碼的處理元件和存儲器;可在所述解碼器的處理元件上執(zhí)行的程序,用于響應于執(zhí)行以下步驟而輸出圖像或視頻信號 確定所述編碼器在對塊編碼時使用的所選樹結(jié)構(gòu),將所選樹結(jié)構(gòu)的樹葉解碼成輸出的系數(shù),響應于對沒有非零分支的非樹葉節(jié)點解碼而在輸出內(nèi)輸出零系數(shù),對輸出執(zhí)行解量化, 對輸出執(zhí)行逆變換,并且響應于對輸出的接收而重建圖像信號。20. 一種用于生成供編碼器內(nèi)在圖像和/或視頻編碼期間使用的多個候選編碼樹的方法,包括利用倍頻帶分區(qū)來生成非方向性編碼樹;響應于在至少水平和垂直方向上縮放頻率分量,以及進行倍頻帶分區(qū)以創(chuàng)建針對至少水平和垂直方向進行了適應性修改的多個候選編碼樹,來生成水平和垂直編碼樹。 雖然以上描述包含許多細節(jié),但這些細節(jié)不應當被解釋限制本發(fā)明的范圍,而只是提供了對本發(fā)明的一些當前優(yōu)選的實施例的例示。因此,將會明白,本發(fā)明的范圍完全涵蓋對于本領域的技術(shù)人員來說顯而易見的其他實施例,并且本發(fā)明的范圍因此僅由所附權(quán)利要求來限制,在權(quán)利要求中以單數(shù)形式提及一個要素并不意欲指“一個且僅一個”(除非明確聲明),而是指“一個或多個”。本領域的普通技術(shù)人員已知的上述優(yōu)選實施例的要素的所有結(jié)構(gòu)和功能等同物通過引用被明確結(jié)合在此,并且意欲被當前的權(quán)利要求所涵蓋。另外,一個設備或方法并不需要解決本發(fā)明所要解決的所有問題才能被當前的權(quán)利要求所涵蓋。另外,本公開中的要素、組件或方法步驟不欲被奉獻給公眾,不論該要素、組件或方法步驟是否在權(quán)利要求中有明確記載。這里的權(quán)利要求要素不應根據(jù)35U. S. C. 112第六款的規(guī)定來解釋,除非該要素是利用短語“用于...的裝置”來明確記載的。
權(quán)利要求
1.一種用于生成供編碼期間使用的多個候選編碼樹的裝置,包括被配置用于接收和處理圖像和/或視頻幀的計算機;以及可在所述計算機上執(zhí)行的程序,用于利用倍頻帶分區(qū)來生成非方向性編碼樹;響應于下述操作來生成水平和垂直編碼樹在水平或垂直方向上縮放頻率分量,以及進行倍頻帶分區(qū)以創(chuàng)建針對水平和垂直方向進行了適應性修改的多個候選編碼樹。
2.如權(quán)利要求1中所述的裝置,還包括可在所述計算機上執(zhí)行的、用于響應于使用方向性變換生成所述多個候選編碼樹內(nèi)的對角編碼樹的程序。
3.如權(quán)利要求1中所述的裝置,其中所述多個候選編碼樹被配置用于響應于從所述多個候選編碼樹中選擇的樹結(jié)構(gòu)的預定遍歷來控制塊編碼。
4.如權(quán)利要求1中所述的裝置其中所述多個候選編碼樹內(nèi)的每個候選編碼樹被配置有指定布置的樹葉節(jié)點和非樹葉節(jié)點;并且其中一個或多個樹葉節(jié)點被配置用于包含與每個非樹葉節(jié)點相關(guān)聯(lián)的系數(shù)。
5.如權(quán)利要求1中所述的裝置,其中所述多個候選編碼樹內(nèi)的每個候選編碼樹被配置成使得每個非樹葉節(jié)點的狀態(tài)由表明其后裔樹葉節(jié)點是包含全零系數(shù)還是不包含全零系數(shù)的比特來表示。
6.如權(quán)利要求1中所述的裝置,其中所述多個候選編碼樹被配置用于保持在編碼器內(nèi),該編碼器從所述多個候選編碼樹中選擇要使用的編碼樹。
7.如權(quán)利要求1中所述的裝置,其中所述倍頻帶分區(qū)是通過將所述塊內(nèi)的系數(shù)分區(qū)成方形和L形來執(zhí)行的,其中所述L形被迭代地分區(qū)成方形。
8.如權(quán)利要求1中所述的裝置,其中當每個方形僅包含一個系數(shù)時,所述倍頻帶分區(qū)完成。
9.如權(quán)利要求1中所述的裝置,其中所述多個候選編碼樹被配置用于在變換被執(zhí)行之后對塊中的系數(shù)編碼。
10.如權(quán)利要求9中所述的裝置,其中所述變換包括非方向性或方向性變換。
11.如權(quán)利要求1中所述的裝置,還包括被配置用于響應于用于進行以下操作的程序利用來自所述多個候選編碼樹中的編碼樹對圖像和/或視頻幀編碼的程序?qū)⒁曨l幀的圖像分區(qū)成塊;并且在編碼器內(nèi)對塊執(zhí)行方向性變換,之后從所述多個候選編碼樹中選擇用來執(zhí)行編碼的期望樹結(jié)構(gòu);其中編碼的樹是在編碼期間響應于為每個系數(shù)找到頻率位置并且基于每個系數(shù)的頻率位置執(zhí)行倍頻帶分區(qū)來生成的。
12.如權(quán)利要求11中所述的裝置,還包括被配置用于將塊的系數(shù)分類成包括非方向性、水平和垂直在內(nèi)的至少三個類別的程序,其中編碼器從所述至少三個類別中選擇一個模式用于對塊編碼。
13.如權(quán)利要求11中所述的裝置,還包括被配置用于將塊的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別的程序,其中編碼器從五個中選擇一個模式用于對塊編碼。
14.如權(quán)利要求11中所述的裝置,還包括被配置用于進行以下操作的程序?qū)K的系數(shù)分類成包括兩個不同對角方向在內(nèi)的類別,其中編碼器從五個可能模式中選擇一個模式用于對塊編碼;并且其中對角方向的所述分類是響應于方向性變換操作執(zhí)行的。
15.如權(quán)利要求11中所述的裝置,還包括被配置用于進行以下操作的程序 在分區(qū)之前向塊應用縮放矩陣;其中按所述縮放矩陣的縮放是響應于塊的幾何關(guān)系執(zhí)行的;并且其中所述縮放包括垂直或水平縮放。
16.如權(quán)利要求11中所述的裝置,其中所述編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的。
17.如權(quán)利要求1中所述的裝置其中所述編碼包括嵌入式編碼,在嵌入式編碼中編碼是基于比特平面的;并且其中在編碼期間生成的樹被配置成使得以下情況發(fā)生的概率較高所選擇的樹中的非樹葉節(jié)點的所有后裔都包含充分小的系數(shù)以在較高比特平面中被量化成零。
18.如權(quán)利要求1中所述的裝置,還包括被配置用于在圖像/視頻編碼器內(nèi)利用設計樹進行適應性熵編碼的程序,包括將圖像或視頻幀劃分成塊;利用變換將每個塊去相關(guān)以創(chuàng)建系數(shù)塊;量化變換系數(shù);響應于對圖像的每個系數(shù)塊內(nèi)的幾何關(guān)系的確定從所述多個候選樹中選擇期望的樹結(jié)構(gòu)作為所選樹結(jié)構(gòu);以及利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群和對倍頻帶分區(qū)的使用來對每個系數(shù)塊編碼;其中一部分零系數(shù)響應于使所述所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將后裔樹葉節(jié)點編碼到由所述裝置生成的經(jīng)編碼的輸出比特流中,而被從經(jīng)編碼的輸出中消除。
19.一種用于圖像或視頻的適應性編碼和解碼的系統(tǒng),包括編碼器,該編碼器具有被配置用于圖像和/或視頻編碼的處理元件和存儲器;可在所述編碼器的處理元件上執(zhí)行的程序,用于執(zhí)行以下步驟將圖像或視頻幀劃分成塊,利用變換將每個塊去相關(guān)以生成變換系數(shù)塊,對于每個變換系數(shù)塊量化變換系數(shù),響應于對圖像和/或視頻的系數(shù)塊內(nèi)的幾何關(guān)系的確定從至少包括水平和垂直方向的一組多個候選樹中選擇樹結(jié)構(gòu)作為所選樹結(jié)構(gòu),并且利用響應于所選樹結(jié)構(gòu)的零系數(shù)的集群對塊編碼;其中一部分零系數(shù)響應于使所選樹結(jié)構(gòu)的非樹葉節(jié)點表示相應的樹葉節(jié)點僅包含零系數(shù)并且不將這些后裔樹葉節(jié)點編碼到被引導至解碼器的輸出比特流中,而被從經(jīng)編碼的輸出中消除;解碼器,該解碼器具有被配置用于來自所述編碼器的比特流的圖像和/或視頻解碼的處理元件和存儲器;可在所述解碼器的處理元件上執(zhí)行的程序,用于響應于執(zhí)行以下步驟而輸出圖像或視頻信號確定所述編碼器在對塊編碼時使用的所選樹結(jié)構(gòu), 將所選樹結(jié)構(gòu)的樹葉解碼成輸出的系數(shù),響應于對沒有非零分支的非樹葉節(jié)點解碼而在輸出內(nèi)輸出零系數(shù), 對輸出執(zhí)行解量化, 對輸出執(zhí)行逆變換,并且響應于對輸出的接收而重建圖像信號。
20. 一種用于生成供編碼器內(nèi)在圖像和/或視頻編碼期間使用的多個候選編碼樹的方法,包括利用倍頻帶分區(qū)來生成非方向性編碼樹; 響應于以下操作來生成水平和垂直編碼樹 在至少水平和垂直方向上縮放頻率分量,以及進行倍頻帶分區(qū)以創(chuàng)建針對至少水平和垂直方向進行了適應性修改的多個候選編碼樹。
全文摘要
利用廣義層次樹內(nèi)的集合分區(qū)(SPRIGHT)的適應性熵編碼和解碼以及利用方向性來設計樹的方法。在去相關(guān)和量化之后,基于圖像塊內(nèi)的幾何關(guān)系從多個候選中選擇樹結(jié)構(gòu)用于對系數(shù)編碼,以便改善系數(shù)的零集群。用于SPRIGHT編碼的樹是響應于找到每個系數(shù)的頻率位置并且縮放頻率位置、然后使用將系數(shù)樣式分區(qū)成方形和L形并且L形被迭代地分區(qū)成方形的倍頻帶分區(qū)來創(chuàng)建的。樹包括包含與每個非樹葉節(jié)點相關(guān)聯(lián)的系數(shù)的樹葉節(jié)點。可以增加零集群的系數(shù)的數(shù)目,從而減少被編碼到經(jīng)編碼的圖像輸出中的節(jié)點的數(shù)目。
文檔編號H04N7/30GK102396224SQ201080016612
公開日2012年3月28日 申請日期2010年6月8日 優(yōu)先權(quán)日2009年6月9日
發(fā)明者劉偉, 穆罕默德·格哈拉維-阿爾克漢薩利 申請人:索尼公司