本申請要求于2014年4月30提交的題為“恒定質(zhì)量視頻編碼(CONSTANT QUALITY VIDEO CODING)”的美國專利申請序號14/265,580的優(yōu)先權(quán),該美國專利申請以其全部內(nèi)容通過引用結(jié)合在此。
背景技術(shù):
視覺質(zhì)量在許多媒體應(yīng)用中是用戶體驗的一個重要方面。此外,在壓縮/解壓縮(編碼解碼器)系統(tǒng)中,視覺質(zhì)量可能主要基于所使用的壓縮格式。例如,視頻編碼器對視頻信息進(jìn)行壓縮從而使得更多的信息可通過給定帶寬被發(fā)送或存儲在給定的存儲器空間中等。經(jīng)壓縮的信號或數(shù)據(jù)然后可以經(jīng)由對所述信號或數(shù)據(jù)進(jìn)行解碼或解壓縮的解碼器被解碼以顯示給用戶。在一些實現(xiàn)方式中,恒定視覺質(zhì)量可能是令人期望的。顧名思義,恒定視覺質(zhì)量旨在跨視頻幀或視頻幀序列達(dá)到固定的主觀質(zhì)量。通常,恒定視覺質(zhì)量實現(xiàn)方式可以采用可變比特率,從而使得比特流的各個部分的文件大小或尺寸可以取決于諸如壓縮視頻的復(fù)雜度的因素是可變的。
在一種方式中,恒定量化參數(shù)(QP)用于達(dá)到恒定視覺質(zhì)量。例如,經(jīng)由編碼技術(shù)(諸如H.264/MPEG-4高級視頻編碼(AVC)標(biāo)準(zhǔn)或高效率視頻編碼(HEVC)標(biāo)準(zhǔn)等)獲得的變換系數(shù)可以使用恒定QP被量化。例如,較大的QP值以較差的質(zhì)量為代價而提供更大的壓縮,而較小的QP值以更少的壓縮為代價而達(dá)到更高的視覺質(zhì)量。然而,這種恒定QP方式可能并不能完全提供如由用戶所感知的恒定視覺質(zhì)量。此外,這種恒定QP方式在(在視頻幀內(nèi)空間上或者跨視頻幀在時間上)壓縮視頻序列的某些部分時可能不經(jīng)濟(jì)。
這樣,現(xiàn)有技術(shù)可能并不能為用戶和/或有效壓縮提供恒定視覺質(zhì)量。隨著越來越高質(zhì)量的視頻傳輸變得更加廣泛,這類問題可能變得關(guān)鍵。
附圖說明
在附圖中通過舉例而非限制的方式展示了在此所描述的材料。為了圖示的簡明和清晰,圖中所展示的元件不一定按比例繪制。例如,為清楚起見,某些元件的尺寸相對于其他元件可能被放大了。此外,在認(rèn)為適當(dāng)?shù)那闆r下,在附圖之間對參考標(biāo)記加以重復(fù)以表示相應(yīng)的或相似的元件。在附圖中:
圖1是一種用于提供具有恒定視覺質(zhì)量的視頻編碼的示例系統(tǒng)的原理圖;
圖2是展示用于提供具有恒定視覺質(zhì)量的視頻編碼的示例過程的流程圖;
圖3展示了示例比特流;
圖4是展示用于提供具有恒定視覺質(zhì)量的視頻編碼的示例過程的流程圖;
圖5是一種用于提供具有恒定視覺質(zhì)量的視頻編碼的示例系統(tǒng)的原理圖;
圖6是示例系統(tǒng)的原理圖;以及
圖7展示了全部根據(jù)本公開的至少一些實現(xiàn)方式安排的示例設(shè)備。
具體實施方式
現(xiàn)在參照附圖描述一個或多個實施例或?qū)崿F(xiàn)方式。雖然對特定配置和安排進(jìn)行了討論,但應(yīng)理解,這僅出于說明目的來進(jìn)行。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,在不背離本描述的精神和范圍的情況下可以采用其他配置和安排。將對相關(guān)領(lǐng)域的技術(shù)人員明顯的是,在此描述的技術(shù)和/或安排還可以在除了在此描述的系統(tǒng)和應(yīng)用之外的各種各樣的其他系統(tǒng)和應(yīng)用中被采用。
雖然以下描述闡述可以在如例如片上系統(tǒng)(SoC)架構(gòu)的架構(gòu)中顯現(xiàn)各實現(xiàn)方式,但在此描述的技術(shù)和/或安排的實現(xiàn)方式并不局限于具體的架構(gòu)和/或計算系統(tǒng)并且出于類似目的可以由任何架構(gòu)和/或計算系統(tǒng)實現(xiàn)。例如,采用例如多個集成電路(IC)芯片和/或封裝體、和/或各種計算設(shè)備和/或消費電子產(chǎn)品(CE)設(shè)備(如機(jī)頂盒、智能電話等)的各架構(gòu)可以實現(xiàn)在此描述的技術(shù)和/或安排。此外,雖然以下描述可以闡述許多特定的細(xì)節(jié)(如邏輯實現(xiàn)、系統(tǒng)組件的類型和內(nèi)在關(guān)系、邏輯劃分/集成選擇等),但要求保護(hù)的主題可以在沒有這些特定細(xì)節(jié)的情況下被實踐。在其他情形下,可以不詳細(xì)示出某些材料(如,例如,控制結(jié)構(gòu)和完整的軟件指令序列),以便不模糊在此公開的材料。
在此公開的材料可以在硬件、固件、軟件、或其任意組合中實現(xiàn)。在此公開的材料還可以被實現(xiàn)為存儲于機(jī)器可讀介質(zhì)上的指令,這些指令可以被一個或多個處理器讀取或執(zhí)行。機(jī)器可讀介質(zhì)可以包括用于存儲或傳輸具有由機(jī)器(例如,計算設(shè)備)可讀的形式的信息的任何介質(zhì)和/或機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括只讀存儲器(ROM);隨機(jī)存取存儲器(RAM);磁盤存儲介質(zhì);光學(xué)存儲介質(zhì);閃存設(shè)備;電氣、光學(xué)、聲學(xué)或其他形式的傳播信號(例如,載波、紅外信號、數(shù)字信號等)等。
說明書中提到“一種實現(xiàn)方式”、“實現(xiàn)方式”、“示例實現(xiàn)方式”等表明所描述的實現(xiàn)方式可以包括具體特征、結(jié)構(gòu)、或特性,但每個實施例可能不一定包括這個具體特征、結(jié)構(gòu)、或特性。而且,這些短語不一定指同一實現(xiàn)方式。此外,當(dāng)結(jié)合一個實施方式來說明特定特征、結(jié)構(gòu)或特性時,應(yīng)當(dāng)指出,無論是否在本文中明確說明,結(jié)合其他實施方式來實現(xiàn)這種特征、結(jié)構(gòu)或特性都在本領(lǐng)域技術(shù)人員的知識范圍內(nèi)。
在此描述的方法、設(shè)備、裝置、計算平臺和制品涉及恒定質(zhì)量視頻編碼。
如上所述,在許多視頻編碼實現(xiàn)方式中提供基本上恒定的視覺質(zhì)量可能是有利的。同樣如討論的,恒定量化參數(shù)(QP)方式可能并不能完全提供恒定視覺質(zhì)量并且在壓縮視頻序列的某些部分時可能不經(jīng)濟(jì)。這類方式可以不考慮人類視覺系統(tǒng)(HVS)的特性。例如,人類視覺系統(tǒng)對于具有基本上靜止或緩慢移動的物體的視頻場景可能更為敏感,并且對于快速移動或復(fù)雜的視頻場景不太敏感。在所討論的恒定QP方式中,使用相同的QP對快速移動或復(fù)雜的視頻場景以及具有更慢運動的視頻場景進(jìn)行量化,這可能不經(jīng)濟(jì),因為快速移動或復(fù)雜的視頻場景可以進(jìn)一步被壓縮(例如,利用較大的QP)而無需通知用戶。類似地,可以通過向緩慢移動的視頻場景(所述場景中,用戶可能對壓縮假影更為敏感或者可能欣賞更高質(zhì)量的視頻等)提供更少的壓縮來提供更高的質(zhì)量。
在此討論的技術(shù)與恒定QP技術(shù)相比可以提供更好的主觀視頻質(zhì)量,并且可以提供具有相似或更低比特率的更好的主觀視頻質(zhì)量。如在此進(jìn)一步討論地,幀級空間復(fù)雜度和/或時間復(fù)雜度用于調(diào)整幀級QP。幀級QP可以使用基于HVS的分析進(jìn)一步被修改或用于生成塊級QP(視頻幀的塊的QP)。對于QP的幀級和塊級調(diào)整可以在對HVS敏感的區(qū)域中提供更小的QP(例如,具有更少的壓縮和更高的質(zhì)量)并且向?qū)VS不太敏感的區(qū)域提供更大的QP(例如,具有更大的壓縮和更差的質(zhì)量)。
在一些實施例中,視頻編碼可以包括確定視頻幀的量化參數(shù)。所述量化參數(shù)可以基于用戶針對質(zhì)量的選擇和/或所述量化參數(shù)可以基于幀類型(例如,幀內(nèi)的、預(yù)測的、或雙向的)被修改。所述量化參數(shù)可以是例如初始或參考量化參數(shù)。在一些實施例中,所述量化參數(shù)可以基于先前幀的經(jīng)修改的(多個)量化參數(shù)被修改或調(diào)整。視頻幀的量化參數(shù)可以基于與視頻幀相關(guān)聯(lián)的空間復(fù)雜度、與視頻幀相關(guān)聯(lián)的時間復(fù)雜度、或兩者被修改以便生成視頻幀的經(jīng)修改的(或第二)量化參數(shù)。經(jīng)修改的或第二量化參數(shù)可以是例如視頻幀的幀級量化參數(shù)。視頻幀的單獨塊的塊級量化參數(shù)可以基于幀級量化參數(shù)、單獨塊的復(fù)雜度、以及視頻幀的復(fù)雜度被生成。例如,單獨塊的復(fù)雜度可以是單獨塊的塊預(yù)測失真、單獨塊的塊方差、或其組合,并且視頻幀的復(fù)雜度可以是視頻幀的全部塊的塊方差的平均值、視頻幀的全部塊的塊預(yù)測失真的平均值、或其組合??梢葬槍σ曨l幀的全部塊重復(fù)這種過程以便生成多個塊級量化參數(shù)。
這些塊級量化參數(shù)可以用于對與塊相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化,并且經(jīng)量化的變換系數(shù)和塊級量化參數(shù)可以被編碼成用于解碼器的比特流。所述解碼器可以解壓縮和/或解碼所述比特流以便生成再現(xiàn)幀以呈現(xiàn)給用戶。此外,所述塊級量化參數(shù)可以用于生成與視頻序列相關(guān)聯(lián)的模式選擇以用于編碼。
圖1是根據(jù)本公開的至少一些實現(xiàn)方式安排的用于提供視頻編碼的示例系統(tǒng)100的原理圖。如圖1所示,系統(tǒng)100可以包括量化參數(shù)(QP)模塊101、量化模塊112、模式選擇模塊113、以及熵編碼器模塊114。同樣如所示出的,QP模塊101可以包括空間/時間復(fù)雜度模塊104、初始QP估計模塊105、歷史復(fù)雜度和QP模塊106、幀內(nèi)QP估計模塊107、場景變化檢測和預(yù)測(P)幀QP估計模塊108、雙向(B)幀QP估計模塊109、以及基于塊的QP調(diào)整模塊110。
同樣如所示出的,QP模塊101可以接收視頻102和智能恒定質(zhì)量(ICQ)因子103,并且熵編碼器模塊114可以提供或傳輸比特流115。系統(tǒng)100可以提供例如視頻壓縮,并且系統(tǒng)100可以是經(jīng)由計算機(jī)或計算設(shè)備等實現(xiàn)的視頻編碼器。例如,系統(tǒng)100可以生成與視頻壓縮-解壓縮(編碼解碼器)標(biāo)準(zhǔn)(諸如,H.264/MPEG-4高級視頻編碼(AVC)標(biāo)準(zhǔn)或高效視頻編碼(HEVC)標(biāo)準(zhǔn)等)兼容的比特流115。
系統(tǒng)100可以包括為了清楚呈現(xiàn)而未示出的其他模塊。例如,系統(tǒng)100可以包括變換模塊、幀內(nèi)預(yù)測模塊、運動估計模塊、運動補償模塊、環(huán)內(nèi)濾波模塊、參考幀緩沖器、掃描模塊等。在一些示例中,系統(tǒng)100可以包括用于生成在編碼過程中使用的參考幀的本地解碼環(huán)路。這類模塊對于本領(lǐng)域技術(shù)人員是已知的,并且為了清楚地呈現(xiàn)所描述的技術(shù),在此不再對其進(jìn)一步討論。
如所討論的,QP模塊101可以接收視頻102和ICQ因子103。視頻102可以包括任何適當(dāng)?shù)姆直媛实娜魏芜m當(dāng)?shù)囊曨l幀、視頻幀序列、視頻數(shù)據(jù)等。例如,視頻102可以是視頻圖形陣列(VGA)、高清晰度(HD)、全HD(例如,1080p)、或4K分辨率視頻等。此外,視頻102可以包括任何數(shù)量的視頻幀、視頻幀序列、或場景等??梢葬槍σ曨l102作出幀選擇和/或模式選擇(未示出),從而使得視頻102的視頻幀可以各自由幀類型來指定。所述幀類型可以包括任何適當(dāng)?shù)膸愋突蚨鄠€幀類型,其可以由標(biāo)準(zhǔn)或協(xié)議等來限定。例如,幀類型可以包括:不參考另一個或多個幀所預(yù)測的幀內(nèi)幀(I幀)、參考另一個或多個幀所預(yù)測的且可用于預(yù)測其他幀的預(yù)測幀(P幀)、參考另一個或多個幀所預(yù)測的但不可用于預(yù)測其他幀的雙向幀(B幀)、和/或參考另一個或多個幀所預(yù)測的且可用于層級編碼結(jié)構(gòu)中的預(yù)測的參考雙向幀(B參考幀)。在一些示例中,P幀、B幀、以及B參考幀可以被認(rèn)為是幀間幀。例如,在AVC標(biāo)準(zhǔn)中,I幀、P幀、B幀、以及B參考幀可以是可用的。在HEVC標(biāo)準(zhǔn)中,當(dāng)層級編碼被使能時,幀類型可以與參考深度級相關(guān)。
ICQ因子103可以包括視頻質(zhì)量(例如,所期望的或所需的視頻質(zhì)量等)的任何指示。例如,ICQ因子103可以由用戶、系統(tǒng)100的系統(tǒng)參數(shù)、與系統(tǒng)100的通信連接質(zhì)量等設(shè)定或確定。在實施例中,ICQ因子103是基于用戶選擇的視頻102的恒定質(zhì)量因子。所述用戶選擇的恒定質(zhì)量因子可以是任何適當(dāng)?shù)倪x擇,諸如整數(shù)值、主觀質(zhì)量選擇、基于具有呈現(xiàn)給用戶的質(zhì)量范圍的滑塊的選擇等。在實施例中,可以作出主觀選擇(例如,高質(zhì)量、中等質(zhì)量、或低質(zhì)量),并且系統(tǒng)100可以將所述主觀選擇轉(zhuǎn)換成ICQ因子103的整數(shù)值。例如,ICQ因子103的范圍可以是從1至51,其中,約20值26的值提供中等質(zhì)量視頻、約27至31的值提供低質(zhì)量視頻、以及約15至19的值提供高質(zhì)量視頻,盡管可以使用任何值和/或范圍。
如在此使用的,低ICQ因子103和低QP與更高的視頻質(zhì)量和更高的比特率相關(guān)聯(lián),并且高ICQ因子103和高QP與更低的視頻質(zhì)量和更低的比特率相關(guān)聯(lián)。例如,用戶或系統(tǒng)等可以在不管更高比特率的代價(例如,更少的壓縮)而期望良好或更高質(zhì)量視頻時提供低ICQ因子103并且可以在不管更低的比特率(例如,可以達(dá)到更多的壓縮)的代價而忍受更低質(zhì)量視頻時提供高ICQ因子103。同樣如在此使用的,ICQ因子103可以被描述為恒定質(zhì)量因子。
繼續(xù)參照圖1,初始QP估計模塊105可以確定或生成視頻102的幀的(多個)初始量化參數(shù)(IQP)值116。例如,初始QP值116可以包括整個視頻102的幀的或視頻102的序列(例如,視頻102的一部分、視頻102的場景等)的幀級QP值的初始估計。在示例中,視頻102的視頻幀的初始QP值116可以基于ICQ因子103。在示例中,視頻102的視頻幀的初始QP值116可以等于ICQ因子103。在另一示例中,視頻102的視頻幀的初始QP值116可以基于ICQ因子103以及基于幀類型的偏移。例如,可以如方程(1)至方程(3)中所示的對ICQ因子103作出基于幀類型(例如,I幀、P幀、B幀、或B參考幀)的幀類型偏移。
初始_QP(I)=ICQ因子
(1)
初始_QP(P)=初始_QP(I)+偏移P(ICQ因子)
(2)
初始_QP(B)=初始_QP(I)+偏移B(ICQ因子)
(3)
其中,ICQ因子可以是ICQ因子103,初始_QP可以是初始QP值(例如,初始QP值116),初始_QP(I)可以是I幀的初始QP值,初始_QP(P)可以是P幀的初始QP值,初始_QP(B)可以是B幀(例如,B幀或B參考幀)的初始QP值,偏移P可以是P幀的基于幀類型的偏移,并且偏移B可以是B幀的基于幀類型的偏移。
如方程(2)和方程(3)所示,偏移P和偏移B可以是ICQ因子的函數(shù)。所述函數(shù)可以包括基于所述ICQ因子提供偏移的任何適當(dāng)?shù)暮瘮?shù)(例如,線性函數(shù)、階梯函數(shù)、邏輯函數(shù)等)。例如,偏移P可以提供0至4范圍內(nèi)的整數(shù)值,其中為更低的ICQ因子值提供更高的偏移。例如,偏移B可以提供2至8范圍內(nèi)的整數(shù)值,其中為更低的ICQ因子值提供更高的偏移。同樣,如方程(1)所示,在一些示例中,初始_QP(I)可以被確定,而無需偏移或者具有零偏移。在其他示例中,可以利用與在方程(2)和方程(3)中示出的這些類似的偏移函數(shù)(例如,偏移I(ICQ因子)等)來確定初始_QP(I)。
如圖1所示,空間/時間復(fù)雜度模塊104可以接收視頻102并且可以針對視頻102的幀生成幀的空間和/或時間復(fù)雜度(S/T C)值117。可以使用任何適當(dāng)?shù)募夹g(shù)來確定所述空間復(fù)雜度,所述適當(dāng)?shù)募夹g(shù)提供對視頻102的視頻幀的空間復(fù)雜度的測量。在實施例中,基于視頻102的視頻幀的幀內(nèi)預(yù)測失真對所述空間復(fù)雜度進(jìn)行估計。此外,可以使用任何適當(dāng)?shù)募夹g(shù)來確定視頻102的視頻幀的時間復(fù)雜度,所述適當(dāng)?shù)募夹g(shù)提供對視頻幀的時間復(fù)雜度的測量。在實施例中,基于視頻102的視頻幀的幀間預(yù)測失真對所述時間復(fù)雜度進(jìn)行估計。在各個實施例中,幀內(nèi)預(yù)測失真的測量、幀間預(yù)測失真的測量或兩者均可以基于統(tǒng)計測量,諸如絕對差和(SAD)、失真求和等。在一些示例中,可以基于視頻102的視頻幀的下采樣版本來確定所述幀內(nèi)預(yù)測失真、所述幀間預(yù)測失真或兩者。例如,在確定視頻幀的幀內(nèi)預(yù)測失真、幀間預(yù)測失真或兩者之前,可以由因子2、4、或8等對視頻102的幀進(jìn)行下采樣或縮減。
如所示出的,幀內(nèi)QP估計模塊107可以接收空間和/或時間復(fù)雜度值117以及(多個)初始量化參數(shù)值116,并且可以生成I幀幀級量化參數(shù)(FLQP)118。在一些示例中,幀內(nèi)QP估計模塊107可以接收視頻102的全部幀的空間和/或時間復(fù)雜度值117以及(多個)初始量化參數(shù)值116,并且在其他示例中,幀內(nèi)QP估計模塊107可以僅接收與視頻102的I幀相關(guān)聯(lián)的空間和/或時間復(fù)雜度值117以及(多個)初始量化參數(shù)值116。在示例中,幀內(nèi)QP估計模塊107可以基于空間和/或時間復(fù)雜度值117中的一者或兩者對I幀的初始_QP(例如,I幀的初始_QP值116)進(jìn)行修改以便生成I幀F(xiàn)LQP 118。例如,當(dāng)I幀的空間復(fù)雜度指示高空間復(fù)雜度時,I幀F(xiàn)LQP 118可以大于I幀的初始QP,從而使得相對大的I幀F(xiàn)LQP 118可以用于具有高空間復(fù)雜度的幀(例如,當(dāng)用戶可能沒有注意到質(zhì)量下降并且壓縮可能增加時),并且相對小的I幀F(xiàn)LQP 118可以用于具有低空間復(fù)雜度的幀(例如,當(dāng)更高質(zhì)量可以有益于用戶時)。在一些示例中,可以基于幀內(nèi)預(yù)測失真和憑經(jīng)驗確定的常數(shù)來確定高空間復(fù)雜度。
如所討論的,在示例中,I幀的初始QP可以等于ICQ因子103(請參考方程(1))。在實施例中,I幀F(xiàn)LQP 118可以與I幀的空間復(fù)雜度成比例。例如,I幀F(xiàn)LQP 118可以被確定為如方程(4)所示:
QP幀內(nèi)=初始_QP(I)×失真(幀內(nèi))c/閾值1
(4)
其中,QP幀內(nèi)可以是I幀幀級量化參數(shù)(例如,I幀F(xiàn)LQP 118),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),失真(幀內(nèi))可以是幀內(nèi)空間預(yù)測失真,C可以是憑經(jīng)驗確定的常數(shù),并且閾值1可以是憑經(jīng)驗確定的常數(shù)或閾值。
如方程(4)所示,I幀幀級量化參數(shù)可以與升至值C的I幀的空間復(fù)雜度成比例。C可以是任何適當(dāng)?shù)闹祷虺?shù),諸如例如1或任何非整數(shù)值。如所討論的,C可以憑經(jīng)驗被確定,并且可以基于確定空間復(fù)雜度所使用的方法(例如,SAD或失真求和等)。在一些示例中,C可以基于視頻102的內(nèi)容從而使得C基于視頻102可以是自適應(yīng)的或可變的。
如所示出的,如以下討論的,可以將I幀F(xiàn)LQP 118從幀內(nèi)QP估計模塊107傳輸至基于塊的QP調(diào)整模塊以用于進(jìn)一步處理。同樣如所示出的,經(jīng)由耦合121,幀內(nèi)QP估計模塊107可以將各個數(shù)據(jù)(包括例如:I幀F(xiàn)LQP118、任何已確定的空間復(fù)雜度、常數(shù)或閾值(例如,C和/或閾值1)等)傳輸至歷史復(fù)雜度和QP模塊106。例如,在確定I幀F(xiàn)LQP 118之后,可以將所討論的數(shù)據(jù)或其部分從幀內(nèi)QP估計模塊107傳輸至歷史復(fù)雜度和QP模塊106并且從歷史復(fù)雜度和QP模塊106傳輸至場景變化檢測和P幀QP估計模塊108和/或B幀QP估計模塊109。
場景變化檢測和P幀QP估計模塊108還可以接收(僅P幀的全部幀的)空間和/或時間復(fù)雜度值117以及(多個)初始量化參數(shù)值116,并且可以生成基于(多個)P幀的初始QP值的參考量化參數(shù)(請參考以上方程(2))、與(多個)P幀相關(guān)聯(lián)的I幀F(xiàn)LQP 118(例如,P幀參考的以用于編碼的I幀的FLQP)、I幀的初始QP、和/或加權(quán)因子。例如,在對視頻102的序列進(jìn)行編碼時,可以參考單個I幀對一個或多個P幀進(jìn)行編碼。P幀參考量化參數(shù)(QP)可以基于視頻序列的增加了P幀間偏移的恒定質(zhì)量因子(例如,如方程(2)所示)并且基于與其相關(guān)聯(lián)的幀內(nèi)量化值而被修改。例如,P幀參考QP可以被確定為如方程(5)所示:
QPp_參考=初始_QP(P)+(QP幀內(nèi)-初始_QP(I))×w1
(5)
其中,QPp_參考可以是P幀參考QP,初始_QP(P)可以是P幀的初始QP值(如以上所討論的),QP幀內(nèi)可以是與(多個)P幀相關(guān)聯(lián)的I幀幀級量化參數(shù)(例如,I幀F(xiàn)LQP 118),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),并且w1可以是加權(quán)因子。例如,加權(quán)因子w1將(QP幀內(nèi)-初始_QP(I)的用于提供具有恒定視覺質(zhì)量的視頻編碼對QPp_參考的貢獻(xiàn)進(jìn)行加權(quán)可以具有任何適當(dāng)?shù)膬r值。在一些示例中,加權(quán)因子w1可以是在約0.5至1的范圍中,其中,值0.9是尤其有利的。
類似地,B幀QP估計模塊109可以接收(僅B幀的全部幀的)空間和/或時間復(fù)雜度值117以及(多個)初始量化參數(shù)值116,并且可以生成基于(多個)B幀的初始_QP值的參考量化參數(shù)(請參考以上方程(3))、與(多個)B幀相關(guān)聯(lián)的I幀F(xiàn)LQP 118、I幀的初始_QP、和/或加權(quán)因子。例如,在對視頻102的序列進(jìn)行編碼時,可以針對(例如,參考I幀自身或參考I幀的另一幀)單個的I幀對一個或多個B幀(例如,B幀和/或B參考幀)進(jìn)行編碼。B幀參考量化參數(shù)(QP)可以基于視頻序列的增加了B幀間偏移的恒定質(zhì)量因子(例如,如方程(3)所示)并且基于與其相關(guān)聯(lián)的幀內(nèi)量化參數(shù)而被修改。例如,B幀參考QP可以被確定為如方程(6)所示:
QPB_參考=初始_QP(B)+(QP幀內(nèi)-初始_QP(I))×w2
(6)
其中,QPB_參考可以是B幀參考QP,初始_QP(B)可以是B幀的初始QP值(如以上所討論的),QP幀內(nèi)可以是與(多個)B幀相關(guān)聯(lián)的I幀幀級量化參數(shù)(例如,I幀F(xiàn)LQP 118),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),并且w2可以是加權(quán)因子。例如,加權(quán)因子w2可以是用于對(QP幀內(nèi)-初始_QP(I))對QPB_參考的貢獻(xiàn)進(jìn)行加權(quán)的任何適當(dāng)?shù)闹?。在一些示例中,加?quán)因子w2可以是在約0.5至1的范圍中,其中,0.9是尤其有利的。在一些示例中,加權(quán)因子w1和w2可以是相同的,而在其他示例中,它們可以不同。
返回至場景變化檢測和P幀QP估計模塊108,對于視頻102的每一個P幀,場景變化檢測可以被應(yīng)用以確定P幀是否與視頻102中的場景變化相關(guān)聯(lián)從而使得P幀為場景變化幀。例如,場景變化檢測和P幀QP估計模塊108可以基于幀(例如,如經(jīng)由空間和/或時間復(fù)雜度值117所接收的)的時間復(fù)雜度確定P幀是否為場景變化幀。在實施例中,可以基于目標(biāo)P幀的時間復(fù)雜度以及基于過去幀的過去平均時間復(fù)雜度(例如,一個或多個過去幀的平均時間復(fù)雜度)確定比值。如在此討論的,所述過去平均時間復(fù)雜度可以經(jīng)由場景變化檢測和P幀QP估計模塊108被確定或經(jīng)由歷史復(fù)雜度和QP模塊106被接收,所述歷史復(fù)雜度和QP模塊可以基于經(jīng)由耦合121、122、123所接收的數(shù)據(jù)來確定所述過去平均時間復(fù)雜度??梢曰谌魏螖?shù)量的過去幀來確定所述過去平均時間復(fù)雜度。在實施例中,所述過去平均時間復(fù)雜度基于最近的五個先前幀(或者如果五個幀不可用則更少的)。
可以將所述目標(biāo)P幀的時間復(fù)雜度與所述過去平均時間復(fù)雜度之比與閾值(例如,預(yù)定的或啟發(fā)式確定的閾值)進(jìn)行比較以便確定所述目標(biāo)P幀是否為場景變化幀。在實施例中,如果所述比值大于閾值,則所述目標(biāo)P幀被確定為場景變化幀。
如果P幀被確定為場景變化幀,則可以基于I幀的初始QP以及目標(biāo)P幀的空間復(fù)雜度和/或時間復(fù)雜度來確定場景變化P幀的P幀幀級量化參數(shù)(P幀F(xiàn)LQP)。在實施例中,P幀F(xiàn)LQP與目標(biāo)P幀的空間復(fù)雜度和/或時間復(fù)雜度成比例。例如,P幀F(xiàn)LQP可以被確定為如方程(7)所示:
QPp場景_變化_幀=初始_QP(I)×函數(shù)(失真(P)C/閾值2)
(V)
其中,QPp_場景_變化_幀可以是場景變化P幀幀級量化參數(shù)(例如,P幀F(xiàn)LQP 119),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),函數(shù)1可以是條件函數(shù),失真(P)可以是基于幀內(nèi)預(yù)測失真和/或幀間預(yù)測失真的P幀空間和/或時間復(fù)雜度,C可以是憑經(jīng)驗確定的常數(shù),并且閾值2可以是憑經(jīng)驗確定的常數(shù)或閾值。
如方程(7)所示,場景變化幀的P幀幀級量化參數(shù)可以與升至值C的P幀的復(fù)雜度成比例。C可以是任何適當(dāng)?shù)闹祷虺?shù),諸如例如1或任何非整數(shù)值。如所討論的,C可以憑經(jīng)驗被確定,并且可以基于確定復(fù)雜度所使用的方法(例如,SAD或失真求和等)。在一些示例中,C可以基于視頻102的內(nèi)容從而使得C基于視頻102可以是自適應(yīng)的或可變的。方程(7)中C值可以與方程(4)中C值相同,或者它們可以不同。
函數(shù)1可以是向初始_QP(I)提供因子的任何適當(dāng)?shù)臈l件函數(shù)以便確定QPp_幀,例如函數(shù)1可以基于范圍、一組范圍、閾值、或一組閾值等提供值。例如,如果失真(P)C/閾值2低于閾值,則可以提供特定值,并且如果失真(P)C/閾值2高于閾值,則可以提供另一個值等。函數(shù)1可以實現(xiàn)任何數(shù)量的閾值或范圍等。
如所討論的,當(dāng)P幀的時間復(fù)雜度指示高空間復(fù)雜度時,P幀級量化參數(shù)可以大于P幀的初始QP,從而使得相對大的QP可以用于具有高時間復(fù)雜度的幀(例如,當(dāng)用戶可能沒有注意到質(zhì)量下降并且壓縮可能增加時),并且相對小的QP可以用于具有低時間復(fù)雜度的幀(例如,當(dāng)更高質(zhì)量可以有益于用戶時)。在一些示例中,可以基于幀間預(yù)測失真和憑經(jīng)驗確定的常數(shù)來確定高時間復(fù)雜度。如在此進(jìn)一步討論的,對于其他幀間幀(例如,并非場景變化幀的P幀、B幀、和B參考幀)類似地,當(dāng)幀間幀的時間復(fù)雜度指示高時間復(fù)雜度時,幀級量化參數(shù)可以大于幀間幀的初始或參考QP。
如圖1所示,場景變化的P幀幀級量化參數(shù)可以作為P幀F(xiàn)LQPs 119或其一部分被提供。此外,場景變化的P幀幀級量化參數(shù)和/或其他已確定的數(shù)據(jù)可以被傳輸至歷史復(fù)雜度和QP模塊106。例如,此數(shù)據(jù)及其部分可以經(jīng)由耦合124被傳輸至B幀QP估計模塊109。例如,基于場景變化P幀,以上討論的B幀參考量化參數(shù)(QP)可以由B幀QP估計模塊109調(diào)整或重新確定。在示例中,B幀參考QP可以基于視頻序列的增加了B幀間偏移的恒定質(zhì)量因子(例如,如方程(3)所示)并且基于與其相關(guān)聯(lián)的P幀幀級QP而被修改。例如,B幀參考QP可以被確定為如方程(8)所示:
QPB_參考=初始_QP(B)+(QPp_場景_變化_幀-初始_QP(I))×w2
(8)
其中,QPB_參考可以是B幀參考QP,初始_QP(B)可以是B幀的初始QP值(如以上所討論的),QPp_場景_變化_幀可以是指示場景變化并且與(多個)B幀相關(guān)聯(lián)的P幀的場景變化幀(例如,P幀F(xiàn)LQP 119之一)的P幀幀級量化參數(shù),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),并且w2可以是加權(quán)因子。例如,加權(quán)因子w1將(QP幀內(nèi)-初始_QP(I))對QPp_參考的貢獻(xiàn)進(jìn)行加權(quán)可以具有任何適當(dāng)?shù)膬r值。在一些示例中,加權(quán)因子w2可以是在約0.5至1的范圍中,其中,0.9是尤其有利的。在一些示例中,加權(quán)因子w1和w2可以是相同的,并且在其他示例中,它們可以不同。在一些示例中,方程(8)的加權(quán)因子w2可以與方程(6)的加權(quán)因子w2相同,并且在其他示例中,它們可以不同。
返回至場景變化檢測和P幀QP估計模塊108,對于關(guān)鍵P幀或者對于視頻102的每一個P幀,如果目標(biāo)幀被確定為不是場景變化幀,時間比而已被確定為如方程(9)所示:
T_比值=當(dāng)前_失真(P)C/過去_平均(P)C
(9)
其中,T_比值可以是時間比,當(dāng)前_失真(P)可以是基于當(dāng)前P幀的幀內(nèi)預(yù)測失真和/或幀間預(yù)測失真的P幀空間和/或時間復(fù)雜度,C可以是憑經(jīng)驗確定的常數(shù),并且過去_平均(P)可以是基于先前P幀的幀內(nèi)預(yù)測失真和/或幀間預(yù)測失真的空間和/或時間復(fù)雜度。C可以是任何適當(dāng)?shù)某?shù),諸如例如1或任何非整數(shù)值。如所討論的,C可以憑經(jīng)驗被確定,并且可以基于確定復(fù)雜度所使用的方法(例如,SAD或失真求和等)。在一些示例中,C可以基于視頻102的內(nèi)容從而使得C基于視頻102可以是自適應(yīng)的或可變的。在一些示例中,方程(9)中C值可以與在此討論的這些值中的一個或多個值相同,并且在其他示例中,方程(9)中C值可以不同。
通常,非場景變化P幀可以基于參考幀(例如,參考I幀和/或P幀)被編碼。在系統(tǒng)100內(nèi)的場景變化檢測和P幀QP估計模塊108處或其他地方,可以確定非場景變化P幀的參考幀是否為幀內(nèi)幀(例如,I幀)或場景變化幀(例如,場景變化P幀)。如果所述參考幀是幀內(nèi)幀或場景變化幀,則可以基于如基于以上所描述的時間比而修改的P幀參考QP以及修改參數(shù)來確定P幀F(xiàn)LQP。在一些示例中,幀級QP(例如,P幀F(xiàn)LQP 119)可以被確定為如方程(10)所示:
QPp_幀=QPp_參考+CLIP(函數(shù)2(T_比值),-3,3)
(10)
其中,可以是QPp_幀可以是使用幀內(nèi)或場景變化參考幀所編碼的非場景變化P幀的P幀幀級量化參數(shù)(例如,P幀F(xiàn)LQP 119),QPp_參考可以是P幀參考QP參數(shù)(如針對方程(5)所討論的),CLIP可以是剪切函數(shù),函數(shù)2可以是條件函數(shù),T_比值可以是如以上針對方程(9)所討論的時間比,并且-3和3可以是剪切函數(shù)CLIP的修改參數(shù)。如所示出的,在一些示例中,修改參數(shù)可以是-3和3;然而,所述修改參數(shù)可以包括任何適當(dāng)?shù)闹担T如-2和2或-1和1等。
函數(shù)2可以是基于T_比值的任何適當(dāng)?shù)臈l件函,例如函數(shù)1可以基于范圍、一組范圍、閾值、或一組閾值等提供值。例如,如果基于T_比值低于閾值,則可以提供特定值,并且如果基于T_比值高于閾值,則可以提供另一個值等。函數(shù)1可以實現(xiàn)任何數(shù)量的閾值或范圍等。CLIP可以是任何適當(dāng)?shù)募羟泻瘮?shù)。例如,如果X>MAX,則函數(shù)CLIP(X、MIN、MAX)等于MAX,如果X<MIN,則CLIP(X、MIN、MAX)等于MIN,并且否則CLIP(X、MIN、MAX)等于X。
此外,場景變化檢測和P幀QP估計模塊108可以基于具有幀內(nèi)或場景變化參考幀的P幀的已確定的P幀F(xiàn)LQP來更新或重新確定P幀的參考QP。在實施例中,所述參考QP可以被設(shè)置為等于具有幀內(nèi)或場景變化參考幀的P幀的P幀F(xiàn)LQP。在一些示例中,所述參考QP可以基于以下方程(11):
QPP_參考=QPp_幀
(11)
其中,QPP_參考可以是P幀的QP參考,并且QPP_參考可以是如上所述的具有幀內(nèi)或場景變化參考幀的P幀的幀級QP。
如果非場景變化P幀的參考幀不是幀內(nèi)幀也不是場景變化幀,則可以基于如基于以上所描述的時間比而修改的P幀參考QP以及修改參數(shù)來確定P幀F(xiàn)LQP。在一些示例中,幀級QP(例如,P幀F(xiàn)LQP 119)可以被確定為如方程(12)所示:
QPp_幀=QPp_參考+CLIP(函數(shù)2(T_比值),-1,1,)
(12)
其中,可以是QPp_幀可以是既不使用幀內(nèi)幀也不使用場景變化參考幀所編碼的非場景變化P幀的P幀幀級量化參數(shù)(例如,P幀F(xiàn)LQP 119),QPp_參考可以是P幀參考QP參數(shù)(如針對方程(5)和方程(11)所討論的),CLIP可以是如針對方程(10)所討論的剪切函數(shù),函數(shù)2可以是條件函數(shù),T_比值可以是如以上針對方程(9)所討論的時間比,并且-1和1可以是剪切函數(shù)CLIP的修改參數(shù)。如所示出的,在一些示例中,修改參數(shù)可以是-1和1;然而,所述修改參數(shù)可以包括任何適當(dāng)?shù)闹担T如-2和2等。
此外,B幀QP估計模塊109可以接收數(shù)據(jù)(例如,經(jīng)由場景變化檢測和P幀QP估計模塊108、耦合122、歷史復(fù)雜度和QP模塊106、以及耦合124等),并且B幀QP估計模塊109可以基于以上所描述的已確定的P幀F(xiàn)LQP值來更新或重新確定B幀參考QP。在一些示例中,B幀的參考QP可以基于以下方程(13)被確定:
QPB_參考=QPp_幀+(初始_QP(P)-初始_QP(B))
(13)
其中,QPB_參考可以是B幀的QP參考,QPp_幀可以是以上針對方程(12)所描述的P幀的幀級QP,初始_QP(P)可以是P幀的初始QP值(如以上所討論的),并且初始_QP(B)可以是B幀的初始QP值(如以上所討論的)。
返回至場景變化檢測和P幀QP估計模塊108,已經(jīng)對每一種類型的幀級量化參數(shù)(例如,場景變化P幀、參考幀內(nèi)或場景變化P幀以用于編碼的非場景變化P幀、以及參考非幀內(nèi)和非場景變化P幀以用于編碼的非場景變化P幀)的確定進(jìn)行了描述。如以下所討論的,此P幀幀級量化參數(shù)(FLQP)119可以被提供給基于塊的QP調(diào)整模塊110以用于進(jìn)一步處理。
繼續(xù)參考圖1,如所示出的,B幀QP估計模塊109可以經(jīng)由耦合124接收空間和/或時間復(fù)雜度值117、(多個)初始量化參數(shù)值116、以及來自歷史復(fù)雜度和QP模塊106的其他數(shù)據(jù),并且可以生成B幀幀級量化參數(shù)(FLQP)120。例如,B幀QP估計模塊109可以基于先前確定的I幀和P幀的幀級量化參數(shù)來生成、更新并維持如以上所討論的參考B幀QP值(例如,QPB_參考)。
在一些示例中,B幀QP估計模塊107可以基于例如已確定的、重新確定的、和/或維持后的參考B幀QP值來生成B幀F(xiàn)LQP 120。在一些示例中,B幀的B幀F(xiàn)LQP 120可以等于參考B幀QP值,如方程(14)所示:
QPB_幀=QPB_參考
(14)
其中,QPB_幀可以是B幀幀級量化參數(shù)(例如,B幀F(xiàn)LQP 119之一),并且QPB_參考可以是如以上所討論的參考B幀QP值。在實施例中,幀的B幀F(xiàn)LQP 120在未使用或使能層級編碼結(jié)構(gòu)的實現(xiàn)方式中可以等于參考B幀QP值。
在層級編碼結(jié)構(gòu)被使用或使能的實現(xiàn)方式中,B幀的B幀幀級量化參數(shù)(FLQP)119可以如針對方程(14)所討論的被確定,并且針對B參考幀,B幀幀級量化參數(shù)(FLQP)119可以基于參考B幀QP值與參考P幀QP值(例如,與B參考幀相關(guān)聯(lián)的P幀的參考量化參數(shù))的平均值。例如,針對B參考幀,B幀幀級量化參數(shù)(FLQP)119可以被確定為如方程(15)所示:
QPB_參考_幀=(QPB_參考+QPp_參考)/2
(15)
其中,QPB_參考_幀可以是B幀幀級量化參數(shù)(例如,B幀F(xiàn)LQP 119之一),QPB_參考可以是如以上所討論的參考B幀QP值,并且QPp_參考可以是如以上所討論的參考P幀QP值。
如圖1所示,是B幀F(xiàn)LQP 120可以被傳輸至基于塊的QP調(diào)整模塊110。
如所描述的,基于塊的QP調(diào)整模塊110可以經(jīng)由模塊107、108、和109分別接收I幀、P幀、和B幀的幀級量化參數(shù)(例如,視頻幀的量化參數(shù))(例如,I幀F(xiàn)LQP 118、P幀F(xiàn)LQP 119、和B幀F(xiàn)LQP 120)。基于塊的QP調(diào)整模塊110可以針對視頻幀(例如,針對所有幀類型)的單獨塊生成塊級量化參數(shù)(BLQP)125。在一些示例中,基于塊的QP調(diào)整模塊110可以接收來自系統(tǒng)100的其他模塊的描述塊的信息、與塊相關(guān)聯(lián)的運動向量、模式等。如所示出的,基于塊的QP調(diào)整模塊110可以將塊級量化參數(shù)125傳輸至如以下進(jìn)一步討論的量化模塊112和/或模式選擇113。
在一些示例中,可以基于塊是其部分的視頻幀的幀級量化參數(shù)來生成BLQP 125。例如,針對視頻幀的每一個塊,可以基于視頻幀的幀級量化參數(shù)、塊的復(fù)雜度、以及視頻幀的復(fù)雜度來生成塊級量化參數(shù)。視頻幀的塊可以是任何適當(dāng)?shù)膲K,諸如例如宏塊(例如,AVC中的MB)、編碼單元(例如,HEVC中的CU)、分區(qū)、切片等。如所討論的,幀級QP可以被調(diào)至具有高HVS敏感性的塊的較小值并且調(diào)至具有低HVS敏感性的較大值。
在示例中,可以確定塊的復(fù)雜度與視頻幀的平均復(fù)雜度之比。例如,塊的復(fù)雜度可以基于塊預(yù)測失真、塊方差、或其組合。視頻幀的復(fù)雜度可以基于類似的確定(例如,塊預(yù)測失真的平均值、塊方差的平均值、或其組合)。這種比值可以被描述為例如失真率。在一些示例中,更低的失真率(例如,小于1)可以表示視頻幀的高HVS敏感性塊或區(qū)域。在一些示例中,失真比率可以與閾值或(多個)閾值進(jìn)行比較,并且基于所述比較,幀級量化參數(shù)可以被修改以便生成塊級量化參數(shù)。在實施例中,當(dāng)單獨塊的復(fù)雜度與視頻幀的復(fù)雜度之比大于一時,塊級量化參數(shù)可以大于幀級量化參數(shù)(例如,可以增加所述幀級量化參數(shù)以便確定所述塊級量化參數(shù))。
針對幀內(nèi)幀(以及相關(guān)聯(lián)的I幀F(xiàn)LQP 118),每一個塊的失真率可以如所討論的被確定。在一些示例中,針對每一個塊,塊級量化參數(shù)(BLQP)可以基于失真率與閾值的比較以及基于I幀的FLQP被確定。例如,如果所述失真率大于閾值,則所述塊級量化參數(shù)(BLQP)可以被確定為等于FLQP。如果所述失真率小于所述閾值,則偏移可以基于所述失真率被確定,并且所述偏移可以應(yīng)用于所述FLQP以便確定所述BLQP(例如,所述FLQP可以減少偏移以便確定所述BLQP)。在一些示例中,可以確定具有大于閾值的失真的I幀的塊的塊級QP,如方程(16)所示:
QP幀內(nèi)_塊=QP幀內(nèi)+偏移I(失真_率)
(16)
其中,QP幀內(nèi)_塊可以是具有大于閾值的失真率的內(nèi)塊的塊級量化參數(shù),QP幀內(nèi)可以是I幀幀級量化參數(shù),偏移I可以是確定偏移的函數(shù),并且失真率可以是如所討論的失真率。在一些示例中,所述偏移可以是在約-1至-6的范圍中,從而使得低復(fù)雜度區(qū)域中的塊可以具有高達(dá)6個單元小于幀級QP的塊級量化參數(shù)。偏移1可以是任何適當(dāng)?shù)暮瘮?shù),諸如線性函數(shù)、選擇函數(shù)等。如所討論的,在一些示例中,偏移I可以提供在-1至-6的范圍中的偏移;然而,任何適當(dāng)?shù)钠苹蚱品秶梢员皇褂?,諸如從-1至-4或從-2至-3等的范圍。
針對為場景變化幀(如以上所討論的)的P幀(以及相關(guān)聯(lián)的P幀F(xiàn)LQP 118),場景變化P幀的每一個塊的失真率可以被確定為如以上所討論的,并且BLQP可以基于失真率與閾值的比較以及基于場景變化P幀F(xiàn)LQP被確定。例如,如果所述失真率大于閾值,則所述塊級量化參數(shù)(BLQP)可以被確定為等于FLQP。如果所述失真率小于所述閾值,則偏移可以基于所述失真率被確定,并且所述偏移可以應(yīng)用于所述FLQP以便確定所述BLQP(例如,所述FLQP可以減少偏移以便確定所述BLQP),如方程(17)所示:
QPp_場景_變化_塊=QPp_場景_變化_幀+偏移P(失真_率)
(17)
其中,QPp_場景_變化_塊可以是具有大于閾值的失真率的場景變化P幀塊的塊級量化參數(shù),QPp_場景_變化_幀可以是場景變化P幀幀級量化參數(shù),偏移P可以是確定偏移的函數(shù),并且失真_率可以是如所討論的失真率。在一些示例中,所述偏移可以是在約-1至-6的范圍中,從而使得低復(fù)雜度區(qū)域中的塊可以具有高達(dá)6個單元(小于幀級QP)的塊級量化參數(shù)。如針對函數(shù)偏移I所討論的,偏移P可以是任何適當(dāng)?shù)暮瘮?shù),諸如線性函數(shù)、選擇函數(shù)等,并且偏移P可以提供任何適當(dāng)?shù)钠苹蚱品秶?,諸如在-1至-6、-1至-4、-2至-3等的范圍中的偏移。
針對不是場景變化幀的P幀(例如,P幀F(xiàn)LQP 118)以及針對B幀(例如,針對幀間幀),每一個塊的失真率可以被確定為如以上所討論的,并且BLQP可以基于失真率與一個或多個閾值的比較以及基于非場景變化或B幀F(xiàn)LQP被確定。在一些示例中,BLQP還可以基于塊的運動向量。例如,如果塊的失真率大于第一閾值,正偏移可以應(yīng)用于FLQP以便確定BLQP。所述正偏移可以是基于失真率的任何適當(dāng)?shù)钠苹蚱品秶T如例如,1至3、1至4等的范圍中的偏移。在實施例中,所述正偏移處于1至3的范圍中,從而使得塊(例如,HVS低敏感性區(qū)域中的塊)可以使用高達(dá)3(大于幀級量化參數(shù))的量化參數(shù)。此外,如果塊的失真率小于第二閾值,負(fù)偏移可以應(yīng)用于FLQP以便確定BLQP。所述負(fù)偏移可以是基于失真率的任何適當(dāng)?shù)钠苹蚱品秶?,諸如例如,-1至-4、-1至-2等的范圍中的偏移。在實施例中,所述負(fù)偏移處于-1至-4的范圍中,從而使得塊(例如,HVS敏感區(qū)域中的塊)可以使用高達(dá)4(小于幀級量化參數(shù))的量化參數(shù)。
如所討論的,在一些示例中,第一閾值可以用于正偏移確定,并且第二閾值可以用于負(fù)偏移確定。在一些示例中,所述第一閾值可以大于所述第二閾值。在實施例中,所述第一閾值可以大于所述第二閾值,并且如果塊的失真率處于第一和第二閾值之間,則塊的塊級QP被設(shè)置為幀級QP。在一些示例中,所述第一閾值針對不同的幀類型可以相同或不同,并且所述第二閾值針對不同的幀類型可以相同或不同。
此外,在一些示例中,與塊相關(guān)聯(lián)的運動向量可以用于確定偏移(正偏移或負(fù)偏移或無變化)或用于修改基于失真率的偏移。例如,針對具有大運動向量的塊,可以應(yīng)用正偏移和/或可以增加基于失真率所確定的偏移。類似地,針對具有小或零運動向量的塊,可以應(yīng)用負(fù)偏移和/或可以降低基于失真率所確定的偏移。
如圖1所示。基于塊的QP調(diào)整模塊110可以將BLQP 125傳輸至量化模塊112和/或模式選擇模塊113。量化模塊112可以接收BLQP 125和變換系數(shù)111,并且可以基于BLQP 125對變換系數(shù)111進(jìn)行量化。變換系數(shù)111可以是任何適當(dāng)?shù)淖儞Q系數(shù),諸如例如,基于亮度數(shù)據(jù)的離散余弦變換的變換系數(shù)、色度數(shù)據(jù)、差分?jǐn)?shù)據(jù)(例如,針對預(yù)測塊與實際塊之間的差)等。例如,量化模塊112可以使用如在此所討論的塊的基于塊的QP對塊的變換系數(shù)進(jìn)行量化??梢允褂幂^小的QP(為了更高的質(zhì)量)對處于HVS敏感區(qū)域或序列中的塊進(jìn)行量化,并且使用較大的QP(為了比特率節(jié)省)對處于低HVS敏感區(qū)域或序列中的塊進(jìn)行量化。模式選擇模塊113可以接收BLQP 125,并且可以用于模式選擇和/或模式?jīng)Q定。
如所示出的,BLQP 125、經(jīng)量化的變換系數(shù)和/或模式選擇數(shù)據(jù)可以被傳輸至熵編碼器114。熵編碼器114可以將BLQP 125、經(jīng)量化的變換系數(shù)、(多個)模式數(shù)據(jù)和/或其他數(shù)據(jù)(例如,運動向量等)熵編碼至比特流115中。在一些示例中,經(jīng)量化的變換系數(shù)、(多個)模式數(shù)據(jù)、和/或其他數(shù)據(jù)在編碼之前可以被提供給掃描模塊。此外,盡管在此針對熵編碼進(jìn)行了討論,但是可以使用任何適當(dāng)?shù)?多個)編碼技術(shù)。比特流115可以被傳輸至另一個設(shè)備以用于解碼或保存至存儲器設(shè)備等。在一些示例中,比特流115可以是標(biāo)準(zhǔn)順應(yīng)性比特流,諸如例如,符合AVC或HEVC的比特流等。
在此針對圖1和其他處所討論的技術(shù)可以提供具有降低比特率優(yōu)點的類似或更好的主觀視頻質(zhì)量。
圖2是展示根據(jù)本公開的至少一些實現(xiàn)方式安排的用于提供具有恒定視覺質(zhì)量的視頻編碼的示例過程200的流程圖。如圖2所展示的,過程200可以包括一個或多個操作201-221。過程200可以形成視頻編碼過程的至少一部分。通過非限制性示例,針對由如在此討論的系統(tǒng)100采取的視頻,過程200可以形成視頻編碼過程的至少一部分。
過程200可以在開始操作201“開始”處開始,在所述操作中,可以使能或選擇恒定視覺質(zhì)量(例如,可以設(shè)置或選擇恒定視覺質(zhì)量模式)。此外,可以由用戶或如在此討論的系統(tǒng)100等確定ICQ因子(諸如ICQ因子103),并且可以選擇視頻序列等(諸如視頻102)以用于編碼。
過程200可以在操作202“接收視頻序列和恒定質(zhì)量因子(ICQ因子)”處繼續(xù),在所述操作中,可以接收視頻序列和ICQ因子。例如,可以經(jīng)由量化參數(shù)模塊101接收視頻102和ICQ因子103。
過程200可以在操作203“幀類型”處繼續(xù),在所述操作中,可以確定視頻序列的幀的幀類型。例如,可以確定任何幀類型(例如,I幀、P幀、B幀、B參考幀等)。取決于幀類型,處理可以在操作204、205、或206處繼續(xù)。為了清除呈現(xiàn),可以以線性或串行方式描述過程200的操作;然而,實際上,可以以任何順序和/或并行執(zhí)行過程200的操作。例如,可以使用過程200立刻處理多個幀。
如果幀類型被確定為I幀,過程200可以在操作204“初始QP(I)”處繼續(xù),在所述操作中,可以確定I幀的初始量化參數(shù)。例如,可以基于如在此討論的方程(1)由初始QP估計模塊105確定初始QP(I)。
過程200可以在操作207“QP I幀”處繼續(xù),在所述操作中,可以確定I幀的幀級QP。例如,幀內(nèi)QP估計模塊107可以基于I幀的初始量化參數(shù)以及I幀的空間和/或時間復(fù)雜度(例如,如從空間/時間復(fù)雜度模塊104接收的)確定I幀的幀級QP。在實施例中,幀內(nèi)QP估計模塊107可以基于如在此討論的方程(4)確定I幀的幀級QP。
過程200可以在操作210“I幀的塊的QP”處繼續(xù),在所述操作中,可以確定I幀的塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以基于塊的失真率以及與閾值的比較確定I幀的塊級QP。例如,如果塊的失真率大于閾值,則塊的塊級QP可以是幀級QP,并且如果塊的失真率小于閾值,則塊的塊級QP可以基于如在此討論的方程(16)被確定。
過程200可以在操作220“量化、模式選擇、編碼”處繼續(xù),在所述操作中,(多個)模式選擇可以基于I幀BLQP,變換系數(shù)可以基于I幀BLQP被量化,并且經(jīng)量化的變化系數(shù)、I幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)可以被熵編碼至比特流中。例如,量化模塊112可以基于I幀BLQP125(其可以包括如所討論的其他幀BLQP)對變換系數(shù)進(jìn)行量化,模式選擇模塊113可以基于I幀BLQP 125作出(多個)模式選擇,并且熵編碼器114可以將經(jīng)量化的變換系數(shù)、I幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)編碼至比特流115中。
返回至操作203,如果幀類型被確定為P幀,過程200可以在操作205“初始QP(P)”處繼續(xù),在所述操作中,可以確定P幀的初始量化參數(shù)。例如,可以基于如在此討論的方程(2)由初始QP估計模塊105確定初始QP(P)。
過程200可以在操作208“參考QP(P)”處繼續(xù),在所述操作中,可以確定和/或維持P幀(和/或其他P幀)的參考QP。例如,可以基于如在操作207處確定的且如從操作207至操作208經(jīng)由虛線示出的I幀(例如,當(dāng)前(多個)P幀的I幀參考)的幀級QP來確定P幀的參考QP。在示例中,場景變化檢測和P幀QP估計模塊108可以基于如在此討論的方程(5)使用I幀F(xiàn)LQP來確定參考QP。在另一示例中,基于具有幀內(nèi)或場景變化參考幀的前一P幀的幀級QP以及如從操作217至操作208經(jīng)由虛線示出的,可以確定或重新確定或修改P幀的參考QP。在示例中,場景變化檢測和P幀QP估計模塊108可以基于如在此討論的方程(11)使用具有幀內(nèi)或場景變化參考幀的前一P幀的QP來確定參考QP。
過程200可以在決定操作211“場景變化?”處繼續(xù),在所述操作中,可以確定P幀是否為場景變化P幀。例如,場景變化檢測和P幀QP估計模塊108可以基于P幀的時間復(fù)雜度確定P幀是否為場景變化P幀。在實施例中,可以基于目標(biāo)P幀的時間復(fù)雜度以及基于過去幀的過去平均時間復(fù)雜度確定比值,從而使得如果比值大于閾值,則所述確定比值被確定為場景變化幀。
如果所述P幀被確定為場景變化P幀,則過程200可以在操作214“QP、P幀、SC”處繼續(xù),在所述操作中,可以確定場景變化P幀的幀級QP。例如,場景變化檢測和P幀QP估計模塊108可以基于I幀的初始量化參數(shù)以及場景變化P幀的空間和/或時間復(fù)雜度(例如,如從空間/時間復(fù)雜度模塊104接收的)確定場景變化P幀的幀級QP。在實施例中,場景變化檢測和P幀QP估計模塊108可以基于如在此討論的方程(7)確定場景變化P幀的幀級QP。
過程200可以在操作219“確定P幀的塊的QP”處繼續(xù),在所述操作中,可以確定場景變化P幀的塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以基于塊的失真率(例如,塊的復(fù)雜度與幀的復(fù)雜度之比)以及與閾值的比較確定場景變化P幀的塊級QP。例如,如果塊的失真率大于閾值,則塊的塊級QP可以是幀級QP,并且如果塊的失真率小于閾值,則塊的塊級QP可以基于如在此討論的方程(17)被確定。
過程200可以在操作220“量化、模式選擇、編碼”處繼續(xù),在所述操作中,(多個)模式選擇可以基于場景變化P幀BLQP,變換系數(shù)可以基于場景變化P幀BLQP被量化,并且經(jīng)量化的變化系數(shù)、場景變化P幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)可以被熵編碼至比特流中。例如,量化模塊112可以基于場景變化P幀BLQP 125(其可以包括如所討論的其他幀BLQP)對變換系數(shù)進(jìn)行量化,模式選擇模塊113可以基于場景變化P幀BLQP作出(多個)模式選擇,并且熵編碼器114可以將經(jīng)量化的變換系數(shù)、I幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)編碼至比特流115中。
返回至操作211,如果所述P幀被確定為不是場景變化P幀,則過程200可以在操作213“時間比”處繼續(xù),在所述操作中,可以確定P幀(例如,非場景變化P幀)的時間比。例如,可以基于如在此討論的方程(9)由場景變化檢測和P幀QP估計模塊108確定時間比。
過程200可以在決定操作215“前一(Prev)幀內(nèi)幀或場景變化(SC)”處繼續(xù),在所述操作中,可以確定當(dāng)前P幀(例如,非場景變化P幀)的編碼參考幀是否為幀內(nèi)幀(例如,I幀)或場景變化P幀。例如,系統(tǒng)的場景變化檢測和P幀QP估計模塊108或另一模塊可以確定非場景變化P幀的參考幀是否為幀內(nèi)幀或場景變化幀P幀。
如果所述當(dāng)前P幀基于幀內(nèi)幀或場景變化P幀,則過程200可以在操作217“QP、P幀(Prev I或SC)”處繼續(xù),在所述操作中,可以確定具有幀內(nèi)幀或場景變化參考幀的非場景變化P幀的幀級量化參數(shù)。例如,場景變化檢測和P幀QP估計模塊108可以基于如在此討論的方程(10)確定P幀的幀級QP。
過程200可以在操作219“確定P幀的塊的QP”處繼續(xù),在所述操作中,可以確定具有幀內(nèi)幀或場景變化參考幀的非場景變化P幀的塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以基于每一個塊的失真率(例如,塊的復(fù)雜度與幀的復(fù)雜度之比)以及所述失真率與一個或多個閾值的比較來確定P幀的塊級QP。例如,如果塊的失真率大于第一閾值,則正偏移可以應(yīng)用到幀級QP以便確定塊級QP,并且如果塊的失真率小于第二閾值,則負(fù)偏移可以應(yīng)用到幀級QP以便確定如在此討論的塊級QP。
如參考I幀BLQP和/或場景變化P幀BLQP討論的,過程200可以在操作220“量化、模式選擇、編碼”處繼續(xù),在所述操作中,(多個)模式選擇可以基于具有幀內(nèi)幀或場景變化P幀參考BLQP的非場景變化P幀,變換系數(shù)可以基于BLQP被量化,并且經(jīng)量化的變化系數(shù)、場景變化P幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)可以被熵編碼至比特流中。
返回至操作215,如果所述當(dāng)前P幀并不基于幀內(nèi)幀也不基于場景變化P幀,則過程200可以在操作218“QP、P幀”處繼續(xù),在所述操作中,可以確定既不具有幀內(nèi)幀也不具有場景變化參考幀的非場景變化P幀的幀級量化參數(shù)。例如,場景變化檢測和P幀QP估計模塊108可以基于如在此討論的方程(12)確定P幀的幀級QP。
過程200可以在操作219“確定P幀的塊的QP”處繼續(xù),在所述操作中,可以確定既不具有幀內(nèi)幀也不具有場景變化參考幀的非場景變化P幀的塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以基于每一個塊的失真率(例如,塊的復(fù)雜度與幀的復(fù)雜度之比)以及所述失真率與一個或多個閾值的比較來確定P幀的塊級QP。例如,如果塊的失真率大于第一閾值,則正偏移可以應(yīng)用到幀級QP以便確定塊級QP,并且如果塊的失真率小于第二閾值,則負(fù)偏移可以應(yīng)用到幀級QP以便確定如在此討論的塊級QP。
如在此所討論的,過程200可以在操作220“量化、模式選擇、編碼”處繼續(xù),在所述操作中,(多個)模式選擇可以基于不具有幀內(nèi)幀或場景變化P幀參考幀BLQP的非場景變化P幀,變換系數(shù)可以基于BLQP被量化,并且經(jīng)量化的變化系數(shù)、場景變化P幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)可以被熵編碼至比特流中。
返回至操作203,如果幀類型被確定為B幀,過程200可以在操作206“初始QP(B)”處繼續(xù),在所述操作中,可以確定B幀的初始量化參數(shù)。例如,可以基于如在此討論的方程(3)由初始_QP估計模塊105確定初始QP(B)。
過程200可以在操作209“參考QP(B)”處繼續(xù),在所述操作中,可以確定和/或維持B幀(和/或其他B幀)的參考QP。例如,基于如在操作207處確定的I幀的幀級QP以及如基于幀級QP從操作207至操作209經(jīng)由虛線示出的,可以確定B幀的參考QP。在示例中,B幀QP估計模塊109可以基于如在此討論的方程(6)使用I幀F(xiàn)LQP來確定參考QP。在另一示例中,基于前一場景變化P幀的幀級QP以及如從操作215至操作209經(jīng)由虛線示出的,可以確定或重新確定或修改B幀的參考QP。在示例中,B幀QP估計模塊109可以基于如在此討論的方程(8)使用場景變化P幀F(xiàn)LQP來確定參考QP。在又另一示例中,基于不具有參考幀(所述參考幀為幀內(nèi)幀或場景變化幀)的前一非場景變化P幀的幀級QP以及如從操作218至操作209經(jīng)由虛線示出的,可以確定或重新確定或修改B幀的參考QP。在示例中,B幀QP估計模塊109可以基于如在此討論的方程(13)使用P幀F(xiàn)LQP來確定參考QP。
過程200可以在操作212“QP、B幀”處繼續(xù),在所述操作中,可以確定B幀的幀級QP。例如,B幀QP估計模塊109可以基于如被修改以便生成B幀的參考量化參數(shù)的B幀的初始量化參數(shù)確定B幀的幀級QP。在實施例中,B幀QP估計模塊109可以基于如在此討論的方程(14)確定B幀的幀級QP(例如,所述幀級QP可以是經(jīng)維持的B幀參考QP)。在另一實施例中,B幀QP估計模塊109可以基于如在此討論的方程(15)確定B幀(例如,B參考幀)的幀級QP。
過程200可以在操作216“確定B幀的塊的QP”處繼續(xù),在所述操作中,可以確定B幀的塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以基于每一個塊的失真率(例如,塊的復(fù)雜度與幀的復(fù)雜度之比)以及所述失真率與一個或多個閾值的比較來確定B幀的塊級QP。例如,如果塊的失真率大于第一閾值,則正偏移可以應(yīng)用到幀級QP以便確定塊級QP,并且如果塊的失真率小于第二閾值,則負(fù)偏移可以應(yīng)用到幀級QP以便確定如在此討論的塊級QP。
如在此所討論的,過程200可以在操作220“量化、模式選擇、編碼”處繼續(xù),在所述操作中,(多個)模式選擇可以基于B幀參考BLQP,變換系數(shù)可以基于BLQP被量化,并且經(jīng)量化的變化系數(shù)、場景變化P幀BLQP、(多個)模式數(shù)據(jù)、和/或附加數(shù)據(jù)可以被熵編碼至比特流中。
過程200可以在操作221“比特流”處結(jié)束,在所述操作中,可以生成基于以上技術(shù)生成的比特流。所生成的比特流可以經(jīng)由存儲器設(shè)備存儲和/或被傳輸至解碼器以用于解壓縮、生成視頻幀、以及向用戶呈現(xiàn)視頻幀。
圖3展示了根據(jù)本公開的至少一些實現(xiàn)方式安排的示例比特流300。在一些示例中,比特流300可以對應(yīng)于如圖1所示的比特流115。盡管未在圖3中示出,但是在一些示例中,比特流300可以包括一個或多個報頭部分以及一個或多個數(shù)據(jù)部分。比特流300可以包括與編碼視頻數(shù)據(jù)相關(guān)聯(lián)的任何適當(dāng)?shù)臄?shù)據(jù)。如圖3所示,比特流300可以包括編碼量化變換系數(shù)301、編碼模式數(shù)據(jù)302、編碼I幀塊級量化參數(shù)303、編碼P幀塊級量化參數(shù)304、編碼B幀塊級量化參數(shù)305、和/或編碼運動向量數(shù)據(jù)306。如所討論的,比特流300可以經(jīng)由系統(tǒng)100的熵編碼器114生成。
例如,比特流300可以包括編碼量化變換系數(shù)301,所述編碼量化變換系數(shù)包括(例如,由量化模塊112)基于如在此所討論的相關(guān)聯(lián)的塊級量化參數(shù)進(jìn)行量化的變換系數(shù)。所述經(jīng)量化的變換系數(shù)可以被編碼(例如,經(jīng)由熵編碼器114被熵編碼的)并插入比特流300中。此外,比特流300可以包括編碼模式數(shù)據(jù)302,所述編碼模式數(shù)據(jù)可以包括來自模式選擇模塊113的被編碼(例如,經(jīng)由熵編碼器114被熵編碼的)并插入比特流300中的(多個)模式選擇數(shù)據(jù)。同樣如所示出的,比特流300可以包括編碼I幀塊級量化參數(shù)303、編碼P幀塊級量化參數(shù)304、編碼B幀塊級量化參數(shù)305,其可以包括被編碼(例如,經(jīng)由熵編碼器114被熵編碼的)并插入比特流300中的塊級量化參數(shù)(例如,BLQP)。
如所討論的,比特流300可以經(jīng)由編碼器或編碼器系統(tǒng)(諸如例如,系統(tǒng)100)生成,并且比特流300可以存儲至(例如,系統(tǒng)100的)存儲器中、存儲至存儲器存儲設(shè)備(例如,盤、用于下載的服務(wù)器等)中。此外,比特流300可以由解碼器訪問(例如,經(jīng)由讀取盤、流傳輸、下載等),所述解碼器可以對比特流進(jìn)行解碼并且生成視頻幀或視頻幀序列以用于呈現(xiàn)給用戶。
圖4是展示根據(jù)本公開的至少一些實現(xiàn)方式安排的用于提供具有恒定視覺質(zhì)量的視頻編碼的示例過程400的流程圖。如圖4中所示,過程400可以包括一個或多個操作401-403。過程400可以形成視頻編碼過程的至少一部分。通過非限制性示例,針對由如在此討論的系統(tǒng)100采取的視頻,過程400可以形成視頻編碼過程的至少一部分。進(jìn)一步地,在此將參考圖5的系統(tǒng)500描述過程400。
圖5是根據(jù)本公開的至少一些實現(xiàn)方式安排的用于提供具有恒定視覺質(zhì)量的視頻編碼的示例系統(tǒng)500的原理圖。如圖5所示,系統(tǒng)500可以包括圖形處理單元(GPU)501、一個或多個中央處理單元502以及存儲器存儲503。同樣如所示出的,GPU 501可以包括量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、和/或熵編碼器模塊114。在系統(tǒng)500的示例中,存儲器存儲503可以存儲視頻內(nèi)容,諸如視頻幀和/或比特流。
圖像處理單元501可以包括任意數(shù)量和類型的圖像處理單元,這些圖形處理單元可以提供如在此討論的操作。這些操作可以經(jīng)由軟件或硬件或其組合來實現(xiàn)。在實施例中,圖像處理單元501的所展示的模塊可以經(jīng)由電路等來實現(xiàn)。例如,圖形處理單元501可以包括專門用于操縱視頻數(shù)據(jù)以便生成壓縮圖像數(shù)據(jù)的電路。中央處理單元502可以包括任意數(shù)量和類型的處理單元或模塊,這些處理單元或模塊可以為系統(tǒng)500提供控制以及其他更高級別的功能。存儲器存儲503可以是任意類型的存儲器,如易失性存儲器(例如,靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)等)或非易失性存儲器(例如,閃存等)等等。在實施例中,存儲器存儲503可以被配置成用于存儲視頻數(shù)據(jù),諸如幀和/或塊級量化參數(shù)、經(jīng)量化的變化系數(shù)、比特流、或在此討論的任何其他視頻數(shù)據(jù)。在非限制性示例中,存儲器存儲503可以由緩存存儲器實現(xiàn)。在實施例中,量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、和/或熵編碼器模塊114可以經(jīng)由圖形處理單元501的執(zhí)行單元(EU)實現(xiàn)。EU可以包括例如可編程邏輯或電路,如可以提供廣泛的可編程邏輯功能陣列的一個或多個邏輯核。在實施例中,量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、和/或熵編碼器模塊114可以經(jīng)由專用硬件(如固定功能電路等)實現(xiàn)。固定功能電路可以包括專用邏輯或電路并且可以提供固定功能入口點的集合,所述集合可以映射到針對固定目的或功能的專用邏輯。
返回至對圖4的討論,過程400可以在操作401“確定視頻序列的視頻幀的量化參數(shù)”處開始,在所述操作中,可以確定視頻序列的視頻幀的第一量化參數(shù)。例如,初始QP估計模塊、場景變化檢測和P幀QP估計模塊108、和/或B幀QP估計模塊109中的一項或多項可以生成視頻幀的量化參數(shù)。在一些示例中,所述第一量化參數(shù)可以包括智能恒定質(zhì)量因子、初始QP值、或如在此討論的參考QP。
例如,如果視頻幀是I幀或場景變化P幀,則第一量化參數(shù)可以是初始QP值(諸如初始_QP(I))或如在此討論的恒定質(zhì)量因子(諸如ICQ因子)。例如,所述量化參數(shù)可以基于用戶選擇的恒定質(zhì)量因子,ICQ因子。
如果視頻幀為不是場景變化幀的P幀,則第一量化參數(shù)可以基于恒定質(zhì)量因子(例如,初始_QP(I))或增加了P幀偏移(例如,初始_QP(P),如方程(2)所示)的恒定質(zhì)量因子,并且基于與所述P幀相關(guān)聯(lián)的幀內(nèi)量化值被修改(例如,如方程(5)所示,其中,所述幀內(nèi)量化值是QP幀內(nèi))。
如果視頻幀是B幀,則第一量化參數(shù)可以基于增加了B幀偏移(例如,初始_QP(B))的恒定質(zhì)量因子,并且基于與B幀相關(guān)聯(lián)的幀內(nèi)量化值(例如,如方程(6)所示,其中,所述幀內(nèi)量化值是QP幀內(nèi))或基于與B幀相關(guān)聯(lián)的P幀量化值(例如,如方程(8)所示,其中,所述P幀量化值是QPp_場景_變化_幀)被修改。
過程400可以在操作402“基于視頻幀的復(fù)雜度修改量化參數(shù)以便生成視頻幀的第二量化參數(shù)”處繼續(xù),在所述操作中,可以基于與視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度中的至少一項修改第一量化參數(shù)以便生成視頻幀的第二量化參數(shù)。例如,智能恒定質(zhì)量因子、初始QP值、或參考QP可以基于視頻幀的空間復(fù)雜度(例如,幀內(nèi)預(yù)測失真)或時間復(fù)雜度(例如,幀間預(yù)測失真)被修改以便生成第二量化參數(shù)。在一些示例中,當(dāng)與視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度分別指示高空間復(fù)雜度或高時間復(fù)雜度中的至少一項時,第二量化參數(shù)可以大于第一量化參數(shù)。
例如,如果視頻幀是I幀或場景變化P幀,則第二量化參數(shù)可以基于第一量化參數(shù)(例如,恒定質(zhì)量因子),并且可以與幀內(nèi)幀或場景變化P幀的空間復(fù)雜度成比例。例如,第二量化參數(shù)可以基于如所討論的方程(4)(例如,針對I幀)或方程(7)(例如,針對場景變化P幀)被確定。
如果所述視頻幀為不是場景變化幀的P幀,則所述第一量化參數(shù)可以是參考QP值,諸如所討論的QPp_參考。第二量化參數(shù)可以基于第一量化參數(shù),所述第一量化參數(shù)基于P幀的時間復(fù)雜度與視頻序列的過去平均時間復(fù)雜度的時間比被調(diào)整。例如,第二量化參數(shù)可以基于如在此討論的方程(9)和方程(10)被確定。
如果視頻幀是B幀,則第三量化參數(shù)可以基于第二量化參數(shù)被確定。例如,B幀可以是視頻序列的第二幀,并且第二量化參數(shù)可以是幀(例如,I幀或P幀)的幀級量化參數(shù)。在此上下文中,第三量化參數(shù)可以是基于方程(6)、方程(8)或方程(13)所確定的參考B幀量化參數(shù),并且如方程(14)中所示,B幀的幀級量化參數(shù)可以等于參考B幀量化參數(shù)(例如,如所討論的第三量化參數(shù))。如所討論的,如果視頻幀是B參考幀,則第三量化參數(shù)可以基于第二量化參數(shù)的平均值,從而使得第二量化參數(shù)包括基于方程(11)的P幀參考量化參數(shù)和B幀參考量化參數(shù)。例如,如方程(15)中所示,可以確定B參考幀的幀級量化參數(shù)。
過程400可以在操作403“基于第二量化參數(shù)、塊的復(fù)雜度、以及視頻幀的復(fù)雜度生成視頻幀的塊的塊級量化參數(shù)”處繼續(xù),在所述操作中,可以基于第二量化參數(shù)、單獨塊的復(fù)雜度、以及視頻幀的復(fù)雜度生成視頻幀的單獨塊的塊級量化參數(shù)。例如,基于塊的QP調(diào)整模塊110可以生成視頻幀的單獨塊的量化參數(shù)。例如,針對視頻幀的每一個塊可以重復(fù)操作403。
例如,如果視頻幀是幀內(nèi)幀(例如,I幀)或場景變化P幀,則塊級量化參數(shù)可以基于單獨塊的復(fù)雜度與幀內(nèi)幀或場景變化P幀的復(fù)雜度之比與第一閾值的比較而等于第二量化參數(shù)或者小于第二量化參數(shù)。例如,可以確定單獨塊的失真率。如果失真率大于(或者大于等于)閾值,則塊級量化參數(shù)可以等于幀級量化參數(shù)。如果失真率小于(或者小于等于)閾值,則塊的塊級量化參數(shù)可以基于如在此討論的方程(16)(例如,針對I幀)或方程(17)(例如,針對場景變化P幀)被確定。
如果視頻幀是幀間幀(例如,不是場景變化幀、B幀、或B參考幀的P幀),則塊級量化參數(shù)可以基于單獨塊的復(fù)雜度與幀間幀的復(fù)雜度之比與第一閾值的比較而大于第二量化參數(shù)或者基于單獨塊的復(fù)雜度與幀間幀的復(fù)雜度之比與第二閾值的比較而小于第二量化參數(shù)。例如,如果塊的失真率(如以上討論的)大于第一閾值,則正偏移可以應(yīng)用到幀級QP以便確定塊級QP,并且如果塊的失真率小于第二閾值,則負(fù)偏移可以應(yīng)用到幀級QP以便確定如在此討論的塊級QP。
如所討論的,塊級量化參數(shù)可以用于對與單獨塊相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化和/或用于作出與視頻序列相關(guān)聯(lián)的模式選擇決定。所述塊級量化參數(shù)、經(jīng)量化的變換系數(shù)、和/或模式可以被編碼成如在此討論的比特流??梢葬槍θ我鈹?shù)量的視頻幀、視頻序列或視頻片段串行地或者并行地重復(fù)過程400任意次數(shù)。
在此描述的系統(tǒng)的各種組件可以用軟件、固件、和/或硬件和/或其任意組合來實現(xiàn)。例如,系統(tǒng)100或系統(tǒng)500的各組件可以至少部分地由諸如可以在計算系統(tǒng)(諸如,例如,智能電話)中找到的計算片上系統(tǒng)(SoC)的硬件來提供。本領(lǐng)域技術(shù)人員可以認(rèn)識到,在此描述的系統(tǒng)可以包括尚未在相應(yīng)附圖中描繪的附加組件。例如,在此討論的系統(tǒng)可以包括為了清楚起見尚未被描繪的附加組件,諸如比特流復(fù)用器或解復(fù)用器模塊等。
雖然在此討論的示例過程(例如,過程200和過程400)的實現(xiàn)方式可以包括按所展示的順序采取示出的所有操作,但是本公開并不限于這個方面,并且在各個示例中,此處的示例過程的實現(xiàn)方式可以僅包括所示操作的子集、以與所展示的順序不同的順序執(zhí)行的操作、或附加操作。
另外,在此討論的操作中的任何一個或多個操作可以響應(yīng)于由一個或多個計算機(jī)程序產(chǎn)品提供的指令而被采取。這類程序產(chǎn)品可以包括提供指令的信號承載介質(zhì),當(dāng)指令由例如處理器執(zhí)行時可以提供在此描述的功能。計算機(jī)程序產(chǎn)品可以以一個或多個機(jī)器可讀介質(zhì)的任何形式被提供。因此,例如,包括一個或多個圖形處理單元或處理器核的處理器可以響應(yīng)于由一個或多個機(jī)器可讀介質(zhì)傳達(dá)給處理器的程序代碼和/或指令或指令集而采取此處的示例過程的塊中的一個或多個塊。通常,機(jī)器可讀介質(zhì)可以以程序代碼和/或指令或指令集的形式傳達(dá)軟件,這些程序編碼和指令集可以使在此描述的設(shè)備和/或系統(tǒng)中的任意一者實現(xiàn)系統(tǒng)100或500的至少多個部分、或者如在此討論的任何其他模塊或組件。
如在此描述的任何實現(xiàn)方式中所使用的,術(shù)語“模塊”指被配置成用于提供在此所描述的功能的軟件邏輯、固件邏輯、硬件邏輯和/或電路的任意組合。軟件可以具體化為軟件包、代碼和/或指令集或指令,并且如在此描述的任何實現(xiàn)方式中所使用的,“硬件”可以例如單獨地或以任何組合包括硬連線電路、可編程電路、狀態(tài)機(jī)電路、固定功能電路、執(zhí)行單元電路和/或存儲由可編程電路執(zhí)行的指令的固件。這些模塊可以統(tǒng)一地或單獨地具體化為形成例如,集成電路(IC)、片上系統(tǒng)(SoC)等的較大系統(tǒng)的一部分的電路。
圖6是根據(jù)本公開的至少一些實現(xiàn)方式安排的示例系統(tǒng)600的原理圖。在各實現(xiàn)方式中,盡管系統(tǒng)600不限于此上下文,但系統(tǒng)600可以是媒體系統(tǒng)。例如,系統(tǒng)600可以并入個人計算機(jī)(PC)、膝上計算機(jī)、超級膝上計算機(jī)、平板機(jī)、觸摸板、便攜式計算機(jī)、手持式計算機(jī)、掌上型計算機(jī)、個人數(shù)字助理(PDA)、蜂窩電話、組合式蜂窩電話/PDA、電視、智能設(shè)備(例如,智能電話、智能平板機(jī)或智能電視)、移動互聯(lián)網(wǎng)設(shè)備(MID)、消息設(shè)備、數(shù)據(jù)通信設(shè)備、相機(jī)(例如,自動對焦相機(jī)、超級變焦相機(jī)、數(shù)碼單鏡頭反光(DSLR)相機(jī))等。
在各實現(xiàn)方式中,系統(tǒng)600包括耦合至顯示器620的平臺602。平臺602可以從內(nèi)容設(shè)備(諸如(多個)內(nèi)容服務(wù)設(shè)備630或(多個)內(nèi)容傳遞設(shè)備640或者其他類似內(nèi)容源)接收內(nèi)容。包括一個或多個導(dǎo)航特征的導(dǎo)航控制器650可以用于例如與平臺602和/或顯示器620進(jìn)行交互。以下更詳細(xì)地描述這些組件中的每一個組件。
在各實現(xiàn)方式中,平臺602可以包括芯片組605、處理器610、存儲器612、天線613、存儲設(shè)備614、圖形子系統(tǒng)615、應(yīng)用616和/或無線電618的任意組合。芯片組605可以在處理器610、存儲器612、存儲設(shè)備614、圖形子系統(tǒng)615、應(yīng)用616和/或無線電618之中提供相互通信。例如,芯片組605可以包括能夠提供與存儲設(shè)備614的相互通信的存儲器適配器(未描繪)。
處理器610可以被實現(xiàn)為復(fù)雜指令集計算機(jī)(CISC)或精簡指令集計算機(jī)(RISC)處理器、x86指令集兼容處理器、多核處理器或任何其他微處理器或中央處理器單元(CPU)。在各實現(xiàn)方式中,處理器610可以是(多個)雙核處理器、(多個)雙核移動處理器等。
存儲器612可以被實現(xiàn)為易失性存儲設(shè)備,如但不限于隨機(jī)存取存儲器(RAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、或靜態(tài)RAM(SRAM)。
存儲設(shè)備614可以被實現(xiàn)為非易失性存儲設(shè)備,如但不限于磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器、內(nèi)部存儲設(shè)備、附屬存儲設(shè)備、閃存、電池應(yīng)急SDRAM(同步DRAM)和/或網(wǎng)絡(luò)可接入的存儲設(shè)備。在各實現(xiàn)方式中,存儲設(shè)備614可以包括用于當(dāng)例如包括多個硬盤驅(qū)動器時增加對有價值的數(shù)字媒體的存儲性能增強(qiáng)型保護(hù)的技術(shù)。
圖形子系統(tǒng)615可以執(zhí)行對諸如用于顯示的靜態(tài)或視頻圖像的處理。例如,圖形子系統(tǒng)615可以是圖形處理單元(GPU)或視覺處理單元(VPU)??梢允褂媚M或數(shù)字接口來通信地耦合圖形子系統(tǒng)615與顯示器620。例如,接口可以是高清多媒體接口、顯示端口、無線HDMI、和/或符合無線HD技術(shù)中的任何一個接口。圖形子系統(tǒng)615可以集成到處理器610或芯片組605中。在一些實現(xiàn)方式中,圖形子系統(tǒng)615可以是通信地耦合至芯片組605的獨立設(shè)備。
在此描述的圖形和/或視頻處理技術(shù)可以用各種硬件架構(gòu)實現(xiàn)。例如,圖形和/或視頻功能可以集成到芯片組中??商娲?,可以使用離散圖形和/或視頻處理器。如又另一種實現(xiàn)方式,圖形和/或視頻功能可以由通用處理器(包括多核處理器)來提供。在進(jìn)一步的實施例中,所述功能可以在消費電子設(shè)備中實現(xiàn)。
無線電618可以包括能夠使用各種適當(dāng)?shù)臒o線通信技術(shù)發(fā)射并接收信號的一個或多個無線電。這類技術(shù)可以涉及跨一個或多個無線網(wǎng)絡(luò)的通信。示例無線網(wǎng)絡(luò)包括(但不限于)無線局域網(wǎng)(WLAN)、無線個人局域網(wǎng)(WPAN)、無線城域網(wǎng)(WMAN)、蜂窩網(wǎng)和衛(wèi)星網(wǎng)。在跨這類網(wǎng)絡(luò)進(jìn)行通信時,無線電618可以根據(jù)任何版本中的一個或多個可適用標(biāo)準(zhǔn)進(jìn)行操作。
在各實現(xiàn)方式中,顯示器620可以包括任何電視機(jī)類型的監(jiān)測器或顯示器。顯示器620可以包括例如,計算機(jī)顯示屏、觸摸屏顯示器、視頻監(jiān)視器、類似電視機(jī)的設(shè)備和/或電視機(jī)。顯示器620可以是數(shù)字的和/或模擬的。在各實現(xiàn)方式中,顯示器620可以是全息顯示器。而且,顯示器620可以是可以接收視覺投影的透明表面。這種投影可以傳達(dá)各種形式的信息、圖像和/或物體。例如,這種投影可以是針對移動增強(qiáng)現(xiàn)實(MAR)應(yīng)用的視覺疊加。在一個或多個軟件應(yīng)用616的控制下,平臺602可以在顯示器620上顯示用戶界面622。
在各實現(xiàn)方式中,(多個)內(nèi)容服務(wù)設(shè)備630可以由任何國家的、國際的和/或獨立的服務(wù)托管,并因此例如經(jīng)由互聯(lián)網(wǎng)可接入平臺602。(多個)內(nèi)容服務(wù)設(shè)備630可以耦合至平臺602和/或至顯示器620。平臺602和/或(多個)內(nèi)容服務(wù)設(shè)備630可以耦合至網(wǎng)絡(luò)660以便將媒體信息傳達(dá)至該網(wǎng)絡(luò)660或者從該網(wǎng)絡(luò)傳達(dá)(例如,發(fā)送和/或接收)。(多個)內(nèi)容傳遞設(shè)備640也可以耦合至平臺602和/或至顯示器620。
在各實現(xiàn)方式中,(多個)內(nèi)容服務(wù)設(shè)備630可以包括有線電視盒、個人計算機(jī)、網(wǎng)絡(luò)、電話、能夠傳遞數(shù)字信息和/或內(nèi)容的支持互聯(lián)網(wǎng)的設(shè)備或電器、以及能夠在內(nèi)容提供方與平臺602和/或顯示器620之間經(jīng)由網(wǎng)絡(luò)660或直接地單向或雙向傳達(dá)內(nèi)容的任何其他類似設(shè)備。將認(rèn)識到,內(nèi)容可以經(jīng)由網(wǎng)絡(luò)660被單向地和/或雙向地傳達(dá)到系統(tǒng)600中的組件中的任何一個組件和內(nèi)容提供方且從系統(tǒng)中的組件中的任何一個組件和內(nèi)容提供方被傳達(dá)。內(nèi)容的示例可以包括任何媒體信息,包括例如視頻、音樂、醫(yī)療和游戲信息等。
(多個)內(nèi)容服務(wù)設(shè)備630可以接收如包括媒體信息、數(shù)字信息和/或其他內(nèi)容的有線電視節(jié)目的內(nèi)容。內(nèi)容提供方的示例可以包括任何有線或衛(wèi)星電視或無線電或互聯(lián)網(wǎng)內(nèi)容提供方。所提供的示例不旨在以任何方式限制根據(jù)本公開的實現(xiàn)方式。
在各實現(xiàn)方式中,平臺602可以從具有一個或多個導(dǎo)航特征的導(dǎo)航控制器650中接收控制信號。控制器650的導(dǎo)航特征可以用于例如與用戶界面622進(jìn)行交互。在各實施例中,導(dǎo)航控制器650可以是定點設(shè)備,所述定點設(shè)備可以是允許用戶輸入空間(例如,連續(xù)的和多維的)數(shù)據(jù)到計算機(jī)的計算機(jī)硬件組件(特別是人機(jī)接口設(shè)備)。諸如圖形用戶界面(GUI)、和電視機(jī)以及監(jiān)視器的許多系統(tǒng)允許用戶使用物理姿勢來控制計算機(jī)或電視機(jī)并向計算機(jī)或電視機(jī)提供數(shù)據(jù)。
可以通過指針、光標(biāo)、聚焦環(huán)或在顯示器上顯示的其他視覺指示器的移動在顯示器(例如,顯示器620)上復(fù)制控制器650的導(dǎo)航特征的移動。例如,在軟件應(yīng)用616的控制下,位于導(dǎo)航控制器650上的導(dǎo)航特征可以例如被映射至用戶界面622上顯示的虛擬導(dǎo)航特征。在各實施例中,控制器650可以不是獨立組件但可以集成在平臺602和/或顯示器620內(nèi)。然而,本公開不限于在此示出或描述的元素或上下文。
在各實現(xiàn)方式中,驅(qū)動器(未示出)可以包括使用戶能夠通過例如在初始引導(dǎo)后啟動的按鈕的觸摸立刻打開和關(guān)閉類似電視機(jī)的平臺602的技術(shù)。當(dāng)平臺被“關(guān)閉”時,程序邏輯可以允許平臺602將內(nèi)容流傳輸?shù)矫襟w適配器或其他(多個)內(nèi)容服務(wù)設(shè)備630或(多個)內(nèi)容傳遞設(shè)備640。此外,芯片組605可以包括支持例如5.1環(huán)繞聲音頻和/或高清7.1環(huán)繞聲音頻的硬件和/或軟件。驅(qū)動器可以包括用于集成圖形平臺的圖形驅(qū)動器。在各實施例中,圖形驅(qū)動器可以包括外圍組件互連(PCI)快速圖形卡。
在各實現(xiàn)方式中,系統(tǒng)600中示出的組件中的任何一個或多個組件可以是集成的。例如,平臺602和(多個)內(nèi)容服務(wù)設(shè)備630可以是集成的,或者平臺602和(多個)內(nèi)容傳遞設(shè)備640可以是集成的,或者平臺602、(多個)內(nèi)容服務(wù)設(shè)備630和(多個)內(nèi)容傳遞設(shè)備640可以例如是集成的。在各實施例中,平臺602和顯示器620可以是集成單元。例如,顯示器620和(多個)內(nèi)容服務(wù)設(shè)備630可以是集成的,或者顯示器620和(多個)內(nèi)容傳遞設(shè)備640可以是集成的。這些示例并不意在限制本公開。
在各實施例中,系統(tǒng)600可以被實現(xiàn)為無線系統(tǒng)、有線系統(tǒng)、或二者的組合。當(dāng)被實現(xiàn)為無線系統(tǒng)時,系統(tǒng)600可以包括適合于通過如一個或多個天線、發(fā)送器、接收器、收發(fā)器、放大器、濾波器、控制邏輯等的無線共享介質(zhì)進(jìn)行通信的組件和接口。無線共享介質(zhì)的示例可以包括無線頻譜部分,如RF頻譜等。當(dāng)被實現(xiàn)為有線系統(tǒng)時,系統(tǒng)600可以包括適用于通過有線通信介質(zhì)(如輸入/輸出(I/O)適配器、利用相應(yīng)有線通信介質(zhì)連接I/O適配器的物理連接器、網(wǎng)絡(luò)接口卡(NIC)、光盤控制器、視頻控制器、音頻控制器等)進(jìn)行通信的組件和接口。有線通信介質(zhì)的示例可以包括導(dǎo)線、電纜、金屬引線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞線、同軸電纜、光纖等。
平臺602可以建立一個或多個邏輯或物理信道以傳達(dá)信息。所述信息可以包括媒體信息和控制信息。媒體信息可以指表示針對用戶的內(nèi)容的任何數(shù)據(jù)。內(nèi)容的示例可以包括例如,來自語音對話、視頻會議、流媒體視頻、電子郵件(“email”)消息、語音郵件消息、字母數(shù)字符號、圖形、圖像、視頻、文字等的數(shù)據(jù)。來自語音對話的數(shù)據(jù)可以是例如,語音信息、靜默時間段、背景噪音、舒適噪音、聲調(diào)等??刂菩畔⒖梢灾副硎踞槍ψ詣踊到y(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。例如,控制信息可以用于通過系統(tǒng)路由媒體信息、或者指示節(jié)點以預(yù)定方式處理所述媒體信息。然而,各實施例不限于圖6中示出或描述的元素或上下文。
如上所述,系統(tǒng)600可以用變化的物理風(fēng)格或形成因子來體現(xiàn)。圖7展示了可以用其具體化系統(tǒng)700的小形成因子設(shè)備700的實現(xiàn)方式。在各實施例中,例如,設(shè)備700可以被實現(xiàn)為具有無線能力的移動計算設(shè)備。例如,移動計算設(shè)備可以指具有處理系統(tǒng)和移動電源或電源(諸如一個或多個電池)的任何設(shè)備。
如上所述,移動計算設(shè)備的示例可以包括個人計算機(jī)(PC)、膝上計算機(jī)、超級膝上計算機(jī)、平板機(jī)、觸摸板、便攜式計算機(jī)、手持式計算機(jī)、掌上型計算機(jī)、個人數(shù)字助理(PDA)、蜂窩電話、組合式蜂窩電話/PDA、電視、智能設(shè)備(例如,智能電話、智能平板機(jī)或智能電視)、移動互聯(lián)網(wǎng)設(shè)備(MID)、消息設(shè)備、數(shù)據(jù)通信設(shè)備、相機(jī)(例如,自動對焦相機(jī)、超級變焦相機(jī)、數(shù)碼單鏡頭反光(DSLR)相機(jī))等。
移動計算設(shè)備的示例還可以包括被安排以由人穿戴的計算機(jī),諸如手腕計算機(jī)、手指計算機(jī)、戒指計算機(jī)、眼鏡計算機(jī)、皮帶夾計算機(jī)、臂帶計算機(jī)、鞋計算機(jī)、服裝計算機(jī)、以及其他可穿戴計算機(jī)。在各實施例中,例如移動計算設(shè)備可以實現(xiàn)為能夠執(zhí)行計算機(jī)應(yīng)用程序、以及語音通信和/或數(shù)據(jù)通信的智能電話。舉例來講,盡管一些實施例可以用被實現(xiàn)為智能電話的移動計算設(shè)備來描述,但可以理解的是,其他實施例也可以使用其他無線移動計算設(shè)備來實現(xiàn)。實施例并不局限于本上下文中。
如圖7中所示,設(shè)備700可以包括:殼體702、顯示器704、輸入/輸出(I/O)設(shè)備706、和天線708。設(shè)備700還可以包括導(dǎo)航特征712。顯示器704可以包括適合于移動計算設(shè)備的用于顯示信息的任何適當(dāng)?shù)娘@示單元。I/O設(shè)備706可以包括用于將信息輸入移動計算設(shè)備中的任何適當(dāng)?shù)腎/O設(shè)備。I/O設(shè)備706的示例可以包括:字母數(shù)字鍵盤、數(shù)字小鍵盤、觸摸板、輸入鍵、按鈕、開關(guān)、搖桿式開關(guān)、麥克風(fēng)、揚聲器、語音識別設(shè)備和軟件等。信息也可以通過麥克風(fēng)(未示出)輸入到設(shè)備700中。這種信息可以由語音識別設(shè)備(未示出)數(shù)字化。實施例并不局限于本上下文中。
可以使用硬件元件、軟件元件、或兩者的組合來實現(xiàn)各實施例。硬件元件的示例可以包括:處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片組等。軟件的示例可以包括:軟件組件、程序、應(yīng)用、計算機(jī)程序、應(yīng)用程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計算代碼、計算機(jī)代碼、代碼段、計算機(jī)代碼段、字、值、符號、或其任意組合。判定是否使用硬件元件和/或軟件元件來實現(xiàn)實施例可以根據(jù)任意數(shù)量的因子而變化,如預(yù)期的計算速率、功率電平、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度以及其他設(shè)計或性能約束。
可以由機(jī)器可讀介質(zhì)上所存儲的表屬性指令實現(xiàn)至少一個實施例的一個或多個方面,所述指令代表處理器內(nèi)的各種邏輯,當(dāng)被機(jī)器讀取時所述指令使所述機(jī)器制作用于執(zhí)行在此所描述的技術(shù)的邏輯。此類表示(稱為“IP核”)可以被存儲在有形的機(jī)器可讀介質(zhì)上并提供給各顧客或制造設(shè)施以加載至實際制作所述邏輯或處理器的制作機(jī)器中。
雖然已經(jīng)參照各實現(xiàn)方式描述了在此闡述的某些特征,但并不打算在限制性意義上解釋本說明書。因此,本公開涉及的對本領(lǐng)域技術(shù)人員而言明顯的對在此描述的實現(xiàn)方式以及其他實現(xiàn)方式的各種修改被視為是在本公開的精神和范圍內(nèi)。
下面的示例涉及進(jìn)一步的實施例。
在一個或多個第一實施例中,一種用于視頻編碼的計算機(jī)實現(xiàn)的方法包括:確定視頻序列的視頻幀的第一量化參數(shù);基于與所述視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度中的至少一項對所述第一量化參數(shù)進(jìn)行修改以便生成所述視頻幀的第二量化參數(shù);以及基于所述第二量化參數(shù)、單獨塊的復(fù)雜度、以及所述視頻幀的復(fù)雜度生成所述視頻幀的所述單獨塊的塊級量化參數(shù)。
進(jìn)一步針對所述第一實施例,當(dāng)所述單獨塊的復(fù)雜度與所述視頻幀的復(fù)雜度之比大于一時,所述塊級量化參數(shù)大于所述第二量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述第一量化參數(shù)基于所述視頻序列的由用戶選擇的恒定質(zhì)量因子。
進(jìn)一步針對所述第一實施例,所述第一量化參數(shù)基于所述視頻序列的恒定質(zhì)量因子以及基于幀類型的偏移。
進(jìn)一步針對所述第一實施例,所述第一量化參數(shù)基于所述視頻序列的由用戶選擇的恒定質(zhì)量因子,或者其中,所述第一量化參數(shù)基于所述視頻序列的恒定質(zhì)量因子以及基于幀類型的偏移。
進(jìn)一步針對所述第一實施例,所述空間復(fù)雜度包括基于所述視頻幀的幀內(nèi)預(yù)測失真。
進(jìn)一步針對所述第一實施例,所述時間復(fù)雜度包括基于所述視頻幀的幀間預(yù)測失真。
進(jìn)一步針對所述第一實施例,所述空間復(fù)雜度包括基于所述視頻幀的幀內(nèi)預(yù)測失真,和/或其中,所述時間復(fù)雜度包括基于所述視頻幀的幀間預(yù)測失真。
進(jìn)一步針對所述第一實施例,當(dāng)與所述視頻幀相關(guān)聯(lián)的所述空間復(fù)雜度或所述時間復(fù)雜度分別指示高空間復(fù)雜度或高時間復(fù)雜度中的至少一項時,所述第二量化參數(shù)大于所述第一量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述單獨塊的復(fù)雜度包括所述單獨塊的塊預(yù)測失真或所述單獨塊的塊方差中的至少一項。
進(jìn)一步針對所述第一實施例,所述視頻幀包括幀內(nèi)幀或場景變化P幀,其中,所述第一量化參數(shù)等于所述視頻序列的恒定質(zhì)量因子;其中,所述第二量化參數(shù)與同所述幀內(nèi)幀或所述場景變化P幀相關(guān)聯(lián)的所述空間復(fù)雜度成比例;并且其中,基于所述單獨塊的復(fù)雜度與所述幀內(nèi)幀或所述場景變化P幀的復(fù)雜度之比與閾值的比較,所述塊級量化參數(shù)等于所述第二量化參數(shù)或者小于所述第二量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述視頻幀包括P幀,其中,所述第一量化參數(shù)基于所述視頻序列的增加了P幀偏移的恒定質(zhì)量因子,并且基于與所述幀間P幀相關(guān)聯(lián)的I幀的幀內(nèi)量化值而被修改;并且其中,所述第二量化參數(shù)基于所述第一量化參數(shù),所述第一量化參數(shù)基于所述幀間P幀的時間復(fù)雜度與所述視頻序列的過去平均時間復(fù)雜度的時間比而被調(diào)整。
進(jìn)一步針對所述第一實施例,所述視頻幀包括幀間幀,其中,所述塊級量化參數(shù)是以下情況中的至少一種情況:基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第一閾值的比較而大于所述第二量化參數(shù)或者基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第二閾值的比較而小于所述第二量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述方法進(jìn)一步包括:確定所述視頻序列的第二視頻幀的第三量化參數(shù),其中,所述第二視頻幀是B幀,并且其中,所述第三量化參數(shù)基于所述第二量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述方法進(jìn)一步包括:確定所述視頻序列的第二視頻幀的第三量化參數(shù),其中,所述第二視頻幀是B幀,并且其中,所述第三量化參數(shù)基于所述第二量化參數(shù);其中,所述B幀是B參考幀,其中,所述第三量化參數(shù)基于所述第二量化參數(shù)的平均值,其中,所述第二量化參數(shù)包括P幀參考量化參數(shù)和B幀參考量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述方法進(jìn)一步包括:確定所述視頻序列的第二視頻幀的第三量化參數(shù),其中,所述第二視頻幀是B幀,并且其中,所述第三量化參數(shù)基于所述第二量化參數(shù);和/或其中,所述B幀是B參考幀,其中,所述第三量化參數(shù)基于所述第二量化參數(shù)的平均值,其中,所述第二量化參數(shù)包括P幀參考量化參數(shù)和B幀參考量化參數(shù)。
進(jìn)一步針對所述第一實施例,所述方法進(jìn)一步包括:基于所述塊級量化參數(shù)對與所述單獨塊相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化;以及將所述經(jīng)量化的變換系數(shù)與所述塊級量化參數(shù)編碼成比特流。
進(jìn)一步針對所述第一實施例,所述方法進(jìn)一步包括:至少部分地基于所述塊級量化參數(shù)生成與所述視頻序列相關(guān)聯(lián)的模式選擇。
在一個或多個第二實施例中,一種用于在計算設(shè)備上提供視頻編碼的系統(tǒng)包括:被配置成用于存儲視頻數(shù)據(jù)的存儲器以及耦合至所述存儲器的圖形處理單元,其中,所述圖形處理單元包括:量化參數(shù)電路,所述量化參數(shù)電路被配置成用于:確定視頻序列的視頻幀的第一量化參數(shù);基于與所述視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度中的至少一項對所述第一量化參數(shù)進(jìn)行修改以便生成所述視頻幀的第二量化參數(shù);以及基于所述第二量化參數(shù)、單獨塊的復(fù)雜度、以及所述視頻幀的復(fù)雜度生成所述視頻幀的所述單獨塊的塊級量化參數(shù);以及量化電路,所述量化電路被配置成用于基于所述塊級量化參數(shù)對與所述單獨塊相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化以便生成經(jīng)量化的變換系數(shù)。
進(jìn)一步針對所述第二實施例,當(dāng)所述單獨塊的復(fù)雜度與所述視頻幀的復(fù)雜度之比大于一時,所述塊級量化參數(shù)大于所述第二量化參數(shù)。
進(jìn)一步針對所述第二實施例,所述視頻幀包括幀內(nèi)幀或場景變化P幀,其中,所述第一量化參數(shù)等于所述視頻序列的恒定質(zhì)量因子;其中,所述第二量化參數(shù)與同所述幀內(nèi)幀或所述場景變化P幀相關(guān)聯(lián)的所述空間復(fù)雜度成比例;并且其中,基于所述單獨塊的復(fù)雜度與所述幀內(nèi)幀或所述場景變化P幀的復(fù)雜度之比與閾值的比較,所述塊級量化參數(shù)等于所述第二量化參數(shù)或者小于所述第二量化參數(shù)。
進(jìn)一步針對所述第二實施例,所述視頻幀包括P幀,其中,所述第一量化參數(shù)基于所述視頻序列的增加了P幀偏移的恒定質(zhì)量因子,并且基于與所述幀間P幀相關(guān)聯(lián)的I幀的幀內(nèi)量化值而被修改;并且其中,所述第二量化參數(shù)基于所述第一量化參數(shù),所述第一量化參數(shù)基于所述幀間P幀的時間復(fù)雜度與所述視頻序列的過去平均時間復(fù)雜度的時間比而被調(diào)整。
進(jìn)一步針對所述第二實施例,所述視頻幀包括幀間幀,其中,所述塊級量化參數(shù)是以下情況中的至少一種情況:基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第一閾值的比較而大于所述第二量化參數(shù)或者基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第二閾值的比較而小于所述第二量化參數(shù)。
進(jìn)一步針對所述第二實施例,所述量化參數(shù)電路進(jìn)一步被配置成用于:確定所述視頻序列的第二視頻幀的第三量化參數(shù),其中,所述第二視頻幀是B幀,并且其中,所述第三量化參數(shù)基于所述第二量化參數(shù)。
進(jìn)一步針對所述第二實施例,所述B幀是B參考幀,其中,所述第三量化參數(shù)基于所述第二量化參數(shù)的平均值;其中,所述第二量化參數(shù)包括P幀參考量化參數(shù)和B幀參考量化參數(shù)。
在一個或多個第三實施例中,一種用于在計算設(shè)備上提供視頻編碼的系統(tǒng)包括:被配置成用于存儲視頻數(shù)據(jù)的存儲器以及耦合至所述存儲器的圖形處理單元,其中,所述圖形處理單元包括:用于確定視頻序列的視頻幀的第一量化參數(shù)的裝置;用于基于與所述視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度中的至少一項對所述第一量化參數(shù)進(jìn)行修改以便生成所述視頻幀的第二量化參數(shù)的裝置;以及用于基于所述第二量化參數(shù)、單獨塊的復(fù)雜度、以及所述視頻幀的復(fù)雜度生成所述視頻幀的所述單獨塊的塊級量化參數(shù)的裝置。
進(jìn)一步針對所述第三實施例,所述視頻幀包括P幀,其中,所述第一量化參數(shù)基于所述視頻序列的增加了P幀偏移的恒定質(zhì)量因子,并且基于與所述幀間P幀相關(guān)聯(lián)的I幀的幀內(nèi)量化值而被修改;并且其中,所述第二量化參數(shù)基于所述第一量化參數(shù),所述第一量化參數(shù)基于所述幀間P幀的時間復(fù)雜度與所述視頻序列的過去平均時間復(fù)雜度的時間比而被調(diào)整。
進(jìn)一步針對所述第三實施例,所述視頻幀包括幀間幀,其中,所述塊級量化參數(shù)是以下情況中的至少一種情況:基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第一閾值的比較而大于所述第二量化參數(shù)或者基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第二閾值的比較而小于所述第二量化參數(shù)。
在一個或多個第四實施例中,一種機(jī)器可讀介質(zhì)包括多條指令,所述指令響應(yīng)于在計算設(shè)備上被執(zhí)行而使所述計算設(shè)備通過以下各項執(zhí)行視頻編碼:確定視頻序列的視頻幀的第一量化參數(shù);基于與所述視頻幀相關(guān)聯(lián)的空間復(fù)雜度或時間復(fù)雜度中的至少一項對所述第一量化參數(shù)進(jìn)行修改以便生成所述視頻幀的第二量化參數(shù);以及基于所述第二量化參數(shù)、單獨塊的復(fù)雜度、以及所述視頻幀的復(fù)雜度生成所述視頻幀的所述單獨塊的塊級量化參數(shù)。
進(jìn)一步針對所述第四實施例,所述視頻幀包括幀內(nèi)幀或場景變化P幀,其中,所述第一量化參數(shù)等于所述視頻序列的恒定質(zhì)量因子;其中,所述第二量化參數(shù)與同所述幀內(nèi)幀或所述場景變化P幀相關(guān)聯(lián)的所述空間復(fù)雜度成比例;并且其中,基于所述單獨塊的復(fù)雜度與所述幀內(nèi)幀或所述場景變化P幀的復(fù)雜度之比與閾值的比較,所述塊級量化參數(shù)等于所述第二量化參數(shù)或者小于所述第二量化參數(shù)。
進(jìn)一步針對所述第四實施例,所述視頻幀包括P幀,其中,所述第一量化參數(shù)基于所述視頻序列的增加了P幀偏移的恒定質(zhì)量因子,并且基于與所述幀間P幀相關(guān)聯(lián)的I幀的幀內(nèi)量化值而被修改;并且其中,所述第二量化參數(shù)基于所述第一量化參數(shù),所述第一量化參數(shù)基于所述幀間P幀的時間復(fù)雜度與所述視頻序列的過去平均時間復(fù)雜度的時間比而被調(diào)整。
進(jìn)一步針對所述第四實施例,所述視頻幀包括幀間幀,其中,所述塊級量化參數(shù)是以下情況中的至少一種情況:基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第一閾值的比較而大于所述第二量化參數(shù)或者基于所述單獨塊的復(fù)雜度與所述幀間幀的復(fù)雜度之比與第二閾值的比較而小于所述第二量化參數(shù)。
進(jìn)一步針對所述第四實施例,所述機(jī)器可讀介質(zhì)進(jìn)一步包括多條指令,所述指令響應(yīng)于在所述計算設(shè)備上被執(zhí)行而使所述計算設(shè)備通過確定所述視頻序列的第二視頻幀的第三量化參數(shù)來執(zhí)行視頻編碼,其中,所述第二視頻幀是B幀,并且其中,所述第三量化參數(shù)基于所述第二量化參數(shù)。
在一個或多個第五實施例中,至少一種機(jī)器可讀介質(zhì)可以包括多條指令,所述指令響應(yīng)于在計算設(shè)備上被執(zhí)行而使所述計算設(shè)備執(zhí)行根據(jù)以上實施例中的任一個實施例的方法。
在一個或多個第六實施例中,一種裝置可以包括:用于執(zhí)行根據(jù)以上實施例中的任一個實施例的方法的裝置。
將認(rèn)識到,這些實施例不局限于如此描述的這些實施例,而是可以在不背離所附權(quán)利要求書的范圍的情況下通過修改和變更來實踐。例如,以上實施例可以包括特征的特定組合。然而,以上實施例不局限于這個方面,并且在各實現(xiàn)方式中,以上實施例可以包括僅采取這類特征的子集、采取這類特征的不同順序、采取這類特征的不同組合和/或采取除了明確例舉的那些特征之外的附加特征。因此,這些實施例的范圍應(yīng)當(dāng)參考所附權(quán)利要求書、連同這樣的權(quán)利要求書有權(quán)獲得的等效物的全部范圍來確定。