專利名稱:用于使用自適應(yīng)環(huán)路濾波器進(jìn)行視頻編碼的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明整體上涉及視頻編碼,并且更具體地涉及使用環(huán)路濾波器進(jìn)行的視頻編 碼。
背景技術(shù):
現(xiàn)今,越來越多的應(yīng)用將數(shù)字視頻用于各種目的,包括例如經(jīng)由視頻會議進(jìn)行的 遠(yuǎn)程業(yè)務(wù)會談、高清晰度視頻娛樂、視頻廣告以及針對用戶生成的視頻的分享。隨著技術(shù)的 演進(jìn),人們對視頻質(zhì)量有了越來越高的期望,并希望在具有高分辨率視頻的同時(shí),能夠以高 幀速率進(jìn)行平滑回放。在選擇用于觀看數(shù)字視頻的視頻編碼器時(shí),有很多要考慮的因素。某些應(yīng)用可能 需要極高的視頻質(zhì)量,而其他應(yīng)用可能需要遵從各種限制,包括例如帶寬或存儲要求。為了 在限制帶寬消耗的同時(shí)允許較高質(zhì)量的視頻傳輸,注意到了大量視頻壓縮機(jī)制,包括專用 格式,諸如VPx(由紐約、克里夫頓公園的0n2技術(shù)公司發(fā)布)、H. 264標(biāo)準(zhǔn)(由ITU-T視頻 編碼專家組(VCEG)和IS0/IEC移動圖像專家組(MPEG)發(fā)布),包括其目前版本和將來版 本。H. 264 也稱為 MPEG-4 部分 10 或 MPEG-4AVC (正式稱為 IS0/IEC 14496-10)。很多視頻編碼技術(shù)使用基于塊的預(yù)測和量化的塊變換。利用基于塊的預(yù)測,重建 的幀緩沖可以用于預(yù)測后續(xù)的幀?;趬K的預(yù)測和量化的塊變換的使用可以導(dǎo)致沿塊邊界 的不連續(xù)性。這些不連續(xù)性(通常稱為成塊效應(yīng)(blocking artifact))可以造成視覺干 擾,并且可以降低參考幀作為針對后續(xù)幀的預(yù)測符的有效性。這些不連續(xù)性可以通過應(yīng)用 環(huán)路濾波器來降低??梢韵蛑亟ǖ膸彌_應(yīng)用環(huán)路濾波器。一些常規(guī)的環(huán)路濾波器向不同 的塊邊界應(yīng)用不同的過濾強(qiáng)度。例如,一些壓縮系統(tǒng)例如根據(jù)塊已被幀間編碼還是幀內(nèi)編 碼來改變環(huán)路濾波器的強(qiáng)度。其他壓縮系統(tǒng)例如基于不連續(xù)性的程度和閾值水平之間的差 異來應(yīng)用濾波器強(qiáng)度。此外,例如,一些壓縮系統(tǒng)可以通過例如計(jì)算塊較之于其相鄰塊的差 值亮度變化來改變環(huán)路濾波器的強(qiáng)度。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)實(shí)施方式公開了一種用于減少從壓縮視頻信息幀重建的相鄰塊之 間邊界處的成塊效應(yīng)的方法。該視頻信息包括針對所述塊中至少一個(gè)塊的預(yù)測階段參數(shù)。 該方法包括基于所述預(yù)測階段參數(shù)來重建一個(gè)塊;基于重建塊來計(jì)算殘差錯(cuò)誤屬性;基 于基線濾波器強(qiáng)度和至少一個(gè)增加值來計(jì)算濾波器強(qiáng)度值。增加值是至少基于與一個(gè)塊關(guān) 聯(lián)的殘差錯(cuò)誤屬性和所述預(yù)測階段參數(shù)中的一個(gè)而從多個(gè)預(yù)設(shè)值中選擇的。使用所選擇的濾波器強(qiáng)度值來過濾鄰近所述一個(gè)塊的所述邊界。本發(fā)明的另一實(shí)施方式公開了一種用于對壓縮視頻信息幀進(jìn)行解碼的方法,其中 每個(gè)幀包括多個(gè)塊,所述塊具有預(yù)測階段參數(shù)和殘差錯(cuò)誤屬性。該方法包括基于所述預(yù)測 階段參數(shù)和所述殘差錯(cuò)誤屬性中的至少一個(gè),將所述塊中的每個(gè)塊分類至類別中,以及確 定針對所述類別中每個(gè)類別的環(huán)路濾波器強(qiáng)度值。使用向塊分類于其中的所述類別指派的 所述環(huán)路濾波器強(qiáng)度,過濾鄰近所述塊的至少一個(gè)塊的邊界。本發(fā)明的又一實(shí)施方式公開了一種用于對壓縮視頻信息幀進(jìn)行解碼的方法,其中 每個(gè)幀包括多個(gè)塊,每個(gè)塊具有預(yù)測階段參數(shù)和殘差錯(cuò)誤屬性。該方法包括確定針對每個(gè) 塊的塊屬性,以及確定一個(gè)或多個(gè)環(huán)路濾波器屬性的多個(gè)值。每個(gè)值與一個(gè)或多個(gè)塊屬性 關(guān)聯(lián)。基于特定塊的塊屬性,選擇針對所述特定塊的一個(gè)或多個(gè)環(huán)路濾波器屬性的值中的 一個(gè)。使用所選擇的一個(gè)或多個(gè)環(huán)路濾波器屬性值,過濾鄰近所述特定塊的邊界。本發(fā)明的這些實(shí)施方式和其他實(shí)施方式另外在下文詳細(xì)描述。
此處的描述參考了附圖,其中相同的附圖標(biāo)記貫穿若干視圖指代相同部分,以及 附圖中圖1是根據(jù)本發(fā)明一個(gè)實(shí)施方式的視頻壓縮系統(tǒng)的框圖。圖2是根據(jù)本發(fā)明一個(gè)實(shí)施方式的視頻解壓縮系統(tǒng)的框圖。圖3是在圖1和圖2的視頻壓縮系統(tǒng)和視頻解壓縮系統(tǒng)中使用的幀內(nèi)預(yù)測模式和 幀間預(yù)測模式的示意圖。圖4是用以計(jì)算在圖1的視頻壓縮系統(tǒng)中使用的強(qiáng)度修改器的環(huán)路濾波器控制的 框圖。圖5是選擇圖4的強(qiáng)度修改器的方法的流程圖。圖6是更新在圖1的視頻壓縮系統(tǒng)中使用的環(huán)路濾波視頻數(shù)據(jù)的一種方法的流程 圖。圖7是更新在圖1的視頻壓縮系統(tǒng)中使用的環(huán)路濾波視頻數(shù)據(jù)的另一方法的流程 圖。
具體實(shí)施例方式此處公開了移除或減小成塊效應(yīng)的自適應(yīng)環(huán)路濾波器的實(shí)施方式。此外,此處還 公開了使用較少的開銷數(shù)據(jù)移除或減小成塊效應(yīng)和/或降低計(jì)算復(fù)雜度的自適應(yīng)環(huán)路濾 波器的實(shí)施方式。圖1是根據(jù)本發(fā)明一個(gè)實(shí)施方式的使用自適應(yīng)環(huán)路濾波器34的視頻編碼器14的 框圖。在公開的實(shí)施方式中,基于塊的視頻壓縮針對相鄰像素的固定形狀群組(稱為宏 塊)進(jìn)行操作。通常,每個(gè)視頻幀可以劃分成宏塊,其中每個(gè)宏塊包括多個(gè)較小尺寸的塊。 宏塊和塊中的這些像素群組可以與在當(dāng)前幀中找到的數(shù)據(jù)或在其他幀中找到的數(shù)據(jù)進(jìn)行 比較,以便制成運(yùn)動數(shù)據(jù)和錯(cuò)誤信號。在此實(shí)施方式中,每個(gè)宏塊可以是16X16個(gè)像素的 群組。在其他實(shí)施方式中,宏塊也可以是任何其他適當(dāng)尺寸。
盡管在VP8視頻編碼格式的上下文中描述了自適應(yīng)環(huán)路濾波器新方案的實(shí)施方 式,但是本發(fā)明的備選實(shí)施方式可以在其他視頻編碼格式的上下文中實(shí)現(xiàn)。此外,實(shí)施方式 并不限于任何特定的視頻編碼標(biāo)準(zhǔn)或格式。為了移除塊邊界處的不連續(xù)性,可以在重建路徑期間向重建的幀應(yīng)用環(huán)路濾波。 如下文更詳細(xì)說明的,環(huán)路濾波器以及環(huán)路濾波器強(qiáng)度的選擇可對圖像質(zhì)量產(chǎn)生較大影 響。太強(qiáng)的濾波器可能引起細(xì)節(jié)的模糊和損失。太弱的濾波器可能不足以抑制相鄰塊之間 的不連續(xù)性。參考圖1,為了對輸入視頻流16進(jìn)行編碼,編碼器14在前向路徑(由實(shí)線連接線 示出)中執(zhí)行下述功能以便產(chǎn)生經(jīng)編碼的比特流26 幀內(nèi)/幀間預(yù)測18、變換19、量化22 和熵編碼M。編碼器14還包括用于重建幀以對其他宏塊進(jìn)行編碼的重建路徑(由虛線連 接線示出)。編碼器14在重建路徑中執(zhí)行下述功能去量化觀、逆變換30、重建32和環(huán)路 濾波34。編碼器14的其他結(jié)構(gòu)變體也可以用于比特流沈的編碼。參考圖1,當(dāng)輸入視頻流16呈現(xiàn)用于編碼時(shí),輸入視頻流16內(nèi)的每個(gè)幀可以以宏 塊為單位進(jìn)行處理。在幀內(nèi)/幀間預(yù)測階段18,可以使用幀內(nèi)預(yù)測模式或幀間預(yù)測模式對 每個(gè)宏塊進(jìn)行編碼。在任一情況下,可以基于重建的幀來形成預(yù)測宏塊。在幀內(nèi)預(yù)測的情 況下,例如,可以根據(jù)當(dāng)前幀中之前已編碼且重建的采樣形成預(yù)測宏塊。在幀間預(yù)測的情況 下,例如,可以根據(jù)已經(jīng)編碼且重建的一個(gè)或多個(gè)之前的或?qū)淼膸?即,參考幀)來形成 預(yù)測宏塊。此外,備選實(shí)施方式可以通過使用幀內(nèi)預(yù)測和幀間預(yù)測二者的某種組合來對宏 塊進(jìn)行編碼。接下來,繼續(xù)參考圖1,可以從當(dāng)前宏塊中減去預(yù)測宏塊,以產(chǎn)生殘差宏塊(殘 差)。變換階段19對殘差進(jìn)行變換編碼,以及量化階段22對殘差進(jìn)行量化以產(chǎn)生一組經(jīng)量 化的變換系數(shù)。該經(jīng)量化的變換系數(shù)繼而可以由熵編碼階段M進(jìn)行熵編碼。經(jīng)熵編碼的 系數(shù)與對宏塊進(jìn)行解碼所需的信息(諸如,所使用的預(yù)測模式類型、運(yùn)動向量和量化器值) 一起可以輸出到經(jīng)壓縮的比特流26。圖1中的重建路徑可以呈現(xiàn)用于保證編碼器和解碼器兩者都使用對宏塊進(jìn)行解 碼所需的相同參考幀。重建路徑包括通過去量化階段觀去量化變換系數(shù)以及通過逆變換 階段30對系數(shù)進(jìn)行逆變換,以產(chǎn)生導(dǎo)出的殘差宏塊(導(dǎo)出殘差),該重建路徑類似于在下文 更加詳細(xì)討論的解碼過程期間發(fā)生的功能。在重建階段32,預(yù)測宏塊可以添加到導(dǎo)出殘差 以創(chuàng)建重建的宏塊。自適應(yīng)環(huán)路濾波器34可以應(yīng)用于重建的宏塊以減少成塊效應(yīng)。參考圖2,根據(jù)一個(gè)實(shí)施方式,為了解碼壓縮的比特流沈,與先前討論的編碼器14 的重建路徑類似,解碼器21執(zhí)行如下功能以產(chǎn)生輸出視頻流35 熵解碼25、去量化27、逆 變換四、幀內(nèi)/幀間預(yù)測23、重建31、自適應(yīng)環(huán)路濾波器34和去成塊濾波33。解碼器21 的其他結(jié)構(gòu)變體也可以用于對壓縮的比特流26進(jìn)行解碼。當(dāng)壓縮的比特流沈呈現(xiàn)用于解碼時(shí),數(shù)據(jù)元素可以由熵解碼階段25進(jìn)行熵解碼, 以產(chǎn)生一組量化的系數(shù)。去量化階段27對系數(shù)進(jìn)行去量化,以及逆變換階段四對系數(shù)進(jìn) 行逆變換,以產(chǎn)生與編碼器14中的重建階段所創(chuàng)建的導(dǎo)出殘差相同的導(dǎo)出殘差。在幀內(nèi)/ 幀間預(yù)測階段23,使用從壓縮的比特流沈解碼的報(bào)頭信息,解碼器21創(chuàng)建與編碼器14中 所創(chuàng)建的預(yù)測宏塊相同的預(yù)測宏塊。在重建階段31,預(yù)測宏塊可以添加到導(dǎo)出殘差,以創(chuàng)建 重建宏塊。自適應(yīng)環(huán)路濾波器34可以應(yīng)用于重建的宏塊以減少成塊效應(yīng)。去成塊濾波器33可以應(yīng)用于重建的宏塊,以進(jìn)一步減小成塊失真,并且可將結(jié)果輸出至輸出視頻流35。盡管參考編碼器中的自適應(yīng)環(huán)路濾波器34描述了自適應(yīng)環(huán)路濾波器新方案的實(shí) 施方式,但是所描述的濾波技術(shù)也可以實(shí)現(xiàn)在解碼器中的自適應(yīng)環(huán)路濾波器34中。在本公 開中已經(jīng)省略的對解碼器中自適應(yīng)環(huán)路濾波器34的參考僅用于輔助對本發(fā)明的理解。然 而,濾波新方案并不限于編碼器中的自適應(yīng)環(huán)路濾波器34,而是可以應(yīng)用于解碼器中的自 適應(yīng)環(huán)路濾波器34或者并入了濾波技術(shù)的任何其他單元。圖3示出了參考幀44、48,以及正在進(jìn)行編碼或解碼的當(dāng)前幀36。如前所述,每個(gè) 幀可以以宏塊為單位并且在幀內(nèi)/幀間預(yù)測階段18中進(jìn)行處理,并且每個(gè)宏塊可以使用幀 內(nèi)預(yù)測、幀間預(yù)測模式或幀間預(yù)測和幀間預(yù)測的某些組合進(jìn)行編碼。例如,當(dāng)前宏塊38使 用來自之前編碼的參考幀44的宏塊46的幀間預(yù)測進(jìn)行編碼或解碼。類似地,當(dāng)前宏塊38’ 使用來自之前編碼的參考幀48的宏塊50的幀間預(yù)測進(jìn)行編碼或解碼。而且,例如,當(dāng)前宏 塊38”使用來自當(dāng)前幀36內(nèi)的宏塊52的幀內(nèi)預(yù)測進(jìn)行編碼或解碼。成塊效應(yīng)可以在編碼過程期間產(chǎn)生,并且可以起源于例如幀內(nèi)/幀間預(yù)測階段 18、變換階段19或量化階段22。由于某些常規(guī)濾波器根據(jù)塊邊界來確定濾波器強(qiáng)度,所以 計(jì)算處理可能是復(fù)雜且耗時(shí)的。圖4是示出了本發(fā)明一個(gè)實(shí)施方式中的自適應(yīng)環(huán)路濾波器34的環(huán)路濾波器控制 61的框圖。根據(jù)一個(gè)實(shí)施方式,環(huán)路濾波器控制61基于塊屬性來確定強(qiáng)度修改器60。塊 屬性基于關(guān)于塊的現(xiàn)有已編碼信息或者傳遞至解碼器以輔助比特流的正確解碼的信息。塊屬性可以包括預(yù)測階段參數(shù)65和殘差錯(cuò)誤屬性66。預(yù)測階段參數(shù)65可以包括 參考幀類型62和預(yù)測模式64的類型。如下文更詳細(xì)討論,強(qiáng)度修改器60改變自適應(yīng)環(huán)路 濾波器34中的閾值水平。參考幀類型62可以通過在構(gòu)建預(yù)測塊時(shí)使用的是幀內(nèi)模式編碼還是幀間模式編 碼來確定(類似于圖3所示)。如果使用的是幀內(nèi)模式預(yù)測編碼,則參考幀類型62可以是 幀內(nèi)幀(即,當(dāng)前幀)。當(dāng)使用幀內(nèi)幀時(shí),如前所述,可以根據(jù)當(dāng)前幀中之前已編碼和重建的 采樣形成預(yù)測塊。如果使用的是幀間模式預(yù)測編碼,則可以將幀間幀用作制成預(yù)測塊的基礎(chǔ)。當(dāng)使 用幀間幀時(shí),可以例如根據(jù)已經(jīng)編碼和重建的一個(gè)或多個(gè)之前的幀、將來的幀或者其某些 組合形成預(yù)測塊。因此,當(dāng)使用幀間幀時(shí),參考幀類型62可以包括例如最后一幀、黃金幀或 備用參考幀。最后一幀可以是當(dāng)前幀之前的之前已編碼幀。黃金幀可以是從較早之前中任 意選擇以用作后續(xù)幀的預(yù)測符的過去幀。備用參考幀可以包括任何既不是最后一幀也不是 黃金幀的幀。例如,備用參考可以是過去的幀、將來的幀或者構(gòu)建的參考幀。此外,例如, 構(gòu)建的參考可以是在名為 “System and Method for Video Encoding Using Constructed Reference Frame"的專利申請中公開的參考幀,該專利申請授讓給本發(fā)明的受讓人,并且 與本發(fā)明同時(shí)遞交,于此通過參考并入其全部內(nèi)容。預(yù)測模式64的類型可以通過在構(gòu)建預(yù)測塊時(shí)使用的是幀內(nèi)模式編碼還是幀間模 式編碼(如圖4所示)進(jìn)行確定(類似于參考幀類型6 。如果使用的是幀內(nèi)模式預(yù)測編 碼,則可以支持兩種類型的幀內(nèi)編碼,其被標(biāo)記為非分割模式和分割模式。如果使用的是幀 間模式預(yù)測編碼,則可以支持兩種類型的幀間編碼,其被標(biāo)記為非分割模式和分割模式。如果將幀間模式預(yù)測編碼與非分割模式一起使用,則殘差錯(cuò)誤屬性66可以通過結(jié)果運(yùn)動向量是空還是非零來確定。如前所述,宏塊可以是16X16亮度像素的陣列。在幀內(nèi)編碼中,每個(gè)宏塊可進(jìn)一 步分割成例如稱為4X4子塊的4X4亮度采樣。因此,宏塊可以包括16個(gè)4X4子塊。這意 味著可以針對宏塊(即,非分割模式)或16個(gè)4X4子塊中的每一個(gè)子塊(即,分割模式) 形成預(yù)測塊。其他子塊大小也是可用的,諸如16X8、8X16和8X8。盡管針對4X4子塊分 割模式描述了幀內(nèi)編碼的實(shí)施方式的描述,但是可以將任何其他子塊大小與分割模式一起 使用,并且實(shí)施方式的描述并不限于4X4子塊。在幀內(nèi)編碼中,非分割模式產(chǎn)生了針對整個(gè)16X16宏塊的預(yù)測,而分割模式產(chǎn)生 針對每個(gè)4X4子塊的單獨(dú)預(yù)測。對于幀內(nèi)編碼非分割模式,例如,4個(gè)預(yù)測模式中的一個(gè)可以用于參考位于要預(yù)測 的16X16塊上面和/或左面的之前已編碼塊的相鄰像素采樣。4個(gè)可選擇的預(yù)測模式可以 是垂直預(yù)測、水平預(yù)測、DC預(yù)測和平面預(yù)測。對于幀內(nèi)編碼分割模式,例如,9個(gè)預(yù)測模式中的一個(gè)可以用于參考位于要預(yù)測的 4X4子塊上面和/或左面的之前已編碼塊的相鄰像素采樣。9個(gè)可選擇的預(yù)測模式可以是 垂直預(yù)測、水平預(yù)測、DC預(yù)測、左下對角預(yù)測、右下對角預(yù)測、垂直右預(yù)測、水平下預(yù)測、垂直 左預(yù)測和水平上預(yù)測。在幀間編碼中,非分割模式導(dǎo)致基于用于預(yù)測整個(gè)16X16宏塊的相應(yīng)參考幀區(qū) 域的移位來計(jì)算一個(gè)或多個(gè)運(yùn)動向量。備選地,分割模式導(dǎo)致基于用于預(yù)測16X16宏塊 一部分的對應(yīng)參考幀區(qū)域的移位來計(jì)算運(yùn)動向量。16X16宏塊可以分割成16X8、8X16、 8X8或4X4的劃分,每一個(gè)具有其自己的運(yùn)動向量。其他劃分大小也是可行的。可以針對每個(gè)完整宏塊或每個(gè)單獨(dú)部分來計(jì)算運(yùn)動向量。具體地,運(yùn)動補(bǔ)償根據(jù) 參考幀的遷移來預(yù)測宏塊(或者宏塊內(nèi)的相應(yīng)部分)的像素值。針對每個(gè)宏塊或部分的運(yùn) 動向量可以是空,這指示運(yùn)動沒有改變,或者可以是非零,這指示運(yùn)動發(fā)生了改變。盡管實(shí)施方式的描述說明了自適應(yīng)環(huán)路濾波器34如何基于預(yù)測階段參數(shù)65和殘 差錯(cuò)誤屬性64應(yīng)用不同強(qiáng)度修改器60,但是任何其他環(huán)路濾波器屬性可以改變,諸如,濾 波器類型、濾波器系數(shù)和濾波器抽頭,并且實(shí)施方式的描述并不限于改變強(qiáng)度修改器60。圖5是示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的、來自圖4的環(huán)路濾波器控制61的操作 的流程圖。參考圖5,在框100處,可以針對幀選擇基線環(huán)路濾波器強(qiáng)度f,其定義了自適應(yīng) 環(huán)路濾波器34的行為。因此,基線濾波器強(qiáng)度f將在已編碼比特流中的幀級別處進(jìn)行指定。 通過在幀級別處指定基線濾波器強(qiáng)度f,可以減小開銷,因?yàn)榭梢允褂梅浅I俚谋忍貋碇付?針對整個(gè)幀的單個(gè)基線濾波器值f。然而,即使可以針對該幀僅指定一個(gè)基線濾波器強(qiáng)度 f,也不會犧牲濾波質(zhì)量,因?yàn)闉V波器強(qiáng)度值/修改器60改變自適應(yīng)環(huán)路濾波器34中的閾 值水平,如下所述。為了在宏塊級別調(diào)整修改器60,增量值1-8可以在比特流中進(jìn)行編碼。這些增量 值例如向基線濾波器強(qiáng)度f添加。用于組合基線濾波器強(qiáng)度f和強(qiáng)度修改器60的其他適 當(dāng)過程也是可用的。增量值也可以是增加值或者百分?jǐn)?shù)增加/減少值等。增量值還可以是 正的、負(fù)的或零。根據(jù)圖5中流程圖來應(yīng)用增量給出了標(biāo)識為Fl-Fll的11個(gè)不同強(qiáng)度修 改器60。在決策框102,控制61確定正在重建的當(dāng)前宏塊是否已被幀內(nèi)編碼。
9
如果當(dāng)前宏塊已進(jìn)行了幀內(nèi)編碼,則可以向基線濾波器強(qiáng)度f添加增量1。返回參 考圖4,在此情況下,參考幀類型62是幀內(nèi)幀。繼而,控制61移動到?jīng)Q策框104。在決策框104,控制61確定使用的是否是幀內(nèi)編碼分割模式。如果使用的幀內(nèi)編 碼分割模式,則可以向增量1和基線濾波器強(qiáng)度f添加增量2,以產(chǎn)生強(qiáng)度修改器F2。返回 參考圖4,在此情況下,預(yù)測模式64是幀內(nèi)編碼分割模式。如果未使用幀內(nèi)編碼分割模式(即,非分割模式),則可以僅向基線濾波器強(qiáng)度f 添加增量1,以產(chǎn)生強(qiáng)度修改器F1。返回參考圖4,在此情況下,預(yù)測模式64是幀內(nèi)編碼非 分割模式。如果當(dāng)前宏塊未進(jìn)行幀內(nèi)編碼,則控制61移動到?jīng)Q策框106,以確定使用的幀間 編碼參考幀的類型。如果使用的是最后一幀,則可以向基線濾波器強(qiáng)度f添加增量3。返回 參考圖4,在此情況下,參考幀類型62是最后一幀。繼而,控制61移動到?jīng)Q策框108。如果使用的是黃金幀,則可以向基線濾波器強(qiáng)度f添加增量4。返回參考圖4,在 此情況下,參考幀類型62是黃金幀。繼而,控制61移動到?jīng)Q策框110。如果使用的是備用幀,則可以向基線濾波器強(qiáng)度f添加增量5。返回參考圖4,在 此情況下,參考幀類型62是備用幀。繼而,控制61移動至決策框112。如前所述,如果使用的是最后一幀,則控制61在決策框108處確定預(yù)測模式64。 如果使用的是幀間編碼分割模式,則可以向基線濾波器強(qiáng)度f和增量3添加增量8,以產(chǎn)生 強(qiáng)度修改器F5。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼分割模式。如果未使用幀間編碼分割模式,則控制61確定計(jì)算的運(yùn)動向量是空還是非零。如 果運(yùn)動向量是空,則可以向基線濾波器強(qiáng)度f和增量3添加增量6,以產(chǎn)生強(qiáng)度修改器F3。 返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非分割模式,并且殘差錯(cuò)誤屬性66是空 運(yùn)動向量。如果運(yùn)動向量是非零,則可以向基線濾波器強(qiáng)度f和增量3添加增量7,以產(chǎn)生 強(qiáng)度修改器F4。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非分割模式,而殘差錯(cuò) 誤屬性66是非零運(yùn)動向量。如前所述,如果使用的是黃金幀,則控制61在決策框110處確定預(yù)測模式64。如 果使用的是幀間分割模式,則可以向基線濾波器強(qiáng)度f和增量4添加增量8,以產(chǎn)生強(qiáng)度修 改器F8。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼分割模式。如果未將幀間編碼分割模式與黃金幀一起使用,則控制61確定計(jì)算的運(yùn)動向量 是空還是非零。如果運(yùn)動向量是空,則可以向基線濾波器強(qiáng)度f和增量4添加增量6,以產(chǎn) 生強(qiáng)度修改器F6。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非分割模式,并且殘 差錯(cuò)誤屬性66是空運(yùn)動向量。如果運(yùn)動向量是非零,則可以向基線濾波器強(qiáng)度f和增量4 添加增量7,以產(chǎn)生強(qiáng)度修改器F7。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非 分割模式,并且殘差錯(cuò)誤屬性66是非零運(yùn)動向量。如前所述,如果使用的是備用幀,則控制61在決策框112處確定預(yù)測模式64。如 果使用的是幀間編碼分割模式,則可以向基線濾波器強(qiáng)度f和增量5添加增量8,以產(chǎn)生強(qiáng) 度修改器F11。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼分割模式。如果未將幀間編碼分割模式與備用幀一起使用,則控制61確定計(jì)算的運(yùn)動向量 是空還是非零。如果運(yùn)動向量是空,則可以向基線濾波器強(qiáng)度f和增量5添加增量6,以產(chǎn) 生強(qiáng)度修改器F9。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非分割模式,并且殘差錯(cuò)誤屬性66是空運(yùn)動向量。如果運(yùn)動向量是非零,則可以向基線濾波器強(qiáng)度f和增量5 添加增量7,以產(chǎn)生強(qiáng)度修改器F10。返回參考圖4,在此情況下,預(yù)測模式64是幀間編碼非 分割模式,并且殘差錯(cuò)誤屬性66是非零運(yùn)動向量。通常,向成塊效應(yīng)應(yīng)用強(qiáng)度修改器60的不同水平,其程度或多或少地取決于參考 幀類型62和預(yù)測模式64。如圖5所示,例如,可以向幀內(nèi)編碼宏塊而不是幀間編碼宏塊應(yīng) 用不同強(qiáng)度修改器60( S卩,F(xiàn)1-F2與F2-F11)。此外,可以向幀內(nèi)編碼非分割模式宏塊而不 是幀內(nèi)編碼分割模式宏塊應(yīng)用不同強(qiáng)度修改器60 (即,F(xiàn)l與F2)。調(diào)整強(qiáng)度修改器60的其 他適當(dāng)機(jī)制也是可行的。圖6是根據(jù)本發(fā)明一個(gè)實(shí)施方式的更新環(huán)路濾波視頻數(shù)據(jù)的方法的流程圖。環(huán)路 濾波視頻數(shù)據(jù)可以包括參考幀環(huán)路濾波器修改器和預(yù)測模式環(huán)路濾波器修改器。參考幀環(huán) 路濾波器修改器可以包括用于參考幀類型62的增量值。預(yù)測模式環(huán)路濾波器修改器可以 包括針對預(yù)測模式64和殘差錯(cuò)誤屬性66 二者的增量值。再次參考圖6,在決策框132處,自適應(yīng)環(huán)路濾波器34確定當(dāng)前幀是否是在編碼時(shí) 除了參考其本身之外未參考任何其他幀的幀(通常稱為關(guān)鍵幀)。如果當(dāng)前幀是關(guān)鍵幀,則 自適應(yīng)環(huán)路濾波器34移動至框134,以將參考幀環(huán)路濾波器修改器設(shè)置為缺省值。繼而,在 框136處,自適應(yīng)環(huán)路濾波器34將預(yù)測模式環(huán)路濾波器修改器設(shè)置為缺省值。一旦已將這 些值設(shè)置為缺省值,則自適應(yīng)環(huán)路濾波器移動至決策框130,以確定是否在幀級別處啟用了 濾波器條件。如果當(dāng)前幀是關(guān)鍵幀并且值已設(shè)置為缺省值,或者如果當(dāng)前幀不是關(guān)鍵幀,則自 適應(yīng)環(huán)路濾波器34移動至決策框130,以確定是否在幀級別處啟用了濾波器條件。自適應(yīng) 環(huán)路濾波器34可以通過單個(gè)比特、字節(jié)、標(biāo)簽等確定是否啟用了環(huán)路濾波器修改器。如果未啟用環(huán)路濾波器修改器(即,已檢測到單個(gè)環(huán)路濾波器條件),則可以針對 當(dāng)前幀跳過自適應(yīng)環(huán)路濾波器34階段中的環(huán)路濾波。換言之,可以向幀內(nèi)的所有塊應(yīng)用單 個(gè)環(huán)路濾波器強(qiáng)度。單個(gè)環(huán)路濾波器強(qiáng)度也可以包括不針對幀的任何部分應(yīng)用環(huán)路濾波
ο一旦針對當(dāng)前幀跳過了環(huán)路濾波,則自適應(yīng)環(huán)路濾波器將返回決策框130,以確定 是否已針對下一幀啟用了環(huán)路濾波器修改器。自適應(yīng)環(huán)路濾波器34可以基于殘差錯(cuò)誤信 號、參考幀類型62、預(yù)測模式64或其某些組合中的一個(gè)或多個(gè)特性而選擇跳過環(huán)路濾波。 用于跳過自適應(yīng)環(huán)路濾波器34中的環(huán)路濾波的其他適當(dāng)因素也是可行的。例如,當(dāng)在變換階段19中不存殘差宏塊的AC分量時(shí),以及在宏塊是利用空運(yùn)動向 量進(jìn)行幀間編碼的情況下,可以跳過環(huán)路濾波。以此方式,在這種情況下跳過環(huán)路濾波將避 免在圖像中不存在運(yùn)動的區(qū)域中的若干幀上重復(fù)進(jìn)行環(huán)路濾波。因此,可以減小模糊,并且 減少計(jì)算,從而降低整體計(jì)算復(fù)雜度。繼續(xù)參考圖6,如果啟用了環(huán)路濾波器修改器,則自適應(yīng)環(huán)路濾波器34移動至決 策框138,以確定是否已檢測到環(huán)路濾波器強(qiáng)度值條件。更具體地,在決策框138處,自適應(yīng) 環(huán)路濾波器34確定是否存在針對已在當(dāng)前幀中編碼的環(huán)路濾波器修改器的任何更新。自 適應(yīng)環(huán)路濾波器34可以通過單個(gè)比特、字節(jié)、標(biāo)簽等確定是否要對環(huán)路濾波器修改器進(jìn)行 更新。如果不存在針對環(huán)路濾波器修改器的更新,則自適應(yīng)環(huán)路濾波器34將來自之前幀的預(yù)設(shè)環(huán)路濾波器修改器應(yīng)用至當(dāng)前幀。一旦已應(yīng)用了之前的值,則自適應(yīng)環(huán)路濾波器 將返回決策框130,以確定是否已針對下一幀啟用了環(huán)路濾波器修改器。如果存在針對環(huán)路濾波器修改器的更新,則在框140處,自適應(yīng)環(huán)路濾波器將更 新參考幀環(huán)路濾波器修改器的預(yù)設(shè)值。繼而,自適應(yīng)環(huán)路濾波器將移動至框142,以更新預(yù) 測模式環(huán)路濾波器修改器的預(yù)設(shè)值。一旦已更新該值,則自適應(yīng)環(huán)路濾波器將返回決策框 130,以確定是否已針對下一幀啟用了環(huán)路濾波器修改器。返回圖5,參考幀環(huán)路濾波器修改器和預(yù)測模式環(huán)路濾波器修改器可以是在流程 圖的每個(gè)結(jié)點(diǎn)處應(yīng)用的增量值1-8。具體地,增量值1、3、4和5可以是對應(yīng)于參考幀類型62 的參考幀環(huán)路濾波器修改器,增量值2和8可以是對應(yīng)于預(yù)測模式64的預(yù)測模式環(huán)路濾波 器修改器,而增量值6和7可以是對應(yīng)于殘差錯(cuò)誤屬性66的預(yù)測模式環(huán)路濾波器修改器。 這些增量值中的每一個(gè)可以使用圖6中的流程圖所示的方法在自適應(yīng)環(huán)路濾波器34中進(jìn) 行更新。圖7是根據(jù)本發(fā)明一個(gè)實(shí)施方式、更新環(huán)路濾波視頻數(shù)據(jù)的方法的流程圖。圖7 與圖6的流程圖相類似,區(qū)別在于自適應(yīng)環(huán)路濾波器34并不確定當(dāng)前幀是否是關(guān)鍵幀。因 此,如果啟用了環(huán)路濾波器修改器,并且存在針對那些環(huán)路濾波器修改器的更新,則所有幀 都可以更新參考幀環(huán)路濾波器修改器和預(yù)測模式環(huán)路濾波器修改器。用于實(shí)現(xiàn)圖7中方法步驟的示例性偽碼在表1中示出。表 1
//指示是否啟用了環(huán)路修改器 WnteBit( LoopModifiersEnabled );
iff I-oopModifiersEnabled )
{
//需要任何更新
WriteBit( UpdateLoopModifiers );
if (UpdateLoopModitIers)
{
//參考幀環(huán)路濾波器修改器
for ( i = 0; i < REF MODIFIERS; i++ )
{ 一
Data = RetLfModifiers[i];
權(quán)利要求
1.一種用于減少從壓縮視頻信息幀重建的相鄰塊之間邊界處的成塊效應(yīng)的方法,其中 該壓縮視頻信息包括針對所述塊中至少一個(gè)塊的預(yù)測階段參數(shù),所述方法包括基于所述預(yù)測階段參數(shù)來重建所述一個(gè)塊; 根據(jù)所述重建的塊來計(jì)算殘差錯(cuò)誤屬性;基于基線濾波器強(qiáng)度和至少一個(gè)增加值來計(jì)算濾波器強(qiáng)度值,所述增加值是至少基于 與所述一個(gè)塊關(guān)聯(lián)的殘差錯(cuò)誤屬性和所述預(yù)測階段參數(shù)中的一個(gè)而從多個(gè)預(yù)設(shè)值中選擇 的;以及使用所選擇的濾波器強(qiáng)度值來過濾鄰近所述一個(gè)塊的所述邊界。
2.如權(quán)利要求1的方法,其中所述預(yù)測階段參數(shù)包括參考幀類型和預(yù)測模式中的至少一個(gè)。
3.如權(quán)利要求2的方法,其中所述參考幀類型是幀內(nèi)幀、最后一幀、黃金幀和備用參考 幀中的一個(gè)。
4.如權(quán)利要求2的方法,其中所述預(yù)測模式是非分割模式和分割模式中的一個(gè)。
5.如權(quán)利要求1-4中任一的方法,其中計(jì)算所述濾波器強(qiáng)度值進(jìn)一步包括基于第二 增加值來計(jì)算所述濾波器強(qiáng)度值,其中所述第二增加值是基于所述預(yù)測階段參數(shù)和殘差錯(cuò) 誤屬性中的另一個(gè)而從所述多個(gè)預(yù)設(shè)值中選擇的。
6.如權(quán)利要求5的方法,其中所述殘差錯(cuò)誤屬性是空運(yùn)動向量和非零運(yùn)動向量中的一個(gè)。
7.如權(quán)利要求1-4中任一的方法,其中所述多個(gè)預(yù)設(shè)值是在所述幀級別確定的。
8.如權(quán)利要求7的方法,進(jìn)一步包括確定被解碼的所述幀是否是關(guān)鍵幀;以及其中如果被解碼的所述幀是關(guān)鍵幀,則所述 增加值被設(shè)置成缺省值。
9.如權(quán)利要求7的方法,進(jìn)一步包括確定被解碼的所述幀是否指定了環(huán)路濾波器強(qiáng)度值條件;以及 如果被解碼的所述幀指定了環(huán)路濾波器強(qiáng)度值條件,則向所述多個(gè)預(yù)設(shè)值指派指定的 環(huán)路濾波器強(qiáng)度值。
10.如權(quán)利要求7的方法,進(jìn)一步包括確定被解碼的所述幀是否指定了單個(gè)環(huán)路濾波器條件;以及如果被解碼的所述幀指定了單個(gè)環(huán)路濾波器條件,則向所述塊指派單個(gè)環(huán)路濾波器強(qiáng) 度值,而無需考慮與所述一個(gè)塊關(guān)聯(lián)的殘差錯(cuò)誤屬性和預(yù)測階段參數(shù)。
11.一種用于對壓縮視頻信息幀進(jìn)行解碼的方法,每個(gè)幀包括多個(gè)塊,所述塊具有預(yù)測 階段參數(shù)和殘差錯(cuò)誤屬性,所述方法包括基于所述預(yù)測階段參數(shù)和所述殘差錯(cuò)誤屬性中的至少一個(gè),將所述塊中的每個(gè)塊分類 至類別中;確定針對所述類別中每個(gè)類別的環(huán)路濾波器強(qiáng)度值;以及使用向塊分類于其中的所述類別指派的所述環(huán)路濾波器強(qiáng)度,過濾鄰近所述塊的至少 一個(gè)塊的邊界。
12.如權(quán)利要求11的方法,其中確定針對給定類別的環(huán)路濾波器強(qiáng)度值包括 確定在至少一個(gè)幀中指定的基線環(huán)路濾波器強(qiáng)度值;基于與所述給定類別關(guān)聯(lián)的所述殘差錯(cuò)誤屬性和所述預(yù)測階段參數(shù)中的至少一個(gè),確 定針對所述給定類別的一個(gè)或多個(gè)預(yù)設(shè)增加值;以及向所述基線環(huán)路濾波器強(qiáng)度值添加所述一個(gè)或多個(gè)預(yù)設(shè)增加值。
13.如權(quán)利要求11的方法,其中所述預(yù)測階段參數(shù)包括參考幀類型和預(yù)測模式中的至 少一個(gè)。
14.如權(quán)利要求13的方法,其中所述參考幀類型是幀內(nèi)幀、最后一幀、黃金幀和備用參 考幀中的一個(gè)。
15.如權(quán)利要求13的方法,其中所述預(yù)測模式是非分割模式和分割模式中的一個(gè)。
16.如權(quán)利要求11-15中任一的方法,其中所述殘差錯(cuò)誤屬性是空運(yùn)動向量和非零運(yùn) 動向量中的一個(gè)。
17.如權(quán)利要求11-15中任一的方法,其中指派針對所述類別中每個(gè)類別的環(huán)路濾波 器強(qiáng)度值進(jìn)一步包括根據(jù)所述幀的至少一個(gè)幀中指定的環(huán)路濾波器修改器集合,確定針對每個(gè)類別的所述 環(huán)路濾波器強(qiáng)度值。
18.如權(quán)利要求17的方法,進(jìn)一步包括確定被解碼的所述幀是否是關(guān)鍵幀;以及其中如果被解碼的所述幀是關(guān)鍵幀,則針對 所述預(yù)設(shè)類別中的至少一個(gè)預(yù)設(shè)類別的所述環(huán)路濾波器強(qiáng)度值被設(shè)置成缺省值。
19.如權(quán)利要求18的方法,進(jìn)一步包括確定被解碼的所述幀是否指定了針對所述類別中一個(gè)或多個(gè)類別的環(huán)路濾波器強(qiáng)度 值條件;以及如果被解碼的所述幀指定了針對所述類別中一個(gè)或多個(gè)類別的環(huán)路濾波器強(qiáng)度值條 件,則向所述一個(gè)或多個(gè)類別指派該指定的環(huán)路濾波器強(qiáng)度值。
20.如權(quán)利要求11-15中任一的方法,進(jìn)一步包括確定被解碼的所述幀是否指定了單個(gè)環(huán)路濾波器條件;以及如果被解碼的所述幀指定了單個(gè)環(huán)路濾波器條件,則向所有塊指派單個(gè)環(huán)路濾波器強(qiáng) 度值,而無需考慮類別。
21.一種用于對壓縮視頻信息幀進(jìn)行解碼的方法,每個(gè)幀包括多個(gè)塊,每個(gè)塊具有預(yù)測 階段參數(shù)和殘差錯(cuò)誤屬性,所述方法包括確定針對每個(gè)塊的塊屬性;確定一個(gè)或多個(gè)環(huán)路濾波器屬性的多個(gè)值,每個(gè)值與一個(gè)或多個(gè)塊屬性關(guān)聯(lián);基于特定塊的塊屬性,選擇針對所述特定塊的一個(gè)或多個(gè)環(huán)路濾波器屬性的值中的一 個(gè);以及使用所選擇的一個(gè)或多個(gè)環(huán)路濾波器屬性值,過濾鄰近所述特定塊的邊界。
22.如權(quán)利要求21的方法,其中所述環(huán)路濾波器屬性包括濾波器類型、濾波器強(qiáng)度、濾 波器系數(shù)和濾波器抽頭中的至少一個(gè)。
23.如權(quán)利要求21或22的方法,其中塊屬性包括預(yù)測模式、參考幀類型和殘差錯(cuò)誤屬 性中的至少一個(gè)。
24.如權(quán)利要求21或22的方法,其中確定一個(gè)或多個(gè)環(huán)路濾波器屬性的值進(jìn)一步包括 以下中的至少一個(gè)當(dāng)被解碼的所述幀是關(guān)鍵幀時(shí),將所述值設(shè)置成預(yù)設(shè)缺省值;以及 如果被解碼的所述幀指定了該值應(yīng)當(dāng)被更新,則將所述值中的至少一個(gè)值設(shè)置成被解 碼的所述幀中指定的值。
25.如權(quán)利要求21或22的方法,其中基于特定塊的塊屬性來選擇針對所述特定塊的一 個(gè)或多個(gè)環(huán)路濾波器屬性的值中的一個(gè)進(jìn)一步包括 確定至少一個(gè)幀中指定的基線環(huán)路濾波器屬性值; 基于所述塊的塊屬性,確定一個(gè)或多個(gè)預(yù)設(shè)增加值;以及向所述基線環(huán)路濾波器強(qiáng)度值添加所述一個(gè)或多個(gè)預(yù)設(shè)增加值,以計(jì)算至少一個(gè)環(huán)路 濾波器屬性的值。
全文摘要
此處公開了一種用于減少從壓縮視頻信息幀重建的相鄰塊之間邊界處的成塊效應(yīng)的方法。該視頻信息包括針對所述塊中至少一個(gè)塊的預(yù)測階段參數(shù)。該方法包括基于所述預(yù)測階段參數(shù)來重建所述至少一個(gè)塊;基于重建塊來計(jì)算殘差錯(cuò)誤屬性;基于基線濾波器強(qiáng)度和至少一個(gè)增加值來計(jì)算濾波器強(qiáng)度值,其中所述增加值是至少基于與所述至少一個(gè)塊關(guān)聯(lián)的殘差錯(cuò)誤屬性和預(yù)測階段參數(shù)中的一個(gè)而從多個(gè)預(yù)設(shè)值中選擇的;以及使用所選擇的濾波器強(qiáng)度值,過濾鄰近所述至少一個(gè)塊的所述邊界。
文檔編號H04N7/26GK102150427SQ200980135558
公開日2011年8月10日 申請日期2009年9月10日 優(yōu)先權(quán)日2008年9月11日
發(fā)明者J·班科斯基, P·威爾金斯, 許耀武 申請人:谷歌公司