視頻和圖像編碼/解碼中的塊向量預(yù)測(cè)的制作方法
【專利摘要】在塊向量(“BV”)值的預(yù)測(cè)方面的創(chuàng)新改善了使用幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)對(duì)塊進(jìn)行編碼或解碼。例如,創(chuàng)新中的一些涉及使用具有非零值的默認(rèn)BV預(yù)測(cè)值。其它創(chuàng)新涉及使用當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選中的被選擇的一個(gè)BV預(yù)測(cè)值候選。又一些創(chuàng)新涉及使用跳躍模式,其中當(dāng)前幀內(nèi)BC預(yù)測(cè)的塊使用預(yù)測(cè)的BV值。
【專利說明】視頻和圖像編碼/解碼中的塊向量預(yù)測(cè)
[0001 ] 背景
[0002]工程師使用壓縮(也叫做源編碼(source coding或source encoding))來降低數(shù)字視頻的比特率。壓縮通過將視頻信息轉(zhuǎn)換成較低比特率的形式來降低存儲(chǔ)和傳送該信息的成本。解壓(也被稱為解碼)從壓縮的形式中重構(gòu)一種版本的原始信息?!熬幗獯a器”是編碼器/解碼器系統(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)中規(guī)定并在針對(duì)HEVC標(biāo)準(zhǔn)的某一參考軟件中實(shí)現(xiàn)的,幀內(nèi)BC預(yù)測(cè)模式具有若干問題。具體來說,在許多情形下,BV值沒有被有效地信號(hào)化,并且采用可預(yù)測(cè)BC移位的塊編碼不能高效率地被處理。
[0006]概述
[0007]概括來說,詳細(xì)的描述呈現(xiàn)了在使用幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)對(duì)塊進(jìn)行編碼和/或解碼期間在塊向量(“BV”)值的預(yù)測(cè)方面的創(chuàng)新。例如,創(chuàng)新中的一些涉及使用具有非零值的默認(rèn)BV預(yù)測(cè)值。其它創(chuàng)新涉及使用當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選中的被選擇的一個(gè)BV預(yù)測(cè)值候選。又一些創(chuàng)新涉及使用跳躍模式,其中當(dāng)前幀內(nèi)BC預(yù)測(cè)的塊使用預(yù)測(cè)的BV值。在許多情形下,創(chuàng)新改善了 BV值的編碼效率,或者以其他方式改善幀內(nèi)BC預(yù)測(cè)的塊的編碼效率。
[0008]根據(jù)本文中描述的創(chuàng)新的第一方面,編碼器確定圖片的當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,默認(rèn)BV預(yù)測(cè)值的垂直和水平BV分量中的一個(gè)為零,而另一個(gè)具有非零值。編碼器使用默認(rèn)BV預(yù)測(cè)值來對(duì)當(dāng)前塊進(jìn)行編碼。例如,編碼器使用當(dāng)前塊的BV值來執(zhí)行幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)、使用當(dāng)前塊的BV值和默認(rèn)BV預(yù)測(cè)值來確定BV差、以及隨后對(duì)BV差進(jìn)行編碼?;蛘撸幋a器直接使用默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。
[0009]對(duì)應(yīng)的解碼器確定圖片的當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,默認(rèn)BV預(yù)測(cè)值的垂直和水平BV分量中的一個(gè)為零,而另一個(gè)具有非零值。解碼器使用默認(rèn)BV預(yù)測(cè)值來對(duì)當(dāng)前塊進(jìn)行解碼。例如,解碼器對(duì)當(dāng)前塊的BV差進(jìn)行解碼,隨后將經(jīng)解碼的BV差與默認(rèn)BV預(yù)測(cè)值組合以重構(gòu)當(dāng)前塊的BV值。解碼器使用BV值來執(zhí)行幀內(nèi)BC預(yù)測(cè)?;蛘?,解碼器直接使用默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。
[0010]編碼器或解碼器可取決于圖片的前一個(gè)塊的實(shí)際BV值是否可用來有條件地使用默認(rèn)BV預(yù)測(cè)值。例如,編碼器/解碼器檢查圖片的前一個(gè)塊的實(shí)際BV值是否可用。如果是,則前一個(gè)塊的實(shí)際BV值被用作為當(dāng)前塊的BV預(yù)測(cè)值。否則,默認(rèn)BV預(yù)測(cè)值被用作為當(dāng)前塊的BV預(yù)測(cè)值。在一些實(shí)現(xiàn)中,如果(I)前一個(gè)塊和當(dāng)前塊是給定編碼樹單元的一部分,并且(2)前一個(gè)塊的預(yù)測(cè)模式是幀內(nèi)BC預(yù)測(cè)模式,則前一個(gè)塊的實(shí)際BV值是可用的。
[0011]根據(jù)本文中描述的創(chuàng)新的第二方面,編碼器使用BV預(yù)測(cè)來確定圖片的當(dāng)前塊的BV值。當(dāng)前塊的BV值指示到圖片中的區(qū)域的位移。編碼器使用幀內(nèi)BC用BV值(此處為BV預(yù)測(cè)值)來對(duì)當(dāng)前塊進(jìn)行編碼。編碼器在比特流中輸出當(dāng)前塊是以跳躍模式編碼的指示,并且比特流缺少當(dāng)前塊的BV差和殘留數(shù)據(jù)。
[0012]對(duì)應(yīng)的解碼器從比特流中接收?qǐng)D片的當(dāng)前塊是以跳躍模式編碼的指示。比特流缺少當(dāng)前塊的BV差和殘留數(shù)據(jù)。解碼器使用BV預(yù)測(cè)來確定當(dāng)前塊的BV值。解碼器隨后使用幀內(nèi)塊復(fù)制預(yù)測(cè)用BV值(此處為BV預(yù)測(cè)值)來對(duì)當(dāng)前塊進(jìn)行解碼。
[0013]對(duì)于被跳過的塊,比特流可包括索引值,該索引值指示從多個(gè)BV預(yù)測(cè)值候選的集合中對(duì)要用作當(dāng)前塊的BV值(此處為BV預(yù)測(cè)值)的BV預(yù)測(cè)值候選的選擇。索引值可以是標(biāo)志值或整數(shù)值。
[0014]根據(jù)本文中描述的創(chuàng)新的第三方面,編碼器確定圖片的當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選的集合,隨后選擇要用于當(dāng)前塊的一個(gè)BV預(yù)測(cè)值候選。編碼器使用所選擇的BV預(yù)測(cè)值候選來對(duì)當(dāng)前塊進(jìn)行編碼,在比特流中輸出指示所選擇的BV預(yù)測(cè)值候選的索引值。
[0015]對(duì)應(yīng)的解碼器從比特流中接收索引值。解碼器確定圖片的當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選的集合,并且基于索引值來選擇要用于當(dāng)前塊的一個(gè)BV預(yù)測(cè)值候選。解碼器使用所選擇的BV預(yù)測(cè)值候選對(duì)當(dāng)前塊進(jìn)行解碼。
[0016]在一些情況下,比特流包括當(dāng)前塊的BV差(當(dāng)前塊是非跳躍模式、非合并模式塊)。BV差指示所選擇的BV預(yù)測(cè)值候選和當(dāng)前塊的BV值之間的差。在其它情況下,當(dāng)前塊是合并模式塊,并且比特流缺少當(dāng)前塊的BV差但是可包括當(dāng)前塊的殘留數(shù)據(jù)。在又一些其它情況下,比特流中的值指示當(dāng)前塊是跳躍模式塊。在這些情況下,比特流缺少當(dāng)前塊的BV差,并且比特流缺少當(dāng)前塊的殘留數(shù)據(jù)。
[0017]總得來說,多個(gè)BV預(yù)測(cè)值候選包括多至X個(gè)之前的塊的實(shí)際BV值。之前的塊可以至少部分基于當(dāng)前塊周圍的鄰居(例如,當(dāng)前塊的左邊、上邊以及右上的塊)的位置來標(biāo)識(shí)?;蛘撸暗膲K可至少部分基于與當(dāng)前塊相比的解碼順序來標(biāo)識(shí)(例如,最后三個(gè)幀內(nèi)BC預(yù)測(cè)的塊)。多個(gè)BV預(yù)測(cè)值候選還可包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值。
[0018]針對(duì)BV預(yù)測(cè)的創(chuàng)新可以被實(shí)現(xiàn)為方法的一部分、被適配成執(zhí)行該方法的計(jì)算設(shè)備的一部分或存儲(chǔ)用于使計(jì)算設(shè)備執(zhí)行該方法的計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì)的一部分。各創(chuàng)新可以結(jié)合地或分開地使用。具體來說,針對(duì)BV預(yù)測(cè)的合并模式可與具有非零運(yùn)動(dòng)的默認(rèn)BV預(yù)測(cè)值和/或針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式結(jié)合使用。針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式可與具有非零運(yùn)動(dòng)的默認(rèn)BV預(yù)測(cè)值結(jié)合使用。
[0019]參考附圖閱讀以下詳細(xì)描述,將更清楚本發(fā)明的前述和其他目標(biāo)、特征和優(yōu)點(diǎn)。
[0020]附圖簡(jiǎn)述
[0021]圖1是其中可實(shí)現(xiàn)所描述的一些實(shí)施例的示例計(jì)算系統(tǒng)的示圖。
[0022]圖2a和2b是其中可實(shí)現(xiàn)所描述的一些實(shí)施例的示例網(wǎng)絡(luò)環(huán)境的示圖。
[0023]圖3是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例編碼器系統(tǒng)的示圖。
[0024]圖4是結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例解碼器系統(tǒng)的示圖。
[0025]圖5a和5b是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻編碼器的示圖。
[0026]圖6是示出結(jié)合其可實(shí)現(xiàn)所描述的一些實(shí)施例的示例視頻解碼器的示圖。
[0027]圖7a—7d分別是示出針對(duì)圖片的塊的幀內(nèi)BC預(yù)測(cè)、針對(duì)塊的BV預(yù)測(cè)、默認(rèn)(0,0)BV預(yù)測(cè)值、以及具有非零值的默認(rèn)BV預(yù)測(cè)值的示圖。
[0028]圖8和9是示出包括使用具有非零值的默認(rèn)BV預(yù)測(cè)值的編碼的技術(shù)的流程圖。
[0029]圖10和11是示出包括使用具有非零值的默認(rèn)BV預(yù)測(cè)值的解碼的技術(shù)的流程圖。
[0030]圖12和13分別是示出包括針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式的編碼和解碼的技術(shù)的流程圖。
[0031]圖14是示出圖片中的之前的塊的實(shí)際BV值中的BV預(yù)測(cè)值候選的示圖。
[0032]圖15是示出圖片中的相鄰塊的實(shí)際BV值中的BV預(yù)測(cè)值候選的示圖。
[0033]圖16a和16b是示出包括在多個(gè)BV預(yù)測(cè)值候選中進(jìn)行選擇的編碼的技術(shù)的流程圖。
[0034]圖17a和17b是示出包括在多個(gè)BV預(yù)測(cè)值候選中進(jìn)行選擇的解碼的技術(shù)的流程圖。
[0035]詳細(xì)描述
[0036]詳細(xì)的描述呈現(xiàn)了在使用幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)對(duì)塊進(jìn)行編碼和/或解碼期間在塊向量(“BV”)值的預(yù)測(cè)方面的創(chuàng)新。例如,創(chuàng)新中的一些涉及使用具有非零值的默認(rèn)BV預(yù)測(cè)值。其它創(chuàng)新涉及使用當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選中的被選擇的一個(gè)BV預(yù)測(cè)值候選。又一些創(chuàng)新涉及使用跳躍模式,其中當(dāng)前幀內(nèi)BC預(yù)測(cè)的塊使用預(yù)測(cè)的BV值。在許多情形下,創(chuàng)新改善了 BV值的編碼效率,這可降低比特率和/或改善質(zhì)量,或者以其他方式改善幀內(nèi)BC預(yù)測(cè)的塊的編碼效率。
[0037]雖然本文中描述的操作是被適當(dāng)描述為由視頻編碼器或視頻解碼器來執(zhí)行,但在許多情況中,這些操作可由另一類型的媒體處理工具(例如圖像編碼器或圖像解碼器)來執(zhí)行。
[0038]本文中描述的一些創(chuàng)新是參考專用于HEVC標(biāo)準(zhǔn)的句法元素和操作來示出的。例如,對(duì)HEVC標(biāo)準(zhǔn)的草稿版本JCTVC-01005——即2013年11月的“高效視頻編碼(HEVC)范圍擴(kuò)展文本規(guī)范:第5稿”作出參考。本文中描述的各創(chuàng)新還可以被實(shí)現(xiàn)為用于其它標(biāo)準(zhǔn)或格式。
[0039]更一般地,本文中描述的各示例的各種替代是可能的。例如,本文中描述的一些方法可以通過改變描述的方法動(dòng)作的順序、通過拆分、重復(fù)或忽略某些方法動(dòng)作等來更改。所公開的技術(shù)的各方面能夠被組合地或分開地使用。不同的實(shí)施例使用所描述的創(chuàng)新中的一個(gè)或多個(gè)。本文中描述的一些創(chuàng)新解決了背景中指出的一個(gè)或多個(gè)問題。通常,所給出的技術(shù)/工具并不解決所有這些問題。
[0040]1.示例計(jì)算系統(tǒng)
[0041]圖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)。
[0042]參考圖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ǔ)器(例如,ROM、EEPR0M、閃存等)或這兩者的某一組合。存儲(chǔ)器(120,125)存儲(chǔ)實(shí)現(xiàn)針對(duì)幀內(nèi)塊向量預(yù)測(cè)的一個(gè)或多個(gè)創(chuàng)新的軟件(180),該軟件用適用于由(諸)處理單元執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的形式。
[0043]計(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)。
[0044]有形存儲(chǔ)(140)可以是可移動(dòng)或不可移動(dòng)的,并包括磁盤、磁帶或磁帶盒、⑶-R0M、DVD或可用于儲(chǔ)存信息并可在計(jì)算系統(tǒng)(100)內(nèi)訪問的任何其他介質(zhì)。存儲(chǔ)(140)存儲(chǔ)實(shí)現(xiàn)針對(duì)塊向量預(yù)測(cè)的一個(gè)或多個(gè)創(chuàng)新的軟件(180)的指令。
[0045](諸)輸入設(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è)備。
[0046](諸)通信連接(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或其它載體。
[0047]各創(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)、和以上任意的組合。
[0048]各創(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ù)類型的例程、程序、庫、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等。如各實(shí)施例中所描述的,這些程序模塊的功能可以被組合,或者在這些程序模塊之間拆分。針對(duì)各程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算系統(tǒng)中執(zhí)行。
[0049]術(shù)語“系統(tǒng)”和“設(shè)備”在此被互換地使用。除非上下文明確指示,否則,術(shù)語并不暗示對(duì)計(jì)算系統(tǒng)或計(jì)算設(shè)備的類型的任何限制。一般說來,計(jì)算系統(tǒng)或計(jì)算設(shè)備可以是本地的或分布式的,并且可以包括具有實(shí)現(xiàn)本文中描述的功能的軟件的專用硬件和/或通用硬件的任意組合。
[0050]所公開的方法還可使用被配置成執(zhí)行所公開的方法中的任一者的專用計(jì)算硬件來實(shí)現(xiàn)。例如,所公開的方法可以由被專門設(shè)計(jì)或配置成實(shí)現(xiàn)所公開的方法中的任一者的集成電路(例如,諸如ASIC數(shù)字信號(hào)處理器(“DSP”)之類的ASIC、圖像處理單元(“GPU”)、或諸如場(chǎng)可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來實(shí)現(xiàn)。
[0051]為了呈現(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)而不同。
[0052]I1.示例網(wǎng)絡(luò)環(huán)境
[0053]圖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ò)。
[0054]在圖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 42IM標(biāo)準(zhǔn)、IS0/IEC14496-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)。
[0055]實(shí)時(shí)通信工具(210)管理編碼器(220)進(jìn)行的編碼。圖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)。
[0056]在圖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í)間段并開始解碼和回放。
[0057]圖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è)控制器邏輯。
[0058]II 1.示例編碼器系統(tǒng)。
[0059]圖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)用庫的部分、獨(dú)立的應(yīng)用??傮w上,編碼器系統(tǒng)(300)從視頻源(310)接收源視頻幀序列(311)并產(chǎn)生經(jīng)編碼數(shù)據(jù)作為到信道(390)的輸出。輸出到信道的經(jīng)編碼的數(shù)據(jù)可包括使用如本文中所述的BV預(yù)測(cè)中的創(chuàng)新來編碼的內(nèi)容。
[0060]視頻源(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ū)域的較大圖像的一部分。
[0061]抵達(dá)的源幀(311)被存儲(chǔ)在包括多個(gè)幀緩沖區(qū)存儲(chǔ)區(qū)域(321、322、-_、3211)的源幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(320)中。幀緩沖區(qū)(321、322等)在源幀存儲(chǔ)區(qū)域(320)中保持一個(gè)源幀。在一個(gè)或多個(gè)源幀(311)已被存儲(chǔ)在幀緩沖區(qū)(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)色的色度差)分量以及用于編碼的重采樣處理(例如以減少色度分量的空間分辨率)。通常,在編碼之前,視頻已被轉(zhuǎn)換成諸如YUV的色彩空間,其中亮度(Y)分量的樣本值表示明亮度或強(qiáng)度值,而色度(U,V)分量的樣本值表示色差值。色度樣本值可以被子采樣到較低的色度采樣率(例如用于YUV 4:2:0格式),或者色度樣本值可以具有與亮度樣本值相同的分辨率(例如用于YUV 4:4:4格式)?;蛘?,視頻可用另一格式(例如,RGB 4:4:4格式)來編碼。
[0062]編碼器(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ū)域中。
[0063]—般來說,編碼器(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ò)展。
[0064]編碼器(340)可以將幀分割成相同尺寸或不同尺寸的多個(gè)小塊。例如,編碼器
(340)沿小塊行和小塊列來拆分幀,這些小塊行和小塊列利用幀邊界定義在該幀內(nèi)的小塊的水平和垂直邊界,其中每個(gè)小塊是矩形區(qū)域。小塊通常被用于提供并行處理的選項(xiàng)。幀還可以被組織成一個(gè)或多個(gè)片,其中一個(gè)片可以是整個(gè)幀或該幀的區(qū)域。片可以獨(dú)立于幀中的其它片編碼,這改善了錯(cuò)誤復(fù)原性。出于編碼和解碼的目的,片或小塊的內(nèi)容被進(jìn)一步分割成塊或其它樣本值集。
[0065]對(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 (YUV4: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)化在位流中。
[0066]通常,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具有最小尺寸(例如8x8)。在該情況下,CU可被拆分成四個(gè)較小的HJ(例如,如果最小CU尺寸為8x8,則PU為4x4),或者HJ可具有最小CU尺寸,如CU的句法元素所指示的。出于殘留編碼/解碼的目的,CU還具有一個(gè)或多個(gè)變換單元,其中變換單元(“TU”)具有一變換塊(“TB” )和兩個(gè)色度TB。在幀內(nèi)預(yù)測(cè)的CU中的PU可以包含單個(gè)TU(尺寸與PU相同)或多個(gè)TU。如本文中所使用的,術(shù)語“±夬”可以指示CB、PB、TB或某些其它樣本值集,這取決于上下文。編碼器決定如何將視頻分割成CTU、⑶、PU、TU等。
[0067]回到圖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ū)域是幀中用于生成塊的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è)值。
[0068]編碼器(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è)值。
[0069]編碼器可以確定在塊預(yù)測(cè)值(幀內(nèi)或幀間)和對(duì)應(yīng)的原始值之間的差值(如果有的話)。這些預(yù)測(cè)殘留值將進(jìn)一步使用頻率變換、量化和熵編碼來編碼。例如,編碼器(340)為圖片、小塊、片和/或視頻的其它部分設(shè)置量化參數(shù)(“QP”)的值,并相應(yīng)地量化變換系數(shù)。編碼器(340)的熵編碼器壓縮經(jīng)量化的變換系數(shù)值以及某些輔助信息(例如MV信息、BV預(yù)測(cè)值的索引值、BV差、QP值、模式?jīng)Q策、參數(shù)選擇)。典型的熵編碼技術(shù)包括指數(shù)-Go1mb編碼、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)行選擇。
[0070]自適應(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)路濾波操作。[0071 ] 經(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)作為解碼處理的一部分。
[0072]經(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)在幀緩沖區(qū)(361、362等)中存儲(chǔ)已經(jīng)以此方式標(biāo)識(shí)出的新解碼的幀(351)。
[0073]經(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ù))。
[0074]來自臨時(shí)的經(jīng)編碼數(shù)據(jù)區(qū)域(370)的經(jīng)聚集的數(shù)據(jù)(371)由信道編碼器(380)處理。信道編碼器(380)可以(例如根據(jù)諸如ITU-T H.222.0|IS0/IEC 13818-1的媒體程序流或傳輸流格式,或諸如IETF RFC 3550的因特網(wǎng)實(shí)時(shí)傳輸協(xié)議格式)分組化和/或復(fù)用經(jīng)聚集的數(shù)據(jù)供作為媒體流來傳輸或存儲(chǔ),在這種情況中,信道編碼器(380)可以添加句法元素作為媒體傳輸流的句法的一部分。或者,信道編碼器(380)可以(例如根據(jù)諸如IS0/IEC14496-12的媒體容器格式)組織經(jīng)聚集的數(shù)據(jù)以供作為文件來存儲(chǔ),在這種情況中,信道編碼器(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)制的其它元素(未示出)。
[0075]IV.示例解碼器系統(tǒng)。
[0076]圖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)用庫的一部分或獨(dú)立的應(yīng)用。總體上,解碼器系統(tǒng)(400)從信道(410)接收經(jīng)編碼數(shù)據(jù)并產(chǎn)生經(jīng)重構(gòu)的幀作為針對(duì)輸出目的地(490)的輸出。經(jīng)編碼的數(shù)據(jù)可包括已使用本文中所描述的BV預(yù)測(cè)中的創(chuàng)新來編碼的內(nèi)容。
[0077]解碼器系統(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)的其它元素(未示出)。
[0078]從信道解碼器(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ù))。
[0079]一般來說,經(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)。
[0080]解碼器(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í)行的確切操作可以取決于壓縮格式而變化。
[0081]例如,解碼器(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)中的塊邊界行和/或列上的間斷??商鎿Q地或另外地應(yīng)用其它濾波(例如去振鈴濾波、ALF或SAO濾波;未示出)作為內(nèi)環(huán)路濾波操作。
[0082]經(jīng)解碼幀臨時(shí)存儲(chǔ)器存儲(chǔ)區(qū)域(460)包括多個(gè)幀緩沖區(qū)存儲(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è)幀緩沖器中。
[0083]輸出序列發(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)解碼這些幀的次序不同。
[0084]V.示例視頻編碼器。
[0085]圖5a和5b是可結(jié)合其實(shí)現(xiàn)所描述的一些實(shí)施例的通用視頻編碼器(500)的框圖。編碼器(500)接收包括當(dāng)前圖片的視頻圖片序列作為輸入視頻信號(hào)(505)并在經(jīng)編碼視頻位流(595)中產(chǎn)生經(jīng)編碼數(shù)據(jù)作為輸出。
[0086]編碼器(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)。
[0087]編碼器(500)使用圖片內(nèi)編碼和/或圖片間編碼來壓縮圖片。編碼器(500)的許多組件被用于圖片內(nèi)編碼和圖片間編碼兩者。由這些組件執(zhí)行的確切操作可取決于所壓縮的信息的類型而變化。
[0088]小塊化模塊(510)可選地將圖片分割成相同尺寸或不同尺寸的多個(gè)小塊。例如,小塊化模塊(510)沿小塊行和小塊列來拆分圖片,所述小塊行和小塊列利用圖片邊界定義在圖片內(nèi)的小塊的水平和垂直邊界,其中每個(gè)小塊是矩形區(qū)域。
[0089]通用編碼控件(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)可決定在編碼期間是否以及如何使用BV預(yù)測(cè)的各方面(例如,采用預(yù)測(cè)的BV值的跳躍模式、用于BV預(yù)測(cè)的合并模式)。通用編碼控件(520)還可以估計(jì)編碼期間的中間結(jié)果,例如執(zhí)行速率-失真分析來估計(jì)。通用編碼控件(520)產(chǎn)生指示在編碼期間所做出的決定的通用控制數(shù)據(jù)(522),使得對(duì)應(yīng)的解碼器可以作出一致的決定。通用控制數(shù)據(jù)(522)被提供給頭部格式化器/熵編碼器(590)。
[0090]如果使用圖片間預(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)。
[0091]運(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è)。
[0092]在編碼器(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ū)域的位移。
[0093]圖片內(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)。
[0094]根據(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值來指示。在一些情況下(例如,對(duì)于跳躍模式塊或合并模式塊),BV值可以是BV預(yù)測(cè)值(經(jīng)預(yù)測(cè)的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格式時(shí)),對(duì)色度塊應(yīng)用的BV值可被縮小并可能被四舍五入以對(duì)色度分辨率方面的差異進(jìn)行調(diào)整(例如,通過將BV值的垂直和水平分量除以2并且將其截短或四舍五入成整數(shù)值來調(diào)整)。
[0095]幀內(nèi)/幀間切換選擇經(jīng)運(yùn)動(dòng)補(bǔ)償?shù)念A(yù)測(cè)或圖片內(nèi)預(yù)測(cè)的值用作給定塊的預(yù)測(cè)(558)。對(duì)于非跳躍模式塊,預(yù)測(cè)(558)的塊和輸入視頻信號(hào)(505)的原始當(dāng)前圖片的對(duì)應(yīng)部分之間的差異(如果有的話)提供殘留值(518)的值。在當(dāng)前圖片的重構(gòu)期間,對(duì)于非跳躍模式塊,經(jīng)重構(gòu)的殘留值與預(yù)測(cè)(558)組合來從視頻信號(hào)(505)中產(chǎn)生對(duì)原始內(nèi)容的重構(gòu)(538)。然而,在有損壓縮中,還是從視頻信號(hào)(505)中丟失了一些信息。
[0096]在變換器/縮放器/量化器(530)中,頻率變換器將空間域視頻信息轉(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)可能還能夠指示這樣的變換步驟被省略了??s放器/量化器對(duì)變換系數(shù)進(jìn)行縮放和量化。例如,量化器用量化步驟尺寸將死區(qū)標(biāo)量量化應(yīng)用于頻域數(shù)據(jù),該量化步驟尺寸在逐圖片的基礎(chǔ)上、逐小塊的基礎(chǔ)上、逐片的基礎(chǔ)上、逐塊的基礎(chǔ)上、因頻率而異的基礎(chǔ)上或在其他基礎(chǔ)上變化。。經(jīng)量化的變換系數(shù)數(shù)據(jù)(532)被提供給頭部格式化器/熵編碼器(590)。
[0097]在縮放器/逆變換器(535)中,縮放器/逆量化器對(duì)經(jīng)量化的變換系數(shù)執(zhí)行逆縮放和逆量化。逆頻率變換器執(zhí)行逆頻率變換,從而產(chǎn)生經(jīng)重構(gòu)的預(yù)測(cè)殘留值或樣本值的塊。對(duì)于非跳躍模式塊,編碼器(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)。對(duì)于跳躍模式塊,編碼器(500)使用預(yù)測(cè)(558)的值作為重構(gòu)(538)。
[0098]對(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)。
[0099]在合并器/(諸)濾波器(565)中,編碼器(500)將來自不同小塊的內(nèi)容合并到圖片的經(jīng)重構(gòu)版本中。編碼器(500)根據(jù)濾波器控制數(shù)據(jù)(562)選擇性地執(zhí)行去塊濾波和SAO濾波,以便自適應(yīng)地平滑各幀中的各邊界上的間斷??商鎿Q地或另外地應(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è)中使用。
[0100]頭部格式化器/熵編碼器(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)行格式化和/或熵編碼。對(duì)于幀內(nèi)預(yù)測(cè)數(shù)據(jù)(542),頭部格式化器/熵編碼器(590)選擇(幀內(nèi)BV預(yù)測(cè)的)BV預(yù)測(cè)值索引值并例如使用上下文自適應(yīng)的二進(jìn)制算術(shù)編碼來對(duì)其進(jìn)行熵編碼。在一些情況中,頭部格式化器/熵編碼器(590)還(相對(duì)于BV值的BV預(yù)測(cè)值)確定BV值的BV差,隨后對(duì)BV差進(jìn)行熵編碼,例如使用上下文自適應(yīng)二進(jìn)制算術(shù)編碼來對(duì)BV差進(jìn)行熵編碼。對(duì)于跳躍模式塊或合并模式塊,BV差被忽略。
[0101]頭部格式化器/熵編碼器(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ò)展。
[0102]取決于所需的壓縮的實(shí)現(xiàn)和類型,編碼器的模塊可被添加、省略、拆分成多個(gè)模塊、與其它模塊組合、和/或用相似的模塊來替代。在替換實(shí)施例中,具有不同模塊和/或其它配置的模塊的編碼器執(zhí)行一個(gè)或多個(gè)所描述的技術(shù)。編碼器的具體實(shí)施例通常使用編碼器(500)的變型或補(bǔ)充版本。所示的編碼器(500)內(nèi)的各模塊之間的關(guān)系指示了信息在編碼器中的一般流動(dòng);為簡(jiǎn)明起見,未示出其它關(guān)系。
[0103]V1.示例視頻解碼器。
[0104]圖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ò)展。
[0105]解碼器(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)。
[0106]解碼器(600)使用圖片內(nèi)解碼和/或圖片間解碼來對(duì)圖片進(jìn)行解壓縮。解碼器(600)的許多組件被用于圖片內(nèi)解碼和圖片間解碼這兩者。由這些組件執(zhí)行的確切操作可以取決于正被解壓縮的信息的類型而變化。
[0107]緩沖器接收經(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)對(duì)(幀內(nèi)BC預(yù)測(cè)的)BV預(yù)測(cè)值索引值進(jìn)行熵解碼。對(duì)于非跳躍模式、非合并模式塊,解析器/熵解碼器(610)還可以(例如使用上下文自適應(yīng)二進(jìn)制算術(shù)解碼)對(duì)BV值的BV差進(jìn)行熵解碼,隨后將該BV差與相應(yīng)的BV預(yù)測(cè)值組合以重構(gòu)BV值。對(duì)于跳躍模式或合并模式塊,BV差被從比特流中省略,并且BV值就直接是BV預(yù)測(cè)值(例如,以BV預(yù)測(cè)值索引值來指示)。
[0108]通用解碼控件(620)接收通用控制數(shù)據(jù)(622)并將控制信號(hào)(未示出)提供給其它模塊(例如縮放器/逆變換器(635)、圖片內(nèi)預(yù)測(cè)器(645)、運(yùn)動(dòng)補(bǔ)償器(655)以及幀內(nèi)/幀間切換)以設(shè)置和改變解碼期間的解碼參數(shù)。
[0109]如果當(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)的圖片以供用作參考圖片。
[0110]在解碼器(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值來指示。
[0111]幀內(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。對(duì)于非跳躍模式塊,解碼器(600)將預(yù)測(cè)(658)與重構(gòu)的殘留值組合以產(chǎn)生來自視頻信號(hào)的內(nèi)容的重構(gòu)(638)。對(duì)于跳躍模式塊,解碼器(600)使用預(yù)測(cè)(658)的值作為重構(gòu)(638)。
[0112]為了重構(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ù)近似)。
[0113]對(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è)中使用。
[0114]解碼器(600)還可包括后處理濾波器。后處理濾波器(608)可以包括去振鈴濾波、自適應(yīng)維納濾波、膜顆粒再現(xiàn)濾波、SAO濾波或另一種類型的濾波。
[0115]取決于所希望的解壓縮的實(shí)現(xiàn)和類型,解碼器的模塊可以被添加、省略、拆分成多個(gè)模塊、與其他模塊組合和/或用類似的模塊來替代。在替換實(shí)施例中,具有不同模塊和/或其它配置的模塊的解碼器執(zhí)行一個(gè)或多個(gè)所描述的技術(shù)。解碼器的具體實(shí)施例通常使用解碼器(600)的變型或補(bǔ)充版本。所示的解碼器(600)內(nèi)的模塊之間的關(guān)系指示信息在解碼器中的一般流動(dòng);為簡(jiǎn)明起見,未示出其它關(guān)系。
[0116]VI1.塊向量預(yù)測(cè)方面的創(chuàng)新。
[0117]本章節(jié)介紹塊向量(“BV”)預(yù)測(cè)的各個(gè)特征。特征中的一些涉及默認(rèn)BV預(yù)測(cè)值的使用,而其它特征涉及針對(duì)BV預(yù)測(cè)值的合并模式或針對(duì)幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)的跳躍模式。這些特征可促成在速率-失真性能方面更有效的幀內(nèi)BC預(yù)測(cè)。
[0118]具體地,本文中描述的各創(chuàng)新可在編碼諸如屏幕捕捉內(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)的格式來編碼。編碼/解碼屏幕捕捉內(nèi)容的常見場(chǎng)景包括遠(yuǎn)程桌面會(huì)議和對(duì)自然視頻或其它“經(jīng)混合的內(nèi)容”視頻的圖形覆蓋的編碼/解碼。
[0119]A.幀內(nèi)BC預(yù)測(cè)模式、BV值和BV預(yù)測(cè)一介紹
[0120]對(duì)于幀內(nèi)BC預(yù)測(cè),圖片的當(dāng)前塊的樣本值是使用同一圖片中的樣本值來預(yù)測(cè)的。BV值指示從當(dāng)前塊到圖片的包括用于預(yù)測(cè)的樣本值的區(qū)域的位移。用于預(yù)測(cè)的樣本值是先前重構(gòu)的樣本值。BV值可以在比特流中被信號(hào)化,并且解碼器可以使用BV值來確定圖片的區(qū)域以用于預(yù)測(cè),其也在解碼器處被重構(gòu)。幀內(nèi)BC預(yù)測(cè)是一種形式的圖片內(nèi)預(yù)測(cè)一一針對(duì)圖片的塊的幀內(nèi)BC預(yù)測(cè)不使用除了同一圖片中的樣本值以外的任何樣本值。
[0121]圖7a示出針對(duì)當(dāng)前幀(710)的當(dāng)前塊(760)的幀內(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ū)域)。
[0122]BV(761)指示當(dāng)前塊(760)到圖片的包括用于預(yù)測(cè)的樣本值的區(qū)域(762)的位移(或偏移)。由BV(761)指示的幀內(nèi)預(yù)測(cè)區(qū)域(762)有時(shí)被稱為當(dāng)前塊(760)的“匹配塊”。匹配塊可與當(dāng)前塊(760)相同,或它可以是當(dāng)前塊(760)的近似。假設(shè)當(dāng)前塊的左上位置是在當(dāng)前幀的位置(XQ,yQ)處,并假設(shè)幀內(nèi)預(yù)測(cè)區(qū)域的左上位置在當(dāng)前幀的位置(X1,yi)處。BV指示位移(xmy1-yo)。例如,如果當(dāng)前塊的左上位置在位置(256,128)處,并且參考區(qū)域的左上位置在位置(176,104)處,則BV值為(-80,-24)。在本示例中,負(fù)水平位移指示在當(dāng)前塊的左邊的位置,而負(fù)垂直位移指示在當(dāng)前塊之上的位置。
[0123]幀內(nèi)BC預(yù)測(cè)可以通過利用使用BC操作的冗余性(例如幀內(nèi)部的重復(fù)模式)來改善編碼效率。代替直接編碼當(dāng)前塊的樣本值,使用BV值來表示當(dāng)前塊的樣本值。即使當(dāng)前塊的樣本值不直接匹配用BV值指示的參考區(qū)域的樣本值,但是這些差異可能是可忽略的(即在感知上不是顯而易見的)?;蛘?,如果這些差異是顯著的,則這些差異可被編碼成可比當(dāng)前塊的原始樣本值更高效地被壓縮的殘留值。
[0124]共同地,使用幀內(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差具有支持高效熵編碼的概率分布。在HEVC標(biāo)準(zhǔn)的當(dāng)前草稿版本(JCTVC-01005)中,BV預(yù)測(cè)值是當(dāng)前CTU內(nèi)最后編碼的CU的BV值(即,當(dāng)前CTU內(nèi)的先前幀內(nèi)BC預(yù)測(cè)的塊的BV值)。
[0125]圖7b示出幀中的當(dāng)前塊(760)的BV(761)以及幀(710)中的先前塊(750)的BV(751)。先前塊(750)的BV(751)用作當(dāng)前塊(760)的BV(761)的BV預(yù)測(cè)值。例如,如果BV值為(-80,-24)并且BV預(yù)測(cè)值為(-80,-32),則為(O,8)的BV差被熵編碼。
[0126]解碼器接收BV值的經(jīng)熵編碼的BV差,并對(duì)該BV差進(jìn)行熵解碼。解碼器還確定BV值的BV預(yù)測(cè)值。由解碼器確定的BV預(yù)測(cè)值與由編碼器確定的BV預(yù)測(cè)值相同。解碼器將BV預(yù)測(cè)值和經(jīng)解碼的BV差組合以重構(gòu)BV值。
[0127]在HEVC標(biāo)準(zhǔn)的當(dāng)前草稿版本(JCTVC-01005)中,基于實(shí)際BV值的BV預(yù)測(cè)值在一些情形下不可用。例如,前一實(shí)際BV值對(duì)于給定CTU中的第一個(gè)幀內(nèi)BC預(yù)測(cè)的塊不可用。當(dāng)前一實(shí)際BV值對(duì)于BV預(yù)測(cè)值不可用時(shí)(如圖7c中所示),(0,0)的默認(rèn)值被用作為BV預(yù)測(cè)值。事實(shí)上,這意味著在沒有BV值對(duì)CTU中的前一幀內(nèi)BC預(yù)測(cè)的塊可用時(shí),BV預(yù)測(cè)被跳過。
[0128]B.具有非零分量的默認(rèn)BV預(yù)測(cè)值
[0129]根據(jù)本文中描述的創(chuàng)新的一個(gè)方面,當(dāng)前一實(shí)際BV值不可用作為當(dāng)前塊的BV值的BV預(yù)測(cè)值時(shí),編碼器和解碼器使用具有非零分量的默認(rèn)BV預(yù)測(cè)值。相比于為零值的默認(rèn)BV預(yù)測(cè)值,具有非零分量的默認(rèn)BV預(yù)測(cè)值趨于更接近于當(dāng)前塊的BV值,這導(dǎo)致對(duì)BV差的更高效的熵編碼。另外,具有非零值的默認(rèn)BV預(yù)測(cè)值能夠提供對(duì)于BV預(yù)測(cè)采用跳躍模式還是合并模式的有用選項(xiàng)。
[0130]1.示例默認(rèn)BV預(yù)測(cè)值
[0131]如圖7d中所示,對(duì)于當(dāng)前塊(760)的BV值(761),默認(rèn)BV預(yù)測(cè)值(763)可具有非零水平分量。例如,默認(rèn)BV預(yù)測(cè)值是一個(gè)水平向量(BVx,O)。水平BV分量BVx的值可以是一個(gè)固定的非零值。或者,BVx的值可以是當(dāng)前塊的寬度,該寬度是避免當(dāng)前塊和參考區(qū)域之間重疊的水平BV分量BVx的最小值。
[0132]例如,當(dāng)當(dāng)前塊是具有寬度W和高度H的CU的CB時(shí),水平BV分量BVx的值的默認(rèn)BV預(yù)測(cè)值可以是等于CU的寬度W的負(fù)偏移。也就是說,默認(rèn)BV預(yù)測(cè)值可以是(_W,0)。每當(dāng)(基于前一個(gè)塊的實(shí)際BV值的)常規(guī)BV預(yù)測(cè)值不可用時(shí),默認(rèn)BV預(yù)測(cè)值(BVx,0)可被使用?;蛘?,默認(rèn)BV預(yù)測(cè)值(BVx,0)可以取決于當(dāng)前塊的BV值而有條件地使用。例如,如果當(dāng)前塊的BV值的垂直BV分量小于-H,則默認(rèn)BV預(yù)測(cè)值為(-W,O)。否則(當(dāng)前塊的BV值的垂直BV分量不小于-H),默認(rèn)BV預(yù)測(cè)值為(0,0)。這一條件確保了在當(dāng)前塊的BV值具有顯著垂直BV分量時(shí)不應(yīng)用默認(rèn)BV預(yù)測(cè)值(_W,0)。替代地,非零默認(rèn)BV預(yù)測(cè)值(BVx,0)根據(jù)另一條件而被有條件地應(yīng)用。
[0133]替代具有為-W的負(fù)偏移,默認(rèn)BV預(yù)測(cè)值可具有另一負(fù)偏移。例如,默認(rèn)BV預(yù)測(cè)值可以為(_2*W,0)。
[0134]替代地,默認(rèn)BV預(yù)測(cè)值是垂直向量(O,BVy)。垂直BV分量BVy的值可以是一個(gè)固定的非零值,或者BVy的值可以是當(dāng)前塊的高度,該高度是避免當(dāng)前塊和參考區(qū)域之間重疊的BVy的最小值。例如,當(dāng)當(dāng)前塊是具有寬度W和高度H的CU的CB時(shí),默認(rèn)BV預(yù)測(cè)值可以是(0,-H)。默認(rèn)BV預(yù)測(cè)值(0,BVy)可在每當(dāng)常規(guī)BV預(yù)測(cè)值不可用時(shí)被使用,或者默認(rèn)BV預(yù)測(cè)值(0,BVy)可取決于當(dāng)前塊的BV值有條件地使用。
[0135]替代地,默認(rèn)BV預(yù)測(cè)值可具有非零水平分量和非零垂直分量。
[0136]2.采用默認(rèn)BV預(yù)測(cè)值的示例編碼
[0137]圖8示出用于在編碼期間使用具有非零分量的默認(rèn)BV預(yù)測(cè)值的通用技術(shù)(800)。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器)可執(zhí)行技術(shù)(800)。
[0138]編碼器確定(830)圖片的當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。例如,在HEVC實(shí)現(xiàn)中,當(dāng)前塊是編碼樹單元的編碼單元的一部分。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,具有非零值的BV預(yù)測(cè)值分量是水平BV分量。取決于實(shí)現(xiàn),非零水平BV分量可具有固定的值(與當(dāng)前塊的大小無關(guān))、等于當(dāng)前塊的寬度的值、或者某個(gè)其它非零值?;蛘?,具有非零值的BV預(yù)測(cè)值分量是垂直BV分量。取決于實(shí)現(xiàn),非零垂直BV分量可具有固定的值(與當(dāng)前塊的大小無關(guān))、等于當(dāng)前塊的高度的值、或者某個(gè)其它非零值?;蛘撸J(rèn)BV預(yù)測(cè)值可包括非零水平BV分量和非零垂直BV分量。默認(rèn)BV預(yù)測(cè)值可以是為如章節(jié)C中描述的跳躍模式或者為如章節(jié)D中描述的合并模式所聚集的一組多個(gè)BV預(yù)測(cè)值候選的一部分。
[0139]編碼器使用默認(rèn)BV預(yù)測(cè)值來對(duì)當(dāng)前塊進(jìn)行編碼(850)。例如,編碼器(a)使用當(dāng)前塊的BV值來執(zhí)行幀內(nèi)BC預(yù)測(cè)、(b)使用當(dāng)前塊的BV值和默認(rèn)BV預(yù)測(cè)值來確定BV差、以及(c)對(duì)BV差進(jìn)行編碼。替代地,編碼器直接使用默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。
[0140]圖9示出用于在編碼期間使用具有非零分量的默認(rèn)BV預(yù)測(cè)值的更詳細(xì)的示例技術(shù)(900)。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器)可執(zhí)行技術(shù)(900)ο
[0141]作為開始,編碼器標(biāo)識(shí)(910)圖片的當(dāng)前塊的BV值。編碼器可使用任何形式的BV估計(jì)來標(biāo)識(shí)當(dāng)前塊的BV值。在HEVC實(shí)現(xiàn)中,當(dāng)前塊是編碼樹單元的編碼單元的一部分。
[0142]編碼器檢查(920)實(shí)際BV值是否可用作為BV預(yù)測(cè)值。例如,編碼器檢查圖片的前一個(gè)塊的實(shí)際BV值是否可用。在HEVC實(shí)現(xiàn)中,如果(I)前一個(gè)塊和當(dāng)前塊是同一CTU的一部分,并且(2)前一個(gè)塊的預(yù)測(cè)模式是幀內(nèi)BC預(yù)測(cè)模式,則前一個(gè)塊的實(shí)際BV值是可用的。例如,前一個(gè)塊的實(shí)際BV值對(duì)于給定CTU中的第一個(gè)幀內(nèi)BC預(yù)測(cè)的塊不可用。
[0143]如果實(shí)際BV不可用作為BV預(yù)測(cè)值,則編碼器使用(940)實(shí)際BV作為BV預(yù)測(cè)值。另一方面,如果沒有任何之前的塊的實(shí)際BV可用作為BV預(yù)測(cè)值,則編碼器確定(930)當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,如以上結(jié)合圖8的動(dòng)作(830)所描述的來確定默認(rèn)BV預(yù)測(cè)值。
[0144]編碼器確定(950)當(dāng)前塊的BV值和BV預(yù)測(cè)值之間的BV差。編碼器對(duì)該BV差進(jìn)行熵編碼(960)。
[0145]3.采用默認(rèn)BV預(yù)測(cè)值的示例解碼
[0146]圖10示出用于在解碼期間使用具有非零分量的默認(rèn)BV預(yù)測(cè)值的通用技術(shù)(1000)。圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器)可執(zhí)行技術(shù)(1000)。
[0147]解碼器確定(1030)圖片的當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。例如,在HEVC實(shí)現(xiàn)中,當(dāng)前塊是編碼樹單元的編碼單元的一部分。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,具有非零值的BV預(yù)測(cè)值分量是水平BV分量。取決于實(shí)現(xiàn),非零水平BV分量可具有固定的值(與當(dāng)前塊的大小無關(guān))、等于當(dāng)前塊的寬度的值、或者某個(gè)其它非零值?;蛘?,具有非零值的BV預(yù)測(cè)值分量是垂直BV分量。取決于實(shí)現(xiàn),非零垂直BV分量可具有固定的值(與當(dāng)前塊的大小無關(guān))、等于當(dāng)前塊的高度的值、或者某個(gè)其它非零值。或者,默認(rèn)BV預(yù)測(cè)值可包括非零水平BV分量和非零垂直BV分量。默認(rèn)BV預(yù)測(cè)值可以是為如章節(jié)C中描述的跳躍模式或者為如章節(jié)D中描述的合并模式所聚集的一組多個(gè)BV預(yù)測(cè)值候選的一部分。
[0148]解碼器使用默認(rèn)BV預(yù)測(cè)值來對(duì)當(dāng)前塊進(jìn)行解碼(1050)。例如,解碼器(a)對(duì)當(dāng)前塊的BV差進(jìn)行解碼、(b)將經(jīng)解碼的BV差與默認(rèn)BV預(yù)測(cè)值組合以重構(gòu)當(dāng)前塊的BV值、以及(c)使用當(dāng)前塊的BV值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。替代地,解碼器直接使用默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。
[0149]圖11示出用于在解碼期間使用具有非零分量的默認(rèn)BV預(yù)測(cè)值的更詳細(xì)的示例技術(shù)(I 100)。圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器)可執(zhí)行技術(shù)(IlOO)0
[0150]解碼器檢查(1120)實(shí)際BV是否可用作為圖片的當(dāng)前塊的BV值的BV預(yù)測(cè)值。例如,解碼器檢查圖片的前一個(gè)塊的實(shí)際BV值是否可用。在HEVC實(shí)現(xiàn)中,如果(I)前一個(gè)塊和當(dāng)前塊是同一 CTU的一部分,并且(2)前一個(gè)塊的預(yù)測(cè)模式是幀內(nèi)BC預(yù)測(cè)模式,則前一個(gè)塊的實(shí)際BV值是可用的。前一個(gè)塊的實(shí)際BV值例如對(duì)于給定CTU中的第一個(gè)幀內(nèi)BC預(yù)測(cè)的塊不可用。
[0151]如果實(shí)際BV不可用作為BV預(yù)測(cè)值,則解碼器使用(1140)實(shí)際BV作為BV預(yù)測(cè)值。另一方面,如果沒有任何之前的塊的實(shí)際BV可用作為BV預(yù)測(cè)值,則解碼器確定(1130)當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值。默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量。例如,如以上結(jié)合圖10的動(dòng)作(1030)所描述的來確定默認(rèn)BV預(yù)測(cè)值。
[0152]解碼器還對(duì)當(dāng)前塊的BV差進(jìn)行熵解碼(1150)。解碼器隨后將BV差與BV預(yù)測(cè)值組合(1160)以重構(gòu)當(dāng)前塊的BV值。
[0153]4.替換和變型
[0154]在以上描述的默認(rèn)BV預(yù)測(cè)值的各示例中,默認(rèn)BV預(yù)測(cè)值的值不受當(dāng)前塊的位置約束。替代地,默認(rèn)BV預(yù)測(cè)值的值可以受當(dāng)前塊的位置約束。例如,如果當(dāng)前塊處于圖片的邊緣處使得默認(rèn)BV預(yù)測(cè)值將指向圖片之外的位置,則默認(rèn)BV預(yù)測(cè)值被約束為指向圖片內(nèi)的位置,或者使用(O,0)BV預(yù)測(cè)值?;蛘?,作為其中BV值被約束為引用某個(gè)CTU集合(例如,當(dāng)前CTU和前一 CTU)中的位置的HEVC實(shí)現(xiàn)的另一示例,默認(rèn)BV預(yù)測(cè)值被約束為弓丨用該CTU集合內(nèi)的位置。或者,作為其中圖片包括多個(gè)小塊或多個(gè)切片的HEVC實(shí)現(xiàn)的另一示例,BV值(以及默認(rèn)BV預(yù)測(cè)值)可被約束為引用當(dāng)前小塊(和/或當(dāng)前切片)內(nèi)的位置。
[0155]在以上描述的默認(rèn)BV預(yù)測(cè)值的各示例中,默認(rèn)BV預(yù)測(cè)值的值不取決于當(dāng)前塊的位置而切換。替代地,默認(rèn)BV預(yù)測(cè)值的值可以取決于當(dāng)前塊的位置而切換。例如,如果當(dāng)前塊處于除了圖片(或小塊、或切片,如果使用的話)的左邊緣以外的任何位置,則默認(rèn)BV預(yù)測(cè)值是水平BV預(yù)測(cè)值(BVx,0)。如果當(dāng)前塊處于圖片(或小塊、或切片,如果使用的話)的左邊緣,或者默認(rèn)水平BV預(yù)測(cè)值否則將引用圖片(或小塊、或切片,如果使用的話)之外的位置,則默認(rèn)BV預(yù)測(cè)值是垂直BV預(yù)測(cè)值(0,BVy)。并且,如果當(dāng)前塊處于圖片(或小塊、或切片,如果使用的話)的左上角,或者默認(rèn)水平BV預(yù)測(cè)值和垂直BV預(yù)測(cè)值否則將引用圖片(或小塊、或切片,如果使用的話)之外的位置,則默認(rèn)BV預(yù)測(cè)值是(0,0)BV預(yù)測(cè)值。
[0156]C.幀內(nèi)BC預(yù)測(cè)的跳躍模式
[0157]根據(jù)本文中描述的創(chuàng)新的另一方面,編碼器和解碼器針對(duì)某些幀內(nèi)BC預(yù)測(cè)的塊使用跳躍模式。在跳躍模式中,幀內(nèi)BC預(yù)測(cè)的塊使用預(yù)測(cè)的BV值并且在比特流中不具有殘留數(shù)據(jù)。在一些情形下,使用針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式能夠顯著地改善速率-失真效率。
[0158]總得來說,編碼器決定何時(shí)為當(dāng)前幀內(nèi)BC預(yù)測(cè)的塊使用跳躍模式。編碼器能夠基于幀內(nèi)BC預(yù)測(cè)區(qū)域與當(dāng)前塊有多接近地匹配、基于殘留值的感知重要性、基于可用于對(duì)殘留值進(jìn)行編碼的比特率、和/或基于其它因素來決定使用跳躍模式。在其中編碼速度是約束的例如實(shí)時(shí)編碼的某些編碼模式下,編碼器可偏好為幀內(nèi)BC預(yù)測(cè)的塊使用跳躍模式。
[0159]圖12示出包括針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式的編碼的通用技術(shù)(1200)。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器)可執(zhí)行技術(shù)(1200)。
[0160]對(duì)于圖片的當(dāng)前塊,如果當(dāng)前塊是以跳躍模式編碼的幀內(nèi)BC預(yù)測(cè)的塊,則編碼器使用(I 210) BV預(yù)測(cè)來確定當(dāng)前塊的BV值。當(dāng)前塊的BV值指示在該圖片中的一區(qū)域的位移。BV預(yù)測(cè)可包括合并模式預(yù)測(cè)、使用最后編碼的幀內(nèi)BC預(yù)測(cè)的塊的BV值的預(yù)測(cè)、使用相鄰的幀內(nèi)BC預(yù)測(cè)的塊的BV值的分量級(jí)中值的預(yù)測(cè)、或者某種其它形式的BV預(yù)測(cè)。當(dāng)前塊是例如CTU的⑶的一部分。
[0161]編碼器使用幀內(nèi)BC預(yù)測(cè)用BV值(此處為預(yù)測(cè)的BV值)來編碼(1220)當(dāng)前塊。編碼器在比特流中輸出(1230)當(dāng)前塊是以跳躍模式編碼的指示。由于該塊是以跳躍模式編碼的,因此比特流缺少當(dāng)前塊的BV差和殘留數(shù)據(jù)。然而,比特流可包括索引值,該索引值指示從多個(gè)BV預(yù)測(cè)值候選的集合中對(duì)要用作當(dāng)前塊的BV值的BV預(yù)測(cè)值候選的選擇。例如,當(dāng)多個(gè)BV預(yù)測(cè)值候選的集合具有兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值是一個(gè)標(biāo)志(flag)值?;蛘?,當(dāng)多個(gè)BV預(yù)測(cè)值候選的集合具有不止兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值是一個(gè)整數(shù)值。該索引值可使用例如算術(shù)編碼來進(jìn)行熵編碼。
[0162]圖13示出包括針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式的解碼的通用技術(shù)(1300)。圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器)可執(zhí)行技術(shù)(1300)。
[0163]對(duì)于圖片的當(dāng)前塊,如果當(dāng)前塊是以跳躍模式編碼的幀內(nèi)BC預(yù)測(cè)的塊,則解碼器從比特流中接收(1310)該當(dāng)前塊是以跳躍模式編碼的指示。由于該塊是以跳躍模式編碼的,因此比特流缺少當(dāng)前塊的BV差和殘留數(shù)據(jù)。然而,如以上所描述的,比特流可包括索引值,該索引值指示從多個(gè)BV預(yù)測(cè)值候選的集合中對(duì)要用作當(dāng)前塊的BV值的BV預(yù)測(cè)值候選的選擇。當(dāng)前塊是例如CTU的CU的一部分。
[0164]解碼器使用(1320)BV預(yù)測(cè)來確定當(dāng)前塊的BV值。BV預(yù)測(cè)一般與編碼器處執(zhí)行的BV預(yù)測(cè)成鏡像。BV預(yù)測(cè)可包括合并模式預(yù)測(cè)、使用最后編碼的幀內(nèi)BC預(yù)測(cè)的塊的BV值的預(yù)測(cè)、使用相鄰的幀內(nèi)BC預(yù)測(cè)的塊的BV值的分量級(jí)中值的預(yù)測(cè)、或者某種其它形式的BV預(yù)測(cè)。解碼器使用幀內(nèi)BC預(yù)測(cè)用BV值(此處為預(yù)測(cè)的BV值)來解碼(1330)當(dāng)前塊。
[0165]D.針對(duì)BV預(yù)測(cè)的合并模式
[0166]根據(jù)本文中描述的創(chuàng)新的另一方面,編碼器和解碼器使用針對(duì)BV預(yù)測(cè)的合并模式。合并模式能夠顯著地改善BV預(yù)測(cè)的質(zhì)量,這進(jìn)而降低了比特流中的BV差所消耗的比特的量。
[0167]對(duì)于合并模式,在確定塊的BV預(yù)測(cè)值時(shí),編碼器聚集BV預(yù)測(cè)值候選的集合,選擇BV預(yù)測(cè)值候選中的一個(gè)以用作為該塊的BV預(yù)測(cè)值,并且在比特流中信號(hào)化指示該被選擇的BV預(yù)測(cè)值候選的索引值。解碼器聚集該BV預(yù)測(cè)值候選的集合,并且基于被信號(hào)化的索引值來選擇BV預(yù)測(cè)值候選中要用作為該塊的BV預(yù)測(cè)值的那個(gè)BV預(yù)測(cè)值候選。盡管索引值消耗比特流中的比特,但是合并模式能夠顯著地改善BV預(yù)測(cè)并且因此減少BV差所消耗的比特,從而得到整體的比特率降低。
[0168]在示例實(shí)現(xiàn)中,針對(duì)BV預(yù)測(cè)的合并模式與針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式組合使用。替代地,針對(duì)BV預(yù)測(cè)的合并模式可在即使未采用針對(duì)幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式的情況下使用。
[0169]1.示例BV預(yù)測(cè)值候選以及索引值
[0170]當(dāng)確定合并模式下塊的BV預(yù)測(cè)值時(shí),編碼器或解碼器聚集BV預(yù)測(cè)值候選的集合。該BV預(yù)測(cè)值候選的集合的構(gòu)成取決于實(shí)現(xiàn),但是在編碼器側(cè)和解碼器側(cè)是相同的。
[0171]在一個(gè)方法中,BV預(yù)測(cè)值候選是從圖片中的之前編碼的塊的實(shí)際BV值中聚集出來的??偟脕碚f,編碼器和解碼器確定圖片中的多至X個(gè)之前的塊的實(shí)際BV值。之前的塊是圖片中的之前編碼的幀內(nèi)BC預(yù)測(cè)的塊。具體來說,它們是按照在解碼順序上比當(dāng)前塊更早的最近的X個(gè)幀內(nèi)BC預(yù)測(cè)的塊。X的值取決于實(shí)現(xiàn)并且可以是例如2、3、4、5或某個(gè)其它數(shù)字。使用更多BV預(yù)測(cè)值候選一般會(huì)提高索引值的比特率,但是會(huì)改善BV預(yù)測(cè)的質(zhì)量,這進(jìn)而減少了 BV差消耗的比特。
[0172]之前的幀內(nèi)BC預(yù)測(cè)的塊不需要是當(dāng)前塊的鄰居。如果少于X個(gè)具有實(shí)際BV值的之前的塊可用,則BV預(yù)測(cè)值候選的集合可包括少于X個(gè)BV預(yù)測(cè)值候選。
[0173]圖14示出了這一方法的示例。在圖14中,三個(gè)之前的幀內(nèi)BC預(yù)測(cè)的塊(1430,1440,1450)的三個(gè)BV值(1431,1441,1451)提供用于當(dāng)前幀(1410)的當(dāng)前塊(1460)的BV預(yù)測(cè)值的合并模式的BV預(yù)測(cè)值候選。盡管在圖14的示例中,之前的塊(1430,1440,1450)是連續(xù)的,但是之前的塊不需要是連續(xù)的。(也就是說,提供BV預(yù)測(cè)值候選的之前的幀內(nèi)BC預(yù)測(cè)的塊可以被圖片中的其它非幀內(nèi)BC預(yù)測(cè)的塊隔開。)
[0174]BV預(yù)測(cè)值候選的集合可進(jìn)一步包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值。在圖14的示例中,BV預(yù)測(cè)值候選的集合包括具有水平位移的默認(rèn)BV預(yù)測(cè)值(BVx,0)以及具有垂直位移的默認(rèn)BV預(yù)測(cè)值(O,BVy)。具體來說,具有水平位移和垂直位移的默認(rèn)BV預(yù)測(cè)值趨于對(duì)文本內(nèi)容來說是有用的,文本內(nèi)容一般遵循完全水平或垂直的方向。
[0175]合并模式索引值與相應(yīng)的BV預(yù)測(cè)值候選相關(guān)聯(lián)。典型的,越小的索引值與越可能被選擇的BV預(yù)測(cè)值候選相關(guān)聯(lián),而越大的索引值與越不可能被選擇的BV預(yù)測(cè)值候選相關(guān)聯(lián),這趨于在熵編碼后降低索引值的比特率。在圖14中,根據(jù)預(yù)期的選擇可能性,索引值idx0---1dx 4被指派給具有BV值(1451,1441,1431)和默認(rèn)BV預(yù)測(cè)值的BV預(yù)測(cè)值候選。
[0176]例如,在一些實(shí)現(xiàn)中,之前編碼的塊的兩個(gè)實(shí)際BV值被存儲(chǔ)為BV預(yù)測(cè)值候選BVcand0和BVcandl。在新的BV值被使用之后,較舊的BV預(yù)測(cè)值候選BVcand^替換為較新的BV預(yù)測(cè)值候選BVcandQ,而較新的BV預(yù)測(cè)值候選BVcandQ被替換為剛剛使用的BV值。在編碼器側(cè),對(duì)于當(dāng)前塊,編碼器選擇BVcandQ和BVcandl中的一個(gè)以用作為BV預(yù)測(cè)值。作為合并模式索引值,編碼器信號(hào)化指示BVcandQ和BVcandl中的哪一個(gè)被編碼器使用并且應(yīng)當(dāng)被解碼器使用的標(biāo)志值。在解碼器側(cè),解碼器接收并解析標(biāo)志值,并且基于該標(biāo)志值選擇BVcandQ和BVcandl中的要用作為當(dāng)前塊的BV預(yù)測(cè)值的那個(gè)。在這一方法中,編碼器和解碼器各自存儲(chǔ)和更新兩個(gè)BV預(yù)測(cè)值候選BVcandQ和BVcandl ο
[0177]作為另一示例,在一些其它實(shí)現(xiàn)中,之前編碼的塊的一個(gè)實(shí)際BV值被存儲(chǔ)為第一BV預(yù)測(cè)值候選BV_d0,而默認(rèn)BV預(yù)測(cè)值被存儲(chǔ)為第二 BV預(yù)測(cè)值候選BV_dl。例如,默認(rèn)BV預(yù)測(cè)值是(BVx,0),其中BVx可以是等于當(dāng)前塊的寬度W或具有某個(gè)其它非零值的負(fù)偏移。在新的BV值被使用之后,第一 BV預(yù)測(cè)值候選BVcandQ被替換為剛剛使用的BV值,但是第二 BV預(yù)測(cè)值BVcandI不改變。在編碼器側(cè),對(duì)于當(dāng)前塊,編碼器選擇BVcandQ和BVcandI中的一個(gè)以用作為BV預(yù)測(cè)值。編碼器信號(hào)化指示BVcandQ和BVcandl中的哪一個(gè)被編碼器使用并且應(yīng)當(dāng)被解碼器使用的標(biāo)志值。解碼器接收并解析標(biāo)志值,并且基于該標(biāo)志值選擇BVcandQ和BVcandl中的要用作為當(dāng)前塊的BV預(yù)測(cè)值的那個(gè)。在這一方法中,編碼器和解碼器各自存儲(chǔ)兩個(gè)BV預(yù)測(cè)值候選BVcandQ和BV_di,并且在編碼或解碼期間,第一BV預(yù)測(cè)值候選BVeandQ被更新。
[0178]在另一方法中,BV預(yù)測(cè)值候選是從鄰近圖片中的當(dāng)前塊的之前編碼的塊的實(shí)際BV值中聚集出來的。編碼器和解碼器確定多至X個(gè)相鄰塊的實(shí)際BV值。相鄰的塊是圖片中在當(dāng)前塊左邊、在當(dāng)前塊上邊、在當(dāng)前塊右上方的之前編碼的幀內(nèi)BC預(yù)測(cè)的塊。X的值取決于實(shí)現(xiàn)并且可以是例如2、3、4、5或某個(gè)其它數(shù)字。如果少于X個(gè)具有實(shí)際BV值的相鄰塊可用,則BV預(yù)測(cè)值候選的集合可包括少于X個(gè)BV預(yù)測(cè)值候選。
[0179]圖15示出了這一方法的示例。在圖15中,三個(gè)相鄰幀內(nèi)BC預(yù)測(cè)的塊(I530,1540,1550)的三個(gè)BV值(1531,1541,1551)提供用于當(dāng)前幀(1510)的當(dāng)前塊(1560)的BV預(yù)測(cè)值的合并模式的BV預(yù)測(cè)值候選。如果相鄰塊中的一個(gè)不可用(例如,不是幀內(nèi)BC預(yù)測(cè)的塊,或者在圖片、小塊或切片之外),則在一些情況下,另一相鄰塊可被添加(例如,當(dāng)前塊左上方的塊)。如圖15中所示,BV預(yù)測(cè)值候選的集合包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值(諸如具有水平位移的默認(rèn)BV預(yù)測(cè)值(BVx,0)以及具有垂直位移的默認(rèn)BV預(yù)測(cè)值(0,BVy))。在圖15中,根據(jù)預(yù)期的選擇可能性,索引值idx O…idx 4被指派給具有BV值(1541,1531,1551)和默認(rèn)BV預(yù)測(cè)值的BV預(yù)測(cè)值候選。
[0180]對(duì)BV預(yù)測(cè)值候選中的冗余值的處理取決于實(shí)現(xiàn)。在一些實(shí)現(xiàn)中,用于合并模式的BV預(yù)測(cè)值候選的集合可包括冗余值一一也就是說,冗余BV預(yù)測(cè)值候選不被移除或替代。在其它實(shí)現(xiàn)中,在聚集用于合并模式的BV預(yù)測(cè)值候選的集合時(shí),編碼器和解碼器不向該集合添加冗余的BV預(yù)測(cè)值。這一方法可導(dǎo)致較小的BV預(yù)測(cè)值候選的集合,這可降低編碼的索引值的比特率。在又一些其它實(shí)現(xiàn)中,在聚集用于合并模式的BV預(yù)測(cè)值候選的集合時(shí),編碼器和解碼器將會(huì)與集合中已存在的BV預(yù)測(cè)值候選冗余的BV預(yù)測(cè)值候選替換為(例如,來自另一之前編碼的幀內(nèi)BC預(yù)測(cè)的塊、來自另一相鄰的幀內(nèi)BC預(yù)測(cè)的塊、來自另一默認(rèn)BV預(yù)測(cè)值選項(xiàng)的)不同的BV預(yù)測(cè)值候選。例如,如果之前的第三個(gè)幀內(nèi)BC預(yù)測(cè)的塊的BV值與之前的第一個(gè)幀內(nèi)BC預(yù)測(cè)的塊或之前的第二個(gè)幀內(nèi)BC預(yù)測(cè)的塊的BV值相同,則編碼器/解碼器替代地將之前的第四個(gè)幀內(nèi)BC預(yù)測(cè)的塊的BV值添加到BV預(yù)測(cè)值候選的集合。如果該BV值將是冗余的,則編碼器/解碼器替代地添加之前的第五個(gè)、第六個(gè)等幀內(nèi)BC預(yù)測(cè)的塊的BV值?;蛘?,編碼器/解碼器添加另一默認(rèn)BV預(yù)測(cè)值。
[0181]2.采用所選擇的BV預(yù)測(cè)值的示例編碼
[0182]圖16a示出包括針對(duì)BV預(yù)測(cè)值的合并模式的編碼的通用技術(shù)(1600)。圖像編碼器或視頻編碼器(諸如參考圖3或圖5a-5b描述的編碼器)可執(zhí)行技術(shù)(1600)。
[0183]作為開始,編碼器確定(1610)圖片的當(dāng)前的幀內(nèi)BC預(yù)測(cè)的塊的多個(gè)BV預(yù)測(cè)值候選的集合。當(dāng)前塊是例如CTU的CU的一部分。編碼器可使用參照?qǐng)D14和15描述的方法中的一個(gè)或使用另一方法來確定BV預(yù)測(cè)值候選的集合。總得來說,BV預(yù)測(cè)值候選可分別包括多至X個(gè)之前塊的實(shí)際BV值,其中X取決于實(shí)現(xiàn)(例如,X是2、3、4、5或某個(gè)其它數(shù)字)οX個(gè)之前的塊可以至少部分基于當(dāng)前塊周圍的鄰居的位置(參見例如圖15)和/或與當(dāng)前塊相比的解碼順序(參見例如圖14)來標(biāo)識(shí)。BV預(yù)測(cè)值候選還可包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值(例如,各自具有帶有非零值的BV預(yù)測(cè)值分量)。
[0184]編碼器選擇(1620)多個(gè)BV預(yù)測(cè)值候選中要用于當(dāng)前的幀內(nèi)BC預(yù)測(cè)的塊的一個(gè)BV預(yù)測(cè)值候選。例如,在當(dāng)前塊將使用幀內(nèi)BC預(yù)測(cè)用所選的BV預(yù)測(cè)值候選來編碼時(shí),編碼器依據(jù)某一度量(例如,絕對(duì)差之和、均方差)來選擇針對(duì)其的參考幀內(nèi)預(yù)測(cè)區(qū)域最接近地匹配當(dāng)前塊的BV預(yù)測(cè)值候選?;蛘?,當(dāng)當(dāng)前塊具有將被用于幀內(nèi)BC預(yù)測(cè)的BV值(通過BV估計(jì)標(biāo)識(shí)出),則編碼器選擇最接近匹配當(dāng)前塊的BV值的BV預(yù)測(cè)值候選。該選擇導(dǎo)致最小的BV差,這趨于改善熵編碼的效率。
[0185]編碼器使用所選擇的BV預(yù)測(cè)值候選來對(duì)當(dāng)前幀內(nèi)BC預(yù)測(cè)的塊進(jìn)行編碼(1630)。圖16b示出示例實(shí)現(xiàn)中對(duì)當(dāng)前塊進(jìn)行編碼(1630)的細(xì)節(jié)。編碼器檢查(1632)當(dāng)前塊是否是以跳躍模式編碼的。如果是,則編碼器使用幀內(nèi)BC預(yù)測(cè)用所選擇的BV預(yù)測(cè)值而不是使用任何殘留數(shù)據(jù)來編碼(1633)當(dāng)前塊。否則(不是跳躍模式),則編碼器檢查(1634)當(dāng)前塊是否是以合并模式編碼的。如果是,則編碼器使用幀內(nèi)BC預(yù)測(cè)用所選擇的BV預(yù)測(cè)值來編碼(1635)當(dāng)前塊。在合并模式中,編碼器可選地對(duì)當(dāng)前塊的殘留數(shù)據(jù)進(jìn)行編碼。否則(不是合并模式),則編碼器使用幀內(nèi)BC預(yù)測(cè)用當(dāng)前塊的BV值來編碼(1637)當(dāng)前塊,可選地編碼當(dāng)前塊的殘留數(shù)據(jù)。
[0186]編碼器在比特流中輸出(1640)指示所選擇的BV預(yù)測(cè)值候選的索引值。當(dāng)BV預(yù)測(cè)值候選的集合包括兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值可以是一個(gè)標(biāo)志值?;蛘撸?dāng)存在不止兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值可以是一個(gè)整數(shù)值。索引值可被熵編碼或信號(hào)化為固定長(zhǎng)度值。如果幀內(nèi)BC預(yù)測(cè)模式語法元素指示當(dāng)前塊是使用幀內(nèi)BC預(yù)測(cè)模式來編碼的,則索引值可以被(有條件地)在比特流中信號(hào)化作為單獨(dú)的語法元素?;蛘撸饕悼梢员慌c另一語法元素(例如,指示當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測(cè)模式來編碼的語法元素)聯(lián)合地在比特流中信號(hào)化。
[0187]編碼器還輸出當(dāng)前塊的任何經(jīng)編碼的數(shù)據(jù)。比特流中的值可指示當(dāng)前塊是否是以跳躍模式編碼的。如果當(dāng)前塊是跳躍模式塊,則比特流缺少當(dāng)前塊的BV差并且缺少當(dāng)前塊的殘留數(shù)據(jù)。如果當(dāng)前塊是合并模式塊,則比特流缺少當(dāng)前塊的BV差但是可包括當(dāng)前塊的殘留數(shù)據(jù)。否則(當(dāng)前塊是非跳躍模式、非合并模式塊),比特流包括當(dāng)前塊的BV差(指示所選擇的BV預(yù)測(cè)值候選和當(dāng)前塊的BV值之間的差)并且還可包括當(dāng)前塊的殘留數(shù)據(jù)。
[0188]當(dāng)編碼器使用數(shù)據(jù)結(jié)構(gòu)來跟蹤被用于之前的幀內(nèi)BC預(yù)測(cè)的塊的實(shí)際BV值時(shí),編碼器可用當(dāng)前塊的BV值來更新數(shù)據(jù)結(jié)構(gòu)。
[0189]3.采用所選擇的BV預(yù)測(cè)值的示例解碼
[0190]圖17a示出包括針對(duì)BV預(yù)測(cè)值的合并模式的解碼的通用技術(shù)(1700)。圖像解碼器或視頻解碼器(諸如參考圖4或圖6描述的解碼器)可執(zhí)行技術(shù)(1700)。
[0191]作為開始,解碼器從比特流中接收(1710)圖片的當(dāng)前塊的索引值。當(dāng)前塊是例如CTU的CU的一部分。索引值指示多個(gè)BV預(yù)測(cè)值候選的集合中被選擇的BV預(yù)測(cè)值候選。當(dāng)BV預(yù)測(cè)值候選的集合包括兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值可以是一個(gè)標(biāo)志值?;蛘?,當(dāng)存在不止兩個(gè)BV預(yù)測(cè)值候選時(shí),該索引值可以是一個(gè)整數(shù)值。索引值可被熵編碼(在這種情況下,解碼器對(duì)索引值進(jìn)行熵解碼)或信號(hào)化為固定長(zhǎng)度值。如果幀內(nèi)BC預(yù)測(cè)模式語法元素指示當(dāng)前塊是使用幀內(nèi)BC預(yù)測(cè)模式來編碼的,則索引值可以被(有條件地)在比特流中信號(hào)化作為單獨(dú)的語法元素?;蛘撸饕悼梢员慌c另一語法元素(例如,指示當(dāng)前塊是否是使用幀內(nèi)BC預(yù)測(cè)模式來編碼的語法元素)聯(lián)合地在比特流中信號(hào)化。
[0192]解碼器還接收當(dāng)前塊的任何經(jīng)編碼的數(shù)據(jù)。解碼器在解碼的適當(dāng)階段對(duì)經(jīng)編碼的數(shù)據(jù)進(jìn)行熵解碼。比特流中的值可指示當(dāng)前塊是否是以跳躍模式編碼的。如果當(dāng)前塊是跳躍模式塊,則比特流缺少當(dāng)前塊的BV差并且缺少當(dāng)前塊的殘留數(shù)據(jù)。如果當(dāng)前塊是合并模式塊,則比特流缺少當(dāng)前塊的BV差但是可包括當(dāng)前塊的殘留數(shù)據(jù)。否則(當(dāng)前塊是非跳躍模式、非合并模式塊),則比特流包括當(dāng)前塊的BV差并且還可包括當(dāng)前塊的殘留數(shù)據(jù)。
[0193]解碼器確定(1720)當(dāng)前塊的多個(gè)BV預(yù)測(cè)值候選的集合。解碼器可使用參照?qǐng)D14和15描述的方法中的一個(gè)或使用另一方法來確定BV預(yù)測(cè)值候選的集合。總得來說,BV預(yù)測(cè)值候選可包括多至X個(gè)之前塊的實(shí)際BV值,其中X取決于實(shí)現(xiàn)(例如,X是2、3、4、5或某個(gè)其它數(shù)字hx個(gè)之前的塊可以至少部分基于當(dāng)前塊周圍的鄰居的位置(參見例如圖15)和/或與當(dāng)前塊相比的解碼順序(參見例如圖14)來標(biāo)識(shí)。BV預(yù)測(cè)值候選還可包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值(例如,各自具有帶有非零值的BV預(yù)測(cè)值分量)。
[0194]基于索引值,解碼器選擇(1730)多個(gè)BV預(yù)測(cè)值候選中要用于當(dāng)前塊的一個(gè)BV預(yù)測(cè)值候選。解碼器使用所選擇的BV預(yù)測(cè)值候選對(duì)當(dāng)前塊進(jìn)行解碼(1740)。圖17b示出示例實(shí)現(xiàn)中對(duì)當(dāng)前塊進(jìn)行解碼(1740)的細(xì)節(jié)。解碼器檢查(1742)當(dāng)前塊是否是以跳躍模式編碼的。如果是,則解碼器使用幀內(nèi)BC預(yù)測(cè)用所選擇的BV預(yù)測(cè)值而不是使用任何殘留數(shù)據(jù)來解碼(1743)當(dāng)前塊。否則(不是跳躍模式),則解碼器檢查(1744)當(dāng)前塊是否是以合并模式編碼的。如果是,則解碼器使用幀內(nèi)BC預(yù)測(cè)用所選擇的BV預(yù)測(cè)值來解碼(1745)當(dāng)前塊。在合并模式中,解碼器對(duì)當(dāng)前塊的殘留數(shù)據(jù)(如果存在)進(jìn)行解碼。否則(不是合并模式),則解碼器使用幀內(nèi)BC預(yù)測(cè)用當(dāng)前塊的BV值來解碼(1747)當(dāng)前塊(用相對(duì)于所選擇的BV預(yù)測(cè)值的BV差來解碼),還對(duì)當(dāng)前塊的殘留數(shù)據(jù)(如果存在)進(jìn)行解碼。
[0195]當(dāng)解碼器使用數(shù)據(jù)結(jié)構(gòu)來跟蹤被用于之前的幀內(nèi)BC預(yù)測(cè)的塊的實(shí)際BV值時(shí),解碼器可用當(dāng)前塊的BV值來更新數(shù)據(jù)結(jié)構(gòu)。
[0196]4.合并模式的示例實(shí)現(xiàn)
[0197]在HEVC實(shí)現(xiàn)中,CU的語法和語義可被修改以信號(hào)化用于BV預(yù)測(cè)的合并模式和/或用于幀內(nèi)BC預(yù)測(cè)的塊的跳躍模式的語法元素。
[0198]在HEVC規(guī)范的草稿(JCTVC_01005_v3)中,cu_skip_flag[x0] [y0]指示當(dāng)前⑶是否被跳過,但是該標(biāo)志僅在當(dāng)前切片是預(yù)測(cè)性(“P”)切片或雙向預(yù)測(cè)性(“B”)切片的情況下被信號(hào)化。索引x0,y0指定了被考慮的CB的左上亮度樣本相對(duì)于圖片的左上亮度樣本的位置(叉0,70)。如果(311_81^_€]^|^0][70]為1,則當(dāng)前0]被跳過,并且對(duì)于該0],(311_81^_€]^[x0][y0]之后不再解析更多的語法元素,除了合并候選索引merge_idx[x0][y0]。如果cu_81^口_;^38|^0][70]為0,則當(dāng)前0]不被跳過。當(dāng)(311_81^口_;^38|^0][70]不存在,貝11其被推斷為O O
[ΟΙ"]根據(jù)一個(gè)可能的修改,cu_skip_flag[xO][yO]也可在當(dāng)前切片是幀內(nèi)(“I”)切片的情況下被信號(hào)化。當(dāng)幀內(nèi)BC預(yù)測(cè)被啟用(根據(jù)順序參數(shù)集中的標(biāo)志intra_blOCk_COpy_enabled_flag),如果cu_skip_flag[xO] [y0]的值為I,則當(dāng)前OJ被跳過,并且對(duì)于該OJ,cu_Skip_flag[xO][yO]之后不再解析更多的語法元素,除了 BV預(yù)測(cè)值索引值idx。具體來說,對(duì)于當(dāng)前被跳過的CU,沒有BV差被信號(hào)化。另一方面,如果CU_skip_flag[X0][y0]的值為0,則當(dāng)前⑶不被跳過。
[0200]在HEVC規(guī)范的草稿(JCTVC_01005_v3)中,intra_bc_f lag[x0] [y0]指不當(dāng)前⑶是否是以幀內(nèi)BC預(yù)測(cè)模式編碼的。數(shù)組索引x0,y0指定了被考慮的CB的左上亮度樣本相對(duì)于圖片的左上亮度樣本的位置(x0,y0)。如果intra_bc_flag[xO][yO]為I,則當(dāng)前CU是以幀內(nèi)BC預(yù)測(cè)模式編碼的。如果;1111:作_130_;^38|^0][70]為0,則當(dāng)前^是以幀內(nèi)空間預(yù)測(cè)來編碼的。當(dāng)不存在時(shí),intra_bc_f lag的值被推斷為是O。
[0201 ]根據(jù)一個(gè)可能的修改,對(duì)于intra_bc_f lag[x0] [y0],當(dāng)intra_bc_f lag[x0] [y0]為I時(shí),當(dāng)前CU的語法包括指示對(duì)BV預(yù)測(cè)值候選的選擇的BV預(yù)測(cè)值索引值idx。索引值idx可以是一個(gè)標(biāo)志值,用以指示在兩個(gè)BV預(yù)測(cè)值候選之間的選擇,或者是一個(gè)整數(shù)值,用以指示在不止兩個(gè)BV預(yù)測(cè)值候選中的選擇。該索引值可使用例如算術(shù)編碼來進(jìn)行熵編碼。?0202] 或者,根據(jù)另一可能的修改,對(duì)于intra_bc_flag[x0][y0],語法元素是整數(shù)值而不是二進(jìn)制標(biāo)志。如JCTVC_01005_v3中所述,如果intra_bc_f lag[x0] [5^0]為0,則當(dāng)前01是以幀內(nèi)空間預(yù)測(cè)來編碼的。另一方面,如果intra_bc_flag[x0][y0]大于0,則當(dāng)前⑶是以幀內(nèi)BC預(yù)測(cè)模式編碼的,并且intra_bc_flag[x0][y0]還指示BV預(yù)測(cè)值索引值idx。例如,如果intra_bc_f lag[xO] [yO]為I,則idx為I ;如果intra_bc_f lag[xO] [yO]為2,則idx為2;依此類推。換言之,BV預(yù)測(cè)值索引值idx與空間或BC預(yù)測(cè)的二進(jìn)制值聯(lián)合編碼在單個(gè)語法元素中。
[°203] 對(duì)于修改intra_bc_f lag[xO] [yO]和信號(hào)化索引值idx的任意一種方式,變量BvIntraPredictor [compldx]規(guī)定要用于當(dāng)前⑶的幀內(nèi)BC預(yù)測(cè)的BV預(yù)測(cè)值候選。例如,在圖14的不例中,BvIntraPredictor [O] [compIdx]、BvIntraPredictor[ I ] [compIdx]和BvIntraPredictor[2] [compIdx]存儲(chǔ)多達(dá)三個(gè)最近的之前幀內(nèi)BC預(yù)測(cè)的塊的BV值。或者,在圖 15的不例中,Bv IntraPredi c tor [O] [comp Idx]、BvIntraPredictor [ I ] [comp Idx]和BvIntraPredictor[2][compIdx]存儲(chǔ)多達(dá)三個(gè)相鄰的幀內(nèi)BC預(yù)測(cè)的塊的BV值。BvIntraPredictor[3] [compIdx]和BvIntraPredictor[4] [compIdx]分別存儲(chǔ)水平和垂直方向上的默認(rèn)BV預(yù)測(cè)值。水平BV分量被指派CompIdx = O,而垂直BV分量被指派compldx = I。
[0204]對(duì)于跳躍模式塊或合并模式塊,不為該塊信號(hào)化BV差。該塊的BV值是被選擇的BV預(yù)測(cè)值候選。
[0205]對(duì)于非跳躍模式、非合并模式塊,在比特流中信號(hào)化BV差。變量BvdIntra[xO][yO][compldx]規(guī)定BV差。數(shù)組索引xO,yO指定了被考慮的PB的左上亮度樣本相對(duì)于圖片的左上亮度樣本的位置UO,y0)。水平BV差分量被指派compldx = 0,而垂直BV差分量被指派compldx= I。對(duì)于CompIdx = 0..1,塊的BV值是BvIntra[xO] [compldx] =BvdIntra[xO] [yO][compIdx]+BvIntraPredictor[compIdx]。
[0206]變量BvIntraPredictor [comp Idx]可隨后被更新以包括當(dāng)前⑶的BV值。
[0207]5.替換和變型
[0208]在當(dāng)前塊具有通過BV估計(jì)而標(biāo)識(shí)的BV值時(shí),編碼器可使用任何形式的BV估計(jì)來標(biāo)識(shí)當(dāng)前塊的BV值。在當(dāng)前塊的BV估計(jì)期間,編碼器可通過估計(jì)可用于當(dāng)前塊的一個(gè)或多個(gè)BV預(yù)測(cè)值候選來開始。用BV預(yù)測(cè)值候選來開始BV估計(jì)可幫助快速標(biāo)識(shí)合適的BV值,以避免對(duì)其它BV值進(jìn)行評(píng)估。編碼器根據(jù)需要對(duì)其它BV值進(jìn)行評(píng)估。編碼器可使用數(shù)據(jù)結(jié)構(gòu)來跟蹤BV預(yù)測(cè)值候選。當(dāng)BV值可應(yīng)用于不同尺寸的塊(例如,用于32x32CU、16xl6CU、8x8CU或更小的TU或CU)時(shí),數(shù)據(jù)結(jié)構(gòu)可包括針對(duì)不同大小的塊的不同BV預(yù)測(cè)值候選(例如,用于32x32⑶的一個(gè)或多個(gè)BV預(yù)測(cè)值候選、用于16x16⑶的一個(gè)或多個(gè)BV預(yù)測(cè)值候選等等)。對(duì)于當(dāng)前塊,編碼器首先評(píng)估存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中的針對(duì)當(dāng)前塊的級(jí)別(尺寸)的BV預(yù)測(cè)值候選,隨后如果需要的話繼續(xù)對(duì)其它BV值進(jìn)行評(píng)估。
[0209]鑒于可應(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.一種在具有視頻編碼器或圖像編碼器的計(jì)算設(shè)備中的方法,所述方法包括: 確定圖片的當(dāng)前塊的默認(rèn)塊向量(“BV”)預(yù)測(cè)值,所述默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量;以及 使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行編碼。2.如權(quán)利要求1所述的方法,其特征在于,使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行編碼包括: 使用所述當(dāng)前塊的BV值來執(zhí)行幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè); 使用所述當(dāng)前塊的BV值以及所述當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值來確定所述當(dāng)前塊的BV差;以及 對(duì)所述當(dāng)前塊的BV差進(jìn)行編碼。3.如權(quán)利要求1所述的方法,其特征在于,使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行編碼包括使用所述默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。4.一種在具有視頻解碼器或圖像解碼器的計(jì)算設(shè)備中的方法,所述方法包括: 確定圖片的當(dāng)前塊的默認(rèn)塊向量(“BV”)預(yù)測(cè)值,所述默認(rèn)BV預(yù)測(cè)值包括具有非零值的BV預(yù)測(cè)值分量;以及 使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行解碼。5.如權(quán)利要求4所述的方法,其特征在于,使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行解碼包括: 對(duì)所述當(dāng)前塊的BV差進(jìn)行解碼; 將經(jīng)解碼的所述當(dāng)前塊的BV差與所述當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值組合以重構(gòu)所述當(dāng)前塊的BV值;以及 使用所述當(dāng)前塊的BV值來執(zhí)行幀內(nèi)塊復(fù)制(“BC”)預(yù)測(cè)。6.如權(quán)利要求4所述的方法,其特征在于,使用所述默認(rèn)BV預(yù)測(cè)值來對(duì)所述當(dāng)前塊進(jìn)行解碼包括使用所述默認(rèn)BV預(yù)測(cè)值來執(zhí)行幀內(nèi)BC預(yù)測(cè)。7.如權(quán)利要求1一6中的任意一項(xiàng)所述的方法,其特征在于,所述默認(rèn)BV預(yù)測(cè)值是經(jīng)聚集的多個(gè)BV預(yù)測(cè)值候選的集合的一部分。8.如權(quán)利要求1一6中的任意一項(xiàng)所述的方法,其特征在于,還包括: 檢查所述圖片的前一個(gè)塊的實(shí)際BV值是否可用,其中所述當(dāng)前塊的默認(rèn)BV預(yù)測(cè)值僅在所述圖片的任何一個(gè)之前的塊的實(shí)際BV值都不可用的情況下被使用。9.如權(quán)利要求8所述的方法,其特征在于,如果(I)所述前一個(gè)塊和所述當(dāng)前塊是給定編碼樹單元的一部分,并且(2)所述前一個(gè)塊的預(yù)測(cè)模式是幀內(nèi)BC預(yù)測(cè)模式,則所述前一個(gè)塊的實(shí)際BV值是可用的。10.如權(quán)利要求1一 9中的任意一項(xiàng)所述的方法,其特征在于,所述當(dāng)前塊是編碼單元的一部分。11.如權(quán)利要求1一 10中的任意一項(xiàng)所述的方法,其特征在于,所述具有非零值的BV預(yù)測(cè)值分量是水平BV分量。12.如權(quán)利要求1一 10中的任意一項(xiàng)所述的方法,其特征在于,所述具有非零值的BV預(yù)測(cè)值分量是垂直BV分量。13.如權(quán)利要求1一 10中的任意一項(xiàng)所述的方法,其特征在于,所述非零值是所述當(dāng)前塊的高度或?qū)挾取?4.如權(quán)利要求1一 10中的任意一項(xiàng)所述的方法,其特征在于,所述非零值是與所述當(dāng)前塊的尺寸無關(guān)的固定值。15.—種在具有視頻編碼器或圖像編碼器的計(jì)算設(shè)備中的方法,所述方法包括: 使用塊向量(“BV”)預(yù)測(cè)來確定圖片的當(dāng)前塊的BV值,所述當(dāng)前塊的BV值指示到所述圖片內(nèi)的區(qū)域的位移; 使用幀內(nèi)塊復(fù)制預(yù)測(cè)用所述BV值來對(duì)所述當(dāng)前塊進(jìn)行編碼;以及在比特流中輸出所述當(dāng)前塊是以跳躍模式編碼的指示,其中所述比特流缺少所述當(dāng)前塊的BV差和殘留數(shù)據(jù)。16.一種在具有視頻解碼器或圖像解碼器的計(jì)算設(shè)備中的方法,所述方法包括: 從比特流中接收?qǐng)D片的當(dāng)前塊是以跳躍模式編碼的指示,其中所述比特流缺少所述當(dāng)前塊的塊向量(“BV”)差和殘留數(shù)據(jù); 使用BV預(yù)測(cè)來確定所述當(dāng)前塊的BV值,所述當(dāng)前塊的BV值指示到所述圖片內(nèi)的區(qū)域的位移;以及 使用幀內(nèi)塊復(fù)制預(yù)測(cè)用所述BV值來對(duì)所述當(dāng)前塊進(jìn)行解碼。17.如權(quán)利要求15或16所述的方法,其特征在于,所述比特流包括索引值,所述索引值指示從多個(gè)BV預(yù)測(cè)值候選的集合中對(duì)要用作所述當(dāng)前塊的BV值的BV預(yù)測(cè)值候選的選擇。18.如權(quán)利要求17所述的方法,其特征在于,所述索引值是標(biāo)志值,所述多個(gè)BV預(yù)測(cè)值候選的集合具有兩個(gè)BV預(yù)測(cè)值候選。19.如權(quán)利要求17所述的方法,其特征在于,所述索引值是整數(shù)值,所述多個(gè)BV預(yù)測(cè)值候選的集合具有不止兩個(gè)BV預(yù)測(cè)值候選。20.如權(quán)利要求19所述的方法,其特征在于,所述多個(gè)BV預(yù)測(cè)值候選包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值,所述一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值中的每一個(gè)包括具有非零值的BV預(yù)測(cè)值分量。21.—種在具有視頻編碼器或圖像編碼器的計(jì)算設(shè)備中的方法,所述方法包括: 確定圖片的當(dāng)前塊的多個(gè)塊向量(“BV”)預(yù)測(cè)值候選的集合; 選擇所述多個(gè)BV預(yù)測(cè)值候選中要用于當(dāng)前塊的一個(gè)BV預(yù)測(cè)值候選; 使用所選擇的BV預(yù)測(cè)值候選來對(duì)所述當(dāng)前塊進(jìn)行編碼;以及 在比特流中輸出指示所選擇的BV預(yù)測(cè)值候選的索引值。22.一種在具有視頻解碼器或圖像解碼器的計(jì)算設(shè)備中的方法,所述方法包括: 從比特流中接收索引值; 確定圖片的當(dāng)前塊的多個(gè)塊向量(“BV”)預(yù)測(cè)值候選的集合; 基于所述索引值,選擇所述多個(gè)BV預(yù)測(cè)值候選中的要用于所述當(dāng)前塊的一個(gè)BV預(yù)測(cè)值候選;以及 使用所選擇的BV預(yù)測(cè)值候選來對(duì)所述當(dāng)前塊進(jìn)行解碼。23.如權(quán)利要求21或22所述的方法,其特征在于,所述當(dāng)前塊是合并模式塊,并且其中所述比特流缺少所述當(dāng)前塊的BV差。24.如權(quán)利要求23所述的方法,其特征在于,所述比特流缺少所述當(dāng)前塊的殘留數(shù)據(jù)。25.如權(quán)利要求23所述的方法,其特征在于,所述比特流包括所述當(dāng)前塊的殘留數(shù)據(jù)。26.如權(quán)利要求21或22所述的方法,其特征在于,所述比特流中的值指示所述當(dāng)前塊是跳躍模式塊,其中所述比特流缺少所述當(dāng)前塊的BV差,并且其中所述比特流缺少所述當(dāng)前塊的殘留數(shù)據(jù)。27.如權(quán)利要求21或22所述的方法,其特征在于,所述比特流包括所述當(dāng)前塊的BV差,所述BV差指示所選擇的BV預(yù)測(cè)值候選和所述當(dāng)前塊的BV值之間的差。28.如權(quán)利要求21— 27中的任意一項(xiàng)所述的方法,其特征在于,所述索引值是標(biāo)志值,所述多個(gè)BV預(yù)測(cè)值候選的集合具有兩個(gè)BV預(yù)測(cè)值候選。29.如權(quán)利要求21— 27中的任意一項(xiàng)所述的方法,其特征在于,所述索引值是整數(shù)值,所述多個(gè)BV預(yù)測(cè)值候選的集合具有不止兩個(gè)BV預(yù)測(cè)值候選。30.如權(quán)利要求21— 29中的任意一項(xiàng)所述的方法,其特征在于,所述多個(gè)BV預(yù)測(cè)值候選包括多至X個(gè)之前的塊的實(shí)際BV值。31.如權(quán)利要求30所述的方法,其特征在于,X至少為2。32.如權(quán)利要求30所述的方法,其特征在于,所述之前的塊是至少部分基于所述當(dāng)前塊周圍的鄰居的位置來標(biāo)識(shí)的。33.如權(quán)利要求30所述的方法,其特征在于,所述之前的塊是至少部分基于與所述當(dāng)前塊相比的解碼順序來標(biāo)識(shí)的。34.如權(quán)利要求21— 33中的任意一項(xiàng)所述的方法,其特征在于,所述多個(gè)BV預(yù)測(cè)值候選包括一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值,所述一個(gè)或多個(gè)默認(rèn)BV預(yù)測(cè)值中的每一個(gè)包括具有非零值的BV預(yù)測(cè)值分量。35.如權(quán)利要求21— 34中的任意一項(xiàng)所述的方法,其特征在于,所述索引值在所述比特流中被信號(hào)化作為指示所述當(dāng)前塊是否是使用幀內(nèi)塊復(fù)制預(yù)測(cè)模式來編碼的語法元素的一部分。36.如權(quán)利要求21— 34中的任意一項(xiàng)所述的方法,其特征在于,如果幀內(nèi)塊復(fù)制預(yù)測(cè)模式語法元素指示所述當(dāng)前塊是使用幀內(nèi)塊復(fù)制預(yù)測(cè)模式來編碼的,則所述索引值被有條件地在所述比特流中信號(hào)化。37.如權(quán)利要求21至36中的任意一項(xiàng)所述的方法,其特征在于,還包括: 更新用來跟蹤之前的塊的實(shí)際BV值的數(shù)據(jù)結(jié)構(gòu)。38.—種被適配成執(zhí)行權(quán)利要求1一 37中的任一項(xiàng)所述的方法的計(jì)算設(shè)備。39.—個(gè)或多個(gè)存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令使得計(jì)算設(shè)備因此被編程為執(zhí)行如權(quán)利要求1 一 37中的任一項(xiàng)所述的方法。
【文檔編號(hào)】H04N19/50GK105917650SQ201480072214
【公開日】2016年8月31日
【申請(qǐng)日】2014年1月3日
【發(fā)明人】L·朱, G·沙利文, J·許, S·桑庫拉提, B·A·庫馬, F·吳
【申請(qǐng)人】微軟技術(shù)許可有限責(zé)任公司