由于成像技術(shù)的進(jìn)步,人們比以往任何時(shí)候拍攝更多的視頻和圖片。但是由于曝光不足或過(guò)度、抖動(dòng)、各種形式的噪聲等,視頻和圖片中的缺陷是常見(jiàn)的。這些缺陷的原因包括捕捉設(shè)備(例如,視頻在沒(méi)有三腳架的相機(jī)手機(jī)上捕捉)的環(huán)境(例如,低光或噪聲環(huán)境)。這樣的缺陷可在事后被校正,但是普通用戶可能不熟悉用于校正的方法和工具。此外,常規(guī)的視頻編輯工具可能受到它們校正這些缺陷的能力的限制。例如,與應(yīng)用于單個(gè)幀相反,許多工具將校正設(shè)置應(yīng)用于視頻的所有幀,但是這樣的校正在視頻的整個(gè)持續(xù)期間上可能不是最佳的。此外,許多工具需要多遍,每遍都包括耗時(shí)和消耗存儲(chǔ)器的解碼步驟,所有這些都導(dǎo)致不能向用戶提供校正幀的即時(shí)預(yù)覽。
概述
本部分中提供的概述總結(jié)了本發(fā)明的一個(gè)或多個(gè)部分或完整的示例實(shí)施例,以便向讀者提供基本的高級(jí)理解。本概述不是本發(fā)明的詳盡描述,并且可能不標(biāo)識(shí)本發(fā)明的關(guān)鍵元素或方面,也不描述本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化的形式呈現(xiàn)本發(fā)明的各個(gè)方面,作為下面提供的詳細(xì)描述的序言。
本發(fā)明包括用于使用時(shí)間平滑來(lái)增強(qiáng)視頻質(zhì)量的單遍過(guò)程的技術(shù)。該過(guò)程可包括提供自動(dòng)增強(qiáng)的視頻/幀特性的用戶超馳,并向用戶提供增強(qiáng)的視頻幀的基本上即時(shí)的預(yù)覽。該過(guò)程還可包括檢測(cè)視頻的一部分中的抖動(dòng)程度,以及基于檢測(cè)到的抖動(dòng)來(lái)執(zhí)行或推薦穩(wěn)定性。
通過(guò)結(jié)合附圖參考以下提供的詳細(xì)描述,可易于領(lǐng)會(huì)并更好地理解許多附帶特征。
附圖簡(jiǎn)述
當(dāng)結(jié)合附圖考慮時(shí),將更好地理解下面提供的詳細(xì)描述,其中:
圖1是示出其中可以實(shí)現(xiàn)此處所描述的發(fā)明的示例計(jì)算環(huán)境的框圖。
圖2是示出被配置用于增強(qiáng)視頻質(zhì)量的示例系統(tǒng)的框圖。
圖3是示出被配置用于分析幀以得到幀的校正數(shù)據(jù)的示例幀分析器的框圖。
圖4是示出用于自動(dòng)增強(qiáng)視頻質(zhì)量的示例方法的框圖。
圖5是示出用于為幀的特定特性生成校正曲線的示例方法的框圖。
圖6是示出示例校正曲線的圖。
圖7是示出用于平滑幀的特性的差異的示例方法的框圖。
圖8是示例視頻的幀的示例圖。
圖9是示出用于針對(duì)“抖動(dòng)”分析視頻的至少一部分的示例方法800的圖。
不同附圖中的相同編號(hào)的標(biāo)記被用來(lái)指定附圖中的類似或相同的元素或步驟。
詳細(xì)描述
在本部分中結(jié)合附圖提供的詳細(xì)描述描述了本發(fā)明的一個(gè)或多個(gè)部分或完整的示例實(shí)施例,但是不旨在描述本發(fā)明的所有可能的實(shí)施例。該詳細(xì)描述給出了本發(fā)明的技術(shù)、系統(tǒng)和/或方法中的至少一些的各種示例。然而,根據(jù)示例也可實(shí)現(xiàn)相同或等價(jià)的技術(shù)、系統(tǒng)和/或方法。
雖然本文提供的示例被描述并示出為可在計(jì)算環(huán)境中實(shí)現(xiàn),但是所描述的環(huán)境僅僅是作為示例而非限制來(lái)提供的。本領(lǐng)域的技術(shù)人員將會(huì)明白,所公開(kāi)的示例適合在各種不同類型的計(jì)算環(huán)境中的實(shí)現(xiàn)。
圖1是示出其中可以實(shí)現(xiàn)此處所描述的發(fā)明的示例計(jì)算環(huán)境100的框圖。合適的計(jì)算環(huán)境可用多種通用或?qū)S孟到y(tǒng)來(lái)實(shí)現(xiàn)。公知系統(tǒng)的示例可包括但不限于蜂窩電話、個(gè)人數(shù)字助理(“PDA”)、個(gè)人計(jì)算機(jī)(“PC”)、手持式或膝上型設(shè)備、基于微處理器的系統(tǒng)、多處理器系統(tǒng)、片上系統(tǒng)(“SOC”)、服務(wù)器、互聯(lián)網(wǎng)服務(wù)、工作站、消費(fèi)電子設(shè)備、手機(jī)、機(jī)頂盒等。在所有情況下,這樣的系統(tǒng)嚴(yán)格地限于制品等。
計(jì)算環(huán)境100通常包括耦合到諸如外圍設(shè)備102、103、101等各種組件的計(jì)算設(shè)備101形式的通用計(jì)算系統(tǒng)。這些可包括諸如可經(jīng)由一個(gè)或多個(gè)輸入/輸出(“I/O”)接口112操作的輸入設(shè)備103的組件,其包括語(yǔ)音識(shí)別、觸摸板、按鈕、鍵盤、和/或諸如鼠標(biāo)或軌跡球的指示設(shè)備。計(jì)算設(shè)備101的組件可包括一個(gè)或多個(gè)處理器(包括中央處理單元(“CPU”)、圖形處理單元(“GPU”)、微處理器(“μP”)等)107、系統(tǒng)存儲(chǔ)器109、以及通常耦合各組件的系統(tǒng)總線108。(多個(gè))處理器107通常處理或執(zhí)行各種計(jì)算機(jī)可執(zhí)行指令,并且基于那些指令控制計(jì)算設(shè)備101的操作。這可包括計(jì)算設(shè)備101經(jīng)由諸如網(wǎng)絡(luò)連接114等的各種通信技術(shù)與其他電子和/或計(jì)算設(shè)備、系統(tǒng)或環(huán)境(未示出)通信。系統(tǒng)總線108表示任何數(shù)量的總線結(jié)構(gòu),包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、串行總線、加速圖形端口、使用各種總線體系結(jié)構(gòu)中的任一種的處理器或局部總線等等。
系統(tǒng)存儲(chǔ)器109可包括諸如隨機(jī)存取存儲(chǔ)器(“RAM”)等易失性存儲(chǔ)器形式的和/或諸如只讀存儲(chǔ)器(“ROM”)或閃存(“FLASH”)等非易失性存儲(chǔ)器形式的計(jì)算機(jī)可讀介質(zhì)?;据斎?輸出系統(tǒng)(“BIOS”)可以存儲(chǔ)在非易失性等中。系統(tǒng)存儲(chǔ)器109通常存儲(chǔ)數(shù)據(jù)、計(jì)算機(jī)可執(zhí)行指令和/或包括計(jì)算機(jī)可執(zhí)行指令的程序模塊,包括可由一個(gè)或多個(gè)處理器107立即訪問(wèn)或目前正在其上操作的計(jì)算機(jī)可執(zhí)行指令。
大容量存儲(chǔ)設(shè)備104和110可耦合到計(jì)算設(shè)備101,或者經(jīng)由耦合到系統(tǒng)總線而合并到計(jì)算設(shè)備101中。這些大容量存儲(chǔ)設(shè)備104和110可包括非易失性RAM;對(duì)可移動(dòng)、非易失性磁盤(例如“軟盤”)105進(jìn)行讀和/或?qū)懙拇疟P驅(qū)動(dòng)器;和/或?qū)χT如CD ROM、DVD ROM 106等非易失性光盤進(jìn)行讀和/或?qū)懙墓獗P驅(qū)動(dòng)器?;蛘?,諸如硬盤110等大容量存儲(chǔ)設(shè)備可包括不可移動(dòng)存儲(chǔ)介質(zhì)。其它大容量存儲(chǔ)設(shè)備可包括存儲(chǔ)卡、記憶棒、磁帶存儲(chǔ)設(shè)備等。
任何數(shù)量的計(jì)算機(jī)程序、文件、數(shù)據(jù)結(jié)構(gòu)等可被存儲(chǔ)在大容量存儲(chǔ)110、其它存儲(chǔ)設(shè)備104、105、106以及系統(tǒng)存儲(chǔ)器109(通常受可用空間限制)上,作為示例而非限制,包括操作系統(tǒng)、應(yīng)用程序、數(shù)據(jù)文件、目錄結(jié)構(gòu)、計(jì)算機(jī)可執(zhí)行指令等。
諸如顯示設(shè)備102等輸出組件或設(shè)備可通常經(jīng)由諸如顯示適配器111等接口耦合到計(jì)算設(shè)備101。輸出設(shè)備102可以是液晶顯示器(“LCD”)。其它示例輸出設(shè)備可包括打印機(jī)、音頻輸出、語(yǔ)音輸出、陰極射線管(“CRT”)顯示器、觸覺(jué)設(shè)備或其它傳感輸出機(jī)制等等。輸出設(shè)備可以使計(jì)算設(shè)備101能夠與人類操作員或其他機(jī)器、系統(tǒng)、計(jì)算環(huán)境等進(jìn)行交互。用戶可以經(jīng)由諸如觸摸墊、按鈕、鍵盤、鼠標(biāo)、操縱桿、游戲手柄、數(shù)據(jù)端口等任何數(shù)量的不同I/O設(shè)備100來(lái)與計(jì)算環(huán)境103進(jìn)行接口。這些和其它I/O設(shè)備可以經(jīng)由耦合到系統(tǒng)總線107的I/O接口112來(lái)耦合到處理器108,和/或可以經(jīng)由諸如串行端口、游戲端口、通用串行總線(“USB”)、火線、紅外(“IR”)端口等其它接口和總線結(jié)構(gòu)來(lái)耦合。
計(jì)算設(shè)備101可以經(jīng)由通過(guò)一個(gè)或多個(gè)蜂窩網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)、局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)、存儲(chǔ)區(qū)域網(wǎng)絡(luò)(“SAN”)、因特網(wǎng)、無(wú)線電鏈路、光學(xué)鏈路等到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算設(shè)備的通信連接來(lái)在網(wǎng)絡(luò)化環(huán)境中操作。計(jì)算設(shè)備101可經(jīng)由網(wǎng)絡(luò)適配器113等,或作為替換,經(jīng)由調(diào)制解調(diào)器、數(shù)字用戶線(“DSL”)鏈路、綜合業(yè)務(wù)數(shù)字網(wǎng)(“ISDN”)鏈路、因特網(wǎng)鏈路、無(wú)線鏈路等來(lái)耦合到網(wǎng)絡(luò)。
諸如網(wǎng)絡(luò)連接等通信連接114通常提供到諸如網(wǎng)絡(luò)等通信介質(zhì)的耦合。通信介質(zhì)通常使用諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)提供計(jì)算機(jī)可讀以及計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、文件、程序模塊和其它數(shù)據(jù)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特性的信號(hào)。通過(guò)示例而非限制,通信介質(zhì)可包括諸如有線網(wǎng)絡(luò)或直接有線連接等之類的有線介質(zhì)、以及諸如聲、射頻(RF)、紅外或其它無(wú)線通信機(jī)制之類的無(wú)線介質(zhì)。
諸如電池或電源等的電源190通常向計(jì)算環(huán)境100的部分和全部提供電力。在計(jì)算環(huán)境100是移動(dòng)設(shè)備或便攜式設(shè)備等的情況下,電源190可以是電池。另選地,在計(jì)算環(huán)境100是臺(tái)式計(jì)算機(jī)或服務(wù)器等的情況下,電源190可以是被設(shè)計(jì)成諸如經(jīng)由墻上插座連接到交流(“AC”)源的電源。
某些移動(dòng)設(shè)備可能不包括結(jié)合圖1所描述的組合中的多個(gè)。例如,電子證件可包括線圈連同簡(jiǎn)單處理單元107等,該線圈被配置成在其靠近讀卡器設(shè)備等時(shí)用作電源190。這樣的線圈還可以被配置成用作耦合到處理單元107等的天線,該線圈天線能夠提供電子徽章和讀卡器設(shè)備之間的通信形式。這樣的通信可以不涉及聯(lián)網(wǎng),但是可替代地可以是經(jīng)由遙測(cè)、點(diǎn)對(duì)點(diǎn)、RF、IR、音頻或其他手段的通用或?qū)S猛ㄐ?。電子卡可以不包括顯示器102、I/O設(shè)備103、或結(jié)合圖1描述的其它組件中的多個(gè)??赡懿话ńY(jié)合圖1所描述的組件中的多個(gè)的其它移動(dòng)設(shè)備包括電子腕帶、電子標(biāo)簽、可移植設(shè)備等。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)到,用于提供計(jì)算機(jī)可讀和計(jì)算機(jī)可執(zhí)行的指令及數(shù)據(jù)的存儲(chǔ)設(shè)備可分布在網(wǎng)絡(luò)上。例如,遠(yuǎn)程計(jì)算機(jī)或存儲(chǔ)設(shè)備可以以軟件應(yīng)用和數(shù)據(jù)的形式存儲(chǔ)計(jì)算機(jī)可讀和計(jì)算機(jī)可執(zhí)行指令。本地計(jì)算機(jī)可以經(jīng)由該網(wǎng)絡(luò)訪問(wèn)遠(yuǎn)程計(jì)算機(jī)或存儲(chǔ)設(shè)備,并下載軟件應(yīng)用程序或數(shù)據(jù)的部分或全部并且可執(zhí)行任何計(jì)算機(jī)可執(zhí)行指令。另選地,本地計(jì)算機(jī)可按需下載軟件或數(shù)據(jù)的片斷,或者通過(guò)在本地機(jī)器執(zhí)行一些指令并且在遠(yuǎn)程計(jì)算機(jī)和/或設(shè)備執(zhí)行一些指令來(lái)分布式地處理該軟件。
本領(lǐng)域的技術(shù)人員還將認(rèn)識(shí)到,通過(guò)利用常規(guī)技術(shù),軟件的計(jì)算機(jī)可執(zhí)行指令的全部或部分可由諸如數(shù)字信號(hào)處理器(“DSP”)、可編程邏輯陣列(“PLA”)、分立電路等專用電子電路來(lái)執(zhí)行。術(shù)語(yǔ)“電子裝置”可包括含有任何軟件、固件等的計(jì)算設(shè)備或消費(fèi)電子設(shè)備,或不含有軟件、固件等的電子設(shè)備或電路。
術(shù)語(yǔ)“固件”通常指的是在諸如ROM等電子設(shè)備中維護(hù)的可執(zhí)行指令、代碼、數(shù)據(jù)、應(yīng)用、程序、程序模塊等。術(shù)語(yǔ)“軟件”通常指的是保持在任何形式或類型的計(jì)算機(jī)可讀介質(zhì)中或上的計(jì)算機(jī)可執(zhí)行指令、代碼、數(shù)據(jù)、應(yīng)用、程序、程序模塊等,其被配置用于以計(jì)算設(shè)備可訪問(wèn)的方式存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令等。如本文所使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”等嚴(yán)格地限于不是信號(hào)或載波本身的一個(gè)或多個(gè)裝置、制品等。如在權(quán)利要求中使用的術(shù)語(yǔ)“計(jì)算設(shè)備”是指諸如計(jì)算設(shè)備101的一個(gè)或多個(gè)設(shè)備,并且包括客戶端設(shè)備、移動(dòng)設(shè)備、一個(gè)或多個(gè)服務(wù)器、諸如互聯(lián)網(wǎng)服務(wù)或公司網(wǎng)絡(luò)服務(wù)等的網(wǎng)絡(luò)服務(wù)等以及這些的任何組合。
圖2是示出被配置用于具有時(shí)間平滑和用戶超馳的視頻質(zhì)量的增強(qiáng)的示例系統(tǒng)200的框圖。在一個(gè)示例中,增強(qiáng)基于對(duì)視頻的幀的一遍掃描。系統(tǒng)200包括若干模塊,這些模塊包括數(shù)據(jù)存儲(chǔ)210、幀解碼器220、(多個(gè))幀分析器230、幀校正器240和幀預(yù)覽器250。這些模塊(包括本文所描述的任何子模塊和任何其他模塊)中的每一個(gè)可以以硬件、固件、軟件(例如,作為包括計(jì)算機(jī)可執(zhí)行指令的程序模塊)或其任何組合來(lái)實(shí)現(xiàn)。每個(gè)這樣的模塊可以在一個(gè)設(shè)備(諸如計(jì)算設(shè)備)上或由一個(gè)設(shè)備(諸如計(jì)算設(shè)備)實(shí)現(xiàn),或者跨多個(gè)這樣的設(shè)備和/或服務(wù)實(shí)現(xiàn)。例如,一個(gè)模塊可以以分布式方式在多個(gè)設(shè)備(諸如網(wǎng)絡(luò)服務(wù)的服務(wù)器或元件等)上或由多個(gè)設(shè)備實(shí)現(xiàn)。此外,每個(gè)這樣的模塊(包括任何子模塊)可包括一個(gè)或多個(gè)子模塊等,并且這些模塊可被實(shí)現(xiàn)為單獨(dú)的模塊,或者可以全部或部分地組合任何兩個(gè)或更多模塊。本文所描述的模塊(包括任何子模塊)的劃分是非限制性的,并且主要旨在幫助描述本發(fā)明的各方面。如本文所使用的術(shù)語(yǔ)“視頻”通常是指數(shù)字視頻、視頻流等,并且還指代可能類似于視頻的單個(gè)幀的單個(gè)數(shù)字圖像。換句話說(shuō),本文描述的應(yīng)用于視頻幀的過(guò)程或者對(duì)視頻幀進(jìn)行操作的模塊可以附加地或替代地應(yīng)用于單個(gè)圖像和/或音頻樣本或?qū)蝹€(gè)圖像和/或音頻樣本進(jìn)行操作。
總之,系統(tǒng)200包括諸如結(jié)合圖1描述的計(jì)算設(shè)備,以及諸如結(jié)合圖2描述的模塊的至少一個(gè)程序模塊,它們一起被配置用于執(zhí)行在單遍操作中自動(dòng)地增強(qiáng)視頻質(zhì)量的動(dòng)作,以及提供用戶超馳并且向用戶提供基本上即時(shí)的增強(qiáng)的視頻幀的預(yù)覽。視頻(和/或圖像)(212)通常由一個(gè)或多個(gè)源210提供。這樣的源通常包括相機(jī)電話、數(shù)字相機(jī)、數(shù)字視頻記錄器(“DVR”)、計(jì)算機(jī)、數(shù)字相冊(cè)、社交媒體應(yīng)用或網(wǎng)站、視頻流網(wǎng)站或任何其他數(shù)字視頻源。這樣的視頻可屬于一個(gè)或多個(gè)用戶,并且可存儲(chǔ)在數(shù)據(jù)存儲(chǔ)210中,數(shù)據(jù)存儲(chǔ)210可以是系統(tǒng)200的一部分或與系統(tǒng)200分離。在一個(gè)示例中,系統(tǒng)200自動(dòng)地增強(qiáng)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)210上的視頻的質(zhì)量。
幀解碼器220是被配置用于對(duì)視頻幀進(jìn)行解碼的模塊。在一個(gè)示例中,幀解碼器220解碼視頻幀,如粗箭頭222所示提供解碼的幀,并且解碼的幀由系統(tǒng)200處理。一旦被處理,解碼的幀通常就被丟棄以便最小化存儲(chǔ)器的使用。一般地,因?yàn)橄到y(tǒng)200通常是單遍系統(tǒng),所以每個(gè)視頻幀僅被解碼一次。在某些情況下,系統(tǒng)200可以使用多遍操作,諸如當(dāng)不要求操作速度或即時(shí)預(yù)覽時(shí)。幀解碼器模塊220通常將解碼的視頻幀提供給幀分析器230和幀校正器240。
(多個(gè))幀分析器230表示各自被配置用于分析解碼的視頻幀的一個(gè)或多個(gè)特性(諸如亮度、曝光、白平衡、色度噪聲、音頻噪聲、抖動(dòng)等)的一個(gè)或多個(gè)模塊。每個(gè)幀分析器230可被配置用于分析輸入幀的一個(gè)或多個(gè)特性。一般來(lái)說(shuō),模塊230的分析可包括對(duì)作為輸入(222)提供的解碼的幀的像素進(jìn)行采樣并且生成用于輸入幀的一個(gè)或多個(gè)特性的校正數(shù)據(jù),其中校正數(shù)據(jù)作為輸出(232)被提供給幀校正器240。注意到,所提供的校正數(shù)據(jù)(232)趨向于相比提供的幀或幀數(shù)據(jù)(212、222、242)需要少得多的存儲(chǔ)空間(例如,存儲(chǔ)器)。結(jié)合圖3更詳細(xì)地描述示例幀分析器。
幀校正器240是被配置用于根據(jù)作為輸入(232)提供的校正數(shù)據(jù)校正作為輸入(222)提供的解碼的幀的模塊。校正數(shù)據(jù)(本文也稱為校正參數(shù))通常包括被校正的輸入幀的每個(gè)特性的校正曲線等。幀校正器240通常通過(guò)將提供的校正數(shù)據(jù)(232)應(yīng)用于輸入幀來(lái)執(zhí)行校正,這是每校正一幀通常會(huì)發(fā)生的過(guò)程。在一個(gè)示例中,用戶可在預(yù)覽校正的幀的同時(shí)手動(dòng)地調(diào)整一個(gè)或多個(gè)特性。這種用戶調(diào)整可被重復(fù),導(dǎo)致多次對(duì)輸入幀應(yīng)用校正數(shù)據(jù)。幀校正器240通常向幀預(yù)覽器250提供校正的幀(242)。
幀預(yù)覽器250是被配置用于使得用戶能夠預(yù)覽校正的幀的模塊。模塊250可結(jié)合(多個(gè))用戶控件350操作以使用戶能夠調(diào)整幀的特定特性的控制點(diǎn)以基本上立即預(yù)覽結(jié)果。在一個(gè)示例中,幀預(yù)覽模塊270經(jīng)由用戶界面向用戶呈現(xiàn)原始解碼的幀和/或該幀的校正版本。預(yù)覽幀或任何特定幀可以是可選的(諸如當(dāng)系統(tǒng)200以完全自動(dòng)的方式操作時(shí))。幀預(yù)覽器250可使得用戶能夠在視頻中的幀之間前進(jìn)或后退以基本上立即預(yù)覽幀。
線252通常指示可選地對(duì)幀進(jìn)行重新編碼和/或?qū)砑拥綌?shù)據(jù)存儲(chǔ)210,或用原始視頻的一些或所有已處理和重新編碼的幀替換原始視頻。
圖3是示出被配置用于導(dǎo)致幀的校正數(shù)據(jù)的幀的分析的示例幀分析器230的框圖。幀分析器230通常包括若干模塊,包括校正分析器320、校正生成器330、校正數(shù)據(jù)存儲(chǔ)340、用戶控制模塊350和時(shí)間平滑器360。一些幀分析器230可不包括所有這些模塊和/或可包括其他模塊。這些模塊中的每一個(gè)的結(jié)構(gòu)和/或功能可根據(jù)被分析的特定的幀特性而變化。
總之,每個(gè)幀分析器230被配置用于執(zhí)行輸入幀的特性的單遍分析的動(dòng)作,用于基于分析生成針對(duì)該特性的校正數(shù)據(jù),并且用于提供用戶對(duì)校正數(shù)據(jù)的控制。一般地,為要校正的每個(gè)幀特性提供一個(gè)幀分析器230。對(duì)于每個(gè)幀分析器230,通常提供解碼的幀作為輸入(222)。所生成的校正數(shù)據(jù)可被保存在存儲(chǔ)340中并且被作為輸出(232)提供。一般地,一旦幀的分析完成,就不再保留輸入幀。存儲(chǔ)340對(duì)于一些或所有幀分析器230而言可以是公共的。也就是說(shuō),可提供由一些或所有幀分析器230使用的一個(gè)存儲(chǔ)340。
校正分析器320是被配置用于分析輸入幀的特定特性(諸如亮度、曝光、白平衡、色度噪聲、音頻噪聲、抖動(dòng)等)的模塊。分析通常涉及分析輸入幀的一些或所有像素(或者一些或全部音頻樣本)。通過(guò)分析得到的數(shù)據(jù)通常被提供給校正生成器330。這種所得數(shù)據(jù)可包括表示被分析的幀特性的直方圖等。
校正生成器330是被配置用于至少基于對(duì)由校正分析器320提供的輸入幀的特性的分析產(chǎn)生的數(shù)據(jù)來(lái)生成校正數(shù)據(jù)的模塊。在一個(gè)示例中,生成的校正數(shù)據(jù)包括輸入幀的特性的校正曲線(諸如圖6中所示的曲線610)。在該示例中,生成的校正曲線是幀的特性的優(yōu)選校正曲線。
一般地,校正曲線描述輸入幀的變換。在一個(gè)示例中,兩個(gè)控制點(diǎn)與校正曲線相關(guān)聯(lián)。這些控制點(diǎn)可被用來(lái)修改來(lái)自最初生成的曲線的形狀,諸如用于根據(jù)用戶輸入或用于平滑修改來(lái)自優(yōu)選曲線的曲線的形狀。在其他示例中,可使用其他數(shù)量的控制點(diǎn)。結(jié)合圖5描述用于產(chǎn)生校正曲線的示例方法。這種方法可由校正生成器330執(zhí)行。一條校正曲線通常由每個(gè)幀分析器230生成,并且通常針對(duì)幀中被分析的每個(gè)特性生成一條校正曲線。
一旦生成校正曲線,其通常就被提供給并且保留在存儲(chǔ)器340中,并且還潛在地連同指示其應(yīng)用于的特定特性和解碼的幀的附加的校正數(shù)據(jù)一起被提供給用戶控制模塊350。另外,零校正曲線620也可傳遞到用戶控制模塊350。在各種示例中,存儲(chǔ)340僅保留來(lái)自最近的n個(gè)分析的幀中的特定特性的數(shù)據(jù)。在這樣的示例中,一旦生成用于n+1個(gè)幀的特性數(shù)據(jù),就從存儲(chǔ)340丟棄該特性的最舊的數(shù)據(jù)。因此,當(dāng)n與幀的大小相比為相對(duì)小的數(shù)量時(shí),這樣的丟棄使每個(gè)幀分析器230的數(shù)據(jù)存儲(chǔ)空間需求最小化。在一個(gè)示例中,對(duì)于單遍操作,n為5,而對(duì)于兩遍操作,n為9。
用戶控制模塊350是被配置用于使得用戶能夠操縱(諸如從校正生成器330和/或時(shí)間平滑器360接收的)校正曲線的控制點(diǎn)的模塊。如本文所使用的術(shù)語(yǔ)“用戶”是指任何類型的人或系統(tǒng)。在一個(gè)示例中,用戶可調(diào)整用戶界面中的滑塊以操縱控制點(diǎn)的位置,從而相應(yīng)地改變校正曲線的形狀。結(jié)合圖6描述這樣的控制點(diǎn)。用戶控制模塊350還可將通過(guò)的校正數(shù)據(jù)與由時(shí)間平滑器360提供的平滑特性數(shù)據(jù)相混合。用戶超馳操作可以是可選的(諸如當(dāng)系統(tǒng)200以完全自動(dòng)的方式操作時(shí))。在一個(gè)示例中,用戶超馳信息可不表示對(duì)校正曲線的形狀的絕對(duì)控制,而可僅影響形狀以及至少平滑信息。用戶操縱的校正數(shù)據(jù)通常被提供給并保留在存儲(chǔ)340中。
時(shí)間平滑器360是被配置用于相對(duì)于視頻的先前處理的幀中的特性(和/或其他特性)來(lái)平滑幀中的特性的方差的模塊。如本文所使用的術(shù)語(yǔ)“平滑”通常是指相對(duì)于先前處理的幀的特性來(lái)減小幀的特性中的突然的改變。結(jié)合圖7來(lái)描述用于平滑的示例方法。這種方法可由時(shí)間平滑器360執(zhí)行。通常獨(dú)立于幀的任何其它特性來(lái)平滑幀的一個(gè)特性。通常從存儲(chǔ)340檢索用于平滑來(lái)自當(dāng)前和/或先前處理的幀的相關(guān)校正數(shù)據(jù)。時(shí)間平滑器360通常提供校正數(shù)據(jù)作為輸出(232)并將輸出提供給用戶控制模塊350。
一種特定類型的幀分析器是抖動(dòng)分析器,所述抖動(dòng)分析器是被配置用于分析視頻的幀以確定視頻的至少一部分的抖動(dòng)程度的模塊。如本文所使用的術(shù)語(yǔ)“抖動(dòng)”等通常是指主要由于不穩(wěn)定性造成的無(wú)意移動(dòng)(諸如當(dāng)相機(jī)捕捉場(chǎng)景的同時(shí)被握持而沒(méi)有足夠的穩(wěn)定性從而導(dǎo)致抖動(dòng)的(多個(gè))圖像時(shí))。抖動(dòng)通常是捕捉設(shè)備和場(chǎng)景之間的無(wú)意的相對(duì)運(yùn)動(dòng),而不是有意的運(yùn)動(dòng)(諸如平移、縮放及場(chǎng)景中的運(yùn)動(dòng)等)。在一個(gè)示例中,將抖動(dòng)程度或抖動(dòng)分?jǐn)?shù)與閾值進(jìn)行比較,并且如果超過(guò)閾值的話,則執(zhí)行或推薦穩(wěn)定性。結(jié)合圖9描述用于確定抖動(dòng)程度的示例方法。這種方法可由抖動(dòng)分析器230執(zhí)行。
圖4是示出用于在單遍過(guò)程中自動(dòng)增強(qiáng)視頻的質(zhì)量的示例方法400的框圖。方法400還可包括提供用戶超馳并向用戶提供增強(qiáng)的視頻幀的基本上即時(shí)的預(yù)覽。這樣的方法可由系統(tǒng)200等執(zhí)行。在一個(gè)示例中,在計(jì)算設(shè)備上執(zhí)行方法400,該計(jì)算設(shè)備根據(jù)程序模塊(例如軟件)的計(jì)算機(jī)可執(zhí)行指令來(lái)控制(諸如結(jié)合圖1描述),當(dāng)由該計(jì)算設(shè)備執(zhí)行諸如結(jié)合圖2描述的那些模塊的至少一部分時(shí),致使該計(jì)算設(shè)備執(zhí)行方法400的一些或所有方面。在其他示例中,結(jié)合圖2描述的模塊可被實(shí)現(xiàn)為固件、軟件、硬件或其任何組合。作為補(bǔ)充或替換,模塊可被實(shí)現(xiàn)為片上系統(tǒng)(“SoC”)的一部分。這樣的(或類似的)可以是本文所描述的其它方法和/或模塊的情況。
步驟410通常指示解碼視頻的一個(gè)或多個(gè)幀。這樣的解碼可由幀解碼器220執(zhí)行??蓮臄?shù)據(jù)存儲(chǔ)210等選擇和/或提供(212)視頻。在一個(gè)示例中,數(shù)據(jù)存儲(chǔ)210可包括用戶的媒體集合。系統(tǒng)200可處理來(lái)自這樣的集合的一些或所有視頻,選擇一次處理一個(gè)或多個(gè)視頻。解碼通常產(chǎn)生至少一個(gè)解碼的視頻幀。解碼可替換地或附加地產(chǎn)生至少一個(gè)解碼的音頻樣本。如本文所使用的術(shù)語(yǔ)“視頻幀”可附加地或替代地指代音頻樣本。在一個(gè)示例中,系統(tǒng)200一次僅解碼和處理一個(gè)視頻幀,以便最小化存儲(chǔ)器消耗。在該示例中,雖然從處理產(chǎn)生的信息可被持久儲(chǔ)存(諸如在存儲(chǔ)340中),但是解碼的和處理的視頻幀可在解碼另一個(gè)視頻幀之前被丟棄。如果需要一個(gè)或多個(gè)先前的幀來(lái)解碼特定的視頻幀,則那些幀可被持久儲(chǔ)存直到特定的視頻幀已被解碼,此時(shí)所需的幀可被丟棄(除非它們還需要解碼下一個(gè)視頻幀)。一旦視頻幀被解碼,解碼的幀通常就被提供作為方法400的步驟420的輸入。除非上下文或描述另有指示,否則本文中使用的術(shù)語(yǔ)“幀”通常指代經(jīng)解碼的幀或樣本。一般地,由系統(tǒng)200進(jìn)行的處理需要解碼的幀等。
步驟420通常指示為幀的一個(gè)或多個(gè)特性中的每一個(gè)生成校正曲線。結(jié)合圖4提供了用于生成校正曲線的示例方法。這種生成可包括對(duì)幀進(jìn)行分析,并且可由一個(gè)或多個(gè)幀分析器230執(zhí)行。在一個(gè)示例中,步驟420的生成產(chǎn)生用于幀的特性的校正曲線,通常是優(yōu)選校正曲線。此外,可為若干幀特性中的每一個(gè)生成單獨(dú)的曲線。一旦生成校正曲線,通常就將其與指示其應(yīng)用于的特定特性和幀的信息一起保留在存儲(chǔ)器340中。此外,(多條)校正曲線通常被提供作為方法400的步驟430的輸入。如本文所使用的術(shù)語(yǔ)“優(yōu)選校正曲線”被定義成對(duì)于變換視頻的單個(gè)幀(而非包括單個(gè)幀以及其相鄰幀或視頻的所有幀的一組幀)的特性而言最正確的函數(shù)。每條這樣的校正曲線對(duì)于特定的幀特性(諸如亮度或?qū)Ρ榷然蛞恍┢渌膸匦?而言在上下文中是優(yōu)選的。
步驟430通常指示接收對(duì)校正曲線的任何用戶超馳。用戶超馳操作可以是可選的(諸如當(dāng)系統(tǒng)200以完全自動(dòng)的方式操作時(shí))。此外,可為任何幀特性的曲線提供單獨(dú)的用戶超馳信息。在一個(gè)示例中,用戶可調(diào)整用戶界面中的滑塊(諸如高-低滑塊或x-y滑塊)以操縱控制點(diǎn)的位置,從而相應(yīng)地改變校正曲線的形狀。結(jié)合圖6描述這樣的控制點(diǎn)。任何用戶超馳信息可與(多條)校正曲線一起作為方法400的步驟440的輸入提供。
步驟440通常指示平滑幀中的特性相對(duì)于先前處理的視頻幀中的特性(和/或其它特性)的方差。通常獨(dú)立于幀的任何其它特性來(lái)平滑幀的一個(gè)特性。在一個(gè)示例中,這種平滑包括基于先前幀的校正曲線的幅度和方向趨勢(shì)以影響校正曲線的控制點(diǎn)。結(jié)合圖7提供了用于平滑校正曲線的示例方法。這種平滑可由時(shí)間平滑器360執(zhí)行。一般地,由平滑和任何用戶超馳影響的(多條)校正曲線被提供作為方法400的步驟450的輸入的(多條)最終校正曲線。
步驟450通常指示將(多條)最終校正曲線應(yīng)用于幀的(多個(gè))特性。在一個(gè)示例中,通過(guò)應(yīng)用其校正曲線來(lái)變換幀的特性。一般地,將曲線應(yīng)用于解碼的幀的特性數(shù)據(jù),產(chǎn)生對(duì)應(yīng)于解碼的幀的校正幀的經(jīng)變換的特性數(shù)據(jù)。通常獨(dú)立于幀的任何其它特性來(lái)變換幀的一個(gè)特性。經(jīng)變換的特定的特性可確定應(yīng)用了校正曲線的任何特定的信道或色彩空間等,以便獲得經(jīng)變換的特性數(shù)據(jù)。這種應(yīng)用通常由幀校正器240執(zhí)行。在一個(gè)示例中,校正曲線以最終校正曲線的形式僅被應(yīng)用一次。一旦基于(多個(gè))經(jīng)變換的特性生成了校正的幀,校正的幀通常就被提供作為方法400的步驟460的輸入。
步驟460通常指示向用戶提供經(jīng)校正的幀的預(yù)覽。預(yù)覽幀或任何特定幀可以是可選的(諸如當(dāng)系統(tǒng)200以完全自動(dòng)的方式操作時(shí))。預(yù)覽可包括向用戶呈現(xiàn)原始解碼的幀和/或該幀的校正版本。預(yù)覽可由幀預(yù)覽器250執(zhí)行,并且可允許用戶提供用戶超馳信息(如步驟430中所描述的)。在預(yù)覽期間提供的這種超馳信息可導(dǎo)致對(duì)幀的基本上實(shí)時(shí)的校正。換句話說(shuō),可基本上立即處理在預(yù)覽期間提供的超馳信息,以便基本上立即調(diào)整幀的呈現(xiàn),得到“實(shí)時(shí)預(yù)覽”。一旦任何預(yù)覽完成(通常如用戶所指示的),方法400通常就在步驟470處繼續(xù)。
步驟470通常指示可選地向數(shù)據(jù)存儲(chǔ)210添加原始視頻的一些或所有已處理的幀或用原始視頻的一些或所有已處理的幀替換原始視頻。例如,可以將視頻的校正版本添加(252)到數(shù)據(jù)存儲(chǔ)210。在另一示例中,原始視頻可用校正版本替換。在又一示例中,可僅添加或替換視頻的一個(gè)或多個(gè)部分。一旦任何更新完成,方法400通常就完成了。
圖5是示出用于為幀的特定特性生成校正曲線的示例方法500的框圖。這樣的方法可由幀分析器230等執(zhí)行。在方法500的一個(gè)示例中,生成的校正曲線是幀的特性的優(yōu)選校正曲線??梢蕴峁┙獯a的幀和幀的特定特性的指示作為方法500的輸入。此外,可根據(jù)需要對(duì)解碼的幀進(jìn)行變換,并且可以以適合于生成特定特性的校正曲線的格式來(lái)提供解碼的幀。例如,可以以諸如(Y,Cb,Cr)格式的亮度/色度顏色空間、諸如RGB或sRGB格式的紅-綠-藍(lán)顏色空間或者以任何其它合適的格式提供幀。
步驟510通常指示從幀中導(dǎo)出特定特性的特性數(shù)據(jù)C。在一個(gè)示例中,特性數(shù)據(jù)C通過(guò)對(duì)幀的每n個(gè)像素進(jìn)行采樣來(lái)導(dǎo)出。例如,對(duì)于亮度特性,幀可以以(Y,Cb,Cr)格式提供,并且亮度數(shù)據(jù)(Y)從幀的每n個(gè)像素導(dǎo)出?;蛘?,如果以RGB格式提供幀并且亮度分量Y不是直接可用的,則可基于RGB值的組合來(lái)計(jì)算,其中在一個(gè)示例中,Y=0.299*R+0.587*G+0.114*B。一旦導(dǎo)出特性數(shù)據(jù)C,方法500通常就在步驟520處繼續(xù)。
步驟520通常指示從導(dǎo)出的特性數(shù)據(jù)C生成直方圖H等。一旦生成直方圖H,方法500通常就在步驟530處繼續(xù)。
步驟530通常指示根據(jù)直方圖H計(jì)算最小和最大特性值(C min和C max)。在一個(gè)示例中,最小值和最大值分別被設(shè)置為來(lái)自直方圖H的0.5%和99.5%百分比值。在其他示例中,可使用其他百分比值。一旦計(jì)算出C min和C max值,方法500通常就在步驟540處繼續(xù)。
步驟540通常指示基于最小和最大值根據(jù)直方圖H計(jì)算新的特性數(shù)據(jù)。在該示例中,來(lái)自直方圖H的低于最小值的每個(gè)特性值c被設(shè)置為最小值,并且來(lái)自直方圖H的高于最大值的每個(gè)特性值c被設(shè)置為最大值。此外,計(jì)算新特性數(shù)據(jù)的每個(gè)新特性值,使得=(c-C min)/(C max-C min)。這些新的值可在0-1的范圍內(nèi)歸一化。一旦計(jì)算出新的特性數(shù)據(jù)C′,方法500通常就在步驟550處繼續(xù)。
步驟550通常指示基于新的特性數(shù)據(jù)生成新的直方圖。新的直方圖可排除0和1。新直方圖中的值可由最小值和最大值界定。一旦生成新的直方圖H′,方法500通常就在步驟560處繼續(xù)。
步驟560通常指示基于新的直方圖生成積分直方圖∫H′,其中,對(duì)于遞增的i,∫H′(i)=∫H′(i-1)+H′(i)。在一個(gè)示例中,i表示對(duì)特性值的數(shù)組的索引,并且可具有[0,256]的范圍或一些其他范圍。校正曲線通常在該積分直方圖∫H′上建模。例如,基于積分直方圖∫H′生成擬合的三次參數(shù)多項(xiàng)式:
x(t)-ax3t3+ax2t2+ax1t+ax0
y(t)=ay3t3+ay2t2+ay1t+ay0
其中x是輸入(未校正的)特性值,其中y是輸出(校正的)特性值,其中t是對(duì)[0.0,1.0]范圍內(nèi)的校正曲線的索引,并且其中a值是多項(xiàng)式系數(shù)。
可通過(guò)用戶控制350對(duì)擬合的多項(xiàng)式和空多項(xiàng)式(例如,基于空校正曲線620)進(jìn)行混合,從而使得用戶能夠削弱或放大該特性。對(duì)于三次多項(xiàng)式,空多項(xiàng)式系數(shù)可以是:
a3=a2=a0=0
a1=1
在該示例中,如果用戶希望相對(duì)于Q=1的優(yōu)選值將特性的強(qiáng)度改變?yōu)镼,則新的(素)多項(xiàng)式系數(shù)將是:
a3′=Qa3
a2′=Qa2
a1′=(a1-1)Q+1
a0′=Qa0
在該示例中,用戶控制350可提供表示/控制特性的強(qiáng)度的單個(gè)滑塊或機(jī)制。
或者,擬合多項(xiàng)式可由三次貝塞爾(Bézier)控制圖來(lái)表示,其四個(gè)控制點(diǎn)根據(jù)多項(xiàng)式系數(shù)計(jì)算得到:
在該替代示例中,用戶控制350可使得用戶能夠直接或間接地重新定位這些點(diǎn)。
為了有效地對(duì)幀進(jìn)行校正,可將基于積分直方圖∫H′建模的校正曲線表示為基于從積分直方圖導(dǎo)出的參數(shù)多項(xiàng)式構(gòu)建的查找表。在一個(gè)示例中,可通過(guò)在新直方圖H′的每個(gè)索引處向后遍歷x的多項(xiàng)式x(t)以瀏覽x的值從而獲得t的值,并隨后評(píng)估該t值處的y的多項(xiàng)式y(tǒng)(t)來(lái)構(gòu)造查找表。在該示例中,以查找表的形式生成校正曲線。在其他示例中,校正曲線可以以任何其它合適的形式生成。一旦產(chǎn)生校正曲線,方法500通常就完成了。
圖6是示出在起始點(diǎn)(0,0)開(kāi)始并在終止點(diǎn)(1,1)結(jié)束并且在0-1的范圍內(nèi)歸一化的示例校正曲線610的圖。介于(0,0)和(1,1)之間的直線620表示空校正曲線,其中輸出值等于輸入值。另一方面,不是空校正曲線的示例校正曲線610可被應(yīng)用(例如,步驟450)來(lái)根據(jù)曲線610的形狀變換輸入特性數(shù)據(jù)。此外,可操縱控制點(diǎn)1和2(每個(gè)控制點(diǎn)在x和/或y方向上)以進(jìn)一步修改曲線的形狀。控制點(diǎn)的這種操縱可至少在步驟430和/或440中發(fā)生。例如,當(dāng)操縱用于亮度特性的校正曲線時(shí),將控制點(diǎn)向上(y軸)移動(dòng)趨于使幀圖像變亮,而向下移動(dòng)控制點(diǎn)趨向于使幀圖像變暗。此外,向左或向右(x軸)移動(dòng)控制點(diǎn)控制是幀的較暗的部分還是較亮的部分受y軸移動(dòng)影響。
圖7是示出用于平滑幀的特性值相對(duì)于視頻的先前處理的幀中的特性值(和/或其他特性值)的方差的示例方法700的框圖。這種方法可由時(shí)間平滑器360執(zhí)行。例如,考慮亮度特性,可以采用平滑來(lái)消除或減少偽影,例如幀之間的亮度級(jí)(值)突然變化時(shí)的閃爍(如圖8所示)。這種平滑可包括基于一組先前的幀{t-1,t-2,…t-n}的校正曲線的幅度和方向趨勢(shì)來(lái)影響幀t的校正曲線的控制點(diǎn)。在一個(gè)示例中,n是相對(duì)小的數(shù)字(諸如在大約4與10之間的值)。
步驟710通常指示從幀t的校正曲線(即要被平滑的曲線)開(kāi)始。在一個(gè)示例中,該曲線是在步驟420處生成的優(yōu)選校正曲線。在另一示例中,根據(jù)步驟430,校正曲線已受用戶超馳信息影響。給定幀t的校正曲線(即要被平滑的曲線),方法700通常在步驟720處繼續(xù)。
步驟720通常指示在幀t之前檢索幀{t-1,t-2,…t-n}的校正曲線的數(shù)據(jù)。這種先前的校正曲線數(shù)據(jù)可從系統(tǒng)200的存儲(chǔ)340檢索。在一個(gè)示例中,檢索到的數(shù)據(jù)(諸如圖8所述)包括每個(gè)幀{t-1,t-2,…t-n}的校正曲線的參數(shù)值。一旦檢索到先前幀的校正曲線數(shù)據(jù),方法700通常在步驟730處繼續(xù)。
步驟730通常指示對(duì)每個(gè)先前幀{t-1,t-2,…t-n}的校正曲線數(shù)據(jù)對(duì)于幀t的校正曲線(即要被平滑的曲線)的影響進(jìn)行加權(quán)。在單遍操作的一個(gè)示例中,特定特性的影響權(quán)重被設(shè)置為:對(duì)于幀t而言為特性值的50%、對(duì)幀t-1為25%、對(duì)幀t-2為14%、對(duì)幀t-3為8%、以及對(duì)幀t-4為3%。在兩遍操作的一個(gè)示例中,特定特性的影響權(quán)重被設(shè)置為:對(duì)于幀t而言為特性值的50%、對(duì)幀t-1和t+1為12.5%、對(duì)幀t-2和t+2為7%、對(duì)幀t-3和t+3為4%、以及對(duì)幀t-4和t+4為1.5%。在其他示例中,可使用其他數(shù)量的幀和其他影響百分比(權(quán)重)。一般地,選擇百分比使得總計(jì)為100%,并且分配給更接近幀t的幀的權(quán)重大于分配給距離幀t更遠(yuǎn)的幀的權(quán)重。一旦建立了權(quán)重,方法700通常在步驟740處繼續(xù)。
步驟740通常指示根據(jù)建立的權(quán)重影響幀t的特性的校正。在一個(gè)示例中,根據(jù)建立的權(quán)重來(lái)影響用于建立特性的校正曲線的形狀的每個(gè)參數(shù)。結(jié)合圖8描述這樣的參數(shù)的一個(gè)示例。這種影響通常導(dǎo)致平滑的校正曲線。一旦產(chǎn)生平滑的校正曲線,方法700通常就完成了。
圖8是對(duì)于示例視頻的大約1500幀的示例圖,其示出了塑造校正曲線的六個(gè)參數(shù)值的變化。在該示例中,被校正的特性是亮度特性。圖中的每個(gè)幀的六個(gè)參數(shù)及其值如下:
1.如在步驟530中計(jì)算的C min值,其中的每一個(gè)值在該示例中建立其幀的黑點(diǎn);
2.每個(gè)幀的控制點(diǎn)1的示例x軸值;
3.每個(gè)幀的控制點(diǎn)2的示例x軸值;
4.每個(gè)幀的控制點(diǎn)1的示例y軸值;
5.如在步驟530中計(jì)算的C max值,其中的每一個(gè)值在該示例中建立其幀的白點(diǎn);以及
6.每個(gè)幀的控制點(diǎn)2的示例y軸值。
圖9是示出用于針對(duì)“抖動(dòng)”(諸如跨視頻的m個(gè)幀)來(lái)對(duì)視頻的至少一部分進(jìn)行分析以及用于確定該部分的抖動(dòng)分?jǐn)?shù)的示例方法900的圖。這種方法可由抖動(dòng)分析器230執(zhí)行。在一個(gè)示例中,在計(jì)算設(shè)備上執(zhí)行方法900,該計(jì)算設(shè)備根據(jù)程序模塊(例如軟件)的計(jì)算機(jī)可執(zhí)行指令來(lái)控制(諸如結(jié)合圖1描述),當(dāng)由該計(jì)算設(shè)備執(zhí)行諸如結(jié)合圖2描述的那些模塊的至少一部分時(shí),致使該計(jì)算設(shè)備執(zhí)行方法900的一些或所有方面。在其他示例中,結(jié)合圖2描述的模塊可被實(shí)現(xiàn)為固件、軟件、硬件或其任何組合。作為補(bǔ)充或替換,模塊可被實(shí)現(xiàn)為片上系統(tǒng)(“SoC”)的一部分。
步驟910通常指示檢測(cè)視頻t和t+1的兩個(gè)幀中的特征點(diǎn)。這樣的幀可以是連續(xù)的幀,連續(xù)的I幀或兩個(gè)其他幀。在每個(gè)幀中檢測(cè)特征點(diǎn)。在一個(gè)示例中,亮度信道可被用來(lái)檢測(cè)特征點(diǎn)。在其他示例中,除了亮度之外或者作為亮度的補(bǔ)充的特性可被用來(lái)檢測(cè)特征點(diǎn)。一般地,幀t+1可能已經(jīng)經(jīng)歷相對(duì)于幀t的2維(“2D”)或3維(“3D”)變換(諸如由捕捉設(shè)備在捕捉幀t和幀t+1之間的移動(dòng)所導(dǎo)致的)。因此,系統(tǒng)200嘗試檢測(cè)先前在幀t中檢測(cè)到的幀t+1中的特征點(diǎn),從而允許幀t和幀t+1之間的變換的計(jì)算。這種檢測(cè)可基于幀t和幀t+1的下采樣版本。一旦在每個(gè)幀中檢測(cè)到特征點(diǎn),方法900通常就在步驟920處繼續(xù)。
步驟920通常指示計(jì)算可應(yīng)用于幀t+1的變換,使得兩個(gè)幀t和t+1之間的特征點(diǎn)的最大數(shù)目重合。該計(jì)算的變換通常對(duì)可能已經(jīng)在幀t和t+1之間發(fā)生的任何變換進(jìn)行建模。在一個(gè)示例中,計(jì)算的變換可以以單應(yīng)性變換矩陣的形式表示。一旦計(jì)算出幀的變換,方法900通常在步驟930處繼續(xù)。
步驟930通常指示將變換應(yīng)用于幀t+1的若干幀點(diǎn),其中所述應(yīng)用導(dǎo)致了幀t+1的每個(gè)幀點(diǎn)相對(duì)于幀t的位移。然后計(jì)算每個(gè)幀點(diǎn)的位移的距離。在一個(gè)示例中,該距離是歐氏距離。若干幀點(diǎn)可以是指示幀的四個(gè)角和中心的五個(gè)點(diǎn),其中所述四個(gè)角形成矩形。一旦應(yīng)用變換并且計(jì)算幀的位移距離時(shí),方法900通常在步驟940處繼續(xù)。
步驟940通常指示基于相對(duì)重要性來(lái)可選地偏置在步驟930中計(jì)算的幀t+1的每個(gè)位移距離。在一個(gè)示例中,對(duì)于每個(gè)距離,通過(guò)將位移距離乘以對(duì)應(yīng)于其點(diǎn)相對(duì)于其他點(diǎn)的重要性的權(quán)重來(lái)實(shí)現(xiàn)偏置。在若干幀點(diǎn)是矩形的五個(gè)點(diǎn)的示例中,中心點(diǎn)的距離可被偏置成比各個(gè)角更為重要。一旦幀的位移距離被偏置,方法900通常在步驟950處繼續(xù)。
步驟950通常指示計(jì)算幀t+1相對(duì)于幀t的位移分?jǐn)?shù)Di。在一個(gè)示例中,通過(guò)將在步驟940中計(jì)算的所有偏置距離值相加來(lái)計(jì)算分?jǐn)?shù)。一旦計(jì)算出幀的位移分?jǐn)?shù),方法900通常在步驟960處繼續(xù)。
步驟960通常指示計(jì)算到目前為止已處理的視頻的所有m個(gè)幀的移動(dòng)平均位移分?jǐn)?shù)Davg。在一個(gè)示例中,移動(dòng)平均位移分?jǐn)?shù)Davg基于先前幀的各個(gè)位移分?jǐn)?shù)。該值Davg通常表示捕捉設(shè)備與場(chǎng)景之間的被認(rèn)為是“有意運(yùn)動(dòng)”的長(zhǎng)期相對(duì)運(yùn)動(dòng),諸如平移、縮放、場(chǎng)景中的運(yùn)動(dòng)等,其中場(chǎng)景是在視頻幀中捕捉到的。一旦計(jì)算了移動(dòng)平均,方法900通常在步驟970處繼續(xù)。
步驟970通常指示計(jì)算幀t+1的抖動(dòng)噪聲Dnoise。在一個(gè)示例中,Dnoise被計(jì)算為幀的位移分?jǐn)?shù)Di與移動(dòng)平均位移分?jǐn)?shù)Davg之間的差。該值Dnoise一般表示捕捉設(shè)備和場(chǎng)景之間的相對(duì)運(yùn)動(dòng)中的“抖動(dòng)”或無(wú)意的短期噪聲,而不是有意的運(yùn)動(dòng)。
一旦針對(duì)幀t+1計(jì)算抖動(dòng)噪聲Dnoise,通常就對(duì)進(jìn)行了抖動(dòng)分析的視頻的m個(gè)幀中的任何下一個(gè)幀t+2重復(fù)步驟910到970。一般地,步驟970的幀t+1變?yōu)橹貜?fù)的步驟910的幀t,并且任何下一幀t+2變?yōu)橹貜?fù)的步驟910的幀t+1。如果在被分析的視頻的部分中沒(méi)有下一幀t+2,則方法900通常在步驟980處繼續(xù)。
一旦已經(jīng)分析了視頻的該部分,步驟980通常就指示根據(jù)在步驟970中計(jì)算的每個(gè)Dnoise值計(jì)算該部分的平均抖動(dòng)值。然后將平均抖動(dòng)值與閾值進(jìn)行比較。在一個(gè)示例中,如果平均抖動(dòng)超過(guò)閾值,則視頻被自動(dòng)穩(wěn)定。在另一個(gè)示例中,如果平均抖動(dòng)超過(guò)閾值,則建議視頻被穩(wěn)定。一旦步驟980完成,方法900通常就完成了。
鑒于可應(yīng)用本發(fā)明和前述示例的許多可能的實(shí)施例,應(yīng)當(dāng)認(rèn)識(shí)到,本文描述的示例僅僅是說(shuō)明性的,并且不應(yīng)認(rèn)為是限制本發(fā)明的范圍。因此,本文所述的本發(fā)明考慮了可落入所附權(quán)利要求及其任何等效物的范圍內(nèi)的所有這些實(shí)施例。