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