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

通過縮放的運(yùn)動矢量預(yù)測的制作方法

文檔序號:11279659閱讀:162來源:國知局
通過縮放的運(yùn)動矢量預(yù)測的制造方法與工藝



背景技術(shù):

數(shù)字視頻流通常使用幀或靜止圖像序列來表示視頻。每個幀可以包括許多塊,該塊進(jìn)而可以包含描述像素的色彩、亮度或其它屬性的值的信息。典型視頻流中的數(shù)據(jù)量很大,并且視頻的傳輸和存儲可以使用相當(dāng)多的計算或通信資源。由于視頻數(shù)據(jù)中涉及大量數(shù)據(jù),因此需要高性能壓縮以用于傳輸和存儲。這常常涉及到使用運(yùn)動矢量的中間預(yù)測。



技術(shù)實(shí)現(xiàn)要素:

本公開總體上涉及通過使用針對先前幀計算的運(yùn)動矢量來預(yù)測用于當(dāng)前幀的運(yùn)動矢量來編碼和解碼視覺數(shù)據(jù),諸如視頻流數(shù)據(jù)。

本文中所述的公開實(shí)施方式的各方面包括一種用于編碼或解碼包括定義視頻序列的幀的視頻信號的方法,每個幀具有塊,并且每個塊具有像素,該方法包括:基于在視頻序列的先前幀中的共位塊以及視頻序列的第一和第二先前參考幀來確定用于視頻序列的當(dāng)前幀的塊的預(yù)測運(yùn)動矢量;通過基于先前幀與第一和第二先前參考幀以及當(dāng)前幀與第一和第二當(dāng)前參考幀之間的時間距離對預(yù)測運(yùn)動矢量加權(quán),并與包括在視頻信號中的比特組合,基于第一和第二當(dāng)前參考幀來確定當(dāng)前運(yùn)動矢量;以及使用當(dāng)前運(yùn)動矢量將塊解碼。

本文中所述的裝置的一個方面是一種用于編碼或解碼包括定義視頻序列的幀的視頻信號的裝置,每個幀具有塊,并且每個塊具有像素,該裝置包括:基于在視頻序列的先前幀中的共位塊以及視頻序列的第一和第二先前參考幀來確定用于視頻序列的當(dāng)前幀的塊的預(yù)測運(yùn)動矢量;通過基于先前幀與第一和第二先前參考幀以及當(dāng)前幀與第一和第二當(dāng)前參考幀之間的時間距離對預(yù)測運(yùn)動矢量加權(quán),并與包括在視頻信號中的位組合,基于第一和第二當(dāng)前參考幀來確定當(dāng)前運(yùn)動矢量;以及使用當(dāng)前運(yùn)動矢量將塊解碼。

在以下詳細(xì)描述、所附權(quán)利要求和附圖中另外詳細(xì)地描述了本公開的這些及其它方面。

附圖說明

這里的描述對下面所述附圖進(jìn)行參考,在多個附圖中相同的參考標(biāo)號指代相同部分,除非另外說明。

圖1是視頻編碼和解碼系統(tǒng)的示意圖。

圖2是能夠?qū)崿F(xiàn)發(fā)送站和接收站的計算設(shè)備的示例的框圖。

圖3是要編碼并隨后解碼的視頻流的圖。

圖4是根據(jù)本文教導(dǎo)的一個方面的編碼器的框圖。

圖5是根據(jù)本文教導(dǎo)的一個方面的解碼器的框圖。

圖6是根據(jù)本公開的一個實(shí)施方式的用于通過預(yù)測運(yùn)動矢量來將塊編碼或解碼的過程的流程圖。

圖7是用于解釋圖6的過程的圖。

具體實(shí)施方式

可以用多種技術(shù)來壓縮視頻流以減少發(fā)送或存儲視頻流所需的帶寬。視頻流可以通過編解碼器編碼成比特流,這可以涉及到壓縮,然后被發(fā)送到可以對比特流進(jìn)行解碼或解壓縮以使其準(zhǔn)備好用于觀看或進(jìn)一步處理的編解碼器。將視頻流編碼可以涉及到進(jìn)行視頻質(zhì)量與比特流大小之間的權(quán)衡的參數(shù),其中,增加已解碼視頻流的感知質(zhì)量可以增加發(fā)送或存儲比特流所需的比特數(shù)。

一種實(shí)現(xiàn)優(yōu)良壓縮性能的技術(shù)通過空間和/或運(yùn)動補(bǔ)償預(yù)測利用視頻信號的空間和時間相關(guān)性。中間預(yù)測例如使用運(yùn)動矢量來識別類似于要被編碼的當(dāng)前塊的先前編碼和解碼塊。通過將運(yùn)動矢量以及兩個塊之間的差編碼,解碼器可以重新創(chuàng)建當(dāng)前塊。另一方面,內(nèi)部預(yù)測可以使用來自同一幀的信息預(yù)測當(dāng)前塊,并對將要解碼的兩個塊之間的差編碼以重新創(chuàng)建當(dāng)前塊。編碼器可以使用多個中間和內(nèi)部模式中的兩個或更多個來將幀的塊編碼,并且測量每個塊的每個模式的速率/失真以選擇具有最小失真的預(yù)測模式,失真例如是針對如通過編碼的比特流中的比特數(shù)測量的結(jié)果速率如通過計算絕對差的和(sad)測量的。

