欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于視頻編碼管線的系統、方法和計算機程序產品的制作方法

文檔序號:7978400閱讀:144來源:國知局
用于視頻編碼管線的系統、方法和計算機程序產品的制作方法
【專利摘要】公開了可以改善視頻編碼過程的效率的方法、系統和計算機程序產品。對于序列中的各種幀,可以并行執(zhí)行模式決定處理和比特流打包。這降低了對于模式決定處理邏輯和比特流打包邏輯二者的空閑時間的量,改善了視頻編碼器的整體效率。
【專利說明】用于視頻編碼管線的系統、方法和計算機程序產品
【背景技術】
[0001 ] 視頻編碼可能包括兩個過程,模式決定(包括運動估計)和比特流打包(包括幀重建)。這些過程可以按照管線的方式實現。所述模式決定過程可以在可編程核心上運行,而比特流打包可以在硬件中實現??蛇x地,這些過程可以在包括向圖形處理單元(GPU)卸載一些任務的中央處理單元(CPU)的架構上運行。例如,比特流打包可以在CPU上運行,而模式決定可以在GPU上執(zhí)打。
[0002]模式決定和比特流打包操作之間的交互包括會減慢編碼過程的相互依賴性。這一兩級管線可以是基于圖片的,其中可以由模式決定邏輯處理整個幀;然后由比特流打包邏輯處理該整個幀。所述比特流打包邏輯可以等待模式決定邏輯完成該幀的處理以便訪問由該模式決定邏輯產生的諸如宏塊模式的運動向量和附加信息。所述模式決定邏輯可以等待對前一幀執(zhí)行的比特流打包邏輯的完成,因為該模式決定邏輯可以使用重建的幀作為運動估計(ME)的參考。這些依賴性使視頻編碼過程所要求的時間增加(contribute to),并且會因此影響用戶體驗。
【專利附圖】

