两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

使用次分辨率圖像的圖像壓縮的制作方法

文檔序號(hào):7991269閱讀:256來(lái)源:國(guó)知局
使用次分辨率圖像的圖像壓縮的制作方法
【專利摘要】公開(kāi)了用于使用次分辨率圖像來(lái)圖像壓縮和解壓的方法、系統(tǒng)和制品。對(duì)圖像進(jìn)行壓縮包括:基于輸入圖像中的統(tǒng)計(jì)相似區(qū)域來(lái)確定多個(gè)熵代碼集;生成包括包含多個(gè)熵代碼集的第一次分辨率圖像的一個(gè)或多個(gè)次分辨率圖像;使用所生成的一個(gè)或多個(gè)次分辨率圖像來(lái)控制包括熵代碼的一個(gè)或多個(gè)壓縮參數(shù),對(duì)輸入圖像進(jìn)行編碼;以及輸出經(jīng)編碼的輸入圖像和所生成的一個(gè)或多個(gè)次分辨率圖像作為壓縮的熵編碼的圖像文件。對(duì)圖像進(jìn)行解壓包括:對(duì)圖像文件進(jìn)行分解來(lái)訪問(wèn)經(jīng)編碼的壓縮輸入圖像和關(guān)于多個(gè)壓縮參數(shù)中的每一個(gè)的相應(yīng)次分辨率圖像;以及使用相應(yīng)次分辨率圖像來(lái)控制多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)經(jīng)編碼的壓縮輸入圖像進(jìn)行解碼。
【專利說(shuō)明】使用次分辨率圖像的圖像壓縮
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)總體上涉及圖像壓縮。
【背景技術(shù)】
[0002]數(shù)字相機(jī)、裝配有相機(jī)的移動(dòng)電話和手持式設(shè)備以及其他便利的圖像捕捉設(shè)備的廣泛可用性已導(dǎo)致被定期地上載到各種基于web的圖像應(yīng)用上的大量圖像。諸如這些的應(yīng)用凸顯出對(duì)提高了效率、質(zhì)量和靈活性的圖像壓縮技術(shù)的持續(xù)需求。
[0003]便攜式網(wǎng)絡(luò)圖形(PNG)格式是用于在諸如因特網(wǎng)的網(wǎng)絡(luò)上存儲(chǔ)并傳送圖像的頻繁使用的格式。也在因特網(wǎng)環(huán)境中頻繁地使用其他圖像格式,諸如圖形交換格式(GIF)、標(biāo)記圖像文件格式(TIFF)和聯(lián)合圖像專家組(JPEG)。PNG和GIF被認(rèn)為是無(wú)損壓縮方法,而JPEG是有損壓縮方法。TIFF可以有時(shí)使用有損或無(wú)損壓縮。這些技術(shù)中的每一個(gè)在圖像壓縮時(shí)提供了許多益處。然而,這些技術(shù)中的每一個(gè)在效率、質(zhì)量或靈活性方面具有弱點(diǎn)。
[0004]因此,期望得到可以被廣泛采用并支持、并且提供超過(guò)當(dāng)前可用技術(shù)的改進(jìn)的效率和質(zhì)量的圖像壓縮技術(shù)。

【發(fā)明內(nèi)容】

[0005]公開(kāi)了用于使用次分辨率圖像的圖像壓縮和解壓的方法、系統(tǒng)和制品。對(duì)于圖像壓縮,這些包括:基于輸入圖像中的統(tǒng)計(jì)相似區(qū)域來(lái)確定多個(gè)熵代碼集;生成包括包含多個(gè)熵代碼集的第一次分辨率圖像的一個(gè)或多個(gè)次分辨率圖像;使用所生成的一個(gè)或多個(gè)次分辨率圖像來(lái)控制包括熵代碼的一個(gè)或多個(gè)壓縮參數(shù),而對(duì)輸入圖像進(jìn)行編碼;以及輸出經(jīng)編碼的輸入圖像和所生成的一個(gè)或多個(gè)次分辨率圖像作為壓縮的熵編碼的圖像文件。
[0006]用于圖像壓縮的另一個(gè)實(shí)施例包括:從輸入圖像關(guān)于多個(gè)壓縮參數(shù)中的每一個(gè)生成相應(yīng)次分辨率圖像;使用相應(yīng)次分辨率圖像來(lái)控制多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)輸入圖像進(jìn)行編碼;以及輸出經(jīng)編碼的輸入圖像和所生成的次分辨率圖像作為壓縮的熵編碼的圖像文件。
[0007]用于圖像解壓的實(shí)施例包括:對(duì)圖像文件進(jìn)行分解來(lái)訪問(wèn)經(jīng)編碼的壓縮輸入圖像和關(guān)于多個(gè)壓縮參數(shù)中的每一個(gè)的相應(yīng)次分辨率圖像;使用相應(yīng)次分辨率圖像來(lái)控制多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)經(jīng)編碼的壓縮輸入圖像進(jìn)行解碼;以及輸出經(jīng)解碼的輸入圖像。
[0008]在下面參考附圖詳細(xì)地描述進(jìn)一步特征和優(yōu)勢(shì),以及各種實(shí)施例的結(jié)構(gòu)和操作。注意的是,本發(fā)明并不限于在本文所述的特定實(shí)施例。在本文僅出于說(shuō)明目的提供了這樣的實(shí)施例?;谠诒疚陌慕虒?dǎo),另外的實(shí)施例將對(duì)相關(guān)領(lǐng)域技術(shù)人員顯而易見(jiàn)。
【專利附圖】

