對(duì)圖像進(jìn)行編碼的制作方法
【專利摘要】本發(fā)明的各實(shí)施方式總體上涉及對(duì)圖像進(jìn)行編碼。具體地,根據(jù)目標(biāo)比特?cái)?shù)確定供編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用的量化水平。針對(duì)圖像的每個(gè)部分,對(duì)像素進(jìn)行分析以估計(jì)該圖像部分的復(fù)雜度。針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,所估計(jì)的圖像部分的復(fù)雜度以及關(guān)系被用來(lái)估計(jì)通過利用編碼器使用相應(yīng)候選量化水平對(duì)圖像進(jìn)行編碼將會(huì)生成的比特?cái)?shù),并且基于此選擇候選量化水平中的一個(gè)候選量化水平。該關(guān)系是編碼器所使用的量化水平的函數(shù),并且在將圖像部分的復(fù)雜度與利用編碼器對(duì)該圖像部分進(jìn)行編碼將會(huì)生成的比特?cái)?shù)相關(guān)時(shí)使用。編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用所選擇的量化水平。
【專利說(shuō)明】對(duì)圖像進(jìn)行編碼
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實(shí)施方式總體上涉及圖像處理。具體地,涉及對(duì)圖像進(jìn)行編碼。
【背景技術(shù)】
[0002]諸如相機(jī)之類的圖像傳感器可以被用來(lái)捕獲圖像數(shù)據(jù)。圖像數(shù)據(jù)可以由圖像處理器進(jìn)行處理以提供包括多個(gè)像素的圖像。表示圖像的像素值的初始圖像數(shù)據(jù)隨后可以被進(jìn)行編碼。對(duì)圖像編碼的目標(biāo)通常是減少用來(lái)表示圖像的數(shù)據(jù)量。因此,圖像的編碼可能會(huì)涉及到圖像的一些壓縮。無(wú)損編碼算法可以被用來(lái)在不損失圖像中的任何信息的情況下對(duì)圖像進(jìn)行編碼。與之相比,有損編碼算法可以用來(lái)對(duì)圖像進(jìn)行編碼,并且在編碼時(shí)與使用無(wú)損編碼算法進(jìn)行的壓縮相比以更大程度對(duì)圖像進(jìn)行壓縮。然而,當(dāng)使用有損編碼算法對(duì)圖像編碼時(shí),圖像中的一些信息可能會(huì)丟失。
[0003]由于圖像中的像素值之間經(jīng)常存在某些關(guān)聯(lián),例如對(duì)于圖像中彼此相鄰或者至少接近的像素而言,所以初始圖像數(shù)據(jù)中經(jīng)常存在著表示圖像中每個(gè)像素的值的冗余,例如,通過將顏色連同一些群組信息一起一次性地存儲(chǔ)以表示該群組的所有像素的顏色而不是多次存儲(chǔ)顏色(即,針對(duì)每個(gè)像素存儲(chǔ)一次),所有具有相同顏色的像素群組的顏色能夠得以被(無(wú)損)壓縮。圖像中存在的冗余越多,圖像就能夠在不損失圖像中的任何信息的情況下被壓縮的更多。編碼器所使用的量化參數(shù)(QP)管控著有多少細(xì)節(jié)得以被保存。當(dāng)編碼器所使用的QP非常小時(shí),幾乎圖像中的所有細(xì)節(jié)都被保留。當(dāng)編碼器所使用的QP有所增大時(shí),圖像中的一些細(xì)節(jié)被整合而使得編碼圖像的比特率下降,但是其代價(jià)是一定的失真增加以及編碼圖像質(zhì)量的一定下降。
[0004]對(duì)于編碼器而言,以跨圖像并且在圖像是包括多個(gè)幀的視頻流內(nèi)的一幀時(shí)跨該視頻流的不同幀以恒定(或近似恒定)的比特率提供編碼圖像是有利的??梢允褂镁彌_器并且將其作為“漏桶(leaky bucket) ”進(jìn)行操作,其以恒定速率被排空并且以可變速率被填充來(lái)自編碼器的編碼圖像數(shù)據(jù)。速率控制器可以被用來(lái)根據(jù)目標(biāo)比特率調(diào)節(jié)編碼器所使用的QP,從而使得緩沖器并不被耗盡或飽和。速率控制器從編碼器接收指示已經(jīng)通過對(duì)之前圖像和/或當(dāng)前所編碼圖像的之前部分進(jìn)行編碼而生成的比特?cái)?shù)的反饋。該速率控制器可以使用該反饋來(lái)確定QP應(yīng)當(dāng)針對(duì)后續(xù)圖像和/或當(dāng)前所編碼圖像的后續(xù)部分的編碼如何變化。
[0005]圖像中的冗余可以隨圖像以及隨該相同圖像的不同部分而大幅變化。該圖像可能僅被編碼一次(例如,在該圖像被實(shí)時(shí)編碼時(shí)),而使得如果通過對(duì)該圖像進(jìn)行編碼而生成的比特相對(duì)于目標(biāo)比特率過少或過多也并不對(duì)該圖像重新編碼。此外,為了降低緩沖器的存儲(chǔ)要求并且將圖像編碼的延時(shí)保持在可接受的低水平,緩沖器的大小是受限的。此外,用來(lái)編碼相同圖像的不同部分的QP的較大變化會(huì)導(dǎo)致感知上更低質(zhì)量的編碼圖像。因此,該速率控制器可能并不允許QP的變化超出圖像編碼的閾值數(shù)量。
[0006]以上所提到的約束會(huì)導(dǎo)致速率控制器并未最優(yōu)地(或者甚至近似最優(yōu)地)對(duì)編碼器用來(lái)對(duì)圖像部分編碼的QP進(jìn)行控制的情形(例如,當(dāng)圖像被實(shí)時(shí)編碼時(shí))。例如,圖像中的細(xì)節(jié)數(shù)量可能是局部化的,例如圖像的底部四分之一可能包括比圖像的其余部分更多的細(xì)節(jié)。在這種情況下,用盡比特預(yù)算的四分之三,速率控制器可能針對(duì)圖像的四分之三而言在比特預(yù)算內(nèi)進(jìn)行良好操作。然而,當(dāng)編碼器對(duì)該圖像中包含高細(xì)節(jié)水平的底部的四分之一進(jìn)行編碼時(shí),速率控制器被迫使提高QP (與將妥善適用于編碼圖像的底部四分之一中的細(xì)節(jié)水平的QP相比)以便編碼器保持在比特預(yù)算之內(nèi)。以這種方式改變QP會(huì)導(dǎo)致感知上更低質(zhì)量的編碼圖像。
【發(fā)明內(nèi)容】
[0007]提供該
【發(fā)明內(nèi)容】
以引入以下在【具體實(shí)施方式】中進(jìn)一步進(jìn)行描述的簡(jiǎn)化形式中的概念選擇。該
【發(fā)明內(nèi)容】
并非旨在標(biāo)識(shí)所請(qǐng)求保護(hù)主題的關(guān)鍵特征或必要特征,也并非旨在被用來(lái)對(duì)所請(qǐng)求保護(hù)主題的范圍加以限制。
[0008]提供了一種根據(jù)目標(biāo)比特?cái)?shù)確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所使用的量化水平的方法,其中該圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,該方法包括:針對(duì)圖像中一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析該圖像部分中的像素以估計(jì)該圖像部分的復(fù)雜度指示;針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示,其中所述關(guān)系是編碼器所使用的量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過編碼器對(duì)該圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示的估計(jì)相關(guān)時(shí)使用;并且基于目標(biāo)比特?cái)?shù)以及基于所估計(jì)的通過使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示來(lái)選擇多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用。
[0009]提供了一種處理塊,其被配置為根據(jù)目標(biāo)比特?cái)?shù)而確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,其中該圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,其中該處理塊被配置為:針對(duì)圖像中的一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析該圖像部分中的像素以估計(jì)該圖像部分的復(fù)雜度指示;針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示,其中所述關(guān)系是編碼器所使用的量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過編碼器對(duì)該圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示的估計(jì)相關(guān)時(shí)使用;并且基于目標(biāo)比特?cái)?shù)以及基于所估計(jì)的通過使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示來(lái)選擇多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用。
[0010]提供了一種處理塊,其被配置為根據(jù)目標(biāo)比特?cái)?shù)而確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,其中該圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,其中該處理塊包括:圖像分析模塊,其被配置為針對(duì)圖像中的一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析該圖像部分中的像素以估計(jì)該圖像部分的復(fù)雜度指示;比特估計(jì)模塊,其被配置為針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示,其中所述關(guān)系是編碼器所使用的量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過編碼器對(duì)該圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示的估計(jì)相關(guān)時(shí)使用;以及量化水平選擇模塊,其被配置為基于目標(biāo)比特?cái)?shù)以及基于所估計(jì)的利用使用相應(yīng)候選量化水平的編碼器對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示來(lái)選擇多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用。
[0011]提供了一種計(jì)算機(jī)程序產(chǎn)品,其被配置為根據(jù)目標(biāo)比特?cái)?shù)而確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,該計(jì)算機(jī)程序產(chǎn)品被體現(xiàn)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并且被配置為當(dāng)在處理器上執(zhí)行時(shí)用來(lái)執(zhí)行這里所描述的任意方法。還可以提供一種具有在其上編碼有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀程序代碼用于生成被配置為執(zhí)行這里所描述的任意方法的處理塊。
[0012]提供了一種圖像處理器,其包括圖像預(yù)處理塊和編碼器處理塊,其中該圖像預(yù)處理塊被配置為:接收?qǐng)D像數(shù)據(jù);對(duì)所接收的圖像數(shù)據(jù)進(jìn)行處理以提供包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分的圖像;針對(duì)圖像中的一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析該圖像部分中的像素以估計(jì)該圖像部分的復(fù)雜度指示;基于一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的復(fù)雜度指示確定元數(shù)據(jù);并且輸出所確定的元數(shù)據(jù),并且其中該編碼器處理塊被配置為接收該圖像預(yù)處理塊所確定的元數(shù)據(jù);使用所接收的元數(shù)據(jù)來(lái)確定用于在對(duì)圖像進(jìn)行編碼時(shí)使用的量化水平;以及使用所確定的量化水平對(duì)圖像進(jìn)行編碼。
[0013]提供了一種使用圖像處理器對(duì)圖像進(jìn)行處理的方法,該圖像處理器包括圖像預(yù)處理塊和編碼器處理塊,其中該方法包括:在圖像預(yù)處理塊接收?qǐng)D像數(shù)據(jù);在圖像預(yù)處理塊對(duì)所接收的圖像數(shù)據(jù)進(jìn)行處理以提供包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分的圖像;針對(duì)圖像中的一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,圖像預(yù)處理塊分析該圖像部分中的像素以估計(jì)該圖像部分的復(fù)雜度指示;圖像預(yù)處理塊基于一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的復(fù)雜度指示確定元數(shù)據(jù);在編碼器處理塊使用該元數(shù)據(jù)來(lái)確定用于在對(duì)圖像進(jìn)行編碼時(shí)使用的量化水平;并且在編碼器處理塊使用所確定的量化水平對(duì)圖像進(jìn)行編碼。
[0014]本領(lǐng)域技術(shù)人員容易理解,以上特征可以適當(dāng)進(jìn)行組合,并且可以與這里所描述示例的任意方面進(jìn)行組合。
【專利附圖】
【附圖說(shuō)明】
[0015]現(xiàn)在將參考附圖對(duì)示例進(jìn)行更為詳細(xì)地描述,其中:
[0016]圖1示出了圖像處理系統(tǒng);
[0017]圖2示出了對(duì)圖像進(jìn)行編碼的處理的流程圖;
[0018]圖3示出了圖像分區(qū)的delta值的柱狀圖;
[0019]圖4示出了 HEVC編碼器所生成的比特/像素相對(duì)簡(jiǎn)單模型所預(yù)測(cè)的比特/像素的圖形表不;
[0020]圖5示出了不同量化水平的拉普拉斯(Laplacian)分布的熵相對(duì)處于最小量化水平的拉普拉斯分布的熵的圖形;
[0021]圖6示出了不同量化水平的拉普拉斯分布的熵的對(duì)數(shù)相對(duì)處于最小量化水平的拉普拉斯分布的熵的對(duì)數(shù)的圖形;
[0022]圖7示出了使用不同量化水平的HEVC編碼器所生成的比特?cái)?shù)的對(duì)數(shù)相對(duì)簡(jiǎn)單模型所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的圖形;以及
[0023]圖8示出了將HEVC編碼器所生成的比特?cái)?shù)的對(duì)數(shù)與簡(jiǎn)單模型所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)相關(guān)的二次等式的系數(shù)相對(duì)HEVC編碼器所使用的量化參數(shù)的圖形。
【具體實(shí)施方式】
[0024]現(xiàn)在將僅通過示例對(duì)實(shí)施方式進(jìn)行描述。首先,對(duì)涉及要根據(jù)內(nèi)在(Intra)編碼進(jìn)行編碼的圖像的示例進(jìn)行描述,在該內(nèi)在編碼中,對(duì)圖像進(jìn)行編碼不需要參考其它圖像(例如,視頻序列的其它幀)。如隨后所描述的,類似的原則應(yīng)用于根據(jù)交互(或“非內(nèi)在”)編碼進(jìn)行編碼的圖像,在該交互編碼中,對(duì)圖像進(jìn)行編碼需要參考其它圖像(例如,視頻序列的其它幀)。
[0025]在這里所描述的示例中,對(duì)圖像進(jìn)行分析以便確定該圖像的復(fù)雜度指示(例如,圖像的熵)。這里所描述的圖像分析是在對(duì)圖像進(jìn)行編碼之前所執(zhí)行的簡(jiǎn)單處理。圖像的復(fù)雜度指示被用來(lái)估計(jì)編碼器是以多種不同量化水平中的每個(gè)量化水平對(duì)圖像進(jìn)行編碼所生成的比特?cái)?shù)。量化水平中的一個(gè)量化水平基于該估計(jì)并且基于所編碼數(shù)據(jù)的目標(biāo)比特?cái)?shù)進(jìn)行選擇。以此方式,用來(lái)對(duì)特定圖像進(jìn)行編碼的量化水平基于該相同的特定圖像的復(fù)雜度進(jìn)行估計(jì)。在對(duì)圖像進(jìn)行編碼之前選擇量化水平。以此方式,在確定用于對(duì)圖像進(jìn)行編碼的適當(dāng)量化水平的估計(jì)之前無(wú)需對(duì)該圖像進(jìn)行編碼。所選擇量化水平的指示被發(fā)送至速率控制器,該速率控制器能夠?qū)幋a器用來(lái)對(duì)圖像進(jìn)行編碼的量化水平進(jìn)行控制。該速率控制器可以基于其可獲得的信息,例如基于來(lái)自編碼器的反饋,而改變編碼器所使用的量化水平。然而,所選擇的量化水平非常適于編碼器在對(duì)圖像進(jìn)行編碼時(shí)使用,因?yàn)樗x擇的量化水平是基于特定圖像的復(fù)雜度(例如,基于圖像內(nèi)不同圖像部分的復(fù)雜度)所確定的。此外,量化水平的選擇可以取決于要用來(lái)對(duì)圖像進(jìn)行編碼的編碼器的類型。例如,編碼器可以為高效視頻編碼(HEVC)編碼器,其被配置為根據(jù)HEVC壓縮標(biāo)準(zhǔn)對(duì)圖像進(jìn)行編碼。被選擇供HEVC編碼器使用的量化水平可以不同于被選擇供根據(jù)其它一些壓縮標(biāo)準(zhǔn)(例如,根據(jù)
H.264壓縮標(biāo)準(zhǔn))對(duì)圖像進(jìn)行編碼的編碼器所使用的量化水平。
[0026]圖1示出了圖像處理系統(tǒng),其包括圖像傳感器102和圖像處理器104,該圖像處理器104包括圖像預(yù)處理塊106和編碼器處理塊108。該圖像處理系統(tǒng)還包括存儲(chǔ)器110。圖像預(yù)處理塊106包括圖像處理模塊112、圖像分析模塊114、比特估計(jì)模塊116和量化水平選擇模塊118。編碼器處理塊108包括速率控制器120和編碼器模塊122。圖像傳感器102的輸出耦合至圖像處理模塊112的輸入。圖像處理模塊112的輸出耦合至存儲(chǔ)器110以及圖像分析模塊114的輸入。圖像分析模塊114的輸出耦合至比特估計(jì)模塊116的輸入。比特估計(jì)模塊116的輸出耦合至量化水平選擇模塊118的輸入。量化水平選擇模塊118被配置為接收目標(biāo)比特預(yù)算的指示。量化水平選擇模塊118的輸出耦合至速率控制器120的第一輸入。速率控制器120被配置為接收目標(biāo)比特預(yù)算的指示。速率控制器120的輸出耦合至編碼器模塊122的輸入。編碼器模塊122的第一輸出耦合至速率控制器120的第二輸入。編碼器模塊122被配置為從存儲(chǔ)器110接收(未編碼)圖像并且向存儲(chǔ)器110輸出編碼圖像。在一個(gè)示例中,編碼器模塊122所執(zhí)行的“編碼”是數(shù)字圖像壓縮。圖1所示的圖像處理系統(tǒng)的所有元件可以在例如相機(jī)、移動(dòng)電話、平板計(jì)算機(jī)、膝上計(jì)算機(jī)或者可以接收并處理圖像數(shù)據(jù)的任意其它設(shè)備的相同設(shè)備內(nèi)實(shí)施。備選地,圖1所示的圖像處理系統(tǒng)的一個(gè)或多個(gè)元件可以在與圖1所示的圖像處理系統(tǒng)的其它元件分開的設(shè)備中實(shí)施。例如,圖像傳感器102可以在與圖像處理器104和存儲(chǔ)器110分開的設(shè)備上實(shí)施,其中圖像傳感器102可以經(jīng)由適當(dāng)接口連接至圖像處理器104,例如通過有線或無(wú)線連接,僅給出一些示例,例如USB連接、W1-Fi連接、藍(lán)牙連接或者互聯(lián)網(wǎng)上的連接。
[0027]針對(duì)根據(jù)內(nèi)在編碼對(duì)圖像進(jìn)行編碼的方法,參考圖2所示的流程圖對(duì)圖1所示的圖像處理系統(tǒng)的操作進(jìn)行描述。圖像傳感器102感測(cè)圖像。有關(guān)圖像傳感器可以如何感測(cè)圖像的細(xì)節(jié)對(duì)于本領(lǐng)域技術(shù)人員而言是已知的,并且因此將不在這里給出。在步驟S202,在圖像預(yù)處理塊106從圖像傳感器102接收?qǐng)D像數(shù)據(jù)。具體地,圖像處理模塊112接收該圖像數(shù)據(jù)。圖像處理模塊112被配置為對(duì)該圖像數(shù)據(jù)進(jìn)行處理以提供包括多個(gè)像素的圖像。
[0028]在步驟S204,圖像處理模塊112對(duì)在步驟S202所接收的圖像數(shù)據(jù)進(jìn)行處理以提供包括像素的圖像。圖像處理模塊112所執(zhí)行的處理的細(xì)節(jié)超出了該描述的范圍并且對(duì)于本領(lǐng)域技術(shù)人員而言是已知的。然而,例如,圖像處理模塊112可以執(zhí)行諸如去拜耳算法(debayering)、降噪和/或白平衡校正之類的已知處理。來(lái)自圖像處理模塊112的輸出是包括由數(shù)據(jù)值所表示的多個(gè)像素的圖像,上述值例如(YUV顏色空間中的)亮度和色度值或者紅色值、綠色值和藍(lán)色值(RGB值)。從圖像處理模塊112輸出的圖像被存儲(chǔ)在存儲(chǔ)器110中以便隨后由編碼器處理塊108的編碼器模塊122所獲取。
[0029]從圖像處理模塊112輸出的圖像還被送至圖像分析模塊114。在步驟S206,圖像分析模塊114對(duì)該圖像的一個(gè)或多個(gè)部分中的像素進(jìn)行分析。即,圖像包括一個(gè)或多個(gè)圖像部分并且對(duì)該一個(gè)或多個(gè)圖像部分進(jìn)行分析以估計(jì)每個(gè)圖像部分的復(fù)雜度指示。例如,可以使用圖像部分的熵作為該圖像部分的復(fù)雜度指示。圖像部分的熵表示為了對(duì)該圖像部分進(jìn)行無(wú)損編碼將需要多少比特。
[0030]作為示例,圖像分析模塊114可以使用基于2x2亮度內(nèi)核的模型,其中預(yù)測(cè)剩余(或“delta值” AiJ是個(gè)體像素亮度值與其所屬的2x2內(nèi)核的平均值(例如,均值或中值)之間的差。即,針對(duì)圖像部分中的每個(gè)像素,確定該像素的值(例如,亮度值)和包括該像素的圖像塊中的像素塊(例如,2x2塊)內(nèi)的像素值的平均值(例如,均值)之間的差。
這在以下等式(I)中示出,其中1"^¥是像素的2x2塊的亮度值的均值,其中該2x2塊的原點(diǎn)在像素坐標(biāo)中的位置X,y處,并且其中Yy是具有距2x2塊的原點(diǎn)的偏移量i,j的像素的亮度值:
^rAVE 一 I f,? X-1 YJ
[0031 ]-~4\2^λλ 匕+_ I
\ 1-Q J-O/
Hi=切-\i⑴
[0032]等式⑴所示的計(jì)算以整數(shù)算術(shù)來(lái)執(zhí)行,并且括號(hào)內(nèi)的因數(shù)“2”用作取整為最接近整數(shù)的的均值,而并非始終向下取整。在該示例中,該模型考慮像素值與2x2塊內(nèi)包括該像素的其它像素值的平均值之間的差。更一般地,在其它示例中,可以確定像素值與從包括一個(gè)或多個(gè)臨近像素的像素群組的值所得出的針對(duì)該像素的預(yù)測(cè)之間的差。針對(duì)特定像素所考慮的像素群組可以包括或不包括該特定群組本身。在其它示例中,該模型可以考慮不同大小和/或形狀的像素塊(例如,3x3、4x2或nxl的像素塊,其中η是整數(shù))。
[0033]針對(duì)圖像的分區(qū),(帶符號(hào)的)delta值Λ “可以以直方圖繪出,其示例在圖3中示出。圖像分區(qū)包括多個(gè)塊。例如,圖像分區(qū)可以是圖像的一對(duì)像素行(即,一行2x2的像素塊)。當(dāng)根據(jù)光柵掃描對(duì)圖像進(jìn)行處理時(shí),這是特別有用的圖像分區(qū)選擇。僅一個(gè)存儲(chǔ)像素?cái)?shù)量(等于圖像的行中的像素?cái)?shù)量)的素質(zhì)的行存儲(chǔ)就足以確定一對(duì)像素行的delta值。在其它示例中,圖像分區(qū)可以包括能夠被劃分為模型(例如,2x2塊)中所使用的塊的不同像素布置,例如圖像內(nèi)的矩形(包括正方形)像素分區(qū)。作為有用的一般性示例,其有效利用了少量的行存儲(chǔ),圖像分區(qū)包括圖像內(nèi)的一個(gè)或多個(gè)像素行,其中圖像分區(qū)中的像素行的數(shù)量等于像素群組的高度。在圖3所示的示例中,該直方圖在零的delta值上取得峰值并以此為中心。該直方圖中的峰值的銳利度(sharpness)根據(jù)圖像的內(nèi)容而變化并且給出了該圖像分區(qū)的熵(即,復(fù)雜度)的指示,其寬泛地反映了以很大程度上編解碼器不可知的方式對(duì)圖像進(jìn)行編碼所將需要的比特?cái)?shù)。該直方圖中零處的尖銳峰值指示該分區(qū)中的像素與其相鄰像素非常相似,即該圖像中的熵很低。與之相比,該直方圖中的寬幅峰值則指示該分區(qū)中的像素并非與其相鄰像素非常相似,即,該圖像中的熵很高。通常,可以存在多個(gè)不同寬度的直方圖峰值,但是這里所描述的方法的原則在那些情況下仍然能夠得以應(yīng)用。
[0034]根據(jù)以下等式,圖像分區(qū)的熵HEJ能夠根據(jù)熵的標(biāo)準(zhǔn)定義進(jìn)行估計(jì):
Jf-1
[0035]Et = 1g2CD —泛 K 1g2(^k)
[0036]其中K是直方圖中箱體(bin)的數(shù)量,bk是箱體k的直方圖占用并且從而T表示總體直方圖占用,即圖像分區(qū)中的像素?cái)?shù)量。圖像分區(qū)的熵用作該圖像分區(qū)內(nèi)的信息內(nèi)容的有用量度。具體地,圖像分區(qū)的熵乘以該圖像分區(qū)中的像素?cái)?shù)量給出了對(duì)該圖像分區(qū)進(jìn)行無(wú)損編碼所需的比特?cái)?shù)的預(yù)測(cè)。
[0037]原則上,假設(shè)該直方圖的熵低于像素表示形式的固有比特深度,則可以通過利用平均的2x2值(其使用該四個(gè)像素所使用的比特的四分之一),加上可變長(zhǎng)度的代碼,或者利用比固有差異將要求的更少的比特對(duì)差值進(jìn)行編碼的算術(shù)編碼來(lái)表示直方圖中所包括的2x2塊的集合,來(lái)對(duì)它們進(jìn)行壓縮。
[0038]如上所述,圖像分區(qū)可以采用任意形式(其被劃分為所建模的像素塊,例如2x2的像素塊)。將可能選擇整個(gè)圖像作為圖像分區(qū),但是擁有與圖像內(nèi)的局部熵值以及圖像的整體熵相關(guān)的信息可能是更為有用的。因此,可能有所幫助的是使用小于整個(gè)圖像的圖像分區(qū)并且實(shí)際選擇為行配對(duì),即兩個(gè)圖像行。
[0039]圖像的一部分包括一個(gè)或多個(gè)圖像分區(qū),并且能夠通過對(duì)該圖像部分內(nèi)的圖像分區(qū)的熵進(jìn)行求和而找出該圖像分區(qū)的熵的估計(jì)。圖像分區(qū)的熵被求和以減少對(duì)圖像中的微小細(xì)節(jié)的熵的影響,而該影響可能由于以上所描述的考慮小(例如,2x2)的像素塊的簡(jiǎn)單模型而被夸大。通過等式,包括R個(gè)圖像分區(qū)的第m個(gè)圖像部分(或“圖像鄰近”)的總體熵的估計(jì)Em被確定為:
[0040]Em =(2)
[0041]如上所述,得出圖像分區(qū)上的熵并且隨后將圖像分區(qū)的熵進(jìn)行求和以給出圖像部分的上會(huì)是有用的。如果并未使用圖像分區(qū)而是從2x2塊的直方圖確定圖像部分的熵,則將會(huì)有許多delta值并且將會(huì)丟失微小細(xì)節(jié)的信息。類似地,在確定圖像分區(qū)的大小時(shí)要考慮到權(quán)衡。較小的圖像分區(qū)將提供有關(guān)圖像中更小細(xì)節(jié)區(qū)域的信息,但是直方圖中所要考慮的數(shù)據(jù)點(diǎn)較少,從而數(shù)據(jù)的可靠性較低。塊、圖像分區(qū)和圖像部分的大小可以有所變化,以例如適應(yīng)特定圖像集合或者滿足約束,例如硬件約束,諸如為圖像分析模塊114所給出的行存儲(chǔ)的數(shù)量。
[0042]圖像部分的總熵Em是該其所包含的圖像分區(qū)的熵之和乘以每個(gè)圖像分區(qū)中的像素?cái)?shù)量。這給出了通過對(duì)該圖像部分進(jìn)行無(wú)損編碼將會(huì)生成的比特?cái)?shù)。繼而,能夠通過對(duì)圖像內(nèi)的一個(gè)或多個(gè)圖像部分的熵進(jìn)行求和而確定整個(gè)圖像的全局熵的估計(jì)。因此,如果M是圖像中圖像部分的數(shù)量(其中M彡1),則圖像的全局熵Eimage被估計(jì)為:
[0043]^imaga = ^ gW
[0044]某些編碼器使用基于8x8塊的編碼來(lái)對(duì)圖像進(jìn)行編碼。測(cè)量分區(qū)的熵并且對(duì)也可能針對(duì)其獲得壓縮編碼算法所生成的實(shí)際比特計(jì)數(shù)的圖像部分上的分區(qū)結(jié)果進(jìn)行累加是有意義的。因此,作為示例,圖像分區(qū)是行配對(duì),并且圖像部分是多個(gè)8行圖像。例如,圖像部分可以是256(即,32x8)個(gè)像素行的塊,從而在大約四個(gè)四分之一中估計(jì)了 1080行圖像的熵,這有點(diǎn)過剩(overhang)。作為另一個(gè)示例,其被發(fā)現(xiàn)關(guān)于實(shí)際的HEVC編碼比特計(jì)數(shù)特出了稍微更好的關(guān)聯(lián),圖像部分可以是120(即,15x8)行像素的塊,其確切地被9次劃分為1080,即該圖像被劃分為9個(gè)圖像部分。
[0045]在步驟S210,關(guān)系被用于估計(jì)針對(duì)多種量化水平對(duì)圖像的圖像部分進(jìn)行編碼所生成的比特?cái)?shù)。該關(guān)系是量化水平的函數(shù)并且被用來(lái)將圖像部分的復(fù)雜度指示(即,圖像部分的熵Em)與利用編碼器模塊122對(duì)該圖像部分進(jìn)行編碼將會(huì)生成的比特?cái)?shù)的估計(jì)相關(guān)聯(lián)。編碼器模塊122在這里也可以簡(jiǎn)單地被稱作“編碼器”。該關(guān)系可以在使用其估計(jì)對(duì)該圖像的圖像部分進(jìn)行編碼所生成的比特?cái)?shù)之前以離線處理進(jìn)行確定。以下對(duì)該關(guān)系的細(xì)節(jié)以及其可以如何確定進(jìn)行描述。
[0046]表現(xiàn)出相對(duì)精細(xì)的細(xì)節(jié)水平的圖像分區(qū)具有相對(duì)高的熵。類似地,表現(xiàn)出相對(duì)粗糙的細(xì)節(jié)水平的圖像分區(qū)具有相對(duì)低的熵。通過實(shí)施這里所描述的用于估計(jì)圖像分區(qū)的熵的模型,已經(jīng)觀察到一盡管算法復(fù)雜度的明顯差異一簡(jiǎn)單的2x2熵預(yù)測(cè)器和HEVC基準(zhǔn)編碼器(在僅1-frame模式中以固定量化參數(shù)QP = O進(jìn)行編碼)所使用的實(shí)際比特表現(xiàn)出非常強(qiáng)的相似性。這一觀察可以被用來(lái)推斷出如上所述針對(duì)圖像的用來(lái)估計(jì)圖像部分的熵的簡(jiǎn)單預(yù)分析步驟可以被用來(lái)估計(jì)編碼器用來(lái)對(duì)圖像進(jìn)行編碼的明顯更為復(fù)雜的HEVC編碼算法中的比特使用的變化。
[0047]圖4示出了 HEVC編碼器針對(duì)圖像部分所生成的比特/像素相對(duì)于由估計(jì)Em所給出的以上所描述的簡(jiǎn)單的2x2模型針對(duì)該圖像部分所預(yù)測(cè)的比特/像素的圖形表示。如圖4所示,直線可以針對(duì)圖中的數(shù)據(jù)進(jìn)行擬合。在圖4中能夠看到,所預(yù)測(cè)比特?cái)?shù)和實(shí)際所測(cè)量的由編碼器所生成的比特?cái)?shù)之間的關(guān)聯(lián)并不完美,但是仍然存在關(guān)聯(lián)性。從一個(gè)特定圖像序列結(jié)合的觀察,對(duì)于圖像的所預(yù)測(cè)比特?cái)?shù)和實(shí)際所觀察的由對(duì)該圖像編碼的HEVC編碼器所生成的比特?cái)?shù)的圖形,已經(jīng)得出關(guān)聯(lián)系數(shù)為0.92。給定2x2模型的簡(jiǎn)單性,可以認(rèn)為該關(guān)聯(lián)出奇的好。
[0048]因此,應(yīng)當(dāng)理解,(例如,基于2x2像素塊的)模型簡(jiǎn)單支持作出通過使用編碼器(例如,HEVC編碼器)利用等于O的量化參數(shù)QP(即,基本上無(wú)損的內(nèi)在編碼)對(duì)圖像的任意部分(例如,圖像的行或瓦片(tile))進(jìn)行編碼生成的比特?cái)?shù)的估計(jì),該圖像部分被細(xì)分為像素塊(例如,2x2像素塊)。這可以被概況為支持對(duì)整個(gè)圖像比特?cái)?shù)的預(yù)測(cè)。如果步驟S208中所確定的關(guān)系提供了通過利用編碼器使用大于零的量化參數(shù)(即,針對(duì)有損編碼而言)對(duì)圖像進(jìn)行編碼所生成的比特?cái)?shù)的估計(jì),則這將會(huì)是有用的。根據(jù)HEVC標(biāo)準(zhǔn),量化參數(shù)可以取O至51的值。量化參數(shù)是用來(lái)對(duì)圖像進(jìn)行編碼的量化水平的度量。量化水平也可以利用表示為Q的步幅大小(或量化器間隔)來(lái)指示。量化步幅大小Q和量化參數(shù)QP互相關(guān)聯(lián)并且均描述了量化水平,但是在HEVC標(biāo)準(zhǔn)中的定義并不相同。S卩,量化參數(shù)(QP)有效地作為用于步幅大小(Q)的代碼。
[0049]用來(lái)預(yù)測(cè)通過對(duì)圖像進(jìn)行編碼所生成的比特?cái)?shù)的模型可以對(duì)空間域或頻域中的像素值進(jìn)行運(yùn)算。在非常普遍的方面,如果樣本的分布是局部化而非扁平的,則空間域或頻域中的預(yù)測(cè)僅具有壓縮優(yōu)勢(shì)。常見的情況是,分布(例如,圖3中所示的直方圖)是近似的拉普拉斯算子。雖然這是粗略的近似,但是將delta值的直方圖建模為拉布拉斯函數(shù)并非是不合理的。在預(yù)測(cè)編碼器將會(huì)應(yīng)用的壓縮的方面,令人感興趣的是看到量化水平如何影響拉普拉斯函數(shù)的熵。如果這得以完成,則能夠顯示出,以規(guī)范的拉普拉斯概率密度函數(shù)開始,離散量化的拉普拉斯分布的熵Ε(σ,Q)由以下所給出:
^?σ>0) = -(I — e-.β?2) + ^.f—
[_]Z1" { ^ ~ ;
—g-e-t/2|0g2|f _/2 _ g-eS/2) j
[0051]其中σ是拉普拉斯分布的規(guī)模參數(shù)。
[0052]圖5示出了 Ε( σ,Q)相對(duì)Ε( σ,I)的圖形,其中步幅大小的值Q已經(jīng)從量化參數(shù)QP得以被確定,具有緊密近似HEVC標(biāo)準(zhǔn)中的Q和QP之間的關(guān)系的關(guān)系Q = e°_115525x QP,其中QP增大6涉及到步幅大小Q的加倍。因此,在該示例中,量化參數(shù)零對(duì)應(yīng)于步幅大小1,并且量化參數(shù)51對(duì)應(yīng)于約362的步幅大小。
[0053]圖5所示的曲線是參數(shù)圖形,即X值和y值都為依賴性變量,其中獨(dú)立變量為規(guī)模參數(shù)σ。標(biāo)記為502的曲線示出了模型針對(duì)QP = O所預(yù)測(cè)的熵。標(biāo)記為504的曲線示出了模型作為QP = O的熵的函數(shù)而針對(duì)QP= 10所預(yù)測(cè)的熵。標(biāo)記為506的曲線示出了模型作為QP = O的熵的函數(shù)而針對(duì)QP = 15所預(yù)測(cè)的熵。標(biāo)記為508的曲線示出了模型作為QP = O的熵的函數(shù)而針對(duì)QP = 20所預(yù)測(cè)的熵。標(biāo)記為510的曲線示出了模型作為QP=O的熵的函數(shù)而針對(duì)QP = 32所預(yù)測(cè)的熵。
[0054]觀察顯示,在HEVC編碼器作為編碼器所使用的量化水平(例如,量化參數(shù))的函數(shù)所生成的比特?cái)?shù)之間存在非線性關(guān)系。具有圖5中所示的分析模型中所表現(xiàn)出的量化參數(shù)QP的表現(xiàn)和變化的一般形式與具有在利用HEVC編碼器所編碼的圖像的實(shí)際比特計(jì)數(shù)中所觀察到的量化器參數(shù)QP的相對(duì)應(yīng)表現(xiàn)和變化非常相似。利用(HEVC編碼器以外的)其它類型的編碼器將會(huì)觀察到與量化器參數(shù)QP相同的表現(xiàn)和變化。即,圖5中所看到的一般表現(xiàn)模式(也就是非線性)是作為以上所描述的delta值的直方圖的離散量化結(jié)果的基本過程,而不是形成預(yù)測(cè)的確切方式。換言之,該證據(jù)的有效性在于,圖5中的曲線的總體變化并非是HEVC標(biāo)準(zhǔn)所特有的。
[0055]圖6示出了與圖5中所示相同的數(shù)據(jù),但是在圖6中,在繪圖之前取得兩條軸線上的值的對(duì)數(shù)。即,圖6同樣針對(duì)已經(jīng)利用關(guān)系Q = e°-115525x QP從量化參數(shù)QP確定了步幅大小的值Q的示例示出了 log(E(o,Q))相對(duì)log(E(o , I))的圖形,上述關(guān)系近似表示HEVC標(biāo)準(zhǔn)中Q和QP之間的關(guān)系。標(biāo)記為602的曲線示出了模型針對(duì)QP = O所預(yù)測(cè)的熵的對(duì)數(shù)的基準(zhǔn)線。標(biāo)記為604的曲線示出了模型作為QP = O的熵的對(duì)數(shù)函數(shù)而針對(duì)QP = 10所預(yù)測(cè)的熵的對(duì)數(shù)。標(biāo)記為606的曲線示出了模型作為QP = O的熵的對(duì)數(shù)的函數(shù)而針對(duì)QP=15所預(yù)測(cè)的熵的對(duì)數(shù)。標(biāo)記為608的曲線示出了模型作為QP = O的熵的對(duì)數(shù)的函數(shù)而針對(duì)QP = 20所預(yù)測(cè)的熵的對(duì)數(shù)。標(biāo)記為610的曲線示出了模型作為QP = O的熵的對(duì)數(shù)的函數(shù)而針對(duì)QP = 32所預(yù)測(cè)的熵的對(duì)數(shù)。從圖6能夠看出,盡管以上針對(duì)Ε( σ,Q)所給出的表達(dá)式的代數(shù)非精致性(inelegance),但是非線性的顯著部分是對(duì)數(shù)的,并且一旦這被去掉,隨量化水平的變化是近似線性的或者稍顯二次的。
[0056]為了合理近似,可能使用簡(jiǎn)單二次近似而將以上針對(duì)給定QP值處的熵(Ε( σ,Q))所給出的復(fù)雜表達(dá)式的對(duì)數(shù)與在QP = 0(Ε(σ ,1))的相同表達(dá)式的對(duì)數(shù)相關(guān)聯(lián),即:
[0057]y ^ Fa (Q) x2+FB (Q) X Fc (Q)
[0058]其中Y = 1g10(Ε( σ , Q))且 X = 1g10(E( σ,I)),并且 FA、Fb 和 Fc 是步幅大小 Q所給出的針對(duì)取決于量化水平的給定編碼器的量化等式的系數(shù)。該近似是完全分析且通用的。其獨(dú)立于任何具體的圖像壓縮算法。
[0059]可以針對(duì)根據(jù)以上所描述的模型而確定的圖像部分的熵與利用編碼器對(duì)該圖像部分進(jìn)行編碼而生成的比特?cái)?shù)的估計(jì)之間的關(guān)系進(jìn)行相對(duì)應(yīng)的近似。已經(jīng)針對(duì)HEVC編碼器的不同量化水平繪制了使用HEVC編碼器對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)相對(duì)由2x2模型所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的圖形。圖7示出了針對(duì)數(shù)據(jù)的最佳擬合的曲線(為了清楚圖7并未示出實(shí)際數(shù)據(jù)),其遵循例如具有形式y(tǒng)?A(QP)x2 + B(QP)x + C(QP)的量化等式的多項(xiàng)式等式,其中A、B和C是該量化等式的系數(shù),它們?nèi)Q于量化參數(shù)QP。實(shí)際數(shù)據(jù)表現(xiàn)出與圖7所示的最佳擬合的曲線的一些變化,但是實(shí)際數(shù)據(jù)的整體趨勢(shì)遵循該最佳擬合曲線。
[0060]標(biāo)記為702的曲線示出了作為2x2模型針對(duì)QP = O所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的函數(shù)而通過使用HEVC編碼器針對(duì)QP = O對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)的最佳擬合的曲線。最佳擬合曲線702具有等式y(tǒng) = A(QP = 0)x2 + B(QP = 0)x + C(QP = O)。標(biāo)記為704的曲線示出了作為2x2模型針對(duì)QP = O所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的函數(shù)而通過使用HEVC編碼器針對(duì)QP = 10對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)的最佳擬合的曲線。最佳擬合曲線704具有等式y(tǒng) = A(QP = 10)x2+ B(QP = 10)x+C(QP = 10)。標(biāo)記為706的曲線示出了作為2x2模型針對(duì)QP = O所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的函數(shù)而通過使用HEVC編碼器針對(duì)QP= 15對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)的最佳擬合的曲線。最佳擬合曲線706具有等式y(tǒng) = A(QP = 15)X2^-B(QP = 15)x+C(QP = 15)。標(biāo)記為708的曲線示出了作為2x2模型針對(duì)QP = O所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的函數(shù)而通過使用HEVC編碼器針對(duì)QP=20對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)的最佳擬合的曲線。最佳擬合曲線708具有等式y(tǒng) = A (QP = 20) X2^B (QP = 20)x + C(QP = 20)。標(biāo)記為710的曲線示出了作為2x2模型針對(duì)QP = O所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)的函數(shù)而通過使用HEVC編碼器針對(duì)QP = 32對(duì)圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的對(duì)數(shù)的最佳擬合的曲線。最佳擬合曲線710具有等式y(tǒng) = A(QP = 32)X2^B(QP = 32)x + C(QP = 32)。作為示例,針對(duì)特定圖像集合,已經(jīng)發(fā)現(xiàn)這樣的擬合來(lái)自基準(zhǔn)HEVC編碼器的數(shù)據(jù)的曲線的典型關(guān)聯(lián)值為大約0.9。
[0061]所觀察到的HEVC編碼器所生成的比特?cái)?shù)的對(duì)數(shù)與2x2模型所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)之間的關(guān)系(如圖7所示)表現(xiàn)出與以步幅大小Q所給出的量化水平所預(yù)測(cè)的熵的對(duì)數(shù)(log(E(o ,Q)))與以步幅大小Q= I所給出的量化水平所預(yù)測(cè)的熵之間(如圖6所示的)關(guān)系稍顯更強(qiáng)的二次屬性。然而,圖7所示的最佳擬合的曲線的關(guān)聯(lián)系數(shù)對(duì)于要作為有用近似的針對(duì)二次等式的擬合而言足夠高。對(duì)于不同編碼器而言,所觀察到的由HEVC編碼器所生成的比特?cái)?shù)與2x2模型所預(yù)測(cè)的比特?cái)?shù)之間的關(guān)系將有所不同。然而,由于(如圖6所示的)模型所預(yù)測(cè)的熵表現(xiàn)出相同形式的關(guān)系(即,能夠與兩次等式近似的關(guān)系),所以就存在執(zhí)行這樣的二次擬合的基礎(chǔ)(underlying ground)并且不同類型的編碼器將遵循相同的總體形式(即,能夠使用二次等式近似)的方面而言具有一定確信度。對(duì)于不同類型的編碼器,二次等式的系數(shù)將會(huì)不同,并且可以通過實(shí)驗(yàn)或觀察來(lái)確定。
[0062]圖8示出了將HEVC編碼器所生成的比特?cái)?shù)的對(duì)數(shù)與簡(jiǎn)單模型所預(yù)測(cè)的比特?cái)?shù)的對(duì)數(shù)相關(guān)聯(lián)的二次等式的系數(shù)“、8和0相對(duì)HEVC編碼器所使用的量化參數(shù)(QP)的圖形。標(biāo)記為802的最佳擬合曲線通過A的值進(jìn)行繪制。類似地,記為804的最佳擬合曲線通過B的值進(jìn)行繪制,并且記為806的最佳擬合曲線通過C的值進(jìn)行繪制。作為量化參數(shù)的函數(shù)的A、B和C的變化也能夠由擬合該數(shù)據(jù)的二次曲線所表示,并且在一個(gè)示例中已經(jīng)被發(fā)現(xiàn)具有好于0398的關(guān)聯(lián)系數(shù)。因此,對(duì)于A、B和C(802、804和806)中的每一個(gè)而言,擬合形式為I = ax2+ba+c的二次方程式,其中a,b和c是特定于編碼器類型的常數(shù)。具體地,系數(shù)A、B和C由以下所給出:
(A\ /? bA ca/QP2\
[0063]5=1? bB C3 QP(3)
\c} \clc bg C^/ \ I /
[0064]其中矩陣的常數(shù)(aA, bA, cA, aB, bB, cB, ac, bc和cc)通過觀察而得出并且特定于編碼器的類型(例如,特定于HEVC編碼器)。矩陣中常數(shù)的值可以存儲(chǔ)在查找表中,該查找表可以由圖像處理系統(tǒng)所訪問。這些常數(shù)的確定以及這些常數(shù)在查找表中的存儲(chǔ)可以離線執(zhí)行,即在使用步驟S210中的關(guān)系之前執(zhí)行。
[0065]將無(wú)損熵估計(jì)模型與二次擬合鄉(xiāng)合并為無(wú)損熵的估計(jì)相對(duì)在給定量化參數(shù)QP所給出的實(shí)際HEVC比特率的對(duì)數(shù)-對(duì)數(shù)圖形,利用HEVC編碼器H在量化參數(shù)QP對(duì)圖像部分
m進(jìn)行編碼而生成的每個(gè)像素的比特平均數(shù)的估計(jì)B里(QP)由以下關(guān)系所給出:
[0066]B^1(QP) = 他(4)
[0067]其中Sw =并且其中是如以上描述的例如使用簡(jiǎn)單2x2模型所確定的第
m個(gè)圖像部分的熵,并且其中Ω是每個(gè)圖像部分的像素?cái)?shù)量。例如,圖像部分可以包括圖像的120 (即,15x8)行像素,從而Ω = 120L,其中L是圖像中的一行中的像素?cái)?shù)目。
[0068]通過對(duì)圖像中的每個(gè)圖像部分進(jìn)行編碼而生成的比特?cái)?shù)可以被相加在一起以提供利用HEVC編碼器在量化參數(shù)QP對(duì)整個(gè)圖像進(jìn)行編碼所生成的比特?cái)?shù)的估計(jì)ImageBitsa(QP),而使得
[0069]ImageBitsa {QP') =(5)
[0070]其中M是圖像中的圖像部分的數(shù)目。雖然在以上描述中,(<?Ρ):和關(guān)于比特?cái)?shù)被給出,但是它們可以另外關(guān)于比特率被給出。
[0071]因此,能夠在步驟S210中使用該關(guān)系,能夠針對(duì)編碼器類型而獲得該等式的系數(shù)。例如,可以訪問查找表以針對(duì)編碼器模塊122所使用的編碼器類型(例如,HEVC編碼器)確定之前已經(jīng)(例如,通過觀察)確定的常數(shù)的矩陣。該常數(shù)矩陣可以隨等式(3)和等式(4)使用以提供之間的關(guān)系。注意到,該關(guān)系是編碼器所使用的量化水平(例如,量化參數(shù))的函數(shù)。
[0072]作為示例,在步驟S210中,可以針對(duì)允許被編碼器所使用的所有量化參數(shù)值(例如,根據(jù)HEVC標(biāo)準(zhǔn),允許52個(gè)量化參數(shù)值)確定使用HEVC編碼器對(duì)圖像的圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的估計(jì)(ImageBitSH(QP))。在其它示例中,可以針對(duì)所有允許量化參數(shù)值的子集,例如針對(duì)所允許量化參數(shù)值的一半,確定使用HEVC編碼器對(duì)圖像的圖像部分進(jìn)行編碼所生成的比特?cái)?shù)的估計(jì)(ImageBitSH(QP))。所允許量化值的子集可以基于其它信息來(lái)確定。例如,如果圖像是視頻序列的幀,并且針對(duì)視頻序列之前的幀所選擇的量化參數(shù)是已知的(例如,為20),則針對(duì)其確定ImageBitslQP)的允許量化參數(shù)值的子集可以在之前中貞的量化參數(shù)周圍進(jìn)行分組(例如,在包括所有從QP = 10到QP = 30的量化參數(shù)值的群組)。步驟S210由圖像預(yù)處理塊106中的比特估計(jì)模塊116所執(zhí)行。
[0073]在步驟S212,量化水平選擇模塊118選擇供編碼模塊122用來(lái)對(duì)圖像進(jìn)行編碼的量化水平(例如,量化參數(shù))之一。量化水平選擇模塊118基于所編碼圖像的目標(biāo)比特?cái)?shù)(“目標(biāo)比特預(yù)算”)并且基于所估計(jì)的通過使用如步驟S210中所確定的不同量化水平對(duì)圖像進(jìn)行編碼將會(huì)生成的比特?cái)?shù)的指示來(lái)選擇量化水平。目標(biāo)比特?cái)?shù)可以被指示為比特?cái)?shù)或者比特率。對(duì)于給定幀率,比特率可以被認(rèn)為等同于每幀的比特?cái)?shù)。就“目標(biāo)”比特?cái)?shù)是速率控制器120所針對(duì)的所編碼圖像的比特?cái)?shù)的意義而言,接收所編碼圖像的緩沖器因此并不飽和或者被完全耗盡。例如,可以選擇通過對(duì)圖像進(jìn)行編碼將會(huì)生成的比特?cái)?shù)的估計(jì)針對(duì)其與目標(biāo)目標(biāo)比特?cái)?shù)最為接近的量化水平。這可以被表示為:
[0074]selected_QP = argminQP {| ImageBitsa (QP) -Target bit budget |}
[0075]在步驟S214中,將所選擇的量化水平作為元數(shù)據(jù)從圖像預(yù)處理塊106發(fā)送至速率控制器120。隨后,在步驟S216,速率控制器120使用所選擇的量化水平來(lái)確定要被編碼器模塊122用來(lái)對(duì)圖像進(jìn)行編碼的量化水平。速率控制器120可以簡(jiǎn)單地通過從圖像預(yù)處理器塊106接收所選擇量化水平來(lái)“確定”量化水平,并且在這種情況下,速率控制器120可以將步驟S212中所選擇的量化參數(shù)的指示發(fā)送至編碼器模塊122,由此編碼器模塊122隨后使用該量化參數(shù)對(duì)圖像進(jìn)行編碼。速率控制器120在確定要由編碼器122所使用的量化參數(shù)時(shí)可以考慮其它因素以及(由量化水平選擇模塊118所選擇的)所選擇的量化參數(shù)。例如,在圖像是視頻序列的幀的情況下,根據(jù)其對(duì)視頻序列的一個(gè)或多個(gè)之前幀進(jìn)行編碼的量化參數(shù)的變化可以是速率控制器120在確定用于編碼當(dāng)前圖像的量化參數(shù)時(shí)所要考慮到因素??赡芷谕苊庥脕?lái)對(duì)視頻序列的不同幀進(jìn)行編碼的量化參數(shù)的大幅變化。編碼器模塊122從存儲(chǔ)器110接收未編碼圖像。該未編碼圖像作為步驟S204的一部分被存儲(chǔ)在存儲(chǔ)器110中。編碼器模塊120使用由速率控制器120所指示的量化參數(shù)并且根據(jù)被配置為實(shí)施的編碼標(biāo)準(zhǔn)(例如,根據(jù)HEVC編碼標(biāo)準(zhǔn))對(duì)圖像進(jìn)行編碼以因此生成編碼圖像。編碼器模塊122所實(shí)施的編碼處理的細(xì)節(jié)超出了本描述的范圍并且對(duì)于本領(lǐng)域技術(shù)人員而言是已知的,并且因此并不在這里進(jìn)行討論。
[0076]編碼圖像可以(例如,經(jīng)由編碼器處理塊的緩沖器,圖1中未示出)被發(fā)送至存儲(chǔ)器110,其中量化參數(shù)由速率控制器120所控制而使得編碼器能夠以經(jīng)管控的(例如,恒定或近似恒定的)比特流向存儲(chǔ)器110輸出編碼圖像數(shù)據(jù)。在其它示例中,編碼圖像可以從編碼器處理塊108發(fā)送至存儲(chǔ)器110以外的地方。例如,編碼圖像可以從編碼器處理塊108發(fā)送至解碼器或打包器,它們并未在圖1中示出。編碼比特率的指示(例如,編碼圖像中的比特?cái)?shù))作為反饋從編碼器模塊122提供至速率控制器120。速率控制器120使用具有目標(biāo)比特預(yù)算的反饋以及從圖像預(yù)處理塊106所接收的元數(shù)據(jù)自適應(yīng)地對(duì)編碼器模塊122用來(lái)對(duì)圖像進(jìn)行編碼的量化參數(shù)進(jìn)行控制。如本領(lǐng)域已知的,速率控制器120能夠在編碼器模塊122對(duì)圖像進(jìn)行編碼的同時(shí)使用來(lái)自編碼器模塊122的反饋對(duì)量化參數(shù)進(jìn)行調(diào)適。以這種方式,編碼器模塊122所使用的量化水平被速率控制器120在編碼處理期間進(jìn)行精細(xì)調(diào)諧。雖然如以上所描述那樣選擇的量化水平接近于編碼器用于對(duì)圖像進(jìn)行編碼的最優(yōu)量化水平,但是其可能并非確切地等于編碼器用于根據(jù)目標(biāo)比特預(yù)算對(duì)圖像進(jìn)行編碼的最優(yōu)量化水平。作為示例,對(duì)于HEVC編碼器而言,觀察指出這里所描述的模型在量化參數(shù)范圍的下半上以大約±1的精度預(yù)測(cè)最優(yōu)量化參數(shù),而該精度在量化參數(shù)范圍的上半上大約為±2.5??梢砸馔獾乜吹?,該預(yù)測(cè)在這樣寬泛為的量化水平上以及對(duì)于簡(jiǎn)單模型如此之好。如能夠從以上描述所意識(shí)到的,所選擇的量化水平略微的不精確是由于該選擇是基于一些近似和簡(jiǎn)化。
[0077]提供接近于編碼器所使用的最優(yōu)量化水平的量化水平是有用的,并且意味著速率控制器120在基于反饋對(duì)編碼器模塊122所使用的量化參數(shù)進(jìn)行調(diào)適時(shí)會(huì)更為放松(因?yàn)樵剂炕瘏?shù)接近于最優(yōu)量化參數(shù))。即,由于量化水平已經(jīng)基于整個(gè)圖像進(jìn)行了估計(jì),速率控制器120可以在量化水平似乎并不正確時(shí)基于對(duì)圖像的第一部分進(jìn)行編碼而更為緩慢地作出反應(yīng),并且在這種情況下,圖像的后續(xù)部分可能具有與圖像的第一部分相比不同的細(xì)節(jié)水平,這就是為何量化水平僅基于對(duì)圖像的第一部分進(jìn)行的編碼而看上去似乎并不正確的原因。因此,速率控制器120針對(duì)圖像內(nèi)的細(xì)節(jié)的不均勻分布將沒有這樣的強(qiáng)烈逆向反應(yīng)。
[0078]注意到,在某些示例中,例如可以針對(duì)圖像的不同部分由量化水平選擇模塊118選擇多于一種的量化水平,并且在速率控制器120所接收的元數(shù)據(jù)中進(jìn)行指示,而使得控制器120將了解到量化參數(shù)的變化對(duì)于編碼圖像的不同部分可能是有利的。
[0079]提供了一種圖像處理系統(tǒng),其執(zhí)行圖像的預(yù)分析以根據(jù)目標(biāo)比特預(yù)算提供要用來(lái)對(duì)圖像進(jìn)行編碼的量化水平的估計(jì),其中可以基于對(duì)相同圖像的分析(即,并非基于其它圖像)針對(duì)1-frame確定量化水平的估計(jì),并且其中在圖像還沒有被編碼器模塊122所編碼的情況下確定量化水平(在要對(duì)圖像進(jìn)行實(shí)時(shí)編碼的情況下,經(jīng)常沒有足夠時(shí)間和/或處理功率可供圖像處理器104用來(lái)對(duì)圖像進(jìn)行多于一次編碼)。因此,該圖像處理系統(tǒng)允許圖像例如在它們被圖像傳感器102捕獲時(shí)被實(shí)時(shí)編碼,并且向速率控制器120提供信息以使得編碼器所使用的量化水平至少接近于用來(lái)根據(jù)目標(biāo)比特預(yù)算對(duì)圖像進(jìn)行編碼的最優(yōu)量化水平(例如,量化參數(shù)處于用于對(duì)圖像進(jìn)行編碼的最優(yōu)量化參數(shù)的大約±2之內(nèi))。量化水平的估計(jì)使用相對(duì)簡(jiǎn)單的方法進(jìn)行確定(其能夠?qū)崟r(shí)地實(shí)施而并不會(huì)對(duì)圖像編碼的處理功率或速度造成明顯的不利影響)。如本領(lǐng)域已知的,所估計(jì)的量化參數(shù)中的任何略微的不準(zhǔn)確都能夠由速率控制器120在編碼器模塊122對(duì)圖像進(jìn)行編碼時(shí)進(jìn)行調(diào)適。
[0080]在以上所描述的示例中并且如圖1所示,圖像數(shù)據(jù)由圖像傳感器102捕獲。圖像數(shù)據(jù)被送至圖像預(yù)處理塊106。圖像預(yù)處理塊106使用圖像處理模塊112對(duì)圖像數(shù)據(jù)進(jìn)行處理以提供圖像。圖像傳感器與預(yù)處理塊106相關(guān)聯(lián)以便在圖像處理模塊112中對(duì)圖像進(jìn)行處理。在這里所描述的示例中,用于選擇量化水平的圖像分析可以在相同的預(yù)處理塊106中執(zhí)行,因?yàn)檫@提供了對(duì)圖像數(shù)據(jù)進(jìn)行預(yù)處理的有用機(jī)會(huì)。圖像預(yù)處理塊106包括供圖像處理模塊112所使用的諸如行存儲(chǔ)的結(jié)構(gòu),并且這些相同結(jié)構(gòu)能夠被用于如這里所描述的圖像的預(yù)處理,而無(wú)需增加另外的預(yù)處理塊。圖像預(yù)處理塊106(特別是圖像分析模塊114)對(duì)圖像的一個(gè)或多個(gè)圖像部分中的像素進(jìn)行分析以估計(jì)(多個(gè))圖像部分的(多個(gè))復(fù)雜度指示。(多個(gè))復(fù)雜度指示可以是熵,其可以如上所述使用簡(jiǎn)單的2x2模型來(lái)估計(jì)。圖像預(yù)處理塊106使用(多個(gè))圖像部分的(多個(gè))復(fù)雜度指示來(lái)確定從圖像預(yù)處理塊106輸出到編碼器處理塊108的元數(shù)據(jù)。編碼器處理塊108 (特別是速率控制器120)使用從圖像預(yù)處理塊106所接收的元數(shù)據(jù)來(lái)確定要在對(duì)圖像進(jìn)行編碼時(shí)使用的量化水平(例如,量化參數(shù)),其隨后被送至編碼器模塊122。編碼器模塊122使用速率控制器120所確定的量化水平對(duì)圖像進(jìn)行編碼。以這種方式,圖像數(shù)據(jù)由圖像傳感器102捕獲,由圖像預(yù)處理塊106進(jìn)行處理以提供存儲(chǔ)在存儲(chǔ)器110中的圖像并且確定與圖像復(fù)雜度相關(guān)的元數(shù)據(jù),后者隨后被送至編碼器處理塊108并且被速率控制器用來(lái)確定編碼器模塊122用于對(duì)圖像進(jìn)行編碼的量化水平。該處理能夠在沒有來(lái)自發(fā)起圖像數(shù)據(jù)捕獲的主機(jī)應(yīng)用的交互的情況下得以進(jìn)行。這導(dǎo)致了更快的圖像處理,因?yàn)橹鳈C(jī)應(yīng)用無(wú)需在圖像處理期間讀取、寫入或處理圖像數(shù)據(jù)。使用圖像預(yù)處理塊106對(duì)圖像進(jìn)行分析是便利的,因?yàn)閳D像預(yù)處理塊106被用來(lái)處理圖像傳感器102所捕獲的圖像數(shù)據(jù),并且因此其將對(duì)圖像進(jìn)行訪問,它隨后能夠?qū)υ搱D像進(jìn)行分析以確定元數(shù)據(jù)而不要求在編碼器處理塊108對(duì)圖像進(jìn)行編碼之前專門為了分析圖像的目的單另從存儲(chǔ)器110進(jìn)行圖像的讀取操作。
[0081]元數(shù)據(jù)并不是圖像的一般版本,例如圖像的像素值的經(jīng)處理版本。相反,元數(shù)據(jù)包括基于圖像的分析而與圖像相關(guān)的信息,該信息能夠被用作可以如何對(duì)圖像進(jìn)行編碼的指示。如上所述,元數(shù)據(jù)可以是已經(jīng)基于圖像的分析并且基于圖像的目標(biāo)比特預(yù)算而選擇的量化水平。在這種情況下,對(duì)于速率控制器120而言,使用所選擇的量化水平向編碼器模塊122提供在對(duì)圖像進(jìn)行編碼時(shí)使用的量化參數(shù)的指示是簡(jiǎn)單的。
[0082]在其它實(shí)施方式中,元數(shù)據(jù)可以是從圖像分析模塊114所輸出的(多個(gè))圖像部分、分區(qū)或塊的復(fù)雜度(例如,熵)的(多個(gè))指示。在這種情況下,比特估計(jì)模塊116和量化水平選擇模塊118可以在編碼器處理塊108而不是圖像預(yù)處理塊106中實(shí)施。因此,編碼器處理塊108可以使用元數(shù)據(jù)(例如,(多個(gè))圖像部分的(多個(gè))熵)而針對(duì)多個(gè)候選量化水平中的每一個(gè)估計(jì)通過使用相應(yīng)候選量化水平對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼將會(huì)生成的比特?cái)?shù)的指示,并且隨后基于目標(biāo)比特?cái)?shù)以及基于所估計(jì)的過使用相應(yīng)候選量化水平對(duì)圖像中的一個(gè)或多個(gè)圖像部分進(jìn)行編碼將會(huì)生成的比特?cái)?shù)的指示選擇多個(gè)候選量化水平之一。如上所述的示例,所選擇的量化水平隨后被速率控制器用來(lái)控制編碼器模塊122在對(duì)圖像進(jìn)行編碼時(shí)所使用的量化參數(shù)。在其它實(shí)施方式中,圖像分析模塊114、比特估計(jì)模塊116和量化水平選擇模塊118的所有功能都能夠在編碼器處理塊108中實(shí)施。
[0083]此外,在一些實(shí)施方式中,圖像預(yù)處理塊106可以不包括圖像處理模塊112。圖像預(yù)處理塊106例如從存儲(chǔ)器110接收?qǐng)D像,其中執(zhí)不同處理塊或模塊之前已經(jīng)將圖像存儲(chǔ)在存儲(chǔ)器110中。圖像處理器104可以對(duì)包括多個(gè)像素的任意圖像進(jìn)行操作以因此分析該圖像從而估計(jì)該圖像的復(fù)雜度并且因此基于所估計(jì)的圖像復(fù)雜度并且基于所編碼圖像的目標(biāo)比特?cái)?shù)選擇適當(dāng)量化水平,并且根據(jù)所選擇的量化水平對(duì)圖像進(jìn)行編碼。圖像處理模塊112可能并不包括在圖像處理器104中并且圖像預(yù)處理塊106可能并不從圖像傳感器接收數(shù)據(jù)。因此,在一些示例中,步驟S202和步驟S204被在圖像預(yù)處理塊106例如從存儲(chǔ)器110或者從其它一些處理塊接收?qǐng)D像的步驟所替代。S卩,以上所描述的示例關(guān)于圖像傳感器102所捕獲的圖像進(jìn)行描述,但是這里所描述的方法能夠用于任意適當(dāng)圖像,而無(wú)論該圖像如何被捕獲或生成。即,這里所描述的方法能夠隨任意適當(dāng)類型的圖像使用。例如,該方法能夠隨計(jì)算機(jī)所生成的由圖形處理單元(GPU)所呈現(xiàn)的圖像使用,或者隨作為設(shè)備顯示器截屏的圖像使用,或者隨從存儲(chǔ)器所獲取的圖像使用。在一些示例中,圖像可以是不同類型的圖像的組合,諸如圖像傳感器所捕獲的圖像與計(jì)算機(jī)生成的圖像的組合。計(jì)算機(jī)生成的圖像可以示出任意適當(dāng)圖像,諸如圖形用戶界面或者用于在計(jì)算機(jī)游戲中使用的3D畫面。用于利用GPU呈現(xiàn)計(jì)算機(jī)所生成的圖像的方法是本領(lǐng)域已知的并且因此并不在此詳細(xì)描述。針對(duì)GPU所生成的計(jì)算機(jī)生成圖像使用這里所描述的方法以便因此選擇供編碼器在對(duì)計(jì)算機(jī)所生成圖像進(jìn)行編碼時(shí)使用的量化水平可以特別有用,因?yàn)樵搱D像可能被要求實(shí)時(shí)地生成、編碼和傳送,例如用于交互使用。例如,圖像或圖像序列可以從一個(gè)設(shè)備傳送至另一個(gè)設(shè)備,諸如從一臺(tái)計(jì)算機(jī)傳送至另一臺(tái)計(jì)算機(jī),或者從一臺(tái)計(jì)算機(jī)傳送至諸如顯示器的外圍設(shè)備。在通過諸如計(jì)算機(jī)網(wǎng)絡(luò)或無(wú)線互聯(lián)的容量有限的信道進(jìn)行傳輸時(shí)對(duì)圖像進(jìn)行編碼是有利的。
[0084]此外,針對(duì)顯示器的截屏使用這里所描述的方法可能特別有用,因?yàn)榻仄量赡鼙粚?shí)時(shí)使用。截屏可以是表示在單個(gè)時(shí)刻顯示在顯示器上的圖像的單幅圖像。此外,可以使用多個(gè)截屏來(lái)提供顯示器上在一段時(shí)間內(nèi)所顯示的圖像序列的實(shí)時(shí)表示。截屏可以在通信會(huì)話(例如,會(huì)議呼叫)中從一個(gè)設(shè)備傳送至另一設(shè)備(例如,通過互聯(lián)網(wǎng)),由此促成屏幕共享。例如,兩個(gè)設(shè)備之間的截屏序列傳輸可以允許例如在視頻會(huì)議中進(jìn)行實(shí)時(shí)桌面共享,而使得該視頻會(huì)議的所有參與者都能夠在通信會(huì)話實(shí)時(shí)觀看到一個(gè)參與者的屏幕內(nèi)容。
[0085]在GPU所呈現(xiàn)的圖像示例中,GPU可以將圖像呈現(xiàn)為多個(gè)瓦片。瓦片是矩形(包括正方形)像素分區(qū),其大小通常為16x16或32x32像素的量級(jí)。瓦片可以以任意順序進(jìn)行呈現(xiàn),并且所呈現(xiàn)的像素?cái)?shù)據(jù)可以被收集在幀緩沖存儲(chǔ)器中而使得其能夠以與所呈現(xiàn)不同的順序進(jìn)行編碼。為了避免需要為了分析而重新讀取像素?cái)?shù)據(jù),圖像分析塊114的各部分可以被集成到GPU中。例如,如果要針對(duì)其確定熵的圖像分區(qū)的大小被選擇為等于瓦片大小,則GPU可以在將瓦片的像素?cái)?shù)據(jù)寫入幀緩沖器之前計(jì)算該瓦片的直方圖。備選地,針對(duì)其確定熵的圖像分區(qū)可能包括多個(gè)瓦片,在這種情況下,可以在每個(gè)瓦片被GPU所呈現(xiàn)時(shí)從其瓦片的直方圖累加得到該圖像分區(qū)的直方圖。隨后,可以從該直方圖計(jì)算針對(duì)圖像部分內(nèi)的圖像分區(qū)的熵測(cè)量,并且如以上所描述地進(jìn)行求和以估計(jì)對(duì)該圖像部分進(jìn)行編碼所需的比特?cái)?shù),其中圖像部分的大小和形狀適用于圖像編碼處理。熵測(cè)量的計(jì)算以及求和也可以使用GPU來(lái)執(zhí)行。
[0086]在以上所描述的示例中,圖像從圖像預(yù)處理塊106發(fā)送至存儲(chǔ)器110并且隨后被編碼器處理塊108從存儲(chǔ)器110讀取。在其它示例中,圖像例如可以在不經(jīng)由存儲(chǔ)器110的情況下從圖像預(yù)處理塊106發(fā)送至編碼器處理塊108。
[0087]以上所描述的示例關(guān)于內(nèi)在編碼圖像進(jìn)行描述,其中在不參考其它圖像(例如,視頻序列的其它幀)的情況下對(duì)圖像進(jìn)行編碼。類似原則應(yīng)用于對(duì)圖像進(jìn)行交互編碼,其中參考其它圖像(例如,視頻序列的其它幀)的情況下對(duì)圖像進(jìn)行編碼。經(jīng)交互(或“非內(nèi)在”)編碼的視頻序列的幀例如可以是:(i)能夠參考來(lái)自之前幀的數(shù)據(jù)并且比1-frame壓縮更多的P-frame,或者(ii)能夠參考之前和后續(xù)幀以得到最高數(shù)據(jù)壓縮量的B-frame。所預(yù)測(cè)的通過將圖像編碼為P-frame或B-frame而生成的比特?cái)?shù)將針對(duì)內(nèi)在巾貞(“1-frame”)所預(yù)測(cè)的數(shù)量。然而,與針對(duì)內(nèi)在幀的預(yù)測(cè)相比,預(yù)測(cè)在編碼器非內(nèi)在幀時(shí)將生成的比特?cái)?shù)更為復(fù)雜。這是因?yàn)獒槍?duì)非內(nèi)在幀的編碼處理更為復(fù)雜并且例如可以使用運(yùn)動(dòng)矢量。在預(yù)處理階段難以廉價(jià)地完全考慮運(yùn)動(dòng)矢量(例如,在圖像預(yù)處理塊106中),即不適用過多處理功率或時(shí)間??赡艿那闆r是,預(yù)處理的好處隨著執(zhí)行該預(yù)處理所需的處理功率或時(shí)間的增加而減小。以下對(duì)該方法可以如何針對(duì)隨非內(nèi)在幀使用而進(jìn)行廉價(jià)調(diào)適的兩個(gè)示例進(jìn)行描述。作為第一示例,通過將所預(yù)測(cè)的比特?cái)?shù)除以大于I的因數(shù)(或者乘以處于O和I之間的相對(duì)應(yīng)倒數(shù)因數(shù)),以上所描述的用于預(yù)測(cè)通過內(nèi)在編碼對(duì)圖像進(jìn)行編碼而生成的比特?cái)?shù)的簡(jiǎn)單模型可以被調(diào)適以便在預(yù)測(cè)通過交互編碼對(duì)圖像進(jìn)行編碼而生成的比特?cái)?shù)時(shí)使用。該因數(shù)能夠基于觀察進(jìn)行確定并且針對(duì)不同類型的編碼器可以有所不同,并且針對(duì)P-frame和B-frame可以有所不同(例如,P-frame的因數(shù)可以小于B-frame的因數(shù),因?yàn)樗幋a的B-frame通常比所編碼的P-frame具有更少的比特)。作為第二示例,能夠以基于其對(duì)內(nèi)在幀進(jìn)行編碼的其它幀中相對(duì)應(yīng)像素的值為基礎(chǔ)而針對(duì)交互幀中的像素確定不同值(假設(shè)所有運(yùn)動(dòng)矢量為零)。這些差異值隨后能夠以相似的方式被用于以上所描述的被繪制為直方圖delta值,并且隨后被用來(lái)確定圖像分區(qū)、圖像部分和/或整個(gè)圖像的熵。根據(jù)圖像中的內(nèi)容,第一示例可以比第二示例更好地執(zhí)行(即,更準(zhǔn)確地估計(jì)通過對(duì)交互幀進(jìn)行編碼所生成的比特?cái)?shù))。
[0088]通常,以上所描述的任意功能、方法、技術(shù)或組件能夠使用軟件、固件、硬件(例如,固定邏輯電路)以模塊來(lái)實(shí)施,或者以這些實(shí)施方式的任意組合來(lái)實(shí)施。術(shù)語(yǔ)“模塊”、“功能”、“組件”、“塊”和“邏輯”在這里被用來(lái)總體上表示軟件、固件、硬件或者其任意組合。
[0089]在軟件實(shí)施方式的情況下,模塊、功能、組件或邏輯表示程序代碼,后者在處理器(例如,一個(gè)或多個(gè)CPU)上執(zhí)行時(shí)實(shí)施所指定的任務(wù)。在一個(gè)不例中,所描述的方法可以由利用存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的機(jī)器可讀形式的軟件所配置的計(jì)算機(jī)來(lái)執(zhí)行。一種這樣的計(jì)算機(jī)可讀介質(zhì)的配置時(shí)信號(hào)承載介質(zhì),并且因此被配置為諸如經(jīng)由網(wǎng)絡(luò)向計(jì)算設(shè)備傳送指令(例如,作為載波)。計(jì)算機(jī)可讀介質(zhì)還可以被配置為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且因此并不是信號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括隨機(jī)訪問存儲(chǔ)器(RAM)。只讀存儲(chǔ)器(ROM)、光盤、閃存、硬盤存儲(chǔ)器,以及可以使用磁、光或其它技術(shù)來(lái)存儲(chǔ)指令或其它數(shù)據(jù)并且能夠被機(jī)器所訪問的其它存儲(chǔ)器設(shè)備。
[0090]軟件可以為包括用于對(duì)計(jì)算機(jī)進(jìn)行配置以執(zhí)行所描述方法的組成部分的計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序的形式,或者為包括適于在該程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行這里所描述的任意方法的所有步驟的計(jì)算機(jī)程序代碼器件的計(jì)算機(jī)程序的形式,并且其中該計(jì)算機(jī)程序可以記錄在計(jì)算機(jī)可讀介質(zhì)上。這里所描述的技術(shù)的特征是獨(dú)立于平臺(tái)的,這意味著該技術(shù)可以在具有各種處理器的各種計(jì)算平臺(tái)上實(shí)施。
[0091]本領(lǐng)域技術(shù)人員還容易理解,全部或部分的功能、技術(shù)或方法可以由專用電路、應(yīng)用特定集成電路、可編程邏輯陣列、現(xiàn)場(chǎng)可編程門陣列等來(lái)執(zhí)行。例如,模塊、功能、組件或邏輯可以包括電路形式的硬件。這樣的電路可以包括晶體管和/或可在制造過程中獲得的其它硬件元件。這樣的晶體管和/或其它元件可以被用來(lái)形成電路或結(jié)構(gòu),作為示例,后者實(shí)施和/或包含諸如寄存器、觸發(fā)電路或鎖存器的存儲(chǔ)器,諸如布爾運(yùn)算的邏輯運(yùn)算器,諸如加法器、乘法器或移位器的數(shù)學(xué)運(yùn)算器以及互連。這樣的元件可以作為定制電路或標(biāo)準(zhǔn)單元庫(kù)、宏或者其它抽象等級(jí)而提供。這樣的元件可以以具體布置進(jìn)行互連。模塊、功能、組件或邏輯可以包括作為固定功能的電路以及能夠進(jìn)行編程以執(zhí)行一種或多種功能的電路;這樣的編程可以從固件或軟件更新或者控制機(jī)制所提供。在一個(gè)示例中,硬件邏輯具有實(shí)施固定功能操作、狀態(tài)機(jī)或處理的電路。
[0092]還旨在包含“描述”或定義實(shí)施以上所描述的模塊、功能、組件或邏輯的硬件配置的軟件,諸如被用于設(shè)計(jì)集成電路或者用于配置可編程芯片以執(zhí)行所需功能的HDL(硬件描述語(yǔ)言)軟件。即,可以提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有編碼于其上的計(jì)算機(jī)可讀程序代碼以便生成被配置為執(zhí)行這里所描述的任意方法或者生成包括這里所描述的任意裝置的處理模塊。
[0093]術(shù)語(yǔ)“處理器”和“計(jì)算機(jī)”在這里被用來(lái)指代具有處理能力而使得其能夠執(zhí)行指令的任意設(shè)備或其一部分,或者能夠執(zhí)行全部或部分功能或方法的專用電路或其任意組口 ο
[0094]雖然已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言對(duì)主題進(jìn)行了描述,但是應(yīng)當(dāng)理解,所附權(quán)利要求書中所限定的主題并不局限于以上所描述的具體特征或動(dòng)作。相反,以上所描述的具體特征和動(dòng)作作為實(shí)施權(quán)利要求的示例形式而公開。應(yīng)當(dāng)理解,以上所描述的益處和優(yōu)勢(shì)可以涉及一個(gè)示例或者可以涉及若干示例。
[0095]本領(lǐng)域技術(shù)人員容易理解,這里所給出的任意范圍或值可以進(jìn)行擴(kuò)展或改變而并不失所尋求的效果,這里所描述方法的步驟可以以任意適當(dāng)順序執(zhí)行,或者在適當(dāng)情況下同時(shí)執(zhí)行。以上所描述的任意示例的各方面可以與所描述的任意其它示例的各方面進(jìn)行組合以形成另外的示例而并不失所尋求的效果。
【權(quán)利要求】
1.一種用于根據(jù)目標(biāo)比特?cái)?shù)確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所使用的量化水平的方法,其中所述圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,所述方法包括: 針對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析所述圖像部分中的所述像素以估計(jì)所述圖像部分的復(fù)雜度指示; 針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用所述一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的所述復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過利用使用相應(yīng)候選量化水平的編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示,其中所述關(guān)系是所述編碼器所使用的所述量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過利用所述編碼器對(duì)所述圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)相關(guān)時(shí)使用;以及 基于所述目標(biāo)比特?cái)?shù)以及基于所估計(jì)的通過利用使用所述相應(yīng)候選量化水平的所述編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示來(lái)選擇多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由所述編碼器在對(duì)所述圖像進(jìn)行編碼時(shí)使用。
2.根據(jù)權(quán)利要求1所述的方法,其中圖像部分的所述復(fù)雜度指示是所述圖像部分的熵。
3.根據(jù)權(quán)利要求2所述的方法,其中對(duì)所述圖像部分中的所述像素進(jìn)行所述分析包括: 針對(duì)所述圖像部分中的每個(gè)所述像素,確定所述像素的值與針對(duì)所述像素從包括一個(gè)或多個(gè)相鄰像素的像素群組的值所得出的預(yù)測(cè)之間的差值;以及 使用針對(duì)圖像分區(qū)內(nèi)的像素所確定的多個(gè)所述差值來(lái)確定所述圖像分區(qū)的熵。
4.根據(jù)權(quán)利要求3所述的方法,其中從其得出針對(duì)特定像素的預(yù)測(cè)的像素群組進(jìn)一步包括所述特定像素。
5.根據(jù)權(quán)利要求3或4所述的方法,其中所述圖像分區(qū)包括所述圖像內(nèi)的一個(gè)或多個(gè)像素行,其中所述圖像分區(qū)中像素行的數(shù)目至少等于所述像素群組的高度。
6.根據(jù)之前任一項(xiàng)權(quán)利要求所述的方法,其中所述關(guān)系是作為所述編碼器所使用的所述量化水平以及圖像部分的所述復(fù)雜度指示二者的函數(shù)而給出通過利用所述編碼器對(duì)所述圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)的等式。
7.根據(jù)之前任一項(xiàng)權(quán)利要求所述的方法,其中比特?cái)?shù)的所述指示和目標(biāo)比特?cái)?shù)根據(jù)(i)比特?cái)?shù)或(ii)比特率被給出。
8.根據(jù)之前任一項(xiàng)權(quán)利要求所述的方法,其中所述多個(gè)候選量化水平包括:(i)所述編碼器被配置為能夠用來(lái)對(duì)所述圖像進(jìn)行編碼的所有所述量化水平,或者(ii)所述編碼器被配置為能夠用來(lái)對(duì)所述圖像進(jìn)行編碼的所有所述量化水平的子集。
9.一種處理塊,其被配置為根據(jù)目標(biāo)比特?cái)?shù)確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,其中所述圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,其中所述處理塊被配置為: 針對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析所述圖像部分中的所述像素以估計(jì)所述圖像部分的復(fù)雜度指示; 針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用所述一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的所述復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過利用使用相應(yīng)候選量化水平的所述編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示,其中所述關(guān)系是所述編碼器所使用的量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過利用所述編碼器對(duì)所述圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)相關(guān)時(shí)使用;以及 基于所述目標(biāo)比特?cái)?shù)以及基于所估計(jì)的通過利用使用所述相應(yīng)候選量化水平的所述編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示來(lái)選擇多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由所述編碼器在對(duì)所述圖像進(jìn)行編碼時(shí)使用。
10.根據(jù)權(quán)利要求9所述的處理塊,其中圖像部分的所述復(fù)雜度指示是所述圖像部分的熵,并且其中所述處理塊被配置為通過以下操作來(lái)分析所述圖像部分中的所述像素以估計(jì)所述圖像部分的所述復(fù)雜度指示: 針對(duì)所述圖像部分中的每個(gè)所述像素,確定所述像素的值與針對(duì)所述像素從包括一個(gè)或多個(gè)相鄰像素的像素群組的數(shù)所得出的預(yù)測(cè)之間的差值;以及 使用針對(duì)圖像分區(qū)內(nèi)的像素所確定的多個(gè)所述差值來(lái)確定所述圖像分區(qū)的熵。
11.根據(jù)權(quán)利要求9或10所述的處理塊,其中所述一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分包括多個(gè)圖像分區(qū),并且其中所述處理塊被配置為通過對(duì)圖像部分內(nèi)的所述圖像分區(qū)的熵進(jìn)行求和而估計(jì)所述圖像部分的熵。
12.根據(jù)權(quán)利要求9至11中任一項(xiàng)所述的處理塊,其中所述關(guān)系是作為所述編碼器所使用的所述量化水平以及圖像部分的所述復(fù)雜度指示二者的函數(shù)而給出通過利用所述編碼器對(duì)所述圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)的等式。
13.根據(jù)權(quán)利要求12所述的處理塊,其中所述處理塊進(jìn)一步被配置為針對(duì)所述編碼器類型而獲得所述等式的系數(shù)。
14.根據(jù)權(quán)利要求12或13所述的處理塊,其中所述等式為多項(xiàng)式等式,其將(i)通過利用所述編碼器對(duì)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)的對(duì)數(shù)與(ii)所述圖像部分的所述復(fù)雜度指示的對(duì)數(shù)相關(guān), 其中所述多項(xiàng)式等式的系數(shù)為所述編碼器所使用的所述量化水平的函數(shù)。
15.根據(jù)權(quán)利要求9至14中任一項(xiàng)所述的處理塊,其中所述處理塊被配置為通過確定所估計(jì)的通過利用所述編碼器使用所述相應(yīng)候選量化水平對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)指示中的哪個(gè)比特?cái)?shù)指示最接近所述目標(biāo)比特?cái)?shù)來(lái)選擇所述多個(gè)候選量化水平中的一個(gè)候選量化水平。
16.根據(jù)權(quán)利要求9至15中任一項(xiàng)所述的處理塊,進(jìn)一步被配置為將所選擇的量化水平作為供速率控制器所使用的元數(shù)據(jù)進(jìn)行輸出,所述速率控制器對(duì)所述編碼器在對(duì)所述圖像進(jìn)行編碼時(shí)所使用的所述量化水平進(jìn)行控制。
17.根據(jù)權(quán)利要求9至16中任一項(xiàng)所述的處理塊,其中所述圖像是以下中的至少一種: (i)由圖像傳感器所捕獲; (ii)由圖形處理單元渲染的計(jì)算機(jī)生成的圖像; (iii)設(shè)備的顯示器的截屏;以及 (iv)從存儲(chǔ)器獲取。
18.—種處理塊,其被配置為根據(jù)目標(biāo)比特?cái)?shù)確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,其中所述圖像包括一個(gè)或多個(gè)均包括多個(gè)像素的圖像部分,其中所述處理塊包括: 圖像分析模塊,其被配置為針對(duì)所述圖像中的一個(gè)或多個(gè)圖像部分中的每個(gè)圖像部分,分析所述圖像部分中的所述像素以估計(jì)所述圖像部分的復(fù)雜度指示; 比特估計(jì)模塊,其被配置為: 針對(duì)多個(gè)候選量化水平中的每個(gè)候選量化水平,使用所述一個(gè)或多個(gè)圖像部分的一個(gè)或多個(gè)所估計(jì)的所述復(fù)雜度指示以及關(guān)系來(lái)估計(jì)通過利用使用相應(yīng)候選量化水平的所述編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示,其中所述關(guān)系是所述編碼器所使用的所述量化水平的函數(shù),并且其中所述關(guān)系在將(i)圖像部分的復(fù)雜度指示與(ii)通過利用所述編碼器對(duì)所述圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示的估計(jì)相關(guān)時(shí)使用;以及 量化水平選擇模塊,其被配置為基于所述目標(biāo)比特?cái)?shù)以及基于所估計(jì)的通過利用使用所述相應(yīng)候選量化水平的所述編碼器對(duì)所述圖像中的所述一個(gè)或多個(gè)圖像部分進(jìn)行編碼生成的比特?cái)?shù)的指示來(lái)選擇所述多個(gè)候選量化水平中的一個(gè)候選量化水平,其中所述所選擇的量化水平由所述編碼器在對(duì)所述圖像進(jìn)行編碼時(shí)使用。
19.一種計(jì)算機(jī)程序產(chǎn)品,其被配置為根據(jù)目標(biāo)比特?cái)?shù)確定編碼器在對(duì)圖像進(jìn)行編碼時(shí)所要使用的量化水平,所述計(jì)算機(jī)程序產(chǎn)品被體現(xiàn)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上并且被配置為當(dāng)在處理器上被執(zhí)行時(shí)執(zhí)行根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法。
20.一種具有在其上編碼有計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀程序代碼用于生成被配置為執(zhí)行根據(jù)權(quán)利要求1至8中任一項(xiàng)所述的方法的處理塊。
【文檔編號(hào)】H04N5/335GK104135629SQ201410178188
【公開日】2014年11月5日 申請(qǐng)日期:2014年4月29日 優(yōu)先權(quán)日:2013年5月3日
【發(fā)明者】J·迪金斯, P·布拉斯內(nèi)特 申請(qǐng)人:想象技術(shù)有限公司