本申請(qǐng)要求于2014年7月30日提交的題為“GOLDEN FRAME SELECTION IN VIDEO CODING(視頻編碼中的黃金幀選擇)”的美國(guó)專利申請(qǐng)序號(hào)14/446,556的優(yōu)先權(quán),該美國(guó)專利申請(qǐng)以其全部?jī)?nèi)容通過(guò)引用結(jié)合在此。
背景技術(shù):
在壓縮/解壓縮(編解碼)系統(tǒng)中,壓縮效率和視頻質(zhì)量是重要的性能指標(biāo)。例如,在許多視頻應(yīng)用中,視頻質(zhì)量是用戶體驗(yàn)的重要方面,并且壓縮效率影響存儲(chǔ)視頻文件所需的存儲(chǔ)器存儲(chǔ)量和/或傳輸和/或流傳輸視頻內(nèi)容所需的帶寬量。例如,視頻編碼器對(duì)視頻信息進(jìn)行壓縮從而使得更多的信息可通過(guò)給定帶寬被發(fā)送或存儲(chǔ)在給定的存儲(chǔ)器空間中等。經(jīng)壓縮的信號(hào)或數(shù)據(jù)然后可以經(jīng)由對(duì)該信號(hào)或數(shù)據(jù)進(jìn)行解碼或解壓縮的解碼器被解碼以顯示給用戶。在大多數(shù)實(shí)現(xiàn)方式中,具有更大壓縮的更高視頻質(zhì)量是令人期望的。
在一些方法中,可以對(duì)正被壓縮的視頻幀進(jìn)行幀類型選擇。例如,幀類型可以包括:不參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的幀內(nèi)幀(I幀)、參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的且可用于預(yù)測(cè)其他幀的預(yù)測(cè)幀(P幀)、和/或參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的但不可用于預(yù)測(cè)其他幀的雙向幀(B幀)。其他幀類型可以是可用的。此外,在一些方法中,視頻幀可以被指定為黃金幀。例如,針對(duì)當(dāng)前幀,一個(gè)或多個(gè)最近的過(guò)去幀和/或時(shí)間上接近的未來(lái)幀通常可用于對(duì)當(dāng)前幀進(jìn)行編碼(例如,使用運(yùn)動(dòng)補(bǔ)償技術(shù)等)。此外,在一些實(shí)現(xiàn)方式中,黃金幀(如,例如,更遠(yuǎn)的過(guò)去幀)可用于對(duì)當(dāng)前幀進(jìn)行編碼。例如,在對(duì)視頻流傳輸可能特別有利的VP8和VP9視頻壓縮格式中,黃金幀的使用是可被啟用的特征。在這種背景下,選擇哪些幀作為黃金幀以及這些黃金幀的速率控制在所產(chǎn)生的視頻質(zhì)量和壓縮中是重要的決策。然而,用于選擇黃金幀并提供黃金幀的速率控制的現(xiàn)有技術(shù)可能并不能提供高質(zhì)量視頻和/或高壓縮增益。
這樣,現(xiàn)有技術(shù)可能并不能為用戶和/或有效壓縮提供高視覺(jué)質(zhì)量。隨著越來(lái)越高質(zhì)量的視頻傳輸變得更加廣泛,這類問(wèn)題可能變得關(guān)鍵。
附圖說(shuō)明
在附圖中通過(guò)舉例而非限制的方式展示了本文所描述的材料。為了圖示的簡(jiǎn)明和清晰,圖中所展示的元件不一定按比例繪制。例如,為清楚起見(jiàn),某些元件的尺寸相對(duì)于其他元件可能被放大了。另外,在認(rèn)為適當(dāng)?shù)那闆r下,在附圖之間對(duì)參考標(biāo)記加以重復(fù)以表示相應(yīng)的或相似的元件。在附圖中:
圖1是一種用于提供視頻編碼的示例系統(tǒng)的示意圖;
圖2是展示用于在視頻編碼中指定黃金幀的示例過(guò)程的流程圖;
圖3展示了示例黃金幀分布;
圖4展示了具有兩個(gè)黃金幀類別的示例黃金幀分布;
圖5展示了示例比特流;
圖6是展示用于提供具有黃金幀的視頻編碼的示例過(guò)程的流程圖;
圖7是一種用于提供具有黃金幀的視頻編碼的示例系統(tǒng)的示意圖;
圖8是示例系統(tǒng)的示意圖;并且
圖9展示了全部根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的示例設(shè)備。
具體實(shí)施方式
現(xiàn)在參照附圖描述一個(gè)或多個(gè)實(shí)施例或?qū)崿F(xiàn)方式。雖然對(duì)特定配置和安排進(jìn)行了討論,但應(yīng)理解,這僅出于說(shuō)明目的來(lái)進(jìn)行。相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在不背離本描述的精神和范圍的情況下可以采用其他配置和安排。對(duì)相關(guān)領(lǐng)域技術(shù)人員而言將明顯的是,在此描述的技術(shù)和/或安排還可以在除了在此描述的系統(tǒng)和應(yīng)用之外的各種各樣的其他系統(tǒng)和應(yīng)用中被采用。
雖然以下描述闡述可以在如例如片上系統(tǒng)(SoC)架構(gòu)的架構(gòu)中顯現(xiàn)各實(shí)現(xiàn)方式,但在此描述的技術(shù)和/或安排的實(shí)現(xiàn)方式并不局限于具體的架構(gòu)和/或計(jì)算系統(tǒng)并且出于類似目的可以由任何架構(gòu)和/或計(jì)算系統(tǒng)實(shí)現(xiàn)。例如,采用例如多個(gè)集成電路(IC)芯片和/或封裝體、和/或各種計(jì)算設(shè)備和/或消費(fèi)電子產(chǎn)品(CE)設(shè)備(如機(jī)頂盒、智能電話等)的各架構(gòu)可以實(shí)現(xiàn)在此描述的技術(shù)和/或安排。此外,雖然以下描述可以闡述許多特定的細(xì)節(jié)(如邏輯實(shí)現(xiàn)、系統(tǒng)部件的類型和內(nèi)在關(guān)系、邏輯劃分/集成選擇等),但要求保護(hù)的主題可以在沒(méi)有這些特定細(xì)節(jié)的情況下被實(shí)踐。在其他實(shí)例中,可以不詳細(xì)示出某些材料(如,例如,控制結(jié)構(gòu)和完整的軟件指令序列),以便不模糊在此公開(kāi)的材料。
在此公開(kāi)的材料可以在硬件、固件、軟件、或其任意組合中實(shí)現(xiàn)。在此公開(kāi)的材料還可以被實(shí)現(xiàn)為存儲(chǔ)于機(jī)器可讀介質(zhì)上的指令,這些指令可以由一個(gè)或多個(gè)處理器來(lái)讀取并執(zhí)行。機(jī)器可讀介質(zhì)可以包括用于存儲(chǔ)或傳輸具有由機(jī)器(例如,計(jì)算設(shè)備)可讀的形式的信息的任何介質(zhì)和/或機(jī)制。例如,機(jī)器可讀介質(zhì)可包括:只讀存儲(chǔ)器(ROM);隨機(jī)存取存儲(chǔ)器(RAM);磁盤(pán)存儲(chǔ)介質(zhì);光存儲(chǔ)介質(zhì);閃速存儲(chǔ)設(shè)備;電、光、聲或其他形式的傳播信號(hào)(例如,載波、紅外信號(hào)、數(shù)字信號(hào)等)以及其他。
說(shuō)明書(shū)中提到“一種實(shí)現(xiàn)方式”、“實(shí)現(xiàn)方式”、“示例實(shí)現(xiàn)方式”等表明所描述的實(shí)現(xiàn)方式可以包括具體特征、結(jié)構(gòu)、或特性,但每個(gè)實(shí)施例可能不一定包括這個(gè)具體特征、結(jié)構(gòu)、或特性。而且,這些短語(yǔ)不一定指同一實(shí)現(xiàn)方式。此外,當(dāng)結(jié)合一個(gè)實(shí)施方式來(lái)說(shuō)明特定特征、結(jié)構(gòu)或特性時(shí),應(yīng)當(dāng)指出,無(wú)論是否在本文中明確說(shuō)明,結(jié)合其他實(shí)施方式來(lái)實(shí)現(xiàn)這種特征、結(jié)構(gòu)或特性都在本領(lǐng)域技術(shù)人員的知識(shí)范圍內(nèi)。
本文描述的方法、設(shè)備、裝置、計(jì)算平臺(tái)和制品涉及視頻編碼,并且具體地涉及黃金幀選擇以及非黃金幀隨后的黃金幀的幀大小和/或量化參數(shù)確定。
如上所述,在許多視頻編碼實(shí)現(xiàn)方式中提供更高的視覺(jué)質(zhì)量和更大的壓縮可能是有利的。還如所討論的,在一些視頻編解碼系統(tǒng)中,黃金幀可以被選擇或被指定。例如,黃金幀可以是可用于對(duì)當(dāng)前幀進(jìn)行編碼的更遠(yuǎn)的過(guò)去幀,被編碼成具有更高質(zhì)量(例如,更多比特)從而為編碼當(dāng)前幀提供更好參考的幀,等等。如在此使用的,術(shù)語(yǔ)“黃金幀”用于指定這種幀;然而,任何術(shù)語(yǔ)都可以用于指示這種幀,如“超幀”,等等。在一些示例中,黃金幀相比屬于相同類型的非黃金幀可以以更高質(zhì)量被編碼和/或黃金幀相比屬于相同類型的非黃金幀可以(例如,經(jīng)由存儲(chǔ)器)被保留以用于對(duì)更多數(shù)量的幀進(jìn)行編碼。例如,黃金幀可以被保留直到下一個(gè)黃金幀被指定和編碼,而非黃金幀可以僅被保留用于對(duì)下一個(gè)幀或接下來(lái)的兩個(gè)幀等等進(jìn)行編碼。
在一些實(shí)施例中,視頻編碼可以包括將視頻序列的個(gè)體幀指定為黃金幀和/或確定被指定為黃金幀的個(gè)體幀的幀大小或量化參數(shù)。如在此進(jìn)一步討論的,可以針對(duì)視頻序列的個(gè)體幀,判定該個(gè)體幀是否為場(chǎng)景變化幀、黃金幀距離(例如,以至前一黃金幀的幀數(shù)表達(dá)的距離)以及平均時(shí)間失真。例如,該平均時(shí)間失真可以是該個(gè)體幀的時(shí)間失真與自前一黃金幀開(kāi)始在個(gè)體幀之前的時(shí)間失真的平均值?;谠搨€(gè)體幀是否為場(chǎng)景變化幀、黃金幀距離和平均時(shí)間失真,可以將該個(gè)體幀指定為黃金幀或非黃金幀。例如,如果該個(gè)體幀是場(chǎng)景變化幀,則該個(gè)體幀可以被指定為黃金幀。如果該個(gè)體幀不是場(chǎng)景變化幀,則基于黃金幀距離,可以將平均時(shí)間失真與閾值進(jìn)行比較以將該個(gè)體幀指定為黃金幀或非黃金幀。
如在此進(jìn)一步討論的,如果該個(gè)體幀被指定為黃金幀,則可以基于該個(gè)體幀的時(shí)間失真、黃金幀距離和視頻序列的預(yù)定平均目標(biāo)比特率來(lái)確定幀大小(例如,用于對(duì)個(gè)體幀進(jìn)行編碼的目標(biāo)幀大小)和/或量化參數(shù)。此外,針對(duì)黃金個(gè)體幀之后的幀,可以基于編碼黃金幀大小、黃金幀距離、預(yù)定平均目標(biāo)比特率和黃金幀目標(biāo)大小來(lái)確定幀大小和/或量化參數(shù)。
黃金幀和非黃金幀量化參數(shù)可以用于對(duì)與幀相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化,并且經(jīng)量化的變換系數(shù)和量化參數(shù)可以被編碼成用于解碼器的比特流。該解碼器可以解壓縮和/或解碼該比特流以便生成再現(xiàn)幀以呈現(xiàn)給用戶。此外,黃金幀和非黃金幀量化參數(shù)可以用于生成與視頻序列相關(guān)聯(lián)的模式選擇以用于編碼。
圖1是根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的用于提供視頻編碼的示例系統(tǒng)100的示意圖。如圖1所示,系統(tǒng)100可以包括黃金幀(GF)指定和量化參數(shù)(QP)模塊101、量化模塊112、模式選擇模塊113、編碼控制器114、以及熵編碼器模塊115。還如所示,黃金幀指定和QP模塊101可以包括粗糙級(jí)失真模塊104、初始量化參數(shù)(QP)估計(jì)模塊105、歷史失真和量化參數(shù)(QP)模塊106、時(shí)間相關(guān)性估計(jì)模塊107、黃金幀指定模塊108、黃金幀判定模塊109、黃金幀大小和量化參數(shù)(QP)模塊110、以及非黃金幀大小和量化參數(shù)(QP)模塊111。
還如所示,黃金幀指定和QP模塊101可以接收視頻102和編碼參數(shù)103,并且熵編碼器模塊115可以提供或傳輸比特流128。系統(tǒng)100可以提供例如視頻壓縮,并且系統(tǒng)100可以是經(jīng)由計(jì)算機(jī)或計(jì)算設(shè)備等實(shí)現(xiàn)的視頻編碼器。例如,系統(tǒng)100可以生成與視頻壓縮-解壓縮(編碼解碼器)標(biāo)準(zhǔn)(如,VP 8標(biāo)準(zhǔn)或VP 9標(biāo)準(zhǔn)等)兼容的比特流128。
系統(tǒng)100可以包括為了清楚呈現(xiàn)而未示出的其他模塊。例如,系統(tǒng)100可以包括變換模塊、幀內(nèi)預(yù)測(cè)模塊、運(yùn)動(dòng)估計(jì)模塊、運(yùn)動(dòng)補(bǔ)償模塊、環(huán)內(nèi)濾波模塊、參考幀緩沖器、掃描模塊等。在一些示例中,系統(tǒng)100可以包括用于生成在編碼過(guò)程中使用的參考幀的本地解碼環(huán)路。這類模塊對(duì)于本領(lǐng)域技術(shù)人員是已知的,并且為了清楚地呈現(xiàn)所描述的技術(shù),在此不再對(duì)其進(jìn)一步討論。
如所討論的,黃金幀指定和QP模塊101可以接收視頻102和編碼參數(shù)103。視頻102可以包括任何適當(dāng)?shù)姆直媛实娜魏芜m當(dāng)?shù)囊曨l幀、視頻幀序列、視頻數(shù)據(jù)等。例如,視頻102可以是視頻圖形陣列(VGA)、高清晰度(HD)、全HD(例如,1080p)、或4K分辨率視頻等。此外,視頻102可以包括任何數(shù)量的視頻幀、視頻幀序列、或場(chǎng)景等??梢葬槍?duì)視頻102作出幀選擇和/或模式選擇(未示出),從而使得視頻102的視頻幀可以各自由幀類型來(lái)指定。這些幀類型可以包括任何適當(dāng)?shù)膸愋突蚨鄠€(gè)幀類型,其可以由標(biāo)準(zhǔn)或協(xié)議等來(lái)限定。例如,幀類型可以包括:不參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的幀內(nèi)幀(I幀)、參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的且可用于預(yù)測(cè)其他幀的預(yù)測(cè)幀(P幀)、參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的但不可用于預(yù)測(cè)其他幀的雙向幀(B幀)、和/或參考另一個(gè)或多個(gè)幀所預(yù)測(cè)的且可用于層級(jí)編碼結(jié)構(gòu)中的預(yù)測(cè)的參考雙向幀(B參考幀)。在一些示例中,B幀可能不可用,并且僅可以使用I幀和P幀。例如,在VP8標(biāo)準(zhǔn)中,僅I幀和P幀可用。在其他示例(如,VP9標(biāo)準(zhǔn)、H.264/MPEG-4高級(jí)視頻編碼(AVC)標(biāo)準(zhǔn)和高效率視頻編碼(HEVC)標(biāo)準(zhǔn))中,I幀、P幀和B幀全部可以是可用的。
編碼參數(shù)103可以包括與視頻102的編碼相關(guān)聯(lián)的任何參數(shù)。例如,編碼參數(shù)103可以包括視頻102的目標(biāo)比特率,如,預(yù)定平均目標(biāo)比特率等。在一些示例中,編碼參數(shù)103可以包括視頻質(zhì)量(如,期望的或要求的視頻質(zhì)量等)的指示,如,由用戶設(shè)置或確定的質(zhì)量因數(shù)、與系統(tǒng)100的通信連接質(zhì)量、視頻102的分辨率、量化參數(shù)范圍(例如,與經(jīng)由系統(tǒng)100實(shí)現(xiàn)的編解碼器相關(guān)聯(lián)的QP范圍)等。此外,在一些示例中,編碼參數(shù)103可以包括最小黃金幀間隔(例如,黃金幀之間的最小時(shí)間間隔或幀數(shù))、默認(rèn)黃金幀間隔(例如,黃金幀之間的默認(rèn)時(shí)間間隔或幀數(shù))、以及最大黃金幀間隔(例如,黃金幀之間的最大時(shí)間間隔或幀數(shù))。如所示,編碼參數(shù)103(或其部分)可以被提供給初始QP估計(jì)模塊105和黃金幀指定模塊108。
如所示,初始QP估計(jì)模塊105可以接收編碼參數(shù)103(或其部分),并且初始QP估計(jì)模塊105可以生成初始量化參數(shù)(IQP)117。初始量化參數(shù)117可以包括經(jīng)由系統(tǒng)100實(shí)現(xiàn)的每種幀類型的初始量化參數(shù)。例如,可以確定I幀的初始量化參數(shù)(例如,初始_QP(I))、P幀的初始量化參數(shù)(例如,初始QP_(P))和/或B幀的初始量化參數(shù)(例如,初始QP(B))。如所討論的,在一些示例中,可以不實(shí)現(xiàn)B幀,并且在這種示例中,可以不確定B幀的初始量化參數(shù)。這類初始量化參數(shù)117可以是基于例如視頻102的目標(biāo)比特率、視頻102的目標(biāo)質(zhì)量和/或(例如,如經(jīng)由編碼參數(shù)103提供的)量化參數(shù)范圍生成的。初始量化參數(shù)117可以包括任何適當(dāng)?shù)闹?。例如,初始量化參?shù)117的范圍可以是從1至51,其中,約20至26的值提供中等質(zhì)量視頻、約27至31的值提供低質(zhì)量視頻、以及約15至19的值提供高質(zhì)量視頻,盡管可以使用任何值和/或范圍。如所示,初始量化參數(shù)117可以被提供給歷史失真和QP模塊106,該歷史失真和QP模塊106可以存儲(chǔ)初始量化參數(shù)117和/或根據(jù)需要將它們提供給其他模塊。
針對(duì)視頻102(或視頻102的序列)的第一I幀,量化參數(shù)可以是基于I幀的初始量化參數(shù)(例如,初始_QP(I))的調(diào)制確定的。例如,如所示,粗糙級(jí)失真模塊104可以確定視頻102的幀的空間和/或時(shí)間復(fù)雜度(S/T C)值116。可以使用任何適當(dāng)?shù)募夹g(shù)來(lái)確定該空間復(fù)雜度,該適當(dāng)?shù)募夹g(shù)提供對(duì)視頻102的視頻幀的空間復(fù)雜度的測(cè)量。在實(shí)施例中,基于視頻102的視頻幀的幀內(nèi)預(yù)測(cè)失真對(duì)該空間復(fù)雜度進(jìn)行估計(jì)。此外,可以使用任何適當(dāng)?shù)募夹g(shù)來(lái)確定視頻102的視頻幀的時(shí)間復(fù)雜度,該適當(dāng)?shù)募夹g(shù)提供對(duì)視頻幀的時(shí)間復(fù)雜度的測(cè)量。在實(shí)施例中,基于視頻102的視頻幀的幀間預(yù)測(cè)失真對(duì)該時(shí)間復(fù)雜度進(jìn)行估計(jì)。在各個(gè)實(shí)施例中,幀內(nèi)預(yù)測(cè)失真的測(cè)量、幀間預(yù)測(cè)失真的測(cè)量或兩者均可以基于統(tǒng)計(jì)測(cè)量,如絕對(duì)差和(SAD)、失真求和等。在一些示例中,可以基于視頻102的視頻幀的下采樣版本來(lái)確定該幀內(nèi)預(yù)測(cè)失真、該幀間預(yù)測(cè)失真或兩者。例如,在確定視頻幀的幀內(nèi)預(yù)測(cè)失真、幀間預(yù)測(cè)失真或兩者之前,可以由因子2、4、或8等對(duì)視頻102的幀進(jìn)行下采樣或縮減。針對(duì)視頻102的一些視頻幀,可以確定空間和時(shí)間復(fù)雜度兩者,而針對(duì)視頻102的其他視頻幀,僅可以確定空間和時(shí)間復(fù)雜度中的一者。
可以基于I幀的初始量化參數(shù)和第一I幀的空間復(fù)雜度的度量確定視頻102的第一I幀的量化參數(shù)。在實(shí)施例中,第一I幀的量化參數(shù)可以與空間復(fù)雜度的度量成比例。例如,當(dāng)?shù)谝籌幀的空間復(fù)雜度指示高空間復(fù)雜度時(shí),第一I幀的量化參數(shù)可以大于I幀的初始量化參數(shù)(例如,初始_QP(I)),從而使得相對(duì)大的量化參數(shù)可以用于具有高空間復(fù)雜度的幀(例如,當(dāng)用戶可能沒(méi)有注意到質(zhì)量下降并且壓縮可能增加時(shí)),并且相對(duì)小的量化參數(shù)可以用于具有低空間復(fù)雜度的幀(例如,當(dāng)更高質(zhì)量可以有益于用戶時(shí))。在一些示例中,可以基于幀內(nèi)預(yù)測(cè)失真和憑經(jīng)驗(yàn)確定的常數(shù)來(lái)確定高空間復(fù)雜度。
如所討論的,在實(shí)施例中,第一I幀的量化參數(shù)可以與I幀的空間復(fù)雜度成比例。例如,第一I幀的量化參數(shù)可以被確定如方程(1)所示:
QP幀內(nèi)=初始_QP(I)×失真(幀內(nèi))C/閾值1
(1)
其中,QP幀內(nèi)可以是第一I幀的量化參數(shù),初始_QP(I)可以是I幀的初始QP值(如以上所討論的),失真(幀內(nèi))可以是幀內(nèi)空間預(yù)測(cè)失真,C可以是憑經(jīng)驗(yàn)確定的常數(shù),并且閾值1可以是憑經(jīng)驗(yàn)確定的常數(shù)或閾值。
如方程(1)所示,第一I幀的量化參數(shù)可以與升至值C的I幀的空間復(fù)雜度成比例。C可以是任何適當(dāng)?shù)闹祷虺?shù),如,例如1或任何非整數(shù)值。如所討論的,C可以憑經(jīng)驗(yàn)被確定,并且可以基于確定空間復(fù)雜度所使用的方法(例如,SAD或失真求和等)。在一些示例中,C可以基于視頻102的內(nèi)容從而使得C基于視頻102可以是自適應(yīng)的或可變的。確定第一I幀的量化參數(shù)可以由黃金幀大小和QP模塊110(例如,當(dāng)?shù)谝籌幀被典型地指定為黃金幀時(shí))或系統(tǒng)100的另一個(gè)模塊(未示出)執(zhí)行。
如所討論的,針對(duì)視頻102的幀,可以關(guān)于幀是否為黃金幀進(jìn)行指定??梢葬槍?duì)任何幀類型進(jìn)行黃金幀指定。在此,將幀指定為黃金幀或非黃金幀通常是關(guān)于P幀進(jìn)行描述的;然而,任何幀類型可以被指定為黃金幀。此外,如所述,粗糙級(jí)失真模塊104可以確定并提供空間和/或時(shí)間復(fù)雜度值116,該空間和/或時(shí)間復(fù)雜度值可以包括視頻102的幀的空間復(fù)雜度的度量和/或時(shí)間復(fù)雜度的度量。如在此使用的,這種復(fù)雜度可以被描述為失真。如所示,空間和/或時(shí)間復(fù)雜度值116可以被提供給歷史失真和QP模塊106和/或時(shí)間相關(guān)性估計(jì)模塊107。歷史失真和QP模塊106還可以接收幀大小和/或量化參數(shù)(FS&QP)123,如在此進(jìn)一步討論的。歷史失真和QP模塊106可以存儲(chǔ)并提供視頻102的幀的空間復(fù)雜度、時(shí)間復(fù)雜度、空間失真、時(shí)間失真、幀大小、量化參數(shù)或時(shí)間相關(guān)性等。例如,歷史失真和QP模塊106可經(jīng)由系統(tǒng)100的其他模塊(如,黃金幀指定和QP模塊101的模塊)可訪問(wèn)的存儲(chǔ)器來(lái)實(shí)現(xiàn)。
如所示,歷史失真和QP模塊106可以為時(shí)間相關(guān)性估計(jì)模塊107提供空間和時(shí)間復(fù)雜度以及量化參數(shù)(S/T C&QP)118。空間和時(shí)間復(fù)雜度以及量化參數(shù)118可以包括視頻102的幀的空間復(fù)雜度、時(shí)間復(fù)雜度、空間失真、時(shí)間失真或量化參數(shù),如在當(dāng)前幀之前的幀的空間復(fù)雜度、時(shí)間復(fù)雜度、空間失真、時(shí)間失真或量化參數(shù)或者在當(dāng)前幀之前直到前一黃金幀的空間復(fù)雜度、時(shí)間復(fù)雜度、空間失真、時(shí)間失真或量化參數(shù)等等。
時(shí)間相關(guān)性估計(jì)模塊107可以確定視頻102的一個(gè)或多個(gè)幀的平均時(shí)間失真和時(shí)間相關(guān)性,并且時(shí)間相關(guān)性估計(jì)模塊107可以為黃金幀指定模塊108提供平均時(shí)間失真和/或時(shí)間相關(guān)性(ATD/TC)119。例如,時(shí)間相關(guān)性估計(jì)模塊107可以確定視頻102的個(gè)體幀(例如,P幀)的時(shí)間相關(guān)性。時(shí)間相關(guān)性可以是使用一項(xiàng)或多項(xiàng)任何適當(dāng)?shù)募夹g(shù)確定的。例如,個(gè)體幀的時(shí)間相關(guān)性可以是基于個(gè)體幀的時(shí)間復(fù)雜度及其與過(guò)去幀(例如,過(guò)去的編碼P幀)的歷史平均時(shí)間復(fù)雜度的比較確定的。在實(shí)施例中,個(gè)體幀的時(shí)間相關(guān)性是個(gè)體幀的時(shí)間復(fù)雜度與時(shí)間復(fù)雜度的歷史平均之比。歷史平均可以是基于任意數(shù)量的過(guò)去幀,如,直到前一黃金幀的所有過(guò)去幀、經(jīng)由歷史失真和QP模塊106可用的所有過(guò)去幀、預(yù)定數(shù)量的過(guò)去幀等等。此外,時(shí)間相關(guān)性估計(jì)模塊107可以確定視頻102的個(gè)體幀(例如,P幀)的平均時(shí)間失真。例如,個(gè)體幀的平均時(shí)間失真可以是個(gè)體幀的時(shí)間失真與過(guò)去幀(例如,在個(gè)體幀之前的幀)的時(shí)間失真的平均值。過(guò)去幀可以包括任意數(shù)量的過(guò)去幀,如,直到前一黃金幀的所有過(guò)去幀、經(jīng)由歷史失真和QP模塊106可用的所有過(guò)去幀、預(yù)定數(shù)量的過(guò)去幀等等。
黃金幀指定模塊108可以接收平均時(shí)間失真和/或時(shí)間相關(guān)性119,并且黃金幀指定模塊108可以部分地基于經(jīng)由平均時(shí)間失真和/或時(shí)間相關(guān)性119接收的時(shí)間相關(guān)性指定黃金幀。例如,針對(duì)視頻102的幀,黃金幀指定模塊108可以基于哪些幀(若有的話)是場(chǎng)景變化幀并且基于視頻102(或視頻102的一部分或片段)的時(shí)間相關(guān)性來(lái)指定一個(gè)或多個(gè)黃金幀。在實(shí)施例中,如果視頻102的個(gè)體幀是場(chǎng)景變化幀,則該個(gè)體幀被指定為黃金幀??梢曰谌魏我豁?xiàng)或多項(xiàng)合適的技術(shù)而將幀確定為場(chǎng)景變化。在實(shí)施例中,可以將個(gè)體幀的時(shí)間相關(guān)性與預(yù)訂閾值進(jìn)行比較,從而使得如果時(shí)間相關(guān)性大于該閾值則將該個(gè)體幀視為場(chǎng)景變化幀。如果該個(gè)體幀不是場(chǎng)景變化幀,則可以基于視頻102的一部分的時(shí)間相關(guān)性將黃金幀指定在視頻102的該部分內(nèi)或分配于視頻102的該部分。例如,視頻102具有較強(qiáng)時(shí)間相關(guān)性的部分可以具有較大的黃金幀間隔(例如,黃金幀之間的幀數(shù)),并且視頻102具有弱時(shí)間相關(guān)性的部分可以具有較短的黃金幀間隔。
圖2是展示根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的用于在視頻編碼中指定黃金幀的示例過(guò)程200的流程圖。如圖2所展示的,過(guò)程200可以包括一個(gè)或多個(gè)操作201-212。過(guò)程200可以形成視頻編碼過(guò)程的至少一部分。通過(guò)非限制性示例,針對(duì)由如在此討論的系統(tǒng)100采取的視頻,過(guò)程200可以形成視頻編碼過(guò)程的至少一部分。在一些示例中,過(guò)程200可以由黃金幀指定模塊108執(zhí)行。
過(guò)程200可以從操作201“幀i”處開(kāi)始,在該操作中,可以確定視頻序列的個(gè)體幀。例如,過(guò)程200可以開(kāi)始于視頻102的第一幀、黃金幀之后的第一幀、I幀之后的第一幀等等。在一些示例中,幀i可以是在黃金幀之后的預(yù)定數(shù)量的幀,如,2至5個(gè)幀等等。
過(guò)程200可以在判定操作202“場(chǎng)景變化”處繼續(xù),在該操作中,可以判定幀i是否為場(chǎng)景變化幀。例如,針對(duì)視頻序列的個(gè)體幀,可以判定個(gè)體幀是否為場(chǎng)景變化幀??梢允褂萌魏芜m當(dāng)?shù)募夹g(shù)來(lái)確定場(chǎng)景變化幀,如,將個(gè)體幀的時(shí)間相關(guān)性與閾值進(jìn)行比較。例如,如果個(gè)體幀的時(shí)間相關(guān)性大于或大于等于閾值,則該個(gè)體幀可以使場(chǎng)景變化幀。如所示,如果個(gè)體幀(例如,幀i)被確定為場(chǎng)景變化幀,則過(guò)程200可以在操作209“黃金幀”處繼續(xù),在該操作中,個(gè)體幀可以被指定為黃金幀。
從操作209,過(guò)程200可以在操作211“下一幀”處繼續(xù),在該操作中,可以選擇下一幀用于處理。例如,如所討論的,幀i之后的幀或者在幀i一定數(shù)量的幀之后的幀可以被選擇用于處理。此外,如果最后幀已經(jīng)被處理,則過(guò)程200可以結(jié)束。
返回至判定操作202,如果個(gè)體幀(例如,幀i)未被確定為場(chǎng)景變化幀,則過(guò)程200可以在操作203“黃金幀距離(GFD)和平均時(shí)間失真(ATD)”處繼續(xù),在該操作中,可以確定個(gè)體幀(例如,幀i)的黃金幀距離和平均時(shí)間失真。在實(shí)施例中,黃金幀距離是從個(gè)體幀(例如,幀i)到前一黃金幀的距離(例如,幀數(shù))。例如,如果幀i是P幀,則前一黃金幀可以使黃金P幀或黃金I幀。如果還不存在前一黃金幀,則黃金幀距離可以是到前一I幀的距離。可以如上討論確定個(gè)體幀(例如,幀i)的平均時(shí)間失真,從而使得個(gè)體幀(例如,幀i)的平均時(shí)間失真可以是個(gè)體幀的時(shí)間失真與過(guò)去幀(例如,在該個(gè)體幀之前的幀)的時(shí)間失真的平均值。例如,平均時(shí)間失真可以是時(shí)間失真的運(yùn)行平均值。在一些示例中,時(shí)間失真可以是關(guān)于下采樣視頻的幀間預(yù)測(cè)失真,并且在其他示例中,時(shí)間失真可以是在幀壓縮之后的實(shí)際失真。如所討論的,過(guò)去幀可以包括任意數(shù)量的過(guò)去幀,如,直到前一黃金幀的所有過(guò)去幀、經(jīng)由歷史失真和QP模塊106可用的所有過(guò)去幀、預(yù)定數(shù)量的過(guò)去幀等等。
此外,如在此關(guān)于編碼參數(shù)103所討論的,可以確定或接收最小黃金幀間隔(例如,黃金幀之間的最小時(shí)間間隔或幀數(shù))、默認(rèn)黃金幀間隔(例如,黃金幀之間的默認(rèn)時(shí)間間隔或幀數(shù))、以及最大黃金幀間隔(例如,黃金幀之間的最大時(shí)間間隔或幀數(shù))。最小、默認(rèn)和最大黃金幀間隔可以包括任何適當(dāng)?shù)臅r(shí)間間隔或幀數(shù)。例如,最小黃金幀間隔可以是0.25秒,默認(rèn)黃金幀間隔可以是0.5秒,并且最大黃金幀間隔可以是1秒。針對(duì)每秒60幀(fbs)的視頻,在這種示例中的最小、默認(rèn)和最大黃金幀間隔將分別為15幀、30幀和60幀。在其他示例中,最小黃金幀間隔的范圍可以為10到20幀,默認(rèn)黃金幀間隔的范圍可以為20到40幀,并且最大黃金幀間隔的范圍可以為40到80幀。
過(guò)程200可以在判定操作204“GFD≥GFI最小”處繼續(xù),在該操作中,黃金幀距離(GFD)可以與最小黃金幀間隔(GFI最小)進(jìn)行比較。如所示,如果黃金幀距離小于最小黃金幀間隔,則過(guò)程200可以在操作210“非黃金幀”處繼續(xù),在該操作中,個(gè)體幀可以被指定為非黃金幀。
從操作210,過(guò)程200可以在操作212“下一幀”處繼續(xù),在該操作中,可以選擇下一幀用于處理。例如,幀i之后的幀或者在幀i一定數(shù)量的幀之后的幀可以被選擇用于處理。此外,如果最后幀已經(jīng)被處理,則過(guò)程200可以結(jié)束。
返回至判定操作204,如果黃金幀距離大于等于最小黃金幀間隔,則過(guò)程200可以在判定操作205“ATC>TH1”處繼續(xù),在該操作中,平均時(shí)間失真(ATD)可以與閾值(TH1)進(jìn)行比較。閾值TH1可以是用于評(píng)估視頻102的時(shí)間復(fù)雜度、失真和/或相關(guān)性的任何適當(dāng)?shù)拈撝?。閾值TH1可以被選擇使得具有較大時(shí)間相關(guān)性的視頻序列(例如,靜態(tài)視頻序列)具有較大的黃金幀距離并且具有較小時(shí)間相關(guān)性的視頻序列(例如,活動(dòng)視頻序列)具有較短的黃金幀距離。如所示,如果平均時(shí)間失真大于閾值,則過(guò)程200可以在操作209處繼續(xù),在該操作中,個(gè)體幀(例如,幀i)可以被指定為黃金幀,并且處理可以在如以上討論的操作211處繼續(xù)。
如果平均時(shí)間失真不大于閾值,則過(guò)程200可以在判定操作206“GFD≥GFI默認(rèn)”處繼續(xù),在該操作中,黃金幀距離(GFD)可以與默認(rèn)黃金幀間隔(GFI默認(rèn))進(jìn)行比較。如所示,如果黃金幀距離小于默認(rèn)黃金幀間隔,則過(guò)程200可以在操作210處繼續(xù),在該操作中,個(gè)體幀可以被指定為非黃金幀,并且進(jìn)行如以上討論的操作212。
如果黃金幀距離大于等于默認(rèn)黃金幀間隔,則過(guò)程200可以在判定操作207“ATC>TH2”處繼續(xù),在該操作中,平均時(shí)間失真(ATD)可以與閾值(TH2)進(jìn)行比較。閾值TH2可以是用于評(píng)估視頻102的時(shí)間復(fù)雜度、失真和/或相關(guān)性的任何適當(dāng)?shù)拈撝怠U鏣H1,閾值TH2可以被選擇使得具有較大時(shí)間相關(guān)性的視頻序列(例如,靜態(tài)視頻序列)具有較大的黃金幀距離并且具有較小時(shí)間相關(guān)性的視頻序列(例如,活動(dòng)視頻序列)具有較短的黃金幀距離。在實(shí)施例中,TH1大于TH2,從而使得如果視頻非?;钴S,則將迅速提供另一個(gè)黃金幀,而如果視頻不那么活躍,則黃金幀可以被延伸至最大黃金幀間隔。如所示,如果平均時(shí)間失真大于閾值,則過(guò)程200可以在操作209處繼續(xù),在該操作中,個(gè)體幀(例如,幀i)可以被指定為黃金幀,并且處理可以在如以上討論的操作211處繼續(xù)。
如果平均時(shí)間失真不大于閾值TH2,則過(guò)程200可以在判定操作208“GFD=GFI最大”處繼續(xù),在該操作中,黃金幀距離(GFD)可以與最大黃金幀間隔(GFI最大)進(jìn)行比較。如所示,如果黃金幀距離等于最大黃金幀間隔,則過(guò)程200可以在操作209繼續(xù),在該操作中,個(gè)體幀可以被指定為黃金幀,并且進(jìn)行如以上討論的操作211。如果黃金幀距離不等于最大黃金幀間隔(例如,黃金幀距離小于最大黃金幀間隔),則過(guò)程200可以在操作210處繼續(xù),在該操作中,個(gè)體幀可以被指定為非黃金幀,并且進(jìn)行如以上討論的操作212。
可以針對(duì)視頻102的任意數(shù)量的幀并且針對(duì)任意數(shù)量的視頻或視頻序列串行地或并行地執(zhí)行過(guò)程200任意次數(shù)。在以上描述中,出于解釋的目的已經(jīng)使用大于、小于和等于等等,然而,可以進(jìn)行其他比較來(lái)實(shí)現(xiàn)相同或相似的結(jié)果。例如,當(dāng)討論大于或等于比較時(shí),經(jīng)常可以使用大于比較等等。
如所討論的,過(guò)程200可以實(shí)現(xiàn)與最小黃金幀間隔和默認(rèn)黃金幀間隔相關(guān)聯(lián)的兩個(gè)閾值(例如,TH1和TH2)。在其他示例中,可以僅使用一個(gè)閾值(例如,最小或默認(rèn)黃金幀間隔等等)。在其他示例中,可以使用(多個(gè))附加閾值和黃金幀間隔。如所討論的,基于將個(gè)體幀的黃金幀距離確定為等于或大于最小黃金幀間隔和/或默認(rèn)黃金幀間隔中的至少一者的至少一種情況以及基于平均時(shí)間失真與同最小黃金幀間隔和/或默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將個(gè)體幀指定為黃金幀或非黃金幀,可以將個(gè)體幀i指定為黃金幀或非黃金幀。
在一些示例中,基于針對(duì)幀序列的第二幀確定至前一黃金幀的第二黃金幀距離和第二平均時(shí)間失真以及基于該第二黃金幀距離和該第二平均時(shí)間失真將第二幀指定為黃金幀或非黃金幀,可以將第二幀指定為黃金幀或非黃金幀。例如,黃金幀距離(例如,針對(duì)個(gè)體幀)可以在最小黃金幀間隔與默認(rèn)黃金幀間隔之間,并且第二黃金幀距離可以在默認(rèn)黃金幀間隔與最大黃金幀間隔之間。例如,將個(gè)體幀指定為黃金幀或非黃金幀可以是基于個(gè)體幀的平均時(shí)間失真與第一閾值的比較,并且將第二幀指定為黃金幀或非黃金幀可以是基于第二平均時(shí)間失真與第二閾值的比較。如所討論的,在一些示例中,第一閾值(例如,TH1)可以大于第二閾值(例如,TH2)。
返回至圖1,黃金幀指定模塊108可以基于如所討論的黃金幀或非黃金幀指定來(lái)生成黃金幀位置(GFL)120。例如,黃金幀位置120可以指示哪些幀是黃金幀。黃金幀位置120可以被傳送至黃金幀判定模塊109。黃金幀判定模塊109可以基于黃金幀位置120提供幀(例如,如P幀的個(gè)體幀)是黃金幀(GF)121或非黃金幀(NGF)122的指示。
黃金幀大小和QP模塊110可以經(jīng)由黃金幀判定模塊109接收黃金幀指示121并且經(jīng)由歷史失真和QP模塊106接收空間和時(shí)間復(fù)雜度以及量化參數(shù)118。黃金幀大小和QP模塊110可以生成經(jīng)指示的黃金幀的幀大小和/或量化參數(shù)(FS/QP)123。例如,可以基于黃金幀的時(shí)間失真、該幀的黃金幀距離、以及(例如,如在此討論的,經(jīng)由編碼參數(shù)103提供的)目標(biāo)比特率來(lái)確定該幀的黃金幀目標(biāo)大小。如所討論的,在一些示例中,幀的時(shí)間失真可以是基于使用下采樣視頻的幀間預(yù)測(cè)失真。在一些示例中,黃金幀目標(biāo)大小可以被確定為如方程(2)所示:
目標(biāo)_大小G=(黃金_間隔-失真(幀間)/閾值2)×平均_速率×W1(2)
其中,目標(biāo)_大小G可以是黃金幀目標(biāo)大小,黃金_間隔可以是幀的黃金幀距離(例如,至前一黃金幀的距離),失真(幀間)可以是時(shí)間失真(例如,在這個(gè)示例中為幀間預(yù)測(cè)失真),閾值2可以是閾值,平均_速率可以是目標(biāo)比特率(例如,視頻102的預(yù)定平均目標(biāo)比特率),并且W1可以是加權(quán)參數(shù)。閾值2可以是任何適當(dāng)?shù)拈撝担⑶铱梢曰谟糜谏蓵r(shí)間失真(例如,失真(幀間))的技術(shù)。例如,閾值2可以對(duì)時(shí)間失真進(jìn)行縮放以修改黃金幀距離。例如,如果時(shí)間失真較低,則可能產(chǎn)生相對(duì)較大的黃金幀目標(biāo)大小從而使得靜態(tài)視頻可能被提供更高的質(zhì)量(例如,在用戶可能注意到視頻質(zhì)量的情況下),并且如果時(shí)間失真相對(duì)較高,則可能產(chǎn)生相對(duì)較小的黃金幀目標(biāo)大小從而使得活動(dòng)視頻可能被提供較低的質(zhì)量(例如,因?yàn)榛顒?dòng)視頻設(shè)置中的這種較低質(zhì)量可能不被用戶注意到)。此外,該加權(quán)參數(shù)可以是用于對(duì)黃金幀距離與經(jīng)縮放的時(shí)間失真之差和目標(biāo)比特率的乘積進(jìn)行縮放的任何適當(dāng)?shù)募訖?quán)參數(shù)。在實(shí)施例中,加權(quán)參數(shù)為0.5。
還如圖1所示,非黃金幀大小和QP模塊111可以經(jīng)由黃金幀判定模塊109接收非黃金幀指示122、經(jīng)由歷史失真和QP模塊106接收空間和時(shí)間復(fù)雜度以及量化參數(shù)118、并且經(jīng)由黃金幀大小和QP模塊110接收所討論的黃金幀大小(例如,如幀大小和/或量化參數(shù)(FS/QP)123的一部分)。非黃金幀大小和QP模塊111可以生成經(jīng)指示的非黃金幀的幀大小和/或量化參數(shù)(FS/QP)125。在一些示例中,非黃金幀大小和QP模塊111可以生成黃金幀之后的非黃金幀的幀大小和/或量化參數(shù)(FS/QP)125。針對(duì)這種第一非黃金幀之后的非黃金幀,可以應(yīng)用標(biāo)準(zhǔn)速率控制技術(shù),從而使得例如之后的非黃金幀可以被確定為具有相同的幀大小和/或相同的QP(當(dāng)基于標(biāo)準(zhǔn)速率控制技術(shù)修改時(shí))。
例如,可以基于相關(guān)聯(lián)的黃金幀的黃金幀距離、(例如,如經(jīng)由編碼參數(shù)103提供的)目標(biāo)比特率以及相關(guān)聯(lián)的黃金幀的目標(biāo)大小來(lái)確定非黃金幀的非黃金幀目標(biāo)大小。在一些示例中,黃金幀目標(biāo)大小可以被確定為如方程(3)所示:
目標(biāo)_大小P=(黃金_間隔×平均_速率-目標(biāo)_大小G)/(黃金_間隔-1)
(3)
其中,目標(biāo)_大小P可以是非黃金幀目標(biāo)大小,黃金_間隔可以是相關(guān)聯(lián)黃金幀的黃金幀距離,平均_速率可以是目標(biāo)比特率(例如,視頻102的預(yù)定平均目標(biāo)比特率),并且目標(biāo)_大小G可以是相關(guān)聯(lián)黃金幀的黃金幀目標(biāo)大小。
如所示,非黃金幀大小和QP模塊111可以將非黃金幀的目標(biāo)大小、黃金幀大小(TFS)124傳送至黃金幀大小和QP模塊110。黃金幀大小和QP模塊110可以確定初始量化參數(shù)的(例如,如關(guān)于初始量化參數(shù)117所討論的)偏移量。該偏移量可以基于黃金幀目標(biāo)大小與非黃金幀目標(biāo)大小之比。例如,該偏移量可以是黃金幀目標(biāo)大小與非黃金幀目標(biāo)大小之比的二進(jìn)制對(duì)數(shù)與常數(shù)之積。在一些示例中,該比值(例如,黃金比)可以被確定為如方程(4)所示:
比值_G=目標(biāo)_大小G/目標(biāo)_大小P
(4)
其中,比值_G可以是黃金幀比,目標(biāo)_大小G可以是如關(guān)于方程(2)所討論的黃金幀目標(biāo)大小,并且目標(biāo)_大小P可以是如關(guān)于方程(3)所討論的非黃金幀目標(biāo)大小。
此外,該偏移量(例如,黃金偏移量)可以被確定為如方程(5)所示:
偏移量_G=Q1×Ln2(比值_G)
(5)
其中,偏移量_G可以是黃金偏移量,Q1可以是常數(shù),Ln2可以是二進(jìn)制對(duì)數(shù),并且比值_G可以是如關(guān)于方程(4)所討論的黃金比。常數(shù)Q1可以是對(duì)黃金比的二進(jìn)制對(duì)數(shù)進(jìn)行縮放以對(duì)例如P幀的初始量化參數(shù)(例如,初始_QP(P))提供調(diào)整的任何適當(dāng)?shù)某?shù)。如所討論的,可以經(jīng)由初始QP估計(jì)模塊105確定初始量化參數(shù),該初始QP估計(jì)模塊105可以是由比特率控制器等實(shí)現(xiàn)的。
例如,可以經(jīng)由初始量化參數(shù)和黃金偏移量來(lái)確定黃金幀的量化參數(shù)。在一些示例中,可以通過(guò)從初始量化參數(shù)中減去黃金偏移量來(lái)確定黃金幀的量化參數(shù)。在一些示例中,黃金幀的量化參數(shù)可以被確定為如方程(6)所示:
QP黃金=初始_QP(P)-偏移量_G
(6)
其中,QP黃金可以是黃金幀的量化參數(shù),初始_QP(P)可以是P幀的初始量化參數(shù),并且偏移量_G可以是如關(guān)于方程(5)所討論的黃金偏移量。如所討論的,在這個(gè)示例中,黃金幀為P幀。然而,屬于任何幀類型的初始量化參數(shù)可以被修改一黃金偏移量以確定黃金幀量化參數(shù)。
如所示,黃金幀的量化參數(shù)(例如,幀大小和/或量化參數(shù)123)可以被提供給量化模塊112和/或模式選擇模塊113。量化模塊112可以接收(多個(gè))黃金幀量化參數(shù)和變換系數(shù)127,并且可以基于該(多個(gè))黃金幀量化參數(shù)對(duì)變換系數(shù)127進(jìn)行量化。例如,可以基于黃金幀的黃金幀量化參數(shù)對(duì)該幀的變換系數(shù)進(jìn)行量化。變換系數(shù)127可以是任何適當(dāng)?shù)淖儞Q系數(shù),如,例如,基于亮度數(shù)據(jù)的離散余弦變換的變換系數(shù)、色度數(shù)據(jù)、差分?jǐn)?shù)據(jù)(例如,針對(duì)預(yù)測(cè)塊與實(shí)際塊之間的差)等。模式選擇模塊113可以接收幀大小和/或量化參數(shù)123,其可以用于模式選擇和/或模式?jīng)Q策。
如所示,可以將量化參數(shù)(例如,如以下進(jìn)一步討論的黃金幀QP和非黃金幀QP)、經(jīng)量化的變換系數(shù)和/或模式選擇數(shù)據(jù)傳輸至熵編碼器115。熵編碼器115可以將量化參數(shù)、經(jīng)量化的變換系數(shù)、模式選擇數(shù)據(jù)和/或其他數(shù)據(jù)(例如,運(yùn)動(dòng)向量等)熵編碼至比特流128中。在一些示例中,經(jīng)量化的變換系數(shù)、(多個(gè))模式數(shù)據(jù)、和/或其他數(shù)據(jù)在編碼之前可以被提供給掃描模塊。此外,盡管在此針對(duì)熵編碼進(jìn)行了討論,但是可以使用任何適當(dāng)?shù)?多個(gè))編碼技術(shù)。比特流128可以被傳輸至另一個(gè)設(shè)備以用于解碼或保存至存儲(chǔ)器設(shè)備等。在一些示例中,比特流128可以是標(biāo)準(zhǔn)順應(yīng)性比特流,如,例如,符合VP8或VP9等的比特流。
此外,熵編碼器115可以在編碼控制器114的控制下操作和/或被編碼控制器114監(jiān)控。例如,編碼控制器114可以經(jīng)由熵編碼器115和/或系統(tǒng)100的其他模塊確定編碼幀大小。在一些示例中,編碼控制器114可以確定用于對(duì)所討論的黃金幀進(jìn)行編碼的實(shí)際比特?cái)?shù)并將該實(shí)際黃金幀大小(幀大小)126傳送至非黃金幀大小和QP模塊111。
非黃金幀大小和QP模塊111可以基于實(shí)際黃金幀大小、黃金幀的黃金間隔、平均比特率和黃金幀目標(biāo)大小來(lái)確定(多個(gè))非黃金幀的量化參數(shù)。例如,實(shí)際黃金幀大小可以代替(如關(guān)于方程(2)所討論的)估計(jì)黃金幀大小被使用,因?yàn)槿魏挝词褂玫谋忍乜梢杂纱擞糜趯?duì)非黃金幀進(jìn)行編碼并提高非黃金幀的質(zhì)量。在一些示例中,非黃金幀大小和QP模塊111可以通過(guò)基于偏移量修改P幀的初始量化參數(shù)(初始QP_(P))來(lái)確定量化參數(shù)。例如,該偏移量可以是非黃金幀比的二進(jìn)制對(duì)數(shù)與常數(shù)之積。在一些示例中,該比值(例如,非黃金比)可以被確定為如方程(7)所示:
比值_P=(黃金_間隔×平均_速率-實(shí)際_黃金_大小)/(黃金_間隔×平均_速率-目標(biāo)_大小G)
(7)
其中,比值_P可以是非黃金比,黃金_間隔可以是相關(guān)聯(lián)黃金幀的黃金幀距離,平均_速率可以是目標(biāo)比特率(例如,視頻102的預(yù)定平均目標(biāo)比特率),
實(shí)際_黃金_大小可以是實(shí)際黃金幀大小,并且目標(biāo)_大小G可以是相關(guān)聯(lián)黃金幀的黃金幀目標(biāo)大小。
此外,該偏移量(例如,非黃金偏移量)可以被確定為如方程(8)所示:
偏移量_P=Q1×Ln2(比值_P)
(8)
其中,偏移量_P可以是非黃金偏移量,Q1可以是常數(shù),Ln2可以是二進(jìn)制對(duì)數(shù),并且比值_P可以是如關(guān)于方程(7)所討論的非黃金比。常數(shù)Q1可以是對(duì)非黃金比的二進(jìn)制對(duì)數(shù)進(jìn)行縮放以對(duì)例如P幀的初始量化參數(shù)(例如,初始_QP(P))提供調(diào)整的任何適當(dāng)?shù)某?shù)。在一些示例中,方程(5)的常數(shù)Q1與方程(8)的常數(shù)Q1可以是相同的,并且在其他示例中,它們可以不同。所提供的示例可以在非黃金幀之間均勻地分配剩余比特。在其他示例中,比特率控制器可以基于非黃金幀的空間和時(shí)間失真等修改比特率分配。
偏移量_P可以例如通過(guò)將其添加至初始量化參數(shù)而被應(yīng)用于初始量化參數(shù)(例如,初始_QP(P))。如所示,非黃金幀大小和QP模塊111可以將非黃金幀量化參數(shù)傳送至量化模塊112和/或模式選擇模塊113。例如,非黃金幀大小和QP模塊111可以傳送幀大小和/或量化參數(shù)125。量化模塊112可以接收(多個(gè))非黃金幀量化參數(shù)和變換系數(shù)127,并且可以基于該(多個(gè))非黃金幀量化參數(shù)對(duì)變換系數(shù)127進(jìn)行量化。例如,可以基于非黃金幀的非黃金幀量化參數(shù)對(duì)該幀的變換系數(shù)進(jìn)行量化。此外,模式選擇模塊113可以接收幀大小和/或量化參數(shù)123,其可以用于模式選擇和/或模式?jīng)Q策。
圖3展示了根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的示例黃金幀分布300。如圖3所示,幀302可以各自具有多個(gè)分配的比特301。如所示,黃金幀(標(biāo)記為“G”)可以具有比非黃金幀(標(biāo)記為“P”)更多的比特分配,但是比I幀(標(biāo)記為“I”)更少的比特分配。例如,較多的比特分配可以與較小的QP相關(guān)聯(lián),并且較少的比特分配可以與較大的QP相關(guān)聯(lián)。如所討論的,在一些示例中,I幀也可以被指定為黃金幀或非黃金幀。此外,如所討論的,盡管在所展示的示例中幀302不包括B幀,但是在一些示例中可以利用B幀。例如,如所討論的,實(shí)現(xiàn)VP8視頻編解碼器可以不包括B幀,而實(shí)現(xiàn)VP9視頻編解碼器的系統(tǒng)可以包括B幀。如由在幀302之間延伸的無(wú)標(biāo)號(hào)箭頭所示,非黃金幀可以參照緊前一非黃金幀、之前的I幀和/或之前的黃金幀以用于預(yù)測(cè)(例如,運(yùn)動(dòng)估計(jì)和補(bǔ)償)。此外,黃金幀可以類似地參照緊前一非黃金幀、之前的I幀和/或之前的黃金幀。圖3展示了可以用作任何介于中間的非黃金幀的參考的黃金幀,從而使得黃金幀被保留以用于對(duì)比非黃金幀而言更多個(gè)幀(以及潛在更多個(gè)幀)進(jìn)行編碼。因此,所討論的分配比特301的增加可以提供質(zhì)量提高的塊或宏塊等等以對(duì)隨后的幀進(jìn)行預(yù)測(cè)和/或運(yùn)動(dòng)補(bǔ)償。盡管關(guān)于緊前一幀進(jìn)行討論,在一些實(shí)施例中,非黃金幀可以被保留以用于對(duì)多個(gè)(例如,兩個(gè)、三個(gè)或四個(gè))幀進(jìn)行編碼,但并非與關(guān)于所討論的黃金幀具有相同的幀數(shù)或采用相同的方式。
在所展示的示例中,七個(gè)非黃金幀在I幀與第一黃金幀之間并且在第一黃金幀與第二黃金幀之間。在其他示例中,任意數(shù)量的非黃金幀可以如本文所討論的在I幀與黃金幀之間或者在黃金幀之間。例如,從1幀到最大黃金幀間隔的任意數(shù)量的幀可以在I幀與黃金幀之間或者在黃金幀之間。此外,在一些示例中,黃金幀可以如所展示的沿著幀302均勻地分布,而在其他示例中,黃金幀可以不均勻地分布。在本文的討論中并且在圖3的說(shuō)明性示例中,已經(jīng)描述了單類黃金幀。在其他示例中,可以實(shí)現(xiàn)兩類或更多類黃金幀。
圖4展示了根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的具有兩個(gè)黃金幀類別的示例黃金幀分布400。如圖4所示,幀402可以各自具有多個(gè)分配的比特401。還如所示,黃金幀(標(biāo)記為“G”)可以被劃分為兩類(標(biāo)記為“G0”和“G1”),從而使得黃金幀可以被指定在第一黃金幀類別或第二黃金幀類別中或作為其一員。例如,黃金幀類別G0相比黃金幀類別G1可以被分配更多的比特,從而使得黃金幀類別G0相比黃金幀類別G1可以具有更低的QP。在所展示的示例中,展示了兩個(gè)黃金幀類別;然而,可以使用任意數(shù)量的黃金幀類別。在這種實(shí)現(xiàn)方式中,黃金幀距離(例如,黃金幀之間的距離)可以減小,同時(shí)黃金幀仍可以使用類似的總比特百分比(例如,與圖3的示例相比)。在這種實(shí)現(xiàn)方式中,屬于黃金幀類別G0的幀可以被分配幀大小和QP,該幀大小和QP可以如在此關(guān)于例如方程(2)所討論的被確定為具有較低加權(quán)參數(shù)W1。此外,屬于黃金幀類別G1的幀然后可以被分配幀作為屬于黃金幀類別G0的幀大小的一部分的大小和QP。然后可以類似于方程(6)和(7)提供目標(biāo)大小和QP,其中,可以(例如,針對(duì)兩種類別)基于目標(biāo)黃金幀大小和實(shí)際編碼黃金幀大小使比特均勻地分布于非黃金幀。
圖5展示了根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的示例比特流500。在一些示例中,比特流500可以對(duì)應(yīng)于如圖1所示的比特流128。盡管未在圖5中示出,但是在一些示例中,比特流500可以包括一個(gè)或多個(gè)報(bào)頭部分以及一個(gè)或多個(gè)數(shù)據(jù)部分。比特流500可以包括與編碼視頻數(shù)據(jù)相關(guān)聯(lián)的任何適當(dāng)?shù)臄?shù)據(jù)。如圖5所示,比特流500可以包括編碼量化變換系數(shù)501、編碼模式數(shù)據(jù)502、編碼I幀量化參數(shù)303、編碼黃金幀指示符504、編碼黃金P幀量化參數(shù)505、編碼非黃金P幀量化參數(shù)506、和/或編碼運(yùn)動(dòng)向量數(shù)據(jù)507。如所討論的,比特流500可以經(jīng)由系統(tǒng)100的熵編碼器114生成。
例如,比特流500可以包括編碼量化變換系數(shù)501,該編碼量化變換系數(shù)501包括基于第一I幀的量化參數(shù)量化的變換系數(shù)(如關(guān)于方程(1)所討論的)、基于黃金幀量化參數(shù)量化的變換系數(shù)、和/或基于非黃金幀量化參數(shù)量化的變換系數(shù)。該經(jīng)量化的變換系數(shù)可以被編碼(例如,經(jīng)由熵編碼器115被熵編碼的)并插入比特流500中。此外,比特流500可以包括編碼模式數(shù)據(jù)502,該編碼模式數(shù)據(jù)可以包括來(lái)自模式選擇模塊113的被編碼(例如,經(jīng)由熵編碼器115被熵編碼的)并插入比特流500中的(多個(gè))模式選擇數(shù)據(jù)。還如所示,比特流500可以包括編碼I幀量化參數(shù)503、編碼黃金P幀量化參數(shù)505、以及編碼非黃金P幀量化參數(shù)506,其可以包括被編碼(例如,經(jīng)由熵編碼器115被熵編碼的)并插入比特流500中的幀級(jí)量化參數(shù)。
此外,比特流500可以包括編碼黃金幀指示符504。黃金幀指示符504可以包括指示哪些幀是黃金幀的任何適當(dāng)?shù)臉?biāo)簽或比特或指示符等。例如,黃金幀指示符504可以包括與(多個(gè))黃金幀指示121相關(guān)聯(lián)的數(shù)據(jù)以及被編碼(例如,經(jīng)由熵編碼器115被熵編碼的)并插入比特流500中的(多個(gè))非黃金幀指示符122。比特流500還可以包括用于提供與視頻102的編碼相關(guān)聯(lián)的信息的編碼運(yùn)動(dòng)向量507以及其他編碼數(shù)據(jù)。例如,運(yùn)動(dòng)向量和/或其他數(shù)據(jù)可以被編碼(例如,經(jīng)由熵編碼器115被熵編碼的)并插入比特流500中。
如所討論的,比特流500可以經(jīng)由編碼器或編碼器系統(tǒng)(如,例如,系統(tǒng)100)生成,并且比特流500可以(例如,作為文件或容器)存儲(chǔ)至(例如,系統(tǒng)100的)存儲(chǔ)器中、(例如,作為文件或容器)存儲(chǔ)至存儲(chǔ)器存儲(chǔ)設(shè)備(例如,盤(pán)、用于下載的服務(wù)器等)中。此外,比特流500可以由解碼器訪問(wèn)(例如,經(jīng)由讀取盤(pán)、流傳輸、下載等),該解碼器可以對(duì)比特流進(jìn)行解碼并且生成視頻幀或視頻幀序列以用于呈現(xiàn)給用戶。
圖6是展示根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的用于提供具有黃金幀的視頻編碼的示例過(guò)程600的流程圖。如圖6所展示的,過(guò)程600可以包括一個(gè)或多個(gè)操作601-603。過(guò)程600可以形成視頻編碼過(guò)程的至少一部分。通過(guò)非限制性示例,針對(duì)由如在此討論的系統(tǒng)100采取的視頻,過(guò)程600可以形成視頻編碼過(guò)程的至少一部分。進(jìn)一步地,在此將參考圖7的系統(tǒng)700描述過(guò)程600。
圖7是根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的用于提供具有黃金幀的視頻編碼的示例系統(tǒng)700的示意圖。如圖7所示,系統(tǒng)700可以包括圖形處理單元(GPU)701、一個(gè)或多個(gè)中央處理單元702以及存儲(chǔ)器存儲(chǔ)703。同樣如所示出的,GPU 701可以包括黃金幀指定和量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、編碼控制器114、和/或熵編碼器模塊115。此外,在一些示例中,黃金幀指定和量化參數(shù)模塊101可以包括黃金幀指定模塊704和量化參數(shù)模塊705。例如,黃金幀指定模塊704可以實(shí)現(xiàn)黃金幀指定模塊108,并且量化參數(shù)模塊705可以實(shí)現(xiàn)黃金幀大小和QP模塊110和/或非黃金幀大小和QP模塊111。在其他示例中,黃金幀指定和量化參數(shù)模塊101可以被實(shí)現(xiàn)為沒(méi)有所展示的子模塊。在系統(tǒng)700的示例中,存儲(chǔ)器存儲(chǔ)703可以存儲(chǔ)視頻內(nèi)容,如視頻幀和/或比特流。
圖形處理單元701可以包括任意數(shù)量和類型的圖形處理單元,這些圖形處理單元可以提供如在此所討論的操作。這些操作可以經(jīng)由軟件或硬件或其組合來(lái)實(shí)現(xiàn)。在實(shí)施例中,圖形處理單元701的所展示的模塊可以經(jīng)由電路等來(lái)實(shí)現(xiàn)。例如,圖形處理單元701可以包括專門(mén)用于操縱視頻數(shù)據(jù)以便生成壓縮視頻數(shù)據(jù)的電路。中央處理單元702可以包括任何數(shù)量和類型的處理單元或模塊,這些處理單元或模塊可以為系統(tǒng)700提供控制以及其他高級(jí)別的功能。存儲(chǔ)器存儲(chǔ)703可以是任意類型的存儲(chǔ)器,如易失性存儲(chǔ)器(例如,靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)等)或非易失性存儲(chǔ)器(例如,閃存等)等等。在實(shí)施例中,存儲(chǔ)器存儲(chǔ)703可以被配置成用于存儲(chǔ)視頻數(shù)據(jù),如,黃金和/或非黃金幀大小、黃金和/或非黃金幀量化參數(shù)、經(jīng)量化的變化系數(shù)、比特流、或在此討論的任何其他視頻數(shù)據(jù)。在非限制性示例中,存儲(chǔ)器存儲(chǔ)703可以由緩存存儲(chǔ)器實(shí)現(xiàn)。在實(shí)施例中,黃金幀指定和量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、編碼控制器114、和/或熵編碼器模塊115可以經(jīng)由圖形處理單元701的執(zhí)行單元(EU)實(shí)現(xiàn)。EU可以包括例如可編程邏輯或電路,如可以提供廣泛的可編程邏輯功能陣列的一個(gè)或多個(gè)邏輯核。在實(shí)施例中,黃金幀指定和量化參數(shù)模塊101、量化模塊112、模式選擇模塊113、編碼控制器114、和/或熵編碼器模塊115可以經(jīng)由專用硬件(如固定功能電路等)實(shí)現(xiàn)。固定功能電路可以包括專用邏輯或電路并且可以提供固定功能入口點(diǎn)的集合,該集合可以映射到針對(duì)固定目的或功能的專用邏輯。
返回至圖6的討論,過(guò)程600可以從操作601“針對(duì)視頻序列的幀,判定該幀是否為場(chǎng)景變化幀、黃金幀距離以及平均時(shí)間失真”處開(kāi)始,在該操作中,可以針對(duì)視頻序列的個(gè)體幀,判定該個(gè)體幀是否為場(chǎng)景變化幀、至前一黃金幀的黃金幀距離以及平均時(shí)間失真。例如,如經(jīng)由GPU 701實(shí)現(xiàn)的黃金幀指定模塊704可以判定該個(gè)體幀是否為場(chǎng)景變化幀、該個(gè)體幀至前一黃金幀的黃金幀距離以及該個(gè)體幀的平均時(shí)間失真。在一些示例中,平均時(shí)間失真是個(gè)體幀的時(shí)間失真與幀序列的在該個(gè)體幀之前的幀的時(shí)間失真的平均值。在一些示例中,如經(jīng)由GPU 701實(shí)現(xiàn)的一個(gè)或多個(gè)黃金幀指定模塊108可以判定該個(gè)體幀是否為場(chǎng)景變化幀、該個(gè)體幀至前一黃金幀的黃金幀距離以及該個(gè)體幀的平均時(shí)間失真。
過(guò)程600可以在操作602“將該幀指定為黃金幀或非黃金幀”處繼續(xù),在該操作中,可以基于該個(gè)體幀是否為場(chǎng)景變化幀、該黃金幀距離和該平均時(shí)間失真,將該個(gè)體幀指定為黃金幀或非黃金幀。例如,如經(jīng)由GPU 701實(shí)現(xiàn)的黃金幀指定模塊704可以基于該個(gè)體幀是否為場(chǎng)景變化幀、該黃金幀距離和該平均時(shí)間失真,將該個(gè)體幀指定為黃金幀或非黃金幀。
在一些示例中,當(dāng)該個(gè)體幀是場(chǎng)景變化幀時(shí),該個(gè)體幀可以被指定為黃金幀。此外,在一些示例中,如果黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,則可以基于平均時(shí)間失真與閾值的比較將該個(gè)體幀指定為黃金幀或非黃金幀。例如,當(dāng)平均時(shí)間失真大于閾值時(shí),可以將該個(gè)體幀指定為黃金幀。在一些示例中,當(dāng)黃金幀距離不小于最小黃金幀間隔時(shí),當(dāng)平均時(shí)間失真大于與最小黃金幀間隔相關(guān)聯(lián)的第一閾值時(shí),可以將該個(gè)體幀指定為黃金幀。此外,當(dāng)平均時(shí)間失真不大于與該第一閾值時(shí),并且當(dāng)黃金幀距離不小于默認(rèn)黃金幀間隔時(shí),當(dāng)平均時(shí)間失真大于與默認(rèn)黃金幀間隔相關(guān)聯(lián)的第二閾值時(shí),可以將該個(gè)體幀指定為黃金幀。并且,當(dāng)黃金幀距離等于最大黃金幀間隔時(shí),該個(gè)體幀可以被指定為黃金幀。
過(guò)程600可以在操作603“基于所述指定以及該幀的時(shí)間失真確定該幀的量化參數(shù)”處繼續(xù),在該操作中,可以基于將個(gè)體幀指定為黃金幀或非黃金幀以及個(gè)體幀的時(shí)間失真來(lái)確定個(gè)體幀的至少一部分的量化參數(shù)。例如,如經(jīng)由GPU 701實(shí)現(xiàn)的量化參數(shù)模塊705可以基于將該個(gè)體幀指定為黃金幀或非黃金幀以及該個(gè)體幀的時(shí)間失真,確定該個(gè)體幀的至少一部分的量化參數(shù)。如所討論的,量化參數(shù)可以是針對(duì)個(gè)體幀的一部分或者針對(duì)整個(gè)個(gè)體幀。在一些示例中,可以針對(duì)個(gè)體幀的一部分基于個(gè)體幀內(nèi)的局部失真圖案等對(duì)量化參數(shù)進(jìn)行修改。
例如,如果個(gè)體幀被指定為黃金幀,則可以通過(guò)如在此關(guān)于方程(2)所討論的基于個(gè)體幀的時(shí)間失真、黃金幀距離以及視頻序列的目標(biāo)比特率確定個(gè)體幀的黃金幀目標(biāo)大小并且如在此關(guān)于方程(6)所討論的基于黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成個(gè)體幀的一部分的量化參數(shù)來(lái)確定量化參數(shù)。例如,如在此關(guān)于方程(4)和(5)討論的該偏移量可以是基于黃金幀目標(biāo)大小與非黃金幀目標(biāo)大小之比,并且如在此關(guān)于方程(6)所討論的將初始量化參數(shù)修改一偏移量可以包括從初始量化參數(shù)中減去該偏移量。
此外,如果個(gè)體幀被指定為非黃金幀并且從而使得個(gè)體幀在黃金幀之后,那么可以通過(guò)以下各項(xiàng)來(lái)確定量化參數(shù):對(duì)黃金幀進(jìn)行編碼;(例如,經(jīng)由GPU 701實(shí)現(xiàn)的編碼控制器114)確定個(gè)體幀的編碼黃金幀大??;如本文關(guān)于方程(7)所討論的基于編碼黃金幀大小、黃金幀的黃金幀距離、預(yù)定平均目標(biāo)比特率以及黃金幀目標(biāo)大小確定個(gè)體幀的非黃金幀比;以及基于該非黃金幀比將初始量化參數(shù)(例如,初始_QP(P)等)修改一非黃金幀偏移量(例如,如在此關(guān)于方程(8)所討論的)以生成個(gè)體幀的至少一部分的量化參數(shù)。例如,修改初始量化參數(shù)可以包括將非黃金幀偏移添加到初始量化參數(shù)。
如所討論的,黃金幀和非黃金幀量化參數(shù)可以用于對(duì)與黃金幀和非黃金幀相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化和/或用于作出與視頻序列相關(guān)聯(lián)的模式選擇決策。該黃金幀和非黃金幀量化參數(shù)、經(jīng)量化的變換系數(shù)、和/或模式可以被編碼成如在此討論的比特流。可以針對(duì)任意數(shù)量的視頻幀、視頻序列或視頻片段串行地或者并行地重復(fù)過(guò)程600任意次數(shù)。
在此描述的系統(tǒng)的各種組件可以用軟件、固件、和/或硬件和/或其任意組合來(lái)實(shí)現(xiàn)。例如,系統(tǒng)100或系統(tǒng)700的各組件可以至少部分地由如可以在計(jì)算系統(tǒng)(如,例如,智能電話)中找到的計(jì)算片上系統(tǒng)(SoC)的硬件來(lái)提供。本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到,在此描述的系統(tǒng)可以包括尚未在相應(yīng)附圖中描繪的附加組件。例如,在此討論的系統(tǒng)可以包括為了清楚起見(jiàn)尚未被描繪的附加組件,如比特流復(fù)用器或解復(fù)用器模塊等。
雖然在此討論的示例過(guò)程(例如,過(guò)程200和過(guò)程600)的實(shí)現(xiàn)方式可以包括按所展示的順序采取示出的所有操作,但是本公開(kāi)并不限于這個(gè)方面,并且在各個(gè)示例中,此處的示例過(guò)程的實(shí)現(xiàn)方式可以僅包括所示操作的子集、以與所展示的順序不同的順序執(zhí)行的操作、或附加操作。
另外,在此討論的操作中的任何一個(gè)或多個(gè)操作可以響應(yīng)于由一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品提供的指令而被采取。這類程序產(chǎn)品可以包括提供指令的信號(hào)承載介質(zhì),當(dāng)指令由例如處理器執(zhí)行時(shí)可以提供在此描述的功能。計(jì)算機(jī)程序產(chǎn)品可以以一個(gè)或多個(gè)機(jī)器可讀介質(zhì)的任何形式被提供。因此,例如,包括一個(gè)或多個(gè)圖形處理單元或處理器核的處理器可以響應(yīng)于由一個(gè)或多個(gè)機(jī)器可讀介質(zhì)傳達(dá)給處理器的程序代碼和/或指令或指令集而采取此處的示例過(guò)程的塊中的一個(gè)或多個(gè)塊。通常,機(jī)器可讀介質(zhì)可以以程序代碼和/或指令或指令集的形式傳達(dá)軟件,這些程序編碼和指令集可以使在此描述的設(shè)備和/或系統(tǒng)中的任意一者實(shí)現(xiàn)系統(tǒng)100或700的至少多個(gè)部分、或者如在此討論的任何其他模塊或組件。
如在此描述的任何實(shí)現(xiàn)方式中所使用的,術(shù)語(yǔ)“模塊”指被配置成用于提供在此所描述的功能的軟件邏輯、固件邏輯、硬件邏輯和/或電路的任意組合。軟件可以具體化為軟件包、代碼和/或指令集或指令,并且如在此描述的任何實(shí)現(xiàn)方式中所使用的,“硬件”可以例如單獨(dú)地或以任何組合包括硬連線電路、可編程電路、狀態(tài)機(jī)電路、固定功能電路、執(zhí)行單元電路和/或存儲(chǔ)由可編程電路執(zhí)行的指令的固件。這些模塊可以統(tǒng)一地或單獨(dú)地具體化為形成例如,集成電路(IC)、片上系統(tǒng)(SoC)等的較大系統(tǒng)的一部分的電路。
圖8是根據(jù)本公開(kāi)的至少一些實(shí)現(xiàn)方式安排的示例系統(tǒng)800的示意圖。在各實(shí)現(xiàn)方式中,盡管系統(tǒng)800不限于此上下文,但系統(tǒng)800可以是媒體系統(tǒng)。例如,系統(tǒng)800可以并入個(gè)人計(jì)算機(jī)(PC)、膝上計(jì)算機(jī)、超級(jí)膝上計(jì)算機(jī)、平板計(jì)算機(jī)、觸摸板、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、組合式蜂窩電話/PDA、電視、智能設(shè)備(例如,智能電話、智能平板計(jì)算機(jī)或智能電視)、移動(dòng)互聯(lián)網(wǎng)設(shè)備(MID)、消息設(shè)備、數(shù)據(jù)通信設(shè)備、相機(jī)(例如,自動(dòng)對(duì)焦相機(jī)、超級(jí)變焦相機(jī)、數(shù)碼單鏡頭反光(DSLR)相機(jī))等。
在各實(shí)現(xiàn)方式中,系統(tǒng)800包括耦合到顯示器820的平臺(tái)802。平臺(tái)802可以接收來(lái)自內(nèi)容設(shè)備的內(nèi)容,如(多個(gè))內(nèi)容服務(wù)設(shè)備830或(多個(gè))內(nèi)容傳遞設(shè)備840或者其他類似內(nèi)容源。包括一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器850可以用來(lái)例如與平臺(tái)802和/或顯示器820交互。以下將更詳細(xì)地描述這些組件中的每個(gè)組件。
在各實(shí)現(xiàn)方式中,平臺(tái)802可以包括芯片組805、處理器810、存儲(chǔ)器812、天線813、存儲(chǔ)設(shè)備814、圖形子系統(tǒng)815、應(yīng)用816和/或無(wú)線電818的任意組合。芯片組805可以在處理器810、存儲(chǔ)器812、存儲(chǔ)設(shè)備814、圖形子系統(tǒng)815、應(yīng)用816和/或無(wú)線電818之中提供相互通信。例如,芯片組805可以包括能夠提供與存儲(chǔ)設(shè)備814的交互通信的存儲(chǔ)適配器(未示出)。
處理器810可以被實(shí)現(xiàn)為復(fù)雜指令集計(jì)算機(jī)(CISC)或精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器、x86指令集兼容處理器、多核處理器、或任何其他微處理器或中央處理器單元(CPU)。在各實(shí)現(xiàn)方式中,處理器810可以是(多個(gè))雙核處理器、(多個(gè))雙核移動(dòng)處理器等。
存儲(chǔ)器812可以被實(shí)現(xiàn)為易失性存儲(chǔ)設(shè)備,如但不限于隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、或靜態(tài)RAM(SRAM)。
存儲(chǔ)設(shè)備814可以被實(shí)現(xiàn)為非易失性存儲(chǔ)設(shè)備,如但不限于磁盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、內(nèi)部存儲(chǔ)設(shè)備、附屬存儲(chǔ)設(shè)備、閃存、電池應(yīng)急SDRAM(同步DRAM)和/或網(wǎng)絡(luò)可接入的存儲(chǔ)設(shè)備。在各實(shí)現(xiàn)方式中,存儲(chǔ)設(shè)備814可以包括用于當(dāng)例如包括多個(gè)硬盤(pán)驅(qū)動(dòng)器時(shí)增加對(duì)有價(jià)值的數(shù)字媒體的存儲(chǔ)性能增強(qiáng)型保護(hù)的技術(shù)。
圖形子系統(tǒng)815可以執(zhí)行對(duì)如用于顯示的靜態(tài)或視頻圖像的處理。例如,圖形子系統(tǒng)815可以是圖形處理單元(GPU)或視覺(jué)處理單元(VPU)。可以使用模擬或數(shù)字接口將圖形子系統(tǒng)815和顯示820通信地耦合。例如,接口可以是高清晰度多媒體接口、顯示端口、無(wú)線HDMI和/或符合無(wú)線HD的技術(shù)中的任何一個(gè)。圖形子系統(tǒng)815可以集成到處理器電路810或芯片組805中。在一些實(shí)現(xiàn)方式中,圖形子系統(tǒng)815可以是通信地耦合至芯片組805的獨(dú)立設(shè)備。
在此描述的圖形和/或視頻處理技術(shù)可以用各種硬件架構(gòu)實(shí)現(xiàn)。例如,圖形和/或視頻功能可以集成到芯片組中。替代性地,可以使用離散圖形和/或視頻處理器。如又另一種實(shí)現(xiàn)方式,圖形和/或視頻功能可以由通用處理器(包括多核處理器)來(lái)提供。在進(jìn)一步的實(shí)施例中,該功能可以在消費(fèi)電子設(shè)備中實(shí)現(xiàn)。
無(wú)線電818可以包括能夠使用各種適當(dāng)?shù)臒o(wú)線通信技術(shù)發(fā)射并接收信號(hào)的一個(gè)或多個(gè)無(wú)線電。這些技術(shù)可以涉及跨一個(gè)或多個(gè)無(wú)線網(wǎng)絡(luò)的通信。示例無(wú)線網(wǎng)絡(luò)包括(但不限于)無(wú)線局域網(wǎng)(WLAN)、無(wú)線個(gè)人局域網(wǎng)(WPAN)、無(wú)線城域網(wǎng)(WMAN)、蜂窩網(wǎng)和衛(wèi)星網(wǎng)。在跨這種網(wǎng)絡(luò)進(jìn)行通信時(shí),無(wú)線電818可以根據(jù)任何版本中的一個(gè)或多個(gè)可適用標(biāo)準(zhǔn)進(jìn)行操作。
在各實(shí)現(xiàn)方式中,顯示器820可以包括任何電視機(jī)類型的監(jiān)測(cè)器或顯示器。顯示器820可以包括例如,計(jì)算機(jī)顯示屏、觸摸屏顯示器、視頻監(jiān)視器、類似電視機(jī)的設(shè)備和/或電視機(jī)。顯示器820可以是數(shù)字的和/或模擬的。在各實(shí)現(xiàn)方式中,顯示器820可以是全息顯示器。而且,顯示器820可以是可以接收視覺(jué)投影的透明表面。這種投影可以傳達(dá)各種形式的信息、圖像和/或物體。例如,這種投影可以是針對(duì)移動(dòng)增強(qiáng)現(xiàn)實(shí)(MAR)應(yīng)用的視覺(jué)疊加。在一個(gè)或多個(gè)軟件應(yīng)用816的控制下,平臺(tái)802可以在顯示器820上顯示用戶界面822。
在各實(shí)現(xiàn)方式中,(多個(gè))內(nèi)容服務(wù)設(shè)備830可以由任何國(guó)家的、國(guó)際的和/或獨(dú)立的服務(wù)托管,并因此例如經(jīng)由互聯(lián)網(wǎng)可接入平臺(tái)802。(多個(gè))內(nèi)容服務(wù)設(shè)備830可以耦合至平臺(tái)802和/或至顯示器820。平臺(tái)802和/或(多個(gè))內(nèi)容服務(wù)設(shè)備830可以耦合至網(wǎng)絡(luò)860以便將媒體信息傳達(dá)至網(wǎng)絡(luò)860或從網(wǎng)絡(luò)傳達(dá)(例如,發(fā)送和/或接收)。(多個(gè))內(nèi)容傳遞設(shè)備840也可以耦合到平臺(tái)802和/或顯示器820。
在各實(shí)現(xiàn)方式中,(多個(gè))內(nèi)容服務(wù)設(shè)備830可以包括有線電視盒、個(gè)人電腦、網(wǎng)絡(luò)、電話、能夠傳遞數(shù)字信息和/或內(nèi)容的啟用互聯(lián)網(wǎng)的設(shè)備或應(yīng)用程序、以及能夠在內(nèi)容提供者與平臺(tái)802和/或顯示器820之間經(jīng)由網(wǎng)絡(luò)860或直接地單向或雙向傳達(dá)內(nèi)容的任意其他類似設(shè)備。將理解,內(nèi)容可以經(jīng)由網(wǎng)絡(luò)860單向地和/或雙向地來(lái)往于系統(tǒng)800中的任何一個(gè)組件與內(nèi)容提供者之間進(jìn)行通信。內(nèi)容的示例可以包括任何媒體信息,包括例如視頻、音樂(lè)、醫(yī)療和游戲信息等。
(多個(gè))內(nèi)容服務(wù)設(shè)備830可以接收如包含媒體信息、數(shù)字信息和/或其他內(nèi)容的有線電視節(jié)目的內(nèi)容。內(nèi)容提供方的示例可以包括任何有線或衛(wèi)星電視或無(wú)線電或互聯(lián)網(wǎng)內(nèi)容提供方。所提供的示例不旨在以任何方式限制根據(jù)本公開(kāi)的實(shí)現(xiàn)方式。
在各實(shí)現(xiàn)方式中,平臺(tái)802可以從具有一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器850中接收控制信號(hào)??刂破?50的導(dǎo)航特征可以用于例如與用戶界面822進(jìn)行交互。在各實(shí)施例中,導(dǎo)航控制器850可以是定點(diǎn)設(shè)備,該定點(diǎn)設(shè)備可以是允許用戶輸入空間(例如,連續(xù)的和多維的)數(shù)據(jù)到計(jì)算機(jī)的計(jì)算機(jī)硬件部件(特別是人機(jī)接口設(shè)備)。如圖形用戶界面(GUI)、和電視機(jī)以及監(jiān)視器的許多系統(tǒng)允許用戶使用物理姿勢(shì)來(lái)控制計(jì)算機(jī)或電視機(jī)并向計(jì)算機(jī)或電視機(jī)提供數(shù)據(jù)。
可以通過(guò)指針、光標(biāo)、聚焦環(huán)或在顯示器上顯示的其他視覺(jué)指示器的移動(dòng)在顯示器(例如,顯示器820)上復(fù)制控制器850的導(dǎo)航特征的移動(dòng)。例如,在軟件應(yīng)用816的控制下,位于導(dǎo)航控制器850上的導(dǎo)航特征可以例如被映射為在用戶界面822上顯示的虛擬導(dǎo)航特征。在各實(shí)施例中,控制器850可以不是獨(dú)立組件但可以集成在平臺(tái)802和/或顯示器820內(nèi)。然而,本公開(kāi)不限于在此示出或描述的元素或內(nèi)容。
在各實(shí)現(xiàn)方式中,驅(qū)動(dòng)器(未示出)可以包括使用戶能夠通過(guò)例如在初始引導(dǎo)后啟動(dòng)的按鈕的觸摸立刻打開(kāi)和關(guān)閉類似電視機(jī)的平臺(tái)802的技術(shù)。當(dāng)平臺(tái)被“關(guān)閉”時(shí),程序邏輯可以允許平臺(tái)802將內(nèi)容流傳輸?shù)矫襟w適配器或其他(多個(gè))內(nèi)容服務(wù)設(shè)備830或(多個(gè))內(nèi)容傳遞設(shè)備840。此外,芯片組805可以包括支持例如5.1環(huán)繞聲音頻和/或高清7.1環(huán)繞聲音頻的硬件和/或軟件。驅(qū)動(dòng)器可以包括用于集成圖形平臺(tái)的圖形驅(qū)動(dòng)器。在各實(shí)施例中,圖形驅(qū)動(dòng)器可以包括外圍部件互連(PCI)快速圖形卡。
在各實(shí)現(xiàn)方式中,系統(tǒng)800中示出的部件中的任何一個(gè)或多個(gè)部件可以是集成的。例如,平臺(tái)802和(多個(gè))內(nèi)容服務(wù)設(shè)備830可以是集成的,或者平臺(tái)802和(多個(gè))內(nèi)容傳遞設(shè)備840可以是集成的,或者平臺(tái)802、(多個(gè))內(nèi)容服務(wù)設(shè)備830和(多個(gè))內(nèi)容傳遞設(shè)備840可以例如是集成的。在各種實(shí)施例中,平臺(tái)802和顯示器820可以是集成的單元。例如,顯示820和內(nèi)容服務(wù)設(shè)備830可以是集成的,或者顯示820和內(nèi)容傳遞設(shè)備840可以是集成的。這些示例并不意在限制本公開(kāi)。
在各實(shí)施例中,系統(tǒng)800可以被實(shí)現(xiàn)為無(wú)線系統(tǒng)、有線系統(tǒng)、或二者的組合。當(dāng)實(shí)現(xiàn)為無(wú)線系統(tǒng)時(shí),系統(tǒng)800可以包括適合于通過(guò)如一個(gè)或多個(gè)天線、發(fā)送器、接收器、收發(fā)器、放大器、過(guò)濾器、控制邏輯等的無(wú)線共享介質(zhì)通信的部件和接口。無(wú)線共享介質(zhì)的示例可以包括無(wú)線頻譜部分,例如RF頻譜等。當(dāng)被實(shí)現(xiàn)為有線系統(tǒng)時(shí),系統(tǒng)800可以包括適用于通過(guò)有線通信介質(zhì)(如輸入/輸出(I/O)適配器、利用相應(yīng)有線通信介質(zhì)連接I/O適配器的物理連接器、網(wǎng)絡(luò)接口卡(NIC)、光盤(pán)控制器、視頻控制器、音頻控制器等)進(jìn)行通信的組件和接口。有線通信介質(zhì)的示例可以包括導(dǎo)線、電纜、金屬引線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞線、同軸電纜、光纖等。
平臺(tái)802可以建立一個(gè)或多個(gè)邏輯或物理信道以傳達(dá)信息。該信息可以包括媒體信息和控制信息。媒體信息可以指表示針對(duì)用戶的內(nèi)容的任何數(shù)據(jù)。內(nèi)容的示例可以包括例如,來(lái)自語(yǔ)音對(duì)話、視頻會(huì)議、流式視頻、電子郵件消息、語(yǔ)音郵件消息、字母數(shù)字符號(hào)、圖形、圖像、視頻、文字等的數(shù)據(jù)。來(lái)自語(yǔ)音對(duì)話的數(shù)據(jù)可以是例如,語(yǔ)音信息、靜音期、背景噪音、舒適噪音、聲調(diào)等??刂菩畔⒖梢允侵副硎踞槍?duì)自動(dòng)化系統(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。例如,控制信息可以用于將媒體信息路由通過(guò)系統(tǒng)或指示節(jié)點(diǎn)以預(yù)定方式處理媒體信息。然而,各實(shí)施例不限于圖8中示出或描述的元素或上下文。
如上所述,系統(tǒng)800可以用變化的物理風(fēng)格或形成因子來(lái)體現(xiàn)。圖9展示了可以用其具體化系統(tǒng)900的小形成因子設(shè)備900的實(shí)現(xiàn)方式。在各實(shí)施例中,例如,設(shè)備900可以被實(shí)現(xiàn)為具有無(wú)線能力的移動(dòng)計(jì)算設(shè)備。例如,移動(dòng)計(jì)算設(shè)備可以指具有處理系統(tǒng)和移動(dòng)電源或電源(如一個(gè)或多個(gè)電池)的任何設(shè)備。
如上所述,移動(dòng)計(jì)算設(shè)備的示例可以包括個(gè)人計(jì)算機(jī)(PC)、膝上計(jì)算機(jī)、超級(jí)膝上計(jì)算機(jī)、平板計(jì)算機(jī)、觸摸板、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、蜂窩電話、組合式蜂窩電話/PDA、電視、智能設(shè)備(例如,智能電話、智能平板計(jì)算機(jī)或智能電視)、移動(dòng)互聯(lián)網(wǎng)設(shè)備(MID)、消息設(shè)備、數(shù)據(jù)通信設(shè)備、相機(jī)(例如,自動(dòng)對(duì)焦相機(jī)、超級(jí)變焦相機(jī)、數(shù)碼單鏡頭反光(DSLR)相機(jī))等。
移動(dòng)計(jì)算設(shè)備的示例還可以包括被安排以由人穿戴的計(jì)算機(jī),如手腕計(jì)算機(jī)、手指計(jì)算機(jī)、戒指計(jì)算機(jī)、眼鏡計(jì)算機(jī)、皮帶夾計(jì)算機(jī)、臂帶計(jì)算機(jī)、鞋計(jì)算機(jī)、服裝計(jì)算機(jī)、以及其他可穿戴計(jì)算機(jī)。在各實(shí)施例中,例如移動(dòng)計(jì)算設(shè)備可以實(shí)現(xiàn)為能夠執(zhí)行計(jì)算機(jī)應(yīng)用程序、以及語(yǔ)音通信和/或數(shù)據(jù)通信的智能電話。舉例來(lái)講,盡管一些實(shí)施例可以用被實(shí)現(xiàn)為智能電話的移動(dòng)計(jì)算設(shè)備來(lái)描述,但可以理解的是,其他實(shí)施例也可以使用其他無(wú)線移動(dòng)計(jì)算設(shè)備來(lái)實(shí)現(xiàn)。實(shí)施例并不限于本上下文中。
如圖9所示,設(shè)備900可以包括:殼體902、顯示器904、輸入/輸出(I/O)設(shè)備906、和天線908。設(shè)備900還可以包括導(dǎo)航特征912。顯示器904可以包括適合于移動(dòng)計(jì)算設(shè)備的用于顯示信息的任何適當(dāng)?shù)娘@示單元。如所示,在一些示例中,顯示器904可以包括用戶界面910。I/O設(shè)備906可以包括用于將信息輸入移動(dòng)計(jì)算設(shè)備中的任何適當(dāng)?shù)腎/O設(shè)備。I/O設(shè)備906的示例可以包括:字母數(shù)字鍵盤(pán)、數(shù)字小鍵盤(pán)、觸摸板、輸入鍵、按鈕、開(kāi)關(guān)、搖桿式開(kāi)關(guān)、麥克風(fēng)、揚(yáng)聲器、語(yǔ)音識(shí)別設(shè)備和軟件等。信息也可以通過(guò)麥克風(fēng)(未示出)輸入到設(shè)備900中。這種信息可以由語(yǔ)音識(shí)別設(shè)備(未示出)數(shù)字化。實(shí)施例并不限于本上下文中。
可以使用硬件元件、軟件元件、或兩者的組合來(lái)實(shí)現(xiàn)各實(shí)施例。硬件元件的示例可以包括:處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、邏輯門(mén)、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片組等等。軟件的示例可以包括:軟件組件、程序、應(yīng)用、計(jì)算機(jī)程序、應(yīng)用程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過(guò)程、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼段、字、值、符號(hào)、或其任意組合。判定是否使用硬件元件和/或軟件元件來(lái)實(shí)現(xiàn)實(shí)施例可以根據(jù)任意數(shù)量的因子而變化,如預(yù)期的計(jì)算速率、功率電平、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲(chǔ)器資源、數(shù)據(jù)總線速度以及其他設(shè)計(jì)或性能約束。
可以由機(jī)器可讀介質(zhì)上所存儲(chǔ)的表屬性指令實(shí)現(xiàn)至少一個(gè)實(shí)施例的一個(gè)或多個(gè)方面,該指令代表處理器內(nèi)的各種邏輯,當(dāng)被機(jī)器讀取時(shí)該指令使該機(jī)器制作用于執(zhí)行在此所描述的技術(shù)的邏輯。此類表示(稱為“IP核”)可以被存儲(chǔ)在有形的機(jī)器可讀介質(zhì)上并提供給各顧客或制造設(shè)施以加載至實(shí)際制作該邏輯或處理器的制作機(jī)器中。
雖然已經(jīng)參照各實(shí)現(xiàn)方式描述了在此闡述的某些特征,但并不打算在限制性意義上解釋本說(shuō)明書(shū)。因此,本公開(kāi)涉及的對(duì)本領(lǐng)域技術(shù)人員而言明顯的對(duì)在此描述的實(shí)現(xiàn)方式以及其他實(shí)現(xiàn)方式的各種修改被視為是在本公開(kāi)的精神和范圍內(nèi)。
以下實(shí)施例涉及進(jìn)一步的實(shí)施例。
在一個(gè)或多個(gè)第一實(shí)施例中,一種用于視頻編碼的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括:針對(duì)視頻序列的個(gè)體幀,判定所述個(gè)體幀是否為場(chǎng)景變化幀、至前一黃金幀的黃金幀距離以及平均時(shí)間失真;基于所述個(gè)體幀是否為場(chǎng)景變化幀、所述黃金幀距離和所述平均時(shí)間失真,將所述個(gè)體幀指定為黃金幀或非黃金幀;以及基于將所述個(gè)體幀指定為黃金幀或非黃金幀以及所述個(gè)體幀的時(shí)間失真,確定所述個(gè)體幀的至少一部分的量化參數(shù)。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述平均時(shí)間失真包括所述個(gè)體幀的所述時(shí)間失真與所述幀序列的在所述個(gè)體幀之前的幀的時(shí)間失真的平均值。
進(jìn)一步針對(duì)所述第一實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括當(dāng)所述個(gè)體幀為場(chǎng)景變化幀時(shí)將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述平均時(shí)間失真包括所述個(gè)體幀的所述時(shí)間失真與所述幀序列的在所述個(gè)體幀之前的幀的時(shí)間失真的平均值,和/或其中,將所述個(gè)體幀指定為黃金幀或非黃金幀包括當(dāng)所述個(gè)體幀為場(chǎng)景變化幀時(shí)將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第一實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括:確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,以及基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀。
進(jìn)一步針對(duì)所述第一實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括:確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,以及基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,當(dāng)所述平均時(shí)間失真大于所述閾值時(shí),將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述方法進(jìn)一步包括:針對(duì)所述幀序列的第二幀,確定至所述前一黃金幀的第二黃金幀距離以及第二平均時(shí)間失真;以及基于所述第二黃金幀距離和所述第二平均時(shí)間失真,將所述第二幀指定為黃金幀或非黃金幀,其中,所述黃金幀距離在最小黃金幀間隔與默認(rèn)黃金幀間隔之間,其中,所述第二黃金幀距離在所述默認(rèn)黃金幀間隔與最大黃金幀間隔之間,其中,將所述個(gè)體幀指定為黃金幀或非黃金幀包括基于所述平均時(shí)間失真與第一閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,將所述第二幀指定為黃金幀或非黃金幀包括基于所述第二平均時(shí)間失真與第二閾值的比較將所述第二幀指定為黃金幀或非黃金幀,并且其中,所述第一閾值大于所述第二閾值。
進(jìn)一步針對(duì)所述第一實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括:確定所述黃金幀距離為不小于最小黃金幀間隔;當(dāng)所述平均時(shí)間失真大于與所述最小黃金幀間隔相關(guān)聯(lián)的第一閾值時(shí),將所述個(gè)體幀指定為黃金幀;當(dāng)所述平均時(shí)間失真不大于所述第一閾值時(shí),確定所述黃金幀距離為不小于默認(rèn)黃金幀間隔;以及當(dāng)所述平均時(shí)間失真大于與所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的第二閾值時(shí),將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第一實(shí)施例,確定所述個(gè)體幀的所述一部分的所述量化參數(shù)包括:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大小;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù)。
進(jìn)一步針對(duì)所述第一實(shí)施例,確定所述個(gè)體幀的所述一部分的所述量化參數(shù)包括:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大?。灰约盎谒鳇S金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù),并且所述方法進(jìn)一步包括:對(duì)所述個(gè)體幀進(jìn)行編碼;確定所述個(gè)體幀的編碼黃金幀大?。换谒鼍幋a黃金幀大小、所述黃金幀距離、所述預(yù)定平均目標(biāo)比特率和所述黃金幀目標(biāo)大小,確定所述個(gè)體幀之后的第二幀的非黃金幀比;以及基于所述非黃金幀比將所述初始量化參數(shù)修改一非黃金幀偏移量以生成所述第二幀的至少一部分的第二量化參數(shù)。
進(jìn)一步針對(duì)所述第一實(shí)施例,確定所述個(gè)體幀的所述一部分的所述量化參數(shù)包括:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大小;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù),其中,所述偏移量基于所述黃金幀目標(biāo)大小與非黃金幀目標(biāo)大小之比,并且其中,將所述初始量化參數(shù)修改所述偏移量包括從所述初始量化參數(shù)中減去所述偏移量。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述方法進(jìn)一步包括:確定所述黃金幀之后的非黃金幀的至少一部分的第二量化參數(shù),其中,所述第一量化參數(shù)小于所述第二量化參數(shù)。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述個(gè)體幀被指定為黃金幀并且所述方法進(jìn)一步包括:將所述視頻序列的所述多個(gè)幀中的第二幀指定為第二黃金幀;以及確定所述第二幀的至少一部分的第二量化參數(shù),其中,所述個(gè)體幀屬于第一黃金幀類別,并且所述第二幀屬于第二黃金幀類別,并且其中,所述量化參數(shù)小于所述第二量化參數(shù)。
進(jìn)一步針對(duì)所述第一實(shí)施例,所述方法進(jìn)一步包括:基于所述量化參數(shù),對(duì)與所述個(gè)體幀相關(guān)聯(lián)的變換系數(shù)進(jìn)行量化;至少部分地基于所述量化參數(shù),生成與所述視頻序列相關(guān)聯(lián)的模式選擇;以及將所述經(jīng)量化的變換系數(shù)與所述量化參數(shù)編碼成比特流。
在一個(gè)或多個(gè)第二實(shí)施例中,一種用于在計(jì)算設(shè)備上提供視頻編碼的系統(tǒng),所述系統(tǒng)包括:存儲(chǔ)器,所述存儲(chǔ)器被配置成用于存儲(chǔ)視頻數(shù)據(jù);以及圖形處理單元,所述圖形處理單元耦合至所述存儲(chǔ)器,其中,所述圖形處理單元包括:黃金幀選擇電路,所述黃金幀選擇電路被配置成用于:針對(duì)視頻序列的個(gè)體幀,判定所述個(gè)體幀是否為場(chǎng)景變化幀、至前一黃金幀的黃金幀距離以及平均時(shí)間失真;以及基于所述個(gè)體幀是否為場(chǎng)景變化幀、所述黃金幀距離和所述平均時(shí)間失真,將所述個(gè)體幀指定為黃金幀或非黃金幀;以及量化參數(shù)電路,所述量化參數(shù)電路被配置成用于:基于將所述個(gè)體幀指定為黃金幀或非黃金幀以及所述個(gè)體幀的時(shí)間失真,確定所述個(gè)體幀的至少一部分的量化參數(shù)。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述黃金幀選擇電路被配置成用于:當(dāng)所述個(gè)體幀為場(chǎng)景變化幀時(shí)將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述黃金幀選擇電路被配置成用于將所述個(gè)體幀指定為黃金幀或非黃金幀包括所述黃金幀選擇電路被配置成用于確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,以及基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述黃金幀選擇電路被配置成用于將所述個(gè)體幀指定為黃金幀或非黃金幀包括所述黃金幀選擇電路被配置成用于確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,以及基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,當(dāng)所述平均時(shí)間失真大于所述閾值時(shí),將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述黃金幀選擇電路進(jìn)一步被配置成用于:針對(duì)所述幀序列的第二幀,確定至所述前一黃金幀的第二黃金幀距離以及第二平均時(shí)間失真;以及基于所述第二黃金幀距離和所述第二平均時(shí)間失真,將所述第二幀指定為黃金幀或非黃金幀,其中,所述黃金幀距離在最小黃金幀間隔與默認(rèn)黃金幀間隔之間,其中,所述第二黃金幀距離在所述默認(rèn)黃金幀間隔與最大黃金幀間隔之間,其中,所述黃金幀選擇電路被配置成用于基于所述平均時(shí)間失真與第一閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,所述黃金幀選擇電路被配置成用于基于所述第二平均時(shí)間失真與第二閾值的比較將所述第二幀指定為黃金幀或非黃金幀,并且其中,所述第一閾值大于所述第二閾值。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述量化參數(shù)電路被配置成用于確定所述量化參數(shù)包括所述量化參數(shù)電路被配置成用于:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大小;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù)。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述量化參數(shù)電路被配置成用于確定所述量化參數(shù)包括所述量化參數(shù)電路被配置成用于:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大??;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù),并且所述系統(tǒng)進(jìn)一步包括:熵編碼器,所述熵編碼器被配置成用于對(duì)所述個(gè)體幀進(jìn)行編碼;以及編碼控制器,所述編碼控制器被配置成用于確定所述個(gè)體幀的編碼黃金幀大小,其中,所述量化參數(shù)電路進(jìn)一步被配置成用于:基于所述編碼黃金幀大小、所述黃金幀距離、所述預(yù)定平均目標(biāo)比特率和所述黃金幀目標(biāo)大小,確定所述個(gè)體幀之后的第二幀的非黃金幀比;以及基于所述非黃金幀比將所述初始量化參數(shù)修改一非黃金幀偏移量以生成所述第二幀的至少一部分的第二量化參數(shù)。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述量化參數(shù)電路被配置成用于確定所述量化參數(shù)包括所述量化參數(shù)電路被配置成用于:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大??;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù),其中,所述偏移量基于所述黃金幀目標(biāo)大小與非黃金幀目標(biāo)大小之比,并且其中,所述量化參數(shù)電路被配置成用于將所述初始量化參數(shù)修改所述偏移量包括所述量化參數(shù)電路被配置成用于從所述初始量化參數(shù)中減去所述偏移量。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述量化參數(shù)電路進(jìn)一步被配置成用于:確定所述黃金幀之后的非黃金幀的至少一部分的第二量化參數(shù),其中,所述第一量化參數(shù)小于所述第二量化參數(shù)。
進(jìn)一步針對(duì)所述第二實(shí)施例,所述黃金幀選擇電路進(jìn)一步被配置成用于:將所述視頻序列的所述多個(gè)幀中的第二幀指定為第二黃金幀;以及確定所述第二幀的至少一部分的第二量化參數(shù),其中,所述個(gè)體幀屬于第一黃金幀類別,并且所述第二幀屬于第二黃金幀類別,并且其中,所述量化參數(shù)小于所述第二量化參數(shù)。
在一個(gè)或多個(gè)第三實(shí)施例中,一種用于在計(jì)算設(shè)備上提供視頻編碼的系統(tǒng),所述系統(tǒng)包括:用于針對(duì)視頻序列的個(gè)體幀判定所述個(gè)體幀是否為場(chǎng)景變化幀、至前一黃金幀的黃金幀距離以及平均時(shí)間失真的裝置;用于基于所述個(gè)體幀是否為場(chǎng)景變化幀、所述黃金幀距離和所述平均時(shí)間失真將所述個(gè)體幀指定為黃金幀或非黃金幀的裝置;以及用于基于將所述個(gè)體幀指定為黃金幀或非黃金幀以及所述個(gè)體幀的時(shí)間失真而確定所述個(gè)體幀的至少一部分的量化參數(shù)的裝置。
進(jìn)一步針對(duì)所述第三實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括當(dāng)所述個(gè)體幀為場(chǎng)景變化幀時(shí)將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第三實(shí)施例,所述用于將所述個(gè)體幀指定為黃金幀或非黃金幀的裝置包括:用于確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況的裝置,以及用于基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀的裝置。
進(jìn)一步針對(duì)所述第三實(shí)施例,所述系統(tǒng)進(jìn)一步包括:用于針對(duì)所述幀序列的第二幀確定至所述前一黃金幀的第二黃金幀距離以及第二平均時(shí)間失真的裝置;以及用于基于所述第二黃金幀距離和所述第二平均時(shí)間失真將所述第二幀指定為黃金幀或非黃金幀的裝置,其中,所述黃金幀距離在最小黃金幀間隔與默認(rèn)黃金幀間隔之間,其中,所述第二黃金幀距離在所述默認(rèn)黃金幀間隔與最大黃金幀間隔之間,其中,將所述個(gè)體幀指定為黃金幀或非黃金幀包括基于所述平均時(shí)間失真與第一閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,將所述第二幀指定為黃金幀或非黃金幀包括基于所述第二平均時(shí)間失真與第二閾值的比較將所述第二幀指定為黃金幀或非黃金幀,并且其中,所述第一閾值大于所述第二閾值。
在一個(gè)或多個(gè)第四實(shí)施例中,至少一種機(jī)器可讀介質(zhì)包括多條指令,所述指令響應(yīng)于在計(jì)算設(shè)備上被執(zhí)行而使所述計(jì)算設(shè)備通過(guò)以下各項(xiàng)來(lái)執(zhí)行視頻編碼:針對(duì)視頻序列的個(gè)體幀,判定所述個(gè)體幀是否為場(chǎng)景變化幀、至前一黃金幀的黃金幀距離以及平均時(shí)間失真;基于所述個(gè)體幀是否為場(chǎng)景變化幀、所述黃金幀距離和所述平均時(shí)間失真,將所述個(gè)體幀指定為黃金幀或非黃金幀;以及基于將所述個(gè)體幀指定為黃金幀或非黃金幀以及所述個(gè)體幀的時(shí)間失真,確定所述個(gè)體幀的至少一部分的量化參數(shù)。
進(jìn)一步針對(duì)所述第四實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括當(dāng)所述個(gè)體幀為場(chǎng)景變化幀時(shí)將所述個(gè)體幀指定為黃金幀。
進(jìn)一步針對(duì)所述第四實(shí)施例,將所述個(gè)體幀指定為黃金幀或非黃金幀包括:確定所述黃金幀距離為等于或大于最小黃金幀間隔或默認(rèn)黃金幀間隔中的至少一者中的至少一種情況,以及基于所述平均時(shí)間失真與同所述最小黃金幀間隔或所述默認(rèn)黃金幀間隔相關(guān)聯(lián)的閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀。
進(jìn)一步針對(duì)所述第四實(shí)施例,所述機(jī)器可讀介質(zhì)包括進(jìn)一步的指令,所述指令響應(yīng)于在所述計(jì)算設(shè)備上被執(zhí)行而使所述計(jì)算設(shè)備通過(guò)以下各項(xiàng)來(lái)執(zhí)行視頻編碼:針對(duì)所述幀序列的第二幀,確定至所述前一黃金幀的第二黃金幀距離以及第二平均時(shí)間失真;以及基于所述第二黃金幀距離和所述第二平均時(shí)間失真,將所述第二幀指定為黃金幀或非黃金幀,其中,所述黃金幀距離在最小黃金幀間隔與默認(rèn)黃金幀間隔之間,其中,所述第二黃金幀距離在所述默認(rèn)黃金幀間隔與最大黃金幀間隔之間,其中,將所述個(gè)體幀指定為黃金幀或非黃金幀包括基于所述平均時(shí)間失真與第一閾值的比較將所述個(gè)體幀指定為黃金幀或非黃金幀,其中,將所述第二幀指定為黃金幀或非黃金幀包括基于所述第二平均時(shí)間失真與第二閾值的比較將所述第二幀指定為黃金幀或非黃金幀,并且其中,所述第一閾值大于所述第二閾值。
進(jìn)一步針對(duì)所述第四實(shí)施例,確定所述個(gè)體幀的所述一部分的所述量化參數(shù)包括:當(dāng)所述個(gè)體幀被指定為黃金幀時(shí),基于所述個(gè)體幀的所述時(shí)間失真、所述黃金幀距離以及所述視頻序列的目標(biāo)比特率,確定所述個(gè)體幀的黃金幀目標(biāo)大??;以及基于所述黃金幀目標(biāo)大小將初始量化參數(shù)修改一偏移量以生成所述個(gè)體幀的所述一部分的所述量化參數(shù)。
進(jìn)一步針對(duì)所述第四實(shí)施例,所述機(jī)器可讀介質(zhì)包括進(jìn)一步的指令,所述指令響應(yīng)于在所述計(jì)算設(shè)備上被執(zhí)行而使所述計(jì)算設(shè)備通過(guò)以下各項(xiàng)來(lái)執(zhí)行視頻編碼:對(duì)所述個(gè)體幀進(jìn)行編碼;確定所述個(gè)體幀的編碼黃金幀大??;基于所述編碼黃金幀大小、所述黃金幀距離、所述預(yù)定平均目標(biāo)比特率和所述黃金幀目標(biāo)大小,確定所述個(gè)體幀之后的第二幀的非黃金幀比;以及基于所述非黃金幀比將所述初始量化參數(shù)修改一非黃金幀偏移量以生成所述第二幀的至少一部分的第二量化參數(shù)。
在一個(gè)或多個(gè)第五實(shí)施例中,至少一種機(jī)器可讀介質(zhì)可以包括多條指令,所述指令響應(yīng)于在計(jì)算設(shè)備上被執(zhí)行而使所述計(jì)算設(shè)備執(zhí)行根據(jù)以上實(shí)施例中的任一項(xiàng)所述的方法。
在一個(gè)或多個(gè)第六實(shí)施例中,一種裝置可以包括:用于執(zhí)行根據(jù)以上實(shí)施例中的任一項(xiàng)所述的方法的裝置。
將認(rèn)識(shí)到,這些實(shí)施例并不限于如此描述的這些實(shí)施例,而是可在不背離所附權(quán)利要求書(shū)的范圍的情況下通過(guò)修改和變更來(lái)實(shí)踐。例如,以上實(shí)施例可以包括特征的特定組合。然而,以上實(shí)施例并不限于這個(gè)方面,并且在各實(shí)現(xiàn)方式中,以上實(shí)施例可以包括僅采取這類特征的子集、采取這類特征的不同順序、采取這類特征的不同組合、和/或采取除了明確例舉的那些特征之外的附加特征。因此,這些實(shí)施例的范圍應(yīng)當(dāng)參考所附權(quán)利要求書(shū)、連同這樣的權(quán)利要求書(shū)有權(quán)獲得的等效物的全部范圍來(lái)確定。