某些編解碼器可以通過預(yù)測與當(dāng)前幀的當(dāng)前塊相關(guān)聯(lián)的當(dāng)前運(yùn)動矢量來減少要在視頻流中發(fā)送的比特數(shù)??梢允褂没诋?dāng)前幀中的先前編碼塊的預(yù)測運(yùn)動矢量來預(yù)測當(dāng)前運(yùn)動矢量??梢杂貌煌姆绞綄︻A(yù)測運(yùn)動矢量加權(quán)以補(bǔ)償當(dāng)前運(yùn)動矢量與預(yù)測運(yùn)動矢量之間的參考數(shù)據(jù)的差。

本文中的教導(dǎo)描述了使用來自共位塊的參考運(yùn)動矢量來形成當(dāng)前運(yùn)動矢量,該共位塊來自先前幀,該先前幀來自視頻流??梢酝ㄟ^確定可以是當(dāng)前參考幀的先前幀與先前參考幀以及當(dāng)前幀與當(dāng)前參考幀之間的時間距離的差來對參考運(yùn)動矢量加權(quán)。在平滑變化的視頻中,來自先前幀的在時間上接近于包括當(dāng)前參考幀中的一個或多個的當(dāng)前幀的共位塊最有可能具有類似于當(dāng)前塊的運(yùn)動矢量。這意味著可以預(yù)見傳送預(yù)測運(yùn)動矢量與當(dāng)前運(yùn)動矢量之間的差所需的比特數(shù)可以是小的,并且因此能夠以小的固定數(shù)目的比特來發(fā)送。

使用來自先前幀的加權(quán)的預(yù)測運(yùn)動矢量來預(yù)測當(dāng)前運(yùn)動矢量可以通過設(shè)定視頻流中的比特以指示當(dāng)前塊使用加權(quán)的預(yù)測運(yùn)動矢量被編碼而向解碼器指示。解碼器可以通過每當(dāng)由解碼器接收到新的i幀或黃金幀時重置時間距離來跟蹤與參考圖像相關(guān)聯(lián)的時間距離。然后,每當(dāng)由解碼器處理幀時,更新該時間距離。如果該時間距離與被用于向前預(yù)測的幀相關(guān)聯(lián),則更新可以包括增加參考幀與當(dāng)前幀相比的時間偏移。如果時間距離與被用于向后預(yù)測的幀相關(guān)聯(lián),則更新可以包括減小參考幀與當(dāng)前幀相比的時間偏移。使用如本文中所述的預(yù)測運(yùn)動矢量編碼視頻數(shù)據(jù)相比于在沒有這種技術(shù)的情況下編碼的塊而言可以具有改善的速率/失真度量。

圖1是視頻編碼和解碼系統(tǒng)100的示意圖。發(fā)送站102可以是例如具有諸如圖2中描述的硬件的內(nèi)部配置的計算機(jī)。然而,發(fā)送站102的其它適當(dāng)實(shí)施方式是可能的。例如,發(fā)送站102的處理可以分布在多個設(shè)備之間。

網(wǎng)絡(luò)104可以連接發(fā)送站102和接收站106以實(shí)現(xiàn)視頻流的編碼和解碼。具體地,可以在發(fā)送站102中編碼視頻流,并且編碼的視頻流可以在接收站106中被解碼。網(wǎng)絡(luò)104可以是例如因特網(wǎng)。網(wǎng)絡(luò)104還可以是局域網(wǎng)(lan)、廣域網(wǎng)(wan)、虛擬專用網(wǎng)(vpn)、移動、蜂窩式電話網(wǎng)或?qū)⒁曨l流從發(fā)送站102傳輸?shù)皆诒臼纠械慕邮照?06的任何其它手段。

在一個示例中,接收站106可以是例如具有諸如圖2中描述的硬件的內(nèi)部配置的計算機(jī)。然而,接收站106的其它適當(dāng)實(shí)施方式是可能的。例如,接收站106的處理可以分布在多個設(shè)備之間。

視頻編碼和解碼系統(tǒng)100的其它實(shí)施方式是可能的。例如,實(shí)施方式可以省略網(wǎng)絡(luò)104。在另一實(shí)施方式中,可以將視頻流編碼然后存儲以用于在以后傳輸?shù)浇邮照?06或具有非臨時存儲器的任何其它設(shè)備。在一個實(shí)施方式中,接收站106接收(例如,經(jīng)由網(wǎng)絡(luò)104、計算機(jī)總線和/或某些通信路徑)編碼的視頻流,并存儲該視頻流以用于以后的解碼。在示例性實(shí)施方式中,實(shí)時傳輸協(xié)議(rtp)被用于通過網(wǎng)絡(luò)104進(jìn)行的編碼的視頻的傳輸。在另一實(shí)施方式中,可以使用除rtp之外的傳輸協(xié)議,例如基于超文本傳輸協(xié)議(http)的視頻流式傳輸協(xié)議。

