工程師使用壓縮(也叫做源編碼(source coding或source encoding))來降低數(shù)字視頻的位率。壓縮通過將視頻信息轉(zhuǎn)換成較低位率的形式來降低存儲(chǔ)和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構(gòu)一種版本的原始信息?!熬幗獯a器”是編碼器/解碼器系統(tǒng)。
在過去的至少25年中,已采用了各種視頻編解碼器標(biāo)準(zhǔn),包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263、H.264(MPEG-4AVC或ISO/IEC14496-10)標(biāo)準(zhǔn)、MPEG-1(ISO/IEC 11172-2)和MPEG-4視覺(ISO/IEC 14496-2)標(biāo)準(zhǔn)以及SMPTE 421M(VC-1)標(biāo)準(zhǔn)。最近,H.265/HEVC標(biāo)準(zhǔn)(ITU-T H.265或ISO/IEC 23008-2)已被批準(zhǔn)。目前,(例如,用于可縮放視頻編碼/解碼、用于在樣本位深度或色度采樣率方面具有較高保真度的視頻的編碼/解碼、用于屏幕捕捉內(nèi)容、或用于多視圖編碼/解碼的)H.265/HEVC標(biāo)準(zhǔn)的擴(kuò)展處于開發(fā)中。視頻編解碼器標(biāo)準(zhǔn)通常定義針對(duì)經(jīng)編碼的視頻位流的句法的選項(xiàng),從而詳述當(dāng)在編碼和解碼時(shí)使用特定特征時(shí)該位流中的參數(shù)。在許多情況下,視頻編解碼器標(biāo)準(zhǔn)還提供關(guān)于視頻解碼器應(yīng)當(dāng)執(zhí)行以在解碼時(shí)取得一致的結(jié)果的解碼操作的細(xì)節(jié)。除了編解碼器標(biāo)準(zhǔn)外,各種專用編解碼器格式定義針對(duì)經(jīng)編碼的視頻位流的句法的其他選項(xiàng)以及相應(yīng)的解碼操作。
不同的編解碼器標(biāo)準(zhǔn)和格式支持不同的編碼/解碼工具。調(diào)色板模式是所考慮的針對(duì)用于屏幕捕捉內(nèi)容的編碼/解碼的H.265/HEVC標(biāo)準(zhǔn)的擴(kuò)展的編碼/解碼工具。調(diào)色板模式在編碼某些“人工”創(chuàng)建的視頻內(nèi)容(諸如屏幕捕捉內(nèi)容)時(shí)可能是有幫助的。屏幕捕捉內(nèi)容通常包括與自然視頻相比使用很少的不同色彩的重復(fù)結(jié)構(gòu)(例如,圖形、文本字符)。這提供了調(diào)色板模式改善性能的機(jī)會(huì)。一般來說,在調(diào)色板模式中,視頻編碼器使用表示調(diào)色板中的各基礎(chǔ)色彩的索引值對(duì)各像素進(jìn)行編碼。一般來說,像素包括針對(duì)在圖片中的位置的一個(gè)或多個(gè)樣本值。索引值中的每一者與單元的各色彩中的不同值(“基礎(chǔ)色彩”)相關(guān)聯(lián)。例如,如果8x8單元在該單元的64個(gè)像素中具有4個(gè)不同的色彩,則編碼器向那4個(gè)基礎(chǔ)色彩分派4個(gè)不同的索引值。在編碼期間,各像素被對(duì)應(yīng)的索引值取代。編碼器編碼并信號(hào)化將索引值映射到基礎(chǔ)色彩的調(diào)色板以及關(guān)于表示這些像素的索引值的布置的數(shù)據(jù)(“索引圖”)。解碼器接收并解碼調(diào)色板和索引圖。使用該信息,解碼器用基礎(chǔ)色彩取代索引圖中的索引值以獲得原始像素。
在調(diào)色板模式的一些設(shè)計(jì)中,稀有色彩可用逸出模式(escape mode)來編碼和解碼。在逸出模式中,像素不是使用調(diào)色板中的基礎(chǔ)色彩來表示的。相反,特殊像素值標(biāo)記像素以供用逸出模式進(jìn)行編碼和解碼。經(jīng)逸出編碼的像素的每一樣本值被量化(該量化將該樣本值映射到“箱(bin)”集合中的一個(gè)“箱”以便近似該樣本值)并被熵編碼,這通常減少了用于表示經(jīng)量化的樣本值的位數(shù)。在調(diào)色板模式的逸出模式采用H.265/HEVC標(biāo)準(zhǔn)的當(dāng)前設(shè)計(jì)中,對(duì)經(jīng)量化的樣本值的熵編碼導(dǎo)致對(duì)某些類型的數(shù)據(jù)丟失不穩(wěn)健的經(jīng)編碼的數(shù)據(jù)。具體地,(例如,由經(jīng)編碼的數(shù)據(jù)中的位翻轉(zhuǎn)造成的)傳輸錯(cuò)誤可導(dǎo)致經(jīng)重構(gòu)的像素的嚴(yán)重質(zhì)量降級(jí)。
概述
總而言之,詳細(xì)描述呈現(xiàn)用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼和解碼方面的創(chuàng)新。例如,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于這些樣本值的量化參數(shù)(“QP”)的恒定值的二值化過程來編碼/解碼的?;蛘?,作為另一示例,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于這些樣本值的樣本深度的二值化過程來編碼/解碼的。或者,作為又一示例,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于某個(gè)其他固定規(guī)則的二值化過程來編碼/解碼的。在各示例實(shí)現(xiàn)中,這些方法避免在解析經(jīng)逸出編碼的像素的樣本值時(shí)對(duì)單元級(jí)QP值的依賴性,這可使得編碼/解碼對(duì)數(shù)據(jù)丟失更穩(wěn)健。
根據(jù)本文中描述的創(chuàng)新的一個(gè)方面,媒體編碼器(諸如視頻編碼器或圖像編碼器)接收?qǐng)D片并對(duì)圖片進(jìn)行編碼。作為對(duì)圖片進(jìn)行編碼的一部分,媒體編碼器用調(diào)色板模式對(duì)該圖片的單元進(jìn)行編碼。通過這樣做,媒體編碼器用調(diào)色板模式的逸出模式獨(dú)立于單元的任何單元級(jí)QP對(duì)該單元的樣本值進(jìn)行編碼。
根據(jù)本文中描述的各創(chuàng)新的另一個(gè)方面,媒體解碼器(諸如視頻解碼器或圖像解碼器)接收?qǐng)D片的經(jīng)編碼的數(shù)據(jù)并對(duì)該圖片進(jìn)行解碼。作為對(duì)該圖片進(jìn)行解碼的一部分,媒體解碼器用調(diào)色板模式對(duì)該圖片的單元進(jìn)行解碼。通過這樣做,媒體解碼器用調(diào)色板模式的逸出模式對(duì)該單元的樣本值進(jìn)行解碼,而沒有對(duì)該單元的單元級(jí)QP的任何解析依賴性。
本發(fā)明可以被實(shí)現(xiàn)為方法的部分、被配置為執(zhí)行所述方法的計(jì)算系統(tǒng)的部分或存儲(chǔ)用于使得計(jì)算系統(tǒng)執(zhí)行所述方法的計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì)的部分。各創(chuàng)新可以結(jié)合地或分開地使用。提供本概述以便以簡(jiǎn)化的形式介紹將在以下的詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點(diǎn)。
附圖簡(jiǎn)述
圖1是示出可用于實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的示圖。
圖2a和2b是示出可用于實(shí)現(xiàn)所描述的一些實(shí)施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
圖3是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻編碼器系統(tǒng)的示圖。
圖4a和4b是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻編碼器的示圖。
圖5是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例解碼器系統(tǒng)的示圖。
圖6是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻解碼器的示圖。
圖7是用調(diào)色板模式進(jìn)行編碼和解碼的示例的示圖。
圖8a和8b是示出用調(diào)色板模式的逸出模式對(duì)樣本值分別進(jìn)行編碼和解碼的示例的示圖。
圖9和10是示出分別用于進(jìn)行編碼和解碼(包括用調(diào)色板模式的逸出模式對(duì)像素進(jìn)行穩(wěn)健編碼/解碼)的通用技術(shù)的流程圖。
圖11和12是示出使用取決于片級(jí)QP的二值化過程對(duì)樣本值分別進(jìn)行編碼和解碼的示例技術(shù)的流程圖。
圖13是示出用于在調(diào)色板模式中信號(hào)化經(jīng)逸出編碼的像素的片級(jí)QP偏移的示例句法的表格。
圖14和15是示出使用取決于樣本值的樣本深度的二值化過程對(duì)樣本值分別進(jìn)行編碼和解碼的示例技術(shù)的流程圖。
圖16和17是示出用于使用k階指數(shù)-Golomb二值化過程對(duì)樣本值分別進(jìn)行編碼和解碼的示例技術(shù)的流程圖。
圖18是示出用于k階指數(shù)-Golomb二值化過程的示例技術(shù)的偽代碼列表。
詳細(xì)描述
該詳細(xì)描述呈現(xiàn)用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼和解碼方面的創(chuàng)新。例如,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于用于這些樣本值的量化參數(shù)(“QP”)的恒定值的二值化過程來編碼/解碼的?;蛘?,作為另一示例,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于這些樣本值的樣本深度的二值化過程來編碼/解碼的?;蛘?,作為又一示例,在調(diào)色板模式中經(jīng)逸出編碼的像素的樣本值是使用取決于某個(gè)其他固定規(guī)則的二值化過程來編碼/解碼的。在各示例實(shí)現(xiàn)中,這些方法避免在解析經(jīng)逸出編碼的像素的樣本值時(shí)對(duì)單元級(jí)QP值的依賴性,這可使得編碼/解碼對(duì)數(shù)據(jù)丟失更穩(wěn)健。
本文中描述的一些創(chuàng)新是參考針對(duì)H.265/HEVC標(biāo)準(zhǔn)以及H.265/HEVC標(biāo)準(zhǔn)的擴(kuò)展的條款來解說的。例如,一些創(chuàng)新被描述為相對(duì)于標(biāo)題為“High Efficiency Video Coding(HEVC)Screen Content Coding:Draft 3(高效視頻編碼(HEVC)屏幕內(nèi)容編碼:草稿3)”的文檔JCTVC-T1005-v2的特征的改變。本文中描述的創(chuàng)新也可針對(duì)其他視頻編解碼器標(biāo)準(zhǔn)或格式(例如,VP9格式、H.264/AVC標(biāo)準(zhǔn))來實(shí)現(xiàn)。或者,本文中描述的創(chuàng)新可針對(duì)圖像編解碼器標(biāo)準(zhǔn)或格式來實(shí)現(xiàn)。
在本文中描述的示例中,不同的圖中的相同參考標(biāo)記指示相同的組件、模塊或操作。取決于上下文,給定組件或模塊可接受不同類型的信息作為輸入和/或產(chǎn)生不同類型的信息作為輸出。
更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動(dòng)作的順序、通過拆分、重復(fù)或忽略某些方法動(dòng)作等來更改。所公開的技術(shù)的各方面能夠被組合地或分開地使用。不同的實(shí)施例使用所描述的創(chuàng)新中的一個(gè)或多個(gè)。本文中描述的一些創(chuàng)新解決了背景中指出的一個(gè)或多個(gè)問題。通常,所給出的技術(shù)/工具并不解決所有這些問題。
I.示例計(jì)算系統(tǒng)
圖1示出了在其中可實(shí)現(xiàn)若干所描述的發(fā)明的合適的計(jì)算環(huán)境(100)的一般化示例。計(jì)算系統(tǒng)(100)并不旨對(duì)使用范圍或功能提出任何限制,因?yàn)檫@些創(chuàng)新可以在不同的通用或?qū)S糜?jì)算系統(tǒng)中實(shí)現(xiàn)。
參考圖1,計(jì)算環(huán)境(100)包括一個(gè)或多個(gè)處理單元(110、115)和存儲(chǔ)器(120、125)。處理單元(110、115)執(zhí)行計(jì)算機(jī)可執(zhí)行指令。處理單元可以是通用中央處理單元(“CPU”)、專用集成電路(“ASIC”)中的處理器或任何其它類型的處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。例如,圖1示出中央處理單元(110)以及圖形處理單元或協(xié)處理單元(115)。有形存儲(chǔ)器(120、125)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,ROM、EEPROM、閃存等)或兩者的某種組合,可由處理單元存取。存儲(chǔ)器(120,125)存儲(chǔ)實(shí)現(xiàn)針對(duì)切換色彩空間時(shí)的編碼或解碼的一個(gè)或多個(gè)創(chuàng)新的軟件(180),該軟件采用適用于由(諸)處理單元執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的形式。
計(jì)算系統(tǒng)可具有附加的特征。例如,計(jì)算系統(tǒng)(100)包括存儲(chǔ)(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)以及一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)之類的互連機(jī)制(未示出)將計(jì)算系統(tǒng)(100)的各組件互連。通常,操作系統(tǒng)軟件(未示出)為在計(jì)算系統(tǒng)(100)中執(zhí)行的其它軟件提供操作環(huán)境,并協(xié)調(diào)計(jì)算系統(tǒng)(100)的各組件的活動(dòng)。
有形存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、諸如CD-ROM、DVD之類的光學(xué)媒體或可用于儲(chǔ)存信息并可在計(jì)算系統(tǒng)(100)內(nèi)訪問的任何其他介質(zhì)。存儲(chǔ)(140)存儲(chǔ)實(shí)現(xiàn)針對(duì)用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼/解碼的一個(gè)或多個(gè)創(chuàng)新的軟件(180)的指令。
(諸)輸入設(shè)備(150)可以是觸摸輸入設(shè)備(諸如鍵盤、鼠標(biāo)、筆或跟蹤球)、語音輸入設(shè)備、掃描設(shè)備或向計(jì)算系統(tǒng)(100)提供輸入的另一設(shè)備。對(duì)于視頻,(諸)輸入設(shè)備(150)可以是相機(jī)、視頻卡、屏幕捕捉模塊、TV調(diào)諧卡或接受模擬或數(shù)字形式的視頻輸入的類似設(shè)備、或?qū)⒁曨l輸入讀到計(jì)算系統(tǒng)(100)中的CD-ROM或CD-RW。(諸)輸出設(shè)備(160)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī)或提供來自計(jì)算系統(tǒng)(100)的輸出的另一設(shè)備。
(諸)通信連接(170)允許通過通信介質(zhì)與另一計(jì)算實(shí)體通信。通信介質(zhì)傳達(dá)諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或已調(diào)制數(shù)據(jù)信號(hào)中的其他數(shù)據(jù)之類的信息。已調(diào)制數(shù)據(jù)信號(hào)是使其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式設(shè)置或改變的信號(hào)。作為示例而非限制,通信介質(zhì)可以使用電的、光學(xué)的、RF或其它載體。
各創(chuàng)新可以在計(jì)算機(jī)可讀介質(zhì)的一般上下文中描述。計(jì)算機(jī)可讀介質(zhì)是可在計(jì)算環(huán)境內(nèi)訪問的任何可用有形介質(zhì)。作為示例而非限制,對(duì)于計(jì)算系統(tǒng)(100),計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)器(120,125)、存儲(chǔ)(140)及其組合。如本文中所使用的,術(shù)語計(jì)算機(jī)可讀介質(zhì)不包括瞬時(shí)信號(hào)或傳播載波。
各創(chuàng)新可在計(jì)算機(jī)可執(zhí)行指令(諸如包括在程序模塊中的在目標(biāo)現(xiàn)實(shí)或虛擬處理器上在計(jì)算系統(tǒng)中執(zhí)行的那些計(jì)算機(jī)可執(zhí)行指令)的一般上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、庫(kù)、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實(shí)施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對(duì)各程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算系統(tǒng)中執(zhí)行。
術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對(duì)計(jì)算系統(tǒng)或計(jì)算設(shè)備的類型的任何限制。一般說來,計(jì)算系統(tǒng)或計(jì)算設(shè)備可以是本地的或分布式的,并且可以包括具有實(shí)現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計(jì)算硬件來實(shí)現(xiàn)。例如,所公開的方法可以由被專門設(shè)計(jì)或配置成實(shí)現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如ASIC數(shù)字信號(hào)處理器(“DSP”)之類的ASIC、圖像處理單元(“GPU”)、或諸如場(chǎng)可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來實(shí)現(xiàn)。
為了呈現(xiàn)起見,本詳細(xì)描述使用了如“確定”和“評(píng)估”等術(shù)語來描述計(jì)算系統(tǒng)中的計(jì)算機(jī)操作。這些術(shù)語是對(duì)由計(jì)算機(jī)執(zhí)行的操作的高級(jí)抽象,且不應(yīng)與人類所執(zhí)行的動(dòng)作混淆。對(duì)應(yīng)于這些術(shù)語的實(shí)際的計(jì)算機(jī)操作取決于實(shí)現(xiàn)而不同。
II.示例網(wǎng)絡(luò)環(huán)境
圖2a和2b示出了包括視頻編碼器(220)和視頻解碼器(270)的示例網(wǎng)絡(luò)環(huán)境(201,202)。編碼器(220)和解碼器(270)使用合適的通信協(xié)議通過網(wǎng)絡(luò)(250)連接。網(wǎng)絡(luò)(250)可包括因特網(wǎng)或另一計(jì)算機(jī)網(wǎng)絡(luò)。
在圖2a中所示的網(wǎng)絡(luò)環(huán)境(201)中,每個(gè)實(shí)時(shí)通信(“RTC”)工具(210)包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產(chǎn)生輸出,該輸出遵循H.265/HEVC標(biāo)準(zhǔn)、SMPTE 421M標(biāo)準(zhǔn)、ISO/IEC 14496-10標(biāo)準(zhǔn)(也稱為H.264或AVC)、另一標(biāo)準(zhǔn)的變體或擴(kuò)展,或遵循針對(duì)接受來自編碼器(220)的經(jīng)編碼的數(shù)據(jù)的對(duì)應(yīng)的解碼器(270)的專用格式(諸如VP8或VP9)。雙向通信可以是視頻會(huì)議、視頻電話呼叫或其它雙方或多方通信場(chǎng)景的部分。雖然,圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個(gè)實(shí)時(shí)通信工具(210),但網(wǎng)絡(luò)環(huán)境(201)可改為包括參與多方通信的三個(gè)或更多的實(shí)時(shí)通信工具(210)。
實(shí)時(shí)通信工具(210)管理編碼器(220)作出的編碼。圖3示出可以被包括在實(shí)時(shí)通信工具(210)中的示例編碼器系統(tǒng)(300)。替換地,實(shí)時(shí)通信工具(210)使用另一編碼器系統(tǒng)。實(shí)時(shí)通信工具(210)還管理解碼器(270)作出的解碼。圖5示出可以被包括在實(shí)時(shí)通信工具(210)中的示例解碼器系統(tǒng)(500)。替換地,實(shí)時(shí)通信工具(210)使用另一解碼器系統(tǒng)。
在圖2b中示出的網(wǎng)絡(luò)環(huán)境(202)中,編碼工具(212)包括對(duì)供遞送給多個(gè)回放工具(214)的視頻進(jìn)行編碼的編碼器(220),這些回放工具包括解碼器(270)。單向通信可被提供用于視頻監(jiān)視系統(tǒng)、web相機(jī)監(jiān)視系統(tǒng)、遠(yuǎn)程桌面會(huì)議演示或共享、無線屏幕投射、云計(jì)算或游戲、在其中編碼視頻并將視頻從一個(gè)位置發(fā)送到一個(gè)或多個(gè)其它位置的其它場(chǎng)景。雖然在圖2b中的網(wǎng)絡(luò)環(huán)境(202)包括兩個(gè)回放工具(214),該網(wǎng)絡(luò)環(huán)境(202)可以包括更多或更少的回放工具(214)。一般來說,回放工具(214)與編碼工具(212)通信以確定回放工具(214)要接收的視頻流?;胤殴ぞ?214)接收該流、緩沖所接收的經(jīng)編碼數(shù)據(jù)達(dá)合適的時(shí)間段并開始解碼和回放。
圖3示出可以被包括在編碼工具(212)中的示例編碼器系統(tǒng)(300)。替換地,編碼工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括用于管理與一個(gè)或多個(gè)回放工具(214)的連接的服務(wù)器側(cè)控制器邏輯?;胤殴ぞ?214)可包括用于管理與編碼工具(212)的連接的客戶機(jī)側(cè)控制器邏輯。圖5示出可以被包括在回放工具(214)中的示例解碼器系統(tǒng)(500)。替換地,回放工具(214)使用另一解碼器系統(tǒng)。
III.示例編碼器系統(tǒng)。
圖3示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻編碼器系統(tǒng)(300)。視頻編碼器系統(tǒng)(300)包括視頻編碼器(340),視頻編碼器(340)在圖4a和4b中被進(jìn)一步詳述。
視頻編碼器系統(tǒng)(300)可以是能夠用多種編碼模式中的任一者(諸如用于實(shí)時(shí)通信的低等待時(shí)間編碼模式、轉(zhuǎn)碼模式和用于從文件或流中產(chǎn)生供回放的媒體的較高等待時(shí)間編碼模式)操作的通用編碼工具,或它可以是適用于一種這樣的編碼模式的專用編碼工具。視頻編碼器系統(tǒng)(300)可適用于編碼特定類型的內(nèi)容。視頻編碼器系統(tǒng)(300)可以被實(shí)現(xiàn)為操作系統(tǒng)模塊的部分、應(yīng)用庫(kù)的部分、獨(dú)立的應(yīng)用的部分或使用專用的硬件??傮w上,視頻編碼器系統(tǒng)(300)從視頻源(310)接收源視頻圖片(311)序列并產(chǎn)生經(jīng)編碼的數(shù)據(jù)作為到信道(390)的輸出。輸出到信道的經(jīng)編碼的數(shù)據(jù)可包括使用本文中描述的一個(gè)或多個(gè)創(chuàng)新編碼的內(nèi)容。
視頻源(310)可以是相機(jī)、調(diào)諧卡、存儲(chǔ)介質(zhì)、屏幕捕捉模塊或其它數(shù)字視頻源。所述視頻源(310)以例如每秒30幀的幀速率產(chǎn)生視頻圖片序列。如在此所用,術(shù)語“圖片”一般是指源、已譯碼的或已重構(gòu)的圖像數(shù)據(jù)。對(duì)于逐行掃描視頻,圖片是逐行掃描視頻幀。對(duì)于隔行視頻,在各示例實(shí)施例中,隔行視頻幀可以在編碼之前被去隔行。替換地,兩個(gè)互補(bǔ)的隔行視頻場(chǎng)可以被編碼在一起作為單個(gè)視頻幀或者被編碼成兩個(gè)經(jīng)分開編碼的場(chǎng)。除了指示逐行掃描視頻幀或隔行掃描視頻幀之外,術(shù)語“圖片”可以指示單個(gè)非成對(duì)的視頻場(chǎng)、互補(bǔ)的成對(duì)視頻場(chǎng)、表示在給定時(shí)間或在較大的圖像中的感興趣區(qū)域處的視頻對(duì)象的視頻對(duì)象平面。視頻對(duì)象平面或區(qū)域可以是包括場(chǎng)景的多個(gè)對(duì)象或區(qū)域的較大圖像的一部分。
正在到達(dá)的源圖片(311)被存儲(chǔ)在包括多個(gè)圖片緩沖存儲(chǔ)區(qū)域(321,322,…,32n)的源圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(320)中。圖片緩沖器(321,322等)在源圖片存儲(chǔ)區(qū)域(320)中保持一個(gè)源圖片。在已經(jīng)將一個(gè)或多個(gè)源圖片(311)存儲(chǔ)在圖片緩沖器(321,322等)中之后,圖片選擇器(330)從源圖片存儲(chǔ)區(qū)域(320)中選擇個(gè)體源圖片來編碼為當(dāng)前圖片(331)。各圖片被圖片選擇器(330)選擇用于輸入到視頻編碼器(340)的次序可以與視頻源(310)產(chǎn)生這些圖片的次序不同,例如對(duì)某些圖片的編碼可在次序上被延遲,以便允許某些較后的圖片被先編碼并由此促成時(shí)間上的后向預(yù)測(cè)。視頻編碼器系統(tǒng)(300)可在視頻編碼器(340)之前包括在編碼之前對(duì)當(dāng)前圖片(331)執(zhí)行預(yù)處理(例如濾波)的預(yù)處理器(未示出)。該預(yù)處理可包括將色彩空間轉(zhuǎn)換成主要(例如亮度)和次要(例如偏向紅色和偏向藍(lán)色的色度差)分量以及對(duì)編碼的重采樣處理(例如以減少色度分量的空間分辨率)。由此,在編碼之前,視頻可以被轉(zhuǎn)換成諸如YUV的色彩空間,在其中亮度(Y)分量的樣本值表示明亮度或強(qiáng)度值,而色度(U,V)分量的樣本值表示色差值。色差值(以及從YUV色彩空間到諸如RGB的另一色彩空間/從另一色彩空間到Y(jié)UV色彩空間的轉(zhuǎn)換操作)的精確定義取決于實(shí)現(xiàn)。一般來說,如本文中所使用的,術(shù)語YUV指示具有亮度(或照度)分量和一個(gè)或多個(gè)色度(或色差)分量的任意色彩空間,包括Y’UV、YIQ、Y’IQ和YDbDr以及諸如YCbCr和YCoCg之類的變體。色度樣本值可以被子采樣到較低的色度采樣率(例如針對(duì)YUV 4:2:0格式或YUV 4:2:2格式的情況),或者色度樣本值可以具有與亮度樣本值相同的分辨率(例如針對(duì)YUV4:4:4格式的情況)。替換地,視頻可根據(jù)另一格式(例如RGB 4:4:4格式、GBR 4:4:4格式或BGR 4:4:4格式)來組織。一般來說,像素是針對(duì)在圖片中的位置的一個(gè)或多個(gè)搭配樣本值的集合,該集合對(duì)于不同的色度采樣格式可用不同的方式來布置。
視頻編碼器(340)對(duì)當(dāng)前圖片(331)進(jìn)行編碼以產(chǎn)生經(jīng)編碼的圖片(341)。如圖4a和4b所示,視頻編碼器(340)接收當(dāng)前圖片(331)作為輸入視頻信號(hào)(405),并在經(jīng)編碼的視頻位流(495)中產(chǎn)生經(jīng)編碼的圖片(341)的經(jīng)編碼的數(shù)據(jù)作為輸出。作為該編碼的一部分,在一些情況下,視頻編碼器(340)使用用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的穩(wěn)健編碼。
通常,視頻編碼器(340)包括執(zhí)行諸如分割成小塊、圖片內(nèi)預(yù)測(cè)估計(jì)和預(yù)測(cè)、調(diào)色板模式編碼、運(yùn)動(dòng)估計(jì)和補(bǔ)償、頻率變換、量化和熵譯碼之類的編碼任務(wù)。視頻編碼器(340)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由視頻編碼器(340)執(zhí)行的確切操作可取決于壓縮格式而變化,并可取決于編碼器可選的實(shí)現(xiàn)判定而變化。輸出的經(jīng)編碼數(shù)據(jù)的格式可以是Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)、或VPx格式、或其它格式的變型或擴(kuò)展。
如圖4a所示,視頻編碼器(340)可包括小塊化模塊(410)。使用小塊化模塊(410),視頻編碼器(340)可將圖片分割成相同尺寸或不同尺寸的多個(gè)小塊。例如,小塊化模塊(410)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個(gè)小塊是矩形區(qū)域。小塊通常被用于提供并行處理的選項(xiàng)。圖片還可以被組織為一個(gè)或多個(gè)片,其中一個(gè)片可以是整個(gè)圖片或圖片的部分。片可以獨(dú)立于圖片中的其它片被解碼,這改善了錯(cuò)誤復(fù)原力。出于編碼和解碼的目的,片或小塊的內(nèi)容被進(jìn)一步分割成塊或其它采樣值集。塊可在不同的階段(例如在預(yù)測(cè)、頻率變換和/或熵編碼階段)被進(jìn)一步細(xì)分。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊進(jìn)而可被劃分成更小的樣本值塊以用于編碼和解碼。
對(duì)于根據(jù)H.264/AVC標(biāo)準(zhǔn)的句法,視頻編碼器(340)可以將圖片分割成相同尺寸或不同尺寸的多個(gè)片。視頻編碼器(340)將圖片(或片)的內(nèi)容拆分成各16x16宏塊。宏塊包括被組織為4個(gè)8x8亮度塊的亮度樣本值和被組織為8x8色度塊的相應(yīng)的色度樣本值。通常,宏塊具有諸如幀間或幀內(nèi)之類的預(yù)測(cè)模式。宏塊包括用于信號(hào)化預(yù)測(cè)信息(例如預(yù)測(cè)模式細(xì)節(jié)、運(yùn)動(dòng)向量(“MV”)信息等)和/或預(yù)測(cè)處理的目的的一個(gè)或多個(gè)預(yù)測(cè)單元(例如,各8x8塊、各4x4塊,這些塊可被稱為用于圖片間預(yù)測(cè)的分區(qū))。宏塊還具有用于殘量編碼/解碼目的的一個(gè)或多個(gè)殘量數(shù)據(jù)單元。
對(duì)于根據(jù)H.265/HEVC標(biāo)準(zhǔn)的句法來說,視頻編碼器(340)將圖片(或片或小塊)的內(nèi)容拆分成各編碼樹單元。編碼樹單元(“CTU”)包括被組織為亮度編碼樹塊(“CTB”)的亮度采樣值,并且對(duì)應(yīng)的色度樣本值被組織為兩個(gè)色度CTB。CTU(及其CTB)的尺寸由視頻編碼器選擇。亮度CTB可包含例如64x64、32x32或16x16亮度樣本值。CTU包括一個(gè)或多個(gè)編碼單元。編碼單元(“CU”)具有亮度編碼塊(“CB”)和兩個(gè)對(duì)應(yīng)的色度CB。例如,根據(jù)四叉樹句法,具有64x64亮度CTB和兩個(gè)64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4個(gè)CU,其中每一CU包括一32x32亮度CB和兩個(gè)32x32色度CB,并且根據(jù)四叉樹句法,每一CU可能被進(jìn)一步拆分成更小的CU?;蛘?,作為另一示例,根據(jù)四叉樹句法,具有64x64亮度CTB和兩個(gè)32x32色度CTB(YUV 4:2:0格式)的CTU可被拆分成4個(gè)CU,其中每一CU包括一32x32亮度CB和兩個(gè)16x16色度CB,并且根據(jù)四叉樹句法,每一CU可被進(jìn)一步拆分成更小的CU。
在H.265/HEVC實(shí)現(xiàn)中,CU具有諸如幀間或幀內(nèi)之類的預(yù)測(cè)模式。CU通常包括用于信號(hào)化預(yù)測(cè)信息(例如預(yù)測(cè)模式細(xì)節(jié)、移位值等)和/或預(yù)測(cè)處理的目的的一個(gè)或多個(gè)預(yù)測(cè)單元。預(yù)測(cè)單元(“PU”)具有亮度預(yù)測(cè)塊(“PB”)和兩個(gè)對(duì)應(yīng)的色度PB。根據(jù)H.265/HEVC標(biāo)準(zhǔn),對(duì)于圖片內(nèi)預(yù)測(cè)的CU,PU具有與該CU相同的尺寸,除非該CU具有最小尺寸(例如8x8)。在那個(gè)情況下,CU可被拆分成更小的PU(例如,對(duì)于圖片內(nèi)預(yù)測(cè)情況,如果最小CU尺寸為8x8,則被拆分成四個(gè)4x4PU),或者PU可具有最小CU尺寸,如CU的句法元素所指示的。對(duì)于圖片間預(yù)測(cè)的CU,該CU可具有一個(gè)、兩個(gè)或四個(gè)PU,其中拆分成四個(gè)PU僅在該CU具有最小可允許尺寸的情況下才被允許。
在H.265/HEVC實(shí)現(xiàn)中,CU通常還具有用于殘量編碼和解碼的目的的一個(gè)或多個(gè)變換單元,其中變換單元(“TU”)具有亮度變換塊(“TB”)和兩個(gè)色度TB。CU可包含單個(gè)TU(在尺寸上等于該CU)或多個(gè)TU。根據(jù)四叉樹句法,TU可被拆分為四個(gè)更小的TU,這些TU可進(jìn)而根據(jù)四叉樹句法被拆分成更小的TU。視頻編碼器決定如何將視頻分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
在H.265/HEVC實(shí)現(xiàn)中,片可包括單個(gè)片段(獨(dú)立的片段)或被劃分成多個(gè)片段(獨(dú)立的片段和一個(gè)或多個(gè)從屬的片段)。片段是包含在單個(gè)網(wǎng)絡(luò)抽象層(“NAL”)單元中的在小塊掃描中連續(xù)排序的整數(shù)個(gè)CTU。對(duì)于獨(dú)立的片段,片段頭部包括適用于該獨(dú)立的片段的句法元素的值。對(duì)于從屬片段,截短的片段頭部包括適用于該從屬片段的句法元素的幾個(gè)值,并且從屬片段的其它句法元素的值是以解碼順序從在前的獨(dú)立的片段的值中推導(dǎo)出來的。
如本文中所使用的,術(shù)語“塊”可指示宏塊、殘量數(shù)據(jù)單元、CTB、CB、PB或TB、或某些其它樣本值集,這取決于上下文。術(shù)語“單元”可指示宏塊、CTU、CU、PU、TU或某些其他塊集,或者它可指示單個(gè)塊,這取決于上下文。
如圖4a所示,視頻編碼器(340)包括通用編碼控件,該通用編碼控件(420)接收當(dāng)前圖片(331)的輸入視頻信號(hào)(405)以及來自視頻編碼器(340)的各個(gè)模塊的反饋(未示出)。整體上,通用編碼控件(420)將控制信號(hào)(未示出)提供給其它模塊(諸如小塊化模塊(410)、變換器/縮放器/量化器(430)、縮放器/逆變換器(435)、圖片內(nèi)預(yù)測(cè)估計(jì)器(440)、運(yùn)動(dòng)估計(jì)器(450)、調(diào)色板模式編碼器(480)以及幀內(nèi)/幀間切換)以設(shè)置和改變編碼期間的編碼參數(shù)。通用編碼控件(420)還可評(píng)估編碼期間的中間結(jié)果,通常考慮不同選項(xiàng)的位率成本和/或失真成本。具體地,通用編碼控件(420)判定將圖片內(nèi)預(yù)測(cè)還是圖片間預(yù)測(cè)用于當(dāng)前圖片(331)的各單元,并且在圖片內(nèi)預(yù)測(cè)被用于某單元的情況下判定將空間預(yù)測(cè)(外推)、幀內(nèi)塊復(fù)制預(yù)測(cè)還是調(diào)色板模式用于該單元。通用編碼控件(420)產(chǎn)生指示在編碼期間作出的判定的通用控制數(shù)據(jù)(422),使得對(duì)應(yīng)的解碼器可以作出一致的判定。例如,通用控制數(shù)據(jù)(422)包括指示針對(duì)某單元的圖片內(nèi)編碼使用調(diào)色板編碼模式還是空間預(yù)測(cè)(例如,每個(gè)經(jīng)圖片內(nèi)預(yù)測(cè)的單元一個(gè)標(biāo)志值)的信息。通用控制數(shù)據(jù)(422)被提供給頭部格式化器/熵編碼器(490)。
參考圖4b,如果當(dāng)前圖片(331)中的單元是使用圖片間預(yù)測(cè)來預(yù)測(cè)的,則運(yùn)動(dòng)估計(jì)器(450)估計(jì)該單元的樣本值塊相對(duì)于一個(gè)或多個(gè)參考圖片的運(yùn)動(dòng)。當(dāng)前圖片(331)可全部或部分使用圖片間預(yù)測(cè)來編碼。當(dāng)使用多個(gè)參考圖片時(shí),這多個(gè)參考圖片可以來自不同的時(shí)間方向或相同的時(shí)間方向。運(yùn)動(dòng)估計(jì)器(450)潛在地評(píng)估處于上下文運(yùn)動(dòng)模式的候選MV以及其他候選MV。對(duì)于上下文運(yùn)動(dòng)模式,作為單元的候選MV,運(yùn)動(dòng)估計(jì)器(450)評(píng)估在運(yùn)動(dòng)補(bǔ)償時(shí)對(duì)局部鄰域中的某些相鄰單元使用的一個(gè)或多個(gè)MV或依據(jù)規(guī)則推導(dǎo)出的一個(gè)或多個(gè)MV。針對(duì)上下文運(yùn)動(dòng)模式的候選MV可包括來自空間上毗鄰的單元的MV、來自時(shí)間上毗鄰的單元的MV以及依據(jù)規(guī)則推導(dǎo)出的MV。在H.265/HEVC標(biāo)準(zhǔn)中,合并模式是上下文運(yùn)動(dòng)模式的示例。在一些情況下,上下文運(yùn)動(dòng)模式可涉及多個(gè)推導(dǎo)出MV之間的競(jìng)爭(zhēng)以及對(duì)多個(gè)推導(dǎo)出MV之一的選擇。運(yùn)動(dòng)估計(jì)器(450)可為當(dāng)前圖片(331)的給定單元的分割(例如,在H.265/HEVC標(biāo)準(zhǔn)中為針對(duì)CU的各PU的2N×2N、2N×N、N×2N或N×N分割)評(píng)估運(yùn)動(dòng)補(bǔ)償?shù)牟煌指钅J健?/p>
解碼圖片緩沖器(470)(其是如圖3所示的經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(360)的示例)緩沖一個(gè)或多個(gè)經(jīng)重構(gòu)的先前編碼的圖片以供用作參考圖片。運(yùn)動(dòng)估計(jì)器(450)產(chǎn)生運(yùn)動(dòng)數(shù)據(jù)(452)作為輔助信息。具體地,運(yùn)動(dòng)數(shù)據(jù)(452)可包括指示上下文運(yùn)動(dòng)模式(例如,在H.265/HEVC標(biāo)準(zhǔn)中為合并模式)是否被使用的信息,以及如果上下文運(yùn)動(dòng)模式被使用,則包括指示上下文運(yùn)動(dòng)模式的候選MV的信息(例如,在H.265/HEVC標(biāo)準(zhǔn)中為合并模式索引值)。更一般地,運(yùn)動(dòng)數(shù)據(jù)(452)可包括MV數(shù)據(jù)和參考圖片選擇數(shù)據(jù)。運(yùn)動(dòng)數(shù)據(jù)(452)被提供給頭部格式化器/熵編碼器(490)以及運(yùn)動(dòng)補(bǔ)償器(455)。運(yùn)動(dòng)補(bǔ)償器(455)將塊的(諸)MV應(yīng)用于來自經(jīng)解碼圖片緩沖器(470)的(諸)經(jīng)重構(gòu)的參考圖片。對(duì)于該塊,運(yùn)動(dòng)補(bǔ)償器(455)產(chǎn)生運(yùn)動(dòng)補(bǔ)償預(yù)測(cè),其是用來生成該塊的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)值的(諸)參考圖片中的樣本值區(qū)域。
參考圖4b,如果當(dāng)前圖片(331)的單元是使用圖片內(nèi)預(yù)測(cè)來預(yù)測(cè)的,則圖片內(nèi)預(yù)測(cè)估計(jì)器(440)確定如何執(zhí)行針對(duì)該單元的樣本值塊的圖片內(nèi)預(yù)測(cè)。當(dāng)前圖片(331)可全部或部分使用圖片內(nèi)預(yù)測(cè)來編碼。對(duì)于幀內(nèi)空間預(yù)測(cè),圖片內(nèi)估計(jì)器(440)使用當(dāng)前圖片(331)的重構(gòu)(438)的值來確定如何從當(dāng)前圖片(331)的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前圖片(331)的塊的樣本值,例如估計(jì)鄰近的經(jīng)重構(gòu)的樣本值到該塊的外推?;蛘?,對(duì)于幀內(nèi)塊復(fù)制模式,圖片內(nèi)預(yù)測(cè)估計(jì)器(440)使用指示當(dāng)前圖片(331)的先前編碼/解碼的部分的偏移(有時(shí)被稱為塊向量)來確定如何預(yù)測(cè)當(dāng)前圖片(331)的塊的樣本值。幀內(nèi)塊復(fù)制模式可被實(shí)現(xiàn)為圖片間預(yù)測(cè)的特殊情況,其中參考圖片是當(dāng)前圖片(331),并且僅當(dāng)前圖片(331)的先前編碼/解碼的樣本值可被用于預(yù)測(cè)。作為輔助信息,圖片內(nèi)預(yù)測(cè)估計(jì)器(440)產(chǎn)生諸如所使用的預(yù)測(cè)模式/方向之類的幀內(nèi)預(yù)測(cè)數(shù)據(jù)(442)。幀內(nèi)預(yù)測(cè)數(shù)據(jù)(442)被提供給頭部格式化器/熵編碼器(490)以及圖片內(nèi)預(yù)測(cè)器(445)。根據(jù)幀內(nèi)預(yù)測(cè)數(shù)據(jù)(442),圖片內(nèi)預(yù)測(cè)器(445)從當(dāng)前圖片(331)的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前圖片(331)的塊的樣本值,從而產(chǎn)生該塊的圖片內(nèi)預(yù)測(cè)值。或者,圖片內(nèi)預(yù)測(cè)器(445)使用幀內(nèi)塊復(fù)制預(yù)測(cè)使用針對(duì)該塊的偏移(塊向量)來預(yù)測(cè)該塊的樣本值。
調(diào)色板模式編碼器(480)使用將基礎(chǔ)色彩映射到索引值的調(diào)色板并用相應(yīng)的索引值替換各像素來用針對(duì)當(dāng)前圖片(331)的某單元的像素之中的基礎(chǔ)色彩的索引值來表示該單元。例如,調(diào)色板將索引值0,1,2,…,p映射到對(duì)應(yīng)的基礎(chǔ)色彩,基礎(chǔ)色彩可采用RGB 4:4:4格式、BGR 4:4:4格式、GBR 4:4:4格式、YUV 4:4:4格式或另一個(gè)格式(色彩空間、色彩采樣率)。由此,例如,索引值可表示像素的RGB三元組、BGR三元組或GBR三元組。單元可以是CU,在該情況下,調(diào)色板開在逐CU的基礎(chǔ)上改變。調(diào)色板模式編碼的示例是參考圖7、8a和8b來描述的。在一些情況下,調(diào)色板模式編碼器(480)可用逸出模式而非使用針對(duì)調(diào)色板中的這樣的色彩的索引值來對(duì)稀有色彩進(jìn)行編碼。在逸出模式中,特殊索引值將像素標(biāo)記為經(jīng)逸出編碼的像素。經(jīng)逸出編碼的像素的(諸)樣本值可在編碼器(340)中的其他地方(或者,替換地在調(diào)色板模式編碼器(480)中)被量化并隨后被熵編碼。作為輔助信息,調(diào)色板模式編碼器(480)產(chǎn)生諸如指示單元的調(diào)色板(其可相關(guān)于預(yù)測(cè)的調(diào)色板來編碼)和該單元的索引值(有時(shí)被稱為索引圖)的信息之類的調(diào)色板模式數(shù)據(jù)(482)。調(diào)色板模式數(shù)據(jù)(482)被提供給頭部格式化器/熵編碼器(490)以及調(diào)色板模式解碼器(485)。
如圖4b所示,在非調(diào)色板模式中,幀內(nèi)/幀間切換選擇針對(duì)給定單元的預(yù)測(cè)(458)將是運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)還是圖片內(nèi)預(yù)測(cè)。針對(duì)當(dāng)前圖片(331)的各單元的幀內(nèi)/幀間切換判定可使用各準(zhǔn)則來作出。
在非調(diào)色板模式中,視頻編碼器(340)可確定是否編碼并傳送某塊的預(yù)測(cè)值(幀內(nèi)或幀間)和對(duì)應(yīng)的原始值之間的差值(如果有的話)。預(yù)測(cè)(458)的塊和輸入視頻信號(hào)(405)的原始當(dāng)前圖片(331)的對(duì)應(yīng)部分之間的差異(如果有的話)提供殘量(418)的值。如果被編碼/傳送,則殘量(418)的值使用頻率變換(如果該頻率變換不被跳過的話)、量化和熵編碼來編碼。在一些情況下,沒有為單元計(jì)算殘量。相反,殘量編碼被跳過,并且預(yù)測(cè)的樣本值被用作經(jīng)重構(gòu)的樣本值。對(duì)于一些類型的單元(例如,僅圖片間編碼單元)或所有類型的單元,關(guān)于是否跳過殘量編碼的判定可在逐單元的基礎(chǔ)上(例如,在H.265/HEVC標(biāo)準(zhǔn)中在逐CU的基礎(chǔ)上)作出。在調(diào)色板模式中,視頻編碼器(340)跳過殘量編碼操作,但可對(duì)用逸出模式編碼的像素的樣本值進(jìn)行量化。
參考圖4a,對(duì)于非調(diào)色板模式,當(dāng)殘量(418)的值被編碼時(shí),在變換器/縮放器/量化器(430)中,頻率變換器將空間域視頻信息轉(zhuǎn)換為頻域(即頻譜、變換)數(shù)據(jù)。對(duì)于基于塊的視頻編碼,頻率變換器將離散余弦變換(“DCT”)、其整數(shù)近似、或另一類型的前向塊變換(例如離散正弦變換或其整數(shù)近似)應(yīng)用于殘量(418)的值塊(或者如果預(yù)測(cè)(458)為空則應(yīng)用于樣本值數(shù)據(jù)),從而產(chǎn)生頻率變換系數(shù)塊。變換器/縮放器/量化器(430)可以應(yīng)用具有可變塊尺寸的變換。在這種情況中,變換器/縮放器/量化器(430)可以確定要對(duì)當(dāng)前塊的殘量值使用哪些塊尺寸的變換。例如,在H.265/HEVC實(shí)現(xiàn)中,編碼器/縮放器/量化器(430)可通過四叉樹分解將TU拆分成四個(gè)更小的TU,這些TU中的每一者可進(jìn)而被拆分成四個(gè)更小的TU,一直到最小TU尺寸。TU尺寸可以為32x32、16x16、8x8或4x4(涉及TU中的亮度TB的尺寸)。
在H.265/HEVC實(shí)現(xiàn)中,對(duì)于非調(diào)色板模式,可以跳過頻率變換。在這種情況下,可以對(duì)殘量(418)的值進(jìn)行量化和熵編碼。具體地,變換跳過模式在對(duì)屏幕內(nèi)容視頻進(jìn)行編碼時(shí)可以是有用的,但在對(duì)其他類型的視頻進(jìn)行編碼時(shí)不是特別有用。
參考圖4a,對(duì)于非調(diào)色板模式,在編碼器/縮放器/量化器(430)中,縮放器/量化器縮放和量化變換系數(shù)。例如,量化器將以按逐圖片基礎(chǔ)、逐小塊基礎(chǔ)、逐片基礎(chǔ)、逐塊基礎(chǔ)、頻率專用基礎(chǔ)或其它基礎(chǔ)來變化的量化步長(zhǎng)尺寸將死區(qū)標(biāo)量量化應(yīng)用于頻域數(shù)據(jù)。量化步長(zhǎng)尺寸可取決于量化參數(shù)(“QP”),該量化參數(shù)的值是為視頻的圖片、小塊、片和/或其他部分設(shè)置。在量化變換系數(shù)時(shí),視頻編碼器(340)可使用率失真優(yōu)化量化(“RDOQ“)(這是非常耗時(shí)的)或者應(yīng)用更簡(jiǎn)單的量化規(guī)則。經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)被提供給頭部格式化器/熵編碼器(490)。對(duì)于非調(diào)色板模式,如果頻率變換被跳過,則縮放器/量化器可對(duì)預(yù)測(cè)殘量數(shù)據(jù)塊(或如果預(yù)測(cè)(458)為空則對(duì)樣本值數(shù)據(jù))進(jìn)行縮放和量化,從而產(chǎn)生經(jīng)量化的值,這些經(jīng)量化的值被提供給頭部格式化器/熵編碼器(490)?;蛘撸瑢?duì)于調(diào)色板模式中的經(jīng)逸出編碼的像素,縮放器/量化器可對(duì)逸出模式中的像素的樣本值進(jìn)行量化,從而將經(jīng)逸出編碼的像素的經(jīng)量化的樣本值提供給頭部格式化器/熵編碼器(490)。
如圖4a和4b所示,頭部格式化器/熵編碼器(490)對(duì)通用控制數(shù)據(jù)(422)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(432)(或者對(duì)于調(diào)色板模式的逸出模式,為經(jīng)量化的樣本值)、幀內(nèi)預(yù)測(cè)數(shù)據(jù)(442)、運(yùn)動(dòng)數(shù)據(jù)(452)、調(diào)色板模式數(shù)據(jù)(482)以及濾波器控制數(shù)據(jù)(462)進(jìn)行格式化和/或熵編碼。由此,視頻編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如MV信息、QP值、模式判定、參數(shù)選擇、調(diào)色板數(shù)據(jù)、調(diào)色板模式中的索引值、調(diào)色板模式中的經(jīng)量化的樣本值)。典型的熵編碼技術(shù)包括指數(shù)-Golomb編碼、Golomb-Rice編碼、上下文自適應(yīng)二進(jìn)制算術(shù)編碼(“CABAC”)、差分編碼、Huffman編碼、行程長(zhǎng)度編碼、可變長(zhǎng)度到可變長(zhǎng)度(“V2V”)編碼、可變長(zhǎng)度到固定長(zhǎng)度(“V2F”)編碼、Lempel-Ziv(“LZ”)編碼、字典編碼和上述編碼的組合。熵編碼器可對(duì)不同種類的信息使用不同的編碼技術(shù),并可組合地應(yīng)用多個(gè)技術(shù)(例如,通過在CABAC的二值化時(shí)應(yīng)用指數(shù)-Golomb編碼或Golomb-Rice編碼),并可從特定編碼技術(shù)內(nèi)的多個(gè)碼表中進(jìn)行選擇。
視頻編碼器(340)在基本位流(諸如圖4a中示出的經(jīng)編碼視頻位流(495))中產(chǎn)生經(jīng)編碼圖片(341)的經(jīng)編碼數(shù)據(jù)。在圖4a中,頭部格式化器/熵編碼器(490)在經(jīng)編碼的視頻位流(495)中提供經(jīng)編碼的數(shù)據(jù)?;A(chǔ)位流的句法通常是用編解碼器標(biāo)準(zhǔn)或格式或者其擴(kuò)展或變型來定義的。例如,經(jīng)編碼的視頻位流(495)的格式可以是Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264、H.265)、VPx格式或其它格式的變型或擴(kuò)展。在從視頻編碼器(340)輸出后,基本位流通常用容器格式被分組化或組織,如以下所解釋的。
基本位流中的經(jīng)編碼的數(shù)據(jù)包括被組織為句法結(jié)構(gòu)的句法元素。一般來說,句法元素可以是任何數(shù)據(jù)元素,并且句法結(jié)構(gòu)是基本位流中處于指定次序的零個(gè)或更多個(gè)句法元素。在H.264/AVC標(biāo)準(zhǔn)和H.265/HEVC標(biāo)準(zhǔn)中,NAL單元是包含(1)對(duì)要跟隨的數(shù)據(jù)的類型的指示以及(2)該數(shù)據(jù)的一連串零個(gè)或更多個(gè)字節(jié)的句法結(jié)構(gòu)。例如,NAL單元可包含片(經(jīng)編碼的片)的經(jīng)編碼的數(shù)據(jù)。NAL單元的尺寸(以字節(jié)為單位)在NAL單元之外被指示。經(jīng)編碼片NAL單元以及某些其他限定類型的NAL單元被稱為視頻編碼層(“VCL”)NAL單元。訪問單元是處于連續(xù)解碼次序的一個(gè)或多個(gè)NAL單元的集合,包含圖片的(諸)片的經(jīng)編碼的數(shù)據(jù),并可能包含諸如元數(shù)據(jù)之類的其他關(guān)聯(lián)數(shù)據(jù)。
對(duì)于根據(jù)H.264/AVC或H.265/HEVC的標(biāo)準(zhǔn)的句法,圖片參數(shù)集(“PPS”)是包含可與圖片相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。PPS可被用于單個(gè)圖片,或者PPS可被重用于序列中的多個(gè)圖片。PPS通常被信號(hào)化為與圖片的經(jīng)編碼的數(shù)據(jù)分開(例如一個(gè)NAL單元針對(duì)PPS,并且一個(gè)或多個(gè)其他NAL單元針對(duì)圖片的經(jīng)編碼的數(shù)據(jù))。在圖片的經(jīng)編碼數(shù)據(jù)內(nèi),句法元素指示要為該圖片使用哪個(gè)PPS。類似地,對(duì)于遵照H.264/AVC標(biāo)準(zhǔn)或H.265/HEVC的標(biāo)準(zhǔn)的句法,序列參數(shù)集(“SPS”)是包含了與圖片序列相關(guān)聯(lián)的句法元素的句法結(jié)構(gòu)。位流可包括單個(gè)SPS或多個(gè)SPS。SPS通常被信號(hào)化為與該序列的其它數(shù)據(jù)分開,并且其它數(shù)據(jù)中的句法元素指示要使用哪個(gè)SPS。
如圖3所示,視頻編碼器(340)還產(chǎn)生存儲(chǔ)器管理控制操作(“MMCO”)信號(hào)(342)或參考圖片集(“RPS”)信息。RPS是可以被使用以供在對(duì)當(dāng)前圖片或任意后續(xù)圖片的運(yùn)動(dòng)補(bǔ)償中的參考的圖片集。如果當(dāng)前圖片(331)不是已經(jīng)被編碼的第一圖片,則在執(zhí)行其編碼處理時(shí),視頻編碼器(340)可使用已被存儲(chǔ)在經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(360)中的一個(gè)或多個(gè)先前編碼/解碼的圖片(369)。這樣存儲(chǔ)的經(jīng)解碼圖片(369)被用作當(dāng)前圖片(331)的內(nèi)容的圖片間預(yù)測(cè)的參考圖片。MMCO/RPS信息(342)向視頻解碼器指示哪些經(jīng)重構(gòu)的圖片可被用作參考圖片并因此應(yīng)當(dāng)被存儲(chǔ)在圖片存儲(chǔ)區(qū)域中。
參考圖3,經(jīng)編碼圖片(341)和MMCO/RPS信息(342)(或與MMCO/RPS信息(342)等價(jià)的信息,因?yàn)樵谝曨l編碼器(340)處已經(jīng)知道各圖片的依賴關(guān)系和排序結(jié)構(gòu))由解碼處理仿真器(350)處理。解碼處理仿真器(350)實(shí)現(xiàn)視頻解碼器的一些功能,例如對(duì)任務(wù)進(jìn)行解碼以重構(gòu)參考圖片。以與MMCO/RPS信息(342)相一致的方式,解碼處理仿真器(350)確定給定的經(jīng)編碼幀(341)是否需要被重構(gòu)并被存儲(chǔ)以供在對(duì)要編碼的后續(xù)圖片的圖片間預(yù)測(cè)中用作參考幀。如果經(jīng)編碼的圖片(341)需要被存儲(chǔ),則解碼處理仿真器(350)對(duì)將由視頻解碼器進(jìn)行的解碼處理建模,該視頻解碼器接收經(jīng)編碼的圖片(341)并產(chǎn)生相應(yīng)的經(jīng)解碼的圖片(351)。通過這么做,當(dāng)視頻編碼器(340)已經(jīng)使用已被存儲(chǔ)在經(jīng)解碼圖片存儲(chǔ)區(qū)域(360)中的經(jīng)解碼的(諸)圖片(369)時(shí),解碼處理仿真器(350)還使用來自存儲(chǔ)區(qū)域(360)的(諸)經(jīng)解碼的圖片(369)作為解碼處理的一部分。
解碼處理仿真器(350)可被實(shí)現(xiàn)為視頻編碼器(340)的一部分。例如,解碼處理仿真器(350)包括圖4a和4b中示出的一些模塊和邏輯。在當(dāng)前圖片(331)的重構(gòu)期間,對(duì)于非調(diào)色板模式,當(dāng)殘量(418)的值已被編碼/信號(hào)化時(shí),經(jīng)重構(gòu)的殘量值與預(yù)測(cè)(458)組合以為當(dāng)前圖片(331)從視頻信號(hào)(405)中產(chǎn)生對(duì)原始內(nèi)容的近似或?qū)嶋H重構(gòu)(438)。(在有損壓縮中,一些信息從視頻信號(hào)(405)中丟失。)對(duì)于調(diào)色板模式,有效地,預(yù)測(cè)(458)為空。
對(duì)于非調(diào)色板模式,為了重構(gòu)殘量值,在縮放器/逆變換器(435)中,縮放器/逆量化器對(duì)經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。當(dāng)變換階段尚未被跳過時(shí),逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測(cè)殘量值或樣本值的塊。如果變換階段已經(jīng)被跳過,則也跳過逆頻率變換。在這種情況下,縮放器/逆量化器可對(duì)預(yù)測(cè)殘量數(shù)據(jù)(或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,從而產(chǎn)生經(jīng)重構(gòu)的值。當(dāng)殘量值已經(jīng)被編碼/信號(hào)化時(shí),視頻編碼器(340)將經(jīng)重構(gòu)的殘量值與預(yù)測(cè)(458)的值(例如,運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)值、圖片內(nèi)預(yù)測(cè)值)組合以形成重構(gòu)(438)。當(dāng)殘量值尚未被編碼/信號(hào)化時(shí),視頻編碼器(340)使用預(yù)測(cè)(458)的值作為重構(gòu)(438)。
對(duì)于調(diào)色板模式,調(diào)色板模式解碼器(485)使用來自調(diào)色板模式數(shù)據(jù)(482)的索引值和調(diào)色板來重構(gòu)像素(即,未經(jīng)逸出編碼的像素)。為了任何經(jīng)逸出編碼的像素,在縮放器/逆變換器(435)中,縮放器/逆量化器對(duì)用逸出模式編碼的像素的經(jīng)量化樣本值執(zhí)行逆縮放和逆量化。經(jīng)重構(gòu)的樣本值提供重構(gòu)(438)的值,因?yàn)樵谡{(diào)色板模式中預(yù)測(cè)(458)為空。
對(duì)于圖片內(nèi)預(yù)測(cè),重構(gòu)(438)的值可被饋送回圖片內(nèi)預(yù)測(cè)估計(jì)器(440)和圖片內(nèi)預(yù)測(cè)器(445)。重構(gòu)(438)的值可被用于后續(xù)圖片的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。重構(gòu)(438)的值可被進(jìn)一步濾波。對(duì)于當(dāng)前圖片(331),濾波控件(460)確定如何對(duì)重構(gòu)(438)的值執(zhí)行去塊濾波和樣本自適應(yīng)偏移(“SAO”)濾波。濾波控件(460)產(chǎn)生濾波控制數(shù)據(jù)(462),它被提供給頭部格式化器/熵編碼器(490)和合并器/(諸)濾波器(465)。
在合并器/(諸)濾波器(465)中,視頻編碼器(340)將來自不同小塊的內(nèi)容合并到當(dāng)前圖片的經(jīng)重構(gòu)版本中。視頻編碼器(340)根據(jù)濾波器控制數(shù)據(jù)(462)和濾波器自適應(yīng)規(guī)則選擇性地執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑當(dāng)前圖片(331)中的各邊界上的間斷??商鎿Q地或另外地應(yīng)用其它濾波(例如去振鈴濾波或自適應(yīng)環(huán)路濾波(“ALF”);未示出)。取決于視頻編碼器(340)的設(shè)置,小塊邊界可選擇性地被濾波或根本不被濾波,并且視頻編碼器(340)可在編碼位流內(nèi)提供句法元素以指示是否應(yīng)用這樣的濾波。
在圖4a和4b中,經(jīng)解碼圖片緩沖器(470)緩沖經(jīng)重構(gòu)的當(dāng)前圖片以供在后續(xù)的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用。更一般地,如圖3所示,經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(360)包括多個(gè)圖片緩沖器存儲(chǔ)區(qū)域(361,362,…,36n)。通過與MMCO/RPS信息(342)相一致的方式中,解碼處理仿真器(350)管理存儲(chǔ)區(qū)域(360)中的內(nèi)容,以便標(biāo)識(shí)出具有視頻編碼器(340)不再需要將其用作參考圖片的圖片的任何圖片緩沖器(361,362等)。在對(duì)解碼處理進(jìn)行建模之后,解碼處理仿真器(350)在圖片幀緩沖器(361、362等)中存儲(chǔ)已經(jīng)以此方式標(biāo)識(shí)出的新解碼的圖片(351)。
如圖3所示,經(jīng)編碼的圖片(341)和MMCO/RPS信息(342)被緩沖在臨時(shí)經(jīng)編碼數(shù)據(jù)區(qū)域(370)中。被聚集在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中的經(jīng)編碼數(shù)據(jù)包含一個(gè)或多個(gè)圖片的經(jīng)編碼數(shù)據(jù)作為基本位流的句法的一部分。被聚集在經(jīng)編碼數(shù)據(jù)區(qū)域(370)中的經(jīng)編碼數(shù)據(jù)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個(gè)或多個(gè)補(bǔ)充增強(qiáng)信息(“SEI”)消息或視頻可用性信息(“VUI”)消息中的一個(gè)或多個(gè)參數(shù))。
來自臨時(shí)經(jīng)編碼數(shù)據(jù)區(qū)域(370)的經(jīng)聚集的數(shù)據(jù)(371)由信道編碼器(380)處理。信道編碼器(380)可以分組化和/或復(fù)用經(jīng)聚集的數(shù)據(jù)以供作為媒體流傳輸或存儲(chǔ)(例如根據(jù)媒體程序流或傳輸流格式,例如ITU-T H.222.0|ISO/IEC 13818-1或因特網(wǎng)實(shí)時(shí)傳輸協(xié)議格式(例如IETF RFC 3550)),在這種情況中,信道編碼器(380)可以添加句法元素作為媒體傳輸流的句法的一部分?;蛘?,信道編碼器(380)可以組織經(jīng)聚集的數(shù)據(jù)以供存儲(chǔ)成文件(例如根據(jù)媒體容器格式,諸如ISO/IEC 14496-12),在這種情況中信道編碼器(380)可添加句法元素作為媒體存儲(chǔ)文件的句法的一部分?;蛘?,更一般地,信道編碼器(380)可以實(shí)現(xiàn)一個(gè)或多個(gè)媒體系統(tǒng)復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道編碼器(380)可以添加句法元素作為(諸)協(xié)議的句法的一部分。信道編碼器(380)將輸出提供給信道(390),該信道(390)表示存儲(chǔ)、通信連接或該輸出的另一信道。信道編碼器(380)或信道(390)還可以包括例如用于前向糾錯(cuò)(“FEC”)編碼和模擬信號(hào)調(diào)制的其它元素(未示出)。
取決于實(shí)現(xiàn)和期望的壓縮類型,視頻編碼器系統(tǒng)(300)和/或視頻編碼器(340)的各模塊可被添加、省略、拆分成多個(gè)模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實(shí)施例中,具有不同模塊和/或其他模塊配置的編碼器系統(tǒng)或編碼器執(zhí)行所描述的技術(shù)中的一個(gè)或多個(gè)。編碼器系統(tǒng)的具體實(shí)施例通常使用視頻編碼器系統(tǒng)(300)的變型或補(bǔ)充版本。視頻編碼器的具體實(shí)施例通常使用視頻編碼器340的變型或補(bǔ)充版本。所示出的在視頻編碼器系統(tǒng)(300)和視頻編碼器(340)內(nèi)的各模塊之間的關(guān)系指示了信息分別在視頻編碼器系統(tǒng)(300)和視頻編碼器(340)中的一般流動(dòng);為簡(jiǎn)明起見,未示出其它關(guān)系。
IV.示例解碼器系統(tǒng)。
圖5是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻解碼器系統(tǒng)(500)的框圖。視頻解碼器系統(tǒng)(500)包括視頻解碼器(550),視頻解碼器(340)在圖6中被進(jìn)一步詳述。
視頻解碼器系統(tǒng)(500)可以是能夠在多種解碼模式(例如針對(duì)實(shí)時(shí)通信的低等待時(shí)間解碼模式、代碼轉(zhuǎn)換模式以及針對(duì)來自文件或流的媒體回放的較高等待時(shí)間解碼模式)中的任一者中操作的通用解碼工具,或它可以是適用于一種這樣的解碼模式的專用解碼工具。視頻解碼器系統(tǒng)(500)可以被實(shí)現(xiàn)為操作系統(tǒng)模塊的部分、應(yīng)用庫(kù)的部分、獨(dú)立的應(yīng)用的部分或使用專用的硬件??傮w上,視頻解碼器系統(tǒng)(500)從信道(510)接收經(jīng)編碼的數(shù)據(jù)并產(chǎn)生經(jīng)重構(gòu)的圖片作為針對(duì)輸出目的地(590)的輸出。接收到的經(jīng)編碼的數(shù)據(jù)可包括使用本文中描述的一個(gè)或多個(gè)創(chuàng)新來編碼的內(nèi)容。
解碼器系統(tǒng)(500)包括信道(510),該信道(510)可表示存儲(chǔ)、通信連接或針對(duì)作為輸入的經(jīng)編碼數(shù)據(jù)的另一信道。信道(510)產(chǎn)生已經(jīng)被信道編碼的經(jīng)編碼的數(shù)據(jù)。信道解碼器(520)可以處理經(jīng)編碼的數(shù)據(jù)。例如,信道解碼器(520)(例如根據(jù)諸如ITU-T H.222.0|ISO/IEC 13818-1的媒體程序流或傳輸流格式,或諸如IETF RFC 3550的因特網(wǎng)實(shí)時(shí)傳輸協(xié)議格式)去分組化和/或去復(fù)用已被組織以供作為媒體流來傳輸或存儲(chǔ)的數(shù)據(jù),在這種情況中,信道解碼器(520)可以解析所添加的作為媒體傳輸流的句法的一部分的句法元素。或者,信道解碼器(520)(例如根據(jù)諸如ISO/IEC 14496-12的媒體容器格式)來將已被組織為供作為文件來存儲(chǔ)的經(jīng)編碼的視頻數(shù)據(jù)分開,在這種情況中,信道解碼器(520)可以解析所添加的作為媒體存儲(chǔ)文件的句法的一部分的句法元素。或者,更一般地,信道解碼器(520)可以實(shí)現(xiàn)一個(gè)或多個(gè)媒體系統(tǒng)去復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道解碼器(520)可以解析所添加的作為(諸)協(xié)議的句法的一部分的句法元素。信道(510)或信道解碼器(520)還可以包括例如用于FEC解碼和模擬信號(hào)解調(diào)的其它元素(未示出)。
從信道解碼器(520)輸出的經(jīng)編碼的數(shù)據(jù)(521)被存儲(chǔ)在臨時(shí)經(jīng)編碼數(shù)據(jù)區(qū)域(530)中,直到已經(jīng)接收到足夠數(shù)量的這樣的數(shù)據(jù)。經(jīng)編碼的數(shù)據(jù)(521)包括經(jīng)編碼的圖片(531)和MMCO/RPS信息(532)。在經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的經(jīng)編碼的數(shù)據(jù)(521)包含一個(gè)或多個(gè)圖片的經(jīng)編碼的數(shù)據(jù)作為基本經(jīng)編碼視頻位流的句法的一部分。在經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的經(jīng)編碼數(shù)據(jù)(521)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個(gè)或多個(gè)SEI消息或VUI消息中的一個(gè)或多個(gè)參數(shù))。
一般來說,經(jīng)編碼數(shù)據(jù)區(qū)域(530)臨時(shí)存儲(chǔ)經(jīng)編碼的數(shù)據(jù)(521),直到這樣的經(jīng)編碼的數(shù)據(jù)(521)被視頻解碼器(550)使用。此時(shí),經(jīng)編碼的圖片(531)和MMCO/RPS信息(532)的經(jīng)編碼的數(shù)據(jù)被從經(jīng)編碼數(shù)據(jù)區(qū)域(530)傳送到視頻解碼器(550)。隨著解碼繼續(xù),新的經(jīng)編碼數(shù)據(jù)被添加到經(jīng)編碼數(shù)據(jù)區(qū)域(530)并且保留在經(jīng)編碼數(shù)據(jù)區(qū)域(530)中的最舊的經(jīng)編碼數(shù)據(jù)被傳輸?shù)揭曨l解碼器(550)。
視頻解碼器(550)解碼經(jīng)編碼圖片(531)以生成對(duì)應(yīng)的經(jīng)解碼圖片(551)。如圖6所示,視頻解碼器(550)接收經(jīng)編碼的圖片(531)作為輸入以作為經(jīng)編碼視頻位流(605)的一部分,并且視頻解碼器(550)產(chǎn)生相應(yīng)的經(jīng)解碼圖片(551)作為輸出以作為經(jīng)重構(gòu)的視頻(695)。作為該解碼的一部分,在一些情況下,視頻解碼器(550)使用用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的穩(wěn)健解碼。
一般地,視頻解碼器(550)包括執(zhí)行諸如熵解碼、逆量化、逆頻率變換、運(yùn)動(dòng)補(bǔ)償、圖片內(nèi)預(yù)測(cè)、調(diào)色板模式解碼和濾波之類的解碼任務(wù)的多個(gè)解碼模塊。解碼器(550)的許多組件被用于圖片內(nèi)解碼和圖片間解碼這兩者。由那些組件執(zhí)行的確切操作可取決于正被解壓縮的信息的類型而變化。經(jīng)編碼的視頻位流的格式(605)可以是Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264、H.265)、或VPx格式、或其它格式的變型或擴(kuò)展。
圖片可被組織成相同尺寸或不同尺寸的多個(gè)小塊。一個(gè)圖片還可以被組織成一個(gè)或多個(gè)片。片或小塊的內(nèi)容可被進(jìn)一步組織成塊或其它樣本值集。塊可以在不同的階段被進(jìn)一步細(xì)分。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊可進(jìn)而被劃分成更小的樣本值塊。在例如針對(duì)H.264/AVC標(biāo)準(zhǔn)的各解碼實(shí)現(xiàn)中,圖片被劃分成各宏塊和塊。在例如針對(duì)H.265/HEVC標(biāo)準(zhǔn)的解碼實(shí)現(xiàn)中,圖片被分割成各CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
參考圖6,緩沖器在經(jīng)編碼的視頻位流(605)中接收經(jīng)編碼的數(shù)據(jù),并使得接收到的經(jīng)編碼數(shù)據(jù)可用于解析器/熵解碼器(610)。解析器/熵解碼器(610)通常應(yīng)用在編碼器(340)中執(zhí)行的熵編碼的逆對(duì)經(jīng)熵編碼的數(shù)據(jù)進(jìn)行熵解碼(例如其中二值化使用指數(shù)-Golomb或Golomb-Rice的上下文自適應(yīng)二進(jìn)制算術(shù)解碼)。作為解析和熵解碼的結(jié)果,解析器/熵解碼器(610)產(chǎn)生通用控制數(shù)據(jù)(622)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)(或者,對(duì)于調(diào)色板模式的逸出模式而言,為經(jīng)量化的樣本值)、幀內(nèi)預(yù)測(cè)數(shù)據(jù)(642)、運(yùn)動(dòng)數(shù)據(jù)(652)、調(diào)色板模式數(shù)據(jù)(682)以及濾波器控制數(shù)據(jù)(662)。單元的調(diào)色板模式數(shù)據(jù)(682)包括指示該單元的調(diào)色板(其可相關(guān)于預(yù)測(cè)的調(diào)色板來編碼)以及該單元的索引值(索引圖)的信息。
通用解碼控件(620)接收通用控制數(shù)據(jù)(622)。例如,通用控制數(shù)據(jù)(622)包括指示針對(duì)某單元的圖片內(nèi)編碼是使用調(diào)色板編碼模式還是空間預(yù)測(cè)(例如,每個(gè)經(jīng)圖片內(nèi)預(yù)測(cè)的單元一個(gè)標(biāo)志值)的信息。通用解碼控件(620)將控制信號(hào)(未示出)提供給其它模塊(例如縮放器/逆變換器(635)、圖片內(nèi)預(yù)測(cè)器(645)、運(yùn)動(dòng)補(bǔ)償器(655)、調(diào)色板模式解碼器(685)、以及幀內(nèi)/幀間切換)以設(shè)置和改變解碼期間的解碼參數(shù)。
參考圖5,在適當(dāng)時(shí),當(dāng)執(zhí)行其解碼處理時(shí),視頻解碼器(550)可將一個(gè)或多個(gè)先前解碼的圖片(569)用作圖片間預(yù)測(cè)的參考圖片。視頻解碼器(550)從經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(560)中讀取這樣的先前解碼的圖片(569),經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域是解碼圖片緩沖器(670)的示例。參考圖6,如果當(dāng)前圖片是使用圖片間預(yù)測(cè)來預(yù)測(cè)的,則運(yùn)動(dòng)補(bǔ)償器(655)接收運(yùn)動(dòng)數(shù)據(jù)(652),諸如MV數(shù)據(jù)、參考圖片選擇數(shù)據(jù)、以及合并模式索引值。運(yùn)動(dòng)補(bǔ)償器(655)將MV應(yīng)用于來自經(jīng)解碼圖片緩沖器(670)的(諸)經(jīng)重構(gòu)的參考圖片。運(yùn)動(dòng)補(bǔ)償器(655)產(chǎn)生針對(duì)當(dāng)前圖片中的幀間編碼塊的運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)。
在視頻解碼器(550)的分開的路徑中,圖片內(nèi)預(yù)測(cè)器(645)接收幀內(nèi)預(yù)測(cè)數(shù)據(jù)(642),諸如指示所使用的預(yù)測(cè)模式/方向的信息。對(duì)于幀內(nèi)空間內(nèi)預(yù)測(cè),圖片內(nèi)預(yù)測(cè)器(645)根據(jù)預(yù)測(cè)模式/方向使用當(dāng)前圖片的重構(gòu)(638)的值,從當(dāng)前圖片的相鄰的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前圖片的當(dāng)前塊的樣本值。或者,對(duì)于幀內(nèi)塊復(fù)制模式,圖片內(nèi)預(yù)測(cè)器(545)使用依據(jù)當(dāng)前塊的位移(塊向量)指示的參考?jí)K的先前重構(gòu)的樣本值來預(yù)測(cè)當(dāng)前塊的樣本值。
對(duì)于調(diào)色板解碼模式,調(diào)色板模式解碼器(685)接收調(diào)色板模式數(shù)據(jù)(682),諸如表示調(diào)色板和索引值的信息。調(diào)色板模式解碼器(685)使用表示某單元(例如CU)的至少一些像素的調(diào)色板。調(diào)色板將索引值映射到在該單元中使用的對(duì)應(yīng)的基礎(chǔ)色彩。在解碼期間,對(duì)于該單元中的各像素,來自調(diào)色板的索引值被這些像素的適當(dāng)基礎(chǔ)色彩取代。該單元中的經(jīng)逸出編碼的像素可使用該經(jīng)逸出編碼的像素的逸出代碼(調(diào)色板中的特殊索引值)和(諸)經(jīng)量化的樣本值來解碼,經(jīng)量化的樣本值如以下所描述的那樣重構(gòu)。調(diào)色板可基于信號(hào)化在位流中的調(diào)色板模式數(shù)據(jù)(682)逐單元地改變。
對(duì)于非調(diào)色板模式,幀內(nèi)/幀間切換選擇運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)或圖片內(nèi)預(yù)測(cè)的值以供用作針對(duì)給定塊的預(yù)測(cè)(658)。例如,當(dāng)H.265/HEVC句法被遵循時(shí),可以基于為圖片中的CU編碼的句法元素來控制幀內(nèi)/幀間切換,該圖片可以包含幀內(nèi)預(yù)測(cè)的CU和幀間預(yù)測(cè)的CU。當(dāng)殘量值已經(jīng)被編碼/信號(hào)化時(shí),視頻解碼器(550)將預(yù)測(cè)(658)與重構(gòu)的殘量值組合以產(chǎn)生來自視頻信號(hào)的內(nèi)容的重構(gòu)(638)。當(dāng)殘量值尚未被編碼/信號(hào)化時(shí),視頻解碼器(550)將預(yù)測(cè)(658)的值用作重構(gòu)(638)。在調(diào)色板模式中,視頻編碼器(550)跳過殘量解碼操作,但可對(duì)已用逸出模式編碼的像素的樣本值進(jìn)行逆量化。
對(duì)于非調(diào)色板模式,視頻解碼器(550)還重構(gòu)預(yù)測(cè)殘量值。為了在殘量值已被編碼/信號(hào)化時(shí)重構(gòu)殘量,縮放器/逆變換器(635)接收并處理經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)。在縮放器/逆變換器(635)中,縮放器/逆量化器對(duì)經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。縮放器/逆變換器(635)基于位流中的句法元素為圖片、小塊、片和/或視頻的其它部分設(shè)置QP值。逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測(cè)殘量值或樣本值的塊。例如,逆頻率變換器將逆塊變換應(yīng)用到頻率變換系數(shù),從而產(chǎn)生樣本值數(shù)據(jù)或預(yù)測(cè)殘量數(shù)據(jù)。逆頻率變換可以是逆DCT、其整數(shù)近似、或另一種類型的逆頻率變換(例如逆離散正弦變換或其整數(shù)近似)。如果頻率變換在編碼期間被跳過,則逆頻率變換也被跳過。在這種情況下,縮放器/逆量化器可對(duì)預(yù)測(cè)殘量數(shù)據(jù)(或樣本值數(shù)據(jù))的塊執(zhí)行逆縮放和逆量化,從而產(chǎn)生經(jīng)重構(gòu)的值。視頻解碼器(550)將經(jīng)重構(gòu)的預(yù)測(cè)殘量值于預(yù)測(cè)(658)的預(yù)測(cè)值組合,從而產(chǎn)生重構(gòu)(638)的值。
對(duì)于調(diào)色板模式,為了重構(gòu)任何經(jīng)逸出編碼的像素,在縮放器/逆變換器(635)中,縮放器/逆量化器對(duì)用逸出模式編碼的像素的任何經(jīng)量化樣本值執(zhí)行逆縮放和逆量化。經(jīng)重構(gòu)的樣本值提供重構(gòu)(638)的值,因?yàn)樵谡{(diào)色板模式中預(yù)測(cè)(658)為空。
對(duì)于圖片內(nèi)預(yù)測(cè),重構(gòu)(638)的值可以被饋送回圖片內(nèi)預(yù)測(cè)器(645)。對(duì)于圖片間預(yù)測(cè),重構(gòu)(638)的值可以被進(jìn)一步濾波。在合并器/(諸)濾波器(665)中,視頻解碼器(550)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。視頻解碼器(550)根據(jù)濾波器控制數(shù)據(jù)(662)和濾波自適應(yīng)規(guī)則來執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑各圖片中的各邊界上的間斷。可替換地或另外地應(yīng)用其它濾波(例如去振鈴濾波或ALF;未示出)。小塊邊界可以被選擇性地濾波或根本不被濾波,這取決于視頻解碼器(550)的設(shè)置或經(jīng)編碼的位流數(shù)據(jù)內(nèi)的句法元素。經(jīng)解碼圖片緩沖器(670)緩沖經(jīng)重構(gòu)的當(dāng)前圖片以供在后續(xù)的運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)中使用。
視頻解碼器(550)還可包括后處理濾波器。后處理濾波器可包括去塊濾波、去振鈴濾波、自適應(yīng)維納濾波、膜顆粒再現(xiàn)濾波、SAO濾波或另一種類的濾波。盡管“內(nèi)環(huán)路”濾波是在運(yùn)動(dòng)補(bǔ)償環(huán)路中對(duì)圖片的經(jīng)重構(gòu)的樣本值執(zhí)行的,并因此影響參考圖片的樣本值,但后處理濾波器是在經(jīng)重構(gòu)的樣本值被輸出以供顯示之前在運(yùn)動(dòng)補(bǔ)償環(huán)路外部被應(yīng)用于經(jīng)重構(gòu)的樣本值的。
參考圖5,經(jīng)解碼圖片臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(560)包括多個(gè)圖片緩沖器存儲(chǔ)區(qū)域(561,562,…,56n)。經(jīng)解碼的圖片存儲(chǔ)區(qū)域(560)是經(jīng)解碼的圖片緩沖器(670)的一個(gè)示例。解碼器(550)使用MMCO/PS信息(532)來標(biāo)識(shí)該解碼器可將經(jīng)解碼的圖片(551)存儲(chǔ)在其中的圖片緩沖器(561、562等)。解碼器(550)將經(jīng)解碼的圖片(551)存儲(chǔ)在那個(gè)圖片緩沖器中。
輸出序列發(fā)生器(580)標(biāo)識(shí)按輸出次序?qū)a(chǎn)生的下一圖片何時(shí)可在經(jīng)編碼圖片存儲(chǔ)區(qū)域(560)中獲得。當(dāng)將按輸出次序產(chǎn)生的下一圖片(581)可在經(jīng)解碼圖片存儲(chǔ)區(qū)域(560)中獲得時(shí),輸出序列發(fā)生器(580)讀取該下一圖片并將其輸出到輸出目的地(590)(例如顯示器)。一般來說,輸出序列發(fā)生器(580)將圖片從經(jīng)解碼圖片存儲(chǔ)區(qū)域(560)中輸出的次序可以與解碼器(550)解碼這些圖片的次序不同。
取決于實(shí)現(xiàn)和所希望的解壓縮的類型,視頻解碼器系統(tǒng)(500)和/或視頻解碼器(550)的模塊可以被添加、省略、拆分成多個(gè)模塊、與其他模塊組合和/或替換為類似的模塊。在替換實(shí)施例中,具有不同模塊和/或其他模塊配置的解碼器系統(tǒng)或解碼器執(zhí)行所描述的技術(shù)中的一個(gè)或多個(gè)。解碼器系統(tǒng)的具體實(shí)施例通常使用視頻解碼器系統(tǒng)(500)的變型或補(bǔ)充版本。視頻解碼器的具體實(shí)施例通常使用視頻解碼器(550)的變型或補(bǔ)充版本。所示出的在視頻解碼器系統(tǒng)(500)和視頻解碼器(550)內(nèi)的各模塊之間的關(guān)系指示信息分別在視頻解碼器系統(tǒng)(500)和視頻解碼器(550)中的一般流動(dòng);為簡(jiǎn)單起見,未示出其他關(guān)系。
V.用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼/解碼。
本章節(jié)呈現(xiàn)用于用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼和解碼的方法。在各示例實(shí)現(xiàn)中,這些方法避免在解析經(jīng)逸出編碼的像素時(shí)對(duì)單元級(jí)QP值的依賴性,這可使得編碼/解碼對(duì)數(shù)據(jù)丟失更穩(wěn)健。
A.調(diào)色板模式的介紹。
在調(diào)色板模式中,媒體編碼器(諸如視頻編碼器或圖像編碼器)使用表示基礎(chǔ)色彩的索引值來對(duì)像素進(jìn)行編碼。通常,這些索引值中的每一者與像素中的一不同值(“基礎(chǔ)色彩”)相關(guān)聯(lián)。在編碼期間,用對(duì)應(yīng)的索引值來取代像素。媒體編碼器編碼并信號(hào)化將索引值映射到相應(yīng)的基礎(chǔ)色彩的調(diào)色板以及表示像素的索引值的布置(“索引圖”)。媒體解碼器(諸如視頻解碼器或圖像解碼器)接收并解碼將索引值映射到相應(yīng)基礎(chǔ)色彩的調(diào)色板。使用該調(diào)色板,媒體解碼器用像素的相應(yīng)基礎(chǔ)色彩來取代索引圖中的索引值。
圖7示出單元(710)的樣本值塊。單元(730)為4x4單元。更一般地,對(duì)于二維布置,單元(710)可具有尺寸i x j,imin≤i≤imax且jmin≤j≤jmax,其中i和j可具有相等的值或具有不同的值。值imin、imax、jmin和jmax取決于實(shí)現(xiàn)。例如,對(duì)于針對(duì)H.265/HEVC編碼/解碼的一些實(shí)現(xiàn),imin=j(luò)min=8且imax=j(luò)max=最大允許變換尺寸。由此,單元可具有除4x4以外的尺寸(例如,8x8、16x16或32x32)?;蛘?,媒體解碼器可創(chuàng)建針對(duì)片、小塊、完整圖片、圖片組、或視頻序列的像素的調(diào)色板。
在圖7中,樣本值表示屏幕捕捉內(nèi)容的強(qiáng)度或亮度值,并且樣本值包括統(tǒng)一值和強(qiáng)模式的部分。單元(710)具有三個(gè)針對(duì)不同色彩分量(例如,R、G和B分量,或Y、U和V分量)的樣本值塊。替換地,單元(710)可以是單色的,從而具有單個(gè)樣本值塊。在圖7中,單元(710)包括四個(gè)不同的色彩:(200,120,93)、(168,101,28)、(127,127,127)和(41,41,41)。
媒體編碼器創(chuàng)建將索引值分配給對(duì)應(yīng)的基礎(chǔ)色彩的調(diào)色板(720)。在圖7的示例中,索引值0被分配給色彩(200,120,93),索引值1被分配給色彩(168,101,28),并以此類推。媒體編碼器可根據(jù)其在單元中出現(xiàn)的可能性來將索引值分配給各基礎(chǔ)色彩,使得較常見的樣本值具有較低的索引值,且較不常見的色彩具有較高的索引值,這通常在用較少的位來表示較低的索引值時(shí)導(dǎo)致較高效的編碼。替換地,媒體編碼器可根據(jù)當(dāng)單元被掃描時(shí)的出現(xiàn)次序來將索引值分配給各基礎(chǔ)色彩,其依賴于后面的進(jìn)程(諸如預(yù)測(cè))來利用索引圖的索引值中的冗余性。調(diào)色板(720)可被實(shí)現(xiàn)為查找表或其它數(shù)據(jù)結(jié)構(gòu)。
圖7示出索引圖(730),其中像素已用對(duì)應(yīng)的索引值取代。用索引值取代像素的過程是無損的。(替換地,在有損壓縮變型中,如果精確匹配不可用,則像素可用表示最靠近該像素的基礎(chǔ)色彩的索引值來取代。這可減小調(diào)色板(720)的尺寸但是也引入了可感知的失真。)逸出編碼是用于處理并非用索引值來表示的像素的另一方法。
媒體編碼器編碼并輸出調(diào)色板(720)以及具有表示單元(710)的像素的索引值的索引圖(730)。作為編碼的一部分,索引圖(730)的索引值可用進(jìn)一步的映射操作、預(yù)測(cè)和/或熵編碼來處理。調(diào)色板(720)也可用預(yù)測(cè)和/或熵編碼來進(jìn)一步處理。
在解碼期間,媒體解碼器接收并解碼調(diào)色板(720)和用于索引圖(730)的數(shù)據(jù)。作為解碼的一部分,索引圖(730)的索引值可用熵解碼、映射操作和/或預(yù)測(cè)來處理。同樣,調(diào)色板(720)可用熵解碼和/或預(yù)測(cè)來處理。對(duì)于調(diào)色板模式解碼,媒體解碼器隨后使用調(diào)色板(720)來逆轉(zhuǎn)映射過程,如在圖7中所示的。
在一些情況下,單元包括稀有色彩。例如,稀有色彩可在16x16單元或32x32單元的成百的像素之中僅出現(xiàn)一或二次。但是,稀有色彩可被表示在調(diào)色板中,信號(hào)化稀有色彩的調(diào)色板數(shù)據(jù)的成本可超過益處。取代在調(diào)色板中表示稀有色彩,媒體編碼器可用逸出模式對(duì)具有稀有色彩的像素進(jìn)行編碼。對(duì)于逸出模式,調(diào)色板包括將像素標(biāo)記為是用逸出模式來編碼的特殊索引值。隨后,經(jīng)逸出編碼的像素的樣本值可被量化并熵編碼。媒體編碼器不需要用逸出模式對(duì)稀有色彩進(jìn)行編碼(即,媒體編碼器可在調(diào)色板中表示單元的所有色彩),但是使用逸出模式可在某些情況下改善編碼效率。針對(duì)色彩是否有資格成為稀有色彩的閾值取決于實(shí)現(xiàn)(例如,在單元中小于x次出現(xiàn),其中x為1、2、3或某個(gè)其他閾值;或者小于單元中的像素的y%,其中y為0.5、1.0、2.0或某個(gè)其他閾值)。
圖8a示出用調(diào)色板模式的逸出模式來對(duì)樣本值進(jìn)行編碼的示例。圖8b示出用調(diào)色板模式的逸出模式來對(duì)樣本值進(jìn)行解碼的示例。一般來說,以上針對(duì)圖7的示例描述的選項(xiàng)也適用于圖8a和8b的示例(例如,單元尺寸、樣本值塊的數(shù)目、調(diào)色板的組織、索引值在調(diào)色板中的排序、對(duì)調(diào)色板和索引圖的編碼/解碼、映射的有損變型)。
圖8a示出單元(810)的原始樣本值塊。在圖8a中,單元(810)包括六個(gè)不同的色彩:(200,120,93)、(168,101,28)、(127,127,127)、(41,41,41)、(100,80,120)和(155,91,200)。
媒體編碼器創(chuàng)建將索引值分配給四種基礎(chǔ)色彩(它們是四種最常見的色彩)的調(diào)色板(820)。在圖8a的示例中,索引值0被分配給色彩(200,120,93),索引值1被分配給色彩(168,101,28),并以此類推。兩個(gè)色彩–(100,80,120)和(155,91,200)–沒有用索引值來表示。相反,具有這兩個(gè)稀有色彩之一的任何像素都被逸出編碼。調(diào)色板(820)包括用于標(biāo)記經(jīng)逸出編碼的像素的特殊索引值。在各示例實(shí)現(xiàn)中,特殊索引值是調(diào)色板(820)中的最后一個(gè)索引值,這可改善總編碼效率,因?yàn)槠渌饕当徽J(rèn)定為更常見。在圖8a和8b中,特殊索引值為索引值4。
圖8a示出索引圖(830),其中像素已用對(duì)應(yīng)的索引值取代。兩個(gè)像素已用特殊索引值取代,從而將這兩個(gè)像素標(biāo)記為經(jīng)逸出編碼的像素。媒體編碼器也為經(jīng)逸出編碼的像素產(chǎn)生經(jīng)量化的樣本值的列表(840)。用于量化的QP可以是例如片級(jí)QP,如以下所描述的。在圖8a中,像素(100,80,120)和(155,91,200)的樣本值是使用為12的量化步長(zhǎng)尺寸來量化的,其中量化步長(zhǎng)尺寸取決于QP。經(jīng)量化的樣本值為8(來自100)、7(來自80)、10(來自120)、13(來自155)、8(來自91)和17(來自200)。媒體編碼器還例如使用CABAC對(duì)經(jīng)量化的樣本值進(jìn)行熵編碼。
圖8b示出單元(810)的樣本值的經(jīng)重構(gòu)的塊以及來自圖8a的調(diào)色板(820)、索引圖(830)和經(jīng)量化的樣本值的列表(840)。大多數(shù)像素是通過使用調(diào)色板(820)進(jìn)行逆映射來重構(gòu)的。然而,經(jīng)逸出編碼的像素的樣本值是使用熵解碼和逆量化來重構(gòu)的。對(duì)于經(jīng)逸出編碼的像素,經(jīng)重構(gòu)的樣本值可準(zhǔn)確地或近似地匹配原始樣本值。如圖8b所示,量化可為經(jīng)逸出編碼的像素的一些樣本值引入損失。
在調(diào)色板模式的逸出模式用于H.265/HEVC編碼和解碼的一些實(shí)現(xiàn)中,在量化經(jīng)逸出編碼的像素的樣本值時(shí)使用的QP是用于包括經(jīng)逸出編碼的像素的編碼單元(“CU”)的QP。該QP值可使用CU級(jí)QP偏移值在逐CU的基礎(chǔ)上改變。CU級(jí)QP影響熵編碼和解碼。具體地,在編碼期間,當(dāng)經(jīng)量化的樣本值在進(jìn)行上下文自適應(yīng)二進(jìn)制算術(shù)編碼之前被轉(zhuǎn)換為二進(jìn)制值串時(shí),該串中的二進(jìn)制值的數(shù)目取決于經(jīng)量化的樣本值的可能的最大值。類似地,在解碼期間,結(jié)合對(duì)經(jīng)量化的樣本值的上下文自適應(yīng)二進(jìn)制算術(shù)解碼使用的二進(jìn)制值串的集合取決于經(jīng)量化的樣本值的可能的最大值。該最大值進(jìn)而取決于樣本值的樣本深度和用于量化的QP(在文本中為CU級(jí)QP)。編碼器和解碼器從經(jīng)量化的樣本值的可能的最大值中確定用于表示經(jīng)逸出編碼的像素的經(jīng)量化的樣本值的二進(jìn)制值的數(shù)目。
由此,在解碼期間,經(jīng)逸出編碼的像素的經(jīng)熵編碼、經(jīng)量化的樣本值的正確解析取決于解碼器首先重構(gòu)CU的CU級(jí)QP。解碼器在確定對(duì)于經(jīng)量化的樣本值而言可能的二進(jìn)制值串的集合時(shí)并且因此在確定要從位流讀出多少二進(jìn)制值時(shí)使用CU級(jí)QP。經(jīng)逸出編碼的像素的經(jīng)量化的樣本值的解碼和CU級(jí)QP值之間的此解析依賴性可能是有問題的。具體地,在存在傳輸錯(cuò)誤時(shí),該解析依賴性可導(dǎo)致嚴(yán)重的質(zhì)量降級(jí)。
相反,在H.265/HEVC編碼/解碼的一些實(shí)現(xiàn)中,在經(jīng)量化的變換系數(shù)的解碼和CU級(jí)QP值之間不存在解析依賴性。甚至在QP值可在逐CU的基礎(chǔ)上改變或在CU的一個(gè)塊到另一塊改變時(shí),經(jīng)量化變換系數(shù)的編碼/解碼獨(dú)立于QP值。在從位流解析/熵解碼經(jīng)量化的變換系數(shù)時(shí),不需要重構(gòu)CU級(jí)QP值。因此,不存在對(duì)CU級(jí)QP值的解析依賴性。
B.用于用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素進(jìn)行穩(wěn)健編碼/解碼的通用技術(shù)。
圖9示出用于編碼(包括用調(diào)色板模式的逸出模式對(duì)像素進(jìn)行穩(wěn)健編碼)的通用技術(shù)(900)。媒體編碼器(諸如參考圖3、4a和4b描述的視頻編碼器或其他媒體編碼器)執(zhí)行技術(shù)(900)。
媒體編碼器接收(910)當(dāng)前圖片。媒體編碼器隨后在逐單元的基礎(chǔ)上對(duì)當(dāng)前圖片進(jìn)行編碼。當(dāng)前圖片的單元可以是CU、宏塊、或某種其他類型的單元。作為對(duì)當(dāng)前圖片進(jìn)行編碼的一部分,媒體編碼器對(duì)當(dāng)前圖片的當(dāng)前單元進(jìn)行編碼(920)。媒體編碼器檢查(930)是否要對(duì)當(dāng)前圖片的下一單元繼續(xù),并且如果如此,則通過(與當(dāng)前單元一樣)對(duì)下一單元進(jìn)行編碼來繼續(xù)。在對(duì)當(dāng)前圖片的所有單元進(jìn)行編碼后,媒體編碼器檢查(940)是否要對(duì)下一圖片(例如,視頻序列中的下一圖片)繼續(xù)。如果如此,則媒體編碼器通過接收下一圖片(與當(dāng)前圖片一樣)來繼續(xù)。
在編碼過程期間,對(duì)于至少一個(gè)單元,編碼器用調(diào)色板模式對(duì)該單元進(jìn)行編碼,并且作為調(diào)色板模式編碼的一部分,獨(dú)立于該單元的任何單元級(jí)QP用調(diào)色板模式的逸出模式對(duì)該單元的樣本值進(jìn)行編碼。參考圖11-18在接著的四個(gè)章節(jié)中詳述用于用調(diào)色板模式的逸出模式對(duì)樣本值進(jìn)行編碼的各示例方法。當(dāng)前圖片的其他單元可在沒有經(jīng)逸出編碼的像素的情況下用調(diào)色板模式來編碼,和/或用非調(diào)色板模式來編碼。
媒體編碼器可選擇性地啟用/禁用經(jīng)逸出編碼的像素的樣本值是否獨(dú)立于任何單元級(jí)QP被編碼。例如,片頭部、PPS、SPS或其他句法結(jié)構(gòu)中的標(biāo)志指示用調(diào)色板模式的逸出模式編碼的像素的樣本值是否是獨(dú)立于任何單元級(jí)QP來編碼的。
圖10示出用于進(jìn)行解碼(包括用調(diào)色板模式的逸出模式對(duì)像素進(jìn)行穩(wěn)健解碼)的通用技術(shù)(1000)。媒體解碼器(諸如參考圖5和6描述的視頻解碼器或其他媒體解碼器)執(zhí)行技術(shù)(1000)。
媒體解碼器接收(1010)當(dāng)前圖片的經(jīng)編碼的數(shù)據(jù)。媒體解碼器隨后在逐單元的基礎(chǔ)上對(duì)當(dāng)前圖片進(jìn)行解碼。當(dāng)前圖片的單元可以是CU、宏塊、或某種其他類型的單元。作為對(duì)當(dāng)前圖片進(jìn)行解碼的一部分,媒體解碼器對(duì)當(dāng)前圖片的當(dāng)前單元進(jìn)行解碼(1020)。媒體解碼器檢查(1030)是否要針對(duì)當(dāng)前圖片的下一單元繼續(xù),并且如果如此,則通過(與當(dāng)前單元一樣)對(duì)下一單元進(jìn)行解碼來繼續(xù)。在對(duì)當(dāng)前圖片的所有單元進(jìn)行解碼后,媒體解碼器檢查(1040)是否針對(duì)下一圖片(例如,視頻序列中的下一圖片)繼續(xù)。如果如此,則媒體解碼器通過接收下一圖片的經(jīng)編碼的數(shù)據(jù)(與當(dāng)前圖片一樣)來繼續(xù)。
在解碼過程期間,對(duì)于至少一個(gè)單元,解碼器用調(diào)色板模式對(duì)該單元進(jìn)行解碼,并且作為調(diào)色板模式解碼的一部分,用調(diào)色板模式的逸出模式對(duì)該單元的樣本值進(jìn)行解碼,而沒有對(duì)該單元的單元級(jí)QP的任何解析依賴性。參考圖11-18在接著的四個(gè)章節(jié)中詳述用于用調(diào)色板模式的逸出模式對(duì)樣本值進(jìn)行解碼的各示例方法。當(dāng)前圖片的其他單元可在沒有經(jīng)逸出編碼的像素的情況下用調(diào)色板模式來解碼,和/或用非調(diào)色板模式來解碼。
媒體解碼器可選擇性地啟用/禁用經(jīng)逸出編碼的像素的樣本值是否在沒有對(duì)單元級(jí)QP的任何解析依賴性的情況下被解碼。例如,片頭部、PPS、SPS或其他句法結(jié)構(gòu)中的標(biāo)志指示用調(diào)色板模式的逸出模式編碼的像素的樣本值是否是在沒有對(duì)單元級(jí)QP的解析依賴性的情況下解碼的。
C.第一示例方法-使用片級(jí)QP或其他“恒定”QP。
圖11示出用于使用取決于片級(jí)QP的二值化過程用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行編碼的示例技術(shù)(1100)。示例技術(shù)(1100)是圖9中示出的通用技術(shù)(900)的編碼(920)階段中的處理的示例。在第一示例方法中,當(dāng)前圖片的片包括當(dāng)前單元(例如,當(dāng)前CU)。
媒體編碼器基于該片的片級(jí)QP使用量化步長(zhǎng)尺寸來量化(1110)樣本值。例如,該片級(jí)QP是使用當(dāng)前圖片的圖片級(jí)QP以及片的片級(jí)QP來設(shè)置的。替換地,片級(jí)QP還取決于適用于片中的用調(diào)色板模式的逸出模式編碼的任何樣本值的QP偏移,如參考圖13所描述的。經(jīng)逸出編碼的像素的樣本值的QP偏移可取決于調(diào)色板模式是否被啟用被有條件地信號(hào)化在片的頭部(即,如果調(diào)色板模式被啟用,則QP偏移存在,并且如果調(diào)色板模式被禁用,則QP偏移不存在)。對(duì)于單元的不同塊,片級(jí)QP也可變化,這取決于色彩分量,其中不同的色彩分量具有在圖片級(jí)和/或片級(jí)信號(hào)化的不同QP偏移。在示例實(shí)現(xiàn)中,位流句法不準(zhǔn)許在有經(jīng)逸出編碼的像素的情況下用調(diào)色板模式來編碼單元的單元級(jí)QP(例如,在有經(jīng)逸出編碼的像素的情況下,CU的CU級(jí)QP都不是以調(diào)色板模式來編碼的)。
媒體編碼器將經(jīng)量化的樣本值映射(1120)到含一個(gè)或多個(gè)二進(jìn)制值的串。該串是取決于對(duì)經(jīng)量化的樣本值而言可能的最大值的二值化的部分,該最大值進(jìn)而取決于片級(jí)QP。以下描述二值化的示例。替換地,媒體編碼器使用一些其他形式的二值化。媒體編碼器對(duì)含(諸)二進(jìn)制值的串進(jìn)行熵編碼(1130)。
圖12示出用于使用取決于片級(jí)QP的二值化過程用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行解碼的示例技術(shù)(1200)。示例技術(shù)(1200)是圖10中示出的通用技術(shù)(1000)的解碼(1020)階段中的處理的示例。在第一示例方法中,當(dāng)前圖片的片包括當(dāng)前單元(例如,當(dāng)前CU)。
媒體解碼器確定(1210)取決于對(duì)樣本值的經(jīng)量化的樣本值而言可能的最大值的二值化。最大值取決于片的片級(jí)QP。例如,片級(jí)QP是使用當(dāng)前圖片的圖片級(jí)QP以及片的片級(jí)QP來重構(gòu)的。替換地,片級(jí)QP還取決于適用于片中的用調(diào)色板模式的逸出模式編碼的任何樣本值的QP偏移,如參考圖13所描述的。經(jīng)逸出編碼的像素的樣本值的QP偏移可取決于調(diào)色板模式是否被啟用被有條件地信號(hào)化在片的頭部(即,如果調(diào)色板模式被啟用,則QP偏移存在,并且如果調(diào)色板模式被禁用,則QP偏移不存在)。對(duì)于單元的不同塊,片級(jí)QP也可變化,這取決于色彩分量,其中不同的色彩分量具有信號(hào)化在圖片級(jí)和/或片級(jí)的不同QP偏移。在示例實(shí)現(xiàn)中,位流句法不準(zhǔn)許在有經(jīng)逸出編碼的像素的情況下用調(diào)色板模式來解碼單元的單元級(jí)QP(例如,在有經(jīng)逸出編碼的像素的情況下,CU的CU級(jí)QP都不是用調(diào)色板模式來編碼的)。
媒體解碼器對(duì)經(jīng)量化的樣本值的含一個(gè)或多個(gè)二進(jìn)制值的串進(jìn)行熵解碼(1220)。該熵解碼使用該二值化。隨后,媒體解碼器使用片的片級(jí)QP對(duì)經(jīng)量化的樣本值進(jìn)行逆量化(1230)。
在一些示例實(shí)現(xiàn)中,經(jīng)逸出編碼的像素是使用對(duì)片的各CU“恒定”的QP值來編碼和解碼的。該恒定QP是片級(jí)QP,其可取決于為片的各經(jīng)逸出編碼的像素信號(hào)化的片級(jí)QP偏移,但對(duì)該片的所有CU相同。由于經(jīng)逸出編碼的像素的QP對(duì)于該片的CU是固定的,在對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行算術(shù)編碼/解碼時(shí)使用的串的二進(jìn)制值的數(shù)目也是固定的。(串的二進(jìn)制值的數(shù)目取決于樣本深度和QP值,其指示經(jīng)量化的樣本值的最大可能值。)由此,當(dāng)恒定的片級(jí)QP被使用時(shí),不存在對(duì)經(jīng)逸出編碼的像素的樣本值的CU級(jí)QP值的解析依賴性。同樣,當(dāng)經(jīng)逸出編碼的像素使用恒定的片級(jí)QP時(shí),在調(diào)色板模式中經(jīng)逸出編碼的像素的CU級(jí)QP偏移不需要被信號(hào)化在位流中。
圖13示出具有用于在調(diào)色板模式中信號(hào)化經(jīng)逸出編碼的像素的片級(jí)QP偏移的句法元素的示例句法結(jié)構(gòu)(1300)。具體地,圖13示出用于針對(duì)H.265/HEVC標(biāo)準(zhǔn)的擴(kuò)展的編碼和解碼實(shí)現(xiàn)的片段頭部的句法結(jié)構(gòu)。在句法結(jié)構(gòu)(1300)中,句法元素palette_escape_pixel_qp_delta(調(diào)色板_逸出_像素_qb_增量)、palette_escape_pixel_cb_qp_offset(調(diào)色板_逸出_像素_cb_qb_偏移)和palette_escape_pixel_cr_qp_offset(調(diào)色板_逸出_像素_cr_qb_偏移)有條件的存在。如果調(diào)色板模式被啟用(即,palette_mode_enabled_flag(調(diào)色板_模式_被啟用_標(biāo)志)的值為1),則句法元素palette_escape_pixel_qp_delta存在,并且句法元素palette_escape_pixel_cb_qp_offset和palette_escape_pixel_cr_qp_offset也可存在(如果色度陣列類型不是單色的)。
句法元素palette_escape_pixel_qp_delta指定片中用于經(jīng)逸出編碼的像素的亮度樣本值(或其他主要色彩分量樣本值)的QP值(“EscQpY”)。當(dāng)不存在時(shí),該句法元素的值被推斷等于0。EscQpY被設(shè)為:
EscQpY=SliceQpY+palette_escape_pixel_qp_delta,
其中EscQpY的值被約束為在-QpBdOffsetY到+51的范圍內(nèi),并且QpBdOffsetY被定義在JCTVC-T1005-v2中,其指定H.265/HEVC標(biāo)準(zhǔn)的擴(kuò)展。
句法元素palette_escape_pixel_cb_qp_offset指定在確定片中的經(jīng)逸出編碼的像素的cb色彩分量樣本值(或其他次要色彩分量樣本值)所使用的QP值(“EscQpCb”)時(shí)要與pps_cb_qp_offset(pps_cb_qb_偏移)的值相加的差。palette_escape_pixel_cb_qp_offset的值被約束在-12到+12的范圍內(nèi),其為包括性的。當(dāng)不存在時(shí),該句法元素被推斷為等于0。pps_cb_qp_offset+palette_escape_pixel_cb_qp_offset的值被約束為處于-12到+12的范圍內(nèi),其為包括性的。EscQpCb被設(shè)為:
EscQpCb=Clip3(-QpBdOffsetC,57,EscQpY+pps_cb_qp_offset+palette_escape_pixel_cb_qp_offset),
其中,Clip3(a,b,c)是將c限幅(clip)為處于a和b的范圍內(nèi)的函數(shù),并且其中QpBdOffsetC和pps_cb_qp_offset被定義在JCTVC-T1005-v2中。
類似地,句法元素palette_escape_pixel_cr_qp_offset指定在確定片中的經(jīng)逸出編碼的像素的cr色彩分量樣本值(或其他次要色彩分量樣本值)所使用的QP值(“EscQpCr”)時(shí)要與pps_cr_qp_offset的值相加的差。palette_escape_pixel_cr_qp_offset的值被約束在-12到+12的范圍內(nèi),其為包括性的。當(dāng)不存在時(shí),該句法元素被推斷為等于0。pps_cr_qp_offset+palette_escape_pixel_cr_qp_offset的值被約束為處于-12到+12的范圍內(nèi),其為包括性的。EscQpCr被設(shè)為:
EscQpCr=Clip3(-QpBdOffsetC,57,EscQpY+pps_cr_qp_offset+palette_escape_pixel_cr_qp_offset),
其中pps_cr_qp_offset被定義在JCTVC-T1005-v2中。
在解碼期間,對(duì)于不同的色彩分量,用于經(jīng)逸出編碼的像素的經(jīng)量化的樣本值的逆量化的片級(jí)QP(“qP”)取決于色彩分量的索引cIdx被定義為:
-如果cIdx等于0,qP=max(0,EscQpY);
-否則,如果cIdx等于1,qP=max(0,EscQpCb);以及
-否則(cIdx等于2),qP=max(0,EscQpCr)。
句法元素palette_escape_val(調(diào)色板_逸出_值)表示經(jīng)逸出編碼的像素的經(jīng)量化的樣本值。針對(duì)palette_escape_val的二值化過程如下前進(jìn)。二值化過程接受色彩分量索引cIdx和標(biāo)志cu_transquant_bypass_flag(cu_變換量化_繞過_標(biāo)記)作為輸入,其指示對(duì)于CU變換和量化是否被繞過。二值化過程產(chǎn)生針對(duì)palette_escape_val句法元素的二值化(可能的二進(jìn)制值串的集合)作為輸出。媒體解碼器導(dǎo)出變量bitDepth(位深度)為:
bitDepth=(cIdx==0)?BitDepthY:BitDepthC,
其中BitDepthY(位深度Y)指示主要色彩分量的位深度,并且BitDepthC(位深度C)指示次要色彩分量的位深度。
如果cu_transquant_bypass_flag為真,則媒體解碼器通過調(diào)用在JCTVC-T1005-v2的章節(jié)9.3.3.5中指定的固定長(zhǎng)度二值化過程來導(dǎo)出palette_escape_val的二值化,其中輸入?yún)?shù)被設(shè)為(1<<bitDepth)–1。
另一方面,如果cu_transquant_bypass_flag為假,則媒體解碼器如下導(dǎo)出palette_escape_val的二值化。媒體解碼器如下導(dǎo)出量化參數(shù)qP:
qP=(cIdx==0)?EscQpY:((cIdx==1)EscQpCb?EscQpCr)。
媒體解碼器如下導(dǎo)出變量bdShift(bd移位):
bdShift=14+qP/6。
列表quantScale[](量化比例[])被指定為quantScale[k]={26214,23302,20560,18396,16384,14564},k=0…5。媒體解碼器如下導(dǎo)出經(jīng)截短的二進(jìn)制(“TB”)二值化過程的最大參數(shù)cMax:
cMax=(((1<<bitDepth)-1)*quantScale[qP%6]+(1<<(bdShift-1)))>>bdShift。
最后,為了產(chǎn)生palette_escape_value句法元素的二值化,媒體解碼器調(diào)用在JCTVC-T1005-v2的章節(jié)9.3.3.6中指定的TB二值化過程,其中cMax作為輸入。
在示例實(shí)現(xiàn)中,對(duì)經(jīng)逸出編碼的像素的經(jīng)量化的樣本值的編碼/解碼使用片級(jí)QP。替換地,取代使用片級(jí)QP,調(diào)色板模式的逸出模式使用另一QP值,出于對(duì)片的各單元進(jìn)行編碼/解碼的目的,該另一QP值是“恒定的”。例如,該恒定的QP是圖片級(jí)QP(其可在各色彩分量之間變化)、因小塊而異的QP(其可在各色彩分量之間變化)或另一級(jí)別的QP。
在示例實(shí)現(xiàn)中,經(jīng)逸出編碼的像素的樣本值總是使用片級(jí)QP或其他恒定QP來編碼和解碼。替換地,經(jīng)逸出編碼的像素的樣本值可使用恒定QP或使用CU級(jí)QP來編碼/解碼,這取決于設(shè)置。例如,(在片頭部、PPS、SPS或其他句法結(jié)構(gòu)中的)高級(jí)標(biāo)志控制經(jīng)逸出編碼的像素的樣本值是使用恒定QP還是CU級(jí)QP來編碼/解碼的。該標(biāo)志進(jìn)而控制位流中存在還是不存在經(jīng)逸出編碼的像素的(諸)片級(jí)QP偏移,并控制該位流中存在還是不存在經(jīng)逸出編碼的像素的(諸)CU級(jí)QP偏移。
D.第二示例方法-根據(jù)樣本深度的二值化。
圖14示出用于使用取決于樣本值的樣本深度(即,每樣本值的位數(shù))的二值化過程用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行編碼的示例技術(shù)(1400)。示例技術(shù)(1400)是圖9中示出的通用技術(shù)(900)的編碼(920)階段中的處理的示例。示例技術(shù)(1400)是無損的—經(jīng)逸出編碼的像素的樣本值沒有被量化。
媒體編碼器將樣本值映射(1410)到含一個(gè)或多個(gè)二進(jìn)制值的串。該串是取決于樣本值的樣本深度的固定長(zhǎng)度二值化的一部分。以下描述了固定長(zhǎng)度二值化的示例。替換地,媒體編碼器使用一些其他形式的二值化。媒體編碼器對(duì)含(諸)二進(jìn)制的串進(jìn)行熵編碼(1420)。
圖15示出用于使用取決于樣本值的樣本深度(即,每樣本值的位數(shù))的二值化過程用調(diào)色板模式對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行解碼的示例技術(shù)(1500)。示例技術(shù)(1500)是圖10中示出的通用技術(shù)(1000)的解碼(1020)階段中的處理的示例。示例技術(shù)(1500)是無損過程的一部分-經(jīng)逸出編碼的像素的樣本值沒有被逆量化。
媒體解碼器確定(1510)取決于樣本值的樣本深度的固定長(zhǎng)度二值化。以下描述固定長(zhǎng)度二值化的示例。媒體解碼器對(duì)含樣本值的一個(gè)或多個(gè)二進(jìn)制值的串進(jìn)行熵解碼(1220)。該熵解碼使用固定長(zhǎng)度二值化。
在一些示例實(shí)現(xiàn)中,變量bitBepth指示同一值的樣本深度。媒體解碼器導(dǎo)出變量bitDepth為:
bitDepth=(cIdx==0)?BitDepthY:BitDepthC,
其中BitDepthY指示主要色彩分量的位深度,并且BitDepthC指示次要色彩分量的位深度。媒體解碼器通過調(diào)用在JCTVC-T1005-v2的章節(jié)9.3.3.5中指定的固定長(zhǎng)度二值化過程來導(dǎo)出(句法元素palette_escape_val的)樣本值的二值化,其中輸入?yún)?shù)被設(shè)為(1<<bitDepth)–1。
由于樣本深度通常在高級(jí)別處被定義(例如,針對(duì)視頻序列),二值化過程的輸入是固定的。替換地,經(jīng)逸出編碼的像素的樣本值是使用取決于另一固定規(guī)則的二值化過程來編碼/解碼的。
E.第三和第四示例方法-k階指數(shù)-Golomb二值化
圖16示出用于在調(diào)色板模式中使用k階指數(shù)-Golomb二值化過程對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行編碼的示例技術(shù)(1600)。示例技術(shù)(1600)是圖9中示出的通用技術(shù)(900)的編碼(920)階段中的處理的示例。
媒體編碼器基于片的片級(jí)QP、單元的單元級(jí)QP或其他QP使用量化步長(zhǎng)尺寸來量化(1610)樣本值。例如,QP是使用當(dāng)前圖片的圖片級(jí)QP、片的片級(jí)QP偏移和單元的單元級(jí)QP偏移來設(shè)置的。(即使在單元級(jí)QP偏移不影響解析的情況下(如在以下描述的獨(dú)立于QP的變型中),單元級(jí)QP偏移也可在設(shè)置用于量化的因單元而異的QP時(shí)被使用。)對(duì)于單元的不同塊,QP也可變化,這取決于色彩分量,例如其中不同的色彩分量具有在圖片級(jí)和/或片級(jí)信號(hào)化的不同QP偏移。
媒體編碼器將經(jīng)量化的樣本值映射(1620)到含一個(gè)或多個(gè)二進(jìn)制值的串。該串是取決于輸入值k的k階指數(shù)-Golomb二值化的一部分。以下描述了k階指數(shù)-Golomb二值化的示例。替換地,媒體編碼器使用一些其他形式的二值化。媒體編碼器對(duì)含(諸)二進(jìn)制的串進(jìn)行熵編碼(1630)。
圖17示出用于在調(diào)色板模式中使用k階指數(shù)-Golomb二值化過程對(duì)經(jīng)逸出編碼的像素的樣本值進(jìn)行解碼的示例技術(shù)(1700)。示例技術(shù)(1700)是圖10中示出的通用技術(shù)(1000)的解碼(1020)階段中的處理的示例。
媒體解碼器確定(1710)取決于輸入值k的k階指數(shù)-Golomb二值化。媒體解碼器對(duì)經(jīng)量化的樣本值的含一個(gè)或多個(gè)二進(jìn)制值的串進(jìn)行熵解碼(1720)。該熵解碼使用k階指數(shù)-Golomb二值化。隨后,媒體解碼器基于片的片級(jí)QP、單元的單元級(jí)QP或其他QP使用量化步長(zhǎng)尺寸來逆量化(1730)經(jīng)量化的樣本值。例如,QP是使用當(dāng)前圖片的圖片級(jí)QP、片的片級(jí)QP偏移和/或單元的單元級(jí)QP偏移來重構(gòu)的。(即使在單元級(jí)QP偏移不影響解析的情況下(如在以下描述的獨(dú)立于QP的變型中),單元級(jí)QP偏移也可在設(shè)置用于量化的因單元而異的QP時(shí)被使用。)對(duì)于單元的不同塊,QP也可變化,這取決于色彩分量,例如其中不同的色彩分量具有在圖片級(jí)和/或片級(jí)信號(hào)化的不同QP偏移。
圖18是示出用于k階指數(shù)-Golomb二值化過程的示例技術(shù)的偽代碼列表(1800)。k階指數(shù)-Golomb二值化過程產(chǎn)生將每一可能值(如圖18中示出的,symbolVal)與相應(yīng)的二進(jìn)制值串相關(guān)聯(lián)的二值化。如圖18所示,指定了在針對(duì)每一值symbolVal的二值化過程中產(chǎn)生的串。函數(shù)Abs(X)返回X的絕對(duì)值。對(duì)函數(shù)put(X)的每一次調(diào)用都在二進(jìn)制串的結(jié)束處添加二進(jìn)制值X,其中X等于0或1。
1.獨(dú)立于QP的二值化過程。
在一些示例實(shí)現(xiàn)中,為該解碼預(yù)定義用于k階指數(shù)-Golomb二值化的k值。例如,為經(jīng)逸出編碼的像素的樣本值的編碼和解碼預(yù)先確定或硬編碼k的值?;蛘撸琸值由編碼器設(shè)置,被信號(hào)化在片頭部、PPS、SPS或其他句法結(jié)構(gòu)中,并且由解碼器用作k階指數(shù)-Golomb二值化過程的輸入。由于k值是預(yù)定義的,調(diào)色板模式中針對(duì)經(jīng)逸出編碼的像素的樣本值的二值化過程是獨(dú)立于QP的。
k的值取決于實(shí)現(xiàn)。一般來說,當(dāng)大多數(shù)經(jīng)量化的樣本值為零或接近于零時(shí),較小的k值(諸如為0或1)受到偏好。另一方面,當(dāng)經(jīng)量化的樣本值在范圍方面在各非零值之中更均勻地分布時(shí),甚至在接近于零的值更常見的情況下,較大的k值(諸如,2、3或4)受到偏好。在一些示例實(shí)現(xiàn)中,k為3。
通過這種方法,針對(duì)palette_escape_val的二值化過程如下前進(jìn)。二值化過程接受色彩分量索引cIdx和標(biāo)志cu_transquant_bypass_flag作為輸入,其指示對(duì)于CU變換和量化是否被繞過。二值化過程產(chǎn)生針對(duì)palette_escape_val句法元素的二值化(可能的二進(jìn)制值串的集合)作為輸出。媒體解碼器導(dǎo)出變量bitDepth為:
bitDepth=(cIdx==0)?BitDepthY:BitDepthC,
其中BitDepthY指示主要色彩分量的位深度,并且BitDepthC指示次要色彩分量的位深度。
如果cu_transquant_bypass_flag為真,則媒體解碼器通過調(diào)用在JCTVC-T1005-v2的章節(jié)9.3.3.5中指定的固定長(zhǎng)度二值化過程來導(dǎo)出palette_escape_val的二值化,其中輸入?yún)?shù)被設(shè)為(1<<bitDepth)–1。
另一方面,如果cu_transquant_bypass_flag為假,媒體解碼器如圖18所示導(dǎo)出palette_escape_val的k階指數(shù)-Golomb二進(jìn)制,其中k等于3。
2.獨(dú)立于QP的二值化過程。
在一些示例實(shí)現(xiàn)中,用于k階指數(shù)-Golomb二值化的k值是在解碼期間取決于QP值來導(dǎo)出的。例如,在當(dāng)前單元是當(dāng)前圖片的片的一部分時(shí),k值可至少部分地基于片的片級(jí)QP來設(shè)置。由此,k階指數(shù)-Golomb二進(jìn)制的階是自適應(yīng)的,這取決于片級(jí)QP。當(dāng)QP為高時(shí),由于大多數(shù)經(jīng)量化的樣本值被預(yù)期為處于相對(duì)較小的值范圍中的零或接近于零,因此k值可被設(shè)為較低值(諸如0或1)。另一方面,當(dāng)QP為低時(shí),由于較多非零的經(jīng)量化的樣本值被預(yù)期,并且那些非零的經(jīng)量化的樣本值可分布在較大的值范圍上,因此k值可被設(shè)為較高值(諸如,2、3或4)。
通過這種方法,針對(duì)palette_escape_val的二值化過程如下前進(jìn)。二值化過程接受色彩分量索引cIdx和標(biāo)志cu_transquant_bypass_flag作為輸入,其指示對(duì)于CU變換和量化是否被繞過。二值化過程產(chǎn)生針對(duì)palette_escape_val句法元素的二值化(可能的二進(jìn)制值串的集合)作為輸出。媒體解碼器導(dǎo)出變量bitDepth為:bitDepth=(cIdx==0)?BitDepthY:BitDepthC.
如果cu_transquant_bypass_flag為真,則媒體解碼器通過調(diào)用在JCTVC-T1005-v2的章節(jié)9.3.3.5中指定的固定長(zhǎng)度二值化過程來導(dǎo)出palette_escape_val的二值化,其中輸入?yún)?shù)被設(shè)為(1<<bitDepth)–1。
另一方面,如果cu_transquant_bypass_flag為假,則媒體解碼器如下導(dǎo)出palette_escape_val的二值化。媒體解碼器如下導(dǎo)出量化參數(shù)qP:
如果cIdx==0,qP=SliceQpY
否則,如果cIdx==1,
qP=Clip3(-QpBdOffsetC,57,SliceQpY+pps_cb_qp_offset+slice_cb_qp_offset)
否則(cIdx==2),
qP=Clip3(-QpBdOffsetC,57,SliceQpY+pps_cr_qp_offset+slice_cr_qp_offset)
替換地,QP值qP以某一其它方式來設(shè)置。例如:
QpY=SliceQpY
qPiCb=Clip3(-QpBdOffsetC,57,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(-QpBdOffsetC,57,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
如果ChromaArrayType等于1,則基于索引qPi分別等于qPiCb和qPiCr,變量qPCb和qPCr被設(shè)為等于如在JCTVC-T1005-v2的表8-10中指定的QpC的值。否則,基于索引qPi分別等于qPiCb和qPiCr,變量qPCb和qPCr被設(shè)為等于Min(qPi,51)。此后:
Qp′Y=QpY+QpBdOffsetY
Qp′Cb=qPCb+QpBdOffsetC
Qp′Cr=qPCr+QpBdOffsetC
最后,取決于色彩分量設(shè)置樣本值的適當(dāng)QP。如果cIdx等于0,qP被設(shè)為Qp′Y。如果cIdx等于1,qP被設(shè)為Qp′Cb。如果cIdx等于2,qP被設(shè)為Qp′Cr。
媒體解碼器如下導(dǎo)出變量bdShift:
bdShift=14+qP/6.
列表quantScale[]被指定為quantScale[k]={26214,23302,20560,18396,16384,14564},k=0…5。媒體解碼器如下導(dǎo)出經(jīng)截短的二進(jìn)制(“TB”)二值化過程的最大參數(shù)cMax:
cMax=(((1<<bitDepth)-1)*quantScale[qP%6]+(1<<(bdShift-1)))>>bdShift。
由此,cMax指示在調(diào)色板模式中經(jīng)逸出編碼的像素的(給定色彩分量的)經(jīng)量化的樣本值的最大可能值。
隨后,媒體解碼器根據(jù)以下偽代碼基于cMax確定k(“order(階)”)的值。
order=0;
while(cMax>1){order++;cMax>>=1;}
order的值可進(jìn)一步通過添加固定偏移(諸如,0、1、2、-1、-2等)來修改,其中order被限幅為大于或等于0。替換地,為了計(jì)算趨于稍微較高的order的值,媒體解碼器根據(jù)以下偽代碼基于cMax確定k(階)的值:
order=0;
while(cMax>0){order++;cMax>>=1;}
最后,媒體解碼器如圖18所示導(dǎo)出palette_escape_val的k階指數(shù)-Golomb二值化,其中k等于如上導(dǎo)出的值“order(階)”。
F.其他示例方法-組合。
前述方法可被組合使用。例如,媒體編碼器確定單元是用無損方式還是有損方式編碼的。如果單元是用無損方式編碼的,則媒體編碼器使用在章節(jié)V.D中描述的方法。否則(單元是用有損方式編碼的),媒體編碼器使用在章節(jié)V.E中描述的方法之一。相應(yīng)的媒體解碼器確定單元已被用無損方式還是有損方式編碼。如果單元已被用無損方式編碼,則媒體解碼器使用在章節(jié)V.D中描述的方法。否則(單元已被用有損方式編碼),媒體編碼器使用在章節(jié)V.E中描述的方法之一。
鑒于可應(yīng)用所公開的本發(fā)明的原理的許多可能的實(shí)施例,應(yīng)當(dāng)認(rèn)識(shí)到,所示實(shí)施例僅是本發(fā)明的優(yōu)選示例,并且不應(yīng)認(rèn)為是限制本發(fā)明的范圍。相反,本發(fā)明的范圍由后續(xù)的權(quán)利要求來界定。我們要求作為我們的發(fā)明保護(hù)落入這些權(quán)利要求范圍和精神內(nèi)的所有內(nèi)容。