工程師使用壓縮(也叫做源編碼(source coding或source encoding))來降低數(shù)字視頻的比特率。壓縮通過將視頻信息轉換成較低比特率的形式來降低存儲和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構一種版本的原始信息?!熬幗獯a器”是編碼器/解碼器系統(tǒng)。
在過去的至少25年中,已采用了各種視頻編解碼器標準,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)標準、MPEG-1(ISO/IEC 11172-2)和MPEG-4視覺(ISO/IEC 14496-2)標準以及SMPTE 421M(VC-1)標準。最近,H.265/HEVC標準(ITU-T H.265或ISO/IEC 23008-2)已被批準。目前,(例如,用于可縮放視頻編碼/解碼、用于在樣本比特深度或色度采樣率方面具有較高保真度的視頻的編碼/解碼、用于屏幕捕捉內(nèi)容、或用于多視圖編碼/解碼的)H.265/HEVC標準的擴展處于開發(fā)中。視頻編解碼器標準通常定義針對經(jīng)編碼的視頻比特流的句法的選項,從而詳述當在編碼和解碼時使用特定特征時該比特流中的參數(shù)。在許多情況下,視頻編解碼器標準還提供關于解碼器應當執(zhí)行以在解碼時取得一致的結果的解碼操作的細節(jié)。除了編解碼器標準外,各種專用編解碼器格式定義針對經(jīng)編碼的視頻比特流的句法的其他選項以及相應的解碼操作。
隨著新的視頻編解碼器標準和格式已被開發(fā),可用于編碼器的編碼工具的數(shù)目已穩(wěn)定增長,并且在編碼期間對參數(shù)值、模式、設置等進行評估的選項的數(shù)目也已增長。同時,消費者已要求時間分辨率(例如,幀率)、空間分辨率(例如,幀尺寸)和被編碼的視頻質量方面的提升。作為這些因素的結果,根據(jù)當前視頻編解碼器標準和格式的視頻編碼是非常計算密集的。盡管計算機硬件方面有所提升,但在許多編碼場景中,視頻編碼依然為耗時且資源密集的。
概述
總而言之,詳細描述提出媒體編碼方面的創(chuàng)新。具體地,這些創(chuàng)新可通過在編碼期間選擇性地跳過某些評估階段來降低媒體編碼的計算復雜性。例如,基于對在編碼較早期作出的判定分析,或者基于對要編碼的媒體的分析,媒體編碼器可(例如通過降低比特率和/或提升質量來)跳過對某些編碼工具、參數(shù)值或設置、或者不預期提升編碼的率失真性能的編碼模式的評估。
根據(jù)本文中描述的這些創(chuàng)新中的一個方面,媒體編碼器對第一圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器輸出該經(jīng)編碼的數(shù)據(jù)。對于第一圖片,編碼器確定閾值單元尺寸,該閾值單元尺寸指示以下單元尺寸:即當處于或低于該單元尺寸時,第一圖片的閾值內(nèi)容比例被達到。編碼器還對按照編碼次序在第一圖片之后的第二圖片進行編碼,以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器輸出該經(jīng)編碼的數(shù)據(jù)。在對第二圖片進行編碼時,編碼器至少部分地基于第一圖片的閾值單元尺寸來限制第二圖片的至少一部分的單元尺寸。通過這種方式,基于第一圖片中主要使用的(諸)單元尺寸,編碼器可避免對在針對第二圖片的編碼期間不可能提升率失真性能的候選單元尺寸的評估,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出該經(jīng)編碼的數(shù)據(jù)。作為該編碼的一部分,在對圖片的單元進行編碼時,編碼器在殘量編碼跳過模式開啟的情況下評估針對上下文運動模式的多個候選運動向量(“MV”)中的每一者。基于那個評估的結果,編碼器在殘量編碼跳過模式關閉的情況下僅評估針對上下文運動模式的候選MV的子集。通過這種方式,當候選MV在編碼期間不可能提升率失真性能時,編碼器可在殘量編碼跳過模式關閉的情況下避免對那些候選MV的評估,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出該經(jīng)編碼的數(shù)據(jù)。作為該編碼的一部分,編碼器評估一個或多個條件。取決于該評估的結果,編碼器選擇性地應用率失真優(yōu)化量化(“RDOQ”)或其他量化。通過這種方式,當RDOQ在編碼期間不可能提升率失真性能時,編碼器可避免對RDOQ的使用,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出該經(jīng)編碼的數(shù)據(jù)。作為該編碼的一部分,編碼器為該圖片的當前單元設置單元尺寸。通過這樣做,編碼器確定至少一個毗鄰單元(例如,同一圖片中空間上毗鄰的單元或另一圖片中時間上毗鄰的單元)的單元尺寸,并至少部分地基于(諸)毗鄰單元的(諸)單元尺寸,選擇性地跳過對當前單元的候選單元尺寸的評估。通過這種方式,基于各毗鄰單元中使用的單元尺寸,編碼器可避免對在編碼期間不可能提升率失真性能的候選單元尺寸的評估,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對第一圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器輸出該經(jīng)編碼的數(shù)據(jù)。對于第一圖片,編碼器測量對變換跳過模式的使用。編碼器還對按照編碼次序跟隨第一圖片的第二圖片進行編碼,以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器輸出該經(jīng)編碼的數(shù)據(jù)。在對第二圖片進行編碼時,編碼器至少部分地基于針對第一圖片對變換跳過模式的使用來選擇性地對第二圖片禁用變換跳過模式。通過這種方式,基于測量到的在第一圖片中對編碼跳過模式的使用,當變換跳過模式在針對第二圖片的編碼期間不可能提升率失真性能時,編碼器可避免對變換跳過模式的評估,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出該經(jīng)編碼的數(shù)據(jù)。作為該編碼的一部分,編碼器為該圖片的單元設置變換尺寸或變換尺寸的組合。通過這樣做,編碼器評估當前變換尺寸時的條件。取決于對該條件的評估的結果,編碼器選擇性地跳過對是否將單元從當前變換尺寸拆分成具有更小變換尺寸的多個單元的評估。通過這種方式,當在編碼期間拆分不可能提升率失真性能時,編碼器可避免對針對單元的拆分的評估,這趨于加速編碼。
根據(jù)本文中描述的這些創(chuàng)新中的另一方面,媒體編碼器對圖片進行編碼以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出該經(jīng)編碼的數(shù)據(jù)。作為該編碼的一部分,編碼器為圖片的單元迭代地評估多個候選分割模式。對于給定候選分割模式,編碼器取決于相對于閾值預測質量的預測質量來選擇性地執(zhí)行殘量編碼,該閾值預測質量至少部分地基于先前評估的候選分割模式的預測質量來設置。通過這種方式,編碼器可避免針對在編碼期間不可能提升率失真性能的候選分割模式的殘量編碼,這趨于加速編碼。
本發(fā)明可以被實現(xiàn)為方法的部分、被配置為執(zhí)行所述方法的計算系統(tǒng)的部分或存儲用于使得計算系統(tǒng)執(zhí)行所述方法的計算機可執(zhí)行指令的有形計算機可讀介質的部分。各創(chuàng)新可以結合地或分開地使用。例如,在一些實現(xiàn)中,本文中描述的所有創(chuàng)新都被納入到媒體編碼判定中。提供本概述以便以簡化形式介紹將在以下的詳細描述中進一步描述的一些概念。本概述并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于限定所要求保護的主題的范圍。參考附圖閱讀以下詳細描述,將更清楚本發(fā)明的前述和其他目標、特征和優(yōu)點。
附圖簡述
圖1是可用于實現(xiàn)所描述的一些實施例的示例計算系統(tǒng)的框圖。
圖2a和2b是可用于實現(xiàn)所描述的一些實施例的示例網(wǎng)絡環(huán)境的示圖。
圖3是結合其可實現(xiàn)所描述的一些實施例的示例編碼器系統(tǒng)的示圖。
圖4a和4b是示出結合其可實現(xiàn)所描述的一些實施例的示例視頻編碼器的示圖。
圖5是示出用于評估圖片的單元的候選單元尺寸的示例技術的流程圖。
圖6a-6d是示出具有在確定是否跳過對當前單元的候選單元尺寸的評估時考慮的單元尺寸的空間上毗鄰的單元的示例的示圖。
圖7是示出組織在各時間層中的視頻序列中的各圖片的示圖。
圖8a和8b是示出具有在確定是否跳過對當前單元的候選單元尺寸的評估時考慮的單元尺寸的時間上毗鄰的單元的示例的示圖。
圖9是示出用于對圖片進行編碼的通用技術的流程圖,其中對圖片的單元的候選單元尺寸的評估取決于至少一個毗鄰單元的單元尺寸被選擇性地跳過。
圖10和11是示出用于設置圖片的單元的單元尺寸的示例技術的流程圖,其中對候選單元尺寸的評估取決于各毗鄰單元的單元尺寸被選擇性地跳過。
圖12是示出確定并使用第一圖片的閾值單元尺寸來限制另一圖片中的各單元的單元尺寸的示例的示圖。
圖13是示出用于使用第一圖片的閾值單元尺寸來限制另一圖片中的各單元的單元尺寸的通用技術的流程圖。
圖14是用于設置圖片的單元的單元尺寸的示例技術的流程圖,其中來自另一圖片的閾值單元尺寸限制該單元尺寸。
圖15是示出使用針對第一圖片的變換跳過模式使用的測量來選擇性地禁用變換跳過模式在另一圖片中的使用的示例的示圖。
圖16a和16b是示出用于使用針對第一圖片的變換跳過模式使用的測量來限制變換跳過模式在另一圖片中的使用的通用技術的流程圖。
圖17a和17b是分別示出在殘量編碼跳過模式開啟或關閉的情況下為上下文運動模式考慮的候選運動向量(“MV”)的示例的示圖。
圖18是示出用于對圖片進行編碼的通用技術的流程圖,該通用技術包括在殘量編碼跳過模式關閉的情況下選擇性地跳過對針對上下文運動模式的候選MV的評估。
圖19是示出用于對單元進行編碼的示例技術的流程圖,該示例技術包括在殘量編碼跳過模式關閉的情況下選擇性地跳過對針對上下文運動模式的候選MV的評估。
圖20a和20b是示出用于在編碼期間選擇性地使用率失真優(yōu)化量化的技術的流程圖。
圖21是示出殘量四叉樹的示例的示圖。
圖22是示出用于對圖片進行編碼的通用技術的流程圖,該通用技術包括選擇性地跳過對是否將單元拆分成具有更小變換尺寸的多個單元的評估。
圖23是示出使用運動補償編碼的單元的分割模式的示例的示圖。
圖24是示出用于對圖片進行編碼的通用技術的流程圖,該通用技術包括選擇性地跳過對針對用給定分割模式進行編碼的殘量編碼的評估。
圖25是示出用于選擇性地跳過對針對用給定分割模式進行編碼的殘量編碼的評估的示例技術的流程圖。
詳細描述
詳細描述提出媒體編碼方面的創(chuàng)新。具體地,這些創(chuàng)新可通過在編碼期間選擇性地跳過某些評估階段來降低媒體編碼的計算復雜性。例如,基于在編碼較早期作出的判定分析,或者基于對要被編碼的媒體的分析,媒體編碼器可(例如通過降低比特率和/或提升質量來)跳過對某些編碼工具、參數(shù)或設置的值、或者在編碼期間不預期提升率失真性能的編碼模式的評估。同時,跳過對編碼工具、參數(shù)或設置的值、編碼模式等的評估趨于加速編碼。
雖然本文中描述的操作被適當描述為由視頻編碼器來執(zhí)行,但在許多情況中,這些操作可由另一類型的媒體處理工具(例如圖像編碼器)來執(zhí)行。
本文中描述的一些創(chuàng)新是參考專用于H.265/HEVC標準的條款來示出的。本文中描述的創(chuàng)新也可針對其他標準或格式(例如,VP9格式、H.264/AVC標準)來實現(xiàn)。
在本文中描述的示例中,不同的圖中的相同參考標記指示相同的組件、模塊或操作。取決于上下文,給定組件或模塊可接受不同類型的信息作為輸入和/或產(chǎn)生不同類型的信息作為輸出。
更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動作的順序、通過拆分、重復或忽略某些方法動作等來更改。所公開的技術的各方面能夠被組合地或分開地使用。不同的實施例使用所描述的創(chuàng)新中的一個或多個。本文中描述的一些創(chuàng)新解決了背景中指出的一個或多個問題。通常,所給出的技術/工具并不解決所有這些問題。
I.示例計算系統(tǒng)。
圖1示出了在其中可實現(xiàn)若干所描述的發(fā)明的合適的計算環(huán)境(100)的一般化示例。計算系統(tǒng)(100)并不旨對使用范圍或功能提出任何限制,因為這些創(chuàng)新可以在不同的通用或專用計算系統(tǒng)中實現(xiàn)。
參考圖1,計算環(huán)境(100)包括一個或多個處理單元(110、115)和存儲器(120、125)。處理單元(110、115)執(zhí)行計算機可執(zhí)行指令。處理單元可以是通用中央處理單元(“CPU”)、專用集成電路(“ASIC”)中的處理器或任何其它類型的處理器。在多處理系統(tǒng)中,多個處理單元執(zhí)行計算機可執(zhí)行指令以提高處理能力。例如,圖1示出中央處理單元(110)以及圖形處理單元或協(xié)處理單元(115)。有形存儲器(120、125)可以是易失性存儲器(例如,寄存器、高速緩存、RAM)、非易失性存儲器(例如,ROM、EEPROM、閃存等)或兩者的某種組合,可由處理單元存取。存儲器(120,125)存儲實現(xiàn)用于在媒體編碼期間跳過各評估階段的一個或多個創(chuàng)新的軟件(180),該軟件采用適用于由(諸)處理單元執(zhí)行的計算機可執(zhí)行指令的形式。
計算系統(tǒng)可具有附加的特征。例如,計算系統(tǒng)(100)包括存儲(140)、一個或多個輸入設備(150)、一個或多個輸出設備(160)以及一個或多個通信連接(170)。諸如總線、控制器或網(wǎng)絡之類的互連機制(未示出)將計算系統(tǒng)(100)的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計算系統(tǒng)(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調計算系統(tǒng)(100)的各組件的活動。
有形存儲(140)可以是可移動或不可移動的,并包括磁盤、磁帶或磁帶盒、諸如CD-ROM、DVD之類的光學媒體或可用于儲存信息并可在計算系統(tǒng)(100)內(nèi)訪問的任何其他介質。存儲(140)存儲實現(xiàn)用于在媒體編碼期間跳過各評估階段的一個或多個創(chuàng)新的軟件(180)的指令。
(諸)輸入設備(150)可以是觸摸輸入設備(諸如鍵盤、鼠標、筆或跟蹤球)、語音輸入設備、掃描設備或向計算系統(tǒng)(100)提供輸入的另一設備。對于視頻,(諸)輸入設備(150)可以是相機、視頻卡、TV調諧卡、屏幕捕捉模塊或接受模擬或數(shù)字形式的視頻輸入的類似設備、或將視頻輸入讀到計算系統(tǒng)(100)中的CD-ROM或CD-RW。(諸)輸出設備(160)可以是顯示器、打印機、揚聲器、CD刻錄機或提供來自計算系統(tǒng)(100)的輸出的另一設備。
(諸)通信連接(170)允許通過通信介質與另一計算實體通信。通信介質傳達諸如計算機可執(zhí)行指令、音頻或視頻輸入或輸出、或已調制數(shù)據(jù)信號中的其他數(shù)據(jù)之類的信息。已調制數(shù)據(jù)信號是使其一個或多個特征以在信號中編碼信息的方式設置或改變的信號。作為示例而非限制,通信介質可以使用電的、光學的、RF或其它載體。
各創(chuàng)新可以在計算機可讀介質的一般上下文中描述。計算機可讀介質是可在計算環(huán)境內(nèi)訪問的任何可用有形介質。作為示例而非局限,對于計算系統(tǒng)(100),計算機可讀介質包括存儲器(120、125)、存儲(140)、和以上任意的組合。
各創(chuàng)新可在計算機可執(zhí)行指令(諸如包括在程序模塊中的在目標現(xiàn)實或虛擬處理器上在計算系統(tǒng)中執(zhí)行的那些計算機可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫、對象、類、組件、數(shù)據(jù)結構等。如各實施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對各程序模塊的計算機可執(zhí)行指令可以在本地或分布式計算系統(tǒng)中執(zhí)行。
術語“系統(tǒng)”和“設備”在此被互換地使用。除非上下文明確指示,否則,術語并不暗示對計算系統(tǒng)或計算設備的類型的任何限制。一般說來,計算系統(tǒng)或計算設備可以是本地的或分布式的,并且可以包括具有實現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計算硬件來實現(xiàn)。例如,所公開的方法可以由被專門設計或配置成實現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如ASIC數(shù)字信號處理器(“DSP”)之類的ASIC、圖像處理單元(“GPU”)、或諸如場可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來實現(xiàn)。
為了呈現(xiàn)起見,本詳細描述使用了如“確定”和“評估”等術語來描述計算系統(tǒng)中的計算機操作。這些術語是對由計算機執(zhí)行的操作的高級抽象,且不應與人類所執(zhí)行的動作混淆。對應于這些術語的實際的計算機操作取決于實現(xiàn)而不同。
II.示例網(wǎng)絡環(huán)境。
圖2a和2b示出了包括視頻編碼器(220)和視頻解碼器(270)的示例網(wǎng)絡環(huán)境(201,202)。編碼器(220)和解碼器(270)使用合適的通信協(xié)議通過網(wǎng)絡(250)連接。網(wǎng)絡(250)可包括因特網(wǎng)或另一計算機網(wǎng)絡。
在如圖2a中所示的網(wǎng)絡環(huán)境(201)中,每個實時通信(“RTC”)工具(210)包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產(chǎn)生輸出,該輸出遵循H.265/HEVC標準、SMPTE 421M標準、ISO/IEC 14496-10標準(也稱為H.264或AVC)、另一標準、或者諸如VP8或VP9之類的專有格式、或者那些標準或格式的變體或擴展,且相應的解碼器(270)接受來自編碼器(220)的經(jīng)編碼的數(shù)據(jù)。雙向通信可以是視頻會議、視頻電話呼叫或其它雙方或多方通信場景的部分。雖然,圖2a中的網(wǎng)絡環(huán)境(201)包括兩個實時通信工具(210),但網(wǎng)絡環(huán)境(201)可改為包括參與多方通信的三個或更多的實時通信工具(210)。
實時通信工具(210)管理編碼器(220)做出的編碼。圖3示出可以被包括在實時通信工具(210)中的示例編碼器系統(tǒng)(300)。替換地,實時通信工具(210)使用另一編碼器系統(tǒng)。實時通信工具(210)還管理解碼器(270)做出的解碼。
在圖2b中示出的網(wǎng)絡環(huán)境(202)中,編碼工具(212)包括編碼遞送給多個回放工具(214)的視頻的編碼器(220),所述回放工具包括解碼器(270)。單向通信可被提供用于視頻監(jiān)視系統(tǒng)、web相機監(jiān)視系統(tǒng)、遠程桌面會議演示或在其中編碼視頻并將視頻從一個位置發(fā)送到一個或多個其它位置的其它場景。雖然在圖2b中的網(wǎng)絡環(huán)境(202)包括兩個回放工具(214),該網(wǎng)絡環(huán)境(202)可以包括更多或更少的回放工具(214)。一般來說,回放工具(214)與編碼工具(212)通信以確定回放工具(214)要接收的視頻流?;胤殴ぞ?214)接收該流、緩沖所接收的經(jīng)編碼數(shù)據(jù)達合適的時間段并開始解碼和回放。
圖3示出可以被包括在編碼工具(212)中的示例編碼器系統(tǒng)(300)。替換地,編碼工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括用于管理與一個或多個回放工具(214)的連接的服務器側控制器邏輯?;胤殴ぞ?214)可包括用于管理與編碼工具(212)的連接的客戶機側控制器邏輯。
III.示例編碼器系統(tǒng)。
圖3是結合其可實現(xiàn)一些所述的實施例的示例編碼器系統(tǒng)(300)的框圖。編碼器系統(tǒng)(300)可以是能夠用多種編碼模式中的任一者(諸如用于實時通信的低等待時間編碼模式、轉碼模式和用于從文件或流中產(chǎn)生供回放的媒體的較高等待時間編碼模式)操作的通用編碼工具,或它可以是適用于一種這樣的編碼模式的專用編碼工具。編碼器系統(tǒng)(300)可適用于對特定類型的內(nèi)容進行編碼或者適用于通用視頻編碼。編碼器系統(tǒng)(300)可以被實現(xiàn)為操作系統(tǒng)模塊的部分、應用庫的部分、獨立的應用的部分或使用專用的硬件??傮w上,編碼系統(tǒng)(300)從視頻源(310)接收源視頻圖片(311)序列并產(chǎn)生經(jīng)編碼的數(shù)據(jù)作為給信道(390)的輸出。輸出到信道的經(jīng)編碼的數(shù)據(jù)可包括使用本文中描述的一個或多個創(chuàng)新編碼的內(nèi)容。
視頻源(310)可以是相機、調諧卡、存儲介質、屏幕捕捉模塊或其它數(shù)字視頻源。所述視頻源(310)以例如每秒30幀的幀速率產(chǎn)生視頻圖片序列。如在此所用,術語“圖片”一般是指源、已譯碼的或已重構的圖像數(shù)據(jù)。對于逐行掃描視頻,圖片是逐行掃描視頻幀。對于隔行視頻,在各示例實施例中,隔行視頻幀可以在編碼之前被去隔行。替換地,兩個互補的隔行視頻場可以被編碼在一起作為單個視頻幀或者被編碼成兩個經(jīng)分開編碼的場。除了指示逐行掃描視頻幀或隔行掃描視頻幀之外,術語“圖片”可以指示單個非成對的視頻場、互補的成對視頻場、表示在給定時間或在較大的圖像中的感興趣區(qū)域處的視頻對象的視頻對象平面。視頻對象平面或區(qū)域可以是包括場景的多個對象或區(qū)域的較大圖像的一部分。
正在到達的源圖片(311)被存儲在包括多個圖片緩沖存儲區(qū)域(321,322,…,32n)的源圖片臨時存儲器存儲區(qū)域(320)中。圖片緩沖(321,322等)在源圖片存儲區(qū)域(320)中保持一個源圖片。在已經(jīng)將一個或多個源圖片(311)存儲在圖片緩沖(321,322等)中之后,圖片選擇器(330)從源圖片存儲區(qū)域(320)中選擇個體源圖片。被圖片選擇器(330)選擇用于輸入到編碼器(340)的圖片的順序可以與視頻源(310)所產(chǎn)生的圖片的順序不同,例如某些圖片的編碼可以被延遲以便,從而允許某些后面的圖片被先編碼并且這樣便利于在時間上的后向預測。在編碼器(340)之前,編碼器系統(tǒng)(300)可以包括在編碼之前執(zhí)行選中的圖片(331)的預處理(例如濾波)的預處理器(未示出)。預處理可包括色彩空間轉換成主要(例如亮度)和次要(例如偏向紅色和偏向藍色的色度差)色彩分量以及用于編碼的重采樣處理(例如以減少色度分量的空間分辨率)。在編碼之前,視頻可以被轉換成諸如YUV的色彩空間,在其中亮度(Y)分量的采樣值表示明亮度或強度值,而色度(U,V)分量的采樣值表示色差值。色差值(以及從YUV色彩空間到諸如RGB的另一色彩空間和/或從另一色彩空間到YUV色彩空間的轉換操作)的精確定義取決于實現(xiàn)。通常,如在此所用,術語YUV指示具有亮度(或照度)分量和一個或多個色度(或色差)分量的任意色彩空間,包括Y’UV、YIQ、Y’IQ和YDbDr以及諸如YCbCr和YCoCg之類的變體。色度樣本值可以被子采樣到較低的色度采樣率(例如針對YUV 4:2:0格式或YUV 4:2:2格式的情況),或者色度樣本值可以具有與亮度樣本值相同的分辨率(例如針對YUV 4:4:4格式的情況)。替換地,視頻可根據(jù)另一格式(例如RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)來組織。
編碼器(340)編碼選中的圖片(331)以產(chǎn)生譯碼的圖片(341)并且還產(chǎn)生存儲器管理控制操作(“MMCO”)信號(342)或參考圖片集(“RPS”)信息。RPS是可以被使用以供在對當前圖片或任意后續(xù)圖片的運動補償中的參考的圖片集。如果當前圖片不是已經(jīng)被編碼的第一圖片,當執(zhí)行其編碼處理時,所述編碼器(340)可以使用已經(jīng)被存儲在經(jīng)編碼的圖片的臨時存儲器存儲區(qū)域(360)中的一個或多個先前被編碼/解碼的圖片(369)。這樣的存儲的經(jīng)解碼圖片(369)被用作當前的源圖片(331)的內(nèi)容的圖片間預測的參考圖片。MMCO/RPS信息(342)指示解碼器經(jīng)重構的圖片可以被用作參考圖片,并且因此應該被存儲在圖片存儲區(qū)域中。
通常,編碼器(340)包括執(zhí)行諸如分隔成瓦片、圖片內(nèi)部預測估計和預測、運動估計和補償、頻率變換、量化和熵譯碼之類的編碼任務。由編碼器(340)執(zhí)行的確切操作可以取決于壓縮格式而變化。輸出的經(jīng)編碼數(shù)據(jù)的格式可以是H.265/HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)、VPx格式、或前述標準或格式之一的變型或擴展、或者另一格式。
編碼器(340)可以將圖片分隔成相同尺寸或不同尺寸的多個小塊。例如,編碼器(340)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個小塊是矩形區(qū)域。小塊通常被用于提供并行處理的選項。圖片還可以被組織為一個或多個片,其中一個片可以是整個圖片或圖片的部分。片可以獨立于圖片中的其它片被編碼,這改善了錯誤復原力。出于編碼和解碼的目的,片或小塊的內(nèi)容被進一步分隔成塊或其它采樣值集。
對于基于H.265/HEVC標準的語法來說,編碼器將圖片(或片或小塊)的內(nèi)容拆分成譯碼樹單元。編碼樹單元(“CTU”)包括被組織為亮度編碼樹塊(“CTB”)的亮度采樣值,并且對應的色度采樣值被組織為兩個色度CTB。CTU(和其CTB)的大小由編碼器選擇。亮度CTB可包含例如64x64,、32x32或16x16亮度采樣值。CTU包括一個或多個編碼單元。編碼單元(“CU”)具有亮度編碼塊(“CB”)和兩個對應的色度CB。例如,根據(jù)四叉樹句法,具有64x64亮度CTB和兩個64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4個CU,其中每一CU包括一32x32亮度CB和兩個32x32色度CB,并且根據(jù)四叉樹句法,每一CU可被進一步拆分成更小的CU?;蛘撸鳛榱硪皇纠?,根據(jù)四叉樹句法,具有64x64亮度CTB和兩個32x32色度CTB(YUV 4:2:0格式)的CTU可以被拆分成4個CU,其中每一CU包括一32x32亮度CB和兩個16x16色度CB,并且根據(jù)四叉樹句法,每一CU可被進一步拆分成更小的CU。CU的最小允許尺寸(例如8×8、16×16)可被信號化在比特流中。由此,在一些示例實現(xiàn)中,CU可具有為64x64、32x32、16x16或8x8的尺寸(涉及CU中的亮度CB的尺寸)。
通常,CU具有諸如幀間或幀內(nèi)之類的預測模式。出于信號化預測信息(例如預測模式細節(jié)、移位值等)和/或預測處理的目的,CU包括一個或多個預測單元。預測單元(“PU”)具有亮度預測塊(“PB”)和兩個對應的色度PB。根據(jù)H.265/HEVC標準,對于圖片內(nèi)預測的CU,PU具有與該CU相同的尺寸,除非該CU具有最小尺寸(例如8x8)。在那個情況下,CU可被拆分成更小的PU(例如,如果最小CU尺寸為8x8,則被拆分成四個4x4PU,對于圖片內(nèi)預測情況),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。對于圖片間預測的CU,該CU可具有一個、兩個或四個PU,其中拆分成四個PU僅在該CU具有最小可允許尺寸的情況下被允許。當CU具有一個分割(即所謂的2Nx2N分割)時,PU和CU是同延的。當CU具有四個PU(所謂的NxN分割)時,每一PU覆蓋該CU的一象限。當CU具有兩個PU時,這兩個PU可按以下各分割模式中的任一分割模式來配置:上半部和下半部(即所謂的2NxN分割)、左半部和右半部(即所謂的Nx2N分割)、頂部的四分之一和其余部分(即所謂的2NxnU分割)、底部的四分之一和其余部分(即所謂的2NxnD分割)、左邊的四分之一和其余部分(即所謂的nLx2N分割)或右邊的四分之一和其余部分(即所謂的nRx2N分割)。
出于殘量編碼和解碼的目的,CU還具有一個或多個變換單元,其中變換單元(“TU”)具有亮度變換塊(“TB”)和兩個色度TB。CU可包含單個TU(在尺寸上等于該CU)或多個TU。根據(jù)四叉樹句法,TU可被拆分為四個更小的TU,這些TU可進而根據(jù)四叉樹句法被拆分成更小的TU。在一些示例實現(xiàn)中,TU可具有為32x32、16x16、8x8或4x4的尺寸(表示TU中的亮度TB的尺寸)。編碼器決定如何將視頻分割成CTU、CU、PU、TU等。
在H.265/HEVC實現(xiàn)中,片可以包括單個片段(獨立的片段)或被劃分成多個片段(獨立的片段和一個或多個從屬的片段)。片段是在小塊掃描中包含在單個網(wǎng)絡抽象層(“NAL”)單元中的連續(xù)排序的整數(shù)個CTU。對于獨立的片段,片段頭部包括適用于該獨立的片段的句法元素的值。對于從屬片段,截短的片段頭部包括適用于該從屬片段的句法元素的幾個值,并且從屬片段的其它句法元素的值是以解碼順序從在前的獨立的片段的值中推導出來的。
如本文中所使用的,術語“塊”可以指示殘量數(shù)據(jù)單元、CTB、CB、PB或TB,或某些其它采樣值集,這取決于上下文。術語“單元”可以指示宏塊、CTU、CU、PU、TU或某些其他塊集,或它可指示單個塊,這取決于上下文。
回到圖3,編碼器根據(jù)來自源圖片(331)中的其它、先前重構的樣本值的預測來表示該圖片(331)的經(jīng)圖片內(nèi)編碼的塊。對于塊的幀內(nèi)空間預測,圖片內(nèi)估計器估計相鄰的經(jīng)重構樣本值到該塊的外插。圖片內(nèi)估計器可以輸出經(jīng)熵編碼的預測信息(例如幀內(nèi)空間預測的預測模式(方向))。圖片內(nèi)預測預測器應用預測信息來確定幀內(nèi)預測值。編碼器(340)依據(jù)來自參考圖片的預測表示源圖片(331)的經(jīng)圖片間編碼的經(jīng)預測的塊。運動估計器估計塊相對于一個或多個參考圖片(369)的運動。對于上下文運動模式,運動估計器可評估在運動補償時對某些相鄰塊使用的或者以其他方式依據(jù)規(guī)則推導出的運動向量(“MV”)(即所謂的H.265/HEVC標準中的合并模式MV,或者通過MV競爭方法推導出的其他MV)。當使用多個參考圖片時,這多個參考圖片可以來自不同的時間方向或相同的時間方向。經(jīng)運動補償?shù)念A測參考區(qū)域是(諸)參考圖片中用于生成當前圖片的樣本值塊的經(jīng)運動補償?shù)念A測值的樣本值區(qū)域。運動估計器輸出諸如MV量信息之類的運動信息,該運動信息被熵編碼。具體地,指示上下文運動模式(例如,H.265/HEVC標準中的合并模式或其他MV競爭方法)是否被使用的信息以及在上下文運動模式被使用的情況下指示針對上下文運動模式的候選MV的信息可被高效地信號化。運動補償器將MV應用于參考圖片(369)以確定用于圖片間預測的經(jīng)運動補償?shù)念A測值。
編碼器可確定塊的預測值(幀內(nèi)或幀間)和相應的原始值之間的差值(如果有的話)。這些預測殘量使用頻率變換(如果該頻率變換不被跳過)、量化和熵編碼被進一步編碼。在一些實現(xiàn)中,可以跳過頻率變換。在這種情況中,可以對預測殘量進行量化和熵編碼。具體地,在對屏幕內(nèi)容視頻進行編碼時,變換跳過模式可能是有用的。
對于量化,編碼器(340)為圖片、小塊、片和/或視頻的其它部分設置量化參數(shù)(“QP”)的值,并相應地量化變換系數(shù)。在量化變換系數(shù)時,編碼器(340)可使用各種方法中的任一種,包括率失真優(yōu)化量化(“RDOQ”)或其他量化。
編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如MV信息、QP值、模式判定、參數(shù)選擇)。典型的熵編碼技術包括指數(shù)-Golomb編碼、Golomb-Rice編碼、算術編碼、差分編碼、Huffman編碼、行程長度編碼、可變長度對可變長度(“V2V”)編碼、可變長度對固定長度(“V2F”)編碼、Lempel-Ziv(“LZ”)編碼、字典編碼、概率區(qū)間分割熵編碼(“PIPE”)和上述編碼的組合。熵編碼器可對不同種類的信息使用不同的編碼技術,并可組合地應用多個技術(例如,通過應用Golomb-Rice編碼,隨后應用算術編碼),并可從特定編碼技術內(nèi)的多個碼表中進行選擇。在一些情況下,對于某單元,可跳過對預測殘量的編碼。以下進一步詳述了殘量編碼跳過模式的示例。
自適應去塊濾波器可以被包括在編碼器(340)中的運動補償循環(huán)(也即“循環(huán)內(nèi)”濾波)中以平滑經(jīng)解碼的圖片中的塊邊界行和/或列上的間斷??商鎿Q地或另外地應用其它濾波(諸如去振鈴濾波、自適應環(huán)路濾波(“ALF”)或樣本自適應偏移(“SAO”)濾波,未示出)作為內(nèi)環(huán)路濾波操作。
由編碼器(340)產(chǎn)生的經(jīng)編碼的數(shù)據(jù)包括針對各層比特流句法的句法元素。對于根據(jù)H.265/HEVC的標準的句法,例如,圖片參數(shù)集(“PPS”)是包含了與圖片相關聯(lián)的句法元素的句法結構。PPS可被用于單個圖片,或者PPS可被重用于序列中的多個圖片。PPS典型地與圖片的經(jīng)編碼的數(shù)據(jù)分開地發(fā)送信號(例如PPS的一個NAL單元和用于圖片的經(jīng)編碼的數(shù)據(jù)的一個或多個其它NAL單元)。在圖片的經(jīng)編碼數(shù)據(jù)內(nèi),句法元素指示要為該圖片使用哪個PPS。類似地,對于根據(jù)H.265/HEVC的標準的句法,序列參數(shù)集(“SPS”)是包含了與圖片的序列相關聯(lián)的句法元素的句法結構。比特流可包括單個SPS或多個SPS。SPS通常被信號化成與序列的其它數(shù)據(jù)分開,并且其它數(shù)據(jù)中的句法元素指示要使用哪個SPS。
經(jīng)編碼的圖片(341)和MMCO/RPS信息(342)(或與MMCO/RPS信息(342)等價的信息,因為在編碼器(340)處已經(jīng)知道各圖片的依賴關系和排序結構)而由解碼處理仿真器(350)處理。解碼處理仿真器(350)實現(xiàn)了解碼器的一些功能,例如對任務進行解碼以重構參考圖片。以與MMCO/RPS信息(342)相一致的方式,解碼處理仿真器(350)確定給定的經(jīng)編碼幀(341)是否需要被重構并被存儲以供在對要編碼的后續(xù)圖片的圖片間預測中用作參考幀。如果經(jīng)編碼的圖片(341)需要被存儲,則解碼處理仿真器(350)對將由解碼器進行的解碼處理建模,該解碼器接收經(jīng)編碼的圖片(341)并產(chǎn)生相應的經(jīng)解碼的圖片(351)。通過這么做,當編碼器(340)已經(jīng)使用已被存儲在經(jīng)解碼圖片存儲區(qū)域(360)中的經(jīng)解碼的(諸)圖片(369)時,解碼處理仿真器(350)還使用來自存儲區(qū)域(360)的經(jīng)解碼的圖片(369)作為解碼處理的一部分。
經(jīng)解碼圖片臨時存儲器存儲區(qū)域(360)包括多個圖片緩沖存儲區(qū)域(361,362,…,36n)。在與MMCO/RPS信息(342)相一致的方式中,解碼處理仿真器(350)管理存儲區(qū)域(360)中的內(nèi)容,以便標識出具有編碼器(340)不再需要將其用作參考圖片的圖片的任何圖片緩沖區(qū)(361,362等)。在對解碼處理進行建模之后,解碼處理仿真器(350)在圖片幀緩沖區(qū)(361、362等)中存儲已經(jīng)以此方式標識出的新解碼的圖片(351)。
經(jīng)編碼的圖片(341)和MMCO/RPS信息(342)在臨時經(jīng)編碼數(shù)據(jù)區(qū)域(370)中被緩沖。被聚集在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中的經(jīng)編碼數(shù)據(jù)包含一個或多個圖片的經(jīng)編碼數(shù)據(jù)作為基本經(jīng)編碼視頻比特流的句法的一部分。在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中被聚集的經(jīng)編碼數(shù)據(jù)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關的媒體元數(shù)據(jù)(例如作為一個或多個補充增強信息(“SEI”)消息或視頻可用性信息(“VUI”)消息中的一個或多個參數(shù))。
來自臨時經(jīng)編碼數(shù)據(jù)區(qū)域(370)的經(jīng)聚集的數(shù)據(jù)(371)由信道編碼器(380)處理。信道編碼器(380)可以分組化和/或復用經(jīng)聚集的數(shù)據(jù)以供作為媒體流傳輸或存儲(例如根據(jù)媒體程序流或傳輸流格式,例如ITU-T H.222.0|ISO/IEC 13818-1或因特網(wǎng)實時傳輸協(xié)議格式(例如IETF RFC 3550)),在這種情況中,信道編碼器(380)可以添加句法元素作為媒體傳輸流的句法的一部分?;蛘?,信道編碼器(380)可以組織經(jīng)聚集的數(shù)據(jù)以供存儲成文件(例如根據(jù)媒體容器格式,諸如ISO/IEC 14496-12),在這種情況中信道編碼器(380)可添加句法元素作為媒體存儲文件的句法的一部分?;蛘撸话愕兀诺谰幋a器(380)可以實現(xiàn)一個或多個媒體系統(tǒng)復用協(xié)議或傳輸協(xié)議,在這種情況中,信道編碼器(380)可以添加句法元素作為(諸)協(xié)議的句法的一部分。信道編碼器(380)將輸出提供給信道(390),該信道(390)表示存儲、通信連接或該輸出的另一信道。信道編碼器(380)或信道(390)還可以包括例如用于前向糾錯(“FEC”)編碼和模擬信號調制的其它元素(未示出)。
IV.示例視頻編碼器
圖4a和4b是可結合其實現(xiàn)所描述的一些實施例的通用視頻編碼器(400)的框圖。編碼器(400)接收包括當前圖片的視頻圖片序列作為輸入視頻信號(405)并在經(jīng)編碼視頻比特流(495)中產(chǎn)生經(jīng)編碼數(shù)據(jù)作為輸出。
編碼器(400)是基于塊的并使用取決于實現(xiàn)的塊格式。塊還可在不同的階段上被進一步細分,例如在預測、頻率變換和/或熵編碼階段。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊隨后可以被劃分成更小的樣本值塊以用于編碼和解碼。在針對H.265/HEVC標準的編碼的實現(xiàn)中,編碼器將圖片分割成各CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
編碼器(400)使用圖片內(nèi)編碼和/或圖片間編碼來壓縮圖片。編碼器(400)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由這些組件執(zhí)行的確切操作可取決于正壓縮的信息的類型而變化。
小塊化模塊(410)可選地將圖片分割成相同尺寸或不同尺寸的多個小塊。例如,小塊化模塊(410)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個小塊是矩形區(qū)域。在H.265/HEVC實現(xiàn)中,編碼器(400)將圖片分割成一個或多個片,其中每個片包括一個或多個片段。
通用編碼控件(420)接收輸入視頻信號(405)的圖片以及來自編碼器(400)的各個模塊的反饋(未示出)。整體上,通用編碼控件(420)將控制信號(未示出)提供給其它模塊(例如小塊化模塊(410)、變換器/縮放器/量化器(430)、縮放器/逆變換器(435)、圖片內(nèi)估計器(440)、運動估計器(450)以及幀內(nèi)/幀間切換)以設置和改變編碼期間的編碼參數(shù)。通用編碼控件(420)還可評估編碼期間的中間結果,通??紤]不同選項的比特率成本和/或失真成本。具體地,通用編碼控件(420)可決定在編碼期間如何將圖片拆分成CU(CB)、PU(PB)和TU(TB)。通過這么做,通用編碼控件(420)可評估如章節(jié)V和/或VI中所述的條件以決定何時跳過對某些CU尺寸的評估?;蛘?,通用編碼控件(420)可評估如章節(jié)X中所述的條件以決定何時跳過對某些TU尺寸的評估?;蛘?,通用編碼控件(420)與運動估計器(450)一起工作可決定上下文運動模式的哪些候選MV要完全評估(如章節(jié)VIII中所描述的)或決定哪些分割模式有益于全面深入評估(如章節(jié)XI中所描述的)?;蛘?,通用編碼控件(420)可決定在編碼期間是否以及如何使用變換跳過模式,如在章節(jié)VII中描述的?;蛘撸ㄓ镁幋a控件(420)可決定何時使用RDOQ或更簡單的方法來量化系數(shù),如在章節(jié)IX中描述的。通用編碼控件(420)產(chǎn)生指示在編碼期間作出的判定的通用控制數(shù)據(jù)(422),使得對應的解碼器可以作出一致的判定。通用控制數(shù)據(jù)(422)被提供給頭部格式化器/熵編碼器(490)。
如果當前圖片是使用圖片間預測來預測的,則運動估計器(450)估計輸入視頻信號(405)的當前圖片的樣本值塊相對于一個或多個參考圖片的運動,從而潛在地評估上下文運動模式中的候選MV以及其他候選MV。對于上下文運動模式,作為當前單元的候選MV,運動估計器(450)評估在運動補償時對局部鄰域中的某些相鄰單元使用的一個或多個MV或依據(jù)規(guī)則推導出的一個或多個MV。針對上下文運動模式的候選MV可包括來自空間上毗鄰的單元的MV、來自時間上毗鄰的單元的MV以及依據(jù)規(guī)則推導出的MV。H.265/HEVC標準中的合并模式是上下文運動模式的示例。更一般地,上下文運動模式涉及多個推導出的MV之間的競爭以及對多個推導出的MV之一的選擇。當運動在局部區(qū)域內(nèi)一致時,存在針對上下文運動模式的候選MV之一將提供對當前塊的充分的經(jīng)運動補償?shù)念A測的良好機會,使得運動估計器(450)可在早期終止運動估計。運動估計器(450)可針對當前圖片的給定單元的分割(例如,在H.265/HEVC標準中為CU的各PU的2N×2N、2N×N、N×2N或N×N分割)評估運動補償?shù)牟煌指钅J健?/p>
經(jīng)解碼圖片緩沖器(470)緩沖一個或多個經(jīng)重構的先前編碼的圖片以供用作參考圖片。當使用多個參考圖片時,這多個參考圖片可以來自不同的時間方向或相同的時間方向。運動估計器(450)產(chǎn)生運動數(shù)據(jù)(452)作為輔助信息。具體地,運動數(shù)據(jù)(452)可包括指示上下文運動模式(例如,在H.265/HEVC標準中為合并模式)是否被使用的信息,以及如果上下文運動模式被使用,則包括指示上下文運動模式(例如,H.265/HEVC標準中的合并模式索引值)的候選MV的信息。更一般地,運動數(shù)據(jù)(452)可包括MV數(shù)據(jù)和參考圖片選擇數(shù)據(jù)。運動數(shù)據(jù)(452)被提供給頭部格式化器/熵編碼器(490)以及運動補償器(455)。運動補償器(455)將MV應用于來自經(jīng)解碼圖片緩沖器(470)的(諸)經(jīng)重構的參考圖片。運動補償器(455)產(chǎn)生針對當前圖片的經(jīng)運動補償?shù)念A測。
在編碼器(400)內(nèi)的分開的路徑中,圖片內(nèi)估計器(440)確定如何執(zhí)行對輸入視頻信號(405)的當前圖片的樣本值塊的圖片內(nèi)預測。當前圖片可全部或部分使用圖片內(nèi)編碼來編碼。對于空間內(nèi)預測,使用當前圖片的重構(438)的值,圖片內(nèi)估計器(440)確定如何從當前圖片的鄰近的、先前重構的樣本值中空間地預測當前圖片的當前塊的樣本值。圖片內(nèi)估計器(440)產(chǎn)生幀內(nèi)預測數(shù)據(jù)(442)作為輔助信息,諸如指示幀內(nèi)預測是否使用空間預測的信息以及(幀內(nèi)空間預測的)預測模式方向。圖片內(nèi)預測數(shù)據(jù)(442)被提供給頭部格式化器/熵編碼器(490)以及圖片內(nèi)預測器(445)。根據(jù)圖片內(nèi)預測數(shù)據(jù)(442),圖片內(nèi)預測器(445)從當前圖片的鄰近的先前重構的樣本值中在空間上預測當前圖片的當前塊的采樣值。
幀內(nèi)/幀間切換選擇對給定塊的預測(458)將是經(jīng)運動補償?shù)念A測還是圖片內(nèi)預測。當殘量編碼沒有被跳過時,預測(458)的塊和輸入視頻信號(405)的原始當前圖片的對應部分之間的差(如果有的話)提供殘量(418)的值,該殘量被進一步編碼。在當前圖片的重構期間,當殘量已被編碼/信號化時,經(jīng)重構的殘量與預測(458)組合來從視頻信號(405)中產(chǎn)生對原始內(nèi)容的近似或實際重構(438)。(在有損壓縮中,一些信息從視頻信號(405)中丟失。)在一些情況下,沒有為單元計算殘量。相反,殘量編碼被跳過,并且預測的樣本值被用作經(jīng)重構的樣本值。對于一些類型的單元(例如,僅圖片間編碼單元)或所有類型的單元,關于是否跳過殘量編碼的判定可在逐單元的基礎上(例如,在H.265/HEVC標準中在逐CU的基礎上)作出。
作為殘量編碼的一部分,在變換器/縮放器/量化器(430)中,頻率變換器將空間域視頻信息轉換為頻域(即頻譜、變換)數(shù)據(jù)。對于基于塊的視頻編碼,頻率變換器將離散余弦變換(“DCT”)、其整數(shù)近似、或另一類型的前向塊變換(例如離散正弦變換或其整數(shù)近似)應用于預測殘量(418)的值塊(或者如果預測(458)為空則應用于樣本值數(shù)據(jù)),從而產(chǎn)生頻率變換系數(shù)塊。變換器/縮放器/量化器(430)可以應用具有可變塊尺寸的變換。在這種情況中,變換器/縮放器/量化器(430)可以確定要對當前塊的殘量使用哪些尺寸的變換。例如,在H.265/HEVC實現(xiàn)中,編碼器/縮放器/量化器(430)可通過四叉樹分解將TU拆分成四個更小的TU,這些TU中的每一者可進而被拆分成四個更小的TU,向下至最小TU尺寸。TU尺寸可以為32x32、16x16、8x8或4x4(涉及TU中的亮度TB的尺寸)。
在H.265/HEVC實現(xiàn)中,可以跳過頻率變換。在這種情況下,可以對殘量(418)的值進行量化和熵編碼。具體地,變換跳過模式在對屏幕內(nèi)容視頻進行編碼時可以是有用的,但在對其他類型的視頻進行編碼時不是特別有用。關于是否跳過頻率變換的判定可在逐單元的基礎上(例如,在H.265/HEVC標準中為在逐TU的基礎上)對一些單元(例如,具有諸如4x4之類的特定尺寸的TU)或者對所有單元作出。變換跳過模式可在逐圖片的基礎上(例如,在H.265/HEVC標準中為根據(jù)PPS中的句法元素)被啟用或禁用。
縮放器/量化器對變換系數(shù)進行縮放和量化。例如,量化器將以逐圖片基礎、逐小塊基礎、逐片基礎、逐塊基礎、頻率專用基礎或其它基礎來變化的量化步進尺寸將死區(qū)標量量化應用于頻域數(shù)據(jù)。經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)被提供給頭部格式化器/熵編碼器(490)。如果頻率變換被跳過,則縮放器/量化器可對預測殘量數(shù)據(jù)塊(或如果預測(458)為空則對樣本值)進行縮放和量化,從而生成要提供給頭部格式化器/熵編碼器(490)的經(jīng)量化的值。在量化變換系數(shù)時,編碼器(400)可使用率失真優(yōu)化量化(“RDOQ),這是非常耗時的。對于RDOQ,編碼器為每一系數(shù)設置最優(yōu)量化級別,從而基于率失真效率適應性地調整系數(shù)值。替換地,編碼器(400)可應用較簡單的量化規(guī)則,例如在章節(jié)IX中所描述的。
為了重構殘量,在縮放器/逆變換器(435)中,縮放器/逆量化器對經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。當變換階段尚未被跳過時,逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構的預測殘量或樣本值的塊。如果變換階段已經(jīng)被跳過,則也跳過逆頻率變換。在這種情況下,縮放器/逆量化器可對預測殘量數(shù)據(jù)(或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,從而產(chǎn)生經(jīng)重構的值。當殘量已經(jīng)被編碼/信號化時,編碼器(400)將經(jīng)重構的殘量與預測(458)的值(例如,運動補償預測值、圖片內(nèi)預測值)組合以形成重構(438)。當殘量尚未被編碼/信號化時,編碼器(400)使用預測(458)的值作為重構(438)。
對于圖片內(nèi)預測,重構(438)的值可以被饋送回圖片內(nèi)估計器(440)和圖片內(nèi)預測器(445)。重構(438)的值可以被用于后續(xù)圖片的運動補償預測。重構(438)的值可被進一步濾波。對于視頻信號(405)的給定圖片,濾波控件(460)確定如何對重構(438)的值執(zhí)行去塊濾波和SAO濾波。濾波控件(460)產(chǎn)生濾波控制數(shù)據(jù)(462),它被提供給頭部格式化器/熵編碼器(490)和合并器/(諸)濾波器(465)。
在合并器/(諸)濾波器(465)中,編碼器(400)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構版本中。編碼器(400)根據(jù)濾波器控制數(shù)據(jù)(462)和濾波器自適應規(guī)則選擇性地執(zhí)行去塊濾波和SAO濾波,以便自適應地平滑各圖片中的邊界上的間斷。可替換地或另外地應用其它濾波(例如去振鈴濾波或ALF;未示出)。取決于編碼器(400)的設置,邊界可選擇性地被濾波或根本不被濾波,并且編碼器(400)可在編碼比特流內(nèi)提供句法元素以指示是否應用這樣的濾波。經(jīng)解碼圖片緩沖器(470)緩沖經(jīng)重構的當前圖片以供在后續(xù)的經(jīng)運動補償?shù)念A測中使用。
頭部格式化器/熵編碼器(490)對通用控制數(shù)據(jù)(422)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)、幀內(nèi)預測數(shù)據(jù)(442)、運動數(shù)據(jù)(452)以及濾波器控制數(shù)據(jù)(462)進行格式化和/或熵編碼。對于運動數(shù)據(jù)(452),頭部格式化器/熵編碼器(490)可以選擇上下文運動模式索引值、參考圖片選擇數(shù)據(jù)或其他MV數(shù)據(jù)并對其進行熵編碼。在一些情況中,頭部格式化器/熵編碼器(490)還(相對于MV值的MV預測值)確定MV值的MV差分,隨后例如使用上下文自適應二進制算術編碼對該MV微分進行熵編碼。頭部格式化器/熵編碼器(490)在經(jīng)編碼的視頻比特流(495)中提供經(jīng)編碼的數(shù)據(jù)。經(jīng)編碼的視頻位流的格式(495)可以是H.265/HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)、VPx格式、前述標準或格式之一的變型或擴展、或另一格式。
取決于實現(xiàn)和期望的壓縮類型,編碼器(400)的模塊可被添加、省略、拆分成多個模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實施例中,具有不同模塊和/或其它配置的模塊的編碼器執(zhí)行一個或多個所描述的技術。編碼器的具體實施例通常使用編碼器(400)的變型或補充版本。所示的編碼器(400)內(nèi)的各模塊之間的關系指示信息在編碼器中的一般流動;為簡明起見,未示出其它關系。
V.取決于毗鄰單元的單元尺寸跳過對候選單元尺寸的評估。
本章節(jié)呈現(xiàn)包括取決于毗鄰單元(例如,空間上毗鄰的單元和/或時間上毗鄰的單元)的單元尺寸選擇性地跳過對候選單元尺寸的評估的編碼示例。在許多情況中,在當前單元的編碼期間,基于毗鄰單元中使用的單元尺寸,編碼器可避免對不可能提升率失真性能的候選單元尺寸的評估,這趨于加速編碼。
A.通過遞歸式完全評估來選擇單元尺寸。
在一些方法中,為了提升率失真效率,編碼器檢查單元的每一可能單元尺寸。圖5示出用于使用完全遞歸式評估來評估圖片的單元的候選單元尺寸的示例技術(500)。諸如參考圖3描述的編碼器(340)、參考圖4a和4b描述的編碼器(400)之類的編碼器或其他編碼器可執(zhí)行技術(500)。
開始,編碼器確定(510)對具有當前單元尺寸的當前單元進行編碼的成本。例如,根據(jù)H.265/HEVC標準,當前單元為CU。替換地,單元為另一類型的單元。當前單元尺寸為64x64、32x32、16x16、8x8或某一其他單元尺寸。該成本可使用任何可用的度量根據(jù)速率成本和/或失真成本來測量,并且可以是估計值或取決于實際編碼的結果。
編碼器檢查(520)是否將當前單元拆分成多個更小的單元。例如,根據(jù)四叉樹分解,多個更小的單元是當前單元的四叉樹。編碼器可檢查當前單元是否已達到單元的最小尺寸,并且如果為否,則進一步拆分當前單元。
如果當前單元沒有被拆分,則編碼器返回(560)最佳單元尺寸和用于對當前單元進行編碼的相應最佳成本的組合。在該情況下,最佳單元尺寸是當前單元尺寸,且最佳成本是對處于當前單元尺寸的當前單元進行編碼的成本。
否則,如果當前單元將被拆分,則編碼器將當前單元拆分(530)成具有更小單元尺寸的多個新單元,并為具有更小單元尺寸的新單元中的每一者調用(540)評估例程。在評估例程中,具有更小單元尺寸的新單元被評估(如圖5所示),并且(諸)最佳單元尺寸和用于對新單元進行編碼的相應最佳成本的組合被返回(560)。
隨后,編碼器比較(550)(a)(來自階段510的)對處于當前單元尺寸的當前單元進行編碼的成本與(b)(從階段540中的多個調用返回的)對處于更小單元尺寸的(經(jīng)拆分的)新單元進行編碼的聚集成本。從這兩個選項中,編碼器返回(560)(諸)最佳單元尺寸和用于對當前單元進行編碼的相應最佳成本的組合—即具有更小成本的一個或多個單元尺寸與更小成本的值。
通過這種方式,編碼器可窮盡地為當前單元內(nèi)的更小單元評估單元尺寸的不同組合。例如,編碼器可確定對64x64CU進行編碼的成本,隨后將該64x64CU拆分成四個32x32CU。對于此四個32x32CU中的每一者,編碼器可確定對該32x32CU進行編碼的成本,隨后將該32x32CU拆分成四個16x16CU。這會繼續(xù),直到編碼器達到具有最小CU尺寸(例如,16x16或8x8)的CU,該CU不被進一步拆分,并且其編碼成本被返回。在那時,利用從四個更小的CU返回的結果,編碼器將對處于最小CU尺寸的四個CU(例如,四個8x8CU)進行編碼的聚集成本與對包括那四個CU的CU(例如,一個16x16CU)進行編碼的成本進行比較。編碼器返回具有更小成本的(諸)單元尺寸。例如對于16x16CU,(諸)單元尺寸的最佳組合可以是一個16x16CU或四個8x8CU。類似地,對于一個32x32CU,(諸)單元尺寸的最佳組合可以是一個32x32CU、四個16x16CU、三個16x16CU和16x16象限中的四個8x8CU、兩個16x16CU和兩個16x16象限中的八個8x8CU、一個16x16CU和三個16x16象限中的十二個8x8CU、或者十六個8x8CU。對于64x64CU,單元尺寸的最佳組合可以是64x64CU、四個32x32CU、或涉及這些32x32CU中的一者或多者已被如以上所描述地拆分的任何組合。
B.取決于空間上毗鄰的單元的單元尺寸跳過對候選單元尺寸的評估的示例。
為了加速編碼過程,編碼器可取決于空間上相鄰的單元的單元尺寸而跳過對當前單元的一些候選單元尺寸的評估。例如,編碼器考慮在當前單元左邊的單元和在當前單元上方的單元的單元尺寸。替換地,編碼器考慮其他的和/或附加的相對于當前單元在空間上毗鄰的單元的單元尺寸。如果空間上毗鄰的單元的單元尺寸一致地小,則當前單元的小單元尺寸可能是合適的,并且編碼器可跳過對當前單元的大單元尺寸的評估。相反,如果空間上毗鄰的單元的單元尺寸一致地大,則當前單元的大單元尺寸可能是合適的,并且編碼器可跳過對當前單元的小單元尺寸的評估。
單元尺寸可作為相對于最大單元尺寸的起始深度的深度被跟蹤。假設當前單元具有最大單元尺寸。在該情況下,當前單元的深度為0。如果當前單元的尺寸為最大單元尺寸的1/4,則當前單元的深度為1,并以此類推。由此,如果最大單元尺寸為64x64,則64x64單元的深度為0,32x32單元的深度為1,16x16單元的深度為2,并且8x8單元的深度為3。
編碼器在決定要跳過哪些候選單元尺寸時可按各種方式使用空間上毗鄰的單元的單元尺寸。例如,根據(jù)一個規(guī)則,編碼器確定空間上毗鄰的單元的單元尺寸之中的最小單元尺寸,并使用該最小單元尺寸來限制為當前單元評估哪些候選單元尺寸。編碼器可跳過對比(空間上毗鄰的單元之中的)最小單元尺寸小的任何候選單元尺寸的評估?;蛘?,編碼器可跳過對比(空間上毗鄰的單元之中的)最小單元尺寸小一個以下單元尺寸的任何候選單元尺寸的評估。當單元尺寸作為深度被跟蹤時,編碼器可確定空間上毗鄰的單元的深度之中的最大深度,并跳過對具有比該最大深度大的深度(或替換地,最大深度+1)的任何候選單元尺寸的評估。
或者,作為另一示例規(guī)則,編碼器確定空間上毗鄰的單元的單元尺寸之中的最大單元尺寸,并使用該最大單元尺寸來限制為當前單元評估哪些候選單元尺寸。編碼器可跳過對比(空間上毗鄰的單元之中的)最大單元尺寸大的任何候選單元尺寸的評估?;蛘?,編碼器可跳過對比(空間上毗鄰的單元之中的)最大單元尺寸大一個以上單元尺寸的任何候選單元尺寸的評估。當單元尺寸作為深度被跟蹤時,編碼器可確定空間上毗鄰的單元的深度之中的最小深度,并跳過對具有比該最小深度小的深度(或替換地,最小深度-1)的任何候選單元尺寸的評估。
圖6a-6d示出具有在確定是否跳過對當前單元的候選單元尺寸的評估時考慮的單元尺寸的空間上毗鄰單元的示例。在圖6a-6d中,供拆分成一個或多個單元的當前區(qū)域(610)被評估。例如,在H.265/HEVC實現(xiàn)中,當前區(qū)域(610)為當前CTU,并且這些單元為CU。替換地,該區(qū)域是另一類型的區(qū)域,并且單元是另一類型的單元。在當前區(qū)域上方的毗鄰區(qū)域(650)(例如,上CTU)和在當前區(qū)域左邊的毗鄰區(qū)域(630)(例如,左CTU)可包括空間上毗鄰當前區(qū)域(610)的當前單元的各單元(例如,CU)。在圖6a-6d的示例中,上區(qū)域(650)和左區(qū)域(630)各自在先前編碼期間被拆分成多個單元(例如,CU)。
在圖6a-6d的示例中,編碼器考慮在當前單元上方的單元和在當前單元左邊的單元的單元尺寸。為了確定哪個單元在當前單元左邊或在當前單元上方,編碼器考慮當前單元的左上位置。上單元是包括緊接在當前單元的左上位置上方的位置的單元。左單元是包括緊接在當前單元的左上位置左邊的位置的單元。毗鄰(左或上)單元可具有與當前單元相同的尺寸,或者它可具有不同的尺寸。毗鄰(左或上)單元可在當前區(qū)域(610)或毗鄰區(qū)域中,這取決于當前單元在當前區(qū)域(610)內(nèi)的位置。替換地,編碼器應用其他規(guī)則來確定當前單元的左單元和上單元。
在圖6a中,當前區(qū)域(610)包括具有為64x64的尺寸的單個當前單元(611)。編碼器在評估當前單元(611)的候選單元尺寸時考慮處于左區(qū)域(630)的16x16單元(631)和處于上區(qū)域(650)的16x16單元(651)的單元尺寸假設編碼器跳過對比左單元(631)和上單元(651)之中的最大單元尺寸(16x16)大一個以上尺寸的任何候選單元尺寸的評估。在該情況下,編碼器跳過對64x64當前單元(611)的評估。
圖6b示出在稍后階段的評估。在圖6b中,當前區(qū)域(610)已通過四叉樹分解被拆分成四個32x32單元。當前單元(612)具有為32x32的尺寸。編碼器在評估當前單元(612)的候選單元尺寸時考慮處于左區(qū)域(630)的16x16單元(631)和處于上區(qū)域(650)的16x16單元(651)的單元尺寸。假設編碼器跳過對比左單元(631)和上單元(651)之中的最大單元尺寸(16x16)大一個以上尺寸的任何候選單元尺寸的評估。在該情況下,編碼器執(zhí)行對32x32當前單元(612)的評估。
圖6c示出在比圖6b晚的階段的評估。在圖6c中,當前區(qū)域(610)已通過四叉樹分解被拆分成四個32x32單元,并且第一32x32單元已通過四叉樹分解被進一步拆分成四個16x16單元。當前單元(613)具有為16x16的尺寸。編碼器在評估當前單元(613)的候選單元尺寸時考慮處于左區(qū)域(630)的8x8單元(633)和處于當前區(qū)域(610)的16x16單元(653)的單元尺寸。假設編碼器跳過對比左單元(633)和上單元(653)之中的最大單元尺寸(16x16)大一個以上尺寸的任何候選單元尺寸的評估。在該情況下,編碼器執(zhí)行對16x16當前單元(613)的評估。
最后,圖6d示出在比圖6c晚的階段的評估。在圖6d中,當前區(qū)域(610)已通過四叉樹分解被拆分成四個32x32單元,并且前兩個32x32單元已通過四叉樹分解被進一步拆分成更小的單元。當前單元(614)具有為32x32的尺寸。編碼器在評估當前單元(614)的候選單元尺寸時考慮處于左區(qū)域(630)的左8x8單元(633)和處于當前區(qū)域(610)的上8x8單元的單元尺寸。假設編碼器跳過對比左單元和上單元之中的最大單元尺寸(8x8)大一個以上尺寸的任何候選單元尺寸的評估。在該情況下,編碼器跳過對32x32當前單元(614)的評估。
C.取決于時間上毗鄰的單元的單元尺寸跳過對候選單元尺寸的評估的示例。
為了加速編碼過程,編碼器可取決于時間上相鄰的單元的單元尺寸而跳過對當前單元的一些候選單元尺寸的評估。例如,編碼器考慮顯示次序中的下一圖片中的并置單元(與當前單元的位置相同)的單元尺寸和/或顯示次序中的前一圖片中的并置單元的單元尺寸。替換地,編碼器考慮其他的和/或附加的時間上毗鄰的單元的單元尺寸。如果時間上毗鄰的單元的單元尺寸一致地小,則當前單元的小單元尺寸可能是合適的,并且編碼器可跳過對當前單元的大單元尺寸的評估。相反,如果時間上毗鄰的單元的單元尺寸一致地大,則當前單元的大單元尺寸可能是合適的,并且編碼器可跳過對當前單元的小單元尺寸的評估。如前一章節(jié)所解釋的,單元尺寸可作為相對于最大單元尺寸的起始深度的深度被跟蹤。
編碼器在決定要跳過哪些候選單元尺寸時可按各種方式使用時間上毗鄰的單元的單元尺寸。例如,根據(jù)一個規(guī)則,編碼器確定時間上毗鄰的單元的單元尺寸之中的最小單元尺寸,并使用該最小單元尺寸來限制為當前單元評估哪些候選單元尺寸。編碼器可跳過對比(時間上毗鄰的單元之中的)最小單元尺寸小的任何候選單元尺寸的評估?;蛘?,編碼器可跳過對比(時間上毗鄰的單元之中的)最小單元尺寸小一個以下單元尺寸的任何候選單元尺寸的評估。當單元尺寸作為深度被跟蹤時,編碼器可確定時間上毗鄰的單元的深度之中的最大深度,并跳過對具有比該最大深度大的深度(或替換地,最大深度+1)的任何候選單元尺寸的評估。
或者,作為另一示例規(guī)則,編碼器確定時間上毗鄰的單元的單元尺寸之中的最大單元尺寸,并使用該最大單元尺寸來限制為當前單元評估哪些候選單元尺寸。編碼器可跳過對比(時間上毗鄰的單元之中的)最大單元尺寸大的任何候選單元尺寸的評估?;蛘撸幋a器可跳過對比(時間上毗鄰的單元之中的)最大單元尺寸大一個以上單元尺寸的任何候選單元尺寸的評估。當單元尺寸作為深度被跟蹤時,編碼器可確定時間上毗鄰的單元的深度之中的最小深度,并跳過對具有比該最小深度小的深度(或替換地,最小深度-1)的任何候選單元尺寸的評估。
圖7示出組織在各時間層中的視頻序列中的各圖片的示例(700)。時間層0包括顯示次序中的圖片0和16,并且時間層1包括顯示次序中的圖片8。時間層2包括顯示次序中的圖片4和12。時間層3包括顯示次序中的圖片2、6、10和14。最后,時間層4包括顯示次序中的圖片1、3、5、7、9、11、13和15。圖7中示出的編碼結構可例如在B圖片的編碼中被使用,以實現(xiàn)時間分級,其中I-圖片在時間層0中,P-圖片在時間層1中,且B-圖片在時間層2-4中。在該情況下,如果參考圖片關系被適當?shù)卦O置,則時間層4中的圖片可被丟棄,而不會干擾時間層0-3中的圖片的回放。或者,時間層3和4中的圖片可被丟棄,而不會干擾時間層0-2中的圖片的回放。
通常,越低時間層中的圖片用越小的量化步長尺寸(越高的質量)來編碼,并且越高時間層中的圖片用越大的量化步長尺寸(越低質量)來編碼。類似地,對于單元尺寸,越低時間層中的圖片通常用越小的單元來編碼,并且越高時間層中的圖片通常用越大的單元來編碼。
在對給定時間層中的圖片的當前單元進行編碼時,編碼器找出更低時間層中的時間上毗鄰圖片中的并置單元。更低時間層可以是次低時間層,或者它可以低若干時間層。編碼器在決定是否評估當前單元的候選單元尺寸時評估時間上毗鄰單元的單元尺寸。
圖8a和8b示出具有在確定是否跳過對當前圖片中的當前單元的候選單元尺寸的評估時考慮的單元尺寸的時間上毗鄰單元的示例。在圖8a和8b中,供拆分成一個或多個單元的當前區(qū)域(810)被評估。例如,在H.265/HEVC實現(xiàn)中,當前區(qū)域(810)為當前CTU,并且這些單元為CU。替換地,該區(qū)域是另一類型的區(qū)域,并且單元是另一類型的單元。顯示次序中的下一圖片中的并置區(qū)域(830)(例如,CTU)以及顯示次序中的前一圖片中的并置區(qū)域(820)(例如,CTU)包括時間上毗鄰當前區(qū)域(810)的當前單元的各單元(例如,CU)。在圖8a的示例中,并置區(qū)域(820)在先前編碼期間被拆分成多個單元(例如,CU)。
在圖8a和8b的示例中,編碼器考慮時間上毗鄰當前單元的各并置單元的單元尺寸。為了確定哪些單元被并置,編碼器考慮當前單元的左上位置。并置單元是另一圖片中包括該左上位置的單元。并置單元可具有與當前單元相同的尺寸,或者它可具有不同的尺寸。替換地,編碼器應用另一規(guī)則來確定當前單元的并置單元。
在圖8a中,當前區(qū)域(810)包括具有為64x64的尺寸的單個當前單元(811)。在評估當前單元(811)的候選單元尺寸時,編碼器考慮前一圖片中的并置區(qū)域(820)中的32x32并置單元(821)以及下一圖片中的并置區(qū)域(830)中的64x64并置單元(831)的單元尺寸。假設編碼器跳過對比并置單元(821,831)之中的最小單元尺寸(32x32)小的任何候選單元的評估。在該情況下,編碼器執(zhí)行對64x64當前單元(811)的評估。
圖8b示出在稍后階段的評估。在圖8b中,當前區(qū)域(810)已通過四叉樹分解被拆分成四個32x32單元,并且第三象限中的32x32單元已被進一步拆分成四個16x16單元。當前單元(812)具有為16x16的尺寸。在評估當前單元(812)的候選單元尺寸時,編碼器考慮前一圖片中的并置區(qū)域(820)中的32x32并置單元(822)以及下一圖片中的并置區(qū)域(830)中的64x64并置單元(831)的單元尺寸。假設編碼器跳過對比并置單元(822,831)之中的最小單元尺寸(32x32)小的任何候選單元的評估。在該情況下,編碼器跳過對16x16當前單元(812)的評估。有效地,當前單元尺寸一等于時間毗鄰單元之中的最小單元尺寸,編碼器就可停止評估進一步的拆分選項。
D.通常取決于毗鄰單元的單元尺寸跳過對候選單元尺寸的評估。
圖9示出用于對圖片進行編碼的通用技術(900),其中對圖片的單元的候選單元尺寸的評估取決于至少一個毗鄰單元的單元尺寸被選擇性地跳過。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可執(zhí)行技術(900)。
編碼器對圖片進行編碼(910)以產(chǎn)生經(jīng)編碼的數(shù)據(jù),編碼器輸出(920)該經(jīng)編碼的數(shù)據(jù)。作為編碼(910)的一部分,編碼器設置圖片的當前單元的單元尺寸。通過這么做,編碼器確定至少一個毗鄰單元的單元尺寸,并至少部分地基于(諸)毗鄰單元的(諸)單元尺寸來選擇性地跳過對當前單元的候選單元尺寸的評估。例如,當前單元和(諸)毗鄰單元是具有CU尺寸的CU(在H.265/HEVC實現(xiàn)中)。替換地,當前單元和(諸)毗鄰單元是具有其他單元尺寸的其他類型的單元。編碼器還可確定當前單元的當前單元尺寸,其中對候選單元尺寸的評估的跳過還取決于當前單元尺寸。例如,編碼器取決于將當前單元的當前單元尺寸與至少一個毗鄰單元的單元尺寸進行比較的結果,跳過對當前單元的候選單元尺寸的評估。
(諸)毗鄰單元可以是相對于該圖片的當前單元空間上毗鄰的單元。圖10示出用于為圖片的單元設置單元尺寸的示例技術(1000),其中對候選單元尺寸的評估取決于空間上毗鄰的單元的單元尺寸被選擇性地跳過。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1000)。圖10中示出的技術(1000)的許多階段與圖5中示出的技術(500)的階段相同,并且此處將不重復這樣的階段的描述。
為了確定至少一個空間上毗鄰的單元的單元尺寸,編碼器獲得(1010)在當前單元左邊的第一毗鄰單元的單元尺寸(在該左毗鄰單元可用的情況下)以及在當前單元上方的第二毗鄰單元的單元尺寸(在上單元可用的情況下)。編碼器隨后確定第一毗鄰單元的單元尺寸和第二毗鄰單元的單元尺寸之中的最大單元尺寸。
編碼器確定(1020)是否檢查當前單元尺寸,并且如果如此,則檢查(510)對處于當前單元尺寸的當前單元進行編碼的成本。否則,編碼器將當前單元直接拆分(530)成具有更小單元尺寸的多個新單元。例如,編碼器跳過對距至少一個毗鄰單元的單元尺寸(此處為第一和第二毗鄰單元之中的最大單元尺寸)多于閾值差異的任何候選單元尺寸(當前單元尺寸)的評估。在比較(1050)(a)對處于當前單元尺寸的當前單元進行編碼的成本(來自階段510)與(b)對處于更小單元尺寸的(經(jīng)拆分的)新單元進行編碼的聚集成本(來自階段540)時,對處于當前單元尺寸的當前單元進行編碼的成本可能不是可用的。否則,比較階段(1050)與參考圖5描述的相應階段(550)相同。
替換地,作為確定第一和第二毗鄰單元之中的最大單元尺寸的替換或附加,編碼器確定第一毗鄰單元的單元尺寸和第二毗鄰單元的單元尺寸之中的最小單元尺寸。編碼器可隨后使用該最小單元尺寸來限制評估當前單元的哪些候選單元尺寸,如章節(jié)V.B中所解釋的。
(諸)毗鄰單元也可以是相對于圖片的當前單元時間上毗鄰的單元(例如,在時間分層結構中較低的圖片之中時間上毗鄰的圖片的并置單元)。圖11是示出用于為圖片的單元設置單元尺寸的示例技術的流程圖,其中對候選單元尺寸的評估取決于時間上毗鄰的單元的單元尺寸被選擇性地跳過。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1100)。圖11中示出的技術(1100)的許多階段與圖5中示出的技術(500)的階段相同,并且此處將不重復這樣的階段的描述。
在確定(510)處于當前單元尺寸的當前單元進行編碼的成本后,為了確定至少一個時間上毗鄰的單元的單元尺寸,編碼器獲得(1110)一個或多個時間上毗鄰的單元中的每一者的單元尺寸。(諸)時間上毗鄰的單元可包括分別時間分層結構中較低的圖片之中的第一和第二時間上毗鄰的圖片中的第一和第二并置單元。編碼器隨后確定第一并置單元的單元尺寸和第二并置單元的單元尺寸之中的最小單元尺寸。
編碼器確定(1120)它在當前單元的時間鄰域中是否已達到該單元尺寸。如果如此,則編碼器終止拆分,并返回(560)當前單元的最佳單元尺寸和相應最佳編碼成本的組合。否則,編碼器檢查(530)是否進一步拆分當前單元。例如,編碼器跳過對小于至少一個毗鄰單元的單元尺寸(此處為第一和第二并置單元之中的最小單元尺寸)的任何候選單元尺寸的評估。
替換地,作為確定第一和第二并置單元之中的最小單元尺寸的替換或附加,編碼器確定第一并置單元的單元尺寸和第二并置單元的單元尺寸之中的最大單元尺寸。編碼器可隨后使用該最大單元尺寸來限制評估當前單元的哪些候選單元尺寸,如章節(jié)V.C中所解釋的。
編碼器在確定是否跳過對當前單元的候選單元尺寸的評估時可考慮空間上毗鄰的單元的單元尺寸并考慮時間上毗鄰的單元的單元尺寸。例如,編碼器可跳過對大于空間上毗鄰的單元的最大單元尺寸的任何候選單元尺寸的評估(參見圖10)并跳過對小于空間上毗鄰的單元的最小單元尺寸的任何候選單元尺寸的評估(參見圖11)。
VI.取決于跟蹤到的單元尺寸的使用跳過對候選單元尺寸的評估。
本章節(jié)呈現(xiàn)包括取決于前一圖片中對各單元尺寸的先前使用來選擇性地跳過對當前圖片的當前單元的候選單元尺寸的評估的編碼示例。在許多情況下,基于第一圖片中主要使用的(諸)單元尺寸,在另一圖片的編碼期間,編碼器可避免對不可能提升率失真性能的候選單元尺寸的評估,這趨于加速編碼。
A.使用跟蹤到的對單元尺寸的使用來選擇性地跳過對候選單元尺寸的評估的示例。
通常,編碼器使用圖片內(nèi)編碼單元來對視頻中的新內(nèi)容進行編碼。對于圖片中的新內(nèi)容,編碼器通常無法找出參考圖片中的良好匹配。同樣,為了實現(xiàn)更好的圖片內(nèi)預測,圖片內(nèi)編碼單元通常具有小的單元尺寸。使用圖片內(nèi)預測的小單元尺寸縮短了(在單元的邊緣處的)已知樣本值和(較遠離單元的邊緣的)未知樣本值之間的距離,這往往提升對自然視頻內(nèi)容或樣本值方面具有復雜變型的其他內(nèi)容的預測結果。另一方面,對于某些平滑內(nèi)容(例如,計算機生成的內(nèi)容),使用圖片內(nèi)編碼單元的大單元尺寸可提升總編碼效率。
在許多情況下,視頻序列周期性地包括圖片內(nèi)編碼的圖片,并且不同的圖片內(nèi)編碼的圖片被具有圖片間編碼的內(nèi)容和圖片內(nèi)編碼的內(nèi)容的混合的其他圖片隔開。通常,被最頻繁地用于圖片內(nèi)編碼的圖片中的各單元的一個或多個單元尺寸也可在后續(xù)圖片的圖片內(nèi)編碼的內(nèi)容中被最頻繁地使用。例如,如果圖片內(nèi)編碼的圖片的大多數(shù)單元具有為16x16或更小的單元尺寸,則后續(xù)圖片中的圖片內(nèi)編碼單元趨于具有16x16或更小的單元尺寸。另一方面,如果圖片內(nèi)編碼的圖片中的許多單元具有大單元尺寸,則后續(xù)圖片中的圖片內(nèi)編碼單元更可能具有大單元尺寸。基于圖片內(nèi)編碼的圖片中主要使用的(諸)單元尺寸,在對后續(xù)圖片的圖片內(nèi)編碼單元的編碼期間,編碼器可避免對不可能提升率失真性能的候選單元尺寸的評估。
更一般地,在許多情況下,第一圖片中被最頻繁地針對各單元使用的一個或多個單元尺寸也是在后續(xù)圖片中被最頻繁地使用的(諸)單元尺寸?;诘谝粓D片中主要使用的(諸)單元尺寸,在針對后續(xù)圖片的編碼期間,編碼器可避免對不可能提升率失真性能的候選單元尺寸的評估。
圖12示出確定第一圖片(1201)的閾值單元尺寸并使用其來限制另一圖片中的單元的單元尺寸的示例(1200)。在圖12中,第一圖片(1201)包括64x64單元、32x32單元和16x16單元的混合。編碼器確定處于其時第一圖片(1201)的閾值比例被達到的單元尺寸。閾值比例取決于實現(xiàn)(例如,為85%,90%,95%)。閾值比例可根據(jù)第一圖片(1201)的樣本值或對第一圖片(1201)的區(qū)域的某一其他測量來評估。在圖12的示例中,閾值比例為90%,超過第一圖片(1201)的閾值比例被32x32單元或16x16單元共同達到,即覆蓋第一圖片(1201)。由此,閾值單元尺寸為32x32。
第二圖片(1202)包括區(qū)域(1211、1212、1213),來自第一圖片(1201)的閾值單元尺寸(32x32)在這些區(qū)域(1211,1212,1213)內(nèi)限制單元尺寸。在區(qū)域(1211,1212,1213)內(nèi),編碼器評估處于或小于閾值單元尺寸的候選單元尺寸,但不評估更大的單元尺寸。在第二圖片(1202)的其他區(qū)域中,閾值單元尺寸不約束各單元的單元尺寸。替換地,閾值單元尺寸可約束第二圖片(1202)中的所有單元的單元尺寸。
作為另一示例,假設圖片內(nèi)編碼的圖片(第一圖片)是使用64x64單元、32x32單元、16x16單元和8x8單元的混合來編碼的。在圖片內(nèi)編碼的圖片被編碼后,編碼器確定該圖片的閾值單元尺寸。編碼器計算在對圖片內(nèi)編碼的圖片(第一圖片)進行編碼時使用的單元尺寸中的每一者的數(shù)目:n64x64個64x64單元、n32x32個32x32單元、n16x16個16x16單元和n8x8個8x8單元。編碼器隨后計算在該圖片的相應單元尺寸的單元中的樣本值的數(shù)目。(具體地,編碼器可考慮該圖片的一個分量平面(例如亮度平面)或者該圖片的多個分量平面。)64x64單元覆蓋n64x64*64*64個樣本值,32x32單元覆蓋n32x32*32*32個樣本值,16x16單元覆蓋n16x16*16*16個樣本值,并且8x8覆蓋n8x8*8*8個樣本值。圖片的樣本值的總數(shù)為寬度*高度樣本值。從最小單元尺寸開始,編碼器確定處于或小于其時該圖片的閾值比例t1被達到(即,被各單元的樣本值覆蓋)的單元尺寸。閾值比例t1取決于實現(xiàn)(例如,為90%)。例如,編碼器檢查是否n8x8*8*8>=t1*寬度*高度。如果如此,則閾值單元尺寸為8x8。否則,編碼器檢查是否n16x16*16*16+n8x8*8*8>=t1*寬度*高度。如果如此,則閾值單元尺寸為16x16。否則,編碼器檢查是否n32x32*32*32+n16x16*16*16+n8x8*8*8>=t1*寬度*高度。如果如此,則閾值單元尺寸為32x32。否則,閾值單元尺寸為64x64。在對以下圖片中的圖片內(nèi)編碼單元進行編碼時,編碼器可使用閾值單元尺寸來跳過對大于閾值單元尺寸的單元尺寸的評估。
或者,作為另一示例,假設第一圖片包括圖片內(nèi)編碼單元和圖片間編碼單元的混合。編碼器可使用先前段落中描述的方法(但使用圖片內(nèi)編碼單元中的總樣本的閾值比例t1,而非t1*寬度*高度)來確定第一圖片中的圖片內(nèi)編碼單元的閾值單元尺寸。隨后,在對以下圖片中的圖片內(nèi)編碼單元進行編碼時,編碼器可使用閾值單元尺寸來跳過對大于閾值單元尺寸的各單元尺寸的評估。
B.通常取決于跟蹤到的單元尺寸的使用跳過對候選單元尺寸的評估。
圖13示出用于使用第一圖片的閾值單元尺寸來限制另一圖片中的各單元的單元尺寸的通用技術(1300)。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1300)。
編碼器對多個圖片中的第一圖片進行編碼(1310)以產(chǎn)生第一圖片的經(jīng)編碼的數(shù)據(jù),編碼器隨后輸出(1330)該經(jīng)編碼的數(shù)據(jù)。同樣,編碼器確定(1320)第一圖片的閾值單元尺寸。閾值單元尺寸指示處于或低于其時第一圖片的閾值比例的內(nèi)容被達到的單元尺寸。閾值比例取決于實現(xiàn)。例如,閾值比例在80%和95%之間。當單元為CU時,閾值單元尺寸為閾值CU尺寸。
編碼器對多個圖片中的下一圖片進行編碼(1340)以產(chǎn)生下一圖片的經(jīng)編碼的數(shù)據(jù),并且編碼器輸出(1350)該經(jīng)編碼的數(shù)據(jù)。下一圖片按照編碼次序跟隨前一圖片(例如,第二圖片按照編碼次序跟隨第一圖片)。在對下一圖片進行編碼(1340)時,編碼器至少部分地基于第一圖片的閾值單元尺寸來限制下一圖片的至少一部分的單元尺寸。在下一圖片的單元為CU時,被限制的單元尺寸為CU尺寸。
出于確定(1320)閾值單元尺寸的目的,第一圖片的內(nèi)容可以是第一圖片的圖片內(nèi)編碼單元。例如,第一圖片完全是使用圖片內(nèi)編碼單元來編碼的,下一圖片至少部分是使用圖片間編碼單元來編碼的,并且下一圖片中的任何圖片內(nèi)編碼單元的單元尺寸被限制?;蛘?,作為另一示例,第一圖片部分是使用圖片內(nèi)編碼單元來編碼的,下一圖片至少部分是使用圖片間編碼單元來編碼的,并且下一圖片中的任何圖片內(nèi)編碼單元的單元尺寸被限制。替換地,出于確定(1320)閾值單元尺寸的目的,第一圖片的內(nèi)容可以是第一圖片的所有單元。
在輸出(1350)下一圖片的經(jīng)編碼的數(shù)據(jù)后,編碼器檢查(1360)是否繼續(xù)對下一圖片進行編碼。如果如此,則編碼器對另一圖片(例如,第三圖片、第四圖片等等)進行編碼(1340),從而至少部分地基于第一圖片的閾值單元尺寸來限制其他圖片的至少一部分的單元尺寸。
圖14示出用于設置圖片的單元的單元尺寸的示例技術(1400),其中來自另一圖片的閾值單元尺寸限制該單元尺寸。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1400)。圖14中示出的技術(1400)的許多階段與圖5中示出的技術(500)和/或圖10中示出的技術(1000)的階段相同,并且此處將不重復這樣的階段的描述。
編碼器獲得(1410)第一圖片的閾值單元尺寸。例如,閾值單元尺寸是在本章節(jié)中在早期描述的閾值單元尺寸。編碼器確定(1420)是否檢查當前單元尺寸,并且如果如此,則檢查(510)對處于當前單元尺寸的當前單元進行編碼的成本。否則,編碼器將當前單元直接拆分(530)成具有更小單元尺寸的多個新單元。例如,編碼器跳過對大于閾值單元尺寸的任何候選單元尺寸的評估。
VII.跳過對變換跳過模式的評估。
本章節(jié)呈現(xiàn)包括選擇性地跳過對變換跳過模式的評估的編碼示例。在許多情況下,基于測量到的第一圖片中變換跳過模式的使用率,在對另一圖片的編碼期間,在變換跳過模式不可能提升率失真性能時,編碼器可避免對變換跳過模式的評估,這趨于加速編碼。
A.使用跟蹤到的對變換跳過模式的使用來選擇性地跳過對變換跳過模式的評估的示例。
其中編碼器跳過單元的頻率變換并改為對樣本值進行量化和熵編碼的變換跳過模式在對屏幕內(nèi)容視頻或其他人工創(chuàng)建的內(nèi)容進行編碼時非常有用。另一方面,在對攝像機捕捉到的視頻進行編碼時,變換跳過模式較不可能提升編碼效率。
在許多情況下,視頻序列周期性地包括圖片內(nèi)編碼圖片,并且不同的圖片內(nèi)編碼圖片被具有圖片間編碼內(nèi)容和圖片內(nèi)編碼內(nèi)容的混合的其他圖片隔開?;趫D片內(nèi)編碼圖片中變換跳過模式的使用率,在對后續(xù)圖片進行編碼期間,在變換跳過模式不可能提升率失真性能時,編碼器可避免對變換跳過模式的評估。更一般地,在許多情況下,第一圖片中變換跳過模式的使用率也適用于后續(xù)圖片?;诟櫟降牡谝粓D片中變換跳過模式的使用率,在對后續(xù)圖片進行編碼期間,在變換跳過模式不可能提升率失真性能時,編碼器可避免對變換跳過模式的評估。
圖15示出使用針對第一圖片(1501)的變換跳過模式的使用率的測量來選擇性地限制另一圖片中變換跳過模式的使用率的示例(1500)。在圖15中,第一圖片(1501)包括用變換跳過模式編碼的單元(1511)和不是用變換跳過模式編碼的單元(其是第一圖片(1501)中的其余單元)的混合。編碼器測量第一圖片(1501)中變換跳過模式的使用率。變換跳過模式的使用率可根據(jù)第一圖片(1501)的樣本值或對第一圖片(1501)的區(qū)域的某一其他測量來評估。
第二圖片(1502)是用變換跳過模式來編碼的,該變換跳過模式取決于第一圖片(1501)中變換跳過模式的使用率相比于第一圖片(1501)的閾值比例被選擇性地禁用。閾值比例取決于實現(xiàn)(例如,1%,2%,5%)。在圖15的示例中,閾值比例為2%,并且多于第一圖片(1501)的閾值比例是使用變換跳過模式來編碼的。由此,在圖15的示例中,在對第二圖片(1502)進行編碼時,變換跳過模式被啟用,因為測量到的第一圖片(1501)中變換跳過模式的使用率大于閾值比例(2%)。
作為另一示例,假設圖片內(nèi)編碼圖片(第一圖片)是在變換跳過模式啟用的情況下被編碼的,從而它潛在地包括用變換跳過模式編碼的單元和不用變換跳過模式編碼的單元的混合。在圖片內(nèi)編碼圖片被編碼后,編碼器測量在該圖片中變換跳過模式的使用率。編碼器計算用變換跳過模式編碼的單元中的樣本值的數(shù)目。(具體地,編碼器可考慮該圖片的一個分量平面(例如亮度平面)或者該圖片的多個分量平面。)圖片的樣本值的總數(shù)為寬度*高度個樣本值。編碼器確定用變換跳過模式編碼的單元中的樣本值的數(shù)目是否多于該圖片的樣本值的閾值比例t2。在對接下來的圖片進行編碼時,如果(第一圖片中)用變換跳過模式編碼的單元中的樣本值的數(shù)目小于第一圖片的樣本值的閾值比例t2,則編碼器可禁用變換跳過模式。否則,如果變換跳過模式被啟用,則接下來的圖片的單元可用變換跳過模式或不用變換跳過模式(即,使用頻率變換)來編碼。
或者,作為另一示例,假設第一圖片包括圖片內(nèi)編碼單元和圖片間編碼單元的混合。編碼器可在使用先前段落中描述的方法對第一圖片進行編碼時確定變換跳過模式的使用率。隨后,在對接下來的圖片進行編碼時,編碼器可使用(針對第一圖片)測量到的變換跳過模式的使用率來選擇性地跳過對變換跳過模式的評估。
B.通常取決于跟蹤到的變換跳過模式的使用率來跳過對變換跳過模式的評估。
圖16a和16b示出用于使用針對第一圖片的變換跳過模式使用率的測量來限制另一圖片中變換跳過模式的使用率。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1600)。
編碼器對多個圖片中的第一圖片進行編碼(1610)以產(chǎn)生第一圖片的經(jīng)編碼的數(shù)據(jù),編碼器隨后輸出(1630)該經(jīng)編碼的數(shù)據(jù)。同樣,編碼器測量(1620)第一圖片的變換跳過模式的使用率。測量到的變換跳過模式的使用率指示第一圖片中使用變換跳過模式編碼的內(nèi)容的比例。
編碼器對多個圖片中的下一圖片進行編碼(1640)以產(chǎn)生下一圖片的經(jīng)編碼的數(shù)據(jù),并且編碼器輸出(1650)該經(jīng)編碼的數(shù)據(jù)。下一圖片按照編碼次序跟隨前一圖片(例如,第二圖片按照編碼次序跟隨第一圖片)。在對下一圖片進行編碼(1640)時,編碼器至少部分地基于第一圖片的對變換跳過模式的使用率相對于閾值比例來選擇性地對下一圖片禁用變換跳過模式。閾值比例取決于實現(xiàn)。例如,閾值比例在1%和3%之間。
例如,如圖16b的技術(1601)中示出的,編碼器將針對第一圖片的變換跳過模式的使用率與閾值比例進行比較(1641)。如果第一圖片的對變換跳過模式的使用率小于閾值比例,則編碼器對下一圖片禁用(1642)變換跳過模式并對下一圖片進行編碼(1643)。
否則(針對第一圖片的變換跳過模式的使用率大于閾值比例),則編碼器對下一圖片進行編碼(1643)。通過這么做,編碼器為下一圖片的至少一些單元評估變換跳過模式和變換模式兩者。
出于測量(1620)變換跳過模式的使用率的目的,第一圖片可完全是使用圖片內(nèi)編碼單元來編碼的,并且下一圖片可至少部分是使用圖片間編碼單元來編碼的。或者,作為另一示例,第一圖片可部分是使用圖片內(nèi)編碼單元來編碼的,并且下一圖片可至少部分是使用圖片間編碼單元來編碼的。
返回圖16a,在輸出(1650)下一圖片的經(jīng)編碼的數(shù)據(jù)后,編碼器檢查(1660)是否繼續(xù)對下一圖片進行編碼。如果如此,則編碼器對另一圖片(例如,第三圖片、第四圖片等等)進行編碼(1640),從而至少部分地基于針對第一圖片的變換跳過模式的使用率來對下一圖片選擇性地禁用變換跳過模式。
VIII.跳過對針對上下文運動模式的候選MV的全面的評估。
本章節(jié)呈現(xiàn)包括選擇性地跳過對針對上下文運動模式的候選運動向量(“MV”)的全面評估的編碼示例。在許多情況下,在當前單元的編碼期間,在那些候選MV不可能提升率失真性能時,編碼器可避免對針對上下文運動模式的候選MV的全面評估,這趨于加速編碼。
A.選擇性地跳過對上下文運動模式的一些候選MV的全面評估的示例。
在上下文運動模式中,當前單元的候選MV是從空間上相鄰的單元、時間相鄰單元和/或規(guī)則的MV中推導出的。在運動估計期間,編碼器可評估針對上下文運動模式的候選MV中的一者或多者。如果針對上下文運動模式的候選MV是為當前單元選擇的,則編碼器可信號化指示上下文運動模式被用于當前單元的信息以及標識哪個候選MV被用于當前單元的信息。相比于將MV信息信號化為相對于預測MV的差別,這樣的信號化可非常高效。在解碼期間,解碼器可為當前單元推導出上下文運動模式的相同候選MV,隨后選擇通過經(jīng)信號化的信息標識出的候選MV。H.265/HEVC標準中的合并模式是上下文運動模式的示例。更一般地,上下文運動模式涉及多個推導出MV之間的競爭以及對多個推導出MV之一的選擇。
在編碼期間,編碼器可計算當前單元的預測值和當前單元的原始樣本值之間的差異。這些差異定義當前單元的預測殘量或殘量。出于頻率變換、量化或熵編碼的目的,殘量可被拆分成更小的單元?;蛘撸瑢埩康木幋a可被跳過。具體地,如果殘量的樣本值全部為零或大部分為零或者如果殘量的經(jīng)量化的變換系數(shù)全部為零或大部分為零,則編碼器可跳過對殘量的編碼,這或者為了通過忽略殘量來降低比特率(即使殘量具有大量的值),或者為了通過忽略該殘量來降低編碼復雜性(以及解碼復雜性)(即使殘量具有大量的值),或者為了某個其他原因。在大多數(shù)編解碼器標準和格式中,編碼器可高效地信號化對于某單元跳過還是不跳過殘量編碼。在H.265/HEVC標準中,例如CU的標志指示對于該CU是否已跳過了殘量編碼。(在H.265/HEVC標準中,“經(jīng)跳過的”CU也被定義為具有2Nx2N分割模式。也就是說,除了缺少殘量數(shù)據(jù)外,CU還具有單個PU,并且沒有出于運動補償?shù)哪康亩徊鸱殖筛〉腜U。)基于經(jīng)信號化的信息,解碼器可確定對于某單元是否跳過殘量編碼。
編碼器可并發(fā)地評估針對上下文運動模式和殘量編碼的選項,以便在考慮殘量編碼的情況下,標識上下文運動模式的提供最佳總性能的候選MV??紤]評估針對量化殘量的選項的操作、重構這些殘量的操作以及評估重構后的質量的操作,評估針對殘量編碼的選項可能在計算上是復雜的并且是耗時的。為了加速編碼,編碼器可選擇性地跳過對針對上下文運動模式的一些候選MV的殘量編碼選項的評估。
圖17a和17b是示出在殘量編碼跳過模式開啟或關閉的情況下為上下文運動模式考慮的候選MV的示例的視圖。圖17a示出針對當前單元(1711)的針對上下文運動模式的候選MV。候選MV包括空間上毗鄰的單元(1721-1725)的MV,其具有相對于當前單元(1711)的左上位置、右上位置或左下位置定義的位置。也就是說,兩個空間上毗鄰的單元(1722、1721)被定義為包括分別在當前單元(1711)的右上位置上方的位置和右上方的位置的單元。另一空間上毗鄰的單元(1723)被定義為包括在當前單元(1711)的左上位置上方和左邊的位置的單元。兩個其他空間上毗鄰的單元(1724、1725)被定義為包括分別在當前單元(1711)的左下位置左邊的位置和左下方的位置的單元。候選MV還包括另一圖片中的并置單元(1731)的MV。
在編碼期間,編碼器在殘量編碼跳過模式開啟的情況下評估針對上下文運動模式的候選MV(包括來自空間上毗鄰的單元1721-1725的MV和來自時間上毗鄰的單元(1731)的MV)。也就是說,編碼器在殘量編碼被跳過的情況下評估相應的候選MV,并且在H.265/HEVC實現(xiàn)中,用2Nx2N的分割模式來進行該評估。由于殘量編碼被跳過,編碼器跳過對針對殘量的編碼選項的評估。相反,編碼器相對快速地計算針對上下文運動模式的相應候選MV的適用性的度量。該度量可以是考慮與信號化針對上下文運動模式的候選MV信息相關聯(lián)的比特率的率失真成本、對預測殘量的比特率的估計以及與預測誤差相關聯(lián)的失真?;蛘?,該度量可以是某個其他類型的測量。
編碼器根據(jù)性能度量的計算值對針對上下文運動模式的候選MV進行排序。編碼器標識針對上下文運動模式的候選MV的子集。該子集可包括在殘量編碼跳過模式開啟的情況下具有最佳性能的單個候選MV、在殘量編碼跳過模式開啟的情況下的前兩個候選MV、或針對上下文運動模式的某個其他數(shù)目的候選MV。在圖17b中,針對上下文運動模式的候選MV的子集包括兩個空間上毗鄰的單元(1722、1723)的MV。
對于針對上下文運動模式的候選MV的子集,編碼器在殘量編碼跳過模式關閉的情況下評估(諸)候選MV。也就是說,當編碼器評估該子集中的候選MV時,編碼器評估針對殘量編碼的選項。結果,在使用候選MV的運動補償后,可為單元編碼殘量的至少一些值。由于針對殘量編碼的選項被評估,并且殘量被重構以評估質量,該評估過程更耗時。然而,編碼器避免了這樣的對針對上下文運動模式的候選MV中在該子集外部的至少一些候選MV的殘量編碼的選項的耗時的評估。
為上下文運動模式評估的候選MV的數(shù)目取決于實現(xiàn)。例如,編碼器評估圖17a中示出的候選MV中的3個、4個、5個、6個或某個其他數(shù)目的候選MV。替換地,編碼器評估其他和/或不同的針對上下文運動模式的候選MV。例如,如果空間上毗鄰的單元或時間上毗鄰的單元的MV之一缺失,或者如果相同的候選MV被排除考慮,則編碼器評估根據(jù)規(guī)則推導出的候選MV。
編碼器還可評估當前單元(1711)的其他編碼選項。例如,在評估針對上下文運動模式的候選MV后,編碼器評估當前單元的其他MV。對于H.265/HEVC實現(xiàn),編碼器可評估除2Nx2N以外的分割模式。
B.通常選擇性地跳過對上下文運動模式的一些候選MV的全面評估。
圖18示出用于對圖片進行編碼的通用技術(1800),包括在殘量編碼跳過模式關閉的情況下選擇性地跳過對針對上下文運動模式的候選MV的評估。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1800)。
編碼器對圖片進行編碼(1810)以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出(1820)該經(jīng)編碼的數(shù)據(jù)。作為編碼(1810)的一部分,在對圖片的單元(例如,CU)進行編碼時,編碼器在殘量編碼跳過模式開啟的情況下評估針對上下文運動模式的多個候選MV中的每一者。例如,針對上下文運動模式的多個候選MV包括各自與該圖片中的一空間上毗鄰的單元相關聯(lián)的一個或多個MV。圖17a示出空間上毗鄰的單元的示例。針對上下文運動模式的候選MV可包括各自與另一圖片中的一時間上毗鄰的單元相關聯(lián)的一個或多個MV。圖17a還示出了時間上毗鄰的單元的示例。針對上下文運動模式的候選MV可進一步包括各自依據(jù)規(guī)則推導出的一個或多個MV。替換地,針對上下文運動模式的候選MV包括其他和/或附加MV。在殘量編碼跳過模式開啟的情況下,單元缺少殘量數(shù)據(jù),因此評估相對快速。在H.265/HEVC實現(xiàn)中,在殘量編碼跳過模式開啟的情況下,該單元是具有單個PU的CU(2Nx2N分割模式)。
基于(在殘量編碼跳過模式開啟的情況下對針對上下文運動模式的候選MV的)那個評估的結果,編碼器在殘量編碼跳過模式關閉的情況下僅評估針對上下文運動模式的多個候選MV的子集。例如,該子集包括上下文運動模式的各候選MV中的單個候選MV。或者,該子集包括上下文運動模式的各候選MV中的兩個候選MV?;蛘撸撟蛹ㄉ舷挛倪\動模式的各候選MV中的更多個候選MV。當在殘量編碼跳過模式關閉的情況下評估了針對上下文運動模式的候選MV的子集后,編碼器可評估該單元的其他編碼選項(例如,在殘量編碼跳過模式開啟或關閉的情況下,評估不同的MV、不同的分割模式)。
更詳細的,圖19示出用于對單元進行編碼的示例技術(1900),包括在殘量編碼跳過模式關閉的情況下選擇性地跳過對針對上下文運動模式的候選MV的評估。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(1900)。
編碼器在殘量編碼跳過模式開啟的情況下使用針對上下文運動模式的多個候選MV中的每一者來測量(1910)對單元進行編碼的結果作為第一結果。該單元例如是具有為64x64、32x32、16x16或8x8的尺寸的CU或另一類型的單元。由此,編碼器評估針對上下文運動模式的候選MV,而沒有編碼殘量。
基于第一結果,編碼器標識(1920)針對上下文運動模式的多個候選MV的子集。例如,根據(jù)某個諸如率失真成本之類的準則,編碼器標識上下文運動模式的前x個候選MV,其中x取決于實現(xiàn)(例如,x為1、2或某個其他數(shù)字)。編碼器在殘量編碼跳過模式關閉的情況下(例如,評估殘量的編碼選項)使用候選MV的子集中的每一者來測量(1930)對該單元進行編碼的第二結果。任選地,編碼器還可評估(1940)對單元進行編碼的其他選項(例如,在殘量編碼跳過模式開啟或關閉的情況下,評估不同的MV、不同的分割模式)。
編碼器至少部分地基于第一結果和第二結果來確定(1950)如何對該單元進行編碼。例如,編碼器選擇為該單元提供最佳性能的編碼選項。隨后,編碼器對該單元進行編碼(1960)。由此,該單元可在殘量編碼跳過模式開啟的情況下使用針對上下文運動模式的候選MV之一、在殘量編碼跳過模式關閉的情況下使用針對上下文運動模式的候選MV子集中的一個候選MV、或者使用某個其他模式被編碼。
IX.跳過對RDOQ的評估。
本章節(jié)呈現(xiàn)包括取決于由編碼器評估的一個或多個條件來選擇性地應用率失真優(yōu)化量化(“RDOQ”)或其他量化的編碼的示例。在許多情況下,在當前單元的編碼期間,當RDOQ不可能提升率失真性能時,編碼器可避免對RDOQ的使用,這趨于加速編碼。
A.選擇性地應用RDOQ的示例。
對于RDOQ,編碼器為每一系數(shù)設置最優(yōu)量化級別,從而基于率失真效率適應性地調整系數(shù)值。RDOQ趨于非常耗時,但可提供極好的率失真效率。
其他形式的量化應用起來更簡單。例如,在一種簡單形式的量化中,編碼器通過確定經(jīng)量化的系數(shù)Q(x)=sign(x)×floor(abs(x)÷s+f)來量化系數(shù)x,其中Q(x)表示系數(shù)x的經(jīng)量化的版本,函數(shù)sign(n)返回輸入n的符號,函數(shù)abs(n)返回輸入n的絕對值,函數(shù)floor(n)返回不大于輸入n的最大整數(shù),÷運算符是除法運算符(但不是整除運算符),s是量化步長尺寸(其取決于幀、單元、分量塊等的量化參數(shù)(“QP”)集合),并且f是控制四舍五入的偏移。四舍五入控制值f取決于實現(xiàn)。如果f=0,則經(jīng)量化的系數(shù)朝向0四舍五入,這趨于導致較多為0值的經(jīng)量化的系數(shù),因為較多的低值被量化為0而非1。如果f=1/2,則經(jīng)量化的系數(shù)被四舍五入為最接近的整數(shù),這趨于導致較少為0值的經(jīng)量化的系數(shù)。通常,f的值在范圍[0,1/2]中。f的值可取決于圖片類型或分量平面而不同。例如,在對系數(shù)的量化期間,對于圖片內(nèi)編碼的圖片而言f=1/3,并且對于圖片間編碼的圖片而言f=1/6。
當RDOQ更可能提升率失真性能時,編碼器可選擇性地應用RDOQ,但否則應用計算上更簡單的某種其他形式的量化(例如,如前一段落中描述的)。編碼器在確定應用RDOQ還是另一形式的量化時可評估若干條件中的任一者。
例如,對于第一條件,編碼器考慮其變換系數(shù)被量化的單元的單元尺寸。如果該單元小于閾值單元尺寸,則編碼器將RDOQ應用于該單元的變換系數(shù)。否則,編碼器將其他更簡單形式的量化應用于該單元的變換系數(shù)。其尺寸被評估的單元可以是CU、TU或其他類型的單元。例如,閾值單元尺寸為32x32。編碼器在單元尺寸為32x32或者更高的情況下跳過RDOQ,但在單元尺寸為16x16或更低的情況下應用RDOQ。替換地,閾值單元尺寸具有某個其他值。
作為另一示例,對于第二條件,編碼器考慮其中變換系數(shù)被量化的圖片的圖片次序。編碼器每n個圖片地應用一次RDOQ,其中n的值取決于實現(xiàn)。否則,編碼器應用其他更簡單形式的量化。n的值可以為4個、8個、16個或某個其他數(shù)目的圖片。由n所反應的時段可對應于時間層(例如,時間層0)或圖片層(例如,圖片內(nèi)編碼的圖片)。當圖片的次序被用圖片次序計數(shù)(“POC”)值指示出時,編碼器可檢查是否POC%n==0。如果如此,則編碼器將RDOQ應用于圖片中的各單元的變換系數(shù)。否則,編碼器將對圖片中的各單元的變換系數(shù)執(zhí)行其他更簡單形式的量化。
作為另一示例,對于第三條件,編碼器預處理圖片的一個單元或圖片的多個單元以確定是否應用RDOQ。該預處理可包括例如按與如以上所解釋的公式Q(x)=sign(x)×floor(abs(x)÷s+f)一致的方式將簡單形式的量化應用于變換系數(shù)。對于這樣的預處理,四舍五入控制值f可被設為趨于保留非零值系數(shù)的值。例如,對于亮度分量的系數(shù)的預處理而言f=1/2,且對于色度分量的系數(shù)的預處理而言f=1/3。編碼器隨后確定變換系數(shù)是否包括大量的值。例如,編碼器計算經(jīng)量化的變換系數(shù)的絕對值之和。如果這些系數(shù)的絕對值之和高于閾值,則編碼器在對這些系數(shù)進行編碼時應用RDOQ。否則,RDOQ被跳過,并且編碼器在對這些系數(shù)進行編碼時應用其他更簡單形式的量化。如果閾值為0,則具有非零變換系數(shù)的任何單元(在預處理/簡單量化后)使用RDOQ被量化。替換地,閾值可具有更高的值,或者編碼器可使用關于變換系數(shù)的重要性的不同測量。替換地,預處理可包括用于評估其中的圖片或(諸)單元的其他操作。
B.通常選擇性地應用RDOQ
圖20a示出用于在編碼期間選擇性地使用RDOQ的通用技術(2000)。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(2000)。
編碼器對圖片進行編碼(2010)以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出(2020)該經(jīng)編碼的數(shù)據(jù)。作為編碼(2010)的一部分,編碼器評估一個或多個條件。(諸)經(jīng)評估的條件可包括:(1)圖片的單元的單元尺寸(例如,CU的CU尺寸、TU的TU尺寸);(2)圖片的POC;和/或(3)預處理的結果(例如,應用簡單量化的結果)。替換地,(諸)經(jīng)評估的條件包括其它和/或附加條件。
取決于該評估的結果,編碼器選擇性地應用RDOQ或其他量化。例如,如果圖片的單元的單元尺寸小于閾值單元尺寸,則應用RDOQ,但是如果該單元的單元尺寸大于閾值單元尺寸,則應用其他量化。通過跳過針對大單元尺寸的RDOQ,編碼器可通過在RDOQ不太可能提升編碼效率時省略RDOQ來加速編碼。或者,作為另一示例,取決于圖片的POC,在視頻序列的各圖片之間周期性地應用RDOQ。通過周期性地應用RDOQ,編碼器可通過在RDOQ最可能有利時(例如,對將成為運動補償?shù)膮⒖紙D片的圖片)應用RDOQ來加速編碼?;蛘撸鳛榱硪皇纠?,RDOQ僅在預處理的結果指示存在閾值活動量的情況下才被應用。例如,預處理包括對圖片的單元的系數(shù)應用簡單量化,并且閾值活動量為至少一個非零系數(shù)。通過這種方式,在編碼期間,當RDOQ不太可能提升率失真性能時,編碼器可避免對RDOQ的使用,這趨于加速編碼。通過在RDOQ不太可能提升率失真效率時選擇性地省略RDOQ,量化快得多,這可顯著地降低總編碼時間,而對編碼效率沒有太多懲罰。
圖20b示出用于在編碼期間選擇性地使用RDOQ的示例技術(2001)。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(2001)。
編碼器對圖片的單元進行預處理(2011),例如對該單元的變換系數(shù)執(zhí)行簡單量化。編碼器決定(2012)是否對該單元的變換系數(shù)使用RDOQ,并隨后對該單元的變換系數(shù)使用(2013)RDOQ或使用(2014)其他量化。例如,編碼器計算經(jīng)量化的變換系數(shù)的絕對值之和,隨后將該和與閾值(諸如零)進行比較。如果絕對值之和高于該閾值,則編碼器在對這些系數(shù)進行編碼時使用(2013)RDOQ。否則,RDOQ被跳過,并且編碼器在對這些系數(shù)進行編碼時使用(2014)其他更簡單形式的量化。例如,編碼器按與如上所述的公式Q(x)=sign(x)×floor(abs(x)÷s+f)一致的方式來量化系數(shù)。
替換地,閾值可具有更高的值,或者編碼器可使用關于變換系數(shù)的重要性的不同測量。
X.跳過對是否為了變換將單元拆分成更小的單元的評估。
本章節(jié)呈現(xiàn)包括選擇性地跳過對是否出于頻率變換的目的將一單元(例如,TU)拆分成更小的單元的評估的編碼的示例。在許多情況下,在當前單元的編碼期間,當拆分不太可能提升率失真性能時,編碼器可避免拆分當前單元,這趨于加速編碼。
A.變換拆分評估的選擇性跳過的示例。
圖21示出針對殘量四叉樹(“RQT”)的示例組織(2101、…、2108),這些示例組織在殘量值塊如何被組織以用于頻率變換方面不同。RQT的許多其他可能的組織沒有被示出。在RQT中,塊對應于單元(例如,TU)中的塊。一般來說,給定單元中的各塊是使用同一模式來拆分的(即色度塊被拆分,如果可以的話,就像相應的亮度塊那樣)。
在一些方法中,為了提升率失真效率,編碼器檢查單元的每一可能變換尺寸。例如,編碼器對單元的變換尺寸的可能組合使用全遞歸式評估,其一般跟隨圖5所示的評估方法,但是評估變換尺寸。開始,編碼器確定對具有當前變換尺寸的當前單元進行編碼的成本。例如,根據(jù)H.265/HEVC標準,當前單元為CU。替換地,單元為另一類型的單元。當前變換尺寸為32x32、16x16、8x8、4x4或某一其他變換尺寸。該成本可使用任何可用度量根據(jù)速率成本和/或失真成本來測量,并且可以是估計值或取決于實際編碼的結果。
編碼器檢查是否將當前單元拆分成具有更小變換尺寸的多個更小的單元(例如,根據(jù)四叉樹分解,為當前單元的四叉樹)。編碼器可檢查當前單元是否已達到最小變換尺寸,并且如果為否,則進一步拆分當前單元。如果當前單元沒有被拆分,則編碼器返回當前變換尺寸和對處于當前變換尺寸的當前單元進行編碼的成本(作為針對當前單元的最佳變換尺寸和相應最佳成本的組合)。
否則,如果當前單元將被拆分,則編碼器將當前單元拆分成具有更小變換尺寸的多個新單元,并為具有更小變換尺寸的新單元中的每一者調用評估例程。在評估例程中,具有更小變換尺寸的新單元被類似地評估,其中針對該新單元的最佳變換尺寸和相應最佳成本的組合被返回。
隨后,當對具有更小變換尺寸的新單元的評估的結果已被返回時,編碼器比較(a)對處于當前變換尺寸的當前單元進行編碼的成本與(b)對處于更小變換尺寸的(經(jīng)拆分的)新單元進行編碼的聚集成本。從這兩個選項中,編碼器返回針對當前單元的最佳變換尺寸和相應的最佳成本的組合—即具有更小編碼成本的一個或多個變換尺寸以及該更小編碼成本的值。通過這種方式,編碼器可窮盡地為當前單元內(nèi)的更小單元評估變換尺寸的不同組合。例如,編碼器可確定對32x32TU進行編碼的成本,隨后將該32x32TU拆分成四個16x16TU。對于此四個16x16TU中的每一者,編碼器可確定對該16x16TU進行編碼的成本,隨后將該16x16TU拆分成四個8x8TU。這會繼續(xù),直到編碼器達到具有最小TU尺寸(例如,4x4)的TU,該TU不被進一步拆分。在那個時間點,編碼器將對處于最小TU尺寸的四個TU(例如,四個4x4TU)進行編碼的聚集成本與對包括那四個TU的TU(例如,具有8x8變換的8x8TU)進行編碼的成本進行比較。編碼器返回具有該更小編碼成本的(諸)變換尺寸。對于8x8TU,例如,(諸)變換尺寸的最佳組合可以為一8x8TU或四個4x4TU。類似地,對于16x16TU,(諸)變換尺寸的最佳組合可以為一16x16TU、四個8x8TU、三個8x8TU以及一8x8象限中的四個4x4TU、兩個8x8象限中的2個8x8TU和8個4x4TU、三個8x8象限中的1個8x8TU和12個4x4TU或者16個4x4TU。對于32x32TU,(諸)變換尺寸的最佳組合可以為一32x32TU、四個16x16TU或涉及如上所述那樣拆分的16x16TU中的一者或多者。對針對變換尺寸的選項的全遞歸式評估可能是耗時且計算上密集的。
為了加速編碼過程,編碼器可取決于由編碼器評估的一個或多個條件跳過對一些變換尺寸的評估。例如,編碼器考慮在當前變換尺寸處當前單元的經(jīng)量化的變換系數(shù)是否全部為零。如果如此,則更小的變換尺寸不太可能提升編碼效率,并且為當前單元終止評估更小變換尺寸的過程。相反,如果在當前變換尺寸處存在至少一個非零變換系數(shù),則使用更小的變換尺寸可能提升編碼效率,因此編碼器評估用于對用更小的變換尺寸對當前單元進行編碼的選項。替換地,編碼器在決定是否跳過對更小變換尺寸的評估時考慮另一條件(例如,經(jīng)量化的變換系數(shù)的非零值的幅度、預測殘量的值的幅度、預測殘量的值的空間變化)。編碼器可針對當前單元的所有分量塊檢查該條件?;蛘?,編碼器可針對當前單元的僅一個分量塊(例如,亮度塊)檢查該條件。
B.通常跳過對變換拆分選項的評估。
圖22示出用于對圖片進行編碼的通用技術(2200),包括選擇性地跳過對是否將單元拆分成具有更小變換尺寸的多個單元的評估。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(2200)。
編碼器對圖片進行編碼(2210)以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出(2220)該經(jīng)編碼的數(shù)據(jù)。作為編碼(2210)的一部分,編碼器為圖片的單元(例如,在H.265/HEVC實現(xiàn)中為TU)設置變換尺寸或變換尺寸的組合。通過這樣做,編碼器評估當前變換尺寸處的條件。例如,該條件是該單元在當前變換尺寸處是否具有任何非零值系數(shù)。編碼器可僅對該單元的亮度塊檢查該條件,或者編碼器可對該單元的亮度塊和色度塊檢查該條件。替換地,編碼器檢查另一條件。取決于該條件的評估的結果,編碼器選擇性地跳過對是否將單元從當前變換尺寸拆分為具有更小變換尺寸的多個單元的評估。通過這種方式,在編碼期間,當這樣的拆分不太可能提升率失真性能時,編碼器可避免為了頻率變換將該單元拆分成更小的單元,這趨于加速編碼。
XI.選擇性地跳過對候選分割模式的全面評估。
本章節(jié)呈現(xiàn)包括選擇性地跳過對用于運動補償?shù)暮蜻x分割模式的全面評估的編碼的示例。在許多情況下,在當前單元的編碼期間,編碼器可避免對針對不太可能提升率失真性能的候選分割模式的殘量編碼的選項的評估,這趨于加速編碼。
A.候選分割模式的全面評估的選擇性跳過的示例。
圖23示出針對使用運動補償編碼的單元的示例分割模式(2300)。示例分割模式(2300)包括2Nx2N、Nx2N、2NxN、NxN、nLx2N、nRx2N、2NxnU和2NxnD模式。當單元具有一個分割(即所謂的2Nx2N分割模式)時,該分割和單元是同延的。當單元具有四個分割(即所謂的NxN分割模式)時,每一分割覆蓋該單元的一象限。當單元具有兩個分割時,這兩個分割可按以下各模式中的任一種來配置:上半部和下半部(即所謂的2NxN分割模式)、左半部和右半部(即所謂的Nx2N分割模式)、左邊的四分之一和其余部分(即所謂的nLx2N分割模式)、右邊的四分之一和其余部分(即所謂的nRx2N分割模式)、頂部的四分之一和其余部分(即所謂的2NxnU分割模式)或底部的四分之一和其余部分(即所謂的2NxnD分割模式)。例如,在H.265/HEVC實現(xiàn)中,16x16單元可具有單個16x16分割(2Nx2N)、四個8x8分割(NxN)(當16x16為最小允許CU尺寸時)、兩個16x8分割(2NxN)、兩個8x16分割(Nx2N)、一4x16分割和12x16分割(nLx2N)、一12x16分割和4x16分割(nRx2N)、一16x4分割和16x12分割(2NxnU)或一16x12分割和16x4分割(2NxnD)。在一些實現(xiàn)中,對于一些單元尺寸(例如,8x8單元),NxN分割模式不被允許,并且不均勻的分割模式(nLx2N、nRx2N、2NxnU和2NxnD)不被允許。
在一些方法中,為了提升率失真效率,編碼器在對單元進行編碼時檢查每一可能分割尺寸。對于給定分割模式,編碼器為該單元的(諸)分割執(zhí)行運動補償、確定預測殘量、對預測殘量進行編碼、重構預測殘量、以及使用率失真度量或其他度量評估該編碼的結果。具體地,評估針對殘量編碼的選項可能是非常耗時的。
為了加速編碼過程,編碼器可跳過針對一些分割模式的殘量編碼(包括對針對殘量編碼的選項的評估和對殘量值的重構,以評估質量)。編碼器跟蹤針對各分割模式的運動補償預測的質量,并且它使用所跟蹤的預測質量來選擇性地跳過對針對較不可能提升編碼效率的那些分割模式的殘量編碼的全面評估。編碼器可測量運動補償預測的預測質量作為運動補償預測之后的預測誤差的幅度(例如,各殘量的值的絕對值之和)或使用某一其他測量。
例如,編碼器執(zhí)行針對第一分割模式的運動估計、測量運動補償預測的質量、以及確定預測殘量。編碼器執(zhí)行殘量編碼和重構,隨后測量使用第一分割模式對單元進行編碼的總成本。該總成本可包括比特率成本和/或失真成本。變量total_costbest(總_成本最佳)跟蹤到目前為止的任何分割模式的最佳總成本。變量pred_qualitybest(預測_質量最佳)跟蹤到目前為止的具有最佳總成本的分割模式的預測質量。最初,第一分割模式的總成本為到目前為止的最佳總成本(total_costbest),并且第一分割模式的預測質量為到目前為止的最佳預測質量(pred_qualitybest)。
編碼器隨后轉而評估其他分割模式。對于給定分割模式,編碼器執(zhí)行運動估計,并測量運動補償預測的質量。如果運動補償預測的質量比閾值預測質量差(這取決于pred_qualitybest,如下一段落中解釋的),編碼器跳過殘量編碼并通過評估下一分割模式來繼續(xù)。否則(對給定分割模式的運動補償預測的質量比閾值預測質量好),則編碼器為給定分割模式執(zhí)行殘量編碼和重構,隨后測量使用給定分割模式對單元進行編碼的總成本。如果使用給定分割模式對該單元進行編碼的總成本比到目前為止的最佳總成本(total_costbest)好,則編碼器將該最佳總成本(total_costbest)更新為使用給定分割模式對該單元進行編碼的總成本,并且編碼器將最佳預測質量(pred_qualitybest)更新為該單元在使用給定分割模式來編碼時的預測質量。在一些場景中,選擇性地跳過針對低效分割模式的殘量編碼可顯著地加速編碼。
閾值預測質量基于到目前為止已評估的分割模式中已產(chǎn)生最佳總編碼成本的分割模式的預測質量(pred_qualitybest)。例如,閾值預測質量為t3*pred_qualitybest,其中t3為取決于實現(xiàn)的閾值比例。例如,(當較低的預測質量值指示較好的質量,且較高的預測質量值指示較差的質量時)閾值比例為105%、110%或高于100%的某一其他值。
B.通常跳過對候選分割模式的全面評估。
圖24示出用于對圖片進行編碼的通用技術(2400),包括選擇性地跳過對針對用給定分割模式進行編碼的殘量編碼的評估。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(2400)。
編碼器對圖片進行編碼(2410)以產(chǎn)生經(jīng)編碼的數(shù)據(jù),隨后輸出(2420)該經(jīng)編碼的數(shù)據(jù)。作為該編碼(2410)的一部分,編碼器迭代地評估圖片的單元的多個候選分割模式。例如,對于H.265/HEVC實現(xiàn),單元是CU,并且候選分割模式中的每一者將該CU拆分成一個或多個PU的不同配置。多個候選分割模式可以是圖23中示出的分割模式。替換地,多個候選分割模式包括其他和/或附加的分割模式。
對于給定候選分割模式,編碼器取決于預測質量相對于閾值預測質量選擇性地執(zhí)行殘量編碼。閾值預測質量是至少部分地先前評估的候選分割模式的預測質量來設置的。例如,閾值預測質量是多個候選分割模式中到目前為止的最佳預測質量的閾值比例。閾值比例的值取決于實現(xiàn)。例如,閾值比例在105%和120%之間。
圖25示出用于對圖片的單元的候選分割模式進行評估的一個示例技術(2500),包括選擇性地跳過對針對用給定分割模式進行編碼的殘量編碼的評估。諸如參考圖3所述的編碼器(340)、參考圖4a和4b所述的編碼器(400)之類的編碼器或其它編碼器可以執(zhí)行技術(2500)。
編碼器獲得(2510)針對圖片的單元的下一分割模式(其作為給定分割模式被處理),隨后對根據(jù)那個分割模式分割的單元執(zhí)行(2520)運動估計。編碼器至少部分地基于針對該單元的運動估計的結果來測量(2530)針對給定分割模式的預測質量。例如,編碼器基于單元的樣本值和通過運動估計得到的運動補償預測值之間的差異確定預測誤差,隨后至少部分地基于該預測誤差(例如,該預測誤差的絕對值之和)計算針對給定分割模式的預測質量。該預測質量可包括比特率因子和/或失真因子。
隨后,編碼器確定(用給定分割模式編碼的)單元的預測質量是否比閾值預測質量好(例如,將給定分割模式的預測質量與閾值預測質量進行比較)。取決于該結果,編碼器選擇性地執(zhí)行針對該單元的預測誤差的殘量編碼。由此,如果(用給定分割模式編碼的)單元的預測質量好于閾值預測質量,則編碼器執(zhí)行(2550)殘量編碼以獲得該單元的預測誤差,計算(2560)用給定分割模式對該單元進行編碼的總成本,并選擇性地更新(2570)最佳總成本和閾值預測質量。例如,編碼器至少部分地基于殘量編碼的結果來測量用于(用給定分割模式)對該單元進行編碼的總成本。該總成本可包括比特率因子和/或失真因子。如果用于(用給定分割模式)對該單元進行編碼的總成本小于到目前為止的最佳總成本,則編碼器基于用于(用給定分割模式)對該單元進行編碼的總成本來更新最佳總成本,并且編碼器基于針對給定分割模式的預測質量來更新閾值預測質量。編碼器檢查(2280)它是否已評估了最后一個分割模式。如果不是這樣,則編碼器通過獲得(2510)下一分割模式來繼續(xù)。
另一方面,如果(用給定分割模式編碼的)單元的預測質量比閾值預測質量差,則編碼器跳過針對該單元的預測誤差的殘量編碼。跳過針對不太可能提升編碼效率的分割模式的殘量編碼可顯著地加速總編碼。編碼器檢查(2280)它是否已評估了最后一個分割模式。如果不是這樣,則編碼器通過獲得(2510)下一分割模式來繼續(xù)。
XII.其他特征。
除了被納入權利要求書的特征外,本文中描述的各創(chuàng)新的特征包括但不限于以下:
XIII.替換和變型
在本文中描述的許多示例中,當前單元的屬性(例如,當前單元尺寸、預測質量)或圖片的屬性(例如,變換跳過模式的使用率)被與閾值(例如,(諸)毗鄰單元的單元尺寸、閾值單元尺寸、閾值比例、閾值預測質量)進行比較。在這樣的示例中,屬性等于閾值的情況可通過選擇該比較的兩個可能的結果中的任一者來處理,這取決于實現(xiàn)。也就是說,屬性等于閾值的情況可像屬性大于閾值的情況一樣被處理?;蛘?,替換地,屬性等于閾值的情況可像屬性小于閾值的情況一樣被處理。
鑒于可應用所公開的本發(fā)明的原理的許多可能的實施例,應當認識到,所示實施例僅是本發(fā)明的優(yōu)選示例,并且不應認為是限制本發(fā)明的范圍。相反,本發(fā)明的范圍由后續(xù)的權利要求來界定。我們要求作為我們的發(fā)明保護落入這些權利要求范圍和精神內(nèi)的所有內(nèi)容。