例如,當(dāng)在視頻會議系統(tǒng)中使用時,發(fā)送站102和/或接收站106可以包括如下所述的編碼和解碼視頻流的能力。例如,接收站106可以是視頻會議參與者,其從視頻會議服務(wù)器(例如,發(fā)送站102)接收編碼的視頻比特流以解碼并觀看,并進(jìn)一步將其自身的視頻比特流編碼并發(fā)送到視頻會議服務(wù)器以便被其它參與者解碼和觀看。

圖2是可以實(shí)現(xiàn)發(fā)送站和接收站的計算設(shè)備200的示例的框圖。例如,計算設(shè)備200可以實(shí)現(xiàn)圖1的發(fā)送站102和接收站106中的一者或兩者。計算設(shè)備200可以采取包括多個計算設(shè)備的計算系統(tǒng)的形式,或采取單個計算設(shè)備的形式,例如移動電話、平板計算機(jī)、膝上型計算機(jī)、筆記本計算機(jī)、臺式計算機(jī)等。

計算設(shè)備200中的cpu202可以是中央處理單元。替換地,cpu202可以是現(xiàn)在存在或以后開發(fā)的能夠操縱或處理信息的任何其它類型的設(shè)備或多個設(shè)備。雖然可以如所示的那樣用單個處理器,例如cpu202,來實(shí)施公開實(shí)施方式,但可以使用超過一個處理器來實(shí)現(xiàn)速度和效率方面的優(yōu)點(diǎn)。

在實(shí)施方式中,計算設(shè)備200中的存儲器204可以是非臨時存儲器且可以是只讀存儲器(rom)設(shè)備或隨機(jī)存取存儲器(ram)設(shè)備??梢允褂萌魏纹渌m當(dāng)類型的存儲設(shè)備作為存儲器204。存儲器204可以包括被cpu202使用總線212訪問的代碼和數(shù)據(jù)206。存儲器204還可以包括操作系統(tǒng)208和應(yīng)用程序210,該應(yīng)用程序210包括允許cpu202執(zhí)行這里所述的方法的至少一個程序。例如,應(yīng)用程序210可以包括應(yīng)用1至n,其還包括執(zhí)行這里所述的方法的視頻編碼應(yīng)用。計算設(shè)備200還可以包括輔助儲存器214,其可以是例如與移動計算設(shè)備一起使用的存儲卡。由于視頻通信會話可包含大量的信息,所以可以將其全部或部分地存儲在輔助儲存器214中并根據(jù)處理的需要加載到存儲器204中。

計算設(shè)備200還可以包括一個或多個輸出設(shè)備,諸如顯示器218。在一個示例中,顯示器218可以是觸敏顯示器,其將顯示器與可操作以感測觸摸輸入的觸敏元件組合??梢越?jīng)由總線212將顯示器218耦合到cpu202。除顯示器218之外或者作為其替換,可以提供允許用戶編程或者以其他方式使用計算設(shè)備200的其它輸出設(shè)備。當(dāng)輸出設(shè)備是或者包括顯示器時,可以用各種方式來實(shí)現(xiàn)顯示器,包括用液晶顯示器(lcd)、陰極射線管(crt)顯示器或發(fā)光二極管(led)顯示器,諸如有機(jī)led(oled)顯示器。

計算設(shè)備200還可以包括圖像傳感設(shè)備220,或與之通信,圖像傳感設(shè)備220例如是相機(jī)或者現(xiàn)在存在或以后開發(fā)的可以感測圖像——諸如操作計算設(shè)備200的用戶的圖像——的任何其它圖像傳感設(shè)備220。圖像傳感設(shè)備220可以定位成使得其指向操作計算設(shè)備200的用戶。在示例中,圖像傳感設(shè)備220的位置和光軸可以被配置成使得視場包括直接鄰近于顯示器218且從其可見到顯示器218的區(qū)域。

計算設(shè)備200還可以包括聲音傳感設(shè)備222,或與之通信,聲音傳感設(shè)備222例如是擴(kuò)音器或者現(xiàn)在存在或以后開發(fā)的可以感測計算設(shè)備200附近的聲音的任何其它聲音傳感設(shè)備。聲音傳感設(shè)備222可以定位成使得其指向操作計算設(shè)備200的用戶,并且可以被配置成接收在用戶操作計算設(shè)備200的同時由用戶產(chǎn)生的聲音,例如話音或其它發(fā)聲。

雖然圖2將計算設(shè)備200的cpu202和存儲器204描繪為被集成為單個單元,但可以利用其它配置。cpu202的操作可以分布在可以被直接地或者跨局域網(wǎng)或其它網(wǎng)絡(luò)耦合的多個機(jī)器(每個機(jī)器具有一個或多個處理器)上。存儲器204可以分布在多個機(jī)器上,諸如基于網(wǎng)絡(luò)的存儲器或者執(zhí)行計算設(shè)備200的操作的多個機(jī)器中的存儲器。雖然在這里被描述為單個總線,但計算設(shè)備200的總線212可以由多個總線構(gòu)成。此外,可以將輔助儲存器214直接耦合到計算設(shè)備200的其它組件或者可以經(jīng)由網(wǎng)絡(luò)來訪問,并且可以包括諸如存儲卡的單個集成單元或諸如多個存儲卡的多個單元。因此可以用多種配置來實(shí)現(xiàn)計算設(shè)備200。

