欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在對(duì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的塊向量預(yù)測(cè)和估計(jì)方面的創(chuàng)新的制作方法

文檔序號(hào):10518143閱讀:243來源:國(guó)知局
在對(duì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的塊向量預(yù)測(cè)和估計(jì)方面的創(chuàng)新的制作方法
【專利摘要】針對(duì)幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)模式的編碼器側(cè)選項(xiàng)方面的創(chuàng)新促成在編碼的碼率失真性能和/或計(jì)算效率方面更高效的幀內(nèi)BC預(yù)測(cè)。例如,這些創(chuàng)新中的一些涉及在塊向量估計(jì)期間對(duì)當(dāng)前塊的重疊區(qū)域內(nèi)的樣本值的估計(jì)。其他創(chuàng)新涉及在編碼或解碼期間使用“乒乓”方法對(duì)塊向量(“BV”)值的預(yù)測(cè)。
【專利說明】在對(duì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的塊向量預(yù)測(cè)和估計(jì)方面的創(chuàng)新
[0001 ] 背景
[0002]工程師使用壓縮(也被稱為源編碼(source coding或source encoding))來降低數(shù)字視頻的比特率。壓縮通過將視頻信息轉(zhuǎn)換成較低比特率的形式來降低存儲(chǔ)和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構(gòu)原始信息的某版本。“編解碼器”是編碼器/解碼器系統(tǒng)。
[0003]在過去的二十年中,已采用了各種視頻編解碼器標(biāo)準(zhǔn),包括ITU-T H.26UH.262(MPEG-2或IS0/IEC 13818-2)、Η.263和H.264(MPEG_4AVC或IS0/IEC 14496-10)標(biāo)準(zhǔn)、MPEG-KIS0/IEC 11172 I 172-2)和MPEG-4視覺(IS0/IEC 14496-2)標(biāo)準(zhǔn)以及SMPTE 421M(VC_1)標(biāo)準(zhǔn)。最近,HEVC標(biāo)準(zhǔn)(ITU-T H.265SIS0/IEC 23008-2)已被批準(zhǔn)。當(dāng)前,正在開發(fā)(例如,針對(duì)可縮放視頻編碼/解碼、針對(duì)在樣本比特深度或色度采樣率方面具有較高保真度的視頻的編碼/解碼、或針對(duì)多視圖編碼/解碼)HEVC標(biāo)準(zhǔn)的擴(kuò)展。視頻編解碼器標(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)的解碼操作。
[0004]幀內(nèi)塊復(fù)制(“BC”)是H.265/HEVC擴(kuò)展的處于開發(fā)中的預(yù)測(cè)模式。對(duì)于幀內(nèi)BC預(yù)測(cè)模式,圖片的當(dāng)前塊的樣本值是使用同一圖片中的先前重構(gòu)的樣本值來預(yù)測(cè)的。塊向量(“BV”)指示從當(dāng)前塊到圖片的包括用于預(yù)測(cè)的先前重構(gòu)的樣本值的區(qū)域的位移。BV被信號(hào)化在比特流中。幀內(nèi)BC預(yù)測(cè)是一種形式的圖片內(nèi)預(yù)測(cè)一一針對(duì)圖片的塊的幀內(nèi)BC預(yù)測(cè)不使用除了同一圖片中的樣本值以外的任何樣本值。
[0005]如當(dāng)前在HEVC標(biāo)準(zhǔn)中的草稿擴(kuò)展中規(guī)定并在針對(duì)HEVC標(biāo)準(zhǔn)的草稿擴(kuò)展的某一參考軟件中實(shí)現(xiàn)的,幀內(nèi)BC預(yù)測(cè)模式具有若干問題。例如,有關(guān)如何使用幀內(nèi)BC預(yù)測(cè)的編碼器側(cè)判定沒有被有效作出。作為另一示例,BV值在許多場(chǎng)景中都沒有被高效地信號(hào)化。
[0006]概述
[0007]概括而言,詳細(xì)的描述呈現(xiàn)了幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)模式的編碼器側(cè)操作方面的創(chuàng)新。例如,這些創(chuàng)新中的一些涉及在塊向量(“BV”)估計(jì)期間估計(jì)當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的方式。其他創(chuàng)新涉及在編碼或解碼期間使用“乒兵”方法對(duì)BV值的預(yù)測(cè),其中在預(yù)測(cè)塊的BV值時(shí),編碼器或解碼器在候選BV值對(duì)之間進(jìn)行選擇。
[0008]根據(jù)本文中描述的創(chuàng)新的一個(gè)方面,編碼器或解碼器處理當(dāng)前圖片的編碼單元(“CU”),其中CU具有四個(gè)預(yù)測(cè)單元(“PU” )。一般來說,CU是用于編碼和解碼的目的的一個(gè)或多個(gè)塊的集合,并且這些PU中的每一 PU是CU內(nèi)用于信號(hào)化預(yù)測(cè)信息和/或預(yù)測(cè)處理的目的的一個(gè)或多個(gè)塊的集合。對(duì)于四個(gè)PU中的每一PU,編碼器或解碼器:(I)使用候選BV值對(duì)中的一個(gè)候選BV值來預(yù)測(cè)BV值,其中標(biāo)志值指示在候選BV值對(duì)之間的選擇,以及(2)使用預(yù)測(cè)的BV值來處理該P(yáng)U的BV值。對(duì)于CU中的不同PU而言,候選BV值對(duì)可以是不同的。例如,對(duì)于第一 PU,候選BV值對(duì)包括第一初始候選BV值(被標(biāo)記為BVinitj))和第二初始候選BV值(被標(biāo)記為BVinitj) ο對(duì)于第二PU,候選BV值對(duì)包括第一PU的BV值和BVinitj)。對(duì)于第三PU,候選BV值對(duì)包括針對(duì)當(dāng)前CU的第一和第二 PU的BV值。最后,對(duì)于第四PU,候選BV值對(duì)包括針對(duì)當(dāng)前CU的第二和第三PU的BV值。然而,對(duì)于當(dāng)前圖片的后續(xù)CU,候選BV值對(duì)包括針對(duì)當(dāng)前CU的第一和第二 HJ的BV值(即使針對(duì)當(dāng)前CU的第一和第二 PU的BV值在針對(duì)當(dāng)前CU的第三和第四PU的BV值之前被處理)。
[0009]根據(jù)本文中描述的創(chuàng)新的另一方面,編碼器或解碼器處理當(dāng)前圖片的多個(gè)CU。這些⑶中的至少一個(gè)⑶具有單個(gè)PU,并且這些⑶中的至少一個(gè)⑶具有多個(gè)PU。對(duì)于多個(gè)⑶中的給定⑶,如果給定⑶具有單個(gè)PU,則編碼器或解碼器(I)使用候選BV值對(duì)(包括存儲(chǔ)在第一 BV緩沖器中的第一初始候選BV值和存儲(chǔ)在第二 BV緩沖器中的第二初始候選BV值)中的一個(gè)候選BV值來預(yù)測(cè)BV值,其中標(biāo)志值指示候選BV值對(duì)之間的選擇,以及(2)使用預(yù)測(cè)的BV值來處理單個(gè)PU的BV值。通過這么做,編碼器或解碼器取決于PU的BV值是否等于存儲(chǔ)在第一BV緩沖器中的BV值來選擇性地更新第一 BV緩沖器和第二 BV緩沖器。
[0010]否則(給定⑶具有多個(gè)PU),對(duì)于這些PU中的每一 PU,編碼器或解碼器(I)使用候選BV值對(duì)中的一個(gè)候選BV值來預(yù)測(cè)BV值,其中標(biāo)志值指示在候選BV值對(duì)之間的選擇,以及(2)使用預(yù)測(cè)的BV值來處理該P(yáng)U的BV值。候選BV值對(duì)對(duì)于不同的PU而言可以是不同的。如果該HJ為給定⑶中的第一或第二 PU,編碼器或解碼器取決于PU的BV值是否等于存儲(chǔ)在第一 BV緩沖器中的BV值來選擇性地更新第一 BV緩沖器和第二 BV緩沖器。對(duì)于給定⑶中的第三PU或第四PU,編碼器跳過更新PV緩沖器。
[0011]根據(jù)本文中描述的創(chuàng)新的另一方面,編碼器估計(jì)在圖片的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。當(dāng)前塊具有多個(gè)更小的塊。重疊區(qū)域覆蓋當(dāng)前塊中處于多個(gè)更小的塊中的至少一個(gè)更小的塊的潛在幀內(nèi)預(yù)測(cè)區(qū)域中的部分。編碼器隨后執(zhí)行BV估計(jì)來確定當(dāng)前塊的BV值。BV估計(jì)使用在當(dāng)前塊的重疊區(qū)域內(nèi)的估計(jì)出的經(jīng)重構(gòu)樣本值中的至少一些。
[0012]針對(duì)BV預(yù)測(cè)和幀內(nèi)BC預(yù)測(cè)模式的編碼器側(cè)選項(xiàng)的創(chuàng)新可以被實(shí)現(xiàn)為方法的一部分、被適配成執(zhí)行該方法的計(jì)算系統(tǒng)的一部分或存儲(chǔ)用于使計(jì)算設(shè)備執(zhí)行該方法的計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì)的一部分。各創(chuàng)新可以結(jié)合地或分開地使用。
[0013]參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點(diǎn)。
[0014]附圖簡(jiǎn)述
[0015]圖1是其中可實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的示圖。
[0016]圖2a和2b是其中可實(shí)現(xiàn)所描述的一些實(shí)施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
[0017]圖3是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例編碼器系統(tǒng)的示圖。
[0018]圖4是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例解碼器系統(tǒng)的示圖。
[0019]圖5a和5b是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻編碼器的示圖。
[0020]圖6是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻解碼器的示圖。
[0021]圖7是示出針對(duì)圖片的塊的幀內(nèi)BC預(yù)測(cè)的示圖。
[0022 ]圖8是示出針對(duì)BV值的搜索范圍的示例約束的示圖。
[0023]圖9是示出用于采用幀內(nèi)BC預(yù)測(cè)模式來進(jìn)行編碼的通用技術(shù)的流程圖,其中該幀內(nèi)BC預(yù)測(cè)模式受制于針對(duì)BV值的選擇的一個(gè)或多個(gè)約束。
[0024]圖10是示出對(duì)圖片的塊的示例Z-掃描次序的示圖。
[0025]圖11是示出BV緩沖器中的候選BV值的示圖,并且圖12是示出另一數(shù)據(jù)結(jié)構(gòu)中的候選BV值的示圖。
[0026]圖13是示出根據(jù)示例乒乓方法對(duì)2Nx2N⑶的2Nx2NHJ的BV預(yù)測(cè)的示例的示圖。
[0027]圖14是示出根據(jù)示例乒乓方法的對(duì)2Nx2N⑶的NxNHJ的BV預(yù)測(cè)的示例的示圖。
[0028]圖15是示出根據(jù)示例乒乓方法的對(duì)2Nx2N CU的Nx2N PU或2NxN PU的BV預(yù)測(cè)的示例的示圖。
[0029]圖16是根據(jù)示例乒乓方法的用于用多個(gè)PU來預(yù)測(cè)CU的BV值的示例技術(shù)的流程圖。
[0030]圖17是示出根據(jù)示例乒乓方法的用于預(yù)測(cè)CU的BV值的示例技術(shù)的流程圖。
[0031]圖18是示出用于在BV估計(jì)期間選擇性地將各塊合并成較大的塊的通用技術(shù)的流程圖。
[0032]圖19是示出在BV估計(jì)期間選擇性地將各塊合并成較大的塊的優(yōu)點(diǎn)的示圖。
[0033]圖20是示出用于為塊并發(fā)地執(zhí)行BV估計(jì)和作出塊拆分判定的通用技術(shù)的流程圖。
[0034]圖21是示出用于為塊并發(fā)地評(píng)估候選BV值以及塊拆分判定的示例技術(shù)的流程圖。
[0035]圖22a和22b是示出在BV估計(jì)期間當(dāng)前塊的重疊區(qū)域的示圖。
[0036]圖23是示出編碼器用來估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的BV估計(jì)的示例技術(shù)的流程圖。
[0037]圖24是示出在BV估計(jì)期間具有采用YUV4: 2:2格式的視頻的最小變換尺寸的重疊區(qū)域的示圖。
[0038]詳細(xì)描述
[0039]該詳細(xì)描述呈現(xiàn)了編碼和解碼期間的塊向量(“BV”)預(yù)測(cè)方面以及編碼期間對(duì)幀內(nèi)塊復(fù)制(“BC")預(yù)測(cè)模式的編碼器側(cè)判定方面的創(chuàng)新具體地,該詳細(xì)描述呈現(xiàn)用于在BV估計(jì)期間估計(jì)在當(dāng)前塊的重疊區(qū)域內(nèi)的樣本值的創(chuàng)新。該詳細(xì)描述還呈現(xiàn)在編碼或解碼期間使用“乒兵”方法的BV預(yù)測(cè)的創(chuàng)新,根據(jù)此,編碼器或解碼器在預(yù)測(cè)塊的BV值時(shí)在候選BV值對(duì)之間進(jìn)行選擇。
[0040]雖然在此所述的操作是被適當(dāng)描述為由視頻編碼器或視頻解碼器來執(zhí)行,但在許多情況中,所述操作可以由另一類型的媒體處理工具(例如圖像編碼器或圖像解碼器)來執(zhí)行。
[0041]本文中描述的一些創(chuàng)新是參考專用于HEVC標(biāo)準(zhǔn)的句法元素和操作來示出的。例如,對(duì)HEVC標(biāo)準(zhǔn)的草稿版本JCTVC-01005——即2013年11月的“高效視頻編碼(HEVC)范圍擴(kuò)展文本規(guī)范:第5稿” JCTVC-01005-V3作出參考。本文中描述的各創(chuàng)新還可以被實(shí)現(xiàn)為用于其它標(biāo)準(zhǔn)或格式。
[0042]更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動(dòng)作的順序、通過拆分、重復(fù)或忽略某些方法動(dòng)作等來更改。所公開的技術(shù)的各方面能夠被組合地或分開地使用。不同的實(shí)施例使用所描述的創(chuàng)新中的一個(gè)或多個(gè)。本文中描述的一些創(chuàng)新解決了背景中指出的一個(gè)或多個(gè)問題。通常,所給出的技術(shù)/工具并不解決所有這些問題。
[0043]1.示例計(jì)算系統(tǒng)。
[0044]圖1示出了其中可實(shí)現(xiàn)所描述的若干創(chuàng)新的合適計(jì)算系統(tǒng)(100)的概括示例。計(jì)算系統(tǒng)(100)并不旨對(duì)使用范圍或功能提出任何限制,因?yàn)檫@些創(chuàng)新可以在不同的通用或?qū)S糜?jì)算系統(tǒng)中實(shí)現(xiàn)。
[0045]參考圖1,計(jì)算系統(tǒng)(100)包括一個(gè)或多個(gè)處理單元(I 10、115)和存儲(chǔ)器(120、125)。處理單元(I 10、115)執(zhí)行計(jì)算機(jī)可執(zhí)行指令。處理單元可以是通用中央處理單元(“CPU”)、專用集成電路(“ASIC”)中的處理器或任何其它類型的處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令以提高處理能力。例如,圖1示出中央處理單元(110)以及圖形處理單元或協(xié)處理單元(115)。有形存儲(chǔ)器(120、125)可以是易失性存儲(chǔ)器(例如,寄存器、高速緩存、RAM)、非易失性存儲(chǔ)器(例如,R0M、EEPR0M、閃存等)或兩者的某種組合,可由處理單元存取。存儲(chǔ)器(120,125)存儲(chǔ)實(shí)現(xiàn)用于BV預(yù)測(cè)和/或在BV估計(jì)期間估計(jì)當(dāng)前塊的重疊區(qū)域內(nèi)的樣本值或者幀內(nèi)BC預(yù)測(cè)模式的其他編碼器側(cè)選項(xiàng)的一個(gè)或多個(gè)創(chuàng)新的軟件(180),該軟件處于適用于由(諸)處理單元執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的形式。
[0046]計(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)。
[0047]有形存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、⑶-R0M、DVD或可用于儲(chǔ)存信息并可在計(jì)算系統(tǒng)(100)內(nèi)訪問的任何其他介質(zhì)。存儲(chǔ)器(140)存儲(chǔ)實(shí)現(xiàn)用于BV預(yù)測(cè)和/或在BV估計(jì)期間估計(jì)當(dāng)前塊的重疊區(qū)域內(nèi)的樣本值或者幀內(nèi)BC預(yù)測(cè)模式的其他編碼器側(cè)選項(xiàng)的一個(gè)或多個(gè)創(chuàng)新的軟件(180)的指令。
[0048](諸)輸入設(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)中的⑶-ROM或⑶-RW。(諸)輸出設(shè)備(160)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī)或提供來自計(jì)算系統(tǒng)(100)的輸出的另一設(shè)備。
[0049](諸)通信連接(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或其它載體。
[0050]各創(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)、和以上任意的組合。
[0051]各創(chuàng)新可在計(jì)算機(jī)可執(zhí)行指令(諸如包括在程序模塊中的在計(jì)算系統(tǒng)中在目標(biāo)現(xiàn)實(shí)或虛擬處理器上執(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í)行。
[0052]術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對(duì)計(jì)算系統(tǒng)或計(jì)算設(shè)備的類型的任何限制。一般說來,計(jì)算系統(tǒng)或計(jì)算設(shè)備可以是本地的或分布式的,并且可以包括具有實(shí)現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
[0053]所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計(jì)算硬件來實(shí)現(xiàn)。例如,所公開的方法可以由被專門設(shè)計(jì)或配置成實(shí)現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如ASIC數(shù)字信號(hào)處理器(“DSP”)之類的ASIC、圖像處理單元(“GPU”)、或諸如場(chǎng)可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來實(shí)現(xiàn)。
[0054]為了呈現(xiàn)起見,本詳細(xì)描述使用了如“確定”和“使用”等術(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)而不同。如本文中使用的,術(shù)語“優(yōu)化(optimiz*)”(包括諸如optimizat1n和optimizing之類的變形)指代在給定判定范圍之下的選項(xiàng)中的選擇,并且并不暗示優(yōu)化的選擇是擴(kuò)展判定范圍的“最佳”或“最優(yōu)”選擇。
[0055]I1.示例網(wǎng)絡(luò)環(huán)境。
[0056]圖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ò)。
[0057]在圖2a所示的網(wǎng)絡(luò)環(huán)境(201)中,每個(gè)實(shí)時(shí)通信(“RTC”)工具(210)都包括用于雙向通信的編碼器(220)和解碼器(270)兩者。給定的編碼器(220)可以產(chǎn)生符合HEVC標(biāo)準(zhǔn)(也被稱為H.265)、SMPTE 421M標(biāo)準(zhǔn)、IS0/IEC 14496-10標(biāo)準(zhǔn)(也被稱為H.264或AVC)、另一標(biāo)準(zhǔn)、或?qū)S酶袷降淖冃突驍U(kuò)展的輸出,其中相應(yīng)的解碼器(270)接受來自編碼器(220)的經(jīng)編碼的數(shù)據(jù)。雙向通信可以是視頻會(huì)議、視頻電話呼叫或其它雙方或多方通信場(chǎng)景的部分。雖然,圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個(gè)實(shí)時(shí)通信工具(210),但網(wǎng)絡(luò)環(huán)境(201)可改為包括參與多方通信的三個(gè)或更多個(gè)實(shí)時(shí)通信工具(210)。
[0058]實(shí)時(shí)通信工具(210)管理編碼器(220)作出的編碼。圖3示出可以被包括在實(shí)時(shí)通信工具(210)中的示例編碼器系統(tǒng)(300)。替換地,實(shí)時(shí)通信工具(210)使用另一編碼器系統(tǒng)。實(shí)時(shí)通信工具(210)還管理解碼器(270)作出的解碼。圖4示出可以被包括在實(shí)時(shí)通信工具(210)中的示例解碼器系統(tǒng)(400)。替換地,實(shí)時(shí)通信工具(210)使用另一解碼器系統(tǒng)。
[0059]在圖2b中示出的網(wǎng)絡(luò)環(huán)境(202)中,編碼工具(212)包括編碼供遞送給多個(gè)回放工具(214)的視頻的編碼器(220),此多個(gè)回放工具(214)包括解碼器(270)。單向通信可被提供用于視頻監(jiān)視系統(tǒng)、web相機(jī)監(jiān)視系統(tǒng)、遠(yuǎn)程桌面會(huì)議演示或在其中編碼視頻并將視頻從一個(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í)間段并開始解碼和回放。
[0060]圖3示出可以被包括在編碼工具(212)中的示例編碼器系統(tǒng)(300)。替換地,編碼工具(212)使用另一編碼器系統(tǒng)。編碼工具(212)還可以包括用于管理與一個(gè)或多個(gè)回放工具(214)的連接的服務(wù)器側(cè)控制器邏輯。圖4示出可以被包括在回放工具(214)中的示例解碼器系統(tǒng)(400)。替換地,回放工具(214)使用另一解碼器系統(tǒng)?;胤殴ぞ?214)還可以包括用于管理與一個(gè)或多個(gè)編碼工具(212)的連接的客戶機(jī)側(cè)控制器邏輯。
[0061 ] II1.示例編碼器系統(tǒng)。
[0062]圖3是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例編碼器系統(tǒng)(300)的框圖。編碼器系統(tǒng)(300)可以是能夠用多種編碼模式中的任一者(諸如用于實(shí)時(shí)通信的低等待時(shí)間編碼模式、轉(zhuǎn)碼模式和用于從文件或流中產(chǎn)生供回放的媒體的較高等待時(shí)間編碼模式)操作的通用編碼工具,或它可以是適用于一種這樣的編碼模式的專用編碼工具。編碼器系統(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ù)可包括使用幀內(nèi)BC預(yù)測(cè)模式來編碼的內(nèi)容。
[0063]視頻源(310)可以是相機(jī)、調(diào)諧器卡、存儲(chǔ)介質(zhì)、或其它數(shù)字視頻源。視頻源(310)以例如每秒30幀的幀速率產(chǎn)生視頻幀序列。如本文中所使用的,術(shù)語“幀”一般指代源、經(jīng)編碼的或經(jīng)重構(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í)間的視頻對(duì)象的視頻對(duì)象平面、或較大圖像中的感興趣區(qū)域。視頻對(duì)象平面或區(qū)域可以是包括場(chǎng)景的多個(gè)對(duì)象或區(qū)域的較大圖像的一部分。
[0064]抵達(dá)的源幀(311)被存儲(chǔ)在包括多個(gè)幀緩沖器存儲(chǔ)區(qū)域(321、322、…、32η)的源幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(320)中。幀緩沖器(321、322等)在源幀存儲(chǔ)區(qū)域(320)中保持一個(gè)源幀。在一個(gè)或多個(gè)源幀(311)已被存儲(chǔ)在幀緩沖器(321、322等)中后,幀選擇器(330)從源幀存儲(chǔ)區(qū)域(320)中選擇個(gè)體源幀。幀選擇器(330)選擇幀以供輸入到編碼器(340)的次序可不同于視頻源(310)產(chǎn)生這些幀的次序,例如某些幀的編碼可以被按序延遲,從而允許一些更后面的幀被先編碼并由此促成時(shí)間上向后的預(yù)測(cè)。在編碼器(340)之前,編碼器系統(tǒng)(300)可包括預(yù)處理器(未示出),該預(yù)處理器在編碼之前執(zhí)行對(duì)選中的幀(331)的預(yù)處理(例如濾波)。預(yù)處理可包括將色彩空間轉(zhuǎn)換成主要(例如亮度)和次要(例如偏向紅色和偏向藍(lán)色的色度差)分量以及對(duì)編碼的重采樣處理(例如以減少色度分量的空間分辨率)。通常,在編碼之前,視頻已被轉(zhuǎn)換成諸如YUV的色彩空間,其中亮度(Y)分量的樣本值表示明亮度或強(qiáng)度值,而色度(U,V)分量的樣本值表示色差值。色度樣本值可以被子采樣到較低的色度采樣率(例如用于YUV 4:2:0格式或YUV 4:2:2),或者色度樣本值可以具有與亮度樣本值相同的分辨率(例如用于YUV 4:4:4格式)。在YUV 4: 2:0格式中,色度分量在水平上被下采樣了 1/2并且在垂直上被下采樣了 1/2。在YUV 4:2:2格式中,色度分量在水平上被下采樣了I/2。或者,視頻可用另一格式(例如,RGB 4:4:4格式)來編碼。
[0065]編碼器(340)編碼選中的幀(331)以產(chǎn)生經(jīng)編碼的幀(341)并且還產(chǎn)生存儲(chǔ)器管理控制操作(“MMC0”)信號(hào)(342)或參考圖片集(“RPS”)信息。如果當(dāng)前幀不是已被編碼的第一幀,則在執(zhí)行其編碼處理時(shí),編碼器(340)可以使用已經(jīng)被存儲(chǔ)在經(jīng)解碼幀的臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(360)中的一個(gè)或多個(gè)先前被編碼/解碼的幀(369)。這樣的存儲(chǔ)的經(jīng)解碼幀(369)被用作用于當(dāng)前源幀(331)的內(nèi)容的幀間預(yù)測(cè)的參考幀。麗C0/RPS信息(342)向解碼器指示哪些經(jīng)重構(gòu)的幀可被用作參考幀,并且因此應(yīng)該被存儲(chǔ)在幀存儲(chǔ)區(qū)域中。
[0066]—般來說,編碼器(340)包括執(zhí)行編碼任務(wù)的多個(gè)編碼模塊,編碼任務(wù)為諸如分割成小塊、幀內(nèi)預(yù)測(cè)估計(jì)和預(yù)測(cè)、運(yùn)動(dòng)估計(jì)和補(bǔ)償、頻率變換、量化和熵編碼。由編碼器(340)執(zhí)行的確切操作可以取決于壓縮格式而變化。輸出的經(jīng)編碼數(shù)據(jù)的格式可以是HEVC格式(H.265)、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG_1、MPEG_2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的變型或擴(kuò)展。
[0067]編碼器(340)可以將幀分割成相同尺寸或不同尺寸的多個(gè)小塊。例如,編碼器
(340)沿小塊行和小塊列來拆分幀,這些小塊行和小塊列利用幀邊界定義在該幀內(nèi)的小塊的水平和垂直邊界,其中每個(gè)小塊是矩形區(qū)域。小塊通常被用于提供并發(fā)處理的選項(xiàng)。幀還可以被組織成一個(gè)或多個(gè)片,其中一個(gè)片可以是整個(gè)幀或該幀的區(qū)域。片可以獨(dú)立于幀中的其它片編碼,這改善了錯(cuò)誤復(fù)原性。出于編碼和解碼的目的,片或小塊的內(nèi)容被進(jìn)一步分割成塊或其它樣本值集。
[0068]對(duì)于根據(jù)HEVC標(biāo)準(zhǔn)的句法來說,編碼器將幀(或片或小塊)的內(nèi)容拆分成編碼樹單元。編碼樹單元(“CTU”)包括被組織為亮度編碼樹塊(“CTB”)的亮度采樣值,并且對(duì)應(yīng)的色度采樣值被組織為兩個(gè)色度CTBXTU(及其CTB)的尺寸由編碼器來選擇,并且可例如為64x64、32x32或16x16個(gè)樣本值。CTU包括一個(gè)或多個(gè)編碼單元。編碼單元(“CU”)具有亮度編碼塊(“CB”)和兩個(gè)對(duì)應(yīng)的色度CB。例如,具有64x64亮度CTB和兩個(gè)64x64色度CTB(YUV 4:4:4格式)的CTU可以被拆分成4個(gè)⑶,其中每個(gè)⑶包括一 32x32亮度CB和兩個(gè)32x32色度CB,并且每個(gè)CU可能被進(jìn)一步拆分成更小的CU?;蛘?,作為另一示例,具有64x64亮度CTB和兩個(gè)32x32色度CTB (YUV 4:2:0格式)的CTU可以被拆分成4個(gè)⑶,其中每個(gè)⑶包括一 32x32亮度CB和兩個(gè)16x16色度CB,并且每個(gè)⑶可能被進(jìn)一步拆分成更小的⑶。⑶的最小允許尺寸(例如8X 8、16 X 16)可被信號(hào)化在比特流中。
[0069]通常,CU具有諸如幀間或幀內(nèi)之類的預(yù)測(cè)模式。出于信號(hào)化預(yù)測(cè)信息(例如預(yù)測(cè)模式細(xì)節(jié)、移位值等)和/或預(yù)測(cè)處理的目的,CU包括一個(gè)或多個(gè)預(yù)測(cè)單元。預(yù)測(cè)單元(“PU”)具有亮度預(yù)測(cè)塊(“PB” )和兩個(gè)對(duì)應(yīng)的色度I3B ο對(duì)于幀內(nèi)預(yù)測(cè)的CU,PU與CU具有相同的尺寸,除非CU具有最小尺寸(例如8 X 8)。在那個(gè)情況下,CU可被拆分成四個(gè)更小的PU(例如,如果最小CU尺寸為8x8,則每個(gè)PU為4x4),或者HJ可具有最小CU尺寸,如CU的句法元素所指示的。在幀內(nèi)預(yù)測(cè)的CU中的PU可以包含單個(gè)TU(尺寸與PU相同)或多個(gè)TU。如本文中所使用的,術(shù)語“士夬”可以指示CB、PB、TB或某些其它樣本值集,這取決于上下文。編碼器決定如何將視頻分割成 CTU、CU、PU、TU 等。
[0070]回到圖3,編碼器根據(jù)來自源幀(331)中的其它、先前重構(gòu)的樣本值的預(yù)測(cè)來表示該幀(331)內(nèi)編碼的塊。對(duì)于幀內(nèi)BC預(yù)測(cè),圖片內(nèi)估計(jì)器估計(jì)塊相對(duì)于其它、先前重構(gòu)的采樣值的塊的位移。幀內(nèi)預(yù)測(cè)參考區(qū)域(或簡(jiǎn)稱幀內(nèi)預(yù)測(cè)區(qū)域)是幀中用于生成塊的BC預(yù)測(cè)值的樣本的區(qū)域。幀內(nèi)預(yù)測(cè)區(qū)域可以用(在BV估計(jì)中確定的)塊矢量(“BV”)值來指示。對(duì)于塊的空間內(nèi)預(yù)測(cè),圖片內(nèi)估計(jì)器估計(jì)相鄰的經(jīng)重構(gòu)的樣本值到該塊的外插。圖片內(nèi)估計(jì)器可以輸出經(jīng)熵編碼的預(yù)測(cè)信息(例如幀內(nèi)BC預(yù)測(cè)的BV值或幀內(nèi)空間預(yù)測(cè)的預(yù)測(cè)模式(方向))。幀內(nèi)預(yù)測(cè)預(yù)測(cè)器應(yīng)用預(yù)測(cè)信息來確定幀內(nèi)預(yù)測(cè)值。
[0071]編碼器(340)依據(jù)來自參考幀的預(yù)測(cè)來表示源幀(331)的幀間編碼的預(yù)測(cè)的塊。運(yùn)動(dòng)估計(jì)器估計(jì)塊相對(duì)于一個(gè)或多個(gè)參考幀(369)的運(yùn)動(dòng)。當(dāng)使用多個(gè)參考幀時(shí),這多個(gè)參考幀可來自不同的時(shí)間方向或相同的時(shí)間方向。經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)參考區(qū)域是(諸)參考幀中用于生成當(dāng)前幀中的樣本塊的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)值的樣本區(qū)域。運(yùn)動(dòng)估計(jì)器輸出經(jīng)熵編碼的諸如運(yùn)動(dòng)矢量(“MV”)信息之類的運(yùn)動(dòng)信息。運(yùn)動(dòng)補(bǔ)償器將MV應(yīng)用于參考幀(3 6 9)以確定用于幀間預(yù)測(cè)的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)值。
[0072]編碼器可以確定在塊預(yù)測(cè)值(幀內(nèi)或幀間)和對(duì)應(yīng)的原始值之間的差值(如果有的話)。
[0073]這些預(yù)測(cè)殘留值將進(jìn)一步使用頻率變換、量化和熵編碼來編碼。例如,編碼器
(340)為圖片、小塊、片和/或視頻的其它部分設(shè)置量化參數(shù)(“QP”)的值,并相應(yīng)地量化變換系數(shù)。編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如MV信息、BV信息、QP值、模式?jīng)Q策、參數(shù)選擇)。典型的熵編碼技術(shù)包括指數(shù)-Golomb編碼、Golomb-Rice編碼、算術(shù)編碼、差分編碼、Huffman編碼、行程長(zhǎng)度編碼、可變長(zhǎng)度對(duì)可變長(zhǎng)度(“V2V” )編碼、可變長(zhǎng)度對(duì)固定長(zhǎng)度(“V2F”)編碼、Lempel-ZiV(“LZ”)編碼、字典編碼、概率區(qū)間劃分熵編碼(“PIPE”)和上述編碼的組合。熵編碼器可對(duì)不同種類的信息使用不同的編碼技術(shù),并可組合地應(yīng)用多個(gè)技術(shù)(例如,通過應(yīng)用Golomb-Rice編碼,隨后應(yīng)用算術(shù)編碼),并可從特定編碼技術(shù)內(nèi)的多個(gè)碼表中進(jìn)行選擇。
[0074]自適應(yīng)去塊濾波器可以被包括在編碼器(340)中的運(yùn)動(dòng)補(bǔ)償循環(huán)內(nèi)以平滑經(jīng)解碼的幀中的塊邊界行和/或列上的間斷。可替換地或另外地應(yīng)用其它濾波(諸如去振鈴濾波、自適應(yīng)環(huán)路濾波(uAir)或樣本自適應(yīng)偏移(“SA0”)濾波,未示出)作為內(nèi)環(huán)路濾波操作。
[0075]經(jīng)編碼的幀(341)和MMC0/RPS信息(342)(或與MMC0/RPS信息(342)等價(jià)的信息,因?yàn)樵诰幋a器(340)處已經(jīng)知道各幀的依賴關(guān)系和排序結(jié)構(gòu))由解碼處理仿真器(350)處理。解碼處理仿真器(350)實(shí)現(xiàn)了解碼器的一些功能,例如對(duì)任務(wù)進(jìn)行解碼以重構(gòu)參考幀。以與MM⑶/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)作為解碼處理的一部分。
[0076]經(jīng)解碼幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(360)包括多個(gè)幀緩沖存儲(chǔ)區(qū)域(361,362,...,36η)。以與MMC0/RPS信息(342)相一致的方式,解碼處理仿真器(350)管理存儲(chǔ)區(qū)域(360)中的內(nèi)容,以便標(biāo)識(shí)出具有編碼器(340)不再需要將其用作參考幀的幀的任何幀緩沖區(qū)(361、362等)。在對(duì)解碼處理進(jìn)行建模之后,解碼處理仿真器(350)在幀緩沖器(361、362等)中存儲(chǔ)已經(jīng)以此方式標(biāo)識(shí)出的新解碼的幀(351)。
[0077]經(jīng)編碼的幀(341)和MM⑶/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)編碼視頻位流的句法的一部分。在經(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ù))。
[0078]來自臨時(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| IS0/IEC 13818-1或因特網(wǎng)實(shí)時(shí)傳輸協(xié)議格式(例如IETF RFC 3550)),在這種情況中,信道編碼器(380)可以添加句法元素作為媒體傳輸流的句法的一部分?;蛘?,信道編碼器(380)可以組織經(jīng)聚集的數(shù)據(jù)以供存儲(chǔ)成文件(例如根據(jù)媒體容器格式,諸如IS0/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)制的其它元素(未示出)。
[0079]IV.示例解碼器系統(tǒng)。
[0080]圖4是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例解碼器系統(tǒng)(400)的框圖。解碼器系統(tǒng)(400)可以是能夠在多種解碼模式(例如針對(duì)實(shí)時(shí)通信的低等待時(shí)間解碼模式以及針對(duì)來自文件或流中的媒體回放的較高等待時(shí)間解碼模式)中的任一者操作的通用解碼工具,或它可以是適用于一種這樣的解碼模式的專用解碼工具。解碼器系統(tǒng)(400)可以被實(shí)現(xiàn)為操作系統(tǒng)模塊、應(yīng)用庫(kù)的一部分或獨(dú)立的應(yīng)用??傮w上,解碼器系統(tǒng)(400)從信道(410)接收經(jīng)編碼數(shù)據(jù)并產(chǎn)生經(jīng)重構(gòu)的幀作為針對(duì)輸出目的地(490)的輸出。經(jīng)編碼的數(shù)據(jù)可包括使用幀內(nèi)BC預(yù)測(cè)模式編碼的內(nèi)容。
[0081]解碼器系統(tǒng)(400)包括信道(410),該信道(410)可以表示存儲(chǔ)、通信連接或針對(duì)作為輸入的經(jīng)編碼數(shù)據(jù)的另一信道。信道(410)產(chǎn)生已經(jīng)被信道編碼的經(jīng)編碼數(shù)據(jù)。信道解碼器(420)可以處理經(jīng)編碼數(shù)據(jù)。例如,信道解碼器(420)可以(例如根據(jù)諸如ITU-T H.222.0IS0/IEC 13818-1的媒體程序流或傳輸流格式,或諸如IETF RFC 3550的因特網(wǎng)實(shí)時(shí)傳輸協(xié)議格式)去分組化和/或去復(fù)用已被聚集以供作為媒體流來傳輸或存儲(chǔ)的數(shù)據(jù),在這種情況中,信道解碼器(420)可以解析所添加的作為媒體傳輸流的句法的一部分的句法元素?;蛘?,信道解碼器(420)可以(例如根據(jù)諸如IS0/IEC 14496-12的媒體容器格式)來將已被聚集以供作為文件來存儲(chǔ)的經(jīng)編碼的視頻數(shù)據(jù)分開,在這種情況中,信道解碼器(420)可以解析所添加的作為媒體存儲(chǔ)文件的句法的一部分的句法元素?;蛘?,更一般地,信道解碼器(420)可以實(shí)現(xiàn)一個(gè)或多個(gè)媒體系統(tǒng)去復(fù)用協(xié)議或傳輸協(xié)議,在這種情況中,信道解碼器(420)可以解析所添加的作為(諸)協(xié)議的句法的一部分的句法元素。信道(410)或信道解碼器(420)還可以包括例如用于FEC解碼和模擬信號(hào)解調(diào)的其它元素(未示出)。
[0082]從信道解碼器(420)輸出的經(jīng)編碼數(shù)據(jù)(421)被存儲(chǔ)在臨時(shí)的經(jīng)編碼數(shù)據(jù)區(qū)域(430)中,直到已經(jīng)接收到足夠數(shù)量的這樣的數(shù)據(jù)。經(jīng)編碼數(shù)據(jù)(421)包括經(jīng)編碼的幀(431)和MMC0/RPS信息(432)。在經(jīng)編碼數(shù)據(jù)區(qū)域(430)中的經(jīng)編碼數(shù)據(jù)(421)包含一個(gè)或多個(gè)圖片的經(jīng)編碼數(shù)據(jù)作為基本編碼的視頻比特流的句法的一部分。在經(jīng)編碼數(shù)據(jù)區(qū)域(430)中的經(jīng)編碼數(shù)據(jù)(421)還可包括與經(jīng)編碼的視頻數(shù)據(jù)相關(guān)的媒體元數(shù)據(jù)(例如作為一個(gè)或多個(gè)SE I消息或VUI消息中的一個(gè)或多個(gè)參數(shù))。
[0083]一般來說,經(jīng)編碼數(shù)據(jù)區(qū)域(430)臨時(shí)存儲(chǔ)經(jīng)編碼數(shù)據(jù)(421),直到這樣的經(jīng)編碼數(shù)據(jù)(421)被解碼器(450)使用。此時(shí),經(jīng)編碼幀(431)和MMC0/RPS信息(432)的經(jīng)編碼數(shù)據(jù)被從經(jīng)編碼數(shù)據(jù)區(qū)域(430)傳輸?shù)浇獯a器(450)。當(dāng)解碼繼續(xù)時(shí),新的經(jīng)編碼數(shù)據(jù)被添加到經(jīng)編碼數(shù)據(jù)區(qū)域(430)并且保留在經(jīng)編碼數(shù)據(jù)區(qū)域(430)中的最舊的經(jīng)編碼數(shù)據(jù)被傳輸?shù)浇獯a器(450)。
[0084]解碼器(450)解碼經(jīng)編碼幀(431)以產(chǎn)生相應(yīng)的經(jīng)解碼幀(451)。在適當(dāng)時(shí),當(dāng)執(zhí)行其解碼處理時(shí),解碼器(450)可以將一個(gè)或多個(gè)先前解碼的幀(469)用作幀間預(yù)測(cè)的參考幀。解碼器(450)從經(jīng)解碼幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(460)中讀取這樣的先前解碼的幀(469)。通常,解碼器(450)包括執(zhí)行諸如熵解碼、幀內(nèi)預(yù)測(cè)、運(yùn)動(dòng)補(bǔ)償幀間預(yù)測(cè)、逆量化、逆頻率變換和小塊合并之類的解碼任務(wù)的多個(gè)解碼模塊。由解碼器(450)執(zhí)行的確切操作可以取決于壓縮格式而變化。
[0085]例如,解碼器(450)接收經(jīng)壓縮的幀或幀序列的經(jīng)編碼數(shù)據(jù),并產(chǎn)生包括經(jīng)解碼的幀(451)的輸出。在解碼器(450)中,緩沖器接收針對(duì)經(jīng)壓縮的幀的經(jīng)編碼數(shù)據(jù),并在適當(dāng)時(shí),使得接收到的經(jīng)編碼數(shù)據(jù)對(duì)熵解碼器可用。熵解碼器對(duì)經(jīng)熵編碼的量化數(shù)據(jù)以及經(jīng)熵編碼的輔助信息進(jìn)行熵解碼,通常應(yīng)用編碼器中執(zhí)行的熵編碼的逆來進(jìn)行熵解碼。運(yùn)動(dòng)補(bǔ)償器將運(yùn)動(dòng)信息應(yīng)用于一個(gè)或多個(gè)參考幀以形成針對(duì)正被重構(gòu)的幀的任何幀間編碼塊的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)值。幀內(nèi)預(yù)測(cè)模塊可從相鄰的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前塊的樣本值,或者對(duì)于幀內(nèi)BC預(yù)測(cè),使用幀中的幀內(nèi)預(yù)測(cè)區(qū)域的先前重構(gòu)的樣本值來預(yù)測(cè)當(dāng)前塊的樣本值。幀內(nèi)預(yù)測(cè)區(qū)域可用BV值來指示。解碼器(450)還重構(gòu)預(yù)測(cè)殘留值。逆量化器對(duì)經(jīng)熵解碼的數(shù)據(jù)進(jìn)行逆量化。例如,解碼器(450)基于比特流中的句法元素來設(shè)置圖片、小塊、片和/或其它視頻部分的QP值,并相應(yīng)地對(duì)變換系數(shù)進(jìn)行逆量化。逆頻率變換器將量化的頻域數(shù)據(jù)轉(zhuǎn)換成空間域數(shù)據(jù)。對(duì)于幀間預(yù)測(cè)的塊,解碼器(450)將重構(gòu)的預(yù)測(cè)殘留值與經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)值組合。解碼器(450)可以類似地將預(yù)測(cè)殘留值與來自幀內(nèi)預(yù)測(cè)的預(yù)測(cè)值相組合。自適應(yīng)去塊濾波器被包括在視頻解碼器(450)中的運(yùn)動(dòng)補(bǔ)償環(huán)路內(nèi)以平滑經(jīng)解碼的幀(451)中的塊邊界行和/或列上的間斷。可替換地或另外地應(yīng)用其它濾波(例如去振鈴濾波、ALF或SAO濾波;未示出)作為內(nèi)環(huán)路濾波操作。
[0086]經(jīng)解碼幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(460)包括多個(gè)幀緩沖器存儲(chǔ)區(qū)域(461、462、…、46η)。經(jīng)解碼幀存儲(chǔ)區(qū)域(460)是經(jīng)解碼圖片緩沖區(qū)的一個(gè)示例。解碼器(450)使用MMC0/PS信息(432)來標(biāo)識(shí)該解碼器可將經(jīng)解碼幀(451)存儲(chǔ)在其中的幀緩沖器(461、462等)。解碼器(450)將經(jīng)解碼的幀(451)存儲(chǔ)在那個(gè)幀緩沖器中。
[0087]輸出序列發(fā)生器(480)標(biāo)識(shí)按輸出次序?qū)a(chǎn)生的下一幀何時(shí)可在經(jīng)編碼幀存儲(chǔ)區(qū)域(460)中獲得。當(dāng)按輸出順序?qū)a(chǎn)生的下一幀(481)可在經(jīng)解碼幀存儲(chǔ)區(qū)域(460)中獲得時(shí),輸出序列發(fā)生器(480)讀取該下一幀并將其輸出到輸出目的地(490)(例如顯不器)。一般來說,輸出序列發(fā)生器(480)將幀從經(jīng)解碼幀存儲(chǔ)區(qū)域(460)中輸出的次序可以與解碼器(450)解碼這些幀的次序不同。
[0088]V.示例視頻編碼器。
[0089]圖5a和5b是可結(jié)合其實(shí)現(xiàn)所描述的一些實(shí)施例的通用視頻編碼器(500)的框圖。編碼器(500)接收包括當(dāng)前圖片的視頻圖片序列作為輸入視頻信號(hào)(505)并在經(jīng)編碼視頻位流(595)中產(chǎn)生經(jīng)編碼數(shù)據(jù)作為輸出。
[0090]編碼器(500)是基于塊的并使用取決于實(shí)現(xiàn)的塊格式。塊還可在不同的階段上被進(jìn)一步細(xì)分,例如在預(yù)測(cè)、頻率變換和/或熵編碼階段。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊隨后可以被劃分成更小的樣本值塊以用于編碼和解碼。在針對(duì)HEVC標(biāo)準(zhǔn)的編碼的實(shí)現(xiàn)中,編碼器將圖片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0091]編碼器(500)使用圖片內(nèi)編碼和/或圖片間編碼來壓縮圖片。編碼器(500)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由這些組件執(zhí)行的確切操作可取決于所壓縮的信息的類型而變化。
[0092]小塊化模塊(510)可選地將圖片分割成相同尺寸或不同尺寸的多個(gè)小塊。例如,小塊化模塊(510)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個(gè)小塊是矩形區(qū)域。
[0093]通用編碼控件(520)接收輸入視頻信號(hào)(505)的圖片以及來自編碼器(500)的各個(gè)模塊的反饋(未示出)。整體上,通用編碼控件(520)將控制信號(hào)(未示出)提供給其它模塊(例如小塊化模塊(510)、變換器/縮放器/量化器(530)、縮放器/逆變換器(535)、圖片內(nèi)估計(jì)器(540)、運(yùn)動(dòng)估計(jì)器(550)以及幀內(nèi)/幀間切換)以設(shè)置和改變編碼期間的編碼參數(shù)。特別是,通用編碼控件(520)可以決定在編碼期間是否和如何使用幀內(nèi)BC預(yù)測(cè)。通用編碼控件(520)還可以估計(jì)編碼期間的中間結(jié)果,例如執(zhí)行速率-失真分析來估計(jì)。通用編碼控件(520)產(chǎn)生指示在編碼期間所做出的決定的通用控制數(shù)據(jù)(522),使得對(duì)應(yīng)的解碼器可以作出一致的決定。通用控制數(shù)據(jù)(522)被提供給頭部格式化器/熵編碼器(590)。
[0094]如果使用圖片間預(yù)測(cè)來預(yù)測(cè)當(dāng)前的圖片,運(yùn)動(dòng)估計(jì)器(550)相對(duì)于一個(gè)或多個(gè)參考圖片估計(jì)輸入視頻信號(hào)(505)的當(dāng)前圖片的采樣值的塊的運(yùn)動(dòng)。經(jīng)解碼的圖片緩沖器(570)緩沖一個(gè)或多個(gè)經(jīng)重構(gòu)的先前編碼的圖片以供用作參考圖片。當(dāng)使用多個(gè)參考圖片時(shí),這多個(gè)參考圖片可以來自不同的時(shí)間方向或相同的時(shí)間方向。運(yùn)動(dòng)估計(jì)器(550)產(chǎn)生諸如MV數(shù)據(jù)、合并模式索引值和參考圖片選擇數(shù)據(jù)之類的輔助信息運(yùn)動(dòng)數(shù)據(jù)(552)。運(yùn)動(dòng)數(shù)據(jù)(552)被提供給頭部格式化器/熵編碼器(590)以及運(yùn)動(dòng)補(bǔ)償器(555)。
[0095]運(yùn)動(dòng)補(bǔ)償器(555)將MV應(yīng)用于來自經(jīng)解碼的圖片緩沖器(570)的(諸)經(jīng)重構(gòu)的參考圖片。運(yùn)動(dòng)補(bǔ)償器(555)產(chǎn)生針對(duì)當(dāng)前圖片的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)。
[0096]在編碼器(500)內(nèi)的分開的路徑中,圖片內(nèi)估計(jì)器(540)確定如何執(zhí)行對(duì)輸入視頻信號(hào)(505)的當(dāng)前圖片的樣本值塊的圖片內(nèi)預(yù)測(cè)。當(dāng)前圖片可全部或部分使用圖片內(nèi)編碼來編碼。對(duì)于幀內(nèi)空間預(yù)測(cè),圖片內(nèi)估計(jì)器(540)使用當(dāng)前圖片的重構(gòu)(538)的值來確定如何從當(dāng)前圖片的鄰近的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前圖片的當(dāng)前塊的樣本值?;蛘撸瑢?duì)于使用BV值的幀內(nèi)BC預(yù)測(cè),圖片內(nèi)估計(jì)器(540)估計(jì)當(dāng)前塊的樣本值到當(dāng)前圖片內(nèi)的不同候選區(qū)域的位移。BV值可使用BV預(yù)測(cè)的乒乓方法來預(yù)測(cè),如以下所描述的。對(duì)于幀內(nèi)BC預(yù)測(cè),幀內(nèi)預(yù)測(cè)估計(jì)器(540)可包含使用以下描述的一個(gè)或多個(gè)約束的BV選擇過程,并且它可出于BV估計(jì)的目的估計(jì)在當(dāng)前塊的重疊區(qū)域中的重構(gòu)樣本值。
[0097]圖片內(nèi)估計(jì)器(540)產(chǎn)生輔助信息幀內(nèi)預(yù)測(cè)數(shù)據(jù)(542),諸如指示幀內(nèi)預(yù)測(cè)使用空間預(yù)測(cè)還是幀內(nèi)BC預(yù)測(cè)的信息(例如,每幀內(nèi)塊的標(biāo)志值)、預(yù)測(cè)模式方向(針對(duì)幀內(nèi)空間預(yù)測(cè)的情況)、以及BV值(針對(duì)幀內(nèi)BC預(yù)測(cè)的情況)。圖片內(nèi)預(yù)測(cè)數(shù)據(jù)(542)被提供給頭部格式化器/熵編碼器(590)以及圖片內(nèi)預(yù)測(cè)器(545)。
[0098]根據(jù)幀內(nèi)預(yù)測(cè)數(shù)據(jù)(542),圖片內(nèi)預(yù)測(cè)器(545)在空間上從當(dāng)前圖片的鄰近的先前重構(gòu)的樣本值中預(yù)測(cè)當(dāng)前圖片的當(dāng)前塊的樣本值?;蛘撸瑢?duì)于幀內(nèi)BC預(yù)測(cè),圖片內(nèi)預(yù)測(cè)器(545)使用幀內(nèi)預(yù)測(cè)區(qū)域的先前重構(gòu)的樣本值來預(yù)測(cè)當(dāng)前塊的樣本值,幀內(nèi)預(yù)測(cè)區(qū)域由針對(duì)當(dāng)前塊的BV值指示。當(dāng)圖片的色度數(shù)據(jù)具有與亮度數(shù)據(jù)相同的分辨率時(shí)(例如,當(dāng)格式為YUV 4:4:4格式或RGB 4:4:4格式時(shí)),對(duì)色度塊應(yīng)用的BV值可與對(duì)亮度塊應(yīng)用的BV值相同。另一方面,當(dāng)圖片的色度數(shù)據(jù)相對(duì)于亮度數(shù)據(jù)而言具有降低的分辨率時(shí)(例如,當(dāng)格式為YUV 4:2:0格式或YUV4:2:2格式時(shí)),對(duì)色度塊應(yīng)用的BV值可被縮小并可能被四舍五入以對(duì)色度分辨率方面的差異進(jìn)行調(diào)整(例如,對(duì)于YUV 4:2:0格式,通過將BV值的垂直和水平分量除以2并且將其截短或四舍五入成整數(shù)值來調(diào)整;對(duì)于YUV 4:2:2,通過將BV值的水平分量除以2并將其截短或四舍五入成整數(shù)值來調(diào)整)。
[0099]幀內(nèi)/幀間切換選擇經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)或圖片內(nèi)預(yù)測(cè)的值用作給定塊的預(yù)測(cè)(558)。預(yù)測(cè)(558)的塊和輸入視頻信號(hào)(505)的原始當(dāng)前圖片的對(duì)應(yīng)部分之間的差異(如果有的話)提供殘留值(518)。在當(dāng)前圖片的重構(gòu)期間,經(jīng)重構(gòu)的殘留值與預(yù)測(cè)(558)組合來從視頻信號(hào)(505)中產(chǎn)生對(duì)原始內(nèi)容的重構(gòu)(538)。然而,在有損壓縮中,還是從視頻信號(hào)(505)中丟失了一些信息。
[0100]在變換器/縮放器/量化器(530)中,頻率變換器將空間域視頻數(shù)據(jù)轉(zhuǎn)換為頻域(SP頻譜、變換)數(shù)據(jù)。對(duì)于基于塊的視頻編碼,頻率變換器將離散余弦變換(“DCT”)、其整數(shù)近似、或其它類型的前向塊變換(例如離散正弦變換或其整數(shù)近似)應(yīng)用于預(yù)測(cè)殘留數(shù)據(jù)的塊(如果預(yù)測(cè)(558)為空則應(yīng)用于采樣值數(shù)據(jù)),產(chǎn)生頻率變換系數(shù)的塊。編碼器(500)可能還能夠指示這樣的變換步驟被省略了。縮放器/量化器對(duì)變換系數(shù)進(jìn)行縮放和量化。例如,量化器用量化步驟尺寸將死區(qū)標(biāo)量量化應(yīng)用于頻域數(shù)據(jù),該量化步驟尺寸在逐圖片的基礎(chǔ)上、逐小塊的基礎(chǔ)上、逐片的基礎(chǔ)上、逐塊的基礎(chǔ)上、因頻率而異的基礎(chǔ)上或在其他基礎(chǔ)上變化。。經(jīng)量化的變換系數(shù)數(shù)據(jù)(532)被提供給頭部格式化器/熵編碼器(590)。
[0101]在縮放器/逆變換器(535)中,縮放器/逆量化器對(duì)經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測(cè)殘留值或樣本值的塊。編碼器(500)將經(jīng)重構(gòu)的殘留值與預(yù)測(cè)(558)的值(例如,經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)值、圖片內(nèi)預(yù)測(cè)值)組合以形成重構(gòu)(538)。
[0102]對(duì)于圖片內(nèi)預(yù)測(cè),重構(gòu)(538)的值可以被饋送回圖片內(nèi)估計(jì)器(540)和圖片內(nèi)預(yù)測(cè)器(545)。同樣,重構(gòu)(538)的值可以被用于對(duì)后續(xù)圖片的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)。重構(gòu)(538)的值可被進(jìn)一步濾波。對(duì)于視頻信號(hào)(505)的給定圖片,濾波控件(560)確定如何對(duì)重構(gòu)(538)的值執(zhí)行去塊濾波和SAO濾波。濾波控件(560)生成濾波控制數(shù)據(jù)(562),它被提供給頭部格式化器/熵編碼器(590)和合并器/(諸)濾波器(565)。
[0103]在合并器/(諸)濾波器(565)中,編碼器(500)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。編碼器(500)根據(jù)濾波器控制數(shù)據(jù)(562)選擇性地執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑各幀中的各邊界上的間斷。可替換地或另外地應(yīng)用其它濾波(例如去振鈴濾波或ALF;未示出)。取決于編碼器(500)的設(shè)置,小塊邊界可以被選擇性地濾波或根本不被濾波,并且編碼器(500)可以在經(jīng)編碼的位流內(nèi)提供指示是否應(yīng)用這樣的濾波的句法。經(jīng)解碼的圖片緩沖器(570)緩沖經(jīng)重構(gòu)的當(dāng)前圖片以供在后續(xù)的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)中使用。
[0104]頭部格式化器/熵編碼器(590)對(duì)通用控制數(shù)據(jù)(522)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(532)、圖片內(nèi)預(yù)測(cè)數(shù)據(jù)(542)、運(yùn)動(dòng)數(shù)據(jù)(552)以及濾波器控制數(shù)據(jù)(562)進(jìn)行格式化和/或熵編碼。例如,頭部格式化器/熵編碼器(590)使用上下文自適應(yīng)二進(jìn)制算法編碼來對(duì)各句法元素(諸如BV值的句法元素)進(jìn)行熵編碼。頭部格式化器/熵編碼器(590)在對(duì)BV值進(jìn)行編碼時(shí)可使用用于BV預(yù)測(cè)的乒乓方法,如以下所描述的。
[0105]頭部格式化器/熵編碼器(590)在經(jīng)編碼的視頻位流(595)中提供經(jīng)編碼數(shù)據(jù)。經(jīng)編碼的視頻比特流(595)的格式可以是HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG_x格式(例如,]^^6-1、]\0^6-2或10^6-4)、!1.261格式(例如,!1.261、!1.262、!1.263或!1.264)或其它格式的變體或擴(kuò)展。
[0106]取決于所需的壓縮的實(shí)現(xiàn)和類型,編碼器的模塊可被添加、省略、拆分成多個(gè)模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實(shí)施例中,具有不同模塊和/或其它配置的模塊的編碼器執(zhí)行一個(gè)或多個(gè)所描述的技術(shù)。編碼器的具體實(shí)施例通常使用編碼器(500)的變型或補(bǔ)充版本。所示的編碼器(500)內(nèi)的各模塊之間的關(guān)系指示了信息在編碼器中的一般流動(dòng);為簡(jiǎn)明起見,未示出其它關(guān)系。
[0107]V1.示例視頻解碼器。
[0108]圖6是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的通用解碼器(600)的框圖。解碼器(600)接收經(jīng)編碼的視頻比特流(605)中的經(jīng)編碼數(shù)據(jù)并產(chǎn)生包括經(jīng)重構(gòu)視頻(695)的圖片的輸出。經(jīng)編碼的視頻比特流(605)的格式可以是HEVC格式、Windows媒體視頻格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG_2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263或H.264)或其它格式的變體或擴(kuò)展。
[0109]解碼器(600)是基于塊的并使用取決于實(shí)現(xiàn)的塊格式。塊可以在不同的階段被進(jìn)一步細(xì)分。例如,圖片可以被劃分成64x64塊、32x32塊或16x16塊,這些塊隨后可以被劃分成更小的樣本值塊。在針對(duì)HEVC標(biāo)準(zhǔn)的解碼實(shí)現(xiàn)中,將圖片分割成CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
[0110]解碼器(600)使用圖片內(nèi)解碼和/或圖片間解碼來對(duì)圖片進(jìn)行解壓縮。解碼器(600)的許多組件被用于圖片內(nèi)解碼和圖片間解碼這兩者。由這些組件執(zhí)行的確切操作可以取決于正被解壓縮的信息的類型而變化。
[0111]緩沖器接收經(jīng)編碼的視頻比特流(605)中的經(jīng)編碼數(shù)據(jù),并使得接收到的經(jīng)編碼數(shù)據(jù)可用于解析器/熵解碼器(610)。解析器/熵解碼器(610)通常應(yīng)用在編碼器(500)中執(zhí)行的熵編碼的逆(例如上下文自適應(yīng)二進(jìn)制算術(shù)解碼)對(duì)經(jīng)熵編碼的數(shù)據(jù)進(jìn)行熵解碼。作為解析和熵解碼的結(jié)果,解析器/熵解碼器(610)產(chǎn)生通用控制數(shù)據(jù)(622)、經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)、圖片內(nèi)預(yù)測(cè)數(shù)據(jù)(642)、運(yùn)動(dòng)數(shù)據(jù)(652)以及濾波器控制數(shù)據(jù)(662)。具體地,對(duì)于幀內(nèi)預(yù)測(cè)數(shù)據(jù)(642),解析器/熵解碼器(610)例如使用上下文自適應(yīng)二進(jìn)制算術(shù)解碼來對(duì)BV值的句法元素進(jìn)行熵解碼。解析器/熵解碼器(610)在對(duì)BV值進(jìn)行解碼時(shí)可使用用于BV預(yù)測(cè)的乒乓方法,如以下所描述的。
[0112]通用解碼控件(620)接收通用控制數(shù)據(jù)(622)并將控制信號(hào)(未示出)提供給其它模塊(例如縮放器/逆變換器(635)、圖片內(nèi)預(yù)測(cè)器(645)、運(yùn)動(dòng)補(bǔ)償器(655)以及幀內(nèi)/幀間切換)以設(shè)置和改變解碼期間的解碼參數(shù)。
[0113]如果當(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è)。經(jīng)解碼圖片緩沖器(670)存儲(chǔ)一個(gè)或多個(gè)先前重構(gòu)的圖片以供用作參考圖片。
[0114]在解碼器(600)內(nèi)的分開路徑中,幀內(nèi)預(yù)測(cè)預(yù)測(cè)器(645)接收幀內(nèi)預(yù)測(cè)數(shù)據(jù)(642),諸如指示幀內(nèi)預(yù)測(cè)是使用空間預(yù)測(cè)還是幀內(nèi)BC預(yù)測(cè)的信息(例如,每個(gè)幀內(nèi)塊的標(biāo)記值)、預(yù)測(cè)模式方向(針對(duì)幀內(nèi)空間預(yù)測(cè)的情況)、和BV值(針對(duì)幀內(nèi)BC預(yù)測(cè)的情況)。對(duì)于幀內(nèi)空間預(yù)測(cè),根據(jù)預(yù)測(cè)模式數(shù)據(jù)使用當(dāng)前圖片的重構(gòu)(638)的值,圖片內(nèi)預(yù)測(cè)器(645)從當(dāng)前圖片的相鄰的、先前重構(gòu)的樣本值中空間地預(yù)測(cè)當(dāng)前圖片的當(dāng)前塊的樣本值?;蛘?,對(duì)于使用BV值的幀內(nèi)BC預(yù)測(cè),圖片內(nèi)預(yù)測(cè)器(645)使用圖片內(nèi)預(yù)測(cè)區(qū)域的先前重構(gòu)的樣本值來預(yù)測(cè)當(dāng)前塊的樣本值,圖片內(nèi)預(yù)測(cè)區(qū)域的先前重構(gòu)的樣本值由針對(duì)當(dāng)前塊的BV值來指示。
[0115]幀內(nèi)/幀間切換選擇經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)或圖片內(nèi)預(yù)測(cè)的值用作給定塊的預(yù)測(cè)(658)。例如,當(dāng)遵循HEVC句法時(shí),可以基于為圖片中的CU編碼的句法元素來控制圖片內(nèi)/圖片間切換,該CU可以包括圖片內(nèi)預(yù)測(cè)的CU和圖片間預(yù)測(cè)的CU。解碼器(600)將預(yù)測(cè)(658)與重構(gòu)的殘留值組合以產(chǎn)生來自視頻信號(hào)的內(nèi)容的重構(gòu)(638)。
[0116]為了重構(gòu)殘留值,縮放器/逆變換器(635)接收并處理經(jīng)量化的變換系數(shù)數(shù)據(jù)(632)。在縮放器/逆變換器(635)中,縮放器/逆量化器對(duì)經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測(cè)殘留值或樣本值的塊。例如,逆頻率變換器將逆塊變換應(yīng)用到頻率變換系數(shù),從而產(chǎn)生樣本值數(shù)據(jù)或預(yù)測(cè)殘留數(shù)據(jù)。逆頻率變換可以是逆DCT、其整數(shù)近似、或另一種類型的逆頻率變換(例如逆離散正弦變換或其整數(shù)近似)。
[0117]對(duì)于圖片內(nèi)預(yù)測(cè),重構(gòu)(638)的值可以被饋送回圖片內(nèi)預(yù)測(cè)器(645)。對(duì)于圖片間預(yù)測(cè),重構(gòu)(638)的值可以被進(jìn)一步濾波。在合并器/(諸)濾波器(665)中,解碼器(600)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。解碼器(600)根據(jù)濾波器控制數(shù)據(jù)(662)和濾波自適應(yīng)規(guī)則來執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑各幀中的各邊界上的間斷??商鎿Q地或另外地應(yīng)用其它濾波(例如去振鈴濾波或ALF;未示出)。小塊邊界可以被選擇性地濾波或根本不濾波,這取決于解碼器(600)的設(shè)置或經(jīng)編碼的比特流數(shù)據(jù)內(nèi)的句法指示。經(jīng)解碼的圖片緩沖器(670)緩沖經(jīng)重構(gòu)的當(dāng)前圖片以供在后續(xù)的經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)中使用。
[0118]解碼器(600)還可包括后處理濾波器。后處理濾波器可以包括去振鈴濾波、自適應(yīng)維納濾波、膜顆粒再現(xiàn)濾波、SAO濾波或另一種類型的濾波。
[0119]取決于所希望的解壓縮的實(shí)現(xiàn)和類型,解碼器的模塊可以被添加、省略、拆分成多個(gè)模塊、與其他模塊組合和/或用類似的模塊來替代。在替換實(shí)施例中,具有不同模塊和/或其它配置的模塊的解碼器執(zhí)行一個(gè)或多個(gè)所描述的技術(shù)。解碼器的具體實(shí)施例通常使用解碼器(600)的變型或補(bǔ)充版本。所示的解碼器(600)內(nèi)的模塊之間的關(guān)系指示信息在解碼器中的一般流動(dòng);為簡(jiǎn)明起見,未示出其它關(guān)系。
[0120]VI1.幀內(nèi)塊復(fù)制預(yù)測(cè)模式。
[0121]本章節(jié)呈現(xiàn)幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)模式的各特征。一些特征涉及選擇塊向量(“BV”)值,而其他特征涉及對(duì)BV值的編碼/解碼。這些特征可促成從編碼和解碼的碼率失真性能和/或計(jì)算效率方面來看更有效的幀內(nèi)BC預(yù)測(cè)。具體地,幀內(nèi)BC預(yù)測(cè)可在編碼諸如屏幕捕捉內(nèi)容之類的某種“人工”創(chuàng)建的視頻內(nèi)容時(shí)改善速率一失真性能。屏幕捕捉內(nèi)容典型地包括重復(fù)的結(jié)構(gòu)(例如圖形、文本字符),其為幀內(nèi)BC預(yù)測(cè)提供了改善性能的機(jī)會(huì)。屏幕捕捉內(nèi)容通常是用具有高色度采樣分辨率的格式(例如YUV 4:4:4或RGB 4:4:4)來編碼的,但是它也可以用具有較低色度采樣分辨率的格式(例如YUV 4:2:0,YUV 4:2:2)來編碼。
[0122]A.幀內(nèi)BC預(yù)測(cè)模式-介紹。
[0123]對(duì)于幀內(nèi)BC預(yù)測(cè)模式,圖片的當(dāng)前塊的樣本值是使用同一圖片中的樣本值來預(yù)測(cè)的。BV指示從當(dāng)前塊到圖片的包括用于預(yù)測(cè)的樣本值的區(qū)域的位移。通常,用于預(yù)測(cè)的樣本值是先前重構(gòu)的樣本值。BV被信號(hào)化在比特流中。幀內(nèi)BC預(yù)測(cè)是一種形式的圖片內(nèi)預(yù)測(cè)一一針對(duì)圖片的塊的幀內(nèi)BC預(yù)測(cè)不使用除了同一圖片中的樣本值以外的任何樣本值。
[0124]圖7示出針對(duì)當(dāng)前幀(710)的當(dāng)前塊(730)的幀內(nèi)BC預(yù)測(cè)。當(dāng)前塊可以是編碼單元(“CU”)的編碼塊(“CB”)、預(yù)測(cè)單元(“PU”)的預(yù)測(cè)塊(“PB” )、變換單元(“TU”)的變換塊(“TB”)或其它塊。當(dāng)前塊的尺寸可以是64 X 64、32 X 32、16 X 16、8 X 8或某個(gè)其它尺寸。更一般地,當(dāng)前塊的尺寸為mXn,其中m和η中的每一者都是整數(shù),并且其中m和η可彼此相等或可具有不同的值。替換地,當(dāng)前塊可具有某一其他形狀(例如,經(jīng)編碼視頻對(duì)象的具有非矩形形狀的區(qū)域)。
[0125]BV(740)指示當(dāng)前塊(730)到圖片的包括用于預(yù)測(cè)的樣本值的區(qū)域(750)的位移(或偏移)。假設(shè)當(dāng)前塊的左上位置是在當(dāng)前幀的位置(XQ,yo)處,并假設(shè)幀內(nèi)預(yù)測(cè)區(qū)域的左上位置在當(dāng)前幀的位置(X1,yO處。BV指示位移(χ1-Χο,71-7ο)。例如,如果當(dāng)前塊的左上位置在位置(320,256)處,并且?guī)瑑?nèi)預(yù)測(cè)區(qū)域的左上位置在位置(295,270)處,則BV值為(-25,14)。在本示例中,負(fù)水平位移指示在當(dāng)前塊的左邊的位置,而負(fù)垂直位移指示在當(dāng)前塊之上的位置。
[0126]在一些示例實(shí)現(xiàn)中,幀內(nèi)預(yù)測(cè)區(qū)域(750)被約束到在與當(dāng)前塊(730)相同的片或小塊內(nèi)。這樣的幀內(nèi)BC預(yù)測(cè)不使用在其它片或小塊中的采樣值。幀內(nèi)預(yù)測(cè)區(qū)域(750)的位置可受制于一個(gè)或多個(gè)其它約束(例如,對(duì)于搜索范圍的約束,與對(duì)幀間編碼的塊的重構(gòu)的采樣值的使用有關(guān)的約束)。
[0127]具有幀內(nèi)BC預(yù)測(cè)的預(yù)測(cè)模式的塊可以是CB、PB或其它塊。當(dāng)塊是CB時(shí),可以在CU級(jí)上用信號(hào)通知塊的BV值(而CU中的其它CB使用相同的BV或其經(jīng)縮放的版本)。或者,當(dāng)塊是I3B時(shí),可以在PU級(jí)上用信號(hào)通知塊的BV值(而PU中的其它I3B使用相同的BV或其經(jīng)縮放的版本)。更一般地,在塊的適當(dāng)?shù)木浞?jí)上用信道通知幀內(nèi)-BC預(yù)測(cè)塊的BV。
[0128]根據(jù)幀內(nèi)BC預(yù)測(cè)模式,預(yù)測(cè)的塊復(fù)制操作可以在CB級(jí)(當(dāng)根據(jù)CB信號(hào)化BV時(shí))或PB(當(dāng)根據(jù)PB信號(hào)化BV時(shí))被執(zhí)行。例如,假設(shè)16 X 16CB具有單個(gè)16 X 16PB。(PB的)BV被應(yīng)用于塊復(fù)制16 X 16區(qū)域。當(dāng)幀內(nèi)預(yù)測(cè)區(qū)域被約束為不與正被預(yù)測(cè)的16 X 16塊重疊時(shí),B V在水平或垂直上具有至少16的幅值(絕對(duì)值)。
[0129]替換地,即使當(dāng)為PB或CB信號(hào)化BV時(shí),可以在PB或CB內(nèi)的TB級(jí)執(zhí)行塊復(fù)制操作。在這種方式中,BV,就像應(yīng)用于TB—樣,可參考相同I3B或CB中的其它TB的位置。例如,假設(shè)16 X16CB具有單個(gè)16 X 161?,但是出于殘留編碼/解碼的目的被拆分成十六個(gè)4 X 4TB。(PB的)BV被應(yīng)用以按照光柵掃描次序?qū)Φ谝?TB的4X4區(qū)域進(jìn)行塊復(fù)制,隨后同一 BV被應(yīng)用以按照光柵掃描次序?qū)Φ诙B的4X4區(qū)域進(jìn)行塊復(fù)制,依此類推。在將殘留值與對(duì)那些之前重構(gòu)的TB的預(yù)測(cè)值組合之后,用于TB的BC操作中的4 X 4區(qū)域可包括在同一 CB中之前被重構(gòu)的TB中的位置。(BV仍然不參考正被預(yù)測(cè)的同一TB中的位置。)在TB級(jí)應(yīng)用BC操作促進(jìn)了對(duì)于具有相對(duì)小的幅值的BV的使用。
[0130]對(duì)于CU的色度塊的幀內(nèi)BC預(yù)測(cè)操作一般對(duì)應(yīng)于對(duì)于CU的亮度塊的幀內(nèi)BC預(yù)測(cè)操作。一般來說,色度PB和色度TB的分割直接對(duì)應(yīng)于CU中亮度PB和亮度TB的分割。當(dāng)視頻的格式是YUV 4:4:4時(shí),色度PB和TB的大小與對(duì)應(yīng)的亮度PB和TB的大小匹配。當(dāng)視頻的格式是YUV 4:2:0時(shí),色度I3B和TB的寬度和高度是對(duì)應(yīng)的亮度I3B和TB的一半。然而,如果亮度TB具有最小變換尺寸,則使用具有該最小變換尺寸的單個(gè)色度TB。當(dāng)視頻的格式是YUV 4:2:2時(shí),色度PB和TB的寬度是對(duì)應(yīng)的亮度PB和TB的一半。
[0131]在一些實(shí)現(xiàn)中,對(duì)于幀內(nèi)BC預(yù)測(cè)的⑶,對(duì)PU中的色度塊的幀內(nèi)BC預(yù)測(cè)使用與對(duì)于PU中的亮度塊的幀內(nèi)BC預(yù)測(cè)相同的BV值,這通常是當(dāng)色度數(shù)據(jù)已減少了相對(duì)于亮度數(shù)據(jù)的分辨率時(shí)(例如,當(dāng)格式是YUV 4:2:0或YUV 4:2: 2格式時(shí))在縮放和舍入之后進(jìn)行的。替代地,可針對(duì)PU的亮度塊和色度塊用信號(hào)指示不同的BV值。
[0132]在一些實(shí)現(xiàn)中,如果PU的亮度塊的預(yù)測(cè)模式是幀內(nèi)BC預(yù)測(cè),則該P(yáng)U的色度塊的預(yù)測(cè)模式也是幀內(nèi)BC預(yù)測(cè)。例如,用信號(hào)指示該P(yáng)U的預(yù)測(cè)模式。替代地,PU的亮度塊或色度塊的預(yù)測(cè)模式可以是幀內(nèi)BC預(yù)測(cè),但不都是幀內(nèi)BC預(yù)測(cè)。
[0133]B.約束針對(duì)幀內(nèi)BC預(yù)測(cè)模式的BV搜索。
[0134]在一些示例實(shí)現(xiàn)中,編碼器根據(jù)一個(gè)或多個(gè)約束來限制BV范圍。通過限制BV范圍,編碼和解碼期間為了幀內(nèi)BC預(yù)測(cè)而進(jìn)行的快速存儲(chǔ)器存取所參考的重構(gòu)的樣本值的區(qū)域可被縮小,這有助于得到較低的實(shí)現(xiàn)成本。
[0135]圖8示出了針對(duì)BV值的搜索范圍的示例約束。除了當(dāng)前幀(810)的當(dāng)前塊(830),圖8還示出了通過兩個(gè)CTB(820、822)來限定的搜索范圍。當(dāng)前CTB(820)是當(dāng)前CTU的一部分并且包括當(dāng)前塊(830)。在CTB(822)在其左側(cè)的情況下,當(dāng)前CTB(820)限定了能夠在其中找到當(dāng)前塊(830)的可允許BV的搜索范圍。BV(842、844)參考區(qū)域位于該搜索范圍之外,因此那些BV值(842、844)不被允許。
[0136]在一些示例實(shí)現(xiàn)中,當(dāng)前塊的BV值的搜索范圍是當(dāng)前CTB和在其左側(cè)的CTB。例如,CTB可具有64x64、32x32或16x16個(gè)樣本值的大小,這產(chǎn)生128x64、64x32或32x16個(gè)樣本值的搜索范圍。只有在當(dāng)前CTB和左側(cè)CTB中的樣本值被用于當(dāng)前塊的幀內(nèi)BC預(yù)測(cè)。這通過對(duì)搜索過程進(jìn)行約束而簡(jiǎn)化了編碼器實(shí)現(xiàn)。還通過限制解碼器在快速存儲(chǔ)器中緩沖的用于幀內(nèi)預(yù)測(cè)的樣本值的數(shù)量而簡(jiǎn)化了解碼器實(shí)現(xiàn)。另一約束是幀內(nèi)預(yù)測(cè)不能參考來自另一片或小塊的樣本值。對(duì)于具有位于(XQ,yQ)處的左上位置的當(dāng)前的塊m X η以及各自具有尺寸CTBsizeY X CTBsizeY的CTB,編碼器可如下地為具有水平分量BV[0]和垂直分量BV[I]的二維BV檢查這些約束。
[0137].BV[0] > -((xo%CTBsizeY)+CTBsizeY)
[0138].BV[1] >-(yo%CTBsizeY)
[0139].位于位置(XQ,yo)、(xq+BV[0],yo+BV[I])和(xo+BV[0]+m_l,yo+BV[l]+n_l)處的樣本值應(yīng)當(dāng)在同一片中。
[0140].位于位置(XQ,yo)、(xq+BV[0],yo+BV[I])和(xo+BV[0]+m_l,yo+BV[l]+n_l)處的樣本值應(yīng)當(dāng)在同一小塊中。
[0141]圖9示出用于采用幀內(nèi)BC預(yù)測(cè)模式的編碼的技術(shù)(900),其中該幀內(nèi)BC預(yù)測(cè)模式受制于針對(duì)BV值的選擇的一個(gè)或多個(gè)約束。編碼器(諸如參考圖3或圖5a-5b描述的編碼器)可執(zhí)行該技術(shù)(900)。
[0142]作為開始,編碼器確定(910)圖片的當(dāng)前塊的BV。當(dāng)前塊可以是CBjB或其他塊。該BV指示到圖片內(nèi)的一區(qū)域的位移。在確定BV時(shí),編碼器檢查一個(gè)或多個(gè)約束。
[0143]根據(jù)一個(gè)可能的約束,編碼器檢查用于幀內(nèi)BC預(yù)測(cè)的樣本值的范圍。編碼器可檢查候選幀內(nèi)預(yù)測(cè)區(qū)域是否位于當(dāng)前CTB和一個(gè)或多個(gè)其它CTB(例如,當(dāng)前CTB左側(cè)的CTB)所限定的范圍內(nèi)。例如,當(dāng)BV具有第一分量BV[0]和第二分量BV[1],當(dāng)前塊具有位置(XQ,yQ)處的左上位置,并且每一個(gè)CTB具有寬度CTBwidth和高度CTBheight時(shí),如果BV[0]> = -((xo%CTBwidth)+CTBwidth)且BV[ I ]> =-(yo%CTBheight),則滿足約束。編碼器可類似地檢查在以下搜索范圍內(nèi)的BV[0]和BV[1]的值的上限:8¥[0]〈((7^^_-111-(別%(7^^沾))且^[1]〈(CTBheight-n-(yO%CTBheight))。替換地,該搜索范圍包括更多或更少的CTB,或者該搜索范圍以某種其它方式來定義。
[0144]根據(jù)另一可能約束,編碼器將搜索限制于當(dāng)前片和小塊(S卩,當(dāng)前塊和區(qū)域是圖片的不大于I個(gè)片和圖片的不大于I個(gè)小塊的一部分)。編碼器可檢查當(dāng)前塊的左上位置、候選幀內(nèi)預(yù)測(cè)區(qū)域的左上位置以及候選幀內(nèi)預(yù)測(cè)區(qū)域的右下位置是否是單個(gè)片和單個(gè)小塊的一部分。例如,如果(xo,yo)、(xo+BV[0],yo+BV[ I])和(xo+BV[0]+m-l,yo+BV[I ]+n_l)是單個(gè)片和單個(gè)小塊的一部分,則滿足約束。
[0145]替代地,編碼器檢查其它和/或附加約束。
[0146]編碼器使用BV來執(zhí)行(920)對(duì)于當(dāng)前塊的幀內(nèi)BC預(yù)測(cè)。例如,編碼器對(duì)整個(gè)當(dāng)前塊執(zhí)行幀內(nèi)BC預(yù)測(cè)。或者,編碼器對(duì)與當(dāng)前塊相關(guān)聯(lián)的多個(gè)塊(例如,對(duì)于逐TB為基礎(chǔ)的多個(gè)TB,其中TB與具有該BV的當(dāng)前PB相關(guān)聯(lián))執(zhí)行幀內(nèi)BC預(yù)測(cè)。
[0147]編碼器對(duì)BV進(jìn)行編碼(930)。例如,編碼器如以下所描述的對(duì)BV進(jìn)行編碼(930)。編碼器可為另一幀內(nèi)BC預(yù)測(cè)模式塊重復(fù)該技術(shù)(900)。
[0148]對(duì)于幀內(nèi)BC預(yù)測(cè),編碼器和解碼器使用重構(gòu)的樣本值。未重構(gòu)的樣本值可被呈現(xiàn)作為尚未被編碼和重構(gòu)的圖片的部分。為了避免將未重構(gòu)的樣本值用于幀內(nèi)BC預(yù)測(cè),編碼器可設(shè)置針對(duì)可允許的BV值的約束,使得只有真實(shí)的、之前被重構(gòu)的樣本值被用于根據(jù)BV進(jìn)行的幀內(nèi)BC預(yù)測(cè)。
[0149]在一些示例實(shí)現(xiàn)中,編碼器通過考慮當(dāng)前塊和包含候選幀內(nèi)預(yù)測(cè)區(qū)域的右下位置的塊的Z-掃描次序來檢查BV值。更具體地,編碼器檢查包含位置(XQ+BV[0]+m-l,yQ+BV[l] +n-1)的塊的z-掃描次序是否小于包含(xq,yo)的塊的z-掃描次序。如果是,則包含幀內(nèi)預(yù)測(cè)區(qū)域的右下位置的塊已經(jīng)在先前被重構(gòu)(并且因此具有該幀內(nèi)預(yù)測(cè)區(qū)域的剩余部分)。奶還滿足條件V[O] +m < O和BV[ I ] +n ^ O中的至少一個(gè),確保幀內(nèi)預(yù)測(cè)區(qū)域不覆蓋當(dāng)前塊。
[0150]Z-掃描次序遵循分隔圖片的順序指定的塊排序。圖10示出用于當(dāng)前塊(1030)和可能包括候選BV的幀內(nèi)預(yù)測(cè)區(qū)域的右下位置的塊的示例Z-掃描次序(1000)。當(dāng)前塊(1030)可以是CB、PB或其他塊。Z-掃描次序通常被以在行中從左到右順序分派給塊,在從上到下的連續(xù)行中重復(fù)。當(dāng)塊被拆分時(shí),可以在被拆分的塊內(nèi)遞歸地分派Z-掃描次序。對(duì)于用于HEVC標(biāo)準(zhǔn)的編碼/解碼的實(shí)現(xiàn),Z-掃描次序通過CTB光柵掃描模式(在CTB行中從左到右,從上到下在連續(xù)CTB行中重復(fù))從CTB到CTB開始行進(jìn)。如果CTB被拆分,z_掃描次序遵循在經(jīng)拆分的CTB內(nèi)的四叉樹的CB的光柵掃描模式。并且,如果CB被拆分(例如,拆成多個(gè)CB或拆成多個(gè)PB),z-掃描次序遵循在經(jīng)拆分的CB內(nèi)的塊的光柵掃描模式。
[0151]替代地,當(dāng)幀內(nèi)BC預(yù)測(cè)可在逐TB的基礎(chǔ)上執(zhí)行時(shí),編碼器和解碼器可檢查幀內(nèi)預(yù)測(cè)區(qū)域和當(dāng)前塊(TB)之間的可能重疊,隨后使用檢查的結(jié)果來決定當(dāng)前TB是否應(yīng)當(dāng)被拆分成更小的TB來應(yīng)用幀內(nèi)BC預(yù)測(cè)操作。假設(shè)當(dāng)前TB具有m xn的大小,其中m和η可以彼此相等或可具有不同值。如果BV[0]>-m并且BV[l]>-n,則幀內(nèi)預(yù)測(cè)區(qū)域與當(dāng)前的m χ η TB重疊,這會(huì)產(chǎn)生問題,除非該當(dāng)前的m χ η TB被拆分成更小的TB來應(yīng)用幀內(nèi)BC預(yù)測(cè)操作。因此,如果BV[0]>-m并且BV[l]>-n,則編碼器和解碼器將當(dāng)前TB拆分成更小的TB。對(duì)于更小的TB檢查同一條件(例如,遞歸地檢查),如果對(duì)于拆分后的更小的m和η值,還是BV[0]>-m且BV[1]>-n,則這些更小的TB可被進(jìn)一步拆分。
[0152]例如,假設(shè)PB的BV是(-9,-5),并且當(dāng)前TB是32x32的塊。編碼器和解碼器確定-9>-32且-5>-32,這表示幀內(nèi)預(yù)測(cè)區(qū)域(其左上角位移-9,-5)將與當(dāng)前的32132了8重疊。編碼器和解碼器將該32x32TB拆分成四個(gè)16x16TB。對(duì)于每一個(gè)16x16TB,編碼器和解碼器確定-9>-16且-5>-16,這表示幀內(nèi)預(yù)測(cè)區(qū)域(其左上角位移-9,-5)將與當(dāng)前的16116了8重疊。編碼器和解碼器繼續(xù)將每個(gè)16x16TB拆分成四個(gè)8x8TB。對(duì)于8x8TB,(-9,-5)的BV不是問題,因此8x8TB不被進(jìn)一步執(zhí)行拆分。
[0153]在這一場(chǎng)景中,當(dāng)TB由于BV值和TB的大小的緣故而被拆分時(shí),編碼器可省略對(duì)于標(biāo)志值的信令,該標(biāo)志值原本會(huì)指示當(dāng)前TB是否要拆分成更小的TB。編碼數(shù)據(jù)的比特流缺少指導(dǎo)解碼器將當(dāng)前TB拆分成更小TB的標(biāo)志值。替代地,解碼器可根據(jù)BV值和TB的大小來推導(dǎo)TB應(yīng)當(dāng)被拆分。這可節(jié)省原先被花費(fèi)在指示關(guān)于拆分TB的信息的比特。
[0154]C.對(duì)BV值的編碼和解碼。
[0155]共同地,使用幀內(nèi)BC預(yù)測(cè)編碼的塊的BV值可消費(fèi)大量的比特。這些BV值可被熵編碼以降低比特率。為了進(jìn)一步降低BV值的比特率,編碼器可使用BV值的預(yù)測(cè)。BV值通常展示出冗余性一給定塊的BV值通常與圖片中的先前塊的BV值相似或甚至相同。對(duì)于BV預(yù)測(cè),給定塊的BV值是使用BV預(yù)測(cè)值來預(yù)測(cè)的。給定塊的BV值和BV預(yù)測(cè)值之間的差(或BV差)隨后被熵編碼。通常,BV差是針對(duì)BV值的水平和垂直分量以及BV預(yù)測(cè)值來計(jì)算的。當(dāng)BV預(yù)測(cè)工作良好時(shí),BV差具有支持高效熵編碼的概率分布。編碼器和解碼器在對(duì)BV值進(jìn)行編碼/解碼時(shí)可使用基本BV預(yù)測(cè)和/或合并模式/BV競(jìng)爭(zhēng)。
[0156]對(duì)于編碼和解碼期間的基本BV預(yù)測(cè),當(dāng)前塊的BV值可基于一個(gè)或多個(gè)之前的塊的BV值來預(yù)測(cè)。例如,相鄰塊(例如,當(dāng)前塊左側(cè)的塊)的BV值可被用于確定當(dāng)前塊的BV值的BV預(yù)測(cè)值。如果當(dāng)前塊的BV值為(-80,-24)并且BV預(yù)測(cè)值為(-80,-32),則為(O,8)的BV差被熵編碼?;蛘?,當(dāng)前塊的BV值的BV預(yù)測(cè)符可以是多個(gè)相鄰塊(例如,當(dāng)前塊的左側(cè)、上方以及左上的塊)的BV值的分量級(jí)的中值或平均。
[0157]在解碼期間,解碼器接收BV值的經(jīng)熵編碼的BV差(如果有的話),并對(duì)該BV差進(jìn)行熵解碼。解碼器還確定BV值的BV預(yù)測(cè)值。(由解碼器確定的BV預(yù)測(cè)值與由編碼器確定的BV預(yù)測(cè)值相同。)重構(gòu)的BV差(如果有的話)隨后被與BV預(yù)測(cè)值組合。
[0158]當(dāng)來自先前塊的實(shí)際BV值不可用時(shí)(例如,當(dāng)確定給定CTU中的第一幀內(nèi)BC預(yù)測(cè)的塊的BV值時(shí)),編碼器和解碼器可使用默認(rèn)BV預(yù)測(cè)值。例如,默認(rèn)BV預(yù)測(cè)值可以為(0,0)。或者,默認(rèn)BV預(yù)測(cè)值可以為(-W,O)或(-2*W,O ),其中W是當(dāng)前塊的寬度。或者,默認(rèn)BV預(yù)測(cè)值可以為(0,_H)或(0,-2*H),其中H是當(dāng)前塊的高度。相比于為零值的默認(rèn)BV預(yù)測(cè)值,具有非零分量的默認(rèn)BV預(yù)測(cè)值往往更接近于當(dāng)前塊的BV值,這導(dǎo)致對(duì)BV差的更高效的熵編碼?;蛘?,默認(rèn)BV預(yù)測(cè)值的分量可具有給定的非零值(例如,8或16)。
[0159]在任何情況下,當(dāng)對(duì)當(dāng)前塊而言可能的BV值被約束為落在特定搜索范圍內(nèi)(例如,當(dāng)前CTB以及在當(dāng)前CTB左側(cè)的CTB,如在先前章節(jié)中描述的)并且BV值無法導(dǎo)致當(dāng)前塊和其幀內(nèi)預(yù)測(cè)區(qū)域之間的重疊時(shí),在一些情況下,當(dāng)前塊的BV值可僅具有一個(gè)可能值。例如,如果(I)當(dāng)前CTB具有單個(gè)CB作為當(dāng)前塊,(2)BV值的搜索范圍是當(dāng)前CTB以及在其左側(cè)的CTB,并且(3)當(dāng)前塊及其幀內(nèi)預(yù)測(cè)區(qū)域之間的重疊不被允許,則該單個(gè)CB的BV值必須具有為(-W,0)的BV值。其他BV值要么參考該搜索范圍之外的位置要么參考該當(dāng)前塊之內(nèi)的位置。在該情況下,編碼器可跳過對(duì)當(dāng)前塊的BV值(或BV差)的信號(hào)化。解碼器可檢查標(biāo)識(shí)該情況并推斷為(_W,0)的BV值的條件,而無需對(duì)當(dāng)前塊的任何BV值(或BV差)進(jìn)行解析和解碼。
[0160]或者,編碼器和解碼器在用于空間上與當(dāng)前塊鄰近的重構(gòu)塊(例如,當(dāng)前塊左側(cè)的塊、當(dāng)前塊上方的塊等等)的BV值中確定用于當(dāng)前塊的一個(gè)或多個(gè)候選BV值。候選BV值還可包括用于時(shí)間上與當(dāng)前塊相鄰的重構(gòu)塊的一個(gè)或多個(gè)BV值,其中時(shí)間上相鄰的塊處于另一圖片中與當(dāng)前塊對(duì)應(yīng)的位置(例如,同一位置或重疊的位置)。在編碼和解碼期間,可通過規(guī)則確定候選BV值的列表以消除冗余BV值。在編碼期間,編碼器可信號(hào)通知一個(gè)或多個(gè)句法元素以指示哪個(gè)候選BV值被用作為當(dāng)前塊的BV預(yù)測(cè)符。在一些模式中,該BV預(yù)測(cè)符可被用作為當(dāng)前塊的酬直,這有效地將當(dāng)前塊的酬直與提供候選酬直的鄰居的BV值“合并”?;蛘?,編碼器可基于BV值和BV預(yù)測(cè)符來確定并編碼BV差。在解碼期間,解碼器可接收一個(gè)或多個(gè)句法元素以指示哪個(gè)候選BV值被用作為當(dāng)前塊的BV預(yù)測(cè)符。在一些模式中,該BV預(yù)測(cè)符可被用作為當(dāng)前塊的BV值,這有效地將當(dāng)前塊的BV值與提供候選BV值的鄰居的BV值“合并”?;蛘?,解碼器可接收和解碼BV差,該BV差被解碼器用來與BV預(yù)測(cè)符組合以重構(gòu)BV值。BV “跳過”或BV “直接”模式可被提供,其中(根據(jù)規(guī)則而選擇的)BV預(yù)測(cè)符被用作為當(dāng)前塊的BV值,其中沒有為當(dāng)前塊用信號(hào)通知的殘留值。以下描述使用乒乓方法的BV預(yù)測(cè)的示例,其中在預(yù)測(cè)塊的BV值時(shí),編碼器或解碼器在候選BV值對(duì)之間進(jìn)行選擇。
[0161]D.組合幀內(nèi)BC預(yù)測(cè)的各特征的示例實(shí)現(xiàn)。
[0162]如所提到的,以上的幀內(nèi)BC預(yù)測(cè)的各特征可被分開和單獨(dú)地使用?;蛘?,以上的幀內(nèi)BC預(yù)測(cè)的各特征可被組合使用。
[0163]例如,在一個(gè)組合的一般遵循HEVC句法的實(shí)現(xiàn)中,為PU(其可以是⑶或者⑶的一部分)用信號(hào)通知BV值。PU可包括一個(gè)或多個(gè)TU。幀內(nèi)BC預(yù)測(cè)過程工作在TB級(jí)、以逐TB為基礎(chǔ)地進(jìn)行、并且使用所為PU信號(hào)通知的BV值。(所有的TB使用相同的BV值,并且對(duì)于當(dāng)前TB的幀內(nèi)BC預(yù)測(cè)可使用同一 CU中其它早前的TB的重構(gòu)的樣本值。)BV值可使用一個(gè)或多個(gè)相鄰PU的BV值(例如,使用用于BV預(yù)測(cè)的乒乓方法)來預(yù)測(cè)。BV值的選擇被約束:(a)使得編碼器被禁止選擇將導(dǎo)致參考位于還未被編碼/重構(gòu)的區(qū)域內(nèi)的任何樣本值的BV值(S卩,當(dāng)前TB的幀內(nèi)預(yù)測(cè)區(qū)域的樣本值必須在被按照解碼比特流次序位于當(dāng)前TB之前的其它TB所覆蓋的區(qū)域中;也就是說,對(duì)于給定TB,BV值被約束為參考在該TB之外的區(qū)域);(b)以減少解碼器中必需的存儲(chǔ)器容量(例如,通過將根據(jù)BV值的參考約束為處于當(dāng)前CTB和當(dāng)前CTB左側(cè)的一個(gè)或兩個(gè)CTB內(nèi));以及(c)以禁止根據(jù)BV值的參考處于當(dāng)前片之外、處于當(dāng)前小塊之外、或者處于圖片之外。
[0164]VII1.塊向量預(yù)測(cè)方面的創(chuàng)新。
[0165]根據(jù)本文中描述的創(chuàng)新的一個(gè)方面,編碼器和解碼器使用根據(jù)”乒兵”方法的塊向量(“BV”)預(yù)測(cè)。具體地,在一些場(chǎng)景中,在對(duì)屏幕內(nèi)容視頻進(jìn)行編碼時(shí),用于BV預(yù)測(cè)的示例兵兵方法改善編碼效率。
[0166]在示例乒乓方法中,編碼器和解碼器維持候選BV值對(duì)作為狀態(tài)信息。圖11示出BV緩沖器(1100)中可在示例乒乓方法中使用的候選BV值對(duì)。在BV緩沖器(1100)中,BV緩沖器O存儲(chǔ)第一初始候選BV值,該第一初始候選BV值被標(biāo)記為BVinitj)。奶緩沖器I存儲(chǔ)第二初始候選BV值,該第二初始候選BV值被標(biāo)記為BVinitj ο 一般來說,BV緩沖器O的BV值變量可被標(biāo)記為PBVO,并且BV緩沖器I的BV值變量可被標(biāo)記為PBVl。
[0167]圖12示出了根據(jù)示例乒乓方法可存儲(chǔ)候選BV值對(duì)的另一數(shù)據(jù)結(jié)構(gòu)(1200)。數(shù)據(jù)結(jié)構(gòu)(1200)存儲(chǔ)第一初始候選BV值,該第一初始候選BV值被標(biāo)記為BVinitj)并與索引值idxO相關(guān)聯(lián)。第二初始候選BV值(BVinitJ)與數(shù)據(jù)結(jié)構(gòu)(1200)中的索引值idx I相關(guān)聯(lián)。一般來說,與idxO相關(guān)聯(lián)的BV值變量可被標(biāo)記為PBV0,并且與idxl相關(guān)聯(lián)的BV值變量可被標(biāo)記為PBV1。
[0168]替換地,編碼器和解碼器使用另一數(shù)據(jù)結(jié)構(gòu)來跟蹤候選BV值對(duì)以用于根據(jù)乒乓方法的BV預(yù)測(cè)。
[0169]根據(jù)示例乒乓方法,編碼器從候選BV值對(duì)中選擇供對(duì)PU的BV值使用的BV預(yù)測(cè)值。例如,在PU將用所選的候選BV值使用幀內(nèi)BC預(yù)測(cè)來編碼時(shí),編碼器依據(jù)某一度量(例如,絕對(duì)差之和、均方差)來選擇其所參考的幀內(nèi)預(yù)測(cè)區(qū)域最接近地匹配該P(yáng)U的候選BV值。或者,當(dāng)該P(yáng)U具有將被用于幀內(nèi)BC預(yù)測(cè)的BV值(通過BV估計(jì)標(biāo)識(shí)出)時(shí),編碼器選擇最接近地匹配該P(yáng)U的該BV值的候選BV值。該選擇導(dǎo)致最小的BV差,這趨于改善熵編碼的效率。
[0170]對(duì)于BV值,編碼器信號(hào)化指示候選BV值對(duì)中選中的候選BV值的標(biāo)志值,以便向解碼器指示候選BV值對(duì)中的哪個(gè)候選BV值應(yīng)當(dāng)被用作BV預(yù)測(cè)值。該標(biāo)志值可被熵編碼或信號(hào)化為固定長(zhǎng)度值。該標(biāo)志值可被(有條件地)信號(hào)化在比特流中作為分開的句法元素,或者該標(biāo)志值可與另一句法元素聯(lián)合起來被信號(hào)化在比特流中。
[0171 ]當(dāng)候選BV值對(duì)中的每一候選BV值同等地可能為BV預(yù)測(cè)值時(shí),該標(biāo)志值可高效地被信號(hào)化為固定長(zhǎng)度值(例如,I比特),或者以繞過模式使用二進(jìn)制算術(shù)編碼(假設(shè)這兩個(gè)可能值同等地可能)。第一值(例如,O)指示對(duì)第一候選BV值的選擇,并且第二值(例如,I)指示對(duì)第二候選BV值的選擇。當(dāng)候選BV值對(duì)中的一個(gè)候選BV值比另一種更有可能時(shí),標(biāo)志值也可被信號(hào)化成固定長(zhǎng)度值,但編碼效率可被降低。
[0172]當(dāng)該對(duì)中的一個(gè)候選BV值更可能被選作BV預(yù)測(cè)值時(shí),使用基于上下文的算術(shù)編碼來信號(hào)化標(biāo)志值可能更高效。例如,當(dāng)編碼或解碼針對(duì)片開始,并隨后在編碼/解碼期間被更新以考慮不同標(biāo)志值的出現(xiàn)時(shí),標(biāo)志值的概率內(nèi)容可被初始化為等于兩個(gè)可能標(biāo)志值的概率。在具有針對(duì)BV預(yù)測(cè)值的單獨(dú)上下文的情況下,標(biāo)志值可改善編碼效率,但由于上下文建模等而增加了編碼和解碼的復(fù)雜性。通常,預(yù)期將被更頻繁地選擇的候選BV值被存儲(chǔ)在第一 BV緩沖器(例如,BV緩沖器O)中并被指示為具有第一標(biāo)志值,并且預(yù)期將被較不頻繁地選擇的候選BV值被存儲(chǔ)在另一 BV緩沖器(例如,BV緩沖器I)中并被指示為具有另一標(biāo)志值。由此,平均來說,指示第一BV緩沖器的標(biāo)志值在算術(shù)編碼中可使用更少數(shù)目的分?jǐn)?shù)比特來編碼。然而,對(duì)于一些內(nèi)容,更常用的候選BV值可被存儲(chǔ)在另一 BV緩沖器(例如,BV緩沖器I)中,其中上下文建模考慮BV預(yù)測(cè)值分布的改變。
[0173]解碼器解析/解碼BV值的標(biāo)志值,并使用該標(biāo)志值來確定候選BV值對(duì)中的哪個(gè)候選BV值是該BV值的BV預(yù)測(cè)值。解碼器使用選中的候選BV值作為BV預(yù)測(cè)值。
[0174]編碼器和解碼器跟蹤并更新哪些BV值在候選BV值對(duì)中。在先前的乒乓方法中,當(dāng)新BV值被產(chǎn)生(或重構(gòu))時(shí),該對(duì)中的較老的候選BV值(PBVI)被該對(duì)中的較新的BV值(PBVO)替換,并且該對(duì)中的較新的BV值(PB VO)被剛產(chǎn)生的/重構(gòu)的BV值(B V新)替換。(也就是說,PBVl =PBVO并且PBVO = BV新。)隨著每一 BV值被產(chǎn)生或重構(gòu),候選BV值對(duì)被更新。
[0175]在本文中描述的示例乒乓方法中,編碼器和解碼器可自動(dòng)地更新候選BV值對(duì)以在某BV值被產(chǎn)生或重構(gòu)后包括該BV值。然而,這可導(dǎo)致候選BV值對(duì)具有兩個(gè)相同的候選BV值。在該情況下,編碼器(在認(rèn)識(shí)到兩個(gè)候選BV值相同的情況下)可跳過對(duì)指示在候選BV值對(duì)之間選擇的標(biāo)志值的信號(hào)化,并且解碼器(在認(rèn)識(shí)到兩個(gè)候選BV值相同的情況下)可跳過對(duì)該標(biāo)志值的解析,而改為僅使用此相同的候選BV值中的任一者作為BV預(yù)測(cè)值。
[0176]或者,在本文中描述的示例乒乓方法中,編碼器和解碼器可選擇性地更新候選BV值對(duì)(和BV緩沖器)以避免具有相同的候選BV值。編碼器或解碼器僅在新BV值不等于將保持在候選BV值對(duì)中的候選BV值時(shí)才更新該對(duì)。如果新BV值等于將保持在該對(duì)中的候選BV值,則編碼器或解碼器跳過更新操作。例如,編碼器或解碼器如下選擇性地更新候選BV值對(duì)(PBVO和PBVl)以包括新BV值BV新。
[0177]if(BV新!=PBV0){
[0178]PBV1=PBV0;
[0179]PBVO = BV新;
[0180]}else{
[0181]do nothing(什么也不做);
[0182]}
[0183]通過測(cè)試條件BV新!=PBVO,編碼器和解碼器避免其中I3BVO等于PBVl的情況,在該情況下,標(biāo)志值指示BV預(yù)測(cè)值被浪費(fèi)。另一方面,檢查該條件增加了BV預(yù)測(cè)的復(fù)雜度,在給定資源要求或依據(jù)編碼效率方面的增益來證明合理性的情況下,該復(fù)雜度可能不是可接受的。
[0184]例如,假設(shè)PBVO為(_12,0)且PBVl為(-16,0)。如果BV新為(-17,0),則(-12,0)替換PBVl的(-16,0),并且(-17,0)替換PBVO的(-12,0)。來自PBVl的先前BV值(-16,0)被丟棄。另一方面,如果BV新為(-12,0),則PBVO和PBVl不改變,因?yàn)锽V新匹配PBVO。如果BV新匹配PBVl (在該示例中,兩者都為(-16,O)),則PBVO和PBVl的次序被高效地切換一(_12,O)替換PBVl的(-16,0),并且(8%?的)(-16,0)替換卩8¥0的(-12,0)。
[0185]在本文中描述的示例乒乓方法中,對(duì)于具有四個(gè)PU的⑶,編碼器和解碼器在更新用于BV預(yù)測(cè)的候選BV值對(duì)時(shí)使用不同的模式。在概念上,不同的模式使用對(duì)候選BV值對(duì)的CU級(jí)更新,而不是PU級(jí)更新。在完成了針對(duì)CU的BV預(yù)測(cè)后,候選BV值對(duì)包括該CU的前兩個(gè)HJ的BV值一 BV緩沖器O中的PUl的BV值以及BV緩沖器I中的PUO的BV值。相反,根據(jù)先前的乒乓方法,在針對(duì)⑶的BV預(yù)測(cè)被完成后,候選BV值對(duì)包括該⑶的后兩個(gè)PU的BV值,這后兩個(gè)PU可以是PU3和PU2。
[0186]替換地,編碼器和解碼器在更新用于BV預(yù)測(cè)的候選BV值對(duì)時(shí)可使用不同的模式。如果標(biāo)志值是例如使用固定長(zhǎng)度值來編碼的,則編碼器和解碼器可在用剛產(chǎn)生的或重構(gòu)的BV值來更新兩個(gè)BV緩沖器之間“切換”(交替)。通過這種方式,編碼器和解碼器可使用單個(gè)操作來替換較老的候選BV值(而不是將較新的候選BV值移位到較老的候選BV值的位置點(diǎn),隨后再將新的BV值添加到該較新的候選BV值的先前位置點(diǎn)),但編碼器和解碼器需要跟蹤哪個(gè)BV緩沖器接著應(yīng)當(dāng)被更新。同樣,切換可通過干擾上下文自適應(yīng)二進(jìn)制算術(shù)編碼而損害對(duì)標(biāo)志值的編碼效率。
[0187]當(dāng)沒有實(shí)際的BV值可用于用作候選B V值時(shí)(例如,在編碼或解碼CTU的第一CU之前),候選B V值對(duì)可被初始化為默認(rèn)值。例如,兩個(gè)候選BV值被初始化為(-2W,O),其中W是CU的寬度?;蛘撸蜻xBV值之一可被初始化為(-2W,O),且另一候選BV值可被初始化為(O,-2H),其中H是CU的高度(并且可以與W相同)。或者,候選BV值可被初始化為另一值,諸如(-W,O)或(O,-H)?;蛘?,出于簡(jiǎn)化的目的,取代使用依賴于實(shí)際CU尺寸的默認(rèn)值,候選BV值可被初始化成諸如(-8,O)、(-16,O)、(O,-8)或(O,-16)之類的固定值,或者被初始化成被信號(hào)化在比特流中的某值。在尺寸為8或16的CU對(duì)于幀內(nèi)BC預(yù)測(cè)最常見時(shí),這例如可以是合適的。在任何情況下,在BV預(yù)測(cè)開始后,實(shí)際BV值代替候選BV值對(duì)中的默認(rèn)BV值。
[0188]在所有以下示例中,除非另外指出,否則BV緩沖器O存儲(chǔ)“占優(yōu)勢(shì)的”候選BV值,該“占優(yōu)勢(shì)的”候選BV值比存儲(chǔ)在BV緩沖器I中的另一候選BV值更可能被選擇。上下文自適應(yīng)二進(jìn)制算術(shù)編碼可利用較常見的BV預(yù)測(cè)值標(biāo)志值的較高概率來改善對(duì)標(biāo)志值的編碼效率。
[0189]A.針對(duì)2Nx2N CU中的2Nx2N HJ的示例BV預(yù)測(cè)。
[0190]圖13示出根據(jù)示例乒乓方法對(duì)2Nx2N CU的2Nx2N HJ的BV預(yù)測(cè)的示例。2Nx2N CU包括其BV是使用候選BV值對(duì)來預(yù)測(cè)的單個(gè)2Nx2N PU(PUO)。
[0191]在圖13中,BV緩沖器O最初存儲(chǔ)第一初始候選BV值BVinitJj(PBVO),并且BV緩沖器I最初存儲(chǔ)第二初始候選BV值BVinit-KPBVl )。如2Nx2N PU的標(biāo)志值所指示的,使用PBVO或PBVl中的任一者來預(yù)測(cè)單個(gè)2Nx2N PU(PU0)的BV值。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理HJO的BV值。
[0192]隨后如下更新候選BV值對(duì)。PBVl被用I3BVO代替,且I3BVO被用PUO的BV值代替。也就是說,PBVl = PBVO且PBVO = BV PUO。在圖13中,BV緩沖器I被更新為存儲(chǔ)BVinitj),且BV緩沖器O被更新為存儲(chǔ)HJO的BV值(BVpuq)。替換地,如以上所解釋的,編碼器或解碼器取決于新BV值BV新(此處為BVpuq)是否等于PBVO來選擇性地更新候選BV值對(duì)(以及BV緩沖器)。
[0193]B.針對(duì)2Nx2N CU中的各NxN HJ的示例BV預(yù)測(cè)。
[0194]圖14示出根據(jù)示例乒乓方法對(duì)2Nx2N CU的四個(gè)NxN HJ的BV預(yù)測(cè)的示例。2Nx2N CU包括四個(gè)NxN ?1^1]0、?1]1、?1]2和?1]3),這四個(gè)他~ PU的BV值是使用候選BV值對(duì)來預(yù)測(cè)的,該候選BV值對(duì)在針對(duì)CU的BV預(yù)測(cè)過程期間被更新。
[0195]在圖14中,BV緩沖器O最初存儲(chǔ)第一初始候選BV值BVinitJj(PBVO),并且BV緩沖器I最初存儲(chǔ)第二初始候選BV值BVinitj(PBV1)。如HJO的標(biāo)志值所指示的,使用PBVO或PBVl中的任一者來預(yù)測(cè)第一NxN PU(PUO)的BV值。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理 PUO 的 BV 值(BVpuo )。
[0196]隨后通過用I3BVO替換I3BVl,并用HJO的BV值替換I3BVO來更新候選BV值對(duì)。也就是說,I3BVl = PB VO并且PB VO = BVpuo。在圖14中,BV緩沖器I被更新為存儲(chǔ)BVinitj),且BV緩沖器O被更新為存儲(chǔ)BVm。替換地,如以上所解釋的,編碼器或解碼器取決于新BV值BV新(此處為BVpuo)是否等于PBVO來選擇性地更新候選BV值對(duì)(以及BV緩沖器)。
[0197]接著,如PUI的標(biāo)志值所指示的,使用I3BVO (在圖14中,為其左側(cè)鄰居BVpuq )或IWI(在圖14中為BVinitj))中的任一者來預(yù)測(cè)第二NxN PU(PUl)的BV值。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理PUl的BV值(BVpui)。
[0198]隨后通過用I3BVO替換I3BVl,并用HJl的BV值替換I3BVO來更新候選BV值對(duì)。也就是說,I3BVl = I3BVO且I3BVO = BVpui。在圖14中,BV緩沖器I被更新為存儲(chǔ)BVpuq,且BV緩沖器O被更新為存儲(chǔ)BVpui。替換地,如以上所解釋的,編碼器或解碼器取決于新BV值BV新(此處為BVpui)是否等于PBVO來選擇性地更新候選BV值對(duì)(以及BV緩沖器)。
[0199]接著,如PU2的標(biāo)志值所指示的,使用I3BVO(在圖14中,為其右上鄰居BVm)或I3BVl(在圖14中為其上側(cè)鄰居BVpuq)中的任一者來預(yù)測(cè)第三NxN PU(PU2)的BV值。對(duì)于該標(biāo)志值,BV緩沖器I存儲(chǔ)占優(yōu)勢(shì)的候選BV值,而非BV緩沖器O。這個(gè)調(diào)整考慮BVPUQ(上側(cè)鄰居)比BVpui(右上鄰居)更可能為候選。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理PU2的BV值(BVpu2)。然后,BV緩沖器O中的候選BV值(在圖14中為BVpui )以及BV緩沖器I中的候選BV值(在圖14中為BVpuq )是未改變的。
[0200]最后,如PU3的標(biāo)志值所指示的,使用被緩沖在另一位置中的PU2的BV值(BVpu2)或PBVI (在圖14中,為其上側(cè)鄰居BVpui )來預(yù)測(cè)第四NxN PU(PU3)的BV值。對(duì)于該標(biāo)志值,BV緩沖器O再次存儲(chǔ)占優(yōu)勢(shì)的候選BV值,但是另一候選BV值不被存儲(chǔ)在BV緩沖器I中。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理PU3的BV值(BVpu3)。然后,BV緩沖器O和BV緩沖器I中的候選BV值是未改變的。在圖14中,在對(duì)該CU的四個(gè)NxN HJ的BV預(yù)測(cè)的結(jié)束處,候選BV值對(duì)為BVpui(在BV緩沖器O中)和BVPUQ(在BV緩沖器I中)。
[0201]相反,根據(jù)先前的乒乓方法,對(duì)于針對(duì)2Nx2N⑶的NxNPU的BV預(yù)測(cè),當(dāng)BV值被產(chǎn)生或重構(gòu)時(shí),BV緩沖器O中的候選BV值被移動(dòng)到BV緩沖器I,并且剛產(chǎn)生/重構(gòu)的BV值被存儲(chǔ)在BV緩沖器O中。在對(duì)2Nx2N CU的四個(gè)NxN HJ的BV預(yù)測(cè)的結(jié)束處,候選BV值對(duì)將為BVPU3(在BV緩沖器O中)和BVpu2(在BV緩沖器I中)。在實(shí)踐中,先前的兵兵方法存在若干缺點(diǎn)。如果下一⑶具有單個(gè)2Nx2N PU,則當(dāng)前⑶的BVpuq通常將為最佳BV預(yù)測(cè)值,但當(dāng)前⑶的BVpuq不會(huì)被作為候選BV值之一來保留?;蛘撸绻乱虎蔷哂袃蓚€(gè)Nx2N PU,則當(dāng)前⑶的BVpuo和BVpu1通常將分別是下一 CU中的PUO和PUl的最佳BV預(yù)測(cè)值,但當(dāng)前CU的BVpuq和BVpui不被作為候選BV值來保留。
[0202]然而,根據(jù)本文中描述的示例乒乓方法,在針對(duì)2Nx2NCU的各NxN PU的BV預(yù)測(cè)(如圖14中所示出的)后,候選BV值對(duì)為BVpui (在BV緩沖器O中)和BVpuq (在BV緩沖器I中)。這保留可能對(duì)下一 CU的BV預(yù)測(cè)最有用的候選BV值。
[0203]C.針對(duì)2Nx2N CU中的各Nx2N PU或2NxN HJ的示例BV預(yù)測(cè)。
[0204]圖15示出根據(jù)示例乒乓方法對(duì)2Nx2N CU中的兩個(gè)Nx2N PU或兩個(gè)2NxN PU的BV預(yù)測(cè)的示例。2Nx2N CU包括兩個(gè)Nx2N PU(左側(cè)的PUO和右側(cè)的PUl)或兩個(gè)2NxN PU(上側(cè)的PUO和下側(cè)的PUl),這些PU的BV值是使用候選BV值對(duì)來預(yù)測(cè)的,該候選BV值對(duì)在針對(duì)CU的BV預(yù)測(cè)過程期間被更新。
[0205]在圖15中,BV緩沖器O最初存儲(chǔ)第一初始候選BV值BVinitJj(PBVO),并且BV緩沖器I最初存儲(chǔ)第二初始候選BV值BVinitj(PBV1)。如HJO的標(biāo)志值所指示的,使用PBVO或PBVl中的任一者來預(yù)測(cè)第一PU(PUO)的BV值。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理PUO 的 BV 值(BVpuo)。
[0206]隨后通過用I3BVO替換I3BVl,并用HJO的BV值替換I3BVO來更新候選BV值對(duì)。也就是說,I3BVl = PB VO并且PB VO = BVpuo。在圖15中,BV緩沖器I被更新為存儲(chǔ)BVinitj),且BV緩沖器O被更新為存儲(chǔ)BVpuo。替換地,如以上所解釋的,編碼器或解碼器取決于新BV值BV新(此處為BVpuo)是否等于PBVO來選擇性地更新候選BV值對(duì)(以及BV緩沖器)。
[0207]接著,如PUl的標(biāo)志值所指示的,使用PBVO(在圖15中,為其鄰居BVpuq)或I3BVl(在圖15中為BVinitj))中的任一者來預(yù)測(cè)第二PlKPUl)的BV值。(例如,在編碼或解碼期間)使用選中的BV預(yù)測(cè)值來處理PUl的BV值(BVpu1)。
[0208]隨后通過用I3BVO替換I3BVl,并用HJl的BV值替換I3BVO來更新候選BV值對(duì)。也就是說,I3BVl = I3BVO且I3BVO = BVpui。在圖15中,BV緩沖器I被更新為存儲(chǔ)BVpuq,且BV緩沖器O被更新為存儲(chǔ)BVpui。替換地,如以上所解釋的,編碼器或解碼器取決于新BV值BV新(此處為BVpui)是否等于PBVO來選擇性地更新候選BV值對(duì)(以及BV緩沖器)。
[0209]D.根據(jù)乒乓方法的示例BV預(yù)測(cè)技術(shù)。
[0210]圖16是根據(jù)示例乒乓方法的用于用多個(gè)PU來預(yù)測(cè)CU的BV值的示例技術(shù)的流程圖。一般來說,CU是用于編碼和解碼的目的的一個(gè)或多個(gè)塊的集合,并且這些PU中的每一者是CU內(nèi)用于信號(hào)化預(yù)測(cè)信息和/或預(yù)測(cè)處理的目的的一個(gè)或多個(gè)塊的集合。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器或其他編碼器)可執(zhí)行技術(shù)(1600)?;蛘?,圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器或其他解碼器)可執(zhí)行技術(shù)(1600)o
[0211 ] 開始,候選BV值對(duì)是第一初始候選BV值BVinitj) (PBVO)和第二初始候選BV值BVinitj(PBV1),其分別被存儲(chǔ)在BV緩沖器O和I中。
[0212]對(duì)于當(dāng)前圖片的當(dāng)前⑶中的多個(gè)PU中的每一PU,編碼器或解碼器使用候選BV值對(duì)中的一個(gè)候選BV值來預(yù)測(cè)(1610)該P(yáng)U的BV值。標(biāo)志值指示在候選BV值對(duì)之間的選擇。對(duì)于CU中的不同PU而言,候選BV值對(duì)可以是不同的。例如,在當(dāng)前CU包括四個(gè)PU時(shí),對(duì)于第一 PU,候選BV值對(duì)I3BVO和I3BVl可分別為BVinit—ο和BVinitj。對(duì)于第二 PU,候選BV值對(duì)I3BVO和PBVl可分別為第一 PU的BV(BVpuq)和BVinit—O。對(duì)于第三PU,候選BV值對(duì)PBVO和I3BVl可分別為第二 PU的BV值(BVpui )和BVpuq。最后,對(duì)于第四PU,候選BV值對(duì)可以是BVpui和第三PU的BV值(BVpu2 )。
[0213]編碼器或解碼器隨后使用PU的預(yù)測(cè)的BV值來處理(1620)該P(yáng)U的BV值。例如,在編碼期間,編碼器使用PU的BV值以及預(yù)測(cè)的BV值來確定BV差值?;蛘?,在解碼期間,解碼器至少部分地基于預(yù)測(cè)的BV值來重構(gòu)PU的BV值。
[0214]BV緩沖器可(取決于新BV值BV新是否等于PBV0)被自動(dòng)地或選擇性地更新。例如,(如圖14中所示出的),當(dāng)當(dāng)前⑶包括四個(gè)PU時(shí),在針對(duì)第一PU(PUO)的BV預(yù)測(cè)之前,BV緩沖器O存儲(chǔ)BVinitj),且BV緩沖器I存儲(chǔ)BVini 。在針對(duì)第二 PU(PU1)的BV預(yù)測(cè)之前,BV緩沖器O存儲(chǔ)BVpuq且BV緩沖器I存儲(chǔ)BVinitJ。在針對(duì)第三PU(PU2)的BV預(yù)測(cè)之前,BV緩沖器O存儲(chǔ)BVpu^BV緩沖器I存儲(chǔ)BVpuq。在針對(duì)PU2的處理之后,BV緩沖器O保留BVpui,且BV緩沖器I保留BVpuo。
[0215]在針對(duì)當(dāng)前CU的BV預(yù)測(cè)之后,在對(duì)BV緩沖器的更新已發(fā)生時(shí),候選BV值對(duì)為當(dāng)前CU的BVpl^PBVpuq O這些將是針對(duì)當(dāng)前圖片的候選CU的BV預(yù)測(cè)的初始候選BV值。由此,在當(dāng)前⑶包括四個(gè)PU時(shí),最終的候選BV值對(duì)可包括針對(duì)當(dāng)前⑶的第一和第二 PU的BV值,即使針對(duì)當(dāng)前⑶的第一和第二 HJ的BV值在針對(duì)當(dāng)前⑶的第三和第四PU的BV值之前被處理。
[0216]圖17示出根據(jù)具有對(duì)BV緩沖器的選擇性更新的示例乒乓方法的用于預(yù)測(cè)CU的BV值的另一示例技術(shù)。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器或其他編碼器)可執(zhí)行技術(shù)(1700)?;蛘?,圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器或其他解碼器)可執(zhí)行技術(shù)(1700)。
[0217]編碼器或解碼器處理當(dāng)前圖片的多個(gè)⑶。例如,編碼器將多個(gè)⑶作為編碼的一部分來處理,并將經(jīng)編碼的數(shù)據(jù)作為比特流的一部分來輸出?;蛘?,解碼器將多個(gè)CU作為解碼的一部分來處理,并輸出經(jīng)重構(gòu)的樣本值。多個(gè)⑶的任何給定⑶可包括單個(gè)HJ或多個(gè)PU。
[0218]開始,候選BV值對(duì)是第一初始候選BV值BVinitj) (PBVO)和第二初始候選BV值BVinitj(PBV1),其分別被存儲(chǔ)在BV緩沖器O和I中。
[0219]對(duì)于多個(gè)⑶中的給定⑶,編碼器或解碼器檢查(1710)該給定⑶具有單個(gè)PU還是多個(gè)HJ。如果給定⑶具有單個(gè)PU,則編碼器或解碼器使用候選BV值對(duì)I3BVO和PBVl (在圖17中為BVinit—ο和BVinit—!)之一來預(yù)測(cè)(I 720)單個(gè)PU的BV值,其中標(biāo)志值指示在候選BV值對(duì)之間的選擇。編碼器或解碼器使用預(yù)測(cè)的BV值來處理(1730)該單個(gè)PU的BV值。編碼器或解碼器取決于該HJ的BV值(BVpuq)是否等于存儲(chǔ)在BV緩沖器O中的BV值(BVinitJj)來選擇性地更新BV緩沖器O和I。例如,編碼器或解碼器比較BVm和存儲(chǔ)在BV緩沖器O中的BV值(BVinitJj)。如果BVpuq不同于存儲(chǔ)在BV緩沖器O中的BV值(BVinitj)),則編碼器或解碼器將來自BV緩沖器O的BV值(BVinitJj)存儲(chǔ)在BV緩沖器I中,并將BVpuq存儲(chǔ)在BV緩沖器O中。
[0220]在處理(1730)之后,在對(duì)BV緩沖器的更新已發(fā)生后,BV緩沖器O存儲(chǔ)單個(gè)PU的BV值(BVpuq)并且BV緩沖器I存儲(chǔ)BVinit—o。編碼器或解碼器檢查(1740)是否繼續(xù)該圖片中的下一CU。如果如此,則將經(jīng)緩沖的BV值對(duì)當(dāng)作下一 CU的初始候選BV值BVinit—ο和BVinitj。
[0221]否則,當(dāng)給定⑶具有多個(gè)PU時(shí),編碼器或解碼器執(zhí)行BV預(yù)測(cè),并對(duì)給定⑶的PU進(jìn)行處理。對(duì)于給定⑶中的多個(gè)PU中的每一 PU,編碼器或解碼器使用候選BV值對(duì)PBVO和PBVl (最初為BVinitj)和BVinitj,但稍后被更新)之一來預(yù)測(cè)(1750)該P(yáng)U的BV值。該HJ的標(biāo)志值指示在候選BV值對(duì)之間的選擇。編碼器或解碼器使用預(yù)測(cè)的BV值來處理(1760)該P(yáng)U的BV值。如果該HJ為給定⑶中的第一或第二 PU,則編碼器或解碼器取決于該P(yáng)U的BV值(BVpux)是否等于存儲(chǔ)在BV緩沖器O中的BV值(PBVO)來選擇性地更新BV緩沖器O和BV緩沖器I。例如,編碼器或解碼器比較BVpux和PBVO。如果BVpux不同于PBVO,則編碼器或解碼器將PBVO存儲(chǔ)在BV緩沖器I中,并將BVpux存儲(chǔ)在BV緩沖器O中。
[0222]編碼器或解碼器檢查(1770)該P(yáng)U是否是給定⑶中的最后一個(gè)PU。如果并非如此,則編碼器或解碼器繼續(xù)針對(duì)給定⑶中的下一PU的BV預(yù)測(cè)(1750)。例如,這些PU為2Nx2N CU中的四個(gè)NxNi夬、兩個(gè)Nx2N塊或兩個(gè)2NxN士夬。
[0223]在針對(duì)給定⑶的最后一個(gè)PU的處理(1760)之后,當(dāng)對(duì)BV緩沖器的兩個(gè)更新已發(fā)生時(shí),BV緩沖器O存儲(chǔ)給定⑶的第二PU的BV值(BVpui),且BV緩沖器I存儲(chǔ)給定⑶的第一PU的BV值(BVpuo)。編碼器或解碼器檢查(1740)是否繼續(xù)該圖片中的下一 CU。如果如此,則將經(jīng)緩沖的BV值對(duì)BVpu^BVpuo當(dāng)作下一 CU的初始候選BV值BVinit—ο和BVinit—u
[0224]IX.幀內(nèi)塊復(fù)制預(yù)測(cè)模式的編碼器側(cè)選項(xiàng)。
[0225]本章節(jié)呈現(xiàn)對(duì)于幀內(nèi)塊復(fù)制(“BC")預(yù)測(cè)的編碼器側(cè)選項(xiàng)的各項(xiàng)創(chuàng)新。這些創(chuàng)新中的一些創(chuàng)新涉及并發(fā)地執(zhí)行塊向量(“BV”)估計(jì)和為塊作出塊拆分判定。其他創(chuàng)新涉及在BV估計(jì)期間選擇性地將塊合并成更大的塊。又一些創(chuàng)新涉及在BV估計(jì)期間對(duì)在當(dāng)前塊的重疊區(qū)域內(nèi)的樣本值的估計(jì)。一般來說,這些創(chuàng)新改善了幀內(nèi)BC預(yù)測(cè)的編碼效率。
[0226]作為BV估計(jì)的一部分,編碼器可使用若干方法中的任一方法。編碼器可使用全面搜索,從而評(píng)估搜索范圍中允許的每一候選BV值?;蛘撸幋a器可使用部分搜索,從而評(píng)估搜索范圍中允許的僅一些候選BV值。例如,編碼器可在當(dāng)前塊的預(yù)測(cè)的BV值(例如,基于一個(gè)或多個(gè)相鄰塊的BV值來預(yù)測(cè)的)處開始部分搜索。在為部分搜索評(píng)估了在開始位置處的候選BV值后,編碼器可(例如,根據(jù)螺旋搜索模式或某一其他模式)評(píng)估在距開始位置遞增的距離處的一個(gè)或多個(gè)其他候選BV值。在評(píng)估給定候選BV值時(shí),編碼器可比較幀內(nèi)預(yù)測(cè)區(qū)域中的所有樣本值和當(dāng)前塊?;蛘?,編碼器可評(píng)估樣本值的子集(即,值被評(píng)估的子樣本)。在比較幀內(nèi)預(yù)測(cè)區(qū)域和當(dāng)前塊之間的樣本值以確定失真成本時(shí),編碼器可計(jì)算均方差、差方和、絕對(duì)差之和或某一其他失真測(cè)量。編碼器還可確定與對(duì)候選BV值的編碼相關(guān)聯(lián)的碼率成本(rate cost)。
[0227]在編碼期間,在各個(gè)階段,編碼器可使用其中各選項(xiàng)的碼率成本和失真成本被評(píng)估的碼率失真優(yōu)化(“RDO”)。一般來說,選項(xiàng)的碼率失真成本由D+AR(或R+λ?)給出,其中R表示經(jīng)編碼的數(shù)據(jù)的比特方面的碼率成本,D表示使用諸如均方差或感性失真測(cè)量之類的度量的失真成本,并且λ是對(duì)比失真成本D對(duì)碼率成本R進(jìn)行加權(quán)的拉格朗日乘數(shù)(加權(quán)參數(shù)的示例)。編碼器通常選擇給出最小碼率失真成本的選項(xiàng)。
[0228]Α.在BV估計(jì)期間將各塊選擇性地合并到更大的塊中。
[0229]在BV估計(jì)期間,編碼器可將各塊合并到更大的塊中。通過這種方式,編碼器可降低用于信號(hào)化BV信息的比特?cái)?shù)。具體地,當(dāng)幀內(nèi)BV預(yù)測(cè)在逐TB的基礎(chǔ)上執(zhí)行時(shí),編碼器可在逐CB的基礎(chǔ)上執(zhí)行BV估計(jì),隨后將小CB合并到更大的CB中,這取決于在幀內(nèi)BV預(yù)測(cè)期間將CB拆分成更小的TB,以避免TB及其幀內(nèi)預(yù)測(cè)區(qū)域之間的重疊。
[0230]圖18示出用于在BV估計(jì)期間將塊選擇性地合并到更大的塊中的技術(shù)(1800)。該技術(shù)(1800)可由諸如參考圖3或圖5a和5b描述的編碼器之類的編碼器或由另一編碼器來執(zhí)行。
[0231]根據(jù)該技術(shù),當(dāng)編碼器使用幀內(nèi)BC預(yù)測(cè)來編碼圖片的數(shù)據(jù)時(shí),對(duì)于具有第一尺寸的多個(gè)塊中的每一者,編碼器使用BV估計(jì)來標(biāo)識(shí)(1810)BV值。第一尺寸可以為8x8、16x16、32x32或某一其他尺寸。一般來說,對(duì)于具有第一尺寸的塊中的每一者,BV估計(jì)包括確定候選BV值的成本。該成本可包括碼率成本和/或失真成本。標(biāo)識(shí)出的BV值參考不與具有第一尺寸的塊重疊的幀內(nèi)預(yù)測(cè)區(qū)域。
[0232]編碼器選擇性地將這些塊中的兩個(gè)或更多個(gè)塊合并(1820)到具有大于第一尺寸的第二尺寸的塊中。第二尺寸可以為例如16xl6、32x32、64x64或某一其他大小。例如,編碼器將具有第一尺寸的多個(gè)塊中的兩個(gè)或更多個(gè)相鄰塊的BV值進(jìn)行比較,并且如果比較的BV值是相同的,則將兩個(gè)或更多個(gè)相鄰塊合并到具有第二尺寸的塊中。具有第二尺寸的塊被分配相同的BV值。與具有第一尺寸的塊不同,該BV值可參考與具有第二尺寸的塊重疊的幀內(nèi)預(yù)測(cè)區(qū)域。
[0233]編碼器可對(duì)另一塊重復(fù)該技術(shù)(1800)。最后,編碼器輸出圖片的經(jīng)編碼的數(shù)據(jù)。
[0234]在一些示例實(shí)現(xiàn)中,具有第一尺寸的多個(gè)塊中的每一者是CB,并且具有第二尺寸的塊也是CB。然而,幀內(nèi)BC預(yù)測(cè)在逐TB的基礎(chǔ)上執(zhí)行。BV估計(jì)可使用針對(duì)具有第一尺寸的多個(gè)塊中的每一者的搜索范圍的全面搜索?;蛘?,BV估計(jì)可使用針對(duì)具有第一尺寸的多個(gè)塊中的每一者的搜索范圍的部分搜索,例如,開始在該塊的預(yù)測(cè)的BV值處,并且可能至少部分地基于已經(jīng)被評(píng)估的候選BV值的成本來終止該部分搜索。
[0235]圖19示出了在BV估計(jì)期間將各塊選擇性地合并(1900)到更大的塊中的優(yōu)點(diǎn)。在圖19中,編號(hào)為0、1、2和3的四個(gè)塊(用淺實(shí)線指示出)分別具有參考相應(yīng)的幀內(nèi)預(yù)測(cè)區(qū)域O’、I’、2’和3’的BV值。即,BV值參考?jí)KO的幀內(nèi)預(yù)測(cè)區(qū)域O’,參考?jí)KI的幀內(nèi)預(yù)測(cè)區(qū)域I’并以此類推。這些幀內(nèi)預(yù)測(cè)區(qū)域是用虛線指示出的。塊0、1、2或3中沒有一個(gè)塊與其相應(yīng)的幀內(nèi)預(yù)測(cè)區(qū)域重疊。然而,包括塊0、1、2和3的較大的塊(用粗實(shí)線示出)確實(shí)與其相應(yīng)的幀內(nèi)預(yù)測(cè)區(qū)域重疊。如果編碼器將對(duì)該較大的塊執(zhí)行BV估計(jì),則當(dāng)幀內(nèi)預(yù)測(cè)區(qū)域和塊之間的重疊被禁止時(shí),編碼器將無法將圖19中示出的BV值標(biāo)識(shí)為可允許的BV值。相反,當(dāng)編碼器對(duì)更小的塊0、1、2和3執(zhí)行BV估計(jì)時(shí),編碼器為所有四個(gè)塊標(biāo)識(shí)相同的BV值,并且編碼器可將這四個(gè)塊合并到具有相同BV值的較大的塊中。在編碼或解碼期間,較大的塊將被拆分成更小的塊,以用于實(shí)際的幀內(nèi)BV預(yù)測(cè)操作。例如,具有給定尺寸的CB被拆分成更小的TB以用于在逐TB的基礎(chǔ)上執(zhí)行幀內(nèi)BC預(yù)測(cè)操作,而在TB及其幀內(nèi)預(yù)測(cè)區(qū)域之間沒有重疊。
[0236]B.并發(fā)的塊向量估計(jì)和塊拆分判定。
[0237]編碼器可為當(dāng)前塊并發(fā)地執(zhí)行BV估計(jì)和塊拆分判定。具體地,當(dāng)幀內(nèi)BC預(yù)測(cè)操作被在逐TB的基礎(chǔ)上執(zhí)行時(shí),編碼器可為當(dāng)前塊并發(fā)地評(píng)估候選BV值和可能的塊拆分判定。
[0238]圖20是示出用于并發(fā)地對(duì)塊執(zhí)行BV估計(jì)和作出塊拆分判定的通用技術(shù)的流程圖。該技術(shù)(2000)可由諸如參考圖3或圖5a和5b中描述的編碼器之類的編碼器或由另一編碼器執(zhí)行。
[0239]在編碼器使用幀內(nèi)BC預(yù)測(cè)來對(duì)圖片的數(shù)據(jù)進(jìn)行編碼時(shí),編碼器對(duì)當(dāng)前塊的數(shù)據(jù)進(jìn)行編碼(2010)。作為編碼(2010)的一部分,編碼器并發(fā)地執(zhí)行BV估計(jì)操作和塊拆分判定操作。在一些示例實(shí)現(xiàn)中,當(dāng)前塊是在尺寸方面對(duì)應(yīng)于TB的CB,并且?guī)瑑?nèi)BC預(yù)測(cè)在逐TB的基礎(chǔ)上被執(zhí)行。例如,作為編碼(2010)的一部分,編碼器執(zhí)行圖21中示出的技術(shù)(2100)以為當(dāng)前塊并發(fā)地評(píng)估候選BV值以及可能的塊拆分判定。
[0240]圖21是示出用于為塊并發(fā)地評(píng)估候選BV值以及塊拆分判定的示例技術(shù)的流程圖。該技術(shù)(2100)可由諸如參考圖3或圖5a和5b描述的編碼器之類的編碼器或由另一編碼器來執(zhí)行。
[0241]編碼器使用BV估計(jì)操作標(biāo)識(shí)(2110)當(dāng)前塊的候選BV值。當(dāng)前塊具有第一尺寸。例如,第一尺寸為8x8、16xl6、32x32、64x64或某一其他尺寸。
[0242]編碼器檢查(2120)是否拆分當(dāng)前塊。例如,編碼器評(píng)估利用當(dāng)前塊的候選BV值的幀內(nèi)BC預(yù)測(cè)是否導(dǎo)致當(dāng)前塊和該候選BV值所參考的幀內(nèi)預(yù)測(cè)區(qū)域之間的重疊。
[0243]取決于檢查(2120)的結(jié)果,編碼器選擇性地將當(dāng)前塊拆分(2130)成多個(gè)塊,每一塊均具有小于第一尺寸的第二尺寸。例如,第二尺寸為4x4、8x8、16x16、32x32或某一其他尺寸。隨后(當(dāng)前塊已經(jīng)被拆分),編碼器對(duì)這些更小的塊中的每一者重復(fù)(2140)技術(shù)(2100)。也就是說,對(duì)于具有第二尺寸的塊中的每一者,編碼器對(duì)被當(dāng)作當(dāng)前塊的具有第二尺寸的塊重復(fù)該標(biāo)識(shí)、評(píng)估、選擇性地拆分等。
[0244]另一方面,如果當(dāng)前塊沒有被拆分,則編碼器對(duì)當(dāng)前塊進(jìn)行編碼(2150),并測(cè)量(2160)對(duì)當(dāng)前塊進(jìn)行編碼的成本。例如,在編碼器對(duì)當(dāng)前塊進(jìn)行編碼時(shí),編碼器(a)使用幀內(nèi)BC預(yù)測(cè)來預(yù)測(cè)當(dāng)前塊的樣本值,(b)使用當(dāng)前塊的預(yù)測(cè)的樣本值和樣本值來確定當(dāng)前塊的殘留值,(c)任選地將頻率變換應(yīng)用于殘留值以產(chǎn)生變換系數(shù),并對(duì)變換系數(shù)進(jìn)行量化,(d)任選地對(duì)變換系數(shù)進(jìn)行逆量化,并應(yīng)用逆頻率變換以重構(gòu)殘留值,以及(e)將殘留值和預(yù)測(cè)的樣本值組合。測(cè)量的成本可以為碼率失真成本、碼率成本或失真成本。碼率成本可考慮信號(hào)化BV值的成本和信號(hào)化塊拆分判定信息的成本兩者。
[0245]替換地,編碼器按某種其他方式來評(píng)估當(dāng)前塊的候選BV值和可能的塊拆分判定。例如,除了考慮幀內(nèi)預(yù)測(cè)區(qū)域和塊之間的重疊之外,編碼器還考慮該塊是否已具有最小可允許尺寸。如果如此,則該塊不被拆分,但該候選BV不被允許。
[0246]返回圖20,作為編碼(2010)的一部分,編碼器可記錄候選BV值的成本。編碼器可隨后評(píng)估一個(gè)或多個(gè)其他候選BV值。例如,編碼器對(duì)另一候選BV值重復(fù)技術(shù)(2100)。最后,編碼器為當(dāng)前塊(以及當(dāng)前塊內(nèi)的塊)選擇一個(gè)或多個(gè)BV并作出塊拆分判定,這導(dǎo)致最低的成本(例如,碼率失真成本、碼率成本或失真成本)。
[0247]編碼器輸出(2020)該塊的經(jīng)編碼的數(shù)據(jù)。編碼器可對(duì)另一塊重復(fù)該技術(shù)(2000)。
[0248]C.估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)的樣本值。
[0249]在本文中描述的一些示例中,BV在CU級(jí)被信號(hào)化,并在CB級(jí)被應(yīng)用于各塊。CB和相應(yīng)的幀內(nèi)預(yù)測(cè)區(qū)域之間的重疊不被允許。在本文中描述的其他示例中,編碼器在逐TB的基礎(chǔ)上將BV值應(yīng)用于更小的塊,即使BV值是在較高的句法級(jí)別(例如,針對(duì)CU)處被信號(hào)化的。例如,具有32x32CB的CU的BV值被信號(hào)化,但該BV值被應(yīng)用于處于4x4TB或8x8TB級(jí)的各塊。這準(zhǔn)許BV值具有較小的幅值,同時(shí)在處于TB級(jí)的塊和被復(fù)制的幀內(nèi)預(yù)測(cè)區(qū)域之間仍不具有重疊。
[0250]當(dāng)出于幀內(nèi)BC預(yù)測(cè)操作的目的而將給定塊拆分成更小的塊時(shí),該給定塊包括重疊區(qū)域,在該重疊區(qū)域中,給定塊的各樣本值可以是針對(duì)一個(gè)或多個(gè)更小的塊的幀內(nèi)預(yù)測(cè)區(qū)域的部分。本章節(jié)描述用于估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)的樣本值的方法。具體地,本章節(jié)描述用于在塊的BV值在逐TB的基礎(chǔ)上被應(yīng)用于更小的塊時(shí),估計(jì)該塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)的樣本值的方法。
[0251]圖22a示出具有尺寸2mx 2n的當(dāng)前塊(2210)。當(dāng)前塊(2210)包括用于幀內(nèi)BC預(yù)測(cè)操作目的的四個(gè)m X η塊(2221、2222、2223、2224)。例如,當(dāng)前塊(2210)是CU中的8x8塊,并且四個(gè)更小的塊(2221、2222、2223、2224)是具有41肛8的414塊?;蛘?,當(dāng)前塊(2210)是0]中的16x16塊,并且四個(gè)更小的塊(2221、2222、2223、2224)是具有818了8的818塊。當(dāng)幀內(nèi)%預(yù)測(cè)操作以之字形掃描次序被應(yīng)用于各m X η塊(在圖22a中,為塊0、塊1、塊2、隨后為塊3)時(shí),第一m X η塊(2221)的幀內(nèi)預(yù)測(cè)區(qū)域在當(dāng)前2m x 2n塊(2210)的外部。然而,對(duì)于第二m χ η塊(2222),幀內(nèi)預(yù)測(cè)區(qū)域可部分地或完全地與第一m χ η塊(2221)重疊。對(duì)于第三m χ η塊(2223),幀內(nèi)預(yù)測(cè)區(qū)域可部分地或完全地與第一m χ η塊(2221)或第二m χ η塊(2222)重疊。并且對(duì)于第四m χ η塊(2224),幀內(nèi)預(yù)測(cè)區(qū)域可部分地或完全地與當(dāng)前塊(2210)的前三個(gè)m χ η塊(2221、2222、2223)重疊。
[0252]圖22b示出當(dāng)前塊(2210)的重疊區(qū)域(2230)。該重疊區(qū)域(2230)以之字形掃描次序覆蓋前三個(gè)m χ η塊(2221、2222、2223),因?yàn)檫@前三個(gè)m χ η塊中的樣本值可能是當(dāng)前塊的至少一個(gè)m χ η塊的幀內(nèi)預(yù)測(cè)區(qū)域的部分。對(duì)于另一尺寸的更小的塊(例如,16χ16塊或32x32塊中的各4x4塊),重疊區(qū)域可覆蓋當(dāng)前塊中的甚至更多的更小的塊。
[0253]在BV估計(jì)期間,當(dāng)編碼器評(píng)估出于幀內(nèi)BC預(yù)測(cè)操作的目的而被拆分成各更小塊的當(dāng)前塊的候選BV值時(shí),隨著該編碼器以之字形次序跨相應(yīng)的更小塊應(yīng)用候選BV值,該編碼器可計(jì)算出重疊區(qū)域內(nèi)的實(shí)際經(jīng)重構(gòu)樣本值。這可能是計(jì)算密集的,因?yàn)樗婕懊扛K每候選BV值地應(yīng)用編碼操作和重構(gòu)操作。相反,編碼器可估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。具體地,當(dāng)幀內(nèi)BV預(yù)測(cè)操作在逐TB的基礎(chǔ)上對(duì)各更小的塊執(zhí)行時(shí),編碼器可估計(jì)包括多個(gè)更小的塊的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。
[0254]圖23是示出其中編碼器估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的BV估計(jì)的示例技術(shù)的流程圖。該技術(shù)(2300)可由諸如參考圖3或圖5a和5b描述的編碼器之類的編碼器或由另一編碼器來執(zhí)行。
[0255]對(duì)于圖片的當(dāng)前塊,編碼器估計(jì)(2310)在當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。當(dāng)前塊具有多個(gè)更小的塊。例如,當(dāng)前塊具有第一尺寸(例如,32x32、16x16或8x8),此多個(gè)塊中的每一者均具有小于第一尺寸的第二尺寸(例如,16xl6、8x8或4x4)。當(dāng)前塊可以是⑶的塊,在該情況下,多個(gè)更小的塊中的每一者可處于TU的TB的級(jí)別。重疊區(qū)域覆蓋當(dāng)前塊的在多個(gè)更小的塊中的至少一個(gè)更小的塊的潛在幀內(nèi)預(yù)測(cè)區(qū)域中的部分。
[0256]根據(jù)用于估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的第一方法,編碼器分別將相應(yīng)的原始樣本值用作重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。在當(dāng)前塊外部,BV估計(jì)可使用圖片內(nèi)的原始樣本值。替換地,在當(dāng)前塊外部,BV估計(jì)可使用圖片內(nèi)的經(jīng)重構(gòu)樣本值(S卩,在當(dāng)前塊外部的經(jīng)重構(gòu)樣本值;在當(dāng)前塊的重疊區(qū)域內(nèi)的原始樣本值)。在該情況下,當(dāng)在BV估計(jì)期間沒有實(shí)際的經(jīng)重構(gòu)樣本值可用時(shí),在幀內(nèi)預(yù)測(cè)區(qū)域中可使用原始樣本值,但否則使用實(shí)際的經(jīng)重構(gòu)樣本值。
[0257]根據(jù)用于估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的第二方法,編碼器處理重疊區(qū)域內(nèi)的原始樣本值。具體地,編碼器對(duì)覆蓋區(qū)域內(nèi)的原始樣本值應(yīng)用頻率變換、量化、逆量化和逆頻率變換,從而得到重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的近似。量化和逆量化可使用在當(dāng)前塊周圍的鄰域中已經(jīng)被應(yīng)用(或者預(yù)期將被應(yīng)用)的量化參數(shù)。
[0258]根據(jù)用于估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的第三方法,編碼器在估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值時(shí)使用幀內(nèi)BC預(yù)測(cè)操作。編碼器使用至少一個(gè)BV預(yù)測(cè)值(諸如,圖片中的先前塊(例如,鄰居塊)的BV值或默認(rèn)BV預(yù)測(cè)值)來預(yù)測(cè)重疊區(qū)域內(nèi)的樣本值。編碼器基于重疊區(qū)域內(nèi)的預(yù)測(cè)的樣本值和相應(yīng)的原始樣本值之間的差異來確定殘留值。編碼器對(duì)這些殘留值應(yīng)用頻率變換、量化、逆量化和逆頻率變換。量化和逆量化可使用在當(dāng)前塊周圍的鄰域中已經(jīng)被應(yīng)用(或者預(yù)期將被應(yīng)用)的量化參數(shù)。編碼器將該處理的結(jié)果(即,經(jīng)重構(gòu)殘留值)與預(yù)測(cè)的樣本值組合,這得到重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的近似。
[0259]在第三方法的一個(gè)變型中,編碼器使用至少一個(gè)BV預(yù)測(cè)值(諸如,圖片中的先前塊(例如,鄰居塊)的BV值或默認(rèn)BV預(yù)測(cè)值)來預(yù)測(cè)重疊區(qū)域內(nèi)的樣本值,但跳過對(duì)殘留值的處理。重疊區(qū)域中的估計(jì)的經(jīng)重構(gòu)樣本值是預(yù)測(cè)的樣本值。
[0260]在第三方法的另一變型中,編碼器可估計(jì)重疊區(qū)域的殘留值是否將是顯著的(例如,在變換、量化等后具有非零變換系數(shù)值)。例如,編碼器可單獨(dú)地或共同地評(píng)估殘留值是否具有小幅值,或者檢查殘留值的某個(gè)其他條件。如果殘留值不是顯著的,則編碼器可跳過殘留值處理,而簡(jiǎn)單地將預(yù)測(cè)的樣本值用作重疊區(qū)域中的估計(jì)的經(jīng)重構(gòu)樣本值。否則(殘留值是顯著的),編碼器可對(duì)殘留值進(jìn)行編碼,隨后重構(gòu)殘留值,隨后將其與預(yù)測(cè)的樣本值組合以產(chǎn)生重疊區(qū)域中的估計(jì)的經(jīng)重構(gòu)樣本值,如以上所描述的。
[0261 ]編碼器執(zhí)行(2320 )BV估計(jì)以確定當(dāng)前塊的BV值。BV估計(jì)使用估計(jì)出的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值中的至少一些經(jīng)重構(gòu)樣本值。BV估計(jì)還使用在當(dāng)前塊外部的圖片內(nèi)的經(jīng)重構(gòu)樣本值(或者在一個(gè)方法中為原始樣本值)。
[0262]BV估計(jì)還包括對(duì)于當(dāng)前塊的一個(gè)或多個(gè)候選BV值中的每一者,根據(jù)該候選BV值分別在各更小的塊和候選幀內(nèi)預(yù)測(cè)區(qū)域之間執(zhí)行塊匹配操作。例如,對(duì)于具有四個(gè)更小的塊的當(dāng)前塊的給定候選BV值,編碼器根據(jù)該給定候選BV值在這四個(gè)更小的塊及其相應(yīng)的候選幀內(nèi)預(yù)測(cè)區(qū)域之間執(zhí)行塊匹配操作。
[0263]替換地,BV估計(jì)可包括(I)對(duì)于多個(gè)更小的塊中的每一者,確定該更小的塊的BV值,以及(2)將此多個(gè)更小的塊的BV值合成為當(dāng)前塊的BV值。例如,對(duì)于具有四個(gè)更小的塊的當(dāng)前塊,編碼器連續(xù)地確定第一更小的塊的BV值、第二更小的塊的BV值、第三更小的塊的BV值和第四更小的塊的BV值。在第一更小的塊后,BV估計(jì)可包括對(duì)當(dāng)前塊的重疊區(qū)域中的幀內(nèi)預(yù)測(cè)區(qū)域的評(píng)估。編碼器隨后將這四個(gè)更小的塊的BV值合成為當(dāng)前塊的BV值。例如,編碼器可(a)對(duì)多個(gè)更小的塊的BV值求平均,(b)計(jì)算多個(gè)更小的塊的BV值的中值,(c)在多個(gè)更小的塊的BV值周圍的鄰域中標(biāo)識(shí)當(dāng)前塊的BV值,(d)使用候選BV值的RDO在多個(gè)更小的塊的BV值周圍的鄰域中標(biāo)識(shí)當(dāng)前塊的BV值,或者(e)按某種其他方式將多個(gè)更小的塊的BV值合成為當(dāng)前塊的BV值。
[0264]在當(dāng)前塊的BV值已通過BV估計(jì)被標(biāo)識(shí)出后,編碼器可使用當(dāng)前塊的BV值對(duì)當(dāng)前塊執(zhí)行幀內(nèi)BC預(yù)測(cè)。通過這么做,編碼器在逐塊的基礎(chǔ)上對(duì)多個(gè)更小的塊執(zhí)行BC操作。由此,編碼器可以以當(dāng)前塊的級(jí)別執(zhí)行BV估計(jì),但以更小的塊的級(jí)別執(zhí)行BV補(bǔ)償。例如,編碼器可對(duì)8x8CU的8x8塊執(zhí)行BV估計(jì),但在逐TB的基礎(chǔ)上以之字形掃描次序?qū)λ膫€(gè)4x4塊執(zhí)行幀內(nèi)BC操作(以及重構(gòu)操作)。這些4x4塊共享相同的(8x8⑶的)BV值,并且編碼器對(duì)各連續(xù)的4x4殘留值塊執(zhí)行4x4變換、量化、逆量化、4x4逆變換等。第一4x4塊(針對(duì)TB O的情況)被重構(gòu),隨后可在第二4x4塊(針對(duì)TB I的情況)的幀內(nèi)預(yù)測(cè)區(qū)域中被使用。第二4x4塊被重構(gòu),隨后可在第三4x4塊(針對(duì)TB2的情況)的幀內(nèi)預(yù)測(cè)區(qū)域中被使用。對(duì)于第四4x4塊(針對(duì)TB3的情況),前三個(gè)4x4塊中的任一者都可在幀內(nèi)預(yù)測(cè)區(qū)域中被使用。
[0265]在解碼器側(cè),如以上所描述的,解碼器可檢查BV值是否導(dǎo)致幀內(nèi)預(yù)測(cè)區(qū)域和當(dāng)前塊之間的重疊。如果如此,該塊(處于TB級(jí))被拆分成四個(gè)更小的塊(處于更小的TB的級(jí)別),則此四個(gè)更小的塊以之字形次序被(使用幀內(nèi)BC預(yù)測(cè)和重構(gòu)操作)連續(xù)解碼。由此,更小的塊之一的經(jīng)重構(gòu)的樣本值可用于以之字形次序在次小塊的幀內(nèi)預(yù)測(cè)區(qū)域中使用。如果TU的變換塊標(biāo)志為零,則幀內(nèi)BC預(yù)測(cè)僅在CU級(jí)處被應(yīng)用,并且色度解相關(guān)被禁用。
[0266]D.替換和變型
[0267]許多前述示例提出了對(duì)亮度塊的BV值和幀內(nèi)BV預(yù)測(cè)操作。對(duì)于采用YUV4:4:4格式的視頻,色度分量與亮度分量具有相同的分辨率。供當(dāng)前亮度塊使用的BV值可供相應(yīng)的色度塊使用。在當(dāng)前亮度塊被拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的亮度塊時(shí),相應(yīng)的色度塊也按相同的方式被拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的色度塊。
[0268]對(duì)于采用YUV4:2:0格式的視頻,色度分量在水平上被下采樣了 1/2并且在垂直上被下采樣了 1/2。例如,如果當(dāng)前亮度塊具有16x16的尺寸,則相應(yīng)的色度塊具有8x8的尺寸。在合適的縮放和四舍五入(和/或截短)操作后,供當(dāng)前亮度塊使用的BV值可供相應(yīng)的色度塊使用。一般來說,在當(dāng)前亮度塊被拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的亮度塊時(shí),相應(yīng)的色度塊也按相同的方式被拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的色度塊。
[0269]然而,在一些實(shí)現(xiàn)中,情況并不總是這樣的。在一些實(shí)現(xiàn)中,如果采用YUV4:2:0格式的視頻的亮度TB具有最小變換尺寸,則具有該最小變換尺寸的各色度TB被用于該同一 CB的那個(gè)亮度TB及其三個(gè)相鄰亮度TB的色度對(duì)應(yīng)物。例如,如果當(dāng)前亮度TB具有最小尺寸4x4(并且與8x8亮度CB相關(guān)聯(lián)),則相應(yīng)的色度CB具有尺寸4x4。每一 4x4色度CB都具有單個(gè)4x4色度TB。如可通過針對(duì)YUV 4:2:0格式的下采樣來預(yù)期的,具有尺寸2x2的色度TB不被支持。在這樣的實(shí)現(xiàn)中,將當(dāng)前亮度塊拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的亮度塊以在這些更小的亮度塊將具有最小變換尺寸的情況下將不被支持,因?yàn)樵诒粦?yīng)用于相應(yīng)的色度塊時(shí),該拆分將導(dǎo)致比最小變換尺寸更小的色度塊。在這樣的實(shí)現(xiàn)中,對(duì)于更大的尺寸,將當(dāng)前亮度塊(以及相應(yīng)的色度塊)拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的塊仍被準(zhǔn)許。
[0270]對(duì)于采用YUV4:2:2格式的視頻,色度分量在水平上被下采樣了 1/2。例如,如果當(dāng)前亮度塊具有尺寸16x16,則相應(yīng)的色度塊具有尺寸8x16。在合適的縮放和四舍五入(和/或截短)操作后,用于當(dāng)前亮度塊的BV值可被用于相應(yīng)的色度塊。一般來說,在當(dāng)前亮度塊被拆分成更小的亮度塊以用于幀內(nèi)BC預(yù)測(cè)操作時(shí),相應(yīng)的色度塊也可按相同的方式被拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的色度塊。
[0271 ]然而,在一些實(shí)現(xiàn)中,情況并不總是這樣的。在一些實(shí)現(xiàn)中,如果采用YUV4: 2: 2格式的視頻的亮度TB具有最小變換尺寸,則具有該最小變換尺寸的各色度TB被用于處于同一CB中的那個(gè)亮度TB及相鄰亮度TB的色度對(duì)應(yīng)物。例如,如果當(dāng)前亮度TB具有最小尺寸4x4(并且與8x8亮度CB相關(guān)聯(lián)),則相應(yīng)的4x8色度CB各自具有兩個(gè)4x4色度TB。如可通過針對(duì)YUV 4:2:2格式的下采樣來預(yù)期的,具有尺寸2x4的色度TB不被支持。相反,4x8色度CB的4x4色度TB中的每一者包括兩個(gè)2x4色度區(qū)域的殘留值。在這樣的實(shí)現(xiàn)中,對(duì)于大于最小變換尺寸的塊尺寸,如以上所描述的將當(dāng)前亮度塊拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的亮度塊(并將色度塊相應(yīng)地拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的色度塊,如以上所描述的)被準(zhǔn)許。如果更小的塊具有最小變換尺寸,則將當(dāng)前亮度塊拆分成用于幀內(nèi)BC預(yù)測(cè)操作的更小的亮度塊在殘留值的色度塊被重新布置的情況下被支持,如圖24中所示的。
[0272]圖24示出采用YUV4: 2: 2格式的視頻的具有最小變換尺寸4x4的塊。8x8亮度塊(2410)包括四個(gè)4x4亮度塊(2421、2422、2423、2424),其編號(hào)為0."3。相應(yīng)的418色度塊(2430)包括相應(yīng)的色度分量,其在水平上被下采樣1/22x4的變換尺寸不被支持。
[0273]根據(jù)HEVC標(biāo)志的當(dāng)前草稿,對(duì)于4x8色度塊,2x4塊O和I一起被處理成用于殘留編碼和解碼的具有4x4變換尺寸的4x4色度TB,并且2x4塊2和3—起被處理成用于殘留編碼和解碼的具有4x4變換尺寸的4x4色度TB。結(jié)果,由于2x4塊O在2x4塊I被重構(gòu)之前不將被重構(gòu),因此對(duì)2x4塊I的幀內(nèi)BC預(yù)測(cè)操作無法參考2x4塊O中的經(jīng)重構(gòu)樣本值。類似地,對(duì)2x4塊3的幀內(nèi)BC預(yù)測(cè)操作無法參考2x4塊2中的經(jīng)重構(gòu)樣本值。
[0274]如圖24中所示,4x8色度塊(2440)中的各2x4塊可出于殘留編碼和解碼的目的而被重新布置。在該情況下,2x4塊O和2—起被處理成用于殘留編碼和解碼的具有4x4變換尺寸的4x4色度TB,并且2x4塊I和3—起被處理成用于殘留編碼和解碼的具有4x4變換尺寸的4x4色度TB。在4x8色度塊(2430)的“未經(jīng)重新布置的”2x4塊中仍發(fā)生幀內(nèi)BC預(yù)測(cè)操作。在4x8色度塊被解碼時(shí),對(duì)2x4塊O和2的幀內(nèi)BC預(yù)測(cè)可首先發(fā)生,接著是對(duì)2x4塊O和2的殘留解碼以及對(duì)2x4塊O和2的樣本值的重構(gòu)。隨后,2x4塊I和3被重構(gòu)。由此,2x4塊O可在2x4塊I被重構(gòu)之前被重構(gòu),使得對(duì)2x4塊I的幀內(nèi)BC預(yù)測(cè)操作可參考2x4塊O中的經(jīng)重構(gòu)樣本值。類似地,對(duì)2x4塊3的幀內(nèi)BC預(yù)測(cè)操作可參考2x4塊2中的經(jīng)重構(gòu)樣本值。對(duì)殘留值的2x4色度塊的重新布置在編碼器處和在解碼器處發(fā)生。
[0275]對(duì)于用于殘留編碼和解碼的具有經(jīng)重新布置的2x4塊的4x8色度塊(2440),亮度塊的左半部以及相應(yīng)的色度塊的重疊區(qū)域被支持,如以灰色示出的。在BV估計(jì)期間,編碼器可估計(jì)重疊區(qū)域中的經(jīng)重構(gòu)樣本值(如以上所描述的)并評(píng)估參考部分地或完全地覆蓋該重疊區(qū)域的幀內(nèi)預(yù)測(cè)區(qū)域的候選BV值。
[0276]通過該方法,具有非零水平BV分量的BV值被允許,但這些BV值具有零值垂直BV分量。這適合于例如屏幕捕捉內(nèi)容,其在樣本值方面通常展示出水平連續(xù)性。
[0277]在示例實(shí)現(xiàn)中,幀內(nèi)BC預(yù)測(cè)針對(duì)亮度塊并針對(duì)色度塊使用具有整數(shù)樣本精度的BV值。分?jǐn)?shù)位移(以及重構(gòu)樣本值之間的分?jǐn)?shù)內(nèi)插)不被用于BV值。在圖片的色度數(shù)據(jù)相對(duì)于圖片的亮度數(shù)據(jù)而言具有降低的分辨率時(shí)(例如,在格式為YUV4:2:0格式或YUV 4:2:2格式時(shí)),來自亮度塊的BV值在其被應(yīng)用于相應(yīng)的色度塊之前可被縮小以對(duì)色度分辨率方面的差異進(jìn)行調(diào)整,但被四舍五入和/或截短到具有整數(shù)樣本精度的值。
[0278]替換地,針對(duì)亮度塊的BV值具有整數(shù)樣本精度,但針對(duì)相應(yīng)的色度塊的BV值具有分?jǐn)?shù)樣本精度。具體地,當(dāng)圖片的色度數(shù)據(jù)相對(duì)于圖片的亮度數(shù)據(jù)而言具有降低的分辨率時(shí),來自亮度塊的BV值在其被應(yīng)用于相應(yīng)的色度塊之前可被縮小以對(duì)色度分辨率方面的差異進(jìn)行調(diào)整。對(duì)于YUV 4: 2:0格式,BV值的垂直和水平分量可被除以2,并被截短或四舍五入,從而得到具有整數(shù)樣本精度或分?jǐn)?shù)樣本精度(諸如一半樣本精度)的值。例如,亮度塊的BVy分量3被縮放成相應(yīng)的色度塊的BVy分量值1.5。對(duì)于YUV 4:2:2格式,BV值的水平分量可被除以2,并被截短或四舍五入,從而得到具有整數(shù)精度或分?jǐn)?shù)樣本精度(諸如一半樣本位置精度)的值。在BV值具有分?jǐn)?shù)樣本精度時(shí),經(jīng)重構(gòu)樣本值之間的插值可使用線性插值、雙三次插值或另一種形式的插值。
[0279]替換地,亮度塊和相應(yīng)的色度塊的BV值可具有分?jǐn)?shù)樣本精度。再次,在BV值具有分?jǐn)?shù)樣本精度時(shí),經(jīng)重構(gòu)樣本值之間的插值可使用雙線性插值、雙三次插值或另一種形式的插值。
[0280]鑒于可應(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)容。
【主權(quán)項(xiàng)】
1.一種在實(shí)現(xiàn)視頻編碼器或圖像編碼器的計(jì)算設(shè)備中的方法,該方法包括: 估計(jì)圖片的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值,其中所述當(dāng)前塊具有多個(gè)更小的塊,所述重疊區(qū)域覆蓋所述當(dāng)前塊處于所述多個(gè)更小的塊中的至少一個(gè)更小的塊的潛在幀內(nèi)預(yù)測(cè)區(qū)域中的部分;以及 執(zhí)行塊向量(“BV”)估計(jì)以確定所述當(dāng)前塊的BV值,其中所述BV估計(jì)使用估計(jì)出的所述當(dāng)前塊的所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值中的至少一些經(jīng)重構(gòu)樣本值。2.如權(quán)利要求1所述的方法,其特征在于,估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值包括分別將相應(yīng)的原始樣本值用作所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值。3.如權(quán)利要求2所述的方法,其特征在于,所述BV估計(jì)還使用所述圖片內(nèi)在所述當(dāng)前塊外部的原始樣本值或所述圖片內(nèi)在所述當(dāng)前塊外部的經(jīng)重構(gòu)樣本值。4.如權(quán)利要求1所述的方法,其特征在于,估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值包括: 使用頻率變換、量化、逆量化和逆頻率變換來處理所述重疊區(qū)域內(nèi)的相應(yīng)的原始樣本值;以及 分別將經(jīng)處理的樣本值用作所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)的樣本值。5.如權(quán)利要求1所述的方法,其特征在于,估計(jì)重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值包括: 使用至少一個(gè)BV預(yù)測(cè)值來預(yù)測(cè)所述重疊區(qū)域內(nèi)的樣本值; 基于所述重疊區(qū)域內(nèi)的預(yù)測(cè)的樣本值和相應(yīng)的原始樣本值來確定殘留值; 使用頻率變換、量化、逆量化和逆頻率變換處理所述殘留值; 將所述處理的結(jié)果與所述預(yù)測(cè)的樣本值組合;以及 分別將所述組合的結(jié)果用作所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)的樣本值。6.如權(quán)利要求5所述的方法,其特征在于,至少一個(gè)BV預(yù)測(cè)值包括所述圖片中的先前塊的BV值或默認(rèn)BV預(yù)測(cè)值。7.如權(quán)利要求1所述的方法,其特征在于,所述BV估計(jì)包括對(duì)于所述當(dāng)前塊的一個(gè)或多個(gè)候選BV值中的每一者: 根據(jù)所述候選BV值分別在所述更小的塊和候選幀內(nèi)預(yù)測(cè)區(qū)域之間執(zhí)行塊匹配操作。8.如權(quán)利要求1所述的方法,其特征在于,所述BV估計(jì)包括: 對(duì)于所述多個(gè)更小的塊中每一更小的塊,確定該更小的塊的BV值;以及 將所述多個(gè)更小的塊的BV值合成為所述當(dāng)前塊的BV值。9.如權(quán)利要求8所述的方法,其特征在于,所述合成包括: 對(duì)所述多個(gè)更小的塊的BV值求平均; 在所述多個(gè)更小的塊的BV值周圍的鄰域中標(biāo)識(shí)所述當(dāng)前塊的BV值;或者使用對(duì)候選BV值的碼率失真優(yōu)化來在所述多個(gè)更小的塊的BV值周圍的鄰域中標(biāo)識(shí)所述當(dāng)前塊的BV值。10.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 使用所述當(dāng)前塊的BV值來執(zhí)行對(duì)所述當(dāng)前塊的幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè),包括在逐塊的基礎(chǔ)上對(duì)所述多個(gè)更小的塊執(zhí)行BC操作。11.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前塊具有第一尺寸,并且其中所述多個(gè)塊中的每一者具有小于所述第一尺寸的第二尺寸。12.如權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前塊是編碼單元的編碼塊,并且其中所述多個(gè)塊中的每一者是變換單元的變換塊。13.—種實(shí)現(xiàn)視頻編碼器或圖像編碼器的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括: 用于估計(jì)圖片的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值的裝置,其中所述當(dāng)前塊具有多個(gè)更小的塊,所述重疊區(qū)域覆蓋所述當(dāng)前塊處于所述多個(gè)更小的塊中的至少一個(gè)更小的塊的潛在幀內(nèi)預(yù)測(cè)區(qū)域中的部分;以及 用于執(zhí)行塊向量(“BV”)估計(jì)以確定所述當(dāng)前塊的BV值的裝置,其中所述BV估計(jì)使用估計(jì)出的所述當(dāng)前塊的所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值中的至少一些經(jīng)重構(gòu)樣本值。14.一個(gè)或多個(gè)存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令使得計(jì)算系統(tǒng)由此執(zhí)行一種方法,所述方法包括: 估計(jì)圖片的當(dāng)前塊的重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值,其中所述當(dāng)前塊具有多個(gè)更小的塊,所述重疊區(qū)域覆蓋所述當(dāng)前塊處于所述多個(gè)更小的塊中的至少一個(gè)更小的塊的潛在幀內(nèi)預(yù)測(cè)區(qū)域中的部分;以及 執(zhí)行塊向量(“BV”)估計(jì)以確定所述當(dāng)前塊的BV值,其中所述BV估計(jì)使用估計(jì)出的所述當(dāng)前塊的所述重疊區(qū)域內(nèi)的經(jīng)重構(gòu)樣本值中的至少一些經(jīng)重構(gòu)樣本值。
【文檔編號(hào)】H04N19/176GK105874791SQ201480072229
【公開日】2016年8月17日
【申請(qǐng)日】2014年12月22日
【發(fā)明人】L·朱, G·J·沙利文, Y·吳
【申請(qǐng)人】微軟技術(shù)許可有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇义县| 阿坝| 凤凰县| 许昌县| 康乐县| 北票市| 浙江省| 洛浦县| 商南县| 始兴县| 新绛县| 五台县| 株洲市| 兴山县| 德令哈市| 玉树县| 交口县| 乐山市| 图们市| 大渡口区| 英吉沙县| 南平市| 嘉祥县| 松原市| 盘锦市| 政和县| 巴中市| 黄山市| 灵台县| 休宁县| 翁源县| 井研县| 贵阳市| 铁岭县| 赤水市| 英超| 拜泉县| 依安县| 静乐县| 嘉鱼县| 临沧市|