組合的并行流水線視頻編碼器的制造方法
【技術(shù)領(lǐng)域】
[0001]描述的實施方式總體涉及一種用于提供組合的并行流水線視頻編碼的設(shè)備和方法。更具體地,這些實施方式涉及以組合的并行流水線方式部分使用軟件和部分使用專用硬件來實現(xiàn)視頻編碼的設(shè)備和方法。
[0002]這些實施方式尤其在手持數(shù)碼相機、攝像機和移動終端系統(tǒng)(例如具有內(nèi)置攝像機的手機、智能電話、平板電腦)中獲得應(yīng)用。這些實施方式還在諸如針對數(shù)字電視的機頂盒的多媒體裝置中獲得應(yīng)用。這些實施方式可應(yīng)用于例如VPx(例如VP8)和H264標準的各種視頻編碼標準。
【背景技術(shù)】
[0003]在本章節(jié)中所描述的方法可被實行,但未必是先前已構(gòu)想或?qū)嵭械姆椒?。因此,除非本文中另有指示,否則在本章節(jié)中所描述的方法不是對于本申請中的權(quán)利要求的現(xiàn)有技術(shù),并且不因包含在本章節(jié)中而被承認作為現(xiàn)有技術(shù)。
[0004]隨著相機和顯示器的分辨率的提高,對這些裝置的實時視頻解碼的要求在所需要的處理資源方面變得越來越苛刻。此外,隨著在質(zhì)量、壓縮率、輸入分辨率和實時約束方面的要求提高,視頻標準不斷演變。因此,這些苛刻的要求經(jīng)歷頻繁改變。對于移動裝置,進一步的要求是這樣的視頻編碼還必須是功率高效的。
[0005]一般來講,針對特定任務(wù)的專用硬件(HW)解決方案將通常在處理性能和功率效率方面提供最佳解決方案。然而,由于針對視頻參數(shù)的每個改變(諸如分辨率的提高)或者針對編碼所采用的標準的改變必須開發(fā)新的裝置,因此專用HW解決方案通常不是特別靈活。另外,考慮到開發(fā)這樣的解決方案比開發(fā)軟件解決方案所花費的時間增多,這樣的解決方案在快速變化的市場下通常是不可行的。
[0006]相反地,盡管中央處理單元(CPU)的性能提高以及可用在移動平臺上的嵌入式(PU的數(shù)量普遍增加,但純基于軟件的解決方案通常不能提供足夠快速的高分辨率實時視頻編碼的性能。另外,通過增大CPU頻率來改善該性能,裝置的功耗也增加。這種功耗的增加會導(dǎo)致電池壽命差、在移動裝置中難以耗散功率,甚至損壞該裝置。
[0007]為了改善處理性能,可以采用HW或軟件(SW)的形式實現(xiàn)并行處理的系統(tǒng)。然而,視頻編碼算法所固有的數(shù)據(jù)相關(guān)性使得難以實現(xiàn)多個處理單元的并行化。因此,如果以SW算法的形式實現(xiàn)并行化,則不容易體現(xiàn)在移動平臺上的多個CPU的優(yōu)點。另外,針對有效的并行處理,處理單元應(yīng)極少地交換信息,一般每張圖片不超過幾次。
[0008]因此,需要向具有處理能力的移動裝置提供視頻編碼器,以實現(xiàn)實時視頻編碼、同時足夠靈活地應(yīng)對編碼標準的改變、并同時以低功率運行。
[0009]US 2009 0274213公開了一種基于視頻序列中的圖像內(nèi)的像素塊的幀內(nèi)編碼的視頻編碼系統(tǒng)。
[0010]本文中描述的實施方式的目的在于克服或緩解上述限制中的至少一些限制。
【發(fā)明內(nèi)容】
[0011]在根據(jù)實施方式的第一方面,提供一種在流水線處理系統(tǒng)中編碼視頻數(shù)據(jù)的方法,該視頻數(shù)據(jù)包括數(shù)字圖像幀的序列,所述方法包括:將所述序列中的每幀劃分為多個區(qū)段,每個區(qū)段包括跨幀的水平帶;將每個區(qū)段細分為多個宏塊;以及對每個區(qū)段中的每個宏塊的表示進行編碼以形成輸出流,其中,在流水線處理系統(tǒng)的流水線中的相鄰步驟期間處理每幀的區(qū)段。
[0012]因此,有利地,可以采用流水線方式有效地劃分并處理序列內(nèi)的幀的處理。
[0013]在替選的或補充的實施方式中,幀被劃分為的區(qū)段的數(shù)量等于在流水線中的處理步驟的數(shù)量。因此,有利地,該方法可確保該流水線得到有效利用。
[0014]在替選的或補充的實施方式中,每個區(qū)段包括基本相同數(shù)量的像素。因此,有利地,可對每個區(qū)段實施相同的處理資源和配置。
[0015]在替選的或補充的實施方式中,使用幀內(nèi)估計或運動預(yù)測及補償?shù)倪^程來生成每個宏塊的表;^。
[0016]在替選的或補充的實施方式中,每幀區(qū)段的數(shù)量是4。因此,有利地,編碼任務(wù)可被劃分為4個并行進程。增加給定任務(wù)被劃分為的并行進程的數(shù)量趨向于減少每個進程所花費的時間。然而,相反地,將任務(wù)劃分為更多進程具有提高在幀內(nèi)的區(qū)段之間的流水線同步要求的影響。進而由于這必然需要中斷主機上的處理,因此這趨向于導(dǎo)致開銷延遲。因此,通過將區(qū)段的數(shù)量選擇為4,可進行以并行方式處理幀和由劃分幀而生成同步延遲之間的平衡。
[0017]在替選的或補充的實施方式中,針對每個宏塊,選擇幀內(nèi)估計表示或者幀間估計表示,用以編碼在輸出流中。因此,有利地,可選擇針對特定宏塊的最佳表示用以編碼。
[0018]在替選的或補充的實施方式中,使用來自序列中的原始幀的相應(yīng)的像素來生成針對每個宏塊的幀內(nèi)估計表示。因此,有利地,由于幀內(nèi)估計表示通常不彼此依賴,因此可避免對于幀中的不同宏塊的幀內(nèi)估計表示的數(shù)據(jù)相關(guān)性。
[0019]在替選的或補充的實施方式中,從序列中的先前編碼的幀生成針對每個宏塊的運動估計及預(yù)測表示。
[0020]在替選的或補充的實施方式中,運動補償及預(yù)測包括針對每個宏塊或子宏塊生成運動估計。
[0021]在替選的或補充的實施方式中,在圖形處理器上執(zhí)行幀內(nèi)估計和運動補償,用軟件執(zhí)行編碼,以及用專用硬件執(zhí)行運動估計。因此,有利地,不同的處理任務(wù)可被分配給最適合于實現(xiàn)該特定任務(wù)的處理資源。
[0022]在第二方面,提供一種用于編碼視頻數(shù)據(jù)的流水線處理設(shè)備,該視頻數(shù)據(jù)包括數(shù)字圖像幀的序列,所述設(shè)備包括:用于將所述序列中的每幀劃分為多個區(qū)段的部件,每個區(qū)段包括跨幀的水平帶;用于將每個區(qū)段細分為多個宏塊的部件;以及用于對每個區(qū)段中的每個宏塊的表示進行編碼以形成輸出流的部件,其中,每幀的區(qū)段在流水線處理系統(tǒng)的流水線中的相鄰步驟期間被處理。
[0023]有利地,第二方面的設(shè)備可包含在便攜式裝置中,該便攜式裝置包括手機、平板電腦、數(shù)碼相機或數(shù)碼攝像機中的一者或多者。
[0024]另一方面涉及一種包括計算機可讀指令的計算機程序產(chǎn)品,當所述計算機可讀指令在計算機系統(tǒng)上運行時,所述計算機可讀指令使該計算機系統(tǒng)執(zhí)行第一方面的方法。另一方面涉及包括先前方面的計算機程序產(chǎn)品的計算機可讀介質(zhì)。
【附圖說明】
[0025]在附圖的各圖中以示例的方式而非以限制的方式示出本發(fā)明,在附圖中,相同的附圖標記表示相同的元件,其中:
[0026]-圖1示出當以不同的方式配置視頻編碼方法時應(yīng)用的權(quán)衡;
[0027]-圖2示出根據(jù)所描述的實施方式的劃分圖像序列中的幀以備處理的方法;
[0028]-圖3示出根據(jù)所描述的實施方式的視頻編碼方法;
[0029]-圖4示出在圖3的方法中執(zhí)行的步驟的次序的細節(jié);以及
[0030]-圖5示出在圖3的方法中使用的數(shù)據(jù)之間的相關(guān)性。
【具體實施方式】
[0031]圖1示出了在可實現(xiàn)視頻編碼方法的不同方式之間的權(quán)衡。如圖1所示,通過使用純基于軟件的解決方案,可達到高的靈活度。然而,這種解決方案將使用按序算法,因此往往是緩慢的??商孢x地,如果實施純基于GPU(圖形處理單元)的解決方案,則這將允許大規(guī)模并行計算。然而這種解決方案不能夠容易地處理數(shù)據(jù)相關(guān)性。最后,如果實施專用HW解決方案,則這將允許借助流水線算法的高速處理速度。然而,如上所討論的,這種解決方案缺乏靈活性。
[0032]通過組合每種解決方案(即SW、HW和GPU)的要素,如下所述的實施方式能夠?qū)崿F(xiàn)保有基于GPU的解決方案和基于HW的解