圖3是要編碼并隨后解碼的視頻流300的示例的圖。視頻流300包括視頻序列302。在下一層級,視頻序列302包括許多鄰近幀304。雖然將三個幀描繪為鄰近幀304,但視頻序列302可以包括任何數(shù)目的鄰近幀304。然后可以將鄰近幀304細(xì)分成單獨(dú)幀,例如幀306。在下一層級,可以將幀306劃分成一系列平面或片段308。片段(或平面)308可以是例如允許并行處理的幀的子集。片段308還可以是可以將視頻數(shù)據(jù)分離成單獨(dú)色彩的幀的子集。例如,彩色視頻數(shù)據(jù)的幀306可以包括輝度平面和兩個色度平面??梢砸圆煌姆直媛蕦ζ?08進(jìn)行采樣。

無論幀306是否被劃分成片段308,都可以將幀306進(jìn)一步細(xì)分成塊310,塊310可以包含對應(yīng)于例如幀306中的16×16像素的數(shù)據(jù)。還可以將塊310布置成包括來自像素數(shù)據(jù)的一個或多個平面的數(shù)據(jù)。塊310還可以是任何其它適當(dāng)大小,諸如4×4像素、8×8像素、16×8像素、8×16像素、16×16像素或更大。除非另外說明,否則術(shù)語塊包括宏塊??梢匀缦旅娓敿?xì)地討論的那樣根據(jù)本文中的教導(dǎo)將幀306分區(qū)。

圖4是根據(jù)本公開的實(shí)施方式的編碼器400的框圖。如上所述,可以諸如通過提供存儲在例如存儲器204的存儲器中的計算機(jī)軟件程序來在發(fā)送站102中實(shí)現(xiàn)編碼器400。計算機(jī)軟件程序可以包括機(jī)器指令,該機(jī)器指令在被諸如cpu202的處理器執(zhí)行時使發(fā)送站102以圖4中所述的方式編碼視頻數(shù)據(jù)。還可以將編碼器400實(shí)現(xiàn)為包括在例如發(fā)送站102中的專用硬件。編碼器400具有以下各級以在前向路徑(用連接實(shí)線示出)中執(zhí)行各種功能以使用視頻流300作為輸入而產(chǎn)生編碼的或壓縮的比特流420:內(nèi)部/中間預(yù)測級402、變換級404、量化級406以及熵編碼級408。編碼器400還可以包括重構(gòu)路徑(用虛線連接線示出)以重構(gòu)幀用于編碼未來的塊。在圖4中,編碼器400具有以下各級以執(zhí)行重構(gòu)路徑中的各種功能:去量化級410、逆變換級412、重構(gòu)級414以及環(huán)路濾波級416??梢允褂镁幋a器400的其它結(jié)構(gòu)變體來編碼視頻流300。

當(dāng)呈現(xiàn)視頻流300以用于編碼時,可以以塊為單位來處理每個幀306。在內(nèi)部/中間預(yù)測級402,可以使用幀內(nèi)預(yù)測(也稱為內(nèi)部預(yù)測)或幀間預(yù)測(在本文中也稱為中間預(yù)測或中間-預(yù)測)編碼每個塊。在任何情況下,可以形成預(yù)測塊。在內(nèi)部預(yù)測的情況下,預(yù)測塊可以由先前已被編碼并重構(gòu)的當(dāng)前幀中的樣本形成。在中間預(yù)測的情況下,預(yù)測塊可以由一個或多個先前構(gòu)造的參考幀中的樣本形成,如下面更詳細(xì)地討論的。

接下來,仍參考圖4,可以在內(nèi)部/中間預(yù)測級402從當(dāng)前塊減去預(yù)測塊以產(chǎn)生殘余塊(也稱為殘余)。變換級404使用基于塊的變換將殘余變換成例如頻域中的系數(shù)。這種基于塊的變換包括例如離散余弦變換(dct)和不對稱離散正弦變換(adst)。其它基于塊的變換是可能的。此外,可以對單個殘余應(yīng)用不同變換的組合。在變換的應(yīng)用的一個示例中,dct將殘余塊變換到頻域中,其中變換系數(shù)值基于空間頻率。最低頻率(dc)系數(shù)在矩陣的左上方且最高頻率系數(shù)在矩陣的右下方。值得注意的是,預(yù)測塊的大小和因此結(jié)果產(chǎn)生的殘余塊可以不同于變換塊的大小。例如,可以將預(yù)測塊劃分成對其應(yīng)用單獨(dú)變換的更小的塊。

量化級406使用量化器值或量化水平將變換系數(shù)轉(zhuǎn)換成離散量化值,其被稱為量化的變換系數(shù)。例如,變換系數(shù)可以除以量化器值并被截斷。量化的變換系數(shù)然后由熵編碼級408熵編碼??梢允褂萌魏螖?shù)目的技術(shù),包括令牌和二叉樹,來執(zhí)行熵編碼。然后將熵編碼系數(shù)連同用來解碼塊的其它信息,可以包括例如所使用的預(yù)測的類型、變換類型、運(yùn)動矢量和量化器值,一起輸出到壓縮比特流420。還可以將壓縮的比特流420稱為編碼的視頻流或編碼的視頻比特流,并且該術(shù)語將在本文中可互換地使用。

