優(yōu)先權聲明
本申請要求于2014年12月23日提交的題為“motionestimationforarbitraryshapes”的美國專利申請序列號14/580,931的優(yōu)先權,并且通過引用在其整體上并入該美國專利申請。
背景技術:
視頻編碼器壓縮視頻信息,使得更多信息可以在給定帶寬上發(fā)送或者以給定文件大小保存。所壓縮的信號或文件可以傳輸至接收器或視頻解碼器,視頻解碼器可以對信號或文件進行解碼或解壓縮,以顯示給用戶。這樣的視頻編解碼器系統(tǒng)可以遵循格式或標準。例如,視頻壓縮標準包括h.264/mpeg-4先進視頻編碼(avc)標準、高效率視頻編碼(hevc)標準以及vp9標準。這樣的標準可以包括基本功能模塊,諸如幀內/幀間預測、變換、量化、環(huán)路濾波以及熵編碼。例如,相比于avc,hevc(由iso/iec(國際標準化組織/國際電工委員可能)和itu-t(itu通訊標準部門)聯(lián)合開發(fā)并且在2013年公布的avc的后繼者)可以以相同水平的視覺質量使壓縮率翻倍。即將到來的uhd和8kuhd預計主要基于hevc來實施。此外,目前主要基于avc編碼的較低分辨率內容預計轉向hevc編碼。vp9是hevc的直接競爭者。
如討論的,視頻編碼的一方面可以包括幀間預測,其可以包括運動估計。運動估計可以包括確定運動向量,其描述從諸如視頻幀的一個圖像到諸如視頻后續(xù)幀的另一圖像的變換。在一些示例中,運動估計可以包括基于塊匹配的運動估計,使得運動向量與幀的像素塊(或諸如編碼單元等的像素的類似部分)相關聯(lián)。這樣的運動向量可以編碼并且提供給解碼器,其可以基于經(jīng)解碼的運動向量來執(zhí)行針對視頻幀的運動補償,以生成經(jīng)解碼的視頻幀。此外,這樣的運動向量可以由視頻編碼器本地地使用以在本地解碼循環(huán)內執(zhí)行運動補償,以用于殘差(例如,經(jīng)解碼的像素塊與源像素塊之間的差異)的最終生成和編碼,所述殘差也可以提供給解碼器。
再進一步,這樣的運動估計技術可以支持除了編碼和解碼應用以外的其他應用。例如,運動估計技術或者更一般地,塊匹配搜索技術可以在姿勢跟蹤應用、圖像穩(wěn)定應用等中實施。
在一些運動估計上下文中,與個體運動向量相關聯(lián)的像素塊的大小可能不斷增加。例如,在h.264中,16x16宏塊可以與個體運動向量相關聯(lián)并且在hevc和vp9中,高達64x64個編碼單元可以與個體運動向量相關聯(lián)。例如,運動估計可以包括基于一個或多個參考幀的搜索面積或窗口而針對當前幀的像素塊執(zhí)行的搜索。相比于較小像素塊,這樣較大像素塊的支持可以減少編碼比特的數(shù)量。然而,隨著像素塊大小的增加,這樣的像素塊搜索可能隨著硬件實施方式的復雜性和存儲器通信量的增加而造成計算成本的增加。
相對于這些以及其他考量,需要本改進。這樣的改進可能隨著壓縮高質量視頻、執(zhí)行姿勢跟蹤、提供圖像穩(wěn)定等的需求變得更加普遍而變得至關重要。
附圖說明
在此描述的材料通過示例而是不通過附圖中的限制的方式來說明。為了說明的簡單和清楚,附圖中圖示的元件并不必然按比例繪制。例如,為了清楚,一些元件的尺寸可以相對于其他元件放大。此外,在合適的情況下,在附圖當中重復參考標記以指示相應或類似元件。在附圖中:
圖1是圖示包括示例運動估計引擎的示例裝置的方框圖;
圖2圖示示例種子運動向量和示例候選運動向量;
圖3圖示示例畸變網(wǎng)格;
圖4圖示示例像素塊;
圖5圖示用于提供運動估計的示例裝置;
圖6圖示示例畸變網(wǎng)格;
圖7是圖示用于確定用于像素塊的種子運動向量的示例過程的流程圖;
圖8圖示示例像素塊;
圖9圖示應用于示例像素塊的示例像素掩蔽;
圖10是圖示示例運動估計引擎的方框圖;
圖11是圖示用于確定用于像素塊的運動向量的示例過程的流程圖;
圖12是圖示用于提供運動估計的示例過程的流程圖;
圖13是用于提供運動估計的示例系統(tǒng)的說明性圖;
圖14是示例系統(tǒng)的說明性圖;以及
圖15圖示全部根據(jù)本公開的至少一些實施方式布置的示例小形狀因子裝置。
具體實施方式
現(xiàn)參照所附附圖描述一個或多個實施例或實施方式。雖然討論了具體配置和布置,但應理解,這僅出于說明性目的。本領域技術人員將認識到,在不偏離描述的精神和范圍的情況下可以采用其他配置和布置。對于相關領域的技術人員來說清楚的,在此描述的技術和/或布置也可以在除了在此描述的以外的各種其他系統(tǒng)和應用中采用。
雖然以下描述闡述了可以例如在諸如片上系統(tǒng)(soc)架構的架構中說明的各種實施方式,但是在此描述的技術和/或布置的實施方式不限于特定架構和/或計算系統(tǒng),并且可以由用于類似目的的任意架構和/或計算系統(tǒng)來實施。例如,采用例如多個集成電路(ic)芯片和/或封裝體的各種架構,和/或諸如機頂盒、智能電話等的各種計算裝置和/或消費電子(ce)裝置,可以實施在此描述的技術和/或布置。此外,雖然以下描述可能闡述了許多具體細節(jié),諸如邏輯實施方式、系統(tǒng)組件的類型和相互關系、邏輯分區(qū)/集成選擇等,但是所要求保護的主題可以在沒有這樣的具體細節(jié)的情況下實踐。在其他實例中,諸如例如控制結構和全軟件指令序列的一些材料可能未詳細示出以避免模糊在此公開的材料。
在此公開的材料可以以硬件、固件、軟件或其任意組合來實施。在此公開的材料也可以實施為機器可讀介質上的指令,其可以由一個或多個處理器讀取和執(zhí)行。機器可讀介質可以包括用于存儲或傳輸可由機器(例如,計算裝置)讀取的形式的信息的任意介質和/或機構。例如,機器可讀介質可以包括只讀存儲器(rom);隨機存取存儲器(ram);磁盤存儲介質;光學存儲介質;閃速存儲器裝置;電、光、聲或其他形式的傳播信號(例如,載波、紅外信號、數(shù)字信號等)及其他。
在說明書中提及“一個實施方式”、“實施方式”、“示例實施方式”等指示所描述的實施方式可以包括特定特征、結構或特性,但每個實施例可以并不必然包括該特定特征、結構或特性。此外,這樣的短語并不必然指代相同實施方式。進一步的,應認為無論是否明確描述,本領域技術人員在其知識范圍內都可以結合其他實施方式來實現(xiàn)這樣的特征、結構或特性。
在此描述的方法、裝置、設備、計算平臺和物品涉及運動估計并且具體地,涉及針對像素塊生成畸變網(wǎng)格,以及基于所生成的畸變網(wǎng)格來確定用于像素塊的最佳運動向量。
如以上描述的,在一些上下文中,相比于先前標準,現(xiàn)在可以基于較大像素塊來執(zhí)行運動估計。這樣的較大像素塊可能在實施像素塊搜索中提供困難并且具體地,在硬件中實施像素塊搜索中提供困難。例如,使用較大像素塊可能大大增加實施邏輯電路和存儲器通信量的復雜度。如在此進一步討論的,所描述的技術可以減輕或消除這樣的困難。此外,在實施標準或較小像素塊的上下文中,所描述的技術可以提供諸如較快的處理和/或容易實施等優(yōu)點。由此,在此討論的技術和系統(tǒng)不限于任意特定的像素塊大小。此外,這樣的運動估計技術可以應用于任意形狀的像素塊。例如,在標準上下文中,像素塊可以是正方形形狀的。然而,使用在此討論的技術,運動估計可以應用于任意形狀的像素塊。
例如,在一些實施例中,像素塊可以分割或劃分為兩個或更多個區(qū)并且種子運動向量可以針對像素塊而生成。例如,種子運動向量可以基于像素塊的下采樣版本經(jīng)由對運動估計引擎的調用來生成,使得所得到的運動向量映射到像素塊的分辨率。隨后可以基于像素塊的區(qū)和與種子運動向量相鄰(以及在一些示例中包圍種子運動向量)的多個候選運動向量來生成畸變網(wǎng)格。例如,可以針對像素塊的區(qū)調用運動估計引擎(例如,通過提供與像素塊的區(qū)相關聯(lián)的源像素塊)并且運動估計引擎可以提供包括每一個候選運動向量(在一些示例中包括種子運動向量)的畸變的畸變網(wǎng)格或陣列??梢詫\動估計引擎做出多個調用(例如通過提供與其他區(qū)相關聯(lián)的源像素塊)以生成包括用于區(qū)和候選運動向量的每一個組合的畸變值的全畸變網(wǎng)格?;谌兙W(wǎng)格,可以從候選運動向量中確定最佳運動向量。例如,最佳運動向量可以與最小畸變求和值相關聯(lián),使得針對每個候選運動向量和種子運動向量生成畸變求和值。
在一些示例中,最佳運動向量可以用于后續(xù)處理(例如,視頻編碼、姿勢或運動跟蹤或圖像穩(wěn)定等)。在其他示例中,最佳運動向量可以用在對運動估計引擎的后續(xù)組調用中以確定用于像素塊的較高分辨率最佳運動向量,該較高分辨率最佳運動向量隨后可以用于后續(xù)處理。例如,如果第一最佳運動向量是整數(shù)分辨率最佳運動向量,則后續(xù)最佳運動向量可以是半像素分辨率最佳運動向量,并且如果第一最佳運動向量是半像素分辨率最佳運動向量,則后續(xù)最佳運動向量可以是四分之一像素分辨率最佳運動向量,等等。例如,處理可以重復以獲得更加精確的最佳運動向量。
這樣的處理可以在減少硬件成本或計算成本的情況下提高運動估計效率(以及在諸如hevc或vp9的視頻編碼上下文中的編碼效率)。例如,如在此進一步討論的,這樣的處理可以使用基于nxn塊的運動估計引擎來對2nx2n像素塊執(zhí)行運動估計。例如,2nx2n像素塊可以分割為四個nxn區(qū)??梢曰诜N子運動向量,針對四個nxn區(qū)中的每一個來執(zhí)行硬件調用(例如,對于四個調用的每一個使用相同的種子運動向量)以生成如所討論的畸變網(wǎng)格和最佳運動向量。這樣的處理從而可以使用基于nxn塊的運動估計引擎來提供2nx2n像素塊的高效生成,這可以節(jié)省計算復雜度和功率等。
圖1是圖示根據(jù)本公開的至少一些實施方式布置的包括示例運動估計引擎105的示例裝置100的方框圖。如圖1所示,運動估計引擎105可以接收源像素塊(源)101、參考像素區(qū)域(參考)102、種子運動向量(種子mv)103和/或網(wǎng)格啟用/禁用信號(網(wǎng)格信號)104,并且運動估計引擎105可以提供估計的運動向量(估計的mv)106和/或畸變網(wǎng)格107。運動估計引擎105可以經(jīng)由任意合適裝置100來實施,諸如計算機、膝上型計算機、平板計算機、智能電話、相機、游戲裝置等,如在此進一步關于裝置500、系統(tǒng)1400和裝置1500討論的。在一些示例中,源像素塊101、參考像素區(qū)域102、種子運動向量103和網(wǎng)格啟用/禁用信號104可以提供給運動估計引擎105作為調用,諸如命令調用等。
運動估計引擎105可以包括用于基于源像素塊101、參考像素區(qū)域102、種子運動向量103和網(wǎng)格啟用/禁用信號104來生成估計的運動向量106和/或畸變網(wǎng)格107的任意合適硬件、固件、軟件或其組合。在一些示例中,運動估計引擎105可以以硬件提供,諸如經(jīng)由圖形處理單元的硬件。在一些示例中,運動估計引擎105可以是能夠處理任意形狀的基于塊的硬件。此外,在一些示例中,運動估計引擎105可以處理有限大小的源像素塊101。大小限制可以是基于源像素塊101的像素數(shù)量、源像素塊101的尺寸等的任意合適大小限制。在一些示例中,源像素塊101的大小限制可以是256個像素或者16x16像素的尺寸等。然而,如討論的,運動估計引擎105可以具有任意這樣的大小限制(例如,32x32大小限制)或者沒有這樣的大小限制。
例如,在網(wǎng)格啟用/禁用信號104被啟用時,運動估計引擎105可以基于源像素塊101、參考像素區(qū)域102、以及與種子運動向量103相關聯(lián)的候選運動向量來生成畸變網(wǎng)格107。種子運動向量103可以使用任意合適的一種或多種技術、諸如在此討論的那些來生成,并且種子運動向量103可以代表用于源像素塊101的低分辨率運動向量、最佳猜測運動向量、第一猜測運動向量、估計的運動向量等。在一些示例中,種子運動向量103可以基于對運動估計引擎105的較早調用針對下采樣的源像素塊101和下采樣的參考像素區(qū)域而生成以作為估計的運動向量106,使得種子運動向量可以是用于源像素塊101和參考像素區(qū)域102的全分辨率的估計的運動向量106的縮放或映射表示。
如在此討論的,源像素塊101可以具有任意大小和形狀。此外,源像素塊101可以包括表示像素的塊的任意合適的數(shù)據(jù)或數(shù)據(jù)結構,諸如luma數(shù)據(jù)、色度數(shù)據(jù)等。類似地,參考像素區(qū)域102可以包括表示像素的參考區(qū)域的任意合適數(shù)據(jù)或數(shù)據(jù)結構,諸如luma數(shù)據(jù)、色度數(shù)據(jù)等。源像素塊101可以例如是當前經(jīng)由運動估計技術處理的幀的一部分,并且參考像素區(qū)域102可以是先前幀或先前處理的幀的一部分,并且可以提供用于處理當前幀的基礎。例如,先前處理的幀可以是時間上在前的幀、時間上在后的幀、這樣的幀的組合、合成的或經(jīng)其他方式處理的幀等。參考像素區(qū)域102可以大于源像素塊101,因為參考像素區(qū)域102的各個部分可以使用候選運動向量基于源像素塊101來搜索。
畸變網(wǎng)格107可以基于種子運動向量103和與種子運動向量103相關聯(lián)的候選運動向量來生成。例如,畸變網(wǎng)格107可以包括用于每個候選運動向量(例如,包括種子運動向量103)的畸變值,使得畸變值基于源像素塊101和參考像素區(qū)域102來生成。例如,在網(wǎng)格啟用/禁用信號104被觸發(fā)時,除了源像素塊101和參考像素區(qū)域102輸入以外,運動估計引擎105可以獲取種子運動向量103作為輸入,并且運動估計引擎105可以輸出包括用于多個候選運動向量中的每一個的畸變值的畸變網(wǎng)格107。畸變網(wǎng)格107的畸變值可以包括如在此進一步討論的任意合適的畸變值。
在網(wǎng)格啟用/禁用信號104被禁用時,運動估計引擎105可以生成估計的運動向量106。在一些示例中,在網(wǎng)格啟用/禁用信號104被禁用時,可以不提供種子運動向量103,并且參考像素區(qū)域102的區(qū)域可以增加以提供更大的搜索區(qū)域用于生成估計的運動向量106。例如,估計的運動向量106可以基于由運動估計引擎105內部地使用的類似于畸變網(wǎng)格107的畸變網(wǎng)格來生成,使得估計的運動向量106可以與畸變網(wǎng)格107的畸變值的最小畸變值相關聯(lián)。此外,在網(wǎng)格啟用/禁用信號104被啟用時,在一些實施方式中可以提供估計的運動向量106。
如討論的,畸變網(wǎng)格107可以基于與種子運動向量103相關聯(lián)的候選運動向量來生成。在一些示例中,與種子運動向量103相關聯(lián)的候選運動向量可以是包圍并且相鄰于種子運動向量103的運動向量。
圖2圖示根據(jù)本公開的至少一些實施方式布置的示例種子運動向量103和示例候選運動向量202-209。如圖2所示,候選運動向量202-209可以相鄰于并且包圍種子運動向量103。在所示示例中,候選運動向量202-209分別在種子運動向量103的左上方、在種子運動向量103的上方、在種子運動向量103的右上方、在種子運動向量103的右方、在種子運動向量103的右下方、在種子運動向量103的下方、在種子運動向量103的左下方以及在種子運動向量103的左方。此外,種子運動向量103可以是候選運動向量,如術語在此使用的那樣。
在所示示例中,8個附加候選運動向量202-209在所描述的布局中示出。然而,可以在任意合適布局中使用任意數(shù)量的附加候選運動向量。例如,可以使用2或4個候選運動向量(上下、左右、以菱形形狀或以正方形形狀等)或者可以使用圍繞候選運動向量202-209的一個或多個層中的附加候選運動向量(例如(多個)這樣的層的全部(多個)層或選擇(多個)這樣的層的部分)。
此外,候選運動向量202-209可以以任意準確度提供在種子運動向量103周圍。在一些示例中,候選運動向量202-209可以是來自種子運動向量103的整數(shù)像素位置(例如,整數(shù)或全像素分辨率)。在這樣的示例中,畸變網(wǎng)格107可以描述為整數(shù)畸變網(wǎng)格。在其他示例中,候選運動向量202-209可以是來自種子運動向量103的半像素位置(例如,半像素分辨率)或四分之一像素位置(例如四分之一分辨率)。在這樣的示例中,畸變網(wǎng)格107可以描述為分段的畸變網(wǎng)格或分段運動估計網(wǎng)格等。
在一些示例中,可以經(jīng)由對運動估計引擎105的調用來請求候選運動向量202-209的分辨率。例如,可以基于明確的調用請求或者基于種子運動向量103的分辨率的指示來請求分辨率。在一些示例中,候選運動向量202-209可以基于種子運動向量103的分辨率的兩倍來生成(例如,利用用于生成種子運動向量103的像素距離的一半的準確度)。例如,如果種子運動向量103是整數(shù)運動向量,候選運動向量202-209可以相距種子運動向量103半像素距離,并且如果種子運動向量103是半像素運動向量,候選運動向量202-209可以相距種子運動向量103四分之一像素距離,等等。為了說明性目的,考慮具有mvx=5、mvy=2的值的整數(shù)種子運動向量103。在這樣的示例中,候選運動向量202-209可以提供為最接近種子運動向量103的具有mvx=5+(0、-0.5、0.5)、mvy=2+(0、-0.5、0.5)的值的8個半像素運動向量。類似地,假定具有mvx=5、mvy=2.5的值的半像素種子運動向量103,候選運動向量202-209可以提供為最接近種子運動向量103的具有mvx=5+(0、-0.25、0.25)、mvy=2+(0、-0.25、0.25)的值的8個四分之一像素運動向量。
如討論的,在其他示例中,候選運動向量202-209的準確度或分辨率可以與種子運動向量103的準確度或分辨率相同。具體地,在整數(shù)畸變網(wǎng)格實施方式中,候選運動向量202-29和種子運動向量103可以均為整數(shù)運動向量。此外,如討論的,經(jīng)由運動估計引擎105評估的候選運動向量不限于9個運動向量(例如,種子運動向量103和候選運動向量202-209)。例如,候選運動向量可以進一步擴展以覆蓋更寬范圍的鄰近運動向量。
如討論的,并且參照圖1,畸變網(wǎng)格107可以基于源像素塊101、參考像素區(qū)域102和種子運動向量103以及與種子運動向量103相關聯(lián)的候選運動向量來生成。在一些示例中,畸變網(wǎng)格107可以包括與源像素塊101、參考像素區(qū)域102和種子運動向量103相關聯(lián)的多個畸變值。
圖3圖示根據(jù)本公開的至少一些實施方式布置的示例畸變網(wǎng)格107。如圖3所示,畸變網(wǎng)格107可以包括與源像素塊101、參考像素區(qū)域102和種子運動向量103相關聯(lián)的畸變值304的陣列。例如,畸變值304(d1,1-d9,1)中的每一個可以與在圖3中表示為源像素塊(b1)302的源像素塊101,以及在圖3中表示為候選運動向量(mv1-mv9)301的候選運動向量202-209的運動向量和種子運動向量103相關聯(lián)或者基于它們來生成。在圖3的所示示例中,畸變值304標記為dx、y,使得x表示候選運動向量301的相關聯(lián)運動向量以及y表示像素塊302的相關聯(lián)的源像素塊(例如,在這一示例中包括僅僅一個像素塊)。
畸變網(wǎng)格107可以是或可以包括用于表示畸變值304的任意合適數(shù)據(jù)結構。在一些示例中,畸變網(wǎng)格107可以包括僅僅一個畸變值304(例如,使得源像素塊和運動向量關聯(lián)可以基于預定標準等而已知)。在一些示例中,畸變網(wǎng)格107可以提供為畸變值304的陣列。此外,畸變值304可以具有任意合適類型和精度。
畸變值304可以包括與源像素塊101和參考像素區(qū)域102相關聯(lián)的任意合適畸變值或度量。在一些示例中,畸變值304可以是基于源像素塊101和參考像素區(qū)域102的經(jīng)運動補償?shù)幕冎?。例如,畸變?04可以是基于源像素塊101和參考像素區(qū)域102的使用任意合適技術或技藝確定的經(jīng)運動補償?shù)幕冎担黾夹g諸如平方差值之和、平方差值的平均、絕對差值之和、絕對差值的平均等等。
如參照圖1討論的,在一些示例中,源像素塊101可以表示或者可以是較大像素塊的區(qū)或部分或子塊。例如,運動估計引擎105可以針對像素塊的區(qū)被調用或引起多次以生成與像素塊的多個區(qū)相關聯(lián)的畸變網(wǎng)格。如在此使用的,術語源像素塊可以表示提供給運動估計引擎105以用于處理的像素塊。如在此進一步討論的,可以基于使用對于像素塊的區(qū)的多個調用而生成的畸變網(wǎng)格,針對像素塊確定最佳運動向量。
圖4圖示根據(jù)本公開的至少一些實施方式布置的示例像素塊401。如圖4所示,像素塊401可以包括或者劃分為四個區(qū)402-405。區(qū)402-405也可以表征為子塊或子像素塊等。此外,在各種上下文中,像素塊401可以表征為宏塊、最大編碼單元、編碼單元、編碼樹單元、基元等。在圖4示出的示例中,像素塊401是正方形形狀的2nx2n像素塊,然而,像素塊401可以是任意形狀。此外,在所示示例中,像素塊401的區(qū)402-405是具有每像素nxn大小的正方形形狀像素塊。然而,區(qū)402-405也可以具有任意形狀和任意大小。在示例中,n可以是任意合適值。在一些示例中,n可以是16。在其他示例中,n可以是4、8、32等。
此外,圖4圖示像素塊401劃分為四個相等區(qū)402-405。然而,像素塊401可以劃分為任意數(shù)量的區(qū),諸如2個區(qū)、6個區(qū)、8個區(qū)等。此外,在一些示例中,區(qū)402-405可以是與在此參照圖8進一步討論的不同的大小或形狀。在示例中,像素塊401可以是64x64像素以及像素塊401可以劃分為四個32x32像素區(qū)。在另一示例中,像素塊401可以是32x32像素以及像素塊401可以劃分為四個16x16像素區(qū)。在又一示例中,像素塊401可以是64x64像素以及像素塊401可以劃分為十六個16x16像素區(qū)。在又一個示例中,像素塊401可以是64x64像素以及像素塊401可以劃分為四個32x32像素區(qū)。
如討論的,在一些示例中,運動估計引擎105可以具有有關其基于單個過程調用可以處理的源像素塊的大小的限制。例如,運動估計引擎105可以具有大小限制,使得其可以每處理調用處置16x16或32x32個源像素塊,但是大小限制可以取決于實施細節(jié)而為任意合適限制。此外,在一些示例中,運動估計引擎105由于其他處理考量而可以沒有大小限制,經(jīng)由諸如運動估計引擎105的運動估計引擎在逐個區(qū)的基礎上處理像素塊可以是有利的。
現(xiàn)轉到圖5,圖5圖示根據(jù)本公開的至少一些實施方式布置的用于提供運動估計的示例裝置500。如圖5所示,裝置500可以包括運動估計引擎105、運動估計控制器501、存儲器502、下采樣模塊503以及掩蔽模塊504。下采樣模塊503和掩蔽模塊504在以下進一步討論。此外,裝置500可以包括任意數(shù)量的運動估計引擎,使得可以提供串行或并行處理。同樣,如參照運動估計引擎105討論的,運動估計引擎105可以以網(wǎng)格啟用或網(wǎng)格禁用模式進行處理。在一些示例中,裝置500可以包括能夠僅處理網(wǎng)格請求或僅處理網(wǎng)格禁用請求(例如,針對估計的運動向量的請求)的運動估計引擎。如所示的,運動估計控制器501可以提供對于運動估計引擎105的調用505。調用505可以包括用于引起運動估計引擎的任意合適信息,諸如在此討論的源像素塊101、參考像素區(qū)域102、種子運動向量103以及網(wǎng)格啟用/禁用信號104。
例如,運動估計控制器501可以接收用于處理的圖像幀和/或用于該圖像幀的分區(qū)信息。分區(qū)信息可以將圖像幀分區(qū)為像素塊或候選像素塊等。運動估計控制器501可以基于圖像幀和/或分區(qū)信息來生成像素塊、區(qū)和源像素塊。例如,如果像素塊可以或者要經(jīng)由運動估計引擎105整體處理,運動估計控制器501可以在網(wǎng)格啟用/禁用信號104禁用的情況下將像素塊提供為源像素101,使得運動估計引擎105可以返回用于像素塊的估計的運動向量106。
如果像素塊不可以或者不要經(jīng)由運動估計引擎105處理(例如,因為運動估計引擎105無法處理那么大的塊或者由于其他處理約束等),運動估計控制器501可以將像素塊劃分為區(qū)(例如,請參照圖4)并且可以利用相同種子運動向量對運動估計引擎105做出多個調用,使得對于每個調用提供區(qū)作為源像素區(qū)并且網(wǎng)格啟用/禁用信號104被啟用。在這樣的示例中,運動估計控制器501可以接收用于像素塊的每個區(qū)的畸變網(wǎng)格107。例如,用于像素塊的每個區(qū)的畸變網(wǎng)格107可以如參照圖3描述的那樣提供。
運動估計控制器501可以組合這樣的畸變網(wǎng)格以生成用于該像素塊的畸變網(wǎng)格。例如,可以針對像素塊401的每個區(qū)402接收如參照圖3討論的陣列畸變網(wǎng)格(請參見圖4)。這樣的陣列畸變網(wǎng)格可以組合以生成用于該像素塊的格柵畸變網(wǎng)格。
圖6圖示根據(jù)本公開的至少一些實施方式布置的示例畸變網(wǎng)格600。如圖6所示,畸變網(wǎng)格600可以包括與源像素塊602(b1-b4)、參考像素區(qū)域以及基于和包括種子運動向量的候選運動向量601相關聯(lián)的畸變值604-607的格柵。例如,畸變值604(d1,1-d9,1)中的每一個可以與源塊401的區(qū)402相關聯(lián)或基于其生成,畸變值604(d1,2-d9,2)中的每一個可以與源塊401的區(qū)403相關聯(lián)或基于其生成,畸變值604(d1,3-d9,3)中的每一個可以與源塊401的區(qū)404相關聯(lián)或基于其生成,以及畸變值604(d1,4-d9,4)中的每一個可以與源塊401的區(qū)405相關聯(lián)或基于其生成(請參見圖4)。雖然基于四個區(qū)圖示并且示出畸變值604、605、606、607的四個陣列,但是畸變網(wǎng)格600可以基于任意數(shù)量的區(qū)并且可以包括任意數(shù)量的畸變值的陣列。如在此使用的,畸變網(wǎng)格可以包括用于生成如在此討論的最佳運動向量的任意合適畸變值。在一些示例中,畸變網(wǎng)格可以包括針對多個參考位置提供并且以均勻采樣距離/分辨率形成連續(xù)兩維集合的源塊與參考塊之間的誤差測量。
返回到圖5,如討論的,運動估計控制器501可以基于諸如對運動估計引擎105的調用505的多個調用而接收畸變網(wǎng)格,諸如畸變網(wǎng)格107。運動估計控制器501可以基于所接收的陣列畸變網(wǎng)格來生成畸變網(wǎng)格以生成格柵畸變網(wǎng)格,諸如畸變網(wǎng)格600。如討論的,對于像素塊的每個調用可以利用相同種子運動向量做出并且每個陣列畸變網(wǎng)格可以包括相同的候選運動向量?;谒傻母駯呕兙W(wǎng)格,運動估計控制器501可以確定用于當前像素塊的最佳運動向量。例如,可以針對諸如像素塊401的像素塊來確定種子運動向量(如在此進一步討論的)。可以針對像素塊的區(qū),諸如像素塊401的區(qū)402-405,對運動估計105做出多個調用,并且所得到的(陣列)畸變網(wǎng)格可以組合為如關于圖6所示的(格柵)畸變網(wǎng)格??梢灾赋龅氖?,相同的種子運動向量和候選運動向量已經(jīng)針對像素塊的不同區(qū)進行了評估。
如討論的,運動估計控制器501可以基于所生成的格柵畸變網(wǎng)格來確定用于當前像素塊的最佳運動向量506。再次轉到圖6,運動估計控制器可以生成畸變求和值603(在圖6中標記為ds1-9)使得畸變求和值中的每一個值是跨用于相關聯(lián)的運動向量的區(qū)的求和的畸變。例如,畸變求和值ds3可以是畸變值d3,1-d3,4的求和并且可以與候選運動向量mv3相關聯(lián)。在一些示例中,運動估計控制器501可以確定最佳運動向量506,候選運動向量601中具有畸變求和值603的最小畸變求和值的運動向量。雖然參照畸變求和值討論,但最佳運動向量確定可以基于任意合適的值,諸如加權畸變求和值(其中,例如不同區(qū)具有不同權重)、平均畸變值等。此外,畸變網(wǎng)格600的附加特性可以用于生成最佳運動向量,諸如用于候選運動向量的畸變值的范圍、與候選運動向量的平均值的偏差等。
返回到圖5,在一些示例中,最佳運動向量506可以用于重復處理以生成更加準確的最佳運動向量。例如,最佳運動向量506可以用作用于當前像素塊的種子運動向量,并且所討論的過程(例如,多個調用以生成格柵畸變網(wǎng)格、對跨每個候選運動向量的區(qū)的這樣的畸變值求和、以及選擇與最小畸變求和值相關聯(lián)的最佳運動向量)可以重復以找出更加準確(例如,半像素而不是整數(shù),或者四分之一像素而不是半像素等)的最佳運動向量。
在單個處理循環(huán)或多個處理循環(huán)的任一情況中,最佳運動向量506可以在裝置500內傳送以供經(jīng)由一個或多個其他模塊進行處理。例如,最佳運動向量506可以經(jīng)由編碼器引擎用于編碼像素塊和當前圖像幀(例如,基于最佳運動向量506的差異運動向量可以熵編碼為比特流以供傳送到解碼器),最佳運動向量506可以經(jīng)由本地解碼循環(huán)用于生成用于像素塊的殘差(例如,通過將最佳運動向量506應用于重構圖像幀的重構像素塊以及對像素塊與重構像素塊求差),所述殘差可以被變換、量化以及熵編碼為比特流以供傳送到解碼器等。這樣的處理可以經(jīng)由編碼器或編碼器引擎等(未示出)的一個或多個模塊來執(zhí)行。在其他示例中,最佳運動向量506可以經(jīng)由姿勢跟蹤模塊、電路、引擎等或者對象跟蹤模塊、電路、引擎等(未示出)用于姿勢或對象跟蹤。在又一其他示例中,最佳運動向量506可以經(jīng)由與裝置500的相機等相關聯(lián)的圖像穩(wěn)定器而用于圖像穩(wěn)定。雖然參照編碼操作、姿勢跟蹤、對象跟蹤和圖像穩(wěn)定來討論,但是最佳運動向量506、畸變網(wǎng)格107、畸變網(wǎng)格600或如在此討論的那樣生成的其他數(shù)據(jù)可以經(jīng)由任意合適圖像處理技術來使用。在一些示例中,這樣的數(shù)據(jù)可以提供為例如圖像處理流水線的一部分。
如討論的,種子運動向量103可以提供給運動估計引擎105用于生成候選運動向量202-209。還如討論的,種子運動向量103可以與像素塊相關聯(lián)并且種子運動向量103可以使用任意合適的一種或多種技術來生成。
圖7是圖示根據(jù)本公開的至少一些實施方式布置的用于確定用于像素塊的種子運動向量的示例過程700的流程圖。過程700可以包括如圖7中所示的一個或多個操作701-703。過程700可以通過裝置(如在此討論的裝置500)執(zhí)行以確定用于像素塊的種子運動向量。例如,過程700可以在像素塊級別針對具有將經(jīng)由在此討論的運動估計引擎獨立地處理的區(qū)的像素塊而執(zhí)行。在各種上下文中,諸如在編碼上下文中,種子運動向量可以與表征為宏塊、最大編碼單元、編碼單元等的像素塊相關聯(lián)。過程700可以針對任意數(shù)量的像素塊而重復。在一些示例中,過程700可以通過裝置500的運動估計控制器501來執(zhí)行。
過程700可以開始于操作701,“下采樣像素塊和參考像素區(qū)域”,其中諸如像素塊401的像素塊和參考像素區(qū)域可以被下采樣。例如,源像素塊和參考像素塊可以通過相同采樣率來下采樣,并且使得源像素塊可以通過諸如運動估計引擎105的運動估計引擎來處理。在示例中,像素塊和參考像素區(qū)域可以在x和y方向二者上以2:1被下采樣以生成下采樣的像素塊和下采樣的參考像素區(qū)域,但是可以實施任意合適的下采樣率。
過程700可以在操作702繼續(xù),“以下采樣分辨率生成種子運動向量”,其中可以基于下采樣的像素塊和下采樣的參考像素區(qū)域,以下采樣分辨率生成種子運動向量。例如,操作702可以基于提供運動估計引擎105或類似運動估計引擎而經(jīng)由運動估計引擎105來實施,運動估計引擎105或類似運動估計引擎能夠基于提供下采樣的像素塊作為源像素塊101以及下采樣的參考像素區(qū)域作為參考像素區(qū)域102(如果需要的話連同禁用的網(wǎng)格啟用/禁用信號104)來生成估計的運動向量,請參照圖1。所得到的估計的運動向量106可以是下采樣分辨率的種子運動向量。
過程700可以在操作703繼續(xù),“將種子運動向量映射到全分辨率”,其中下采樣分辨率的種子運動向量可以被上采樣或映射到全分辨率以生成用于像素塊的種子運動向量。例如,如果下采樣率在x和y方向二者上為2:1,下采樣分辨率的種子運動向量可以經(jīng)由1:2的上采樣率被上采樣。例如,以下采樣分辨率生成的四分之一像素種子運動向量可以對應于操作703處一次上采樣的半像素種子運動向量,并且以下采樣分辨率生成的半像素種子運動向量可以對應于操作703處一次上采樣的整數(shù)種子運動向量。經(jīng)由過程700生成的種子運動向量可以如參照種子運動向量103或在此別處討論的那樣使用。
如討論的,在此討論的像素塊和/或像素塊的區(qū)可以為任意形狀和大小。此外,在一些示例中,可以提供掩蔽以實施形狀和/或禁用對于像素塊的特定像素和/或像素塊的區(qū)的畸變貢獻。
圖8圖示根據(jù)本公開的至少一些實施方式布置的示例像素塊801。如圖8所示,像素塊801可以包括任意合適形狀。在圖8示出的示例中,像素塊801具有星形。在其他示例中,像素塊801可以具有正方形形狀(如參照像素塊401示出的)、矩形形狀、六邊形形狀、三角形形狀、五邊形形狀或者任意形狀。在一些示例中,像素塊801的形狀可以包括一個或多個弧形。例如,像素塊801可以具有圓形、橢圓形等。在一些示例中,像素塊801的形狀可以包括直邊和曲邊或弧形邊的組合。此外,像素塊801可以劃分為多個相同形狀,或者如圖8所示,像素塊801可以劃分為多個不同形狀。例如,像素塊801劃分為6個區(qū)802-807,其中5個區(qū)為三角形形狀(例如,區(qū)802-806)并且其中一個為五邊形形狀(例如,區(qū)807)。例如,像素塊的區(qū)可以具有任意合適形狀,諸如正方形形狀(如參照像素塊401示出的)、矩形形狀、六邊形形狀、三角形形狀、五邊形形狀或任意形狀。此外,像素塊801和區(qū)802-807可以具有任意合適大小。在一些示例中,像素的區(qū)的一個或多個的形狀可以包括一個或多個弧形。例如,一個或多個區(qū)可以具有圓形、橢圓形等。在一些示例中,一個或多個區(qū)的形狀可以包括直邊和曲邊或弧形邊的組合。
如討論的,在一些示例中,諸如區(qū)802-807的區(qū)可以作為源像素塊提供給諸如運動估計引擎105的運動估計引擎,以用于生成畸變網(wǎng)格。在一些示例中,運動估計引擎的限制可以基于源像素塊的大小而不基于源像素塊的形狀,使得處理可以針對任意形狀的源像素塊執(zhí)行。此外,如參照圖6討論的,畸變網(wǎng)格可以用于生成畸變求和值或基于畸變網(wǎng)格的其他合適值。還如討論的,在一些示例中,畸變求和值可以是加權的求和值。在區(qū)802-807具有不同大小的示例中,這樣的權重可以基于區(qū)的相對大小,使得較大的區(qū)接收較大權重。
除了任意形狀處理以外,可以基于像素塊的掩蔽部分或者像素塊的區(qū)來提供運動估計。這樣的掩蔽可以對正正對其提供運動估計的形狀提供附加控制。例如,基于這樣的像素掩蔽,可以搜索任意形狀已得到最佳運動向量。
圖9圖示根據(jù)本公開的至少一些實施例布置的應用于示例像素塊901的示例像素掩蔽906。如圖9所示,像素塊901可以包括或者劃分為區(qū)902-905。在圖9的示例中,像素塊901和區(qū)902-905是正方形形狀,然而像素塊901和區(qū)902-905可以具有如在此討論的任意形狀。
還如所示的,像素掩蔽906(諸如用于遮蔽區(qū)902-905中的諸如區(qū)903的區(qū)的區(qū)像素掩蔽)或者像素塊掩蔽(用于遮蔽像素塊901的區(qū)或部分)可以應用于像素塊901和/或區(qū)902-905。在所示示例中,像素掩蔽906形狀是三角形形狀的、連續(xù)的并且應用于像素塊901和像素區(qū)903的右上部分。然而,像素掩蔽906可以是任意形狀,可以是不連續(xù)的和/或包括多個未連接部分,并且可以應用于像素塊901和/或像素區(qū)902-905的任意部分。
圖10是圖示根據(jù)本公開的至少一些實施方式布置的示例運動估計引擎105的方框圖。運動估計引擎105可以包括在此別處討論的任意能力。此外,運動估計引擎105可以接收像素掩蔽1001。像素掩蔽1001可以包括提供諸如像素掩蔽906的像素掩蔽的任意合適數(shù)據(jù)或數(shù)據(jù)結構。例如,像素掩蔽1001可以包括指示要在生成畸變網(wǎng)格107中禁用的源像素塊101的像素的信號。例如,在生成畸變網(wǎng)格107的畸變值304(請參見圖3)中可以不考慮禁用的像素。
如討論的,在一些示例中,像素掩蔽1001可以禁用像素用于生成畸變值。在這樣的示例中,像素掩蔽1001可以實施為二元掩蔽,使得二元掩蔽內的0值禁用像素并且二元掩蔽內的1值啟用像素用于生成畸變值。在其他示例中,像素掩蔽1001可以包括濾波器或可變?yōu)V波器,使得被遮蔽的像素值對畸變值貢獻較小(例如,像素掩蔽1001可以是加權濾波器等)。例如,像素掩蔽1001可以包括用于由掩蔽表示的每個像素的相同或不同值,使得那些像素比未遮蔽像素加權較小。
圖11是圖示根據(jù)本公開的至少一些實施方式布置的用于確定用于像素塊的運動向量的示例過程1100的流程圖。過程1100可以包括如圖1所示的一個或多個操作1101-1111。過程1100可以由裝置(例如,如在此討論的裝置500)執(zhí)行以確定用于像素塊的運動向量。例如,過程1100可以在如在此討論的像素塊級別執(zhí)行。在各種上下文中,諸如在編碼上下文中,運動向量可以與表征為宏塊、最大編碼單元、編碼單元等的像素塊相關聯(lián)。過程1100可以針對任意數(shù)量的像素塊和/或圖像幀重復。
過程1100可以開始于操作1101,“加載當前圖像幀用于處理”,其中圖像幀可以被加載以用于處理。圖像幀可以包括任意合適圖像幀,諸如視頻序列的幀、經(jīng)由裝置的相機接收的當前幀(例如,要實時處理的幀)等。此外,圖像幀可以包括任意合適數(shù)據(jù)或數(shù)據(jù)結構。例如,當前圖像幀可以加載到諸如裝置500的存儲器502的存儲器中。
過程1100可以在操作1102繼續(xù),“加載像素塊用于運動估計”,其中當前圖像幀的像素塊可以被加載以用于處理。如在此討論的,像素塊可以是任意合適大小和形狀的。在一些示例中,當前圖像幀可以基于預定圖案或分區(qū)信息而劃分為用于處理的像素塊。在其他示例中,對于圖像幀的寬范圍的分區(qū)選項可以被評估以確定用于該幀的最優(yōu)編碼圖案。例如,操作1102-1111可以針對任意數(shù)量的圖像幀的任意數(shù)量的像素塊重復。
過程1100可以在操作1103繼續(xù),“加載一個或多個參考幀”,其中一個或多個參考幀或其部分可以被加載以用于處理。一個或多個參考幀可以包括任意合適的參考幀,諸如時間上在前的一個或多個幀、時間上在后的一個或多個幀、這樣幀的組合、合成或以其他方式處理的一個或多個幀等。例如,當前圖像幀可以被加載到諸如裝置500的存儲器502的存儲器中。在一些示例中,一個或多個參考幀可以包括如在此討論的參考幀區(qū)域或區(qū)。
過程1100可以在操作1104繼續(xù),“估計種子運動向量”,其中可以針對當前像素塊估計種子運動向量。種子運動向量可以使用任意合適的一種或多種技術(諸如參照在此的過程700討論的那些)來估計或確定。例如,可以通過以下來確定種子運動向量:下采樣像素塊和參考像素區(qū)域、確定用于下采樣的像素塊和參考像素區(qū)域的下采樣的最佳運動向量以及將下采樣的最佳運動向量映射到原始像素塊的分辨率。
過程1100可以在操作1105繼續(xù),“將像素塊分割為區(qū)”,其中像素塊可以分割或劃分為區(qū)或部分等。如討論的,像素塊可以劃分為任意形狀的區(qū)。在一些示例中,像素塊可以劃分為可以由諸如經(jīng)由硬件實施的運動估計引擎的運動估計引擎處理(例如,小到足以被處理)的區(qū)。
過程1100可以在操作1106繼續(xù),“可選地遮蔽像素塊”,其中可選的像素掩蔽可以應用于像素塊。例如,像素掩蔽可以禁用當前像素塊的特定像素或者對其應用降低的加權。
過程1100可以在操作1107繼續(xù),“生成畸變網(wǎng)格”,其中可以針對像素塊生成畸變網(wǎng)格。例如,可以對運動估計引擎做出多個調用,使得每個調用是針對像素塊的單獨區(qū)。調用可以包括例如表示當前區(qū)的源像素塊、種子運動向量(例如,跨對當前像素塊的所有調用,種子運動向量可以是相同的)、參考像素區(qū)域、網(wǎng)格啟用信號以及可選像素掩蔽。響應于每個調用,可以提供畸變網(wǎng)格。例如,每個接收到的畸變網(wǎng)格可以是包括與當前像素塊的當前區(qū)相關聯(lián)的畸變值的陣列的陣列畸變網(wǎng)格,使得每個畸變值與和種子運動向量相關聯(lián)的候選運動向量或者種子運動向量本身相關聯(lián)。
接收到的畸變網(wǎng)格可以組合以形成格柵畸變網(wǎng)格。如參照圖6討論的,這樣的格柵畸變網(wǎng)格可以包括多個畸變值,每個畸變值與像素塊的區(qū)和候選運動向量相關聯(lián)。如在此使用的,術語畸變網(wǎng)格可以應用于與對運動估計引擎的單個調用相關聯(lián)的畸變陣列(例如,調用內對于源像素塊的畸變陣列)或者這樣的畸變陣列的組合(例如,陣列的格柵,每個陣列與像素塊的區(qū)相關聯(lián))。
過程1100可以在操作1108繼續(xù),“選擇最佳運動向量”,其中可以基于畸變網(wǎng)格,選擇用于像素塊的最佳運動向量。例如,可以評估所討論的格柵畸變網(wǎng)格以選擇用于像素塊的最佳運動向量。在示例中,可以確定多個畸變求和值,其中每個值與候選運動向量或者種子運動向量本身相關聯(lián)(例如,多個畸變求和值可以用于特定候選運動向量并且可以包括用于像素塊的每個區(qū)的該候選運動向量的畸變值的求和)。如討論的,其他值(諸如平均畸變值、畸變值的范圍等)可以用于替代畸變求和值或者與所討論的畸變求和值組合來選擇最佳運動向量。
過程1100可以繼在判定操作1109繼續(xù),“滿足所期望的分辨率
如果不滿足所期望分辨率,則過程1100可以繼續(xù)到操作1110,“將最佳運動向量設定為種子運動向量”,其中最佳運動向量可以設定為或用作種子運動向量。如所示的,基于新種子運動向量,過程1100可以重復如討論的操作1107、1108和1109以確定增強分辨率最佳運動向量。例如,如果在第一遍時,分辨率是半像素運動向量,則第二遍可以提供四分之一像素運動向量分辨率。
如討論的,過程1100可以針對任意數(shù)量的像素塊、像素塊內圖像幀的分區(qū)(例如,不同分區(qū))、圖像幀、圖像幀與參考圖像幀的組合等重復或可以部分重復。這樣的處理可以經(jīng)由有限硬件資源來提供運動向量的準確和高效的確定。
圖12是圖示根據(jù)本公開的至少一些實施方式布置的用于提供運動估計的示例過程1200的流程圖。過程1200可以包括如圖12所示的一個或多個操作1201-1203。過程1200可以形成運動估計過程的至少部分。作為非限制舉例,過程1200可以形成由如在此討論的裝置500執(zhí)行的運動估計過程的至少部分。此外,過程1200將在此參照圖13的系統(tǒng)1300來描述。
圖13是根據(jù)本公開的至少一些實施方式布置的用于提供運動估計的示例系統(tǒng)1300的說明性圖。如圖13所示,系統(tǒng)1300可以包括一個或多個中央處理單元(cpu)1301、圖形處理單元(gpu)1302以及存儲器存儲部1303。還如所示的,gpu1302可以包括運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504。這樣的模塊可以實施為執(zhí)行在此討論的操作。在系統(tǒng)1300的示例中,存儲器存儲部1303可以存儲運動估計數(shù)據(jù)或其他視頻數(shù)據(jù),視頻數(shù)據(jù)諸如輸入視頻、視頻幀、圖像幀、參考幀、像素塊數(shù)據(jù)、像素數(shù)據(jù)、區(qū)數(shù)據(jù)、源像素塊數(shù)據(jù)、參考區(qū)域像素數(shù)據(jù)、分區(qū)數(shù)據(jù)、像素掩蔽數(shù)據(jù)、運動向量數(shù)據(jù)、畸變網(wǎng)格數(shù)據(jù)或在此討論的任意其他數(shù)據(jù)。
如所示的,在一些示例中,運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504可以經(jīng)由圖形處理單元1302來實施。在其他示例中,運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504的一個或多個或部分可以經(jīng)由中央處理單元1301來實施。在又一些示例中,運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504的一個或多個或部分可以經(jīng)由編碼流水線和/或成像處理流水線或單元來實施。
圖形處理單元1302可以包括可以提供如在此討論的操作的任意數(shù)量和類型的圖形處理單元。這樣的操作可以經(jīng)由軟件或硬件或其組合來實施。例如,圖形處理單元1302可以包括專用于操縱由存儲器存儲部1303獲得的幀或視頻數(shù)據(jù)的電路。中央處理單元1301可以包括可以為系統(tǒng)1300提供控制和其他高級功能和/或提供在此討論的任意操作的任意數(shù)量和類型的處理單元或模塊。存儲器存儲部1303可以是任意類型的存儲器,諸如易失性存儲器(例如,靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)等)或者非易失性存儲器(例如,閃速存儲器等)等。在非限制性示例中,存儲器存儲部1303可以通過高速緩沖存儲器來實施。在實施例中,運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504的一個或多個或部分可以經(jīng)由圖形處理單元1302的執(zhí)行單元(eu)來實施。eu可以包括例如可編程邏輯或電路,諸如可以提供可編程邏輯功能的寬廣陣列的一個或多個邏輯核。在實施例中,運動估計引擎105、運動估計控制器501、下采樣模塊503以及掩蔽模塊504的一個或多個或部分可以經(jīng)由諸如固定功能電路的專用硬件等來實施。固定功能電路可以包括專用邏輯或電路并且可以提供固定功能進入點的集合,其可以映射到用于固定目的或功能的專用邏輯。
返回到圖12的討論,過程1200可以開始于操作1201,“確定用于像素塊的種子運動向量”,其中可以針對具有多個區(qū)的像素塊確定種子運動向量??梢允褂萌我夂线m的一種或多種技術來確定種子運動向量。例如,像素塊和參考像素區(qū)域可以被下采樣并且種子運動向量可以基于下采樣的像素塊和參考像素區(qū)域來生成。例如,下采樣模塊503可以對像素塊和參考像素區(qū)域下采樣,并且運動估計引擎105可以基于下采樣的像素塊和參考像素區(qū)域、基于經(jīng)由運動估計控制器501做出的調用,來生成下采樣的種子運動向量。下采樣的種子運動向量可以經(jīng)由運動估計控制器501映射到全分辨率運動向量。
如討論的,像素塊和像素塊的區(qū)可以是任意合適大小和形狀。在一些示例中,像素塊可以具有正方形形狀、矩形形狀、六邊形形狀、三角形形狀或星形形狀。在一些示例中,多個區(qū)中的一個或多個區(qū)可以具有正方形形狀、矩形形狀、六邊形形狀、或三角形形狀。在一些示例中,各區(qū)可以是相同大小和形狀的,并且在其他示例中,各區(qū)可以具有不同大小和/或形狀。
處理可以在操作1202繼續(xù),“基于種子運動向量、候選運動向量以及像素塊的區(qū)來生成用于像素塊的畸變網(wǎng)格”,其中可以針對像素塊生成畸變網(wǎng)格。例如,畸變網(wǎng)格可以包括與區(qū)、種子運動向量以及與種子運動向量相關聯(lián)的候選運動向量相關聯(lián)的多個畸變值。例如,與種子運動向量相關聯(lián)的運動向量可以相鄰于和包圍種子運動向量。在一些示例中,所討論的畸變值每個與多個區(qū)中的一個區(qū)以及多個候選運動向量中的一個候選運動向量相關聯(lián)。例如,候選運動向量可以包括種子運動向量。在一些示例中,生成畸變網(wǎng)格可以包括對基于塊的運動估計引擎的多個調用(例如,對于像素塊的每個區(qū)一個調用),使得每個調用使用種子運動向量。例如,運動估計控制器501可以基于對運動估計引擎105的多個調用(例如,對于像素塊的每個區(qū)一個調用)來生成畸變網(wǎng)格,使得運動估計引擎105可以提供可以組合以形成畸變網(wǎng)格的畸變值的陣列(例如,對于每個調用一個陣列)。
如討論的,在一些示例中,生成畸變網(wǎng)格可以包括禁用像素塊的像素的子集或像素塊的一個或多個區(qū)。例如,像素的子集可以基于在此討論的像素掩蔽來禁用。
處理可以在操作1203繼續(xù),“確定用于像素塊的最佳運動向量”,其中可以基于畸變網(wǎng)格來確定用于像素塊的最佳運動向量。例如,運動估計控制器501可以確定最佳運動向量。在一些示例中,確定最佳運動向量可以包括從多個畸變求和值中確定最小畸變求和值,使得每一個畸變求和值中與多個候選運動向量中的一個候選運動向量或者種子運動向量相關聯(lián)。
這樣的過程可以基于種子運動向量以及使用種子運動向量和像素塊的區(qū)生成的畸變網(wǎng)格,來生成用于像素塊的最佳運動向量。這樣的處理可以允許高效使用由于像素塊太大而無法處置像素塊處理的基于塊的(例如,經(jīng)由硬件實施)運動估計引擎和/或高效使用有限的處理資源等。
如討論的,這樣的處理可以經(jīng)由半像素候選運動向量以及整數(shù)種子運動向量來提供半像素最佳運動向量,或經(jīng)由四分之一像素候選運動向量以及半像素種子運動向量來提供四分之一像素最佳運動向量等。此外,可以通過使用最佳運動向量作為種子運動向量來重復過程1200以生成增強分辨率最佳運動向量。例如,第二畸變網(wǎng)格可以針對像素塊而生成,使得第二畸變網(wǎng)格包括與區(qū)、最佳運動向量以及第二候選運動向量(和最佳運動向量相關聯(lián))相關聯(lián)的第二畸變值,并且可以基于第二畸變網(wǎng)格來確定用于像素塊的增強分辨率最佳運動向量。
過程1200可以針對任意數(shù)量的視頻部分和/或視頻幀,串行或并行地重復任意次數(shù)。過程1200可以使用節(jié)省計算復雜度和硬件實施方式復雜度的技術來提供用于像素塊的準確運動向量。
在此描述的系統(tǒng)的各種組件可以以軟件、固件和/或硬件和/或其任意組合來實施。例如,可以至少部分通過諸如可以計算系統(tǒng)(諸如例如智能電話)中找到的計算片上系統(tǒng)(soc)的硬件,來提供裝置100、裝置500、系統(tǒng)1300、系統(tǒng)1400或裝置1500的各種組件。本領域技術人員可以認識到,在此描述的系統(tǒng)可以包括相應附圖中未描繪的附加組件。例如,在此討論的系統(tǒng)可以包括為了清楚起見未描繪的那些的附加組件,諸如姿勢跟蹤電路、對象跟蹤電路、圖像穩(wěn)定電路等。
雖然在此討論的示例過程的實施方式可以包括示出的所有操作以所示順序進行,但本公開不限于此,并且在各種示例中,在此的示例過程的實施方式可以僅包括所示操作的子集、以不同于所示的順序執(zhí)行的操作,或者附加操作。
另外,可以響應于由一個或多個計算機程序產(chǎn)品提供的指令而進行在此討論的操作的任一個或多個。這樣的程序產(chǎn)品可以包括提供指令的信號承載介質,指令在由例如處理器執(zhí)行時可以提供在此描述的功能性。計算機程序產(chǎn)品可以以一個或多個機器可讀介質的任意形式來提供。因此,例如,響應于由一個或多個機器可讀介質傳遞給處理器的程序代碼和/或指令或指令集,包括一個或多個圖形處理單元或處理器核的處理器可以進行在此的示例過程的一個或多個方框。一般地,機器可讀介質可以傳遞程序代碼和/或指令或指令集形式的軟件,其可以使在此描述的裝置和/或系統(tǒng)中的任一個實施裝置100、裝置500、系統(tǒng)1300、系統(tǒng)1400或裝置1500或者在此討論的任意其他模塊或組件的至少部分。
如在此描述的任意實施方式中使用的,術語“模塊”指代配置為提供在此描述的功能性的軟件邏輯、固件邏輯、硬件邏輯和/或電路的任意組合。軟件可以體現(xiàn)為軟件包、代碼和/或指令集或指令,并且“硬件”,如在此描述的任意實施方式中使用的,可以包括例如單個的或者任意組合的存儲由可編程電路執(zhí)行的指令的硬接線電路、可編程電路、狀態(tài)機電路、固定功能電路、執(zhí)行單元電路和/或固件。模塊可以集合地或者個體地體現(xiàn)為形成例如集成電路(ic)、片上系統(tǒng)(soc)等的較大系統(tǒng)的電路。
圖14是根據(jù)本公開的至少一些實施方式布置的示例系統(tǒng)1400的說明性圖。在各種實施方式中,系統(tǒng)1400可以是計算系統(tǒng),但是系統(tǒng)1400不限于此上下文。例如,系統(tǒng)1400可以并入個人計算機(pc)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數(shù)字助理(pda)、蜂窩電話、組合蜂窩電話/pda、電視、智能裝置(例如,智能電話、智能平板或智能電視)、移動互聯(lián)網(wǎng)裝置(mid)、信息傳送裝置、數(shù)據(jù)通信裝置、相機(例如,傻瓜相機、超變焦相機、數(shù)字單反(dslr)相機)等中。
在各種實施方式中,系統(tǒng)1400包括耦合到顯示器1420的平臺1402。平臺1402可以接收來自諸如(多個)內容服務裝置1430或(多個)內容輸送裝置1440或其他類似內容源的內容裝置的內容。包括一個或多個導航特征的導航控制器1450可以用于與例如平臺1402和/或顯示器1420交互。這些組件中的每一個在以下更詳細地描述。
在各種實施方式中,平臺1402可以包括芯片組1405、處理器1410、存儲器1412、天線1413、存儲裝置1414、圖形子系統(tǒng)1415、應用1416和/或無線電1418的任意組合。芯片組1405可以提供處理器1410、存儲器1412、存儲裝置1414、圖形子系統(tǒng)1415、應用1416和/或無線電1418當中的互相通信。例如,芯片組1405可以包括能夠提供與存儲裝置1414的相互通信的存儲適配器(未描繪)。
處理器1410可以實施為復雜指令集計算機(cisc)或精簡指令集計算機(risc)處理器、x86指令集兼容處理器、多核或者任意其他微處理器或中央處理單元(cpu)。在各種實施方式中,處理器1410可以是(多個)雙核處理器、(多個)雙核移動處理器等。
存儲器1412可以實施為易失性存儲器裝置,諸如但不限于,隨機存取存儲器(ram)、動態(tài)隨機存取存儲器(dram)或靜態(tài)ram(sram)。
存儲裝置1414可以實施為非易失性存儲裝置,諸如但不限于,磁盤驅動、光盤驅動、磁帶驅動、內部存儲裝置、附接存儲裝置、閃速存儲器、電池備份sdram(同步dram)和/或網(wǎng)絡可訪問存儲裝置。在各種實施方式中,存儲裝置1414可以包括用于在例如包括多個硬驅動時增加對于有價值數(shù)字媒體的存儲性能增強保護的技術。
圖形子系統(tǒng)1415可以執(zhí)行諸如靜態(tài)或視頻的圖像的處理以用于顯示。圖形子系統(tǒng)1415可以是例如圖形處理單元(gpu)或視頻處理單元(vpu)。模擬或數(shù)字接口可以用于可通信地耦合圖形子系統(tǒng)1415和顯示器1420。例如,接口可以是高清多媒體接口、顯示端口、無線hdmi和/或遵從無線hd技術中的任一種。圖形子系統(tǒng)1415可以集成到處理器1410或芯片組1405中。在一些實施方式中,圖形子系統(tǒng)1415可以是可通信地耦合到芯片組1405的獨立裝置。
在此描述的圖形和/或視頻處理技術可以以各種硬件架構來實施。例如,圖形和/或視頻功能性可以集成在芯片組內??商鎿Q地,可以使用分立的圖形和/或視頻處理器。作為又一實施方式,圖形和/或視頻功能可以由包括多核處理器的通用處理器來提供。在另外實施例中,功能可以在消費電子裝置中實施。
無線電1418可以包括能夠使用各種合適的無線通信技術來傳輸和接收信號的一個或多個無線電。這樣的技術可以涉及一個或多個無線網(wǎng)絡上的通信。示例無線網(wǎng)絡包括(但不限于)無線局域網(wǎng)(wlan)、無線個域網(wǎng)(wpan)、無線城域網(wǎng)(wman)、蜂窩網(wǎng)絡和衛(wèi)星網(wǎng)絡。在跨這樣的網(wǎng)絡的通信中,無線電1418可以根據(jù)任意版本的一個或多個可應用標準來操作。
在各種實施方式中,顯示器1420可以包括任意電視類型監(jiān)視器或顯示器。顯示器1420可以包括例如計算機顯示屏幕、觸摸屏顯示器、視頻監(jiān)視器、類電視裝置和/或電視。顯示器1420可以是數(shù)字的和/或模擬的。在各種實施方式中,顯示器1420可以是全息顯示器。而且,顯示器1420可以是可以接收視覺投影的透明表面。這樣的投影可以傳遞各種形式的信息、圖像和/或對象。例如,這樣的投影可以是用于移動增強現(xiàn)實(mar)應用的視覺覆蓋。在一個或多個軟件應用1416的控制下,平臺1402可以在顯示器1420上顯示用戶界面1422。
在各種實施方式中,(多個)內容服務裝置1430可以由任意全國性的、國際性的和/或獨立的服務托管并且因此對于平臺1402來說是經(jīng)由例如因特網(wǎng)可訪問的。(多個)內容服務裝置1430可以被耦合至平臺1402和/或顯示器1420。平臺1402和/或(多個)內容服務裝置1430可以被耦合至網(wǎng)絡1460以傳送(例如,發(fā)送和/或接收)去往和來自網(wǎng)絡1460的媒體信息。(多個)內容遞送裝置1440還可以被耦合至平臺1402和/或顯示器1420。
在各種實施方式中,(多個)內容服務裝置1430可以包括有線電視盒、個人計算機、網(wǎng)絡、電話、因特網(wǎng)使能的裝置或能夠輸送數(shù)字信息和/或內容的器材,以及能夠經(jīng)由網(wǎng)絡1460或直接地在內容提供者和平臺1402和/或顯示器1420之間單向或雙向地傳送內容的任意其他類似的裝置。將領會內容可以經(jīng)由網(wǎng)絡1460單向和/或雙向地傳送至和傳送自系統(tǒng)1400中的任意一個部件和內容提供者。內容的示例可以包括任意的媒體信息,包括例如視頻、音樂、醫(yī)療和游戲信息等。
(多個)內容服務裝置1430可以接收內容,諸如有線電視節(jié)目,包括媒體信息、數(shù)字信息和/或其他內容。內容提供者的示例可以包括任意有線或衛(wèi)星電視或無線電或因特網(wǎng)內容提供者。所提供的示例并不意味著以任意方式限制根據(jù)本公開的實施方式。
在各種實施方式中,平臺1402可以接收來自具有一個或多個導航特征的導航控制器1450的控制信號??刂破?450的導航特征可以被用于與例如用戶接口1422交互。在各種實施例中,導航控制器1450可以是定點裝置,其可以是允許用戶把空間(例如,連續(xù)的和多維的)數(shù)據(jù)輸入至計算機的計算機硬件組件(特別是人性化接口裝置)。許多系統(tǒng)(諸如圖形用戶接口(gui)、和電視以及監(jiān)視器)允許用戶使用物理姿勢控制數(shù)據(jù)并把數(shù)據(jù)提供至計算機或電視。
可以利用顯示在顯示器上的指針、光標、聚焦環(huán)或其他可視指示器的移動來把導航控制器1450的導航特征的移動重現(xiàn)在顯示器(例如顯示器1420)上。例如,在軟件應用1416的控制下,位于導航控制器1450上的導航特征可以被映射到例如顯示在用戶接口1422上的虛擬導航特征。在各種實施例中,導航控制器1450可以不是單獨的組件而是可以被集成在平臺1402和/或顯示器1420中。然而,本公開不限于這些元件或者在此示出或描述的上下文中。
在各種實施方式中,驅動器(未示出)可以包括使得例如在初始引導之后、當被啟用時用戶能夠通過觸摸按鈕來即時地接通和關斷平臺1402(比如電視)的技術。程序邏輯可以允許平臺1402在平臺被“關斷”時把內容流式傳送至媒體適配器或(多個)其他內容服務裝置1430或(多個)內容輸送裝置1440。此外,芯片組1405可以包括支持例如5.1環(huán)繞聲音頻和/或高清7.1環(huán)繞聲音頻的硬件和/或軟件。驅動器可以包括用于集成圖形平臺的圖形驅動器。在各種實施例中,圖形驅動器可以包括快速外圍部件互連(pci)圖形卡。
在各種實施方式中,系統(tǒng)1400中所示的組件中的任意一個或多個可以被集成。例如,平臺1402和(多個)內容服務裝置1430可以被集成,或者平臺1402和(多個)內容輸送裝置1440可以被集成,或者例如平臺1402、(多個)內容服務裝置1430和(多個)內容輸送裝置1440可以被集成。在各種實施例中,平臺1402和顯示器1420可以是集成的單元。例如,顯示器1420和(多個)內容服務裝置1430可以被集成,或者顯示器1420和(多個)內容輸送裝置1440可以被集成。這些示例不意味著限制本公開。
在各種實施例中,系統(tǒng)1400可以被實施為無線系統(tǒng)、有線系統(tǒng)或這兩者的組合。當被實施為無線系統(tǒng)時,系統(tǒng)1400可以包括適合于在無線共享介質上通信的組件和接口,諸如一個或多個天線、發(fā)射器、接收器、收發(fā)器、放大器、濾波器和控制邏輯等。無線共享介質的示例可以包括無線頻譜的部分,諸如rf頻譜等。當被實施為有線系統(tǒng)時,系統(tǒng)1400可以包括適合于在有線通信介質上通信的組件和接口,諸如輸入/輸出(i/o)適配器、用以把i/o適配器與相對應的有線通信介質連接的物理連接器、網(wǎng)絡接口卡(nic)、盤控制器、視頻控制器、音頻控制器等。有線通信介質的示例可以包括布線、線纜、金屬引線、印刷電路板(pcb)、底板、交換機結構、半導體材料、雙絞線、同軸線纜、光纖等。
平臺1402可以建立一個或多個邏輯或物理信道以傳送信息。信息可以包括媒體信息和控制信息。媒體信息可以指代表示對于用戶有意義的內容的任意數(shù)據(jù)。內容的示例可以包括例如,來自以下的數(shù)據(jù):語音通話、視頻會議、流視頻、電子郵件(“email”)消息、語音信箱消息、字母數(shù)字符號、圖形、圖像、視頻、文本等。來自語音通話的數(shù)據(jù)可以是例如,話音信息、靜寂時段、背景噪聲、舒適噪聲、音調等??刂菩畔⒖梢灾复硎久?、指令或對于自動化系統(tǒng)有意義的控制字的任意數(shù)據(jù)。例如,控制信息可以被用于將媒體信息路由通過系統(tǒng),或者指令節(jié)點以預定的方式處理媒體信息。然而,實施例不限制于圖14中示出或描述的元件或上下文中。
如上面描述那樣,系統(tǒng)1400可以體現(xiàn)為變化的物理樣式或形狀因子。圖15圖示根據(jù)本公開的至少一些實施方式布置的示例小形狀因子裝置1500。在一些示例中,系統(tǒng)1400可以經(jīng)由裝置1500來實施。在其他示例中,成像裝置101、系統(tǒng)900或其部分可以經(jīng)由裝置1500來實施。在各種實施例中,例如,裝置1500可以實施為具有無線能力的移動計算裝置。例如,移動計算裝置可以指代具有處理系統(tǒng)以及移動電源或供應(諸如一個或多個電池)的任意裝置。
移動計算裝置的示例可以包括個人計算機(pc)、膝上型計算機、超級膝上型計算機、平板計算機、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數(shù)字助理(pda)、蜂窩電話、組合蜂窩電話/pda、智能裝置(例如,智能電話、智能平板或智能移動電視)、移動互聯(lián)網(wǎng)裝置(mid)、消息傳送裝置、數(shù)據(jù)通信裝置、相機(例如,傻瓜相機、超變焦相機、數(shù)字單反(dslr)相機)等。
移動計算裝置的示例還可以包括布置為由人穿戴的計算機,諸如腕上計算機、指上計算機、指環(huán)計算機、眼鏡計算機、皮帶夾計算機、臂帶計算機、鞋上計算機、衣服計算機和其他可穿戴計算機。在各種實施例中,例如,移動計算裝置可以實施為能夠執(zhí)行計算機應用,以及語音通信和/或數(shù)據(jù)通信的智能電話。雖然一些實施例可以利用作為舉例實施為智能電話的移動計算裝置來描述,但可以意識到,也可以使用其他無線移動計算裝置來實施其他實施例。實施例不限于這一上下文。
如圖15所示,裝置1500可以包括具有前部1501和后部1502的殼體。裝置1500包括顯示器1504、輸入/輸出(i/o)裝置1506以及集成天線1508。裝置1500還可以包括導航特征1512。i/o裝置1506可以包括用于將信息錄入移動計算裝置中的任意合適i/o裝置。用于i/o裝置1506的示例可以包括字符數(shù)字鍵盤、數(shù)字小鍵盤、觸摸板、輸入鍵、按鈕、開關、麥克風、揚聲器、語音識別裝置以及軟件等。信息也可以通過麥克風(未示出)的方式錄入到裝置1500中,或者可以通過語音識別裝置來數(shù)字化。如所示,裝置1500可以包括集成到裝置1500的后部1502(或別處)的相機1505(例如,包括透鏡、孔和成像傳感器)以及閃光燈1510。在其他示例中,相機1505和閃光燈1510可以集成到裝置1500的前部1501,或者可以提供前部相機和后部相機兩者。相機1505和閃光燈1510可以是相機模塊的組件,用于創(chuàng)造處理為流視頻的圖像數(shù)據(jù),輸送流視頻輸出至顯示器1504和/或經(jīng)由例如天線1508從裝置1500遠程傳送。
可以使用硬件元件、軟件元件或者兩者的組合來實施各種實施例。硬件元件的示例可以包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路(asic)、可編程邏輯器件(pld)、數(shù)字信號處理器(dsp)、現(xiàn)場可編程門陣列(fpga)、邏輯門、寄存器、半導體器件、芯片、微芯片、芯片組等。軟件的示例可以包括軟件組件、程序、應用、計算機程序、應用程序、系統(tǒng)程序、機器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、功能、方法、過程、軟件接口、應用程序接口(api)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、詞語、值、符號或它們的任意組合。確定是否使用硬件元件和/或軟件元件來實施實施例可能依照任意數(shù)目的因素(諸如,期望的計算速率、電力水平、熱承受力、處理周期預算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度以及其它設計或性能約束)而變化。
可以通過存儲在機器可讀介質上的代表性指令來實施至少一個實施例的一個或多個方面,所述指令表示處理器內的各種邏輯,當由機器讀取時該指令引起機器構建起邏輯以執(zhí)行在此描述的技術。稱為ip核心的這樣的表示可以被存儲在有形的機器可讀的介質上并且被供應至各個客戶或制造機構以加載到實際地制作邏輯或處理器的制備機器中。
雖然已經(jīng)參照各種實施方式描述了在此闡述的特定特征,但本說明書并不意圖在限制性意義上解釋。因此,對于本公開所屬的技術領域的技術人員來說清楚的在此描述的實施方式以及其他實施方式的各種修改視為落入本公開的精神和范圍內。
以下示例涉及進一步實施例。
在一個或多個第一實施例中,一種用于提供運動估計的計算機實施方法包括:針對具有多個區(qū)的像素塊,確定種子運動向量;生成針對所述像素塊的畸變網(wǎng)格,其中所述畸變網(wǎng)格包括與所述多個區(qū)、所述種子運動向量以及多個候選運動向量相關聯(lián)的多個畸變值,所述多個候選運動向量與所述種子運動向量相關聯(lián);以及基于所述畸變網(wǎng)格,確定用于所述像素塊的最佳運動向量。
進一步針對第一實施例,所述多個畸變值中的每個與所述多個區(qū)中的一個區(qū)以及所述多個候選運動向量中的一個候選運動向量相關聯(lián),其中,所述多個候選運動向量包括所述種子運動向量。
進一步針對第一實施例,所述像素塊包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第一實施例,所述多個區(qū)中的第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第一實施例,所述像素塊包括正方形形狀、矩形形狀或三角形形狀中的至少一個,和/或所述多個區(qū)中的第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第一實施例,生成所述畸變網(wǎng)格包括基于與所述第一區(qū)相關聯(lián)的第一像素區(qū)掩蔽,來禁用所述第一區(qū)的像素的子集。
進一步針對第一實施例,生成所述畸變網(wǎng)格包括對于基于塊的運動估計引擎的多個調用,并且所述多個調用中的每一個包括所述種子運動向量。
進一步針對第一實施例,生成所述畸變網(wǎng)格包括對于基于塊的運動估計引擎的多個調用,所述多個調用中的每一個包括所述種子運動向量,并且對于所述基于塊的運動估計引擎的多個調用包括對于所述多個區(qū)中的每個區(qū)的調用。
進一步針對第一實施例,生成所述畸變網(wǎng)格包括對于基于塊的運動估計引擎的多個調用,所述多個調用中的每一個包括所述種子運動向量,和/或對于所述基于塊的運動估計引擎的多個調用包括對于所述多個區(qū)中的每個區(qū)的調用。
進一步針對第一實施例,確定所述種子運動向量包括:對所述像素塊和參考像素區(qū)域進行下采樣,以及基于所下采樣的像素塊和參考像素區(qū)域,來生成所述種子運動向量。
進一步針對第一實施例,所述方法還包括:生成針對所述像素塊的第二畸變網(wǎng)格,其中所述第二畸變網(wǎng)格包括與所述多個區(qū)、所述最佳運動向量以及多個第二候選運動向量相關聯(lián)的多個第二畸變值,所述多個第二候選運動向量與所述最佳運動向量相關聯(lián);以及基于所述第二畸變網(wǎng)格,來確定用于所述像素塊的增強分辨率最佳運動向量。
進一步針對第一實施例,確定所述最佳運動向量包括從多個畸變求和值中確定最小畸變求和值,其中所述多個畸變求和值中的每一個與所述多個候選運動向量中的一個候選運動向量或者所述種子運動向量相關聯(lián)。
進一步針對第一實施例,所述種子運動向量是整數(shù)運動向量并且所述多個候選運動向量是半像素運動向量。
進一步針對第一實施例,所述種子運動向量是半像素運動向量并且所述多個候選運動向量是四分之一像素運動向量。
在一個或多個第二實施例中,一種用于提供運動估計的系統(tǒng)包括:存儲器,配置為接收包括具有多個區(qū)的像素塊的圖像幀;耦合于所述存儲器的運動估計引擎電路;以及耦合于所述運動估計引擎電路的控制器電路,所述控制器電路用于基于對所述運動估計引擎電路的多個調用,來生成針對所述像素塊的畸變網(wǎng)格,其中,所述畸變網(wǎng)格包括與所述多個區(qū)、種子運動向量以及多個候選運動向量相關聯(lián)的多個畸變值,所述多個候選運動向量與所述種子運動向量相關聯(lián),所述控制器電路并且用于基于所述畸變網(wǎng)格來確定最佳運動向量,并且所述運動估計引擎電路用于基于來自所述控制器電路的第一調用來生成所述多個畸變值中的并且與所述多個區(qū)中的第一區(qū)相關聯(lián)的畸變值的第一陣列。
進一步針對第二實施例,所述多個畸變值中的每個與所述多個區(qū)中的一個區(qū)以及所述多個候選運動向量中的一個候選運動向量相關聯(lián),并且所述多個候選運動向量包括所述種子運動向量。
進一步針對第二實施例,所述像素塊包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第二實施例,所述多個區(qū)中的所述第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第二實施例,用于生成所述第一陣列的畸變值的運動估計引擎電路包括用于基于與所述第一區(qū)相關聯(lián)的第一像素區(qū)掩蔽來禁用所述第一區(qū)的像素的子集的運動估計引擎電路。
進一步針對第二實施例,所述多個區(qū)中的所述第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個,所述多個區(qū)中的所述第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個,和/或生成畸變網(wǎng)格包括基于與所述第一區(qū)相關聯(lián)的第一像素區(qū)掩蔽來禁用所述第一區(qū)的像素的子集。
進一步針對第二實施例,所述多個調用中的每一個包括所述種子運動向量。
進一步針對第二實施例,所述系統(tǒng)還包括:用于對所述像素塊和參考像素區(qū)域進行下采樣的下采樣電路,所述運動估計引擎電路用于基于所下采樣的像素塊和參考像素區(qū)域來生成下采樣的種子運動向量,并且所述控制器電路用于基于所述下采樣的種子運動向量來確定所述種子運動向量。
進一步針對第二實施例,所述控制器電路還用于基于對所述運動估計引擎電路的多個第二調用來生成針對所述像素塊的第二畸變網(wǎng)格,所述第二畸變網(wǎng)格包括與所述多個區(qū)、所述最佳運動向量以及多個第二候選運動向量相關聯(lián)的多個第二畸變值,所述多個第二候選運動向量與所述最佳運動向量相關聯(lián),所述控制器電路并且用于基于所述第二畸變網(wǎng)格來確定用于所述像素塊的增強分辨率最佳運動向量。
進一步針對第二實施例,用于確定最佳運動向量的控制器電路包括用于從多個畸變求和值中確定最小畸變求和值的控制器電路,并且所述多個畸變求和值中的每一個與所述多個候選運動向量中的一個候選運動向量或者所述種子運動向量相關聯(lián)。
進一步針對第二實施例,所述種子運動向量是整數(shù)運動向量并且所述多個候選運動向量是半像素運動向量,或者所述種子運動向量是半像素運動向量并且所述多個候選運動向量是四分之一像素運動向量。
在一個或多個第三實施例中,一種用于提供運動估計的系統(tǒng)包括:用于針對具有多個區(qū)的像素塊確定種子運動向量的構件;用于生成針對所述像素塊的畸變網(wǎng)格的構件,其中所述畸變網(wǎng)格包括與所述多個區(qū)、所述種子運動向量以及多個候選運動向量相關聯(lián)的多個畸變值,所述多個候選運動向量與所述種子運動向量相關聯(lián);以及用于基于所述畸變網(wǎng)格來確定用于所述像素塊的最佳運動向量的構件。
進一步針對第三實施例,所述多個畸變值中的每個與所述多個區(qū)中的一個區(qū)以及所述多個候選運動向量中的一個候選運動向量相關聯(lián),并且所述多個候選運動向量包括所述種子運動向量。
進一步針對第三實施例,所述像素塊包括正方形形狀、矩形形狀或三角形形狀中的至少一個,并且其中所述多個區(qū)中的第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第三實施例,用于生成所述畸變網(wǎng)格的構件包括用于基于與所述第一區(qū)相關聯(lián)的第一像素區(qū)掩蔽來禁用所述第一區(qū)的像素的子集的構件。
進一步針對第三實施例,用于生成所述畸變網(wǎng)格的構件包括用于對于基于塊的運動估計引擎提供多個調用的構件,所述多個調用中的每一個包括所述種子運動向量,并且對于所述基于塊的運動估計引擎的所述多個調用包括對于所述多個區(qū)中的每個區(qū)的調用。
進一步針對第三實施例,用于確定所述種子運動向量的構件包括:用于對所述像素塊和參考像素區(qū)域進行下采樣的構件,以及用于基于所下采樣的像素塊和參考像素區(qū)域來生成所述種子運動向量的構件。
進一步針對第三實施例,所述系統(tǒng)還包括:用于生成針對所述像素塊的第二畸變網(wǎng)格的構件,其中所述第二畸變網(wǎng)格包括與所述多個區(qū)、所述最佳運動向量以及多個第二候選運動向量相關聯(lián)的多個第二畸變值,所述多個第二候選運動向量與所述最佳運動向量相關聯(lián);以及用于基于所述第二畸變網(wǎng)格來確定用于所述像素塊的增強分辨率最佳運動向量的構件。
進一步針對第三實施例,用于確定所述最佳運動向量的構件包括用于從多個畸變求和值中確定最小畸變求和值的構件,并且所述多個畸變求和值中的每一個與所述多個候選運動向量中的一個候選運動向量或者所述種子運動向量相關聯(lián)。
進一步針對第三實施例,所述種子運動向量是整數(shù)運動向量并且所述多個候選運動向量是半像素運動向量,或者所述種子運動向量是半像素運動向量并且所述多個候選運動向量是四分之一像素運動向量。
在一個或多個第四實施例中,至少一個機器可讀介質包括多個指令,所述多個指令響應于在計算裝置上執(zhí)行而使所述計算裝置通過以下步驟來提供運動估計:針對具有多個區(qū)的像素塊,確定種子運動向量;生成針對所述像素塊的畸變網(wǎng)格,其中所述畸變網(wǎng)格包括與所述多個區(qū)、所述種子運動向量以及多個候選運動向量相關聯(lián)的多個畸變值,所述多個候選運動向量與所述種子運動向量相關聯(lián);以及基于所述畸變網(wǎng)格,來確定用于所述像素塊的最佳運動向量。
進一步針對第四實施例,所述多個畸變值中的每個與所述多個區(qū)中的一個區(qū)以及所述多個候選運動向量中的一個候選運動向量相關聯(lián),其中,所述多個候選運動向量包括所述種子運動向量。
進一步針對第四實施例,所述像素塊包括正方形形狀、矩形形狀或三角形形狀中的至少一個,并且所述多個區(qū)中的第一區(qū)包括正方形形狀、矩形形狀或三角形形狀中的至少一個。
進一步針對第四實施例,生成所述畸變網(wǎng)格包括基于與所述第一區(qū)相關聯(lián)的第一像素區(qū)掩蔽,來禁用所述第一區(qū)的像素的子集。
進一步針對第四實施例,生成所述畸變網(wǎng)格包括對于基于塊的運動估計引擎的多個調用,并且所述多個調用中的每一個包括所述種子運動向量。
進一步針對第四實施例,確定所述種子運動向量包括:對所述像素塊和參考像素區(qū)域進行下采樣,以及基于所下采樣的像素塊和參考像素區(qū)域,來生成所述種子運動向量。
進一步針對第四實施例,所述機器可讀介質包括另外的指令,所述另外的指令響應于在計算裝置上執(zhí)行而使所述計算裝置通過以下步驟來提供運動估計:生成針對所述像素塊的第二畸變網(wǎng)格,其中所述第二畸變網(wǎng)格包括與所述多個區(qū)、所述最佳運動向量以及多個第二候選運動向量相關聯(lián)的多個第二畸變值,所述多個第二候選運動向量與所述最佳運動向量相關聯(lián);以及基于所述第二畸變網(wǎng)格,來確定用于所述像素塊的增強分辨率最佳運動向量。
進一步針對第四實施例,確定所述最佳運動向量包括從多個畸變求和值中確定最小畸變求和值,其中所述多個畸變求和值中的每一個與所述多個候選運動向量中的一個候選運動向量或者所述種子運動向量相關聯(lián)。
進一步針對第四實施例,所述種子運動向量是整數(shù)運動向量并且所述多個候選運動向量是半像素運動向量,或者所述種子運動向量是半像素運動向量并且所述多個候選運動向量是四分之一像素運動向量。
在一個或多個第五實施例中,至少一個機器可讀介質可以包括多個指令,所述多個指令響應于在計算裝置上執(zhí)行,使所述計算裝置執(zhí)行根據(jù)以上實施例中的任一個的方法。
在一個或多個第六實施例中,一種設備可以包括用于執(zhí)行根據(jù)以上實施例中的任一個的方法的構件。
將認識到,本發(fā)明不限于所描述的實施例,而是可以在不偏離所附權利要求的范圍的情況下以修改和替代方案來實踐。例如,以上實施例可以包括特征的具體組合。然而,以上實施例不限于此,并且在各種實施方式中,以上實施例可以包括進行這樣的特征的子集、進行這樣的特征的不同順序、進行這樣的特征的不同組合,和/或進行不同于那些明確列出的特征的附加特征。因此,本發(fā)明的范圍應該參照所附權利要求連同這樣的權利要求被賦予給的等同物的全部范圍來確定。