用于樣本自適應(yīng)偏移濾波的編碼器側(cè)決策的制作方法
【專利說明】用于樣本自適應(yīng)偏移濾波的編碼器側(cè)決策 WW] 背景
[0002] 工程師使用壓縮(也叫做源譯碼或源編碼)來降低數(shù)字視頻的比特率。壓縮通過 將視頻信息轉(zhuǎn)換成較低比特率的形式來降低存儲和傳送該信息的成本。解壓(也被稱為解 碼)從壓縮的形式中重構(gòu)一種版本的原始信息。"編解碼器"是編碼器/解碼器系統(tǒng)。
[0003] 在過去的二十年中,已采用了各種視頻編解碼器標(biāo)準(zhǔn),包括口U-TH. 261、 比 262 (MPEG-2 或IS0/IEC13818-2)、比 263 和比 264 (MPEG-4AVC或IS0/IEC14496-10)標(biāo) 準(zhǔn)、MPEG-1(IS(VIEC11172 1 172-2)和MPEG-4 可視(IS(VlEC14496-2)標(biāo)準(zhǔn)W及SMPTE 421M(VC-1)標(biāo)準(zhǔn)。最近,H. 265/肥VC標(biāo)準(zhǔn)(ITU-T比 265 或IS0/IEC23008-2)已被批準(zhǔn)。 當(dāng)前,正在開發(fā)(例如,針對可縮放視頻編碼/解碼、針對在樣本比特深度或色度采樣率方 面具有較高保真度的視頻的編碼/解碼、或針對多視圖編碼/解碼的)肥VC標(biāo)準(zhǔn)的擴展。視 頻編解碼器標(biāo)準(zhǔn)通常定義針對經(jīng)編碼的視頻位流的句法的選項,從而詳述當(dāng)在編碼和解碼 時使用特定特征時該位流中的參數(shù)。在許多情況下,視頻編解碼器標(biāo)準(zhǔn)還提供關(guān)于解碼器 應(yīng)當(dāng)執(zhí)行W在解碼時取得一致的結(jié)果的解碼操作的細(xì)節(jié)。除了編解碼器標(biāo)準(zhǔn)外,各種專用 編解碼器格式定義針對經(jīng)編碼的視頻位流的句法的其他選項W及相應(yīng)的解碼操作。
[0004] 在解碼期間,視頻編解碼器可W應(yīng)用一個或多個濾波器來降低經(jīng)重構(gòu)的像素與原 始像素之間的差異。例如,對于H. 265/肥VC標(biāo)準(zhǔn),兩個處理步驟一一伴隨樣本自適應(yīng)偏移 (SAO)操作的去塊濾波器值BF) -一可供在將經(jīng)重構(gòu)的樣本寫入解碼器循環(huán)的經(jīng)解碼的圖 片緩沖區(qū)之前應(yīng)用于經(jīng)重構(gòu)的樣本。去塊濾波器旨在降低由于基于塊的編碼而造成的塊偽 像。H. 265/肥VC去塊濾波器類似于H. 264/MPEG-4AVC標(biāo)準(zhǔn)的去塊濾波器,而SAO濾波器被 新引入到H. 265/肥VC標(biāo)準(zhǔn)中。去塊濾波器只被應(yīng)用于位于塊邊界處的樣本。作為對比,SAO 濾波操作被自適應(yīng)地應(yīng)用于滿足某些條件(如梯度)的所有樣本。 陽〇化]是否針對經(jīng)重構(gòu)的圖片執(zhí)行SAO濾波操作可由作為給定序列參數(shù)集的一部分的 句法元素(樣本_自適應(yīng)_偏移_啟用_標(biāo)志(sample_adaptive_offset_en油led_flag)) 來控制。更具體地,樣本_自適應(yīng)_偏移_啟用_標(biāo)志等于1指定樣本自適應(yīng)偏移過程在 去塊濾波過程之后被應(yīng)用于經(jīng)重構(gòu)的圖片,而樣本_自適應(yīng)_偏移_啟用_標(biāo)志等于0指 定樣本自適應(yīng)偏移過程在去塊濾波過程之后不被應(yīng)用于經(jīng)重構(gòu)的圖片。如果樣本自適應(yīng)偏 移濾波被指定為要被應(yīng)用,則附加標(biāo)志被用來分開地指示SAO濾波是否針對較小粒度水平 的圖片部分W及針對亮度分量和色度分量被啟用。運一附加信令可例如使用片_330_亮 度_ 標(biāo)志(slice_sao_luma_flag)和片 _sao_ 色度 _ 標(biāo)志(slice_sao_cboma_flag)在逐 片的基礎(chǔ)上被執(zhí)行。具體而言,片_sao_亮度_標(biāo)志等于1指定對于當(dāng)前片中的亮度分量 SAO被啟用;片_33〇_亮度_標(biāo)志等于0指定對于當(dāng)前片中的亮度分量SAO被禁用。在片_ sao_亮度_標(biāo)志不存在時,它被推斷為等于0。此外,片_sao_色度_標(biāo)志等于1指定對于 當(dāng)前片中的色度分量SAO被啟用;片_sao_色度_標(biāo)志等于0指定對于當(dāng)前片中的色度分 量SAO被禁用。在片_sao_色度_標(biāo)志不存在時,它被推斷為等于0。另外,SAO濾波也可 在編碼樹單元(CTU)水平處被指定。例如,sao_類型_索引_亮度(sao_type_idx_luma) 和sao_類型_索引_色度(sao_type_idx_cboma)句法元素可被用來啟用(或禁用)SAO 濾波并選擇針對給定CTU執(zhí)行的SAO濾波的類型。具體而言,對于亮度或色度CTU,SAO_類 型_索引_值0指示沒有SAO濾波被啟用,值1指示帶偏移類型SAO濾波度0)被啟用,且 值2指示邊緣偏移類型SAO濾波巧0)被啟用。
[0006] H. 265/肥VC標(biāo)準(zhǔn)提供極少或不提供與應(yīng)當(dāng)何時W及如何啟用SAO濾波(例如,通 過指定樣本_自適應(yīng)_偏移_啟用_標(biāo)志(sample_adaptive_offset_en油led_flag)、片_ sao_亮度_標(biāo)志(slice_sao_luma_flag)、片_8曰〇_色度_標(biāo)志(slice_sao_chroma_flag)、 sao_ 類型 _ 索引 _ 亮度(sao_type_idx_luma)、和 / 或sao_ 類型 _ 索引 _ 色度(sao_type_ idx_ch;roma)句法元素)或者相關(guān)聯(lián)的SAO參數(shù)應(yīng)當(dāng)如何或何時被設(shè)置(例如,通過指定 sao_ 偏移 _ 缺少(sao_offset_abs)、sao_ 偏移 _ 符號(sao_offset_sign)、sao_ 帶 _ 位置 (sao_band_position)、sao_eo_ 類 _ 亮度(sao_eo_class_luma)、sao_eo_ 類 _ 色度(sao_ eo_class_ch;roma)和/或Sao偏移值(SaoOffsetVal)句法元素)有關(guān)的指導(dǎo)。另一方面, SAO濾波的使用可不利地影響用于編碼和解碼操作的計算效率和處理時間。因此,存在其中 SAO需要不被啟用的許多條件和情況。本申請公開了用于確定何時W及如何啟用SAO濾波 操作的若干方法。
[0007] 概述
[0008] 概括而言,該詳細(xì)描述呈現(xiàn)了對W下領(lǐng)域的創(chuàng)新:對圖片或圖片部分(例如,片、 編碼樹單元、或編碼單元)進(jìn)行編碼W及確定是否和應(yīng)當(dāng)如何執(zhí)行及指定某些濾波操作W 供解碼器在位流中執(zhí)行。在特定示例中,公開了用于設(shè)置H. 265/肥VC標(biāo)準(zhǔn)中的樣本自適應(yīng) 偏移(SAO)句法元素的各實現(xiàn)。雖然運些示例關(guān)注H. 265/肥VC標(biāo)準(zhǔn)及其SAO濾波過程,但 所公開的技術(shù)更廣泛地適用于設(shè)及濾波操作(尤其是多階段濾波操作)作為它們的編碼和 解碼過程的一部分的其他視頻編解碼器。
[0009] 在一個示例實施例中,多階段濾波過程被應(yīng)用于當(dāng)前被編碼的圖片部分。多階段 濾波過程包括去塊濾波和被應(yīng)用于圖片部分的去塊后像素的樣本自適應(yīng)偏移(SAO)過程。 在運一實施例中,控制SAO過程的應(yīng)用的一個或多個SAO參數(shù)是使用圖片部分的一個或多 個去塊前像素來指定的。
[0010] 在另一示例實施例中,對于當(dāng)前被編碼的圖片部分,至少部分地基于指示從編碼 得到的圖片部分的殘余數(shù)據(jù)的量的數(shù)據(jù)來作出與是否應(yīng)用多階段濾波過程的第二階段濾 波(例如,SAO濾波)有關(guān)的判定。例如,殘余量可被使用或指示殘余而非直接關(guān)聯(lián)于SAO 濾波的句法元素可被使用。例如,控制圖片部分是否要使用"跳過模式"來編碼的句法元素 可被使用。
[0011] 在又一示例實施例中,對于當(dāng)前被編碼的圖片部分,至少部分地基于視頻編碼器 或圖像編碼器的編碼效率來作出與是否應(yīng)用多階段濾波過程的第二階段濾波(例如,SAO 濾波)有關(guān)的判定。例如,用于編碼當(dāng)前圖片或圖片部分的處理時間或處理周期數(shù)可被用 作啟用或禁用SAO濾波的基礎(chǔ)。作為替換或補充,可W使用先前編碼的圖片或圖片部分的 編碼時間或處理周期數(shù)。
[0012] 在又一示例實施例中,對于被編碼的一系列圖片或圖片部分,多階段濾波過程的 第二階段濾波(例如,SAO濾波)被周期性地應(yīng)用。例如,SAO濾波可每n個圖片或圖片部 分被應(yīng)用,其中n是任何整數(shù)。
[0013] 在又一示例實施例中,邊緣偏移巧0)過程被應(yīng)用于當(dāng)前被編碼的圖片部分,包括 將邊緣濾波器應(yīng)用于圖片部分W標(biāo)識多個可用EO類中的要使用的一個EO類。在特定實現(xiàn) 中,多個可用EO類中的每一者與在后續(xù)EO處理期間將沿其評估像素值的不同方向相關(guān)聯(lián)。 后續(xù)EO處理可包括例如確定沿所標(biāo)識的EO類的方向的圖片部分中的像素是否包括局部 谷、局部峰、凹角、或凸角,并從而確定在EO處理期間要應(yīng)用正偏移值還是負(fù)偏移值。
[0014] 運些創(chuàng)新可W被實現(xiàn)為方法的一部分、被適配成執(zhí)行該方法的計算系統(tǒng)的一部分 或存儲用于使得計算系統(tǒng)執(zhí)行該方法的計算機可執(zhí)行指令的有形計算機可讀介質(zhì)的一部 分。各創(chuàng)新可W結(jié)合地或分開地使用。
[0015] 參考附圖閱讀W下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點。
[0016] 附圖簡述
[0017] 圖1是其中可實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的示圖。
[0018] 圖2a和化是其中可實現(xiàn)所描述的一些實施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
[0019] 圖3是結(jié)合其可實現(xiàn)所描述的一些實施例的示例編碼器系統(tǒng)的示圖。
[0020] 圖4是結(jié)合其可實現(xiàn)所描述的一些實施例的示例解碼器系統(tǒng)的示圖。
[0021] 圖5a和化是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器的示圖。
[0022] 圖6是示出結(jié)合其可實現(xiàn)所描述的一些實施例的示例視頻解碼器的示圖。
[0023] 圖7(a)到7(d)描繪邊緣偏移類型SAO濾波中使用的四個梯度模式。
[0024] 圖8包括示出樣本值(樣本值P)如何被特定邊緣偏移類別的正和負(fù)偏移值更改 的兩個示圖。
[00巧]圖9是示出根據(jù)所公開的技術(shù)的用于執(zhí)行SAO濾波的示例性實施例的流程圖。 [00%] 圖10是示出根據(jù)所公開的技術(shù)的用于確定何時應(yīng)用第二階段濾波(如SAO濾波) 的示例性實施例的流程圖。
[0027] 圖11是示出根據(jù)所公開的技術(shù)的用于確定是否應(yīng)用多階段濾波過程的第二階段 濾波的另一示例性實施例的流程圖。
[0028] 圖12是示出根據(jù)所公開的技術(shù)的用于確定是否應(yīng)用多階段濾波過程的第二階段 濾波的另一示例性實施例的流程圖。
[0029] 圖13是示出根據(jù)所公開的技術(shù)的用于執(zhí)行邊緣偏移巧0)過程的示例性方法的流 程圖。
[0030] 詳細(xì)描述
[0031] 該詳細(xì)描述呈現(xiàn)了對W下領(lǐng)域的創(chuàng)新:對圖片或圖片部分(例如,片、編碼樹單 元、或編碼單元)進(jìn)行編碼W及指定解碼器是否及應(yīng)當(dāng)如何執(zhí)行及指定位流中的某些濾波 操作。在特定示例中,公開了用于設(shè)置H. 265/肥VC標(biāo)準(zhǔn)中的樣本自適應(yīng)偏移(SAO)句法元 素的各實現(xiàn)。雖然運些示例關(guān)注H. 265/肥VC標(biāo)準(zhǔn)及其SAO濾波,但所公開的技術(shù)更廣泛地 適用于設(shè)及濾波操作(尤其是多階段濾波操作)的其他視頻編解碼器。
[0032] 雖然本文中描述的操作是被適當(dāng)描述為由視頻編碼器或視頻解碼器來執(zhí)行,但在 許多情況中,運些操作可由另一類型的媒體處理工具(例如圖像編碼器或圖像解碼器)來 執(zhí)行。
[0033] 本文中描述的一些創(chuàng)新是參考專用于H. 265/肥VC標(biāo)準(zhǔn)的句法元素和操作來示出 的。例如,參考推薦口U-TH. 265, "Hi曲EfficiencyVideoCoding(高效視頻編碼)", 2013年4月。本文中描述的各創(chuàng)新還可W被實現(xiàn)為針對其它標(biāo)準(zhǔn)或格式。
[0034] 對此處所描述的示例的各種替換是可能的。例如,本文中描述的一些方法可W通 過改變描述的方法動作的順序、通過拆分、重復(fù)或忽略某些方法動作等來更改。所公開的技 術(shù)的各方面能夠被組合地或分開地使用。不同的實施例使用所描述的創(chuàng)新中的一個或多 個。本文中描述的一些創(chuàng)新解決了背景中指出的一個或多個問題。通常,所給出的技術(shù)/ 工具并不解決所有運些問題。
[0035] I.示例計算系統(tǒng)
[0036] 圖1示出了其中可實現(xiàn)幾個所描述的創(chuàng)新的合適計算系統(tǒng)(100)的概括示例。計 算系統(tǒng)(100)并不旨對使用范圍或功能提出任何限制,因為運些創(chuàng)新可W在不同的通用或 專用計算系統(tǒng)中實現(xiàn)。
[0037] 參考圖1,計算系統(tǒng)(100)包括一個或多個處理單元(110、1巧)和存儲器(120、 125)。處理單元(11〇、115)執(zhí)行計算機可執(zhí)行指令。處理單元可W是通用中央處理單元 ("CPU")、專用集成電路("ASIC")中的處理器或任意其它類型的處理器。在多處理系 統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令W提高處理能力。例如,圖1示出中央處理單元 (110)W及圖形處理單元或協(xié)處理單元(115)。有形存儲器(120、125)可W是(諸)處理 單元可訪問的易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、 EEPR0M、閃存等)或運兩者的某一組合。存儲器(120, 125)存儲實現(xiàn)針對濾波(例如SAO 濾波)的編碼器側(cè)判定的一個或多個創(chuàng)新的軟件(180),該軟件采用適用于由(諸)處理單 元執(zhí)行的計算機可執(zhí)行指令的形式。
[003引計算系統(tǒng)可具有附加的特征。例如,計算系統(tǒng)(100)包括存儲(140)、一個或多個 輸入設(shè)備(150)、一個或多個輸出設(shè)備(160)化及一個或多個通信連接(170)。諸如總線、 控制器或網(wǎng)絡(luò)之類的互連機制(未示出)將計算系統(tǒng)(100)的各組件互連。通常,操作系 統(tǒng)軟件(未示出)為在計算系統(tǒng)(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計算系統(tǒng) (100)的各組件的活動。
[0039] 有形存儲(140)可W是一個或多個可移動或不可移動存儲設(shè)備,并包括磁盤、固 態(tài)驅(qū)動器、閃存、磁帶或磁帶盒、CD-R0M、DVD或可用于儲存信息并可在計算系統(tǒng)(100)內(nèi)訪 問的任何其他有形介質(zhì)。存儲(140)不涵蓋傳播的載波或信號。存儲(140)存儲實現(xiàn)針對 濾波(例如,SAO濾波)的編碼器側(cè)判定的一個或多個創(chuàng)新的軟件(180)的指令。 W40](諸)輸入設(shè)備(150)可W是觸摸輸入設(shè)備(諸如鍵盤、鼠標(biāo)、筆、跟蹤球)、語音 輸入設(shè)備、掃描設(shè)備或向計算系統(tǒng)(100)提供輸入的另一設(shè)備。對于視頻,(諸)輸入設(shè)備 (150)可W是相機、視頻卡、TV調(diào)諧卡、屏幕捕捉模塊或接受模擬或數(shù)字形式的視頻輸入的 類似設(shè)備、或?qū)⒁曨l輸入讀到計算系統(tǒng)(100)中的CD-ROM或CD-RW。(諸)輸出設(shè)備(160) 可W是顯示器、打印機、揚聲器、CD刻錄機或提供來自計算系統(tǒng)(100)的輸出的另一設(shè)備。
[0041](諸)通信連接(170)允許通過通信介質(zhì)與另一計算實體通信。通信介質(zhì)傳達(dá)諸如 計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號中的其他數(shù)據(jù)之類的信息。 已調(diào)制數(shù)據(jù)信號是使其一個或多個特征W在信號中編碼信息的方式設(shè)置或改變的信號。作 為示例而非限制,通信介質(zhì)可W使用電的、光學(xué)的、RF或其它載體。
[0042] 各創(chuàng)新可W在計算機可讀介質(zhì)的一般上下文中描述。計算機可讀介質(zhì)是可在計算 環(huán)境內(nèi)訪問的任何可用有形介質(zhì)。作為示例而非局限,對于計算系統(tǒng)(100),計算機可讀介 質(zhì)包括存儲器(120、125)、存儲(140)、和W上任意的組合,但不涵蓋傳播的載波或信號。
[0043] 各創(chuàng)新可在計算機可執(zhí)行指令(諸如包括在程序模塊中的在目標(biāo)現(xiàn)實或虛擬處 理器上在計算系統(tǒng)中執(zhí)行的那些計算機可執(zhí)行指令)的一般上下文中描述。一般而言,程 序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù) 結(jié)構(gòu)等。如各實施例中所描述的,運些程序模塊的功能可W被組合,或者在運些程序模塊之 間拆分。針對各程序模塊的計算機可執(zhí)行指令可W在本地或分布式