圖4中的重構(gòu)路徑(用虛線連接線示出)可以用來確保編碼器400和解碼器500(下面描述)使用相同的參考幀來解碼壓縮的比特流420。重構(gòu)路徑執(zhí)行與在下面更詳細(xì)描述的解碼過程期間發(fā)生的功能類似的功能,包括在去量化級410對量化的變換系數(shù)去量化,并在逆變換級412對去量化的變換系數(shù)進(jìn)行逆變換以產(chǎn)生導(dǎo)數(shù)殘余塊(也稱為導(dǎo)數(shù)殘余)。在重構(gòu)級414,可以將在內(nèi)部/中間預(yù)測級402預(yù)測的預(yù)測塊與導(dǎo)數(shù)殘余相加以創(chuàng)建重構(gòu)塊。可以將環(huán)路濾波級416應(yīng)用于重構(gòu)塊以減少諸如塊偽影的失真。

可以使用編碼器400的其它變體來編碼壓縮的比特流420。例如,基于非變換的編碼器400可以針對某些塊或幀在沒有變換級404的情況下直接地將殘余信號量化。在另一實(shí)施方式中,編碼器400可以使量化級406和去量化級410組合成單個級。

圖5是根據(jù)本公開的另一實(shí)施方式的解碼器500的框圖??梢岳缤ㄟ^提供存儲在存儲器204中的計算機(jī)軟件程序來在接收站106中實(shí)現(xiàn)解碼器500。計算機(jī)軟件程序可以包括機(jī)器指令,該機(jī)器指令在被諸如cpu202之類的處理器執(zhí)行時使接收站106以圖5中所述的方式解碼視頻數(shù)據(jù)。還可以將解碼器500實(shí)現(xiàn)為包括在例如發(fā)送站102或接收站106中的硬件。

類似于上文所討論的編碼器400的重構(gòu)路徑,解碼器500在一個示例中包括以下各級以執(zhí)行各種功能以從壓縮的比特流420產(chǎn)生輸出視頻流516:熵解碼級502、去量化級504、逆變換級506、內(nèi)部/中間預(yù)測級508、重構(gòu)級510、環(huán)路濾波級512和去塊濾波級514.??梢允褂媒獯a器500的其它結(jié)構(gòu)變體來解碼壓縮的比特流420。

當(dāng)壓縮的比特流420被呈現(xiàn)用于解碼時,壓縮的比特流420內(nèi)的數(shù)據(jù)元素可以被熵解碼級502解碼以產(chǎn)生一組量化的變換系數(shù)。去量化級504將量化的變換系數(shù)去量化(例如,通過將量化的變換系數(shù)乘以量化器值),并且逆變換級506使用所選的變換類型對去量化的變換系數(shù)進(jìn)行逆變換,以產(chǎn)生可以與由編碼器400中的逆變換級412創(chuàng)建的導(dǎo)數(shù)殘余相同的導(dǎo)數(shù)殘余。使用從壓縮的比特流420解碼的報頭信息,解碼器500可使用內(nèi)部/中間預(yù)測級508來創(chuàng)建與在編碼器400,例如,在內(nèi)部/中間預(yù)測級402,創(chuàng)建的預(yù)測塊相同的預(yù)測塊。在重構(gòu)級510,可以將預(yù)測塊與導(dǎo)數(shù)殘余相加以創(chuàng)建重構(gòu)塊??梢詫h(huán)路濾波級512應(yīng)用于重構(gòu)塊以減少塊偽影??梢詫χ貥?gòu)塊應(yīng)用其它濾波。在本示例中,對重構(gòu)塊應(yīng)用去塊濾波級514以減少塊狀失真,并且結(jié)果被作為輸出視頻流516而輸出。也可以將輸出視頻流516稱為解碼的視頻流,并且該術(shù)語將在本文中可互換地使用。

可以使用解碼器500的其它結(jié)構(gòu)變體來解碼壓縮的比特流420。例如,解碼器500可以在沒有去塊濾波級514的情況下輸出視頻流516。

圖6是根據(jù)本公開的一個實(shí)施方式的用于通過使用先前幀的運(yùn)動矢量預(yù)測來編碼或解碼塊的過程600的流程圖??梢栽谥T如計算設(shè)備200之類的系統(tǒng)中實(shí)現(xiàn)方法或過程600以幫助視頻流的編碼或解碼??梢岳鐚⑦^程600實(shí)現(xiàn)為由計算設(shè)備,諸如及發(fā)送站102或接收站106,執(zhí)行的軟件程序。軟件程序可以包括存儲在諸如存儲器204的存儲器中的機(jī)器可讀指令,其在被諸如cpu202的處理器執(zhí)行時使計算設(shè)備執(zhí)行過程600。還可以整體地或部分地使用硬件來實(shí)現(xiàn)過程600。如上所述,某些計算設(shè)備可以具有多個存儲器和多個處理器,在這種情況下可以使用不同的處理器和存儲器來分配過程600的步驟或操作。術(shù)語“處理器”和“存儲器”在本文中以單數(shù)形式的使用包含具有僅一個處理器或一個存儲器的計算設(shè)備以及具有每個可以在某些但不一定是所有敘述步驟的執(zhí)行中使用的多個處理器或存儲器的計算機(jī)設(shè)備。