【附圖說明】
[0003]圖1是說明管線式模式決定和比特流打包過程的方框圖。
[0004]圖2是說明幀序列的處理的圖。
[0005]圖3是說明幀序列的處理的圖。
[0006]圖4是說明根據實施例的幀序列的處理的圖。
[0007]圖5是說明圖4的實施例的示例性處理的流程圖。
[0008]圖6是說明根據實施例的幀序列的處理的圖。
[0009]圖7是說明圖6的實施例的示例性處理的流程圖。
[0010]圖8是說明根據可選實施例的幀序列的處理的圖。
[0011]圖9是說明圖8的實施例的示例性處理的流程圖。
[0012]圖10是說明根據可選實施例的幀序列的處理的圖。
[0013]圖11是說明圖10的實施例的示例性處理的流程圖。
[0014]圖12是說明根據可選實施例的幀序列的處理的圖。
[0015]圖13是說明圖12的實施例的示例性處理的流程圖。
[0016]圖14是說明根據可選實施例的幀序列的處理的圖。
[0017]圖15是說明圖14的實施例的示例性處理的流程圖。
[0018]圖16是說明根據可選實施例的幀序列的處理的圖。
[0019]圖17是說明圖16的實施例的示例性處理的流程圖。
[0020]圖18是說明軟件或固件實施例的計算環(huán)境的方框圖。
[0021]在圖示中,附圖標記的最左側數字識別該附圖標記第一次出現在其中的圖。
【具體實施方式】[0022]現在參照圖示來描述實施例,其中相似的附圖標記指代相同或功能上相似的元素。盡管討論了特定的配置和布置,但是應該理解,這僅僅出于說明的目。相關領域的普通技術人員將意識到,在不背離本描述的精神和范圍的情況下,可以使用其它配置和布置。對于相關領域的普通技術人員來說顯而易見的是,本發(fā)明也可以在除本文描述之外的各種其它系統和應用中使用。
[0023]本文公開了可以改善視頻編碼過程的效率的方法、系統和計算機程序產品。對于序列中的各種幀,可以并行執(zhí)行模式決定處理和比特流打包。這降低了對于模式決定處理邏輯和比特流打包邏輯的空閑時間的量,改善了視頻編碼器的整體效率。
[0024]圖1說明了在視頻編碼中發(fā)生的依賴性??梢詫?10輸入到模式決定模塊120。這一模塊可以包括運動估計功能并且產生數據130。數據130可以包括一個或多個運動向量(MV)以及宏塊(MB)模式。然后將數據130輸入到比特流打包模塊140。這一后者模塊可以包括幀重建功能。比特流打包模塊140可以然后產生重建的幀150。比特流打包處理因此依賴于由模式決定模塊120產生的MV和MB模式130。然而,當處理下一幀時,模式決定模塊120會要求對于前一幀產生的重建的幀150。重建的幀150可以由模式決定模塊120使用作為用于對于下一幀的運動估計目的的參考。
[0025]這可以產生圖2所示的處理時間線。這一圖示說明了在編碼順序上具有
IBBPBBP......形式的幀的序列的情況,其中I代表內部幀,B代表雙向預測幀,P代表預測
幀。在該圖示中(并且在后面的所有類似圖示中),附加在字母后的數字指示在整個序列中的位置。第一幀為10,下一幀為BI,接下來為B2,接下來為P3等等。在圖2中,每一個幀可以順序地由模式決定模塊(由“ENC”表示)處理并且然后由比特流打包模塊(由“PAK”表示)進行處理。當由模式決定(ENC)模塊處理幀時,比特流打包(PAK)模塊可能是空閑的,并且反之亦然。這適應上面描述的依賴性。對于每一個幀,比特流打包過程等待模式決定過程的完成和輸出(即,MV和MB模式)。對于下一幀的模式決定過程等待對于前一幀的比特流打包的完成,以使得在運動估計中可以使用前一幀的重建的幀。
[0026]初始,幀IO (或者錨定幀PO)可以由模式決定模塊處理。這一幀然后在下一個時間間隔內由比特流打包模式使用由模式決定過程產生的MV和MB模式進行處理。在完成對于IO的比特流打包過程之后,在下一個時間間隔內,可以發(fā)生對于下一個幀P3的模式決定過程。所述對于P3的模式決定過程使用由對于幀IO執(zhí)行的比特流打包過程產生的重建的幀。如圖所示,這一交替序列對于隨后的幀繼續(xù)進行。注意到,比特流打包和模式決定模塊中的每一個在交替的時間間隔內會是閑置的。
[0027]也注意到,在這一圖示和后面的類似圖示中,編號的時間間隔在長度上可以不相等,但是會是如所需要的那樣長以便適應對于給定幀的所指示的處理。
[0028]圖3示出了對于具有IPPP......形式的一系列幀的類似處理序列。初始,幀IO
(或者錨定幀PO)可以由模式決定模塊處理。這一幀可以然后在下一個時間間隔內由比特流打包模塊使用由模式決定過程產生的MV和MB模式進行處理。在完成對于IO的比特流打包過程之后,在下一個時間間隔內,可以發(fā)生對于下一個幀Pl的模式決定過程。所述對于Pl的模式決定過程使用由對于幀IO執(zhí)行的比特流打包過程生成的重建的幀。如圖所示,這一交替序列對于隨后的幀繼續(xù)進行。仍然注意到,比特流打包和模式決定模塊中的每一個在交替的時間間隔內會是閑置的。[0029]在實施例中,可以通過允許模式決定和比特流打包過程的并行操作來改善效率。
圖4示出了對于IBBPBBP......情況的示例。這里,對于幀B2的模式決定處理不必等待BI
的比特流打包的完成。代替使用BI的重建的幀,B2的模式決定處理可以使用來自先前處理的I或P幀的一個或多個重建的幀。在這一實例中,可以使用對于IO或P3的重建的幀。這允許對于B2的模式決定處理與對于BI的比特流打包處理同時發(fā)生。P6的模式決定處理不必等待B2的比特流打包的完成;P6的模式決定處理可以使用來自之前的I或P幀的重建的幀,而不是等待B2的重建的幀。結果,在所說明的實施例中,P6的模式決定處理和B2的比特流打包可以同時發(fā)生。這一處理基于B幀可能不會用作下面的幀的參考幀的假設。在至少一個視頻編碼標準中,也允許B幀用作運動估計參考幀。如果將B幀設置為參考幀,則可以按照與P幀相同的方式進行處理。
[0030]注意到,圖4的幀序列(即,IBBPBBP......)以在每一個P幀前包括兩個B幀的重
復的子序列為特征。在其它序列中,可能存在在每一個P幀前包括多于兩個B幀的子序列。
[0031]根據實施例,圖5說明了圖4的處理。在505,可以在I幀上執(zhí)行模式決定處理(包括運動估計)。在510,可以在這一幀上執(zhí)行比特流打包(包括幀重建)。在515,可以在第一個P幀(即,圖4的示例中的P3 )上執(zhí)行模式決定處理。在520,可以在這一幀上執(zhí)行比特流打包。在525,可以在B幀i上執(zhí)行模式決定處理,其中初始i=l。這一幀在圖4中被表示為BI。在530,可以在下一個B幀上執(zhí)行模式決定處理,這里表示為幀i+Ι。在這一相同的時間間隔內,在535,可以在B幀i上執(zhí)行比特流打包。
[0032]在540,做出關于在下一個P幀之前是否存在附加B幀要被處理的確定。如果為是,則在545,可以使i加1,并且處理可以在考慮下一個B幀的530和535處繼續(xù)。如果在下一個P幀之前不存在更多的B幀要被處理,則處理可以在考慮下一個P幀的550處繼續(xù)。在555,可以在這一下一個P巾貞上執(zhí)行模式決定處理。在這一相同的時間間隔內,在560,可以在B幀i+Ι上執(zhí)行比特流打包。處理然后可以在其中使i加3的565處繼續(xù)。然后在520處在P幀上執(zhí)行比特流打包。
[0033]在可選實施例中,BI的模式決定處理可以使用原始幀作為參考而不是P3的重建的幀。在這一情況下,BI的模式決定處理可以不必等待對于P3的比特流打包的完成。這允許BI的模式決定處理與對于P3的比特流打包處理并行發(fā)生。可以將這一概念擴展到每一個子序列B......BP中的每第一個B幀。
[0034]圖6對此進行了說明。這里,BI的模式決定處理可以與對于P3的比特流打包同時發(fā)生。仍然是,對于幀B2的模式決定處理不必等待幀BI的比特流打包的完成。代替使用BI的重建的幀,B2的模式決定處理可以使用來自之前處理的I或P幀的一個或多個重建的幀。這允許對于B2的模式決定處理與對于BI的比特流打包處理同時發(fā)生。這一模式可以如圖所示地繼續(xù)。
[0035]根據實施例,圖7說明了圖6的處理。在705,可以在I幀上執(zhí)行模式決定處理(包括運動估計)。在710,可以在這一幀上執(zhí)行比特流打包(包括幀重建)。在715,可以在第一個P幀(即,圖6的示例中的P3 )上執(zhí)行模式決定處理。在720,可以在這一幀上執(zhí)行比特流打包。同時,在725,可以在B幀i上執(zhí)行模式決定處理,其中初始i=l。這一幀在圖6中被表示為BI。在730,可以在下一個B幀上執(zhí)行模式決定處理,這里表示為幀i+Ι。在這一相同的時間間隔內,在735,可以在B幀i上執(zhí)行比特流打包。[0036]在740,做出關于在下一個P幀之前是否存在附加B幀要被處理的確定。如果為是,在745,使i加1,并且處理可以在考慮下一個B幀的730和735處繼續(xù)。如果在下一個P幀之前不存在更多的B幀要被處理,則處理可以在考慮下一個P幀的750處繼續(xù)。在755,在這一下一個P巾貞上執(zhí)行模式決定處理。在這一相同的時間間隔內,在760,可以在B幀i+Ι上執(zhí)行比特流打包。然后處理可以在使i加3的765處繼續(xù)。然后,在720,在P幀上執(zhí)行比特流打包,同時,可以在B幀i上執(zhí)行模式決定處理。
[0037]在可選實施例中,第一個P幀可以使用IO的原始幀用于模式決定處理,而不是由IO的比特流打包產生的重建的幀。這在圖8中進行說明。這里,對于P3的模式決定處理可以與IO的比特流打包同時發(fā)生。圖8的實施例也利用了上面關于圖4和圖6討論的并行化。特別地,對于幀B2的模式決定處理不必等待幀BI的比特流打包的完成。代替使用BI的重建的幀,B2的模式決定處理可以使用來自之前處理的I幀或P幀的一個或多個重建的幀。在這一實例中,可以使用對于IO或P3的重建的幀。這允許對于B2的模式決定處理與對于BI的比特流打包處理同時發(fā)生。并且,BI的模式決定處理可以使用原始幀作為參考而不是P3的重建的幀。在這一情況下,BI的模式決定處理不必等待對于P3的比特流打包的完成。這允許BI的模式決定處理與對于P3的比特流打包處理并行發(fā)生。
[0038]根據實施例,圖9說明了圖8的處理。在905,可以在I幀上執(zhí)行模式決定處理(包括運動估計)。在910,可以在這一幀上執(zhí)行比特流打包(包括幀重建)。同時,在915,可以在第一個P幀(B卩,圖8的示例中的P3)上執(zhí)行模式決定處理。在920,可以在這一幀上執(zhí)行比特流打包。同時,在925,可以在B幀i上執(zhí)行模式決定處理,其中初始i=l。這一幀在圖8中被表示為BI。在930,可以在下一個B幀上執(zhí)行模式決定處理,這里被表示為幀i+Ι。在這一相同的時間間隔內,在935,可以在B幀i上執(zhí)行比特流打包。
[0039]在940,做出關于在下一個P幀之前是否存在附加B幀要被處理的確定。如果為是,則在945,使i加1,并且處理可以在考慮下一個B幀的930和935處繼續(xù)。如果在下一個P幀之前不存在更多的B幀要被處理,則處理在考慮下一個P幀的950處繼續(xù)。在955,可以在這一下一個P幀上執(zhí)行模式決定處理。在這一相同的時間間隔內,在960,可以在B幀i+Ι上執(zhí)行比特流打包。然后處理在使i加3的965處繼續(xù)。接下來,在920,在當前P幀上執(zhí)行比特流打包,同時,在925,可以在B幀i上執(zhí)行模式決定處理。
[0040]在另一實施例中,可以使用原始幀作為用于整數運動估計的參考,并且可以使用重建的幀作為用于分數運動估計的參考。這可以允許圖10所示的并行化。這里,對于第一個P幀(即P3_i )的整數運動估計可以使用原始幀作為運動估計的參考,而不是使用由IO的比特流打包產生的重建的幀。因此對于P3_i的運動估計可以與幀IO的比特流打包并行執(zhí)行。接下來可以執(zhí)行對于P幀(即P3_f)的分數運動估計。出于類似的原因,對于第一個B幀(即Bl_i)的整數運動估計可以使用原始幀作為運動估計的參考,因此可以與幀P3的比特流打包并行執(zhí)行。接下來可以執(zhí)行對于BI幀(即的分數運動估計。如圖所示,該
過程可以按照這一方式繼續(xù),其中每一個子序列BB......BP中的初始B幀經歷分離的整數
和分數運動估計。
[0041]圖11說明了對于這一實施例的處理。在1105,可以在I幀上執(zhí)行模式決定處理(包括運動估計)。在1110,可以在這一幀上執(zhí)行比特流打包(包括幀重建)。同時,在1115,可以在第一個P幀(即,圖10的示例中的P3)上執(zhí)行整數ME。在1117,可以在P3上執(zhí)行分數ME。在1120,可以在這一幀上執(zhí)行比特流打包。同時,在1125,可以在B幀i上執(zhí)行整數運動估計,其中初始i=l。這在圖10中如BI」所示。在1127,可以在B幀i上執(zhí)行分數ME。這在圖10中如Bl_f所示。在1130,可以在下一個B幀上執(zhí)行模式決定處理,這里被表示為B幀i+Ι。在這一相同的時間間隔期間,在1135,可以在B幀i上執(zhí)行比特流打包。
[0042]在1140,做出關于在下一個P幀之前是否存在附加B幀要被處理的確定。如果為是,則在1145,使i加1,并且處理可以在考慮下一個B幀的1130和1135處繼續(xù)。如果在下一個P幀之前不存在更多的B幀要被處理,則處理可以在考慮下一個P幀的1150處繼續(xù)。在1155,在這一下一個P巾貞上執(zhí)行模式決定處理。在這一相同的時間間隔期間,在1160,可以在B幀i+Ι上執(zhí)行比特流打包。然后處理可以在使i加3的1165處繼續(xù)。接下來,在1120,可以在P幀上執(zhí)行比特流打包,同時,在1125,可以在B幀I上執(zhí)行包括整數ME的模式決定處理。
[0043]給定具有形式IPPP......的一系列幀,相似的方案可以用于實現并行處理。圖12
對此進行了說明。如上面討論的,可以使用原始幀作為整數運動估計的參考,并且可以使用重建的幀作為用于分數運動估計的參考。這可以允許圖12所示的并行化。這里,對于第一個P幀(即Pl_i)的整數運動估計可以使用原始幀作為運動估計的參考,而不是使用由IO的比特流打包產生的重建的幀。因此,對于P1」的運動估計可以與幀IO的比特流打包并行執(zhí)行。然后,可以使用在IO的比特流打包中重建的幀來執(zhí)行對于P幀(即Pl_f)的分數運動估計。然后,可以使用原始幀而不是將由幀Pi的比特流打包產生的重建的幀來執(zhí)行如P2_i所示的下一個P幀的整數ME。因此,P2 (即P2_i)的整數ME可以與Pl的比特流打包并行執(zhí)行。然后,可以使用由Pl的比特流打包產生的重建的幀來執(zhí)行P2 (即P2_f)的分數ME。如圖所示,處理可以按照這一模式繼續(xù)。
[0044]圖13中示出了對于這一實施例的處理。在1310,可以對于I幀IO執(zhí)行模式決定處理。在1320,可以在P幀i上執(zhí)行整數ME,其中初始i=l。同時,在1330,可以在I幀上執(zhí)行比特流打包。在1340,可以在P幀i上執(zhí)行分數ME。
[0045]在1350,可以在P幀i+Ι上執(zhí)行整數ME。同時,在1360,可以在P幀i上執(zhí)行比特流打包。在1370,可以在P幀i+Ι上執(zhí)行分數ME。在1380,可以使i加I。然后,處理可以在考慮下一個P幀的1350和1360處繼續(xù)。
[0046]在另一實施例中,可以在運動估計中使用N層分級運動搜索。在這一情況下,對于較低分辨率運動估計,可以使用原始幀而不是由前一幀的比特流打包產生的重建的幀。然而,對于較高分辨率運動估計,可以使用重建的幀。關于低分辨率運動估計,可能不會損失編碼效率,因為來自于較低分辨率的運動向量可以僅用于較高分辨率運動估計的搜索中心并且可以隨后被改善。
[0047]由于對于較低分辨率運動估計可以使用原始幀而不是重建的幀,因此可以如在圖14的實施例中示出地實現并行化。這里,對于第一個P幀(即P3_L)的低分辨率運動估計可以使用原始幀作為運動估計的參考,而不是使用由IO的比特流打包產生的重建的幀。因此,可以與幀IO的比特流打包并行地執(zhí)行P3_L的運動估計。然后可以執(zhí)行對于P幀(即P3_H)的高分辨率運動估計。類似地,對于第一個B幀(即B1_L)的低分辨率運動估計可以使用原始幀作為運動估計的參考,因此可以與幀P3的比特流打包并行地執(zhí)行。然后可以執(zhí)行對于BI幀(即B1_H)的高分辨率運動估計。如所示出的,過程可以按照這一方式繼續(xù),其中每一個子序列BB......BP中的初始B幀經歷分離的低分辨率和高分辨率運動估計。
[0048]圖15中說明了對于這一實施例的處理。在1505,可以在I巾貞上執(zhí)行模式決定處理(包括運動估計)。在1510,可以在這一幀上執(zhí)行比特流打包(包括幀重建)。同時,在1515,可以在第一個P幀(即,圖14的示例中的P3_L)上執(zhí)行低分辨率ME。在1517,可以在P3,即圖14中的P3_H,上執(zhí)行高分辨率ME。在1520,可以在P3上執(zhí)行比特流打包。同時,在1525,可以在B幀i上執(zhí)行低分辨率運動估計,其中初始i=l。這在圖14中如B1_L所示。在1527,可以在B幀i上執(zhí)行高分辨率運動估計。這在圖14中如B1_H所示。在1530,可以在下一個B幀上執(zhí)行模式決定處理,這里表示為B幀i+Ι。在這一相同的時間間隔期間,在1535,可以在B幀i上執(zhí)行比特流打包。
[0049]在1540,做出關于在下一個P幀之前是否存在額外B幀要被處理的確定。如果為是,則在1545,可以使i加I,并且處理可以在考慮下一個B幀的1530和1535處繼續(xù)。如果在下一個P幀之前不存在更多的B幀要被處理,則處理可以在考慮下一個P幀的1550處繼續(xù)。在1555,在這一下一個P幀上執(zhí)行模式決定處理。在這一相同的時間間隔期間,在1560,可以在B幀i+Ι上執(zhí)行比特流打包。然后,處理可以在使i加3的1565處繼續(xù)。然后,在1520,可以在P幀上執(zhí)行比特流打包,同時,可以在B幀i上執(zhí)行包括低分辨率ME的模式決定處理。
[0050]也可以將這一概念擴展到具有形式IPP......P的幀序列。這在圖16的實施例中
進行了說明。這里,對于第一個P幀(即P1_L)的低分辨率運動估計可以使用原始幀作為運動估計的參考,而不是使用由IO的比特流打包產生的重建的幀。因此,對于?1立的運動估計可以與幀IO的比特流打包并行執(zhí)行。然后,可以使用在IO的比特流打包中重建的幀來執(zhí)行對于P幀(即P1_H)的高分辨率運動估計。然后,可以使用原始幀而不是將由幀Pl的比特流打包產生的重建的幀來執(zhí)行如P2_L所示的下一個P幀的低分辨率ME。P2 (即P2_L)的低分辨率ME因此可以與Pl的比特流打包并行執(zhí)行。然后,可以使用由Pl的比特流打包產生的重建的幀來執(zhí)行P2 (即P2_H)的高分辨率ME。然后,如圖所示,處理可以按照這一方式繼續(xù)。
[0051]圖17中示出了這一實施例的處理。在1710,可以對于I幀IO執(zhí)行模式決定處理。在1720,可以在P幀i上執(zhí)行低分辨率ME,其中初始i=l。同時,在1730,可以在I幀上執(zhí)行比特流打包。在1740,可以在P幀i上執(zhí)行高分辨率ME。
[0052]在1750,可以在P幀i+Ι上執(zhí)行低分辨率ME。同時,在1760,可以在P幀i上執(zhí)行比特流打包。在1770,可以在P幀i+Ι上執(zhí)行高分辨率ME。在1780,可以使i加I。然后,處理可以在考慮下一個P幀的1350和1360處繼續(xù)。
[0053]本文描述的系統、方法和計算機程序產品可以在視頻編碼器或包括相似功能的其它部件中實現。而且,本文描述的系統、方法和計算機程序產品也可以在個人計算機(PC)、膝上型計算機、超級膝上型計算機或筆記本電腦、平板電腦、觸摸板、便攜式計算機、手持電腦、掌上電腦、個人數字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、智能設備(例如,智能電話、智能平板或智能電視)、移動互聯網設備(MID)、消息傳送設備、數據通信設備等等的環(huán)境中實現。
[0054]本文公開的一個或多個特征可以在硬件、軟件、固件和它們的組合中實現,包括分立和集成電路邏輯、專用集成電路(ASIC)邏輯以及微控制器,并且也可以實現為特殊領域集成電路封裝或集成電路封裝的組合的一部分。本文使用的軟件一詞指的是包括具有存儲在其中的計算機程序邏輯以便使計算機系統執(zhí)行本文公開的一個或多個特征和/或特征的組合的計算機可讀介質的計算機程序產品。所述計算機可讀介質可以是暫態(tài)或非暫態(tài)的。暫態(tài)計算機可讀介質的示例可以是在射頻上或在電導體上經過局域網或廣域網或者經過諸如以太網的網絡傳輸的數字信號。非暫態(tài)計算機可讀介質的示例可以是壓縮盤、閃存、隨機存取存儲器(RAM)、只讀存儲器(ROM)或其它數據存儲設備。
[0055]圖18中說明了比較和歸一化功能的軟件實施例。所說明的系統1800可以包括一個或多個處理器1820并且可以進一步包括存儲器1810的主體。處理器1820可以包括中央處理單元(CPU)和/或圖形處理單元(GPU)。存儲器1810可以包括可以存儲計算機程序邏輯1840的一個或多個計算機可讀介質。存儲器1810可以例如實現為硬盤和硬驅、諸如壓縮盤、只讀存儲器(ROM)或隨機存取存儲器(RAM)設備的可移動介質,或者它們的一些組合。處理器1820和存儲器1810可以使用本領域普通技術人員已知的幾種技術中的任意一種進行通信,例如總線。包含在存儲器1810中的計算機程序邏輯1840可以由處理器1820讀取和執(zhí)行。被共同表示為1/01830的一個或多個I/O接口和/或I/O設備也可以連接到處理器1820和存儲器1810。
[0056]計算機程序邏輯1840可以包括模式決定代碼1850。這一模塊可以負責上述的模式決定處理,包括運動估計。如上所述,在一些實施例中,可以使用原始幀而不是重建的幀來執(zhí)行運動估計。在這樣的情況下,模式決定代碼1850可以合適地配置為使用原始幀來執(zhí)行運動估計。
[0057]計算機程序邏輯1840可以包括比特流打包代碼1860。這一模塊可以負責上述的比特流打包處理,包括幀重建。
[0058]計算機程序邏輯1840可以包括調度代碼1870。這一模塊可以負責給定幀用于模式決定和/或比特流打包處理的調度,其中,如上所述,這些處理有時并行發(fā)生。
[0059]這一并行化可以通過在不同的部件中執(zhí)行不同的過程來部分地實現。在實施例中(未示出),模式決定處理可以在軟件或固件中實現,而比特流打包可以在硬件中實現。在可選實施例中,比特流打包可以在軟件或硬件中實現,而模式決定處理可以在硬件中實現??蛇x地,比特流打包和模式決定處理可以均在軟件/固件中實現,其中,每一個可以在不同的處理器上執(zhí)行。例如,比特流打包可以在執(zhí)行在CPU上的軟件或固件中實現,而模式決定處理可以在執(zhí)行在GPU上的軟件或固件中實現。
[0060]值得注意的是,上面的描述涉及幀編碼。然而,可以將上述概念更廣泛地應用到其它形式的編碼。例如,本領域普通技術人員將理解到,也可以將上面的概念應用于場編碼,其中,可以將給定幀劃分為頂部場和底部場。這里,編碼器可以通過單獨地處理頂部場和底部場、將它們看作單獨的幀來處理幀。
[0061]借助于說明功能、特征和它們之間關系的功能構建方框,本文公開了方法和系統。出于描述的方便,本文任意地定義了這些功能構建方框的至少一些邊界。只要合適地執(zhí)行了特定的功能和它們之間的關系,可以定義可選的邊界。
[0062]盡管本文公開了各種實施例,但是應該理解,僅通過示例而非限制的方式呈現了這些實施例。對于本領域的普通技術人員來說顯而易見的是,在不背離本文公開的方法和系統的精神和范圍的情況下,可以做出形式和細節(jié)方面的各種改變。因而,權利要求的寬度和范圍不應該受限于本文公開的任一示例性實施例。
【權利要求】
1.一種方法,包括: 在視頻編碼器中,對于由其后為一組子序列的內部幀(I幀)組成的幀的序列,其中,每一個子序列在編碼順序上由其后為多個雙向預測幀(B幀)的預測幀(P幀)組成, 在所述I幀上執(zhí)行運動估計; 在所述I幀上執(zhí)行重建; 在第一個P幀上執(zhí)行運動估計; 在所述第一個P幀上執(zhí)行重建; 在一時間間隔期間,在第一個B幀上執(zhí)行運動估計;并且 在下一個時間間隔期間,在所述第一個B幀上執(zhí)行重建,同時在第二個B幀上執(zhí)行運動估計。
2.如權利要求1所述的方法,其中, 在所述第一個P幀上的重建的執(zhí)行期間發(fā)生在所述第一個B幀上的運動估計的執(zhí)行。
3.如權利要求2所述的方法,其中, 在所述第一個B幀上的運動估計的執(zhí)行使用原始幀作為參考。
4.如權利要求2所述的方法,其中, 在所述第一個B幀上的運動估計的執(zhí)行以及在所述第一個P幀上的重建的執(zhí)行之前,在所述I幀上的重建的執(zhí)行期間發(fā)生在所述第一個P幀上的運動估計的執(zhí)行。
5.如權利要求1所述的方法,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的整數運動估計,之后,執(zhí)行所述第一個P幀的分數運動估計;并且在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的整數運動估計,之后,執(zhí)行所述第一個B幀的分數運動估計。
6.如權利要求1所述的方法,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的低分辨率運動估計,之后,執(zhí)行所述第一個P幀的高分辨率運動估計;并且 在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的低分辨率運動估計,之后,執(zhí)行所述第一個B幀的高分辨率運動估計。
7.如權利要求6所述的方法,其中, 使用原始幀來執(zhí)行所述第一個P幀和所述第一個B幀的低分辨率運動估計;并且 使用重建的幀來執(zhí)行所述第一個P幀和所述第一個B幀的高分辨率運動估計。
8.一種系統,包括: 處理器;以及 與所述處理器通信的存儲器設備,其中,所述存儲器存儲配置為指導所述處理器引起下列動作的多個處理指令,對于由其后為一組子序列的內部幀(I幀)組成的幀的序列,其中,每一個子序列在編碼順序上由其后為多個雙向預測幀(B幀)的預測幀(P幀)組成,在所述I幀上的運動估計; 在所述I幀上的重建; 在第一個P幀上的運動估計; 在所述第一個P幀上的重建; 在一時間間隔期間在第一個B幀上的運動估計;以及在下一個時間間隔期間在所述第一個B幀上的重建和同時在第二個B幀上的運動估計。
9.如權利要求8所述的系統,其中, 在所述第一個P幀的重建期間發(fā)生在所述第一個B幀上的運動估計。
10.如權利要求9所述的系統,其中, 在所述第一個B幀上的運動估計使用原始幀作為參考。
11.如權利要求9所述的系統,其中, 在所述第一個B幀上的運動估計以及在所述第一個P幀上的重建之前,在所述I幀上的重建期間發(fā)生在所述第一個P幀上的運動估計。
12.如權利要求8所述的系統,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的整數運動估計,之后,執(zhí)行所述第一個P幀的分數運動估計;并且在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的整數運動估計,之后,執(zhí)行所述第一個B幀的分數運動估計。
13.如權利要求8所述的系統,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的低分辨率運動估計,之后,執(zhí)行所述第一個P幀的高分辨率運動估計;并且 在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的低分辨率運動估計,之后,執(zhí)行所述第一個B幀的高分辨率運動估計。
14.如權利要求13所述的系統,其中, 使用原始幀來執(zhí)行所述第一個P幀和所述第一個B幀的低分辨率運動估計;并且 使用重建的幀來執(zhí)行所述第一個P幀和所述第一個B幀的高分辨率運動估計。
15.一種計算機程序產品,包括具有存儲在其中的計算機程序邏輯的非暫態(tài)計算機可讀介質,所述計算機程序邏輯包括: 對于由其后為一組子序列的內部幀(I幀)組成的幀的序列,其中,每一個子序列在編碼順序上由其后為多個雙向預測幀(B幀)的預測幀(P幀)組成, 使處理器發(fā)起在所述I幀上的運動估計的邏輯; 使所述處理器發(fā)起在所述I幀上的重建的邏輯; 使所述處理器發(fā)起在第一個P幀上的運動估計的邏輯; 使所述處理器發(fā)起在所述第一個P幀上的重建的邏輯; 使所述處理器在一時間間隔期間發(fā)起在第一個B幀上的運動估計的邏輯;以及使所述處理器在下一個時間間隔期間發(fā)起在所述第一個B幀上的重建和在第二個B幀上的同時的運動估計的邏輯。
16.如權利要求15所述的計算機程序產品,其中, 在所述第一個P幀上的重建期間發(fā)生在所述第一個B幀上的運動估計。
17.如權利要求16所述的計算機程序產品,其中, 在所述第一個B幀上的運動估計使用原始幀作為參考。
18.如權利要求16所述的計算機程序產品,其中, 在所述第一個B幀上的運動估計和在所述第一個P幀上的重建之前,在所述I幀上的重建期間發(fā)生在所述第一個P幀上的運動估計。
19.如權利要求15所述的計算機程序產品,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的整數運動估計,之后,執(zhí)行所述第一個P幀的分數運動估計;并且在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的整數運動估計,之后,執(zhí)行所述第一個B幀的分數運動估計。
20.如權利要求15所述的計算機程序產品,其中, 在所述I幀的重建期間執(zhí)行所述第一個P幀的低分辨率運動估計,之后,執(zhí)行所述第一個P幀的高分辨率運動估計;并且 在所述第一個P幀的重建期間執(zhí)行所述第一個B幀的低分辨率運動估計,之后,執(zhí)行所述第一個B幀的高分辨率運動估計。
21.—種系統,包括: 處理器;以及 與所述處理器通信的存儲器,其中,所述存儲器存儲配置為指導所述處理器引起下列動作的多個處理指令,對于由其后為一組預測幀(P幀)的內部幀(I幀)組成的幀的序列: 在I幀上的運動估計; 在所述I幀上的重 建;以及 在第一個P幀上的重建和在第二個P幀上的同時的整數運動估計。
22.—種系統,包括: 處理器;以及 與所述處理器通信的存儲器設備,其中,所述存儲器存儲配置為指導所述處理器引起下列動作的多個處理指令,對于由其后為一組預測幀(P幀)的內部幀(I幀)組成的幀的序列: 在I幀上的運動估計; 在所述I幀上的重建;以及 在第一個P幀上的重建和在第二個P幀上的同時的低分辨率運動估計。
【文檔編號】H04N19/43GK103918270SQ201180073798
【公開日】2014年7月9日 申請日期:2011年9月30日 優(yōu)先權日:2011年9月30日
【發(fā)明者】S-H·李, J·周, N·路, J·D·坦納, C·D·李, H·江 申請人:英特爾公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
静海县| 栾城县| 松桃| 普兰县| 美姑县| 咸阳市| 潍坊市| 合阳县| 孟津县| 六枝特区| 太湖县| 沙洋县| 松溪县| 大同市| 保山市| 睢宁县| 洪洞县| 鲁山县| 东明县| 沂源县| 额敏县| 灌南县| 东至县| 浏阳市| 武陟县| 普宁市| 东莞市| 江源县| 武功县| 新宁县| 玛曲县| 南丹县| 城固县| 晋城| 邹平县| 大厂| 巩留县| 博爱县| 康保县| 泸水县| 灵山县|