本技術(shù)涉及計(jì)算機(jī),尤其涉及一種視頻處理方法及裝置。
背景技術(shù):
1、視頻編碼是一種視頻壓縮技術(shù),通過對視頻幀進(jìn)行塊劃分、預(yù)測、變換、量化、反量化、反變換和熵編碼等操作去除冗余信息,將去除冗余信息的視頻幀編成碼流進(jìn)行傳輸,從而使得傳輸?shù)臄?shù)據(jù)量大幅減少。然而,雖然隨著視頻編碼標(biāo)準(zhǔn)的不斷更新,視頻編碼的壓縮效果也在不斷的優(yōu)化,但是隨之帶來的是較高的編解碼時(shí)間復(fù)雜度,這使得高性能的編碼器無法商用,因此視頻的壓縮效果仍舊非常有限,特別是在網(wǎng)絡(luò)環(huán)境較差的情況下,由于傳輸帶寬受限,用戶很難擁有清晰流暢的視頻觀看體驗(yàn)。
2、針對上述問題,一種解決方案是通過對視頻序列先進(jìn)行時(shí)域下采樣操作,使得視頻在進(jìn)入編碼器之前,就已經(jīng)縮減了一部分?jǐn)?shù)據(jù)量,從而使得編碼之后的碼流信息也減少很多。雖然這種方案可以進(jìn)一步節(jié)省帶寬,提高用戶的視頻觀看體驗(yàn),但是,由于客戶端解碼得到的視頻序列幀數(shù)減少,使得視頻流暢度降低。為了解決客戶端解碼得到的視頻序列幀數(shù)減少的問題,一種解決方案是通過采用插幀技術(shù)來生成一些視頻幀填補(bǔ)原有的視頻序列,雖然這種方案可以保證視頻流暢度,但是,由于視頻序列中部分物體的劇烈運(yùn)動以及部分物體遮擋消失等現(xiàn)象的出現(xiàn),使得插幀技術(shù)估計(jì)出來的光流等運(yùn)動信息不夠準(zhǔn)確,從而導(dǎo)致生成的視頻幀中存在偽影等失真現(xiàn)象。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種視頻處理方法及裝置,用以提高視頻插幀質(zhì)量。
2、第一方面,本技術(shù)提供一種視頻處理方法,該方法可以是由視頻處理裝置(比如第一視頻處理裝置)或者能夠支持視頻處理裝置實(shí)現(xiàn)該方法所需的功能的部件(比如芯片、芯片系統(tǒng)或電路等)執(zhí)行。示例性地,第一視頻處理裝置可以是服務(wù)器端(比如云服務(wù)器或數(shù)據(jù)中心)或能夠支持服務(wù)器端實(shí)現(xiàn)該方法所需的功能的部件(比如插件、組件、芯片或電路等),例如服務(wù)器端可以是云服務(wù)器或數(shù)據(jù)中心或服務(wù)器或其它形式的計(jì)算設(shè)備等??蛇x的,以第一視頻處理裝置執(zhí)行視頻處理方法為例,該方法可以包括以下步驟:
3、第一視頻處理裝置可以先解碼第一碼流,得到第一視頻中包括的多個(gè)視頻幀和多個(gè)視頻幀的編碼信息,其中,編碼信息可以包括多個(gè)視頻幀的塊劃分信息、運(yùn)動矢量信息、預(yù)測模式和塊殘差信息中的一個(gè)或多個(gè);之后,第一視頻處理裝置可以根據(jù)多個(gè)視頻幀的編碼信息,確定多個(gè)視頻幀中包括的至少一個(gè)第一目標(biāo)視頻幀,其中,至少一個(gè)第一目標(biāo)視頻幀為多個(gè)視頻幀中需要被丟棄的視頻幀;然后,第一視頻處理裝置可以發(fā)送第二碼流,其中,第二碼流承載多個(gè)第二目標(biāo)視頻幀,多個(gè)第二目標(biāo)視頻幀為多個(gè)視頻幀中除至少一個(gè)第一目標(biāo)視頻幀以外的其它視頻幀。
4、在本方法中,第一視頻處理裝置通過根據(jù)多個(gè)視頻幀中每個(gè)視頻幀的編碼信息,分析每個(gè)視頻幀具有的屬性(即每個(gè)視頻幀是適合被保留還是適合作為待插幀(或可理解為抽幀)被丟棄),并可以根據(jù)多個(gè)視頻幀分別具有的屬性,更加準(zhǔn)確地決策哪些視頻幀適合被丟棄。之后,第一視頻處理裝置可以將保留下來的視頻幀編碼成一個(gè)碼流進(jìn)行傳輸。然后,第二視頻處理裝置(比如客戶端)獲取該碼流后,可以該碼流進(jìn)行解碼,得到保留下來的視頻幀,因第一視頻處理裝置丟棄的是較容易插值的視頻幀(即丟棄的是較為適合作為待插幀的視頻幀),所以第二視頻處理裝置能夠根據(jù)保留下來的視頻幀,較為容易地生成相應(yīng)的待插幀,如此可以確保視頻插幀質(zhì)量,并有助于緩解有些運(yùn)動較劇烈的視頻幀在被丟棄后,因這些運(yùn)動較劇烈的視頻幀的運(yùn)動矢量信息估計(jì)不準(zhǔn)確而導(dǎo)致生成的待插幀質(zhì)量較差的現(xiàn)象。此外,由于第一視頻處理裝置是通過對多個(gè)視頻幀進(jìn)行更為準(zhǔn)確地時(shí)域下采樣操作,因而可以最大限度地丟棄一些視頻幀,且第一視頻處理裝置傳輸?shù)臄?shù)據(jù)是經(jīng)過編碼操作的,如此可以使得第二視頻處理裝置接收的碼流的數(shù)據(jù)量進(jìn)一步減少,從而可以進(jìn)一步減少傳輸帶寬,有助于緩解用戶在弱網(wǎng)環(huán)境下視頻觀看體驗(yàn)較差的現(xiàn)象。
5、在一種可能的設(shè)計(jì)中,第一視頻處理裝置根據(jù)多個(gè)視頻幀的編碼信息,確定多個(gè)視頻幀中包括的至少一個(gè)第一目標(biāo)視頻幀,包括:第一視頻處理裝置可以先根據(jù)第一視頻幀的編碼信息,確定第一視頻幀的紋理復(fù)雜度指標(biāo)值,其中,第一視頻幀為多個(gè)視頻幀中的任一個(gè)視頻幀;之后,當(dāng)?shù)谝灰曨l幀的紋理復(fù)雜度指標(biāo)值滿足紋理復(fù)雜度閾值時(shí),可以確定第一視頻幀為第一目標(biāo)視頻幀。
6、上述設(shè)計(jì)中,通過根據(jù)每個(gè)視頻幀的紋理復(fù)雜度指標(biāo)值,可以比較準(zhǔn)確地判斷該視頻幀是否為第一目標(biāo)視頻幀(即較為適合作為待插幀(或可理解為較為容易插值)的視頻幀),從而可以使得第二視頻處理裝置比較容易地生成待插幀,有效地減輕第二視頻處理裝置的插幀壓力,并可以確保待插幀(或可稱為插幀圖像)質(zhì)量比較高。
7、在一種可能的設(shè)計(jì)中,多個(gè)視頻幀中每個(gè)視頻幀包括多個(gè)編碼塊,每個(gè)視頻幀的編碼信息中包括視頻幀的多個(gè)編碼塊的預(yù)測模式,紋理復(fù)雜度指標(biāo)值包括第一比值和/或第二比值,紋理復(fù)雜度閾值包括第一閾值和/或第二閾值;當(dāng)?shù)谝灰曨l幀的紋理復(fù)雜度指標(biāo)值滿足紋理復(fù)雜度閾值時(shí),第一視頻處理裝置確定第一視頻幀為第一目標(biāo)視頻幀,包括:當(dāng)?shù)谝灰曨l幀對應(yīng)的第一比值大于第一閾值和/或第一視頻幀對應(yīng)的第二比值小于第二閾值時(shí),第一視頻處理裝置可以確定第一視頻幀為第一目標(biāo)視頻幀,其中,第一比值用于指示第一視頻幀中預(yù)測模式為幀間預(yù)測模式的編碼塊所在區(qū)域的像素?cái)?shù)量占比,第二比值用于指示第一視頻幀中預(yù)測模式為幀內(nèi)預(yù)測模式的編碼塊所在區(qū)域的像素?cái)?shù)量占比。
8、上述設(shè)計(jì)中,通過第一閾值和/或第二閾值可以比較準(zhǔn)確地判斷每個(gè)視頻幀是否為第一目標(biāo)視頻幀,從而可以更為準(zhǔn)確地決策哪些視頻幀可作為第一目標(biāo)視頻幀適合被丟棄。
9、在一種可能的設(shè)計(jì)中,所述方法還包括:當(dāng)?shù)谝槐戎敌∮诨虻扔诘谝婚撝?,或者第二比值大于或等于第二閾值時(shí),第一視頻處理裝置可以確定第一視頻幀為第二目標(biāo)視頻幀。
10、上述設(shè)計(jì)中,通過第一閾值和/或第二閾值可以比較準(zhǔn)確地判斷每個(gè)視頻幀是否為第二目標(biāo)視頻幀,從而可以更為準(zhǔn)確地決策哪些視頻幀可作為第二目標(biāo)視頻幀適合被保留。
11、在一種可能的設(shè)計(jì)中,所述方法還包括:第一視頻處理裝置發(fā)送第三碼流,其中,第三碼流承載至少一個(gè)第一目標(biāo)視頻幀的屬性信息,屬性信息用于指示根據(jù)屬性信息在多個(gè)第二目標(biāo)視頻幀中生成第一目標(biāo)視頻幀對應(yīng)的待插幀。
12、上述設(shè)計(jì)中,第一視頻處理裝置通過將至少一個(gè)第一目標(biāo)視頻幀的屬性信息編碼成第三碼流進(jìn)行傳輸,可以使得獲取第三碼流的第二視頻處理裝置能夠有效地綜合利用被丟棄的視頻幀的屬性信息以及被保留的視頻幀進(jìn)行生成相應(yīng)的待插幀,如此可以進(jìn)一步保證視頻插幀質(zhì)量,從而可以解決現(xiàn)有方案中因待插幀的運(yùn)動矢量信息估計(jì)不準(zhǔn)確而導(dǎo)致生成的視頻中存在較多偽影的問題,且可以進(jìn)一步有效緩解有些運(yùn)動較劇烈的視頻幀在被丟棄后,因這些運(yùn)動較劇烈的視頻幀的運(yùn)動矢量信息估計(jì)不準(zhǔn)確而導(dǎo)致生成的待插幀質(zhì)量較差的現(xiàn)象。
13、在一種可能的設(shè)計(jì)中,所述方法還包括:當(dāng)?shù)谝荒繕?biāo)視頻幀對應(yīng)的第一編碼塊的預(yù)測模式為幀間預(yù)測模式時(shí),第一視頻處理裝置可以對第一編碼塊的運(yùn)動矢量信息進(jìn)行放縮,得到放縮后的第一編碼塊的運(yùn)動矢量信息;或者當(dāng)?shù)谝痪幋a塊的預(yù)測模式為幀內(nèi)預(yù)測模式時(shí),若第一編碼塊的左側(cè)、上方或左上方存在預(yù)測模式為幀間預(yù)測模式的第二編碼塊,則第一視頻處理裝置可以對第二編碼塊的運(yùn)動矢量信息進(jìn)行放縮,得到第一編碼塊的運(yùn)動矢量信息;若第一編碼塊不存在預(yù)測模式為幀間預(yù)測模式的第二編碼塊,則第一視頻處理裝置可以將(0,0)作為第一編碼塊的運(yùn)動矢量信息;之后,第一視頻處理裝置可以根據(jù)第一目標(biāo)視頻幀包括的多個(gè)編碼塊的運(yùn)動矢量信息以及第一目標(biāo)視頻幀在第一視頻中的位置信息,確定第一目標(biāo)視頻幀的屬性信息。
14、上述設(shè)計(jì)中,針對每個(gè)第一目標(biāo)視頻幀,通過基于該第一目標(biāo)視頻幀包括的每個(gè)編碼塊的預(yù)測模式,可以比較準(zhǔn)確地計(jì)算該視頻幀包括的每個(gè)編碼塊的當(dāng)前運(yùn)動矢量信息,從而可以便于后續(xù)利用被丟棄的至少一個(gè)第一目標(biāo)視頻幀的屬性信息以及被保留的多個(gè)第二目標(biāo)視頻幀,準(zhǔn)確地生成相應(yīng)的待插幀,有助于確保視頻插幀質(zhì)量,從而可以確保視頻的畫面質(zhì)量和流暢度。
15、在一種可能的設(shè)計(jì)中,所述方法還包括:第一視頻處理裝置每解碼第一數(shù)量閾值的視頻幀時(shí),可以根據(jù)第一數(shù)量閾值的視頻幀中包括的一個(gè)第一目標(biāo)視頻幀的運(yùn)動矢量信息以及位于該第一目標(biāo)視頻幀前后相鄰的兩個(gè)第二目標(biāo)視頻幀,生成第一目標(biāo)視頻幀對應(yīng)的待插幀;之后,第一視頻處理裝置在確定待插幀的質(zhì)量指標(biāo)值小于或等于質(zhì)量閾值時(shí),調(diào)小第二閾值;或者在確定第一數(shù)量閾值的視頻幀中包括的第一目標(biāo)視頻幀的數(shù)量小于或等于第二數(shù)量閾值時(shí),調(diào)小第一閾值和/或調(diào)大第二閾值。
16、上述設(shè)計(jì)中,因?yàn)橐环N固定設(shè)置的第一閾值和/或第二閾值不具備較好的魯棒性,因此在分析哪些視頻幀適合丟棄,哪些視頻幀適合保留時(shí),通過根據(jù)遇到的視頻序列的實(shí)際情況來動態(tài)調(diào)整分析策略,可以使得視頻處理方案在面對大多數(shù)場景時(shí)都能夠有比較好的處理效果。
17、在一種可能的設(shè)計(jì)中,所述方法還包括:第一視頻處理裝置可以根據(jù)第一目標(biāo)視頻幀和待插幀,確定待插幀對應(yīng)的峰值信噪比,其中,峰值信噪比可以用于作為待插幀的質(zhì)量指標(biāo)值。
18、上述設(shè)計(jì)中,通過利用峰值信噪比,可以較為準(zhǔn)確地表征待插幀質(zhì)量的好壞。
19、第二方面,本技術(shù)提供一種視頻處理方法,該方法可以是由視頻處理裝置(比如第二視頻處理裝置)或者能夠支持視頻處理裝置實(shí)現(xiàn)該方法所需的功能的部件(比如芯片、芯片系統(tǒng)或電路等)執(zhí)行。示例性地,第二視頻處理裝置可以是客戶端或能夠支持客戶端實(shí)現(xiàn)該方法所需的功能的部件(比如插件、組件、芯片或電路等)。比如,安裝有客戶端的終端設(shè)備可以為某一個(gè)計(jì)算設(shè)備。當(dāng)?shù)诙曨l處理裝置是客戶端時(shí),客戶端可以用于處理來自服務(wù)器的碼流,服務(wù)器用于處理第一碼流。其中,第一碼流承載第一視頻中包括的多個(gè)視頻幀和多個(gè)視頻幀的編碼信息。其中,多個(gè)視頻幀中的至少一個(gè)第一目標(biāo)視頻幀為需要被丟棄的視頻幀,多個(gè)視頻幀中的多個(gè)第二目標(biāo)視頻幀為多個(gè)視頻幀中除至少一個(gè)第一目標(biāo)視頻幀以外的其它視頻幀,編碼信息可以包括多個(gè)視頻幀的塊劃分信息、運(yùn)動矢量信息、預(yù)測模式和塊殘差信息中的一個(gè)或多個(gè)??蛇x的,以第二視頻處理裝置執(zhí)行視頻處理方法為例,該方法可以包括以下步驟:
20、第二視頻處理裝置可以接收來自服務(wù)器的第二碼流,其中,第二碼流承載多個(gè)第二目標(biāo)視頻幀,之后,第二視頻處理裝置可以根據(jù)多個(gè)第二目標(biāo)視頻幀,生成第二視頻。
21、第二方面所能達(dá)到的技術(shù)效果請參照上述第一方面所能達(dá)到的技術(shù)效果,此處不再贅述。
22、在一種可能的設(shè)計(jì)中,第二視頻處理裝置根據(jù)多個(gè)第二目標(biāo)視頻幀,生成第二視頻,包括:第二視頻處理裝置接收來自服務(wù)器的第三碼流,其中,第三碼流承載至少一個(gè)第一目標(biāo)視頻幀的屬性信息,屬性信息用于指示根據(jù)屬性信息在多個(gè)第二目標(biāo)視頻幀中生成第一目標(biāo)視頻幀對應(yīng)的待插幀;之后,第二視頻處理裝置可以根據(jù)多個(gè)第二目標(biāo)視頻幀和至少一個(gè)第一目標(biāo)視頻幀的屬性信息,生成第二視頻。
23、在一種可能的設(shè)計(jì)中,至少一個(gè)第一目標(biāo)視頻幀中每個(gè)第一目標(biāo)視頻幀的屬性信息中包括第一目標(biāo)視頻幀在第一視頻中的位置信息以及第一目標(biāo)視頻幀包括的多個(gè)編碼塊的運(yùn)動矢量信息;第二視頻處理裝置根據(jù)多個(gè)第二目標(biāo)視頻幀和至少一個(gè)第一目標(biāo)視頻幀的屬性信息,生成第二視頻,包括:第二視頻處理裝置可以分別根據(jù)每個(gè)第一目標(biāo)視頻幀對應(yīng)的多個(gè)編碼塊的運(yùn)動矢量信息以及位于每個(gè)第一目標(biāo)視頻幀前后相鄰的兩個(gè)第二目標(biāo)視頻幀,生成每個(gè)第一目標(biāo)視頻幀對應(yīng)的待插幀,其中,每個(gè)第一目標(biāo)視頻幀對應(yīng)的待插幀的位置信息與第一目標(biāo)視頻幀在第一視頻中的位置信息相同;之后,第二視頻處理裝置可以分別根據(jù)每個(gè)第一目標(biāo)視頻幀在第一視頻中的位置信息,將每個(gè)第一目標(biāo)視頻幀對應(yīng)的待插幀插入到多個(gè)第二目標(biāo)視頻幀中,得到第二視頻。
24、第三方面,本技術(shù)提供了一種可能的計(jì)算設(shè)備,該計(jì)算設(shè)備具有實(shí)現(xiàn)上述第一方面的方法實(shí)例中第一視頻處理裝置的行為的功能,有益效果可以參見第一方面的描述,此處不再贅述。該計(jì)算設(shè)備包括通信接口、存儲器以及處理器。其中,通信接口用于與其他設(shè)備進(jìn)行通信,存儲器用于存儲計(jì)算機(jī)程序或指令,處理器與存儲器、通信接口耦合,當(dāng)處理器執(zhí)行該計(jì)算機(jī)程序或指令時(shí),使得該計(jì)算設(shè)備執(zhí)行上述第一方面的任一種可能的設(shè)計(jì)中的方法。
25、可選的,該計(jì)算設(shè)備也可以具有實(shí)現(xiàn)上述第二方面的方法實(shí)例中第二視頻處理裝置的行為的功能,有益效果可以參見第二方面的描述,此處不再贅述。該計(jì)算設(shè)備包括通信接口、存儲器以及處理器。其中,通信接口用于與其他設(shè)備進(jìn)行通信,存儲器用于存儲計(jì)算機(jī)程序或指令,處理器與存儲器、通信接口耦合,當(dāng)處理器執(zhí)行該計(jì)算機(jī)程序或指令時(shí),使得該計(jì)算設(shè)備執(zhí)行上述第二方面的任一種可能的設(shè)計(jì)中的方法。
26、第四方面,本技術(shù)提供了一種可能的計(jì)算設(shè)備集群,該計(jì)算設(shè)備集群具有實(shí)現(xiàn)上述第一方面的方法實(shí)例中視頻處理裝置的行為的功能,有益效果可以參見第一方面的描述,此處不再贅述。該計(jì)算設(shè)備集群包括至少一個(gè)計(jì)算設(shè)備,任一計(jì)算設(shè)備中包括通信接口、處理器和存儲器,任一計(jì)算設(shè)備中的處理器被配置為支持視頻處理裝置執(zhí)行上述第一方面的任一種可能的設(shè)計(jì)中的方法中的部分或全部功能。存儲器與處理器耦合,其保存第一視頻處理裝置必要的計(jì)算機(jī)程序指令和數(shù)據(jù)。
27、可選的,該計(jì)算設(shè)備集群也可以具有實(shí)現(xiàn)上述第二方面的方法實(shí)例中第二視頻處理裝置的行為的功能,有益效果可以參見第二方面的描述,此處不再贅述。該計(jì)算設(shè)備集群包括至少一個(gè)計(jì)算設(shè)備,任一計(jì)算設(shè)備中包括通信接口、處理器和存儲器,任一計(jì)算設(shè)備中的處理器被配置為支持第二視頻處理裝置執(zhí)行上述第二方面的任一種可能的設(shè)計(jì)中的方法中的部分或全部功能。存儲器與處理器耦合,其保存第二視頻處理裝置必要的計(jì)算機(jī)程序指令和數(shù)據(jù)。
28、第五方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲介質(zhì),該計(jì)算機(jī)可讀存儲介質(zhì)中存儲有計(jì)算機(jī)程序指令,當(dāng)該計(jì)算機(jī)程序指令被計(jì)算設(shè)備執(zhí)行時(shí),使得該計(jì)算設(shè)備執(zhí)行上述第一方面的任一種可能的設(shè)計(jì)中的方法或上述第二方面的任一種可能的設(shè)計(jì)中的方法。
29、第六方面,本技術(shù)提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)其在計(jì)算設(shè)備上運(yùn)行時(shí),使得該計(jì)算設(shè)備執(zhí)行上述第一方面的任一種可能的設(shè)計(jì)中的方法或上述第二方面的任一種可能的設(shè)計(jì)中的方法。
30、第七方面,本技術(shù)還提供了一種計(jì)算機(jī)芯片,該計(jì)算機(jī)芯片與存儲器耦合,該計(jì)算機(jī)芯片用于讀取存儲器中存儲的計(jì)算機(jī)程序,執(zhí)行上述第一方面的任一種可能的設(shè)計(jì)中的方法或上述第二方面的任一種可能的設(shè)計(jì)中的方法。
31、第八方面,本技術(shù)還提供了一種芯片系統(tǒng),該芯片系統(tǒng)包括處理器,用于支持計(jì)算機(jī)裝置實(shí)現(xiàn)上述第一方面的任一種可能的設(shè)計(jì)中的方法或上述第二方面的任一種可能的設(shè)計(jì)中的方法。在一種可能的設(shè)計(jì)中,該芯片系統(tǒng)還包括存儲器,該存儲器用于保存該計(jì)算機(jī)裝置必要的程序和數(shù)據(jù)。該芯片系統(tǒng)可以由計(jì)算機(jī)芯片構(gòu)成,也可以包含計(jì)算機(jī)芯片和其他分立器件。
32、本技術(shù)在上述各方面提供的實(shí)現(xiàn)方式的基礎(chǔ)上,還可以進(jìn)行進(jìn)一步組合以提供更多的實(shí)現(xiàn)方式。