專利名稱:用于視頻編碼器中的計(jì)算有效的幀內(nèi)模式預(yù)測的設(shè)備和方法
用于視頻編碼器中的計(jì)算有效的幀內(nèi)模式預(yù)測的設(shè)備和方
法
相關(guān)申請(qǐng)本申請(qǐng)要求2008年4月30日提交的名稱為“ApparatusAnd Method For Computationally Efficient Intra Mode Prediction In AVideo Coder”的美國專利申請(qǐng) No. :12/113, 202的優(yōu)先權(quán),該美國專利申請(qǐng)的公開在此以參考的方式并入。
背景技術(shù):
數(shù)字視頻編碼技術(shù)使得組成數(shù)字視頻序列的大量可視化數(shù)據(jù)的有效存儲(chǔ)和傳輸 成為可能。隨著國際數(shù)字視頻編碼標(biāo)準(zhǔn)的發(fā)展,數(shù)字視頻目前已在從視頻會(huì)議和DVD至數(shù) 字TV、移動(dòng)視頻、和因特網(wǎng)視頻流和共享的大量應(yīng)用中變得普通。數(shù)字視頻編碼標(biāo)準(zhǔn)提供世 界性地刺激數(shù)字視頻應(yīng)用的增長所需的互用性和靈活性。目前,負(fù)責(zé)開發(fā)和實(shí)現(xiàn)數(shù)字視頻編碼標(biāo)準(zhǔn)的兩個(gè)國際組織為在國際電信聯(lián) 盟-電信標(biāo)準(zhǔn)局(“ITU-T”)授權(quán)下的視頻編碼專家組以及在國際標(biāo)準(zhǔn)組織(“ISO”)與國 際電工委員會(huì)(“IEC”)授權(quán)下的運(yùn)動(dòng)圖像專家組(“MPEG”)。ITU-T已開發(fā)了 H. ^x(例 如H. 261、H. 263)系列視頻編碼標(biāo)準(zhǔn),而IS0/IEC已開發(fā)了 MPEG-x(例如MPEG-U MPEG-4) 系列視頻編碼標(biāo)準(zhǔn)。H. 26x標(biāo)準(zhǔn)主要設(shè)計(jì)用于諸如視頻會(huì)議和視頻電話的實(shí)時(shí)視頻通信應(yīng) 用,而MPEG標(biāo)準(zhǔn)則設(shè)計(jì)用于解決視頻存儲(chǔ)、視頻廣播、和視屏流應(yīng)用的需求。ITU-T和IS0/IEC還共同開發(fā)高性能、高質(zhì)量視頻編碼標(biāo)準(zhǔn),包括先前的H.沈2 (或 MPEG-2)和新近的H.沈4 (或MPEG-4PartlO/AVC)標(biāo)準(zhǔn)。在2003年采用的H. 264視頻編碼 標(biāo)準(zhǔn)以明顯比先前的視屏編碼標(biāo)準(zhǔn)低的比特率(達(dá)到50% )而提供高的視頻質(zhì)量。H. 264 標(biāo)準(zhǔn)提供了足夠的適用于各種應(yīng)用的靈活性,包括低的和高的比特率應(yīng)用以及低的和高的 分辨率應(yīng)用。新應(yīng)用可在現(xiàn)有和將來網(wǎng)絡(luò)上開發(fā)出來。H. 264視頻解碼標(biāo)準(zhǔn)在與其它現(xiàn)有的視頻編碼標(biāo)準(zhǔn)共享共有特征的同時(shí),也具有 與這些其它現(xiàn)有標(biāo)準(zhǔn)相區(qū)別的許多優(yōu)點(diǎn)。
圖1顯示了 H. 264的基本視頻編碼結(jié)構(gòu)。H. 264 視頻編碼器100將數(shù)字視頻序列的各視頻幀分成16 X 16像素塊(稱為“宏塊”),使得能以 塊級(jí)進(jìn)行幀的處理。各宏塊可利用來自其當(dāng)前視頻幀的信息編碼成幀內(nèi)編碼宏塊,或利用來自其先前 幀的信息編碼成幀間編碼宏塊。對(duì)幀內(nèi)編碼宏塊進(jìn)行編碼,以便通過變化、量化、和熵(或 可變長度)編碼(或稱亂度編碼),而充分利用在給定的視頻幀內(nèi)存在的空間性冗余。對(duì)幀 內(nèi)編碼宏塊進(jìn)行編碼,以充分利用連續(xù)的幀中在宏塊之間存在的臨時(shí)性冗余,這樣,僅需要 對(duì)連續(xù)幀之間的變化進(jìn)行編碼。這可通過運(yùn)動(dòng)估計(jì)和補(bǔ)償而予以實(shí)現(xiàn)。為了提高用于幀內(nèi)編碼宏塊的幀內(nèi)編碼過程的效率,通過利用幀內(nèi)預(yù)測105充分 利用在給定的幀中相鄰的宏塊之間的空間相關(guān)性。由于給定的幀中相鄰的宏塊傾向于具有 相似的可視化特性,所以可從已編碼的周圍宏塊預(yù)測幀中給定的宏塊;然后,對(duì)給定的宏塊 與其預(yù)測之間的差異進(jìn)行編碼,這與對(duì)給定的宏塊直接編碼比較起來產(chǎn)生表示該給定的宏 塊的較少的位(比特,比特)。圖2中示出了更詳細(xì)地顯示了幀內(nèi)預(yù)測的方框圖200。
可對(duì)整個(gè)16X16的宏塊進(jìn)行幀內(nèi)預(yù)測,或者可對(duì)16X16的宏塊內(nèi)各4X4的塊 進(jìn)行幀內(nèi)預(yù)測。這兩種不同的預(yù)測類型分別由"Intra_16X16" ^P "Intra_4X4"表示。 htrajexie模式更適于編碼視頻幀非常平滑的區(qū)域,而hta_4X4模式更適于編碼具有 重要細(xì)節(jié)的視頻幀的區(qū)域。在htra_4X4模式中,如圖3A_;3B所示,從空間相鄰的樣本預(yù)測各4X4的塊。利 用標(biāo)記為‘‘A-Q”的相鄰塊中在先解碼的即重構(gòu)的樣本,預(yù)測標(biāo)記為‘‘a(chǎn)-p”的4X4的塊300 的16個(gè)樣本。也就是說,從相鄰塊A310、B315、C320和D325的重構(gòu)像素來預(yù)測塊X305。 具體地,可以利用位于被預(yù)測塊之上方的和左側(cè)的塊中的數(shù)據(jù),進(jìn)行幀內(nèi)預(yù)測,例如,通過 取得在被預(yù)測塊之上方的和左側(cè)的塊的右下方像素、在被預(yù)測塊之上方的塊的下面行的像 素、在被預(yù)測塊之上方的和右側(cè)的塊的下面行的像素、以及在被預(yù)測塊值左側(cè)的塊的右側(cè) 列的像素,進(jìn)行預(yù)測。對(duì)于宏塊中的各4X4的塊,可使用由H. 264視頻編碼標(biāo)準(zhǔn)限定的九種預(yù)測模式中 的一種。圖4顯示了九種預(yù)測模式400。除“DC”預(yù)測模式(模式2)之外,指定了八種方向 預(yù)測模式。這些模式適于預(yù)測視頻幀中的方向結(jié)構(gòu),例如各種角度的邊緣。典型的H. 264視頻編碼器在通常稱為幀內(nèi)編碼“模式?jīng)Q策”或“模式選擇”的過程 中,根據(jù)某些準(zhǔn)則從九種可能的htra_4X4預(yù)測模式選擇一種,以對(duì)幀內(nèi)編碼宏塊內(nèi)的各 4X4的塊進(jìn)行編碼。一旦選定幀內(nèi)預(yù)測模式,就從相鄰塊的重構(gòu)版本取得預(yù)測像素,以形成 預(yù)測塊。然后如圖2所示,通過從當(dāng)前的塊減去預(yù)測塊來獲得殘差。模式?jīng)Q策準(zhǔn)則通常包括如圖5所示的、通過可在http://iph0me. hhi. de/ suehring/tml/公開獲得的JM參考編碼器中實(shí)現(xiàn)的偽碼500對(duì)殘差編碼的代價(jià)的優(yōu)化。殘 差是當(dāng)前塊與由相鄰塊中重構(gòu)像素形成的預(yù)測塊之間的像素值的差異。評(píng)估的代價(jià)可以是 初始?jí)K與預(yù)測塊之間的絕對(duì)誤差代價(jià)的和(“SAD”)、初始?jí)K與預(yù)測塊之間誤差代價(jià)平方和 (“SSE”)、或更常用的率失真代價(jià)(rate-distortion cost)。率失真代價(jià)可以利用九種可能模式中每一候選模式來評(píng)估預(yù)測塊的拉格朗日代 價(jià),并選擇出具有最小拉格朗日代價(jià)的模式。由于用于編碼宏塊存在大量可用模式,所以用 于確定代價(jià)的過程需要進(jìn)行許多次。因此,在幀內(nèi)模式?jīng)Q策階段中包括的計(jì)算非常密集。此外,如圖3A-B所示,塊的預(yù)測依賴于其相鄰的塊,即其左側(cè)、上側(cè)、右上和 左上相鄰的塊,所以,在重構(gòu)其相鄰的塊A310、B315、C320、和D325之后,才能處理塊 X305的預(yù)測。在存在可用于執(zhí)行編碼模式?jīng)Q策階段的多個(gè)處理單元(多重處理單元, multipleprocessing units)的情況下,由于編碼模式?jīng)Q策階段幾乎是連續(xù)地實(shí)施,所以, 這些多個(gè)處理單元利用不足。例如,假設(shè)可用于執(zhí)行編碼模式?jīng)Q策階段的處理單元共有16個(gè)。對(duì)于給定的塊, 各處理單元應(yīng)平行地進(jìn)行編碼模式?jīng)Q策。圖6顯示了通常情況下多重處理單元是如何進(jìn)行 編碼模式?jīng)Q策的。編碼模式?jīng)Q策過程是從給定宏塊的第一塊即標(biāo)記為塊“0”的塊605、開始 階段600的。由于在該初始階段沒有近鄰,所以在選擇預(yù)測模式以預(yù)測塊“0” (605)之前, 利用可用的預(yù)測模式、例如由H. 264視頻編碼標(biāo)準(zhǔn)指定并在圖4中顯示的九種預(yù)測模式中 的每一模式來計(jì)算殘差和對(duì)殘差編碼的代價(jià)時(shí),只有一個(gè)處理單元被利用,其它15個(gè)處理 單元?jiǎng)t處于閑置狀態(tài)。在完成塊“0” (605)的編碼之后,編碼模式?jīng)Q策過程移至階段610,并繼續(xù)對(duì)標(biāo)記為塊“1”的塊615進(jìn)行編碼。在該點(diǎn)處,僅塊“0” (605)可用于塊“1”(615),因此,僅需要 一個(gè)處理單元;其它的15個(gè)處理單元仍處于閑置狀態(tài)。在重構(gòu)塊“0”(605)和塊“1”(615)之后,編碼模式?jīng)Q策過程移至階段620,并繼續(xù) 對(duì)標(biāo)記為塊“2”的塊625和標(biāo)記為“4”的塊630進(jìn)行編碼。在這種情況下,可使用兩個(gè)處 理單元,以平行地對(duì)塊“2” (625)和“4” (630)進(jìn)行編碼模式?jīng)Q策過程;其它14個(gè)處理單元 仍閑置。相同的情形適用于編碼模式?jīng)Q策過程的下一階段即階段635,其通過兩個(gè)處理單元 平行地對(duì)塊“3” (640)和“5” (645)進(jìn)行編碼,其它14個(gè)處理單元?jiǎng)t保持閑置;相同的情形 也適用于編碼模式?jīng)Q策過程的后續(xù)階段,例如編碼塊“6”和“8”、“7”和“9”、等等。由于編碼模式?jīng)Q策過程對(duì)于重構(gòu)相鄰塊的依賴性,所以可清楚地知道,對(duì)于給定 的16X 16宏塊中的16個(gè)4X4塊,是不可能完全平行地進(jìn)行處理的。圖7顯示了通過 htra_4X4預(yù)測處理宏塊的計(jì)算時(shí)間。不管可用的處理單元有多少,在htra_4X4的預(yù) 測模式中可平行處理的塊的最大數(shù)量為兩塊。需要總共10個(gè)階段來處理整個(gè)宏塊。每一 階段具有兩部分,即模式?jīng)Q策階段和編碼階段。模式?jīng)Q策階段由產(chǎn)生殘差和用于通過九種 可用幀內(nèi)預(yù)測模式中的每一模式對(duì)殘差編碼的代價(jià)的時(shí)間構(gòu)成。根據(jù)對(duì)塊的殘差進(jìn)行編碼 的代價(jià),來選擇幀內(nèi)預(yù)測模式,以預(yù)測宏塊中的每一塊。一旦為宏塊確定幀內(nèi)預(yù)測模式,就 通過編碼模塊來處理相應(yīng)的殘差,其包括DCT/量化/反量化/逆DCT階段,其中每一階段 分別具有一個(gè)塊大小的計(jì)算時(shí)間。這會(huì)導(dǎo)致為了對(duì)一宏塊進(jìn)行幀內(nèi)4X4的預(yù)測,總共需要 220個(gè)單元的計(jì)算時(shí)間。
發(fā)明內(nèi)容
在一實(shí)施方式中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括可執(zhí)行指令,以在待編碼的視頻序列 中選擇作為幀內(nèi)編碼塊的多個(gè)塊?;谙噜弶K的初始像素,可為宏塊中的所有幀內(nèi)編碼塊 選擇其幀內(nèi)預(yù)測模式;基于相鄰塊的重構(gòu)像素,可利用選定的幀內(nèi)預(yù)測模式,對(duì)宏塊中的幀 內(nèi)編碼塊進(jìn)行編碼。在一實(shí)施方式中,本發(fā)明則公開了一種用于對(duì)視頻序列中的幀內(nèi)編碼塊進(jìn)行幀內(nèi) 預(yù)測的方法。基于相鄰塊的初始像素,可為宏塊中每一幀內(nèi)編碼塊選擇其幀內(nèi)預(yù)測模式;基 于相鄰塊的重構(gòu)像素,可利用選定的幀內(nèi)預(yù)測模式,預(yù)測每一幀內(nèi)編碼塊。另一實(shí)施方式則包括一種用于使視頻序列中幀內(nèi)編碼塊的幀內(nèi)編碼模式?jīng)Q策平 行化的方法。其平行地處理宏塊中的幀內(nèi)編碼塊,以基于相鄰塊的初始像素,為宏塊中每一 幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式。其平行地處理宏塊中的幀內(nèi)編碼塊,利用它們選定的幀內(nèi) 預(yù)測模式,預(yù)測幀內(nèi)編碼塊。另一實(shí)施方式包括一種視頻編碼設(shè)備,其具有用于接收視頻序列的接口和編碼視 頻序列的處理器。處理器具有可執(zhí)行指令,以從待編碼的視頻序列中選擇作為幀內(nèi)編碼塊 的多個(gè)塊,并基于相鄰塊的初始像素,為宏塊中的所有幀內(nèi)編碼塊選擇其幀內(nèi)預(yù)測模式。
以下結(jié)合附圖進(jìn)行詳細(xì)地說明,以更充分地理解本發(fā)明的實(shí)施方式,且附圖中相 同的附圖標(biāo)記至始至終指的是相同的部分。圖1顯示了 H. 264視頻編碼標(biāo)準(zhǔn)的基本視頻編碼結(jié)構(gòu)。
圖2顯示了 H. 264視頻編碼標(biāo)準(zhǔn)的幀內(nèi)預(yù)測的方框圖。圖3A顯示了根據(jù)H. 264視頻編碼標(biāo)準(zhǔn)從空間相鄰的樣本預(yù)測的4 X 4的塊。圖:3B顯示了根據(jù)H. 264視頻編碼標(biāo)準(zhǔn)從相鄰的塊預(yù)測的4 X 4的塊。圖4顯示了 H. 264視頻編碼標(biāo)準(zhǔn)的九種htra_4 X 4的預(yù)測模式。圖5顯示了參考H. 264編碼器的、用于htra_4X4的編碼模式?jīng)Q策階段的偽碼。圖6顯示了利用并行處理單元、用于H. 264編碼器的htra_4X4編碼模式?jīng)Q策階 段的原理圖。圖7顯示了利用htra_4X4預(yù)測的、處理宏塊的計(jì)算時(shí)間的表格。圖8顯示了根據(jù)一實(shí)施方式用于在視頻編碼器中進(jìn)行htra_4X4預(yù)測的流程圖。圖9顯示了根據(jù)一實(shí)施方式的16X16的宏塊中的4X4的幀內(nèi)編碼塊。圖10顯示了根據(jù)一實(shí)施方式用于通過htra_4X4預(yù)測處理宏塊的計(jì)算時(shí)間的表格。圖11顯示了根據(jù)一實(shí)施方式的視頻編碼設(shè)備的方框圖。
具體實(shí)施例方式本發(fā)明了提供了一種技術(shù),以分離編碼模式?jīng)Q策過程對(duì)重構(gòu)的相鄰塊的依賴性, 并獲得編碼模式?jīng)Q策過程較高的平行化。如通常在此所使用地,幀內(nèi)模式預(yù)測指的是利用 給定的幀內(nèi)預(yù)測模式的數(shù)字視頻序列的宏塊中的塊的預(yù)測。如通常在此所使用地,幀內(nèi)模 式預(yù)測指的是利用給定的幀內(nèi)預(yù)測模式的數(shù)字視頻序列的宏塊中的塊的預(yù)測??蓮挠糜趯?duì) 視頻序列編碼的諸如由給定的視頻編碼標(biāo)準(zhǔn)或視頻編碼器、例如H. 264視頻編碼標(biāo)準(zhǔn)指定 的預(yù)測模式的多種幀內(nèi)預(yù)測模式選擇幀內(nèi)預(yù)測模式。塊可以是來自16X16的宏塊的4X4 的塊或16X16的塊,或者可以是如由視頻編碼標(biāo)準(zhǔn)或視頻編碼器指定的任何其它尺寸的 塊或宏塊。根據(jù)一實(shí)施方式,基于相鄰塊的初始像素為給定的幀內(nèi)編碼宏塊中的各塊選擇幀 內(nèi)預(yù)測模式。這通過利用相鄰塊的初始的非重構(gòu)的像素實(shí)現(xiàn),以便為幀內(nèi)編碼塊形成預(yù)測 塊,該預(yù)測塊對(duì)應(yīng)于多種幀內(nèi)預(yù)測模式。然后,基于通過幀內(nèi)預(yù)測模式對(duì)塊編碼的幀內(nèi)預(yù)測 代價(jià)選擇幀內(nèi)預(yù)測模式。產(chǎn)生最低幀內(nèi)預(yù)測代繳的幀內(nèi)預(yù)測模式是用于對(duì)幀內(nèi)編碼塊編碼 所選擇的一種模式。在一實(shí)施方式中,通過預(yù)測初始的非重構(gòu)相鄰塊而形成預(yù)測塊、并對(duì)預(yù)測塊與給 定塊之間的殘差進(jìn)行編碼,從而計(jì)算給定幀內(nèi)編碼塊的幀內(nèi)預(yù)測代價(jià)。如通常在此所使用 地,給定幀內(nèi)編碼塊的幀內(nèi)預(yù)測代價(jià)指的是與選擇用于對(duì)塊編碼的給定幀內(nèi)預(yù)測模式相關(guān) 的幀內(nèi)預(yù)測代價(jià)。計(jì)算代價(jià)可以是初始?jí)K與預(yù)測塊之間的絕對(duì)誤差代價(jià)的和(“SAD”)、初 始?jí)K與預(yù)測塊之間的誤差代價(jià)平方和(“SSE”)、或更一般地利用的率失真代價(jià)。也就是說,在模式?jīng)Q策階段期間,代替如傳統(tǒng)地在現(xiàn)有技術(shù)的幀內(nèi)編碼模式?jīng)Q策 階段中進(jìn)行的一樣將相鄰塊的重構(gòu)像素用于預(yù)測幀內(nèi)編碼塊,根據(jù)實(shí)施方式,基于相鄰塊 的初始的非重構(gòu)像素形成幀內(nèi)預(yù)測。如在此以下更詳細(xì)地描述地,由于可平行地聯(lián)合處理 宏塊中的所有幀內(nèi)編碼塊,所以這樣做使得視頻編碼器的幀內(nèi)編碼模式?jīng)Q策階段完全平行 化。圖8顯示根據(jù)實(shí)施方式用于在視頻編碼器中進(jìn)行幀內(nèi)預(yù)測的流程圖。首先,對(duì)于給定的視頻編碼序列,在步驟800中選擇作為幀內(nèi)編碼塊待編碼的多個(gè)塊。
如在H. 264及例如視頻編碼標(biāo)準(zhǔn)的MPEG系列的其它相似的視頻編碼標(biāo)準(zhǔn)中所指 定地,宏塊可以是具有16個(gè)4X4或一個(gè)16X 16的幀內(nèi)編碼塊的16X 16的宏塊。諸如例 如通過利用幀內(nèi)預(yù)測如在視頻編碼標(biāo)準(zhǔn)中所指定地對(duì)每一幀內(nèi)編碼塊編碼。接下來,在步驟805中,基于相鄰塊初始的非重構(gòu)的像素,為宏塊中的幀內(nèi)編碼塊 選擇幀內(nèi)預(yù)測模式。這通過從候選幀內(nèi)預(yù)測模式池、諸如例如在H. 264標(biāo)準(zhǔn)中指定的九種 幀內(nèi)預(yù)測模式為每一幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式實(shí)現(xiàn)。然后,利用給定的幀內(nèi)編碼塊的 相鄰塊的初始非重構(gòu)像素通過各候選幀內(nèi)預(yù)測模式預(yù)測該給定的幀內(nèi)編碼塊,以形成預(yù)測 塊。在預(yù)測塊與初始的幀內(nèi)編碼塊之間產(chǎn)生殘差。對(duì)位候選幀內(nèi)預(yù)測模式產(chǎn)生的所有殘差 計(jì)算幀內(nèi)預(yù)測代價(jià)。被選擇以預(yù)測幀內(nèi)編碼塊的幀內(nèi)預(yù)測模式是所有候選幀內(nèi)預(yù)測模式中 產(chǎn)生最低的幀內(nèi)預(yù)測代價(jià)的一種模式。最后,在步驟810中,通過宏塊中的幀內(nèi)編碼塊選定的幀內(nèi)預(yù)測模式,預(yù)測所述幀 內(nèi)編碼塊。如在此以上參考圖2更詳細(xì)地描述地,基于相鄰塊的重構(gòu)像素預(yù)測幀內(nèi)編碼塊。 應(yīng)理解的是,盡管在模式?jīng)Q策階段,可基于相鄰塊的初始非重構(gòu)像素選擇給定的宏塊的幀 內(nèi)預(yù)測模式,但基于相鄰塊的重構(gòu)像素、諸如例如由H. 264標(biāo)準(zhǔn)支配并在此以上參考圖2描 述的幀內(nèi)預(yù)測進(jìn)行給定的宏塊中的塊在最后的編碼階段的幀內(nèi)預(yù)測。另外,應(yīng)理解的是,由于相鄰塊的重構(gòu)像素用于預(yù)測給定的宏塊中的塊,所以相同 的重構(gòu)像素還用于為現(xiàn)有技術(shù)的傳統(tǒng)幀內(nèi)預(yù)測方法中的所述塊選擇幀內(nèi)預(yù)測模式。然而, 在此提出的實(shí)施方式將幀內(nèi)預(yù)測模式選擇與幀內(nèi)預(yù)測本身分離,以獲得現(xiàn)有技術(shù)中可用的 任何傳統(tǒng)幀內(nèi)預(yù)測方法未設(shè)想的計(jì)算節(jié)省。還應(yīng)理解的是,與在現(xiàn)有技術(shù)的方法中進(jìn)行的傳統(tǒng)幀內(nèi)模式選擇形成對(duì)比,可同 時(shí)選擇為宏塊選擇的幀內(nèi)預(yù)測模式。也就是說,可平行地進(jìn)行用于給定的宏塊中的一些或 所有塊的幀內(nèi)預(yù)測模式的選擇。由于相鄰塊初始非重構(gòu)的像素用于為給定的宏塊、而不是 如在傳統(tǒng)幀內(nèi)預(yù)測的現(xiàn)有技術(shù)方法中一樣為相鄰塊的重構(gòu)像素選擇幀內(nèi)預(yù)測模式,所以所 有相鄰的塊同時(shí)可用,并且可使幀內(nèi)預(yù)測平行化。在這情況下,如以下參考圖10所描述地,可以較少的計(jì)算時(shí)間更加有效地實(shí)現(xiàn)視 頻編碼器的幀內(nèi)編碼模式?jīng)Q策階段。根據(jù)實(shí)施方式,可對(duì)給定宏塊的所有塊使幀內(nèi)編碼模 式?jīng)Q策階段平行化。在該情況下,可同時(shí)選擇用于給定宏塊的所有塊的幀內(nèi)預(yù)測模式。例 如,對(duì)于16X16的宏塊中的16個(gè)4X4的塊,可將多重處理單元、例如16個(gè)處理單元用于 對(duì)16個(gè)4X4的塊同時(shí)進(jìn)行平行計(jì)算。還應(yīng)理解的是,在確定幀內(nèi)預(yù)測模式之后,用和現(xiàn)有技術(shù)的方法中進(jìn)行的一樣的 方式形成預(yù)測殘差,即用于產(chǎn)生給定的宏塊中的塊的壓縮位流的殘差的形成取決于相鄰塊 的重構(gòu)。同樣地,如在此以上參考圖6更詳細(xì)地描述地,可平行處理給定的宏塊中達(dá)到兩個(gè) 的塊?,F(xiàn)在參考圖9,描述根據(jù)實(shí)施方式的16X16的宏塊中的4X4的幀內(nèi)編碼塊。宏 塊900是具有從0標(biāo)記值15的16個(gè)4X4的幀內(nèi)編碼塊的16X 16的宏塊。在視頻編碼器 的幀內(nèi)預(yù)測編碼模式?jīng)Q策階段中平行地處理所有的塊0-15。如在此以上所描述地,這通過 基于塊0-15的相鄰塊(陰影塊)的初始非重構(gòu)像素、而不是如在現(xiàn)有技術(shù)的幀內(nèi)預(yù)測方法 中傳統(tǒng)進(jìn)行的一樣基于塊0-15的相鄰塊的重構(gòu)像素選擇用于塊0-15的幀內(nèi)預(yù)測模式來實(shí)現(xiàn)。對(duì)于宏塊900中的每個(gè)塊0-15,相鄰塊的初始非重構(gòu)像素全部可用于平行地進(jìn)行 幀內(nèi)編碼模式?jīng)Q策。例如,相鄰塊905、910、915和920同時(shí)可用,以幫助宏塊900中的塊 925的幀內(nèi)預(yù)測。也就是說,與諸如參考圖6所描述的現(xiàn)有技術(shù)中的傳統(tǒng)方法形成對(duì)比,進(jìn) 行幀內(nèi)編碼模式?jīng)Q策的處理器無需等待相鄰的塊重構(gòu)。處理器能同時(shí)為宏塊900中所有的 0-15個(gè)塊選擇幀內(nèi)預(yù)測模式?,F(xiàn)在參考圖10,描述示出根據(jù)實(shí)施方式通過htra_4X4的預(yù)測處理宏塊的計(jì)算 時(shí)間的表格。表格1000示出當(dāng)在視頻編碼器的幀內(nèi)編碼模式?jīng)Q策階段中一起處理16X16 的宏塊的16個(gè)4X4的塊時(shí)的計(jì)算時(shí)間。由于一起處理所有的塊,所以對(duì)于16X16的宏塊 中的所有16個(gè)4X4的塊處理在H. 264標(biāo)準(zhǔn)中指定的所有9種幀內(nèi)預(yù)測模式僅花費(fèi)例如9 個(gè)單元的計(jì)算時(shí)間,產(chǎn)生總共59個(gè)單元的計(jì)算時(shí)間。這與用于傳統(tǒng)幀內(nèi)預(yù)測方法的圖7的表格700所示的總共220個(gè)單元的計(jì)算時(shí)間 形成鮮明對(duì)比。與僅基于相鄰塊的重構(gòu)像素的傳統(tǒng)幀內(nèi)預(yù)測方法相比較,利用相鄰塊的初 始非重構(gòu)的像素進(jìn)行視頻編碼器的幀內(nèi)編碼模式?jīng)Q策階段產(chǎn)生總共73. 18%的計(jì)算和實(shí)踐 節(jié)省。應(yīng)理解的是,由于相鄰塊的重構(gòu)像素用于預(yù)測給定的宏塊中的塊,所以相同的重 構(gòu)像素還用于為現(xiàn)有技術(shù)的傳統(tǒng)幀內(nèi)預(yù)測方法中的所述塊選擇幀內(nèi)預(yù)測模式。同樣地,在 此提出用于利用相鄰塊的初始非重構(gòu)像素以便為給定的宏塊選擇幀內(nèi)預(yù)測模式的實(shí)施方 式將幀內(nèi)預(yù)測模式選擇與幀內(nèi)預(yù)測本身分離,以獲得現(xiàn)有技術(shù)中可用的任何傳統(tǒng)幀內(nèi)預(yù)測 方法未設(shè)想的計(jì)算節(jié)省。現(xiàn)在參考圖11,描述根據(jù)實(shí)施方式的視頻編碼設(shè)備的方框圖。視頻編碼設(shè)備1100 具有用于接收視頻序列的接口 1105和用于對(duì)視頻序列編碼的處理器1110。接口 1105例如 可以是數(shù)字照相機(jī)或俘獲光學(xué)圖像的其它這樣的圖像傳感器裝置中的圖像傳感器、計(jì)算機(jī)
或其它這樣的處理裝置中的輸入口、或連接至處理器并能夠接收視頻序列的任何其它的接□。根據(jù)實(shí)施方式并如上所述,處理器1110具有用于為給定的宏塊選擇幀內(nèi)預(yù)測模 式的可執(zhí)行指令或例程。例如,處理器1110具有通過利用幀內(nèi)預(yù)測在待幀內(nèi)編碼的視頻序 列中選擇幀、宏塊、和塊的例程1115、以及基于相鄰塊的初始非重構(gòu)像素為給定的宏塊中的 各塊選擇幀內(nèi)預(yù)測模式的例程1120。應(yīng)理解的是,處理器1110可具有多重處理單元,以平行地進(jìn)行給定的宏塊中的塊 的幀內(nèi)預(yù)測模式選擇和幀內(nèi)預(yù)測。例如,如在此以上所描述地,處理器1110可包括16個(gè)處 理單元,以同時(shí)處理16X16的宏塊的所有16個(gè)4X4的塊。還應(yīng)理解的是,視頻編碼設(shè)備1100可以是孤立的設(shè)備或者可以是諸如例如數(shù)字 照相機(jī)和攝像放像機(jī)、手持式移動(dòng)裝置、網(wǎng)絡(luò)攝影機(jī)、個(gè)人計(jì)算機(jī)、便攜式電腦、移動(dòng)裝置、 個(gè)人數(shù)字助理等的另一裝置的一部分。有利地,在此描述的實(shí)施方式使得比傳統(tǒng)幀內(nèi)預(yù)測方法更有效地為宏塊選擇幀內(nèi) 預(yù)測模式成為可能。與傳統(tǒng)的幀內(nèi)預(yù)測方法形成對(duì)比,基于相鄰塊的初始像素選擇用于宏 塊的幀內(nèi)預(yù)測模式。在這情況下,可使幀內(nèi)模式?jīng)Q策完全平行化,從而獲得對(duì)傳統(tǒng)幀內(nèi)預(yù)測 方法超過70%的計(jì)算節(jié)省。
前述的說明只是為了解釋本發(fā)明,所使用的特定術(shù)語是為了更徹底地理解本發(fā) 明。然而,本領(lǐng)域技術(shù)人員可以理解,在實(shí)施本發(fā)明時(shí),一些特定細(xì)節(jié)并不是必須的。因此, 前述本發(fā)明特定實(shí)施方式的敘述目的只是為了說明及描述,而并非是為了窮盡或限制本發(fā) 明于特定的公開形式;顯而易見的是,經(jīng)本發(fā)明的以上啟示,就完全可能做出許多其它的改 進(jìn)和改變。
權(quán)利要求
1.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其包括如下可執(zhí)行指令在待編碼的視頻序列中選擇多個(gè)塊作為幀內(nèi)編碼塊;基于相鄰塊的初始像素,為宏塊中所有的幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式;以及基于相鄰塊的重構(gòu)像素,用選定的幀內(nèi)預(yù)測模式預(yù)測所述宏塊中的幀內(nèi)編碼塊。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所述的視頻序列包括多個(gè)幀內(nèi)編 碼幀,其中,每一幀內(nèi)編碼幀包括多個(gè)宏塊。
3.如權(quán)利要求2所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,在待編碼的視頻序列中選擇作為 幀內(nèi)編碼塊的多個(gè)塊的可執(zhí)行指令包括從宏塊選擇幀內(nèi)編碼塊的可執(zhí)行指令。
4.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,用選定的幀內(nèi)預(yù)測模式預(yù)測所述 宏塊中的幀內(nèi)編碼塊的可執(zhí)行指令每次同時(shí)預(yù)測兩個(gè)幀內(nèi)編碼塊的可執(zhí)行指令。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,為宏塊中所有的幀內(nèi)編碼塊選擇 幀內(nèi)預(yù)測模式的可執(zhí)行指令包括利用相鄰塊的初始像素為所述宏塊中所有的幀內(nèi)編碼塊 同時(shí)選擇幀內(nèi)預(yù)測模式的可執(zhí)行指令,每一預(yù)測塊對(duì)應(yīng)于一幀內(nèi)預(yù)測模式。
6.如權(quán)利要求5所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其進(jìn)一步包括通過從所述幀內(nèi)編碼塊減 去所述預(yù)測塊以同時(shí)為所述宏塊中的每一幀內(nèi)編碼塊形成殘差塊的可執(zhí)行指令,每一殘差 塊對(duì)應(yīng)于一幀內(nèi)預(yù)測模式。
7.如權(quán)利要求6所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其進(jìn)一步包括為每一幀內(nèi)編碼塊的殘差 塊進(jìn)行編碼而同時(shí)計(jì)算幀內(nèi)預(yù)測代價(jià)的可執(zhí)行指令,每一幀內(nèi)預(yù)測代價(jià)對(duì)應(yīng)于幀內(nèi)預(yù)測模 式。
8.如權(quán)利要求7所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其進(jìn)一步包括基于所述幀內(nèi)預(yù)測代價(jià)為 每一幀內(nèi)編碼塊而選擇幀內(nèi)預(yù)測模式的可執(zhí)行指令。
9.一種對(duì)視頻序列中幀內(nèi)編碼塊進(jìn)行幀內(nèi)預(yù)測的方法,其包括基于相鄰塊的初始像素,為宏塊中每一幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式;以及基于相鄰塊的重構(gòu)像素,利用選定的幀內(nèi)預(yù)測模式預(yù)測所述每一幀內(nèi)編碼塊。
10.如權(quán)利要求9所述的方法,其中,為每一幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式包括平行 地為所述宏塊中所有的幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式。
11.如權(quán)利要求9所述的方法,其中,為每一幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式包括利用 相鄰塊的初始像素,同時(shí)預(yù)測所述宏塊中所有的幀內(nèi)編碼塊,其中,每一預(yù)測塊對(duì)應(yīng)于幀內(nèi) 預(yù)測模式。
12.如權(quán)利要求11所述的方法,其進(jìn)一步包括通過從所述幀內(nèi)編碼塊減去所述預(yù)測 塊,以同時(shí)為所述宏塊中每一幀內(nèi)編碼塊形成殘差塊,其中,每一殘差塊對(duì)應(yīng)于一幀內(nèi)預(yù)測 模式。
13.如權(quán)利要求12所述的方法,其進(jìn)一步包括為每一幀內(nèi)編碼塊的殘差塊進(jìn)行編碼 而同時(shí)計(jì)算幀內(nèi)預(yù)測代價(jià),其中,每一幀內(nèi)預(yù)測代價(jià)對(duì)應(yīng)于一幀內(nèi)預(yù)測模式。
14.如權(quán)利要求13所述的方法,其中,為每一幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式包括基于 幀內(nèi)預(yù)測代價(jià),選擇幀內(nèi)預(yù)測模式。
15.一種使視頻序列中幀內(nèi)編碼塊的幀內(nèi)編碼模式?jīng)Q策平行化的方法,其包括基于相鄰塊的初始像素,平行地處理宏塊中的幀內(nèi)編碼塊,為所述宏塊中每一幀內(nèi)編 碼塊選擇幀內(nèi)預(yù)測模式;以及利用選定的幀內(nèi)預(yù)測模式,平行地處理所述宏塊中的幀內(nèi)編碼塊以預(yù)測所述幀內(nèi)編碼塊。
16.如權(quán)利要求15所述的車輛,其中,平行地處理宏塊中的幀內(nèi)編碼塊包括利用相鄰 塊的初始像素,同時(shí)預(yù)測所述宏塊中的一組幀內(nèi)編碼塊,以便為該組幀內(nèi)編碼塊中的每一 幀內(nèi)編碼塊形成預(yù)測塊,其中,每一預(yù)測塊對(duì)應(yīng)于一幀內(nèi)預(yù)測模式。
17.如權(quán)利要求16所述的方法,其進(jìn)一步包括通過從所述每一幀內(nèi)編碼塊減去所述 預(yù)測塊,同時(shí)為該組幀內(nèi)編碼塊中的每一幀內(nèi)編碼塊形成殘差塊,其中,每一殘差塊對(duì)應(yīng)于 一幀內(nèi)預(yù)測模式。
18.如權(quán)利要求17所述的方法,其進(jìn)一步包括為該組幀內(nèi)編碼塊中每一幀內(nèi)編碼塊 的殘差塊進(jìn)行編碼,而同時(shí)計(jì)算幀內(nèi)預(yù)測代價(jià),其中,每一幀內(nèi)預(yù)測代價(jià)對(duì)應(yīng)于一幀內(nèi)預(yù)測 模式。
19.如權(quán)利要求18所述的方法,其進(jìn)一步包括基于幀內(nèi)預(yù)測代價(jià),為該組幀內(nèi)編碼塊 中每一幀內(nèi)編碼塊選擇其幀內(nèi)預(yù)測模式。
20.如權(quán)利要求15所述的方法,其中,平行地處理所述宏塊中的幀內(nèi)編碼塊以預(yù)測所 述幀內(nèi)編碼塊包括單獨(dú)地預(yù)測所述宏塊中第一和第二幀內(nèi)編碼塊,并通過每次同時(shí)預(yù)測 兩個(gè)幀內(nèi)編碼塊而平行地預(yù)測所述宏塊中的其它幀內(nèi)編碼塊。
21.一種視頻編碼設(shè)備,其包括接口,其用于接收視頻序列;以及處理器,其用于對(duì)所述視屏序列進(jìn)行編碼,并包括如下可執(zhí)行指令在待編碼的視頻序列中選擇多個(gè)塊作為幀內(nèi)編碼塊;以及基于相鄰塊的初始像素,為宏塊中的幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式。
22.如權(quán)利要求21所述的視頻編碼設(shè)備,其中,所述處理器進(jìn)一步包括如下的可執(zhí)行 指令基于相鄰塊的重構(gòu)像素,利用選定的幀內(nèi)預(yù)測模式來預(yù)測所述宏塊中所有的幀內(nèi)編 碼塊。
23.如權(quán)利要求22所述的視頻編碼設(shè)備,其中,預(yù)測所述宏塊中所有的幀內(nèi)編碼塊的 可執(zhí)行指令是平行地執(zhí)行的。
全文摘要
本發(fā)明公開了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有可執(zhí)行指令,以在待編碼的視頻序列中選擇多個(gè)塊作為幀內(nèi)編碼塊。其中,基于相鄰塊的初始像素,可為宏塊中的所有幀內(nèi)編碼塊選擇幀內(nèi)預(yù)測模式;可平行地進(jìn)行所有幀內(nèi)編碼塊的模式選擇;基于相鄰塊的重構(gòu)像素,通過選定的幀內(nèi)預(yù)測模式,預(yù)測宏塊中的幀內(nèi)編碼塊。
文檔編號(hào)H04N7/34GK102077598SQ200980125042
公開日2011年5月25日 申請(qǐng)日期2009年4月21日 優(yōu)先權(quán)日2008年4月30日
發(fā)明者周建, 孔豪松 申請(qǐng)人:豪威科技有限公司