【附圖說(shuō)明】
[0009]將參考本發(fā)明的實(shí)施例,其示例可以在附圖中被圖示。這些附圖意在說(shuō)明而非限制。盡管在這些實(shí)施例的情景下一般地描述了本公開(kāi),然而,應(yīng)當(dāng)理解的是,這些實(shí)施例不是對(duì)范圍的限制。[0010]圖1是圖示依據(jù)實(shí)施例的圖像壓縮和編碼技術(shù)的流程圖。
[0011]圖2是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的預(yù)處理技術(shù)的流程圖。
[0012]圖3是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的空間預(yù)測(cè)技術(shù)的流程圖。
[0013]圖4是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的顏色變換技術(shù)的流程圖。
[0014]圖5是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的基于初始像素的壓縮技術(shù)的流程圖。
[0015]圖6是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的用于確定熵代碼的技術(shù)的流程圖。
[0016]圖7是圖示依據(jù)實(shí)施例的在圖1的圖像壓縮和編碼技術(shù)中使用的通用圖像編碼技術(shù)的流程圖。
[0017]圖8是依據(jù)實(shí)施例的編碼器的框圖。
[0018]圖9是圖示依據(jù)實(shí)施例的可以與圖8的編碼器相關(guān)聯(lián)的數(shù)據(jù)的框圖。
[0019]圖10是依據(jù)實(shí)施例的壓縮的圖像文件格式的框圖。
[0020]圖11是圖示依據(jù)實(shí)施例的圖像解壓和解碼技術(shù)的流程圖。
[0021]圖12是依據(jù)實(shí)施例的解碼器的框圖。
[0022]圖13是依據(jù)實(shí)施例的計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0023]雖然在本公開(kāi)中描述了針對(duì)特定應(yīng)用的說(shuō)明性實(shí)施例,然而應(yīng)當(dāng)理解的是,實(shí)施例并不限于此。其他實(shí)施例是可能的,并且在本文教導(dǎo)的精神和范圍以及實(shí)施例將有重大功用的另外領(lǐng)域內(nèi),可以對(duì)實(shí)施例作出修改。進(jìn)一步,當(dāng)結(jié)合實(shí)施例描述特定特征、結(jié)構(gòu)或特性時(shí),應(yīng)認(rèn)為,無(wú)論是否明確描述,結(jié)合其他實(shí)施例實(shí)現(xiàn)這樣的特征、結(jié)構(gòu)或特性在相關(guān)領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi)。
[0024]本公開(kāi)總體上涉及用于對(duì)圖像進(jìn)行壓縮的方法、系統(tǒng)和制品。包括在本文明確公開(kāi)的那些的實(shí)施例實(shí)現(xiàn)了無(wú)損或近無(wú)損圖像壓縮,同時(shí)還在處理效率、圖像質(zhì)量和存儲(chǔ)方面取得了巨大優(yōu)勢(shì)。在當(dāng)前受歡迎的PNG圖像壓縮和實(shí)施例之間的一些差異是說(shuō)明性的。
[0025]實(shí)施例為輸入圖像的具有相似統(tǒng)計(jì)量的區(qū)域生成單獨(dú)的熵代碼集。相應(yīng)生成的熵代碼被存儲(chǔ)在次分辨率圖像(即,具有比輸入圖像低的分辨率,因此比輸入圖像小的圖像)中,其然后被用來(lái)控制輸入圖像中的像素的熵編碼。通過(guò)這樣做,在實(shí)施例中,有利地利用了在圖像的二維空間中接近的像素的熵特性。相比之下,PNG對(duì)線性存儲(chǔ)器的塊編碼熵,即,圖像被轉(zhuǎn)換成字節(jié)流,然后被熵編碼。在PNG中沒(méi)有有效地利用存在于輸入圖像中的二維接近地方的熵特性,因?yàn)榫€性字節(jié)流被熵編碼。此外,通過(guò)使用次分辨率圖像來(lái)為不同區(qū)域指定熵代碼,實(shí)施例能夠在解碼過(guò)程期間更有成本有效地改變熵代碼。
[0026]關(guān)于空間預(yù)測(cè)也一樣,在實(shí)施例中有效地利用在圖像中的二維接近地方發(fā)生的相似性來(lái)為每一個(gè)矩形塊指定空間預(yù)測(cè)器。空間預(yù)測(cè)器被存儲(chǔ)在次分辨率圖像中,該次分辨率圖像然后被用來(lái)控制空間預(yù)測(cè)。相比之下,PNG為輸入圖像的每一行指定空間預(yù)測(cè)器,而沒(méi)有特別考慮局部區(qū)域的統(tǒng)計(jì)相似性。
[0027]實(shí)施例通過(guò)使用串色分量預(yù)測(cè)器來(lái)預(yù)測(cè)空間預(yù)測(cè)誤差,來(lái)利用在不同顏色通道之間的相關(guān)性。實(shí)施例使用單獨(dú)熵代碼來(lái)對(duì)每一個(gè)顏色通道進(jìn)行編碼,以有利地使用在輸入圖像內(nèi)的相同顏色的分量之間的相互關(guān)系。PNG將共同熵代碼用于所有顏色通道。
[0028]鑒于PNG定義靜態(tài)的顏色調(diào)色板,實(shí)施例介紹了為輸入圖像的區(qū)域局部定義的顏色調(diào)色板。該調(diào)色板使用哈希技術(shù)來(lái)動(dòng)態(tài)地生成,其可以導(dǎo)致改進(jìn)的顏色特性。
[0029]此外,實(shí)施例使用次分辨率圖像來(lái)控制圖像壓縮和熵編碼的各個(gè)方面。次分辨率圖像可以使用與用來(lái)存儲(chǔ)輸入圖像的技術(shù)相同的技術(shù)來(lái)存儲(chǔ)。
[0030]圖1-7圖示了壓縮方法的實(shí)施例的各個(gè)方面。圖8-10和13圖示了根據(jù)實(shí)施例的系統(tǒng)。
[0031]圖1圖示了依據(jù)實(shí)施例的用于圖像壓縮和熵編碼的方法100。該方法可以例如使用如在下面關(guān)于圖8-10和13所述的系統(tǒng)來(lái)實(shí)現(xiàn)。方法100可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0032]在步驟102,對(duì)輸入圖像執(zhí)行預(yù)處理。輸入圖像可以是數(shù)字化的相片或其他數(shù)字圖像。輸入圖像可以在存儲(chǔ)器中被表示為邏輯矩形像素陣列。像素可以是一個(gè)或多個(gè)字節(jié)。根據(jù)實(shí)施例,像素是4字節(jié)并且包括紅色、綠色、藍(lán)色和阿爾法通道。預(yù)處理步驟102可以對(duì)輸入圖像的像素進(jìn)行處理,使得在預(yù)處理之后,輸入圖像產(chǎn)生改進(jìn)的壓縮。根據(jù)實(shí)施例,可以在步驟102執(zhí)行阿爾法替換、顏色離散化和調(diào)色板選擇。在下面關(guān)于圖2進(jìn)一步描述了預(yù)處理步驟102。
[0033]在步驟104,輸入圖像或更具體地經(jīng)預(yù)處理的輸入圖像經(jīng)受空間預(yù)測(cè)。具體地,如本領(lǐng)域技術(shù)人員已知的,空間預(yù)測(cè)是指基于一個(gè)或多個(gè)先前出現(xiàn)的像素來(lái)預(yù)測(cè)像素。將在預(yù)測(cè)值和實(shí)際值之間的差記錄在空間預(yù)測(cè)的圖像中的像素位置中。此外,存儲(chǔ)所選擇的空間預(yù)測(cè)器的次分辨率圖像。
[0034]可以將輸入圖像分成預(yù)先確定大小的矩形區(qū)域(“塊”)。塊可以是任何大小的,諸如16X16像素。在空間預(yù)測(cè)、顏色空間變換和熵代碼選擇中可以使用相同或不同大小的塊。
[0035]對(duì)于每一個(gè)塊中的每一個(gè)像素,嘗試空間預(yù)測(cè)器集。被嘗試的空間預(yù)測(cè)器集可以被預(yù)先配置或可以被動(dòng)態(tài)地確定。根據(jù)實(shí)施例,空間預(yù)測(cè)器集包括單獨(dú)像素或在當(dāng)前像素左邊(用語(yǔ)“當(dāng)前像素”用來(lái)指當(dāng)前正被處理的像素)的像素和/或是在當(dāng)前像素上方一個(gè)或多個(gè)行的像素的組合。注意到,根據(jù)圖像中的像素的左-右、上-下處理順序,在當(dāng)前像素左邊或上方的像素在當(dāng)前像素之前被處理。
[0036]為塊選擇的空間預(yù)測(cè)器可以是在該塊中的像素的空間預(yù)測(cè)值和相應(yīng)實(shí)際值之間的差產(chǎn)生最小總和熵的空間預(yù)測(cè)器。因此,在實(shí)施例中,以對(duì)每一個(gè)塊局部地優(yōu)化熵的方式來(lái)確定空間預(yù)測(cè)器。
[0037]在一些實(shí)施例中,在為當(dāng)前塊選擇空間預(yù)測(cè)器時(shí)考慮的標(biāo)準(zhǔn)包括最小化在空間預(yù)測(cè)值和實(shí)際值之間的差的絕對(duì)值,以及偏愛(ài)預(yù)先確定的相鄰像素作為預(yù)測(cè)器和/或預(yù)測(cè)器的部分的偏向。對(duì)差的絕對(duì)值的最小化可以在圖像全局范圍內(nèi)減少熵。根據(jù)實(shí)施例,對(duì)絕對(duì)值的最小化可以基于為塊內(nèi)的每一個(gè)像素最小化差的絕對(duì)值或?yàn)閴K最小化差的總和絕對(duì)值。根據(jù)另一個(gè)實(shí)施例,對(duì)絕對(duì)值的最小化可以至少部分通過(guò)最小化差值的全域計(jì)數(shù)的加權(quán)和來(lái)實(shí)現(xiàn)。該加權(quán)例如可以是相對(duì)于大絕對(duì)值偏愛(ài)小絕對(duì)值的指數(shù)或高斯。
[0038]然后,將為每一個(gè)塊選擇的空間預(yù)測(cè)器記錄在空間預(yù)測(cè)器次分辨率圖像中。在下面關(guān)于圖3描述了空間預(yù)測(cè)的進(jìn)一步細(xì)節(jié)。
[0039]在步驟106,執(zhí)行輸入圖像的顏色空間變換??梢栽诳臻g預(yù)測(cè)之前或之后執(zhí)行輸入圖像的顏色空間變換。在所述實(shí)施例中,到顏色空間變換的輸入是包括空間預(yù)測(cè)差作為像素值的中間輸入圖像。
[0040]顏色空間變換包括識(shí)別并記錄在顏色分量之間的相關(guān)性。例如,將在綠色和紅色、綠色和藍(lán)色以及紅色和藍(lán)色之間的相關(guān)性識(shí)別并記錄為顏色相關(guān)因子。因此,最初包括了針對(duì)綠色、紅色和藍(lán)色的三個(gè)單獨(dú)顏色值的像素可以在顏色變換之后由綠色的原始顏色值和使用紅色和藍(lán)色的相關(guān)因子來(lái)確定的值表示。紅色可以被表示為將紅色與綠色相關(guān)聯(lián)的相關(guān)因子,以及藍(lán)色可以被表示為將藍(lán)色與紅色相關(guān)聯(lián)的相關(guān)因子或?qū)⑺{(lán)色與綠色相關(guān)聯(lián)的相關(guān)因子中的一個(gè)或多個(gè)。
[0041]將相關(guān)因子存儲(chǔ)在次分辨率圖像中?;谙鄳?yīng)相關(guān)因子,對(duì)輸入圖像中的顏色值進(jìn)行改變以包括紅色和藍(lán)色的預(yù)測(cè)誤差。在下面關(guān)于圖4進(jìn)一步描述了顏色空間變換。
[0042]在步驟108,執(zhí)行輸入圖像的基于初始像素的壓縮。在此所述的實(shí)施例中,到基于初始像素的壓縮的輸入是已經(jīng)受了空間預(yù)測(cè)和顏色變換處理的輸入圖像。然而,步驟108可以在方法100的流程的其他位置處執(zhí)行,因此,可以在其他實(shí)施例中具有在步驟104和106之前或之后的輸入圖像。
[0043]對(duì)于每一個(gè)像素,基于初始像素的壓縮操作來(lái)插入向后引用、像素或調(diào)色板引用中的一個(gè)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,通過(guò)插入向后引用的壓縮以基于字節(jié)的傳統(tǒng)LZ77來(lái)執(zhí)行。與LZ77相比,在實(shí)施例中,對(duì)向后引用的插入基于像素?;谙袼氐膲嚎s使得能夠更好地使用圖像中的二維接近特性來(lái)改進(jìn)壓縮。根據(jù)實(shí)施例,調(diào)色板(在本文被稱為“新出現(xiàn)的顏色調(diào)色板”)可以在基于像素的壓縮期間被動(dòng)態(tài)地填充。在下面關(guān)于圖5進(jìn)一步描述了輸入圖像的基于初始像素的壓縮。
[0044]在步驟110,從步驟108輸出的經(jīng)壓縮的輸入圖像經(jīng)受二維局部性變換。二維局部性變換操作來(lái)識(shí)別經(jīng)壓縮的圖像中的位置信息,并且用表示對(duì)應(yīng)二維距離的代碼對(duì)該位置信息進(jìn)行編碼。例如,向后引用可以最初在壓縮期間被插入(例如,步驟108)作為像素距離。二維局部性變換可以用針對(duì)對(duì)應(yīng)二維距離的短代碼替換該像素距離。預(yù)先配置的二維局部性代碼表指定在相應(yīng)短代碼和所選擇的對(duì)應(yīng)相對(duì)像素距離之間的關(guān)系。根據(jù)實(shí)施例,預(yù)先配置的表為在當(dāng)前像素周圍的16X8像素鄰居指定短代碼。這些短代碼通過(guò)其歐幾里得距離被安排到當(dāng)前像素。將短代碼用于直接相鄰的區(qū)域例如使能對(duì)來(lái)自直接在上面的一個(gè)或多個(gè)在前行的像素的更廉價(jià)(就位而言)引用。
[0045]在步驟112,確定熵代碼并且記錄針對(duì)熵代碼的次分辨率圖像。為圖像的具有相似統(tǒng)計(jì)量的局部區(qū)域(例如,塊或塊集群)確定熵代碼。將熵代碼或?qū)τ脕?lái)對(duì)每一個(gè)像素進(jìn)行編碼的熵代碼的引用存儲(chǔ)在被稱為熵次分辨率圖像的次分辨率圖像中。在下面關(guān)于圖6進(jìn)一步描述了熵代碼確定。
[0046]在步驟114,對(duì)輸入圖像進(jìn)行熵編碼。根據(jù)實(shí)施例,到熵編碼的輸入可以是已經(jīng)受了空間預(yù)測(cè)、顏色變換、像素壓縮和二維局部性變換的輸入圖像。
[0047]熵編碼以從左到右且從上到下的方式逐像素對(duì)輸入圖像進(jìn)行操作。在圖像的每一個(gè)位置處,基于在熵次分辨率圖像中引用的熵代碼來(lái)確定熵編碼。如在下面關(guān)于圖6所述,為輸入圖像的每一個(gè)塊確定熵代碼集。熵代碼集可以包括針對(duì)顏色、距離等的相應(yīng)熵代碼。熵次分辨率圖像可以指定待用于輸入圖像中的對(duì)應(yīng)像素的熵代碼集?;诋?dāng)前像素的塊來(lái)訪問(wèn)熵代碼。熵代碼可以基于例如哈夫曼代碼和算術(shù)代碼。
[0048]在步驟116,將熵編碼的壓縮圖像輸出到存儲(chǔ)器、永久性存儲(chǔ)器或傳輸給另一個(gè)實(shí)體。輸出熵編碼的圖像可以包括形成壓縮的熵編碼的圖像文件,諸如關(guān)于圖10所述的,其包括壓縮的熵編碼的輸入圖像、次分辨率圖像以及解壓來(lái)恢復(fù)輸入圖像所需的其他信息。
[0049]圖2圖示了用于對(duì)輸入圖像進(jìn)行預(yù)處理的方法200的流程圖。根據(jù)實(shí)施例,方法200可以在執(zhí)行上述方法100的步驟102時(shí)使用。方法200可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0050]在步驟202,對(duì)輸入圖像執(zhí)行阿爾法替換。阿爾法替換是減少輸入圖像中的熵的技術(shù)。阿爾法替換操作來(lái)用在圖像中更常出現(xiàn)的阿爾法值替換部分阿爾法值,諸如唯一的阿爾法值或在圖像中很少出現(xiàn)的那些。根據(jù)實(shí)施例,例如,對(duì)還具有半透明值的特殊顏色值,諸如以諸如PNG、TIFF和GIF的圖像格式出現(xiàn)的那些進(jìn)行處理,來(lái)通過(guò)將它們校正成包括對(duì)應(yīng)的特定半透明值來(lái)移除最初包括的半透明值。該過(guò)程操作來(lái)減少阿爾法通道中的熵。
[0051]可以將任何數(shù)量的像素標(biāo)記為半透明的,從而,使其經(jīng)受阿爾法替換。根據(jù)實(shí)施例,半透明不被指定為針對(duì)紅色、綠色和藍(lán)色的單獨(dú)顏色值,并且替代地被指定為與對(duì)應(yīng)阿爾法值的偏移。使用與阿爾法的偏移來(lái)指定半透明的紅色、綠色和藍(lán)色使實(shí)施例能夠即使在對(duì)于特定RGB三元組存在多個(gè)阿爾法時(shí),也保留半透明信息。作為使用偏移來(lái)指定阿爾法值的副作用,可以減少阿爾法通道的熵。
[0052]在步驟204,可以執(zhí)行顏色離散化。根據(jù)實(shí)施例,顏色離散化和相容性(compatification)操作來(lái)封裝(to pack)顏色的動(dòng)態(tài)范圍,使得預(yù)測(cè)將僅或大部分產(chǎn)生如在原始圖像中的那些那樣的顏色值和/或預(yù)測(cè)誤差值。這避免或減少了預(yù)測(cè)圖像具有比原始圖像更獨(dú)特的符號(hào)的需求。
[0053]例如,在沒(méi)有顏色離散化和相容性的實(shí)施例中,預(yù)測(cè)器可以考慮兩個(gè)顏色值并且將那兩個(gè)考慮的值的平均預(yù)測(cè)為像素的預(yù)測(cè)顏色。然而,平均值可能不是在原始圖像中任何地方的顏色,因此,預(yù)測(cè)信號(hào)將引入新的符號(hào)。封裝顏色的動(dòng)態(tài)范圍,使得預(yù)測(cè)和/或預(yù)測(cè)誤差產(chǎn)生尚未在原始圖像中的新的值的可能性導(dǎo)致了最小化新的符號(hào)的添加。因此,在與傳統(tǒng)技術(shù)相比時(shí),預(yù)測(cè)的圖像可能已減少了熵。
[0054]在步驟206,可選地,執(zhí)行調(diào)色板選擇。根據(jù)實(shí)施例,當(dāng)僅僅少數(shù)顏色需要編碼在圖像中中,才執(zhí)行調(diào)色板選擇。調(diào)色板選擇允許多個(gè)像素被封裝入單個(gè)像素。
[0055]圖3圖示了用于執(zhí)行空間預(yù)測(cè)的方法300。根據(jù)實(shí)施例,方法300可以在執(zhí)行上述方法100的步驟104時(shí)使用。方法300可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0056]在步驟302,確定空間預(yù)測(cè)器。如在上面關(guān)于步驟104所述,所公開(kāi)的實(shí)施例操作來(lái)找到空間預(yù)測(cè)器,使得最小化塊中的預(yù)測(cè)差。在另一個(gè)實(shí)施例中,可以使用其他標(biāo)準(zhǔn),諸如但不限于:最小化在塊內(nèi)的空間預(yù)測(cè)差的熵、最小化空間預(yù)測(cè)差的絕對(duì)值以及偏好相鄰像素塊的偏向選擇標(biāo)準(zhǔn),以便優(yōu)化對(duì)針對(duì)塊的局部特性以及可選地針對(duì)全局特性的空間預(yù)測(cè)器的選擇。[0057]如上所述,為預(yù)測(cè)當(dāng)前像素而選擇的像素可以來(lái)自任何先前處理的像素位置。根據(jù)實(shí)施例,預(yù)先配置的空間預(yù)測(cè)器代碼表為多個(gè)像素位置和像素組合中的每一個(gè)指定代碼。例如,空間預(yù)測(cè)器代碼表可以包括用于無(wú)預(yù)測(cè)的代碼、用于復(fù)制單獨(dú)像素的多個(gè)代碼以及用于求兩個(gè)或更多個(gè)像素的平均值的多個(gè)代碼。因此,對(duì)當(dāng)前像素的預(yù)測(cè)可以基于一個(gè)或多個(gè)像素。
[0058]基于上述標(biāo)準(zhǔn)中的一個(gè)或多個(gè)所確定的成本函數(shù)以每塊為基礎(chǔ),選擇用其來(lái)對(duì)輸入圖像進(jìn)行編碼的空間預(yù)測(cè)器。在塊中,所有像素與相同選擇的空間預(yù)測(cè)器相關(guān)聯(lián)。
[0059]在步驟304,將為每一個(gè)塊所選擇的空間預(yù)測(cè)器存儲(chǔ)在空間預(yù)測(cè)器次分辨率圖像中。次分辨率圖像中的像素表示輸入圖像中的塊。
[0060]用于存儲(chǔ)壓縮的熵編碼的輸入圖像的相同存儲(chǔ)技術(shù)可以用于存儲(chǔ)相應(yīng)的次分辨率圖像。在下面關(guān)于圖7公開(kāi)了用于存儲(chǔ)壓縮的熵編碼的圖像,包括用于次分辨率圖像,的通用技術(shù)。
[0061]在步驟306,對(duì)輸入圖像(經(jīng)過(guò)或沒(méi)有經(jīng)過(guò)預(yù)處理)進(jìn)行處理來(lái)根據(jù)空間預(yù)測(cè)器次分辨率圖像對(duì)空間預(yù)測(cè)進(jìn)行編碼。對(duì)于塊中的每一個(gè)像素,基于存儲(chǔ)在空間預(yù)測(cè)器次分辨率圖像中的對(duì)應(yīng)空間預(yù)測(cè)器來(lái)確定預(yù)測(cè)值。然后,將在預(yù)測(cè)值和實(shí)際值之間的差編碼入像素中。當(dāng)空間預(yù)測(cè)前進(jìn)到跨輸入圖像處理像素時(shí),空間預(yù)測(cè)器次分辨率圖像為每一個(gè)塊控制所應(yīng)用的空間預(yù)測(cè)器。
[0062]圖4圖示了用于對(duì)圖像的顏色空間變換的方法400。根據(jù)實(shí)施例,方法400可以在執(zhí)行上述方法100的步驟106時(shí)使用。方法400可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0063]在步驟402,確定顏色相關(guān)性。以塊為基礎(chǔ)確定顏色分量之間的顏色相關(guān)器。對(duì)于每一個(gè)塊,對(duì)像素,或更具體地紅色、綠色、藍(lán)色(RGB)值,進(jìn)行分析來(lái)確定它們之間的相關(guān)性。根據(jù)實(shí)施例,確定在綠色和紅色、紅色和藍(lán)色以及綠色和藍(lán)色之間的相關(guān)性。顏色相關(guān)器操作來(lái)減少紅色和藍(lán)色通道中的熵。例如,通過(guò)將紅色表示為該像素中的綠色值的因子,實(shí)施例減少了紅色通道中的熵。例如,考慮如在傳統(tǒng)系統(tǒng)中被編碼的、分別具有RGB8:6:2和4:3:0的兩個(gè)塊。根據(jù)實(shí)施例,可以將該信息編碼為8:X:Y和4:Χ:Y,其中X和Y是對(duì)于75%和25%的代碼。因此,顏色變換可以通過(guò)利用在相鄰塊之間的顏色關(guān)系來(lái)減少紅色和藍(lán)色通道的熵。
[0064]為每一個(gè)塊確定常見(jiàn)顏色相關(guān)器集??梢岳缁谄骄蚧谠诋?dāng)前塊中最頻繁出現(xiàn)的顏色值來(lái)選擇塊的相關(guān)器。根據(jù)實(shí)施例,可以以最小化將紅色和藍(lán)色分量的熵和絕對(duì)值相組合的啟發(fā)的方式確定塊的相關(guān)器。例如,可以對(duì)塊中的綠色至紅色的所有值進(jìn)行測(cè)試,并且可以選擇產(chǎn)生最低啟發(fā)的值。并且,可以對(duì)塊中的綠色至藍(lán)色以及紅色至藍(lán)色的所有組合進(jìn)行測(cè)試,并且可以選擇具有最低啟發(fā)的組合。此外,在一些實(shí)施例中,可以稍微偏愛(ài)與來(lái)自在當(dāng)前塊之上或左邊的塊的所選擇的相關(guān)器相似的相關(guān)器值供選擇。
[0065]在步驟404,將所選擇的相關(guān)因子存儲(chǔ)在顏色相關(guān)性次分辨率圖像中。在顏色相關(guān)性次分辨率圖像中,每一個(gè)像素表示輸入圖像中的塊。次分辨率圖像中的每一個(gè)像素分別存儲(chǔ)綠色至紅色、綠色至藍(lán)色和紅色至藍(lán)色的相關(guān)因子??梢砸钥梢允沟弥甘菊蜇?fù)相關(guān)這樣的方式存儲(chǔ)這些因子。
[0066]在步驟406中,在輸入圖像中對(duì)顏色變換進(jìn)行編碼?,F(xiàn)將輸入圖像中的紅色和藍(lán)色通道修改成表示顏色相關(guān)性預(yù)測(cè)的預(yù)測(cè)誤差。具體地,如下所述對(duì)顏色預(yù)測(cè)進(jìn)行編碼。綠色沒(méi)有被預(yù)測(cè),因此,所存儲(chǔ)的值是實(shí)際綠色值?;谠陬伾嚓P(guān)性次分辨率圖像中所指定的與當(dāng)前塊相對(duì)應(yīng)的綠色至紅色相關(guān)因子從綠色預(yù)測(cè)紅色?,F(xiàn)對(duì)在基于顏色相關(guān)因子的紅色預(yù)測(cè)值與紅色分量的先前編碼的空間預(yù)測(cè)誤差之間的差進(jìn)行編碼??梢詮木G色和紅色中的一個(gè)或多個(gè)預(yù)測(cè)藍(lán)色。如果在預(yù)測(cè)藍(lán)色值時(shí)使用綠色和紅色兩者,則根據(jù)實(shí)施例,將綠色至藍(lán)色和紅色至藍(lán)色預(yù)測(cè)的平均取作為藍(lán)色分量的預(yù)測(cè)值??梢灶A(yù)先配置預(yù)測(cè)藍(lán)色的模式。因此,根據(jù)在顏色相關(guān)性次分辨率圖像中所指定的相關(guān)因子來(lái)控制對(duì)紅色和藍(lán)色通道的編碼。
[0067]圖5圖示了用于對(duì)輸入圖像的基于像素的壓縮的方法500。根據(jù)實(shí)施例,方法500可以在執(zhí)行方法100的步驟108時(shí)使用。步驟502-516圖示了通過(guò)以從左到右且從上到下移動(dòng)模式來(lái)遍歷像素對(duì)圖像的處理。方法500可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0068]在步驟502,選擇待被處理的下一像素。處理將典型地在左上像素開(kāi)始。在其他迭代中,選擇隨后像素。所選擇的下一像素被稱為當(dāng)前像素。
[0069]步驟504-508確定可以在對(duì)輸入圖像進(jìn)行壓縮的過(guò)程中對(duì)當(dāng)前像素執(zhí)行的每一個(gè)操作的成本。根據(jù)實(shí)施例,可以考慮三個(gè)單獨(dú)選項(xiàng):1)插入向后引用;2)插入像素;以及3)插入調(diào)色板條目。
[0070]“向后引用”指示可以在當(dāng)前像素的位置處復(fù)制所指定的一個(gè)或多個(gè)像素,以便對(duì)圖像進(jìn)行壓縮。例如,如果當(dāng)前像素是全部均是顏色C的三個(gè)像素的串的開(kāi)始,并且在當(dāng)前像素之前200個(gè)像素的先前處理位置處,存在三個(gè)顏色C像素的串,則實(shí)施例可以插入指示對(duì)匹配當(dāng)前像素的200個(gè)像素前的引用的向后引用,并且該3個(gè)像素的串的長(zhǎng)度在所引用的像素處開(kāi)始。向后引用通過(guò)距離和長(zhǎng)度值指定。距離是指從當(dāng)前像素到所引用的像素的距離,以及長(zhǎng)度是指自所引用的像素可以被復(fù)制到的當(dāng)前像素的像素?cái)?shù)。
[0071]插入像素是指將當(dāng)前像素插入經(jīng)壓縮的圖像中。在一些情況下,對(duì)于像素,這可以是最有成本效益的操作。
[0072]插入調(diào)色板條目是指將索引插入經(jīng)壓縮的圖像中。在一些實(shí)施例中,插入調(diào)色板條目還可以包括將對(duì)應(yīng)顏色條目插入調(diào)色板。新出現(xiàn)的顏色調(diào)色板在基于像素的壓縮前進(jìn)通過(guò)圖像時(shí)被動(dòng)態(tài)地構(gòu)建。在每一個(gè)像素位置處,考慮將顏色值插入新出現(xiàn)的調(diào)色板以及將對(duì)應(yīng)調(diào)色板索引插入經(jīng)壓縮的圖像的成本??梢灶A(yù)先配置新出現(xiàn)的調(diào)色板的大小。根據(jù)實(shí)施例,使表示紅色/綠色/藍(lán)色/阿爾法值的32位整數(shù)與預(yù)先確定的乘數(shù)相乘?;谠摯笮。瑏?lái)自作為結(jié)果的整數(shù)的某些位被用作為表示新出現(xiàn)的顏色調(diào)色板的陣列的索引。例如,對(duì)于新出現(xiàn)的128位大小的調(diào)色板,可以將7位用作索引值。對(duì)于來(lái)自未經(jīng)壓縮的像素流的每一個(gè)顏色值,可以以數(shù)個(gè)方式中的一個(gè)來(lái)確定索引。根據(jù)實(shí)施例,基于自上述顏色的字節(jié)表示的預(yù)定義起始位置的7個(gè)相鄰連續(xù)位來(lái)確定顏色的索引。根據(jù)另一個(gè)實(shí)施例,可以對(duì)顏色值執(zhí)行模操作來(lái)確定新出現(xiàn)的調(diào)色板的哈希索引。根據(jù)實(shí)施例,可以將一個(gè)新出現(xiàn)的顏色調(diào)色板用于輸入圖像。在其他實(shí)施例中,可以為相應(yīng)區(qū)域定義單獨(dú)的新出現(xiàn)的調(diào)色板。例如,可以沿著輸入圖像的X軸為每32個(gè)像素創(chuàng)建新的新出現(xiàn)的調(diào)色板。
[0073]在步驟504,確定將向后引用插入在當(dāng)前像素處的成本。如上所述,插入向后引用包括插入距像素的距離和長(zhǎng)度。長(zhǎng)度是指可以從所引用的像素開(kāi)始被復(fù)制的像素?cái)?shù)。成本包括將距離和長(zhǎng)度插入在經(jīng)壓縮的圖像中的與當(dāng)前像素相對(duì)應(yīng)的位置處的成本。可以結(jié)合不必復(fù)制與來(lái)自向后引用的可以在當(dāng)前像素的位置處開(kāi)始被復(fù)制的像素?cái)?shù)相等的像素?cái)?shù)的成本節(jié)省考慮該插入位的成本。例如,如果向后引用花費(fèi)5個(gè)字節(jié)來(lái)編碼,并且3個(gè)像素的長(zhǎng)度被指示,則在大小I個(gè)字節(jié)的像素的情況下,向后引用插入的成本將是5-3=2個(gè)字節(jié)。根據(jù)另一個(gè)實(shí)施例,向后引用的成本僅基于插入成本,即,如果向后引用花費(fèi)5個(gè)字節(jié)來(lái)編碼,則插入成本是5個(gè)字節(jié)。
[0074]根據(jù)實(shí)施例,選擇最長(zhǎng)向后引用。根據(jù)另一個(gè)實(shí)施例,將可能具有不同距離和長(zhǎng)度特性的兩個(gè)或更多個(gè)向后引用進(jìn)行比較,并且選擇最有成本效益的一個(gè)。
[0075]在步驟506,確定將像素插入輸入圖像中的成本。該成本可以被認(rèn)為是插入一個(gè)像素的位成本。
[0076]在步驟508,確定插入新出現(xiàn)的調(diào)色板索引的成本。插入新出現(xiàn)的調(diào)色板條目的成本可以被認(rèn)為是索引條目的大小。
[0077]在步驟510,基于在步驟504-508的成本確定,確定最小成本操作,并且將最小成本操作記錄在當(dāng)前像素位置處?;谖怀杀緛?lái)確定成本。
[0078]在步驟512,確定是否已達(dá)到輸入圖像的最后像素。如果沒(méi)有,則為遍歷模式中下一像素重復(fù)步驟502-512。
[0079]如果在步驟512確定當(dāng)前像素是最后像素,則處理前進(jìn)到步驟514。在步驟514,跟蹤回自最后像素的路徑來(lái)確定最小成本路徑的反向,以壓縮圖像。
[0080]在步驟514,然后使所確定的路徑反轉(zhuǎn)來(lái)產(chǎn)生待執(zhí)行的壓縮操作,以為圖像遍歷壓縮的最小成本路徑。該路徑可以包括在像素位置處編碼向后引用、編碼像素值以及編碼調(diào)色板索引值中的一個(gè)或多個(gè)。在步驟514結(jié)束,輸入圖像已完成基于像素的壓縮。
[0081]圖6圖不了用于確定熵代碼的方法600。根據(jù)實(shí)施例,方法600可以在執(zhí)行上述方法100的步驟112時(shí)使用。方法600可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0082]在步驟602,接收?qǐng)D像以被熵編碼。根據(jù)實(shí)施例,所接收的圖像已經(jīng)過(guò)了基于像素的壓縮處理。在基于像素的壓縮之前,輸入圖像可能已經(jīng)受了空間預(yù)測(cè)和顏色空間變換。然而,方法600適用于其他類型的輸入圖像。
[0083]在步驟604,從輸入圖像確定塊。根據(jù)實(shí)施例,確定大小16 X 16的塊。其他塊大小是可能的。
[0084]在步驟606,為各個(gè)塊確定統(tǒng)計(jì)量。可以為紅色、綠色、藍(lán)色、阿爾法顏色分量、為距離代碼、向后引用長(zhǎng)度代碼以及為調(diào)色板哈希值分別確定統(tǒng)計(jì)量??梢砸钥梢詫?duì)每一個(gè)統(tǒng)計(jì)的像素?cái)?shù)進(jìn)行計(jì)數(shù)的直方圖形式確定統(tǒng)計(jì)量。
[0085]在步驟608,根據(jù)各個(gè)塊的統(tǒng)計(jì)量的相似性來(lái)聚類塊。根據(jù)實(shí)施例,執(zhí)行隨機(jī)聚類。隨機(jī)聚類可以通過(guò)最初將每一個(gè)塊認(rèn)為是集群,然后迭代地任意選擇集群來(lái)執(zhí)行。然后,從所選擇的多個(gè)集群中找到最相似的集群,并且將所選擇的集群和所找到的集群相組合。該聚類操作可以進(jìn)行,直到集群數(shù)被減少至所確定的閾值集群數(shù)為止。還可以基于成本函數(shù)來(lái)確定閾值集群數(shù)。例如,可以對(duì)為每一個(gè)集群存儲(chǔ)熵代碼的成本建模,其中各個(gè)熵代碼的大小取決于塊到集群的分配。在實(shí)施例中,例如,隨機(jī)算法操作來(lái)將集群數(shù)從大約1000減少到大約50個(gè)集群。[0086]在步驟610,精化聚類。該步驟操作來(lái)通過(guò)將塊(或塊統(tǒng)計(jì)量)移動(dòng)到集群來(lái)精化隨機(jī)確定的集群,以便提高在塊及其集群之間的匹配的精度。在該步驟中可以使用諸如k均值算法的聚類算法。根據(jù)另一個(gè)實(shí)施例,對(duì)每一個(gè)塊進(jìn)行分析來(lái)為其確定最優(yōu)集群并且將其移動(dòng)到那里,以使最小化待輸出(存儲(chǔ))的預(yù)期位數(shù)。在每一個(gè)移動(dòng)之后,對(duì)統(tǒng)計(jì)量進(jìn)行調(diào)整來(lái)補(bǔ)償該移動(dòng)。該操作可以被重復(fù)預(yù)先確定的次數(shù)、或直到待輸出的預(yù)期位數(shù)不斷減少為止,以供所有塊導(dǎo)致精化聚類。
[0087]在步驟612,為每一個(gè)集群確定熵代碼。如此,由于集群已將具有相似特性的塊聚組在一起,因此,為每一個(gè)相應(yīng)集群的特性明確地確定作為結(jié)果的熵代碼。此外,在每一個(gè)集群內(nèi),為綠色、紅色、藍(lán)色、阿爾法和距離分量確定單獨(dú)的熵代碼。在實(shí)施例中,可以將相同熵代碼用于綠色、調(diào)色板索引和長(zhǎng)度分量??梢允褂萌魏渭夹g(shù)來(lái)確定熵代碼,諸如但不限于哈夫曼代碼,其特定于每一個(gè)集群以及在每一個(gè)集群內(nèi)特定于顏色和距離分量中的每一個(gè)。
[0088]在步驟614,確定每一個(gè)塊的熵代碼。具體地,熵代碼的集(“熵代碼集”)包括針對(duì)紅色、綠色、藍(lán)色、阿爾法顏色分量、針對(duì)距離代碼、向后引用長(zhǎng)度代碼以及針對(duì)調(diào)色板哈希值的單獨(dú)熵代碼。這可以通過(guò)識(shí)別特定塊所屬的集群來(lái)確定。
[0089]在步驟616,將熵代碼集存儲(chǔ)在熵代碼次分辨率圖像中,并且在熵代碼次分辨率圖像中指定應(yīng)用到每一個(gè)像素的熵代碼。熵代碼次分辨率圖像例如為輸入圖像中的每一個(gè)16X16塊存儲(chǔ)一個(gè)像素。熵代碼次分辨率圖像中的每一個(gè)像素指定待被應(yīng)用到輸入圖像中的對(duì)應(yīng)塊的熵代碼集。例如,可以用對(duì)在所存儲(chǔ)的熵代碼集中的對(duì)應(yīng)熵代碼集的位置的引用對(duì)次分辨率圖像中的像素的綠色分量進(jìn)行更新。熵代碼集可以包括五個(gè)單獨(dú)的熵代碼:綠色/像素索引/向后引用長(zhǎng)度的熵代碼;以及紅色、藍(lán)色、阿爾法和距離分量的熵代碼。這些熵代碼中的每一個(gè)可以使用哈夫曼編碼和行程編碼來(lái)分別編寫。
[0090]可以使用在存儲(chǔ)其他次分辨率圖像和經(jīng)壓縮的熵編碼的輸入圖像時(shí)使用的相同技術(shù)來(lái)存儲(chǔ)熵代碼次分辨率圖像。在下面關(guān)于圖7描述了對(duì)圖像的存儲(chǔ)。
[0091]圖7圖示了用于以壓縮和熵編碼形式存儲(chǔ)圖像的方法700。根據(jù)實(shí)施例,方法700可以用來(lái)存儲(chǔ)經(jīng)壓縮的熵編碼的輸入圖像以及次分辨率圖像(例如,熵次分辨率圖像、顏色相關(guān)性次分辨率圖像和空間預(yù)測(cè)器次分辨率圖像)。方法700可以不按照所示的順序發(fā)生,并且可以不要求所有步驟。
[0092]在步驟702,輸入圖像經(jīng)受基于像素的壓縮。示例性基于像素的壓縮,盡管在方面與LZ77相似,被應(yīng)用到像素而不是字節(jié)。圖5圖示了示例性基于像素的壓縮方法。基于像素的壓縮的輸出是具有像素、向后引用和調(diào)色板索引值的像素流。
[0093]在步驟704,來(lái)自基于像素的壓縮的輸出經(jīng)受二維局部性變換。二維局部性變換基于二維接近性將在像素距離內(nèi)的距離轉(zhuǎn)換成代碼。在上面關(guān)于上述方法100的步驟110描述了示例性二維變換。
[0094]在步驟706,將輸入圖像分成(例如,16X16像素的)塊并且為每一個(gè)塊確定統(tǒng)計(jì)量??梢苑謩e為紅色、綠色、藍(lán)色、阿爾法和距離分量收集統(tǒng)計(jì)量。還可以為(向后引用的)長(zhǎng)度和像素索引值收集統(tǒng)計(jì)量。根據(jù)實(shí)施例,可以將綠色/長(zhǎng)度/像素索引值的統(tǒng)計(jì)量相組合。在上面關(guān)于方法600的步驟604-606描述了為塊確定統(tǒng)計(jì)量。
[0095]在步驟708,根據(jù)統(tǒng)計(jì)量的相似性對(duì)塊進(jìn)行聚類,以及在步驟710,對(duì)集群進(jìn)行精化來(lái)提高在塊和相應(yīng)集群之間的匹配。在步驟712,為集群確定熵代碼。分別關(guān)于方法600的步驟608、610和612描述了對(duì)塊的聚類、對(duì)集群的精化和為各個(gè)集群確定熵代碼。
[0096]在步驟714,存儲(chǔ)熵次分辨率圖像。對(duì)熵次分辨率圖像的存儲(chǔ)可以使用與在方法700中定義的相同的存儲(chǔ)技術(shù)。因此,方法700定義圖像的遞歸存儲(chǔ)。在上面關(guān)于方法600的步驟616描述了對(duì)熵代碼次分辨率圖像的存儲(chǔ)。
[0097]在步驟716,對(duì)輸入圖像進(jìn)行熵編碼。在上面關(guān)于方法100的步驟114描述了對(duì)輸入圖像的熵編碼。
[0098]圖8圖示了根據(jù)實(shí)施例的編碼器800。編碼器800包括預(yù)處理模塊802、空間預(yù)測(cè)器804、顏色空間變換器806、像素壓縮器808、二維局部性變換模塊810、熵代碼生成模塊814、圖像存儲(chǔ)模塊812和經(jīng)壓縮的圖像文件輸出模塊816。
[0099]預(yù)處理模塊802被配置成對(duì)圖像進(jìn)行預(yù)處理,以使它們能夠被更好地壓縮。預(yù)處理模塊802可以例如操作來(lái)在圖像被壓縮之前減少圖像中的熵。預(yù)處理模塊802包括阿爾法替換映射器822、顏色離散器824和調(diào)色板選擇器826。
[0100]阿爾法替換映射器822被配置成移除或替換所選擇的阿爾法值。根據(jù)實(shí)施例,阿爾法替換模塊可以實(shí)現(xiàn)方法200的步驟202。
[0101]顏色離散器824被配置成通過(guò)為預(yù)測(cè)器調(diào)整值的動(dòng)態(tài)范圍來(lái)消除或減少不在原始圖像中的預(yù)測(cè)值,而減少作為結(jié)果的熵。根據(jù)實(shí)施例,顏色離散器824可以實(shí)現(xiàn)方法200的步驟204。
[0102]調(diào)色板選擇器826被配置成通過(guò)封裝在數(shù)據(jù)結(jié)構(gòu)中更接近的多個(gè)顏色在圖像僅具有少于預(yù)先確定數(shù)量的顏色時(shí)減少在相鄰像素之間的聯(lián)合分布的熵。根據(jù)實(shí)施例,調(diào)色板選擇器826可以實(shí)現(xiàn)方法200的步驟206。
[0103]空間預(yù)測(cè)器804被配置成實(shí)現(xiàn)空間預(yù)測(cè)。例如關(guān)于方法100的步驟104和方法300描述了空間預(yù)測(cè)。
[0104]顏色空間變換器806被配置成實(shí)現(xiàn)顏色空間變換。例如在上面關(guān)于方法100的步驟106和方法400描述了顏色空間變換。參考RGB顏色模型描述了上述實(shí)施例。也可以使用其他顏色模型,諸如但不限于YUV顏色模型。
[0105]像素壓縮器808被配置成執(zhí)行對(duì)輸入圖像的基于像素的壓縮。根據(jù)實(shí)施例,像素壓縮器808被配置成實(shí)現(xiàn)基于像素的壓縮,如關(guān)于方法700的步驟702所述。像素壓縮器808包括向后引用插入模塊832、貪婪壓縮器模塊834、最小成本壓縮器模塊836和調(diào)色板插入模塊838。
[0106]向后引用模塊832操作來(lái)確定當(dāng)前像素是否能夠通過(guò)引用先前出現(xiàn)的像素來(lái)壓縮,并且如果這樣的話,插入距正被引用的像素的像素距離和長(zhǎng)度。在上面關(guān)于圖5的步驟504描述了對(duì)向后引用的插入。
[0107]調(diào)色板插入模塊838操作來(lái)為每一個(gè)像素確定索引值,并且同時(shí)在其對(duì)相應(yīng)像素進(jìn)行處理時(shí)動(dòng)態(tài)地構(gòu)建新出現(xiàn)的顏色調(diào)色板。在為對(duì)應(yīng)像素確定引用調(diào)色板條目的索引之后,如果針對(duì)向后引用的成本和像素插入的成本的成本比較是有利的,則調(diào)色板插入模塊838可以將該索引插入經(jīng)壓縮的圖像。
[0108]當(dāng)在壓縮過(guò)程期間,調(diào)色板插入模塊838被調(diào)用來(lái)處理每一個(gè)像素時(shí),進(jìn)行對(duì)新出現(xiàn)的調(diào)色板的生成。每一個(gè)像素可以包括顏色值(例如,RGB或RGBA)。顏色值可以表示對(duì)應(yīng)空間預(yù)測(cè)和/或顏色變換預(yù)測(cè)的誤差。從當(dāng)前像素的值生成哈希索引。根據(jù)實(shí)施例,從像素的預(yù)先確定的位位置選擇預(yù)先確定數(shù)量的位。將所選擇的位用作為哈希索引。然后,基于哈希索引將像素(例如,顏色值)插入表中。為每一個(gè)顏色確定哈希位置的其他方法是可能的,并且預(yù)期在本公開(kāi)的范圍內(nèi)。
[0109]最小成本壓縮器836被配置成為輸入圖像確定最小成本壓縮。最小成本壓縮器836在輸入圖像的每一個(gè)像素處,在下述一個(gè)或多個(gè)選項(xiàng)之間進(jìn)行選擇:a)插入向后引用;
b)插入當(dāng)前像素;以及c)插入對(duì)調(diào)色板條目的索引。該選擇基于成本分析。圖5描述了可以由最小成本壓縮器836實(shí)現(xiàn)來(lái)壓縮輸入圖像的方法500。
[0110]貪婪壓縮器模塊834操作來(lái)通過(guò)在最長(zhǎng)向后引用、對(duì)像素的復(fù)制以及插入調(diào)色板索引之間進(jìn)行選擇來(lái)對(duì)輸入圖像進(jìn)行壓縮。在上面分別關(guān)于方法500的步驟504、506和508描述了插入向后引用、對(duì)像素的復(fù)制和對(duì)調(diào)色板條目的插入的操作。貪婪壓縮器模塊834可以操作為更快的壓縮技術(shù),來(lái)在速度比壓縮級(jí)別更重要時(shí)使用。因此,例如,當(dāng)考慮向后引用時(shí),貪婪壓縮器模塊834可以僅考慮具有最長(zhǎng)匹配序列的向后串,用于針對(duì)像素插入和調(diào)色板索引插入的成本比較。
[0111]二維變換模塊810被配置成基于二維距離來(lái)用更短的代碼替換像素距離的出現(xiàn)。根據(jù)實(shí)施例,二維變換模塊810可以實(shí)現(xiàn)在上面關(guān)于方法100的步驟110所述的處理。
[0112]熵代碼生成模塊814被配置成為輸入圖像的具有相似統(tǒng)計(jì)量的相應(yīng)區(qū)域生成熵代碼。根據(jù)實(shí)施例,塊聚類器模塊842為輸入圖像確定預(yù)先確定大小的塊,然后,根據(jù)統(tǒng)計(jì)量的相似性對(duì)塊進(jìn)行聚類。熵代碼生成模塊814可以為每一個(gè)集群生成單獨(dú)的熵代碼,并且為該集群的特性優(yōu)化代碼。可以為每一個(gè)集群生成熵代碼集。熵代碼生成模塊814被進(jìn)一步配置成生成熵次分辨率圖像來(lái)為輸入圖像的每一個(gè)塊存儲(chǔ)熵代碼。塊聚類器模塊842可以實(shí)現(xiàn)在上面關(guān)于方法600的步驟604-610和/或方法700的步驟706-710所述的處理。熵代碼生成模塊814可以實(shí)現(xiàn)在上面關(guān)于方法600的步驟612-616和/或方法700的步驟712-716所述的處理。
[0113]圖像存儲(chǔ)模塊812被配置成存儲(chǔ)經(jīng)壓縮的熵編碼的輸入圖像以及基于輸入圖像所生成的次分辨率圖像中的每一個(gè)。根據(jù)實(shí)施例,圖像存儲(chǔ)模塊812可以實(shí)現(xiàn)在上面關(guān)于方法700所述的處理。如上所述,方法700使用遞歸定義來(lái)存儲(chǔ)圖像。例如,步驟714要求使用相同方法700來(lái)存儲(chǔ)熵代碼次分辨率圖像。
[0114]經(jīng)壓縮的圖像文件輸出模塊816被配置成例如在基于方法100的處理之后,輸出完全經(jīng)壓縮的熵編碼的輸入圖像到文件中或以被傳輸給另一個(gè)實(shí)體以供解碼。作為輸出的完全經(jīng)壓縮的熵編碼的輸入圖像包括經(jīng)壓縮的熵編碼的輸入圖像和次分辨率圖像等。在下面圖10中圖示了存儲(chǔ)經(jīng)壓縮的熵編碼的輸入圖像的示例性文件。
[0115]圖9圖示了根據(jù)實(shí)施例的在圖像壓縮時(shí)的數(shù)據(jù)實(shí)體。輸入圖像900是被輸入到編碼器800以被壓縮的未壓縮的圖像。經(jīng)壓縮的熵編碼的圖像904是完全壓縮并熵編碼的輸入圖像。輸入圖像中間格式902 (也被稱為“中間圖像”)是指輸入圖像經(jīng)受的、在未壓縮的輸入圖像和經(jīng)壓縮的熵編碼的圖像之間的圖像格式的數(shù)個(gè)中間階段。示例包括來(lái)自預(yù)處理模塊802和來(lái)自任何其子模塊的輸出、來(lái)自空間預(yù)測(cè)器804的輸出、來(lái)自顏色空間變換器806的輸出、來(lái)自像素壓縮器808和任何其子模塊的輸出以及來(lái)自二維局部性變換模塊810的輸出。[0116]空間預(yù)測(cè)器次分辨率圖像906、顏色相關(guān)性次分辨率圖像908和熵次分辨率圖像910每一個(gè)包括針對(duì)輸入圖像中的每一個(gè)塊(例如,16X16像素區(qū)域)的像素??臻g預(yù)測(cè)器次分辨率圖像906存儲(chǔ)為輸入圖像的各個(gè)塊所選擇的空間預(yù)測(cè)器。顏色相關(guān)性次分辨率圖像908為輸入圖像中的每一個(gè)塊存儲(chǔ)顏色相關(guān)因子。熵次分辨率圖像910為輸入圖像的每一個(gè)塊存儲(chǔ)對(duì)熵代碼集的引用。
[0117]根據(jù)實(shí)施例,新出現(xiàn)的調(diào)色板920是哈希表,其中每一個(gè)條目包括哈希索引922和調(diào)色板值924。調(diào)色板值924包括顏色。哈希索引922對(duì)應(yīng)于使用來(lái)自相應(yīng)顏色值中的一個(gè)的位來(lái)計(jì)算的索引。
[0118]二維顏色表930被配置有針對(duì)所選擇的像素距離的短代碼。短代碼表示在圖像中的像素位置之間的二維距離。二維代碼表930中的每一個(gè)條目可以包括表示在兩個(gè)像素之間的像素距離的相對(duì)像素距離條目932和表示該距離的短二維代碼936。
[0119]空間預(yù)測(cè)器代碼表940被配置有表示多個(gè)空間預(yù)測(cè)器的代碼。如上所述,空間預(yù)測(cè)器可以基于單個(gè)像素或者兩個(gè)或更多個(gè)像素的組合。
[0120]圖10圖示了可以存儲(chǔ)經(jīng)壓縮的熵編碼的圖像904的文件格式1000的內(nèi)容的框圖。圖像格式1000可以用來(lái)將經(jīng)壓縮的熵編碼的輸入圖像904存儲(chǔ)在永久性存儲(chǔ)器中。此夕卜,圖像格式1000可以用作為用來(lái)將經(jīng)壓縮的熵編碼的輸入圖像904傳輸給另一個(gè)實(shí)體以便被解壓的格式。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在文件格式1000中可以包括其他元素。
[0121]圖像大小1002表示圖像文件的大小。大小可以以字節(jié)指定。塊大小1006表示在壓縮過(guò)程中使用的塊大小(例如,16X16像素)。調(diào)色板哈希信息1004表示關(guān)于顏色調(diào)色板的信息,包括但不限于:哈希索引大小和調(diào)色板條目。所存儲(chǔ)的熵次分辨率圖像1012、所存儲(chǔ)的顏色相關(guān)性次分辨率圖像1014和所存儲(chǔ)的空間預(yù)測(cè)器次分辨率圖像1016是所存儲(chǔ)的相應(yīng)次分辨率圖像。所存儲(chǔ)的熵次分辨率圖像可以包括對(duì)熵代碼集1008的引用。例如,該引用可以是從熵代碼集1008識(shí)別熵代碼集的整數(shù)。如上所述,可以使用與用來(lái)壓縮并存儲(chǔ)輸入圖像的相同的過(guò)程以遞歸方式來(lái)存儲(chǔ)每一個(gè)次分辨率圖像。所存儲(chǔ)的經(jīng)壓縮的熵編碼的輸入圖像1022是經(jīng)壓縮的熵編碼的輸入圖像的位流。
[0122]當(dāng)接收了已使用方法100來(lái)被編碼的圖像,例如諸如所存儲(chǔ)的經(jīng)壓縮的熵編碼的輸入圖像1022時(shí),對(duì)應(yīng)解碼器可以執(zhí)行步驟116-102中的部分的反轉(zhuǎn)來(lái)獲取未壓縮且解碼的輸入圖像。圖11圖示了根據(jù)實(shí)施例的執(zhí)行解碼過(guò)程的方法1100。
[0123]在步驟1102,對(duì)經(jīng)壓縮的熵編碼的圖像文件進(jìn)行處理來(lái)獲取經(jīng)壓縮的熵編碼的輸入圖像、經(jīng)壓縮的次分辨率圖像和解壓以恢復(fù)輸入圖像所需的其他信息。經(jīng)壓縮的次分辨率圖像包括熵代碼次分辨率圖像、空間預(yù)測(cè)器次分辨率圖像和顏色相關(guān)性次分辨率圖像的壓縮版本。在上面關(guān)于圖10描述了經(jīng)壓縮的熵編碼的圖像文件的內(nèi)容。如上所述,每一個(gè)經(jīng)壓縮的次分辨率圖像可能已通過(guò)遞歸地使用用來(lái)壓縮輸入圖像的相同方法100被存儲(chǔ)。因此,可以分別對(duì)每一個(gè)經(jīng)壓縮的熵編碼的次分辨率圖像執(zhí)行方法1100來(lái)獲取對(duì)應(yīng)未壓縮的次分辨率圖像。為了易于描述,在下面參考對(duì)輸入圖像的解碼描述了方法1100的步驟。
[0124]在步驟1104,執(zhí)行對(duì)熵編碼的輸入圖像的解碼。基于熵代碼次分辨率圖像中的對(duì)應(yīng)像素來(lái)確定在對(duì)輸入圖像進(jìn)行編碼時(shí)使用的熵代碼。如上所述,熵代碼次分辨率圖像的每一個(gè)像素對(duì)應(yīng)于輸入圖像中的塊,并且指定用于該塊的熵代碼集。熵代碼次分辨率圖像可以為每一個(gè)塊包括對(duì)對(duì)應(yīng)熵代碼集的引用。熵代碼集可以分別地可用于解碼器,在分解的圖像中或通過(guò)單獨(dú)傳輸。通過(guò)對(duì)熵代碼進(jìn)行解碼,從熵編碼的輸入圖像獲取經(jīng)壓縮的輸入圖像。
[0125]在步驟1106,使二維局部性變換反轉(zhuǎn)。例如,在經(jīng)壓縮的輸入圖像中的包括二維局部性變換代碼的每一個(gè)位置處,用對(duì)應(yīng)的實(shí)際像素距離替換值。二維局部性變換距離代碼可以分別地可用于解碼器,在分解的圖像中、通過(guò)單獨(dú)傳輸或通過(guò)配置。
[0126]在步驟1108,對(duì)經(jīng)壓縮的輸入圖像進(jìn)行解壓。如上所述,在壓縮輸入圖像期間,通過(guò)將向后引用、像素或調(diào)色板引用中的一個(gè)插入從輸入圖像的左上像素到右下像素的各個(gè)像素位置來(lái)執(zhí)行基于像素的壓縮。在解壓期間,從左上像素到右下像素遍歷經(jīng)壓縮的輸入圖像,插入來(lái)自向后引用的數(shù)據(jù)、像素值或來(lái)自顏色調(diào)色板的值。如在上面關(guān)于輸入圖像的初始?jí)嚎s所述,當(dāng)解壓過(guò)程前進(jìn)通過(guò)經(jīng)壓縮的輸入圖像的像素時(shí),構(gòu)建新出現(xiàn)的調(diào)色板。當(dāng)遍歷經(jīng)壓縮的像素位置時(shí),通過(guò)填充顏色值的哈希表來(lái)動(dòng)態(tài)地構(gòu)建新出現(xiàn)的調(diào)色板。當(dāng)遇到在經(jīng)壓縮的輸入圖像中已插入調(diào)色板索引的位置時(shí),用來(lái)自動(dòng)態(tài)構(gòu)建的新出現(xiàn)的調(diào)色板的對(duì)應(yīng)顏色值來(lái)替換其。來(lái)自像素解壓步驟1108的輸出是經(jīng)解壓的輸入圖像,其仍然包括對(duì)顏色空間變換、空間預(yù)測(cè)和編碼器所執(zhí)行的其他預(yù)處理步驟的編碼。
[0127]在步驟1110,對(duì)輸入圖像中的顏色空間變換進(jìn)行解碼。編碼的顏色空間變換如上所述基于相應(yīng)相關(guān)因子用紅色和藍(lán)色的預(yù)測(cè)誤差來(lái)替換了顏色值。相關(guān)因子在顏色相關(guān)性次分辨率圖像中可用。使用存儲(chǔ)在顏色相關(guān)性次分辨率圖像中的相關(guān)因子,解碼過(guò)程使顏色值恢復(fù)回到其在沒(méi)有顏色相關(guān)性情況下的值。
[0128]在步驟1112,反轉(zhuǎn)在編碼期間執(zhí)行的空間預(yù)測(cè)。使用在空間預(yù)測(cè)次分辨率圖像中可用的空間預(yù)測(cè)器來(lái)反轉(zhuǎn)空間預(yù)測(cè)。對(duì)于每一個(gè)像素,用實(shí)際對(duì)應(yīng)的像素值來(lái)替換預(yù)測(cè)值、或更精確地,預(yù)測(cè)誤差值。
[0129]在步驟1114,反轉(zhuǎn)編碼器所執(zhí)行的一個(gè)或多個(gè)預(yù)處理步驟。在編碼期間所執(zhí)行的預(yù)處理步驟可以包括例如阿爾法替換、顏色離散化和調(diào)色板選擇中的一個(gè)或多個(gè)。在上面關(guān)于編碼方法100描述了這些預(yù)處理步驟中的每一個(gè)。
[0130]當(dāng)完成方法1100時(shí),獲取了原始輸入圖像的解碼版本。
[0131]圖12圖示了根據(jù)實(shí)施例的解碼器1200。解碼器1200包括輸入圖像解碼器1201和圖像文件分解器1202。輸入圖像解碼器1201包括熵解碼器1204、二維變換解碼器1206、像素解壓器1208、調(diào)色板生成器1210、顏色空間變換解碼器1212、空間預(yù)測(cè)解碼器1214和預(yù)處理解碼器1216。根據(jù)實(shí)施例,解碼器1200執(zhí)行方法1200來(lái)對(duì)先前使用諸如方法100的過(guò)程來(lái)編碼的圖像進(jìn)行解碼。
[0132]圖像文件分解器1202操作來(lái)將諸如方法100的編碼過(guò)程所創(chuàng)建的經(jīng)壓縮的編碼的圖像文件當(dāng)作為輸入,并且提取經(jīng)編碼的壓縮的輸入圖像、次分辨率圖像和協(xié)助對(duì)輸入圖像進(jìn)行解碼的其他存儲(chǔ)的組分。圖10圖示了被輸入到圖像文件分解器1202的經(jīng)壓縮的編碼的圖像文件的示例性格式。輸入圖像解碼器1201操作來(lái)對(duì)經(jīng)編碼的壓縮的輸入圖像進(jìn)行解碼,如下所述。根據(jù)實(shí)施例,還使用輸入圖像解碼器1201來(lái)對(duì)次分辨率圖像中的每一個(gè)進(jìn)行解碼。
[0133]熵解碼器1204操作來(lái)反轉(zhuǎn)通過(guò)編碼過(guò)程對(duì)經(jīng)壓縮的輸入圖像執(zhí)行的熵編碼。熵解碼過(guò)程使用(從經(jīng)壓縮的編碼的圖像文件解碼的)熵次分辨率圖像來(lái)為輸入圖像的每一個(gè)塊選擇熵代碼。
[0134]二維變換解碼器1206操作來(lái)用實(shí)際像素距離替換編碼器插入在經(jīng)壓縮的輸入圖像中的二維變換代碼。
[0135]像素解壓器1208操作來(lái)反轉(zhuǎn)編碼器所執(zhí)行的初始?jí)嚎s。根據(jù)實(shí)施例,圖像解壓器將在二維距離代碼已被替換之后的熵解碼的壓縮的圖像當(dāng)作為輸入。在解壓期間,從左上像素到右下像素遍歷經(jīng)壓縮的輸入圖像,插入來(lái)自向后引用的數(shù)據(jù)、像素值或來(lái)自顏色調(diào)色板的值。
[0136]調(diào)色板生成器1210操作來(lái)在對(duì)輸入圖像解壓期間動(dòng)態(tài)地創(chuàng)建顏色調(diào)色板(在上面被稱為“新出現(xiàn)的調(diào)色板”)。如關(guān)于方法1100的步驟1108所述,當(dāng)遍歷經(jīng)壓縮的像素位置時(shí),通過(guò)填充顏色值的哈希表來(lái)動(dòng)態(tài)地構(gòu)建新出現(xiàn)的調(diào)色板。
[0137]顏色空間變換解碼器1212操作來(lái)將解壓的輸入圖像取作為輸入,并且反轉(zhuǎn)編碼器所插入的顏色空間變換編碼。在對(duì)顏色空間變換進(jìn)行解碼時(shí),使用以每塊為基礎(chǔ)存儲(chǔ)在顏色空間次分辨率圖像中的顏色相關(guān)器。在上面關(guān)于方法1100的步驟1110描述了顏色空間解碼。
[0138]空間預(yù)測(cè)解碼器1214操作來(lái)對(duì)在編碼過(guò)程期間所編碼的空間預(yù)測(cè)進(jìn)行解碼。每一個(gè)塊的空間預(yù)測(cè)器在空間預(yù)測(cè)器次分辨率圖像中可用。
[0139]預(yù)處理解碼器1216操作來(lái)反轉(zhuǎn)可能已在編碼過(guò)程期間執(zhí)行的任何預(yù)處理步驟,諸如阿爾法替換、顏色離散化和調(diào)色板選擇。預(yù)處理解碼器1216的輸出是完全解碼的輸入圖像。
[0140]圖13圖示了其中可以實(shí)現(xiàn)諸如圖1-7中所圖示的編碼方法、圖11中所圖示的解碼方法、編碼器800和/或解碼器1200的實(shí)施例的計(jì)算機(jī)系統(tǒng)1300。系統(tǒng)1300包括處理器1302,其可以包括用于執(zhí)行指令和用于處理信息,包括像素信息的任何計(jì)算機(jī)或電子處理器。處理器1302可以包括能夠處理任何指令序列的任何設(shè)備或是該任何設(shè)備的部分。處理器1302可以包括例如計(jì)算機(jī)處理器、在移動(dòng)設(shè)備中的處理器或其他電子和/或數(shù)字處理器。處理器1302可以例如被包括在計(jì)算機(jī)、移動(dòng)計(jì)算設(shè)備、智能手機(jī)、機(jī)頂盒、娛樂(lè)平臺(tái)、月艮務(wù)器、相機(jī)或其他圖像捕捉設(shè)備、服務(wù)器群、云計(jì)算機(jī)等中。
[0141]處理器1302可以通過(guò)總線1308連接到存儲(chǔ)器1304。存儲(chǔ)器1304可以包括用來(lái)存儲(chǔ)信息以供系統(tǒng)1300使用或由系統(tǒng)1300輸出的易失性存儲(chǔ)器、永久性的、虛擬的或另外。存儲(chǔ)器1304可以包括例如隨機(jī)存取存儲(chǔ)器(RAM)和/或動(dòng)態(tài)RAM (DRAM)0存儲(chǔ)器1304可以用來(lái)存儲(chǔ)任何信息,諸如系統(tǒng)1300的狀態(tài)信息。存儲(chǔ)器1304例如還可以用來(lái)存儲(chǔ)系統(tǒng)1300的指令,包括圖像處理模塊112的指令。系統(tǒng)1300可以根據(jù)需要或視情況包括一個(gè)或多個(gè)處理器1302。
[0142]總線1308可以包括允許在系統(tǒng)1300的各種組件之間的交互的通信基礎(chǔ)結(jié)構(gòu)??偩€1308可以例如在系統(tǒng)1300的組件之間,諸如在處理器1302和存儲(chǔ)器1304之間,載送數(shù)據(jù)。總線1308可以包括在系統(tǒng)1300的組件之間的無(wú)線和/或有線通信介質(zhì),并且可以包括并行、串行或其他拓?fù)浒才拧?br> [0143]永久性存儲(chǔ)1306可以包括組件,如系統(tǒng)1300用來(lái)在某一長(zhǎng)時(shí)間段內(nèi)(例如,與存儲(chǔ)器1304相比)存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器或其他永久性存儲(chǔ)。永久性存儲(chǔ)1306可以包括如在系統(tǒng)1300中的處理器1302所使用的非易失性主存儲(chǔ)器。永久性存儲(chǔ)1306可以包括例如閃存、硬盤、光盤或其他計(jì)算機(jī)可讀介質(zhì)。
[0144]輸入/輸出接口 1310可以包括到鍵盤、鼠標(biāo)、語(yǔ)音命令輸入、顯示器或其他輸入或輸出設(shè)備的接口。可以通過(guò)輸入/輸出設(shè)備接口 1310接收配置命令和/或待被壓縮的圖像。
[0145]網(wǎng)絡(luò)接口 1312可以包括到諸如局域網(wǎng)或因特網(wǎng)的網(wǎng)絡(luò)的一個(gè)或多個(gè)接口。網(wǎng)絡(luò)接口 1312可以包括用于有線或無(wú)線連接的接口。可以通過(guò)網(wǎng)絡(luò)接口 1312接收配置命令和/或待被壓縮的圖像。
[0146]在上面借助于說(shuō)明指定功能及其關(guān)系的實(shí)現(xiàn)的功能構(gòu)造塊來(lái)描述了本發(fā)明。為了便于描述,在本文中任意地限定了這些功能構(gòu)造塊的邊界。可以限定替選邊界,只要所指定的功能及其關(guān)系被適當(dāng)?shù)貓?zhí)行。
[0147]特定實(shí)施例的前面描述如此充分地揭示了本發(fā)明的一般性質(zhì),使得其他人可以在不背離本發(fā)明的一般概念的情況下,通過(guò)應(yīng)用在本【技術(shù)領(lǐng)域】?jī)?nèi)的知識(shí)而為各種應(yīng)用容易地修改和/或調(diào)整這樣的特定實(shí)施例,而不用進(jìn)行過(guò)度實(shí)驗(yàn)。因此,基于在本文中提供的教導(dǎo)和指導(dǎo),這樣的調(diào)整和修改意在在所公開(kāi)的實(shí)施例的等價(jià)物的含義和范圍內(nèi)。應(yīng)當(dāng)理解的是,在本文中的措詞或術(shù)語(yǔ)出于描述而非限制的目的,因此本說(shuō)明書(shū)的術(shù)語(yǔ)或措詞應(yīng)當(dāng)由技術(shù)人員根據(jù)所述教導(dǎo)和指導(dǎo)來(lái)解釋。
[0148]本發(fā)明的寬度和范圍不應(yīng)當(dāng)受任何上述示例性實(shí)施例限制,而是應(yīng)當(dāng)僅根據(jù)所附權(quán)利要求及其等價(jià)物來(lái)限定。
【權(quán)利要求】
1.一種用于對(duì)輸入圖像進(jìn)行壓縮的方法,包括: 基于所述輸入圖像中的統(tǒng)計(jì)相似區(qū)域來(lái)確定多個(gè)熵代碼集; 生成包括包含對(duì)所述多個(gè)熵代碼集的引用的第一次分辨率圖像的一個(gè)或多個(gè)次分辨率圖像,其中所述引用中的每一個(gè)指示所述熵代碼集中的用來(lái)對(duì)所述輸入圖像中的對(duì)應(yīng)像素進(jìn)行編碼的一個(gè); 使用所生成的一個(gè)或多個(gè)次分辨率圖像來(lái)控制包括熵代碼的一個(gè)或多個(gè)壓縮參數(shù),而對(duì)所述輸入圖像進(jìn)行編碼;以及 至少輸出經(jīng)編碼的輸入圖像和所生成的一個(gè)或多個(gè)次分辨率圖像作為壓縮的熵編碼的圖像文件。
2.一種用于對(duì)輸入圖像進(jìn)行壓縮的方法,包括: 從所述輸入圖像針對(duì)多個(gè)壓縮參數(shù)中的每一個(gè)生成相應(yīng)次分辨率圖像; 使用所述相應(yīng)次分辨率圖像來(lái)控制所述多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)所述輸入圖像進(jìn)行編碼;以及 至少輸出經(jīng)編碼的輸入圖像和所生成的次分辨率圖像作為壓縮的熵編碼的圖像文件。
3.根據(jù)權(quán)利要求2所述的方法,其中生成相應(yīng)次分辨率圖像包括: 基于所述輸入圖像中的統(tǒng)計(jì)相似區(qū)域來(lái)確定多個(gè)熵代碼集;以及 生成包括對(duì)所述多個(gè)熵代碼集的引用的第一次分辨率圖像,其中所述引用中的每一個(gè)指示所述熵代碼集中的用來(lái)對(duì)所述輸入圖像中的對(duì)應(yīng)像素進(jìn)行編碼的一個(gè)。
4.根據(jù)權(quán)利要求3所述的方法,其中確定所述多個(gè)熵代碼集包括: 將所述輸入圖像分成多個(gè)塊; 為來(lái)自所述多個(gè)塊的各個(gè)塊確定熵統(tǒng)計(jì)量; 根據(jù)所確定的熵統(tǒng)計(jì)量的相似性對(duì)所述多個(gè)塊進(jìn)行聚類以形成多個(gè)塊集群;以及 為所述多個(gè)塊集群中的每一個(gè)確定熵代碼。
5.根據(jù)權(quán)利要求4所述的方法,其中所形成的塊集群的數(shù)目基于使所述第一次分辨率圖像的位的大小最小化來(lái)確定。
6.根據(jù)權(quán)利要求2所述的方法,其中生成相應(yīng)次分辨率圖像包括: 為所述輸入圖像的各個(gè)塊確定被配置成減少預(yù)測(cè)的熵的空間預(yù)測(cè)器;以及 為所述各個(gè)塊生成包括所述空間預(yù)測(cè)器的第二次分辨率圖像。
7.根據(jù)權(quán)利要求6所述的方法,其中對(duì)所述輸入圖像進(jìn)行編碼包括: 從所述第二次分辨率圖像為所述輸入圖像的各個(gè)塊確定所述空間預(yù)測(cè)器。
8.根據(jù)權(quán)利要求6所述的方法,其中確定所述空間預(yù)測(cè)器進(jìn)一步基于最小化所述塊的編碼成本、所述多個(gè)塊的預(yù)測(cè)誤差以及朝為相鄰像素選擇的空間預(yù)測(cè)器的偏向。
9.根據(jù)權(quán)利要求2所述的方法,其中生成相應(yīng)次分辨率圖像包括: 為所述輸入圖像的各個(gè)塊,確定與在所述塊的像素中的兩個(gè)或更多個(gè)顏色分量之間的相關(guān)性相對(duì)應(yīng)的顏色相關(guān)因子;以及 為所述各個(gè)塊生成包括所述顏色相關(guān)因子的第三次分辨率圖像。
10.根據(jù)權(quán)利要求9所述的方法,其中為所述塊確定所述顏色相關(guān)因子進(jìn)一步基于: 在綠色分量、紅色分量和藍(lán)色分量的任何兩個(gè)之間的相關(guān)性;以及 減少所述塊中的紅色和藍(lán)色通道中的熵。
11.根據(jù)權(quán)利要求9所述的方法,其中對(duì)所述輸入圖像進(jìn)行編碼包括: 至少部分使用從所述第三次分辨率圖像訪問(wèn)的所述顏色相關(guān)因子來(lái)確定預(yù)測(cè)誤差。
12.根據(jù)權(quán)利要求2所述的方法,其中對(duì)所述輸入圖像進(jìn)行編碼包括: 使用單獨(dú)的熵代碼來(lái)對(duì)紅色、藍(lán)色、綠色和阿爾法通道進(jìn)行編碼。
13.根據(jù)權(quán)利要求2所述的方法,其中對(duì)所述輸入圖像進(jìn)行編碼包括: 為所述輸入圖像的一個(gè)或多個(gè)塊的各個(gè)組局部地確定顏色調(diào)色板。
14.根據(jù)權(quán)利要求13所述的方法,其中所述顏色調(diào)色板是使用哈希技術(shù)來(lái)動(dòng)態(tài)地確定的。
15.根據(jù)權(quán)利要求2所述的方法,其中存儲(chǔ)經(jīng)編碼的輸入圖像和所生成的次分辨率圖像的經(jīng)編碼的次分辨率圖像包括使用第一編碼技術(shù)對(duì)所述輸入圖像、所述第一次分辨率圖像、所述第二次分辨率圖像和所述第三次分辨率圖像進(jìn)行編碼。
16.根據(jù)權(quán)利要求2所述的方法,其中所述編碼包括: 對(duì)于所述輸入圖像中的各個(gè)像素,基于相應(yīng)成本,選擇來(lái)自下述操作中的一個(gè)來(lái)生成中間圖像:將向后引用插入到更早出現(xiàn)的像素、插入所述像素或插入來(lái)自顏色調(diào)色板條目的索引;以及 確定從所述中間圖像的 第一像素到最后像素的操作的最小成本路徑。
17.根據(jù)權(quán)利要求16所述的方法,其中所述向后引用是以像素來(lái)指定的。
18.根據(jù)權(quán)利要求16所述的方法,其中所述向后引用是使用針對(duì)二維平面中的距離的預(yù)先確定的距離代碼來(lái)指定的。
19.根據(jù)權(quán)利要求16所述的方法,其中所述相應(yīng)成本中的每一個(gè)包括針對(duì)對(duì)應(yīng)操作的輸出位數(shù)。
20.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括: 用偏移對(duì)所述輸入圖像中的具有半透明的紅色、綠色和藍(lán)色值的像素的阿爾法值進(jìn)行調(diào)整。
21.根據(jù)權(quán)利要求20所述的方法,其中替換阿爾法值包括: 對(duì)所述輸入圖像中的顏色的動(dòng)態(tài)范圍進(jìn)行封裝,以減少作為結(jié)果的預(yù)測(cè)誤差中的新符號(hào)。
22.—種編碼器,包括: 處理器; 耦接到所述處理器的存儲(chǔ)器; 熵代碼生成模塊,所述熵代碼生成模塊被配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 基于輸入圖像中的統(tǒng)計(jì)相似區(qū)域來(lái)確定多個(gè)熵代碼集;以及 生成包括對(duì)所述多個(gè)熵代碼集的引用的第一次分辨率圖像,其中所述引用中的每一個(gè)指示所述熵代碼集中的用來(lái)對(duì)所述輸入圖像中的對(duì)應(yīng)像素進(jìn)行編碼的一個(gè); 圖像存儲(chǔ)模塊,所述圖像存儲(chǔ)模塊被配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 使用各個(gè)次分辨率圖像來(lái)控制多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)所述輸入圖像進(jìn)行編碼;以及 經(jīng)壓縮的圖像文件輸出模塊,所述經(jīng)壓縮的圖像文件輸出模塊被配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 至少輸出經(jīng)編碼的輸入圖像和所生成的第一次分辨率圖像作為壓縮的熵編碼的圖像文件。
23.根據(jù)權(quán)利要求22所述的編碼器,其中所述熵代碼生成模塊被進(jìn)一步配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 將所述輸入圖像分成多個(gè)塊; 為來(lái)自所述多個(gè)塊的各個(gè)塊確定熵統(tǒng)計(jì)量; 根據(jù)所確定的熵統(tǒng)計(jì)量的相似性對(duì)所述多個(gè)塊進(jìn)行聚類以形成多個(gè)塊集群;以及 為所述多個(gè)塊集群中的每一個(gè)確定熵代碼。
24.根據(jù)權(quán)利要求22所述的編碼器,其中所述經(jīng)壓縮的圖像文件輸出模塊被進(jìn)一步配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器使用第一編碼技術(shù)來(lái)存儲(chǔ)經(jīng)編碼的輸入圖像和所生成的第一次分辨率圖像的經(jīng)編碼的版本。
25.—種包括其上編碼有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的制品,所述指令當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí),促使所述計(jì)算設(shè)備執(zhí)行操作,所述操作包括: 基于所述輸入圖像中的統(tǒng)計(jì) 相似區(qū)域來(lái)確定多個(gè)熵代碼集; 生成包括包含對(duì)所述多個(gè)熵代碼集的引用的第一次分辨率圖像的一個(gè)或多個(gè)次分辨率圖像,其中所述引用中的每一個(gè)指示所述熵代碼集中的用來(lái)對(duì)所述輸入圖像中的對(duì)應(yīng)像素進(jìn)行編碼的一個(gè); 使用所生成的一個(gè)或多個(gè)次分辨率圖像來(lái)控制包括熵代碼的一個(gè)或多個(gè)壓縮參數(shù),而對(duì)所述輸入圖像進(jìn)行編碼;以及 輸出經(jīng)編碼的輸入圖像和所生成的一個(gè)或多個(gè)次分辨率圖像作為壓縮的熵編碼的圖像文件。
26.一種用于對(duì)編碼的輸入圖像進(jìn)行解壓的方法,包括: 對(duì)壓縮的熵編碼的圖像文件進(jìn)行分解來(lái)訪問(wèn)經(jīng)編碼的輸入圖像和關(guān)于多個(gè)壓縮參數(shù)中的每一個(gè)的相應(yīng)次分辨率圖像; 使用所述相應(yīng)次分辨率圖像來(lái)控制所述多個(gè)壓縮參數(shù)中的每一個(gè),對(duì)經(jīng)編碼的輸入圖像進(jìn)行解碼;以及 輸出經(jīng)解碼的輸入圖像。
27.一種解碼器,包括: 處理器; 耦接到所述處理器的存儲(chǔ)器; 圖像文件分解器,所述圖像文件分解器被配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 對(duì)壓縮的熵編碼的圖像文件進(jìn)行分解來(lái)訪問(wèn)經(jīng)編碼的壓縮的輸入圖像和關(guān)于多個(gè)壓縮參數(shù)中的每一個(gè)的相應(yīng)次分辨率圖像;以及 輸入圖像解碼器,所述輸入圖像解碼器被配置成當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器: 使用所述相應(yīng)次分辨率圖像來(lái)控制所述多個(gè)壓縮參數(shù)中的每一個(gè),而對(duì)經(jīng)編碼的輸入圖像進(jìn)行解碼。
【文檔編號(hào)】H04N19/463GK103703779SQ201280036377
【公開(kāi)日】2014年4月2日 申請(qǐng)日期:2012年11月2日 優(yōu)先權(quán)日:2011年11月3日
【發(fā)明者】于爾基·安特羅·阿拉奎加拉 申請(qǐng)人:谷歌公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
利津县| 泽州县| 安远县| 昌黎县| 河池市| 都昌县| 银川市| 阿拉善右旗| 都江堰市| 公安县| 宜兰市| 明水县| 长丰县| 高雄市| 出国| 互助| 凉山| 杭锦后旗| 朝阳市| 建瓯市| 巫溪县| 思茅市| 开封市| 临洮县| 融水| 汉中市| 湟中县| 石河子市| 吉木萨尔县| 崇礼县| 皮山县| 华坪县| 天祝| 兴和县| 营口市| 峨边| 五大连池市| 朔州市| 土默特左旗| 务川| 洛南县|