本公開(kāi)通常涉及編碼和解碼視頻數(shù)據(jù),并且尤其是,涉及使用參考運(yùn)動(dòng)矢量的視頻編碼。
背景技術(shù):
數(shù)字視頻流可以表示使用幀序列或者靜止圖像的視頻。數(shù)字視頻可以用于各種各樣的應(yīng)用,例如包括視頻會(huì)議、高分辨率視頻娛樂(lè)、視頻廣告,或者用戶(hù)產(chǎn)生的視頻的共享。數(shù)字視頻流可以包含大量的數(shù)據(jù),并且耗費(fèi)巨大的計(jì)算量或者用于視頻數(shù)據(jù)的處理、傳輸或者存儲(chǔ)的計(jì)算設(shè)備的通信資源。已經(jīng)提出減小在視頻流中的數(shù)據(jù)量的各種各樣的方法,包括壓縮和其它的編碼技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
按照本公開(kāi)的一個(gè)實(shí)施例的用于解碼視頻流的方法,包括:對(duì)于當(dāng)前塊識(shí)別用于編碼在當(dāng)前幀內(nèi)的當(dāng)前塊的參考幀,使用參考?jí)K生成用于參考幀的參考運(yùn)動(dòng)矢量候選列表,通過(guò)從當(dāng)前塊到提供運(yùn)動(dòng)矢量的參考?jí)K的距離,并通過(guò)運(yùn)動(dòng)矢量的流行性值(popularityvalue),排名在參考運(yùn)動(dòng)矢量候選列表內(nèi)的每個(gè)運(yùn)動(dòng)矢量,運(yùn)動(dòng)矢量的流行性值表示運(yùn)動(dòng)矢量被參考?jí)K使用的水平,基于該排名將運(yùn)動(dòng)矢量分配給多個(gè)幀間預(yù)測(cè)模式,選擇用于解碼當(dāng)前塊的幀間預(yù)測(cè)模式,和使用幀間預(yù)測(cè)模式解碼當(dāng)前塊。參考?jí)K可以包括當(dāng)前幀的空間相鄰塊、在先前幀內(nèi)的并置塊,和在先前幀內(nèi)的并置塊的空間相鄰塊,或者其它參考?jí)K。
也提供了用于解碼視頻流的對(duì)應(yīng)裝置,例如一種處理器和存儲(chǔ)器裝置,該存儲(chǔ)器存儲(chǔ)使得處理器執(zhí)行以上方法的指令。
按照本公開(kāi)的一個(gè)實(shí)施例用于編碼視頻流的方法,包括:對(duì)于多個(gè)參考幀的每個(gè),識(shí)別用于使用參考?jí)K編碼在當(dāng)前幀內(nèi)的當(dāng)前塊的候選運(yùn)動(dòng)矢量,通過(guò)提供相應(yīng)的候選運(yùn)動(dòng)矢量的相應(yīng)參考?jí)K距當(dāng)前塊的距離,并且通過(guò)運(yùn)動(dòng)矢量的流行性值,排名在用于參考幀的參考運(yùn)動(dòng)矢量候選列表內(nèi)的候選運(yùn)動(dòng)矢量,運(yùn)動(dòng)矢量的流行性值表示運(yùn)動(dòng)矢量被參考?jí)K使用的水平,基于該排名將運(yùn)動(dòng)矢量分配給多個(gè)幀間預(yù)測(cè)模式,選擇用于編碼當(dāng)前塊的幀間預(yù)測(cè)模式,和使用幀間預(yù)測(cè)模式編碼當(dāng)前塊。
也提供了用于編碼視頻流的對(duì)應(yīng)裝置,例如一種包括處理器和存儲(chǔ)器的裝置,該存儲(chǔ)器存儲(chǔ)使得處理器執(zhí)行以上方法的指令。也提供了一種或多種計(jì)算機(jī)可讀介質(zhì),其提供計(jì)算機(jī)程序代碼,該供計(jì)算機(jī)程序代碼被布置為擋在適合的計(jì)算機(jī)裝置上執(zhí)行時(shí),實(shí)施在此描述的編碼和/或解碼方法和裝置。
在本公開(kāi)的這些和其它的方面中的變化將在下面在附加的細(xì)節(jié)方面描述。
附圖說(shuō)明
在此處描述提到如下所述的伴隨的附圖,其中相同的參考數(shù)字貫穿幾個(gè)視圖涉及相同的部分。
圖1是視頻編碼和解碼系統(tǒng)的示意圖。
圖2是可以實(shí)現(xiàn)發(fā)送站或者接收站的計(jì)算設(shè)備示例的方框圖。
圖3是要編碼和隨后解碼的視頻流的圖。
圖4是按照在此處教導(dǎo)的一個(gè)方面的視頻壓縮系統(tǒng)的方框圖。
圖5是按照在此處教導(dǎo)的另一個(gè)方面的視頻解壓縮系統(tǒng)的方框圖。
圖6是按照本公開(kāi)的一個(gè)實(shí)施例用于使用參考運(yùn)動(dòng)矢量編碼視頻流過(guò)程的流程圖。
圖7是用于解釋在圖6的過(guò)程內(nèi)的候選運(yùn)動(dòng)矢量的標(biāo)識(shí)的幀序列的圖。
圖8是按照本公開(kāi)的實(shí)施例用于使用參考運(yùn)動(dòng)矢量解碼編碼的視頻流過(guò)程的流程圖。
具體實(shí)施方式
與編碼視頻流相關(guān)的壓縮方案可以包括將每個(gè)圖像分解為塊,并且使用一個(gè)或多個(gè)技術(shù)產(chǎn)生數(shù)字視頻輸出位流以限制包括在該輸出中的信息。接收的位流可以被解碼以從有限的信息重新生成該塊和源圖像。編碼視頻流,或者其一部分,諸如幀或者塊可以包括使用視頻流中的時(shí)間和空間相似性以改善編碼效率。例如,視頻流的當(dāng)前塊可以通過(guò)基于視頻流中的先前編碼塊預(yù)測(cè)用于當(dāng)前塊的運(yùn)動(dòng)和顏色信息,和識(shí)別在預(yù)測(cè)值和當(dāng)前塊之間的差值(殘差),基于先前編碼塊編碼。以這種方法,僅僅用于產(chǎn)生其的殘差和參數(shù)需要被添加到該位流,而不是包括當(dāng)前塊的整體。這種技術(shù)可以稱(chēng)為幀間預(yù)測(cè)。
在幀間預(yù)測(cè)中的參數(shù)中的一個(gè)是運(yùn)動(dòng)矢量,其表示先前編碼塊相對(duì)于該當(dāng)前塊的空間位移。運(yùn)動(dòng)矢量可以使用運(yùn)動(dòng)估算的方法,諸如運(yùn)動(dòng)搜索。在運(yùn)動(dòng)搜索中,參考幀的一部分可以被轉(zhuǎn)換為一連串的位置以形成預(yù)測(cè)塊,其可以被從當(dāng)前幀的一部分中減去以形成一系列的殘差。對(duì)應(yīng)于具有最小殘差的位置的x和y轉(zhuǎn)換可以被選擇為運(yùn)動(dòng)矢量。表示運(yùn)動(dòng)矢量的位可以包括在編碼的位流中,以允許解碼器再現(xiàn)預(yù)測(cè)塊,并且解碼與運(yùn)動(dòng)矢量相關(guān)聯(lián)的編碼的視頻位流的該部分。
對(duì)于視頻壓縮方案,用于編碼運(yùn)動(dòng)矢量的位數(shù)目可能是很大的,特別地,對(duì)于以較低的數(shù)據(jù)速率或者較高的壓縮比編碼的視頻流。為了改善編碼效率,運(yùn)動(dòng)矢量可以使用參考運(yùn)動(dòng)矢量差分地編碼,即,僅僅在運(yùn)動(dòng)矢量和參考運(yùn)動(dòng)矢量之間的差值被編碼。在有些情況下,參考運(yùn)動(dòng)矢量可以是從在視頻流中先前地使用的運(yùn)動(dòng)矢量中選擇出來(lái)的,例如,來(lái)自相鄰塊的最后的非零運(yùn)動(dòng)矢量。選擇先前地使用的運(yùn)動(dòng)矢量編碼當(dāng)前的運(yùn)動(dòng)矢量可以進(jìn)一步減小包括在編碼的視頻位流中的位數(shù),并且從而減小傳輸和存儲(chǔ)帶寬需求。運(yùn)動(dòng)矢量參考模式允許編碼塊從先前編碼的相鄰塊推斷運(yùn)動(dòng)信息。
參考運(yùn)動(dòng)矢量候選列表可以按照在參考?jí)K和正在編碼的當(dāng)前塊之間的距離構(gòu)成。但是,僅按照該塊距離排名忽略了運(yùn)動(dòng)矢量可以由多個(gè)塊使用。在參考區(qū)域中多少像素正在使用運(yùn)動(dòng)矢量可以表示運(yùn)動(dòng)矢量是用于當(dāng)前塊的有效運(yùn)動(dòng)矢量的似然性。
如提及的,相鄰塊可用于構(gòu)成參考運(yùn)動(dòng)矢量候選列表。為了編碼器和解碼器使用相同的信息,使用先前編碼塊。當(dāng)以光柵掃描順序編碼時(shí),這在可用的程度將相鄰塊限制為當(dāng)前塊的左側(cè)和上面的相鄰塊。也可以考慮來(lái)自先前幀(也稱(chēng)作最后的幀)的并置塊。但是,并置塊是位于具有與當(dāng)前塊相同的像素位置的最后的幀中的塊,因此,潛在地來(lái)自當(dāng)前塊的右側(cè)和底部的有用的運(yùn)動(dòng)信息仍然被省略。
不考慮參考運(yùn)動(dòng)矢量候選列表如何構(gòu)成,可能存在固定數(shù)目的運(yùn)動(dòng)矢量參考模式,諸如兩個(gè)。固定數(shù)目的參考模式的使用可能是低效的。例如,如果參考運(yùn)動(dòng)矢量候選列表具有小于固定數(shù)目的運(yùn)動(dòng)矢量,可能需要零個(gè)運(yùn)動(dòng)矢量填充沒(méi)有運(yùn)動(dòng)矢量的模式。在其它情況下,參考運(yùn)動(dòng)矢量候選列表可以具有大于固定數(shù)目的運(yùn)動(dòng)矢量。省略的運(yùn)動(dòng)矢量可能是比保留的更好的候選,也就是說(shuō),省略的運(yùn)動(dòng)矢量可能導(dǎo)致在編碼當(dāng)前塊時(shí)更好的速率和/或更小的失真。
在本公開(kāi)的實(shí)施例中,壓縮性能可以通過(guò)采用有效的參考運(yùn)動(dòng)矢量排名制度而改善,繼之以動(dòng)態(tài)運(yùn)動(dòng)矢量參考模式,其充分地考慮可用的運(yùn)動(dòng)矢量候選列表。在排名制度中,例如,用于具有單個(gè)參考幀的塊的參考運(yùn)動(dòng)矢量候選可以按照離當(dāng)前塊和覆蓋范圍(例如,運(yùn)動(dòng)矢量的使用)兩者的相對(duì)距離排名。對(duì)于具有復(fù)合(例如,兩個(gè))參考幀的塊,來(lái)自共享相同的參考幀組合的參考?jí)K的候選運(yùn)動(dòng)矢量可以以較高優(yōu)先級(jí)排名。在此下面排名的選擇性地是來(lái)自具有單個(gè)參考幀的相鄰塊的運(yùn)動(dòng)矢量的組合。在確定運(yùn)動(dòng)矢量候選時(shí),可以考慮與并置塊的下面和右邊的塊相關(guān)聯(lián)的運(yùn)動(dòng)信息以便獲得其運(yùn)動(dòng)方向。最后,動(dòng)態(tài)運(yùn)動(dòng)矢量參考模式可以使用許多的模式,其取決于參考運(yùn)動(dòng)矢量候選列表的大小,使得潛在地丟失有價(jià)值的參考信息的機(jī)會(huì)減小。
參考運(yùn)動(dòng)矢量可以是基于在參考?jí)K和當(dāng)前塊之間的距離,和參考運(yùn)動(dòng)矢量的流行性(popularity)從候選運(yùn)動(dòng)矢量中選擇出來(lái)的。例如,在參考?jí)K和當(dāng)前塊之間的距離可以基于在先前編碼塊中的像素和在當(dāng)前塊中的對(duì)應(yīng)并置像素之間的以像素為單位測(cè)量的空間位移。例如,運(yùn)動(dòng)矢量的流行性可以基于使用該運(yùn)動(dòng)矢量的先前編碼的像素量。使用該運(yùn)動(dòng)矢量的先前編碼的像素越多,該運(yùn)動(dòng)矢量的概率越高。在一個(gè)示例中,流行性值是使用該運(yùn)動(dòng)矢量的先前編碼的像素的數(shù)目。在另一個(gè)示例中,流行性值是在使用該運(yùn)動(dòng)矢量的區(qū)域內(nèi)先前編碼的像素的百分比。
由于當(dāng)前塊與在參考?jí)K中的像素的接近,在很多情況下,可能當(dāng)前塊具有與那些像素類(lèi)似的運(yùn)動(dòng)特征。因此,在接近當(dāng)前塊的參考?jí)K中使用的候選運(yùn)動(dòng)矢量可能緊密地類(lèi)似用于當(dāng)前塊的實(shí)際運(yùn)動(dòng)矢量。另外,由在接近當(dāng)前塊的參考?jí)K中最大量的像素使用的候選運(yùn)動(dòng)矢量將進(jìn)一步類(lèi)似用于當(dāng)前塊的實(shí)際運(yùn)動(dòng)矢量。由于這個(gè)緣故,具有在附近的參考?jí)K中使用的最高流行性的候選運(yùn)動(dòng)矢量的運(yùn)動(dòng)矢量可以被選擇為用于當(dāng)前塊的實(shí)際運(yùn)動(dòng)矢量的參考運(yùn)動(dòng)矢量。較少的位可通過(guò)編碼在運(yùn)動(dòng)矢量方面的小差別用于編碼實(shí)際運(yùn)動(dòng)矢量,從而,改善總體編碼效率。在下文中論述可以使用選擇的運(yùn)動(dòng)矢量的其它的方法。
候選運(yùn)動(dòng)矢量可以局限于空間-時(shí)間相鄰運(yùn)動(dòng)矢量。也就是說(shuō),候選運(yùn)動(dòng)矢量的池可以是從當(dāng)前塊的鄰區(qū)域的區(qū)域中選擇出來(lái)的。在一些視頻編碼方案中,特別地,其中視頻幀被亂序(outoforder)編碼的那些,所希望的是來(lái)自遠(yuǎn)古或者未來(lái)的視頻幀的運(yùn)動(dòng)信息包括在候選運(yùn)動(dòng)矢量的池中。能夠亂序編碼視頻幀例如可以在所謂的“替換參考幀(alternatereferenceframe)”,也就是說(shuō),非時(shí)間相鄰于緊挨在它們前面和后面編碼的幀的編碼中發(fā)生。替換參考幀可以是合成的幀,其在輸入視頻流中不出現(xiàn),或者是為了預(yù)測(cè)而對(duì)于在輸入視頻流中的一個(gè)的復(fù)制幀,并且通常是在解碼之后不顯示的。這樣的幀可以類(lèi)似于在非相鄰的未來(lái)的視頻幀。亂序編碼可能發(fā)生的另一個(gè)示例是通過(guò)使用所謂的“黃金參考幀(goldenreferenceframe)”,其是可以或者可以不相鄰于當(dāng)前視頻幀的重建的視頻幀,并且存儲(chǔ)在存儲(chǔ)器中用作參考幀,直到例如被新的黃金參考幀取代為止。
在此處,除了相鄰視頻幀之外,替換參考幀和黃金參考幀(也稱(chēng)作替換幀和黃金幀)可用于推斷用于視頻數(shù)據(jù)幀的塊的運(yùn)動(dòng)矢量候選。在首先描述本公開(kāi)可以實(shí)現(xiàn)的環(huán)境之后,在此處描述其它的細(xì)節(jié)。
圖1是視頻編碼和解碼系統(tǒng)100的示意圖。發(fā)送站102例如可以是具有諸如在圖2中描述的硬件的內(nèi)部配置的計(jì)算機(jī)。但是,發(fā)送站102的其它的實(shí)施例是可能的。例如,發(fā)送站102的處理可以在多個(gè)設(shè)備之中分配。
網(wǎng)絡(luò)104可以連接用于視頻流的編碼和解碼的發(fā)送站102和接收站106。特別地,視頻流可以在發(fā)送站102中編碼,并且編碼的視頻流可以在接收站106中解碼。網(wǎng)絡(luò)104例如可以是因特網(wǎng)。網(wǎng)絡(luò)104還可以是局域網(wǎng)(lan)、廣域網(wǎng)(wan)、虛擬專(zhuān)用網(wǎng)絡(luò)(vpn)、蜂窩電話(huà)網(wǎng)絡(luò),或者在這個(gè)示例中,從發(fā)送站102到接收站106傳送視頻流的任何其它的裝置。
在一個(gè)示例中,接收站106可以是具有諸如在圖2中描述的硬件的內(nèi)部配置的計(jì)算機(jī)。但是,接收站106的其它的實(shí)施例是可能的。例如,接收站106的處理可以在多個(gè)設(shè)備之中分配。
視頻編碼和解碼系統(tǒng)100的其它的實(shí)施例是可能的。例如,一個(gè)實(shí)施例可以省略網(wǎng)絡(luò)104。在另一個(gè)實(shí)施例中,視頻流可以被編碼,然后存儲(chǔ)供在以后的時(shí)間里傳輸?shù)浇邮照?06,或者具有存儲(chǔ)器的任何其它的設(shè)備。在一個(gè)實(shí)施例中,接收站106接收(例如,經(jīng)由網(wǎng)絡(luò)104、計(jì)算機(jī)總線(xiàn),和/或一些通信通道)編碼的視頻流,并且存儲(chǔ)供稍后解碼的視頻流。在一個(gè)示例實(shí)施例中,實(shí)時(shí)傳輸協(xié)議(rtp)用于經(jīng)網(wǎng)絡(luò)104編碼的視頻的傳輸。在另一個(gè)實(shí)施例中,可以使用除rtp以外的傳輸協(xié)議,例如,基于超級(jí)文本傳輸協(xié)議(http)的視頻流協(xié)議。
當(dāng)在視頻會(huì)議系統(tǒng)中使用時(shí),例如,發(fā)送站102和/或接收站106可以包括如下所述的編碼和解碼視頻流兩者的能力。例如,接收站106可以是視頻會(huì)議參加者,其從視頻會(huì)議服務(wù)器(例如,發(fā)送站102)接收編碼的視頻位流以解碼和觀看,并且進(jìn)一步編碼和向視頻會(huì)議服務(wù)器發(fā)送其自己的視頻位流,供由其它的參加者解碼和觀看。
圖2是可以實(shí)現(xiàn)發(fā)送站或者接收站的計(jì)算設(shè)備200示例的方框圖。例如,計(jì)算設(shè)備200可以實(shí)現(xiàn)圖1的發(fā)送站102和接收站106的一個(gè)或者兩個(gè)。計(jì)算設(shè)備200可以以包括多個(gè)計(jì)算設(shè)備的計(jì)算系統(tǒng)的形式,或者以單個(gè)計(jì)算設(shè)備的形式,例如,移動(dòng)電話(huà)、小平板計(jì)算機(jī)、膝上電腦、筆記本計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)等等。
在計(jì)算設(shè)備200中cpu202可以是中央處理單元。做為選擇,cpu202可以是目前現(xiàn)有或者今后開(kāi)發(fā)的能夠操縱或者處理信息的任何其它類(lèi)型的設(shè)備,或者多個(gè)設(shè)備。雖然本公開(kāi)的實(shí)施例可以以如所示的單個(gè)處理器實(shí)踐,例如,中央處理器202,在速度和效率方面的優(yōu)點(diǎn)可以使用一個(gè)以上的處理器實(shí)現(xiàn)。
在一個(gè)實(shí)施例中,在計(jì)算設(shè)備200中的存儲(chǔ)器204可以是只讀存儲(chǔ)器(rom)設(shè)備或者隨機(jī)存取存儲(chǔ)器(ram)設(shè)備。任何其他適宜類(lèi)型的存儲(chǔ)設(shè)備可以用作存儲(chǔ)器204。存儲(chǔ)器204可以包括由cpu202使用總線(xiàn)212訪(fǎng)問(wèn)的代碼和數(shù)據(jù)206。存儲(chǔ)器204可以進(jìn)一步包括操作系統(tǒng)208和應(yīng)用程序210,該應(yīng)用程序210包括允許cpu202執(zhí)行在這里描述的方法的至少一個(gè)程序。例如,應(yīng)用程序210可以包括應(yīng)用1至n,其進(jìn)一步包括執(zhí)行在這里描述的方法的視頻編碼應(yīng)用。計(jì)算設(shè)備200還可以包括以輔助儲(chǔ)存器214形式的附加存儲(chǔ)器,例如其可以是隨移動(dòng)計(jì)算設(shè)備使用的存儲(chǔ)卡。因?yàn)橐曨l通信對(duì)話(huà)可以包含很大的信息量,它們可以整體或者部分地存儲(chǔ)在輔助儲(chǔ)存器214中,并且根據(jù)對(duì)處理的需要加載進(jìn)存儲(chǔ)器204。
計(jì)算設(shè)備200還可以包括一個(gè)或多個(gè)輸出設(shè)備,諸如顯示器218。在一個(gè)示例中,顯示器218可以是觸感顯示器,其將顯示器與可操作地感測(cè)觸摸輸入的觸感單元合并。顯示器218可以經(jīng)由總線(xiàn)212連接到cpu202。除了或者作為顯示器218的替換,允許用戶(hù)編程或者另外使用計(jì)算設(shè)備200的其它的輸出設(shè)備可以提供。當(dāng)輸出設(shè)備是或者包括顯示器時(shí),該顯示器可以以各種各樣的方式實(shí)現(xiàn),包括作為液晶顯示器(lcd)、陰極射線(xiàn)管(crt)顯示器或者發(fā)光二極管(led)顯示器,諸如有機(jī)led(oled)顯示器。
計(jì)算設(shè)備200還可以包括例如照相機(jī)的圖像感測(cè)設(shè)備220,或者目前現(xiàn)有或者今后開(kāi)發(fā)的任何其它的圖像感測(cè)設(shè)備220或者與其通信,圖像感測(cè)設(shè)備220可以感測(cè)圖像,諸如用戶(hù)操作計(jì)算設(shè)備200的圖像。圖像感測(cè)設(shè)備220可以被放置使得其指向操作計(jì)算設(shè)備200的用戶(hù)。在一個(gè)示例中,圖像感測(cè)設(shè)備220的位置和光軸可以被配置使得視野包括直接地接近于顯示器218和從其看得見(jiàn)顯示器218的區(qū)域。
計(jì)算設(shè)備200還可以包括例如麥克風(fēng)的聲音感測(cè)設(shè)備222或者目前現(xiàn)有或者今后開(kāi)發(fā)的任何其它的聲音感測(cè)設(shè)備,或者與其通信,聲音感測(cè)設(shè)備222可以感測(cè)靠近計(jì)算設(shè)備200的聲音。聲音感測(cè)設(shè)備222可以放置使得其朝向操作計(jì)算設(shè)備200的用戶(hù),并且可以被配置為接收聲音,例如,在用戶(hù)操作該計(jì)算設(shè)備200的同時(shí)由用戶(hù)進(jìn)行的語(yǔ)音或者其它的發(fā)言。
雖然圖2描述計(jì)算設(shè)備200的cpu202和存儲(chǔ)器204集成為單個(gè)單元,可以使用其它的配置。cpu202的操作可以被分布在多個(gè)機(jī)器上(每個(gè)機(jī)器具有一個(gè)或多個(gè)處理器),其可以直接地連接或者在局部區(qū)域或者其它的網(wǎng)絡(luò)上。存儲(chǔ)器204可以分布在多個(gè)機(jī)器上,諸如基于網(wǎng)絡(luò)的存儲(chǔ)器或者在執(zhí)行計(jì)算設(shè)備200操作的多個(gè)機(jī)器中的存儲(chǔ)器。雖然在這里作為單個(gè)總線(xiàn)描述,計(jì)算設(shè)備200的總線(xiàn)212可以由多個(gè)總線(xiàn)組成。此外,輔助儲(chǔ)存器214可以直接地耦合到計(jì)算設(shè)備200的其它的部件,或者可以經(jīng)由網(wǎng)絡(luò)訪(fǎng)問(wèn),并且可以包括諸如存儲(chǔ)卡的單個(gè)集成的單元,或者諸如多個(gè)存儲(chǔ)卡的多個(gè)單元。計(jì)算設(shè)備200因此可以以各式各樣的配置實(shí)現(xiàn)。
圖3是要編碼和隨后解碼的視頻流300的示例的圖。視頻流300包括視頻序列302。在下一個(gè)電平上,視頻序列302包括許多的相鄰幀304。雖然三個(gè)幀被描述為該相鄰幀304,視頻序列302可以包括許多的相鄰幀304。相鄰幀304然后可以被進(jìn)一步細(xì)分為特殊的幀,例如,幀306。在下一個(gè)電平上,幀306可以被劃分為一系列的面或者段308。段(或者面)308可以例如是允許并行處理的幀的子集。段308還可以是可以將視頻數(shù)據(jù)分解為單獨(dú)的顏色的幀的子集。例如,顏色視頻數(shù)據(jù)的幀306可以包括亮度平面和兩個(gè)色度平面。段308可以被以不同的分辨率采樣。
無(wú)論幀306是否被劃分為段308,幀306可以被進(jìn)一步細(xì)分為塊310,其可以在幀306中包含對(duì)應(yīng)于例如16x16像素的數(shù)據(jù)。塊310還可以被安排為包括來(lái)自像素?cái)?shù)據(jù)的一個(gè)或多個(gè)平面的數(shù)據(jù)。塊310還可以是任何其他適宜的大小,諸如4x4像素、8x8像素、16x8像素、8x16像素、16x16像素或者更大的。除非另作說(shuō)明,術(shù)語(yǔ)塊和宏塊在此處可互換地使用。
圖4是按照一個(gè)實(shí)施例的編碼器400的方框圖。編碼器400可以如上所述在發(fā)送站102中實(shí)現(xiàn),諸如通過(guò)提供在存儲(chǔ)器,例如存儲(chǔ)器204中存儲(chǔ)的計(jì)算機(jī)軟件程序。計(jì)算機(jī)軟件程序可以包括機(jī)器指令,當(dāng)由處理器,諸如cpu202執(zhí)行時(shí),其使得發(fā)送站102以以下在圖4和在圖6中描述的方式編碼視頻數(shù)據(jù)。編碼器400還可以作為例如包括在發(fā)送站102中專(zhuān)用的硬件實(shí)現(xiàn)。編碼器400具有在前向路徑(由實(shí)的連接線(xiàn)條示出)中執(zhí)行各種各樣功能以使用視頻流300生成編碼的或者壓縮的位流420的以下的級(jí):幀內(nèi)/幀間預(yù)測(cè)級(jí)402、變換級(jí)404、量化級(jí)406,和熵編碼級(jí)408。編碼器400也可以包括重建路徑(由虛線(xiàn)的連接線(xiàn)條示出)以重建供編碼未來(lái)塊的幀。在圖4中,編碼器400具有在重建路徑中執(zhí)行各種各樣功能的以下的級(jí):去量化級(jí)410、逆變換級(jí)412、重建級(jí)414和環(huán)形濾波器級(jí)416。編碼器400的其它的結(jié)構(gòu)變化可用于編碼視頻流300。
當(dāng)存在用于編碼的視頻流300時(shí),每個(gè)幀306可以以塊為單位處理。在幀內(nèi)/幀間預(yù)測(cè)級(jí)402處,每個(gè)塊可以被使用幀內(nèi)預(yù)測(cè)或者幀間預(yù)測(cè)或者兩者組合編碼。在任何情況下,預(yù)測(cè)塊可以形成。在幀內(nèi)預(yù)測(cè)的情況下,預(yù)測(cè)塊的全部或者一部分可以由在當(dāng)前幀中的已經(jīng)先前編碼和重建的采樣形成。在幀間預(yù)測(cè)的情況下,預(yù)測(cè)塊的全部或者一部分可以由在使用運(yùn)動(dòng)矢量確定的一個(gè)或多個(gè)先前地構(gòu)成的參考幀中的采樣形成。
接下來(lái),仍然參考圖4,可以在幀內(nèi)/幀間預(yù)測(cè)級(jí)402處從當(dāng)前塊中減去該預(yù)測(cè)塊以生成殘差塊(也稱(chēng)作殘差)。變換級(jí)404例如在頻率域中使用基于塊的變換將該殘差變換為變換系數(shù)。這樣的基于塊的變換例如包括離散余弦變換(dct)和不對(duì)稱(chēng)離散正弦變換(adst)。其它的基于塊的變換是可能的。此外,不同的變換組合可以適用于單個(gè)殘差。在變換應(yīng)用的一個(gè)示例中,dct將該殘差塊變換為頻率域,這里變換系數(shù)值以空間頻率為基礎(chǔ)。最低的頻率(dc)系數(shù)在矩陣的左上方,并且最高的頻率系數(shù)在矩陣的右下方。值得注意,預(yù)測(cè)塊的大小并且因此產(chǎn)生的殘差塊可以不同于變換塊的大小。例如,預(yù)測(cè)塊可以被分解為單獨(dú)的變換適用于其的較小的塊。
量化級(jí)406使用量化器值或者量化電平將變換系數(shù)轉(zhuǎn)換為離散的量子值,其稱(chēng)為量化變換系數(shù)。例如,變換系數(shù)可以除以量化器值,并且被截取。量化變換系數(shù)然后由熵編碼級(jí)408熵編碼。熵編碼可以使用許多的技術(shù),包括令牌和二元樹(shù)執(zhí)行。與用于解碼該塊的其它的信息一起的熵編碼的系數(shù)可以例如包括使用的預(yù)測(cè)類(lèi)型、變換類(lèi)型、運(yùn)動(dòng)矢量和量化器值,其然后輸出為壓縮的位流420。解碼該塊需要的信息可以被熵編碼為在壓縮的位流420內(nèi)的塊、幀、片段和/或部分頭部。壓縮的位流420還可以稱(chēng)為編碼的視頻流或者編碼的視頻位流,并且該術(shù)語(yǔ)將在此處可互換地使用。
在圖4中的重建路徑(由虛線(xiàn)的連接線(xiàn)條示出)可用于保證編碼器400和解碼器500兩者(如下所述)使用相同的參考幀和塊來(lái)解碼壓縮的位流420。重建路徑執(zhí)行類(lèi)似于在解碼過(guò)程(在下面更詳細(xì)地論述其)期間出現(xiàn)的功能的功能,包括在去量化級(jí)410處對(duì)量化變換系數(shù)去量化,和在逆變換級(jí)412處對(duì)去量化變換系數(shù)逆變換來(lái)生成衍生殘差塊(也稱(chēng)作衍生殘差)。在重建級(jí)414處,在幀內(nèi)/幀間預(yù)測(cè)級(jí)402處預(yù)測(cè)的預(yù)測(cè)塊可以被添加到衍生殘差以生成重建的塊。環(huán)形濾波器級(jí)416可以適用于重建的塊以減小失真,諸如方塊效應(yīng)(blockartifacts)。
編碼器400的其它的變化可用于編碼壓縮的位流420。例如,基于非變換的編碼器400可以對(duì)于某些塊或者幀直接地量化殘差信號(hào)而不經(jīng)變換級(jí)404。在另一個(gè)實(shí)施例中,編碼器400可以具有合并為單個(gè)級(jí)的量化級(jí)406和去量化級(jí)410。
圖5是按照另一個(gè)實(shí)施例的解碼器500的方框圖。解碼器500可以在接收站106中,例如通過(guò)提供在存儲(chǔ)器204中存儲(chǔ)的計(jì)算機(jī)軟件程序?qū)崿F(xiàn)。計(jì)算機(jī)軟件程序可以包括機(jī)器指令,當(dāng)由處理器,諸如cpu202執(zhí)行時(shí),其使得接收站106以以下在圖5和在圖8中描述的方式解碼視頻數(shù)據(jù)。解碼器500還可以以例如包括在發(fā)送站102或者接收站106中的硬件實(shí)現(xiàn)。
類(lèi)似于以上論述的編碼器400的重建路徑的解碼器500在一個(gè)示例中包括執(zhí)行從壓縮的位流420生成輸出視頻流516的各種各樣功能的以下的級(jí):熵解碼級(jí)502、去量化級(jí)504、逆變換級(jí)506、幀內(nèi)/幀間預(yù)測(cè)級(jí)508、重建級(jí)510、環(huán)形濾波器級(jí)512和去塊濾波級(jí)514。解碼器500的其它的結(jié)構(gòu)變化可用于解碼壓縮的位流420。
當(dāng)存在用于解碼的壓縮的位流420時(shí),在壓縮的位流420內(nèi)的數(shù)據(jù)元素可以由熵解碼級(jí)502解碼以生成一組量化變換系數(shù)。去量化級(jí)504將量化變換系數(shù)去量化(例如,通過(guò)量化變換系數(shù)乘以量化器值),并且逆變換級(jí)506使用選擇的變換類(lèi)型逆變換去量化變換系數(shù)以生成衍生殘差,其可能與由在編碼器400中的逆變換級(jí)412生成的相同。使用從壓縮的位流420解碼的頭部信息,解碼器500可以使用幀內(nèi)/幀間預(yù)測(cè)級(jí)508生成與在編碼器400中,例如,在幀內(nèi)/幀間預(yù)測(cè)級(jí)402處生成的相同的預(yù)測(cè)塊。在重建級(jí)510處,預(yù)測(cè)塊可以被添加到衍生殘差以生成重建的塊。環(huán)形濾波器級(jí)512可以適用于重建的塊以減小方塊效應(yīng)。其它的濾波可以適用于重建的塊。在這個(gè)示例中,去塊濾波級(jí)514適用于重建的塊以減小塊失真,并且該結(jié)果被作為輸出視頻流516輸出。輸出視頻流516還可以稱(chēng)為解碼的視頻流,并且該術(shù)語(yǔ)將在此處可互換地使用。
解碼器500的其它的變化可用于解碼壓縮的位流420。例如,解碼器500可以不經(jīng)去塊濾波級(jí)514生成輸出視頻流516。
如以上簡(jiǎn)要地提及的,塊可以通過(guò)運(yùn)動(dòng)矢量預(yù)測(cè)動(dòng)態(tài)的參考運(yùn)動(dòng)矢量編碼模式編碼或者解碼。使用用于編碼和解碼的動(dòng)態(tài)的參考運(yùn)動(dòng)矢量編碼模式的一個(gè)實(shí)施例接下來(lái)論述。
圖6是示出按照本公開(kāi)的一個(gè)實(shí)施例用于使用參考運(yùn)動(dòng)矢量編碼視頻流過(guò)程600的流程圖。過(guò)程600可以在編碼器,諸如編碼器400中實(shí)現(xiàn),并且可以例如作為可以由計(jì)算設(shè)備,諸如發(fā)送站102或者接收站106執(zhí)行的軟件程序?qū)崿F(xiàn)。例如,軟件程序可以包括機(jī)器可讀的指令,其可以存儲(chǔ)在存儲(chǔ)器,諸如存儲(chǔ)器204或者214中,并且可以由處理器,諸如cpu202執(zhí)行,以使得計(jì)算設(shè)備執(zhí)行過(guò)程600。
過(guò)程600可以使用專(zhuān)用的硬件或者固件實(shí)現(xiàn)。一些計(jì)算設(shè)備可以具有多個(gè)存儲(chǔ)器、多個(gè)處理器或者兩者。過(guò)程600的步驟或者操作可以使用不同的處理器、存儲(chǔ)器或者兩者分布。除了具有可以每個(gè)在列舉的步驟的一些或者所有的實(shí)現(xiàn)中使用的多個(gè)處理器或者多個(gè)存儲(chǔ)器的設(shè)備之外,術(shù)語(yǔ)“處理器”或者“存儲(chǔ)器”以單個(gè)的使用包含具有一個(gè)處理器或者一個(gè)存儲(chǔ)器的計(jì)算設(shè)備。為解釋的簡(jiǎn)單起見(jiàn),過(guò)程600被作為一系列的步驟或者操作描繪和描述。但是,按照本公開(kāi)的教導(dǎo)可以以各種各樣的順序和/或同時(shí)發(fā)生。另外,按照本公開(kāi)的步驟可以以在此處不存在和描述的其它的步驟發(fā)生。此外,可以不需要實(shí)現(xiàn)按照本公開(kāi)的主題方法的所有圖示的步驟或者操作。
過(guò)程600假設(shè)具有多個(gè)幀的視頻數(shù)據(jù)的流(每個(gè)具有多個(gè)塊)正在使用視頻編碼器,諸如在計(jì)算設(shè)備,諸如發(fā)送站102處執(zhí)行的編碼器400編碼。視頻數(shù)據(jù)或者流可以由計(jì)算設(shè)備以許多的方法接收,諸如通過(guò)經(jīng)網(wǎng)絡(luò)、經(jīng)電纜接收視頻數(shù)據(jù),或者通過(guò)從主存儲(chǔ)器或者其它的存儲(chǔ)設(shè)備讀取視頻數(shù)據(jù),包括磁盤(pán)驅(qū)動(dòng)器或者可移除介質(zhì),諸如緊湊的閃存(cf)卡、安全數(shù)字(sd)卡,或者能夠交換視頻數(shù)據(jù)的任何其它的設(shè)備。在一些實(shí)施例中,視頻數(shù)據(jù)可以從連接到操作編碼器的計(jì)算設(shè)備的攝像機(jī)接收。在幀內(nèi)的至少一些塊被使用如以下更詳細(xì)地描述的幀間預(yù)測(cè)編碼。
在602處,過(guò)程600從在視頻流中先前編碼塊中識(shí)別候選運(yùn)動(dòng)矢量。過(guò)程600分析先前編碼塊的運(yùn)動(dòng)行為以生成排名的候選運(yùn)動(dòng)矢量的列表,采用有效參考運(yùn)動(dòng)矢量排名系統(tǒng),并且提供動(dòng)態(tài)的運(yùn)動(dòng)參考模式,其充分地考慮可用的運(yùn)動(dòng)矢量候選列表,其允許參考運(yùn)動(dòng)矢量模式的數(shù)目動(dòng)態(tài)地?cái)U(kuò)展或者縮短,并且改善熵編碼的效率。候選運(yùn)動(dòng)矢量的池可以按照相鄰參考?jí)K條件動(dòng)態(tài)地,即,如何生成候選運(yùn)動(dòng)矢量列表而擴(kuò)展或者縮短。在視頻流中先前編碼塊可以包括在當(dāng)前塊之前使用幀間預(yù)測(cè)編碼的任何塊,諸如來(lái)自先前編碼的幀的塊,或者來(lái)自與當(dāng)前塊相同的幀的在當(dāng)前塊之前已經(jīng)編碼的塊。例如,在一些編碼/解碼(編解碼器)方案,諸如以光柵掃描順序編碼的一個(gè)中,先前編碼塊可以在相同的幀中包括當(dāng)前塊的上面、左側(cè),或者左上塊。先前編碼塊還可以例如包括來(lái)自緊接先前幀(即,最后的幀)的塊、來(lái)自黃金幀(在幀內(nèi)/幀間預(yù)測(cè)級(jí)402處描述的)的塊、來(lái)自任何其它的參考幀的塊,或者其任意組合。但是,希望地,候選運(yùn)動(dòng)矢量是基于在某些方面對(duì)應(yīng)于當(dāng)前塊的先前編碼塊由于其像素接近于當(dāng)前塊很可能具有與當(dāng)前塊類(lèi)似的運(yùn)動(dòng)特征的理論,從這樣的塊中獲得的。
塊可以從單個(gè)參考幀或者從諸如兩個(gè)參考幀的復(fù)合預(yù)測(cè)。對(duì)于具有單個(gè)參考幀的塊,過(guò)程600從與參考幀相關(guān)聯(lián)的最靠近的空間相鄰塊識(shí)別候選運(yùn)動(dòng)矢量。候選運(yùn)動(dòng)矢量可以包括在參考覆蓋范圍內(nèi)的運(yùn)動(dòng)矢量參考?jí)K,諸如來(lái)自在當(dāng)前塊之上的邊緣區(qū)域(例如,塊)的運(yùn)動(dòng)矢量、來(lái)自在當(dāng)前塊左側(cè)的邊緣區(qū)域(例如,塊)的運(yùn)動(dòng)矢量、來(lái)自當(dāng)前塊的右上角落的運(yùn)動(dòng)矢量,和來(lái)自在先前幀中的并置塊的運(yùn)動(dòng)矢量。在某些實(shí)施例中,考慮與并置塊的下面和右側(cè)的塊相關(guān)聯(lián)的運(yùn)動(dòng)矢量。
構(gòu)成參考運(yùn)動(dòng)矢量候選列表的初始步驟參考圖7描述。也就是說(shuō),圖7是用于解釋在圖6的過(guò)程600內(nèi)的候選運(yùn)動(dòng)矢量的識(shí)別602的幀序列的圖。正在編碼的當(dāng)前塊b被設(shè)置在當(dāng)前幀n內(nèi)。幀n-1是先前幀,也稱(chēng)作時(shí)間相鄰幀,其可以是可用于編碼幀n的塊的、存儲(chǔ)在所謂的最后參考幀緩存器中的重建的幀。在這種情況下,塊r3是與當(dāng)前塊b的并置塊,并且其位于相同的像素位置(通常地,從左上方像素測(cè)量),并且在幀n-1內(nèi)的x和y平面(即,相同的像素坐標(biāo))具有與在幀n內(nèi)當(dāng)前塊b具有的相同的像素維度。換言之,塊r3空間地對(duì)應(yīng)于當(dāng)前塊b。在單個(gè)參考模式中,即,當(dāng)前塊b正在使用單個(gè)參考幀幀間預(yù)測(cè),運(yùn)動(dòng)矢量候選緩存器與參考幀相關(guān)聯(lián)。給定參考幀索引,可以通過(guò)在圖7中示出的參考?jí)K執(zhí)行對(duì)與相同的參考幀相關(guān)聯(lián)的運(yùn)動(dòng)矢量的搜索,以包括在候選列表中。
塊b和r3是任意塊大小。例如,塊b和r3可以每個(gè)是32x32像素。如上所述,每個(gè)幀可以被分割為用于編碼的塊。這些塊可以為了編碼目的被進(jìn)一步分割為更小的塊。由于這個(gè)緣故,接近于當(dāng)前塊b的任何塊或者區(qū)域可能已經(jīng)分割為由不同的運(yùn)動(dòng)矢量預(yù)測(cè)的更小的塊。因此,考慮這一點(diǎn),搜索運(yùn)動(dòng)矢量可以通過(guò)評(píng)價(jià)用于在幀內(nèi)最小的可能的預(yù)測(cè)塊大小的運(yùn)動(dòng)信息。在示出的示例中,在當(dāng)前幀中搜索運(yùn)動(dòng)矢量使用來(lái)自頂行邊緣區(qū)域(也稱(chēng)作塊r0)、左列邊緣區(qū)域(也稱(chēng)作塊r1),和右上角(也稱(chēng)作塊r2)的運(yùn)動(dòng)信息進(jìn)行。塊r0和r1是其大小(維度)與當(dāng)前塊b的大小相關(guān)聯(lián)的區(qū)域。有時(shí)候,塊r0和r1是與當(dāng)前塊b相同的大小,但是,它們可以是大小為當(dāng)前塊b的一半,或者以其他方式與當(dāng)前塊b的大小相關(guān)。在任何情況下,例如,在塊r0和r1內(nèi)具有最小的預(yù)測(cè)塊大小像素的每個(gè)子塊可以為了候選運(yùn)動(dòng)矢量而被掃描通過(guò)。例如,最小的預(yù)測(cè)塊大小可以是8x8或者4x4。塊r2希望地是最小的預(yù)測(cè)塊大小以最小化搜索,并且因?yàn)楦h(yuǎn)的塊很可能提供更不相關(guān)的信息。如果塊r2是最小的預(yù)測(cè)塊大小,塊r2將僅僅具有一個(gè)運(yùn)動(dòng)矢量(或者在合并預(yù)測(cè)中兩個(gè))。在一個(gè)實(shí)施例中,塊r2可以在大小方面是較大的。
在最后的幀中搜索運(yùn)動(dòng)矢量是使用來(lái)自并置塊r3,和相鄰于底端行(塊r6、r7)、最右列(r4),或者兩者(r5)的附加的參考?jí)Kr4、r5、r6和r7的運(yùn)動(dòng)信息進(jìn)行的。也就是說(shuō),它們每個(gè)緊鄰于(例如,與其接觸)的并置塊的角部。如提及的,并置塊r3具有與當(dāng)前塊相同的大小。在并置塊r3內(nèi)具有最小的預(yù)測(cè)塊大小的每個(gè)子塊可以被掃描或者搜索候選運(yùn)動(dòng)矢量。在示出的示例中,不考慮當(dāng)前塊b的大小,附加的參考?jí)Kr4、r5、r6和r7分別地具有最小的預(yù)測(cè)塊大小,但是這不是需要的。
現(xiàn)在返回到圖6,一旦在602處獲得參考運(yùn)動(dòng)矢量,它們可以在604處被按照距相應(yīng)參考?jí)K的距離和其與當(dāng)前塊的重疊長(zhǎng)度排名。換言之,過(guò)程600可以對(duì)于每個(gè)候選運(yùn)動(dòng)矢量確定在當(dāng)前塊和與候選運(yùn)動(dòng)矢量相關(guān)聯(lián)的先前編碼塊之間的距離。來(lái)自到當(dāng)前塊的最靠近的行和列邊緣和右上角落的運(yùn)動(dòng)矢量與當(dāng)前塊接觸,并且可以被認(rèn)為是更加相關(guān)的,從而排名高于那些遠(yuǎn)離的。距離可用于將運(yùn)動(dòng)矢量分組為類(lèi)別。例如,并且參考圖7,如果有的話(huà),來(lái)自參考?jí)Kr0和r1的子塊的任何運(yùn)動(dòng)矢量和來(lái)自參考?jí)Kr2的運(yùn)動(dòng)矢量可以被認(rèn)為是類(lèi)別1候選運(yùn)動(dòng)矢量,而來(lái)自塊r3至r7和來(lái)自參考?jí)Kr0和r1的任何其它的子塊的剩余的候選運(yùn)動(dòng)矢量被認(rèn)為是類(lèi)別2候選運(yùn)動(dòng)矢量。在這種情況下,類(lèi)別1候選運(yùn)動(dòng)矢量將采用比類(lèi)別2候選運(yùn)動(dòng)矢量更高的優(yōu)先級(jí)。距離可以另外或者做為選擇包括計(jì)算在參考?jí)K和/或參考?jí)K的子塊中的每個(gè)與當(dāng)前塊的中心之間的直線(xiàn)距離。在參考?jí)K和當(dāng)前塊之間的距離可以基于以像素為單位測(cè)量的、在先前編碼塊中的像素和在當(dāng)前塊中的并置像素之間的空間位移。在后面這些示例中,甚至當(dāng)考慮流行性值時(shí),并置塊可以排名為比在當(dāng)前幀中的參考?jí)K更高(例如,因?yàn)椴钪?位移是零)?;诰嚯x分組和/或排名運(yùn)動(dòng)矢量的其它的方法是可能的。
當(dāng)運(yùn)動(dòng)矢量通過(guò)類(lèi)別分組時(shí),在每個(gè)類(lèi)別內(nèi),運(yùn)動(dòng)矢量可以按照在搜索區(qū)域(例如,至少一些參考?jí)K的先前編碼的像素)內(nèi)使用每個(gè)運(yùn)動(dòng)矢量像素的數(shù)目排名。例如,過(guò)程600可以在606處基于與特定的候選運(yùn)動(dòng)矢量相關(guān)聯(lián)的先前編碼的像素值確定流行性值。與候選運(yùn)動(dòng)矢量相關(guān)聯(lián)的先前編碼的像素值的數(shù)目越大,候選運(yùn)動(dòng)矢量的流行性值越高。流行性值可以是像素的原始數(shù)目(rawnumber),或者例如在全部或者一些參考?jí)K內(nèi)的像素總數(shù)的百分比。
這可以參考圖7的示例描述,假設(shè)每個(gè)包括32x32像素的當(dāng)前塊b和并置塊r3,參考?jí)Kr0和參考?jí)Kr1分別地包括32x16和16x32像素,并且參考?jí)Kr2和r4-r7每個(gè)包括8x8像素,其也對(duì)應(yīng)于最小的預(yù)測(cè)塊大小。在這種情況下,可能存在高達(dá)九個(gè)與參考幀相關(guān)聯(lián)并且分配給類(lèi)別1的運(yùn)動(dòng)矢量候選:來(lái)自相鄰于當(dāng)前塊b的參考?jí)Kr0和r1的8x8子塊的各四個(gè),以及來(lái)自8x8參考?jí)Kr2的一個(gè)。可能存在高達(dá)二十八個(gè)與參考幀相關(guān)聯(lián)并且分配給類(lèi)別2的運(yùn)動(dòng)矢量:來(lái)自參考?jí)Kr0和r1的剩余的8x8子塊的各四個(gè)、來(lái)自并置塊r3的十六個(gè)、和來(lái)自附加的四個(gè)8x8參考?jí)Kr4-r7的各一個(gè)。在現(xiàn)實(shí)中,運(yùn)動(dòng)矢量通常被重新使用。在所有識(shí)別的那些候選運(yùn)動(dòng)矢量中,在類(lèi)別內(nèi)的特殊運(yùn)動(dòng)矢量中的每個(gè)被流行性值表征,該流行性值與使用該運(yùn)動(dòng)矢量的8x8像素(也就是說(shuō),64個(gè)像素)的組中的每個(gè)對(duì)應(yīng)。在評(píng)價(jià)在602處識(shí)別的運(yùn)動(dòng)矢量是否是特殊的時(shí),運(yùn)動(dòng)矢量不必與另一個(gè)相同??梢允褂梅秶员闾峁┱撟C足夠變化有用的運(yùn)動(dòng)矢量候選列表。也就是說(shuō),如果與已經(jīng)在類(lèi)別中的運(yùn)動(dòng)矢量候選的變化不足夠,諸如,變化10%,或者某些其它變量,運(yùn)動(dòng)矢量可以在類(lèi)別內(nèi)省略。在這個(gè)實(shí)施例中,運(yùn)動(dòng)矢量通過(guò)類(lèi)別排名,然后在該類(lèi)別內(nèi)排名,但是這不是需要的。運(yùn)動(dòng)矢量候選可以基于流行性值被分組在一起用于排名。
參考運(yùn)動(dòng)矢量候選列表可以對(duì)于與先前編碼塊或者子塊相關(guān)聯(lián)的每個(gè)特殊參考幀如描述地構(gòu)成。例如,三個(gè)參考幀可對(duì)于如上所述的每個(gè)幀——最后的幀、替換參考幀,和黃金參考幀可用。在這種情況下,單獨(dú)的參考運(yùn)動(dòng)矢量候選列表可以使用具有指向最后的幀、替換參考幀和黃金參考幀中的每個(gè)的運(yùn)動(dòng)矢量的先前編碼塊或者子塊構(gòu)成。對(duì)于每個(gè)幀更新最后的幀,并且替換參考幀和黃金參考幀可以較不頻繁地更新。
在某些實(shí)施例中,當(dāng)構(gòu)成參考運(yùn)動(dòng)矢量候選列表時(shí),執(zhí)行運(yùn)動(dòng)矢量縮放。運(yùn)動(dòng)矢量縮放可以在606處作為流行性值確定的一部分進(jìn)行,或者可以在過(guò)程600中的其它的點(diǎn)上進(jìn)行。運(yùn)動(dòng)矢量縮放調(diào)整運(yùn)動(dòng)矢量的幅值以考慮在視頻流內(nèi)的幀序列內(nèi),相對(duì)于所考慮的幀,在參考幀之間的時(shí)間差。例如,并且再次參考圖7,參考?jí)Kr2使用最后的幀——其是幀n-1——用于幀間預(yù)測(cè),而參考?jí)Kr4使用最后的幀——其是在幀n-1(或者幀n-2,未示出)之前的幀——用于幀間預(yù)測(cè)。在每個(gè)塊r2和r4設(shè)置其中的幀(分別地,幀n和幀n-1)和相應(yīng)的參考幀(分別地,幀n-1和幀n-2)之間的時(shí)間差是一個(gè)幀,因此,指示無(wú)縮放。相比之下,如果參考?jí)Kr2和r4兩者使用黃金參考幀,如果黃金參考幀是不變的,在幀n和黃金參考幀之間,和在幀n-1和黃金參考幀之間的時(shí)間差是不同的。候選運(yùn)動(dòng)矢量可以通過(guò)放大與較短的時(shí)間差相關(guān)聯(lián)的運(yùn)動(dòng)矢量的幅值,或者縮小與較長(zhǎng)的時(shí)間差相關(guān)聯(lián)的運(yùn)動(dòng)矢量的幅值產(chǎn)生,使得運(yùn)動(dòng)矢量共享通用的基礎(chǔ)。用于縮放的因子可以基于由時(shí)間差形成的比。
運(yùn)動(dòng)矢量縮放也可以在為所有參考幀準(zhǔn)備僅一個(gè)參考運(yùn)動(dòng)矢量候選列表,而不是為每個(gè)參考幀準(zhǔn)備單獨(dú)的列表的實(shí)施例中使用。參考幀可以在視頻序列中設(shè)置或者在當(dāng)前幀之前或者之后。在某些實(shí)施例中,運(yùn)動(dòng)矢量縮放被省略。
迄今地,候選列表結(jié)構(gòu)用于單個(gè)參考模式,這里一個(gè)參考幀(并且因此,典型地,與一個(gè)參考幀相關(guān)聯(lián)的一個(gè)運(yùn)動(dòng)矢量)用于幀間預(yù)測(cè)。但是,有時(shí)候,可以從兩個(gè)或更多個(gè)參考幀預(yù)測(cè)一個(gè)塊,這里像素值是由相應(yīng)的運(yùn)動(dòng)矢量產(chǎn)生的每個(gè)幀內(nèi)來(lái)自預(yù)測(cè)塊的像素值的組合。當(dāng)考慮復(fù)合參考模式用于當(dāng)前塊的預(yù)測(cè)時(shí),該列表通過(guò)首先尋找為其參考運(yùn)動(dòng)矢量共享相同的復(fù)合參考幀(即,相同的參考幀的組合)的相鄰塊構(gòu)成。較高的優(yōu)先級(jí)被分配給來(lái)自如考慮當(dāng)前塊一樣共享參考幀的組合的相鄰參考?jí)K的候選運(yùn)動(dòng)矢量。運(yùn)動(dòng)矢量也可以從最高的到最低的流行性值排名。如果產(chǎn)生的候選列表具有比限定數(shù)目更短的長(zhǎng)度,諸如兩個(gè),該列表可以附加以如上所述識(shí)別和排名的單個(gè)參考幀的參考運(yùn)動(dòng)矢量的組合。例如,如果正在考慮使用最后的幀和替換參考幀的復(fù)合參考模式,參考最后的幀或者替換參考幀對(duì)參考?jí)K搜索運(yùn)動(dòng)矢量參考,其然后被基于流行性值如論述地排名。
再次參考圖6,并且如以上解釋的,在608處流行性值的確定包括使用流行性值排名運(yùn)動(dòng)矢量。其還可以包括基于該排名向幀間編碼(或者幀間預(yù)測(cè))模式分配運(yùn)動(dòng)矢量。最流行的運(yùn)動(dòng)矢量可以被選擇用于包括新運(yùn)動(dòng)矢量的差分編碼的幀間預(yù)測(cè)模式。這可以稱(chēng)為newmv模式。然后,按照該排名結(jié)果,剩余的運(yùn)動(dòng)矢量可以分配給其它的參考矢量運(yùn)動(dòng)模式。在某些實(shí)施例中,refmv模式是動(dòng)態(tài)參考運(yùn)動(dòng)矢量編碼模式,其包括現(xiàn)有的運(yùn)動(dòng)矢量被重新使用的至少兩個(gè)模式。在一個(gè)示例中,這兩個(gè)幀間預(yù)測(cè)模式是nearestmv模式和nearmv模式。在該排名中在分配給newmv模式的運(yùn)動(dòng)矢量之后的下一個(gè)運(yùn)動(dòng)矢量(即,具有第二高的流行性值的運(yùn)動(dòng)矢量)被分配給nearestmv模式,并且在其后的下一個(gè)運(yùn)動(dòng)矢量(即,具有第三高的流行性值的運(yùn)動(dòng)矢量)被分配給nearmv模式。如果用于特定的參考幀的候選參考運(yùn)動(dòng)矢量列表比兩個(gè)更長(zhǎng),參考運(yùn)動(dòng)矢量模式的數(shù)目可以擴(kuò)展以適應(yīng)在該列表中剩余的項(xiàng)目。另一個(gè)可用的幀間預(yù)測(cè)模式可以是zeromv模式,其指的是不存在運(yùn)動(dòng)。
在608處,幀間預(yù)測(cè)模式被選擇用于當(dāng)前塊。這可以包括測(cè)試幀間預(yù)測(cè)模式的每個(gè),并且選擇導(dǎo)致當(dāng)前塊的最有效編碼的幀間預(yù)測(cè)模式。例如,過(guò)程600可以是用于選擇供要編碼的當(dāng)前塊的幀間預(yù)測(cè)模式的率失真環(huán)的一部分。作為率失真環(huán)的一部分,用于當(dāng)前塊的幀間預(yù)測(cè)的實(shí)際運(yùn)動(dòng)矢量可以按照許多的運(yùn)動(dòng)搜索技術(shù)經(jīng)由運(yùn)動(dòng)搜索確定。對(duì)于每個(gè)參考幀,參考運(yùn)動(dòng)矢量的一個(gè)用途可以包括基于實(shí)際運(yùn)動(dòng)矢量很可能接近于用于參考幀的高排名運(yùn)動(dòng)矢量的理由,使用分配給newmv模式,或者其它的識(shí)別的候選運(yùn)動(dòng)矢量的參考運(yùn)動(dòng)矢量作為用于運(yùn)動(dòng)搜索算法的開(kāi)始參數(shù)。在復(fù)合預(yù)測(cè)模式中參考幀的組合可以使用來(lái)自候選列表的運(yùn)動(dòng)矢量,特別地,對(duì)于參考幀的每個(gè)具有最高排名的那些類(lèi)似地搜索。
做為選擇,運(yùn)動(dòng)搜索可以無(wú)需使用來(lái)自候選列表的運(yùn)動(dòng)矢量執(zhí)行。無(wú)論是否在運(yùn)動(dòng)搜索中使用參考運(yùn)動(dòng)矢量,可以測(cè)試各種各樣的幀間預(yù)測(cè)模式。在一個(gè)實(shí)施例中,窮舉的運(yùn)動(dòng)搜索使用單個(gè)或者復(fù)合模式(即,使用三個(gè)參考幀和參考幀的組合中的每個(gè))嘗試可用的幀間預(yù)測(cè)模式的每個(gè)。對(duì)于每個(gè)提出的運(yùn)動(dòng)矢量和對(duì)于每個(gè)測(cè)試幀間預(yù)測(cè)模式,計(jì)算使用幀間預(yù)測(cè)模式編碼當(dāng)前塊的位成本(也稱(chēng)作速率)和在原始值和重建的值(也稱(chēng)作失真)之間的像素值中產(chǎn)生的誤差,位成本包括信令通知幀間預(yù)測(cè)模式、參考幀、從當(dāng)前塊產(chǎn)生的殘差塊需要的位,以及如果需要的話(huà),一個(gè)或多個(gè)運(yùn)動(dòng)矢量或者運(yùn)動(dòng)矢量差分。導(dǎo)致最低的率失真值(也稱(chēng)作比)的幀間預(yù)測(cè)模式和參考幀可以在608處被選擇為用于當(dāng)前塊的幀間預(yù)測(cè)模式。
窮舉搜索不需要執(zhí)行。各種各樣的技術(shù)可用于減小計(jì)算的負(fù)擔(dān)。例如,用于在該幀中相鄰塊的幀間預(yù)測(cè)模式可以被首先測(cè)試,然后僅僅某些幀間預(yù)測(cè)模式可以被測(cè)試以看看是否導(dǎo)致改善的率失真比。此外,運(yùn)動(dòng)搜索可適用于幀間預(yù)測(cè)。率失真環(huán)可以包括對(duì)于各種各樣幀內(nèi)預(yù)測(cè)模式的測(cè)試,或者單獨(dú)的率失真環(huán)可用于從可用的幀內(nèi)預(yù)測(cè)模式中選擇最有效幀內(nèi)預(yù)測(cè)模式。然后,最有效幀間預(yù)測(cè)模式和最有效幀內(nèi)預(yù)測(cè)模式被比較以選擇用于該塊的預(yù)測(cè)模式。
在這里假設(shè)在608處選擇的幀間預(yù)測(cè)模式比可用的幀內(nèi)預(yù)測(cè)模式更好,在610處使用幀間預(yù)測(cè)模式編碼當(dāng)前塊。例如,如果newmv模式用于編碼當(dāng)前塊,預(yù)測(cè)的塊使用來(lái)自運(yùn)動(dòng)搜索的實(shí)際運(yùn)動(dòng)矢量和選擇的參考幀產(chǎn)生。然后,在當(dāng)前塊和預(yù)測(cè)的塊之間的殘差如參考圖4描述地產(chǎn)生和編碼。通過(guò)該排名分配給newmv模式的運(yùn)動(dòng)矢量可用于差分地編碼實(shí)際運(yùn)動(dòng)矢量。例如,差值或者殘差可以通過(guò)從用于編碼該當(dāng)前塊的運(yùn)動(dòng)矢量減去參考運(yùn)動(dòng)矢量計(jì)算。該差值可以被編碼和包括在視頻流中。此外,表示參考幀和使用的newmv模式的位可以在塊頭部和/或在幀或者片頭中表示。
在具有單個(gè)參考幀的另一個(gè)示例中,在運(yùn)動(dòng)矢量中的運(yùn)動(dòng)搜索結(jié)果等于或者在有關(guān)分配給參考運(yùn)動(dòng)矢量模式的參考運(yùn)動(dòng)矢量的一個(gè)的值范圍內(nèi)。在這種情況下,指示refmv幀間預(yù)測(cè)模式。在這個(gè)示例中,如果由搜索產(chǎn)生的運(yùn)動(dòng)矢量等于或者在有關(guān)分配給nearmv模式的參考運(yùn)動(dòng)矢量的值范圍內(nèi),預(yù)測(cè)的塊被使用分配給nearmv模式的參考運(yùn)動(dòng)矢量和選擇的參考幀產(chǎn)生。然后,在當(dāng)前塊和預(yù)測(cè)的塊之間的殘差被如參考圖4描述的產(chǎn)生和編碼。此外,表示參考幀和refmv模式,并且特別地nearmv模式被使用的位可以在塊頭部和/或在幀或者片頭中表示。
如果在608處選擇了,剩余的幀間預(yù)測(cè)模式可以類(lèi)似地用于編碼當(dāng)前塊,或者編碼在視頻序列內(nèi)幀的其它的塊。圖6的過(guò)程600可以根據(jù)需要重復(fù)。
如相對(duì)于圖4的編碼器400的操作提及的,編碼當(dāng)前塊可以包括熵編碼。熵編碼幀間預(yù)測(cè)模式可以被修改以考慮新的動(dòng)態(tài)的參考運(yùn)動(dòng)矢量模式。采用對(duì)應(yīng)于新的運(yùn)動(dòng)矢量、零運(yùn)動(dòng)矢量和動(dòng)態(tài)的參考運(yùn)動(dòng)矢量模式的三個(gè)幀間預(yù)測(cè)模式,在這個(gè)示例中,分別地newmv模式、zeromv模式和refmv模式,熵編碼從newmv模式開(kāi)始。也就是說(shuō),假設(shè)當(dāng)前塊被使用newmv模式編碼,概率模型可以按照兩個(gè)場(chǎng)境選擇:1)找到多少參考運(yùn)動(dòng)矢量;和2)如果找到具有匹配的參考幀的相鄰塊,它們可能將如何以newmv模式編碼。
如果下一個(gè)編碼模式不是newmv模式,如果下一個(gè)編碼模式是zeromv模式,編碼繼續(xù)。在這種情況下,概率模型可以按照兩個(gè)場(chǎng)境選擇:1)如果在最后的(或者先前的)幀中的并置塊使用零運(yùn)動(dòng)矢量,或者接近于零運(yùn)動(dòng)矢量(即,在兩個(gè)行和列分量中小于一個(gè)全像素);和2)是否(和可能地多少)在當(dāng)前幀內(nèi)的空間相鄰塊使用零運(yùn)動(dòng)矢量,或者接近于零運(yùn)動(dòng)矢量。
如果代替地,下一個(gè)編碼模式不是zeromv模式(即,是由refmv模式表示的動(dòng)態(tài)的參考運(yùn)動(dòng)矢量模式),如以上的討論地在參考運(yùn)動(dòng)矢量之間進(jìn)行判定。相關(guān)的場(chǎng)境是多少參考運(yùn)動(dòng)矢量被檢查進(jìn)候選列表,并且當(dāng)可用時(shí),其加權(quán)系數(shù)被在復(fù)合預(yù)測(cè)中使用。
圖8是按照本公開(kāi)的實(shí)施例用于使用參考運(yùn)動(dòng)矢量解碼編碼的視頻流過(guò)程800的流程圖。過(guò)程800可以例如作為可以由計(jì)算設(shè)備,諸如發(fā)送站102或者接收站106執(zhí)行的軟件程序?qū)崿F(xiàn)。例如,軟件程序可以包括機(jī)器可讀的指令,其可以存儲(chǔ)在存儲(chǔ)器,諸如存儲(chǔ)器204或者214中,并且當(dāng)由處理器,諸如cpu202執(zhí)行時(shí),可以使得計(jì)算設(shè)備執(zhí)行過(guò)程800。過(guò)程800可以使用專(zhuān)用的硬件或者固件實(shí)現(xiàn)。如以上解釋的,某些計(jì)算設(shè)備可以具有多個(gè)存儲(chǔ)器或者處理器,并且在過(guò)程800中描述的操作可以使用多個(gè)處理器、存儲(chǔ)器或者兩者分布。
為解釋的簡(jiǎn)單起見(jiàn),過(guò)程800被作為一系列的步驟或者操作描繪和描述。但是,按照本公開(kāi)的步驟或操作可以以各種各樣的順序和/或同時(shí)發(fā)生。另外,可以使用不存在和在此處描述的其它的步驟或者操作。此外,可以不需要實(shí)現(xiàn)按照本公開(kāi)的主題方法的所有圖示的步驟或者操作。
在802處,解碼器確定使用單個(gè)預(yù)測(cè)還是復(fù)合預(yù)測(cè)編碼當(dāng)前塊。這個(gè)信息可以通過(guò)讀取和解碼來(lái)自編碼的視頻位流的、指示一個(gè)或多個(gè)運(yùn)動(dòng)矢量被用于編碼當(dāng)前塊的位通信。編碼的位流(或者編碼的視頻數(shù)據(jù))可以由計(jì)算設(shè)備的解碼器以許多的方法接收,諸如,通過(guò)經(jīng)網(wǎng)絡(luò)、經(jīng)電纜接收視頻數(shù)據(jù),或者通過(guò)從主存儲(chǔ)器或者其它的存儲(chǔ)設(shè)備讀取視頻數(shù)據(jù),包括磁盤(pán)驅(qū)動(dòng)器或者可移除介質(zhì),諸如dvd、緊湊的閃存(cf)卡、安全數(shù)字(sd)卡,或者能夠交換視頻流的任何其它的設(shè)備。這個(gè)信息例如可以包括在與當(dāng)前塊相關(guān)聯(lián)的頭部,或者幀頭部中。這個(gè)解釋假設(shè)當(dāng)前塊是幀間預(yù)測(cè)。否則,參考幀沒(méi)有編碼到與當(dāng)前塊結(jié)合的位流,并且當(dāng)前塊被幀內(nèi)預(yù)測(cè)。
已知參考幀,候選運(yùn)動(dòng)矢量可以以如參考圖6的過(guò)程600描述的類(lèi)似的方式排名。也就是說(shuō),編碼器和解碼器可以共享關(guān)于參考運(yùn)動(dòng)矢量候選列表的產(chǎn)生的規(guī)則,使得接收與哪個(gè)幀間預(yù)測(cè)模式用于編碼當(dāng)前塊(例如,newmv、nearestmv、nearmv等等)相關(guān)的頭部信息的解碼器能夠識(shí)別由編碼器使用的相同的參考運(yùn)動(dòng)矢量。首先,候選運(yùn)動(dòng)矢量可以在804處,以與它們?cè)谶^(guò)程600中在602處識(shí)別類(lèi)似的方式從先前編碼塊識(shí)別。雖然過(guò)程600可以使用所有可用的參考幀和參考幀組合識(shí)別用于排名的候選運(yùn)動(dòng)矢量,以便選擇幀間預(yù)測(cè)模式,該過(guò)程800只須排名那些用于實(shí)際地編碼該塊的參考幀的候選運(yùn)動(dòng)矢量。
在804處識(shí)別候選運(yùn)動(dòng)矢量之后,它們?cè)?06和808處被排名。更具體地說(shuō),排名候選運(yùn)動(dòng)矢量包括在806處對(duì)于每個(gè)候選運(yùn)動(dòng)矢量確定在作為運(yùn)動(dòng)矢量來(lái)源的先前編碼塊和當(dāng)前塊之間的距離。這涉及與相對(duì)于如上所述的在過(guò)程600中在604處的確定相同的操作。這個(gè)操作的結(jié)果是在一個(gè)實(shí)施例中由距離分組的候選運(yùn)動(dòng)矢量列表。然后,在804處從先前編碼塊確定用于候選運(yùn)動(dòng)矢量的相應(yīng)的流行性值被與在過(guò)程600中在606處的確定相同執(zhí)行。這個(gè)操作的結(jié)果是用于在當(dāng)前塊的預(yù)測(cè)中使用的單個(gè)參考幀或者組合的參考幀的候選運(yùn)動(dòng)矢量的排名的列表。在一個(gè)實(shí)施例中,最高排名的(例如,最可能的)運(yùn)動(dòng)矢量被分配給newmv模式,并且在該排名中的接下來(lái)的兩個(gè)運(yùn)動(dòng)矢量被分別地分配給動(dòng)態(tài)參考運(yùn)動(dòng)矢量(refmv)模式的nearestmv和nearmv參考運(yùn)動(dòng)矢量模式。更進(jìn)一步參考運(yùn)動(dòng)矢量此后被依次分配。
在810處,識(shí)別用于編碼當(dāng)前塊的幀間預(yù)測(cè)模式。在一個(gè)實(shí)施例中,幀間預(yù)測(cè)模式通過(guò)解碼包括在識(shí)別幀間預(yù)測(cè)模式的位流內(nèi)的位識(shí)別。例如,幀間預(yù)測(cè)模式可以是新的運(yùn)動(dòng)矢量模式、零運(yùn)動(dòng)矢量模式,或者動(dòng)態(tài)的參考運(yùn)動(dòng)矢量模式。如果幀間預(yù)測(cè)模式是動(dòng)態(tài)參考運(yùn)動(dòng)矢量模式,使用的特定的參考運(yùn)動(dòng)矢量模式可以例如,從在該位流中包括在頭部?jī)?nèi)的位類(lèi)似地確定。
在812處,在810處識(shí)別的幀間預(yù)測(cè)模式用于在812處解碼當(dāng)前塊,諸如經(jīng)由參考圖5描述的解碼過(guò)程。當(dāng)幀間預(yù)測(cè)模式涉及差分地編碼的運(yùn)動(dòng)矢量時(shí),例如,參考運(yùn)動(dòng)矢量可用于解碼用于預(yù)測(cè)該當(dāng)前塊的運(yùn)動(dòng)矢量。做為選擇,幀間預(yù)測(cè)模式可以通過(guò)參考該列表指示運(yùn)動(dòng)矢量。不考慮一個(gè)或多個(gè)運(yùn)動(dòng)矢量的來(lái)源,預(yù)測(cè)塊被使用運(yùn)動(dòng)矢量產(chǎn)生,并且被添加到用于從位流解碼的當(dāng)前塊的殘差。
過(guò)程800可以被對(duì)于使用幀間預(yù)測(cè)編碼的每個(gè)塊重復(fù)以產(chǎn)生重建的塊。使用重建的塊和使用幀內(nèi)預(yù)測(cè)重建的那些來(lái)重建該幀。通過(guò)解碼多個(gè)幀,輸出視頻流,諸如在圖5中示出的輸出視頻流516可以被重建。
在用于refmv模式的位流內(nèi)語(yǔ)法的使用建議有效的運(yùn)動(dòng)矢量來(lái)自于參考相鄰塊的編碼信息。給定參考幀,這樣的可能的參考運(yùn)動(dòng)矢量候選的列表被按照其與當(dāng)前塊的相對(duì)距離及其相對(duì)用途排名。這個(gè)技術(shù)推廣refmv模式(例如,nearestmv和nearmv),并且改善熵編碼的效率。此外,附加的運(yùn)動(dòng)矢量候選可能導(dǎo)致進(jìn)一步壓縮增益。
如上所述的編碼和解碼的方面圖示某些編碼和解碼技術(shù)。但是,應(yīng)該理解,如在權(quán)利要求中使用的那些術(shù)語(yǔ)的編碼和解碼可以指的是壓縮、解壓縮、變換,或者數(shù)據(jù)的任何其它的處理或者變化。
在此處使用的措詞“示例”、“方面”或者“實(shí)施例”指的是起示例、例子或者圖例的作用。在此處描述的作為使用這些措詞的一個(gè)或多個(gè)的任何方面或者設(shè)計(jì)不必然地認(rèn)為是對(duì)其它的方面或者設(shè)計(jì)優(yōu)選的或者有益的。更合適地,措詞“示例”、“方面”、或者“實(shí)施例”的使用意欲以具體的方式呈現(xiàn)概念。如在本申請(qǐng)中使用的,術(shù)語(yǔ)“或者”意欲指的是相容的“或者”,而不是排它的“或者”。也就是說(shuō),除非另外指定的,或者從場(chǎng)境中清楚的,“x包括a或者b”意欲指的是任何自然相容的置換。也就是說(shuō),如果x包括a,x包括b,或者x包括a和b兩者,那么,“x包括a或者b”在先前的例子的任何一個(gè)之下滿(mǎn)足。此外,如在本申請(qǐng)和所附的權(quán)利要求中使用的冠詞“一”和“一個(gè)”除非另外指定,將通常解釋為指的是“一個(gè)或多個(gè)”,或者從場(chǎng)境中清楚的是直接為單個(gè)形式。另外,術(shù)語(yǔ)“一個(gè)實(shí)施例”或者“一個(gè)執(zhí)行過(guò)程”的使用自始至終不意欲指的是相同的實(shí)施例、方面或者執(zhí)行過(guò)程,除非照此描述的。
發(fā)送站102和/或接收站106的實(shí)施例(并且存儲(chǔ)在其上的算法、方法、指令等等,和/或從而包括由編碼器400和解碼器500執(zhí)行的)可以以硬件、軟件或者其任何組合實(shí)現(xiàn)。該硬件例如可以包括計(jì)算機(jī)、知識(shí)產(chǎn)權(quán)(ip)核心、專(zhuān)用集成電路(asic)、可編程邏輯陣列、光學(xué)處理器、可編程序邏輯控制器、微碼、微控制器、服務(wù)器、微處理器、數(shù)字信號(hào)處理器,或者任何其它適宜的電路。在權(quán)利要求中,該術(shù)語(yǔ)“處理器”應(yīng)該理解為包含任何先前的硬件,或者單獨(dú)地或者以其組合。術(shù)語(yǔ)“信號(hào)”和“數(shù)據(jù)”可互換地使用。此外,發(fā)送站102和接收站106的一部分不必然地以相同的方式實(shí)現(xiàn)。
此外,在一個(gè)方面中,例如,發(fā)送站102或者接收站106可以使用具有計(jì)算機(jī)程序的通用計(jì)算機(jī)或者通用的處理器實(shí)現(xiàn),當(dāng)執(zhí)行時(shí),該計(jì)算機(jī)程序執(zhí)行在此處描述的任何相應(yīng)的方法、算法和/或指令。此外,或者做為選擇,例如專(zhuān)用計(jì)算機(jī)/處理器可以使用,其可以包含用于執(zhí)行在此處描述的任何方法、算法或者指令的其它的硬件。
發(fā)送站102和接收站106例如可以在視頻會(huì)議系統(tǒng)中在計(jì)算機(jī)上實(shí)現(xiàn)。做為選擇,發(fā)送站102可以在服務(wù)器上實(shí)現(xiàn),并且接收站106可以在與服務(wù)器分離的設(shè)備,諸如手持通信設(shè)備上實(shí)現(xiàn)。在這種情況下,發(fā)送站102可以使用編碼器400將內(nèi)容編碼為編碼的視頻信號(hào),并且將編碼的視頻信號(hào)發(fā)送給通信設(shè)備。隨后,通信設(shè)備然后可以使用解碼器500解碼編碼的視頻信號(hào)。做為選擇,通信設(shè)備可以解碼在通信設(shè)備上本地存儲(chǔ)的內(nèi)容,例如,未由發(fā)送站102發(fā)送的內(nèi)容。其它的發(fā)送站102和接收站106實(shí)施方案是可用的。例如,接收站106可以是通常固定的個(gè)人計(jì)算機(jī),而不是便攜式通信設(shè)備,和/或包括編碼器400的設(shè)備也可以包括解碼器500。
此外,本公開(kāi)的實(shí)施例的全部或者一部分可以采取例如從有形的計(jì)算機(jī)可使用的可訪(fǎng)問(wèn)的計(jì)算機(jī)程序產(chǎn)品或者計(jì)算機(jī)可讀的介質(zhì)的形式。計(jì)算機(jī)可使用的或者計(jì)算機(jī)可讀的介質(zhì)可以是例如可以可觸摸的包含、存儲(chǔ)、交換,或者傳輸供由或者與任何處理器結(jié)合使用的程序的任何設(shè)備。該介質(zhì)例如可以是電子、磁性、光學(xué)、電磁或者半導(dǎo)體器件。其他適宜的介質(zhì)也是可用的。
以上描述的實(shí)施例、執(zhí)行過(guò)程和方面已經(jīng)描述以便允許容易理解本公開(kāi),并且不限制本公開(kāi)。相反地,本公開(kāi)意欲覆蓋包括在所附的權(quán)利要求的范圍內(nèi)的各種各樣的修改和等效方案,其范圍將賦予最寬的解釋?zhuān)员惆缭诜芍略试S的所有這樣的修改和等效結(jié)構(gòu)。