圖像編碼方法
2023-09-20 21:37:20 1
專利名稱:圖像編碼方法
技術領域:
本發明涉及用於根據預定編碼格式對圖像進行編碼的編碼方法。特別地,本發明涉及如下這樣的編碼方法當預定編碼格式以像素塊為單位對圖像進行編碼時,每一個像素塊被編碼為包括基本顏色(base color)和相對於該基本顏色的亮度偏移量集合的經編碼像素顏色集合。
背景技術:
已知有各種用於編碼圖像的編碼格式。這些格式所體現的特定技術取決於得到的經編碼圖像中的各種因素的相對重要性而不同,所述各種因素例如是編碼是否應當無損,得到的編碼圖像的所需數據大小以及經編碼圖像的整體質量。廣泛使用並且公知的一組圖像編碼格式是由JPEG組定義的那些編碼格式。但是,諸如JPEG之類的預定編碼格式並不適合所有應用,特別是需要對經編碼圖像中的像素區域進行隨機訪問的那些應用。這例如可能是如下情況經編碼圖像提供了要在圖形應用中使用的經壓縮紋理。這是因為諸如JPEG之類的編碼格式依賴於這樣的技術這種技術相對於同一圖像內的在前像素塊對圖像內的像素塊進行編碼。雖然這實現了更高的數據壓縮程度,但是這種方法要求將圖像作為整體進行解碼,因而這種編碼格式並不適合諸如紋理渲染(texture rendering)之類的應用,這些應用需要對給定圖像的子部進行隨機訪問。因此,已知根據確實允許這種隨機訪問的預定編碼格式對圖像進行編碼。通常,在這樣的編碼格式中,在代表能夠單獨編解碼的圖像的最小單位的像素塊(例如,4X4)中對圖像進行編碼。利用這種編碼格式的一種已知技術是通過基本顏色和相對於該基本顏色的亮度偏移量集合來表示像素塊。換而言之,對於以這種方式編碼的每一個塊,針對所有像素僅定義一種顏色,而每一個像素的亮度被給定為相對於該基本顏色的偏移量。一般而言,這產生可接受的圖像質量,因為人眼對於局部色度變差的敏感度低於對局部亮度變差的敏感度。但是,與根據這種編碼格式(ETC格式(Ericsson紋理壓縮)是其中的一個示例)來生成經編碼圖像相關聯的一個問題在於生成經壓縮(經編碼)圖像所需的處理時間。例如,當使用現有工具來創建ETC經壓縮紋理時,對於那些工具所支持的最高質量而言,處理時間可能約為每秒300至400像素,或者針對典型紋理的30分鐘至I小時。這麼長的處理時間源於針對每一個像素塊在可用編碼空間中執行搜索以找出基本顏色和亮度偏移量的最佳組合。為了產生最高質量的經壓縮紋理,搜索是多維且廣泛的,從而導致這些長處理時間。但是,在開發和測試圖形應用時,這樣的長處理時間是不可接受的,因為應用可能包括數十或數百個紋理,並且開發者需要能夠在開發期間評價經壓縮紋理的質量。圖IA示意性地圖示出了 4X4的像素塊10。通常,當根據諸如ETC之類的編碼格式來編碼這樣的像素塊時,每個塊事實上是按照彼此相鄰的兩個半塊(half-block)來編碼的。如圖IA所示,像素塊10可通過垂直分割來劃分成兩個半塊。等同地,同一個像素塊也可憑藉水平分隔來劃分成兩個半塊。
ETC編碼格式定義了 8個表格的亮度偏移量,如圖IB所示。因此,針對每個半塊來定義基本顏色,並且憑藉一個3比特的表格號和八個2比特的表格條目號來編碼該半塊中的八個像素。根據ETC標準定義了兩種編碼,即,絕對編碼和差分編碼,如圖IC所不。每一種編碼使得像素塊被編碼為單個64比特的值。在絕對編碼中,對各個半塊進行獨立編碼。每一 個半塊的基本顏色被編碼為12比特(444)的RGB值,並且整個塊的編碼由24比特表示,這24比特給出了構成該塊的第一和第二半塊的基本顏色的R、G和B分量。之後跟隨兩個3比特的值,這兩個3比特的值給出了用於每一個半塊的亮度偏移量表格。「diff」比特指示出已經使用絕對編碼還是差分編碼來對該塊進行編碼。「flip」比特指示出已經水平地還是垂直地將塊分割成半塊。最後,兩個半塊的16個單獨像素各自由2個比特表示,這2個比特給出了它們在所選表格中的相應條目。編碼格式將這些像素分組成16MSB和16LSB。差分編碼被類似地定義,除了在差分編碼中,第二半塊的基本顏色被定義為相對於第一半塊的偏移量。因此,第一半塊的基本顏色被給予15比特(555)的RGB值,而第二半塊的R、G和B偏移量各自被給予3比特的偏移量。這在定義基本顏色方面實現了更高的精度,但是唯有半塊的基本顏色相互足夠接近以使得能夠由這些3比特偏移量表示才行。否貝U,使用絕對編碼。用於編碼半塊的基本顏色的24比特與可在編碼中定義的預定基本顏色集合相對應。圖2A示意性地圖示出了該預定基本顏色集合。注意,為了圖示清楚起見,僅示出了二維表示,其中僅示出了 R和G分量(第三維中的B分量被省略)。用於編碼給定半塊而選擇的基本顏色通常是參考該半塊中的像素的平均顏色來選擇的。由於經編碼像素被編碼為相對於所選基本顏色的亮度偏移量,所以圖2A中的斜線(亮度線)約束了經編碼像素可在該顏色空間中所處的位置。如圖2A所示,存在一種以上的用於從可用於計算出的給定平均顏色的預定基本顏色集合選擇基本顏色的方式。基本顏色30是在最接近的亮度線上的最接近基本顏色,而基本顏色40是在幾何上最接近的基本顏色。圖2B以圖形方式圖示出了憑藉離基本顏色的亮度偏移量來對給定像素值編碼。(從預定表格的亮度偏移量選擇的)亮度偏移量給出了經壓縮像素顏色相對於基本顏色在該顏色空間中的位置。經壓縮像素顏色和原始像素顏色之間的距離給出了該像素的編碼誤差。圖3示出了通過現有的ETC壓縮算法針對每一個半塊的像素的基本顏色執行的搜索範圍。在依據該半塊的像素的平均顏色已經選擇初始基本點(即,基本顏色)之後,在圍繞起始基本點的基本點容納體中執行搜索以查明是否找到了改進的編碼。在高質量版本的壓縮中,考察了 7X7X7的搜索體積(在示出的2D表示中被表示為7X7的搜索區域)。在這些編碼中,選擇使得針對半塊的總編碼誤差最小化的編碼。這是針對這7 X 7 X 7 (即,343)個候選基本點的每一個的所有8個可能表格來計算出最佳編碼的迭代處理,該處理對於現有壓縮工具而言將產生冗長的處理過程。針對這樣的圖像編碼/壓縮的一些現有方案的描述可從如下文獻中找到Jacob Strom 和 Tomas Akenine-Moller 所著的描述 ETC 壓縮格式的(從 http: //www. Rraphicshardware. orR/previous/www 2005/presentations/strom-ipackman-Rh05.ppt 檢索至Ij 的)演講稿 「 iPackman-High-Quality, LowComplexity Texture Compressionfor Mobile Phones,,;(從 http : //www. khronos. org/registry/gles/extensions/OES/OEScompressed ETC1RGB8 texture, txt 可得的)ETC 格式的完整 Khronos 標準;J. M. P. van Waveren 的論文「Real Time DXT Compression」,2006 年 5 月(http: //cache-www. intel. com/cd/00/00/32/43/324337 324337. pdf);以及(2010 年 11 月 12 日從http: //code, google. com/p/nvidia-texture-tools/wiki/ApiDocumentation 檢索至Ij 的)NVIDIA紋理工具的描述。但是,上述的冗長處理時間在現有技術方案中是很普遍的,因此希望提供一種用於生成高質量編碼的改進技術,其需要較少的處理時間。
發明內容
從第一方面看,本發明提供了一種根據預定編碼格式來生成圖像的編碼的編碼方法,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合,其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的,其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的集合, 並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上,所述方法包括針對每一個像素塊執行的以下步驟確定所述預定顏色空間中的所述像素塊的顏色的平均顏色;依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線;識別位於所述至少一條亮度線上的候選基本顏色集合;以及使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和(sum distance)的編碼誤差來選擇的。當根據在像素塊中編碼圖像的預定編碼格式來編碼圖像時,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於該基本顏色的亮度偏移量的集合,本發明的發明人意識到可以通過從位於至少一條亮度線上的候選基本顏色集合中為每一個像素塊選擇基本顏色來提供改進方法,所述至少一條亮度線貫穿了編碼所操作於的預定顏色空間。該預定顏色空間中的亮度線由可用於編碼的預定基本顏色集合來定義。因此,根據本發明的技術,針對要編碼的每一個像素塊,首先確定該像素塊的像素的平均顏色,然後依據該平均顏色在預定顏色空間中離至少一條亮度線的偏移量來選擇至少一條亮度線。這至少一條亮度線於是提供了隨後用於確定最終編碼的候選基本顏色集合。
已經發現,不是使用例如形成近似以要編碼的像素塊的平均顏色為中心的立方體(例如,圖3所示的7 X 7 X 7的搜索體)的基本顏色集合來識別候選基本顏色集合,而是,如果參考貫穿預定顏色空間的亮度線來選擇候選基本顏色則可提供改進的編碼方法。這是由於以下事實將像素塊編碼為基本顏色和相對於該基本顏色的亮度偏移量的集合的編碼格式在設定亮度值方面比在設定色度值方面提供了更大的靈活度。此外,由於經編碼像素顏色被約束為位於貫穿預定顏色空間的亮度線中的一條亮度線上(因為每一個經編碼像素顏色被表示為沿著這些亮度線之一的離位於該亮度線上的某處的基本顏色的偏移量),所以通過參考亮度線來執行選擇而不是通過使用圍繞像素塊的平方像素顏色的空間搜索,改進了對用於編碼特定像素塊的最佳基本顏色的識別。例如當像素塊的顏色廣泛分布於預定顏色空間中時(這意味著像素塊的平均顏色的位置並不特別代表個體像素顏色),這種技術可能特別有益。在這種情形中,亮度線可能比圍繞平均顏色的預定搜索空間更加適合於提供候選基本顏色。使得基於亮度線的方案更加有利的又一個因素在於定義了預定顏色空間中的具有增長亮度的線的亮度線不必然是具有恆定色度的線,這是因為亮度可以超過一顏色分量達到飽和的點而增長或減小。從圖解的角度看,這表示亮度線滿足預定顏色空間的邊緣的情形。因此,亮度線不必然採取穿過該預定顏色空間的單一徑直路徑。因此,可能存在更佳地與給定像素顏色集合匹配的亮度線,而另一方面那些像素的平均顏色的位置更接近將僅僅允許對像素顏色進行較差編碼的基本顏色。特別地,這可能是如下的情況最接近預定顏色空間中的平均像素顏色的基本顏色在色度方面與各個像素顏色顯著不同,這是因為預定編碼格式僅僅允許各個像素在離基本顏色的亮度偏移量方面不同,並因而該色度差異可能產生(在經編碼像素顏色與原始像素顏色之間的)很大的編碼誤差。將了解,存在各種可以定義偏移量的方式,但是在一個實施例中,所述顏色空間中的所述偏移量是所述平均顏色和所述至少一條亮度線之間的最接近路徑的距離。還將了解,存在各種可以定義編碼誤差的方式,但是在一個實施例中,所述編碼誤差被計算為所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的平方距離的總和(a sum of squared distances)。在一個實施例中,所述選擇所述至少一條亮度線的步驟包括選擇具有最小的所述偏移量的值的三條亮度線。在三維預定顏色空間(例如,RGB)的上下文中,選擇三條亮度線是特別適當的,這是因為給定平均顏色的位置將被三條亮度線包圍。這三條亮度線中的哪條亮度線將證實最適合提供用於編碼的基本顏色將取決於像素塊的像素顏色相對於每一條線的位置。在一個實施例中,所述選擇至少一條亮度線的步驟包括迭代的亮度線選擇過程,所述迭代的亮度線選擇過程包括以下步驟審查已經選擇的亮度線的相鄰亮度線;以及如果所述像素塊的所述顏色離所述相鄰亮度線的總偏移量不大於所述像素塊的所述顏色離所述已經選擇的亮度線的總偏移量,則選擇所述相 鄰亮度線。因此,憑藉該迭代的亮度線選擇過程可以選擇多於一條的亮度線。該迭代的亮度線選擇過程的提案基於如下認知依據其在預定顏色空間中離像素塊的平均顏色的偏移量來選擇的初始亮度線事實上可能並沒有提供作為針對該像素塊的最佳編碼的基本顏色。例如,由於亮度線穿過預定顏色空間所採取的路徑,最接近各個像素顏色的亮度線可能與最接近那些像素的平均顏色的亮度線不同。因此,該迭代的亮度線選擇過程對相鄰亮度線進行審查並對像素塊的顏色離該相鄰亮度線的總偏移量和像素塊的顏色離已經選擇的亮度線的總偏移量進行比較,並且如果結果是相鄰亮度線更接近像素塊的顏色(就總偏移量而言),則該相鄰亮度線也被選擇。 將了解,存在各種可以計算總偏移量的方式,但是在一個實施例中,所述總偏移量被計算為所述像素塊的所述顏色與各條亮度線的相應最接近點之間的平方距離的總和。在一個實施例中,僅在所述相鄰亮度線在顏色飽和度方面相對於所述已經選擇的亮度線體現出增長的情況下,所述相鄰亮度線才被審查。在考慮預定顏色空間中的亮度線時,已經意識到最接近像素塊的顏色(例如,在均方根(RMS)距離方面)的亮度線或者是最接近像素的平均顏色的線或者是比該線具有更高飽和度顏色的線。因此,當作為迭代的亮度線選擇過程的一部分來選擇其他亮度線時,有利的是僅考慮選擇在顏色飽和度方面相對於已經選擇的亮度線體現出增長的相鄰亮度線。在一個實施例中,僅在所述已經選擇的亮度線的所述總偏移量具有非零值的情況下,所述相鄰亮度線才被審查。已經意識到像素顏色的某些特定配置可能產生在那些像素顏色與給定亮度線之間的總偏移量的零值。例如,這可能是如下這種情況像素顏色直接位於一條或多條亮度線上,這例如在像素顏色位於預定顏色空間的顏色完全飽和邊緣上時是可能的。在這種情形中,不必審查相鄰亮度線。在一個實施例中,當多條亮度線被選擇時,所述多條亮度線被按每一條亮度線的總偏移量來排序。在針對編碼像素顏色的任意給定集合的編碼誤差必須至少是針對相應亮度線的總偏移量的情況下,有利的是存在按它們的總偏移量進行排序了的多條亮度線。平均而言,具有最小總偏移量的亮度線最可能產生最低編碼誤差。但是,應當認識到,具有最小總偏移量的線不必然產生最低編碼誤差,這是因為這取決於像素顏色相對於該亮度線上的可用基本顏色的特定位置。例如,如果像素顏色恰巧相對較遠離可用基本顏色則可能發生這種情況,於是另一條亮度線可能提供針對該像素塊的更小編碼誤差。在一個實施例中,所述確定所述經編碼像素顏色的集合的步驟包括迭代的亮度線考慮過程,其中,所述識別位於所述至少一條亮度線上的候選基本顏色集合的步驟和所述確定所述經編碼像素顏色的集合的步驟被針對所述多條亮度線、按增長的總偏移量的順序來執行。已經選擇了多條亮度線之後,用於審查它們的最程序高效的方式是按增長的總偏移量的順序。在一個實施例中,所述確定所述經編碼像素顏色的集合的步驟包括迭代的編碼確定過程,該迭代的編碼確定過程包括針對所述候選基本顏色的集合中的每一個候選基本顏色的以下步驟使用應用於所述候選基本顏色的所述亮度偏移量值來確定經編碼像素顏色的候選集合;確定所述經編碼像素顏色的候選集合的候選編碼誤差,該候選編碼誤差指示出所述像素塊的所述顏色與所述經編碼像素顏色的候選集合之間的在所述顏色空間中的距離總和;如果所述候選編碼誤差低於針對所述像素塊確定的任何在前候選編碼誤差,則將所述候選編碼誤差設定為最佳編碼誤差;將所述候選基本顏色和當被應用於所述候選基本顏色時給出所述最佳編碼誤差的那些亮度偏移量值選擇為所述基本顏色和所述亮度偏移量的集合。因此,在已經確定候選基本顏色集合的情況下,可以輪流地取入每一個候選基本顏色以使用應用於該候選基本顏色的亮度偏移量值來確定經編碼像素顏色的候選集合。在此基礎上,可以確定指示出像素塊的顏色與經編碼像素顏色的候選集合之間的在顏色空間中的距離總和的候選編碼誤差。針對這樣確定的每一個候選編碼誤差,如果發現其低於任何在前的候選編碼誤差,則該候選編碼誤差被設定為最佳編碼誤差。這樣,隨著每一個候選基本顏色被考慮,保持跟蹤目前為止所發現的最佳編碼誤差,並且在處理的結尾,基本顏色和給出最佳編碼誤差的亮度偏移量集合可被用作針對該像素塊選中基本顏色和亮度偏移量集合。 在一個實施例中,所述至少一個預定表格的亮度偏移量值包括多個預定表格的亮度偏移量值,並且所述使用應用於所述候選基本顏色的所述亮度偏移量值來確定所述經編碼像素顏色的候選集合的步驟包括使用所述多個預定表格的亮度偏移量值中的每一個表格來迭代地確定所述經編碼像素顏色的候選集合。於是,當多個預定表格的亮度偏移量值被提供時,使用應用於候選基本顏色的亮度偏移量值來確定經編碼像素顏色的候選集合的步驟可以輪流地嘗試每一個表格的亮度偏移量值以尋求找到最佳編碼誤差。在一個實施例中,所述編碼誤差被累積地確定為累積編碼誤差,並且如果針對在考慮中的當前表格的亮度偏移量值的所述累積編碼誤差超過了所述最佳編碼誤差,則使用所述當前表格的亮度偏移量值來確定所述經編碼像素顏色的候選集合被終止。因此,隨著每一個表格的亮度偏移量值被考慮,編碼誤差被累積地確定,並且如果該累積誤差超過了先前發現的最佳編碼誤差,則可以知曉,使用該表格的最終編碼誤差只會超過目前為止發現的最佳編碼誤差,並且通過終止針對該表格的亮度偏移量值的計算可以節省處理時間。可以逐像素地評估該累積編碼誤差,並且在一個實施例中,針對所述像素塊的所述顏色來逐像素地將所述累積編碼誤差與所述最佳編碼誤差進行比較。因此,只要針對給定像素的計算使得累積誤差超過目前為止發現的最佳編碼誤差,就可以終止考慮(如被應用於在考慮中的當前基本顏色的)該表格的亮度偏移量值。在一個實施例中,在考慮下一條亮度線之前,如果針對所述下一條亮度線的所述總偏移量超過了所述最佳編碼誤差,則所述迭代的亮度線考慮過程被終止,並且所述下一條売度線和所述多條売度線中的任何其他売度線都不被考慮。這是因為如下事實如上所述,使用給定亮度線上的基本顏色的編碼誤差必須至少與針對該亮度線的總偏移量一樣大。因此,在迭代的亮度線考慮過程期間,如果發現針對下一條亮度線的總偏移量超過了目前為止發現的最佳編碼誤差,則可以立即得出該下一條亮度線無法繼續改進最佳編碼誤差,並且任何其他亮度線也都無法繼續改進最佳編碼誤差,這是因為這些亮度線被按總偏移量進行了排序。如此這樣,目前為止發現的最佳編碼誤差無法被繼續改進,並且迭代的亮度線考慮過程可立即被終止。在一個實施例中,所述塊各自包括2個像素乘以4個像素的集合。在一個實施例中,以相互依賴的方式來編碼所述像素塊中的至少一對相鄰塊,所述配對的相鄰塊中的第二塊被參考所述配對的相鄰塊中的第一塊來編碼。可以發現以相互依賴的方式來編碼配對的相鄰塊在編碼效率方面是很有利的。例如,如果要使用24比特來編碼兩個相鄰像素塊的基本顏色,同時每一個基本顏色可以用12比特進行編碼,則通過使用15比特(例如,RGB 555)來編碼一個基本顏色,同時將另一個基本顏色定義為相對於該基本顏色的3比特偏移量的集合,可以實現更大的基本顏色定義精度。如果兩個塊的基本顏色之間的差異足夠小到可以用該3比特偏移量的集合進行表示,則這當然是可能的。在一個實施例中,所述配對的塊在水平方向上相鄰,而在另一個實施例中,所述配對的塊在垂直方向上相鄰。在一個實施例中,方法還包括針對每一個像素塊來判斷所述編碼誤差在該像素塊被以所述相互依賴的方式來編碼時更低還是在該像素塊被以不參考另一個像素塊的獨立方式來編碼時更低。隨後可以選擇針對該像素塊給出最低編碼誤差的編碼方式。在一個實施例中,方法還包括針對每一個像素塊來迭代地確定針對所有編碼方式的所述編碼誤差以及選擇給出所述編碼誤差的總體最低值的編碼方式。因此,逐塊地,獨立/相互依賴編碼和水平/垂直分割的每一次置換(permutation)可被測試以確定哪次置換給出了最佳編碼。還可以針對每一種不同的相互依賴編碼來判斷是否在第一塊依賴於第二塊的情況下產生較低編碼誤差(向塊的配對給予任意的第一和第二標號),反之亦然。在一個實施例中,在所述顏色空間中的距離計算是根據人類對所述顏色空間中的每一個顏色分量的靈敏度來進行了知覺加權的。由於人眼對不同顏色分量的靈敏度的差異,通過將此現象作為因素計入距離計算中可以獲得編碼質量方面的可感知的改進。在一個實施例中,所述編碼誤差被計算為峰值信噪比。這也可被判定為給出了改進的編碼質量。在一個實施例中,所述圖像是紋理圖像。紋理圖像需要被圖形應用隨機訪問,並因而基於塊的編碼特別適合。 在一個實施例中,所述預定編碼格式是ETC格式。從第二方面看,本發明提供了一種電腦程式產品,其以非瞬態方式存儲被配置為使得計算機執行第一方面的編碼方法的電腦程式。從第三方面看,本發明提供了一種被配置為根據預定編碼格式來生成圖像的編碼的編碼設備,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合,其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的,其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的集合,並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上,被配置為對每一個像素塊執行操作的所述設備包括 平均顏色確定單元,被配置為確定所述預定顏色空間中的所述像素塊的平均顏色;亮度線選擇單元,被配置為依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線;候選基本顏色識別器,被配置為識別位於所述至少一條亮度線上的候選基本顏色集合;以及 確定單元,被配置為使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和的編碼誤差來選擇的。從第四方面看,本發明提供了一種用於根據預定編碼格式來生成圖像的編碼的編碼設備裝置,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合,其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的,其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的集合,並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上,被配置為對每一個像素塊執行操作的所述設備裝置包括平均顏色確定裝置,用於確定所述預定顏色空間中的所述像素塊的平均顏色;亮度線選擇裝置,用於依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線;候選基本顏色識別裝置,用於識別位於所述至少一條亮度線上的候選基本顏色集合;以及確定裝置,用於使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和的編碼誤差來選擇的。
將僅通過示例參考如附圖中所圖示出的本發明的實施例來進一步描述本發明,在附圖中圖IA示意性地圖示出了要被編碼的像素塊,該像素塊被垂直地劃分成兩個半塊;圖IB示意性地示出了由ETC格式定義的8個預定亮度偏移量表格的集合;圖IC示出了根據ETC格式對每一個像素塊進行64比特編碼的分類,兩者均用於絕對編碼和差分編碼;圖2A示出了在預定顏色空間中的像素顏色集合、那些像素的平均顏色以及預定的可能基本顏色集合;圖2B圖示出了利用基本顏色和與原始像素顏色進行比較的亮度偏移量對經壓縮像素顏色的編碼;圖3示出了根據現有技術編碼方法考慮的候選基本點所在的搜索區域(容納體);圖4A圖示出了最接近平均像素顏色的亮度線和相對於原始像素顏色的最佳亮度線.
-^4 ,圖4B圖示出了指示出增長的顏色飽和度的方向的亮度線集合;圖5A示意性地圖示出了在一個實施例中用於確定給定像素塊的最佳編碼所採取的一系列步驟;圖5B圖示出了在圖5A所示的處理中使用的差分計算所涉及的步驟;圖6示意性地圖示出了在一個實施例中當確定亮度線的候選集合時所採取的一系列步驟;圖7示意性地圖示出了在一個實施例中當執行迭代的亮度線考慮過程時所採取的一系列步驟;圖8示意性地圖示出了在一個實施例中、在迭代的編碼確定過程中當考慮亮度線上的候選基本顏色集合時所採取的一系列步驟;以及圖9示意性地圖示出了可用於實現各個實施例的通用計算設備。
具體實施例方式圖4A圖示出了來自像素塊(具體地,來自2X4個像素的半塊)的8個像素顏色的集合,其圖示出了為什麼平均像素顏色的附近區域不包含用於編碼這些像素顏色的最佳基本顏色。由於原始像素顏色散布在兩個群組(一個群組相對接近原點,另一個群組在高R/低G區域)中這一事實,所以平均像素顏色落在這兩個群組之間的中R/低G值的某處。注意,應當了解,雖然圖4A和4B是針對二維顏色空間(RG)來示出的,但是這僅僅是為了圖示清楚起見,並且預定顏色空間更通常情況下是三維的(RGB)。從圖4A可以看出,最接近平均像素顏色的(在「最接近的亮度線」上的)基本顏色預期僅能夠提供具有相對較大的編碼誤差的經編碼像素顏色集合。左側的像素群組沒有極大地偏離該基本顏色所位於的亮度線,並因而能夠以相對較大的負亮度偏移量來相當不錯地編碼,而右側的像素顏色群組保持離該亮度線較遠距離,並因而僅能夠以相對較大的編碼誤差來編碼。對比之下,可以看出最佳基本顏色位於離左側像素群組和右側像素群組都較近的亮度線(「最佳亮度線」)上。本發明的發明人特別認識到,通過選擇不是最接近給定的像素顏色群組的平均像素顏色的亮度線的亮度線而針對這些像素能夠實現的編碼誤差方面的改進(如果這會發生)僅對於相對於最接近平均像素顏色的亮度線體現出顏色飽和度方面的增長的亮度線才會發生。圖4B示出了亮度線的顏色飽和度的增長行程。返回來參考圖4A,「最佳亮度線」t匕「最接近的亮度線」處在更高的顏色飽和度。因此,本發明的實施例提議了一種迭代式的亮度線選擇過程,其中,具有增長的顏色飽和度的亮度線被迭代地考慮(如以下將更詳細描述的)。圖5A中示意性地闡示 了本發明的一個實施例的總體編碼過程。根據圖5A所闡示的步驟來處置每一個4X4的像素塊。首先,在步驟100-135中,執行多個差分編碼計算。這些步驟包括將4 X 4的塊劃分成兩個2 X 4的半塊並確定一個半塊相對於另一個半塊的編碼。將塊向兩個半塊的劃分可以是水平的或者垂直的,並且每一個半塊都可被處置為「第一」半塊,「第二」半塊被相對於該「第一」半塊來差分地編碼。首先,在步驟100,將塊垂直地劃分,將左側的半塊設定為「第一塊」並將右側的半塊設定為「第二塊」。然後,在步驟105,執行差分計算以確定該置換的編碼誤差。步驟105處的差分計算被如圖5B所示地執行。這裡,在步驟160,首先針對第一半塊計算最佳的無限制差分編碼。然後,在步驟165,確定第二半塊相對於第一半塊的最佳差分編碼。最後,在步驟170,基於原始像素值和經壓縮像素 值之間的(在顏色空間中的)差異來確定該塊的總體編碼誤差。返回到圖5A,隨後在步驟110和115中重複在步驟100和105中執行的處理,除了現在將右側的半塊設定為「第一塊」並將左側的半塊設定為「第二塊」之外。類似地,在步驟120、125、130和135中,相同的過程被執行,只不過現在將塊水平地分割成上半塊和下半塊,並且針對上半塊來相對於下半塊執行差分計算,然後反轉,即,針對下半塊來相對於上半塊執行差分計算。從而已經考慮了所有的差分編碼置換,並且在步驟140,針對向兩個半塊的水平分割來確定最佳絕對編碼,而在步驟145,針對向兩個半塊的垂直分割來計算最佳絕對編碼。最後在步驟150,將針對作為整體的塊給出最低編碼誤差的最佳總體編碼被選擇為該塊的選中編碼。現在將參考圖6、7和8來描述如何確定每一個半塊的最佳編碼的細節。每一個編碼過程開始於圖6所示的選擇要用於編碼的候選亮度線集合的處理。首先,在步驟200,確定半塊的平均像素顏色。然後,在步驟205,選擇最接近平均像素顏色的三條可編碼亮度線。這三條亮度線在用於編碼的三維RGB空間中圍繞該平均像素顏色。然後,在步驟210,針對這些亮度線中的每一條亮度線,計算像素顏色離該亮度線上的最接近點的平方距離的總和(「總偏移量」),並且將每一條亮度線添加到亮度線候選集合。在該亮度線候選集合中,初始選擇的三條亮度線中的每一條被標記為「父」線,並且關於針對每一條亮度線計算出的平方距離的總和對該集合進行排序(sort)。接下來,從步驟215開始執行迭代式的亮度線選擇過程。在步驟215,選擇候選列表中被標記為「父」線的亮度線。然後,在步驟220,判斷該「父」線是否具有顏色飽和度比父線高的相鄰「子」線。注意,在3D顏色空間中,對於每一條父線,通常存在兩條具有更高飽和度的相鄰子亮度線。還要注意,已經(經由另一父線)審查過的相鄰子線通常將不再被考慮。如果存在這樣的相鄰子亮度線,則在步驟225,選擇一子亮度線,並且計算半塊的像素顏色離該子亮度線的平方距離的總和。然後,在步驟230,判斷該平方距離的總和是否不大於該子亮度線的父亮度線的平方距離總和。如果為真,則在步驟235,將該子線添加到按平方距離的總和進行了排序的候選線集合。最後,在步驟240,判斷平方總和是否非零,並且如果是,則還在候選列表中將該子線標記為父線。在已經將該子線添加到候選線集合的情況下,在步驟250,判斷當前在考慮的父線是否有另一條子線,並且如果有,則流程返回到步驟225以處理該子線。但是,如果當前的父線沒有另一條子線,或者如果在(上述的)步驟220判定當前在考慮的父線不具有任何具有更高飽和度的相鄰子亮度線,則流程行進到步驟255,在該步驟255判斷在侯選線集合中是否有被標記為父線並且尚未被處理的另一條亮度線。如果有,則流程返回到步驟215以開始處理該父線。如果在候選集合中沒有其它的未經處理父線,則流程行進到步驟260,在該點處完成候選線生成處理。在根據圖6所述的過程選擇了亮度線候選集合的情況下,隨後可以對該候選亮度線集合進行考慮以確定哪條亮度線給出了產生針對該半塊的最佳編碼的基本顏色。在一個實施例中根據圖7所示意性示出的步驟來執行該過程。首先,在步驟300,從根據它們的總偏移量(即,半塊的像素顏色離該亮度線上的最接近點的平方距離的總和)進行排序了的亮度線候選集合中,選擇具有最低偏移量的線。然後,在步驟305,確定可用於該線的最佳編碼(即,使用定義了該線的亮度偏移量和基本顏色的集合)。下面將參考圖8更詳細地對此進行描述。已經確定了該線的最佳編碼之後,在步驟310,將該線的編碼誤差確定為該半塊的原始像素的顏色和根據此編碼進行編碼後的像素顏色集合之間的平方距離的總和。如果該編碼誤差是到此為止已經確定的最佳(即,最低)編碼誤差,則將該編碼誤差設定為當前的最佳誤差。然後,流程行進到步驟315,在該步驟315中判斷在經過排序的列表中是否有另一條候選亮度線。如果有,則流程行進到步驟320,在該步驟320中選擇下一條最接近的亮度線(就計算出的總偏移量而言)。然後在步驟325,檢查離該線的平方距離的總和(即,針對該線的總偏移量)——該線在候選列表中正是根據這一平方距離的總和來排序的——是否大於目前為止所確定的最佳誤差(參見步驟310)。如果是,則對該線或者任何其它線而言不可能在該最佳誤差上改進,並且流程行進到結束步驟330,在該步驟330中,使用給出該最佳誤差的線(具體地,使用給出該最佳誤差的那條線上的基本顏色)來對半塊進行編碼。但是,如果在步驟325發現,針對候選列表中的該下一條線的總偏移量沒有超過目前為止計算出的最佳誤差,則流程返回到步驟305以確定針對該下一條線的最佳編碼,並在步驟310查看針對該下一條線的編碼誤差是否在目前為止的最佳誤差上改進了。如果在任意一次迭代中,在步驟315判定沒有其它的候選線列表,則流程行進到步驟330。現在參考圖8所示的步驟來描述確定給定亮度線的最佳編碼(圖7中的步驟305)的過程。首先,在步驟400,選擇該亮度線上的第一基本點(候選基本顏色)。然後,在步驟405,選擇第一表格的亮度偏移量值。然後,根據該表格的亮度偏移量值,在步驟410確定該半塊的第一像素的最佳表格條目(即,亮度偏移量值)。這裡,「最佳」意指產生該像素的最低編碼誤差的條目。該像素的編碼誤差(即,經編碼像素顏色和原始像素顏色之間的在顏色空間中的距離)被添加到該半塊的累積編碼誤差。在步驟415,檢查該累積編碼誤差是否超過了該半塊的目標誤差。注意,在圖8中所描述的處理中的針對該第一基本點、第一表格和第一像素的首次迭代中,自然沒有預先存在的目標誤差,因此在該首次迭代中,步驟415的結果將總是遵循「否」路徑。然後,在步驟420判斷在該半塊內是否有另一個像素,並且如果有,則在步驟425針對該下一個像素確定(當前在考慮中的表格的)最佳表格條目。與該下一個像素相關聯的編碼誤差也被計算出並被添加到該表格的累積誤差。如果針對該半塊的所有像素完成了步驟415、420和425的循環(即,步驟415的總誤差測試沒有失敗),則在步驟430將針對該當前表格為該半塊計算出的總誤差設定為新的目標誤差。如果在步驟415的總誤差測試失敗了或者在步驟430設定了新的目標誤差,則流程行進到步驟435,在該步驟435判斷是否有可被考慮用於編碼該半塊的另一個表格。如果有,則在步驟440,選擇該下一個表格,並且流程返回到步驟410以嘗試使用該表格對該像素半塊進行編碼。但是,如果在步驟435沒有可用的另一個表格,則流程行進到步驟445,在該步驟445中判斷當前在考慮中的亮度線上是否有另一個基本點(即,候選基本顏色)。如果有,則流程返回到步驟405,在步驟405再次使用該新的基本顏色來執行相對於可用表格的迭代判斷處理。一旦已經考慮了該線上的所有基本點,則流程結束於步驟450,在步驟450中確定針對該線的最佳編碼將由給出目標誤差的基本顏色和亮度偏移量給出
應當注意,在一些實施例中,在預定顏色空間中計算出的上述距離被計算為加權了知覺的距離(perception-weighted distance),從而將人眼對不同顏色分量的靈敏度考慮在內。此外,在一些實施例中,可以就峰值信噪比而言來計算編碼誤差。這樣的技術是本領域技術人員所熟悉的,因而這裡不做詳細描述。
圖9示意性地圖示了可用於實現上述技術的那種類型的通用計算設備500。通用計算設備500包括經由總線522連接在一起的中央處理單元502、隨機訪問存儲器504和只讀存儲器506。其還包括網絡接口卡508、硬碟驅動器510、顯示驅動器512和監視器514、以及具有鍵盤518和滑鼠520的用戶輸入/輸出電路516,它們都經由公共總線522來連接。在操作時,當執行必要計算來確定每一個像素塊的編碼時,中央處理單元502將執行例如可存儲在隨機訪問存儲器504和/或只讀存儲器506中的電腦程式指令。另外,可從硬碟驅動器510檢索或者經由網絡接口卡508來動態下載程序指令。可經由所連接的顯示驅動器512和監視器514來向用戶顯示所執行的處理的結果。可經由所連接的用戶輸入輸出電路516從鍵盤518或滑鼠520接收用於控制通用計算設備500的操作的用戶輸入。將了解,可以各種不同的計算機語言來編寫電腦程式。電腦程式可被本地地存儲在記錄介質上或者動態地下載到通用計算設備500。當在適當電腦程式的控制之下操作時,通用計算設備500可以執行上述技術並且可被視為形成了用於執行上述技術的裝置。通用計算設備500的體系結構可以極大地不同,並且圖9僅僅是一個示例。這裡描述的技術實現了將比現有技術中已知的技術更快地執行的圖像編碼。例如,使用現有工具來創建ETC經壓縮紋理是非常慢的(對於現有工具所支持的最高質量,每秒300至400像素,或者對於一個典型紋理需要30分鐘至I個小時)。這裡所描述的技術使得壓縮處理加速了最高達125倍(在所測試的示例情況中),從而給出了高達40,000像素每秒的壓縮速度。此外,在許多情況中,這同時還產生了比現有算法更高的質量結果。這在開發和測試圖形應用的上下文中具有特別的益處,因為應用可能包括數十或數百個紋理,並且這裡所描述的技術使得開發者可以在開發期間更快速地評價經壓縮紋理的質量。雖然這裡已經描述了特定實施例,但是將了解,本發明不限於此,並且可在本發明的範圍內對其進行各種修改和添加。例如,從屬權利要求的特徵可以與獨立權利要求的特徵進行各種組合,而不脫離本發明的範圍。
權利要求
1.一種根據預定編碼格式來生成圖像的編碼的編碼方法,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合, 其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的, 其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的: 口, 並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上, 所述方法包括針對每一個像素塊執行的以下步驟 確定所述預定顏色空間中的所述像素塊的顏色的平均顏色; 依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線; 識別位於所述至少一條亮度線上的候選基本顏色集合;以及 使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和的編碼誤差來選擇的。
2.根據權利要求I所述的編碼方法,其中,所述顏色空間中的所述偏移量是所述平均顏色和所述至少一條亮度線之間的最接近路徑的距離。
3.根據權利要求I所述的編碼方法,其中,所述編碼誤差被計算為所述經編碼像素顏色的集合和所述像素塊的所述顏色之間的平方距離的總和。
4.根據權利要求I所述的編碼方法,其中,所述選擇所述至少一條亮度線的步驟包括選擇具有最小的所述偏移量的值的三條亮度線。
5.根據權利要求I所述的編碼方法,其中,所述選擇至少一條亮度線的步驟包括迭代的亮度線選擇過程,所述迭代的亮度線選擇過程包括以下步驟 審查已經選擇的亮度線的相鄰亮度線;以及 如果所述像素塊的所述顏色離所述相鄰亮度線的總偏移量不大於所述像素塊的所述顏色離所述已經選擇的亮度線的總偏移量,則選擇所述相鄰亮度線。
6.根據權利要求5所述的編碼方法,其中,所述總偏移量被計算為所述像素塊的所述顏色與各條亮度線的相應最接近點之間的平方距離的總和。
7.根據權利要求5所述的編碼方法,其中,僅在所述相鄰亮度線在顏色飽和度方面相對於所述已經選擇的亮度線體現出增長的情況下,所述相鄰亮度線才被審查。
8.根據權利要求5所述的編碼方法,其中,僅在所述已經選擇的亮度線的所述總偏移量具有非零值的情況下,所述相鄰亮度線才被審查。
9.根據權利要求5所述的編碼方法,其中,當多條亮度線被選擇時,所述多條亮度線被按每一條亮度線的總偏移量來排序。
10.根據權利要求9所述的編碼方法,其中,所述確定所述經編碼像素顏色的集合的步驟包括迭代的亮度線考慮過程,其中,所述識別位於所述至少一條亮度線上的候選基本顏色集合的步驟和所述確定所述經編碼像素顏色的集合的步驟被針對所述多條亮度線、按增長的總偏移量的順序來執行。
11.根據權利要求I所述的編碼方法,其中,所述確定所述經編碼像素顏色的集合的步驟包括迭代的編碼確定過程,該迭代的編碼確定過程包括針對所述候選基本顏色的集合中的每一個候選基本顏色的以下步驟 使用應用於所述候選基本顏色的所述亮度偏移量值來確定經編碼像素顏色的候選集合; 確定所述經編碼像素顏色的候選集合的候選編碼誤差,該候選編碼誤差指示出所述像素塊的所述顏色與所述經編碼像素顏色的候選集合之間的在所述顏色空間中的距離總和; 如果所述候選編碼誤差低於針對所述像素塊確定的任何在前候選編碼誤差,則將所述候選編碼誤差設定為最佳編碼誤差; 將所述候選基本顏色和當被應用於所述候選基本顏色時給出所述最佳編碼誤差的那些亮度偏移量值選擇為所述基本顏色和所述亮度偏移量的集合。
12.根據權利要求11所述的編碼方法,其中,所述至少一個預定表格的亮度偏移量值包括多個預定表格的亮度偏移量值,並且所述使用應用於所述候選基本顏色的所述亮度偏移量值來確定所述經編碼像素顏色的候選集合的步驟包括使用所述多個預定表格的亮度偏移量值中的每一個表格來迭代地確定所述經編碼像素顏色的候選集合。
13.根據權利要求12所述的編碼方法,其中,所述編碼誤差被累積地確定為累積編碼誤差,並且如果針對在考慮中的當前表格的亮度偏移量值的所述累積編碼誤差超過了所述最佳編碼誤差,則使用所述當前表格的亮度偏移量值來確定所述經編碼像素顏色的候選集合被終止。
14.根據權利要求13所述的編碼方法,其中,所述累積編碼誤差被針對所述像素塊的所述顏色來逐像素地與所述最佳編碼誤差進行比較。
15.根據權利要求10所述的編碼方法,其中,所述確定所述經編碼像素顏色的集合的步驟包括迭代的編碼確定過程,該迭代的編碼確定過程包括針對所述候選基本顏色的集合中的每一個候選基本顏色的以下步驟 使用應用於所述候選基本顏色的所述亮度偏移量值來確定經編碼像素顏色的候選集合; 確定所述經編碼像素顏色的候選集合的候選編碼誤差,該候選編碼誤差指示出所述像素塊的所述顏色與所述經編碼像素顏色的候選集合之間的在所述顏色空間中的距離總和; 如果所述候選編碼誤差低於針對所述像素塊確定的任何在前候選編碼誤差,則將所述候選編碼誤差設定為最佳編碼誤差; 將所述候選基本顏色和當被應用於所述候選基本顏色時給出所述最佳編碼誤差的那些亮度偏移量值選擇為所述基本顏色和所述亮度偏移量的集合, 其中,在考慮下一條亮度線之前,如果針對所述下一條亮度線的所述總偏移量超過了所述最佳編碼誤差,則所述迭代的亮度線考慮過程被終止,並且所述下一條亮度線和所述多條亮度線中的任何其他亮度線都不被考慮。
16.根據權利要求I所述的編碼方法,其中,所述塊各自包括2個像素乘以4個像素的
17.根據權利要求I所述的編碼方法,其中,以相互依賴的方式來編碼所述像素塊中的至少一對相鄰塊,所述配對的相鄰塊中的第二塊被參考所述配對的相鄰塊中的第一塊來編碼。
18.根據權利要求17所述的編碼方法,其中,所述配對的塊在水平方向上相鄰。
19.根據權利要求18所述的編碼方法,其中,所述配對的塊在垂直方向上相鄰。
20.根據權利要求17所述的編碼方法,還包括針對每一個像素塊來判斷所述編碼誤差在該像素塊被以所述相互依賴的方式來編碼時更低還是在該像素塊被以不參考另一個像素塊的獨立方式來編碼時更低。
21.根據權利要求20所述的編碼方法,還包括針對每一個像素塊來迭代地確定針對所有編碼方式的所述編碼誤差以及選擇給出所述編碼誤差的總體最低值的編碼方式。
22.根據權利要求I所述的編碼方法,其中,在所述顏色空間中的距離計算是根據人類對所述顏色空間中的每一個顏色分量的靈敏度來進行了知覺加權的。
23.根據權利要求I所述的編碼方法,其中,所述編碼誤差被計算為峰值信噪比。
24.根據權利要求I所述的編碼方法,其中,所述圖像是紋理圖像。
25.根據權利要求I所述的編碼方法,其中,所述預定編碼格式是ETC格式。
26.一種電腦程式產品,其以非瞬態方式存儲被配置為使得計算機執行根據權利要求I所述的編碼方法的電腦程式。
27.一種被配置為根據預定編碼格式來生成圖像的編碼的編碼設備,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合, 其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的, 其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的隹A: 口, 並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上, 被配置為對每一個像素塊執行操作的所述設備包括 平均顏色確定單元,被配置為確定所述預定顏色空間中的所述像素塊的平均顏色; 亮度線選擇單元,被配置為依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線; 候選基本顏色識別器,被配置為識別位於所述至少一條亮度線上的候選基本顏色集合;以及 確定單元,被配置為使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和的編碼誤差來選擇的。
28.一種用於根據預定編碼格式來生成圖像的編碼的編碼設備裝置,其中,所述預定編碼格式在像素塊中編碼所述圖像,每一個像素塊被編碼為經編碼像素顏色的集合,該經編碼像素顏色的集合包括基本顏色和相對於所述基本顏色的亮度偏移量的集合, 其中,所述基本顏色是從在預定顏色空間中定義的預定基本顏色集合中選擇的,其中,所述亮度偏移量的集合被編碼為對至少一個預定表格的亮度偏移量值的參考的隹A: 口, 並且其中,所述預定基本顏色集合和所述亮度偏移量值在所述預定顏色空間中定義了亮度線的集合,所述經編碼像素顏色位於所述亮度線中的至少一條亮度線上, 被配置為對每一個像素塊執行操作的所述設備裝置包括 平均顏色確定裝置,用於確定所述預定顏色空間中的所述像素塊的平均顏色; 亮度線選擇裝置,用於依據所述平均顏色在所述顏色空間中的離至少一條亮度線的偏移量來選擇所述至少一條亮度線; 候選基本顏色識別裝置,用於識別位於所述至少一條亮度線上的候選基本顏色集合;以及 確定裝置,用於使用所述候選基本顏色集合和所述亮度偏移量值來確定所述經編碼像素顏色的集合,其中,所述基本顏色和所述亮度偏移量的集合是依據指示出所述經編碼像素顏色的集合與所述像素塊的所述顏色之間的在所述顏色空間中的距離總和的編碼誤差來選擇的。
全文摘要
本發明涉及圖像編碼方法。提供了一種根據預定編碼格式生成圖像編碼的編碼方法,每一個像素塊被編碼為經編碼像素顏色集合,該經編碼像素顏色集合包括基本顏色和相對於基本顏色的亮度偏移量的集合。基本顏色是從預定基本顏色集合中選擇的,亮度偏移量集合被編碼為對至少一個預定表格的亮度偏移量值的參考的集合。預定基本顏色集合和亮度偏移量值在顏色空間中定義了亮度線集合,經編碼像素顏色位於至少一條亮度線上。該方法包括針對每一個像素塊執行的以下步驟確定像素塊顏色的平均顏色;依據平均顏色在顏色空間中離至少一條亮度線的偏移量來選擇至少一條亮度線;識別位於該至少一條亮度線上的候選基本顏色集合;以及使用候選基本顏色集合和亮度偏移量值來確定經編碼像素顏色集合。
文檔編號H04N7/26GK102625100SQ20121002689
公開日2012年8月1日 申請日期2012年1月29日 優先權日2011年1月25日
發明者安東尼·尼爾·貝倫特 申請人:Arm有限公司