為了簡化說明,將過程600描繪并描述為一系列步驟或操作。然而,根據(jù)本公開的步驟和操作可以按照各種順序和/或同時地發(fā)生。另外,根據(jù)本公開的步驟或操作可以與在本文中未提出和描述的其它步驟或操作一起發(fā)生。此外,并非所有步驟或操作都是實(shí)現(xiàn)根據(jù)本公開主題的方法所要求的??梢詫斎胄盘柕拿總€幀重復(fù)過程600。

當(dāng)過程600是編碼過程時,輸入信號可以是例如視頻流300。輸入信號可以以任意數(shù)目的方式被執(zhí)行過程600的計算設(shè)備200接收。例如,輸入信號可以被圖像傳感設(shè)備220捕捉,或通過連接到總線212的輸入從另一設(shè)備接收。在另一實(shí)施方式中可以從輔助儲存器214檢索輸入信號。輸入信號的其它接收方式及其它來源是可能的。例如,當(dāng)過程600是解碼過程時,輸入信號可以是諸如壓縮的比特流420的編碼的比特流。

視頻壓縮方案可以首先將圖像幀劃分成大的塊。編碼器可以將大的塊遞歸地分解成更小的塊??梢杂靡粋€或多個樹形結(jié)構(gòu)來表示塊之間的這些遞歸關(guān)系。對于表示樹形結(jié)構(gòu)上的葉節(jié)點(diǎn)的每個塊,編碼器可以選擇內(nèi)部或中間預(yù)測來產(chǎn)生預(yù)測塊。編碼器然后可以使用無損代數(shù)編碼來編碼使用預(yù)測塊形成的殘余塊。公開的實(shí)施方式的各方面包括用于針對難以預(yù)測的塊產(chǎn)生更好的預(yù)測塊,以便改善預(yù)測的質(zhì)量并因此改善總體編碼效率的新的預(yù)測模式。

在視頻壓縮方案中,單獨(dú)塊的編碼可以基于內(nèi)部預(yù)測或中間預(yù)測。在中間預(yù)測的情況下,預(yù)測模式可以包括使用針對在與當(dāng)前塊相同的幀中的塊生成的運(yùn)動矢量來指示運(yùn)動矢量預(yù)測的模式。在本文中公開的各方面包括使用與當(dāng)前幀的塊共位的先前幀的塊相關(guān)聯(lián)的加權(quán)運(yùn)動矢量來指示運(yùn)動矢量預(yù)測的新預(yù)測模式。

圖7是示出沿著時間標(biāo)度t的視頻流700的幀702、704、706、708、710、712的圖。視頻流700包括當(dāng)前幀710和當(dāng)前塊716。視頻流還包括先前幀704的共位塊714。共位塊714與當(dāng)前塊716共位。在平滑變化的視頻中,共位塊可以具有與當(dāng)前塊的運(yùn)動矢量非常類似的運(yùn)動矢量。共位塊714包括由標(biāo)記為mv1_prev7和mv2_prev的矢量指示的運(yùn)動矢量。共位塊還包括時間距離t1_prev和t2_prev。圖7還示出了具有由標(biāo)記為mv1_curr和mv2_curr的矢量指示的運(yùn)動矢量的當(dāng)前幀710的當(dāng)前塊716。當(dāng)前塊還包括時間距離t1_curr和t2_curr。

運(yùn)動矢量表示不同視頻幀之間的時間相關(guān)性,并且此類相關(guān)性與在當(dāng)前幀與其參考幀之間經(jīng)歷的時間間隔緊密相關(guān)。如圖7所示,針對先前編碼幀中的共位塊,其可以具有多達(dá)2個運(yùn)動矢量,一個前向(mv1_prev)參考過去的參考幀,一個后向(mv2_prev)參考未來的參考幀。t1_prev指示先前幀與其前向參考幀之間的時間間隔,而t2_prev指示先前幀與其后向參考幀之間的時間間隔。同樣地,當(dāng)前幀還可以具有多達(dá)2個運(yùn)動矢量mv1_curr和mv2_curr,并且兩個時間間隔t1_curr和t2_curr指示當(dāng)前幀與其自身的前向參考幀和后向參考幀之間的時間。

假設(shè)幀之間的平移運(yùn)動大部分是平滑的,可以檢查先前幀與其參考之間的時間間隔,并且將其與在當(dāng)前幀與其自身的參考之間的時間間隔進(jìn)行比較??梢詫参粔K的先前運(yùn)動矢量進(jìn)行相應(yīng)地縮放以匹配兩個時間間隔之間的比率,然后用作運(yùn)動矢量參考候選,以用于當(dāng)前運(yùn)動矢量的編碼。

例如,為了編碼用于當(dāng)前塊的前向運(yùn)動矢量mv1_curr,如果mv1_prev或mv2_prev可用,則可以使用mv1_prev或mv2_prev作為用于mv1_curr的編碼的運(yùn)動矢量參考候選:

運(yùn)動矢量參考候選1:mv1_prev/t1_prev*t1_curr

運(yùn)動矢量參考候選2:mv2_prev/t2_prev*t1_curr

同樣地,我們可以獲得用于mv2_curr的編碼的兩個運(yùn)動矢量參考候選:

運(yùn)動矢量參考候選1:mv1_prev/t1_prev*t2_curr

