視頻編碼方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及視頻編碼方法和系統(tǒng),在一個實施方式中,一種方法包括:在單一編碼引擎處接收諸如幀率、配置文件和等級以及編碼標準的根據(jù)第一版本的視頻特性的輸入視頻流,并通過單一編碼引擎,并行生成多個流,這多個流包括根據(jù)第一版本的視頻特性的第一編碼流和根據(jù)第二版本的視頻特性的第二編碼流,第二編碼流基于用于生成第一編碼流的視頻編碼信息而生成。
【專利說明】視頻編碼方法和系統(tǒng)
[0001]相關(guān)申請的交叉參考
[0002]本申請要求于2012年7月10日提交的美國專利申請第13/545,261號的優(yōu)先權(quán),其全部內(nèi)容通過引用結(jié)合于此。
【技術(shù)領(lǐng)域】
[0003]本公開主要涉及視頻編碼/轉(zhuǎn)碼。
【背景技術(shù)】
[0004]視頻技術(shù)的進展已導致多種機制,通過這些機制消費者可接收和享受視頻(和音頻)演示。例如,信號可通過衛(wèi)星或電纜在家中或商業(yè)場所的電子裝置上接收,并作為高比特率、高清晰度(HD)流分配,用于通過同軸電纜多媒體聯(lián)盟(multimedia over coaxalliance) (MoCA)網(wǎng)絡在一個房間中觀看,或作為低比特率流分配,用于通過無線在便攜設備上觀看,或作為到另一客戶端設備的流內(nèi)容分配,用于通過互聯(lián)網(wǎng)轉(zhuǎn)移位置觀看。隨著技術(shù)的提高,實現(xiàn)這些功能的各種方法繼續(xù)發(fā)展。
【發(fā)明內(nèi)容】
[0005]本公開提供了一種方法,包括:在單一編碼引擎處接收根據(jù)第一版本的視頻特性的輸入視頻流;以及通過單一編碼引擎,并行生成多個流,多個流包括根據(jù)第一版本的視頻特性的第一編碼流,以及根據(jù)第二版本的視頻特性的第二編碼流,第二編碼流基于用于生成第一編碼流的視頻編碼信息而生成。
[0006]優(yōu)選地,視頻特性包括幀率,且其中,第一版本和第二版本的幀率值不同。
[0007]優(yōu)選地,視頻編碼信息包括用于幀間預測的運動矢量搜索結(jié)果。
[0008]優(yōu)選地,運動矢量搜索結(jié)果包括運動矢量、一個編碼單元的分區(qū)、運動矢量搜索范圍或它們的任何組合。
[0009]優(yōu)選地,第二版本包括低于第一版本的幀率,其中生成包括:通過共享在生成第一編碼流時應用的運動矢量搜索結(jié)果,在較低幀率視頻上生成第二編碼流,其中發(fā)生第二編碼流的生成,而無需執(zhí)行額外的運動搜索操作。
[0010]優(yōu)選地,第二版本包括低于第一版本的巾貞率,其中生成包括:通過從對應于第一編碼流的運動矢量推導運動矢量,在較低幀率視頻上生成第二編碼流。
[0011]優(yōu)選地,推導基于對應于第一編碼流的圖像的重復或非重復的圖案。
[0012]優(yōu)選地,該方法進一步包括選擇圖像重復圖案的幀內(nèi)周期,從而對齊不同幀率的流的幀內(nèi)圖像。
[0013]優(yōu)選地,該方法進一步包括用另一參考圖像取代對應于第一編碼流并對于第二編碼流不可用的參考圖像。
[0014]優(yōu)選地,推導進一步包括基于當前圖像、進行替代的參考圖像和不可用的參考圖像之間的時間距離差異,縮放對應于第一編碼流的運動矢量。[0015]優(yōu)選地,該方法進一步包括選擇圖像的重復圖案的幀內(nèi)周期,作為時間縮減因數(shù)的倍數(shù)。
[0016]優(yōu)選地,第一編碼流包括基本層和增強層視頻流的組合,而第二編碼流僅包括基本層或增強層視頻流,運動搜索結(jié)果對應于第一編碼流的生成,并用于為基本層視頻流生成運動矢量。
[0017]優(yōu)選地,視頻編碼信息包括幀間和幀內(nèi)預測的模式?jīng)Q定。
[0018]優(yōu)選地,對應于第二編碼流的幀間預測的分區(qū)與對應于第一編碼流的幀間預測的分區(qū)相同。
[0019]優(yōu)選地,當相同幀內(nèi)圖像在兩個流之間共享時,對應于第一編碼流的每個編碼單元的幀內(nèi)預測模式?jīng)Q定用于第二編碼流。
[0020]優(yōu)選地,視頻特性包括配置文件和等級,且其中第一版本和第二版本在配置文件、等級或它們兩者的組合上不同。
[0021]優(yōu)選地,視頻編碼信息包括用于幀間預測的運動矢量搜索結(jié)果,運動矢量搜素結(jié)果包括運動矢量、一個編碼單元的分區(qū)、運動矢量搜索范圍或它們的任何組合。
[0022]優(yōu)選地,第二編碼流的生成基于用于提供第一編碼流的第一運動矢量搜索范圍,或作為第一運動矢量搜索范圍的子集的第二運動矢量搜索范圍,第一編碼流和第二編碼流基于時間上共同的搜索操作而提供。
[0023]優(yōu)選地,視頻編碼信息包括給定編碼單元的幀間或幀內(nèi)預測之間的選擇或幀內(nèi)預測的幀內(nèi)模式?jīng)Q定。
[0024]本公開還提供了一種系統(tǒng),包括:以硬件配置的單一編碼引擎,其接收根據(jù)第一版本的視頻特性的輸入視頻流,且并行生成包括不同版本的視頻特性的多個編碼流,多個編碼流基于用于生成多個編碼流之一的視頻編碼信息而生成。
【專利附圖】
【附圖說明】
[0025]參考以下附圖,可更好地理解本公開的許多方面。附圖中的組件不一定按比例,而重點在于清楚地示出本公開的原理。此外,在附圖中,相似的參考標號在幾個示圖中指示相應的部分。
[0026]圖1是可以采用視頻編碼系統(tǒng)的實施方式的示例環(huán)境的框圖。
[0027]圖2A至圖2B是示出來自輸入視頻流的不同幀率的視頻流的生成和在降低的幀率流中不可用的參考圖像的替代選擇的示意圖。
[0028]圖3是示出編碼引擎的一個實施方式中不同視頻編碼標準或相同編碼標準的不同配置文件的示例運動搜索范圍的一個實施方式的框圖。
[0029]圖4A至圖4B是示出示例編碼引擎的特定實施方式的框圖。
[0030]圖5是示出示例視頻編碼方法的一個實施方式的流程圖。
【具體實施方式】
[0031]本發(fā)明在這里公開了視頻編碼系統(tǒng)和方法的特定實施方式,這些系統(tǒng)和方法包括多個實時并行編碼操作之間共享視頻編碼信息的單一編碼引擎,從而提供多個編碼流。視頻編碼信息包括運動矢量搜索結(jié)果(例如運動矢量、一個編碼單元或一個宏塊的分區(qū)、運動矢量搜索范圍等),且在一些實施方式中包括模式?jīng)Q定,如用于編碼單元或宏塊的幀間或幀內(nèi)預測模式,以及如果幀內(nèi)預測被選擇用于編碼單元或宏塊,則還包括幀內(nèi)預測方向。應該注意,本領(lǐng)域普通技術(shù)人員應該理解,編碼單元是指新興的HEVC視頻壓縮標準中的基本編碼單元,而宏塊是指MPEG-2、AVC、VC-1和VP8視頻壓縮標準中的基本編碼單元。宏塊和編碼單元是這里可互換使用的兩個術(shù)語。這里對編碼的參考包括編碼(例如基于非壓縮流的接收)和轉(zhuǎn)碼(例如基于壓縮流的接收,和利用解壓或沒有解壓的壓縮操作)。
[0032]在對應于不同幀率(例如,幀率在這里也稱為圖像速率,作為一個示例視頻特性)的視頻編碼系統(tǒng)的一個實施方式中,當編碼來自相同輸入的較低幀率視頻時,單一編碼引擎用于通過共享幀間預測的運動矢量搜索結(jié)果和/或共享幀間和幀內(nèi)預測這兩個的模式?jīng)Q定,實時生成原始高幀率輸入視頻的一個或多個壓縮流,和低于原始輸入視頻的一個或多個較低幀率視頻。
[0033]在對應于多個配置文件和等級(例如,配置文件和等級是另一個示例視頻特性)的視頻編碼系統(tǒng)的一個實施方式中,當編碼來自相同輸入的不同配置文件和等級的視頻時,單一編碼引擎用于通過共享幀間預測的運動矢量搜索結(jié)果和/或共享幀內(nèi)預測的幀內(nèi)模式?jīng)Q定和/或編碼單元或宏塊的幀間或幀內(nèi)預測之間的選擇,實時生成不同配置文件和等級的壓縮流。
[0034]在傳統(tǒng)系統(tǒng)中,相同編碼引擎的多個實例可以用來支持實時并行編碼原始輸入視頻以及較低幀率或不同配置文件和等級版本的輸入視頻,這可增加硅成本,或支持在實時視頻速率倍數(shù)的速度下,通過相同編碼引擎,編碼原始輸入視頻和較低幀率或不同配置文件和等級版本,這增加了電路時鐘速率和功耗。運動矢量搜索是功能之一,該功能消耗更多的處理資源以及DRAM帶寬成本,無論其是以硬件還是軟件實現(xiàn)。如果搜索范圍不夠,這也是可顯著影響編碼質(zhì)量的功能之一。如視頻編碼系統(tǒng)的特定實施方式所執(zhí)行,不同大小、不同幀率或不同配置文件的相同視頻之間運動搜索結(jié)果的共享可節(jié)省硅和DRAM成本。此外,在不同幀率和/或配置文件和/或等級下的多個不同編碼流的生成在視頻編碼系統(tǒng)的特定實施方式中實現(xiàn),而不增加超出輸入視頻實時視頻幀率的速度。
[0035]已經(jīng)概述了視頻編碼系統(tǒng)的特定實施方式的特征,現(xiàn)在將詳細參考本公開的說明,如附圖中示出。雖然將結(jié)合這些附圖描述本公開,但不旨在將其限制于這里公開的一個或多個實施方式。此外,雖然該說明識別或描述一個或多個實施方式的細節(jié),但這些細節(jié)不一定是每個實施方式的一部分,也不一定是與單一實施方式或所有實施方式關(guān)聯(lián)的所有所述優(yōu)點。相反,該意圖是覆蓋如所述權(quán)利要求定義,包括在本公開精神和保護范圍內(nèi)的所有替代、修改和等價物。此外,應該理解,在本公開的說明書中,權(quán)利要求不必限制于說明中所述的【具體實施方式】。
[0036]參考圖1,其示出示例環(huán)境的框圖,其中可采用視頻編碼系統(tǒng)的實施方式。本領(lǐng)域普通技術(shù)人員應該理解,在本公開的背景下,可以考慮可用來編碼的其他系統(tǒng),且因此圖1僅是說明性目的,其中其他變化也可考慮在本公開的保護范圍內(nèi)。圖1中示出的環(huán)境包括家庭娛樂系統(tǒng)100,其包括電子裝置102、嵌入到電子裝置102的編碼引擎104、以及多個多媒體設備,包括智能電話106、筆記本計算機108和電視機110。在一個實施方式中,電子裝置102配置為家庭媒體網(wǎng)關(guān)機頂盒,其中來自電纜或衛(wèi)星(或地面)的相同輸入視頻通過單一編碼引擎104同步實時編碼至不同比特率,如用于通過MoCA在臥室中的電視機110上觀看的高比特率高清晰度(HD)流,以及通過無線用于便攜設備(例如智能電話106、移動電話、PDA等)低比特率流,和/或用于通過互聯(lián)網(wǎng)轉(zhuǎn)移位置觀看的到另一客戶端(例如筆記本計算機108)的流。在一些實施方式中,電子裝置102可實施為其他電子設備之中的服務器設備、路由器、計算機、電視機。
[0037]低比特率流可以是相比原始輸入視頻的低值視頻特性,該原始輸入視頻提供給電子裝置102的輸入(例如,較低幀率,如在原始輸入一半幀率下的流,或不同配置文件和等級,如在AVC/H.264視頻編碼標準中較低的等級2.1與等級3.1)。下面的說明從涉及關(guān)于不同幀率用途的視頻特性的實施方式開始,隨后接著是尋址其他視頻特性的特定實施方式。相同視頻內(nèi)容的多個幀率流在異構(gòu)視頻消費環(huán)境中特別有用。例如,使用多個屏幕,超高質(zhì)量視頻如1080p60的直播體育比賽可在客廳中大屏幕110中觀看,而與此同時,1080p30的相同比賽可使用家庭無線路由器通過WiFi在廚房或后院中的便攜設備(例如智能電話106、iPAD等)中觀看,或當用戶可能必須在比賽中途開車離開,同時其家庭可能仍在家里觀看比賽時,其可通過3G/4G無線IP網(wǎng)絡在車輛顯示屏上以1080p30觀看。同時不同場所的多個屏幕上相同視頻內(nèi)容的無縫消耗可能需要實時編碼引擎104,從而同時生成具有相同輸入視頻的多個幀率視頻。
[0038]實時多速率視頻編碼引擎104也具有無線視頻顯示中的一個或多個應用,如通過WiFi個視頻,或通過WiGig個視頻,其中由于運動物體可能堵塞發(fā)射器和接收器之間的傳輸路徑,視頻傳輸速率的可用帶寬可非??焖俚馗淖儭?br>
[0039]如果通常包括例如視頻編碼引擎104的發(fā)射器生成高和低比特率流,則視頻編碼系統(tǒng)的特定實施方式可對于視頻服務質(zhì)量提供好處。低比特率流可以是低于原始輸入流幀率的相同視頻,并因此當可用帶寬下降時,滿足較低的傳輸速率。
[0040]實時的多個幀率視頻編碼引擎104 (例如其實時生成具有相同輸入視頻的多個壓縮視頻流)可能具有吸引力,因為具有視頻幀率轉(zhuǎn)換器的顯示設備顯現(xiàn)為受歡迎的特征,其中當在屏幕上顯示時,低幀率流可以轉(zhuǎn)換為高幀率。
[0041]雖然以上重點已放在涉及使用不同幀率的應用和/或特征/益處上,呈現(xiàn)不同配置文件和等級流的能力也具有可符合消費者的眾多有益應用,并可在這里考慮。例如,同時流式傳輸相同視頻內(nèi)容到多個屏幕上的機頂盒應用形成為重要特征。不同的屏幕可能需要機頂盒傳輸不僅比特率、幀率和/或圖像大小不同、而且配置文件和等級也不同的相同視頻內(nèi)容。即,不同的視頻顯示設備可以具有不同的解碼能力,從而即使對于相同的編碼標準,每個設備可支持所選的配置文件和等級。例如,便攜設備如iPad可支持AVC配置文件/等級4.2,同時移動電話可能僅支持AVC配置文件/等級3.2。實時多速率視頻編碼引擎104可能需要以同時具有相同輸入視頻的不同配置文件和等級實時生成多個壓縮視頻流。
[0042]在下面的說明中,結(jié)合圖2A至圖2B (幀率)和圖3 (不同配置文件和等級或編碼標準的運動搜索范圍)中的說明,公開涉及提供示例視頻特性(例如幀率和配置文件和等級)不同的多個編碼流的視頻編碼方法的各種實施方式。應該理解,在本公開的說明書內(nèi),視頻編碼系統(tǒng)的特定實施方式可以采用這些方法中的一個或任何組合。
[0043]現(xiàn)將參考圖2A至圖2B,它們示出了一些示例視頻編碼方法,其涉及提供不同幀率的多個編碼流。在視頻編碼方法的一個實施方式中,當?shù)蛶室曨l通過共享通過原始(例如,如在給定電子裝置中接收)輸入視頻幀率編碼的流的運動搜索結(jié)果而編碼時,運動搜索在原始輸入幀率的視頻中執(zhí)行。例如,原始輸入視頻的幀率在60幀每秒時(例如1080p60)可以是1920X1080,而較低的幀率視頻在30幀每秒時(例如1080p30)可以是1920X1080。在這個實例中,運動搜索在編碼1080p60視頻時執(zhí)行,而編碼1080p30視頻的運動矢量從1080p60視頻的那些中推導,而不進行其自身的運動搜索。較低幀率視頻的運動矢量如何推導取決于GOP (圖像組)結(jié)構(gòu)。在一個實施方式中,通過選擇GOP的幀內(nèi)周期為圖像的偶數(shù),視頻編碼方法便于運動矢量推導,這使視頻序列中相同圖像可選擇為1080p60和1080p30流中的幀內(nèi)圖像(幀內(nèi)編碼或I圖像),且這進一步使1080p30中幀內(nèi)圖像距離為1080p60中的一半。
[0044]作為一個實例,注意力轉(zhuǎn)到圖2A中的示圖200A,其示出提供給編碼引擎104輸入的未壓縮輸入視頻流201,以及表現(xiàn)出圖像速率差異的兩個視頻流202和204 (每個示出一個GOP序列)的生成。應該注意,為簡潔起見,術(shù)語“圖像”和“幀”在公開中可互換使用。同樣的想法適用于交錯(隔行)格式的視頻,其中“場”是圖像的基本單元。為了說明,假設生成的視頻流202對應于1080p60視頻的G0P,而另一生成的視頻流204對應于1080p30視頻的G0P。應該注意,額外的視頻流可以在編碼引擎104中生成,如與視頻流204下方示出的一部分圖像一起的水平虛線表示。如這個實例中示出,1080p60視頻202中所選GOP是“10P0P1P2P3P4P5P6I1”(以顯示次序)。1080p30視頻204中的GOP通過視頻編碼系統(tǒng)選擇為“10P1P3P5I1”(同樣地以顯示次序)。如果1080p30視頻204中所選P圖像使用不是1080p30視頻序列中圖像之一的參考(例如,不存在于1080p30視頻204),例如其中Pl使用PO作為1080p60序列中的參考,而PO不是1080p30序列中圖像之一(如從Pl到不存在的PO的虛線參考箭頭表示),則Pl使用其之前的參考圖像(例如IO圖像,如從Pl到IO的實心參考箭頭表示)作為1080p30視頻204中的參考。通過Pl和IO之間的時間距離208與Pl和PO之間的時間距離206的比率,1080p60視頻202中的Pl到PO的運動矢量縮放到1080p30視頻204中的Pl到IO圖像參考。在這個實例中,如果Pl和PO之間的時間距離206是一個單位,則Pl和IO之間的時間距離208是兩個單位,且運動矢量通過因數(shù)2縮放。如果1080p60視頻202中所選P圖像使用仍是1080p30視頻204中之一的參考,例如其中Pl使用IO作為參考,而IO仍是1080p30視頻204中圖像之一,則Pl到IO的相同運動矢量可在1080p30視頻序列中使用,而不用縮放。
[0045]在又一個實例中,在圖2B的示圖200B示出的1080P60和1080P30視頻的背景下,假設非壓縮輸入視頻209且1080p60視頻210中的所選GOP是“10B0B1P0B2B3P1B4B5P2B6B7I1”而 1080p30 視頻 212 中的所選 GOP 是“10B1B2P1B5B6I1”。如與位于視頻流212下方一部分圖像一起的水平虛線所說明的,在一些實施方式中,可生成額外的流。如果1080p30視頻212中所選B圖像使用不是該流212中圖像之一的參考,例如其中BI使用IO (如實心箭頭示出的參考)和PO作為雙向預測的兩個參考,而PO不再在1080p30序列212中(如虛線參考箭頭表不),則所選B圖像使用其最鄰近的I或P圖像作為BI幀間預測的其參考(例如IO和P1,每個都用實心參考箭頭表示)。因為Pl不是1080p60視頻210中BI的參考,通過BI和Pl之間的時間距離216與BI和PO之間的時間距離214的比率,縮放BI到PO的運動矢量,可推導出BI到Pl的運動矢量。在這個實例中,如果BI和PO之間的時間距離214是一個單位,則BI和Pl之間的時間距離216是四個單位,且BI和Pl之間的運動矢量通過以因數(shù)4縮放BI和PO之間的那些來推導出。[0046]在1080p30視頻212中發(fā)現(xiàn)運動矢量之后,運動補償和其他處理功能如變換、量化、逆量化、逆變換、重建、環(huán)路濾波和熵編碼(entropy coding)可執(zhí)行用于1080p30視頻212,其獨立于1080p60視頻210,以防止任何漂移。應該注意,在上述實例中,1080p30幀間預測中使用的重建圖像Pl不同于1080p60幀間預測中使用的圖像。
[0047]上述示例視頻編碼方法可應用在一些實施方式中,從而以不同時間縮減因數(shù)的幀率編碼視頻。當時間縮減因數(shù)不是偶數(shù)時,所選GOP的幀內(nèi)周期可以是時間縮減因數(shù)的倍數(shù)。在一些實施方式中,所選GOP的幀內(nèi)周期可以不是時間縮減因數(shù)的倍數(shù),且不同幀率的幀內(nèi)圖像沒有對齊。在這后一種情況下,較低幀率下的視頻可以具有其自身的幀內(nèi)模式?jīng)Q定塊,并選擇其自身幀內(nèi)圖像代替原始視頻GOP中幀間預測圖像。幀內(nèi)模式?jīng)Q定塊通常不訪問DRAM,并消耗微不足道的硅面積或功率。在一些實施方式中,較低幀率視頻中的縮放運動矢量也可通過在小搜索范圍內(nèi)執(zhí)行細化搜索而細化。
[0048]關(guān)于幀間預測目的的分區(qū),在一個實施方式中,較低幀率的幀間預測分區(qū)可以保持較高幀率中使用的那些分區(qū)。在一些實施方式中,當?shù)蛶屎透邘室曨l共享相同幀內(nèi)圖像時,每個編碼單元或宏塊的幀內(nèi)預測模式?jīng)Q定也可在低幀率和高幀率視頻之間共享。例如,在AVC模式中,P或B圖像也可具有通過幀內(nèi)模式編碼的宏塊。每個宏塊的幀間或幀內(nèi)決定也可通過低幀率和高幀率視頻共享。
[0049]在一些實施方式中,共享方案的運動搜索可以擴展到實時的可縮放視頻編碼器,其中不同時間層可以通過相同編碼器(例如編碼引擎104)實時編碼。增強層的運動搜索結(jié)果可以用于生成基本層的運動矢量,所述基本層是較低的幀率。
[0050]在一些實施方式中,共享方案的運動搜索可以應用于實時3D視頻編碼器,其中多個視圖可以通過相同編碼器實時編碼。一個視圖的運動搜索結(jié)果可以通過3D視頻的多視點編碼方法中的相鄰視圖而共享。
[0051]已經(jīng)描述了關(guān)于圖像速率視頻特性的視頻編碼方法的特定實施方式,現(xiàn)注意力轉(zhuǎn)到圖3,其與關(guān)于不同配置文件和等級和/或編碼標準的特定視頻編碼方法的討論相關(guān)聯(lián)。雖然不同的配置文件和等級可具有不同的最大允許幀率、最大允許圖像大小和/或最大允許運動搜索范圍,從而限制不同應用的執(zhí)行成本,同時實現(xiàn)不同制造商的編碼器和解碼器之間的操作兼容性,但是存在適用于所有配置文件和等級的一些常見工具集。例如,幀內(nèi)預測模式對于所有AVC配置文件和等級是相同的。當生成不同配置文件和等級的AVC流時,可共享幀內(nèi)預測模式?jīng)Q定的硬件和/或軟件實現(xiàn)。
[0052]在另一個實例中,垂直運動矢量范圍對于不同AVC配置文件和等級是不同的,如對于AVC等級2.1至3的[-256,+255.75],以及對于AVC等級3.1及以上的[-512,+511.75],如圖3示圖300中相應的運動矢量范圍304和302所示出。在一個實施方式中,視頻編碼方法可使用垂直運動矢量范圍的公共集用于通過編碼器生成的所有目標AVC配置文件和等級,如當生成AVC等級3和4.2的流時的運動矢量范圍304 (例如[-256,+255.75])。在一些實施方式中,當運動搜索覆蓋較高配置文件的流的較大范圍時,視頻編碼方法也可將運動搜索結(jié)果的子集應用到較低配置文件的流。在這個實例中,運動搜索發(fā)現(xiàn)用于AVC等級3.1及以上的運動矢量范圍302 (例如[-512,+511.75])中的最佳運動矢量,并發(fā)現(xiàn)相同搜索操作期間用于AVC等級2.1至3的較小范圍304的最佳模式矢量。運動搜索可以在第一方法(例如公共集)的高或低配置文件/等級編碼路徑中執(zhí)行,同時其可以在第二方法(例如子集)的高配置文件/等級編碼路徑中執(zhí)行。
[0053]在又一個AVC實例中,最小亮度雙向預測大小限制為等級3.1及以上的8X8,而沒有對其以下的等級的限制。當生成等級3.1或以上以及等級3和以下(例如公共集)的流時,運動搜索可限制最小亮度雙向預測大小為8X8。
[0054]在AVC編碼器的實例中,P或B圖像也可具有可通過幀內(nèi)模式編碼的宏塊。在一些視頻編碼方法的實施方式中,每個宏塊的幀間或幀內(nèi)的決定也可通過低和高配置文件/等級而共享。對于幀內(nèi)預測,所有的AVC配置文件和等級可共享沒有配置文件或等級具體限制的相同巾貞內(nèi)模式?jīng)Q定。
[0055]因為目標最大比特率可對于不同配置文件和等級是不同的,所以其他編碼參數(shù)或工具可能無法通過不同配置文件和等級的編碼路徑共享。例如,量化參數(shù)可不同,且得到的重建圖像可不同。一般地,其他功能可能無法共享。
[0056]在一些實施方式中,涉及配置文件和等級以及運動搜索和模式?jīng)Q定共享方案的上述視頻編碼方法可以應用于任何視頻編碼標準(包括新興的HEVC或H.265,等)的不同配置文件和等級的多個流的編碼,其中多個配置文件和等級可針對不同的應用定義。在一些實施方式中,有關(guān)配置文件和等級、以及運動搜索和模式?jīng)Q定共享方案的上述視頻編碼方法也可擴展到不同視頻標準的多個流的編碼,其中存在運動搜索參數(shù)的公共集,如運動矢量范圍,其可通過兩個視頻編碼標準共享。在這種情況下,在根據(jù)各標準的不同分區(qū)限制的針對不同編碼標準細化之前,可以使用相同實現(xiàn)塊而搜索公共的粗運動矢量。
[0057]現(xiàn)將注意力轉(zhuǎn)到圖4A至圖4B,其示出實施為單一編碼引擎104的示例視頻編碼系統(tǒng)。在一個實施方式中,單一編碼引擎104可以以硬件實現(xiàn),盡管一些實施方式可包括軟件(包括固件)或軟件和硬件的組合。例如,一些實施方式可包括處理器(例如CPU),其提供指令和/或數(shù)據(jù)給圖4A和圖4B示出的一個或多個邏輯單元。示例單一編碼引擎104包括第一處理單元402和第二處理單元404。應該理解,在本公開的背景下,雖然示出了兩個處理單元402和404,但該數(shù)量僅是說明性的,且特定實施方式可包括額外的處理單元。多個處理單元402和404生成對應于不同幀率、圖像大小和/或配置文件和等級的相應比特流(例如,“比特流I和比特流2”)。為了說明,單一編碼引擎104示出為生成兩個比特流。然而,單一編碼引擎104的一些實施方式可擴展從而生成任何數(shù)量的比特流。比特流的數(shù)量例如可取決于對單一編碼引擎104的電子裝置殼體執(zhí)行的應用。
[0058]在視頻輸入406處(例如接口)接收視頻。例如,在接口 406輸入處接收的視頻可包括圖2A中示出的輸入視頻201 (或圖2B中示出的輸入視頻209)。接口 406根據(jù)熟知方法執(zhí)行復制功能,其中輸入視頻分成多個視頻流(在這個實例中是二(2)),其鏡像輸入視頻201的幀率(和/或配置文件/等級)。多個流(例如,如圖2A的輸入幀率視頻202或圖2B中示出的輸入幀率視頻210)從接口 406輸出,并提供給各處理單元402和404。在第一處理單元402處,輸入幀率視頻202 (210)提供給編碼決定邏輯,其包括這樣的編碼決定,如幀內(nèi)模式?jīng)Q定邏輯408,其中做出幀內(nèi)預測模式中宏塊的預測方向確定,以及處理給定宏塊的幀間/幀內(nèi)決定邏輯410。其也示出了運動估計邏輯412 (例如運動搜索功能),包括宏塊和它們運動矢量的分區(qū)。單一編碼引擎104進一步包括額外的處理邏輯438,其(參考圖4B)可包括用于幀間預測的運動補償邏輯414、424,其中用于檢索的分區(qū)和與它們相關(guān)聯(lián)運動矢量可通過運動估計(搜索)邏輯412識別。[0059]如圖4A中示出,通過接口 406輸出的多個輸入幀率視頻中的另一個提供給第二處理單元404,并具體地是時間標量(縮放)邏輯(temporal scaler logic) 436。時間標量邏輯436執(zhí)行幀率轉(zhuǎn)換,并輸出降低的幀率視頻,如降低的幀率視頻204 (圖2A)或212 (圖2B)。在一些實施方式中,時間標量邏輯436可省略,如在涉及多個配置文件和/或等級生成的一些實施方式中。在一些實施方式中,也可采用空間縮放。降低的幀率視頻提供給額外的處理邏輯440,其結(jié)合圖4B在下面描述。視頻編碼信息包括運動矢量、運動矢量搜索區(qū)域、模式?jīng)Q定等,且如上解釋,其在第一和第二處理單元402和404之間共享。在一個實施方式中,為第一處理單元402確定的運動矢量、運動矢量搜索區(qū)域和/或模式?jīng)Q定提供給推導邏輯434。
[0060]在多個圖像速率通過編碼引擎104提供的實施方式中,推導邏輯基于在第一處理單元402中使用的那些運動矢量,并基于接收(例如從時間標量邏輯436、或在一些實施方式中從其他邏輯如接口 406、或從CPU)G0P和合適的參考圖像確定,和它們與當前圖像的時間距離(例如,其中存在于第一處理單元402中處理的流中的參考圖像不存在,或不在第二處理單元404中,以及由402處理的原始視頻中的時間距離和由404處理的較低幀率視頻中的時間距離),推導出運動矢量。在對應于不同圖像速率流提供的一些實施方式中,當共享相同幀內(nèi)圖像時,由幀內(nèi)模式?jīng)Q定邏輯408提供的幀內(nèi)預測模式?jīng)Q定也在高圖像速率和低圖像速率視頻流之間共享(例如分別在第一和第二處理單元402和404之間)。推導邏輯434和時間標量邏輯436直接或間接共享信息(例如,通過CPU干預),如436和434之間的虛線表示。例如,時間標量邏輯436可傳遞對應于幀率和/或圖像類型的信息給推導邏輯434 (通過或沒有處理器干預)。如上所述,時間標量邏輯436執(zhí)行時間縮放,從而提供降低的幀率視頻(如204或212)。
[0061]在具有運動矢量搜索和模式?jīng)Q定的共享的實施方式中,這樣的信息提供給推導邏輯單元434,用于降低的幀率視頻流204或212的編碼。
[0062]在涉及多個配置文件和等級的實施方式中,當編碼來自相同輸入的不同配置文件和等級的視頻時,第一和第二處理單元402和404通過共享幀間預測的運動矢量搜索結(jié)果、和/或共享幀內(nèi)預測的幀內(nèi)模式?jīng)Q定、和/或宏塊或編碼單元的幀間或幀內(nèi)預測之間的選擇,實時生成不同文件配置和等級(有或沒有降低的幀率)的一個或多個壓縮流。推導邏輯434可確定是否對所有目標AVC配置文件和等級應用運動矢量范圍的公共集,或當運動搜索覆蓋較高配置文件的流的較大范圍時,將運動搜索結(jié)果的子集應用到較低配置文件的流。這樣的視頻編碼信息用于編碼視頻流204或212。
[0063]雖然各種算法和/或方法描述為結(jié)合時間標量邏輯436至少部分地在推導邏輯434中執(zhí)行,但應該理解,在一些實施方式中,一個或多個上述功能可通過其他邏輯執(zhí)行,或在多個不同邏輯之間分配。
[0064]在編碼過程中,圖像組(GOP)中的當前幀或圖像提供用于編碼。當前圖像可在新興視頻編碼標準HEVC中處理為宏塊或編碼單元,其中宏塊或編碼單元對應于例如原始圖像中的16X16或32X32像素塊。每個宏塊可以P圖像或B圖像的幀內(nèi)編碼模式或幀間編碼模式編碼。在幀間編碼模式中,運動補償預測可通過額外的處理邏輯438和440執(zhí)行,如分別在每個處理單元402和404中的相應運動補償邏輯414和424 (圖4B),并可基于至少一個先前編碼的重建的圖像。[0065]參考圖4B,并進一步說明用于每個處理單元402、404的438和440內(nèi)部的額外處理邏輯,預測的宏塊P可從當前宏塊中減去,從而通過每個比特流的邏輯416、426生成差異宏塊,且差異宏塊可通過每個比特流的相應變換器/量化器邏輯418、428變換和量化。每個變換器/量化器邏輯418、428的輸出可以通過相應的熵編碼器邏輯420、430進行熵編碼,并輸出為對應于不同比特率的壓縮比特流。
[0066]編碼視頻比特流(例如,“比特流I和比特流2”)包括熵編碼視頻內(nèi)容和解碼宏塊所需的任何邊信息。在每個比特流的重建操作期間,相應變換器/量化器邏輯418、428的結(jié)果可以通過相應的逆量化器/逆變換器/重建邏輯418、428而解量化、逆變換、加入到預測和環(huán)路濾波,從而生成每個比特流的重建差異宏塊。
[0067]在這方面,每個比特流與包括殘差計算邏輯416、426的相應的處理單元402、404關(guān)聯(lián),其每個被配置為生成殘差,并隨后生成量化變換因數(shù)。然而,應該注意,可以應用不同的量化參數(shù)。每個處理單元402、404進一步包括重建邏輯422、432它們耦合到逆量化器/逆變換器邏輯418、428,其中每個重建邏輯422、432被配置為生成相應的重建像素。如圖示出,重建邏輯422、432根據(jù)應用的相應量化參數(shù),以不同的幀率以及配置文件和等級執(zhí)行解碼像素的重建。應該注意,涉及與圖4A和圖4B相關(guān)聯(lián)描述的各種邏輯的一個或多個功能可組合到單一邏輯單元中,或進一步分配在額外的邏輯單元之間,或在一些實施方式中省略。
[0068]應該注意,所公開的各種實施方式可應用到各種視頻標準中,包括但不限于MPEG-2、VC-1、VP8和HEVC,這提供了可共享的更多的編碼工具。例如,使用HEVC,幀間預測單元大小范圍可在從塊大小4X4到32X32的任何中,這需要大量數(shù)據(jù)執(zhí)行運動搜索和模式?jīng)Q定。
[0069]應該理解,在本公開的背景下,圖5中示出并在一個實施方式中通過單一編碼引擎(例如104)實現(xiàn)的視頻編碼方法500的一個實施方式包括在單一編碼引擎處接收根據(jù)第一版本的視頻特性的輸入視頻流(502)。例如,輸入視頻流可以是未壓縮的流(例如,圖2A和圖2B的輸入視頻流201或209),而視頻特性可以是幀率(圖像速率)、配置文件/等級和/或編碼標準。方法500進一步包括,基于輸入視頻流(504),通過單一編碼引擎并行生成多個流。例如,生成的第一流和第二流包括視頻流圖2A的202 (或圖2B的210)和圖2A的204(或圖2B的212)。方法500進一步包括選擇GOP和/或圖像類型(506)。例如,編碼引擎104 (例如,圖4A至圖4B中,接口 406、時間標量邏輯436或一些實施方式中的CPU)可確定GOP和/或圖像類型。
[0070]方法500進一步包括,在第一生成流如視頻流202、210 (508)中的運動矢量搜索。例如,第一處理單元(例如,圖4A至圖4B的運動估計邏輯412)可在第一生成流的圖像塊中執(zhí)行這樣的搜索。方法500進一步包括確定第二生成流如視頻流204或212 (510)的參考圖像。在一個實施方式中,該后一個的功能可以通過時間標量邏輯436執(zhí)行?;谶@些確定(506、508和510),方法500將運動矢量從第一流到根據(jù)幀率差異的第二生成流而縮放(512)。方法500進一步包括,基于視頻編碼信息(并行)生成多個編碼流(包括降低的幀率流)(512)。例如,多個流可包括包括根據(jù)第一版本的視頻特性的第一編碼流和根據(jù)第二版本的視頻特性(如較低的幀率、不同的配置文件和等級和/或標準)的第二編碼流。第二編碼流基于用于生成第一編碼流的視頻編碼信息而生成,其中視頻編碼信息包括運動矢量搜索結(jié)果和/或模式信息。在一些實施方式中,可使用重復或非重復的圖像圖案(例如開放GOP)。因此,第二版本可包括低于第一版本的幀率,并且生成包括通過從生成第一編碼流時使用的運動矢量推導運動矢量,以較低幀率生成第二編碼流。
[0071]關(guān)于配置文件和等級的差異,方法500根據(jù)第二生成流的配置文件/標準從第一流界定(bound)運動矢量(516),且方法500進一步包括基于用于第一編碼流的第一運動矢量搜索范圍或作為第一運動矢量搜索范圍的子集的第二運動矢量搜索范圍生成第二編碼流,第一和第二編碼流基于時間上公共的搜索操作(518)而提供。應該理解,在本公開的背景下,在一些實施方式中,一個或多個上述邏輯功能可省略,或可包括額外的邏輯功能。例如,模式信息的共享也考慮在方法500的特定實施方式的保護范圍內(nèi)。
[0072]視頻編碼系統(tǒng)可以硬件、軟件(例如包括固件)或它們的組合實現(xiàn)。在一個實施方式中,視頻編碼系統(tǒng)使用以下技術(shù)的任何一項或組合而執(zhí)行,它們在本領(lǐng)域中都是公知的:具有對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門的離散邏輯電路、具有適當組合邏輯門的專用集成電路(ASIC)、可編程的門陣列(PGA)、現(xiàn)場可編程門陣列(FPGA)等。在實施方式中,其中所有或部分的視頻編碼系統(tǒng)以軟件執(zhí)行,該軟件存儲在存儲器中,且其可通過適當?shù)闹噶顖?zhí)行系統(tǒng)(例如,計算機系統(tǒng),其包括一個或多個處理器、利用編碼軟件/固件編碼的存儲器和操作系統(tǒng)等)執(zhí)行。
[0073]本領(lǐng)域相當熟練的技術(shù)人員應該理解,流程圖中的任何流程說明或塊應該理解為表示代碼的模塊、段或部分,其包括實現(xiàn)過程中特定邏輯功能或步驟的一個或多個可執(zhí)行指令,且替代實現(xiàn)也包括在本公開的保護范圍內(nèi),其中根據(jù)涉及的功能,功能可不同于示出或討論的次序來執(zhí)行,包括基本上同時或以相反次序執(zhí)行。
[0074]應該強調(diào)的是,本公開的上述實施方式僅是可能的實現(xiàn)的實例,其僅進行闡述以清楚理解本公開的原理。在基本上不背離本公開的精神和原理的情況下,可以做出多種變化和修改。所有這樣的修改和變化旨在包括在本公開的保護范圍內(nèi)并由所附的權(quán)利要求保護。
【權(quán)利要求】
1.一種方法,包括: 在單一編碼引擎處接收根據(jù)第一版本的視頻特性的輸入視頻流;以及 通過所述單一編碼引擎,并行生成多個流,所述多個流包括根據(jù)所述第一版本的視頻特性的第一編碼流,以及根據(jù)第二版本的視頻特性的第二編碼流,所述第二編碼流基于用于生成所述第一編碼流的視頻編碼信息而生成。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述視頻特性包括幀率,且其中,所述第一版本和所述第二版本的幀率值不同。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述視頻編碼信息包括用于幀間預測的運動矢量搜索結(jié)果。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述運動矢量搜索結(jié)果包括運動矢量、一個編碼單元的分區(qū)、運動矢量搜索范圍或它們的任何組合。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述第二版本包括低于所述第一版本的幀率,其中生成包括:通過共享在生成所述第一編碼流時應用的所述運動矢量搜索結(jié)果,在較低幀率視頻上生成所述第二編碼流,其中發(fā)生所述第二編碼流的生成,而無需執(zhí)行額外的運動搜索操作。
6.根據(jù)權(quán)利要求3所述的方法,其中,所述第二版本包括低于所述第一版本的幀率,其中生成包括:通過從對應于所述第一編碼流的運動矢量推導運動矢量,在較低幀率視頻上生成所述第二編碼流。
7.根據(jù)權(quán)利要求3所述的方法,其中,所述第一編碼流包括基本層和增強層視頻流的組合,而所述第二編碼流僅包括基本層或增強層視頻流,所述運動搜索結(jié)果對應于所述第一編碼流的生成,并用于為所述基本層視頻流生成運動矢量。
8.根據(jù)權(quán)利要求2所述的方法,其中,所述視頻編碼信息包括幀間和幀內(nèi)預測的模式?jīng)Q定。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述視頻特性包括配置文件和等級,且其中所述第一版本和所述第二版本在配置文件、等級或它們兩者的組合上不同。
10.一種系統(tǒng),包括: 以硬件配置的單一編碼引擎,其接收根據(jù)第一版本的視頻特性的輸入視頻流,且并行生成包括不同版本的所述視頻特性的多個編碼流,所述多個編碼流基于用于生成所述多個編碼流之一的視頻編碼信息而生成。
【文檔編號】H04N19/593GK103546757SQ201310270309
【公開日】2014年1月29日 申請日期:2013年6月28日 優(yōu)先權(quán)日:2012年7月10日
【發(fā)明者】張雷 申請人:美國博通公司