據(jù)可指示用于編碼對應(yīng)幀的編碼/預(yù)測模式。
[0071]視頻編碼器
[0072]圖2A為說明可實施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻編碼器的實例的框圖。視頻編碼器20可經(jīng)配置以處理視頻位流的單層(例如,針對HEVC)。另外,視頻編碼器20可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的任一者或全部,包含(但不限于)確定用于再取樣過程及上文及下文關(guān)于圖4到6更詳細(xì)地描述的相關(guān)過程的舍入偏移的方法。作為一個實例,層間預(yù)測單元66(當(dāng)提供時)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。然而,本發(fā)明的方面不限于此。在一些實例中,本發(fā)明中描述的技術(shù)可在視頻編碼器20的各種組件當(dāng)中共用。在一些實例中,另外或替代性地,處理器(未展示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。
[0073]出于解釋的目的,本發(fā)明描述在HEVC譯碼的上下文中的視頻編碼器20。然而,本發(fā)明的技術(shù)可適用于其它譯碼標(biāo)準(zhǔn)或方法。圖2A的編碼器20說明編解碼器的單層。然而,如將關(guān)于圖2B進(jìn)一步描述,可復(fù)制視頻編碼器20中的一些或全部以用于根據(jù)多層編解碼器的處理。
[0074]視頻編碼器20可執(zhí)行視頻切片內(nèi)的視頻塊的幀內(nèi)、幀間及層間預(yù)測(有時被稱作幀內(nèi)、幀間或?qū)娱g譯碼)。幀內(nèi)譯碼依賴于空間預(yù)測來減少或移除給定視頻幀或圖片內(nèi)的視頻中的空間冗余。幀間譯碼依賴于時間預(yù)測來減少或移除視頻序列的鄰近幀或圖片內(nèi)的視頻中的時間冗余。層間譯碼依賴于基于相同視頻譯碼序列內(nèi)的不同層內(nèi)的視頻的預(yù)測。幀內(nèi)模式(I模式)可指若干基于空間的譯碼模式中的任一者。幀間模式(例如,單向預(yù)測(P模式)或雙向預(yù)測(B模式))可指若干基于時間的譯碼模式中的任一者。
[0075]如圖2A中所展示,視頻編碼器20接收待編碼視頻幀內(nèi)的當(dāng)前視頻塊。在圖2A的實例中,視頻編碼器20包含模式選擇單元40、參考幀存儲器64、求和器50、變換處理單元52、量化單元54及熵編碼單元56。模式選擇單元40又包含運動補償單元44、運動估計單元42、幀內(nèi)預(yù)測單元46、層間預(yù)測單元66及分割單元48。參考幀存儲器64可包含經(jīng)解碼圖片緩沖器。經(jīng)解碼圖片緩沖器為具有其一般含義的廣義術(shù)語,且在一些實施例中是指參考幀的視頻編解碼器管理式數(shù)據(jù)結(jié)構(gòu)。
[0076]對于視頻塊重建構(gòu),視頻編碼器20還包含反量化單元58、反變換單元60及求和器62。也可包含解塊濾波器(圖2A中未展示)以濾波塊邊界以從經(jīng)重建構(gòu)視頻移除成塊效應(yīng)偽影。如果需要,解塊濾波器將通常濾波求和器62的輸出。除解塊濾波器之外,還可使用額外濾波器(環(huán)路內(nèi)或環(huán)路后)。為簡潔起見未展示此類濾波器,但如果需要,此類濾波器可濾波求和器50的輸出(作為環(huán)路內(nèi)濾波器)。
[0077]在編碼過程期間,視頻編碼器20接收待譯碼視頻幀或切片。所述幀或切片可劃分成多個視頻塊。運動估計單元42及運動補償單元44相對于一或多個參考幀中的一或多個塊執(zhí)行所接收視頻塊的幀間預(yù)測性譯碼以提供時間預(yù)測。幀內(nèi)預(yù)測單元46可替代性地相對于與待譯碼塊相同的幀或切片中的一或多個相鄰塊執(zhí)行所接收視頻塊的幀內(nèi)預(yù)測性譯碼以提供空間預(yù)測。視頻編碼器20可執(zhí)行多個譯碼遍次(例如)以為每一視頻數(shù)據(jù)塊選擇適當(dāng)譯碼模式。
[0078]此外,分割單元48可基于先前譯碼遍次中的先前分割方案的評估將視頻數(shù)據(jù)塊分割成子塊。舉例來說,分割單元48可最初將幀或切片分割成LCU,并基于速率失真分析(例如,速率失真優(yōu)化等)將LCU中的每一者分割成子CU。模式選擇單元40可進(jìn)一步產(chǎn)生指示將LCU分割成子CU的四叉樹數(shù)據(jù)結(jié)構(gòu)。四叉樹的葉節(jié)點CU可包含一或多個HJ及一或多個TU。
[0079]模式選擇單元40可(例如)基于誤差結(jié)果選擇譯碼模式中的一者(幀內(nèi)、幀間或?qū)娱g預(yù)測模式),并將所得經(jīng)幀內(nèi)、幀間或?qū)娱g譯碼塊提供到求和器50來產(chǎn)生殘余塊數(shù)據(jù)且提供到求和器62以重建構(gòu)經(jīng)編碼塊以用作參考幀。模式選擇單元40還將語法元素(例如,運動向量、幀內(nèi)模式指示符、分割信息及其它此類語法信息)提供到熵編碼單元56。
[0080]運動估計單元42與運動補償單元44可高度集成,但出于概念上的目的而分離地說明。由運動估計單元42執(zhí)行的運動估計為產(chǎn)生運動向量的過程,所述過程估計視頻塊的運動。舉例來說,運動向量可指示當(dāng)前視頻幀或圖片內(nèi)的視頻塊的PU相對于參考幀(或其它經(jīng)譯碼單元)內(nèi)的預(yù)測性塊相對于當(dāng)前幀(或其它經(jīng)譯碼單元)內(nèi)正經(jīng)譯碼的當(dāng)前塊的位移。預(yù)測性塊為發(fā)現(xiàn)在像素差方面密切地匹配待譯碼塊的塊,其可通過絕對差總和(SAD)、平方差總和(SSD)或其它差量度來確定。在一些實例中,視頻編碼器20可計算存儲在參考幀存儲器64中的參考圖片的子整數(shù)像素位置的值。舉例來說,視頻編碼器20可內(nèi)插參考圖片的四分之一像素位置、八分之一像素位置或其它分?jǐn)?shù)像素位置的值。因此,運動估計單元42可相對于全像素位置及分?jǐn)?shù)像素位置執(zhí)行運動搜索并輸出具有分?jǐn)?shù)像素精度的運動向量。
[0081]運動估計單元42通過比較經(jīng)幀間譯碼切片中的視頻塊的PU的位置與參考圖片的預(yù)測性塊的位置來計算PU的運動向量。參考圖片可選自第一參考圖片列表(列表O)或第二參考圖片列表(列表I),其中的每一者識別存儲在參考幀存儲器64中的一或多個參考圖片。運動估計單元42將所計算的運動向量發(fā)送到熵編碼單元56及運動補償單元44。
[0082]由運動補償單元44執(zhí)行的運動補償可涉及基于由運動估計單元42確定的運動向量而提取或產(chǎn)生預(yù)測性塊。在一些實例中,運動估計單元42及運動補償單元44可在功能上集成。在接收到當(dāng)前視頻塊的PU的運動向量之后,運動補償單元44可在參考圖片列表中的一者中定位運動向量指向的預(yù)測性塊。求和器50通過從經(jīng)譯碼的當(dāng)前視頻塊的像素值減去預(yù)測性塊的像素值從而形成像素差值來形成殘余視頻塊,如下文所論述。在一些實施例中,運動估計單元42可相對于明度分量執(zhí)行運動估計,且運動補償單元44可針對色度分量及明度分量兩者使用基于明度分量所計算的運動向量。模式選擇單元40可產(chǎn)生與視頻塊及視頻切片相關(guān)聯(lián)的由視頻解碼器30在解碼視頻切片的視頻塊時使用的語法元素。
[0083]作為如上文所描述由運動估計單元42及運動補償單元44執(zhí)行的幀間預(yù)測的替代方案,幀內(nèi)預(yù)測單元46可對當(dāng)前塊進(jìn)行幀內(nèi)預(yù)測或計算。具體來說,幀內(nèi)預(yù)測單元46可確定用以編碼當(dāng)前塊的幀內(nèi)預(yù)測模式。在一些實例中,幀內(nèi)預(yù)測單元46可(例如)在單獨編碼編次期間使用各種幀內(nèi)預(yù)測模式來編碼當(dāng)前塊,且?guī)瑑?nèi)預(yù)測單元46(或在一些實例中為模式選擇單元40)可從測試模式選擇適當(dāng)幀內(nèi)預(yù)測模式來使用。
[0084]舉例來說,幀內(nèi)預(yù)測單元46可使用速率失真分析計算用于各種所測試幀內(nèi)預(yù)測模式的速率失真值,并從所測試模式當(dāng)中選擇具有最佳速率失真特性的幀內(nèi)預(yù)測模式。速率失真分析一般確定經(jīng)編碼塊與經(jīng)編碼以產(chǎn)生經(jīng)編碼塊的原始未經(jīng)編碼塊之間的失真(或誤差)量,以及用于產(chǎn)生經(jīng)編碼塊的位速率(即,位數(shù)目)。幀內(nèi)預(yù)測單元46可從用于各種經(jīng)編碼塊的失真及速率計算比率,以確定哪個幀內(nèi)預(yù)測模式對于所述塊展現(xiàn)最佳速率失真值。
[0085]在針對塊選擇幀內(nèi)預(yù)測模式之后,幀內(nèi)預(yù)測單元46可將指示用于所述塊的選定幀內(nèi)預(yù)測模式的信息提供到熵編碼單元56。熵編碼單元56可編碼指示選定幀內(nèi)預(yù)測模式的信息。視頻編碼器20可在所發(fā)射的位流中包含配置數(shù)據(jù),所述配置數(shù)據(jù)可包含多個幀內(nèi)預(yù)測模式索引表及多個經(jīng)修改幀內(nèi)預(yù)測模式索引表(還被稱作碼字映射表)、各種塊的編碼上下文的定義,及用于所述上下文中的每一者的最可能幀內(nèi)預(yù)測模式、幀內(nèi)預(yù)測模式索引表及經(jīng)修改幀內(nèi)預(yù)測模式索引表的指示。
[0086]視頻編碼器20可包含層間預(yù)測單元66。層間預(yù)測單元66經(jīng)配置以使用可用于SVC中的一或多個不同層(例如,基礎(chǔ)層或參考層)來預(yù)測當(dāng)前塊(例如,EL中的當(dāng)前塊)。此預(yù)測可被稱為層間預(yù)測。層間預(yù)測單元66利用預(yù)測方法以減少層間冗余,借此改善譯碼效率且減少計算資源要求。層間預(yù)測的一些實例包含層間幀內(nèi)預(yù)測、層間運動預(yù)測及層間殘余預(yù)測。層間幀內(nèi)預(yù)測使用基礎(chǔ)層中的共置塊的重建構(gòu)來預(yù)測增強層中的當(dāng)前塊。層間運動預(yù)測使用基礎(chǔ)層的運動信息來預(yù)測增強層中的運動。層間殘余預(yù)測使用基礎(chǔ)層的殘余來預(yù)測增強層的殘余。當(dāng)基礎(chǔ)層及增強層具有不同空間分辨率時,可由層間預(yù)測單元66執(zhí)行使用時間縮放功能的空間運動向量縮放及/或?qū)娱g位置映射,如下文更詳細(xì)描述。
[0087]視頻編碼器20通過從經(jīng)譯碼的原始視頻塊減去來自模式選擇單元40的預(yù)測數(shù)據(jù)而形成殘余視頻塊。求和器50表示執(zhí)行此減法運算的組件。變換處理單元52將例如離散余弦變換(DCT)或概念上類似變換的變換應(yīng)用于殘余塊,從而產(chǎn)生包括殘余變換系數(shù)值的視頻塊。變換處理單元52可執(zhí)行概念上類似于DCT的其它變換。舉例來說,也可使用離散正弦變換(DST)、小波變換、整數(shù)變換、子頻帶變換或其它類型的變換。
[0088]變換處理單元52可將變換應(yīng)用于殘余塊,從而產(chǎn)生殘余變換系數(shù)塊。所述變換可將殘余信息從像素值域轉(zhuǎn)換到變換域(例如,頻域)。變換處理單元52可將所得變換系數(shù)發(fā)送到量化單元54。量化單元54量化變換系數(shù)以進(jìn)一步減少位速率。量化過程可減少與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度??赏ㄟ^調(diào)整量化參數(shù)修改量化程度。在一些實例中,量化單元54可接著執(zhí)行對包含經(jīng)量化變換系數(shù)的矩陣的掃描。替代性地,熵編碼單元56可執(zhí)行掃描。
[0089]在量化之后,熵編碼單元56熵編碼經(jīng)量化變換系數(shù)。舉例來說,熵編碼單元56可執(zhí)行上下文自適應(yīng)可變長度譯碼(CAVLC)、上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(CABAC)、基于語法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(SBAC)、概率區(qū)間分割熵(PIPE)譯碼或另一熵譯碼技術(shù)。在基于上下文的熵譯碼的情況下,上下文可基于相鄰塊。在由熵編碼單元56進(jìn)行熵譯碼之后,可將經(jīng)編碼位流發(fā)射到另一裝置(例如,視頻解碼器30),或?qū)⑵浯鏅n以用于稍后發(fā)射或檢索。
[0090]反量化單元58及反變換單元60分別應(yīng)用反量化及反變換,以重建構(gòu)像素域中的殘余塊(例如,用于稍后用作參考塊)。運動補償單元44可通過將殘余塊添加到參考幀存儲器64的幀中的一者的預(yù)測性塊來計算參考塊。運動補償單元44還可將一或多個內(nèi)插濾波器應(yīng)用于經(jīng)重建構(gòu)殘余塊以計算子整數(shù)像素值以用于運動估計。求和器62將經(jīng)重建構(gòu)殘余塊添加到由運動補償單元44產(chǎn)生的運動補償預(yù)測塊以產(chǎn)生經(jīng)重建構(gòu)視頻塊以用于存儲在參考幀存儲器64中。經(jīng)重建構(gòu)視頻塊可由運動估計單元42及運動補償單元44用作用以對后續(xù)視頻幀中的塊進(jìn)行幀間譯碼的參考塊。
[0091]多層視頻編碼器
[0092]圖2B為說明可實施根據(jù)本發(fā)明中描述的方面的技術(shù)的多層視頻編碼器21的實例的框圖。視頻編碼器21可經(jīng)配置以處理多層視頻幀,例如,用于SHVC及多視圖譯碼。另外,視頻編碼器21可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的任一者或全部。
[0093]視頻編碼器21包含視頻編碼器20A及視頻編碼器20B,其中的每一者可經(jīng)配置為圖2A的視頻編碼器20且可執(zhí)行上文關(guān)于視頻編碼器20所描述的功能。另外,如由參考標(biāo)號的再使用所指示,視頻編碼器20A及20B可包含系統(tǒng)及子系統(tǒng)中的至少一些以作為視頻編碼器20。盡管將視頻編碼器21說明為包含兩個視頻編碼器20A及20B,但視頻編碼器21不被如此限制且可包含任何數(shù)目個視頻編碼器20層。在一些實施例中,視頻編碼器21可包含用于接入單元中的每一圖片或幀的視頻編碼器20。舉例來說,包含五個圖片的接入單元可由包含五個編碼器層的視頻編碼器處理或編碼。在一些實施例中,視頻編碼器21可包含比接入單元中的幀多的編碼器層。在一些此類情況下,當(dāng)處理一些接入單元時,視頻編碼器層中的一些可不在作用中。
[0094]除視頻編碼器20A及20B之外,視頻編碼器21可包含再取樣單元90。在一些情況下,再取樣單元90可對所接收視頻幀的基礎(chǔ)層上取樣以(例如)建立增強層。再取樣單元90可對與幀的所接收基礎(chǔ)層相關(guān)聯(lián)的特定信息上取樣,但不對其它信息上取樣。舉例來說,再取樣單元90可對基礎(chǔ)層的空間大小或像素數(shù)目上取樣,但切片數(shù)目或圖片次序計數(shù)可保持恒定。在一些情況下,再取樣單元90可不處理所接收視頻及/或可為任選的。舉例來說,在一些情況下,模式選擇單元40可執(zhí)行上取樣。在一些實施例中,再取樣單元90經(jīng)配置以對層上取樣且重新組織、重新定義、修改或調(diào)整一或多個切片以符合一組切片邊界規(guī)則及/或光柵掃描規(guī)則。盡管主要描述為對基礎(chǔ)層或接入單元中的較低層上取樣,但在一些情況下,再取樣單元90可對層下取樣。舉例來說,如果在視頻的流式傳輸期間減少帶寬,則可對幀下取樣而非上取樣。再取樣單元90也可進(jìn)一步經(jīng)配置以執(zhí)行修剪及/或填補操作。
[0095]再取樣單元90可經(jīng)配置以從較低層編碼器(例如,視頻編碼器20A)的經(jīng)解碼圖片緩沖器114接收圖片或幀(或與圖片相關(guān)聯(lián)的圖片信息)并對圖片(或所接收圖片信息)上取樣。接著可將此經(jīng)上取樣圖片提供到較高層編碼器(例如,視頻編碼器20B)的模式選擇單元40,所述較高層編碼器經(jīng)配置以編碼與較低層編碼器相同的接入單元中的圖片。在一些情況下,較高層編碼器為從較低層編碼器移除的一個層。在其它情況下,在圖2B的層0視頻編碼器與層1編碼器之間可存在一或多個較高層編碼器。
[0096]在一些情況下,可省略或繞過再取樣單元90。在此類情況下,可直接提供來自視頻編碼器20A的經(jīng)解碼圖片緩沖器64的圖片,或至少不提供到再取樣單元90,不提供到視頻編碼器20B的模式選擇單元40。舉例來說,如果提供到視頻編碼器20B的視頻數(shù)據(jù)及來自視頻編碼器20A的經(jīng)解碼圖片緩沖器64的參考圖片具有相同大小或分辨率,則可將參考圖片提供到視頻編碼器20B而無需任何再取樣。
[0097]在一些實施例中,視頻編碼器21使用下取樣單元94對待提供到較低層編碼器的視頻數(shù)據(jù)下取樣,之后將所述視頻數(shù)據(jù)提供到視頻編碼器20A。替代性地,下取樣單元94可為能夠?qū)σ曨l數(shù)據(jù)上取樣或下取樣的再取樣單元90。在又其它實施例中,可省略下取樣單元94。
[0098]如圖2B中所說明,視頻編碼器21可進(jìn)一步包含多路復(fù)用器98或mux。mux 98可輸出來自視頻編碼器21的組合位流??赏ㄟ^從視頻編碼器20A及20B中的每一者獲取位流且使在給定時間處輸出位流交替而建立所述組合位流。雖然在一些情況下可一次一位地交替來自兩個(或在兩個以上視頻編碼器層的情況下更多)位流的位,但在許多情況下不同地組合位流。舉例來說,可通過一次一塊地交替選定位流而建立輸出位流。在另一實例中,可通過從視頻編碼器20A及20B中的每一者輸出非1:1比率的塊而建立輸出位流。舉例來說,可從視頻編碼器20B輸出用于從視頻編碼器20A輸出的每一塊的兩個塊。在一些實施例中,可預(yù)編程來自mux 98的輸出流。在其它實施例中,mux 98可基于從視頻編碼器21外部的系統(tǒng)(例如,從源裝置12上的處理器)接收的控制信號組合來自視頻編碼器20A、20B的位流。控制信號可基于來自視頻源18的視頻的分辨率或位速率、基于信道16的帶寬、基于與用戶相關(guān)聯(lián)的預(yù)訂(例如,付費預(yù)訂對免費預(yù)訂)或基于用于確定來自視頻編碼器21的所要輸出分辨率的任何其它因素而產(chǎn)生。
[0099]視頻解碼器
[0100]圖3A為說明可實施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻解碼器的實例的框圖。視頻解碼器30可經(jīng)配置以處理視頻位流的單層(例如,針對HEVC)。另外,視頻解碼器30可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的任一者或全部,包含(但不限于)確定用于再取樣過程及上文及下文關(guān)于圖4到6更詳細(xì)地描述的相關(guān)過程的舍入偏移的方法。作為一個實例,層間預(yù)測單元75可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。然而,本發(fā)明的方面不限于此。在一些實例中,本發(fā)明中描述的技術(shù)可在視頻解碼器30的各種組件當(dāng)中共用。在一些實例中,另外或替代性地,處理器(未展示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。
[0101]出于解釋的目的,本發(fā)明在HEVC譯碼的上下文中描述視頻解碼器30。然而,本發(fā)明的技術(shù)可適用于其它譯碼標(biāo)準(zhǔn)或方法。圖3A的解碼器30說明編解碼器的單層。然而,如將關(guān)于圖3B進(jìn)一步描述,可復(fù)制視頻編碼器30中的一些或全部以用于根據(jù)多層編解碼器的處理。
[0102]在圖3A的實例中,視頻解碼器30包含熵解碼單元70、運動補償單元72、幀內(nèi)預(yù)測單元74、層間預(yù)測單元75、反量化單元76、反變換單元78、參考幀存儲器82及求和器80。在一些實施例中,運動補償單元72及/或幀內(nèi)預(yù)測單元74可經(jīng)配置以執(zhí)行層間預(yù)測,在此情況下可省略層間預(yù)測單元75。在一些實例中,視頻解碼器30可執(zhí)行一般與關(guān)于視頻編碼器20(圖2A)描述的編碼遍次互逆的解碼遍次。運動補償單元