運(yùn)動矢量參考候選2:mv2_prev/t2_prev*t2_curr

返回圖6,在步驟602,過程600可以確定用于共位塊714的先前幀時間距離,例如t1_prev和t2_prev。公開的實(shí)施方式的各方面可以例如通過檢查與共位塊714相關(guān)聯(lián)的比特來確定t1_prev和t2_prev。這些比特在接收到i幀時被重置,并且可以通過將其編碼為與當(dāng)前幀相比的幀中的偏移來指示時間距離。當(dāng)解碼器處理幀時,如果幀被用于向前預(yù)測就增加偏移,且如果幀被用于向后預(yù)測就減小偏移,從而更新偏移以表示正確的時間距離。

在步驟604,過程600可以確定用于當(dāng)前塊716的當(dāng)前幀時間距離,例如t1_curr和t2_curr。公開的實(shí)施方式的各方面可以從包括在視頻流700中的信息確定t1_curr和t2_curr以執(zhí)行運(yùn)動預(yù)測。在步驟606,過程600可以例如從包括在視頻流中并存儲在共位塊714處的比特確定先前運(yùn)動矢量mv1_prev和mv2_prev。在步驟608,過程600可以基于當(dāng)前時間距離與先前時間距離的組合來對先前運(yùn)動矢量加權(quán)。如在圖7能夠看出,由于時間距離t1_prev和t2_prev可以不同于時間距離t1_curr和t2_curr,所以矢量mv1_prev和mv2_prev可以不同于矢量mv1_curr和mv2_curr。可以相應(yīng)地對共位塊的先前運(yùn)動矢量mv1_prev和mv2_prev進(jìn)行加權(quán)或縮放以匹配兩個時間間隔之間的比率。此類加權(quán)或縮放運(yùn)動可以提供對當(dāng)前運(yùn)動矢量的編碼的有效預(yù)測。

返回圖6,在步驟610,過程600解碼當(dāng)前塊716??梢允褂卯?dāng)前運(yùn)動矢量來解碼當(dāng)前塊714,當(dāng)前運(yùn)動矢量是通過將在用于當(dāng)前塊716的視頻流中發(fā)送的運(yùn)動矢量與來自步驟608的加權(quán)的預(yù)測運(yùn)動矢量mv1_prev和mv1_prev相加以生成當(dāng)前運(yùn)動矢量mv1_curr和mv2_curr而形成的。當(dāng)前運(yùn)動矢量mv1_curr和mv2_curr與當(dāng)前參考幀708一起被使用以預(yù)測當(dāng)前塊716。

根據(jù)公開的實(shí)施方式的方面將塊編碼包括確定加權(quán)的預(yù)測運(yùn)動矢量mv1_prev和mv2_prev并從當(dāng)前運(yùn)動矢量mv1_curr和mv2_curr中減去,并將該差作為小的固定數(shù)目的比特編碼到視頻流中,連同指示此中間預(yù)測模式使用先前幀中的共位塊的比特一起作為運(yùn)動矢量。因此,公開的方面向每個參考幀的幀報頭添加表示時間信息的比特。當(dāng)前,在某些編解碼器中,單個符號比特與每個參考幀相關(guān)聯(lián),指示該參考幀是在時間上位于當(dāng)前幀之前還是之后??梢韵蛎總€參考幀添加其它時間信息,例如可以使用固定數(shù)目的比特來編碼當(dāng)前編碼幀與參考幀之間的時間距離(間隔)。使用此類時間距離信息,可以獲得更多時間運(yùn)動矢量參考候選以更有效地編碼當(dāng)前運(yùn)動矢量。此類縮放的運(yùn)動矢量處理可以在編解碼器中提供新的中間預(yù)測編碼模式以用于更高效的編碼。

向用于每個參考幀的幀報頭添加時間信息可能招致比特速率成本損失。為了有效地將此類時間信息編碼,公開實(shí)施方式的信息方面跟蹤參考幀緩沖器上的更新。例如,當(dāng)參考幀緩沖器被更新時,如果i幀或關(guān)鍵幀正在被編碼并置于參考幀緩沖器中,則可以將用于每個參考幀的時間間隔的絕對值編碼并寫入視頻流中。否則,如果i幀正在被編碼并寫入視頻流,則針對未被刷新且保留在參考緩沖器中以用于下一幀的編碼的那些參考幀而言,它們相應(yīng)的時間間隔可以因此被重新計算,而不需要比特流中的任何附加信息,如下:如果參考幀被用于前向預(yù)測,則其時間間隔增加一個幀間隔;否則,如果其被用于后向預(yù)測,則其時間間隔減小一個幀間隔。如果參考幀被刷新,則其時間間隔然后將被重置,并且相應(yīng)的絕對值被編碼并寫入到比特流。以這種方式,可以在保持相同的解碼視頻質(zhì)量的同時使描述運(yùn)動矢量的比特數(shù)最小化。

上文所述的編碼和解碼的方面示出了編碼和解碼技術(shù)的某些示例。然而,應(yīng)理解的是編碼和解碼(如在權(quán)利要求中使用的那些術(shù)語)可以意指數(shù)據(jù)的壓縮、解壓縮、變換或任何其它處理或改變。

單詞“示例”和“方面”在本文中被用來意指充當(dāng)示例、實(shí)例或說明。在本文中描述為“示例”或“方面”的任何方面或設(shè)計不一定要理解為相對于其它方面或設(shè)計而言是優(yōu)選或有利的。相反地,單詞“示例”或“方面”的使用旨在以具體的方式呈現(xiàn)概念。如在本申請中使用的術(shù)語“或”旨在表示包括性的“或”而不是排他性的“或”。也就是說,除非另外指定,或者從上下文顯而易見,“x包括a或b”意圖意指任何的自然包括性替換。也就是說,如果x包括a;x包括b;或者x包括a和b兩者,則根據(jù)任何前述實(shí)例,滿足“x包括a或b”。另外,除非另外指明或者從上下文顯而易見的是針對單數(shù)形式,否則在本申請和所附權(quán)利要求中使用的冠詞“一”和“一個”一般地應(yīng)被理解成意指“一個或多個”。此外,除非這樣描述,否則貫穿全文使用的術(shù)語“實(shí)施方式”或“一個實(shí)施方式”并不旨在表示相同的實(shí)施例或?qū)嵤┓绞健?/p>

可以用硬件、軟件或其任何組合來實(shí)現(xiàn)發(fā)送站102和/或接收站106(以及存儲在其上和/或從而被執(zhí)行,包括通過編碼器400和解碼器500的算法、方法、指令等)的實(shí)施方式。硬件可以包括例如計算機(jī)、知識產(chǎn)權(quán)(ip)核心、專用集成電路(asic)、可編程邏輯陣列、光學(xué)處理器、可編程邏輯控制器、微代碼、微控制器、服務(wù)器、微處理器、數(shù)字信號處理器或任何其它適當(dāng)電路。在權(quán)利要求中,應(yīng)將術(shù)語“處理器”應(yīng)當(dāng)被理解為單獨(dú)地或以組合方式地包含任何前述硬件。術(shù)語“信號”和“數(shù)據(jù)”被可互換地使用。此外,發(fā)送站102和接收站106的各部分不一定必須用相同的方式實(shí)現(xiàn)。

此外,在一個方面,例如,可以使用具有計算機(jī)程序的通用計算機(jī)或通用處理器實(shí)現(xiàn)發(fā)送站102或接收站106,計算機(jī)程序在被執(zhí)行時執(zhí)行本文所述的任何相應(yīng)的方法、算法和/或指令。另外或替換地,例如,可以利用專用計算機(jī)/處理器,其可以包含用于執(zhí)行本文中所述的任何方法、算法或指令的其它硬件。

例如可以在視頻會議系統(tǒng)中的計算機(jī)上實(shí)現(xiàn)發(fā)送站102和接收站106。替換地,可以在服務(wù)器上實(shí)現(xiàn)發(fā)送站102,并且可以在諸如手持式通信設(shè)備的與服務(wù)器分開的設(shè)備上實(shí)現(xiàn)接收站106。在這種情況下,發(fā)送站102可以使用編碼器400將內(nèi)容編碼成編碼的視頻信號并將編碼的視頻信號發(fā)送到通信設(shè)備。進(jìn)而,通信設(shè)備然后可以使用解碼器500將編碼的視頻信號解碼。替換地,通信設(shè)備可以將在通信設(shè)備上本地存儲的內(nèi)容,例如并非由發(fā)送站102發(fā)送的內(nèi)容,解碼。其它適當(dāng)?shù)陌l(fā)送和接收實(shí)現(xiàn)方案是可用的。例如,接收站106可以是通常固定的個人計算機(jī)而不是便攜式通信設(shè)備,和/或包括編碼器400的設(shè)備還可以包括解碼器500。

此外,本教導(dǎo)的所有實(shí)施方式或其一部分可以采取從例如有形計算機(jī)可用或計算機(jī)可讀介質(zhì)可訪問的計算機(jī)程序產(chǎn)品的形式。計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是能夠例如有形地包含、存儲、傳送或傳輸程序以供任何處理器使用或與之相結(jié)合地使用的任何設(shè)備。該介質(zhì)可以是例如電子、磁性、光學(xué)、電磁或半導(dǎo)體設(shè)備。其它適當(dāng)介質(zhì)也是可用的。

描述上述實(shí)施例、實(shí)施方式和方面是為了允許容易地理解本發(fā)明而不限制本發(fā)明。相反地,本發(fā)明旨在涵蓋包括在所附權(quán)利要求范圍內(nèi)的各種修改和等價布置,該范圍符合最寬泛的解釋從而涵蓋根據(jù)法律許可的所有此類修改和等價結(jié)構(gòu)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
昌黎县| 密山市| 井研县| 漳州市| 桃园县| 乌鲁木齐县| 诸暨市| 车险| 钟山县| 郑州市| 萝北县| 东城区| 郑州市| 县级市| 遵义县| 旬邑县| 余干县| 广宁县| 钟祥市| 女性| 渝中区| 新建县| 彰武县| 茶陵县| 土默特左旗| 大丰市| 仁化县| 余庆县| 色达县| 桃源县| 杨浦区| 阜新市| 江达县| 潮州市| 女性| 墨玉县| 郁南县| 宝山区| 武山县| 贞丰县| 北流市|